diff options
author | Alvin Li <liweitianux@gmail.com> | 2013-08-13 14:13:24 +0800 |
---|---|---|
committer | Alvin Li <liweitianux@gmail.com> | 2013-08-13 14:13:24 +0800 |
commit | 9636d4a6767f49384d5c386bc3f1142c88b90613 (patch) | |
tree | 3a70f6d9e4be1791d36c87cc7cbfd1d5aa2b39dd | |
parent | 9383d9a8a5988d071766c3d08a5c946e9c5b02ae (diff) | |
download | 97dev-9636d4a6767f49384d5c386bc3f1142c88b90613.tar.bz2 |
cloned from 'bitbucket', 2013/08/13
471 files changed, 53129 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7ce08cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +syntax: glob + +*.orig +*.swp +*.pyc +*~ +.DS_Store + +env/env + +backup/ diff --git a/97suifangqa/.gitignore b/97suifangqa/.gitignore new file mode 100644 index 0000000..7ce08cc --- /dev/null +++ b/97suifangqa/.gitignore @@ -0,0 +1,11 @@ +syntax: glob + +*.orig +*.swp +*.pyc +*~ +.DS_Store + +env/env + +backup/ diff --git a/97suifangqa/.hgignore b/97suifangqa/.hgignore new file mode 100644 index 0000000..0412e5d --- /dev/null +++ b/97suifangqa/.hgignore @@ -0,0 +1,7 @@ +syntax: glob + +*.orig +*.swp +*.pyc +*~ +env/env diff --git a/97suifangqa/LaunchCompass.bat b/97suifangqa/LaunchCompass.bat new file mode 100644 index 0000000..ed2c217 --- /dev/null +++ b/97suifangqa/LaunchCompass.bat @@ -0,0 +1,4 @@ +@echo off
+CD %~dp0
+CD sass
+LaunchCompass.bat
\ No newline at end of file diff --git a/97suifangqa/LaunchServer.bat b/97suifangqa/LaunchServer.bat new file mode 100644 index 0000000..7330b13 --- /dev/null +++ b/97suifangqa/LaunchServer.bat @@ -0,0 +1 @@ +%PYTHON%\..\old-django\scripts\python manage.py runserver 127.0.0.1:8001 --insecure
diff --git a/97suifangqa/__init__.py b/97suifangqa/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/__init__.py diff --git a/97suifangqa/apps/__init__.py b/97suifangqa/apps/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/__init__.py diff --git a/97suifangqa/apps/figure/__init__.py b/97suifangqa/apps/figure/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/figure/__init__.py diff --git a/97suifangqa/apps/figure/models.py b/97suifangqa/apps/figure/models.py new file mode 100644 index 0000000..30c027a --- /dev/null +++ b/97suifangqa/apps/figure/models.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +from django.db import models +from django.contrib import admin + +# Create your models here. + +class Figure(models.Model): + + legend = models.CharField(u"图例", max_length=100, null=True, blank= True) + title = models.CharField(u"标题", max_length=100, null=True, blank= True) + ori_img = models.ImageField(upload_to="upload/ori-imgs/",verbose_name = u"原始图片") + revised_img = models.ImageField(upload_to="upload/revised-imgs/",verbose_name = u"修改图片") + comment = models.TextField(u"注释", null=True, blank=True) + + class Meta: + verbose_name_plural = u"图片" + + def __unicode__(self): + return "< Figure: %s >" % self.id + + +class Chart(models.Model): + u''' + 柱状图里的一个柱子 + ''' + + value = models.FloatField(u"数值") + figure = models.ForeignKey("Figure", verbose_name=u"图片", related_name="charts", null=True, blank=True) + sample = models.OneToOneField("subjects.Sample", verbose_name=u"人群", related_name="charts", null=True, blank=True) + + class Meta: + verbose_name_plural = u"柱子" + + def __unicode__(self): + return "< Chart: %s >" % self.id + + +class FollowupCurve(models.Model): + u''' + 随访曲线里的某一根曲线提取出来,对应某个人群 + ''' + + x = models.CharField(u"x轴标签", max_length=100, blank=True) + y = models.CharField(u"y轴标签", max_length=100, blank=True) + z = models.CharField(u"z轴标签", max_length=100, blank=True) + + sample = models.OneToOneField("subjects.Sample", verbose_name=u"人群", related_name="followup_curves", null=True, blank=True) + figure = models.ForeignKey("Figure", verbose_name=u"图片", related_name="followup_curves", null=True, blank=True) + + + class Meta: + verbose_name_plural = u"随访曲线" + + def __unicode__(self): + return "< FollowupCurve: %s >" % self.id + + +class ValuesOfXYZ(models.Model): + u''' + 一根曲线上的各个值 + ''' + + x = models.FloatField(u"x值") + y = models.FloatField(u"y值") + z = models.FloatField(u"z值") + + followup_curve = models.ForeignKey("FollowupCurve", verbose_name=u"随访曲线", related_name="xyz_values", null=True, blank=True) + + + class Meta: + verbose_name_plural = u"曲线上各点" + + def __unicode__(self): + return "< ValuesOfXYZ: (%s,%s,%s) >" % (self.x, self.y, self.z) + + +admin.site.register([ + Figure, + Chart, + FollowupCurve, + ValuesOfXYZ, + ]) diff --git a/97suifangqa/apps/figure/tests.py b/97suifangqa/apps/figure/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/97suifangqa/apps/figure/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/97suifangqa/apps/indicator/__init__.py b/97suifangqa/apps/indicator/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/indicator/__init__.py diff --git a/97suifangqa/apps/indicator/fixtures/initial_data.json b/97suifangqa/apps/indicator/fixtures/initial_data.json new file mode 100644 index 0000000..25d6c73 --- /dev/null +++ b/97suifangqa/apps/indicator/fixtures/initial_data.json @@ -0,0 +1,307 @@ +[ + { + "pk": 1, + "model": "indicator.indicatorcategory", + "fields": { + "pinyin": "lei-bie-1", + "englishName": "category1", + "addByUser": 1, + "name": "\u7c7b\u522b1", + "description": "\u6307\u6807\u7c7b\u522b1\r\n\r\n\u4fee\u65391\uff08\u6d4b\u8bd5\uff09" + } + }, + { + "pk": 2, + "model": "indicator.indicatorcategory", + "fields": { + "pinyin": "lei-bie-2", + "englishName": "category2", + "addByUser": 1, + "name": "\u7c7b\u522b2", + "description": "\u7c7b\u522b2\r\n\r\nadd_edit_category() \u6dfb\u52a0" + } + }, + { + "pk": 3, + "model": "indicator.indicator", + "fields": { + "addByUser": 1, + "name": "\u6d4b\u8bd51", + "dataType": "FL", + "pinyin": "ce-shi-1", + "helpText": "\u5e2e\u52a9 help", + "englishName": "test1", + "categories": [ + 1 + ], + "description": "forms \u6d4b\u8bd51" + } + }, + { + "pk": 4, + "model": "indicator.indicator", + "fields": { + "addByUser": 1, + "name": "\u5b9a\u503c1", + "dataType": "FL", + "pinyin": "ding-zhi-1", + "helpText": "\u6d6e\u70b9\u5b9a\u503c", + "englishName": "float1", + "categories": [ + 1 + ], + "description": "float type" + } + }, + { + "pk": 2, + "model": "indicator.indicator", + "fields": { + "addByUser": 1, + "name": "\u8303\u56f41", + "dataType": "RG", + "pinyin": "fan-wei-1", + "helpText": "\u8303\u56f4\u578b", + "englishName": "range1", + "categories": [ + 1 + ], + "description": "range type\r\n\r\n\u8303\u56f4\u578b" + } + }, + { + "pk": 1, + "model": "indicator.indicator", + "fields": { + "addByUser": 1, + "name": "\u6307\u68071", + "dataType": "FL", + "pinyin": "zhi-biao-1", + "helpText": "\u6d6e\u70b9\u578b", + "englishName": "indicator1", + "categories": [ + 1 + ], + "description": "\u6307\u68071\r\n\r\n\u6d6e\u70b9\u578b\u6570\u636e" + } + }, + { + "pk": 1, + "model": "indicator.userindicator", + "fields": { + "followedIndicators": [ + 4 + ], + "user": 1 + } + }, + { + "pk": 1, + "model": "indicator.indicatorrecord", + "fields": { + "indicator": 1, + "notes": "\u6307\u68071\r\n\u7b2c1\u6761\u8bb0\u5f55", + "created_at": "2013-08-05T15:48:00.035", + "updated_at": "2013-08-05T15:50:00.326", + "value": "250", + "val_min": null, + "user": 1, + "date": "2013-08-05", + "val_max": null, + "unit": 1 + } + }, + { + "pk": 2, + "model": "indicator.indicatorrecord", + "fields": { + "indicator": 1, + "notes": "test\r\n\u8bb0\u5f55", + "created_at": "2013-08-09T10:53:15.927", + "updated_at": "2013-08-10T00:30:09.336", + "value": "50", + "val_min": null, + "user": 2, + "date": "2013-08-09", + "val_max": null, + "unit": 1 + } + }, + { + "pk": 1, + "model": "indicator.recordhistory", + "fields": { + "val_min_bak": null, + "created_at": "2013-08-05T16:07:01.832", + "indicatorRecord": 1, + "reason": "\u6d4b\u8bd5\r\nadmin\u754c\u9762\u76f4\u63a5\u4fee\u6539", + "unit_bak": 1, + "val_max_bak": null, + "value_bak": "250", + "date_bak": "2013-08-05", + "notes_bak": "\u6307\u68071\r\n\u7b2c1\u6761\u8bb0\u5f55" + } + }, + { + "pk": 2, + "model": "indicator.recordhistory", + "fields": { + "val_min_bak": null, + "created_at": "2013-08-10T11:40:23.170", + "indicatorRecord": 1, + "reason": "\u6d4b\u8bd5\u4fee\u6539", + "unit_bak": 1, + "val_max_bak": null, + "value_bak": "250", + "date_bak": "2013-08-05", + "notes_bak": "\u6307\u68071\r\n\u7b2c1\u6761\u8bb0\u5f55" + } + }, + { + "pk": 1, + "model": "indicator.unit", + "fields": { + "indicator": 1, + "description": "", + "symbol": "unit11", + "addByUser": 1, + "standard": true, + "relation": "v", + "name": "\u5355\u4f4d11" + } + }, + { + "pk": 2, + "model": "indicator.unit", + "fields": { + "indicator": 1, + "description": "", + "symbol": "unit12", + "addByUser": 1, + "standard": false, + "relation": "log10(v) + 10", + "name": "\u5355\u4f4d12" + } + }, + { + "pk": 3, + "model": "indicator.unit", + "fields": { + "indicator": 2, + "description": "", + "symbol": "unit21", + "addByUser": 1, + "standard": true, + "relation": "v", + "name": "\u5355\u4f4d21" + } + }, + { + "pk": 4, + "model": "indicator.unit", + "fields": { + "indicator": 4, + "description": "\u7b80\u5355\u63cf\u8ff0", + "symbol": "unit41", + "addByUser": 1, + "standard": true, + "relation": "v", + "name": "\u5355\u4f4d41" + } + }, + { + "pk": 1, + "model": "indicator.innateconfine", + "fields": { + "math_max": 800.0, + "indicator": 1, + "human_max": 500.0, + "description": "\u6307\u68071\r\n\u6570\u636e\u8303\u56f4", + "val_norm": "", + "addByUser": 1, + "human_min": 50.0, + "unit": 1, + "math_min": 0.0 + } + }, + { + "pk": 2, + "model": "indicator.innateconfine", + "fields": { + "math_max": 800.0, + "indicator": 2, + "human_max": 500.0, + "description": "\u6307\u6807\r\n\r\n\u6570\u636e\u7c7b\u578b\uff1a\u8303\u56f4\u578b\r\n\r\n\u6570\u636e\u8303\u56f4", + "val_norm": "", + "addByUser": 1, + "human_min": 50.0, + "unit": 3, + "math_min": 0.0 + } + }, + { + "pk": 1, + "model": "indicator.relatedindicator", + "fields": { + "indicator": 1, + "weight": 5.9, + "created_at": "2013-08-10T22:40:00.035", + "updated_at": "2013-08-10T22:40:00.326", + "blog": null, + "annotation": 2, + "objectType": "AN" + } + }, + { + "pk": 3, + "model": "indicator.relatedindicator", + "fields": { + "indicator": 1, + "weight": 8.0, + "created_at": "2013-08-11T00:56:08.080", + "updated_at": "2013-08-11T00:56:08.080", + "blog": null, + "annotation": 1, + "objectType": "AN" + } + }, + { + "pk": 2, + "model": "indicator.relatedindicator", + "fields": { + "indicator": 2, + "weight": 8.3, + "created_at": "2013-08-10T22:50:00.035", + "updated_at": "2013-08-10T22:50:00.326", + "blog": 3, + "annotation": null, + "objectType": "BL" + } + }, + { + "pk": 4, + "model": "indicator.relatedindicator", + "fields": { + "indicator": 1, + "weight": 4.0, + "created_at": "2013-08-11T00:56:49.463", + "updated_at": "2013-08-11T00:56:49.463", + "blog": 1, + "annotation": null, + "objectType": "BL" + } + }, + { + "pk": 5, + "model": "indicator.relatedindicator", + "fields": { + "indicator": 1, + "weight": 6.0, + "created_at": "2013-08-11T00:57:23.067", + "updated_at": "2013-08-11T00:57:23.067", + "blog": 3, + "annotation": null, + "objectType": "BL" + } + } +]
\ No newline at end of file diff --git a/97suifangqa/apps/indicator/forms.py b/97suifangqa/apps/indicator/forms.py new file mode 100644 index 0000000..2e0b709 --- /dev/null +++ b/97suifangqa/apps/indicator/forms.py @@ -0,0 +1,321 @@ +# -*- coding: utf-8 -*- + +""" +forms for apps/indicator +""" + +from django import forms +from django.utils.translation import ugettext as _ + +from indicator import models as im + +import sympy +from sympy.core.sympify import SympifyError + + +class IndicatorCategoryForm(forms.ModelForm): # {{{ + """ + form for 'models.IndicatorCategory' + """ + class Meta: + model = im.IndicatorCategory + exclude = ('addByUser',) +# }}} + + +class IndicatorForm(forms.ModelForm): # {{{ + """ + form for 'models.Indicator' + """ + class Meta: + model = im.Indicator + exclude = ('addByUser',) +# }}} + + +class UnitForm(forms.ModelForm): # {{{ + """ + form for 'models.Unit' + """ + class Meta: + model = im.Unit + exclude = ('addByUser',) + + def __init__(self, *args, **kwargs): + super(UnitForm, self).__init__(*args, **kwargs) + # store 'instance_id', for edting instance + self.instance_id = self.instance.id + + # 'clean_standard()' cannot raise Vali dationError correctly?? + # TODO: clean each field and generate errors accordingly. + + def clean(self): + cleaned_data = super(UnitForm, self).clean() + instance_id = self.instance_id + standard = cleaned_data['standard'] + indicator = cleaned_data['indicator'] + std_unit_list = indicator.get_unit(type="standard") + relation = cleaned_data.get('relation', u'') + if standard: + if std_unit_list and (instance_id != std_unit_list[0].id): + raise forms.ValidationError(_(u'标准单位已存在'), + code='standard') + cleaned_data['relation'] = u'v' + else: + try: + fsym = sympy.sympify(relation) + except SympifyError: + raise forms.ValidationError(_(u'"%(relation)s" 不是合法的表达式'), + code='relation_invalid', + params={'relation': relation}) + # always return the full collection of cleaned data + return cleaned_data +# }}} + + +class InnateConfineForm(forms.ModelForm): # {{{ + """ + form for 'models.InnateConfine' + """ + unit = forms.ModelChoiceField(label=u"标准单位", + queryset=im.Unit.objects.filter(standard=True)) + + class Meta: + model = im.InnateConfine + exclude = ('addByUser',) + + def clean(self): # {{{ + """ + check the validity of data + """ + cleaned_data = super(InnateConfineForm, self).clean() + indicator = cleaned_data['indicator'] + unit = cleaned_data.get('unit') + val_norm = cleaned_data.get('val_norm') + human_max = cleaned_data.get('human_max') + human_min = cleaned_data.get('human_min') + math_max = cleaned_data.get('math_max') + math_min = cleaned_data.get('math_min') + # check data + if indicator.dataType in [indicator.FLOAT_TYPE, + indicator.RANGE_TYPE, indicator.FLOAT_RANGE_TYPE]: + # check unit + if not (unit and unit.standard): + raise forms.ValidationError(_(u'unit 未填写/不是标准单位'), + code='unit') + if (human_max is None) or (human_min is None): + raise forms.ValidationError(_(u'human_max/human_min 未填写'), + code='human_empty') + if (human_max <= human_min): + raise forms.ValidationError(_(u'human_max <= human_min'), + code='human_relation') + # check 'math_max' and 'math_min' + if (math_max is None) or (math_min is None): + raise forms.ValidationError(_(u'math_max/math_min 未填写'), + code='math_empty') + if (math_max <= math_min): + raise forms.ValidationError(_(u'math_max <= math_min'), + code='math_relation') + # compare 'human*' and 'math*' + if (human_max > math_max) or (human_min < math_min): + raise forms.ValidationError(_(u'Error: human_max>math_max / human_min<math_min'), + code='human_math_relation') + # check finished + elif indicator.dataType == indicator.INTEGER_TYPE: + # 整数型 + try: + val_norm = int(val_norm) + except ValueError: + raise ValidationError(_(u'val_norm="%(val_norm)s" 不是整数型值'), + code='val_norm_int', + params={'val_norm': val_norm}) + elif indicator.dataType == indicator.PM_TYPE: + # 阴阳(+/-)型 + if (len(val_norm) == 1) and (val_norm in [u'+', u'-']): + pass + else: + raise forms.ValidationError(_(u'val_norm 只接受 "+"/"-"'), + code='val_norm_pm') + ## TODO: RADIO_TYPE, CHECKBOX_TYPE + elif indicator.dataType in [indicator.RADIO_TYPE, + indicator.CHECKBOX_TYPE]: + raise forms.ValidationError(_(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现'), + code='radio_checkbox') + else: + raise forms.ValidationError(_(u'数据不符合要求'), + code='data_type_invalid') + # all checks finished + return cleaned_data + # }}} +# }}} + + +class IndicatorRecordForm(forms.ModelForm): # {{{ + """ + form for 'models.IndicatorRecord' + """ + + class Meta: + model = im.IndicatorRecord + exclude = ('user',) + + def clean(self): # {{{ + cleaned_data = super(IndicatorRecordForm, self).clean() + # get data + indicator = cleaned_data['indicator'] + unit = cleaned_data.get('unit') + _value = cleaned_data.get('value') + _val_max = cleaned_data.get('val_max') + _val_min = cleaned_data.get('val_min') + # check data # {{{ + if indicator.dataType == indicator.INTEGER_TYPE: + # integer + try: + value = int(_value) + except ValueError: + raise forms.ValidationError(_(u'value 不是整数类型'), + code='value_integer') + elif indicator.dataType == indicator.FLOAT_TYPE: + # float + if not unit: + raise forms.ValidationError(_(u'unit 未填写'), + code='unit_empty') + try: + value = float(_value) + except ValueError: + raise forms.ValidationError(_(u'value 不是浮点数类型'), + code='value_float') + elif indicator.dataType == indicator.RANGE_TYPE: + # range + val_max = _val_max + val_min = _val_min + if not unit: + raise forms.ValidationError(_(u'unit 未填写'), + code='unit_empty') + if (val_max is None) or (val_min is None): + raise forms.ValidationError(_(u'val_max/val_min 未填写'), + code='val_empty') + if (val_max <= val_min): + raise forms.ValidationError(_(u'val_max <= val_min'), + code='val_relation') + elif indicator.dataType == indicator.FLOAT_RANGE_TYPE: + # float/range + if not unit: + raise forms.ValidationError(_(u'unit 未填写'), + code='unit_empty') + if value: + # float (first) + try: + value = float(_value) + except ValueError: + raise forms.ValidationError(_(u'value 不是浮点数类型'), + code='value_float') + elif (val_max is not None) or (val_min is not None): + # range + val_max = _val_max + val_min = _val_min + if (val_max <= val_min): + raise forms.ValidationError(_(u'val_max <= val_min'), + code='val_relation') + else: + raise forms.ValidationError(_(u'请填写 value 或者 "val_max + val_min"'), + code='value_val') + elif indicator.dataType == indicator.PM_TYPE: + # +/- + value = _value + if (len(value) == 1) and (value in [u'+', u'-']): + pass + else: + raise forms.ValidationError(_(u'value 只接受 "+"/"-"'), + code='value_pm') + elif indicator.dataType in [indicator.RADIO_TYPE, + indicator.CHECKBOX_TYPE]: + ## TODO: RADIO_TYPE, CHECKBOX_TYPE + raise forms.ValidationError(_(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现'), + code='radio_checkbox') + else: + raise forms.ValidationError(_(u'数据不符合要求'), + code='data_type_invalid') + # }}} + # check confine # {{{ + # for [FLOAT_TYPE, RANGE_TYPE, FLOAT_RANGE_TYPE] + # [INTEGER_TYPE, PM_TYPE] already validated above + if indicator.dataType in [indicator.FLOAT_TYPE, + indicator.RANGE_TYPE, indicator.FLOAT_RANGE_TYPE]: + # check confine if specified for the indicator + if not indicator.check_confine(): + raise forms.ValidationError(_(u'该指标未指定 InnateConfine'), + code='innateconfine') + # innateconfine ok + confine = indicator.innate_confine + human_max = confine.human_max + human_min = confine.human_min + math_max = confine.math_max + math_min = confine.math_min + # unit conversion + unit_rel = unit.relation + v = sympy.symbols('v') + rel_sym = sympy.sympify(unit_rel) + # data + value = _value + val_max = _val_max + val_min = _val_min + # value + if value: + try: + value = float(value) + except ValueError: + raise forms.ValidationError(_(u'value 不是浮点数类型'), + code='value_float') + # 'value' unit conversion + try: + value_std = float(rel_sym.evalf(subs={v: value})) + except ValueError: + raise forms.ValidationError(_(u'"%s" 求值错误,请检查只有变量"v"' % unit_rel), + code='value_evalf') + if (value_std < math_min) or (value_std > math_max): + raise forms.ValidationError(_(u'value(std) < math_min or value(std) > math_max'), + code='value_std_relation') + # val_max + if val_max is not None: + # unit conversion + try: + val_max_std = float(rel_sym.evalf( + subs={v: val_max})) + except ValueError: + raise forms.ValidationError(_(u'"%s" 求值错误,请检查只有变量"v"' % unit_rel), + code='val_max_evalf') + if (val_max_std <= math_min) or ( + val_max_std > math_max): + raise forms.ValidationError(_(u'val_max(std) <= math_min or val_max(std) > math_max'), + code='val_max_std_relation') + # val_min + if val_min is not None: + try: + val_min_std = float(rel_sym.evalf( + subs={v: val_min})) + except ValueError: + raise forms.ValidationError(_(u'"%s" 求值错误,请检查只有变量"v"' % unit_rel), + code='val_min_evalf') + if (val_min_std < math_min) or ( + val_min_std >= math_max): + raise forms.ValidationError(_(u'val_min(std) < math_min or val_min(std) >= math_max'), + code='val_min_std_relation') + # }}} + # return cleaned data + return cleaned_data + # }}} +# }}} + + +class RecordHistoryForm(forms.ModelForm): # {{{ + """ + form for 'models.RecordHistory' + """ + class Meta: + model = im.RecordHistory + exclude = ('indicatorRecord',) +# }}} + + +# vim: set ts=4 sw=4 tw=0 fenc=utf-8 ft=python.django: # diff --git a/97suifangqa/apps/indicator/models.py b/97suifangqa/apps/indicator/models.py new file mode 100644 index 0000000..bd57d87 --- /dev/null +++ b/97suifangqa/apps/indicator/models.py @@ -0,0 +1,1127 @@ +# -*- coding: utf-8 -*- +# +# Weitian Li <liweitianux@foxmail.com> +# updated: 2013/08/12 +# + +""" +apps/indicator models +""" + +from django.db import models +from django.contrib import admin +from django.contrib.auth.models import User +# '@permalink' is no longer recommended +from django.core.urlresolvers import reverse + +import re +import datetime + +import sympy +from sympy.core.sympify import SympifyError + +from utils.xpinyin import Pinyin + + +class IndicatorCategory(models.Model): # {{{ + """ + 对 Indicator 进行分类,用于前端按分类显示和选择指标。 + """ + name = models.CharField(u"指标类别名称", max_length=100) + pinyin = models.CharField(u"拼音", max_length=200, + editable=False, blank=True) + englishName = models.CharField(u"Indicator Category Name", + max_length=200, blank=True) + description = models.TextField(u"指标类别描述", blank=True) + # 记录添加的用户,用户只能修改自己添加的对象 + addByUser = models.ForeignKey(User, verbose_name=u"添加的用户", + related_name="indicator_categories") + + class Meta: + verbose_name_plural = u"指标类别" + ordering = ['pinyin', 'id'] + + def __unicode__(self): + return u"< IndicatorCategory: #%s, %s addBy %s >"\ + % (self.id, self.name, self.addByUser.username) + + def show(self): + """ + used in 'search/search.html' + to show search result + """ + return self.__unicode__() + + def get_absolute_url(self): + # need define url with name='show-category', 'pk' as parameter + return reverse('show-category', + kwargs={'pk': self.id}) + + # auto generate `pinyin' + def save(self, **kwargs): + p = Pinyin() + self.pinyin = p.get_pinyin(self.name) + super(IndicatorCategory, self).save(**kwargs) + + def dump(self, **kwargs): + dump_data = { + 'id': self.id, + 'name': self.name, + 'pinyin': self.pinyin, + 'englishName': self.englishName, + 'description': self.description, + 'addByUser_id': self.addByUser.id, + } + return dump_data +# }}} + + +class Indicator(models.Model): # {{{ + """ + 指标模型 + """ + name = models.CharField(u"指标名称", max_length=100) + pinyin = models.CharField(u"拼音", max_length=200, + editable=False, blank=True) + englishName = models.CharField(u"Indicator Name", + max_length=200, blank=True) + description = models.TextField(u"指标描述", blank=True) + # Indicator 接受数据类型/格式等说明/示例 + helpText = models.CharField(u"帮助", max_length=300, blank=True) + # 记录添加指标的用户,用户只能修改自己添加的指标 + addByUser = models.ForeignKey(User, verbose_name=u"添加的用户", + related_name="indicators") + # Category + categories = models.ManyToManyField(IndicatorCategory, + verbose_name=u"所属类别", related_name="indicators") + # DATA_TYPES for indicator + INTEGER_TYPE = u'IN' # 整数型 + FLOAT_TYPE = u'FL' # 浮点型 + RANGE_TYPE = u'RG' # 范围型(eg. 250-500) + FLOAT_RANGE_TYPE = u'FR' # 浮点型/范围型,接受定值或范围 + PM_TYPE = u'PM' # +/- 型 + RADIO_TYPE = u'RD' # 单选型 + CHECKBOX_TYPE = u'CB' # 多选多 + DATA_TYPES = ( + (INTEGER_TYPE, u"整数型"), + (FLOAT_TYPE, u"浮点定值型"), + (RANGE_TYPE, u"浮点范围型"), + (FLOAT_RANGE_TYPE, u"定值或范围型"), + (PM_TYPE, u"阴阳型(+/-)"), + #(RADIO_TYPE, u"单选型"), + #(CHECKBOX_TYPE, u"多选型"), + ) + dataType = models.CharField(u"数据类型", max_length=2, + choices=DATA_TYPES) + + class Meta: + verbose_name_plural = u"医学指标" + ordering = ['pinyin', 'id'] + + def __unicode__(self): + return u"< Indicator: #%s, %s, dataType %s addBy %s >"\ + % (self.id, self.name, self.dataType, + self.addByUser.username) + + def show(self): + """ + used in 'search/search.html' + to show search result + """ + return self.__unicode__() + + def get_absolute_url(self): + return reverse('show-indicator', + kwargs={'pk': self.id}) + + # auto generate `pinyin' + def save(self, **kwargs): + p = Pinyin() + self.pinyin = p.get_pinyin(self.name) + super(Indicator, self).save(**kwargs) + + def check_unit(self, **kwargs): + """ + Check if the validity of the units specified for the indicator. + A indicator must have one 'standard unit'. + if indicator.dataType in [INTEGER_TYPE, PM_TYPE], + then units are not needed. + """ + if self.dataType in [self.FLOAT_TYPE, self.RANGE_TYPE, + self.FLOAT_RANGE_TYPE]: + std_unit = self.units.filter(standard=True) + if std_unit: + return True + else: + print u"Indicator id=%s 未指定标准单位" % self.id + return False + else: + print u"dataType=%s 不需要单位" % self.dataType + return True + + def _get_unit(self, type="standard"): + if type == "standard": + _units = self.units.filter(standard=True) + elif type == "other": + _units = self.units.filter(standard=False) + else: + _units = [] + return list(_units) + + def get_unit(self, type="standard"): + """ + return a 'list' which contains the 'Unit's + related to the indicator + get_unit(type): + type = standard(default), other, all + this return the 'standard unit' by default + if 'type="all"', the 'standard unit' comes first + """ + if type == "all": + # get all units + # standard unit first + _units = self._get_unit(type="standard")\ + + self._get_unit(type="other") + return _units + else: + return self._get_unit(type) + + def check_confine(self): + """ + check the existence of the related InnateConfine + """ + try: + c = self.innate_confine + return True + except InnateConfine.DoesNotExist: + print u'Indicator id=%s 未指定 InnateConfine' % self.id + raise ValueError(u'Indicator id=%s 未指定 InnateConfine' + % self.id) + return False + + def get_confine(self): + """ + dump the confine data from the related InnateConfine + """ + try: + c = self.innate_confine + return c.dump() + except InnateConfine.DoesNotExist: + print u'Indicator id=%s 未指定 InnateConfine' % self.id + return {} + + def is_ready(self): + """ + check the status of this indicator, + if 'Unit's and 'InnateConfine' are correctly specified, + then the Indicator is ready to use. returned 'True' + """ + return (self.check_unit() and self.check_confine()) + + def dump(self, **kwargs): + dump_data = { + 'id': self.id, + 'name': self.name, + 'pinyin': self.pinyin, + 'englishName': self.englishName, + 'description': self.description, + 'helpText': self.helpText, + 'addByUser_id': self.addByUser.id, + 'dataType': self.dataType, + 'categories_id': [c.id + for c in self.categories.all()], + 'units_id': [u.id + for u in self.get_unit(type="all")] + } + return dump_data +# }}} + + +class UserIndicator(models.Model): # {{{ + """ + 记录某用户关注了哪些指标 + """ + user = models.OneToOneField(User, verbose_name=u"用户", + related_name="user_indicator") + followedIndicators = models.ManyToManyField(Indicator, + verbose_name=u"关注的指标", + related_name="user_indicators", + null=True, blank=True) + + class Meta: + verbose_name_plural = u"用户指标信息" + + def __unicode__(self): + return u"< UserIndicator: for %s >" % self.user.username +# }}} + + +class IndicatorRecord(models.Model): # {{{ + """ + 指标记录 + 对应某指标某一次的数据记录 + """ + indicator = models.ForeignKey(Indicator, verbose_name=u"化验指标", + related_name="indicator_records") + user = models.ForeignKey(User, verbose_name=u"用户", + related_name="indicator_records") + # date + created_at = models.DateTimeField(u"创建时间", auto_now_add=True) + updated_at = models.DateTimeField(u"更新时间", + auto_now_add=True, auto_now=True) + # data + date = models.DateField(u"化验日期") + # TODO: limit_choices_to + unit = models.ForeignKey("Unit", verbose_name=u"数据单位", + related_name="indicator_records", null=True, blank=True) + value = models.CharField(u"指标数据值", max_length=30, + blank=True) + val_max = models.FloatField(u"数据范围上限", + null=True, blank=True) + val_min = models.FloatField(u"数据范围下限", + null=True, blank=True) + notes = models.TextField(u"记录说明", blank=True) + + class Meta: + verbose_name_plural = u"指标数据记录" + ordering = ['id', 'date', 'created_at'] + + def __unicode__(self): + return u"< IndicatorRecord: #%s; %s, %s, %s >" % (self.id, + self.user.username, self.indicator.name, self.date) + + def get_absolute_url(self): + return reverse('show-record', + kwargs={'pk': self.id}) + + def save(self, **kwargs): + if self.is_valid() and self.check_confine: + super(IndicatorRecord, self).save(**kwargs) + else: + raise ValueError(u'您输入的数据不符合要求') + + def is_valid(self, **kwargs): # {{{ + """验证输入数据是否合法""" + if self.indicator.dataType == self.indicator.INTEGER_TYPE: + # 整数型 + try: + value = int(self.value) + return True + except ValueError: + raise ValueError(u'您提交的指标数据类型不正确') + return False + elif self.indicator.dataType == self.indicator.FLOAT_TYPE: + # 浮点型 + if not self.unit: + raise ValueError(u'未填写单位') + return False + try: + value = float(self.value) + return True + except ValueError: + raise ValueError(u'value 数据类型不正确') + return False + elif self.indicator.dataType == self.indicator.RANGE_TYPE: + # 范围型 + if not self.unit: + raise ValueError(u'未填写单位') + return False + if (self.val_max is None) or (self.val_min is None): + raise ValueError(u'val_max 或 val_min 未填写') + return False + if (self.val_max <= self.val_min): + raise ValueError(u'val_max <= val_min') + return False + return True + elif self.indicator.dataType == self.indicator.FLOAT_RANGE_TYPE: + # 定值/范围型 (浮点定值优先) + if not self.unit: + raise ValueError(u'未填写单位') + return False + if self.value: + # 定值 + try: + value = float(self.value) + return True + except ValueError: + raise ValueError(u'value 数据类型不正确') + return False + elif (self.val_max is not None) and (self.val_min is not None): + # 范围值 + if (self.val_max <= self.val_min): + raise ValueError(u'val_max <= val_min') + return False + else: + return True + else: + raise ValueError(u'您提交的指标数据不符合要求') + return False + elif self.indicator.dataType == self.indicator.PM_TYPE: + # +/- 型,无单位要求 + if (len(self.value) == 1) and (self.value in [u'+', u'-']): + return True + else: + raise ValueError(u'value 只接受 "+" 或 "-"') + return False + ## TODO: RADIO_TYPE, CHECKBOX_TYPE + elif self.indicator.dataType in [self.indicator.RADIO_TYPE, + self.indicator.CHECKBOX_TYPE]: + raise ValueError(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现') + return False + else: + raise ValueError(u'指标数据类型不合法') + return False + # }}} + + def check_confine(self, **kwargs): # {{{ + """ + check if the record data within the related confine: + math_min <= value <= math_max + + NOTE: convert record data to 'standard unit' before comparison + """ + sind = self.indicator + # unit relation + unit_rel = self.unit.relation + v = sympy.symbols('v') + rel_sym = sympy.sympify(unit_rel) + # error message + errmsg = u"'%s' 求值错误,请检查只含有变量 'v'" % unit_rel + # check + if sind.dataType in [sind.FLOAT_TYPE, sind.RANGE_TYPE, + sind.FLOAT_RANGE_TYPE]: + if not sind.check_confine(): + return False + # InnateConfine is ok + sic = sind.innate_confine + # value + if self.value: + try: + value = float(self.value) + except ValueError: + print u'ERROR: value="%s" cannot convert to float'\ + % self.value + return False + # 'value' unit conversion + try: + value_std = float(rel_sym.evalf(subs={v: value})) + except ValueError: + print errmsg + raise ValueError(errmsg) + if (value_std < sic.math_min) or ( + value_std > sic.math_max): + print u'ERROR: value(std) < math_min or value(std) > math_max' + return False + # val_max + if self.val_max is not None: + # unit conversion + try: + val_max_std = float(rel_sym.evalf( + subs={v: self.val_max})) + except ValueError: + print errmsg + raise ValueError(errmsg) + if (val_max_std <= sic.math_min) or ( + val_max_std > sic.math_max): + print u'ERROR: val_max(std) <= math_min or val_max(std) > math_max' + return False + # val_min + if self.val_min is not None: + try: + val_min_std = float(rel_sym.evalf( + subs={v: self.val_min})) + except ValueError: + print errmsg + raise ValueError(errmsg) + if (val_min_std < sic.math_min) or ( + val_min_std >= sic.math_max): + print u'ERROR: val_min(std) < math_min or val_min(std) >= math_max' + return False + # check finished + return True + else: + # INTEGER_TYPE or PM_TYPE + return True + + # }}} + + def get_data(self, **kwargs): # {{{ + """ + get the record data + in unit originally filled by the user + """ + # check the indicator.dataType + sind = self.indicator + if sind.dataType in [sind.FLOAT_TYPE, sind.RANGE_TYPE, + sind.FLOAT_RANGE_TYPE]: + # self.value + if self.value: + value = float(self.value) + else: + value = None + # self.val_max + if self.val_max: + val_max = self.val_max + else: + val_max = None + # self.val_min + if self.val_min: + val_min = self.val_min + else: + val_min = None + # output data + data = { + 'date': self.date.isoformat(), + 'value': value, + 'val_max': val_max, + 'val_min': val_min, + 'unit': self.unit.dump(), + 'notes': self.notes, + 'record_histories_id': [rh.id + for rh in self.record_histories.all()], + } + else: + data = { + 'date': self.date.isoformat(), + 'value': self.value, + 'val_max': self.val_max, + 'val_min': self.val_min, + 'unit': {}, + 'notes': self.notes, + 'record_histories_id': [rh.id + for rh in self.record_histories.all()], + } + return data + # }}} + + def get_data_std(self, **kwargs): # {{{ + """ + get the record data in 'standard unit' + """ + # check the indicator.dataType + sind = self.indicator + if sind.dataType in [sind.FLOAT_TYPE, sind.RANGE_TYPE, + sind.FLOAT_RANGE_TYPE]: + # check if self.unit standard + if self.unit.standard: + return self.get_data(**kwargs) + # check if specified 'standard unit' for this indicator + elif sind.check_unit(): + # unit relation + std_unit = sind.get_unit(type="standard")[0] + unit_rel = self.unit.relation + v = sympy.symbols('v') + rel_sym = sympy.sympify(unit_rel) + # error message + errmsg = u"'%s' 求值错误,请检查只含有变量 'v'" % unit_rel + # self.value + if self.value: + value = float(self.value) + try: + value_std = float(rel_sym.evalf( + subs={v: value})) + except ValueError: + print errmsg + raise ValueError(errmsg) + else: + value_std = None + # self.val_max + if self.val_max: + val_max = self.val_max + try: + val_max_std = float(rel_sym.evalf( + subs={v: val_max})) + except ValueError: + print errmsg + raise ValueError(errmsg) + else: + val_max_std = None + # self.val_min + if self.val_min: + val_min = self.val_min + try: + val_min_std = float(rel_sym.evalf( + subs={v: val_min})) + except ValueError: + print errmsg + raise ValueError(errmsg) + else: + val_min_std = None + # output data + data_std = { + 'date': self.date.isoformat(), + 'value': value_std, + 'val_max': val_max_std, + 'val_min': val_min_std, + 'unit': std_unit.dump(), + 'notes': self.notes, + 'record_histories_id': [rh.id + for rh in self.record_histories.all()], + } + return data_std + else: + print u"id=%s Indicator 尚未指定标准单位" % sind.id + return {} + else: + return self.get_data(**kwargs) + # }}} + + def is_normal(self, **kwargs): # {{{ + """ + compare the given data with the indicator confines. + + if the data within the confines, then return 'True', + which suggests the indicator is normal. + if the data out of the confines, then return 'False'. + + * return 'None' if there are other problems. + """ + sind = self.indicator + # 先检查 Unit 和 InnateConfine 是否已经正确指定 + if not sind.is_ready(): + print u"ERROR: Indicator id=%s NOT ready yet" % sind.id + return None + sic = sind.innate_confine + # 获取以标准单位为单位的数据 + data_std = self.get_data_std() + # 根据数据类型判断是否处于正常情况 + if sind.dataType == sind.INTEGER_TYPE: + # 整数型 + value = int(data_std['value']) + val_norm = int(sic.val_norm) + # XXX: modify accordingly + if value == val_norm: + return True + else: + return False + elif sind.dataType == sind.FLOAT_TYPE: + # 浮点型 + value = data_std['value'] + human_max = sic.human_max + human_min = sic.human_min + if (value <= human_max) and (value >= human_min): + return True + else: + return False + elif sind.dataType == sind.RANGE_TYPE: + # 范围型 + val_max = data_std['val_max'] + val_min = data_std['val_min'] + human_max = sic.human_max + human_min = sic.human_min + if (val_max <= human_max) and (val_min >= human_min): + return True + else: + return False + elif sind.dataType == sind.FLOAT_RANGE_TYPE: + # 浮点型/范围型 + if self.value: + value = float(data_std['value']) + human_max = sic.human_max + human_min = sic.human_min + if (value <= human_max) and (value >= human_min): + return True + else: + return False + elif self.val_max and self.val_min: + # 范围值 + val_max = data_std['val_max'] + val_min = data_std['val_min'] + human_max = sic.human_max + human_min = sic.human_min + if (val_max <= human_max) and (val_min >= human_min): + return True + else: + return False + else: + print u'数据类型错误' + raise ValueError(u'数据类型错误') + return None + elif sind.dataType == sind.PM_TYPE: + # 阴阳(+/-)型 + value = data_std['value'] + val_norm = sic.val_norm + if value == val_norm: + return True + else: + return False + elif sind.dataType in [sind.RADIO_TYPE, sind.CHECKBOX_TYPE]: + print u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现' + raise ValueError(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现') + return None + else: + print u'数据类型不合法' + raise ValueError(u'数据类型不合法') + return None + # }}} + + def dump(self, **kwargs): + dump_data = { + 'id': self.id, + 'indicator_id': self.indicator.id, + 'user_id': self.user.id, + 'created_at': self.created_at.isoformat(), + 'updated_at': self.updated_at.isoformat(), + 'date': self.date.isoformat(), + 'unit_id': self.unit.id, + 'value': self.value, + 'val_max': self.val_max, + 'val_min': self.val_min, + 'notes': self.notes, + 'record_histories_id': [rh.id + for rh in self.record_histories.all()], + } + return dump_data +# }}} + + +class RecordHistory(models.Model): # {{{ + """ + 指标记录 IndicatorRecord 的历史数据和对应的修改原因 + """ + indicatorRecord = models.ForeignKey("IndicatorRecord", + verbose_name=u"指标数据记录", + related_name="record_histories") + # modification datetime + created_at = models.DateTimeField(u"创建时间", auto_now_add=True) + # modification reason + reason = models.TextField(u"修改原因") + # original data before modification + date_bak = models.DateField(u"原化验日期", blank=True, + editable=False) + unit_bak = models.ForeignKey("Unit", verbose_name=u"原数据单位", + related_name="record_histories", + null=True, blank=True, editable=False) + value_bak = models.CharField(u"原指标数据值", max_length=30, + blank=True, editable=False) + val_max_bak = models.FloatField(u"原数据范围上限", + null=True, blank=True, editable=False) + val_min_bak = models.FloatField(u"原数据范围下限", + null=True, blank=True, editable=False) + notes_bak = models.TextField(u"原记录说明", blank=True, + editable=False) + + class Meta: + verbose_name_plural = u"记录修改历史" + ordering = ['indicatorRecord__id', 'created_at'] + + def __unicode__(self): + return u"< RecordHistory: for Record #%s, %s >"\ + % (self.indicatorRecord.id, self.created_at) + + def save(self, **kwargs): + sr = self.indicatorRecord + # get history data from *not-saved* IndicatorRecord + self.date_bak = sr.date + self.unit_bak = sr.unit + self.value_bak = sr.value + self.val_max_bak = sr.val_max + self.val_min_bak = sr.val_min + self.notes_bak = sr.notes + # save + super(RecordHistory, self).save(**kwargs) + + def dump(self, **kwargs): + dump_data = { + 'id': self.id, + 'indicatorRecord_id': self.indicatorRecord.id, + 'created_at': self.created_at.isoformat(), + 'reason': self.reason, + 'date_bak': self.date_bak.isoformat(), + 'unit_bak_id': self.unit_bak.id, + 'value_bak': self.value_bak, + 'val_max_bak': self.val_max_bak, + 'val_min_bak': self.val_min_bak, + 'notes_bak': self.notes_bak, + } + return dump_data +# }}} + + +class Unit(models.Model): # {{{ + """ + 指标单位 + 是否为标准单位,其他单位与标准单位的换算关系 + """ + # related to the `indicator' + indicator = models.ForeignKey(Indicator, verbose_name=u"指标", + related_name="units") + name = models.CharField(u"单位名称", max_length=50) + symbol = models.CharField(u"单位符号", max_length=50) + standard = models.BooleanField(u"是否标准单位", default=False) + # conversion relation + relation = models.CharField(u"与标准单位的映射", + help_text=u"value (std_unit) = f(v)", + max_length=100, blank=True) + description = models.TextField(u"单位描述", blank=True) + # 记录添加的用户,用户只能修改自己添加的对象 + addByUser = models.ForeignKey(User, verbose_name=u"添加的用户", + related_name="units") + + class Meta: + verbose_name_plural = u"单位" + + def __unicode__(self): + if self.standard: + _std = ' (*)' + else: + _std = '' + return u"< Unit: %s%s for %s, addBy %s >" % (self.name, + _std, self.indicator.name, self.addByUser.username) + + def is_valid(self): + if self.standard: + std_unit_list = self.indicator.get_unit(type="standard") + if std_unit_list: + std_unit = std_unit_list[0] + if self.id == std_unit.id: + return True + else: + print u"该指标已经指定了标准单位" + raise ValueError(u"该指标已经指定了标准单位") + return False + else: + return True + else: + if (not self.relation): + print u"单位映射关系未填写" + raise ValueError(u"单位映射关系未填写") + return False + else: + try: + fsym = sympy.sympify(self.relation) + return True + except SympifyError: + print u"'%s' 不是合法的算术表达式" % self.relation + raise ValueError(u"'%s' 不是合法的算术表达式"\ + % self.relation) + return False + + def save(self, **kwargs): + if self.standard: + self.relation = "v" + if self.is_valid(): + super(Unit, self).save(**kwargs) + + def dump(self, **kwargs): + dump_data = { + 'id': self.id, + 'indicator_id': self.indicator.id, + 'name': self.name, + 'symbol': self.symbol, + 'standard': self.standard, + 'relation': self.relation, + 'addByUser_id': self.addByUser.id, + } + return dump_data +# }}} + + +class InnateConfine(models.Model): # {{{ + """ + 指标数据范围 + 数学可能值范围,人体正常值范围 + + 注意: + 如果数据类型需要单位,则必须使用"标准单位"; + IndicatorRecord.is_normal() 方法需要如此; + 因为 标准单位 到 其他单位 的换算没有实现。 + """ + # indicator + indicator = models.OneToOneField("Indicator", + verbose_name=u"指标", related_name="innate_confine") + # unit + # TODO: limit_choices_to + unit = models.ForeignKey("Unit", related_name="innate_confines", + verbose_name=u"单位", null=True, blank=True) + # normal value (for INTEGER_TYPE, PM_TYPE) + val_norm = models.CharField(u"正常值", max_length=30, blank=True, + help_text=u'填写"整数型","阴阳(+/-)型数据"') + # normal range + human_max = models.FloatField(u"人体正常值上限", + null=True, blank=True) + human_min = models.FloatField(u"人体正常值下限", + null=True, blank=True) + # possbile range + math_max = models.FloatField(u"数学可能值上限", + null=True, blank=True) + math_min = models.FloatField(u"数学可能值下限", + null=True, blank=True) + # description or notes + description = models.TextField(u"描述", blank=True) + # 记录添加的用户,用户只能修改自己添加的对象 + addByUser = models.ForeignKey(User, verbose_name=u"添加的用户", + related_name="innate_confines") + + class Meta: + verbose_name_plural = u"固有数值范围" + + def __unicode__(self): + return u"< InnateConfine: for %s, addBy %s >"\ + % (self.indicator.name, self.addByUser.username) + + def save(self, **kwargs): + """ + check the data before save + """ + if self.is_valid(): + super(InnateConfine, self).save(**kwargs) + else: + print u"您填写的数据不符合要求,请检查" + return self + + def is_valid(self): # {{{ + """ + check the validity of data + """ + sind = self.indicator + if sind.dataType in [sind.FLOAT_TYPE, sind.RANGE_TYPE, + sind.FLOAT_RANGE_TYPE]: + # check unit + if not (self.unit and self.unit.standard): + raise ValueError(u'单位未填写/不是标准单位') + return False + if (self.human_max is None) or (self.human_min is None): + raise ValueError(u'Error: human_max 或 human_min 未填写') + return False + if not (self.human_max > self.human_min): + raise ValueError(u'Error: human_max <= human_min') + return False + # check 'math_max' and 'math_min' + if (self.math_max is None) or (self.math_min is None): + raise ValueError(u'Error: math_max 或 math_min 未填写') + return False + if not (self.math_max > self.math_min): + raise ValueError(u'Error: math_max <= math_min') + return False + # compare 'human*' and 'math*' + if (self.human_max > self.math_max) or ( + self.human_min < self.math_min): + raise ValueError(u'Error: human_max>math_max / human_min<math_min') + return False + # check finished + return True + elif sind.dataType == sind.INTEGER_TYPE: + # 整数型 + try: + val_norm = int(self.val_norm) + return True + except ValueError: + raise ValueError(u'val_norm="%s" 不是整数型值' + % self.val_norm) + return False + elif sind.dataType == sind.PM_TYPE: + # 阴阳(+/-)型 + if (len(self.val_norm) == 1) and ( + self.val_norm in [u'+', u'-']): + return True + else: + raise ValueError(u'value 只接受 "+" 或 "-"') + return False + ## TODO: RADIO_TYPE, CHECKBOX_TYPE + elif sind.dataType in [sind.RADIO_TYPE, sind.CHECKBOX_TYPE]: + raise ValueError(u'RADIO_TYPE, CHECKBOX_TYPE 验证未实现') + return False + else: + raise ValueError(u'数据不符合要求') + return False + # }}} + + def dump(self, **kwargs): + dump_data = { + 'id': self.id, + 'indicator_id': self.indicator.id, + 'unit': self.unit.dump(), + 'val_norm': self.val_norm, + 'human_max': self.human_max, + 'human_min': self.human_min, + 'math_max': self.math_max, + 'math_min': self.math_min, + 'addByUser_id': self.addByUser.id, + } + return dump_data +# }}} + + +class StatisticalConfine(models.Model): # {{{ + + deviation_ceiling = models.FloatField(u"统计偏差范围上限", null=True, blank=True) + deviation_floor = models.FloatField(u"统计偏差范围限", null=True, blank=True) + + class Meta: + verbose_name_plural = u"统计数值范围" + + def __unicode__(self): + return "< StatisticalConfine: %s >" % self.id +# }}} + + +#class UnitLabSheet(models.Model): # {{{ +# +# equipment = models.CharField(u"化验设备", max_length=100, null=True, blank= True) +# #figure = models.OneToOneField("figure.Figure", verbose_name=u"图片", related_name="unitlabsheet") +# unit_standard = models.ForeignKey("UnitStandard", verbose_name = u"单位标准", related_name="unit_lab_sheets", null=True, blank=True) +# +# class Meta: +# verbose_name_plural = u"标准化验单" +# +# def __unicode__(self): +# return "< UnitLabSheet: %s >" % self.id +## }}} + + +#class ReviseReason(models.Model): # {{{ +# """ +# 记录 IndicatorRecord 数据修改原因 +# 医学数据重要且要求准确,不可随意修改 +# ReviseReason 添加后不允许再修改? +# """ +# # TODO: 中文支持 +# content = models.TextField(u"内容") +# created_at = models.DateTimeField(u"创建时间", +# editable=False, auto_now_add=True) +# user = models.ForeignKey(User, verbose_name=u"用户") +# +# class Meta: +# verbose_name_plural=u"指标记录修改原因" +# +# def __unicode__(self): +# return u"< ReviseReason: %s, %s >" % (self.id, +# self.user.username) +# +# def dump(self, **kwargs): +# dump_data = { +# 'id': self.id, +# 'content': self.content, +# 'created_at': self.created_at.isoformat(), +# 'user_id': self.user.id, +# } +# return dump_data +## }}} + + +class RelatedIndicator(models.Model): # {{{ + """ + 记录 blog/annotation 与哪些 indicator 关联, + 以及关联的权重。 + + 用于为用户推荐可以关注的指标。 + """ + # indicator + indicator = models.ForeignKey("Indicator", + related_name="related_indicators", + verbose_name=u"待关联指标") + # type of related object + ANNOTATION_TYPE = 'AN' + BLOG_TYPE = 'BL' + OBJECT_TYPES = ( + (ANNOTATION_TYPE, '文章注释'), + (BLOG_TYPE, '文章'), + ) + objectType = models.CharField(u"待关联目标类型", max_length=2, + choices=OBJECT_TYPES) + # objects + annotation = models.ForeignKey("sciblog.BlogAnnotation", + related_name="related_indicators", + verbose_name=u"待关联文章注释", null=True, blank=True) + blog = models.ForeignKey("sciblog.SciBlog", + related_name="related_indicators", + verbose_name=u"待关联文章", null=True, blank=True) + # weight + weight = models.FloatField(u"权重", help_text=u"范围: 0-10") + # datetime + created_at = models.DateTimeField(u"创建时间", auto_now_add=True) + updated_at = models.DateTimeField(u"更新时间", + auto_now_add=True, auto_now=True) + + class Meta: + verbose_name_plural = u"指标关联信息" + ordering = ['objectType'] + + def __unicode__(self): + if self.objectType == self.ANNOTATION_TYPE: + info = 'Annotation #%s' % self.annotation.id + elif self.objectType == self.BLOG_TYPE: + info = 'Blog #%s' % self.blog.id + else: + info = '%s' % self.objectType + return u"< RelatedIndicator: %s -> %s >"\ + % (info, self.indicator.name) + + def save(self, **kwargs): + if self.is_valid(): + if self.objectType == self.ANNOTATION_TYPE: + self.blog = None + if self.objectType == self.BLOG_TYPE: + self.annotation = None + # save + super(RelatedIndicator, self).save(**kwargs) + else: + return self + + def is_valid(self, **kwargs): # {{{ + """ + annotation/blog must be consistent with objectType + """ + # check objectType + if self.objectType == self.ANNOTATION_TYPE: + if not self.annotation: + raise ValueError(u"Error: annotation 未填写") + return False + elif self.objectType == self.BLOG_TYPE: + if not self.blog: + raise ValueError(u"Error: blog 未填写") + return False + else: + raise ValueError(u"Error: objectType 不合法") + return False + # check weight range + if (self.weight < 0.0) or (self.weight > 10.0): + raise ValueError(u"Error: weight < 0.0 / weight > 10.0") + return False + # finished + return True + # }}} + + def dump(self, **kwargs): + # annotation_id + if self.annotation: + annotation_id = self.annotation.id + else: + annotation_id = None + # blog_id + if self.blog: + blog_id = self.blog.id + else: + blog_id = None + # dump data + dump_data = { + 'id': self.id, + 'indicator_id': self.indicator.id, + 'objectType': self.objectType, + 'annotation_id': annotation_id, + 'blog_id': blog_id, + 'weight': self.weight, + 'created_at': self.created_at.isoformat(), + 'updated_at': self.updated_at.isoformat(), + } + return dump_data +# }}} + + + +admin.site.register([ + IndicatorCategory, + Indicator, + UserIndicator, + IndicatorRecord, + RecordHistory, + Unit, + InnateConfine, + StatisticalConfine, + #UnitLabSheet, + #ReviseReason, + RelatedIndicator, + ]) + +# vim: set ts=4 sw=4 tw=0 fenc=utf-8 ft=python: # diff --git a/97suifangqa/apps/indicator/search_indexes.py b/97suifangqa/apps/indicator/search_indexes.py new file mode 100644 index 0000000..b7a8437 --- /dev/null +++ b/97suifangqa/apps/indicator/search_indexes.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- + +from haystack import indexes + +from indicator import models as im + + + +# IndicatorCategoryIndex {{{ +class IndicatorCategoryIndex(indexes.SearchIndex, indexes.Indexable): + """ + search index for 'Indicator' + """ + text = indexes.CharField(document=True, use_template=True) + addByUser = indexes.CharField(model_attr='addByUser') + + def get_model(self): + return im.IndicatorCategory + + def index_queryset(self, using=None): + """ + used when the entire index for model is updated + """ + return self.get_model().objects.all() +# }}} + + +# IndicatorIndex {{{ +class IndicatorIndex(indexes.SearchIndex, indexes.Indexable): + """ + search index for 'Indicator' + """ + text = indexes.CharField(document=True, use_template=True) + addByUser = indexes.CharField(model_attr='addByUser') + dataType = indexes.CharField(model_attr='dataType') + categories = indexes.MultiValueField() + + def get_model(self): + return im.Indicator + + def prepare_categories(self, obj): + return [c.id for c in obj.categories.all()] + + def index_queryset(self, using=None): + """ + used when the entire index for model is updated + """ + return self.get_model().objects.all() +# }}} + + + +# vim: set ts=4 sw=4 tw=0 fenc=utf-8 ft=python: diff --git a/97suifangqa/apps/indicator/templates/done.html b/97suifangqa/apps/indicator/templates/done.html new file mode 100644 index 0000000..2a11ea8 --- /dev/null +++ b/97suifangqa/apps/indicator/templates/done.html @@ -0,0 +1,9 @@ +<html> +<head> + <title>DONE</title> +</head> + +<body> + <h1>DONE</h1> +</body> +</html> diff --git a/97suifangqa/apps/indicator/templates/show_category.html b/97suifangqa/apps/indicator/templates/show_category.html new file mode 100644 index 0000000..1448bb3 --- /dev/null +++ b/97suifangqa/apps/indicator/templates/show_category.html @@ -0,0 +1,32 @@ +<html> +<head> + <title>IndicatorCategory Details (id={{ object.id }})</title> +</head> + +<body> + <h1>IndicatorCategory Details (id={{ object.id }})</h1> + + <table> + <tr> + <td>name:</td> + <td>{{ object.name }}</td> + </tr> + <tr> + <td>pinyin:</td> + <td>{{ object.pinyin }}</td> + </tr> + <tr> + <td>englishName:</td> + <td>{{ object.englishName }}</td> + </tr> + <tr> + <td>description:</td> + <td>{{ object.description }}</td> + </tr> + <tr> + <td>addByUser_username:</td> + <td>{{ object.addByUser.username }}</td> + </tr> + </table> +</body> +</html> diff --git a/97suifangqa/apps/indicator/templates/show_indicator.html b/97suifangqa/apps/indicator/templates/show_indicator.html new file mode 100644 index 0000000..0ecd027 --- /dev/null +++ b/97suifangqa/apps/indicator/templates/show_indicator.html @@ -0,0 +1,48 @@ +<html> +<head> + <title>Indicator Details (id={{ object.id }})</title> +</head> + +<body> + <h1>Indicator Details (id={{ object.id }})</h1> + + <table> + <tr> + <td>name:</td> + <td>{{ object.name }}</td> + </tr> + <tr> + <td>pinyin:</td> + <td>{{ object.pinyin }}</td> + </tr> + <tr> + <td>englishName:</td> + <td>{{ object.englishName }}</td> + </tr> + <tr> + <td>description:</td> + <td>{{ object.description }}</td> + </tr> + <tr> + <td>helpText:</td> + <td>{{ object.helpText }}</td> + </tr> + <tr> + <td>addByUser_username:</td> + <td>{{ object.addByUser.username }}</td> + </tr> + <tr> + <td>categories_name:</td> + <td> + {% for c in object.categories.all %} + {{ c.name }}; + {% endfor %} + </td> + </tr> + <tr> + <td>dataType:</td> + <td>{{ object.dataType }}</td> + </tr> + </table> +</body> +</html> diff --git a/97suifangqa/apps/indicator/templates/show_record.html b/97suifangqa/apps/indicator/templates/show_record.html new file mode 100644 index 0000000..49c7918 --- /dev/null +++ b/97suifangqa/apps/indicator/templates/show_record.html @@ -0,0 +1,52 @@ +<html> +<head> + <title>IndicatorRecord Details (id={{ object.id }})</title> +</head> + +<body> + <h1>IndicatorRecord Details (id={{ object.id }})</h1> + + <table> + <tr> + <td>indicator_name:</td> + <td>{{ object.indicator.name }}</td> + </tr> + <tr> + <td>user_username:</td> + <td>{{ object.user.username }}</td> + </tr> + <tr> + <td>created_at:</td> + <td>{{ object.created_at }}</td> + </tr> + <tr> + <td>updated_at:</td> + <td>{{ object.updated_at }}</td> + </tr> + <tr> + <td>date:</td> + <td>{{ object.date }}</td> + </tr> + <tr> + <td>unit_name:</td> + <td>{{ object.unit.name }}</td> + </tr> + <tr> + <td>value:</td> + <td>{{ object.value }}</td> + </tr> + <tr> + <td>val_max:</td> + <td>{{ object.val_max }}</td> + </tr> + <tr> + <td>val_min:</td> + <td>{{ object.val_min }}</td> + </tr> + <tr> + <td>notes:</td> + <td>{{ object.notes }}</td> + </tr> + </table> +</body> +</html> diff --git a/97suifangqa/apps/indicator/templates/simple.html b/97suifangqa/apps/indicator/templates/simple.html new file mode 100644 index 0000000..7775ab7 --- /dev/null +++ b/97suifangqa/apps/indicator/templates/simple.html @@ -0,0 +1,23 @@ +<html> +<head> + <title>{{ action }} {{ object }}</title> +</head> + +<body> + <h1>{{ action }} {{ object }}</h1> + + {% if form.errors %} + <p style="color: red;"> + Please correct the error{{ form.errors|pluralize }} below. + </p> + {% endif %} + + <form action="" method="post">{% csrf_token %} + <table> + {{ form.as_table }} + </table> + <input type="submit" value="Submit" /> + </form> +</body> +</html> + diff --git a/97suifangqa/apps/indicator/tools.py b/97suifangqa/apps/indicator/tools.py new file mode 100644 index 0000000..663ec4f --- /dev/null +++ b/97suifangqa/apps/indicator/tools.py @@ -0,0 +1,273 @@ +# -*- coding: utf-8 -*- + +""" +utils for apps/indicator +""" + +from django.contrib.auth.models import User + +from indicator import models as im +from sciblog import models as sciblogm + +import datetime + + +# get_indicator {{{ +def get_indicator(category_id="all", startswith="all"): + """ + 根据指定的 category_id 和 startswith 获取 indicator + 返回一个 dict + Dict format: + dict = { + 'a': [ {'pinyin': 'aa', ...}, {'pinyin': 'ab', ...}, ... ], + 'b': [ {'pinyin': 'ba', ...}, {'pinyin': 'bb', ...}, ... ], + ... + } + """ + + _idict = {} + if category_id == 'all': + iqueryset = im.Indicator.objects.all() + else: + try: + cid = int(category_id) + cate = im.IndicatorCategory.objects.get(id=cid) + iqueryset = cate.indicators.all() + except ValueError: + raise ValueError(u'category_id 不是整数型') + return _idict + except im.IndicatorCategory.DoesNotExist: + raise ValueError(u'id=%s 的 IndicatorCategory 不存在' + % cid) + return _idict + + if startswith == 'all': + starts = map(chr, range(ord('a'), ord('z')+1)) + else: + starts = [] + _str = startswith.lower() + for i in _str: + if i >= 'a' and i <= 'z': + starts.append(i) + + for l in starts: + iq = iqueryset.filter(pinyin__istartswith=l).order_by('pinyin') + _idict[l] = [ i.dump() for i in iq ] + return _idict +# }}} + + +# get_followed_indicator {{{ +def get_followed_indicator(user_id, category_id="all", startswith="all"): + """ + 获取已关注的指标 + 返回 dict, 格式与 get_indicator() 一致 + """ + + u = User.objects.get(id=user_id) + ui, created = im.UserIndicator.objects.get_or_create(user=u) + _idict = {} + iqueryset = ui.followedIndicators.all() + if not category_id == 'all': + try: + cid = int(category_id) + iqueryset = iqueryset.filter(categories__id=cid) + except ValueError: + raise ValueError(u'category_id 不是整数型') + return _idict + + if startswith == 'all': + starts = map(chr, range(ord('a'), ord('z')+1)) + else: + starts = [] + _str = startswith.lower() + for i in _str: + if i >= 'a' and i <= 'z': + starts.append(i) + + for l in starts: + iq = iqueryset.filter(pinyin__istartswith=l).order_by('pinyin') + _idict[l] = [ i.dump() for i in iq ] + return _idict +# }}} + + +# get_unfollowed_indicator {{{ +def get_unfollowed_indicator(user_id, category_id="all", startswith="all"): + """ + 获取未关注的指标 + 返回 dict, 格式与 get_indicator() 一致 + """ + + u = User.objects.get(id=user_id) + ui, created = im.UserIndicator.objects.get_or_create(user=u) + _idict = {} + iqueryset = im.Indicator.objects.exclude(user_indicators=ui) + if not category_id == 'all': + try: + cid = int(category_id) + iqueryset = iqueryset.filter(categories__id=cid) + except ValueError: + raise ValueError(u'category_id 不是整数型') + return _idict + + if startswith == 'all': + starts = map(chr, range(ord('a'), ord('z')+1)) + else: + starts = [] + _str = startswith.lower() + for i in _str: + if i >= 'a' and i <= 'z': + starts.append(i) + + for l in starts: + iq = iqueryset.filter(pinyin__istartswith=l).order_by('pinyin') + _idict[l] = [ i.dump() for i in iq ] + return _idict +# }}} + + +# get_record {{{ +def get_record(user_id, indicator_id, begin="", end="", std=False): + """ + get_record(user_id, indicator_id, begin="", end="", std=False) + + return a dict with 'date' as key, and 'get_data()' as value. + args 'begin' and 'end' to specify the date range. + arg 'std=True' to get data in standard unit + if 'begin=""', then the earliest date is given; + if 'end=""', then the latest date is given. + + return dict format: + rdata = { + 'date1': [d1r1.get_data(), d1r2.get_data(), ...], + 'date2': [d2r1.get_data(), d2r2.get_data(), ...], + ... + } + """ + uid = int(user_id) + indid = int(indicator_id) + all_records = im.IndicatorRecord.objects.\ + filter(user__id=uid, indicator__id=indid).\ + order_by('date', 'created_at') + # check if 'all_records' empty + if not all_records: + return {} + # set 'begin' and 'end' + if begin == '': + begin = all_records[0].date + if end == '': + end = all_records.reverse()[0].date + # check the validity of given 'begin' and 'end' + if (isinstance(begin, datetime.date) and + isinstance(end, datetime.date)): + records = all_records.filter(date__range=(begin, end)) + _rdata = {} + for r in records: + _d = r.date.isoformat() + # get data + if std: + _data = r.get_data_std() + else: + _data = r.get_data() + # + if _rdata.has_key(_d): + # the date key already exist + _rdata[_d] += [_data] + else: + # the date key not exist + _rdata[_d] = [_data] + # return + return _rdata + else: + raise ValueError(u"begin='%s' or end='%s' 不是合法的日期" % + (begin, end)) + return {} +# }}} + + +# get_record_std {{{ +def get_record_std(**kwargs): + return get_record(std=True, **kwargs) +# }}} + + +# calc_indicator_weight {{{ +def calc_indicator_weight(user_id, indicator_id): + """ + calculate the weight of given indicator + used by 'recommend_indicator' + """ + ### XXX: weight_type: how to store the weights into database ### + weight_annotation = 4.0 + weight_blog_catched = 3.0 + weight_blog_collected = 2.0 + weight_other = 1.0 + ################################################################ + # weight = weight_type * relatedindicator.weight + user = User.objects.get(id=user_id) + ri_qs = im.RelatedIndicator.objects.filter(indicator__id=indicator_id) + if not ri_qs: + # queryset empty + w = 0.0 + return w + # queryset not empty + annotation_ri_qs = ri_qs.filter(annotation__collected_by=user) + blogcatch_ri_qs = ri_qs.filter(blog__catched_by=user) + blogcollect_ri_qs = ri_qs.filter(blog__collected_by=user) + weights = [] + if annotation_ri_qs: + # related to annotations collected by user + for ri in annotation_ri_qs: + w = weight_annotation * ri.weight + weights.append(w) + elif blogcatch_ri_qs: + # related to blogs catched by user + for ri in blogcatch_ri_qs: + w = weight_blog_catched * ri.weight + weights.append(w) + elif blogcollect_ri_qs: + # related to blogs catched by user + for ri in blogcollect_ri_qs: + w = weight_blog_collected * ri.weight + weights.append(w) + else: + # other type, use 'ri_qs' here + for ri in ri_qs: + w = weight_other * ri.weight + weights.append(w) + # return final result + return max(weights) +# }}} + + +# recommend_indicator {{{ +def recommend_indicator(user_id, number): + """ + recommend unfollowed indicator for user, + based on his/her readings and collections. + + return a list with the id's of recommended indicators + + TODO: + performance test + """ + user_id = int(user_id) + number = int(number) + # get unfollowed indicators + u = User.objects.get(id=user_id) + ui, created = im.UserIndicator.objects.get_or_create(user=u) + uf_ind_qs = im.Indicator.objects.exclude(user_indicators=ui) + # calc weight for each unfollowed indicator + weights = [] + for ind in uf_ind_qs: + w = calc_indicator_weight(user_id, ind.id) + weights.append({'id': ind.id, 'weight': w}) + # sort 'weights' dict list by key 'weight' + weights_sorted = sorted(weights, key=lambda item: item['weight']) + weights_sorted.reverse() + # return results with largest weights + return weights_sorted[:number] +# }}} + + diff --git a/97suifangqa/apps/indicator/urls.py b/97suifangqa/apps/indicator/urls.py new file mode 100644 index 0000000..0b5b12a --- /dev/null +++ b/97suifangqa/apps/indicator/urls.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- + +""" +URL configuration for apps/indicator +""" + +from django.conf.urls.defaults import * + +from django.views.generic import DetailView, ListView +from django.views.generic.simple import direct_to_template + +from indicator import models as im + + + +## named URLs +## for 'django.core.urlresolvers.reverse()' in 'get_absolute_url()' +urlpatterns = patterns('indicator.views', + # IndicatorCategory, name='show-category' + url(r'^show/category/(?P<pk>\d+)/$', + DetailView.as_view( + model=im.IndicatorCategory, + template_name='show_category.html'), + name='show-category'), + # Indicator, name='show-indicator' + url(r'^show/indicator/(?P<pk>\d+)/$', + DetailView.as_view( + model=im.Indicator, + template_name='show_indicator.html'), + name='show-indicator'), + # IndicatorRecord, name='show-record' + # TODO: howto add '@login_required' + url(r'^show/record/(?P<pk>\d+)/$', + DetailView.as_view( + model=im.IndicatorRecord, + template_name='show_record.html'), + name='show-record'), +) + + +urlpatterns += patterns('indicator.views', + ## test + url(r'^test/$', 'test_view', name='test'), + ## get_indicator_view + url(r'^list/(?P<startswith>all)/$', + 'get_indicator_view', name='get_indicator_view'), + url(r'^list/(?P<startswith>[a-zA-Z]+)/$', + 'get_indicator_view', name='get_indicator_view'), + url(r'^category/(?P<category_id>all)/$', + 'get_indicator_view', name='get_indicator_view'), + url(r'^category/(?P<category_id>\d+)/$', + 'get_indicator_view', name='get_indicator_view'), + url(r'^category/(?P<category_id>all)/(?P<startswith>all)/$', + 'get_indicator_view', name='get_indicator_view'), + url(r'^category/(?P<category_id>\d+)/(?P<startswith>all)/$', + 'get_indicator_view', name='get_indicator_view'), + url(r'^category/(?P<category_id>all)/(?P<startswith>[a-zA-Z]+)/$', + 'get_indicator_view', name='get_indicator_view'), + url(r'^category/(?P<category_id>\d+)/(?P<startswith>[a-zA-Z]+)/$', + 'get_indicator_view', name='get_indicator_view'), + ## get_followed_indicator_view + url(r'^followed/(?P<startswith>all)/$', + 'get_followed_indicator_view', name='get_followed_indicator_view'), + url(r'^followed/(?P<startswith>[a-zA-Z]+)/$', + 'get_followed_indicator_view', name='get_followed_indicator_view'), + url(r'^followed/category/(?P<category_id>all)/$', + 'get_followed_indicator_view', name='get_followed_indicator_view'), + url(r'^followed/category/(?P<category_id>\d+)/$', + 'get_followed_indicator_view', name='get_followed_indicator_view'), + ## get_unfollowed_indicator_view + url(r'^unfollowed/(?P<startswith>all)/$', + 'get_unfollowed_indicator_view', name='get_unfollowed_indicator_view'), + url(r'^unfollowed/(?P<startswith>[a-zA-Z]+)/$', + 'get_unfollowed_indicator_view', name='get_unfollowed_indicator_view'), + url(r'^unfollowed/category/(?P<category_id>all)/$', + 'get_unfollowed_indicator_view', name='get_unfollowed_indicator_view'), + url(r'^unfollowed/category/(?P<category_id>\d+)/$', + 'get_unfollowed_indicator_view', name='get_unfollowed_indicator_view'), + ## get_record view + url(r'^record/(?P<indicator_id>\d+)/(?P<date_range>\d{8}-\d{8})/$', + 'get_record_view', name='get_record_view'), + url(r'^record/(?P<indicator_id>\d+)/(?P<date_range>\d{8}-\d{8})/std/$', + 'get_record_view', { 'std': True }), + ## recommend indicator + url(r'^recommend/indicator/(?P<number>\d+)/$', + 'recommend_indicator_view', name='recommend_indicator'), + ## add/edit category + url(r'^add/category/$', 'add_edit_category', + name='add_category'), + url(r'^edit/category/(?P<category_id>\d+)/$', 'add_edit_category', + name='edit_category'), + ## add/edit indicator + url(r'^add/indicator/$', 'add_edit_indicator', + name='add_indicator'), + url(r'^edit/indicator/(?P<indicator_id>\d+)/$', 'add_edit_indicator', + name='edit_indicator'), + ## add/edit unit + url(r'^add/unit/$', 'add_edit_unit', + name='add_unit'), + url(r'^edit/unit/(?P<unit_id>\d+)/$', 'add_edit_unit', + name='edit_unit'), + ## add/edit innateconfine + url(r'^add/confine/$', 'add_edit_confine', + name='add_confine'), + url(r'^edit/confine/(?P<confine_id>\d+)/$', 'add_edit_confine', + name='edit_confine'), + ## add/edit record + url(r'^add/record/$', 'add_edit_record', + name='add_record'), + url(r'^edit/record/(?P<record_id>\d+)/$', 'add_edit_record', + name='edit_record'), + ## add record history (modify history NOT allowed) + url(r'^add/recordhistory/$', 'add_recordhistory', + name='add_recordhistory'), + url(r'^add/recordhistory/(?P<record_id>\d+)/$', 'add_recordhistory', + name='add_recordhistory'), +) + + +urlpatterns += patterns('', + ## done + url(r'^done/$', direct_to_template, { 'template': 'done.html' }), +) + diff --git a/97suifangqa/apps/indicator/views.py b/97suifangqa/apps/indicator/views.py new file mode 100644 index 0000000..1175d62 --- /dev/null +++ b/97suifangqa/apps/indicator/views.py @@ -0,0 +1,416 @@ +# -*- coding: utf-8 -*- + +""" +apps/indicator views + +""" + +from django.contrib.auth.decorators import login_required +from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden +from django.shortcuts import render_to_response, get_object_or_404 +# CRSF +from django.template import RequestContext + +from indicator import models as im +from indicator.forms import * +from indicator.tools import * + +import re +import datetime + + +def get_indicator_view(request, **kwargs): + idict = get_indicator(**kwargs) + return HttpResponse("%s" % idict) + + +@login_required +def get_followed_indicator_view(request, **kwargs): + idict = get_followed_indicator(request.user.id, **kwargs) + return HttpResponse("%s" % idict) + + +@login_required +def get_unfollowed_indicator_view(request, **kwargs): + idict = get_unfollowed_indicator(request.user.id, **kwargs) + return HttpResponse("%s" % idict) + + +@login_required +def recommend_indicator_view(request, **kwargs): + ilist = recommend_indicator(request.user.id, **kwargs) + return HttpResponse("%s" % ilist) + + +# follow_indicator {{{ +@login_required +def follow_indicator(request, indicator_id): + """ + 用户关注指标 + """ + try: + indicator = im.Indicator.objects.get(pk=int(indicator_id)) + ui, created = im.UserIndicator.objects.get_or_create( + user=request.user) + ui.followedIndicators.add(indicator) + return { 'success': True } + except: + return { 'success': False } +# }}} + + +# unfollow_indicator {{{ +@login_required +def unfollow_indicator(request, indicator_id): + """ + 用户取消关注指标 + """ + try: + indicator = im.Indicator.objects.get(pk=int(indicator_id)) + ui, created = im.UserIndicator.objects.get_or_create( + user=request.user) + ui.followedIndicators.remove(indicator) + return { 'success': True } + except: + return { 'success': False } +# }}} + + +# get_record_view {{{ +@login_required +def get_record_view(request, indicator_id, date_range, **kwargs): + """ + get IndicatorRecord record + """ + indicator_id = int(indicator_id) + # regex to match given 'date_range' (yyyymmdd-yyyymmdd) + p = re.compile(r'^(?P<b_y>\d{4})(?P<b_m>\d{2})(?P<b_d>\d{2})-(?P<e_y>\d{4})(?P<e_m>\d{2})(?P<e_d>\d{2})$') + m = p.match(date_range) + # begin date + begin_y = int(m.group('b_y')) + # remove '^0'; avoid the '0???' octal number + begin_m = int(re.sub(r'^0', '', m.group('b_m'))) + begin_d = int(re.sub(r'^0', '', m.group('b_d'))) + # end date + end_y = int(m.group('b_y')) + end_m = int(re.sub(r'^0', '', m.group('e_m'))) + end_d = int(re.sub(r'^0', '', m.group('e_d'))) + # date + begin = datetime.date(begin_y, begin_m, begin_d) + end = datetime.date(end_y, end_m, end_d) + data = get_record(request.user.id, indicator_id=indicator_id, + begin=begin, end=end, **kwargs) + return HttpResponse("%s" % data) +# }}} + + + +########################################################### +###### forms ###### + +## add_edit_category # {{{ +@login_required +def add_edit_category(request, category_id=None, template='simple.html'): + """ + add/edit category: 'models.IndicatorCategory' + for 'staff' or 'normal user' + """ + # get or create model instance + if category_id: + category_id = int(category_id) + category = get_object_or_404(im.IndicatorCategory, + id=category_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if category.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + category = im.IndicatorCategory(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = IndicatorCategoryForm(request.POST, instance=category) + if form.is_valid(): + # form posted and valid + # save form to create/update the model instance + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with data of the specified instance + form = IndicatorCategoryForm(instance=category) + + return render_to_response(template, { + 'object': 'IndicatorCategory', + 'action': action, + 'form': form, + }, context_instance=RequestContext(request)) +# }}} + + +# add_edit_indicator # {{{ +@login_required +def add_edit_indicator(request, indicator_id=None, template='simple.html'): + """ + add/edit indicator: 'models.Indicator' + for 'staff' or 'normal user' + """ + if indicator_id: + indicator_id = int(indicator_id) + indicator = get_object_or_404(im.Indicator, + id=indicator_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if indicator.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + indicator = im.Indicator(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = IndicatorForm(request.POST, instance=indicator) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = IndicatorForm(instance=indicator) + + return render_to_response(template, { + 'object': 'Indicator', + 'action': action, + 'form': form, + }, context_instance=RequestContext(request)) +# }}} + + +## add_edit_unit {{{ +@login_required +def add_edit_unit(request, unit_id=None, template='simple.html'): + """ + add unit for indicator + """ + if unit_id: + unit_id = int(unit_id) + unit = get_object_or_404(im.Unit, id=unit_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if unit.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + unit = im.Unit(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = UnitForm(request.POST, instance=unit) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = UnitForm(instance=unit) + + return render_to_response(template, { + 'object': 'Unit', + 'action': action, + 'form': form, + }, context_instance=RequestContext(request)) +# }}} + + +## add_edit_confine {{{ +@login_required +def add_edit_confine(request, confine_id=None, template='simple.html'): + """ + InnateConfine + add confines for indicator + """ + if confine_id: + confine_id = int(confine_id) + confine = get_object_or_404(im.InnateConfine, id=confine_id) + action = 'Edit' + # check the user + # 'staff' can edit all data; + # normal users can only edit their own. + if confine.addByUser != request.user and ( + not request.user.is_staff): + return HttpResponseForbidden() + else: + confine = im.InnateConfine(addByUser=request.user) + action = 'Add' + + if request.method == 'POST': + form = InnateConfineForm(request.POST, instance=confine) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = InnateConfineForm(instance=confine) + + return render_to_response(template, { + 'object': 'InnateConfine', + 'action': action, + 'form': form, + }, context_instance=RequestContext(request)) +# }}} + + +## add_edit_record {{{ +@login_required +def add_edit_record(request, record_id=None, template='simple.html'): + """ + add/edit 'IndicatorRecord' + + staff 能自由地修改所有的记录,并且无需填写"修改原因"; + 普通用户只能修改自己的记录,而且必须填写"修改原因" -> RecordHistory + + TODO: + * 当用户选择好"indicator"后,重新筛选"unit",只提供与"indicator" + 对应的"unit"供选择; + * 对"普通用户"增加限制,修改数据"记录"时必须同时提交"修改原因", + 对应模型"RecordHistory"。 + """ + if record_id: + record_id = int(record_id) + record = get_object_or_404(im.IndicatorRecord, id=record_id) + action = 'Edit' + # check the user + if request.user.is_staff: + # 'staff' can edit all data; + pass + elif request.user == record.user: + # user modify the record + return HttpResponse("Not finished yet ...") + #return modify_record(request, record_id) + else: + return HttpResponseForbidden() + else: + record = im.IndicatorRecord(user=request.user) + action = 'Add' + + if request.method == 'POST': + form = IndicatorRecordForm(request.POST, instance=record) + if form.is_valid(): + #raise ValueError + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = IndicatorRecordForm(instance=record) + + return render_to_response(template, { + 'object': 'IndicatorRecord', + 'action': action, + 'form': form, + }, context_instance=RequestContext(request)) +# }}} + + +## modify_record {{{ +@login_required +def modify_record(request, record_id=None, template='simple.html'): + """ + modify an existing IndicatorRecord + + TODO: + a new 'RecordHistory' is added to record the modification reason + and backup the original data + """ + if record_id: + record_id = int(record_id) + record = get_object_or_404(im.IndicatorRecord, id=record_id) + action = 'Edit' + # check the user + if request.user.is_staff: + # 'staff' can edit all data; + return add_edit_record(request, record_id) + elif request.user == record.user: + # user modify the record + action = 'Modify' + pass + else: + return HttpResponseForbidden() + else: + return add_edit_record(request) + + if request.method == 'POST': + form = IndicatorRecordForm(request.POST, instance=record) + if form.is_valid(): + # form posted and valid + # TODO + raise ValueError(u"该功能尚未完整实现") + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = IndicatorRecordForm(instance=record) + + return render_to_response(template, { + 'object': 'IndicatorRecord', + 'action': action, + 'form': form, + }, context_instance=RequestContext(request)) +## }}} + + +## add_recordhistory {{{ +@login_required +def add_recordhistory(request, record_id, template='simple.html'): + """ + add 'RecordHistory' for a record by given + + 'staff' should use the 'admin' interface. + """ + record_id = int(record_id) + record = get_object_or_404(im.IndicatorRecord, id=record_id) + recordhistory = im.RecordHistory(indicatorRecord=record) + action = 'Add' + # check the user + if request.user != record.user: + return HttpResponseForbidden() + + if request.method == 'POST': + form = RecordHistoryForm(request.POST, instance=recordhistory) + if form.is_valid(): + # form posted and valid + form.save() + # redirect url, avoid page reload/refresh + return HttpResponseRedirect('/indicator/done/') + else: + # form with instance + form = RecordHistoryForm(instance=recordhistory) + + return render_to_response(template, { + 'object': 'RecordHistory', + 'action': action, + 'form': form, + }, context_instance=RequestContext(request)) +# }}} + + +########################################################### + +### test_view ### +def test_view(request, **kwargs): + html = '<html><body>%s</body></html>' % u"正文测试内容" + text = u"中文测试" + return HttpResponse("%s" % request) + diff --git a/97suifangqa/apps/info/__init__.py b/97suifangqa/apps/info/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/info/__init__.py diff --git a/97suifangqa/apps/info/fixtures/initial_data.json b/97suifangqa/apps/info/fixtures/initial_data.json new file mode 100644 index 0000000..9d5a811 --- /dev/null +++ b/97suifangqa/apps/info/fixtures/initial_data.json @@ -0,0 +1,1094 @@ +[ + { + "pk": 1, + "model": "info.keyword", + "fields": { + "standard_judge": false, + "created_at": "2013-06-08T13:41:51.053", + "object_id": null, + "content": "\u8c37\u4e19\u8f6c\u6c28\u9176", + "user": null, + "content_type": null, + "categoryid": null, + "description": "" + } + }, + { + "pk": 2, + "model": "info.keyword", + "fields": { + "standard_judge": false, + "created_at": "2013-06-12T00:46:54.790", + "object_id": null, + "content": "\u8868\u9762\u6297\u539f", + "user": null, + "content_type": null, + "categoryid": null, + "description": "" + } + }, + { + "pk": 1, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.684", + "object_id": null, + "content": "\u5982\u4f55\u53bb\u5b9a\u4e49\u4e59\u809d\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 2, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.754", + "object_id": null, + "content": "\u4ec0\u4e48\u662f\u6162\u6027\u4e59\u578b\u809d\u708e\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 3, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.775", + "object_id": null, + "content": "\u4ec0\u4e48\u662f\u6025\u6027\u4e59\u578b\u809d\u708e\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 4, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.797", + "object_id": null, + "content": "\u5c0f\u4e09\u9633\u7684\u4e59\u809d\u75c5\u72b6\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 5, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.823", + "object_id": null, + "content": "\u5c0f\u4e09\u9633\u7684\u4e59\u809d\u4e3a\u4f55\u4f1a\u6bd4\u5927\u4e09\u9633\u96be\u4ee5\u6cbb\u6108\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 6, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.852", + "object_id": null, + "content": "\u4ec0\u4e48\u662f\u4e59\u809d\uff1f\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 7, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.872", + "object_id": null, + "content": "\u5c0f\u4e09\u9633\u2019\u8f6c\u5316\u6210\u2018\u5c0f\u4e8c\u9633\u2019\u4ee3\u8868\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 8, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.893", + "object_id": null, + "content": "\u5c0f\u4e09\u9633\u2019\u7684\u4e59\u809d\u75c5\u539f\u5b66\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 9, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.917", + "object_id": null, + "content": "\u6bcd\u5a74\u4f20\u64ad\u7a76\u7adf\u662f\u600e\u6837\u7684\u5f62\u5f0f\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 10, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.943", + "object_id": null, + "content": "\u6bcd\u4eb2\u6216\u7236\u4eb2\u5f97\u4e86\u809d\u708e\u662f\u5426\u80fd\u8981\u5c0f\u5b69\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 11, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.964", + "object_id": null, + "content": "\u82e5\u662f\u4e59\u809d\u60a3\u8005\uff0c\u8fdb\u884c\u6000\u5b55\u7684\u8fc7\u7a0b\u4e2d\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 12, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:12.987", + "object_id": null, + "content": "\u82e5\u662f\u610f\u5916\u6000\u5b55\uff0c\u4f55\u79cd\u60c5\u51b5\u53ef\u4ee5\u4e0d\u5fc5\u6d41\u4ea7 \n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 13, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.009", + "object_id": null, + "content": "\u4ea7\u524d\u4ea7\u4e2d\u4ea7\u540e\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 14, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.046", + "object_id": null, + "content": "\u4ea7\u540e\u9700\u8981\u4f55\u79cd\u65b9\u5f0f\u4fdd\u62a4\u65b0\u751f\u513f\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 15, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.065", + "object_id": null, + "content": "\u5404\u9879\u6307\u6807\u4ee3\u8868\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 16, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.092", + "object_id": null, + "content": "\u4e24\u5bf9\u534a\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 17, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.121", + "object_id": null, + "content": "\u7532\u80ce\u86cb\u767d\u662f\u4ec0\u4e48\uff1f\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 18, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.144", + "object_id": null, + "content": "\u8c37\u4e19\u8f6c\u6c28\u9176\u662f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 19, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.165", + "object_id": null, + "content": "\u4ec0\u4e48\u662f\u75c5\u6bd2HBV DNA\uff1f\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 20, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.185", + "object_id": null, + "content": "\u2018\u5927\u4e09\u9633\u2019\u4ee3\u8868\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 21, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.213", + "object_id": null, + "content": "\u5c0f\u4e09\u9633\u4ee3\u8868\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 22, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.236", + "object_id": null, + "content": "\u2018\u5c0f\u4e8c\u9633\u2019\u7684\u6982\u5ff5\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 23, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.256", + "object_id": null, + "content": "\u76ee\u524d\u533b\u9662\u4f1a\u91c7\u53d6\u54ea\u4e9b\u68c0\u6d4b\u624b\u6bb5\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 24, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.278", + "object_id": null, + "content": "\u533b\u9662\u5728\u68c0\u6d4b\u4e59\u809d\u60a3\u8005\u662f\u4f1a\u91c7\u53d6\u4f55\u79cd\u68c0\u6d4b\u65b9\u6848\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 25, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.298", + "object_id": null, + "content": "\u6bcf\u4e00\u79cd\u68c0\u6d4b\u65b9\u6848\u6240\u4ee3\u8868\u7684\u610f\u4e49\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 26, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.319", + "object_id": null, + "content": "\u5728\u7ed3\u5408\u6307\u6807\u60c5\u51b5\u4e0b\u63a8\u9009\u4f55\u79cd\u5408\u9002\u65f6\u671f \n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 27, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.344", + "object_id": null, + "content": "\u7ed3\u5408\u6307\u6807\u4ee5\u53ca\u7528\u836f\u5386\u53f2\u8fdb\u884c\u5408\u7406\u7684\u89e3\u91ca \n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 28, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.367", + "object_id": null, + "content": "\u8fdb\u884c\u4f55\u79cd\u5176\u4ed6\u65b9\u9762\u7684\u68c0\u6d4b\uff1f \n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 29, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.419", + "object_id": null, + "content": "\u5728\u8fdb\u884c\u4e86\u5e38\u89c4\u68c0\u6d4b\u540e\uff0c\u4e3a\u4f55\u533b\u751f\u8fd8\u4f1a\u5efa\u8bae\u53bb\u505a\u5176\u4ed6\u65b9\u9762\u7684\u68c0\u6d4b\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 30, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.440", + "object_id": null, + "content": "\u4e3a\u4f55\u8fd9\u79cd\u68c0\u6d4b\u8f83\u4e3a\u6709\u6548\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 31, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.463", + "object_id": null, + "content": "\u6162\u6027\u4e59\u809d\u80fd\u81ea\u6211\u4fee\u590d\u5417\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 32, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.483", + "object_id": null, + "content": "\u2018\u5c0f\u4e09\u9633\u2019\u4e59\u809d\u5728\u4f53\u5185\u7684\u75c5\u53d8\u8fc7\u7a0b\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 33, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.501", + "object_id": null, + "content": "\u809d\u708e\u65f6\u4e3a\u4f55\u8f6c\u6c28\u9176\u5347\u9ad8\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 34, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.524", + "object_id": null, + "content": "\u6162\u6027\u809d\u708e\u60a3\u8005\u8f6c\u6c28\u9176\u6025\u5267\u5347\u9ad8\u4f1a\u6709\u4ec0\u4e48\u95ee\u9898\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 35, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.543", + "object_id": null, + "content": "\u8f6c\u6c28\u9176\u5347\u9ad8\uff0c\u5fc5\u5b9a\u662f\u809d\u75c5\u52a0\u91cd\u5417\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 36, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.565", + "object_id": null, + "content": "\u9488\u5bf9\u4e59\u809d\u75c5\u6bd2\u9700\u8981\u4ec0\u4e48\u6837\u7684\u514d\u75ab\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 37, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.585", + "object_id": null, + "content": "\u514d\u75ab\u7f3a\u9677\u662f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 38, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.605", + "object_id": null, + "content": "\u4ec0\u4e48\u6837\u7684\u514d\u75ab\u6cbb\u7597\u4f1a\u6709\u6548\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 39, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.630", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u4f5c\u7528\u4e8e\u4eba\u4f53\u65f6\u6240\u4ea7\u751f\u7684\u514d\u75ab\u6fc0\u5316\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 40, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.655", + "object_id": null, + "content": "\u6162\u6027\u4e59\u809d\u7684\u75c5\u53d8\u60c5\u51b5?\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 41, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.681", + "object_id": null, + "content": "\u6297\u75c5\u6bd2\u6cbb\u7597\u662f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 42, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.704", + "object_id": null, + "content": "\u6297\u75c5\u6bd2\u6cbb\u7597\u4e0e\u975e\u6297\u75c5\u6bd2\u6cbb\u7597\u7684\u533a\u522b\u70b9\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 43, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.723", + "object_id": null, + "content": "\u4f55\u65f6\u5f00\u59cb\u542f\u7528\u6297\u75c5\u6bd2\u6cbb\u7597\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 44, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.744", + "object_id": null, + "content": "\u5bf9\u4e8e\u4e59\u809d\u6cbb\u7597\u6709\u54ea\u4e9b\u836f\u7269\u53ef\u4ee5\u4f7f\u7528\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 45, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.764", + "object_id": null, + "content": "\u9009\u62e9\u836f\u54c1\u7684\u65f6\u5019\u7ed3\u5408\u6307\u6807\u8fdb\u884c\u5408\u7406\u7684\u63a8\u8350\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 46, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.786", + "object_id": null, + "content": "\u7ed3\u5408\u6307\u6807\u4ee5\u53ca\u75c5\u53f2\u8fdb\u884c\u5408\u7406\u7684\u89e3\u51b3\u65b9\u6848\u63a8\u8350\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 47, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.807", + "object_id": null, + "content": "\u9009\u836f\u671f\u95f4\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 48, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.830", + "object_id": null, + "content": "\u6362\u836f\u671f\u95f4\u9700\u8981\u6ce8\u610f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 49, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.848", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u548c\u6838\u82f7\u7c7b\u836f\u54c1\u5728\u76f8\u5173\u66ff\u6362\u65f6\u9700\u8981\u6ce8\u610f\u4e9b\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 50, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.870", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u7684\u7597\u7a0b\u957f\u77ed\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 51, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.892", + "object_id": null, + "content": "\u5bf9\u4e8e\u4f7f\u7528\u5e72\u6270\u7d20\u4e4b\u540e\u4e00\u4e9b\u76f8\u5173\u6307\u6807\u7684\u53d8\u5316\u4ee3\u8868\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 52, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.914", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec8\u70b9\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 53, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.939", + "object_id": null, + "content": "\u54ea\u4e9b\u65b9\u9762\u4ee3\u8868\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec8\u70b9\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 54, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.961", + "object_id": null, + "content": "\u6838\u82f7\u7c7b\u836f\u7269\u7684\u6cbb\u7597\u7ec8\u70b9\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 55, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:13.986", + "object_id": null, + "content": "\u54ea\u4e9b\u65b9\u9762\u4ee3\u8868\u6838\u82f7\u7c7b\u7684\u6cbb\u7597\u7ec8\u70b9\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 56, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.007", + "object_id": null, + "content": "\u505c\u836f\u4e4b\u540e\u9700\u8981\u6ce8\u610f\u4e9b\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 57, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.123", + "object_id": null, + "content": "\u5b9e\u65f6\u76d1\u63a7\uff0c\u968f\u8bbf\u662f\u4ec0\u4e48\u610f\u601d\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 58, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.146", + "object_id": null, + "content": "\u5bf9\u4e8e\u968f\u8bbf\u7a76\u7adf\u6709\u591a\u91cd\u8981\uff0c\u9700\u8981\u8fdb\u884c\u600e\u6837\u7684\u5b9a\u671f\u68c0\u67e5\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 59, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.171", + "object_id": null, + "content": "\u600e\u6837\u7684\u5b9a\u671f\u68c0\u67e5\u7b26\u5408\u8be5\u540d\u60a3\u8005\u7684\u6cbb\u7597\u8fdb\u5ea6\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 60, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.197", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u6bcf\u79cd\u836f\u54c1\u7684\u8be6\u7ec6\u8d44\u6599\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 61, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.221", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u6cbb\u7597\u5728\u77ed\u671f\u5185\u4f1a\u6709\u4ec0\u4e48\u6548\u679c\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 62, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.244", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u7597\u7a0b\u4e00\u822c\u591a\u957f\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 63, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.266", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u6cbb\u7597\u8fdc\u671f\u76ee\u6807\u662f\u4ec0\u4e48\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 64, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.285", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u7684\u836f\u54c1\u6709\u4ec0\u4e48\u4f18\u7f3a\u70b9\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 65, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.310", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u7684\u4e00\u4e2a\u7597\u7a0b\u7ed3\u675f\u540e\u662f\u5426\u9700\u8981\u66f4\u6362\u4f7f\u7528\u53e6\u4e00\u79cd\u5e72\u6270\u7d20\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 66, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.332", + "object_id": null, + "content": "\u957f\u6548\u5e72\u6270\u7d20\u7684\u4f18\u7f3a\u70b9\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 67, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.359", + "object_id": null, + "content": "\u957f\u6548\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u6548\u679c\u5982\u4f55\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 68, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.381", + "object_id": null, + "content": "\u54ea\u4e9b\u60a3\u8005\u53ef\u4ee5\u4f7f\u7528\u957f\u6548\u5e72\u6270\u7d20\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 69, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.404", + "object_id": null, + "content": "\u957f\u6548\u5e72\u6270\u7d20\u5bf9\u4e0d\u540c\u57fa\u56e0\u578b\u7684\u60a3\u8005\u7684\u7597\u6548\u5e94\u7b54\u6709\u533a\u522b\u5417\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 70, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.424", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u662f\u5426\u4e5f\u4f1a\u4ea7\u751f\u8010\u836f\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 71, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.446", + "object_id": null, + "content": "\u5e72\u6270\u7d20\u662f\u5426\u4f1a\u6709\u5f3a\u70c8\u7684\u590d\u53d1\u4f5c\u7528\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 72, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.465", + "object_id": null, + "content": "\u6d3e\u7f57\u6b23\u80fd\u8ffd\u6c42\u8868\u9762\u6297\u539f\u8f6c\u9634\u5417\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 73, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.488", + "object_id": null, + "content": "\u6d3e\u7f57\u6b23\u9002\u7528\u4e8e\u54ea\u7c7b\u75c5\u4eba\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 74, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.507", + "object_id": null, + "content": "\u6d3e\u7f57\u6b23\u6709\u54ea\u4e9b\u4e0d\u826f\u53cd\u5e94\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 75, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.527", + "object_id": null, + "content": "\u54ea\u4e9b\u809d\u75c5\u662f\u6d3e\u7f57\u6b23\u7684\u9002\u5e94\u75c7\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + }, + { + "pk": 76, + "model": "info.query", + "fields": { + "standard_judge": false, + "level": 1, + "created_at": "2013-04-23T15:05:14.546", + "object_id": null, + "content": "\u4e4b\u524d\u63a5\u53d7\u6838\u82f7\u7c7b\u836f\u6cbb\u7597\u73b0\u5728\u80fd\u6539\u5e72\u6270\u7d20\u5417\n", + "user": 1, + "content_type": null, + "categoryid": 1 + } + } +]
\ No newline at end of file diff --git a/97suifangqa/apps/info/forms.py b/97suifangqa/apps/info/forms.py new file mode 100644 index 0000000..717431d --- /dev/null +++ b/97suifangqa/apps/info/forms.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +from haystack.forms import SearchForm + +from .models import Query +from .utils import split_word + +class QuerySearchForm(SearchForm): + u''' + 问题查询表单,主要完成两个工作: + 1. 指定查询的model为Query + 2. 重载clean_q,对查询语句进行分词 + ''' + + def __init__(self,*args, **kwargs): + u''' + 在__init__中指定查询的model为Query + ''' + super(QuerySearchForm, self).__init__(*args, **kwargs) + self.searchqueryset = self.searchqueryset.models(Query) + + def clean_q(self): + q = self.cleaned_data['q'] + return split_word(q) diff --git a/97suifangqa/apps/info/models.py b/97suifangqa/apps/info/models.py new file mode 100644 index 0000000..3bb1203 --- /dev/null +++ b/97suifangqa/apps/info/models.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- +from django.db import models +from django.contrib import admin +from django.contrib.auth.models import User +from django.contrib.contenttypes.models import ContentType +from django.contrib.contenttypes import generic + +# Create your models here. + +class KeyWord(models.Model): + + content = models.CharField(u"内容", max_length=200) + description = models.TextField(u"描述", blank=True) + categoryid = models.IntegerField(u"分类编号", null=True, blank=True) #TODO:弄清这里的详细意义 + standard_judge = models.BooleanField(u"是否为标准关键词", default=False) + created_at = models.DateTimeField(auto_now_add=True, verbose_name = u"创建时间") + user = models.ForeignKey(User, verbose_name=u"用户", related_name="keywords", null=True, blank=True) + + content_type = models.ForeignKey(ContentType, null=True, blank=True) #将KeyWord作为GFK + object_id = models.PositiveIntegerField(null=True, blank=True) + content_object = generic.GenericForeignKey("content_type", "object_id") + + + class Meta: + verbose_name_plural = u"关键词" + + def __unicode__(self): + return "< KeyWord: %s >" % self.content + + +# Query {{{ +class Query(models.Model): + + content = models.CharField(u"内容", max_length=500) + level = models.PositiveIntegerField(u"级数",default=1) + categoryid = models.IntegerField(u"分类编号", null=True, blank=True, default=1) #TODO:弄清这里的详细意义 + created_at = models.DateTimeField(auto_now_add=True, verbose_name = u"创建时间") + standard_judge = models.BooleanField(u"是否为标准问题", default=False) + user = models.ForeignKey(User, verbose_name=u"用户", related_name="querys") + + content_type = models.ForeignKey(ContentType, null=True, blank=True) #将Query作为GFK + object_id = models.PositiveIntegerField(null=True, blank=True) + content_object = generic.GenericForeignKey("content_type", "object_id") + + + class Meta: + verbose_name_plural = u"问题" + + def __unicode__(self): + return "< Query: %s >" % self.content + + def show(self): + """ + used in 'search/search.html' + to show search result + """ + return self.__unicode__() +# }}} + + +class WordWordRelation(models.Model): + + value = models.FloatField(u"关联度") + word1 = models.ForeignKey("KeyWord", verbose_name=u"关键词1", related_name="relations_with_other_words_as_primary", null=True, blank=True) + word2 = models.ForeignKey("KeyWord", verbose_name=u"关键词2", related_name="relations_with_other_words_as_deputy", null=True, blank=True) + + class Meta: + verbose_name_plural = u"关键词与关键词的关系" + + def __unicode__(self): + return "< WordWordRelation: (%s, %s) >" % (self.word1.content, self.word2.content) + + +class QueryQueryRelation(models.Model): + + value = models.FloatField(u"关联度") + query1 = models.ForeignKey("Query", verbose_name=u"问题1", related_name="relations_with_other_querys_as_primary", null=True, blank=True) + query2 = models.ForeignKey("Query", verbose_name=u"问题2", related_name="relations_with_other_querys_as_deputy", null=True, blank=True) + + class Meta: + verbose_name_plural = u"问题与问题的关系" + + def __unicode__(self): + return "< QueryQueryRelation: (%s, %s) >" % (self.query1.content, self.query2.content) + + +class WordQueryRelation(models.Model): + + value = models.FloatField(u"关联度") + word = models.ForeignKey("KeyWord", verbose_name=u"关键词", related_name="relations_with_querys", null=True, blank=True) + query2 = models.ForeignKey("Query", verbose_name=u"问题", related_name="relations_with_words", null=True, blank=True) + + class Meta: + verbose_name_plural = u"关键词与问题的关系" + + def __unicode__(self): + return "< WordQueryRelation: (%s, %s) >" % (self.word.content, self.query.content) + + +class BlogQueryRelation(models.Model): + + value = models.FloatField(u"关联度") + blog = models.ForeignKey("sciblog.SciBlog", verbose_name=u"文章", related_name="relations_with_querys", null=True, blank=True) + query = models.ForeignKey("Query", verbose_name=u"问题", related_name="relations_with_blogs", null=True, blank=True) + + class Meta: + verbose_name_plural = u"文章与问题的关系" + + def __unicode__(self): + return "< BlogRelation: (%s, %s) >" % (self.blog.title, self.query.content) + + +admin.site.register([ + KeyWord, + Query, + WordWordRelation, + WordQueryRelation, + BlogQueryRelation, + ]) diff --git a/97suifangqa/apps/info/search_indexes.py b/97suifangqa/apps/info/search_indexes.py new file mode 100644 index 0000000..5491619 --- /dev/null +++ b/97suifangqa/apps/info/search_indexes.py @@ -0,0 +1,15 @@ +from haystack import indexes +import datetime +from .models import Query + + +class QueryIndex(indexes.SearchIndex, indexes.Indexable): + text = indexes.CharField(document=True, use_template=True) + + def get_model(self): + return Query + + def index_queryset(self, using=None): + """Used when the entire index for model is updated.""" + return self.get_model().objects.filter(created_at__lte=datetime.datetime.now()) + diff --git a/97suifangqa/apps/info/tests.py b/97suifangqa/apps/info/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/97suifangqa/apps/info/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/97suifangqa/apps/info/utils.py b/97suifangqa/apps/info/utils.py new file mode 100644 index 0000000..18a8648 --- /dev/null +++ b/97suifangqa/apps/info/utils.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- + + +def split_word(s): + u''' + 对查询语句进行分词 + ''' + return s diff --git a/97suifangqa/apps/info/views.py b/97suifangqa/apps/info/views.py new file mode 100644 index 0000000..7e36296 --- /dev/null +++ b/97suifangqa/apps/info/views.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- + +from django.shortcuts import render_to_response +from django.http import HttpResponse,HttpResponseRedirect,HttpResponseNotFound +from django.template import RequestContext + +from haystack.query import SearchQuerySet +from haystack.inputs import AutoQuery + +from .models import Query +from .forms import QuerySearchForm + + +def query(request): + u''' + 问题查询 + ''' + if request.method == "GET": + return render_to_response('search/query/index.html', + context_instance=RequestContext(request)) + + else: + form = QuerySearchForm(request.POST) + results = form.search() + q = request.POST.get('q', '') + return render_to_response('search/query/index.html', + locals() + , context_instance=RequestContext(request)) + + + + diff --git a/97suifangqa/apps/location/__init__.py b/97suifangqa/apps/location/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/location/__init__.py diff --git a/97suifangqa/apps/location/fixtures/initial_data.json b/97suifangqa/apps/location/fixtures/initial_data.json new file mode 100644 index 0000000..a06ec34 --- /dev/null +++ b/97suifangqa/apps/location/fixtures/initial_data.json @@ -0,0 +1,81 @@ +[ + { + "pk": 1, + "model": "location.hospital", + "fields": { + "city": null, + "name": "\u53f0\u5927\u533b\u9662\u5185\u79d1\u90e8", + "unit": null + } + }, + { + "pk": 2, + "model": "location.hospital", + "fields": { + "city": null, + "name": "\u9999\u6e2f\u739b\u4e3d\u533b\u9662", + "unit": null + } + }, + { + "pk": 3, + "model": "location.hospital", + "fields": { + "city": null, + "name": "\u5317\u4eac\u4f51\u5b89\u533b\u9662\u6d88\u5316\u5185\u79d1", + "unit": null + } + }, + { + "pk": 4, + "model": "location.hospital", + "fields": { + "city": 1, + "name": "\u4e0a\u6d77\u745e\u91d1\u533b\u9662\u611f\u67d3\u79d1", + "unit": null + } + }, + { + "pk": 5, + "model": "location.hospital", + "fields": { + "city": null, + "name": "\u5df4\u9ece\u5927\u5b66", + "unit": null + } + }, + { + "pk": 6, + "model": "location.hospital", + "fields": { + "city": null, + "name": "Songklanagarind\u533b\u9662", + "unit": null + } + }, + { + "pk": 7, + "model": "location.hospital", + "fields": { + "city": null, + "name": "Erasmus MC \u5927\u5b66\u533b\u5b66\u4e2d\u5fc3", + "unit": null + } + }, + { + "pk": 1, + "model": "location.city", + "fields": { + "name": "\u4e0a\u6d77", + "nation": 1 + } + }, + { + "pk": 1, + "model": "location.nation", + "fields": { + "name": "\u4e2d\u56fd", + "img": "" + } + } +]
\ No newline at end of file diff --git a/97suifangqa/apps/location/models.py b/97suifangqa/apps/location/models.py new file mode 100644 index 0000000..d8c6552 --- /dev/null +++ b/97suifangqa/apps/location/models.py @@ -0,0 +1,63 @@ +#-*- coding: utf-8 -*- + +from django.db import models +from django.contrib import admin + + +class Location(models.Model): + + latitude = models.FloatField(u"经度") + longitude = models.FloatField(u"纬度") + city = models.CharField(u"城市", max_length=20, null=True, blank=True) + nation = models.CharField(u"国家", max_length=20, null=True, blank=True) + + class Meta: + verbose_name_plural = u"地理位置" + + def __unicode__(self): + return u"< Location : %s >" % self.id + + +class Hospital(models.Model): + + name = models.CharField(u"名称", max_length=100) + city = models.ForeignKey("City", related_name="hospitals", verbose_name = u"城市", null=True, blank=True) + unit = models.ForeignKey("indicator.Unit", related_name="hospitals", verbose_name = u"单位", null=True, blank=True) + + class Meta: + verbose_name_plural = u"医院" + + def __unicode__(self): + return "< Hospital: %s >" % self.name + + +class City(models.Model): + + name = models.CharField(u"名称", max_length=100) + nation = models.ForeignKey("Nation", related_name="cities", verbose_name = "国家", null=True, blank=True) + + class Meta: + verbose_name_plural = u"城市" + + def __unicode__(self): + return "< City: %s >" % self.name + + +class Nation(models.Model): + + name = models.CharField(u"名称", max_length=100) + img = models.ImageField(u"国旗图标", upload_to="uploads/flags/", null=True, blank=True) + + class Meta: + verbose_name_plural = u"国家" + + def __unicode__(self): + return "< Nation: %s >" % self.name + + +admin.site.register([ + Location, + Hospital, + City, + Nation, + ]) diff --git a/97suifangqa/apps/medicine/__init__.py b/97suifangqa/apps/medicine/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/medicine/__init__.py diff --git a/97suifangqa/apps/medicine/models.py b/97suifangqa/apps/medicine/models.py new file mode 100644 index 0000000..e6cfc88 --- /dev/null +++ b/97suifangqa/apps/medicine/models.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +from django.db import models +from django.contrib import admin + +# Create your models here. +class Medicine(models.Model): + name = models.CharField(u"名称", max_length=100) + category = models.CharField(u" 种类", max_length=100, null=True, blank= True) + pdaLink = models.CharField(u"FDA批准链接", max_length=200, null=True, blank= True) + dosageForm = models.CharField(u"剂型", max_length=100, null=True, blank= True) + specifications = models.ManyToManyField('Specification', related_name='medicines', verbose_name=u"药品规格", null=True, blank=True) + company = models.ForeignKey('Company', related_name='medicines', verbose_name = u"厂家", null=True, blank=True) + instruction = models.FileField(upload_to="upload/instructions", max_length=400, verbose_name = u"说明书", null=True, blank=True) + + class Meta: + verbose_name_plural = u"药物" + + def __unicode__(self): + return u"< Medicine: %s >" % self.id + +class Specification(models.Model): + + value = models.FloatField(u"数值") + unit = models.OneToOneField('indicator.Unit', null=True, blank=True) + + class Meta: + verbose_name_plural = u"药品规格" + + + def __unicode__(self): + return "< Specification: %s >" % self.id + +class Company(models.Model): + + name = models.CharField(u"名称", max_length=100) + nation = models.ForeignKey('location.Nation', related_name='companys', verbose_name = u"国家", null=True, blank=True) + + class Meta: + verbose_name_plural = u"厂家" + + def __unicode__(self): + return "< Company: %s >" % self.id + + + +admin.site.register([ + Medicine, + Specification, + Company, + ]) diff --git a/97suifangqa/apps/medicine/tests.py b/97suifangqa/apps/medicine/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/97suifangqa/apps/medicine/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/97suifangqa/apps/medicine/views.py b/97suifangqa/apps/medicine/views.py new file mode 100644 index 0000000..60f00ef --- /dev/null +++ b/97suifangqa/apps/medicine/views.py @@ -0,0 +1 @@ +# Create your views here. diff --git a/97suifangqa/apps/profile/__init__.py b/97suifangqa/apps/profile/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/profile/__init__.py diff --git a/97suifangqa/apps/profile/backends.py b/97suifangqa/apps/profile/backends.py new file mode 100644 index 0000000..8903805 --- /dev/null +++ b/97suifangqa/apps/profile/backends.py @@ -0,0 +1,25 @@ +#-*- coding: utf-8 -*- + +from django.contrib.auth.models import User + +class EmailOrUsernameModelBackend(object): + + def authenticate(self, username=None, password=None): + if '@' in username: + kwargs = {'email': username} + else: + kwargs = {'username': username} + try: + user = User.objects.get(**kwargs) + if user.check_password(password): + return user + except User.DoesNotExist: + pass + return None + + def get_user(self, user_id): + try: + return User.objects.get(pk=user_id) + except User.DoesNotExist: + pass + return None
\ No newline at end of file diff --git a/97suifangqa/apps/profile/forms.py b/97suifangqa/apps/profile/forms.py new file mode 100644 index 0000000..1d3aed5 --- /dev/null +++ b/97suifangqa/apps/profile/forms.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from django import forms +from django.contrib.auth.forms import UserCreationForm diff --git a/97suifangqa/apps/profile/image.py b/97suifangqa/apps/profile/image.py new file mode 100644 index 0000000..b5dd550 --- /dev/null +++ b/97suifangqa/apps/profile/image.py @@ -0,0 +1,97 @@ +# -*- coding: utf-8 -*- +""" + 图片处理函数 +""" +import os +import time + +from hashlib import md5 +from django.conf import settings +from os import mkdir, path as _path + +try: + from PIL import Image, ImageOps, ImageDraw +except: + import Image, ImageOps, ImageDraw + + +def rm_avatar_thumb(object_id, avatar_link): + name, ext = _path.splitext(avatar_link) + try: + fn = generat_location(object_id, ext, 200) + os.remove(fn) + except: + pass + + +def _mkdir(dirname): + """ + 遍历创建文件夹 + """ + index = [] + initial = 0 + for i in range(dirname.count('/')): + initial = dirname.find('/', initial, len(dirname)) + index.insert(len(index), initial) + initial += 1 + for j in index[1:]: + _dir = dirname[:j] + if _dir and not _path.exists(_dir): + mkdir(_dir) + + +def generat_dir_and_fn(uid, flag): + root = settings.MEDIA_ROOT + fn = md5('%s' % uid).hexdigest() + d1 = fn[-2:] + d2 = fn[-4:-2] + dirname = "%s%s/%s/%s/" % (root, flag, d1, d2) + return dirname, fn + + +def generat_location(uid, ext, size, flag): + """ + 获取文件路径 + """ + fmt = "%s%s_%s%s" + dirname, fn = generat_dir_and_fn(uid, flag) + _mkdir(dirname) + if not ext or \ + ext == '.': + ext = '.jpg' + return fmt % (dirname, fn, size, ext) + + +def crop(image, object_id, size=100, mask_img=None, flag="cache", **kwargs): + """ + 截取图片 + """ + _size = (size, size) + path = image.path + root, filename = _path.split(path) + name, ext = _path.splitext(filename) + + original = Image.open(open(path, 'rb')) + + # 保存为圆形缩略图 + """ + mask = Image.new('L', _size, 0) + draw = ImageDraw.Draw(mask) + draw.ellipse((0, 0) + _size, fill=255) + thumb = ImageOps.fit(original, mask.size, centering=(0.5, 0.5)) + thumb.putalpha(mask) + """ + try: + if mask_img: + mask = Image.open(mask_img).convert('L') + thumb = ImageOps.fit(original, _size, centering=(0.5, 0.5)) + thumb.putalpha(mask) + else: thumb = ImageOps.fit(original, _size, Image.ANTIALIAS) + + thumb_path = generat_location(object_id, ext, size, flag) + if not _path.exists(thumb_path): + thumb.save(thumb_path) + except: + thumb_path = path + + return thumb_path.replace(settings.MEDIA_ROOT, settings.MEDIA_URL)
\ No newline at end of file diff --git a/97suifangqa/apps/profile/models.py b/97suifangqa/apps/profile/models.py new file mode 100644 index 0000000..2168f39 --- /dev/null +++ b/97suifangqa/apps/profile/models.py @@ -0,0 +1,144 @@ +# -*- coding: utf-8 -*- + +from django.db import models +from django.contrib import admin +from django.contrib.auth.models import User +from django.contrib.contenttypes.models import ContentType +from django.contrib.contenttypes import generic + +from .storage import OverwriteStorage +from .utils import avatar_by_user +from .image import crop + + +class Profile(models.Model): + + gender_choices = ( + (0, u"男"), + (1, u"女") + ) + + education_choices = ( + (0, u"高中"), + (1, u"大专"), + (2, u"本科"), + (3, u"硕士"), + (4, u"博士")) + + user = models.OneToOneField(User, null=True, blank=True) + name = models.CharField(u"用户名", max_length=20, null=True, blank=True) + avatar = models.ImageField(u"头像", upload_to="uploads/avatar/", storage=OverwriteStorage()) + education = models.IntegerField(u"学历", choices=education_choices) + email = models.EmailField(u"邮箱", primary_key=True) + gender = models.IntegerField(u"性别", choices=gender_choices, default=0) + user_level= models.IntegerField(u"等级", default=0) + medicines = models.ManyToManyField("medicine.Medicine", related_name="users", verbose_name= u"药物", null=True, blank=True) + hospital = models.ForeignKey("location.Hospital", related_name="patients", verbose_name= u"医院", null=True, blank=True) + + class Meta: + verbose_name_plural = u"用户信息" + + def __unicode__(self): + return "< Profile : %s >" % self.id + + def save(self, exist=False, *args, **kwargs): + # 保存 + + if self.id: + exist = True + if not exist and not self.avatar: + # 自动生成头像 + self.avatar = avatar_by_user(self.user) + super(Profile, self).save(*args, **kwargs) + + def thumbnail(self, size=100): + # 头像截图 + return crop(self.avatar, self.user.id, size, flag="user") + +class UserHospitalItem(models.Model): + + created_at = models.DateTimeField(u"创建时间", auto_now_add=True) + user = models.ForeignKey(User, verbose_name=u"用户", null=True, blank=True) + hospital = models.ManyToManyField("location.Hospital", related_name='userhospitalitems', verbose_name=u"就诊医院", null=True, blank=True) + + class Meta: + verbose_name_plural=u"就诊医院记录" + + def __unicode__(self): + return "< UserHospitalItem: %s>" % self.id + + +class UserReadingLog(models.Model): + + created_at = models.DateTimeField(u"创建时间", auto_now_add=True) + user = models.ForeignKey(User, verbose_name=u"用户", null=True, blank=True) + #sciblog = models.ForeignKey('blog.SciBlog', related_name="readinglogs", verbose_name=u"文章") + sciblog = models.TextField(u"文章") #TODO:修改成真正的sciblog外键 + readevent = models.ManyToManyField('ReadEvent', related_name="readinglogs", verbose_name=u"阅读事件", null=True, blank=True) + + class Meta: + verbose_name_plural=u"用户医学文章阅读记录" + + def __unicode__(self): + return "< UserReadingLog: %s >" % self.id + + +class ReadEvent(models.Model): + + type_choices = ( + (0, "isUnd"), + (1, "fav"), + (2, "ask"), + (3, "note"),) + + type = models.IntegerField(u"类型", choices=type_choices, default=0) + + content_type = models.ForeignKey(ContentType, null=True, blank=True) # 将ReadEvent作为GenericForeignKey + object_id = models.PositiveIntegerField(null=True, blank=True) + content_object = generic.GenericForeignKey("content_type", "object_id") + + class Meta: + verbose_name_plural=u"文章阅读事件" + + def __unicode__(self): + return "< ReadEvent: %s >" % self.id + + +class Noting(models.Model): + + content = models.TextField(u"内容") # TODO: 完善代码,确保能输入中文 + user = models.ForeignKey(User, verbose_name=u"用户", null=True, blank=True) + + content_type = models.ForeignKey(ContentType, null=True, blank=True) # 将ReadEvent作为GenericForeignKey + object_id = models.PositiveIntegerField(null=True, blank=True) + content_object = generic.GenericForeignKey("content_type", "object_id") + + class Meta: + verbose_name_plural=u"记笔记" + + def __unicode__(self): + return "< Noting: %s >" % self.id + + +class UserLevelLog(models.Model): + + value = models.FloatField(u"获得经验值") + created_at = models.DateTimeField(u"创建时间", auto_now_add=True) + user = models.ForeignKey(User, verbose_name=u"用户", null=True, blank=True) + + class Meta: + verbose_name_plural=u"用户等级记录" + + def __unicode__(self): + return "< UserLevelLog: %s >" % self.id + + + +admin.site.register([ + Profile, + UserHospitalItem, + UserReadingLog, + ReadEvent, + Noting, + UserLevelLog, + ]) diff --git a/97suifangqa/apps/profile/storage.py b/97suifangqa/apps/profile/storage.py new file mode 100644 index 0000000..f5069fc --- /dev/null +++ b/97suifangqa/apps/profile/storage.py @@ -0,0 +1,21 @@ +#-*- coding: utf-8 -*- +""" + 文件存储 +""" +import os +import time +import random + +from django.core.files.storage import FileSystemStorage + +class OverwriteStorage(FileSystemStorage): + + def _save(self, name, content): + if self.exists(name): + self.delete(name) + ext = os.path.splitext(name)[1] + d = os.path.dirname(name) + fn = time.strftime("%Y%m%d%H%M%S") + fn = fn + "_%d" % random.randint(0,1000) + name = os.path.join(d, fn + ext) + return super(OverwriteStorage, self)._save(name, content)
\ No newline at end of file diff --git a/97suifangqa/apps/profile/urls.py b/97suifangqa/apps/profile/urls.py new file mode 100644 index 0000000..cbc453d --- /dev/null +++ b/97suifangqa/apps/profile/urls.py @@ -0,0 +1,9 @@ +from django.conf.urls import patterns, url + +from .views import * + +urlpatterns = patterns('', + url(r'^login/?$', login, name = "login"), + url(r'^logout/?$', logout, name = "logout"), + url(r'^signup/?$', signup, name = "signup"), + ) diff --git a/97suifangqa/apps/profile/utils.py b/97suifangqa/apps/profile/utils.py new file mode 100644 index 0000000..27067d5 --- /dev/null +++ b/97suifangqa/apps/profile/utils.py @@ -0,0 +1,19 @@ +#-*- coding: utf-8 -*- + +import random + +from django.conf import settings + + +def avatar_by_user(user): + """ + 生成头像 + """ + from django.core.files.images import ImageFile + + _avatar_path = "%s/avatars/%s.png" % (settings.MEDIA_ROOT, random.randint(1,22)) + + _avatar = ImageFile(open(_avatar_path)) + user.profile.avatar = _avatar + user.profile.save() + return user.profile
\ No newline at end of file diff --git a/97suifangqa/apps/profile/views.py b/97suifangqa/apps/profile/views.py new file mode 100644 index 0000000..c41e62b --- /dev/null +++ b/97suifangqa/apps/profile/views.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- + +from django.http import HttpResponse, HttpResponseRedirect +from django.conf import settings +from django.shortcuts import render +from django.contrib.auth.views import login, logout +from django.contrib.auth import login as auth_login + +from .forms import UserCreationForm + + + +def signup(request): + u''' + 用户注册 + ''' + if request.user.is_authenticated(): + return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL) + + if request.method == 'POST': + form = UserCreationForm(request.POST) + if form.is_valid(): + user = form.save() + return HttpResponseRedirect(request.REQUEST.get('next')) + else: + form = UserCreationForm() + + return render(request, 'registration/signup.html', + locals()) + diff --git a/97suifangqa/apps/sciblog/__init__.py b/97suifangqa/apps/sciblog/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/sciblog/__init__.py diff --git a/97suifangqa/apps/sciblog/admin.py b/97suifangqa/apps/sciblog/admin.py new file mode 100644 index 0000000..0dfb2ef --- /dev/null +++ b/97suifangqa/apps/sciblog/admin.py @@ -0,0 +1,33 @@ +# -*- coding: utf8 -*- +from django.contrib import admin +from django import forms +from django.db import models +from .models import SciBlog, ResultContent, EndPoint +from utils.widget import MarkitUpWidget, TinyMceWidget + +class ResultContentInline(admin.TabularInline): + model = ResultContent + + +class SciBlogAdmin(admin.ModelAdmin): + #formfield_overrides = { + # models.TextField: {'widget': TinyMceWidget}, + #} + inlines = [ + ResultContentInline, + ] + +def get_blogs(endp): + blog = endp.blogs.all()[0] + return "<a href='/admin/sciblog/sciblog/%s'>%s<a>" % (blog.id, blog.title) + +get_blogs.short_description = "SciBlog" +get_blogs.allow_tags = True + +class EndPointAdmin(admin.ModelAdmin): + list_display = ('__unicode__', get_blogs) + + + +admin.site.register(SciBlog, SciBlogAdmin) +admin.site.register(EndPoint, EndPointAdmin) diff --git a/97suifangqa/apps/sciblog/fixtures/initial_data.json b/97suifangqa/apps/sciblog/fixtures/initial_data.json new file mode 100644 index 0000000..6038ffe --- /dev/null +++ b/97suifangqa/apps/sciblog/fixtures/initial_data.json @@ -0,0 +1,1042 @@ +[ + { + "pk": 1, + "model": "sciblog.sciblog", + "fields": { + "subhead": "\u5c0f\u4e09\u9633\u6162\u6027\u4e59\u809d\u60a3\u8005\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\uff0c\u6216\u8005\u957f\u6548\u5e72\u6270\u7d20\uff0c\u6cbb\u7597\u7684\u6548\u679c\u5982\u4f55\uff1f\u526f\u4f5c\u7528\u662f\u5426\u5f88\u5927\uff1f\u548c\u62c9\u7c73\u592b\u5b9a\u76f8\u6bd4\u600e\u4e48\u6837\uff1f", + "sample": [], + "readed_count": 0, + "references": [], + "catched_by": [ + 1, + 4 + ], + "query": [ + 72, + 73, + 74, + 75 + ], + "endpoint_content": "", + "treatment_content": "\u6309\u71671\uff1a1\uff1a1\u5206\u7ec4\u3002\r\n\u7b2c\u4e00\u7ec4\uff1a\u5e72\u6270\u7d20\u5358\u836f\u7ec4\uff1a180ug\u6bcf\u5468\u4e00\u6b21\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff08\u6d3e\u7f57\u6b23\uff0c\u7f57\u6c0f\uff09\uff1b\r\n\u7b2c\u4e8c\u7ec4\uff1a\u5e72\u6270\u7d20\u62c9\u7c73\u592b\u5b9a\u8054\u7528\u7ec4\uff1a180ug\u6bcf\u5468\u4e00\u6b21\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff08\u6d3e\u7f57\u6b23\uff0c\u7f57\u6c0f\uff09\u7684\u540c\u65f6\u6bcf\u5929\u670d\u7528100mg\u62c9\u7c73\u592b\u5b9a\uff08 Epivir-HBV or Zeffix\uff0c\u845b\u5170\u7d20\u53f2\u514b\uff09\uff1b\r\n\u7b2c\u4e09\u7ec4\uff1a\u62c9\u7c73\u592b\u5b9a\u5358\u836f\u7ec4\uff1a\u6bcf\u5929\u670d\u7528100mg\u62c9\u7c73\u592b\u5b9a\uff08 Epivir-HBV or Zeffix\uff0c\u845b\u5170\u7d20\u53f2\u514b\uff09\r\n48\u5468\u7597\u7a0b\uff0c\u6cbb\u7597\u7ed3\u675f\u540e\u7ee7\u7eed\u968f\u8bbf\u89c2\u5bdf24\u5468\u3002", + "baseline": [], + "title": "\u5355\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u3001\u62c9\u7c73\u592b\u5b9a\u5355\u7528\u3001\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4e0e\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7528\u836f\u5728\u6cbb\u7597e\u6297\u539f\u9634\u6027\u6162\u6027\u4e59\u809d\u65f6\u7684\u6548\u679c\u4e0e\u5b89\u5168\u6027", + "clinic_conditions": [ + 14 + ], + "hospital": [ + 1, + 2, + 3, + 4 + ], + "source": null, + "understanded_count": 0, + "safety": "\u4f1a\u4e0d\u4f1a\u53d1\u751fYMDD\u53d8\u5f02\uff1f\r\n\u7ed3\u675f\u6cbb\u7597\u65f6\uff0cYMDD\u53d8\u5f02\u53d1\u751f\u7387\u5728\u62c9\u7c73\u592b\u5b9a\u7ec4\u91cc\u9762\u662f18%\uff0c\u5728\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4173\u540d\u60a3\u8005\u4e2d\uff0c\u53ea\u67091\u4f4d\u60a3\u8005\u53d1\u751fYMDD\u53d8\u5f02\u3002\r\n\r\n\u4e0d\u826f\u53cd\u5e94\u6709\u54ea\u4e9b\uff1f", + "entitle": "Peginterferon Alfa-2a Alone, Lamivudine Alone, and the Two in Combination in Patients with HBeAg-Negative Chronic Hepatitis B", + "konwledge_piece": [ + 1, + 2, + 3, + 24 + ], + "method": "\u672c\u6587\u6d89\u53ca\u7684\u7814\u7a76\u662f\u968f\u673a\u3001\u90e8\u5206\u53cc\u76f2\u7814\u7a76\uff0c\u4ece\u5168\u7403\u591a\u4e2d\u5fc3\uff0813\u4e2a\u56fd\u5bb654\u4e2a\u4e2d\u5fc3\uff0c\u6709\u4e00\u90e8\u5206\u5728\u4e9a\u6d32\u548c\u6b27\u6d32\uff09\u62db\u52df\u60a3\u8005\u3002 \r\n\r\n\u7814\u7a76\u5206\u6790\u4e86\u4e09\u7ec4\u4eba\u7fa4\uff08\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u3001\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u4e0e\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7528\u836f\u3001\u62c9\u7c73\u592b\u5b9a\u5355\u836f\u6cbb\u7597\uff09\u7684\u6cbb\u7597\u540e\u60c5\u51b5\u3002\u4e09\u7ec4\u4eba\u7fa4\u90fd\u662f48\u5468\u7684\u6cbb\u7597\u7597\u7a0b\uff0c\u6cbb\u7597\u540e\u7814\u7a76\u4eba\u5458\u4f1a\u7ee7\u7eed\u968f\u8bbf\u8ddf\u8e2a24\u5468\u75c5\u60c5\u53d1\u5c55\u3002", + "conclusion": "e\u6297\u539f\u9634\u6027\u7684\u6162\u6027\u4e59\u809d\u60a3\u8005\u7684\u6301\u7eed\u5e94\u7b54\u7387\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4e2d\u7684\u60a3\u8005\u660e\u663e\u9ad8\u4e8e\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u60a3\u8005\u3002\r\n\r\n\u6301\u7eed\u5e94\u7b54\u6307\u7684\u662f\u505c\u836f24\u5468\u5468\u540e\u4ecd\u6709\u5e94\u7b54\u3002\r\n\r\n\u5728\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u57fa\u7840\u4e0a\u52a0\u4e0a\u62c9\u7c73\u592b\u5b9a\u8fdb\u884c\u8054\u5408\u4f5c\u7528\uff0c\u76f8\u5bf9\u4e8e\u53ea\u7528\u5e72\u6270\u7d20\u6cbb\u7597\u5e76\u6ca1\u6709\u63d0\u9ad8\u4ec0\u4e48\u6548\u679c\u3002", + "detectionAssay": "", + "ifvalue": 11.0, + "journal": "NEJM", + "authors": "Patrick Marcellin , M.D., George K.K. Lau, M.D., Ferruccio Bonino, M.D., Patrizia Farci, M.D., Stephanos Hadziyannis, M.D., Rui Jin, M.D., Zhi-Meng Lu, M.D., Teerha Piratvisuth, M.D., Georgios Germanidis, M.D., Cihan Yurdaydin, M.D., Moises Diago, M.D., Selim Gurel, M.D., Ming-Yang Lai, M.D., Peter Button, M.Sc., and Nigel Pluck, M.D., for the Peginterferon Alfa-2a HBeAg-Negative Chronic Hepatitis B Study Group", + "abstractAE": "\u5173\u4e8e\u4e0d\u826f\u53cd\u5e94\uff0c\u5305\u62ec\u53d1\u70ed\u3001\u4e4f\u529b\u3001\u808c\u75db\u3001\u5934\u75db\u5728\u5185\u7684\u4e0d\u826f\u53cd\u5e94\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\u8981\u7a0d\u5fae\u5927\u4e00\u4e9b\u3002", + "confused_count": 0, + "collected_by": [ + 1, + 4 + ], + "guidline": 1, + "aim": "<p class=\"highlight\">\u672c\u7814\u7a76\u6240\u89c2\u6d4b\u7684\u662f\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\uff08\u5355\u836f\u6cbb\u7597\u3001\u5e72\u6270\u7d20\u4e0e\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u6cbb\u7597\u3001\u62c9\u7c73\u592b\u5b9a\u5355\u836f\u6cbb\u7597\u8fd93\u4e2d\u4e0d\u540c\u7684\u65b9\u6cd5\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u6027\u4e59\u809d\u7684\u6548\u679c\u3001\u5b89\u5168\u6027\u3002</p>", + "publish_date": "2005-03-27", + "abstract_result": "24\u5468\u968f\u8bbf\u671f\u7ed3\u675f\u4ee5\u540e\uff0c\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u7684\u590d\u5e38\u7387\uff08\u6062\u590d\u6b63\u5e38\u503c\u4ee5\u5185\u7684\u51e0\u7387\uff09\u6216\u8005\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09 DNA\u6c34\u5e73\u964d\u4f4e\u523020,000\u62f7\u8d1d/mL\u7684\u51e0\u7387\u5728\u63a5\u53d7\u542b\u6709\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff08 \u4e0b\u6587\u6b64\u7c7b\u5e72\u6270\u7d20\u90fd\u7b80\u79f0\u4e3a\u201c\u5e72\u6270\u7d20\u201d\uff0c\u5982\u6709\u8bf4\u5230\u666e\u901a\u5e72\u6270\u7d20\u4f1a\u7279\u522b\u6307\u51fa\uff09\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\u4f1a\u66f4\u9ad8\uff08\u6bd4\u8d77\u90a3\u4e9b\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u60a3\u8005\uff09\u3002\r\n\r\n\u5728\u7ed3\u675f\u6cbb\u759724\u5468\u540e\uff0c\u75c5\u6bd2\u6c34\u5e73\u964d\u5230400\u62f7\u8d1d/mL\u662f\u5f88\u591a\u4eba\u8ffd\u6c42\u7684\u6cbb\u7597\u7ec8\u70b9\uff0c\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\u5927\u6982\u670920%\u5de6\u53f3\u83b7\u5f97\u4e86\u8fd9\u6837\u7684\u75c5\u6bd2\u5b66\u5e94\u7b54\uff0c\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u60a3\u8005\u8fd9\u4e2a\u6570\u5b57\u53ea\u67097%\u3002\r\n\r\n\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u6e05\u9664\uff0c\u53ea\u670912\u4e2a\u4eba\u53d1\u751f\uff08\u90fd\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4eba\u7fa4\u4e2d\uff0c\u5360\u6bd43.4%\uff09\uff0c\u4ec5\u7528\u62c9\u7c73\u592b\u5b9a\u7684\u6cbb\u7597\u7ec4\u4e2d\u6ca1\u6709\u4eba\u83b7\u5f97HBsAg\u6e05\u9664\u3002", + "endpoints": [ + 1, + 2, + 3, + 4, + 5, + 6 + ] + } + }, + { + "pk": 2, + "model": "sciblog.sciblog", + "fields": { + "subhead": "HBeAg\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597\u65f6\uff0c\u65e9\u671f\u53ef\u4ee5\u901a\u8fc7HBsAg\u548cHBV DNA\u7684\u5b9a\u91cf\u6c34\u5e73\u6765\u9884\u6d4b\u4ee5\u540e\u7684\u5e94\u7b54\u6548\u679c", + "sample": [], + "readed_count": 0, + "references": [ + 2 + ], + "catched_by": [], + "query": [], + "endpoint_content": "\u672c\u7814\u7a76\u6839\u636e\u6b27\u6d32\u809d\u75c5\u534f\u4f1a\u6700\u65b0\u6307\u5357\u4e2d\u5bf9\u4e8e\u6cbb\u7597\u7ec8\u70b9\u4ee5\u53ca\uff08\u805a\u4e59\u4e8c\u9187\uff09\u5e72\u6270\u7d20\u6cbb\u7597\u7684\u75c5\u6bd2\u5b66\u5e94\u7b54\u7684\u5b9a\u4e49\u6765\u786e\u5b9a\u7814\u7a76\u7ec8\u70b9SR\u3002\u672c\u6587\u4e2d\uff0cHBeAg\u9634\u6027\u6162\u6027\u4e59\u809d\u60a3\u8005\u83b7\u5f97SR(sustained response\uff0c\u6301\u7eed\u5e94\u7b54\uff09\u662f\u6307\uff1a\r\n\u968f\u8bbf\u7ec8\u70b9\uff08\u7b2c72\u5468\uff09\u7684\u65f6\u5019\uff0cHBV DNA\u6c34\u5e73\u5c0f\u4e8e10000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e1714 IU/mL \uff09\r\n\u968f\u8bbf\u7ec8\u70b9\uff08\u7b2c72\u5468\uff09\u7684\u65f6\u5019\uff0cALT\u6062\u590d\u6b63\u5e38", + "treatment_content": "\u60a3\u8005\u6309\u71671\uff1a1\u6bd4\u4f8b\u88ab\u968f\u673a\u5206\u914d\u5230\u4e24\u7ec4\u4eba\u5f53\u4e2d\uff0c\u4e00\u7ec4\u63a5\u53d7180ug/\u6bcf\u5468\u7684\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u8054\u5408\u5229\u5df4\u97e6\u67971000mg/\u6bcf\u5929\uff08\u4f53\u91cd\u5c0f\u4e8e75\u5343\u514b\uff09\u6216\u80051200mg/\u6bcf\u5929\uff08\u4f53\u91cd>=75\u5343\u514b\u7684\uff09\u6cbb\u7597\uff0c\u8fd8\u6709\u4e00\u7ec4\u662f\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20180ug/\u6bcf\u5468\u7684\u5358\u836f\u6cbb\u7597\u3002\r\n\r\n48\u5468\u7597\u7a0b\uff0c\u6cbb\u7597\u7ed3\u675f\u540e\u7ee7\u7eed\u968f\u8bbf\u89c2\u5bdf24\u5468\u3002\r\n\r\n\u75c5\u60a3\u6bcf\u4e2a\u6708\u53c2\u52a0\u4e00\u6b21\u95e8\u8bca\u3002\r\n\r\n\u8868\u9762\u6297\u539f\u5b9a\u91cf\u68c0\u6d4b\u65f6\u95f4\u70b9\uff1a\u6cbb\u7597\u671f\u95f4\u7b2c4\u30018\u300112\u300124\u300136\u300148\u5468\uff0c\u968f\u8bbf\u671f\u95f4\u7b2c60\u300172\u5468\u3002", + "baseline": [], + "title": "HBeAg\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597\u65f6\uff0c\u65e9\u671f\u53ef\u4ee5\u901a\u8fc7HBsAg\u548cHBV DNA\u7684\u5b9a\u91cf\u6c34\u5e73\u6765\u9884\u6d4b\u4ee5\u540e\u7684\u5e94\u7b54\u6548\u679c", + "clinic_conditions": [ + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21 + ], + "hospital": [], + "source": null, + "understanded_count": 0, + "safety": "", + "entitle": "Early on-treatment prediction of response to peginterferon alfa-2a for hbeag-negative chronic hepatitis b using hbsag and hbv dna levels", + "konwledge_piece": [ + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ], + "method": "\u672c\u7814\u7a76\u60a3\u8005\u90fd\u662f\u63a5\u53d7PEG\u5e72\u6270\u7d20\u6cbb\u7597\u3002", + "conclusion": "\u9488\u5bf9\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684HBeAg\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\uff0c\u672c\u7814\u7a76\u5b66\u8005\u5efa\u8bae\u4e86\u4e00\u4e2a\u5728\u6cbb\u7597\u5f00\u59cb\u540e\u7b2c12\u5468\u65f6\u5224\u65ad\u662f\u5426\u9700\u8981\u505c\u836f\u7684\u51c6\u5219\uff0c\u8fd9\u4e2a\u51c6\u5219\u57fa\u4e8e\u8840\u6e05\u4e2dHBV DNA\u548cHBsAg\u4e24\u4e2a\u6307\u6807\u4ece\u57fa\u7ebf\u5f00\u59cb\u7684\u4e0b\u964d\u6c34\u5e73\u3002\u6362\u8a00\u4e4b\uff0c\u4e34\u5e8a\u4e2d\uff0c\u540c\u65f6\u5b9a\u91cf\u68c0\u6d4bHBsAg\u548cHBV DNA\u80fd\u591f\u8c03\u6574\u805a\u4e59\u4e8c\u9187\u6cbb\u7597HBeAg\u9634\u6027\u6162\u4e59\u809d\u7684\u7b56\u7565\u3002\r\n\r\n\u5bf9\u4e8e\u4ee5\u4e0b\u60a3\u8005\uff1a\u6cbb\u7597\u7b2c12\u5468\u65f6\uff0c\u76f8\u6bd4\u57fa\u7ebf\uff08\u6cbb\u7597\u5f00\u59cb\uff09\uff0c\u8840\u6e05HBsAg\u6c34\u5e73\u6ca1\u6709\u4e0b\u964d\u800c\u4e14HBV DNA \u4e0b\u964d<2 log \u62f7\u8d1d/mL \uff0c\u5e94\u8be5\u505c\u6b62\u5e72\u6270\u7d20\u7684\u6cbb\u7597\uff0c\u6362\u7528\u5176\u4ed6\u6cbb\u7597\u65b9\u6cd5\u3002", + "detectionAssay": "\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u5b9a\u91cf\u68c0\u6d4b\uff1a\u96c5\u57f9 Architect HBsAg assay (Abbott Laboratories\uff09\u63d0\u4f9b\uff0c \u7ebf\u6027\u8303\u56f4\u662f0.05-250 IU/mL\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u68c0\u6d4b\uff1a\u7f57\u6c0f\u8bca\u65ad TaqMan HBV assay, Roche Diagnostics\u63d0\u4f9b\uff0c\u68c0\u6d4b\u4e0b\u965035copies/mL\r\n\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u68c0\u6d4b\uff1a\u5728\u7814\u7a76\u5f53\u5730\u533b\u9662\u6309\u7167\u6807\u51c6\u64cd\u4f5c\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09\u57fa\u56e0\u578b\u68c0\u6d4b\uff1a INNO-LiPA assay (Innogenetics)\r\n\u809d\u7a7f\u523a\u68c0\u6d4b\uff1a\u6bcf\u4e2a\u60a3\u8005\u90fd\u6709\u5165\u7ec4\u524d\u4e00\u5e74\u5185\u7684\u809d\u7a7f\u7ed3\u679c\uff0c\u7528Ishak\u8bc4\u5206\u7cfb\u7edf\u6765\u8868\u793a\u809d\u810f\u708e\u75c7\u7684\u7b49\u7ea7\uff080-18\u5206\uff09\u548c\u809d\u810f\u7ea4\u7ef4\u5316\u7684\u7a0b\u5ea6\uff080-6\u5206\uff09", + "ifvalue": 11.0, + "journal": "Hepatology", + "authors": "Harry Janssen , Vincent Rijckborst\uff0cBettina E. Hansen, Yilmaz Cakaloglu, Peter Ferenci, Fehmi Tabak, Meral Akdogan, Krzysztof Simon, Ulus S. Akarca, Robert Flisiak, Elke Verhey, Anneke J. Van Vuuren, Charles A. B. Boucher, Martijn J. ter Borg Harry L. A. Janssen ", + "abstractAE": "", + "confused_count": 0, + "collected_by": [], + "guidline": null, + "aim": "\u8fd9\u9879\u7814\u7a76\u662f\u7814\u7a76\u8005\u4e3b\u5bfc\u578b\u3001\u591a\u4e2d\u5fc3\u3001\u968f\u673a\u3001\u53cc\u76f2\u3001\u5bf9\u7167\u7814\u7a76\uff0c\u8be5\u7814\u7a76\u9075\u5b88\u8d6b\u5c14\u8f9b\u57fa\u5ba3\u8a00\u3002\r\n1.\u7814\u7a76\u7684\u76ee\u7684\u662f\u4e3a\u5f04\u6e05\u695a\u5728\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alpha-2a\u6cbb\u7597\u7684e\u6297\u539f\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u4e2d\uff0c\u6cbb\u7597\u524d\u671f\u5b9a\u91cf\u7684\u8840\u6e05HBsAg\u542b\u91cf\u5728\u9884\u6d4b\u4eca\u540e\u6301\u7eed\u5e94\u7b54\u6548\u5e94\u65f6\u7684\u4f5c\u7528\u3002\r\n2. \u9488\u5bf9\u8fd9\u90e8\u5206\u60a3\u8005\u6765\u627e\u5230\u53ef\u9760\u7684\u6cbb\u7597\u6307\u5357\u65b9\u9488\u6765\u6307\u5bfc\u505c\u836f\u3002", + "publish_date": "2010-04-19", + "abstract_result": "\u56de\u987e\u8be5\u7814\u7a76\u4e2d\u7684\u6301\u7eed\u5e94\u7b54\u8005\u5728\u6cbb\u7597\u671f\u95f4\u7684\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6c34\u5e73\u7684\u53d8\u5316\uff0c\u4ece\u6cbb\u75978\u5468\u5f00\u59cb\uff0c\u8fd9\u4e9b\u5e94\u7b54\u8005\u7684HBsAg\u7684\u6c34\u5e73\u660e\u663e\u4e0b\u964d\uff1b\u76f8\u53cd\uff0c\u7ed3\u675f\u6cbb\u7597\u540e\u6ca1\u6709\u53d1\u751f\u6301\u7eed\u5e94\u7b54\u7684\u60a3\u8005\u6cbb\u7597\u671f\u95f4HBsAg\u6c34\u5e73\u53ea\u6709\u8f7b\u5fae\u7684\u4e0b\u964d\u3002\r\n\r\n\u6839\u636e\u7edf\u8ba1\u5b66\u5904\u7406\uff0c\u6216\u8005\u8bf4\u901a\u8fc7\u53d7\u8bd5\u8005\u5de5\u4f5c\u66f2\u7ebf\u7684AUC\u5224\u65ad\uff0c\u4ec5\u4ec5\u4f9d\u9760HBsAg\u7684\u4e0b\u964d\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\u6709\u9650\u5236\u3002\r\n\r\n\u628aHBsAg\u4e0b\u964d\u548c\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u4e0b\u964d\u7ed3\u5408\u8d77\u6765\u80fd\u591f\u6700\u597d\u5730\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\u3002\r\n\r\n\u672c\u6587\u88ab\u89c2\u5bdf\u7684\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684e\u6297\u539f\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u4e2d\uff0c\u6cbb\u7597\u671f\u95f4HBsAg\u6ca1\u6709\u51fa\u73b0\u4e0b\u964d\u5e76\u4e14DNA\u6c34\u5e73\u4e0b\u964d\u5c0f\u4e8e2\u4e2alog \u62f7\u8d1d/ml\u7684\u4eba\uff0c\u6cbb\u7597\u7ed3\u675f\u540e\u90fd\u6ca1\u6709\u51fa\u73b0\u6301\u7eed\u5e94\u7b54\uff0c\u8fd9\u90e8\u5206\u60a3\u8005\u5360\u672c\u6587\u88ab\u89c2\u5bdf\u60a3\u800520%\u3002\r\n\r\n\u76f8\u53cd\uff0c\u5982\u679c12\u5468\u540c\u65f6\u51fa\u73b0HBsAg\u4e0b\u964d\u4ee5\u53caDNA\u6c34\u5e73\u4e0b\u964d\u5927\u4e8e2\u4e2alog \u62f7\u8d1d/ml\u60a3\u8005\u6700\u7ec8\u51fa\u73b0\u6301\u7eed\u5e94\u7b54\u7684\u51e0\u7387\u4e3a39%\uff08\u76f8\u5bf9\u672c\u7814\u7a76\u5176\u4ed6\u7ec4\u522b\u6700\u9ad8\uff09\uff0c\u8fd9\u90e8\u5206\u60a3\u8005\u5360\u672c\u7814\u7a76\u6574\u4e2a\u4eba\u7fa427%\u3002", + "endpoints": [ + 1, + 7 + ] + } + }, + { + "pk": 3, + "model": "sciblog.sciblog", + "fields": { + "subhead": "\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u809d\uff0c\u8868\u9762\u6297\u539f\u6cbb\u7597\u671f\u95f412\u5468\u300124\u5468\u6c34\u5e73\u53ef\u80fd\u9884\u793a\u6301\u4e45\u5e94\u7b54", + "sample": [], + "readed_count": 0, + "references": [ + 3 + ], + "catched_by": [ + 1 + ], + "query": [], + "endpoint_content": "\u672c\u6587\u6cbb\u7597\u5e94\u7b54\u5b9a\u4e49\u4e3a\uff1a\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540ee\u6297\u539f\uff08HBeAg\uff09\u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u3002", + "treatment_content": "\u88ab\u7814\u7a76\u8005\uff08399\u4eba\uff09\u4e2d\uff0c \u4e00\u534a\u4eba\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\uff08\u6bcf\u5468180ug\uff09\uff0c\u53e6\u4e00\u534a\u4eba\u63a5\u53d7\u8054\u5408\u6cbb\u7597\uff0c\u5373\u5728\u7b2c\u4e00\u7ec4\u6cbb\u7597\u65b9\u6848\u7684\u57fa\u7840\u4e0a\u518d\u52a0\u7528\u62c9\u7c73\u592b\u5b9a\uff08\u6bcf\u5929100mg\uff09\uff0c\u4e24\u7ec4\u6cbb\u7597\u90fd\u662f\u6301\u7eed48\u5468\u3002\r\n\u968f\u8bbf\u65f6\u95f4\u70b9\uff1a\u57fa\u7ebf\uff08\u6cbb\u7597\u5f00\u59cb\uff09\u3001\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\uff0c24\u5468\uff0c48\u5468\uff08\u6cbb\u7597\u7ed3\u675f\uff09", + "baseline": [], + "title": "[\u56de\u987e\u6027\u5206\u6790]\u8868\u9762\u6297\u539f\u4e0e\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u6301\u4e45\u5e94\u7b54\u7684\u5173\u7cfb", + "clinic_conditions": [], + "hospital": [ + 4, + 5, + 6 + ], + "source": null, + "understanded_count": 0, + "safety": "", + "entitle": "Hepatitis B surface antigen: association with sustained response to peginterferon alfa-2a in hepatitis B e antigen-positive patients", + "konwledge_piece": [ + 17, + 18, + 19, + 20, + 21, + 22, + 23 + ], + "method": "\u672c\u7814\u7a76\u662f\u9488\u5bf9\u4e00\u4e2a\u5927\u578b\u7684\u3001\u968f\u673a\u7814\u7a76\u7684\u56de\u987e\u6027\u5206\u6790\u3002\u56e0\u4e3a\u672c\u6587\u8981\u89c2\u5bdf\u60a3\u8005\u5728\u6cbb\u7597\u671f\u95f4\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u53d8\u5316\uff0c\u6240\u4ee5\u56de\u987e\u91c7\u7528\u7684\u90fd\u662f\u4fdd\u7559\u6709\u8868\u9762\u6297\u539f\u968f\u8bbf\u8bb0\u5f55\u7684\u60a3\u8005\u7684\u6570\u636e\uff0c\u539f\u6765\u7684\u5927\u578b\u7814\u7a76\u6709542\u4eba\uff0c\u672c\u6587\u5206\u6790\u7528\u5230\u7684\u6570\u636e\u6709399\u4eba\u3002\u8fd9399\u4eba\u4e2d\uff0c\u4e00\u534a\u4eba\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597\uff08\u6bcf\u5468180ug\uff09\uff0c\u53e6\u4e00\u534a\u4eba\u63a5\u53d7\u8054\u5408\u6cbb\u7597\uff0c\u5c31\u662f\u5728\u7b2c\u4e00\u7ec4\u6cbb\u7597\u65b9\u6848\u7684\u57fa\u7840\u4e0a\u518d\u52a0\u7528\u62c9\u7c73\u592b\u5b9a\uff08\u6bcf\u5929100mg\uff09\uff0c\u4e24\u7ec4\u6cbb\u7597\u90fd\u662f\u6301\u7eed48\u5468\u3002", + "conclusion": "\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u7684\u65f6\u5019\uff0c\u6cbb\u7597\u671f\u95f4\u8840\u6e05\u4e2d\u8868\u9762\u6297\u539f\u7684\u6c34\u5e73\u4e0e\u6cbb\u7597\u7ed3\u675f\u540e\u6301\u4e45\u5e94\u7b54\u6709\u5173\u8054\u3002\u57fa\u7ebf\u8868\u9762\u6297\u539f\u6c34\u5e73\u548c\u6301\u4e45\u5e94\u7b54\u662f\u5426\u6709\u5173\u7cfb\u672c\u7814\u7a76\u4e0d\u8db3\u4ee5\u8bc1\u5b9e\u3002\u4f46\u5b9a\u91cf\u68c0\u6d4b\u8868\u9762\u6297\u539f\u6216\u8bb8\u53ef\u4ee5\u5e2e\u52a9\u60a3\u8005\u6307\u5bfc\u4eca\u540e\u7684\u6cbb\u7597\u65b9\u6848\u3002[2]", + "detectionAssay": "\u8868\u9762\u6297\u539f(HBsAg)\u6c34\u5e73\u7684\u5b9a\u91cf\u68c0\u6d4b\uff1a Abbott Architect HBsAg assay (Abbott Laboratories, IL, USA\uff09\r\nHBV DNA\u6c34\u5e73\u68c0\u6d4b\uff1a Amplicor HBV test (\u7f57\u6c0f\u5206\u5b50\u8bca\u65ad Roche Molecular Diagnostics, Pleasanton, CA, USA\uff09", + "ifvalue": 2.6, + "journal": "Hepatol Int. ", + "authors": "default authors", + "abstractAE": "<br data-mce-bogus=\"1\">", + "confused_count": 0, + "collected_by": [ + 1, + 2 + ], + "guidline": null, + "aim": "\u5728\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u8fdb\u884c\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\u7684\u65f6\u5019\uff0c\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u5982\u679c\u53d1\u751fe\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\uff0c\u90a3\u5c31\u9884\u793a\u7740\u505c\u836f\u540e\u957f\u671f\u968f\u8bbf\u671f\u95f4\u8868\u9762\u6297\u539f\u7684\u6e05\u9664\u7387\u4f1a\u63d0\u9ad8\u3002\u800c\u672c\u6587\u5b66\u8005\u628a\u5173\u6ce8\u70b9\u653e\u5728\u4e86\u53e6\u4e00\u4e2a\u6307\u6807--\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u4e0a\uff0c\u6240\u7814\u7a76\u7684\u8bdd\u9898\u662f\u5728\u6cbb\u7597\u671f\u95f4\u7684\u65f6\u5019\u901a\u8fc7\u5b9a\u91cf\u68c0\u6d4b\u8868\u9762\u6297\u539f\u80fd\u5426\u4e5f\u53ef\u4ee5\u9884\u6d4b\u6cbb\u7597\u7ed3\u675f\u540e\u7684\u5e94\u7b54\u3002", + "publish_date": "2011-01-05", + "abstract_result": "\u6cbb\u7597\u7ed3\u675f\u540e\u83b7\u5f97\u6cbb\u7597\u5e94\u7b54\u7684\u60a3\u8005\u57fa\u7ebf\u65f6\u8868\u9762\u6297\u539f\u7684\u6c34\u5e73\uff0c\u6bd4\u8d77\u90a3\u4e9b\u6ca1\u6709\u83b7\u5f97\u5e94\u7b54\u7684\u60a3\u8005\u7684\u57fa\u7ebf\u8868\u9762\u6297\u539f\u6c34\u5e73\u8981\u4f4e\u3002\uff083.97 log10 IU/mL \u6bd4 4.21 log10IU/mL\uff09\u3002\u5e76\u4e14\u83b7\u5f97\u5e94\u7b54\u7684\u60a3\u8005\u5728\u6574\u4e2a\u6cbb\u7597\u671f\u95f4>\u9762\u6297\u539f\uff08HBsAg\uff09\u4e0b\u964d\u7a0b\u5ea6\u66f4\u5927\u3002\r\n\u5728\u6cbb\u7597\u5f00\u59cb\u540e\u7b2c12\u5468\u8868\u9762\u6297\u539f\u7684\u503c\u4e0b\u964d\u52301,500IU/mL\u4ee5\u4e0b\u7684\u60a3\u8005\uff0c\u6cbb\u7597\u7ed3\u675f\u540ee\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\u7387\u4e3a56.7%\uff1b \r\n\u572824\u5468\u8868\u9762\u6297\u539f\u7684\u503c\u4e0b\u964d\u52301,500IU/mL\u4ee5\u4e0b\u7684\u60a3\u8005\uff0c\u6cbb\u7597\u7ed3\u675f\u540ee\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\u7387\u4e3a54.4%\u3002\u5982\u679c\u5728\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\u6216\u800524\u5468\uff0c\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6d4b\u5f97\u66f4\u9ad8\u7684\u503c\uff0c\u6bd4\u59821,500\u523020,000IU/mL\u6216\u8005\u5927\u4e8e20,000IU/mL\uff0c\u90a3\u4e48\u6cbb\u7597\u540e\u83b7\u5f97e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u51e0\u7387\u8981\u66f4\u4f4e\u3002\uff08\u524d\u8005\u4e3a32.3%\uff0c\u540e\u8005\u4e3a15.4%\uff09", + "endpoints": [ + 8, + 9, + 10 + ] + } + }, + { + "pk": 4, + "model": "sciblog.sciblog", + "fields": { + "subhead": "e\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e8c\u4e59\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u524d\u54ea\u4e9b\u8d77\u59cb\u56e0\u7d20\u53ef\u4ee5\u9884\u6d4b\u672a\u6765\u7597\u6548\u597d\u4e0e\u574f", + "sample": [], + "readed_count": 0, + "references": [], + "catched_by": [], + "query": [], + "endpoint_content": "", + "treatment_content": "\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u7684e\u6297\u539f\u6162\u4e59\u809d\u60a3\u8005\u4e2d\u6700\u6709\u53ef\u80fd\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u4eba\u6709\uff1a\r\n<ul><li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u6216\u8005\u4f4eHBV DNA\u6c34\u5e73\u7684HBV\u57fa\u56e0\u578b\u4e3aA\u578b\u7684\u60a3\u8005\uff1b</li>\r\n<li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u4e14HBV DNA\u4f4e\u6c34\u5e73\u7684B\u3001C\u578b\u60a3\u8005\u3002</li></ul>\r\nD\u578b\u60a3\u8005\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u4f4e\u3002\r\n\u8be5\u7814\u7a76\u63d0\u4f9b\u4e86\u4e00\u4e2a\u5de5\u5177\u6765\u8ba1\u7b97\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u60a3\u8005\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\u7684\u51e0\u7387\u3002\u7814\u7a76\u5efa\u8bae\u4e86\u51e0\u4e2a\u91cd\u8981\u7684\u4eba\u7fa4\u5e94\u8be5\u8003\u8651\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u3002\r\n", + "baseline": [], + "title": "\u80fd\u591f\u9884\u6d4b\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\u5e94\u7b54\u7ed3\u679c\u7684\u56e0\u5b50", + "clinic_conditions": [], + "hospital": [ + 7 + ], + "source": null, + "understanded_count": 0, + "safety": "", + "entitle": "Factors That Predict Response of Patients With Hepatitis B e Antigen\u2013Positive Chronic Hepatitis B to Peginterferon-Alfa", + "konwledge_piece": [ + 25, + 26, + 27, + 28 + ], + "method": "\u8be5\u7814\u7a76\u4e2d\u6709542\u4f4d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u6bcf\u5468180ug\u957f\u8fbe48\u5468\u7684\u6cbb\u7597\uff0c\u53e6\u5916\u6709266\u4f4d\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2b\u6bcf\u5468100ug\u957f\u8fbe52\u5468\u7684\u6cbb\u7597\u3002\u6700\u7ec8\u62ff\u6765\u505a\u6570\u636e\u5206\u6790\u7684\u60a3\u8005\u6709721\u4f4d\uff08\u7531\u4e8e\u6570\u636e\u7f3a\u5931\u7b49\u5ba2\u89c2\u539f\u56e0\uff09\u3002\u53e6\u5916\u79d1\u7814\u4e2d\u5e38\u7528\u7684\u6570\u7406\u7edf\u8ba1\u65b9\u6cd5\u8bf8\u5982\u903b\u8f91\u56de\u5f52\u5206\u6790\u65b9\u6cd5\u7528\u6765\u8bc1\u5b9e\u6301\u4e45\u5e94\u7b54\u7684\u56e0\u5b50\uff0c\u4ece\u800c\u8be5\u7814\u7a76\u8fd8\u5efa\u7acb\u4e86\u591a\u53d8\u91cf\u7684\u9884\u6d4b\u7597\u6548\u7684\u6570\u5b66\u6a21\u578b\uff0c\u8fd9\u662f\u672c\u6587\u6700\u5927\u7684\u4eae\u70b9\u3002", + "conclusion": "\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u7684e\u6297\u539f\u6162\u4e59\u809d\u60a3\u8005\u4e2d\u6700\u6709\u53ef\u80fd\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u4eba\u6709\uff1a\r\n<ul><li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u6216\u8005\u4f4eHBV DNA\u6c34\u5e73\u7684HBV\u57fa\u56e0\u578b\u4e3aA\u578b\u7684\u60a3\u8005\uff1b</li>\r\n<li>\u57fa\u7ebf\u9ad8\u8c37\u4e19\u8f6c\u6c28\u9176\u6c34\u5e73\u4e14HBV DNA\u4f4e\u6c34\u5e73\u7684B\u3001C\u578b\u60a3\u8005\u3002</li></ul>\r\nD\u578b\u60a3\u8005\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u4f4e\u3002", + "detectionAssay": "", + "ifvalue": 11.68, + "journal": "Gastroenterology", + "authors": "Harry Janssen , Erik H.C.J.\u00a0Buster, Bettina E.\u00a0Hansen, George K.K.\u00a0Lau, Teerha\u00a0Piratvisuth, Stefan\u00a0Zeuzem, Ewout W.\u00a0Steyerberg", + "abstractAE": "\u672c\u6587\u672a\u6d89\u53ca\u526f\u4f5c\u7528\u7684\u8be6\u7ec6\u8ba8\u8bba\u3002", + "confused_count": 0, + "collected_by": [], + "guidline": null, + "aim": "\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa\u6cbb\u7597\u6162\u4e59\u809d\u80fd\u591f\u5728\u5c11\u90e8\u5206\u4eba\u8eab\u4e0a\u8fbe\u5230\u6301\u7eed\u6027\u7684\u5e94\u7b54\uff0c\u800c\u4e14\u4e5f\u6709\u76f8\u5f53\u7684\u526f\u4f5c\u7528\u3002\u672c\u6587\u5206\u6790\u4e862\u4e2a\u6700\u5927\u7684\u5173<div class=\"image-wrap\">\r\n\t<a href=\"http://image.97suifang.com/media/imgs/2013/07/21/23-%E8%A1%A81_2.jpg\" class=\"enlarge-image\">\r\n\t\t<img src=\"http://image.97suifang.com/media/imgs/2013/07/21/22-%E8%A1%A83-1_4.jpg\" alt=\"\">\r\n\t</a>\r\n</div>\u4e8ee\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u7684\u5168\u7403\u4e34\u5e8a\u5b9e\u9a8c\uff0c\u6765\u786e\u5b9a\u54ea\u4e9b\u4eba\u6700\u5bb9\u6613\u5bf9\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20-alfa\u7684\u6cbb\u7597\u4ea7\u751f\u5e94\u7b54\u3002", + "publish_date": "2009-12-01", + "abstract_result": "<ol><li>HBV\u57fa\u56e0\u578b</li></ol>\u3001\u57fa\u7ebf\u9ad8\u6c34\u5e73\u7684\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6c34\u5e73\uff08>2\u4e2a\u6b63\u5e38\u503c\u4e0a\u9650\uff09\u3001\u57fa\u7ebf\u4f4e\u6c34\u5e73\u7684HBV DNA\uff08<2.0*10^8IU/mL\uff09\u3001\u5973\u6027\u3001\u5e74\u957f\u3001\u4ee5\u524d\u6ca1\u6709\u63a5\u53d7\u8fc7\u5e72\u6270\u7d20\u6cbb\u7597\u8fd9\u4e9b\u56e0\u7d20\u90fd\u80fd\u591f\u9884\u6d4b\u6301\u4e45\u5e94\u7b54\u3002\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09\u57fa\u56e0\u578bA\u578b\u3001\u57fa\u7ebf\u9ad8ALT\u503c\u548c/\u6216\u8005\u4f4eHBV-DNA\u6c34\u5e73\u7684\u60a3\u8005\u6709\u9ad8\u51e0\u7387\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\uff08\u8d85\u8fc730%\uff09\u3002\r\n<p>\u4e0a\u8ff0\u8fd9\u4e9b\u56e0\u7d20\u4e2d\u6700\u5f3a\u7684\u9884\u6d4b\u56e0\u5b50\u662f\u57fa\u7ebf\u9ad8\u6c34\u5e73\u7684\u8c37\u4e19\u8f6c\u6c28\u9176\uff08\u5bf9\u4e8eHBV\u57fa\u56e0\u578bB\u578b\u60a3\u8005\uff09\u548c\u57fa\u7ebf\u4f4e\u6c34\u5e73\u7684HBV-DNA\uff08\u5bf9\u4e8eHBV\u57fa\u56e0\u578bC\u578b\u60a3\u8005\uff09\u3002\u57fa\u56e0\u578bD\u578b\u7684\u60a3\u8005\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u4f4e\u3002</p>", + "endpoints": [] + } + }, + { + "pk": 1, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "\u8be5\u7814\u7a76\u6240\u6709\u60a3\u8005\r\n", + "blog": 1, + "shorttitle": "\u6cbb\u7597\u524d\u7684\u5404\u9879\u6307\u6807\u60c5\u51b5", + "abstract": "", + "content": "\u88ab\u62db\u52df\u8005\u603b\u4f53\u4eba\u7fa4\u7279\u5f81\r\n[\u88ab\u62db\u52df\u60a3\u8005\u90fd\u5fc5\u987b\u7b26\u5408\u4ee5\u4e0b\u6761\u4ef6]\r\ne\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u81f3\u5c11\u516d\u4e2a\u6708\uff1b\r\ne\u6297\u4f53\uff08HBeAb\uff09\u548c\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u81f3\u5c11\u9633\u6027\u516d\u4e2a\u6708\uff1b\r\n\u4e59\u809d\u75c5\u6bd2\uff08DNA\uff09\u6c34\u5e73\u81f3\u5c11100,000\u62f7\u8d1d/mL\r\n\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u57281\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u548c10\u88ab\u6b63\u5e38\u503c\u4e0a\u9650\u4e4b\u95f4\uff1b\r\n\u5728\u8fc7\u53bb24\u4e2a\u6708\u5185\u809d\u810f\u6d3b\u68c0\u8bc1\u5b9e\u6709\u809d\u708e\u3002\r\n\r\n[\u88ab\u62db\u52df\u60a3\u8005\u4e0d\u5305\u62ec\u4ee5\u4e0b\u60c5\u51b5]\r\n\u60a3\u6709\u5931\u4ee3\u507f\u809d\u786c\u5316\uff1b\r\n\u66fe\u7ecf\u6709\u8fc7\u4e25\u91cd\u7684\u7cbe\u795e\u548c\u5185\u79d1\u75be\u75c5\uff1b\r\n\u4e00\u5f00\u59cb\u4e2d\u6027\u7c92\u7ec6\u80de\u6570\u5c0f\u4e8e1500/mm3;\r\n\u8840\u5c0f\u677f\u6570\u91cf\u5c0f\u4e8e90,000/mm3;\r\n\u8840\u6e05\u808c\u9150\u4e3a\u6b63\u5e38\u503c\u4e0a\u9650\u7684\u81f3\u5c111.5\u500d\u4ee5\u4e0a\uff1b\r\n\u5165\u7ec4\u524d\u4e00\u5e74\u5185\u6709\u8fc7\u8fc7\u5ea6\u996e\u9152\u6216\u8005\u6ee5\u7528\u836f\u7269\u7684\u7ecf\u5386\uff1b\r\n\u5728\u6700\u8fd1\u76846\u4e2a\u6708\u5185\u63a5\u53d7\u8fc7\u6297\uff08\u4e59\u809d\uff09\u75c5\u6bd2\u6cbb\u7597\uff1b\r\n\u5408\u5e76\u4e19\u578b\u809d\u708e\uff08HCV\uff09\u3001\u4e01\u809d\u6216\u8005HIV\u3002\r\n", + "sample": [], + "indicators": [ + 3, + 2, + 1 + ], + "type": 1 + } + }, + { + "pk": 2, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aA\u578b\r\n\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aB\u578b\r\n\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aC\u578b\r\n\u611f\u67d3\u75c5\u6bd2\u57fa\u56e0\u578b\u4e3aD\u578b", + "blog": 1, + "shorttitle": "\u957f\u671f\u968f\u8bbf\u8c01\u7597\u6548\u66f4\u6301\u4e45", + "abstract": "", + "content": "\u63a5\u53d7\u4e09\u79cd\u4e0d\u540c\u6cbb\u7597\u7684\u60a3\u8005\u7684\u57fa\u7ebf\u6c34\u5e73\uff0c\u751f\u5316\u5b66\u5e94\u7b54\uff0c\u75c5\u6bd2\u5b66\u5e94\u7b54\u4ee5\u53ca\u8868\u9762\u6297\u539f\u5e94\u7b54\r\n\r\n\u57fa\u7ebf\u6c34\u5e73\r\n\r\n\r\n\r\n\r\n\u751f\u5316\u5b66\u5e94\u7b54\u5982\u4f55\uff1f\r\n\u6cbb\u759748\u5468\u7ed3\u675f\u65f6\uff0c\u62c9\u7c73\u592b\u5b9a\u7ec4\uff08\u60a3\u8005\u7684\uff09\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6062\u590d\u6b63\u5e38\u7684\u6bd4\u7387\u6bd4\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u9ad8\uff08\u672c\u7814\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682\u65f6\u7684\uff09\uff1b\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u65f6\uff0c\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6062\u590d\u6b63\u5e38\u7684\u6bd4\u7387\u660e\u663e\u6bd4\u62c9\u7c73\u592b\u5b9a\u7ec4\u9ad8\uff1b\r\n\u5728\u6cbb\u7597\u671f\u95f4\uff0c\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u51fa\u73b0\u5347\u9ad8\uff08\u523010\u4e2a\u6b63\u5e38\u503c\u4ee5\u4e0a\uff0c\u6216\u8005300IU/L\u4ee5\u4e0a\uff09\u7684\u51e0\u7387\u660e\u663e\u591a\u4e8e\u62c9\u7c73\u592b\u5b9a\u7ec4\uff1b\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u968f\u8bbf\u671f\u95f4\uff0c\u62c9\u7c73\u592b\u5b9a\u7ec4\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u51fa\u73b0\u5347\u9ad8\uff08\u523010\u4e2a\u6b63\u5e38\u503c\u4ee5\u4e0a\uff0c\u6216\u8005300IU/L\u4ee5\u4e0a\uff09\u7684\u51e0\u7387\u660e\u663e\u591a\u4e8e\u5e72\u6270\u7d20\u7ec4\u3001\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\uff1b\r\nALT\u6062\u590d\u6b63\u5e38\u548c\u5728\u6cbb\u7597\u671f\u95f4ALT\u4e0a\u5347\u6709\u5f88\u5927\u5173\u8054\u3002\r\n\r\n\u4e0b\u9762\u6709ALT\u7684\u5177\u4f53\u53d8\u5316\u8d8b\u52bf\uff08\u56fe 2A\uff09\uff1a\r\n\r\n\r\n\r\n\r\n\u56fe 1A \u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\u7684\u751f\u5316\u5b66\u5e94\u7b54\u7387\uff08\u4e09\u7ec4\u4e0d\u540c\u6cbb\u7597\u65b9\u6848\u60a3\u8005\u6bd4\u8f83\uff09\r\n\r\n\u75c5\u6bd2\u5b66\u5e94\u7b54\u5982\u4f55\uff1f\r\n\u5728\u6cbb\u7597\u7ed3\u675f\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u572820,000\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\u5728\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u4e2d\u6700\u9ad8\uff1b\r\n\u5728\u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u572820,000\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\u5728\u5e72\u6270\u7d20\u7ec4\u548c\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u5dee\u4e0d\u591a\uff0843%\u300144%\uff09\uff0c\u90fd\u8981\u6bd4\u62c9\u7c73\u592b\u5b9a\u7ec4\u9ad8\uff0829%\uff09\uff1b\r\n\u53e6\u5916\uff0c\u5173\u4e8e\u75c5\u6bd2\u5b66\u5e94\u7b54\u7684\u6b21\u8981\u6807\u51c6\u4e4b\u4e00\uff1aHBV\u4e0b\u964d\u5230400\u62f7\u8d1d/mL\u4ee5\u4e0b\uff1a\r\n\u5728\u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u5728400\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\u5728\u5e72\u6270\u7d20\u548c\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u662f19%\u300120%\uff0c\u62c9\u7c73\u592b\u5b9a\u7ec4\u53ea\u67097%\uff1b\r\n48\u5468\u4ee5\u540e\uff0cDNA\u4e0b\u964d\u7a0b\u5ea6\u6700\u5927\u7684\u662f\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u7528\u7ec4\uff0c\u5e72\u6270\u7d20\u5358\u836f\u7ec4\u548c\u62c9\u7c73\u592b\u5b9a\u5358\u836f\u7ec4\u5dee\u4e0d\u591a\u3002\r\n\r\n\u60a3\u8005\u75c5\u6bd2\u6c34\u5e73\u968f\u8bbf\u8bb0\u5f55\u8868\u683c\uff1a\r\n\r\n\r\n\r\n\u56fe 1B\uff1a\u6cbb\u7597\u7ed3\u675f24\u5468\u65f6\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u572820,000\u62f7\u8d1d/mL\u4ee5\u5185\u60a3\u8005\u7684\u6bd4\u4f8b\r\n\r\n\r\n\u56fe 2B \u75c5\u6bd2\u7684\u5177\u4f53\u53d8\u5316\u8d8b\u52bf\r\n\r\n\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u5e94\u7b54\u5982\u4f55\uff1f\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u65f6\uff0c\u5728\u5e72\u6270\u7d20\u7ec4\u76847\u540d\u60a3\u8005\u83b7\u5f97\u4e86\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6e05\u9664\uff085\u540d\u4e9a\u6d32\u4eba\uff0c2\u540d\u767d\u79cd\u4eba\uff09\uff0c\u5728\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec4\u67095\u540d\u60a3\u8005\u83b7\u5f97\u4e86\u8868\u9762\u6297\u539f\u6e05\u9664\uff084\u540d\u4e9a\u6d32\u4eba\uff0c1\u540d\u767d\u79cd\u4eba\uff09\u3002\r\n\u540c\u6837\u65f6\u95f4\u83b7\u5f97\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\uff08\u5b9a\u4e49\u4e3a\u8868\u9762\u6297\u539f\u6e05\u9664\u540c\u65f6\u51fa\u73b0\u8868\u9762\u6297\u4f53HBsAb\uff09\u7684\u6709\u5e72\u6270\u7d20\u7ec45\u4eba\uff0c\u5e72\u6270\u7d20+\u62c9\u7c73\u592b\u5b9a\u8054\u5408\u7ec43\u4eba\u3002\r\n\u6cbb\u7597\u7ed3\u675f\u540e24\u5468\u65f6\u8868\u9762\u6297\u539f\u7684\u6e05\u9664\u6216\u8005\u8840\u6e05\u5b66\u8f6c\u6362\u5728\u62c9\u7c73\u592b\u5b9a\u60a3\u8005\u4e2d\u6ca1\u6709\u88ab\u53d1\u73b0\u3002\r\n\u8868\u9762\u6297\u539f\u7684\uff08HBsAg\uff09\u5e94\u7b54\u7387\u5728\u542b\u6709\u5e72\u6270\u7d20\u7684\u6cbb\u7597\u7ec4\u4e2d\u4e0e\u62c9\u7c73\u592b\u5b9a\uff08\u5358\u836f\uff09\u7ec4\u7684\u5dee\u8ddd\u5f88\u5927\u3002", + "sample": [], + "indicators": [], + "type": 2 + } + }, + { + "pk": 3, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 2, + "shorttitle": "", + "abstract": "", + "content": "$\u8be5\u7814\u7a76\u603b\u4f53\u4eba\u7fa4$\r\n$$\u57fa\u7ebf\u6c34\u5e73\u548c\u6cbb\u7597\u7ed3\u679c\u5982\u4f55\uff1f$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA\r\ne\u6297\u539f HBeAg\r\n\u8c37\u4e19\u8f6c\u6c28\u9176 ALT$$$\r\n\r\n\u88ab\u62db\u52df\u60a3\u8005\u90fd\u5fc5\u987b\u7b26\u5408\u4ee5\u4e0b\u6761\u4ef6]\r\n\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u9633\u6027\u81f3\u5c11\u516d\u4e2a\u6708 \u3010\u5df2\u6709\u3011\r\n\u5165\u7ec4\u524d2\u4e2a\u6708\u5185\uff0ce\u6297\u539f\uff08HBeAg\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21\r\n\u5165\u7ec4\u524d2\u4e2a\u6708\uff0ce\u6297\u4f53\uff08HBeAb\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21\r\n\u5165\u7ec4\u524d2\u4e2a\u6708\uff0c\u81f3\u5c11\u4e24\u6b21\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u5904\u57281.5\u523010\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u4e4b\u95f4\r\n\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u6c34\u5e73\u5927\u4e8e100,000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e17,143IU/ml\uff09\r\n\r\n[\u88ab\u62db\u52df\u60a3\u8005\u4e0d\u5305\u62ec\u4ee5\u4e0b\u60c5\u51b5]\r\n\u5165\u7ec4\u524d\u516d\u4e2a\u6708\u524d\u63a5\u53d7\u8fc7\u6297\u75c5\u6bd2\u6216\u8005\u514d\u75ab\u6291\u5236\u5242\u6cbb\u7597\r\n\u5408\u5e76\u611f\u67d3\u4e19\u809d\u3001\u4e01\u809d\u6216\u8005HIV\u611f\u67d3\r\n\u60a3\u6709\u5176\u4ed6\u83b7\u5f97\u6027\u6216\u8005\u9057\u4f20\u6027\u7684\u809d\u810f\u75be\u75c5\r\n\u66fe\u7ecf\u6709\u8fc7\u7ec6\u80de\u51cf\u5c11\u75c7\u6216\u8005\u5931\u4ee3\u507f\u809d\u75c5\r\n\r\n[\u57fa\u7ebf\u6c34\u5e73]\r\n\r\n[\u6574\u4f53\u7597\u6548]\r\n\u672c\u7814\u7a76\u7684107\u4e2a\u4eba\u4e2d\u670922%\uff0824/107\uff09\u7684\u60a3\u8005\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\u3002\u5355\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u7684\u60a3\u8005\u548c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u52a0\u4e0a\u5229\u5df4\u97e6\u6797\u8054\u5408\u6cbb\u7597\u7684\u60a3\u8005\u83b7\u5f97\u6301\u7eed\u514d\u75ab\u5e94\u7b54\u5206\u522b\u670914\u4eba\uff08\u5360\u5355\u836f\u6cbb\u7597\u4eba\u657026%=14/53\uff09\u548c10\u4eba\uff08\u5360\u8054\u5408\u7528\u836f\u4eba\u657019%=10/54\uff09\u3002", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 4, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 2, + "shorttitle": "", + "abstract": "", + "content": "$\u7ed3\u675f\u65f6\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\r\n\u6ca1\u6709\u6301\u4e45\u5e94\u7b54\u7684\u60a3\u8005$\r\n$$\u6cbb\u7597\u671f\u95f4\u6307\u6807\u53d8\u5316\u533a\u522b$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA$$$\r\n\r\n\u6700\u7ec8\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u548c\u672a\u83b7\u5f97SR\u7684\u60a3\u8005\u5728\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u8840\u6e05HBsAg\u7684\u4e0b\u964d\u8d8b\u52bf\u6709\u4ec0\u4e48\u533a\u522b\uff1f\r\n\r\n\u6700\u7ec8\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u548c\u975e\u672a\u83b7\u5f97SR\u7684\u60a3\u8005\u5728\u6cbb\u7597\u8fc7\u7a0b\u4e2dHBVDNA\u7684\u4e0b\u964d\u8d8b\u52bf\u6709\u4ec0\u4e48\u533a\u522b\uff1f\r\n\r\n\u6700\u7ec8\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u548c\u975e\u672a\u83b7\u5f97SR\u7684\u60a3\u8005\u5728\u6cbb\u7597\u8fc7\u7a0b\u5f53\u4e2d\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u53d8\u5316\u5dee\u5f02\u5927\u5417\uff1f\r\n\u65e0\u8bba\u662f\u6700\u7ec8\u83b7\u5f97SR\u7684\u60a3\u8005\uff0c\u8fd8\u662f\u672a\u83b7\u5f97SR\u60a3\u8005\uff0c\u4ed6\u4eec\u7684\u8840\u6e05\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u6c34\u5e73\u5728\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u53d8\u5316\u76f8\u540c\u3002\u6240\u4ee5\u8fd9\u91cc\u7edf\u8ba1\u5b66\u4e0a\uff0cALT\u5e76\u65e0\u9884\u6d4b\u5c06\u6765\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u7684\u4f5c\u7528\u3002", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 5, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 2, + "shorttitle": "", + "abstract": "", + "content": "$\u6cbb\u7597\u7b2c12\u5468\uff0c\u76f8\u5bf9\u5f00\u59cb\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u8f83\u5c0f\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u8f83\u5927\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u8f83\u5c0f\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u8f83\u5927$\r\n$$\u54ea\u79cd\u60a3\u8005\u6301\u7eed\u5e94\u7b54\u51e0\u7387\u6700\u5927\uff0c\u54ea\u79cd\u6700\u5c0f\uff1f$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA\r\n\u8c37\u4e19\u8f6c\u6c28\u9176 ALT$$$\r\n\r\n\u4ee5\u4e0b\u54ea\u90e8\u5206\u60a3\u8005\u968f\u8bbf\u7ed3\u675f\u65f6\u83b7\u5f97\u6301\u7eed\u5e94\u7b54\u7684\u51e0\u7387\u6700\u9ad8\uff1f\u8c01\u53c8\u6700\u4f4e\uff1f\r\n\u6839\u636e\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u548c\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u4e0b\u964d\u7a0b\u5ea6\u5206\u7ec4\uff1a\r\n\u6cbb\u7597\u5f00\u59cb\u540e\u7b2c12\u5468\u65f6\uff0c\u76f8\u6bd4\u57fa\u7ebf\u6c34\u5e73\uff08\u6cbb\u7597\u5f00\u59cb\uff09\uff0c\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u7a0b\u5ea6\u5c0f\u4e8e2\u4e2alog \u62f7\u8d1d/mL\uff1b\r\nHBsAg\u6ca1\u6709\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u7a0b\u5ea6\u5927\u4e8e\u6216\u8005\u7b49\u4e8e2\u4e2alog \u62f7\u8d1d/mL\uff1b\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4f46DNA\u4e0b\u964d\u7a0b\u5ea6\u5c0f\u4e8e2\u4e2alog \u62f7\u8d1d/mL\uff1b\r\nHBsAg\u53d1\u751f\u4e0b\u964d\u4e14DNA\u4e0b\u964d\u7a0b\u5ea6\u5927\u4e8e\u6216\u8005\u7b49\u4e8e2\u4e2alog\u62f7\u8d1d/mL\r\n\u8fd9\u56db\u7c7b\u60a3\u8005\u3002", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 6, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 3, + "shorttitle": "", + "abstract": "", + "content": "$\u8be5\u7814\u7a76\u603b\u4f53\u4eba\u7fa4$\r\n$$\u57fa\u7ebf\u6c34\u5e73\u548c\u6cbb\u7597\u7ed3\u679c\u5982\u4f55\uff1f$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg \r\n\u4e59\u809d\u75c5\u6bd2HBV DNA\r\ne\u6297\u539f HBeAg$$$\r\n\u7814\u7a76\u4e2d\u603b\u4f53\u4eba\u7fa4\u7684\u57fa\u7ebf\u6c34\u5e73\u3001\u6574\u4f53\u7597\u6548\u5982\u4f55\uff1f\r\n\u60a3\u8005\u6240\u611f\u67d3\u7684\u4e59\u809d\u75c5\u6bd2\u7684\u57fa\u56e0\u578b\u5927\u90e8\u5206\u662fB\u578b\uff08\u5360\u603b\u4eba\u657032.6%\uff09\u6216\u8005C\u578b\uff08\u5360\u603b\u4eba\u657058.4%\uff09\u3002\r\n\u4e00\u534a\u4eba\u63a5\u53d7\u5e72\u6270\u7d20\u5355\u836f\u6cbb\u7597\uff0c\u4e00\u534a\u4eba\u8054\u5408\u5e72\u6270\u7d20\u548c\u6838\u82f7\u7c7b\u8fdb\u884c\u6cbb\u7597\u3002\r\n\u6574\u4f53\u7597\u6548\r\n399\u4f4d\u6240\u6709\u88ab\u7814\u7a76\u5206\u6790\u7684\u60a3\u8005\u4e2d\uff0c\r\n34%\u7684\u4eba\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\u6d4b\u5f97e\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\uff1b\r\n\u6cbb\u7597\u540e6\u4e2a\u6708e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7387\uff1aHBV\u57fa\u56e0\u578b\u4e3aB\u7684\u60a3\u8005\u662f34%\uff08\u540c\u4e0a\u9762\u603b\u4f53\u6c34\u5e73\uff09\uff0cC\u578b\u4e5f\u662f34%\uff1b\r\n28%\u7684\u4eba\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09 DNA\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\u88ab\u68c0\u6d4b\u5c0f\u4e8e\u7b49\u4e8e2,000\u62f7\u8d1d/mL\uff1b\r\n4%\u7684\u60a3\u8005\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\u6d4b\u5f97\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u88ab\u6e05\u9664\u3002", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 7, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 3, + "shorttitle": "", + "abstract": "", + "content": "$\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540e\r\ne\u6297\u539f\u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\r\ne\u6297\u539f\u672a\u51fa\u73b0\u8840\u6e05\u5b66\u8f6c\u6362\u7684$\r\n$$\u57fa\u7ebf\u548c\u6cbb\u7597\u671f\u95f4\u51e0\u9879\u6307\u6807\u5dee\u522b$$\r\n$$$\u8868\u9762\u6297\u539f HBsAg$$$\r\n\r\n\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540ee\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u548c\u6ca1\u6709\u53d1\u751f\u8f6c\u6362\u7684\u60a3\u8005\uff0c\u4ed6\u4eec\u57fa\u7ebf\u53ca\u6cbb\u7597\u671f\u95f4\u51e0\u9879\u6307\u6807\u6c34\u5e73\u7684\u5dee\u5f02\r\n\u672c\u6587\u628a\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\u540ee\u6297\u539f\uff08HBeAg\uff09\u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u5b9a\u4e49\u6210\u83b7\u5f97\u5e94\u7b54\u3002\r\n\r\ne\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4e0e\u672a\u8f6c\u6362 \uff0c\u57fa\u7ebf\u65f6\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u6709\u5dee\u5f02\r\n\r\n\u6cbb\u7597\u7ed3\u675f\u540e\u83b7\u5f97\u6cbb\u7597\u5e94\u7b54\u7684\u60a3\u8005\u7684\u57fa\u7ebf\uff08\u5373\u6cbb\u7597\u5f00\u59cb\uff09\u8868\u9762\u6297\u539f\u6c34\u5e73\uff0c\u6bd4\u8d77\u90a3\u4e9b\u6ca1\u6709\u83b7\u5f97\u5e94\u7b54\u7684\u60a3\u8005\u7684\u57fa\u7ebf\u8868\u9762\u6297\u539f\u6c34\u5e73\u8981\u4f4e\u3002\uff083.97 log10 IU/mL \u6bd4 4.21 log10IU/mL\uff09\u3002\r\n\r\ne\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4e0e\u672a\u8f6c\u6362\uff0c\u6cbb\u7597\u671f\u95f4\u8868\u9762\u6297\u539f\u4e0b\u964d\u7a0b\u5ea6\u7684\u4e0d\u540c\r\n\r\n\u5728\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u53d1\u751fe\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u60a3\u8005\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u4e0b\u964d\u7a0b\u5ea6\u5728\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\u300124\u5468\u300124\u5468\u300148\u5468\u548c\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\uff08\u4e5f\u5c31\u662f72\u5468\uff09\u8981\u6bd4\u6ca1\u6709\u53d1\u751f\u8fc7\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u4eba\u5927\u3002\r\n\r\ne\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4e0e\u672a\u8f6c\u6362\uff0cHBV DNA\u4e0b\u964d\u7a0b\u5ea6\u7684\u4e0d\u540c\r\n\r\n\u65e0\u8bba\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\u5358\u836f\u8fd8\u662f\u8054\u5408\u7528\u836f\uff0c\u5728\u6cbb\u7597\u7ed3\u675f\u540e6\u5468\u53d1\u751fe\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u60a3\u8005\uff0c\u5176\u4f53\u5185\u75c5\u6bd2DNA\u7684\u4e0b\u964d\u5728\u6cbb\u7597\u5f00\u59cb\u540e12\u5468\u300124\u5468\u300148\u5468\u548c\u6cbb\u7597\u7ed3\u675f6\u4e2a\u6708\uff08\u4e5f\u5c31\u662f72\u5468\uff09\u8981\u6bd4\u6ca1\u6709\u53d1\u751f\u8fc7e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u7684\u4eba\u7a0b\u5ea6\u8981\u5927\u3002\r\n\u7136\u800c\uff0c\u63a5\u53d7\u8054\u5408\u7528\u836f\u7684\u7ec4\u522b\u4e2d\uff0c\u60a3\u8005\u7684\u8fd9\u79cdDNA\u4e0b\u964d\u7684\u5dee\u5f02\u53ea\u6709\u572872\u5468\uff08\u6cbb\u7597\u7ed3\u675f\u540e\u534a\u5e74\uff09\u7684\u65f6\u5019\u663e\u73b0\u3002\r\n\r\n", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 8, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 3, + "shorttitle": "", + "abstract": "", + "content": "<br data-mce-bogus=\"1\">", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 9, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 3, + "shorttitle": "", + "abstract": "", + "content": "<br data-mce-bogus=\"1\">", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 10, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 3, + "shorttitle": "", + "abstract": "", + "content": "<br data-mce-bogus=\"1\">", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 11, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "", + "blog": 3, + "shorttitle": "", + "abstract": "", + "content": "<br data-mce-bogus=\"1\">", + "sample": [], + "indicators": [], + "type": null + } + }, + { + "pk": 12, + "model": "sciblog.resultcontent", + "fields": { + "card_content": "\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682", + "blog": 1, + "shorttitle": "\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682", + "abstract": "", + "content": "\u7a76\u540e\u9762\u7684\u6570\u636e\u663e\u793a\u8fd9\u53ea\u662f\u6682", + "sample": [], + "indicators": [], + "type": 3 + } + }, + { + "pk": 1, + "model": "sciblog.reference", + "fields": { + "link": "http://www.ncbi.nlm.nih.gov/pubmed/14697813", + "description": "Lai CL, Ratziu V, Yuen MF, Poynard T. Viral hepatitis B. Lancet 2003;362:2089-94." + } + }, + { + "pk": 2, + "model": "sciblog.reference", + "fields": { + "link": "http://onlinelibrary.wiley.com/doi/10.1002/hep.23722/full", + "description": "Rijckborst V, Hansen BE, Cakaloglu Y, Ferenci P, Tabak F, Akdogan M, Simon K, Akarca US, Flisiak R, Verhey E, Van Vuuren AJ, Boucher CA, ter Borg MJ, Janssen HL. Early on-treatment prediction of response to peginterferon alfa-2a for HBeAg-negative chronic hepatitis B using HBsAg and HBV DNA levels.Hepatology. 2010 Aug;52(2):454-61. doi: 10.1002" + } + }, + { + "pk": 3, + "model": "sciblog.reference", + "fields": { + "link": "", + "description": "Hepatitis B surface antigen: association with sustained response to peginterferon alfa-2a in hepatitis B e antigen-positive patients\r\n" + } + }, + { + "pk": 1, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u6162\u6027\u4e59\u578b\u809d\u708e\u662f\u5168\u7403\u7684\u533b\u5b66\u96be\u9898\uff0c\u67094\u4ebf\u4eba\u53e3\u88ab\u611f\u67d3\u4e59\u809d\u75c5\u6bd2\u3002\u8fd9\u79cd\u75be\u75c5\u548c\u809d\u8870\u7aed\u3001\u809d\u7ec6\u80de\u764c\u3001\u809d\u786c\u5316\u6709\u5f88\u5927\u5173\u7cfb\u3002e\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u6027\u4e59\u809d\u4ee3\u8868\u7740HBV\u75c5\u6bd2\u611f\u67d3\u5230\u4e86\u4e00\u4e2a\u8f83\u4e3a\u540e\u671f\u7684\u9636\u6bb5\uff0c\u548c\u809d\u810f\u8fdb\u4e00\u6b65\u88ab\u7834\u574f\u3001\u75c5\u6bd2\u57fa\u56e0\u53d8\u5f02\u3002\u5728\u8fd9\u79cdHBeAg\u9634\u6027\u6162\u4e59\u809d\u4e2d\uff0c\u81ea\u53d1\u7684\u6301\u4e45\u514d\u75ab\u5e94\u7b54\u6216\u8005\u8bf4\u7f13\u89e3\u5f88\u7f55\u89c1\u3002\u4ece\u5168\u7403\u6765\u8bf4\uff0ce\u6297\u539f\u9634\u6027\u7684\u6162\u6027\u4e59\u578b\u809d\u708e\u904d\u5e03\u5168\u7403\uff0c\u800c\u4e14\u8d8a\u6765\u8d8a\u6d41\u884c\u3002", + "type": 0, + "title": "test" + } + }, + { + "pk": 2, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u73b0\u884c\u7684\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u63a8\u8350\u5c06\u5e72\u6270\u7d20alfa\u6216\u8005\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u4f5c\u4e3ae\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u6027\u4e59\u809d\u7684\u4e00\u7ebf\u6cbb\u7597\u65b9\u6848\u3002\u4f46\u662f\uff0c\u4f20\u7edf\u7684\u5e72\u6270\u7d20\uff08\u6709\u7684\u5730\u65b9\u79f0\u4f5c\u666e\u901a\u5e72\u6270\u7d20\uff09\u56e0\u4e3a\u836f\u4ee3\u52a8\u529b\u5b66\u7684\u4e0d\u8db3\u4f7f\u5f97\u5728\u4f7f\u7528\u8d77\u6765\u5242\u91cf\u7684\u63a7\u5236\u4e0d\u65b9\u4fbf\u3001\u4e0d\u7a33\u5b9a\uff08\u4ece\u800c\u5f71\u54cd\u836f\u7269\u5728\u4f53\u5185\u7684\u6d53\u5ea6\uff0c\u6216\u8005\u8bf4\u8840\u836f\u6d53\u5ea6\uff0c\u836f\u6548\u4f1a\u88ab\u5f71\u54cd\uff09\u3002\u800c\uff08\u6838\u82f7\u7c7b\u4f3c\u7269\u4e2d\u7684\uff09\u62c9\u7c73\u592b\u5b9a\u548c\u8010\u836f\u6709\u5173\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 3, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20alfa-2a\uff0c\u5728\u666e\u901a\u5e72\u6270\u7d20\u7684\u57fa\u7840\u4e0a\u52a0\u4e0a40KD\u805a\u4e59\u4e8c\u9187\u9ad8\u5206\u5b50\u7269\u8d28\u5f62\u6210\u65b0\u7684\u836f\u7269\u3002\u5b83\u6bcf\u5468\u53ea\u9700\u4e00\u6b21\u4f7f\u7528\uff0c\u975e\u5e38\u65b9\u4fbf\uff0c\u80fd\u591f\u5728\u7528\u836f\u95f4\u9694\u671f\u5185\u6709\u6548\u5730\u4fdd\u6301\u4f53\u5185\u7684\u8840\u836f\u6d53\u5ea6\u3002\u5728\u4f5c\u7528\u673a\u7406\u4e0a\uff0c\u548c\u666e\u901a\u5e72\u6270\u7d20\u7c7b\u4f3c\uff0c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u80fd\u591f\u6709\u514d\u75ab\u63d0\u54e6\u554a\u63a5\u548c\u6297\u75c5\u6bd2\u7684\u53cc\u91cd\u8c03\u8282\u4f5c\u7528\uff1b\u4f46\u662f\u76f8\u6bd4\u666e\u901a\u5e72\u6270\u7d20\uff0c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6709\u66f4\u597d\u7684\u4e34\u5e8a\u6cbb\u7597\u6548\u679c\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 4, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "HBeAg\u9634\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\uff08CHB\uff09\u4ee3\u8868\u7740\u6574\u4e2a\u75c5\u6bd2\u611f\u67d3\u7684\u540e\u671f\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 5, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u56e0\u4e3a\u60a3\u6709\u8fd9\u7c7b\u809d\u708e\u7684\u60a3\u8005\u81ea\u7136\u7f13\u89e3\u5f88\u5c11\u53d1\u751f\uff0c\u6240\u4ee5\u836f\u7269\u6cbb\u7597\u7ecf\u5e38\u88ab\u8fd0\u7528\u5728\u4ed6\u4eec\u8eab\u4e0a\uff0c\u800c\u4e14e\u6297\u539f\u9634\u6027\u4e59\u809d\u7684\u60a3\u8005\uff0c\u6bd4\u8d77e\u6297\u539f\u9633\u6027\u60a3\u8005\uff0c\u4f34\u6709\u7684\u809d\u810f\u75be\u75c5\u66f4\u52a0\u4e25\u91cd\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 6, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u6838\u82f7\u7c7b\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u5728\u5927\u591a\u6570\u9634\u6027\u4e59\u809d\u60a3\u8005\u4e2d\uff0c\u80fd\u591f\u4fdd\u6301\u5bf9\u4e8e\u75c5\u6bd2\u590d\u5236\u7684\u6291\u5236\uff0c\u800c\u4e14\u4eba\u4f53\u5bf9\u5176\u6709\u5f88\u597d\u7684\u836f\u7269\u8010\u53d7\u6027\u3002\u4f46\u662f\uff0c\u975e\u5e38\u96be\u786e\u5b9a\u8fd9\u79cd\u53e3\u670d\u7684\u6297\u75c5\u6bd2\u6cbb\u7597\u662f\u5426\u53ef\u4ee5\u505c\u836f\u3002\u4e0d\u8fc7\uff0c\u4e00\u5e74\u7684\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u53ef\u4ee5\u4f7f\u5f97\u4e00\u4e9b\u9634\u6027\u4e59\u809d\u7684\u60a3\u8005\u80fd\u591f\u83b7\u5f97\u505c\u836f\u540e\u6301\u7eed\u7684\u5e94\u7b54\u6548\u5e94\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 7, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u5b9a\u91cf\u68c0\u6d4b\u88ab\u5e7f\u6cdb\u5730\u7528\u6765\u8861\u91cf\u4eba\u4f53\u5bf9\u4e8e\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u7684\u5e94\u7b54\uff0c\u4f46\u662f\u901a\u8fc7HBV DNA\u6c34\u5e73\u6765\u76f4\u63a5\u9884\u6d4b\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u6548\u679c\u662f\u56f0\u96be\u7684\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 8, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u8840\u6e05\u4e2d<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u4f3c\u4e4e\u53ef\u4ee5\u53cd\u6620\u809d\u810f\u4e2d\u5171\u4ef7\u95ed\u5408\u73af\u72b6DNA\uff08cccDNA\uff09\u7684\u91cf\uff0ccccDNA\u662fHBV\u75c5\u6bd2\u57fa\u56e0\u8f6c\u5f55\u7684\u6a21\u677f\u3002\u6700\u8fd1\u51e0\u9879\u7814\u7a76\u90fd\u5efa\u8bae\u8840\u6e05\u4e2d\u7684HBsAg\u6c34\u5e73\u53ef\u80fd\u6807\u5fd7\u7740\u4eba\u4f53\u5bf9\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u5e94\u7b54\u51e0\u7387\u7684\u9ad8\u4e0e\u4f4e\u3002HBsAg\u7684\u4e0b\u964d\u53cd\u6620\u4e86\u809d\u810f\u5185cccDNA\u7684\u4e0b\u964d\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 9, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u4ec0\u4e48\u65f6\u5019\u505a\u7ee7\u7eed\u6cbb\u7597\u8fd8\u662f\u505c\u836f\u6362\u65b9\u6848\u6bd4\u8f83\u5408\u9002\uff1f\r\n\u7528\u4e8e\u9884\u6d4bSR\u7684\u6700\u4f73\u65b9\u6cd5\u662f\u5c06HBsAg\u5b9a\u91cf\u6c34\u5e73\u4e0eHBV DNA\u4e0b\u964d\u6c34\u5e73\u7ed3\u5408\u8d77\u6765\u770b\u3002\u7ecf\u7edf\u8ba1\u5904\u7406\u53d1\u73b0\uff0c\u51b3\u5b9a\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u4e5f\u4e0d\u9700\u8981\u592a\u665a\uff0c\u6bd4\u598224\u5468\uff0c\u56e0\u4e3a\u4e0e12\u5468\u76f8\u6bd4\uff0c24\u5468\u9884\u6d4bSR\u7684\u4f5c\u7528\u5e76\u6ca1\u6709\u66f4\u597d\u4e00\u4e9b\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 10, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u51e0\u7387\u770b<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u4e00\u4e2a\u6307\u6807\u591f\u5417\uff1f\r\n\u7ecf\u6570\u5b66\u7edf\u8ba1\u5904\u7406\u8bc1\u660e\uff0c\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684HBeAg\u9634\u6027\u6162\u6027\u4e59\u809d\u60a3\u8005\u5728\u65e9\u671f\u9636\u6bb5\u4ec5\u4ec5\u4f9d\u9760HBsAg\u6c34\u5e73\u6765\u7cbe\u786e\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u662f\u4e0d\u53ef\u80fd\u7684\u3002\r\n\u7136\u800c\uff0c\u628a\u7597\u7a0b\u8fc7\u7a0b\u7684\u4e2dHBsAg\u4e0b\u964d\u548c\u75c5\u6bd2\u4e0b\u964d\u60c5\u51b5\u4e24\u8005\u7ed3\u5408\u5728\u4e00\u8d77\uff0c\u4fbf\u80fd\u591f\u5f62\u6210\u4e00\u6761\u660e\u786e\u7684\u505c\u836f\u539f\u5219\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 11, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u6b64\u7814\u7a76\u4e2d\uff0c\u7a76\u7adf\u54ea\u4e00\u90e8\u5206e\u6297\u539f\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u63a5\u53d7PEG\u5e72\u6270\u7d20\u6cbb\u7597\u6548\u679c\u76f8\u5bf9\u66f4\u597d\uff1f\r\n\u572812\u5468\u65f6\uff0c\u540c\u65f6\u53d1\u73b0<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u4e0b\u964d\u548c\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u4e0b\u964d\u5927\u4e8e2log \u62f7\u8d1d/ml\u7684\u60a3\u8005\u62e5\u6709\u6700\u9ad8\u7684\u83b7\u5f97SR\u7684\u51e0\u7387\uff0839%\uff09\u3002\r\n\u8fd9\u4e00\u7ec4\u4eba\u5e94\u8be5\u88ab\u9f13\u52b1\u5b8c\u6210\u4e3a\u671f48\u5468\u7684\u6cbb\u7597\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 12, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "DNA\u8981\u4e0b\u964d\u5230\u591a\u5c11\u5bf9\u4e8ee\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u6162\u4e59\u809d\u60a3\u8005\u6700\u5408\u9002?\r\n\u8be5\u7814\u7a76\u628a\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u5b9a\u4e49\u4e3a\u6cbb\u7597\u7ed3\u675f6 \u4e2a\u6708\u65f6\uff0cHBV DNA \u6c34\u5e73<10,000 \u62f7\u8d1d/mL\uff0c\u5e76\u4e14ALT \u6c34\u5e73\u6062\u590d\u6b63\u5e38\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 13, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u6709\u4e9b\u4eba\u53ef\u80fd\u4f1a\u4e89\u8bae\u8bf4HBV DNA \u7684\u4e0b\u9650\u5e94\u8be5\u66f4\u4f4e\u4e00\u70b9\u3002\u7528\u654f\u611f\u7684PCR \u68c0\u6d4b\u65b9\u6cd5\u68c0\u6d4b\u5230\u6cbb\u7597\u540eHBV DNA \u9634\u6027\u7684\u786e\u662f\u4e00\u4e2a\u4e3b\u8981\u7684\u6cbb\u7597\u7ec8\u70b9\u3002\r\n\u5c3d\u7ba1\u5982\u6b64\uff0c\u5e72\u6270\u7d20\u6cbb\u7597\u7684HBeAg \u9634\u6027\u7684CHB \u75c5\u4eba\u5e38\u5e38\u4e0d\u80fd\u8fbe\u5230\u8fd9\u4e9b\u6cbb\u7597\u7ec8\u70b9\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 14, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u53e6\u5916\uff0c\u5927\u6837\u672c\u7814\u7a76\u8868\u660e\uff0c\u5982\u679cHBeAg \u9634\u6027\u7684CHB \u75c5\u4ebaHBV DNA<10,000 \u62f7\u8d1d /mL\uff0c\u90a3\u4e48\u4ed6\u4eec\u53d1\u5c55\u4e3a\u809d\u786c\u5316\u548c\u809d\u7ec6\u80de\u764c\u7684\u5371\u9669\u6027\u964d\u4f4e\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 15, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u800c\u4e14\uff0c\u672c\u7814\u7a76\u4e2dHBV DNA \u7684\u4e34\u754c\u503c\u4ee5\u53ca\u968f\u8bbf\u671f\u9650\u4e0e\u6700\u8fd1\u7684\u6b27\u6d32\u6307\u5357\u5bf9\u5e72\u6270\u7d20\u6cbb\u7597\u5e94\u7b54\u7684\u5b9a\u4e49\u548c\u51e0\u9879\u91cd\u8981\u7684\u5173\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u6162\u6027\u4e59\u809d\u7684\u7814\u7a76\u7684\u968f\u8bbf\u671f\u9650\u5206\u522b\u662f\u4e00\u81f4\u7684\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 16, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u4e3a\u4ec0\u4e48\u672c\u7814\u7a76\u7684\u603b\u4f53\u6301\u7eed\u5e94\u7b54\u51e0\u7387\u6bd4\u8d77\u5176\u4ed6\u7814\u7a76\u4f1a\u8f83\u4f4e\uff0c\u53ea\u670922%\uff1f\r\n\u8be5\u7814\u7a76\u53d7\u8bd5\u8005\u5927\u591a\u6570\u4eba\u90fd\u662f\u767d\u79cd\u4eba\uff0c\u611f\u67d3\u7684HBV\u57fa\u56e0\u578b\u4e3aA\u548cD\uff0cD\u578b\u60a3\u8005\u5e94\u7b54\u6548\u679c\u4f3c\u4e4e\u4f4e\u4e8e\u5176\u4ed6\u57fa\u56e0\u578b\uff0c\u8fd9\u4e5f\u8bb8\u80fd\u89e3\u91ca\u4e3a\u4ec0\u4e48\u6b64\u7814\u7a76\u7684\u603b\u4f53\u7597\u6548\u6b20\u4f73\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 17, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u4e3a\u4ec0\u4e48<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6e05\u9664\u662f\u91cd\u8981\u7684\u6cbb\u7597\u7ec8\u70b9\uff1f\r\n\u6cbb\u7597\u4e59\u809d\u7684\u65f6\u5019\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u7684\u6e05\u9664\u80fd\u591f\u4f7f\u5f97\u7ec4\u7ec7\u5b66\u6539\u5584\uff0c\u964d\u4f4e\u809d\u786c\u5316\u548c\u809d\u7ec6\u80de\u764c\u7684\u53d1\u751f\u7387\uff0c\u4ece\u800c\u63d0\u9ad8\u751f\u5b58\u7387\u3002\u6240\u4ee5\u5b83\u73b0\u5728\u53d8\u6210\u4e86\u91cd\u8981\u7684\u6cbb\u7597\u7ec8\u70b9\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 18, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6e05\u9664\u662f\u4e0d\u662f\u5408\u9002\u7684\u77ed\u671f\u6cbb\u7597\u7ec8\u70b9\uff1f\r\n\u4f46\u662f\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08\u6e05\u9664\u5e76\u4e0d\u662f\u4e00\u4e2a\u6700\u5408\u9002\u7684\u77ed\u671f\u6cbb\u7597\u7684\u7ec8\u70b9\u56e0\u4e3a\u5728\u63a5\u53d7\u6cbb\u7597\u540e\u5f88\u77ed\u4e00\u6bb5\u65f6\u95f4\u4e4b\u5185\uff0c\u8fd9\u4e2a\u6307\u6807\u88ab\u6e05\u9664\u7684\u51e0\u7387\u5b9e\u5728\u592a\u4f4e\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 19, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u4ee4\u4eba\u6ee1\u610f\u7684\u6cbb\u7597\u7ec8\u70b9-e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\r\n\u6700\u8fd1\u7684\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u5efa\u8baee\u6297\u539f\uff08HBeAg\uff09\u6301\u4e45\u7684\u8840\u6e05\u5b66\u8f6c\u6362\u662f\u4e00\u4e2a\u4ee4\u4eba\u6ee1\u610f\u7684\u6cbb\u7597\u7ec8\u70b9\uff0c\u5728\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u809d\u60a3\u8005\u65f6\u5019\u3002\u56e0\u4e3a\u8fd9\u79cd\u8f6c\u6362\u548c\u826f\u597d\u7684\u9884\u540e\u6709\u5173\u3002\r\n\u901a\u8fc7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597e\u6297\u539f\u9633\u6027\u6162\u6027\u4e59\u809d\u5df2\u7ecf\u88ab\u88ab\u8ba4\u53ef\u4e3a\u662f\u4e00\u7ebf\u6cbb\u7597\u9009\u62e9\u65b9\u6848\uff0c\u56e0\u4e3a\u5b83\u80fd\u591f\u5728\u6709\u9650\u7684\u65f6\u95f4\u5e26\u6765\u6cbb\u7597\u540e\u7684\u6301\u4e45\u5e94\u7b54\u3002\r\n\u5927\u7ea6\u4e09\u5206\u4e4b\u4e00\u7684e\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u5728\u63a5\u53d7\u5b8c\u6574\u7684\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u7684\u60a3\u8005\uff0c\u5728\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u53d1\u751f\u4e86e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 20, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u5224\u522b\u6cbb\u7597\u65e9\u671f\u5e94\u7b54\u7684\u610f\u4e49\r\n\uff08\u65e0\u8bba\u662f\u6cbb\u7597\u524d\u8fd8\u662f\u6cbb\u7597\u671f\u95f4\uff09\u6cbb\u7597\u65e9\u671f\u65f6\u5019\u5bf9\u4e8e\u60a3\u8005\u5e94\u7b54\u7684\u5224\u522b\u5bf9\u4e8e\u4e34\u5e8a\u533b\u5e08\u662f\u5f88\u6709\u5e2e\u52a9\u7684\uff0c\u56e0\u4e3a\u8fd9\u80fd\u591f\u8ba9\u4e34\u5e8a\u533b\u5e08\u5728\u90a3\u4e9b\u6700\u6709\u53ef\u80fd\u53d1\u751f\u5e94\u7b54\u7684\u4eba\u8eab\u4e0a\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\uff0c\u800c\u90a3\u4e9b\u5bf9\u4e8e\u5e72\u6270\u7d2048\u5468\u6807\u51c6\u7597\u7a0b\u7684\u6cbb\u7597\u5c06\u6765\u4e0d\u5927\u53ef\u80fd\u53d1\u751f\u5e94\u7b54\u7684\u60a3\u8005\u5e94\u8be5\u5373\u4f7f\u8c03\u6574\u6cbb\u7597\u65b9\u6848\u3002\r\n\u80fd\u591f\u5728\u65e9\u4e9b\u65f6\u5019\u80fd\u591f\u8fa8\u8ba4\u51fa\u60a3\u8005\u4e0d\u9002\u5408\u5e72\u6270\u7d20\u6cbb\u7597\uff0c\u6216\u8005\u8bf4\u5bf9\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u4e0d\u56de\u5e94\u7b54\uff0c\u4e5f\u80fd\u591f\u9632\u6b62\u60a3\u8005\u7ecf\u53d7\u4e0d\u5fc5\u8981\u7684\u526f\u4f5c\u7528\u3002", + "type": 0, + "title": "" + } + }, + { + "pk": 21, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u5173\u4e8ecccDNA\u548c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u7684\u5173\u7cfb\uff0c\u4ece\u673a\u7406\u4e0a\u89e3\u91ca\u5b9a\u91cf\u68c0\u6d4b<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u7684\u91cd\u8981\u6027\uff1a\r\n\r\n<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u548c\u5171\u4ef7\u95ed\u5408\u73af\u72b6\uff08cccDNA\uff09\u6709\u6b63\u76f8\u5173\uff0c\u4e5f\u5c31\u662f\u8bf4<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6c34\u5e73\u5347\u9ad8\u65f6cccDNA\u4e5f\u4f1a\u5347\u9ad8\uff0c\u53cd\u4e4b\u4ea6\u7136\u3002\r\n\r\ncccDNA\u662f\u4e59\u809d\u75c5\u6bd2\u524d\u57fa\u56e0\u7ec4RNA\u590d\u5236\u7684\u539f\u59cb\u6a21\u677f\uff0c\u867d\u7136\u5176\u542b\u91cf\u8f83\u5c11\uff0c\u6bcf\u4e2a\u809d\u7ec6\u80de\u5185\u53ea\u6709\u7ea65\uff5e50\u4e2a\u62f7\u8d1d\uff0c\u6545cccDNA\u53cd\u6620\u4e86\u611f\u67d3\u75c5\u6bd2\u7684\u809d\u7ec6\u80de\u7684\u6570\u91cf\uff0c\u800c\u4e14\u4ed6\u626e\u6f14\u7740\u75c5\u6bd2\u57fa\u56e0\u8f6c\u5f55\u6a21\u677f\u7684\u89d2\u8272\u3002\r\n\r\n\u5373\u4f7f\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u68c0\u6d4b\u4e0d\u5230\uff08\u5373\u5316\u9a8c\u5355\u4e0a\u663e\u793a\u9634\u6027\uff09\uff0c\u4f46cccDNA\u5982\u679c\u7ee7\u7eed\u5b58\u5728\u4e8e\u809d\u7ec6\u80de\u4e2d\uff0c\u90a3\u4e48\u60a3\u8005\u8fd8\u662f\u9762\u4e34\u7740HBV\u611f\u67d3\u590d\u53d1\u7684\u53ef\u80fd\u6027\u7684\u3002\u5e72\u6270\u7d20\u7684\u514d\u75ab\u8c03\u8282\u6d3b\u6027\u80fd\u591f\u4fc3\u4f7f\u75c5\u6bd2T\u7ec6\u80de\u7684\u6d3b\u5316\uff0c\u4ece\u800c\u6e05\u9664\u611f\u67d3\u7684\u809d\u7ec6\u80de\uff0c\u4e5f\u5c31\u51cf\u5c11\u4e86cccDNA\u7684\u6570\u91cf\u3002\r\n\r\n\u603b\u7ed3\u4e0a\u9762\u51e0\u70b9\uff0c\u5b9a\u91cf\u68c0\u6d4b<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u662f\u4e00\u4e2a\u975e\u5e38\u5408\u9002\u7684\u65b9\u6cd5\u6765\u68c0\u6d4b\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u5bf9\u4e8e\u88ab\u611f\u67d3\u7684\u809d\u7ec6\u80de\u7684\u514d\u75ab\u6e05\u9664\u60c5\u51b5\u548c\u5bf9cccDNA\u7684\u6d88\u9664\u60c5\u51b5\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 22, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u5bf9\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4ea7\u751f\u514d\u75ab\u5e94\u7b54\u7684\u60a3\u8005\u548c\u6ca1\u6709\u4ea7\u751f\u514d\u75ab\u5e94\u7b54\u7684\u60a3\u8005\uff0c\u5728\u6cbb\u7597\u671f\u95f4<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u7684\u4e0b\u964d\u7a0b\u5ea6\u662f\u4e0d\u540c\u7684\u3002\u5728\u6cbb\u7597\u671f\u95f4\uff0c\u4f4e<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6c34\u5e73\u548c\u66f4\u9ad8\u7684\u5e94\u7b54\u7387\u6709\u5173\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 23, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u6cbb\u7597\u9636\u6bb5\u7684\u65e9\u671f\u5e94\u7b54\uff0c\u8bf8\u5982<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u4e0b\u964d\u663e\u8457\uff0c\u5bf9\u4e8e\u60a3\u8005\u575a\u6301\u5b8c\u621048\u5468\u7597\u7a0b\u7684\u6cbb\u7597\u662f\u4e00\u4e2a\u9f13\u52b1\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 24, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u7528\u4e8e\u9884\u6d4b\u6301\u7eed\u5e94\u7b54\uff08SR\uff09\u7684\u6700\u4f73\u65b9\u6cd5\u662f\u5c06<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u5b9a\u91cf\u6c34\u5e73\u4e0e\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09 DNA\u4e0b\u964d\u6c34\u5e73\u7ed3\u5408\u8d77\u6765\u770b\u3002\u7ecf\u7edf\u8ba1\u5904\u7406\u53d1\u73b0\uff0c\u51b3\u5b9a\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u4e5f\u4e0d\u9700\u8981\u592a\u665a\uff0c\u6bd4\u598224\u5468\uff0c\u56e0\u4e3a\u4e0e12\u5468\u76f8\u6bd4\uff0c24\u5468\u9884\u6d4bSR\u7684\u4f5c\u7528\u5e76\u6ca1\u6709\u66f4\u597d\u4e00\u4e9b\u3002", + "type": 1, + "title": "" + } + }, + { + "pk": 25, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u4e59\u578b\u809d\u708e\u662f\u4e00\u4e2a\u5168\u7403\u8303\u56f4\u5185\u4e3b\u8981\u7684\u5065\u5eb7\u95ee\u9898\u3002\u4e16\u754c\u536b\u751f\u7ec4\u7ec7\uff08WHO\uff09\u66fe\u62a5\u9053\u5927\u7ea6\u5168\u7403\u6709\u8d85\u8fc74\u4ebf\u4e59\u809d\u75c5\u6bd2\u643a\u5e26\u8005\uff0c\u5c06\u8fd175%\u7684\u643a\u5e26\u8005\u5c45\u4f4f\u5728\u4e9a\u6d32\u548c\u897f\u592a\u5e73\u6d0b\u5730\u533a\u3002\u5728\u8fd9\u4e9b\u5730\u533a\uff0cHBV\u611f\u67d3\u7ecf\u5e38\u53d1\u751f\u5728\u56f4\u4ea7\u671f\u548c\u5e7c\u513f\u65f6\u671f\u3002\r\n\u5927\u591a\u6570\u6765\u81ea\u8fd9\u4e9b\u5730\u533a\u7684\u60a3\u8005\u662f\u5178\u578b\u7684e\u6297\u539f\uff08HBeAg\uff09\u9633\u6027\u6162\u6027\u4e59\u578b\u809d\u708e\u60a3\u8005\uff0c\u4ed6\u4eec\u4f53\u5185\u6709\u7740\u9ad8\u6c34\u5e73\u7684\u4e59\u809d\u75c5\u6bd2\uff0c\u5728\u611f\u67d3\u540e\u768410-30\u5e74\uff0c\u4ed6\u4eec\u4f1a\u9010\u6e10\u53d1\u5c55\u6210\u4e25\u91cd\u7684\u809d\u708e\uff0c<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\uff08ALT\uff09\u4f1a\u4e0a\u5347\u3002\u76f8\u53cd\uff0c\u5728\u7ae5\u5e74\u665a\u671f\u3001\u9752\u6625\u671f\u3001\u6210\u5e74\u540e\u611f\u67d3\u7684\u60a3\u8005\u4f1a\u5728\u611f\u67d3\u540e\u5f88\u77ed\u4e00\u6bb5\u65f6\u95f4\u5185\u51fa\u73b0\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\u3002\r\n\u5c3d\u7ba1\u81ea\u53d1\u7684e\u6297\u539f\u8840\u6e05\u5b66\u8f6c\u6362\u4f1a\u5728\u5927\u591a\u6570e\u6297\u539f\u9633\u6027\u7684\u60a3\u8005\u4e2d\u51fa\u73b0\uff0c\u4f46\u662f\u809d\u708e\u7684\u6301\u7eed\u65f6\u95f4\u4f1a\u53d8\u957f\u800c\u4e14\u75c5\u75c7\u4f1a\u53d8\u5f97\u8d8a\u6765\u8d8a\u4e25\u91cd\uff0c\u53ef\u80fd\u53d1\u5c55\u6210\u809d\u786c\u5316\u3002\u56e0\u6b64\uff0c\u5728ALT\u51fa\u73b0\u5347\u9ad8\u540e\u76843\u52306\u4e2a\u6708\u5185\u5982\u679c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u59cb\u7ec8\u4fdd\u6301\u9ad8\u6c34\u5e73\u7684e\u6297\u539f\u9633\u6027\u60a3\u8005\u5e94\u8be5\u63a5\u53d7\u6297\u75c5\u6bd2\u6cbb\u7597\u3002", + "type": 0, + "title": "\u4e59\u809d\u6982\u51b5" + } + }, + { + "pk": 26, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u4e0d\u7ba1\u662f\u7528\u4ec0\u4e48\u6297\u75c5\u6bd2\u836f\u7269\uff0c\u6210\u529f\u6cbb\u7597\u6162\u6027\u4e59\u809d\u75c5\u6bd2\u611f\u67d3\u90fd\u662f\u6307e\u6297\u539f\u7684\u6e05\u9664\u3001\u8840\u6e05\u4e59\u809d\u75c5\u6bd2DNA\u6c34\u5e73\u7684\u4e0b\u964d\u4ee5\u53ca<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\u6c34\u5e73\u6062\u590d\u6b63\u5e38\uff0c\u56e0\u4e3a\u8fd9\u4e9b\u6307\u6807\u53d8\u5316\u90fd\u548c\u826f\u597d\u7684\u957f\u671f\u7597\u6548\u6709\u5173\u8054\u3002\r\n<p>\r\n\u5728e\u6297\u539f\u9633\u6027\u7684\u60a3\u8005\u4e2d\uff0c\u8840\u6e05\u4e2d\u6301\u4e45\u7684e\u6297\u539f\u6e05\u9664\u548c\u65e5\u540e\u8840\u6e05\u4e2d<a href=\"#jargon-2\" class=\"jargon\"><a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a></a>\uff08HBsAg\uff09\u7684\u6e05\u9664\u3001\u6f14\u53d8\u6210\u809d\u786c\u5316\u548c\u809d\u7ec6\u80de\u764c\u7684\u51e0\u7387\u7684\u964d\u4f4e\u4ee5\u53ca\u6700\u7ec8\u751f\u5b58\u8d28\u91cf\u7684\u6539\u5584\u6709\u5173\u3002</p>", + "type": 0, + "title": "\u6cbb\u7597\u4e59\u809d\u7684\u666e\u904d\u7684\u6cbb\u7597\u7ec8\u70b9" + } + }, + { + "pk": 27, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u5728\u76ee\u524d\u7684\u6cbb\u7597\u4e59\u809d\u65b9\u6cd5\u4e2d\uff0c\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4f9d\u7136\u80fd\u591f\u4fc3\u4f7f\u4e00\u5e74\u7597\u7a0b\u7ed3\u675f\u540e\u6700\u9ad8\u7684\u6301\u7eed\u5e94\u7b54\u7387\u3002\u53e6\u5916\uff0c\u5bf9\u57fa\u4e8e\u5e72\u6270\u7d20\u6cbb\u7597\u6709\u5e94\u7b54\u7684\u60a3\u8005\u6709\u5f88\u5927\u7684\u673a\u4f1a\u53d1\u751f<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\u6e05\u9664\u3002\u5728\u4f17\u591a\u8fc7\u53bb\u7684\u7814\u7a76\u4e2d\uff0ce\u6297\u539f\u6e05\u9664\u540e\u968f\u8bbf5\u5e74\u7684\u6570\u636e\u663e\u793a\uff0c12%\u523065%\u7684\u60a3\u8005\u5728\u8fd95\u5e74\u4e2d\u540e\u6765\u51fa\u73b0\u4e86\u8868\u9762\u6297\u539f\uff08HBsAg\uff09\u7684\u6e05\u9664\u3002\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u53d8\u5f97\u76f8\u5bf9\u590d\u6742\u662f\u56e0\u4e3a\u5176\u526f\u4f5c\u7528\u7684\u53d1\u751f\uff0c\u8bf8\u5982\u6d41\u611f\u6837\u75c7\u72b6\u3001\u8840\u7ec6\u80de\u51cf\u5c11\u3001\u6291\u90c1\u3002\r\n<p>\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u8bf8\u5982\u62c9\u7c73\u592b\u5b9a\u3001\u963f\u5fb7\u798f\u97e6\u3001\u6069\u66ff\u5361\u97e6\u548c\u66ff\u8bfa\u798f\u97e6\u75c5\u60a3\u80fd\u591f\u5f88\u597d\u7684\u8010\u53d7\uff0c\u4f46\u662f\u7531\u4e8e\u5e76\u4e0d\u663e\u8457\u7684\u8840\u6e05\u5b66\u8f6c\u6362\u7387\u4ee5\u53ca\u505c\u836f\u540e\u9ad8\u98ce\u9669\u7684\u590d\u53d1\u7387\uff0c\u60a3\u8005\u7ecf\u5e38\u9700\u8981\u5ef6\u957f\u6cbb\u7597\u751a\u81f3\u957f\u671f\u7528\u836f\u3002\u4eca\u5929\uff0c\u901a\u8fc7\u5ef6\u957f\u6cbb\u7597\u4f7f\u5f97\u75c5\u6bd2\u5b66\u5e94\u7b54\u6301\u4e45\u662f\u53ef\u884c\u7684\uff0c\u4f46\u662f\u60a3\u8005\u4ecd\u9762\u4e34\u7740\u957f\u671f\u6cbb\u7597\u8fc7\u7a0b\u4e2d\u7684\u8010\u836f\u98ce\u9669\u3002</p>", + "type": 0, + "title": "\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u548c\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u7b80\u4ecb" + } + }, + { + "pk": 28, + "model": "sciblog.knowledgepiece", + "fields": { + "content": "\u56e0\u4e3a\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u548c\u6838\u82f7\uff08\u9178\uff09\u7c7b\u4f3c\u7269\u7684\u6cbb\u7597\u90fd\u662f\u6709\u6548\u7684\uff0c\u800c\u4e14\u5b83\u4eec\u6709\u5404\u81ea\u7684\u4f18\u70b9\u548c\u7f3a\u9677\uff0c\u6240\u4ee5\u4ec0\u4e48\u6cbb\u7597\u624b\u6bb5\u5728\u4ec0\u4e48\u6837\u7684\u60a3\u8005\u4e2d\u5e94\u4f5c\u4e3a\u4e00\u7ebf\u6cbb\u7597\u65b9\u6848\u4e00\u76f4\u5f88\u53d7\u5173\u6ce8\u3002\u5728\u9009\u62e9\u91c7\u7528\u54ea\u79cd\u6297\u75c5\u6bd2\u6cbb\u7597\u65b9\u6848\u65f6\uff0c\u836f\u7269\u4f7f\u5f97\u60a3\u8005\u83b7\u5f97\u5e94\u7b54\u7684\u51e0\u7387\u548c\u60a3\u8005\u81ea\u8eab\u7684\u7279\u5f81\u90fd\u5e94\u4e88\u4ee5\u8003\u8651\u3002\r\n\r\n<p>\u6700\u8fd1\u8bb8\u591a\u5173\u4e8e\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u4e3a\u671f1\u5e74\u6cbb\u7597e\u6297\u539f\u9633\u6027\u4e59\u809d\u60a3\u8005\u7684\u7814\u7a76\u8bc1\u5b9e\uff0c\u57fa\u7ebf\u9ad8<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\uff08ALT\uff09\u6c34\u5e73\u3001\u4f4e\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u6c34\u5e73\u4ee5\u53ca\u4e4b\u524d\u6ca1\u6709\u63a5\u53d7\u8fc7\u5e72\u6270\u7d20\u6cbb\u7597\u3001\u57fa\u7ebf\u4f4ee\u6297\u539f\uff08HBeAg\uff09\u6c34\u5e73\u3001HBV\u57fa\u56e0\u578b\uff08A\u3001B\u578b\uff09\u662f\u80fd\u591f\u83b7\u5f97\u5e94\u7b54\u7684\u9884\u6d4b\u56e0\u5b50\u3002</p>\r\n\r\n<p>\u96f6\u4e5d\u5e74\u7684\u6b27\u6d32\u809d\u75c5\u534f\u4f1a\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u5e76\u6ca1\u6709\u63d0\u4f9b\u7279\u6b8a\u7684\u5efa\u8bae\u6765\u6307\u5bfc\u4e34\u5e8a\u54ea\u4e9b\u60a3\u8005\u9002\u5408\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6765\u6cbb\u7597\uff1b\u65e9\u671f\u7684\u7814\u7a76\u4e2d\u5173\u4e8e\u7c7b\u4f3c\u7684\u8bc1\u636e\u4e5f\u5f88\u5c11\u3002\u6240\u4ee5\uff0c\u672c\u7814\u7a76\u4e2d\u7684\u76ee\u7684\u5c31\u662f\u7814\u7a76\u51fa\u4e00\u4e2a\u6a21\u578b\uff1a\u80fd\u591f\u7528\u6765\u9884\u6d4be\u6297\u539f\u9633\u6027\u6162\u4e59\u809d\u60a3\u8005\u5728\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u6cbb\u7597\u540e\uff0c\u83b7\u5f97\u6301\u4e45\u5e94\u7b54\u7684\u51e0\u7387\u3002</p>\r\n\r\n<p>\u8fd9\u4e2a\u6a21\u578b\u80fd\u591f\u4f7f\u5f97\u5168\u7403\u7684\u4e34\u5e8a\u533b\u5e08\u9009\u62e9\u6700\u9002\u5408\u4f7f\u7528\u8be5\u836f\u7269\u8fdb\u884c\u6cbb\u7597\u7684\u60a3\u8005\u3002</p>", + "type": 0, + "title": "\u5982\u4f55\u66f4\u52a0\u79d1\u5b66\u5730\u4e8b\u5148\u627e\u5230\u6700\u9002\u5408\u4f7f\u7528\u805a\u4e59\u4e8c\u9187\u5e72\u6270\u7d20\u7684\u60a3\u8005\uff1f--\u9884\u6d4b\u7684\u5a01\u529b " + } + }, + { + "pk": 1, + "model": "sciblog.blogannotation", + "fields": { + "no": null, + "blogs": [ + 1, + 2, + 4 + ], + "collected_by": [ + 1, + 4 + ], + "detail": "\u3010\u56fe\u89e3\u3011\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u8c37\u4e19\u8f6c\u6c28\u9176\u7684\u53c2\u8003\u503c\u4e3a0-45U/L\uff0c\u6bcf\u5bb6\u533b\u9662\u53c2\u8003\u503c\u4e0d\u4e00\u6837\uff0c\u7f16\u53f7\u4e3aALT\uff0c\u53ef\u4ee5\u53c2\u8003\u76f8\u5bf9\u6570\u503c\u3002\u5982\u679c\u53c2\u8003\u503c\u5355\u4f4d\u51fa\u73b0IU/L\uff0c\u5219\u4e0eU/L\u5e76\u65e0\u591a\u5927\u5dee\u8ddd\uff0c\u800c\u82e5\u51fa\u73b0\u62f7\u8d1d/mL\uff0c\u5219\u53ef\u4ee5\u6309\u71675\u500dU/L\u7ea6\u7b49\u4e8e1\u500d\u62f7\u8d1d/mL\u8fdb\u884c\u6362\u7b97\u3002\r\n\u3010\u6982\u8ff0\u3011<p>\u8c37\u4e19\u8f6c\u6c28\u9176\u662f\u4e00\u79cd\u5b58\u5728\u8840\u6e05\u548c\u5927\u91cf\u7ec4\u7ec7\u5668\u5b98\u4e2d\u7684\u4e00\u79cd\u8f6c\u6c28\u9176\uff0c\u4f46\u662f\u6b64\u79cd\u9176\u5927\u591a\u4e0e\u809d\u810f\u76f8\u5173\u3002\u6b64\u79cd\u9176\u5728\u809d\u810f\u5faa\u73af\u4e2d\u8d77\u7740\u50ac\u5316\u7684\u4f5c\u7528\uff0c\u809d\u810f\u5185\u4e0d\u65ad\u8fdb\u884c\u7740\u4e19\u916e\u9178+\u8c37\u6c28\u9178=alpha\u916e\u620a\u4e8c\u9178+\u4e19\u6c28\u9178\u7684\u5faa\u73af\uff0c\u7ed9\u673a\u4f53\u63d0\u4f9b\u6709\u6548\u7684\u6c28\u57fa\u9178\uff0c\u8c37\u4e19\u8f6c\u6c28\u9178\u7684\u5347\u9ad8\u4f7f\u5f97\u916e\u620a\u4e8c\u9178\u4e0d\u65ad\u4ea7\u751f\uff0c\u5bfc\u81f4\u809d\u810f\u708e\u75c7\u7684\u4ea7\u751f\u3002\r\n\u4e0d\u8fc7\u8c37\u4e19\u8f6c\u6c28\u9176</p>\u5347\u9ad8\u4e5f\u5e76\u4e0d\u5168\u7136\u662f\u7531\u4e8e\u751f\u75c5\u7684\u539f\u56e0\uff0c\u6709\u7684\u65f6\u5019\u5267\u70c8\u8fd0\u52a8\u4e5f\u662f\u4f1a\u5bfc\u81f4\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\r\n\uff081\uff09\u6458\u81ea\u7ef4\u57fa\u767e\u79d1<a href='http://zh.wikipedia.org/wiki/%E8%B0%B7%E4%B8%99%E8%BD%AC%E6%B0%A8%E9%85%B6'>\u201c\u8c37\u4e19\u8f6c\u6c28\u9176\u201d</a>\r\n\uff082\uff09Molecular Testing in the Diagnosis and Management of Chronic Hepatitis B\r\nhttp://cmr.asm.org/content/20/3/426.full\r\n\u3010\u56fe\u89e3\u3011\u56fe\u4e2d\u53ef\u4ee5\u770b\u5230\u8c37\u4e19\u8f6c\u6c28\u9176\u7684\u53c2\u8003\u503c\u4e3a0-45U/L\uff0c\u6bcf\u5bb6\u533b\u9662\u53c2\u8003\u503c\u4e0d\u4e00\u6837\uff0c\u7f16\u53f7\u4e3aALT\uff0c\u53ef\u4ee5\u53c2\u8003\u76f8\u5bf9\u6570\u503c\u3002\u5982\u679c\u53c2\u8003\u503c\u5355\u4f4d\u51fa\u73b0IU/L\uff0c\u5219\u4e0eU/L\u5e76\u65e0\u591a\u5927\u5dee\u8ddd\uff0c\u800c\u82e5\u51fa\u73b0\u62f7\u8d1d/mL\uff0c\u5219\u53ef\u4ee5\u6309\u71675\u500dU/L\u7ea6\u7b49\u4e8e1\u500d\u62f7\u8d1d/mL\u8fdb\u884c\u6362\u7b97\u3002\r\n\u3010\u6982\u8ff0\u3011\u8c37\u4e19\u8f6c\u6c28\u9176\u662f\u4e00\u79cd\u5b58\u5728\u8840\u6e05\u548c\u5927\u91cf\u7ec4\u7ec7\u5668\u5b98\u4e2d\u7684\u4e00\u79cd\u8f6c\u6c28\u9176\uff0c\u4f46\u662f\u6b64\u79cd\u9176\u5927\u591a\u4e0e\u809d\u810f\u76f8\u5173\u3002\u6b64\u79cd\u9176\u5728\u809d\u810f\u5faa\u73af\u4e2d\u8d77\u7740\u50ac\u5316\u7684\u4f5c\u7528\uff0c\u809d\u810f\u5185\u4e0d\u65ad\u8fdb\u884c\u7740\u4e19\u916e\u9178+\u8c37\u6c28\u9178=alpha\u916e\u620a\u4e8c\u9178+\u4e19\u6c28\u9178\u7684\u5faa\u73af\uff0c\u7ed9\u673a\u4f53\u63d0\u4f9b\u6709\u6548\u7684\u6c28\u57fa\u9178\uff0c\u8c37\u4e19\u8f6c\u6c28\u9178\u7684\u5347\u9ad8\u4f7f\u5f97\u916e\u620a\u4e8c\u9178\u4e0d\u65ad\u4ea7\u751f\uff0c\u5bfc\u81f4\u809d\u810f\u708e\u75c7\u7684\u4ea7\u751f\u3002\r\n\u4e0d\u8fc7\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\u4e5f\u5e76\u4e0d\u5168\u7136\u662f\u7531\u4e8e\u751f\u75c5\u7684\u539f\u56e0\uff0c\u6709\u7684\u65f6\u5019\u5267\u70c8\u8fd0\u52a8\u4e5f\u662f\u4f1a\u5bfc\u81f4\u8c37\u4e19\u8f6c\u6c28\u9176\u5347\u9ad8\r\n\uff081\uff09\u6458\u81ea\u7ef4\u57fa\u767e\u79d1<a href='http://zh.wikipedia.org/wiki/%E8%B0%B7%E4%B8%99%E8%BD%AC%E6%B0%A8%E9%85%B6'>\u201c\u8c37\u4e19\u8f6c\u6c28\u9176\u201d</a>\r\n\uff082\uff09Molecular Testing in the Diagnosis and Management of Chronic Hepatitis B\r\nhttp://cmr.asm.org/content/20/3/426.full\r\n\u6587\u7ae0\u4e3b\u8981\u9488\u5bf9HBV\u7684\u5206\u5b50\u7ed3\u6784\u8fdb\u884c\u7814\u7a76\uff0c\u540c\u65f6\u63ed\u9732\u75c5\u6bd2\u590d\u5236\u60c5\u51b5\uff0c\u53d8\u5f02\u60c5\u51b5\u4ee5\u53ca\u4e00\u4e9b\u8bca\u65ad\u7684\u6307\u6807\u6570\u636e\uff0c\u4e3a\u4e86\u8ba9\u4eba\u4eec\u66f4\u597d\u7684\u7406\u89e3\u6162\u6027\u4e59\u809d\uff0c\u5e76\u63d0\u4f9b\u4e00\u5b9a\u7684\u6cbb\u7597\u63a8\u8350", + "figures": [], + "keywords": [ + 1 + ], + "brief_content": "\u8c37\u4e19\u8f6c\u6c28\u9176", + "type": 1 + } + }, + { + "pk": 2, + "model": "sciblog.blogannotation", + "fields": { + "no": null, + "blogs": [ + 1, + 2, + 3 + ], + "collected_by": [ + 1, + 2, + 3 + ], + "detail": "test", + "figures": [], + "keywords": [ + 2 + ], + "brief_content": "\u8868\u9762\u6297\u539f", + "type": 1 + } + }, + { + "pk": 3, + "model": "sciblog.blogannotation", + "fields": { + "no": null, + "blogs": [ + 1 + ], + "collected_by": [ + 2 + ], + "detail": "HBsAg \u53d1\u751f\u8840\u6e05\u5b66\u8f6c\u6362\u662f\u7406\u60f3\u7ec8\u70b9\uff0c\u8fd9\u70b9\u5728EASL2012\u7684\u4e34\u5e8a\u6cbb\u7597\u6307\u5357\u4e2d\u6709\u6240\u63d0\u53ca\u3002", + "figures": [], + "keywords": [ + 1, + 2 + ], + "brief_content": "\u4ec0\u4e48\u662f\u7406\u60f3\u7ec8\u70b9\uff1f\u6cbb\u7597\u6307\u5357\u4e2d\u6709\u6ca1\u6709\u63d0\u53ca\uff1f ", + "type": 0 + } + }, + { + "pk": 1, + "model": "sciblog.guideline", + "fields": { + "content": "HBeAg\u9634\u6027\u4e59\u809d\u60a3\u8005\u63a5\u53d7\u805a\u4e59\u4e8c\u9187\u6cbb\u7597\u7684\u8fc7\u7a0b\u4e2d\uff0c\u540c\u65f6\u5b9a\u91cf\u68c0\u6d4bHBsAg\u548cHBV DNA\u80fd\u591f\u5e2e\u52a9\u51b3\u5b9a\u7ee7\u7eed\u8fd8\u662f\u505c\u6b62\u6cbb\u7597\u65b9\u6848\u3002\r\n\r\n\u5f53\u7136\u5f88\u660e\u663e\u7684\u662f\uff0c\u6700\u7ec8\u7684\u51b3\u5b9a\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u8fd8\u8981\u57fa\u4e8e\u533b\u751f\u7684\u5224\u5b9a\uff0c\u4ed6\uff08\u5979\uff09\u5e94\u8be5\u5c06\u5176\u4ed6\u56e0\u7d20\uff0c\u8bf8\u5982\u75c5\u4eba\u5bf9\u4e8e\u836f\u7269\u7684\u8010\u53d7\uff0c\u8003\u8651\u8fdb\u53bb\u3002\r\n\r\n\u5173\u4e8e\u51b3\u5b9a\u65f6\u95f4\uff1a\r\n\r\n\u6cbb\u7597\u768412\u5468\u4ee5\u524d\u8fd8\u4e0d\u80fd\u4e3a\u662f\u5426\u8981\u505c\u6b62\u6cbb\u7597\u5236\u5b9a\u4e34\u5e8a\u6307\u5bfc\u539f\u5219\uff0c\u56e0\u4e3aHBsAg\u548cHBV DNA\u6c34\u5e73\u5728\u524d8\u5468\u7684\u53d8\u5316\u4e0d\u80fd\u63d0\u4f9b\u8db3\u591f\u7684\u8bc1\u636e\u3002\r\n\r\n\u53e6\u4e00\u65b9\u9762\uff0c\u8fc7\u4e8612\u5468\uff0c\u51b3\u5b9a\u201c\u662f\u5426\u7ee7\u7eed\u6cbb\u7597\u201d\u4e0d\u5e94\u8be5\u63a8\u8fdf\u5230\u592a\u665a\uff0c\u56e0\u4e3a\u6570\u5b66\u7edf\u8ba1\u5904\u7406\u8868\u793a\u9884\u6d4b\u83b7\u5f97SR\u51e0\u7387\u7684\u4f5c\u7528\uff08\u6216\u8005\u7cbe\u51c6\u5ea6\uff09\u572824\u5468\u5e76\u6ca1\u6709\u6bd412\u5468\u66f4\u597d\u3002", + "figures": [] + } + }, + { + "pk": 1, + "model": "sciblog.endpoint", + "fields": { + "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c<a href=\"#jargon-1\" class=\"jargon\"><a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a></a>\uff08ALT\uff09\u6062\u590d\u6b63\u5e38\u6c34\u5e73", + "indicator": null, + "type": 1 + } + }, + { + "pk": 2, + "model": "sciblog.endpoint", + "fields": { + "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u6c34\u5e73\u4e0b\u964d\u523020,000\u62f7\u8d1d/mL", + "indicator": null, + "type": 1 + } + }, + { + "pk": 3, + "model": "sciblog.endpoint", + "fields": { + "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u6e05\u9664", + "indicator": null, + "type": 2 + } + }, + { + "pk": 4, + "model": "sciblog.endpoint", + "fields": { + "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362\uff08\u5b9a\u4e49\u4e3a<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>HBsAg\u6e05\u9664\u800c\u4e14\u8868\u9762\u6297\u4f53HBsAb\u51fa\u73b0\uff09", + "indicator": null, + "type": 2 + } + }, + { + "pk": 5, + "model": "sciblog.endpoint", + "fields": { + "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c\u7ec4\u7ec7\u5b66\u5e94\u7b54\uff08\u5b9a\u4e49\u4e3aMHAI, The Ishak modified histological activity index\u4e0b\u964d\u81f3\u5c112\u5206\uff09", + "indicator": null, + "type": 2 + } + }, + { + "pk": 6, + "model": "sciblog.endpoint", + "fields": { + "content": "\u6cbb\u7597\u7ed3\u675f\u968f\u8bbf24\u5468\u4ee5\u540e\uff0c\u4e59\u809d\u75c5\u6bd2\uff08DNA\u6c34\u5e73\uff09\u4e0b\u964d\u5230400\u62f7\u8d1d\u4ee5\u4e0b", + "indicator": null, + "type": 2 + } + }, + { + "pk": 7, + "model": "sciblog.endpoint", + "fields": { + "content": "\u968f\u8bbf\u7ec8\u70b9\uff08\u7b2c72\u5468\uff09\u7684\u65f6\u5019\uff0cHBV DNA\u6c34\u5e73\u5c0f\u4e8e10000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e1714 IU/mL \uff09", + "indicator": null, + "type": 1 + } + }, + { + "pk": 8, + "model": "sciblog.endpoint", + "fields": { + "content": "e\u6297\u539f\uff08HBeAg\uff09\u8840\u6e05\u5b66\u8f6c\u6362", + "indicator": null, + "type": 1 + } + }, + { + "pk": 9, + "model": "sciblog.endpoint", + "fields": { + "content": "\u4e59\u809d\u75c5\u6bd2\uff08HBV\uff09DNA\u5c0f\u4e8e\u7b49\u4e8e2,000IU/mL\uff08\u76f8\u5f53\u4e8e\u5927\u698210,000\u62f7\u8d1d/mL\uff09", + "indicator": null, + "type": 1 + } + }, + { + "pk": 10, + "model": "sciblog.endpoint", + "fields": { + "content": "\u6cbb\u7597\u7ed3\u675f\u540e6\u4e2a\u6708\u968f\u8bbf\u671f\u95f4\u53d1\u751f<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u6e05\u9664", + "indicator": null, + "type": 1 + } + }, + { + "pk": 1, + "model": "sciblog.cliniccondition", + "fields": { + "content": "e\u6297\u539f\uff08HBeAg\uff09\u9634\u6027\u81f3\u5c11\u516d\u4e2a\u6708", + "indicator": null, + "type": 0 + } + }, + { + "pk": 2, + "model": "sciblog.cliniccondition", + "fields": { + "content": "e\u6297\u4f53\uff08HBeAb\uff09\u81f3\u5c11\u9633\u6027\u516d\u4e2a\u6708", + "indicator": null, + "type": 0 + } + }, + { + "pk": 3, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u4e59\u809d\u75c5\u6bd2\uff08DNA\uff09\u6c34\u5e73\u81f3\u5c11100,000\u62f7\u8d1d/mL", + "indicator": null, + "type": 0 + } + }, + { + "pk": 4, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u8c37\u4e19\u8f6c\u6c28\u9176\uff08ALT\uff09\u57281\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u548c10\u88ab\u6b63\u5e38\u503c\u4e0a\u9650\u4e4b\u95f4", + "indicator": null, + "type": 0 + } + }, + { + "pk": 5, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5728\u8fc7\u53bb24\u4e2a\u6708\u5185\u809d\u810f\u6d3b\u68c0\u8bc1\u5b9e\u6709\u809d\u708e", + "indicator": null, + "type": 0 + } + }, + { + "pk": 6, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u60a3\u6709\u5931\u4ee3\u507f\u809d\u786c\u5316", + "indicator": null, + "type": 1 + } + }, + { + "pk": 7, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u66fe\u7ecf\u6709\u8fc7\u4e25\u91cd\u7684\u7cbe\u795e\u548c\u5185\u79d1\u75be\u75c5", + "indicator": null, + "type": 1 + } + }, + { + "pk": 8, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u4e00\u5f00\u59cb\u4e2d\u6027\u7c92\u7ec6\u80de\u6570\u5c0f\u4e8e1500/mm3", + "indicator": null, + "type": 1 + } + }, + { + "pk": 9, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u8840\u5c0f\u677f\u6570\u91cf\u5c0f\u4e8e90,000/mm3", + "indicator": null, + "type": 1 + } + }, + { + "pk": 10, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u8840\u6e05\u808c\u9150\u4e3a\u6b63\u5e38\u503c\u4e0a\u9650\u7684\u81f3\u5c111.5\u500d\u4ee5\u4e0a", + "indicator": null, + "type": 1 + } + }, + { + "pk": 11, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5165\u7ec4\u524d\u4e00\u5e74\u5185\u6709\u8fc7\u8fc7\u5ea6\u996e\u9152\u6216\u8005\u6ee5\u7528\u836f\u7269\u7684\u7ecf\u5386", + "indicator": null, + "type": 1 + } + }, + { + "pk": 12, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5728\u6700\u8fd1\u76846\u4e2a\u6708\u5185\u63a5\u53d7\u8fc7\u6297\uff08\u4e59\u809d\uff09\u75c5\u6bd2\u6cbb\u7597", + "indicator": null, + "type": 1 + } + }, + { + "pk": 13, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5408\u5e76\u4e19\u578b\u809d\u708e\uff08HCV\uff09\u3001\u4e01\u809d\u6216\u8005HIV", + "indicator": null, + "type": 1 + } + }, + { + "pk": 14, + "model": "sciblog.cliniccondition", + "fields": { + "content": "<a href=\"#jargon-2\" class=\"jargon\">\u8868\u9762\u6297\u539f</a>\uff08HBsAg\uff09\u81f3\u5c11\u9633\u6027\u516d\u4e2a\u6708", + "indicator": null, + "type": 0 + } + }, + { + "pk": 15, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5165\u7ec4\u524d2\u4e2a\u6708\u5185\uff0ce\u6297\u539f\uff08HBeAg\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21", + "indicator": null, + "type": 0 + } + }, + { + "pk": 16, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5165\u7ec4\u524d2\u4e2a\u6708\uff0ce\u6297\u4f53\uff08HBeAb\uff09\u88ab\u53d1\u73b0\u9634\u6027\u81f3\u5c11\u4e24\u6b21", + "indicator": null, + "type": 0 + } + }, + { + "pk": 17, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5165\u7ec4\u524d2\u4e2a\u6708\uff0c\u81f3\u5c11\u4e24\u6b21<a href=\"#jargon-1\" class=\"jargon\">\u8c37\u4e19\u8f6c\u6c28\u9176</a>\uff08ALT\uff09\u5904\u57281.5\u523010\u500d\u6b63\u5e38\u503c\u4e0a\u9650\uff08ULN\uff09\u4e4b\u95f4", + "indicator": null, + "type": 0 + } + }, + { + "pk": 18, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u4e59\u809d\u75c5\u6bd2\uff08HBV DNA\uff09\u6c34\u5e73\u5927\u4e8e100,000\u62f7\u8d1d/ml\uff08\u76f8\u5f53\u4e8e17,143IU/ml\uff09", + "indicator": null, + "type": 0 + } + }, + { + "pk": 19, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u5165\u7ec4\u524d\u516d\u4e2a\u6708\u524d\u63a5\u53d7\u8fc7\u6297\u75c5\u6bd2\u6216\u8005\u514d\u75ab\u6291\u5236\u5242\u6cbb\u7597", + "indicator": null, + "type": 1 + } + }, + { + "pk": 20, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u60a3\u6709\u5176\u4ed6\u83b7\u5f97\u6027\u6216\u8005\u9057\u4f20\u6027\u7684\u809d\u810f\u75be\u75c5", + "indicator": null, + "type": 1 + } + }, + { + "pk": 21, + "model": "sciblog.cliniccondition", + "fields": { + "content": "\u66fe\u7ecf\u6709\u8fc7\u7ec6\u80de\u51cf\u5c11\u75c7\u6216\u8005\u5931\u4ee3\u507f\u809d\u75c5", + "indicator": null, + "type": 1 + } + } +]
\ No newline at end of file diff --git a/97suifangqa/apps/sciblog/forms.py b/97suifangqa/apps/sciblog/forms.py new file mode 100644 index 0000000..88a4659 --- /dev/null +++ b/97suifangqa/apps/sciblog/forms.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +from haystack.forms import SearchForm + +from .models import SciBlog, BlogAnnotation + +class SciBlogSearchForm(SearchForm): + u''' + 问题查询表单,主要完成两个工作: + 1. 指定查询的model为Query + 2. 重载clean_q,对查询语句进行分词 + >>> from sciblog.forms import SciBlogSearchForm + >>> form = SciBlogSearchForm({'q':u'干扰素'}) + >>> form.search() + [<SearchResult: sciblog.sciblog (pk=u'1')>, <SearchResult: sciblog.sciblog (pk=u'3')>, <SearchResult: sciblog.sciblog (pk=u'2')>] + ''' + + def __init__(self,*args, **kwargs): + u''' + 在__init__中指定查询的model为SciBlog + ''' + super(SciBlogSearchForm, self).__init__(*args, **kwargs) + self.searchqueryset = self.searchqueryset.models(SciBlog) + + +class ProperNounSearchForm(SearchForm): + u''' + 专业名词搜索表单 + >>> from sciblog.forms import ProperNounSearchForm + >>> form = ProperNounSearchForm({'q':u'乙肝'}) + >>> form.search() + [<SearchResult: sciblog.blogannotation (pk=u'1')>] + ''' + def __init__(self,*args, **kwargs): + u''' + 在__init__中指定查询的model为BlogAnnotation + ''' + super(ProperNounSearchForm, self).__init__(*args, **kwargs) + self.searchqueryset = self.searchqueryset.models(BlogAnnotation) diff --git a/97suifangqa/apps/sciblog/managers.py b/97suifangqa/apps/sciblog/managers.py new file mode 100644 index 0000000..ae6beb3 --- /dev/null +++ b/97suifangqa/apps/sciblog/managers.py @@ -0,0 +1,80 @@ +# -*- coding: utf-8 -*- +import json +from django.db import models +from django.contrib.auth.models import AnonymousUser + +class AnnotationManager(models.Manager): + use_for_related_fields = True + + def paracomments(self): + u''' + 获取段落注释 + ''' + return self.filter(type = 0) + + def propernouns(self): + u''' + 获取专有名词 + ''' + return self.filter(type = 1) + + def all_json(self, user = AnonymousUser()): + u''' + 通过json格式获取专有名词和段落注释 + ''' + result = {p.id:{'id':p.id, + 'name':p.firstkeyword() if p.type == 1 else p.brief_content, + 'type':p.type, + 'content':p.detail, + 'collected_times':p.collected_by.count(), + 'is_collected': p.is_collected_by(user)} + for p in self.all()} + return json.dumps(result) + + +class KnowledgePieceManager(models.Manager): + use_for_related_fields = True + + def knowledges(self): + u''' + 获取科普知识类型的条目 + ''' + return self.filter(type = 0) + + def comments(self): + u''' + 获取科学评论类型的条目 + ''' + return self.filter(type = 1) + + +class EndPointManager(models.Manager): + use_for_related_fields = True + + def primary(self): + u''' + 获取主要治疗终点 + ''' + return self.filter(type = 1) + + def secondary(self): + u''' + 获取次要治疗终点 + ''' + return self.filter(type = 2) + + +class ClinicConditionManager(models.Manager): + use_for_related_fields = True + + def inclusive(self): + u''' + 获取允许类型的临床条件 + ''' + return self.filter(type = 0) + + def exclusive(self): + u''' + 获取排除类型的临床条件 + ''' + return self.filter(type = 1) diff --git a/97suifangqa/apps/sciblog/models.py b/97suifangqa/apps/sciblog/models.py new file mode 100644 index 0000000..22514c9 --- /dev/null +++ b/97suifangqa/apps/sciblog/models.py @@ -0,0 +1,326 @@ +# -*- coding: utf-8 -*- + +from django.db import models +from django.contrib import admin +from django.contrib.auth.models import User +from utils import get_abstract +from .managers import * + + +# Create your models here. + + +# SciBlog {{{ +class SciBlog(models.Model): + + title = models.CharField(u"标题", max_length=400) + subhead = models.CharField(u"副标题", max_length=400, blank=True) + entitle = models.CharField(u"英文标题", max_length=400, blank=True) + journal = models.CharField(u"期刊", max_length=400, blank= True) + publish_date = models.DateField(u"出版日期", blank=True, null=True) + readed_count = models.PositiveIntegerField(u"被阅读次数", default=0) + understanded_count = models.PositiveIntegerField(u"懂按钮被按次数", default=0) + confused_count = models.PositiveIntegerField(u"不懂按钮被按次数", default=0) + ifvalue = models.FloatField(u"影响因子", default=1.0) + authors = models.CharField(u"作者", max_length=1000, default="default authors") + method = models.TextField(u"治疗手段", blank=True) + aim = models.TextField(u"目标", blank=True) + abstract_result = models.TextField(u"结果简述", blank=True) + abstractAE = models.TextField(u"abstractAE", blank=True) + treatment_content = models.TextField(u"treatmentContent", blank=True) + safety = models.TextField(u"安全性", blank=True) + + hospital = models.ManyToManyField("location.Hospital", verbose_name=u"作者医院", related_name="sciblogs", null=True, blank=True) + guidline = models.OneToOneField("Guideline", verbose_name=u"临床策略", related_name="blog", null=True, blank=True) + baseline = models.ManyToManyField("BaseLine", verbose_name=u"研究基线", related_name="blog", null=True, blank=True) + endpoint_content = models.TextField(u"治疗终点文本", blank=True) + endpoints = models.ManyToManyField("EndPoint", verbose_name=u"治疗终点", related_name="blogs", null=True, blank=True) + clinic_conditions = models.ManyToManyField("ClinicCondition", verbose_name=u"临床条件", related_name="blogs", null=True, blank=True) + detectionAssay = models.TextField(u"检测方法", blank=True) + collected_by = models.ManyToManyField(User, verbose_name=u"收藏者", related_name="blog_collection", null=True, blank=True) + catched_by = models.ManyToManyField(User, verbose_name=u"懂了的", related_name="blogs_catched", null=True, blank=True) + + # 从原BlogBlock拷贝过来的fields + conclusion = models.TextField(u"本文结论", blank=True) + konwledge_piece = models.ManyToManyField("KnowledgePiece", verbose_name=u"知识条目", related_name="blogs", null=True, blank=True) + sample = models.ManyToManyField("subjects.Sample", verbose_name=u"人群", related_name="blogs", null=True, blank=True) + source = models.OneToOneField("Source", verbose_name=u"出处", related_name="blog", null=True, blank=True) + references = models.ManyToManyField("Reference", verbose_name=u"参考信息", related_name="blogs", null=True, blank=True) + query = models.ManyToManyField("info.Query", verbose_name=u"问题", related_name="blogs", null=True, blank=True) + + class Meta: + verbose_name_plural = u"文章" + + def __unicode__(self): + return "< SciBlog: %s >" % self.title + + def show(self): + """ + used in 'search/search.html' + to show search result + """ + return self.__unicode__() + + def level(self): + u''' + 计算文章难度等级 + ''' + return 1 #TODO:添加实现代码 + + def quality_value(self): + u''' + 计算文章质量 + ''' + return 1.0 #TODO:添加实现代码 + + def communication_author(self): + u''' + 找出通讯作者放在blog list + ''' + return self.authors.split(',')[0] +# }}} + + +# ResultContent {{{ +class ResultContent(models.Model): + u''' + 实验结果内容 + ''' + type_choices = ((1, "total"), + (2, "now"), + (3, "future")) + + type = models.IntegerField(u"类型", choices=type_choices, null=True, blank=True) + shorttitle = models.CharField(u"简标题", max_length=36, blank=True) + abstract = models.CharField(u"摘要", max_length=100, blank=True) + content = models.TextField(u"内容", blank = True) + card_content = models.TextField(u"卡片内容", blank=True) + sample = models.ManyToManyField("subjects.Sample", verbose_name=u"人群", related_name="results", null=True, blank=True) + blog = models.ForeignKey("SciBlog", verbose_name=u"文章", related_name="results", null=True, blank=True) + indicators = models.ManyToManyField("indicator.Indicator", null=True, blank=True) + + class Meta: + verbose_name_plural = u"实验结果" + + def __unicode__(self): + return "<ResultContent: %s>" % get_abstract(self.content) + + def color(self): + u''' + 根据type返回卡片颜色 + ''' + + return ['grey', 'green', 'blue'][self.type - 1] +# }}} + + +# Source {{{ +class Source(models.Model): + u''' + 这篇文章原论文的来源 + ''' + + ensrc = models.CharField(u"英文出处", max_length=400, blank= True) + chsrc = models.CharField(u"中文出处", max_length=400, blank= True) + link = models.URLField(verify_exists=False, max_length=400, blank=True, verbose_name = u"外网链接") + + + class Meta: + verbose_name_plural = u"出处" + + def __unicode__(self): + return "< Source: %s >" % self.id +# }}} + + +# Reference {{{ +class Reference(models.Model): + u''' + 参考消息:这篇文章其他相关论文等信息的来源 + ''' + + description = models.TextField(u"描述", blank=True) + link = models.URLField(verify_exists=False, max_length=400, blank=True, verbose_name = u"链接") + + + class Meta: + verbose_name_plural = u"参考信息" + + def __unicode__(self): + return "< Reference: %s >" % self.description +# }}} + + +# KnowledgePiece {{{ +class KnowledgePiece(models.Model): + u''' + 知识条目:知识条目很可能是问题的答案。 + ''' + + type_choices = ((0, u"科普知识"), + (1, u"科学评论"), + ) + + title = models.CharField(u"标题", max_length=100, blank= True) + content = models.TextField(u"条目内容", blank=True) + type = models.IntegerField(u"种类", choices=type_choices) + objects = KnowledgePieceManager() + + + class Meta: + verbose_name_plural = u"知识条目" + + def __unicode__(self): + return "< KnowledgePiece: %s %s >" % (self.id, self.content if len(self.content) < 20 else self.content[0:20]) +# }}} + + +# BlogAnnotation {{{ +class BlogAnnotation(models.Model): + u''' + 文章注释 + ''' + + type_choices = ((0, u"段落注释"), + (1, u"专有名词"),) + + type = models.IntegerField(u"注释类型", choices=type_choices) + no = models.IntegerField(u"编号", blank=True, null=True) + brief_content = models.CharField(u"简短内容", max_length=400, blank= True) + detail = models.TextField(u"详细内容", blank=True) + blogs = models.ManyToManyField("SciBlog", verbose_name=u"文章", related_name="annotations", null=True, blank=True) + keywords = models.ManyToManyField("info.KeyWord", verbose_name=u"关键词", related_name="annotations", null=True, blank=True) + figures = models.ManyToManyField("figure.Figure", verbose_name=u"图片", related_name="annotations", null=True, blank=True) + collected_by = models.ManyToManyField(User, verbose_name=u"收藏者", related_name="annotation_collection", null=True, blank=True) + objects = AnnotationManager() + + + class Meta: + verbose_name_plural = u"文章注释" + + def __unicode__(self): + return "<BlogAnnotation: %s>" % get_abstract(self.brief_content) + + def show(self): + """ + used in 'search/search.html' + to show search result + """ + return self.__unicode__() + + def firstkeyword(self): + u''' + 第一个关键词,注意对于专有名词,通常只有一个 + ''' + + return self.keywords.all()[0].content + + def firstparagraph(self): + u''' + bloglist页面二上内容的阶段,django里面的注释第一段的末尾都是一个空格 + ''' + return self.detail.split(' ')[0] + + def is_collected_by(self, user): + u''' + 该注释是否已经被user收藏 + ''' + if user.is_authenticated() and user.annotation_collection.filter(id=self.id): + return True + return False +# }}} + + +# Guideline {{{ +class Guideline(models.Model): + u''' + 临床策略 + ''' + + content = models.TextField(u"内容", blank=True) + figures = models.ManyToManyField("figure.Figure", verbose_name=u"图片", related_name="guidlines", null=True, blank=True) + + + class Meta: + verbose_name_plural = u"临床策略" + + def __unicode__(self): + return "<Guideline: %s>" % get_abstract(self.content) +# }}} + + +# EndPoint {{{ +class EndPoint(models.Model): + u''' + 治疗终点 + ''' + + type_choices = ((1, "primary"), + (2, "secondary"),) + + content = models.TextField(u"内容", blank=True) + type = models.IntegerField(u"类型", choices=type_choices, blank=True) + indicator = models.ForeignKey("indicator.Indicator", verbose_name=u"医学指标", related_name="endpoints", null=True, blank=True) + objects = EndPointManager() + + class Meta: + verbose_name_plural = u"治疗终点" + + def __unicode__(self): + return "<EndPoint: %s>" % get_abstract(self.content) +# }}} + + +# ClinicCondition {{{ +class ClinicCondition(models.Model): + u''' + 临床条件 + ''' + + type_choices = ((0, "允许"), + (1, "排除"),) + + content = models.TextField(u"内容", blank=True) + type = models.IntegerField(u"类型", choices=type_choices, blank=True) + indicator = models.ForeignKey("indicator.Indicator", verbose_name=u"医学指标", related_name="clinic_conditions", null=True, blank=True) + objects = ClinicConditionManager() + + + class Meta: + verbose_name_plural = u"临床条件" + + def __unicode__(self): + return "<ClinicCondition: %s>" % get_abstract(self.content) +# }}} + + +# BaseLine {{{ +class BaseLine(models.Model): + u''' + 基线水平 + ''' + + content = models.TextField(u"内容", blank=True) + figures = models.ManyToManyField("figure.Figure", verbose_name=u"图片", related_name="baselines", null=True, blank=True) + base_line_items = models.ManyToManyField("subjects.BaseLineItem", verbose_name=u"研究基线项目", related_name="baselines", null=True, blank=True) + + + class Meta: + verbose_name_plural = u"基线水平" + + def __unicode__(self): + return "<BaseLine: %s>" % get_abstract(self.content) +# }}} + + +import signals +admin.site.register([ + Source, + Reference, + KnowledgePiece, + Guideline, + ClinicCondition, + BaseLine, + ResultContent, + BlogAnnotation, + ]) diff --git a/97suifangqa/apps/sciblog/search_indexes.py b/97suifangqa/apps/sciblog/search_indexes.py new file mode 100644 index 0000000..0037d5b --- /dev/null +++ b/97suifangqa/apps/sciblog/search_indexes.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +from haystack import indexes +import datetime +from .models import SciBlog, BlogAnnotation + + +class SciBlogIndex(indexes.SearchIndex, indexes.Indexable): + u''' + 科学文章索引 + ''' + text = indexes.CharField(document=True, use_template=True) + + def get_model(self): + return SciBlog + + def index_queryset(self, using=None): + u''' + 对所有文章进行索引 + ''' + return self.get_model().objects.all() + +class ProperNounIndex(indexes.SearchIndex, indexes.Indexable): + u''' + 专业名词索引 + ''' + text = indexes.CharField(document=True, use_template=True) + + def get_model(self): + return BlogAnnotation + + def index_queryset(self, using=None): + u''' + 返回所有类型为专业名词类型的注释 + ''' + return self.get_model().objects.propernouns() diff --git a/97suifangqa/apps/sciblog/signals.py b/97suifangqa/apps/sciblog/signals.py new file mode 100644 index 0000000..03e1968 --- /dev/null +++ b/97suifangqa/apps/sciblog/signals.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- + +from django.db.models.signals import pre_save, m2m_changed +from django.dispatch import receiver +from models import SciBlog, BlogAnnotation, ResultContent, Reference, BaseLine,\ + ClinicCondition, KnowledgePiece, Guideline, EndPoint + +import re + +def mark_keywords_in_textfield(model, fields, related_name='NONE'): + u''' + fields:需要处理的field名称 + handler:消息处理函数,对instance中的fields进行关键词过滤 + related_name:model实例在BlogAnnotation中的反向关系名称,如文章注释通过blogs属性关联到Sciblog + ''' + + @receiver(pre_save, sender = model, weak=False) + def handler(sender, **kwargs): + instance = kwargs['instance'] + for annotation in BlogAnnotation.objects.propernouns(): + keyword = annotation.firstkeyword() + for field in set(fields): + content = getattr(instance, field) + if keyword not in content: + continue + try: + relate = getattr(annotation, related_name) + relate.add(instance) + annotation.save() + except: + pass + +mark_keywords_in_textfield(SciBlog, ['abstract_result', 'method', 'aim', + 'abstractAE', 'treatment_content', + 'endpoint_content', 'detectionAssay'], 'blogs') +mark_keywords_in_textfield(ResultContent, ['abstract', 'content', 'card_content']) +mark_keywords_in_textfield(Reference, ['description']) +mark_keywords_in_textfield(KnowledgePiece, ['content']) +mark_keywords_in_textfield(Guideline, ['content']) +mark_keywords_in_textfield(EndPoint, ['content']) +mark_keywords_in_textfield(ClinicCondition, ['content']) +mark_keywords_in_textfield(BaseLine, ['content']) + +def mark_keywords_in_m2mfields(sender, **kwargs): + if kwargs['action'] != 'pre_add': + return + blog = kwargs['instance'] + model = kwargs['model'] + objs = model.objects.filter(pk__in = kwargs.get('pk_set') or []) + for annotation in BlogAnnotation.objects.propernouns(): + keyword = annotation.firstkeyword() + for obj in objs: + if keyword not in obj.content: + continue + annotation.blogs.add(blog) + annotation.save() + return + +for m2m in ['konwledge_piece', 'baseline', 'endpoints', 'clinic_conditions']: + m2m_changed.connect(mark_keywords_in_m2mfields, sender=getattr(SciBlog, m2m).through) diff --git a/97suifangqa/apps/sciblog/templatetags/__init__.py b/97suifangqa/apps/sciblog/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/sciblog/templatetags/__init__.py diff --git a/97suifangqa/apps/sciblog/templatetags/group_list.py b/97suifangqa/apps/sciblog/templatetags/group_list.py new file mode 100644 index 0000000..cb96d13 --- /dev/null +++ b/97suifangqa/apps/sciblog/templatetags/group_list.py @@ -0,0 +1,20 @@ +#import itertools + +from django import template +import itertools + +register = template.Library() + +@register.filter +def chunks(value, chunk_length): + """ + Breaks a list up into a list of lists of size <chunk_length> + """ + clen = int(chunk_length) + i = iter(value) + while True: + chunk = list(itertools.islice(i, clen)) + if chunk: + yield chunk + else: + break diff --git a/97suifangqa/apps/sciblog/tests.py b/97suifangqa/apps/sciblog/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/97suifangqa/apps/sciblog/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/97suifangqa/apps/sciblog/urls.py b/97suifangqa/apps/sciblog/urls.py new file mode 100644 index 0000000..722984b --- /dev/null +++ b/97suifangqa/apps/sciblog/urls.py @@ -0,0 +1,17 @@ +from django.conf.urls import patterns, url + +from .models import SciBlog, BlogAnnotation +from .views import * + +blog_blocks = '|'.join(['source','abstract', 'knowledge','follow', 'results', 'comment','refrences', 'test','results-detail']) +urlpatterns = patterns('', + url(r'^$', query, name='list_blogs'), + url(r'^result(\d+)/?$', show_result, name='blog_result'), + url(r'^index$', blog_index, name='index'), + url(r'^query/?$', query, name='query_blogs'), + url(r'^collection/?$', blog_collection, name='blog_collection'), + url(r'^(\d+)/(%s)?/?$' % blog_blocks, blog_detail, name='blog_detail'), + url(r'^(\d+)/collect/?$', add_user_to_m2m, name='blog_collect', kwargs={'m2m':'collected_by'}), + url(r'^(\d+)/understand/?$', add_user_to_m2m, name='blog_understood', kwargs={'m2m':'catched_by'}), + url(r'^annotation/(\d+)/collect/?$', add_user_to_m2m, name='annotation_collect', kwargs={'m2m':'collected_by', 'model': BlogAnnotation}), + ) diff --git a/97suifangqa/apps/sciblog/views.py b/97suifangqa/apps/sciblog/views.py new file mode 100644 index 0000000..7c6a4e7 --- /dev/null +++ b/97suifangqa/apps/sciblog/views.py @@ -0,0 +1,142 @@ +# -*- coding: utf-8 -*- + +import json +from django.http import HttpResponse, HttpResponseNotFound +from django.views.generic.list_detail import object_detail +from django.shortcuts import render, get_object_or_404 +from django.contrib.auth.decorators import login_required + +from .models import SciBlog, ResultContent +from .forms import SciBlogSearchForm, ProperNounSearchForm +from info.forms import QuerySearchForm +import itertools + +def blog_detail(request, blogid, block): + u''' + /blog/1/ + 一个简单的显式blog详细内容的view函数 + ''' + block = block or "source" + template = 'sciblog/blog_detail_%s.html' % block + blog = get_object_or_404(SciBlog, id=blogid) + + blockid = block + + # 用户已经收藏? + collected = request.user.is_authenticated() and blog.collected_by.filter(id=request.user.id) + + # 用户已经懂了? + understood = request.user.is_authenticated() and blog.catched_by.filter(id=request.user.id) + + # 与该文章相关的段落注释和专业名词 + annotations = blog.annotations.all_json(user=request.user) + return render(request, template, locals()) + + +def blog_index(request): + """ + Temporary handler for index page render + You might want to rename/relocate this + """ + return render(request,"sciblog/index.html",locals()) + +def generator_has_content(generator): + ''' + Returns (has_content, generator) based on the input generator + + If generator has at least one item, has_content is True. + Otherwise, has_content is False. + + generator will return all items in the input generator + ''' + #Simplified logic using itertools + checkgen, outputgen = itertools.tee(generator, 2) + has_content = False + for item in checkgen: + has_content = True + break + return (has_content, outputgen) + +def objects_of_sqs(sqs): + u''' + 返回search squery set结果对应的model object + ''' + return itertools.imap(lambda x: x.object, sqs) + +def limit(resultSet, count = 10): + return itertools.islice(resultSet, count) + +def query(request): + u''' + Blog查询 + ''' + + tab = 'list' + search_history = request.session.get('search_history', '').split('&&&') + + if request.method == 'GET': + form = SciBlogSearchForm(request.GET) + elif request.method == 'POST': + form = SciBlogSearchForm(request.POST) + + if form.is_valid() and form.cleaned_data['q']: + q = form.cleaned_data['q'] + search_history = [s for s in search_history if s != q] + search_history.insert(0, q) + search_history = search_history[0:5] #只保存最新的五条搜索记录 + request.session['search_history'] = '&&&'.join(search_history) + + results = form.search() + (has_blogs, blogs) = generator_has_content(limit(objects_of_sqs(results),10)) + questuinsqs = QuerySearchForm(request.GET).search() + (has_relate_questions, questions) = generator_has_content(limit(objects_of_sqs(questuinsqs),8)) + ppnounsqs = ProperNounSearchForm(request.GET).search() + (hasppnouns, ppnouns) = generator_has_content(limit(objects_of_sqs(ppnounsqs),10)) + return render(request, 'sciblog/blog_list.html', locals()) + else: + (has_blogs, blogs) = generator_has_content(limit(SciBlog.objects.all(),10)) + return render(request, 'sciblog/blog_list.html', locals()) + + +@login_required +def blog_collection(request): + blogs = request.user.blog_collection.all() + tab = 'collection' + has_blogs = len(blogs) > 0 + ppnouns = request.user.annotation_collection.all() + has_ppnouns = request.user.annotation_collection.count() > 0 + return render(request, 'sciblog/blog_list.html', locals()) + + +@login_required +def add_user_to_m2m(request, objid, m2m ='collected_by', model = SciBlog): + u''' + 响应收藏按钮和'懂了'按钮的点击 + ''' + + result = {"error":False, 'added':True} + result['id'] = objid + result['model'] = model._meta.verbose_name_plural + user = request.user + try: + obj = model.objects.get(id=objid) + m2m = getattr(obj, m2m) + if not m2m.filter(id = user.id): + # 还没有收藏或点击懂了 + m2m.add(user) + else: + # 已经收藏或点击了懂了 + m2m.remove(user) + result['added'] = False + result['times'] = m2m.count() + except: + result['error'] = True + result['added'] = False + + return HttpResponse(json.dumps(result), + mimetype = 'application/json') + +def show_result(request, resultid): + result = get_object_or_404(ResultContent, id=resultid) + blog = result.blog + return render(request, 'sciblog/blog_detail_results-detail.html', locals()) diff --git a/97suifangqa/apps/subjects/__init__.py b/97suifangqa/apps/subjects/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/apps/subjects/__init__.py diff --git a/97suifangqa/apps/subjects/models.py b/97suifangqa/apps/subjects/models.py new file mode 100644 index 0000000..9c4849a --- /dev/null +++ b/97suifangqa/apps/subjects/models.py @@ -0,0 +1,119 @@ +# -*- coding: utf-8 -*- + +from django.db import models +from django.contrib import admin + +# Create your models here. +class Sample(models.Model): + + life_condition = models.CharField(u"现状生活状况", max_length=400, blank=True) + side_effect_report = models.TextField(u"副作用报告", blank=True) + treatment_history = models.ManyToManyField("TreatmentHistory",verbose_name=u"用药历史", related_name="samples", null=True, blank=True) + resistance_history = models.ForeignKey("ResistanceHistory",verbose_name=u"耐药历史", related_name="samples", null=True, blank=True) + nation = models.ManyToManyField("location.Nation", verbose_name=u"国家", related_name="samples", null=True, blank=True) + gender_statistic = models.OneToOneField("GenderStatistic", verbose_name=u"性别统计", related_name="samples", null=True, blank=True) + age = models.OneToOneField("Age", verbose_name=u"年龄", related_name="samples", null=True, blank=True) + complexity = models.IntegerField(u"复杂程度") + + class Meta: + verbose_name_plural = u"人群" + + def __unicode__(self): + return "< Sample: %s >" % self.id + + +class Age(models.Model): + + average_age = models.FloatField(u"平均值") + statistical_confine = models.OneToOneField("indicator.StatisticalConfine", verbose_name=u"统计数值范围", related_name="ages", null=True, blank=True) + + class Meta: + verbose_name_plural = u"年龄" + + def __unicode__(self): + return "< Age: %s >" % self.id + + +class GenderStatistic(models.Model): + + male_value = models.IntegerField(u"男性人数") + female_vale = models.IntegerField(u"女性人数") + + class Meta: + verbose_name_plural = u"性别统计" + + def __unicode__(self): + return "< GenderStatistic: %s >" % self.id + + +class TreatmentHistory(models.Model): + + during_time = models.IntegerField(u"距离疗程开始日期") # 单位为周 + course = models.IntegerField(u"连续疗程") + interval = models.IntegerField(u"实际服用间隔时") + medicine = models.ForeignKey("medicine.Medicine", verbose_name=u"药物", related_name="treatment_history", null=True, blank=True) + + class Meta: + verbose_name_plural = u"用药历史" + + def __unicode__(self): + return "< TreatmentHistory: %s >" % self.id + + +class ResistanceHistory(models.Model): + + resistance_gene = models.CharField(u"耐药基因", max_length=100) + time = models.DateTimeField(auto_now_add=True, auto_now=True, verbose_name = u"检查出耐药距离现在的时间") + medicine = models.ForeignKey("medicine.Medicine", verbose_name=u"药物", related_name="treats", null=True, blank=True) + + + class Meta: + verbose_name_plural = u"耐药历史" + + def __unicode__(self): + return "< ResistanceHistory of %s >" % self.medicine.name + + +class BaseLineItem(models.Model): + + average = models.FloatField(u"平均数值") + statistical_confine = models.OneToOneField("indicator.StatisticalConfine", verbose_name=u"统计数值范围", related_name="base_line_items", null=True, blank=True) + indicator = models.ForeignKey("indicator.Indicator", verbose_name=u"医学指标", related_name="base_line_items", null=True, blank=True) + sample = models.ForeignKey("Sample", verbose_name=u"人群", related_name="base_line_items", null=True, blank=True) + + + class Meta: + verbose_name_plural = u"研究基线项目" + + def __unicode__(self): + return "< BaseLineItem: %s >" % self.id + + +class Result(models.Model): + + indicator = models.ForeignKey("indicator.Indicator", verbose_name=u"医学指标", related_name="results", null=True, blank=True) + + #TODO: 结果可能是chart或followup_curve两者任选其一,需添加代码,验证至少提供了其中一个的数据 + chart = models.OneToOneField("figure.Chart", verbose_name=u"柱状图", related_name="results", null=True, blank=True) + followup_curve = models.OneToOneField("figure.FollowupCurve", verbose_name=u"随访曲线", related_name="results", null=True, blank=True) + + + class Meta: + verbose_name_plural = u"实验结果" + + def __unicode__(self): + return "< Result: %s >" % self.id + + def get_figure(self): + return self.chart or self.followup_curve + + +admin.site.register([ + Sample, + Age, + GenderStatistic, + TreatmentHistory, + ResistanceHistory, + BaseLineItem, + Result, + ]) diff --git a/97suifangqa/apps/subjects/tests.py b/97suifangqa/apps/subjects/tests.py new file mode 100644 index 0000000..501deb7 --- /dev/null +++ b/97suifangqa/apps/subjects/tests.py @@ -0,0 +1,16 @@ +""" +This file demonstrates writing tests using the unittest module. These will pass +when you run "manage.py test". + +Replace this with more appropriate tests for your application. +""" + +from django.test import TestCase + + +class SimpleTest(TestCase): + def test_basic_addition(self): + """ + Tests that 1 + 1 always equals 2. + """ + self.assertEqual(1 + 1, 2) diff --git a/97suifangqa/apps/subjects/views.py b/97suifangqa/apps/subjects/views.py new file mode 100644 index 0000000..60f00ef --- /dev/null +++ b/97suifangqa/apps/subjects/views.py @@ -0,0 +1 @@ +# Create your views here. diff --git a/97suifangqa/apps/utils/__init__.py b/97suifangqa/apps/utils/__init__.py new file mode 100644 index 0000000..021fd1f --- /dev/null +++ b/97suifangqa/apps/utils/__init__.py @@ -0,0 +1,11 @@ +# -*- coding: utf8 -*- + +def get_abstract(long_str, max_length=20): + u''' + 获得一个长字符串的摘要 + 算法:取前max_length个字符,或者取第一个标点符号之前的字符串,哪一种更短,取哪一种 + ''' + + max_length = min(len(long_str), max_length) + return long_str[0:max_length] + diff --git a/97suifangqa/apps/utils/widget.py b/97suifangqa/apps/utils/widget.py new file mode 100644 index 0000000..77eefe9 --- /dev/null +++ b/97suifangqa/apps/utils/widget.py @@ -0,0 +1,40 @@ +# -*- coding: utf8 -*- +from django import forms +class MarkitUpWidget(forms.Textarea): + u''' + 一个将textarea改造成markitup的widget + ''' + class Media: + js = ( + 'jquery-1.9.1.min.js', + 'markitup/jquery.markitup.js', + 'markitup/sets/markdown/set.js', + 'markitup/markItUp_init.js', + ) + + css = { + 'screen': ( + 'markitup/skins/simple/style.css', + 'markitup/sets/markdown/style.css', + ) + } + + +class TinyMceWidget(forms.Textarea): + u''' + 一个将textarea改造成tinymce编辑器的widget + ''' + + class Media: + js = ( + 'jquery-1.9.1.min.js', + 'tinymce/js/tinymce/tinymce.min.js', + 'tinymce/js/tinymce/tinymce_init.js', + ) + + css = { + 'screen': ( + 'tinymce/css/custom_tinymce.css', + ) + } + diff --git a/97suifangqa/apps/utils/xpinyin/Mandarin.dat b/97suifangqa/apps/utils/xpinyin/Mandarin.dat new file mode 100644 index 0000000..6d7c115 --- /dev/null +++ b/97suifangqa/apps/utils/xpinyin/Mandarin.dat @@ -0,0 +1,25549 @@ +3400 QIU1 +3401 TIAN3 TIAN4 +3404 KUA4 +3405 WU3 +3406 YIN3 +340C SI4 YI2 +3416 YE4 +341C CHOU2 +3421 NUO4 +3424 QIU2 +3428 XU4 +3429 XING2 +342B XIONG1 +342C LIU2 +342D LIN3 +342E XIANG1 +342F YONG1 +3430 XIN4 +3431 ZHEN3 +3432 DAI4 +3433 WU4 +3434 PAN1 +3437 MA3 MA4 MIAN2 +3438 QIAN4 +3439 YI4 +343A ZHONG4 +343B N3 NEI4 NG3 +343C CHENG4 ZHENG3 +3441 ZHUO1 +3442 FANG3 PANG2 +3443 AO3 +3444 WU3 +3445 ZUO4 +3447 ZHOU4 +3448 DONG4 +3449 SU4 +344A YI4 +344B JIONG4 KONG3 QIONG2 +344C WANG1 KUANG1 +344D LEI3 LEI4 +344E NAO3 +344F ZHU4 +3454 XU3 +3458 JIE4 +3459 DIE2 YONG3 +345A NUO2 +345B SU4 +345C YI4 +345D LONG4 +345E YING4 +345F BENG3 BO2 PENG3 +3463 LAN2 +3464 MIAO2 +3465 YI4 +3466 LI4 +3467 JI4 +3468 YU3 +3469 LUO2 +346A CHAI2 +346E HUN2 +346F XU3 +3470 HUI4 +3471 RAO3 +3473 ZHOU4 +3475 HAN4 JI2 JIE2 ZHA3 ZI2 +3476 XI4 +3477 TAI4 TIAN4 ZHUAN4 +3478 AI3 YAO2 YOU2 +3479 HUI4 +347A JUN4 +347B MA4 +347C LVE4 +347D TANG2 +347E XIAO2 YAO2 +347F TIAO2 ZHAO4 +3480 ZHA3 +3481 YU3 YUN4 +3482 KU4 ZHUO2 +3483 ER4 +3484 NANG4 NEN4 RAN3 +3485 QI3 +3486 CHI4 KE4 XI4 XIAO4 YAN4 +3487 MU4 WU3 +3488 HAN4 +3489 TANG3 +348A SE4 +348C QIONG2 +348D LEI2 LEI3 +348E SA3 SA4 TAN4 +3491 HUI4 KUI3 +3492 PU2 +3493 TA4 +3494 SHU3 +3496 OU3 +3497 TAI2 +3499 MIAN2 +349A WEN3 +349B DIAO4 +349C YU2 YU3 +349D MIE4 WA4 +349E JUN4 KE3 +349F NIAO3 +34A0 XIE4 +34A1 YOU2 +34A4 SHE4 +34A6 LEI3 +34A7 LI4 +34A9 LUO3 +34AB JI4 +34B0 QUAN2 +34B2 CAI2 +34B3 LIANG3 +34B4 GU3 +34B5 MAO4 +34B7 GUA3 XING4 XU3 +34B8 SUI4 XUAN2 +34BB MAO4 +34BC MAN2 +34BE SHI4 +34BF LI2 LI4 +34C1 WANG3 +34C2 KOU4 +34C3 CHUI2 DU4 ZHA4 +34C4 ZHEN4 +34C8 BING4 BEI4 FEI4 YE4 +34C9 HUAN4 HUO2 HUO4 +34CA DONG4 +34CB GONG4 +34CE LIAN2 QIN3 QIN4 +34CF JIONG3 +34D0 LU4 +34D1 XING4 +34D3 NAN2 +34D4 XIE4 +34D6 BI4 BIE2 +34D7 JIE2 QI3 +34D8 SU4 +34DC YOU4 +34DD XING2 +34DE QI4 QIA4 YAO2 +34E0 DIAN4 +34E1 FU3 +34E2 LUO4 +34E3 QIA4 +34E4 JIE2 QIA4 +34E7 YAN3 +34E8 CI2 CI4 +34EA LANG3 +34ED HE2 +34EF LI2 +34F0 HUA4 +34F1 TOU2 +34F2 PIAN4 +34F4 JUN4 RUAN3 +34F5 E4 +34F6 QIE4 +34F7 YI4 +34F8 JUE2 ZHUO2 +34F9 RUI4 +34FA JIAN4 +34FC CHI4 CHONG4 +34FD CHONG2 +34FE CHI2 +3500 LVE4 QING2 +3502 LIN2 +3503 JUE2 PI4 +3504 SU4 +3505 XIAO4 +3506 CHAN2 +3509 ZHU2 +350A DAN3 +350B JIAN4 LAN2 LAN4 +350C ZHOU4 +350D DUO3 ZHA2 +350E XIE4 YI4 +350F LI4 +3511 CHI4 DAO4 QI4 SHUI4 +3512 XI2 +3513 JIAN3 XIAN4 +3515 JI2 YI4 +3517 FEI4 +3518 CHU4 +3519 BANG3 PENG2 +351A KOU3 +351C BA2 BO2 +351D LIANG3 +351E KUAI4 KUANG4 WANG4 +3520 HE2 JIA2 +3522 JUE2 +3523 LEI2 LEI4 +3524 SHEN3 +3525 PI2 +3526 YANG3 +3527 LV4 XUE4 +3528 BEI4 +3529 E4 +352A LU3 +352D CHE4 CHI2 YI2 +352E NUO2 +352F SUAN3 XUAN2 +3530 HENG2 +3531 YU3 +3533 GUI3 GUN4 HUAN2 JUE2 +3534 YI4 +3535 XIAN4 XUAN3 +3536 GONG4 +3537 LOU4 +3539 LE4 +353A SHI4 +353C SUN3 +353D YAO4 YOU3 +353E JIE2 +353F ZOU4 +3541 QUE4 +3542 YIN2 +3544 ZHI4 +3545 JIA3 +3546 HU4 +3547 LA2 +3548 HOU4 YI3 +3549 KE4 +354B JING4 QIN2 +354C AI4 +354E E4 KE4 KUN3 +354F CHU2 +3550 XIE3 +3551 CHU2 +3552 WEI2 WEI3 +3555 HUAN4 +3556 SU4 +3557 YOU4 +3559 JUN4 RUI4 +355A ZHAO3 +355B XU4 YOU3 YOU4 +355C SHI3 +355F KUI4 +3561 HE2 HE4 HUO4 +3562 GAI4 HAI4 JU4 LUN3 NOU3 +3563 YAN3 YAN4 +3564 QIU2 +3565 YI3 +3566 HUA4 +3568 FAN4 +3569 ZHANG4 +356A DAN3 +356B FANG3 +356C SONG4 +356D AO4 BI4 +356E FU3 TIAO4 +356F NEI4 +3570 HE4 +3571 YOU2 +3572 HUA2 YING2 +3574 CHEN2 +3575 GUO2 HUN2 LUO3 +3576 NG4 +3577 HUA4 +3578 LI4 +3579 FA2 +357A HAO2 +357B POU3 TOU4 +357D SI4 +3580 LE4 LUO4 +3581 LIN4 +3582 YI4 +3583 HOU3 +3585 XU4 +3586 QU2 QU3 +3587 ER2 +358F NEI4 +3590 WEI3 +3591 XIE4 +3592 TI2 +3593 HONG2 +3594 TUN3 +3595 BO4 NIE4 +3596 NIE4 +3597 YIN2 +359E WAI1 +359F SHOU4 +35A0 BA4 NUO4 +35A1 YE4 +35A2 JI2 QI2 +35A3 TOU4 +35A4 HAN2 +35A5 JIONG3 +35A6 DONG3 +35A7 WEN3 +35A8 LU4 +35A9 SOU3 +35AA GUO2 +35AB LING2 +35AD TIAN3 +35AE LUN2 +35B6 YE4 +35B7 SHI2 TI2 +35B8 XUE2 +35B9 FEN4 +35BA CHUN3 +35BB ROU2 +35BC DUO3 LIN2 MOU2 +35BD ZE2 ZEI2 +35BE E4 +35BF XIE2 +35C1 E4 +35C2 SHENG3 +35C3 WEN3 YIN4 +35C4 MAN2 MAN4 +35C5 HU2 +35C6 GE2 KAI4 +35C7 XIA2 +35C8 MAN4 +35C9 BI4 E4 LVE4 +35CA JI2 +35CB HOU2 +35CC ZHI4 +35D1 BAI4 +35D2 AI4 +35D5 GOU4 +35D6 DAN4 +35D7 BAI3 +35D8 BO2 FU4 +35D9 NA4 +35DA LI4 +35DB XIAO4 +35DC XIU4 +35E2 DONG4 +35E3 TI4 +35E4 CU4 +35E5 KUO4 +35E6 LAO2 +35E7 ZHI4 +35E8 AI3 +35E9 XI1 +35EB QIE4 +35F0 CHU4 CONG2 +35F1 JI2 +35F2 HUO4 XI4 +35F3 TA3 +35F4 YAN2 +35F5 XU4 +35F7 SAI3 +35FC YE4 +35FD XIANG3 +35FF XIA4 +3600 ZUO4 +3601 YI4 +3602 CI2 +3605 XIAN2 +3606 TAI2 +3607 RONG2 +3608 YI1 +3609 ZHI4 +360A YI4 +360B XIAN2 +360C JU4 +360D JI2 QI4 +360E HAN3 HAN4 +3610 PAO4 PENG3 +3611 LI4 +3613 LAN2 +3614 CAN3 SAI3 +3615 HAN3 LAN2 +3616 YAN2 +3619 YAN2 YAN3 +361A HAN3 +361C CHI3 CHOU2 CHU4 +361D NIAN3 NIE4 +361E HUO4 +3620 BI4 MI4 +3621 XIA2 +3622 WENG3 +3623 XUAN2 YUAN2 +3625 YOU2 +3626 QIN2 +3627 XU4 +3628 NEI4 +3629 BI4 +362A HAO4 +362B JING3 +362C AO4 +362D AO4 +3632 JU2 +3634 ZUO4 +3635 BU4 +3636 JIE2 +3637 AI4 +3638 ZANG4 +3639 CI2 +363A FA2 +363F NIE4 +3640 LIU4 +3641 MANG3 MEI2 MEI4 MU4 NA4 +3642 DUI4 +3644 BI4 +3645 BAO3 +3647 CHU4 +3648 HAN2 XIA4 +3649 TIAN3 +364A CHANG2 ZHANG4 +364F FU4 +3650 DUO3 +3651 YU3 +3652 YE3 +3653 KUI2 +3654 HAN2 +3655 KUAI4 +3657 KUAI4 +3659 LONG3 +365B BU3 +365C CHI2 TAI2 +365D XIE2 +365E NIE4 +365F LANG3 +3660 YI4 +3662 MAN2 MEN2 +3663 ZHANG4 +3664 XIA4 +3665 GUN3 +3668 JI4 QI2 +3669 LIAO2 +366A YE4 YI4 +366B JI2 +366C YIN2 +366E DA1 DA5 +366F YI4 +3670 XIE4 +3671 HAO4 +3672 YONG3 +3673 HAN3 HE2 KAN3 +3674 CHAN4 ZHAN4 +3675 TAI2 +3676 TANG2 +3677 ZHI2 +3678 BAO4 BO2 PU2 +3679 MENG2 +367A GUI4 KUI2 +367B CHAN2 QIE4 ZAN4 +367C LEI3 +367E XI4 XUE2 +3681 QIAO2 QIAO4 QU4 +3682 RANG2 +3683 YUN2 YUN4 +3685 LONG2 +3686 FU4 +3689 GU3 +368C HUA4 HUO3 +368D GUO2 KUI3 KUI4 +368F GAO3 +3690 TAO4 +3692 SHAN3 +3693 LAI2 LAI3 +3694 NIE4 +3695 FU2 +3696 GAO3 +3697 QIE2 XIE2 +3698 BAN4 +369B XI4 +369C XU4 YU4 +369D KUI2 +369E MENG3 SHEN3 YING4 YUN4 +369F CHUO4 +36A1 JI3 +36A2 NU2 +36A3 XIAO2 +36A4 YI4 +36A5 YU2 +36A6 YI2 +36A7 YAN3 +36A9 RAN3 +36AA HAO4 +36AB SHA4 ZHA4 +36AD YOU2 +36AF XIN2 XUN2 +36B0 BI3 +36B2 DIAN3 SHAN4 +36B4 BU4 +36B6 SI4 +36B7 ER3 NAI3 +36B9 MAO3 +36BA YUN4 +36BD QIAO3 +36BF PAO2 +36C2 NUO3 +36C3 JIE2 +36C5 ER4 +36C6 DUO3 +36CA DUO3 +36CD QIE4 +36CF OU4 QIU2 +36D0 SOU3 XUAN2 +36D1 CAN4 +36D2 DOU4 +36D4 PENG2 +36D5 YI4 +36D7 ZUO4 +36D8 PO4 +36D9 QIE4 QIN2 SHEN3 SHEN4 +36DA TONG3 +36DB XIN4 ZHEN4 +36DC YOU2 +36DD BEI4 BENG4 +36DE LONG4 +36E5 TA4 +36E6 LAN3 +36E7 MAN3 +36E8 QIANG3 +36E9 ZHOU2 +36EA YAN4 YUAN2 +36EC LU4 +36EE SAO3 +36EF MIAN3 +36F1 RUI4 WEI3 +36F2 FA4 +36F3 CHA4 YI4 +36F4 NAO3 +36F6 CHOU2 TAN2 TAN4 +36F8 SHU4 +36F9 PIAN2 +36FB KUI3 +36FC SHA4 +36FE XIAN2 +36FF ZHI4 +3703 LIAN4 LIAO2 MANG2 +3704 XUN2 +3705 XU4 +3706 MI4 +3707 HUI4 YE4 +3708 MU4 +370A PANG4 ZHAN3 +370B YI4 +370C GOU4 +370D TANG2 +370E QI2 XI4 +370F YUN2 +3710 SHU4 +3711 FU2 PO2 +3712 YI4 +3713 DA2 +3715 LIAN2 +3716 CAO2 +3717 CAN3 CHU2 XUAN4 +3718 JU4 +3719 LU4 +371A SU4 +371B NEN4 RUAN3 +371C AO4 +371D AN3 AN4 +371E QIAN4 +3723 RAN2 +3724 SHEN3 +3725 MAI2 MO2 +3726 HAN4 NIE4 SI4 XIE2 XIN2 +3727 YUE4 +3728 ER2 NAI2 +3729 AO4 BIE2 +372A XIAN3 +372B MA4 MEI2 MEI3 +372E LAN4 +3730 YUE4 +3731 DONG4 ZHI4 +3732 WENG3 YING2 +3733 HUAI2 +3734 MENG4 +3735 NIAO3 +3736 WAN3 +3737 MI2 NAI3 XIAN3 +3738 NIE4 +3739 QU2 +373A ZAN4 +373B LIAN4 +373C ZHI2 ZHI4 +373D ZI3 +373E HAI2 +373F XU4 +3740 HAO4 +3741 XUN2 +3742 ZHI4 +3743 FAN4 MIAN3 WAN3 +3744 CHUN2 QI4 RUN4 +3745 GOU4 +3747 CHUN2 +3748 LUAN2 +3749 ZHU4 +374A SHOU3 +374B LIAO2 LIAO3 LIU2 +374C JIE2 JIU4 ZHOU4 +374D XIE3 +374E DING4 +374F JIE4 +3750 RONG2 +3751 MANG2 PANG2 +3753 GE2 KE4 +3754 YAO4 +3755 NING2 +3756 YI2 YIN2 +3757 LANG2 +3758 YONG2 +3759 YIN2 +375B SU4 +375D LIN2 +375E YA4 +375F MAO2 MAO4 WU3 +3760 MING2 +3761 ZUI4 +3762 YU3 +3763 YE4 YI4 +3764 GOU4 +3765 MI3 +3766 JUN4 YA2 +3767 WEN3 +376A DIAN4 DING3 +376B LONG2 +376D XING3 +376E CUI4 +376F QIAO2 +3770 MIAN2 +3771 MENG4 +3772 QIN3 +3774 WAN2 +3775 DE2 AI4 +3776 AI4 DE2 +3778 BIAN4 +3779 NOU2 +377A LIAN2 LIN2 +377B JIN3 +377D CHUI2 SHUI3 ZHUI3 +377E ZUO3 +377F BO2 BO3 FU4 QIAN4 +3781 YAO4 +3782 TUI3 +3783 JI2 +3785 GUO3 +3786 JI3 +3787 WEI3 +378A XU4 +378B NIAN3 +378C YUN4 +378E BA3 FU2 PA2 +378F ZHE2 +3790 JU1 +3791 WEI3 +3792 XI4 XIE4 +3793 QI3 QI4 +3794 YI2 +3795 XIE4 +3796 CI4 +3797 QIU2 +3798 TUN2 +3799 NIAO4 +379A QI4 ZHA3 +379B JI3 +379F DIAN4 +37A0 LAO2 LIAO2 +37A1 ZHAN3 +37A4 YIN2 +37A5 CEN2 +37A6 JI3 +37A7 HUI4 +37A8 ZAI3 ZI3 +37A9 LAN2 +37AA NAO2 +37AB JU4 ZOU3 +37AC QIN4 +37AD DAI4 +37AF JIE2 +37B0 XU3 +37B2 YONG4 +37B3 DOU3 +37B4 CHI2 +37B6 MIN3 +37B7 HUANG2 +37B8 SUI4 +37B9 KE3 +37BA ZU2 +37BB HAO4 +37BC CHENG2 SHENG4 ZHE2 +37BD XUE4 +37BE NI2 YI4 +37BF CHI4 QI2 +37C0 LIAN2 +37C1 AN4 +37C2 CHI3 MU3 +37C4 XIANG2 +37C5 YANG2 +37C6 HUA2 +37C7 CUO2 CUO3 +37C8 QIU2 +37C9 LAO2 +37CA FU2 +37CB DUI4 +37CC MANG2 +37CD LANG2 +37CE TUO3 +37CF HAN2 +37D0 MANG3 +37D1 BO2 +37D3 QI2 +37D4 HAN2 +37D6 LONG4 +37D8 TIAO2 +37D9 LAO3 ZE2 ZHAI2 +37DA QI2 +37DB ZAN4 +37DC MI2 +37DD PEI2 POU3 +37DE ZHAN4 +37DF XIANG4 +37E0 GANG3 +37E2 QI2 +37E4 LU4 +37E6 YUN4 +37E7 E4 NIE4 XUN4 +37E8 QUAN2 +37E9 MIN2 MIN3 WEN3 +37EA WEI3 +37EB QUAN2 +37EC SHU3 SOU3 +37ED MIN2 +37F0 MING3 +37F1 YAO3 +37F2 JUE2 YUAN2 +37F3 LI4 +37F4 KUAI4 KUI3 WEI3 +37F5 GANG3 +37F6 YUAN2 +37F7 DA5 +37F9 LAO2 +37FA LOU2 +37FB QIAN4 +37FC AO2 +37FD BIAO3 +37FF MANG2 MANG3 +3800 DAO3 +3802 AO2 +3804 XI2 +3805 FU2 FU4 +3807 JIU4 +3808 RUN4 +3809 TONG2 +380A QU1 +380B E4 +380D JI2 JIE2 QI4 +380E JI2 QI4 +380F HUA2 +3810 JIAO4 +3811 ZUI4 +3812 BIAO3 +3813 MENG2 +3814 BAI4 +3815 WEI3 +3816 JI4 YI3 +3817 AO4 WO4 +3818 YU3 +3819 HAO2 +381A DUI4 ZHUO2 +381B WO4 +381C NI4 +381D CUAN2 +381F LI2 +3820 LU2 +3821 NIAO3 +3822 HUA4 HUAI2 HUAN4 MO4 +3823 LAI4 LI4 +3825 LV4 +3827 MI2 MI3 +3828 YU4 +382A JU4 +382D ZHAN3 ZHAN4 +382F YI3 +3831 JI4 QI3 +3832 BI3 +3834 REN4 +3836 FAN2 +3837 GE2 +3838 KU4 +3839 JIE4 +383A MIAO2 +383D TONG2 +383F CI3 +3840 BI4 +3841 KAI3 KUA4 +3842 LI4 +3844 SUN3 XUN2 +3845 NUO3 +3847 JI2 ZHE2 +3848 MEN2 WEN4 +3849 XIAN2 YAN2 +384A QIA4 QIAN3 +384B E4 YE2 +384C MAO4 MEI4 +384F TOU2 +3851 QIAO3 +3854 WU4 +3856 CHUANG2 +3857 TI2 +3858 LIAN2 +3859 BI4 PI2 +385B MANG2 +385C XUE3 +385D FENG4 FU2 +385E LEI3 LOU2 LV3 +3860 ZHENG4 +3861 CHU2 +3862 MAN4 +3863 LONG2 +3865 YIN3 +3867 ZHENG4 +3868 QIAN1 +3869 LUAN2 +386A NIE2 +386B YI4 +386D JI4 KUI2 +386E JI2 +386F ZHAI2 +3870 YU3 +3871 JIU3 +3872 HUAN2 +3873 DI3 ZHE2 ZHI3 +3875 LING2 +3876 JI4 ZHI3 +3877 BEN3 +3878 ZHA3 ZHA4 +3879 CI4 +387A DAN4 +387B LIAO4 +387C YI4 +387D ZHAO4 +387E XIAN4 +387F CHI4 +3880 CI4 ZI4 +3881 CHI3 +3882 YAN3 +3883 LANG2 +3884 DOU4 +3885 LONG4 +3886 CHAN2 +3888 TUI2 +3889 CHA2 +388A AI3 +388B CHI3 +388D YING2 YING3 +388E CHA4 ZE2 ZHAI2 ZHE2 +388F TOU2 +3891 TUI2 +3892 CHA2 +3893 YAO3 ZHANG4 +3894 ZONG3 +3897 QIAO4 +3898 LIAN2 +3899 QIN2 +389A LU3 +389B YAN4 +389E YI4 +389F CHAN3 +38A0 JIONG3 JUN4 +38A1 JIANG3 +38A3 JING4 QING2 +38A5 DONG4 +38A7 JUAN4 +38A8 HAN4 +38A9 DI4 +38AC HONG2 +38AE CHI2 +38AF MIN2 +38B0 BI4 HUAN2 +38B2 XUN4 +38B3 LU2 LV4 +38B5 SHE4 XIE2 +38B6 BI4 +38B8 BI4 +38BA XIAN2 +38BB WEI3 +38BC BIE4 +38BD ER3 +38BE JUAN4 +38C0 ZHEN4 +38C1 BEI4 +38C2 YI4 +38C3 YU3 YU4 +38C4 QU2 +38C5 ZAN4 +38C6 MI2 PEI4 +38C7 NI3 YI4 +38C8 SI4 +38CC SHAN4 +38CD TAI2 +38CE MU4 +38CF JING4 +38D0 BIAN4 +38D1 RONG2 +38D2 CENG4 +38D3 CAN4 +38D9 DI2 +38DA TONG2 TONG3 +38DB TA4 +38DC XING2 +38DE DUO2 DUO4 +38DF XI4 +38E0 TONG2 +38E2 TI2 +38E3 SHAN3 SHAN4 +38E4 JIAN4 +38E5 ZHI4 +38E7 YIN4 YONG3 +38EA HUAN3 KUO4 +38EB ZHONG3 +38EC QI4 +38EF XIE4 +38F0 XIE4 +38F1 ZE2 ZUO4 +38F2 WEI2 +38F5 TA4 +38F6 ZHAN1 +38F7 NING4 +38FB YI4 +38FC REN3 +38FD SHU4 +38FE CHA4 +38FF ZHUO2 +3901 MIAN3 TIAN3 +3902 JI2 +3903 FANG2 +3904 PEI4 +3905 AI4 +3906 FAN4 +3907 AO3 FO2 WU4 +3908 QIN4 +3909 QIA4 YA2 +390A XIAO4 YAO2 +390D QIAO3 +390F TONG2 +3911 YOU4 +3913 BEN4 +3914 FU2 FU4 +3915 CHU4 +3916 ZHU4 +3918 CHU4 CU4 ZHOU4 +391A HANG2 +391B NIN2 REN4 +391C JUE2 YU4 +391E CHA4 +391F KONG3 TOU4 +3920 LIE4 +3921 LI4 +3922 XU4 YU4 +3924 YU2 YU3 +3925 HAI4 +3926 LI4 +3927 HOU2 HOU4 +3928 GONG3 QIONG2 +3929 KE4 +392A YUAN4 +392B DE2 +392C HUI4 KUI4 +392E KUANG2 +392F JIONG3 JUN4 +3930 ZAN3 ZUO4 +3931 FU4 +3932 QIE4 QU4 +3933 BEI3 +3934 XI2 +3935 CI2 +3936 PANG2 +3938 XI4 +3939 QIU2 +393A HUANG3 +393D CHOU2 +393E SAN4 +3940 DE2 +3941 DE2 ZHI2 ZHOU4 +3942 TE4 +3943 MEN4 +3944 LING2 +3945 SHOU4 +3946 DIAN4 TUI4 +3947 CAN2 CAN4 +3948 DIE2 +3949 CHE4 CHI4 +394A PENG2 +394C JU2 +394D JI4 +394E LAI2 LI2 +394F TIAN3 +3950 YUAN4 +3952 CAI3 +3953 QI3 +3954 YU2 YU4 +3955 LIAN2 +395A YU2 +395B JI2 KE4 SU4 +395C WEI4 +395D MI3 MIAN3 +395E CUI4 QIAN4 SUI4 +395F XIE2 +3960 XU3 +3961 XI4 +3962 QIU2 +3963 HUI4 +3965 YU2 +3966 QIE4 XIA2 XIAN3 +3967 SHUN4 +3968 CHUI2 SHUI4 WEI3 +3969 DUO3 +396A LOU2 +396C PANG2 +396D TAI4 +396E ZHOU4 +396F YIN3 +3971 FEI3 +3972 SHEN4 YIN2 +3973 YUAN2 +3974 YI2 +3975 HUN4 +3976 SE4 +3977 YE4 YI4 +3978 MIN3 +3979 FEN3 +397A HE2 HE4 +397C YIN3 +397D CE4 ZE2 +397E NI4 +397F AO4 +3980 FENG2 +3981 LIAN2 +3982 CHANG2 TANG4 +3983 CHAN3 +3984 MA2 MI4 +3985 DI4 +3987 LU4 +3989 YI4 +398A HUA2 +398C TUI4 XU4 +398D E4 +398E HUA4 +398F SUN3 XUAN4 +3990 NI4 +3991 LIAN3 XIAN4 +3992 LI2 +3993 XIAN4 +3994 YAN4 +3995 LONG2 +3996 MEN4 +3997 JIAN4 JIN4 +399A BIAN3 +399B YU2 YU3 +399C HUO4 XUE4 +399D MIAO3 +399E CHOU2 +399F HAI4 MAI2 +39A1 LE4 +39A2 JIE2 QI4 +39A3 WEI4 +39A4 YI4 +39A5 HUAN2 XIAN3 +39A6 HE4 +39A7 CAN3 +39A8 LAN2 LAN4 +39A9 YIN3 +39AA XIE4 +39AC LUO3 +39AD LING2 +39AE QIAN2 +39AF HUO4 +39B1 WO3 +39B4 GE2 QIA4 +39B6 DIE2 +39B7 YONG3 +39B8 JI3 +39B9 ANG4 YANG2 YING3 +39BA RU3 RU4 +39BB XI2 ZHE2 +39BC SHUANG4 +39BD XU4 YU4 +39BE YI2 +39BF HU4 +39C0 JI2 +39C1 QU4 +39C2 TIAN2 +39C4 QIAN3 QIU2 +39C5 MU4 +39C7 MAO3 +39C8 YIN3 YIN4 +39C9 GAI4 KUI4 +39CA BA2 +39CB XIAN3 XUAN3 +39CC MAO4 +39CD FANG3 +39CE YA2 +39D0 SONG3 +39D1 WEI2 WEI3 +39D2 XUE2 YU4 YUE4 +39D4 GUAI4 +39D5 JIU4 LIU3 YU2 +39D6 E4 +39D7 ZI3 +39D8 CUI4 NAO3 ZI4 +39D9 BI4 +39DA WA3 +39DC LIE4 +39DF KUAI3 +39E1 HAI4 +39E3 ZHU4 +39E4 CHONG4 +39E5 XIAN3 +39E6 XUAN4 +39E8 QIU2 +39E9 PEI4 +39EA GUI3 +39EB ER2 +39EC GONG3 +39ED QIONG2 +39EF LAO3 +39F0 LI4 +39F1 CHEN4 NA2 NI4 TIAN4 +39F2 SAN3 +39F3 BO2 ZHUO4 +39F4 WO3 +39F5 POU2 POU3 +39F7 DUO4 TUN4 +39F9 TE4 +39FA TA4 +39FB ZHI3 ZHUO2 ZU2 +39FC BIAO4 +39FD GU4 HU2 +3A00 BING3 +3A01 ZHI2 ZHI4 +3A02 DONG3 +3A03 CHENG2 DUI3 +3A04 ZHAO4 +3A05 NEI4 RUI4 +3A06 LIN3 +3A07 PO2 +3A08 JI3 +3A09 MIN3 +3A0A WEI3 +3A0B CHE3 LE4 ZHEN4 +3A0C GOU4 RU2 RU3 +3A0E RU2 RUAN2 +3A10 BU3 PEI2 +3A12 KUI2 WEI3 XIE2 +3A13 LAO2 LIAO2 +3A14 HAN4 +3A15 YING2 +3A16 ZHI4 +3A17 JIE2 +3A18 XING3 +3A19 XIE2 +3A1A XUN2 +3A1B SHAN3 +3A1C QIAN2 +3A1D XIE4 +3A1E SU4 +3A1F HAI2 +3A20 MI4 +3A21 HUN2 +3A24 HUI4 KUAI3 WAI4 +3A25 NA4 +3A26 SONG3 +3A27 BEN4 +3A28 LIU4 +3A29 JIE2 +3A2A HUANG4 +3A2B LAN3 +3A2D HU4 +3A2E DOU1 +3A2F HUO4 KUO4 +3A30 GE2 GUN3 HUN4 HUO4 JIE2 +3A31 YAO2 +3A32 CE4 +3A33 GUI3 +3A34 JIAN4 +3A35 JIAN3 +3A36 CHOU2 DAO3 ZHOU3 ZHOU4 +3A37 JIN4 +3A38 MA4 +3A39 HUI4 +3A3A MEN2 MI4 MIAN3 +3A3B CAN2 +3A3C LVE4 +3A3D PI3 PI4 QIAO3 +3A3E YANG4 +3A3F JU4 +3A40 JU4 +3A41 QUE4 +3A44 SHAI1 +3A46 JIU4 +3A47 HUA4 HUO4 +3A48 XIAN4 YUN3 +3A49 XIE2 +3A4B SU4 +3A4C FEI4 +3A4D CE4 +3A4E YE4 +3A52 QIN2 +3A53 HUI3 +3A54 TUN2 +3A56 QIANG2 TIAO2 +3A57 XI2 XIE2 +3A58 YI3 +3A5A MENG2 +3A5B TUAN2 +3A5C LAN3 +3A5D HAO2 +3A5E CI4 +3A5F ZHAI4 +3A60 PIAO3 +3A61 LUO3 +3A62 MI2 MIE4 +3A66 XIE2 +3A67 BO2 +3A68 HUI4 +3A69 QI3 QING3 +3A6A XIE2 XIN4 YE2 +3A6D BO2 JIAO3 XIAO4 +3A6E QIAN2 XIAN2 +3A6F BAN3 PAN2 PO2 +3A70 JIAO3 QIAO2 XIU3 +3A71 JUE2 +3A72 KUN3 QUAN2 +3A73 SONG3 +3A74 JU2 +3A75 E4 +3A76 NIE4 NING3 +3A78 DIE2 +3A79 DIE2 ZHA2 +3A7B GUI3 +3A7D QI2 +3A7E CHUI2 +3A80 YU2 +3A81 QIN2 +3A83 KE3 KE4 +3A84 FU2 +3A86 DI3 +3A87 XIAN4 +3A88 GUI4 +3A89 HE2 +3A8A QUN2 +3A8B HAN4 +3A8C TONG3 YU2 YU3 +3A8D BO2 +3A8E SHAN3 +3A8F BI3 +3A90 LU4 +3A91 YE4 +3A92 NI2 +3A93 CHUAI2 +3A94 SAN4 TAN2 +3A95 DIAO4 +3A96 LU4 +3A97 TOU3 +3A98 LIAN3 +3A99 KE3 KE4 KUO4 +3A9A SAN4 +3A9B ZHEN3 +3A9C CHUAI3 +3A9D LIAN4 +3A9E MAO4 +3AA0 QIAN4 +3AA1 KE3 +3AA2 SHAO3 +3AA3 QIAO4 +3AA4 BI4 +3AA6 YIN4 +3AA8 SHAN4 +3AA9 SU4 +3AAA SA4 XI3 +3AAB RUI4 +3AAC ZHUO2 +3AAD LU2 +3AAE LING2 +3AAF CHA2 JU3 QU2 +3AB1 HUAN4 +3AB4 JIA2 +3AB5 BAN4 +3AB6 HU2 +3AB7 DOU3 +3AB9 LOU3 LU4 +3ABB JUAN4 +3ABC KE3 +3ABD SUO3 SUO4 +3ABE GE2 LUO4 +3ABF ZHE2 +3AC0 DING3 +3AC1 DUAN4 +3AC2 ZHU4 +3AC3 YAN3 +3AC4 PANG2 +3AC5 CHA2 QI2 SHI2 +3ACA YI3 +3ACD YOU2 +3ACE GUN3 KUAI4 +3ACF YAO3 +3AD0 YAO3 +3AD1 SHI2 ZHI3 +3AD2 GONG3 +3AD3 QI3 QI4 +3AD4 GEN4 +3AD7 HOU4 +3AD8 MI4 MIAN3 +3AD9 FU2 +3ADA HU1 +3ADB GUANG4 KUANG2 KUANG4 MU3 +3ADC DAN4 TAN3 +3ADF YAN2 +3AE2 QU4 +3AE4 CHANG3 ZHAO4 +3AE5 MING3 +3AE7 BAO4 +3AEB XIAN3 +3AEF MAO4 +3AF0 LANG3 +3AF1 NAN3 +3AF2 PEI4 +3AF3 CHEN2 +3AF6 COU3 ZHOU3 +3AF8 QIE4 +3AF9 DAI4 SHU4 YU2 +3AFB KUN4 +3AFC DIE2 ZHE2 ZHI4 +3AFD LU4 +3B02 YU2 +3B03 TAI2 +3B04 CHAN4 +3B05 MAN4 +3B06 MIAN2 MIAN4 MIN3 +3B07 HUAN4 +3B09 NUAN3 RUO4 +3B0A HUAN3 +3B0B HOU2 +3B0C JING4 +3B0D BO2 +3B0E XIAN3 +3B0F LI4 +3B10 JIN3 JIN4 XING2 YING3 +3B12 MANG3 MAO4 +3B13 PIAO4 +3B14 HAO2 +3B15 YANG2 +3B17 XIAN4 +3B18 SU4 +3B19 WEI3 +3B1A CHE4 +3B1C JIN4 +3B1D CENG2 +3B1E HE4 +3B20 SHAI4 +3B21 LING2 +3B23 DUI4 +3B25 PU4 +3B26 YUE4 +3B27 BO2 +3B29 HUI4 +3B2A DIE2 ZHI4 +3B2B YAN4 +3B2C JU4 +3B2D JIAO4 SHAN3 YAO3 +3B2E KUAI4 NAN4 +3B2F LIE4 +3B30 YU2 +3B31 TI4 +3B33 WU3 +3B34 HONG3 +3B35 XIAO2 +3B36 HAO4 +3B3B HUANG3 +3B3C FU4 +3B3F DUN4 +3B41 RENG2 +3B42 JIAO3 +3B44 XIN4 +3B47 YUAN4 +3B48 JUE2 KUAI4 +3B49 HUA2 +3B4B BANG4 +3B4C MOU2 YU2 +3B4F WEI3 +3B51 MEI4 +3B52 SI4 +3B53 BIAN4 +3B54 LU2 +3B58 HE2 +3B59 SHE2 ZHE2 +3B5A LV3 +3B5B PAI4 +3B5C RONG2 +3B5D QIU2 +3B5E LIE4 +3B5F GONG3 +3B60 XIAN3 +3B61 XI4 XIN4 +3B64 NIAO3 +3B68 XIE2 YE2 +3B69 LEI4 LING2 +3B6B CUAN2 CUO2 ZHEN4 +3B6C ZHUO2 +3B6D FEI4 +3B6E ZUO4 +3B6F DIE2 NA4 ZHE2 +3B70 JI4 JUE2 ZUI3 +3B71 HE2 XIA2 +3B72 JI2 +3B78 TU2 +3B79 XIAN2 +3B7A YAN3 +3B7B TANG2 +3B7C TA4 +3B7D DI3 +3B7E JUE2 YUE4 +3B7F ANG2 +3B80 HAN2 +3B81 YAO2 +3B82 JU2 +3B83 RUI2 +3B84 BANG3 BI4 PENG2 +3B86 NIE4 +3B87 TIAN4 +3B88 NAI4 +3B8B YOU3 YU4 +3B8C MIAN2 MIN3 +3B8F NAI4 +3B90 XING3 +3B91 QI4 +3B93 GEN4 +3B94 TONG2 +3B95 ER2 RUAN3 +3B96 JIA2 +3B97 QIN2 +3B98 MAO4 +3B99 E4 +3B9A LI4 +3B9B CHI2 +3B9D HE2 LUO4 +3B9E JIE2 NI2 YA2 +3B9F JI2 NIAN3 NV4 PENG4 ROU4 +3BA1 GUAN4 +3BA2 HOU2 +3BA3 GAI4 ZE2 +3BA5 FEN4 +3BA6 SE4 SUO3 +3BA8 JI2 JI4 +3BAA QIONG2 +3BAB HE2 +3BAD XIAN2 +3BAE JIE2 +3BAF HUA2 HUN2 KUAN3 +3BB0 BI2 PI2 +3BB3 ZHEN4 +3BB6 SHI4 SHUO4 +3BB8 SONG4 +3BB9 ZHI3 +3BBA BEN3 +3BBE LANG3 +3BBF BI4 +3BC0 XIAN3 XUAN4 +3BC1 BANG4 +3BC2 DAI4 +3BC5 PI2 +3BC6 CHAN3 +3BC7 BI4 +3BC8 SU4 +3BC9 HUO4 +3BCA HEN2 +3BCB YING3 +3BCC CHUAN2 +3BCD JIANG3 +3BCE NEN4 +3BCF GU3 +3BD0 FANG3 TUO3 +3BD3 TA4 +3BD4 CUI4 +3BD6 DE2 +3BD7 RAN3 SHUN4 XIAN2 XIAN4 +3BD8 KUAN3 +3BD9 CHE4 +3BDA DA2 +3BDB HU2 HUO4 +3BDC CUI4 +3BDD LU4 +3BDE JUAN4 YUE4 +3BDF LU4 +3BE0 QIAN4 XIAN4 XUN2 +3BE1 PAO4 +3BE2 ZHEN4 +3BE4 LI4 +3BE5 CAO2 ZHA2 +3BE6 QI2 +3BE9 TI4 +3BEA LING2 +3BEB QU2 +3BEC LIAN3 +3BED LU3 +3BEE SHU3 +3BEF GONG4 +3BF0 ZHE2 ZHI2 +3BF1 BIAO3 PIAO2 +3BF2 JIN4 +3BF3 QING2 +3BF6 ZONG1 +3BF7 PU2 +3BF8 JIN3 +3BF9 BIAO3 +3BFA JIAN4 +3BFB GUN3 HUN4 +3BFF LIE4 +3C00 LI2 +3C01 LUO3 +3C02 SHEN3 SUN3 +3C03 MIAN2 +3C04 JIAN4 +3C05 DI2 +3C06 BEI4 +3C08 LIAN3 +3C0A XUN2 +3C0B PIN2 +3C0C QUE4 +3C0D LONG2 +3C0E ZUI4 +3C10 JUE2 KUI2 LEI3 TUI3 TUO3 +3C12 SHE2 XUE2 +3C14 XIE4 +3C16 LAN3 +3C17 CU4 +3C18 YI2 +3C19 NUO2 +3C1A LI2 +3C1B YUE4 +3C1D YI3 +3C1F JI4 +3C20 KANG4 +3C21 XIE4 +3C23 ZI4 +3C24 KE3 QIA4 +3C25 HUI4 +3C26 QU4 +3C2A WA2 +3C2C XUN2 +3C2E SHEN4 +3C2F KOU4 +3C30 QIE4 +3C31 SHA4 +3C32 XU4 YU4 +3C33 YA4 +3C34 PO2 POU3 +3C35 ZU2 +3C36 YOU3 +3C37 ZI4 +3C38 LIAN3 LIAN4 LUAN3 +3C39 JIN4 +3C3A XIA2 +3C3B YI3 +3C3C QIE4 +3C3D MI3 YAN4 +3C3E JIAO4 +3C40 CHI3 CHUAI4 +3C41 SHI4 +3C43 YIN3 +3C44 MO4 +3C45 YI4 +3C47 SE4 +3C48 JIN4 +3C49 YE4 +3C4B QUE4 +3C4C CHE4 YAN3 YE2 +3C4D LUAN2 +3C4F ZHENG4 +3C56 CUI4 +3C58 AN4 YAN3 +3C59 XIU3 +3C5A CAN2 HAI4 SHAN4 +3C5B CHUAN3 +3C5C ZHA2 +3C5E JI2 +3C5F BO2 PI2 PI3 +3C62 LANG2 +3C63 TUI3 +3C65 LING2 +3C66 E4 GUI4 JI3 +3C67 WO4 +3C68 LIAN4 +3C69 DU2 +3C6A MEN4 +3C6B LAN4 +3C6C WEI3 +3C6D DUAN4 +3C6E KUAI4 KUI4 +3C6F AI2 BEI4 JI4 JIAN4 SHAN3 SHEN4 YI3 +3C70 ZAI3 +3C71 HUI4 WU4 XI4 +3C72 YI4 +3C73 MO4 +3C74 ZI4 +3C75 BEN4 FEN4 +3C76 BENG4 JIAO4 PENG2 QIAO3 RU4 +3C78 BI4 BIE2 +3C79 LI4 SUAN4 XIAN4 +3C7A LU2 +3C7B LUO3 +3C7D DAN4 QIN2 +3C7F QUE4 +3C80 CHEN2 +3C82 CHENG2 +3C83 JIU4 +3C84 KOU4 +3C85 JI4 +3C86 LING2 +3C88 SHAO2 +3C89 KAI4 KE2 +3C8A RUI4 +3C8B CHUO4 ZHUO2 ZU2 +3C8C NENG4 +3C8E LOU2 +3C8F BAO3 PIAO3 PIN2 PING4 +3C92 BAO4 +3C93 RONG2 +3C95 LEI4 +3C98 QU2 +3C9B ZHI3 +3C9C TAN2 TAN3 +3C9D RONG3 +3C9E ZU2 +3C9F YING3 +3CA0 MAO2 +3CA1 NAI4 NI4 +3CA2 BIAN4 BIE2 +3CA5 TANG2 +3CA6 HAN4 HE3 +3CA7 ZAO4 +3CA8 RONG2 +3CAB PU2 +3CAD TAN3 +3CAF RAN2 +3CB0 NING2 +3CB1 LIE4 +3CB2 DIE2 YI4 +3CB3 DIE2 +3CB4 ZHONG4 ZHOU4 +3CB6 LV4 +3CB7 DAN4 +3CB9 GUI3 QIU2 +3CBA JI2 KE4 LEI2 +3CBB NI4 +3CBC YI4 +3CBD NIAN4 REN3 XIAN4 +3CBE YU3 YU4 +3CBF WANG3 +3CC0 GUO4 KAI3 XI4 +3CC1 ZE4 +3CC2 YAN2 +3CC3 CUI4 +3CC4 XIAN2 +3CC5 JIAO3 LIU2 +3CC6 SHU3 TOU3 +3CC7 FU4 +3CC8 PEI4 +3CCD BU4 +3CCE BIAN4 FAN4 +3CCF CHI3 SHI4 +3CD0 SA4 ZHA2 ZHA3 +3CD1 YI4 +3CD2 BIAN4 FA3 +3CD4 DUI4 +3CD5 LAN2 +3CD7 CHAI4 +3CD9 XUAN4 +3CDA YU4 +3CDB YU2 +3CE0 TA4 +3CE5 JU4 LONG4 +3CE6 XIE4 +3CE7 XI2 +3CE8 JIAN3 ZA2 ZAN3 +3CEA PAN4 PI4 +3CEB TA4 +3CEC XUAN2 +3CED XIAN2 +3CEE NIAO4 +3CF4 MI4 +3CF5 JI4 +3CF6 GOU4 +3CF7 WEN3 +3CF9 WANG3 +3CFA YOU2 +3CFB ZE2 +3CFC BI4 +3CFD MI3 +3CFF XIE4 +3D00 FAN4 +3D01 YI4 +3D03 LEI4 LI4 +3D04 YING2 +3D06 JIN4 XING4 +3D07 SHE4 +3D08 YIN4 +3D09 JI3 +3D0B SU4 +3D0F WANG3 +3D10 MIAN4 +3D11 SU4 +3D12 YI4 +3D13 ZAI3 +3D14 SE4 YI4 +3D15 JI2 +3D16 LUO4 +3D18 MAO4 +3D19 ZHA2 +3D1A SUI4 +3D1B ZHI4 +3D1C BIAN4 +3D1D LI2 +3D25 QIAO4 +3D26 GUAN4 +3D28 ZHEN4 +3D2A NIE4 +3D2B JUN4 +3D2C XIE4 +3D2D YAO3 +3D2E XIE4 +3D30 NENG2 +3D33 LONG3 +3D34 CHEN2 +3D35 MI4 +3D36 QUE4 +3D38 NA4 SHAN3 YE4 +3D3C SU4 +3D3D XIE4 YIN4 +3D3E BO2 +3D3F DING3 +3D40 CUAN4 ZU2 +3D42 CHUANG3 SHU4 +3D43 CHE4 MANG2 SHE2 TAN2 TUO4 ZUI4 +3D44 HAN4 QIA4 YU4 +3D45 DAN4 TAN4 +3D46 HAO4 +3D4A SHEN3 ZHE2 +3D4B MI4 +3D4C CHAN4 QIONG2 XUN2 +3D4D MEN4 +3D4E HAN3 JIAN4 KAN3 +3D4F CUI3 +3D50 JUE2 +3D51 HE4 +3D52 FEI4 +3D53 SHI2 +3D54 CHE3 CHE4 +3D55 SHEN4 +3D56 NV4 +3D57 FU4 PAN2 PING2 +3D58 MAN4 +3D5D YI4 +3D5E CHOU2 +3D61 BAO2 +3D62 LEI2 LEI3 +3D63 KE3 LUO3 +3D64 DIAN4 SHA4 XIA2 +3D65 BI4 MI4 +3D66 SUI2 +3D67 GE2 +3D68 BI4 PI4 +3D69 YI4 +3D6A XIAN2 +3D6B NI3 YI4 +3D6C YING2 +3D6D ZHU3 +3D6E CHUN2 WEN3 +3D6F FENG2 +3D70 XU4 +3D71 PIAO3 +3D72 WU3 +3D73 LIAO2 LIU2 +3D74 CANG2 +3D75 ZOU4 +3D77 BIAN4 +3D78 YAO4 YUE4 +3D79 HUAN2 +3D7A PAI2 PAI4 +3D7B SOU4 +3D7D DUI4 LEI3 +3D7E JING4 QING4 +3D7F XI2 +3D81 GUO2 +3D84 YAN2 +3D85 XUE2 +3D86 CHU2 +3D87 HENG2 +3D88 YING2 YING4 +3D8C LIAN2 +3D8D XIAN3 +3D8E HUAN2 +3D91 LIAN4 +3D92 SHAN3 SHEN3 TAN4 +3D93 CANG2 +3D94 BEI4 +3D95 JIAN3 +3D96 SHU4 +3D97 FAN4 +3D98 DIAN4 +3D9A BA4 +3D9B YU2 +3D9E NANG3 +3D9F LEI3 +3DA0 YI4 +3DA1 DAI4 HUO3 ZUO2 +3DA3 CHAN2 +3DA4 CHAO3 +3DA6 JIN4 +3DA7 NEN4 +3DAB LIAO3 LIAO4 +3DAC MEI2 MO4 +3DAD JIU4 YOU3 +3DAF LIU4 +3DB0 HAN2 +3DB2 YONG4 +3DB3 JIN4 +3DB4 CHI3 SHI3 +3DB5 REN4 +3DB6 NONG2 +3DB9 HONG4 +3DBA TIAN4 +3DBF BO2 +3DC0 QIONG2 +3DC2 SHU4 +3DC3 CUI3 +3DC4 HUI4 +3DC5 CHAO3 MIAO3 +3DC6 DOU4 FU4 +3DC7 GUAI4 KUI2 +3DC8 E4 +3DC9 WEI4 YU4 YUN4 +3DCA FEN2 +3DCB TAN2 TAN3 +3DCD LUN2 +3DCE HE4 HONG2 XIE2 +3DCF YONG3 +3DD0 HUI3 +3DD2 YU2 +3DD3 ZONG3 +3DD4 YAN4 +3DD5 QIU2 +3DD6 ZHAO4 +3DD7 JIONG3 +3DD8 TAI2 +3DDF TUI4 +3DE0 LIN2 +3DE1 JIONG3 +3DE2 ZHA3 +3DE4 HE4 HU4 XUE4 +3DE6 XU4 +3DEA CUI4 ZUAN3 +3DEB QING3 +3DEC MO4 +3DEF BENG4 +3DF0 LI2 +3DF3 YAN4 +3DF4 GE2 LI4 +3DF5 MO4 +3DF6 BEI4 BI4 +3DF7 JUAN3 +3DF8 DIE2 YE4 +3DF9 SHAO4 +3DFB WU2 +3DFC YAN4 +3DFE JUE2 +3E00 TAI2 +3E01 HAN3 HAN4 +3E03 DIAN3 +3E04 JI4 JIE2 +3E05 JIE2 +3E09 XIE4 +3E0A LA4 LAI4 LIE4 +3E0B FAN2 +3E0C HUO4 +3E0D XI4 +3E0E NIE4 +3E0F MI2 +3E10 RAN2 +3E11 CUAN4 +3E12 YIN2 +3E13 MI4 +3E15 JUE2 +3E17 TONG2 +3E18 WAN4 +3E1A LI3 +3E1B SHAO2 SHUO4 +3E1C KONG4 +3E1D KAN3 +3E1E BAN3 +3E20 TIAO3 +3E22 BEI4 +3E23 YE4 YI4 +3E24 PIAN4 +3E25 CHAN2 +3E26 HU4 +3E27 KEN4 YIN2 +3E29 AN4 +3E2A CHUN2 +3E2B QIAN2 +3E2C BEI4 FEI4 PEI4 +3E2E FEN2 +3E30 TUO2 +3E31 TUO2 +3E32 ZUO2 ZUO4 +3E33 LING2 +3E35 GUI3 WEI3 +3E37 SHI4 +3E38 HOU3 OU3 +3E39 LIE4 +3E3B SI4 +3E3D BEI4 +3E3E REN4 +3E3F DU2 +3E40 BO2 +3E41 LIANG2 +3E42 CI4 QIAN3 +3E43 BI4 FEI4 +3E44 JI4 QI4 +3E45 ZONG3 +3E47 HE2 +3E48 LI2 MAO2 +3E49 YUAN2 +3E4A YUE4 +3E4C CHAN3 SHENG4 +3E4D DI2 DU2 +3E4E LEI2 +3E4F JIN3 +3E50 CHONG2 ZHOU4 +3E51 SI4 YI2 +3E52 PU3 +3E53 YI4 +3E56 HUAN4 +3E57 TAO2 +3E58 RU2 RU4 RUI2 +3E59 YING2 +3E5A YING2 +3E5B RAO2 +3E5C YIN2 +3E5D SHI4 +3E5E YIN2 YIN3 +3E5F JUE2 +3E60 TUN2 +3E61 XUAN2 XUAN4 +3E64 QIE4 QUE4 +3E65 ZHU4 +3E68 YOU4 +3E6B XI4 YI2 +3E6C SHI3 +3E6D YI4 +3E6E MO4 +3E71 HU2 QUE4 RAN3 +3E72 XIAO4 +3E73 WU2 +3E75 JING4 +3E76 TING2 +3E77 SHI3 XIN4 +3E78 NI2 +3E7A TA4 +3E7C CHU3 JU2 YU4 +3E7D CHAN3 SHAN4 +3E7E PIAO3 +3E7F DIAO3 ZHAO4 ZHUO2 +3E80 NAO2 +3E81 NAO3 +3E82 GAN3 JIAN4 YAN2 +3E83 GOU3 +3E84 YU3 +3E85 HOU2 +3E89 HU4 +3E8A YANG4 +3E8C XIAN4 +3E8E RONG2 +3E8F LOU2 +3E90 ZHAO3 +3E91 CAN2 +3E92 LIAO4 YAO2 +3E93 PIAO4 +3E94 HAI4 WEI4 +3E95 FAN2 +3E96 HAN3 +3E97 DAN4 YAN2 +3E98 ZHAN4 +3E9A TA3 +3E9B ZHU4 +3E9C BAN3 NONG2 WAN4 +3E9D JIAN4 +3E9E YU2 +3E9F ZHUO2 +3EA0 YOU4 YU4 +3EA1 LI4 +3EA5 CHAN2 TAN2 +3EA6 LIAN2 +3EA9 JIU4 SE4 +3EAA PU2 +3EAB QIU2 +3EAC GONG3 +3EAD ZI3 +3EAE YU2 +3EB1 RENG2 +3EB2 NIU3 +3EB3 MEI2 +3EB5 JIU2 +3EB7 XU4 +3EB8 PING2 +3EB9 BIAN4 +3EBA MAO4 +3EBF YI2 +3EC0 YOU2 YU2 +3EC2 PING2 +3EC4 BAO3 +3EC5 HUI4 KUAI4 +3EC9 BU4 +3ECA MANG2 MEN2 MENG4 +3ECB LA4 LEI4 +3ECC TU2 +3ECD WU2 +3ECE LI4 SE4 +3ECF LING2 LING3 +3ED1 JI4 +3ED2 JUN4 +3ED4 DUO3 RUI4 +3ED5 JUE2 +3ED6 DAI4 +3ED7 BEI4 +3EDD LA4 +3EDE BIAN4 FEN4 PIN4 +3EDF SUI2 +3EE0 TU2 +3EE1 DIE2 JUE2 +3EE7 DUO4 HE2 +3EEA SUI4 +3EEB BI4 +3EEC TU2 +3EED SE4 ZE2 +3EEE CAN4 +3EEF TU2 +3EF0 MIAN3 RE4 WEI4 YU4 +3EF2 LV3 +3EF5 ZHAN4 +3EF6 BI3 BI4 +3EF7 JI2 +3EF8 CEN2 JIN4 XIN2 +3EFA LI4 LIE4 +3EFD SUI4 +3EFF SHU3 +3F02 E2 WEN4 YUAN3 +3F07 QIONG2 +3F08 LUO2 +3F09 YIN4 ZHEN4 +3F0A TUN2 +3F0B GU3 JIU3 MOU2 RU3 +3F0C YU3 +3F0D LEI3 +3F0E BEI4 BO2 KE3 +3F0F NEI3 +3F10 PIAN2 +3F11 LIAN4 LUAN2 +3F12 QIU3 TANG3 +3F13 LIAN2 LIAN3 +3F16 LI4 +3F17 DING3 TING2 +3F18 WA3 +3F19 ZHOU4 +3F1B XING2 +3F1C ANG4 POU2 +3F1D FAN4 WAN3 +3F1E PENG4 +3F1F BAI2 +3F20 TUO2 +3F22 E3 YI2 +3F23 BAI3 BO2 +3F24 QI4 QIE4 YA4 +3F25 CHU2 KAO3 TOU3 +3F26 GONG3 +3F27 TONG2 +3F28 HAN2 +3F29 CHENG2 +3F2A JIA2 +3F2B HUAN4 +3F2C XING4 +3F2D DIAN4 NIAO3 +3F2E MAI2 +3F2F DONG4 +3F30 E2 PI2 +3F31 RUAN3 +3F32 LIE4 +3F33 SHENG3 +3F34 OU3 +3F35 DI4 +3F36 YU2 +3F37 CHUAN2 +3F38 RONG2 +3F3A TANG2 +3F3B CONG2 +3F3C PIAO2 +3F3D SHUANG3 +3F3E LU4 +3F3F TONG2 +3F40 ZHENG4 +3F41 LI4 +3F42 SA4 +3F47 GUAI4 HU2 HUI2 MENG2 SE4 +3F48 YI4 +3F49 HAN3 JIAN4 XIAN4 +3F4A XIE4 +3F4B LUO2 LUO4 +3F4C LIU4 +3F4E DAN3 TAN2 +3F51 TAN2 +3F55 YOU2 +3F56 NAN2 +3F58 GANG3 +3F59 JUN4 +3F5A CHI4 +3F5B KOU4 QU2 +3F5C WAN3 +3F5D LI4 +3F5E LIU2 +3F5F LIE4 +3F60 XIA2 +3F62 AN3 YE4 +3F63 YU4 +3F64 JU2 +3F65 ROU2 +3F66 XUN2 +3F68 CUO2 +3F69 CAN4 CAO4 +3F6A ZENG3 ZHA3 +3F6B YONG3 +3F6C FU4 +3F6D RUAN3 +3F6F XI2 +3F70 SHU4 +3F71 JIAO3 +3F72 JIAO3 +3F73 HAN4 XIE4 XU3 YU2 +3F74 ZHANG4 +3F77 SHUI4 +3F78 CHEN2 +3F79 FAN4 WAN3 +3F7A JI2 +3F7D GU4 +3F7E WU4 +3F80 QIE4 +3F81 SHU4 +3F83 TUO2 +3F84 DU2 +3F85 SI4 ZHI4 ZI3 +3F86 RAN2 SHAN3 +3F87 MU4 +3F88 FU4 +3F89 LING2 +3F8A JI2 +3F8B XIU4 +3F8C XUAN3 +3F8D NAI2 +3F8F JIE4 +3F90 LI4 +3F91 DA2 +3F92 JI4 RU2 RU4 +3F94 LV3 +3F95 SHEN3 +3F96 LI3 LUO2 +3F97 LANG3 LIANG4 +3F98 GENG3 +3F99 YIN3 +3F9B QIN3 +3F9C QIE4 +3F9D CHE4 +3F9E YOU3 +3F9F BU4 +3FA0 HUANG2 KUANG2 KUI4 +3FA1 QUE4 +3FA2 LAI4 +3FA5 XU4 +3FA6 BANG4 PEI4 PEN2 +3FA7 KE4 +3FA8 QI3 YI3 +3FAA SHENG3 +3FAD ZHOU4 +3FAE HUANG2 +3FAF TUI2 WEI3 +3FB0 HU2 +3FB1 BEI4 FAN4 FEI4 FU2 +3FB5 JI4 +3FB6 GU3 +3FB8 GAO3 +3FB9 CHAI2 +3FBA MA4 MO4 +3FBB ZHU4 +3FBC TUI3 +3FBD TUI2 ZHUI4 +3FBE LIAN2 +3FBF LANG2 LANG3 +3FC3 DAI4 ZHI4 +3FC4 AI4 +3FC5 XIAN3 XUAN3 +3FC7 XI2 XI4 +3FC9 TUI2 +3FCA CAN3 +3FCB SAO4 +3FCD JIE4 +3FCE FEN4 +3FCF QUN2 +3FD1 YAO4 +3FD2 DAO3 +3FD3 JIA2 +3FD4 LEI3 +3FD5 YAN2 +3FD6 LU2 +3FD7 TUI2 +3FD8 YING2 +3FD9 PI4 +3FDA LUO4 +3FDB LI2 LI4 +3FDC BIE3 +3FDE MAO4 +3FDF BAI2 JIAO3 +3FE2 YAO4 ZHUI4 +3FE3 HE2 XIA2 +3FE4 CHUN3 +3FE5 HU2 +3FE6 NING4 +3FE7 CHOU2 +3FE8 LI4 +3FE9 TANG3 +3FEA HUAN2 +3FEB BI4 +3FED CHE4 +3FEE YANG4 +3FEF DA2 +3FF0 AO2 +3FF1 XUE2 +3FF5 RAN3 +3FF7 ZAO4 +3FF8 WAN3 +3FF9 TA4 +3FFA BAO2 +3FFC YAN2 +3FFE ZHU4 +3FFF YA3 +4000 FAN2 +4001 YOU4 +4003 TUI2 +4004 MENG2 +4005 SHE4 ZHE2 +4006 JIN4 +4007 GU3 QUE4 +4008 QI4 +4009 QIAO2 SHA4 +400A JIAO3 +400B YAN2 +400D KAN4 +400E MIAN3 +400F XIAN4 +4010 SAN3 +4011 NA4 NI4 WO4 +4013 HUAN4 +4014 NIU2 REN4 +4015 CHENG4 ZHEN4 +4017 JUE2 +4018 XI2 XIE2 +4019 QI4 +401A ANG2 +401B MEI4 WU4 +401C GU3 MEI4 XUE2 +401F FAN2 FEI4 FEN4 +4020 QU2 +4021 CHAN4 TAN4 +4022 SHUN4 +4023 BI4 MI4 +4024 MAO4 +4025 SHUO4 +4026 GU3 +4027 HONG3 +4028 HUAN4 +4029 LUO4 +402A HANG2 +402B JIA2 +402C QUAN2 +402E MANG2 +402F BU3 +4030 GU3 YING2 +4032 MU4 +4033 AI4 LA4 LAI4 +4034 YING3 +4035 SHUN4 +4036 LANG3 LIANG4 +4037 JIE2 +4038 DI4 ZHI4 +4039 JIE2 ZHA3 JIA2 SHE4 YA4 +403B PIN4 +403C REN4 ZHEN3 +403D YAN2 +403E DU3 +403F DI4 +4041 LANG3 LIANG4 +4042 XIAN4 +4044 XING4 +4045 BEI4 BI4 MENG3 MENG4 +4046 AN3 YI4 +4047 MI4 +4048 QI4 +4049 QI4 +404A WO4 +404B SHE2 +404C YU4 +404D JIA4 KE4 QIA4 +404E CHENG2 +404F YAO3 +4050 YING4 +4051 YANG2 +4052 JI2 +4053 JIE4 ZONG3 +4054 HAN4 HUAN3 +4055 MIN2 +4056 LOU1 +4057 KAI3 +4058 YAO3 +4059 YAN3 YAN4 +405A SUN3 +405B GUI3 GUI4 KUI4 +405C HUANG3 HUANG4 +405D YING2 +405E SHENG3 +405F CHA2 DUO2 +4060 LIAN2 +4062 XUAN2 +4063 CHUAN2 +4064 CHE4 CHENG4 +4065 NI4 +4066 QU4 +4067 MIAO2 +4068 HUO4 +4069 YU2 +406A NAN3 ZHAN3 +406B HU2 +406C CENG2 +406E QIAN2 +406F SHE4 XIE2 +4070 JIANG3 +4071 AO4 +4072 MAI2 +4073 MANG3 +4074 ZHAN3 +4075 BIAN3 +4076 JIAO3 +4077 JUE2 WO4 +4078 NONG2 +4079 BI4 +407A SHI4 +407B LI4 SHUO4 +407C MO4 MU4 +407D LIE4 +407E MIE4 +407F MO4 +4080 XI1 +4081 CHAN2 +4082 QU2 +4083 JIAO4 JIE2 +4084 HUO4 KUANG4 +4086 XU4 +4087 NANG2 NIU3 NONG3 PANG2 +4088 TONG2 +4089 HOU2 +408A YU4 +408D BO2 +408E ZUAN3 +4090 CHUO4 +4092 JIE2 QIA4 YA4 +4094 XING4 +4095 HUI4 +4096 SHI2 SI4 +409A YAO2 YOU2 +409B YU2 +409C BANG4 PEI2 +409D JIE2 ZE2 ZHE2 +409E ZHE4 +40A0 SHE2 SHI3 +40A1 DI3 ZHI3 +40A2 DONG3 +40A3 CI2 +40A4 FU4 HAI2 +40A5 MIN2 +40A6 ZHEN3 +40A7 ZHEN3 +40A9 YAN4 +40AA DIAO4 TIAO3 +40AB HONG2 +40AC GONG3 +40AE LVE4 +40AF GUAI4 GUAN4 +40B0 LA4 +40B1 CUI4 RUI4 +40B2 FA3 +40B3 CUO3 +40B4 YAN2 +40B6 JIE2 +40B8 GUO2 XU4 +40B9 SUO3 +40BA WAN3 WO3 +40BB ZHENG4 +40BC NIE4 +40BD DIAO4 YI4 +40BE LAI3 +40BF TA4 TIE4 +40C0 CUI4 XUN4 +40C2 GUN3 GUN4 +40C7 MIAN2 +40C9 MIN2 +40CA JU3 +40CB YU2 +40CD ZHAO4 ZHUI4 +40CE ZE2 ZHA4 +40D1 PAN2 +40D2 HE2 +40D3 GOU4 +40D4 HONG2 +40D5 LAO2 LUO4 +40D6 WU4 +40D7 CHUO4 +40D9 LU4 +40DA CU4 +40DB LIAN2 QIAN4 +40DD QIAO4 +40DE SHU2 YI4 +40E1 CEN2 +40E3 HUI3 +40E4 SU4 +40E5 CHUANG2 +40E7 LONG2 +40E9 NAO2 +40EA TAN2 +40EB DAN3 +40EC WEI3 +40ED GAN3 +40EE DA2 +40EF LI4 +40F1 XIAN4 +40F2 PAN2 PAN4 +40F3 LA4 +40F5 NIAO3 +40F6 HUAI2 +40F7 YING2 +40F8 XIAN4 +40F9 LAN4 LANG3 +40FA MO2 +40FB BA4 PAI2 +40FD FU2 GUI3 SI4 +40FE BI3 +4100 HUO4 +4101 YI4 +4102 LIU4 +4105 JUAN4 +4106 HUO2 KUO4 +4107 CHENG2 +4108 DOU4 +4109 E2 +410B YAN3 +410C ZHUI4 +410D DU4 DUO2 ZHA4 +410E QI3 +410F YU2 +4110 QUAN4 +4111 HUO2 KUO4 +4112 NIE4 REN3 +4113 HENG2 HUANG2 +4114 JU3 +4115 SHE4 SHEN4 TIAN3 +4118 PENG2 +4119 MING2 +411A CAO2 +411B LOU2 +411C LI2 +411D CHUN3 +411F CUI4 +4120 SHAN4 +4122 QI2 +4124 LAI4 +4125 LING2 +4126 LIAO3 +4127 RENG2 RONG3 +4128 YU2 YU3 +4129 NAO2 YI4 +412A CHUO4 DIAO3 +412B QI3 +412C YI2 +412D NIAN2 +412F JIAN3 XIAN4 +4130 YA2 ZHA2 +4132 CHUI2 +4136 BI4 +4137 DAN4 DIAO3 SHI2 +4138 PO4 +4139 NIAN2 TIAN3 +413A ZHI4 +413B CHAO2 TAO2 ZHAO4 +413C TIAN3 +413D TIAN3 +413E ROU4 +413F YI4 +4140 LIE4 +4141 AN4 +4142 HE2 +4143 QIONG2 +4144 LI4 +4146 ZI4 +4147 SU4 +4148 YUAN4 +4149 YA4 +414A DU4 +414B WAN3 +414D DONG4 TING3 +414E YOU3 +414F HUI4 WEI4 +4150 JIAN3 QIAN2 +4151 RUI2 SUI2 +4152 MANG2 +4153 JU3 QU4 +4156 AN3 +4157 SUI4 +4158 LAI2 +4159 HUN4 +415A QIANG3 QUAN3 ZE2 +415C DUO4 +415E NA4 NAI4 NE4 +415F CAN3 +4160 TI2 +4161 XU3 +4162 JIU4 +4163 HUANG2 +4164 QI4 +4165 JIE2 +4166 MAO2 +4167 YAN4 +4169 ZHI3 +416A TUI2 +416C AI4 YAN3 YE4 +416D PANG2 +416E CANG4 +416F TANG2 +4170 EN3 +4171 HUN4 +4172 QI2 +4173 CHU2 +4174 SUO3 +4175 ZHUO2 +4176 NOU4 WU3 +4177 TU2 +4178 ZU2 +4179 LOU2 LOU3 +417A MIAO3 +417B LI2 +417C MAN2 +417D GU3 +417E CEN2 QIAN2 QIN2 +417F HUA2 +4180 MEI3 +4182 LIAN2 QIAN4 +4183 DAO3 DAO4 +4184 SHAN4 +4185 CI2 JI3 +4188 ZHI4 +4189 BA4 +418A CUI4 +418B QIU1 +418D LONG2 +418F FEI4 +4190 GUO2 +4191 CHENG2 +4192 JIU4 +4193 E4 RUAN3 +4195 JUE2 +4196 HONG2 +4197 JIAO4 +4198 CUAN2 +4199 YAO2 +419A TONG2 +419B CHA2 ZHA4 ZHE2 +419C YOU4 +419D SHU4 +419E YAO3 +419F GE2 +41A0 HUAN4 +41A1 LANG2 LANG4 +41A2 JUE2 +41A3 CHEN2 +41A6 SHEN4 +41A8 MING2 +41A9 MING2 +41AB CHUANG1 CONG1 +41AC YUN3 +41AE JIN4 +41AF CHUO4 +41B1 TAN3 +41B3 QIONG2 SUI4 +41B5 CHENG2 +41B7 YU4 +41B8 CHENG2 +41B9 TONG3 +41BB QIAO4 +41BD JU4 QU2 QUN2 +41BE LAN2 +41BF YI4 +41C0 RONG2 RONG3 +41C3 SI4 XIAO4 +41C5 FA2 +41C7 MENG2 +41C8 GUI4 HUA4 +41CB HAI4 RAN3 XIE4 +41CC QIAO4 +41CD CHUO4 +41CE QUE4 +41CF DUI4 +41D0 LI4 +41D1 BA4 +41D2 JIE4 QIN2 XIAN4 +41D4 LUO4 NUO4 +41D6 YUN3 +41D8 HU4 +41D9 YIN3 +41DB ZHI3 ZHI4 +41DC LIAN3 +41DE GAN3 +41DF JIAN4 +41E0 ZHOU4 ZHU4 +41E1 ZHU4 +41E2 KU3 +41E3 NA4 NEI4 YI3 +41E4 DUI4 RUI4 SU4 +41E5 ZE2 ZUO2 +41E6 YANG3 +41E7 ZHU4 +41E8 GONG4 XIANG2 +41E9 YI4 +41EC CHUANG3 +41ED LAO3 +41EE REN4 +41EF RONG2 +41F1 NA4 +41F2 CE4 JIA1 +41F5 YI2 +41F6 JUE2 +41F7 BI3 BIE2 +41F8 CHENG2 SHENG4 ZENG4 +41F9 JUN4 +41FA CHOU2 DOU4 +41FB HUI4 KUI4 WEI3 +41FC CHI4 YI4 +41FD ZHI4 +41FE YAN2 +4201 LUN2 LUO4 +4202 BING4 PING2 +4203 ZHAO3 +4204 HAN2 +4205 YU4 +4206 DAI4 +4207 ZHAO4 +4208 FEI2 +4209 SHA4 +420A LING2 +420B TA4 +420D MANG2 +420E YE4 +420F BAO2 +4210 KUI4 +4211 GUA3 JUE2 +4212 NAN3 +4213 GE2 +4215 CHI2 SHI5 TI2 +4217 SUO3 +4218 CI2 +4219 ZHOU4 +421A TAI2 +421B KUAI4 +421C QIN4 +421E DU3 +421F CE4 +4220 HUAN3 +4222 SAI3 +4223 ZHENG4 +4224 QIAN2 +4227 WEI3 +422A XI4 +422B NA4 +422C PU2 +422D HUAI2 +422E JU3 JU4 WAN3 +4232 PAN2 +4233 TA4 +4234 QIAN4 ZHAN3 +4236 RONG2 +4237 LUO4 +4238 HU2 +4239 SOU3 +423B PU2 +423C MIE4 +423E SHUO4 +423F MAI4 MI4 +4240 SHU4 +4241 LING2 +4242 LEI3 +4243 JIANG3 +4244 LENG2 +4245 ZHI4 +4246 DIAO3 +4248 SAN3 +4249 HU2 +424A FAN4 FANG2 +424B MEI4 +424C SUI4 +424D JIAN3 +424E TANG2 +424F XIE4 +4251 MO2 WU2 +4252 FAN2 +4253 LEI2 LUO4 +4255 CENG2 +4256 LING2 +4258 CONG2 +4259 YUN2 +425A MENG2 +425B YU4 +425C ZHI4 +425D QI3 +425E DAN3 +425F HUO4 +4260 WEI2 +4261 TAN2 +4262 SE4 +4263 XIE4 +4264 SOU3 +4265 SONG3 +4267 LIU2 LIU3 +4268 YI4 +426A LEI4 +426B LI2 +426C FEI4 +426D LIE4 +426E LIN4 +426F XIAN4 +4270 YAO2 +4272 BIE4 MI2 +4273 XIAN3 +4274 RANG2 RANG3 +4275 ZHUAN4 +4277 DAN4 JIN4 YAN2 +4278 BIAN4 +4279 LING2 LIU3 +427A HONG2 +427B QI2 +427C LIAO4 +427D BAN3 +427E MI4 +427F HU2 LUO4 +4280 HU2 +4282 CE4 SE4 +4283 PEI4 +4284 QIONG2 +4285 MING2 +4286 JIU4 QIU3 +4287 BU4 +4288 MEI2 +4289 SAN3 +428A MEI4 +428D LI2 +428E QUAN3 +4290 EN4 HUA2 HUAN4 HUN2 +4291 XIANG3 +4293 SHI4 +4296 LAN3 NAN3 +4297 HUANG2 HUANG3 +4298 JIU4 +4299 YAN2 +429B SA3 +429C TUAN2 +429D XIE4 +429E ZHE2 +429F MEN2 +42A0 XI4 +42A1 MAN2 +42A3 HUANG2 +42A4 TAN2 +42A5 XIAO4 +42A6 YA2 YE4 +42A7 BI4 +42A8 LUO2 +42A9 FAN2 FAN4 +42AA LI4 +42AB CUI3 MI2 +42AC CHA4 +42AD CHOU2 DAO4 +42AE DI2 ZHE2 ZHE4 +42AF KUANG4 +42B0 CHU3 +42B2 CHAN3 +42B3 MI2 +42B4 QIAN4 +42B5 QIU2 +42B6 ZHEN4 +42BA GU3 HU4 +42BB YAN3 +42BC CHI3 +42BD GUAI4 +42BE MU4 +42BF BO2 KU4 +42C0 KUA4 +42C1 GENG3 +42C2 YAO2 +42C3 MAO4 +42C4 WANG3 +42C8 RU2 +42C9 JUE2 KE3 XUE2 +42CB MIN2 +42CC JIANG3 +42CE ZHAN4 +42CF ZUO4 +42D0 YUE4 +42D1 BING3 +42D3 ZHOU4 +42D4 BI4 +42D5 REN4 +42D6 YU4 +42D8 CHUO4 ZHUI4 +42D9 ER3 +42DA YI4 +42DB MI2 MI3 +42DC QING4 +42DE WANG3 +42DF JI4 +42E0 BU3 +42E2 BIE4 +42E3 FAN2 PAN2 +42E4 YAO4 YUE4 +42E5 LI2 +42E6 FAN2 +42E7 QU2 +42E8 FU3 +42E9 ER2 +42ED HUO4 YU4 +42EE JIN4 QIAN2 +42EF QI3 QING4 +42F0 JU2 +42F1 LAI2 +42F2 CHE3 SHENG2 XING3 ZHE4 +42F3 BEI4 MI4 +42F4 NIU4 RONG3 ROU2 RU3 +42F5 YI4 +42F6 XU4 +42F7 LIU2 MOU2 +42F8 XUN2 +42F9 FU2 FU4 +42FB NIN2 +42FC TING3 YING2 +42FD BENG3 PENG3 +42FE ZHA3 +4302 OU4 +4303 SHUO4 +4304 GENG3 +4305 TANG2 +4306 GUI4 +4307 HUI4 SUO3 +4308 TA4 +430A YAO2 YOU2 +430C QI4 QIE4 QU3 +430D HAN4 JIN3 +430E LVE4 +430F MI4 MIAN4 +4310 MI4 +4312 LU4 +4313 FAN2 +4314 OU4 +4315 MI2 MO2 +4316 JIE2 +4317 FU3 +4318 MI2 +4319 HUANG3 +431A SU4 +431B YAO2 +431C NIE4 +431D JIN4 +431E LIAN3 +431F BI4 +4320 QING4 YAN3 YIN4 +4321 TI3 +4322 LING2 +4323 ZUAN3 +4324 ZHI3 +4325 YIN3 +4326 DAO3 +4327 CHOU2 +4328 CAI4 +4329 MI4 MIE4 +432A YAN2 +432B LAN3 +432C CHONG2 +432F GUAN4 QUAN2 +4330 SHE4 +4331 LUO4 +4334 LUO4 +4335 ZHU2 ZHU3 +4337 CHOU2 CHOU1 +4338 JUAN4 +4339 JIONG3 +433A ER3 +433B YI4 +433C RUI4 +433D CAI3 +433E REN2 +433F FU2 +4340 LAN2 +4341 SUI4 +4342 YU2 +4343 YAO2 YOU2 +4344 DIAN3 +4345 LING2 +4346 ZHU4 +4347 TA4 +4348 PING2 +4349 QIAN2 ZHAI3 +434A JUE2 +434B CHUI2 +434C BU4 FU2 +434D GU3 GU4 GUANG4 KOU4 +434E CUN4 +4350 HAN3 HAN4 +4351 HAN3 +4352 MOU3 +4353 HU4 YA2 +4354 HONG2 +4355 DI3 +4356 FU2 FU4 HAI4 XIE4 +4357 XUAN4 +4358 MI2 +4359 MEI2 +435A LANG4 +435B GU4 +435C ZHAO4 +435D TA4 ZAN3 +435E YU4 +435F ZONG4 +4360 LI2 +4361 LIAO4 LU4 +4362 WU2 WU3 +4363 LEI2 +4364 JI3 +4365 LEI4 LI4 +4366 LI2 +4368 BO2 FEI4 +4369 ANG3 YANG3 +436A KUI4 WA4 +436B TUO2 +436E ZHAO4 +436F GUI3 JI4 +4371 XU2 +4372 NAI2 NI2 NI4 +4373 CHUO4 JUE2 QUE4 +4374 DUO4 RUI2 WEI3 +4376 DONG4 +4377 GUI4 HUI4 WEI3 +4378 BO2 +437A HUAN2 +437B XUAN3 +437C CAN2 +437D LI4 +437E TUI2 YAN3 +437F HUANG2 +4380 XUE4 YUE4 +4381 HU2 +4382 BAO3 +4383 RAN3 +4384 TIAO2 +4385 FU4 LUO4 PO4 +4386 LIAO4 +4388 YI4 +4389 SHU4 YU4 +438A PO4 +438B HE4 KAO4 +438C CU4 +438E NA4 +438F AN4 HAN2 +4390 CHAO3 +4391 LU4 +4392 ZHAN3 +4393 TA4 +4397 QIAO2 +4398 SU4 +439A GUAN4 HUI4 +439D CHU2 ZHU4 +439F ER2 NUO4 +43A0 ER2 +43A1 NUAN3 RUAN3 +43A2 QI3 +43A3 SI4 XIN4 +43A4 CHU2 JU2 +43A6 YAN3 +43A7 BANG4 POU2 +43A8 AN4 YE4 +43AA NE4 +43AB CHUANG4 ZONG3 +43AC BA4 PA2 +43AE TI4 +43AF HAN4 +43B0 ZUO2 +43B1 BA4 PA2 +43B2 ZHE2 +43B3 WA4 YUE4 +43B4 SHENG4 +43B5 BI4 +43B6 ER4 +43B7 ZHU4 +43B8 WU4 +43B9 WEN2 +43BA ZHI3 ZHI4 +43BB ZHOU3 +43BC LU4 +43BD WEN2 WEN4 +43BE GUN3 +43BF QIU2 XIONG4 +43C0 LA4 +43C1 ZAI3 +43C2 SOU3 +43C3 MIAN2 +43C4 ZHI4 +43C5 QI4 +43C6 CAO2 CHUA4 QIAO2 +43C7 PIAO4 +43C8 LIAN2 +43CA LONG2 +43CB SU4 +43CC QI4 YI4 +43CD YUAN4 +43CE FENG2 HAN4 +43D0 JUE2 ZHUO4 +43D1 DI4 ZHI4 +43D2 PIAN4 +43D3 GUAN3 +43D4 NIU3 +43D5 REN3 RUN4 +43D6 ZHEN4 +43D7 GAI4 KUI4 +43D8 PI3 PI4 +43D9 TAN3 +43DA CHAO3 +43DB CHUN3 +43DD CHUN2 ZHUAN3 +43DE MO4 +43DF BIE4 +43E0 QI4 +43E1 SHI4 +43E2 BI3 +43E3 JUE2 QU4 +43E4 SI4 +43E6 HUA2 TIAN2 WAN3 +43E7 NA2 +43E8 HUI3 +43EA ER4 +43EC MOU2 +43EE XI2 XIE2 +43EF ZHI4 +43F0 REN3 +43F1 JU2 +43F2 DIE2 +43F3 ZHE4 +43F4 SHAO4 SHE4 +43F5 MENG3 +43F6 BI4 +43F7 HAN4 +43F8 YU2 +43F9 XIAN4 +43FB NENG2 +43FC CAN2 +43FD BU4 +43FF QI3 +4400 JI4 +4401 NIAO3 ZHUO2 +4402 LU4 +4403 JIONG3 +4404 HAN4 LIAN3 XIAN4 +4405 YI2 +4406 CAI3 CAI4 +4407 CHUN2 +4408 ZHI2 +4409 ZI4 +440A DA2 HUN2 HUN4 +440C TIAN3 ZHOU4 +440D ZHOU4 +440F CHUN3 +4411 ZHE2 +4413 ROU2 RU4 +4414 BIN4 +4415 JI2 +4416 YI2 +4417 DU3 +4418 JUE2 +4419 GE2 YI4 +441A JI2 JI4 +441D SUO3 +441E RUO4 +441F XIANG4 +4420 HUANG3 +4421 QI2 +4422 ZHU4 +4423 CUO4 SUN3 +4424 CHI2 CUO2 QI4 ZHAN4 +4425 WENG3 +4427 KAO4 +4428 GU3 +4429 KAI3 +442A FAN4 JUAN3 +442C CAO2 +442D ZHI4 +442E CHAN3 +442F LEI2 +4432 ZHE2 +4433 YU2 +4434 GUI4 +4435 HUANG2 +4436 JIN3 +4438 GUO2 HUO4 +4439 SAO4 +443A TAN4 +443C XI4 +443D MAN2 +443E DUO2 +443F AO2 AO4 BI4 +4440 PI4 +4441 WU4 +4442 AI3 XI4 +4443 MENG2 +4444 PI4 YI4 +4445 MENG2 +4446 YANG3 +4447 ZHI4 +4448 BO2 +4449 YING2 +444A WEI2 WEI4 +444B NAO2 RANG3 +444C LAN2 +444D YAN4 YING3 +444E CHAN3 +444F QUAN2 +4450 ZHEN3 +4451 PU2 +4453 TAI2 TAI3 +4454 FEI4 +4455 SHU3 +4457 DANG4 +4458 CHA2 CUO2 +4459 RAN2 +445A TIAN2 +445B CHI3 SHI4 YI4 +445C TA4 +445D JIA3 +445E SHUN4 +445F HUANG2 +4460 LIAO3 +4464 JIN4 JING4 +4465 E4 SA4 +4467 FU2 +4468 DUO4 +446A E4 +446C YAO4 +446D DI4 ZHI4 +446F DI4 +4470 BU4 +4471 MAN2 WAN3 +4472 CHE4 ZHAI2 ZHAO4 +4473 LUN2 +4474 QI2 +4475 MU4 +4476 CAN2 QIAN4 +447B YOU2 +447D DA2 TA4 +447F SU4 +4480 FU2 +4481 JI4 XI2 XIAO4 YA4 +4482 JIANG3 XIANG3 +4483 CAO4 ZAO4 +4484 BO2 FU4 +4485 TENG2 +4486 CHE4 +4487 FU4 +4488 BU3 FE4 FEI4 +4489 WU3 +448B YANG3 +448C MING4 +448D PANG3 +448E MANG3 +4490 MENG2 +4491 CAO3 +4492 TIAO2 YAO3 YOU2 +4493 KAI3 +4494 BAI4 +4495 XIAO3 +4496 XIN4 +4497 QI4 +449A SHAO3 +449B HENG2 HUAN4 +449C NIU2 +449D XIAO2 +449E CHEN2 +44A0 FAN3 XIA2 +44A1 YIN3 +44A2 ANG2 YING4 +44A3 RAN3 +44A4 RI4 +44A5 FA4 LIU3 MAN2 +44A6 FAN4 +44A7 QU4 +44A8 SHI3 +44A9 HE2 XIA2 +44AA BIAN4 +44AB DAI4 +44AC MO4 +44AD DENG3 +44B2 CHA4 +44B3 DUO3 +44B4 YOU3 +44B5 HAO4 +44B8 XIAN2 XUE4 YUE4 +44B9 LEI4 +44BA JIN3 +44BB QI3 +44BD MEI2 WANG3 +44C2 YAN2 +44C3 YI4 +44C4 YIN2 +44C5 QI2 +44C6 ZHE2 +44C7 XI4 +44C8 YI4 +44C9 YE2 +44CA E4 WU2 YU2 +44CC ZHI4 +44CD HAN3 +44CE CHUO4 +44D0 CHUN2 +44D1 BING3 PING2 +44D2 KUAI3 +44D3 CHOU2 +44D5 TUO3 WEI3 +44D6 QIONG2 +44D8 JIU4 +44DA CU2 +44DB FU3 GU3 +44DD MENG2 MENG4 +44DE LI4 +44DF LIE4 +44E0 TA4 +44E2 GU4 +44E3 LIANG3 +44E5 LA4 +44E6 DIAN3 +44E7 CI4 JI2 +44EB JI4 QI2 +44ED CHA4 +44EE MAO4 +44EF DU2 +44F1 CHAI2 ZHAI4 +44F2 RUI4 SA4 +44F3 HEN3 +44F4 RUAN2 RUAN3 +44F6 LAI4 +44F7 XING4 +44F9 YI4 +44FA MEI3 WEI4 +44FC HE4 MANG2 +44FD JI4 +44FF HAN3 HAN4 +4501 LI4 +4502 ZI3 +4503 ZU3 +4504 YAO2 +4506 LI2 +4507 QI3 YI3 +4508 GAN3 GONG4 NOU3 +4509 LI4 +450E SU4 +450F CHOU4 +4511 XIE2 YE2 +4512 BEI4 +4513 XU3 +4514 JING4 QIAN3 QIU2 YING3 +4515 PU2 +4516 LING2 +4517 XIANG2 +4518 ZUO4 +4519 DIAO4 +451A CHUN2 +451B QING3 +451C NAN2 +451E LV4 +451F CHI2 CHI3 YI2 +4520 SHAO3 +4521 YU2 +4522 HUA2 HUA4 +4523 LI2 +4527 LI2 LI4 +452A DUI4 SHUANG3 +452C YI4 +452D NING4 ZHOU3 +452F HU2 HUA4 KU4 +4530 FU2 FU4 +4532 CHENG2 ZHUO2 +4533 NAN3 RAN2 +4534 CE4 CUI4 +4536 TI2 +4537 QIN2 +4538 BIAO3 +4539 SUI4 +453A WEI2 +453C SE4 +453D AI4 +453E E4 QI4 ZE4 +453F JIE4 ZUN3 +4540 KUAN3 +4541 FEI3 +4543 YIN4 +4545 SAO3 +4546 DOU4 +4547 HUI4 +4548 XIE4 +4549 ZE2 +454A TAN2 +454B CHANG3 TANG2 +454C ZHI4 +454D YI4 +454E FU2 +454F E2 +4551 JUN4 +4553 CHA2 CHUI4 +4554 XIAN2 +4555 MAN4 +4557 BI4 PEI4 +4558 LING2 +4559 JIE2 +455A KUI4 +455B JIA2 +455E LANG4 LIAO2 +4560 FEI4 +4561 LU3 LV2 +4562 ZHA3 +4563 HE2 KE3 SHE2 +4565 NI3 YI2 +4566 YING2 +4567 XIAO4 +4568 TENG2 +4569 LAO3 LAO4 +456A ZE2 +456B KUI2 +456D QIAN2 +456E JU2 +456F PIAO2 +4570 BAN4 FAN2 FAN4 +4571 DOU3 DOU4 TOU2 +4572 LIN3 +4573 MI2 +4574 ZHUO2 +4575 XIE2 XIE4 +4576 HU4 +4577 MI2 +4579 ZA2 +457A CONG2 +457B GE2 LI4 +457C NAN2 NAN4 +457D ZHU2 +457E YAN2 YIN2 +457F HAN4 +4581 YI4 +4582 LUAN2 +4583 YUE4 +4584 RAN2 +4585 LING2 +4586 NIANG4 +4587 YU4 +4588 NVE4 +458A YI2 YI4 +458B NVE4 +458C QIN2 YA2 YI4 +458D QIAN2 +458E XIA2 +458F CHU3 +4590 JIN4 YIN2 +4591 MI4 +4593 NA4 +4594 HAN4 KAN3 +4595 ZU3 +4596 XIA2 +4597 YAN2 YAN4 +4598 TU2 +459B SUO3 +459C YIN2 YIN4 +459D CHONG2 +459E ZHOU3 +459F MANG3 MENG2 +45A0 YUAN2 +45A1 NV4 +45A2 MIAO2 +45A3 SAO4 YE4 ZAO3 +45A4 WAN3 YUAN2 +45A5 LI2 MAO2 +45A7 NA4 +45A8 SHI2 +45A9 BI4 PI4 +45AA CI2 +45AB BANG4 +45AD JUAN4 +45AE XIANG3 +45AF GUI4 KUI2 +45B0 PAI4 +45B2 XUN2 +45B3 ZHA4 +45B4 YAO2 +45B8 E2 +45B9 YANG2 +45BA TIAO2 ZHAO4 +45BB YOU2 +45BC JUE2 XUE4 +45BD LI2 +45BF LI2 +45C1 JI4 +45C2 HU3 +45C3 ZHAN4 +45C4 FU3 PI4 +45C5 CHANG2 +45C6 GUAN3 WEI3 +45C7 JU2 QU2 +45C8 MENG2 +45CA CHENG2 TAN4 +45CB MOU2 +45CD LI3 +45D1 YI4 +45D2 BING4 +45D4 HOU2 +45D5 WAN3 +45D6 CHI4 DI4 TI2 ZHE4 +45D8 GE2 KE4 +45D9 HAN2 +45DA BO2 +45DC LIU2 +45DD CAN2 +45DE CAN2 CHEN3 SHAN3 YIN3 ZAN4 ZHAN4 +45DF YI4 +45E0 XUAN2 +45E1 YAN2 +45E2 SUO3 ZAO3 +45E3 GAO3 HAN4 +45E4 YONG2 +45E8 YU2 +45EA ZHE4 +45EB MA2 +45EE SHUANG3 +45EF JIN4 +45F0 GUAN4 +45F1 PU2 +45F2 LIN4 +45F4 TING2 +45F6 LA4 LI4 +45F7 YI4 +45F9 CI4 +45FA YAN3 +45FB JIE2 +45FD WEI4 +45FE XIAN3 +45FF NING2 +4600 FU4 +4601 GE2 JIE2 KE3 +4603 MO4 +4604 FU4 ZHU4 +4605 NAI2 NAI4 NENG3 +4606 XIAN3 +4607 WEN2 WEN4 +4608 LI4 +4609 CAN2 +460A MIE4 +460C NI4 +460D CHAI4 +460F XU4 +4610 NV4 +4611 MAI4 MO4 +4613 KAN4 KAO4 +4615 HANG2 +4618 YU4 +4619 WEI4 +461A ZHU2 +461D YI4 +4620 FU2 PO4 +4621 BI3 +4622 ZHU3 +4623 ZI3 +4624 SHU4 +4625 XIA2 +4626 NI2 NI3 +4628 JIAO3 +4629 XUAN4 XUN2 +462B NOU4 RU2 +462C RONG2 +462D DIE2 ZHI4 +462E SA4 SANG4 XI4 +4631 YU4 +4635 LU4 +4636 HAN4 YAN3 +4638 YI4 +4639 ZUI4 +463A ZHAN4 +463B SU4 YU4 +463C WAN3 +463D NI2 NI3 NI4 +463E GUAN3 +463F JUE2 +4640 BENG3 +4641 CAN2 +4643 DUO4 KUO4 PAN2 RUAN2 +4644 QI4 ZHA3 +4645 YAO4 +4646 GUI4 KUI4 +4647 NUAN3 RUAN2 +4648 HOU2 +4649 XUN2 ZAN3 +464A XIE4 +464C HUI4 KUI4 +464E XIE2 +464F BO2 +4650 KE4 +4652 XU4 +4653 BAI3 HE4 +4655 CHU4 ZONG3 +4657 TI4 +4658 CHU3 ZU2 +4659 CHI2 +465A NIAO3 +465B GUAN4 GUN3 +465C FENG2 +465D XIE4 +465F DUO4 WEI2 +4660 JUE2 WO4 +4661 HUI4 KUI4 +4662 ZENG4 +4663 SA4 +4664 DUO3 DUO4 +4665 LING2 +4666 MENG2 +4668 GUO3 LUO3 +4669 MENG2 +466A LONG2 MANG4 PAN4 +466C YING4 +466E GUAN4 +466F CU4 ZHUO2 +4670 LI2 +4671 DU2 SHU3 +4673 E4 +4677 DE2 ZHE2 +4678 DE2 DE5 +4679 JIANG3 NAO3 XIAN4 XIANG3 +467A LIAN2 LIAN3 QIAN3 +467C SHAO4 +467D XI4 XIE2 +467F WEI4 +4682 HE4 XI4 +4683 YOU2 +4684 LU4 +4685 LAI2 LAI4 +4686 OU3 YAO3 YING3 +4687 SHENG3 ZHI4 +4688 JUAN4 WU4 ZHUAN4 +4689 QI4 XI4 +468B YUN4 +468D QI4 +468F LENG4 LI4 LIN4 +4690 JI2 +4691 MAI2 +4692 CHUANG2 ZHUANG4 +4693 NIAN3 SHEN3 +4695 LI4 LUAN2 +4696 LING2 +4698 CHEN2 CHENG2 +469A XIAN3 +469B HU2 +469D ZU2 +469E DAI3 +469F DAI3 +46A0 HUN4 +46A2 CHE4 +46A3 TI2 TI4 +46A5 NUO4 +46A6 ZHI4 +46A7 LIU2 +46A8 FEI4 +46A9 JIAO3 JIAO4 +46AB AO2 XI2 +46AC LIN2 +46AE RENG2 +46AF TAO3 ZHEN4 +46B0 PI3 +46B1 XIN4 +46B2 SHAN4 +46B3 XIE4 ZHI4 +46B4 WA4 +46B5 TAO3 +46B7 XI4 YI3 YI4 +46B8 XIE4 +46B9 PI3 +46BA YAO2 +46BB YAO2 +46BC NV4 +46BD HAO4 +46BE NIN2 REN2 +46BF YIN4 +46C0 FAN3 +46C1 NAN2 +46C2 CHI2 CHI3 +46C3 WANG4 +46C4 YUAN3 +46C5 XIA2 +46C6 ZHOU4 +46C7 YUAN3 +46C8 SHI4 +46C9 MI4 MIAN4 +46CB GE2 JI4 +46CC PAO2 TAO2 +46CD FEI4 +46CE HU4 XUE4 YU4 +46CF NI2 +46D0 CI2 +46D1 MI4 +46D2 BIAN4 +46D4 NA2 +46D5 YU4 +46D6 E4 YI4 +46D7 ZHI3 +46D8 NIN2 REN2 +46D9 XU4 +46DA LVE4 +46DB HUI4 QI4 +46DC XUN4 +46DD NAO2 +46DE HAN3 HAN4 +46DF JIA2 +46E0 DOU4 XIANG2 +46E1 HUA4 +46E4 CU4 +46E5 XI4 +46E6 SONG4 +46E7 MI2 +46E8 XIN4 +46E9 WU4 +46EA QIONG2 WEI3 +46EB ZHENG4 +46EC CHOU2 TAO2 +46ED XING4 +46EE JIU4 +46EF JU4 +46F0 HUN2 HUN4 +46F1 TI2 +46F2 MAN2 MAN4 +46F3 JIAN3 YAN4 +46F4 QI3 +46F5 SHOU4 +46F6 LEI3 +46F7 WAN3 +46F8 CHE4 SHAN3 +46F9 CAN4 +46FA JIE4 +46FB YOU4 +46FC HUI3 +46FD ZHA3 +46FE SU4 +46FF GE2 +4700 NAO3 +4701 XI4 +4704 CHI2 +4705 WEI2 +4706 MO4 NEI4 SHE2 SUI4 ZHE2 +4707 GUN3 GUN4 +470A ZAO4 ZUO4 +470B HUI4 +470C LUAN2 +470D LIAO2 +470E LAO2 LAO4 +4711 QIA4 WU4 +4712 AO4 +4713 NIE4 SHE4 +4714 SUI2 +4715 MAI4 +4716 TAN4 +4717 XIN4 +4718 JING3 +4719 AN2 +471A TA4 +471B CHAN2 CHAN4 +471C WEI4 +471D TUAN3 +471E JI4 +471F CHEN2 CHEN4 +4720 CHE4 ZHI4 +4721 XU4 XUE4 YU4 +4722 XIAN3 +4723 XIN1 XI1 YIN2 +4727 NAO3 +4729 YAN4 +472A QIU2 +472B HONG2 +472C SONG3 XIU4 +472D JUN4 +472E LIAO2 +472F JU2 +4731 MAN3 +4732 LIE4 +4734 CHU4 SHI4 +4735 CHI3 SHI4 +4736 XIANG2 +4738 MEI3 +4739 SHU4 +473A CE4 +473B CHI3 SHI4 +473C GU2 +473D YU2 +4740 LIAO2 LIU2 +4741 LAO2 +4742 SHU4 +4743 ZHE2 +4748 E4 +474A SHA4 +474B ZONG4 +474C JUE2 JUN4 +474D JUN4 +474F LOU2 LOU3 LV2 +4750 WEI2 +4752 ZHU4 +4753 LA4 LIE4 +4755 ZHE2 +4756 ZHAO3 +4758 YI4 +475A NI2 +475D YI3 +475E HAO4 +475F YA4 YE4 +4760 HUAN2 YUAN2 +4761 MAN4 +4762 MAN4 MENG2 +4763 QU2 +4764 LAO3 +4765 HAO2 +4767 MEN2 MIN2 +4768 XIAN2 +4769 ZHEN4 +476A SHU2 SHU3 +476B ZUO2 +476C ZHU4 +476D GOU4 +476E XUAN4 +476F YI4 +4770 TI2 ZHI4 +4772 JIN4 +4773 CAN2 +4775 BU4 +4776 LIANG2 +4777 ZHI4 +4778 JI4 +4779 WAN3 YUAN4 +477A GUAN4 +477C QING2 +477D AI4 +477E FU4 +477F GUI4 +4780 GOU4 HOU4 MIN3 +4781 XIAN4 YAN4 YANG3 YANG4 +4782 RUAN3 +4783 ZHI4 +4784 BIAO4 +4785 YI2 +4786 SUO3 +4787 DIE2 ZHI4 +4788 GUI3 GUI4 +4789 SHENG4 +478A XUN4 +478B CHEN4 +478C SHE2 +478D QING2 +4790 CHUN3 SHUN3 +4791 HONG2 +4792 DONG4 +4793 CHENG1 +4794 WEI3 +4795 DIE2 NA3 NIE4 RU2 XIE4 YU2 +4796 SHU3 +4798 JI2 +4799 ZA2 +479A QI2 +479C FU4 +479D AO3 YU4 +479E FU2 +479F PO4 +47A1 TAN3 +47A2 ZHA4 ZUO2 +47A3 CHE3 +47A4 QU2 +47A5 YOU4 +47A6 HE2 JIE2 +47A7 HOU4 +47A8 GUI3 +47A9 E4 RUI2 +47AA JIANG4 +47AB YUN3 +47AC TOU4 +47AD QIU3 +47AF FU4 +47B0 ZUO2 +47B1 HU2 +47B3 BO2 FEI4 +47B5 JUE3 +47B6 DI4 TI4 +47B7 JUE2 +47B8 FU4 +47B9 HUANG2 +47BB YONG3 +47BC CHUI3 CUAN4 JIAN4 MEI4 +47BD SUO3 +47BE CHI2 +47C2 MAN2 +47C3 CA4 ZAN4 +47C4 QI4 ZUO2 +47C5 JIAN4 ZAN4 +47C6 BI4 BO2 +47C8 ZHI2 +47C9 ZHU2 +47CA QU2 +47CB ZHAN3 ZHAN4 +47CC JI2 JIE2 +47CD DIAN2 +47CF LI4 +47D0 LI4 +47D1 LA3 YUE4 +47D2 QUAN2 +47D4 FU4 +47D5 CHA4 +47D6 TANG4 +47D7 SHI4 +47D8 HANG4 +47D9 QIE4 +47DA QI2 +47DB BO2 +47DC NA4 +47DD TOU4 +47DE CHU2 +47DF CU4 +47E0 YUE4 +47E1 DI4 +47E2 CHEN2 JIAN4 NIAN3 +47E3 CHU4 +47E4 BI4 +47E5 MANG2 MENG2 +47E6 BA2 BO2 YUAN2 +47E7 TIAN2 +47E8 MIN2 +47E9 LIE3 +47EA FENG3 +47EC QIU4 +47ED TIAO2 +47EE FU2 +47EF KUO4 +47F0 JIAN3 +47F4 ZHEN4 +47F5 QIU2 +47F6 CUO4 ZUO4 +47F7 CHI4 +47F8 KUI2 +47F9 LIE4 LIN4 +47FA BANG3 BEI4 PEI4 +47FB DU4 +47FC WU3 +47FE JUE3 ZHUO2 +47FF LU4 +4800 CHANG3 +4802 CHU2 CHU3 +4803 LIANG3 +4804 TIAN3 +4805 KUN3 TA4 +4806 CHANG2 +4807 JUE2 +4808 TU2 +4809 HUA4 HUAN4 HUI3 +480A FEI4 +480B BI3 BI4 MA4 +480D QIA2 +480E WO4 +480F JI4 +4810 QU4 +4811 KUI3 +4812 HU2 +4813 CU4 JIU4 QU4 +4814 SUI4 +4817 QIU4 +4818 PI4 +4819 BEI4 PANG2 PAO2 +481A WA4 +481B JIAO3 XIAO4 YAO2 +481C RONG2 +481E CU4 QI2 +481F DIE2 SHE4 +4820 CHI4 +4821 CUO2 +4822 MENG4 +4823 XUAN3 XUAN4 +4824 DUO3 DUO4 +4825 BIE2 +4826 ZHE4 ZHI4 +4827 CHU2 +4828 CHAN4 MA4 +4829 GUI4 +482A DUAN4 +482B ZOU4 +482C DENG4 +482D LAI2 LAI4 +482E TENG2 +482F YUE4 +4830 QUAN2 +4831 SHU3 ZHU2 +4832 LING2 +4834 QIN3 YIN3 ZHEN3 +4835 FU4 +4836 SHE4 +4837 TIAO3 +4839 AI2 HAI2 +483B QIONG2 +483C DIAO4 SHU4 XUE4 ZHU2 +483D HAI2 +483E SHAN3 SHAN4 +483F WAI4 +4840 ZHAN3 +4841 LONG3 +4842 JIU4 +4843 LI4 +4845 MIN3 XIAN3 XUN2 ZHEN4 ZUAN3 +4846 RONG2 RONG3 +4847 YUE4 +4848 JUE2 +4849 KANG3 +484A FAN2 FAN3 PEI4 +484B QI2 +484C HONG2 +484D FU2 FU3 +484E LU2 +484F HONG2 +4850 TUO2 +4851 MIN2 +4852 TIAN2 +4853 JUAN4 +4854 QI3 +4855 ZHENG3 +4856 JING4 +4857 GONG3 +4858 TIAN2 +4859 LANG2 +485A MAO4 +485B YIN4 +485C LU4 +485D YUN3 +485E JU2 +485F PI4 +4861 XIE2 +4862 BIAN4 +4865 RONG2 +4866 SANG3 +4867 WU3 +4868 CHA4 CHAI2 YIN2 +4869 GU3 HOU4 TOU3 ZHEN3 +486A CHAN2 SHAN4 +486B PENG2 +486C MAN4 +486F SHUANG4 ZONG3 +4870 KENG3 +4871 ZHUAN3 +4872 CHAN2 +4874 CHUANG2 +4875 SUI4 +4876 BEI4 PI4 +4877 KAI4 +4879 ZHI4 +487A WEI4 +487B MIN2 +487C LING2 +487E NEI4 +487F LING2 +4880 QI4 +4881 YUE4 +4883 YI4 +4884 XI3 +4885 CHEN2 +4887 RONG3 ROU3 +4888 CHEN2 QIN2 +4889 NONG2 +488A YOU2 +488B JI4 +488C BO2 +488D FANG3 FEN4 +4890 CU2 +4891 DI3 +4893 YU2 +4894 GE2 HE2 JIA2 +4895 XU4 +4896 LV4 YU4 +4897 HE2 QU3 +4899 BAI4 +489A GONG4 HANG2 +489B JIONG3 +489D YA4 +489E NU4 SHU4 +489F YOU2 +48A0 SONG4 +48A1 XIE4 +48A2 CANG4 +48A3 YAO2 +48A4 SHU4 +48A5 YAN2 YAN4 +48A6 SHUAI4 +48A7 LIAO4 LIN3 QUE4 +48A9 YU4 +48AA BO2 CUI4 JIAO3 NU3 QIAN2 +48AB SUI2 +48AD YAN4 +48AE LEI4 +48AF LIN2 +48B0 TAI2 TI4 +48B1 DU2 ZHA4 +48B2 YUE4 +48B3 JI3 JI4 +48B5 YUN2 +48B9 JU3 +48BB CHEN2 JIN4 TAN2 +48BD XIANG4 +48BE XIAN3 +48C0 GUI3 WEI2 +48C1 YU3 +48C2 LEI3 +48C4 TU2 +48C5 CHEN2 +48C6 XING2 +48C7 QIU2 +48C8 HANG4 LIAO2 XIANG4 +48CA DANG3 +48CB CAI3 +48CC DI3 +48CD YAN3 +48D1 CHAN2 +48D3 LI2 +48D4 SUO3 SUO4 +48D5 MA3 +48D6 MA3 +48D8 TANG2 +48D9 PEI2 +48DA LOU2 LV2 +48DC CUO2 +48DD TU2 +48DE E4 +48DF CAN2 +48E0 JIE2 TI4 +48E1 TI2 YI2 +48E2 JI2 +48E3 DANG3 DAO4 +48E4 JIAO4 JUE2 +48E5 BI3 MI4 +48E6 LEI4 +48E7 YI4 +48E8 CHUN2 +48E9 CHUN2 +48EA PO4 +48EB LI2 +48EC ZAI3 +48ED TAI4 +48EE PO4 +48EF TIAN3 +48F0 JU4 YUAN4 +48F1 XU4 YI4 +48F2 FAN4 +48F4 XU4 +48F5 ER4 +48F6 HUO2 TIAN2 +48F8 RAN3 +48F9 FA2 +48FC LIANG2 +48FD TI3 +48FE MI4 +4901 CEN2 CHE4 SHE4 +4902 MEI2 +4903 YIN4 +4904 MIAN3 ZHUAN4 +4905 TU2 +4906 KUI2 +4909 MI4 MING2 MO4 RU2 +490A RONG2 +490B GUO2 YU4 +490D MI2 +490E JU2 +490F PI3 +4910 JIN3 +4911 WANG4 +4912 JI3 JI4 +4913 MENG2 +4914 JIAN4 NIU2 XIANG4 +4915 XUE4 +4916 BAO4 +4917 GAN3 +4918 CHAN3 QIAN3 +4919 LI4 +491A LI3 LVE4 +491B QIU2 +491C DUN4 +491D YING4 +491E YUN3 +491F CHEN2 +4920 JI1 ZHI3 +4921 RAN3 +4923 LVE4 +4925 GUI3 +4926 YUE4 +4927 HUI4 +4928 PI4 +4929 CHA2 +492A DUO3 +492B CHAN2 +492D KUAN4 SHI4 SUI4 YI2 +492E SHE4 +492F XING2 +4930 WENG3 YING2 +4931 SHI4 +4932 CHI4 +4933 YE4 +4934 HAN2 +4935 FEI4 +4936 YE4 +4937 YAN2 YAN3 +4938 ZUAN4 +493A YIN3 +493B DUO4 +493C XIAN4 +493F QIE4 +4940 CHAN3 +4941 HAN2 +4942 MENG4 +4943 YUE4 +4944 CU4 ZAN3 ZAN4 +4945 QIAN4 QIN2 +4946 JIN3 QIN2 ROU4 WEI4 +4947 SHAN4 +4948 MU3 +494C ZHENG4 +494D ZHI4 +494E CHUN2 +494F YU3 +4950 MOU2 +4951 WAN4 +4952 CHOU2 JIANG4 +4954 SU4 +4955 PIE3 +4956 TIAN2 +4957 KUAN3 +4958 CU4 CUO4 +4959 SUI4 +495B JIE2 +495C JIAN4 +495D AO2 +495E JIAO3 +495F YE4 +4961 YE4 +4962 LONG2 +4963 ZAO2 +4964 BAO2 FU2 +4965 LIAN2 +4967 HUAN2 XUAN2 +4968 LV4 +4969 WEI2 +496A XIAN3 +496B TIE3 +496C BO2 +496D ZHENG4 +496E ZHU2 +496F BA4 BAI4 +4970 MENG4 +4971 XIE3 +4975 XIAO3 +4976 LI4 +4977 ZHA2 +4978 MI2 +497A YE2 +497E XIE3 +4982 SHAN4 +4985 SHAN4 ZHAN3 +4986 JUE2 +4987 JI4 +4988 FANG3 HAN3 JI2 MOU3 ZA2 ZUO3 +498A NIAO3 +498B AO2 +498C CHU4 PO4 RUI4 +498D WU4 +498E GUAN3 +498F XIE4 +4990 TING3 +4991 XIE4 +4992 DANG4 +4994 TAN3 +4996 XIA2 XIE2 +4997 XU4 +4998 BI4 XIAN3 XIAN4 +4999 SI4 +499A HUO4 KUA3 KUA4 +499B ZHENG4 ZHI4 +499C WU2 WU4 +499E RUN4 +499F CHUAI4 +49A0 SHI3 +49A1 HUAN2 +49A2 KUO4 +49A3 FU4 +49A4 CHUAI4 WEN3 +49A5 XIAN2 +49A6 QIN2 +49A7 QIE2 XI4 YAN3 +49A8 LAN2 +49AA YA4 +49AC QUE4 +49AE CHUN3 +49AF ZHI4 +49B1 KUI3 WEI3 +49B2 QIAN4 YAN2 +49B3 HANG4 XIANG4 +49B4 YI4 +49B5 NI3 +49B6 ZHENG4 +49B7 CHUAI4 WEN3 +49B9 SHI2 +49BB CI4 ZI3 +49BC JUE2 +49BD XU4 +49BE YUN3 +49C1 CHU4 XU3 +49C2 DAO4 TIAO3 ZHAO4 +49C3 DIAN4 TIAN2 +49C4 GE4 +49C5 TI4 YA4 YI2 +49C6 HONG2 KOU3 QIONG2 +49C7 NI3 YI3 +49C9 LI3 +49CB XIAN3 +49CD XI4 +49CE XUAN4 +49D2 LAI2 LAN3 +49D4 MU4 NIAN4 +49D5 CHENG2 YU4 +49D6 JIAN4 +49D7 BI4 +49D8 QI2 ZHUAN4 +49D9 LING2 +49DA HAO4 +49DB BANG4 +49DC TANG2 +49DD DI4 YI2 ZHI4 +49DE FU4 MA4 +49DF XIAN4 XUAN4 +49E0 SHUAN4 +49E4 PU2 +49E5 HUI4 +49E6 WEI2 +49E7 YI3 +49E8 YE4 +49EA CHE4 ZHE2 +49EB HAO2 +49EE XIAN3 XIAN4 +49EF CHAN2 ZHAN4 +49F0 HUN4 +49F2 HAN4 +49F3 CI2 CI3 +49F5 QI2 SHEN3 ZHEN4 +49F6 KUI2 +49F7 ROU2 +49FA XIONG2 +49FC HU2 +49FD CUI3 +49FF QUE4 +4A00 DI2 DI4 +4A01 CHE4 WU4 YU4 +4A04 YAN4 +4A05 LIAO2 +4A06 BI2 BI4 XU4 +4A0B NVE4 +4A0C BAO2 BO2 +4A0D YING3 +4A0E HONG2 +4A0F CI2 +4A10 QIA4 XIA2 +4A11 TI2 +4A12 YU4 +4A13 LEI2 LEI4 +4A14 BAO2 +4A16 JI4 +4A17 FU2 +4A18 XIAN4 +4A19 CEN2 YA4 YIN2 +4A1B SE4 +4A1E YU3 YU4 +4A20 AI3 +4A21 HAN2 +4A22 DAN4 DI2 GAO4 TAN2 +4A23 GE2 GENG4 +4A24 DI2 +4A25 HU4 HUO4 +4A26 PANG2 +4A29 LING2 +4A2A MAI2 +4A2B MAI4 MAN4 +4A2C LIAN2 +4A2E XUE3 +4A2F ZHEN4 +4A30 PO4 +4A31 FU4 +4A32 NOU2 +4A33 XI4 +4A34 DUI4 WENG4 +4A35 DAN4 +4A36 YUN3 +4A37 XIAN4 +4A38 YIN3 +4A3A DUI4 ZHUI4 +4A3B BENG4 +4A3C HU4 +4A3D FEI3 +4A3E FEI3 +4A3F QIAN2 ZA2 +4A40 BEI4 +4A43 SHI4 +4A44 TIAN3 +4A45 ZHAN3 +4A46 JIAN3 ZHAN3 +4A48 HUI4 WEI4 XUE3 +4A49 FU3 +4A4A WAN3 WO4 +4A4B MO3 +4A4C QIAO2 +4A4D LIAO3 +4A4F MIE4 +4A50 GE2 JI2 +4A51 HONG2 +4A52 YU2 +4A53 QI2 +4A54 DUO4 +4A55 ANG2 +4A57 BA4 +4A58 DI4 +4A59 XUAN4 +4A5A DI4 DIAN4 +4A5B BI4 +4A5C ZHOU4 +4A5D PAO2 +4A5E NIAN2 TIAN3 TIE2 WEI3 +4A5F YI2 +4A61 JIA2 +4A62 DA2 ZHI4 +4A63 DUO3 TU2 TUI4 +4A64 XI4 XIE2 +4A65 DAN4 +4A66 TIAO2 ZUO4 +4A67 XIE4 +4A68 CHANG4 +4A69 YUAN3 +4A6A GUAN3 +4A6B LIANG3 +4A6C BENG3 FENG3 +4A6E LU4 +4A6F JI2 +4A70 XUAN4 +4A71 SHU4 +4A73 SHU3 SU4 +4A74 HU2 +4A75 YUN4 +4A76 CHAN3 +4A78 RONG2 RONG3 +4A79 E2 +4A7B BA4 +4A7C FENG2 +4A7E ZHE4 +4A7F FEN2 +4A80 GUAN3 RUAN3 +4A81 BU3 +4A82 GE2 +4A84 HUANG2 +4A85 DU2 +4A86 TI3 +4A87 BO2 +4A88 QIAN3 QIAN4 +4A89 LA4 LIE4 +4A8A LONG2 +4A8B WEI4 +4A8C ZHAN4 +4A8D LAN2 LAN4 +4A8F NA4 NENG2 +4A90 BI4 PI4 +4A91 TUO2 +4A92 JIAO4 ZHI4 ZHU4 +4A94 BU3 +4A95 JU2 +4A96 PO4 +4A97 XIA2 +4A98 WEI3 +4A99 FU2 PO4 +4A9A HE4 TA4 +4A9B FAN2 +4A9C CHAN4 +4A9D HU4 +4A9E ZA2 +4AA4 FAN2 +4AA5 DIE2 XIE4 +4AA6 HONG2 +4AA7 CHI2 +4AA8 BAO2 QU2 +4AA9 YIN2 +4AAC BO2 PU2 +4AAD RUAN3 +4AAE CHOU3 +4AAF YING2 +4AB1 GAI3 +4AB3 YUN3 +4AB4 ZHEN3 +4AB5 YA3 +4AB7 HOU4 +4AB8 MIN2 +4AB9 PEI2 +4ABA GE2 +4ABB BIAN4 +4ABD HAO4 +4ABE MI2 ZHEN3 +4ABF SHENG3 XIN4 +4AC0 GEN3 +4AC1 BI4 +4AC2 DUO3 +4AC3 CHUN2 +4AC4 CHUA4 +4AC5 SAN4 +4AC6 CHENG2 ZHENG4 +4AC7 RAN2 +4AC8 ZEN4 +4AC9 MAO4 +4ACA BO2 PEI2 +4ACB TUI2 +4ACC PI3 +4ACD FU3 +4AD0 LIN2 +4AD2 MEN2 +4AD3 WU2 +4AD4 QI4 QIE4 XI4 +4AD5 ZHI4 +4AD6 CHEN3 HUI3 NOU4 SHEN4 TING2 YA4 ZHU4 +4AD7 XIA2 XIA4 +4AD8 HE2 +4AD9 SANG3 +4ADB HOU2 +4ADD FU3 FU4 +4ADE RAO2 +4ADF HUN2 HUN4 +4AE0 PEI2 +4AE1 QIAN4 YAN2 +4AE3 XI2 +4AE4 MING2 +4AE5 KUI3 WEI3 +4AE6 GE2 KAI4 +4AE8 AO4 +4AE9 SAN3 +4AEA SHUANG3 +4AEB LOU2 LOU4 +4AEC ZHEN3 +4AED HUI4 +4AEE CAN2 CAN3 TI4 +4AF0 LIN4 +4AF1 NA2 RU2 +4AF2 HAN4 KAN3 +4AF3 DU2 +4AF4 JIN4 +4AF5 MIAN2 +4AF6 FAN2 +4AF7 E4 +4AF8 NAO2 +4AF9 HONG2 +4AFA HONG2 HOU4 +4AFB XUE2 YU4 +4AFC XUE4 +4AFE BI4 +4B00 YOU3 +4B01 YI2 +4B02 XUE4 YUE4 +4B03 SA4 +4B04 YU4 +4B05 LI4 XIE2 +4B06 LI4 +4B07 YUAN4 +4B08 DUI4 +4B09 HAO4 +4B0A QIE4 SHA4 +4B0B LENG2 +4B0E GUO2 +4B0F BU4 FOU3 +4B10 WEI3 +4B11 WEI4 +4B13 AN4 ANG3 +4B14 XU4 YU2 +4B15 SHANG3 +4B16 HENG2 +4B17 YANG2 +4B19 YAO2 +4B1B BI4 YU4 +4B1D HENG2 HONG4 +4B1E TAO2 +4B1F LIU2 +4B21 ZHU4 +4B23 QI4 +4B24 CHAO2 ZAN4 ZUO4 +4B25 YI4 +4B26 DOU4 +4B27 YUAN2 +4B28 CU4 JIU4 ZU2 +4B2A BO2 FU4 +4B2B CAN3 TI2 +4B2C YANG3 +4B2E YI2 +4B2F NIAN2 +4B30 SHAO4 +4B31 BEN4 +4B33 BAN3 +4B34 MO4 +4B35 AI4 +4B36 EN4 +4B37 SHE3 +4B39 ZHI4 +4B3A YANG4 +4B3B JIAN4 KAN3 +4B3C YUAN4 +4B3D DUI4 +4B3E TI2 +4B3F WEI3 WEI4 +4B40 XUN4 +4B41 ZHI4 +4B42 YI4 +4B43 REN3 +4B44 SHI4 +4B45 HU2 +4B46 NE4 +4B47 YI4 +4B48 JIAN4 +4B49 SUI3 +4B4A YING3 +4B4B BAO3 +4B4C HU2 +4B4D HU2 +4B4E XIE2 YE4 +4B50 YANG4 +4B51 LIAN2 +4B53 EN4 +4B55 JIAN4 ZAN3 +4B56 ZHU4 +4B57 YING3 +4B58 YAN4 YING3 +4B59 JIN3 +4B5A CHUANG2 NE4 +4B5B DAN4 +4B5D KUAI4 +4B5E YI4 +4B5F YE4 +4B60 JIAN3 QIAN4 +4B61 EN4 +4B62 NING2 +4B63 CI2 +4B64 QIAN3 +4B65 XUE4 YANG4 YAO4 ZHOU4 +4B66 BO2 +4B67 MI3 +4B68 SHUI4 +4B69 MI4 MO2 +4B6A LIANG2 +4B6B QI3 +4B6C QI3 +4B6D SHOU3 SHU2 SHU4 TU4 +4B6E BI4 FU2 +4B6F BO2 +4B70 BENG3 BENG4 +4B71 BIE2 +4B72 NI3 YI3 +4B73 WEI4 +4B74 HUAN2 YUAN4 +4B75 FAN2 +4B76 QI2 +4B77 LIU2 MAO2 +4B78 FU4 +4B79 ANG2 +4B7A ANG2 +4B7C QI2 +4B7D QUN2 +4B7E TUO2 +4B7F YI4 +4B80 BO2 +4B81 PIAN2 +4B82 BO2 +4B84 XUAN2 +4B87 YU4 +4B88 CHI2 +4B89 LU2 LV4 +4B8A YI2 +4B8B LI4 LIE4 +4B8D NIAO3 XING4 +4B8E XI4 +4B8F WU2 +4B91 LEI4 +4B93 ZHAO4 +4B94 ZUI3 +4B95 CHUO4 +4B97 AN4 NIU4 YAN4 +4B98 ER2 NI2 PAI4 PO2 +4B99 YU4 +4B9A LENG4 +4B9B FU4 +4B9C SHA4 ZHA2 +4B9D HUAN2 HUAN3 HUN2 +4B9E CHU4 CHUN3 +4B9F SOU3 +4BA1 BI4 +4BA2 DIE2 +4BA4 DI2 HE4 +4BA5 LI4 +4BA7 HAN2 HAN4 +4BA8 ZAI3 +4BA9 GU2 GU3 +4BAA CHENG2 +4BAB LOU2 LV2 +4BAC MO4 +4BAD MI4 +4BAE MAI4 +4BAF AO4 +4BB0 DAN3 DAN4 ZHE2 +4BB1 ZHU2 +4BB2 HUANG2 +4BB3 FAN2 +4BB4 DENG4 +4BB5 TONG2 YONG3 +4BB7 DU2 +4BB8 HU2 MU2 WO4 +4BB9 WEI4 +4BBA JI4 +4BBB CHI4 DAO3 DAO4 DEI3 +4BBC LIN2 +4BBE PANG2 +4BBF JIAN3 +4BC0 NIE4 +4BC1 LUO2 +4BC2 JI2 +4BC5 NIE4 +4BC6 YI4 +4BC8 WAN2 +4BC9 YA4 +4BCA QIA4 +4BCB BO2 +4BCD LING2 +4BCE GAN4 +4BCF HUO2 +4BD0 HAI2 +4BD2 HENG2 +4BD3 KUI2 +4BD4 CEN2 ZE2 +4BD6 LANG2 +4BD7 BI4 +4BD8 HUAN4 +4BD9 PO4 +4BDA OU3 YAO3 +4BDB JIAN3 WAN4 +4BDC TI4 +4BDD SUI3 +4BDF DUI4 XIA2 +4BE0 AO3 AO4 +4BE1 JIAN3 JIAN4 QIAN4 +4BE2 MO2 +4BE3 GUI4 KUI4 +4BE4 KUAI4 +4BE5 AN4 QI4 +4BE6 MA4 +4BE7 QING3 +4BE8 FEN2 HE4 +4BEA KAO3 +4BEB HAO4 SHA4 +4BEC DUO3 +4BEE NAI2 +4BF0 JIE4 +4BF1 FU4 +4BF2 PA2 +4BF4 CHANG2 +4BF5 NIE4 +4BF6 MAN2 +4BF8 CI4 +4BFA KUO4 +4BFC DI2 +4BFD FU3 POU2 +4BFE TIAO2 +4BFF ZU2 ZUO2 +4C00 WO3 +4C01 FEI4 +4C02 CAI4 +4C03 PENG2 +4C04 SHI4 +4C06 ROU2 +4C07 QI2 +4C08 CHA3 CUO2 +4C09 PAN2 PAN4 +4C0A BO2 +4C0B MAN2 +4C0C ZONG3 +4C0D CI4 QI1 +4C0E GUI4 HUI3 KUI4 +4C0F JI4 +4C10 LAN2 +4C12 MENG2 +4C13 MIAN2 +4C14 PAN2 +4C15 LU2 +4C16 CUAN2 +4C18 LIU2 +4C19 YI3 +4C1A WEN2 +4C1B LI4 +4C1C LI4 +4C1D ZENG4 +4C1E ZHU3 +4C1F HUN2 +4C20 SHEN2 +4C21 CHI4 +4C22 XING4 +4C23 WANG3 +4C25 HUO4 JI4 SHE4 YU4 +4C26 PI3 PI4 +4C28 MEI4 +4C29 CHE3 CHI3 +4C2A MEI4 +4C2B CHAO2 +4C2C JU2 +4C2D NOU4 RU2 +4C2F NI3 RAN2 YI4 +4C30 RU2 +4C31 LING2 +4C32 YA4 +4C34 QI4 ZHI4 +4C37 BANG4 BO2 +4C39 ZE2 +4C3A JIE4 +4C3B YU2 +4C3C XIN2 +4C3D BEI4 +4C3E BA4 +4C3F TUO2 +4C41 QIAO2 +4C42 YOU3 +4C43 DI3 ZHI4 +4C44 JIE4 +4C45 MO4 +4C46 SHENG2 +4C47 SHAN4 TAO2 +4C48 QI2 YI4 +4C49 SHAN4 +4C4A MI3 +4C4B DAN3 GONG3 +4C4C YI2 +4C4D GENG4 +4C4E GENG4 +4C4F TOU3 +4C51 XUE2 +4C52 YI4 +4C53 TING2 +4C54 TIAO2 +4C55 MOU2 +4C56 LIU2 LIU3 +4C58 LI2 +4C5A LU4 +4C5B XU4 +4C5C CUO4 QUE4 +4C5D BA4 PAI2 +4C5E LIU2 NAI4 WEI3 +4C5F JU4 +4C60 ZHAN4 +4C61 JU2 +4C63 ZU2 +4C64 XIAN4 +4C65 ZHI2 ZHI4 +4C68 ZHI4 +4C6B LA4 +4C6D GENG4 +4C6E E2 +4C6F MU2 +4C70 ZHONG4 +4C71 DI4 TI2 +4C72 YAN2 +4C74 GENG4 +4C76 LANG2 +4C77 YU2 +4C79 NA4 ZHA3 +4C7A HAI2 +4C7B HUA2 +4C7C ZHAN3 +4C7E LOU2 YU2 +4C7F CHAN4 +4C80 DIE2 SUI4 ZHI4 ZOU4 +4C81 WEI4 +4C82 XUAN2 +4C83 ZAO3 +4C84 MIN2 MIN3 +4C8A TUO3 +4C8B CEN2 +4C8C KUAN3 +4C8D TENG2 +4C8E NEI3 +4C8F LAO2 +4C90 LU3 +4C91 YI2 +4C92 XIE4 +4C93 YAN3 +4C94 QING2 QING4 +4C95 PU3 PU4 +4C96 CHOU2 +4C97 XIAN2 +4C98 GUAN3 KANG4 WEI2 +4C99 JIE2 +4C9A LAI4 LAN4 +4C9B MENG2 +4C9C YE4 +4C9E LI4 LUO3 +4C9F YIN4 +4CA2 TENG2 +4CA3 YU2 +4CA6 CHA2 DAI4 DI4 TUO3 +4CA7 DU4 SHUI4 +4CA8 HONG2 +4CAA XI4 +4CAC QI2 +4CAE YUAN2 +4CAF JI2 +4CB0 YUN4 +4CB1 FANG3 +4CB3 HANG2 +4CB4 ZHEN4 +4CB5 HU4 QUE4 +4CB8 JIE4 +4CB9 PEI2 +4CBA GAN4 +4CBB XUAN2 YUAN2 +4CBD DAO3 SHI2 +4CBE QIAO3 +4CBF CI2 +4CC0 DIE2 +4CC1 BA2 BIN3 BO2 YUAN2 +4CC2 TIAO2 +4CC3 WAN3 +4CC4 CI2 +4CC5 ZHI3 +4CC6 BAI2 +4CC7 WU3 +4CC8 BAO3 +4CC9 DAN4 +4CCA BA2 +4CCB TONG2 ZHONG4 +4CCE JIU4 +4CCF GUI4 +4CD0 CI4 +4CD1 YOU3 YU4 +4CD2 YUAN2 +4CD3 LAO3 +4CD4 JIU4 JU2 +4CD5 FOU2 +4CD6 NEI4 YE4 +4CD7 E2 +4CD8 E2 +4CD9 XING3 +4CDA HE2 KAN3 +4CDB YAN4 +4CDC TU2 +4CDD BU4 DIAO4 FU3 POU3 +4CDE BENG3 +4CDF KOU4 MING2 MO3 +4CE0 CHUI2 RUI4 ZHU4 +4CE2 QI2 +4CE3 YUAN2 +4CE7 HOU2 +4CE8 HUANG2 +4CEA JUAN4 TUAN2 +4CEB KUI2 +4CEC E4 YAO3 YI4 +4CED JI2 +4CEE MO4 +4CEF CHONG2 CHONG3 +4CF0 BAO3 +4CF1 WU4 +4CF2 ZHEN4 +4CF3 XU4 +4CF4 DA2 TA4 +4CF5 CHI4 +4CF7 CONG2 +4CF8 MA2 MAI2 +4CF9 KOU4 +4CFA YAN4 +4CFB CAN2 CHAN2 DIE2 ZHAN4 +4CFD HE4 +4CFF LAN2 RAN2 +4D00 TONG2 +4D01 YU4 +4D02 HANG4 XIANG4 +4D03 NAO2 +4D04 LI4 SHUN4 +4D05 FEN2 +4D06 PU2 +4D07 LING2 +4D08 AO3 +4D09 XUAN2 +4D0A YI2 +4D0B XUAN2 +4D0C MENG2 +4D0E LEI3 +4D0F YAN4 +4D10 BAO3 +4D11 DIE2 +4D12 LING2 +4D13 SHI1 +4D14 JIAO1 +4D15 LIE4 +4D16 JING1 +4D17 JU2 +4D18 TI1 +4D19 PI4 +4D1A GANG3 +4D1B JIAO3 TU2 XI4 XIAO4 YIN2 +4D1C HUAI2 +4D1D BU4 CHUAI4 +4D1E DI2 +4D1F HUAN2 HUAN4 +4D20 YAO3 +4D21 LI4 +4D22 MI2 +4D26 REN2 YIN2 +4D29 PIAO2 +4D2A LU4 +4D2B LING2 +4D2C YI4 +4D2D CAI2 +4D2E SHAN4 +4D30 SHU2 +4D31 TUO2 +4D32 MO4 +4D33 HE4 HUA2 +4D34 TIE4 +4D35 BING3 ZHUO2 +4D36 PENG2 +4D37 HUN2 +4D39 GUO3 +4D3A BU4 CAI3 CHAN4 +4D3B LI2 +4D3C CHAN3 CHAN4 +4D3D BAI4 PI2 +4D3E CUO2 CUO4 YE4 ZHEN3 ZI3 +4D3F MENG2 +4D40 SUO3 +4D41 QIANG4 +4D42 ZHI2 +4D43 KUANG4 +4D44 BI2 BO2 FENG4 PENG3 +4D45 AO2 +4D46 MENG2 +4D47 XIAN4 +4D49 TOU2 +4D4B WEI3 +4D4F LAO3 +4D50 CHAN3 CHAN4 +4D51 NI4 +4D52 NI4 +4D53 LI2 +4D54 DONG3 +4D55 JU4 +4D56 JIAN4 QIAN4 XIAN4 +4D57 FU2 +4D58 SHA4 SHAI4 +4D59 ZHA3 +4D5A TAO3 +4D5B JIAN4 XIAN4 +4D5C NONG3 +4D5D YA4 YI4 +4D5E JING4 QING2 +4D5F GAN3 +4D60 DI2 +4D61 JIAN3 +4D62 MEI4 WEI4 +4D63 DA2 ZHAN3 +4D64 JIAN3 +4D65 SHE4 WAN2 YING4 YU4 +4D66 XIE4 +4D67 ZAI4 +4D68 MANG2 +4D69 LI2 +4D6A GUN4 +4D6B YU4 +4D6C TA4 +4D6D ZHE4 +4D6E YANG4 +4D6F TUAN3 +4D71 HE4 XI4 +4D72 DIAO4 +4D73 WEI4 +4D74 YUN4 ZENG4 +4D75 ZHA2 ZHUO2 +4D76 QU2 +4D7A TING3 +4D7B GU3 HU2 HUI4 +4D7D CA4 +4D7E FU2 +4D7F TIE4 +4D80 TA4 +4D81 TA4 +4D82 ZHUO2 +4D83 HAN2 +4D84 PING2 +4D85 HE2 +4D87 ZHOU4 +4D88 BO2 +4D89 LIU2 +4D8A NV4 +4D8C PAO4 +4D8D DI4 TI4 +4D8E SHA4 +4D8F TI3 TI4 +4D90 KUAI4 +4D91 TI4 +4D92 QI2 +4D93 JI4 QI4 +4D94 CHI2 MIN2 +4D95 PA2 +4D96 JIN4 QIN2 +4D97 KE4 QIA3 QIE4 +4D98 LI4 +4D99 JU4 +4D9A QU3 +4D9B LA4 LIE4 +4D9C GU4 +4D9D QIA4 XIA2 +4D9E QI2 +4D9F XIAN4 +4DA0 JIAN3 XIAN2 +4DA1 SHI2 ZE2 ZHI4 +4DA2 XIAN2 +4DA3 AI2 +4DA4 HUA2 +4DA5 JU3 +4DA6 ZE2 +4DA7 YAO3 +4DA9 JI4 +4DAA CHA2 +4DAB KAN3 YAN2 YAN4 +4DAE YAN2 YAN3 +4DB1 TONG2 +4DB2 NAN2 NAN4 RAN2 +4DB3 YUE4 +4DB5 CHI2 SHI3 +4E00 YI1 +4E01 DING1 ZHENG1 +4E02 KAO3 QIAO3 YU2 +4E03 QI1 +4E04 SHANG4 SHANG3 +4E05 XIA4 +4E07 WAN4 MO4 +4E08 ZHANG4 +4E09 SAN1 SAN4 +4E0A SHANG4 +4E0B XIA4 +4E0C JI1 +4E0D BU4 FOU3 FOU1 +4E0E YU3 YU4 YU2 +4E0F MIAN3 +4E10 GAI4 +4E11 CHOU3 +4E12 CHOU3 +4E13 ZHUAN1 +4E14 QIE3 JU1 +4E15 PI1 +4E16 SHI4 +4E17 SHI4 +4E18 QIU1 +4E19 BING3 +4E1A YE4 +4E1B CONG2 +4E1C DONG1 +4E1D SI1 +4E1E CHENG2 +4E1F DIU1 +4E20 QIU1 +4E21 LIANG3 LIANG4 +4E22 DIU1 +4E23 YOU3 +4E24 LIANG3 LIANG4 +4E25 YAN2 +4E26 BING4 BANG4 +4E27 SANG1 SANG4 +4E28 GUN3 +4E29 JIU1 +4E2A GE4 GE3 +4E2B YA1 +4E2C QIANG2 +4E2D ZHONG1 ZHONG4 +4E2E JI3 +4E2F JIE4 +4E30 FENG1 +4E31 GUAN4 +4E32 CHUAN4 GUAN4 +4E33 CHAN3 +4E34 LIN2 LIN4 +4E35 ZHUO3 +4E36 ZHU3 +4E38 WAN2 +4E39 DAN1 +4E3A WEI4 WEI2 +4E3B ZHU3 +4E3C JING3 +4E3D LI4 LI2 +4E3E JU3 +4E3F PIE3 +4E40 FU2 +4E41 YI2 +4E42 YI4 +4E43 NAI3 +4E45 JIU3 +4E46 JIU3 +4E47 ZHE2 NVE4 ZHE4 TUO1 +4E48 YAO1 MO5 ME5 MA5 MO3 +4E49 YI4 +4E4B ZHI1 +4E4C WU1 WU4 +4E4D ZHA4 ZUO4 +4E4E HU1 HU2 +4E4F FA2 +4E50 LE4 YUE4 YAO4 LUO4 LIAO2 +4E51 ZHONG4 +4E52 PING1 +4E53 PANG1 PANG5 +4E54 QIAO2 +4E55 HU3 +4E56 GUAI1 +4E57 CHENG2 SHENG4 +4E58 CHENG2 SHENG4 +4E59 YI3 +4E5A YIN3 +4E5C MIE1 NIE4 +4E5D JIU3 +4E5E QI3 +4E5F YE3 +4E60 XI2 +4E61 XIANG1 XIANG3 XIANG4 +4E62 GAI4 +4E63 JIU3 +4E66 SHU1 +4E68 SHI3 +4E69 JI1 +4E6A NANG2 +4E6B JIA1 +4E6D SHI2 +4E70 MAI3 +4E71 LUAN4 +4E73 RU3 +4E74 XUE2 +4E75 YAN3 +4E76 FU3 +4E77 SHA1 +4E78 NA3 +4E79 GAN1 QIAN2 +4E7E GAN1 QIAN2 +4E7F CHI4 +4E80 GUI1 +4E81 GAN1 +4E82 LUAN4 +4E83 LIN2 +4E84 YI4 +4E85 JUE2 +4E86 LE5 LIAO3 +4E88 YU2 YU3 +4E89 ZHENG1 ZHENG4 +4E8A SHI4 +4E8B SHI4 +4E8C ER4 +4E8D CHU4 +4E8E YU2 XU1 +4E8F YU2 KUI1 +4E90 YU2 +4E91 YUN2 +4E92 HU4 +4E93 QI2 +4E94 WU3 +4E95 JING3 +4E96 SI4 +4E97 SUI4 +4E98 GEN4 GENG4 +4E99 GEN4 GENG4 +4E9A YA4 YA1 +4E9B XIE1 SUO4 SA1 +4E9C YA4 +4E9D QI2 ZHAI1 ZI1 +4E9E YA4 YA1 +4E9F JI2 QI4 +4EA0 TOU2 +4EA1 WANG2 WU2 +4EA2 KANG4 GANG1 +4EA3 TA4 +4EA4 JIAO1 +4EA5 HAI4 +4EA6 YI4 +4EA7 CHAN3 +4EA8 HENG1 XIANG3 PENG1 +4EA9 MU3 +4EAB XIANG3 +4EAC JING1 +4EAD TING2 +4EAE LIANG4 +4EAF XIANG3 +4EB0 JING1 +4EB1 YE4 +4EB2 QIN1 XIN1 QING4 +4EB3 BO2 +4EB4 YOU4 +4EB5 XIE4 +4EB6 DAN3 DAN4 +4EB7 LIAN2 +4EB8 DUO3 +4EB9 WEI3 MEN2 +4EBA REN2 +4EBB REN2 +4EBC JI2 +4EBE WANG2 WU2 +4EBF YI4 +4EC0 SHI2 SHEN2 +4EC1 REN2 +4EC2 LE4 +4EC3 DING1 +4EC4 ZE4 +4EC5 JIN3 JIN4 +4EC6 PU1 FU4 PU2 +4EC7 CHOU2 QIU2 +4EC8 BA1 +4EC9 ZHANG3 +4ECA JIN1 +4ECB JIE4 +4ECC BING1 +4ECD RENG2 +4ECE CONG2 ZONG4 ZONG1 CONG1 +4ECF FO2 +4ED0 SAN3 +4ED1 LUN2 +4ED3 CANG1 +4ED4 ZI3 ZAI3 +4ED5 SHI4 +4ED6 TA1 +4ED7 ZHANG4 +4ED8 FU4 +4ED9 XIAN1 +4EDA XIAN1 +4EDB TUO1 +4EDC HONG2 +4EDD TONG2 TONG4 +4EDE REN4 +4EDF QIAN1 +4EE0 GAN2 +4EE1 YI4 GE1 +4EE2 DI2 +4EE3 DAI4 +4EE4 LING4 LING2 LING3 +4EE5 YI3 +4EE6 CHAO4 +4EE7 CHANG2 ZHANG3 +4EE8 SA1 +4EEA YI2 +4EEB MU4 +4EEC MEN5 +4EED REN4 +4EEE JIA3 FAN3 +4EEF CHAO4 +4EF0 YANG3 YANG4 ANG2 +4EF1 QIAN2 +4EF2 ZHONG4 +4EF3 PI3 PI2 +4EF4 WAN4 +4EF5 WU3 +4EF6 JIAN4 +4EF7 JIA4 JIE4 JIE5 +4EF8 YAO3 +4EF9 FENG1 +4EFA CANG1 +4EFB REN4 REN2 +4EFC WANG2 +4EFD FEN4 BIN1 +4EFE DI1 +4EFF FANG3 PANG2 +4F00 ZHONG1 +4F01 QI3 +4F02 PEI4 +4F03 YU2 +4F04 DIAO4 +4F05 DUN4 +4F06 WEN4 +4F07 YI4 +4F08 XIN3 +4F09 KANG4 +4F0A YI1 +4F0B JI2 +4F0C AI4 +4F0D WU3 +4F0E JI4 QI2 +4F0F FU2 +4F10 FA2 +4F11 XIU1 +4F12 JIN4 +4F13 BEI1 +4F14 DAN3 SHEN3 +4F15 FU1 +4F16 TANG3 +4F17 ZHONG4 +4F18 YOU1 +4F19 HUO3 HUO5 +4F1A HUI4 KUAI4 GUI4 +4F1B YU3 +4F1C CUI4 +4F1D CHUAN2 YUN2 +4F1E SAN3 +4F1F WEI3 +4F20 CHUAN2 ZHUAN4 +4F21 CHE1 +4F22 YA2 +4F23 XIAN4 +4F24 SHANG1 +4F25 CHANG1 +4F26 LUN2 +4F27 CANG1 CHENG2 +4F28 XUN4 +4F29 XIN4 +4F2A WEI3 WEI4 +4F2B ZHU4 +4F2D XUAN2 +4F2E NU2 +4F2F BO2 BAI3 BA4 +4F30 GU1 GU3 GU4 +4F31 NI3 +4F32 NI3 NI4 +4F33 XIE4 +4F34 BAN4 PAN4 +4F35 XU4 +4F36 LING2 +4F37 ZHOU4 +4F38 SHEN1 +4F39 QU1 +4F3A SI4 CI4 +4F3B BENG1 +4F3C SI4 SHI4 +4F3D QIE2 JIA1 +4F3E PI1 +4F3F YI4 +4F40 SI4 SHI4 +4F41 AI3 YI3 CHI4 SI4 +4F42 ZHENG1 +4F43 DIAN4 TIAN2 +4F44 HAN2 +4F45 MAI4 +4F46 DAN4 +4F47 ZHU4 +4F48 BU4 +4F49 QU1 +4F4A BI3 +4F4B SHAO4 +4F4C CI3 +4F4D WEI4 +4F4E DI1 +4F4F ZHU4 +4F50 ZUO3 +4F51 YOU4 +4F52 YANG1 +4F53 TI3 BEN4 TI1 +4F54 ZHAN4 +4F55 HE2 HE4 +4F56 BI4 +4F57 TUO2 TUO1 TUO4 YI2 +4F58 SHE2 +4F59 YU2 XU2 +4F5A YI4 DIE2 +4F5B FO2 FU2 +4F5C ZUO4 ZUO1 ZUO2 +4F5D KOU4 GOU1 +4F5E NING4 +4F5F TONG2 +4F60 NI3 +4F61 XUAN1 +4F62 QU2 +4F63 YONG4 YONG1 YONG2 +4F64 WA3 +4F65 QIAN1 +4F67 KA3 +4F69 PEI4 +4F6A HUI2 HUAI2 +4F6B HE4 +4F6C LAO3 +4F6D XIANG2 +4F6E GE2 +4F6F YANG2 +4F70 BAI3 BO2 +4F71 FA3 +4F72 MING2 +4F73 JIA1 JIA5 +4F74 ER4 NAI4 MI3 +4F75 BING4 +4F76 JI2 +4F77 HEN3 +4F78 HUO2 +4F79 GUI3 +4F7A QUAN2 +4F7B TIAO1 +4F7C JIAO3 JIAO1 +4F7D CI4 +4F7E YI4 +4F7F SHI3 SHI4 +4F80 XING2 +4F81 SHEN1 +4F82 TUO1 +4F83 KAN3 +4F84 ZHI2 +4F85 GAI1 +4F86 LAI2 LAI4 +4F87 YI2 +4F88 CHI3 +4F89 KUA1 KUA3 +4F8A GUANG1 +4F8B LI4 +4F8C YIN1 +4F8D SHI4 +4F8E MI3 MEI3 +4F8F ZHU1 +4F90 XU4 +4F91 YOU4 +4F92 AN1 +4F93 LU4 +4F94 MOU2 +4F95 ER2 +4F96 LUN2 +4F97 TONG1 TONG2 TONG3 DONG4 +4F98 CHA4 +4F99 CHI4 +4F9A XUN4 +4F9B GONG1 GONG4 +4F9C ZHOU1 +4F9D YI1 YI3 +4F9E RU3 +4F9F JIAN4 +4FA0 XIA2 +4FA1 JIA4 +4FA2 ZAI4 +4FA3 LV3 +4FA5 JIAO3 +4FA6 ZHEN1 ZHENG1 +4FA7 CE4 ZE4 +4FA8 QIAO2 +4FA9 KUAI4 +4FAA CHAI2 +4FAB NING4 +4FAC NONG2 +4FAD JIN3 +4FAE WU3 +4FAF HOU2 HOU4 +4FB0 JIONG3 +4FB1 CHENG3 +4FB2 ZHEN4 +4FB3 ZUO4 CUO4 +4FB4 CHOU3 +4FB5 QIN1 +4FB6 LV3 +4FB7 JU2 +4FB8 SHU4 +4FB9 TING3 +4FBA SHEN4 +4FBB TUO1 +4FBC BO2 +4FBD NAN2 +4FBE HAO1 +4FBF BIAN4 PIAN2 +4FC0 TUI3 +4FC1 YU3 +4FC2 XI4 +4FC3 CU4 +4FC4 E2 +4FC5 QIU2 +4FC6 XU2 SHU1 +4FC7 KUANG3 KUANG1 GUANG4 +4FC8 KU4 +4FC9 WU4 +4FCA JUN4 +4FCB YI4 +4FCC FU3 +4FCD LANG2 +4FCE ZU3 +4FCF QIAO4 +4FD0 LI4 +4FD1 YONG3 +4FD2 HUN4 +4FD3 JING4 +4FD4 XIAN4 +4FD5 SAN4 +4FD6 PAI3 +4FD7 SU2 +4FD8 FU2 +4FD9 XI1 +4FDA LI3 +4FDB FU3 MIAN3 +4FDC PING1 +4FDD BAO3 +4FDE YU2 SHU4 +4FDF SI4 QI2 +4FE0 XIA2 +4FE1 XIN4 SHEN1 +4FE2 XIU1 +4FE3 YU3 +4FE4 TI4 +4FE5 CHE1 +4FE6 CHOU2 +4FE8 YAN3 +4FE9 LIA3 LIANG3 +4FEA LI4 +4FEB LAI2 LAI4 +4FED JIAN3 +4FEE XIU1 +4FEF FU3 +4FF0 HE4 +4FF1 JU4 +4FF2 XIAO4 +4FF3 PAI2 +4FF4 JIAN4 +4FF5 BIAO4 +4FF6 CHU4 TI4 +4FF7 FEI4 +4FF8 FENG4 +4FF9 YA4 +4FFA AN3 +4FFB BEI4 +4FFC YU4 +4FFD XIN1 +4FFE BI3 +4FFF JIAN4 +5000 CHANG1 +5001 CHI2 +5002 BING4 +5003 ZAN2 ZA2 +5004 YAO2 +5005 CUI4 +5006 LIA3 LIANG3 +5007 WAN3 +5008 LAI2 LAI4 +5009 CANG1 +500A ZONG4 +500B GE4 GE3 +500C GUAN1 +500D BEI4 +500E TIAN1 +500F SHU1 +5010 SHU1 +5011 MEN5 +5012 DAO3 DAO4 +5013 TAN2 +5014 JUE2 JUE4 +5015 CHUI2 +5016 XING4 +5017 PENG2 +5018 TANG3 CHANG2 +5019 HOU4 +501A YI3 +501B QI1 +501C TI4 +501D GAN4 +501E JING4 LIANG4 +501F JIE4 +5020 SUI1 +5021 CHANG4 CHANG1 +5022 JIE2 +5023 FANG3 PANG2 +5024 ZHI2 +5025 KONG1 KONG3 +5026 JUAN4 +5027 ZONG1 +5028 JU4 +5029 QIAN4 QING4 +502A NI2 NI4 +502B LUN2 +502C ZHUO1 +502D WEI1 WO1 WO3 +502E LUO3 +502F SONG1 +5030 LENG2 LENG4 LING2 +5031 HUN4 +5032 DONG1 +5033 ZI4 +5034 BEN4 +5035 WU3 +5036 JU4 JU1 +5037 NAI4 +5038 CAI3 +5039 JIAN3 +503A ZHAI4 +503B YE1 +503C ZHI2 ZHI4 +503D SHA4 +503E QING1 +5040 YING1 +5041 CHENG1 +5042 JIAN1 +5043 YAN3 +5044 NUAN4 +5045 ZHONG4 +5046 CHUN3 +5047 JIA3 JIA4 XIA2 +5048 JIE2 QI4 JI4 +5049 WEI3 +504A YU3 JU3 +504B BING3 +504C RUO4 +504D TI2 +504E WEI1 +504F PIAN1 +5050 YAN4 +5051 FENG1 +5052 TANG3 DANG4 +5053 WO4 +5054 E4 +5055 XIE2 JIE1 +5056 CHE3 +5057 SHENG3 +5058 KAN3 +5059 DI4 +505A ZUO4 +505B CHA1 +505C TING2 +505D BEI4 +505E YE4 +505F HUANG2 +5060 YAO3 +5061 ZHAN4 +5062 CHOU3 +5063 YAN1 +5064 YOU3 +5065 JIAN4 +5066 XU1 +5067 ZHA1 +5068 CI1 +5069 FU4 +506A BI1 +506B ZHI4 +506C ZONG3 +506D MIAN3 +506E JI2 +506F YI3 +5070 XIE4 +5071 XUN2 +5072 SI1 +5073 DUAN1 +5074 CE4 ZE4 +5075 ZHEN1 ZHENG1 +5076 OU3 +5077 TOU1 +5078 TOU1 +5079 BEI4 +507A ZA2 ZAN2 +507B LV3 LOU2 +507C JIE2 +507D WEI3 WEI4 +507E FEN4 +507F CHANG2 +5080 GUI1 KUI3 +5081 SOU3 +5082 ZHI4 +5083 SU4 +5084 XIA1 +5085 FU4 FU1 +5086 YUAN4 +5087 RONG3 +5088 LI4 +5089 RU4 +508A YUN3 +508B GOU4 +508C MA4 +508D BANG4 PANG2 +508E DIAN1 +508F TANG2 +5090 HAO4 +5091 JIE2 +5092 XI1 XI2 XI4 +5093 SHAN4 +5094 QIAN4 +5095 JUE2 +5096 CANG1 CHENG2 +5097 CHU4 +5098 SAN3 +5099 BEI4 +509A XIAO4 +509B YONG3 RONG2 +509C YAO2 +509D TAN4 TA4 +509E SUO1 +509F YANG3 +50A0 FA1 +50A1 BING4 +50A2 JIA1 +50A3 DAI3 +50A4 ZAI4 +50A5 TANG3 +50A7 BIN4 +50A8 CHU3 CHU2 +50A9 NUO2 +50AA CAN1 +50AB LEI3 +50AC CUI1 +50AD YONG1 YONG2 +50AE ZAO1 CAO2 +50AF ZONG3 +50B0 PENG2 +50B1 SONG3 +50B2 AO4 +50B3 CHUAN2 ZHUAN4 +50B4 YU3 +50B5 ZHAI4 +50B6 COU4 +50B7 SHANG1 +50B8 QIANG3 +50B9 JING4 JIANG1 +50BA CHI4 +50BB SHA3 +50BC HAN4 +50BD ZHANG1 +50BE QING1 +50BF YAN4 +50C0 DI4 +50C1 XI1 +50C2 LV3 LOU2 +50C3 BEI4 +50C4 PIAO4 +50C5 JIN3 JIN4 +50C6 LIAN2 LIAN3 LIAN4 +50C7 LU4 +50C8 MAN4 +50C9 QIAN1 +50CA XIAN1 +50CB TAN4 +50CC YING2 +50CD DONG4 +50CE ZHUAN4 +50CF XIANG4 +50D0 SHAN4 +50D1 QIAO2 +50D2 JIONG3 +50D3 TUI3 TUI2 +50D4 ZUN3 +50D5 PU2 +50D6 XI1 +50D7 LAO2 +50D8 CHANG3 +50D9 GUANG1 +50DA LIAO2 +50DB QI1 +50DC DENG4 +50DD CHAN2 +50DE WEI3 WEI4 +50DF JI1 +50E0 FAN1 +50E1 HUI4 +50E2 CHUAN3 +50E3 JIAN4 +50E4 DAN4 +50E5 JIAO3 +50E6 JIU4 +50E7 SENG1 +50E8 FEN4 +50E9 XIAN4 +50EA JUE2 +50EB E4 +50EC JIAO1 JIAO4 +50ED JIAN4 +50EE TONG2 ZHUANG4 +50EF LIN3 +50F0 BO2 +50F1 GU4 +50F3 SU4 +50F4 XIAN4 +50F5 JIANG1 +50F6 MIN3 +50F7 YE4 +50F8 JIN4 +50F9 JIA4 JIE5 +50FA QIAO4 +50FB PI4 +50FC FENG1 +50FD ZHOU4 +50FE AI4 +50FF SAI4 +5100 YI2 +5101 JUN4 +5102 NONG2 +5103 CHAN2 TAN3 +5104 YI4 +5105 DANG1 DANG4 +5106 JING3 +5107 XUAN1 +5108 KUAI4 +5109 JIAN3 +510A CHU4 +510B DAN1 +510C JIAO3 YAO2 +510D SHA3 +510E ZAI4 +5110 BIN4 BIN1 +5111 AN4 E4 +5112 RU2 +5113 TAI2 +5114 CHOU2 +5115 CHAI2 +5116 LAN2 +5117 NI3 +5118 JIN3 +5119 QIAN4 +511A MENG2 +511B WU3 +511C NING2 +511D QIONG2 +511E NI3 ER3 NAI3 +511F CHANG2 +5120 LIE4 +5121 LEI3 +5122 LV3 +5123 KUANG4 +5124 BAO4 +5125 DU2 +5126 BIAO1 +5127 ZAN3 +5128 ZHI2 +5129 SI4 +512A YOU1 +512B HAO2 +512C CHEN4 +512D CHEN4 +512E LI4 +512F TENG2 +5130 WEI3 +5131 LONG3 +5132 CHU3 CHU2 +5133 CHAN4 +5134 RANG2 +5135 SHU1 +5136 HUI4 +5137 LI4 +5138 LUO2 +5139 ZAN3 +513A NUO2 +513B TANG3 +513C YAN3 +513D LEI3 +513E NANG4 +513F ER2 ER5 +5140 WU4 +5141 YUN3 +5142 ZAN1 ZAN3 +5143 YUAN2 +5144 XIONG1 +5145 CHONG1 +5146 ZHAO4 +5147 XIONG1 +5148 XIAN1 +5149 GUANG1 +514A DUI4 +514B KE4 +514C DUI4 +514D MIAN3 +514E TU4 +514F CHANG2 +5150 ER2 +5151 DUI4 YUE4 RUI4 +5152 ER2 ER5 +5153 XIN1 +5154 TU4 +5155 SI4 +5156 YAN3 +5157 YAN3 +5158 SHI3 +515A DANG3 +515B QIAN1 +515C DOU1 +515D FEN1 +515E MAO2 +515F SHEN1 +5160 DOU1 +5162 JING1 +5163 LI3 KE4 +5164 HUANG2 +5165 RU4 +5166 WANG2 +5167 NEI4 NA4 +5168 QUAN2 +5169 LIANG3 LIANG4 +516A YU2 SHU4 +516B BA1 +516C GONG1 +516D LIU4 LU4 +516E XI1 +5170 LAN2 +5171 GONG4 GONG1 +5172 TIAN1 +5173 GUAN1 WAN1 +5174 XING1 XING4 +5175 BING1 +5176 QI2 JI1 +5177 JU4 +5178 DIAN3 +5179 ZI1 CI2 +517B YANG3 YANG4 +517C JIAN1 +517D SHOU4 +517E JI4 +517F YI4 +5180 JI4 +5181 CHAN3 +5182 JIONG1 +5184 RAN3 +5185 NEI4 +5187 MAO3 +5188 GANG1 +5189 RAN3 +518A CE4 +518B JIONG1 +518C CE4 +518D ZAI4 +518E GUA3 +518F JIONG3 +5190 MAO4 MO4 +5191 ZHOU4 +5192 MAO4 MOU4 MO4 +5193 GOU4 GOU1 +5194 XU3 +5195 MIAN3 +5196 MI4 +5197 RONG3 +5198 YIN2 YOU2 +5199 XIE3 +519A KAN3 +519B JUN1 +519C NONG2 +519D YI2 +519E MI2 +519F SHI4 +51A0 GUAN1 GUAN4 +51A1 MENG2 +51A2 ZHONG3 +51A3 JU4 +51A4 YUAN1 +51A5 MING2 +51A6 KOU4 +51A8 FU4 +51A9 XIE3 +51AA MI4 +51AB BING1 +51AC DONG1 +51AD TAI2 +51AE GANG1 +51AF FENG2 PING2 +51B0 BING1 NING2 +51B1 HU4 +51B2 CHONG1 +51B3 JUE2 +51B4 HU4 +51B5 KUANG4 +51B6 YE3 +51B7 LENG3 +51B8 PAN4 +51B9 FU2 +51BA MIN3 +51BB DONG4 +51BC XIAN3 +51BD LIE4 +51BE XIA2 +51BF JIAN1 +51C0 JING4 +51C1 SHU4 +51C2 MEI3 +51C3 TU2 +51C4 QI1 +51C5 GU4 HE2 +51C6 ZHUN3 +51C7 SONG1 SONG4 +51C8 JING4 +51C9 LIANG2 LIANG4 +51CA QING4 +51CB DIAO1 +51CC LING2 +51CD DONG4 +51CE GAN4 +51CF JIAN3 +51D0 YIN1 +51D1 COU4 +51D2 YI2 +51D3 LI4 +51D4 CANG1 +51D5 MING3 +51D7 CUI2 +51D8 SI1 +51D9 DUO2 +51DA JIN4 +51DB LIN3 +51DC LIN3 +51DD NING2 +51DE XI1 +51DF DU2 +51E0 JI1 JI3 +51E1 FAN2 +51E2 FAN2 +51E3 FAN2 +51E4 FENG4 +51E5 JU1 +51E6 CHU3 CHU4 JU4 +51E8 FENG1 FENG3 FENG4 +51EB FU2 +51EC FENG1 +51ED PING2 +51EE FENG1 +51EF KAI3 +51F0 HUANG2 +51F1 KAI3 +51F2 GAN1 +51F3 DENG4 +51F4 PING2 +51F5 QU1 +51F6 XIONG1 +51F7 KUAI4 +51F8 TU1 +51F9 AO1 WA1 +51FA CHU1 +51FB JI2 JI1 +51FC DANG4 +51FD HAN2 +51FE HAN2 +51FF ZAO2 ZUO4 +5200 DAO1 +5201 DIAO1 +5202 DAO1 +5203 REN4 +5204 REN4 +5205 CHUANG1 +5206 FEN1 FEN4 +5207 QIE1 QIE4 QI4 +5208 YI4 +5209 JI1 +520A KAN1 +520B QIAN4 KAN1 +520C CUN3 +520D CHU2 +520E WEN3 +520F JI1 +5210 DAN3 +5211 XING2 +5212 HUA2 HUA4 +5213 WAN2 +5214 JUE2 +5215 LI2 +5216 YUE4 +5217 LIE4 +5218 LIU2 +5219 ZE2 +521A GANG1 +521B CHUANG4 CHUANG1 +521C FU2 +521D CHU1 +521E QU4 +521F JU1 +5220 SHAN1 +5221 MIN3 +5222 LING2 +5223 ZHONG1 +5224 PAN4 +5225 BIE2 +5226 JIE2 +5227 JIE2 +5228 BAO4 PAO2 +5229 LI4 +522A SHAN1 +522B BIE2 BIE4 +522C CHAN3 +522D JING3 +522E GUA1 +522F GEN1 +5230 DAO4 +5231 CHUANG4 CHUANG1 +5232 KUI1 +5233 KU1 +5234 DUO4 +5235 ER4 +5236 ZHI4 +5237 SHUA1 SHUA4 +5238 QUAN4 +5239 CHA4 SHA1 +523A CI4 QI4 +523B KE4 +523C JIE2 +523D GUI4 +523E CI4 QI4 +523F GUI4 +5240 KAI3 +5241 DUO4 +5242 JI4 +5243 TI4 +5244 JING3 +5245 LOU2 +5246 GEN1 +5247 ZE2 +5248 YUAN1 +5249 CUO4 +524A XUE1 XIAO1 +524B KE4 +524C LA4 LA2 +524D QIAN2 +524E CHA4 SHA1 +524F CHUANG4 CHUANG1 +5250 GUA3 +5251 JIAN4 +5252 CUO4 +5253 LI2 +5254 TI1 +5255 FEI4 +5256 POU1 +5257 CHAN3 +5258 QI2 +5259 CHUANG4 CHUANG1 +525A ZI4 +525B GANG1 +525C WAN1 +525D BO1 BAO1 +525E JI1 +525F DUO1 +5260 QING2 LVE4 +5261 YAN3 SHAN4 +5262 ZHUO2 +5263 JIAN4 +5264 JI4 +5265 BO1 BAO1 PU1 +5266 YAN1 +5267 JU4 +5268 HUO4 +5269 SHENG4 +526A JIAN3 +526B DUO2 +526C DUAN1 TUAN2 ZHI4 +526D WU1 +526E GUA3 +526F FU4 +5270 SHENG4 +5271 JIAN4 +5272 GE1 +5273 ZHA1 +5274 KAI3 +5275 CHUANG4 CHUANG1 +5276 JUAN1 +5277 CHAN3 +5278 TUAN2 ZHUAN1 +5279 LU4 +527A LI2 +527B FOU2 +527C SHAN1 +527D PIAO4 PIAO1 PIAO2 BIAO3 BIAO1 +527E KOU1 +527F JIAO3 CHAO1 +5280 GUA1 +5281 QIAO1 +5282 JUE2 +5283 HUA4 HUA2 +5284 ZHA2 DA2 +5285 ZHUO4 +5286 LIAN2 +5287 JU4 +5288 PI1 PI3 +5289 LIU2 +528A GUI4 +528B JIAO3 +528C GUI4 +528D JIAN4 +528E JIAN4 +528F TANG1 +5290 HUO1 +5291 JI4 +5292 JIAN4 +5293 YI4 +5294 JIAN4 +5295 ZHI2 +5296 CHAN2 +5297 CUAN2 JIAN3 +5298 MO2 +5299 LI2 +529A ZHU2 +529B LI4 +529C YA1 +529D QUAN4 +529E BAN4 +529F GONG1 +52A0 JIA1 +52A1 WU4 +52A2 MAI4 +52A3 LIE4 +52A4 JIN4 +52A5 KENG1 +52A6 XIE2 +52A7 ZHI3 +52A8 DONG4 +52A9 ZHU4 +52AA NU3 +52AB JIE2 +52AC QU2 +52AD SHAO4 +52AE YI4 +52AF ZHU1 +52B0 MIAO3 +52B1 LI4 +52B2 JING4 JIN4 +52B3 LAO2 LAO4 +52B4 LAO2 +52B5 JUAN4 QUAN4 +52B6 KOU3 +52B7 YANG2 +52B8 WA1 +52B9 XIAO4 +52BA MOU2 +52BB KUANG1 +52BC JIE2 +52BD LIE4 +52BE HE2 +52BF SHI4 +52C0 KE4 +52C1 JIN4 JING4 +52C2 HAO2 +52C3 BO2 +52C4 MIN3 +52C5 CHI4 +52C6 LANG2 +52C7 YONG3 +52C8 YONG3 +52C9 MIAN3 +52CA KE4 +52CB XUN1 +52CC JUAN4 +52CD QING2 +52CE LU4 +52CF POU3 +52D0 MENG3 +52D1 LAI4 CHI4 +52D2 LE4 LEI1 +52D3 KAI4 +52D4 MIAN3 +52D5 DONG4 +52D6 XU4 +52D7 XU4 +52D8 KAN1 KAN4 +52D9 WU4 +52DA YI4 +52DB XUN1 +52DC WENG3 +52DD SHENG4 SHENG1 +52DE LAO2 LAO4 +52DF MU4 +52E0 LU4 +52E1 PIAO4 +52E2 SHI4 +52E3 JI1 +52E4 QIN2 +52E5 QIANG3 JIANG4 +52E6 JIAO3 CHAO1 +52E7 QUAN4 +52E8 YANG3 +52E9 YI4 +52EA JUE2 +52EB FAN2 +52EC JUAN4 +52ED TONG2 +52EE JU4 +52EF DAN1 +52F0 XIE2 +52F1 MAI4 +52F2 XUN1 +52F3 XUN1 +52F4 LV4 +52F5 LI4 +52F6 CHE4 +52F7 RANG2 XIANG1 +52F8 QUAN4 +52F9 BAO1 +52FA SHAO2 ZHUO2 +52FB YUN2 +52FC JIU1 +52FD BAO4 +52FE GOU1 GOU4 +52FF WU4 +5300 YUN2 +5303 GAI4 +5304 GAI4 +5305 BAO1 +5306 CONG1 +5308 XIONG1 +5309 PENG1 +530A JU2 +530B TAO2 +530C GE2 +530D PU2 +530E AN4 +530F PAO2 +5310 FU2 +5311 GONG1 +5312 DA2 +5313 JIU4 +5314 QIONG1 QIONG2 +5315 BI3 +5316 HUA4 HUA1 +5317 BEI3 BEI4 +5318 NAO3 +5319 CHI2 SHI5 +531A FANG1 +531B JIU4 +531C YI2 +531D ZA1 +531E JIANG4 +531F KANG4 +5320 JIANG4 +5321 KUANG1 +5322 HU1 +5323 XIA2 +5324 QU1 +5325 BIAN4 +5326 GUI3 +5327 QIE4 +5328 ZANG1 CANG2 +5329 KUANG1 +532A FEI3 FEI1 +532B HU1 +532C TOU2 +532D GUI3 +532E GUI4 KUI4 +532F HUI4 +5330 DAN1 +5331 GUI4 KUI4 +5332 LIAN2 +5333 LIAN2 +5334 SUAN3 +5335 DU2 +5336 JIU4 +5337 QU2 +5338 XI3 +5339 PI3 +533A QU1 OU1 +533B YI4 YI1 +533C QIA4 AN3 KE1 +533D YAN3 +533E BIAN3 +533F NI4 +5340 QU1 OU1 +5341 SHI2 +5342 XIN4 +5343 QIAN1 +5344 NIAN4 +5345 SA4 +5346 ZU2 +5347 SHENG1 +5348 WU3 +5349 HUI4 +534A BAN4 +534B SHI4 +534C XI4 +534D WAN4 +534E HUA2 HUA4 HUA1 +534F XIE2 +5350 WAN4 +5351 BEI1 +5352 ZU2 CU4 +5353 ZHUO1 +5354 XIE2 +5355 DAN1 SHAN4 CHAN2 +5356 MAI4 +5357 NAN2 NA1 +5358 DAN1 +5359 JI2 +535A BO2 +535B SHUAI4 +535C BU3 +535D KUANG4 +535E BIAN4 +535F BU3 +5360 ZHAN1 ZHAN4 +5361 QIA3 KA3 +5362 LU2 +5363 YOU3 +5364 LU3 +5365 XI1 +5366 GUA4 +5367 WO4 +5368 XIE4 +5369 JIE2 BU4 +536A JIE2 +536B WEI4 +536C ANG2 YANG3 +536D QIONG2 +536E ZHI1 +536F MAO3 +5370 YIN4 +5371 WEI1 WEI2 +5372 SHAO4 +5373 JI2 +5374 QUE4 +5375 LUAN3 +5376 SHI4 +5377 JUAN4 QUAN2 +5378 XIE4 +5379 XU4 +537A JIN3 +537B QUE4 +537C WU4 +537D JI2 +537E E4 +537F QING1 +5380 XI1 +5382 CHANG3 HAN4 AN1 +5383 ZHAN1 +5384 E4 +5385 TING1 +5386 LI4 +5387 ZHE2 +5388 HAN3 AN4 +5389 LI4 +538A YA3 +538B YA1 YA4 +538C YAN4 YA1 YAN1 +538D SHE4 +538E ZHI3 +538F ZHA3 +5390 PANG2 +5392 HE2 +5393 YA2 YAI2 +5394 ZHI4 +5395 CE4 +5396 PANG2 MANG2 +5397 TI2 +5398 LI2 +5399 SHE4 +539A HOU4 +539B TING1 +539C ZUI1 +539D CUO4 +539E FEI4 +539F YUAN2 YUAN4 +53A0 CE4 +53A1 YUAN2 +53A2 XIANG1 +53A3 YAN3 +53A4 LI4 +53A5 JUE2 +53A6 SHA4 XIA4 +53A7 DIAN1 +53A8 CHU2 +53A9 JIU4 +53AA QIN2 JIN3 +53AB AO2 +53AC GUI3 +53AD YAN4 YA1 YAN1 +53AE SI1 +53AF LI4 +53B0 CHANG3 +53B1 LAN2 QIAN1 +53B2 LI4 +53B3 YAN2 +53B4 YAN3 +53B5 YUAN2 +53B6 SI1 MOU3 +53B7 GONG1 +53B8 LIN2 MIAN3 +53B9 QIU2 +53BA QU4 +53BB QU4 +53BD LEI3 +53BE DU1 +53BF XIAN4 XUAN2 +53C0 ZHUAN1 HUI4 +53C1 SAN1 +53C2 CAN1 SAN1 SHEN1 DEN1 CEN1 SAN3 +53C3 CAN1 SAN1 SHEN1 DEN1 CEN1 +53C4 CAN1 CEN1 CAN4 SHEN1 SAN1 SAN3 +53C5 CAN1 CAN4 CEN1 +53C6 AI4 +53C7 DAI4 +53C8 YOU4 +53C9 CHA1 CHA2 CHA3 CHA4 CHAI1 CHA5 +53CA JI2 +53CB YOU3 +53CC SHUANG1 +53CD FAN3 FAN1 +53CE SHOU1 +53CF GUAI4 +53D0 BA2 +53D1 FA1 FA4 FA3 BO1 +53D2 RUO4 +53D3 SHI4 LI4 +53D4 SHU1 +53D5 ZHUO2 +53D6 QU3 QU1 +53D7 SHOU4 +53D8 BIAN4 +53D9 XU4 +53DA JIA3 JIA4 XIA2 +53DB PAN4 +53DC SOU3 +53DD GAO4 +53DE WEI4 +53DF SOU3 +53E0 DIE2 +53E1 RUI4 +53E2 CONG2 +53E3 KOU3 +53E4 GU3 +53E5 JU4 GOU1 +53E6 LING4 +53E7 GUA3 +53E8 TAO1 DAO1 +53E9 KOU4 +53EA ZHI3 ZHI1 +53EB JIAO4 +53EC ZHAO4 SHAO4 +53ED BA1 BA5 +53EE DING1 +53EF KE3 KE4 +53F0 TAI2 YI2 TAI1 +53F1 CHI4 +53F2 SHI3 +53F3 YOU4 +53F4 QIU2 +53F5 PO3 +53F6 XIE2 YE4 SHE4 +53F7 HAO4 HAO2 +53F8 SI1 +53F9 TAN4 +53FA CHI3 +53FB LE4 +53FC DIAO1 +53FD JI1 +53FF HONG1 +5400 MIE1 +5401 XU1 YU4 +5402 MANG2 +5403 CHI1 JI1 +5404 GE4 +5405 XUAN1 +5406 YAO1 +5407 ZI3 +5408 HE2 GE3 +5409 JI2 +540A DIAO4 +540B CUN4 +540C TONG2 TONG4 +540D MING2 +540E HOU4 +540F LI4 +5410 TU3 TU4 +5411 XIANG4 +5412 ZHA4 CHA4 ZHA1 +5413 XIA4 HE4 +5414 YE3 +5415 LV3 +5416 A1 +5417 MA5 MA2 MA3 +5418 OU3 +5419 XUE1 +541A YI1 +541B JUN1 +541C CHOU3 +541D LIN4 +541E TUN1 +541F YIN2 +5420 FEI4 +5421 BI3 +5422 QIN4 +5423 QIN4 +5424 JIE4 +5425 BU4 +5426 FOU3 PI3 +5427 BA5 BA1 +5428 DUN1 +5429 FEN1 +542A E2 +542B HAN2 +542C TING1 TING4 YIN2 +542D HANG2 KENG1 +542E SHUN3 +542F QI3 +5430 HONG2 +5431 ZHI1 ZI1 +5432 SHEN3 YIN3 +5433 WU2 +5434 WU2 +5435 CHAO3 +5436 NE5 NE4 NA4 +5437 XUE4 +5438 XI1 +5439 CHUI1 CHUI4 +543A DOU1 +543B WEN3 +543C HOU3 +543D OU1 HONG1 HOU3 OU2 +543E WU2 +543F GAO4 +5440 YA1 YA5 +5441 JUN4 +5442 LV3 +5443 E4 +5444 GE2 +5445 MEI2 +5446 DAI1 AI2 +5447 QI3 +5448 CHENG2 +5449 WU2 +544A GAO4 +544B FU1 +544C JIAO4 +544D HONG1 +544E CHI3 +544F SHENG1 +5450 NE4 NA4 +5451 TUN1 +5452 FU3 +5453 YI4 +5454 DAI1 +5455 OU1 OU3 OU4 +5456 LI4 +5457 BAI4 BEI5 +5458 YUAN2 YUN4 +5459 KUAI1 GUO1 WAI1 +545B QIANG1 QIANG4 +545C WU1 +545D E4 +545E SHI1 CHI1 +545F QUAN3 +5460 PEN1 +5461 WEN3 +5462 NI2 NE5 +5464 LING2 LING4 LING3 +5465 RAN3 RAN2 +5466 YOU1 +5467 DI3 +5468 ZHOU1 +5469 SHI4 +546A ZHOU4 +546B TIE1 CHE4 +546C XI4 +546D YI4 +546E QI4 +546F PING2 +5470 ZI3 +5471 GU1 GUA1 +5472 ZI1 +5473 WEI4 +5474 XU1 HOU3 HOU1 +5475 HE1 +5476 NAO2 +5477 XIA1 +5478 PEI1 +5479 YI4 +547A XIAO1 HAO2 +547B SHEN1 +547C HU1 XU1 +547D MING4 +547E DA2 +547F QU1 +5480 JU3 ZU3 +5482 ZA1 +5483 TUO1 +5484 DUO1 +5485 POU4 +5486 PAO2 +5487 BI4 +5488 FU2 +5489 YANG1 +548A HE2 HUO4 HUO2 HE4 +548B ZHA4 ZE2 +548C HE2 HUO4 HUO2 HE4 +548D HAI1 +548E JIU4 GAO1 +548F YONG3 +5490 FU4 +5491 QUE4 QUE1 JUE2 +5492 ZHOU4 +5493 WA3 +5494 KA3 +5495 GU1 +5496 KA1 GA1 +5497 ZUO3 +5498 BU4 +5499 LONG2 +549A DONG1 +549B NING2 +549D SI1 +549E XIAN4 XIAN2 +549F HUO4 +54A0 QI4 +54A1 ER4 +54A2 E4 +54A3 GUANG1 +54A4 ZHA4 CHA4 ZHA1 +54A5 XI4 XI1 DIE2 ZHI4 +54A6 YI2 +54A7 LIE3 LIE5 +54A8 ZI1 +54A9 MIE1 +54AA MI1 +54AB ZHI3 +54AC YAO3 JIAO1 +54AD JI1 +54AE ZHOU4 +54AF GE1 KA3 LO5 +54B0 SHUAI4 +54B1 ZAN2 ZA2 +54B2 XIAO4 +54B3 KE2 HAI1 HAI2 KAI4 +54B4 HUI1 +54B5 KUA1 +54B6 HUAI4 HUA2 SHI4 +54B7 TAO2 +54B8 XIAN2 +54B9 E4 +54BA XUAN3 XUAN1 +54BB XIU1 XU3 +54BC WAI1 +54BD YAN1 YAN4 YE4 +54BE LAO3 +54BF YI1 +54C0 AI1 +54C1 PIN3 +54C2 SHEN3 +54C3 TONG2 +54C4 HONG1 HONG3 HONG4 +54C5 XIONG1 +54C6 DUO1 CHI3 +54C7 WA1 WA5 +54C8 HA1 HA3 HA4 +54C9 ZAI1 +54CA YU4 +54CB DI4 DEI1 +54CC PAI4 +54CD XIANG3 +54CE AI1 +54CF HEN3 GEN2 +54D0 KUANG1 +54D1 YA3 YA1 E4 +54D2 DA1 +54D3 XIAO1 +54D4 BI4 +54D5 YUE3 HUI4 +54D7 HUA1 HUA2 +54D9 KUAI4 +54DA DUO3 +54DC JI4 +54DD NONG2 +54DE MOU1 +54DF YO5 +54E0 HAO4 +54E1 YUAN2 YUN4 +54E2 LONG4 +54E3 POU3 +54E4 MANG2 +54E5 GE1 +54E6 E2 O2 O4 +54E7 CHI1 +54E8 SHAO4 +54E9 LI1 LI5 LI3 +54EA NA3 NEI3 NA5 NE2 +54EB ZU2 +54EC HE2 +54ED KU1 +54EE XIAO1 +54EF XIAN4 +54F0 LAO2 +54F1 BO1 +54F2 ZHE2 +54F3 ZHA1 +54F4 LIANG4 LANG2 +54F5 BA1 +54F6 MIE1 +54F7 LE4 +54F8 SUI1 +54F9 FOU2 +54FA BU3 +54FB HAN4 +54FC HENG1 +54FD GENG3 +54FE SHUO1 +54FF GE3 KE3 +5500 YOU3 +5501 YAN4 +5502 GU3 +5503 GU3 +5504 BAI4 BEI5 +5505 HAN1 HAN2 HAN4 +5506 SUO1 +5507 CHUN2 +5508 YI4 +5509 AI1 AI4 +550A JIA2 QIAN3 +550B TU3 +550C XIAN2 YAN2 DAN4 +550D HUAN3 +550E LI4 LI1 +550F XI1 +5510 TANG2 +5511 ZUO4 +5512 QIU2 +5513 CHE1 +5514 WU2 +5515 ZAO4 +5516 YA3 +5517 DOU1 +5518 QI3 +5519 DI2 +551A QIN4 +551B MA4 +551D HONG3 GONG4 +551E DOU3 +5520 LAO2 +5521 LIANG3 +5522 SUO3 +5523 ZAO4 +5524 HUAN4 +5526 SHA1 +5527 JI1 +5528 ZUO3 ZU3 +5529 WO1 +552A FENG3 BENG3 +552B YIN2 +552C HU3 +552D QI1 +552E SHOU4 +552F WEI2 WEI3 +5530 SHUA1 +5531 CHANG4 +5532 ER2 +5533 LI4 +5534 QIANG4 +5535 AN3 +5536 JIE4 JI2 ZE4 +5537 YO1 +5538 NIAN4 +5539 YU1 YO1 +553A TIAN3 +553B LAI3 +553C SHA4 ZA1 QIE4 +553D XI1 +553E TUO4 +553F HU1 +5540 AI2 +5541 ZHOU1 ZHAO1 +5542 NOU4 +5543 KEN3 +5544 ZHUO2 ZHOU4 +5545 ZHUO2 +5546 SHANG1 +5547 DI2 +5548 HENG4 +5549 LAN2 LIN2 +554A A5 +554B XIAO1 +554C XIANG1 QIANG1 +554D TUN1 +554E WU3 +554F WEN4 +5550 CUI4 +5551 SHA4 DIE2 +5552 HU1 +5553 QI3 +5554 QI3 +5555 TAO2 +5556 DAN4 +5557 DAN4 +5558 YE4 WA1 +5559 ZI3 +555A BI3 TU2 +555B CUI4 +555C CHUO4 +555D HE2 +555E YA3 YA1 E4 +555F QI3 +5560 ZHE2 +5561 FEI1 PEI1 +5562 LIANG3 +5563 XIAN2 +5564 PI2 +5565 SHA4 +5566 LA5 LA1 +5567 ZE2 +5568 QING1 +5569 GUA4 +556A PA1 +556B ZHE3 +556C SE4 +556D ZHUAN4 +556E NIE4 +556F GUO5 +5570 LUO1 LUO2 LUO5 +5571 YAN1 +5572 DI4 +5573 QUAN2 JUE2 +5574 TAN1 CHAN3 +5575 BO5 +5576 DING4 +5577 LANG1 LANG2 +5578 XIAO4 +557A TANG2 +557B CHI4 +557C TI2 +557D AN2 +557E JIU1 +557F DAN4 +5580 KA1 KE4 KE5 +5581 YONG2 YU2 +5582 WEI4 +5583 NAN2 +5584 SHAN4 +5585 YU4 +5586 ZHE2 +5587 LA3 +5588 JIE1 +5589 HOU2 +558A HAN3 +558B DIE2 ZHA2 +558C ZHOU1 +558D CHAI2 +558E WAI1 +558F RE3 NUO4 +5590 YU4 +5591 YIN1 YIN4 +5592 ZAN2 +5593 YAO1 +5594 O1 WO1 +5595 MIAN3 +5596 HU2 +5597 YUN3 +5598 CHUAN3 +5599 HUI4 +559A HUAN4 +559B HUAN4 YUAN2 XUAN3 HE2 +559C XI3 +559D HE1 HE4 +559E JI1 +559F KUI4 +55A0 ZHONG3 +55A1 WEI3 +55A2 SHA4 +55A3 XU3 +55A4 HUANG2 +55A5 DU4 +55A6 NIE4 +55A7 XUAN1 XUAN3 +55A8 LIANG4 +55A9 YU4 +55AA SANG1 SANG4 +55AB CHI1 JI1 +55AC QIAO2 +55AD YAN4 +55AE DAN1 SHAN4 CHAN2 +55AF PEN1 +55B0 CAN1 +55B1 LI2 +55B2 YO5 +55B3 ZHA1 CHA1 +55B4 WEI1 +55B5 MIAO1 +55B6 YING2 +55B7 PEN1 PEN4 +55B9 KUI2 +55BA XI4 +55BB YU4 YU2 +55BC JIE2 +55BD LOU5 LOU2 +55BE KU4 +55BF SAO4 +55C0 HUO4 +55C1 TI2 +55C2 YAO2 +55C3 HE4 XIAO1 XIAO4 +55C4 A2 SHA4 +55C5 XIU4 +55C6 QIANG1 QIANG4 +55C7 SE4 +55C8 YONG1 +55C9 SU4 +55CA HONG3 GONG4 +55CB XIE2 +55CC YI4 AI4 +55CD SUO1 +55CE MA5 MA2 MA3 +55CF CHA1 +55D0 HAI4 +55D1 KE4 HE2 +55D2 TA4 +55D3 SANG3 +55D4 TIAN2 CHEN1 +55D5 RU4 +55D6 SOU1 +55D7 WA1 +55D8 JI1 +55D9 PANG3 +55DA WU1 +55DB XIAN2 QIAN4 QIAN3 QIE4 +55DC SHI4 +55DD GE2 +55DE ZI1 +55DF JIE1 JUE1 +55E0 LUO4 +55E1 WENG1 +55E2 WA4 +55E3 SI4 +55E4 CHI1 +55E5 HAO2 +55E6 SUO1 +55E8 HAI1 HAI3 +55E9 SUO3 +55EA QIN2 +55EB NIE4 +55EC HE1 +55EE SAI4 +55F0 GE4 +55F1 NA2 +55F2 DIA3 +55F3 AI4 AI3 AI1 +55F5 TONG1 +55F6 BI4 +55F7 AO2 +55F8 AO2 +55F9 LIAN2 +55FA CUI1 +55FB ZHE1 +55FC MO4 +55FD SOU4 +55FE SOU3 +55FF TAN3 +5600 DI2 +5601 QI1 +5602 JIAO4 +5603 CHONG1 +5604 JIAO1 +5605 KAI3 +5606 TAN4 +5607 SAN1 +5608 CAO2 +5609 JIA1 +560A AI2 +560B XIAO1 +560C PIAO1 PIAO4 +560D LOU5 LOU2 +560E GA1 GA3 +560F GU3 JIA3 +5610 XIAO1 JIAO1 +5611 HU1 HU4 LA4 +5612 HUI4 +5613 GUO1 +5614 OU1 OU3 OU4 XU1 OU5 +5615 XIAN1 +5616 ZE2 +5617 CHANG2 +5618 XU1 +5619 PO2 +561A DE2 DE1 DAI1 +561B MA5 +561C MA4 +561D HU2 +561E LEI5 +561F DU1 +5620 GA1 GA3 +5621 TANG1 +5622 YE3 +5623 BENG1 +5624 YING1 +5626 JIAO4 +5627 MI4 +5628 XIAO4 CHI4 +5629 HUA1 HUA2 +562A MAI3 +562B RAN2 +562C ZUO1 CHUAI4 +562D PENG1 +562E LAO2 +562F XIAO4 +5630 JI1 +5631 ZHU3 +5632 CHAO2 ZHAO1 +5633 KUI4 +5634 ZUI3 +5635 XIAO1 +5636 SI1 XI1 +5637 HAO2 +5638 FU3 +5639 LIAO2 LIAO4 +563A QIAO2 +563B XI1 +563C XIU4 +563D TAN1 CHAN3 +563E TAN2 +563F HEI1 MO4 +5640 XUN4 +5641 E3 WU4 +5642 ZUN3 +5643 FAN1 +5644 CHI1 +5645 HUI1 +5646 ZAN3 +5647 CHUANG2 +5648 CU4 +5649 DAN4 +564A YU4 +564B TUN1 KUO4 +564C CHENG1 CENG1 +564D JIAO4 JIAO1 +564E YE1 +564F XI1 +5650 QI4 +5651 HAO2 +5652 LIAN2 +5653 XU1 +5654 DENG1 +5655 HUI1 +5656 YIN2 +5657 PU1 +5658 JUE1 +5659 QIN2 +565A XUN2 +565B NIE4 +565C LU1 +565D SI1 +565E YAN3 +565F YING4 +5660 DA1 +5661 DAN1 ZHAN1 +5662 O1 YU3 +5663 ZHOU4 ZHUO2 +5664 JIN4 +5665 NONG2 +5666 YUE3 HUI4 +5667 HUI4 +5668 QI4 +5669 E4 +566A ZAO4 +566B YI1 +566C SHI4 +566D JIAO4 +566E YUAN1 +566F AI3 AI4 AI1 +5670 YONG1 +5671 JUE2 XUE2 +5672 KUAI4 +5673 YU3 +5674 PEN1 PEN4 +5675 DAO4 +5676 GE2 GA2 +5677 XIN1 HEN1 +5678 DUN1 +5679 DANG1 +567B SAI5 +567C PI1 +567D PI3 +567E YIN1 +567F ZUI3 +5680 NING2 +5681 DI2 +5682 LAN4 HAN3 LAN2 +5683 TA4 +5684 HUO4 HUO1 +5685 RU2 +5686 HAO1 +5687 XIA4 HE4 +5688 YA4 +5689 DUO1 +568A XI4 +568B CHOU2 +568C JI4 +568D JIN4 +568E HAO2 +568F TI4 +5690 CHANG2 +5693 CA1 +5694 TI4 +5695 LU1 +5696 HUI4 +5697 BO2 +5698 YOU1 +5699 NIE4 +569A YIN2 +569B HU4 +569C MO4 ME5 MA5 +569D HUANG1 +569E ZHE2 +569F LI2 +56A0 LIU2 LIU1 +56A2 NANG2 +56A3 XIAO1 AO2 +56A4 MO2 +56A5 YAN4 +56A6 LI4 +56A7 LU2 +56A8 LONG2 +56A9 FU2 PO2 +56AA DAN4 +56AB CHEN4 +56AC PIN2 +56AD PI3 +56AE XIANG4 +56AF HUO4 +56B0 MO2 +56B1 XI4 +56B2 DUO3 +56B3 KU4 +56B4 YAN2 +56B5 CHAN2 +56B6 YING1 +56B7 RANG3 RANG1 +56B8 DIAN3 +56B9 LA1 +56BA TA4 +56BB XIAO1 +56BC JIAO2 JUE2 JIAO4 +56BD CHUO4 +56BE HUAN1 +56BF HUO4 +56C0 ZHUAN4 +56C1 NIE4 +56C2 XIAO1 +56C3 CA4 +56C4 LI2 LEI1 +56C5 CHAN3 +56C6 CHAI4 +56C7 LI4 +56C8 YI4 +56C9 LUO1 LOU2 +56CA NANG2 +56CB ZAN4 +56CC SU1 +56CD XI3 +56CF JIAN1 +56D0 ZA2 ZAN2 +56D1 ZHU3 +56D2 LAN2 +56D3 NIE4 +56D4 NANG1 +56D7 WEI2 +56D8 HUI2 +56D9 YIN1 +56DA QIU2 +56DB SI4 +56DC NIN2 +56DD JIAN3 NAN1 +56DE HUI2 +56DF XIN4 +56E0 YIN1 +56E1 NAN1 +56E2 TUAN2 +56E3 TUAN2 +56E4 DUN4 TUN2 +56E5 KANG4 +56E6 YUAN1 +56E7 JIONG3 +56E8 PIAN1 +56E9 YUN4 +56EA CONG1 CHUANG1 +56EB HU2 +56EC HUI2 +56ED YUAN2 +56EE E2 YOU2 +56EF GUO2 +56F0 KUN4 +56F1 CONG1 CHUANG1 +56F2 WEI2 +56F3 TU2 +56F4 WEI2 +56F5 LUN2 +56F6 GUO2 +56F7 QUN1 +56F8 RI4 +56F9 LING2 +56FA GU4 +56FB GUO2 +56FC TAI1 +56FD GUO2 +56FE TU2 +56FF YOU4 +5700 GUO2 +5701 YIN2 +5702 HUN4 +5703 PU3 +5704 YU3 +5705 HAN2 +5706 YUAN2 +5707 LUN2 +5708 QUAN1 JUAN4 +5709 YU3 +570A QING1 +570B GUO2 +570C CHUAN2 CHUI2 +570D WEI2 +570E YUAN2 +570F QUAN1 +5710 KU1 +5711 FU4 +5712 YUAN2 +5713 YUAN2 +5714 E4 +5716 TU2 +5717 TU2 +5718 TUAN2 +5719 LVE4 +571A HUI4 +571B YI4 +571C YUAN2 HUAN2 +571D LUAN2 +571E LUAN2 +571F TU3 +5720 YA4 +5721 TU3 +5722 TING1 TING3 +5723 SHENG4 KU1 +5724 PU3 PU2 +5725 LU4 +5727 YA1 +5728 ZAI4 +5729 WEI2 YU2 XU1 +572A GE1 +572B YU4 AO4 +572C WU1 +572D GUI1 +572E PI3 +572F YI2 +5730 DI4 DE5 +5731 QIAN1 +5732 QIAN1 +5733 ZHEN4 +5734 ZHUO2 +5735 DANG4 +5736 QIA4 +5739 KUANG4 +573A CHANG2 CHANG3 +573B QI2 YIN2 +573C NIE4 +573D MO4 +573E JI2 JI1 +573F JIA2 +5740 ZHI3 +5741 ZHI3 +5742 BAN3 +5743 XUN1 XUN4 +5744 TOU2 +5745 QIN3 +5746 FEN2 +5747 JUN1 YUN4 +5748 KENG1 +5749 TUN2 +574A FANG1 FANG2 +574B FEN4 +574C BEN4 +574D TAN1 +574E KAN3 +574F HUAI4 PI1 PEI2 +5750 ZUO4 +5751 KENG1 +5752 BI4 +5753 XING2 +5754 DI4 +5755 JING1 +5756 JI4 +5757 KUAI4 +5758 DI3 +5759 JING1 +575A JIAN1 +575B TAN2 +575C LI4 +575D BA4 +575E WU4 +575F FEN2 +5760 ZHUI4 +5761 PO1 +5762 PAN3 PAN4 +5763 TANG1 +5764 KUN1 +5765 QU1 +5766 TAN3 +5767 ZHI1 +5768 TUO2 +5769 GAN1 +576A PING2 +576B DIAN4 +576C GUA4 +576D NI2 NI4 +576E TAI2 +576F PI1 +5770 JIONG1 +5771 YANG3 +5772 FO2 +5773 AO4 AO1 +5774 LIU4 +5775 QIU1 +5776 MU4 +5777 KE3 KE1 +5778 GOU4 +5779 XUE4 +577A BA2 BO1 +577B CHI2 DI3 +577C CHE4 +577D LING2 +577E ZHU4 +577F FU4 +5780 HU1 +5781 ZHI4 +5782 CHUI2 +5783 LA1 LA5 +5784 LONG3 +5785 LONG3 +5786 LU2 +5787 AO4 AO1 +5789 PAO2 +578B XING2 +578C DONG4 TONG2 +578D JI4 +578E KE4 +578F LU4 +5790 CI2 +5791 CHI3 +5792 LEI3 LEI4 LEI2 LV4 +5793 GAI1 +5794 YIN1 +5795 HOU4 +5796 DUI1 +5797 ZHAO4 +5798 FU2 +5799 GUANG1 +579A YAO2 +579B DUO3 +579C DUO3 +579D GUI3 +579E CHA2 +579F YANG2 +57A0 YIN2 +57A1 FA2 +57A2 GOU4 +57A3 YUAN2 +57A4 DIE2 +57A5 XIE2 +57A6 KEN3 +57A7 JIONG1 SHANG3 +57A8 SHOU3 +57A9 E4 +57AB DIAN4 +57AC HONG2 +57AD WU4 YA4 +57AE KUA3 +57B1 DANG4 +57B2 KAI3 +57B4 NAO3 +57B5 AN3 +57B6 XING1 +57B7 XIAN4 +57B8 HUAN4 +57B9 BANG1 +57BA PEI1 FU2 POU2 +57BB BA4 +57BC YI4 +57BD YIN4 +57BE HAN4 +57BF XU4 +57C0 CHUI2 ZHUI4 +57C1 CEN2 +57C2 GENG3 +57C3 AI1 +57C4 PENG2 +57C5 FANG2 FANG1 DI4 +57C6 QUE4 +57C7 YONG3 +57C8 XUN4 +57C9 JIA2 +57CA DI4 +57CB MAI2 MAN2 +57CC LANG4 +57CD XUAN4 +57CE CHENG2 +57CF YAN2 SHAN1 +57D0 JIN1 +57D1 ZHE2 +57D2 LEI4 +57D3 LIE4 +57D4 PU3 BU4 +57D5 CHENG2 +57D7 BU4 +57D8 SHI2 +57D9 XUN1 XUAN1 +57DA GUO1 +57DB JIONG1 +57DC YE3 +57DD NIAN4 +57DE DI3 +57DF YU4 +57E0 BU4 +57E1 YA4 +57E2 JUAN3 +57E3 SUI4 +57E4 PI2 BEI1 BI4 +57E5 CHENG1 +57E6 WAN3 +57E7 JU4 +57E8 LUN3 LUN4 +57E9 ZHENG1 +57EA KONG1 +57EB CHONG3 +57EC DONG1 +57ED DAI4 +57EE TAN4 +57EF AN3 +57F0 CAI4 +57F1 SHU2 +57F2 BENG3 BANG4 +57F3 KAN3 +57F4 ZHI2 +57F5 DUO3 +57F6 YI4 SHI4 +57F7 ZHI2 +57F8 YI4 +57F9 PEI2 POU3 +57FA JI1 +57FB ZHUN3 +57FC QI2 +57FD SAO4 SAO3 +57FE JU4 +57FF NI2 BAN4 +5800 KU1 +5801 KE4 +5802 TANG2 +5803 KUN1 +5804 NI4 +5805 JIAN1 +5806 DUI1 +5807 JIN3 +5808 GANG1 +5809 YU4 +580A E4 +580B PENG2 BENG4 +580C GU4 +580D TU4 +580E LENG4 +5810 YA2 +5811 QIAN4 +5813 AN4 +5815 DUO4 HUI1 +5816 NAO3 +5817 TU1 +5818 CHENG2 +5819 YIN1 +581A HUN2 +581B BI4 +581C LIAN4 +581D GUO1 +581E DIE2 +581F ZHUAN4 +5820 HOU4 +5821 BAO3 BU3 PU4 +5822 BAO3 +5823 YU2 +5824 DI1 TI2 +5825 MAO2 +5826 JIE1 +5827 RUAN2 +5828 E4 AI4 YE4 +5829 GENG4 +582A KAN1 +582B ZONG1 +582C YU2 +582D HUANG2 +582E E4 +582F YAO2 +5830 YAN4 +5831 BAO4 +5832 JI2 +5833 MEI2 +5834 CHANG2 CHANG3 +5835 DU3 +5836 TUO2 +5837 YIN4 POU3 +5838 FENG2 +5839 ZHONG4 +583A JIE4 +583B ZHEN1 +583C FENG1 +583D GANG1 +583E CHUAN3 CHUN3 CHUN1 +583F JIAN3 +5842 XIANG4 JIANG3 +5843 HUANG1 +5844 LENG2 +5845 DUAN4 +5847 XUAN1 +5848 JI4 XI4 +5849 JI2 +584A KUAI4 +584B YING2 +584C TA1 +584D CHENG2 +584E YONG3 +584F KAI3 +5850 SU4 +5851 SU4 +5852 SHI2 +5853 MI4 +5854 TA3 +5855 WENG3 +5856 CHENG2 +5857 TU2 +5858 TANG2 +5859 QUE4 +585A ZHONG3 +585B LI4 +585C PENG2 +585D BANG4 +585E SAI1 SE4 SAI4 +585F ZANG4 +5860 DUI1 +5861 TIAN2 +5862 WU4 +5863 CHENG3 +5864 XUN1 XUAN1 +5865 GE2 +5866 ZHEN4 +5867 AI4 +5868 GONG1 +5869 YAN2 +586A KAN3 XIAN4 +586B TIAN2 +586C YUAN2 +586D WEN1 +586E XIE4 +586F LIU4 +5871 LANG3 +5872 CHANG2 CHANG3 +5873 PENG2 +5874 BENG4 +5875 CHEN2 +5876 CU4 +5877 LU3 +5878 OU3 OU1 +5879 QIAN4 +587A MEI2 MO4 +587B MO4 +587C ZHUAN1 +587D SHUANG3 +587E SHU2 +587F LOU3 +5880 CHI2 +5881 MAN4 +5882 BIAO1 +5883 JING4 +5884 QI1 +5885 SHU4 +5886 DI4 DIE2 +5887 ZHANG1 +5888 KAN4 +5889 YONG1 YONG2 +588A DIAN4 +588B CHEN3 +588C ZHI1 +588D XI4 JI4 +588E GUO1 GUO4 +588F QIANG3 +5890 JIN4 +5891 DI1 +5892 SHANG1 +5893 MU4 +5894 CUI1 +5895 YAN4 +5896 TA3 +5897 ZENG1 +5898 QI2 +5899 QIANG2 +589A LIANG2 +589C ZHUI4 +589D QIAO1 +589E ZENG1 +589F XU1 +58A0 SHAN4 +58A1 SHAN4 +58A2 BA2 FEI4 BO1 +58A3 PU1 PU2 +58A4 KUAI4 TUI2 +58A5 DONG3 +58A6 FAN2 +58A7 QUE4 QIAO2 +58A8 MO4 +58A9 DUN1 +58AA DUN1 +58AB ZUN1 CUN2 +58AC DI4 DE5 +58AD SHENG4 +58AE DUO4 HUI1 +58AF DUO4 HUI1 +58B0 TAN2 +58B1 DENG4 +58B2 WU3 +58B3 FEN2 +58B4 HUANG2 +58B5 TAN2 +58B6 DA1 DA5 +58B7 YE4 +58BA AO4 YU4 +58BB QIANG2 +58BC JI1 +58BD QIAO1 +58BE KEN3 +58BF YI4 +58C0 PI2 BI4 PI4 BEI1 +58C1 BI4 +58C2 DIAN4 +58C3 JIANG1 +58C4 YE3 +58C5 YONG1 YONG3 +58C6 BO2 +58C7 TAN2 +58C8 LAN3 +58C9 JU4 +58CA HUAI4 +58CB DANG4 +58CC RANG3 +58CD QIAN4 +58CE XUN1 XUAN1 +58CF LAN4 HAN3 +58D0 XI3 +58D1 HE4 HUO4 +58D2 AI4 +58D3 YA1 YA4 +58D4 DAO3 +58D5 HAO2 +58D6 RUAN2 +58D8 LEI3 LEI4 LEI2 LV4 +58D9 KUANG4 +58DA LU2 +58DB YAN2 +58DC TAN2 +58DD WEI2 WEI3 +58DE HUAI4 +58DF LONG3 +58E0 LONG3 +58E1 RUI4 +58E2 LI4 +58E3 LIN2 +58E4 RANG3 +58E6 XUN1 XUN4 +58E7 YAN2 +58E8 LEI2 +58E9 BA4 +58EB SHI4 +58EC REN2 +58EE ZHUANG4 +58EF ZHUANG4 +58F0 SHENG1 +58F1 YI1 +58F2 MAI4 +58F3 KE2 QIAO4 +58F4 ZHU3 +58F5 ZHUANG4 +58F6 HU2 +58F7 HU2 +58F8 KUN3 +58F9 YI1 YI4 +58FA HU2 +58FB XU4 +58FC KUN3 +58FD SHOU4 +58FE MANG3 +58FF ZUN1 CUN1 ZUN3 +5900 SHOU4 +5901 YI1 YIN1 +5902 ZHI3 +5903 GU1 +5904 CHU4 CHU3 +5905 JIANG4 +5906 FENG2 PANG2 +5907 BEI4 +5909 BIAN4 +590A SUI1 +590B QUN1 +590C LING2 +590D FU4 +590E ZUO4 +590F XIA4 JIA3 +5910 XIONG4 +5912 NAO2 +5913 XIA4 +5914 KUI2 +5915 XI1 XI4 +5916 WAI4 +5917 YUAN4 WAN3 +5918 MAO3 +5919 SU4 +591A DUO1 +591B DUO1 +591C YE4 +591D QING2 +591F GOU4 +5920 GOU4 +5921 QI4 +5922 MENG4 MENG2 +5923 MENG4 +5924 YIN2 +5925 HUO3 +5926 CHEN4 +5927 DA4 DAI4 TAI4 +5928 ZE4 +5929 TIAN1 +592A TAI4 +592B FU1 FU2 +592C GUAI4 +592D YAO1 WO4 WAI1 YAO3 +592E YANG1 +592F HANG1 BEN4 +5930 GAO3 +5931 SHI1 +5932 BEN3 TAO1 +5933 TAI4 +5934 TOU2 TOU5 +5935 YAN3 +5936 BI3 +5937 YI2 +5938 KUA1 +5939 JIA1 JIA2 +593A DUO2 +593C KUANG3 +593D YUN4 +593E JIA1 JIA2 +593F PA1 BA1 +5940 EN1 MANG2 +5941 LIAN2 +5942 HUAN4 +5943 DI4 DI1 +5944 YAN3 YAN1 +5945 PAO4 +5946 QUAN3 +5947 QI2 JI1 +5948 NAI4 +5949 FENG4 +594A XIE2 +594B FEN4 +594C DIAN3 +594E KUI2 +594F ZOU4 +5950 HUAN4 +5951 QI4 QIE4 XIE4 +5952 KAI1 ZHA1 ZHA4 +5953 SHE1 CHI3 ZHA4 ZHA1 +5954 BEN1 BEN4 +5955 YI4 +5956 JIANG3 +5957 TAO4 +5958 ZANG4 ZHUANG3 +5959 BEN3 +595A XI1 XI2 +595B XIANG3 +595C FEI3 +595D DIAO1 +595E XUN4 +595F KENG1 +5960 DIAN4 +5961 AO4 +5962 SHE1 +5963 WENG3 +5964 PAN3 HA3 TAI3 +5965 AO4 +5966 WU4 +5967 AO4 YU4 +5968 JIANG3 +5969 LIAN2 +596A DUO2 +596B YUN1 +596C JIANG3 +596D SHI4 +596E FEN4 +596F HUO4 +5970 BI4 +5971 LIAN2 +5972 DUO3 +5973 NV3 RU3 +5974 NU2 +5975 DING1 +5976 NAI3 +5977 QIAN1 +5978 JIAN1 +5979 TA1 +597A JIU3 +597B NAN2 +597C CHA4 +597D HAO3 HAO4 +597E XIAN1 +597F FAN4 +5980 JI3 +5981 SHUO4 +5982 RU2 +5983 FEI1 PEI4 +5984 WANG4 +5985 HONG2 +5986 ZHUANG1 +5987 FU4 +5988 MA1 +5989 DAN1 +598A REN4 +598B FU1 +598C JING4 +598D YAN2 +598E XIE4 +598F WEN4 +5990 ZHONG1 +5991 PA1 +5992 DU4 +5993 JI4 +5994 KENG1 +5995 ZHONG4 +5996 YAO1 +5997 JIN4 +5998 YUN2 +5999 MIAO4 +599A PEI1 +599C YUE4 +599D ZHUANG1 +599E NIU1 +599F YAN4 +59A0 NA4 +59A1 XIN1 +59A2 FEN2 +59A3 BI3 +59A4 YU2 +59A5 TUO3 +59A6 FENG1 +59A7 YUAN2 +59A8 FANG2 FANG1 +59A9 WU3 +59AA YU4 YU3 +59AB GUI1 +59AC DU4 +59AD BA2 +59AE NI1 NI2 +59AF ZHOU2 ZHU2 +59B0 ZHUO2 +59B1 ZHAO1 +59B2 DA2 +59B3 NAI3 NI3 +59B4 YUAN3 +59B5 TOU3 +59B6 XUAN2 +59B7 ZHI2 +59B8 E1 +59B9 MEI4 +59BA MO4 +59BB QI1 QI4 +59BC BI4 +59BD SHEN1 +59BE QIE4 +59BF E1 +59C0 HE2 +59C1 XU3 XU1 +59C2 FA2 +59C3 ZHENG1 +59C4 MIN2 +59C5 BAN4 +59C6 MU3 +59C7 FU1 +59C8 LING2 +59C9 ZI3 +59CA ZI3 +59CB SHI3 +59CC RAN3 +59CD SHAN1 +59CE YANG1 +59CF MAN2 +59D0 JIE3 +59D1 GU1 +59D2 SI4 +59D3 XING4 +59D4 WEI3 WEI1 +59D5 ZI1 +59D6 JU4 +59D7 SHAN1 +59D8 PIN1 +59D9 REN4 +59DA YAO2 +59DB TONG3 +59DC JIANG1 +59DD SHU1 +59DE JI2 +59DF GAI1 +59E0 SHANG4 +59E1 KUO4 +59E2 JUAN1 +59E3 JIAO1 JIAO3 XIAO2 +59E4 GOU4 +59E5 MU3 LAO3 +59E6 JIAN1 +59E7 JIAN1 +59E8 YI2 +59E9 NIAN4 +59EA ZHI2 +59EB JI1 +59EC JI1 +59ED XIAN4 +59EE HENG2 +59EF GUANG1 +59F0 JUN1 +59F1 KUA1 +59F2 YAN4 +59F3 MING3 +59F4 LIE4 +59F5 PEI4 +59F6 YAN3 +59F7 YOU4 +59F8 YAN2 +59F9 CHA4 +59FA SHEN1 XIAN3 XIAN1 +59FB YIN1 +59FC CHI3 +59FD GUI3 +59FE QUAN1 +59FF ZI1 +5A00 SONG1 +5A01 WEI1 +5A02 HONG2 +5A03 WA2 +5A04 LOU2 +5A05 YA4 +5A06 RAO3 RAO2 +5A07 JIAO1 +5A08 LUAN2 LIAN4 +5A09 PING1 +5A0A XIAN4 +5A0B SHAO4 +5A0C LI3 +5A0D CHENG2 +5A0E XIAO4 XIE1 +5A0F MANG2 +5A11 SUO1 +5A12 WU3 +5A13 WEI3 +5A14 KE4 +5A15 LAI4 +5A16 CHUO4 +5A17 DING4 +5A18 NIANG2 +5A19 XING2 +5A1A NAN2 +5A1B YU2 +5A1C NUO2 NA4 +5A1D PEI1 +5A1E NEI3 +5A1F JUAN1 +5A20 SHEN1 +5A21 ZHI4 +5A22 HAN2 +5A23 DI4 +5A24 ZHUANG1 +5A25 E2 +5A26 PIN2 +5A27 TUI4 +5A28 HAN4 +5A29 MIAN3 WAN3 +5A2A WU2 +5A2B YAN2 +5A2C WU3 +5A2D XI1 AI1 +5A2E YAN2 +5A2F YU2 +5A30 SI4 +5A31 YU2 +5A32 WA1 +5A34 XIAN2 +5A35 JU1 +5A36 QU3 +5A37 SHUI4 +5A38 QI1 +5A39 XIAN2 +5A3A ZHUI1 +5A3B DONG1 +5A3C CHANG1 +5A3D LU4 +5A3E AI3 +5A3F E1 +5A40 E1 +5A41 LOU2 +5A42 MIAN2 +5A43 CONG2 +5A44 POU3 +5A45 JU2 +5A46 PO2 +5A47 CAI3 +5A48 DING2 +5A49 WAN3 +5A4A BIAO3 +5A4B XIAO1 +5A4C SHU3 +5A4D QI3 +5A4E HUI1 +5A4F FU4 +5A50 E1 WO3 +5A51 WO3 +5A52 TAN2 +5A53 FEI1 +5A55 JIE2 +5A56 TIAN1 +5A57 NI2 +5A58 QUAN2 JUAN4 +5A59 JING4 +5A5A HUN1 +5A5B JING1 +5A5C QIAN1 +5A5D DIAN4 +5A5E XING4 +5A5F HU4 +5A60 WA4 WAN1 +5A61 LAI2 +5A62 BI4 +5A63 YIN1 +5A64 ZHOU1 CHOU1 +5A65 CHUO4 +5A66 FU4 +5A67 JING4 +5A68 LUN2 +5A69 YAN4 +5A6A LAN2 +5A6B KUN1 +5A6C YIN2 +5A6D YA4 +5A6F LI4 +5A70 DIAN3 +5A71 XIAN2 +5A73 HUA4 +5A74 YING1 +5A75 CHAN2 +5A76 SHEN3 +5A77 TING2 +5A78 DANG4 +5A79 YAO3 +5A7A WU4 +5A7B NAN4 +5A7C RUO4 CHUO4 +5A7D JIA3 +5A7E TOU1 YU2 +5A7F XU4 +5A80 YU2 +5A81 WEI1 +5A82 TI2 +5A83 ROU2 +5A84 MEI3 +5A85 DAN1 +5A86 RUAN3 +5A87 QIN1 +5A89 WU1 +5A8A QIAN2 +5A8B CHUN1 +5A8C MAO2 MIAO2 +5A8D FU4 +5A8E JIE3 +5A8F DUAN1 +5A90 XI1 +5A91 ZHONG4 +5A92 MEI2 +5A93 HUANG2 +5A94 MIAN2 +5A95 AN1 +5A96 YING1 +5A97 XUAN1 +5A99 WEI1 +5A9A MEI4 +5A9B YUAN4 YUAN2 +5A9C ZHEN1 +5A9D QIU1 +5A9E TI2 DI4 +5A9F XIE4 +5AA0 TUO3 DUO4 +5AA1 LIAN4 +5AA2 MAO4 +5AA3 RAN3 +5AA4 SI1 +5AA5 PIAN1 +5AA6 WEI4 +5AA7 WA1 +5AA8 JIU4 +5AA9 HU2 +5AAA AO3 +5AAD XU1 +5AAE TOU1 YU2 +5AAF GUI1 +5AB0 ZOU1 +5AB1 YAO2 +5AB2 PI4 +5AB3 XI2 +5AB4 YUAN2 +5AB5 YING4 +5AB6 RONG2 +5AB7 RU4 +5AB8 CHI1 +5AB9 LIU2 +5ABA MEI3 +5ABB PAN2 +5ABC AO3 +5ABD MA1 +5ABE GOU4 +5ABF KUI4 GUI3 +5AC0 QIN2 +5AC1 JIA4 +5AC2 SAO3 +5AC3 ZHEN1 +5AC4 YUAN2 +5AC5 CHA1 +5AC6 YONG2 +5AC7 MING2 +5AC8 YING1 +5AC9 JI2 +5ACA SU4 +5ACB NIAO3 +5ACC XIAN2 +5ACD TAO1 +5ACE PANG2 +5ACF LANG2 +5AD0 NAO3 +5AD1 BAO2 +5AD2 AI4 +5AD3 PI4 +5AD4 PIN2 +5AD5 YI4 +5AD6 PIAO4 PIAO2 BIAO1 PIAO1 +5AD7 YU4 YU3 +5AD8 LEI2 +5AD9 XUAN2 +5ADA MAN4 +5ADB YI1 +5ADC ZHANG1 +5ADD KANG1 +5ADE YONG2 +5ADF NI4 +5AE0 LI2 +5AE1 DI2 +5AE2 GUI1 +5AE3 YAN1 +5AE4 JIN4 +5AE5 ZHUAN1 +5AE6 CHANG2 +5AE7 CE4 +5AE8 HAN1 +5AE9 NEN4 NUN4 +5AEA LAO4 +5AEB MO2 +5AEC ZHE1 +5AED HU4 +5AEE HU4 +5AEF AO4 +5AF0 NEN4 NUN4 +5AF1 QIANG2 +5AF3 PIE4 +5AF4 GU1 +5AF5 WU3 +5AF6 JIAO2 +5AF7 TUO3 +5AF8 ZHAN3 +5AF9 MAO2 +5AFA XIAN2 +5AFB XIAN2 +5AFC MO4 +5AFD LIAO2 +5AFE LIAN2 +5AFF HUA4 +5B00 GUI1 +5B01 DENG1 +5B02 ZHI1 +5B03 XU1 +5B05 HUA2 +5B06 XI1 +5B07 HUI4 +5B08 RAO3 RAO2 YAO3 +5B09 XI1 +5B0A YAN4 +5B0B CHAN2 +5B0C JIAO1 +5B0D MEI3 +5B0E FAN4 +5B0F FAN1 +5B10 XIAN1 +5B11 YI4 +5B12 WEI4 +5B13 JIAO4 +5B14 FU4 +5B15 SHI4 +5B16 BI4 +5B17 SHAN4 +5B18 SUI4 +5B19 QIANG2 +5B1A LIAN3 +5B1B HUAN2 QIONG2 YUAN1 +5B1D NIAO3 +5B1E DONG3 +5B1F YI4 +5B20 CAN2 +5B21 AI4 +5B22 NIANG2 +5B23 NENG2 +5B24 MA1 +5B25 TIAO3 TIAO2 +5B26 CHOU2 +5B27 JIN4 +5B28 CI2 +5B29 YU2 +5B2A PIN2 +5B2C XU1 +5B2D NAI3 +5B2E YAN1 YAN4 +5B2F TAI2 +5B30 YING1 +5B31 CAN2 +5B32 NIAO3 +5B34 YING2 +5B35 MIAN2 +5B37 MA1 +5B38 SHEN3 +5B39 XING4 +5B3A NI4 +5B3B DU2 +5B3C LIU3 +5B3D YUAN1 +5B3E LAN3 +5B3F YAN4 +5B40 SHUANG1 +5B41 LING2 +5B42 JIAO3 +5B43 NIANG2 NANG2 RANG2 RANG3 +5B44 LAN3 +5B45 XIAN1 QIAN1 +5B46 YING1 +5B47 SHUANG1 +5B48 SHUAI1 +5B49 QUAN2 +5B4A MI3 +5B4B LI2 +5B4C LUAN2 LIAN4 +5B4D YAN2 +5B4E ZHU3 +5B4F LAN3 +5B50 ZI3 ZI5 +5B51 JIE2 +5B52 JUE2 +5B53 JUE2 +5B54 KONG3 +5B55 YUN4 +5B56 ZI1 MA1 +5B57 ZI4 +5B58 CUN2 +5B59 SUN1 XUN4 +5B5A FU2 FU1 +5B5B BEI4 BO2 +5B5C ZI1 +5B5D XIAO4 +5B5E XIN4 +5B5F MENG4 +5B60 SI4 +5B61 TAI1 +5B62 BAO1 +5B63 JI4 +5B64 GU1 +5B65 NU2 +5B66 XUE2 +5B68 ZHUAN3 +5B69 HAI2 +5B6A LUAN2 +5B6B SUN1 XUN4 +5B6C HUAI4 NAO1 +5B6D MIE1 +5B6E CONG2 +5B6F QIAN1 +5B70 SHU2 +5B71 CHAN2 CAN4 +5B72 YA1 +5B73 ZI1 ZI4 +5B74 NI3 +5B75 FU1 +5B76 ZI1 ZI4 +5B77 LI2 +5B78 XUE2 +5B79 BO4 +5B7A RU2 RU4 +5B7B LAI2 +5B7C NIE4 +5B7D NIE4 +5B7E YING1 +5B7F LUAN2 +5B80 MIAN2 +5B81 NING2 ZHU4 NING4 +5B82 RONG3 +5B83 TA1 TUO1 +5B84 GUI3 +5B85 ZHAI2 +5B86 QIONG2 +5B87 YU3 +5B88 SHOU3 SHOU4 +5B89 AN1 +5B8A TU2 +5B8B SONG4 +5B8C WAN2 +5B8D ROU4 +5B8E YAO3 YAO1 YAO4 +5B8F HONG2 +5B90 YI2 +5B91 JING3 +5B92 ZHUN1 +5B93 MI4 FU2 +5B94 ZHU3 +5B95 DANG4 +5B96 HONG2 +5B97 ZONG1 +5B98 GUAN1 +5B99 ZHOU4 +5B9A DING4 +5B9B WAN3 YUAN1 +5B9C YI2 +5B9D BAO3 +5B9E SHI2 +5B9F SHI2 +5BA0 CHONG3 +5BA1 SHEN3 +5BA2 KE4 +5BA3 XUAN1 +5BA4 SHI4 +5BA5 YOU4 +5BA6 HUAN4 +5BA7 YI2 +5BA8 TIAO3 +5BA9 SHI3 +5BAA XIAN4 +5BAB GONG1 +5BAC CHENG2 +5BAD QUN2 +5BAE GONG1 +5BAF XIAO1 +5BB0 ZAI3 +5BB1 ZHA4 +5BB2 BAO3 +5BB3 HAI4 HE2 +5BB4 YAN4 +5BB5 XIAO1 +5BB6 JIA1 JIE5 GU1 +5BB7 SHEN3 +5BB8 CHEN2 +5BB9 RONG2 +5BBA HUANG3 +5BBB MI4 +5BBC KOU4 +5BBD KUAN1 +5BBE BIN1 BIN4 +5BBF SU4 XIU3 XIU4 +5BC0 CAI4 +5BC1 ZAN3 JIE2 +5BC2 JI4 +5BC3 YUAN1 +5BC4 JI4 +5BC5 YIN2 +5BC6 MI4 +5BC7 KOU4 +5BC8 QING1 +5BC9 QUE4 +5BCA ZHEN1 +5BCB JIAN3 +5BCC FU4 +5BCD NING2 NING4 +5BCE BING4 +5BCF HUAN2 +5BD0 MEI4 +5BD1 QIN3 +5BD2 HAN2 +5BD3 YU4 +5BD4 SHI2 +5BD5 NING2 NING4 +5BD6 JIN4 QIN4 +5BD7 NING2 NING4 +5BD8 ZHI4 +5BD9 YU3 +5BDA BAO3 +5BDB KUAN1 +5BDC NING2 NING4 +5BDD QIN3 +5BDE MO4 +5BDF CHA2 +5BE0 JU4 LOU2 +5BE1 GUA3 +5BE2 QIN3 +5BE3 HU1 +5BE4 WU4 +5BE5 LIAO2 +5BE6 SHI2 +5BE7 NING2 NING4 ZHU4 +5BE8 ZHAI4 +5BE9 SHEN3 +5BEA WEI3 +5BEB XIE3 +5BEC KUAN1 +5BED HUI4 +5BEE LIAO2 +5BEF JUN4 +5BF0 HUAN2 +5BF1 YI4 +5BF2 YI2 +5BF3 BAO3 +5BF4 QIN4 +5BF5 CHONG3 +5BF6 BAO3 +5BF7 FENG1 +5BF8 CUN4 +5BF9 DUI4 +5BFA SI4 +5BFB XUN2 XIN2 +5BFC DAO3 DAO4 +5BFD LV4 +5BFE DUI4 +5BFF SHOU4 +5C00 PO3 +5C01 FENG1 +5C02 ZHUAN1 +5C03 FU1 +5C04 SHE4 YI4 YE4 +5C05 KE4 +5C06 JIANG1 JIANG4 QIANG1 +5C07 JIANG1 JIANG4 QIANG1 +5C08 ZHUAN1 +5C09 WEI4 YU4 +5C0A ZUN1 +5C0B XUN2 XIN2 +5C0C SHU4 +5C0D DUI4 +5C0E DAO3 DAO4 +5C0F XIAO3 +5C10 JI1 +5C11 SHAO3 SHAO4 +5C12 ER3 +5C13 ER3 +5C14 ER3 +5C15 GA3 +5C16 JIAN1 +5C17 SHU2 +5C18 CHEN2 +5C19 SHANG4 CHANG2 +5C1A SHANG4 CHANG2 +5C1C GA2 +5C1D CHANG2 +5C1E LIAO4 LIAO2 +5C1F XIAN3 +5C20 XIAN3 +5C22 WANG1 YOU2 +5C23 WANG1 +5C24 YOU2 +5C25 LIAO4 +5C26 LIAO4 +5C27 YAO2 +5C28 MANG2 MENG2 PANG2 +5C29 WANG1 +5C2A WANG1 +5C2B WANG1 +5C2C GA4 +5C2D YAO2 +5C2E DUO4 +5C2F KUI4 KUI3 +5C30 ZHONG3 +5C31 JIU4 +5C32 GAN1 +5C33 GU3 +5C34 GAN1 +5C35 TUI2 +5C36 GAN1 +5C37 GAN1 +5C38 SHI1 +5C39 YIN3 +5C3A CHI3 CHE3 +5C3B KAO1 +5C3C NI2 +5C3D JIN3 +5C3E WEI3 YI3 +5C3F NIAO4 SUI1 +5C40 JU2 +5C41 PI4 +5C42 CENG2 +5C43 XI4 +5C44 BI1 +5C45 JU1 JI1 +5C46 JIE4 +5C47 TIAN2 +5C48 QU1 +5C49 TI4 +5C4A JIE4 +5C4B WU1 +5C4C DIAO3 +5C4D SHI1 +5C4E SHI3 XI1 +5C4F PING2 BING3 BING4 +5C50 JI1 +5C51 XIE4 +5C52 CHEN2 +5C53 XI4 +5C54 NI2 +5C55 ZHAN3 +5C56 XI1 +5C58 MAN3 +5C59 E1 +5C5A LOU4 +5C5B PING2 BING3 BING4 BING1 +5C5C TI4 +5C5D FEI4 +5C5E SHU3 ZHU3 +5C5F XIE4 +5C60 TU2 +5C61 LV3 +5C62 LV3 +5C63 XI3 +5C64 CENG2 +5C65 LV3 +5C66 JU4 +5C67 XIE4 +5C68 JU4 +5C69 JUE1 +5C6A LIAO2 +5C6B JUE2 +5C6C SHU3 ZHU3 +5C6D XI4 +5C6E CHE4 CAO3 +5C6F TUN2 ZHUN1 +5C70 NI4 +5C71 SHAN1 +5C73 XIAN1 +5C74 LI4 LE4 +5C75 XUE1 +5C78 LONG2 +5C79 YI4 +5C7A QI3 +5C7B REN4 +5C7C WU4 +5C7D HAN4 +5C7E SHEN1 +5C7F YU3 XU4 +5C80 CHU1 +5C81 SUI4 +5C82 QI3 KAI3 +5C84 YUE4 +5C85 BAN3 +5C86 YAO3 +5C87 ANG2 +5C88 YA2 +5C89 WU4 +5C8A JIE2 +5C8B E4 +5C8C JI2 +5C8D QIAN1 +5C8E FEN1 +5C8F YUAN2 +5C90 QI2 +5C91 CEN2 +5C92 QIAN2 +5C93 QI2 +5C94 CHA4 +5C95 JIE4 +5C96 QU1 +5C97 GANG3 GANG1 +5C98 XIAN4 +5C99 AO4 +5C9A LAN2 +5C9B DAO3 +5C9C BA1 +5C9D ZUO4 +5C9E ZUO4 +5C9F YANG3 +5CA0 JU4 +5CA1 GANG1 +5CA2 KE3 +5CA3 GOU3 +5CA4 XUE4 +5CA5 BEI1 PO1 PI2 +5CA6 LI4 +5CA7 TIAO2 +5CA8 JU1 JU3 +5CA9 YAN2 +5CAA FU2 +5CAB XIU4 +5CAC JIA3 +5CAD LING2 LING3 +5CAE TUO2 +5CAF PEI1 PEI2 +5CB0 YOU3 +5CB1 DAI4 +5CB2 KUANG4 +5CB3 YUE4 +5CB4 QU1 +5CB5 HU4 +5CB6 PO4 +5CB7 MIN2 +5CB8 AN4 +5CB9 TIAO2 +5CBA LING2 +5CBB CHI2 +5CBD DONG1 +5CBF KUI1 +5CC0 XIU4 +5CC1 MAO3 +5CC2 TONG2 +5CC3 XUE2 +5CC4 YI4 +5CC6 HE1 +5CC7 KE1 BA1 +5CC8 LUO4 +5CC9 E1 E4 +5CCA FU4 NIE4 +5CCB XUN2 +5CCC DIE2 +5CCD LU4 +5CCE AN1 +5CCF ER3 +5CD0 GAI1 +5CD1 QUAN2 +5CD2 TONG2 DONG4 +5CD3 YI2 +5CD4 MU3 +5CD5 SHI2 +5CD6 AN1 +5CD7 WEI2 +5CD8 HU1 HUAN2 +5CD9 ZHI4 SHI4 +5CDA MI4 +5CDB LI3 +5CDC JI1 +5CDD TONG2 DONG4 +5CDE WEI2 +5CDF YOU4 +5CE1 XIA2 +5CE2 LI3 +5CE3 YAO2 +5CE4 JIAO4 QIAO2 +5CE5 ZHENG1 +5CE6 LUAN2 +5CE7 JIAO1 +5CE8 E2 +5CE9 E2 +5CEA YU4 +5CEB YE2 +5CEC BU1 +5CED QIAO4 +5CEE QUN1 +5CEF FENG1 +5CF0 FENG1 +5CF1 NAO2 +5CF2 LI3 +5CF3 YOU2 +5CF4 XIAN4 +5CF5 HONG2 +5CF6 DAO3 +5CF7 SHEN1 +5CF8 CHENG2 +5CF9 TU2 +5CFA GENG3 +5CFB JUN4 +5CFC HAO4 +5CFD XIA2 +5CFE YIN1 YIN2 +5CFF YU3 WU2 +5D00 LANG4 +5D01 KAN3 +5D02 LAO2 +5D03 LAI2 +5D04 XIAN3 +5D05 QUE4 +5D06 KONG1 +5D07 CHONG2 +5D08 CHONG2 +5D09 TA4 +5D0B HUA2 +5D0C JU1 +5D0D LAI2 +5D0E QI2 +5D0F MIN2 +5D10 KUN1 +5D11 KUN1 +5D12 ZU2 CUI4 +5D13 GU4 +5D14 CUI1 +5D15 YA2 YAI2 +5D16 YA2 YAI2 +5D17 GANG3 GANG1 +5D18 LUN2 +5D19 LUN2 +5D1A LENG2 +5D1B JUE2 +5D1C DUO1 +5D1D ZHENG1 +5D1E GUO1 +5D1F YIN2 +5D20 DONG1 DONG4 +5D21 HAN2 +5D22 ZHENG1 +5D23 WEI3 +5D24 YAO2 +5D25 PI3 +5D26 YAN1 +5D27 SONG1 +5D28 JIE2 +5D29 BENG1 +5D2A ZU2 CUI4 +5D2B JUE2 +5D2C DONG1 +5D2D ZHAN3 +5D2E GU4 +5D2F YIN2 +5D31 ZE2 ZE4 +5D32 HUANG2 +5D33 YU2 +5D34 WEI1 +5D35 YANG2 +5D36 FENG1 +5D37 QIU2 +5D38 DUN4 +5D39 TI2 +5D3A YI3 +5D3B ZHI4 +5D3C SHI4 +5D3D ZAI3 +5D3E YAO3 +5D3F E4 +5D40 ZHU4 +5D41 KAN1 +5D42 LV4 +5D43 YAN3 +5D44 MEI3 +5D45 GAN1 +5D46 JI1 +5D47 JI1 XI2 +5D48 HUAN3 +5D49 TING2 +5D4A SHENG4 +5D4B MEI2 +5D4C QIAN4 QIAN1 +5D4D WU4 +5D4E YU2 +5D4F ZONG1 +5D50 LAN2 +5D51 JUE2 HE2 JIE2 +5D52 YAN2 +5D53 YAN2 +5D54 WEI3 WEI4 +5D55 ZONG1 +5D56 CHA2 +5D57 SUI4 +5D58 RONG2 +5D5A QIN1 +5D5B YU2 +5D5D LOU3 LV3 +5D5E TU2 +5D5F DUI1 +5D60 XI1 JI1 QI1 +5D61 WENG1 +5D62 CANG1 +5D63 DANG1 +5D64 HONG2 +5D65 JIE2 +5D66 AI2 +5D67 LIU2 +5D68 WU3 +5D69 SONG1 +5D6A QIAO1 +5D6B ZI1 +5D6C WEI2 +5D6D BENG1 +5D6E DIAN1 +5D6F CUO2 CI1 +5D70 QIAN3 +5D71 YONG3 +5D72 NIE4 +5D73 CUO2 CI1 +5D74 JI2 +5D77 SONG3 +5D78 ZONG1 +5D79 JIANG4 QIANG2 +5D7A LIAO2 +5D7C CHAN3 +5D7D DIE2 DI4 +5D7E CEN1 +5D7F DING3 +5D80 TU1 +5D81 LOU3 LV3 +5D82 ZHANG4 +5D83 ZHAN3 +5D84 ZHAN3 +5D85 AO2 +5D86 CAO2 +5D87 QU1 +5D88 QIANG1 +5D89 ZUI1 +5D8A ZUI3 +5D8B DAO3 +5D8C DAO3 +5D8D XI2 +5D8E YU4 +5D8F BO2 +5D90 LONG2 +5D91 XIANG3 +5D92 CENG2 +5D93 BO1 +5D94 QIN1 +5D95 JIAO1 +5D96 YAN3 +5D97 LAO2 +5D98 ZHAN4 +5D99 LIN2 +5D9A LIAO2 +5D9B LIAO2 +5D9C JIN1 +5D9D DENG4 +5D9E DUO4 +5D9F ZUN1 +5DA0 JIAO4 QIAO2 +5DA1 GUI4 +5DA2 YAO2 +5DA3 QIAO2 +5DA4 YAO2 +5DA5 JUE2 +5DA6 ZHAN1 +5DA7 YI4 +5DA8 XUE2 +5DA9 NAO2 +5DAA YE4 +5DAB YE4 +5DAC YI2 +5DAD E4 NIE4 +5DAE XIAN3 +5DAF JI2 +5DB0 XIE4 +5DB1 KE3 GE2 +5DB2 XI1 +5DB3 DI4 +5DB4 AO4 +5DB5 ZUI3 +5DB7 YI2 NI4 +5DB8 RONG2 +5DB9 DAO3 +5DBA LING3 +5DBB ZA2 +5DBC YU3 XU4 +5DBD YUE4 +5DBE YIN3 +5DC0 JIE1 +5DC1 LI4 +5DC2 SUI3 GUI1 +5DC3 LONG2 +5DC4 LONG2 +5DC5 DIAN1 +5DC6 YING2 +5DC7 XI1 +5DC8 JU2 +5DC9 CHAN2 +5DCA YING3 +5DCB KUI1 +5DCC YAN2 +5DCD WEI1 WEI2 +5DCE NAO2 +5DCF QUAN2 +5DD0 CHAO3 +5DD1 CUAN2 +5DD2 LUAN2 +5DD3 DIAN1 +5DD4 DIAN1 +5DD6 YAN2 +5DD7 YAN2 +5DD8 YAN3 +5DD9 NAO2 +5DDA YAN3 +5DDB CHUAN1 KUN1 +5DDC GUI4 KUAI4 +5DDD CHUAN1 +5DDE ZHOU1 +5DDF HUANG1 +5DE0 JING1 +5DE1 XUN2 +5DE2 CHAO2 +5DE3 CHAO2 +5DE4 LIE1 +5DE5 GONG1 +5DE6 ZUO3 +5DE7 QIAO3 +5DE8 JU4 +5DE9 GONG3 +5DEB WU1 WU2 +5DEE CHA4 CHAI1 +5DEF QIU2 +5DF0 QIU2 +5DF1 JI3 +5DF2 YI3 +5DF3 SI4 +5DF4 BA1 +5DF5 ZHI1 +5DF6 ZHAO1 ZHAO4 +5DF7 XIANG4 HANG4 +5DF8 YI2 +5DF9 JIN3 +5DFA XUN4 +5DFB JUAN4 JUAN3 +5DFD XUN4 +5DFE JIN1 +5DFF FU2 +5E00 ZA1 +5E01 BI4 +5E02 SHI4 +5E03 BU4 +5E04 DING1 +5E05 SHUAI4 SHUO4 +5E06 FAN1 +5E07 NIE4 +5E08 SHI1 +5E09 FEN1 +5E0A PA4 +5E0B ZHI3 +5E0C XI1 +5E0D HU4 +5E0E DAN4 +5E0F WEI2 +5E10 ZHANG4 +5E11 TANG3 NU2 +5E12 DAI4 +5E13 MA4 +5E14 PEI4 +5E15 PA4 MO4 +5E16 TIE1 TIE3 TIE4 +5E17 FU2 +5E18 LIAN2 +5E19 ZHI4 +5E1A ZHOU3 +5E1B BO2 +5E1C ZHI4 +5E1D DI4 +5E1E MO4 +5E1F YI4 +5E20 YI4 +5E21 PING2 +5E22 QIA4 +5E23 JUAN4 +5E24 RU2 +5E25 SHUAI4 SHUO4 +5E26 DAI4 +5E27 ZHENG4 +5E28 SHUI4 +5E29 QIAO4 +5E2A ZHEN1 +5E2B SHI1 +5E2C QUN2 +5E2D XI2 +5E2E BANG1 +5E2F DAI4 +5E30 GUI1 +5E31 CHOU2 DAO4 +5E32 PING2 +5E33 ZHANG4 +5E34 SHA1 JIAN1 JIAN3 +5E35 WAN1 +5E36 DAI4 +5E37 WEI2 +5E38 CHANG2 +5E39 SHA4 +5E3A QI2 +5E3B ZE2 +5E3C GUO2 +5E3D MAO4 +5E3E DU3 +5E3F HOU2 +5E40 ZHENG4 +5E41 XU1 +5E42 MI4 +5E43 WEI2 +5E44 WO4 +5E45 FU2 +5E46 YI4 +5E47 BANG1 +5E48 PING2 +5E4A GONG1 +5E4B PAN2 +5E4C HUANG3 +5E4D DAO1 +5E4E MI4 +5E4F JIA1 JIA4 +5E50 TENG2 +5E51 HUI1 +5E52 ZHONG1 +5E53 SHAN1 +5E54 MAN4 +5E55 MU4 +5E56 BIAO1 +5E57 GUO2 +5E58 ZE2 +5E59 MU4 +5E5A BANG1 +5E5B ZHANG4 +5E5C JIONG3 JING3 +5E5D CHAN3 +5E5E FU2 +5E5F ZHI4 +5E60 HU1 +5E61 FAN1 +5E62 CHUANG2 ZHUANG4 +5E63 BI4 +5E66 MI4 +5E67 QIAO1 +5E68 CHAN1 CHAN4 +5E69 FEN2 +5E6A MENG2 MENG3 +5E6B BANG1 +5E6C CHOU2 DAO4 +5E6D MIE4 +5E6E CHU2 +5E6F JIE2 +5E70 XIAN3 +5E71 LAN2 +5E72 GAN1 GAN4 HAN2 +5E73 PING2 +5E74 NIAN2 +5E75 QIAN1 +5E76 BING4 BING1 +5E77 BING4 BING1 +5E78 XING4 +5E79 GAN4 HAN2 +5E7A YAO1 +5E7B HUAN4 +5E7C YOU4 YAO4 +5E7D YOU1 +5E7E JI3 JI1 +5E7F GUANG3 YAN3 AN1 +5E80 PI3 +5E81 TING1 +5E82 ZE4 +5E83 GUANG3 +5E84 ZHUANG1 +5E85 MO5 +5E86 QING4 +5E87 BI4 +5E88 QIN2 +5E89 DUN4 +5E8A CHUANG2 +5E8B GUI3 +5E8C YA3 +5E8D BAI4 +5E8E JIE4 +5E8F XU4 +5E90 LU2 +5E91 WU3 WU2 +5E93 KU4 +5E94 YING4 YING1 +5E95 DI3 DE5 +5E96 PAO2 +5E97 DIAN4 +5E98 YA1 +5E99 MIAO4 +5E9A GENG1 +5E9B CI1 CI4 +5E9C FU3 +5E9D TONG2 +5E9E PANG2 +5E9F FEI4 +5EA0 XIANG2 +5EA1 YI3 +5EA2 ZHI4 +5EA3 TIAO1 +5EA4 ZHI4 +5EA5 XIU1 +5EA6 DU4 DUO2 +5EA7 ZUO4 +5EA8 XIAO1 +5EA9 TU2 +5EAA GUI3 JI3 +5EAB KU4 +5EAC PANG2 MANG2 +5EAD TING2 TING4 +5EAE YOU3 YOU2 +5EAF BU1 +5EB0 DING1 +5EB1 CHENG3 +5EB2 LAI2 +5EB3 BEI1 BI3 +5EB4 JI2 +5EB5 AN1 +5EB6 SHU4 +5EB7 KANG1 +5EB8 YONG1 YONG2 +5EB9 TUO3 +5EBA SONG1 +5EBB SHU4 ZHU4 ZHE1 +5EBC QING3 +5EBD YU4 +5EBE YU3 +5EBF MIAO4 +5EC0 SOU1 +5EC1 CE4 +5EC2 XIANG1 +5EC3 FEI4 +5EC4 JIU4 +5EC5 HE2 +5EC6 HUI4 GUI1 WEI3 +5EC7 LIU4 +5EC8 SHA4 XIA4 +5EC9 LIAN2 +5ECA LANG2 +5ECB SOU1 +5ECC ZHI4 +5ECD POU3 +5ECE QING3 +5ECF JIU4 +5ED0 JIU4 +5ED1 JIN3 QIN2 +5ED2 AO2 +5ED3 KUO4 +5ED4 LOU2 +5ED5 YIN4 YIN1 +5ED6 LIAO4 +5ED7 DAI4 +5ED8 LU4 +5ED9 YI4 +5EDA CHU2 +5EDB CHAN2 +5EDC TU1 +5EDD SI1 +5EDE XIN1 +5EDF MIAO4 +5EE0 CHANG3 +5EE1 WU3 WU2 +5EE2 FEI4 +5EE3 GUANG3 +5EE5 KUAI4 +5EE6 BI4 +5EE7 QIANG2 +5EE8 XIE4 JIE4 +5EE9 LIN3 +5EEA LIN3 BING3 LAN3 +5EEB LIAO2 +5EEC LU2 +5EEE YING2 +5EEF XIAN1 +5EF0 TING1 +5EF1 YONG1 +5EF2 LI2 +5EF3 TING1 +5EF4 YIN3 +5EF5 XUN2 +5EF6 YAN2 +5EF7 TING2 +5EF8 DI2 +5EF9 PO4 PAI3 +5EFA JIAN4 +5EFB HUI2 +5EFC NAI3 +5EFD HUI2 +5EFE GONG3 GONG4 NIAN4 +5EFF NIAN4 +5F00 KAI1 +5F01 BIAN4 PAN2 +5F02 YI4 +5F03 QI4 +5F04 NONG4 LONG4 +5F05 FEN2 +5F06 JU3 +5F07 YAN3 YAN1 +5F08 YI4 +5F09 ZANG4 ZHUANG3 +5F0A BI4 +5F0B YI4 +5F0C YI1 +5F0D ER4 +5F0E SAN1 SAN4 +5F0F SHI4 +5F10 ER4 +5F11 SHI4 +5F12 SHI4 +5F13 GONG1 +5F14 DIAO4 +5F15 YIN3 +5F16 HU4 +5F17 FU2 +5F18 HONG2 +5F19 WU1 +5F1A TUI2 +5F1B CHI2 SHI3 +5F1C JIANG4 QIANG2 +5F1D BA4 +5F1E SHEN3 +5F1F DI4 TI4 +5F20 ZHANG1 ZHANG4 +5F21 JUE2 +5F22 TAO1 +5F23 FU3 +5F24 DI3 +5F25 MI2 +5F26 XIAN2 +5F27 HU2 +5F28 CHAO1 +5F29 NU3 +5F2A JING4 +5F2B ZHEN3 +5F2C YI2 +5F2D MI3 +5F2E QUAN1 +5F2F WAN1 +5F30 SHAO1 +5F31 RUO4 +5F32 XUAN1 +5F33 JING4 +5F34 DUN1 +5F35 ZHANG1 ZHANG4 +5F36 JIANG4 +5F37 QIANG2 QIANG3 JIANG4 +5F38 PENG2 +5F39 DAN4 TAN2 +5F3A QIANG2 QIANG3 JIANG4 +5F3B BI4 +5F3C BI4 +5F3D SHE4 +5F3E DAN4 +5F3F JIAN3 +5F40 GOU4 +5F42 FA1 FA4 BO1 +5F43 BI4 +5F44 KOU1 +5F46 BIE4 +5F47 XIAO1 +5F48 DAN4 TAN2 +5F49 KUO4 +5F4A QIANG2 QIANG3 JIANG1 JIANG4 +5F4B HONG2 +5F4C MI2 +5F4D KUO4 +5F4E WAN1 +5F4F JUE2 +5F50 JI4 +5F51 JI4 +5F52 GUI1 KUI4 +5F53 DANG1 DANG4 +5F54 LU4 +5F55 LU4 LV4 +5F56 TUAN4 +5F57 HUI4 SUI4 +5F58 ZHI4 +5F59 HUI4 WEI4 +5F5A HUI4 +5F5B YI2 +5F5C YI2 +5F5D YI2 +5F5E YI2 +5F5F HUO4 +5F60 HUO4 +5F61 SHAN1 XIAN1 +5F62 XING2 +5F63 WEN2 +5F64 TONG2 +5F65 YAN4 +5F66 YAN4 +5F67 YU4 +5F68 CHI1 +5F69 CAI3 +5F6A BIAO1 +5F6B DIAO1 +5F6C BIN1 +5F6D PENG2 +5F6E YONG3 +5F6F PIAO1 +5F70 ZHANG1 +5F71 YING3 +5F72 CHI1 +5F73 CHI4 +5F74 ZHUO2 +5F75 TUO3 +5F76 JI2 +5F77 PANG2 FANG3 +5F78 ZHONG1 +5F79 YI4 +5F7A WANG2 +5F7B CHE4 +5F7C BI3 +5F7D CHI2 +5F7E LING3 +5F7F FU2 +5F80 WANG3 WANG4 +5F81 ZHENG1 +5F82 CU2 +5F83 WANG3 WANG4 +5F84 JING4 +5F85 DAI4 DAI1 +5F86 XI1 +5F87 XUN4 XUN2 +5F88 HEN3 +5F89 YANG2 +5F8A HUAI2 HUI2 +5F8B LV4 +5F8C HOU4 +5F8D WA1 +5F8E CHENG3 +5F8F ZHI4 +5F90 XU2 +5F91 JING4 +5F92 TU2 +5F93 CONG2 +5F95 LAI2 LAI4 +5F96 CONG2 +5F97 DE2 DE5 DEI3 +5F98 PAI2 PEI2 +5F99 XI3 +5F9B QI4 +5F9C CHANG2 +5F9D ZHI4 +5F9E CONG2 ZONG4 ZONG1 CONG1 +5F9F ZHOU1 +5FA0 LAI2 LAI4 +5FA1 YU4 YA4 +5FA2 XIE4 +5FA3 JIE4 +5FA4 JIAN4 +5FA5 CHI2 +5FA6 JIA3 +5FA7 BIAN4 +5FA8 HUANG2 +5FA9 FU4 FOU4 +5FAA XUN2 +5FAB WEI3 +5FAC PANG2 +5FAD YAO2 +5FAE WEI1 WEI2 +5FAF XI1 XI2 +5FB0 ZHENG1 +5FB1 PIAO4 BIAO1 +5FB2 CHI2 +5FB3 DE2 DUO2 +5FB4 ZHENG1 +5FB5 ZHENG1 ZHI3 +5FB6 BIE4 +5FB7 DE2 +5FB8 CHONG1 +5FB9 CHE4 +5FBA JIAO3 +5FBB WEI4 +5FBC JIAO4 JIAO3 JIAO1 YAO1 YAO2 +5FBD HUI1 +5FBE MEI2 +5FBF LONG4 +5FC0 XIANG1 +5FC1 BAO4 +5FC2 QU2 +5FC3 XIN1 +5FC5 BI4 +5FC6 YI4 +5FC7 LE4 +5FC8 REN2 +5FC9 DAO1 +5FCA DING4 +5FCB GAI3 +5FCC JI4 +5FCD REN3 +5FCE REN2 +5FCF CHAN4 +5FD0 TAN3 +5FD1 TE4 +5FD2 TE4 +5FD3 GAN1 +5FD4 QI4 YI4 +5FD5 SHI4 TAI4 +5FD6 CUN3 +5FD7 ZHI4 +5FD8 WANG4 WANG2 +5FD9 MANG2 +5FDA XI1 +5FDB FAN2 +5FDC YING1 +5FDD TIAN3 +5FDE MIN2 +5FDF MIN2 +5FE0 ZHONG1 +5FE1 CHONG1 +5FE2 WU4 +5FE3 JI2 +5FE4 WU3 +5FE5 XI4 +5FE6 YE4 +5FE7 YOU1 +5FE8 WAN4 +5FE9 CONG1 +5FEA ZHONG1 SONG1 +5FEB KUAI4 +5FEC YU4 +5FED BIAN4 +5FEE ZHI4 +5FEF QI2 +5FF0 CUI4 +5FF1 CHEN2 +5FF2 TAI4 +5FF3 TUN2 ZHUN1 +5FF4 QIAN2 +5FF5 NIAN4 +5FF6 HUN2 +5FF7 XIONG1 +5FF8 NIU3 NV4 +5FF9 WANG3 +5FFA XIAN1 +5FFB XIN1 +5FFC KANG1 +5FFD HU1 +5FFE KAI4 +5FFF FEN4 +6000 HUAI2 +6001 TAI4 +6002 SONG3 +6003 WU3 +6004 OU4 +6005 CHANG4 +6006 CHUANG4 +6007 JU4 +6008 YI4 +6009 BAO3 +600A CHAO1 +600B MIN2 +600C PEI1 +600D ZUO4 +600E ZEN3 +600F YANG4 +6010 KOU4 +6011 BAN4 +6012 NU4 +6013 NAO2 +6014 ZHENG1 +6015 PA4 +6016 BU4 +6017 TIE1 +6018 GU4 +6019 HU4 +601A JU4 +601B DA2 +601C LIAN2 +601D SI1 SI4 SAI1 +601E CHOU1 YOU2 +601F DI4 +6020 DAI4 +6021 YI2 +6022 TU2 TU1 +6023 YOU2 +6024 FU1 +6025 JI2 +6026 PENG1 +6027 XING4 +6028 YUAN4 +6029 NI2 +602A GUAI4 +602B FU2 +602C XI4 +602D BI4 +602E YOU1 +602F QIE4 +6030 XUAN4 +6031 CONG1 +6032 BING3 +6033 HUANG3 +6034 XU4 +6035 CHU4 +6036 PI1 +6037 XI1 +6038 XI1 +6039 TAN1 +603B ZONG3 ZONG1 +603C DUI4 +603F YI4 +6040 CHI3 SHI4 +6041 REN4 +6042 XUN2 +6043 SHI4 +6044 XI4 +6045 LAO3 +6046 HENG2 +6047 KUANG1 +6048 MU2 MOU2 +6049 ZHI3 +604A XIE2 +604B LIAN4 +604C TIAO1 +604D HUANG3 +604E DIE2 +604F HAO3 +6050 KONG3 +6051 GUI3 +6052 HENG2 +6053 XI1 +6054 XIAO4 +6055 SHU4 +6057 KUA3 +6058 QIU1 +6059 YANG4 +605A HUI4 +605B HUI2 +605C CHI4 +605D JIA2 +605E YI2 +605F XIONG1 +6060 GUAI4 +6061 LIN4 +6062 HUI1 +6063 ZI4 CI1 +6064 XU4 +6065 CHI3 +6066 XIANG4 +6067 NV4 +6068 HEN4 +6069 EN1 +606A KE4 +606B TONG1 DONG4 +606C TIAN2 +606D GONG1 +606E QUAN2 +606F XI1 +6070 QIA4 +6071 YUE4 +6072 PENG1 +6073 KEN3 +6074 DE2 +6075 HUI4 +6076 E4 WU4 WU1 +6078 TONG4 +6079 YAN4 +607A KAI3 +607B CE4 +607C NAO3 +607D YUN4 +607E MANG2 +607F YONG3 +6080 YONG3 +6081 YUAN1 JUAN4 +6082 PI1 +6083 KUN3 +6084 QIAO3 +6085 YUE4 +6086 YU4 +6087 YU4 TU2 +6088 JIE4 +6089 XI1 +608A ZHE2 +608B LIN4 +608C TI4 +608D HAN4 +608E HAO4 +608F QIE4 +6090 TI4 +6091 BU4 +6092 YI4 +6093 QIAN4 +6094 HUI3 +6095 XI1 +6096 BEI4 BO2 +6097 MAN2 MEN4 +6098 YI1 +6099 HENG1 +609A SONG3 +609B QUAN1 +609C CHENG3 +609D KUI1 HUI1 LI3 +609E WU4 +609F WU4 +60A0 YOU1 +60A1 LI2 +60A2 LIANG4 +60A3 HUAN4 +60A4 CONG1 +60A5 YI4 YI1 +60A6 YUE4 +60A7 LI4 +60A8 NIN2 +60A9 NAO3 +60AA E4 +60AB QUE4 +60AC XUAN2 +60AD QIAN1 +60AE WU4 +60AF MIN3 +60B0 CONG2 +60B1 FEI3 +60B2 BEI1 +60B3 DUO2 +60B4 CUI4 +60B5 CHANG4 +60B6 MEN4 MEN1 +60B7 LI4 +60B8 JI4 +60B9 GUAN4 +60BA GUAN4 +60BB XING4 +60BC DAO4 +60BD QI1 +60BE KONG1 +60BF TIAN3 +60C0 LUN2 LUN3 +60C1 XI1 +60C2 KAN3 +60C3 KUN1 +60C4 NI4 +60C5 QING2 +60C6 CHOU2 +60C7 DUN1 +60C8 GUO3 +60C9 CHAN1 ZHAN1 +60CA LIANG2 JING1 +60CB WAN3 +60CC YUAN1 YU4 +60CD JIN1 +60CE JI4 +60CF LIN2 LAN2 +60D0 YU4 +60D1 HUO4 +60D2 HE2 +60D3 QUAN2 +60D4 TAN2 DAN4 +60D5 TI4 +60D6 TI4 +60D7 NIE1 +60D8 WANG3 +60D9 CHUO4 +60DA HU1 BU1 +60DB HUN1 +60DC XI1 +60DD CHANG3 TANG3 +60DE XIN1 +60DF WEI2 +60E0 HUI4 +60E1 E4 WU4 WU1 +60E2 RUI3 SUO3 +60E3 ZONG3 +60E4 JIAN1 +60E5 YONG3 +60E6 DIAN4 +60E7 JU4 +60E8 CAN3 +60E9 CHENG2 +60EA DE2 +60EB BEI4 +60EC QIE4 +60ED CAN2 +60EE DAN4 +60EF GUAN4 +60F0 DUO4 +60F1 NAO3 +60F2 YUN4 +60F3 XIANG3 +60F4 ZHUI4 +60F5 DIE4 +60F6 HUANG2 +60F7 CHUN3 +60F8 QIONG2 +60F9 RE3 +60FA XING1 +60FB CE4 +60FC BIAN3 +60FD HUN1 +60FE ZONG1 +60FF TI2 +6100 QIAO3 +6101 CHOU2 +6102 BEI4 BEI3 +6103 XUAN1 XUAN3 +6104 WEI1 +6105 GE2 +6106 QIAN1 +6107 WEI3 +6108 YU4 +6109 YU2 TOU1 +610A BI4 +610B XUAN1 +610C HUAN4 +610D MIN3 +610E BI4 +610F YI4 +6110 MIAN3 +6111 YONG3 +6112 KAI4 QI4 +6113 DANG4 SHANG1 +6114 YIN1 +6115 E4 +6116 CHEN2 +6117 MOU4 +6118 KE4 +6119 KE4 +611A YU2 +611B AI4 +611C QIE4 +611D YAN3 +611E NUO4 +611F GAN3 +6120 YUN4 WEN3 +6121 ZONG3 +6122 SAI1 +6123 LENG4 LENG2 +6124 FEN4 +6126 KUI4 +6127 KUI4 +6128 QUE4 +6129 GONG1 +612A YUN2 +612B SU4 +612C SU4 SHUO4 +612D QI2 +612E YAO2 +612F SONG3 +6130 HUANG3 +6131 JI2 +6132 GU3 +6133 JU4 +6134 CHUANG4 +6135 NI4 +6136 XIE2 +6137 KAI3 +6138 ZHENG3 +6139 YONG3 +613A CAO3 +613B SUN4 XUN4 +613C SHEN4 +613D BO2 +613E KAI4 +613F YUAN4 +6140 XIE2 +6141 HUN4 +6142 YONG3 +6143 YANG3 +6144 LI4 +6145 SAO1 CAO3 +6146 TAO1 +6147 YIN1 +6148 CI2 +6149 XU4 +614A QIAN4 QIE4 +614B TAI4 +614C HUANG1 HUANG3 +614D YUN4 +614E SHEN4 +614F MING3 +6151 SHE4 ZHE2 +6152 CONG2 +6153 PIAO4 +6154 MO4 +6155 MU4 +6156 GUO2 +6157 CHI4 +6158 CAN3 +6159 CAN2 +615A CAN2 +615B CUI2 +615C MIN3 +615D TE4 NI4 +615E ZHANG1 +615F TONG4 +6160 AO4 +6161 SHUANG3 +6162 MAN4 +6163 GUAN4 +6164 QUE4 +6165 ZAO4 CAO4 +6166 JIU4 +6167 HUI4 +6168 KAI3 +6169 LIAN2 +616A OU4 +616B SONG3 +616C JIN3 JIN4 QIN2 +616D YIN4 +616E LV4 +616F SHANG1 +6170 WEI4 +6171 TUAN2 +6172 MAN2 +6173 QIAN1 +6174 SHE4 ZHE2 +6175 YONG1 YONG2 +6176 QING4 +6177 KANG1 KANG3 +6178 DI4 +6179 ZHI2 ZHE2 +617A LOU2 +617B JUAN4 +617C QI1 +617D QI1 +617E YU4 +617F PING2 +6180 LIAO2 +6181 CONG1 ZONG3 +6182 YOU1 +6183 CHONG1 +6184 ZHI4 +6185 TONG4 +6186 CHENG1 ZHENG4 +6187 QI4 +6188 QU1 +6189 PENG2 +618A BEI4 +618B BIE1 +618C CHUN2 +618D JIAO1 +618E ZENG1 +618F CHI4 +6190 LIAN2 +6191 PING2 +6192 KUI4 +6193 HUI4 +6194 QIAO2 +6195 CHENG2 +6196 YIN4 +6197 YIN4 +6198 XI3 +6199 XI3 +619A DAN4 +619B TAN2 +619C DUO3 +619D DUI4 +619E DUI4 +619F SU4 +61A0 JUE2 +61A1 CE4 +61A2 XIAO1 +61A3 FAN2 FAN1 +61A4 FEN4 +61A5 LAO2 +61A6 LAO4 +61A7 CHONG1 +61A8 HAN1 +61A9 QI4 +61AA XIAN2 +61AB MIN3 +61AC JING3 +61AD LIAO3 LIAO2 +61AE WU3 +61AF CAN3 +61B0 JUE2 +61B1 CU4 +61B2 XIAN4 +61B3 TAN3 +61B4 SHENG2 +61B5 PI1 +61B6 YI4 +61B7 CHU3 +61B8 XIAN1 +61B9 NAO2 +61BA DAN4 +61BB TAN3 +61BC JING3 +61BD SONG1 +61BE HAN4 +61BF JIAO1 JI1 JIAO3 +61C0 WAI4 +61C1 HUAN2 XUAN1 +61C2 DONG3 +61C3 QIN2 +61C4 QIN2 +61C5 QU2 JU4 +61C6 CAO3 +61C7 KEN3 +61C8 XIE4 +61C9 YING1 YING4 +61CA AO4 +61CB MAO4 +61CC YI4 +61CD LIN3 +61CE SE4 +61CF JUN4 +61D0 HUAI2 +61D1 MEN4 +61D2 LAN3 +61D3 AI4 +61D4 LIN3 +61D5 YAN1 +61D6 GUA1 +61D7 XIA4 +61D8 CHI4 +61D9 YU3 YU2 +61DA YIN4 +61DB DAI1 +61DC MENG4 +61DD AI4 +61DE MENG2 +61DF DUI4 +61E0 QI2 +61E1 MO3 +61E2 LAN2 +61E3 MEN4 +61E4 CHOU2 +61E5 ZHI4 +61E6 NUO4 +61E7 NUO4 +61E8 YAN1 +61E9 YANG3 +61EA BO2 +61EB ZHI2 ZHI4 +61EC KUANG4 +61ED KUANG4 +61EE YOU3 YOU1 +61EF FU1 +61F0 LIU2 +61F1 MIE4 +61F2 CHENG2 +61F4 CHAN4 +61F5 MENG3 MENG2 +61F6 LAN3 +61F7 HUAI2 +61F8 XUAN2 +61F9 RANG4 +61FA CHAN4 +61FB JI4 +61FC JU4 +61FD HUAN1 +61FE SHE4 ZHE2 +61FF YI4 +6200 LIAN4 +6201 NAN3 +6202 MI2 +6203 TANG3 CHANG3 +6204 JUE2 +6205 GANG4 ZHUANG4 +6206 GANG4 ZHUANG4 +6207 GANG4 ZHUANG4 +6208 GE1 +6209 YUE4 +620A WU4 +620B JIAN1 +620C XU1 +620D SHU4 +620E RONG2 +620F XI4 XI1 HU1 HUI1 +6210 CHENG2 +6211 WO3 +6212 JIE4 +6213 GE1 +6214 JIAN1 +6215 QIANG1 QIANG2 +6216 HUO4 YU4 +6217 QIANG1 QIANG4 +6218 ZHAN4 +6219 DONG4 +621A QI1 +621B JIA2 +621C DIE2 +621D ZEI2 ZE2 +621E JIA2 +621F JI3 +6220 SHI4 +6221 KAN1 +6222 JI2 +6223 KUI2 +6224 GAI4 +6225 DENG3 +6226 ZHAN4 +6227 CHUANG1 QIANG1 QIANG4 +6228 GE1 +6229 JIAN3 +622A JIE2 +622B YU4 +622C JIAN3 +622D YAN3 YIN3 +622E LU4 +622F XI4 XI1 HU1 HUI1 +6230 ZHAN4 +6231 XI4 XI1 HU1 HUI1 +6232 XI4 XI1 +6233 CHUO1 +6234 DAI4 +6235 QU2 +6236 HU4 +6237 HU4 +6238 HU4 +6239 E4 AI4 +623A SHI4 +623B LI4 +623C MAO3 +623D HU4 +623E LI4 LIE4 +623F FANG2 PANG2 +6240 SUO3 +6241 BIAN3 PIAN1 BIAN4 +6242 DIAN4 +6243 JIONG1 JIONG3 +6244 SHANG3 +6245 YI2 +6246 YI3 +6247 SHAN4 SHAN1 +6248 HU4 +6249 FEI1 +624A YAN3 +624B SHOU3 +624D CAI2 +624E ZHA1 ZHA2 ZA1 ZHA3 +624F QIU2 +6250 LE4 +6251 PU1 BU1 +6252 BA1 PA1 PA2 +6253 DA3 DA2 +6254 RENG1 RENG4 +6255 FU2 +6257 ZAI4 +6258 TUO1 +6259 ZHANG4 +625A DIAO1 +625B KANG2 GANG1 +625C YU1 +625D KU1 WU1 +625E HAN4 GAN3 +625F SHEN1 +6260 CHA1 ZHA3 +6261 YI3 CHI3 TUO1 +6262 GU3 GE1 XI4 +6263 KOU4 +6264 WU4 +6265 TUO1 +6266 QIAN1 +6267 ZHI2 +6268 REN4 +6269 KUO4 +626A MEN2 +626B SAO3 SAO4 +626C YANG2 +626D NIU3 +626E BAN4 +626F CHE3 +6270 RAO3 ROU2 +6271 XI1 CHA1 +6272 QIAN2 +6273 BAN1 PAN1 +6274 JIA2 +6275 YU2 +6276 FU2 PU2 +6277 AO4 +6278 XI1 +6279 PI1 +627A ZHI3 +627B ZI4 JIE2 ZHI4 +627C E4 +627D DUN4 DEN4 +627E ZHAO3 +627F CHENG2 ZHENG3 +6280 JI4 +6281 YAN3 +6282 KUANG2 +6283 BIAN4 PAN4 +6284 CHAO1 +6285 JU1 +6286 WEN4 WEN3 +6287 HU2 GU3 JUE2 +6288 YUE4 +6289 JUE2 +628A BA3 BA4 +628B QIN4 +628C ZHEN3 SHEN4 +628D ZHENG3 +628E YUN3 +628F WAN2 WAN4 +6290 NU4 +6291 YI4 +6292 SHU1 +6293 ZHUA1 ZHAO1 +6294 POU2 BAO4 +6295 TOU2 +6296 DOU3 +6297 KANG4 KANG2 +6298 ZHE2 SHE2 ZHE1 +6299 POU2 POU1 FU1 +629A FU3 HU1 +629B PAO1 +629C BA2 +629D AO3 NIU4 +629E ZE2 +629F TUAN2 ZHUAN1 +62A0 KOU1 +62A1 LUN2 LUN1 +62A2 QIANG3 QIANG1 CHENG1 +62A4 HU4 +62A5 BAO4 +62A6 BING3 +62A7 ZHI3 +62A8 PENG1 BENG1 +62A9 TAN1 +62AA PU1 +62AB PI1 +62AC TAI2 +62AD YAO3 YOU2 +62AE ZHEN3 +62AF ZHA1 +62B0 YANG3 +62B1 BAO4 +62B2 HE1 +62B3 NI3 +62B4 YI4 YE4 +62B5 DI3 +62B6 CHI4 +62B7 PI1 +62B8 ZA1 +62B9 MO3 MA1 MO4 +62BA MEI4 +62BB SHEN4 SHEN1 CHEN1 +62BC YA1 XIA2 +62BD CHOU1 +62BE QU1 JIE2 +62BF MIN3 +62C0 CHU4 +62C1 JIA1 +62C2 FU2 BI4 +62C3 ZHAN3 ZHA4 +62C4 ZHU3 +62C5 DAN4 DAN1 DAN3 QIE4 +62C6 CHAI1 CA1 CHE4 +62C7 MU3 +62C8 NIAN2 NIAN1 NIAN3 DIAN1 +62C9 LA1 LA2 LA3 LA4 +62CA FU3 +62CB PAO1 +62CC BAN4 PAN4 +62CD PAI1 BO2 PO4 +62CE LING1 +62CF NA2 +62D0 GUAI3 +62D1 QIAN2 +62D2 JU4 JU3 +62D3 TUO4 TA4 ZHI2 +62D4 BA2 BEI4 +62D5 TUO1 +62D6 TUO1 +62D7 AO3 AO4 NIU4 +62D8 JU1 GOU1 +62D9 ZHUO2 ZHUO1 +62DA PAN4 FAN1 FEN4 PIN1 +62DB ZHAO1 QIAO2 SHAO2 +62DC BAI4 +62DD BAI4 +62DE DI3 +62DF NI3 +62E0 JU4 +62E1 KUO4 +62E2 LONG3 +62E3 JIAN3 +62E5 YONG3 YONG1 +62E6 LAN2 +62E7 NING2 NING3 NING4 +62E8 BO1 FA2 +62E9 ZE2 ZHAI2 +62EA QIAN1 +62EB HEN2 +62EC KUO4 GUA1 +62ED SHI4 +62EE JIE2 JIA2 +62EF ZHENG3 +62F0 NIN3 +62F1 GONG3 +62F2 GONG3 +62F3 QUAN2 +62F4 SHUAN1 +62F5 CUN2 +62F6 ZAN3 ZA1 +62F7 KAO3 +62F8 CHI3 YI2 +62F9 XIE2 +62FA CE4 +62FB HUI1 +62FC PIN1 +62FD YE4 ZHUAI4 ZHUAI1 +62FE SHI2 JIE4 SHE4 +62FF NA2 +6300 BO4 +6301 CHI2 +6302 GUA4 +6303 ZHI4 +6304 KUO4 +6305 DUO3 +6306 DUO3 +6307 ZHI3 +6308 QIE4 QI4 +6309 AN4 +630A NONG4 +630B ZHEN4 +630C GE2 +630D JIAO4 +630E KU1 KOU1 KUA4 +630F DONG4 +6310 RU2 NA2 NU2 RAO2 +6311 TIAO1 TIAO3 TAO1 +6312 LIE4 +6313 ZHA1 +6314 LV3 +6315 DIE2 +6316 WA1 +6317 JUE2 +6319 JU3 +631A ZHI4 +631B LUAN2 +631C YA4 +631D ZHUA1 WO1 +631E TA4 +631F XIE2 JIA1 XIA2 +6320 NAO2 +6321 DANG3 DANG4 TANG3 +6322 JIAO3 +6323 ZHENG1 ZHENG4 +6324 JI3 +6325 HUI1 +6326 XUN2 XIAN2 +6328 AI1 AI2 +6329 TUO1 SHUI4 +632A NUO2 RUO2 +632B CUO4 +632C BO2 +632D GENG3 +632E TI3 +632F ZHEN4 ZHEN1 ZHEN3 +6330 CHENG2 +6331 SUO1 +6332 SUO1 +6333 KENG1 QIAN1 +6334 MEI3 +6335 LONG4 NONG4 +6336 JU2 +6337 PENG2 BENG1 BANG4 BANG3 +6338 JIAN3 +6339 YI4 +633A TING3 +633B SHAN1 +633C NUO4 NUO2 RUO2 +633D WAN3 +633E XIE2 JIA1 XIA2 +633F CHA1 ZHA3 +6340 FENG1 +6341 JIAO3 +6342 WU3 +6343 JUN4 +6344 JIU4 JIU1 JU1 QIU2 +6345 TONG3 +6346 KUN3 +6347 HUO4 +6348 TU2 +6349 ZHUO1 +634A POU2 +634B LE4 LV3 LUO1 +634C BA1 +634D HAN4 +634E SHAO1 +634F NIE1 +6350 JUAN1 YUAN2 +6351 ZE2 +6352 SONG3 +6353 YE2 +6354 JUE2 +6355 BU3 +6356 HUAN2 GUA1 WAN2 +6357 BU4 +6358 ZUN4 +6359 YI4 +635A ZHAI1 +635B LV3 +635C SOU1 +635D TUO1 +635E LAO1 +635F SUN3 +6360 BANG1 +6361 JIAN3 LIAN4 +6362 HUAN4 +6363 DAO3 +6365 WAN4 +6366 QIN2 +6367 PENG3 +6368 SHE3 +6369 LIE4 LI4 +636A MIN2 +636B MEN2 +636C FU3 +636D BAI3 +636E JU4 JU1 +636F DAO3 DAO2 +6370 WO3 +6371 AI2 +6372 JUAN3 QUAN2 +6373 YUE4 +6374 ZONG3 +6375 CHEN3 CHEN1 +6376 CHUI2 +6377 JIE2 QIE4 +6378 TU1 +6379 BEN4 +637A NA4 +637B NIAN3 NIE1 +637C NUO2 RUO2 +637D ZU2 ZUO2 +637E WO4 +637F XI1 +6380 XIAN1 +6381 CHENG2 +6382 DIAN1 +6383 SAO3 SAO4 +6384 LUN1 LUN2 +6385 QING4 +6386 GANG1 +6387 DUO2 DUO1 +6388 SHOU4 +6389 DIAO4 +638A POU2 BAO4 FU4 POU3 +638B DI3 +638C ZHANG3 +638D GUN3 HUN3 +638E JI3 +638F TAO1 +6390 QIA1 +6391 QI2 +6392 PAI2 PAI3 BEI4 +6393 SHU2 +6394 QIAN1 +6395 LING4 +6396 YE4 YE1 YI4 YE3 +6397 YA4 +6398 JUE2 +6399 ZHENG1 ZHENG4 +639A LIANG3 +639B GUA4 +639C YI3 NI3 NIE4 +639D HUO4 XU4 +639E SHAN4 YAN4 +639F ZHENG3 +63A0 LVE4 LVE3 +63A1 CAI3 +63A2 TAN4 TAN1 +63A3 CHE4 +63A4 BING1 +63A5 JIE1 +63A6 TI4 +63A7 KONG4 QIANG1 +63A8 TUI1 +63A9 YAN3 +63AA CUO4 ZE2 +63AB ZOU1 +63AC JU2 JU1 +63AD TIAN4 +63AE QIAN2 +63AF KEN4 +63B0 BAI1 +63B1 SHOU3 PA2 +63B2 JIE1 QI4 +63B3 LU3 +63B4 GUO2 +63B7 ZHI2 ZHI1 ZHI4 +63B8 DAN3 SHAN4 SHAN3 CHAN2 +63BA XIAN1 CHAN1 CAN4 SHAN3 +63BB SAO1 +63BC GUAN4 +63BD PENG4 +63BE YUAN4 +63BF NUO4 +63C0 JIAN3 +63C1 ZHEN1 +63C2 JIU1 +63C3 JIAN1 JIAN3 +63C4 YU2 YOU2 +63C5 YAN2 +63C6 KUI2 +63C7 NAN3 +63C8 HONG1 +63C9 ROU2 +63CA PI4 +63CB WEI1 +63CC SAI1 +63CD ZOU4 COU4 +63CE XUAN1 SHUAN1 +63CF MIAO2 +63D0 TI2 DI1 DI3 SHI2 +63D1 NIE1 +63D2 CHA1 +63D3 SHI4 +63D4 ZONG3 ZONG1 +63D5 ZHEN4 +63D6 YI1 JI2 +63D7 SHUN3 +63D8 HENG2 +63D9 BIAN4 +63DA YANG2 +63DB HUAN4 +63DC YAN3 +63DD ZUAN4 +63DE AN3 +63DF XU1 +63E0 YA4 +63E1 WO4 +63E2 KE4 +63E3 CHUAI3 CHUAI1 CHUAI4 TUAN2 ZHUI1 +63E4 JI2 +63E5 TI4 DI4 +63E6 LA2 +63E7 LA4 +63E8 CHENG2 +63E9 KAI1 +63EA JIU1 +63EB JIU1 +63EC TU2 +63ED JIE1 +63EE HUI1 +63EF GENG1 +63F0 CHONG4 +63F1 SHUO4 XIAO1 +63F2 SHE2 TIE2 DIE2 YE4 +63F3 XIE4 XIE2 JIA2 XIE1 +63F4 YUAN2 +63F5 QIAN2 JIAN4 +63F6 YE2 +63F7 CHA1 +63F8 ZHA1 +63F9 BEI1 +63FA YAO2 +63FD LAN3 +63FE WEN4 +63FF QIN4 +6400 CHAN1 +6401 GE1 GE2 +6402 LOU3 LOU1 LOU2 +6403 ZONG3 +6404 GENG1 +6405 JIAO3 +6406 GOU4 +6407 QIN4 +6408 YONG3 +6409 QUE4 +640A CHOU1 +640B CHI3 CHA1 CHUAI1 +640C ZHAN3 +640D SUN3 +640E SUN1 +640F BO2 +6410 CHU4 CHOU1 +6411 RONG3 +6412 BENG4 BANG4 PENG2 +6413 CUO1 +6414 SAO1 ZHAO3 +6415 KE4 +6416 YAO2 +6417 DAO3 +6418 ZHI1 +6419 NU4 +641A XIE2 LA1 +641B JIAN1 +641C SOU1 +641D QIU3 +641E GAO3 +641F XIAN3 +6420 SHUO4 +6421 SANG3 +6422 JIN4 +6423 MIE4 +6424 E4 +6425 CHUI2 +6426 NUO4 +6427 SHAN1 +6428 TA4 DA1 +6429 JIE2 +642A TANG2 +642B PAN2 +642C BAN1 +642D DA1 TA4 +642E LI4 +642F TAO1 +6430 HU2 GU3 +6431 ZHI4 +6432 WA1 +6433 XIA2 HUA2 +6434 QIAN1 +6435 WEN4 +6436 QIANG3 QIANG1 CHENG1 +6437 TIAN2 SHEN1 +6438 ZHEN1 +6439 E4 +643A XI1 XI2 XIE2 +643B NUO4 +643C QUAN2 +643D CHA2 +643E ZHA4 +643F GE2 +6440 WU3 +6441 EN4 +6442 SHE4 NIE4 +6443 KANG2 GANG1 +6444 SHE4 NIE4 +6445 SHU1 +6446 BAI3 +6447 YAO2 +6448 BIN4 +6449 SOU1 +644A TAN1 +644B SA4 +644C CHAN3 +644D SUO1 +644E LIAO2 JIU1 LIU2 +644F CHONG1 +6450 CHUANG1 +6451 GUO2 +6452 BING4 +6453 FENG2 +6454 SHUAI1 +6455 DI4 +6456 QI4 +6458 ZHAI1 ZHE2 +6459 LIAN3 +645A TANG2 +645B CHI1 LI2 +645C GUAN4 +645D LU4 +645E LUO4 LUO2 +645F LOU3 LOU1 LOU2 +6460 ZONG3 ZONG1 +6461 GAI4 XI4 +6462 HU4 +6463 ZHA1 ZA1 +6464 CHUANG3 +6465 TANG4 +6466 HUA4 +6467 CUI1 CUO4 +6468 NAI2 +6469 MO2 MA1 +646A JIANG1 +646B GUI1 +646C YING4 +646D ZHI2 TUO4 +646E AO2 +646F ZHI4 +6470 NIE4 +6471 MAN2 +6472 SHAN4 ZHAN4 +6473 KOU1 +6474 SHU1 +6475 SUO3 SHE4 +6476 TUAN2 ZHUAN1 +6477 JIAO3 +6478 MO1 MO2 +6479 MO2 +647A ZHE2 LA1 +647B SHAN3 CHAN1 SEN1 CAN4 XIAN1 +647C KENG1 +647D PIAO1 BIAO4 BIAO1 PAO1 PIAO3 +647E JIANG4 +647F YIN1 +6480 GOU4 +6481 QIAN1 +6482 LIAO4 LVE4 LIAO1 LIAO2 +6483 JI2 +6484 YING1 +6485 JUE1 JUE2 GUI4 +6486 PIE1 PIE3 +6487 PIE1 PIE3 +6488 LAO1 +6489 DUN1 +648A XIAN4 +648B RUAN2 NUO2 +648C KUI4 GUI4 +648D ZAN3 +648E YI4 +648F XUN2 XIAN2 +6490 CHENG1 +6491 CHENG1 +6492 SA1 SA3 +6493 NAO2 +6494 HENG4 +6495 SI1 XI1 +6496 QIAN3 HAN4 +6497 HUANG2 +6498 DA1 +6499 ZUN3 +649A NIAN3 +649B LIN3 +649C ZHENG3 CHENG2 +649D HUI1 +649E ZHUANG4 CHUANG2 +649F JIAO3 +64A0 JI3 +64A1 CAO1 +64A2 DAN3 TAN4 +64A3 DAN3 CHAN2 SHAN4 +64A4 CHE4 +64A5 BO1 FA2 +64A6 CHE3 +64A7 JUE2 JUE1 +64A8 XIAO1 +64A9 LIAO1 LIAO2 LIAO4 +64AA BEN4 +64AB FU3 HU1 +64AC QIAO4 +64AD BO1 BO4 BO3 +64AE CUO1 ZUO3 +64AF ZHUO2 +64B0 ZHUAN4 SUAN4 XUAN3 +64B1 TUO3 +64B2 PU1 +64B3 QIN4 +64B4 DUN1 +64B5 NIAN3 +64B7 XIE2 +64B8 LU3 +64B9 JIAO3 +64BA CUAN1 +64BB TA4 +64BC HAN4 +64BD QIAO4 +64BE ZHUA1 WO1 +64BF JIAN3 LIAN4 +64C0 GAN3 HAN4 +64C1 YONG1 YONG3 +64C2 LEI2 LEI4 LEI1 +64C3 KUO3 +64C4 LU3 +64C5 SHAN4 +64C6 ZHUO2 +64C7 ZE2 ZHAI2 +64C8 PU1 BU3 +64C9 CHUO4 CHUO1 +64CA JI1 JI2 JI4 XI2 +64CB DANG3 DANG4 TANG3 +64CC SUO3 +64CD CAO1 CAO4 +64CE QING2 +64CF JING4 QING2 +64D0 HUAN4 GUAN1 XUAN1 +64D1 JIE1 XIE2 CHA1 SHA4 +64D2 QIN2 +64D3 KUAI3 +64D4 DAN1 DAN4 +64D5 XI1 XI2 XIE2 +64D6 GE3 YE4 +64D7 PI4 PI3 +64D8 BO4 +64D9 AO4 +64DA JU4 +64DB YE4 +64DE SOU3 SOU4 +64DF MI2 +64E0 JI3 +64E1 TAI2 +64E2 ZHUO2 +64E3 DAO3 +64E4 XING3 +64E5 LAN3 +64E6 CA1 +64E7 JU3 +64E8 YE2 +64E9 RU3 RUI4 +64EA YE4 +64EB YE4 +64EC NI3 +64ED WO4 HUO4 HU4 +64EE JI2 +64EF BIN4 +64F0 NING2 NING3 NING4 +64F1 GE1 GE2 +64F2 ZHI4 ZHI2 ZHI1 +64F3 JIE2 +64F4 KUO4 +64F5 MO2 MI2 MA1 +64F6 JIAN4 +64F7 XIE2 +64F8 LIE4 LA4 +64F9 TAN1 +64FA BAI3 +64FB SOU3 SOU4 +64FC LU3 +64FD LVE4 LI4 LUO4 +64FE RAO3 ROU2 +64FF ZHI2 TI4 ZHI4 +6500 PAN1 +6501 YANG3 +6502 LEI4 LEI2 +6503 SA4 +6504 SHU1 +6505 ZAN3 +6506 NIAN3 +6507 XIAN3 +6508 JUN4 +6509 HUO4 HUO1 QUE4 +650A LI4 +650B LA4 +650C HAN4 HUAN3 +650D YING2 +650E LU2 +650F LONG3 +6510 QIAN1 +6511 QIAN1 +6512 ZAN3 +6513 QIAN1 +6514 LAN2 +6515 SAN1 XIAN1 +6516 YING1 +6517 MEI2 +6518 RANG4 RANG3 NING2 XIANG3 RANG2 +6519 CHAN1 +651B CUAN1 +651C XIE2 XI1 XI2 +651D SHE4 NIE4 +651E LUO3 LUO1 LV3 +651F JUN4 +6520 MI2 MA1 MO2 +6521 LI2 CHI1 +6522 ZAN3 CUAN2 ZUAN1 +6523 LUAN2 LIAN4 +6524 TAN1 +6525 ZUAN4 +6526 LI4 XI3 +6527 DIAN1 DIE2 +6528 WA1 +6529 DANG3 TANG3 +652A JIAO3 +652B JUE2 +652C LAN3 +652D LI4 +652E NANG3 +652F ZHI1 +6530 GUI4 +6531 GUI3 +6532 QI1 JI1 YI1 +6533 XIN2 +6534 PU1 PO1 +6535 SUI1 +6536 SHOU1 +6537 KAO3 KAO2 +6538 YOU1 +6539 GAI3 +653A YI3 +653B GONG1 +653C GAN1 +653D BAN1 BIN1 +653E FANG4 FANG3 +653F ZHENG4 ZHENG1 +6540 BO2 +6541 DIAN1 +6542 KOU4 +6543 MIN3 +6544 WU4 MOU4 +6545 GU4 GU3 +6546 HE2 +6547 CE4 +6548 XIAO4 +6549 MI3 +654A CHU4 +654B GE2 GUO2 +654C DI2 +654D XU4 +654E JIAO4 JIAO1 +654F MIN3 +6550 CHEN2 +6551 JIU4 +6552 ZHEN4 +6553 DUO2 +6554 YU3 +6555 CHI4 +6556 AO2 AO4 +6557 BAI4 +6558 XU4 +6559 JIAO4 JIAO1 +655A DUO2 +655B LIAN4 LIAN3 +655C NIE4 +655D BI4 +655E CHANG3 +655F DIAN3 +6560 DUO2 +6561 YI4 +6562 GAN3 +6563 SAN4 SAN3 +6564 KE3 +6565 YAN4 +6566 DUN1 DUI4 DIAO1 DUI1 TUAN2 TUN2 +6567 QI3 +6568 DOU3 +6569 XIAO4 +656A DUO2 +656B JIAO4 JIAO3 +656C JING4 +656D YANG2 +656E XIA2 GUI1 +656F MIN2 HUN1 +6570 SHU4 SHU3 CU4 SHUO4 +6571 AI2 ZHU2 +6572 QIAO1 +6573 AI2 +6574 ZHENG3 +6575 DI2 +6576 ZHEN4 +6577 FU1 +6578 SHU4 SHU3 CU4 SHUO4 +6579 LIAO2 +657A QU1 +657B XIONG4 +657C XI3 +657D JIAO3 +657F JIAO3 +6580 ZHUO2 +6581 YI4 DU4 +6582 LIAN3 LIAN2 LIAN4 +6583 BI4 +6584 LI4 LI2 TAI2 +6585 XIAO4 JIAO3 +6586 XIAO4 JIAO3 +6587 WEN2 WEN4 +6588 XUE2 +6589 QI2 +658A QI2 +658B ZHAI1 +658C BIN1 +658D JUE2 +658E ZHAI1 +6590 FEI3 FEI1 +6591 BAN1 +6592 BAN1 +6593 LAN2 +6594 YU3 +6595 LAN2 +6596 WEI3 +6597 DOU3 DOU4 +6598 SHENG1 +6599 LIAO4 LIAO2 +659A JIA3 +659B HU2 +659C XIE2 XIA2 YE2 +659D JIA3 +659E YU3 +659F ZHEN1 +65A0 JIAO4 +65A1 WO4 GUAN3 +65A2 TOU3 +65A3 CHU4 +65A4 JIN1 +65A5 CHI4 +65A6 YIN2 +65A7 FU3 +65A8 QIANG1 +65A9 ZHAN3 +65AA QU2 +65AB ZHUO2 +65AC ZHAN3 +65AD DUAN4 +65AE ZHUO2 +65AF SI1 +65B0 XIN1 +65B1 ZHUO2 +65B2 ZHUO2 +65B3 QIN2 +65B4 LIN2 +65B5 ZHUO2 +65B6 CHU4 +65B7 DUAN4 +65B8 ZHU3 ZHU2 +65B9 FANG1 FENG1 PANG2 WANG3 +65BA XIE4 +65BB HANG2 +65BC YU2 YU1 WU1 +65BD SHI1 SHI3 YI2 YI4 +65BE PEI4 +65BF YOU2 LIU2 +65C1 PANG2 BANG4 +65C2 QI2 +65C3 ZHAN1 +65C4 MAO2 +65C5 LV3 +65C6 PEI4 +65C7 PI1 +65C8 LIU2 +65C9 FU1 +65CA FANG3 +65CB XUAN2 XUAN4 +65CC JING1 +65CD JING1 +65CE NI3 +65CF ZU2 ZOU4 COU4 +65D0 ZHAO4 +65D1 YI3 +65D2 LIU2 +65D3 SHAO1 +65D4 JIAN4 +65D6 YI3 +65D7 QI2 +65D8 ZHI4 +65D9 FAN1 +65DA PIAO1 +65DB FAN1 +65DC ZHAN1 +65DD GUAI4 KUAI4 +65DE SUI4 +65DF YU2 +65E0 WU2 MO2 +65E1 JI4 +65E2 JI4 XI4 +65E3 JI4 XI4 +65E4 HUO4 +65E5 RI4 MI4 +65E6 DAN4 +65E7 JIU4 +65E8 ZHI3 +65E9 ZAO3 +65EA XIE2 +65EB TIAO1 +65EC XUN2 +65ED XU4 +65EE XU4 GA1 +65EF XU4 LA2 +65F0 GAN4 HAN4 +65F1 HAN4 +65F2 TAI2 +65F3 DI4 +65F4 XU1 +65F5 CHAN3 +65F6 SHI2 +65F7 KUANG4 +65F8 YANG2 +65F9 SHI2 +65FA WANG4 +65FB MIN2 +65FC MIN2 +65FD TUN1 +65FE CHUN1 CHUN3 +65FF WU3 +6600 YUN2 +6601 BEI4 +6602 ANG2 +6603 ZE4 +6604 BAN3 +6605 JIE2 +6606 KUN1 HUN4 +6607 SHENG1 +6608 HU4 +6609 FANG3 +660A HAO4 +660B GUI4 +660C CHANG1 +660D XUAN1 +660E MING2 +660F HUN1 MIN3 +6610 FEN1 +6611 QIN3 +6612 HU1 +6613 YI4 +6614 XI1 CUO4 XI2 +6615 XIN1 +6616 YAN2 +6617 ZE4 +6618 FANG3 +6619 TAN2 +661A SHEN4 +661B JU4 +661C YANG2 +661D ZAN3 CAN3 +661E BING3 +661F XING1 +6620 YING4 +6621 XUAN4 +6622 PEI3 PEI4 +6623 ZHEN3 +6624 LING1 +6625 CHUN1 CHUN3 +6626 HAO4 +6627 MEI4 +6628 ZUO2 +6629 MO4 +662A BIAN4 +662B XU3 XU1 XU4 +662C HUN1 MIN3 +662D ZHAO1 +662E ZONG4 +662F SHI4 +6630 SHI4 XIA4 +6631 YU4 YI4 +6632 FEI4 +6633 DIE2 YI4 +6634 MAO3 +6635 NI4 NI3 ZHI4 +6636 CHANG3 CHANG4 +6637 WEN1 YUN4 +6638 DONG1 +6639 AI3 +663A BING3 +663B ANG2 +663C ZHOU4 +663D LONG2 +663E XIAN3 +663F KUANG4 +6640 TIAO3 +6641 CHAO2 +6642 SHI2 +6643 HUANG3 HUANG4 +6644 HUANG3 +6645 XUAN1 XIAN3 +6646 KUI2 +6647 XU1 KUA1 +6648 JIAO3 +6649 JIN4 +664A ZHI3 +664B JIN4 +664C SHANG3 +664D TONG2 +664E HONG3 +664F YAN4 +6650 GAI1 +6651 XIANG3 +6652 SHAI4 +6653 XIAO3 +6654 YE1 YE4 +6655 YUN1 YUN4 +6656 HUI1 +6657 HAN2 +6658 HAN4 +6659 JUN4 +665A WAN3 +665B XIAN4 +665C KUN1 +665D ZHOU4 +665E XI1 +665F SHENG4 CHENG2 JING1 +6660 SHENG2 +6661 BU1 +6662 ZHE2 ZHE1 XI1 ZHI4 +6663 ZHE1 ZHE2 ZHI4 +6664 WU4 +6665 HAN4 +6666 HUI4 +6667 HAO4 +6668 CHEN2 +6669 WAN3 +666A TIAN3 +666B ZHUO2 +666C ZUI4 +666D ZHOU3 +666E PU3 +666F JING3 YING3 +6670 XI1 +6671 SHAN3 +6672 YI3 NI4 +6673 XI4 XI1 +6674 QING2 +6675 QI3 +6676 JING1 +6677 GUI3 +6678 ZHEN3 ZHENG3 +6679 YI4 +667A ZHI4 ZHI1 +667B AN3 YAN3 +667C WAN3 +667D LIN2 +667E LIANG4 +667F CHANG1 +6680 WANG3 WANG4 +6681 XIAO3 +6682 ZAN4 +6684 XUAN1 +6685 XUAN3 GENG4 GENG3 +6686 YI2 +6687 XIA2 XIA4 +6688 YUN1 YUN4 +6689 HUI1 +668A FU3 +668B MIN3 MIN2 +668C KUI2 +668D HE4 YE1 +668E YING4 +668F DU3 +6690 WEI3 +6691 SHU3 +6692 QING2 +6693 MAO4 +6694 NAN2 +6695 JIAN3 LAN2 +6696 NUAN3 XUAN1 +6697 AN4 +6698 YANG2 +6699 CHUN1 +669A YAO2 +669B SUO3 +669C JIN4 +669D MING2 MING3 +669E JIAO3 +669F KAI3 +66A0 GAO3 HAO4 +66A1 WENG3 +66A2 CHANG4 +66A3 QI4 +66A4 HAO4 +66A5 YAN4 +66A6 LI4 +66A7 AI4 +66A8 JI4 +66A9 GUI4 +66AA MEN3 +66AB ZAN4 +66AC XIE4 +66AD HAO4 +66AE MU4 +66AF MO4 +66B0 CONG1 +66B1 NI4 +66B2 ZHANG1 +66B3 HUI4 +66B4 BAO4 PU4 BO2 +66B5 HAN4 +66B6 XUAN2 +66B7 CHUAN2 +66B8 LIAO2 LIAO3 +66B9 XIAN1 +66BA DAN4 +66BB JING3 +66BC PIE1 +66BD LIN2 +66BE TUN1 +66BF XI3 +66C0 YI4 +66C1 JI4 +66C2 HUANG4 +66C3 TAI4 DAI4 +66C4 YE4 +66C5 YE4 +66C6 LI4 +66C7 TAN2 +66C8 TONG2 +66C9 XIAO3 +66CA FEI4 +66CB QIN3 +66CC ZHAO4 +66CD HAO4 +66CE YI4 +66CF XIANG4 SHANG3 +66D0 XING1 +66D1 SEN1 +66D2 JIAO3 +66D3 BAO4 BO2 +66D4 JING4 +66D5 YAN4 +66D6 AI4 +66D7 YE4 +66D8 RU2 +66D9 SHU4 SHU3 +66DA MENG2 +66DB XUN1 +66DC YAO4 +66DD PU4 +66DE LI4 +66DF CHEN2 +66E0 KUANG4 +66E1 DIE2 +66E3 YAN4 +66E4 HUO4 +66E5 LU2 +66E6 XI1 +66E7 RONG2 +66E8 LONG2 +66E9 NANG3 +66EA LUO3 +66EB LUAN2 +66EC SHAI4 +66ED TANG3 +66EE YAN3 +66EF CHU2 +66F0 YUE1 +66F1 YUE1 +66F2 QU1 QU3 +66F3 YE4 YI4 +66F4 GENG4 GENG1 +66F5 YE4 +66F6 HU1 +66F7 HE2 +66F8 SHU1 +66F9 CAO2 +66FA CAO2 +66FC MAN4 MAN2 +66FD CENG1 +66FE CENG2 ZENG1 +66FF TI4 +6700 ZUI4 +6701 CAN3 +6702 XU4 +6703 HUI4 KUAI4 GUI4 +6704 YIN4 YIN3 +6705 QIE4 +6706 FEN1 +6707 PI2 +6708 YUE4 +6709 YOU3 YOU4 +670A RUAN3 +670B PENG2 +670C BAN1 FEN2 +670D FU2 FU4 BI4 +670E LING2 +670F FEI3 PEI4 +6710 QU2 +6712 NV4 +6713 TIAO4 TIAO3 +6714 SHUO4 +6715 ZHEN4 +6716 LANG3 +6717 LANG3 +6718 JUAN1 +6719 MING2 +671A HUANG1 +671B WANG4 +671C TUN1 +671D ZHAO1 CHAO2 ZHU1 +671E JI1 QI2 +671F QI1 QI2 JI1 +6720 YING1 +6721 ZONG1 +6722 WANG4 +6723 TONG2 +6724 LANG3 +6726 MENG2 +6727 LONG2 LONG3 +6728 MU4 +6729 DENG3 +672A WEI4 +672B MO4 +672C BEN3 +672D ZHA2 +672E SHU4 ZHU2 +672F SHU4 SHU2 ZHU2 +6731 ZHU1 SHU2 +6732 REN2 +6733 BA1 +6734 PO4 PU2 PO1 PIAO2 PU3 +6735 DUO3 +6736 DUO3 +6737 DAO1 +6738 LI4 LE4 +6739 QIU2 GUI3 +673A JI1 +673B JIU1 +673C BI3 +673D XIU3 +673E TING2 TING1 CHENG2 +673F CI4 +6740 SHA1 SA4 SHAI4 SHE4 +6742 ZA2 +6743 QUAN2 +6744 QIAN1 +6745 YU2 +6746 GAN1 GAN3 +6747 WU1 +6748 CHA1 CHA4 +6749 SHAN1 SHA1 +674A XUN2 +674B FAN1 +674C WU4 +674D ZI3 +674E LI3 +674F XING4 +6750 CAI2 +6751 CUN1 +6752 REN4 +6753 SHAO2 BIAO1 SHUO2 +6754 TUO1 +6755 DI4 DUO4 +6756 ZHANG4 +6757 MANG2 +6758 CHI4 CHI1 +6759 YI4 +675A GU3 +675B GONG1 +675C DU4 +675D YI2 CHI3 LI2 +675E QI3 +675F SHU4 +6760 GANG1 GANG4 +6761 TIAO2 +6765 LAI2 LAI4 +6767 MANG2 +6768 YANG2 +6769 MA4 MA3 +676A MIAO3 +676B SI4 +676C YUAN2 WAN2 +676D HANG2 KANG1 +676E FEI4 BEI4 +676F BEI1 +6770 JIE2 +6771 DONG1 +6772 GAO3 +6773 YAO3 +6774 XIAN1 +6775 CHU3 +6776 CHUN1 QUN1 +6777 PA2 BA4 +6778 SHU1 +6779 HUA4 +677A XIN1 +677B CHOU3 NIU3 +677C ZHU4 SHU4 +677D CHOU3 +677E SONG1 +677F BAN3 +6780 SONG1 +6781 JI2 +6782 YUE4 +6783 JIN4 +6784 GOU1 GOU4 +6785 JI1 JIAN1 +6786 MAO2 +6787 PI2 BI3 BI4 +6788 BI4 +6789 WANG3 +678A ANG4 +678B FANG1 BING4 +678C FEN2 +678D YI4 +678E FU2 FU1 +678F NAN2 +6790 XI1 +6791 HU4 +6792 YA2 YA1 +6793 DOU3 ZHU3 +6794 XUN2 +6795 ZHEN3 ZHEN4 +6796 YAO1 +6797 LIN2 +6798 RUI4 +6799 E3 E4 E2 +679A MEI2 +679B ZHAO4 +679C GUO3 KE4 LUO3 WO3 +679D ZHI1 QI2 +679E CONG1 ZONG1 +679F YUN4 YUN2 +67A1 DOU3 +67A2 SHU1 +67A3 ZAO3 +67A5 LI4 +67A7 JIAN4 JIAN3 +67A8 CHENG2 +67AA QIANG1 CHENG1 +67AB FENG1 +67AC NAN2 +67AD XIAO1 +67AE XIAN1 +67AF KU1 +67B0 PING2 +67B1 YI2 TAI2 SI4 +67B2 XI3 +67B3 ZHI1 ZHI2 ZHI3 +67B4 GUAI3 +67B5 XIAO1 +67B6 JIA4 +67B7 JIA1 +67B8 JU3 GOU3 GOU1 QU2 +67B9 FU1 BAO1 FU2 +67BA MO4 +67BB YI4 +67BC YE4 +67BD YE4 +67BE SHI4 +67BF NIE4 +67C0 BI3 +67C1 DUO4 TUO2 TUO3 +67C2 YI2 DUO4 +67C3 LING2 +67C4 BING3 BING4 +67C5 NI3 +67C6 LA1 +67C7 HE2 +67C8 PAN2 +67C9 FAN2 +67CA ZHONG1 +67CB DAI4 +67CC CI2 +67CD YANG1 +67CE FU1 FU3 FU4 +67CF BAI3 BO2 BO4 +67D0 MOU3 +67D1 GAN1 QIAN2 +67D2 QI1 +67D3 RAN3 +67D4 ROU2 +67D5 MAO4 +67D6 ZHAO1 +67D7 SONG1 +67D8 ZHE4 +67D9 XIA2 JIA3 YA1 +67DA YOU4 YOU2 ZHU2 +67DB SHEN1 +67DC GUI4 JU3 +67DD TUO4 +67DE ZUO4 ZE2 ZHA4 +67DF NAN2 +67E0 NING2 +67E1 YONG3 +67E2 DI3 +67E3 ZHI2 DIE2 ZHI4 +67E4 ZHA1 JU1 ZU3 +67E5 CHA2 ZHA1 +67E6 DAN4 +67E7 GU1 +67E9 JIU4 +67EA AO1 +67EB FU2 +67EC JIAN3 +67ED BO1 +67EE DUO4 +67EF KE1 +67F0 NAI4 +67F1 ZHU4 ZHU3 +67F2 BI4 +67F3 LIU3 +67F4 CHAI2 ZHAI4 ZI4 +67F5 ZHA4 CE4 SHA4 SHAN1 +67F6 SI4 +67F7 ZHU4 +67F8 PEI1 +67F9 SHI4 +67FA GUAI3 +67FB CHA2 ZHA1 +67FC YAO3 +67FD JUE2 CHENG1 +67FE JIU4 +67FF SHI4 +6800 ZHI1 +6801 LIU3 +6802 MEI2 +6804 RONG2 +6805 ZHA4 CE4 SHA4 SHAN1 +6807 BIAO1 +6808 ZHAN4 +6809 JIE2 ZHI4 +680A LONG2 +680B DONG4 +680C LU2 +680E LI4 LAO2 YUE4 +680F LAN2 LIAN4 +6810 YONG3 +6811 SHU4 +6812 XUN2 SUN3 +6813 SHUAN1 +6814 QI4 +6815 ZHEN1 +6816 QI1 XI1 +6817 LI4 +6818 YI3 YI2 +6819 XIANG2 +681A ZHEN4 +681B LI4 +681C SU4 SHE4 +681D GUA1 KUAI4 KUO4 TIAN4 +681E KAN1 +681F BING1 BEN1 +6820 REN3 +6821 XIAO4 JIAO3 JIAO4 XIAO2 +6822 BO2 BO4 BAI3 +6823 REN3 +6824 BING4 +6825 ZI1 +6826 CHOU2 +6827 YI4 +6828 JIE2 +6829 XU3 +682A ZHU1 +682B JIAN4 +682C ZUI4 +682D ER2 +682E ER3 +682F YOU3 YU4 +6830 FA2 +6831 GONG3 +6832 KAO3 +6833 LAO3 +6834 ZHAN1 +6835 LI4 +6837 YANG2 YANG4 XIANG4 +6838 HE2 HU2 +6839 GEN1 +683A ZHI3 +683B SHI4 CHI4 +683C GE2 GE1 +683D ZAI1 ZAI4 +683E LUAN2 +683F FU2 +6840 JIE2 +6841 HENG2 HANG2 HANG4 +6842 GUI4 +6843 TAO2 +6844 GUANG4 GUANG1 +6845 WEI2 +6846 KUANG4 KUANG1 +6847 RU2 +6848 AN4 +6849 AN1 AN4 +684A JUAN4 QUAN1 QUAN2 +684B YI2 +684C ZHUO1 +684D KU1 +684E ZHI4 ZHI2 +684F QIONG2 +6850 TONG2 +6851 SANG1 +6852 SANG1 +6853 HUAN2 +6854 JIE2 JU2 XIE2 +6855 JIU4 GAO1 +6856 XUE4 +6857 DUO4 DUO3 +6858 ZHUI4 CHUI2 DUI1 +6859 YU2 MOU2 +685A ZAN3 +685C YING1 +685F ZHAN4 +6860 YA2 +6861 NAO2 RAO2 +6862 ZHEN1 ZHENG1 +6863 DANG3 DANG4 +6864 QI1 +6865 QIAO2 +6866 HUA4 +6867 KUAI4 GUI4 HUI4 +6868 JIANG3 +6869 ZHUANG1 CHONG1 +686A XUN2 XIN2 +686B SUO1 +686C SHA1 +686D ZHEN1 CHEN2 +686E BEI1 +686F TING1 XING2 +6870 GUA1 +6871 JING4 +6872 BO2 PO5 +6873 BEN4 +6874 FU2 +6875 RUI3 +6876 TONG3 +6877 JUE2 +6878 XI1 +6879 LANG2 +687A LIU3 +687B FENG1 +687C QI1 +687D WEN3 +687E JUN1 +687F GAN3 +6880 CU4 +6881 LIANG2 +6882 QIU2 +6883 TING3 TING4 +6884 YOU3 +6885 MEI2 +6886 BANG1 +6887 LONG4 +6888 PENG1 +6889 ZHUANG1 +688A DI4 +688B XUAN1 +688C TU2 +688D ZAO4 +688E AO1 YOU4 +688F GU4 JUE2 +6890 BI4 +6891 DI2 +6892 HAN2 +6893 ZI3 +6894 ZHI1 +6895 REN4 +6896 BEI4 +6897 GENG3 +6898 JIAN4 JIAN3 +6899 HUAN4 +689A WAN3 +689B NUO2 +689C JIA2 JIA1 +689D TIAO2 +689E JI4 +689F XIAO1 +68A0 LV3 +68A1 HUN2 KUAN3 +68A2 SHAO1 SHAO4 XIAO1 +68A3 CEN2 CHEN2 QIN2 +68A4 FEN2 +68A5 SONG1 +68A6 MENG4 MENG2 +68A7 WU2 WU4 YU3 +68A8 LI2 +68A9 LI2 SI4 +68AA DOU4 +68AB CEN1 QIN1 +68AC YING3 CHENG3 +68AD SUO1 XUN4 +68AE JU2 +68AF TI1 TI2 +68B0 XIE4 JIE4 +68B1 KUN3 +68B2 ZHUO2 +68B3 SHU1 +68B4 CHAN1 +68B5 FAN4 +68B6 WEI3 +68B7 JING4 +68B8 LI2 +68B9 BING1 BIN1 +68BC TAO2 DAO3 +68BD ZHI4 +68BE LAI2 +68BF LIAN2 +68C0 JIAN3 +68C1 ZHUO2 TUO1 +68C2 LING2 +68C3 LI2 +68C4 QI4 +68C5 BING4 +68C6 ZHUN1 LUN2 +68C7 CONG1 +68C8 QIAN4 +68C9 MIAN2 +68CA QI2 +68CB QI2 JI1 +68CC CAI3 +68CD GUN4 HUN4 AO1 GUN3 +68CE CHAN2 +68CF TE4 +68D0 FEI3 +68D1 PAI2 BAI4 +68D2 BANG4 +68D3 POU3 BANG4 BEI4 +68D4 HUN1 +68D5 ZONG1 +68D6 CHENG2 +68D7 ZAO3 +68D8 JI2 +68D9 LI4 +68DA PENG2 +68DB YU4 +68DC YU4 +68DD GU4 +68DE HUN2 +68DF DONG4 +68E0 TANG2 +68E1 GANG1 +68E2 WANG3 +68E3 DI4 TI4 DAI4 +68E4 XI2 +68E5 FAN2 +68E6 CHENG1 +68E7 ZHAN4 +68E8 QI3 +68E9 YUAN1 +68EA YAN3 +68EB YU4 +68EC QUAN1 QUAN4 +68ED YI4 +68EE SEN1 +68EF REN3 NIAN4 +68F0 CHUI2 DUO3 +68F1 LENG2 LENG1 LING2 LENG4 +68F2 QI1 XI1 +68F3 ZHUO2 +68F4 FU2 +68F5 KE1 KUAN3 KE3 +68F6 LAI2 +68F7 ZOU1 +68F8 ZOU1 +68F9 ZHUO1 ZHAO4 +68FA GUAN1 GUAN4 +68FB FEN2 FEN1 +68FC FEN2 FEN1 FEN4 +68FD CHEN1 SHEN1 +68FE QIONG2 +68FF NIE4 +6900 WAN3 +6901 GUO3 +6902 LU4 +6903 HAO2 +6904 JIE1 +6905 YI3 YI1 +6906 CHOU2 +6907 JU3 +6908 JU2 +6909 CHENG2 SHENG4 +690A ZUO2 +690B LIANG2 +690C QIANG1 +690D ZHI2 +690E ZHUI1 CHUI2 +690F YA1 YA2 +6910 JU1 +6911 BEI1 PI2 PI4 +6912 JIAO1 +6913 ZHUO2 +6914 ZI1 ZI4 +6915 BIN1 +6916 PENG2 +6917 DING4 +6918 CHU3 +691C JIAN3 +691D GUI1 +691E XI4 +691F DU2 +6920 QIAN4 +6924 LUO2 +6925 ZHI1 +692A PENG4 +692B ZHAN3 SHAN4 +692D TUO3 +692E SEN1 SHEN1 +692F DUO2 +6930 YE2 YE1 +6931 FOU4 +6932 WEI3 +6933 WEI1 +6934 DUAN4 +6935 JIA3 JIA1 +6936 ZONG1 +6937 JIAN1 HAN2 +6938 YI2 +6939 SHEN4 ZHEN1 +693A XI2 +693B YAN4 +693C YAN3 +693D CHUAN2 +693E ZHAN4 JIAN1 +693F CHUN1 +6940 YU3 JU3 +6941 HE2 +6942 ZHA1 CHA2 CHA1 +6943 WO4 +6944 PIAN2 +6945 BI4 +6946 YAO1 +6947 HUO4 +6948 XU1 +6949 RUO4 +694A YANG2 +694B LA4 +694C YAN2 +694D BEN3 +694E HUN2 HUI1 +694F KUI2 +6950 JIE4 +6951 KUI2 KUI3 +6952 SI1 +6953 FENG1 +6954 XIE1 XIE4 +6955 TUO3 +6956 ZHI4 JI2 +6957 JIAN4 JIAN3 +6958 MU4 +6959 MAO4 +695A CHU3 +695B HU4 KU3 +695C HU2 +695D LIAN4 +695E LENG2 LENG4 +695F TING2 +6960 NAN2 +6961 YU2 +6962 YOU2 +6963 MEI2 +6964 SONG3 +6965 XUAN4 YUAN2 +6966 XUAN4 +6967 YING1 +6968 ZHEN1 ZHENG1 +6969 PIAN2 +696A YE4 DIE2 +696B JI2 +696C JIE2 QIA4 +696D YE4 +696E CHU3 ZHU1 +696F SHUN3 +6970 YU2 +6971 COU4 ZOU4 +6972 WEI1 +6973 MEI2 +6974 DI4 +6975 JI2 +6976 JIE2 +6977 KAI3 JIE1 +6978 QIU1 +6979 YING2 +697A ROU2 +697B HENG2 +697C LOU2 +697D LE4 +6980 PIN3 +6982 GAI4 GUI4 JIE2 +6983 TAN2 +6984 LAN3 +6985 YUN2 +6986 YU2 +6987 CHEN4 +6988 LV2 +6989 JU3 +698D XIE4 +698E JIA3 +698F YI4 +6990 ZHAN3 +6991 FU4 FU2 +6992 NAI4 +6993 MI4 +6994 LANG2 LANG3 +6995 RONG2 +6996 GU3 +6997 JIAN4 +6998 JU3 +6999 TA3 +699A YAO3 +699B ZHEN1 +699C BANG3 BANG4 BENG1 PANG2 +699D SHA1 +699E YUAN2 +699F ZI3 +69A0 MING2 +69A1 SU4 +69A2 JIA4 +69A3 YAO2 +69A4 JIE2 +69A5 HUANG3 HUANG4 +69A6 GAN4 GAN1 +69A7 FEI3 +69A8 ZHA4 +69A9 QIAN2 +69AA MA4 MA3 +69AB SUN3 +69AC YUAN2 +69AD XIE4 +69AE RONG2 +69AF SHI2 +69B0 ZHI1 +69B1 CUI1 +69B2 YUN2 +69B3 TING2 +69B4 LIU2 +69B5 RONG2 +69B6 TANG2 +69B7 QUE4 +69B8 ZHAI1 +69B9 SI1 +69BA SHENG4 +69BB TA4 +69BC KE4 +69BD XI1 +69BE GU4 GU3 +69BF QI1 +69C0 KAO3 GAO3 +69C1 GAO3 KAO4 GAO1 +69C2 SUN1 +69C3 PAN2 +69C4 TAO1 +69C5 GE2 HE2 +69C6 XUN2 +69C7 DIAN1 +69C8 NOU4 +69C9 JI2 +69CA SHUO4 +69CB GOU4 +69CC CHUI2 ZHUI4 DUI1 +69CD QIANG1 CHENG1 +69CE CHA2 CHA1 ZHA1 +69CF QIAN3 +69D0 HUAI2 +69D1 MEI2 +69D2 XU4 CHU4 +69D3 GANG4 +69D4 GAO1 +69D5 ZHUO2 ZHUO1 +69D6 TUO4 TUO2 +69D8 YANG4 +69D9 DIAN1 +69DA JIA3 +69DB JIAN4 KAN3 +69DC ZUI4 +69DF BIN1 BING1 +69E0 ZHU1 +69E2 XI2 +69E3 QI3 +69E4 LIAN2 +69E5 HUI4 +69E6 YONG2 +69E7 QIAN4 +69E8 GUO3 +69E9 GAI4 +69EA GAI4 +69EB TUAN2 +69EC HUA4 +69ED CU4 QI1 SE4 +69EE SEN1 SHEN1 +69EF CUI1 +69F0 BENG4 +69F1 YOU3 YOU2 +69F2 HU2 +69F3 JIANG3 JIANG1 +69F4 HU4 +69F5 HUAN4 +69F6 KUI4 +69F7 YI4 NIE4 +69F8 NIE4 +69F9 GAO1 +69FA KANG1 +69FB GUI1 +69FC GUI1 +69FD CAO2 ZAO1 +69FE MAN2 MAN4 +69FF JIN3 QIN2 +6A00 DI4 +6A01 ZHUANG1 CHONG1 +6A02 LE4 YUE4 YAO4 LUO4 LIAO2 +6A03 LANG2 +6A04 CHEN2 +6A05 CONG1 ZONG1 +6A06 LI2 +6A07 XIU1 +6A08 QING2 +6A09 SHUANG3 +6A0A FAN2 PAN2 FAN4 +6A0B TONG1 +6A0C GUAN4 +6A0D JI1 +6A0E SUO1 +6A0F LEI3 LEI2 +6A10 LU3 +6A11 LIANG2 +6A12 MI4 +6A13 LOU2 LV2 +6A14 CHAO2 JIAO3 +6A15 SU4 +6A16 KE1 +6A17 CHU1 SHU1 +6A18 TANG2 CHENG1 +6A19 BIAO1 +6A1A LU4 +6A1B JIU1 +6A1C SHU4 +6A1D ZHA1 +6A1E SHU1 +6A1F ZHANG1 +6A20 MEN2 MAN2 +6A21 MO2 MU2 +6A22 NIAO3 +6A23 YANG4 XIANG4 +6A24 TIAO2 +6A25 PENG2 +6A26 ZHU4 +6A27 SHA1 +6A28 XI1 +6A29 QUAN2 +6A2A HENG2 HENG4 GUANG1 HUANG2 HUANG4 +6A2B JIAN1 +6A2C CONG1 SONG1 +6A2F QIANG2 +6A31 YING1 +6A32 ER4 +6A33 XIN2 +6A34 ZHI2 +6A35 QIAO2 +6A36 ZUI1 +6A37 CONG1 CONG2 +6A38 PU2 PU3 +6A39 SHU4 +6A3A HUA4 +6A3B KUI4 +6A3C ZHEN1 +6A3D ZUN1 ZUN3 +6A3E YUE4 +6A3F ZHAN3 SHAN4 +6A40 XI1 +6A41 XUN2 CHUN1 +6A42 DIAN4 +6A43 FA1 +6A44 GAN3 +6A45 MO2 MU2 +6A46 WU3 +6A47 QIAO1 QIAO4 CUI4 +6A48 NAO2 RAO2 +6A49 LIN4 +6A4A LIU2 +6A4B QIAO2 +6A4C XIAN4 +6A4D RUN4 +6A4E FAN2 +6A4F ZHAN3 SHAN3 +6A50 TUO2 DU4 LUO4 TUO4 +6A51 LAO3 LIAO2 +6A52 YUN2 +6A53 SHUN4 +6A54 TUI2 +6A55 CHENG1 +6A56 TANG2 +6A57 MENG2 +6A58 JU2 +6A59 CHENG2 CHEN2 DENG4 +6A5A SU4 +6A5B JUE2 +6A5C JUE2 +6A5D TAN1 TAN2 +6A5E HUI4 +6A5F JI1 +6A60 NUO3 +6A61 XIANG4 +6A62 TUO3 DUO3 +6A63 NING3 +6A64 RUI3 +6A65 ZHU1 +6A66 CHUANG2 CHONG1 TONG2 +6A67 ZENG1 +6A68 FEN2 +6A69 QIONG2 +6A6A RAN3 +6A6B HENG2 HENG4 +6A6C CEN2 +6A6D GU1 +6A6E LIU3 +6A6F LAO4 +6A70 GAO1 +6A71 CHU2 +6A76 JI2 +6A77 DOU1 +6A79 LU3 +6A7C YUAN2 +6A7D TA4 +6A7E SHU1 +6A7F JIANG1 +6A80 TAN2 SHAN4 +6A81 LIN3 +6A82 NONG2 +6A83 YIN3 +6A84 XI2 +6A85 SUI4 +6A86 SHAN1 SHA1 +6A87 ZUI4 +6A88 XUAN2 +6A89 CHENG1 +6A8A GAN4 +6A8B JU1 JU2 +6A8C ZUI4 +6A8D YI4 +6A8E QIN2 +6A8F PU3 PU2 +6A90 YAN2 DAN1 +6A91 LEI2 LEI4 +6A92 FENG1 +6A93 HUI3 +6A94 DANG4 DANG3 +6A95 JI4 XI4 +6A96 SUI4 +6A97 BO4 BI4 +6A98 BI4 +6A99 DING3 +6A9A CHU3 +6A9B ZHUA1 +6A9C GUI4 KUAI4 HUI4 +6A9D JI2 +6A9E JIE3 XIE4 +6A9F JIA3 +6AA0 QING2 JING4 +6AA1 ZHE4 SHI4 +6AA2 JIAN3 +6AA3 QIANG2 +6AA4 DAO4 +6AA5 YI3 +6AA6 BIAO3 +6AA7 SONG1 +6AA8 SHE1 +6AA9 LIN3 +6AAB CHA2 SA4 +6AAC MENG2 +6AAD YIN2 +6AAE TAO2 DAO3 +6AAF TAI2 +6AB0 MIAN2 +6AB1 QI2 JI1 +6AB3 BIN1 BING1 +6AB4 HUO4 +6AB5 JI4 QI3 +6AB6 QIAN1 +6AB7 MI2 +6AB8 NING2 +6AB9 YI1 +6ABA GAO3 +6ABB JIAN4 KAN3 XIAN3 +6ABC YIN4 YIN3 +6ABD ER2 NOU4 +6ABE QING3 JIONG3 +6ABF YAN3 +6AC0 QI2 +6AC1 MI4 +6AC2 ZHAO4 ZHUO1 +6AC3 GUI4 +6AC4 CHUN1 +6AC5 JI1 +6AC6 KUI2 +6AC7 PO2 +6AC8 DENG4 +6AC9 CHU2 +6ACB MIAN2 +6ACC YOU1 +6ACD ZHI4 +6ACE GUANG4 HUANG3 +6ACF QIAN1 +6AD0 LEI3 +6AD1 LEI3 LEI2 +6AD2 SA4 +6AD3 LU3 +6AD4 LI4 +6AD5 CUAN2 +6AD6 LV2 +6AD7 MIE4 +6AD8 HUI4 +6AD9 OU1 +6ADA LV2 +6ADB JIE2 ZHI4 +6ADC GAO1 +6ADD DU2 +6ADE YUAN2 +6ADF LI4 LAO2 YUE4 +6AE0 FEI4 +6AE1 ZHUO2 ZHU4 +6AE2 SOU3 +6AE3 LIAN2 +6AE5 CHU2 +6AE7 ZHU1 +6AE8 LU2 +6AE9 YAN2 +6AEA LI4 +6AEB ZHU1 +6AEC CHEN4 QIN4 GUAN4 +6AED JIE2 JI4 +6AEE E4 +6AEF SU1 +6AF0 HUAI2 +6AF1 NIE4 +6AF2 YU4 +6AF3 LONG2 +6AF4 LAI4 +6AF6 XIAN3 +6AF8 JU3 +6AF9 XIAO1 +6AFA LING2 +6AFB YING1 +6AFC JIAN1 +6AFD YIN3 +6AFE YOU2 YOU4 +6AFF YING2 +6B00 XIANG1 +6B01 NONG2 +6B02 BO2 +6B03 CHAN2 +6B04 LAN2 LIAN4 +6B05 JU3 +6B06 SHUANG1 +6B07 SHE4 +6B08 WEI2 +6B09 CONG4 +6B0A QUAN2 +6B0B QU2 +6B0E YU4 +6B0F LUO2 LUO3 +6B10 LI3 LI4 +6B11 ZAN4 +6B12 LUAN2 +6B13 DANG3 +6B14 JUE2 +6B16 LAN3 +6B17 LAN2 +6B18 ZHU3 ZHU2 +6B19 LEI2 +6B1A LI3 +6B1B BA4 +6B1C NANG2 +6B1D YU4 +6B1E LING2 +6B20 QIAN4 QUE1 +6B21 CI4 +6B22 HUAN1 +6B23 XIN1 +6B24 YU2 +6B25 YU4 +6B26 QIAN1 +6B27 OU1 OU3 +6B28 XU1 +6B29 CHAO1 +6B2A CHU4 +6B2B CHI1 +6B2C KAI4 KE2 +6B2D YI4 +6B2E JUE2 +6B2F XI2 +6B30 XU1 +6B31 XIA4 HE1 +6B32 YU4 +6B33 KUAI4 +6B34 LANG2 +6B35 KUAN3 +6B36 SHUO4 +6B37 XI1 +6B38 AI3 AI1 EI1 EI4 +6B39 YI1 QI1 +6B3A QI1 +6B3B XU1 CHUA1 HU1 +6B3C CHI3 +6B3D QIN1 QIN4 YIN2 +6B3E KUAN3 XIN1 +6B3F KAN3 +6B40 KUAN3 +6B41 KAN3 +6B42 CHUAN2 CHUAN3 +6B43 SHA4 XIA2 +6B45 YIN1 YAN1 +6B46 XIN1 +6B47 XIE1 YA4 +6B48 YU2 +6B49 QIAN4 +6B4A XIAO1 +6B4B YI2 +6B4C GE1 +6B4D WU1 +6B4E TAN4 +6B4F JIN4 +6B50 OU1 OU3 +6B51 HU1 +6B52 TI4 +6B53 HUAN1 +6B54 XU1 +6B55 PEN1 PEN4 FEN4 +6B56 XI1 +6B57 XIAO4 +6B58 XU1 CHUA1 +6B59 XI1 SHE4 XIE2 XI4 +6B5B HAN1 LIAN3 LIAN4 +6B5C CHU4 +6B5D YI4 +6B5E KAN3 +6B5F YU2 +6B60 CHUO4 +6B61 HUAN1 +6B62 ZHI3 +6B63 ZHENG4 ZHENG1 +6B64 CI3 +6B65 BU4 +6B66 WU3 +6B67 QI2 +6B68 BU4 +6B69 BU4 +6B6A WAI1 WAI3 +6B6B JU4 +6B6C QIAN2 +6B6D CHI2 +6B6E SE4 +6B6F CHI3 +6B70 SE4 SHA4 +6B71 ZHONG3 +6B72 SUI4 +6B73 SUI4 +6B74 LI4 +6B75 CUO4 +6B76 YU2 +6B77 LI4 +6B78 GUI1 KUI4 +6B79 DAI3 E4 DAI1 +6B7A DAI3 +6B7B SI3 +6B7C JIAN1 +6B7D ZHE2 +6B7E MO4 WEN3 +6B7F MO4 +6B80 YAO3 YAO1 +6B81 MO4 WEN3 +6B82 CU2 +6B83 YANG1 +6B84 TIAN3 +6B85 SHENG1 +6B86 DAI4 +6B87 SHANG1 +6B88 XU4 +6B89 XUN4 +6B8A SHU1 +6B8B CAN2 +6B8C JUE2 +6B8D PIAO3 BI4 +6B8E QIA4 +6B8F QIU4 +6B90 SU4 +6B91 QING2 JING4 +6B92 YUN3 +6B93 LIAN4 +6B94 YI4 +6B95 FOU3 +6B96 ZHI2 SHI4 +6B97 YE4 +6B98 CAN2 +6B99 HUN1 +6B9A DAN1 +6B9B JI2 +6B9C YE4 DIE2 +6B9E YUN3 +6B9F WEN1 +6BA0 CHOU4 +6BA1 BIN4 +6BA2 TI4 NI4 +6BA3 JIN4 JIN3 +6BA4 SHANG1 +6BA5 YIN2 +6BA6 DIAO1 +6BA7 CU4 +6BA8 HUI4 +6BA9 CUAN4 +6BAA YI4 +6BAB DAN1 +6BAC DU4 +6BAD JIANG1 +6BAE LIAN4 +6BAF BIN4 +6BB0 DU2 +6BB2 JIAN1 +6BB3 SHU1 +6BB4 OU1 +6BB5 DUAN4 +6BB6 ZHU4 +6BB7 YIN1 YAN1 YIN3 +6BB8 QING4 +6BB9 YI4 +6BBA SHA1 SA4 SHAI4 SHE4 +6BBB QUE4 KE2 QIAO4 +6BBC KE2 QIAO4 +6BBD YAO2 XIAO2 XIAO4 +6BBE JUN4 +6BBF DIAN4 +6BC0 HUI3 HUI4 +6BC1 HUI3 +6BC2 GU3 +6BC3 QUE4 +6BC4 JI1 +6BC5 YI4 +6BC6 OU1 KOU1 QU1 +6BC7 HUI3 +6BC8 DUAN4 +6BC9 YI1 +6BCA XIAO1 +6BCB WU2 MOU2 +6BCC GUAN4 +6BCD MU3 MU2 WU3 WU2 +6BCE MEI3 +6BCF MEI3 MEI4 +6BD0 AI3 +6BD1 ZUO3 JIE3 +6BD2 DU2 DAI4 +6BD3 YU4 +6BD4 BI3 BI4 PI2 PI3 +6BD5 BI4 +6BD6 BI4 +6BD7 PI2 +6BD8 PI2 +6BD9 BI4 +6BDA CHAN2 +6BDB MAO2 MAO4 +6BDE PU2 +6BE0 JIA1 +6BE1 ZHAN1 +6BE2 SAI1 +6BE3 MU4 MAO4 +6BE4 TUO4 +6BE5 XUN2 +6BE6 ER4 ER3 +6BE7 RONG2 +6BE8 XIAN3 +6BE9 JU2 +6BEA MU2 +6BEB HAO2 +6BEC QIU2 +6BED DOU4 +6BEF TAN3 +6BF0 PEI2 +6BF1 JU2 +6BF2 DUO2 +6BF3 CUI4 QIAO1 XIA1 +6BF4 BI1 +6BF5 SAN1 +6BF7 MAO4 +6BF8 SUI1 SAI1 +6BF9 SHU1 YU2 YU1 +6BFA YU1 +6BFB TUO4 +6BFC HE2 +6BFD JIAN4 +6BFE TA4 +6BFF SAN1 +6C00 LV2 +6C01 MU2 +6C02 MAO2 LI2 +6C03 TONG2 +6C04 RONG3 +6C05 CHANG3 +6C06 PU3 BANG3 +6C07 LUO2 +6C08 ZHAN1 +6C09 SAO4 +6C0A ZHAN1 +6C0B MENG2 +6C0C LUO2 LU3 +6C0D QU2 +6C0E DIE2 +6C0F SHI4 ZHI1 JING1 +6C10 DI3 DI1 ZHI1 +6C11 MIN2 +6C12 JUE2 +6C13 MANG2 MENG2 +6C14 QI4 +6C15 PIE1 +6C16 NAI3 +6C17 QI4 +6C18 DAO1 +6C19 XIAN1 +6C1A CHUAN1 +6C1B FEN1 +6C1C RI4 +6C1D NEI4 +6C1F FU2 +6C20 SHEN1 +6C21 DONG1 +6C22 QING1 +6C23 QI4 XI4 +6C24 YIN1 YAN2 +6C25 XI1 +6C26 HAI4 +6C27 YANG3 +6C28 AN1 +6C29 YA4 +6C2A KE4 +6C2B QING1 +6C2C YA4 +6C2D DONG1 +6C2E DAN4 +6C2F LV4 +6C30 QING1 QING2 +6C31 YANG3 +6C32 YUN1 +6C33 YUN1 +6C34 SHUI3 +6C36 ZHENG3 +6C37 BING1 +6C38 YONG3 +6C39 DANG4 +6C3B LE4 +6C3C NI4 +6C3D TUN3 NIAO4 QIU2 +6C3E FAN4 FAN2 FENG3 +6C3F GUI3 +6C40 TING1 DING4 TING4 +6C41 ZHI1 XIE2 SHI1 +6C42 QIU2 +6C43 BIN1 PA4 +6C44 ZE4 +6C45 MIAN3 +6C46 CUAN1 +6C47 HUI4 +6C48 DIAO1 +6C49 HAN4 YI4 +6C4A CHA4 +6C4B ZHUO2 YUE4 +6C4C CHUAN4 +6C4D WAN2 +6C4E FAN4 FENG3 +6C4F DAI4 DA4 TAI4 +6C50 XI4 XI1 +6C51 TUO1 +6C52 MANG2 +6C53 QIU2 +6C54 QI4 +6C55 SHAN4 SHUAN4 +6C56 PAI4 +6C57 HAN4 HAN2 GAN1 +6C58 QIAN1 +6C59 WU1 WU4 WA1 YU1 +6C5A WU1 WU4 WA1 YU1 +6C5B XUN4 +6C5C SI4 +6C5D RU3 +6C5E GONG3 +6C5F JIANG1 +6C60 CHI2 TUO2 CHE4 +6C61 WU1 WU4 WA1 YU1 +6C64 TANG1 TANG4 SHANG1 YANG2 +6C65 ZHI1 +6C66 CHI2 +6C67 QIAN1 +6C68 MI4 +6C69 GU3 YU4 HU2 +6C6A WANG1 WANG3 HONG2 +6C6B QING4 +6C6C JING3 +6C6D RUI4 +6C6E JUN1 +6C6F HONG2 +6C70 TAI4 +6C71 QUAN3 +6C72 JI2 +6C73 BIAN4 +6C74 BIAN4 +6C75 GAN4 +6C76 WEN4 MEN2 WEN2 MIN2 +6C77 ZHONG1 +6C78 FANG1 +6C79 XIONG1 +6C7A JUE2 +6C7B HANG3 +6C7D QI4 GAI1 YI3 +6C7E FEN2 PEN2 FEN1 +6C7F XU4 +6C80 XU4 +6C81 QIN4 +6C82 YI2 YIN2 +6C83 WO4 +6C84 YUN2 +6C85 YUAN2 +6C86 HANG2 HANG4 KANG4 +6C87 YAN3 +6C88 CHEN2 SHEN3 TAN2 +6C89 CHEN2 +6C8A DAN4 +6C8B YOU2 +6C8C DUN4 TUN2 ZHUAN4 CHUN2 +6C8D HU4 +6C8E HUO4 +6C8F QI1 QIE1 QIE4 +6C90 MU4 +6C91 ROU2 +6C92 MEI2 MO4 +6C93 TA4 DA2 +6C94 MIAN3 +6C95 WU4 MI4 +6C96 CHONG1 +6C97 TIAN1 +6C98 BI3 +6C99 SHA1 SHA4 SUO1 +6C9A ZHI3 +6C9B PEI4 +6C9C PAN4 +6C9D ZHUI3 +6C9E ZA1 +6C9F GOU1 +6CA0 LIU2 +6CA1 MEI2 MO4 ME5 +6CA2 ZE2 +6CA3 FENG1 +6CA4 OU4 OU1 +6CA5 LI4 +6CA6 LUN2 +6CA7 CANG1 +6CA8 FENG2 FENG1 +6CA9 WEI2 +6CAA HU4 +6CAB MO4 +6CAC MEI4 HUI4 +6CAD SHU4 +6CAE JU1 JU4 JIAN1 ZU3 JU3 +6CAF ZAN3 +6CB0 TUO1 +6CB1 TUO2 DUO4 CHI2 +6CB2 TUO2 DUO4 +6CB3 HE2 +6CB4 LI4 +6CB5 MI3 MI2 NI3 +6CB6 YI2 +6CB7 FA1 +6CB8 FEI4 FU2 +6CB9 YOU2 YOU4 +6CBA TIAN2 +6CBB ZHI4 CHI2 YI2 +6CBC ZHAO3 +6CBD GU1 GU3 +6CBE ZHAN1 TIAN1 TIE1 DIAN4 CHAN1 +6CBF YAN2 YAN4 +6CC0 SI1 +6CC1 KUANG4 +6CC2 JIONG3 +6CC3 JU4 JU1 +6CC4 XIE4 YI4 +6CC5 QIU2 YOU1 +6CC6 YI1 YI4 +6CC7 JIA1 +6CC8 ZHONG1 +6CC9 QUAN2 +6CCA BO2 PO2 PO1 PO4 +6CCB HUI4 +6CCC MI4 BI4 +6CCD BEN1 +6CCE ZHUO2 +6CCF CHU4 +6CD0 LE4 +6CD1 YOU3 YOU1 +6CD2 GU1 +6CD3 HONG2 +6CD4 GAN1 HAN4 +6CD5 FA3 +6CD6 MAO3 MAO2 LIU3 +6CD7 SI4 +6CD8 HU1 +6CD9 PING2 PENG1 +6CDA CI3 +6CDB FAN4 FAN2 FENG3 FA2 +6CDC CHI2 ZHI1 DI4 ZHI4 +6CDD SU4 +6CDE NING4 ZHU3 ZHU4 +6CDF CHENG1 +6CE0 LING2 LING3 +6CE1 PAO4 PAO2 PAO1 +6CE2 BO1 BEI1 BI4 +6CE3 QI4 LI4 SE4 +6CE4 SI4 +6CE5 NI2 NI4 NI3 NIE4 NING4 +6CE6 JU2 +6CE7 YUE4 +6CE8 ZHU4 ZHOU4 +6CE9 SHENG1 +6CEA LEI4 +6CEB XUAN4 XUAN2 JUAN1 +6CEC XUE4 JUE2 +6CED FU1 FU2 +6CEE PAN4 +6CEF MIN3 MIAN4 +6CF0 TAI4 +6CF1 YANG1 YANG3 +6CF2 JI3 +6CF3 YONG3 +6CF4 GUAN4 +6CF5 BENG4 LIU2 PIN4 +6CF6 XUE2 +6CF7 LONG2 SHUANG1 +6CF8 LU2 +6CFA BO2 LUO4 PO1 +6CFB XIE4 +6CFC PO1 BO1 +6CFD ZE2 DUO2 SHI4 YI4 +6CFE JING1 +6CFF YIN2 +6D00 ZHOU1 PAN2 +6D01 JI2 JIE2 +6D02 YI4 +6D03 HUI1 +6D04 HUI2 HUI4 +6D05 ZUI3 +6D06 CHENG2 +6D07 YIN1 YAN1 YE1 +6D08 WEI2 +6D09 HOU4 +6D0A JIAN4 +6D0B YANG2 XIANG2 YANG3 +6D0C LIE4 +6D0D SI4 +6D0E JI4 +6D0F ER2 +6D10 XING2 +6D11 FU2 FU4 +6D12 SA3 CUI3 XI3 XIAN3 SEN3 XUN4 +6D13 SUO3 +6D14 ZHI3 +6D15 YIN1 +6D16 WU2 +6D17 XI3 XIAN3 +6D18 KAO3 +6D19 ZHU1 +6D1A JIANG4 HONG2 +6D1B LUO4 +6D1D AN4 +6D1E DONG4 TONG2 +6D1F YI2 TI4 +6D20 MOU2 +6D21 LEI3 +6D22 YI1 +6D23 MI3 +6D24 QUAN2 +6D25 JIN1 +6D26 MO4 +6D27 WEI3 +6D28 XIAO2 +6D29 XIE4 +6D2A HONG2 +6D2B XU4 YI4 +6D2C SHUO4 +6D2D KUANG1 +6D2E TAO2 YAO2 DAO4 TAO1 +6D2F QIE4 JIE2 +6D30 JU4 +6D31 ER3 +6D32 ZHOU1 +6D33 RU4 RU2 +6D34 PING2 +6D35 XUN2 XUAN4 +6D36 XIONG1 +6D37 ZHI4 +6D38 GUANG1 HUANG2 +6D39 HUAN2 +6D3A MING2 +6D3B HUO2 GUO1 +6D3C WA1 GUI1 +6D3D QIA4 HE2 XIA2 +6D3E PAI4 MAI4 BAI4 PA1 +6D3F WU1 +6D40 QU3 +6D41 LIU2 +6D42 YI4 +6D43 JIA2 JIA1 +6D44 JING4 +6D45 QIAN3 +6D46 JIANG1 JIANG4 +6D47 JIAO1 AO4 +6D48 CHENG2 ZHEN1 +6D49 SHI1 +6D4A ZHUO2 +6D4B CE4 +6D4D KUAI4 +6D4E JI4 JI3 +6D4F LIU2 +6D50 CHAN3 +6D51 HUN2 HUN4 GUN3 +6D52 HU3 +6D53 NONG2 +6D54 XUN2 +6D55 JIN4 +6D56 LIE4 +6D57 QIU2 +6D58 WEI3 +6D59 ZHE4 +6D5A JUN4 XUN4 CUN2 +6D5B HAN4 HAN2 +6D5C BANG1 BIN1 +6D5D MANG2 +6D5E ZHUO2 +6D5F YOU2 DI2 +6D60 XI1 +6D61 BO2 +6D62 DOU4 +6D63 WAN3 GUAN3 HUAN4 +6D64 HONG2 +6D65 YI4 YA4 +6D66 PU3 +6D67 YING3 +6D68 LAN3 +6D69 HAO4 GE2 GAO3 +6D6A LANG4 LANG2 +6D6B HAN3 +6D6C LI3 +6D6D GENG1 +6D6E FU2 +6D6F WU2 +6D70 LIAN4 LI4 +6D71 CHUN2 +6D72 FENG2 +6D73 YI4 +6D74 YU4 +6D75 TONG2 +6D76 LAO2 +6D77 HAI3 +6D78 JIN4 QIN1 +6D79 JIA2 JIA1 +6D7A CHONG1 +6D7B WENG3 +6D7C MEI3 +6D7D SUI1 +6D7E CHENG1 +6D7F PEI4 +6D80 XIAN4 +6D81 SHEN4 +6D82 TU2 +6D83 KUN4 +6D84 PIN1 +6D85 NIE4 +6D86 HAN4 +6D87 JING1 QING3 +6D88 XIAO1 +6D89 SHE4 DIE2 +6D8A NIAN3 REN3 NIAN4 LIAN3 +6D8B TU1 +6D8C YONG3 CHONG1 +6D8D XIAO4 +6D8E XIAN2 YAN4 DIAN4 +6D8F TING3 +6D90 E2 +6D91 SU4 SOU1 SHU4 +6D92 TUN1 +6D93 JUAN1 YUAN4 XUAN4 +6D94 CEN2 QIAN2 ZAN4 +6D95 TI4 +6D96 LI4 +6D97 SHUI4 +6D98 SI4 +6D99 LEI4 +6D9A SHUI4 +6D9B TAO1 TAO2 +6D9C DU2 +6D9D LAO4 LAO2 +6D9E LAI2 +6D9F LIAN2 +6DA0 WEI2 +6DA1 WO1 GUO1 +6DA2 YUN2 +6DA3 HUAN4 +6DA4 DI2 +6DA6 RUN4 +6DA7 JIAN4 +6DA8 ZHANG3 ZHANG4 +6DA9 SE4 +6DAA FU2 POU2 +6DAB GUAN4 +6DAC XING4 +6DAD SHOU4 +6DAE SHUAN4 SHUA1 +6DAF YA2 +6DB0 CHUO4 +6DB1 ZHANG4 +6DB2 YE4 YI4 SHI4 +6DB3 KONG1 +6DB4 WO4 WAN3 +6DB5 HAN2 HAN4 +6DB6 TUO1 +6DB7 DONG1 DONG4 +6DB8 HE2 HAO4 +6DB9 WO1 +6DBA JU1 +6DBB GAN4 +6DBC LIANG2 LIANG4 +6DBD HUN1 +6DBE TA4 +6DBF ZHUO1 ZHUO2 +6DC0 DIAN4 +6DC1 QIE4 +6DC2 DE2 +6DC3 JUAN4 +6DC4 ZI1 +6DC5 XI1 +6DC6 YAO2 XIAO2 +6DC7 QI2 +6DC8 GU3 +6DC9 GUO3 +6DCA HAN4 YAN1 YAN3 HAN2 +6DCB LIN2 LIN4 +6DCC TANG3 CHANG4 CHANG3 +6DCD ZHOU1 +6DCE PENG3 +6DCF HAO4 +6DD0 CHANG1 +6DD1 SHU2 SHU1 CHU4 +6DD2 QI1 +6DD3 FANG1 +6DD4 CHI4 +6DD5 LU4 +6DD6 NAO4 CHUO4 ZHUO1 ZHAO4 +6DD7 JU2 +6DD8 TAO2 +6DD9 CONG2 SHUANG4 +6DDA LEI4 LI4 +6DDB ZHI4 ZHE4 +6DDC PENG2 PING2 +6DDD FEI2 +6DDE SONG1 SONG4 +6DDF TIAN3 +6DE0 PI4 PEI4 +6DE1 DAN4 TAN2 YAN3 YAN4 +6DE2 YU4 XU4 +6DE3 NI2 +6DE4 YU1 +6DE5 LU4 +6DE6 GAN4 +6DE7 MI4 +6DE8 JING4 +6DE9 LING2 +6DEA LUN2 LUN3 GUAN1 +6DEB YIN2 YAN4 YAO2 +6DEC CUI4 ZU2 +6DED QU2 +6DEE HUAI2 +6DEF YU4 +6DF0 NIAN3 SHEN3 NA4 NIAN4 LIAN3 +6DF1 SHEN1 +6DF2 PIAO2 +6DF3 CHUN2 ZHUN1 ZHUN3 +6DF4 WA4 HU1 +6DF5 YUAN1 +6DF6 LAI2 +6DF7 HUN4 HUN3 HUN2 GUN3 KUN1 +6DF8 QING1 +6DF9 YAN1 YAN3 +6DFA QIAN3 JIAN1 JIAN4 CAN2 ZAN4 +6DFB TIAN1 TIAN4 +6DFC MIAO3 +6DFD ZHI3 +6DFE YIN3 +6DFF MI4 +6E00 BEN1 +6E01 YUAN1 +6E02 WEN4 +6E03 RE4 RUO4 +6E04 FEI1 +6E05 QING1 QING4 +6E06 YUAN1 +6E07 KE3 +6E08 JI4 +6E09 SHE4 DIE2 +6E0A YUAN1 +6E0C LU4 +6E0D ZI4 +6E0E DU2 DOU4 +6E10 JIAN4 JIAN1 CHAN2 QIAN2 +6E11 MIN3 MIAN3 SHENG2 +6E12 PI4 +6E14 YU2 +6E15 YUAN1 +6E16 SHEN3 +6E17 SHEN4 QIN1 +6E18 ROU2 +6E19 HUAN4 HUI4 +6E1A ZHU3 +6E1B JIAN3 +6E1C NUAN3 +6E1D YU2 +6E1E QIU2 +6E1F TING2 +6E20 QU2 JU4 +6E21 DU4 +6E22 FENG2 FENG1 +6E23 ZHA1 +6E24 BO2 +6E25 WO4 OU4 WU1 +6E26 WO1 GUO1 +6E27 DI4 +6E28 WEI1 WEI3 +6E29 WEN1 YUN4 +6E2A RU2 +6E2B XIE4 DIE2 ZHA2 YI4 QIE4 +6E2C CE4 +6E2D WEI4 +6E2E GE1 +6E2F GANG3 HONG4 +6E30 YAN3 YAN1 +6E31 HONG2 +6E32 XUAN4 +6E33 MI3 ER3 +6E34 KE3 HE2 JIE2 KAI4 +6E35 MAO2 +6E36 YING1 +6E37 YAN3 +6E38 YOU2 LIU2 +6E39 HONG1 QING4 +6E3A MIAO3 +6E3B XING3 SHENG4 +6E3C MEI3 +6E3D ZAI1 +6E3E HUN2 HUN4 GUN3 +6E3F NAI4 +6E40 KUI2 +6E41 SHI2 +6E42 E4 +6E43 PAI4 BA2 +6E44 MEI2 +6E45 LIAN4 +6E46 QI4 +6E47 QI4 +6E48 MEI2 +6E49 TIAN2 +6E4A COU4 +6E4B WEI2 +6E4C CAN1 +6E4D TUAN1 ZHUAN1 +6E4E MIAN3 +6E4F HUI4 +6E50 MO4 +6E51 XU3 XU1 +6E52 JI2 +6E53 PEN2 PEN4 +6E54 JIAN1 JIAN4 ZAN4 ZHAN3 +6E55 JIAN3 +6E56 HU2 +6E57 FENG4 +6E58 XIANG1 +6E59 YI4 +6E5A YIN4 +6E5B ZHAN4 CHEN2 DAN1 JIAN1 TAN2 JIN4 +6E5C SHI2 +6E5D JIE1 +6E5E CHENG2 ZHEN1 CHENG1 +6E5F HUANG2 KUANG4 +6E60 TAN4 +6E61 YU2 +6E62 BI4 +6E63 MIN3 HUN1 +6E64 SHI1 +6E65 TU2 +6E66 SHENG1 +6E67 YONG3 +6E68 QU4 JU2 +6E69 ZHONG4 DONG4 +6E6B JIAO3 JIU4 JIU1 QIU1 QIU4 +6E6C JIAO3 +6E6E YIN1 YAN1 +6E6F TANG1 TANG4 SHANG1 YANG2 +6E70 LONG2 +6E71 HUO4 +6E72 YUAN2 +6E73 NAN3 +6E74 BAN4 +6E75 YOU3 +6E76 QUAN2 +6E77 CHUI2 +6E78 LIANG4 +6E79 CHAN2 +6E7A YAN2 +6E7B CHUN2 ZHUN1 +6E7C NIE4 +6E7D ZI1 +6E7E WAN1 +6E7F SHI1 QI4 +6E80 MAN3 +6E81 YING2 +6E83 KUI4 +6E85 JIAN4 JIAN1 +6E86 XU4 +6E87 LV3 LOU2 +6E88 GUI1 WEI2 +6E89 GAI4 XIE4 +6E8C PO1 +6E8D JIN4 +6E8E GUI4 +6E8F TANG2 +6E90 YUAN2 +6E91 SUO3 +6E92 YUAN2 +6E93 LIAN2 NIAN2 LIAN3 +6E94 YAO3 +6E95 MENG4 +6E96 ZHUN3 +6E97 SHENG2 +6E98 KE4 KAI4 +6E99 TAI4 +6E9A DA2 +6E9B WA1 +6E9C LIU1 LIU4 LIU2 +6E9D GOU1 GANG3 KOU4 +6E9E SAO1 +6E9F MING2 MING3 MI4 +6EA0 ZHA4 ZHA1 +6EA1 SHI2 +6EA2 YI4 +6EA3 LUN2 +6EA4 MA3 +6EA5 PU3 FU1 BU4 BO2 PO4 +6EA6 WEI2 +6EA7 LI4 +6EA8 CAI2 +6EA9 WU4 +6EAA XI1 QI1 +6EAB WEN1 +6EAC QIANG1 +6EAD ZE2 CE4 +6EAE SHI1 +6EAF SU4 SHUO4 +6EB0 YI1 +6EB1 ZHEN1 QIN2 +6EB2 SOU1 SOU3 SHAO1 +6EB3 YUN2 +6EB4 XIU4 +6EB5 YIN1 +6EB6 RONG2 +6EB7 HUN4 HUN2 +6EB8 SU4 +6EB9 SU4 SUO4 +6EBA NI4 NIAO4 +6EBB TA4 TA1 +6EBC SHI1 QI4 +6EBD RU4 +6EBE WEI1 +6EBF PAN4 +6EC0 CHU4 XU4 +6EC1 CHU2 +6EC2 PANG1 +6EC3 WENG3 WENG1 +6EC4 CANG1 +6EC5 MIE4 +6EC6 HE2 GE2 +6EC7 DIAN1 TIAN2 ZHEN1 +6EC8 HAO4 +6EC9 HUANG3 HUANG4 +6ECA XI4 +6ECB ZI1 CI2 +6ECC DI2 +6ECD ZHI3 ZHI4 +6ECE XING2 YING1 YING2 +6ECF FU3 +6ED0 JIE2 +6ED1 HUA2 GU3 +6ED2 GE1 +6ED3 ZI3 +6ED4 TAO1 +6ED5 TENG2 +6ED6 SUI1 +6ED7 BI3 BI4 +6ED8 JIAO4 +6ED9 HUI4 +6EDA GUN3 +6EDB YIN2 YAN4 YAO2 +6EDC GAO1 ZE4 HAO2 +6EDD LONG2 SHUANG1 +6EDE ZHI4 +6EDF YAN4 +6EE0 SHE4 +6EE1 MAN3 MEN4 +6EE2 YING4 YING2 +6EE3 CHUN2 +6EE4 LV4 +6EE5 LAN4 +6EE6 LUAN2 +6EE8 BIN1 +6EE9 TAN1 +6EEA YU4 +6EEB SOU3 XIU1 XIU3 +6EEC HU4 +6EED BI4 +6EEE BIAO1 +6EEF ZHI4 CHI4 +6EF0 JIANG3 +6EF1 KOU4 +6EF2 SHEN4 QIN1 SEN1 LIN2 +6EF3 SHANG1 +6EF4 DI1 +6EF5 MI4 +6EF6 AO2 +6EF7 LU3 +6EF8 HU3 XU3 +6EF9 HU1 HU3 +6EFA YOU2 DI2 +6EFB CHAN3 +6EFC FAN4 +6EFD YONG2 RONG2 +6EFE GUN3 +6EFF MAN3 MEN4 +6F00 QING4 +6F01 YU2 +6F02 PIAO1 PIAO3 PIAO4 BIAO1 +6F03 JI2 +6F04 YA2 +6F05 JIAO3 +6F06 QI1 +6F07 XI3 +6F08 JI4 +6F09 LU4 +6F0A LV3 LOU2 +6F0B LONG2 +6F0C JIN3 +6F0D GUO2 +6F0E CONG2 SONG3 +6F0F LOU4 LOU2 +6F10 ZHI2 +6F11 GAI4 +6F12 QIANG2 +6F13 LI2 +6F14 YAN3 YAN4 +6F15 CAO2 CAO4 +6F16 JIAO4 +6F17 CONG1 +6F18 CHUN2 QUN2 +6F19 TUAN2 +6F1A OU4 OU1 +6F1B TENG2 +6F1C YE3 +6F1D XI2 +6F1E MI4 +6F1F TANG2 +6F20 MO4 +6F21 SHANG1 +6F22 HAN4 TAN1 +6F23 LIAN2 LAN2 +6F24 LAN3 +6F25 WA1 +6F26 LI2 +6F27 QIAN2 GAN1 +6F28 FENG2 +6F29 XUAN2 XUAN4 +6F2A YI1 +6F2B MAN4 MAN2 +6F2C ZI4 SE4 QI4 +6F2D MANG3 +6F2E KANG1 +6F2F TA4 LUO4 LEI3 +6F30 PENG1 +6F31 SHU4 SOU4 +6F32 ZHANG3 ZHANG4 ZHANG1 +6F33 ZHANG1 +6F34 CHONG2 +6F35 XU4 +6F36 HUAN4 +6F37 KUO4 +6F38 JIAN4 CHAN2 JIAN1 QIAN2 +6F39 YAN1 +6F3A CHUANG3 +6F3B LIAO2 LIU2 +6F3C CUI3 +6F3D TI2 +6F3E YANG4 YANG2 +6F3F JIANG1 JIANG4 +6F40 CONG2 +6F41 YING3 +6F42 HONG2 +6F43 XUN2 +6F44 SHU4 SOU4 +6F45 GUAN4 HUAN4 +6F46 YING2 +6F47 XIAO1 +6F4A XU4 +6F4B LIAN4 +6F4C ZHI4 +6F4D WEI2 +6F4E PI4 PIE1 +6F4F JUE2 YU4 +6F50 JIAO4 +6F51 PO1 BO1 +6F52 DANG4 +6F53 HUI4 +6F54 JIE2 +6F55 WU3 +6F56 PA2 +6F57 JI2 +6F58 PAN1 PAN2 FAN1 PAN4 BO1 +6F59 GUI2 WEI2 GUI1 +6F5A XIAO1 +6F5B QIAN2 +6F5C QIAN2 +6F5D XI1 XI4 +6F5E LU4 +6F5F XI4 +6F60 SUN4 XUN4 XUAN4 +6F61 DUN4 +6F62 HUANG2 HUANG3 HUANG4 GUANG1 +6F63 MIN3 +6F64 RUN4 +6F65 SU4 +6F66 LAO3 LAO4 LAO2 LIAO2 LIAO3 +6F67 ZHEN1 +6F68 ZHONG1 +6F69 YI4 +6F6A DI2 +6F6B WAN1 +6F6C DAN4 SHAN4 +6F6D TAN2 XUN2 YIN3 DAN4 +6F6E CHAO2 +6F6F XUN2 YIN2 +6F70 KUI4 XIE4 +6F72 SHAO4 +6F73 TU2 +6F74 ZHU1 +6F75 SAN4 SA3 +6F76 HEI1 +6F77 BI3 BI4 +6F78 SHAN1 +6F79 CHAN2 +6F7A CHAN2 +6F7B SHU3 +6F7C TONG2 CHONG1 ZHONG1 +6F7D PU3 +6F7E LIN2 +6F7F WEI2 +6F80 SE4 +6F81 SE4 +6F82 CHENG2 +6F83 JIONG4 +6F84 CHENG2 DENG4 +6F85 HUA4 +6F86 JIAO1 AO4 NAO4 +6F87 LAO4 LAO2 +6F88 CHE4 +6F89 GAN3 HAN4 +6F8A CUN1 +6F8B HENG4 JING3 +6F8C SI1 XI1 +6F8D SHU4 ZHU4 +6F8E PENG2 PENG1 +6F8F HAN4 +6F90 YUN2 +6F91 LIU4 LIU1 LIU2 +6F92 HONG4 HONG3 GONG3 +6F93 FU2 +6F94 HAO4 +6F95 HE2 +6F96 XIAN1 +6F97 JIAN4 +6F98 SHAN1 +6F99 XI4 +6F9C LAN2 +6F9E YU2 +6F9F LIN3 +6FA0 MIAN3 SHENG2 MIN3 +6FA1 ZAO3 CAO1 +6FA2 DANG1 +6FA3 HUAN3 HUAN4 HAN4 WAN3 GUAN3 +6FA4 ZE2 DUO2 SHI4 YI4 +6FA5 XIE4 +6FA6 YU4 +6FA7 LI3 +6FA8 SHI4 +6FA9 XUE2 XIAO4 +6FAA LING2 +6FAB MAN4 +6FAC ZI1 +6FAD YONG1 +6FAE KUAI4 HUI4 HUA2 +6FAF CAN4 +6FB0 LIAN4 +6FB1 DIAN4 +6FB2 YE4 +6FB3 AO4 YU4 +6FB4 HUAN2 +6FB5 ZHEN1 +6FB6 CHAN2 DAN4 ZHAN1 +6FB7 MAN4 +6FB8 DAN3 +6FB9 DAN4 DAN2 SHAN4 TAN2 DAN1 +6FBA YI4 +6FBB SUI4 +6FBC PI4 +6FBD JU4 +6FBE TA4 +6FBF QIN2 +6FC0 JI1 JIAO4 JIAO1 +6FC1 ZHUO2 +6FC2 LIAN2 XIAN3 +6FC3 NONG2 +6FC4 GUO1 WO1 +6FC5 JIN4 +6FC6 FEN2 FEN4 PEN1 +6FC7 SE4 +6FC8 JI2 +6FC9 SUI1 +6FCA HUI4 HUO4 WEI4 +6FCB CHU3 +6FCC TA4 +6FCD SONG1 +6FCE DING3 TING4 +6FD0 ZHU3 +6FD1 LAI4 +6FD2 BIN1 +6FD3 LIAN2 +6FD4 MI3 MI2 NI3 +6FD5 SHI1 QI4 TA4 XI2 +6FD6 SHU4 +6FD7 MI4 +6FD8 NING4 NING2 NI4 +6FD9 YING2 YING4 +6FDA YING2 +6FDB MENG2 +6FDC JIN4 +6FDD QI2 +6FDE PI4 BI4 +6FDF JI4 JI3 QI2 +6FE0 HAO2 +6FE1 RU2 NUAN2 RUAN3 ER2 NUO4 +6FE2 ZUI3 +6FE3 WO4 +6FE4 TAO1 TAO2 CHAO2 SHOU4 DAO4 +6FE5 YIN4 +6FE6 YIN3 XI1 YIN1 +6FE7 DUI4 +6FE8 CI2 +6FE9 HUO4 HU4 +6FEA JING4 +6FEB LAN4 JIAN4 LAN3 LAN2 +6FEC JUN4 +6FED AI4 +6FEE PU2 PU1 +6FEF ZHUO2 ZHAO4 SHUO4 +6FF0 WEI2 +6FF1 BIN1 +6FF2 GU3 +6FF3 QIAN2 +6FF4 XING2 YING2 +6FF6 KUO4 +6FF7 FEI4 +6FFA JIAN4 JIAN1 ZAN4 +6FFB WEI3 DUI4 +6FFC LUO4 BO2 PO1 LI4 +6FFD ZAN4 CUAN2 QIAN2 ZA1 +6FFE LV4 +6FFF LI4 +7000 YOU1 +7001 YANG4 YANG3 +7002 LU3 +7003 SI4 +7004 JIE2 +7005 YING4 JIONG1 YING2 +7006 DU2 DOU4 +7007 WANG3 +7008 HUI1 +7009 XIE4 +700A PAN2 +700B SHEN3 CHEN4 PAN2 +700C BIAO1 +700D CHAN2 +700E MO4 +700F LIU2 LIU1 +7010 JIAN1 +7011 PU4 BAO4 BO2 +7012 SE4 +7013 CHENG2 +7014 GU3 +7015 BIN1 +7016 HUO4 +7017 XIAN4 +7018 LU2 +7019 QIN1 QIN4 +701A HAN4 +701B YING2 +701C YONG1 RONG2 +701D LI4 +701E JING4 +701F XIAO1 +7020 YING2 +7021 SUI3 +7022 WEI2 +7023 XIE4 +7024 HUAI2 +7025 HAO4 +7026 ZHU1 +7027 LONG2 SHUANG1 +7028 LAI4 +7029 DUI4 +702A FAN2 +702B HU2 +702C LAI4 +702F YING2 +7030 MI2 MI3 +7031 JI4 +7032 LIAN4 +7033 JIAN4 +7034 YING3 YING1 YING4 +7035 FEN4 +7036 LIN2 +7037 YI4 +7038 JIAN1 +7039 YUE4 YAO4 +703A CHAN2 +703B DAI4 +703C RANG2 RANG4 +703D JIAN3 +703E LAN2 +703F FAN2 +7040 SHUANG4 +7041 YUAN1 +7042 ZHUO2 JIAO4 +7043 FENG1 +7044 SHE4 NI4 +7045 LEI3 +7046 LAN2 +7047 CONG2 +7048 QU2 +7049 YONG1 +704A QIAN2 +704B FA3 +704C GUAN4 HUAN4 +704D QUE4 +704E YAN4 +704F HAO4 +7051 SA3 LI2 XIAN3 XI3 SHI1 +7052 ZAN4 +7053 LUAN2 +7054 YAN4 +7055 LI2 +7056 MI3 +7057 SHAN4 +7058 TAN1 HAN4 NAN4 +7059 DANG3 +705A JIAO3 +705B CHAN3 +705D HAO4 +705E BA4 +705F ZHU2 +7060 LAN3 +7061 LAN2 +7062 NANG3 +7063 WAN1 +7064 LUAN2 +7065 XUN2 +7066 XIAN3 +7067 YAN4 +7068 GAN3 GAN4 GONG4 +7069 YAN4 +706A YU4 +706B HUO3 HUO1 +706C BIAO1 HOU3 +706D MIE4 +706E GUANG1 +706F DENG1 +7070 HUI1 +7071 XIAO1 +7072 XIAO1 +7074 HONG2 +7075 LING2 LING4 +7076 ZAO4 +7077 ZHUAN4 +7078 JIU3 +7079 ZHA4 +707A XIE4 +707B CHI4 +707C ZHUO2 +707D ZAI1 +707E ZAI1 +707F CAN4 +7080 YANG2 YANG4 +7081 QI4 +7082 ZHONG1 +7083 FEN2 +7084 NIU3 +7085 JIONG3 GENG3 GUI4 +7086 WEN2 +7087 PO4 +7088 YI4 +7089 LU2 +708A CHUI1 +708B PI1 +708C KAI4 +708D PAN4 +708E YAN2 YAN4 TAN2 +708F KAI4 +7090 PANG4 +7091 MU4 +7092 CHAO3 +7093 LIAO4 +7094 GUI4 XUE4 QUE1 GENG3 +7095 KANG4 HANG1 +7096 TUN2 DUN4 TUN1 +7097 GUANG1 +7098 XIN1 +7099 ZHI4 +709B GUANG1 GUANG4 +709C WEI3 +709D QIANG4 +709F DA2 +70A0 XIA2 +70A1 ZHENG1 +70A2 ZHU2 +70A3 KE3 +70A4 ZHAO4 ZHAO1 +70A5 FU2 +70A6 BA2 +70A7 DUO4 XIE4 +70A8 DUO4 +70A9 LING4 +70AA ZHUO2 +70AB XUAN4 +70AC JU4 +70AD TAN4 +70AE PAO4 BAO1 PAO2 +70AF JIONG3 +70B0 PAO2 PAO4 +70B1 TAI2 +70B2 TAI2 +70B3 BING3 +70B4 YANG3 +70B5 TONG1 +70B6 HAN1 +70B7 ZHU4 +70B8 ZHA4 ZHA2 +70B9 DIAN3 +70BA WEI4 WEI2 +70BB SHI2 +70BC LIAN4 +70BD CHI4 +70BE HUANG3 +70C0 HU1 +70C1 SHUO4 LUO4 +70C2 LAN4 +70C3 JING3 TING1 +70C4 JIAO3 +70C5 XU4 +70C6 XING2 +70C7 QUAN4 QUAN3 +70C8 LIE4 +70C9 HUAN4 +70CA YANG2 YANG4 +70CB XIAO1 XIU1 +70CC XIU1 +70CD XIAN3 +70CE YIN2 +70CF WU1 WU4 +70D0 ZHOU1 +70D1 YAO2 +70D2 SHI4 +70D3 WEI1 +70D4 TONG2 +70D5 XUE4 MIE4 +70D6 ZAI1 +70D7 KAI4 +70D8 HONG1 +70D9 LUO4 LAO4 GE2 +70DA XIA2 +70DB ZHU2 +70DC XUAN3 HUI3 XUAN1 +70DD ZHENG1 +70DE PO4 +70DF YAN1 YIN1 +70E0 HUI3 +70E1 GUANG1 +70E2 ZHE4 +70E3 HUI1 +70E4 KAO3 +70E6 FAN2 +70E7 SHAO1 +70E8 YE4 +70E9 HUI4 +70EB TANG4 +70EC JIN4 +70ED RE4 +70EF XI1 +70F0 FU2 +70F1 JIONG3 +70F2 CHE4 +70F3 PU3 +70F4 JING3 TING1 +70F5 ZHUO2 +70F6 TING3 +70F7 WAN2 +70F8 HAI3 +70F9 PENG1 +70FA LANG3 +70FB SHAN1 SHAN2 YAN4 +70FC HU1 +70FD FENG1 +70FE CHI4 +70FF RONG2 +7100 HU2 +7102 SHU2 +7103 HE4 +7104 XUN1 HUN1 +7105 KU4 +7106 JUE2 +7107 XIAO1 +7108 XI1 YI2 +7109 YAN1 YI2 +710A HAN4 +710B ZHUANG4 +710C JUN4 +710D DI4 +710E XIE4 +710F JI2 QI4 +7110 WU4 +7113 HAN2 +7114 YAN4 +7115 HUAN4 +7116 MEN4 +7117 JU2 +7118 CHOU2 TAO1 +7119 BEI4 +711A FEN2 FEN4 +711B LIN4 +711C KUN1 HUN3 +711D HUN4 +711E TUN1 +711F XI2 +7120 CUI4 +7121 WU2 MO2 +7122 HONG1 +7123 JU4 +7124 FU3 +7125 WO4 +7126 JIAO1 QIAO2 +7127 CONG1 +7128 FENG4 +7129 PING1 +712A QIONG1 +712B RUO4 RE4 +712C XI2 +712D QIONG2 +712E XIN4 XIN1 +712F ZHUO2 ZHUO1 CHUO4 CHAO1 +7130 YAN4 +7131 YAN4 BIAO1 YI4 +7132 YI4 +7133 JUE2 JIAO1 +7134 YU4 +7135 GANG4 +7136 RAN2 +7137 PI2 +7138 GU3 +713A SHENG1 +713B CHANG4 +713C SHAO1 +713F GENG1 +7141 CHEN2 SHEN2 +7142 HE4 +7143 KUI3 +7144 ZHONG1 +7145 DUAN4 +7146 XIA1 XIA4 +7147 HUI1 XUN1 YUN4 +7148 FENG4 +7149 LIAN4 LAN4 +714A XUAN1 +714B XING1 +714C HUANG2 +714D JIAO3 +714E JIAN1 JIAN3 JIAN4 +714F BI4 +7150 YING1 +7151 ZHU3 +7152 WEI3 HUI1 +7153 TUAN1 +7154 TIAN4 QIAN2 SHAN1 SHAN3 +7155 XI1 +7156 NUAN3 XUAN1 +7157 NUAN3 +7158 CHAN2 +7159 YAN1 +715A JIONG3 +715B JIONG3 +715C YU4 +715D MEI4 MEI2 +715E SHA1 SHA4 +715F WEI4 +7160 YE4 ZHA2 +7161 XIN4 +7162 QIONG2 +7163 ROU3 +7164 MEI2 +7165 HUAN4 +7166 XU3 XU4 XIU1 +7167 ZHAO4 +7168 WEI1 YU4 +7169 FAN2 +716A QIU2 +716B SUI4 +716C YANG2 YANG4 +716D LIE4 +716E ZHU3 +7170 GAO4 +7171 GUA1 +7172 BAO1 BAO4 +7173 HU2 +7174 YUN1 YUN4 WEN3 +7175 XIA1 +7178 BIAN1 +7179 GOU4 +717A TUI4 +717B TANG2 +717C CHAO3 +717D SHAN1 SHAN4 +717E EN1 YUN1 +717F BO2 +7180 HUANG3 +7181 XIE2 +7182 XI4 +7183 WU4 +7184 XI2 XI1 +7185 YUN4 YUN2 YUN1 +7186 HE2 +7187 HE4 +7188 XI1 +7189 YUN2 +718A XIONG2 +718B NAI2 +718C SHAN4 +718E YAO4 +718F XUN1 XUN4 +7190 MI4 +7191 LIAN2 +7192 YING2 XING2 JIONG3 +7193 WU3 WEN4 +7194 RONG2 +7197 QIANG4 +7198 LIU1 LIU4 +7199 XI1 YI2 +719A BI4 +719B BIAO1 +719C ZONG3 +719D LU4 +719E JIAN1 +719F SHU2 SHOU2 +71A0 YI4 +71A1 LOU2 +71A2 FENG1 +71A3 SUI1 +71A4 YI4 +71A5 TONG1 +71A6 JUE2 +71A7 ZONG1 +71A8 YUN4 YU4 WEI4 +71A9 HU4 +71AA YI2 +71AB ZHI4 +71AC AO2 AO1 +71AD WEI4 +71AE LIAO2 +71AF HAN4 +71B0 OU1 +71B1 RE4 +71B2 JIONG3 +71B3 MAN4 +71B5 SHANG1 +71B6 CUAN4 +71B7 ZENG1 +71B8 JIAN1 +71B9 XI1 +71BA XI1 +71BB XI1 +71BC YI4 +71BD XIAO4 +71BE CHI4 +71BF HUANG2 +71C0 CHAN3 DAN3 +71C1 YE4 +71C2 QIAN2 XUN2 +71C3 RAN2 +71C4 YAN4 +71C5 XIAN2 QIAN2 XUN2 +71C6 QIAO2 +71C7 ZUN4 +71C8 DENG1 +71C9 DUN4 DUN1 TUN1 TUN2 +71CA SHEN1 +71CB JIAO1 QIAO2 +71CC FEN2 BEN4 +71CD SI1 +71CE LIAO3 LIAO2 LIAO4 +71CF YU4 +71D0 LIN2 +71D1 TONG2 +71D2 SHAO1 SHAO4 +71D3 FEN1 +71D4 FAN2 FEN2 +71D5 YAN4 YAN1 +71D6 XUN2 QIAN2 +71D7 LAN4 +71D8 MEI3 +71D9 TANG4 DANG4 +71DA YI1 +71DB JING3 +71DC MEN4 +71DF YING2 CUO1 +71E0 YU4 AO4 +71E1 YI4 +71E2 XUE2 +71E3 LAN2 +71E4 TAI4 +71E5 ZAO4 SAO4 +71E6 CAN4 +71E7 SUI4 +71E8 XI1 +71E9 QUE4 +71EA CONG1 +71EB LIAN2 +71EC HUI3 +71ED ZHU2 +71EE XIE4 +71EF LING2 +71F0 WEI1 +71F1 YI4 +71F2 XIE2 +71F3 ZHAO4 +71F4 HUI4 +71F7 LAN2 +71F8 RU2 +71F9 XIAN3 BING4 +71FA KAO3 +71FB XUN1 +71FC JIN4 +71FD CHOU2 +71FE DAO4 TAO1 CHOU2 +71FF YAO4 SHAO4 SHUO4 +7200 HE4 +7201 LAN4 +7202 BIAO1 +7203 RONG2 +7204 LI4 +7205 MO4 +7206 BAO4 BO2 +7207 RUO4 RE4 +7208 LV2 +7209 LA4 LIE4 +720A AO2 AO1 +720B XUN4 XUN1 +720C KUANG4 HUANG4 +720D SHUO4 LUO4 YUE4 +720F LI4 +7210 LU2 +7211 JUE2 +7212 LIAO4 +7213 YAN4 QIAN2 XUN2 +7214 XI1 +7215 XIE4 +7216 LONG2 +7217 YE4 +7219 RANG3 +721A YUE4 SHUO4 +721B LAN4 +721C CONG2 +721D JUE2 JIAO4 +721E TONG2 CHONG2 +721F GUAN4 +7221 CHE4 +7222 MI2 +7223 TANG3 +7224 LAN4 +7225 ZHU2 +7227 LING2 +7228 CUAN4 +7229 YU4 +722A ZHUA3 ZHAO3 +722C PA2 +722D ZHENG1 ZHENG4 +722E PAO2 +722F CHENG1 +7230 YUAN2 +7231 AI4 +7232 WEI4 WEI2 +7234 JUE2 +7235 JUE2 +7236 FU4 FU3 +7237 YE2 +7238 BA4 +7239 DIE1 +723A YE2 +723B YAO2 XIAO4 +723C ZU3 +723D SHUANG3 SHUANG1 +723E ER3 +723F QIANG2 PAN2 +7240 CHUANG2 +7241 GE1 +7242 ZANG1 +7243 DIE2 +7244 QIANG1 +7245 YONG2 +7246 QIANG2 +7247 PIAN4 PIAN1 PAN4 +7248 BAN3 +7249 PAN4 +724A SHAO2 +724B JIAN1 +724C PAI2 +724D DU2 +724E CHUANG1 CONG1 +724F TOU2 YU2 ZHU4 +7250 ZHA2 +7251 BIAN1 +7252 DIE2 +7253 BANG3 +7254 BO2 +7255 CHUANG1 CONG1 +7256 YOU3 +7258 DU2 +7259 YA2 YA4 +725A CHENG4 CHENG1 +725B NIU2 +725D PIN4 +725E JIU1 +725F MOU2 MU4 MAO4 +7260 TUO2 TA1 TUO1 +7261 MU3 +7262 LAO2 LAO4 LOU2 +7263 REN4 +7264 MANG2 MANG1 +7265 FANG1 +7266 MAO2 LI2 +7267 MU4 +7268 GANG1 +7269 WU4 +726A YAN4 +726B GE1 +726C BEI4 +726D SI4 +726E JIAN4 +726F GU3 +7270 YOU4 CHOU1 +7271 GE1 +7272 SHENG1 +7273 MU3 +7274 DI3 +7275 QIAN1 QIAN4 +7276 QUAN4 +7277 QUAN2 +7278 ZI4 +7279 TE4 +727A XI1 SUO1 +727B MANG2 +727C KENG1 +727D QIAN1 QIAN4 +727E WU2 WU3 +727F GU4 +7280 XI1 +7281 LI2 +7282 LI2 +7283 POU3 +7284 JI1 YI1 +7285 GANG1 +7286 ZHI2 TE4 +7287 BEN1 +7288 QUAN2 +7289 RUN2 +728A DU2 +728B JU4 +728C JIA1 +728D JIAN1 QIAN2 JIAN3 +728E FENG1 +728F PIAN1 +7290 KE1 +7291 JU2 +7292 KAO4 +7293 CHU2 +7294 XI4 +7295 BEI4 +7296 LUO4 +7297 JIE4 +7298 MA2 +7299 SAN1 +729A WEI4 +729B LI2 MAO2 +729C DUN1 +729D TONG2 +729F JIANG4 +72A1 LI4 +72A2 DU2 +72A3 LIE4 +72A4 PI2 BEI1 +72A5 PIAO3 +72A6 BAO4 BO2 +72A7 XI1 SUO1 +72A8 CHOU1 +72A9 WEI4 WEI2 +72AA KUI2 +72AB CHOU1 +72AC QUAN3 +72AE BA2 +72AF FAN4 +72B0 QIU2 +72B1 JI3 +72B2 CAI2 CHAI2 +72B3 CHUO2 +72B4 AN4 HAN1 AN2 JIAN4 +72B5 GE1 QI4 HE2 JIE2 +72B6 ZHUANG4 +72B7 GUANG3 +72B8 MA4 MA3 +72B9 YOU2 +72BA KANG4 +72BB BO2 +72BC HOU3 +72BD YA2 +72BE YIN2 +72BF HUAN1 FAN1 +72C0 ZHUANG4 +72C1 YUN3 +72C2 KUANG2 JUE2 +72C3 NIU3 NV4 +72C4 DI2 TI4 +72C5 QING1 +72C6 ZHONG4 +72C7 MU4 +72C8 BEI4 +72C9 PI1 +72CA JU2 +72CB NI2 YI2 YIN2 +72CC SHENG1 XING1 +72CD PAO2 +72CE XIA2 +72CF TUO2 +72D0 HU2 +72D1 LING2 +72D2 FEI4 +72D3 PI1 +72D4 NI3 +72D5 AO3 +72D6 YOU4 +72D7 GOU3 +72D8 YUE4 XUE4 +72D9 JU1 +72DA DAN4 +72DB PO4 +72DC GU3 +72DD XIAN3 MI2 +72DE NING2 +72DF HUAN2 +72E0 HEN3 YIN2 YAN2 KEN3 HANG3 +72E1 JIAO3 XIAO4 +72E2 HE2 +72E3 ZHAO4 +72E4 JI2 +72E5 XUN4 XUN2 +72E6 SHAN1 +72E7 TA4 +72E8 RONG2 +72E9 SHOU4 +72EA TONG1 +72EB LAO3 +72EC DU2 +72ED XIA2 +72EE SHI1 +72EF HUA2 KUAI4 +72F0 ZHENG1 +72F1 YU4 +72F2 SUN1 +72F3 YU2 +72F4 BI4 +72F5 MANG2 +72F6 XI3 XI1 +72F7 JUAN4 +72F8 LI2 MAI2 +72F9 XIA2 +72FA YIN2 +72FB SUAN1 XUN4 JUN4 +72FC LANG2 LANG4 LANG3 HANG3 +72FD BEI4 +72FE ZHI4 +72FF YAN2 +7300 SHA1 +7301 LI4 +7302 HAN4 +7303 XIAN3 +7304 JING1 +7305 PAI2 +7306 FEI1 +7307 YAO2 XIAO1 +7308 BA4 +7309 QI2 +730A NI2 +730B BIAO1 +730C YIN4 +730D LAI2 +730E XI2 LIE4 QUE4 +730F JIAN1 +7310 QIANG1 +7311 KUN1 +7312 YAN1 YA1 YAN4 +7313 GUO3 LUO3 +7314 ZONG4 +7315 MI2 +7316 CHANG1 +7317 YI1 E1 WEI1 YI3 JI4 +7318 ZHI4 +7319 ZHENG1 +731A YA2 +731B MENG3 +731C CAI1 +731D CU4 +731E SHE4 SHE1 +7321 LUO2 +7322 HU2 +7323 ZONG1 +7324 JI4 +7325 WEI3 WEI4 +7326 FENG1 +7327 WO1 +7328 YUAN2 +7329 XING1 +732A ZHU1 +732B MAO1 MAO2 MIAO2 +732C WEI4 +732D YUAN2 +732E XIAN4 +732F TUAN1 +7330 YA4 +7331 NAO2 +7332 XIE1 XIE2 HE4 +7333 JIA1 +7334 HOU2 +7335 BIAN1 +7336 YOU2 YAO2 +7337 YOU2 +7338 MEI2 +7339 ZHA1 +733A YAO2 +733B SUN1 +733C BO2 PO4 +733D MING2 +733E HUA2 +733F YUAN2 +7340 SOU1 +7341 MA4 MA3 +7342 YUAN2 HUAN2 +7343 DAI1 AI2 +7344 YU4 +7345 SHI1 +7346 HAO2 +7348 YI4 +7349 ZHEN1 +734A CHUANG4 CANG1 +734B HAO2 +734C MAN4 +734D JING4 +734E JIANG3 +734F MU2 MO4 +7350 ZHANG1 +7351 CHAN2 +7352 AO2 +7353 AO2 +7354 HAO2 +7355 CUI1 +7356 FEN2 BEN4 +7357 JUE2 +7358 BI4 +7359 BI4 +735A HUANG2 +735B PU2 +735C LIN2 +735D YU4 XU4 +735E TONG2 +735F YAO4 XIAO1 +7360 LIAO2 LAO3 +7361 SHUO4 XI1 QUE4 +7362 XIAO1 +7365 XI2 +7366 GE2 +7367 JUAN4 +7368 DU2 +7369 HUI4 +736A KUAI4 HUA2 +736B XIAN3 +736C XIE4 HA3 JIE3 +736D TA4 TA3 +736E XIAN3 MI2 +736F XUN1 +7370 NING2 +7371 PIN2 BIAN1 BIN1 +7372 HUO4 +7373 NOU4 +7374 MENG2 MENG3 +7375 LIE4 +7376 NAO2 +7377 GUANG3 JING3 +7378 SHOU4 +7379 LU2 +737A TA3 TA4 +737B XIAN4 SUO1 XI1 +737C MI2 +737D RANG2 +737E HUAN1 QUAN2 +737F NAO2 +7380 LUO2 E3 +7381 XIAN3 +7382 QI2 +7383 JUE2 +7384 XUAN2 XUAN4 +7385 MIAO4 +7386 ZI1 CI1 XUAN2 +7387 LV4 SHUAI4 LVE4 +7388 LU2 +7389 YU4 +738A SU4 +738B WANG2 WANG4 YU4 +738C QIU2 +738D GA3 +738E DING1 +738F LE4 +7390 BA1 +7391 JI1 +7392 HONG2 +7393 DI4 +7394 CHUAN4 QUAN4 +7395 GAN1 +7396 JIU3 +7397 YU2 +7398 JI3 QI3 +7399 YU2 +739A YANG2 CHANG4 DANG4 +739B MA3 +739C GONG1 +739D WU3 +739E FU1 +739F MIN2 WEN2 +73A0 JIE4 +73A1 YA4 +73A2 BIN1 FEN1 FEN2 +73A3 BIAN4 +73A4 BANG4 BENG3 +73A5 YUE4 +73A6 JUE2 +73A7 YUN3 +73A8 JUE2 +73A9 WAN2 WAN4 +73AA JIAN1 +73AB MEI2 +73AC DAN3 +73AD PI2 PIAN2 PIN2 +73AE WEI3 +73AF HUAN2 +73B0 XIAN4 +73B1 QIANG1 +73B2 LING2 +73B3 DAI4 +73B4 YI4 +73B5 AN2 +73B6 PING2 +73B7 DIAN4 DIAN1 +73B8 FU2 +73B9 XUAN2 +73BA XI3 +73BB BO1 +73BC CI3 CI1 +73BD GOU3 +73BE JIA3 +73BF SHAO2 +73C0 PO4 +73C1 CI2 +73C2 KE1 +73C3 RAN3 +73C4 SHENG1 +73C5 SHEN1 +73C6 YI2 +73C7 ZU3 +73C8 JIA1 +73C9 MIN2 WEN2 +73CA SHAN1 +73CB LIU3 +73CC BI4 +73CD ZHEN1 +73CE ZHEN1 +73CF JUE2 +73D0 FA4 +73D1 LONG2 +73D2 JIN1 +73D3 JIAO4 +73D4 JIAN4 +73D5 LI4 +73D6 GUANG1 +73D7 XIAN1 +73D8 ZHOU1 +73D9 GONG3 +73DA YAN1 +73DB XIU4 +73DC YANG2 +73DD XU3 +73DE LUO4 LI4 +73DF SU4 +73E0 ZHU1 +73E1 QIN2 +73E2 KEN4 +73E3 XUN2 XUAN1 +73E4 BAO3 +73E5 ER3 +73E6 XIANG4 +73E7 YAO2 +73E8 XIA2 +73E9 HENG2 +73EA GUI1 +73EB CHONG1 +73EC XU4 +73ED BAN1 +73EE PEI4 +73F0 DANG1 +73F2 HUN2 HUI1 +73F3 WEN2 +73F4 E2 +73F5 CHENG2 +73F6 DI4 TI2 +73F7 WU3 +73F8 WU2 +73F9 CHENG2 +73FA JUN4 +73FB MEI2 +73FC BEI4 +73FD TING3 +73FE XIAN4 +73FF CHUO4 +7400 HAN2 HAN4 +7401 XUAN2 +7402 YAN2 +7403 QIU2 +7404 QUAN3 JUAN1 XUAN4 +7405 LANG2 LANG4 +7406 LI3 +7407 XIU4 +7408 FU2 +7409 LIU2 +740A YE2 YA2 +740B XI1 +740C LING2 +740D LI4 LI2 +740E JIN4 JIN1 +740F LIAN2 LIAN3 +7410 SUO3 +7413 WAN2 +7414 DIAN4 +7415 PIN2 BING3 +7416 ZHAN3 +7417 CUI4 +7418 MIN2 +7419 YU4 +741A JU1 +741B CHEN1 +741C LAI2 +741D WEN2 +741E SHENG4 WANG4 +741F WEI2 +7420 DIAN3 +7421 CHU4 +7422 ZHUO2 ZUO2 +7423 PEI3 +7424 CHENG1 +7425 HU3 +7426 QI2 +7427 E4 +7428 KUN1 +7429 CHANG1 +742A QI2 +742B BENG3 +742C WAN3 +742D LU4 +742E CONG2 +742F GUAN3 +7430 YAN3 +7431 DIAO1 +7432 BEI4 +7433 LIN2 +7434 QIN2 +7435 PI2 +7436 PA2 +7437 QUE4 +7438 ZHUO2 +7439 QIN2 +743A FA4 +743C QIONG2 +743D DU3 +743E JIE4 +743F HUN2 HUI1 +7440 YU3 +7441 MAO4 MEI4 +7442 MEI2 +7444 XUAN1 +7445 TI2 +7446 XING1 +7447 DAI4 +7448 ROU2 +7449 MIN2 +744A ZHEN1 JIAN1 +744B WEI3 +744C RUAN3 +744D HUAN4 +744E JIE1 +744F CHUAN1 +7450 JIAN3 +7451 ZHUAN4 +7452 YANG2 CHANG4 DANG4 +7453 LIAN4 +7454 QUAN2 +7455 XIA2 +7456 DUAN4 +7457 YUAN4 HUAN2 +7458 YE2 +7459 NAO3 +745A HU2 +745B YING1 +745C YU2 +745D HUANG2 +745E RUI4 +745F SE4 +7460 LIU2 +7462 RONG2 +7463 SUO3 +7464 YAO2 +7465 WEN1 +7466 WU1 +7467 JIN1 +7468 JIN4 +7469 YING2 YING3 +746A MA3 +746B TAO1 +746C LIU2 +746D TANG2 +746E LI4 +746F LANG2 +7470 GUI1 +7471 TIAN4 ZHEN4 +7472 QIANG1 +7473 CUO3 CUO1 +7474 JUE2 +7475 ZHAO3 +7476 YAO2 +7477 AI4 +7478 BIN1 +7479 TU2 +747A CHANG2 +747B KUN1 +747C ZHUAN1 +747D CONG1 +747E JIN3 JIN4 +747F YI1 +7480 CUI3 +7481 CONG1 +7482 QI2 +7483 LI2 LI5 +7484 YING3 +7485 SUO3 +7486 QIU2 +7487 XUAN2 +7488 AO2 +7489 LIAN2 LIAN3 +748A MEN2 MAN2 +748B ZHANG1 +748C YIN2 +748E YING1 +748F ZHI4 +7490 LU4 +7491 WU2 +7492 DENG1 +7494 ZENG1 +7495 XUN2 +7496 QU2 +7497 DANG4 +7498 LIN2 +7499 LIAO2 +749A QIONG2 JUE2 +749B SU4 +749C HUANG2 +749D GUI1 +749E PU2 +749F JING3 +74A0 FAN2 +74A1 JIN4 JIN1 +74A2 LIU2 +74A3 JI1 +74A5 JING3 +74A6 AI4 +74A7 BI4 +74A8 CAN4 +74A9 QU2 +74AA ZAO3 +74AB DANG1 +74AC JIAO3 +74AD GUN4 +74AE TAN3 +74AF HUI4 +74B0 HUAN2 HUAN4 +74B1 SE4 +74B2 SUI4 +74B3 TIAN2 +74B5 YU2 +74B6 JIN4 +74B7 LU2 +74B8 BIN1 +74B9 SHOU4 SHU2 +74BA WEN4 +74BB ZUI3 +74BC LAN2 +74BD XI3 +74BE JI4 +74BF XUAN2 +74C0 RUAN3 +74C1 HUO4 +74C2 GAI4 +74C3 LEI2 +74C4 DU2 +74C5 LI4 +74C6 ZHI2 +74C7 ROU2 +74C8 LI2 +74C9 ZAN4 +74CA QIONG2 XUAN2 +74CB ZHE2 +74CC GUI1 +74CD SUI4 +74CE LA4 +74CF LONG2 +74D0 LU2 +74D1 LI4 +74D2 ZAN4 +74D3 LAN4 +74D4 YING1 +74D5 MI2 +74D6 XIANG1 +74D7 XI1 +74D8 GUAN4 +74D9 DAO4 +74DA ZAN4 +74DB HUAN2 +74DC GUA1 +74DD BO2 +74DE DIE2 +74DF BAO2 BO2 +74E0 HU4 HU2 HUO4 GU1 +74E1 ZHI2 +74E2 PIAO2 +74E3 BAN4 +74E4 RANG2 +74E5 LI4 +74E6 WA3 WA4 +74E8 JIANG1 HONG2 +74EA FAN3 +74EB PEN2 +74EC FANG3 +74ED DAN3 +74EE WENG4 +74EF OU1 +74F3 HU2 +74F4 LING2 +74F5 YI2 +74F6 PING2 +74F7 CI2 +74F9 JUAN4 +74FA CHANG2 +74FB CHI1 +74FD DANG4 +74FE MENG3 +74FF POU3 BU4 +7500 ZHUI4 +7501 PING2 +7502 BIAN1 PIAN1 +7503 ZHOU4 +7504 ZHEN1 ZHEN4 JUAN4 +7506 CI2 +7507 YING1 +7508 QI4 +7509 XIAN2 +750A LOU3 +750B DI4 +750C OU1 OU3 +750D MENG2 +750E ZHUAN1 +750F PENG4 BENG4 +7510 LIN2 +7511 ZENG4 +7512 WU3 +7513 PI4 +7514 DAN1 +7515 WENG4 +7516 YING1 +7517 YAN3 +7518 GAN1 +7519 DAI4 +751A SHEN2 SHI2 SHEN4 +751B TIAN2 +751C TIAN2 +751D HAN1 HAN2 +751E CHANG2 +751F SHENG1 +7520 QING2 +7521 SHEN1 SHENG1 +7522 CHAN3 +7523 CHAN3 +7524 RUI2 +7525 SHENG1 +7526 SU1 +7527 SEN1 +7528 YONG4 +7529 SHUAI3 +752A LU4 +752B FU3 PU4 PU3 +752C YONG3 DONG4 +752D BENG2 QI4 +752E FENG4 +752F NING2 NING4 +7530 TIAN2 +7531 YOU2 YAO1 +7532 JIA3 +7533 SHEN1 +7534 ZHA2 +7535 DIAN4 +7536 FU2 +7537 NAN2 +7538 DIAN4 SHENG4 TIAN2 YING4 +7539 PING2 PING1 +753A TING3 TING1 DING1 ZHENG4 TIAN3 +753B HUA4 +753C TING3 +753D QUAN3 ZHEN4 +753E ZI1 ZAI1 +753F MENG2 +7540 BI4 +7541 QI2 BI4 +7542 LIU4 JIU4 MU3 +7543 XUN2 +7544 LIU2 +7545 CHANG4 +7546 MU3 +7547 YUN2 +7548 FAN4 +7549 FU2 +754A GENG1 +754B TIAN2 +754C JIE4 +754D JIE4 +754E QUAN3 +754F WEI4 WEI1 WEI3 +7550 FU2 +7551 TIAN2 +7552 MU3 +7554 PAN4 +7555 JIANG1 +7556 WA1 +7557 DA2 FU2 +7558 NAN2 +7559 LIU2 LIU3 LIU4 +755A BEN3 +755B ZHEN3 +755C CHU4 XU4 +755D MU3 +755E MU3 +755F CE4 +7561 GAI1 +7562 BI4 +7563 DA2 +7564 ZHI4 +7565 LVE4 +7566 QI2 XI2 +7567 LVE4 +7568 PAN1 FAN1 +756A FAN1 PAN1 BO1 PO2 FAN2 PAN2 PI2 +756B HUA4 +756C YU2 SHE1 +756D YU2 +756E MU3 +756F JUN4 +7570 YI4 +7571 LIU2 LIU3 +7572 YU2 SHE1 +7573 DIE2 +7574 CHOU2 +7575 HUA4 +7576 DANG1 DANG4 +7577 CHUO4 ZHUO2 +7578 JI1 QI2 +7579 WAN3 YUAN4 +757A JIANG1 +757B SHENG2 +757C CHANG4 +757D TUAN3 +757E LEI2 +757F JI1 +7580 CHA1 +7581 LIU2 +7583 TUAN3 +7584 LIN2 +7585 JIANG1 +7586 JIANG1 QIANG2 JIANG4 +7587 CHOU2 +7588 BO4 PI4 +7589 DIE2 +758A DIE2 +758B PI3 PI1 SHU1 YA3 +758C NIE4 +758D DAN4 +758E SHU1 SHU4 +758F SHU1 SHU4 +7590 ZHI4 DI4 +7591 YI2 NI3 NING2 +7592 CHUANG2 +7593 NAI3 +7594 DING1 NE4 +7595 BI3 +7596 JIE2 +7597 LIAO2 +7598 GANG1 GONG1 +7599 GE1 YI4 +759A JIU4 +759B ZHOU3 +759C XIA4 +759D SHAN4 +759E XU1 +759F NVE4 YAO4 +75A0 LI4 +75A1 YANG2 +75A2 CHEN4 +75A3 YOU2 YOU4 +75A4 BA1 +75A5 JIE4 +75A6 JUE2 +75A7 ZHI1 +75A8 XIA1 +75A9 CUI4 +75AA BI4 +75AB YI4 +75AC LI4 +75AD ZONG4 +75AE CHUANG1 +75AF FENG1 +75B0 ZHU4 +75B1 PAO4 +75B2 PI2 +75B3 GAN1 +75B4 KE1 E1 QIA4 +75B5 CI1 ZI1 ZHAI4 JI4 +75B6 XIE4 +75B7 QI2 +75B8 DAN3 DAN4 DA5 +75B9 ZHEN3 CHEN4 +75BA FA2 +75BB ZHI3 +75BC TENG2 +75BD JU1 JU3 +75BE JI2 +75BF FEI4 FEI2 +75C0 QU2 GOU1 JU1 YU3 +75C1 DIAN4 SHAN1 +75C2 JIA1 +75C3 XIAN2 +75C4 ZHA4 CHA2 ZHA3 +75C5 BING4 +75C6 NI4 NA4 +75C7 ZHENG4 ZHENG1 +75C8 YONG1 +75C9 JING4 +75CA QUAN2 +75CB CHONG2 +75CC TONG1 +75CD YI2 +75CE KAI1 LIE1 +75CF WEI3 +75D0 HUI2 +75D1 DUO3 +75D2 YANG3 YANG2 +75D3 CHI4 +75D4 ZHI4 +75D5 HEN2 GEN4 +75D6 YA3 +75D7 MEI4 +75D8 DOU4 +75D9 JING4 +75DA XIAO1 +75DB TONG4 +75DC TU1 +75DD MANG2 +75DE PI3 +75DF XIAO1 +75E0 SUAN1 +75E1 PU1 +75E2 LI4 +75E3 ZHI4 +75E4 CUO2 +75E5 DUO2 +75E6 WU4 PI1 +75E7 SHA1 +75E8 LAO2 +75E9 SHOU4 +75EA HUAN4 +75EB XIAN2 +75EC YI4 +75ED PENG2 +75EE ZHANG4 +75EF GUAN3 +75F0 TAN2 +75F1 FEI4 FEI2 FEI3 +75F2 MA2 +75F3 LIN2 +75F4 CHI1 +75F5 JI4 +75F6 DIAN3 +75F7 AN1 +75F8 CHI4 +75F9 BI4 +75FA BI4 BEI1 +75FB MIN2 +75FC GU4 GU1 +75FD DUI1 +75FE E1 KE1 +75FF WEI3 +7600 YU1 +7601 CUI4 +7602 YA3 +7603 ZHU2 ZHU3 +7604 CU4 +7605 DAN4 DAN3 DAN1 +7606 SHEN4 +7607 ZHONG3 +7608 JI4 CHI4 ZHI4 +7609 YU4 +760A HOU2 +760B FENG1 +760C LA4 +760D YANG2 DANG4 +760E SHEN4 +760F TU2 +7610 YU3 +7611 GUA1 +7612 WEN2 +7613 HUAN4 +7614 KU4 +7615 JIA3 XIA2 XIA1 +7616 YIN1 +7617 YI4 +7618 LV2 LOU4 +7619 SAO1 SAO4 +761A JUE2 +761B CHI4 +761C XI2 +761D GUAN1 +761E YI4 +761F WEN1 WO4 YUN1 +7620 JI2 ZI4 +7621 CHUANG1 +7622 BAN1 +7623 LEI3 +7624 LIU2 +7625 CHAI4 CUO2 +7626 SHOU4 +7627 NVE4 YAO4 +7628 DIAN1 +7629 DA5 DA1 DA2 +762A PIE1 BIE3 BIE1 +762B TAN1 +762C ZHANG4 +762D BIAO1 +762E SHEN4 +762F CU4 +7630 LUO3 +7631 YI4 +7632 ZONG4 +7633 CHOU1 LU4 +7634 ZHANG4 +7635 ZHAI4 JI4 +7636 SOU4 +7637 SUO3 +7638 QUE2 +7639 DIAO4 +763A LOU4 +763B LV2 LOU4 +763C MO4 +763D JIN4 +763E YIN3 +763F YING3 +7640 HUANG2 +7641 FU2 +7642 LIAO2 SHUO4 +7643 LONG2 +7644 QIAO2 +7645 LIU2 +7646 LAO2 LAO4 +7647 XIAN2 +7648 FEI4 +7649 DAN4 DAN1 DAN3 TAN2 +764A YIN4 +764B HE4 +764C AI2 YAN2 +764D BAN1 +764E XIAN2 +764F GUAN1 +7650 GUAI4 +7651 NONG2 +7652 YU4 +7653 WEI2 +7654 YI4 +7655 YONG1 +7656 PI3 +7657 LEI3 +7658 LI4 +7659 SHU3 +765A DAN4 +765B LIN3 BING3 +765C DIAN4 +765D LIN3 BING3 +765E LAI4 LA4 +765F BIE3 PIE1 BIE1 +7660 JI4 JI2 +7661 CHI1 +7662 YANG3 +7663 XIAN3 XUAN3 +7664 JIE2 +7665 ZHENG1 +7667 LI4 +7668 HUO4 +7669 LAI4 LA4 +766B DIAN1 +766C XUAN3 XIAN3 +766D YING3 +766E YIN3 +766F QU2 +7670 YONG1 +7671 TAN1 +7672 DIAN1 +7673 LUO3 +7674 LUAN2 +7675 LUAN2 +7676 BO1 +7678 GUI3 +7679 PO1 BA2 +767A FA1 FA4 +767B DENG1 DE2 +767C FA1 FA4 BO1 +767D BAI2 BO2 +767E BAI3 BO2 MO4 +767F QIE2 +7680 BI1 JI2 +7681 ZAO4 +7682 ZAO4 +7683 MAO4 +7684 DE5 DI2 DI4 +7685 PA1 +7686 JIE1 +7687 HUANG2 WANG3 +7688 GUI1 +7689 CI3 +768A LING2 +768B GAO1 GU1 HAO2 +768C MO4 +768D JI2 +768E JIAO3 +768F PENG3 +7690 GAO1 +7691 AI2 +7692 E2 +7693 HAO4 HUI1 +7694 HAN4 +7695 BI1 +7696 WAN3 HUAN4 +7697 CHOU2 +7698 QIAN4 +7699 XI1 +769A AI2 +769B JIONG3 JIAO3 XIAO3 +769C HAO4 GAO3 +769D HUANG3 +769E HAO4 +769F ZE2 +76A0 CUI3 CUI4 +76A1 HAO4 +76A2 XIAO3 +76A3 YE4 +76A4 PO2 PAN2 +76A5 HAO4 +76A6 JIAO3 +76A7 AI4 +76A8 XING1 +76A9 HUANG4 +76AA LI4 +76AB PIAO3 +76AC HE4 HE2 +76AD JIAO4 +76AE PI2 +76AF GAN3 +76B0 PAO4 +76B1 ZHOU4 +76B2 JUN1 +76B3 QIU2 +76B4 CUN1 +76B5 QUE4 +76B6 ZHA1 CU3 +76B7 GU3 +76B8 JUN1 +76B9 JUN1 +76BA ZHOU4 ZHOU1 +76BB ZHA1 +76BC GU3 +76BD ZHAN3 +76BE DU2 +76BF MIN3 MING3 +76C0 QI3 +76C1 YING2 +76C2 YU2 +76C3 BEI1 +76C4 ZHAO1 DIAO4 +76C5 ZHONG1 CHONG1 +76C6 PEN2 +76C7 HE2 +76C8 YING2 +76C9 HE2 +76CA YI4 +76CB BO1 +76CC WAN3 +76CD HE2 KE3 +76CE ANG4 +76CF ZHAN3 +76D0 YAN2 YAN4 +76D1 JIAN1 JIAN4 +76D2 HE2 AN1 +76D3 YU1 +76D4 KUI1 +76D5 FAN4 +76D6 GAI4 GE3 HE2 +76D7 DAO4 +76D8 PAN2 +76D9 FU3 +76DA QIU2 +76DB SHENG4 CHENG2 +76DC DAO4 +76DD LU4 +76DE ZHAN3 +76DF MENG2 MING2 MENG4 +76E0 LI3 +76E1 JIN4 JIN3 +76E2 XU4 +76E3 JIAN1 JIAN4 KAN4 +76E4 PAN2 XUAN2 +76E5 GUAN4 +76E6 AN1 +76E7 LU2 +76E8 SHU3 XU3 +76E9 ZHOU1 CHOU1 +76EA DANG4 +76EB AN1 +76EC GU3 +76ED LI4 +76EE MU4 +76EF DING1 CHENG2 +76F0 GAN3 +76F1 XU1 +76F2 MANG2 WANG4 +76F3 MANG2 WANG4 +76F4 ZHI2 +76F5 QI4 +76F6 RUAN3 +76F7 TIAN2 XUAN2 +76F8 XIANG1 XIANG4 +76F9 DUN3 DUN4 ZHUN1 +76FA XIN1 +76FB XI4 +76FC PAN4 FEN2 +76FD FENG1 +76FE DUN4 SHUN3 YUN3 +76FF MIN2 +7700 MING2 +7701 SHENG3 XIAN3 XING3 +7702 SHI4 +7703 YUN2 +7704 MIAN3 +7705 PAN1 +7706 FANG3 +7707 MIAO3 MIAO4 +7708 DAN1 TAN2 CHEN3 +7709 MEI2 +770A MAO4 +770B KAN4 KAN1 +770C XIAN4 +770D OU1 +770E SHI4 +770F YANG1 +7710 ZHENG1 +7711 YAO3 +7712 SHEN4 +7713 HUO4 +7714 DA4 +7715 ZHEN3 +7716 KUANG4 +7717 JU1 +7718 SHEN4 +7719 CHI4 YI2 DENG4 +771A SHENG3 +771B MEI4 +771C MO4 MIE4 +771D ZHU4 +771E ZHEN1 +771F ZHEN1 +7720 MIAN2 MIAN3 MIN3 +7721 DI1 +7722 YUAN1 +7723 DIE2 +7724 YI2 +7725 ZI4 +7726 ZI4 +7727 CHAO3 +7728 ZHA3 +7729 XUAN4 HUAN4 JUAN4 +772A BING3 +772B MI3 +772C LONG2 +772D SUI1 GUI4 HUI1 XIE2 WEI4 +772E DONG4 +772F MI3 MI1 MI4 MI2 +7730 DIE2 +7731 YI2 +7732 ER4 NE4 +7733 MING3 MING2 +7734 XUAN4 SHUN4 +7735 CHI1 +7736 KUANG4 +7737 JUAN4 +7738 MOU2 +7739 ZHEN4 +773A TIAO4 +773B YANG2 +773C YAN3 WEN3 +773D MO4 +773E ZHONG4 +773F MAI4 +7740 ZHAO2 ZHE5 ZHAO1 ZHUO2 +7741 ZHENG1 +7742 MEI2 +7743 JUN4 SUO1 +7744 SHAO4 QIAO2 +7745 HAN4 +7746 HUAN3 +7747 DI4 TI1 TI2 +7748 CHENG3 +7749 CUO1 +774A JUAN4 +774B E2 +774C WAN3 +774D XIAN4 +774E XI1 +774F KUN4 +7750 LAI4 +7751 JIAN3 +7752 SHAN3 +7753 TIAN3 +7754 HUN3 GUN3 +7755 WAN3 WAN1 +7756 LING2 LENG4 +7757 SHI4 +7758 QIONG2 +7759 LIE4 +775A YAI2 YA2 +775B JING1 JING3 +775C ZHENG1 +775D LI2 +775E LAI4 +775F SUI4 +7760 JUAN4 +7761 SHUI4 +7762 SUI1 +7763 DU1 +7764 BI4 +7765 BI4 PI4 +7766 MU4 +7767 HUN1 +7768 NI4 +7769 LU4 +776A YI4 GAO1 HAO4 ZE2 +776B JIE2 SHE4 +776C CAI3 +776D ZHOU3 +776E YU2 +776F HUN1 +7770 MA4 +7771 XIA4 JIA3 +7772 XING3 +7773 XI1 +7774 GUN4 +7776 CHUN3 +7777 JIAN1 +7778 MEI4 +7779 DU3 +777A HOU2 +777B XUAN1 +777C TI4 +777D KUI2 JI4 +777E GAO1 HAO4 +777F RUI4 +7780 MAO4 WU2 MOU4 +7781 XU4 +7782 FA1 FA2 +7783 WEN1 +7784 MIAO2 +7785 CHOU3 +7786 KUI4 GUI4 +7787 MI1 +7788 WENG3 +7789 KOU4 +778A DANG4 +778B CHEN1 +778C KE1 +778D SOU3 +778E XIA1 +778F QIONG2 +7790 MAO4 +7791 MING2 MING3 MIAN2 MIAN4 MENG2 +7792 MAN2 MEN2 MEN4 +7793 SHUI4 +7794 ZE2 +7795 ZHANG4 +7796 YI4 +7797 DIAO1 +7798 OU1 +7799 MO4 +779A SHUN4 +779B CONG1 +779C LOU1 +779D CHI1 +779E MAN2 MEN2 MEN4 +779F PIAO3 PIAO4 PIAO1 +77A0 CHENG1 ZHENG4 +77A1 JI4 +77A2 MENG2 MENG4 MANG2 +77A4 RUN2 +77A5 PIE1 BI4 +77A6 XI1 +77A7 QIAO2 +77A8 PU2 +77A9 ZHU3 +77AA DENG4 +77AB SHEN3 +77AC SHUN4 +77AD LIAO3 LIAO4 YAO3 +77AE CHE4 +77AF XIAN2 JIAN4 +77B0 KAN4 +77B1 YE4 +77B2 XU4 XUE4 +77B3 TONG2 +77B4 MOU2 +77B5 LIN2 LIN4 LIAN2 +77B6 KUI4 GUI4 +77B7 XIAN2 JIAN4 +77B8 YE4 +77B9 AI4 +77BA HUI4 +77BB ZHAN1 +77BC JIAN3 +77BD GU3 +77BE ZHAO4 +77BF JU4 QU2 JI2 QU1 +77C0 WEI2 +77C1 CHOU3 +77C2 SAO4 +77C3 NING3 +77C4 XUN1 +77C5 YAO4 +77C6 HUO4 XUE1 +77C7 MENG2 +77C8 MIAN2 +77C9 BIN1 PIN2 +77CA MIAN2 +77CB LI4 +77CC KUANG4 +77CD JUE2 +77CE XUAN1 +77CF MIAN2 +77D0 HUO4 +77D1 LU2 +77D2 MENG2 MANG2 MENG4 +77D3 LONG2 +77D4 GUAN4 +77D5 MAN3 +77D6 XI3 +77D7 CHU4 +77D8 TANG3 +77D9 KAN4 +77DA ZHU3 +77DB MAO2 +77DC JIN1 GUAN1 QIN2 +77DD LIN2 +77DE YU4 JUE2 XU4 +77DF SHUO4 +77E0 CE4 +77E1 JUE2 +77E2 SHI3 +77E3 YI3 XIAN2 +77E4 SHEN3 +77E5 ZHI1 ZHI4 +77E6 HOU2 +77E7 SHEN3 +77E8 YING3 +77E9 JU3 +77EA ZHOU1 +77EB JIAO3 JIAO2 JIAO1 +77EC CUO2 +77ED DUAN3 +77EE AI3 +77EF JIAO3 JIAO1 +77F0 ZENG1 +77F1 HUO4 YUE1 +77F2 BAI3 +77F3 SHI2 DAN4 +77F4 DING4 +77F5 QI4 DIAO1 +77F6 JI1 +77F7 ZI3 +77F8 GAN1 GAN4 +77F9 WU4 +77FA TUO1 +77FB KU4 KU1 WU4 +77FC QIANG1 GANG1 KONG4 +77FD XI4 XI1 +77FE FAN2 +77FF KUANG4 +7800 DANG4 +7801 MA3 +7802 SHA1 +7803 DAN1 +7804 JUE2 +7805 LI4 +7806 FU1 +7807 MIN2 +7808 NUO3 +7809 HUO4 HUA1 XU1 +780A KANG4 KANG1 +780B ZHI3 +780C QI4 QIE4 +780D KAN3 +780E JIE4 +780F FEN1 PAN1 +7810 E4 +7811 YA4 +7812 PI1 +7813 ZHE2 +7814 YAN2 YAN4 XING2 +7815 SUI4 +7816 ZHUAN1 TUAN2 TUO2 +7817 CHE1 +7818 DUN4 +7819 PAN1 +781A YAN4 +781C FENG1 +781D FA2 FA3 JIE2 GE2 +781E MO4 +781F ZHA4 ZUO2 ZHA3 ZUO4 +7820 QU1 JU1 +7821 YU4 +7822 LUO3 KE1 +7823 TUO2 +7824 TUO2 +7825 DI3 ZHI3 +7826 ZHAI4 +7827 ZHEN1 +7828 AI4 +7829 FEI4 FU2 +782A MU3 +782B ZHU3 ZHU4 +782C LI4 LA2 +782D BIAN1 +782E NU3 +782F PING1 +7830 PENG1 PING1 PENG4 +7831 LING2 +7832 PAO4 +7833 LE4 +7834 PO4 +7835 BO1 +7836 PO4 +7837 SHEN1 +7838 ZA2 +7839 NUO3 AI4 +783A LI4 +783B LONG2 +783C TONG2 +783E LI4 +7840 CHU3 +7841 KENG1 +7842 QUAN2 +7843 ZHU1 +7844 KUANG1 +7845 GUI1 HUO4 HE4 +7846 E4 +7847 NAO2 +7848 JIA2 +7849 LU4 +784A WEI3 +784B AI4 +784C LUO4 LI4 GE4 +784D KEN4 +784E XING2 YAN2 KENG1 +784F YAN2 +7850 TONG2 DONG3 DONG4 +7851 PENG1 +7852 XI1 +7854 HONG2 +7855 SHUO4 SHI2 +7856 XIA2 +7857 QIAO1 +7859 WEI4 AI2 WEI2 +785A QIAO2 +785C KENG1 +785D XIAO1 QIAO4 +785E QUE4 +785F CHAN4 +7860 LANG3 LANG2 +7861 HONG2 HONG1 +7862 YU2 +7863 XIAO1 +7864 XIA2 +7865 MANG3 +7866 LONG4 +7867 YONG3 TONG2 +7868 CHE1 +7869 CHE4 +786A E2 WO4 YI3 +786B LIU2 CHU4 +786C YING4 GENG3 +786D MANG2 +786E QUE4 +786F YAN4 +7870 SHA1 +7871 KUN3 +7872 YU4 +7875 LU3 +7876 CHEN3 CEN2 +7877 JIAN3 +7878 NVE4 +7879 SONG1 +787A ZHUO2 +787B KENG1 +787C PENG2 PENG1 +787D YAN3 +787E ZHUI4 +787F KONG1 +7880 CENG2 +7881 QI2 +7882 ZONG4 +7883 QING4 +7884 LIN2 +7885 JUN1 +7886 BO1 +7887 DING4 +7888 MIN2 +7889 DIAO1 +788A JIAN1 +788B HE4 +788C LU4 LIU4 LUO4 +788D AI4 +788E SUI4 +788F QUE4 +7890 LING2 LENG2 +7891 BEI1 +7892 YIN2 +7893 DUI4 DUI1 +7894 WU3 +7895 QI2 +7896 LUN4 +7897 WAN3 +7898 DIAN3 +7899 GANG1 +789A BEI4 PEI2 +789B QI4 +789C CHEN3 +789D RUAN3 +789E YAN2 +789F DIE2 SHE2 +78A0 DING4 +78A1 DU2 ZHOU2 +78A2 TUO2 +78A3 JIE2 KE4 YA4 +78A4 YING1 +78A5 BIAN3 +78A6 KE4 +78A7 BI4 +78A8 WEI1 WEI3 +78A9 SHUO4 SHI2 +78AA ZHEN1 +78AB DUAN4 +78AC XIA2 +78AD DANG4 +78AE TI2 +78AF NAO3 +78B0 PENG4 +78B1 JIAN3 XIAN2 +78B2 DI4 +78B3 TAN4 +78B4 CHA2 ZHA1 ZHA3 CHA1 +78B6 QI4 +78B8 FENG1 +78B9 XUAN4 +78BA QUE4 +78BB QUE4 QIAO1 +78BC MA3 +78BD GONG1 +78BE NIAN3 NIAN4 LIAN3 +78BF SU4 +78C0 E2 +78C1 CI2 +78C2 LIU4 +78C3 SI1 +78C4 TANG2 +78C5 BANG4 PANG4 PANG2 PANG1 +78C6 HUA2 +78C7 PI1 +78C8 WEI3 KUI3 +78C9 SANG3 +78CA LEI3 +78CB CUO1 +78CC ZHEN1 TIAN2 +78CD XIA2 +78CE QI1 XI1 +78CF LIAN2 +78D0 PAN2 +78D1 WEI4 AI2 WEI2 +78D2 YUN3 +78D3 DUI1 +78D4 ZHE2 +78D5 KE1 KE3 +78D6 LA1 LA2 +78D8 QING4 +78D9 GUN3 +78DA ZHUAN1 TUAN2 TUO2 +78DB CHAN2 +78DC QI4 +78DD AO2 +78DE PENG1 +78DF LU4 LIU4 +78E0 LU3 +78E1 KAN4 +78E2 QIANG3 CHUANG3 +78E3 CHEN3 CA4 +78E4 YIN3 YIN1 +78E5 LEI3 +78E6 BIAO1 +78E7 QI4 +78E8 MO2 MO4 +78E9 QI1 QI4 +78EA CUI1 +78EB ZONG1 +78EC QING4 QING3 +78ED CHUO4 +78EF JI1 +78F0 SHAN4 +78F1 LAO2 +78F2 QU2 +78F3 ZENG1 +78F4 DENG4 DENG1 +78F5 JIAN4 +78F6 XI4 +78F7 LIN2 LIN4 LIN3 LING2 +78F8 DING4 +78F9 DIAN4 +78FA HUANG2 KUANG4 +78FB PAN2 BO1 +78FC ZA2 +78FD QIAO1 QIAO3 QIAO4 AO2 +78FE DI1 +78FF LI4 +7901 JIAO1 +7903 ZHANG3 +7904 QIAO2 +7905 DUN1 +7906 XIAN3 JIAN3 +7907 YU4 +7908 ZHUI4 +7909 HE2 +790A HUO4 +790B ZHAI2 ZE2 +790C LEI4 LEI2 LEI3 +790D KE3 +790E CHU3 +790F JI2 +7910 QUE4 +7911 DANG4 +7912 YI3 +7913 JIANG1 +7914 PI4 +7915 PI1 +7916 YU4 +7917 PIN1 +7918 QI4 +7919 AI4 +791A KAI4 KE1 +791B JIAN1 LAN2 +791C YU4 +791D RUAN3 +791E MENG2 +791F PAO4 +7920 CI2 +7921 BO2 +7923 MIE4 +7924 CA3 +7925 XIAN2 +7926 KUANG4 +7927 LEI4 LEI2 LEI3 +7928 LEI3 +7929 ZHI4 +792A LI4 +792B LI4 LUO4 +792C FAN2 +792D QUE4 +792E PAO4 +792F YING1 +7930 LI4 +7931 LONG2 +7932 LONG2 +7933 MO4 +7934 BO2 +7935 SHUANG1 +7936 GUAN4 +7937 LAN2 +7938 ZAN3 +7939 YAN2 +793A SHI4 QI1 ZHI4 SHI2 +793B SHI4 +793C LI3 +793D RENG2 +793E SHE4 +793F YUE4 +7940 SI4 +7941 QI2 ZHI3 +7942 TA1 +7943 MA4 +7944 XIE4 +7945 YAO1 XIAN1 +7946 XIAN1 YAO1 +7947 QI2 CHI2 ZHI1 ZHI3 +7948 QI2 GUI3 +7949 ZHI3 +794A BENG1 +794B DUI4 +794C ZHONG4 ZHONG3 +794E YI1 +794F SHI2 +7950 YOU4 +7951 ZHI4 +7952 TIAO2 +7953 FU2 FEI4 +7954 FU4 +7955 MI4 +7956 ZU3 JIE1 +7957 ZHI1 +7958 SUAN4 +7959 MEI4 +795A ZUO4 +795B QU1 +795C HU4 +795D ZHU4 ZHOU4 CHU4 +795E SHEN2 SHEN1 +795F SUI4 +7960 CI2 SI4 +7961 CHAI2 +7962 MI2 NI3 +7963 LV3 +7964 YU3 XU3 +7965 XIANG2 +7966 WU2 +7967 TIAO1 +7968 PIAO4 PIAO1 +7969 ZHU1 +796A GUI3 +796B XIA2 +796C ZHI1 +796D JI4 ZHAI4 +796E GAO4 +796F ZHEN1 ZHENG1 +7970 GAO4 +7971 SHUI4 +7972 JIN1 JIN4 +7973 CHEN3 +7974 GAI1 +7975 KUN3 HUN2 +7976 DI4 +7977 DAO3 +7978 HUO4 +7979 TAO2 +797A QI2 +797B GU4 +797C GUAN4 +797D ZUI4 +797E LING2 +797F LU4 +7980 BING3 BIN3 LIN3 +7981 JIN4 JIN1 +7982 DAO3 +7983 ZHI2 +7984 LU4 +7985 SHAN4 CHAN2 +7986 BEI1 +7987 ZHE3 ZHU3 CHU3 +7988 HUI1 +7989 YOU3 CHAO3 +798A XI4 +798B YIN1 +798C ZI1 +798D HUO4 +798E ZHEN1 ZHENG1 +798F FU2 FU4 +7990 YUAN4 +7991 WU2 +7992 XIAN3 +7993 YANG2 +7994 TI2 ZHI1 +7995 YI1 +7996 MEI2 +7997 SI1 +7998 DI4 +799A ZHUO2 +799B ZHEN1 +799C YONG3 YING2 +799D JI2 +799E GAO4 +799F TANG2 +79A0 SI1 +79A1 MA4 +79A2 TA1 +79A4 XUAN1 +79A5 QI2 +79A6 YU4 +79A7 XI3 XI1 +79A8 JI1 JI4 +79A9 SI4 +79AA CHAN2 SHAN4 TAN2 +79AB TAN3 DAN4 +79AC KUAI4 GUI4 HUI4 +79AD SUI4 +79AE LI3 +79AF NONG2 +79B0 NI3 MI2 XIAN3 +79B1 DAO3 +79B2 LI4 +79B3 RANG2 +79B4 YUE4 +79B5 TI2 +79B6 ZAN3 +79B7 LEI4 +79B8 ROU2 +79B9 YU3 +79BA YU2 OU3 YU4 +79BB LI2 CHI1 LI4 +79BC XIE4 +79BD QIN2 +79BE HE2 +79BF TU1 +79C0 XIU4 +79C1 SI1 +79C2 REN2 +79C3 TU1 +79C4 ZI3 +79C5 CHA2 +79C6 GAN3 +79C7 YI4 ZHI2 +79C8 XIAN1 +79C9 BING3 +79CA NIAN2 +79CB QIU1 +79CC QIU1 +79CD ZHONG3 CHONG2 ZHONG4 +79CE FEN2 +79CF HAO4 +79D0 YUN2 +79D1 KE1 KE4 +79D2 MIAO3 +79D3 ZHI1 +79D4 GENG1 JING1 +79D5 BI3 +79D6 ZHI1 ZHI3 +79D7 YU4 +79D8 MI4 BI4 BIE2 +79D9 KU4 +79DA BAN4 +79DB PI1 +79DC NI2 LI2 +79DD LI4 +79DE YOU2 +79DF ZU1 JU1 +79E0 PI1 +79E1 BA2 +79E2 LING2 +79E3 MO4 +79E4 CHENG4 CHENG1 CHEN4 PING2 +79E5 NIAN2 +79E6 QIN2 +79E7 YANG1 +79E8 ZUO2 +79E9 ZHI4 +79EA ZHI1 +79EB SHU2 SHU4 +79EC JU4 +79ED ZI3 +79EE HUO2 KUO4 +79EF JI1 +79F0 CHENG1 CHEN4 CHENG4 +79F1 TONG2 +79F2 ZHI4 +79F3 HUO2 +79F4 HE2 +79F5 YIN1 +79F6 ZI1 CI2 JI4 +79F7 ZHI2 +79F8 JIE1 JI2 +79F9 REN3 +79FA DU4 +79FB YI2 CHI3 YI4 +79FC ZHU1 +79FD HUI4 +79FE NONG2 +79FF FU3 +7A00 XI1 +7A01 KAO3 KAO4 GAO4 +7A02 LANG2 +7A03 FU1 FU2 +7A04 ZE4 +7A05 SHUI4 TUAN4 TUI4 TUO1 +7A06 LV3 +7A07 KUN3 +7A08 GAN3 +7A09 GENG1 JING1 +7A0A TI2 +7A0B CHENG2 +7A0C TU2 +7A0D SHAO1 SHAO4 +7A0E SHUI4 TUAN4 TUI4 TUO1 +7A0F YA4 +7A10 LUN3 +7A11 LU4 +7A12 GU4 +7A13 ZUO2 +7A14 REN3 +7A15 ZHUN4 +7A16 BANG4 +7A17 BAI4 +7A18 JI1 +7A19 ZHI2 +7A1A ZHI4 +7A1B KUN3 +7A1C LENG2 LENG4 LING2 +7A1D PENG2 +7A1E KE1 HUA4 +7A1F BING3 LIN3 +7A20 CHOU2 TIAO2 TIAO4 DIAO4 +7A21 ZU2 +7A22 YU4 +7A23 SU1 +7A24 LVE4 LVE3 +7A26 YI1 +7A27 XI4 +7A28 BIAN1 +7A29 JI4 +7A2A FU4 +7A2B BI1 +7A2C NUO4 +7A2D JIE1 +7A2E ZHONG3 ZHONG4 CHONG2 +7A2F ZONG1 +7A30 XU1 +7A31 CHENG1 CHENG4 CHEN4 +7A32 DAO4 +7A33 WEN3 +7A34 LIAN2 +7A35 ZI1 JIU1 +7A36 YU4 +7A37 JI4 ZE4 +7A38 XU4 +7A39 ZHEN3 ZHEN1 BIAN1 +7A3A ZHI4 +7A3B DAO4 +7A3C JIA4 +7A3D JI1 QI3 +7A3E GAO3 +7A3F GAO3 +7A40 GU3 GOU4 NOU4 +7A41 RONG2 +7A42 SUI4 +7A44 JI4 +7A45 KANG1 +7A46 MU4 +7A47 SHAN1 CAN3 +7A48 MEN2 MEI2 +7A49 ZHI4 +7A4A JI4 +7A4B LU4 +7A4C SU1 +7A4D JI1 +7A4E YING3 +7A4F WEN3 +7A50 QIU1 +7A51 SE4 +7A53 YI4 +7A54 HUANG2 +7A55 QIE4 +7A56 JI3 +7A57 SUI4 +7A58 XIAO1 +7A59 PU2 +7A5A JIAO1 +7A5B ZHUO1 +7A5C TONG2 ZHONG4 +7A5E LV3 +7A5F SUI4 +7A60 NONG2 +7A61 SE4 +7A62 HUI4 +7A63 RANG2 +7A64 NUO4 +7A65 YU4 +7A67 JI4 +7A68 TUI2 +7A69 WEN3 +7A6A CHENG1 +7A6B HUO4 +7A6C GONG3 KUANG4 +7A6D LV3 +7A6E BIAO1 +7A70 RANG2 RANG3 RENG2 +7A71 ZHUO1 +7A72 LI2 +7A73 ZAN4 +7A74 XUE2 JUE2 XUE4 +7A75 WA1 +7A76 JIU1 JIU4 +7A77 QIONG2 +7A78 XI4 XI1 +7A79 QIONG2 QIONG1 KONG1 +7A7A KONG1 KONG4 KONG3 +7A7B YU1 +7A7C SEN1 +7A7D JING3 +7A7E YAO4 +7A7F CHUAN1 +7A80 ZHUN1 TUN2 +7A81 TU1 TU2 +7A82 LAO2 +7A83 QIE4 +7A84 ZHAI3 ZE2 +7A85 YAO3 +7A86 BIAN3 +7A87 BAO2 +7A88 YAO3 YAO4 +7A89 BING3 +7A8A WA1 +7A8B ZHU2 KU1 +7A8C JIAO4 +7A8D QIAO4 +7A8E DIAO4 +7A8F WU1 +7A90 GUI1 WA1 +7A91 YAO2 +7A92 ZHI4 DIE2 +7A93 CHUANG1 CONG1 +7A94 YAO3 YAO4 +7A95 TIAO3 TIAO1 YAO2 +7A96 JIAO4 ZAO4 +7A97 CHUANG1 CONG1 +7A98 JIONG3 +7A99 XIAO1 +7A9A CHENG2 +7A9B KOU4 +7A9C CUAN4 +7A9D WO1 +7A9E DAN4 +7A9F KU1 +7AA0 KE1 +7AA1 ZHUI4 +7AA2 XU4 +7AA3 SU4 SU1 +7AA5 KUI1 KUI3 +7AA6 DOU4 +7AA8 YIN4 XUN1 YIN1 +7AA9 WO1 +7AAA WA1 +7AAB YA4 +7AAC YU2 DOU4 DOU1 +7AAD JU4 LOU2 +7AAE QIONG2 +7AAF YAO2 +7AB0 YAO2 +7AB1 TIAO4 TIAO3 +7AB2 CHAO2 +7AB3 YU3 YU2 +7AB4 TIAN2 +7AB5 DIAO4 +7AB6 JU4 LOU2 +7AB7 LIAO2 +7AB8 XI1 +7AB9 WU4 +7ABA KUI1 KUI3 +7ABB CHUANG1 +7ABC ZHAO1 CONG1 +7ABE KUAN3 +7ABF LONG2 +7AC0 CHENG1 +7AC1 CUI4 +7AC2 PIAO2 +7AC3 ZAO4 +7AC4 CUAN4 CUAN1 +7AC5 QIAO4 +7AC6 QIONG2 +7AC7 DOU4 DU2 +7AC8 ZAO4 +7AC9 LONG3 +7ACA QIE4 +7ACB LI4 WEI4 +7ACC CHU4 +7ACE FOU4 +7AD0 CHU4 QI4 +7AD1 HONG2 +7AD2 QI2 +7AD6 SHU4 +7AD7 MIAO4 MIAO3 +7AD8 JU3 QU3 +7AD9 ZHAN4 ZHAN1 +7ADA ZHU4 +7ADB LING2 +7ADC LONG2 +7ADD BING4 BANG4 +7ADE JING4 +7ADF JING4 +7AE0 ZHANG1 ZHANG4 +7AE2 SI4 +7AE3 JUN4 +7AE4 HONG2 +7AE5 TONG2 ZHONG1 +7AE6 SONG3 +7AE7 JING4 +7AE8 DIAO4 +7AE9 YI4 +7AEA SHU4 +7AEB JING4 +7AEC QU3 +7AED JIE2 +7AEE PING2 +7AEF DUAN1 +7AF0 SHAO2 +7AF1 ZHUAN3 +7AF2 CENG2 +7AF3 DENG1 +7AF4 CUI1 +7AF5 HUAI1 +7AF6 JING4 +7AF7 KAN4 +7AF8 JING4 +7AF9 ZHU2 +7AFA ZHU2 DU3 +7AFB LE4 +7AFC PENG2 +7AFD YU2 +7AFE CHI2 +7AFF GAN1 GAN4 GAN3 +7B00 MANG2 +7B01 ZHU2 +7B03 DU3 +7B04 JI1 +7B05 XIAO2 +7B06 BA1 +7B07 SUAN4 +7B08 JI2 +7B09 ZHEN3 +7B0A ZHAO4 +7B0B SUN3 +7B0C YA2 +7B0D ZHUI4 +7B0E YUAN2 +7B0F HU4 WEN3 WU4 +7B10 GANG1 HANG4 +7B11 XIAO4 +7B12 CEN2 +7B13 PI2 +7B14 BI3 +7B15 JIAN3 +7B16 YI3 +7B17 DONG1 +7B18 SHAN1 +7B19 SHENG1 +7B1A XIA2 +7B1B DI2 +7B1C ZHU2 +7B1D NA4 +7B1E CHI1 +7B1F GU1 +7B20 LI4 +7B21 QIE4 +7B22 MIN3 +7B23 BAO1 +7B24 TIAO2 SHAO4 +7B25 SI4 +7B26 FU2 +7B27 CE4 +7B28 BEN4 +7B29 PEI4 +7B2A DA2 +7B2B ZI3 +7B2C DI4 +7B2D LING2 +7B2E ZE2 ZUO2 ZHA4 +7B2F NU2 +7B30 FU2 +7B31 GOU3 +7B32 FAN2 FAN1 +7B33 JIA1 +7B34 GE3 GAO3 +7B35 FAN4 +7B36 SHI3 +7B37 MAO3 +7B38 PO3 +7B3A JIAN1 +7B3B QIONG2 +7B3C LONG2 LONG3 +7B3E BIAN1 +7B3F LUO4 +7B40 GUI4 +7B41 QU3 +7B42 CHI2 +7B43 YIN1 +7B44 YAO4 +7B45 XIAN3 +7B46 BI3 +7B47 QIONG2 +7B48 GUA1 KUO4 +7B49 DENG3 +7B4A JIAO3 +7B4B JIN1 QIAN2 +7B4C QUAN2 +7B4D SUN3 +7B4E RU2 +7B4F FA2 +7B50 KUANG1 +7B51 ZHU2 ZHU4 +7B52 TONG3 TONG2 DONG4 +7B53 JI1 +7B54 DA2 DA1 +7B55 XING2 HANG2 +7B56 CE4 +7B57 ZHONG4 +7B58 KOU4 +7B59 LAI2 +7B5A BI4 +7B5B SHAI1 +7B5C DANG1 +7B5D ZHENG1 +7B5E CE4 +7B5F FU1 +7B60 YUN2 JUN1 +7B61 TU2 +7B62 PA2 +7B63 LI4 +7B64 LANG2 +7B65 JU3 +7B66 GUAN3 +7B67 JIAN3 JIAN4 +7B68 HAN2 +7B69 TONG3 YONG3 DONG4 TONG2 +7B6A XIA2 +7B6B ZHI4 +7B6C CHENG2 +7B6D SUAN4 +7B6E SHI4 +7B6F ZHU4 +7B70 ZUO2 +7B71 XIAO3 +7B72 SHAO1 +7B73 TING2 +7B74 CE4 JIA1 +7B75 YAN2 +7B76 GAO3 +7B77 KUAI4 +7B78 GAN1 +7B79 CHOU2 +7B7B GANG4 +7B7C YUN2 +7B7E QIAN1 +7B7F XIAO3 +7B80 JIAN3 +7B81 PU2 +7B82 LAI2 +7B83 ZOU1 +7B84 BI4 BEI1 PAI2 +7B85 BI4 +7B86 BI4 +7B87 GE4 GE3 +7B88 CHI2 DAI4 TAI2 +7B89 GUAI3 +7B8A YU1 +7B8B JIAN1 +7B8C ZHAO4 +7B8D GU1 +7B8E CHI2 +7B8F ZHENG1 +7B90 JING1 QING4 QIANG1 +7B91 SHA4 JIE2 +7B92 ZHOU3 +7B93 LU4 +7B94 BO2 +7B95 JI1 +7B96 LIN2 +7B97 SUAN4 +7B98 JUN4 +7B99 FU2 +7B9A ZHA2 DA2 +7B9B GU1 +7B9C KONG1 +7B9D QIAN2 +7B9E QUAN1 +7B9F JUN4 +7BA0 CHUI2 +7BA1 GUAN3 +7BA2 YUAN1 WAN3 +7BA3 CE4 +7BA4 JU2 +7BA5 BO3 +7BA6 ZE2 +7BA7 QIE4 +7BA8 TUO4 +7BA9 LUO2 +7BAA DAN1 +7BAB XIAO1 XIAO3 +7BAC RUO4 NA4 +7BAD JIAN4 +7BAF BIAN1 +7BB0 SUN3 +7BB1 XIANG1 +7BB2 XIAN3 +7BB3 PING2 +7BB4 ZHEN1 JIAN3 +7BB5 SHENG3 XING1 XING3 +7BB6 HU2 +7BB7 SHI1 +7BB8 ZHU4 ZHUO2 +7BB9 YUE1 +7BBA CHUN3 +7BBB LV4 +7BBC WU1 +7BBD DONG3 +7BBE SHUO4 XIAO1 QIAO4 +7BBF JI2 +7BC0 JIE2 JIE1 +7BC1 HUANG2 +7BC2 XING1 +7BC3 MEI2 +7BC4 FAN4 +7BC5 CHUI2 CHUAN2 +7BC6 ZHUAN4 +7BC7 PIAN1 +7BC8 FENG1 +7BC9 ZHU2 ZHU4 +7BCA HONG2 +7BCB QIE4 +7BCC HOU2 +7BCD QIU1 +7BCE MIAO3 +7BCF QIAN4 +7BD1 KUI4 +7BD3 LOU3 +7BD4 YUN2 +7BD5 HE2 +7BD6 TANG2 +7BD7 YUE4 +7BD8 CHOU1 +7BD9 GAO1 +7BDA FEI3 +7BDB RUO4 +7BDC ZHENG1 +7BDD GOU1 +7BDE NIE4 +7BDF QIAN4 +7BE0 XIAO3 +7BE1 CUAN4 +7BE2 GONG1 LONG3 +7BE3 PANG2 PENG2 +7BE4 DU3 +7BE5 LI4 +7BE6 BI4 PI2 +7BE7 ZHUO2 +7BE8 CHU2 +7BE9 SHAI1 SHI1 +7BEA CHI2 +7BEB ZHU2 +7BEC QIANG1 +7BED LONG2 +7BEE LAN2 +7BEF JIAN1 +7BF0 BU4 +7BF1 LI2 +7BF2 HUI4 SUI4 +7BF3 BI4 +7BF4 DI2 +7BF5 CONG1 +7BF6 YAN1 +7BF7 PENG2 +7BF8 SEN1 CEN1 ZAN1 +7BF9 ZHUAN4 SUAN3 ZUAN3 ZUAN4 +7BFA PAI2 +7BFB PIAO4 PIAO3 +7BFC DOU1 +7BFD YU3 +7BFE MIE4 +7BFF ZHUAN1 TUAN2 +7C00 ZE2 ZHAI4 +7C01 XI3 +7C02 GUO2 +7C03 YI2 +7C04 HU4 +7C05 CHAN3 +7C06 KOU4 +7C07 CU4 COU4 CHUO4 +7C08 PING2 +7C09 CHOU4 ZAO4 +7C0A JI1 +7C0B GUI3 +7C0C SU4 +7C0D LOU3 LV3 JU4 +7C0E ZHA4 +7C0F LU4 +7C10 NIAN3 +7C11 SUO1 +7C12 CUAN4 +7C14 SUO1 +7C15 LE4 +7C16 DUAN4 +7C18 XIAO1 XIAO3 +7C19 BO2 +7C1A MI4 +7C1B SI1 +7C1C DANG4 +7C1D LIAO2 LAO3 +7C1E DAN1 +7C1F DIAN4 +7C20 FU3 +7C21 JIAN3 +7C22 MIN3 +7C23 KUI4 +7C24 DAI4 +7C25 JIAO1 QIAO2 +7C26 DENG1 +7C27 HUANG2 +7C28 SUN3 +7C29 LAO2 +7C2A ZAN1 ZAN3 +7C2B XIAO1 XIAO3 +7C2C LU4 DU4 +7C2D SHI4 +7C2E ZAN1 ZAN3 +7C30 PAI2 BEI1 +7C32 PAI2 +7C33 GAN4 GAN3 +7C34 JU4 +7C35 DU4 LU4 +7C36 LU4 +7C37 YAN2 +7C38 BO4 BO3 +7C39 DANG1 +7C3A SAI4 +7C3B KE1 ZHUA1 +7C3C LONG2 +7C3D QIAN1 +7C3E LIAN2 +7C3F BU4 BO2 +7C40 ZHOU4 +7C41 LAI4 +7C43 LAN2 +7C44 KUI4 +7C45 YU2 +7C46 YUE4 +7C47 HAO2 +7C48 ZHEN1 +7C49 TAI2 +7C4A TI4 DI2 +7C4B MI2 +7C4C CHOU2 TAO2 +7C4D JI2 JIE4 +7C50 TENG2 +7C51 ZHUAN4 XUAN3 +7C52 ZHOU4 +7C53 FAN1 FAN2 +7C54 SOU3 SHU4 +7C55 ZHOU4 +7C57 ZHUO2 +7C58 TENG2 +7C59 LU4 +7C5A LU2 +7C5B JIAN1 +7C5C TUO4 +7C5D YING2 +7C5E YU4 +7C5F LAI4 +7C60 LONG2 LONG3 +7C62 LIAN2 +7C63 LAN2 +7C64 QIAN1 +7C65 YUE4 +7C66 ZHONG1 +7C67 QU2 JU3 +7C68 LIAN2 +7C69 BIAN1 +7C6A DUAN4 +7C6B ZUAN3 +7C6C LI2 +7C6D SI1 +7C6E LUO2 +7C6F YING2 +7C70 YUE4 +7C71 ZHUO2 +7C72 YU4 XU1 +7C73 MI3 +7C74 DI2 ZA2 +7C75 FAN2 +7C76 SHEN1 +7C77 ZHE2 +7C78 SHEN1 +7C79 NV3 +7C7A XIE2 HE2 +7C7B LEI4 LI4 +7C7C XIAN1 +7C7D ZI3 +7C7E NI2 +7C7F CUN4 +7C81 QIAN1 +7C83 BI3 +7C84 BAN3 +7C85 WU4 +7C86 SHA1 +7C87 KANG1 +7C88 ROU3 +7C89 FEN3 +7C8A BI4 +7C8B CUI4 +7C8D LI2 +7C8E CHI3 +7C91 BA1 +7C92 LI4 +7C93 GAN1 +7C94 JU4 +7C95 PO4 +7C96 MO4 +7C97 CU1 +7C98 NIAN2 LIAN1 ZHAN1 +7C99 ZHOU4 +7C9A LI2 +7C9B SU4 +7C9C TIAO4 +7C9D LI4 +7C9E XI1 QI1 +7C9F SU4 +7CA0 HONG2 +7CA1 TONG2 +7CA2 ZI1 CI2 JI4 +7CA3 CE4 SAN3 +7CA4 YUE4 +7CA5 ZHOU1 YU4 ZHU4 +7CA6 LIN4 LIN2 +7CA7 ZHUANG1 +7CA8 BAI3 +7CAA FEN4 SAN1 +7CAE LIANG2 +7CAF XIAN4 +7CB0 FU2 FU1 +7CB1 LIANG2 +7CB2 CAN4 +7CB3 GENG1 JING1 +7CB4 LI3 +7CB5 YUE4 +7CB6 LU4 +7CB7 JU2 +7CB8 QI2 +7CB9 CUI4 SUI4 +7CBA BAI4 +7CBB ZHANG1 +7CBC LIN2 LIN3 +7CBD ZONG4 +7CBE JING1 QING2 JING4 +7CBF GUO3 +7CC1 SAN1 SAN3 +7CC2 SAN3 +7CC3 TANG2 +7CC4 BIAN1 +7CC5 ROU3 ROU2 +7CC6 MIAN4 +7CC7 HOU2 +7CC8 XU3 +7CC9 ZONG4 +7CCA HU2 HU1 HU4 +7CCB JIAN4 +7CCC ZAN2 ZAN1 +7CCD CI2 ZI1 +7CCE LI2 +7CCF XIE4 +7CD0 FU1 +7CD1 NI4 +7CD2 BEI4 +7CD3 GU3 +7CD4 XIU3 XIU1 +7CD5 GAO1 +7CD6 TANG2 +7CD7 QIU3 +7CD9 CAO1 +7CDA ZHUANG1 +7CDB TANG2 +7CDC MI2 MEI2 +7CDD SAN3 SAN1 +7CDE FEN4 +7CDF ZAO1 +7CE0 KANG1 +7CE1 JIANG4 +7CE2 MO2 +7CE3 SAN3 SAN1 +7CE4 SAN3 +7CE5 NUO4 +7CE6 XI1 CHI4 +7CE7 LIANG2 +7CE8 JIANG4 JIANG1 +7CE9 KUAI4 +7CEA BO2 +7CEB HUAN2 +7CED ZONG4 +7CEE XIAN4 +7CEF NUO4 +7CF0 TUAN2 +7CF1 NIE4 +7CF2 LI4 +7CF3 ZUO4 +7CF4 DI2 +7CF5 NIE4 +7CF6 TIAO4 +7CF7 LAN2 +7CF8 MI4 SI1 +7CF9 SI1 +7CFA JIU1 JIU3 JIAO3 +7CFB XI4 JI4 +7CFC GONG1 +7CFD ZHENG3 +7CFE JIU1 JIU3 +7CFF YOU4 +7D00 JI4 JI3 +7D01 CHA4 +7D02 ZHOU4 +7D03 XUN2 +7D04 YUE1 YAO1 YAO4 DI4 +7D05 HONG2 GONG1 JIANG4 +7D06 YU1 YU3 OU1 +7D07 HE2 GE1 JIE2 +7D08 WAN2 +7D09 REN4 +7D0A WEN4 WEN3 +7D0B WEN2 WEN4 +7D0C QIU2 +7D0D NA4 +7D0E ZI1 +7D0F TOU3 +7D10 NIU3 +7D11 FOU2 +7D12 JIE4 JI4 +7D13 SHU1 +7D14 CHUN2 QUAN2 TUN2 ZHUN1 ZHUN3 ZI1 +7D15 PI1 PI2 BI3 BI1 BI4 CHI3 +7D16 YIN3 ZHEN4 +7D17 SHA1 MIAO3 +7D18 HONG2 +7D19 ZHI3 +7D1A JI2 +7D1B FEN1 +7D1C YUN2 +7D1D REN4 REN2 +7D1E DAN3 +7D1F JIN1 JIN4 +7D20 SU4 +7D21 FANG3 BANG3 FANG4 +7D22 SUO3 +7D23 CUI4 ZU2 +7D24 JIU3 +7D25 ZHA2 ZA1 +7D27 JIN3 +7D28 FU4 +7D29 ZHI4 +7D2A CI3 +7D2B ZI3 +7D2C CHOU2 CHOU1 +7D2D HONG2 +7D2E ZA1 ZHA1 ZHA2 +7D2F LEI4 LEI3 LEI2 LV4 LIE4 +7D30 XI4 +7D31 FU2 +7D32 XIE4 YI4 +7D33 SHEN1 +7D34 BEI4 +7D35 ZHU4 +7D36 QU3 +7D37 LING2 +7D38 ZHU4 +7D39 SHAO4 CHAO1 +7D3A GAN4 +7D3B YANG1 +7D3C FU2 FEI4 +7D3D TUO2 +7D3E ZHEN3 TIAN3 +7D3F DAI4 +7D40 CHU4 ZHUO2 +7D41 SHI1 +7D42 ZHONG1 +7D43 XIAN2 +7D44 ZU3 QU1 +7D45 JIONG3 +7D46 BAN4 +7D47 JU4 QU2 +7D48 MO4 +7D49 SHU4 +7D4A ZUI4 +7D4C JING1 +7D4D REN2 REN4 +7D4E HENG4 HANG2 +7D4F XIE4 YI4 +7D50 JIE2 JI4 JIE1 +7D51 ZHU1 +7D52 CHOU2 +7D53 GUA4 +7D54 BAI3 +7D55 JUE2 +7D56 KUANG4 +7D57 HU2 +7D58 CI4 +7D59 GENG1 +7D5A GENG1 GENG4 +7D5B TAO1 +7D5C XIE2 JIE2 +7D5D KU4 +7D5E JIAO3 XIAO2 JIAO4 +7D5F QUAN1 +7D60 GAI3 +7D61 LUO4 LAO4 +7D62 XUAN4 XUN2 +7D63 BING1 BENG1 +7D64 XIAN4 +7D65 FU2 BEI4 +7D66 GEI3 JI3 XIA2 +7D67 TONG2 +7D68 RONG2 +7D69 TIAO4 +7D6A YIN1 +7D6B LEI3 +7D6C XIE4 +7D6D QUAN4 JUAN4 +7D6E XU4 NV4 QU4 CHU4 NA4 +7D6F GAI1 +7D70 DIE2 +7D71 TONG3 +7D72 SI1 +7D73 JIANG4 +7D74 XIANG2 +7D75 HUI4 +7D76 JUE2 +7D77 ZHI2 +7D78 JIAN3 +7D79 JUAN4 XUAN4 +7D7A CHI1 +7D7B MIAN3 WEN4 +7D7C ZHEN3 ZHI4 +7D7D LV3 +7D7E CHENG2 +7D7F QIU2 +7D80 SHU1 +7D81 BANG3 +7D82 TONG3 +7D83 XIAO1 SHAO1 +7D84 WAN4 HUAN3 +7D85 QIN1 XIAN1 +7D86 GENG3 BING3 +7D87 XIU3 +7D88 TI2 TI4 +7D89 XIU4 TOU4 +7D8A XIE2 +7D8B HONG2 +7D8C XI4 +7D8D FU2 +7D8E TING1 TING2 +7D8F SUI1 SUI2 SHUAI1 RUI2 TUO3 +7D90 DUI4 +7D91 KUN3 +7D92 FU1 +7D93 JING1 JING4 +7D94 HU4 +7D95 ZHI1 +7D96 YAN2 +7D97 JIONG3 +7D98 FENG2 +7D99 JI4 +7D9C ZONG1 ZONG4 ZENG4 +7D9D LIN2 CHEN1 SHEN1 +7D9E DUO3 +7D9F LI4 +7DA0 LV4 LU4 +7DA1 LIANG2 +7DA2 CHOU2 TAO1 DIAO4 +7DA3 QUAN3 +7DA4 SHAO4 +7DA5 QI4 +7DA6 QI2 +7DA7 ZHUN3 +7DA8 QI2 +7DA9 WAN3 +7DAA QIAN4 ZHENG1 +7DAB XIAN4 +7DAC SHOU4 +7DAD WEI2 YI2 +7DAE QI3 QING4 +7DAF TAO2 KU4 +7DB0 WAN3 +7DB1 GANG1 +7DB2 WANG3 +7DB3 BENG1 BENG3 +7DB4 ZHUI4 CHUO4 +7DB5 CAI3 +7DB6 GUO3 +7DB7 CUI4 +7DB8 LUN2 GUAN1 +7DB9 LIU3 +7DBA QI3 YI3 +7DBB ZHAN4 +7DBC BEI1 BI4 +7DBD CHUO4 CHAO1 +7DBE LING2 +7DBF MIAN2 +7DC0 QI1 +7DC1 QIE4 JI1 QI1 QI4 +7DC2 TAN1 TIAN2 +7DC3 ZONG1 +7DC4 GUN3 HUN4 HUN2 +7DC5 ZOU1 +7DC6 YI4 XI4 +7DC7 ZI1 +7DC8 XING4 +7DC9 LIANG3 +7DCA JIN3 +7DCB FEI1 +7DCC RUI2 +7DCD MIN2 +7DCE YU4 +7DCF ZONG3 +7DD0 FAN2 PAN2 PO2 +7DD1 LV4 +7DD2 XU4 +7DD3 YING1 +7DD4 ZHANG4 +7DD6 XU4 +7DD7 XIANG1 +7DD8 JIAN1 +7DD9 KE4 +7DDA XIAN4 +7DDB RUAN3 +7DDC MIAN2 +7DDD JI1 QI4 QI1 JI2 +7DDE DUAN4 +7DDF ZHONG4 +7DE0 DI4 +7DE1 MIN2 MIN3 MIAN2 HUN2 +7DE2 MIAO2 +7DE3 YUAN2 YUAN4 +7DE4 XIE4 +7DE5 BAO3 +7DE6 SI1 +7DE7 QIU1 +7DE8 BIAN1 BIAN4 BIAN3 +7DE9 HUAN3 +7DEA GENG1 GENG4 +7DEB CONG1 ZONG1 ZONG3 +7DEC MIAN3 +7DED WEI4 +7DEE FU4 +7DEF WEI3 +7DF0 YU2 +7DF1 GOU1 +7DF2 MIAO3 +7DF3 XIE2 +7DF4 LIAN4 +7DF5 ZONG1 ZONG4 +7DF6 BIAN4 PIAN2 BIAN3 +7DF7 YUN4 +7DF8 YIN1 +7DF9 TI2 +7DFA GUA1 GUO1 WO1 +7DFB ZHI4 +7DFC YUN1 +7DFD CHENG1 +7DFE CHAN2 +7DFF DAI4 +7E00 XIA2 +7E01 YUAN2 +7E02 ZONG3 ZONG1 +7E03 XU1 +7E06 GENG1 +7E08 YING2 +7E09 JIN4 +7E0A YI4 +7E0B ZHUI4 +7E0C NI4 +7E0D BANG1 +7E0E GU3 +7E0F PAN2 +7E10 ZHOU4 CHAO4 CU4 ZHOU1 +7E11 JIAN1 +7E12 CUO3 +7E13 QUAN3 QUAN4 +7E14 SHUANG3 +7E15 YUN1 YUN4 +7E16 XIA2 +7E17 CUI1 SUI1 SHUAI1 +7E18 XI1 +7E19 RONG2 +7E1A TAO1 +7E1B FU2 +7E1C YUN2 +7E1D CHEN1 ZHEN3 ZHEN1 +7E1E GAO3 +7E1F RU4 RONG3 +7E20 HU2 +7E21 ZAI3 ZAI4 +7E22 TENG2 +7E23 XIAN4 XUAN2 +7E24 SU4 +7E25 ZHEN3 +7E26 ZONG4 CONG2 ZONG3 +7E27 TAO1 +7E29 CAI4 +7E2A BI4 +7E2B FENG2 FENG4 +7E2C CU4 +7E2D LI2 +7E2E SUO1 SU4 +7E2F YIN3 YAN3 +7E30 XI3 +7E31 ZONG4 ZONG3 SONG3 CONG2 +7E32 LEI2 +7E33 ZHUAN4 +7E34 QIAN1 QIAN4 +7E35 MAN4 +7E36 ZHI2 +7E37 LV3 +7E38 MO4 MU4 +7E39 PIAO3 PIAO1 +7E3A LIAN2 +7E3B MI2 +7E3C XUAN4 +7E3D ZONG3 ZONG1 +7E3E JI1 +7E3F SHAN1 +7E40 SUI4 +7E41 FAN2 PO2 PAN2 +7E42 SHUAI4 +7E43 BENG1 BENG3 BENG4 +7E44 YI1 +7E45 SAO1 ZAO3 +7E46 MOU2 JIU1 LIAO3 MIAO4 MIU4 MU4 +7E47 YAO2 YOU2 ZHOU4 YAO1 +7E48 QIANG3 JIANG3 +7E49 HUN2 +7E4B XI4 +7E4D XIU4 +7E4E RAN2 +7E4F XUAN4 +7E50 SUI4 HUI4 +7E51 QIAO1 +7E52 ZENG1 CENG2 ZENG4 +7E53 ZUO3 +7E54 ZHI1 ZHI4 +7E55 SHAN4 +7E56 SAN3 +7E57 LIN2 +7E58 YU4 JU2 +7E59 FAN1 FAN2 +7E5A LIAO2 RAO3 +7E5B CHUO4 CHAO1 +7E5C ZUN1 ZUN3 +7E5D JIAN4 +7E5E RAO4 RAO3 +7E5F CHAN3 +7E60 RUI3 +7E61 XIU4 +7E62 HUI4 HUI2 +7E63 HUA4 +7E64 ZUAN3 +7E65 XI1 +7E66 QIANG3 JIANG3 +7E68 DA2 DA5 +7E69 SHENG2 MIN3 YING4 SHENG4 +7E6A HUI4 GUI4 +7E6B XI4 JI4 +7E6C SE4 +7E6D JIAN3 +7E6E JIANG1 +7E6F HUAN2 HUAN4 +7E70 ZAO3 QIAO1 SAO1 +7E71 CONG1 +7E72 JIE4 +7E73 JIAO3 ZHUO2 JIAO4 HE2 +7E74 BO4 BI4 +7E75 CHAN2 +7E76 YI4 +7E77 NAO2 +7E78 SUI4 +7E79 YI4 SHI4 +7E7A SHAI3 +7E7B XU1 RU2 +7E7C JI4 +7E7D BIN1 +7E7E QIAN3 +7E7F LAN2 +7E80 PU2 BU2 FU2 +7E81 XUN1 +7E82 ZUAN3 ZUAN4 +7E83 QI2 +7E84 PENG2 +7E85 LI4 +7E86 MO4 +7E87 LEI4 +7E88 XIE2 +7E89 ZUAN3 +7E8A KUANG4 +7E8B YOU1 +7E8C XU4 +7E8D LEI2 LEI4 LEI3 +7E8E XIAN1 +7E8F CHAN2 +7E91 LU2 +7E92 CHAN2 +7E93 YING1 +7E94 CAI2 +7E95 XIANG1 RANG2 +7E96 XIAN1 JIAN1 +7E97 ZUI1 +7E98 ZUAN3 +7E99 LUO4 +7E9A XI3 LI2 LI3 SHAI3 SHI1 SHI3 +7E9B DAO4 DU2 +7E9C LAN4 +7E9D LEI2 +7E9E LIAN4 +7E9F SI1 +7EA0 JIU1 JIU3 JIAO3 +7EA1 YU1 YU3 +7EA2 HONG2 HONG1 GONG1 +7EA3 ZHOU4 +7EA4 XIAN1 JIAN1 QIAN4 +7EA5 HE2 GE1 +7EA6 YUE1 +7EA7 JI2 +7EA8 WAN2 +7EA9 KUANG4 +7EAA JI4 JI3 +7EAB REN4 +7EAC WEI3 +7EAD YUN2 +7EAE HONG2 +7EAF CHUN2 QUAN2 TUN2 ZHUN1 ZHUN3 +7EB0 PI2 BI3 PI1 +7EB1 SHA1 +7EB2 GANG1 +7EB3 NA4 +7EB4 REN2 REN4 +7EB5 ZONG4 ZONG3 SONG3 +7EB6 LUN2 GUAN1 +7EB7 FEN1 +7EB8 ZHI3 +7EB9 WEN2 +7EBA FANG3 BANG3 +7EBB ZHU4 +7EBC YIN3 ZHEN4 +7EBD NIU3 +7EBE SHU1 +7EBF XIAN4 +7EC0 GAN4 +7EC1 XIE4 YI4 +7EC2 FU2 +7EC3 LIAN4 +7EC4 ZU3 +7EC5 SHEN1 +7EC6 XI4 +7EC7 ZHI1 ZHI4 +7EC8 ZHONG1 +7EC9 ZHOU4 +7ECA BAN4 +7ECB FU2 +7ECC ZHUO2 CHU4 +7ECD SHAO4 +7ECE YI4 +7ECF JING1 JING4 +7ED0 DAI4 +7ED1 BANG3 +7ED2 RONG2 +7ED3 JIE2 JIE1 JI4 +7ED4 KU4 +7ED5 RAO4 RAO3 +7ED6 DIE2 +7ED7 HENG4 HANG2 +7ED8 HUI4 +7ED9 GEI3 JI3 +7EDA XUAN4 +7EDB JIANG4 +7EDC LUO4 LAO4 +7EDD JUE2 +7EDE JIAO3 +7EDF TONG3 +7EE0 GENG3 +7EE1 XIAO1 +7EE2 JUAN4 +7EE3 XIU4 +7EE4 XI4 +7EE5 SUI1 SUI2 TUO3 +7EE6 TAO1 +7EE7 JI4 +7EE8 TI2 TI4 +7EE9 JI1 +7EEA XU4 +7EEB LING2 +7EEC YING1 +7EED XU4 +7EEE QI3 +7EEF FEI1 +7EF0 CHUO4 CHAO1 +7EF1 ZHANG3 +7EF2 GUN3 +7EF3 SHENG2 MIN3 YING4 +7EF4 WEI2 +7EF5 MIAN2 +7EF6 SHOU4 +7EF7 BENG1 BENG3 BENG4 +7EF8 CHOU2 TAO1 +7EF9 TAO2 KU4 +7EFA LIU3 +7EFB QUAN3 +7EFC ZONG4 ZONG1 ZENG4 +7EFD ZHAN4 +7EFE WAN3 +7EFF LV4 LU4 +7F00 ZHUI4 CHUO4 +7F01 ZI1 +7F02 KE4 +7F03 XIANG1 +7F04 JIAN1 +7F05 MIAN3 +7F06 LAN4 +7F07 TI2 +7F08 MIAO3 +7F09 QI4 JI1 QI1 +7F0A YUN1 YUN4 WEN1 +7F0B HUI4 +7F0C SI1 +7F0D DUO3 +7F0E DUAN4 +7F0F BIAN4 PIAN2 +7F10 XIAN4 +7F11 GOU1 +7F12 ZHUI4 +7F13 HUAN3 +7F14 DI4 +7F15 LV3 +7F16 BIAN1 BIAN4 +7F17 MIN2 +7F18 YUAN2 YUAN4 +7F19 JIN4 +7F1A FU2 +7F1B RU4 +7F1C ZHEN1 ZHEN3 +7F1D FENG2 FENG4 +7F1E SHUAI1 CUI1 +7F1F GAO3 +7F20 CHAN2 +7F21 LI2 +7F22 YI4 +7F23 JIAN1 +7F24 BIN1 +7F25 PIAO3 PIAO1 +7F26 MAN4 +7F27 LEI2 +7F28 YING1 +7F29 SUO1 SU4 +7F2A MOU2 JIU1 LIAO3 MIAO4 MIU4 MU4 +7F2B SAO1 ZAO3 +7F2C XIE2 +7F2D LIAO2 +7F2E SHAN4 +7F2F ZENG1 CENG2 +7F30 JIANG1 +7F31 QIAN3 +7F32 ZAO3 QIAO1 SAO1 +7F33 HUAN2 HUAN4 +7F34 JIAO3 ZHUO2 +7F35 ZUAN3 +7F36 FOU3 GUAN4 +7F37 XIE4 +7F38 GANG1 HONG2 +7F39 FOU3 +7F3A QUE1 +7F3B FOU3 +7F3D BO1 +7F3E PING2 +7F3F HOU4 XIANG4 +7F41 GANG1 +7F42 YING1 +7F43 YING1 +7F44 QING4 +7F45 XIA4 +7F46 GUAN4 +7F47 ZUN1 +7F48 TAN2 +7F4A QI4 +7F4B WENG4 +7F4C YING1 +7F4D LEI2 +7F4E TAN2 +7F4F LU2 +7F50 GUAN4 +7F51 WANG3 +7F52 WANG3 +7F53 GANG1 +7F54 WANG3 WANG2 +7F55 HAN3 HAN4 +7F57 LUO1 LUO2 LUO5 +7F58 FU2 FU1 +7F59 MI2 SHEN1 +7F5A FA2 +7F5B GU1 +7F5C ZHU3 +7F5D JU1 JIE1 +7F5E MAO2 +7F5F GU3 +7F60 MIN2 +7F61 GANG1 +7F62 BA4 BA5 BAI3 PI2 +7F63 GUA4 +7F64 TI2 +7F65 JUAN4 +7F66 FU2 FU1 +7F67 LIN2 SHEN1 +7F68 YAN3 +7F69 ZHAO4 +7F6A ZUI4 +7F6B GUA4 GUAI3 HUA4 +7F6C ZHUO2 +7F6D YU4 +7F6E ZHI4 +7F6F AN3 +7F70 FA2 +7F71 NAN3 LAN3 +7F72 SHU3 +7F73 SI1 +7F74 PI2 +7F75 MA4 +7F76 LIU3 +7F77 BA4 BA5 BAI3 PI2 PI4 BI3 +7F78 FA2 +7F79 LI2 +7F7A CHAO1 +7F7B WEI4 YU4 +7F7C BI4 +7F7D JI4 +7F7E ZENG1 +7F7F TONG2 CHONG1 +7F80 LIU3 +7F81 JI1 +7F82 JUAN4 +7F83 MI4 +7F84 ZHAO4 +7F85 LUO2 LUO1 LUO5 +7F86 PI2 +7F87 JI1 +7F88 JI1 +7F89 LUAN2 +7F8A YANG2 +7F8B MI3 MIE1 +7F8C QIANG1 +7F8D TA4 DA2 +7F8E MEI3 +7F8F YANG2 +7F90 YOU3 +7F91 YOU3 +7F92 FEN2 +7F93 BA1 +7F94 GAO1 +7F95 YANG4 +7F96 GU3 +7F97 QIANG1 +7F98 ZANG1 +7F99 GAO1 +7F9A LING2 +7F9B YI4 XI4 +7F9C ZHU4 +7F9D DI1 DI3 +7F9E XIU1 +7F9F QIAN1 QIANG3 +7FA0 YI2 +7FA1 XIAN4 YI2 YAN2 +7FA2 RONG2 +7FA3 QUN2 +7FA4 QUN2 +7FA5 QIANG3 QIAN1 +7FA6 HUAN2 +7FA7 SUO1 ZUI1 +7FA8 XIAN4 YI2 YAN2 +7FA9 YI4 +7FAB QIANG1 +7FAC XIAN2 +7FAD YU2 +7FAE GENG1 LANG2 +7FAF JIE2 +7FB0 TANG1 +7FB1 YUAN2 +7FB2 XI1 +7FB3 FAN2 +7FB4 SHAN1 +7FB5 FEN3 +7FB6 SHAN1 +7FB7 LIAN3 +7FB8 LEI2 LIAN2 +7FB9 GENG1 LANG2 +7FBA NOU2 +7FBB QIANG4 +7FBC CHAN4 +7FBD YU3 HU4 +7FBE GONG4 +7FBF YI4 +7FC0 CHONG1 CHONG2 +7FC1 WENG1 WENG3 +7FC2 FEN1 +7FC3 HONG2 +7FC4 CHI4 +7FC5 CHI4 +7FC6 CUI4 +7FC7 FU2 +7FC8 XIA2 +7FC9 PEN3 +7FCA YI4 +7FCB LA1 LA4 +7FCC YI4 +7FCD PI1 +7FCE LING2 +7FCF LIU4 LIAO4 LIU2 +7FD0 ZHI4 +7FD1 QU2 +7FD2 XI2 +7FD3 XIE2 +7FD4 XIANG2 +7FD5 XI4 +7FD6 XI4 +7FD7 QI2 +7FD8 QIAO2 QIAO4 +7FD9 HUI4 +7FDA HUI1 +7FDB XIAO1 SHU4 +7FDC SE4 SHA4 +7FDD HONG2 +7FDE JIANG1 +7FDF DI2 ZHAI2 +7FE0 CUI4 +7FE1 FEI3 +7FE2 TAO1 +7FE3 SHA4 +7FE4 CHI4 +7FE5 ZHU4 +7FE6 JIAN3 +7FE7 XUAN1 +7FE8 SHI4 CHI4 +7FE9 PIAN1 +7FEA ZONG1 +7FEB WAN4 WAN1 +7FEC HUI1 +7FED HOU2 +7FEE HE2 LI4 +7FEF HE4 HE2 +7FF0 HAN4 +7FF1 AO2 +7FF2 PIAO1 +7FF3 YI4 +7FF4 LIAN2 +7FF5 QU2 +7FF7 LIN2 +7FF8 PEN3 +7FF9 QIAO2 QIAO4 +7FFA AO2 +7FFB FAN1 +7FFC YI4 +7FFD HUI4 +7FFE XUAN1 +7FFF DAO4 +8000 YAO4 +8001 LAO3 +8003 KAO3 +8004 MAO4 +8005 ZHE3 ZHU1 +8006 QI2 SHI4 ZHI3 +8007 GOU3 +8008 GOU3 +8009 GOU3 +800A DIE4 +800B DIE4 +800C ER2 NENG2 +800D SHUA3 +800E RUAN3 +800F ER2 NAI4 +8010 NAI4 NENG2 +8011 ZHUAN1 DUAN1 +8012 LEI3 +8013 TING1 +8014 ZI3 +8015 GENG1 +8016 CHAO4 +8017 HAO4 MAO2 MAO4 +8018 YUN2 +8019 BA4 PA2 BA3 +801A PI1 +801B CHI2 +801C SI4 +801D CHU2 +801E JIA1 +801F JU4 +8020 HE2 HUO1 +8021 CHU2 +8022 LAO4 +8023 LUN3 +8024 JI2 JIE4 +8025 TANG3 +8026 OU3 +8027 LOU2 +8028 NOU4 +8029 JIANG3 GOU1 +802A PANG3 +802B ZE2 +802C LOU2 LOU3 +802D JI1 +802E LAO4 +802F HUO4 +8030 YOU1 +8031 MO4 +8032 HUAI2 +8033 ER3 RENG2 +8034 ZHE2 +8035 TING1 DING1 DING3 +8036 YE2 YE1 XIE2 +8037 DA1 ZHE2 +8038 SONG3 +8039 QIN2 +803A YUN2 +803B CHI3 +803C DAN1 +803D DAN1 +803E HONG2 +803F GENG3 +8040 ZHI2 ZHI4 +8042 NIE4 ZHE4 +8043 DAN1 +8044 ZHEN3 +8045 CHE4 +8046 LING2 +8047 ZHENG1 +8048 YOU3 +8049 WA1 +804A LIAO2 LIU2 +804B LONG2 +804C ZHI2 ZHI4 +804D NING2 NING3 +804E TIAO1 +804F ER2 +8050 YA4 +8051 DIE2 +8052 GUA1 GUO1 +8054 LIAN2 +8055 HAO4 +8056 SHENG4 +8057 LIE4 +8058 PIN4 PING4 +8059 JING1 +805A JU4 +805B BI4 +805C DI3 +805D GUO2 +805E WEN2 WEN4 +805F XU4 +8060 PING2 +8061 CONG1 +8064 TING2 +8065 YU3 +8066 CONG1 +8067 KUI2 +8069 KUI4 +806A CONG1 +806B LIAN2 +806C WENG3 +806D KUI4 +806E LIAN2 +806F LIAN2 +8070 CONG1 +8071 AO2 YOU2 +8072 SHENG1 +8073 SONG3 +8074 TING1 +8075 KUI4 +8076 NIE4 ZHE4 SHE4 ZHE2 YE4 +8077 ZHI2 ZHI4 TE4 +8078 DAN1 +8079 NING2 NING3 +807B JI1 JI2 JIAN4 +807C TING1 TING4 +807D TING1 TING4 +807E LONG2 +807F YU4 +8080 YU4 +8081 ZHAO4 +8082 SI4 +8083 SU4 +8084 YI4 SI4 +8085 SU4 +8086 SI4 TI4 +8087 ZHAO4 +8088 ZHAO4 +8089 ROU4 RU4 +808A YI4 +808B LEI4 LE4 LE1 JIN1 +808C JI1 JI4 +808D QIU2 +808E KEN3 +808F CAO4 +8090 GE1 +8091 DI4 +8092 HUAN2 +8093 HUANG1 +8094 YI3 +8095 REN4 +8096 XIAO4 XIAO1 +8097 RU3 +8098 ZHOU3 +8099 YUAN1 +809A DU4 DU3 +809B GANG1 +809C RONG2 CHEN1 +809D GAN1 +809E CHA1 +809F WO4 +80A0 CHANG2 +80A1 GU3 +80A2 ZHI1 SHI4 +80A3 HAN2 +80A4 FU1 +80A5 FEI2 BI3 +80A6 FEN2 BAN1 +80A7 PEI1 +80A8 PANG4 +80A9 JIAN1 XIAN2 +80AA FANG2 +80AB ZHUN1 CHUN2 TUN2 ZHUO1 +80AC YOU2 +80AD NA4 NV4 +80AE HANG2 GANG1 ANG1 KANG3 +80AF KEN3 +80B0 RAN2 +80B1 GONG1 +80B2 YU4 YO1 +80B3 WEN3 +80B4 YAO2 +80B5 JIN4 QI2 +80B6 PI2 +80B7 QIAN1 XU4 QIAN3 +80B8 XI4 XI1 BI4 +80B9 XI1 BI4 +80BA FEI4 PEI4 +80BB KEN3 +80BC JING3 +80BD TAI4 +80BE SHEN4 +80BF ZHONG3 +80C0 ZHANG4 +80C1 XIE2 +80C2 SHEN1 SHEN4 CHEN1 +80C3 WEI4 +80C4 ZHOU4 +80C5 DIE2 +80C6 DAN3 TAN2 TAN3 DA2 +80C7 FEI4 +80C8 BA2 +80C9 BO2 +80CA QU2 +80CB TIAN2 +80CC BEI4 BEI1 +80CD GUA1 GU1 HU4 +80CE TAI1 +80CF ZI3 FEI4 +80D0 KU1 PEI2 +80D1 ZHI1 ZHI2 ZHU1 +80D2 NI4 +80D3 PING2 +80D4 ZI4 +80D5 FU4 FU2 FU1 +80D6 PANG4 PAN2 PAN4 +80D7 ZHEN1 ZHEN3 ZHUN1 +80D8 XIAN2 +80D9 ZUO4 +80DA PEI1 +80DB JIA3 +80DC SHENG4 SHENG1 +80DD ZHI1 CHI1 DI4 +80DE BAO1 PAO2 PAO4 +80DF MU3 +80E0 QU1 +80E1 HU2 +80E2 KE1 +80E3 YI3 CHI3 +80E4 YIN4 +80E5 XU1 XU3 +80E6 YANG1 +80E7 LONG2 +80E8 DONG4 +80E9 KA3 +80EA LU2 +80EB JING4 KENG1 +80EC NU3 NU2 +80ED YAN1 +80EE PANG2 +80EF KUA4 KUA3 +80F0 YI2 +80F1 GUANG1 +80F2 HAI3 GAI1 GAI3 GEI3 +80F3 GE1 GE2 GA1 +80F4 DONG4 +80F5 ZHI4 CHI1 +80F6 XIAO2 JIAO1 JIAO3 +80F7 XIONG1 +80F8 XIONG1 +80F9 ER2 +80FA E4 AN4 +80FB XING2 HENG2 +80FC PIAN2 +80FD NENG2 NAI4 TAI2 TAI4 NAI2 XIONG2 +80FE ZI4 +8100 CHENG2 ZHENG1 +8101 TIAO4 TIAO3 +8102 ZHI1 ZHI3 +8103 CUI4 +8104 MEI2 +8105 XIE2 XIAN4 XI1 +8106 CUI4 +8107 XIE2 +8108 MAI4 MO4 +8109 MAI4 MO4 +810A JI2 JI3 +810D KUAI4 +810E SA4 +810F ZANG1 ZANG4 ZANG3 +8110 QI2 +8111 NAO3 +8112 MI3 +8113 NONG2 +8114 LUAN2 JI1 +8115 WAN3 WAN4 +8116 BO2 +8117 WEN3 +8118 GUAN3 WAN3 HUAN4 +8119 QIU2 +811A JIAO3 JUE2 +811B JING4 KENG1 +811C ROU2 +811D HENG1 +811E CUO3 QIE1 +811F LIE4 LE4 LUAN2 +8120 SHAN1 CHAN1 +8121 TING3 +8122 MEI2 +8123 CHUN2 +8124 SHEN4 +8125 QIAN3 QU1 JIA2 XIE2 +8126 TE4 +8127 ZUI1 JUAN1 +8128 CU4 +8129 XIU1 TIAO2 +812A XIN4 +812B TUO1 TUI4 +812C PAO1 BAO1 +812D CHENG2 +812E NEI3 +812F FU3 PU2 +8130 DOU4 +8131 TUO1 +8132 NIAO4 +8134 PI3 +8135 GU3 +8136 GUA1 LUO2 +8137 LI4 +8138 LIAN3 +8139 ZHANG4 CHANG2 +813A CUI4 +813B JIE2 +813C LIANG3 +813D ZHOU1 SHUI2 +813E PI2 PAI2 BI4 PI4 +813F BIAO1 BIAO4 BIAO3 +8140 LUN2 +8141 PIAN2 +8142 GUO4 +8143 KUI4 QUAN1 QUAN2 JUAN4 +8144 CHUI2 HOU2 CHUAI2 +8145 DAN4 +8146 TIAN3 +8147 NEI3 +8148 JING1 +8149 JIE1 +814A LA4 XI1 +814B YI4 YE4 +814C YAN1 A1 ANG1 AN1 +814D REN3 REN4 +814E SHEN4 +814F CHUO4 ZHUI4 +8150 FU3 +8151 FU3 +8152 JU1 +8153 FEI2 +8154 QIANG1 KONG4 +8155 WAN4 +8156 DONG4 +8157 PI2 PAI2 PI4 +8158 GUO2 +8159 ZONG1 +815A DING4 +815B WU1 +815C MEI2 +815D RUAN3 ER2 NAO4 +815E ZHUAN4 DUN4 TU2 +815F ZHI4 +8160 COU4 +8161 GUA1 LUO2 +8162 OU3 +8163 DI4 +8164 AN1 +8165 XING1 +8166 NAO3 NAO4 +8167 YU2 SHU4 +8168 CHUAN3 +8169 NAN3 +816A YUN4 +816B ZHONG3 +816C ROU2 +816D E4 +816E SAI1 +816F TU2 +8170 YAO1 +8171 JIAN4 QIAN2 +8172 WEI3 +8173 JIAO3 JUE2 +8174 YU2 +8175 JIA1 +8176 DUAN4 +8177 BI4 +8178 CHANG2 +8179 FU4 +817A XIAN4 +817B NI4 +817C MIAN3 +817D WA4 +817E TENG2 +817F TUI3 +8180 BANG3 BANG4 PANG1 PANG2 PANG3 +8181 QIAN1 LIAN2 +8182 LV3 +8183 WA4 +8184 SOU4 +8185 TANG2 +8186 SU4 +8187 ZHUI4 +8188 GE2 +8189 YI4 +818A BO2 PO4 LIE4 +818B LIAO2 +818C JI2 +818D PI2 +818E XIE2 +818F GAO1 GAO4 +8190 LV3 +8191 BIN4 +8193 CHANG2 +8194 LU4 +8195 GUO2 +8196 PANG1 +8197 CHUAI2 +8198 PIAO3 BIAO1 +8199 JIANG3 +819A FU1 +819B TANG2 TANG1 +819C MO4 MO2 +819D XI1 +819E ZHUAN1 CHUN2 +819F LV4 +81A0 JIAO1 JIAO3 +81A1 YING4 +81A2 LV2 LIU2 LOU2 +81A3 ZHI4 +81A5 CHUN1 +81A6 LIAN3 LIN4 +81A7 TONG2 +81A8 PENG2 PENG4 +81A9 NI4 +81AA ZHA4 ZHAI4 +81AB LIAO2 +81AC CUI4 +81AD GUI1 +81AE XIAO1 +81AF TENG1 +81B0 FAN2 +81B1 ZHI2 ZHU1 +81B2 JIAO1 +81B3 SHAN4 +81B4 HU1 WU3 MEI2 WU2 +81B5 CUI4 +81B6 RUN4 +81B7 XIANG1 +81B8 SUI3 +81B9 FEN4 +81BA YING1 +81BB DAN4 SHAN1 TAN3 +81BC ZHUA1 +81BD DAN3 +81BE KUAI4 +81BF NONG2 +81C0 TUN2 +81C1 LIAN2 +81C2 BI4 BEI5 BEI4 +81C3 YONG3 YONG1 +81C4 JUE2 +81C5 CHU4 +81C6 YI4 YI3 +81C7 JUAN3 +81C8 LA4 +81C9 LIAN3 +81CA SAO1 SAO4 +81CB TUN2 +81CC GU3 +81CD QI2 +81CE CUI4 +81CF BIN4 +81D0 XUN1 +81D1 RU2 ER2 NAO4 +81D2 HUO4 +81D3 ZANG4 +81D4 XIAN4 +81D5 BIAO1 PIAO3 +81D6 XING4 +81D7 KUAN1 +81D8 LA4 +81D9 YAN1 +81DA LU2 LV3 +81DB HUO4 +81DC ZANG1 ZA1 ZAN1 +81DD LUO3 +81DE QU2 +81DF ZANG4 +81E0 LUAN2 +81E1 NI2 +81E2 ZANG1 ZA1 ZAN1 +81E3 CHEN2 +81E4 QIAN1 +81E5 WO4 +81E6 GUANG4 +81E7 ZANG1 CANG2 ZANG4 ZANG2 +81E8 LIN2 LIN4 +81E9 GUANG4 +81EA ZI4 +81EB JIAO3 +81EC NIE4 +81ED CHOU4 XIU4 +81EE JI4 +81EF GAO1 +81F0 CHOU4 +81F1 MIAN2 +81F2 NIE4 +81F3 ZHI4 DIE2 +81F4 ZHI4 ZHUI4 +81F5 GE2 +81F6 JIAN4 ZUN4 +81F7 DIE2 +81F8 ZHI4 +81F9 XIU1 +81FA TAI2 YI2 TAI1 +81FB ZHEN1 +81FC JIU4 +81FD XIAN4 +81FE YU2 YONG3 YU3 KUI4 +81FF CHA1 +8200 YAO3 +8201 YU2 +8202 CHONG1 CHUANG1 ZHONG1 +8203 XI4 QIAO3 TUO1 QUE4 +8204 XI4 QIAO3 +8205 JIU4 +8206 YU2 +8207 YU3 YU4 YU2 +8208 XING1 XING4 +8209 JU3 +820A JIU4 +820B XIN4 WEN4 +820C SHE2 GUA1 +820D SHE4 SHE3 SHI4 +820F JIU3 +8210 SHI4 +8211 TAN1 +8212 SHU1 YU4 +8213 SHI4 +8214 TIAN3 TAN1 +8215 DAN4 TAN4 +8216 PU4 PU1 +8217 PU4 PU1 +8218 GUAN3 +8219 HUA4 +821A TAN1 TIAN4 +821B CHUAN3 +821C SHUN4 +821D XIA2 +821E WU3 +821F ZHOU1 +8220 DAO1 +8221 GANG1 CHUAN2 XIANG1 +8222 SHAN1 +8223 YI3 +8225 PA1 +8226 TAI4 +8227 FAN2 +8228 BAN3 +8229 CHUAN2 +822A HANG2 +822B FANG3 +822C BAN1 BO1 PAN2 BAN3 +822D QUE4 BI3 +822F ZHONG1 +8230 JIAN4 +8231 CANG1 +8232 LING2 +8233 ZHU2 ZHOU4 +8234 ZE2 +8235 DUO4 TUO2 +8236 BO2 +8237 XIAN2 +8238 GE3 +8239 CHUAN2 +823A XIA2 JIA2 JIA3 +823B LU3 LU2 +823C HONG2 +823D PANG2 +823E XI1 +8240 FU2 +8241 ZAO4 +8242 FENG2 +8243 LI2 +8244 SHAO1 SHAO4 +8245 YU2 +8246 LANG2 +8247 TING3 +8249 WEI3 +824A BO2 +824B MENG3 +824C NIAN4 +824D JU1 +824E HUANG2 +824F SHOU3 +8250 ZONG1 +8251 BIAN4 +8252 MAO4 MU4 +8253 DIE2 +8255 BANG4 +8256 CHA1 +8257 YI4 +8258 SAO1 SOU1 +8259 CANG1 +825A CAO2 +825B LOU2 +825C DAI4 +825E YAO4 +825F TONG2 CHONG1 ZHUANG4 +8261 DANG1 +8262 TAN2 QIANG2 +8263 LU3 +8264 YI3 +8265 JIE4 +8266 JIAN4 +8267 HUO4 +8268 MENG2 +8269 QI2 +826A LU3 +826B LU2 LU3 +826C CHAN2 +826D SHUANG1 +826E GEN4 GEN3 HEN2 +826F LIANG2 LIANG3 +8270 JIAN1 +8271 JIAN1 +8272 SE4 SHAI3 +8273 YAN4 +8274 FU2 BO2 PEI4 +8275 PING2 +8276 YAN4 +8277 YAN4 +8278 CAO3 ZAO4 +827A YI4 +827B LE4 JI2 +827C TING1 DING3 +827D QIU2 JIU3 JIAO1 +827E AI4 YI4 +827F NAI3 RENG2 RENG4 +8280 TIAO2 +8281 JIAO1 +8282 JIE2 JIE1 +8283 PENG2 +8284 WAN2 +8285 YI4 +8286 CHAI1 +8287 MIAN2 +8288 MIE1 MI3 +8289 GAN1 +828A QIAN1 QIAN4 +828B YU4 HU1 XU1 YU3 YU2 +828C YU4 YU2 XU1 YU3 +828D SHAO2 XIAO4 QUE4 SHUO4 DI4 +828E QIONG1 XIONG1 +828F TU3 DU4 +8290 XIA4 HU4 +8291 QI3 +8292 MANG2 WANG2 HUANG3 HUANG1 +8293 ZI3 ZI4 +8294 HUI3 HUI4 +8295 SUI1 WEI3 +8296 ZHI4 +8297 XIANG1 XIANG3 +8298 PI2 BI4 BI1 +8299 FU2 +829A TUN2 CHUN1 +829B WEI3 +829C WU2 +829D ZHI1 +829E QI3 +829F SHAN1 WEI3 +82A0 WEN2 +82A1 QIAN4 +82A2 REN2 +82A3 FU2 FOU3 FU1 FOU2 +82A4 KOU1 +82A5 JIE4 GAI4 +82A6 LU2 LU3 +82A7 XU4 ZHU4 +82A8 JI2 JI1 +82A9 QIN2 YIN2 +82AA QI2 CHI2 +82AB YUAN2 YAN2 +82AC FEN1 FEN2 +82AD BA1 PA1 +82AE RUI4 RUO4 +82AF XIN1 XIN4 +82B0 JI4 +82B1 HUA1 +82B2 HUA1 +82B3 FANG1 +82B4 WU4 HU1 +82B5 JUE2 +82B6 GOU1 +82B7 ZHI3 +82B8 YUN2 YI4 YUN4 +82B9 QIN2 +82BA AO3 +82BB CHU2 +82BC MAO4 MAO2 +82BD YA2 +82BE FEI4 FU4 FU2 +82BF RENG4 +82C0 HANG2 +82C1 CONG1 +82C2 YIN2 +82C3 YOU3 +82C4 BIAN4 +82C5 YI4 +82C7 WEI3 +82C8 LI4 +82C9 PI3 +82CA E4 +82CB XIAN4 HUAN2 +82CC CHANG2 +82CD CANG1 CANG3 +82CE MENG2 ZHU4 +82CF SU1 +82D0 YI2 TI2 DI4 +82D1 YUAN4 YUAN3 YU4 YUN3 YUN1 YUAN1 +82D2 RAN3 +82D3 LING2 LIAN2 +82D4 TAI2 TAI1 +82D5 TIAO2 SHAO2 +82D6 DI3 +82D7 MIAO2 +82D8 QIONG3 QING3 +82D9 LI4 +82DA YONG4 +82DB KE1 HE1 HE2 +82DC MU4 +82DD PEI4 +82DE BAO1 PAO2 BIAO1 +82DF GOU3 GOU1 +82E0 MIN2 +82E1 YI3 SI4 +82E2 YI3 +82E3 JU4 QU3 +82E4 PI1 PIE3 PI3 +82E5 RUO4 RE3 RE2 RE4 +82E6 KU3 GU3 +82E7 ZHU4 NING2 +82E8 NI3 +82E9 BO2 +82EA BING3 +82EB SHAN1 SHAN4 TIAN1 CHAN1 +82EC QIU2 +82ED YAO3 +82EE XIAN1 +82EF BEN3 +82F0 HONG2 +82F1 YING1 YANG1 +82F2 ZHA3 ZHA4 ZUO2 +82F3 DONG1 +82F4 JU1 CHA2 ZHA3 ZU1 JIE1 BAO1 XIE2 +82F5 DIE2 +82F6 NIE2 +82F7 GAN1 +82F8 HU1 +82F9 PING2 PIN2 PENG1 +82FA MEI2 MEI4 +82FB FU2 PU2 +82FC SHENG1 +82FD GU1 +82FE BI4 +82FF WEI4 +8300 FU2 BO2 +8301 ZHUO2 ZHU2 +8302 MAO4 +8303 FAN4 +8304 QIE2 JIA1 +8305 MAO2 +8306 MAO3 MAO2 +8307 BA2 PEI4 +8308 ZI3 CHAI2 CI2 CI3 +8309 MO4 +830A ZI1 CI2 +830B DI3 +830C CHI2 +830D JI4 +830E JING1 +830F LONG2 +8311 NIAO3 +8313 XUE2 +8314 YING2 +8315 QIONG2 +8316 GE2 GE4 +8317 MING2 MING3 +8318 LI4 +8319 RONG2 +831A YIN4 +831B GEN4 JIAN4 +831C QIAN4 QIAN1 XI1 +831D CHAI3 ZHI3 +831E CHEN2 +831F YU4 +8320 XIU1 HAO1 +8321 ZI4 +8322 LIE4 +8323 WU2 +8324 JI4 DUO1 +8325 GUI1 GUI4 KUI1 +8326 CE4 +8327 CHONG2 JIAN3 +8328 CI2 +8329 GOU3 HOU4 +832A GUANG1 +832B MANG2 HUANG3 +832C CHI2 CHA2 +832D JIAO1 XIAO3 XIAO4 QIAO4 +832E JIAO1 +832F FU2 +8330 YU2 +8331 ZHU1 +8332 ZI1 CI1 +8333 JIANG1 +8334 HUI2 +8335 YIN1 +8336 CHA2 +8337 FA2 FEI4 +8338 RONG2 RONG3 +8339 RU2 +833A CHONG1 +833B MANG3 +833C TONG2 +833D ZHONG4 +833F ZHU2 +8340 XUN2 +8341 HUAN2 +8342 KUA1 +8343 QUAN2 CHUO4 +8344 GAI1 +8345 DA1 DA2 TA4 +8346 JING1 +8347 XING4 +8348 CHUAN3 QUAN4 +8349 CAO3 ZAO4 +834A JING1 +834B ER2 +834C AN4 +834D SHOU1 QIAO2 +834E CHI2 +834F REN3 +8350 JIAN4 +8351 TI2 YI2 +8352 HUANG1 HUANG3 KANG1 +8353 PING2 PING1 +8354 LI4 +8355 JIN1 +8356 LAO3 CHA1 +8357 SHU4 +8358 ZHUANG1 +8359 DA2 +835A JIA2 +835B RAO2 YAO2 +835C BI4 +835D ZE2 CE4 +835E QIAO2 JIAO1 +835F HUI4 +8360 QI2 JI4 QI5 +8361 DANG4 +8363 RONG2 +8364 HUN1 XUN1 +8365 YING2 +8366 LUO4 +8367 YING2 +8368 XUN2 QIAN2 TAN2 +8369 JIN4 +836A SUN1 +836B YIN4 YIN1 +836C MAI3 +836D HONG2 +836E ZHOU4 +836F YAO4 YUE4 +8370 DU4 +8371 WEI3 +8372 CHU4 +8373 DOU4 +8374 FU1 +8375 REN3 +8376 YIN2 +8377 HE2 HE4 KE1 HE1 +8378 BI2 BO2 +8379 BU4 +837A YUN2 YUN3 +837B DI2 +837C TU2 CHA2 SHU1 YE2 +837D SUI1 WEI1 WEI3 +837E SUI1 +837F CHENG2 +8380 CHEN2 +8381 WU2 +8382 BIE2 +8383 XI1 +8384 GENG3 +8385 LI4 +8386 FU3 PU2 +8387 ZHU4 +8388 MO4 +8389 LI4 LI2 CHI2 +838A ZHUANG1 +838B JI2 ZUO2 +838C DUO2 TUO4 +838D QIU2 +838E SHA1 SUO1 SUI1 +838F SUO1 +8390 CHEN2 +8391 FENG1 +8392 JU3 +8393 MEI2 MEI4 +8394 MENG2 +8395 XING4 +8396 JING1 YING1 +8397 CHE1 +8398 SHEN1 XIN1 +8399 JUN1 +839A YAN2 +839B TING2 TING3 +839C DIAO4 YOU2 DI2 +839D CUO4 +839E GUAN1 GUAN3 WAN3 +839F HAN4 +83A0 YOU3 XIU4 +83A1 CUO4 +83A2 JIA2 +83A3 WANG2 +83A4 YOU2 +83A5 NIU3 +83A6 SHAO1 +83A7 XIAN4 HUAN2 WAN4 +83A8 LANG2 LANG4 LIANG2 +83A9 FU2 PIAO3 +83AA E2 +83AB MO4 MU4 +83AC WEN4 WAN3 MIAN3 +83AD JIE2 +83AE NAN2 +83AF MU4 +83B0 KAN3 +83B1 LAI2 +83B2 LIAN2 +83B3 SHI2 SHI4 +83B4 WO1 +83B6 LIAN3 LIAN2 XIAN1 +83B7 HUO4 +83B8 YOU2 +83B9 YING2 +83BA YING1 +83BC CHUN2 +83BD MANG3 MANG2 +83BE MANG3 +83BF CI4 +83C0 WAN3 YUAN4 YU4 YUN4 +83C1 JING1 +83C2 DI1 DI4 +83C3 QU2 +83C4 DONG1 +83C5 JIAN1 GUAN1 +83C6 ZOU1 +83C7 GU1 +83C8 LA1 +83C9 LU4 +83CA JU2 +83CB WEI4 +83CC JUN1 JUN4 +83CD NIE4 +83CE KUN1 JUN4 +83CF HE2 GE1 +83D0 PU2 +83D1 ZI1 ZAI1 ZI4 +83D2 GAO3 +83D3 GUO3 +83D4 FU2 BO2 +83D5 LUN2 LUN4 +83D6 CHANG1 +83D7 CHOU2 +83D8 SONG1 +83D9 CHUI2 +83DA ZHAN4 +83DB MEN2 +83DC CAI4 +83DD BA2 BI4 +83DE LI2 +83DF TU4 TU2 +83E0 BO1 +83E1 HAN4 +83E2 BAO4 +83E3 QIN4 +83E4 JUAN3 +83E5 XI1 SI1 +83E6 QIN2 +83E7 DI3 +83E8 JIE1 +83E9 PU2 BEI4 BU4 BO2 +83EA DANG4 +83EB JIN3 JIN4 QIN2 +83EC ZHAO3 +83ED TAI2 +83EE GENG1 +83EF HUA2 HUA1 HUA4 +83F0 GU1 +83F1 LING2 +83F2 FEI1 FEI3 FEI4 +83F3 JIN1 +83F4 AN1 AN3 +83F5 WANG3 +83F6 BENG3 PENG2 +83F7 ZHOU3 +83F8 YAN1 YU1 YU4 +83F9 JU1 ZU1 JU4 +83FA JIAN1 +83FB LIN3 MA2 +83FC TAN3 +83FD SHU2 SHU1 JIAO1 +83FE TIAN2 +83FF DAO4 +8400 HU3 +8401 QI2 JI1 +8402 HE2 +8403 CUI4 +8404 TAO2 +8405 CHUN1 CHUN3 +8406 PI4 BI4 BEI1 BA2 +8407 CHANG2 +8408 HUAN2 +8409 FEI2 +840A LAI2 +840B QI1 +840C MENG2 MING2 +840D PING2 +840E WEI1 WEI3 +840F DAN4 +8410 SHA4 +8411 HUAN2 TUI1 ZHUI1 +8412 YAN3 +8413 YI2 +8414 TIAO2 +8415 QI2 +8416 WAN3 +8417 CE4 +8418 NAI4 +841A TUO4 +841B JIU1 +841C TIE1 +841D LUO2 +8420 MENG2 +8424 YING2 +8425 YING2 +8426 YING2 +8427 XIAO1 +8428 SA4 +8429 QIU1 +842A KE1 +842B XIANG4 +842C WAN4 +842D YU3 JU3 +842E YU4 +842F FU4 +8430 LIAN4 +8431 XUAN1 +8432 YUAN2 XUAN1 +8433 NAN2 +8434 ZE2 CE4 +8435 WO1 +8436 CHUN3 +8437 XIAO1 +8438 YU2 +8439 PIAN1 BIAN1 +843A MAO4 +843B AN1 +843C E4 +843D LUO4 LA4 LAO4 LUO1 +843E YING2 +843F HUO2 +8440 GUA1 +8441 JIANG1 +8442 MIAN3 +8443 ZUO2 +8444 ZUO4 +8445 JU1 ZU1 +8446 BAO3 BAO1 +8447 ROU2 +8448 XI3 +8449 YE4 XIE2 SHE4 +844A AN1 +844B QU2 +844C JIAN1 +844D FU2 +844E LV4 +844F JING1 +8450 PEN2 +8451 FENG1 FENG4 +8452 HONG2 +8453 HONG2 +8454 HOU2 +8455 YAN2 +8456 TU2 TU1 +8457 ZHU4 ZHUO2 CHU2 ZHAO1 ZHAO2 ZHE5 +8458 ZI1 +8459 XIANG1 +845A SHEN4 REN4 +845B GE2 GE3 +845C JIE2 QIA1 +845D JING4 +845E MI3 +845F HUANG2 +8460 SHEN1 +8461 PU2 BEI4 +8462 GAI4 GE3 HE2 +8463 DONG3 ZHONG3 +8464 ZHOU4 +8465 QIAN2 +8466 WEI3 +8467 BO2 +8468 WEI1 +8469 PA1 +846A JI4 JIE4 +846B HU2 +846C ZANG4 +846D JIA1 XIA2 +846E DUAN4 +846F YAO4 YUE4 +8470 JUN4 SUI1 +8471 CONG1 CHUANG1 +8472 QUAN2 +8473 WEI1 +8474 ZHEN1 QIAN2 XIAN2 +8475 KUI2 +8476 TING2 DING3 +8477 HUN1 XUN1 +8478 XI3 +8479 SHI1 +847A QI4 +847B LAN2 +847C ZONG1 +847D YAO1 +847E YUAN1 +847F MEI2 +8480 YUN1 +8481 SHU4 +8482 DI4 +8483 ZHUAN4 +8484 GUAN1 +8486 XUE1 +8487 CHAN3 +8488 KAI3 +8489 KUI4 KUAI4 +848B JIANG3 JIANG1 +848C LOU2 LIU3 +848D WEI2 WEI3 +848E PAI4 +8490 SOU1 +8491 YIN1 +8492 SHI1 +8493 CHUN2 +8494 SHI2 SHI4 +8495 YUN1 +8496 ZHEN1 +8497 LANG4 +8498 NU2 +8499 MENG2 MENG1 MENG3 MANG2 +849A HE2 +849B QUE1 +849C SUAN4 +849D YUAN2 +849E LI4 +849F JU3 +84A0 XI2 XI1 +84A1 BANG4 PANG2 +84A2 CHU2 +84A3 XU2 +84A4 TU2 +84A5 LIU2 +84A6 WO4 YUE1 +84A7 ZHEN1 DIAN3 +84A8 QIAN4 +84A9 ZU1 +84AA PO4 +84AB CUO1 +84AC YUAN1 +84AD CHU2 +84AE YU4 +84AF KUAI3 KUAI4 +84B0 PAN2 +84B1 PU2 +84B2 PU2 BO2 +84B3 NA4 +84B4 SHUO4 +84B5 XI1 XI2 XI4 +84B6 FEN2 +84B7 YUN2 +84B8 ZHENG1 +84B9 JIAN1 +84BA JI2 +84BB RUO4 +84BC CANG1 CANG3 +84BD EN1 +84BE MI2 +84BF HAO1 GAO3 +84C0 SUN1 +84C1 ZHEN1 QIN2 +84C2 MING2 +84C3 HUO4 +84C4 XU4 +84C5 LIU2 +84C6 XI2 +84C7 GU3 GU1 +84C8 LANG2 +84C9 RONG2 +84CA WENG3 WENG4 +84CB GAI4 GE3 HE2 +84CC CUO4 +84CD SHI1 +84CE TANG2 +84CF LUO3 +84D0 RU4 +84D1 SUO1 SAI1 SUI1 +84D2 XIAN1 +84D3 BEI4 +84D4 YAO3 +84D5 GUI4 +84D6 BI4 BI1 +84D7 ZONG3 +84D8 GUN3 +84DA XIU1 +84DB CE4 +84DD LAN2 LA5 +84DF JI4 +84E0 LI2 +84E1 CAN1 SHEN1 +84E2 LANG2 +84E3 YU4 +84E5 YING4 YING2 +84E6 MO4 +84E7 DIAO4 TIAO1 TIAO2 +84E8 TIAO1 TIAO2 +84E9 MAO4 +84EA TONG1 +84EB ZHU2 +84EC PENG2 PENG4 +84ED AN1 +84EE LIAN2 LIAN3 +84EF CONG1 +84F0 XI3 +84F1 PING2 +84F2 QIU1 XU1 +84F3 JIN4 +84F4 CHUN2 +84F5 JIE2 +84F6 WEI3 +84F7 TUI1 +84F8 CAO2 +84F9 YU3 +84FA YI4 +84FB JI2 +84FC LIAO3 LU4 LAO3 LIU3 +84FD BI4 +84FE LU3 +84FF SU4 XU4 +8500 BU4 POU3 +8501 ZHANG1 +8502 LUO2 +8503 JIANG4 +8504 MAN4 +8505 YAN2 +8506 LING2 +8507 JI4 XI4 +8508 PIAO3 BIAO1 +8509 GUN3 +850A HAN3 HAN4 +850B DI2 +850C SU4 +850D LU4 +850E SHE4 +850F SHANG1 +8510 DI2 +8511 MIE4 +8512 XUN1 +8513 MAN4 WAN4 MAN2 +8514 BO5 BO2 +8515 DI4 +8516 CUO2 +8517 ZHE4 +8518 SEN1 SAN1 SHEN1 +8519 XUAN4 +851A WEI4 YU4 +851B HU2 +851C AO2 +851D MI3 +851E LOU2 LIU3 JU4 LV3 +851F CU4 COU4 CHUO4 +8520 ZHONG1 +8521 CAI4 SA4 CA1 +8522 PO2 +8523 JIANG3 JIANG1 +8524 MI4 +8525 CONG1 +8526 NIAO3 +8527 HUI4 SUI4 +8528 JUN4 +8529 YIN2 +852A JIAN4 +852B YAN1 NIAN1 YAN4 +852C SHU1 XU1 SHU3 +852D YIN4 YIN1 +852E KUI4 +852F CHEN2 +8530 HU4 +8531 SHA1 +8532 KOU4 +8533 QIAN4 +8534 MA2 +8535 ZANG1 CANG2 +8537 QIANG2 SE4 +8538 DOU1 +8539 LIAN4 LIAN2 +853A LIN4 +853B KOU4 +853C AI3 +853D BI4 FU4 +853E LI2 +853F WEI2 +8540 JI2 +8541 XUN2 QIAN2 TAN2 +8542 SHENG4 +8543 FAN2 FAN1 BO2 PI2 BO1 +8544 MENG2 +8545 OU3 +8546 CHAN3 +8547 DIAN3 +8548 XUN4 TAN2 +8549 JIAO1 QIAO2 QIAO1 +854A RUI3 JUAN3 +854B RUI3 +854C LEI3 +854D YU2 +854E QIAO2 JIAO1 +854F CHU2 ZHU1 ZHA1 +8550 HUA2 +8551 JIAN1 +8552 MAI3 +8553 YUN2 +8554 BAO1 +8555 YOU2 +8556 QU2 +8557 LU4 +8558 RAO2 YAO2 +8559 HUI4 +855A E4 +855B TENG2 TI2 +855C FEI3 +855D JUE2 ZUI4 +855E ZUI4 JUE2 ZHUO2 +855F FA4 FEI4 +8560 RU2 +8561 FEN2 +8562 KUI4 KUAI4 +8563 SHUN4 +8564 RUI2 +8565 YA3 +8566 XU1 +8567 FU4 +8568 JUE2 +8569 DANG4 TANG1 TANG4 +856A WU2 WU3 +856B TONG2 DONG3 +856C SI1 +856D XIAO1 +856E XI4 +856F LONG2 +8570 YUN4 WEN1 +8572 QI2 +8573 JIAN1 +8574 YUN4 +8575 SUN1 +8576 LING2 +8577 YU4 +8578 XIA2 +8579 YONG1 WENG4 +857A JI2 QIE4 +857B HONG4 HONG2 +857C SI4 +857D NONG2 +857E LEI3 +857F XUAN1 +8580 YUN4 +8581 YU4 +8582 XI2 +8583 HAO4 HAO3 +8584 BO2 BAO2 BO4 BU4 +8585 HAO1 +8586 AI4 +8587 WEI2 WEI1 +8588 HUI4 +8589 WEI4 HUI4 +858A JI4 +858B CI1 CI2 +858C XIANG1 XIANG3 +858D LUAN4 WAN4 +858E MIE4 +858F YI4 +8590 LENG2 +8591 JIANG1 +8592 CAN4 +8593 SHEN1 +8594 QIANG2 SE4 +8595 LIAN2 +8596 KE1 +8597 YUAN2 +8598 DA2 +8599 TI4 +859A TANG2 +859B XUE1 XIE1 +859C BI4 BO4 BO2 BAI4 PI4 +859D ZHAN2 +859E SUN1 +859F LIAN3 LIAN2 XIAN1 YAN2 KAN4 +85A0 FAN2 +85A1 DING3 +85A2 JIE1 XIE4 +85A3 GU3 +85A4 XIE4 +85A5 SHU3 +85A6 JIAN4 +85A7 KAO3 HAO1 +85A8 HONG1 +85A9 SA4 +85AA XIN1 +85AB XUN1 +85AC YAO4 +85AE SOU3 +85AF SHU3 +85B0 XUN1 +85B1 DUI4 +85B2 PIN2 +85B3 WEI3 +85B4 NENG2 NING4 +85B5 CHOU2 ZHOU4 +85B6 MAI2 LI2 WEI1 WO1 +85B7 RU2 +85B8 PIAO1 +85B9 TAI2 +85BA CI2 JI4 QI4 QI2 QI5 +85BB ZAO3 +85BC CHEN2 +85BD ZHEN1 +85BE ER3 +85BF NI3 +85C0 YING2 +85C1 GAO3 +85C2 CONG4 CONG2 +85C3 XIAO1 HAO4 +85C4 QI2 +85C5 FA2 +85C6 JIAN3 +85C7 XU4 YU4 +85C8 KUI1 +85C9 JIE4 JI2 +85CA BIAN3 +85CB DIAO4 DI2 +85CC MI4 +85CD LAN2 LA5 +85CE JIN4 +85CF CANG2 ZANG4 ZANG1 +85D0 MIAO3 MO4 +85D1 QIONG2 +85D2 QIE4 +85D3 XIAN3 +85D5 OU3 +85D6 XIAN2 +85D7 SU4 +85D8 LV2 +85D9 YI4 +85DA XU4 +85DB XIE3 +85DC LI2 +85DD YI4 +85DE LA3 +85DF LEI3 +85E0 XIAO4 JIAO4 +85E1 DI2 +85E2 ZHI3 +85E3 BEI1 +85E4 TENG2 +85E5 YAO4 YUE4 SHUO4 LVE4 +85E6 MO4 MO2 +85E7 HUAN3 +85E8 BIAO1 PAO1 PIAO3 +85E9 FAN2 FAN1 +85EA SOU3 SHU2 COU4 +85EB TAN2 +85EC TUI1 +85ED QIONG2 +85EE QIAO2 +85EF WEI4 +85F0 LIU2 +85F1 HUI4 HUI2 +85F3 GAO3 KAO4 GAO4 +85F4 YUN4 +85F6 LI4 +85F7 SHU3 +85F8 CHU2 +85F9 AI3 +85FA LIN4 +85FB ZAO3 +85FC XUAN1 +85FD CHEN4 +85FE LAI4 +85FF HUO4 HE2 +8600 TUO4 +8601 WU4 E4 +8602 RUI3 +8603 RUI3 +8604 QI2 JI1 QIN2 +8605 HENG2 +8606 LU2 +8607 SU1 SU4 +8608 TUI2 +8609 MANG2 +860A YUN4 WEN1 +860B PIN2 PING2 +860C YU3 +860D XUN1 +860E JI4 +860F JIONG1 JIONG3 +8610 XIAN1 XUAN1 +8611 MO2 +8613 SU1 +8614 JIONG1 JIONG3 +8616 NIE4 BI4 BO4 +8617 BO4 +8618 RANG2 +8619 YI4 +861A XIAN3 +861B YU2 +861C JU2 +861D LIAN4 LIAN3 LIAN2 +861E LIAN4 LIAN3 LIAN2 XIAN1 +861F YIN3 +8620 QIANG2 +8621 YING1 +8622 LONG2 LONG3 LONG4 +8623 TONG4 +8624 WEI3 HUA1 +8625 YUE4 +8626 LING2 +8627 QU2 QU4 +8628 YAO2 +8629 FAN2 +862A MI2 +862B LAN2 +862C KUI1 +862D LAN2 +862E JI4 +862F DANG4 +8631 LEI4 +8632 LEI2 +8633 HUA3 +8634 FENG1 +8635 ZHI2 +8636 WEI4 +8637 KUI2 +8638 ZHAN4 +8639 HUAI4 HUAI2 +863A LI2 +863B JI4 +863C MI2 +863D LEI3 +863E HUAI4 +863F LUO2 +8640 JI1 +8641 KUI2 +8642 LU4 +8643 JIAN1 +8646 LEI2 +8647 QUAN3 +8648 XIAO1 +8649 YI4 +864A LUAN2 +864B MEN2 +864C BIE1 +864D HU1 +864E HU3 HU4 +864F LU3 +8650 NVE4 +8651 LV4 +8652 SI1 ZHAI4 YI2 +8653 XIAO1 +8654 QIAN2 +8655 CHU4 CHU3 +8656 HU1 HU4 HU2 +8657 XU1 +8658 CUO2 +8659 FU2 +865A XU1 QU1 +865B XU1 +865C LU3 +865D HU3 +865E YU2 +865F HAO4 HAO2 +8660 JIAO3 +8661 JU4 +8662 GUO2 +8663 BAO4 +8664 YAN2 +8665 ZHAN4 +8666 ZHAN4 +8667 KUI1 +8668 BAN1 +8669 XI4 +866A SHU2 SHU1 +866B CHONG2 HUI3 +866C QIU2 +866D DIAO1 +866E JI1 JI3 QI2 +866F QIU2 +8670 CHENG2 +8671 SHI1 +8673 DI4 +8674 ZHE2 ZHA4 +8675 SHE2 YI2 +8676 YU1 +8677 GAN1 HAN2 +8678 ZI3 +8679 HONG2 JIANG4 HONG4 GONG4 +867A HUI3 HUI1 +867B MENG2 +867C GE4 +867D SUI1 +867E XIA1 HA2 +867F CHAI4 +8680 SHI2 +8681 YI3 +8682 MA3 MA1 MA4 +8683 XIANG4 XIANG3 +8684 FANG1 +8685 E4 +8686 PA1 +8687 CHI3 +8688 QIAN1 +8689 WEN2 +868A WEN2 +868B RUI4 +868C BANG4 BENG4 PI2 FENG1 +868D BI3 PI2 +868E YUE4 +868F YUE4 +8690 JUN1 +8691 QI2 +8692 TONG2 RAN2 +8693 YIN3 +8694 QI2 +8695 CAN2 TIAN3 +8696 YUAN2 +8697 JUE2 +8698 HUI2 +8699 QIN2 +869A QI2 +869B ZHONG4 +869C YA2 +869D CI4 HAO2 +869E MU4 +869F WANG2 +86A0 FEN2 +86A1 FEN2 +86A2 HANG2 +86A3 GONG1 ZHONG1 +86A4 ZAO3 ZHAO3 +86A5 FU3 +86A6 RAN2 TIAN4 +86A7 JIE4 +86A8 FU2 +86A9 CHI1 +86AA DOU3 +86AB PIAO2 +86AC XIAN4 XIAN3 +86AD NI2 +86AE TE4 +86AF QIU1 +86B0 YOU2 ZHU2 +86B1 ZHA4 +86B2 PING2 +86B3 CHI2 +86B4 YOU3 YOU4 NIU4 YOU1 +86B5 HE2 KE4 +86B6 HAN1 +86B7 JU4 QU2 +86B8 LI4 +86B9 FU4 +86BA RAN2 TIAN4 +86BB ZHA2 +86BC GOU3 +86BD PI2 +86BE BO3 +86BF XIAN2 +86C0 ZHU4 +86C1 DIAO1 +86C2 BIE3 BIE2 +86C3 BING3 +86C4 GU1 GU3 +86C5 RAN2 ZHAN1 +86C6 QU1 JU1 +86C7 SHE2 YI2 TUO2 CHI2 +86C8 TIE4 +86C9 LING2 +86CA GU3 +86CB DAN4 +86CC GU3 +86CD YING2 +86CE LI4 +86CF CHENG1 +86D0 QU1 +86D1 MOU2 +86D2 GE2 +86D3 CI4 +86D4 HUI2 +86D5 HUI2 +86D6 MANG2 +86D7 FU4 +86D8 YANG2 YANG3 +86D9 WA1 JUE2 +86DA LIE4 +86DB ZHU1 +86DC YI1 +86DD XIAN2 +86DE KUO4 SHE2 +86DF JIAO1 +86E0 LI4 +86E1 YI4 +86E2 PING2 +86E3 JIE2 QIE4 JI1 +86E4 HA2 GE2 HA1 E4 +86E5 SHE2 +86E6 YI2 +86E7 WANG3 +86E8 MO4 +86E9 QIONG2 GONG3 +86EA QIE4 +86EB GUI3 +86EC GONG3 QIONG2 +86ED ZHI4 +86EE MAN2 +86F0 ZHI2 ZHE2 +86F1 JIA2 +86F2 RAO2 +86F3 SI1 +86F4 QI2 +86F5 XING1 +86F6 LIE4 +86F7 QIU2 +86F8 SHAO1 XIAO1 +86F9 YONG3 +86FA JIA2 +86FB TUI4 YUE4 SHUI4 +86FC CHE1 +86FD BAI4 +86FE E2 YI3 +86FF HAN4 +8700 SHU3 +8701 XUAN2 +8702 FENG1 +8703 SHEN4 +8704 ZHEN4 +8705 FU3 +8706 XIAN4 XIAN3 +8707 ZHE2 ZHE1 +8708 WU2 +8709 FU2 +870A LI2 +870B LANG2 +870C BI4 +870D CHU2 SHU2 YU2 +870E YUAN1 XUAN1 +870F YOU3 +8710 JIE2 +8711 DAN4 +8712 YAN2 YAN4 DAN4 +8713 TING2 DIAN4 +8714 DIAN4 +8715 SHUI4 +8716 HUI2 +8717 GUA1 WO1 +8718 ZHI1 +8719 SONG1 +871A FEI1 FEI3 PEI4 BEI4 +871B JU1 +871C MI4 +871D QI2 +871E QI2 +871F YU4 +8720 JUN3 +8721 LA4 ZHA4 CHA4 QU4 JI2 +8722 MENG3 MENG4 +8723 QIANG1 +8724 SI1 +8725 XI1 +8726 LUN2 +8727 LI4 +8728 DIE2 +8729 TIAO2 DIAO4 +872A TAO1 +872B KUN1 +872C GAN1 +872D HAN4 +872E YU4 GUO1 +872F BANG4 +8730 FEI2 +8731 PI2 MIAO2 +8732 WEI3 +8733 DUN1 +8734 YI4 XI2 +8735 YUAN1 +8736 SU4 +8737 QUAN2 JUAN3 +8738 QIAN3 +8739 RUI4 +873A NI2 +873B QING1 JING1 +873C WEI4 WEI3 +873D LIANG3 +873E GUO3 LUO3 +873F WAN1 WAN3 +8740 DONG1 DONG4 +8741 E4 +8742 BAN3 +8743 DI4 +8744 WANG3 +8745 CAN2 +8746 YANG3 YANG2 +8747 YING2 +8748 GUO1 +8749 CHAN2 +874B LA4 +874C KE1 +874D JI2 +874E HE2 XIE1 +874F TING2 +8750 MAI4 MEI4 +8751 XU1 +8752 MIAN2 +8753 YU2 +8754 JIE1 +8755 SHI2 LI4 LONG2 +8756 XUAN1 +8757 HUANG2 +8758 YAN3 YAN4 +8759 BIAN1 PIAN2 +875A ROU2 +875B WEI1 +875C FU4 +875D YUAN2 +875E MEI4 +875F WEI4 +8760 FU2 +8761 RUAN3 RU2 +8762 XIE2 +8763 YOU2 +8764 QIU2 JIU1 YOU2 +8765 MAO2 MOU2 WU2 WU4 +8766 XIA1 HA2 JIA3 +8767 YING1 +8768 SHI1 +8769 CHONG2 +876A TANG1 +876B ZHU1 +876C ZONG1 +876D TI2 +876E FU4 +876F YUAN2 +8770 HUI3 KUI2 +8771 MENG2 +8772 LA4 +8773 DU2 DAI4 +8774 HU2 +8775 QIU1 +8776 DIE2 TIE1 +8777 LI4 +8778 GUA1 WO1 LUO2 GUO3 +8779 YUN1 +877A JU3 +877B NAN3 AN2 +877C LOU2 +877D QUN3 +877E RONG2 +877F YING2 +8780 JIANG1 +8782 LANG2 +8783 PANG2 BANG3 +8784 SI1 +8785 XI1 CI4 +8786 CI4 +8787 XI1 +8788 YUAN2 +8789 WENG1 +878A LIAN2 XIAN2 +878B SOU1 +878C BAN1 PAN2 +878D RONG2 +878E RONG2 +878F JI2 +8790 WU1 +8791 QIU4 +8792 HAN4 +8793 QIN2 +8794 YI2 +8795 BI1 +8796 HUA2 +8797 TANG2 +8798 YI3 +8799 DU4 +879A NAI4 +879B HE2 +879C HU2 +879D HUI4 +879E MA3 MA4 MA1 +879F MING2 +87A0 YI4 +87A1 WEN2 +87A2 YING2 +87A3 TENG2 TE4 +87A4 YU3 +87A5 CANG1 +87A8 MAN3 +87AA SHANG1 +87AB SHI4 ZHE1 +87AC CAO2 +87AD CHI1 +87AE DI4 +87AF AO2 +87B0 LU4 +87B1 WEI4 +87B2 ZHI4 DIE2 +87B3 TANG2 +87B4 CHEN2 +87B5 PIAO1 PI2 +87B6 QU2 +87B7 PI2 BENG4 BI4 +87B8 YU2 +87B9 JIAN4 CHAN2 +87BA LUO2 +87BB LOU2 +87BC QIN3 +87BD ZHONG1 +87BE YIN3 +87BF JIANG1 +87C0 SHUAI4 +87C1 WEN2 +87C2 JIAO1 +87C3 WAN4 +87C4 ZHE2 ZHI2 +87C5 ZHE4 +87C6 MA2 MO4 +87C7 MA2 +87C8 GUO1 YU4 +87C9 LIU2 LIAO4 +87CA MAO2 MENG2 +87CB XI1 +87CC CONG1 +87CD LI2 +87CE MAN3 +87CF XIAO1 +87D1 ZHANG1 +87D2 MANG3 MENG3 +87D3 XIANG4 +87D4 MO4 +87D5 ZUI1 +87D6 SI1 +87D7 QIU1 +87D8 TE4 +87D9 ZHI2 +87DA PENG2 +87DB PENG2 +87DC JIAO3 +87DD QU2 +87DE BIE2 +87DF LIAO2 +87E0 PAN2 FAN2 +87E1 GUI3 +87E2 XI3 +87E3 JI3 QI2 +87E4 ZHUAN1 +87E5 HUANG2 +87E6 FEI4 BEN1 +87E7 LAO2 +87E8 JUE2 +87E9 JUE2 +87EA HUI4 +87EB YIN2 TAN2 XUN2 +87EC CHAN2 SHAN4 +87ED JIAO1 +87EE SHAN4 +87EF RAO2 NAO2 RAO4 +87F0 XIAO1 +87F1 MOU2 +87F2 CHONG2 +87F3 XUN2 +87F4 SI1 +87F6 CHENG1 +87F7 DANG1 +87F8 LI3 LI2 LUO3 LUO2 LI4 +87F9 XIE4 +87FA SHAN4 DAN4 CHAN2 TUO2 +87FB YI3 JI3 +87FC JING3 +87FD DA2 +87FE CHAN2 +87FF QI4 JI4 +8800 CI1 +8801 XIANG4 XIANG3 +8802 SHE4 +8803 LUO3 LUO2 GUO3 +8804 QIN2 +8805 YING2 +8806 CHAI4 +8807 LI4 +8808 ZE2 +8809 XUAN1 +880A LIAN2 +880B ZHU2 +880C ZE2 +880D XIE1 +880E MANG3 MENG3 +880F XIE4 +8810 QI2 +8811 RONG2 +8812 JIAN3 +8813 MENG3 +8814 HAO2 +8815 RU2 RUAN3 +8816 HUO4 YUE4 +8817 ZHUO2 +8818 JIE2 +8819 BIN1 PIN2 +881A HE4 HE1 RUO4 +881B MIE4 +881C FAN2 +881D LEI2 LEI3 +881E JIE2 +881F LA4 +8820 MI4 +8821 LI3 LI2 LUO2 LUO3 LI4 +8822 CHUN3 +8823 LI4 +8824 QIU1 +8825 NIE4 +8826 LU2 +8827 DU4 +8828 XIAO1 +8829 ZHU1 +882A LONG2 +882B LI4 LI2 +882C LONG2 +882D FENG1 +882E YE1 +882F BENG4 +8830 SHANG4 SHANG1 NANG2 RANG2 +8831 GU3 +8832 JUAN1 +8833 YING1 +8835 XI1 XI2 +8836 CAN2 +8837 QU2 +8838 QUAN2 +8839 DU4 +883A CAN2 +883B MAN2 +883C JUE2 QU2 +883D JIE2 +883E ZHU2 +883F ZHA2 +8840 XIE3 XUE4 +8841 HUANG1 +8842 NIU4 NV4 +8843 PEI1 +8844 NV4 +8845 XIN4 +8846 ZHONG4 +8847 MO4 MAI4 +8848 ER4 ER3 +8849 KE4 +884A MIE4 +884B XI4 +884C XING2 HANG2 XING4 HANG4 HENG2 +884D YAN3 YAN2 +884E KAN4 +884F YUAN4 +8851 LING2 +8852 XUAN4 +8853 SHU4 +8854 XIAN2 +8855 TONG4 DONG4 +8856 LONG4 +8857 JIE1 +8858 XIAN2 YU4 +8859 YA2 YU2 YU3 YU4 +885A HU2 +885B WEI4 +885C DAO4 +885D CHONG1 CHONG4 +885E WEI4 +885F DAO4 +8860 ZHUN1 +8861 HENG2 +8862 QU2 +8863 YI1 YI4 +8865 BU3 +8866 GAN3 +8867 YU2 +8868 BIAO3 +8869 CHA4 CHA3 +886A YI3 YI4 +886B SHAN1 +886C CHEN4 +886D FU1 +886E GUN3 +886F FEN1 +8870 SHUAI1 CUI1 SUO1 +8871 JIE2 +8872 NA4 +8873 ZHONG1 +8874 DAN3 +8875 RI4 NI4 +8876 ZHONG4 ZHONG3 CHONG1 +8877 ZHONG1 ZHONG4 +8878 XIE4 +8879 QI2 ZHI3 +887A XIE2 +887B RAN2 +887C ZHI1 +887D REN4 +887E QIN1 +887F JIN1 QIN4 +8880 JUN1 +8881 YUAN2 +8882 MEI4 YI4 +8883 CHAI4 +8884 AO3 +8885 NIAO3 +8886 HUI1 +8887 RAN2 +8888 JIA1 +8889 TUO2 +888A LING3 +888B DAI4 +888C BAO4 +888D PAO2 BAO4 +888E YAO4 +888F ZUO4 +8890 BI4 +8891 SHAO4 +8892 TAN3 ZHAN4 +8893 JU3 +8894 HE4 +8895 SHU4 +8896 XIU4 +8897 ZHEN3 ZHEN1 +8898 YI2 YI4 +8899 PA4 +889A BO1 FU2 +889B DI1 +889C WA4 MO4 +889D FU4 +889E GUN3 +889F ZHI4 +88A0 ZHI4 +88A1 RAN2 +88A2 PAN4 FAN2 +88A3 YI4 +88A4 MAO4 MOU2 +88A6 NA4 +88A7 KOU1 +88A8 XIAN4 XUAN4 +88A9 CHAN1 +88AA QU1 +88AB BEI4 PI1 BI4 PI4 +88AC GUN3 +88AD XI2 +88AF BO2 +88B1 FU2 +88B2 YI2 +88B3 CHI3 QI3 DUO3 NUO3 +88B4 KU4 +88B5 REN4 +88B6 JIANG4 +88B7 JIA2 JIE2 +88B8 CUN2 +88B9 MO4 +88BA JIE2 +88BB ER2 +88BC LUO4 GE1 +88BD RU2 +88BE ZHU1 +88BF GUI1 +88C0 YIN1 +88C1 CAI2 +88C2 LIE4 LIE3 +88C5 ZHUANG1 +88C6 DANG1 +88C8 KUN1 +88C9 KEN4 +88CA NIAO3 +88CB SHU4 +88CC JIA2 +88CD KUN3 +88CE CHENG2 CHENG3 +88CF LI3 +88D0 JUAN1 +88D1 SHEN1 +88D2 POU2 BAO1 +88D3 GE2 JIE1 +88D4 YI4 +88D5 YU4 +88D6 ZHEN3 ZHEN4 +88D7 LIU2 +88D8 QIU2 +88D9 QUN2 +88DA JI4 +88DB YI4 +88DC BU3 +88DD ZHUANG1 +88DE SHUI4 +88DF SHA1 +88E0 QUN2 +88E1 LI3 +88E2 LIAN2 +88E3 LIAN4 LIAN3 +88E4 KU4 +88E5 JIAN3 +88E6 FOU2 +88E7 CHAN1 +88E8 BI4 PI2 +88E9 GUN1 +88EA TAO2 +88EB YUAN4 +88EC LING2 +88ED CHI3 +88EE CHANG1 +88EF CHOU2 DAO1 +88F0 DUO2 DUO1 +88F1 BIAO3 +88F2 LIANG3 +88F3 CHANG2 SHANG2 +88F4 PEI2 FEI2 +88F5 PEI2 +88F6 FEI1 +88F7 YUAN1 GUN3 +88F8 LUO3 +88F9 GUO3 +88FA YAN3 +88FB DU3 DU1 +88FC XI2 TI4 XI1 +88FD ZHI4 +88FE JU1 JU4 +88FF QI3 +8900 JI4 +8901 ZHI2 +8902 GUA4 +8903 KEN4 +8905 TI4 +8906 TI2 +8907 FU4 +8908 CHONG2 CHONG1 ZHONG4 +8909 XIE1 +890A BIAN3 PIAN1 +890B DIE2 +890C KUN1 +890D DUAN1 +890E XIU4 YOU4 +890F XIU4 YOU4 +8910 HE2 HE4 +8911 YUAN4 +8912 BAO1 +8913 BAO3 +8914 FU4 +8915 YU2 +8916 TUAN4 +8917 YAN3 +8918 HUI1 +8919 BEI4 +891A CHU3 ZHE3 ZHU3 +891B LV3 +891E YUN3 +891F DA2 +8920 GOU1 +8921 DA1 +8922 HUAI2 +8923 RONG2 +8924 YUAN4 +8925 RU4 NU4 +8926 NAI4 +8927 JIONG3 +8928 SUO3 +8929 BAN1 +892A TUN4 TUI4 +892B CHI3 +892C SANG3 +892D NIAO3 +892E YING1 +892F JIE4 +8930 QIAN1 +8931 HUAI2 +8932 KU4 +8933 LIAN2 +8934 BAO3 LAN2 +8935 LI2 +8936 ZHE2 ZHE3 DIE2 XI2 +8937 SHI1 +8938 LV3 +8939 YI4 +893A DIE2 +893B XIE4 DIE2 +893C XIAN1 +893D WEI4 +893E BIAO3 +893F CAO2 +8940 JI1 +8941 JIANG3 QIANG3 +8942 SEN1 SHAN1 SHEN1 +8943 BAO1 +8944 XIANG1 +8946 PU2 FU2 +8947 JIAN3 +8948 ZHUAN4 +8949 JIAN4 +894A ZUI4 +894B JI2 +894C DAN1 +894D ZA2 +894E FAN2 +894F BO2 +8950 XIANG4 +8951 XIN2 +8952 BIE2 +8953 RAO2 +8954 MAN3 +8955 LAN2 +8956 AO3 +8957 DUO2 ZE4 +8958 GUI4 +8959 CAO4 +895A SUI4 +895B NONG2 +895C CHAN1 +895D LIAN4 LIAN3 CHAN1 +895E BI4 +895F JIN1 +8960 DANG1 +8961 SHU2 SHU3 DU2 +8962 TAN3 ZHAN4 +8963 BI4 BI2 +8964 LAN2 +8965 PU2 +8966 RU2 +8967 ZHI3 +8969 SHU3 +896A WA4 +896B SHI4 +896C BAI3 +896D XIE2 +896E BO2 +896F CHEN4 +8970 LAI4 +8971 LONG2 LONG3 +8972 XI2 +8973 XIAN1 SHEN1 +8974 LAN2 +8975 ZHE2 ZHE3 +8976 DAI4 +8978 ZAN4 +8979 SHI1 +897A JIAN3 +897B PAN4 +897C YI4 +897E YA4 XI1 +897F XI1 +8980 XI1 +8981 YAO4 YAO1 YAO3 +8982 FENG3 +8983 TAN2 QIN2 YAN3 +8985 BIAO4 +8986 FU4 +8987 BA4 PO4 +8988 HE2 +8989 JI1 +898A JI1 +898B JIAN4 XIAN4 +898C GUAN1 GUAN4 +898D BIAN4 PAN2 +898E YAN4 +898F GUI1 KUI1 XU4 GUI4 +8990 JUE2 JIAO4 +8991 PIAN3 +8992 MAO2 +8993 MI4 +8994 MI4 +8995 MIE4 PIE1 +8996 SHI4 +8997 SI1 SI4 +8998 ZHAN1 CHAN1 DAN1 JI1 +8999 LUO2 +899A JUE2 +899B MI4 MO4 +899C TIAO4 +899D LIAN2 +899E YAO4 +899F ZHI4 +89A0 JUN1 +89A1 XI2 +89A2 SHAN3 +89A3 WEI1 +89A4 XI4 +89A5 TIAN3 +89A6 YU2 +89A7 LAN3 +89A8 E4 +89A9 DU3 +89AA QIN1 QING4 XIN1 +89AB PANG3 +89AC JI4 +89AD MING2 +89AE YING2 +89AF GOU4 +89B0 QU4 +89B1 ZHAN4 +89B2 JIN3 JIN4 +89B3 GUAN1 +89B4 DENG1 +89B5 JIAN4 +89B6 LUO2 +89B7 QU4 +89B8 JIAN4 XIAN2 +89B9 WEI2 +89BA JUE2 JIAO4 +89BB QU4 +89BC LUO2 +89BD LAN3 LAN4 +89BE SHEN3 +89BF DI2 JI2 +89C0 GUAN1 GUAN4 +89C1 JIAN4 XIAN4 +89C2 GUAN1 GUAN4 +89C3 YAN4 +89C4 GUI1 +89C5 MI4 +89C6 SHI4 +89C7 ZHAN1 CHAN1 +89C8 LAN3 +89C9 JUE2 JIAO4 +89CA JI4 +89CB XI2 +89CC DI2 +89CD TIAN3 +89CE YU2 +89CF GOU4 +89D0 JIN3 +89D1 QU4 +89D2 JIAO3 JUE2 GU3 LU4 +89D3 JIU1 QIU2 +89D4 JIN1 +89D5 CU1 +89D6 JUE2 KUI4 GUI4 +89D7 ZHI4 +89D8 CHAO4 +89D9 JI2 FAN2 +89DA GU1 +89DB DAN4 +89DC ZI1 ZUI3 +89DD DI3 +89DE SHANG1 +89DF HUA4 XIE4 +89E0 QUAN2 +89E1 GE2 +89E2 CHI4 +89E3 JIE3 JIE4 XIE4 +89E4 GUI3 +89E5 GONG1 +89E6 CHU4 +89E7 JIE3 +89E8 HUN4 +89E9 QIU2 +89EA XING1 +89EB SU4 +89EC NI2 +89ED JI1 QI3 QI2 +89EE LU4 +89EF ZHI4 ZHI1 +89F0 ZHA1 DA3 ZHA3 +89F1 BI4 +89F2 XING1 +89F3 HU2 JUE2 QUE4 +89F4 SHANG1 +89F5 GONG1 +89F6 ZHI4 ZHI1 +89F7 XUE2 +89F8 CHU4 +89F9 XI1 WEI2 +89FA YI2 +89FB LU4 +89FC JUE2 +89FD XI1 +89FE YAN4 +89FF XI1 +8A00 YAN2 YAN4 YIN2 +8A02 DING4 +8A03 FU4 +8A04 QIU2 +8A05 QIU2 +8A06 JIAO4 +8A07 HONG1 JUN4 HENG1 +8A08 JI4 +8A09 FAN4 +8A0A XUN4 +8A0B DIAO4 +8A0C HONG2 HONG4 +8A0D CHA4 +8A0E TAO3 +8A0F XU1 XU3 +8A10 JIE2 JI4 +8A11 YI2 DAN4 +8A12 REN4 +8A13 XUN4 +8A14 YIN2 +8A15 SHAN4 +8A16 QI4 +8A17 TUO1 +8A18 JI4 +8A19 XUN4 +8A1A YIN2 +8A1B E2 +8A1C FEN1 +8A1D YA4 +8A1E YAO1 +8A1F SONG4 RONG2 +8A20 SHEN3 +8A21 YIN2 YIN3 JIN4 +8A22 XIN1 XI1 YIN2 +8A23 JUE2 +8A24 XIAO2 NA2 +8A25 NE4 NA4 +8A26 CHEN2 SHEN2 +8A27 YOU2 +8A28 ZHI3 +8A29 XIONG1 +8A2A FANG3 +8A2B XIN4 +8A2C CHAO1 MIAO3 +8A2D SHE4 +8A2E XIAN1 +8A2F SHA3 +8A30 TUN2 +8A31 XU3 HU3 +8A32 YI4 +8A33 YI4 +8A34 SU4 +8A35 CHI1 +8A36 HE1 +8A37 SHEN1 +8A38 HE2 +8A39 XU4 +8A3A ZHEN3 +8A3B ZHU4 +8A3C ZHENG4 +8A3D GOU4 +8A3E ZI3 ZI1 CI1 +8A3F ZI3 ZI1 +8A40 ZHAN1 CHE4 +8A41 GU3 +8A42 FU4 +8A43 QUAN3 +8A44 DIE2 +8A45 LING2 +8A46 DI3 TI4 +8A47 YANG4 +8A48 LI4 +8A49 NAO2 +8A4A PAN4 +8A4B ZHOU4 +8A4C GAN4 +8A4D YI4 +8A4E JU4 +8A4F AO4 +8A50 ZHA4 +8A51 TUO2 +8A52 YI2 DAI4 TAI2 +8A53 QU3 +8A54 ZHAO4 ZHAO1 +8A55 PING2 +8A56 BI4 +8A57 XIONG4 +8A58 QU1 CHU4 QU4 +8A59 BA2 +8A5A DA2 +8A5B ZU3 +8A5C TAO1 +8A5D ZHU3 +8A5E CI2 +8A5F ZHE2 +8A60 YONG3 +8A61 XU3 +8A62 XUN2 +8A63 YI4 +8A64 HUANG3 +8A65 HE2 +8A66 SHI4 +8A67 CHA2 +8A68 JIAO1 +8A69 SHI1 +8A6A HEN3 +8A6B CHA4 DU4 +8A6C GOU4 HOU4 +8A6D GUI3 +8A6E QUAN2 +8A6F HUI4 +8A70 JIE2 +8A71 HUA4 +8A72 GAI1 +8A73 XIANG2 YANG2 +8A74 WEI1 +8A75 SHEN1 +8A76 CHOU2 ZHOU4 +8A77 TONG2 +8A78 MI2 +8A79 ZHAN1 SHAN4 DAN4 +8A7A MING4 +8A7B E4 LUO4 +8A7C HUI1 +8A7D YAN2 +8A7E XIONG1 +8A7F GUA4 +8A80 ER4 +8A81 BENG3 +8A82 TIAO3 DIAO4 +8A83 CHI3 CHI2 YI2 +8A84 LEI3 +8A85 ZHU1 +8A86 KUANG1 KUANG2 KUANG4 +8A87 KUA1 +8A88 WU2 +8A89 YU4 +8A8A TENG2 +8A8B JI4 +8A8C ZHI4 +8A8D REN4 +8A8E SU4 +8A8F LANG3 +8A90 E2 +8A91 KUANG2 KUANG4 +8A92 E4 AI1 EI1 EI2 EI3 EI4 XI1 YI4 +8A93 SHI4 +8A94 TING3 +8A95 DAN4 +8A96 BO2 BEI4 +8A97 CHAN2 +8A98 YOU4 +8A99 HENG2 KENG1 +8A9A QIAO4 +8A9B QIN1 +8A9C SHUA4 +8A9D AN1 +8A9E YU3 YU4 +8A9F XIAO4 +8AA0 CHENG2 +8AA1 JIE4 +8AA2 XIAN4 +8AA3 WU1 WU2 +8AA4 WU4 +8AA5 GAO4 +8AA6 SONG4 +8AA7 PU3 BU1 +8AA8 HUI4 +8AA9 JING4 +8AAA SHUO1 SHUI4 YUE4 TUO1 +8AAB ZHEN4 +8AAC SHUO1 SHUI4 YUE4 TUO1 +8AAD DU2 +8AAF CHANG4 +8AB0 SHUI2 SHEI2 +8AB1 JIE2 +8AB2 KE4 +8AB3 QU1 +8AB4 CONG2 +8AB5 XIAO2 +8AB6 SUI4 +8AB7 WANG3 +8AB8 XUAN2 +8AB9 FEI3 +8ABA CHI1 +8ABB TA4 +8ABC YI4 YI2 +8ABD NA2 +8ABE YIN2 +8ABF DIAO4 TIAO4 TIAO2 ZHOU1 +8AC0 PI3 +8AC1 CHUO4 +8AC2 CHAN3 +8AC3 CHEN1 +8AC4 ZHUN1 ZHUN4 +8AC5 JI1 +8AC6 QI1 JI1 +8AC7 TAN2 +8AC8 ZHUI4 +8AC9 WEI3 +8ACA JU2 +8ACB QING3 QING4 QING1 QING2 +8ACC JIAN4 DONG3 +8ACD ZHENG1 ZHENG4 +8ACE ZE2 +8ACF ZOU1 ZHOU1 +8AD0 QIAN1 +8AD1 ZHUO2 +8AD2 LIANG4 LIANG2 +8AD3 JIAN4 +8AD4 ZHU4 +8AD5 HAO2 XIA4 +8AD6 LUN4 LUN2 +8AD7 SHEN3 NIE4 +8AD8 BIAO3 +8AD9 HUAI4 +8ADA PIAN2 +8ADB YU2 +8ADC DIE2 XIE4 +8ADD XU3 +8ADE PIAN3 PIAN2 +8ADF SHI4 +8AE0 XUAN1 XUAN3 +8AE1 SHI4 +8AE2 HUN4 +8AE3 HUA4 +8AE4 E4 +8AE5 ZHONG4 +8AE6 DI4 TI2 +8AE7 XIE2 +8AE8 FU2 +8AE9 PU3 +8AEA TING2 +8AEB JIAN4 +8AEC QI3 +8AED YU4 TOU3 +8AEE ZI1 +8AEF CHUAN2 +8AF0 XI3 +8AF1 HUI4 +8AF2 YIN1 +8AF3 AN1 TOU3 +8AF4 XIAN2 +8AF5 NAN2 +8AF6 CHEN2 SHEN2 +8AF7 FENG3 FENG1 FENG4 +8AF8 ZHU1 CHU2 +8AF9 YANG2 +8AFA YAN4 +8AFB HENG1 +8AFC XUAN1 +8AFD GE2 +8AFE NUO4 +8AFF QI4 +8B00 MOU2 +8B01 YE4 +8B02 WEI4 +8B04 TENG2 +8B05 ZOU1 ZHOU1 CHAO3 CHOU1 +8B06 SHAN4 +8B07 JIAN3 +8B08 BO2 +8B0A HUANG3 +8B0B HUO4 +8B0C GE1 +8B0D YING2 HONG1 +8B0E MI2 MEI4 MI4 +8B0F XIAO3 +8B10 MI4 +8B11 XI4 XI3 +8B12 QIANG1 +8B13 CHEN1 +8B14 NVE4 XUE4 +8B15 TI2 +8B16 SU4 +8B17 BANG4 +8B18 CHI2 +8B19 QIAN1 QIAN4 ZHAN4 +8B1A SHI4 YI4 XI4 +8B1B JIANG3 +8B1C YUAN4 QUAN2 +8B1D XIE4 +8B1E XUE4 XIAO4 +8B1F TAO1 +8B20 YAO2 +8B21 YAO2 +8B23 YU2 +8B24 BIAO1 +8B25 CONG4 +8B26 QING4 QING3 +8B27 LI2 +8B28 MO2 +8B29 MO4 MO2 +8B2A SHANG1 +8B2B ZHE2 ZE2 +8B2C MIU4 +8B2D JIAN3 +8B2E ZE2 +8B2F JIE1 ZHA1 ZHA3 ZU3 +8B30 LIAN2 +8B31 LOU2 LV3 +8B32 CAN1 +8B33 OU1 XU2 +8B34 GUAN4 +8B35 XI2 +8B36 ZHUO2 +8B37 AO2 AO4 +8B38 AO2 AO4 +8B39 JIN3 +8B3A ZHE2 +8B3B YI2 CHI2 +8B3C HU4 HU1 +8B3D JIANG4 +8B3E MAN2 MAN4 +8B3F CHAO2 ZHAO1 +8B40 HAN4 +8B41 HUA2 +8B42 CHAN3 +8B43 XU1 +8B44 ZENG1 +8B45 SE4 +8B46 XI1 +8B47 SHE1 +8B48 DUI4 +8B49 ZHENG4 +8B4A NAO2 +8B4B LAN2 +8B4C E2 +8B4D YING4 YING2 +8B4E JUE2 +8B4F JI1 +8B50 ZUN3 +8B51 JIAO3 +8B52 BO4 +8B53 HUI4 +8B54 ZHUAN4 +8B55 MU2 +8B56 ZEN4 JIAN4 +8B57 ZHA2 +8B58 SHI5 SHI4 SHI2 ZHI4 +8B59 QIAO2 QIAO4 +8B5A TAN2 +8B5B ZEN4 +8B5C PU3 +8B5D SHENG2 +8B5E XUAN1 +8B5F ZAO4 +8B60 TAN1 +8B61 DANG3 +8B62 SUI4 +8B63 QIAN1 +8B64 JI1 +8B65 JIAO4 +8B66 JING3 +8B67 LIAN2 +8B68 NOU2 NONG2 +8B69 YI1 +8B6A AI4 +8B6B ZHAN1 +8B6C PI4 +8B6D HUI3 +8B6E HUA4 +8B6F YI4 +8B70 YI4 +8B71 SHAN4 +8B72 RANG4 +8B73 NOU4 +8B74 QIAN3 +8B75 ZHUI4 +8B76 TA4 +8B77 HU4 +8B78 ZHOU1 +8B79 HAO2 XIA4 +8B7A YE4 +8B7B YING1 +8B7C JIAN4 JIAN1 KAN4 +8B7D YU4 +8B7E JIAN3 +8B7F HUI4 +8B80 DU2 DOU4 +8B81 ZHE2 +8B82 XUAN4 +8B83 ZAN4 +8B84 LEI3 +8B85 SHEN3 +8B86 WEI4 +8B87 CHAN3 +8B88 LI4 +8B89 YI2 +8B8A BIAN4 +8B8B ZHE2 SHE4 +8B8C YAN4 +8B8D E4 +8B8E CHOU2 +8B8F WEI4 +8B90 CHOU2 +8B91 YAO4 +8B92 CHAN2 +8B93 RANG4 +8B94 YIN3 +8B95 LAN2 +8B96 CHEN4 CHAN4 +8B97 HUO4 +8B98 ZHE2 +8B99 HUAN1 XUAN1 +8B9A ZAN4 +8B9B YI4 +8B9C DANG3 DANG4 +8B9D ZHAN1 +8B9E YAN4 +8B9F DU2 +8BA0 YAN2 +8BA1 JI4 +8BA2 DING4 +8BA3 FU4 +8BA4 REN4 +8BA5 JI1 +8BA6 JIE2 +8BA7 HONG2 HONG4 +8BA8 TAO3 +8BA9 RANG4 +8BAA SHAN4 +8BAB QI4 +8BAC TUO1 +8BAD XUN4 +8BAE YI4 +8BAF XUN4 +8BB0 JI4 +8BB1 REN4 +8BB2 JIANG3 +8BB3 HUI4 +8BB4 OU1 +8BB5 JU4 +8BB6 YA4 +8BB7 NE4 NA4 +8BB8 XU3 HU3 +8BB9 E2 +8BBA LUN4 LUN2 +8BBB XIONG1 +8BBC SONG4 RONG2 +8BBD FENG1 FENG3 FENG4 +8BBE SHE4 +8BBF FANG3 +8BC0 JUE2 +8BC1 ZHENG4 +8BC2 GU3 +8BC3 HE1 +8BC4 PING2 +8BC5 ZU3 +8BC6 SHI4 SHI2 ZHI4 +8BC7 XIONG4 +8BC8 ZHA4 +8BC9 SU4 +8BCA ZHEN3 +8BCB DI3 +8BCC ZOU1 ZHOU1 +8BCD CI2 +8BCE QU4 QU1 +8BCF ZHAO4 +8BD0 BI4 +8BD1 YI4 +8BD2 YI2 +8BD3 KUANG1 KUANG2 KUANG4 +8BD4 LEI3 +8BD5 SHI4 +8BD6 GUA4 +8BD7 SHI1 +8BD8 JIE2 +8BD9 HUI1 +8BDA CHENG2 +8BDB ZHU1 +8BDC SHEN1 +8BDD HUA4 +8BDE DAN4 +8BDF GOU4 +8BE0 QUAN2 +8BE1 GUI3 +8BE2 XUN2 +8BE3 YI4 +8BE4 ZHENG1 ZHENG4 +8BE5 GAI1 +8BE6 XIANG2 YANG2 +8BE7 CHA4 +8BE8 HUN4 +8BE9 XU3 +8BEA ZHOU1 +8BEB JIE4 +8BEC WU2 WU1 +8BED YU3 YU4 +8BEE QIAO4 +8BEF WU4 +8BF0 GAO4 +8BF1 YOU4 +8BF2 HUI4 +8BF3 KUANG2 KUANG4 +8BF4 SHUO1 SHUI4 TUO1 YUE4 +8BF5 SONG4 +8BF6 AI1 EI1 EI2 EI3 EI4 XI1 +8BF7 QING3 QING4 QING1 QING2 +8BF8 ZHU1 +8BF9 ZOU1 +8BFA NUO4 +8BFB DU2 DOU4 +8BFC ZHUO2 +8BFD FEI3 +8BFE KE4 +8BFF WEI3 +8C00 YU2 +8C01 SHUI2 SHEI2 +8C02 SHEN3 +8C03 DIAO4 TIAO4 TIAO2 ZHOU1 +8C04 CHAN3 +8C05 LIANG4 LIANG2 +8C06 ZHUN1 ZHUN4 +8C07 SUI4 +8C08 TAN2 +8C09 SHEN3 +8C0A YI2 YI4 +8C0B MOU2 +8C0C CHEN2 +8C0D DIE2 +8C0E HUANG3 +8C0F JIAN4 +8C10 XIE2 +8C11 NVE4 XUE4 +8C12 YE4 +8C13 WEI4 +8C14 E4 +8C15 YU4 +8C16 XUAN1 +8C17 CHAN2 +8C18 ZI1 +8C19 AN1 +8C1A YAN4 +8C1B DI4 TI2 +8C1C MI2 MEI4 MI4 +8C1D PIAN2 PIAN3 +8C1E XU3 +8C1F MO2 +8C20 DANG3 +8C21 SU4 +8C22 XIE4 +8C23 YAO2 +8C24 BANG4 +8C25 SHI4 +8C26 QIAN1 QIAN4 +8C27 MI4 +8C28 JIN3 +8C29 MAN2 MAN4 +8C2A ZHE2 +8C2B JIAN3 +8C2C MIU4 +8C2D TAN2 +8C2E ZEN4 JIAN4 +8C2F QIAO2 QIAO4 +8C30 LAN2 +8C31 PU3 +8C32 JUE2 +8C33 YAN4 +8C34 QIAN3 +8C35 ZHAN1 +8C36 CHEN4 +8C37 GU3 YU4 LU4 +8C38 QIAN1 +8C39 HONG2 +8C3A XIA1 +8C3B JUE2 +8C3C HONG2 +8C3D HAN1 +8C3E HONG1 +8C3F XI1 QI1 +8C40 XI1 XI2 +8C41 HUO1 HUO4 HUA2 +8C42 LIAO2 +8C43 HAN3 +8C44 DU2 +8C45 LONG2 +8C46 DOU4 +8C47 JIANG1 +8C48 QI3 KAI3 +8C49 CHI3 SHI4 +8C4A LI3 FENG1 +8C4B DENG1 +8C4C WAN1 +8C4D BI1 +8C4E SHU4 +8C4F XIAN4 +8C50 FENG1 +8C51 ZHI4 +8C52 ZHI4 +8C53 YAN4 +8C54 YAN4 +8C55 SHI3 +8C56 CHU4 +8C57 HUI1 +8C58 TUN2 +8C59 YI4 +8C5A TUN2 DUN1 +8C5B YI4 +8C5C JIAN1 +8C5D BA1 +8C5E HOU4 +8C5F E4 +8C60 CU2 +8C61 XIANG4 +8C62 HUAN4 +8C63 JIAN1 YAN4 +8C64 KEN3 +8C65 GAI1 +8C66 QU2 +8C67 FU1 +8C68 XI1 +8C69 BIN1 +8C6A HAO2 +8C6B YU4 XU4 +8C6C ZHU1 +8C6D JIA1 +8C6E FEN2 +8C6F XI1 +8C70 BO2 HU4 HUO4 GOU4 +8C71 WEN1 +8C72 HUAN2 YUAN2 +8C73 BIN1 +8C74 DI2 +8C75 ZONG1 +8C76 FEN2 +8C77 YI4 +8C78 ZHI4 +8C79 BAO4 +8C7A CHAI2 +8C7B AN4 HAN4 +8C7C PI2 +8C7D NA4 +8C7E PI1 +8C7F GOU3 +8C80 NA4 +8C81 YOU4 +8C82 DIAO1 +8C83 MO4 +8C84 SI4 +8C85 XIU1 +8C86 HUAN2 HUAN1 +8C87 KUN1 +8C88 HE2 HAO2 MA4 MO4 +8C89 HE2 HAO2 MO4 MA4 +8C8A MO4 +8C8B HAN4 +8C8C MAO4 +8C8D LI2 MAI2 +8C8E NI2 +8C8F BI3 +8C90 YU3 +8C91 JIA1 +8C92 TUAN1 +8C93 MAO1 +8C94 PI2 +8C95 XI1 +8C96 E4 +8C97 JU4 +8C98 MO4 +8C99 CHU1 +8C9A TAN2 +8C9B HUAN1 +8C9C JUE2 +8C9D BEI4 +8C9E ZHEN1 +8C9F YUAN2 YUN2 +8CA0 FU4 +8CA1 CAI2 +8CA2 GONG4 +8CA3 TE4 +8CA4 YI2 YI4 +8CA5 HANG2 +8CA6 WAN4 +8CA7 PIN2 +8CA8 HUO4 +8CA9 FAN4 +8CAA TAN1 +8CAB GUAN4 WAN1 +8CAC ZE2 ZHAI4 +8CAD ZHI2 +8CAE ER4 +8CAF ZHU3 ZHU4 +8CB0 SHI4 +8CB1 BI4 +8CB2 ZI1 +8CB3 ER4 +8CB4 GUI4 +8CB5 PIAN3 +8CB6 BIAN3 +8CB7 MAI3 +8CB8 DAI4 TE4 +8CB9 SHENG4 +8CBA KUANG4 +8CBB FEI4 BI4 +8CBC TIE1 +8CBD YI2 +8CBE CHI2 +8CBF MAO4 +8CC0 HE4 +8CC1 BI4 BEN1 FEI2 FEN2 FEN4 +8CC2 LU4 +8CC3 LIN4 REN4 +8CC4 HUI4 +8CC5 GAI1 +8CC6 PIAN2 +8CC7 ZI1 ZI4 +8CC8 JIA3 JIA4 GU3 +8CC9 XU4 +8CCA ZEI2 ZE2 +8CCB JIAO3 +8CCC GAI4 GAI1 +8CCD ZANG1 +8CCE JIAN4 +8CCF YING4 +8CD0 XUN4 +8CD1 ZHEN4 +8CD2 SHE1 SHA1 +8CD3 BIN1 BIN4 +8CD4 BIN1 BIN4 +8CD5 QIU2 +8CD6 SHE1 +8CD7 CHUAN4 +8CD8 ZANG1 +8CD9 ZHOU1 +8CDA LAI4 +8CDB ZAN4 +8CDC CI4 SI4 +8CDD CHEN1 +8CDE SHANG3 +8CDF TIAN3 +8CE0 PEI2 +8CE1 GENG1 +8CE2 XIAN2 +8CE3 MAI4 +8CE4 JIAN4 +8CE5 SUI4 +8CE6 FU4 +8CE7 TAN4 TAN3 +8CE8 CONG2 +8CE9 CONG2 +8CEA ZHI4 ZHI2 +8CEB JI1 QI2 +8CEC ZHANG4 +8CED DU3 +8CEE JIN4 +8CEF XIONG1 MIN2 +8CF0 SHUN3 +8CF1 YUN3 +8CF2 BAO3 +8CF3 ZAI1 +8CF4 LAI4 +8CF5 FENG4 +8CF6 CANG4 +8CF7 JI1 QI2 +8CF8 SHENG4 +8CF9 AI4 +8CFA ZHUAN4 ZUAN4 +8CFB FU4 +8CFC GOU4 +8CFD SAI4 +8CFE ZE2 +8CFF LIAO2 +8D00 WEI4 +8D01 BAI4 +8D02 CHEN3 +8D03 ZHUAN4 ZUAN4 +8D04 ZHI4 ZHI2 +8D05 ZHUI4 +8D06 BIAO1 +8D07 YUN1 +8D08 ZENG4 +8D09 TAN3 DAN3 DAN4 +8D0A ZAN4 +8D0B YAN4 +8D0D SHAN4 DAN4 +8D0E WAN4 +8D0F YING2 +8D10 JIN4 +8D11 GAN3 GAN4 GONG4 +8D12 XIAN2 +8D13 ZANG1 +8D14 BI4 +8D15 DU2 +8D16 SHU2 SHU4 +8D17 YAN4 +8D19 XUAN4 +8D1A LONG4 +8D1B GAN4 GONG4 ZHUANG4 +8D1C ZANG1 +8D1D BEI4 +8D1E ZHEN1 +8D1F FU4 +8D20 YUAN2 YUN2 +8D21 GONG4 +8D22 CAI2 +8D23 ZE2 ZHAI4 +8D24 XIAN2 +8D25 BAI4 +8D26 ZHANG4 +8D27 HUO4 +8D28 ZHI2 ZHI4 +8D29 FAN4 +8D2A TAN1 +8D2B PIN2 +8D2C BIAN3 +8D2D GOU4 +8D2E ZHU3 ZHU4 +8D2F GUAN4 WAN1 +8D30 ER4 +8D31 JIAN4 +8D32 BI4 BEN1 FEI2 FEN2 FEN4 +8D33 SHI4 +8D34 TIE1 +8D35 GUI4 +8D36 KUANG4 +8D37 DAI4 TE4 +8D38 MAO4 +8D39 FEI4 BI4 +8D3A HE4 +8D3B YI2 +8D3C ZEI2 ZE2 +8D3D ZHI4 +8D3E JIA3 GU3 JIA4 +8D3F HUI4 +8D40 ZI1 +8D41 REN4 LIN4 +8D42 LU4 +8D43 ZANG1 +8D44 ZI1 +8D45 GAI1 +8D46 JIN4 +8D47 QIU2 +8D48 ZHEN4 +8D49 LAI4 +8D4A SHE1 SHA1 +8D4B FU4 +8D4C DU3 +8D4D JI1 QI2 +8D4E SHU2 +8D4F SHANG3 +8D50 SI4 CI4 +8D51 BI4 +8D52 ZHOU1 +8D53 GENG1 +8D54 PEI2 +8D55 TAN4 TAN3 +8D56 LAI4 +8D57 FENG4 +8D58 ZHUI4 +8D59 FU4 +8D5A ZHUAN4 +8D5B SAI4 +8D5C ZE2 +8D5D YAN4 +8D5E ZAN4 +8D5F YUN1 +8D60 ZENG4 +8D61 SHAN4 DAN4 +8D62 YING2 +8D63 GAN4 GONG4 +8D64 CHI4 +8D65 XI4 +8D66 SHE4 CE4 +8D67 NAN3 +8D68 XIONG2 TONG2 +8D69 XI4 +8D6A CHENG1 +8D6B HE4 XI4 SHI4 +8D6C CHENG1 +8D6D ZHE3 +8D6E XIA2 +8D6F TANG2 +8D70 ZOU3 +8D71 ZOU3 +8D72 LI4 +8D73 JIU3 JIU1 JIU4 +8D74 FU4 +8D75 ZHAO4 TIAO3 +8D76 GAN3 QIAN2 +8D77 QI3 +8D78 SHAN4 +8D79 QIONG2 +8D7A QIN2 +8D7B XIAN3 +8D7C CI1 +8D7D JUE2 +8D7E QIN3 +8D7F CHI2 DI4 +8D80 CI1 +8D81 CHEN4 ZHEN1 CHEN2 +8D82 CHEN4 +8D83 DIE2 +8D84 JU1 QIE4 +8D85 CHAO1 CHAO3 CHAO4 TIAO4 +8D86 DI1 +8D87 SE4 +8D88 ZHAN1 +8D89 ZHU2 +8D8A YUE4 HUO2 +8D8B QU1 CU4 +8D8C JIE2 +8D8D CHI2 QU1 +8D8E CHU2 +8D8F GUA1 +8D90 XUE4 +8D91 CI1 ZI1 CI4 +8D92 TIAO2 +8D93 DUO3 +8D94 LIE4 +8D95 GAN3 +8D96 SUO1 +8D97 CU4 +8D98 XI2 +8D99 ZHAO4 TIAO3 DIAO4 +8D9A SU4 +8D9B YIN3 +8D9C JU2 +8D9D JIAN4 +8D9E QUE4 +8D9F TANG4 CHENG1 TANG1 ZHENG1 ZHENG4 +8DA0 CHUO4 CHAO4 +8DA1 CUI3 +8DA2 LU4 +8DA3 QU4 CU4 QU1 COU3 ZOU1 +8DA4 DANG4 +8DA5 QIU1 +8DA6 ZI1 +8DA7 TI2 +8DA8 QU1 CU4 QU4 COU3 +8DA9 CHI4 +8DAA HUANG2 +8DAB QIAO2 +8DAC QIAO2 QIAO1 +8DAD YAO4 JIAO4 +8DAE ZAO4 +8DAF TI4 YUE4 +8DB1 ZAN3 +8DB2 ZAN3 ZAN4 ZU1 +8DB3 ZU2 JU4 +8DB4 PA1 +8DB5 BAO4 ZHI1 BO1 ZHUO2 PAO2 +8DB6 KU4 +8DB7 KE1 +8DB8 DUN3 +8DB9 JUE2 GUI4 +8DBA FU1 +8DBB CHEN3 +8DBC JIAN3 YAN4 +8DBD FANG4 +8DBE ZHI3 +8DBF SA4 TA1 QI4 +8DC0 YUE4 +8DC1 PA2 +8DC2 QI2 QI3 QI4 +8DC3 YUE4 +8DC4 QIANG1 QIANG4 +8DC5 TUO4 +8DC6 TAI2 +8DC7 YI4 +8DC8 NIAN3 JIAN4 +8DC9 LING2 +8DCA MEI4 +8DCB BA2 BEI4 +8DCC DIE1 DIE2 TU2 +8DCD KU1 +8DCE TUO2 +8DCF JIA1 +8DD0 CI3 CAI3 +8DD1 PAO3 PAO2 BO2 +8DD2 QIA3 +8DD3 ZHU4 +8DD4 JU1 +8DD5 DIE2 TIE1 +8DD6 ZHI2 ZHI1 +8DD7 FU1 +8DD8 PAN2 +8DD9 JU3 +8DDA SHAN1 +8DDB BO3 BI4 PO1 +8DDC NI2 +8DDD JU4 +8DDE LI4 LUO4 +8DDF GEN1 +8DE0 YI2 +8DE1 JI1 JI4 +8DE2 DAI4 +8DE3 XIAN3 XIAN1 SUN3 +8DE4 JIAO1 QIAO1 +8DE5 DUO4 +8DE6 ZHU1 +8DE7 QUAN2 ZUN1 ZHUAN1 +8DE8 KUA4 KU4 KUA1 KUA3 +8DE9 ZHUAI3 SHI4 +8DEA GUI4 +8DEB QIONG2 QIONG1 QIANG1 +8DEC KUI3 XIE4 +8DED XIANG2 +8DEE CHI4 DIE2 +8DEF LU4 LUO4 +8DF0 BENG4 PIAN2 +8DF1 ZHI4 SHI4 +8DF2 JIA2 +8DF3 TIAO4 TIAO2 TAO2 DIAO4 +8DF4 CAI3 +8DF5 JIAN4 +8DF6 TA4 DA5 +8DF7 QIAO1 +8DF8 BI4 +8DF9 XIAN1 +8DFA DUO4 +8DFB JI1 +8DFC JU2 +8DFD JI4 +8DFE SHU2 +8DFF TU2 +8E00 CHU4 +8E01 JING4 +8E02 NIE4 +8E03 XIAO1 +8E04 BO2 +8E05 CHI4 XUE2 +8E06 QUN1 CUN1 CUN2 +8E07 MOU3 +8E08 SHU1 +8E09 LANG2 LIANG2 LIANG4 LANG4 +8E0A YONG3 +8E0B JIAO3 JUE2 +8E0C CHOU2 +8E0D QIAO1 +8E0F TA4 TA1 +8E10 JIAN4 +8E11 QI2 JI1 +8E12 WO1 +8E13 WEI3 +8E14 ZHUO2 CHUO1 DIAO4 ZHUO1 TIAO4 +8E15 JIE2 +8E16 JI2 +8E17 NIE1 +8E18 JU2 JU1 +8E19 JU1 +8E1A LUN2 +8E1B LU4 +8E1C LENG4 +8E1D HUAI2 HUA4 +8E1E JU4 +8E1F CHI2 +8E20 WAN3 +8E21 QUAN2 +8E22 TI1 DIE2 +8E23 BO2 POU4 +8E24 ZU2 CUI4 +8E25 QIE4 +8E26 JI3 JI1 QI1 YI3 +8E27 CU4 DI2 +8E28 ZONG1 +8E29 CAI3 KUI2 +8E2A ZONG1 +8E2B PENG4 +8E2C ZHI4 +8E2D ZHENG1 +8E2E DIAN3 +8E2F ZHI2 +8E30 YU2 +8E31 DUO4 DUO2 CHUO4 +8E32 DUN4 +8E33 CHUN3 +8E34 YONG3 +8E35 ZHONG3 ZHONG4 +8E36 DI4 CHI2 TI2 ZHI4 +8E37 ZHE3 +8E38 CHEN3 +8E39 CHUAI4 SHUAN4 DUAN4 +8E3A JIAN4 +8E3B GUA1 +8E3C TANG2 +8E3D JU3 +8E3E FU2 +8E3F ZU2 +8E40 DIE2 +8E41 PIAN2 +8E42 ROU2 +8E43 NUO4 +8E44 TI2 DI4 +8E45 CHA3 +8E46 TUI3 +8E47 JIAN3 QIAN1 +8E48 DAO3 DAO4 +8E49 CUO1 CHUAI4 +8E4A XI1 QI1 XI2 +8E4B TA4 +8E4C QIANG1 QIANG4 +8E4D ZHAN3 NIAN3 +8E4E DIAN1 +8E4F TI2 DI4 +8E50 JI2 +8E51 NIE4 +8E52 MAN2 PAN2 +8E53 LIU1 LIU4 +8E54 ZHAN4 ZAN4 +8E55 BI4 +8E56 CHONG1 +8E57 LU4 +8E58 LIAO2 +8E59 CU4 +8E5A TANG1 +8E5B DAI4 ZHI4 +8E5C SUO1 SU4 +8E5D XI3 +8E5E KUI3 +8E5F JI1 JI4 +8E60 ZHI2 +8E61 QIANG1 QIANG4 +8E62 DI2 ZHI2 +8E63 PAN2 MAN2 LIANG3 +8E64 ZONG1 +8E65 LIAN2 +8E66 BENG4 +8E67 ZAO1 +8E68 NIAN3 +8E69 BIE2 +8E6A TUI2 +8E6B JU2 +8E6C DENG4 DENG1 +8E6D CENG4 CENG2 +8E6E XIAN1 +8E6F FAN2 FAN1 +8E70 CHU2 +8E71 ZHONG1 +8E72 DUN1 DUN2 CUN2 ZUN1 CUN3 CUAN2 +8E73 BO1 +8E74 CU4 ZU2 +8E75 ZU2 CU4 +8E76 JUE2 JUE3 GUI4 +8E77 JUE2 +8E78 LIN4 +8E79 TA4 +8E7A QIAO1 QIAO4 +8E7B QIAO1 JUE2 +8E7C PU2 PU3 +8E7D LIAO1 +8E7E DUN1 +8E7F CUAN1 +8E80 KUANG4 +8E81 ZAO4 +8E82 TA4 DA5 +8E83 BI4 +8E84 BI4 +8E85 ZHU2 ZHUO2 +8E86 JU4 +8E87 CHU2 CHUO4 +8E88 QIAO4 +8E89 DUN3 +8E8A CHOU2 +8E8B JI1 +8E8C WU3 +8E8D YUE4 TI4 +8E8E NIAN3 +8E8F LIN4 +8E90 LIE4 +8E91 ZHI2 +8E92 LI4 LUO4 YUE4 +8E93 ZHI4 ZHI1 +8E94 CHAN2 ZHAN4 +8E95 CHU2 +8E96 DUAN4 +8E97 WEI4 +8E98 LONG2 +8E99 LIN4 +8E9A XIAN1 +8E9B WEI4 +8E9C ZUAN1 +8E9D LAN2 +8E9E XIE4 +8E9F RANG2 +8EA0 XIE3 SA3 XIE4 +8EA1 NIE4 +8EA2 TA4 +8EA3 QU2 +8EA4 JIE4 JI2 +8EA5 CUAN1 +8EA6 ZUAN1 CUO2 +8EA7 XI3 +8EA8 KUI2 +8EA9 JUE2 +8EAA LIN4 +8EAB SHEN1 YUAN2 JUAN1 +8EAC GONG1 +8EAD DAN1 +8EAF QU1 +8EB0 TI3 +8EB1 DUO3 +8EB2 DUO3 +8EB3 GONG1 +8EB4 LANG2 +8EB6 LUO3 +8EB7 AI3 +8EB8 JI1 +8EB9 JU2 +8EBA TANG3 +8EBD YAN3 +8EBF KANG1 +8EC0 QU1 +8EC1 LOU2 +8EC2 LAO4 +8EC3 TUO3 DUO3 +8EC4 ZHI2 +8EC6 TI3 +8EC7 DAO4 +8EC9 YU4 +8ECA CHE1 JU1 +8ECB YA4 GA2 ZHA2 +8ECC GUI3 +8ECD JUN1 +8ECE WEI4 +8ECF YUE4 +8ED0 XIN4 XIAN4 +8ED1 DI4 DAI4 +8ED2 XUAN1 XIAN3 XIAN4 HAN3 JIAN1 +8ED3 FAN4 +8ED4 REN4 +8ED5 SHAN1 +8ED6 QIANG2 +8ED7 SHU1 +8ED8 TUN2 +8ED9 CHEN2 QI2 +8EDA DAI4 +8EDB E4 +8EDC NA4 +8EDD QI2 +8EDE MAO2 +8EDF RUAN3 +8EE0 REN4 +8EE1 FAN3 +8EE2 ZHUAN3 +8EE3 HONG1 +8EE4 HU1 +8EE5 QU2 GOU1 JU1 +8EE6 HUANG4 +8EE7 DI3 +8EE8 LING2 +8EE9 DAI4 +8EEA AO1 +8EEB ZHEN3 +8EEC FAN4 BEN4 +8EED KUANG1 +8EEE ANG3 YANG3 +8EEF PENG1 +8EF0 BEI4 +8EF1 GU1 +8EF2 KU1 +8EF3 PAO2 +8EF4 ZHU4 +8EF5 RONG3 FU3 +8EF6 E4 +8EF7 BA2 +8EF8 ZHOU2 ZHU2 ZHOU4 +8EF9 ZHI3 +8EFA YAO2 DIAO1 +8EFB KE1 +8EFC YI4 DIE2 ZHE2 +8EFD QING1 +8EFE SHI4 +8EFF PING2 PENG1 +8F00 ER2 +8F01 QIONG2 GONG3 +8F02 JU2 +8F03 JIAO4 JUE2 XIAO4 +8F04 GUANG1 +8F05 LU4 YA4 HE2 +8F06 KAI3 +8F07 QUAN2 CHUN1 +8F08 ZHOU1 +8F09 ZAI4 ZAI3 DAI4 ZAI1 ZI1 +8F0A ZHI4 +8F0B SHE1 +8F0C LIANG4 +8F0D YU4 +8F0E SHAO1 +8F0F YOU2 +8F10 HUAN3 WAN4 +8F11 YUN3 +8F12 ZHE2 +8F13 WAN3 +8F14 FU3 +8F15 QING1 QING4 +8F16 ZHOU1 +8F17 NI2 +8F18 LING2 LENG2 +8F19 ZHE2 +8F1A ZHAN4 +8F1B LIANG4 +8F1C ZI1 ZI4 +8F1D HUI1 +8F1E WANG3 +8F1F CHUO4 +8F20 GUO3 GUO1 HUA4 HUI4 +8F21 KAN3 +8F22 YI3 +8F23 PENG2 +8F24 QIAN4 +8F25 GUN3 +8F26 NIAN3 +8F27 PIAN2 PING2 +8F28 GUAN3 +8F29 BEI4 +8F2A LUN2 +8F2B PAI2 PEI2 +8F2C LIANG2 +8F2D RUAN3 +8F2E ROU2 ROU3 +8F2F JI2 +8F30 YANG2 +8F31 XIAN2 +8F32 CHUAN2 +8F33 COU4 +8F34 CHUN1 SHUN1 QUN1 +8F35 GE2 +8F36 YOU2 +8F37 HONG1 +8F38 SHU1 SHU4 +8F39 FU4 +8F3A ZI1 ZI4 +8F3B FU2 +8F3C WEN1 +8F3D BEN4 +8F3E ZHAN3 NIAN3 +8F3F YU2 YU4 +8F40 WEN1 +8F41 TAO1 KAN3 +8F42 GU3 GU1 +8F43 ZHEN1 +8F44 XIA2 HE2 +8F45 YUAN2 +8F46 LU4 +8F47 JIU1 JIAO1 +8F48 CHAO2 +8F49 ZHUAN3 ZHUAN4 +8F4A WEI4 +8F4B HUN2 +8F4D CHE4 ZHE2 +8F4E JIAO4 +8F4F ZHAN4 +8F50 PU2 BU2 +8F51 LAO3 LAO2 LIAO3 +8F52 FEN2 +8F53 FAN1 +8F54 LIN2 LIN4 +8F55 GE2 +8F56 SE4 +8F57 KAN3 +8F58 HUAN4 HUAN2 +8F59 YI3 +8F5A JI2 +8F5B DUI4 +8F5C ER2 +8F5D YU2 +8F5E XIAN4 +8F5F HONG1 +8F60 LEI3 LEI2 +8F61 PEI4 +8F62 LI4 +8F63 LI4 +8F64 LU2 +8F65 LIN4 +8F66 CHE1 JU1 +8F67 YA4 GA2 ZHA2 +8F68 GUI3 +8F69 XUAN1 +8F6A DI4 DAI4 +8F6B REN4 +8F6C ZHUAN3 ZHUAN4 +8F6D E4 +8F6E LUN2 +8F6F RUAN3 +8F70 HONG1 +8F71 KU1 +8F72 KE1 +8F73 LU2 +8F74 ZHOU2 ZHU2 +8F75 ZHI3 +8F76 YI4 DIE2 +8F77 HU1 +8F78 ZHEN3 +8F79 LI4 +8F7A YAO2 +8F7B QING1 +8F7C SHI4 +8F7D ZAI4 ZAI3 +8F7E ZHI4 +8F7F JIAO4 +8F80 ZHOU1 +8F81 QUAN2 +8F82 LU4 YA4 +8F83 JIAO4 JUE2 +8F84 ZHE2 +8F85 FU3 +8F86 LIANG4 +8F87 NIAN3 +8F88 BEI4 +8F89 HUI1 +8F8A GUN3 +8F8B WANG3 +8F8C LIANG2 +8F8D CHUO4 +8F8E ZI1 +8F8F COU4 +8F90 FU2 +8F91 JI2 +8F92 WEN1 +8F93 SHU1 +8F94 PEI4 +8F95 YUAN2 +8F96 XIA2 +8F97 ZHAN3 NIAN3 +8F98 LU4 +8F99 CHE4 ZHE2 +8F9A LIN2 LIN4 +8F9B XIN1 +8F9C GU1 +8F9D CI2 +8F9E CI2 +8F9F PI4 PI1 BI4 MI3 +8FA0 ZUI4 +8FA1 BIAN4 +8FA2 LA4 +8FA3 LA4 +8FA4 CI2 +8FA5 XUE1 +8FA6 BAN4 +8FA7 BIAN4 +8FA8 BIAN4 BAN1 BAN4 BIAN3 PIAN4 +8FA9 BIAN4 PIAN2 +8FAB BIAN4 +8FAC BAN1 +8FAD CI2 +8FAE BIAN4 +8FAF BIAN4 PIAN2 BIAN3 BAN4 +8FB0 CHEN2 +8FB1 RU3 RU4 +8FB2 NONG2 +8FB3 NONG2 +8FB4 ZHEN3 +8FB5 CHUO4 +8FB6 CHUO4 +8FB8 RENG2 +8FB9 BIAN1 BIAN5 +8FBA BIAN1 +8FBD LIAO2 +8FBE DA2 TI4 TA4 +8FBF CHAN1 +8FC0 GAN1 +8FC1 QIAN1 GAN1 +8FC2 YU1 YU4 +8FC3 YU1 +8FC4 QI4 +8FC5 XUN4 +8FC6 YI3 YI2 +8FC7 GUO4 GUO1 +8FC8 MAI4 +8FC9 QI2 +8FCA ZA1 +8FCB WANG4 GUANG3 GUANG4 KUANG2 +8FCD ZHUN1 TUN2 +8FCE YING2 YING4 +8FCF TI4 +8FD0 YUN4 +8FD1 JIN4 JI4 +8FD2 HANG2 +8FD3 YA4 +8FD4 FAN3 +8FD5 WU4 WU3 +8FD6 DA2 TI4 TA4 +8FD7 E2 +8FD8 HUAN2 HAI2 XUAN2 +8FD9 ZHE4 ZHEI4 +8FDB JIN4 +8FDC YUAN3 YUAN4 +8FDD WEI2 +8FDE LIAN2 +8FDF CHI2 ZHI2 +8FE0 CHE4 +8FE1 NI4 +8FE2 TIAO2 +8FE3 ZHI4 CHI4 LI4 +8FE4 YI3 TUO1 YI2 TUO2 +8FE5 JIONG3 +8FE6 JIA1 XIE4 +8FE7 CHEN2 ZHEN4 +8FE8 DAI4 +8FE9 ER3 +8FEA DI2 +8FEB PO4 PAI3 +8FEC WANG3 +8FED DIE2 +8FEE ZE2 ZUO4 +8FEF TAO2 +8FF0 SHU4 +8FF1 TUO2 +8FF3 JING4 +8FF4 HUI2 +8FF5 TONG2 +8FF6 YOU4 +8FF7 MI2 MEI4 MI4 +8FF8 BENG4 BING3 PENG1 +8FF9 JI1 JI4 +8FFA NAI3 +8FFB YI2 +8FFC JIE2 +8FFD ZHUI1 DUI1 TUI1 +8FFE LIE4 +8FFF XUN4 +9000 TUI4 +9001 SONG4 +9002 SHI4 GUA1 KUO4 +9003 TAO2 +9004 PANG2 FENG2 +9005 HOU4 GOU4 +9006 NI4 +9007 DUN4 +9008 JIONG3 +9009 XUAN3 SUAN4 +900A XUN4 +900B BU1 +900C YOU2 +900D XIAO1 +900E QIU2 +900F TOU4 SHU1 +9010 ZHU2 DI2 ZHOU4 TUN2 +9011 QIU2 +9012 DI4 DAI4 +9013 DI4 +9014 TU2 +9015 JING4 +9016 TI4 +9017 DOU4 ZHU4 TOU2 QI2 +9018 YI3 +9019 ZHE4 ZHEI4 YAN4 +901A TONG1 TONG4 +901B GUANG4 KUANG2 +901C WU4 +901D SHI4 +901E CHENG3 YING2 +901F SU4 +9020 ZAO4 CAO4 CAO1 +9021 QUN1 JUN4 XUN4 SUO1 +9022 FENG2 PANG2 PENG2 +9023 LIAN2 LIAN3 LIAN4 LAN4 +9024 SUO4 +9025 HUI2 +9026 LI3 +9028 LAI2 +9029 BEN4 BEN1 +902A CUO4 +902B JUE2 +902C BENG4 +902D HUAN4 +902E DAI4 DAI3 DI4 +902F LU4 DAI4 +9030 YOU2 +9031 ZHOU1 +9032 JIN4 +9033 YU4 +9034 CHUO4 +9035 KUI2 +9036 WEI1 +9037 TI4 +9038 YI4 +9039 DA2 +903A YUAN3 YUAN4 +903B LUO2 LUO4 +903C BI1 +903D NUO4 +903E YU2 DOU4 +903F DANG4 TANG2 +9040 SUI2 +9041 DUN4 XUN2 QUN1 +9042 SUI4 SUI2 +9043 YAN3 +9044 CHUAN2 +9045 CHI2 +9046 TI2 +9047 YU4 +9048 SHI2 +9049 ZHEN1 ZHENG1 +904A YOU2 +904B YUN4 +904C E4 +904D BIAN4 +904E GUO4 GUO5 GUO1 HUO4 +904F E4 +9050 XIA2 +9051 HUANG2 +9052 QIU2 QIU1 +9053 DAO4 DAO3 +9054 DA2 TA4 TI4 +9055 WEI2 HUI2 +9057 YI2 WEI4 +9058 GOU4 +9059 YAO2 +905A CHU4 +905B LIU2 LIU4 +905C XUN4 +905D TA4 DAI4 +905E DI4 DAI4 +905F CHI2 ZHI4 XI1 +9060 YUAN3 YUAN4 +9061 SU4 +9062 TA4 +9063 QIAN3 QIAN4 +9065 YAO2 +9066 GUAN4 +9067 ZHANG1 +9068 AO2 +9069 SHI4 DI2 TI4 ZHE2 +906A CE4 +906B CHI4 +906C SU4 +906D ZAO1 +906E ZHE1 +906F DUN4 +9070 DI4 SHI4 +9071 LOU2 +9072 CHI2 ZHI4 XI1 ZHI2 +9073 CUO1 +9074 LIN2 LIN4 +9075 ZUN1 +9076 RAO4 RAO3 +9077 QIAN1 +9078 XUAN3 SUAN4 XUAN4 +9079 YU4 +907A YI2 WEI4 SUI2 +907B WU4 E4 +907C LIAO2 +907D JU4 QU2 +907E SHI4 +907F BI4 +9080 YAO1 +9081 MAI4 +9082 XIE4 +9083 SUI4 +9084 HUAN2 HAI2 XUAN2 +9085 ZHAN1 +9086 TENG2 +9087 ER3 +9088 MIAO3 MIAO2 +9089 BIAN1 +908A BIAN1 +908B LA2 LA1 LIE4 +908C LI2 +908D YUAN2 +908E YAO2 +908F LUO2 LUO4 +9090 LI3 +9091 YI4 E4 +9092 TING2 +9093 DENG4 +9094 QI3 JI4 +9095 YONG1 YONG3 +9096 SHAN1 +9097 HAN2 +9098 YU2 +9099 MANG2 +909A RU2 +909B QIONG2 +909D KUANG4 +909E FU1 +909F KANG4 KANG2 +90A0 BIN1 +90A1 FANG1 FANG3 FANG4 +90A2 XING2 GENG3 +90A3 NA4 NEI4 NA1 NA3 NE2 NEI3 NUO2 NUO4 +90A5 SHEN3 +90A6 BANG1 +90A7 YUAN2 +90A8 CUN1 +90A9 HUO3 +90AA XIE2 XU2 YA2 YE2 YU2 SHE2 +90AB BANG1 +90AC WU1 +90AD JU4 +90AE YOU2 +90AF HAN2 HAN4 +90B0 TAI2 +90B1 QIU1 +90B2 BI4 +90B3 PEI2 PI1 +90B4 BING3 +90B5 SHAO4 +90B6 BEI4 +90B7 WA3 +90B8 DI3 +90B9 ZOU1 +90BA YE4 +90BB LIN2 +90BC KUANG1 +90BD GUI1 +90BE ZHU1 +90BF SHI1 +90C0 KU1 +90C1 YU4 +90C2 GAI1 +90C3 HE2 XIA2 GE2 +90C4 XI4 QUE4 +90C5 ZHI4 ZHI1 JI2 +90C6 JI2 +90C7 XUN2 HUAN2 +90C8 HOU4 +90C9 XING2 +90CA JIAO1 +90CB XI2 XI1 +90CC GUI1 +90CD NUO2 +90CE LANG2 LANG4 +90CF JIA2 +90D0 KUAI4 +90D1 ZHENG4 +90D3 YUN4 +90D4 YAN2 +90D5 CHENG2 +90D6 DOU1 DOU4 +90D7 CHI1 XI1 +90D8 LV3 +90D9 FU3 +90DA WU2 +90DB FU2 +90DC GAO4 +90DD HAO3 SHI4 +90DE LANG2 LANG4 +90DF JIA2 +90E0 GENG3 +90E1 JUN4 +90E2 YING3 CHENG2 +90E3 BO2 +90E4 XI4 +90E5 BEI4 +90E6 LI4 ZHI2 +90E7 YUN2 +90E8 BU4 POU3 +90E9 XIAO2 +90EA QI1 CI1 +90EB PI2 +90EC QING1 +90ED GUO1 GUO2 +90EF TAN2 +90F0 ZOU1 +90F1 PING2 +90F2 LAI2 +90F3 NI2 +90F4 CHEN1 LAN2 +90F5 YOU2 CHUI2 +90F6 BU4 +90F7 XIANG1 +90F8 DAN1 +90F9 JU2 +90FA YONG1 +90FB QIAO1 +90FC YI1 +90FD DU1 DOU1 +90FE YAN3 YAN1 +90FF MEI2 FEI2 +9100 RUO4 +9101 BEI4 +9102 E4 +9103 YU2 SHU1 +9104 JUAN4 +9105 YU3 +9106 YUN4 +9107 HOU4 +9108 KUI2 +9109 XIANG1 XIANG3 XIANG4 +910A XIANG1 +910B SOU1 +910C TANG2 +910D MING2 +910E XI4 +910F RU4 RU3 +9110 CHU4 +9111 ZI1 +9112 ZOU1 JU4 +9113 JU2 +9114 WU1 +9115 XIANG1 XIANG3 XIANG4 +9116 YUN2 +9117 HAO4 +9118 YONG1 YONG2 +9119 BI3 +911A MO4 +911B CHAO2 +911C FU1 +911D LIAO3 +911E YIN2 +911F ZHUAN1 +9120 HU4 +9121 QIAO1 +9122 YAN1 +9123 ZHANG1 ZHANG4 +9124 MAN4 WAN4 FAN4 +9125 QIAO1 +9126 XU3 +9127 DENG4 +9128 BI4 +9129 XIN2 XUN2 +912A BI4 +912B CENG2 ZENG1 +912C WEI2 +912D ZHENG4 +912E MAO4 +912F SHAN4 +9130 LIN2 LIN4 +9131 PO2 PI2 PAN2 +9132 DAN1 DUO1 +9133 MENG2 +9134 YE4 +9135 CAO1 CAO4 +9136 KUAI4 +9137 FENG1 +9138 MENG2 +9139 ZOU1 JU4 +913A KUANG4 KUO4 +913B LIAN3 LIAN2 +913C ZAN4 CUO2 +913D CHAN2 +913E YOU1 +913F QI2 +9140 YAN1 +9141 CHAN2 +9142 ZAN4 DA2 +9143 LING2 +9144 HUAN1 +9145 XI1 +9146 FENG1 +9147 ZAN4 DA2 +9148 LI4 ZHI2 LI2 +9149 YOU3 +914A DING3 DING1 +914B QIU2 +914C ZHUO2 +914D PEI4 +914E ZHOU4 +914F YI2 HU4 TUO2 YI3 +9150 HANG4 GAN1 HANG3 HAN2 +9151 YU3 +9152 JIU3 +9153 YAN3 +9154 ZUI4 +9155 MAO2 +9156 DAN1 ZHEN4 +9157 XU4 +9158 TOU2 +9159 ZHEN1 +915A FEN1 +915D YUN4 +915E TAI4 +915F TIAN1 +9160 QIA3 +9161 TUO2 +9162 ZUO4 CU4 +9163 HAN1 HAN4 +9164 GU1 +9165 SU1 +9166 PO4 PO1 +9167 CHOU2 +9168 ZAI4 ZUI4 +9169 MING2 MING3 +916A LAO4 LUO4 LU4 +916B CHUO4 +916C CHOU2 +916D YOU4 +916E TONG2 DONG4 CHONG2 +916F ZHI3 +9170 XIAN1 +9171 JIANG4 +9172 CHENG2 +9173 YIN4 +9174 TU2 +9175 JIAO4 XIAO4 +9176 MEI2 +9177 KU4 +9178 SUAN1 +9179 LEI4 +917A PU2 +917B ZUI4 +917C HAI3 +917D YAN4 +917E XI3 LI2 SHAI1 SHI1 +917F NIANG4 NIANG2 +9180 WEI2 +9181 LU4 +9182 LAN3 +9183 YAN1 +9184 TAO2 +9185 PEI1 +9186 ZHAN3 +9187 CHUN2 +9188 TAN2 +9189 ZUI4 +918A CHUO4 ZHUI1 +918B CU4 +918C KUN1 +918D TI2 TI3 +918E MIAN2 +918F DU1 +9190 HU2 +9191 XU3 +9192 XING3 XING1 CHENG2 JING1 +9193 TAN3 +9194 JIU1 +9195 CHUN2 +9196 YUN4 +9197 PO4 +9198 KE4 +9199 SOU1 +919A MI2 +919B QUAN2 CHUO4 +919C CHOU3 +919D CUO2 CUO1 +919E YUN4 +919F YONG4 YONG3 +91A0 ANG4 +91A1 ZHA4 +91A2 HAI3 +91A3 TANG2 +91A4 JIANG4 +91A5 PIAO3 +91A6 SHAN3 +91A7 YU4 +91A8 LI2 +91A9 ZAO2 ZAO1 +91AA LAO2 +91AB YI1 +91AC JIANG4 +91AD BU2 PU1 PU2 +91AE JIAO4 QIAO2 ZHAN4 +91AF XI1 +91B0 TAN2 +91B1 PO4 PO1 +91B2 NONG2 +91B3 YI4 SHI4 +91B4 LI3 +91B5 JU4 +91B6 JIAO4 +91B7 YI4 +91B8 NIANG4 +91B9 RU2 +91BA XUN1 +91BB CHOU2 +91BC YAN4 +91BD LING2 +91BE MI2 +91BF MI2 +91C0 NIANG4 NIANG2 +91C1 XIN4 +91C2 JIAO4 +91C3 XI3 LI2 SHAI1 SHI1 +91C4 MI2 +91C5 YAN4 +91C6 BIAN4 CAI3 +91C7 CAI3 CAI4 +91C8 SHI4 +91C9 YOU4 +91CA SHI4 YI4 +91CB SHI4 YI4 +91CC LI3 +91CD ZHONG4 CHONG2 TONG2 +91CE YE3 +91CF LIANG4 LIANG2 +91D0 LI2 XI1 +91D1 JIN1 JIN4 +91D3 GA2 QIU2 +91D4 YI3 +91D5 LIAO3 LIAO4 DIAO3 +91D6 DAO1 +91D7 ZHAO1 +91D8 DING1 DING4 LING2 +91D9 PO4 PO1 +91DA QIU2 +91DB HE2 +91DC FU3 +91DD ZHEN1 +91DE ZHI2 +91DF BA1 +91E0 LUAN4 +91E1 FU3 +91E2 NAI2 +91E3 DIAO4 +91E4 SHAN4 SHAN1 XIAN1 +91E5 QIAO3 +91E6 KOU4 +91E7 CHUAN4 +91E8 ZI3 +91E9 FAN2 FAN3 FAN4 +91EA YU2 +91EB HUA2 +91EC HAN4 GAN1 +91ED GANG1 GONG1 +91EE QI2 +91EF MANG2 +91F0 RI4 +91F1 DI4 DAI4 +91F2 SI4 +91F3 XI4 +91F4 YI4 +91F5 CHAI1 CHA1 +91F6 SHI1 SHE2 +91F7 TU3 +91F8 XI4 +91F9 NV3 +91FA QIAN1 +91FC JIAN4 +91FD PI1 PI4 +91FE YE2 +91FF YIN2 JIN1 +9200 BA3 PA2 BA1 +9201 FANG1 +9202 CHEN2 +9203 XING2 JIAN1 +9204 DOU3 +9205 YUE4 +9206 YAN2 QIAN1 +9207 FU1 FU3 +9208 PI1 BU4 +9209 NA4 RUI4 +920A XIN1 +920B E2 +920C JUE2 +920D DUN4 +920E GOU1 +920F YIN3 +9210 QIAN2 HAN2 +9211 BAN3 +9212 JI2 SA4 +9213 REN2 +9214 CHAO1 MIAO3 CHAO3 +9215 NIU3 CHOU3 +9216 FEN1 +9217 YUN3 +9218 JI3 +9219 QIN2 +921A PI2 PI1 +921B GUO1 +921C HONG2 +921D YIN2 +921E JUN1 +921F SHI1 +9220 YI4 +9221 ZHONG1 +9222 NIE1 +9223 GAI4 +9224 RI4 +9225 HUO3 HUO2 +9226 TAI4 +9227 KANG4 +922C DUO2 +922D ZI1 +922E NI2 NI3 +922F TU2 +9230 SHI4 +9231 MIN2 +9232 GU1 +9233 KE1 E1 +9234 LING2 +9235 BING4 +9236 YI2 +9237 GU3 GU1 GU2 GU4 HU2 +9238 BO2 BA2 +9239 PI1 PI2 +923A YU4 +923B SI4 +923C ZUO2 +923D BU4 BU1 +923E YOU2 ZHOU4 +923F DIAN4 TIAN2 +9240 JIA3 HE2 GE2 +9241 ZHEN1 +9242 SHI3 +9243 SHI4 +9244 TIE3 +9245 JU4 +9246 CHAN1 QIAN2 TIE1 ZHAN1 QIN2 +9247 SHI1 YI2 SHE2 +9248 SHI1 SHE2 YI2 TUO2 TA1 +9249 XUAN4 +924A ZHAO1 +924B BAO4 PAO2 +924C HE2 +924D BI4 SE4 +924E SHENG1 +924F CHU2 JU3 XU2 +9250 SHI2 +9251 BO2 +9252 ZHU4 +9253 CHI4 +9254 ZA1 +9255 PO1 PO3 +9256 TONG2 +9257 QIAN2 AN1 +9258 FU2 +9259 ZHAI3 +925A LIU3 MAO3 +925B QIAN1 YAN2 +925C FU2 +925D LI4 +925E YUE4 HUI4 +925F PI1 +9260 YANG1 +9261 BAN4 +9262 BO1 +9263 JIE2 +9264 GOU1 GOU4 QU2 +9265 SHU4 +9266 ZHENG1 +9267 MU3 +9268 NI3 NIE3 XI3 +9269 NIE1 XI3 +926A DI4 +926B JIA1 +926C MU4 +926D DAN4 TAN3 +926E SHEN1 SHEN2 +926F YI3 +9270 SI1 +9271 KUANG4 +9272 KA3 +9273 BEI3 +9274 JIAN4 +9275 TONG2 +9276 XING2 +9277 HONG2 +9278 JIAO3 +9279 CHI3 +927A ER3 ER4 KENG1 +927B GE4 GE2 LUO4 GE1 +927C BING3 +927D SHI4 +927E MOU2 +927F HA1 JIA1 GE1 KE1 JIA2 +9280 YIN2 +9281 JUN1 +9282 ZHOU1 +9283 CHONG4 +9284 SHANG4 +9285 TONG2 +9286 MO4 +9287 LEI4 +9288 JI1 +9289 YU4 +928A XU4 +928B REN2 +928C ZUN4 +928D ZHI4 +928E QIONG1 QIONG2 +928F SHAN4 +9290 CHI4 +9291 XIAN3 XI3 XIAN1 +9292 XING2 JIAN1 +9293 QUAN2 +9294 PI1 +9295 TIE3 YI2 +9296 ZHU1 +9297 HOU2 HOU4 XIANG4 +9298 MING2 +9299 KUA3 +929A YAO2 DIAO4 TIAO2 QIAO1 YAO4 +929B XIAN1 +929C XIAN2 +929D XIU1 +929E JUN1 +929F CHA1 +92A0 LAO3 +92A1 JI2 +92A2 PI3 +92A3 RU2 RU3 +92A4 MI3 +92A5 YI1 YI3 +92A6 YIN1 +92A7 GUANG1 +92A8 AN3 AN1 +92A9 DIU1 +92AA YOU3 +92AB SE4 +92AC KAO4 +92AD QIAN2 +92AE LUAN2 +92B0 AI1 +92B1 DIAO4 +92B2 HAN4 +92B3 RUI4 DUI4 YUE4 +92B4 SHI4 +92B5 KENG1 +92B6 QIU2 +92B7 XIAO1 +92B8 ZHE2 +92B9 XIU4 +92BA ZANG4 +92BB TI1 TI2 TI4 +92BC CUO4 +92BD GUA1 +92BE GONG3 +92BF ZHONG1 YONG1 +92C0 DOU4 +92C1 LV3 LV4 +92C2 MEI2 +92C3 LANG2 +92C4 WAN3 WAN4 +92C5 XIN1 ZI3 +92C6 YUN2 +92C7 BEI4 +92C8 WU4 +92C9 SU4 +92CA YU4 +92CB CHAN2 YAN2 +92CC TING3 DING4 +92CD BO2 +92CE HAN4 +92CF JIA2 +92D0 HONG2 +92D1 CUAN1 +92D2 FENG1 +92D3 CHAN1 +92D4 WAN3 +92D5 ZHI4 +92D6 SI1 +92D7 XUAN1 JUAN1 +92D8 WU2 HUA2 +92D9 WU2 YU3 +92DA TIAO2 +92DB GONG3 +92DC ZHUO2 +92DD LVE4 +92DE XING2 +92DF QIAN1 QIN3 QIN1 JIN4 +92E0 SHEN4 +92E1 HAN2 +92E2 LVE4 +92E3 XIE2 YE2 +92E4 CHU2 JU3 +92E5 ZHENG4 ZENG4 +92E6 JU1 JU2 +92E7 XIAN4 +92E8 TIE3 E2 +92E9 MANG2 +92EA PU1 PU4 +92EB LI2 +92EC PAN4 +92ED RUI4 DUI4 +92EE CHENG2 +92EF GAO4 +92F0 LI3 +92F1 TE4 +92F3 ZHU4 +92F5 TU1 +92F6 LIU3 +92F7 ZUI4 +92F8 JU4 JU1 +92F9 CHANG3 +92FA YUAN1 +92FB JIAN4 +92FC GANG1 GANG4 +92FD DIAO4 +92FE TAO2 +92FF CHANG2 +9300 LUN2 +9301 GUO3 KUA3 KE4 +9302 LING2 +9303 BEI1 +9304 LU4 +9305 LI2 +9306 QIANG1 +9307 POU2 PEI2 FU2 +9308 JUAN4 +9309 MIN2 +930A ZUI4 +930B PENG2 BENG4 +930C AN4 +930D PI2 PI1 +930E XIAN4 +930F YA4 +9310 ZHUI1 +9311 LEI4 +9312 A1 KE1 +9313 KONG1 +9314 TA4 +9315 KUN1 GUN3 +9316 DU3 +9317 WEI4 +9318 CHUI2 +9319 ZI1 +931A ZHENG1 +931B BEN1 +931C NIE1 NIE4 +931D CONG2 +931E DUI4 CHUN2 DUO4 QUN2 +931F TAN2 XIAN1 YAN3 +9320 DING4 +9321 QI2 YI3 +9322 QIAN2 JIAN3 +9323 ZHUO2 ZHUI4 +9324 QI2 JI1 +9325 YU4 +9326 JIN3 +9327 GUAN3 +9328 MAO2 +9329 CHANG1 +932A TIAN3 +932B XI2 XI1 TI4 +932C LIAN4 +932D TAO2 DIAO1 +932E GU4 +932F CUO4 CU4 XI1 +9330 SHU4 +9331 ZHEN1 +9332 LU4 LV4 +9333 MENG3 +9334 LU4 +9335 HUA1 +9336 BIAO3 +9337 GA2 +9338 LAI2 +9339 KEN3 +933C NAI4 +933D WAN3 WAN4 +933E ZAN4 +9340 DE2 +9341 XIAN1 +9343 HUO1 HUO4 +9344 LIANG4 +9346 MEN2 +9347 KAI3 JIE1 JIE3 +9348 YING1 +9349 DI1 CHI2 DI2 SHI2 +934A LIAN4 +934B GUO1 GUO3 +934C XIAN3 +934D DU4 +934E TU2 +934F WEI2 +9350 CONG1 +9351 FU4 +9352 ROU2 +9353 JI2 +9354 E4 +9355 ROU2 +9356 CHEN3 ZHEN1 +9357 TI2 +9358 ZHA2 +9359 HONG4 +935A YANG2 +935B DUAN4 +935C XIA1 XIA2 +935D YU2 +935E KENG1 +935F XING1 +9360 HUANG2 +9361 WEI3 +9362 FU4 +9363 ZHAO1 +9364 CHA2 CHA1 +9365 QIE4 +9366 SHE2 SHI1 +9367 HONG1 +9368 KUI2 +9369 TIAN3 NUO4 +936A MOU2 +936B QIAO1 +936C QIAO1 +936D HOU2 +936E TOU1 +936F CONG1 +9370 HUAN2 +9371 YE4 +9372 MIN2 +9373 JIAN4 +9374 DUAN1 +9375 JIAN4 +9376 SI1 SONG1 +9377 KUI1 +9378 HU2 +9379 XUAN1 +937A ZHE3 DUO3 DU3 +937B JIE2 +937C ZHEN1 QIAN2 +937D BIAN1 +937E ZHONG1 +937F ZI1 +9380 XIU1 +9381 YE2 +9382 MEI3 +9383 PAI4 +9384 AI1 +9385 JIE4 +9387 MEI2 +9388 CHUO1 +9389 TA4 +938A BANG4 PANG1 +938B XIA2 +938C LIAN2 +938D SUO3 +938E XI4 +938F LIU2 +9390 ZU2 YAO2 +9391 YE4 +9392 NOU4 +9393 WENG1 +9394 RONG2 +9395 TANG2 +9396 SUO3 +9397 QIANG1 QIANG4 CHENG1 +9398 GE2 LI4 +9399 SHUO4 +939A CHUI2 +939B BO2 +939C PAN2 +939D SA4 DA1 +939E BI4 BI1 PI1 +939F SANG3 +93A0 GANG1 +93A1 ZI1 +93A2 WU1 WU4 +93A3 YING4 YING2 JIONG3 +93A4 HUANG3 +93A5 TIAO2 +93A6 LIU2 LIU4 +93A7 KAI3 +93A8 SUN3 +93A9 SHA1 SHI4 SE4 +93AA SOU1 +93AB WAN4 JIAN3 +93AC HAO4 GAO3 +93AD ZHEN4 ZHEN1 TIAN2 +93AE ZHEN4 ZHEN1 TIAN2 +93AF LUO3 LANG2 +93B0 YI4 +93B1 YUAN2 +93B2 TANG3 +93B3 NIE4 +93B4 XI2 +93B5 JIA1 +93B6 GE1 +93B7 MA3 +93B8 JUAN1 +93BB SUO3 +93BF NA2 +93C0 LU3 +93C1 SUO3 +93C2 OU1 KOU1 +93C3 ZU2 CHUO4 +93C4 TUAN2 +93C5 XIU1 +93C6 GUAN4 +93C7 XUAN4 XUAN2 +93C8 LIAN4 LIAN2 +93C9 SHOU4 +93CA AO2 AO4 +93CB MAN3 +93CC MO4 +93CD LUO2 +93CE BI4 +93CF WEI4 +93D0 LIU2 +93D1 DI2 DI1 +93D2 QIAO1 +93D3 CONG1 SONG3 +93D4 YI2 +93D5 LU4 +93D6 AO2 BIAO1 +93D7 KENG1 +93D8 QIANG1 +93D9 CUI1 +93DA QI4 QI1 +93DB CHANG2 +93DC TANG1 TANG2 +93DD MAN4 +93DE YONG1 +93DF CHAN3 +93E0 FENG1 +93E1 JING4 +93E2 BIAO1 +93E3 SHU4 +93E4 LOU4 LV2 +93E5 XIU4 +93E6 CONG1 +93E7 LONG2 +93E8 ZAN4 JIAN4 +93E9 JIAN4 +93EA CAO2 +93EB LI2 +93EC XIA4 +93ED XI1 +93EE KANG1 +93F0 BENG4 +93F3 ZHENG1 +93F4 LU4 +93F5 HUA2 +93F6 JI2 +93F7 PU2 +93F8 HUI4 +93F9 QIANG1 QIANG3 +93FA PO1 +93FB LIN2 +93FC SUO3 +93FD XIU4 +93FE SAN3 XIAN4 +93FF CHENG1 +9400 KUI4 GUI4 +9401 SI1 +9402 LIU4 LIU2 +9403 NAO2 NAO4 +9404 HENG2 +9405 PIE3 +9406 SUI4 +9407 FAN2 +9408 QIAO2 +9409 QUAN1 +940A YANG2 +940B TANG4 TANG1 +940C XIANG4 +940D JUE2 +940E JIAO1 +940F ZUN1 +9410 LIAO2 LIAO4 +9411 JIE2 +9412 LAO2 +9413 DUI4 DUI1 DUN1 +9414 TAN2 XIN1 XIN2 +9415 ZAN1 +9416 JI1 +9417 JIAN3 +9418 ZHONG1 +9419 DENG4 DENG1 +941A YA4 +941B YING4 +941C DUI4 +941D JUE2 +941E NOU4 +941F TI4 +9420 PU3 +9421 TIE3 +9424 DING3 ZHEN1 +9425 SHAN4 +9426 KAI1 +9427 JIAN3 JIAN4 JIAN1 +9428 FEI4 +9429 SUI4 +942A LU3 +942B JUAN1 +942C HUI4 +942D YU4 +942E LIAN2 +942F ZHUO2 ZHUO1 +9430 QIAO1 +9431 QIAN1 +9432 ZHUO2 SHU3 +9433 LEI2 +9434 BI4 +9435 TIE3 DIE2 +9436 HUAN2 +9437 YE4 +9438 DUO2 +9439 GUO3 +943A DANG1 CHENG1 TANG1 +943B JU4 QU2 +943C FEN2 BEN1 +943D DA2 +943E BEI4 BI4 +943F YI4 +9440 AI4 +9441 ZONG1 +9442 XUN4 +9443 DIAO4 +9444 ZHU4 +9445 HENG2 +9446 ZHUI4 +9447 JI1 +9448 NIE1 +9449 TA4 +944A HUO4 +944B QING4 QING1 +944C BIN1 +944D YING1 +944E KUI4 +944F NING2 +9450 XU1 RU2 +9451 JIAN4 +9452 JIAN4 +9454 CHA3 +9455 ZHI4 +9456 MIE4 MI4 +9457 LI2 +9458 LEI2 +9459 JI1 +945A ZUAN4 ZUAN1 +945B KUANG4 +945C SHANG4 +945D PENG2 +945E LA4 +945F DU2 +9460 SHUO4 YUE4 LI4 +9461 CHUO4 +9462 LV4 +9463 BIAO1 +9464 BAO4 PAO2 +9465 LU3 +9468 LONG2 +9469 E4 +946A LU2 +946B XIN1 XUN4 +946C JIAN4 +946D LAN2 LAN4 +946E BO2 +946F JIAN1 +9470 YAO4 YUE4 +9471 CHAN2 +9472 XIANG1 RANG2 +9473 JIAN4 +9474 XI1 HUI1 +9475 GUAN4 +9476 CANG2 +9477 NIE4 +9478 LEI3 +9479 CUAN4 CUAN1 +947A QU2 +947B PAN4 +947C LUO2 +947D ZUAN1 ZUAN4 +947E LUAN2 +947F ZAO2 ZUO4 ZU2 ZAO4 +9480 NIE4 +9481 JUE2 +9482 TANG3 +9483 SHU3 ZHU2 +9484 LAN2 +9485 JIN1 +9486 QIU2 GA2 +9487 YI3 +9488 ZHEN1 +9489 DING1 DING4 +948A ZHAO1 +948B PO4 +948C DIAO3 LIAO3 +948D TU3 +948E QIAN1 +948F CHUAN4 +9490 SHAN4 SHAN1 XIAN1 +9491 JI2 SA4 +9492 FAN2 +9493 DIAO4 +9494 MEN2 +9495 NV3 +9496 XI2 XI1 +9497 CHAI1 +9498 XING2 JIAN1 +9499 GAI4 +949A BU4 +949B TAI4 +949C JU4 +949D DUN4 +949E CHAO1 MIAO3 +949F ZHONG1 +94A0 NA4 +94A1 BEI4 +94A2 GANG1 GANG4 +94A3 BAN3 +94A4 QIAN2 +94A5 YAO4 YUE4 +94A6 QIN1 +94A7 JUN1 +94A8 WU4 WU1 +94A9 GOU1 +94AA KANG4 +94AB FANG1 +94AC HUO2 HUO3 +94AD DOU3 +94AE NIU3 +94AF BA3 PA2 +94B0 YU4 +94B1 QIAN2 JIAN3 +94B2 ZHENG1 +94B3 QIAN2 +94B4 GU1 GU2 GU3 +94B5 BO1 +94B6 E1 KE1 +94B7 PO1 PO3 +94B8 BU4 +94B9 BA2 BO2 +94BA YUE4 HUI4 +94BB ZUAN4 ZUAN1 +94BC MU4 +94BD DAN4 TAN3 +94BE JIA3 HE2 +94BF DIAN4 TIAN2 +94C0 YOU2 +94C1 TIE3 +94C2 BO2 +94C3 LING2 +94C4 SHUO4 +94C5 QIAN1 YAN2 +94C6 LIU3 MAO3 +94C7 BAO4 +94C8 SHI4 +94C9 XUAN4 +94CA SHE2 SHI1 TA1 TUO2 +94CB BI4 +94CC NI3 +94CD PI1 PI2 +94CE DUO2 +94CF XING2 +94D0 KAO4 +94D1 LAO3 +94D2 ER4 +94D3 MANG2 +94D4 YA4 +94D5 YOU3 +94D6 CHENG2 +94D7 JIA2 +94D8 YE2 +94D9 NAO2 +94DA ZHI4 +94DB DANG1 CHENG1 +94DC TONG2 +94DD LV3 +94DE DIAO4 +94DF YIN1 +94E0 KAI3 +94E1 ZHA2 +94E2 ZHU1 +94E3 XIAN3 XI3 +94E4 TING3 +94E5 DIU1 +94E6 XIAN1 +94E7 HUA2 +94E8 QUAN2 +94E9 SHA1 +94EA JIA2 HA1 JIA1 KE1 +94EB YAO2 TIAO2 +94EC GE4 GE2 LUO4 +94ED MING2 +94EE ZHENG1 +94EF SE4 +94F0 JIAO3 +94F1 YI3 YI1 +94F2 CHAN3 +94F3 CHONG4 +94F4 TANG4 +94F5 AN1 +94F6 YIN2 +94F7 RU3 RU2 +94F8 ZHU4 +94F9 LAO2 +94FA PU1 PU4 +94FB WU2 YU3 +94FC LAI2 +94FD TE4 +94FE LIAN4 +94FF KENG1 +9500 XIAO1 +9501 SUO3 +9502 LI3 +9503 ZHENG4 ZENG4 +9504 CHU2 +9505 GUO1 +9506 GAO4 +9507 TIE3 E2 +9508 XIU4 +9509 CUO4 +950A LVE4 +950B FENG1 +950C XIN1 +950D LIU3 +950E KAI1 +950F JIAN3 JIAN4 +9510 RUI4 DUI4 YUE4 +9511 TI4 TI1 +9512 LANG2 +9513 QIAN1 QIN3 +9514 JU2 JU1 +9515 A1 +9516 QIANG1 +9517 DUO3 ZHE3 +9518 TIAN3 NUO4 +9519 CUO4 CU4 +951A MAO2 +951B BEN1 +951C QI2 YI3 +951D DE2 +951E KUA3 KE4 +951F KUN1 +9520 CHANG1 +9521 XI2 TI4 +9522 GU4 +9523 LUO2 +9524 CHUI2 +9525 ZHUI1 +9526 JIN3 +9527 ZHI4 +9528 XIAN1 +9529 JUAN4 +952A HUO1 HUO4 +952B POU2 PEI2 +952C TAN2 XIAN1 +952D DING4 +952E JIAN4 +952F JU4 JU1 +9530 MENG3 +9531 ZI1 +9532 QIE4 +9533 YING1 +9534 KAI3 JIE1 +9535 QIANG1 +9536 SONG1 SI1 +9537 E4 +9538 CHA2 +9539 QIAO1 +953A ZHONG1 +953B DUAN4 +953C SOU1 +953D HUANG2 +953E HUAN2 +953F AI1 +9540 DU4 +9541 MEI3 +9542 LOU4 +9543 ZI1 +9544 FEI4 +9545 MEI2 +9546 MO4 +9547 ZHEN4 +9548 BO2 +9549 GE2 LI4 +954A NIE4 +954B TANG3 +954C JUAN1 +954D NIE4 +954E NA2 +954F LIU2 LIU4 +9550 HAO4 GAO3 +9551 BANG4 +9552 YI4 +9553 JIA1 +9554 BIN1 +9555 RONG2 +9556 BIAO1 +9557 TANG1 +9558 MAN4 +9559 LUO2 +955A BENG4 +955B YONG1 +955C JING4 +955D DI2 DI1 +955E ZU2 +955F XUAN4 +9560 LIU2 +9561 TAN2 XIN2 +9562 JUE2 +9563 LIAO2 LIAO4 +9564 PU2 +9565 LU3 +9566 DUI4 +9567 LAN4 LAN2 +9568 PU3 +9569 CUAN4 CUAN1 +956A QIANG1 QIANG3 +956B DENG1 DENG4 +956C HUO4 +956D LEI2 +956E HUAN2 +956F ZHUO2 +9570 LIAN2 +9571 YI4 +9572 CHA3 +9573 BIAO1 +9574 LA4 +9575 CHAN2 +9576 XIANG1 RANG2 +9577 CHANG2 ZHANG3 ZHANG4 +9578 CHANG2 +9579 JIU3 +957A AO3 AO4 +957B DIE2 +957C QU1 JUE2 +957D LIAO3 +957E MI2 +957F CHANG2 ZHANG3 ZHANG4 +9580 MEN2 +9581 MA4 +9582 SHUAN1 +9583 SHAN3 +9584 HUO4 +9585 MEN2 +9586 YAN2 YAN3 YAN4 +9587 BI4 +9588 HAN4 +9589 BI4 +958B KAI1 +958C KANG4 KANG1 +958D BENG1 +958E HONG2 +958F RUN4 +9590 SAN4 +9591 XIAN2 +9592 XIAN2 JIAN1 JIAN4 +9593 JIAN1 JIAN4 JIAN3 +9594 MIN3 MIN2 +9595 XIA1 XIA4 +9597 DOU4 +9598 ZHA2 YA1 GE2 +9599 NAO4 +959B PENG1 +959C XIA3 XIA4 KE3 +959D LING2 +959E BIAN4 +959F BI4 +95A0 RUN4 +95A1 HE2 GAI1 AI4 HAI4 KAI3 +95A2 GUAN1 WAN1 WAN3 +95A3 GE2 +95A4 GE2 HE2 +95A5 FA2 +95A6 CHU4 +95A7 HONG4 HONG3 +95A8 GUI1 +95A9 MIN3 +95AB KUN3 +95AC LANG3 DU1 +95AD LV2 +95AE TING2 +95AF SHA4 +95B0 JU2 +95B1 YUE4 +95B2 YUE4 +95B3 CHAN3 +95B4 QU4 +95B5 LIN4 +95B6 CHANG1 TANG1 +95B7 SHAI4 SHA1 +95B8 KUN3 +95B9 YAN1 +95BA WEN2 MIN2 +95BB YAN2 YAN4 YAN3 +95BC E4 YAN1 YU4 YE4 +95BD HUN1 +95BE YU4 +95BF WEN2 +95C0 XIANG4 +95C1 BAO1 +95C2 XIANG4 +95C3 QU4 +95C4 YAO3 +95C5 WEN2 +95C6 BAN3 +95C7 AN4 AN1 YAN3 +95C8 WEI2 +95C9 YIN1 +95CA KUO4 +95CB QUE4 JUE2 KUI2 +95CC LAN2 LAN4 +95CD DU1 SHE2 +95D0 TIAN2 +95D1 NIE4 +95D2 TA4 +95D3 KAI3 KAI1 +95D4 HE2 GE2 +95D5 QUE4 QUE1 JUE2 +95D6 CHUANG3 CHEN4 +95D7 GUAN1 +95D8 DOU4 +95D9 QI3 +95DA KUI1 KUI3 +95DB TANG2 CHANG1 TANG1 +95DC GUAN1 +95DD PIAO2 +95DE KAN4 HAN3 XIAN4 +95DF XI4 TA4 SA4 +95E0 HUI4 +95E1 CHAN3 +95E2 PI4 +95E3 DANG4 +95E4 HUAN2 +95E5 TA4 +95E6 WEN2 +95E8 MEN2 +95E9 SHUAN1 +95EA SHAN3 +95EB YAN4 +95EC HAN4 +95ED BI4 +95EE WEN4 +95EF CHUANG3 CHEN4 +95F0 RUN4 +95F1 WEI2 +95F2 XIAN2 +95F3 HONG2 +95F4 JIAN1 JIAN4 +95F5 MIN3 +95F6 KANG4 KANG1 +95F7 MEN4 MEN1 +95F8 ZHA2 +95F9 NAO4 +95FA GUI1 +95FB WEN2 WEN4 +95FC TA4 +95FD MIN3 +95FE LV2 +95FF KAI3 KAI1 +9600 FA2 +9601 GE2 +9602 HE2 GAI1 +9603 KUN3 +9604 JIU1 +9605 YUE4 +9606 LANG3 LANG4 LANG2 LIANG3 +9607 DU1 SHE2 +9608 YU4 +9609 YAN1 +960A CHANG1 +960B XI4 +960C WEN2 +960D HUN1 +960E YAN2 YAN4 +960F E4 YAN1 YU4 +9610 CHAN3 +9611 LAN2 +9612 QU4 +9613 HUI4 +9614 KUO4 +9615 QUE4 +9616 GE2 HE2 +9617 TIAN2 +9618 TA4 +9619 QUE4 JUE2 QUE1 +961A KAN4 +961B HUAN2 +961C FU4 +961D FU4 YI4 +961E LE4 +961F DUI4 SUI4 ZHUI4 +9620 XIN4 +9621 QIAN1 +9622 WU4 WEI4 +9623 YI4 +9624 TUO2 YI3 ZHI4 +9625 YIN1 YIN4 AN1 +9626 YANG2 +9627 DOU3 +9628 E4 AI4 +9629 SHENG1 +962A BAN3 +962B PEI2 PEI1 +962C KENG1 GANG1 +962D YUN3 +962E RUAN3 JUAN4 YUAN2 +962F ZHI3 +9630 PI2 +9631 JING3 +9632 FANG2 +9633 YANG2 +9634 YIN1 YIN4 AN1 +9635 ZHEN4 +9636 JIE1 +9637 CHENG1 +9638 E4 AI4 +9639 QU1 +963A DI3 +963B ZU3 ZHU4 +963C ZUO4 +963D DIAN4 YAN2 +963E LING3 +963F A1 A4 A5 E1 E3 A3 +9640 TUO2 DUO4 +9641 TUO2 YI3 +9642 BEI1 BI4 PO1 PI2 +9643 BING3 +9644 FU4 POU3 BU4 FU1 +9645 JI4 +9646 LU4 LIU4 +9647 LONG3 +9648 CHEN2 ZHEN4 +9649 XING2 JING4 +964A DUO4 +964B LOU4 +964C MO4 +964D JIANG4 XIANG2 XIANG4 +964E SHU1 +964F DUO4 +9650 XIAN4 WEN3 +9651 ER2 +9652 GUI3 +9653 YU1 WU1 +9654 GAI1 +9655 SHAN3 +9656 XUN4 JUN4 +9657 QIAO4 +9658 XING2 JING4 +9659 CHUN2 +965A FU4 +965B BI4 +965C XIA2 SHAN3 +965D SHAN3 +965E SHENG1 +965F ZHI4 DE2 +9660 PU1 +9661 DOU3 +9662 YUAN4 +9663 ZHEN4 +9664 CHU2 ZHU4 SHU1 +9665 XIAN4 +9667 NIE4 +9668 YUN3 YUAN2 +9669 XIAN3 YAN2 +966A PEI2 +966B PEI2 FEI3 +966C ZOU1 ZHE2 +966D YI1 QI1 YI4 +966E DUI3 +966F LUN2 +9670 YIN1 YIN4 AN1 +9671 JU1 +9672 CHUI2 +9673 CHEN2 ZHEN4 +9674 PI2 BI4 +9675 LING2 +9676 TAO2 DAO4 YAO2 +9677 XIAN4 +9678 LU4 LIU4 +967A XIAN3 +967B YIN1 +967C ZHU3 DU3 +967D YANG2 +967E RENG2 +967F SHAN3 XIA2 +9680 CHONG2 +9681 YAN4 +9682 YIN1 AN1 YIN4 +9683 YU2 YAO2 +9684 DI1 TI2 +9685 YU2 +9686 LONG2 LONG1 +9687 WEI1 +9688 WEI1 +9689 NIE4 +968A DUI4 SUI4 ZHUI4 +968B SUI2 DUO4 TUO3 TUO1 +968C AN3 +968D HUANG2 +968E JIE1 +968F SUI2 +9690 YIN3 YIN4 +9691 GAI1 GAI4 QI2 +9692 YAN3 +9693 HUI1 +9694 GE2 RONG3 JI1 +9695 YUN3 YUAN2 +9696 WU4 +9697 WEI3 GUI1 KUI2 +9698 AI4 E4 +9699 XI4 +969A TANG2 +969B JI4 +969C ZHANG4 ZHANG1 +969D DAO3 +969E AO2 +969F XI4 +96A0 YIN3 +96A2 RAO4 +96A3 LIN2 +96A4 TUI2 +96A5 DENG4 +96A6 PI3 +96A7 SUI4 ZHUI4 +96A8 SUI2 +96A9 YU4 AO4 +96AA XIAN3 YAN2 JIAN3 +96AB FEN1 FEN2 +96AC NI3 +96AD ER2 +96AE JI1 +96AF DAO3 +96B0 XI2 XIE4 +96B1 YIN3 YIN4 +96B2 E2 +96B3 HUI1 +96B4 LONG3 +96B5 XI1 +96B6 LI4 DAI4 YI4 DI4 +96B7 LI4 +96B8 LI4 +96B9 ZHUI1 CUI1 WEI2 +96BA HE4 +96BB ZHI1 +96BC ZHUN3 SUN3 +96BD JUN4 JUAN4 +96BE NAN2 NAN4 NUO2 +96BF YI4 +96C0 QUE4 QIAO1 QIAO3 +96C1 YAN4 +96C2 QIN2 QIAN2 +96C3 YA3 +96C4 XIONG2 +96C5 YA3 YA1 YA2 +96C6 JI2 +96C7 GU4 +96C8 HUAN2 +96C9 ZHI4 KAI3 YI3 SI4 +96CA GOU4 +96CB JUN4 JUAN4 +96CC CI2 CI1 +96CD YONG1 +96CE JU1 +96CF CHU2 +96D0 HU1 +96D1 ZA2 +96D2 LUO4 +96D3 YU2 +96D4 CHOU2 +96D5 DIAO1 +96D6 SUI1 +96D7 HAN4 +96D8 HUO4 +96D9 SHUANG1 +96DA GUAN4 +96DB CHU2 JU2 JU4 +96DC ZA2 +96DD YONG1 +96DE JI1 +96DF XI1 SUI3 +96E0 CHOU2 +96E1 LIU4 +96E2 LI2 LI4 LI3 CHI1 GU3 +96E3 NAN2 NAN4 NUO2 +96E4 XUE2 +96E5 ZA2 +96E6 JI2 +96E7 JI2 +96E8 YU3 YU4 +96E9 YU2 YU4 XU1 +96EA XUE3 +96EB NA3 +96EC FOU3 +96ED SE4 +96EE MU4 +96EF WEN2 +96F0 FEN1 +96F1 PANG2 +96F2 YUN2 +96F3 LI4 +96F4 LI4 +96F5 ANG3 +96F6 LING2 LIAN2 +96F7 LEI2 LEI4 +96F8 AN2 +96F9 BAO2 BO2 +96FA MENG2 +96FB DIAN4 +96FC DANG4 +96FD XING2 +96FE WU4 +96FF ZHAO4 +9700 XU1 NUO4 RUAN3 RU2 +9701 JI4 +9702 MU4 +9703 CHEN2 +9704 XIAO1 XIAO4 +9705 ZHA2 XIA2 ZHA4 SHA4 +9706 TING2 +9707 ZHEN4 SHEN1 +9708 PEI4 +9709 MEI2 +970A LING2 +970B QI1 +970C CHOU1 +970D HUO4 HE4 SUO3 +970E SHA4 +970F FEI1 +9710 WENG1 +9711 ZHAN1 +9712 YIN1 +9713 NI2 +9714 ZHU4 +9715 TUN2 +9716 LIN2 +9718 DONG4 +9719 YING1 +971A WU4 +971B LING2 +971C SHUANG1 +971D LING2 LING4 +971E XIA2 +971F HONG2 +9720 YIN1 +9721 MO4 MAI4 +9722 MAI4 +9723 YUN3 +9724 LIU4 +9725 MENG4 +9726 BIN1 +9727 WU4 MENG2 +9728 WEI4 +9729 HUO4 KUO4 +972A YIN2 +972B XI2 +972C YI4 +972D AI3 +972E DAN4 +972F DENG4 +9730 XIAN4 +9731 YU4 +9732 LU4 LOU4 +9733 LONG2 +9734 DAI4 +9735 JI2 +9736 PANG2 PANG1 +9737 YANG2 +9738 BA4 PO4 +9739 PI1 +973A WEI2 +973C XI3 XI4 +973D JI4 +973E MAI2 LI2 +973F MENG4 MENG2 MOU4 +9740 MENG2 +9741 LEI2 LEI4 +9742 LI4 +9743 HUO4 SUI3 +9744 AI3 +9745 FEI4 +9746 DAI4 +9747 LONG2 +9748 LING2 LING4 +9749 AI4 +974A FENG1 +974B LI4 +974C BAO3 +974E HE4 +974F HE4 +9750 BING4 +9751 QING1 +9752 QING1 JING1 +9753 JING4 +9754 TIAN1 +9755 ZHEN1 +9756 JING4 JING1 +9757 CHENG4 +9758 QING4 +9759 JING4 +975A JING4 LIANG4 +975B DIAN4 +975C JING4 +975D TIAN1 +975E FEI1 FEI3 +975F FEI1 +9760 KAO4 +9761 MI3 MI2 MA2 MEI2 MO2 +9762 MIAN4 +9763 MIAN4 +9764 PAO4 +9765 YE4 +9766 TIAN3 MIAN3 +9767 HUI4 +9768 YE4 YAN3 +9769 GE2 JI2 JI3 +976A DING1 +976B CHA1 CHAI1 +976C JIAN1 +976D REN4 +976E DI2 +976F DU4 +9770 WU4 +9771 REN4 +9772 QIN2 JIN4 +9773 JIN4 +9774 XUE1 +9775 NIU3 +9776 BA3 BA4 +9777 YIN3 +9778 SA3 TA1 +9779 NA4 +977A MO4 +977B ZU3 +977C DA2 +977D BAN4 +977E YI4 XIE4 +977F YAO4 +9780 TAO2 +9781 TUO2 BEI4 +9782 JIA2 +9783 HONG2 +9784 PAO2 BAO4 +9785 YANG3 YANG1 +9787 YIN1 +9788 JIA2 GE2 TA4 +9789 TAO2 +978A JI2 +978B XIE2 WA1 +978C AN1 +978D AN1 +978E HEN2 +978F GONG3 +9791 DA2 +9792 QIAO1 +9793 TING1 +9794 WAN3 MAN2 MEN4 +9795 YING4 +9796 SUI1 +9797 TIAO2 +9798 QIAO4 SHAO1 +9799 XUAN4 JUAN1 +979A KONG4 +979B BENG3 +979C TA4 +979D ZHANG3 +979E BING3 BI3 PI2 +979F KUO4 +97A0 JU1 JU2 QU1 QIONG1 +97A1 LA5 +97A2 XIE4 +97A3 ROU2 +97A4 BANG1 +97A5 YI4 ENG1 +97A6 QIU1 +97A7 QIU1 +97A8 HE2 MO4 +97A9 XIAO4 +97AA MU4 MOU2 +97AB JU2 JU1 QU1 +97AC JIAN1 JIAN4 +97AD BIAN1 +97AE DI1 +97AF JIAN1 +97B1 TAO1 +97B2 GOU1 +97B3 TA4 +97B4 BEI4 BU4 FU2 BAI4 +97B5 XIE2 +97B6 PAN2 +97B7 GE2 +97B8 BI4 +97B9 KUO4 +97BB LOU2 LV3 +97BC GUI4 +97BD QIAO2 +97BE XUE1 +97BF JI1 +97C0 JIAN1 +97C1 JIANG1 +97C2 CHAN4 +97C3 DA2 TA4 +97C4 HUO4 HU4 +97C5 XIAN3 +97C6 QIAN1 +97C7 DU2 +97C8 WA4 +97C9 JIAN1 +97CA LAN2 +97CB WEI2 HUI2 +97CC REN4 +97CD FU2 +97CE MEI4 +97CF JUAN4 +97D0 GE2 +97D1 WEI3 +97D2 QIAO4 +97D3 HAN2 +97D4 CHANG4 +97D6 ROU2 +97D7 XUN4 YUN4 +97D8 SHE4 +97D9 WEI3 +97DA GE2 +97DB BEI4 +97DC TAO1 TAO4 +97DD GOU1 +97DE YUN4 WEN1 +97E0 BI4 +97E1 WEI3 +97E2 HUI4 +97E3 DU2 +97E4 WA4 +97E5 DU2 +97E6 WEI2 +97E7 REN4 +97E8 FU2 +97E9 HAN2 +97EA WEI3 +97EB YUN4 +97EC TAO1 +97ED JIU3 +97EE JIU3 +97EF XIAN1 +97F0 XIE4 +97F1 XIAN1 +97F2 JI1 +97F3 YIN1 YIN4 +97F4 ZA2 +97F5 YUN4 +97F6 SHAO2 +97F7 LE4 +97F8 PENG2 +97F9 HENG2 +97FA YING1 +97FB YUN4 +97FC PENG2 +97FD YIN1 AN1 +97FE YIN1 +97FF XIANG3 +9800 HU4 HUO4 +9801 YE4 XIE2 +9802 DING3 +9803 QING3 KUI3 QING1 +9804 KUI2 QIU2 PAN4 +9805 XIANG4 +9806 SHUN4 +9807 HAN1 AN4 +9808 XU1 +9809 YI2 +980A XU4 +980B GU4 +980C SONG4 RONG2 +980D KUI3 +980E QI2 KEN3 +980F HANG2 GANG1 HANG4 +9810 YU4 +9811 WAN2 KUN1 +9812 BAN1 FEN2 +9813 DUN4 DU2 ZHUN1 +9814 DI2 +9815 DAN1 +9816 PAN4 +9817 PO1 PO3 PO4 PI2 +9818 LING3 +9819 CE4 +981A JING3 +981B LEI3 +981C HE2 HAN4 GE2 HAN2 QIN1 +981D QIAO1 +981E E4 +981F E2 +9820 WEI3 +9821 JIE2 JIA2 XIE2 +9822 GUA1 +9823 SHEN3 +9824 YI2 +9825 SHEN3 +9826 HAI2 KE1 KE2 +9827 DUI1 +9828 PIAN1 +9829 PING1 +982A LEI4 +982B FU3 TIAO4 +982C JIA2 +982D TOU2 TOU5 +982E HUI4 +982F KUI2 QIU2 +9830 JIA2 +9831 LE4 +9832 TING3 TIAN5 +9833 CHENG1 +9834 YING3 +9835 JUN1 YUN1 +9836 HU2 +9837 HAN4 +9838 JING3 GENG3 +9839 TUI2 +983A TUI2 +983B PIN2 BIN1 +983C LAI4 +983D TUI2 +983E ZI1 +983F ZI1 +9840 CHUI2 +9841 DING4 +9842 LAI4 +9843 YAN2 +9844 HAN4 +9845 JIAN1 +9846 KE1 KE3 KUAN3 +9847 CUI4 +9848 JIONG3 +9849 QIN1 HAN4 +984A YI2 +984B SAI1 +984C TI2 DI4 +984D E2 +984E E4 +984F YAN2 YA2 +9850 HUN2 HUN4 +9851 KAN3 +9852 YONG2 +9853 ZHUAN1 +9854 YAN2 YA2 +9855 XIAN3 +9856 XIN4 +9857 YI3 +9858 YUAN4 +9859 SANG3 +985A DIAN1 +985B DIAN1 TIAN2 +985C JIANG3 JIAO4 +985D KU1 +985E LEI4 LI4 +985F LIAO2 +9860 PIAO4 PIAO3 PIAO1 +9861 YI4 +9862 MAN2 MAN1 +9863 QI1 CU4 +9864 RAO4 +9865 HAO4 +9866 QIAO2 +9867 GU4 +9868 XUN4 +9869 QIAN1 QIN1 YAN3 +986A HUI1 HUI4 +986B ZHAN4 CHAN4 SHAN1 +986C RU2 +986D HONG1 +986E BIN1 +986F XIAN3 +9870 PIN2 +9871 LU2 +9872 LAN3 +9873 NIE4 +9874 QUAN2 +9875 YE4 +9876 DING3 +9877 QING3 KUI3 QING1 +9878 HAN1 +9879 XIANG4 +987A SHUN4 +987B XU1 +987C XU4 +987D WAN2 +987E GU4 +987F DUN4 DU2 ZHUN1 +9880 QI2 KEN3 +9881 BAN1 FEN2 +9882 SONG4 RONG2 +9883 HANG2 GANG1 +9884 YU4 +9885 LU2 +9886 LING3 +9887 PO3 PO1 +9888 JING3 GENG3 +9889 JIE2 JIA2 XIE2 +988A JIA2 +988B TIAN5 TING3 +988C HAN4 GE2 HE2 +988D YING3 +988E JIONG3 +988F HAI2 KE1 KE2 +9890 YI2 +9891 PIN2 BIN1 +9892 HUI4 +9893 TUI2 +9894 HAN4 +9895 YING3 +9896 YING3 +9897 KE1 KE3 KUAN3 +9898 TI2 DI4 +9899 YONG2 +989A E4 +989B ZHUAN1 +989C YAN2 +989D E2 +989E NIE4 +989F MAN2 MAN1 +98A0 DIAN1 TIAN2 +98A1 SANG3 +98A2 HAO4 +98A3 LEI4 +98A4 ZHAN4 CHAN4 SHAN1 +98A5 RU2 +98A6 PIN2 +98A7 QUAN2 +98A8 FENG1 FENG3 FENG4 +98A9 BIAO1 DIU1 +98AB FU2 +98AC XIA1 +98AD ZHAN3 +98AE BIAO1 PAO2 +98AF SA4 LI4 +98B0 BA2 +98B1 TAI2 +98B2 LIE4 +98B3 GUA1 +98B4 XUAN4 +98B5 SHAO4 +98B6 JU4 +98B7 BI1 +98B8 SI1 +98B9 WEI3 +98BA YANG2 +98BB YAO2 +98BC SOU1 +98BD KAI3 +98BE SAO1 +98BF FAN2 FAN1 FAN4 +98C0 LIU2 +98C1 XI2 +98C2 LIAO2 LIU2 LIU4 +98C3 PIAO1 +98C4 PIAO1 +98C5 LIU2 +98C6 BIAO1 +98C7 BIAO1 +98C8 BIAO3 BIAO1 +98C9 LIAO2 +98CB SE4 +98CC FENG1 +98CD BIAO1 XIU1 +98CE FENG1 FENG3 FENG4 +98CF YANG2 +98D0 ZHAN3 +98D1 BIAO1 +98D2 SA4 +98D3 JU4 +98D4 SI1 +98D5 SOU1 +98D6 YAO2 +98D7 LIU2 +98D8 PIAO1 +98D9 BIAO1 +98DA BIAO1 +98DB FEI1 +98DC FAN1 +98DD FEI1 +98DE FEI1 +98DF SHI2 SI4 YI4 +98E0 SHI2 +98E1 CAN1 SUN1 +98E2 JI1 +98E3 DING4 +98E4 SI4 +98E5 TUO1 +98E6 ZHAN1 +98E7 SUN1 +98E8 XIANG3 +98E9 TUN2 TUN5 ZHUN4 +98EA REN4 +98EB YU4 +98EC JUAN4 YANG3 +98ED CHI4 SHI4 +98EE YIN3 +98EF FAN4 +98F0 FAN4 +98F1 SUN1 +98F2 YIN3 YIN4 +98F3 ZHU4 +98F4 YI2 SI4 +98F5 ZHAI3 ZUO4 +98F6 BI4 +98F7 JIE3 +98F8 TAO1 +98F9 LIU3 +98FA CI2 +98FB TIE4 +98FC SI4 +98FD BAO3 +98FE SHI4 CHI4 +98FF DUO4 +9900 HAI4 +9901 REN4 +9902 TIAN3 +9903 JIAO3 JIAO4 +9904 JIA2 HE2 +9905 BING3 +9906 YAO2 +9907 TONG2 +9908 CI2 ZI1 +9909 XIANG3 +990A YANG3 YANG4 +990B YANG3 +990C ER3 +990D YAN4 +990E LE5 +990F YI1 +9910 CAN1 SUN4 +9911 BO1 BO2 +9912 NEI3 +9913 E4 +9914 BU1 BU3 +9915 JUN4 +9916 DOU4 +9917 SU4 +9918 YU2 YE2 +9919 SHI4 +991A YAO2 +991B HUN2 KUN1 +991C GUO3 +991D SHI4 +991E JIAN4 +991F ZHUI4 +9920 BING3 +9921 XIAN4 KAN4 +9922 BU4 +9923 YE4 +9924 TAN2 DAN4 +9925 FEI3 +9926 ZHANG1 +9927 WEI4 NEI3 +9928 GUAN3 +9929 E4 +992A NUAN3 +992B HUN2 YUN4 +992C HU2 +992D HUANG2 +992E TIE4 +992F HUI4 +9930 JIAN1 ZHAN1 +9931 HOU2 +9932 HE2 AI4 +9933 XING2 TANG2 +9934 FEN1 +9935 WEI4 +9936 GU3 +9937 CHA1 +9938 SONG4 +9939 TANG2 +993A BO2 +993B GAO1 +993C XI4 +993D KUI4 +993E LIU4 LIU2 +993F SOU1 +9940 TAO2 +9941 YE4 +9942 YUN2 +9943 MO2 +9944 TANG2 +9945 MAN2 +9946 BI4 +9947 YU4 +9948 XIU1 +9949 JIN3 +994A SAN3 +994B KUI4 TUI2 +994C ZHUAN4 XUAN3 +994D SHAN4 +994E CHI4 XI1 +994F DAN4 +9950 YI4 +9951 JI1 QI2 +9952 RAO2 +9953 CHENG1 +9954 YONG1 +9955 TAO1 +9956 HUI4 +9957 XIANG3 +9958 ZHAN1 +9959 FEN1 +995A HAI4 +995B MENG2 +995C YAN4 +995D MO2 +995E CHAN2 +995F XIANG3 +9960 LUO2 +9961 ZUAN4 ZAN4 +9962 NANG3 NANG2 +9963 SHI2 +9964 DING4 +9965 JI1 +9966 TUO1 +9967 XING2 +9968 TUN2 TUN5 +9969 XI4 +996A REN4 +996B YU4 +996C CHI4 +996D FAN4 +996E YIN3 YIN4 +996F JIAN4 +9970 SHI4 +9971 BAO3 +9972 SI4 +9973 DUO4 +9974 YI2 SI4 +9975 ER3 +9976 RAO2 +9977 XIANG3 +9978 JIA2 HE2 +9979 LE5 +997A JIAO3 +997B YI1 +997C BING3 +997D BO2 BO1 +997E DOU4 +997F E4 +9980 YU2 +9981 NEI3 +9982 JUN4 +9983 GUO3 +9984 HUN2 +9985 XIAN4 +9986 GUAN3 +9987 CHA1 +9988 KUI4 +9989 GU3 +998A SOU1 +998B CHAN2 +998C YE4 +998D MO2 +998E BO2 +998F LIU4 LIU2 +9990 XIU1 +9991 JIN3 +9992 MAN2 +9993 SAN3 +9994 ZHUAN4 XUAN3 +9995 NANG3 NANG2 +9996 SHOU3 +9997 KUI2 QIU2 +9998 GUO2 XU4 +9999 XIANG1 +999A FEN2 +999B BA2 +999C NI3 +999D BI4 +999E BO2 +999F TU2 +99A0 HAN1 +99A1 FEI1 +99A2 JIAN1 +99A3 AN1 +99A4 AI3 +99A5 FU4 BI4 +99A6 XIAN1 +99A7 WEN1 +99A8 XIN1 XING1 +99A9 FEN2 +99AA BIN1 +99AB XING1 +99AC MA3 +99AD YU4 +99AE FENG2 PING2 +99AF HAN4 HAN2 +99B0 DI4 +99B1 TUO2 DUO4 DAI4 +99B2 TUO1 +99B3 CHI2 +99B4 XUN2 XUN4 +99B5 ZHU4 +99B6 ZHI1 +99B7 PEI4 +99B8 XIN4 +99B9 RI4 +99BA SA4 +99BB YIN3 +99BC WEN2 +99BD ZHI2 +99BE DAN4 +99BF LV2 +99C0 YOU2 +99C1 BO2 +99C2 BAO3 +99C3 KUAI4 JUE2 +99C4 TUO2 +99C5 YI4 +99C6 QU1 +99C8 QU1 +99C9 JIONG1 +99CA BO3 PO3 +99CB ZHAO1 +99CC YUAN1 +99CD PENG1 +99CE ZHOU4 +99CF JU4 +99D0 ZHU4 +99D1 NU2 +99D2 JU1 JU4 +99D3 PI1 PI2 +99D4 ZANG3 ZU3 ZU4 +99D5 JIA4 JIA1 +99D6 LING2 +99D7 ZHEN1 +99D8 TAI2 DAI4 ZHAI4 TAI1 +99D9 FU4 +99DA YANG3 +99DB SHI3 +99DC BI4 +99DD TUO2 +99DE TUO2 +99DF SI4 +99E0 LIU2 +99E1 MA4 +99E2 PIAN2 +99E3 TAO2 +99E4 ZHI4 +99E5 RONG2 XUE4 +99E6 TENG2 +99E7 DONG4 +99E8 XUN2 +99E9 QUAN2 +99EA SHEN1 +99EB JIONG1 +99EC ER3 +99ED HAI4 +99EE BO2 +99F0 YIN1 +99F1 LUO4 JIA4 +99F3 DAN4 +99F4 XIE4 +99F5 LIU2 +99F6 JU2 +99F7 SONG3 +99F8 QIN1 +99F9 MANG2 +99FA LIANG2 +99FB HAN4 +99FC TU2 +99FD XUAN4 XUAN1 +99FE TUI4 +99FF JUN4 +9A00 E2 E3 +9A01 CHENG3 +9A02 XING1 +9A03 AI2 DAI1 +9A04 LU4 +9A05 ZHUI1 +9A06 ZHOU1 +9A07 SHE3 SHE4 +9A08 PIAN2 +9A09 KUN1 +9A0A TAO2 +9A0B LAI2 +9A0C ZONG1 +9A0D KE4 +9A0E QI2 JI4 +9A0F QI2 +9A10 YAN4 +9A11 FEI1 +9A12 SAO1 +9A13 YAN3 +9A14 JIE2 +9A15 YAO3 +9A16 WU4 +9A17 PIAN4 +9A18 CONG1 +9A19 PIAN4 +9A1A QIAN2 +9A1B FEI1 +9A1C HUANG2 +9A1D JIAN1 +9A1E HUO4 HUO1 +9A1F YU4 +9A20 TI2 +9A21 QUAN2 +9A22 XIA2 +9A23 ZONG1 +9A24 KUI2 +9A25 ROU2 +9A26 SI1 +9A27 GUA1 +9A28 TUO2 +9A29 KUI4 GUI1 +9A2A SOU1 +9A2B QIAN1 JIAN3 +9A2C CHENG2 +9A2D ZHI4 +9A2E LIU2 +9A2F PANG2 +9A30 TENG2 +9A31 XI1 +9A32 CAO3 +9A33 DU2 +9A34 YAN4 +9A35 YUAN2 +9A36 ZOU1 ZHOU4 ZHU1 QU1 +9A37 SAO1 SAO3 XIAO1 +9A38 SHAN4 +9A39 LI2 QI2 +9A3A ZHI4 +9A3B SHUANG3 SHUANG1 +9A3C LU4 +9A3D XI2 +9A3E LUO2 +9A3F ZHANG1 +9A40 MO4 MA4 +9A41 AO4 AO2 YAO4 +9A42 CAN1 +9A43 PIAO4 BIAO1 +9A44 CONG1 +9A45 QU1 +9A46 BI4 +9A47 ZHI4 +9A48 YU4 +9A49 XU1 +9A4A HUA2 +9A4B BO1 +9A4C SU4 +9A4D XIAO1 +9A4E LIN2 +9A4F CHAN3 ZHAN4 +9A50 DUN1 +9A51 LIU2 +9A52 TUO2 +9A53 ZENG1 +9A54 TAN2 DIAN4 +9A55 JIAO1 XIAO1 JU1 QIAO2 +9A56 TIE3 +9A57 YAN4 +9A58 LUO2 +9A59 ZHAN1 +9A5A JING1 +9A5B YI4 +9A5C YE4 +9A5D TUO1 +9A5E BIN1 +9A5F ZOU4 ZHOU4 +9A60 YAN4 +9A61 PENG2 +9A62 LV2 +9A63 TENG2 +9A64 XIANG1 +9A65 JI4 +9A66 SHUANG1 +9A67 JU2 +9A68 XI1 +9A69 HUAN1 +9A6A LI2 CHI2 +9A6B BIAO1 +9A6C MA3 +9A6D YU4 +9A6E TUO2 DUO4 +9A6F XUN2 XUN4 +9A70 CHI2 +9A71 QU1 +9A72 RI4 +9A73 BO2 +9A74 LV2 +9A75 ZANG3 ZU3 ZU4 +9A76 SHI3 +9A77 SI4 +9A78 FU4 +9A79 JU1 +9A7A ZOU1 ZHOU4 +9A7B ZHU4 +9A7C TUO2 +9A7D NU2 +9A7E JIA4 +9A7F YI4 +9A80 TAI2 +9A81 XIAO1 +9A82 MA4 +9A83 YIN1 +9A84 JIAO1 XIAO1 +9A85 HUA2 +9A86 LUO4 +9A87 HAI4 +9A88 PIAN2 +9A89 BIAO1 +9A8A LI2 +9A8B CHENG3 +9A8C YAN4 +9A8D XIN1 +9A8E QIN1 +9A8F JUN4 +9A90 QI2 +9A91 QI2 JI4 +9A92 KE4 +9A93 ZHUI1 +9A94 ZONG1 +9A95 SU4 +9A96 CAN1 +9A97 PIAN4 +9A98 ZHI4 +9A99 KUI2 +9A9A SAO1 SAO3 +9A9B WU4 +9A9C AO2 AO4 +9A9D LIU2 +9A9E QIAN1 +9A9F SHAN4 +9AA0 PIAO4 BIAO1 +9AA1 LUO2 +9AA2 CONG1 +9AA3 CHAN3 ZHAN4 +9AA4 ZOU4 ZHOU4 +9AA5 JI4 +9AA6 SHUANG1 +9AA7 XIANG1 +9AA8 GU3 GU1 GU2 +9AA9 WEI3 +9AAA WEI3 +9AAB WEI3 +9AAC YU2 +9AAD GAN4 +9AAE YI4 +9AAF ANG1 KANG3 +9AB0 TOU2 GU3 +9AB1 XIE4 GA4 JIE4 JIA2 +9AB2 BAO1 +9AB3 BI4 BEI4 +9AB4 CHI1 CI1 +9AB5 TI3 TI1 +9AB6 DI3 +9AB7 KU1 +9AB8 HAI2 GAI1 +9AB9 QIAO1 XIAO1 +9ABA GOU4 HOU2 +9ABB KUA4 +9ABC GE2 +9ABD TUI3 +9ABE GENG3 +9ABF PIAN2 +9AC0 BI4 +9AC1 KE1 KUA4 +9AC2 KA4 QIA4 GE2 +9AC3 YU2 +9AC4 SUI3 +9AC5 LOU2 +9AC6 BO2 +9AC7 XIAO1 +9AC8 PANG2 BANG3 +9AC9 BO1 +9ACA CI1 +9ACB KUAN1 +9ACC BIN4 +9ACD MO2 +9ACE LIAO2 +9ACF LOU2 +9AD0 NAO2 XIAO1 +9AD1 DU2 +9AD2 ZANG1 ZANG3 +9AD3 SUI3 +9AD4 TI3 TI1 +9AD5 BIN4 +9AD6 KUAN1 +9AD7 LU2 +9AD8 GAO1 GAO4 +9AD9 GAO1 +9ADA QIAO4 +9ADB KAO1 +9ADC QIAO1 +9ADD LAO4 +9ADE ZAO4 +9ADF BIAO1 SHAN1 PIAO4 +9AE0 KUN1 +9AE1 KUN1 +9AE2 TI4 DI2 DI4 +9AE3 FANG3 +9AE4 XIU1 +9AE5 RAN2 +9AE6 MAO2 LI2 +9AE7 DAN4 +9AE8 KUN1 +9AE9 BIN4 +9AEA FA4 +9AEB TIAO2 +9AEC PI1 +9AED ZI1 +9AEE FA4 FA3 +9AEF RAN2 +9AF0 TI4 +9AF1 PAO4 +9AF2 PI1 BI4 +9AF3 MAO2 +9AF4 FU2 FEI4 +9AF5 ER2 +9AF6 RONG2 +9AF7 QU1 +9AF9 XIU1 +9AFA GUA4 KUO4 +9AFB JI4 JIE2 +9AFC PENG2 +9AFD ZHUA1 +9AFE SHAO1 +9AFF SHA1 SUO1 +9B00 TI4 +9B01 LI4 +9B02 BIN4 +9B03 ZONG1 +9B04 TI4 DI2 DI4 +9B05 PENG2 +9B06 SONG1 +9B07 ZHENG1 +9B08 QUAN2 +9B09 ZONG1 +9B0A SHUN4 +9B0B JIAN1 JIAN3 +9B0C DUO3 +9B0D HU2 +9B0E LA4 +9B0F JIU1 +9B10 QI2 +9B11 LIAN2 +9B12 ZHEN3 +9B13 BIN4 +9B14 PENG2 +9B15 MO4 +9B16 SAN1 +9B17 MAN4 +9B18 MAN2 +9B19 SENG1 +9B1A XU1 +9B1B LIE4 +9B1C QIAN1 +9B1D QIAN1 +9B1E NONG2 +9B1F HUAN2 +9B20 KUAI4 KUO4 +9B21 NING2 +9B22 BIN4 +9B23 LIE4 +9B24 RANG2 +9B25 DOU4 +9B26 DOU4 +9B27 NAO4 +9B28 HONG4 XIANG4 HONG1 HONG3 +9B29 XI4 HE4 +9B2A DOU4 +9B2B HAN3 KAN3 KAN4 +9B2C DOU4 +9B2D DOU4 +9B2E JIU1 +9B2F CHANG4 +9B30 YU4 +9B31 YU4 +9B32 LI4 GE2 E4 +9B33 JUAN4 +9B34 FU3 +9B35 QIAN2 XIN2 +9B36 GUI1 +9B37 ZONG1 +9B38 LIU4 +9B39 GUI1 +9B3A SHANG1 +9B3B YU4 ZHOU1 ZHU3 ZHU4 JU1 +9B3C GUI3 +9B3D MEI4 +9B3E JI4 +9B3F QI2 +9B40 JIE4 +9B41 KUI2 KUI3 KUAI4 +9B42 HUN2 +9B43 BA2 +9B44 PO4 BO2 TUO4 +9B45 MEI4 +9B46 XU4 XU1 +9B47 YAN3 +9B48 XIAO1 +9B49 LIANG3 +9B4A YU4 +9B4B TUI2 CHUI2 ZHUI1 +9B4C QI1 +9B4D WANG3 +9B4E LIANG3 +9B4F WEI4 WEI2 WEI1 +9B50 JIAN1 +9B51 CHI1 +9B52 PIAO1 +9B53 BI4 +9B54 MO2 +9B55 JI3 +9B56 XU1 +9B57 CHOU3 CHOU2 +9B58 YAN3 +9B59 ZHAN3 JIAN4 +9B5A YU2 +9B5B DAO1 +9B5C REN2 +9B5D JI4 +9B5F GONG1 HONG2 +9B60 TUO2 TUO1 +9B61 DIAO4 +9B62 JI3 +9B63 XU4 YU2 +9B64 E2 +9B65 E4 +9B66 SHA1 +9B67 HANG2 +9B68 TUN2 +9B69 MO4 +9B6A JIE4 +9B6B SHEN3 +9B6C FAN3 BAN3 +9B6D YUAN2 WAN3 +9B6E BI2 PI2 +9B6F LU3 LV3 +9B70 WEN2 +9B71 HU2 +9B72 LU2 +9B73 ZA2 +9B74 FANG2 +9B75 FEN2 +9B76 NA4 +9B77 YOU2 +9B7A HE2 +9B7B XIA2 +9B7C QU1 +9B7D HAN1 +9B7E PI2 PI1 +9B7F LING2 +9B80 TUO2 +9B81 BO1 BA4 +9B82 QIU2 +9B83 PING2 +9B84 FU2 +9B85 BI4 +9B86 JI4 +9B87 WEI4 +9B88 JU1 +9B89 DIAO1 +9B8A BO2 BA4 +9B8B YOU2 +9B8C GUN3 +9B8D PI1 PI2 +9B8E NIAN2 +9B8F XING1 +9B90 TAI2 +9B91 BAO4 BAO1 PAO1 +9B92 FU4 +9B93 ZHA3 ZHA4 +9B94 JU4 +9B95 GU1 +9B99 TA4 +9B9A JIE2 QIA4 +9B9B SHU4 SHU1 +9B9C HOU4 +9B9D XIANG3 ZHEN4 +9B9E ER2 +9B9F AN4 YAN3 +9BA0 WEI2 +9BA1 TIAO1 ZHAO4 +9BA2 ZHU1 +9BA3 YIN4 +9BA4 LIE4 +9BA5 LUO4 +9BA6 TONG2 ZHOU4 +9BA7 YI2 TI2 +9BA8 QI2 YI4 ZHI1 +9BA9 BING4 +9BAA WEI3 +9BAB JIAO1 JIAO3 +9BAC BU4 KU1 +9BAD GUI1 WA1 XIE2 KUI2 HUA4 +9BAE XIAN1 XIAN3 XIAN4 +9BAF GE2 +9BB0 HUI2 +9BB3 KAO3 KAO4 +9BB5 DUO2 +9BB6 JUN1 +9BB7 TI2 +9BB8 MIAN3 MAN3 +9BB9 XIAO1 +9BBA ZA3 +9BBB SHA1 +9BBC QIN1 +9BBD YU2 +9BBE NEI3 +9BBF ZHE2 +9BC0 GUN3 +9BC1 GENG3 +9BC3 WU2 +9BC4 QIU2 +9BC5 TING2 TING3 SHAN1 +9BC6 FU3 PU1 +9BC7 WAN3 HUAN4 +9BC8 TIAO2 YOU2 CHOU2 +9BC9 LI3 +9BCA SHA1 +9BCB SHA1 +9BCC GAO4 +9BCD MENG2 +9BD2 YONG3 +9BD3 NI2 +9BD4 ZI1 +9BD5 QI2 +9BD6 QING1 ZHENG1 +9BD7 XIANG3 +9BD8 NEI3 +9BD9 CHUN2 +9BDA JI4 +9BDB DIAO1 +9BDC QIE4 +9BDD GU4 +9BDE ZHOU3 +9BDF DONG1 +9BE0 LAI2 +9BE1 FEI1 FEI4 +9BE2 NI2 +9BE3 YI4 +9BE4 KUN1 +9BE5 LU4 +9BE6 JIU4 +9BE7 CHANG1 +9BE8 JING1 QING2 +9BE9 LUN2 +9BEA LING2 +9BEB ZOU1 +9BEC LI2 +9BED MENG3 +9BEE ZONG1 +9BEF ZHI4 +9BF0 NIAN2 +9BF4 SHI1 +9BF5 SHEN1 +9BF6 HUN3 HUAN4 +9BF7 SHI4 TI2 +9BF8 HOU2 +9BF9 XING1 ZHENG1 +9BFA ZHU1 +9BFB LA4 +9BFC ZONG1 +9BFD JI4 ZEI2 +9BFE BIAN1 +9BFF BIAN1 +9C00 HUAN4 +9C01 QUAN2 +9C02 ZE2 +9C03 WEI1 +9C04 WEI1 +9C05 YU2 +9C06 QUN1 CHUN1 +9C07 ROU2 +9C08 DIE2 QIE4 ZHA2 +9C09 HUANG2 +9C0A LIAN4 +9C0B YAN3 +9C0C QIU2 QIU1 +9C0D QIU1 +9C0E JIAN4 +9C0F BI4 BI1 +9C10 E4 +9C11 YANG2 +9C12 FU4 +9C13 SAI1 XI3 +9C14 JIAN3 +9C15 XIA2 XIA1 +9C16 TUO3 WEI3 +9C17 HU2 +9C19 RUO4 +9C1B WEN1 +9C1C JIAN1 +9C1D HAO4 +9C1E WU1 +9C1F FANG2 PANG2 +9C20 SAO1 +9C21 LIU2 +9C22 MA3 +9C23 SHI2 +9C24 SHI1 +9C25 GUAN1 GUAN4 KUN1 GUN3 YIN2 +9C27 TENG2 +9C28 TA4 TA3 DIE2 +9C29 YAO2 +9C2A GE2 +9C2B RONG2 YONG2 +9C2C QIAN2 +9C2D QI2 +9C2E WEN1 +9C2F RUO4 +9C31 LIAN2 +9C32 AO2 +9C33 LE4 +9C34 HUI1 +9C35 MIN3 +9C36 JI4 +9C37 TIAO2 +9C38 QU1 +9C39 JIAN1 +9C3A SAO1 SHEN1 CAN1 +9C3B MAN2 +9C3C XI2 +9C3D QIU2 +9C3E BIAO4 +9C3F JI1 JI2 +9C40 JI4 +9C41 ZHU2 +9C42 JIANG1 +9C43 QIU1 +9C44 ZHUAN1 TUAN2 +9C45 YONG2 YONG1 +9C46 ZHANG1 +9C47 KANG1 +9C48 XUE3 +9C49 BIE1 +9C4A JUE2 YU4 +9C4B QU1 +9C4C XIANG4 +9C4D BO1 +9C4E JIAO3 +9C4F XUN2 +9C50 SU4 +9C51 HUANG2 +9C52 ZUN4 ZUN1 +9C53 SHAN4 TUO2 +9C54 SHAN4 +9C55 FAN1 +9C56 GUI4 JUE2 +9C57 LIN2 +9C58 XUN2 +9C59 MIAO2 +9C5A XI3 +9C5D FEN4 +9C5E GUAN1 +9C5F HOU4 +9C60 KUAI4 +9C61 ZEI2 +9C62 SAO1 +9C63 ZHAN1 SHAN4 +9C64 GAN3 +9C65 GUI4 +9C66 SHENG2 +9C67 LI3 +9C68 CHANG2 +9C6C RU2 +9C6D JI4 +9C6E XU4 +9C6F HUO4 HU4 +9C71 LI4 +9C72 LIE4 +9C73 LI4 +9C74 MIE4 +9C75 ZHEN1 +9C76 XIANG3 +9C77 E4 +9C78 LU2 +9C79 GUAN4 +9C7A LI2 LI3 +9C7B XIAN1 +9C7C YU2 +9C7D DAO1 +9C7E JI3 +9C7F YOU2 +9C80 TUN2 +9C81 LU3 +9C82 FANG2 +9C83 BA1 BA4 +9C84 HE2 +9C85 BO1 BA4 +9C86 PING2 +9C87 NIAN2 +9C88 LU2 +9C89 YOU2 +9C8A ZHA3 ZHA4 +9C8B FU4 +9C8C BO2 BA4 +9C8D BAO4 +9C8E HOU4 +9C8F PI1 PI2 JU4 +9C90 TAI2 +9C91 GUI1 WA1 XIE2 +9C92 JIE2 +9C93 KAO3 KAO4 +9C94 WEI3 +9C95 ER2 +9C96 TONG2 ZHOU4 +9C97 ZE2 +9C98 HOU4 +9C99 KUAI4 +9C9A JI4 +9C9B JIAO3 JIAO1 +9C9C XIAN1 XIAN3 XIAN4 +9C9D ZA3 +9C9E XIANG3 +9C9F XUN2 +9CA0 GENG3 +9CA1 LI2 +9CA2 LIAN2 +9CA3 JIAN1 +9CA4 LI3 +9CA5 SHI2 +9CA6 TIAO2 +9CA7 GUN3 +9CA8 SHA1 +9CA9 WAN3 HUAN4 +9CAA JUN1 +9CAB JI4 +9CAC YONG3 +9CAD QING1 ZHENG1 +9CAE LING2 +9CAF QI2 +9CB0 ZOU1 +9CB1 FEI1 +9CB2 KUN1 +9CB3 CHANG1 +9CB4 GU4 +9CB5 NI2 +9CB6 NIAN2 +9CB7 DIAO1 +9CB8 JING1 QING2 +9CB9 SHEN1 +9CBA SHI1 +9CBB ZI1 +9CBC FEN4 +9CBD DIE2 +9CBE BI4 BI1 +9CBF CHANG2 +9CC0 SHI4 TI2 +9CC1 WEN1 +9CC2 WEI1 +9CC3 SAI1 XI3 +9CC4 E4 +9CC5 QIU1 +9CC6 FU4 +9CC7 HUANG2 +9CC8 QUAN2 +9CC9 JIANG1 +9CCA BIAN1 +9CCB SAO1 +9CCC AO2 +9CCD QI2 +9CCE TA4 TA3 DIE2 +9CCF YIN2 GUAN1 +9CD0 YAO2 +9CD1 FANG2 PANG2 +9CD2 JIAN1 +9CD3 LE4 +9CD4 BIAO4 +9CD5 XUE3 +9CD6 BIE1 +9CD7 MAN2 +9CD8 MIN3 +9CD9 YONG2 YONG1 +9CDA WEI4 +9CDB XI2 +9CDC JUE2 GUI4 +9CDD SHAN4 +9CDE LIN2 +9CDF ZUN4 ZUN1 +9CE0 HUO4 HU4 +9CE1 GAN3 +9CE2 LI3 +9CE3 ZHAN1 SHAN4 +9CE4 GUAN3 +9CE5 NIAO3 DIAO3 DAO3 QUE4 +9CE6 YI3 YI4 +9CE7 FU2 +9CE8 LI4 +9CE9 JIU1 QIU2 ZHI4 +9CEA BU3 +9CEB YAN4 +9CEC FU2 +9CED DIAO1 ZHAO1 +9CEE JI1 +9CEF FENG4 +9CF1 GAN1 HAN4 +9CF2 SHI1 +9CF3 FENG4 +9CF4 MING2 +9CF5 BAO3 +9CF6 YUAN1 +9CF7 ZHI1 +9CF8 HU4 +9CF9 QIN2 +9CFA FU1 +9CFB FEN1 +9CFC WEN2 +9CFD JIAN1 +9CFE SHI1 +9CFF YU4 +9D00 FOU3 FOU2 +9D01 YAO1 AO3 +9D02 JUE4 JUE2 +9D03 JUE2 +9D04 PI1 +9D05 HUAN1 +9D06 ZHEN4 +9D07 BAO3 +9D08 YAN4 +9D09 YA1 YA3 +9D0A ZHENG4 +9D0B FANG1 +9D0C FENG4 +9D0D WEN2 +9D0E OU1 +9D0F TE4 +9D10 JIA1 +9D11 NU2 +9D12 LING2 +9D13 MIE4 +9D14 FU2 +9D15 TUO2 +9D16 WEN2 +9D17 LI4 +9D18 BIAN4 +9D19 ZHI4 +9D1A GE1 JIA1 +9D1B YUAN1 +9D1C ZI1 +9D1D QU2 GOU1 GOU4 +9D1E XIAO1 +9D1F CHI1 ZHI1 +9D20 DAN4 +9D21 JU1 +9D22 YOU4 +9D23 GU1 +9D24 ZHONG1 +9D25 YU4 +9D26 YANG1 +9D27 RONG4 +9D28 YA1 +9D29 TIE3 HU2 +9D2A YU4 +9D2C YING1 +9D2D ZHUI1 +9D2E WU1 +9D2F ER2 +9D30 GUA1 +9D31 AI4 +9D32 ZHI1 +9D33 YAN4 +9D34 HENG2 HANG2 +9D35 JIAO1 +9D36 JI2 +9D37 LIE4 +9D38 ZHU1 +9D39 REN2 +9D3A YI2 +9D3B HONG2 HONG4 +9D3C LUO4 +9D3D RU2 +9D3E MOU2 +9D3F GE1 +9D40 REN4 REN2 +9D41 JIAO1 +9D42 XIU1 +9D43 ZHOU1 ZHAO1 +9D44 ZHI1 CHI1 +9D45 LUO4 +9D49 LUAN2 +9D4A JIA2 +9D4B JI4 +9D4C YU2 TU2 +9D4D HUAN1 +9D4E TUO3 +9D4F BU1 BU3 +9D50 WU2 +9D51 JUAN1 +9D52 YU4 +9D53 BO2 +9D54 XUN4 JUN4 +9D55 XUN4 +9D56 BI4 BI1 +9D57 XI1 +9D58 JUN4 +9D59 JU2 +9D5A TU2 +9D5B JING1 +9D5C TI2 TI1 +9D5D E2 +9D5E E2 +9D5F KUANG2 +9D60 HU2 GU3 HE4 +9D61 WU3 +9D62 SHEN1 +9D63 LAI4 CHI4 +9D66 LU4 +9D67 PING2 BING4 +9D68 SHU1 +9D69 FU2 +9D6A AN1 YAN4 YA1 +9D6B ZHAO4 +9D6C PENG2 FENG4 +9D6D QIN2 +9D6E QIAN1 +9D6F BEI1 +9D70 DIAO1 +9D71 LU4 +9D72 QUE4 +9D73 JIAN1 +9D74 JU2 +9D75 TU4 +9D76 YA1 +9D77 YUAN1 +9D78 QI2 +9D79 LI2 +9D7A YE4 +9D7B ZHUI1 +9D7C KONG1 +9D7D ZHUI4 DUO4 ZHUA1 +9D7E KUN1 +9D7F SHENG1 +9D80 QI2 +9D81 JING1 +9D82 YI4 +9D83 YI4 +9D84 JING1 +9D85 ZI1 +9D86 LAI2 +9D87 DONG1 +9D88 QI1 +9D89 CHUN2 TUAN2 +9D8A GENG1 +9D8B JU1 +9D8C QU1 JU1 +9D8F JI1 +9D90 SHU4 +9D92 CHI4 +9D93 MIAO2 +9D94 ROU2 +9D95 AN1 YA1 +9D96 QIU1 +9D97 TI2 +9D98 HU2 +9D99 TI2 +9D9A E4 +9D9B JIE1 +9D9C MAO2 +9D9D FU2 +9D9E CHUN1 +9D9F TU2 +9DA0 YAN3 +9DA1 HE2 JIE4 +9DA2 YUAN2 +9DA3 PIAN1 +9DA4 YUN4 KUN1 +9DA5 MEI2 +9DA6 HU2 +9DA7 YING1 +9DA8 DUN4 +9DA9 WU4 MU4 +9DAA JU2 +9DAC CANG1 QIANG1 +9DAD FANG3 +9DAE GU4 +9DAF YING1 +9DB0 YUAN2 +9DB1 XUAN1 XIAN1 +9DB2 WENG1 +9DB3 SHI1 +9DB4 HE4 +9DB5 CHU2 +9DB6 TANG2 +9DB7 XIA4 +9DB8 RUO4 +9DB9 LIU2 +9DBA JI2 +9DBB GU2 HU2 GU3 +9DBC JIAN1 QIAN1 +9DBD ZHUN3 SUN3 +9DBE HAN4 +9DBF ZI1 CI2 +9DC0 ZI1 CI2 +9DC1 NI4 YI4 +9DC2 YAO4 YAO2 +9DC3 YAN4 +9DC4 JI1 +9DC5 LI4 +9DC6 TIAN2 ZHEN1 +9DC7 KOU4 GOU4 +9DC8 TI1 +9DC9 TI1 +9DCA NI4 YI4 +9DCB TU2 +9DCC MA3 +9DCD JIAO1 +9DCE GAO1 +9DCF TIAN2 ZHEN1 +9DD0 CHEN2 +9DD1 LI4 +9DD2 ZHUAN1 +9DD3 ZHE4 +9DD4 AO2 +9DD5 YAO3 WEI3 +9DD6 YI1 +9DD7 OU1 +9DD8 CHI4 +9DD9 ZHI4 ZHE2 +9DDA LIAO2 LIU4 +9DDB RONG2 YONG2 +9DDC LOU2 +9DDD BI4 +9DDE SHUANG1 +9DDF ZHUO2 +9DE0 YU2 +9DE1 WU2 +9DE2 JUE2 +9DE3 YIN2 +9DE4 QUAN2 TI2 +9DE5 SI1 +9DE6 JIAO1 +9DE7 YI4 +9DE8 HUA1 +9DE9 BI4 BIE1 CHANG3 +9DEA YING1 +9DEB SU4 +9DEC HUANG2 +9DED FAN2 +9DEE JIAO1 +9DEF LIAO2 +9DF0 YAN4 YAN1 +9DF1 KAO1 +9DF2 JIU4 +9DF3 XIAN2 +9DF4 XIAN2 +9DF5 TU2 +9DF6 MAI3 +9DF7 ZUN1 +9DF8 YU4 SHU4 +9DF9 YING1 +9DFA LU4 +9DFB TUAN2 +9DFC XIAN2 +9DFD XUE2 +9DFE YI4 +9DFF PI4 +9E00 SHU2 SHU3 ZHU2 ZHUO2 +9E01 LUO2 +9E02 QI1 XI1 +9E03 YI2 +9E04 JI2 +9E05 ZHE2 +9E06 YU2 +9E07 ZHAN1 +9E08 YE4 +9E09 YANG2 +9E0A PI4 BI4 +9E0B NING2 +9E0C HUO4 HU4 +9E0D MI2 +9E0E YING1 +9E0F MENG2 +9E10 DI2 +9E11 YUE4 +9E12 YU2 YU4 +9E13 LEI3 +9E14 BAO4 +9E15 LU2 +9E16 HE4 +9E17 LONG2 +9E18 SHUANG1 +9E19 YUE4 +9E1A YING1 +9E1B GUAN4 HUAN1 QUAN2 +9E1C QU2 +9E1D LI2 +9E1E LUAN2 +9E1F NIAO3 DIAO3 +9E20 JIU1 +9E21 JI1 +9E22 YUAN1 +9E23 MING2 +9E24 SHI1 +9E25 OU1 +9E26 YA1 +9E27 CANG1 QIANG1 +9E28 BAO3 +9E29 ZHEN4 +9E2A GU1 +9E2B DONG1 +9E2C LU2 +9E2D YA1 +9E2E XIAO1 +9E2F YANG1 +9E30 LING2 +9E31 ZHI1 +9E32 QU2 +9E33 YUAN1 +9E34 XUE2 +9E35 TUO2 +9E36 SI1 +9E37 ZHI4 +9E38 ER2 +9E39 GUA1 +9E3A XIU1 +9E3B HENG2 HANG2 +9E3C ZHOU1 ZHAO1 +9E3D GE1 +9E3E LUAN2 +9E3F HONG2 +9E40 WU2 +9E41 BO2 +9E42 LI2 +9E43 JUAN1 +9E44 HU2 GU3 +9E45 E2 +9E46 YU4 +9E47 XIAN2 +9E48 TI2 +9E49 WU3 +9E4A QUE4 +9E4B MIAO2 +9E4C AN1 YAN4 +9E4D KUN1 +9E4E BEI1 +9E4F PENG2 +9E50 QIAN1 +9E51 CHUN2 TUAN2 +9E52 GENG1 +9E53 YUAN1 +9E54 SU4 +9E55 HU2 +9E56 HE2 JIE4 +9E57 E4 +9E58 GU2 HU2 +9E59 QIU1 +9E5A ZI1 CI2 +9E5B MEI2 +9E5C MU4 +9E5D NI4 YI4 +9E5E YAO4 YAO2 +9E5F WENG1 +9E60 LIU2 +9E61 JI2 +9E62 NI4 YI4 +9E63 JIAN1 +9E64 HE4 +9E65 YI1 +9E66 YING1 +9E67 ZHE4 +9E68 LIAO2 +9E69 LIAO2 +9E6A JIAO1 +9E6B JIU4 +9E6C YU4 +9E6D LU4 +9E6E XUAN2 +9E6F ZHAN1 +9E70 YING1 +9E71 HUO4 HU4 +9E72 MENG2 +9E73 GUAN4 +9E74 SHUANG1 +9E75 LU3 +9E76 JIN1 +9E77 LING2 +9E78 JIAN3 +9E79 XIAN2 +9E7A CUO2 +9E7B JIAN3 +9E7C JIAN3 +9E7D YAN2 YAN4 +9E7E CUO2 +9E7F LU4 LV2 +9E80 YOU1 +9E81 CU1 +9E82 JI3 +9E83 BIAO1 PAO2 PIAO3 +9E84 CU1 +9E85 BIAO1 PAO2 +9E86 ZHU4 CHU2 +9E87 JUN1 KUN3 QUN2 +9E88 ZHU3 +9E89 JIAN1 +9E8A MI2 +9E8B MI2 +9E8C WU2 YU3 +9E8D LIU2 +9E8E CHEN2 +9E8F JUN1 +9E90 LIN2 +9E91 NI2 MI2 +9E92 QI2 +9E93 LU4 +9E94 JIU4 +9E95 JUN1 QUN2 +9E96 JING1 +9E97 LI4 LI2 +9E98 XIANG1 +9E99 YAN2 +9E9A JIA1 +9E9B MI2 +9E9C LI4 +9E9D SHE4 +9E9E ZHANG1 +9E9F LIN2 +9EA0 JING1 +9EA1 JI1 +9EA2 LING2 +9EA3 YAN2 +9EA4 CU1 +9EA5 MAI4 +9EA6 MAI4 +9EA7 GE1 HE2 +9EA8 CHAO3 +9EA9 FU1 +9EAA MIAN3 MIAN4 +9EAB MIAN3 MIAN4 +9EAC FU1 +9EAD PAO4 +9EAE QU4 +9EAF QU2 QU1 +9EB0 MOU2 +9EB1 FU1 +9EB2 XIAN4 +9EB3 LAI2 +9EB4 QU2 QU1 +9EB5 MIAN4 +9EB7 FENG1 +9EB8 FU1 +9EB9 QU2 +9EBA MIAN4 +9EBB MA2 MA1 +9EBC ME5 MO5 MO3 MA5 +9EBD MO5 MO3 MA5 ME5 +9EBE HUI1 +9EC0 ZOU1 +9EC1 NEN1 NUN2 +9EC2 FEN2 +9EC3 HUANG2 +9EC4 HUANG2 +9EC5 JIN1 +9EC6 GUANG1 +9EC7 TIAN1 +9EC8 TOU3 +9EC9 HENG2 HONG2 +9ECA XI1 +9ECB KUANG3 KUANG4 +9ECC HENG2 HONG2 +9ECD SHU3 +9ECE LI2 +9ECF NIAN2 NIAN1 ZHAN1 +9ED0 CHI1 LI2 +9ED1 HEI1 HE4 +9ED2 HEI1 +9ED3 YI4 +9ED4 QIAN2 +9ED5 DAN1 DAN3 +9ED6 XI4 +9ED7 TUAN3 +9ED8 MO4 +9ED9 MO4 +9EDA QIAN2 +9EDB DAI4 +9EDC CHU4 +9EDD YOU3 YI1 +9EDE DIAN3 ZHAN1 DUO4 +9EDF YI1 +9EE0 XIA2 +9EE1 YAN3 +9EE2 QU1 QU4 +9EE3 MEI3 +9EE4 YAN3 +9EE5 QING2 JING1 +9EE6 YU4 YUE4 +9EE7 LI2 LAI2 +9EE8 DANG3 ZHANG3 +9EE9 DU2 +9EEA CAN3 +9EEB YIN1 YAN1 +9EEC AN4 +9EED YAN1 YAN3 +9EEE TAN3 DAN3 SHEN4 DAN4 +9EEF AN4 AN1 +9EF0 ZHEN3 +9EF1 DAI4 +9EF2 CAN3 +9EF3 YI1 +9EF4 MEI2 +9EF5 DAN3 +9EF6 YAN3 +9EF7 DU2 +9EF8 LU2 +9EF9 ZHI3 XIAN4 +9EFA FEN3 +9EFB FU2 FU4 +9EFC FU3 +9EFD MIN3 MENG2 MENG3 MIAN3 +9EFE MIN3 MENG2 MENG3 MIAN3 +9EFF YUAN2 +9F00 CU4 +9F01 QU4 +9F02 CHAO2 ZHAO1 +9F03 WA1 +9F04 ZHU1 +9F05 ZHI1 +9F06 MANG2 MENG3 +9F07 AO2 +9F08 BIE1 +9F09 TUO2 +9F0A BI4 +9F0B YUAN2 +9F0C CHAO2 ZHAO1 +9F0D TUO2 +9F0E DING3 ZHEN1 +9F0F MI4 +9F10 NAI4 +9F11 DING3 ZHEN1 +9F12 ZI1 +9F13 GU3 +9F14 GU3 +9F15 DONG1 TONG2 +9F16 FEN2 +9F17 TAO2 +9F18 YUAN1 +9F19 PI2 +9F1A CHANG1 +9F1B GAO1 +9F1C QI4 +9F1D YUAN1 +9F1E TANG1 +9F1F TENG1 +9F20 SHU3 +9F21 SHU3 +9F22 FEN2 +9F23 FEI4 +9F24 WEN2 +9F25 BA2 +9F26 DIAO1 +9F27 TUO2 +9F28 TONG2 ZHONG1 +9F29 QU2 +9F2A SHENG1 +9F2B SHI2 +9F2C YOU4 +9F2D SHI2 +9F2E TING2 +9F2F WU2 +9F30 NIAN4 +9F31 JING1 +9F32 HUN2 +9F33 JU2 +9F34 YAN3 +9F35 TU2 TU1 +9F36 TI2 SI1 +9F37 XI1 XI2 +9F38 XIAN3 +9F39 YAN3 +9F3A LEI2 +9F3B BI2 +9F3C YAO3 +9F3D QIU2 +9F3E HAN1 +9F3F WU1 +9F40 WU4 +9F41 HOU1 HOU2 +9F42 XI4 +9F43 GE2 E4 +9F44 ZHA1 +9F45 XIU4 +9F46 WENG4 +9F47 ZHA1 +9F48 NONG2 +9F49 NANG4 +9F4A QI2 JI1 JI4 JIAN3 ZHAI1 ZI1 +9F4B ZHAI1 +9F4C JI4 QI1 +9F4D ZI1 +9F4E JI1 QI2 +9F4F JI1 +9F50 QI2 JI1 JI4 JIAN3 ZHAI1 ZI1 +9F51 JI1 +9F52 CHI3 +9F53 CHEN4 +9F54 CHEN4 +9F55 HE2 +9F56 YA2 +9F57 KEN3 YIN2 +9F58 XIE4 +9F59 PAO2 +9F5A CUO4 ZE2 +9F5B SHI4 +9F5C ZI1 CHAI2 +9F5D CHI1 +9F5E NIAN4 YAN4 +9F5F JU3 ZHA1 +9F60 TIAO2 +9F61 LING2 +9F62 LING2 +9F63 CHU1 +9F64 QUAN2 +9F65 XIE4 +9F66 KEN3 YIN2 QIAN3 +9F67 NIE4 +9F68 JIU4 +9F69 YAO3 JIAO1 YAO1 +9F6A CHUO4 +9F6B KUN3 +9F6C YU3 WU2 +9F6D CHU3 +9F6E YI3 +9F6F NI2 +9F70 CUO4 ZE2 +9F71 ZOU1 CHUO4 +9F72 QU3 +9F73 NEN3 KUN3 YUN3 +9F74 XIAN3 YAN3 +9F75 OU2 YU2 +9F76 E4 +9F77 WO4 +9F78 YI4 +9F79 CHUO1 +9F7A ZOU1 +9F7B DIAN1 +9F7C CHU3 +9F7D JIN4 +9F7E YA4 +9F7F CHI3 +9F80 CHEN4 +9F81 HE2 +9F82 KEN3 YIN2 +9F83 JU3 +9F84 LING2 +9F85 PAO2 +9F86 TIAO2 +9F87 ZI1 +9F88 KEN3 YIN2 +9F89 YU3 +9F8A CHUO4 +9F8B QU3 +9F8C WO4 +9F8D LONG2 LONG3 MANG2 +9F8E PANG2 +9F8F GONG1 +9F90 PANG2 +9F91 YAN3 +9F92 LONG2 +9F93 LONG2 +9F94 GONG1 +9F95 KAN1 KE4 +9F96 TA4 +9F97 LING2 +9F98 TA4 +9F99 LONG2 LONG3 MANG2 +9F9A GONG1 +9F9B KAN1 +9F9C GUI1 JUN1 QIU1 +9F9D QIU1 +9F9E BIE1 +9F9F GUI1 JUN1 QIU1 +9FA0 YUE4 +9FA1 CHUI4 +9FA2 HE2 HE4 HUO4 +9FA3 JUE2 +9FA4 XIE2 +9FA5 YU4 +9FC3 SHAN3 +F90E LA4 +FA0C WU4 +FA0D HUO4 +FA10 ZHONG3 +FA12 QING2 +FA15 XI1 +FA16 ZHU1 +FA17 YI4 +FA18 LI3 +FA19 SHEN2 +FA1A XIANG2 +FA1B FU2 +FA1C JING4 +FA1D JING1 +FA1E YU3 +FA22 ZHU1 +FA25 YI4 +FA26 DU1 DOU1 +FA2A FAN4 +FA2B SI4 +FA2C GUAN3 +FA2D HE4 +20000 HA1 +20001 QI1 +20005 HAI4 +20009 QIU1 +2000D SHI4 +20065 GA3 GAI4 +20094 ZI3 +200A2 PAI4 +200A4 DUI1 +2018C YONG1 +202A7 BING4 +20503 XI1 +20509 JUAN4 +2053B ZHENG4 +205A5 CHONG3 +205E6 PING2 +206B9 SHAN1 +206BA SHA4 +2070E XIAN4 +2073C QIA1 +207AD LOU2 +207B0 JIAO3 +208A4 JUE4 +2090F BAO3 +209E9 HUI3 +20A7A LI2 +20B1B MO4 +20B36 JIN4 +20B74 ZHUO1 +20CBF SHU4 +20CF6 TU1 +20F3B JI1 +20FDB LU3 +21014 LU4 +210D6 LE1 +21219 YOU2 +2145E SUI4 ZHUI4 +21484 LAN3 +215D7 PENG3 +21681 BI4 +21731 JI4 +217BE NEN4 +21A04 XIA3 +21BA6 ZAO1 +21C46 SHU3 +21C95 TI4 +21F71 JIE4 +21FFA NAO3 +22091 SHI4 +220D5 TA4 TA5 +22136 HUA1 +2214F LIAN2 +22156 LIAN2 +2219E JIAN3 +221C7 GUAN1 +223F3 BENG1 +22638 JIANG4 +2272B XING1 +2272C DUO4 +22738 NAO2 +22833 BIE1 +22835 TANG3 CHANG3 +2295E CHONG1 +2298F ZAI1 +22B46 CHOU1 +22CB7 SOU1 +22D91 NIAO3 +22DA3 DIE2 +22E23 NIAO3 +23012 CHONG4 +23119 HUANG3 +231E2 BIE3 +23386 LUO4 +233B4 DUN3 +23626 YI1 +23AA0 JI1 JI4 QI4 +240F6 DENG4 +2418D CHI4 +241FE YING4 +24364 ZHANG1 +243B1 ZUAN3 +243F2 ZHOU4 +24455 XUN1 XUN4 +2456D JIANG1 JIANG4 QIANG1 +2456F JIANG1 +2486E RAN2 +248AA LIE4 +249DA CONG1 +24B1B LU2 +24BAD CHAN4 +24E93 BIE1 +24FCE PI1 +25134 XUE2 +2521F SOU3 +25275 MA3 +252CC SA2 +252DF XI1 +25418 SHI2 +2546A NAO2 +254FF TUO2 +2570C AO3 +25712 YAN3 +25725 YI4 +25762 LI4 +2579B DUO4 +25874 JI4 +25A72 HAI4 +25B2F KAO3 KAO4 +25F58 MIAO4 +26007 JING1 +26102 DAI4 +26246 CHA2 CHA4 +26408 FEN1 +26675 WAN4 +26693 PING2 +267A3 SAO1 SAO4 +267E4 XIU1 +2690E GAO1 +2696F XUE2 +269C5 WENG4 +26A88 AO2 +26C56 FU4 +26DB2 KOU4 +26DDD CHU2 +26E9C LAO4 LAO2 +272CD ZHE2 +27313 FU4 +27602 CHONG1 CHONG4 +27640 LA4 +27701 SHA1 SHA4 +277AA LA4 +27C0A TIAN2 +27D2A SUO3 +27D73 SHE2 +27E16 ZHUAN4 +27F2E TANG1 +27F78 JUE2 +282EF ZHUAI3 +28329 TANG4 +28373 YAO2 DIAO1 +283B4 DANG1 +28452 TU2 +288A5 MI2 +28D11 KUANG1 +28E1A JI2 +28E2C ZHEN4 +28EB9 JIAO1 +28EF2 XIA4 +292D8 XIE2 WA1 +292E7 XIE2 KAI4 +29357 BANG1 +29517 LEI4 LI4 +2956D GAI4 +29707 JUAN3 +29760 QIU1 +29811 DING3 +29A2D QUE1 +29A97 JUE2 +29E28 YI2 +29F08 AO4 YOU3 +2A0CF MEI2 +2A0FF GE1 +2A378 QU2 +2A3D9 HUANG2 +2A502 DING3 +2A599 HOU1 +2A848 BAI2 BO2 +2A84F ZHAN1 +2A8AE LUAN2 +2AA0A SONG2 +2AA17 JUE1 +2AA9D YONG1 +2AEB9 NU3 +2AED0 CONG1 +2AFA2 XIAN4 +2B061 LI4 +2B088 FEI4 +2B099 SU4 +2B0DC KOU4 +2B128 CHI1 +2B138 XUN1 +2B230 QIA4 +2B2D0 GONG3 +2B300 JI1 +2B328 LUO2 +2B359 YI4 +2B362 NAO2 +2B370 XI3 +2B372 XIAO3 +2B3CB JIAO3 QIAO1 +2B404 YUE4 +2B406 KUAI4 JUE2 +2B409 LING2 +2B410 NI2 +2B413 BU1 BU4 +2B4B6 HAN2 +2B4E7 FU1 FU3 +2B4E9 CONG1 +2B50E JUE2 +2B5E0 DUO2 +2B5E7 SU4 +2B5EE HUANG2 +2B623 HAN4 +2B624 AI2 DAI1 +2B628 TI2 +2B688 XU4 +2B689 GONG1 HONG2 +2B692 PING2 +2B694 HUI2 +2B695 SHI1 +2B699 PU1 +2B6DB ZHI1 +2B6DE JUE2 +2B6E2 NING2 +2B6F6 CHI4 +2B6F8 TI2 diff --git a/97suifangqa/apps/utils/xpinyin/README.txt b/97suifangqa/apps/utils/xpinyin/README.txt new file mode 100644 index 0000000..c5eba75 --- /dev/null +++ b/97suifangqa/apps/utils/xpinyin/README.txt @@ -0,0 +1,54 @@ +xpinyin + +translate chinese hanzi to pinyin by python, inspired by flyerhzm’s chinese_pinyin gem +https://github.com/lxneng/xpinyin + +* Install + +pip install xpinyin + +* Usage + +In [1]: from xpinyin import Pinyin + +In [2]: p = Pinyin() + +In [3]: p.get_pinyin(u"上海") +Out[3]: 'shanghai' + +In [4]: p.get_pinyin(u"上海", '-') +Out[4]: 'shang-hai' + +In [5]: p.get_pinyin(u"上海", ' ') +Out[5]: 'shang hai' + +In [6]: p.get_initials(u"上") +Out[6]: 'S' + +请输入utf8编码汉字 + +------------------------------------------------------------------------ + +translate chinese hanzi to pinyin by python, inspired by flyerhzm’s +`chinese\_pinyin`_ gem + +usage +----- +:: + In [1]: from xpinyin import Pinyin + In [2]: p = Pinyin() + In [3]: p.get_pinyin(u"上海") + Out[3]: 'shang-hai' + In [4]: p.get_initials(u"上") + Out[4]: 'S' +请输入utf8编码汉字 +.. _chinese\_pinyin: https://github.com/flyerhzm/chinese_pinyin + +-------------------------------------------------------------------- + +ChangeLogs: + +2013/07/28, LIweitiaNux <liweitianux@gmail.com> + * add method 'get_initial()', support string with more than 1 char + * add method 'get_py()', to get the initial letters of pinyin + diff --git a/97suifangqa/apps/utils/xpinyin/__init__.py b/97suifangqa/apps/utils/xpinyin/__init__.py new file mode 100644 index 0000000..291c10a --- /dev/null +++ b/97suifangqa/apps/utils/xpinyin/__init__.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +import os.path + + +class Pinyin(object): + """translate chinese hanzi to pinyin by python, inspired by flyerhzm’s + `chinese\_pinyin`_ gem + + usage + ----- + :: + In [1]: from xpinyin import Pinyin + In [2]: p = Pinyin() + In [3]: p.get_pinyin(u"上海") + Out[3]: 'shang-hai' + In [4]: p.get_initials(u"上") + Out[4]: 'S' + 请输入utf8编码汉字 + .. _chinese\_pinyin: https://github.com/flyerhzm/chinese_pinyin + """ + + data_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), + 'Mandarin.dat') + + def __init__(self, data_path=data_path): + self.dict = {} + for line in open(data_path): + k, v = line.split('\t') + self.dict[k] = v + + def get_pinyin(self, chars=u'你好', splitter=u'-'): + result = [] + flag = 1 + for char in chars: + key = "%X" % ord(char) + try: + result.append(self.dict[key].split(" ")[0].strip()[:-1] + .lower()) + flag = 1 + except KeyError: + if flag: + result.append(char) + else: + result[-1] += char + flag = 0 + + return splitter.join(result) + + # def get_initials(self, char=u'你'): + # try: + # return self.dict["%X" % ord(char)].split(" ")[0][0] + # except KeyError: + # return char + + def get_initial(self, chars=u'你好'): + _str = u"" + ch = chars[0] + key = "%X" % ord(ch) + try: + _str += self.dict[key].split(" ")[0][0] + except KeyError: + _str += ch + return _str + + def get_py(self, chars=u'你好'): + _str = u"" + for ch in chars: + _str += self.get_initial(ch) + return _str + diff --git a/97suifangqa/apps/utils/xpinyin/tests.py b/97suifangqa/apps/utils/xpinyin/tests.py new file mode 100644 index 0000000..7ec25d7 --- /dev/null +++ b/97suifangqa/apps/utils/xpinyin/tests.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +import unittest + + +class PinyinTests(unittest.TestCase): + + def Pinyin(self, *a, **kw): + from xpinyin import Pinyin + return Pinyin(*a, **kw) + + def setUp(self): + self.p = self.Pinyin() + + def test_get_pinyin_with_default_splitter(self): + self.assertEqual(self.p.get_pinyin(u'上海'), u'shang-hai') + + def test_get_pinyin_with_splitter(self): + self.assertEqual(self.p.get_pinyin(u'上海', splitter=u''), u'shanghai') + + def test_get_pinyin_mixed_words(self): + self.assertEqual(self.p.get_pinyin(u'Apple发布iOS7'), u'Apple-fa-bu-iOS7') + + def test_get_initials(self): + self.assertEqual(self.p.get_initials(u'你'), u'N') diff --git a/97suifangqa/backupdata/queries.txt b/97suifangqa/backupdata/queries.txt new file mode 100644 index 0000000..437d8d9 --- /dev/null +++ b/97suifangqa/backupdata/queries.txt @@ -0,0 +1,76 @@ +如何去定义乙肝 +什么是慢性乙型肝炎 +什么是急性乙型肝炎 +小三阳的乙肝病状 +小三阳的乙肝为何会比大三阳难以治愈 +什么是乙肝? +小三阳’转化成‘小二阳’代表什么 +小三阳’的乙肝病原学 +母婴传播究竟是怎样的形式 +母亲或父亲得了肝炎是否能要小孩 +若是乙肝患者,进行怀孕的过程中需要注意什么 +若是意外怀孕,何种情况可以不必流产 +产前产中产后需要注意什么 +产后需要何种方式保护新生儿 +各项指标代表什么 +两对半 +甲胎蛋白是什么? +谷丙转氨酶是什么 +什么是病毒HBV DNA? +‘大三阳’代表什么 +小三阳代表什么 +‘小二阳’的概念 +目前医院会采取哪些检测手段 +医院在检测乙肝患者是会采取何种检测方案 +每一种检测方案所代表的意义 +在结合指标情况下推选何种合适时期 +结合指标以及用药历史进行合理的解释 +进行何种其他方面的检测? +在进行了常规检测后,为何医生还会建议去做其他方面的检测 +为何这种检测较为有效 +慢性乙肝能自我修复吗 +‘小三阳’乙肝在体内的病变过程 +肝炎时为何转氨酶升高 +慢性肝炎患者转氨酶急剧升高会有什么问题 +转氨酶升高,必定是肝病加重吗 +针对乙肝病毒需要什么样的免疫 +免疫缺陷是什么 +什么样的免疫治疗会有效 +干扰素作用于人体时所产生的免疫激化 +慢性乙肝的病变情况? +抗病毒治疗是什么 +抗病毒治疗与非抗病毒治疗的区别点 +何时开始启用抗病毒治疗 +对于乙肝治疗有哪些药物可以使用 +选择药品的时候结合指标进行合理的推荐 +结合指标以及病史进行合理的解决方案推荐 +选药期间需要注意什么 +换药期间需要注意什么 +干扰素和核苷类药品在相关替换时需要注意些什么 +干扰素的疗程长短 +对于使用干扰素之后一些相关指标的变化代表什么 +干扰素的治疗终点 +哪些方面代表干扰素的治疗终点 +核苷类药物的治疗终点 +哪些方面代表核苷类的治疗终点 +停药之后需要注意些什么 +实时监控,随访是什么意思 +对于随访究竟有多重要,需要进行怎样的定期检查 +怎样的定期检查符合该名患者的治疗进度 +干扰素每种药品的详细资料 +干扰素治疗在短期内会有什么效果 +干扰素疗程一般多长 +干扰素治疗远期目标是什么 +干扰素的药品有什么优缺点 +干扰素的一个疗程结束后是否需要更换使用另一种干扰素 +长效干扰素的优缺点 +长效干扰素的治疗效果如何 +哪些患者可以使用长效干扰素 +长效干扰素对不同基因型的患者的疗效应答有区别吗 +干扰素是否也会产生耐药 +干扰素是否会有强烈的复发作用 +派罗欣能追求表面抗原转阴吗 +派罗欣适用于哪类病人 +派罗欣有哪些不良反应 +哪些肝病是派罗欣的适应症 +之前接受核苷类药治疗现在能改干扰素吗 diff --git a/97suifangqa/custom_settings.py b/97suifangqa/custom_settings.py new file mode 100644 index 0000000..af35c3b --- /dev/null +++ b/97suifangqa/custom_settings.py @@ -0,0 +1,5 @@ + +AUTHENTICATION_BACKENDS = ( + 'profile.backends.EmailOrUsernameModelBackend', + 'django.contrib.auth.backends.ModelBackend', +)
\ No newline at end of file diff --git a/97suifangqa/ditu.html b/97suifangqa/ditu.html new file mode 100644 index 0000000..8815a09 --- /dev/null +++ b/97suifangqa/ditu.html @@ -0,0 +1 @@ +<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://ditu.google.cn/maps?f=q&source=s_q&hl=zh-CN&q=%E6%98%9F%E5%B7%B4%E5%85%8B&aq=&sll=31.238731,121.433336&sspn=0.001426,0.00283&brcurrent=3,0x35b27002cd47a7f1:0x57b3bfb932aaf682,0%3B5,0,0&ie=UTF8&t=m&st=109146043351405611748&rq=1&ev=zo&split=1&hq=%E6%98%9F%E5%B7%B4%E5%85%8B&fll=31.238499,121.432958&fspn=0.005706,0.011319&hnear=&ll=31.238683,121.436659&spn=0.005706,0.011319&output=embed"></iframe><br /><small><a href="http://ditu.google.cn/maps?f=q&source=embed&hl=zh-CN&q=%E6%98%9F%E5%B7%B4%E5%85%8B&aq=&sll=31.238731,121.433336&sspn=0.001426,0.00283&brcurrent=3,0x35b27002cd47a7f1:0x57b3bfb932aaf682,0%3B5,0,0&ie=UTF8&t=m&st=109146043351405611748&rq=1&ev=zo&split=1&hq=%E6%98%9F%E5%B7%B4%E5%85%8B&fll=31.238499,121.432958&fspn=0.005706,0.011319&hnear=&ll=31.238683,121.436659&spn=0.005706,0.011319" style="color:#0000FF;text-align:left">查看大图</a></small>
\ No newline at end of file diff --git a/97suifangqa/env/mk-virtual-env.py b/97suifangqa/env/mk-virtual-env.py new file mode 100755 index 0000000..be51dea --- /dev/null +++ b/97suifangqa/env/mk-virtual-env.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +#-*- coding: utf-8 -*- +''' + 用法: + 1. 安装:在mk-virtua-env.py文件所在目录下执行python mk-virtualenv-env.py以安装环境 + 2. 运行:在terminal里面执行source <PROJ-DIR>/env/env/bin/activate, 然后启动web服务相关的进程 +''' +import virtualenv, textwrap +import os,subprocess, tempfile +output = virtualenv.create_bootstrap_script(textwrap.dedent(""" +import os, subprocess +def after_install(options, home_dir): + subprocess.call([join(home_dir, 'bin', 'pip'), + 'install', + '-r', + 'requirements.pip']) +""")) +f = tempfile.NamedTemporaryFile() +f.write(output) +f.flush() + +subprocess.call(['python', f.name, 'env']) diff --git a/97suifangqa/env/requirements.pip b/97suifangqa/env/requirements.pip new file mode 100644 index 0000000..c362dad --- /dev/null +++ b/97suifangqa/env/requirements.pip @@ -0,0 +1,8 @@ +#-*- coding: utf-8 -*- +# 安装指定依赖的第三方库和版本:pip install -r requirements.pip +django < 1.5 +PIL +lxml +pysolr +uwsgi +git+https://github.com/toastdriven/django-haystack.git@master#egg=django-haystack diff --git a/97suifangqa/env/solr.sh b/97suifangqa/env/solr.sh new file mode 100644 index 0000000..ec8d0e8 --- /dev/null +++ b/97suifangqa/env/solr.sh @@ -0,0 +1,12 @@ +wget http://mirror.bit.edu.cn/apache/lucene/solr/3.6.2/apache-solr-3.6.2.tgz -O solr.tgz +tar xzvf solr.tgz + +# 使用方法 +#生成schema.xml: + #./manage.py build_solr_schema > env/apache-solr-3.6.2/example/solr/conf/schema.xml + +#启动solr: + #java -jar env/apache-solr-3.6.2/example/start.jar + +#更新索引: + #./manage.py update_index diff --git a/97suifangqa/fixtures/initial_data.json b/97suifangqa/fixtures/initial_data.json new file mode 100644 index 0000000..72c778b --- /dev/null +++ b/97suifangqa/fixtures/initial_data.json @@ -0,0 +1,92 @@ +[ + { + "pk": 1, + "model": "auth.user", + "fields": { + "username": "admin", + "first_name": "", + "last_name": "", + "is_active": true, + "is_superuser": true, + "is_staff": true, + "last_login": "2013-08-03T21:06:50.885", + "groups": [], + "user_permissions": [], + "password": "pbkdf2_sha256$10000$H6nJhlyljgc4$KpHXyPQ7yvhbt9TVMgGVslPnKKuCbwL0WsWA0/J0iDI=", + "email": "admin@admin.com", + "date_joined": "2013-08-03T21:06:10.807" + } + }, + { + "pk": 2, + "model": "auth.user", + "fields": { + "username": "test", + "first_name": "", + "last_name": "", + "is_active": true, + "is_superuser": false, + "is_staff": false, + "last_login": "2013-08-03T21:07:14.332", + "groups": [], + "user_permissions": [], + "password": "pbkdf2_sha256$10000$9SIFKsWpSUTT$6q0Gl3IwDhVqXw7M7cbrZ6yStxPdlJGZYUY2tVY9fxg=", + "email": "", + "date_joined": "2013-08-03T21:07:14.332" + } + }, + { + "pk": 3, + "model": "auth.user", + "fields": { + "username": "isuifangqa", + "first_name": "", + "last_name": "", + "is_active": true, + "is_superuser": true, + "is_staff": true, + "last_login": "2013-07-20T15:52:13.059", + "groups": [], + "user_permissions": [], + "password": "pbkdf2_sha256$10000$PBu41nJCDoS9$eGwEX8ZeS1Ot/urxOqQgVorHFvC+LAlBX3wKYrbtsFM=", + "email": "isuifang@gmail.com", + "date_joined": "2013-04-23T15:04:43.823" + } + }, + { + "pk": 4, + "model": "auth.user", + "fields": { + "username": "maxwellhjt", + "first_name": "", + "last_name": "", + "is_active": true, + "is_superuser": false, + "is_staff": false, + "last_login": "2013-06-24T22:07:56.201", + "groups": [], + "user_permissions": [], + "password": "pbkdf2_sha256$10000$ccvMiwsQB9Cz$EUrqcy7PZ9o4LwPzQPimsLgsrTg8zCtZ5dYNCqbfGzE=", + "email": "", + "date_joined": "2013-06-24T22:07:56.201" + } + }, + { + "pk": 5, + "model": "auth.user", + "fields": { + "username": "maxwell", + "first_name": "", + "last_name": "", + "is_active": true, + "is_superuser": false, + "is_staff": false, + "last_login": "2013-07-20T14:55:05.551", + "groups": [], + "user_permissions": [], + "password": "pbkdf2_sha256$10000$I30HnnfWfD4S$DFmzkurup7phJg+Fr8S64XgDTKABkN3ntH/TMsbp6KA=", + "email": "", + "date_joined": "2013-07-20T14:55:05.551" + } + } +]
\ No newline at end of file diff --git a/97suifangqa/haystack_settings.py b/97suifangqa/haystack_settings.py new file mode 100644 index 0000000..827c262 --- /dev/null +++ b/97suifangqa/haystack_settings.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- + +HAYSTACK_SIGNAL_PROCESSOR = 'haystack.signals.RealtimeSignalProcessor' + +HAYSTACK_CONNECTIONS = { + 'default': { + #'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', + #'PATH': os.path.join(os.path.dirname(__file__), 'whoosh_index'), + 'ENGINE': 'haystack.backends.solr_backend.SolrEngine', + 'URL': 'http://127.0.0.1:8983/solr', + 'TIMEOUT': 60*5, + 'INCLUDE_SPELLING': True, + 'BATCH_SIZE': 100, + }, +} + diff --git a/97suifangqa/isuifangqa.db b/97suifangqa/isuifangqa.db Binary files differnew file mode 100644 index 0000000..47f6199 --- /dev/null +++ b/97suifangqa/isuifangqa.db diff --git a/97suifangqa/isuifangqa.ini b/97suifangqa/isuifangqa.ini new file mode 100644 index 0000000..98c98ce --- /dev/null +++ b/97suifangqa/isuifangqa.ini @@ -0,0 +1,9 @@ +[uwsgi] +socket=127.0.0.1:8086 +master=true +processes=4 +module=wsgi:application +pidfile = /tmp/isuifangqa.pid +file-serve-mode = default +static-map = /static=/home/isuifang/static +static-map = /media=/home/isuifang/isuifang_qa/media diff --git a/97suifangqa/manage.py b/97suifangqa/manage.py new file mode 100755 index 0000000..3e4eedc --- /dev/null +++ b/97suifangqa/manage.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python +from django.core.management import execute_manager +import imp +try: + imp.find_module('settings') # Assumed to be in the same directory. +except ImportError: + import sys + sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n" % __file__) + sys.exit(1) + +import settings + +if __name__ == "__main__": + execute_manager(settings) diff --git a/97suifangqa/media/avatars/1.png b/97suifangqa/media/avatars/1.png Binary files differnew file mode 100644 index 0000000..e30546d --- /dev/null +++ b/97suifangqa/media/avatars/1.png diff --git a/97suifangqa/media/avatars/10.png b/97suifangqa/media/avatars/10.png Binary files differnew file mode 100644 index 0000000..c1f7529 --- /dev/null +++ b/97suifangqa/media/avatars/10.png diff --git a/97suifangqa/media/avatars/11.png b/97suifangqa/media/avatars/11.png Binary files differnew file mode 100644 index 0000000..e350522 --- /dev/null +++ b/97suifangqa/media/avatars/11.png diff --git a/97suifangqa/media/avatars/12.png b/97suifangqa/media/avatars/12.png Binary files differnew file mode 100644 index 0000000..eb793e1 --- /dev/null +++ b/97suifangqa/media/avatars/12.png diff --git a/97suifangqa/media/avatars/13.png b/97suifangqa/media/avatars/13.png Binary files differnew file mode 100644 index 0000000..414bddc --- /dev/null +++ b/97suifangqa/media/avatars/13.png diff --git a/97suifangqa/media/avatars/14.png b/97suifangqa/media/avatars/14.png Binary files differnew file mode 100644 index 0000000..ece1031 --- /dev/null +++ b/97suifangqa/media/avatars/14.png diff --git a/97suifangqa/media/avatars/15.png b/97suifangqa/media/avatars/15.png Binary files differnew file mode 100644 index 0000000..8a56769 --- /dev/null +++ b/97suifangqa/media/avatars/15.png diff --git a/97suifangqa/media/avatars/16.png b/97suifangqa/media/avatars/16.png Binary files differnew file mode 100644 index 0000000..8013bc1 --- /dev/null +++ b/97suifangqa/media/avatars/16.png diff --git a/97suifangqa/media/avatars/17.png b/97suifangqa/media/avatars/17.png Binary files differnew file mode 100644 index 0000000..f90f66f --- /dev/null +++ b/97suifangqa/media/avatars/17.png diff --git a/97suifangqa/media/avatars/18.png b/97suifangqa/media/avatars/18.png Binary files differnew file mode 100644 index 0000000..a15d4f6 --- /dev/null +++ b/97suifangqa/media/avatars/18.png diff --git a/97suifangqa/media/avatars/19.png b/97suifangqa/media/avatars/19.png Binary files differnew file mode 100644 index 0000000..0e3c554 --- /dev/null +++ b/97suifangqa/media/avatars/19.png diff --git a/97suifangqa/media/avatars/2.png b/97suifangqa/media/avatars/2.png Binary files differnew file mode 100644 index 0000000..3ec2263 --- /dev/null +++ b/97suifangqa/media/avatars/2.png diff --git a/97suifangqa/media/avatars/20.png b/97suifangqa/media/avatars/20.png Binary files differnew file mode 100644 index 0000000..287b83e --- /dev/null +++ b/97suifangqa/media/avatars/20.png diff --git a/97suifangqa/media/avatars/21.png b/97suifangqa/media/avatars/21.png Binary files differnew file mode 100644 index 0000000..4c0ab55 --- /dev/null +++ b/97suifangqa/media/avatars/21.png diff --git a/97suifangqa/media/avatars/22.png b/97suifangqa/media/avatars/22.png Binary files differnew file mode 100644 index 0000000..08197e4 --- /dev/null +++ b/97suifangqa/media/avatars/22.png diff --git a/97suifangqa/media/avatars/3.png b/97suifangqa/media/avatars/3.png Binary files differnew file mode 100644 index 0000000..289a92c --- /dev/null +++ b/97suifangqa/media/avatars/3.png diff --git a/97suifangqa/media/avatars/4.png b/97suifangqa/media/avatars/4.png Binary files differnew file mode 100644 index 0000000..52f2d96 --- /dev/null +++ b/97suifangqa/media/avatars/4.png diff --git a/97suifangqa/media/avatars/5.png b/97suifangqa/media/avatars/5.png Binary files differnew file mode 100644 index 0000000..07827a8 --- /dev/null +++ b/97suifangqa/media/avatars/5.png diff --git a/97suifangqa/media/avatars/6.png b/97suifangqa/media/avatars/6.png Binary files differnew file mode 100644 index 0000000..cec8068 --- /dev/null +++ b/97suifangqa/media/avatars/6.png diff --git a/97suifangqa/media/avatars/7.png b/97suifangqa/media/avatars/7.png Binary files differnew file mode 100644 index 0000000..3f9beba --- /dev/null +++ b/97suifangqa/media/avatars/7.png diff --git a/97suifangqa/media/avatars/8.png b/97suifangqa/media/avatars/8.png Binary files differnew file mode 100644 index 0000000..ca4110b --- /dev/null +++ b/97suifangqa/media/avatars/8.png diff --git a/97suifangqa/media/avatars/9.png b/97suifangqa/media/avatars/9.png Binary files differnew file mode 100644 index 0000000..443ab6d --- /dev/null +++ b/97suifangqa/media/avatars/9.png diff --git a/97suifangqa/media/avatars/user.png b/97suifangqa/media/avatars/user.png Binary files differnew file mode 100644 index 0000000..23359fe --- /dev/null +++ b/97suifangqa/media/avatars/user.png diff --git a/97suifangqa/sass/.gitignore b/97suifangqa/sass/.gitignore new file mode 100644 index 0000000..ad28d89 --- /dev/null +++ b/97suifangqa/sass/.gitignore @@ -0,0 +1 @@ +.sass-cache/*
\ No newline at end of file diff --git a/97suifangqa/sass/LaunchCompass.bat b/97suifangqa/sass/LaunchCompass.bat new file mode 100644 index 0000000..a4aae2f --- /dev/null +++ b/97suifangqa/sass/LaunchCompass.bat @@ -0,0 +1,10 @@ +@echo off
+
+REM Launch Ruby Compass SASS Compiler
+PUSHD %~dp0
+
+PATH %PATH%;%RUBY%\..\
+%RUBY%\..\compass watch
+
+pause
+
diff --git a/97suifangqa/sass/config.rb b/97suifangqa/sass/config.rb new file mode 100644 index 0000000..3875e24 --- /dev/null +++ b/97suifangqa/sass/config.rb @@ -0,0 +1,56 @@ +# +# This file is only needed for Compass/Sass integration. If you are not using +# Compass, you may safely ignore or delete this file. +# +# If you'd like to learn more about Sass and Compass, see the sass/README.txt +# file for more information. +# + + +# Change this to :production when ready to deploy the CSS to the live server. +environment = :development +#environment = :production + +# In development, we can turn on the FireSass-compatible debug_info. +firesass = false +#firesass = true + + +# Location of the theme's resources. +css_dir = "../staticfiles/stylesheets/sass" +sass_dir = "sass" +extensions_dir = "sass-extensions" +images_dir = "../staticfiles/images" +javascripts_dir = "../staticfiles/javascripts" + + +# Require any additional compass plugins installed on your system. +#require 'ninesixty' +#require 'zen-grids' + +# Assuming this theme is in sites/*/themes/THEMENAME, you can add the partials +# included with a module by uncommenting and modifying one of the lines below: +#add_import_path "../../../default/modules/FOO" +#add_import_path "../../../all/modules/FOO" +#add_import_path "../../../../modules/FOO" + + +## +## You probably don't need to edit anything below this. +## + +# You can select your preferred output style here (can be overridden via the command line): +# output_style = :expanded or :nested or :compact or :compressed +output_style = (environment == :development) ? :expanded : :compressed + +# To enable relative paths to assets via compass helper functions. Since Drupal +# themes can be installed in multiple locations, we don't need to worry about +# the absolute path to the theme from the server root. +relative_assets = true + +# To disable debugging comments that display the original location of your selectors. Uncomment: +# line_comments = false + +# Pass options to sass. For development, we turn on the FireSass-compatible +# debug_info if the firesass config variable above is true. +sass_options = (environment == :development && firesass == true) ? {:debug_info => true} : {} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/DO_NOT_MODIFY b/97suifangqa/sass/sass-extensions/zen-grids/DO_NOT_MODIFY new file mode 100644 index 0000000..9219548 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/DO_NOT_MODIFY @@ -0,0 +1,17 @@ +This is a copy of the "zen-grids" extension. + +It now overrides the original which was found here: + +/Library/Ruby/Gems/1.8/gems/zen-grids-1.2 + +Unpacking an extension is useful when you need to easily peruse the +extension's source. You might find yourself tempted to change the +stylesheets here. If you do this, you'll find it harder to take +updates from the original author. Sometimes this seems like a good +idea at the time, but in a few months, you'll probably regret it. + +In the future, if you take an update of this framework, you'll need to run + + compass unpack zen-grids + +again or remove this unpacked extension. diff --git a/97suifangqa/sass/sass-extensions/zen-grids/LICENSE.txt b/97suifangqa/sass/sass-extensions/zen-grids/LICENSE.txt new file mode 100644 index 0000000..2c095c8 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/LICENSE.txt @@ -0,0 +1,274 @@ +GNU GENERAL PUBLIC LICENSE + + Version 2, June 1991 + +Copyright (C) 1989, 1991 Free Software Foundation, Inc. 675 Mass Ave, +Cambridge, MA 02139, USA. Everyone is permitted to copy and distribute +verbatim copies of this license document, but changing it is not allowed. + + Preamble + +The licenses for most software are designed to take away your freedom to +share and change it. By contrast, the GNU General Public License is +intended to guarantee your freedom to share and change free software--to +make sure the software is free for all its users. This General Public License +applies to most of the Free Software Foundation's software and to any other +program whose authors commit to using it. (Some other Free Software +Foundation software is covered by the GNU Library General Public License +instead.) You can apply it to your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our +General Public Licenses are designed to make sure that you have the +freedom to distribute copies of free software (and charge for this service if +you wish), that you receive source code or can get it if you want it, that you +can change the software or use pieces of it in new free programs; and that +you know you can do these things. + +To protect your rights, we need to make restrictions that forbid anyone to +deny you these rights or to ask you to surrender the rights. These restrictions +translate to certain responsibilities for you if you distribute copies of the +software, or if you modify it. + +For example, if you distribute copies of such a program, whether gratis or for +a fee, you must give the recipients all the rights that you have. You must make +sure that they, too, receive or can get the source code. And you must show +them these terms so they know their rights. + +We protect your rights with two steps: (1) copyright the software, and (2) +offer you this license which gives you legal permission to copy, distribute +and/or modify the software. + +Also, for each author's protection and ours, we want to make certain that +everyone understands that there is no warranty for this free software. If the +software is modified by someone else and passed on, we want its recipients +to know that what they have is not the original, so that any problems +introduced by others will not reflect on the original authors' reputations. + +Finally, any free program is threatened constantly by software patents. We +wish to avoid the danger that redistributors of a free program will individually +obtain patent licenses, in effect making the program proprietary. To prevent +this, we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + +The precise terms and conditions for copying, distribution and modification +follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND + MODIFICATION + +0. This License applies to any program or other work which contains a notice +placed by the copyright holder saying it may be distributed under the terms +of this General Public License. The "Program", below, refers to any such +program or work, and a "work based on the Program" means either the +Program or any derivative work under copyright law: that is to say, a work +containing the Program or a portion of it, either verbatim or with +modifications and/or translated into another language. (Hereinafter, translation +is included without limitation in the term "modification".) Each licensee is +addressed as "you". + +Activities other than copying, distribution and modification are not covered +by this License; they are outside its scope. The act of running the Program is +not restricted, and the output from the Program is covered only if its contents +constitute a work based on the Program (independent of having been made +by running the Program). Whether that is true depends on what the Program +does. + +1. You may copy and distribute verbatim copies of the Program's source +code as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice and +disclaimer of warranty; keep intact all the notices that refer to this License +and to the absence of any warranty; and give any other recipients of the +Program a copy of this License along with the Program. + +You may charge a fee for the physical act of transferring a copy, and you +may at your option offer warranty protection in exchange for a fee. + +2. You may modify your copy or copies of the Program or any portion of it, +thus forming a work based on the Program, and copy and distribute such +modifications or work under the terms of Section 1 above, provided that you +also meet all of these conditions: + +a) You must cause the modified files to carry prominent notices stating that +you changed the files and the date of any change. + +b) You must cause any work that you distribute or publish, that in whole or in +part contains or is derived from the Program or any part thereof, to be +licensed as a whole at no charge to all third parties under the terms of this +License. + +c) If the modified program normally reads commands interactively when run, +you must cause it, when started running for such interactive use in the most +ordinary way, to print or display an announcement including an appropriate +copyright notice and a notice that there is no warranty (or else, saying that +you provide a warranty) and that users may redistribute the program under +these conditions, and telling the user how to view a copy of this License. +(Exception: if the Program itself is interactive but does not normally print such +an announcement, your work based on the Program is not required to print +an announcement.) + +These requirements apply to the modified work as a whole. If identifiable +sections of that work are not derived from the Program, and can be +reasonably considered independent and separate works in themselves, then +this License, and its terms, do not apply to those sections when you distribute +them as separate works. But when you distribute the same sections as part +of a whole which is a work based on the Program, the distribution of the +whole must be on the terms of this License, whose permissions for other +licensees extend to the entire whole, and thus to each and every part +regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest your rights to +work written entirely by you; rather, the intent is to exercise the right to +control the distribution of derivative or collective works based on the +Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of a +storage or distribution medium does not bring the other work under the scope +of this License. + +3. You may copy and distribute the Program (or a work based on it, under +Section 2) in object code or executable form under the terms of Sections 1 +and 2 above provided that you also do one of the following: + +a) Accompany it with the complete corresponding machine-readable source +code, which must be distributed under the terms of Sections 1 and 2 above +on a medium customarily used for software interchange; or, + +b) Accompany it with a written offer, valid for at least three years, to give +any third party, for a charge no more than your cost of physically performing +source distribution, a complete machine-readable copy of the corresponding +source code, to be distributed under the terms of Sections 1 and 2 above on +a medium customarily used for software interchange; or, + +c) Accompany it with the information you received as to the offer to distribute +corresponding source code. (This alternative is allowed only for +noncommercial distribution and only if you received the program in object +code or executable form with such an offer, in accord with Subsection b +above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source code +means all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation and +installation of the executable. However, as a special exception, the source +code distributed need not include anything that is normally distributed (in +either source or binary form) with the major components (compiler, kernel, +and so on) of the operating system on which the executable runs, unless that +component itself accompanies the executable. + +If distribution of executable or object code is made by offering access to +copy from a designated place, then offering equivalent access to copy the +source code from the same place counts as distribution of the source code, +even though third parties are not compelled to copy the source along with the +object code. + +4. You may not copy, modify, sublicense, or distribute the Program except as +expressly provided under this License. Any attempt otherwise to copy, +modify, sublicense or distribute the Program is void, and will automatically +terminate your rights under this License. However, parties who have received +copies, or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + +5. You are not required to accept this License, since you have not signed it. +However, nothing else grants you permission to modify or distribute the +Program or its derivative works. These actions are prohibited by law if you +do not accept this License. Therefore, by modifying or distributing the +Program (or any work based on the Program), you indicate your acceptance +of this License to do so, and all its terms and conditions for copying, +distributing or modifying the Program or works based on it. + +6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the original +licensor to copy, distribute or modify the Program subject to these terms and +conditions. You may not impose any further restrictions on the recipients' +exercise of the rights granted herein. You are not responsible for enforcing +compliance by third parties to this License. + +7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), conditions +are imposed on you (whether by court order, agreement or otherwise) that +contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot distribute so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not distribute the Program at all. +For example, if a patent license would not permit royalty-free redistribution +of the Program by all those who receive copies directly or indirectly through +you, then the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply and +the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any patents or +other property right claims or to contest validity of any such claims; this +section has the sole purpose of protecting the integrity of the free software +distribution system, which is implemented by public license practices. Many +people have made generous contributions to the wide range of software +distributed through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing to +distribute software through any other system and a licensee cannot impose +that choice. + +This section is intended to make thoroughly clear what is believed to be a +consequence of the rest of this License. + +8. If the distribution and/or use of the Program is restricted in certain +countries either by patents or by copyrighted interfaces, the original copyright +holder who places the Program under this License may add an explicit +geographical distribution limitation excluding those countries, so that +distribution is permitted only in or among countries not thus excluded. In such +case, this License incorporates the limitation as if written in the body of this +License. + +9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will be +similar in spirit to the present version, but may differ in detail to address new +problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies +a version number of this License which applies to it and "any later version", +you have the option of following the terms and conditions either of that +version or of any later version published by the Free Software Foundation. If +the Program does not specify a version number of this License, you may +choose any version ever published by the Free Software Foundation. + +10. If you wish to incorporate parts of the Program into other free programs +whose distribution conditions are different, write to the author to ask for +permission. For software which is copyrighted by the Free Software +Foundation, write to the Free Software Foundation; we sometimes make +exceptions for this. Our decision will be guided by the two goals of +preserving the free status of all derivatives of our free software and of +promoting the sharing and reuse of software generally. + + NO WARRANTY + +11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT +PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE +STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT +WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND +PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL +NECESSARY SERVICING, REPAIR OR CORRECTION. + +12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR +AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR +ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE +LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, +SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OR INABILITY TO USE THE +PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA +OR DATA BEING RENDERED INACCURATE OR LOSSES +SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE +PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN +IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS diff --git a/97suifangqa/sass/sass-extensions/zen-grids/README.txt b/97suifangqa/sass/sass-extensions/zen-grids/README.txt new file mode 100644 index 0000000..e60f5b0 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/README.txt @@ -0,0 +1,84 @@ +ABOUT zen-grids +--------------- + +Zen Grids is an intuitive, flexible grid system that leverages the natural +source order of your content to make it easier to create fluid responsive +designs. With an easy-to-use Sass mixin set, the Zen Grids system can be applied +to an infinite number of layouts, including responsive, adaptive, fluid and +fixed-width layouts. + + +USAGE +----- + +Here's a simple example: a content column with a sidebar on each side, aligned +to a 12 column grid. + + @import "zen"; + + $zen-gutter-width: 40px; // Set the gutter size. A half-gutter is used on + // each side of each column. + + .container { + @include zen-grid-container; // Define the container for your grid items. + } + + $zen-column-count: 12; // Set the number of grid columns to use in this media + // query. You'll likely want a different grid for + // different screen sizes. + + @media all and (min-width: 50em) { + .sidebar1 { + @include zen-grid-item(3, 1); // Span 3 columns starting in 1st column + } + .content { + @include zen-grid-item(6, 4); // Span 6 columns starting in 4th column + } + .sidebar2 { + @include zen-grid-item(3, 10); // Span 3 columns starting in 10th column + } + } + +Within the .container element, the .sidebar1, .sidebar2 and .content elements +can be in any order. + +Zen Grids has built-in support for the Box-sizing Polyfill which adds +"box-sizing: border-box" support to IE7 and earlier. + +- Download the polyfill at https://github.com/Schepp/box-sizing-polyfill +- Place the boxsizing.htc file in your website. +- Set Zen Grids' $box-sizing-polyfill-path variable to the absolute path to the + boxsizing.htc file on your website. For example: + $box-sizing-polyfill-path: "/scripts/polyfills/boxsizing.htc"; + + +INSTALLATION +------------ + +Zen grids is distributed as a Ruby Gem. On your computer, simply run: + + sudo gem install zen-grids + +If you are using Compass (and you should!) then you can add it to an existing +project by editing the project's configuration file, config.rb, and adding this +line: + + require 'zen-grids' + +You can then start using Zen Grids in your Sass files. Just add this line to one +of your .sass or .scss files and start creating! + + @import "zen"; + + +REQUIREMENTS +------------ + +- Sass 3.1 or later +- Compass 0.11 or later + + +LICENSE +------- + +Available under the GPL v2 license. See LICENSE.txt. diff --git a/97suifangqa/sass/sass-extensions/zen-grids/lib/zen-grids.rb b/97suifangqa/sass/sass-extensions/zen-grids/lib/zen-grids.rb new file mode 100644 index 0000000..d16a96e --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/lib/zen-grids.rb @@ -0,0 +1,3 @@ +require 'compass' +extension_path = File.expand_path(File.join(File.dirname(__FILE__), "..")) +Compass::Frameworks.register('zen-grids', :path => extension_path) diff --git a/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/_zen.scss b/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/_zen.scss new file mode 100644 index 0000000..283f2ee --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/_zen.scss @@ -0,0 +1,3 @@ +// Import the partial for Zen Grids. + +@import "zen/grids"; diff --git a/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/zen/_background-grid.scss b/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/zen/_background-grid.scss new file mode 100644 index 0000000..4510125 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/zen/_background-grid.scss @@ -0,0 +1,80 @@ +@import "zen/grids"; + +// Specify the column background color. +$bg-grid-color: #ffdede !default; + + +// +// This mixin currently requires the following markup at the top of the responsive container (e.g. body or div#page, etc.). +// <p class="bg-grid"> +// <span class="bgcol-1">1</span><span class="bgcol-2">2</span><span class="bgcol-3">3</span><span class="bgcol-4">4</span><span class="bgcol-5">5</span><span class="bgcol-6">6</span><span class="bgcol-7">7</span><span class="bgcol-8">8</span><span class="bgcol-9">9</span><span class="bgcol-10">10</span><span class="bgcol-11">11</span><span class="bgcol-12">12</span><span class="bgcol-13">13</span><span class="bgcol-14">14</span><span class="bgcol-15">15</span><span class="bgcol-16">16</span><span class="bgcol-17">17</span><span class="bgcol-18">18</span><span class="bgcol-19">19</span><span class="bgcol-20">20</span><span class="bgcol-21">21</span><span class="bgcol-22">22</span><span class="bgcol-23">23</span><span class="bgcol-24">24</span><span class="bgcol-25">25</span><span class="bgcol-26">26</span><span class="bgcol-27">27</span><span class="bgcol-28">28</span><span class="bgcol-29">29</span><span class="bgcol-30">30</span> +// <span class="bgcolrev-1">1</span><span class="bgcolrev-2">2</span><span class="bgcolrev-3">3</span><span class="bgcolrev-4">4</span><span class="bgcolrev-5">5</span><span class="bgcolrev-6">6</span><span class="bgcolrev-7">7</span><span class="bgcolrev-8">8</span><span class="bgcolrev-9">9</span><span class="bgcolrev-10">10</span><span class="bgcolrev-11">11</span><span class="bgcolrev-12">12</span><span class="bgcolrev-13">13</span><span class="bgcolrev-14">14</span><span class="bgcolrev-15">15</span><span class="bgcolrev-16">16</span><span class="bgcolrev-17">17</span><span class="bgcolrev-18">18</span><span class="bgcolrev-19">19</span><span class="bgcolrev-20">20</span><span class="bgcolrev-21">21</span><span class="bgcolrev-22">22</span><span class="bgcolrev-23">23</span><span class="bgcolrev-24">24</span><span class="bgcolrev-25">25</span><span class="bgcolrev-26">26</span><span class="bgcolrev-27">27</span><span class="bgcolrev-28">28</span><span class="bgcolrev-29">29</span><span class="bgcolrev-30">30</span> +// </p> +// +@mixin -experimental-bg-grid( + $column-count: $zen-column-count, + $gutter-width: $zen-gutter-width, + $grid-color: $bg-grid-color, + $grid-width: $zen-grid-width, + $flow-direction: $zen-float-direction +) { + + // Internal variables. + $dir: $flow-direction; + @if $zen-reverse-all-floats { + $dir: zen-direction-flip($dir); + } + $rev: zen-direction-flip($dir); + + $font-size: 16px; + $line-height: 24px; + $color-bg: #fff; + + @include zen-grid-container; + position: absolute; + position: fixed; + z-index: -1; + margin-left: auto; + margin-right: auto; + width: $grid-width; + height: 100%; + font-size: $font-size; + line-height: $line-height; + font-weight: bold; + font-family: sans-serif; + background-color: $color-bg; + + span { + @include zen-grid-item-base; + padding: 0; + text-align: center; + color: $color-bg; + @include text-shadow(darken($grid-color, 75%) 0 0 4px); + } + @for $i from 1 through $column-count { + .bgcol-#{$i} { + @include zen-grid-item(1, $i, $column-count: $column-count, $gutter-width: $gutter-width, $float-direction: $dir, $auto-include-item-base: false); + display: block; // Override display: none applied for grids with different column numbers. + height: 100%; + margin-bottom: -($line-height); + background-color: $grid-color; + border: { + left: zen-half-gutter($gutter-width) solid $color-bg; + right: zen-half-gutter($gutter-width) solid $color-bg; + } + } + .bgcolrev-#{$i} { + @if $i == 1 { + @include zen-clear(); + } + @include zen-grid-item(1, $i, $column-count: $column-count, $gutter-width: $gutter-width, $float-direction: $rev, $auto-include-item-base: false); + display: block; // Override display: none applied for grids with different column numbers. + } + } + @for $i from ($column-count + 1) through 30 { + .bgcol-#{$i}, + .bgcolrev-#{$i} { + display: none; + } + } +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss b/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss new file mode 100644 index 0000000..6310e7f --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss @@ -0,0 +1,355 @@ +// +// Mixins for the Zen Grids system. +// + + +// Specify the number of columns in the grid. +$zen-column-count: 1 !default; + +// Specify the width of the gutters; half of the gutter will be placed on each +// side of a grid column. +$zen-gutter-width: 20px !default; + +// You can generate more efficient CSS if you manually apply the +// zen-grid-item-base mixin to all grid items from within a single ruleset. +$zen-auto-include-item-base: true !default; +$zen-auto-include-flow-item-base: true !default; + +// Specify the width of the entire grid. Defaults to 100% for a fluid responsive +// design, but you can change this to a pixel value if you need a fixed grid. +$zen-grid-width: 100% !default; + +// The box-sizing polyfill for IE6/7 requires an absolute path to the +// boxsizing.htc file. See https://github.com/Schepp/box-sizing-polyfill +$box-sizing-polyfill-path: "" !default; + +// Specify the CSS3 box-sizing method. The default, "border-box", is compatible +// with all modern browsers, including IE 8 and later. Use "content-box" for +// wider compatibility (Note: you'll also need to set $legacy-support-for-ie7 +// and $legacy-support-for-ie6 to true.) +$zen-box-sizing: border-box !default; + +// Turn off IE6/7 support since we're defaulting to box-sizing: border-box. +$legacy-support-for-ie7: false !default; +$legacy-support-for-ie6: false !default; + +// Specify the default floating direction for zen's mixins. +$zen-float-direction: left !default; + +// This is a helper variable for RTL layouts. +$zen-reverse-all-floats: false !default; + + +// +// Apply this to the grid container element. +// +@mixin zen-grid-container () { + @if ($legacy-support-for-ie6 or $legacy-support-for-ie7) { + *position: relative; // @TODO: This is a pre-IE8 line of code; don't remember why its needed. + } + // We use the "micro clearfix", instead of Compass' clearfix or pie-clearfix. + &:before, + &:after { + content: ""; + display: table; + } + &:after { + clear: both; + } + @if ($legacy-support-for-ie6 or $legacy-support-for-ie7) { + *zoom: 1; + } +} + +// +// Apply this to any grid item that is also a grid container element for a +// nested grid. It must be applied after the zen-grid-item() mixin. +// +@mixin zen-nested-container () { + padding: { + left: 0; + right: 0; + } +} + +// +// Apply this to each grid item. Set the $column-span to the number of columns +// that the grid item spans. And set the $column-position to the column number +// the grid item starts on. +// +// For grid items that are floated right, the $column-position is counted +// from the right instead of from the left. +// +@mixin zen-grid-item ( + $column-span, + $column-position, + $float-direction: $zen-float-direction, + $column-count: $zen-column-count, + $gutter-width: $zen-gutter-width, + $grid-width: $zen-grid-width, + $box-sizing: $zen-box-sizing, + $reverse-all-floats: $zen-reverse-all-floats, + $auto-include-item-base: $zen-auto-include-item-base +) { + + // Calculate the unit width. + $unit-width: zen-unit-width($column-count, $grid-width); + + // Determine the float direction and its reverse. + $dir: $float-direction; + @if $reverse-all-floats { + $dir: zen-direction-flip($dir); + } + $rev: zen-direction-flip($dir); + + float: $dir; + $width: $column-span * $unit-width; + @if $box-sizing == content-box { + @if not comparable($width, $gutter-width) { + $units-gutter: unit($gutter-width); + $units-grid: unit($grid-width); + @warn "The layout cannot be calculated correctly; when using box-sizing: content-box, the units of the gutter (#{$units-gutter} did not match the units of the grid width (#{$units-grid})."; + } + $width: $width - $gutter-width; + } + width: $width; + margin: { + #{$dir}: ($column-position - 1) * $unit-width; + #{$rev}: (1 - $column-position - $column-span) * $unit-width; + } + + // Auto-apply the unit base mixin. + @if $auto-include-item-base { + @include zen-grid-item-base($gutter-width, $box-sizing); + } +} + +// +// Applies a standard set of properites to all grid items in the layout. +// +// See the note about the $zen-auto-include-item-base and +// $zen-auto-include-flow-item-base variables for when to use this mixin. +// +// The mixin has the following optional parameters, but its better to use the +// $zen-gutter-width and $zen-box-sizing variables instead: +// - $gutter-width: Half of this value is applied as padding to the left and +// right sides of the item. +// - $box-sizing: The type of CSS3 box model each box should use. Can be set to +// content-box or border-box. Defaults to content-box, but border-box is way +// cooler. IE 6 and 7 don't support border-box. +@mixin zen-grid-item-base ( + $gutter-width: $zen-gutter-width, + $box-sizing: $zen-box-sizing, + $flow-direction: $zen-float-direction, + $reverse-all-flows: $zen-reverse-all-floats +) { + + $dir: $flow-direction; + @if $reverse-all-flows { + $dir: zen-direction-flip($dir); + } + + padding: { + left: zen-half-gutter($gutter-width, left, $dir); + right: zen-half-gutter($gutter-width, right, $dir); + } + // Specify the border-box properties. + @if $box-sizing == border-box { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + // Prevent borders since they'll break the layout with content-box. + @if $box-sizing == content-box { + border: 0 !important; + } + // Prevent overflowing content from being hidden beneath other grid items. + word-wrap: break-word; // A very nice CSS3 property. + + @if ($legacy-support-for-ie6 or $legacy-support-for-ie7) { + @if $box-sizing == border-box and $box-sizing-polyfill-path == "" { + @warn "IE legacy support is on, but $box-sizing is set to #{$box-sizing} and the $box-sizing-polyfill-path is empty."; + } + @if $box-sizing-polyfill-path != "" { + *behavior: url($box-sizing-polyfill-path); + } + @if $legacy-support-for-ie6 { + _display: inline; // Display inline or double your floated margin! [1] + _overflow: hidden; // Prevent overflowing content from breaking the layout. + _overflow-y: visible; // In IE6, overflow visible is broken [2] + // 1. http://www.positioniseverything.net/explorer/doubled-margin.html + // 2. http://www.howtocreate.co.uk/wrongWithIE/?chapter=overflow%3Avisible%3B + } + } +} + +// +// Apply this to content boxes that need to be cleared below other content boxes. +// +@mixin zen-clear ( + $float-direction: $zen-float-direction, + $reverse-all-floats: $zen-reverse-all-floats +) { + // Determine the float direction. + $dir: $float-direction; + @if $reverse-all-floats { + $dir: zen-direction-flip($dir); + } + clear: $dir; +} + +// +// Apply this to flow items that need to be floated. +// +@mixin zen-float ( + $float-direction: $zen-float-direction, + $reverse-all-floats: $zen-reverse-all-floats +) { + // Determine the float direction. + $dir: $float-direction; + @if $reverse-all-floats { + $dir: zen-direction-flip($dir); + } + float: $dir; +} + +// +// Apply this to an HTML item that is in the normal flow of a document to help +// align it to the grid. Set the $column-span to the number of columns that the +// HTML element should span. For responsive layouts with a percentage-based grid +// width, set the $parent-column-count to the number of columns that the parent +// element spans; fixed-unit layouts using px, em, etc. do not need to specify +// this. +// +// Unlike the zen-grid-item() mixin, this mixin does not float the HTML item; it +// also does not have a half-gutter on each side. By default, it has no gutter +// in the "alpha position" (the left side) and a full gutter in the "omega +// position" (the right side.) You can turn on or off the alpha and omega +// gutters by setting the $alpha-gutter and $omega-gutter parameters to true or +// false. +// +// Note: when the $flow-direction is set to right (for RTL languages), the alpha +// position is on the right and the omega position is on the left. +// +@mixin zen-grid-flow-item ( + $column-span, + $parent-column-count: false, + $alpha-gutter: false, + $omega-gutter: true, + $flow-direction: $zen-float-direction, + $column-count: $zen-column-count, + $gutter-width: $zen-gutter-width, + $grid-width: $zen-grid-width, + $box-sizing: $zen-box-sizing, + $reverse-all-flows: $zen-reverse-all-floats, + $auto-include-flow-item-base: $zen-auto-include-flow-item-base +) { + + $columns: $column-count; + @if unit($grid-width) == "%" { + @if $parent-column-count == false { + @warn "For responsive layouts with a percentage-based grid width, you must set the $column-count to the number of columns that the parent element spans."; + } + @else { + $columns: $parent-column-count; + } + } + + $dir: $flow-direction; + @if $reverse-all-flows { + $dir: zen-direction-flip($dir); + } + $rev: zen-direction-flip($dir); + + // Calculate the item's width. + $width: zen-grid-item-width($column-span, $columns, $grid-width); + @if $box-sizing == content-box { + @if not comparable($width, $gutter-width) { + $units-gutter: unit($gutter-width); + $units-grid: unit($grid-width); + @warn "The layout cannot be calculated correctly; when using box-sizing: content-box, the units of the gutter (#{$units-gutter} did not match the units of the grid width (#{$units-grid})."; + } + $width: $width - $gutter-width; + } + width: $width; + + // Auto-apply the unit base mixin. + @if $auto-include-flow-item-base { + @include zen-grid-item-base($gutter-width, $box-sizing); + } + + // Ensure the HTML item either has a full gutter or no gutter on each side. + padding-#{$dir}: 0; + @if $alpha-gutter { + margin-#{$dir}: $gutter-width; + } + $offset: ($columns - $column-span) * $gutter-width / $columns; + padding-#{$rev}: $offset; + @if $omega-gutter { + margin-#{$rev}: $gutter-width - $offset; + } + @else { + margin-#{$rev}: -($offset); + } +} + + +// +// Helper functions for the Zen mixins. +// + +// Returns a half gutter width. +@function zen-half-gutter( + $gutter-width: $zen-gutter-width, + $gutter-side: $zen-float-direction, + $flow-direction: $zen-float-direction +) { + $half-gutter: $gutter-width / 2; + // Special handling in case gutter has an odd number of pixels. + @if unit($gutter-width) == "px" { + @if $gutter-side == $flow-direction { + @return floor($half-gutter); + } + @else { + @return ceil($half-gutter); + } + } + @return $half-gutter; +} + +// Calculates the unit width of a column. +@function zen-unit-width ( + $column-count: $zen-column-count, + $grid-width: $zen-grid-width +) { + $unit-width: $grid-width / $column-count; + @if unit($unit-width) == "px" and floor($unit-width) != ceil($unit-width) { + @warn "You may experience rounding errors as the grid width, #{$grid-width}, does not divide evenly into #{$column-count} columns."; + } + @return $unit-width; +} + +// Calculates the width of a grid item that spans the specified number of columns. +@function zen-grid-item-width ( + $column-span, + $column-count: $zen-column-count, + $grid-width: $zen-grid-width +) { + @return $column-span * zen-unit-width($column-count, $grid-width); +} + +// Returns the opposite direction, given "left" or "right". +@function zen-direction-flip($dir) { + @if $dir == left { + @return right; + } + @else if $dir == right { + @return left; + } + @else if $dir == none or $dir == both { + @return $dir; + } + @warn "Invalid direction passed to zen-direction-flip()."; + @return both; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/project/common.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/common.scss new file mode 100644 index 0000000..d295958 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/common.scss @@ -0,0 +1,57 @@ +// Ideally, variables should be initialized in a partial. We're setting it here +// to make the mixin usage more transparent. +$gutter-width: 10px; + + +// Skip link styling +#skip-link { + margin: 0; + + a, + a:visited { + display: block; + width: 100%; + padding: 2px 0 3px 0; + text-align: center; + background-color: #666; + color: #fff; + } +} + +// Set a consistent padding around all containers +#header, +#content, +#main-menu, +#aside1, +#aside2, +#footer { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + padding: $gutter-width; +} + +// Alternate border styling +#header, +#main-menu, +#aside2 { + border: 1px solid #ccc; +} +#content, +#aside1, +#footer { + border: 1px solid #09f; +} + +// Source-order meta info +header h1, +header h2 { + display: inline; +} +header p { + display: inline; + text-transform: uppercase; + font-size: 0.8em; + color: #c00; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/project/example.html b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/example.html new file mode 100644 index 0000000..38e798c --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/example.html @@ -0,0 +1,67 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="utf-8"> + <title>Zen Grids: sample usage</title> + <link rel="stylesheet" href="stylesheets/styles.css" media="all"> +</head> +<body> + +<p id="skip-link"> +<a href="#main-menu">Jump to main menu</a> +</p> + +<header id="header"> + <h1>Zen Grids: sample usage</h1> +</header> + +<div id="main"> + + <article id="content" role="main"> + <header> + <h1>Main content</h1> + <p>Source order: 1</p> + </header> + <aside>‘There’s no such thing!’</aside> + <p>Alice did not quite know what to say to this: so she helped herself to some tea and bread-and-butter, and then turned to the Dormouse, and repeated her question. ‘Why did they live at the bottom of a well?’</p> + <p>The Dormouse again took a minute or two to think about it, and then said, ‘It was a treacle-well.’</p> + <p>‘There’s no such thing!’ Alice was beginning very angrily, but the Hatter and the March Hare went ‘Sh! sh!’ and the Dormouse sulkily remarked, ‘If you can’t be civil, you’d better finish the story for yourself.’</p> + <p>‘No, please go on!’ Alice said very humbly; ‘I won’t interrupt again. I dare say there may be ONE.’</p> + </article> + + <nav id="main-menu" role="navigation"> + <header> + <h2>Menu</h2> + <p>Source order: 2</p> + </header> + <a href="#">Alice</a> ★ + <a href="#">Mad Hatter</a> ★ + <a href="#">The Queen</a> ★ + <a href="#">Tom Petty</a> + </nav> + + <aside id="aside1"> + <header> + <h2>Aside</h2> + <p>Source order: 3</p> + </header> + <p>‘Have some wine,’ the March Hare said in an encouraging tone.</p> + </aside> + + <aside id="aside2"> + <header> + <h2>Aside</h2> + <p>Source order: 4</p> + </header> + <p>‘Please would you tell me,’ said Alice, a little timidly, for she was not quite sure whether it was good manners for her to speak first, ‘why your cat grins like that?’</p> + <p>‘It’s a Cheshire cat,’ said the Duchess, ‘and that’s why. Pig!’</p> + </aside> + +</div> + +<footer id="footer"> + <small>© 2012. The small print.</small> +</footer> + +</body> +</html> diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss new file mode 100644 index 0000000..73a9242 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss @@ -0,0 +1,137 @@ +// Ideally, variables should be initialized in a partial. We're setting +// variables here to make the mixin usage more transparent. +$legacy-support-for-ie6: false; +$legacy-support-for-ie7: false; + +// Import Zen Grids. +@import "zen"; + +$zen-column-count: 12; +$zen-gutter-width: 20px; + + +// +// Skip link styling +// +@media all and (min-width: 480px) { + #skip-link a { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + clip: rect(1px 1px 1px 1px); // IE6 and IE7 use the wrong syntax. + } + clip: rect(1px, 1px, 1px, 1px); + + &:active, + &:focus { + position: static !important; + clip: auto; + height: auto; + width: auto; + overflow: auto; + } + } +} + +#header, +#main, +#footer { + margin: { + left: auto; + right: auto; + } + max-width: 1100px; +} + +#main { + @include zen-grid-container(); +} + +#content aside { + font-weight: bold; + font-style: italic; + font-size: 1.2em; + @include zen-grid-flow-item(1, 3); + float: left; + margin: { + top: (1em/1.2); + bottom: (1em/1.2); + } +} + +// +// Horizontal navigation bar +@media all and (min-width: 480px) { + $zen-column-count: 1; + $navbar-height: 4em; + + #main { + padding-top: $navbar-height; + } + #main-menu { + @include zen-grid-item(1, 1); + margin-top: -$navbar-height; + height: $navbar-height; + } +} + +@media all and (min-width: 480px) and (max-width: 639px) { + $zen-column-count: 2; + + #content { + @include zen-grid-item(2, 1); + } + #aside1 { + @include zen-clear(); // Clear left-floated elements (#content) + @include zen-grid-item(1, 1); + } + #aside2 { + @include zen-grid-item(1, 2); + } +} + +@media all and (min-width: 640px) and (max-width: 799px) { + $zen-column-count: 3; + + #content { + @include zen-grid-item(2, 1); + } + #aside1 { + @include zen-grid-item(1, 1, right); // Position from the right + } + #aside2 { + @include zen-clear(); // Clear left-floated elements (#content) + @include zen-grid-item(2, 1); + } +} + +@media all and (min-width: 800px) and (max-width: 959px) { + $zen-column-count: 3; + + #content { + @include zen-grid-item(2, 1); + } + #aside1 { + @include zen-grid-item(1, 1, right); // Position from the right + } + #aside2 { + @include zen-clear(right); // Clear right-floated elements (#aside1) + @include zen-grid-item(1, 1, right); + } +} + +@media all and (min-width: 960px) { + $zen-column-count: 5; + + #content { + @include zen-grid-item(3, 2); + } + #aside1 { + @include zen-grid-item(1, 1); + } + #aside2 { + @include zen-grid-item(1, 5); + } +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/project/manifest.rb b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/manifest.rb new file mode 100644 index 0000000..464cf51 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/manifest.rb @@ -0,0 +1,22 @@ +description "The Zen Grids system." + +stylesheet 'common.scss', :media => 'all' +stylesheet 'layout.scss', :media => 'all' +stylesheet 'styles.scss', :media => 'all' + +html 'example.html' + +help %Q{ +Zen Grids is an intuitive, flexible grid system that leverages the natural source order of your content to make it easier to create fluid responsive designs. With an easy-to-use Sass mixin set, the Zen Grids system can be applied to an infinite number of layouts, including responsive, adaptive, fluid and fixed-width layouts. To learn more, visit: + + http://zengrids.com +} + +welcome_message %Q{ +You rock! The Zen Grids system is now installed on your computer. Go check out +how to use the system at: + + http://zengrids.com + +It's easy! +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/project/styles.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/styles.scss new file mode 100644 index 0000000..8d80dc0 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/project/styles.scss @@ -0,0 +1,3 @@ +// Aggregate all the stylesheets into one file. +@import "common.scss"; +@import "layout.scss"; diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/README.txt b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/README.txt new file mode 100644 index 0000000..2efa8cd --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/README.txt @@ -0,0 +1,16 @@ +UNIT TESTS FOR ZEN GRIDS +------------------------ + +To run the unit tests for Zen Grids: + +1. Create a "tests" Compass project using the unit-tests pattern: + + compass create tests -r zen-grids --using=zen-grids/unit-tests + +2. From inside the "tests" project, compare the compiled stylesheets to the + previous unit test results in the test-results directory: + + diff -r test-results/ stylesheets/ + + If the unit tests were successful, the above command should report no + differences. diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/manifest.rb b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/manifest.rb new file mode 100644 index 0000000..43ce288 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/manifest.rb @@ -0,0 +1,37 @@ +description "Unit tests for the Zen Grids system." + +stylesheet 'sass/function-zen-direction-flip.scss', :media => 'all', :to => 'function-zen-direction-flip.scss' +stylesheet 'sass/function-zen-grid-item-width.scss', :media => 'all', :to => 'function-zen-grid-item-width.scss' +stylesheet 'sass/function-zen-half-gutter.scss', :media => 'all', :to => 'function-zen-half-gutter.scss' +stylesheet 'sass/function-zen-unit-width.scss', :media => 'all', :to => 'function-zen-unit-width.scss' +stylesheet 'sass/zen-clear.scss', :media => 'all', :to => 'zen-clear.scss' +stylesheet 'sass/zen-float.scss', :media => 'all', :to => 'zen-float.scss' +stylesheet 'sass/zen-grid-container.scss', :media => 'all', :to => 'zen-grid-container.scss' +stylesheet 'sass/zen-grid-flow-item.scss', :media => 'all', :to => 'zen-grid-flow-item.scss' +stylesheet 'sass/zen-grid-item-base.scss', :media => 'all', :to => 'zen-grid-item-base.scss' +stylesheet 'sass/zen-grid-item.scss', :media => 'all', :to => 'zen-grid-item.scss' +stylesheet 'sass/zen-nested-container.scss', :media => 'all', :to => 'zen-nested-container.scss' + +file 'test-results/function-zen-direction-flip.css' +file 'test-results/function-zen-grid-item-width.css' +file 'test-results/function-zen-half-gutter.css' +file 'test-results/function-zen-unit-width.css' +file 'test-results/zen-clear.css' +file 'test-results/zen-float.css' +file 'test-results/zen-grid-container.css' +file 'test-results/zen-grid-flow-item.css' +file 'test-results/zen-grid-item-base.css' +file 'test-results/zen-grid-item.css' +file 'test-results/zen-nested-container.css' + +file 'README.txt' + +help %Q{ +To run the unit tests, simply run "compass compile" and compare the generated +CSS to those in the results directory. + diff -r results css +} + +welcome_message %Q{ +You rock! The unit tests for the Zen Grids system are now installed. +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss new file mode 100644 index 0000000..26d9cbb --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss @@ -0,0 +1,23 @@ +/** + * @file + * Test zen-direction-flip() + */ + +@import "zen"; + +#test-zen-direction-flip { + /* Test zen-direction-flip(left) */ + float: zen-direction-flip(left); + + /* Test zen-direction-flip(right) */ + float: zen-direction-flip(right); + + /* Test zen-direction-flip(both) */ + float: zen-direction-flip(both); + + /* Test zen-direction-flip(none) */ + float: zen-direction-flip(none); + + /* Test zen-direction-flip(invalid) */ + float: zen-direction-flip(invalid); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss new file mode 100644 index 0000000..520ba15 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss @@ -0,0 +1,32 @@ +/** + * @file + * Test zen-grid-item-width() + */ + +@import "zen"; + +#test-zen-grid-item-width { + /* Test zen-grid-item-width(1) with default $zen-column-count: 1 */ + width: zen-grid-item-width(1); + + /* Test zen-grid-item-width(2) with $zen-column-count: 5 */ + $zen-column-count: 5; + width: zen-grid-item-width(2); + $zen-column-count: 1; + + /* Test zen-grid-item-width(2, 5) */ + width: zen-grid-item-width(2, 5); + + /* Test zen-grid-item-width(1) with $zen-grid-width: 100px */ + $zen-grid-width: 100px; + width: zen-grid-item-width(1); + $zen-grid-width: 100%; + + /* Test zen-grid-item-width(2, 5) with $zen-grid-width: 100px */ + $zen-grid-width: 100px; + width: zen-grid-item-width(2, 5); + $zen-grid-width: 100%; + + /* Test zen-grid-item-width(2, 5, 100px) */ + width: zen-grid-item-width(2, 5, 100px); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss new file mode 100644 index 0000000..e457884 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss @@ -0,0 +1,37 @@ +/** + * @file + * Test zen-half-gutter() + */ + +@import "zen"; + +#test-zen-half-gutter { + /* Test zen-half-gutter() with default $zen-gutter-width: 20px */ + padding-left: zen-half-gutter(); + + /* Test zen-half-gutter() with $zen-gutter-width: 30px */ + $zen-gutter-width: 30px; + padding-left: zen-half-gutter(); + + /* Test zen-half-gutter(10em) */ + padding-left: zen-half-gutter(10em); + + /* Test zen-half-gutter(11em) */ + padding-left: zen-half-gutter(11em); + + /* Test zen-half-gutter(10px) */ + padding-left: zen-half-gutter(10px); + + /* Test zen-half-gutter(11px) */ + padding-left: zen-half-gutter(11px); + + /* Test zen-half-gutter(11px, right) */ + padding-left: zen-half-gutter(11px, right); + + /* Test zen-half-gutter(11px) with $zen-float-direction: right */ + $zen-float-direction: right; + padding-left: zen-half-gutter(11px); + + /* Test zen-half-gutter(11px, left) with $zen-float-direction: right */ + padding-left: zen-half-gutter(11px, left); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss new file mode 100644 index 0000000..0a89a8f --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss @@ -0,0 +1,32 @@ +/** + * @file + * Test zen-unit-width() + */ + +@import "zen"; + +#test-zen-unit-width { + /* Test zen-unit-width() with default $zen-column-count: 1 */ + width: zen-unit-width(); + + /* Test zen-unit-width() with $zen-column-count: 5 */ + $zen-column-count: 5; + width: zen-unit-width(); + $zen-column-count: 1; + + /* Test zen-unit-width(5) */ + width: zen-unit-width(5); + + /* Test zen-unit-width() with $zen-grid-width: 100px */ + $zen-grid-width: 100px; + width: zen-unit-width(); + $zen-grid-width: 100%; + + /* Test zen-unit-width(5) with $zen-grid-width: 100px */ + $zen-grid-width: 100px; + width: zen-unit-width(5); + $zen-grid-width: 100%; + + /* Test zen-unit-width(5, 100px) */ + width: zen-unit-width(5, 100px); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss new file mode 100644 index 0000000..9a63d7f --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss @@ -0,0 +1,26 @@ +/** + * @file + * Test zen-clear() + */ + +@import "zen"; + +#test-zen-clear { + /* Test zen-clear() */ + @include zen-clear(); + + /* Test zen-clear() with $zen-float-direction: right */ + $zen-float-direction: right; + @include zen-clear(); + $zen-float-direction: left; + + /* Test zen-clear(left) */ + @include zen-clear(left); + + /* Test zen-clear(left, $reverse-all-floats: TRUE) */ + @include zen-clear(left, $reverse-all-floats: TRUE); + + /* Test zen-clear(left) with: $zen-reverse-all-floats: TRUE; */ + $zen-reverse-all-floats: TRUE; + @include zen-clear(left); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss new file mode 100644 index 0000000..2af83b2 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss @@ -0,0 +1,26 @@ +/** + * @file + * Test zen-float() + */ + +@import "zen"; + +#test-zen-float { + /* Test zen-float() */ + @include zen-float(); + + /* Test zen-float() with $zen-float-direction: right */ + $zen-float-direction: right; + @include zen-float(); + $zen-float-direction: left; + + /* Test zen-float(left) */ + @include zen-float(left); + + /* Test zen-float(left, $reverse-all-floats: TRUE) */ + @include zen-float(left, $reverse-all-floats: TRUE); + + /* Test zen-float(left) with: $zen-reverse-all-floats: TRUE; */ + $zen-reverse-all-floats: TRUE; + @include zen-float(left); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss new file mode 100644 index 0000000..a3c7fd9 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss @@ -0,0 +1,27 @@ +/** + * @file + * Test zen-grid-container() + */ + +@import "zen"; + +#test-zen-grid-container { + /* Test zen-grid-container() */ + @include zen-grid-container(); +} + +#test-zen-grid-container-2 { + /* Test zen-grid-container() with $legacy-support-for-ie7: true */ + $legacy-support-for-ie7: true; + @include zen-grid-container(); + $legacy-support-for-ie7: false; +} + +#test-zen-grid-container-3 { + /* Test zen-grid-container() with $legacy-support-for-ie6: true */ + $legacy-support-for-ie6: true; + $legacy-support-for-ie7: true; + @include zen-grid-container(); + $legacy-support-for-ie6: false; + $legacy-support-for-ie7: false; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss new file mode 100644 index 0000000..5cbce1a --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss @@ -0,0 +1,60 @@ +/** + * @file + * Test zen-grid-flow-item() + */ + +@import "zen"; + +#test-zen-grid-flow-item { + /* Test zen-grid-flow-item(1) without setting $column-count */ + @include zen-grid-flow-item(1); + + /* Test zen-grid-flow-item(1, 4) with 12 column grid and 20px gutter */ + @include zen-grid-flow-item(1, 4); + + /* Test zen-grid-flow-item(1, 4) with 15px gutter */ + $zen-gutter-width: 15px; + @include zen-grid-flow-item(1, 4); + $zen-gutter-width: 20px; + + /* Test zen-grid-flow-item(1, 4) with 15px gutter and $zen-float-direction: right */ + $zen-gutter-width: 15px; + $zen-float-direction: right; + @include zen-grid-flow-item(1, 4); + $zen-gutter-width: 20px; + $zen-float-direction: left; + + /* Test zen-grid-flow-item(1, 4) with 15px gutter and $alpha-gutter: true */ + $zen-gutter-width: 15px; + @include zen-grid-flow-item(1, 4, $alpha-gutter: true); + $zen-gutter-width: 20px; + + /* Test zen-grid-flow-item(1, 4) with 15px gutter and $omega-gutter: false */ + $zen-gutter-width: 15px; + @include zen-grid-flow-item(1, 4, $omega-gutter: false); + $zen-gutter-width: 20px; + + /* Test zen-grid-flow-item(3, 4) with 20px gutter and $alpha-gutter: true */ + @include zen-grid-flow-item(3, 4, $alpha-gutter: true); + + /* Test zen-grid-flow-item(3, 4) with 20px gutter and $omega-gutter: false */ + @include zen-grid-flow-item(3, 4, $omega-gutter: false); + + /* Test zen-grid-flow-item(1, 4) with 15px gutter, $zen-float-direction: right and $alpha-gutter: true */ + $zen-gutter-width: 15px; + $zen-float-direction: right; + @include zen-grid-flow-item(1, 4, $alpha-gutter: true); + $zen-gutter-width: 20px; + $zen-float-direction: left; + + /* Test zen-grid-flow-item(1, 4) with $zen-box-sizing: content-box and 10% gutter */ + $zen-gutter-width: 10%; + $zen-box-sizing: content-box; + @include zen-grid-flow-item(1, 4); + $zen-gutter-width: 20px; + $zen-box-sizing: border-box; + + /* Test zen-grid-flow-item(1, 4) with $zen-auto-include-flow-item-base: false */ + $zen-auto-include-flow-item-base: false; + @include zen-grid-flow-item(1, 4); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss new file mode 100644 index 0000000..926ac42 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss @@ -0,0 +1,54 @@ +/** + * @file + * Test zen-grid-item-base() + */ + +@import "zen"; + +#test-zen-grid-item-base { + /* Test zen-grid-item-base() */ + @include zen-grid-item-base(); + + /* Test zen-grid-item-base() with $zen-box-sizing: content-box */ + $zen-box-sizing: content-box; + @include zen-grid-item-base(); + $zen-box-sizing: border-box; + + /* Test zen-grid-item-base() with $legacy-support-for-ie7: true */ + $legacy-support-for-ie7: true; + @include zen-grid-item-base(); + $legacy-support-for-ie7: false; + + /* Test zen-grid-item-base() with $box-sizing-polyfill-path: "/boxsizing.htc" and $legacy-support-for-ie7: true */ + $box-sizing-polyfill-path: "/boxsizing.htc"; + $legacy-support-for-ie7: true; + @include zen-grid-item-base(); + $box-sizing-polyfill-path: ""; + $legacy-support-for-ie7: false; + + /* Test zen-grid-item-base() with $box-sizing-polyfill-path: "/boxsizing.htc" and $legacy-support-for-ie6: true */ + $box-sizing-polyfill-path: "/boxsizing.htc"; + $legacy-support-for-ie6: true; + @include zen-grid-item-base(); + $box-sizing-polyfill-path: ""; + $legacy-support-for-ie6: false; + + /* Test zen-grid-item-base() with $zen-gutter-width: 15px */ + $zen-gutter-width: 15px; + @include zen-grid-item-base(); + $zen-gutter-width: 20px; + + /* Test zen-grid-item-base() with $zen-gutter-width: 15px and $zen-float-direction: right */ + $zen-gutter-width: 15px; + $zen-float-direction: right; + @include zen-grid-item-base(); + $zen-gutter-width: 20px; + $zen-float-direction: left; + + /* Test zen-grid-item-base() with $zen-gutter-width: 15px and $zen-reverse-all-floats: true */ + $zen-gutter-width: 15px; + $zen-reverse-all-floats: true; + @include zen-grid-item-base(); + $zen-gutter-width: 20px; + $zen-reverse-all-floats: false; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss new file mode 100644 index 0000000..1309ce1 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss @@ -0,0 +1,57 @@ +/** + * @file + * Test zen-grid-item() + */ + +@import "zen"; + +#test-zen-grid-item { + /* Test zen-grid-item(6, 4) with 12 column grid and 20px gutter */ + $zen-column-count: 12; + @include zen-grid-item(6, 4); + + /* Test zen-grid-item(3, 3) with box-sizing: content-box, 5 column grid and 10% gutter */ + $zen-column-count: 5; + $zen-gutter-width: 10%; + $zen-box-sizing: content-box; + @include zen-grid-item(3, 3); + $zen-box-sizing: border-box; + + /* Turn off $zen-auto-include-item-base */ + $zen-auto-include-item-base: false; + + /* Test zen-grid-item(3, 3) with 5 column grid and 40px gutter */ + $zen-column-count: 5; + $zen-gutter-width: 40px; + @include zen-grid-item(3, 3); + + /* Test zen-grid-item(3, 3, right) with 5 column grid and 40px gutter */ + $zen-column-count: 5; + $zen-gutter-width: 40px; + @include zen-grid-item(3, 3, right); + + /* Test zen-grid-item(3, 3) with 5 column grid and 40px gutter and $zen-reverse-all-floats */ + $zen-column-count: 5; + $zen-gutter-width: 40px; + $zen-reverse-all-floats: true; + @include zen-grid-item(3, 3); + $zen-reverse-all-floats: false; + + /* Test zen-grid-item(3, 3, right) with 5 column grid and 40px gutter and $zen-reverse-all-floats */ + $zen-column-count: 5; + $zen-gutter-width: 40px; + $zen-reverse-all-floats: true; + @include zen-grid-item(3, 3, right); + $zen-reverse-all-floats: false; + + /* Test zen-grid-item(3, 2.5) with 5 column grid and 40px gutter */ + $zen-column-count: 5; + $zen-gutter-width: 40px; + @include zen-grid-item(3, 2.5); + + /* Test zen-grid-item(3, 3) with $zen-grid-width: 1000px, 5 column grid and 40px gutter */ + $zen-grid-width: 1000px; + $zen-column-count: 5; + $zen-gutter-width: 40px; + @include zen-grid-item(3, 3); +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss new file mode 100644 index 0000000..ce4c8dd --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss @@ -0,0 +1,27 @@ +/** + * @file + * Test zen-nested-container() + */ + +@import "zen"; + +#test-zen-nested-container { + /* Test zen-nested-container() */ + @include zen-nested-container(); +} + +#test-zen-nested-container-2 { + /* Test zen-nested-container() with $legacy-support-for-ie7: true */ + $legacy-support-for-ie7: true; + @include zen-nested-container(); + $legacy-support-for-ie7: false; +} + +#test-zen-nested-container-3 { + /* Test zen-nested-container() with $legacy-support-for-ie6: true */ + $legacy-support-for-ie6: true; + $legacy-support-for-ie7: true; + @include zen-nested-container(); + $legacy-support-for-ie6: false; + $legacy-support-for-ie7: false; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-direction-flip.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-direction-flip.css new file mode 100644 index 0000000..8330d8d --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-direction-flip.css @@ -0,0 +1,17 @@ +/** + * @file + * Test zen-direction-flip() + */ +/* line 8, ../sass/function-zen-direction-flip.scss */ +#test-zen-direction-flip { + /* Test zen-direction-flip(left) */ + float: right; + /* Test zen-direction-flip(right) */ + float: left; + /* Test zen-direction-flip(both) */ + float: both; + /* Test zen-direction-flip(none) */ + float: none; + /* Test zen-direction-flip(invalid) */ + float: both; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-grid-item-width.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-grid-item-width.css new file mode 100644 index 0000000..402f5d8 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-grid-item-width.css @@ -0,0 +1,19 @@ +/** + * @file + * Test zen-grid-item-width() + */ +/* line 8, ../sass/function-zen-grid-item-width.scss */ +#test-zen-grid-item-width { + /* Test zen-grid-item-width(1) with default $zen-column-count: 1 */ + width: 100%; + /* Test zen-grid-item-width(2) with $zen-column-count: 5 */ + width: 40%; + /* Test zen-grid-item-width(2, 5) */ + width: 40%; + /* Test zen-grid-item-width(1) with $zen-grid-width: 100px */ + width: 100px; + /* Test zen-grid-item-width(2, 5) with $zen-grid-width: 100px */ + width: 40px; + /* Test zen-grid-item-width(2, 5, 100px) */ + width: 40px; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-half-gutter.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-half-gutter.css new file mode 100644 index 0000000..6962c21 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-half-gutter.css @@ -0,0 +1,25 @@ +/** + * @file + * Test zen-half-gutter() + */ +/* line 8, ../sass/function-zen-half-gutter.scss */ +#test-zen-half-gutter { + /* Test zen-half-gutter() with default $zen-gutter-width: 20px */ + padding-left: 10px; + /* Test zen-half-gutter() with $zen-gutter-width: 30px */ + padding-left: 15px; + /* Test zen-half-gutter(10em) */ + padding-left: 5em; + /* Test zen-half-gutter(11em) */ + padding-left: 5.5em; + /* Test zen-half-gutter(10px) */ + padding-left: 5px; + /* Test zen-half-gutter(11px) */ + padding-left: 5px; + /* Test zen-half-gutter(11px, right) */ + padding-left: 6px; + /* Test zen-half-gutter(11px) with $zen-float-direction: right */ + padding-left: 5px; + /* Test zen-half-gutter(11px, left) with $zen-float-direction: right */ + padding-left: 6px; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-unit-width.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-unit-width.css new file mode 100644 index 0000000..6b3db02 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/function-zen-unit-width.css @@ -0,0 +1,19 @@ +/** + * @file + * Test zen-unit-width() + */ +/* line 8, ../sass/function-zen-unit-width.scss */ +#test-zen-unit-width { + /* Test zen-unit-width() with default $zen-column-count: 1 */ + width: 100%; + /* Test zen-unit-width() with $zen-column-count: 5 */ + width: 20%; + /* Test zen-unit-width(5) */ + width: 20%; + /* Test zen-unit-width() with $zen-grid-width: 100px */ + width: 100px; + /* Test zen-unit-width(5) with $zen-grid-width: 100px */ + width: 20px; + /* Test zen-unit-width(5, 100px) */ + width: 20px; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-clear.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-clear.css new file mode 100644 index 0000000..0128bbe --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-clear.css @@ -0,0 +1,17 @@ +/** + * @file + * Test zen-clear() + */ +/* line 8, ../sass/zen-clear.scss */ +#test-zen-clear { + /* Test zen-clear() */ + clear: left; + /* Test zen-clear() with $zen-float-direction: right */ + clear: right; + /* Test zen-clear(left) */ + clear: left; + /* Test zen-clear(left, $reverse-all-floats: TRUE) */ + clear: right; + /* Test zen-clear(left) with: $zen-reverse-all-floats: TRUE; */ + clear: right; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-float.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-float.css new file mode 100644 index 0000000..ecf87cb --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-float.css @@ -0,0 +1,17 @@ +/** + * @file + * Test zen-float() + */ +/* line 8, ../sass/zen-float.scss */ +#test-zen-float { + /* Test zen-float() */ + float: left; + /* Test zen-float() with $zen-float-direction: right */ + float: right; + /* Test zen-float(left) */ + float: left; + /* Test zen-float(left, $reverse-all-floats: TRUE) */ + float: right; + /* Test zen-float(left) with: $zen-reverse-all-floats: TRUE; */ + float: right; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-container.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-container.css new file mode 100644 index 0000000..614547c --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-container.css @@ -0,0 +1,49 @@ +/** + * @file + * Test zen-grid-container() + */ +/* line 8, ../sass/zen-grid-container.scss */ +#test-zen-grid-container { + /* Test zen-grid-container() */ +} +/* line 52, /Library/Ruby/Gems/1.8/gems/zen-grids-1.2/stylesheets/zen/_grids.scss */ +#test-zen-grid-container:before, #test-zen-grid-container:after { + content: ""; + display: table; +} +/* line 56, /Library/Ruby/Gems/1.8/gems/zen-grids-1.2/stylesheets/zen/_grids.scss */ +#test-zen-grid-container:after { + clear: both; +} + +/* line 13, ../sass/zen-grid-container.scss */ +#test-zen-grid-container-2 { + /* Test zen-grid-container() with $legacy-support-for-ie7: true */ + *position: relative; + *zoom: 1; +} +/* line 52, /Library/Ruby/Gems/1.8/gems/zen-grids-1.2/stylesheets/zen/_grids.scss */ +#test-zen-grid-container-2:before, #test-zen-grid-container-2:after { + content: ""; + display: table; +} +/* line 56, /Library/Ruby/Gems/1.8/gems/zen-grids-1.2/stylesheets/zen/_grids.scss */ +#test-zen-grid-container-2:after { + clear: both; +} + +/* line 20, ../sass/zen-grid-container.scss */ +#test-zen-grid-container-3 { + /* Test zen-grid-container() with $legacy-support-for-ie6: true */ + *position: relative; + *zoom: 1; +} +/* line 52, /Library/Ruby/Gems/1.8/gems/zen-grids-1.2/stylesheets/zen/_grids.scss */ +#test-zen-grid-container-3:before, #test-zen-grid-container-3:after { + content: ""; + display: table; +} +/* line 56, /Library/Ruby/Gems/1.8/gems/zen-grids-1.2/stylesheets/zen/_grids.scss */ +#test-zen-grid-container-3:after { + clear: both; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-flow-item.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-flow-item.css new file mode 100644 index 0000000..fd77ce6 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-flow-item.css @@ -0,0 +1,132 @@ +/** + * @file + * Test zen-grid-flow-item() + */ +/* line 8, ../sass/zen-grid-flow-item.scss */ +#test-zen-grid-flow-item { + /* Test zen-grid-flow-item(1) without setting $column-count */ + width: 100%; + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-left: 0; + padding-right: 0px; + margin-right: 20px; + /* Test zen-grid-flow-item(1, 4) with 12 column grid and 20px gutter */ + width: 25%; + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-left: 0; + padding-right: 15px; + margin-right: 5px; + /* Test zen-grid-flow-item(1, 4) with 15px gutter */ + width: 25%; + padding-left: 7px; + padding-right: 8px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-left: 0; + padding-right: 11.25px; + margin-right: 3.75px; + /* Test zen-grid-flow-item(1, 4) with 15px gutter and $zen-float-direction: right */ + width: 25%; + padding-left: 8px; + padding-right: 7px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-right: 0; + padding-left: 11.25px; + margin-left: 3.75px; + /* Test zen-grid-flow-item(1, 4) with 15px gutter and $alpha-gutter: true */ + width: 25%; + padding-left: 7px; + padding-right: 8px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-left: 0; + margin-left: 15px; + padding-right: 11.25px; + margin-right: 3.75px; + /* Test zen-grid-flow-item(1, 4) with 15px gutter and $omega-gutter: false */ + width: 25%; + padding-left: 7px; + padding-right: 8px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-left: 0; + padding-right: 11.25px; + margin-right: -11.25px; + /* Test zen-grid-flow-item(3, 4) with 20px gutter and $alpha-gutter: true */ + width: 75%; + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-left: 0; + margin-left: 20px; + padding-right: 5px; + margin-right: 15px; + /* Test zen-grid-flow-item(3, 4) with 20px gutter and $omega-gutter: false */ + width: 75%; + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-left: 0; + padding-right: 5px; + margin-right: -5px; + /* Test zen-grid-flow-item(1, 4) with 15px gutter, $zen-float-direction: right and $alpha-gutter: true */ + width: 25%; + padding-left: 8px; + padding-right: 7px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + padding-right: 0; + margin-right: 15px; + padding-left: 11.25px; + margin-left: 3.75px; + /* Test zen-grid-flow-item(1, 4) with $zen-box-sizing: content-box and 10% gutter */ + width: 15%; + padding-left: 5%; + padding-right: 5%; + border: 0 !important; + word-wrap: break-word; + padding-left: 0; + padding-right: 7.5%; + margin-right: 2.5%; + /* Test zen-grid-flow-item(1, 4) with $zen-auto-include-flow-item-base: false */ + width: 25%; + padding-left: 0; + padding-right: 15px; + margin-right: 5px; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-item-base.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-item-base.css new file mode 100644 index 0000000..a3da5c2 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-item-base.css @@ -0,0 +1,73 @@ +/** + * @file + * Test zen-grid-item-base() + */ +/* line 8, ../sass/zen-grid-item-base.scss */ +#test-zen-grid-item-base { + /* Test zen-grid-item-base() */ + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + /* Test zen-grid-item-base() with $zen-box-sizing: content-box */ + padding-left: 10px; + padding-right: 10px; + border: 0 !important; + word-wrap: break-word; + /* Test zen-grid-item-base() with $legacy-support-for-ie7: true */ + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + /* Test zen-grid-item-base() with $box-sizing-polyfill-path: "/boxsizing.htc" and $legacy-support-for-ie7: true */ + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + *behavior: url("/boxsizing.htc"); + /* Test zen-grid-item-base() with $box-sizing-polyfill-path: "/boxsizing.htc" and $legacy-support-for-ie6: true */ + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + *behavior: url("/boxsizing.htc"); + _display: inline; + _overflow: hidden; + _overflow-y: visible; + /* Test zen-grid-item-base() with $zen-gutter-width: 15px */ + padding-left: 7px; + padding-right: 8px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + /* Test zen-grid-item-base() with $zen-gutter-width: 15px and $zen-float-direction: right */ + padding-left: 8px; + padding-right: 7px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + /* Test zen-grid-item-base() with $zen-gutter-width: 15px and $zen-reverse-all-floats: true */ + padding-left: 8px; + padding-right: 7px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-item.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-item.css new file mode 100644 index 0000000..c01b74f --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-grid-item.css @@ -0,0 +1,59 @@ +/** + * @file + * Test zen-grid-item() + */ +/* line 8, ../sass/zen-grid-item.scss */ +#test-zen-grid-item { + /* Test zen-grid-item(6, 4) with 12 column grid and 20px gutter */ + float: left; + width: 50%; + margin-left: 25%; + margin-right: -75%; + padding-left: 10px; + padding-right: 10px; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + word-wrap: break-word; + /* Test zen-grid-item(3, 3) with box-sizing: content-box, 5 column grid and 10% gutter */ + float: left; + width: 50%; + margin-left: 40%; + margin-right: -100%; + padding-left: 5%; + padding-right: 5%; + border: 0 !important; + word-wrap: break-word; + /* Turn off $zen-auto-include-item-base */ + /* Test zen-grid-item(3, 3) with 5 column grid and 40px gutter */ + float: left; + width: 60%; + margin-left: 40%; + margin-right: -100%; + /* Test zen-grid-item(3, 3, right) with 5 column grid and 40px gutter */ + float: right; + width: 60%; + margin-right: 40%; + margin-left: -100%; + /* Test zen-grid-item(3, 3) with 5 column grid and 40px gutter and $zen-reverse-all-floats */ + float: right; + width: 60%; + margin-right: 40%; + margin-left: -100%; + /* Test zen-grid-item(3, 3, right) with 5 column grid and 40px gutter and $zen-reverse-all-floats */ + float: left; + width: 60%; + margin-left: 40%; + margin-right: -100%; + /* Test zen-grid-item(3, 2.5) with 5 column grid and 40px gutter */ + float: left; + width: 60%; + margin-left: 30%; + margin-right: -90%; + /* Test zen-grid-item(3, 3) with $zen-grid-width: 1000px, 5 column grid and 40px gutter */ + float: left; + width: 600px; + margin-left: 400px; + margin-right: -1000px; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-nested-container.css b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-nested-container.css new file mode 100644 index 0000000..030dc15 --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/test-results/zen-nested-container.css @@ -0,0 +1,24 @@ +/** + * @file + * Test zen-nested-container() + */ +/* line 8, ../sass/zen-nested-container.scss */ +#test-zen-nested-container { + /* Test zen-nested-container() */ + padding-left: 0; + padding-right: 0; +} + +/* line 13, ../sass/zen-nested-container.scss */ +#test-zen-nested-container-2 { + /* Test zen-nested-container() with $legacy-support-for-ie7: true */ + padding-left: 0; + padding-right: 0; +} + +/* line 20, ../sass/zen-nested-container.scss */ +#test-zen-nested-container-3 { + /* Test zen-nested-container() with $legacy-support-for-ie6: true */ + padding-left: 0; + padding-right: 0; +} diff --git a/97suifangqa/sass/sass-extensions/zen-grids/zen-grids.gemspec b/97suifangqa/sass/sass-extensions/zen-grids/zen-grids.gemspec new file mode 100644 index 0000000..c3c851b --- /dev/null +++ b/97suifangqa/sass/sass-extensions/zen-grids/zen-grids.gemspec @@ -0,0 +1,58 @@ +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = 'zen-grids' + + s.summary = %q{A Compass plugin for Zen Grids, a fluid responsive grid system} + s.description = %q{Zen Grids is an intuitive, flexible grid system that leverages the natural source order of your content to make it easier to create fluid responsive designs. With an easy-to-use Sass mixin set, the Zen Grids system can be applied to an infinite number of layouts, including responsive, adaptive, fluid and fixed-width layouts.} + + s.homepage = 'http://zengrids.com' + s.rubyforge_project = + + s.version = '1.2' + s.date = '2012-05-04' + + s.authors = ['John Albin Wilkins'] + s.email = 'virtually.johnalbin@gmail.com' + + s.add_runtime_dependency('sass', ">= 3.1") + + s.files = %w[ + LICENSE.txt + README.txt + lib/zen-grids.rb + stylesheets/_zen.scss + stylesheets/zen/_background-grid.scss + stylesheets/zen/_grids.scss + templates/project/example.html + templates/project/manifest.rb + templates/project/common.scss + templates/project/layout.scss + templates/project/styles.scss + templates/unit-tests/manifest.rb + templates/unit-tests/README.txt + templates/unit-tests/sass/function-zen-direction-flip.scss + templates/unit-tests/sass/function-zen-grid-item-width.scss + templates/unit-tests/sass/function-zen-half-gutter.scss + templates/unit-tests/sass/function-zen-unit-width.scss + templates/unit-tests/sass/zen-clear.scss + templates/unit-tests/sass/zen-float.scss + templates/unit-tests/sass/zen-grid-container.scss + templates/unit-tests/sass/zen-grid-flow-item.scss + templates/unit-tests/sass/zen-grid-item-base.scss + templates/unit-tests/sass/zen-grid-item.scss + templates/unit-tests/sass/zen-nested-container.scss + templates/unit-tests/test-results/function-zen-direction-flip.css + templates/unit-tests/test-results/function-zen-grid-item-width.css + templates/unit-tests/test-results/function-zen-half-gutter.css + templates/unit-tests/test-results/function-zen-unit-width.css + templates/unit-tests/test-results/zen-clear.css + templates/unit-tests/test-results/zen-float.css + templates/unit-tests/test-results/zen-grid-container.css + templates/unit-tests/test-results/zen-grid-flow-item.css + templates/unit-tests/test-results/zen-grid-item-base.css + templates/unit-tests/test-results/zen-grid-item.css + templates/unit-tests/test-results/zen-nested-container.css + zen-grids.gemspec + ] +end diff --git a/97suifangqa/sass/sass/README.txt b/97suifangqa/sass/sass/README.txt new file mode 100644 index 0000000..2d45667 --- /dev/null +++ b/97suifangqa/sass/sass/README.txt @@ -0,0 +1,58 @@ +ABOUT SASS AND COMPASS +---------------------- + +This directory includes Sass versions of Zen's CSS files. (If you are wondering +how these Sass files are organized, read the css/README.txt file.) + +Sass is a language that is just normal CSS plus some extra features, like +variables, nested rules, math, mixins, etc. If your stylesheets are written in +Sass, helper applications can convert them to standard CSS so that you can +include the CSS in the normal ways with your theme. + +To learn more about Sass, visit: http://sass-lang.com + +Compass is a helper library for Sass. It includes libraries of shared mixins, a +package manager to add additional extension libraries, and an executable that +can easily convert Sass files into CSS. + +To learn more about Compass, visit: http://compass-style.org + + +DEVELOPING WITH SASS AND COMPASS +-------------------------------- + +To automatically generate the CSS versions of the scss while you are doing theme +development, you'll need to tell Compass to "watch" the sass directory so that +any time a .scss file is changed it will automatically place a generated CSS +file into your sub-theme's css directory: + + compass watch <path to your sub-theme's directory> + + If you are already in the root of your sub-theme's directory, you can simply + type: compass watch + +While using generated CSS with Firebug, the line numbers it reports will be +wrong since it will be showing the generated CSS file's line numbers and not the +line numbers of the source Sass files. To correct this problem, you can install +the FireSass plug-in into Firefox and then edit your sub-theme's config.rb file +to set: firesass = true + https://addons.mozilla.org/en-US/firefox/addon/firesass-for-firebug/ + + +MOVING YOUR CSS TO PRODUCTION +----------------------------- + +Once you have finished your sub-theme development and are ready to move your CSS +files to your production server, you'll need to tell sass to update all your CSS +files and to compress them (to improve performance). Note: the Compass command +will only generate CSS for .scss files that have recently changed; in order to +force it to regenerate all the CSS files, you can use the Compass' clean command +to delete all the generated CSS files. + +- Delete all CSS files by running: compass clean +- Edit the config.rb file in your theme's directory and uncomment this line by + deleting the "#" from the beginnning: + #environment = :production +- Regenerate all the CSS files by running: compass compile + +And don't forget to turn on Drupal's CSS aggregation. :-) diff --git a/97suifangqa/sass/sass/_base.scss b/97suifangqa/sass/sass/_base.scss new file mode 100644 index 0000000..a4767bc --- /dev/null +++ b/97suifangqa/sass/sass/_base.scss @@ -0,0 +1,116 @@ +@charset "UTF-8"; +// +// "base" partial +// +// To make it easier to use all variables and mixins in any Sass file in this +// theme, each .scss file has a @import "base" declaration. And this _base.scss +// file is in charge of importing all the other partials needed for the theme. +// +// This base partial is organized in this way: +// - First we set any shared Sass variables. +// - Next we import Compass plug-ins (Sass mixin libraries). +// - Last we import a _custom.scss partial that includes our custom mixins. +// + + +// +// Legacy IE support +// +// These variables are used by many mixins to add additional CSS to support +// specific versions of IE or specific vendor prefixes. +// +// To turn on support for IE6 or IE7, set those variables to true. +// +// Zen does not require special handling for IE8 or later. But Compass uses that +// variable for a couple edge cases. We include it for completeness sake. See +// the documentation at http://compass-style.org/reference/compass/support/ +$legacy-support-for-ie6: false; +$legacy-support-for-ie7: false; +$legacy-support-for-ie8: true; + + +// +// Font faces, stacks and sizes. +// + +// Compass' vertical_rhythm extension is a powerful tool to set up a vertical +// rhythm for your entire page. You can see some of its mixins and functions in +// use in the normalize.scss file. +// @see http://compass-style.org/reference/compass/typography/vertical_rhythm/ + +$base-font-size: 14px; // The font size set on the root html element. +$base-line-height: 20px; // This line-height determines the basic unit of vertical rhythm. + +$h1-font-size: 22px; +$h2-font-size: 1.4 * $base-font-size; +$h3-font-size: 1.17 * $base-font-size; +$h4-font-size: 1 * $base-font-size; +$h5-font-size: 0.83 * $base-font-size; +$h6-font-size: 0.75 * $base-font-size; + +// The following font family declarations are based on the Microsoft core web +// fonts which are common fonts available on most computer systems. The DejaVu +// and Nimbus Sans fonts are commonly available on Linux systems where the MS +// fonts are less common. Tahoma and Helvetica are also widely available. +// +// A user's web browser will look at the comma-separated list and will +// attempt to use each font in turn until it finds one that is available +// on the user's computer. The final "generic" font (sans-serif, serif or +// monospace) hints at what type of font to use if the web browser doesn't +// find any of the fonts in the list. + +// First, let's create some font stacks. +$times-new-roman: "Times New Roman", Times, Georgia, "DejaVu Serif", serif; +$times: Times, "Times New Roman", Georgia, "DejaVu Serif", serif; +$georgia: Georgia, "Times New Roman", "DejaVu Serif", serif; + +$verdana: Verdana, Tahoma, "DejaVu Sans", sans-serif; +$tahoma: Tahoma, Verdana, "DejaVu Sans", sans-serif; +$helvetica: Helvetica, Arial, "Nimbus Sans L", sans-serif; +$arial: Arial, Helvetica, "Nimbus Sans L", sans-serif; +$arial-base: "TIBch", "ClassicGrotesqueW01-Rg","Helvetica Neue",Arial,"Hiragino Sans GB"; + +$msyahei: "Microsoft YaHei", "黑体", "宋体", "SimSun"; +$stheiti: "STHeiti", "WenQuanYi Micro Hei","Microsoft YaHei",SimSun,sans-serif; + +// For an explanation of why "sans-serif" is at the end of this list, see +// http://meyerweb.com/eric/thoughts/2010/02/12/fixed-monospace-sizing/ +$courier: "Courier New", "DejaVu Sans Mono", monospace, sans-serif; + +// Now create some variables for the font stacks we want to use on this site. +$base-font-family: $arial-base, $stheiti; // The font family set on the html element. +$base-font-color: #5c5c5c; +$font-body: $arial-base, $stheiti; +$font-monospace: $courier, $stheiti; + + + +// +// Colors, etc. +// + +$base-green: #99cc33; +$base-blue: #006699; + +//Warning: do not change these color, as they MUST match the color on the card background photos. If you wish to modify them, please change the png files as well. +$card-blue: #0063a8; +$card-green: #8fc41f; + +// The amount lists, blockquotes and comments are indented. +$indent-amount: 30px; + + +$base-link-color: $base-blue; + +// +// Partials to be shared with all .scss files. +// + +@import "compass/support"; // Add Compass' IE and vendor prefix support variables. +@import "compass/utilities/general/clearfix"; // Better than Drupal's clearfix. +@import "compass/utilities/sprites"; // See http://compass-style.org/help/tutorials/spriting/ +@import "compass/css3"; // Use one CSS3 mixin instead of multiple vendor prefixes. +@import "compass/typography/vertical_rhythm"; // Helps set up a vertical rhythm. +@import "zen"; // Add the Zen Grids responsive layout mixins. + +@import "custom"; // Import our custom mixins last. diff --git a/97suifangqa/sass/sass/_custom.scss b/97suifangqa/sass/sass/_custom.scss new file mode 100644 index 0000000..7e3944d --- /dev/null +++ b/97suifangqa/sass/sass/_custom.scss @@ -0,0 +1,134 @@ +// +// Custom sass mixins +// +// To use a mixin in this file, add this line to the top of your .scss file: +// @import "base"; +// Then to use a mixin for a particular rule, add this inside the ruleset's +// curly brackets: +// @include mix-in-name; + + +// element-invisible as defined by http://snook.ca/archives/html_and_css/hiding-content-for-accessibility +@mixin element-invisible { + position: absolute !important; + height: 1px; + width: 1px; + overflow: hidden; + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + clip: rect(1px 1px 1px 1px); // IE6 and IE7 use the wrong syntax. + } + clip: rect(1px, 1px, 1px, 1px); +} + +// Turns off the element-invisible effect. +@mixin element-invisible-off { + position: static !important; + clip: auto; + height: auto; + width: auto; + overflow: auto; +} + +@mixin element-focusable { + @include element-invisible; + + &:active, + &:focus { + @include element-invisible-off; + } +} + +// The word "Unpublished" displayed underneath unpublished nodes and comments. +@mixin unpublished-div { + height: 0; + overflow: visible; + color: #d8d8d8; + font-size: 75px; + line-height: 1; + font-family: Impact, "Arial Narrow", Helvetica, sans-serif; + font-weight: bold; + text-transform: uppercase; + text-align: center; + word-wrap: break-word; // A very nice CSS3 property + + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + .lt-ie8 &>* { + position: relative; // Otherwise these elements will appear below the "Unpublished" text. + } + } +} + +@mixin input-placeholder-color($color, $focus-color: transparent) { + $input-placeholder-selectors: (".placeholder", ".input-placeholder", ":-moz-placeholder", "::-webkit-input-placeholder", "::-moz-placeholder", ":-ms-input-placeholder"); + //For script fallback + @each $selector in $input-placeholder-selectors { + &#{$selector} { + color: $color; + } + &:focus#{$selector} { + color: $focus-color; + } + } +} + + +@mixin number-block() { + @include border-radius(3px); + width: 1.3em; + text-align: center; + font-family: $font-monospace; +} + +@mixin modal-box-base($default-width: false, $default-height: false) { + position: fixed; + z-index: 2001; + padding: 0; + @if $default-width { + left: 50%; + margin-left: -($default-width/2); + } + @if $default-height { + top: 50%; + margin-top: -($default-height/2); + } +} + +@mixin modal-box-shadow() { + @include box-shadow(0px 0px 30px #444); +} + +@mixin openable-base() { + z-index: 1; + position: absolute; + display: none; + + &.open { + display: block; + } +} + +@mixin dialog-base() { + @include openable-base; +} + +@mixin hideable-element() { + &.hidden { + visibility: hidden; + opacity: 0; + } +} + +@mixin showable-element() { + visibility: hidden; + opacity: 0; + &.show { + visibility: visible; + opacity: 1; + } +} + +@mixin override-link-color() { + a { + color: inherit; + } +}
\ No newline at end of file diff --git a/97suifangqa/sass/sass/blocks.scss b/97suifangqa/sass/sass/blocks.scss new file mode 100644 index 0000000..3911ed5 --- /dev/null +++ b/97suifangqa/sass/sass/blocks.scss @@ -0,0 +1,108 @@ +/** + * @file + * Block Styling + */ + +@import "base"; + + +.block { /* Block wrapper */ + margin-bottom: 1.5em; + + &.first { /* The first block in the region */ + } + + &.last { /* The last block in the region */ + } + + &.odd { /* Zebra striping for each block in the region */ + } + + &.even { /* Zebra striping for each block in the region */ + } + + h2.block-title { /* Block title */ + } +} + + +#block-aggregator-category-1 { /* Block for the latest news items in the first category */ +} + +#block-aggregator-feed-1 { /* Block for the latest news items in the first feed */ +} + +#block-block-1 { /* First block created with "Add block" link */ +} + +#block-blog-recent { /* "Recent blog posts" block */ +} + +#block-book-navigation { /* "Book navigation" block for the current book's table of contents */ +} + +#block-comment-recent { /* "Recent comments" block */ +} + +#block-forum-active { /* "Active forum topics" block */ +} + +#block-forum-new { /* "New forum topics" block */ +} + +#block-locale-language { /* Language switcher block */ +} + +#block-menu-menu-NAME { /* Custom menu block */ +} + +#block-node-recent { /* "Recent content" block */ +} + +#block-node-syndicate { /* "Syndicate" block for primary RSS feed; see also page.css's .feed-icon */ +} + +#block-poll-recent { /* "Most recent poll" block */ +} + +#block-profile-author-information { /* "Author information" block for the profile of the page's author */ +} + +#block-search-form { /* "Search form" block */ +} + +#block-shortcut-shortcuts { /* "Shortcuts" block */ +} + +#block-statistics-popular { /* "Popular content" block */ +} + +#block-system-main-menu { /* "Main menu" block */ +} + +#block-system-management { /* "Management" block for Drupal management menu */ +} + +#block-system-navigation { /* "Navigation" block for Drupal navigation menu */ +} + +#block-system-user-menu { /* "User menu" block for Drupal user menu */ +} + +#block-system-help { /* "System help" block */ +} + +#block-system-main { /* "Main page content" block */ +} + +#block-system-powered-by { /* "Powered by Drupal" block */ +} + +#block-user-login { /* "User login form" block */ +} + +#block-user-new { /* "Who's new" block for a list of the newest users */ +} + +#block-user-online { /* "Who's online" block for a list of the online users */ +} diff --git a/97suifangqa/sass/sass/blog.scss b/97suifangqa/sass/sass/blog.scss new file mode 100644 index 0000000..c1108c4 --- /dev/null +++ b/97suifangqa/sass/sass/blog.scss @@ -0,0 +1,985 @@ +@charset "utf-8";
+/**
+ * @file
+ * Blog specific styles
+ * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com>
+ */
+@import "base";
+
+body.scrolled-down.blog {
+ #blog-top-nav {
+ background-color: white;
+ }
+ #blog-top-nav .background {
+ border-bottom: 1px solid #eee;
+ //@include box-shadow(0px 10px 10px -10px rgba(#555,0.5));
+ }
+}
+
+.blog {
+ .post-question
+ {
+ input[type="text"] {
+ background-color: #8b8885;
+ color: white;
+ @include input-placeholder-color(#eee);
+ border: 1px solid white;
+ @include box-shadow(0px 0px 2px white);
+ }
+ }
+
+ #sidebar-first {
+ #header {
+ position: absolute;
+ bottom: 30px;
+ text-align: center;
+ width: auto;
+ }
+ }
+
+ #nav-ribbon {
+ @include adjust-font-size-to(15px);
+ margin-bottom: 1.5em;
+ color: white;
+ $nav-ribbon-height: 33px;
+ $nav-ribbon-item-width: 86px;
+ $nav-ribbon-tail-width: 50px;
+ $nav-ribbon-item-count: 2;
+ $nav-ribbon-left-skip: 20px;
+ $nav-ribbon-tail-cut-width: 19px;
+ position: relative;
+ white-space: nowrap;
+ height: $nav-ribbon-height;
+ min-width: ($nav-ribbon-tail-width + $nav-ribbon-left-skip + $nav-ribbon-tail-cut-width);
+ .controls-wrap,
+ .head-background,
+ .tail-cut {
+ height: $nav-ribbon-height;
+ }
+
+ .controls-wrap {
+ position: absolute;
+ padding-left: $nav-ribbon-left-skip;
+ }
+
+ .head-background,
+ .links-wrap,
+ .tail {
+ background-color: #0063a8;
+ }
+
+ .head-background {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: $nav-ribbon-left-skip;
+ @include box-shadow(inset 20px 0px 20px -20px);
+ }
+
+ .links-wrap,
+ .tail,
+ .tail-cut {
+ float: left;
+ }
+
+ .links-wrap {
+ @include transition(width 0.3s ease 0s);
+ width: 0px;
+ overflow: hidden;
+ }
+
+ &:hover .links-wrap,
+ &.active .links-wrap,
+ ul.links {
+ width: ($nav-ribbon-item-width + 1px) * $nav-ribbon-item-count;
+ }
+
+ @include transition(min-width 0.3s ease 0s);
+
+ &:hover,
+ &.active {
+ min-width: ($nav-ribbon-tail-width + $nav-ribbon-left-skip + ($nav-ribbon-item-width + 1px) * $nav-ribbon-item-count + $nav-ribbon-tail-cut-width);
+ }
+
+ ul.links li a,
+ .tail {
+ line-height: $nav-ribbon-height;
+ text-align: center;
+ }
+
+ ul.links {
+ display: block;
+ white-space: nowrap;
+ margin: 0;
+ padding: 0;
+ li {
+ display: block;
+ padding: 0;
+ float: left;
+ a {
+ width: $nav-ribbon-item-width;
+ display: block;
+ color: white;
+ border-right: 1px solid #267ab5;
+ &:hover,
+ &:active,
+ &.active {
+ text-decoration: none;
+ background-color: #00497f;
+ }
+ }
+ }
+ }
+
+ .tail {
+ width: $nav-ribbon-tail-width;
+ cursor: pointer;
+ }
+
+ .tail-cut {
+ width: $nav-ribbon-tail-cut-width;
+ height: 33px;
+ background: url(../../images/nav-ribbon-tail-cut.png);
+ }
+ }
+}
+
+.blog-details {
+
+
+ #return-to-results-button {
+ visibility: hidden;
+ }
+
+ &.blog-results-detail #return-to-results-button {
+ visibility: visible;
+ }
+
+
+ a.jargon:hover {
+ text-decoration: none;
+ border-bottom: 1px dashed;
+ }
+ .jargon-explanations {
+ display: none;
+ }
+ #blog-top-nav,
+ #content {
+ .region-wrap {
+ padding-top: 0.5em;
+ padding: {
+ left: 2em;
+ right: 2em;
+ }
+ }
+ }
+
+ #blog-top-nav {
+ z-index: 10;
+ position: absolute;
+
+ .breadcrumb {
+ margin-top: 1.5em;
+ ul.inline {
+ li {
+ padding-right: 0;
+ a.button {
+ padding: {
+ top: 0.2em;
+ bottom: 0.2em;
+ }
+ &.first {
+ background-image: url(../../images/breadcrumb-dark-grey-button-left-arrow-wbg.png);
+ background-position: center left;
+ background-repeat: no-repeat;
+ @include border-radius(0 3px 3px 0);
+ border: none;
+ padding-left: 20px;
+ &:hover {
+ background-color: #4c4948;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ .blog-title {
+ //border-bottom: 1px solid #eee;
+ }
+
+ .section-name {
+ font-size: 18px;
+ color: #9fa0a0;
+ }
+ .section-nav {
+ @mixin section-nav-active-link-style() {
+ color: $base-link-color;
+ border-bottom: 1px solid $base-blue;
+ text-decoration: none;
+ }
+ width: auto;
+ ul.links {
+ display: block;
+ width: auto;
+ margin: 0;
+ li {
+ margin-right: 3em;
+ padding: 0;
+ a {
+ color: inherit;
+ &.active {
+ @include section-nav-active-link-style;
+ }
+ }
+ }
+ &:hover {
+ li a.active {
+ color: inherit;
+ border-bottom: none;
+ }
+ }
+ &,
+ &:hover{
+ li a:hover {
+ @include section-nav-active-link-style;
+ }
+ }
+ }
+ }
+ .background {
+ z-index: -1;
+ position: absolute;
+ top: 0;
+ bottom: -2px;
+ left: 0;
+ right: 0;
+ margin: {
+ left: 2em;
+ right: 2em;
+ }
+ background-color: white;
+ border-bottom: 1px solid transparent;
+ }
+ }
+ #content {
+ margin-top: 150px;
+ position: relative;
+ .text {
+ @include adjust-font-size-to(16px, (27/20));
+ h3{
+ font-size: 1.1em;
+ color: #4c4a49;
+ }
+ h4 {
+ color: #4c4a49;
+ }
+ p {
+ }
+
+ .image-wrap {
+ border: 1px solid #c9caca;
+ margin-bottom: rhythm(0.8);
+ }
+
+ a.enlarge-image {
+ cursor: pointer;
+ cursor: url(../../images/zoom.cur),auto;
+ }
+ }
+ .jargon-explanation-box {
+ @include dialog-base();
+ position: absolute;
+ margin-top: 8px;
+ left: 20px;
+ right: 20px;
+ background-color: white;
+ border: 1px solid #8fc31f;
+ @include border-radius(2px);
+ @include box-shadow(0px 0px 30px #999);
+ .content-wrap {
+ padding:{
+ left: 1.5em;
+ right: 1.5em;
+ top: 0.7em;
+ }
+ .jargon-details {
+ min-height: 150px;
+ max-height: 200px;
+ overflow: auto;
+ }
+ .references {
+ font-size: 0.8em;
+ font-style: italic;
+ }
+ }
+ .text-pointer {
+ z-index: 10;
+ position: absolute;
+ width: 20px;
+ height: 8px;
+ background-image: url(../../images/popup-text-pointer.png);
+ top: -8px;
+ margin-left: -10px;
+ left: 10px;
+ }
+ .close-box {
+ z-index: 1;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background: url(../../images/grey-cross.png) no-repeat center center;
+ cursor: pointer;
+ right: 1.5em;
+ top: 1.5em;
+ }
+ h3.name {
+ margin: 0;
+ border-bottom: 1px solid #c9cacb;
+ margin-top: 0em;
+ margin-bottom: 1em;
+ }
+ .like-button {
+ display: block;
+ margin: 1em;
+ width: auto;
+
+ * {
+ vertical-align: middle;
+ }
+ a.login-button {
+ vertical-align: top;
+ }
+ }
+
+ .content-wrap,
+ .like-button {
+ visibility: hidden;
+ }
+
+ .loading-image {
+ visibility: visible;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-top: (-77px/2);
+ margin-left: (-107px/2);
+ }
+
+ &.loaded {
+ .content-wrap,
+ .like-button {
+ visibility: visible;
+ }
+ .loading-image {
+ visibility: hidden;
+ }
+ }
+ &.modal {
+ @include modal-box-base(700px);
+ width: 700px;
+ top: 50% !important;
+ @include modal-box-shadow;
+ .text-pointer {
+ display: none;
+ }
+ }
+ }
+
+ .cards {
+ .card-brief {
+ @include adjust-font-size-to(14/16*14px);
+ }
+ .card {
+ @include adjust-font-size-to(14px/16*14, 16/20);
+ cursor: pointer;
+ border: 1px solid #c9caca;
+ .back .card-wrap {
+ height: 200px;
+ color: white;
+ background-color: #4c4948;
+ background-image: url(../../images/card-bg-grey.png);
+ background-repeat: no-repeat;
+ background-position: center center;
+ text-align: center;
+ line-height: 1.5em;
+ .content-wrap
+ {
+ padding-top: 2em;
+ }
+ }
+ .front .card-wrap {
+ height: 200px;
+ position: relative;
+ overflow: hidden;
+ .card-title {
+ font-weight: normal;
+ background-color: #4c4948;
+ color: white;
+ margin: 0;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: auto;
+ line-height: 50px;
+ padding: {
+ left: 0.5em;
+ right: 0.5em;
+ top: 0;
+ bottom: 0;
+ }
+ }
+ .card-subtitle {
+ font-size: 0.95em;
+ font-weight: normal;
+ color: white;
+ background-color: #3e3a39;
+ padding: 0;
+ margin: 0;
+ position: absolute;
+ bottom: 50px;
+ left: 0;
+ right: 0;
+ padding: {
+ left: 0.5em;
+ top: 0.1em;
+ bottom: 0.1em;
+ }
+ }
+ .card-details {
+ padding: 0.5em;
+ }
+ }
+
+ .front {
+ height: 200px;
+ }
+
+ .back {
+ height: 0;
+ }
+
+ .abstract {
+ display: none;
+ }
+
+ .front,
+ .back {
+ overflow: hidden;
+ @include transition(height 0.3s ease 0s);
+ }
+
+ &:hover,
+ &:active {
+ .front {
+ height: 0;
+ }
+ .back {
+ height: 200px;
+ }
+ }
+ }
+ .card.green {
+ .back .card-wrap {
+ background-image: url(../../images/card-bg-green.png);
+ background-color: #8fc41f;
+ }
+ .front .card-wrap {
+ color: #8fc41f;
+ .card-title {
+ background-color: #8fc41f;
+ }
+ .card-subtitle {
+ background-color: #7cb617;
+ }
+ }
+ }
+
+ .card.blue {
+ .back .card-wrap {
+ background-image: url(../../images/card-bg-blue.png);
+ background-color: $card-blue;
+ }
+ .front .card-wrap {
+ color: $base-blue;
+ .card-title {
+ background-color: $card-blue;
+ }
+ .card-subtitle {
+ background-color: #00508f;
+ }
+ }
+ }
+ }
+ }
+ #sidebar-first,
+ #sidebar-second {
+ position: absolute;
+ min-height: 650px;
+ height: auto;
+ top: 0;
+ bottom: 0;
+ }
+ #sidebar-second{
+ #login {
+ margin-top: 1.5em;
+ }
+ .social {
+ @include adjust-font-size-to(14px);
+ margin-top: 3em;
+ ul.buttons {
+ li {
+ padding: 0;
+ }
+ .multi-segment-button .segment.first {
+ width: 60px;
+ white-space: nowrap;
+ overflow: hidden;
+ }
+ .multi-segment-button {
+ font-weight: bold;
+ }
+ #like-button {
+ .like-button {
+ background-image: url(../../images/grey-star.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+ }
+ }
+ #no-idea-button {
+ float: right;
+ .no-idea-button {
+ background-image: url(../../images/white-unhappy-face.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+ }
+ }
+ }
+ }
+
+ .comments {
+ margin-top: 2.5em;
+ ol {
+ @include adjust-font-size-to(13px, 18/20);
+ max-height: 400px;
+ @include clearfix;
+ overflow: auto;
+ counter-reset: comments-counter;
+ margin: 0;
+ padding: 0;
+ li:before {
+ @include number-block;
+ background-color: #898989;
+ color: white;
+ float: left;
+ margin-left: -2em;
+ padding-left: 0.05em;
+ content: counter(comments-counter);
+ counter-increment: comments-counter;
+ }
+ li {
+ margin-left: 2em;
+ margin-bottom: 1em;
+ a {
+ color: inherit;
+ }
+ }
+ }
+ }
+
+
+ #card-abstract {
+ margin-top: 3em;
+ @include transition(all ease 0.5s);
+ @include showable-element;
+ }
+
+ .jargon-list {
+ @include adjust-font-size-to(14px, 24/20);
+ ul {
+ margin: 0;
+ padding: 0;
+ max-height: 400px;
+ overflow: auto;
+ li {
+ padding: 0;
+ a {
+
+ outline: 0;
+ display: block;
+ color: inherit;
+ text-decoration: none;
+ padding-left: 1.5em;
+ padding: {
+ top: 0.3em;
+ bottom: 0.3em;
+ }
+ &:hover,
+ .active {
+ background-color: #898989;
+ @include border-radius(3px);
+ color: white;
+ text-decoration: none;
+ }
+ }
+ }
+ }
+ }
+ }
+ #sidebar-first {
+ z-index: 10;
+ padding: {
+ top: 1.5em;
+ bottom: 1.5em;
+ }
+
+ #nav-ribbon {
+ margin-left: -20px; //IMPORTANT: This is equal to the fixed-width gutter-width / 2
+ }
+ .post-question {
+ @include clearfix;
+ width: auto;
+ .question {
+ width: 60%;
+ }
+ .submit {
+ float: right;
+ width: 30%;
+ }
+ }
+ .related-questions {
+ padding: 8px;
+ padding: {
+ left: 15px;
+ right: 15px;
+ }
+ background-color: white;
+ h3 {
+ margin: 0;
+ line-height: 1.5em;
+ }
+ margin-top: 1em;
+ @include box-shadow(0px 0px 20px #bbb);
+ @include border-radius(2px);
+ a {
+ color: #727171;
+ }
+ }
+ .toc {
+ @mixin toc-border-bottom() {
+ border-bottom: 1px solid #c9caca;
+ @include box-shadow(0px 1px 0px 0px white);
+ }
+ margin-top: 1em;
+ .toc-title {
+ margin: 0;
+ padding-left: 1em;
+ @include toc-border-bottom;
+ }
+
+ ul.links {
+ font-size: $h3-font-size;
+ margin: 0;
+ padding: 0;
+ li {
+ list-style: none;
+ background-image: url(../../images/righticon.png);
+ background-repeat: no-repeat;
+ background-position: center right;
+ margin: 0;
+ padding-left: 1em;
+ @include toc-border-bottom;
+ &:hover,
+ &.active {
+ background-color: white;
+ }
+ @include transition(0.1s ease 0s);
+ a {
+ display: block;
+ color: inherit;
+ padding: {
+ top: 0.4em;
+ bottom: 0.4em;
+ }
+ &:hover {
+ text-decoration: none;
+ }
+ }
+ }
+ }
+ }
+ }
+
+ #sidebar-first {
+ background-color: #f3f2f0;
+ }
+ .page-expand {
+ height: 0;
+ }
+
+ @media all and (min-width: 1300px) and (min-height: 670px) {
+ #sidebar-first,
+ #sidebar-second,
+ #blog-top-nav {
+ position: fixed;
+ }
+ .page-expand {
+ height: 100%;
+ }
+ }
+
+ #back-to-top-button {
+ bottom: 50px;
+ left: 960px;
+ }
+ .confirm-dialog {
+ padding-top: 4em;
+ min-width: 500px;
+ min-height: 80px;
+ text-align: center;
+ .controls {
+ text-align: right;
+ position: absolute;
+ bottom: 2em;
+ right: 2em;
+ }
+ }
+ &.blog-results {
+ #sidebar-second {
+ .lists-container {
+ display: none;
+ }
+ }
+ }
+}
+
+.blog-list {
+ #content {
+ .region-wrap {
+ margin-top: 1.5em;
+ }
+ #login {
+ position: absolute;
+ right: 0;
+ top: 0;
+ }
+ #blog-list-top-nav {
+ position: relative;
+ margin-top: 2em;
+ padding-top: 2em;
+ .search-type-nav {
+ vertical-align: bottom;
+ border-bottom: 1px solid #c9caca;
+ ul.links {
+ li {
+ a {
+ color: inherit;
+ }
+ a:hover,
+ a.active {
+ text-decoration: none;
+ color: #0063a8;
+ border-bottom: 1px solid #0063a8;
+ }
+ }
+ li.first-level {
+ font-size: 1.5em;
+ padding-right: 50px;
+ }
+ li.second-level {
+ a {
+ padding-bottom: 2px;
+ }
+ }
+ }
+ }
+ }
+ #blog-list-content {
+ .not-found {
+ text-align: center;
+ margin-top: 2em;
+ .message {
+ font-size: 1.2em;
+ margin-top: 0.5em;
+ }
+ }
+
+ ul.articles {
+ padding: 0;
+ li {
+ list-style: none;
+ }
+ }
+
+ .articles .article {
+ margin-bottom: 40px;
+ }
+
+ .articles .article .article-title {
+ font-weight: bold;
+ @include adjust-font-size-to(20px, (29/20));
+ color: black;
+ @include override-link-color;
+ margin-bottom: 0.5em;
+ }
+
+ .articles .article .excerpt {
+ @include adjust-font-size-to(16px, (27/20));
+ margin-top: 0.5em;
+ }
+
+ ul.rating-blocks {
+ li {
+ vertical-align: middle;
+ padding: 0;
+ display: -moz-inline-block;
+ display: inline-block;
+ color: transparent;
+ overflow: hidden;
+ width: 12px;
+ height: 12px;
+ background-color: #948b7a;
+ @include border-radius(2px);
+ margin-right: -1px;
+ &.filled {
+ background-color: #4a453d;
+ }
+ }
+ }
+ ul.article-subtitles {
+ //Default 14px size
+ }
+ }
+ }
+ #sidebar-first {
+ #header {
+ z-index: 2;
+ }
+ .region-wrap {
+ z-index: 2;
+ position: relative;
+ padding: {
+ left: 1em;
+ right: 1em;
+ }
+ }
+ #nav-ribbon {
+ margin-top: 1em;
+ z-index: 2;
+ margin-left: -20px; //IMPORTANT: This is equal to the fixed-width gutter-width / 2
+ }
+ .hover-overlay {
+ color: white;
+ z-index: 1;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #91908f;
+ background-color: rgba(#000, 0.5);
+ visibility: hidden;
+ opacity: 0;
+ @include transition(all 0.3s ease 0s);
+ .region-wrap {
+ padding: {
+ left: 3.3em;
+ top: 8em;
+ right: 3.3em;
+ }
+ h3 {
+ margin-bottom: 0;
+ }
+ .user-info h3 {
+ margin-top: 0;
+ }
+ ul {
+ margin: 0;
+ padding: 0;
+ li {
+ list-style: none;
+ }
+ }
+ }
+ a {
+ color: white;
+ }
+ }
+ .post-question {
+ z-index: 2;
+ padding: {
+ left: 1em;
+ right: 1em;
+ }
+ @include clearfix;
+ width: auto;
+ .question {
+ width: 60%;
+ border: 1px solid #c2b59e;
+ background-color: #918e8c;
+ background-color: rgba(#000,0.5);
+ }
+ .submit {
+ float: right;
+ width: 30%;
+ border: none;
+ }
+ }
+ &:hover .hover-overlay {
+ visibility: visible;
+ opacity: 1;
+ }
+ }
+}
+
+body.blog-index {
+ color: white;
+ #main {
+ position: relative;
+ .background {
+ z-index: -1000;
+ background: url(../../images/back_main.jpg) no-repeat center top;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ }
+ #login {
+ position: absolute;
+ top: 15px;
+ right: -250px;
+ }
+ .post-question {
+ margin-top: 270px;
+ .question {
+ @include input-placeholder-color(#d0d1d1);
+ background-color: white;
+ border: 1px solid #d0d1d1;
+ color: black;
+ width: 400px;
+ @include box-shadow(none);
+ }
+ .submit {
+ width: 84px;
+ @include box-shadow(none);
+ border: none;
+ }
+ .question, .submit {
+ @include adjust-font-size-to(16px);
+ vertical-align: 2px;
+ }
+ }
+ #logo {
+ margin-top: 65px;
+ width: 100%;
+ text-align: center;
+ }
+ #copyright {
+ position: fixed;
+ bottom: 75px;
+ left: 75px;
+ }
+ }
+}
\ No newline at end of file diff --git a/97suifangqa/sass/sass/comments.scss b/97suifangqa/sass/sass/comments.scss new file mode 100644 index 0000000..8a1a1cf --- /dev/null +++ b/97suifangqa/sass/sass/comments.scss @@ -0,0 +1,84 @@ +/** + * @file + * Comment Styling + */ + +@import "base"; + + +.comments { /* Wrapper for the list of comments and its title */ + margin: 1.5em 0; + + h2.title { /* Heading for the list of comments */ + } + + h2.comment-form { /* Heading for the comment form */ + } +} + +.comment { /* Wrapper for a single comment */ + + &.comment-preview { /* Preview of the comment before submitting new or updated comment */ + background-color: #ffffea; /* Drupal core will use a #ffffea background. See #1110842 */ + } + + &.new { /* A new comment since the user last viewed the page. */ + } + + &.first { /* The first comment in the list of comments */ + } + + &.last { /* The last comment in the list of comments */ + } + + &.odd { /* An odd-numbered comment in the list of comments */ + } + + &.even { /* An even-numbered comment in the list of comments */ + } + + &.comment-by-anonymous { /* A comment created by an anonymous user */ + } + + &.comment-by-node-author { /* A comment created by the node's author */ + } + + &.comment-by-viewer { /* A comment created by the current user */ + } + + h3.comment-title { /* Comment title */ + } + + .new { /* "New" marker for comments that are new for the current user */ + color: #c00; + } + + .user-picture { /* The picture of the comment author */ + } + + .submitted { /* The "posted by" information */ + } + + .permalink { /* Comment's permalink wrapper */ + text-transform: uppercase; + font-size: 75%; + } + + .user-signature { /* The user's signature */ + } + + ul.links { /* Comment links. See also the ul.links declaration in the pages.css. */ + } +} + +.indented { /* Nested comments are indented */ + margin-left: $indent-amount; /* Drupal core uses a 25px left margin */ +} + +.comment-unpublished { /* Unpublished comments */ + /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */ + + p.unpublished { /* The word "Unpublished" displayed underneath the content. */ + @include unpublished-div; + } +} diff --git a/97suifangqa/sass/sass/elements.scss b/97suifangqa/sass/sass/elements.scss new file mode 100644 index 0000000..250168b --- /dev/null +++ b/97suifangqa/sass/sass/elements.scss @@ -0,0 +1,256 @@ +@charset "utf-8";
+/**
+ * @file
+ * Page element styles (buttons, expandable areas etc)
+ *
+ */
+
+@import "base";
+
+.multi-segment-button {
+ @extend .button;
+ overflow: hidden;
+ padding: 0;
+ .segment {
+ display: block;
+ float: left;
+
+ padding: {
+ left: 0.5em;
+ right: 0.5em;
+ }
+
+ border-right: 1px solid;
+ border-right-color: inherit;
+
+ &.first {
+ padding-left: 0.5em;
+ }
+
+ &.last {
+ padding-right: 0.5em;
+ border-right: none;
+ }
+ }
+}
+
+.multi-button {
+ .button {
+ margin: 0;
+ padding: {
+ left: 0.8em;
+ right: 0.8em;
+ top: 0;
+ bottom: 0;
+ }
+ @include border-radius(0);
+ border-left: none;
+ border-right: 1px solid #f3f2f0;
+ &.first {
+ @include border-radius(3px 0 0 3px);
+ border-left: 1px solid #f3f2f0;
+ }
+ &.last {
+ @include border-radius(0 3px 3px 0);
+ }
+ }
+}
+
+
+.border-box {
+ background-color: #f7f7f7;
+ border: solid 1px #c9caca;
+ @include border-radius(3px);
+ padding: {
+ left: 1em;
+ right: 1em;
+ top: 0.4em;
+ bottom: 0.4em;
+ }
+}
+
+.expand-heading {
+ @extend .border-box;
+ cursor: pointer;
+ color: $base-green;
+ padding-left: 30px;
+ background-image: url(../../images/green-triangle-right.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+
+ .expandable.expanded & {
+ background-image: url(../../images/green-triangle-down.png);
+ }
+}
+
+.expandable {
+ .expand-container {
+ @include element-invisible;
+ }
+ &.expanded {
+ .expand-container {
+ @include element-invisible-off;
+ }
+ }
+}
+
+.action-button {
+ .deaction {
+ display: none;
+ }
+ &.acted {
+ .deaction {
+ display: block;
+ }
+ .action {
+ display: none;
+ }
+ }
+}
+
+body.modal-active {
+ height: 100%;
+ overflow: hidden;
+}
+
+.modal-page-overlay {
+ z-index: 2000;
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ background: url(../../images/modal-dialog-bg.png);
+ @include transition(0.3s ease 0s);
+ opacity: 1;
+
+ &.hidden {
+ visibility: hidden;
+ opacity: 0;
+ }
+}
+
+.image-enlargement-box {
+ @include dialog-base;
+ @include modal-box-base(107px, 77px);
+ .loading-image {
+ position: absolute;
+ z-index: -1;
+ }
+ .image-container {
+ visibility: hidden;
+ }
+ .image-container img {
+ max-width: none;
+ max-height: none;
+ @include modal-box-shadow;
+ }
+ &.loaded {
+ .loading-image {
+ display: none;
+ }
+ .image-container {
+ visibility: visible;
+ }
+ }
+}
+
+.dialog-content {
+ display: none;
+}
+.modal-dialog-box {
+ @include dialog-base;
+ @include modal-box-base(100px, 100px);
+ @include modal-box-shadow();
+ @include border-radius(2px);
+ border: 1px solid #8fc31f;
+ background-color: white;
+ .close-box {
+ z-index: 1;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background: url(../../images/grey-cross.png) no-repeat center center;
+ cursor: pointer;
+ right: 1em;
+ top: 1em;
+ }
+ .content-wrap {
+ padding:{
+ left: 1.5em;
+ right: 1.5em;
+ top: 0.7em;
+ bottom: 1em;
+ }
+ .dialog-content {
+ display: block;
+ }
+ }
+}
+
+.grey-button {
+ border-color: #cccccc;
+ color: #6f6f6f;
+ &:visited {
+ color: #6f6f6f;
+ }
+ background-color: #f7f7f7;
+
+ &:hover {
+ background-color: darken(#f7f7f7, 5);
+ }
+ &:active {
+ background-color: darken(#f7f7f7, 10);
+ }
+
+ &.disabled {
+ &:hover,
+ &:active {
+ background-color: #f7f7f7;
+ }
+ }
+}
+
+.dark-grey-button {
+ border: none;
+ color: white;
+ &:visited {
+ color: white;
+ }
+ background-color: #4c4948;
+ &:hover {
+ background-color: darken(#4c4948, 5);
+ }
+ &:active {
+ background-color: darken(#4c4948, 10);
+ }
+ &.disabled {
+ &:hover,
+ &:active {
+ background-color: #4c4948;
+ }
+ }
+}
+
+.number-block {
+ @include number-block;
+}
+
+.green-block {
+ background-color: #7BB81B;
+ color: white;
+}
+
+.clearfix {
+ clear: both;
+}
+
+/**
+ * Expands the height of a container by its height, or the page width maximally. Used for extra scrolling
+ */
+.page-expand {
+ position: absolute;
+ width: 1px;
+ height: 100%;
+ z-index: -1000;
+}
\ No newline at end of file diff --git a/97suifangqa/sass/sass/fields.scss b/97suifangqa/sass/sass/fields.scss new file mode 100644 index 0000000..da14d1e --- /dev/null +++ b/97suifangqa/sass/sass/fields.scss @@ -0,0 +1,106 @@ +/** + * @file + * Field Styling + * + * The Fences module allows site builders to pick the semeantic HTML5 element + * for each field while editing the field's settings. There's no way a theme + * can ever know which element to use for the fields on your site, so Zen + * just uses lets Drupal core or Fences decide. Since you DO NOT want 3 wrapping + * divs around every field (do you?), we highly recommend Fences. + * + * http://drupal.org/project/fences + */ + +@import "base"; + + +/* + * Field wrappers when the Fences module is enabled. + */ + +.field-label { /* The optional label for a field. */ +} + +.field-FIELDNAME { /* Underscores in field name are replaced with dashes. */ +} + + +/* + * If you don't use the Fences module, that's fine. Really. I think. Just use + * these selectors instead: + */ + +.field { /* Wrapper for any field. */ +} + +/* + * Field types (Core) + */ + +.field-type-text { +} + +.field-type-text-long { +} + +.field-type-text-with-summary { +} + +.field-type-image { +} + +.field-type-file { +} + +.field-type-taxonomy-term-reference { +} + +.field-type-number-integer { +} + +.field-type-number-decimal { +} + +.field-type-number-float { +} + +.field-type-list-text { +} + +.field-type-list-boolean { +} + +.field-type-list-integer { +} + +.field-type-list-float { +} + +/* + * Field types (Contrib) + */ + +.field-type-datetime { /* Always use "datetime" when creating new CCK date fields. "date" and "datestamp" are legacy types. */ +} + +.field-type-node-reference { +} + +.field-type-user-reference { +} + +/* + * Named fields + */ + +.field-name-body { +} + +.field-name-field-image { +} + +.field-name-field-tags { +} + +.field-name-field-FIELDNAME { /* Underscores in field name are replaced with dashes. */ +} diff --git a/97suifangqa/sass/sass/forms-rtl.scss b/97suifangqa/sass/sass/forms-rtl.scss new file mode 100644 index 0000000..b2c77ed --- /dev/null +++ b/97suifangqa/sass/sass/forms-rtl.scss @@ -0,0 +1,43 @@ +/** + * @file + * RTL companion for the forms.css file. + */ + +@import "base"; + + +/* + * Drupal's default login form block + */ + +#user-login-form { + text-align: right; + + /* + * OpenID + * + * The default styling for the OpenID login link seems to assume Garland's + * styling of list items. + */ + + html.js & li.openid-link, + li.openid-link { /* The "Log in using OpenID" link. */ + margin-left: 0; + margin-right: -20px; /* Un-do some of the padding on the ul list. */ + } +} + +/* + * Drupal admin tables + * + * We overrode these styles in html-elements.css, but restore them for the admin + * section of the site. + */ + +form { + th { + text-align: right; + padding-left: 1em; + padding-right: 0; + } +} diff --git a/97suifangqa/sass/sass/forms.scss b/97suifangqa/sass/sass/forms.scss new file mode 100644 index 0000000..f3ed93c --- /dev/null +++ b/97suifangqa/sass/sass/forms.scss @@ -0,0 +1,151 @@ +/** + * @file + * Form Styling + */ + +@import "base"; + + +.form-item { /* Wrapper for a form element (or group of form elements) and its label */ + margin: 1.5em 0; + + input.error, + textarea.error, + select.error { /* Highlight the form elements that caused a form submission error */ + border: 1px solid #c00; + } + + label { /* The label for a form element */ + display: block; + font-weight: bold; + } + + label.option { /* The label for a radio button or checkbox */ + display: inline; + font-weight: normal; + } + + .form-required { /* The part of the label that indicates a required field */ + color: #c00; + } + + .description { /* The descriptive help text (separate from the label) */ + font-size: 0.85em; + } + + .form-checkboxes & , + .form-radios & { /* Pack groups of checkboxes and radio buttons closer together */ + margin: 0; /* Drupal core uses "0.4em 0" */ + } +} + +.form-submit { /* The submit button */ +} + +.container-inline { + div, + label { /* Inline labels and form divs */ + display: inline; + } +} + +.tips { /* Tips for Drupal's input formats */ +} + +a.button { /* Buttons used by contrib modules like Media */ + @include appearance(button); +} + +/* + * Password confirmation + */ + +.password-parent, +.confirm-parent { + margin: 0; +} + +/* + * Search (search-block-form.tpl.php) + */ + +#block-search-form { /* Wrapper for the search form */ +} + +/* + * Drupal's default login form block + */ + +#user-login-form { + text-align: left; /* LTR */ + + /* + * OpenID + * + * The default styling for the OpenID login link seems to assume Garland's + * styling of list items. + */ + + ul { /* OpenID creates a new ul above the login form's links. */ + margin-bottom: 0; /* Position OpenID's ul next to the rest of the links. */ + } + + html.js & li.openid-link, + li.openid-link { /* The "Log in using OpenID" link. */ + margin-top: 1.5em; + margin-left: -20px; /* LTR */ /* Un-do some of the padding on the ul list. */ + } + + li.user-link { /* The "Cancel OpenID login" link. */ + margin-top: 1.5em; + } +} + +#user-login ul { + margin: 1.5em 0; +} + +/* + * Drupal admin tables + * + * We overrode these styles in normalize.css, but restore them for the admin + * section of the site. + */ + +form { + th { + text-align: left; /* LTR */ + padding-right: 1em; /* LTR */ + border-bottom: 3px solid #ccc; + } + + tbody { + border-top: 1px solid #ccc; + } + + tr.even { + background-color: #fff; + } + + table .item-list ul { + margin: 0; + } +} + +@if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + .lt-ie8 tr.even, + .lt-ie8 tr.odd { + th, + td { + border-bottom: 1px solid #ccc; /* IE doesn't display borders on table rows */ + } + } +} + +/* + * Drupal core wrongly puts this in system.menus.css. Since we override that, add it back. + */ + +td.menu-disabled { + background: #ccc; +} diff --git a/97suifangqa/sass/sass/layouts/content-layout.scss b/97suifangqa/sass/sass/layouts/content-layout.scss new file mode 100644 index 0000000..f5b408f --- /dev/null +++ b/97suifangqa/sass/sass/layouts/content-layout.scss @@ -0,0 +1,37 @@ +@charset "utf-8";
+/**
+ * @file
+ * Internal layouts used in #content
+ *
+ * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com>
+ */
+
+@import "base";
+
+$zen-column-count: 3;
+$zen-gutter-width: 10px;
+
+.three-columns {
+ @include zen-grid-container;
+ .column-first,
+ .column-second,
+ .column-third,
+ .column-main {
+ //@include zen-grid-item-base;
+ }
+ .column-first {
+ @include zen-grid-item(1,1);
+ }
+ .column-second {
+ @include zen-grid-item(1,2);
+ }
+ .column-third {
+ @include zen-grid-item(1,3);
+ }
+ .column-main.right {
+ @include zen-grid-item(2, 2);
+ }
+ .column-main.left {
+ @include zen-grid-item(2, 1);
+ }
+}
\ No newline at end of file diff --git a/97suifangqa/sass/sass/layouts/fixed-width-rtl.scss b/97suifangqa/sass/sass/layouts/fixed-width-rtl.scss new file mode 100644 index 0000000..fd06ea1 --- /dev/null +++ b/97suifangqa/sass/sass/layouts/fixed-width-rtl.scss @@ -0,0 +1,11 @@ +/** + * @file + * RTL companion for the fixed-width.css file. + */ + + +// First we tell Zen grids to reverse the direction of all floats. +$zen-reverse-all-floats: true; + +// Then we import the LTR layout and the directions are automatically reversed. +@import "fixed-width"; diff --git a/97suifangqa/sass/sass/layouts/fixed-width.scss b/97suifangqa/sass/sass/layouts/fixed-width.scss new file mode 100644 index 0000000..85eb772 --- /dev/null +++ b/97suifangqa/sass/sass/layouts/fixed-width.scss @@ -0,0 +1,160 @@ +/** + * @file + * Positioning for a fixed-width, desktop-centric layout. + * + * Define CSS classes to create a table-free, 3-column, 2-column, or single + * column layout depending on whether blocks are enabled in the left or right + * columns. + * + * This layout uses the Zen Grids plugin for Compass: http://zengrids.com + */ + +@import "base"; + + +// We are going to create a 980px wide, 5 column grid with 20px gutters between +// columns (applied as 10px of left/right padding on each column). +$zen-column-count: 13; +$zen-gutter-width: 40px; +$zen-grid-width: 1300px; + + +// IE6-7 don't support box-sizing: border-box. We can fix this in 1 of 2 ways: +// - (Preferred) Install the box-sizing polyfill and set the variable below to +// the absolute path URL to the boxsizing.htc file. +// @see https://github.com/Schepp/box-sizing-polyfill +// $box-sizing-polyfill-path: "/path/to/boxsizing.htc"; +// - Use the same CSS unit for grid width and gutter width (use px for both or +// use % for both, etc.) and set the box-sizing variable to content-box. + $zen-box-sizing: content-box; + + +// You can generate more efficient CSS if you manually apply the +// zen-grid-item-base mixin to all grid items from within a single ruleset. +$zen-auto-include-item-base: false; +// $zen-auto-include-flow-item-base: false; + + +/* + * Center the page. + */ +$body-selector: "#page, .region-bottom"; + +#page, +.region-bottom { + /* If you want to make the page a fixed width and centered in the viewport, + * this is the standards-compliant way to do that. */ + //margin-left: auto; + //margin-right: auto; + width: $zen-grid-width; +} + +/* + * Apply the shared properties of grid items in a single, efficient ruleset. + */ +// See the note about $zen-auto-include-item-base above. + +#header, +.content, +#navigation, +.region-sidebar-first, +.region-sidebar-second, +#footer { + @include zen-grid-item-base(); +} + +/* + * Containers for grid items and flow items. + */ + +#header, +#main, +#footer { + @include zen-grid-container(); +} + +/* + * Navigation bar + */ + +#main { + position: relative; +} +#navigation { + position: absolute; + top: 0; /* Move the navbar up inside #main's padding. */ + height: 3em; + width: $zen-grid-width - $zen-gutter-width; +} + +/* + * The layout when there is only one sidebar, the left one. + */ + +.sidebar-first { + .content { /* Span 4 columns, starting in 2nd column from left. */ + @include zen-grid-item(4, 2); + } + + .region-sidebar-first { /* Span 1 column, starting in 1st column from left. */ + @include zen-grid-item(1, 1); + } +} + +/* + * The layout when there is only one sidebar, the right one. + */ + +.sidebar-second { + .content { /* Span 4 columns, starting in 1st column from left. */ + @include zen-grid-item(4, 1); + } + + .region-sidebar-second { /* Span 1 column, starting in 5th column from left. */ + @include zen-grid-item(1, 5); + } +} + +/* + * The layout when there are two sidebars. + */ + +.blog.two-sidebars, +.two-sidebars { + .content { /* Span 3 columns, starting in 2nd column from left. */ + @include zen-grid-item(7, 4); + } + + .region-sidebar-first { /* Span 1 column, starting in 1st column from left. */ + @include zen-grid-item(3, 1); + } + + .region-sidebar-second { /* Span 1 column, starting in 5th column from left. */ + @include zen-grid-item(3, 11); + } +} + +.picture-base.sidebar-first { + #page, + .region-bottom { + width: 1200px; + } + //Overall width is 1300px ($zen-grid-width). There are 13 columns. Each column is 100px + .content { + @include zen-grid-item(8, 5.3, $gutter-width: (2*85px)); + @include zen-grid-item-base($gutter-width: (2*85px)); + } + .region-sidebar-first{ + @include zen-grid-item(4.3, 1); + } +} + +.blog.blog-index { + #{$body-selector} { + width: 550px; + margin: { + left: auto; + right: auto; + } + } +}
\ No newline at end of file diff --git a/97suifangqa/sass/sass/layouts/responsive-sidebars-rtl.scss b/97suifangqa/sass/sass/layouts/responsive-sidebars-rtl.scss new file mode 100644 index 0000000..e7aa549 --- /dev/null +++ b/97suifangqa/sass/sass/layouts/responsive-sidebars-rtl.scss @@ -0,0 +1,11 @@ +/** + * @file + * RTL companion for the responsive-sidebars.css file. + */ + + +// First we tell Zen grids to reverse the direction of all floats. +$zen-reverse-all-floats: true; + +// Then we import the LTR layout and the directions are automatically reversed. +@import "responsive-sidebars"; diff --git a/97suifangqa/sass/sass/layouts/responsive-sidebars.scss b/97suifangqa/sass/sass/layouts/responsive-sidebars.scss new file mode 100644 index 0000000..d40f684 --- /dev/null +++ b/97suifangqa/sass/sass/layouts/responsive-sidebars.scss @@ -0,0 +1,213 @@ +/** + * @file + * Positioning for responsive layout . + * + * Define CSS classes to create a table-free, 3-column, 2-column, or single + * column layout depending on whether blocks are enabled in the left or right + * columns. + * + * This layout uses the Zen Grids plugin for Compass: http://zengrids.com + */ + +@import "base"; + + +// We are going to create a 980px wide, 5 column grid with 20px gutters between +// columns (applied as 10px of left/right padding on each column). +$zen-column-count: 5; +$zen-gutter-width: 20px; + + +// IE6-7 don't support box-sizing: border-box. We can fix this in 1 of 3 ways: +// - Drop support for IE 6/7. :-) In the _base.scss, set $legacy-support-for-ie6 +// and $legacy-support-for-ie7 to false. +// - (Preferred) Install the box-sizing polyfill and set the variable below to +// the absolute path URL to the boxsizing.htc file. +// @see https://github.com/Schepp/box-sizing-polyfill +// $box-sizing-polyfill-path: "/path/to/boxsizing.htc"; +// - Use the same CSS unit for grid width and gutter width (use px for both or +// use % for both, etc.) and set the box-sizing variable to content-box. +// $zen-box-sizing: content-box; + + +// You can generate more efficient CSS if you manually apply the +// zen-grid-item-base mixin to all grid items from within a single ruleset. +$zen-auto-include-item-base: false; +// $zen-auto-include-flow-item-base: false; + + +/* + * Center the page. + */ + +#page, +.region-bottom { + /* For screen sizes larger than 1200px, prevent excessively long lines of text + by setting a max-width. */ + margin-left: auto; + margin-right: auto; + max-width: 1200px; +} + +/* + * Apply the shared properties of grid items in a single, efficient ruleset. + */ +// See the note about $zen-auto-include-item-base above. + +#header, +#content, +#navigation, +.region-sidebar-first, +.region-sidebar-second, +#footer { + @include zen-grid-item-base(); +} + +/* + * Containers for grid items and flow items. + */ + +#header, +#main, +#footer { + @include zen-grid-container(); +} + +/* + * Navigation bar + */ + +@media all and (min-width: 480px) { + #main { + padding-top: 3em; /* Move all the children of #main down to make room. */ + position: relative; + } + #navigation { + position: absolute; + top: 0; /* Move the navbar up inside #main's padding. */ + height: 3em; + width: $zen-grid-width; + } +} + +@media all and (min-width: 480px) and (max-width: 959px) { + /* + * Use 3 grid columns for smaller screens. + */ + $zen-column-count: 3; + + /* + * The layout when there is only one sidebar, the left one. + */ + + .sidebar-first { + #content { /* Span 2 columns, starting in 2nd column from left. */ + @include zen-grid-item(2, 2); + } + + .region-sidebar-first { /* Span 1 column, starting in 1st column from left. */ + @include zen-grid-item(1, 1); + } + } + + /* + * The layout when there is only one sidebar, the right one. + */ + + .sidebar-second { + #content { /* Span 2 columns, starting in 1st column from left. */ + @include zen-grid-item(2, 1); + } + + .region-sidebar-second { /* Span 1 column, starting in 3rd column from left. */ + @include zen-grid-item(1, 3); + } + } + + /* + * The layout when there are two sidebars. + */ + + .two-sidebars { + #content { /* Span 2 columns, starting in 2nd column from left. */ + @include zen-grid-item(2, 2); + } + + .region-sidebar-first { /* Span 1 column, starting in 1st column from left. */ + @include zen-grid-item(1, 1); + } + + .region-sidebar-second { /* Start a new row and span all 3 columns. */ + @include zen-grid-item(3, 1); + @include zen-nested-container(); // Since we're making every block in this region be a grid item. + @include zen-clear(); + + .block { + @include zen-grid-item-base(); + } + .block:nth-child(3n+1) { /* Span 1 column, starting in the 1st column from left. */ + @include zen-grid-item(1, 1); + @include zen-clear(); + } + .block:nth-child(3n+2) { /* Span 1 column, starting in the 2nd column from left. */ + @include zen-grid-item(1, 2); + } + .block:nth-child(3n) { /* Span 1 column, starting in the 3rd column from left. */ + @include zen-grid-item(1, 3); + } + } + } +} + +@media all and (min-width: 960px) { + /* + * Use 5 grid columns for larger screens. + */ + $zen-column-count: 5; + + /* + * The layout when there is only one sidebar, the left one. + */ + + .sidebar-first { + #content { /* Span 4 columns, starting in 2nd column from left. */ + @include zen-grid-item(4, 2); + } + + .region-sidebar-first { /* Span 1 column, starting in 1st column from left. */ + @include zen-grid-item(1, 1); + } + } + + /* + * The layout when there is only one sidebar, the right one. + */ + + .sidebar-second { + #content { /* Span 4 columns, starting in 1st column from left. */ + @include zen-grid-item(4, 1); + } + + .region-sidebar-second { /* Span 1 column, starting in 5th column from left. */ + @include zen-grid-item(1, 5); + } + } + + /* + * The layout when there are two sidebars. + */ + + .two-sidebars { + #content { /* Span 3 columns, starting in 2nd column from left. */ + @include zen-grid-item(3, 2); + } + + .region-sidebar-first { /* Span 1 column, starting in 1st column from left. */ + @include zen-grid-item(1, 1); + } + + .region-sidebar-second { /* Span 1 column, starting in 5th column from left. */ + @include zen-grid-item(1, 5); + } + } +} diff --git a/97suifangqa/sass/sass/navigation-rtl.scss b/97suifangqa/sass/sass/navigation-rtl.scss new file mode 100644 index 0000000..b3e6771 --- /dev/null +++ b/97suifangqa/sass/sass/navigation-rtl.scss @@ -0,0 +1,30 @@ +/** + * @file + * RTL companion for the navigation.css file. + */ + +@import "base"; + + +ul li.collapsed { + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *list-style-image: url(../images/menu-collapsed-rtl.png); + } + //list-style-image: inline-image("menu-collapsed-rtl.png"); +} + +#navigation { + ul.links, /* Main menu and secondary menu links */ + ul.menu { /* Menu block links */ + text-align: right; + + li { /* A simple method to get navigation links to appear in one line. */ + float: right; + padding: 0 0 0 10px; + } + } +} + +#secondary-menu { + float: left; +} diff --git a/97suifangqa/sass/sass/navigation.scss b/97suifangqa/sass/sass/navigation.scss new file mode 100644 index 0000000..db947ec --- /dev/null +++ b/97suifangqa/sass/sass/navigation.scss @@ -0,0 +1,96 @@ +/** + * @file + * Navigation Styling + */ + +@import "base"; + + +/* + * Markup generated by theme_menu_tree(). + */ + +ul li.expanded { + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *list-style-image: url(../images/menu-expanded.png); + } + //list-style-image: inline-image("menu-expanded.png"); + list-style-type: circle; +} +ul li.collapsed { + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *list-style-image: url(../images/menu-collapsed.png); /* LTR */ + } + //list-style-image: inline-image("menu-collapsed.png"); /* LTR */ + list-style-type: disc; +} +ul li.leaf { + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *list-style-image: url(../images/menu-leaf.png); + } + //list-style-image: inline-image("menu-leaf.png"); + list-style-type: square; +} + + +/* + * Navigation bar + */ + +#navigation { + /* overflow: hidden; */ /* Sometimes you want to prevent overlapping with main div. */ + + .block { + margin-bottom: 0; + } + + .block-menu .block-title, + .block-menu-block .block-title { + @include element-invisible(); + } + + ul.links, /* Main menu and secondary menu links */ + ul.menu { /* Menu block links */ + margin: 0; + padding: 0; + text-align: left; /* LTR */ + + li { /* A simple method to get navigation links to appear in one line. */ + float: left; /* LTR */ + padding: 0 10px 0 0; /* LTR */ + list-style-type: none; + list-style-image: none; + } + } +} + +.region-navigation { +} + +/* + * Main menu and Secondary menu links + */ + +#main-menu { +} + +#secondary-menu { + float: right; /* LTR */ +} + +/* + * Menu blocks + */ + +.block-menu { +} + +/* + * "Menu block" blocks + * + * Drupal core has limited ways in which it can display its menus. To get around + * these limitations, see http://drupal.org/project/menu_block + */ + +.block-menu-block { +} diff --git a/97suifangqa/sass/sass/nodes.scss b/97suifangqa/sass/sass/nodes.scss new file mode 100644 index 0000000..358b55f --- /dev/null +++ b/97suifangqa/sass/sass/nodes.scss @@ -0,0 +1,64 @@ +/** + * @file + * Node Styling + * + * Style anything that isn't in the $content variable. + */ + +@import "base"; + + +.node { /* Node wrapper */ + + .preview & { /* Preview of the content before submitting new or updated content */ + /* background-color: #ffffea; */ /* Drupal core uses a #ffffea background */ + } + + .node-title { /* Node title */ + } + + .user-picture { /* The picture of the node author */ + } + + .submitted { /* The "posted by" information */ + } + + .content { /* Node's content wrapper */ + } + + ul.links { /* Node links. See also the ul.links declaration in the pages.css. */ + } + +} + +.node-promoted { /* A node that has been promoted to the front page */ +} + +.node-sticky { /* A sticky node (displayed before others in a list) */ +} + +.node-by-viewer { /* A node created by the current user */ +} + +.node-teaser { /* A node displayed as teaser */ +} + +/* + * All nodes are given a node-FOO class that describes the type of content that + * it is. If you create a new content type called "my-custom-type", it will + * receive a "node-my-custom-type" class. + */ + +.node-page { /* Page content node */ +} + +.node-article { /* Article content node */ +} + +.node-unpublished { /* Unpublished nodes */ + /* background-color: #fff4f4; */ /* Drupal core uses a #fff4f4 background */ + + p.unpublished { /* The word "Unpublished" displayed underneath the content. */ + @include unpublished-div; + } +} diff --git a/97suifangqa/sass/sass/normalize-rtl.scss b/97suifangqa/sass/sass/normalize-rtl.scss new file mode 100644 index 0000000..388f8c3 --- /dev/null +++ b/97suifangqa/sass/sass/normalize-rtl.scss @@ -0,0 +1,50 @@ +/* normalize-rtl.css - RTL language extension of normalize.scss. */ + +@import "base"; + + +/* ============================================================================= + Lists + ========================================================================== */ + +/* + * Addresses margins set differently in IE6/7 + */ + +dd { + margin: 0 $indent-amount 0 0; +} + +/* + * Addresses paddings set differently in IE6/7 + */ + +menu, +ol, +ul, +.item-list ul /* Drupal override */ { + padding: 0 $indent-amount 0 0; +} + +/* ============================================================================= + Forms + ========================================================================== */ + +/* + * 3. Corrects alignment displayed oddly in IE6/7 + */ + +legend { + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *margin-left: 0; + *margin-right: -7px; /* 3 */ + } +} + +/* ============================================================================= + Tables + ========================================================================== */ + +th { + text-align: right; +} diff --git a/97suifangqa/sass/sass/normalize.scss b/97suifangqa/sass/sass/normalize.scss new file mode 100644 index 0000000..bb88693 --- /dev/null +++ b/97suifangqa/sass/sass/normalize.scss @@ -0,0 +1,729 @@ +@charset "UTF-8"; +/* normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */ + +/* ============================================================================= + Normalize.css is intended to be used as an alternative to CSS resets. + + It is suggested that you read through the normalize.css file and customise it + to meet the design requirements of a project rather including it as a "black + box". @see http://nicolasgallagher.com/about-normalize-css/ + + Also: @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/ + @see http://snook.ca/archives/html_and_css/no_css_reset/ + ========================================================================== */ + +@import "base"; + +/* ============================================================================= + HTML5 display definitions + ========================================================================== */ + +/* + * Corrects block display not defined in IE6/7/8/9 & FF3 + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section, +summary { + display: block; +} + +/* + * Corrects inline-block display not defined in IE6/7/8/9 & FF3 + */ + +audio, +canvas, +video { + display: inline-block; + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *display: inline; + *zoom: 1; + } +} + +/* + * Prevents modern browsers from displaying 'audio' without controls + * Remove excess height in iOS5 devices + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/* + * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 + * Known issue: no IE6 support + */ + +[hidden] { + display: none; +} + + +/* ============================================================================= + Base + ========================================================================== */ + +/* Instead of relying on the fonts that are available on a user's computer, you + can use web fonts which, like images, are resources downloaded to the user's + browser. Because of the bandwidth and rendering resources required, web fonts + should be used with care. + + Numerous resources for web fonts can be found on Google. Here are a few + websites where you can find Open Source fonts to download: + - http://www.fontsquirrel.com/fontface + - http://www.theleagueofmoveabletype.com + + In order to use these fonts, you will need to convert them into formats + suitable for web fonts. We recommend the free-to-use Font Squirrel's + Font-Face Generator: + http://www.fontsquirrel.com/fontface/generator + + The following is an example @font-face declaration. This font can then be + used in any ruleset using a property like this: font-family: Example, serif; + + Since we're using Sass, you'll need to declare your font faces here, then you + can add them to the font variables in the _base.scss partial. +*/ + +/* +@font-face { + font-family: 'Example'; + src: url('../fonts/example.eot'); + src: url('../fonts/example.eot?iefix') format('eot'), + url('../fonts/example.woff') format('woff'), + url('../fonts/example.ttf') format('truetype'), + url('../fonts/example.svg#webfontOkOndcij') format('svg'); + font-weight: normal; + font-style: normal; +} +*/ + +/* + * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units + * http://clagnut.com/blog/348/#c790 + * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom + * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ + */ + +html { + font-size: 100% * ($base-font-size / 16px); /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ + /* Establishes a vertical rhythm unit using $base-line-height. */ + color: $base-font-color; + @include adjust-leading-to(1); +} + +/* + * Addresses font-family inconsistency between 'textarea' and other form elements. + */ + +html, +button, +input, +select, +textarea { + font-family: $base-font-family; +} + +/* + * Addresses margins handled incorrectly in IE6/7 + */ + +body { + margin: 0; +} + + +/* ============================================================================= + Links + ========================================================================== */ + +/* + * The order of link states are based on Eric Meyer's article: + * http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states + */ + +a:link { +} + +a { + color: $base-link-color; + text-decoration: none; +} + +a:visited { + color: $base-link-color; +} + +a:hover, +a:focus { + text-decoration: underline; +} + +a:active { + +} + +/* + * Addresses outline displayed oddly in Chrome + */ + +a:focus { + outline: thin dotted; +} + +/* + * Improves readability when focused and also mouse hovered in all browsers + * people.opera.com/patrickl/experiments/keyboard/test + */ + +a:hover, +a:active { + outline: 0; +} + + +/* ============================================================================= + Typography + + To achieve a pleasant vertical rhythm, we use Compass' Vertical Rhythm mixins + so that the line height of our base font becomes the basic unit of vertical + measurement. We use multiples of that unit to set the top and bottom margins + for our block level elements and to set the line heights of any fonts. + For more information, see http://24ways.org/2006/compose-to-a-vertical-rhythm + ========================================================================== */ + +/* + * Addresses font sizes and margins set differently in IE6/7 + * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5 + */ + +h1 { + /* Sets the font-size and line-height while keeping a proper vertical rhythm. */ + @include adjust-font-size-to( $h1-font-size, 30/20 ); + + /* Sets 1 unit of vertical rhythm on the top and bottom margins. */ + @include leader(0.5, $h1-font-size); + @include trailer(0.8, $h1-font-size); +} + +h2 { + @include adjust-font-size-to( $h2-font-size ); + @include leader(0.5, $h2-font-size); + @include trailer(0.3, $h2-font-size); +} + +h3 { + @include adjust-font-size-to( $h3-font-size ); + @include leader(1, $h3-font-size); + @include trailer(0.3, $h3-font-size); +} + +h4 { + @include adjust-font-size-to( $h4-font-size ); + @include leader(0.8, $h4-font-size); + @include trailer(0.4, $h4-font-size); +} + +h5 { + @include adjust-font-size-to( $h5-font-size ); + @include leader(0.3, $h5-font-size); + @include trailer(0.5, $h5-font-size); +} + +h6 { + @include adjust-font-size-to( $h6-font-size ); + @include leader(0.3, $h6-font-size); + @include trailer(0.5, $h6-font-size); +} + +/* Thematic break */ +hr { + height: 1px; + border: 1px solid #666; + padding-bottom: -1px; + margin: rhythm(1) 0; +} + +/* + * Addresses styling not present in IE7/8/9, S5, Chrome + */ + +abbr[title] { + border-bottom: 1px dotted; + cursor: help; + white-space: nowrap; +} + +/* + * Addresses style set to 'bolder' in FF3+, S4/5, Chrome +*/ + +b, +strong { + font-weight: bold; +} + +blockquote { + /* Sets 1 unit of vertical rhythm on the top and bottom margin. */ + margin: rhythm(1) $indent-amount; +} + +/* + * Addresses styling not present in S5, Chrome + */ + +dfn { + font-style: italic; +} + +/* + * Addresses styling not present in IE6/7/8/9 + */ + +mark { + background: #ff0; + color: #000; +} + +/* + * Addresses margins set differently in IE6/7 + */ + +p, +pre { + /* Sets 1 unit of vertical rhythm on the top and bottom margin. */ + margin-bottom: rhythm(0.5); + margin-top: 0; +} + +/* + * Corrects font family set oddly in IE6, S4/5, Chrome + * en.wikipedia.org/wiki/User:Davidgothberg/Test59 + */ + +pre, +code, +kbd, +samp, +tt, +var { + font-family: $font-monospace; /* The $font-monospace value ends with ", serif". */ + @if $legacy-support-for-ie6 { + _font-family: 'courier new', monospace; + } + @include adjust-font-size-to( 1 * $base-font-size ); +} + +/* + * Improves readability of pre-formatted text in all browsers + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/* + * 1. Addresses CSS quotes not supported in IE6/7 + * 2. Addresses quote property not supported in S4 + */ + +/* 1 */ + +q { + quotes: none; +} + +/* 2 */ + +q:before, +q:after { + content: ''; + content: none; +} + +/* @todo Determine how big element affects vertical rhythm. */ +small { + font-size: 75%; +} + +/* + * Prevents sub and sup affecting line-height in all browsers + * gist.github.com/413930 + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + + +/* ============================================================================= + Lists + ========================================================================== */ + +/* + * Addresses margins set differently in IE6/7 + */ + +dl, +menu, +ol, +ul, +.item-list ul /* Drupal override */ { + /* Sets 1 unit of vertical rhythm on the top and bottom margin. */ + margin: rhythm(1) 0; +} + +.item-list ul li { /* Drupal override */ + margin: 0; +} + +dd { + margin: 0 0 0 $indent-amount; /* LTR */ +} + +ul, ol, .item-list ul, .item-list ol { + ul, ol { + margin: 0; /* Turn off margins on nested lists. */ + } +} + +/* + * Addresses paddings set differently in IE6/7 + */ + +menu, +ol, +ul, +.item-list ul /* Drupal override */ { + padding: 0 0 0 $indent-amount; /* LTR */ +} + +/* + * Corrects list images handled incorrectly in IE7 + */ + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + + +/* ============================================================================= + Embedded content + ========================================================================== */ + +/* + * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 + * 2. Improves image quality when scaled in IE7 + * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ + + /* vertical-align: bottom; */ /* Suppress the space beneath the baseline */ + + /* Responsive images */ + /* @todo Add responsive embedded video. */ + max-width: 100%; + height: auto; +} + +/* + * Corrects overflow displayed oddly in IE9 + */ + +svg:not(:root) { + overflow: hidden; +} + + +/* ============================================================================= + Figures + ========================================================================== */ + +/* + * Addresses margin not present in IE6/7/8/9, S5, O11 + */ + +figure { + margin: 0; +} + + +/* ============================================================================= + Forms + ========================================================================== */ + +/* + * Corrects margin displayed oddly in IE6/7 + */ + +form { + margin: 0; +} + +/* + * Define consistent border, margin, and padding + */ + +fieldset { + border-color: #c0c0c0; + margin: 0 2px; + /* Apply borders and padding that keep the vertical rhythm. */ + @include apply-side-rhythm-border(top, $width: 1px, $lines: 0.35); + @include apply-side-rhythm-border(bottom, $width: 1px, $lines: 0.65); + @include apply-side-rhythm-border(left, $width: 1px, $lines: 0.65); + @include apply-side-rhythm-border(right, $width: 1px, $lines: 0.65); +} + +/* + * 1. Corrects color not being inherited in IE6/7/8/9 + * 2. Corrects text not wrapping in FF3 + * 3. Corrects alignment displayed oddly in IE6/7 + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *margin-left: -7px; /* 3 */ /* LTR */ + } +} + +/* + * 1. Corrects font size not being inherited in all browsers + * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome + * 3. Improves appearance and consistency in all browsers + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *vertical-align: middle; /* 3 */ + } +} + +/* + * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet + */ + +button, +input { + line-height: normal; /* 1 */ +} + +/* + * 1. Improves usability and consistency of cursor style between image-type 'input' and others + * 2. Corrects inability to style clickable 'input' types in iOS + * 3. Removes inner spacing in IE7 without affecting normal text inputs + * Known issue: inner spacing remains in IE6 + */ + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; /* 1 */ + -webkit-appearance: button; /* 2 */ + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *overflow: visible; /* 3 */ + } +} + +.button, +button, +input[type="submit"], +input[type="button"], +input[type="reset"] { + cursor: pointer; + -webkit-appearance: none; + background-color: $base-green; + border: 1px solid #f3f2f0; + @include box-shadow(0px 0px 2px white); + @include border-radius(3px); + color: white; + padding: { + left: 0.8em; + right: 0.8em; + } + height: 2.1em; + //line-height: 2.1em; + &:hover { + background-color: darken($base-green, 2); + } + &:active { + background-color: darken($base-green, 5); + @include box-shadow(inset 0px 0px 10px rgba(#555,0.5)); + } + &.disabled { + cursor: default; + &:active, + &:hover { + background-color: $base-green; + @include box-shadow(none); + } + } + vertical-align: middle; + +} + +//a Fixes +a.button, +a.button:hover, +a.button:active, +a.button:visited { + text-decoration: none; +} + +.button { + text-align: center; + line-height: 2.1em; +} + +input[type="text"], +input[type="password"] { + padding: { + left: 0.5em; + right: 0.5em; + top: 0; + bottom: 0; + } + //line-height: 1.95em; + height: 1.95em; +} + +/* + * Re-set default cursor for disabled elements + */ + +button[disabled], +input[disabled] { + cursor: default; +} + +/* + * 1. Addresses box sizing set to content-box in IE8/9 + * 2. Removes excess padding in IE8/9 + * 3. Removes excess padding in IE7 + Known issue: excess padding remains in IE6 + */ + +input[type="checkbox"], +input[type="radio"] { + @include box-sizing(border-box); /* 1 */ + padding: 0; /* 2 */ + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ + } +} + +/* + * 1. Addresses appearance set to searchfield in S5, Chrome + * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + @include box-sizing(content-box); /* 2 */ +} + +/* + * Removes inner padding and search cancel button in S5, Chrome on OS X + */ + +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance: none; +} + +/* + * Removes inner padding and border in FF3+ + * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * 1. Removes default vertical scrollbar in IE6/7/8/9 + * 2. Improves readability and alignment in all browsers + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + + +/* ============================================================================= + Tables + ========================================================================== */ + +/* + * Remove most spacing between table cells + */ + +table { + border-collapse: collapse; + border-spacing: 0; + /* width: 100%; */ /* Prevent cramped-looking tables */ + /* Add vertical rhythm margins. */ + @include leader(1); + @include trailer(1); +} + +/* + * Drupal provides table styling which is only useful for its admin section + * forms, so we override this default CSS. (We set it back in forms.css.) + */ + +th { + text-align: left; /* LTR */ + padding: 0; + border-bottom: none; +} + +tbody { + border-top: none; +} diff --git a/97suifangqa/sass/sass/pages-rtl.scss b/97suifangqa/sass/sass/pages-rtl.scss new file mode 100644 index 0000000..c57f2bc --- /dev/null +++ b/97suifangqa/sass/sass/pages-rtl.scss @@ -0,0 +1,27 @@ +/** + * @file + * RTL companion for the pages.css file. + */ + +@import "base"; + + +/* + * Header + */ + +#logo { /* Wrapping link for logo */ + float: right; +} + +/* + * Content + */ + +ul.inline li { /* List of links */ + display: inline-block; /* Bug in Safari causes display: inline to fail. */ + padding: 0 0 0 1em; +} +span.field-label { /* The inline field label used by the Fences.module */ + padding: 0 0 0 1em; +} diff --git a/97suifangqa/sass/sass/pages.scss b/97suifangqa/sass/sass/pages.scss new file mode 100644 index 0000000..6ed3543 --- /dev/null +++ b/97suifangqa/sass/sass/pages.scss @@ -0,0 +1,424 @@ +/** + * @file + * Page Styling + * + * Style the markup found in page.tpl.php. Also includes some styling of + * miscellaneous Drupal elements that appear in the $content variable, such as + * ul.links, .pager, .more-link, etc. + */ + +@import "base"; + + +/* + * Body + */ + +body { + margin: 0; + padding: 0; +} + +#page { +} + +/* + * The skip-link link will be completely hidden until a user tabs to the link. + * See the element-focusable rule in system.base.css. + */ + +#skip-link { + margin: 0; + + a, + a:visited { + display: block; + width: 100%; + padding: 2px 0 3px 0; + text-align: center; + background-color: #666; + color: #fff; + } +} + +.text { + p { + + } + .highlight { + background-color: #efeff0; + border: 1px solid #c9caca; + padding: 2px; + font-weight: bold; + p { + margin: 0; + } + } +} + +/* + * Header + */ + +#header { +} + +#login { + position: relative; + &.not-logged-in { + ul { + margin: 0; + li { + border-right: 1px solid; + + padding: { + left: 0.5em; + right: 0.8em; + } + &.first { + padding-left: 0; + } + &.last { + padding-right: 0; + border-right: none; + } + + a { + color: inherit; + } + } + } + } + &.logged-in{ + .user-level { + @include adjust-font-size-to(14px, 14/20); + padding: { + left: 0.2em; + right: 0.25em; + top: 0.05em; + bottom: 0.05em; + } + vertical-align: -0.1em; + } + .user-name, + .user-level, + .user-photo, + .drop-down-menu-button { + vertical-align: bottom; + } + .user-name { + @include adjust-font-size-to(16px,16/20); + font-weight: bold; + } + + .drop-down-area { + cursor: pointer; + } + + .drop-down-menu { + color: black; + @include openable-base; + top: 100%; + margin-top: 10px; + left: -10px; + background-color: white; + border: 1px solid #c9c9c9; + @include box-shadow(0px 0px 10px rgba(#555, 0.5)); + @include border-radius(2px); + + .text-pointer { + position: absolute; + background: url(../../images/login-menu-popup-pointer.png) no-repeat; + width: 20px; + height: 8px; + top: -8px; + left: 90px; + margin-left: -10px; + } + + ul { + margin: 0; + padding: 0; + + li { + padding: 2px; + border-bottom: 1px solid #efefef; + + &.last { + border-bottom: none; + } + + a { + padding-left: 1em; + display: block; + width: 150px; + padding: { + top: 0.2em; + bottom: 0.2em; + } + text-decoration: none; + + color: inherit; + + @include border-radius(2px); + + &:hover { + text-decoration: none; + background-color: #c9cacc; + color: white; + } + } + } + } + } + } +} + +#back-to-top-button { + z-index: 100; + position: fixed; + + background: url(../../images/back-to-top-button.png) no-repeat; + width: 40px; + height: 40px; + + cursor: pointer; + opacity: 0; + visibility: hidden; + + @include transition(all 0.3s ease 0s); + + body.scrolled-down & { + opacity: 1; + visibility: visible; + } +} + +#logo { /* Wrapping link for logo */ + float: left; /* LTR */ + margin: 0; + padding: 0; + + img { + vertical-align: bottom; + } +} + +#name-and-slogan { /* Wrapper for website name and slogan */ + float: left; +} + +#site-name { /* The name of the website */ + margin: 0; + font-size: 2em; + line-height: 1.5em; + + a:link, + a:visited { + color: #000; + text-decoration: none; + } + + a:hover, + a:focus { + text-decoration: underline; + } +} + +#site-slogan { /* The slogan (or tagline) of a website */ + margin: 0; + font-size: 1em; +} + +.region-header { /* Wrapper for any blocks placed in the header region */ + clear: both; /* Clear the logo */ +} + +/* + * Main (container for everything else) + */ + +#main { +} + +/* + * Content + */ + +#content { +} + +.region-highlighted { +} + +.breadcrumb { /* The path to the current page in the form of a list of links */ + ol { + margin: 0; + padding: 0; + } + li { + display: inline; + list-style-type: none; + margin: 0; + padding: 0; + } +} + +h1.title, /* The title of the page */ +h2.node-title, /* Title of a piece of content when it is given in a list of content */ +h2.block-title, /* Block title */ +h2.title, /* Comment section heading */ +h2.comment-form, /* Comment form heading */ +h3.title { /* Comment title */ + margin: 0; +} + +tr.even { /* Some tables have rows marked even or odd. */ + /* background-color: #eee; */ /* Drupal core uses a #eee background */ +} + +tr.odd { + /* background-color: #eee; */ /* Drupal core uses a #eee background */ +} + +div.messages { /* Important messages (status, warning, and error) for the user. See also the declarations in messages.css. */ + margin: 1.5em 0; /* Drupal core uses "6px 0" margin */ + + ul { + margin-top: 0; + margin-bottom: 0; + } +} + +div.status { /* Normal priority messages */ +} + +div.warning, +tr.warning { /* Medium priority messages */ + /* border: 1px solid #f0c020; */ /* Drupal core uses: 1px solid #f0c020 */ +} + +div.error, +tr.error { /* High priority messages. See also the .error declaration below. */ +} + +.error { /* Errors that are separate from div.messages status messages. */ + /* color: #e55; */ /* Drupal core uses a #e55 background */ +} + +.warning { /* Warnings that are separate from div.messages status messages. */ + /* color: #e09010; */ /* Drupal core uses a #e09010 background */ +} + +.tabs { /* See also the tabs.css file. */ +} + +.region-help { /* Help text on a page */ +} + +.more-help-link { /* Link to more help */ +} + +.region-content { /* Wrapper for the actual page content */ +} + +ul.inline { /* List of links generated by theme_links() */ + display: inline; + padding: 0; + + li { + display: inline; + list-style-type: none; + padding: 0 1em 0 0; /* LTR */ + } +} +span.field-label { /* The inline field label used by the Fences module */ + padding: 0 1em 0 0; /* LTR */ +} + +.item-list .pager { /* A list of page numbers when more than 1 page of content is available */ + padding: 0; + + li { /* Each page number in the pager list */ + padding: 0 0.5em; + } +} + +.feed-icon { /* The link to the RSS or Atom feed for the current list of content */ +} + +.more-link { /* Aggregator, blog, and forum more link */ +} + +/* + * First sidebar (on left in LTR languages, on right in RTL) + * + * Remember to NOT add padding or margin to your .region-sidebar-first + * (see the layout.css file.) + */ + +.region-sidebar-first { +} + +/* + * Second sidebar (on right in LTR languages, on left in RTL) + * + * Remember to NOT add padding or margin to your .region-sidebar-second + * (see the layout.css file.) + */ + +.region-sidebar-second { +} + +/* + * Footer + */ + +#footer { +} + +/* + * Page bottom + */ + +.region-bottom { /* Wrapper for any blocks placed in the page bottom region */ +} + + +.left-picture { + #sidebar-first { + position: fixed; + top: 0; + bottom: 0; + background: url(../../images/back_main.jpg) no-repeat center top; + background-size: auto 100%; + min-height: 600px; + + #header { + position: absolute; + bottom: 30px; + text-align: center; + width: auto; + margin-left: 40px; + } + } + #content { + .region-wrap { + margin: { + top: 50px; + left: 0px; + right:0; + } + } + } +} + +.page-not-found { + .message { + position: fixed; + top: 50%; + @include adjust-font-size-to(18px); + line-height: 20px; + margin-top: -10px; + } +}
\ No newline at end of file diff --git a/97suifangqa/sass/sass/print.scss b/97suifangqa/sass/sass/print.scss new file mode 100644 index 0000000..f26be8f --- /dev/null +++ b/97suifangqa/sass/sass/print.scss @@ -0,0 +1,73 @@ +/** + * @file + * Print styling + * + * We provide some sane print styling for Drupal using Zen's layout method. + */ + +@import "base"; + + +@media print { + + a:link, + a:visited { /* underline all links */ + text-decoration: underline !important; + + #site-name & { /* Don't underline header */ + text-decoration: none !important; + } + } + + #content { + a[href]:after { /* Add visible URL after links. */ + content: " (" attr(href) ")"; + font-weight: normal; + font-size: $base-font-size; + } + + a[href^="javascript:"]:after, + a[href^="#"]:after { /* Only display useful links. */ + content: ""; + } + + abbr[title]:after { /* Add visible title after abbreviations. */ + content: " (" attr(title) ")"; + } + } + + #content { /* Un-float the content */ + float: none !important; + width: 100% !important; + margin: 0 !important; + padding: 0 !important; + } + + body, + #page, + #main, + #content { /* Turn off any background colors or images */ + color: #000; + background-color: transparent !important; + background-image: none !important; + } + + #skip-link, + #toolbar, + #navigation, + .region-sidebar-first, + .region-sidebar-second, + #footer, + .breadcrumb, + .tabs, + .action-links, + .links, + .book-navigation, + .forum-topic-navigation, + .pager, + .feed-icons { /* Hide sidebars and nav elements */ + visibility: hidden; + display: none; + } + +} /* End @media print */ diff --git a/97suifangqa/sass/sass/registration.scss b/97suifangqa/sass/sass/registration.scss new file mode 100644 index 0000000..5d821ee --- /dev/null +++ b/97suifangqa/sass/sass/registration.scss @@ -0,0 +1,52 @@ +@charset "utf-8";
+/**
+ * @file
+ * Registration specific styles
+ * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com>
+ */
+@import "base";
+
+body.registration {
+ input[type="text"],
+ input[type="password"] {
+ background-color: #f8f8f5;
+ border: 1px solid #babab9;
+ @include border-radius(2px);
+ @include input-placeholder-color(#898989);
+ width: 250px;
+ }
+
+ .reg-form {
+ border: 0px;
+ tr td {
+ padding: 3px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+ }
+ td.error {
+ max-width: 200px;
+ vertical-align: top;
+ padding-left: 10px;
+ }
+ }
+ .error {
+ color: red;
+ }
+
+ input.submit {
+ width: 100px;
+ }
+}
+body.login {
+ .login-prompt {
+ font-size: 0.9em;
+ text-align: center;
+ background: url(../../images/horizontal-bar-grey.png) repeat-x center center;
+
+ .prompt {
+ background-color: white;
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+ }
+}
\ No newline at end of file diff --git a/97suifangqa/sass/sass/tabs-rtl.scss b/97suifangqa/sass/sass/tabs-rtl.scss new file mode 100644 index 0000000..d7cdf8e --- /dev/null +++ b/97suifangqa/sass/sass/tabs-rtl.scss @@ -0,0 +1,20 @@ +/** + * @file + * RTL companion for the tabs.css file. + */ + +@import "base"; + + +ul.primary, +ul.secondary { + li { + float: right; + } +} + +ul.primary { + li { + margin: 0.5em 3px 0 0; + } +} diff --git a/97suifangqa/sass/sass/tabs.scss b/97suifangqa/sass/sass/tabs.scss new file mode 100644 index 0000000..8dc7b5f --- /dev/null +++ b/97suifangqa/sass/sass/tabs.scss @@ -0,0 +1,118 @@ +/** + * @file + * Tabs Styling + * + * Adds styles for the primary and secondary tabs. + * + * Compare this with default CSS found in the system module's stylesheet (a copy + * of which is in drupal7-reference.css.) + */ + +@import "base"; + + +// Some variables to make altering the styling easier. +$tabs-container-bg: #fff; +$tabs-border: #bbb; + + +/* + * Basic positioning styles shared by primary and secondary tabs. + */ + +ul.primary, +ul.secondary { + @include clearfix; + border-bottom: 1px solid $tabs-border; + list-style: none; + margin: 1em 0 1.5em; + padding: 0 2px; + white-space: nowrap; + + li { + float: left; /* LTR */ + margin: 0.5em 3px 0; + } + + a { + border: 1px solid #e9e9e9; + border-right: 0; + border-bottom: 0; + display: block; + line-height: 1.5em; + text-decoration: none; + } +} + +/* + * Primary tabs + */ + +ul.primary { + li { + @include border-top-radius(4px); + @include single-text-shadow(#fff, 1px, 1px, 0); + border: 1px solid $tabs-border; + border-bottom: 0; + margin: 0.5em 0 0 3px; /* LTR */ + } + li.active { + border-bottom: 1px solid $tabs-container-bg; + margin-bottom: -1px; /* Overlap the ul's border. */ + } + + a:link, + a:visited { + @include border-top-radius(4px); + @include transition(background-color 0.3s); + color: #333; + background-color: #dedede; + letter-spacing: 1px; + padding: 0 1em; + text-align: center; + } + a:hover, + a:focus { + background-color: #e9e9e9; + border-color: #f2f2f2; + } + a.active { + background-color: transparent; + @include filter-gradient(rgba(#e9e9e9, 1), rgba(#e9e9e9, 0)); + @include background-image(linear-gradient(rgba(#e9e9e9, 1), rgba(#e9e9e9, 0))); + border-color: #fff; + } +} + +/* + * Secondary tabs + */ + +ul.secondary { + font-size: .9em; + margin-top: -1.5em; /* Collapse bottom margin of ul.primary. */ + padding-bottom: .5em; + + a:link, + a:visited { + @include border-radius(.75em); + @include transition(background-color 0.3s); + @include single-text-shadow(#fff, 1px, 1px, 0); + background-color: #f2f2f2; + color: #666; + padding: 0 .5em; + } + a:hover, + a:focus { + background-color: #dedede; + border-color: #999; + color: #333; + } + a.active, + a:active { + @include single-text-shadow(#333, 1px, 1px, 0); + background-color: #666; + border-color: #000; + color: #fff; + } +} diff --git a/97suifangqa/sass/sass/views-styles.scss b/97suifangqa/sass/sass/views-styles.scss new file mode 100644 index 0000000..913ec9d --- /dev/null +++ b/97suifangqa/sass/sass/views-styles.scss @@ -0,0 +1,45 @@ +/** + * @file + * Views Styling + */ + +@import "base"; + + +/* + * Views' admin tabs + * + * The views admin tabs use the same classes as the secondary tabs. We prevent + * some of our tab styling from bleeding into (and breaking) the Views admin + * pages. If your sub-theme isn't used for admin pages, you can remove this + * entire section. + */ +.views-displays .secondary { + li { + float: none; + margin: 0 6px 0; + } + + a:link, + a:visited { + @include single-text-shadow(none); + padding: 2px 7px 3px; + } + + .open > a { + @include border-radius(7px 7px 0 0); + &:hover { + color: #333; + } + } + + .action-list li { + margin: 0; + &:first-child { + @include border-radius(0 7px 0 0); + } + &:last-child { + @include border-radius(0 0 7px 7px); + } + } +} diff --git a/97suifangqa/sass/sass/wireframes.scss b/97suifangqa/sass/sass/wireframes.scss new file mode 100644 index 0000000..95b70f2 --- /dev/null +++ b/97suifangqa/sass/sass/wireframes.scss @@ -0,0 +1,28 @@ +/** + * @file + * Wireframes Styling + * + * Add wireframes to the basic layout elements. + */ + +@import "base"; + + +.with-wireframes { + #header, + #main, + #content, + #navigation, + .region-sidebar-first, + .region-sidebar-second, + #footer, + .region-bottom { + outline: 1px solid #ccc; + + @if $legacy-support-for-ie6 or $legacy-support-for-ie7 { + .lt-ie8 & { + border: 1px solid #ccc; /* IE6/7 do not support the outline property. */ + } + } + } +} diff --git a/97suifangqa/settings.py b/97suifangqa/settings.py new file mode 100644 index 0000000..b36f4f0 --- /dev/null +++ b/97suifangqa/settings.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- + +import os,sys + + +DEBUG = True +TEMPLATE_DEBUG = DEBUG + +PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) +path = lambda s: os.path.join(PROJECT_ROOT, s) + +sys.path.insert(0, path('apps')) + + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.sqlite3', + 'NAME': 'isuifangqa.db', + 'USER': '', + 'PASSWORD': '', + 'HOST': '', + 'PORT': '', + } +} + +FILE_SITE = "http://127.0.0.1:8000" + +TIME_ZONE = 'Asia/Shanghai' + +LANGUAGE_CODE = 'zh-cn' + +SITE_ID = 1 + +USE_I18N = True + +USE_L10N = True + +MEDIA_ROOT = path('media') +MEDIA_URL = '/site_media/' + +STATIC_ROOT = path('../static') +STATIC_URL = '/static/' +ADMIN_MEDIA_PREFIX = '/static/admin/' + +STATICFILES_DIRS = ( + # Put strings here, like "/home/html/static" or "C:/www/django/static". + # Always use forward slashes, even on Windows. + # Don't forget to use absolute paths, not relative paths. + path('staticfiles'), +) + +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', +# 'django.contrib.staticfiles.finders.DefaultStorageFinder', +) + + +AUTHENTICATION_BACKENDS = ( + 'profile.backends.EmailOrUsernameModelBackend', + 'django.contrib.auth.backends.ModelBackend', +) + +# Make this unique, and don't share it with anybody. +SECRET_KEY = 'ga%erw1x6qa45_u7s5w92dwsyc6rqrl*o+*z&letkssv5an!ox' + + +# List of callables that know how to import templates from various sources. +TEMPLATE_LOADERS = ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', +# 'django.template.loaders.eggs.Loader', +) + +MIDDLEWARE_CLASSES = ( + 'django.middleware.common.CommonMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', +) + +ROOT_URLCONF = 'urls' + +TEMPLATE_DIRS = ( + path("templates"), +) + +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.dummy.DummyCache', + } +} + +## extra fixtures dir +FIXTURE_DIRS = (os.path.join(PROJECT_ROOT, 'fixtures'),) + +INSTALLED_APPS = ( + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.sites', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'django.contrib.admin', + 'haystack', + 'profile', + 'location', + 'indicator', + 'medicine', + 'figure', + 'subjects', + 'sciblog', + 'info', + #'97suifangqa', +) + +LOGIN_REDIRECT_URL = '/blog/index' + +# django-haystack settings +from haystack_settings import * + +# auto reload when deployed under uWSGI +try: + import uwsgi + from uwsgidecorators import timer + from django.utils import autoreload + + @timer(3) + def change_code_reload(sig): + if autoreload.code_changed(): + uwsgi.reload() +except: + pass diff --git a/97suifangqa/staticfiles/images/back-to-top-button.png b/97suifangqa/staticfiles/images/back-to-top-button.png Binary files differnew file mode 100644 index 0000000..4cb0ff9 --- /dev/null +++ b/97suifangqa/staticfiles/images/back-to-top-button.png diff --git a/97suifangqa/staticfiles/images/back_main.jpg b/97suifangqa/staticfiles/images/back_main.jpg Binary files differnew file mode 100644 index 0000000..ee4f950 --- /dev/null +++ b/97suifangqa/staticfiles/images/back_main.jpg diff --git a/97suifangqa/staticfiles/images/back_main2.jpg b/97suifangqa/staticfiles/images/back_main2.jpg Binary files differnew file mode 100644 index 0000000..e81bb3d --- /dev/null +++ b/97suifangqa/staticfiles/images/back_main2.jpg diff --git a/97suifangqa/staticfiles/images/back_main3.jpg b/97suifangqa/staticfiles/images/back_main3.jpg Binary files differnew file mode 100644 index 0000000..47a1da0 --- /dev/null +++ b/97suifangqa/staticfiles/images/back_main3.jpg diff --git a/97suifangqa/staticfiles/images/back_main4.jpg b/97suifangqa/staticfiles/images/back_main4.jpg Binary files differnew file mode 100644 index 0000000..ef1749c --- /dev/null +++ b/97suifangqa/staticfiles/images/back_main4.jpg diff --git a/97suifangqa/staticfiles/images/blog-images-temp/fig2-1.png b/97suifangqa/staticfiles/images/blog-images-temp/fig2-1.png Binary files differnew file mode 100644 index 0000000..d33012a --- /dev/null +++ b/97suifangqa/staticfiles/images/blog-images-temp/fig2-1.png diff --git a/97suifangqa/staticfiles/images/blog-images-temp/fig2-2.png b/97suifangqa/staticfiles/images/blog-images-temp/fig2-2.png Binary files differnew file mode 100644 index 0000000..1f260c9 --- /dev/null +++ b/97suifangqa/staticfiles/images/blog-images-temp/fig2-2.png diff --git a/97suifangqa/staticfiles/images/blog-not-found.png b/97suifangqa/staticfiles/images/blog-not-found.png Binary files differnew file mode 100644 index 0000000..3192b05 --- /dev/null +++ b/97suifangqa/staticfiles/images/blog-not-found.png diff --git a/97suifangqa/staticfiles/images/breadcrumb-dark-grey-button-left-arrow-wbg.png b/97suifangqa/staticfiles/images/breadcrumb-dark-grey-button-left-arrow-wbg.png Binary files differnew file mode 100644 index 0000000..f00d51d --- /dev/null +++ b/97suifangqa/staticfiles/images/breadcrumb-dark-grey-button-left-arrow-wbg.png diff --git a/97suifangqa/staticfiles/images/breadcrumb-dark-grey-button-left-arrow.png b/97suifangqa/staticfiles/images/breadcrumb-dark-grey-button-left-arrow.png Binary files differnew file mode 100644 index 0000000..42432d0 --- /dev/null +++ b/97suifangqa/staticfiles/images/breadcrumb-dark-grey-button-left-arrow.png diff --git a/97suifangqa/staticfiles/images/card-bg-blue.png b/97suifangqa/staticfiles/images/card-bg-blue.png Binary files differnew file mode 100644 index 0000000..51d9a4a --- /dev/null +++ b/97suifangqa/staticfiles/images/card-bg-blue.png diff --git a/97suifangqa/staticfiles/images/card-bg-green.png b/97suifangqa/staticfiles/images/card-bg-green.png Binary files differnew file mode 100644 index 0000000..5e58ccd --- /dev/null +++ b/97suifangqa/staticfiles/images/card-bg-green.png diff --git a/97suifangqa/staticfiles/images/card-bg-grey.png b/97suifangqa/staticfiles/images/card-bg-grey.png Binary files differnew file mode 100644 index 0000000..ce16bcc --- /dev/null +++ b/97suifangqa/staticfiles/images/card-bg-grey.png diff --git a/97suifangqa/staticfiles/images/err.png b/97suifangqa/staticfiles/images/err.png Binary files differnew file mode 100644 index 0000000..26f3d84 --- /dev/null +++ b/97suifangqa/staticfiles/images/err.png diff --git a/97suifangqa/staticfiles/images/green-triangle-down.png b/97suifangqa/staticfiles/images/green-triangle-down.png Binary files differnew file mode 100644 index 0000000..d968129 --- /dev/null +++ b/97suifangqa/staticfiles/images/green-triangle-down.png diff --git a/97suifangqa/staticfiles/images/green-triangle-right.png b/97suifangqa/staticfiles/images/green-triangle-right.png Binary files differnew file mode 100644 index 0000000..80ced50 --- /dev/null +++ b/97suifangqa/staticfiles/images/green-triangle-right.png diff --git a/97suifangqa/staticfiles/images/grey-cross.png b/97suifangqa/staticfiles/images/grey-cross.png Binary files differnew file mode 100644 index 0000000..4a3b955 --- /dev/null +++ b/97suifangqa/staticfiles/images/grey-cross.png diff --git a/97suifangqa/staticfiles/images/grey-heart.png b/97suifangqa/staticfiles/images/grey-heart.png Binary files differnew file mode 100644 index 0000000..734f502 --- /dev/null +++ b/97suifangqa/staticfiles/images/grey-heart.png diff --git a/97suifangqa/staticfiles/images/grey-star.png b/97suifangqa/staticfiles/images/grey-star.png Binary files differnew file mode 100644 index 0000000..d32b246 --- /dev/null +++ b/97suifangqa/staticfiles/images/grey-star.png diff --git a/97suifangqa/staticfiles/images/grey-up-button.png b/97suifangqa/staticfiles/images/grey-up-button.png Binary files differnew file mode 100644 index 0000000..dc27c34 --- /dev/null +++ b/97suifangqa/staticfiles/images/grey-up-button.png diff --git a/97suifangqa/staticfiles/images/horizontal-bar-grey.png b/97suifangqa/staticfiles/images/horizontal-bar-grey.png Binary files differnew file mode 100644 index 0000000..f527e4e --- /dev/null +++ b/97suifangqa/staticfiles/images/horizontal-bar-grey.png diff --git a/97suifangqa/staticfiles/images/icon_down.png b/97suifangqa/staticfiles/images/icon_down.png Binary files differnew file mode 100644 index 0000000..b3685d2 --- /dev/null +++ b/97suifangqa/staticfiles/images/icon_down.png diff --git a/97suifangqa/staticfiles/images/kbb.png b/97suifangqa/staticfiles/images/kbb.png Binary files differnew file mode 100644 index 0000000..3e3e73c --- /dev/null +++ b/97suifangqa/staticfiles/images/kbb.png diff --git a/97suifangqa/staticfiles/images/kbd.png b/97suifangqa/staticfiles/images/kbd.png Binary files differnew file mode 100644 index 0000000..f918fd9 --- /dev/null +++ b/97suifangqa/staticfiles/images/kbd.png diff --git a/97suifangqa/staticfiles/images/khd.png b/97suifangqa/staticfiles/images/khd.png Binary files differnew file mode 100644 index 0000000..1307ec0 --- /dev/null +++ b/97suifangqa/staticfiles/images/khd.png diff --git a/97suifangqa/staticfiles/images/loading.gif b/97suifangqa/staticfiles/images/loading.gif Binary files differnew file mode 100644 index 0000000..07668a2 --- /dev/null +++ b/97suifangqa/staticfiles/images/loading.gif diff --git a/97suifangqa/staticfiles/images/login-menu-popup-pointer.png b/97suifangqa/staticfiles/images/login-menu-popup-pointer.png Binary files differnew file mode 100644 index 0000000..9728ea7 --- /dev/null +++ b/97suifangqa/staticfiles/images/login-menu-popup-pointer.png diff --git a/97suifangqa/staticfiles/images/logo-overlay-white.png b/97suifangqa/staticfiles/images/logo-overlay-white.png Binary files differnew file mode 100644 index 0000000..99b5b31 --- /dev/null +++ b/97suifangqa/staticfiles/images/logo-overlay-white.png diff --git a/97suifangqa/staticfiles/images/logo-overlay.png b/97suifangqa/staticfiles/images/logo-overlay.png Binary files differnew file mode 100644 index 0000000..e50c568 --- /dev/null +++ b/97suifangqa/staticfiles/images/logo-overlay.png diff --git a/97suifangqa/staticfiles/images/modal-dialog-bg.png b/97suifangqa/staticfiles/images/modal-dialog-bg.png Binary files differnew file mode 100644 index 0000000..2f06c8e --- /dev/null +++ b/97suifangqa/staticfiles/images/modal-dialog-bg.png diff --git a/97suifangqa/staticfiles/images/nav-ribbon-tail-cut.png b/97suifangqa/staticfiles/images/nav-ribbon-tail-cut.png Binary files differnew file mode 100644 index 0000000..2a91ad9 --- /dev/null +++ b/97suifangqa/staticfiles/images/nav-ribbon-tail-cut.png diff --git a/97suifangqa/staticfiles/images/paper-pattern.jpg b/97suifangqa/staticfiles/images/paper-pattern.jpg Binary files differnew file mode 100644 index 0000000..aa08278 --- /dev/null +++ b/97suifangqa/staticfiles/images/paper-pattern.jpg diff --git a/97suifangqa/staticfiles/images/popup-text-pointer.png b/97suifangqa/staticfiles/images/popup-text-pointer.png Binary files differnew file mode 100644 index 0000000..953212c --- /dev/null +++ b/97suifangqa/staticfiles/images/popup-text-pointer.png diff --git a/97suifangqa/staticfiles/images/qqlogo.png b/97suifangqa/staticfiles/images/qqlogo.png Binary files differnew file mode 100644 index 0000000..24fd6b0 --- /dev/null +++ b/97suifangqa/staticfiles/images/qqlogo.png diff --git a/97suifangqa/staticfiles/images/righticon.png b/97suifangqa/staticfiles/images/righticon.png Binary files differnew file mode 100644 index 0000000..b4bf323 --- /dev/null +++ b/97suifangqa/staticfiles/images/righticon.png diff --git a/97suifangqa/staticfiles/images/sinalogo.png b/97suifangqa/staticfiles/images/sinalogo.png Binary files differnew file mode 100644 index 0000000..049ef6f --- /dev/null +++ b/97suifangqa/staticfiles/images/sinalogo.png diff --git a/97suifangqa/staticfiles/images/site_logo.png b/97suifangqa/staticfiles/images/site_logo.png Binary files differnew file mode 100644 index 0000000..6b04de1 --- /dev/null +++ b/97suifangqa/staticfiles/images/site_logo.png diff --git a/97suifangqa/staticfiles/images/slilogo.png b/97suifangqa/staticfiles/images/slilogo.png Binary files differnew file mode 100644 index 0000000..e50c568 --- /dev/null +++ b/97suifangqa/staticfiles/images/slilogo.png diff --git a/97suifangqa/staticfiles/images/userPhoto.jpg b/97suifangqa/staticfiles/images/userPhoto.jpg Binary files differnew file mode 100644 index 0000000..a9a8380 --- /dev/null +++ b/97suifangqa/staticfiles/images/userPhoto.jpg diff --git a/97suifangqa/staticfiles/images/white-unhappy-face.png b/97suifangqa/staticfiles/images/white-unhappy-face.png Binary files differnew file mode 100644 index 0000000..c93ca05 --- /dev/null +++ b/97suifangqa/staticfiles/images/white-unhappy-face.png diff --git a/97suifangqa/staticfiles/images/yes.png b/97suifangqa/staticfiles/images/yes.png Binary files differnew file mode 100644 index 0000000..b7f36c2 --- /dev/null +++ b/97suifangqa/staticfiles/images/yes.png diff --git a/97suifangqa/staticfiles/images/zoom.cur b/97suifangqa/staticfiles/images/zoom.cur Binary files differnew file mode 100644 index 0000000..a873e19 --- /dev/null +++ b/97suifangqa/staticfiles/images/zoom.cur diff --git a/97suifangqa/staticfiles/javascripts/css3-mediaqueries.js b/97suifangqa/staticfiles/javascripts/css3-mediaqueries.js new file mode 100644 index 0000000..e745fec --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/css3-mediaqueries.js @@ -0,0 +1,845 @@ +if (typeof Object.create !== "function") { + Object.create = function(o) { + function F() {}; + F.prototype = o; + return new F(); + }; +} +var ua = { + toString: function() { + return navigator.userAgent; + }, + test: function(s) { + return this.toString().toLowerCase().indexOf(s.toLowerCase()) > -1; + } +}; +ua.version = (ua.toString().toLowerCase().match(/[\s\S]+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1]; +ua.webkit = ua.test("webkit"); +ua.gecko = ua.test("gecko") && !ua.webkit; +ua.opera = ua.test("opera"); +ua.ie = ua.test("msie") && !ua.opera; +ua.ie6 = ua.ie && document.compatMode && typeof document.documentElement.style.maxHeight === "undefined"; +ua.ie7 = ua.ie && document.documentElement && typeof document.documentElement.style.maxHeight !== "undefined" && typeof XDomainRequest === "undefined"; +ua.ie8 = ua.ie && typeof XDomainRequest !== "undefined"; +var domReady = function() { + var _1 = []; + var _2 = function() { + if (!arguments.callee.done) { + arguments.callee.done = true; + for (var i = 0; i < _1.length; i++) { + _1[i](); + } + } + }; + if (document.addEventListener) { + document.addEventListener("DOMContentLoaded", _2, false); + } + if (ua.ie) { + (function() { + try { + document.documentElement.doScroll("left"); + } catch (e) { + setTimeout(arguments.callee, 50); + return; + } + _2(); + })(); + document.onreadystatechange = function() { + if (document.readyState === "complete") { + document.onreadystatechange = null; + _2(); + } + }; + } + if (ua.webkit && document.readyState) { + (function() { + if (document.readyState !== "loading") { + _2(); + } else { + setTimeout(arguments.callee, 10); + } + })(); + } + window.onload = _2; + return function(fn) { + if (typeof fn === "function") { + _1[_1.length] = fn; + } + return fn; + }; +}(); +var cssHelper = function() { + var _3 = { + BLOCKS: /[^\s{][^{]*\{(?:[^{}]*\{[^{}]*\}[^{}]*|[^{}]*)*\}/g, + BLOCKS_INSIDE: /[^\s{][^{]*\{[^{}]*\}/g, + DECLARATIONS: /[a-zA-Z\-]+[^;]*:[^;]+;/g, + RELATIVE_URLS: /url\(['"]?([^\/\)'"][^:\)'"]+)['"]?\)/g, + REDUNDANT_COMPONENTS: /(?:\/\*([^*\\\\]|\*(?!\/))+\*\/|@import[^;]+;)/g, + REDUNDANT_WHITESPACE: /\s*(,|:|;|\{|\})\s*/g, + MORE_WHITESPACE: /\s{2,}/g, + FINAL_SEMICOLONS: /;\}/g, + NOT_WHITESPACE: /\S+/g + }; + var _4, _5 = false; + var _6 = []; + var _7 = function(fn) { + if (typeof fn === "function") { + _6[_6.length] = fn; + } + }; + var _8 = function() { + for (var i = 0; i < _6.length; i++) { + _6[i](_4); + } + }; + var _9 = {}; + var _a = function(n, v) { + if (_9[n]) { + var _b = _9[n].listeners; + if (_b) { + for (var i = 0; i < _b.length; i++) { + _b[i](v); + } + } + } + }; + var _c = function(_d, _e, _f) { + if (ua.ie && !window.XMLHttpRequest) { + window.XMLHttpRequest = function() { + return new ActiveXObject("Microsoft.XMLHTTP"); + }; + } + if (!XMLHttpRequest) { + return ""; + } + var r = new XMLHttpRequest(); + try { + r.open("get", _d, true); + r.setRequestHeader("X_REQUESTED_WITH", "XMLHttpRequest"); + } catch (e) { + _f(); + return; + } + var _10 = false; + setTimeout(function() { + _10 = true; + }, 5000); + document.documentElement.style.cursor = "progress"; + r.onreadystatechange = function() { + if (r.readyState === 4 && !_10) { + if (!r.status && location.protocol === "file:" || (r.status >= 200 && r.status < 300) || r.status === 304 || navigator.userAgent.indexOf("Safari") > -1 && typeof r.status === "undefined") { + _e(r.responseText); + } else { + _f(); + } + document.documentElement.style.cursor = ""; + r = null; + } + }; + r.send(""); + }; + var _11 = function(_12) { + _12 = _12.replace(_3.REDUNDANT_COMPONENTS, ""); + _12 = _12.replace(_3.REDUNDANT_WHITESPACE, "$1"); + _12 = _12.replace(_3.MORE_WHITESPACE, " "); + _12 = _12.replace(_3.FINAL_SEMICOLONS, "}"); + return _12; + }; + var _13 = { + mediaQueryList: function(s) { + var o = {}; + var idx = s.indexOf("{"); + var lt = s.substring(0, idx); + s = s.substring(idx + 1, s.length - 1); + var mqs = [], + rs = []; + var qts = lt.toLowerCase().substring(7).split(","); + for (var i = 0; i < qts.length; i++) { + mqs[mqs.length] = _13.mediaQuery(qts[i], o); + } + var rts = s.match(_3.BLOCKS_INSIDE); + if (rts !== null) { + for (i = 0; i < rts.length; i++) { + rs[rs.length] = _13.rule(rts[i], o); + } + } + o.getMediaQueries = function() { + return mqs; + }; + o.getRules = function() { + return rs; + }; + o.getListText = function() { + return lt; + }; + o.getCssText = function() { + return s; + }; + return o; + }, + mediaQuery: function(s, mql) { + s = s || ""; + var not = false, + _14; + var exp = []; + var _15 = true; + var _16 = s.match(_3.NOT_WHITESPACE); + for (var i = 0; i < _16.length; i++) { + var _17 = _16[i]; + if (!_14 && (_17 === "not" || _17 === "only")) { + if (_17 === "not") { + not = true; + } + } else { + if (!_14) { + _14 = _17; + } else { + if (_17.charAt(0) === "(") { + var _18 = _17.substring(1, _17.length - 1).split(":"); + exp[exp.length] = { + mediaFeature: _18[0], + value: _18[1] || null + }; + } + } + } + } + return { + getList: function() { + return mql || null; + }, + getValid: function() { + return _15; + }, + getNot: function() { + return not; + }, + getMediaType: function() { + return _14; + }, + getExpressions: function() { + return exp; + } + }; + }, + rule: function(s, mql) { + var o = {}; + var idx = s.indexOf("{"); + var st = s.substring(0, idx); + var ss = st.split(","); + var ds = []; + var dts = s.substring(idx + 1, s.length - 1).split(";"); + for (var i = 0; i < dts.length; i++) { + ds[ds.length] = _13.declaration(dts[i], o); + } + o.getMediaQueryList = function() { + return mql || null; + }; + o.getSelectors = function() { + return ss; + }; + o.getSelectorText = function() { + return st; + }; + o.getDeclarations = function() { + return ds; + }; + o.getPropertyValue = function(n) { + for (var i = 0; i < ds.length; i++) { + if (ds[i].getProperty() === n) { + return ds[i].getValue(); + } + } + return null; + }; + return o; + }, + declaration: function(s, r) { + var idx = s.indexOf(":"); + var p = s.substring(0, idx); + var v = s.substring(idx + 1); + return { + getRule: function() { + return r || null; + }, + getProperty: function() { + return p; + }, + getValue: function() { + return v; + } + }; + } + }; + var _19 = function(el) { + if (typeof el.cssHelperText !== "string") { + return; + } + var o = { + mediaQueryLists: [], + rules: [], + selectors: {}, + declarations: [], + properties: {} + }; + var _1a = o.mediaQueryLists; + var ors = o.rules; + var _1b = el.cssHelperText.match(_3.BLOCKS); + if (_1b !== null) { + for (var i = 0; i < _1b.length; i++) { + if (_1b[i].substring(0, 7) === "@media ") { + _1a[_1a.length] = _13.mediaQueryList(_1b[i]); + ors = o.rules = ors.concat(_1a[_1a.length - 1].getRules()); + } else { + ors[ors.length] = _13.rule(_1b[i]); + } + } + } + var oss = o.selectors; + var _1c = function(r) { + var ss = r.getSelectors(); + for (var i = 0; i < ss.length; i++) { + var n = ss[i]; + if (!oss[n]) { + oss[n] = []; + } + oss[n][oss[n].length] = r; + } + }; + for (i = 0; i < ors.length; i++) { + _1c(ors[i]); + } + var ods = o.declarations; + for (i = 0; i < ors.length; i++) { + ods = o.declarations = ods.concat(ors[i].getDeclarations()); + } + var ops = o.properties; + for (i = 0; i < ods.length; i++) { + var n = ods[i].getProperty(); + if (!ops[n]) { + ops[n] = []; + } + ops[n][ops[n].length] = ods[i]; + } + el.cssHelperParsed = o; + _4[_4.length] = el; + return o; + }; + var _1d = function(el, s) { + el.cssHelperText = _11(s || el.innerHTML); + return _19(el); + }; + var _1e = function() { + _5 = true; + _4 = []; + var _1f = []; + var _20 = function() { + for (var i = 0; i < _1f.length; i++) { + _19(_1f[i]); + } + var _21 = document.getElementsByTagName("style"); + for (i = 0; i < _21.length; i++) { + _1d(_21[i]); + } + _5 = false; + _8(); + }; + var _22 = document.getElementsByTagName("link"); + for (var i = 0; i < _22.length; i++) { + var _23 = _22[i]; + if (_23.getAttribute("rel").indexOf("style") > -1 && _23.href && _23.href.length !== 0 && !_23.disabled) { + _1f[_1f.length] = _23; + } + } + if (_1f.length > 0) { + var c = 0; + var _24 = function() { + c++; + if (c === _1f.length) { + _20(); + } + }; + var _25 = function(_26) { + var _27 = _26.href; + _c(_27, function(_28) { + _28 = _11(_28).replace(_3.RELATIVE_URLS, "url(" + _27.substring(0, _27.lastIndexOf("/")) + "/$1)"); + _26.cssHelperText = _28; + _24(); + }, _24); + }; + for (i = 0; i < _1f.length; i++) { + _25(_1f[i]); + } + } else { + _20(); + } + }; + var _29 = { + mediaQueryLists: "array", + rules: "array", + selectors: "object", + declarations: "array", + properties: "object" + }; + var _2a = { + mediaQueryLists: null, + rules: null, + selectors: null, + declarations: null, + properties: null + }; + var _2b = function(_2c, v) { + if (_2a[_2c] !== null) { + if (_29[_2c] === "array") { + return (_2a[_2c] = _2a[_2c].concat(v)); + } else { + var c = _2a[_2c]; + for (var n in v) { + if (v.hasOwnProperty(n)) { + if (!c[n]) { + c[n] = v[n]; + } else { + c[n] = c[n].concat(v[n]); + } + } + } + return c; + } + } + }; + var _2d = function(_2e) { + _2a[_2e] = (_29[_2e] === "array") ? [] : {}; + for (var i = 0; i < _4.length; i++) { + _2b(_2e, _4[i].cssHelperParsed[_2e]); + } + return _2a[_2e]; + }; + domReady(function() { + var els = document.body.getElementsByTagName("*"); + for (var i = 0; i < els.length; i++) { + els[i].checkedByCssHelper = true; + } + if (document.implementation.hasFeature("MutationEvents", "2.0") || window.MutationEvent) { + document.body.addEventListener("DOMNodeInserted", function(e) { + var el = e.target; + if (el.nodeType === 1) { + _a("DOMElementInserted", el); + el.checkedByCssHelper = true; + } + }, false); + } else { + setInterval(function() { + var els = document.body.getElementsByTagName("*"); + for (var i = 0; i < els.length; i++) { + if (!els[i].checkedByCssHelper) { + _a("DOMElementInserted", els[i]); + els[i].checkedByCssHelper = true; + } + } + }, 1000); + } + }); + var _2f = function(d) { + if (typeof window.innerWidth != "undefined") { + return window["inner" + d]; + } else { + if (typeof document.documentElement != "undefined" && typeof document.documentElement.clientWidth != "undefined" && document.documentElement.clientWidth != 0) { + return document.documentElement["client" + d]; + } + } + }; + return { + addStyle: function(s, _30) { + var el = document.createElement("style"); + el.setAttribute("type", "text/css"); + document.getElementsByTagName("head")[0].appendChild(el); + if (el.styleSheet) { + el.styleSheet.cssText = s; + } else { + el.appendChild(document.createTextNode(s)); + } + el.addedWithCssHelper = true; + if (typeof _30 === "undefined" || _30 === true) { + cssHelper.parsed(function(_31) { + var o = _1d(el, s); + for (var n in o) { + if (o.hasOwnProperty(n)) { + _2b(n, o[n]); + } + } + _a("newStyleParsed", el); + }); + } else { + el.parsingDisallowed = true; + } + return el; + }, + removeStyle: function(el) { + return el.parentNode.removeChild(el); + }, + parsed: function(fn) { + if (_5) { + _7(fn); + } else { + if (typeof _4 !== "undefined") { + if (typeof fn === "function") { + fn(_4); + } + } else { + _7(fn); + _1e(); + } + } + }, + mediaQueryLists: function(fn) { + cssHelper.parsed(function(_32) { + fn(_2a.mediaQueryLists || _2d("mediaQueryLists")); + }); + }, + rules: function(fn) { + cssHelper.parsed(function(_33) { + fn(_2a.rules || _2d("rules")); + }); + }, + selectors: function(fn) { + cssHelper.parsed(function(_34) { + fn(_2a.selectors || _2d("selectors")); + }); + }, + declarations: function(fn) { + cssHelper.parsed(function(_35) { + fn(_2a.declarations || _2d("declarations")); + }); + }, + properties: function(fn) { + cssHelper.parsed(function(_36) { + fn(_2a.properties || _2d("properties")); + }); + }, + broadcast: _a, + addListener: function(n, fn) { + if (typeof fn === "function") { + if (!_9[n]) { + _9[n] = { + listeners: [] + }; + } + _9[n].listeners[_9[n].listeners.length] = fn; + } + }, + removeListener: function(n, fn) { + if (typeof fn === "function" && _9[n]) { + var ls = _9[n].listeners; + for (var i = 0; i < ls.length; i++) { + if (ls[i] === fn) { + ls.splice(i, 1); + i -= 1; + } + } + } + }, + getViewportWidth: function() { + return _2f("Width"); + }, + getViewportHeight: function() { + return _2f("Height"); + } + }; +}(); +domReady(function enableCssMediaQueries() { + var _37; + var _38 = { + LENGTH_UNIT: /[0-9]+(em|ex|px|in|cm|mm|pt|pc)$/, + RESOLUTION_UNIT: /[0-9]+(dpi|dpcm)$/, + ASPECT_RATIO: /^[0-9]+\/[0-9]+$/, + ABSOLUTE_VALUE: /^[0-9]*(\.[0-9]+)*$/ + }; + var _39 = []; + var _3a = function() { + var id = "css3-mediaqueries-test"; + var el = document.createElement("div"); + el.id = id; + var _3b = cssHelper.addStyle("@media all and (width) { #" + id + " { width: 1px !important; } }", false); + document.body.appendChild(el); + var ret = el.offsetWidth === 1; + _3b.parentNode.removeChild(_3b); + el.parentNode.removeChild(el); + _3a = function() { + return ret; + }; + return ret; + }; + var _3c = function() { + _37 = document.createElement("div"); + _37.style.cssText = "position:absolute;top:-9999em;left:-9999em;" + "margin:0;border:none;padding:0;width:1em;font-size:1em;"; + document.body.appendChild(_37); + if (_37.offsetWidth !== 16) { + _37.style.fontSize = 16 / _37.offsetWidth + "em"; + } + _37.style.width = ""; + }; + var _3d = function(_3e) { + _37.style.width = _3e; + var _3f = _37.offsetWidth; + _37.style.width = ""; + return _3f; + }; + var _40 = function(_41, _42) { + var l = _41.length; + var min = (_41.substring(0, 4) === "min-"); + var max = (!min && _41.substring(0, 4) === "max-"); + if (_42 !== null) { + var _43; + var _44; + if (_38.LENGTH_UNIT.exec(_42)) { + _43 = "length"; + _44 = _3d(_42); + } else { + if (_38.RESOLUTION_UNIT.exec(_42)) { + _43 = "resolution"; + _44 = parseInt(_42, 10); + var _45 = _42.substring((_44 + "").length); + } else { + if (_38.ASPECT_RATIO.exec(_42)) { + _43 = "aspect-ratio"; + _44 = _42.split("/"); + } else { + if (_38.ABSOLUTE_VALUE) { + _43 = "absolute"; + _44 = _42; + } else { + _43 = "unknown"; + } + } + } + } + } + var _46, _47; + if ("device-width" === _41.substring(l - 12, l)) { + _46 = screen.width; + if (_42 !== null) { + if (_43 === "length") { + return ((min && _46 >= _44) || (max && _46 < _44) || (!min && !max && _46 === _44)); + } else { + return false; + } + } else { + return _46 > 0; + } + } else { + if ("device-height" === _41.substring(l - 13, l)) { + _47 = screen.height; + if (_42 !== null) { + if (_43 === "length") { + return ((min && _47 >= _44) || (max && _47 < _44) || (!min && !max && _47 === _44)); + } else { + return false; + } + } else { + return _47 > 0; + } + } else { + if ("width" === _41.substring(l - 5, l)) { + _46 = document.documentElement.clientWidth || document.body.clientWidth; + if (_42 !== null) { + if (_43 === "length") { + return ((min && _46 >= _44) || (max && _46 < _44) || (!min && !max && _46 === _44)); + } else { + return false; + } + } else { + return _46 > 0; + } + } else { + if ("height" === _41.substring(l - 6, l)) { + _47 = document.documentElement.clientHeight || document.body.clientHeight; + if (_42 !== null) { + if (_43 === "length") { + return ((min && _47 >= _44) || (max && _47 < _44) || (!min && !max && _47 === _44)); + } else { + return false; + } + } else { + return _47 > 0; + } + } else { + if ("device-aspect-ratio" === _41.substring(l - 19, l)) { + return _43 === "aspect-ratio" && screen.width * _44[1] === screen.height * _44[0]; + } else { + if ("color-index" === _41.substring(l - 11, l)) { + var _48 = Math.pow(2, screen.colorDepth); + if (_42 !== null) { + if (_43 === "absolute") { + return ((min && _48 >= _44) || (max && _48 < _44) || (!min && !max && _48 === _44)); + } else { + return false; + } + } else { + return _48 > 0; + } + } else { + if ("color" === _41.substring(l - 5, l)) { + var _49 = screen.colorDepth; + if (_42 !== null) { + if (_43 === "absolute") { + return ((min && _49 >= _44) || (max && _49 < _44) || (!min && !max && _49 === _44)); + } else { + return false; + } + } else { + return _49 > 0; + } + } else { + if ("resolution" === _41.substring(l - 10, l)) { + var res; + if (_45 === "dpcm") { + res = _3d("1cm"); + } else { + res = _3d("1in"); + } + if (_42 !== null) { + if (_43 === "resolution") { + return ((min && res >= _44) || (max && res < _44) || (!min && !max && res === _44)); + } else { + return false; + } + } else { + return res > 0; + } + } else { + return false; + } + } + } + } + } + } + } + } + }; + var _4a = function(mq) { + var _4b = mq.getValid(); + var _4c = mq.getExpressions(); + var l = _4c.length; + if (l > 0) { + for (var i = 0; i < l && _4b; i++) { + _4b = _40(_4c[i].mediaFeature, _4c[i].value); + } + var not = mq.getNot(); + return (_4b && !not || not && !_4b); + } + }; + var _4d = function(mql) { + var mqs = mql.getMediaQueries(); + var t = {}; + for (var i = 0; i < mqs.length; i++) { + if (_4a(mqs[i])) { + t[mqs[i].getMediaType()] = true; + } + } + var s = [], + c = 0; + for (var n in t) { + if (t.hasOwnProperty(n)) { + if (c > 0) { + s[c++] = ","; + } + s[c++] = n; + } + } + if (s.length > 0) { + _39[_39.length] = cssHelper.addStyle("@media " + s.join("") + "{" + mql.getCssText() + "}", false); + } + }; + var _4e = function(_4f) { + for (var i = 0; i < _4f.length; i++) { + _4d(_4f[i]); + } + if (ua.ie) { + document.documentElement.style.display = "block"; + setTimeout(function() { + document.documentElement.style.display = ""; + }, 0); + setTimeout(function() { + cssHelper.broadcast("cssMediaQueriesTested"); + }, 100); + } else { + cssHelper.broadcast("cssMediaQueriesTested"); + } + }; + var _50 = function() { + for (var i = 0; i < _39.length; i++) { + cssHelper.removeStyle(_39[i]); + } + _39 = []; + cssHelper.mediaQueryLists(_4e); + }; + var _51 = 0; + var _52 = function() { + var _53 = cssHelper.getViewportWidth(); + var _54 = cssHelper.getViewportHeight(); + if (ua.ie) { + var el = document.createElement("div"); + el.style.position = "absolute"; + el.style.top = "-9999em"; + el.style.overflow = "scroll"; + document.body.appendChild(el); + _51 = el.offsetWidth - el.clientWidth; + document.body.removeChild(el); + } + var _55; + var _56 = function() { + var vpw = cssHelper.getViewportWidth(); + var vph = cssHelper.getViewportHeight(); + if (Math.abs(vpw - _53) > _51 || Math.abs(vph - _54) > _51) { + _53 = vpw; + _54 = vph; + clearTimeout(_55); + _55 = setTimeout(function() { + if (!_3a()) { + _50(); + } else { + cssHelper.broadcast("cssMediaQueriesTested"); + } + }, 500); + } + }; + window.onresize = function() { + var x = window.onresize || function() {}; + return function() { + x(); + _56(); + }; + }(); + }; + var _57 = document.documentElement; + _57.style.marginLeft = "-32767px"; + setTimeout(function() { + _57.style.marginTop = ""; + }, 20000); + return function() { + if (!_3a()) { + cssHelper.addListener("newStyleParsed", function(el) { + _4e(el.cssHelperParsed.mediaQueryLists); + }); + cssHelper.addListener("cssMediaQueriesTested", function() { + if (ua.ie) { + _57.style.width = "1px"; + } + setTimeout(function() { + _57.style.width = ""; + _57.style.marginLeft = ""; + }, 0); + cssHelper.removeListener("cssMediaQueriesTested", arguments.callee); + }); + _3c(); + _50(); + } else { + _57.style.marginLeft = ""; + } + _52(); + }; +}()); +try { + document.execCommand("BackgroundImageCache", false, true); +} catch (e) {}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/javascripts/html5shiv.js b/97suifangqa/staticfiles/javascripts/html5shiv.js new file mode 100755 index 0000000..f795a8a --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/html5shiv.js @@ -0,0 +1,8 @@ +/* + HTML5 Shiv v3.6.2pre | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed +*/ +(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag(); +a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}</style>"; +c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode|| +"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup main mark meter nav output progress section summary time video",version:"3.6.2pre",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,b){a||(a=f);if(g)return a.createDocumentFragment(); +for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document); diff --git a/97suifangqa/staticfiles/javascripts/jargon-display.js b/97suifangqa/staticfiles/javascripts/jargon-display.js new file mode 100644 index 0000000..c1af712 --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/jargon-display.js @@ -0,0 +1,132 @@ +//Jargon display +function jargon_display(annotations) { + var make_jargon_entry = function(j) { + var li = $('<li><a href="#jargon-' + j.id + '">'+j.name+'</a></li>'); + $('a', li).data('jargon', j); + return li; + }; + + $.each(annotations, function(id, pn) { + if (pn.type == 0 ) { + /* 段落注释 */ + $("#paracomments-list").append(make_jargon_entry(pn)); + } else { + $("#propernouns-list").append(make_jargon_entry(pn)); + $("p").each(function (i, elm) { + p = $(elm); + p.html(p.html(). + replace(pn.name, '<a class="jargon" href="#jargon-'+id+'">'+pn.name+'</a>')); + }); + } + }); + + var jargonRoot = $(".jargons"); + var jargonDisplayBox = $('#content .jargon-explanation-box'); + if (jargonRoot.size() == 0 || jargonDisplayBox.size() == 0 ) + return; + + jargonDisplayBox.bind("setdata", function(evt, jargon) { + var text = jargon.is_collected ? "点击取消收藏" : "收藏该注释"; + text += '(已有' + jargon.collected_times + '人收藏)'; + jargonDisplayBox.data('jargon', jargon); + $(".name", $(this)).text(jargon.name); + $(".jargon-details", $(this)).html(jargon.content); + if (jargon.type == 0){$("a.collect", $(this)).hide()} + else {$("a.collect", $(this)).text(text).show()} + /* Maxwell modified */ + }) + + $('a.collect', jargonDisplayBox).click(function() { + var jargon = jargonDisplayBox.data('jargon'); + if (jargon.type == 0) { + /* 段落注释不添加收藏功能 */ + return ; + } + var button = $(this); + var url = '/blog/annotation/'+jargon.id+'/collect'; + $.ajax({ + url:url, + dataType:'json', + success: function(data) { + var origjargon = jargonDisplayBox.data('jargon'); + origjargon.is_collected = data.added; + origjargon.collected_times = data.times; + jargonDisplayBox.trigger('setdata', origjargon); + } + }); + }); + + function setJargonBoxPosition(position) { + if (position) { + jargonDisplayBox.css('margin-top', ''); + jargonDisplayBox.css('top', position['top']); + jargonDisplayBox.find('.text-pointer').css('left', position['left']); + jargonDisplayBox.removeClass('modal'); + }else{ + jargonDisplayBox.css('margin-top', - jargonDisplayBox.outerHeight() / 2); + jargonDisplayBox.addClass('modal'); + $("#modal-page-overlay").removeClass('hidden'); + $('body').addClass('modal-active'); + } + } + + function closeJargonBox() { + jargonDisplayBox.removeClass('open'); + $("#modal-page-overlay").addClass('hidden'); + $('body').removeClass('modal-active'); + jargonDisplayBox.removeClass('loaded'); + currentJargonKey = null; + } + + function showJargonExplanation(jargon, position) { + jargonDisplayBox.addClass('open'); + setJargonBoxPosition(position); + + jargonDisplayBox.trigger('setdata', jargon) + jargonDisplayBox.addClass('loaded'); + } + + jargonDisplayBox.click(function(e) { + e.stopPropagation(); + }) + $('body').click(closeJargonBox); + jargonDisplayBox.find('.close-box').click(closeJargonBox); + + function inlinePos(elem) { + var el = $('<i/>').css('display','inline').insertBefore(elem); + var pos = el.position(); + var outerHeight = el.outerHeight() + el.remove(); + return [pos, outerHeight]; + }; + var maxWidth = jargonRoot.innerWidth(); + + $('a.jargon').each(function() { + var id = $(this).attr('href').substr($(this).attr('href').search('-')+1); + $(this).data('jargon', annotations[id]); + }).click(function(e) { + e.stopPropagation(); + e.preventDefault(); + var link = $(this); + var info = inlinePos(link); + var pos = info[0]; + var outerHeight = info[1]; + pos['top'] += outerHeight; + var trueWidth = link.outerWidth(); + if (trueWidth > (maxWidth - pos['left'])) + trueWidth = maxWidth - pos['left']; + + pos['left'] = pos['left'] + trueWidth / 2; + if (pos['left'] < 10) pos['left'] = 10; + showJargonExplanation(link.data('jargon'), pos); + }) + + $(".jargon-links a").filter(function() { + return $(this).attr('href') && $(this).attr('href').indexOf('#') == 0; + }).click(function(e) { + e.stopPropagation(); + e.preventDefault(); + showJargonExplanation($(this).data('jargon')); + }) +} + diff --git a/97suifangqa/staticfiles/javascripts/jquery-1.9.0.min.js b/97suifangqa/staticfiles/javascripts/jquery-1.9.0.min.js new file mode 100644 index 0000000..50d1b22 --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/jquery-1.9.0.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.9.0 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license */(function(e,t){"use strict";function n(e){var t=e.length,n=st.type(e);return st.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e){var t=Tt[e]={};return st.each(e.match(lt)||[],function(e,n){t[n]=!0}),t}function i(e,n,r,i){if(st.acceptData(e)){var o,a,s=st.expando,u="string"==typeof n,l=e.nodeType,c=l?st.cache:e,f=l?e[s]:e[s]&&s;if(f&&c[f]&&(i||c[f].data)||!u||r!==t)return f||(l?e[s]=f=K.pop()||st.guid++:f=s),c[f]||(c[f]={},l||(c[f].toJSON=st.noop)),("object"==typeof n||"function"==typeof n)&&(i?c[f]=st.extend(c[f],n):c[f].data=st.extend(c[f].data,n)),o=c[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[st.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[st.camelCase(n)])):a=o,a}}function o(e,t,n){if(st.acceptData(e)){var r,i,o,a=e.nodeType,u=a?st.cache:e,l=a?e[st.expando]:st.expando;if(u[l]){if(t&&(r=n?u[l]:u[l].data)){st.isArray(t)?t=t.concat(st.map(t,st.camelCase)):t in r?t=[t]:(t=st.camelCase(t),t=t in r?[t]:t.split(" "));for(i=0,o=t.length;o>i;i++)delete r[t[i]];if(!(n?s:st.isEmptyObject)(r))return}(n||(delete u[l].data,s(u[l])))&&(a?st.cleanData([e],!0):st.support.deleteExpando||u!=u.window?delete u[l]:u[l]=null)}}}function a(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(Nt,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:wt.test(r)?st.parseJSON(r):r}catch(o){}st.data(e,n,r)}else r=t}return r}function s(e){var t;for(t in e)if(("data"!==t||!st.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function u(){return!0}function l(){return!1}function c(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function f(e,t,n){if(t=t||0,st.isFunction(t))return st.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return st.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=st.grep(e,function(e){return 1===e.nodeType});if(Wt.test(t))return st.filter(t,r,!n);t=st.filter(t,r)}return st.grep(e,function(e){return st.inArray(e,t)>=0===n})}function p(e){var t=zt.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function d(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function h(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function g(e){var t=nn.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function m(e,t){for(var n,r=0;null!=(n=e[r]);r++)st._data(n,"globalEval",!t||st._data(t[r],"globalEval"))}function y(e,t){if(1===t.nodeType&&st.hasData(e)){var n,r,i,o=st._data(e),a=st._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)st.event.add(t,n,s[n][r])}a.data&&(a.data=st.extend({},a.data))}}function v(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!st.support.noCloneEvent&&t[st.expando]){r=st._data(t);for(i in r.events)st.removeEvent(t,i,r.handle);t.removeAttribute(st.expando)}"script"===n&&t.text!==e.text?(h(t).text=e.text,g(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),st.support.html5Clone&&e.innerHTML&&!st.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Zt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}function b(e,n){var r,i,o=0,a=e.getElementsByTagName!==t?e.getElementsByTagName(n||"*"):e.querySelectorAll!==t?e.querySelectorAll(n||"*"):t;if(!a)for(a=[],r=e.childNodes||e;null!=(i=r[o]);o++)!n||st.nodeName(i,n)?a.push(i):st.merge(a,b(i,n));return n===t||n&&st.nodeName(e,n)?st.merge([e],a):a}function x(e){Zt.test(e.type)&&(e.defaultChecked=e.checked)}function T(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Nn.length;i--;)if(t=Nn[i]+n,t in e)return t;return r}function w(e,t){return e=t||e,"none"===st.css(e,"display")||!st.contains(e.ownerDocument,e)}function N(e,t){for(var n,r=[],i=0,o=e.length;o>i;i++)n=e[i],n.style&&(r[i]=st._data(n,"olddisplay"),t?(r[i]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&w(n)&&(r[i]=st._data(n,"olddisplay",S(n.nodeName)))):r[i]||w(n)||st._data(n,"olddisplay",st.css(n,"display")));for(i=0;o>i;i++)n=e[i],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?r[i]||"":"none"));return e}function C(e,t,n){var r=mn.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;4>o;o+=2)"margin"===n&&(a+=st.css(e,n+wn[o],!0,i)),r?("content"===n&&(a-=st.css(e,"padding"+wn[o],!0,i)),"margin"!==n&&(a-=st.css(e,"border"+wn[o]+"Width",!0,i))):(a+=st.css(e,"padding"+wn[o],!0,i),"padding"!==n&&(a+=st.css(e,"border"+wn[o]+"Width",!0,i)));return a}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=ln(e),a=st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=un(e,t,o),(0>i||null==i)&&(i=e.style[t]),yn.test(i))return i;r=a&&(st.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+k(e,t,n||(a?"border":"content"),r,o)+"px"}function S(e){var t=V,n=bn[e];return n||(n=A(e,t),"none"!==n&&n||(cn=(cn||st("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(cn[0].contentWindow||cn[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=A(e,t),cn.detach()),bn[e]=n),n}function A(e,t){var n=st(t.createElement(e)).appendTo(t.body),r=st.css(n[0],"display");return n.remove(),r}function j(e,t,n,r){var i;if(st.isArray(t))st.each(t,function(t,i){n||kn.test(e)?r(e,i):j(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==st.type(t))r(e,t);else for(i in t)j(e+"["+i+"]",t[i],n,r)}function D(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(lt)||[];if(st.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function L(e,n,r,i){function o(u){var l;return a[u]=!0,st.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||s||a[c]?s?!(l=c):t:(n.dataTypes.unshift(c),o(c),!1)}),l}var a={},s=e===$n;return o(n.dataTypes[0])||!a["*"]&&o("*")}function H(e,n){var r,i,o=st.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);return i&&st.extend(!0,e,i),e}function M(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(o in c)o in r&&(n[c[o]]=r[o]);for(;"*"===l[0];)l.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("Content-Type"));if(i)for(o in u)if(u[o]&&u[o].test(i)){l.unshift(o);break}if(l[0]in r)a=l[0];else{for(o in r){if(!l[0]||e.converters[o+" "+l[0]]){a=o;break}s||(s=o)}a=a||s}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function q(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=u[++s];)if("*"!==i){if("*"!==l&&l!==i){if(n=a[l+" "+i]||a["* "+i],!n)for(r in a)if(o=r.split(" "),o[1]===i&&(n=a[l+" "+o[0]]||a["* "+o[0]])){n===!0?n=a[r]:a[r]!==!0&&(i=o[0],u.splice(s--,0,i));break}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(c){return{state:"parsererror",error:n?c:"No conversion from "+l+" to "+i}}}l=i}return{state:"success",data:t}}function _(){try{return new e.XMLHttpRequest}catch(t){}}function F(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function O(){return setTimeout(function(){Qn=t}),Qn=st.now()}function B(e,t){st.each(t,function(t,n){for(var r=(rr[t]||[]).concat(rr["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function P(e,t,n){var r,i,o=0,a=nr.length,s=st.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Qn||O(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:st.extend({},t),opts:st.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Qn||O(),duration:n.duration,tweens:[],createTween:function(t,n){var r=st.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(R(c,l.opts.specialEasing);a>o;o++)if(r=nr[o].call(l,e,c,l.opts))return r;return B(l,c),st.isFunction(l.opts.start)&&l.opts.start.call(e,l),st.fx.timer(st.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function R(e,t){var n,r,i,o,a;for(n in e)if(r=st.camelCase(n),i=t[r],o=e[n],st.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=st.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function W(e,t,n){var r,i,o,a,s,u,l,c,f,p=this,d=e.style,h={},g=[],m=e.nodeType&&w(e);n.queue||(c=st._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,f=c.empty.fire,c.empty.fire=function(){c.unqueued||f()}),c.unqueued++,p.always(function(){p.always(function(){c.unqueued--,st.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===st.css(e,"display")&&"none"===st.css(e,"float")&&(st.support.inlineBlockNeedsLayout&&"inline"!==S(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",st.support.shrinkWrapBlocks||p.done(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Zn.exec(o)){if(delete t[r],u=u||"toggle"===o,o===(m?"hide":"show"))continue;g.push(r)}if(a=g.length){s=st._data(e,"fxshow")||st._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?st(e).show():p.done(function(){st(e).hide()}),p.done(function(){var t;st._removeData(e,"fxshow");for(t in h)st.style(e,t,h[t])});for(r=0;a>r;r++)i=g[r],l=p.createTween(i,m?s[i]:0),h[i]=s[i]||st.style(e,i),i in s||(s[i]=l.start,m&&(l.end=l.start,l.start="width"===i||"height"===i?1:0))}}function $(e,t,n,r,i){return new $.prototype.init(e,t,n,r,i)}function I(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=wn[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function z(e){return st.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var X,U,V=e.document,Y=e.location,J=e.jQuery,G=e.$,Q={},K=[],Z="1.9.0",et=K.concat,tt=K.push,nt=K.slice,rt=K.indexOf,it=Q.toString,ot=Q.hasOwnProperty,at=Z.trim,st=function(e,t){return new st.fn.init(e,t,X)},ut=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,lt=/\S+/g,ct=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ft=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,pt=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,dt=/^[\],:{}\s]*$/,ht=/(?:^|:|,)(?:\s*\[)+/g,gt=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,mt=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,yt=/^-ms-/,vt=/-([\da-z])/gi,bt=function(e,t){return t.toUpperCase()},xt=function(){V.addEventListener?(V.removeEventListener("DOMContentLoaded",xt,!1),st.ready()):"complete"===V.readyState&&(V.detachEvent("onreadystatechange",xt),st.ready())};st.fn=st.prototype={jquery:Z,constructor:st,init:function(e,n,r){var i,o;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ft.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof st?n[0]:n,st.merge(this,st.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:V,!0)),pt.test(i[1])&&st.isPlainObject(n))for(i in n)st.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(o=V.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=V,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):st.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),st.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return nt.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=st.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return st.each(this,e,t)},ready:function(e){return st.ready.promise().done(e),this},slice:function(){return this.pushStack(nt.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(st.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:tt,sort:[].sort,splice:[].splice},st.fn.init.prototype=st.fn,st.extend=st.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||st.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(e=arguments[u]))for(n in e)r=s[n],i=e[n],s!==i&&(c&&i&&(st.isPlainObject(i)||(o=st.isArray(i)))?(o?(o=!1,a=r&&st.isArray(r)?r:[]):a=r&&st.isPlainObject(r)?r:{},s[n]=st.extend(c,a,i)):i!==t&&(s[n]=i));return s},st.extend({noConflict:function(t){return e.$===st&&(e.$=G),t&&e.jQuery===st&&(e.jQuery=J),st},isReady:!1,readyWait:1,holdReady:function(e){e?st.readyWait++:st.ready(!0)},ready:function(e){if(e===!0?!--st.readyWait:!st.isReady){if(!V.body)return setTimeout(st.ready);st.isReady=!0,e!==!0&&--st.readyWait>0||(U.resolveWith(V,[st]),st.fn.trigger&&st(V).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===st.type(e)},isArray:Array.isArray||function(e){return"array"===st.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?Q[it.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==st.type(e)||e.nodeType||st.isWindow(e))return!1;try{if(e.constructor&&!ot.call(e,"constructor")&&!ot.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||ot.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||V;var r=pt.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=st.buildFragment([e],t,i),i&&st(i).remove(),st.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=st.trim(n),n&&dt.test(n.replace(gt,"@").replace(mt,"]").replace(ht,"")))?Function("return "+n)():(st.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||st.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&st.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(yt,"ms-").replace(vt,bt)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,a=e.length,s=n(e);if(r){if(s)for(;a>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(s)for(;a>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:at&&!at.call("\ufeff\u00a0")?function(e){return null==e?"":at.call(e)}:function(e){return null==e?"":(e+"").replace(ct,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?st.merge(r,"string"==typeof e?[e]:e):tt.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(rt)return rt.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,a=e.length,s=n(e),u=[];if(s)for(;a>o;o++)i=t(e[o],o,r),null!=i&&(u[u.length]=i);else for(o in e)i=t(e[o],o,r),null!=i&&(u[u.length]=i);return et.apply([],u)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),st.isFunction(e)?(i=nt.call(arguments,2),o=function(){return e.apply(n||this,i.concat(nt.call(arguments)))},o.guid=e.guid=e.guid||st.guid++,o):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===st.type(r)){o=!0;for(u in r)st.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,st.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(st(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),st.ready.promise=function(t){if(!U)if(U=st.Deferred(),"complete"===V.readyState)setTimeout(st.ready);else if(V.addEventListener)V.addEventListener("DOMContentLoaded",xt,!1),e.addEventListener("load",st.ready,!1);else{V.attachEvent("onreadystatechange",xt),e.attachEvent("onload",st.ready);var n=!1;try{n=null==e.frameElement&&V.documentElement}catch(r){}n&&n.doScroll&&function i(){if(!st.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}st.ready()}}()}return U.promise(t)},st.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){Q["[object "+t+"]"]=t.toLowerCase()}),X=st(V);var Tt={};st.Callbacks=function(e){e="string"==typeof e?Tt[e]||r(e):st.extend({},e);var n,i,o,a,s,u,l=[],c=!e.once&&[],f=function(t){for(n=e.memory&&t,i=!0,u=a||0,a=0,s=l.length,o=!0;l&&s>u;u++)if(l[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,l&&(c?c.length&&f(c.shift()):n?l=[]:p.disable())},p={add:function(){if(l){var t=l.length;(function r(t){st.each(t,function(t,n){var i=st.type(n);"function"===i?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==i&&r(n)})})(arguments),o?s=l.length:n&&(a=t,f(n))}return this},remove:function(){return l&&st.each(arguments,function(e,t){for(var n;(n=st.inArray(t,l,n))>-1;)l.splice(n,1),o&&(s>=n&&s--,u>=n&&u--)}),this},has:function(e){return st.inArray(e,l)>-1},empty:function(){return l=[],this},disable:function(){return l=c=n=t,this},disabled:function(){return!l},lock:function(){return c=t,n||p.disable(),this},locked:function(){return!c},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!l||i&&!c||(o?c.push(t):f(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},st.extend({Deferred:function(e){var t=[["resolve","done",st.Callbacks("once memory"),"resolved"],["reject","fail",st.Callbacks("once memory"),"rejected"],["notify","progress",st.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return st.Deferred(function(n){st.each(t,function(t,o){var a=o[0],s=st.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&st.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?st.extend(e,r):r}},i={};return r.pipe=r.then,st.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=nt.call(arguments),a=o.length,s=1!==a||e&&st.isFunction(e.promise)?a:0,u=1===s?e:st.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?nt.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=Array(a),n=Array(a),r=Array(a);a>i;i++)o[i]&&st.isFunction(o[i].promise)?o[i].promise().done(l(i,r,o)).fail(u.reject).progress(l(i,n,t)):--s;return s||u.resolveWith(r,o),u.promise()}}),st.support=function(){var n,r,i,o,a,s,u,l,c,f,p=V.createElement("div");if(p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",r=p.getElementsByTagName("*"),i=p.getElementsByTagName("a")[0],!r||!i||!r.length)return{};o=V.createElement("select"),a=o.appendChild(V.createElement("option")),s=p.getElementsByTagName("input")[0],i.style.cssText="top:1px;float:left;opacity:.5",n={getSetAttribute:"t"!==p.className,leadingWhitespace:3===p.firstChild.nodeType,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(i.getAttribute("style")),hrefNormalized:"/a"===i.getAttribute("href"),opacity:/^0.5/.test(i.style.opacity),cssFloat:!!i.style.cssFloat,checkOn:!!s.value,optSelected:a.selected,enctype:!!V.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==V.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===V.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},s.checked=!0,n.noCloneChecked=s.cloneNode(!0).checked,o.disabled=!0,n.optDisabled=!a.disabled;try{delete p.test}catch(d){n.deleteExpando=!1}s=V.createElement("input"),s.setAttribute("value",""),n.input=""===s.getAttribute("value"),s.value="t",s.setAttribute("type","radio"),n.radioValue="t"===s.value,s.setAttribute("checked","t"),s.setAttribute("name","t"),u=V.createDocumentFragment(),u.appendChild(s),n.appendChecked=s.checked,n.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,p.attachEvent&&(p.attachEvent("onclick",function(){n.noCloneEvent=!1}),p.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})p.setAttribute(l="on"+f,"t"),n[f+"Bubbles"]=l in e||p.attributes[l].expando===!1;return p.style.backgroundClip="content-box",p.cloneNode(!0).style.backgroundClip="",n.clearCloneStyle="content-box"===p.style.backgroundClip,st(function(){var r,i,o,a="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",s=V.getElementsByTagName("body")[0];s&&(r=V.createElement("div"),r.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",s.appendChild(r).appendChild(p),p.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=p.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",n.reliableHiddenOffsets=c&&0===o[0].offsetHeight,p.innerHTML="",p.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",n.boxSizing=4===p.offsetWidth,n.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(n.pixelPosition="1%"!==(e.getComputedStyle(p,null)||{}).top,n.boxSizingReliable="4px"===(e.getComputedStyle(p,null)||{width:"4px"}).width,i=p.appendChild(V.createElement("div")),i.style.cssText=p.style.cssText=a,i.style.marginRight=i.style.width="0",p.style.width="1px",n.reliableMarginRight=!parseFloat((e.getComputedStyle(i,null)||{}).marginRight)),p.style.zoom!==t&&(p.innerHTML="",p.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",n.inlineBlockNeedsLayout=3===p.offsetWidth,p.style.display="block",p.innerHTML="<div></div>",p.firstChild.style.width="5px",n.shrinkWrapBlocks=3!==p.offsetWidth,s.style.zoom=1),s.removeChild(r),r=p=o=i=null)}),r=o=u=a=i=s=null,n}();var wt=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,Nt=/([A-Z])/g;st.extend({cache:{},expando:"jQuery"+(Z+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?st.cache[e[st.expando]]:e[st.expando],!!e&&!s(e)},data:function(e,t,n){return i(e,t,n,!1)},removeData:function(e,t){return o(e,t,!1)},_data:function(e,t,n){return i(e,t,n,!0)},_removeData:function(e,t){return o(e,t,!0)},acceptData:function(e){var t=e.nodeName&&st.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),st.fn.extend({data:function(e,n){var r,i,o=this[0],s=0,u=null;if(e===t){if(this.length&&(u=st.data(o),1===o.nodeType&&!st._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>s;s++)i=r[s].name,i.indexOf("data-")||(i=st.camelCase(i.substring(5)),a(o,i,u[i]));st._data(o,"parsedAttrs",!0)}return u}return"object"==typeof e?this.each(function(){st.data(this,e)}):st.access(this,function(n){return n===t?o?a(o,e,st.data(o,e)):null:(this.each(function(){st.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){st.removeData(this,e)})}}),st.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=st._data(e,n),r&&(!i||st.isArray(r)?i=st._data(e,n,st.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=st.queue(e,t),r=n.length,i=n.shift(),o=st._queueHooks(e,t),a=function(){st.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return st._data(e,n)||st._data(e,n,{empty:st.Callbacks("once memory").add(function(){st._removeData(e,t+"queue"),st._removeData(e,n)})})}}),st.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?st.queue(this[0],e):n===t?this:this.each(function(){var t=st.queue(this,e,n);st._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&st.dequeue(this,e)})},dequeue:function(e){return this.each(function(){st.dequeue(this,e)})},delay:function(e,t){return e=st.fx?st.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=st.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=st._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var Ct,kt,Et=/[\t\r\n]/g,St=/\r/g,At=/^(?:input|select|textarea|button|object)$/i,jt=/^(?:a|area)$/i,Dt=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,Lt=/^(?:checked|selected)$/i,Ht=st.support.getSetAttribute,Mt=st.support.input;st.fn.extend({attr:function(e,t){return st.access(this,st.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){st.removeAttr(this,e)})},prop:function(e,t){return st.access(this,st.prop,e,t,arguments.length>1)},removeProp:function(e){return e=st.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):" ")){for(o=0;i=t[o++];)0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=st.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(st.isFunction(e))return this.each(function(t){st(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(lt)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(Et," "):"")){for(o=0;i=t[o++];)for(;r.indexOf(" "+i+" ")>=0;)r=r.replace(" "+i+" "," ");n.className=e?st.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return st.isFunction(e)?this.each(function(n){st(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,a=st(this),s=t,u=e.match(lt)||[];i=u[o++];)s=r?s:!a.hasClass(i),a[s?"addClass":"removeClass"](i);else("undefined"===n||"boolean"===n)&&(this.className&&st._data(this,"__className__",this.className),this.className=this.className||e===!1?"":st._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(Et," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=st.isFunction(e),this.each(function(r){var o,a=st(this);1===this.nodeType&&(o=i?e.call(this,r,a.val()):e,null==o?o="":"number"==typeof o?o+="":st.isArray(o)&&(o=st.map(o,function(e){return null==e?"":e+""})),n=st.valHooks[this.type]||st.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=st.valHooks[o.type]||st.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(St,""):null==r?"":r)}}}),st.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(st.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&st.nodeName(n.parentNode,"optgroup"))){if(t=st(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=st.makeArray(t);return st(e).find("option").each(function(){this.selected=st.inArray(st(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return e.getAttribute===t?st.prop(e,n,r):(a=1!==s||!st.isXMLDoc(e),a&&(n=n.toLowerCase(),o=st.attrHooks[n]||(Dt.test(n)?kt:Ct)),r===t?o&&a&&"get"in o&&null!==(i=o.get(e,n))?i:(e.getAttribute!==t&&(i=e.getAttribute(n)),null==i?t:i):null!==r?o&&a&&"set"in o&&(i=o.set(e,r,n))!==t?i:(e.setAttribute(n,r+""),r):(st.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(lt);if(o&&1===e.nodeType)for(;n=o[i++];)r=st.propFix[n]||n,Dt.test(n)?!Ht&&Lt.test(n)?e[st.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:st.attr(e,n,""),e.removeAttribute(Ht?n:r)},attrHooks:{type:{set:function(e,t){if(!st.support.radioValue&&"radio"===t&&st.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!st.isXMLDoc(e),a&&(n=st.propFix[n]||n,o=st.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):At.test(e.nodeName)||jt.test(e.nodeName)&&e.href?0:t}}}}),kt={get:function(e,n){var r=st.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?Mt&&Ht?null!=i:Lt.test(n)?e[st.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?st.removeAttr(e,n):Mt&&Ht||!Lt.test(n)?e.setAttribute(!Ht&&st.propFix[n]||n,n):e[st.camelCase("default-"+n)]=e[n]=!0,n}},Mt&&Ht||(st.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return st.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t +},set:function(e,n,r){return st.nodeName(e,"input")?(e.defaultValue=n,t):Ct&&Ct.set(e,n,r)}}),Ht||(Ct=st.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},st.attrHooks.contenteditable={get:Ct.get,set:function(e,t,n){Ct.set(e,""===t?!1:t,n)}},st.each(["width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),st.support.hrefNormalized||(st.each(["href","src","width","height"],function(e,n){st.attrHooks[n]=st.extend(st.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),st.each(["href","src"],function(e,t){st.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),st.support.style||(st.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),st.support.optSelected||(st.propHooks.selected=st.extend(st.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),st.support.enctype||(st.propFix.enctype="encoding"),st.support.checkOn||st.each(["radio","checkbox"],function(){st.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),st.each(["radio","checkbox"],function(){st.valHooks[this]=st.extend(st.valHooks[this],{set:function(e,n){return st.isArray(n)?e.checked=st.inArray(st(e).val(),n)>=0:t}})});var qt=/^(?:input|select|textarea)$/i,_t=/^key/,Ft=/^(?:mouse|contextmenu)|click/,Ot=/^(?:focusinfocus|focusoutblur)$/,Bt=/^([^.]*)(?:\.(.+)|)$/;st.event={global:{},add:function(e,n,r,i,o){var a,s,u,l,c,f,p,d,h,g,m,y=3!==e.nodeType&&8!==e.nodeType&&st._data(e);if(y){for(r.handler&&(a=r,r=a.handler,o=a.selector),r.guid||(r.guid=st.guid++),(l=y.events)||(l=y.events={}),(s=y.handle)||(s=y.handle=function(e){return st===t||e&&st.event.triggered===e.type?t:st.event.dispatch.apply(s.elem,arguments)},s.elem=e),n=(n||"").match(lt)||[""],c=n.length;c--;)u=Bt.exec(n[c])||[],h=m=u[1],g=(u[2]||"").split(".").sort(),p=st.event.special[h]||{},h=(o?p.delegateType:p.bindType)||h,p=st.event.special[h]||{},f=st.extend({type:h,origType:m,data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&st.expr.match.needsContext.test(o),namespace:g.join(".")},a),(d=l[h])||(d=l[h]=[],d.delegateCount=0,p.setup&&p.setup.call(e,i,g,s)!==!1||(e.addEventListener?e.addEventListener(h,s,!1):e.attachEvent&&e.attachEvent("on"+h,s))),p.add&&(p.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?d.splice(d.delegateCount++,0,f):d.push(f),st.event.global[h]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,m=st.hasData(e)&&st._data(e);if(m&&(u=m.events)){for(t=(t||"").match(lt)||[""],l=t.length;l--;)if(s=Bt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){for(f=st.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=u[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||st.removeEvent(e,d,m.handle),delete u[d])}else for(d in u)st.event.remove(e,d+t[l],n,r,!0);st.isEmptyObject(u)&&(delete m.handle,st._removeData(e,"events"))}},trigger:function(n,r,i,o){var a,s,u,l,c,f,p,d=[i||V],h=n.type||n,g=n.namespace?n.namespace.split("."):[];if(s=u=i=i||V,3!==i.nodeType&&8!==i.nodeType&&!Ot.test(h+st.event.triggered)&&(h.indexOf(".")>=0&&(g=h.split("."),h=g.shift(),g.sort()),c=0>h.indexOf(":")&&"on"+h,n=n[st.expando]?n:new st.Event(h,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=g.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:st.makeArray(r,[n]),p=st.event.special[h]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!st.isWindow(i)){for(l=p.delegateType||h,Ot.test(l+h)||(s=s.parentNode);s;s=s.parentNode)d.push(s),u=s;u===(i.ownerDocument||V)&&d.push(u.defaultView||u.parentWindow||e)}for(a=0;(s=d[a++])&&!n.isPropagationStopped();)n.type=a>1?l:p.bindType||h,f=(st._data(s,"events")||{})[n.type]&&st._data(s,"handle"),f&&f.apply(s,r),f=c&&s[c],f&&st.acceptData(s)&&f.apply&&f.apply(s,r)===!1&&n.preventDefault();if(n.type=h,!(o||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===h&&st.nodeName(i,"a")||!st.acceptData(i)||!c||!i[h]||st.isWindow(i))){u=i[c],u&&(i[c]=null),st.event.triggered=h;try{i[h]()}catch(m){}st.event.triggered=t,u&&(i[c]=u)}return n.result}},dispatch:function(e){e=st.event.fix(e);var n,r,i,o,a,s=[],u=nt.call(arguments),l=(st._data(this,"events")||{})[e.type]||[],c=st.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){for(s=st.event.handlers.call(this,e,l),n=0;(o=s[n++])&&!e.isPropagationStopped();)for(e.currentTarget=o.elem,r=0;(a=o.handlers[r++])&&!e.isImmediatePropagationStopped();)(!e.namespace_re||e.namespace_re.test(a.namespace))&&(e.handleObj=a,e.data=a.data,i=((st.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u),i!==t&&(e.result=i)===!1&&(e.preventDefault(),e.stopPropagation()));return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(l.disabled!==!0||"click"!==e.type){for(i=[],r=0;u>r;r++)a=n[r],o=a.selector+" ",i[o]===t&&(i[o]=a.needsContext?st(o,this).index(l)>=0:st.find(o,this,null,[l]).length),i[o]&&i.push(a);i.length&&s.push({elem:l,handlers:i})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[st.expando])return e;var t,n,r=e,i=st.event.fixHooks[e.type]||{},o=i.props?this.props.concat(i.props):this.props;for(e=new st.Event(r),t=o.length;t--;)n=o[t],e[n]=r[n];return e.target||(e.target=r.srcElement||V),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,i.filter?i.filter(e,r):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,a=n.button,s=n.fromElement;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||V,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?n.toElement:s),e.which||a===t||(e.which=1&a?1:2&a?3:4&a?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return st.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==V.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===V.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=st.extend(new st.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?st.event.trigger(i,null,t):st.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},st.removeEvent=V.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,n,r){var i="on"+n;e.detachEvent&&(e[i]===t&&(e[i]=null),e.detachEvent(i,r))},st.Event=function(e,n){return this instanceof st.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?u:l):this.type=e,n&&st.extend(this,n),this.timeStamp=e&&e.timeStamp||st.now(),this[st.expando]=!0,t):new st.Event(e,n)},st.Event.prototype={isDefaultPrevented:l,isPropagationStopped:l,isImmediatePropagationStopped:l,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=u,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=u,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u,this.stopPropagation()}},st.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){st.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!st.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),st.support.submitBubbles||(st.event.special.submit={setup:function(){return st.nodeName(this,"form")?!1:(st.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=st.nodeName(n,"input")||st.nodeName(n,"button")?n.form:t;r&&!st._data(r,"submitBubbles")&&(st.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),st._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&st.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return st.nodeName(this,"form")?!1:(st.event.remove(this,"._submit"),t)}}),st.support.changeBubbles||(st.event.special.change={setup:function(){return qt.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(st.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),st.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),st.event.simulate("change",this,e,!0)})),!1):(st.event.add(this,"beforeactivate._change",function(e){var t=e.target;qt.test(t.nodeName)&&!st._data(t,"changeBubbles")&&(st.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||st.event.simulate("change",this.parentNode,e,!0)}),st._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return st.event.remove(this,"._change"),!qt.test(this.nodeName)}}),st.support.focusinBubbles||st.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){st.event.simulate(t,e.target,st.event.fix(e),!0)};st.event.special[t]={setup:function(){0===n++&&V.addEventListener(e,r,!0)},teardown:function(){0===--n&&V.removeEventListener(e,r,!0)}}}),st.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(s in e)this.on(s,n,r,e[s],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=l;else if(!i)return this;return 1===o&&(a=i,i=function(e){return st().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=st.guid++)),this.each(function(){st.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,st(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=l),this.each(function(){st.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){st.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?st.event.trigger(e,n,r,!0):t},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),st.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){st.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)},_t.test(t)&&(st.event.fixHooks[t]=st.event.keyHooks),Ft.test(t)&&(st.event.fixHooks[t]=st.event.mouseHooks)}),function(e,t){function n(e){return ht.test(e+"")}function r(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>C.cacheLength&&delete e[t.shift()],e[n]=r}}function i(e){return e[P]=!0,e}function o(e){var t=L.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function a(e,t,n,r){var i,o,a,s,u,l,c,d,h,g;if((t?t.ownerDocument||t:R)!==L&&D(t),t=t||L,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!M&&!r){if(i=gt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&O(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return Q.apply(n,K.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&W.getByClassName&&t.getElementsByClassName)return Q.apply(n,K.call(t.getElementsByClassName(a),0)),n}if(W.qsa&&!q.test(e)){if(c=!0,d=P,h=t,g=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(l=f(e),(c=t.getAttribute("id"))?d=c.replace(vt,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=l.length;u--;)l[u]=d+p(l[u]);h=dt.test(e)&&t.parentNode||t,g=l.join(",")}if(g)try{return Q.apply(n,K.call(h.querySelectorAll(g),0)),n}catch(m){}finally{c||t.removeAttribute("id")}}}return x(e.replace(at,"$1"),t,n,r)}function s(e,t){for(var n=e&&t&&e.nextSibling;n;n=n.nextSibling)if(n===t)return-1;return e?1:-1}function u(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function c(e){return i(function(t){return t=+t,i(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function f(e,t){var n,r,i,o,s,u,l,c=X[e+" "];if(c)return t?0:c.slice(0);for(s=e,u=[],l=C.preFilter;s;){(!n||(r=ut.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(i=[])),n=!1,(r=lt.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(at," ")}),s=s.slice(n.length));for(o in C.filter)!(r=pt[o].exec(s))||l[o]&&!(r=l[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?a.error(e):X(e,u).slice(0)}function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=n&&"parentNode"===t.dir,o=I++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=$+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(l=t[P]||(t[P]={}),(u=l[r])&&u[0]===c){if((s=u[1])===!0||s===N)return s===!0}else if(u=l[r]=[c],u[1]=e(t,n,a)||N,u[1]===!0)return!0}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function m(e,t,n,r,o,a){return r&&!r[P]&&(r=m(r)),o&&!o[P]&&(o=m(o,a)),i(function(i,a,s,u){var l,c,f,p=[],d=[],h=a.length,m=i||b(t||"*",s.nodeType?[s]:s,[]),y=!e||!i&&t?m:g(m,p,e,s,u),v=n?o||(i?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r)for(l=g(v,d),r(l,[],s,u),c=l.length;c--;)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f));if(i){if(o||e){if(o){for(l=[],c=v.length;c--;)(f=v[c])&&l.push(y[c]=f);o(null,v=[],l,u)}for(c=v.length;c--;)(f=v[c])&&(l=o?Z.call(i,f):p[c])>-1&&(i[l]=!(a[l]=f))}}else v=g(v===a?v.splice(h,v.length):v),o?o(null,a,v,u):Q.apply(a,v)})}function y(e){for(var t,n,r,i=e.length,o=C.relative[e[0].type],a=o||C.relative[" "],s=o?1:0,u=d(function(e){return e===t},a,!0),l=d(function(e){return Z.call(t,e)>-1},a,!0),c=[function(e,n,r){return!o&&(r||n!==j)||((t=n).nodeType?u(e,n,r):l(e,n,r))}];i>s;s++)if(n=C.relative[e[s].type])c=[d(h(c),n)];else{if(n=C.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;i>r&&!C.relative[e[r].type];r++);return m(s>1&&h(c),s>1&&p(e.slice(0,s-1)).replace(at,"$1"),n,r>s&&y(e.slice(s,r)),i>r&&y(e=e.slice(r)),i>r&&p(e))}c.push(n)}return h(c)}function v(e,t){var n=0,r=t.length>0,o=e.length>0,s=function(i,s,u,l,c){var f,p,d,h=[],m=0,y="0",v=i&&[],b=null!=c,x=j,T=i||o&&C.find.TAG("*",c&&s.parentNode||s),w=$+=null==x?1:Math.E;for(b&&(j=s!==L&&s,N=n);null!=(f=T[y]);y++){if(o&&f){for(p=0;d=e[p];p++)if(d(f,s,u)){l.push(f);break}b&&($=w,N=++n)}r&&((f=!d&&f)&&m--,i&&v.push(f))}if(m+=y,r&&y!==m){for(p=0;d=t[p];p++)d(v,h,s,u);if(i){if(m>0)for(;y--;)v[y]||h[y]||(h[y]=G.call(l));h=g(h)}Q.apply(l,h),b&&!i&&h.length>0&&m+t.length>1&&a.uniqueSort(l)}return b&&($=w,j=x),v};return r?i(s):s}function b(e,t,n){for(var r=0,i=t.length;i>r;r++)a(e,t[r],n);return n}function x(e,t,n,r){var i,o,a,s,u,l=f(e);if(!r&&1===l.length){if(o=l[0]=l[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&!M&&C.relative[o[1].type]){if(t=C.find.ID(a.matches[0].replace(xt,Tt),t)[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=pt.needsContext.test(e)?-1:o.length-1;i>=0&&(a=o[i],!C.relative[s=a.type]);i--)if((u=C.find[s])&&(r=u(a.matches[0].replace(xt,Tt),dt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&p(o),!e)return Q.apply(n,K.call(r,0)),n;break}}return S(e,l)(r,t,M,n,dt.test(e)),n}function T(){}var w,N,C,k,E,S,A,j,D,L,H,M,q,_,F,O,B,P="sizzle"+-new Date,R=e.document,W={},$=0,I=0,z=r(),X=r(),U=r(),V=typeof t,Y=1<<31,J=[],G=J.pop,Q=J.push,K=J.slice,Z=J.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},et="[\\x20\\t\\r\\n\\f]",tt="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",nt=tt.replace("w","w#"),rt="([*^$|!~]?=)",it="\\["+et+"*("+tt+")"+et+"*(?:"+rt+et+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+nt+")|)|)"+et+"*\\]",ot=":("+tt+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+it.replace(3,8)+")*)|.*)\\)|)",at=RegExp("^"+et+"+|((?:^|[^\\\\])(?:\\\\.)*)"+et+"+$","g"),ut=RegExp("^"+et+"*,"+et+"*"),lt=RegExp("^"+et+"*([\\x20\\t\\r\\n\\f>+~])"+et+"*"),ct=RegExp(ot),ft=RegExp("^"+nt+"$"),pt={ID:RegExp("^#("+tt+")"),CLASS:RegExp("^\\.("+tt+")"),NAME:RegExp("^\\[name=['\"]?("+tt+")['\"]?\\]"),TAG:RegExp("^("+tt.replace("w","w*")+")"),ATTR:RegExp("^"+it),PSEUDO:RegExp("^"+ot),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+et+"*(even|odd|(([+-]|)(\\d*)n|)"+et+"*(?:([+-]|)"+et+"*(\\d+)|))"+et+"*\\)|)","i"),needsContext:RegExp("^"+et+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+et+"*((?:-\\d)?\\d*)"+et+"*\\)|)(?=[^-]|$)","i")},dt=/[\x20\t\r\n\f]*[+~]/,ht=/\{\s*\[native code\]\s*\}/,gt=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,mt=/^(?:input|select|textarea|button)$/i,yt=/^h\d$/i,vt=/'|\\/g,bt=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,xt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,Tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{K.call(H.childNodes,0)[0].nodeType}catch(wt){K=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}E=a.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},D=a.setDocument=function(e){var r=e?e.ownerDocument||e:R;return r!==L&&9===r.nodeType&&r.documentElement?(L=r,H=r.documentElement,M=E(r),W.tagNameNoComments=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),W.attributes=o(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),W.getByClassName=o(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),W.getByName=o(function(e){e.id=P+0,e.innerHTML="<a name='"+P+"'></a><div name='"+P+"'></div>",H.insertBefore(e,H.firstChild);var t=r.getElementsByName&&r.getElementsByName(P).length===2+r.getElementsByName(P+0).length;return W.getIdNotName=!r.getElementById(P),H.removeChild(e),t}),C.attrHandle=o(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==V&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},W.getIdNotName?(C.find.ID=function(e,t){if(typeof t.getElementById!==V&&!M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){return e.getAttribute("id")===t}}):(C.find.ID=function(e,n){if(typeof n.getElementById!==V&&!M){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==V&&r.getAttributeNode("id").value===e?[r]:t:[]}},C.filter.ID=function(e){var t=e.replace(xt,Tt);return function(e){var n=typeof e.getAttributeNode!==V&&e.getAttributeNode("id");return n&&n.value===t}}),C.find.TAG=W.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==V?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i];i++)1===n.nodeType&&r.push(n);return r}return o},C.find.NAME=W.getByName&&function(e,n){return typeof n.getElementsByName!==V?n.getElementsByName(name):t},C.find.CLASS=W.getByClassName&&function(e,n){return typeof n.getElementsByClassName===V||M?t:n.getElementsByClassName(e)},_=[],q=[":focus"],(W.qsa=n(r.querySelectorAll))&&(o(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||q.push("\\["+et+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||q.push(":checked")}),o(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&q.push("[*^$]="+et+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),q.push(",.*:")})),(W.matchesSelector=n(F=H.matchesSelector||H.mozMatchesSelector||H.webkitMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&o(function(e){W.disconnectedMatch=F.call(e,"div"),F.call(e,"[s!='']:x"),_.push("!=",ot)}),q=RegExp(q.join("|")),_=RegExp(_.join("|")),O=n(H.contains)||H.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},B=H.compareDocumentPosition?function(e,t){var n;return e===t?(A=!0,0):(n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&n||e.parentNode&&11===e.parentNode.nodeType?e===r||O(R,e)?-1:t===r||O(R,t)?1:0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,a=t.parentNode,u=[e],l=[t];if(e===t)return A=!0,0;if(e.sourceIndex&&t.sourceIndex)return(~t.sourceIndex||Y)-(O(R,e)&&~e.sourceIndex||Y);if(!o||!a)return e===r?-1:t===r?1:o?-1:a?1:0;if(o===a)return s(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[i]===l[i];)i++;return i?s(u[i],l[i]):u[i]===R?-1:l[i]===R?1:0},A=!1,[0,0].sort(B),W.detectDuplicates=A,L):L},a.matches=function(e,t){return a(e,null,null,t)},a.matchesSelector=function(e,t){if((e.ownerDocument||e)!==L&&D(e),t=t.replace(bt,"='$1']"),!(!W.matchesSelector||M||_&&_.test(t)||q.test(t)))try{var n=F.call(e,t);if(n||W.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return a(t,L,null,[e]).length>0},a.contains=function(e,t){return(e.ownerDocument||e)!==L&&D(e),O(e,t)},a.attr=function(e,t){var n;return(e.ownerDocument||e)!==L&&D(e),M||(t=t.toLowerCase()),(n=C.attrHandle[t])?n(e):M||W.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},a.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},a.uniqueSort=function(e){var t,n=[],r=1,i=0;if(A=!W.detectDuplicates,e.sort(B),A){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},k=a.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=k(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=k(t);return n},C=a.selectors={cacheLength:50,createPseudo:i,match:pt,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(xt,Tt),e[3]=(e[4]||e[5]||"").replace(xt,Tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||a.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&a.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return pt.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&ct.test(n)&&(t=f(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(xt,Tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=z[e+" "];return t||(t=RegExp("(^|"+et+")"+e+"("+et+"|$)"))&&z(e,function(e){return t.test(e.className||typeof e.getAttribute!==V&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=a.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.substr(i.length-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){for(;g;){for(f=t;f=f[g];)if(s?f.nodeName.toLowerCase()===y:1===f.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(c=m[P]||(m[P]={}),l=c[e]||[],d=l[0]===$&&l[1],p=l[0]===$&&l[2],f=d&&m.childNodes[d];f=++d&&f&&f[g]||(p=d=0)||h.pop();)if(1===f.nodeType&&++p&&f===t){c[e]=[$,d,p];break}}else if(v&&(l=(t[P]||(t[P]={}))[e])&&l[0]===$)p=l[1];else for(;(f=++d&&f&&f[g]||(p=d=0)||h.pop())&&((s?f.nodeName.toLowerCase()!==y:1!==f.nodeType)||!++p||(v&&((f[P]||(f[P]={}))[e]=[$,p]),f!==t)););return p-=i,p===r||0===p%r&&p/r>=0}}},PSEUDO:function(e,t){var n,r=C.pseudos[e]||C.setFilters[e.toLowerCase()]||a.error("unsupported pseudo: "+e);return r[P]?r(t):r.length>1?(n=[e,e,"",t],C.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=Z.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(at,"$1"));return r[P]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:i(function(e){return function(t){return a(e,t).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||k(t)).indexOf(e)>-1}}),lang:i(function(e){return ft.test(e||"")||a.error("unsupported lang: "+e),e=e.replace(xt,Tt).toLowerCase(),function(t){var n;do if(n=M?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===H},focus:function(e){return e===L.activeElement&&(!L.hasFocus||L.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!C.pseudos.empty(e)},header:function(e){return yt.test(e.nodeName)},input:function(e){return mt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:c(function(){return[0]}),last:c(function(e,t){return[t-1]}),eq:c(function(e,t,n){return[0>n?n+t:n]}),even:c(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:c(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:c(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:c(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})C.pseudos[w]=u(w);for(w in{submit:!0,reset:!0})C.pseudos[w]=l(w);S=a.compile=function(e,t){var n,r=[],i=[],o=U[e+" "];if(!o){for(t||(t=f(e)),n=t.length;n--;)o=y(t[n]),o[P]?r.push(o):i.push(o);o=U(e,v(i,r))}return o},C.pseudos.nth=C.pseudos.eq,C.filters=T.prototype=C.pseudos,C.setFilters=new T,D(),a.attr=st.attr,st.find=a,st.expr=a.selectors,st.expr[":"]=st.expr.pseudos,st.unique=a.uniqueSort,st.text=a.getText,st.isXMLDoc=a.isXML,st.contains=a.contains}(e);var Pt=/Until$/,Rt=/^(?:parents|prev(?:Until|All))/,Wt=/^.[^:#\[\.,]*$/,$t=st.expr.match.needsContext,It={children:!0,contents:!0,next:!0,prev:!0};st.fn.extend({find:function(e){var t,n,r;if("string"!=typeof e)return r=this,this.pushStack(st(e).filter(function(){for(t=0;r.length>t;t++)if(st.contains(r[t],this))return!0}));for(n=[],t=0;this.length>t;t++)st.find(e,this[t],n);return n=this.pushStack(st.unique(n)),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=st(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(st.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(f(this,e,!1))},filter:function(e){return this.pushStack(f(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?$t.test(e)?st(e,this.context).index(this[0])>=0:st.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=$t.test(e)||"string"!=typeof e?st(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:st.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return this.pushStack(o.length>1?st.unique(o):o)},index:function(e){return e?"string"==typeof e?st.inArray(this[0],st(e)):st.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?st(e,t):st.makeArray(e&&e.nodeType?[e]:e),r=st.merge(this.get(),n);return this.pushStack(st.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),st.fn.andSelf=st.fn.addBack,st.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return st.dir(e,"parentNode")},parentsUntil:function(e,t,n){return st.dir(e,"parentNode",n)},next:function(e){return c(e,"nextSibling")},prev:function(e){return c(e,"previousSibling") +},nextAll:function(e){return st.dir(e,"nextSibling")},prevAll:function(e){return st.dir(e,"previousSibling")},nextUntil:function(e,t,n){return st.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return st.dir(e,"previousSibling",n)},siblings:function(e){return st.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return st.sibling(e.firstChild)},contents:function(e){return st.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:st.merge([],e.childNodes)}},function(e,t){st.fn[e]=function(n,r){var i=st.map(this,t,n);return Pt.test(e)||(r=n),r&&"string"==typeof r&&(i=st.filter(r,i)),i=this.length>1&&!It[e]?st.unique(i):i,this.length>1&&Rt.test(e)&&(i=i.reverse()),this.pushStack(i)}}),st.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?st.find.matchesSelector(t[0],e)?[t[0]]:[]:st.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!st(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var zt="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Xt=/ jQuery\d+="(?:null|\d+)"/g,Ut=RegExp("<(?:"+zt+")[\\s/>]","i"),Vt=/^\s+/,Yt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Jt=/<([\w:]+)/,Gt=/<tbody/i,Qt=/<|&#?\w+;/,Kt=/<(?:script|style|link)/i,Zt=/^(?:checkbox|radio)$/i,en=/checked\s*(?:[^=]|=\s*.checked.)/i,tn=/^$|\/(?:java|ecma)script/i,nn=/^true\/(.*)/,rn=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,on={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:st.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},an=p(V),sn=an.appendChild(V.createElement("div"));on.optgroup=on.option,on.tbody=on.tfoot=on.colgroup=on.caption=on.thead,on.th=on.td,st.fn.extend({text:function(e){return st.access(this,function(e){return e===t?st.text(this):this.empty().append((this[0]&&this[0].ownerDocument||V).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(st.isFunction(e))return this.each(function(t){st(this).wrapAll(e.call(this,t))});if(this[0]){var t=st(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return st.isFunction(e)?this.each(function(t){st(this).wrapInner(e.call(this,t))}):this.each(function(){var t=st(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=st.isFunction(e);return this.each(function(n){st(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){st.nodeName(this,"body")||st(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)(!e||st.filter(e,[n]).length>0)&&(t||1!==n.nodeType||st.cleanData(b(n)),n.parentNode&&(t&&st.contains(n.ownerDocument,n)&&m(b(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&st.cleanData(b(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&st.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return st.clone(this,e,t)})},html:function(e){return st.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(Xt,""):t;if(!("string"!=typeof e||Kt.test(e)||!st.support.htmlSerialize&&Ut.test(e)||!st.support.leadingWhitespace&&Vt.test(e)||on[(Jt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(Yt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(st.cleanData(b(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=st.isFunction(e);return t||"string"==typeof e||(e=st(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;(n&&1===this.nodeType||11===this.nodeType)&&(st(this).remove(),t?t.parentNode.insertBefore(e,t):n.appendChild(e))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=et.apply([],e);var i,o,a,s,u,l,c=0,f=this.length,p=this,m=f-1,y=e[0],v=st.isFunction(y);if(v||!(1>=f||"string"!=typeof y||st.support.checkClone)&&en.test(y))return this.each(function(i){var o=p.eq(i);v&&(e[0]=y.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(f&&(i=st.buildFragment(e,this[0].ownerDocument,!1,this),o=i.firstChild,1===i.childNodes.length&&(i=o),o)){for(n=n&&st.nodeName(o,"tr"),a=st.map(b(i,"script"),h),s=a.length;f>c;c++)u=i,c!==m&&(u=st.clone(u,!0,!0),s&&st.merge(a,b(u,"script"))),r.call(n&&st.nodeName(this[c],"table")?d(this[c],"tbody"):this[c],u,c);if(s)for(l=a[a.length-1].ownerDocument,st.map(a,g),c=0;s>c;c++)u=a[c],tn.test(u.type||"")&&!st._data(u,"globalEval")&&st.contains(l,u)&&(u.src?st.ajax({url:u.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):st.globalEval((u.text||u.textContent||u.innerHTML||"").replace(rn,"")));i=o=null}return this}}),st.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){st.fn[e]=function(e){for(var n,r=0,i=[],o=st(e),a=o.length-1;a>=r;r++)n=r===a?this:this.clone(!0),st(o[r])[t](n),tt.apply(i,n.get());return this.pushStack(i)}}),st.extend({clone:function(e,t,n){var r,i,o,a,s,u=st.contains(e.ownerDocument,e);if(st.support.html5Clone||st.isXMLDoc(e)||!Ut.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(sn.innerHTML=e.outerHTML,sn.removeChild(s=sn.firstChild)),!(st.support.noCloneEvent&&st.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||st.isXMLDoc(e)))for(r=b(s),i=b(e),a=0;null!=(o=i[a]);++a)r[a]&&v(o,r[a]);if(t)if(n)for(i=i||b(e),r=r||b(s),a=0;null!=(o=i[a]);a++)y(o,r[a]);else y(e,s);return r=b(s,"script"),r.length>0&&m(r,!u&&b(e,"script")),r=i=o=null,s},buildFragment:function(e,t,n,r){for(var i,o,a,s,u,l,c,f=e.length,d=p(t),h=[],g=0;f>g;g++)if(o=e[g],o||0===o)if("object"===st.type(o))st.merge(h,o.nodeType?[o]:o);else if(Qt.test(o)){for(s=s||d.appendChild(t.createElement("div")),a=(Jt.exec(o)||["",""])[1].toLowerCase(),u=on[a]||on._default,s.innerHTML=u[1]+o.replace(Yt,"<$1></$2>")+u[2],c=u[0];c--;)s=s.lastChild;if(!st.support.leadingWhitespace&&Vt.test(o)&&h.push(t.createTextNode(Vt.exec(o)[0])),!st.support.tbody)for(o="table"!==a||Gt.test(o)?"<table>"!==u[1]||Gt.test(o)?0:s:s.firstChild,c=o&&o.childNodes.length;c--;)st.nodeName(l=o.childNodes[c],"tbody")&&!l.childNodes.length&&o.removeChild(l);for(st.merge(h,s.childNodes),s.textContent="";s.firstChild;)s.removeChild(s.firstChild);s=d.lastChild}else h.push(t.createTextNode(o));for(s&&d.removeChild(s),st.support.appendChecked||st.grep(b(h,"input"),x),g=0;o=h[g++];)if((!r||-1===st.inArray(o,r))&&(i=st.contains(o.ownerDocument,o),s=b(d.appendChild(o),"script"),i&&m(s),n))for(c=0;o=s[c++];)tn.test(o.type||"")&&n.push(o);return s=null,d},cleanData:function(e,n){for(var r,i,o,a,s=0,u=st.expando,l=st.cache,c=st.support.deleteExpando,f=st.event.special;null!=(o=e[s]);s++)if((n||st.acceptData(o))&&(i=o[u],r=i&&l[i])){if(r.events)for(a in r.events)f[a]?st.event.remove(o,a):st.removeEvent(o,a,r.handle);l[i]&&(delete l[i],c?delete o[u]:o.removeAttribute!==t?o.removeAttribute(u):o[u]=null,K.push(i))}}});var un,ln,cn,fn=/alpha\([^)]*\)/i,pn=/opacity\s*=\s*([^)]*)/,dn=/^(top|right|bottom|left)$/,hn=/^(none|table(?!-c[ea]).+)/,gn=/^margin/,mn=RegExp("^("+ut+")(.*)$","i"),yn=RegExp("^("+ut+")(?!px)[a-z%]+$","i"),vn=RegExp("^([+-])=("+ut+")","i"),bn={BODY:"block"},xn={position:"absolute",visibility:"hidden",display:"block"},Tn={letterSpacing:0,fontWeight:400},wn=["Top","Right","Bottom","Left"],Nn=["Webkit","O","Moz","ms"];st.fn.extend({css:function(e,n){return st.access(this,function(e,n,r){var i,o,a={},s=0;if(st.isArray(n)){for(i=ln(e),o=n.length;o>s;s++)a[n[s]]=st.css(e,n[s],!1,i);return a}return r!==t?st.style(e,n,r):st.css(e,n)},e,n,arguments.length>1)},show:function(){return N(this,!0)},hide:function(){return N(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:w(this))?st(this).show():st(this).hide()})}}),st.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=un(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":st.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=st.camelCase(n),l=e.style;if(n=st.cssProps[u]||(st.cssProps[u]=T(l,u)),s=st.cssHooks[n]||st.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=vn.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(st.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||st.cssNumber[u]||(r+="px"),st.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=st.camelCase(n);return n=st.cssProps[u]||(st.cssProps[u]=T(e.style,u)),s=st.cssHooks[n]||st.cssHooks[u],s&&"get"in s&&(o=s.get(e,!0,r)),o===t&&(o=un(e,n,i)),"normal"===o&&n in Tn&&(o=Tn[n]),r?(a=parseFloat(o),r===!0||st.isNumeric(a)?a||0:o):o},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(ln=function(t){return e.getComputedStyle(t,null)},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||st.contains(e.ownerDocument,e)||(u=st.style(e,n)),yn.test(u)&&gn.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):V.documentElement.currentStyle&&(ln=function(e){return e.currentStyle},un=function(e,n,r){var i,o,a,s=r||ln(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),yn.test(u)&&!dn.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u}),st.each(["height","width"],function(e,n){st.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&hn.test(st.css(e,"display"))?st.swap(e,xn,function(){return E(e,n,i)}):E(e,n,i):t},set:function(e,t,r){var i=r&&ln(e);return C(e,t,r?k(e,n,r,st.support.boxSizing&&"border-box"===st.css(e,"boxSizing",!1,i),i):0)}}}),st.support.opacity||(st.cssHooks.opacity={get:function(e,t){return pn.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=st.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===st.trim(o.replace(fn,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=fn.test(o)?o.replace(fn,i):o+" "+i)}}),st(function(){st.support.reliableMarginRight||(st.cssHooks.marginRight={get:function(e,n){return n?st.swap(e,{display:"inline-block"},un,[e,"marginRight"]):t}}),!st.support.pixelPosition&&st.fn.position&&st.each(["top","left"],function(e,n){st.cssHooks[n]={get:function(e,r){return r?(r=un(e,n),yn.test(r)?st(e).position()[n]+"px":r):t}}})}),st.expr&&st.expr.filters&&(st.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!st.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||st.css(e,"display"))},st.expr.filters.visible=function(e){return!st.expr.filters.hidden(e)}),st.each({margin:"",padding:"",border:"Width"},function(e,t){st.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];4>r;r++)i[e+wn[r]+t]=o[r]||o[r-2]||o[0];return i}},gn.test(e)||(st.cssHooks[e+t].set=C)});var Cn=/%20/g,kn=/\[\]$/,En=/\r?\n/g,Sn=/^(?:submit|button|image|reset)$/i,An=/^(?:input|select|textarea|keygen)/i;st.fn.extend({serialize:function(){return st.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=st.prop(this,"elements");return e?st.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!st(this).is(":disabled")&&An.test(this.nodeName)&&!Sn.test(e)&&(this.checked||!Zt.test(e))}).map(function(e,t){var n=st(this).val();return null==n?null:st.isArray(n)?st.map(n,function(e){return{name:t.name,value:e.replace(En,"\r\n")}}):{name:t.name,value:n.replace(En,"\r\n")}}).get()}}),st.param=function(e,n){var r,i=[],o=function(e,t){t=st.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=st.ajaxSettings&&st.ajaxSettings.traditional),st.isArray(e)||e.jquery&&!st.isPlainObject(e))st.each(e,function(){o(this.name,this.value)});else for(r in e)j(r,e[r],n,o);return i.join("&").replace(Cn,"+")};var jn,Dn,Ln=st.now(),Hn=/\?/,Mn=/#.*$/,qn=/([?&])_=[^&]*/,_n=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Fn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,On=/^(?:GET|HEAD)$/,Bn=/^\/\//,Pn=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Rn=st.fn.load,Wn={},$n={},In="*/".concat("*");try{Dn=Y.href}catch(zn){Dn=V.createElement("a"),Dn.href="",Dn=Dn.href}jn=Pn.exec(Dn.toLowerCase())||[],st.fn.load=function(e,n,r){if("string"!=typeof e&&Rn)return Rn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),st.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),s.length>0&&st.ajax({url:e,type:o,dataType:"html",data:n}).done(function(e){a=arguments,s.html(i?st("<div>").append(st.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,a||[e.responseText,t,e])}),this},st.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){st.fn[t]=function(e){return this.on(t,e)}}),st.each(["get","post"],function(e,n){st[n]=function(e,r,i,o){return st.isFunction(r)&&(o=o||i,i=r,r=t),st.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),st.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Dn,type:"GET",isLocal:Fn.test(jn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":In,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":st.parseJSON,"text xml":st.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?H(H(e,st.ajaxSettings),t):H(st.ajaxSettings,e)},ajaxPrefilter:D(Wn),ajaxTransport:D($n),ajax:function(e,n){function r(e,n,r,s){var l,f,v,b,T,N=n;2!==x&&(x=2,u&&clearTimeout(u),i=t,a=s||"",w.readyState=e>0?4:0,r&&(b=M(p,w,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=w.getResponseHeader("Last-Modified"),T&&(st.lastModified[o]=T),T=w.getResponseHeader("etag"),T&&(st.etag[o]=T)),304===e?(l=!0,N="notmodified"):(l=q(p,b),N=l.state,f=l.data,v=l.error,l=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),w.status=e,w.statusText=(n||N)+"",l?g.resolveWith(d,[f,N,w]):g.rejectWith(d,[w,N,v]),w.statusCode(y),y=t,c&&h.trigger(l?"ajaxSuccess":"ajaxError",[w,p,l?f:v]),m.fireWith(d,[w,N]),c&&(h.trigger("ajaxComplete",[w,p]),--st.active||st.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,u,l,c,f,p=st.ajaxSetup({},n),d=p.context||p,h=p.context&&(d.nodeType||d.jquery)?st(d):st.event,g=st.Deferred(),m=st.Callbacks("once memory"),y=p.statusCode||{},v={},b={},x=0,T="canceled",w={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!s)for(s={};t=_n.exec(a);)s[t[1].toLowerCase()]=t[2];t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=b[n]=b[n]||e,v[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)y[t]=[y[t],e[t]];else w.always(e[w.status]);return this},abort:function(e){var t=e||T;return i&&i.abort(t),r(0,t),this}};if(g.promise(w).complete=m.add,w.success=w.done,w.error=w.fail,p.url=((e||p.url||Dn)+"").replace(Mn,"").replace(Bn,jn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=st.trim(p.dataType||"*").toLowerCase().match(lt)||[""],null==p.crossDomain&&(l=Pn.exec(p.url.toLowerCase()),p.crossDomain=!(!l||l[1]===jn[1]&&l[2]===jn[2]&&(l[3]||("http:"===l[1]?80:443))==(jn[3]||("http:"===jn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=st.param(p.data,p.traditional)),L(Wn,p,n,w),2===x)return w;c=p.global,c&&0===st.active++&&st.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!On.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(Hn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=qn.test(o)?o.replace(qn,"$1_="+Ln++):o+(Hn.test(o)?"&":"?")+"_="+Ln++)),p.ifModified&&(st.lastModified[o]&&w.setRequestHeader("If-Modified-Since",st.lastModified[o]),st.etag[o]&&w.setRequestHeader("If-None-Match",st.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&w.setRequestHeader("Content-Type",p.contentType),w.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+In+"; q=0.01":""):p.accepts["*"]);for(f in p.headers)w.setRequestHeader(f,p.headers[f]);if(p.beforeSend&&(p.beforeSend.call(d,w,p)===!1||2===x))return w.abort();T="abort";for(f in{success:1,error:1,complete:1})w[f](p[f]);if(i=L($n,p,n,w)){w.readyState=1,c&&h.trigger("ajaxSend",[w,p]),p.async&&p.timeout>0&&(u=setTimeout(function(){w.abort("timeout")},p.timeout));try{x=1,i.send(v,r)}catch(N){if(!(2>x))throw N;r(-1,N)}}else r(-1,"No Transport");return w},getScript:function(e,n){return st.get(e,t,n,"script")},getJSON:function(e,t,n){return st.get(e,t,n,"json")}}),st.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return st.globalEval(e),e}}}),st.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),st.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=V.head||st("head")[0]||V.documentElement;return{send:function(t,i){n=V.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var Xn=[],Un=/(=)\?(?=&|$)|\?\?/;st.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xn.pop()||st.expando+"_"+Ln++;return this[e]=!0,e}}),st.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Un.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Un.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=st.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Un,"$1"+o):n.jsonp!==!1&&(n.url+=(Hn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||st.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Xn.push(o)),s&&st.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Vn,Yn,Jn=0,Gn=e.ActiveXObject&&function(){var e;for(e in Vn)Vn[e](t,!0)};st.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&_()||F()}:_,Yn=st.ajaxSettings.xhr(),st.support.cors=!!Yn&&"withCredentials"in Yn,Yn=st.support.ajax=!!Yn,Yn&&st.ajaxTransport(function(n){if(!n.crossDomain||st.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,f,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=st.noop,Gn&&delete Vn[a]),i)4!==u.readyState&&u.abort();else{f={},s=u.status,p=u.responseXML,c=u.getAllResponseHeaders(),p&&p.documentElement&&(f.xml=p),"string"==typeof u.responseText&&(f.text=u.responseText);try{l=u.statusText}catch(d){l=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=f.text?200:404}}catch(h){i||o(-1,h)}f&&o(s,l,f,c)},n.async?4===u.readyState?setTimeout(r):(a=++Jn,Gn&&(Vn||(Vn={},st(e).unload(Gn)),Vn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Qn,Kn,Zn=/^(?:toggle|show|hide)$/,er=RegExp("^(?:([+-])=|)("+ut+")([a-z%]*)$","i"),tr=/queueHooks$/,nr=[W],rr={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=er.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(st.cssNumber[e]?"":"px"),"px"!==r&&s){s=st.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,st.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};st.Animation=st.extend(P,{tweener:function(e,t){st.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],rr[n]=rr[n]||[],rr[n].unshift(t)},prefilter:function(e,t){t?nr.unshift(e):nr.push(e)}}),st.Tween=$,$.prototype={constructor:$,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(st.cssNumber[n]?"":"px")},cur:function(){var e=$.propHooks[this.prop];return e&&e.get?e.get(this):$.propHooks._default.get(this)},run:function(e){var t,n=$.propHooks[this.prop];return this.pos=t=this.options.duration?st.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):$.propHooks._default.set(this),this}},$.prototype.init.prototype=$.prototype,$.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=st.css(e.elem,e.prop,"auto"),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){st.fx.step[e.prop]?st.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[st.cssProps[e.prop]]||st.cssHooks[e.prop])?st.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},$.propHooks.scrollTop=$.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},st.each(["toggle","show","hide"],function(e,t){var n=st.fn[t];st.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(I(t,!0),e,r,i)}}),st.fn.extend({fadeTo:function(e,t,n,r){return this.filter(w).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=st.isEmptyObject(e),o=st.speed(t,n,r),a=function(){var t=P(this,st.extend({},e),o);a.finish=function(){t.stop(!0)},(i||st._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=st.timers,a=st._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&tr.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&st.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=st._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=st.timers,a=r?r.length:0;for(n.finish=!0,st.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),st.each({slideDown:I("show"),slideUp:I("hide"),slideToggle:I("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){st.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),st.speed=function(e,t,n){var r=e&&"object"==typeof e?st.extend({},e):{complete:n||!n&&t||st.isFunction(e)&&e,duration:e,easing:n&&t||t&&!st.isFunction(t)&&t};return r.duration=st.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in st.fx.speeds?st.fx.speeds[r.duration]:st.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){st.isFunction(r.old)&&r.old.call(this),r.queue&&st.dequeue(this,r.queue)},r},st.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},st.timers=[],st.fx=$.prototype.init,st.fx.tick=function(){var e,n=st.timers,r=0;for(Qn=st.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||st.fx.stop(),Qn=t},st.fx.timer=function(e){e()&&st.timers.push(e)&&st.fx.start()},st.fx.interval=13,st.fx.start=function(){Kn||(Kn=setInterval(st.fx.tick,st.fx.interval))},st.fx.stop=function(){clearInterval(Kn),Kn=null},st.fx.speeds={slow:600,fast:200,_default:400},st.fx.step={},st.expr&&st.expr.filters&&(st.expr.filters.animated=function(e){return st.grep(st.timers,function(t){return e===t.elem}).length}),st.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){st.offset.setOffset(this,e,t)});var n,r,i={top:0,left:0},o=this[0],a=o&&o.ownerDocument;if(a)return n=a.documentElement,st.contains(n,o)?(o.getBoundingClientRect!==t&&(i=o.getBoundingClientRect()),r=z(a),{top:i.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:i.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):i},st.offset={setOffset:function(e,t,n){var r=st.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=st(e),s=a.offset(),u=st.css(e,"top"),l=st.css(e,"left"),c=("absolute"===r||"fixed"===r)&&st.inArray("auto",[u,l])>-1,f={},p={};c?(p=a.position(),i=p.top,o=p.left):(i=parseFloat(u)||0,o=parseFloat(l)||0),st.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(f.top=t.top-s.top+i),null!=t.left&&(f.left=t.left-s.left+o),"using"in t?t.using.call(e,f):a.css(f)}},st.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===st.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),st.nodeName(e[0],"html")||(n=e.offset()),n.top+=st.css(e[0],"borderTopWidth",!0),n.left+=st.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-st.css(r,"marginTop",!0),left:t.left-n.left-st.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||V.documentElement;e&&!st.nodeName(e,"html")&&"static"===st.css(e,"position");)e=e.offsetParent;return e||V.documentElement})}}),st.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);st.fn[e]=function(i){return st.access(this,function(e,i,o){var a=z(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?st(a).scrollLeft():o,r?o:st(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}}),st.each({Height:"height",Width:"width"},function(e,n){st.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){st.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return st.access(this,function(n,r,i){var o;return st.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?st.css(n,r,s):st.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=st,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return st})})(window); +//@ sourceMappingURL=jquery.min.map
\ No newline at end of file diff --git a/97suifangqa/staticfiles/javascripts/jquery-1.9.1.min.js b/97suifangqa/staticfiles/javascripts/jquery-1.9.1.min.js new file mode 100644 index 0000000..006e953 --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/jquery-1.9.1.min.js @@ -0,0 +1,5 @@ +/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery.min.map +*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj; +return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&>(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l) +}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/javascripts/jquery.placeholder.min.js b/97suifangqa/staticfiles/javascripts/jquery.placeholder.min.js new file mode 100644 index 0000000..138ddd3 --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/jquery.placeholder.min.js @@ -0,0 +1,2 @@ +/*! http://mths.be/placeholder v2.0.7 by @mathias */ +;(function(f,h,$){var a='placeholder' in h.createElement('input'),d='placeholder' in h.createElement('textarea'),i=$.fn,c=$.valHooks,k,j;if(a&&d){j=i.placeholder=function(){return this};j.input=j.textarea=true}else{j=i.placeholder=function(){var l=this;l.filter((a?'textarea':':input')+'[placeholder]').not('.placeholder').bind({'focus.placeholder':b,'blur.placeholder':e}).data('placeholder-enabled',true).trigger('blur.placeholder');return l};j.input=a;j.textarea=d;k={get:function(m){var l=$(m);return l.data('placeholder-enabled')&&l.hasClass('placeholder')?'':m.value},set:function(m,n){var l=$(m);if(!l.data('placeholder-enabled')){return m.value=n}if(n==''){m.value=n;if(m!=h.activeElement){e.call(m)}}else{if(l.hasClass('placeholder')){b.call(m,true,n)||(m.value=n)}else{m.value=n}}return l}};a||(c.input=k);d||(c.textarea=k);$(function(){$(h).delegate('form','submit.placeholder',function(){var l=$('.placeholder',this).each(b);setTimeout(function(){l.each(e)},10)})});$(f).bind('beforeunload.placeholder',function(){$('.placeholder').each(function(){this.value=''})})}function g(m){var l={},n=/^jQuery\d+$/;$.each(m.attributes,function(p,o){if(o.specified&&!n.test(o.name)){l[o.name]=o.value}});return l}function b(m,n){var l=this,o=$(l);if(l.value==o.attr('placeholder')&&o.hasClass('placeholder')){if(o.data('placeholder-password')){o=o.hide().next().show().attr('id',o.removeAttr('id').data('placeholder-id'));if(m===true){return o[0].value=n}o.focus()}else{l.value='';o.removeClass('placeholder');l==h.activeElement&&l.select()}}}function e(){var q,l=this,p=$(l),m=p,o=this.id;if(l.value==''){if(l.type=='password'){if(!p.data('placeholder-textinput')){try{q=p.clone().attr({type:'text'})}catch(n){q=$('<input>').attr($.extend(g(this),{type:'text'}))}q.removeAttr('name').data({'placeholder-password':true,'placeholder-id':o}).bind('focus.placeholder',b);p.data({'placeholder-textinput':q,'placeholder-id':o}).before(q)}p=p.removeAttr('id').hide().prev().attr('id',o).show()}p.addClass('placeholder');p[0].value=p.attr('placeholder')}else{p.removeClass('placeholder')}}}(this,document,jQuery));
\ No newline at end of file diff --git a/97suifangqa/staticfiles/javascripts/jquery.waitforimages.min.js b/97suifangqa/staticfiles/javascripts/jquery.waitforimages.min.js new file mode 100644 index 0000000..ffe60e7 --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/jquery.waitforimages.min.js @@ -0,0 +1,4 @@ +/*! waitForImages jQuery Plugin - v1.4.2 - 2013-01-19
+* https://github.com/alexanderdickson/waitForImages
+* Copyright (c) 2013 Alex Dickson; Licensed MIT */
+(function(e){var t="waitForImages";e.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage"]},e.expr[":"].uncached=function(t){if(!e(t).is('img[src!=""]'))return!1;var n=new Image;return n.src=t.src,!n.complete},e.fn.waitForImages=function(n,r,i){var s=0,o=0;e.isPlainObject(arguments[0])&&(i=arguments[0].waitForAll,r=arguments[0].each,n=arguments[0].finished),n=n||e.noop,r=r||e.noop,i=!!i;if(!e.isFunction(n)||!e.isFunction(r))throw new TypeError("An invalid callback was supplied.");return this.each(function(){var u=e(this),a=[],f=e.waitForImages.hasImageProperties||[],l=/url\(\s*(['"]?)(.*?)\1\s*\)/g;i?u.find("*").andSelf().each(function(){var t=e(this);t.is("img:uncached")&&a.push({src:t.attr("src"),element:t[0]}),e.each(f,function(e,n){var r=t.css(n),i;if(!r)return!0;while(i=l.exec(r))a.push({src:i[2],element:t[0]})})}):u.find("img:uncached").each(function(){a.push({src:this.src,element:this})}),s=a.length,o=0,s===0&&n.call(u[0]),e.each(a,function(i,a){var f=new Image;e(f).bind("load."+t+" error."+t,function(e){o++,r.call(a.element,o,s,e.type=="load");if(o==s)return n.call(u[0]),!1}),f.src=a.src})})}})(jQuery);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/javascripts/main.js b/97suifangqa/staticfiles/javascripts/main.js new file mode 100644 index 0000000..8839ead --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/main.js @@ -0,0 +1,194 @@ +/** + * @file + * Primary Scripts for the site + * + * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com> + */ + +"use strick"; +//Remove html no-js class, and add has-js class. Ensures proper css js detection. +//DON NOT REMOVE THE FOLLOWING LINE! +$("html").removeClass("no-js").addClass("has-js"); + +//Expandable blocks +(function($, undefined) { + $(".expandable .expand-heading").click(function() { + var element = $(this); + var parentElement = $(this).closest('.expandable'); + if (!parentElement.hasClass('expanded') && parentElement.data('expand-group-selector')) { + $(parentElement.data('expand-group-selector')).removeClass('expanded'); + } + parentElement.toggleClass('expanded'); + }) +})(jQuery); + + +/** + * Image Enlargment + */ +(function($, undefined) { + var imageEnlargmentBox = $("#image-enlargement-box"); + var imageEnlargmentBoxContainer = imageEnlargmentBox.find('.image-container'); + function showImage(url) { + imageEnlargmentBoxContainer.empty(); + var img = $("<img>").attr('src', url); + imageEnlargmentBoxContainer.append(img); + imageEnlargmentBox.addClass('open'); + img.load(function(){ + //SetTimeout to prevent incorrect image size measurement + setTimeout(function() { + imageEnlargmentBox.css('margin-top', -img.height() / 2); + imageEnlargmentBox.css('margin-left', -img.width() / 2); + imageEnlargmentBox.addClass('loaded'); + }, 100); + }); + + $("#modal-page-overlay").removeClass('hidden'); + $('body').addClass('modal-active'); + } + + function hideImage() { + imageEnlargmentBox.removeClass('open'); + imageEnlargmentBox.css('margin-top',''); + imageEnlargmentBox.css('margin-left', ''); + $("#modal-page-overlay").addClass('hidden'); + $('body').removeClass('modal-active'); + imageEnlargmentBox.removeClass('loaded'); + } + $("body").click(hideImage); + if (imageEnlargmentBox.size() > 0) { + $(function() { + $("#content a.enlarge-image").click(function(e) { + e.preventDefault(); + e.stopPropagation(); + showImage($(this).attr('href')); + }) + }); + } +})(jQuery); + +/** + * General purpose modal dialog + */ +(function($, undefined) { + var modalOverlay = $("#modal-page-overlay"); + var modalDialogBox = $("#modal-dialog-box"); + + function modalShow() { + modalOverlay.removeClass('hidden'); + modalDialogBox.css('margin-top', - modalDialogBox.outerHeight() / 2); + modalDialogBox.css('margin-left', - modalDialogBox.outerWidth() / 2); + modalDialogBox.addClass('open'); + $("body").addClass('modal-active'); + } + function modalHide() { + modalDialogBox.removeClass('open'); + modalOverlay.addClass('hidden'); + $('body').removeClass('modal-active'); + } + $("body").click(modalHide); + modalDialogBox.find('.close-box').click(modalHide); + modalDialogBox.click(function(e) { + e.stopPropagation(); + }) + $.fn.extend({ + modalShow: function() { + modalDialogBox.find('.content-wrap').empty().append($(this).clone(true)); + modalShow(); + }, + modalHide: modalHide + }); + $.extend({ + modalHide: modalHide + }); +})(jQuery); + +/** + * Section Nav scrolling + */ + +(function($, undefined){ + var triggerPositions = []; + function getScrollPosition(e) { + var scrollID = typeof(e) == "string" && e ? e : e.attr('href'); + if (scrollID == null) return; + scrollID = scrollID.substr(1); + var elem = document.getElementById(scrollID); + if (elem && $(elem).prop('tagName') == 'A') { + location.href="#" + scrollID + "-jas"; + elem = $(elem); + pos = elem.offset(); + if ($(window).width() >= 1300 && $(window).height() >= 600) { + pos['top'] -= $("#blog-top-nav").outerHeight(); + } + return pos['top'] + } + } + function scrollLink(e) { + var pos = getScrollPosition($(this)); + if (pos != null) { + $(".section-nav a").removeClass('active'); + $(this).addClass('active'); + if (typeof(e) != "string") e.preventDefault(); + $("html,body").animate({scrollTop: pos}); + } + } + $(function(){ + $(".section-nav a").filter(function() { + return ($(this).attr('href').indexOf('#') == 0); + }).click(scrollLink); + var hash = location.hash; + if (hash && hash.indexOf('-jas') > 0) { + var hashTag = hash.substr(0, hash.lastIndexOf('-jas')); + scrollLink($(".section-nav a").filter(function(){ return $(this).attr("href") == hashTag; })); + } + }); + if ($("body").hasClass("blog-details")) { + $("#content").css('margin-top', $("#blog-top-nav").outerHeight()); + } +})(jQuery); + +/** + * Back to top button + */ +(function($, undefined) { + $(window).scroll(function() { + if ($(window).scrollTop() > 10) { + $("body").addClass('scrolled-down'); + } else { + $("body").removeClass('scrolled-down'); + } + }) +})(jQuery); +$(function() { + var btn = $("#back-to-top-button"); + if (btn.size() > 0) { + btn.click(function() { + $("html,body").animate({scrollTop: 0}); + }) + } +}); + +/** + * Card handling + */ +(function($,undefined) { + $('.blog #content .card').click(function() { + if ($(this).attr('href') != null) + location.href = $(this).attr('href'); + }).mouseleave(function() { + $("#card-abstract").removeClass('show').empty(); + }).mouseenter(function() { + $("#card-abstract").empty().append($(this).find('.abstract').clone()).addClass('show'); + }) +})(jQuery); + +(function($, undefined) { + $("#login.logged-in .drop-down-area").click(function(e) { + e.stopPropagation(); + $("#login.logged-in .drop-down-menu").toggleClass('open'); + }) + $("body").click(function() { + $("#login.logged-in .drop-down-menu").removeClass('open'); + }) +})(jQuery); diff --git a/97suifangqa/staticfiles/javascripts/respond.min.js b/97suifangqa/staticfiles/javascripts/respond.min.js new file mode 100755 index 0000000..8353e99 --- /dev/null +++ b/97suifangqa/staticfiles/javascripts/respond.min.js @@ -0,0 +1,6 @@ +/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */ +/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */ +window.matchMedia=window.matchMedia||function(a){"use strict";var c,d=a.documentElement,e=d.firstElementChild||d.firstChild,f=a.createElement("body"),g=a.createElement("div");return g.id="mq-test-1",g.style.cssText="position:absolute;top:-100em",f.style.background="none",f.appendChild(g),function(a){return g.innerHTML='­<style media="'+a+'"> #mq-test-1 { width: 42px; }</style>',d.insertBefore(f,e),c=42===g.offsetWidth,d.removeChild(f),{matches:c,media:a}}}(document); + +/*! Respond.js v1.1.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */ +(function(a){"use strict";function x(){u(!0)}var b={};if(a.respond=b,b.update=function(){},b.mediaQueriesSupported=a.matchMedia&&a.matchMedia("only all").matches,!b.mediaQueriesSupported){var q,r,t,c=a.document,d=c.documentElement,e=[],f=[],g=[],h={},i=30,j=c.getElementsByTagName("head")[0]||d,k=c.getElementsByTagName("base")[0],l=j.getElementsByTagName("link"),m=[],n=function(){for(var b=0;l.length>b;b++){var c=l[b],d=c.href,e=c.media,f=c.rel&&"stylesheet"===c.rel.toLowerCase();d&&f&&!h[d]&&(c.styleSheet&&c.styleSheet.rawCssText?(p(c.styleSheet.rawCssText,d,e),h[d]=!0):(!/^([a-zA-Z:]*\/\/)/.test(d)&&!k||d.replace(RegExp.$1,"").split("/")[0]===a.location.host)&&m.push({href:d,media:e}))}o()},o=function(){if(m.length){var b=m.shift();v(b.href,function(c){p(c,b.href,b.media),h[b.href]=!0,a.setTimeout(function(){o()},0)})}},p=function(a,b,c){var d=a.match(/@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi),g=d&&d.length||0;b=b.substring(0,b.lastIndexOf("/"));var h=function(a){return a.replace(/(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g,"$1"+b+"$2$3")},i=!g&&c;b.length&&(b+="/"),i&&(g=1);for(var j=0;g>j;j++){var k,l,m,n;i?(k=c,f.push(h(a))):(k=d[j].match(/@media *([^\{]+)\{([\S\s]+?)$/)&&RegExp.$1,f.push(RegExp.$2&&h(RegExp.$2))),m=k.split(","),n=m.length;for(var o=0;n>o;o++)l=m[o],e.push({media:l.split("(")[0].match(/(only\s+)?([a-zA-Z]+)\s?/)&&RegExp.$2||"all",rules:f.length-1,hasquery:l.indexOf("(")>-1,minw:l.match(/\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||""),maxw:l.match(/\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/)&&parseFloat(RegExp.$1)+(RegExp.$2||"")})}u()},s=function(){var a,b=c.createElement("div"),e=c.body,f=!1;return b.style.cssText="position:absolute;font-size:1em;width:1em",e||(e=f=c.createElement("body"),e.style.background="none"),e.appendChild(b),d.insertBefore(e,d.firstChild),a=b.offsetWidth,f?d.removeChild(e):e.removeChild(b),a=t=parseFloat(a)},u=function(b){var h="clientWidth",k=d[h],m="CSS1Compat"===c.compatMode&&k||c.body[h]||k,n={},o=l[l.length-1],p=(new Date).getTime();if(b&&q&&i>p-q)return a.clearTimeout(r),r=a.setTimeout(u,i),void 0;q=p;for(var v in e)if(e.hasOwnProperty(v)){var w=e[v],x=w.minw,y=w.maxw,z=null===x,A=null===y,B="em";x&&(x=parseFloat(x)*(x.indexOf(B)>-1?t||s():1)),y&&(y=parseFloat(y)*(y.indexOf(B)>-1?t||s():1)),w.hasquery&&(z&&A||!(z||m>=x)||!(A||y>=m))||(n[w.media]||(n[w.media]=[]),n[w.media].push(f[w.rules]))}for(var C in g)g.hasOwnProperty(C)&&g[C]&&g[C].parentNode===j&&j.removeChild(g[C]);for(var D in n)if(n.hasOwnProperty(D)){var E=c.createElement("style"),F=n[D].join("\n");E.type="text/css",E.media=D,j.insertBefore(E,o.nextSibling),E.styleSheet?E.styleSheet.cssText=F:E.appendChild(c.createTextNode(F)),g.push(E)}},v=function(a,b){var c=w();c&&(c.open("GET",a,!0),c.onreadystatechange=function(){4!==c.readyState||200!==c.status&&304!==c.status||b(c.responseText)},4!==c.readyState&&c.send(null))},w=function(){var b=!1;try{b=new a.XMLHttpRequest}catch(c){b=new a.ActiveXObject("Microsoft.XMLHTTP")}return function(){return b}}();n(),b.update=n,a.addEventListener?a.addEventListener("resize",x,!1):a.attachEvent&&a.attachEvent("onresize",x)}})(this); diff --git a/97suifangqa/staticfiles/markitup/jquery.markitup.js b/97suifangqa/staticfiles/markitup/jquery.markitup.js new file mode 100644 index 0000000..b7e2d03 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/jquery.markitup.js @@ -0,0 +1,665 @@ +// ---------------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// v 1.1.x +// Dual licensed under the MIT and GPL licenses. +// ---------------------------------------------------------------------------- +// Copyright (C) 2007-2012 Jay Salvat +// http://markitup.jaysalvat.com/ +// ---------------------------------------------------------------------------- +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// ---------------------------------------------------------------------------- +(function($) { + $.fn.markItUp = function(settings, extraSettings) { + var method, params, options, ctrlKey, shiftKey, altKey; ctrlKey = shiftKey = altKey = false; + + if (typeof settings == 'string') { + method = settings; + params = extraSettings; + } + + options = { id: '', + nameSpace: '', + root: '', + previewHandler: false, + previewInWindow: '', // 'width=800, height=600, resizable=yes, scrollbars=yes' + previewInElement: '', + previewAutoRefresh: true, + previewPosition: 'after', + previewTemplatePath: '~/templates/preview.html', + previewParser: false, + previewParserPath: '', + previewParserVar: 'data', + resizeHandle: true, + beforeInsert: '', + afterInsert: '', + onEnter: {}, + onShiftEnter: {}, + onCtrlEnter: {}, + onTab: {}, + markupSet: [ { /* set */ } ] + }; + $.extend(options, settings, extraSettings); + + // compute markItUp! path + if (!options.root) { + $('script').each(function(a, tag) { + miuScript = $(tag).get(0).src.match(/(.*)jquery\.markitup(\.pack)?\.js$/); + if (miuScript !== null) { + options.root = miuScript[1]; + } + }); + } + + // Quick patch to keep compatibility with jQuery 1.9 + var uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + var matched = uaMatch( navigator.userAgent ); + var browser = {}; + + if (matched.browser) { + browser[matched.browser] = true; + browser.version = matched.version; + } + if (browser.chrome) { + browser.webkit = true; + } else if (browser.webkit) { + browser.safari = true; + } + + return this.each(function() { + var $$, textarea, levels, scrollPosition, caretPosition, caretOffset, + clicked, hash, header, footer, previewWindow, template, iFrame, abort; + $$ = $(this); + textarea = this; + levels = []; + abort = false; + scrollPosition = caretPosition = 0; + caretOffset = -1; + + options.previewParserPath = localize(options.previewParserPath); + options.previewTemplatePath = localize(options.previewTemplatePath); + + if (method) { + switch(method) { + case 'remove': + remove(); + break; + case 'insert': + markup(params); + break; + default: + $.error('Method ' + method + ' does not exist on jQuery.markItUp'); + } + return; + } + + // apply the computed path to ~/ + function localize(data, inText) { + if (inText) { + return data.replace(/("|')~\//g, "$1"+options.root); + } + return data.replace(/^~\//, options.root); + } + + // init and build editor + function init() { + id = ''; nameSpace = ''; + if (options.id) { + id = 'id="'+options.id+'"'; + } else if ($$.attr("id")) { + id = 'id="markItUp'+($$.attr("id").substr(0, 1).toUpperCase())+($$.attr("id").substr(1))+'"'; + + } + if (options.nameSpace) { + nameSpace = 'class="'+options.nameSpace+'"'; + } + $$.wrap('<div '+nameSpace+'></div>'); + $$.wrap('<div '+id+' class="markItUp"></div>'); + $$.wrap('<div class="markItUpContainer"></div>'); + $$.addClass("markItUpEditor"); + + // add the header before the textarea + header = $('<div class="markItUpHeader"></div>').insertBefore($$); + $(dropMenus(options.markupSet)).appendTo(header); + + // add the footer after the textarea + footer = $('<div class="markItUpFooter"></div>').insertAfter($$); + + // add the resize handle after textarea + if (options.resizeHandle === true && browser.safari !== true) { + resizeHandle = $('<div class="markItUpResizeHandle"></div>') + .insertAfter($$) + .bind("mousedown.markItUp", function(e) { + var h = $$.height(), y = e.clientY, mouseMove, mouseUp; + mouseMove = function(e) { + $$.css("height", Math.max(20, e.clientY+h-y)+"px"); + return false; + }; + mouseUp = function(e) { + $("html").unbind("mousemove.markItUp", mouseMove).unbind("mouseup.markItUp", mouseUp); + return false; + }; + $("html").bind("mousemove.markItUp", mouseMove).bind("mouseup.markItUp", mouseUp); + }); + footer.append(resizeHandle); + } + + // listen key events + $$.bind('keydown.markItUp', keyPressed).bind('keyup', keyPressed); + + // bind an event to catch external calls + $$.bind("insertion.markItUp", function(e, settings) { + if (settings.target !== false) { + get(); + } + if (textarea === $.markItUp.focused) { + markup(settings); + } + }); + + // remember the last focus + $$.bind('focus.markItUp', function() { + $.markItUp.focused = this; + }); + + if (options.previewInElement) { + refreshPreview(); + } + } + + // recursively build header with dropMenus from markupset + function dropMenus(markupSet) { + var ul = $('<ul></ul>'), i = 0; + $('li:hover > ul', ul).css('display', 'block'); + $.each(markupSet, function() { + var button = this, t = '', title, li, j; + title = (button.key) ? (button.name||'')+' [Ctrl+'+button.key+']' : (button.name||''); + key = (button.key) ? 'accesskey="'+button.key+'"' : ''; + if (button.separator) { + li = $('<li class="markItUpSeparator">'+(button.separator||'')+'</li>').appendTo(ul); + } else { + i++; + for (j = levels.length -1; j >= 0; j--) { + t += levels[j]+"-"; + } + li = $('<li class="markItUpButton markItUpButton'+t+(i)+' '+(button.className||'')+'"><a href="" '+key+' title="'+title+'">'+(button.name||'')+'</a></li>') + .bind("contextmenu.markItUp", function() { // prevent contextmenu on mac and allow ctrl+click + return false; + }).bind('click.markItUp', function(e) { + e.preventDefault(); + }).bind("focusin.markItUp", function(){ + $$.focus(); + }).bind('mouseup', function() { + if (button.call) { + eval(button.call)(); + } + setTimeout(function() { markup(button) },1); + return false; + }).bind('mouseenter.markItUp', function() { + $('> ul', this).show(); + $(document).one('click', function() { // close dropmenu if click outside + $('ul ul', header).hide(); + } + ); + }).bind('mouseleave.markItUp', function() { + $('> ul', this).hide(); + }).appendTo(ul); + if (button.dropMenu) { + levels.push(i); + $(li).addClass('markItUpDropMenu').append(dropMenus(button.dropMenu)); + } + } + }); + levels.pop(); + return ul; + } + + // markItUp! markups + function magicMarkups(string) { + if (string) { + string = string.toString(); + string = string.replace(/\(\!\(([\s\S]*?)\)\!\)/g, + function(x, a) { + var b = a.split('|!|'); + if (altKey === true) { + return (b[1] !== undefined) ? b[1] : b[0]; + } else { + return (b[1] === undefined) ? "" : b[0]; + } + } + ); + // [![prompt]!], [![prompt:!:value]!] + string = string.replace(/\[\!\[([\s\S]*?)\]\!\]/g, + function(x, a) { + var b = a.split(':!:'); + if (abort === true) { + return false; + } + value = prompt(b[0], (b[1]) ? b[1] : ''); + if (value === null) { + abort = true; + } + return value; + } + ); + return string; + } + return ""; + } + + // prepare action + function prepare(action) { + if ($.isFunction(action)) { + action = action(hash); + } + return magicMarkups(action); + } + + // build block to insert + function build(string) { + var openWith = prepare(clicked.openWith); + var placeHolder = prepare(clicked.placeHolder); + var replaceWith = prepare(clicked.replaceWith); + var closeWith = prepare(clicked.closeWith); + var openBlockWith = prepare(clicked.openBlockWith); + var closeBlockWith = prepare(clicked.closeBlockWith); + var multiline = clicked.multiline; + + if (replaceWith !== "") { + block = openWith + replaceWith + closeWith; + } else if (selection === '' && placeHolder !== '') { + block = openWith + placeHolder + closeWith; + } else { + string = string || selection; + + var lines = [string], blocks = []; + + if (multiline === true) { + lines = string.split(/\r?\n/); + } + + for (var l = 0; l < lines.length; l++) { + line = lines[l]; + var trailingSpaces; + if (trailingSpaces = line.match(/ *$/)) { + blocks.push(openWith + line.replace(/ *$/g, '') + closeWith + trailingSpaces); + } else { + blocks.push(openWith + line + closeWith); + } + } + + block = blocks.join("\n"); + } + + block = openBlockWith + block + closeBlockWith; + + return { block:block, + openBlockWith:openBlockWith, + openWith:openWith, + replaceWith:replaceWith, + placeHolder:placeHolder, + closeWith:closeWith, + closeBlockWith:closeBlockWith + }; + } + + // define markup to insert + function markup(button) { + var len, j, n, i; + hash = clicked = button; + get(); + $.extend(hash, { line:"", + root:options.root, + textarea:textarea, + selection:(selection||''), + caretPosition:caretPosition, + ctrlKey:ctrlKey, + shiftKey:shiftKey, + altKey:altKey + } + ); + // callbacks before insertion + prepare(options.beforeInsert); + prepare(clicked.beforeInsert); + if ((ctrlKey === true && shiftKey === true) || button.multiline === true) { + prepare(clicked.beforeMultiInsert); + } + $.extend(hash, { line:1 }); + + if ((ctrlKey === true && shiftKey === true)) { + lines = selection.split(/\r?\n/); + for (j = 0, n = lines.length, i = 0; i < n; i++) { + if ($.trim(lines[i]) !== '') { + $.extend(hash, { line:++j, selection:lines[i] } ); + lines[i] = build(lines[i]).block; + } else { + lines[i] = ""; + } + } + + string = { block:lines.join('\n')}; + start = caretPosition; + len = string.block.length + ((browser.opera) ? n-1 : 0); + } else if (ctrlKey === true) { + string = build(selection); + start = caretPosition + string.openWith.length; + len = string.block.length - string.openWith.length - string.closeWith.length; + len = len - (string.block.match(/ $/) ? 1 : 0); + len -= fixIeBug(string.block); + } else if (shiftKey === true) { + string = build(selection); + start = caretPosition; + len = string.block.length; + len -= fixIeBug(string.block); + } else { + string = build(selection); + start = caretPosition + string.block.length ; + len = 0; + start -= fixIeBug(string.block); + } + if ((selection === '' && string.replaceWith === '')) { + caretOffset += fixOperaBug(string.block); + + start = caretPosition + string.openBlockWith.length + string.openWith.length; + len = string.block.length - string.openBlockWith.length - string.openWith.length - string.closeWith.length - string.closeBlockWith.length; + + caretOffset = $$.val().substring(caretPosition, $$.val().length).length; + caretOffset -= fixOperaBug($$.val().substring(0, caretPosition)); + } + $.extend(hash, { caretPosition:caretPosition, scrollPosition:scrollPosition } ); + + if (string.block !== selection && abort === false) { + insert(string.block); + set(start, len); + } else { + caretOffset = -1; + } + get(); + + $.extend(hash, { line:'', selection:selection }); + + // callbacks after insertion + if ((ctrlKey === true && shiftKey === true) || button.multiline === true) { + prepare(clicked.afterMultiInsert); + } + prepare(clicked.afterInsert); + prepare(options.afterInsert); + + // refresh preview if opened + if (previewWindow && options.previewAutoRefresh) { + refreshPreview(); + } + + // reinit keyevent + shiftKey = altKey = ctrlKey = abort = false; + } + + // Substract linefeed in Opera + function fixOperaBug(string) { + if (browser.opera) { + return string.length - string.replace(/\n*/g, '').length; + } + return 0; + } + // Substract linefeed in IE + function fixIeBug(string) { + if (browser.msie) { + return string.length - string.replace(/\r*/g, '').length; + } + return 0; + } + + // add markup + function insert(block) { + if (document.selection) { + var newSelection = document.selection.createRange(); + newSelection.text = block; + } else { + textarea.value = textarea.value.substring(0, caretPosition) + block + textarea.value.substring(caretPosition + selection.length, textarea.value.length); + } + } + + // set a selection + function set(start, len) { + if (textarea.createTextRange){ + // quick fix to make it work on Opera 9.5 + if (browser.opera && browser.version >= 9.5 && len == 0) { + return false; + } + range = textarea.createTextRange(); + range.collapse(true); + range.moveStart('character', start); + range.moveEnd('character', len); + range.select(); + } else if (textarea.setSelectionRange ){ + textarea.setSelectionRange(start, start + len); + } + textarea.scrollTop = scrollPosition; + textarea.focus(); + } + + // get the selection + function get() { + textarea.focus(); + + scrollPosition = textarea.scrollTop; + if (document.selection) { + selection = document.selection.createRange().text; + if (browser.msie) { // ie + var range = document.selection.createRange(), rangeCopy = range.duplicate(); + rangeCopy.moveToElementText(textarea); + caretPosition = -1; + while(rangeCopy.inRange(range)) { + rangeCopy.moveStart('character'); + caretPosition ++; + } + } else { // opera + caretPosition = textarea.selectionStart; + } + } else { // gecko & webkit + caretPosition = textarea.selectionStart; + + selection = textarea.value.substring(caretPosition, textarea.selectionEnd); + } + return selection; + } + + // open preview window + function preview() { + if (typeof options.previewHandler === 'function') { + previewWindow = true; + } else if (options.previewInElement) { + previewWindow = $(options.previewInElement); + } else if (!previewWindow || previewWindow.closed) { + if (options.previewInWindow) { + previewWindow = window.open('', 'preview', options.previewInWindow); + $(window).unload(function() { + previewWindow.close(); + }); + } else { + iFrame = $('<iframe class="markItUpPreviewFrame"></iframe>'); + if (options.previewPosition == 'after') { + iFrame.insertAfter(footer); + } else { + iFrame.insertBefore(header); + } + previewWindow = iFrame[iFrame.length - 1].contentWindow || frame[iFrame.length - 1]; + } + } else if (altKey === true) { + if (iFrame) { + iFrame.remove(); + } else { + previewWindow.close(); + } + previewWindow = iFrame = false; + } + if (!options.previewAutoRefresh) { + refreshPreview(); + } + if (options.previewInWindow) { + previewWindow.focus(); + } + } + + // refresh Preview window + function refreshPreview() { + renderPreview(); + } + + function renderPreview() { + var phtml; + if (options.previewHandler && typeof options.previewHandler === 'function') { + options.previewHandler( $$.val() ); + } else if (options.previewParser && typeof options.previewParser === 'function') { + var data = options.previewParser( $$.val() ); + writeInPreview(localize(data, 1) ); + } else if (options.previewParserPath !== '') { + $.ajax({ + type: 'POST', + dataType: 'text', + global: false, + url: options.previewParserPath, + data: options.previewParserVar+'='+encodeURIComponent($$.val()), + success: function(data) { + writeInPreview( localize(data, 1) ); + } + }); + } else { + if (!template) { + $.ajax({ + url: options.previewTemplatePath, + dataType: 'text', + global: false, + success: function(data) { + writeInPreview( localize(data, 1).replace(/<!-- content -->/g, $$.val()) ); + } + }); + } + } + return false; + } + + function writeInPreview(data) { + if (options.previewInElement) { + $(options.previewInElement).html(data); + } else if (previewWindow && previewWindow.document) { + try { + sp = previewWindow.document.documentElement.scrollTop + } catch(e) { + sp = 0; + } + previewWindow.document.open(); + previewWindow.document.write(data); + previewWindow.document.close(); + previewWindow.document.documentElement.scrollTop = sp; + } + } + + // set keys pressed + function keyPressed(e) { + shiftKey = e.shiftKey; + altKey = e.altKey; + ctrlKey = (!(e.altKey && e.ctrlKey)) ? (e.ctrlKey || e.metaKey) : false; + + if (e.type === 'keydown') { + if (ctrlKey === true) { + li = $('a[accesskey="'+((e.keyCode == 13) ? '\\n' : String.fromCharCode(e.keyCode))+'"]', header).parent('li'); + if (li.length !== 0) { + ctrlKey = false; + setTimeout(function() { + li.triggerHandler('mouseup'); + },1); + return false; + } + } + if (e.keyCode === 13 || e.keyCode === 10) { // Enter key + if (ctrlKey === true) { // Enter + Ctrl + ctrlKey = false; + markup(options.onCtrlEnter); + return options.onCtrlEnter.keepDefault; + } else if (shiftKey === true) { // Enter + Shift + shiftKey = false; + markup(options.onShiftEnter); + return options.onShiftEnter.keepDefault; + } else { // only Enter + markup(options.onEnter); + return options.onEnter.keepDefault; + } + } + if (e.keyCode === 9) { // Tab key + if (shiftKey == true || ctrlKey == true || altKey == true) { + return false; + } + if (caretOffset !== -1) { + get(); + caretOffset = $$.val().length - caretOffset; + set(caretOffset, 0); + caretOffset = -1; + return false; + } else { + markup(options.onTab); + return options.onTab.keepDefault; + } + } + } + } + + function remove() { + $$.unbind(".markItUp").removeClass('markItUpEditor'); + $$.parent('div').parent('div.markItUp').parent('div').replaceWith($$); + $$.data('markItUp', null); + } + + init(); + }); + }; + + $.fn.markItUpRemove = function() { + return this.each(function() { + $(this).markItUp('remove'); + } + ); + }; + + $.markItUp = function(settings) { + var options = { target:false }; + $.extend(options, settings); + if (options.target) { + return $(options.target).each(function() { + $(this).focus(); + $(this).trigger('insertion', [options]); + }); + } else { + $('textarea').trigger('insertion', [options]); + } + }; +})(jQuery); diff --git a/97suifangqa/staticfiles/markitup/markItUp_init.js b/97suifangqa/staticfiles/markitup/markItUp_init.js new file mode 100644 index 0000000..912abab --- /dev/null +++ b/97suifangqa/staticfiles/markitup/markItUp_init.js @@ -0,0 +1,3 @@ +$(document).ready(function() { + $('textarea').markItUp(mySettings); +}); diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/bold.png b/97suifangqa/staticfiles/markitup/sets/default/images/bold.png Binary files differnew file mode 100644 index 0000000..889ae80 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/bold.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/clean.png b/97suifangqa/staticfiles/markitup/sets/default/images/clean.png Binary files differnew file mode 100644 index 0000000..7e7cefb --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/clean.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/image.png b/97suifangqa/staticfiles/markitup/sets/default/images/image.png Binary files differnew file mode 100644 index 0000000..fc3c393 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/image.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/italic.png b/97suifangqa/staticfiles/markitup/sets/default/images/italic.png Binary files differnew file mode 100644 index 0000000..8482ac8 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/italic.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/link.png b/97suifangqa/staticfiles/markitup/sets/default/images/link.png Binary files differnew file mode 100644 index 0000000..25eacb7 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/link.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/list-bullet.png b/97suifangqa/staticfiles/markitup/sets/default/images/list-bullet.png Binary files differnew file mode 100644 index 0000000..4a8672b --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/list-bullet.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/list-numeric.png b/97suifangqa/staticfiles/markitup/sets/default/images/list-numeric.png Binary files differnew file mode 100644 index 0000000..33b0b8d --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/list-numeric.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/picture.png b/97suifangqa/staticfiles/markitup/sets/default/images/picture.png Binary files differnew file mode 100644 index 0000000..4a158fe --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/picture.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/preview.png b/97suifangqa/staticfiles/markitup/sets/default/images/preview.png Binary files differnew file mode 100644 index 0000000..a9925a0 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/preview.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/images/stroke.png b/97suifangqa/staticfiles/markitup/sets/default/images/stroke.png Binary files differnew file mode 100644 index 0000000..612058a --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/images/stroke.png diff --git a/97suifangqa/staticfiles/markitup/sets/default/set.js b/97suifangqa/staticfiles/markitup/sets/default/set.js new file mode 100644 index 0000000..b7fdf81 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/set.js @@ -0,0 +1,30 @@ +// ---------------------------------------------------------------------------- +// markItUp! +// ---------------------------------------------------------------------------- +// Copyright (C) 2011 Jay Salvat +// http://markitup.jaysalvat.com/ +// ---------------------------------------------------------------------------- +// Html tags +// http://en.wikipedia.org/wiki/html +// ---------------------------------------------------------------------------- +// Basic set. Feel free to add more tags +// ---------------------------------------------------------------------------- +var mySettings = { + onShiftEnter: {keepDefault:false, replaceWith:'<br />\n'}, + onCtrlEnter: {keepDefault:false, openWith:'\n<p>', closeWith:'</p>'}, + onTab: {keepDefault:false, replaceWith:' '}, + markupSet: [ + {name:'Bold', key:'B', openWith:'(!(<strong>|!|<b>)!)', closeWith:'(!(</strong>|!|</b>)!)' }, + {name:'Italic', key:'I', openWith:'(!(<em>|!|<i>)!)', closeWith:'(!(</em>|!|</i>)!)' }, + {name:'Stroke through', key:'S', openWith:'<del>', closeWith:'</del>' }, + {separator:'---------------' }, + {name:'Bulleted List', openWith:' <li>', closeWith:'</li>', multiline:true, openBlockWith:'<ul>\n', closeBlockWith:'\n</ul>'}, + {name:'Numeric List', openWith:' <li>', closeWith:'</li>', multiline:true, openBlockWith:'<ol>\n', closeBlockWith:'\n</ol>'}, + {separator:'---------------' }, + {name:'Picture', key:'P', replaceWith:'<img src="[![Source:!:http://]!]" alt="[![Alternative text]!]" />' }, + {name:'Link', key:'L', openWith:'<a href="[![Link:!:http://]!]"(!( title="[![Title]!]")!)>', closeWith:'</a>', placeHolder:'Your text to link...' }, + {separator:'---------------' }, + {name:'Clean', className:'clean', replaceWith:function(markitup) { return markitup.selection.replace(/<(.*?)>/g, "") } }, + {name:'Preview', className:'preview', call:'preview'} + ] +} diff --git a/97suifangqa/staticfiles/markitup/sets/default/style.css b/97suifangqa/staticfiles/markitup/sets/default/style.css new file mode 100644 index 0000000..336b60e --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/default/style.css @@ -0,0 +1,34 @@ +/* ------------------------------------------------------------------- +// markItUp! +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp .markItUpButton1 a { + background-image:url(images/bold.png); +} +.markItUp .markItUpButton2 a { + background-image:url(images/italic.png); +} +.markItUp .markItUpButton3 a { + background-image:url(images/stroke.png); +} + +.markItUp .markItUpButton4 a { + background-image:url(images/list-bullet.png); +} +.markItUp .markItUpButton5 a { + background-image:url(images/list-numeric.png); +} + +.markItUp .markItUpButton6 a { + background-image:url(images/picture.png); +} +.markItUp .markItUpButton7 a { + background-image:url(images/link.png); +} + +.markItUp .markItUpButton8 a { + background-image:url(images/clean.png); +} +.markItUp .preview a { + background-image:url(images/preview.png); +} diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/bold.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/bold.png Binary files differnew file mode 100644 index 0000000..889ae80 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/bold.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/code.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/code.png Binary files differnew file mode 100644 index 0000000..63fe6ce --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/code.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/h1.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/h1.png Binary files differnew file mode 100644 index 0000000..9c122e9 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/h1.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/h2.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/h2.png Binary files differnew file mode 100644 index 0000000..fbd8765 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/h2.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/h3.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/h3.png Binary files differnew file mode 100644 index 0000000..c7836cf --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/h3.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/h4.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/h4.png Binary files differnew file mode 100644 index 0000000..4e929ea --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/h4.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/h5.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/h5.png Binary files differnew file mode 100644 index 0000000..30cabeb --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/h5.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/h6.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/h6.png Binary files differnew file mode 100644 index 0000000..058170a --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/h6.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/italic.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/italic.png Binary files differnew file mode 100644 index 0000000..8482ac8 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/italic.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/link.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/link.png Binary files differnew file mode 100644 index 0000000..25eacb7 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/link.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/list-bullet.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/list-bullet.png Binary files differnew file mode 100644 index 0000000..4a8672b --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/list-bullet.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/list-numeric.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/list-numeric.png Binary files differnew file mode 100644 index 0000000..33b0b8d --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/list-numeric.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/picture.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/picture.png Binary files differnew file mode 100644 index 0000000..4a158fe --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/picture.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/preview.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/preview.png Binary files differnew file mode 100644 index 0000000..a9925a0 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/preview.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/images/quotes.png b/97suifangqa/staticfiles/markitup/sets/markdown/images/quotes.png Binary files differnew file mode 100644 index 0000000..e54ebeb --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/images/quotes.png diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/readme.txt b/97suifangqa/staticfiles/markitup/sets/markdown/readme.txt new file mode 100644 index 0000000..790fe7a --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/readme.txt @@ -0,0 +1,11 @@ +Markup language: +Markdown + +Description: +A basic Markdown markup set with Headings, Bold, Italic, Picture, Link, List, Quotes, Code, Preview button. + +Install: +- Download the zip file +- Unzip it in your markItUp! sets folder +- Modify your JS link to point at this set.js +- Modify your CSS link to point at this style.css
\ No newline at end of file diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/set.js b/97suifangqa/staticfiles/markitup/sets/markdown/set.js new file mode 100644 index 0000000..96970a4 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/set.js @@ -0,0 +1,52 @@ +// ------------------------------------------------------------------- +// markItUp! +// ------------------------------------------------------------------- +// Copyright (C) 2008 Jay Salvat +// http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------- +// MarkDown tags example +// http://en.wikipedia.org/wiki/Markdown +// http://daringfireball.net/projects/markdown/ +// ------------------------------------------------------------------- +// Feel free to add more tags +// ------------------------------------------------------------------- +mySettings = { + previewParserPath: '', + onShiftEnter: {keepDefault:false, openWith:'\n\n'}, + markupSet: [ + {name:'First Level Heading', key:'1', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '=') } }, + {name:'Second Level Heading', key:'2', placeHolder:'Your title here...', closeWith:function(markItUp) { return miu.markdownTitle(markItUp, '-') } }, + {name:'Heading 3', key:'3', openWith:'### ', placeHolder:'Your title here...' }, + {name:'Heading 4', key:'4', openWith:'#### ', placeHolder:'Your title here...' }, + {name:'Heading 5', key:'5', openWith:'##### ', placeHolder:'Your title here...' }, + {name:'Heading 6', key:'6', openWith:'###### ', placeHolder:'Your title here...' }, + {separator:'---------------' }, + {name:'Bold', key:'B', openWith:'**', closeWith:'**'}, + {name:'Italic', key:'I', openWith:'_', closeWith:'_'}, + {separator:'---------------' }, + {name:'Bulleted List', openWith:'- ' }, + {name:'Numeric List', openWith:function(markItUp) { + return markItUp.line+'. '; + }}, + {separator:'---------------' }, + {name:'Picture', key:'P', replaceWith:'![[![Alternative text]!]]([![Url:!:http://]!] "[![Title]!]")'}, + {name:'Link', key:'L', openWith:'[', closeWith:']([![Url:!:http://]!] "[![Title]!]")', placeHolder:'Your text to link here...' }, + {separator:'---------------'}, + {name:'Quotes', openWith:'> '}, + {name:'Code Block / Code', openWith:'(!(\t|!|`)!)', closeWith:'(!(`)!)'}, + {separator:'---------------'}, + {name:'Preview', call:'preview', className:"preview"} + ] +} + +// mIu nameSpace to avoid conflict. +miu = { + markdownTitle: function(markItUp, char) { + heading = ''; + n = $.trim(markItUp.selection||markItUp.placeHolder).length; + for(i = 0; i < n; i++) { + heading += char; + } + return '\n'+heading; + } +}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/markitup/sets/markdown/style.css b/97suifangqa/staticfiles/markitup/sets/markdown/style.css new file mode 100644 index 0000000..03c3aea --- /dev/null +++ b/97suifangqa/staticfiles/markitup/sets/markdown/style.css @@ -0,0 +1,54 @@ +/* ------------------------------------------------------------------- +// markItUp! +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp .markItUpButton1 a { + background-image:url(images/h1.png); +} +.markItUp .markItUpButton2 a { + background-image:url(images/h2.png); +} +.markItUp .markItUpButton3 a { + background-image:url(images/h3.png); +} +.markItUp .markItUpButton4 a { + background-image:url(images/h4.png); +} +.markItUp .markItUpButton5 a { + background-image:url(images/h5.png); +} +.markItUp .markItUpButton6 a { + background-image:url(images/h6.png); +} + +.markItUp .markItUpButton7 a { + background-image:url(images/bold.png); +} +.markItUp .markItUpButton8 a { + background-image:url(images/italic.png); +} + +.markItUp .markItUpButton9 a { + background-image:url(images/list-bullet.png); +} +.markItUp .markItUpButton10 a { + background-image:url(images/list-numeric.png); +} + +.markItUp .markItUpButton11 a { + background-image:url(images/picture.png); +} +.markItUp .markItUpButton12 a { + background-image:url(images/link.png); +} + +.markItUp .markItUpButton13 a { + background-image:url(images/quotes.png); +} +.markItUp .markItUpButton14 a { + background-image:url(images/code.png); +} + +.markItUp .preview a { + background-image:url(images/preview.png); +}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-container.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-container.png Binary files differnew file mode 100644 index 0000000..ec38b8e --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-container.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-bbcode.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-bbcode.png Binary files differnew file mode 100644 index 0000000..39cdbd8 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-bbcode.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-dotclear.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-dotclear.png Binary files differnew file mode 100644 index 0000000..b3188dc --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-dotclear.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-html.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-html.png Binary files differnew file mode 100644 index 0000000..11bff45 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-html.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-json.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-json.png Binary files differnew file mode 100644 index 0000000..e898c1d --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-json.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-markdown.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-markdown.png Binary files differnew file mode 100644 index 0000000..c199715 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-markdown.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-textile.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-textile.png Binary files differnew file mode 100644 index 0000000..3ab1e9f --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-textile.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-wiki.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-wiki.png Binary files differnew file mode 100644 index 0000000..7887181 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-wiki.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-xml.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-xml.png Binary files differnew file mode 100644 index 0000000..33b1c5d --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor-xml.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor.png Binary files differnew file mode 100644 index 0000000..ab7cde4 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/bg-editor.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/handle.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/handle.png Binary files differnew file mode 100644 index 0000000..3993b20 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/handle.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/menu.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/menu.png Binary files differnew file mode 100644 index 0000000..de337c8 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/menu.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/images/submenu.png b/97suifangqa/staticfiles/markitup/skins/markitup/images/submenu.png Binary files differnew file mode 100644 index 0000000..03d1977 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/images/submenu.png diff --git a/97suifangqa/staticfiles/markitup/skins/markitup/style.css b/97suifangqa/staticfiles/markitup/skins/markitup/style.css new file mode 100644 index 0000000..c11c2ea --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/markitup/style.css @@ -0,0 +1,147 @@ +/* ------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp * { + margin:0px; padding:0px; + outline:none; +} +.markItUp a:link, +.markItUp a:visited { + color:#000; + text-decoration:none; +} +.markItUp { + width:700px; + margin:5px 0 5px 0; + border:5px solid #F5F5F5; +} +.markItUpContainer { + border:1px solid #3C769D; + background:#FFF url(images/bg-container.png) repeat-x top left; + padding:5px 5px 2px 5px; + font:11px Verdana, Arial, Helvetica, sans-serif; +} +.markItUpEditor { + font:12px 'Courier New', Courier, monospace; + padding:5px 5px 5px 35px; + border:3px solid #3C769D; + width:643px; + height:320px; + background:#FFF url(images/bg-editor.png) no-repeat; + clear:both; + line-height:18px; + overflow:auto; +} +.markItUpPreviewFrame { + overflow:auto; + background-color:#FFFFFF; + border:1px solid #3C769D; + width:99.9%; + height:300px; + margin:5px 0; +} +.markItUpFooter { + width:100%; + cursor:n-resize; +} +.markItUpResizeHandle { + overflow:hidden; + width:22px; height:5px; + margin-left:auto; + margin-right:auto; + background-image:url(images/handle.png); + cursor:n-resize; +} +/***************************************************************************************/ +/* first row of buttons */ +.markItUpHeader ul li { + list-style:none; + float:left; + position:relative; +} +.markItUpHeader ul li ul{ + display:none; +} +.markItUpHeader ul li:hover > ul{ + display:block; +} +.markItUpHeader ul .markItUpDropMenu { + background:transparent url(images/menu.png) no-repeat 115% 50%; + margin-right:5px; +} +.markItUpHeader ul .markItUpDropMenu li { + margin-right:0px; +} +.markItUpHeader ul .markItUpSeparator { + margin:0 10px; + width:1px; + height:16px; + overflow:hidden; + background-color:#CCC; +} +.markItUpHeader ul ul .markItUpSeparator { + width:auto; height:1px; + margin:0px; +} +/* next rows of buttons */ +.markItUpHeader ul ul { + display:none; + position:absolute; + top:18px; left:0px; + background:#F5F5F5; + border:1px solid #3C769D; + height:inherit; +} +.markItUpHeader ul ul li { + float:none; + border-bottom:1px solid #3C769D; +} +.markItUpHeader ul ul .markItUpDropMenu { + background:#F5F5F5 url(images/submenu.png) no-repeat 100% 50%; +} +/* next rows of buttons */ +.markItUpHeader ul ul ul { + position:absolute; + top:-1px; left:150px; +} +.markItUpHeader ul ul ul li { + float:none; +} +.markItUpHeader ul a { + display:block; + width:16px; height:16px; + text-indent:-10000px; + background-repeat:no-repeat; + padding:3px; + margin:0px; +} +.markItUpHeader ul ul a { + display:block; + padding-left:0px; + text-indent:0; + width:120px; + padding:5px 5px 5px 25px; + background-position:2px 50%; +} +.markItUpHeader ul ul a:hover { + color:#FFF; + background-color:#3C769D; +} +/***************************************************************************************/ +.html .markItUpEditor { + background-image:url(images/bg-editor-html.png); +} +.markdown .markItUpEditor { + background-image:url(images/bg-editor-markdown.png); +} +.textile .markItUpEditor { + background-image:url(images/bg-editor-textile.png); +} +.bbcode .markItUpEditor { + background-image:url(images/bg-editor-bbcode.png); +} +.wiki .markItUpEditor, +.dotclear .markItUpEditor { + background-image:url(images/bg-editor-wiki.png); +}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/markitup/skins/simple/images/handle.png b/97suifangqa/staticfiles/markitup/skins/simple/images/handle.png Binary files differnew file mode 100644 index 0000000..3993b20 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/simple/images/handle.png diff --git a/97suifangqa/staticfiles/markitup/skins/simple/images/menu.png b/97suifangqa/staticfiles/markitup/skins/simple/images/menu.png Binary files differnew file mode 100644 index 0000000..44a07af --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/simple/images/menu.png diff --git a/97suifangqa/staticfiles/markitup/skins/simple/images/submenu.png b/97suifangqa/staticfiles/markitup/skins/simple/images/submenu.png Binary files differnew file mode 100644 index 0000000..03d1977 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/simple/images/submenu.png diff --git a/97suifangqa/staticfiles/markitup/skins/simple/style.css b/97suifangqa/staticfiles/markitup/skins/simple/style.css new file mode 100644 index 0000000..fe3753c --- /dev/null +++ b/97suifangqa/staticfiles/markitup/skins/simple/style.css @@ -0,0 +1,118 @@ +/* ------------------------------------------------------------------- +// markItUp! Universal MarkUp Engine, JQuery plugin +// By Jay Salvat - http://markitup.jaysalvat.com/ +// ------------------------------------------------------------------*/ +.markItUp * { + margin:0px; padding:0px; + outline:none; +} +.markItUp a:link, +.markItUp a:visited { + color:#000; + text-decoration:none; +} +.markItUp { + width:700px; + margin:5px 0 5px 0; +} +.markItUpContainer { + font:11px Verdana, Arial, Helvetica, sans-serif; +} +.markItUpEditor { + font:12px 'Courier New', Courier, monospace; + padding:5px; + width:690px; + height:320px; + clear:both; + line-height:18px; + overflow:auto; +} +.markItUpPreviewFrame { + overflow:auto; + background-color:#FFF; + width:99.9%; + height:300px; + margin:5px 0; +} +.markItUpFooter { + width:100%; +} +.markItUpResizeHandle { + overflow:hidden; + width:22px; height:5px; + margin-left:auto; + margin-right:auto; + background-image:url(images/handle.png); + cursor:n-resize; +} +/***************************************************************************************/ +/* first row of buttons */ +.markItUpHeader ul li { + list-style:none; + float:left; + position:relative; +} +.markItUpHeader ul li:hover > ul{ + display:block; +} +.markItUpHeader ul .markItUpDropMenu { + background:transparent url(images/menu.png) no-repeat 115% 50%; + margin-right:5px; +} +.markItUpHeader ul .markItUpDropMenu li { + margin-right:0px; +} +/* next rows of buttons */ +.markItUpHeader ul ul { + display:none; + position:absolute; + top:18px; left:0px; + background:#FFF; + border:1px solid #000; +} +.markItUpHeader ul ul li { + float:none; + border-bottom:1px solid #000; +} +.markItUpHeader ul ul .markItUpDropMenu { + background:#FFF url(images/submenu.png) no-repeat 100% 50%; +} +.markItUpHeader ul .markItUpSeparator { + margin:0 10px; + width:1px; + height:16px; + overflow:hidden; + background-color:#CCC; +} +.markItUpHeader ul ul .markItUpSeparator { + width:auto; height:1px; + margin:0px; +} +/* next rows of buttons */ +.markItUpHeader ul ul ul { + position:absolute; + top:-1px; left:150px; +} +.markItUpHeader ul ul ul li { + float:none; +} +.markItUpHeader ul a { + display:block; + width:16px; height:16px; + text-indent:-10000px; + background-repeat:no-repeat; + padding:3px; + margin:0px; +} +.markItUpHeader ul ul a { + display:block; + padding-left:0px; + text-indent:0; + width:120px; + padding:5px 5px 5px 25px; + background-position:2px 50%; +} +.markItUpHeader ul ul a:hover { + color:#FFF; + background-color:#000; +} diff --git a/97suifangqa/staticfiles/markitup/templates/preview.css b/97suifangqa/staticfiles/markitup/templates/preview.css new file mode 100644 index 0000000..ad91a87 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/templates/preview.css @@ -0,0 +1,5 @@ +/* preview style examples */ +body { + background-color:#EFEFEF; + font:70% Verdana, Arial, Helvetica, sans-serif; +}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/markitup/templates/preview.html b/97suifangqa/staticfiles/markitup/templates/preview.html new file mode 100644 index 0000000..b8b3702 --- /dev/null +++ b/97suifangqa/staticfiles/markitup/templates/preview.html @@ -0,0 +1,11 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<title>markItUp! preview template</title> +<link rel="stylesheet" type="text/css" href="~/templates/preview.css" /> +</head> +<body> +<!-- content --> +</body> +</html> diff --git a/97suifangqa/staticfiles/stylesheets/base.css b/97suifangqa/staticfiles/stylesheets/base.css new file mode 100644 index 0000000..39f9e0c --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/base.css @@ -0,0 +1,10 @@ +/**
+ * @file
+ * Base css imports
+ */
+@import url(sass/normalize.css);
+@import url(sass/elements.css);
+@import url(sass/layouts/content-layout.css);
+@import url(sass/layouts/fixed-width.css);
+@import url(sass/pages.css);
+@import url(sass/navigation.css);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/stylesheets/sass/blocks.css b/97suifangqa/staticfiles/stylesheets/sass/blocks.css new file mode 100644 index 0000000..3178510 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/blocks.css @@ -0,0 +1,164 @@ +/**
+ * @file
+ * Block Styling
+ */
+/* line 9, ../../../sass/sass/blocks.scss */
+.block {
+ /* Block wrapper */
+ margin-bottom: 1.5em;
+}
+/* line 12, ../../../sass/sass/blocks.scss */
+.block.first {
+ /* The first block in the region */
+}
+/* line 15, ../../../sass/sass/blocks.scss */
+.block.last {
+ /* The last block in the region */
+}
+/* line 18, ../../../sass/sass/blocks.scss */
+.block.odd {
+ /* Zebra striping for each block in the region */
+}
+/* line 21, ../../../sass/sass/blocks.scss */
+.block.even {
+ /* Zebra striping for each block in the region */
+}
+/* line 24, ../../../sass/sass/blocks.scss */
+.block h2.block-title {
+ /* Block title */
+}
+
+/* line 29, ../../../sass/sass/blocks.scss */
+#block-aggregator-category-1 {
+ /* Block for the latest news items in the first category */
+}
+
+/* line 32, ../../../sass/sass/blocks.scss */
+#block-aggregator-feed-1 {
+ /* Block for the latest news items in the first feed */
+}
+
+/* line 35, ../../../sass/sass/blocks.scss */
+#block-block-1 {
+ /* First block created with "Add block" link */
+}
+
+/* line 38, ../../../sass/sass/blocks.scss */
+#block-blog-recent {
+ /* "Recent blog posts" block */
+}
+
+/* line 41, ../../../sass/sass/blocks.scss */
+#block-book-navigation {
+ /* "Book navigation" block for the current book's table of contents */
+}
+
+/* line 44, ../../../sass/sass/blocks.scss */
+#block-comment-recent {
+ /* "Recent comments" block */
+}
+
+/* line 47, ../../../sass/sass/blocks.scss */
+#block-forum-active {
+ /* "Active forum topics" block */
+}
+
+/* line 50, ../../../sass/sass/blocks.scss */
+#block-forum-new {
+ /* "New forum topics" block */
+}
+
+/* line 53, ../../../sass/sass/blocks.scss */
+#block-locale-language {
+ /* Language switcher block */
+}
+
+/* line 56, ../../../sass/sass/blocks.scss */
+#block-menu-menu-NAME {
+ /* Custom menu block */
+}
+
+/* line 59, ../../../sass/sass/blocks.scss */
+#block-node-recent {
+ /* "Recent content" block */
+}
+
+/* line 62, ../../../sass/sass/blocks.scss */
+#block-node-syndicate {
+ /* "Syndicate" block for primary RSS feed; see also page.css's .feed-icon */
+}
+
+/* line 65, ../../../sass/sass/blocks.scss */
+#block-poll-recent {
+ /* "Most recent poll" block */
+}
+
+/* line 68, ../../../sass/sass/blocks.scss */
+#block-profile-author-information {
+ /* "Author information" block for the profile of the page's author */
+}
+
+/* line 71, ../../../sass/sass/blocks.scss */
+#block-search-form {
+ /* "Search form" block */
+}
+
+/* line 74, ../../../sass/sass/blocks.scss */
+#block-shortcut-shortcuts {
+ /* "Shortcuts" block */
+}
+
+/* line 77, ../../../sass/sass/blocks.scss */
+#block-statistics-popular {
+ /* "Popular content" block */
+}
+
+/* line 80, ../../../sass/sass/blocks.scss */
+#block-system-main-menu {
+ /* "Main menu" block */
+}
+
+/* line 83, ../../../sass/sass/blocks.scss */
+#block-system-management {
+ /* "Management" block for Drupal management menu */
+}
+
+/* line 86, ../../../sass/sass/blocks.scss */
+#block-system-navigation {
+ /* "Navigation" block for Drupal navigation menu */
+}
+
+/* line 89, ../../../sass/sass/blocks.scss */
+#block-system-user-menu {
+ /* "User menu" block for Drupal user menu */
+}
+
+/* line 92, ../../../sass/sass/blocks.scss */
+#block-system-help {
+ /* "System help" block */
+}
+
+/* line 95, ../../../sass/sass/blocks.scss */
+#block-system-main {
+ /* "Main page content" block */
+}
+
+/* line 98, ../../../sass/sass/blocks.scss */
+#block-system-powered-by {
+ /* "Powered by Drupal" block */
+}
+
+/* line 101, ../../../sass/sass/blocks.scss */
+#block-user-login {
+ /* "User login form" block */
+}
+
+/* line 104, ../../../sass/sass/blocks.scss */
+#block-user-new {
+ /* "Who's new" block for a list of the newest users */
+}
+
+/* line 107, ../../../sass/sass/blocks.scss */
+#block-user-online {
+ /* "Who's online" block for a list of the online users */
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/blog.css b/97suifangqa/staticfiles/stylesheets/sass/blog.css new file mode 100644 index 0000000..424fb4c --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/blog.css @@ -0,0 +1,1185 @@ +@charset "UTF-8";
+/**
+ * @file
+ * Blog specific styles
+ * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com>
+ */
+/* line 10, ../../../sass/sass/blog.scss */
+body.scrolled-down.blog #blog-top-nav {
+ background-color: white;
+}
+/* line 13, ../../../sass/sass/blog.scss */
+body.scrolled-down.blog #blog-top-nav .background {
+ border-bottom: 1px solid #eee;
+}
+
+/* line 22, ../../../sass/sass/blog.scss */
+.blog .post-question input[type="text"] {
+ background-color: #8b8885;
+ color: white;
+ border: 1px solid white;
+ -webkit-box-shadow: 0px 0px 2px white;
+ -moz-box-shadow: 0px 0px 2px white;
+ box-shadow: 0px 0px 2px white;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"].placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus.placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"].input-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus.input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:-moz-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus:-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]::-webkit-input-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus::-webkit-input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]::-moz-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus::-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:-ms-input-placeholder {
+ color: #eeeeee;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+.blog .post-question input[type="text"]:focus:-ms-input-placeholder {
+ color: transparent;
+}
+/* line 32, ../../../sass/sass/blog.scss */
+.blog #sidebar-first #header {
+ position: absolute;
+ bottom: 30px;
+ text-align: center;
+ width: auto;
+}
+/* line 40, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon {
+ font-size: 1.07143em;
+ line-height: 1.33333em;
+ margin-bottom: 1.5em;
+ color: white;
+ position: relative;
+ white-space: nowrap;
+ height: 33px;
+ min-width: 89px;
+ -webkit-transition: min-width 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: min-width 0.3s ease 0s;
+ -o-transition: min-width 0.3s ease 0s;
+ transition: min-width 0.3s ease 0s;
+}
+/* line 56, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .controls-wrap,
+.blog #nav-ribbon .head-background,
+.blog #nav-ribbon .tail-cut {
+ height: 33px;
+}
+/* line 60, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .controls-wrap {
+ position: absolute;
+ padding-left: 20px;
+}
+/* line 67, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .head-background,
+.blog #nav-ribbon .links-wrap,
+.blog #nav-ribbon .tail {
+ background-color: #0063a8;
+}
+/* line 71, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .head-background {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 20px;
+ -webkit-box-shadow: inset 20px 0px 20px -20px;
+ -moz-box-shadow: inset 20px 0px 20px -20px;
+ box-shadow: inset 20px 0px 20px -20px;
+}
+/* line 81, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .links-wrap,
+.blog #nav-ribbon .tail,
+.blog #nav-ribbon .tail-cut {
+ float: left;
+}
+/* line 85, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .links-wrap {
+ -webkit-transition: width 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: width 0.3s ease 0s;
+ -o-transition: width 0.3s ease 0s;
+ transition: width 0.3s ease 0s;
+ width: 0px;
+ overflow: hidden;
+}
+/* line 93, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon:hover .links-wrap, .blog #nav-ribbon.active .links-wrap,
+.blog #nav-ribbon ul.links {
+ width: 174px;
+}
+/* line 100, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon:hover, .blog #nav-ribbon.active {
+ min-width: 263px;
+}
+/* line 105, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon ul.links li a,
+.blog #nav-ribbon .tail {
+ line-height: 33px;
+ text-align: center;
+}
+/* line 110, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon ul.links {
+ display: block;
+ white-space: nowrap;
+ margin: 0;
+ padding: 0;
+}
+/* line 115, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon ul.links li {
+ display: block;
+ padding: 0;
+ float: left;
+}
+/* line 119, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon ul.links li a {
+ width: 86px;
+ display: block;
+ color: white;
+ border-right: 1px solid #267ab5;
+}
+/* line 126, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon ul.links li a:hover, .blog #nav-ribbon ul.links li a:active, .blog #nav-ribbon ul.links li a.active {
+ text-decoration: none;
+ background-color: #00497f;
+}
+/* line 134, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .tail {
+ width: 50px;
+ cursor: pointer;
+}
+/* line 139, ../../../sass/sass/blog.scss */
+.blog #nav-ribbon .tail-cut {
+ width: 19px;
+ height: 33px;
+ background: url(../../images/nav-ribbon-tail-cut.png);
+}
+
+/* line 150, ../../../sass/sass/blog.scss */
+.blog-details #return-to-results-button {
+ visibility: hidden;
+}
+/* line 154, ../../../sass/sass/blog.scss */
+.blog-details.blog-results-detail #return-to-results-button {
+ visibility: visible;
+}
+/* line 159, ../../../sass/sass/blog.scss */
+.blog-details a.jargon:hover {
+ text-decoration: none;
+ border-bottom: 1px dashed;
+}
+/* line 163, ../../../sass/sass/blog.scss */
+.blog-details .jargon-explanations {
+ display: none;
+}
+/* line 168, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .region-wrap,
+.blog-details #content .region-wrap {
+ padding-top: 0.5em;
+ padding-left: 2em;
+ padding-right: 2em;
+}
+/* line 177, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav {
+ z-index: 10;
+ position: absolute;
+}
+/* line 181, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb {
+ margin-top: 1.5em;
+}
+/* line 184, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li {
+ padding-right: 0;
+}
+/* line 186, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li a.button {
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+}
+/* line 191, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li a.button.first {
+ background-image: url(../../images/breadcrumb-dark-grey-button-left-arrow-wbg.png);
+ background-position: center left;
+ background-repeat: no-repeat;
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ -ms-border-radius: 0 3px 3px 0;
+ -o-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+ border: none;
+ padding-left: 20px;
+}
+/* line 198, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .breadcrumb ul.inline li a.button.first:hover {
+ background-color: #4c4948;
+}
+/* line 211, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-name {
+ font-size: 18px;
+ color: #9fa0a0;
+}
+/* line 215, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav {
+ width: auto;
+}
+/* line 222, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links {
+ display: block;
+ width: auto;
+ margin: 0;
+}
+/* line 226, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li {
+ margin-right: 3em;
+ padding: 0;
+}
+/* line 229, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li a {
+ color: inherit;
+}
+/* line 231, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li a.active {
+ color: #006699;
+ border-bottom: 1px solid #006699;
+ text-decoration: none;
+}
+/* line 237, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links:hover li a.active {
+ color: inherit;
+ border-bottom: none;
+}
+/* line 244, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .section-nav ul.links li a:hover, .blog-details #blog-top-nav .section-nav ul.links:hover li a:hover {
+ color: #006699;
+ border-bottom: 1px solid #006699;
+ text-decoration: none;
+}
+/* line 250, ../../../sass/sass/blog.scss */
+.blog-details #blog-top-nav .background {
+ z-index: -1;
+ position: absolute;
+ top: 0;
+ bottom: -2px;
+ left: 0;
+ right: 0;
+ margin-left: 2em;
+ margin-right: 2em;
+ background-color: white;
+ border-bottom: 1px solid transparent;
+}
+/* line 265, ../../../sass/sass/blog.scss */
+.blog-details #content {
+ margin-top: 150px;
+ position: relative;
+}
+/* line 268, ../../../sass/sass/blog.scss */
+.blog-details #content .text {
+ font-size: 1.14286em;
+ line-height: 1.6875em;
+}
+/* line 270, ../../../sass/sass/blog.scss */
+.blog-details #content .text h3 {
+ font-size: 1.1em;
+ color: #4c4a49;
+}
+/* line 274, ../../../sass/sass/blog.scss */
+.blog-details #content .text h4 {
+ color: #4c4a49;
+}
+/* line 280, ../../../sass/sass/blog.scss */
+.blog-details #content .text .image-wrap {
+ border: 1px solid #c9caca;
+ margin-bottom: 1.14286em;
+}
+/* line 285, ../../../sass/sass/blog.scss */
+.blog-details #content .text a.enlarge-image {
+ cursor: pointer;
+ cursor: url(../../images/zoom.cur), auto;
+}
+/* line 290, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box {
+ z-index: 1;
+ position: absolute;
+ display: none;
+ position: absolute;
+ margin-top: 8px;
+ left: 20px;
+ right: 20px;
+ background-color: white;
+ border: 1px solid #8fc31f;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ -webkit-box-shadow: 0px 0px 30px #999999;
+ -moz-box-shadow: 0px 0px 30px #999999;
+ box-shadow: 0px 0px 30px #999999;
+}
+/* line 105, ../../../sass/sass/_custom.scss */
+.blog-details #content .jargon-explanation-box.open {
+ display: block;
+}
+/* line 300, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap {
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+ padding-top: 0.7em;
+}
+/* line 306, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap .jargon-details {
+ min-height: 150px;
+ max-height: 200px;
+ overflow: auto;
+}
+/* line 311, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap .references {
+ font-size: 0.8em;
+ font-style: italic;
+}
+/* line 316, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .text-pointer {
+ z-index: 10;
+ position: absolute;
+ width: 20px;
+ height: 8px;
+ background-image: url(../../images/popup-text-pointer.png);
+ top: -8px;
+ margin-left: -10px;
+ left: 10px;
+}
+/* line 326, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .close-box {
+ z-index: 1;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background: url(../../images/grey-cross.png) no-repeat center center;
+ cursor: pointer;
+ right: 1.5em;
+ top: 1.5em;
+}
+/* line 336, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box h3.name {
+ margin: 0;
+ border-bottom: 1px solid #c9cacb;
+ margin-top: 0em;
+ margin-bottom: 1em;
+}
+/* line 342, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .like-button {
+ display: block;
+ margin: 1em;
+ width: auto;
+}
+/* line 347, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .like-button * {
+ vertical-align: middle;
+}
+/* line 350, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .like-button a.login-button {
+ vertical-align: top;
+}
+/* line 356, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .content-wrap,
+.blog-details #content .jargon-explanation-box .like-button {
+ visibility: hidden;
+}
+/* line 360, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box .loading-image {
+ visibility: visible;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin-top: -38.5px;
+ margin-left: -53.5px;
+}
+/* line 371, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.loaded .content-wrap,
+.blog-details #content .jargon-explanation-box.loaded .like-button {
+ visibility: visible;
+}
+/* line 374, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.loaded .loading-image {
+ visibility: hidden;
+}
+/* line 378, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.modal {
+ position: fixed;
+ z-index: 2001;
+ padding: 0;
+ left: 50%;
+ margin-left: -350px;
+ width: 700px;
+ top: 50% !important;
+ -webkit-box-shadow: 0px 0px 30px #444444;
+ -moz-box-shadow: 0px 0px 30px #444444;
+ box-shadow: 0px 0px 30px #444444;
+}
+/* line 383, ../../../sass/sass/blog.scss */
+.blog-details #content .jargon-explanation-box.modal .text-pointer {
+ display: none;
+}
+/* line 390, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card-brief {
+ font-size: 0.875em;
+ line-height: 1.63265em;
+}
+/* line 393, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card {
+ font-size: 0.875em;
+ line-height: 1.30612em;
+ cursor: pointer;
+ border: 1px solid #c9caca;
+}
+/* line 397, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .back .card-wrap {
+ height: 200px;
+ color: white;
+ background-color: #4c4948;
+ background-image: url(../../images/card-bg-grey.png);
+ background-repeat: no-repeat;
+ background-position: center center;
+ text-align: center;
+ line-height: 1.5em;
+}
+/* line 407, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .back .card-wrap .content-wrap {
+ padding-top: 2em;
+}
+/* line 411, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap {
+ height: 200px;
+ position: relative;
+ overflow: hidden;
+}
+/* line 415, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap .card-title {
+ font-weight: normal;
+ background-color: #4c4948;
+ color: white;
+ margin: 0;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ width: auto;
+ line-height: 50px;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+/* line 433, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap .card-subtitle {
+ font-size: 0.95em;
+ font-weight: normal;
+ color: white;
+ background-color: #3e3a39;
+ padding: 0;
+ margin: 0;
+ position: absolute;
+ bottom: 50px;
+ left: 0;
+ right: 0;
+ padding-left: 0.5em;
+ padding-top: 0.1em;
+ padding-bottom: 0.1em;
+}
+/* line 450, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front .card-wrap .card-details {
+ padding: 0.5em;
+}
+/* line 455, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front {
+ height: 200px;
+}
+/* line 459, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .back {
+ height: 0;
+}
+/* line 463, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .abstract {
+ display: none;
+}
+/* line 468, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card .front,
+.blog-details #content .cards .card .back {
+ overflow: hidden;
+ -webkit-transition: height 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: height 0.3s ease 0s;
+ -o-transition: height 0.3s ease 0s;
+ transition: height 0.3s ease 0s;
+}
+/* line 475, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card:hover .front, .blog-details #content .cards .card:active .front {
+ height: 0;
+}
+/* line 478, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card:hover .back, .blog-details #content .cards .card:active .back {
+ height: 200px;
+}
+/* line 484, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .back .card-wrap {
+ background-image: url(../../images/card-bg-green.png);
+ background-color: #8fc41f;
+}
+/* line 488, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .front .card-wrap {
+ color: #8fc41f;
+}
+/* line 490, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .front .card-wrap .card-title {
+ background-color: #8fc41f;
+}
+/* line 493, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.green .front .card-wrap .card-subtitle {
+ background-color: #7cb617;
+}
+/* line 500, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .back .card-wrap {
+ background-image: url(../../images/card-bg-blue.png);
+ background-color: #0063a8;
+}
+/* line 504, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .front .card-wrap {
+ color: #006699;
+}
+/* line 506, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .front .card-wrap .card-title {
+ background-color: #0063a8;
+}
+/* line 509, ../../../sass/sass/blog.scss */
+.blog-details #content .cards .card.blue .front .card-wrap .card-subtitle {
+ background-color: #00508f;
+}
+/* line 517, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first,
+.blog-details #sidebar-second {
+ position: absolute;
+ min-height: 650px;
+ height: auto;
+ top: 0;
+ bottom: 0;
+}
+/* line 525, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second #login {
+ margin-top: 1.5em;
+}
+/* line 528, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social {
+ font-size: 1em;
+ line-height: 1.42857em;
+ margin-top: 3em;
+}
+/* line 532, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons li {
+ padding: 0;
+}
+/* line 535, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons .multi-segment-button .segment.first {
+ width: 60px;
+ white-space: nowrap;
+ overflow: hidden;
+}
+/* line 540, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons .multi-segment-button {
+ font-weight: bold;
+}
+/* line 544, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons #like-button .like-button {
+ background-image: url(../../images/grey-star.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+}
+/* line 550, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons #no-idea-button {
+ float: right;
+}
+/* line 552, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .social ul.buttons #no-idea-button .no-idea-button {
+ background-image: url(../../images/white-unhappy-face.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+}
+/* line 561, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments {
+ margin-top: 2.5em;
+}
+/* line 563, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol {
+ font-size: 0.92857em;
+ line-height: 1.38462em;
+ max-height: 400px;
+ overflow: hidden;
+ overflow: auto;
+ counter-reset: comments-counter;
+ margin: 0;
+ padding: 0;
+}
+/* line 571, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol li:before {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ width: 1.3em;
+ text-align: center;
+ font-family: "Courier New", "DejaVu Sans Mono", monospace, sans-serif, "STHeiti", "WenQuanYi Micro Hei", "Microsoft YaHei", SimSun, sans-serif;
+ background-color: #898989;
+ color: white;
+ float: left;
+ margin-left: -2em;
+ padding-left: 0.05em;
+ content: counter(comments-counter);
+ counter-increment: comments-counter;
+}
+/* line 581, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol li {
+ margin-left: 2em;
+ margin-bottom: 1em;
+}
+/* line 584, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .comments ol li a {
+ color: inherit;
+}
+/* line 592, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second #card-abstract {
+ margin-top: 3em;
+ -webkit-transition: all ease;
+ -webkit-transition-delay: 0.5s;
+ -moz-transition: all ease 0.5s;
+ -o-transition: all ease 0.5s;
+ transition: all ease 0.5s;
+ visibility: hidden;
+ opacity: 0;
+}
+/* line 124, ../../../sass/sass/_custom.scss */
+.blog-details #sidebar-second #card-abstract.show {
+ visibility: visible;
+ opacity: 1;
+}
+/* line 598, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list {
+ font-size: 1em;
+ line-height: 1.71429em;
+}
+/* line 600, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul {
+ margin: 0;
+ padding: 0;
+ max-height: 400px;
+ overflow: auto;
+}
+/* line 605, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul li {
+ padding: 0;
+}
+/* line 607, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul li a {
+ outline: 0;
+ display: block;
+ color: inherit;
+ text-decoration: none;
+ padding-left: 1.5em;
+ padding-top: 0.3em;
+ padding-bottom: 0.3em;
+}
+/* line 619, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-second .jargon-list ul li a:hover,
+.blog-details #sidebar-second .jargon-list ul li a .active {
+ background-color: #898989;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ color: white;
+ text-decoration: none;
+}
+/* line 630, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first {
+ z-index: 10;
+ padding-top: 1.5em;
+ padding-bottom: 1.5em;
+}
+/* line 637, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first #nav-ribbon {
+ margin-left: -20px;
+}
+/* line 640, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .post-question {
+ overflow: hidden;
+ width: auto;
+}
+/* line 643, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .post-question .question {
+ width: 60%;
+}
+/* line 646, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .post-question .submit {
+ float: right;
+ width: 30%;
+}
+/* line 651, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .related-questions {
+ padding: 8px;
+ padding-left: 15px;
+ padding-right: 15px;
+ background-color: white;
+ margin-top: 1em;
+ -webkit-box-shadow: 0px 0px 20px #bbbbbb;
+ -moz-box-shadow: 0px 0px 20px #bbbbbb;
+ box-shadow: 0px 0px 20px #bbbbbb;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+}
+/* line 658, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .related-questions h3 {
+ margin: 0;
+ line-height: 1.5em;
+}
+/* line 665, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .related-questions a {
+ color: #727171;
+}
+/* line 669, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc {
+ margin-top: 1em;
+}
+/* line 675, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc .toc-title {
+ margin: 0;
+ padding-left: 1em;
+ border-bottom: 1px solid #c9caca;
+ -webkit-box-shadow: 0px 1px 0px 0px white;
+ -moz-box-shadow: 0px 1px 0px 0px white;
+ box-shadow: 0px 1px 0px 0px white;
+}
+/* line 681, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links {
+ font-size: 16.38px;
+ margin: 0;
+ padding: 0;
+}
+/* line 685, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li {
+ list-style: none;
+ background-image: url(../../images/righticon.png);
+ background-repeat: no-repeat;
+ background-position: center right;
+ margin: 0;
+ padding-left: 1em;
+ border-bottom: 1px solid #c9caca;
+ -webkit-box-shadow: 0px 1px 0px 0px white;
+ -moz-box-shadow: 0px 1px 0px 0px white;
+ box-shadow: 0px 1px 0px 0px white;
+ -webkit-transition: 0.1s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: 0.1s ease 0s;
+ -o-transition: 0.1s ease 0s;
+ transition: 0.1s ease 0s;
+}
+/* line 694, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li:hover, .blog-details #sidebar-first .toc ul.links li.active {
+ background-color: white;
+}
+/* line 698, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li a {
+ display: block;
+ color: inherit;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+/* line 705, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first .toc ul.links li a:hover {
+ text-decoration: none;
+}
+/* line 714, ../../../sass/sass/blog.scss */
+.blog-details #sidebar-first {
+ background-color: #f3f2f0;
+}
+/* line 717, ../../../sass/sass/blog.scss */
+.blog-details .page-expand {
+ height: 0;
+}
+@media all and (min-width: 1300px) and (min-height: 670px) {
+ /* line 724, ../../../sass/sass/blog.scss */
+ .blog-details #sidebar-first,
+ .blog-details #sidebar-second,
+ .blog-details #blog-top-nav {
+ position: fixed;
+ }
+ /* line 727, ../../../sass/sass/blog.scss */
+ .blog-details .page-expand {
+ height: 100%;
+ }
+}
+/* line 732, ../../../sass/sass/blog.scss */
+.blog-details #back-to-top-button {
+ bottom: 50px;
+ left: 960px;
+}
+/* line 736, ../../../sass/sass/blog.scss */
+.blog-details .confirm-dialog {
+ padding-top: 4em;
+ min-width: 500px;
+ min-height: 80px;
+ text-align: center;
+}
+/* line 741, ../../../sass/sass/blog.scss */
+.blog-details .confirm-dialog .controls {
+ text-align: right;
+ position: absolute;
+ bottom: 2em;
+ right: 2em;
+}
+/* line 750, ../../../sass/sass/blog.scss */
+.blog-details.blog-results #sidebar-second .lists-container {
+ display: none;
+}
+
+/* line 759, ../../../sass/sass/blog.scss */
+.blog-list #content .region-wrap {
+ margin-top: 1.5em;
+}
+/* line 762, ../../../sass/sass/blog.scss */
+.blog-list #content #login {
+ position: absolute;
+ right: 0;
+ top: 0;
+}
+/* line 767, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav {
+ position: relative;
+ margin-top: 2em;
+ padding-top: 2em;
+}
+/* line 771, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav {
+ vertical-align: bottom;
+ border-bottom: 1px solid #c9caca;
+}
+/* line 776, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li a {
+ color: inherit;
+}
+/* line 780, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li a:hover,
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li a.active {
+ text-decoration: none;
+ color: #0063a8;
+ border-bottom: 1px solid #0063a8;
+}
+/* line 786, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li.first-level {
+ font-size: 1.5em;
+ padding-right: 50px;
+}
+/* line 791, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-top-nav .search-type-nav ul.links li.second-level a {
+ padding-bottom: 2px;
+}
+/* line 799, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .not-found {
+ text-align: center;
+ margin-top: 2em;
+}
+/* line 802, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .not-found .message {
+ font-size: 1.2em;
+ margin-top: 0.5em;
+}
+/* line 808, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.articles {
+ padding: 0;
+}
+/* line 810, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.articles li {
+ list-style: none;
+}
+/* line 815, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .articles .article {
+ margin-bottom: 40px;
+}
+/* line 819, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .articles .article .article-title {
+ font-weight: bold;
+ font-size: 1.42857em;
+ line-height: 1.45em;
+ color: black;
+ margin-bottom: 0.5em;
+}
+/* line 131, ../../../sass/sass/_custom.scss */
+.blog-list #content #blog-list-content .articles .article .article-title a {
+ color: inherit;
+}
+/* line 827, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content .articles .article .excerpt {
+ font-size: 1.14286em;
+ line-height: 1.6875em;
+ margin-top: 0.5em;
+}
+/* line 833, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.rating-blocks li {
+ vertical-align: middle;
+ padding: 0;
+ display: -moz-inline-block;
+ display: inline-block;
+ color: transparent;
+ overflow: hidden;
+ width: 12px;
+ height: 12px;
+ background-color: #948b7a;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ margin-right: -1px;
+}
+/* line 845, ../../../sass/sass/blog.scss */
+.blog-list #content #blog-list-content ul.rating-blocks li.filled {
+ background-color: #4a453d;
+}
+/* line 856, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first #header {
+ z-index: 2;
+}
+/* line 859, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .region-wrap {
+ z-index: 2;
+ position: relative;
+ padding-left: 1em;
+ padding-right: 1em;
+}
+/* line 867, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first #nav-ribbon {
+ margin-top: 1em;
+ z-index: 2;
+ margin-left: -20px;
+}
+/* line 872, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay {
+ color: white;
+ z-index: 1;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ background-color: #91908f;
+ background-color: rgba(0, 0, 0, 0.5);
+ visibility: hidden;
+ opacity: 0;
+ -webkit-transition: all 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: all 0.3s ease 0s;
+ -o-transition: all 0.3s ease 0s;
+ transition: all 0.3s ease 0s;
+}
+/* line 885, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap {
+ padding-left: 3.3em;
+ padding-top: 8em;
+ padding-right: 3.3em;
+}
+/* line 891, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap h3 {
+ margin-bottom: 0;
+}
+/* line 894, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap .user-info h3 {
+ margin-top: 0;
+}
+/* line 897, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap ul {
+ margin: 0;
+ padding: 0;
+}
+/* line 900, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay .region-wrap ul li {
+ list-style: none;
+}
+/* line 905, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .hover-overlay a {
+ color: white;
+}
+/* line 909, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .post-question {
+ z-index: 2;
+ padding-left: 1em;
+ padding-right: 1em;
+ overflow: hidden;
+ width: auto;
+}
+/* line 917, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .post-question .question {
+ width: 60%;
+ border: 1px solid #c2b59e;
+ background-color: #918e8c;
+ background-color: rgba(0, 0, 0, 0.5);
+}
+/* line 923, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first .post-question .submit {
+ float: right;
+ width: 30%;
+ border: none;
+}
+/* line 929, ../../../sass/sass/blog.scss */
+.blog-list #sidebar-first:hover .hover-overlay {
+ visibility: visible;
+ opacity: 1;
+}
+
+/* line 936, ../../../sass/sass/blog.scss */
+body.blog-index {
+ color: white;
+}
+/* line 938, ../../../sass/sass/blog.scss */
+body.blog-index #main {
+ position: relative;
+}
+/* line 940, ../../../sass/sass/blog.scss */
+body.blog-index #main .background {
+ z-index: -1000;
+ background: url(../../images/back_main.jpg) no-repeat center top;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+}
+/* line 949, ../../../sass/sass/blog.scss */
+body.blog-index #main #login {
+ position: absolute;
+ top: 15px;
+ right: -250px;
+}
+/* line 954, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question {
+ margin-top: 270px;
+}
+/* line 956, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question .question {
+ background-color: white;
+ border: 1px solid #d0d1d1;
+ color: black;
+ width: 400px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question.placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus.placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question.input-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus.input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:-moz-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus:-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question::-webkit-input-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus::-webkit-input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question::-moz-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus::-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:-ms-input-placeholder {
+ color: #d0d1d1;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.blog-index #main .post-question .question:focus:-ms-input-placeholder {
+ color: transparent;
+}
+/* line 964, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question .submit {
+ width: 84px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+ border: none;
+}
+/* line 969, ../../../sass/sass/blog.scss */
+body.blog-index #main .post-question .question, body.blog-index #main .post-question .submit {
+ font-size: 1.14286em;
+ line-height: 1.25em;
+ vertical-align: 2px;
+}
+/* line 974, ../../../sass/sass/blog.scss */
+body.blog-index #main #logo {
+ margin-top: 65px;
+ width: 100%;
+ text-align: center;
+}
+/* line 979, ../../../sass/sass/blog.scss */
+body.blog-index #main #copyright {
+ position: fixed;
+ bottom: 75px;
+ left: 75px;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/comments.css b/97suifangqa/staticfiles/stylesheets/sass/comments.css new file mode 100644 index 0000000..06e61f8 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/comments.css @@ -0,0 +1,119 @@ +/**
+ * @file
+ * Comment Styling
+ */
+/* line 9, ../../../sass/sass/comments.scss */
+.comments {
+ /* Wrapper for the list of comments and its title */
+ margin: 1.5em 0;
+}
+/* line 12, ../../../sass/sass/comments.scss */
+.comments h2.title {
+ /* Heading for the list of comments */
+}
+/* line 15, ../../../sass/sass/comments.scss */
+.comments h2.comment-form {
+ /* Heading for the comment form */
+}
+
+/* line 19, ../../../sass/sass/comments.scss */
+.comment {
+ /* Wrapper for a single comment */
+}
+/* line 21, ../../../sass/sass/comments.scss */
+.comment.comment-preview {
+ /* Preview of the comment before submitting new or updated comment */
+ background-color: #ffffea;
+ /* Drupal core will use a #ffffea background. See #1110842 */
+}
+/* line 25, ../../../sass/sass/comments.scss */
+.comment.new {
+ /* A new comment since the user last viewed the page. */
+}
+/* line 28, ../../../sass/sass/comments.scss */
+.comment.first {
+ /* The first comment in the list of comments */
+}
+/* line 31, ../../../sass/sass/comments.scss */
+.comment.last {
+ /* The last comment in the list of comments */
+}
+/* line 34, ../../../sass/sass/comments.scss */
+.comment.odd {
+ /* An odd-numbered comment in the list of comments */
+}
+/* line 37, ../../../sass/sass/comments.scss */
+.comment.even {
+ /* An even-numbered comment in the list of comments */
+}
+/* line 40, ../../../sass/sass/comments.scss */
+.comment.comment-by-anonymous {
+ /* A comment created by an anonymous user */
+}
+/* line 43, ../../../sass/sass/comments.scss */
+.comment.comment-by-node-author {
+ /* A comment created by the node's author */
+}
+/* line 46, ../../../sass/sass/comments.scss */
+.comment.comment-by-viewer {
+ /* A comment created by the current user */
+}
+/* line 49, ../../../sass/sass/comments.scss */
+.comment h3.comment-title {
+ /* Comment title */
+}
+/* line 52, ../../../sass/sass/comments.scss */
+.comment .new {
+ /* "New" marker for comments that are new for the current user */
+ color: #c00;
+}
+/* line 56, ../../../sass/sass/comments.scss */
+.comment .user-picture {
+ /* The picture of the comment author */
+}
+/* line 59, ../../../sass/sass/comments.scss */
+.comment .submitted {
+ /* The "posted by" information */
+}
+/* line 62, ../../../sass/sass/comments.scss */
+.comment .permalink {
+ /* Comment's permalink wrapper */
+ text-transform: uppercase;
+ font-size: 75%;
+}
+/* line 67, ../../../sass/sass/comments.scss */
+.comment .user-signature {
+ /* The user's signature */
+}
+/* line 70, ../../../sass/sass/comments.scss */
+.comment ul.links {
+ /* Comment links. See also the ul.links declaration in the pages.css. */
+}
+
+/* line 74, ../../../sass/sass/comments.scss */
+.indented {
+ /* Nested comments are indented */
+ margin-left: 30px;
+ /* Drupal core uses a 25px left margin */
+}
+
+/* line 78, ../../../sass/sass/comments.scss */
+.comment-unpublished {
+ /* Unpublished comments */
+ /* background-color: #fff4f4; */
+ /* Drupal core uses a #fff4f4 background */
+}
+/* line 81, ../../../sass/sass/comments.scss */
+.comment-unpublished p.unpublished {
+ /* The word "Unpublished" displayed underneath the content. */
+ height: 0;
+ overflow: visible;
+ color: #d8d8d8;
+ font-size: 75px;
+ line-height: 1;
+ font-family: Impact, "Arial Narrow", Helvetica, sans-serif;
+ font-weight: bold;
+ text-transform: uppercase;
+ text-align: center;
+ word-wrap: break-word;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/elements.css b/97suifangqa/staticfiles/stylesheets/sass/elements.css new file mode 100644 index 0000000..5ed4bde --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/elements.css @@ -0,0 +1,326 @@ +/**
+ * @file
+ * Page element styles (buttons, expandable areas etc)
+ *
+ */
+/* line 10, ../../../sass/sass/elements.scss */
+.multi-segment-button {
+ overflow: hidden;
+ padding: 0;
+}
+/* line 14, ../../../sass/sass/elements.scss */
+.multi-segment-button .segment {
+ display: block;
+ float: left;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ border-right: 1px solid;
+ border-right-color: inherit;
+}
+/* line 26, ../../../sass/sass/elements.scss */
+.multi-segment-button .segment.first {
+ padding-left: 0.5em;
+}
+/* line 30, ../../../sass/sass/elements.scss */
+.multi-segment-button .segment.last {
+ padding-right: 0.5em;
+ border-right: none;
+}
+
+/* line 38, ../../../sass/sass/elements.scss */
+.multi-button .button, .multi-button .multi-segment-button {
+ margin: 0;
+ padding-left: 0.8em;
+ padding-right: 0.8em;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-border-radius: 0;
+ -moz-border-radius: 0;
+ -ms-border-radius: 0;
+ -o-border-radius: 0;
+ border-radius: 0;
+ border-left: none;
+ border-right: 1px solid #f3f2f0;
+}
+/* line 49, ../../../sass/sass/elements.scss */
+.multi-button .button.first, .multi-button .first.multi-segment-button {
+ -webkit-border-radius: 3px 0 0 3px;
+ -moz-border-radius: 3px 0 0 3px;
+ -ms-border-radius: 3px 0 0 3px;
+ -o-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+ border-left: 1px solid #f3f2f0;
+}
+/* line 53, ../../../sass/sass/elements.scss */
+.multi-button .button.last, .multi-button .last.multi-segment-button {
+ -webkit-border-radius: 0 3px 3px 0;
+ -moz-border-radius: 0 3px 3px 0;
+ -ms-border-radius: 0 3px 3px 0;
+ -o-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
+}
+
+/* line 60, ../../../sass/sass/elements.scss */
+.border-box, .expand-heading {
+ background-color: #f7f7f7;
+ border: solid 1px #c9caca;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ padding-left: 1em;
+ padding-right: 1em;
+ padding-top: 0.4em;
+ padding-bottom: 0.4em;
+}
+
+/* line 72, ../../../sass/sass/elements.scss */
+.expand-heading {
+ cursor: pointer;
+ color: #99cc33;
+ padding-left: 30px;
+ background-image: url(../../images/green-triangle-right.png);
+ background-repeat: no-repeat;
+ background-position: 10px center;
+}
+/* line 81, ../../../sass/sass/elements.scss */
+.expandable.expanded .expand-heading {
+ background-image: url(../../images/green-triangle-down.png);
+}
+
+/* line 87, ../../../sass/sass/elements.scss */
+.expandable .expand-container {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px);
+}
+/* line 91, ../../../sass/sass/elements.scss */
+.expandable.expanded .expand-container {
+ position: static !important;
+ clip: auto;
+ height: auto;
+ width: auto;
+ overflow: auto;
+}
+
+/* line 98, ../../../sass/sass/elements.scss */
+.action-button .deaction {
+ display: none;
+}
+/* line 102, ../../../sass/sass/elements.scss */
+.action-button.acted .deaction {
+ display: block;
+}
+/* line 105, ../../../sass/sass/elements.scss */
+.action-button.acted .action {
+ display: none;
+}
+
+/* line 111, ../../../sass/sass/elements.scss */
+body.modal-active {
+ height: 100%;
+ overflow: hidden;
+}
+
+/* line 116, ../../../sass/sass/elements.scss */
+.modal-page-overlay {
+ z-index: 2000;
+ position: fixed;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ right: 0;
+ background: url(../../images/modal-dialog-bg.png);
+ -webkit-transition: 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: 0.3s ease 0s;
+ -o-transition: 0.3s ease 0s;
+ transition: 0.3s ease 0s;
+ opacity: 1;
+}
+/* line 127, ../../../sass/sass/elements.scss */
+.modal-page-overlay.hidden {
+ visibility: hidden;
+ opacity: 0;
+}
+
+/* line 133, ../../../sass/sass/elements.scss */
+.image-enlargement-box {
+ z-index: 1;
+ position: absolute;
+ display: none;
+ position: fixed;
+ z-index: 2001;
+ padding: 0;
+ left: 50%;
+ margin-left: -53.5px;
+ top: 50%;
+ margin-top: -38.5px;
+}
+/* line 105, ../../../sass/sass/_custom.scss */
+.image-enlargement-box.open {
+ display: block;
+}
+/* line 136, ../../../sass/sass/elements.scss */
+.image-enlargement-box .loading-image {
+ position: absolute;
+ z-index: -1;
+}
+/* line 140, ../../../sass/sass/elements.scss */
+.image-enlargement-box .image-container {
+ visibility: hidden;
+}
+/* line 143, ../../../sass/sass/elements.scss */
+.image-enlargement-box .image-container img {
+ max-width: none;
+ max-height: none;
+ -webkit-box-shadow: 0px 0px 30px #444444;
+ -moz-box-shadow: 0px 0px 30px #444444;
+ box-shadow: 0px 0px 30px #444444;
+}
+/* line 149, ../../../sass/sass/elements.scss */
+.image-enlargement-box.loaded .loading-image {
+ display: none;
+}
+/* line 152, ../../../sass/sass/elements.scss */
+.image-enlargement-box.loaded .image-container {
+ visibility: visible;
+}
+
+/* line 158, ../../../sass/sass/elements.scss */
+.dialog-content {
+ display: none;
+}
+
+/* line 161, ../../../sass/sass/elements.scss */
+.modal-dialog-box {
+ z-index: 1;
+ position: absolute;
+ display: none;
+ position: fixed;
+ z-index: 2001;
+ padding: 0;
+ left: 50%;
+ margin-left: -50px;
+ top: 50%;
+ margin-top: -50px;
+ -webkit-box-shadow: 0px 0px 30px #444444;
+ -moz-box-shadow: 0px 0px 30px #444444;
+ box-shadow: 0px 0px 30px #444444;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ border: 1px solid #8fc31f;
+ background-color: white;
+}
+/* line 105, ../../../sass/sass/_custom.scss */
+.modal-dialog-box.open {
+ display: block;
+}
+/* line 168, ../../../sass/sass/elements.scss */
+.modal-dialog-box .close-box {
+ z-index: 1;
+ position: absolute;
+ width: 20px;
+ height: 20px;
+ background: url(../../images/grey-cross.png) no-repeat center center;
+ cursor: pointer;
+ right: 1em;
+ top: 1em;
+}
+/* line 178, ../../../sass/sass/elements.scss */
+.modal-dialog-box .content-wrap {
+ padding-left: 1.5em;
+ padding-right: 1.5em;
+ padding-top: 0.7em;
+ padding-bottom: 1em;
+}
+/* line 185, ../../../sass/sass/elements.scss */
+.modal-dialog-box .content-wrap .dialog-content {
+ display: block;
+}
+
+/* line 191, ../../../sass/sass/elements.scss */
+.grey-button {
+ border-color: #cccccc;
+ color: #6f6f6f;
+ background-color: #f7f7f7;
+}
+/* line 194, ../../../sass/sass/elements.scss */
+.grey-button:visited {
+ color: #6f6f6f;
+}
+/* line 199, ../../../sass/sass/elements.scss */
+.grey-button:hover {
+ background-color: #eaeaea;
+}
+/* line 202, ../../../sass/sass/elements.scss */
+.grey-button:active {
+ background-color: #dedede;
+}
+/* line 208, ../../../sass/sass/elements.scss */
+.grey-button.disabled:hover, .grey-button.disabled:active {
+ background-color: #f7f7f7;
+}
+
+/* line 214, ../../../sass/sass/elements.scss */
+.dark-grey-button {
+ border: none;
+ color: white;
+ background-color: #4c4948;
+}
+/* line 217, ../../../sass/sass/elements.scss */
+.dark-grey-button:visited {
+ color: white;
+}
+/* line 221, ../../../sass/sass/elements.scss */
+.dark-grey-button:hover {
+ background-color: #3f3c3c;
+}
+/* line 224, ../../../sass/sass/elements.scss */
+.dark-grey-button:active {
+ background-color: #32302f;
+}
+/* line 229, ../../../sass/sass/elements.scss */
+.dark-grey-button.disabled:hover, .dark-grey-button.disabled:active {
+ background-color: #4c4948;
+}
+
+/* line 235, ../../../sass/sass/elements.scss */
+.number-block {
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ width: 1.3em;
+ text-align: center;
+ font-family: "Courier New", "DejaVu Sans Mono", monospace, sans-serif, "STHeiti", "WenQuanYi Micro Hei", "Microsoft YaHei", SimSun, sans-serif;
+}
+
+/* line 239, ../../../sass/sass/elements.scss */
+.green-block {
+ background-color: #7BB81B;
+ color: white;
+}
+
+/* line 244, ../../../sass/sass/elements.scss */
+.clearfix {
+ clear: both;
+}
+
+/**
+ * Expands the height of a container by its height, or the page width maximally. Used for extra scrolling
+ */
+/* line 251, ../../../sass/sass/elements.scss */
+.page-expand {
+ position: absolute;
+ width: 1px;
+ height: 100%;
+ z-index: -1000;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/fields.css b/97suifangqa/staticfiles/stylesheets/sass/fields.css new file mode 100644 index 0000000..4c63fb2 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/fields.css @@ -0,0 +1,52 @@ +/**
+ * @file
+ * Field Styling
+ *
+ * The Fences module allows site builders to pick the semeantic HTML5 element
+ * for each field while editing the field's settings. There's no way a theme
+ * can ever know which element to use for the fields on your site, so Zen
+ * just uses lets Drupal core or Fences decide. Since you DO NOT want 3 wrapping
+ * divs around every field (do you?), we highly recommend Fences.
+ *
+ * http://drupal.org/project/fences
+ */
+/*
+ * Field wrappers when the Fences module is enabled.
+ */
+/* line 21, ../../../sass/sass/fields.scss */
+.field-label {
+ /* The optional label for a field. */
+}
+
+/* line 24, ../../../sass/sass/fields.scss */
+.field-FIELDNAME {
+ /* Underscores in field name are replaced with dashes. */
+}
+
+/*
+ * If you don't use the Fences module, that's fine. Really. I think. Just use
+ * these selectors instead:
+ */
+/* line 33, ../../../sass/sass/fields.scss */
+.field {
+ /* Wrapper for any field. */
+}
+
+/*
+ * Field types (Core)
+ */
+/*
+ * Field types (Contrib)
+ */
+/* line 83, ../../../sass/sass/fields.scss */
+.field-type-datetime {
+ /* Always use "datetime" when creating new CCK date fields. "date" and "datestamp" are legacy types. */
+}
+
+/*
+ * Named fields
+ */
+/* line 105, ../../../sass/sass/fields.scss */
+.field-name-field-FIELDNAME {
+ /* Underscores in field name are replaced with dashes. */
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/forms-rtl.css b/97suifangqa/staticfiles/stylesheets/sass/forms-rtl.css new file mode 100644 index 0000000..a2169b3 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/forms-rtl.css @@ -0,0 +1,38 @@ +/**
+ * @file
+ * RTL companion for the forms.css file.
+ */
+/*
+ * Drupal's default login form block
+ */
+/* line 13, ../../../sass/sass/forms-rtl.scss */
+#user-login-form {
+ text-align: right;
+ /*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+}
+/* line 24, ../../../sass/sass/forms-rtl.scss */
+html.js #user-login-form li.openid-link,
+#user-login-form li.openid-link {
+ /* The "Log in using OpenID" link. */
+ margin-left: 0;
+ margin-right: -20px;
+ /* Un-do some of the padding on the ul list. */
+}
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in html-elements.css, but restore them for the admin
+ * section of the site.
+ */
+/* line 38, ../../../sass/sass/forms-rtl.scss */
+form th {
+ text-align: right;
+ padding-left: 1em;
+ padding-right: 0;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/forms.css b/97suifangqa/staticfiles/stylesheets/sass/forms.css new file mode 100644 index 0000000..bb02bc6 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/forms.css @@ -0,0 +1,161 @@ +/**
+ * @file
+ * Form Styling
+ */
+/* line 9, ../../../sass/sass/forms.scss */
+.form-item {
+ /* Wrapper for a form element (or group of form elements) and its label */
+ margin: 1.5em 0;
+}
+/* line 14, ../../../sass/sass/forms.scss */
+.form-item input.error,
+.form-item textarea.error,
+.form-item select.error {
+ /* Highlight the form elements that caused a form submission error */
+ border: 1px solid #c00;
+}
+/* line 18, ../../../sass/sass/forms.scss */
+.form-item label {
+ /* The label for a form element */
+ display: block;
+ font-weight: bold;
+}
+/* line 23, ../../../sass/sass/forms.scss */
+.form-item label.option {
+ /* The label for a radio button or checkbox */
+ display: inline;
+ font-weight: normal;
+}
+/* line 28, ../../../sass/sass/forms.scss */
+.form-item .form-required {
+ /* The part of the label that indicates a required field */
+ color: #c00;
+}
+/* line 32, ../../../sass/sass/forms.scss */
+.form-item .description {
+ /* The descriptive help text (separate from the label) */
+ font-size: 0.85em;
+}
+/* line 37, ../../../sass/sass/forms.scss */
+.form-checkboxes .form-item, .form-radios .form-item {
+ /* Pack groups of checkboxes and radio buttons closer together */
+ margin: 0;
+ /* Drupal core uses "0.4em 0" */
+}
+
+/* line 42, ../../../sass/sass/forms.scss */
+.form-submit {
+ /* The submit button */
+}
+
+/* line 47, ../../../sass/sass/forms.scss */
+.container-inline div,
+.container-inline label {
+ /* Inline labels and form divs */
+ display: inline;
+}
+
+/* line 52, ../../../sass/sass/forms.scss */
+.tips {
+ /* Tips for Drupal's input formats */
+}
+
+/* line 55, ../../../sass/sass/forms.scss */
+a.button {
+ /* Buttons used by contrib modules like Media */
+ -webkit-appearance: button;
+ -moz-appearance: button;
+ appearance: button;
+}
+
+/*
+ * Password confirmation
+ */
+/* line 64, ../../../sass/sass/forms.scss */
+.password-parent,
+.confirm-parent {
+ margin: 0;
+}
+
+/*
+ * Search (search-block-form.tpl.php)
+ */
+/* line 72, ../../../sass/sass/forms.scss */
+#block-search-form {
+ /* Wrapper for the search form */
+}
+
+/*
+ * Drupal's default login form block
+ */
+/* line 79, ../../../sass/sass/forms.scss */
+#user-login-form {
+ text-align: left;
+ /* LTR */
+ /*
+ * OpenID
+ *
+ * The default styling for the OpenID login link seems to assume Garland's
+ * styling of list items.
+ */
+}
+/* line 89, ../../../sass/sass/forms.scss */
+#user-login-form ul {
+ /* OpenID creates a new ul above the login form's links. */
+ margin-bottom: 0;
+ /* Position OpenID's ul next to the rest of the links. */
+}
+/* line 94, ../../../sass/sass/forms.scss */
+html.js #user-login-form li.openid-link,
+#user-login-form li.openid-link {
+ /* The "Log in using OpenID" link. */
+ margin-top: 1.5em;
+ margin-left: -20px;
+ /* LTR */
+ /* Un-do some of the padding on the ul list. */
+}
+/* line 99, ../../../sass/sass/forms.scss */
+#user-login-form li.user-link {
+ /* The "Cancel OpenID login" link. */
+ margin-top: 1.5em;
+}
+
+/* line 104, ../../../sass/sass/forms.scss */
+#user-login ul {
+ margin: 1.5em 0;
+}
+
+/*
+ * Drupal admin tables
+ *
+ * We overrode these styles in normalize.css, but restore them for the admin
+ * section of the site.
+ */
+/* line 116, ../../../sass/sass/forms.scss */
+form th {
+ text-align: left;
+ /* LTR */
+ padding-right: 1em;
+ /* LTR */
+ border-bottom: 3px solid #ccc;
+}
+/* line 122, ../../../sass/sass/forms.scss */
+form tbody {
+ border-top: 1px solid #ccc;
+}
+/* line 126, ../../../sass/sass/forms.scss */
+form tr.even {
+ background-color: #fff;
+}
+/* line 130, ../../../sass/sass/forms.scss */
+form table .item-list ul {
+ margin: 0;
+}
+
+/*
+ * Drupal core wrongly puts this in system.menus.css. Since we override that, add it back.
+ */
+/* line 149, ../../../sass/sass/forms.scss */
+td.menu-disabled {
+ background: #ccc;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/layouts/content-layout.css b/97suifangqa/staticfiles/stylesheets/sass/layouts/content-layout.css new file mode 100644 index 0000000..4c33442 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/layouts/content-layout.css @@ -0,0 +1,86 @@ +@charset "UTF-8";
+/**
+ * @file
+ * Internal layouts used in #content
+ *
+ * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com>
+ */
+/* line 52, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+.three-columns:before, .three-columns:after {
+ content: "";
+ display: table;
+}
+/* line 56, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+.three-columns:after {
+ clear: both;
+}
+/* line 22, ../../../../sass/sass/layouts/content-layout.scss */
+.three-columns .column-first {
+ float: left;
+ width: 33.33333%;
+ margin-left: 0%;
+ margin-right: -33.33333%;
+ padding-left: 5px;
+ padding-right: 5px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+}
+/* line 25, ../../../../sass/sass/layouts/content-layout.scss */
+.three-columns .column-second {
+ float: left;
+ width: 33.33333%;
+ margin-left: 33.33333%;
+ margin-right: -66.66667%;
+ padding-left: 5px;
+ padding-right: 5px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+}
+/* line 28, ../../../../sass/sass/layouts/content-layout.scss */
+.three-columns .column-third {
+ float: left;
+ width: 33.33333%;
+ margin-left: 66.66667%;
+ margin-right: -100%;
+ padding-left: 5px;
+ padding-right: 5px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+}
+/* line 31, ../../../../sass/sass/layouts/content-layout.scss */
+.three-columns .column-main.right {
+ float: left;
+ width: 66.66667%;
+ margin-left: 33.33333%;
+ margin-right: -100%;
+ padding-left: 5px;
+ padding-right: 5px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+}
+/* line 34, ../../../../sass/sass/layouts/content-layout.scss */
+.three-columns .column-main.left {
+ float: left;
+ width: 66.66667%;
+ margin-left: 0%;
+ margin-right: -66.66667%;
+ padding-left: 5px;
+ padding-right: 5px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width-rtl.css b/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width-rtl.css new file mode 100644 index 0000000..fd054c2 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width-rtl.css @@ -0,0 +1,178 @@ +/**
+ * @file
+ * RTL companion for the fixed-width.css file.
+ */
+/**
+ * @file
+ * Positioning for a fixed-width, desktop-centric layout.
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout uses the Zen Grids plugin for Compass: http://zengrids.com
+ */
+/*
+ * Center the page.
+ */
+/* line 44, ../../../../sass/sass/layouts/fixed-width.scss */
+#page,
+.region-bottom {
+ /* If you want to make the page a fixed width and centered in the viewport,
+ * this is the standards-compliant way to do that. */
+ width: 1300px;
+}
+
+/*
+ * Apply the shared properties of grid items in a single, efficient ruleset.
+ */
+/* line 62, ../../../../sass/sass/layouts/fixed-width.scss */
+#header,
+.content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer {
+ padding-left: 20px;
+ padding-right: 20px;
+ border: 0 !important;
+ word-wrap: break-word;
+}
+
+/*
+ * Containers for grid items and flow items.
+ */
+/* line 52, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:before, #header:after,
+#main:before,
+#main:after,
+#footer:before,
+#footer:after {
+ content: "";
+ display: table;
+}
+/* line 56, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:after,
+#main:after,
+#footer:after {
+ clear: both;
+}
+
+/*
+ * Navigation bar
+ */
+/* line 80, ../../../../sass/sass/layouts/fixed-width.scss */
+#main {
+ position: relative;
+}
+
+/* line 83, ../../../../sass/sass/layouts/fixed-width.scss */
+#navigation {
+ position: absolute;
+ top: 0;
+ /* Move the navbar up inside #main's padding. */
+ height: 3em;
+ width: 1260px;
+}
+
+/*
+ * The layout when there is only one sidebar, the left one.
+ */
+/* line 95, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-first .content {
+ /* Span 4 columns, starting in 2nd column from left. */
+ float: right;
+ width: 360px;
+ margin-right: 100px;
+ margin-left: -500px;
+}
+/* line 99, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-first .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: right;
+ width: 60px;
+ margin-right: 0px;
+ margin-left: -100px;
+}
+
+/*
+ * The layout when there is only one sidebar, the right one.
+ */
+/* line 109, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-second .content {
+ /* Span 4 columns, starting in 1st column from left. */
+ float: right;
+ width: 360px;
+ margin-right: 0px;
+ margin-left: -400px;
+}
+/* line 113, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-second .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: right;
+ width: 60px;
+ margin-right: 400px;
+ margin-left: -500px;
+}
+
+/*
+ * The layout when there are two sidebars.
+ */
+/* line 124, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.two-sidebars .content,
+.two-sidebars .content {
+ /* Span 3 columns, starting in 2nd column from left. */
+ float: right;
+ width: 660px;
+ margin-right: 300px;
+ margin-left: -1000px;
+}
+/* line 128, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.two-sidebars .region-sidebar-first,
+.two-sidebars .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: right;
+ width: 260px;
+ margin-right: 0px;
+ margin-left: -300px;
+}
+/* line 132, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.two-sidebars .region-sidebar-second,
+.two-sidebars .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: right;
+ width: 260px;
+ margin-right: 1000px;
+ margin-left: -1300px;
+}
+
+/* line 139, ../../../../sass/sass/layouts/fixed-width.scss */
+.picture-base.sidebar-first #page,
+.picture-base.sidebar-first .region-bottom {
+ width: 1200px;
+}
+/* line 143, ../../../../sass/sass/layouts/fixed-width.scss */
+.picture-base.sidebar-first .content {
+ float: right;
+ width: 630px;
+ margin-right: 430px;
+ margin-left: -1230px;
+ padding-left: 85px;
+ padding-right: 85px;
+ border: 0 !important;
+ word-wrap: break-word;
+}
+/* line 147, ../../../../sass/sass/layouts/fixed-width.scss */
+.picture-base.sidebar-first .region-sidebar-first {
+ float: right;
+ width: 390px;
+ margin-right: 0px;
+ margin-left: -430px;
+}
+
+/* line 153, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.blog-index #page, .blog.blog-index .region-bottom {
+ width: 550px;
+ margin-left: auto;
+ margin-right: auto;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width.css b/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width.css new file mode 100644 index 0000000..dbe26f9 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/layouts/fixed-width.css @@ -0,0 +1,174 @@ +/**
+ * @file
+ * Positioning for a fixed-width, desktop-centric layout.
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout uses the Zen Grids plugin for Compass: http://zengrids.com
+ */
+/*
+ * Center the page.
+ */
+/* line 44, ../../../../sass/sass/layouts/fixed-width.scss */
+#page,
+.region-bottom {
+ /* If you want to make the page a fixed width and centered in the viewport,
+ * this is the standards-compliant way to do that. */
+ width: 1300px;
+}
+
+/*
+ * Apply the shared properties of grid items in a single, efficient ruleset.
+ */
+/* line 62, ../../../../sass/sass/layouts/fixed-width.scss */
+#header,
+.content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer {
+ padding-left: 20px;
+ padding-right: 20px;
+ border: 0 !important;
+ word-wrap: break-word;
+}
+
+/*
+ * Containers for grid items and flow items.
+ */
+/* line 52, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:before, #header:after,
+#main:before,
+#main:after,
+#footer:before,
+#footer:after {
+ content: "";
+ display: table;
+}
+/* line 56, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:after,
+#main:after,
+#footer:after {
+ clear: both;
+}
+
+/*
+ * Navigation bar
+ */
+/* line 80, ../../../../sass/sass/layouts/fixed-width.scss */
+#main {
+ position: relative;
+}
+
+/* line 83, ../../../../sass/sass/layouts/fixed-width.scss */
+#navigation {
+ position: absolute;
+ top: 0;
+ /* Move the navbar up inside #main's padding. */
+ height: 3em;
+ width: 1260px;
+}
+
+/*
+ * The layout when there is only one sidebar, the left one.
+ */
+/* line 95, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-first .content {
+ /* Span 4 columns, starting in 2nd column from left. */
+ float: left;
+ width: 360px;
+ margin-left: 100px;
+ margin-right: -500px;
+}
+/* line 99, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-first .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: left;
+ width: 60px;
+ margin-left: 0px;
+ margin-right: -100px;
+}
+
+/*
+ * The layout when there is only one sidebar, the right one.
+ */
+/* line 109, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-second .content {
+ /* Span 4 columns, starting in 1st column from left. */
+ float: left;
+ width: 360px;
+ margin-left: 0px;
+ margin-right: -400px;
+}
+/* line 113, ../../../../sass/sass/layouts/fixed-width.scss */
+.sidebar-second .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: left;
+ width: 60px;
+ margin-left: 400px;
+ margin-right: -500px;
+}
+
+/*
+ * The layout when there are two sidebars.
+ */
+/* line 124, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.two-sidebars .content,
+.two-sidebars .content {
+ /* Span 3 columns, starting in 2nd column from left. */
+ float: left;
+ width: 660px;
+ margin-left: 300px;
+ margin-right: -1000px;
+}
+/* line 128, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.two-sidebars .region-sidebar-first,
+.two-sidebars .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: left;
+ width: 260px;
+ margin-left: 0px;
+ margin-right: -300px;
+}
+/* line 132, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.two-sidebars .region-sidebar-second,
+.two-sidebars .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: left;
+ width: 260px;
+ margin-left: 1000px;
+ margin-right: -1300px;
+}
+
+/* line 139, ../../../../sass/sass/layouts/fixed-width.scss */
+.picture-base.sidebar-first #page,
+.picture-base.sidebar-first .region-bottom {
+ width: 1200px;
+}
+/* line 143, ../../../../sass/sass/layouts/fixed-width.scss */
+.picture-base.sidebar-first .content {
+ float: left;
+ width: 630px;
+ margin-left: 430px;
+ margin-right: -1230px;
+ padding-left: 85px;
+ padding-right: 85px;
+ border: 0 !important;
+ word-wrap: break-word;
+}
+/* line 147, ../../../../sass/sass/layouts/fixed-width.scss */
+.picture-base.sidebar-first .region-sidebar-first {
+ float: left;
+ width: 390px;
+ margin-left: 0px;
+ margin-right: -430px;
+}
+
+/* line 153, ../../../../sass/sass/layouts/fixed-width.scss */
+.blog.blog-index #page, .blog.blog-index .region-bottom {
+ width: 550px;
+ margin-left: auto;
+ margin-right: auto;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/layouts/responsive-sidebars-rtl.css b/97suifangqa/staticfiles/stylesheets/sass/layouts/responsive-sidebars-rtl.css new file mode 100644 index 0000000..e7082eb --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/layouts/responsive-sidebars-rtl.css @@ -0,0 +1,267 @@ +/**
+ * @file
+ * RTL companion for the responsive-sidebars.css file.
+ */
+/**
+ * @file
+ * Positioning for responsive layout .
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout uses the Zen Grids plugin for Compass: http://zengrids.com
+ */
+/*
+ * Center the page.
+ */
+/* line 44, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+#page,
+.region-bottom {
+ /* For screen sizes larger than 1200px, prevent excessively long lines of text
+ by setting a max-width. */
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 1200px;
+}
+
+/*
+ * Apply the shared properties of grid items in a single, efficient ruleset.
+ */
+/* line 62, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer {
+ padding-left: 10px;
+ padding-right: 10px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+}
+
+/*
+ * Containers for grid items and flow items.
+ */
+/* line 52, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:before, #header:after,
+#main:before,
+#main:after,
+#footer:before,
+#footer:after {
+ content: "";
+ display: table;
+}
+/* line 56, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:after,
+#main:after,
+#footer:after {
+ clear: both;
+}
+
+/*
+ * Navigation bar
+ */
+@media all and (min-width: 480px) {
+ /* line 81, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ #main {
+ padding-top: 3em;
+ /* Move all the children of #main down to make room. */
+ position: relative;
+ }
+
+ /* line 85, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ #navigation {
+ position: absolute;
+ top: 0;
+ /* Move the navbar up inside #main's padding. */
+ height: 3em;
+ width: 100%;
+ }
+}
+@media all and (min-width: 480px) and (max-width: 959px) {
+ /*
+ * Use 3 grid columns for smaller screens.
+ */
+ /*
+ * The layout when there is only one sidebar, the left one.
+ */
+ /* line 104, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first #content {
+ /* Span 2 columns, starting in 2nd column from left. */
+ float: right;
+ width: 66.66667%;
+ margin-right: 33.33333%;
+ margin-left: -100%;
+ }
+ /* line 108, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: right;
+ width: 33.33333%;
+ margin-right: 0%;
+ margin-left: -33.33333%;
+ }
+
+ /*
+ * The layout when there is only one sidebar, the right one.
+ */
+ /* line 118, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second #content {
+ /* Span 2 columns, starting in 1st column from left. */
+ float: right;
+ width: 66.66667%;
+ margin-right: 0%;
+ margin-left: -66.66667%;
+ }
+ /* line 122, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second .region-sidebar-second {
+ /* Span 1 column, starting in 3rd column from left. */
+ float: right;
+ width: 33.33333%;
+ margin-right: 66.66667%;
+ margin-left: -100%;
+ }
+
+ /*
+ * The layout when there are two sidebars.
+ */
+ /* line 132, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars #content {
+ /* Span 2 columns, starting in 2nd column from left. */
+ float: right;
+ width: 66.66667%;
+ margin-right: 33.33333%;
+ margin-left: -100%;
+ }
+ /* line 136, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: right;
+ width: 33.33333%;
+ margin-right: 0%;
+ margin-left: -33.33333%;
+ }
+ /* line 140, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second {
+ /* Start a new row and span all 3 columns. */
+ float: right;
+ width: 100%;
+ margin-right: 0%;
+ margin-left: -100%;
+ padding-left: 0;
+ padding-right: 0;
+ clear: right;
+ }
+ /* line 145, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block {
+ padding-left: 10px;
+ padding-right: 10px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+ }
+ /* line 148, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block:nth-child(3n+1) {
+ /* Span 1 column, starting in the 1st column from left. */
+ float: right;
+ width: 33.33333%;
+ margin-right: 0%;
+ margin-left: -33.33333%;
+ clear: right;
+ }
+ /* line 152, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block:nth-child(3n+2) {
+ /* Span 1 column, starting in the 2nd column from left. */
+ float: right;
+ width: 33.33333%;
+ margin-right: 33.33333%;
+ margin-left: -66.66667%;
+ }
+ /* line 155, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block:nth-child(3n) {
+ /* Span 1 column, starting in the 3rd column from left. */
+ float: right;
+ width: 33.33333%;
+ margin-right: 66.66667%;
+ margin-left: -100%;
+ }
+}
+@media all and (min-width: 960px) {
+ /*
+ * Use 5 grid columns for larger screens.
+ */
+ /*
+ * The layout when there is only one sidebar, the left one.
+ */
+ /* line 173, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first #content {
+ /* Span 4 columns, starting in 2nd column from left. */
+ float: right;
+ width: 80%;
+ margin-right: 20%;
+ margin-left: -100%;
+ }
+ /* line 177, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: right;
+ width: 20%;
+ margin-right: 0%;
+ margin-left: -20%;
+ }
+
+ /*
+ * The layout when there is only one sidebar, the right one.
+ */
+ /* line 187, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second #content {
+ /* Span 4 columns, starting in 1st column from left. */
+ float: right;
+ width: 80%;
+ margin-right: 0%;
+ margin-left: -80%;
+ }
+ /* line 191, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: right;
+ width: 20%;
+ margin-right: 80%;
+ margin-left: -100%;
+ }
+
+ /*
+ * The layout when there are two sidebars.
+ */
+ /* line 201, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars #content {
+ /* Span 3 columns, starting in 2nd column from left. */
+ float: right;
+ width: 60%;
+ margin-right: 20%;
+ margin-left: -80%;
+ }
+ /* line 205, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: right;
+ width: 20%;
+ margin-right: 0%;
+ margin-left: -20%;
+ }
+ /* line 209, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: right;
+ width: 20%;
+ margin-right: 80%;
+ margin-left: -100%;
+ }
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/layouts/responsive-sidebars.css b/97suifangqa/staticfiles/stylesheets/sass/layouts/responsive-sidebars.css new file mode 100644 index 0000000..ed0fac3 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/layouts/responsive-sidebars.css @@ -0,0 +1,263 @@ +/**
+ * @file
+ * Positioning for responsive layout .
+ *
+ * Define CSS classes to create a table-free, 3-column, 2-column, or single
+ * column layout depending on whether blocks are enabled in the left or right
+ * columns.
+ *
+ * This layout uses the Zen Grids plugin for Compass: http://zengrids.com
+ */
+/*
+ * Center the page.
+ */
+/* line 44, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+#page,
+.region-bottom {
+ /* For screen sizes larger than 1200px, prevent excessively long lines of text
+ by setting a max-width. */
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 1200px;
+}
+
+/*
+ * Apply the shared properties of grid items in a single, efficient ruleset.
+ */
+/* line 62, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+#header,
+#content,
+#navigation,
+.region-sidebar-first,
+.region-sidebar-second,
+#footer {
+ padding-left: 10px;
+ padding-right: 10px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+}
+
+/*
+ * Containers for grid items and flow items.
+ */
+/* line 52, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:before, #header:after,
+#main:before,
+#main:after,
+#footer:before,
+#footer:after {
+ content: "";
+ display: table;
+}
+/* line 56, ../../../../sass/sass-extensions/zen-grids/stylesheets/zen/_grids.scss */
+#header:after,
+#main:after,
+#footer:after {
+ clear: both;
+}
+
+/*
+ * Navigation bar
+ */
+@media all and (min-width: 480px) {
+ /* line 81, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ #main {
+ padding-top: 3em;
+ /* Move all the children of #main down to make room. */
+ position: relative;
+ }
+
+ /* line 85, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ #navigation {
+ position: absolute;
+ top: 0;
+ /* Move the navbar up inside #main's padding. */
+ height: 3em;
+ width: 100%;
+ }
+}
+@media all and (min-width: 480px) and (max-width: 959px) {
+ /*
+ * Use 3 grid columns for smaller screens.
+ */
+ /*
+ * The layout when there is only one sidebar, the left one.
+ */
+ /* line 104, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first #content {
+ /* Span 2 columns, starting in 2nd column from left. */
+ float: left;
+ width: 66.66667%;
+ margin-left: 33.33333%;
+ margin-right: -100%;
+ }
+ /* line 108, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: left;
+ width: 33.33333%;
+ margin-left: 0%;
+ margin-right: -33.33333%;
+ }
+
+ /*
+ * The layout when there is only one sidebar, the right one.
+ */
+ /* line 118, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second #content {
+ /* Span 2 columns, starting in 1st column from left. */
+ float: left;
+ width: 66.66667%;
+ margin-left: 0%;
+ margin-right: -66.66667%;
+ }
+ /* line 122, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second .region-sidebar-second {
+ /* Span 1 column, starting in 3rd column from left. */
+ float: left;
+ width: 33.33333%;
+ margin-left: 66.66667%;
+ margin-right: -100%;
+ }
+
+ /*
+ * The layout when there are two sidebars.
+ */
+ /* line 132, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars #content {
+ /* Span 2 columns, starting in 2nd column from left. */
+ float: left;
+ width: 66.66667%;
+ margin-left: 33.33333%;
+ margin-right: -100%;
+ }
+ /* line 136, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: left;
+ width: 33.33333%;
+ margin-left: 0%;
+ margin-right: -33.33333%;
+ }
+ /* line 140, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second {
+ /* Start a new row and span all 3 columns. */
+ float: left;
+ width: 100%;
+ margin-left: 0%;
+ margin-right: -100%;
+ padding-left: 0;
+ padding-right: 0;
+ clear: left;
+ }
+ /* line 145, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block {
+ padding-left: 10px;
+ padding-right: 10px;
+ -moz-box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -ms-box-sizing: border-box;
+ box-sizing: border-box;
+ word-wrap: break-word;
+ }
+ /* line 148, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block:nth-child(3n+1) {
+ /* Span 1 column, starting in the 1st column from left. */
+ float: left;
+ width: 33.33333%;
+ margin-left: 0%;
+ margin-right: -33.33333%;
+ clear: left;
+ }
+ /* line 152, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block:nth-child(3n+2) {
+ /* Span 1 column, starting in the 2nd column from left. */
+ float: left;
+ width: 33.33333%;
+ margin-left: 33.33333%;
+ margin-right: -66.66667%;
+ }
+ /* line 155, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second .block:nth-child(3n) {
+ /* Span 1 column, starting in the 3rd column from left. */
+ float: left;
+ width: 33.33333%;
+ margin-left: 66.66667%;
+ margin-right: -100%;
+ }
+}
+@media all and (min-width: 960px) {
+ /*
+ * Use 5 grid columns for larger screens.
+ */
+ /*
+ * The layout when there is only one sidebar, the left one.
+ */
+ /* line 173, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first #content {
+ /* Span 4 columns, starting in 2nd column from left. */
+ float: left;
+ width: 80%;
+ margin-left: 20%;
+ margin-right: -100%;
+ }
+ /* line 177, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-first .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: left;
+ width: 20%;
+ margin-left: 0%;
+ margin-right: -20%;
+ }
+
+ /*
+ * The layout when there is only one sidebar, the right one.
+ */
+ /* line 187, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second #content {
+ /* Span 4 columns, starting in 1st column from left. */
+ float: left;
+ width: 80%;
+ margin-left: 0%;
+ margin-right: -80%;
+ }
+ /* line 191, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .sidebar-second .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: left;
+ width: 20%;
+ margin-left: 80%;
+ margin-right: -100%;
+ }
+
+ /*
+ * The layout when there are two sidebars.
+ */
+ /* line 201, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars #content {
+ /* Span 3 columns, starting in 2nd column from left. */
+ float: left;
+ width: 60%;
+ margin-left: 20%;
+ margin-right: -80%;
+ }
+ /* line 205, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-first {
+ /* Span 1 column, starting in 1st column from left. */
+ float: left;
+ width: 20%;
+ margin-left: 0%;
+ margin-right: -20%;
+ }
+ /* line 209, ../../../../sass/sass/layouts/responsive-sidebars.scss */
+ .two-sidebars .region-sidebar-second {
+ /* Span 1 column, starting in 5th column from left. */
+ float: left;
+ width: 20%;
+ margin-left: 80%;
+ margin-right: -100%;
+ }
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/login.css b/97suifangqa/staticfiles/stylesheets/sass/login.css new file mode 100644 index 0000000..79d1289 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/login.css @@ -0,0 +1,6 @@ +@charset "UTF-8";
+/**
+ * @file
+ * Login specific styles
+ * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com>
+ */
diff --git a/97suifangqa/staticfiles/stylesheets/sass/navigation-rtl.css b/97suifangqa/staticfiles/stylesheets/sass/navigation-rtl.css new file mode 100644 index 0000000..bc343d2 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/navigation-rtl.css @@ -0,0 +1,22 @@ +/**
+ * @file
+ * RTL companion for the navigation.css file.
+ */
+/* line 18, ../../../sass/sass/navigation-rtl.scss */
+#navigation ul.links,
+#navigation ul.menu {
+ /* Menu block links */
+ text-align: right;
+}
+/* line 21, ../../../sass/sass/navigation-rtl.scss */
+#navigation ul.links li,
+#navigation ul.menu li {
+ /* A simple method to get navigation links to appear in one line. */
+ float: right;
+ padding: 0 0 0 10px;
+}
+
+/* line 28, ../../../sass/sass/navigation-rtl.scss */
+#secondary-menu {
+ float: left;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/navigation.css b/97suifangqa/staticfiles/stylesheets/sass/navigation.css new file mode 100644 index 0000000..e6335ae --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/navigation.css @@ -0,0 +1,82 @@ +/**
+ * @file
+ * Navigation Styling
+ */
+/*
+ * Markup generated by theme_menu_tree().
+ */
+/* line 13, ../../../sass/sass/navigation.scss */
+ul li.expanded {
+ list-style-type: circle;
+}
+
+/* line 20, ../../../sass/sass/navigation.scss */
+ul li.collapsed {
+ list-style-type: disc;
+}
+
+/* line 27, ../../../sass/sass/navigation.scss */
+ul li.leaf {
+ list-style-type: square;
+}
+
+/*
+ * Navigation bar
+ */
+/* line 40, ../../../sass/sass/navigation.scss */
+#navigation {
+ /* overflow: hidden; */
+ /* Sometimes you want to prevent overlapping with main div. */
+}
+/* line 43, ../../../sass/sass/navigation.scss */
+#navigation .block {
+ margin-bottom: 0;
+}
+/* line 48, ../../../sass/sass/navigation.scss */
+#navigation .block-menu .block-title,
+#navigation .block-menu-block .block-title {
+ position: absolute !important;
+ height: 1px;
+ width: 1px;
+ overflow: hidden;
+ clip: rect(1px, 1px, 1px, 1px);
+}
+/* line 53, ../../../sass/sass/navigation.scss */
+#navigation ul.links,
+#navigation ul.menu {
+ /* Menu block links */
+ margin: 0;
+ padding: 0;
+ text-align: left;
+ /* LTR */
+}
+/* line 58, ../../../sass/sass/navigation.scss */
+#navigation ul.links li,
+#navigation ul.menu li {
+ /* A simple method to get navigation links to appear in one line. */
+ float: left;
+ /* LTR */
+ padding: 0 10px 0 0;
+ /* LTR */
+ list-style-type: none;
+ list-style-image: none;
+}
+
+/*
+ * Main menu and Secondary menu links
+ */
+/* line 77, ../../../sass/sass/navigation.scss */
+#secondary-menu {
+ float: right;
+ /* LTR */
+}
+
+/*
+ * Menu blocks
+ */
+/*
+ * "Menu block" blocks
+ *
+ * Drupal core has limited ways in which it can display its menus. To get around
+ * these limitations, see http://drupal.org/project/menu_block
+ */
diff --git a/97suifangqa/staticfiles/stylesheets/sass/nodes.css b/97suifangqa/staticfiles/stylesheets/sass/nodes.css new file mode 100644 index 0000000..15fc84e --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/nodes.css @@ -0,0 +1,92 @@ +/**
+ * @file
+ * Node Styling
+ *
+ * Style anything that isn't in the $content variable.
+ */
+/* line 11, ../../../sass/sass/nodes.scss */
+.node {
+ /* Node wrapper */
+}
+/* line 13, ../../../sass/sass/nodes.scss */
+.preview .node {
+ /* Preview of the content before submitting new or updated content */
+ /* background-color: #ffffea; */
+ /* Drupal core uses a #ffffea background */
+}
+/* line 17, ../../../sass/sass/nodes.scss */
+.node .node-title {
+ /* Node title */
+}
+/* line 20, ../../../sass/sass/nodes.scss */
+.node .user-picture {
+ /* The picture of the node author */
+}
+/* line 23, ../../../sass/sass/nodes.scss */
+.node .submitted {
+ /* The "posted by" information */
+}
+/* line 26, ../../../sass/sass/nodes.scss */
+.node .content {
+ /* Node's content wrapper */
+}
+/* line 29, ../../../sass/sass/nodes.scss */
+.node ul.links {
+ /* Node links. See also the ul.links declaration in the pages.css. */
+}
+
+/* line 34, ../../../sass/sass/nodes.scss */
+.node-promoted {
+ /* A node that has been promoted to the front page */
+}
+
+/* line 37, ../../../sass/sass/nodes.scss */
+.node-sticky {
+ /* A sticky node (displayed before others in a list) */
+}
+
+/* line 40, ../../../sass/sass/nodes.scss */
+.node-by-viewer {
+ /* A node created by the current user */
+}
+
+/* line 43, ../../../sass/sass/nodes.scss */
+.node-teaser {
+ /* A node displayed as teaser */
+}
+
+/*
+ * All nodes are given a node-FOO class that describes the type of content that
+ * it is. If you create a new content type called "my-custom-type", it will
+ * receive a "node-my-custom-type" class.
+ */
+/* line 52, ../../../sass/sass/nodes.scss */
+.node-page {
+ /* Page content node */
+}
+
+/* line 55, ../../../sass/sass/nodes.scss */
+.node-article {
+ /* Article content node */
+}
+
+/* line 58, ../../../sass/sass/nodes.scss */
+.node-unpublished {
+ /* Unpublished nodes */
+ /* background-color: #fff4f4; */
+ /* Drupal core uses a #fff4f4 background */
+}
+/* line 61, ../../../sass/sass/nodes.scss */
+.node-unpublished p.unpublished {
+ /* The word "Unpublished" displayed underneath the content. */
+ height: 0;
+ overflow: visible;
+ color: #d8d8d8;
+ font-size: 75px;
+ line-height: 1;
+ font-family: Impact, "Arial Narrow", Helvetica, sans-serif;
+ font-weight: bold;
+ text-transform: uppercase;
+ text-align: center;
+ word-wrap: break-word;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/normalize-rtl.css b/97suifangqa/staticfiles/stylesheets/sass/normalize-rtl.css new file mode 100644 index 0000000..25f55c5 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/normalize-rtl.css @@ -0,0 +1,36 @@ +/* normalize-rtl.css - RTL language extension of normalize.scss. */
+/* =============================================================================
+ Lists
+ ========================================================================== */
+/*
+ * Addresses margins set differently in IE6/7
+ */
+/* line 14, ../../../sass/sass/normalize-rtl.scss */
+dd {
+ margin: 0 30px 0 0;
+}
+
+/*
+ * Addresses paddings set differently in IE6/7
+ */
+/* line 25, ../../../sass/sass/normalize-rtl.scss */
+menu,
+ol,
+ul,
+.item-list ul {
+ padding: 0 30px 0 0;
+}
+
+/* =============================================================================
+ Forms
+ ========================================================================== */
+/*
+ * 3. Corrects alignment displayed oddly in IE6/7
+ */
+/* =============================================================================
+ Tables
+ ========================================================================== */
+/* line 48, ../../../sass/sass/normalize-rtl.scss */
+th {
+ text-align: right;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/normalize.css b/97suifangqa/staticfiles/stylesheets/sass/normalize.css new file mode 100644 index 0000000..26c95e2 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/normalize.css @@ -0,0 +1,763 @@ +/* normalize.css 2012-03-11T12:53 UTC - http://github.com/necolas/normalize.css */
+/* =============================================================================
+ Normalize.css is intended to be used as an alternative to CSS resets.
+
+ It is suggested that you read through the normalize.css file and customise it
+ to meet the design requirements of a project rather including it as a "black
+ box". @see http://nicolasgallagher.com/about-normalize-css/
+
+ Also: @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/
+ @see http://snook.ca/archives/html_and_css/no_css_reset/
+ ========================================================================== */
+/* =============================================================================
+ HTML5 display definitions
+ ========================================================================== */
+/*
+ * Corrects block display not defined in IE6/7/8/9 & FF3
+ */
+/* line 36, ../../../sass/sass/normalize.scss */
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+menu,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/*
+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3
+ */
+/* line 46, ../../../sass/sass/normalize.scss */
+audio,
+canvas,
+video {
+ display: inline-block;
+}
+
+/*
+ * Prevents modern browsers from displaying 'audio' without controls
+ * Remove excess height in iOS5 devices
+ */
+/* line 59, ../../../sass/sass/normalize.scss */
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/*
+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4
+ * Known issue: no IE6 support
+ */
+/* line 69, ../../../sass/sass/normalize.scss */
+[hidden] {
+ display: none;
+}
+
+/* =============================================================================
+ Base
+ ========================================================================== */
+/* Instead of relying on the fonts that are available on a user's computer, you
+ can use web fonts which, like images, are resources downloaded to the user's
+ browser. Because of the bandwidth and rendering resources required, web fonts
+ should be used with care.
+
+ Numerous resources for web fonts can be found on Google. Here are a few
+ websites where you can find Open Source fonts to download:
+ - http://www.fontsquirrel.com/fontface
+ - http://www.theleagueofmoveabletype.com
+
+ In order to use these fonts, you will need to convert them into formats
+ suitable for web fonts. We recommend the free-to-use Font Squirrel's
+ Font-Face Generator:
+ http://www.fontsquirrel.com/fontface/generator
+
+ The following is an example @font-face declaration. This font can then be
+ used in any ruleset using a property like this: font-family: Example, serif;
+
+ Since we're using Sass, you'll need to declare your font faces here, then you
+ can add them to the font variables in the _base.scss partial.
+*/
+/*
+@font-face {
+ font-family: 'Example';
+ src: url('../fonts/example.eot');
+ src: url('../fonts/example.eot?iefix') format('eot'),
+ url('../fonts/example.woff') format('woff'),
+ url('../fonts/example.ttf') format('truetype'),
+ url('../fonts/example.svg#webfontOkOndcij') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+*/
+/*
+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units
+ * http://clagnut.com/blog/348/#c790
+ * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom
+ * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/
+ */
+/* line 120, ../../../sass/sass/normalize.scss */
+html {
+ font-size: 87.5%;
+ /* 1 */
+ -webkit-text-size-adjust: 100%;
+ /* 2 */
+ -ms-text-size-adjust: 100%;
+ /* 2 */
+ /* Establishes a vertical rhythm unit using $base-line-height. */
+ color: #5c5c5c;
+ line-height: 1.42857em;
+}
+
+/*
+ * Addresses font-family inconsistency between 'textarea' and other form elements.
+ */
+/* line 137, ../../../sass/sass/normalize.scss */
+html,
+button,
+input,
+select,
+textarea {
+ font-family: "TIBch", "ClassicGrotesqueW01-Rg", "Helvetica Neue", Arial, "Hiragino Sans GB", "STHeiti", "WenQuanYi Micro Hei", "Microsoft YaHei", SimSun, sans-serif;
+}
+
+/*
+ * Addresses margins handled incorrectly in IE6/7
+ */
+/* line 145, ../../../sass/sass/normalize.scss */
+body {
+ margin: 0;
+}
+
+/* =============================================================================
+ Links
+ ========================================================================== */
+/*
+ * The order of link states are based on Eric Meyer's article:
+ * http://meyerweb.com/eric/thoughts/2007/06/11/who-ordered-the-link-states
+ */
+/* line 162, ../../../sass/sass/normalize.scss */
+a {
+ color: #006699;
+ text-decoration: none;
+}
+
+/* line 167, ../../../sass/sass/normalize.scss */
+a:visited {
+ color: #006699;
+}
+
+/* line 172, ../../../sass/sass/normalize.scss */
+a:hover,
+a:focus {
+ text-decoration: underline;
+}
+
+/*
+ * Addresses outline displayed oddly in Chrome
+ */
+/* line 184, ../../../sass/sass/normalize.scss */
+a:focus {
+ outline: thin dotted;
+}
+
+/*
+ * Improves readability when focused and also mouse hovered in all browsers
+ * people.opera.com/patrickl/experiments/keyboard/test
+ */
+/* line 194, ../../../sass/sass/normalize.scss */
+a:hover,
+a:active {
+ outline: 0;
+}
+
+/* =============================================================================
+ Typography
+
+ To achieve a pleasant vertical rhythm, we use Compass' Vertical Rhythm mixins
+ so that the line height of our base font becomes the basic unit of vertical
+ measurement. We use multiples of that unit to set the top and bottom margins
+ for our block level elements and to set the line heights of any fonts.
+ For more information, see http://24ways.org/2006/compose-to-a-vertical-rhythm
+ ========================================================================== */
+/*
+ * Addresses font sizes and margins set differently in IE6/7
+ * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5
+ */
+/* line 214, ../../../sass/sass/normalize.scss */
+h1 {
+ /* Sets the font-size and line-height while keeping a proper vertical rhythm. */
+ font-size: 1.57143em;
+ line-height: 1.36364em;
+ /* Sets 1 unit of vertical rhythm on the top and bottom margins. */
+ margin-top: 0.45455em;
+ margin-bottom: 0.72727em;
+}
+
+/* line 223, ../../../sass/sass/normalize.scss */
+h2 {
+ font-size: 1.4em;
+ line-height: 2.04082em;
+ margin-top: 0.5102em;
+ margin-bottom: 0.30612em;
+}
+
+/* line 229, ../../../sass/sass/normalize.scss */
+h3 {
+ font-size: 1.17em;
+ line-height: 2.442em;
+ margin-top: 1.221em;
+ margin-bottom: 0.3663em;
+}
+
+/* line 235, ../../../sass/sass/normalize.scss */
+h4 {
+ font-size: 1em;
+ line-height: 1.42857em;
+ margin-top: 1.14286em;
+ margin-bottom: 0.57143em;
+}
+
+/* line 241, ../../../sass/sass/normalize.scss */
+h5 {
+ font-size: 0.83em;
+ line-height: 1.72117em;
+ margin-top: 0.51635em;
+ margin-bottom: 0.86059em;
+}
+
+/* line 247, ../../../sass/sass/normalize.scss */
+h6 {
+ font-size: 0.75em;
+ line-height: 1.90476em;
+ margin-top: 0.57143em;
+ margin-bottom: 0.95238em;
+}
+
+/* Thematic break */
+/* line 254, ../../../sass/sass/normalize.scss */
+hr {
+ height: 1px;
+ border: 1px solid #666;
+ padding-bottom: -1px;
+ margin: 1.42857em 0;
+}
+
+/*
+ * Addresses styling not present in IE7/8/9, S5, Chrome
+ */
+/* line 265, ../../../sass/sass/normalize.scss */
+abbr[title] {
+ border-bottom: 1px dotted;
+ cursor: help;
+ white-space: nowrap;
+}
+
+/*
+ * Addresses style set to 'bolder' in FF3+, S4/5, Chrome
+*/
+/* line 276, ../../../sass/sass/normalize.scss */
+b,
+strong {
+ font-weight: bold;
+}
+
+/* line 280, ../../../sass/sass/normalize.scss */
+blockquote {
+ /* Sets 1 unit of vertical rhythm on the top and bottom margin. */
+ margin: 1.42857em 30px;
+}
+
+/*
+ * Addresses styling not present in S5, Chrome
+ */
+/* line 289, ../../../sass/sass/normalize.scss */
+dfn {
+ font-style: italic;
+}
+
+/*
+ * Addresses styling not present in IE6/7/8/9
+ */
+/* line 297, ../../../sass/sass/normalize.scss */
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+/*
+ * Addresses margins set differently in IE6/7
+ */
+/* line 307, ../../../sass/sass/normalize.scss */
+p,
+pre {
+ /* Sets 1 unit of vertical rhythm on the top and bottom margin. */
+ margin-bottom: 0.71429em;
+ margin-top: 0;
+}
+
+/*
+ * Corrects font family set oddly in IE6, S4/5, Chrome
+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59
+ */
+/* line 323, ../../../sass/sass/normalize.scss */
+pre,
+code,
+kbd,
+samp,
+tt,
+var {
+ font-family: "Courier New", "DejaVu Sans Mono", monospace, sans-serif, "STHeiti", "WenQuanYi Micro Hei", "Microsoft YaHei", SimSun, sans-serif;
+ /* The $font-monospace value ends with ", serif". */
+ font-size: 1em;
+ line-height: 1.42857em;
+}
+
+/*
+ * Improves readability of pre-formatted text in all browsers
+ */
+/* line 335, ../../../sass/sass/normalize.scss */
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/*
+ * 1. Addresses CSS quotes not supported in IE6/7
+ * 2. Addresses quote property not supported in S4
+ */
+/* 1 */
+/* line 348, ../../../sass/sass/normalize.scss */
+q {
+ quotes: none;
+}
+
+/* 2 */
+/* line 355, ../../../sass/sass/normalize.scss */
+q:before,
+q:after {
+ content: '';
+ content: none;
+}
+
+/* @todo Determine how big element affects vertical rhythm. */
+/* line 361, ../../../sass/sass/normalize.scss */
+small {
+ font-size: 75%;
+}
+
+/*
+ * Prevents sub and sup affecting line-height in all browsers
+ * gist.github.com/413930
+ */
+/* line 371, ../../../sass/sass/normalize.scss */
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+/* line 378, ../../../sass/sass/normalize.scss */
+sup {
+ top: -0.5em;
+}
+
+/* line 382, ../../../sass/sass/normalize.scss */
+sub {
+ bottom: -0.25em;
+}
+
+/* =============================================================================
+ Lists
+ ========================================================================== */
+/*
+ * Addresses margins set differently in IE6/7
+ */
+/* line 399, ../../../sass/sass/normalize.scss */
+dl,
+menu,
+ol,
+ul,
+.item-list ul {
+ /* Sets 1 unit of vertical rhythm on the top and bottom margin. */
+ margin: 1.42857em 0;
+}
+
+/* line 404, ../../../sass/sass/normalize.scss */
+.item-list ul li {
+ /* Drupal override */
+ margin: 0;
+}
+
+/* line 408, ../../../sass/sass/normalize.scss */
+dd {
+ margin: 0 0 0 30px;
+ /* LTR */
+}
+
+/* line 413, ../../../sass/sass/normalize.scss */
+ul ul, ul ol, ol ul, ol ol, .item-list ul ul, .item-list ul ol, .item-list ol ul, .item-list ol ol {
+ margin: 0;
+ /* Turn off margins on nested lists. */
+}
+
+/*
+ * Addresses paddings set differently in IE6/7
+ */
+/* line 425, ../../../sass/sass/normalize.scss */
+menu,
+ol,
+ul,
+.item-list ul {
+ padding: 0 0 0 30px;
+ /* LTR */
+}
+
+/*
+ * Corrects list images handled incorrectly in IE7
+ */
+/* line 434, ../../../sass/sass/normalize.scss */
+nav ul,
+nav ol {
+ list-style: none;
+ list-style-image: none;
+}
+
+/* =============================================================================
+ Embedded content
+ ========================================================================== */
+/*
+ * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3
+ * 2. Improves image quality when scaled in IE7
+ * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/
+ */
+/* line 450, ../../../sass/sass/normalize.scss */
+img {
+ border: 0;
+ /* 1 */
+ -ms-interpolation-mode: bicubic;
+ /* 2 */
+ /* vertical-align: bottom; */
+ /* Suppress the space beneath the baseline */
+ /* Responsive images */
+ /* @todo Add responsive embedded video. */
+ max-width: 100%;
+ height: auto;
+}
+
+/*
+ * Corrects overflow displayed oddly in IE9
+ */
+/* line 466, ../../../sass/sass/normalize.scss */
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* =============================================================================
+ Figures
+ ========================================================================== */
+/*
+ * Addresses margin not present in IE6/7/8/9, S5, O11
+ */
+/* line 479, ../../../sass/sass/normalize.scss */
+figure {
+ margin: 0;
+}
+
+/* =============================================================================
+ Forms
+ ========================================================================== */
+/*
+ * Corrects margin displayed oddly in IE6/7
+ */
+/* line 492, ../../../sass/sass/normalize.scss */
+form {
+ margin: 0;
+}
+
+/*
+ * Define consistent border, margin, and padding
+ */
+/* line 500, ../../../sass/sass/normalize.scss */
+fieldset {
+ border-color: #c0c0c0;
+ margin: 0 2px;
+ /* Apply borders and padding that keep the vertical rhythm. */
+ border-top-style: solid;
+ border-top-width: 0.07143em;
+ padding-top: 0.42857em;
+ border-bottom-style: solid;
+ border-bottom-width: 0.07143em;
+ padding-bottom: 0.85714em;
+ border-left-style: solid;
+ border-left-width: 0.07143em;
+ padding-left: 0.85714em;
+ border-right-style: solid;
+ border-right-width: 0.07143em;
+ padding-right: 0.85714em;
+}
+
+/*
+ * 1. Corrects color not being inherited in IE6/7/8/9
+ * 2. Corrects text not wrapping in FF3
+ * 3. Corrects alignment displayed oddly in IE6/7
+ */
+/* line 516, ../../../sass/sass/normalize.scss */
+legend {
+ border: 0;
+ /* 1 */
+ padding: 0;
+ white-space: normal;
+ /* 2 */
+}
+
+/*
+ * 1. Corrects font size not being inherited in all browsers
+ * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome
+ * 3. Improves appearance and consistency in all browsers
+ */
+/* line 534, ../../../sass/sass/normalize.scss */
+button,
+input,
+select,
+textarea {
+ font-size: 100%;
+ /* 1 */
+ margin: 0;
+ /* 2 */
+ vertical-align: baseline;
+ /* 3 */
+}
+
+/*
+ * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet
+ */
+/* line 548, ../../../sass/sass/normalize.scss */
+button,
+input {
+ line-height: normal;
+ /* 1 */
+}
+
+/*
+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others
+ * 2. Corrects inability to style clickable 'input' types in iOS
+ * 3. Removes inner spacing in IE7 without affecting normal text inputs
+ * Known issue: inner spacing remains in IE6
+ */
+/* line 562, ../../../sass/sass/normalize.scss */
+button,
+input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ cursor: pointer;
+ /* 1 */
+ -webkit-appearance: button;
+ /* 2 */
+}
+
+/* line 574, ../../../sass/sass/normalize.scss */
+.button,
+button,
+input[type="submit"],
+input[type="button"],
+input[type="reset"] {
+ cursor: pointer;
+ -webkit-appearance: none;
+ background-color: #99cc33;
+ border: 1px solid #f3f2f0;
+ -webkit-box-shadow: 0px 0px 2px white;
+ -moz-box-shadow: 0px 0px 2px white;
+ box-shadow: 0px 0px 2px white;
+ -webkit-border-radius: 3px;
+ -moz-border-radius: 3px;
+ -ms-border-radius: 3px;
+ -o-border-radius: 3px;
+ border-radius: 3px;
+ color: white;
+ padding-left: 0.8em;
+ padding-right: 0.8em;
+ height: 2.1em;
+ vertical-align: middle;
+}
+/* line 588, ../../../sass/sass/normalize.scss */
+.button:hover,
+button:hover,
+input[type="submit"]:hover,
+input[type="button"]:hover,
+input[type="reset"]:hover {
+ background-color: #93c431;
+}
+/* line 591, ../../../sass/sass/normalize.scss */
+.button:active,
+button:active,
+input[type="submit"]:active,
+input[type="button"]:active,
+input[type="reset"]:active {
+ background-color: #8ab82e;
+ -webkit-box-shadow: inset 0px 0px 10px rgba(85, 85, 85, 0.5);
+ -moz-box-shadow: inset 0px 0px 10px rgba(85, 85, 85, 0.5);
+ box-shadow: inset 0px 0px 10px rgba(85, 85, 85, 0.5);
+}
+/* line 595, ../../../sass/sass/normalize.scss */
+.button.disabled,
+button.disabled,
+input[type="submit"].disabled,
+input[type="button"].disabled,
+input[type="reset"].disabled {
+ cursor: default;
+}
+/* line 598, ../../../sass/sass/normalize.scss */
+.button.disabled:active, .button.disabled:hover,
+button.disabled:active,
+button.disabled:hover,
+input[type="submit"].disabled:active,
+input[type="submit"].disabled:hover,
+input[type="button"].disabled:active,
+input[type="button"].disabled:hover,
+input[type="reset"].disabled:active,
+input[type="reset"].disabled:hover {
+ background-color: #99cc33;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+
+/* line 611, ../../../sass/sass/normalize.scss */
+a.button,
+a.button:hover,
+a.button:active,
+a.button:visited {
+ text-decoration: none;
+}
+
+/* line 615, ../../../sass/sass/normalize.scss */
+.button {
+ text-align: center;
+ line-height: 2.1em;
+}
+
+/* line 621, ../../../sass/sass/normalize.scss */
+input[type="text"],
+input[type="password"] {
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ padding-top: 0;
+ padding-bottom: 0;
+ height: 1.95em;
+}
+
+/*
+ * Re-set default cursor for disabled elements
+ */
+/* line 637, ../../../sass/sass/normalize.scss */
+button[disabled],
+input[disabled] {
+ cursor: default;
+}
+
+/*
+ * 1. Addresses box sizing set to content-box in IE8/9
+ * 2. Removes excess padding in IE8/9
+ * 3. Removes excess padding in IE7
+ Known issue: excess padding remains in IE6
+ */
+/* line 649, ../../../sass/sass/normalize.scss */
+input[type="checkbox"],
+input[type="radio"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ /* 1 */
+ padding: 0;
+ /* 2 */
+}
+
+/*
+ * 1. Addresses appearance set to searchfield in S5, Chrome
+ * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof)
+ */
+/* line 663, ../../../sass/sass/normalize.scss */
+input[type="search"] {
+ -webkit-appearance: textfield;
+ /* 1 */
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ /* 2 */
+}
+
+/*
+ * Removes inner padding and search cancel button in S5, Chrome on OS X
+ */
+/* line 673, ../../../sass/sass/normalize.scss */
+input[type="search"]::-webkit-search-decoration,
+input[type="search"]::-webkit-search-cancel-button {
+ -webkit-appearance: none;
+}
+
+/*
+ * Removes inner padding and border in FF3+
+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/
+ */
+/* line 683, ../../../sass/sass/normalize.scss */
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/*
+ * 1. Removes default vertical scrollbar in IE6/7/8/9
+ * 2. Improves readability and alignment in all browsers
+ */
+/* line 693, ../../../sass/sass/normalize.scss */
+textarea {
+ overflow: auto;
+ /* 1 */
+ vertical-align: top;
+ /* 2 */
+}
+
+/* =============================================================================
+ Tables
+ ========================================================================== */
+/*
+ * Remove most spacing between table cells
+ */
+/* line 707, ../../../sass/sass/normalize.scss */
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+ /* width: 100%; */
+ /* Prevent cramped-looking tables */
+ /* Add vertical rhythm margins. */
+ margin-top: 1.42857em;
+ margin-bottom: 1.42857em;
+}
+
+/*
+ * Drupal provides table styling which is only useful for its admin section
+ * forms, so we override this default CSS. (We set it back in forms.css.)
+ */
+/* line 721, ../../../sass/sass/normalize.scss */
+th {
+ text-align: left;
+ /* LTR */
+ padding: 0;
+ border-bottom: none;
+}
+
+/* line 727, ../../../sass/sass/normalize.scss */
+tbody {
+ border-top: none;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/pages-rtl.css b/97suifangqa/staticfiles/stylesheets/sass/pages-rtl.css new file mode 100644 index 0000000..a911840 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/pages-rtl.css @@ -0,0 +1,29 @@ +/**
+ * @file
+ * RTL companion for the pages.css file.
+ */
+/*
+ * Header
+ */
+/* line 13, ../../../sass/sass/pages-rtl.scss */
+#logo {
+ /* Wrapping link for logo */
+ float: right;
+}
+
+/*
+ * Content
+ */
+/* line 21, ../../../sass/sass/pages-rtl.scss */
+ul.inline li {
+ /* List of links */
+ display: inline-block;
+ /* Bug in Safari causes display: inline to fail. */
+ padding: 0 0 0 1em;
+}
+
+/* line 25, ../../../sass/sass/pages-rtl.scss */
+span.field-label {
+ /* The inline field label used by the Fences.module */
+ padding: 0 0 0 1em;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/pages.css b/97suifangqa/staticfiles/stylesheets/sass/pages.css new file mode 100644 index 0000000..0ceb23c --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/pages.css @@ -0,0 +1,459 @@ +/**
+ * @file
+ * Page Styling
+ *
+ * Style the markup found in page.tpl.php. Also includes some styling of
+ * miscellaneous Drupal elements that appear in the $content variable, such as
+ * ul.links, .pager, .more-link, etc.
+ */
+/*
+ * Body
+ */
+/* line 17, ../../../sass/sass/pages.scss */
+body {
+ margin: 0;
+ padding: 0;
+}
+
+/*
+ * The skip-link link will be completely hidden until a user tabs to the link.
+ * See the element-focusable rule in system.base.css.
+ */
+/* line 30, ../../../sass/sass/pages.scss */
+#skip-link {
+ margin: 0;
+}
+/* line 34, ../../../sass/sass/pages.scss */
+#skip-link a,
+#skip-link a:visited {
+ display: block;
+ width: 100%;
+ padding: 2px 0 3px 0;
+ text-align: center;
+ background-color: #666;
+ color: #fff;
+}
+
+/* line 48, ../../../sass/sass/pages.scss */
+.text .highlight {
+ background-color: #efeff0;
+ border: 1px solid #c9caca;
+ padding: 2px;
+ font-weight: bold;
+}
+/* line 53, ../../../sass/sass/pages.scss */
+.text .highlight p {
+ margin: 0;
+}
+
+/*
+ * Header
+ */
+/* line 66, ../../../sass/sass/pages.scss */
+#login {
+ position: relative;
+}
+/* line 69, ../../../sass/sass/pages.scss */
+#login.not-logged-in ul {
+ margin: 0;
+}
+/* line 71, ../../../sass/sass/pages.scss */
+#login.not-logged-in ul li {
+ border-right: 1px solid;
+ padding-left: 0.5em;
+ padding-right: 0.8em;
+}
+/* line 78, ../../../sass/sass/pages.scss */
+#login.not-logged-in ul li.first {
+ padding-left: 0;
+}
+/* line 81, ../../../sass/sass/pages.scss */
+#login.not-logged-in ul li.last {
+ padding-right: 0;
+ border-right: none;
+}
+/* line 86, ../../../sass/sass/pages.scss */
+#login.not-logged-in ul li a {
+ color: inherit;
+}
+/* line 93, ../../../sass/sass/pages.scss */
+#login.logged-in .user-level {
+ font-size: 1em;
+ line-height: 1em;
+ padding-left: 0.2em;
+ padding-right: 0.25em;
+ padding-top: 0.05em;
+ padding-bottom: 0.05em;
+ vertical-align: -0.1em;
+}
+/* line 106, ../../../sass/sass/pages.scss */
+#login.logged-in .user-name,
+#login.logged-in .user-level,
+#login.logged-in .user-photo,
+#login.logged-in .drop-down-menu-button {
+ vertical-align: bottom;
+}
+/* line 109, ../../../sass/sass/pages.scss */
+#login.logged-in .user-name {
+ font-size: 1.14286em;
+ line-height: 1em;
+ font-weight: bold;
+}
+/* line 114, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-area {
+ cursor: pointer;
+}
+/* line 118, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-menu {
+ color: black;
+ z-index: 1;
+ position: absolute;
+ display: none;
+ top: 100%;
+ margin-top: 10px;
+ left: -10px;
+ background-color: white;
+ border: 1px solid #c9c9c9;
+ -webkit-box-shadow: 0px 0px 10px rgba(85, 85, 85, 0.5);
+ -moz-box-shadow: 0px 0px 10px rgba(85, 85, 85, 0.5);
+ box-shadow: 0px 0px 10px rgba(85, 85, 85, 0.5);
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+}
+/* line 105, ../../../sass/sass/_custom.scss */
+#login.logged-in .drop-down-menu.open {
+ display: block;
+}
+/* line 129, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-menu .text-pointer {
+ position: absolute;
+ background: url(../../images/login-menu-popup-pointer.png) no-repeat;
+ width: 20px;
+ height: 8px;
+ top: -8px;
+ left: 90px;
+ margin-left: -10px;
+}
+/* line 139, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-menu ul {
+ margin: 0;
+ padding: 0;
+}
+/* line 143, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-menu ul li {
+ padding: 2px;
+ border-bottom: 1px solid #efefef;
+}
+/* line 147, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-menu ul li.last {
+ border-bottom: none;
+}
+/* line 151, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-menu ul li a {
+ padding-left: 1em;
+ display: block;
+ width: 150px;
+ padding-top: 0.2em;
+ padding-bottom: 0.2em;
+ text-decoration: none;
+ color: inherit;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+}
+/* line 165, ../../../sass/sass/pages.scss */
+#login.logged-in .drop-down-menu ul li a:hover {
+ text-decoration: none;
+ background-color: #c9cacc;
+ color: white;
+}
+
+/* line 177, ../../../sass/sass/pages.scss */
+#back-to-top-button {
+ z-index: 100;
+ position: fixed;
+ background: url(../../images/back-to-top-button.png) no-repeat;
+ width: 40px;
+ height: 40px;
+ cursor: pointer;
+ opacity: 0;
+ visibility: hidden;
+ -webkit-transition: all 0.3s ease;
+ -webkit-transition-delay: 0s;
+ -moz-transition: all 0.3s ease 0s;
+ -o-transition: all 0.3s ease 0s;
+ transition: all 0.3s ease 0s;
+}
+/* line 191, ../../../sass/sass/pages.scss */
+body.scrolled-down #back-to-top-button {
+ opacity: 1;
+ visibility: visible;
+}
+
+/* line 197, ../../../sass/sass/pages.scss */
+#logo {
+ /* Wrapping link for logo */
+ float: left;
+ /* LTR */
+ margin: 0;
+ padding: 0;
+}
+/* line 202, ../../../sass/sass/pages.scss */
+#logo img {
+ vertical-align: bottom;
+}
+
+/* line 207, ../../../sass/sass/pages.scss */
+#name-and-slogan {
+ /* Wrapper for website name and slogan */
+ float: left;
+}
+
+/* line 211, ../../../sass/sass/pages.scss */
+#site-name {
+ /* The name of the website */
+ margin: 0;
+ font-size: 2em;
+ line-height: 1.5em;
+}
+/* line 217, ../../../sass/sass/pages.scss */
+#site-name a:link,
+#site-name a:visited {
+ color: #000;
+ text-decoration: none;
+}
+/* line 223, ../../../sass/sass/pages.scss */
+#site-name a:hover,
+#site-name a:focus {
+ text-decoration: underline;
+}
+
+/* line 228, ../../../sass/sass/pages.scss */
+#site-slogan {
+ /* The slogan (or tagline) of a website */
+ margin: 0;
+ font-size: 1em;
+}
+
+/* line 233, ../../../sass/sass/pages.scss */
+.region-header {
+ /* Wrapper for any blocks placed in the header region */
+ clear: both;
+ /* Clear the logo */
+}
+
+/*
+ * Main (container for everything else)
+ */
+/*
+ * Content
+ */
+/* line 254, ../../../sass/sass/pages.scss */
+.breadcrumb {
+ /* The path to the current page in the form of a list of links */
+}
+/* line 255, ../../../sass/sass/pages.scss */
+.breadcrumb ol {
+ margin: 0;
+ padding: 0;
+}
+/* line 259, ../../../sass/sass/pages.scss */
+.breadcrumb li {
+ display: inline;
+ list-style-type: none;
+ margin: 0;
+ padding: 0;
+}
+
+/* line 272, ../../../sass/sass/pages.scss */
+h1.title,
+h2.node-title,
+h2.block-title,
+h2.title,
+h2.comment-form,
+h3.title {
+ /* Comment title */
+ margin: 0;
+}
+
+/* line 276, ../../../sass/sass/pages.scss */
+tr.even {
+ /* Some tables have rows marked even or odd. */
+ /* background-color: #eee; */
+ /* Drupal core uses a #eee background */
+}
+
+/* line 280, ../../../sass/sass/pages.scss */
+tr.odd {
+ /* background-color: #eee; */
+ /* Drupal core uses a #eee background */
+}
+
+/* line 284, ../../../sass/sass/pages.scss */
+div.messages {
+ /* Important messages (status, warning, and error) for the user. See also the declarations in messages.css. */
+ margin: 1.5em 0;
+ /* Drupal core uses "6px 0" margin */
+}
+/* line 287, ../../../sass/sass/pages.scss */
+div.messages ul {
+ margin-top: 0;
+ margin-bottom: 0;
+}
+
+/* line 293, ../../../sass/sass/pages.scss */
+div.status {
+ /* Normal priority messages */
+}
+
+/* line 297, ../../../sass/sass/pages.scss */
+div.warning,
+tr.warning {
+ /* Medium priority messages */
+ /* border: 1px solid #f0c020; */
+ /* Drupal core uses: 1px solid #f0c020 */
+}
+
+/* line 302, ../../../sass/sass/pages.scss */
+div.error,
+tr.error {
+ /* High priority messages. See also the .error declaration below. */
+}
+
+/* line 305, ../../../sass/sass/pages.scss */
+.error {
+ /* Errors that are separate from div.messages status messages. */
+ /* color: #e55; */
+ /* Drupal core uses a #e55 background */
+}
+
+/* line 309, ../../../sass/sass/pages.scss */
+.warning {
+ /* Warnings that are separate from div.messages status messages. */
+ /* color: #e09010; */
+ /* Drupal core uses a #e09010 background */
+}
+
+/* line 313, ../../../sass/sass/pages.scss */
+.tabs {
+ /* See also the tabs.css file. */
+}
+
+/* line 316, ../../../sass/sass/pages.scss */
+.region-help {
+ /* Help text on a page */
+}
+
+/* line 319, ../../../sass/sass/pages.scss */
+.more-help-link {
+ /* Link to more help */
+}
+
+/* line 322, ../../../sass/sass/pages.scss */
+.region-content {
+ /* Wrapper for the actual page content */
+}
+
+/* line 325, ../../../sass/sass/pages.scss */
+ul.inline {
+ /* List of links generated by theme_links() */
+ display: inline;
+ padding: 0;
+}
+/* line 329, ../../../sass/sass/pages.scss */
+ul.inline li {
+ display: inline;
+ list-style-type: none;
+ padding: 0 1em 0 0;
+ /* LTR */
+}
+
+/* line 335, ../../../sass/sass/pages.scss */
+span.field-label {
+ /* The inline field label used by the Fences module */
+ padding: 0 1em 0 0;
+ /* LTR */
+}
+
+/* line 339, ../../../sass/sass/pages.scss */
+.item-list .pager {
+ /* A list of page numbers when more than 1 page of content is available */
+ padding: 0;
+}
+/* line 342, ../../../sass/sass/pages.scss */
+.item-list .pager li {
+ /* Each page number in the pager list */
+ padding: 0 0.5em;
+}
+
+/* line 347, ../../../sass/sass/pages.scss */
+.feed-icon {
+ /* The link to the RSS or Atom feed for the current list of content */
+}
+
+/* line 350, ../../../sass/sass/pages.scss */
+.more-link {
+ /* Aggregator, blog, and forum more link */
+}
+
+/*
+ * First sidebar (on left in LTR languages, on right in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-first
+ * (see the layout.css file.)
+ */
+/*
+ * Second sidebar (on right in LTR languages, on left in RTL)
+ *
+ * Remember to NOT add padding or margin to your .region-sidebar-second
+ * (see the layout.css file.)
+ */
+/*
+ * Footer
+ */
+/*
+ * Page bottom
+ */
+/* line 384, ../../../sass/sass/pages.scss */
+.region-bottom {
+ /* Wrapper for any blocks placed in the page bottom region */
+}
+
+/* line 389, ../../../sass/sass/pages.scss */
+.left-picture #sidebar-first {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ background: url(../../images/back_main.jpg) no-repeat center top;
+ background-size: auto 100%;
+ min-height: 600px;
+}
+/* line 397, ../../../sass/sass/pages.scss */
+.left-picture #sidebar-first #header {
+ position: absolute;
+ bottom: 30px;
+ text-align: center;
+ width: auto;
+ margin-left: 40px;
+}
+/* line 406, ../../../sass/sass/pages.scss */
+.left-picture #content .region-wrap {
+ margin-top: 50px;
+ margin-left: 0px;
+ margin-right: 0;
+}
+
+/* line 417, ../../../sass/sass/pages.scss */
+.page-not-found .message {
+ position: fixed;
+ top: 50%;
+ font-size: 1.28571em;
+ line-height: 2.22222em;
+ line-height: 20px;
+ margin-top: -10px;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/print.css b/97suifangqa/staticfiles/stylesheets/sass/print.css new file mode 100644 index 0000000..f114785 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/print.css @@ -0,0 +1,80 @@ +/**
+ * @file
+ * Print styling
+ *
+ * We provide some sane print styling for Drupal using Zen's layout method.
+ */
+@media print {
+ /* line 14, ../../../sass/sass/print.scss */
+ a:link,
+ a:visited {
+ /* underline all links */
+ text-decoration: underline !important;
+ }
+ /* line 17, ../../../sass/sass/print.scss */
+ #site-name a:link, #site-name
+ a:visited {
+ /* Don't underline header */
+ text-decoration: none !important;
+ }
+
+ /* line 23, ../../../sass/sass/print.scss */
+ #content a[href]:after {
+ /* Add visible URL after links. */
+ content: " (" attr(href) ")";
+ font-weight: normal;
+ font-size: 14px;
+ }
+ /* line 30, ../../../sass/sass/print.scss */
+ #content a[href^="javascript:"]:after,
+ #content a[href^="#"]:after {
+ /* Only display useful links. */
+ content: "";
+ }
+ /* line 34, ../../../sass/sass/print.scss */
+ #content abbr[title]:after {
+ /* Add visible title after abbreviations. */
+ content: " (" attr(title) ")";
+ }
+
+ /* line 39, ../../../sass/sass/print.scss */
+ #content {
+ /* Un-float the content */
+ float: none !important;
+ width: 100% !important;
+ margin: 0 !important;
+ padding: 0 !important;
+ }
+
+ /* line 49, ../../../sass/sass/print.scss */
+ body,
+ #page,
+ #main,
+ #content {
+ /* Turn off any background colors or images */
+ color: #000;
+ background-color: transparent !important;
+ background-image: none !important;
+ }
+
+ /* line 68, ../../../sass/sass/print.scss */
+ #skip-link,
+ #toolbar,
+ #navigation,
+ .region-sidebar-first,
+ .region-sidebar-second,
+ #footer,
+ .breadcrumb,
+ .tabs,
+ .action-links,
+ .links,
+ .book-navigation,
+ .forum-topic-navigation,
+ .pager,
+ .feed-icons {
+ /* Hide sidebars and nav elements */
+ visibility: hidden;
+ display: none;
+ }
+}
+/* End @media print */
diff --git a/97suifangqa/staticfiles/stylesheets/sass/registration.css b/97suifangqa/staticfiles/stylesheets/sass/registration.css new file mode 100644 index 0000000..8ff04ee --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/registration.css @@ -0,0 +1,115 @@ +@charset "UTF-8";
+/**
+ * @file
+ * Registration specific styles
+ * @author 赵迤晨 (Zhao Yichen) <interarticle@gmail.com>
+ */
+/* line 11, ../../../sass/sass/registration.scss */
+body.registration input[type="text"],
+body.registration input[type="password"] {
+ background-color: #f8f8f5;
+ border: 1px solid #babab9;
+ -webkit-border-radius: 2px;
+ -moz-border-radius: 2px;
+ -ms-border-radius: 2px;
+ -o-border-radius: 2px;
+ border-radius: 2px;
+ width: 250px;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"].placeholder,
+body.registration input[type="password"].placeholder {
+ color: #898989;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:focus.placeholder,
+body.registration input[type="password"]:focus.placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"].input-placeholder,
+body.registration input[type="password"].input-placeholder {
+ color: #898989;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:focus.input-placeholder,
+body.registration input[type="password"]:focus.input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:-moz-placeholder,
+body.registration input[type="password"]:-moz-placeholder {
+ color: #898989;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:focus:-moz-placeholder,
+body.registration input[type="password"]:focus:-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]::-webkit-input-placeholder,
+body.registration input[type="password"]::-webkit-input-placeholder {
+ color: #898989;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:focus::-webkit-input-placeholder,
+body.registration input[type="password"]:focus::-webkit-input-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]::-moz-placeholder,
+body.registration input[type="password"]::-moz-placeholder {
+ color: #898989;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:focus::-moz-placeholder,
+body.registration input[type="password"]:focus::-moz-placeholder {
+ color: transparent;
+}
+/* line 65, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:-ms-input-placeholder,
+body.registration input[type="password"]:-ms-input-placeholder {
+ color: #898989;
+}
+/* line 68, ../../../sass/sass/_custom.scss */
+body.registration input[type="text"]:focus:-ms-input-placeholder,
+body.registration input[type="password"]:focus:-ms-input-placeholder {
+ color: transparent;
+}
+/* line 19, ../../../sass/sass/registration.scss */
+body.registration .reg-form {
+ border: 0px;
+}
+/* line 21, ../../../sass/sass/registration.scss */
+body.registration .reg-form tr td {
+ padding: 3px;
+ padding-top: 5px;
+ padding-bottom: 5px;
+}
+/* line 26, ../../../sass/sass/registration.scss */
+body.registration .reg-form td.error {
+ max-width: 200px;
+ vertical-align: top;
+ padding-left: 10px;
+}
+/* line 32, ../../../sass/sass/registration.scss */
+body.registration .error {
+ color: red;
+}
+/* line 36, ../../../sass/sass/registration.scss */
+body.registration input.submit {
+ width: 100px;
+}
+
+/* line 41, ../../../sass/sass/registration.scss */
+body.login .login-prompt {
+ font-size: 0.9em;
+ text-align: center;
+ background: url(../../images/horizontal-bar-grey.png) repeat-x center center;
+}
+/* line 46, ../../../sass/sass/registration.scss */
+body.login .login-prompt .prompt {
+ background-color: white;
+ padding-left: 5px;
+ padding-right: 5px;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/tabs-rtl.css b/97suifangqa/staticfiles/stylesheets/sass/tabs-rtl.css new file mode 100644 index 0000000..d44cba8 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/tabs-rtl.css @@ -0,0 +1,14 @@ +/**
+ * @file
+ * RTL companion for the tabs.css file.
+ */
+/* line 11, ../../../sass/sass/tabs-rtl.scss */
+ul.primary li,
+ul.secondary li {
+ float: right;
+}
+
+/* line 17, ../../../sass/sass/tabs-rtl.scss */
+ul.primary li {
+ margin: 0.5em 3px 0 0;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/tabs.css b/97suifangqa/staticfiles/stylesheets/sass/tabs.css new file mode 100644 index 0000000..1dd8b0d --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/tabs.css @@ -0,0 +1,142 @@ +/**
+ * @file
+ * Tabs Styling
+ *
+ * Adds styles for the primary and secondary tabs.
+ *
+ * Compare this with default CSS found in the system module's stylesheet (a copy
+ * of which is in drupal7-reference.css.)
+ */
+/*
+ * Basic positioning styles shared by primary and secondary tabs.
+ */
+/* line 24, ../../../sass/sass/tabs.scss */
+ul.primary,
+ul.secondary {
+ overflow: hidden;
+ border-bottom: 1px solid #bbbbbb;
+ list-style: none;
+ margin: 1em 0 1.5em;
+ padding: 0 2px;
+ white-space: nowrap;
+}
+/* line 32, ../../../sass/sass/tabs.scss */
+ul.primary li,
+ul.secondary li {
+ float: left;
+ /* LTR */
+ margin: 0.5em 3px 0;
+}
+/* line 37, ../../../sass/sass/tabs.scss */
+ul.primary a,
+ul.secondary a {
+ border: 1px solid #e9e9e9;
+ border-right: 0;
+ border-bottom: 0;
+ display: block;
+ line-height: 1.5em;
+ text-decoration: none;
+}
+
+/*
+ * Primary tabs
+ */
+/* line 52, ../../../sass/sass/tabs.scss */
+ul.primary li {
+ -moz-border-radius-topleft: 4px;
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ text-shadow: 1px 1px 0 white;
+ border: 1px solid #bbbbbb;
+ border-bottom: 0;
+ margin: 0.5em 0 0 3px;
+ /* LTR */
+}
+/* line 59, ../../../sass/sass/tabs.scss */
+ul.primary li.active {
+ border-bottom: 1px solid white;
+ margin-bottom: -1px;
+ /* Overlap the ul's border. */
+}
+/* line 65, ../../../sass/sass/tabs.scss */
+ul.primary a:link,
+ul.primary a:visited {
+ -moz-border-radius-topleft: 4px;
+ -webkit-border-top-left-radius: 4px;
+ border-top-left-radius: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-right-radius: 4px;
+ -webkit-transition: background-color 0.3s;
+ -moz-transition: background-color 0.3s;
+ -o-transition: background-color 0.3s;
+ transition: background-color 0.3s;
+ color: #333;
+ background-color: #dedede;
+ letter-spacing: 1px;
+ padding: 0 1em;
+ text-align: center;
+}
+/* line 75, ../../../sass/sass/tabs.scss */
+ul.primary a:hover,
+ul.primary a:focus {
+ background-color: #e9e9e9;
+ border-color: #f2f2f2;
+}
+/* line 79, ../../../sass/sass/tabs.scss */
+ul.primary a.active {
+ background-color: transparent;
+ filter: progid:DXImageTransform.Microsoft.gradient(gradientType=0, startColorstr='#FFE9E9E9', endColorstr='#00E9E9E9');
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #e9e9e9), color-stop(100%, rgba(233, 233, 233, 0)));
+ background-image: -webkit-linear-gradient(#e9e9e9, rgba(233, 233, 233, 0));
+ background-image: -moz-linear-gradient(#e9e9e9, rgba(233, 233, 233, 0));
+ background-image: -o-linear-gradient(#e9e9e9, rgba(233, 233, 233, 0));
+ background-image: linear-gradient(#e9e9e9, rgba(233, 233, 233, 0));
+ border-color: #fff;
+}
+
+/*
+ * Secondary tabs
+ */
+/* line 91, ../../../sass/sass/tabs.scss */
+ul.secondary {
+ font-size: .9em;
+ margin-top: -1.5em;
+ /* Collapse bottom margin of ul.primary. */
+ padding-bottom: .5em;
+}
+/* line 97, ../../../sass/sass/tabs.scss */
+ul.secondary a:link,
+ul.secondary a:visited {
+ -webkit-border-radius: 0.75em;
+ -moz-border-radius: 0.75em;
+ -ms-border-radius: 0.75em;
+ -o-border-radius: 0.75em;
+ border-radius: 0.75em;
+ -webkit-transition: background-color 0.3s;
+ -moz-transition: background-color 0.3s;
+ -o-transition: background-color 0.3s;
+ transition: background-color 0.3s;
+ text-shadow: 1px 1px 0 white;
+ background-color: #f2f2f2;
+ color: #666;
+ padding: 0 .5em;
+}
+/* line 106, ../../../sass/sass/tabs.scss */
+ul.secondary a:hover,
+ul.secondary a:focus {
+ background-color: #dedede;
+ border-color: #999;
+ color: #333;
+}
+/* line 112, ../../../sass/sass/tabs.scss */
+ul.secondary a.active,
+ul.secondary a:active {
+ text-shadow: 1px 1px 0 #333333;
+ background-color: #666;
+ border-color: #000;
+ color: #fff;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/views-styles.css b/97suifangqa/staticfiles/stylesheets/sass/views-styles.css new file mode 100644 index 0000000..f3cd019 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/views-styles.css @@ -0,0 +1,55 @@ +/**
+ * @file
+ * Views Styling
+ */
+/*
+ * Views' admin tabs
+ *
+ * The views admin tabs use the same classes as the secondary tabs. We prevent
+ * some of our tab styling from bleeding into (and breaking) the Views admin
+ * pages. If your sub-theme isn't used for admin pages, you can remove this
+ * entire section.
+ */
+/* line 18, ../../../sass/sass/views-styles.scss */
+.views-displays .secondary li {
+ float: none;
+ margin: 0 6px 0;
+}
+/* line 24, ../../../sass/sass/views-styles.scss */
+.views-displays .secondary a:link,
+.views-displays .secondary a:visited {
+ text-shadow: none;
+ padding: 2px 7px 3px;
+}
+/* line 29, ../../../sass/sass/views-styles.scss */
+.views-displays .secondary .open > a {
+ -webkit-border-radius: 7px 7px 0 0;
+ -moz-border-radius: 7px 7px 0 0;
+ -ms-border-radius: 7px 7px 0 0;
+ -o-border-radius: 7px 7px 0 0;
+ border-radius: 7px 7px 0 0;
+}
+/* line 31, ../../../sass/sass/views-styles.scss */
+.views-displays .secondary .open > a:hover {
+ color: #333;
+}
+/* line 36, ../../../sass/sass/views-styles.scss */
+.views-displays .secondary .action-list li {
+ margin: 0;
+}
+/* line 38, ../../../sass/sass/views-styles.scss */
+.views-displays .secondary .action-list li:first-child {
+ -webkit-border-radius: 0 7px 0 0;
+ -moz-border-radius: 0 7px 0 0;
+ -ms-border-radius: 0 7px 0 0;
+ -o-border-radius: 0 7px 0 0;
+ border-radius: 0 7px 0 0;
+}
+/* line 41, ../../../sass/sass/views-styles.scss */
+.views-displays .secondary .action-list li:last-child {
+ -webkit-border-radius: 0 0 7px 7px;
+ -moz-border-radius: 0 0 7px 7px;
+ -ms-border-radius: 0 0 7px 7px;
+ -o-border-radius: 0 0 7px 7px;
+ border-radius: 0 0 7px 7px;
+}
diff --git a/97suifangqa/staticfiles/stylesheets/sass/wireframes.css b/97suifangqa/staticfiles/stylesheets/sass/wireframes.css new file mode 100644 index 0000000..388f2b8 --- /dev/null +++ b/97suifangqa/staticfiles/stylesheets/sass/wireframes.css @@ -0,0 +1,17 @@ +/**
+ * @file
+ * Wireframes Styling
+ *
+ * Add wireframes to the basic layout elements.
+ */
+/* line 19, ../../../sass/sass/wireframes.scss */
+.with-wireframes #header,
+.with-wireframes #main,
+.with-wireframes #content,
+.with-wireframes #navigation,
+.with-wireframes .region-sidebar-first,
+.with-wireframes .region-sidebar-second,
+.with-wireframes #footer,
+.with-wireframes .region-bottom {
+ outline: 1px solid #ccc;
+}
diff --git a/97suifangqa/staticfiles/tinymce/LICENSE.TXT b/97suifangqa/staticfiles/tinymce/LICENSE.TXT new file mode 100644 index 0000000..1837b0a --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/LICENSE.TXT @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/97suifangqa/staticfiles/tinymce/changelog.txt b/97suifangqa/staticfiles/tinymce/changelog.txt new file mode 100644 index 0000000..98bdbaf --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/changelog.txt @@ -0,0 +1,39 @@ +Version 4.0b2 (2013-04-24) + Added new rel_list option to link plugin. Enables you to specify values for a rel drop down. + Added new target_list option to link plugin. Enables you to add to or disable the link targets. + Added new link_list option to link plugin. Enables you to specify a list of links to pick from. + Added new image_list option to image pluigin. Enables you to specify a list of images to pick from. + Added new textcolor plugin. This plugin holds the text color and text background color buttons. + Fixed bug where alignment of images wasn't working properly on Firefox. + Fixed bug where IE 8 would throw error when inserting a table. + Fixed bug where IE 8 wouldn't render the element path properly. + Fixed bug where old IE versions would render a red focus border. + Fixed bug where old IE versions would render a frameborder for iframes. + Fixed bug where WebKit wouldn't properly open the cell properties dialog on edge case selection. + Fixed bug where charmap wouldn't correctly render all characters in grid. + Fixed bug where link dialog wouldn't update the link text properly. + Fixed bug where the focus/blur states on inline editors wasn't handled correctly on IE. + Fixed bug where IE would throw "unknown error" exception sometimes in ForceBlocks logic. + Fixed bug where IE would't properly render disabled buttons in button groups. + Fixed bug where tab key wouldn't properly move to next input field in dialogs. + Fixed bug where resize handles for tables and images would appear at wrong positions on IE 8. + Fixed bug where dialogs would produce stack overflow if title was wider than content. + Fixed bug with table cell/row menu items being enabled even if no cell was selected. + Fixed so the text to display is after the URL field in the link dialog. + Fixed so the width setting applies to the editor panel in modern theme. + Fixed so it's easier to make custom icons for buttons using plain old images. +Version 4.0b1 (2013-04-11) + Added new node.js based build process used uglify, amdlc, jake etc. + Added new package.json to enable easy installation of dependent npm packages used for building. + Added new link, image, charmap, anchor, code, hr plugins since these are now moved out of the theme. + Rewrote all plugins and themes from scratch so they match the new UI framework. + Replaced all events to use the more common <target>.on/off(<event>) methods instead of <target>.<event>.add/remove. + Rewrote the TinyMCE core to use AMD style modules. Gets compiled to an inline library using amdlc. + Rewrote all core logic to pass jshint rules. Each file has specific jshint rules. + Removed all IE6 specific logic since 4.x will no longer support such an old browser. + Reworked the file names and directory structure of the whole project to be more similar to other JS projects. + Replaced tinymce.util.Cookie with tinymce.util.LocalStorage. Fallback to userData for IE 7 native localStorage for the rest. + Replaced the old 3.x UI with a new modern UI framework. + Removed "simple" theme and added new "modern" theme. + Removed advhr, advimage, advlink, iespell, inlinepopups, xhtmlxtras and style plugins. + Updated Sizzle to the latest version. diff --git a/97suifangqa/staticfiles/tinymce/css/custom_tinymce.css b/97suifangqa/staticfiles/tinymce/css/custom_tinymce.css new file mode 100644 index 0000000..8f58f7c --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/css/custom_tinymce.css @@ -0,0 +1,4 @@ +textarea { + min-width : 600px; + min-height: 400px; +} diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/langs/readme.md b/97suifangqa/staticfiles/tinymce/js/tinymce/langs/readme.md new file mode 100644 index 0000000..403563c --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/langs/readme.md @@ -0,0 +1 @@ +This is where language files should be placed.
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/langs/zh_CN.js b/97suifangqa/staticfiles/tinymce/js/tinymce/langs/zh_CN.js new file mode 100644 index 0000000..9972766 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/langs/zh_CN.js @@ -0,0 +1,152 @@ +tinymce.addI18n('zh_CN',{ +"Cut": "\u526a\u5207", +"Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X\/C\/V keyboard shortcuts instead.": "\u4f60\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u5bf9\u526a\u8d34\u677f\u7684\u8bbf\u95ee\uff0c\u8bf7\u4f7f\u7528Ctrl+X\/C\/V\u952e\u8fdb\u884c\u590d\u5236\u7c98\u8d34\u3002", +"Paste": "\u7c98\u8d34", +"Close": "\u5173\u95ed", +"Align right": "\u53f3\u5bf9\u9f50", +"New document": "\u65b0\u6587\u6863", +"Numbered list": "\u7f16\u53f7\u5217\u8868", +"Increase indent": "\u7f29\u8fdb", +"Formats": "\u683c\u5f0f", +"Select all": "\u5168\u9009", +"Undo": "\u64a4\u6d88", +"Strikethrough": "\u5220\u9664\u7ebf", +"Bullet list": "\u9879\u76ee\u7b26\u53f7", +"Superscript": "\u4e0a\u6807", +"Clear formatting": "\u6e05\u9664\u683c\u5f0f", +"Subscript": "\u4e0b\u6807", +"Redo": "\u91cd\u590d", +"Ok": "\u786e\u5b9a", +"Bold": "\u7c97\u4f53", +"Italic": "\u659c\u4f53", +"Align center": "\u5c45\u4e2d", +"Decrease indent": "\u51f8\u51fa", +"Underline": "\u4e0b\u5212\u7ebf", +"Cancel": "\u53d6\u6d88", +"Justify": "\u4e24\u7aef\u5bf9\u9f50", +"Copy": "\u590d\u5236", +"Align left": "\u5de6\u5bf9\u9f50", +"Visual aids": "\u63d0\u793a", +"Lower Greek": "\u5c0f\u5199\u5e0c\u814a\u5b57\u6bcd", +"Square": "\u65b9\u5757", +"Default": "\u9ed8\u8ba4", +"Lower Alpha": "\u5c0f\u5199\u82f1\u6587\u5b57\u6bcd", +"Circle": "\u7a7a\u5fc3\u5706", +"Disc": "\u5b9e\u5fc3\u5706", +"Upper Alpha": "\u5927\u5199\u82f1\u6587\u5b57\u6bcd", +"Upper Roman": "\u5927\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Lower Roman": "\u5c0f\u5199\u7f57\u9a6c\u5b57\u6bcd", +"Name": "\u540d\u79f0", +"Anchor": "\u951a\u70b9", +"You have unsaved changes are you sure you want to navigate away?": "\u4f60\u8fd8\u6709\u6587\u6863\u5c1a\u672a\u4fdd\u5b58\uff0c\u786e\u5b9a\u8981\u79bb\u5f00\uff1f", +"Restore last draft": "\u6062\u590d\u4e0a\u6b21\u7684\u8349\u7a3f", +"Special character": "\u7279\u6b8a\u7b26\u53f7", +"Source code": "\u6e90\u4ee3\u7801", +"Right to left": "\u4ece\u53f3\u5230\u5de6", +"Left to right": "\u4ece\u5de6\u5230\u53f3", +"Emoticons": "\u8868\u60c5", +"Robots": "\u673a\u5668\u4eba", +"Document properties": "\u6587\u6863\u5c5e\u6027", +"Title": "\u6807\u9898", +"Keywords": "\u5173\u952e\u8bcd", +"Encoding": "\u7f16\u7801", +"Description": "\u63cf\u8ff0", +"Author": "\u4f5c\u8005", +"Fullscreen": "\u5168\u5c4f", +"Horizontal line": "\u6c34\u5e73\u5206\u5272\u7ebf", +"Source": "\u56fe\u7247\u5730\u5740", +"Constrain proportions": "\u4fdd\u6301\u7eb5\u6a2a\u6bd4", +"Dimensions": "\u5927\u5c0f", +"Insert\/edit image": "\u63d2\u5165\/\u7f16\u8f91\u56fe\u7247", +"Image description": "\u56fe\u7247\u63cf\u8ff0", +"Insert date\/time": "\u63d2\u5165\u65e5\u671f\/\u65f6\u95f4", +"Url": "\u5730\u5740", +"Text to display": "\u663e\u793a\u6587\u5b57", +"Insert link": "\u63d2\u5165\u94fe\u63a5", +"New window": "\u65b0\u7a97\u53e3", +"None": "\u65e0", +"Target": "\u76ee\u6807", +"Insert\/edit link": "\u63d2\u5165\/\u7f16\u8f91\u94fe\u63a5", +"Insert\/edit video": "\u63d2\u5165\/\u7f16\u8f91\u89c6\u9891", +"General": "\u666e\u901a", +"Poster": "\u5c01\u9762", +"Alternative source": "\u955c\u50cf", +"Paste your embed code below:": "\u5c06\u8981\u5d4c\u5165\u5f0f\u4ee3\u7801\u7c98\u8d34\u5728\u4e0b\u9762", +"Insert video": "\u63d2\u5165\u89c6\u9891", +"Embed": "\u5185\u5d4c", +"Nonbreaking space": "\u6ca1\u6709\u7a7a\u683c", +"Page break": "\u5206\u9875\u7b26", +"Preview": "\u9884\u89c8", +"Print": "\u6253\u5370", +"Save": "\u4fdd\u5b58", +"Could not find the specified string.": "\u627e\u4e0d\u5230\u8be5\u5b57\u7b26\u4e32", +"Replace": "\u66ff\u6362", +"Next": "\u4e0b\u4e00\u4e2a", +"Whole words": "\u5b8c\u5168\u5339\u914d", +"Find and replace": "\u67e5\u627e\u5e76\u66ff\u6362", +"Replace with": "\u66ff\u6362\u6210", +"Find": "\u67e5\u627e", +"Replace all": "\u5168\u90e8\u66ff\u6362", +"Match case": "\u5927\u5c0f\u5199\u533a\u5206", +"Prev": "\u4e0a\u4e00\u4e2a", +"Spellcheck": "\u62fc\u5199\u68c0\u67e5", +"Finish": "\u5b8c\u6210", +"Ignore all": "\u5168\u90e8\u5ffd\u7565", +"Ignore": "\u5ffd\u7565", +"Insert row before": "\u63d2\u5165\u884c\u4e8e\u4e4b\u524d", +"Rows": "\u884c", +"Height": "\u9ad8", +"Paste row after": "\u7c98\u8d34\u884c\u4e8e\u4e4b\u540e", +"Alignment": "\u5bf9\u9f50\u65b9\u5f0f", +"Column group": "\u5217\u7ec4", +"Row": "\u884c", +"Insert column before": "\u63d2\u5165\u5217\u4e8e\u4e4b\u524d", +"Split cell": "\u62c6\u5206\u5355\u5143\u683c", +"Cell padding": "\u5355\u5143\u683c\u5185\u8fb9\u8ddd", +"Cell spacing": "\u5355\u5143\u683c\u5916\u95f4\u8ddd", +"Row type": "\u884c\u7c7b\u578b", +"Insert table": "\u63d2\u5165\u8868\u683c", +"Body": "\u8868\u4f53", +"Caption": "\u6807\u9898", +"Footer": "\u8868\u5c3e", +"Delete row": "\u5220\u9664\u884c", +"Paste row before": "\u7c98\u8d34\u884c\u4e8e\u4e4b\u524d", +"Scope": "\u8303\u56f4", +"Delete table": "\u5220\u9664\u8868\u683c", +"Header cell": "\u8868\u5934\u5355\u5143\u683c", +"Column": "\u5217", +"Cell": "\u5355\u5143\u683c", +"Header": "\u8868\u5934", +"Border": "\u8fb9\u6846", +"Cell type": "\u5355\u5143\u683c\u7c7b\u578b", +"Copy row": "\u590d\u5236\u884c", +"Row properties": "\u884c\u5c5e\u6027", +"Table properties": "\u8868\u683c\u5c5e\u6027", +"Row group": "\u884c\u7ec4", +"Right": "\u53f3\u5bf9\u9f50", +"Insert column after": "\u63d2\u5165\u5217\u4e8e\u4e4b\u540e", +"Cols": "\u5217", +"Insert row after": "\u63d2\u5165\u884c\u4e8e\u4e4b\u540e", +"Width": "\u5bbd", +"Cell properties": "\u5355\u5143\u683c\u5c5e\u6027", +"Left": "\u5de6\u5bf9\u9f50", +"Cut row": "\u526a\u5207\u884c", +"Delete column": "\u5220\u9664\u5217", +"Center": "\u5c45\u4e2d", +"Merge cells": "\u5408\u5e76\u5355\u5143\u683c", +"Insert template": "\u63d2\u5165\u6a21\u677f", +"Templates": "\u6a21\u677f", +"Background color": "\u80cc\u666f\u8272", +"Text color": "\u6587\u5b57\u989c\u8272", +"Show blocks": "\u663e\u793a\u65b9\u5757", +"Show invisible characters": "\u663e\u793a\u53ef\u89c1\u5b57\u7b26", +"Words: {0}": "\u5b57\u6570\uff1a{0}", +"Insert": "\u63d2\u5165", +"File": "\u6587\u4ef6", +"Edit": "\u7f16\u8f91", +"Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help": "\u5728\u7f16\u8f91\u533a\u6309ALT-F9\u6253\u5f00\u83dc\u5355\uff0c\u6309ALT-F10\u6253\u5f00\u5de5\u5177\u680f\uff0c\u6309ALT-0\u67e5\u770b\u5e2e\u52a9", +"Tools": "\u5de5\u5177", +"View": "\u89c6\u56fe", +"Table": "\u8868\u683c", +"Format": "\u683c\u5f0f" +});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/license.txt b/97suifangqa/staticfiles/tinymce/js/tinymce/license.txt new file mode 100644 index 0000000..1837b0a --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/license.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + <one line to give the library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/advlist/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/advlist/plugin.min.js new file mode 100644 index 0000000..fb605c0 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/advlist/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("advlist",function(e){function t(e,t){var n=[];return tinymce.each(t.split(/[ ,]/),function(e){n.push({text:e.replace(/\-/g," ").replace(/\b\w/g,function(e){return e.toUpperCase()}),data:"default"==e?"":e})}),n}function n(t,n){var r,i=e.dom,o=e.selection;r=i.getParent(o.getNode(),"ol,ul"),r&&r.nodeName==t&&n!==!1||e.execCommand("UL"==t?"InsertUnorderedList":"InsertOrderedList"),n=n===!1?a[t]:n,a[t]=n,r=i.getParent(o.getNode(),"ol,ul"),r&&(i.setStyle(r,"listStyleType",n),r.removeAttribute("data-mce-style")),e.focus()}function r(t){var n=e.dom.getStyle(e.dom.getParent(e.selection.getNode(),"ol,ul"),"listStyleType")||"";t.control.items().each(function(e){e.active(e.settings.data===n)})}var i,o,a={};i=t("OL",e.getParam("advlist_number_styles","default,lower-alpha,lower-greek,lower-roman,upper-alpha,upper-roman")),o=t("UL",e.getParam("advlist_bullet_styles","default,circle,disc,square")),e.addButton("numlist",{type:"splitbutton",tooltip:"Numbered list",menu:i,onshow:r,onselect:function(e){n("OL",e.control.settings.data)},onclick:function(){n("OL",!1)}}),e.addButton("bullist",{type:"splitbutton",tooltip:"Bullet list",menu:o,onshow:r,onselect:function(e){n("UL",e.control.settings.data)},onclick:function(){n("UL",!1)}})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/anchor/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/anchor/plugin.min.js new file mode 100644 index 0000000..30c2f9f --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/anchor/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("anchor",function(e){function t(){e.windowManager.open({title:"Anchor",body:{type:"textbox",name:"name",size:40,label:"Name",value:e.selection.getNode().id},onsubmit:function(t){e.execCommand("mceInsertContent",!1,e.dom.createHTML("a",{id:t.data.name}))}})}e.addButton("anchor",{icon:"anchor",tooltip:"Anchor",onclick:t,stateSelector:"a:not([href])"}),e.addMenuItem("anchor",{icon:"anchor",text:"Anchor",context:"insert",onclick:t})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autolink/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autolink/plugin.min.js new file mode 100644 index 0000000..2a312a9 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autolink/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("autolink",function(e){function t(e){i(e,-1,"(",!0)}function n(e){i(e,0,"",!0)}function r(e){i(e,-1,"",!1)}function i(e,t,n){var r,i,o,a,s,l,c,u,d;if(r=e.selection.getRng(!0).cloneRange(),5>r.startOffset){if(u=r.endContainer.previousSibling,!u){if(!r.endContainer.firstChild||!r.endContainer.firstChild.nextSibling)return;u=r.endContainer.firstChild.nextSibling}if(d=u.length,r.setStart(u,d),r.setEnd(u,d),5>r.endOffset)return;i=r.endOffset,a=u}else{if(a=r.endContainer,3!=a.nodeType&&a.firstChild){for(;3!=a.nodeType&&a.firstChild;)a=a.firstChild;3==a.nodeType&&(r.setStart(a,0),r.setEnd(a,a.nodeValue.length))}i=1==r.endOffset?2:r.endOffset-1-t}o=i;do r.setStart(a,i>=2?i-2:0),r.setEnd(a,i>=1?i-1:0),i-=1;while(" "!=""+r&&""!=""+r&&160!=(""+r).charCodeAt(0)&&i-2>=0&&""+r!=n);if(""+r==n||160==(""+r).charCodeAt(0)?(r.setStart(a,i),r.setEnd(a,o),i+=1):0===r.startOffset?(r.setStart(a,0),r.setEnd(a,o)):(r.setStart(a,i),r.setEnd(a,o)),l=""+r,"."==l.charAt(l.length-1)&&r.setEnd(a,o-1),l=""+r,c=l.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i),c&&("www."==c[1]?c[1]="http://www.":/@$/.test(c[1])&&!/^mailto:/.test(c[1])&&(c[1]="mailto:"+c[1]),s=e.selection.getBookmark(),e.selection.setRng(r),e.execCommand("createlink",!1,c[1]+c[2]),e.selection.moveToBookmark(s),e.nodeChanged(),tinymce.Env.webkit)){e.selection.collapse(!1);var f=Math.min(a.length,o+1);r.setStart(a,f),r.setEnd(a,f),e.selection.setRng(r)}}e.on("keydown",function(t){return 13==t.keyCode?r(e):void 0}),tinymce.Env.ie||(e.on("keypress",function(n){return 41==n.which?t(e):void 0}),e.on("keyup",function(t){return 32==t.keyCode?n(e):void 0}))});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autoresize/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autoresize/plugin.min.js new file mode 100644 index 0000000..9a79ec5 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autoresize/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("autoresize",function(e){function t(i){var o,a,s=e.getDoc(),l=s.body,c=s.documentElement,u=tinymce.DOM,d=n.autoresize_min_height;"setcontent"==i.type&&i.initial||e.plugins.fullscreen&&e.plugins.fullscreen.isFullscreen()||(a=tinymce.Env.ie?l.scrollHeight:tinymce.Env.webkit&&0===l.clientHeight?0:l.offsetHeight,a>n.autoresize_min_height&&(d=a),n.autoresize_max_height&&a>n.autoresize_max_height?(d=n.autoresize_max_height,l.style.overflowY="auto",c.style.overflowY="auto"):(l.style.overflowY="hidden",c.style.overflowY="hidden",l.scrollTop=0),d!==r&&(o=d-r,u.setStyle(u.get(e.id+"_ifr"),"height",d+"px"),r=d,tinymce.isWebKit&&0>o&&t(i)))}var n=e.settings,r=0;n.autoresize_min_height=parseInt(e.getParam("autoresize_min_height",e.getElement().offsetHeight),10),n.autoresize_max_height=parseInt(e.getParam("autoresize_max_height",0),10),e.on("init",function(){e.dom.setStyle(e.getBody(),"paddingBottom",e.getParam("autoresize_bottom_margin",50)+"px")}),e.on("change setcontent paste keyup",t),e.getParam("autoresize_on_init",!0)&&e.on("load",t),e.addCommand("mceAutoResize",t)});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autosave/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autosave/plugin.min.js new file mode 100644 index 0000000..f64a8fe --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/autosave/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("autosave",function(e){function t(e,t){var n={s:1e3,m:6e4};return e=/^(\d+)([ms]?)$/.exec(""+(e||t)),(e[2]?n[e[2]]:1)*parseInt(e,10)}function n(){var e=parseInt(f.getItem(p+"autosave.time"),10)||0;return(new Date).getTime()-e>d.autosave_retention?(r(),!1):!0}function r(){f.removeItem(p+"autosave.draft"),f.removeItem(p+"autosave.time")}function i(){u&&e.isDirty()&&(f.setItem(p+"autosave.draft",e.getContent({format:"raw",no_events:!0})),f.setItem(p+"autosave.time",(new Date).getTime()),e.fire("StoreDraft"))}function o(){n()&&(e.setContent(f.getItem(p+"autosave.draft"),{format:"raw"}),r(),e.fire("RestoreDraft"))}function a(){u||(setInterval(function(){e.removed||i()},d.autosave_interval),u=!0)}function s(){var t=this;t.disabled(!n()),e.on("StoreDraft RestoreDraft",function(){t.disabled(!n())}),a()}function l(){e.undoManager.beforeChange(),o(),e.undoManager.add()}function c(){var e;return tinymce.each(tinymce.editors,function(t){t.plugins.autosave&&t.plugins.autosave.storeDraft(),!e&&t.isDirty()&&t.getParam("autosave_ask_before_unload",!0)&&(e=t.translate("You have unsaved changes are you sure you want to navigate away?"))}),e}var u,d=e.settings,f=tinymce.util.LocalStorage,p=e.id;d.autosave_interval=t(d.autosave_interval,"30s"),d.autosave_retention=t(d.autosave_retention,"20m"),e.addButton("restoredraft",{title:"Restore last draft",onclick:l,onPostRender:s}),e.addMenuItem("restoredraft",{text:"Restore last draft",onclick:l,onPostRender:s,context:"file"}),this.storeDraft=i,window.onbeforeunload=c});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/bbcode/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/bbcode/plugin.min.js new file mode 100644 index 0000000..578e898 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/bbcode/plugin.min.js @@ -0,0 +1 @@ +(function(){tinymce.create("tinymce.plugins.BBCodePlugin",{init:function(e){var t=this,n=e.getParam("bbcode_dialect","punbb").toLowerCase();e.on("beforeSetContent",function(e){e.content=t["_"+n+"_bbcode2html"](e.content)}),e.on("postProcess",function(e){e.set&&(e.content=t["_"+n+"_bbcode2html"](e.content)),e.get&&(e.content=t["_"+n+"_html2bbcode"](e.content))})},getInfo:function(){return{longname:"BBCode Plugin",author:"Moxiecode Systems AB",authorurl:"http://www.tinymce.com",infourl:"http://www.tinymce.com/wiki.php/Plugin:bbcode"}},_punbb_html2bbcode:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/<a.*?href=\"(.*?)\".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]"),t(/<font.*?color=\"(.*?)\".*?class=\"codeStyle\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?color=\"(.*?)\".*?class=\"quoteStyle\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<font.*?class=\"codeStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[code][color=$1]$2[/color][/code]"),t(/<font.*?class=\"quoteStyle\".*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[quote][color=$1]$2[/color][/quote]"),t(/<span style=\"color: ?(.*?);\">(.*?)<\/span>/gi,"[color=$1]$2[/color]"),t(/<font.*?color=\"(.*?)\".*?>(.*?)<\/font>/gi,"[color=$1]$2[/color]"),t(/<span style=\"font-size:(.*?);\">(.*?)<\/span>/gi,"[size=$1]$2[/size]"),t(/<font>(.*?)<\/font>/gi,"$1"),t(/<img.*?src=\"(.*?)\".*?\/>/gi,"[img]$1[/img]"),t(/<span class=\"codeStyle\">(.*?)<\/span>/gi,"[code]$1[/code]"),t(/<span class=\"quoteStyle\">(.*?)<\/span>/gi,"[quote]$1[/quote]"),t(/<strong class=\"codeStyle\">(.*?)<\/strong>/gi,"[code][b]$1[/b][/code]"),t(/<strong class=\"quoteStyle\">(.*?)<\/strong>/gi,"[quote][b]$1[/b][/quote]"),t(/<em class=\"codeStyle\">(.*?)<\/em>/gi,"[code][i]$1[/i][/code]"),t(/<em class=\"quoteStyle\">(.*?)<\/em>/gi,"[quote][i]$1[/i][/quote]"),t(/<u class=\"codeStyle\">(.*?)<\/u>/gi,"[code][u]$1[/u][/code]"),t(/<u class=\"quoteStyle\">(.*?)<\/u>/gi,"[quote][u]$1[/u][/quote]"),t(/<\/(strong|b)>/gi,"[/b]"),t(/<(strong|b)>/gi,"[b]"),t(/<\/(em|i)>/gi,"[/i]"),t(/<(em|i)>/gi,"[i]"),t(/<\/u>/gi,"[/u]"),t(/<span style=\"text-decoration: ?underline;\">(.*?)<\/span>/gi,"[u]$1[/u]"),t(/<u>/gi,"[u]"),t(/<blockquote[^>]*>/gi,"[quote]"),t(/<\/blockquote>/gi,"[/quote]"),t(/<br \/>/gi,"\n"),t(/<br\/>/gi,"\n"),t(/<br>/gi,"\n"),t(/<p>/gi,""),t(/<\/p>/gi,"\n"),t(/ |\u00a0/gi," "),t(/"/gi,'"'),t(/</gi,"<"),t(/>/gi,">"),t(/&/gi,"&"),e},_punbb_bbcode2html:function(e){function t(t,n){e=e.replace(t,n)}return e=tinymce.trim(e),t(/\n/gi,"<br />"),t(/\[b\]/gi,"<strong>"),t(/\[\/b\]/gi,"</strong>"),t(/\[i\]/gi,"<em>"),t(/\[\/i\]/gi,"</em>"),t(/\[u\]/gi,"<u>"),t(/\[\/u\]/gi,"</u>"),t(/\[url=([^\]]+)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>'),t(/\[url\](.*?)\[\/url\]/gi,'<a href="$1">$1</a>'),t(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />'),t(/\[color=(.*?)\](.*?)\[\/color\]/gi,'<font color="$1">$2</font>'),t(/\[code\](.*?)\[\/code\]/gi,'<span class="codeStyle">$1</span> '),t(/\[quote.*?\](.*?)\[\/quote\]/gi,'<span class="quoteStyle">$1</span> '),e}}),tinymce.PluginManager.add("bbcode",tinymce.plugins.BBCodePlugin)})();
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/charmap/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/charmap/plugin.min.js new file mode 100644 index 0000000..c895bdb --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/charmap/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("charmap",function(e){function t(){function t(e){for(;e;){if("TD"==e.nodeName)return e;e=e.parentNode}}var r,i,o,a;r='<table role="presentation" cellspacing="0" class="mce-charmap"><tbody>';var s=25;for(o=0;10>o;o++){for(r+="<tr>",i=0;s>i;i++){var l=n[o*s+i],c="g"+(o*s+i);r+='<td title="'+l[1]+'"><div id="'+c+'" tabIndex="-1">'+(l?String.fromCharCode(parseInt(l[0],10)):" ")+"</div></td>"}r+="</tr>"}r+="</tbody></table>";var u={type:"container",html:r,onclick:function(t){var n=t.target;"DIV"==n.nodeName&&e.execCommand("mceInsertContent",!1,n.firstChild.nodeValue)},onmouseover:function(e){var n=t(e.target);n&&a.find("#preview").text(n.firstChild.firstChild.data)}};a=e.windowManager.open({title:"Special characters",spacing:10,padding:10,items:[u,{type:"label",name:"preview",text:" ",style:"font-size: 40px; text-align: center",border:1,minWidth:100,minHeight:80}],buttons:[{text:"Close",onclick:function(){a.close()}}]})}var n=[["160","no-break space"],["38","ampersand"],["34","quotation mark"],["162","cent sign"],["8364","euro sign"],["163","pound sign"],["165","yen sign"],["169","copyright sign"],["174","registered sign"],["8482","trade mark sign"],["8240","per mille sign"],["181","micro sign"],["183","middle dot"],["8226","bullet"],["8230","three dot leader"],["8242","minutes / feet"],["8243","seconds / inches"],["167","section sign"],["182","paragraph sign"],["223","sharp s / ess-zed"],["8249","single left-pointing angle quotation mark"],["8250","single right-pointing angle quotation mark"],["171","left pointing guillemet"],["187","right pointing guillemet"],["8216","left single quotation mark"],["8217","right single quotation mark"],["8220","left double quotation mark"],["8221","right double quotation mark"],["8218","single low-9 quotation mark"],["8222","double low-9 quotation mark"],["60","less-than sign"],["62","greater-than sign"],["8804","less-than or equal to"],["8805","greater-than or equal to"],["8211","en dash"],["8212","em dash"],["175","macron"],["8254","overline"],["164","currency sign"],["166","broken bar"],["168","diaeresis"],["161","inverted exclamation mark"],["191","turned question mark"],["710","circumflex accent"],["732","small tilde"],["176","degree sign"],["8722","minus sign"],["177","plus-minus sign"],["247","division sign"],["8260","fraction slash"],["215","multiplication sign"],["185","superscript one"],["178","superscript two"],["179","superscript three"],["188","fraction one quarter"],["189","fraction one half"],["190","fraction three quarters"],["402","function / florin"],["8747","integral"],["8721","n-ary sumation"],["8734","infinity"],["8730","square root"],["8764","similar to"],["8773","approximately equal to"],["8776","almost equal to"],["8800","not equal to"],["8801","identical to"],["8712","element of"],["8713","not an element of"],["8715","contains as member"],["8719","n-ary product"],["8743","logical and"],["8744","logical or"],["172","not sign"],["8745","intersection"],["8746","union"],["8706","partial differential"],["8704","for all"],["8707","there exists"],["8709","diameter"],["8711","backward difference"],["8727","asterisk operator"],["8733","proportional to"],["8736","angle"],["180","acute accent"],["184","cedilla"],["170","feminine ordinal indicator"],["186","masculine ordinal indicator"],["8224","dagger"],["8225","double dagger"],["192","A - grave"],["193","A - acute"],["194","A - circumflex"],["195","A - tilde"],["196","A - diaeresis"],["197","A - ring above"],["198","ligature AE"],["199","C - cedilla"],["200","E - grave"],["201","E - acute"],["202","E - circumflex"],["203","E - diaeresis"],["204","I - grave"],["205","I - acute"],["206","I - circumflex"],["207","I - diaeresis"],["208","ETH"],["209","N - tilde"],["210","O - grave"],["211","O - acute"],["212","O - circumflex"],["213","O - tilde"],["214","O - diaeresis"],["216","O - slash"],["338","ligature OE"],["352","S - caron"],["217","U - grave"],["218","U - acute"],["219","U - circumflex"],["220","U - diaeresis"],["221","Y - acute"],["376","Y - diaeresis"],["222","THORN"],["224","a - grave"],["225","a - acute"],["226","a - circumflex"],["227","a - tilde"],["228","a - diaeresis"],["229","a - ring above"],["230","ligature ae"],["231","c - cedilla"],["232","e - grave"],["233","e - acute"],["234","e - circumflex"],["235","e - diaeresis"],["236","i - grave"],["237","i - acute"],["238","i - circumflex"],["239","i - diaeresis"],["240","eth"],["241","n - tilde"],["242","o - grave"],["243","o - acute"],["244","o - circumflex"],["245","o - tilde"],["246","o - diaeresis"],["248","o slash"],["339","ligature oe"],["353","s - caron"],["249","u - grave"],["250","u - acute"],["251","u - circumflex"],["252","u - diaeresis"],["253","y - acute"],["254","thorn"],["255","y - diaeresis"],["913","Alpha"],["914","Beta"],["915","Gamma"],["916","Delta"],["917","Epsilon"],["918","Zeta"],["919","Eta"],["920","Theta"],["921","Iota"],["922","Kappa"],["923","Lambda"],["924","Mu"],["925","Nu"],["926","Xi"],["927","Omicron"],["928","Pi"],["929","Rho"],["931","Sigma"],["932","Tau"],["933","Upsilon"],["934","Phi"],["935","Chi"],["936","Psi"],["937","Omega"],["945","alpha"],["946","beta"],["947","gamma"],["948","delta"],["949","epsilon"],["950","zeta"],["951","eta"],["952","theta"],["953","iota"],["954","kappa"],["955","lambda"],["956","mu"],["957","nu"],["958","xi"],["959","omicron"],["960","pi"],["961","rho"],["962","final sigma"],["963","sigma"],["964","tau"],["965","upsilon"],["966","phi"],["967","chi"],["968","psi"],["969","omega"],["8501","alef symbol"],["982","pi symbol"],["8476","real part symbol"],["978","upsilon - hook symbol"],["8472","Weierstrass p"],["8465","imaginary part"],["8592","leftwards arrow"],["8593","upwards arrow"],["8594","rightwards arrow"],["8595","downwards arrow"],["8596","left right arrow"],["8629","carriage return"],["8656","leftwards double arrow"],["8657","upwards double arrow"],["8658","rightwards double arrow"],["8659","downwards double arrow"],["8660","left right double arrow"],["8756","therefore"],["8834","subset of"],["8835","superset of"],["8836","not a subset of"],["8838","subset of or equal to"],["8839","superset of or equal to"],["8853","circled plus"],["8855","circled times"],["8869","perpendicular"],["8901","dot operator"],["8968","left ceiling"],["8969","right ceiling"],["8970","left floor"],["8971","right floor"],["9001","left-pointing angle bracket"],["9002","right-pointing angle bracket"],["9674","lozenge"],["9824","black spade suit"],["9827","black club suit"],["9829","black heart suit"],["9830","black diamond suit"],["8194","en space"],["8195","em space"],["8201","thin space"],["8204","zero width non-joiner"],["8205","zero width joiner"],["8206","left-to-right mark"],["8207","right-to-left mark"],["173","soft hyphen"]];e.addButton("charmap",{icon:"charmap",tooltip:"Insert special character",onclick:t}),e.addMenuItem("charmap",{icon:"charmap",text:"Special character",onclick:t,context:"insert"})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/code/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/code/plugin.min.js new file mode 100644 index 0000000..ff3fddf --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/code/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("code",function(e){function t(){e.windowManager.open({title:"Source code",body:{type:"textbox",name:"code",multiline:!0,minWidth:600,minHeight:500,value:e.getContent(),spellcheck:!1},onSubmit:function(t){e.setContent(t.data.code)}})}e.addButton("code",{icon:"code",tooltip:"Source code",onclick:t}),e.addMenuItem("code",{icon:"code",text:"Source code",context:"tools",onclick:t})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/editable_selects.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/editable_selects.js new file mode 100644 index 0000000..8d30787 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/editable_selects.js @@ -0,0 +1,70 @@ +/** + * editable_selects.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +var TinyMCE_EditableSelects = { + editSelectElm : null, + + init : function() { + var nl = document.getElementsByTagName("select"), i, d = document, o; + + for (i=0; i<nl.length; i++) { + if (nl[i].className.indexOf('mceEditableSelect') != -1) { + o = new Option(tinyMCEPopup.editor.translate('value'), '__mce_add_custom__'); + + o.className = 'mceAddSelectValue'; + + nl[i].options[nl[i].options.length] = o; + nl[i].onchange = TinyMCE_EditableSelects.onChangeEditableSelect; + } + } + }, + + onChangeEditableSelect : function(e) { + var d = document, ne, se = window.event ? window.event.srcElement : e.target; + + if (se.options[se.selectedIndex].value == '__mce_add_custom__') { + ne = d.createElement("input"); + ne.id = se.id + "_custom"; + ne.name = se.name + "_custom"; + ne.type = "text"; + + ne.style.width = se.offsetWidth + 'px'; + se.parentNode.insertBefore(ne, se); + se.style.display = 'none'; + ne.focus(); + ne.onblur = TinyMCE_EditableSelects.onBlurEditableSelectInput; + ne.onkeydown = TinyMCE_EditableSelects.onKeyDown; + TinyMCE_EditableSelects.editSelectElm = se; + } + }, + + onBlurEditableSelectInput : function() { + var se = TinyMCE_EditableSelects.editSelectElm; + + if (se) { + if (se.previousSibling.value != '') { + addSelectValue(document.forms[0], se.id, se.previousSibling.value, se.previousSibling.value); + selectByValue(document.forms[0], se.id, se.previousSibling.value); + } else + selectByValue(document.forms[0], se.id, ''); + + se.style.display = 'inline'; + se.parentNode.removeChild(se.previousSibling); + TinyMCE_EditableSelects.editSelectElm = null; + } + }, + + onKeyDown : function(e) { + e = e || window.event; + + if (e.keyCode == 13) + TinyMCE_EditableSelects.onBlurEditableSelectInput(); + } +}; diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/form_utils.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/form_utils.js new file mode 100644 index 0000000..69d338f --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/form_utils.js @@ -0,0 +1,210 @@ +/** + * form_utils.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +var themeBaseURL = tinyMCEPopup.editor.baseURI.toAbsolute('themes/' + tinyMCEPopup.getParam("theme")); + +function getColorPickerHTML(id, target_form_element) { + var h = "", dom = tinyMCEPopup.dom; + + if (label = dom.select('label[for=' + target_form_element + ']')[0]) { + label.id = label.id || dom.uniqueId(); + } + + h += '<a role="button" aria-labelledby="' + id + '_label" id="' + id + '_link" href="javascript:;" onclick="tinyMCEPopup.pickColor(event,\'' + target_form_element +'\');" onmousedown="return false;" class="pickcolor">'; + h += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"> <span id="' + id + '_label" class="mceVoiceLabel mceIconOnly" style="display:none;">' + tinyMCEPopup.getLang('browse') + '</span></span></a>'; + + return h; +} + +function updateColor(img_id, form_element_id) { + document.getElementById(img_id).style.backgroundColor = document.forms[0].elements[form_element_id].value; +} + +function setBrowserDisabled(id, state) { + var img = document.getElementById(id); + var lnk = document.getElementById(id + "_link"); + + if (lnk) { + if (state) { + lnk.setAttribute("realhref", lnk.getAttribute("href")); + lnk.removeAttribute("href"); + tinyMCEPopup.dom.addClass(img, 'disabled'); + } else { + if (lnk.getAttribute("realhref")) + lnk.setAttribute("href", lnk.getAttribute("realhref")); + + tinyMCEPopup.dom.removeClass(img, 'disabled'); + } + } +} + +function getBrowserHTML(id, target_form_element, type, prefix) { + var option = prefix + "_" + type + "_browser_callback", cb, html; + + cb = tinyMCEPopup.getParam(option, tinyMCEPopup.getParam("file_browser_callback")); + + if (!cb) + return ""; + + html = ""; + html += '<a id="' + id + '_link" href="javascript:openBrowser(\'' + id + '\',\'' + target_form_element + '\', \'' + type + '\',\'' + option + '\');" onmousedown="return false;" class="browse">'; + html += '<span id="' + id + '" title="' + tinyMCEPopup.getLang('browse') + '"> </span></a>'; + + return html; +} + +function openBrowser(img_id, target_form_element, type, option) { + var img = document.getElementById(img_id); + + if (img.className != "mceButtonDisabled") + tinyMCEPopup.openBrowser(target_form_element, type, option); +} + +function selectByValue(form_obj, field_name, value, add_custom, ignore_case) { + if (!form_obj || !form_obj.elements[field_name]) + return; + + if (!value) + value = ""; + + var sel = form_obj.elements[field_name]; + + var found = false; + for (var i=0; i<sel.options.length; i++) { + var option = sel.options[i]; + + if (option.value == value || (ignore_case && option.value.toLowerCase() == value.toLowerCase())) { + option.selected = true; + found = true; + } else + option.selected = false; + } + + if (!found && add_custom && value != '') { + var option = new Option(value, value); + option.selected = true; + sel.options[sel.options.length] = option; + sel.selectedIndex = sel.options.length - 1; + } + + return found; +} + +function getSelectValue(form_obj, field_name) { + var elm = form_obj.elements[field_name]; + + if (elm == null || elm.options == null || elm.selectedIndex === -1) + return ""; + + return elm.options[elm.selectedIndex].value; +} + +function addSelectValue(form_obj, field_name, name, value) { + var s = form_obj.elements[field_name]; + var o = new Option(name, value); + s.options[s.options.length] = o; +} + +function addClassesToList(list_id, specific_option) { + // Setup class droplist + var styleSelectElm = document.getElementById(list_id); + var styles = tinyMCEPopup.getParam('theme_advanced_styles', false); + styles = tinyMCEPopup.getParam(specific_option, styles); + + if (styles) { + var stylesAr = styles.split(';'); + + for (var i=0; i<stylesAr.length; i++) { + if (stylesAr != "") { + var key, value; + + key = stylesAr[i].split('=')[0]; + value = stylesAr[i].split('=')[1]; + + styleSelectElm.options[styleSelectElm.length] = new Option(key, value); + } + } + } else { + tinymce.each(tinyMCEPopup.editor.dom.getClasses(), function(o) { + styleSelectElm.options[styleSelectElm.length] = new Option(o.title || o['class'], o['class']); + }); + } +} + +function isVisible(element_id) { + var elm = document.getElementById(element_id); + + return elm && elm.style.display != "none"; +} + +function convertRGBToHex(col) { + var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi"); + + var rgb = col.replace(re, "$1,$2,$3").split(','); + if (rgb.length == 3) { + r = parseInt(rgb[0]).toString(16); + g = parseInt(rgb[1]).toString(16); + b = parseInt(rgb[2]).toString(16); + + r = r.length == 1 ? '0' + r : r; + g = g.length == 1 ? '0' + g : g; + b = b.length == 1 ? '0' + b : b; + + return "#" + r + g + b; + } + + return col; +} + +function convertHexToRGB(col) { + if (col.indexOf('#') != -1) { + col = col.replace(new RegExp('[^0-9A-F]', 'gi'), ''); + + r = parseInt(col.substring(0, 2), 16); + g = parseInt(col.substring(2, 4), 16); + b = parseInt(col.substring(4, 6), 16); + + return "rgb(" + r + "," + g + "," + b + ")"; + } + + return col; +} + +function trimSize(size) { + return size.replace(/([0-9\.]+)(px|%|in|cm|mm|em|ex|pt|pc)/i, '$1$2'); +} + +function getCSSSize(size) { + size = trimSize(size); + + if (size == "") + return ""; + + // Add px + if (/^[0-9]+$/.test(size)) + size += 'px'; + // Sanity check, IE doesn't like broken values + else if (!(/^[0-9\.]+(px|%|in|cm|mm|em|ex|pt|pc)$/i.test(size))) + return ""; + + return size; +} + +function getStyle(elm, attrib, style) { + var val = tinyMCEPopup.dom.getAttrib(elm, attrib); + + if (val != '') + return '' + val; + + if (typeof(style) == 'undefined') + style = attrib; + + return tinyMCEPopup.dom.getStyle(elm, style); +} diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/mctabs.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/mctabs.js new file mode 100644 index 0000000..acb5657 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/mctabs.js @@ -0,0 +1,162 @@ +/** + * mctabs.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +function MCTabs() { + this.settings = []; + this.onChange = tinyMCEPopup.editor.windowManager.createInstance('tinymce.util.Dispatcher'); +}; + +MCTabs.prototype.init = function(settings) { + this.settings = settings; +}; + +MCTabs.prototype.getParam = function(name, default_value) { + var value = null; + + value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name]; + + // Fix bool values + if (value == "true" || value == "false") + return (value == "true"); + + return value; +}; + +MCTabs.prototype.showTab =function(tab){ + tab.className = 'current'; + tab.setAttribute("aria-selected", true); + tab.setAttribute("aria-expanded", true); + tab.tabIndex = 0; +}; + +MCTabs.prototype.hideTab =function(tab){ + var t=this; + + tab.className = ''; + tab.setAttribute("aria-selected", false); + tab.setAttribute("aria-expanded", false); + tab.tabIndex = -1; +}; + +MCTabs.prototype.showPanel = function(panel) { + panel.className = 'current'; + panel.setAttribute("aria-hidden", false); +}; + +MCTabs.prototype.hidePanel = function(panel) { + panel.className = 'panel'; + panel.setAttribute("aria-hidden", true); +}; + +MCTabs.prototype.getPanelForTab = function(tabElm) { + return tinyMCEPopup.dom.getAttrib(tabElm, "aria-controls"); +}; + +MCTabs.prototype.displayTab = function(tab_id, panel_id, avoid_focus) { + var panelElm, panelContainerElm, tabElm, tabContainerElm, selectionClass, nodes, i, t = this; + + tabElm = document.getElementById(tab_id); + + if (panel_id === undefined) { + panel_id = t.getPanelForTab(tabElm); + } + + panelElm= document.getElementById(panel_id); + panelContainerElm = panelElm ? panelElm.parentNode : null; + tabContainerElm = tabElm ? tabElm.parentNode : null; + selectionClass = t.getParam('selection_class', 'current'); + + if (tabElm && tabContainerElm) { + nodes = tabContainerElm.childNodes; + + // Hide all other tabs + for (i = 0; i < nodes.length; i++) { + if (nodes[i].nodeName == "LI") { + t.hideTab(nodes[i]); + } + } + + // Show selected tab + t.showTab(tabElm); + } + + if (panelElm && panelContainerElm) { + nodes = panelContainerElm.childNodes; + + // Hide all other panels + for (i = 0; i < nodes.length; i++) { + if (nodes[i].nodeName == "DIV") + t.hidePanel(nodes[i]); + } + + if (!avoid_focus) { + tabElm.focus(); + } + + // Show selected panel + t.showPanel(panelElm); + } +}; + +MCTabs.prototype.getAnchor = function() { + var pos, url = document.location.href; + + if ((pos = url.lastIndexOf('#')) != -1) + return url.substring(pos + 1); + + return ""; +}; + + +//Global instance +var mcTabs = new MCTabs(); + +tinyMCEPopup.onInit.add(function() { + var tinymce = tinyMCEPopup.getWin().tinymce, dom = tinyMCEPopup.dom, each = tinymce.each; + + each(dom.select('div.tabs'), function(tabContainerElm) { + var keyNav; + + dom.setAttrib(tabContainerElm, "role", "tablist"); + + var items = tinyMCEPopup.dom.select('li', tabContainerElm); + var action = function(id) { + mcTabs.displayTab(id, mcTabs.getPanelForTab(id)); + mcTabs.onChange.dispatch(id); + }; + + each(items, function(item) { + dom.setAttrib(item, 'role', 'tab'); + dom.bind(item, 'click', function(evt) { + action(item.id); + }); + }); + + dom.bind(dom.getRoot(), 'keydown', function(evt) { + if (evt.keyCode === 9 && evt.ctrlKey && !evt.altKey) { // Tab + keyNav.moveFocus(evt.shiftKey ? -1 : 1); + tinymce.dom.Event.cancel(evt); + } + }); + + each(dom.select('a', tabContainerElm), function(a) { + dom.setAttrib(a, 'tabindex', '-1'); + }); + + keyNav = tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', { + root: tabContainerElm, + items: items, + onAction: action, + actOnFocus: true, + enableLeftRight: true, + enableUpDown: true + }, tinyMCEPopup.dom); + }); +});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/tiny_mce_popup.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/tiny_mce_popup.js new file mode 100644 index 0000000..16996cb --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/tiny_mce_popup.js @@ -0,0 +1,435 @@ +/** + * Popup.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +// Some global instances +var tinymce = null, tinyMCEPopup, tinyMCE; + +/** + * TinyMCE popup/dialog helper class. This gives you easy access to the + * parent editor instance and a bunch of other things. It's higly recommended + * that you load this script into your dialogs. + * + * @static + * @class tinyMCEPopup + */ +tinyMCEPopup = { + /** + * Initializes the popup this will be called automatically. + * + * @method init + */ + init : function() { + var t = this, w, ti, settings; + + // Find window & API + w = t.getWin(); + tinymce = w.tinymce; + tinyMCE = w.tinyMCE; + t.editor = tinymce.EditorManager.activeEditor; + t.params = t.editor.windowManager.params; + t.features = t.editor.windowManager.features; + settings = t.editor.settings; + + // Setup popup CSS path(s) + if (settings.popup_css !== false) { + if (settings.popup_css) { + settings.popup_css = t.documentBaseURI.toAbsolute(settings.popup_css); + } else { + settings.popup_css = t.baseURI.toAbsolute("themes/" + settings.theme + "/skins/" + settings.skin + "/dialog.css"); + } + } + + if (settings.popup_css_add) { + settings.popup_css += ',' + t.documentBaseURI.toAbsolute(settings.popup_css_add); + } + + // Setup local DOM + t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document, {ownEvents: true, proxy: tinyMCEPopup._eventProxy}); + t.dom.bind(window, 'ready', t._onDOMLoaded, t); + + // Enables you to skip loading the default css + if (t.features.popup_css !== false) + t.dom.loadCSS(t.features.popup_css || t.editor.settings.popup_css); + + // Setup on init listeners + t.listeners = []; + + /** + * Fires when the popup is initialized. + * + * @event onInit + * @param {tinymce.Editor} editor Editor instance. + * @example + * // Alerts the selected contents when the dialog is loaded + * tinyMCEPopup.onInit.add(function(ed) { + * alert(ed.selection.getContent()); + * }); + * + * // Executes the init method on page load in some object using the SomeObject scope + * tinyMCEPopup.onInit.add(SomeObject.init, SomeObject); + */ + t.onInit = { + add : function(f, s) { + t.listeners.push({func : f, scope : s}); + } + }; + + t.isWindow = !t.getWindowArg('mce_inline'); + t.id = t.getWindowArg('mce_window_id'); + }, + + /** + * Returns the reference to the parent window that opened the dialog. + * + * @method getWin + * @return {Window} Reference to the parent window that opened the dialog. + */ + getWin : function() { + // Added frameElement check to fix bug: #2817583 + return (!window.frameElement && window.dialogArguments) || opener || parent || top; + }, + + /** + * Returns a window argument/parameter by name. + * + * @method getWindowArg + * @param {String} n Name of the window argument to retrive. + * @param {String} dv Optional default value to return. + * @return {String} Argument value or default value if it wasn't found. + */ + getWindowArg : function(n, dv) { + var v = this.params[n]; + + return tinymce.is(v) ? v : dv; + }, + + /** + * Returns a editor parameter/config option value. + * + * @method getParam + * @param {String} n Name of the editor config option to retrive. + * @param {String} dv Optional default value to return. + * @return {String} Parameter value or default value if it wasn't found. + */ + getParam : function(n, dv) { + return this.editor.getParam(n, dv); + }, + + /** + * Returns a language item by key. + * + * @method getLang + * @param {String} n Language item like mydialog.something. + * @param {String} dv Optional default value to return. + * @return {String} Language value for the item like "my string" or the default value if it wasn't found. + */ + getLang : function(n, dv) { + return this.editor.getLang(n, dv); + }, + + /** + * Executed a command on editor that opened the dialog/popup. + * + * @method execCommand + * @param {String} cmd Command to execute. + * @param {Boolean} ui Optional boolean value if the UI for the command should be presented or not. + * @param {Object} val Optional value to pass with the comman like an URL. + * @param {Object} a Optional arguments object. + */ + execCommand : function(cmd, ui, val, a) { + a = a || {}; + a.skip_focus = 1; + + this.restoreSelection(); + return this.editor.execCommand(cmd, ui, val, a); + }, + + /** + * Resizes the dialog to the inner size of the window. This is needed since various browsers + * have different border sizes on windows. + * + * @method resizeToInnerSize + */ + resizeToInnerSize : function() { + var t = this; + + // Detach it to workaround a Chrome specific bug + // https://sourceforge.net/tracker/?func=detail&atid=635682&aid=2926339&group_id=103281 + setTimeout(function() { + var vp = t.dom.getViewPort(window); + + t.editor.windowManager.resizeBy( + t.getWindowArg('mce_width') - vp.w, + t.getWindowArg('mce_height') - vp.h, + t.id || window + ); + }, 10); + }, + + /** + * Will executed the specified string when the page has been loaded. This function + * was added for compatibility with the 2.x branch. + * + * @method executeOnLoad + * @param {String} s String to evalutate on init. + */ + executeOnLoad : function(s) { + this.onInit.add(function() { + eval(s); + }); + }, + + /** + * Stores the current editor selection for later restoration. This can be useful since some browsers + * looses it's selection if a control element is selected/focused inside the dialogs. + * + * @method storeSelection + */ + storeSelection : function() { + this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1); + }, + + /** + * Restores any stored selection. This can be useful since some browsers + * looses it's selection if a control element is selected/focused inside the dialogs. + * + * @method restoreSelection + */ + restoreSelection : function() { + var t = tinyMCEPopup; + + if (!t.isWindow && tinymce.isIE) + t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark); + }, + + /** + * Loads a specific dialog language pack. If you pass in plugin_url as a arugment + * when you open the window it will load the <plugin url>/langs/<code>_dlg.js lang pack file. + * + * @method requireLangPack + */ + requireLangPack : function() { + var t = this, u = t.getWindowArg('plugin_url') || t.getWindowArg('theme_url'); + + if (u && t.editor.settings.language && t.features.translate_i18n !== false && t.editor.settings.language_load !== false) { + u += '/langs/' + t.editor.settings.language + '_dlg.js'; + + if (!tinymce.ScriptLoader.isDone(u)) { + document.write('<script type="text/javascript" src="' + u + '"></script>'); + tinymce.ScriptLoader.markDone(u); + } + } + }, + + /** + * Executes a color picker on the specified element id. When the user + * then selects a color it will be set as the value of the specified element. + * + * @method pickColor + * @param {DOMEvent} e DOM event object. + * @param {string} element_id Element id to be filled with the color value from the picker. + */ + pickColor : function(e, element_id) { + this.execCommand('mceColorPicker', true, { + color : document.getElementById(element_id).value, + func : function(c) { + document.getElementById(element_id).value = c; + + try { + document.getElementById(element_id).onchange(); + } catch (ex) { + // Try fire event, ignore errors + } + } + }); + }, + + /** + * Opens a filebrowser/imagebrowser this will set the output value from + * the browser as a value on the specified element. + * + * @method openBrowser + * @param {string} element_id Id of the element to set value in. + * @param {string} type Type of browser to open image/file/flash. + * @param {string} option Option name to get the file_broswer_callback function name from. + */ + openBrowser : function(element_id, type, option) { + tinyMCEPopup.restoreSelection(); + this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window); + }, + + /** + * Creates a confirm dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method confirm + * @param {String} t Title for the new confirm dialog. + * @param {function} cb Callback function to be executed after the user has selected ok or cancel. + * @param {Object} s Optional scope to execute the callback in. + */ + confirm : function(t, cb, s) { + this.editor.windowManager.confirm(t, cb, s, window); + }, + + /** + * Creates a alert dialog. Please don't use the blocking behavior of this + * native version use the callback method instead then it can be extended. + * + * @method alert + * @param {String} t Title for the new alert dialog. + * @param {function} cb Callback function to be executed after the user has selected ok. + * @param {Object} s Optional scope to execute the callback in. + */ + alert : function(tx, cb, s) { + this.editor.windowManager.alert(tx, cb, s, window); + }, + + /** + * Closes the current window. + * + * @method close + */ + close : function() { + var t = this; + + // To avoid domain relaxing issue in Opera + function close() { + t.editor.windowManager.close(window); + tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup + }; + + if (tinymce.isOpera) + t.getWin().setTimeout(close, 0); + else + close(); + }, + + // Internal functions + + _restoreSelection : function() { + var e = window.event.srcElement; + + if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button')) + tinyMCEPopup.restoreSelection(); + }, + +/* _restoreSelection : function() { + var e = window.event.srcElement; + + // If user focus a non text input or textarea + if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text') + tinyMCEPopup.restoreSelection(); + },*/ + + _onDOMLoaded : function() { + var t = tinyMCEPopup, ti = document.title, bm, h, nv; + + // Translate page + if (t.features.translate_i18n !== false) { + h = document.body.innerHTML; + + // Replace a=x with a="x" in IE + if (tinymce.isIE) + h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"') + + document.dir = t.editor.getParam('directionality',''); + + if ((nv = t.editor.translate(h)) && nv != h) + document.body.innerHTML = nv; + + if ((nv = t.editor.translate(ti)) && nv != ti) + document.title = ti = nv; + } + + if (!t.editor.getParam('browser_preferred_colors', false) || !t.isWindow) + t.dom.addClass(document.body, 'forceColors'); + + document.body.style.display = ''; + + // Restore selection in IE when focus is placed on a non textarea or input element of the type text + if (tinymce.isIE) { + document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection); + + // Add base target element for it since it would fail with modal dialogs + t.dom.add(t.dom.select('head')[0], 'base', {target : '_self'}); + } + + t.restoreSelection(); + t.resizeToInnerSize(); + + // Set inline title + if (!t.isWindow) + t.editor.windowManager.setTitle(window, ti); + else + window.focus(); + + if (!tinymce.isIE && !t.isWindow) { + t.dom.bind(document, 'focus', function() { + t.editor.windowManager.focus(t.id); + }); + } + + // Patch for accessibility + tinymce.each(t.dom.select('select'), function(e) { + e.onkeydown = tinyMCEPopup._accessHandler; + }); + + // Call onInit + // Init must be called before focus so the selection won't get lost by the focus call + tinymce.each(t.listeners, function(o) { + o.func.call(o.scope, t.editor); + }); + + // Move focus to window + if (t.getWindowArg('mce_auto_focus', true)) { + window.focus(); + + // Focus element with mceFocus class + tinymce.each(document.forms, function(f) { + tinymce.each(f.elements, function(e) { + if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) { + e.focus(); + return false; // Break loop + } + }); + }); + } + + document.onkeyup = tinyMCEPopup._closeWinKeyHandler; + }, + + _accessHandler : function(e) { + e = e || window.event; + + if (e.keyCode == 13 || e.keyCode == 32) { + var elm = e.target || e.srcElement; + + if (elm.onchange) + elm.onchange(); + + return tinymce.dom.Event.cancel(e); + } + }, + + _closeWinKeyHandler : function(e) { + e = e || window.event; + + if (e.keyCode == 27) + tinyMCEPopup.close(); + }, + + _eventProxy: function(id) { + return function(evt) { + tinyMCEPopup.dom.events.callNativeHandler(id, evt); + }; + } +}; + +tinyMCEPopup.init();
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/validate.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/validate.js new file mode 100644 index 0000000..d13aaa1 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/compat3x/validate.js @@ -0,0 +1,252 @@ +/** + * validate.js + * + * Copyright, Moxiecode Systems AB + * Released under LGPL License. + * + * License: http://www.tinymce.com/license + * Contributing: http://www.tinymce.com/contributing + */ + +/** + // String validation: + + if (!Validator.isEmail('myemail')) + alert('Invalid email.'); + + // Form validation: + + var f = document.forms['myform']; + + if (!Validator.isEmail(f.myemail)) + alert('Invalid email.'); +*/ + +var Validator = { + isEmail : function(s) { + return this.test(s, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$'); + }, + + isAbsUrl : function(s) { + return this.test(s, '^(news|telnet|nttp|file|http|ftp|https)://[-A-Za-z0-9\\.]+\\/?.*$'); + }, + + isSize : function(s) { + return this.test(s, '^[0-9.]+(%|in|cm|mm|em|ex|pt|pc|px)?$'); + }, + + isId : function(s) { + return this.test(s, '^[A-Za-z_]([A-Za-z0-9_])*$'); + }, + + isEmpty : function(s) { + var nl, i; + + if (s.nodeName == 'SELECT' && s.selectedIndex < 1) + return true; + + if (s.type == 'checkbox' && !s.checked) + return true; + + if (s.type == 'radio') { + for (i=0, nl = s.form.elements; i<nl.length; i++) { + if (nl[i].type == "radio" && nl[i].name == s.name && nl[i].checked) + return false; + } + + return true; + } + + return new RegExp('^\\s*$').test(s.nodeType == 1 ? s.value : s); + }, + + isNumber : function(s, d) { + return !isNaN(s.nodeType == 1 ? s.value : s) && (!d || !this.test(s, '^-?[0-9]*\\.[0-9]*$')); + }, + + test : function(s, p) { + s = s.nodeType == 1 ? s.value : s; + + return s == '' || new RegExp(p).test(s); + } +}; + +var AutoValidator = { + settings : { + id_cls : 'id', + int_cls : 'int', + url_cls : 'url', + number_cls : 'number', + email_cls : 'email', + size_cls : 'size', + required_cls : 'required', + invalid_cls : 'invalid', + min_cls : 'min', + max_cls : 'max' + }, + + init : function(s) { + var n; + + for (n in s) + this.settings[n] = s[n]; + }, + + validate : function(f) { + var i, nl, s = this.settings, c = 0; + + nl = this.tags(f, 'label'); + for (i=0; i<nl.length; i++) { + this.removeClass(nl[i], s.invalid_cls); + nl[i].setAttribute('aria-invalid', false); + } + + c += this.validateElms(f, 'input'); + c += this.validateElms(f, 'select'); + c += this.validateElms(f, 'textarea'); + + return c == 3; + }, + + invalidate : function(n) { + this.mark(n.form, n); + }, + + getErrorMessages : function(f) { + var nl, i, s = this.settings, field, msg, values, messages = [], ed = tinyMCEPopup.editor; + nl = this.tags(f, "label"); + for (i=0; i<nl.length; i++) { + if (this.hasClass(nl[i], s.invalid_cls)) { + field = document.getElementById(nl[i].getAttribute("for")); + values = { field: nl[i].textContent }; + if (this.hasClass(field, s.min_cls, true)) { + message = ed.getLang('invalid_data_min'); + values.min = this.getNum(field, s.min_cls); + } else if (this.hasClass(field, s.number_cls)) { + message = ed.getLang('invalid_data_number'); + } else if (this.hasClass(field, s.size_cls)) { + message = ed.getLang('invalid_data_size'); + } else { + message = ed.getLang('invalid_data'); + } + + message = message.replace(/{\#([^}]+)\}/g, function(a, b) { + return values[b] || '{#' + b + '}'; + }); + messages.push(message); + } + } + return messages; + }, + + reset : function(e) { + var t = ['label', 'input', 'select', 'textarea']; + var i, j, nl, s = this.settings; + + if (e == null) + return; + + for (i=0; i<t.length; i++) { + nl = this.tags(e.form ? e.form : e, t[i]); + for (j=0; j<nl.length; j++) { + this.removeClass(nl[j], s.invalid_cls); + nl[j].setAttribute('aria-invalid', false); + } + } + }, + + validateElms : function(f, e) { + var nl, i, n, s = this.settings, st = true, va = Validator, v; + + nl = this.tags(f, e); + for (i=0; i<nl.length; i++) { + n = nl[i]; + + this.removeClass(n, s.invalid_cls); + + if (this.hasClass(n, s.required_cls) && va.isEmpty(n)) + st = this.mark(f, n); + + if (this.hasClass(n, s.number_cls) && !va.isNumber(n)) + st = this.mark(f, n); + + if (this.hasClass(n, s.int_cls) && !va.isNumber(n, true)) + st = this.mark(f, n); + + if (this.hasClass(n, s.url_cls) && !va.isAbsUrl(n)) + st = this.mark(f, n); + + if (this.hasClass(n, s.email_cls) && !va.isEmail(n)) + st = this.mark(f, n); + + if (this.hasClass(n, s.size_cls) && !va.isSize(n)) + st = this.mark(f, n); + + if (this.hasClass(n, s.id_cls) && !va.isId(n)) + st = this.mark(f, n); + + if (this.hasClass(n, s.min_cls, true)) { + v = this.getNum(n, s.min_cls); + + if (isNaN(v) || parseInt(n.value) < parseInt(v)) + st = this.mark(f, n); + } + + if (this.hasClass(n, s.max_cls, true)) { + v = this.getNum(n, s.max_cls); + + if (isNaN(v) || parseInt(n.value) > parseInt(v)) + st = this.mark(f, n); + } + } + + return st; + }, + + hasClass : function(n, c, d) { + return new RegExp('\\b' + c + (d ? '[0-9]+' : '') + '\\b', 'g').test(n.className); + }, + + getNum : function(n, c) { + c = n.className.match(new RegExp('\\b' + c + '([0-9]+)\\b', 'g'))[0]; + c = c.replace(/[^0-9]/g, ''); + + return c; + }, + + addClass : function(n, c, b) { + var o = this.removeClass(n, c); + n.className = b ? c + (o != '' ? (' ' + o) : '') : (o != '' ? (o + ' ') : '') + c; + }, + + removeClass : function(n, c) { + c = n.className.replace(new RegExp("(^|\\s+)" + c + "(\\s+|$)"), ' '); + return n.className = c != ' ' ? c : ''; + }, + + tags : function(f, s) { + return f.getElementsByTagName(s); + }, + + mark : function(f, n) { + var s = this.settings; + + this.addClass(n, s.invalid_cls); + n.setAttribute('aria-invalid', 'true'); + this.markLabels(f, n, s.invalid_cls); + + return false; + }, + + markLabels : function(f, n, ic) { + var nl, i; + + nl = this.tags(f, "label"); + for (i=0; i<nl.length; i++) { + if (nl[i].getAttribute("for") == n.id || nl[i].htmlFor == n.id) + this.addClass(nl[i], ic); + } + + return null; + } +}; diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/contextmenu/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/contextmenu/plugin.min.js new file mode 100644 index 0000000..e4fbc9b --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/contextmenu/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("contextmenu",function(e){var t;e.on("contextmenu",function(n){var r;if(n.preventDefault(),r=e.settings.contextmenu||"link image inserttable | cell row column deletetable",t)t.show();else{var i=[];tinymce.each(r.split(/[ ,]/),function(t){var n=e.menuItems[t];"|"==t&&(n={text:t}),n&&(n.shortcut="",i.push(n))});for(var o=0;i.length>o;o++)"|"==i[o].text&&(0===o||o==i.length-1)&&i.splice(o,1);t=new tinymce.ui.Menu({items:i,context:"contextmenu"}),t.renderTo(document.body)}var a=tinymce.DOM.getPos(e.getContentAreaContainer());a.x+=n.clientX,a.y+=n.clientY,t.moveTo(a.x,a.y),e.on("remove",function(){t.remove(),t=null})})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/directionality/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/directionality/plugin.min.js new file mode 100644 index 0000000..c472a90 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/directionality/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("directionality",function(e){function t(t){var n,r=e.dom,i=e.selection.getSelectedBlocks();i.length&&(n=r.getAttrib(i[0],"dir"),tinymce.each(i,function(e){r.getParent(e.parentNode,"*[dir='"+t+"']",r.getRoot())||(n!=t?r.setAttrib(e,"dir",t):r.setAttrib(e,"dir",null))}),e.nodeChanged())}function n(e){var t=[];return tinymce.each("h1 h2 h3 h4 h5 h6 div p".split(" "),function(n){t.push(n+"[dir="+e+"]")}),t.join(",")}e.addCommand("mceDirectionLTR",function(){t("ltr")}),e.addCommand("mceDirectionRTL",function(){t("rtl")}),e.addButton("ltr",{title:"Left to right",cmd:"mceDirectionLTR",stateSelector:n("ltr")}),e.addButton("rtl",{title:"Right to left",cmd:"mceDirectionRTL",stateSelector:n("rtl")})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-cool.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-cool.gif Binary files differnew file mode 100644 index 0000000..ba90cc3 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-cool.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-cry.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-cry.gif Binary files differnew file mode 100644 index 0000000..74d897a --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-cry.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-embarassed.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-embarassed.gif Binary files differnew file mode 100644 index 0000000..963a96b --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-embarassed.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif Binary files differnew file mode 100644 index 0000000..c7cf101 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-foot-in-mouth.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-frown.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-frown.gif Binary files differnew file mode 100644 index 0000000..716f55e --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-frown.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-innocent.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-innocent.gif Binary files differnew file mode 100644 index 0000000..334d49e --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-innocent.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-kiss.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-kiss.gif Binary files differnew file mode 100644 index 0000000..4efd549 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-kiss.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-laughing.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-laughing.gif Binary files differnew file mode 100644 index 0000000..82c5b18 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-laughing.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-money-mouth.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-money-mouth.gif Binary files differnew file mode 100644 index 0000000..ca2451e --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-money-mouth.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-sealed.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-sealed.gif Binary files differnew file mode 100644 index 0000000..fe66220 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-sealed.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-smile.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-smile.gif Binary files differnew file mode 100644 index 0000000..fd27edf --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-smile.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-surprised.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-surprised.gif Binary files differnew file mode 100644 index 0000000..0cc9bb7 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-surprised.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-tongue-out.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-tongue-out.gif Binary files differnew file mode 100644 index 0000000..2075dc1 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-tongue-out.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-undecided.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-undecided.gif Binary files differnew file mode 100644 index 0000000..bef7e25 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-undecided.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-wink.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-wink.gif Binary files differnew file mode 100644 index 0000000..0631c76 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-wink.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-yell.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-yell.gif Binary files differnew file mode 100644 index 0000000..648e6e8 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/img/smiley-yell.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/plugin.min.js new file mode 100644 index 0000000..c5f3329 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/emoticons/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("emoticons",function(e,t){function n(){var e;return e='<table role="presentation" class="mce-grid">',tinymce.each(r,function(n){e+="<tr>",tinymce.each(n,function(n){var r=t+"/img/smiley-"+n+".gif";e+='<td><a href="#" data-mce-url="'+r+'" tabindex="-1"><img src="'+r+'" style="width: 18px; height: 18px"></a></td>'}),e+="</tr>"}),e+="</table>"}var r=[["cool","cry","embarassed","foot-in-mouth"],["frown","innocent","kiss","laughing"],["money-mouth","sealed","smile","surprised"],["tongue-out","undecided","wink","yell"]];e.addButton("emoticons",{type:"panelbutton",popoverAlign:"bc-tl",panel:{autohide:!0,html:n,onclick:function(t){var n=e.dom.getParent(t.target,"a");n&&(e.insertContent('<img src="'+n.getAttribute("data-mce-url")+'" />'),this.hide())}},tooltip:"Emoticons"})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/example/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/example/plugin.min.js new file mode 100644 index 0000000..1d9c216 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/example/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("example",function(){});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/example_dependency/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/example_dependency/plugin.min.js new file mode 100644 index 0000000..e61bf47 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/example_dependency/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("example_dependency",function(){},["example"]);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/fullpage/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/fullpage/plugin.min.js new file mode 100644 index 0000000..fdef7d9 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/fullpage/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("fullpage",function(e){function t(){var t=n();e.windowManager.open({title:"Document properties",data:t,defaults:{type:"textbox",size:40},body:[{name:"title",label:"Title"},{name:"keywords",label:"Keywords"},{name:"description",label:"Description"},{name:"robots",label:"Robots"},{name:"author",label:"Author"},{name:"docencoding",label:"Encoding"}],onSubmit:function(e){r(tinymce.extend(t,e.data))}})}function n(){function t(e,t){var n=e.attr(t);return n||""}var n,r,o=i(),a={};return a.fontface=e.getParam("fullpage_default_fontface",""),a.fontsize=e.getParam("fullpage_default_fontsize",""),n=o.firstChild,7==n.type&&(a.xml_pi=!0,r=/encoding="([^"]+)"/.exec(n.value),r&&(a.docencoding=r[1])),n=o.getAll("#doctype")[0],n&&(a.doctype="<!DOCTYPE"+n.value+">"),n=o.getAll("title")[0],n&&n.firstChild&&(a.title=n.firstChild.value),u(o.getAll("meta"),function(e){var t,n=e.attr("name"),r=e.attr("http-equiv");n?a[n.toLowerCase()]=e.attr("content"):"Content-Type"==r&&(t=/charset\s*=\s*(.*)\s*/gi.exec(e.attr("content")),t&&(a.docencoding=t[1]))}),n=o.getAll("html")[0],n&&(a.langcode=t(n,"lang")||t(n,"xml:lang")),n=o.getAll("link")[0],n&&"stylesheet"==n.attr("rel")&&(a.stylesheet=n.attr("href")),n=o.getAll("body")[0],n&&(a.langdir=t(n,"dir"),a.style=t(n,"style"),a.visited_color=t(n,"vlink"),a.link_color=t(n,"link"),a.active_color=t(n,"alink")),a}function r(t){function n(e,t,n){e.attr(t,n?n:void 0)}function r(e){a.firstChild?a.insert(e,a.firstChild):a.append(e)}var o,a,s,c,f,p=e.dom;o=i(),a=o.getAll("head")[0],a||(c=o.getAll("html")[0],a=new d("head",1),c.firstChild?c.insert(a,c.firstChild,!0):c.append(a)),c=o.firstChild,t.xml_pi?(f='version="1.0"',t.docencoding&&(f+=' encoding="'+t.docencoding+'"'),7!=c.type&&(c=new d("xml",7),o.insert(c,o.firstChild,!0)),c.value=f):c&&7==c.type&&c.remove(),c=o.getAll("#doctype")[0],t.doctype?(c||(c=new d("#doctype",10),t.xml_pi?o.insert(c,o.firstChild):r(c)),c.value=t.doctype.substring(9,t.doctype.length-1)):c&&c.remove(),t.docencoding&&(c=null,u(o.getAll("meta"),function(e){"Content-Type"==e.attr("http-equiv")&&(c=e)}),c||(c=new d("meta",1),c.attr("http-equiv","Content-Type"),c.shortEnded=!0,r(c)),c.attr("content","text/html; charset="+t.docencoding)),c=o.getAll("title")[0],t.title?c||(c=new d("title",1),c.append(new d("#text",3)).value=t.title,r(c)):c&&c.remove(),u("keywords,description,author,copyright,robots".split(","),function(e){var n,i,a=o.getAll("meta"),s=t[e];for(n=0;a.length>n;n++)if(i=a[n],i.attr("name")==e)return s?i.attr("content",s):i.remove(),void 0;s&&(c=new d("meta",1),c.attr("name",e),c.attr("content",s),c.shortEnded=!0,r(c))}),c=o.getAll("link")[0],c&&"stylesheet"==c.attr("rel")?t.stylesheet?c.attr("href",t.stylesheet):c.remove():t.stylesheet&&(c=new d("link",1),c.attr({rel:"stylesheet",text:"text/css",href:t.stylesheet}),c.shortEnded=!0,r(c)),c=o.getAll("body")[0],c&&(n(c,"dir",t.langdir),n(c,"style",t.style),n(c,"vlink",t.visited_color),n(c,"link",t.link_color),n(c,"alink",t.active_color),p.setAttribs(e.getBody(),{style:t.style,dir:t.dir,vLink:t.visited_color,link:t.link_color,aLink:t.active_color})),c=o.getAll("html")[0],c&&(n(c,"lang",t.langcode),n(c,"xml:lang",t.langcode)),a.firstChild||a.remove(),s=new tinymce.html.Serializer({validate:!1,indent:!0,apply_source_formatting:!0,indent_before:"head,html,body,meta,title,script,link,style",indent_after:"head,html,body,meta,title,script,link,style"}).serialize(o),l=s.substring(0,s.indexOf("</body>"))}function i(){return new tinymce.html.DomParser({validate:!1,root_name:"#document"}).parse(l)}function o(t){function n(e){return e.replace(/<\/?[A-Z]+/g,function(e){return e.toLowerCase()})}var r,o,s,d,f=t.content,p="",m=e.dom;"raw"==t.format&&l||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(f=f.replace(/<(\/?)BODY/gi,"<$1body"),r=f.indexOf("<body"),-1!=r?(r=f.indexOf(">",r),l=n(f.substring(0,r+1)),o=f.indexOf("</body",r),-1==o&&(o=f.length),t.content=f.substring(r+1,o),c=n(f.substring(o))):(l=a(),c="\n</body>\n</html>"),s=i(),u(s.getAll("style"),function(e){e.firstChild&&(p+=e.firstChild.value)}),d=s.getAll("body")[0],d&&m.setAttribs(e.getBody(),{style:d.attr("style")||"",dir:d.attr("dir")||"",vLink:d.attr("vlink")||"",link:d.attr("link")||"",aLink:d.attr("alink")||""}),m.remove("fullpage_styles"),p&&(m.add(e.getDoc().getElementsByTagName("head")[0],"style",{id:"fullpage_styles"},p),d=m.get("fullpage_styles"),d.styleSheet&&(d.styleSheet.cssText=p)))}function a(){var t,n="",r="";return e.getParam("fullpage_default_xml_pi")&&(n+='<?xml version="1.0" encoding="'+e.getParam("fullpage_default_encoding","ISO-8859-1")+'" ?>\n'),n+=e.getParam("fullpage_default_doctype","<!DOCTYPE html>"),n+="\n<html>\n<head>\n",(t=e.getParam("fullpage_default_title"))&&(n+="<title>"+t+"</title>\n"),(t=e.getParam("fullpage_default_encoding"))&&(n+='<meta http-equiv="Content-Type" content="text/html; charset='+t+'" />\n'),(t=e.getParam("fullpage_default_font_family"))&&(r+="font-family: "+t+";"),(t=e.getParam("fullpage_default_font_size"))&&(r+="font-size: "+t+";"),(t=e.getParam("fullpage_default_text_color"))&&(r+="color: "+t+";"),n+="</head>\n<body"+(r?' style="'+r+'"':"")+">\n"}function s(t){t.selection||t.source_view&&e.getParam("fullpage_hide_in_source_view")||(t.content=tinymce.trim(l)+"\n"+tinymce.trim(t.content)+"\n"+tinymce.trim(c))}var l,c,u=tinymce.each,d=tinymce.html.Node;e.addCommand("mceFullPageProperties",t),e.addButton("fullpage",{title:"Document properties",cmd:"mceFullPageProperties"}),e.addMenuItem("fullpage",{text:"Document properties",cmd:"mceFullPageProperties",context:"file"}),e.on("BeforeSetContent",o),e.on("GetContent",s)});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/fullscreen/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/fullscreen/plugin.min.js new file mode 100644 index 0000000..14b3fc8 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/fullscreen/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("fullscreen",function(e){function t(){var e,t,n=window,r=document,i=r.body;return i.offsetWidth&&(e=i.offsetWidth,t=i.offsetHeight),n.innerWidth&&n.innerHeight&&(e=n.innerWidth,t=n.innerHeight),{w:e,h:t}}function n(){function n(){s.setStyle(c,"height",t().h-(l.clientHeight-c.clientHeight))}var l,c,u,d=document.body,f=document.documentElement;a=!a,l=e.getContainer().firstChild,c=e.getContentAreaContainer().firstChild,u=c.style,a?(i=u.width,o=u.height,r=l.clientHeight-c.clientHeight,u.width=u.height="100%",s.addClass(d,"mce-fullscreen"),s.addClass(f,"mce-fullscreen"),s.addClass(l,"mce-fullscreen"),s.bind(window,"resize",n),n()):(u.width=i,u.height=o,s.removeClass(d,"mce-fullscreen"),s.removeClass(f,"mce-fullscreen"),s.removeClass(l,"mce-fullscreen"),s.unbind(window,"resize",n)),e.fire("FullscreenStateChanged",{state:a})}var r,i,o,a=!1,s=tinymce.DOM;if(!e.settings.inline)return e.on("init",function(){e.addShortcut("Ctrl+Alt+F","",n)}),e.addMenuItem("fullscreen",{text:"Fullscreen",shortcut:"Ctrl+Alt+F",selectable:!0,onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})},context:"view"}),e.addButton("fullscreen",{tooltip:"Fullscreen",shortcut:"Ctrl+Alt+F",onClick:n,onPostRender:function(){var t=this;e.on("FullscreenStateChanged",function(e){t.active(e.state)})}}),{isFullscreen:function(){return a}}});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/hr/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/hr/plugin.min.js new file mode 100644 index 0000000..f9268ae --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/hr/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("hr",function(e){e.addCommand("InsertHorizontalRule",function(){e.execCommand("mceInsertContent",!1,"<hr />")}),e.addButton("hr",{icon:"hr",tooltip:"Insert horizontal ruler",cmd:"InsertHorizontalRule"}),e.addMenuItem("hr",{icon:"hr",text:"Horizontal line",cmd:"InsertHorizontalRule",context:"insert"})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/image/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/image/plugin.min.js new file mode 100644 index 0000000..9970d56 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/image/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("image",function(e){function t(){function t(){var t=[{text:"None",value:""}];return tinymce.each(e.settings.image_list,function(e){t.push({text:e.text||e.title,value:e.value||e.url,menu:e.menu})}),t}function n(e){var t,n,i,s;t=r.find("#width")[0],n=r.find("#height")[0],i=t.value(),s=n.value(),r.find("#constrain")[0].checked()&&o&&a&&i&&s&&(e.control==t?(s=Math.round(i/o*s),n.value(s)):(i=Math.round(s/a*i),t.value(i))),o=i,a=s}var r,i,o,a,s,l=e.dom,c=e.selection.getNode();o=l.getAttrib(c,"width"),a=l.getAttrib(c,"height"),"IMG"!=c.nodeName||c.getAttribute("data-mce-object")?c=null:i={src:l.getAttrib(c,"src"),alt:l.getAttrib(c,"alt"),width:o,height:a},e.settings.image_list&&(s={name:"target",type:"listbox",label:"Image list",values:t(),onselect:function(e){var t=r.find("#alt");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),r.find("#src").value(e.control.value())}}),r=e.windowManager.open({title:"Edit image",data:i,body:[{name:"src",type:"filepicker",filetype:"image",label:"Source",autofocus:!0},s,{name:"alt",type:"textbox",label:"Image description"},{type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:n},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:n},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}],onSubmit:function(t){var n=t.data;""===n.width&&delete n.width,""===n.height&&delete n.height,c?l.setAttribs(c,n):e.insertContent(l.createHTML("img",n))}})}e.addButton("image",{icon:"image",tooltip:"Insert/edit image",onclick:t,stateSelector:"img:not([data-mce-object])"}),e.addMenuItem("image",{icon:"image",text:"Insert image",onclick:t,context:"insert",prependToContext:!0})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/insertdatetime/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/insertdatetime/plugin.min.js new file mode 100644 index 0000000..2babdc4 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/insertdatetime/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("insertdatetime",function(e){function t(t,n){function s(e,t){if(e=""+e,t>e.length)for(var n=0;t-e.length>n;n++)e="0"+e;return e}return n=n||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+n.getFullYear()),t=t.replace("%y",""+n.getYear()),t=t.replace("%m",s(n.getMonth()+1,2)),t=t.replace("%d",s(n.getDate(),2)),t=t.replace("%H",""+s(n.getHours(),2)),t=t.replace("%M",""+s(n.getMinutes(),2)),t=t.replace("%S",""+s(n.getSeconds(),2)),t=t.replace("%I",""+((n.getHours()+11)%12+1)),t=t.replace("%p",""+(12>n.getHours()?"AM":"PM")),t=t.replace("%B",""+e.translate(a[n.getMonth()])),t=t.replace("%b",""+e.translate(o[n.getMonth()])),t=t.replace("%A",""+e.translate(i[n.getDay()])),t=t.replace("%a",""+e.translate(r[n.getDay()])),t=t.replace("%%","%")}var n,r="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),i="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),o="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),a="January February March April May June July August September October November December".split(" "),s=[];e.addCommand("mceInsertDate",function(){var n=t(e.getParam("plugin_insertdate_dateFormat",e.translate("%Y-%m-%d")));e.execCommand("mceInsertContent",!1,n)}),e.addCommand("mceInsertTime",function(){var n=t(e.getParam("plugin_insertdate_timeFormat",e.translate("%H:%M:%S")));e.execCommand("mceInsertContent",!1,n)}),e.addButton("inserttime",{type:"splitbutton",title:"Insert time",onclick:function(){e.insertContent(t(n||"%H:%M:%S"))},menu:s}),tinymce.each(["%H:%M:%S","%Y-%m-%d","%I:%M:%S %p","%D"],function(r){s.push({text:t(r),onclick:function(){n=r,e.insertContent(t(r))}})}),e.addMenuItem("insertdatetime",{icon:"date",text:"Insert date/time",menu:s,context:"insert"})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/layer/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/layer/plugin.min.js new file mode 100644 index 0000000..82494b3 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/layer/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("layer",function(e){function t(e){do if(e.className&&-1!=e.className.indexOf("mceItemLayer"))return e;while(e=e.parentNode)}function n(t){var n=e.dom;tinymce.each(n.select("div,p",t),function(e){/^(absolute|relative|fixed)$/i.test(e.style.position)&&(e.hasVisual?n.addClass(e,"mceItemVisualAid"):n.removeClass(e,"mceItemVisualAid"),n.addClass(e,"mceItemLayer"))})}function r(n){var r,i,o=[],a=t(e.selection.getNode()),s=-1,l=-1;for(i=[],tinymce.walk(e.getBody(),function(e){1==e.nodeType&&/^(absolute|relative|static)$/i.test(e.style.position)&&i.push(e)},"childNodes"),r=0;i.length>r;r++)o[r]=i[r].style.zIndex?parseInt(i[r].style.zIndex,10):0,0>s&&i[r]==a&&(s=r);if(0>n){for(r=0;o.length>r;r++)if(o[r]<o[s]){l=r;break}l>-1?(i[s].style.zIndex=o[l],i[l].style.zIndex=o[s]):o[s]>0&&(i[s].style.zIndex=o[s]-1)}else{for(r=0;o.length>r;r++)if(o[r]>o[s]){l=r;break}l>-1?(i[s].style.zIndex=o[l],i[l].style.zIndex=o[s]):i[s].style.zIndex=o[s]+1}e.execCommand("mceRepaint")}function i(){var t=e.dom,n=t.getPos(t.getParent(e.selection.getNode(),"*")),r=e.getBody();e.dom.add(r,"div",{style:{position:"absolute",left:n.x,top:n.y>20?n.y:20,width:100,height:100},"class":"mceItemVisualAid mceItemLayer"},e.selection.getContent()||e.getLang("layer.content")),tinymce.Env.ie&&t.setHTML(r,r.innerHTML)}function o(){var n=t(e.selection.getNode());n||(n=e.dom.getParent(e.selection.getNode(),"DIV,P,IMG")),n&&("absolute"==n.style.position.toLowerCase()?(e.dom.setStyles(n,{position:"",left:"",top:"",width:"",height:""}),e.dom.removeClass(n,"mceItemVisualAid"),e.dom.removeClass(n,"mceItemLayer")):(n.style.left||(n.style.left="20px"),n.style.top||(n.style.top="20px"),n.style.width||(n.style.width=n.width?n.width+"px":"100px"),n.style.height||(n.style.height=n.height?n.height+"px":"100px"),n.style.position="absolute",e.dom.setAttrib(n,"data-mce-style",""),e.addVisual(e.getBody())),e.execCommand("mceRepaint"),e.nodeChanged())}e.addCommand("mceInsertLayer",i),e.addCommand("mceMoveForward",function(){r(1)}),e.addCommand("mceMoveBackward",function(){r(-1)}),e.addCommand("mceMakeAbsolute",function(){o()}),e.addButton("moveforward",{title:"layer.forward_desc",cmd:"mceMoveForward"}),e.addButton("movebackward",{title:"layer.backward_desc",cmd:"mceMoveBackward"}),e.addButton("absolute",{title:"layer.absolute_desc",cmd:"mceMakeAbsolute"}),e.addButton("insertlayer",{title:"layer.insertlayer_desc",cmd:"mceInsertLayer"}),e.on("init",function(){tinymce.Env.ie&&e.getDoc().execCommand("2D-Position",!1,!0)}),e.on("mouseup",function(n){var r=t(n.target);r&&e.dom.setAttrib(r,"data-mce-style","")}),e.on("mousedown",function(n){var r,i=n.target,o=e.getDoc();tinymce.Env.gecko&&(t(i)?"on"!==o.designMode&&(o.designMode="on",i=o.body,r=i.parentNode,r.removeChild(i),r.appendChild(i)):"on"==o.designMode&&(o.designMode="off"))}),e.on("NodeChange",n)});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/legacyoutput/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/legacyoutput/plugin.min.js new file mode 100644 index 0000000..4402397 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/legacyoutput/plugin.min.js @@ -0,0 +1 @@ +(function(e){e.on("AddEditor",function(e){e.editor.settings.inline_styles=!1}),e.PluginManager.add("legacyoutput",function(t){t.on("init",function(){var n="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",r=e.explode(t.settings.font_size_style_values),i=t.schema;t.formatter.register({alignleft:{selector:n,attributes:{align:"left"}},aligncenter:{selector:n,attributes:{align:"center"}},alignright:{selector:n,attributes:{align:"right"}},alignjustify:{selector:n,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:!0}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:!0}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(t){return e.inArray(r,t.value)+1}}},forecolor:{inline:"font",attributes:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}}),e.each("b,i,u,strike".split(","),function(e){i.addValidElements(e+"[*]")}),i.getElementRule("font")||i.addValidElements("font[face|size|color|style]"),e.each(n.split(","),function(e){var t=i.getElementRule(e);t&&(t.attributes.align||(t.attributes.align={},t.attributesOrder.push("align")))})})})})(tinymce);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/link/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/link/plugin.min.js new file mode 100644 index 0000000..36f410f --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/link/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("link",function(e){function t(){function t(){var t=[{text:"None",value:""}];return tinymce.each(e.settings.link_list,function(e){t.push({text:e.text||e.title,value:e.value||e.url,menu:e.menu})}),t}function n(t){var n=[{text:"None",value:""}];return tinymce.each(e.settings.rel_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function r(t){var n=[{text:"None",value:""}];return e.settings.target_list||n.push({text:"New window",value:"_blank"}),tinymce.each(e.settings.target_list,function(e){n.push({text:e.text||e.title,value:e.value,selected:t===e.value})}),n}function i(){s||0!==f.text.length||this.parent().parent().find("#text")[0].value(this.value())}var o,a,s,l,c,u,d,f={},p=e.selection,h=e.dom;o=p.getNode(),a=h.getParent(o,"a[href]"),a&&p.select(a),f.text=s=p.getContent({format:"text"}),f.href=a?h.getAttrib(a,"href"):"",f.target=a?h.getAttrib(a,"target"):"",f.rel=a?h.getAttrib(a,"rel"):"","IMG"==o.nodeName&&(f.text=s=" "),e.settings.link_list&&(c={type:"listbox",label:"Link list",values:t(),onselect:function(e){var t=l.find("#text");(!t.value()||e.lastControl&&t.value()==e.lastControl.text())&&t.value(e.control.text()),l.find("#href").value(e.control.value())}}),e.settings.target_list!==!1&&(d={name:"target",type:"listbox",label:"Target",values:r(f.target)}),e.settings.rel_list&&(u={name:"rel",type:"listbox",label:"Rel",values:n(f.rel)}),l=e.windowManager.open({title:"Insert link",data:f,body:[{name:"href",type:"filepicker",filetype:"file",size:40,autofocus:!0,label:"Url",onchange:i,onkeyup:i},{name:"text",type:"textbox",size:40,label:"Text to display",onchange:function(){f.text=this.value()}},c,u,d],onSubmit:function(t){var n=t.data;return n.href?(n.text!=s?a?(e.focus(),a.innerHTML=n.text,h.setAttribs(a,{href:n.href,target:n.target?n.target:null,rel:n.rel?n.rel:null}),p.select(a)):e.insertContent(h.createHTML("a",{href:n.href,target:n.target?n.target:null,rel:n.rel?n.rel:null},n.text)):e.execCommand("mceInsertLink",!1,{href:n.href,target:n.target,rel:n.rel?n.rel:null}),void 0):(e.execCommand("unlink"),void 0)}})}e.addButton("link",{icon:"link",tooltip:"Insert/edit link",shortcut:"Ctrl+K",onclick:t,stateSelector:"a[href]"}),e.addButton("unlink",{icon:"unlink",tooltip:"Remove link(s)",cmd:"unlink",stateSelector:"a[href]"}),e.addShortcut("Ctrl+K","",t),this.showDialog=t,e.addMenuItem("link",{icon:"link",text:"Insert link",shortcut:"Ctrl+K",onclick:t,stateSelector:"a[href]",context:"insert",prependToContext:!0})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/lists/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/lists/plugin.min.js new file mode 100644 index 0000000..ebb3e7b --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/lists/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("lists",function(e){var t=this;e.on("init",function(){function n(e){function t(t){var r,i,o;i=e[t?"startContainer":"endContainer"],o=e[t?"startOffset":"endOffset"],1==i.nodeType&&(r=b.create("span",{"data-mce-type":"bookmark"}),i.hasChildNodes()?(o=Math.min(o,i.childNodes.length-1),i.insertBefore(r,i.childNodes[o])):i.appendChild(r),i=r,o=0),n[t?"startContainer":"endContainer"]=i,n[t?"startOffset":"endOffset"]=o}var n={};return t(!0),t(),n}function r(e){function t(t){function n(e){for(var t=e.parentNode.firstChild,n=0;t;){if(t==e)return n;(1!=t.nodeType||"bookmark"!=t.getAttribute("data-mce-type"))&&n++,t=t.nextSibling}return-1}var r,i,o;r=o=e[t?"startContainer":"endContainer"],i=e[t?"startOffset":"endOffset"],1==r.nodeType&&(t?(i=n(r),r=r.parentNode):(i=n(r),r=r.parentNode),b.remove(o)),e[t?"startContainer":"endContainer"]=r,e[t?"startOffset":"endOffset"]=i}t(!0),t();var n=b.createRng();n.setStart(e.startContainer,e.startOffset),n.setEnd(e.endContainer,e.endOffset),C.setRng(n)}function i(e){return e&&/^(OL|UL)$/.test(e.nodeName)}function o(e){return e.parentNode.firstChild==e}function a(e){return e.parentNode.lastChild==e}function s(t){return t&&!!e.schema.getTextBlockElements()[t.nodeName]}function l(t,n){var r,i;if(e.settings.forced_root_block&&(n=n||e.settings.forced_root_block),i=n?b.create(n):b.createFragment(),t)for(;r=t.firstChild;)i.appendChild(r);return e.settings.forced_root_block||i.appendChild(b.create("br")),i.hasChildNodes()||tinymce.isIE||(i.innerHTML='<br data-mce-bogus="1">'),i}function c(){return tinymce.grep(C.getSelectedBlocks(),function(e){return"LI"==e.nodeName})}function u(){return tinymce.grep(C.getSelectedBlocks(),s)}function d(e,t,n){var r,i;n=n||l(t),r=b.createRng(),r.setStartAfter(t),r.setEndAfter(e),i=r.extractContents(),b.isEmpty(i)||b.insertAfter(i,e),b.isEmpty(n)||b.insertAfter(n,e),b.isEmpty(t.parentNode)&&b.remove(t.parentNode),b.remove(t)}function f(e){var t,n;if(t=e.nextSibling,t&&i(t)&&t.nodeName==e.nodeName){for(;n=t.firstChild;)e.appendChild(n);b.remove(t)}if(t=e.previousSibling,t&&i(t)&&t.nodeName==e.nodeName){for(;n=t.firstChild;)e.insertBefore(n,e.firstChild);b.remove(t)}}function m(e){tinymce.each(tinymce.grep(b.select("ol,ul",e)),function(e){var t,n=e.parentNode;"LI"==n.nodeName&&n.firstChild==e&&(t=n.previousSibling,t&&"LI"==t.nodeName&&(t.appendChild(e),b.isEmpty(n)&&b.remove(n))),i(n)&&(t=n.previousSibling,t&&"LI"==t.nodeName&&t.appendChild(e))})}function p(){var e,t=n(C.getRng(!0));return tinymce.each(c(),function(t){var n,r;return n=t.previousSibling,n&&"UL"==n.nodeName?(n.appendChild(t),void 0):n&&"LI"==n.nodeName&&i(n.lastChild)?(n.lastChild.appendChild(t),void 0):(n=t.nextSibling,n&&"UL"==n.nodeName?(n.insertBefore(t,n.firstChild),void 0):(n&&"LI"==n.nodeName&&i(t.lastChild)||(n=t.previousSibling,n&&"LI"==n.nodeName&&(r=b.create(t.parentNode.nodeName),n.appendChild(r),r.appendChild(t)),e=!0),void 0))}),r(t),e}function h(){var e,t=n(C.getRng(!0));return tinymce.each(c(),function(t){var n,r=t.parentNode,s=r.parentNode;if(o(t)&&a(t))if("LI"==s.nodeName)b.insertAfter(t,s);else{if(!i(s))return;b.remove(r,!0)}else if(o(t))if("LI"==s.nodeName)b.insertAfter(t,s),n=b.create("LI"),n.appendChild(r),b.insertAfter(n,t);else{if(!i(s))return;s.insertBefore(t,r)}else if(a(t))if("LI"==s.nodeName)b.insertAfter(t,s);else{if(!i(s))return;b.insertAfter(t,r)}else{if("LI"==s.nodeName)r=s,n=l(t,"LI");else{if(!i(s))return;n=l(t,"LI")}d(r,t,n),m(r.parentNode)}e=!0}),r(t),e}function g(t){function o(){function t(t){var n,r,i=e.getBody();for(n=a[t?"startContainer":"endContainer"],r=a[t?"startOffset":"endOffset"],1==n.nodeType&&(n=n.childNodes[Math.min(r,n.childNodes.length-1)]||n);n.parentNode!=i;){if(s(n))return n;if(/^(TD|TH)$/.test(n.parentNode.nodeName))return n;n=n.parentNode}return n}function n(e,t){var n,r=[];if(!s(e)){for(;e&&(n=e[t?"previousSibling":"nextSibling"],!b.isBlock(n)&&n);)e=n;for(;e;)r.push(e),e=e[t?"nextSibling":"previousSibling"]}return r}var r,i,o=t(!0),l=t();i=n(o,!0),o!=l&&(i=i.concat(n(l).reverse())),tinymce.each(i,function(e){if(!b.isBlock(e)||"BR"==e.nodeName){if(!r||"BR"==e.nodeName){if("BR"==e.nodeName&&(!e.nextSibling||b.isBlock(e.nextSibling)&&"BR"!=e.nextSibling.nodeName))return b.remove(e),!1;r=b.create("p"),c.push(r),e.parentNode.insertBefore(r,e)}return"BR"!=e.nodeName?r.appendChild(e):b.remove(e),e==l?!1:void 0}})}var a=C.getRng(!0),l=n(a),c=u();o(),tinymce.each(c,function(e){var n,r;r=e.previousSibling,r&&i(r)&&r.nodeName==t?(n=r,e=b.rename(e,"LI"),r.appendChild(e)):(n=b.create(t),e.parentNode.insertBefore(n,e),n.appendChild(e),e=b.rename(e,"LI")),f(n)}),r(l)}function v(){var e=n(C.getRng(!0));tinymce.each(c(),function(e){var t,n;for(t=e;t;t=t.parentNode)i(t)&&(n=t);d(n,e)}),r(e)}function y(e){var t=b.getParent(C.getStart(),"OL,UL");if(t)if(t.nodeName==e)v(e);else{var i=n(C.getRng(!0));f(b.rename(t,e)),r(i)}else g(e)}var b=e.dom,C=e.selection;t.backspaceDelete=function(e){function t(e,t){var n=e.startContainer,r=e.startOffset;if(3==n.nodeType&&(t?n.data.length>r:r>0))return n;for(var i=new tinymce.dom.TreeWalker(e.startContainer);n=i[t?"next":"prev"]();)if(3==n.nodeType&&n.data.length>0)return n}function o(e,t){var n,r,o=e.parentNode;for(i(t.lastChild)&&(r=t.lastChild),n=t.lastChild,n&&"BR"==n.nodeName&&e.hasChildNodes()&&b.remove(n);n=e.firstChild;)t.appendChild(n);r&&t.appendChild(r),b.remove(e),b.isEmpty(o)&&b.remove(o)}if(C.isCollapsed()){var a=b.getParent(C.getStart(),"LI");if(a){var s=C.getRng(!0),l=b.getParent(t(s,e),"LI");if(l&&l!=a){var c=n(s);return e?o(l,a):o(a,l),r(c),!0}if(!l&&!e&&v(a.parentNode.nodeName))return!0}}},e.addCommand("Indent",function(){return p()?void 0:!0}),e.addCommand("Outdent",function(){return h()?void 0:!0}),e.addCommand("InsertUnorderedList",function(){y("UL")}),e.addCommand("InsertOrderedList",function(){y("OL")})}),e.on("keydown",function(e){e.keyCode==tinymce.util.VK.BACKSPACE?t.backspaceDelete()&&e.preventDefault():e.keyCode==tinymce.util.VK.DELETE&&t.backspaceDelete(!0)&&e.preventDefault()})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/media/moxieplayer.swf b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/media/moxieplayer.swf Binary files differnew file mode 100644 index 0000000..585d772 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/media/moxieplayer.swf diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/media/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/media/plugin.min.js new file mode 100644 index 0000000..b7d2adf --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/media/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("media",function(e,t){function n(e){return-1!=e.indexOf(".mp3")?"audio/mpeg":-1!=e.indexOf(".wav")?"audio/wav":-1!=e.indexOf(".mp4")?"video/mp4":-1!=e.indexOf(".webm")?"video/webm":-1!=e.indexOf(".ogg")?"video/ogg":""}function r(){function t(e){var t,i,o,a;t=n.find("#width")[0],i=n.find("#height")[0],o=t.value(),a=i.value(),n.find("#constrain")[0].checked()&&r&&l&&o&&a&&(e.control==t?(a=Math.round(o/r*a),i.value(a)):(o=Math.round(a/l*o),t.value(o))),r=o,l=a}var n,r,l,c;c=s(e.selection.getNode()),r=c.width,l=c.height,n=e.windowManager.open({title:"Insert/edit video",data:c,bodyType:"tabpanel",body:[{title:"General",type:"form",onShowTab:function(){this.fromJSON(a(this.next().find("#embed").value()))},items:[{name:"source1",type:"filepicker",filetype:"image",size:40,autofocus:!0,label:"Source"},{name:"source2",type:"filepicker",filetype:"image",size:40,label:"Alternative source"},{name:"poster",type:"filepicker",filetype:"image",size:40,label:"Poster"},{type:"container",label:"Dimensions",layout:"flex",direction:"row",align:"center",spacing:5,items:[{name:"width",type:"textbox",maxLength:3,size:3,onchange:t},{type:"label",text:"x"},{name:"height",type:"textbox",maxLength:3,size:3,onchange:t},{name:"constrain",type:"checkbox",checked:!0,text:"Constrain proportions"}]}]},{title:"Embed",type:"panel",layout:"flex",direction:"column",align:"stretch",padding:10,spacing:10,onShowTab:function(){this.find("#embed").value(o(this.parent().toJSON()))},items:[{type:"label",text:"Paste your embed code below:"},{type:"textbox",flex:1,name:"embed",value:i(),multiline:!0,label:"Source"}]}],onSubmit:function(){e.insertContent(o(this.toJSON()))}})}function i(){var t=e.selection.getNode();return t.getAttribute("data-mce-object")?e.selection.getContent():void 0}function o(r){var i="";return r.source1||(tinymce.extend(r,a(r.embed)),r.source1)?(r.source1=e.convertURL(r.source1,"source"),r.source2=e.convertURL(r.source2,"source"),r.source1mime=n(r.source1),r.source2mime=n(r.source2),r.poster=e.convertURL(r.poster,"poster"),r.flashPlayerUrl=e.convertURL(t+"/moxieplayer.swf","movie"),r.embed?i=l(r.embed,r,!0):(tinymce.each(c,function(e){var t,n,i;if(t=e.regex.exec(r.source1)){for(i=e.url,n=0;t[n];n++)i=i.replace("$"+n,function(){return t[n]});r.source1=i,r.type=e.type,r.width=e.w,r.height=e.h}}),r.width=r.width||300,r.height=r.height||150,tinymce.each(r,function(t,n){r[n]=e.dom.encode(t)}),"iframe"==r.type?i+='<iframe src="'+r.source1+'" width="'+r.width+'" height="'+r.height+'"></iframe>':-1!=r.source1mime.indexOf("audio")?e.settings.audio_template_callback?i=e.settings.audio_template_callback(r):i+='<audio controls="controls" src="'+r.source1+'">'+(r.source2?'\n<source src="'+r.source2+'"'+(r.source2mime?' type="'+r.source2mime+'"':"")+" />\n":"")+"</audio>":i=e.settings.video_template_callback?e.settings.video_template_callback(r):'<video width="'+r.width+'" height="'+r.height+'"'+(r.poster?' poster="'+r.poster+'"':"")+' controls="controls">\n'+'<source src="'+r.source1+'"'+(r.source1mime?' type="'+r.source1mime+'"':"")+" />\n"+(r.source2?'<source src="'+r.source2+'"'+(r.source2mime?' type="'+r.source2mime+'"':"")+" />\n":"")+"</video>"),i):""}function a(e){var t={};return new tinymce.html.SaxParser({validate:!1,special:"script,noscript",start:function(e,n){t.source1||"param"!=e||(t.source1=n.map.movie),("iframe"==e||"object"==e||"embed"==e||"video"==e||"audio"==e)&&(t=tinymce.extend(n.map,t)),"source"==e&&(t.source1?t.source2||(t.source2=n.map.src):t.source1=n.map.src)}}).parse(e),t.source1=t.source1||t.src||t.data,t.source2=t.source2||"",t.poster=t.poster||"",t}function s(t){return t.getAttribute("data-mce-object")?a(e.serializer.serialize(t,{selection:!0})):{}}function l(e,t,n){function r(e,t){var n,r,i,o;for(n in t)if(i=""+t[n],e.map[n])for(r=e.length;r--;)o=e[r],o.name==n&&(i?(e.map[n]=i,o.value=i):(delete e.map[n],e.splice(r,1)));else i&&(e.push({name:n,value:i}),e.map[n]=i)}var i=new tinymce.html.Writer,o=0;return new tinymce.html.SaxParser({validate:!1,special:"script,noscript",comment:function(e){i.comment(e)},cdata:function(e){i.cdata(e)},text:function(e,t){i.text(e,t)},start:function(e,a,s){switch(e){case"video":case"object":case"img":case"iframe":r(a,{width:t.width,height:t.height})}if(n)switch(e){case"video":r(a,{poster:t.poster,src:""}),t.source2&&r(a,{src:""});break;case"iframe":r(a,{src:t.source1});break;case"source":if(o++,2>=o&&(r(a,{src:t["source"+o],type:t["source"+o+"mime"]}),!t["source"+o]))return}i.start(e,a,s)},end:function(e){if("video"==e&&n)for(var a=1;2>=a;a++)if(t["source"+a]){var s=[];s.map={},a>o&&(r(s,{src:t["source"+a],type:t["source"+a+"mime"]}),i.start("source",s,!0))}i.end(e)}},new tinymce.html.Schema({})).parse(e),i.getContent()}var c=[{regex:/youtu\.be\/([a-z1-9.-_]+)/,type:"iframe",w:425,h:350,url:"http://www.youtube.com/embed/$1"},{regex:/youtube\.com(.+)v=([^&]+)/,type:"iframe",w:425,h:350,url:"http://www.youtube.com/embed/$2"},{regex:/vimeo\.com\/([0-9]+)/,type:"iframe",w:425,h:350,url:"http://player.vimeo.com/video/$1?title=0&byline=0&portrait=0&color=8dc7dc"},{regex:/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/,type:"iframe",w:425,h:350,url:'http://maps.google.com/maps/ms?msid=$2&output=embed"'}];e.on("ResolveName",function(e){var t;(t=e.target.getAttribute("data-mce-object"))&&(e.name=t)}),e.on("preInit",function(){var t=e.schema.getSpecialElements();tinymce.each("video audio iframe object".split(" "),function(e){t[e]=RegExp("</"+e+"[^>]*>","gi")}),e.schema.addValidElements("object[id|style|width|height|classid|codebase|*],embed[id|style|width|height|type|src|*],video[*],audio[*]");var n=e.schema.getBoolAttrs();tinymce.each("webkitallowfullscreen mozallowfullscreen allowfullscreen".split(" "),function(e){n[e]={}}),e.parser.addNodeFilter("iframe,video,audio,object,embed",function(t,n){for(var r,i,o,a,s,l,c,u=t.length;u--;){for(i=t[u],o=new tinymce.html.Node("img",1),o.shortEnded=!0,l=i.attributes,r=l.length;r--;)a=l[r].name,s=l[r].value,"width"!==a&&"height"!==a&&"style"!==a&&(("data"==a||"src"==a)&&(s=e.convertURL(s,a)),o.attr("data-mce-p-"+a,s));c=i.firstChild&&i.firstChild.value,c&&(o.attr("data-mce-html",escape(c)),o.firstChild=null),o.attr({width:i.attr("width")||"300",height:i.attr("height")||("audio"==n?"30":"150"),style:i.attr("style"),src:tinymce.Env.transparentSrc,"data-mce-object":n,"class":"mce-object mce-object-"+n}),i.replace(o)}}),e.serializer.addAttributeFilter("data-mce-object",function(e,t){for(var n,r,i,o,a,s,l=e.length;l--;){for(n=e[l],r=new tinymce.html.Node(n.attr(t),1),"audio"!=n.attr(t)&&r.attr({width:n.attr("width"),height:n.attr("height")}),r.attr({style:n.attr("style")}),o=n.attributes,i=o.length;i--;){var c=o[i].name;0===c.indexOf("data-mce-p-")&&r.attr(c.substr(11),o[i].value)}a=n.attr("data-mce-html"),a&&(s=new tinymce.html.Node("#text",3),s.raw=!0,s.value=unescape(a),r.append(s)),n.replace(r)}})}),e.on("ObjectSelected",function(e){"audio"==e.target.getAttribute("data-mce-object")&&e.preventDefault()}),e.on("objectResized",function(e){var t,n=e.target;n.getAttribute("data-mce-object")&&(t=n.getAttribute("data-mce-html"),t&&(t=unescape(t),n.setAttribute("data-mce-html",escape(l(t,{width:e.width,height:e.height})))))}),e.addButton("media",{tooltip:"Insert/edit video",onclick:r,stateSelector:"img[data-mce-object=video]"}),e.addMenuItem("media",{icon:"media",text:"Insert video",onclick:r,context:"insert",prependToContext:!0})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/nonbreaking/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/nonbreaking/plugin.min.js new file mode 100644 index 0000000..23e653e --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/nonbreaking/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("nonbreaking",function(e){e.addCommand("mceNonBreaking",function(){e.insertContent(e.plugins.visualchars&&e.plugins.visualchars.state?'<span data-mce-bogus="1" class="mce-nbsp"> </span>':" ")}),e.addButton("nonbreaking",{title:"Insert nonbreaking space",cmd:"mceNonBreaking"}),e.addMenuItem("nonbreaking",{text:"Nonbreaking space",cmd:"mceNonBreaking",context:"insert"}),e.getParam("nonbreaking_force_tab")&&e.on("keydown",function(t){9==t.keyCode&&(t.preventDefault(),e.execCommand("mceNonBreaking"),e.execCommand("mceNonBreaking"),e.execCommand("mceNonBreaking"))})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/noneditable/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/noneditable/plugin.min.js new file mode 100644 index 0000000..24f5d86 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/noneditable/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("noneditable",function(e){function t(){function t(e){var t;if(1===e.nodeType){if(t=e.getAttribute(l),t&&"inherit"!==t)return t;if(t=e.contentEditable,"inherit"!==t)return t}return null}function n(e){for(var n;e;){if(n=t(e))return"false"===n?e:null;e=e.parentNode}}function r(e){for(;e;){if(e.id===p)return e;e=e.parentNode}}function i(e){var t;if(e)for(t=new a(e,e),e=t.current();e;e=t.next())if(3===e.nodeType)return e}function o(n,r){var i,o;return"false"===t(n)&&f.isBlock(n)?(m.select(n),void 0):(o=f.createRng(),"true"===t(n)&&(n.firstChild||n.appendChild(e.getDoc().createTextNode(" ")),n=n.firstChild,r=!0),i=f.create("span",{id:p,"data-mce-bogus":!0},h),r?n.parentNode.insertBefore(i,n):f.insertAfter(i,n),o.setStart(i.firstChild,1),o.collapse(!0),m.setRng(o),i)}function s(e){var t,n,o,a;if(e)t=m.getRng(!0),t.setStartBefore(e),t.setEndBefore(e),n=i(e),n&&n.nodeValue.charAt(0)==h&&(n=n.deleteData(0,1)),f.remove(e,!0),m.setRng(t);else for(o=r(m.getStart());(e=f.get(p))&&e!==a;)o!==e&&(n=i(e),n&&n.nodeValue.charAt(0)==h&&(n=n.deleteData(0,1)),f.remove(e,!0)),a=e}function u(){function e(e,n){var r,i,o,s,l;if(r=c.startContainer,i=c.startOffset,3==r.nodeType){if(l=r.nodeValue.length,i>0&&l>i||(n?i==l:0===i))return}else{if(!(r.childNodes.length>i))return n?null:e;var u=!n&&i>0?i-1:i;r=r.childNodes[u],r.hasChildNodes()&&(r=r.firstChild)}for(o=new a(r,e);s=o[n?"prev":"next"]();){if(3===s.nodeType&&s.nodeValue.length>0)return;if("true"===t(s))return s}return e}var r,i,l,c,u;s(),l=m.isCollapsed(),r=n(m.getStart()),i=n(m.getEnd()),(r||i)&&(c=m.getRng(!0),l?(r=r||i,(u=e(r,!0))?o(u,!0):(u=e(r,!1))?o(u,!1):m.select(r)):(c=m.getRng(!0),r&&c.setStartBefore(r),i&&c.setEndAfter(i),m.setRng(c)))}function d(i){function o(e,t){for(;e=e[t?"previousSibling":"nextSibling"];)if(3!==e.nodeType||e.nodeValue.length>0)return e}function l(e,t){m.select(e),m.collapse(t)}function d(i){function o(e){for(var t=l;t;){if(t===e)return;t=t.parentNode}f.remove(e),u()}function a(){var r,a,s=e.schema.getNonEmptyElements();for(a=new tinymce.dom.TreeWalker(l,e.getBody());(r=i?a.prev():a.next())&&!s[r.nodeName.toLowerCase()]&&!(3===r.nodeType&&tinymce.trim(r.nodeValue).length>0);)if("false"===t(r))return o(r),!0;return n(r)?!0:!1}var s,l,c,d;if(m.isCollapsed()){if(s=m.getRng(!0),l=s.startContainer,c=s.startOffset,l=r(l)||l,d=n(l))return o(d),!1;if(3==l.nodeType&&(i?c>0:l.nodeValue.length>c))return!0;if(1==l.nodeType&&(l=l.childNodes[c]||l),a())return!1}return!0}var p,h,g,v,y=i.keyCode;if(g=m.getStart(),v=m.getEnd(),p=n(g)||n(v),p&&(112>y||y>124)&&y!=c.DELETE&&y!=c.BACKSPACE){if((tinymce.isMac?i.metaKey:i.ctrlKey)&&(67==y||88==y||86==y))return;if(i.preventDefault(),y==c.LEFT||y==c.RIGHT){var b=y==c.LEFT;if(e.dom.isBlock(p)){var C=b?p.previousSibling:p.nextSibling,x=new a(C,C),w=b?x.prev():x.next();l(w,!b)}else l(p,b)}}else if(y==c.LEFT||y==c.RIGHT||y==c.BACKSPACE||y==c.DELETE){if(h=r(g)){if(y==c.LEFT||y==c.BACKSPACE)if(p=o(h,!0),p&&"false"===t(p)){if(i.preventDefault(),y!=c.LEFT)return f.remove(p),void 0;l(p,!0)}else s(h);if(y==c.RIGHT||y==c.DELETE)if(p=o(h),p&&"false"===t(p)){if(i.preventDefault(),y!=c.RIGHT)return f.remove(p),void 0;l(p,!1)}else s(h)}if((y==c.BACKSPACE||y==c.DELETE)&&!d(y==c.BACKSPACE))return i.preventDefault(),!1}}var f=e.dom,m=e.selection,p="mce_noneditablecaret",h="";e.on("mousedown",function(n){var r=e.selection.getNode();"false"===t(r)&&r==n.target&&u()}),e.on("mouseup keyup",u),e.on("keydown",d)}function n(t){var n=o.length,r=t.content,a=tinymce.trim(i);if("raw"!=t.format){for(;n--;)r=r.replace(o[n],function(t){var n=arguments,i=n[n.length-2];return i>0&&'"'==r.charAt(i-1)?t:'<span class="'+a+'" data-mce-content="'+e.dom.encode(n[0])+'">'+e.dom.encode("string"==typeof n[1]?n[1]:n[0])+"</span>"});t.content=r}}var r,i,o,a=tinymce.dom.TreeWalker,s="contenteditable",l="data-mce-"+s,c=tinymce.util.VK;r=" "+tinymce.trim(e.getParam("noneditable_editable_class","mceEditable"))+" ",i=" "+tinymce.trim(e.getParam("noneditable_noneditable_class","mceNonEditable"))+" ",o=e.getParam("noneditable_regexp"),o&&!o.length&&(o=[o]),e.on("PreInit",function(){t(),o&&e.on("BeforeSetContent",n),e.parser.addAttributeFilter("class",function(e){for(var t,n,o=e.length;o--;)n=e[o],t=" "+n.attr("class")+" ",-1!==t.indexOf(r)?n.attr(l,"true"):-1!==t.indexOf(i)&&n.attr(l,"false")}),e.serializer.addAttributeFilter(l,function(e){for(var t,n=e.length;n--;)t=e[n],o&&t.attr("data-mce-content")?(t.name="#text",t.type=3,t.raw=!0,t.value=t.attr("data-mce-content")):(t.attr(s,null),t.attr(l,null))}),e.parser.addAttributeFilter(s,function(e){for(var t,n=e.length;n--;)t=e[n],t.attr(l,t.attr(s)),t.attr(s,null)})})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/pagebreak/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/pagebreak/plugin.min.js new file mode 100644 index 0000000..eac236c --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/pagebreak/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("pagebreak",function(e){var t,n="mce-pagebreak",r=e.getParam("pagebreak_separator","<!-- pagebreak -->"),i='<img src="'+tinymce.Env.transparentSrc+'" class="'+n+'" data-mce-resize="false" />';t=RegExp(r.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(e){return"\\"+e}),"g"),e.addCommand("mcePageBreak",function(){e.execCommand("mceInsertContent",0,i)}),e.addButton("pagebreak",{title:"Page break",cmd:"mcePageBreak"}),e.addMenuItem("pagebreak",{text:"Page break",icon:"pagebreak",cmd:"mcePageBreak",context:"insert"}),e.on("ResolveName",function(t){"IMG"==t.target.nodeName&&e.dom.hasClass(t.target,n)&&(t.name="pagebreak")}),e.on("click",function(t){t=t.target,"IMG"===t.nodeName&&e.dom.hasClass(t,n)&&e.selection.select(t)}),e.on("PreInit",function(){e.parser.addNodeFilter("#comment",function(e){for(var t,n,r=e.length;r--;)t=e[r],-1!==t.value.indexOf("pagebreak")&&(n=new tinymce.html.Node("img",1),n.attr({src:tinymce.Env.transparentSrc,"class":"mce-pagebreak","data-mce-resize":"false"}),t.replace(n))}),e.serializer.addNodeFilter("img",function(e){for(var t,n,r=e.length;r--;)t=e[r],n=t.attr("class"),n&&-1!==n.indexOf("mce-pagebreak")&&(t.type=8,t.value="pagebreak")})})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/paste/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/paste/plugin.min.js new file mode 100644 index 0000000..c46f9a6 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/paste/plugin.min.js @@ -0,0 +1 @@ +(function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;e.length>i;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;r.length>i;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;n.length>r;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;a.length-1>l;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/pasteplugin/Clipboard",c="tinymce/Env",u="tinymce/util/Tools",d="tinymce/util/VK",f="tinymce/pasteplugin/WordFilter",p="tinymce/html/DomParser",m="tinymce/html/Schema",h="tinymce/html/Serializer",g="tinymce/html/Node",v="tinymce/pasteplugin/Quirks",y="tinymce/pasteplugin/Plugin",b="tinymce/PluginManager";r(l,[c,u,d],function(e,n,r){function i(){return!e.gecko&&("ClipboardEvent"in window||e.webkit&&"FocusEvent"in window)}return function(o){function a(){return 100>(new Date).getTime()-f}function s(e,t){return n.each(t,function(t){e=t.constructor==RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}function l(t){var n=o.fire("PastePreProcess",{content:t});(o.settings.paste_remove_styles||o.settings.paste_remove_styles_if_webkit!==!1&&e.webkit)&&(n.content=n.content.replace(/ style=\"[^\"]+\"/g,"")),n.isDefaultPrevented()||o.insertContent(n.content)}function c(e){e=o.dom.encode(e),e=s(e,[[/\n\n/g,"</p><p>"],[/^(.*<\/p>)(<p>)$/,"<p>$1"],[/\n/g,"<br />"]]);var t=o.fire("PastePreProcess",{content:e});t.isDefaultPrevented()||o.insertContent(t.content)}function u(){var e=(o.inline?o.getBody():o.getDoc().documentElement).scrollTop,t=o.dom.add(o.getBody(),"div",{id:"mcePasteBin",contentEditable:!1,style:"position: absolute; top: "+e+"px; left: 0; background: red; width: 1px; height: 1px; overflow: hidden"},'<div contentEditable="true">X</div>');return t}function d(){var e=o.dom.get("mcePasteBin");o.dom.unbind(e),o.dom.remove(e)}var f;o.on("keydown",function(e){e.shiftKey&&86==e.keyCode&&(f=(new Date).getTime())}),i()?o.on("paste",function(e){function t(e,t){for(var r=0;n.types.length>r;r++)if(n.types[r]==e)return t(n.getData(e)),!0}var n=e.clipboardData;n&&(e.preventDefault(),a()?t("text/plain",c)||t("text/html",l):t("text/html",l)||t("text/plain",c))}):e.ie?o.on("init",function(){var e=o.dom;o.dom.bind(o.getBody(),"paste",function(n){var r;if(n.preventDefault(),a()&&e.doc.dataTransfer)return c(e.doc.dataTransfer.getData("Text")),t;var i=u();e.bind(i,"paste",function(e){e.stopPropagation(),r=!0});var s=o.selection.getRng(),f=e.doc.body.createTextRange();if(f.moveToElementText(i.firstChild),f.execCommand("Paste"),d(),!r)return o.windowManager.alert("Clipboard access not possible."),t;var p=i.firstChild.innerHTML;o.selection.setRng(s),l(p)})}):(o.on("init",function(){o.dom.bind(o.getBody(),"paste",function(e){e.preventDefault(),o.windowManager.alert("Please use Ctrl+V/Cmd+V keyboard shortcuts to paste contents.")})}),o.on("keydown",function(e){if(r.metaKeyPressed(e)&&86==e.keyCode&&!e.isDefaultPrevented()){var t=u(),n=o.selection.getRng();o.selection.select(t,!0),o.dom.bind(t,"paste",function(e){e.stopPropagation(),setTimeout(function(){d(),o.lastRng=n,o.selection.setRng(n),l(t.firstChild.innerHTML)},0)})}})),o.paste_block_drop&&o.on("dragend dragover draggesture dragdrop drop drag",function(e){e.preventDefault(),e.stopPropagation()}),this.paste=l,this.pasteText=c}}),r(f,[u,p,m,h,g],function(e,n,r,i,o){return function(a){var s=e.each;a.on("PastePreProcess",function(l){function c(e){s(e,function(e){f=e.constructor==RegExp?f.replace(e,""):f.replace(e[0],e[1])})}function u(e){function t(e,t,a,s){var l=e._listLevel||i;l!=i&&(i>l?n&&(n=n.parent.parent):(r=n,n=null)),n&&n.name==a?n.append(e):(r=r||n,n=new o(a,1),s>1&&n.attr("start",""+s),e.wrap(n)),e.name="li",t.value="";var c=t.next;c&&3==c.type&&(c.value=c.value.replace(/^\u00a0+/,"")),l>i&&r.lastChild.append(n),i=l}for(var n,r,i=1,a=e.getAll("p"),s=0;a.length>s;s++)if(e=a[s],"p"==e.name&&e.firstChild){for(var l="",c=e.firstChild;c&&!(l=c.value);)c=c.firstChild;if(/^\s*[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*$/.test(l)){t(e,c,"ul");continue}if(/^\s*\w+\./.test(l)){var u=/([0-9])\./.exec(l),d=1;u&&(d=parseInt(u[1],10)),t(e,c,"ol",d);continue}n=null}}function d(n,r){if("p"===n.name){var i=/mso-list:\w+ \w+([0-9]+)/.exec(r);i&&(n._listLevel=parseInt(i[1],10))}if(a.getParam("paste_retain_style_properties","none")){var o="";if(e.each(a.dom.parseStyle(r),function(e,n){switch(n){case"horiz-align":return n="text-align",t;case"vert-align":return n="vertical-align",t;case"font-color":case"mso-foreground":return n="color",t;case"mso-background":case"mso-highlight":n="background"}("all"==p||m&&m[n])&&(o+=n+":"+e+";")}),o)return o}return null}var f=l.content,p,m;if(p=a.settings.paste_retain_style_properties,p&&(m=e.makeMap(p)),a.settings.paste_enable_default_filters!==!1&&/class="?Mso|style="[^"]*\bmso-|style='[^'']*\bmso-|w:WordDocument/i.test(l.content)){l.wordContent=!0,c([/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\u00a0"],[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(e,t){return t.length>0?t.replace(/./," ").slice(Math.floor(t.length/2)).split("").join("\u00a0"):""}]]);var h=new r({valid_elements:"@[style],-strong/b,-em/i,-span,-p,-ol,-ul,-li,-h1,-h2,-h3,-h4,-h5,-h6,-table,-tr,-td[colspan|rowspan],-th,-thead,-tfoot,-tbody,-a[!href]"}),g=new n({},h);g.addAttributeFilter("style",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("style",d(n,n.attr("style"))),"span"!=n.name||n.attributes.length||n.unwrap()});var v=g.parse(f);u(v),l.content=new i({},h).serialize(v)}})}}),r(v,[c,u],function(e,t){return function(n){function r(e){n.on("PastePreProcess",function(t){t.content=e(t.content)})}function i(e,n){return t.each(n,function(t){e=t.constructor==RegExp?e.replace(t,""):e.replace(t[0],t[1])}),e}function o(e){return e=i(e,[/^[\s\S]*<!--StartFragment-->|<!--EndFragment-->[\s\S]*$/g,[/<span class="Apple-converted-space">\u00a0<\/span>/g,"\u00a0"],/<br>$/])}function a(e){if(!this.explorerBlocksRegExp){var r=[];t.each(n.schema.getBlockElements(),function(e,t){r.push(t)}),this.explorerBlocksRegExp=RegExp("(?:<br> [\\s\\r\\n]+|<br>)*(</?("+r.join("|")+")[^>]*>)(?:<br> [\\s\\r\\n]+|<br>)*","g")}return e=i(e,[[this.explorerBlocksRegExp,"$1"]]),e=i(e,[[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}e.webkit&&r(o),e.ie&&r(a)}}),r(y,[b,l,f,v],function(e,t,n,r){e.add("paste",function(e){var i=this;i.clipboard=new t(e),i.quirks=new r(e),i.wordFilter=new n(e),e.addCommand("mceInsertClipboardContent",function(e,t){t.content&&i.clipboard.paste(t.content),t.text&&i.clipboard.pasteText(t.text)})})}),a([l,f,v,y])})(this);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/preview/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/preview/plugin.min.js new file mode 100644 index 0000000..4af44dc --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/preview/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("preview",function(e){e.addCommand("mcePreview",function(){e.windowManager.open({title:"Preview",width:parseInt(e.getParam("plugin_preview_width","650"),10),height:parseInt(e.getParam("plugin_preview_height","500"),10),html:'<iframe src="javascript:\'\'" frameborder="0"></iframe>',buttons:{text:"Close",onclick:function(){this.parent().parent().close()}},onPostRender:function(){var t,n=this.getEl("body").firstChild.contentWindow.document,r="";tinymce.each(tinymce.explode(e.settings.content_css),function(t){r+='<link type="text/css" rel="stylesheet" href="'+e.documentBaseURI.toAbsolute(t)+'">'}),t="<!DOCTYPE html><html><head>"+r+"</head>"+"<body>"+e.getContent()+"</body>"+"</html>",n.open(),n.write(t),n.close()}})}),e.addButton("preview",{title:"Preview",cmd:"mcePreview"}),e.addMenuItem("preview",{text:"Preview",cmd:"mcePreview",context:"view"})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/print/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/print/plugin.min.js new file mode 100644 index 0000000..0b520b8 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/print/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("print",function(e){e.addCommand("mcePrint",function(){e.getWin().print()}),e.addButton("print",{title:"Print",cmd:"mcePrint"}),e.addMenuItem("print",{text:"Print",cmd:"mcePrint",icon:"print",shortcut:"Ctrl+P",context:"file"})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/save/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/save/plugin.min.js new file mode 100644 index 0000000..050d87c --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/save/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("save",function(e){function t(){var t,n;return t=tinymce.DOM.getParent(e.id,"form"),!e.getParam("save_enablewhendirty")||e.isDirty()?(tinymce.triggerSave(),(n=e.getParam("save_onsavecallback"))?(e.execCallback("save_onsavecallback",e)&&(e.startContent=tinymce.trim(e.getContent({format:"raw"})),e.nodeChanged()),void 0):(t?(e.isNotDirty=!0,(!t.onsubmit||t.onsubmit())&&("function"==typeof t.submit?t.submit():e.windowManager.alert("Error: Form submit field collision.")),e.nodeChanged()):e.windowManager.alert("Error: No form element found."),void 0)):void 0}function n(){var t,n=tinymce.trim(e.startContent);return(t=e.getParam("save_oncancelcallback"))?(e.execCallback("save_oncancelcallback",e),void 0):(e.setContent(n),e.undoManager.clear(),e.nodeChanged(),void 0)}function r(){var t=this;e.on("nodeChange",function(){t.disabled(!e.isDirty())})}e.addCommand("mceSave",t),e.addCommand("mceCancel",n),e.addButton("save",{text:"Save",cmd:"mceSave",disabled:!0,onPostRender:r}),e.addButton("cancel",{text:"Cancel",icon:!1,cmd:"mceCancel",disabled:!0,onPostRender:r}),e.addShortcut("ctrl+s","","mceSave")});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/searchreplace/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/searchreplace/plugin.min.js new file mode 100644 index 0000000..02a0069 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/searchreplace/plugin.min.js @@ -0,0 +1 @@ +(function(){function e(e,t,n,r,i){function o(e,t){if(t=t||0,!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var n=e.index;if(t>0){var r=e[t];if(!r)throw"Invalid capture group";n+=e[0].indexOf(r),e[0]=r}return[n,n+e[0].length,[e[0]]]}function a(e){var t;if(3===e.nodeType)return e.data;if(m[e.nodeName])return"";if(t="",(f[e.nodeName]||p[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=a(e);while(e=e.nextSibling);return t}function s(e,t,n){var r,i,o,a,s=[],l=0,c=e,u=t.shift(),d=0;e:for(;;){if((f[c.nodeName]||p[c.nodeName])&&l++,3===c.nodeType&&(!i&&c.length+l>=u[1]?(i=c,a=u[1]-l):r&&s.push(c),!r&&c.length+l>u[0]&&(r=c,o=u[0]-l),l+=c.length),r&&i){if(c=n({startNode:r,startNodeIndex:o,endNode:i,endNodeIndex:a,innerNodes:s,match:u[2],matchIndex:d}),l-=i.length-a,r=null,i=null,s=[],u=t.shift(),d++,!u)break}else{if(!m[c.nodeName]&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function l(e){var t;if("function"!=typeof e){var n=e.nodeType?e:d.createElement(e);t=function(e,t){var r=n.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(d.createTextNode(e)),r}}else t=e;return function(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex;if(o===a){var l=o;i=l.parentNode,e.startNodeIndex>0&&(n=d.createTextNode(l.data.substring(0,e.startNodeIndex)),i.insertBefore(n,l));var c=t(e.match[0],s);return i.insertBefore(c,l),e.endNodeIndex<l.length&&(r=d.createTextNode(l.data.substring(e.endNodeIndex)),i.insertBefore(r,l)),l.parentNode.removeChild(l),c}n=d.createTextNode(o.data.substring(0,e.startNodeIndex)),r=d.createTextNode(a.data.substring(e.endNodeIndex));for(var u=t(o.data.substring(e.startNodeIndex),s),f=[],m=0,p=e.innerNodes.length;p>m;++m){var h=e.innerNodes[m],g=t(h.data,s);h.parentNode.replaceChild(g,h),f.push(g)}var v=t(a.data.substring(0,e.endNodeIndex),s);return i=o.parentNode,i.insertBefore(n,o),i.insertBefore(u,o),i.removeChild(o),i=a.parentNode,i.insertBefore(v,a),i.insertBefore(r,a),i.removeChild(a),v}}var c,u,d,f,m,p,h=[],g=0;if(d=t.ownerDocument,f=i.getBlockElements(),m=i.getWhiteSpaceElements(),p=i.getShortEndedElements(),u=a(t)){if(e.global)for(;c=e.exec(u);)h.push(o(c,r));else c=u.match(e),h.push(o(c,r));return h.length&&(g=h.length,s(t,h,l(n))),g}}function t(t){function n(){var e=tinymce.ui.Factory.create({type:"window",layout:"flex",pack:"center",align:"center",onClose:function(){t.focus(),a=!1,s.unmarkAllMatches()},buttons:[{text:"Find",onclick:function(){e.find("form")[0].submit()}},{text:"Replace",disabled:!0,onclick:function(){s.replace(e.find("#replace").value())||e.statusbar.items().slice(1).disabled(!0)}},{text:"Replace all",disabled:!0,onclick:function(){s.replaceAll(e.find("#replace").value()),e.statusbar.items().slice(1).disabled(!0)}},{type:"spacer",flex:1},{text:"Prev",disabled:!0,onclick:function(){s.prev()}},{text:"Next",disabled:!0,onclick:function(){s.next()}}],title:"Find and replace",items:{type:"form",padding:20,labelGap:30,spacing:10,onsubmit:function(t){var n,r,i,o,a;return t.preventDefault(),i=e.find("#case").checked(),a=e.find("#words").checked(),o=e.find("#find").value(),o.length?(o=o.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),o=a?"\\b"+o+"\\b":o,r=RegExp(o,i?"g":"gi"),n=s.markAllMatches(r),n?s.first():tinymce.ui.MessageBox.alert("Could not find the specified string."),e.statusbar.items().slice(1).disabled(0===n),void 0):(s.unmarkAllMatches(),e.statusbar.items().slice(1).disabled(!0),void 0)},items:[{type:"textbox",name:"find",size:40,label:"Find",value:t.selection.getNode().src},{type:"textbox",name:"replace",size:40,label:"Replace with"},{type:"checkbox",name:"case",text:"Match case",label:" "},{type:"checkbox",name:"words",text:"Whole words",label:" "}]}}).renderTo().reflow();a=!0}function r(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function i(e,n){function r(){var r,a;for(r=n?t.getBody()[e?"firstChild":"lastChild"]:s[e?"endContainer":"startContainer"],a=new tinymce.dom.TreeWalker(r,t.getBody());r=a.current();){if(1==r.nodeType&&"SPAN"==r.nodeName&&null!==r.getAttribute("data-mce-index"))for(l=r.getAttribute("data-mce-index"),i=r.firstChild;r=a.current();){if(1==r.nodeType&&"SPAN"==r.nodeName&&null!==r.getAttribute("data-mce-index")){if(r.getAttribute("data-mce-index")!==l)return;o=r.firstChild}a[e?"next":"prev"]()}a[e?"next":"prev"]()}}var i,o,a=t.selection,s=a.getRng(!0),l=-1;return e=e!==!1,r(),i&&o&&(t.focus(),e?(s.setStart(i,0),s.setEnd(o,o.length)):(s.setStart(o,0),s.setEnd(i,i.length)),a.scrollIntoView(i.parentNode),a.setRng(s)),l}function o(e){e.parentNode.removeChild(e)}var a,s=this,l=-1;s.init=function(e){e.addMenuItem("searchreplace",{text:"Find and replace",shortcut:"Ctrl+F",onclick:n,separator:"before",context:"edit"}),e.addButton("searchreplace",{tooltip:"Find and replace",shortcut:"Ctrl+F",onclick:n}),e.shortcuts.add("Ctrl+F","",n)},s.markAllMatches=function(n){var r,i;return i=t.dom.create("span",{"class":"mce-match-marker","data-mce-bogus":1}),r=t.getBody(),s.unmarkAllMatches(r),e(n,r,i,!1,t.schema)},s.first=function(){return l=i(!0,!0),-1!==l},s.next=function(){return l=i(!0),-1!==l},s.prev=function(){return l=i(!1),-1!==l},s.replace=function(e,n,a){var s,c,u,d,f,m;if(-1===l&&(l=i(n)),m=i(n),u=t.getBody(),c=tinymce.toArray(u.getElementsByTagName("span")),c.length)for(s=0;c.length>s;s++)if(d=f=c[s].getAttribute("data-mce-index"),a||d===l)for(e.length?(c[s].firstChild.nodeValue=e,r(c[s])):o(c[s]);c[++s];){if(d=c[s].getAttribute("data-mce-index"),d!==f){s--;break}o(c[s])}return-1==m&&(m=i(n,!0)),l=m,a&&t.selection.setCursorLocation(t.getBody(),0),t.undoManager.add(),-1!==l},s.replaceAll=function(e){s.replace(e,!0,!0)},s.unmarkAllMatches=function(){var e,n,i;for(i=t.getBody(),n=i.getElementsByTagName("span"),e=n.length;e--;)i=n[e],i.getAttribute("data-mce-index")&&r(i)},t.on("beforeaddundo keydown",function(e){return a?(e.preventDefault(),!1):void 0})}tinymce.PluginManager.add("searchreplace",t)})();
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js new file mode 100644 index 0000000..95515d0 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/spellchecker/plugin.min.js @@ -0,0 +1 @@ +(function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;e.length>i;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;r.length>i;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;n.length>r;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;a.length-1>l;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/spellcheckerplugin/DomTextMatcher",c="tinymce/spellcheckerplugin/Plugin",u="tinymce/PluginManager",d="tinymce/util/Tools",f="tinymce/ui/Menu",p="tinymce/dom/DOMUtils",m="tinymce/util/JSONRequest";r(l,[],function(){return function(e,t,n){function r(e){if(!e[0])throw"findAndReplaceDOMText cannot handle zero-length matches";var t=e.index;return[t,t+e[0].length,[e[0]]]}function i(e){var t;if(3===e.nodeType)return e.data;if(g[e.nodeName])return"";if(t="",(h[e.nodeName]||v[e.nodeName])&&(t+="\n"),e=e.firstChild)do t+=i(e);while(e=e.nextSibling);return t}function o(e,t,n){var r,i,o,a,s=[],l=0,c=e,u=t.shift(),d=0;e:for(;;){if((h[c.nodeName]||v[c.nodeName])&&l++,3===c.nodeType&&(!i&&c.length+l>=u[1]?(i=c,a=u[1]-l):r&&s.push(c),!r&&c.length+l>u[0]&&(r=c,o=u[0]-l),l+=c.length),r&&i){if(c=n({startNode:r,startNodeIndex:o,endNode:i,endNodeIndex:a,innerNodes:s,match:u[2],matchIndex:d}),l-=i.length-a,r=null,i=null,s=[],u=t.shift(),d++,!u)break}else{if(!g[c.nodeName]&&c.firstChild){c=c.firstChild;continue}if(c.nextSibling){c=c.nextSibling;continue}}for(;;){if(c.nextSibling){c=c.nextSibling;break}if(c.parentNode===e)break e;c=c.parentNode}}}function a(e){var t;if("function"!=typeof e){var n=e.nodeType?e:m.createElement(e);t=function(e,t){var r=n.cloneNode(!1);return r.setAttribute("data-mce-index",t),e&&r.appendChild(m.createTextNode(e)),r}}else t=e;return function r(e){var n,r,i,o=e.startNode,a=e.endNode,s=e.matchIndex;if(o===a){var l=o;i=l.parentNode,e.startNodeIndex>0&&(n=m.createTextNode(l.data.substring(0,e.startNodeIndex)),i.insertBefore(n,l));var c=t(e.match[0],s);return i.insertBefore(c,l),e.endNodeIndex<l.length&&(r=m.createTextNode(l.data.substring(e.endNodeIndex)),i.insertBefore(r,l)),l.parentNode.removeChild(l),c}n=m.createTextNode(o.data.substring(0,e.startNodeIndex)),r=m.createTextNode(a.data.substring(e.endNodeIndex));for(var u=t(o.data.substring(e.startNodeIndex),s),d=[],f=0,p=e.innerNodes.length;p>f;++f){var h=e.innerNodes[f],g=t(h.data,s);h.parentNode.replaceChild(g,h),d.push(g)}var v=t(a.data.substring(0,e.endNodeIndex),s);return i=o.parentNode,i.insertBefore(n,o),i.insertBefore(u,o),i.removeChild(o),i=a.parentNode,i.insertBefore(v,a),i.insertBefore(r,a),i.removeChild(a),v}}function s(e){var t=[];return l(function(n,r){e(n,r)&&t.push(n)}),d=t,this}function l(e){for(var t=0,n=d.length;n>t&&e(d[t],t)!==!1;t++);return this}function c(e){return d.length&&(p=d.length,o(t,d,a(e))),this}var u,d=[],f,p=0,m,h,g,v;if(m=t.ownerDocument,h=n.getBlockElements(),g=n.getWhiteSpaceElements(),v=n.getShortEndedElements(),f=i(t),f&&e.global)for(;u=e.exec(f);)d.push(r(u));return{text:f,count:p,matches:d,each:l,filter:s,mark:c}}}),r(c,[l,u,d,f,p,m],function(e,n,r,i,o,a){n.add("spellchecker",function(n){function s(e){for(var t in e)return!1;return!0}function l(e,t){var a=[],s=h[t];r.each(s,function(e){a.push({text:e,onclick:function(){n.insertContent(e),u()}})}),a.push.apply(a,[{text:"-"},{text:"Ignore",onclick:function(){f(e,t)}},{text:"Ignore all",onclick:function(){f(e,t,!0)}},{text:"Finish",onclick:p}]);var l=new i({items:a,context:"contextmenu",onhide:function(){l.remove()}});l.renderTo(document.body);var c=o.DOM.getPos(n.getContentAreaContainer()),d=n.dom.getPos(e);c.x+=d.x,c.y+=d.y,l.moveTo(c.x,c.y+e.offsetHeight)}function c(){function r(e){return n.setProgressState(!1),s(e)?(n.windowManager.alert("No misspellings found"),t):(h=e,i.filter(function(t){return!!e[t[2][0]]}).mark(n.dom.create("span",{"class":"mce-spellchecker-word","data-mce-bogus":1})),i=null,n.fire("SpellcheckStart"),t)}var i,o=[],l={};return g?(p(),t):(g=!0,i=new e(/\w+/g,n.getBody(),n.schema).each(function(e){l[e[2][0]]||(o.push(e[2][0]),l[e[2][0]]=!0)}),n.settings.spellcheck_callback=function(e,t,r){a.sendRPC({url:n.settings.spellchecker_rpc_url,method:e,params:{lang:"en",words:t},success:function(e){r(e)},error:function(e,t){n.windowManager.alert("Error: "+e+"\nData:"+t.responseText),n.setProgressState(!1),i=null}})},n.setProgressState(!0),n.settings.spellcheck_callback("spellcheck",o,r),t)}function u(){n.dom.select("span.mce-spellchecker-word").length||p()}function d(e){var t=e.parentNode;t.insertBefore(e.firstChild,e),e.parentNode.removeChild(e)}function f(e,t,i){i?r.each(n.dom.select("span.mce-spellchecker-word"),function(e){var n=e.innerText||e.textContent;n==t&&d(e)}):d(e),u()}function p(){var e,t,r;for(g=!1,r=n.getBody(),t=r.getElementsByTagName("span"),e=t.length;e--;)r=t[e],r.getAttribute("data-mce-index")&&d(r);n.fire("SpellcheckEnd")}function m(e){var t,r,i,o=-1,a,s;for(e=""+e,t=n.getBody().getElementsByTagName("span"),r=0;t.length>r&&(i=t[r],"mce-spellchecker-word"!=i.className||(o=i.getAttribute("data-mce-index"),o===e&&(o=e,a||(a=i.firstChild),s=i.firstChild),o===e||!s));r++);var l=n.dom.createRng();return l.setStart(a,0),l.setEnd(s,s.length),n.selection.setRng(l),l}var h,g;n.on("click",function(e){if("mce-spellchecker-word"==e.target.className){e.preventDefault();var t=m(e.target.getAttribute("data-mce-index"));l(e.target,""+t)}}),n.addMenuItem("spellchecker",{text:"Spellcheck",context:"tools",onclick:c,selectable:!0,onPostRender:function(){var e=this;n.on("SpellcheckStart SpellcheckEnd",function(){e.active(g)})}}),n.addButton("spellchecker",{tooltip:"Spellcheck",onclick:c,onPostRender:function(){var e=this;n.on("SpellcheckStart SpellcheckEnd",function(){e.active(g)})}})})}),a([l,c])})(this);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/tabfocus/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/tabfocus/plugin.min.js new file mode 100644 index 0000000..fee260c --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/tabfocus/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("tabfocus",function(e){function t(e){9===e.keyCode&&e.preventDefault()}function n(t){function n(t){function n(e){return"BODY"===e.nodeName||"hidden"!=e.type&&"none"!=e.style.display&&"hidden"!=e.style.visibility&&n(e.parentNode)}function o(e){return e.attributes.tabIndex.specified||"INPUT"==e.nodeName||"TEXTAREA"==e.nodeName}function l(e){return!o(e)&&"-1"!=e.getAttribute("tabindex")&&n(e)}if(s=r.select(":input:enabled,*[tabindex]:not(iframe)"),i(s,function(t,n){return t.id==e.id?(a=n,!1):void 0}),t>0){for(c=a+1;s.length>c;c++)if(l(s[c]))return s[c]}else for(c=a-1;c>=0;c--)if(l(s[c]))return s[c];return null}var a,s,l,c;9===t.keyCode&&(l=o(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next"))),1==l.length&&(l[1]=l[0],l[0]=":prev"),s=t.shiftKey?":prev"==l[0]?n(-1):r.get(l[0]):":next"==l[1]?n(1):r.get(l[1]),s&&(s.id&&(e=tinymce.get(s.id||s.name))?e.focus():window.setTimeout(function(){tinymce.Env.webkit||window.focus(),s.focus()},10),t.preventDefault()))}var r=tinymce.DOM,i=tinymce.each,o=tinymce.explode;e.on("keyup",t),tinymce.Env.gecko?e.on("keypress keydown",n):e.on("keydown",n)});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/table/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/table/plugin.min.js new file mode 100644 index 0000000..e70c2c2 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/table/plugin.min.js @@ -0,0 +1 @@ +(function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;e.length>i;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;r.length>i;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;n.length>r;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;a.length-1>l;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/tableplugin/TableGrid",c="tinymce/util/Tools",u="tinymce/Env",d="tinymce/tableplugin/Quirks",f="tinymce/util/VK",p="tinymce/tableplugin/CellSelection",m="tinymce/dom/TreeWalker",h="tinymce/tableplugin/Plugin",g="tinymce/PluginManager";r(l,[c,u],function(e,n){function r(e,t){return parseInt(e.getAttribute(t)||1,10)}var i=e.each;return function(o,a){function s(){var e=0;A=[],i(["thead","tbody","tfoot"],function(t){var n=D.select("> "+t+" tr",a);i(n,function(n,o){o+=e,i(D.select("> td, > th",n),function(e,n){var i,a,s,l;if(A[o])for(;A[o][n];)n++;for(s=r(e,"rowspan"),l=r(e,"colspan"),a=o;o+s>a;a++)for(A[a]||(A[a]=[]),i=n;n+l>i;i++)A[a][i]={part:t,real:a==o&&i==n,elm:e,rowspan:s,colspan:l}})}),e+=n.length})}function l(e,t){return e=e.cloneNode(t),e.removeAttribute("id"),e}function c(e,n){var r;return r=A[n],r?r[e]:t}function u(e,t,n){e&&(n=parseInt(n,10),1===n?e.removeAttribute(t,1):e.setAttribute(t,n,1))}function d(e){return e&&(D.hasClass(e.elm,"mce-item-selected")||e==L)}function f(){var e=[];return i(a.rows,function(n){i(n.cells,function(r){return D.hasClass(r,"mce-item-selected")||r==L.elm?(e.push(n),!1):t})}),e}function p(){var e=D.createRng();e.setStartAfter(a),e.setEndAfter(a),o.setRng(e),D.remove(a)}function m(r){var o;return e.walk(r,function(e){var a;return 3==e.nodeType?(i(D.getParents(e.parentNode,null,r).reverse(),function(e){e=l(e,!1),o?a&&a.appendChild(e):o=a=e,a=e}),a&&(a.innerHTML=n.ie?" ":'<br data-mce-bogus="1" />'),!1):t},"childNodes"),r=l(r,!1),u(r,"rowSpan",1),u(r,"colSpan",1),o?r.appendChild(o):n.ie||(r.innerHTML='<br data-mce-bogus="1" />'),r}function h(){var e=D.createRng(),n;return i(D.select("tr",a),function(e){0===e.cells.length&&D.remove(e)}),0===D.select("tr",a).length?(e.setStartAfter(a),e.setEndAfter(a),o.setRng(e),D.remove(a),t):(i(D.select("thead,tbody,tfoot",a),function(e){0===e.rows.length&&D.remove(e)}),s(),n=A[Math.min(A.length-1,B.y)],n&&(o.select(n[Math.min(n.length-1,B.x)].elm,!0),o.collapse(!0)),t)}function g(e,t,n,r){var i,o,a,s,l;for(i=A[t][e].elm.parentNode,a=1;n>=a;a++)if(i=D.getNext(i,"tr")){for(o=e;o>=0;o--)if(l=A[t+a][o].elm,l.parentNode==i){for(s=1;r>=s;s++)D.insertAfter(m(l),l);break}if(-1==o)for(s=1;r>=s;s++)i.insertBefore(m(i.cells[0]),i.cells[0])}}function v(){i(A,function(e,t){i(e,function(e,n){var i,o,a;if(d(e)&&(e=e.elm,i=r(e,"colspan"),o=r(e,"rowspan"),i>1||o>1)){for(u(e,"rowSpan",1),u(e,"colSpan",1),a=0;i-1>a;a++)D.insertAfter(m(e),e);g(n,t,o-1,i)}})})}function y(t,n,r){var o,a,l,f,p,m,g,y,b,C,x;if(t?(o=S(t),a=o.x,l=o.y,f=a+(n-1),p=l+(r-1)):(B=M=null,i(A,function(e,t){i(e,function(e,n){d(e)&&(B||(B={x:n,y:t}),M={x:n,y:t})})}),a=B.x,l=B.y,f=M.x,p=M.y),y=c(a,l),b=c(f,p),y&&b&&y.part==b.part){for(v(),s(),y=c(a,l).elm,u(y,"colSpan",f-a+1),u(y,"rowSpan",p-l+1),g=l;p>=g;g++)for(m=a;f>=m;m++)A[g]&&A[g][m]&&(t=A[g][m].elm,t!=y&&(C=e.grep(t.childNodes),i(C,function(e){y.appendChild(e)}),C.length&&(C=e.grep(y.childNodes),x=0,i(C,function(e){"BR"==e.nodeName&&D.getAttrib(e,"data-mce-bogus")&&x++<C.length-1&&y.removeChild(e)})),D.remove(t)));h()}}function b(e){var n,o,a,s,c,f,p,h,g;for(i(A,function(r,o){return i(r,function(r){return d(r)&&(r=r.elm,c=r.parentNode,f=l(c,!1),n=o,e)?!1:t}),e?!n:t}),s=0;A[0].length>s;s++)if(A[n][s]&&(o=A[n][s].elm,o!=a)){if(e){if(n>0&&A[n-1][s]&&(h=A[n-1][s].elm,g=r(h,"rowSpan"),g>1)){u(h,"rowSpan",g+1);continue}}else if(g=r(o,"rowspan"),g>1){u(o,"rowSpan",g+1);continue}p=m(o),u(p,"colSpan",o.colSpan),f.appendChild(p),a=o}f.hasChildNodes()&&(e?c.parentNode.insertBefore(f,c):D.insertAfter(f,c))}function C(e){var n,o;i(A,function(r){return i(r,function(r,i){return d(r)&&(n=i,e)?!1:t}),e?!n:t}),i(A,function(t,i){var a,s,l;t[n]&&(a=t[n].elm,a!=o&&(l=r(a,"colspan"),s=r(a,"rowspan"),1==l?e?(a.parentNode.insertBefore(m(a),a),g(n,i,s-1,l)):(D.insertAfter(m(a),a),g(n,i,s-1,l)):u(a,"colSpan",a.colSpan+1),o=a))})}function x(){var t=[];i(A,function(n){i(n,function(n,o){d(n)&&-1===e.inArray(t,o)&&(i(A,function(e){var t=e[o].elm,n;n=r(t,"colSpan"),n>1?u(t,"colSpan",n-1):D.remove(t)}),t.push(o))})}),h()}function w(){function e(e){var t,n,o;t=D.getNext(e,"tr"),i(e.cells,function(e){var t=r(e,"rowSpan");t>1&&(u(e,"rowSpan",t-1),n=S(e),g(n.x,n.y,1,1))}),n=S(e.cells[0]),i(A[n.y],function(e){var t;e=e.elm,e!=o&&(t=r(e,"rowSpan"),1>=t?D.remove(e):u(e,"rowSpan",t-1),o=e)})}var t;t=f(),i(t.reverse(),function(t){e(t)}),h()}function _(){var e=f();return D.remove(e),h(),e}function N(){var e=f();return i(e,function(t,n){e[n]=l(t,!0)}),e}function E(e,n){var r=f(),o=r[n?0:r.length-1],a=o.cells.length;e&&(i(A,function(e){var n;return a=0,i(e,function(e){e.real&&(a+=e.colspan),e.elm.parentNode==o&&(n=1)}),n?!1:t}),n||e.reverse(),i(e,function(e){var t,r=e.cells.length,i;for(t=0;r>t;t++)i=e.cells[t],u(i,"colSpan",1),u(i,"rowSpan",1);for(t=r;a>t;t++)e.appendChild(m(e.cells[r-1]));for(t=a;r>t;t++)D.remove(e.cells[t]);n?o.parentNode.insertBefore(e,o):D.insertAfter(e,o)}),D.removeClass(D.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"))}function S(e){var n;return i(A,function(r,o){return i(r,function(r,i){return r.elm==e?(n={x:i,y:o},!1):t}),!n}),n}function k(e){B=S(e)}function T(){var e,t;return e=t=0,i(A,function(n,r){i(n,function(n,i){var o,a;d(n)&&(n=A[r][i],i>e&&(e=i),r>t&&(t=r),n.real&&(o=n.colspan-1,a=n.rowspan-1,o&&i+o>e&&(e=i+o),a&&r+a>t&&(t=r+a)))})}),{x:e,y:t}}function R(e){var t,n,r,i,o,a,s,l,c,u;if(M=S(e),B&&M){for(t=Math.min(B.x,M.x),n=Math.min(B.y,M.y),r=Math.max(B.x,M.x),i=Math.max(B.y,M.y),o=r,a=i,u=n;a>=u;u++)e=A[u][t],e.real||t>t-(e.colspan-1)&&(t-=e.colspan-1);for(c=t;o>=c;c++)e=A[n][c],e.real||n>n-(e.rowspan-1)&&(n-=e.rowspan-1);for(u=n;i>=u;u++)for(c=t;r>=c;c++)e=A[u][c],e.real&&(s=e.colspan-1,l=e.rowspan-1,s&&c+s>o&&(o=c+s),l&&u+l>a&&(a=u+l));for(D.removeClass(D.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),u=n;a>=u;u++)for(c=t;o>=c;c++)A[u][c]&&D.addClass(A[u][c].elm,"mce-item-selected")}}var A,B,M,L,D=o.dom;a=a||D.getParent(o.getStart(),"table"),s(),L=D.getParent(o.getStart(),"th,td"),L&&(B=S(L),M=T(),L=c(B.x,B.y)),e.extend(this,{deleteTable:p,split:v,merge:y,insertRow:b,insertCol:C,deleteCols:x,deleteRows:w,cutRows:_,copyRows:N,pasteRows:E,getPos:S,setStartCell:k,setEndCell:R})}}),r(d,[f,u,c],function(e,n,r){function i(e,t){return parseInt(e.getAttribute(t)||1,10)}var o=r.each;return function(r){function a(){function n(n){function a(e,t){var i=e?"previousSibling":"nextSibling",o=r.dom.getParent(t,"tr"),a=o[i];if(a)return v(r,t,a,e),n.preventDefault(),!0;var l=r.dom.getParent(o,"table"),d=o.parentNode,f=d.nodeName.toLowerCase();if("tbody"===f||f===(e?"tfoot":"thead")){var p=s(e,l,d,"tbody");if(null!==p)return c(e,p,t)}return u(e,o,i,l)}function s(e,t,n,i){var o=r.dom.select(">"+i,t),a=o.indexOf(n);if(e&&0===a||!e&&a===o.length-1)return l(e,t);if(-1===a){var s="thead"===n.tagName.toLowerCase()?0:o.length-1;return o[s]}return o[a+(e?-1:1)]}function l(e,t){var n=e?"thead":"tfoot",i=r.dom.select(">"+n,t);return 0!==i.length?i[0]:null}function c(e,t,i){var o=d(t,e);return o&&v(r,i,o,e),n.preventDefault(),!0}function u(e,t,i,o){var s=o[i];if(s)return f(s),!0;var l=r.dom.getParent(o,"td,th");if(l)return a(e,l,n);var c=d(t,!e);return f(c),n.preventDefault(),!1}function d(e,t){var n=e&&e[t?"lastChild":"firstChild"];return n&&"BR"===n.nodeName?r.dom.getParent(n,"td,th"):n}function f(e){r.selection.setCursorLocation(e,0)}function p(){return C==e.UP||C==e.DOWN}function m(e){var t=e.selection.getNode(),n=e.dom.getParent(t,"tr");return null!==n}function h(e){for(var t=0,n=e;n.previousSibling;)n=n.previousSibling,t+=i(n,"colspan");return t}function g(e,n){var r=0,a=0;return o(e.children,function(e,o){return r+=i(e,"colspan"),a=o,r>n?!1:t}),a}function v(e,t,n,i){var o=h(r.dom.getParent(t,"td,th")),a=g(n,o),s=n.childNodes[a],l=d(s,i);f(l||s)}function y(e){var t=r.selection.getNode(),n=r.dom.getParent(t,"td,th"),i=r.dom.getParent(e,"td,th");return n&&n!==i&&b(n,i)}function b(e,t){return r.dom.getParent(e,"TABLE")===r.dom.getParent(t,"TABLE")}var C=n.keyCode;if(p()&&m(r)){var x=r.selection.getNode();setTimeout(function(){y(x)&&a(!n.shiftKey&&C===e.UP,x,n)},0)}}r.on("KeyDown",function(e){n(e)})}function s(){function e(e,t){var n=t.ownerDocument,r=n.createRange(),i;return r.setStartBefore(t),r.setEnd(e.endContainer,e.endOffset),i=n.createElement("body"),i.appendChild(r.cloneContents()),0===i.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length}r.on("KeyDown",function(t){var n,i,o=r.dom;(37==t.keyCode||38==t.keyCode)&&(n=r.selection.getRng(),i=o.getParent(n.startContainer,"table"),i&&r.getBody().firstChild==i&&e(n,i)&&(n=o.createRng(),n.setStartBefore(i),n.setEndBefore(i),r.selection.setRng(n),t.preventDefault()))})}function l(){r.on("KeyDown SetContent VisualAid",function(){var e;for(e=r.getBody().lastChild;e;e=e.previousSibling)if(3==e.nodeType){if(e.nodeValue.length>0)break}else if(1==e.nodeType&&!e.getAttribute("data-mce-bogus"))break;e&&"TABLE"==e.nodeName&&(r.settings.forced_root_block?r.dom.add(r.getBody(),r.settings.forced_root_block,null,n.ie?" ":'<br data-mce-bogus="1" />'):r.dom.add(r.getBody(),"br",{"data-mce-bogus":"1"}))}),r.on("PreProcess",function(e){var t=e.node.lastChild;t&&("BR"==t.nodeName||1==t.childNodes.length&&("BR"==t.firstChild.nodeName||"\u00a0"==t.firstChild.nodeValue))&&t.previousSibling&&"TABLE"==t.previousSibling.nodeName&&r.dom.remove(t)})}function c(){function e(e,t,n,r){var i=3,o=e.dom.getParent(t.startContainer,"TABLE"),a,s,l;return o&&(a=o.parentNode),s=t.startContainer.nodeType==i&&0===t.startOffset&&0===t.endOffset&&r&&("TR"==n.nodeName||n==a),l=("TD"==n.nodeName||"TH"==n.nodeName)&&!r,s||l}function t(){var t=r.selection.getRng(),n=r.selection.getNode(),i=r.dom.getParent(t.startContainer,"TD,TH");if(e(r,t,n,i)){i||(i=n);for(var o=i.lastChild;o.lastChild;)o=o.lastChild;t.setEnd(o,o.nodeValue.length),r.selection.setRng(t)}}r.on("KeyDown",function(){t()}),r.on("MouseDown",function(e){2!=e.button&&t()})}n.webkit&&(a(),c()),n.gecko&&(s(),l())}}),r(p,[l,m,c],function(e,n,r){return function(i){function o(){i.getBody().style.webkitUserSelect="",u&&(i.dom.removeClass(i.dom.select("td.mce-item-selected,th.mce-item-selected"),"mce-item-selected"),u=!1)}var a=i.dom,s,l,c,u=!0;return i.on("MouseDown",function(e){2!=e.button&&(o(),l=a.getParent(e.target,"td,th"),c=a.getParent(l,"table"))}),a.bind(i.getDoc(),"mouseover",function(t){var n,r,o=t.target;if(l&&(s||o!=l)&&("TD"==o.nodeName||"TH"==o.nodeName)){r=a.getParent(o,"table"),r==c&&(s||(s=new e(i.selection,r),s.setStartCell(l),i.getBody().style.webkitUserSelect="none"),s.setEndCell(o),u=!0),n=i.selection.getSel();try{n.removeAllRanges?n.removeAllRanges():n.empty()}catch(d){}t.preventDefault()}}),i.on("MouseUp",function(){function e(e,i){var a=new n(e,e);do{if(3==e.nodeType&&0!==r.trim(e.nodeValue).length)return i?o.setStart(e,0):o.setEnd(e,e.nodeValue.length),t;if("BR"==e.nodeName)return i?o.setStartBefore(e):o.setEndBefore(e),t}while(e=i?a.next():a.prev())}var o,u=i.selection,d,f,p,m,h;if(l){if(s&&(i.getBody().style.webkitUserSelect=""),d=a.select("td.mce-item-selected,th.mce-item-selected"),d.length>0){o=a.createRng(),p=d[0],h=d[d.length-1],o.setStartBefore(p),o.setEndAfter(p),e(p,1),f=new n(p,a.getParent(d[0],"table"));do if("TD"==p.nodeName||"TH"==p.nodeName){if(!a.hasClass(p,"mce-item-selected"))break;m=p}while(p=f.next());e(m),u.setRng(o)}i.nodeChanged(),l=s=c=null}}),i.on("KeyUp",function(){o()}),{clear:o}}}),r(h,[l,d,p,c,m,u,g],function(e,n,r,i,o,a,s){function l(i){function o(e){return e?e.replace(/px$/,""):""}function s(e){return/^[0-9]+$/.test(e)&&(e+="px"),e}function l(){var e=i.dom,t,n;t=i.dom.getParent(i.selection.getStart(),"table"),n={width:o(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:o(e.getStyle(t,"height")||e.getAttrib(t,"height")),cellspacing:e.getAttrib(t,"cellspacing"),cellpadding:e.getAttrib(t,"cellpadding"),border:e.getAttrib(t,"border"),caption:!!e.select("caption",t)[0]},c("left center right".split(" "),function(e){i.formatter.matchNode(t,"align"+e)&&(n.align=e)}),i.windowManager.open({title:"Table properties",items:{type:"form",layout:"grid",columns:2,data:n,defaults:{type:"textbox",maxWidth:50},items:[{label:"Cols",name:"cols",disabled:!0},{label:"Rows",name:"rows",disabled:!0},{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell spacing",name:"cellspacing"},{label:"Cell padding",name:"cellpadding"},{label:"Border",name:"border"},{label:"Caption",name:"caption",type:"checkbox"},{label:"Alignment",minWidth:90,name:"align",type:"listbox",text:"None",maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var n=this.toJSON(),r;i.undoManager.transact(function(){i.dom.setAttribs(t,{cellspacing:n.cellspacing,cellpadding:n.cellpadding,border:n.border}),i.dom.setStyles(t,{width:s(n.width),height:s(n.height)}),r=e.select("caption",t)[0],r&&!n.caption&&e.remove(r),!r&&n.caption&&(r=e.create("caption"),a.ie||(r.innerHTML='<br data-mce-bogus="1"/>'),t.insertBefore(r,t.firstChild)),n.align?i.formatter.apply("align"+n.align,{},t):c("left center right".split(" "),function(e){i.formatter.remove("align"+e,{},t)}),i.focus(),i.addVisual()})}})}function u(e,t){i.windowManager.open({title:"Merge cells",body:[{label:"Cols",name:"cols",type:"textbox",size:10},{label:"Rows",name:"rows",type:"textbox",size:10}],onsubmit:function(){var n=this.toJSON();i.undoManager.transact(function(){e.merge(t,n.cols,n.rows)})}})}function d(){var e=i.dom,t,n,r=[];r=i.dom.select("td.mce-item-selected,th.mce-item-selected"),t=i.dom.getParent(i.selection.getStart(),"td,th"),!r.length&&t&&r.push(t),t=t||r[0],n={width:o(e.getStyle(t,"width")||e.getAttrib(t,"width")),height:o(e.getStyle(t,"height")||e.getAttrib(t,"height")),scope:e.getAttrib(t,"scope")},n.type=t.nodeName.toLowerCase(),c("left center right".split(" "),function(e){i.formatter.matchNode(t,"align"+e)&&(n.align=e)}),i.windowManager.open({title:"Cell properties",items:{type:"form",data:n,layout:"grid",columns:2,defaults:{type:"textbox",maxWidth:50},items:[{label:"Width",name:"width"},{label:"Height",name:"height"},{label:"Cell type",name:"type",type:"listbox",text:"None",minWidth:90,maxWidth:null,menu:[{text:"Cell",value:"td"},{text:"Header cell",value:"th"}]},{label:"Scope",name:"scope",type:"listbox",text:"None",minWidth:90,maxWidth:null,menu:[{text:"None",value:""},{text:"Row",value:"row"},{text:"Column",value:"col"},{text:"Row group",value:"rowgroup"},{text:"Column group",value:"colgroup"}]},{label:"Alignment",name:"align",type:"listbox",text:"None",minWidth:90,maxWidth:null,values:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]}]},onsubmit:function(){var t=this.toJSON();i.undoManager.transact(function(){c(r,function(n){i.dom.setAttrib(n,"scope",t.scope),i.dom.setStyles(n,{width:s(t.width),height:s(t.height)}),t.type&&n.nodeName.toLowerCase()!=t.type&&(n=e.rename(n,t.type)),t.align?i.formatter.apply("align"+t.align,{},n):c("left center right".split(" "),function(e){i.formatter.remove("align"+e,{},n)})}),i.focus()})}})}function f(){var e=i.dom,n,r,a,l,u=[];n=i.dom.getParent(i.selection.getStart(),"table"),r=i.dom.getParent(i.selection.getStart(),"td,th"),c(n.rows,function(n){c(n.cells,function(i){return e.hasClass(i,"mce-item-selected")||i==r?(u.push(n),!1):t})}),a=u[0],l={height:o(e.getStyle(a,"height")||e.getAttrib(a,"height")),scope:e.getAttrib(a,"scope")},l.type=a.parentNode.nodeName.toLowerCase(),c("left center right".split(" "),function(e){i.formatter.matchNode(a,"align"+e)&&(l.align=e)}),i.windowManager.open({title:"Row properties",items:{type:"form",data:l,columns:2,defaults:{type:"textbox"},items:[{type:"listbox",name:"type",label:"Row type",text:"None",maxWidth:null,menu:[{text:"Header",value:"thead"},{text:"Body",value:"tbody"},{text:"Footer",value:"tfoot"}]},{type:"listbox",name:"align",label:"Alignment",text:"None",maxWidth:null,menu:[{text:"None",value:""},{text:"Left",value:"left"},{text:"Center",value:"center"},{text:"Right",value:"right"}]},{label:"Height",name:"height"}]},onsubmit:function(){var t=this.toJSON(),n,r,o;i.undoManager.transact(function(){c(u,function(a){i.dom.setAttrib(a,"scope",t.scope),i.dom.setStyles(a,{height:s(t.height)}),t.type!=a.parentNode.nodeName.toLowerCase()&&(n=e.getParent(a,"table"),r=a.parentNode,o=e.select(n,t.type)[0],o||(o=e.create(t.type),n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o)),o.insertBefore(a,o.firstChild),r.hasChildNodes()||e.remove(r)),t.align?i.formatter.apply("align"+t.align,{},a):c("left center right".split(" "),function(e){i.formatter.remove("align"+e,{},a)})}),i.focus()})}})}function p(e){return function(){i.execCommand(e)}}function m(e,t){var n,r,o;for(o="<table><tbody>",n=0;t>n;n++){for(o+="<tr>",r=0;e>r;r++)o+="<td>"+(a.ie?" ":"<br>")+"</td>";o+="</tr>"}o+="</tbody></table>",i.insertContent(o)}function h(e,t){function n(){e.disabled(!i.dom.getParent(i.selection.getStart(),t)),i.selection.selectorChanged(t,function(t){e.disabled(!t)})}i.initialized?n():i.on("init",n)}function g(){h(this,"table")}function v(){h(this,"td,th")}function y(){var e="";e='<table role="presentation" class="mce-grid mce-grid-border">';for(var t=0;10>t;t++){e+="<tr>";for(var n=0;10>n;n++)e+='<td><a href="#" data-mce-index="'+n+","+t+'"></a></td>';e+="</tr>"}return e+="</table>",e+='<div class="mce-text-center">0 x 0</div>'}var b,C,x=this;c([["table","Insert/edit table","mceInsertTable",g],["delete_table","Delete table","mceTableDelete",g],["delete_col","Delete column","mceTableDeleteCol",v],["delete_row","Delete row","mceTableDeleteRow",v],["col_after","Insert column after","mceTableInsertColAfter",v],["col_before","Insert column before","mceTableInsertColBefore",v],["row_after","Insert row after","mceTableInsertRowAfter",v],["row_before","Insert row before","mceTableInsertRowBefore",v],["row_props","Row properties","mceTableRowProps",v],["cell_props","Cell properties","mceTableCellProps",v],["split_cells","Split cells","mceTableSplitCells",v],["merge_cells","Merge cells","mceTableMergeCells",v]],function(e){i.addButton(e[0],{title:e[1],cmd:e[2],onPostRender:e[3]})}),i.addMenuItem("inserttable",{text:"Insert table",icon:"table",context:"table",onhide:function(){i.dom.removeClass(this.menu.items()[0].getEl().getElementsByTagName("a"),"mce-active")},menu:[{type:"container",html:y(),onmousemove:function(e){var t=e.target;if("A"==t.nodeName){var n=i.dom.getParent(t,"table"),r=t.getAttribute("data-mce-index");if(r!=this.lastPos){r=r.split(","),r[0]=parseInt(r[0],10),r[1]=parseInt(r[1],10);for(var o=0;10>o;o++)for(var a=0;10>a;a++)i.dom.toggleClass(n.rows[o].childNodes[a].firstChild,"mce-active",r[0]>=a&&r[1]>=o);n.nextSibling.innerHTML=r[0]+1+" x "+(r[1]+1),this.lastPos=r}}},onclick:function(e){"A"==e.target.nodeName&&this.lastPos&&(e.preventDefault(),m(this.lastPos[0]+1,this.lastPos[1]+1),this.parent().cancel())}}]}),i.addMenuItem("tableprops",{text:"Table properties",context:"table",onPostRender:g,onclick:l}),i.addMenuItem("deletetable",{text:"Delete table",context:"table",onPostRender:g,cmd:"mceTableDelete"}),i.addMenuItem("cell",{separator:"before",text:"Cell",context:"table",menu:[{text:"Cell properties",onclick:p("mceTableCellProps"),onPostRender:v},{text:"Merge cells",onclick:p("mceTableMergeCells"),onPostRender:v},{text:"Split cell",onclick:p("mceTableSplitCells"),onPostRender:v}]}),i.addMenuItem("row",{text:"Row",context:"table",menu:[{text:"Insert row before",onclick:p("mceTableInsertRowBefore"),onPostRender:v},{text:"Insert row after",onclick:p("mceTableInsertRowAfter"),onPostRender:v},{text:"Delete row",onclick:p("mceTableDeleteRow"),onPostRender:v},{text:"Row properties",onclick:p("mceTableRowProps"),onPostRender:v},{text:"-"},{text:"Cut row",onclick:p("mceTableCutRow"),onPostRender:v},{text:"Copy row",onclick:p("mceTableCopyRow"),onPostRender:v},{text:"Paste row before",onclick:p("mceTablePasteRowBefore"),onPostRender:v},{text:"Paste row after",onclick:p("mceTablePasteRowAfter"),onPostRender:v}]}),i.addMenuItem("column",{text:"Column",context:"table",menu:[{text:"Insert column before",onclick:p("mceTableInsertColBefore"),onPostRender:v},{text:"Insert column after",onclick:p("mceTableInsertColAfter"),onPostRender:v},{text:"Delete column",onclick:p("mceTableDeleteCol"),onPostRender:v}]}),a.isIE||i.on("click",function(e){e=e.target,"TABLE"===e.nodeName&&(i.selection.select(e),i.nodeChanged())}),x.quirks=new n(i),i.on("Init",function(){b=i.windowManager,x.cellSelection=new r(i)}),c({mceTableSplitCells:function(e){e.split()},mceTableMergeCells:function(e){var t,n,r;r=i.dom.getParent(i.selection.getStart(),"th,td"),r&&(t=r.rowSpan,n=r.colSpan),i.dom.select("td.mce-item-selected,th.mce-item-selected").length?e.merge():u(e,r)},mceTableInsertRowBefore:function(e){e.insertRow(!0)},mceTableInsertRowAfter:function(e){e.insertRow()},mceTableInsertColBefore:function(e){e.insertCol(!0)},mceTableInsertColAfter:function(e){e.insertCol()},mceTableDeleteCol:function(e){e.deleteCols()},mceTableDeleteRow:function(e){e.deleteRows()},mceTableCutRow:function(e){C=e.cutRows()},mceTableCopyRow:function(e){C=e.copyRows()},mceTablePasteRowBefore:function(e){e.pasteRows(C,!0)},mceTablePasteRowAfter:function(e){e.pasteRows(C)},mceTableDelete:function(e){e.deleteTable()}},function(t,n){i.addCommand(n,function(){var n=new e(i.selection);n&&(t(n),i.execCommand("mceRepaint"),x.cellSelection.clear())})}),c({mceInsertTable:function(){l()},mceTableRowProps:f,mceTableCellProps:d},function(e,t){i.addCommand(t,function(t,n){e(n)})})}var c=i.each;s.add("table",l)}),a([l,d,p,h])})(this);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/template/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/template/plugin.min.js new file mode 100644 index 0000000..33fb1ac --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/template/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("template",function(e){function t(){function t(e){var t=e.control.value();t.url?tinymce.util.XHR.send({url:t.url,success:function(e){r=e,n.find("iframe")[0].html(e)}}):(r=t.content,n.find("iframe")[0].html(t.content)),n.find("#description")[0].text(e.control.value().description)}var n,r,o=[];return e.settings.templates?(tinymce.each(e.settings.templates,function(e){o.push({text:e.title,value:{url:e.url,content:e.content,description:e.description}})}),n=e.windowManager.open({title:"Insert template",body:[{type:"listbox",name:"template",flex:0,label:"Templates",values:o,onselect:t},{type:"label",name:"description",label:"Description",text:""},{type:"iframe",minWidth:600,minHeight:400,border:1}],onsubmit:function(){i(!1,r)}}),void 0):(e.windowManager.alert("No templates defined"),void 0)}function n(t,n){function r(e,t){if(e=""+e,t>e.length)for(var n=0;t-e.length>n;n++)e="0"+e;return e}var i="Sun Mon Tue Wed Thu Fri Sat Sun".split(" "),o="Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sunday".split(" "),a="Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),s="January February March April May June July August September October November December".split(" ");return n=n||new Date,t=t.replace("%D","%m/%d/%Y"),t=t.replace("%r","%I:%M:%S %p"),t=t.replace("%Y",""+n.getFullYear()),t=t.replace("%y",""+n.getYear()),t=t.replace("%m",r(n.getMonth()+1,2)),t=t.replace("%d",r(n.getDate(),2)),t=t.replace("%H",""+r(n.getHours(),2)),t=t.replace("%M",""+r(n.getMinutes(),2)),t=t.replace("%S",""+r(n.getSeconds(),2)),t=t.replace("%I",""+((n.getHours()+11)%12+1)),t=t.replace("%p",""+(12>n.getHours()?"AM":"PM")),t=t.replace("%B",""+e.translate(s[n.getMonth()])),t=t.replace("%b",""+e.translate(a[n.getMonth()])),t=t.replace("%A",""+e.translate(o[n.getDay()])),t=t.replace("%a",""+e.translate(i[n.getDay()])),t=t.replace("%%","%")}function r(t){var n=e.dom,r=e.getParam("template_replace_values");o(n.select("*",t),function(e){o(r,function(t,i){n.hasClass(e,i)&&"function"==typeof r[i]&&r[i](e)})})}function i(t,i){function a(e,t){return RegExp("\\b"+t+"\\b","g").test(e.className)}var s,l,c=e.dom,u=e.selection.getContent();o(e.getParam("template_replace_values"),function(e,t){"function"!=typeof e&&(i=i.replace(RegExp("\\{\\$"+t+"\\}","g"),e))}),s=c.create("div",null,i),l=c.select(".mceTmpl",s),l&&l.length>0&&(s=c.create("div",null),s.appendChild(l[0].cloneNode(!0))),o(c.select("*",s),function(t){a(t,e.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_cdate_format",e.getLang("template.cdate_format")))),a(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format")))),a(t,e.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))&&(t.innerHTML=u)}),r(s),e.execCommand("mceInsertContent",!1,s.innerHTML),e.addVisual()}var o=tinymce.each;e.addCommand("mceInsertTemplate",i),e.addButton("template",{title:"Insert template",onclick:t}),e.addMenuItem("image",{text:"Insert template",onclick:t,context:"insert"}),e.on("PreProcess",function(t){var i=e.dom;o(i.select("div",t.node),function(t){i.hasClass(t,"mceTmpl")&&(o(i.select("*",t),function(t){i.hasClass(t,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))&&(t.innerHTML=n(e.getParam("template_mdate_format",e.getLang("template.mdate_format"))))}),r(t))})})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/textcolor/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/textcolor/plugin.min.js new file mode 100644 index 0000000..f20c433 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/textcolor/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("textcolor",function(e){function t(){var e,t,n=[];for(t=["000000","Black","993300","Burnt orange","333300","Dark olive","003300","Dark green","003366","Dark azure","000080","Navy Blue","333399","Indigo","333333","Very dark gray","800000","Maroon","FF6600","Orange","808000","Olive","008000","Green","008080","Teal","0000FF","Blue","666699","Grayish blue","808080","Gray","FF0000","Red","FF9900","Amber","99CC00","Yellow green","339966","Sea green","33CCCC","Turquoise","3366FF","Royal blue","800080","Purple","999999","Medium gray","FF00FF","Magenta","FFCC00","Gold","FFFF00","Yellow","00FF00","Lime","00FFFF","Aqua","00CCFF","Sky blue","993366","Brown","C0C0C0","Silver","FF99CC","Pink","FFCC99","Peach","FFFF99","Light yellow","CCFFCC","Pale green","CCFFFF","Pale cyan","99CCFF","Light sky blue","CC99FF","Plum","FFFFFF","White"],e=0;t.length>e;e+=2)n.push({text:t[e+1],color:t[e]});return n}function n(){var e,n,r,i,o,a=this;for(e=t(),n='<table class="mce-grid mce-colorbutton-grid" role="presentation" cellspacing="0"><tbody>',r=Math.ceil(Math.sqrt(e.length)),o=0;5>o;o++){for(n+="<tr>",i=0;8>i;i++){var s=e[8*o+i];n+='<td><div id="'+a._id+"-"+(8*o+i)+'"'+' data-mce-color="'+s.color+'"'+' role="option"'+' tabIndex="-1"'+' style="'+(s?"background-color: #"+s.color:"")+'"'+' title="'+s.text+'">'+"</div>"+"</td>"}n+="</tr>"}return n+="</tbody></table>"}function r(t){var n,r=this.parent();(n=t.target.getAttribute("data-mce-color"))&&(r.hidePanel(),n="#"+n,r.showPreview(n),r.hidePanel(),e.execCommand(r.settings.selectcmd,!1,n))}e.addButton("forecolor",{type:"colorbutton",tooltip:"Text color",popoverAlign:"bc-tl",selectcmd:"ForeColor",panel:{html:n,onclick:r}}),e.addButton("backcolor",{type:"colorbutton",tooltip:"Background color",popoverAlign:"bc-tl",selectcmd:"HiliteColor",panel:{html:n,onclick:r}})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualblocks/css/visualblocks.css b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualblocks/css/visualblocks.css new file mode 100644 index 0000000..7a3a47a --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualblocks/css/visualblocks.css @@ -0,0 +1,114 @@ +.mce-visualblocks p { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7); +} + +.mce-visualblocks h1 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==); +} + +.mce-visualblocks h2 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==); +} + +.mce-visualblocks h3 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7); +} + +.mce-visualblocks h4 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==); +} + +.mce-visualblocks h5 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==); +} + +.mce-visualblocks h6 { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==); +} + +.mce-visualblocks div { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7); +} + +.mce-visualblocks section { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=); +} + +.mce-visualblocks article { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7); +} + +.mce-visualblocks blockquote { + padding-top: 10px; + border: 1px dashed #BBB; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7); +} + +.mce-visualblocks address { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=); +} + +.mce-visualblocks pre { + padding-top: 10px; + border: 1px dashed #BBB; + margin-left: 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==); +} + +.mce-visualblocks figure { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7); +} + +.mce-visualblocks hgroup { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7); +} + +.mce-visualblocks aside { + padding-top: 10px; + border: 1px dashed #BBB; + margin: 0 0 1em 3px; + background: transparent no-repeat url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=); +} + +.mce-visualblocks figcaption { + border: 1px dashed #BBB; +} diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualblocks/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualblocks/plugin.min.js new file mode 100644 index 0000000..bcfffcc --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualblocks/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("visualblocks",function(e,t){var n,r,i;window.NodeList&&(e.addCommand("mceVisualBlocks",function(){var o,a=e.dom;n||(n=a.uniqueId(),o=a.create("link",{id:n,rel:"stylesheet",href:t+"/css/visualblocks.css"}),e.getDoc().getElementsByTagName("head")[0].appendChild(o)),e.on("PreviewFormats AfterPreviewFormats",function(t){i&&a.toggleClass(e.getBody(),"mce-visualblocks","afterpreviewformats"==t.type)}),a.toggleClass(e.getBody(),"mce-visualblocks"),i=e.dom.hasClass(e.getBody(),"mce-visualblocks"),r&&r.active(a.hasClass(e.getBody(),"mce-visualblocks"))}),e.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"}),e.addMenuItem("visualblocks",{text:"Show blocks",cmd:"mceVisualBlocks",onPostRender:function(){r=this,r.active(e.dom.hasClass(e.getBody(),"mce-visualblocks"))},selectable:!0,context:"view",prependToContext:!0}),e.on("init",function(){e.settings.visualblocks_default_state&&e.execCommand("mceVisualBlocks",!1,null,{skip_focus:!0})}))});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualchars/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualchars/plugin.min.js new file mode 100644 index 0000000..bb783c6 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/visualchars/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("visualchars",function(e){function t(t){var i,o,a,s,l,c,u=e.getBody(),d=e.selection;if(n=!n,r.active(n),t&&(c=d.getBookmark()),n)for(o=[],tinymce.walk(u,function(e){3==e.nodeType&&e.nodeValue&&-1!=e.nodeValue.indexOf(" ")&&o.push(e)},"childNodes"),a=0;o.length>a;a++){for(s=o[a].nodeValue,s=s.replace(/(\u00a0)/g,'<span data-mce-bogus="1" class="mce-nbsp">$1</span>'),l=e.dom.create("div",null,s);i=l.lastChild;)e.dom.insertAfter(i,o[a]);e.dom.remove(o[a])}else for(o=e.dom.select("span.mce-nbsp",u),a=o.length-1;a>=0;a--)e.dom.remove(o[a],1);d.moveToBookmark(c)}var n,r;e.addCommand("mceVisualChars",t),e.addButton("visualchars",{title:"Show invisible characters",cmd:"mceVisualChars"}),e.addMenuItem("visualchars",{text:"Show invisible characters",cmd:"mceVisualChars",onPostRender:function(){r=this},selectable:!0,context:"view",prependToContext:!0}),e.on("beforegetcontent",function(e){n&&"raw"!=e.format&&!e.draft&&(n=!0,t(!1))})});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/wordcount/plugin.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/wordcount/plugin.min.js new file mode 100644 index 0000000..d92f33e --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/plugins/wordcount/plugin.min.js @@ -0,0 +1 @@ +tinymce.PluginManager.add("wordcount",function(e){function t(){e.theme.panel.find("#wordcount").text(["Words: {0}",i.getCount()])}var n,r,i=this;n=e.getParam("wordcount_countregex",/[\w\u2019\x27\-]+/g),r=e.getParam("wordcount_cleanregex",/[0-9.(),;:!?%#$?\x27\x22_+=\\\/\-]*/g),e.on("init",function(){var n=e.theme.panel&&e.theme.panel.find("#statusbar")[0];n&&(n.insert({type:"label",name:"wordcount",text:["Words: {0}",i.getCount()],classes:"wordcount"},0),e.on("setcontent beforeaddundo",t),e.on("keyup",function(e){32==e.keyCode&&t()}))}),i.getCount=function(){var t=e.getContent({format:"raw"}),i=0;if(t){t=t.replace(/\.\.\./g," "),t=t.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," "),t=t.replace(/(\w+)(&.+?;)+(\w+)/,"$1$3").replace(/&.+?;/g," "),t=t.replace(r,"");var o=t.match(n);o&&(i=o.length)}return i}});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/content.min.css b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/content.min.css new file mode 100644 index 0000000..0b27260 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/content.min.css @@ -0,0 +1 @@ +body.mce-content-body{background-color:#fff;font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px;scrollbar-3dlight-color:#f0f0ee;scrollbar-arrow-color:#676662;scrollbar-base-color:#f0f0ee;scrollbar-darkshadow-color:#ddd;scrollbar-face-color:#e0e0dd;scrollbar-highlight-color:#f0f0ee;scrollbar-shadow-color:#f0f0ee;scrollbar-track-color:#f5f5f5}td,th{font-family:Verdana,Arial,Helvetica,sans-serif;font-size:11px}.mce-object{border:1px dotted #3a3a3a;background:#d5d5d5 url(img/object.gif) no-repeat center}.mce-pagebreak{cursor:default;display:block;border:0;width:100%;height:5px;border:1px dashed #666;margin-top:15px}.mce-item-anchor{cursor:default;display:inline-block;-webkit-user-select:all;-webkit-user-modify:read-only;-moz-user-select:all;-moz-user-modify:read-only;width:9px!important;height:9px!important;border:1px dotted #3a3a3a;background:#d5d5d5 url(img/anchor.gif) no-repeat center}.mce-nbsp{background:#AAA}hr{cursor:default}.mce-match-marker{background:green;color:#fff}.mce-spellchecker-word{background:url(img/wline.gif) repeat-x bottom left;cursor:default}.mce-item-table,.mce-item-table td,.mce-item-table th,.mce-item-table caption{border:1px dashed #BBB}td.mce-item-selected,th.mce-item-selected{background-color:#39f!important}.mce-edit-focus{outline:1px dotted #333}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.eot b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.eot Binary files differnew file mode 100644 index 0000000..0350809 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.eot diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.svg b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.svg new file mode 100644 index 0000000..fa1d05f --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.svg @@ -0,0 +1,150 @@ +<?xml version="1.0" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > +<svg xmlns="http://www.w3.org/2000/svg"> +<metadata> +This is a custom SVG font generated by IcoMoon. +<iconset grid="16"></iconset> +</metadata> +<defs> +<font id="icomoon" horiz-adv-x="512" > +<font-face units-per-em="512" ascent="480" descent="-32" /> +<missing-glyph horiz-adv-x="512" /> +<glyph unicode="" d="M 464.00,416.00L 256.00,416.00L 240.00,448.00L 64.00,448.00L 32.00,384.00L 480.00,384.00 zM 452.17,128.00l 37.43,0.00 L 512.00,352.00L0.00,352.00 l 32.00-320.00l 242.04,0.00 C 221.599,50.888, 184.00,101.133, 184.00,160.00c0.00,74.991, 61.009,136.00, 136.00,136.00 + c 74.99,0.00, 136.00-61.009, 136.00-136.00C 456.00,149.161, 454.689,138.425, 452.17,128.00zM 501.498,23.125l-99.248,87.346C 410.977,124.931, 416.00,141.878, 416.00,160.00c0.00,53.02-42.98,96.00-96.00,96.00s-96.00-42.98-96.00-96.00 + s 42.98-96.00, 96.00-96.00c 18.122,0.00, 35.069,5.023, 49.529,13.75l 87.346-99.248c 11.481-13.339, 31.059-14.07, 43.503-1.626l 2.746,2.746 + C 515.568-7.934, 514.837,11.644, 501.498,23.125z M 320.00,98.00c-34.242,0.00-62.00,27.758-62.00,62.00s 27.758,62.00, 62.00,62.00s 62.00-27.758, 62.00-62.00 + S 354.242,98.00, 320.00,98.00z" /> +<glyph unicode="" d="M 384.00,352.00L 416.00,352.00L 416.00,320.00L 384.00,320.00zM 320.00,288.00L 352.00,288.00L 352.00,256.00L 320.00,256.00zM 320.00,224.00L 352.00,224.00L 352.00,192.00L 320.00,192.00zM 320.00,160.00L 352.00,160.00L 352.00,128.00L 320.00,128.00zM 256.00,224.00L 288.00,224.00L 288.00,192.00L 256.00,192.00zM 256.00,160.00L 288.00,160.00L 288.00,128.00L 256.00,128.00zM 192.00,160.00L 224.00,160.00L 224.00,128.00L 192.00,128.00zM 384.00,288.00L 416.00,288.00L 416.00,256.00L 384.00,256.00zM 384.00,224.00L 416.00,224.00L 416.00,192.00L 384.00,192.00zM 384.00,160.00L 416.00,160.00L 416.00,128.00L 384.00,128.00zM 384.00,96.00L 416.00,96.00L 416.00,64.00L 384.00,64.00zM 320.00,96.00L 352.00,96.00L 352.00,64.00L 320.00,64.00zM 256.00,96.00L 288.00,96.00L 288.00,64.00L 256.00,64.00zM 192.00,96.00L 224.00,96.00L 224.00,64.00L 192.00,64.00zM 128.00,96.00L 160.00,96.00L 160.00,64.00L 128.00,64.00z" /> +<glyph unicode="" d="M 416.00,352.00l-96.00,0.00 L 320.00,384.00 L 224.00,480.00L0.00,480.00 l0.00-384.00 l 192.00,0.00 l0.00-128.00 l 320.00,0.00 L 512.00,256.00 L 416.00,352.00z M 416.00,306.745L 466.745,256.00L 416.00,256.00 L 416.00,306.745 z M 224.00,434.745L 274.745,384.00L 224.00,384.00 + L 224.00,434.745 z M 32.00,448.00l 160.00,0.00 l0.00-96.00 l 96.00,0.00 l0.00-224.00 L 32.00,128.00 L 32.00,448.00 z M 480.00,0.00L 224.00,0.00 l0.00,96.00 l 96.00,0.00 L 320.00,320.00 l 64.00,0.00 l0.00-96.00 l 96.00,0.00 L 480.00,0.00 z" /> +<glyph unicode="" d="M 128.00,448.00 L 384.00,448.00 L 384.00,384.00 L 320.00,384.00 L 320.00,0.00 L 256.00,0.00 L 256.00,384.00 L 192.00,384.00 L 192.00,0.00 L 128.00,0.00 L 128.00,224.00 C 66.144,224.00 16.00,274.144 16.00,336.00 C 16.00,397.856 66.144,448.00 128.00,448.00 ZM 480.00,32.00L 352.00,144.00L 480.00,256.00 z" /> +<glyph unicode="" d="M 224.00,448.00 L 480.00,448.00 L 480.00,384.00 L 416.00,384.00 L 416.00,0.00 L 352.00,0.00 L 352.00,384.00 L 288.00,384.00 L 288.00,0.00 L 224.00,0.00 L 224.00,224.00 C 162.144,224.00 112.00,274.144 112.00,336.00 C 112.00,397.856 162.144,448.00 224.00,448.00 ZM 32.00,256.00L 160.00,144.00L 32.00,32.00 z" /> +<glyph unicode="" d="M 192.00,448.00 L 448.00,448.00 L 448.00,384.00 L 384.00,384.00 L 384.00,0.00 L 320.00,0.00 L 320.00,384.00 L 256.00,384.00 L 256.00,0.00 L 192.00,0.00 L 192.00,224.00 C 130.144,224.00 80.00,274.144 80.00,336.00 C 80.00,397.856 130.144,448.00 192.00,448.00 Z" /> +<glyph unicode="" d="M 365.71,221.482 C 397.67,197.513 416.00,163.439 416.00,128.00 C 416.00,92.561 397.67,58.487 365.71,34.518 C 336.031,12.259 297.068,0.00 256.00,0.00 C 214.931,0.00 175.969,12.259 146.29,34.518 C 114.33,58.487 96.00,92.561 96.00,128.00 L 160.00,128.00 C 160.00,93.309 203.963,64.00 256.00,64.00 C 308.037,64.00 352.00,93.309 352.00,128.00 C 352.00,162.691 308.037,192.00 256.00,192.00 C 214.931,192.00 175.969,204.259 146.29,226.518 C 114.33,250.488 96.00,284.561 96.00,320.00 C 96.00,355.439 114.33,389.512 146.29,413.482 C 175.969,435.741 214.931,448.00 256.00,448.00 C 297.068,448.00 336.031,435.741 365.71,413.482 C 397.67,389.512 416.00,355.439 416.00,320.00 L 352.00,320.00 C 352.00,354.691 308.037,384.00 256.00,384.00 C 203.963,384.00 160.00,354.691 160.00,320.00 C 160.00,285.309 203.963,256.00 256.00,256.00 C 297.068,256.00 336.031,243.741 365.71,221.482 ZM0.00,224.00L 512.00,224.00L 512.00,192.00L0.00,192.00z" /> +<glyph unicode="" d="M 352.00,448.00 L 416.00,448.00 L 416.00,240.00 C 416.00,160.471 344.366,96.00 256.00,96.00 C 167.635,96.00 96.00,160.471 96.00,240.00 L 96.00,448.00 L 160.00,448.00 L 160.00,240.00 C 160.00,219.917 169.119,200.648 185.677,185.747 C 204.125,169.145 229.10,160.00 256.00,160.00 C 282.90,160.00 307.875,169.145 326.323,185.747 C 342.881,200.648 352.00,219.917 352.00,240.00 L 352.00,448.00 ZM 96.00,64.00L 416.00,64.00L 416.00,0.00L 96.00,0.00z" /> +<glyph unicode="" d="M 448.00,448.00 L 448.00,416.00 L 384.00,416.00 L 224.00,32.00 L 288.00,32.00 L 288.00,0.00 L 64.00,0.00 L 64.00,32.00 L 128.00,32.00 L 288.00,416.00 L 224.00,416.00 L 224.00,448.00 Z" /> +<glyph unicode="" d="M 353.94,237.674C 372.689,259.945, 384.00,288.678, 384.00,320.00c0.00,70.58-57.421,128.00-128.00,128.00l-64.00,0.00 l-64.00,0.00 L 96.00,448.00 l0.00-448.00 l 32.00,0.00 l 64.00,0.00 l 96.00,0.00 + c 70.579,0.00, 128.00,57.421, 128.00,128.00C 416.00,174.478, 391.101,215.248, 353.94,237.674z M 192.00,384.00l 50.75,0.00 c 27.984,0.00, 50.75-28.71, 50.75-64.00 + s-22.766-64.00-50.75-64.00L 192.00,256.00 L 192.00,384.00 z M 271.50,64.00L 192.00,64.00 L 192.00,192.00 l 79.50,0.00 c 29.225,0.00, 53.00-28.71, 53.00-64.00S 300.725,64.00, 271.50,64.00z" /> +<glyph unicode="" d="M 192.00,64.00L 288.00,64.00L 288.00-32.00L 192.00-32.00zM 400.00,448.00 C 426.51,448.00 448.00,426.51 448.00,400.00 L 448.00,256.00 L 288.00,160.00 L 288.00,96.00 L 192.00,96.00 L 192.00,192.00 L 352.00,288.00 L 352.00,352.00 L 96.00,352.00 L 96.00,448.00 L 400.00,448.00 Z" /> +<glyph unicode="" d="M 288.00,448.00 C 411.712,448.00 512.00,347.712 512.00,224.00 C 512.00,100.288 411.712,0.00 288.00,0.00 L 288.00,48.00 C 335.012,48.00 379.209,66.307 412.451,99.549 C 445.693,132.791 464.00,176.988 464.00,224.00 C 464.00,271.011 445.693,315.209 412.451,348.451 C 379.209,381.693 335.012,400.00 288.00,400.00 C 240.989,400.00 196.791,381.693 163.549,348.451 C 137.979,322.882 121.258,290.828 114.896,256.00 L 208.00,256.00 L 96.00,128.00 L -16.00,256.00 L 66.285,256.00 C 81.815,364.551 175.154,448.00 288.00,448.00 ZM 384.00,256.00 L 384.00,192.00 L 256.00,192.00 L 256.00,352.00 L 320.00,352.00 L 320.00,256.00 Z" /> +<glyph unicode="" d="M0.00,224.00L 64.00,224.00L 64.00,192.00L0.00,192.00zM 96.00,224.00L 192.00,224.00L 192.00,192.00L 96.00,192.00zM 224.00,224.00L 288.00,224.00L 288.00,192.00L 224.00,192.00zM 320.00,224.00L 416.00,224.00L 416.00,192.00L 320.00,192.00zM 448.00,224.00L 512.00,224.00L 512.00,192.00L 448.00,192.00zM 440.00,480.00 L 448.00,256.00 L 64.00,256.00 L 72.00,480.00 L 88.00,480.00 L 96.00,288.00 L 416.00,288.00 L 424.00,480.00 ZM 72.00-32.00 L 64.00,160.00 L 448.00,160.00 L 440.00-32.00 L 424.00-32.00 L 416.00,128.00 L 96.00,128.00 L 88.00-32.00 Z" /> +<glyph unicode="" d="M 192.00,384.00L 256.00,384.00L 256.00,352.00L 192.00,352.00zM 288.00,384.00L 352.00,384.00L 352.00,352.00L 288.00,352.00zM 448.00,384.00 L 448.00,256.00 L 352.00,256.00 L 352.00,288.00 L 416.00,288.00 L 416.00,352.00 L 384.00,352.00 L 384.00,384.00 ZM 160.00,288.00L 224.00,288.00L 224.00,256.00L 160.00,256.00zM 256.00,288.00L 320.00,288.00L 320.00,256.00L 256.00,256.00zM 96.00,352.00 L 96.00,288.00 L 128.00,288.00 L 128.00,256.00 L 64.00,256.00 L 64.00,384.00 L 160.00,384.00 L 160.00,352.00 ZM 192.00,192.00L 256.00,192.00L 256.00,160.00L 192.00,160.00zM 288.00,192.00L 352.00,192.00L 352.00,160.00L 288.00,160.00zM 448.00,192.00 L 448.00,64.00 L 352.00,64.00 L 352.00,96.00 L 416.00,96.00 L 416.00,160.00 L 384.00,160.00 L 384.00,192.00 ZM 160.00,96.00L 224.00,96.00L 224.00,64.00L 160.00,64.00zM 256.00,96.00L 320.00,96.00L 320.00,64.00L 256.00,64.00zM 96.00,160.00 L 96.00,96.00 L 128.00,96.00 L 128.00,64.00 L 64.00,64.00 L 64.00,192.00 L 160.00,192.00 L 160.00,160.00 ZM 480.00,448.00 L 32.00,448.00 L 32.00,0.00 L 480.00,0.00 L 480.00,448.00 Z M 512.00,480.00 L 512.00,480.00 L 512.00-32.00 L 0.00-32.00 L 0.00,480.00 L 512.00,480.00 Z" /> +<glyph unicode="" d="M 224.00,192.00 L 128.00,192.00 L 128.00,256.00 L 224.00,256.00 L 224.00,352.00 L 288.00,352.00 L 288.00,256.00 L 384.00,256.00 L 384.00,192.00 L 288.00,192.00 L 288.00,96.00 L 224.00,96.00 ZM 512.00,160.00 L 512.00-32.00 L 0.00-32.00 L 0.00,160.00 L 64.00,160.00 L 64.00,32.00 L 448.00,32.00 L 448.00,160.00 Z" /> +<glyph unicode="" d="M 64.00,352.00l 64.00,0.00 l0.00-96.00 l 32.00,0.00 L 160.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00L 64.00,480.00 C 46.40,480.00, 32.00,465.60, 32.00,448.00l0.00-192.00 l 32.00,0.00 L 64.00,352.00 z M 64.00,448.00l 64.00,0.00 l0.00-64.00 L 64.00,384.00 L 64.00,448.00 z M 480.00,448.00L 480.00,480.00 l-96.00,0.00 + c-17.601,0.00-32.00-14.40-32.00-32.00l0.00-160.00 c0.00-17.60, 14.399-32.00, 32.00-32.00l 96.00,0.00 l0.00,32.00 l-96.00,0.00 L 384.00,448.00 L 480.00,448.00 z M 320.00,400.00L 320.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00l-96.00,0.00 l0.00-224.00 l 96.00,0.00 + c 17.60,0.00, 32.00,14.40, 32.00,32.00l0.00,48.00 c0.00,17.60-4.40,32.00-22.00,32.00C 315.60,368.00, 320.00,382.40, 320.00,400.00z M 288.00,288.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 288.00,288.00 z M 288.00,384.00l-64.00,0.00 L 224.00,448.00 l 64.00,0.00 L 288.00,384.00 zM 416.00,192.00 L 208.00-32.00 L 96.00,112.00 L 137.00,147.00 L 208.00,73.00 L 384.00,224.00 Z" /> +<glyph unicode="" d="M 512.00,480.00 L 512.00,288.00 L 442.87,357.13 L 336.87,251.13 L 283.13,304.87 L 389.13,410.87 L 320.00,480.00 ZM 122.87,410.87 L 228.87,304.87 L 175.13,251.13 L 69.13,357.13 L 0.00,288.00 L 0.00,480.00 L 192.00,480.00 ZM 442.87,90.87 L 512.00,160.00 L 512.00-32.00 L 320.00-32.00 L 389.13,37.13 L 283.13,143.13 L 336.87,196.87 ZM 228.87,143.13 L 122.87,37.13 L 192.00-32.00 L 0.00-32.00 L 0.00,160.00 L 69.13,90.87 L 175.13,196.87 Z" /> +<glyph unicode="" d="M 128.00,448.00L 384.00,448.00L 384.00,384.00L 128.00,384.00zM 480.00,352.00L 32.00,352.00 C 14.40,352.00,0.00,337.60,0.00,320.00l0.00-160.00 c0.00-17.60, 14.398-32.00, 32.00-32.00l 96.00,0.00 l0.00-128.00 l 256.00,0.00 L 384.00,128.00 l 96.00,0.00 c 17.60,0.00, 32.00,14.40, 32.00,32.00L 512.00,320.00 + C 512.00,337.60, 497.60,352.00, 480.00,352.00z M 352.00,32.00L 160.00,32.00 L 160.00,192.00 l 192.00,0.00 L 352.00,32.00 z M 487.20,304.00c0.00-12.813-10.387-23.20-23.199-23.20 + c-12.813,0.00-23.201,10.387-23.201,23.20s 10.388,23.20, 23.201,23.20C 476.814,327.20, 487.20,316.813, 487.20,304.00z" /> +<glyph unicode="" d="M 256.00,480.00C 114.615,480.00,0.00,365.386,0.00,224.00c0.00-141.385, 114.614-256.00, 256.00-256.00c 141.385,0.00, 256.00,114.615, 256.00,256.00 + C 512.00,365.386, 397.385,480.00, 256.00,480.00z M 256.00,8.00c-119.293,0.00-216.00,96.706-216.00,216.00c0.00,119.293, 96.707,216.00, 216.00,216.00c 119.295,0.00, 216.00-96.707, 216.00-216.00 + C 472.00,104.706, 375.295,8.00, 256.00,8.00z M 192.00,320.00c0.00-17.673-14.327-32.00-32.00-32.00s-32.00,14.327-32.00,32.00s 14.327,32.00, 32.00,32.00S 192.00,337.673, 192.00,320.00z + M 384.00,320.00c0.00-17.673-14.326-32.00-32.00-32.00s-32.00,14.327-32.00,32.00s 14.326,32.00, 32.00,32.00S 384.00,337.673, 384.00,320.00zM 256.00,154.00 C 326.537,154.00 387.344,182.766 415.231,215.596 C 404.795,129.986 337.087,64.00 256.00,64.00 C 174.941,64.00 107.251,130.013 96.778,215.584 C 124.671,182.761 185.471,154.00 256.00,154.00 Z" /> +<glyph unicode="" d="M 352.00,32.00 L 480.00,32.00 L 512.00,96.00 L 512.00-32.00 L 320.00-32.00 L 320.00,75.107 C 385.556,103.349 432.00,173.688 432.00,256.00 C 432.00,363.216 353.201,447.133 256.00,447.133 C 158.797,447.133 80.00,363.217 80.00,256.00 C 80.00,173.688 126.443,103.349 192.00,75.107 L 192.00-32.00 L 0.00-32.00 L 0.00,96.00 L 32.00,32.00 L 160.00,32.00 L 160.00,48.295 C 66.185,81.525 0.00,161.996 0.00,256.00 C 0.00,379.712 114.615,480.00 256.00,480.00 C 397.385,480.00 512.00,379.712 512.00,256.00 C 512.00,161.996 445.815,81.525 352.00,48.295 L 352.00,32.00 Z" /> +<glyph unicode="" d="M 384.00,377.00 L 384.00,352.00 L 448.00,352.00 L 448.00,320.00 L 352.00,320.00 L 352.00,393.00 L 416.00,423.00 L 416.00,448.00 L 352.00,448.00 L 352.00,480.00 L 448.00,480.00 L 448.00,407.00 ZM 338.00,352.00L 270.00,352.00L 176.00,258.00L 82.00,352.00L 14.00,352.00L 142.00,224.00L 14.00,96.00L 82.00,96.00L 176.00,190.00L 270.00,96.00L 338.00,96.00L 210.00,224.00 z" /> +<glyph unicode="" d="M 384.00,25.00 L 384.00,0.00 L 448.00,0.00 L 448.00-32.00 L 352.00-32.00 L 352.00,41.00 L 416.00,71.00 L 416.00,96.00 L 352.00,96.00 L 352.00,128.00 L 448.00,128.00 L 448.00,55.00 ZM 338.00,352.00L 270.00,352.00L 176.00,258.00L 82.00,352.00L 14.00,352.00L 142.00,224.00L 14.00,96.00L 82.00,96.00L 176.00,190.00L 270.00,96.00L 338.00,96.00L 210.00,224.00 z" /> +<glyph unicode="" d="M0.00,32.00L 288.00,32.00L 288.00-32.00L0.00-32.00zM 96.00,480.00L 448.00,480.00L 448.00,416.00L 96.00,416.00zM 138.694,64.00 L 241.038,456.082 L 302.963,439.918 L 204.838,64.00 ZM 464.887-32.00 L 400.00,32.887 L 335.113-32.00 L 304.00-0.887 L 368.887,64.00 L 304.00,128.887 L 335.113,160.00 L 400.00,95.113 L 464.887,160.00 L 496.00,128.887 L 431.113,64.00 L 496.00-0.887 Z" /> +<glyph unicode="" d="M0.00,256.00L 512.00,256.00L 512.00,192.00L0.00,192.00z" /> +<glyph unicode="" d="M0.00,448.00l0.00-448.00 l 512.00,0.00 L 512.00,448.00 L0.00,448.00 z M 192.00,160.00l0.00,96.00 l 128.00,0.00 l0.00-96.00 L 192.00,160.00 z M 320.00,128.00l0.00-96.00 L 192.00,32.00 l0.00,96.00 L 320.00,128.00 z M 320.00,384.00l0.00-96.00 L 192.00,288.00 L 192.00,384.00 L 320.00,384.00 z M 160.00,384.00l0.00-96.00 L 32.00,288.00 L 32.00,384.00 L 160.00,384.00 z + M 32.00,256.00l 128.00,0.00 l0.00-96.00 L 32.00,160.00 L 32.00,256.00 z M 352.00,256.00l 128.00,0.00 l0.00-96.00 L 352.00,160.00 L 352.00,256.00 z M 352.00,288.00L 352.00,384.00 l 128.00,0.00 l0.00-96.00 L 352.00,288.00 z M 32.00,128.00l 128.00,0.00 l0.00-96.00 L 32.00,32.00 L 32.00,128.00 z M 352.00,32.00l0.00,96.00 l 128.00,0.00 l0.00-96.00 L 352.00,32.00 z" /> +<glyph unicode="" d="M 161.009,64.00l 28.80,96.00l 132.382,0.00 l 28.80-96.00l 56.816,0.00 L 311.809,384.00L 200.191,384.00 l-96.00-320.00L 161.009,64.00 z M 237.809,320.00l 36.382,0.00 l 28.80-96.00l-93.982,0.00 + L 237.809,320.00z" /> +<glyph unicode="" d="M 256.00,320.00C 151.316,320.00, 58.378,269.722,0.00,192.00c 58.378-77.723, 151.316-128.00, 256.00-128.00c 104.684,0.00, 197.622,50.277, 256.00,128.00 + C 453.622,269.722, 360.684,320.00, 256.00,320.00z M 224.00,256.00c 17.673,0.00, 32.00-14.327, 32.00-32.00s-14.327-32.00-32.00-32.00s-32.00,14.327-32.00,32.00S 206.327,256.00, 224.00,256.00z + M 386.808,127.352c-19.824-10.129-40.826-17.931-62.423-23.188C 302.141,98.746, 279.134,96.00, 256.00,96.00 + c-23.133,0.00-46.141,2.746-68.384,8.162c-21.597,5.259-42.599,13.061-62.423,23.188c-31.51,16.101-60.111,38.205-83.82,64.649 + c 23.709,26.444, 52.31,48.55, 83.82,64.649c 16.168,8.261, 33.121,14.973, 50.541,20.02C 165.79,261.547, 160.00,243.451, 160.00,224.00 + c0.00-53.02, 42.981-96.00, 96.00-96.00c 53.019,0.00, 96.00,42.98, 96.00,96.00c0.00,19.451-5.791,37.547-15.733,52.67c 17.419-5.048, 34.372-11.76, 50.541-20.021 + c 31.511-16.099, 60.109-38.204, 83.819-64.649C 446.917,165.557, 418.318,143.45, 386.808,127.352z M 430.459,358.139 + C 376.099,385.916, 317.403,400.00, 256.00,400.00c-61.403,0.00-120.099-14.084-174.459-41.861C 52.155,343.123, 24.675,324.187,0.00,302.101l0.00-54.603 + c 27.669,29.283, 60.347,53.877, 96.097,72.145C 145.907,345.095, 199.706,358.00, 256.00,358.00s 110.093-12.905, 159.902-38.358 + c 35.751-18.268, 68.429-42.862, 96.098-72.145L 512.00,302.10 C 487.325,324.187, 459.846,343.123, 430.459,358.139z" /> +<glyph unicode="" d="M 256.00,384.00C 149.962,384.00, 64.00,298.039, 64.00,192.00s 85.961-192.00, 192.00-192.00c 106.037,0.00, 192.00,85.961, 192.00,192.00S 362.037,384.00, 256.00,384.00z + M 357.822,90.177C 330.626,62.979, 294.464,48.00, 256.00,48.00s-74.625,14.979-101.823,42.177C 126.979,117.374, 112.00,153.536, 112.00,192.00 + s 14.979,74.625, 42.177,101.823C 181.375,321.021, 217.536,336.00, 256.00,336.00s 74.626-14.979, 101.821-42.177 + C 385.022,266.625, 400.00,230.464, 400.00,192.00S 385.021,117.374, 357.822,90.177zM 162.965,378.069l-21.47,42.939C 92.058,396.24, 51.76,355.942, 26.992,306.504l 42.938-21.47 + C 90.054,325.202, 122.796,357.945, 162.965,378.069zM 442.067,285.035l 42.939,21.469C 460.24,355.942, 419.943,396.24, 370.504,421.008l-21.472-42.939 + C 389.201,357.945, 421.944,325.203, 442.067,285.035zM 256.00,288.00l-32.00,0.00 l0.00-96.00 c0.00-5.055, 2.35-9.555, 6.011-12.486l-0.006-0.008l 80.00-64.00l 19.988,24.988L 256.00,199.689L 256.00,288.00 z" /> +<glyph unicode="" d="M 160.00,352.00L 32.00,224.00L 160.00,96.00L 224.00,96.00L 96.00,224.00L 224.00,352.00 zM 352.00,352.00L 288.00,352.00L 416.00,224.00L 288.00,96.00L 352.00,96.00L 480.00,224.00 z" /> +<glyph unicode="" d="M 224.00,128.00L 288.00,128.00L 288.00,64.00L 224.00,64.00zM 352.00,352.00 C 369.673,352.00 384.00,337.673 384.00,320.00 L 384.00,224.00 L 288.00,160.00 L 224.00,160.00 L 224.00,192.00 L 320.00,256.00 L 320.00,288.00 L 160.00,288.00 L 160.00,352.00 L 352.00,352.00 ZM 256.00,432.00 C 200.441,432.00 148.208,410.364 108.922,371.078 C 69.636,331.792 48.00,279.559 48.00,224.00 C 48.00,168.441 69.636,116.208 108.922,76.922 C 148.208,37.636 200.441,16.00 256.00,16.00 C 311.559,16.00 363.792,37.636 403.078,76.922 C 442.364,116.208 464.00,168.441 464.00,224.00 C 464.00,279.559 442.364,331.792 403.078,371.078 C 363.792,410.364 311.559,432.00 256.00,432.00 Z M 256.00,480.00 L 256.00,480.00 C 397.385,480.00 512.00,365.385 512.00,224.00 C 512.00,82.615 397.385-32.00 256.00-32.00 C 114.615-32.00 0.00,82.615 0.00,224.00 C 0.00,365.385 114.615,480.00 256.00,480.00 Z" /> +<glyph unicode="" d="M0.00,416.00l0.00-384.00 l 512.00,0.00 L 512.00,416.00 L0.00,416.00 z M 96.00,64.00L 32.00,64.00 l0.00,64.00 l 64.00,0.00 L 96.00,64.00 z M 96.00,192.00L 32.00,192.00 l0.00,64.00 l 64.00,0.00 L 96.00,192.00 z M 96.00,320.00L 32.00,320.00 L 32.00,384.00 l 64.00,0.00 L 96.00,320.00 z M 384.00,64.00L 128.00,64.00 L 128.00,384.00 l 256.00,0.00 L 384.00,64.00 z + M 480.00,64.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 480.00,64.00 z M 480.00,192.00l-64.00,0.00 l0.00,64.00 l 64.00,0.00 L 480.00,192.00 z M 480.00,320.00l-64.00,0.00 L 416.00,384.00 l 64.00,0.00 L 480.00,320.00 zM 192.00,320.00L 192.00,128.00L 320.00,224.00 z" /> +<glyph unicode="" d="M0.00,416.00l0.00-416.00 l 512.00,0.00 L 512.00,416.00 L0.00,416.00 z M 480.00,32.00L 32.00,32.00 L 32.00,384.00 l 448.00,0.00 L 480.00,32.00 zM 352.00,304.00A48.00,48.00 1620.00 1,0 448.00,304A48.00,48.00 1620.00 1,0 352.00,304zM 448.00,64.00 L 64.00,64.00 L 160.00,320.00 L 288.00,160.00 L 352.00,208.00 Z" /> +<glyph unicode="" d="M 96.00,480.00l0.00-512.00 l 160.00,160.00l 160.00-160.00L 416.00,480.00 L 96.00,480.00 z M 384.00,45.255l-128.00,128.00l-128.00-128.00L 128.00,448.00 l 256.00,0.00 L 384.00,45.255 z" /> +<glyph unicode="" d="M 238.444,142.443c 2.28-4.524, 3.495-9.579, 3.495-14.848c0.00-8.808-3.372-17.029-9.496-23.154l-81.69-81.69 + c-6.124-6.124-14.348-9.496-23.154-9.496s-17.03,3.372-23.154,9.496l-49.69,49.69c-6.124,6.125-9.496,14.348-9.496,23.154 + s 3.372,17.03, 9.496,23.154l 81.69,81.691c 6.124,6.123, 14.348,9.496, 23.154,9.496c 5.269,0.00, 10.322-1.215, 14.848-3.494l 32.669,32.668 + c-13.935,10.705-30.72,16.08-47.517,16.08c-19.993,0.00-39.986-7.583-55.154-22.751l-81.69-81.691 + c-30.335-30.335-30.335-79.975,0.00-110.309l 49.69-49.691c 15.167-15.166, 35.16-22.75, 55.153-22.75 + c 19.994,0.00, 39.987,7.584, 55.154,22.751l 81.69,81.69c 27.91,27.91, 30.119,72.149, 6.672,102.673L 238.444,142.443zM 489.248,407.558l-49.69,49.691C 424.391,472.417, 404.398,480.00, 384.404,480.00c-19.993,0.00-39.985-7.583-55.153-22.751l-81.691-81.691 + c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0.00,8.808, 3.372,17.03, 9.496,23.154 + l 81.691,81.691c 6.123,6.124, 14.347,9.497, 23.153,9.497c 8.808,0.00, 17.03-3.373, 23.154-9.497l 49.69-49.691 + c 6.124-6.124, 9.496-14.347, 9.496-23.154c0.00-8.807-3.372-17.03-9.496-23.154l-81.69-81.691c-6.124-6.124-14.347-9.496-23.154-9.496 + c-5.268,0.00-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.08, 47.517-16.08c 19.994,0.00, 39.987,7.584, 55.154,22.752 + l 81.69,81.69C 519.584,327.584, 519.584,377.223, 489.248,407.558zM 116.684,340.688L 20.687,436.685L 43.315,459.313L 139.312,363.316zM 192.00,480.00L 224.00,480.00L 224.00,384.00L 192.00,384.00zM0.00,288.00L 96.00,288.00L 96.00,256.00L0.00,256.00zM 395.316,107.312L 491.314,11.314L 468.686-11.314L 372.688,84.684zM 288.00,64.00L 320.00,64.00L 320.00-32.00L 288.00-32.00zM 416.00,192.00L 512.00,192.00L 512.00,160.00L 416.00,160.00z" /> +<glyph unicode="" d="M 160.00,128.00c 8.80-8.80, 23.637-8.363, 32.971,0.971L 351.03,287.029C 360.364,296.363, 360.80,311.20, 352.00,320.00 + s-23.637,8.363-32.971-0.971L 160.971,160.971C 151.637,151.637, 151.20,136.80, 160.00,128.00zM 238.444,142.444c 2.28-4.525, 3.495-9.58, 3.495-14.848c0.00-8.808-3.372-17.03-9.496-23.154l-81.691-81.691 + c-6.124-6.124-14.347-9.496-23.154-9.496s-17.03,3.372-23.154,9.496l-49.691,49.691c-6.124,6.124-9.496,14.347-9.496,23.154 + s 3.372,17.03, 9.496,23.154l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497c 5.268,0.00, 10.322-1.215, 14.848-3.495l 32.669,32.669 + c-13.935,10.705-30.72,16.08-47.517,16.08c-19.993,0.00-39.986-7.583-55.154-22.751l-81.691-81.691 + c-30.335-30.335-30.335-79.974,0.00-110.309l 49.691-49.691C 87.611-24.416, 107.604-32.00, 127.597-32.00 + c 19.994,0.00, 39.987,7.584, 55.154,22.751l 81.691,81.691c 27.91,27.91, 30.119,72.149, 6.672,102.672L 238.444,142.444zM 489.249,407.558l-49.691,49.691C 424.391,472.417, 404.398,480.00, 384.404,480.00c-19.993,0.00-39.986-7.583-55.154-22.751l-81.691-81.691 + c-27.91-27.91-30.119-72.149-6.671-102.671l 32.669,32.67c-2.279,4.525-3.494,9.58-3.494,14.847c0.00,8.808, 3.372,17.03, 9.496,23.154 + l 81.691,81.691c 6.124,6.124, 14.347,9.497, 23.154,9.497s 17.03-3.373, 23.154-9.497l 49.691-49.691 + c 6.124-6.124, 9.496-14.347, 9.496-23.154s-3.372-17.03-9.496-23.154l-81.691-81.691c-6.124-6.124-14.347-9.496-23.154-9.496 + c-5.268,0.00-10.322,1.215-14.848,3.495l-32.669-32.669c 13.936-10.705, 30.72-16.08, 47.517-16.08c 19.994,0.00, 39.987,7.584, 55.154,22.751 + l 81.691,81.691C 519.584,327.584, 519.584,377.223, 489.249,407.558z" /> +<glyph unicode="" d="M 288.00,355.814L 288.00,480.00 l 192.00-192.00L 288.00,96.00L 288.00,222.912 C 64.625,228.153, 74.206,71.016, 131.07-32.00 + C-9.286,119.707, 20.52,362.785, 288.00,355.814z" /> +<glyph unicode="" d="M 380.931-32.00C 437.794,71.016, 447.375,228.153, 224.00,222.912L 224.00,96.00 L 32.00,288.00L 224.00,480.00l0.00-124.186 + C 491.481,362.785, 521.285,119.707, 380.931-32.00z" /> +<glyph unicode="" d="M 112.50,256.00 C 174.356,256.00 224.50,205.855 224.50,144.00 C 224.50,82.144 174.356,32.00 112.50,32.00 C 50.644,32.00 0.50,82.144 0.50,144.00 L 0.00,160.00 C 0.00,283.712 100.288,384.00 224.00,384.00 L 224.00,320.00 C 181.263,320.00 141.083,303.357 110.863,273.137 C 105.046,267.319 99.737,261.129 94.948,254.627 C 100.667,255.527 106.528,256.00 112.50,256.00 ZM 400.50,256.00 C 462.355,256.00 512.50,205.855 512.50,144.00 C 512.50,82.144 462.355,32.00 400.50,32.00 C 338.645,32.00 288.50,82.144 288.50,144.00 L 288.00,160.00 C 288.00,283.712 388.288,384.00 512.00,384.00 L 512.00,320.00 C 469.263,320.00 429.083,303.357 398.863,273.137 C 393.045,267.319 387.736,261.129 382.947,254.627 C 388.667,255.527 394.527,256.00 400.50,256.00 Z" /> +<glyph unicode="" d="M0.00,448.00L 512.00,448.00L 512.00,384.00L0.00,384.00zM 192.00,352.00L 512.00,352.00L 512.00,288.00L 192.00,288.00zM 192.00,256.00L 512.00,256.00L 512.00,192.00L 192.00,192.00zM 192.00,160.00L 512.00,160.00L 512.00,96.00L 192.00,96.00zM0.00,64.00L 512.00,64.00L 512.00,0.00L0.00,0.00zM 128.00,320.00 L 128.00,128.00 L 0.00,224.00 Z" /> +<glyph unicode="" d="M0.00,448.00L 512.00,448.00L 512.00,384.00L0.00,384.00zM 192.00,352.00L 512.00,352.00L 512.00,288.00L 192.00,288.00zM 192.00,256.00L 512.00,256.00L 512.00,192.00L 192.00,192.00zM 192.00,160.00L 512.00,160.00L 512.00,96.00L 192.00,96.00zM0.00,64.00L 512.00,64.00L 512.00,0.00L0.00,0.00zM 0.00,128.00 L 0.00,320.00 L 128.00,224.00 Z" /> +<glyph unicode="" d="M 192.00,64.00L 512.00,64.00L 512.00,0.00L 192.00,0.00zM 192.00,256.00L 512.00,256.00L 512.00,192.00L 192.00,192.00zM 192.00,448.00L 512.00,448.00L 512.00,384.00L 192.00,384.00zM 96.00,480.00 L 96.00,352.00 L 64.00,352.00 L 64.00,448.00 L 32.00,448.00 L 32.00,480.00 ZM 64.00,217.00 L 64.00,192.00 L 128.00,192.00 L 128.00,160.00 L 32.00,160.00 L 32.00,233.00 L 96.00,263.00 L 96.00,288.00 L 32.00,288.00 L 32.00,320.00 L 128.00,320.00 L 128.00,247.00 ZM 128.00,128.00 L 128.00-32.00 L 32.00-32.00 L 32.00,0.00 L 96.00,0.00 L 96.00,32.00 L 32.00,32.00 L 32.00,64.00 L 96.00,64.00 L 96.00,96.00 L 32.00,96.00 L 32.00,128.00 Z" /> +<glyph unicode="" d="M 192.00,448.00l 320.00,0.00 l0.00-64.00 L 192.00,384.00 L 192.00,448.00 z M 192.00,256.00l 320.00,0.00 l0.00-64.00 L 192.00,192.00 L 192.00,256.00 z M 192.00,64.00l 320.00,0.00 l0.00-64.00 L 192.00,0.00 L 192.00,64.00 zM0.00,416.00A64.00,64.00 1620.00 1,0 128.00,416A64.00,64.00 1620.00 1,0 0.00,416zM0.00,224.00A64.00,64.00 1620.00 1,0 128.00,224A64.00,64.00 1620.00 1,0 0.00,224zM0.00,32.00A64.00,64.00 1620.00 1,0 128.00,32A64.00,64.00 1620.00 1,0 0.00,32z" /> +<glyph unicode="" d="M 32.00,480.00L 224.00,480.00L 224.00,448.00L 32.00,448.00zM 288.00,480.00L 480.00,480.00L 480.00,448.00L 288.00,448.00zM 476.00,320.00l-28.00,0.00 L 448.00,448.00 L 320.00,448.00 l0.00-128.00 L 192.00,320.00 L 192.00,448.00 L 64.00,448.00 l0.00-128.00 L 36.00,320.00 c-19.80,0.00-36.00-16.20-36.00-36.00l0.00-280.00 c0.00-19.80, 16.20-36.00, 36.00-36.00l 152.00,0.00 c 19.80,0.00, 36.00,16.20, 36.00,36.00L 224.00,192.00 l 64.00,0.00 + l0.00-188.00 c0.00-19.80, 16.20-36.00, 36.00-36.00l 152.00,0.00 c 19.80,0.00, 36.00,16.20, 36.00,36.00L 512.00,284.00 C 512.00,303.80, 495.80,320.00, 476.00,320.00z M 174.00,0.00L 50.00,0.00 c-9.90,0.00-18.00,7.20-18.00,16.00 + s 8.10,16.00, 18.00,16.00l 124.00,0.00 c 9.90,0.00, 18.00-7.20, 18.00-16.00S 183.90,0.00, 174.00,0.00z M 272.00,224.00l-32.00,0.00 c-8.80,0.00-16.00,7.20-16.00,16.00s 7.20,16.00, 16.00,16.00l 32.00,0.00 c 8.80,0.00, 16.00-7.20, 16.00-16.00 + S 280.80,224.00, 272.00,224.00z M 462.00,0.00L 338.00,0.00 c-9.90,0.00-18.00,7.20-18.00,16.00s 8.10,16.00, 18.00,16.00l 124.00,0.00 c 9.90,0.00, 18.00-7.20, 18.00-16.00S 471.90,0.00, 462.00,0.00z" /> +<glyph unicode="" d="M 416.00,320.00L 416.00,400.00 c0.00,8.80-7.20,16.00-16.00,16.00L 288.00,416.00 L 288.00,448.00 c0.00,17.60-14.40,32.00-32.00,32.00l-64.00,0.00 c-17.602,0.00-32.00-14.40-32.00-32.00l0.00-32.00 L 48.00,416.00 c-8.801,0.00-16.00-7.20-16.00-16.00l0.00-320.00 + c0.00-8.80, 7.199-16.00, 16.00-16.00l 144.00,0.00 l0.00-96.00 l 224.00,0.00 l 96.00,96.00L 512.00,320.00 L 416.00,320.00 z M 192.00,447.943c 0.017,0.019, 0.036,0.039, 0.057,0.057l 63.884,0.00 + c 0.021-0.018, 0.041-0.038, 0.059-0.057L 256.00,416.00 l-64.00,0.00 L 192.00,447.943 z M 96.00,352.00L 96.00,384.00 l 256.00,0.00 l0.00-32.00 L 96.00,352.00 z M 416.00,13.255L 416.00,64.00 l 50.745,0.00 L 416.00,13.255z M 480.00,96.00l-96.00,0.00 l0.00-96.00 + L 224.00,0.00 L 224.00,288.00 l 256.00,0.00 L 480.00,96.00 z" /> +<glyph unicode="" d="M 445.387,125.423c-22.827,22.778-51.864,34.536-78.973,34.536l-14.556,0.00 l-31.952,32.004l 127.81,128.019 + c 31.952,32.005, 31.952,96.014,0.00,128.019L 256.001,255.973L 64.285,448.00c-31.952-32.004-31.952-96.014,0.00-128.019l 127.811-128.017 + l-31.953-32.004l-14.557,0.00 c-27.11,0.00-56.146-11.759-78.974-34.538c-40.811-40.721-46.325-101.242-12.315-135.175 + C 69.282-24.704, 89.441-32.00, 110.795-32.00c 27.108,0.00, 56.145,11.757, 78.973,34.536c 26.792,26.732, 38.371,62.00, 33.542,92.674l 32.692,32.744 + l 32.688-32.744c-4.828-30.674, 6.753-65.941, 33.542-92.674C 345.063-20.243, 374.098-32.00, 401.206-32.00 + c 21.354,0.00, 41.512,7.296, 56.497,22.248C 491.713,24.181, 486.197,84.702, 445.387,125.423z M 176.512,57.231 + c-3.849-8.941-9.505-17.173-16.813-24.463c-7.318-7.302-15.586-12.959-24.574-16.812c-8.066-3.458-16.48-5.284-24.331-5.284 + c-7.573,0.00-18.306,1.701-26.431,9.806c-8.068,8.052-9.76,18.659-9.76,26.144c0.00,7.771, 1.821,16.105, 5.263,24.106 + c 3.85,8.942, 9.507,17.173, 16.813,24.463c 7.317,7.303, 15.586,12.957, 24.575,16.812c 8.067,3.457, 16.48,5.284, 24.332,5.284 + c 7.573,0.00, 18.306-1.70, 26.429-9.807c 8.067-8.049, 9.761-18.658, 9.761-26.142C 181.777,73.567, 179.957,65.23, 176.512,57.231z + M 256.002,146.702c-24.957,0.00-45.188,20.266-45.188,45.263c0.00,24.996, 20.231,45.26, 45.188,45.26s 45.186-20.264, 45.186-45.26 + C 301.188,166.966, 280.958,146.702, 256.002,146.702z M 427.636,20.479c-8.124-8.104-18.856-9.806-26.43-9.806 + c-7.852,0.00-16.265,1.826-24.333,5.284c-8.986,3.853-17.254,9.51-24.571,16.812c-7.307,7.29-12.963,15.521-16.813,24.463 + c-3.443,7.999-5.263,16.336-5.263,24.106c0.00,7.483, 1.692,18.094, 9.76,26.143c 8.123,8.104, 18.856,9.807, 26.43,9.807 + c 7.85,0.00, 16.265-1.827, 24.33-5.284c 8.989-3.854, 17.258-9.509, 24.575-16.812c 7.305-7.29, 12.962-15.521, 16.813-24.463 + c 3.442-7.999, 5.263-16.335, 5.263-24.106C 437.396,39.138, 435.702,28.53, 427.636,20.479z" /> +<glyph unicode="" d="M0.00,448.00L 512.00,448.00L 512.00,384.00L0.00,384.00zM0.00,352.00L 512.00,352.00L 512.00,288.00L0.00,288.00zM0.00,256.00L 512.00,256.00L 512.00,192.00L0.00,192.00zM0.00,160.00L 512.00,160.00L 512.00,96.00L0.00,96.00zM0.00,64.00L 512.00,64.00L 512.00,0.00L0.00,0.00z" /> +<glyph unicode="" d="M0.00,448.00L 512.00,448.00L 512.00,384.00L0.00,384.00zM 192.00,352.00L 512.00,352.00L 512.00,288.00L 192.00,288.00zM 192.00,160.00L 512.00,160.00L 512.00,96.00L 192.00,96.00zM0.00,256.00L 512.00,256.00L 512.00,192.00L0.00,192.00zM0.00,64.00L 512.00,64.00L 512.00,0.00L0.00,0.00z" /> +<glyph unicode="" d="M0.00,448.00L 512.00,448.00L 512.00,384.00L0.00,384.00zM 96.00,352.00L 416.00,352.00L 416.00,288.00L 96.00,288.00zM 96.00,160.00L 416.00,160.00L 416.00,96.00L 96.00,96.00zM0.00,256.00L 512.00,256.00L 512.00,192.00L0.00,192.00zM0.00,64.00L 512.00,64.00L 512.00,0.00L0.00,0.00z" /> +<glyph unicode="" d="M0.00,448.00L 512.00,448.00L 512.00,384.00L0.00,384.00zM0.00,352.00L 320.00,352.00L 320.00,288.00L0.00,288.00zM0.00,160.00L 320.00,160.00L 320.00,96.00L0.00,96.00zM0.00,256.00L 512.00,256.00L 512.00,192.00L0.00,192.00zM0.00,64.00L 512.00,64.00L 512.00,0.00L0.00,0.00z" /> +<glyph unicode="" d="M 512.00,183.771l0.00,80.458 l-79.572,7.957c-4.093,15.021-10.044,29.274-17.605,42.49l 52.298,63.919L 410.595,435.12l-63.918-52.298 + c-13.217,7.562-27.471,13.513-42.491,17.604L 296.229,480.00l-80.458,0.00 l-7.957-79.573c-15.021-4.093-29.274-10.043-42.49-17.604 + L 101.405,435.12L 44.88,378.595l 52.298-63.918c-7.562-13.216-13.513-27.47-17.605-42.49L0.00,264.229l0.00-80.458 l 79.573-7.957 + c 4.093-15.021, 10.043-29.274, 17.605-42.491L 44.88,69.405l 56.524-56.524l 63.919,52.298c 13.216-7.562, 27.47-13.514, 42.49-17.605 + L 215.771-32.00l 80.458,0.00 l 7.957,79.572c 15.021,4.093, 29.274,10.044, 42.491,17.605l 63.918-52.298l 56.524,56.524l-52.298,63.918 + c 7.562,13.217, 13.514,27.471, 17.605,42.49L 512.00,183.771z M 352.00,192.00l-64.00-64.00l-64.00,0.00 l-64.00,64.00l0.00,64.00 l 64.00,64.00l 64.00,0.00 l 64.00-64.00L 352.00,192.00 z" /> +<glyph unicode="" d="M 451.716,380.285l-71.432,71.431C 364.728,467.272, 334.00,480.00, 312.00,480.00L 72.00,480.00 C 50.00,480.00, 32.00,462.00, 32.00,440.00l0.00-432.00 c0.00-22.00, 18.00-40.00, 40.00-40.00l 368.00,0.00 c 22.00,0.00, 40.00,18.00, 40.00,40.00 + L 480.00,312.00 C 480.00,334.00, 467.272,364.729, 451.716,380.285z M 429.089,357.657c 1.565-1.565, 3.125-3.487, 4.64-5.657L 352.00,352.00 L 352.00,433.728 + c 2.17-1.515, 4.092-3.075, 5.657-4.64L 429.089,357.657z M 448.00,8.00c0.00-4.336-3.664-8.00-8.00-8.00L 72.00,0.00 c-4.336,0.00-8.00,3.664-8.00,8.00L 64.00,440.00 c0.00,4.336, 3.664,8.00, 8.00,8.00 + l 240.00,0.00 c 2.416,0.00, 5.127-0.305, 8.00-0.852L 320.00,320.00 l 127.148,0.00 c 0.547-2.873, 0.852-5.583, 0.852-8.00L 448.00,8.00 z" /> +<glyph unicode="" d="M 448.00,480.00L0.00,480.00 l0.00-512.00 l 512.00,0.00 L 512.00,416.00 L 448.00,480.00z M 256.00,416.00l 64.00,0.00 l0.00-128.00 l-64.00,0.00 L 256.00,416.00 z M 448.00,32.00L 64.00,32.00 L 64.00,416.00 l 32.00,0.00 l0.00-160.00 l 288.00,0.00 L 384.00,416.00 l 37.489,0.00 L 448.00,389.491L 448.00,32.00 z" /> +<glyph unicode="" d="M 64.00,208.00L 208.00,64.00L 448.00,304.00L 384.00,368.00L 208.00,192.00L 128.00,272.00 z" /> +<glyph unicode=" " horiz-adv-x="256" /> +<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" /> +</font></defs></svg>
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.ttf b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.ttf Binary files differnew file mode 100644 index 0000000..4529bad --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.ttf diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.woff b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.woff Binary files differnew file mode 100644 index 0000000..33eea8e --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/icomoon.woff diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/readme.md b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/readme.md new file mode 100644 index 0000000..fa5d639 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/fonts/readme.md @@ -0,0 +1 @@ +Icons are generated and provided by the http://icomoon.io service. diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/anchor.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/anchor.gif Binary files differnew file mode 100644 index 0000000..606348c --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/anchor.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/loader.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/loader.gif Binary files differnew file mode 100644 index 0000000..c69e937 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/loader.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/object.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/object.gif Binary files differnew file mode 100644 index 0000000..cccd7f0 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/object.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/trans.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/trans.gif Binary files differnew file mode 100644 index 0000000..3884865 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/trans.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/wline.gif b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/wline.gif Binary files differnew file mode 100644 index 0000000..7d0a4db --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/img/wline.gif diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.classic.min.css b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.classic.min.css new file mode 100644 index 0000000..1c7e683 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.classic.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#000;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-container ::-webkit-scrollbar{width:8px;height:8px;-webkit-border-radius:4px}.mce-container ::-webkit-scrollbar-track,.mce-container ::-webkit-scrollbar-track-piece{background-color:transparent}.mce-container ::-webkit-scrollbar-thumb{background-color:rgba(53,57,71,0.3);width:6px;height:6px;-webkit-border-radius:4px}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;border-radius:2px}.mce-wordcount{float:right;padding:8px}.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:center;padding:2px}.mce-charmap td:hover{background:#d9d9d9}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#c5c5c5}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#e8e8e8;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#c4daff;background:#deeafa}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:#ccc 5px 5px 5px;-moz-box-shadow:#ccc 5px 5px 5px;box-shadow:#ccc 5px 5px 5px}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{position:absolute;top:0;left:0;background:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #EEE;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#CCC;text-shadow:0 1px 0 white;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#AAA}.mce-window-head .mce-title{display:inline-block;*display:inline;*zoom:1;line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:whiteSmoke;border-top:1px solid #DDD;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #c5c5c5;position:relative;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-btn:hover,.mce-btn:focus{text-decoration:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn.mce-disabled,.mce-btn.mce-disabled:hover{cursor:default;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);zoom:1;border-color:#04c #04c #002b80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary:hover,.mce-primary:focus{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#005fb3;background-image:-moz-linear-gradient(top,#0077b3,#003cb3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0077b3),to(#003cb3));background-image:-webkit-linear-gradient(top,#0077b3,#003cb3);background-image:-o-linear-gradient(top,#0077b3,#003cb3);background-image:linear-gradient(to bottom,#0077b3,#003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3',endColorstr='#ff003cb3',GradientType=0);zoom:1;border-color:#003cb3 #003cb3 #026;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary button{color:#fff}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:3px 5px;font-size:12px;line-height:15px}.mce-btn-small i{margin-top:0}.mce-btn .mce-caret{margin-top:8px;*margin-top:6px;margin-left:0}.mce-btn-small .mce-caret{margin-top:6px;*margin-top:4px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #444;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#999}.mce-caret.mce-up{border-bottom:4px solid #444;border-top:0}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-btn:hover,.mce-btn-group .mce-btn:focus{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-disabled,.mce-btn-group .mce-btn.mce-disabled:hover{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-active,.mce-btn-group .mce-btn.mce-active:hover,.mce-btn-group .mce-btn:active{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn-group .mce-btn.mce-disabled button{opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn-group .mce-first{border-left:1px solid #c5c5c5;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #c5c5c5;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0}.mce-checked i.mce-i-checkbox{color:#000;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox{border:1px solid #59a5e1;border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-colorbutton .mce-ico{position:relative}.mce-colorpicker{background:#FFF}.mce-colorbutton-grid{margin:4px}.mce-grid td div{border:1px solid #808080;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:hover{border-color:black}.mce-grid td div:focus{border-color:#59a5e1;outline:1px solid rgba(82,168,236,0.8);border-color:rgba(82,168,236,0.8)}.mce-colorbutton{position:relative}.mce-colorbutton .mce-preview{display:block;position:absolute;left:50%;top:50%;margin-left:-8px;margin-top:7px;background:gray;width:16px;height:2px;overflow:hidden}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;width:100px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-combobox input{border-color:1px solid #c5c5c5;border-right-color:rgba(0,0,0,0.15);height:28px}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox *:focus{border-color:#59a5e1;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#000}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:gray;color:white}.mce-path .mce-divider{display:inline}.mce-fieldset{border:0 solid #9e9e9e;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);border:0 solid #c5c5c5;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label-disabled .mce-text{color:#999}.mce-label.mce-multiline{white-space:pre-wrap}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #ddd}.mce-menubar .mce-menubtn button{color:#000}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubtn:focus{border-color:transparent;background:#ddd;filter:none}.mce-menubtn.mce-disabled span{color:#999}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-listbox span{width:100%;display:block;overflow:hidden}.mce-menu-item{display:block;padding:6px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal}.mce-menu-item.mce-disabled .mce-text{color:#999}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0);zoom:1}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-shortcut{display:inline-block;color:#999}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 20px 0 20px}.mce-menu-item .mce-caret{margin-top:6px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #666}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret{border-left-color:#FFF}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item-sep,.mce-menu-item-sep:hover{padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#e5e5e5;border-bottom:1px solid white;cursor:default;filter:none}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item.mce-active{background-color:#c8def4;outline:1px solid #c5c5c5}.mce-menu-item-checkbox.mce-active{background-color:#FFF;outline:0}.mce-menu{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#FFF;border:1px solid #CCC;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline;*zoom:1}.mce-menu-sub{margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}i.mce-radio{padding:1px;margin:0 3px 0 0;background-color:#fafafa;border:1px solid #cacece;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}i.mce-radio:after{font-family:Arial;font-size:12px;color:#000;content:'\25cf'}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#000}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#c5c5c5;border-right-color:#c5c5c5}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #ccc}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #ccc;border-width:1px 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-textbox{background:#FFF;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:normal;color:#000}.mce-textbox:focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}@font-face{font-family:'tinymce';src:url('fonts/icomoon.eot');src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),url('fonts/icomoon.svg#icomoon') format('svg'),url('fonts/icomoon.woff') format('woff'),url('fonts/icomoon.ttf') format('truetype');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-inserttime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.ie7.min.css b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.ie7.min.css new file mode 100644 index 0000000..9c7faef --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.ie7.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#000;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-container ::-webkit-scrollbar{width:8px;height:8px;-webkit-border-radius:4px}.mce-container ::-webkit-scrollbar-track,.mce-container ::-webkit-scrollbar-track-piece{background-color:transparent}.mce-container ::-webkit-scrollbar-thumb{background-color:rgba(53,57,71,0.3);width:6px;height:6px;-webkit-border-radius:4px}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;border-radius:2px}.mce-wordcount{float:right;padding:8px}.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:center;padding:2px}.mce-charmap td:hover{background:#d9d9d9}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#c5c5c5}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#e8e8e8;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#c4daff;background:#deeafa}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:#ccc 5px 5px 5px;-moz-box-shadow:#ccc 5px 5px 5px;box-shadow:#ccc 5px 5px 5px}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{position:absolute;top:0;left:0;background:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #EEE;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#CCC;text-shadow:0 1px 0 white;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#AAA}.mce-window-head .mce-title{display:inline-block;*display:inline;*zoom:1;line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:whiteSmoke;border-top:1px solid #DDD;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #c5c5c5;position:relative;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-btn:hover,.mce-btn:focus{text-decoration:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn.mce-disabled,.mce-btn.mce-disabled:hover{cursor:default;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);zoom:1;border-color:#04c #04c #002b80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary:hover,.mce-primary:focus{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#005fb3;background-image:-moz-linear-gradient(top,#0077b3,#003cb3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0077b3),to(#003cb3));background-image:-webkit-linear-gradient(top,#0077b3,#003cb3);background-image:-o-linear-gradient(top,#0077b3,#003cb3);background-image:linear-gradient(to bottom,#0077b3,#003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3',endColorstr='#ff003cb3',GradientType=0);zoom:1;border-color:#003cb3 #003cb3 #026;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary button{color:#fff}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:3px 5px;font-size:12px;line-height:15px}.mce-btn-small i{margin-top:0}.mce-btn .mce-caret{margin-top:8px;*margin-top:6px;margin-left:0}.mce-btn-small .mce-caret{margin-top:6px;*margin-top:4px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #444;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#999}.mce-caret.mce-up{border-bottom:4px solid #444;border-top:0}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-btn:hover,.mce-btn-group .mce-btn:focus{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-disabled,.mce-btn-group .mce-btn.mce-disabled:hover{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-active,.mce-btn-group .mce-btn.mce-active:hover,.mce-btn-group .mce-btn:active{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn-group .mce-btn.mce-disabled button{opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn-group .mce-first{border-left:1px solid #c5c5c5;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #c5c5c5;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0}.mce-checked i.mce-i-checkbox{color:#000;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox{border:1px solid #59a5e1;border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-colorbutton .mce-ico{position:relative}.mce-colorpicker{background:#FFF}.mce-colorbutton-grid{margin:4px}.mce-grid td div{border:1px solid #808080;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:hover{border-color:black}.mce-grid td div:focus{border-color:#59a5e1;outline:1px solid rgba(82,168,236,0.8);border-color:rgba(82,168,236,0.8)}.mce-colorbutton{position:relative}.mce-colorbutton .mce-preview{display:block;position:absolute;left:50%;top:50%;margin-left:-8px;margin-top:7px;background:gray;width:16px;height:2px;overflow:hidden}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;width:100px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-combobox input{border-color:1px solid #c5c5c5;border-right-color:rgba(0,0,0,0.15);height:28px}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox *:focus{border-color:#59a5e1;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#000}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:gray;color:white}.mce-path .mce-divider{display:inline}.mce-fieldset{border:0 solid #9e9e9e;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);border:0 solid #c5c5c5;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label-disabled .mce-text{color:#999}.mce-label.mce-multiline{white-space:pre-wrap}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #ddd}.mce-menubar .mce-menubtn button{color:#000}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubtn:focus{border-color:transparent;background:#ddd;filter:none}.mce-menubtn.mce-disabled span{color:#999}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-listbox span{width:100%;display:block;overflow:hidden}.mce-menu-item{display:block;padding:6px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal}.mce-menu-item.mce-disabled .mce-text{color:#999}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0);zoom:1}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-shortcut{display:inline-block;color:#999}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 20px 0 20px}.mce-menu-item .mce-caret{margin-top:6px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #666}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret{border-left-color:#FFF}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item-sep,.mce-menu-item-sep:hover{padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#e5e5e5;border-bottom:1px solid white;cursor:default;filter:none}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item.mce-active{background-color:#c8def4;outline:1px solid #c5c5c5}.mce-menu-item-checkbox.mce-active{background-color:#FFF;outline:0}.mce-menu{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#FFF;border:1px solid #CCC;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline;*zoom:1}.mce-menu-sub{margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}i.mce-radio{padding:1px;margin:0 3px 0 0;background-color:#fafafa;border:1px solid #cacece;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}i.mce-radio:after{font-family:Arial;font-size:12px;color:#000;content:'\25cf'}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#000}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#c5c5c5;border-right-color:#c5c5c5}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #ccc}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #ccc;border-width:1px 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-textbox{background:#FFF;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:normal;color:#000}.mce-textbox:focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}@font-face{font-family:'icomoon';src:url('fonts/icomoon.eot');src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),url('fonts/icomoon.svg#icomoon') format('svg'),url('fonts/icomoon.woff') format('woff'),url('fonts/icomoon.ttf') format('truetype');font-weight:normal;font-style:normal}.mce-ico{font-family:'icomoon';font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333;-ie7-icon:' '}.mce-ico,i.mce-i-checkbox{zoom:expression(this.runtimeStyle['zoom'] = '1',this.innerHTML = this.currentStyle['-ie7-icon'].substr(1,1)+' ')}.mce-i-save{-ie7-icon:"\e000"}.mce-i-newdocument{-ie7-icon:"\e001"}.mce-i-fullpage{-ie7-icon:"\e002"}.mce-i-alignleft{-ie7-icon:"\e003"}.mce-i-aligncenter{-ie7-icon:"\e004"}.mce-i-alignright{-ie7-icon:"\e005"}.mce-i-alignjustify{-ie7-icon:"\e006"}.mce-i-cut{-ie7-icon:"\e007"}.mce-i-paste{-ie7-icon:"\e008"}.mce-i-searchreplace{-ie7-icon:"\e009"}.mce-i-bullist{-ie7-icon:"\e00a"}.mce-i-numlist{-ie7-icon:"\e00b"}.mce-i-indent{-ie7-icon:"\e00c"}.mce-i-outdent{-ie7-icon:"\e00d"}.mce-i-blockquote{-ie7-icon:"\e00e"}.mce-i-undo{-ie7-icon:"\e00f"}.mce-i-redo{-ie7-icon:"\e010"}.mce-i-link{-ie7-icon:"\e011"}.mce-i-unlink{-ie7-icon:"\e012"}.mce-i-anchor{-ie7-icon:"\e013"}.mce-i-image{-ie7-icon:"\e014"}.mce-i-media{-ie7-icon:"\e015"}.mce-i-help{-ie7-icon:"\e016"}.mce-i-code{-ie7-icon:"\e017"}.mce-i-inserttime{-ie7-icon:"\e018"}.mce-i-preview{-ie7-icon:"\e019"}.mce-i-forecolor{-ie7-icon:"\e01a"}.mce-i-backcolor{-ie7-icon:"\e01a"}.mce-i-table{-ie7-icon:"\e01b"}.mce-i-hr{-ie7-icon:"\e01c"}.mce-i-removeformat{-ie7-icon:"\e01d"}.mce-i-subscript{-ie7-icon:"\e01e"}.mce-i-superscript{-ie7-icon:"\e01f"}.mce-i-charmap{-ie7-icon:"\e020"}.mce-i-emoticons{-ie7-icon:"\e021"}.mce-i-print{-ie7-icon:"\e022"}.mce-i-fullscreen{-ie7-icon:"\e023"}.mce-i-spellchecker{-ie7-icon:"\e024"}.mce-i-nonbreaking{-ie7-icon:"\e025"}.mce-i-template{-ie7-icon:"\e026"}.mce-i-pagebreak{-ie7-icon:"\e027"}.mce-i-restoredraft{-ie7-icon:"\e028"}.mce-i-untitled{-ie7-icon:"\e029"}.mce-i-bold{-ie7-icon:"\e02a"}.mce-i-italic{-ie7-icon:"\e02b"}.mce-i-underline{-ie7-icon:"\e02c"}.mce-i-strikethrough{-ie7-icon:"\e02d"}.mce-i-visualchars{-ie7-icon:"\e02e"}.mce-i-ltr{-ie7-icon:"\e02f"}.mce-i-rtl{-ie7-icon:"\e030"}.mce-i-copy{-ie7-icon:"\e031"}.mce-i-resize{-ie7-icon:"\e032"}.mce-i-browse{-ie7-icon:"\e034"}.mce-i-checkbox,.mce-i-selected{-ie7-icon:"\e033"}.mce-i-selected{visibility:hidden}.mce-i-backcolor{background:#BBB}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.min.css b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.min.css new file mode 100644 index 0000000..1c7e683 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/skins/lightgray/skin.min.css @@ -0,0 +1 @@ +.mce-container,.mce-container *,.mce-widget,.mce-widget *{margin:0;padding:0;border:0;outline:0;vertical-align:top;background:transparent;text-decoration:none;color:#000;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;text-shadow:none;float:none;position:static;width:auto;height:auto;white-space:nowrap;cursor:inherit;-webkit-tap-highlight-color:transparent;line-height:normal}.mce-container *[unselectable]{-moz-user-select:none;-webkit-user-select:none;-o-user-select:none;user-select:none}.mce-container ::-webkit-scrollbar{width:8px;height:8px;-webkit-border-radius:4px}.mce-container ::-webkit-scrollbar-track,.mce-container ::-webkit-scrollbar-track-piece{background-color:transparent}.mce-container ::-webkit-scrollbar-thumb{background-color:rgba(53,57,71,0.3);width:6px;height:6px;-webkit-border-radius:4px}.mce-fade{opacity:0;-webkit-transition:opacity .15s linear;transition:opacity .15s linear}.mce-fade.mce-in{opacity:1}.mce-tinymce{visibility:visible!important;position:relative}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%;z-index:100}div.mce-fullscreen{position:fixed;top:0;left:0;width:100%;height:auto}.mce-tinymce{display:block;border-radius:2px}.mce-wordcount{float:right;padding:8px}.mce-edit-area{background:#FFF;filter:none}.mce-statusbar{position:relative}.mce-statusbar .mce-container-body{position:relative}.mce-fullscreen .mce-resizehandle{display:none}.mce-charmap{border-collapse:collapse}.mce-charmap td{cursor:default;border:1px solid #c5c5c5;width:20px;height:20px;line-height:20px;text-align:center;vertical-align:center;padding:2px}.mce-charmap td:hover{background:#d9d9d9}.mce-grid{border-spacing:2px;border-collapse:separate}.mce-grid a{display:block;border:1px solid transparent}.mce-grid a:hover{border-color:#c5c5c5}.mce-grid-border{margin:0 4px 0 4px}.mce-grid-border a{border-color:#e8e8e8;width:13px;height:13px}.mce-grid-border a:hover,.mce-grid-border a.mce-active{border-color:#c4daff;background:#deeafa}.mce-text-center{text-align:center}div.mce-tinymce-inline{width:100%;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.mce-container,.mce-container-body{display:block}.mce-autoscroll{overflow:hidden}.mce-scrollbar{position:absolute;width:7px;height:100%;top:2px;right:2px;opacity:.4;filter:alpha(opacity=40);zoom:1}.mce-scrollbar-h{top:auto;right:auto;left:2px;bottom:2px;width:100%;height:7px}.mce-scrollbar-thumb{position:absolute;background-color:#000;border:1px solid #888;border-color:rgba(85,85,85,0.6);width:5px;height:100%;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scrollbar-h .mce-scrollbar-thumb{width:100%;height:5px}.mce-scrollbar:hover,.mce-scrollbar.mce-active{background-color:#AAA;opacity:.6;filter:alpha(opacity=60);zoom:1;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mce-scroll{position:relative}.mce-panel{border:0 solid #9e9e9e;background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}.mce-floatpanel{position:absolute;-webkit-box-shadow:#ccc 5px 5px 5px;-moz-box-shadow:#ccc 5px 5px 5px;box-shadow:#ccc 5px 5px 5px}.mce-floatpanel .mce-arrow,.mce-floatpanel .mce-arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.mce-floatpanel .mce-arrow{border-width:11px}.mce-floatpanel .mce-arrow:after{border-width:10px;content:""}.mce-floatpanel.mce-popover{position:absolute;top:0;left:0;background:#fff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-floatpanel.mce-popover.mce-bottom{margin-top:10px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.mce-floatpanel.mce-popover.mce-bottom>.mce-arrow:after{top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#fff}.mce-floatpanel.mce-popover.mce-bottom.mce-start{margin-left:-22px}.mce-floatpanel.mce-popover.mce-bottom.mce-start>.mce-arrow{left:20px}.mce-floatpanel.mce-popover.mce-bottom.mce-end{margin-left:22px}.mce-floatpanel.mce-popover.mce-bottom.mce-end>.mce-arrow{right:10px;left:auto}.mce-fullscreen{border:0;padding:0;margin:0;overflow:hidden;background:#FFF;height:100%}div.mce-fullscreen{position:fixed;top:0;left:0}#mce-modal-block{opacity:0;filter:alpha(opacity=0);zoom:1;position:fixed;left:0;top:0;width:100%;height:100%;background:#000}#mce-modal-block.mce-in{opacity:.3;filter:alpha(opacity=30);zoom:1}.mce-window-move{cursor:move}.mce-window{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0,0,0,0.3);-moz-box-shadow:0 3px 7px rgba(0,0,0,0.3);box-shadow:0 3px 7px rgba(0,0,0,0.3);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;background:#FFF;position:fixed;top:0;left:0;opacity:0;-webkit-transition:opacity 150ms ease-in;transition:opacity 150ms ease-in}.mce-window.mce-in{opacity:1}.mce-window-head{padding:9px 15px;border-bottom:1px solid #EEE;position:relative}.mce-window-head .mce-close{position:absolute;right:15px;top:9px;font-size:20px;font-weight:bold;line-height:20px;color:#CCC;text-shadow:0 1px 0 white;cursor:pointer;height:20px;overflow:hidden}.mce-close:hover{color:#AAA}.mce-window-head .mce-title{display:inline-block;*display:inline;*zoom:1;line-height:20px;font-size:20px;font-weight:bold;text-rendering:optimizelegibility;padding-right:10px}.mce-window .mce-container-body{display:block}.mce-foot{display:block;background-color:whiteSmoke;border-top:1px solid #DDD;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #fff;-moz-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.mce-window-head .mce-dragh{position:absolute;top:0;left:0;cursor:move;width:90%;height:100%}.mce-window iframe{width:100%;height:100%}.mce-window.mce-fullscreen,.mce-window.mce-fullscreen .mce-foot{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-abs-layout{position:relative}body .mce-abs-layout-item,.mce-abs-end{position:absolute}.mce-abs-end{width:1px;height:1px}.mce-container-body.mce-abs-layout{overflow:hidden}.mce-tooltip{position:absolute;padding:5px;opacity:.8;filter:alpha(opacity=80);zoom:1}.mce-tooltip-inner{font-size:11px;background-color:#000;color:#fff;max-width:200px;padding:5px 8px 4px 8px;text-align:center;white-space:normal}.mce-tooltip-inner{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-tooltip-inner{-webkit-box-shadow:0 0 5px #000;-moz-box-shadow:0 0 5px #000;box-shadow:0 0 5px #000}.mce-tooltip-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #000}.mce-tooltip-arrow-n{border-bottom-color:#000}.mce-tooltip-arrow-s{border-top-color:#000}.mce-tooltip-arrow-e{border-left-color:#000}.mce-tooltip-arrow-w{border-right-color:#000}.mce-tooltip-n .mce-tooltip-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-nw .mce-tooltip-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-ne .mce-tooltip-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-s .mce-tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-sw .mce-tooltip-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-se .mce-tooltip-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.mce-tooltip-e .mce-tooltip-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.mce-tooltip-w .mce-tooltip-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}.mce-btn{border:1px solid #c5c5c5;position:relative;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-btn:hover,.mce-btn:focus{text-decoration:none;color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn.mce-disabled,.mce-btn.mce-disabled:hover{cursor:default;background-image:none;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn.mce-active,.mce-btn.mce-active:hover{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn button{padding:4px 10px;font-size:14px;line-height:20px;*line-height:16px;cursor:pointer;color:#333;overflow:visible;-webkit-appearance:none}.mce-btn button::-moz-focus-inner{border:0;padding:0}.mce-btn i{text-shadow:1px 1px #fff}.mce-primary{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#006dcc;background-image:-moz-linear-gradient(top,#08c,#04c);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#04c));background-image:-webkit-linear-gradient(top,#08c,#04c);background-image:-o-linear-gradient(top,#08c,#04c);background-image:linear-gradient(to bottom,#08c,#04c);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0044cc',GradientType=0);zoom:1;border-color:#04c #04c #002b80;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary:hover,.mce-primary:focus{color:#fff;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#005fb3;background-image:-moz-linear-gradient(top,#0077b3,#003cb3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#0077b3),to(#003cb3));background-image:-webkit-linear-gradient(top,#0077b3,#003cb3);background-image:-o-linear-gradient(top,#0077b3,#003cb3);background-image:linear-gradient(to bottom,#0077b3,#003cb3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0077b3',endColorstr='#ff003cb3',GradientType=0);zoom:1;border-color:#003cb3 #003cb3 #026;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-primary button{color:#fff}.mce-btn-large button{padding:9px 14px;font-size:16px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px}.mce-btn-large i{margin-top:2px}.mce-btn-small button{padding:3px 5px;font-size:12px;line-height:15px}.mce-btn-small i{margin-top:0}.mce-btn .mce-caret{margin-top:8px;*margin-top:6px;margin-left:0}.mce-btn-small .mce-caret{margin-top:6px;*margin-top:4px;margin-left:0}.mce-caret{display:inline-block;*display:inline;*zoom:1;width:0;height:0;vertical-align:top;border-top:4px solid #444;border-right:4px solid transparent;border-left:4px solid transparent;content:""}.mce-disabled .mce-caret{border-top-color:#999}.mce-caret.mce-up{border-bottom:4px solid #444;border-top:0}.mce-btn-group .mce-btn{border-width:1px 0 1px 0;margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0}.mce-btn-group .mce-btn:hover,.mce-btn-group .mce-btn:focus{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#e3e3e3;background-image:-moz-linear-gradient(top,#f2f2f2,#ccc);background-image:-webkit-gradient(linear,0 0,0 100%,from(#f2f2f2),to(#ccc));background-image:-webkit-linear-gradient(top,#f2f2f2,#ccc);background-image:-o-linear-gradient(top,#f2f2f2,#ccc);background-image:linear-gradient(to bottom,#f2f2f2,#ccc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2',endColorstr='#ffcccccc',GradientType=0);zoom:1;border-color:#ccc #ccc #a6a6a6;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-disabled,.mce-btn-group .mce-btn.mce-disabled:hover{-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fff,#d9d9d9);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fff),to(#d9d9d9));background-image:-webkit-linear-gradient(top,#fff,#d9d9d9);background-image:-o-linear-gradient(top,#fff,#d9d9d9);background-image:linear-gradient(to bottom,#fff,#d9d9d9);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffd9d9d9',GradientType=0);zoom:1;border-color:#d9d9d9 #d9d9d9 #b3b3b3;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25)}.mce-btn-group .mce-btn.mce-active,.mce-btn-group .mce-btn.mce-active:hover,.mce-btn-group .mce-btn:active{color:#333;text-shadow:0 1px 1px rgba(255,255,255,0.75);background-color:#d6d6d6;background-image:-moz-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-webkit-gradient(linear,0 0,0 100%,from(#e6e6e6),to(#bfbfbf));background-image:-webkit-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:-o-linear-gradient(top,#e6e6e6,#bfbfbf);background-image:linear-gradient(to bottom,#e6e6e6,#bfbfbf);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe6e6e6',endColorstr='#ffbfbfbf',GradientType=0);zoom:1;border-color:#bfbfbf #bfbfbf #999;border-color:rgba(0,0,0,0.1) rgba(0,0,0,0.1) rgba(0,0,0,0.25);-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-btn-group .mce-btn.mce-disabled button{opacity:.65;filter:alpha(opacity=65);zoom:1}.mce-btn-group .mce-first{border-left:1px solid #c5c5c5;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.mce-btn-group .mce-last{border-right:1px solid #c5c5c5;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.mce-btn-group .mce-first.mce-last{-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-btn-group .mce-btn.mce-flow-layout-item{margin:0}.mce-checkbox{cursor:pointer}i.mce-i-checkbox{margin:0 3px 0 0;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1;text-indent:-10em;*font-size:0;*line-height:0;*text-indent:0}.mce-checked i.mce-i-checkbox{color:#000;font-size:16px;line-height:16px;text-indent:0}.mce-checkbox:focus i.mce-i-checkbox{border:1px solid #59a5e1;border:1px solid rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-colorbutton .mce-ico{position:relative}.mce-colorpicker{background:#FFF}.mce-colorbutton-grid{margin:4px}.mce-grid td div{border:1px solid #808080;width:12px;height:12px;margin:2px;cursor:pointer}.mce-grid td div:hover{border-color:black}.mce-grid td div:focus{border-color:#59a5e1;outline:1px solid rgba(82,168,236,0.8);border-color:rgba(82,168,236,0.8)}.mce-colorbutton{position:relative}.mce-colorbutton .mce-preview{display:block;position:absolute;left:50%;top:50%;margin-left:-8px;margin-top:7px;background:gray;width:16px;height:2px;overflow:hidden}.mce-combobox{display:inline-block;*display:inline;*zoom:1;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;width:100px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05)}.mce-combobox input{border-color:1px solid #c5c5c5;border-right-color:rgba(0,0,0,0.15);height:28px}.mce-combobox.mce-has-open input{-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px}.mce-combobox .mce-btn{border-left:0;-webkit-border-radius:0 4px 4px 0;-moz-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0}.mce-combobox button{padding-right:8px;padding-left:8px}.mce-combobox *:focus{border-color:#59a5e1;border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-path{display:inline-block;*display:inline;*zoom:1;padding:8px;white-space:normal}.mce-path .mce-txt{display:inline-block;padding-right:3px}.mce-path .mce-path-body{display:inline-block}.mce-path-item{display:inline-block;*display:inline;*zoom:1;cursor:pointer;color:#000}.mce-path-item:hover{text-decoration:underline}.mce-path-item:focus{background:gray;color:white}.mce-path .mce-divider{display:inline}.mce-fieldset{border:0 solid #9e9e9e;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.mce-fieldset>.mce-container-body{margin-top:-15px}.mce-fieldset-title{margin-left:5px;padding:0 5px 0 5px}.mce-fit-layout{display:inline-block;*display:inline;*zoom:1}.mce-fit-layout-item{position:absolute}.mce-flow-layout-item{display:inline-block;*display:inline;*zoom:1}.mce-flow-layout-item{margin:2px 0 2px 2px}.mce-flow-layout-item.mce-last{margin-right:2px}.mce-flow-layout{white-space:normal}.mce-iframe{border:0 solid #c5c5c5;width:100%;height:100%}.mce-label{display:inline-block;*display:inline;*zoom:1;text-shadow:0 1px 1px rgba(255,255,255,0.75);border:0 solid #c5c5c5;overflow:hidden}.mce-label.mce-autoscroll{overflow:auto}.mce-label-disabled .mce-text{color:#999}.mce-label.mce-multiline{white-space:pre-wrap}.mce-menubar .mce-menubtn{border-color:transparent;background:transparent;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:none}.mce-menubar{border:1px solid #ddd}.mce-menubar .mce-menubtn button{color:#000}.mce-menubar .mce-menubtn:hover,.mce-menubar .mce-menubtn.mce-active,.mce-menubtn:focus{border-color:transparent;background:#ddd;filter:none}.mce-menubtn.mce-disabled span{color:#999}.mce-listbox button{text-align:left;padding-right:20px;position:relative}.mce-listbox .mce-caret{position:absolute;margin-top:-2px;right:8px;top:50%}.mce-listbox span{width:100%;display:block;overflow:hidden}.mce-menu-item{display:block;padding:6px 20px;clear:both;font-weight:normal;line-height:20px;color:#333;white-space:nowrap;cursor:pointer;line-height:normal}.mce-menu-item.mce-disabled .mce-text{color:#999}.mce-menu-item:hover,.mce-menu-item.mce-selected,.mce-menu-item:focus{text-decoration:none;color:#fff;background-color:#0081c2;background-image:-moz-linear-gradient(top,#08c,#0077b3);background-image:-webkit-gradient(linear,0 0,0 100%,from(#08c),to(#0077b3));background-image:-webkit-linear-gradient(top,#08c,#0077b3);background-image:-o-linear-gradient(top,#08c,#0077b3);background-image:linear-gradient(to bottom,#08c,#0077b3);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc',endColorstr='#ff0077b3',GradientType=0);zoom:1}.mce-menu-item:hover .mce-text,.mce-menu-item.mce-selected .mce-text{color:#fff}.mce-menu-item:hover .mce-ico,.mce-menu-item.mce-selected .mce-ico,.mce-menu-item:focus .mce-ico{color:white}.mce-menu-shortcut{display:inline-block;color:#999}.mce-menu-shortcut{display:inline-block;*display:inline;*zoom:1;padding:0 20px 0 20px}.mce-menu-item .mce-caret{margin-top:6px;*margin-top:3px;margin-right:6px;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid #666}.mce-menu-item.mce-selected .mce-caret,.mce-menu-item:focus .mce-caret{border-left-color:#FFF}.mce-menu-align .mce-menu-shortcut{*margin-top:-2px}.mce-menu-align .mce-menu-shortcut,.mce-menu-align .mce-caret{position:absolute;right:0}.mce-menu-item-sep,.mce-menu-item-sep:hover{padding:0;height:1px;margin:9px 1px;overflow:hidden;background:#e5e5e5;border-bottom:1px solid white;cursor:default;filter:none}.mce-menu-item.mce-active i{visibility:visible}.mce-menu-item.mce-active{background-color:#c8def4;outline:1px solid #c5c5c5}.mce-menu-item-checkbox.mce-active{background-color:#FFF;outline:0}.mce-menu{filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background:transparent;z-index:1000;padding:5px 0 5px 0;margin:2px 0 0;min-width:160px;background:#FFF;border:1px solid #CCC;border:1px solid rgba(0,0,0,0.2);z-index:1002;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.mce-menu i{display:none}.mce-menu-has-icons i{display:inline-block;*display:inline;*zoom:1}.mce-menu-sub{margin-top:-6px;margin-left:-1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px}i.mce-radio{padding:1px;margin:0 3px 0 0;background-color:#fafafa;border:1px solid #cacece;-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.2),0 1px 2px rgba(0,0,0,0.05);background-color:#f0f0f0;background-image:-moz-linear-gradient(top,#fdfdfd,#ddd);background-image:-webkit-gradient(linear,0 0,0 100%,from(#fdfdfd),to(#ddd));background-image:-webkit-linear-gradient(top,#fdfdfd,#ddd);background-image:-o-linear-gradient(top,#fdfdfd,#ddd);background-image:linear-gradient(to bottom,#fdfdfd,#ddd);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffdfdfd',endColorstr='#ffdddddd',GradientType=0);zoom:1}i.mce-radio:after{font-family:Arial;font-size:12px;color:#000;content:'\25cf'}.mce-container-body .mce-resizehandle{position:absolute;right:0;bottom:0;width:16px;height:16px;visibility:visible;cursor:s-resize;margin:0}.mce-resizehandle-both{cursor:se-resize}i.mce-i-resize{color:#000}.mce-spacer{visibility:hidden}.mce-splitbtn .mce-open{border-left:1px solid transparent;border-right:1px solid transparent}.mce-splitbtn:hover .mce-open{border-left-color:#c5c5c5;border-right-color:#c5c5c5}.mce-splitbtn button{padding-right:4px}.mce-splitbtn .mce-open{padding-left:4px}.mce-splitbtn .mce-open.mce-active{-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 2px 4px rgba(0,0,0,0.15),0 1px 2px rgba(0,0,0,0.05)}.mce-stack-layout-item{display:block}.mce-tabs{display:block;border-bottom:1px solid #ccc}.mce-tab{display:inline-block;*display:inline;*zoom:1;border:1px solid #ccc;border-width:1px 1px 0 0;background:#e3e3e3;padding:8px;text-shadow:0 1px 1px rgba(255,255,255,0.75);height:13px;cursor:pointer}.mce-tab:hover{background:#fdfdfd}.mce-tab.mce-active{background:#fdfdfd;border-bottom-color:transparent;margin-bottom:-1px;height:14px}.mce-textbox{background:#FFF;border:1px solid #c5c5c5;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);display:inline-block;-webkit-transition:border linear .2s,box-shadow linear .2s;transition:border linear .2s,box-shadow linear .2s;height:28px;resize:none;padding:0 4px 0 4px;white-space:normal;color:#000}.mce-textbox:focus{border-color:rgba(82,168,236,0.8);-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(82,168,236,0.6)}.mce-placeholder .mce-textbox{color:#aaa}.mce-textbox.mce-multiline{padding:4px}.mce-throbber{position:absolute;top:0;left:0;width:100%;height:100%;opacity:.6;filter:alpha(opacity=60);zoom:1;background:#fff url('img/loader.gif') no-repeat center center}@font-face{font-family:'tinymce';src:url('fonts/icomoon.eot');src:url('fonts/icomoon.eot?#iefix') format('embedded-opentype'),url('fonts/icomoon.svg#icomoon') format('svg'),url('fonts/icomoon.woff') format('woff'),url('fonts/icomoon.ttf') format('truetype');font-weight:normal;font-style:normal}.mce-ico{font-family:'tinymce',Arial;font-style:normal;font-weight:normal;font-size:16px;line-height:16px;vertical-align:text-top;-webkit-font-smoothing:antialiased;display:inline-block;background:transparent center center;width:16px;height:16px;color:#333}.mce-i-save:before{content:"\e000"}.mce-i-newdocument:before{content:"\e001"}.mce-i-fullpage:before{content:"\e002"}.mce-i-alignleft:before{content:"\e003"}.mce-i-aligncenter:before{content:"\e004"}.mce-i-alignright:before{content:"\e005"}.mce-i-alignjustify:before{content:"\e006"}.mce-i-cut:before{content:"\e007"}.mce-i-paste:before{content:"\e008"}.mce-i-searchreplace:before{content:"\e009"}.mce-i-bullist:before{content:"\e00a"}.mce-i-numlist:before{content:"\e00b"}.mce-i-indent:before{content:"\e00c"}.mce-i-outdent:before{content:"\e00d"}.mce-i-blockquote:before{content:"\e00e"}.mce-i-undo:before{content:"\e00f"}.mce-i-redo:before{content:"\e010"}.mce-i-link:before{content:"\e011"}.mce-i-unlink:before{content:"\e012"}.mce-i-anchor:before{content:"\e013"}.mce-i-image:before{content:"\e014"}.mce-i-media:before{content:"\e015"}.mce-i-help:before{content:"\e016"}.mce-i-code:before{content:"\e017"}.mce-i-inserttime:before{content:"\e018"}.mce-i-preview:before{content:"\e019"}.mce-i-forecolor:before{content:"\e01a"}.mce-i-backcolor:before{content:"\e01a"}.mce-i-table:before{content:"\e01b"}.mce-i-hr:before{content:"\e01c"}.mce-i-removeformat:before{content:"\e01d"}.mce-i-subscript:before{content:"\e01e"}.mce-i-superscript:before{content:"\e01f"}.mce-i-charmap:before{content:"\e020"}.mce-i-emoticons:before{content:"\e021"}.mce-i-print:before{content:"\e022"}.mce-i-fullscreen:before{content:"\e023"}.mce-i-spellchecker:before{content:"\e024"}.mce-i-nonbreaking:before{content:"\e025"}.mce-i-template:before{content:"\e026"}.mce-i-pagebreak:before{content:"\e027"}.mce-i-restoredraft:before{content:"\e028"}.mce-i-untitled:before{content:"\e029"}.mce-i-bold:before{content:"\e02a"}.mce-i-italic:before{content:"\e02b"}.mce-i-underline:before{content:"\e02c"}.mce-i-strikethrough:before{content:"\e02d"}.mce-i-visualchars:before{content:"\e02e"}.mce-i-ltr:before{content:"\e02f"}.mce-i-rtl:before{content:"\e030"}.mce-i-copy:before{content:"\e031"}.mce-i-resize:before{content:"\e032"}.mce-i-browse:before{content:"\e034"}.mce-i-checkbox:before,.mce-i-selected:before{content:"\e033"}.mce-i-selected{visibility:hidden}i.mce-i-backcolor{text-shadow:none;background:#BBB}
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/themes/modern/theme.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/themes/modern/theme.min.js new file mode 100644 index 0000000..1fbd815 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/themes/modern/theme.min.js @@ -0,0 +1 @@ +tinymce.ThemeManager.add("modern",function(e){function t(){function t(t){var r,i=[];if(t)return c(t.split(/[ ,]/),function(t){function n(){var n=e.selection;"bullist"==o&&n.selectorChanged("ul > li",function(e,n){for(var r,i=n.parents.length;i--&&(r=n.parents[i].nodeName,"OL"!=r&&"UL"!=r););t.active("UL"==r)}),"numlist"==o&&n.selectorChanged("ol > li",function(e,n){for(var r,i=n.parents.length;i--&&(r=n.parents[i].nodeName,"OL"!=r&&"UL"!=r););t.active("OL"==r)}),t.settings.stateSelector&&n.selectorChanged(t.settings.stateSelector,function(e){t.active(e)},!0),t.settings.disabledStateSelector&&n.selectorChanged(t.settings.disabledStateSelector,function(e){t.disabled(e)})}var o;"|"==t?r=null:l.has(t)?(t={type:t},s.toolbar_items_size&&(t.size=s.toolbar_items_size),i.push(t),r=null):(r||(r={type:"buttongroup",items:[]},i.push(r)),e.buttons[t]&&(o=t,t=e.buttons[o],t.type=t.type||"button",s.toolbar_items_size&&(t.size=s.toolbar_items_size),t=l.create(t),r.items.push(t),e.initialized?n():e.on("init",n)))}),n.push({type:"toolbar",layout:"flow",items:i}),!0}for(var n=[],r=1;10>r&&t(s["toolbar"+r]);r++);return n.length||t(s.toolbar||f),n}function n(){function t(t){var n;return"|"==t?{text:"|"}:n=e.menuItems[t]}function n(n){var r,i,o,a;if(s.menu?(i=s.menu[n],a=!0):i=d[n],i){r={text:i.title},o=[],c((i.items||"").split(/[ ,]/),function(e){var n=t(e);n&&o.push(t(e))}),a||c(e.menuItems,function(e){e.context==n&&("before"==e.separator&&o.push({text:"|"}),e.prependToContext?o.unshift(e):o.push(e),"after"==e.separator&&o.push({text:"|"}))});for(var l=0;o.length>l;l++)"|"==o[l].text&&(0===l||l==o.length-1)&&o.splice(l,1);if(r.menu=o,!r.menu.length)return null}return r}var r=[],i=s.menubar?tinymce.makeMap(s.menubar,/[ ,]/):!1;for(var o in d)(!i||i[o])&&(o=n(o),o&&r.push(o));return r}function r(t){function n(e){var n=t.find(e)[0];n&&n.focus()}e.shortcuts.add("Alt+F9","",function(){n("menubar")}),e.shortcuts.add("Alt+F10","",function(){n("toolbar")}),e.shortcuts.add("Alt+F11","",function(){n("elementpath")}),t.on("cancel",function(){e.focus()})}function i(){function i(){if(f&&f.visible()){var t=u.getPos(e.getBody());f.moveTo(t.x,t.y-f.layoutRect().h)}}function o(){f&&(f.show(),i(),u.addClass(e.getBody(),"mce-edit-focus"))}function c(){f&&(f.hide(),u.removeClass(e.getBody(),"mce-edit-focus"),document.activeElement&&-1==document.activeElement.className.indexOf("mce-content-body")&&u.setStyle(document.body,"padding-top",0))}function d(){return f?(f.visible()||o(),void 0):(f=a.panel=l.create({type:"floatpanel",classes:"tinymce tinymce-inline",layout:"flex",direction:"column",autohide:!1,autofix:!0,border:1,items:[s.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},{type:"panel",name:"toolbar",layout:"stack",items:t()}]}),f.renderTo(document.body).reflow(),r(f),o(),e.on("nodeChange",i),e.on("activate",o),e.on("deactivate",c),void 0)}var f;return s.content_editable=!0,e.on("focus",d),e.on("blur",c),e.on("remove",function(){f.remove(),f=null}),{}}function o(i){var o;return o=a.panel=l.create({type:"panel",classes:"tinymce",style:"visibility: hidden",layout:"stack",border:1,items:[s.menubar===!1?null:{type:"menubar",border:"0 0 1 0",items:n()},{type:"panel",layout:"stack",items:t()},{type:"panel",name:"iframe",layout:"stack",classes:"edit-area",html:"",border:"1 0 0 0"}]}),s.statusbar!==!1&&o.add({type:"panel",name:"statusbar",classes:"statusbar",layout:"flow",border:"1 0 0 0",items:[{type:"elementpath"},s.resize!==!1?{type:"resizehandle",editor:e}:null]}),o.renderBefore(i.targetNode).reflow(),s.width&&tinymce.DOM.setStyle(o.getEl(),"width",s.width),e.on("remove",function(){o.remove(),o=null}),r(o),{iframeContainer:o.find("#iframe")[0].getEl(),editorContainer:o.getEl()}}var a=this,s=e.settings,l=tinymce.ui.Factory,c=tinymce.each,u=tinymce.DOM,d={file:{title:"File",items:"newdocument"},edit:{title:"Edit",items:"undo redo | cut copy paste | selectall"},insert:{title:"Insert",items:"|"},view:{title:"View",items:"visualaid |"},format:{title:"Format",items:"bold italic underline strikethrough superscript subscript | formats | removeformat"},table:{title:"Table"},tools:{title:"Tools"}},f="undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image";a.renderUI=function(t){var n=s.skin!==!1?s.skin||"lightgray":!1;return n&&(tinymce.Env.ie&&7>=tinymce.Env.ie?tinymce.DOM.loadCSS(tinymce.baseURL+"/skins/"+n+"/skin.ie7.min.css"):tinymce.DOM.loadCSS(tinymce.baseURL+"/skins/"+n+"/skin.min.css"),e.contentCSS.push(tinymce.baseURL+"/skins/"+n+"/content.min.css")),e.on("ProgressState",function(e){a.throbber=a.throbber||new tinymce.ui.Throbber(a.panel.getEl("body")),e.state?a.throbber.show(e.time):a.throbber.hide()}),s.inline?i(t):o(t)}});
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/tinymce.min.js b/97suifangqa/staticfiles/tinymce/js/tinymce/tinymce.min.js new file mode 100644 index 0000000..2079a5a --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/tinymce.min.js @@ -0,0 +1,10 @@ +// 4.0b2 (2013-04-24) +(function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;e.length>i;++i){if(n=s[e[i]]||o(e[i]),!n)throw"module definition dependecy not found: "+e[i];r.push(n)}t.apply(null,r)}function r(e,r,i){if("string"!=typeof e)throw"invalid module definition, module id must be defined and be a string";if(r===t)throw"invalid module definition, dependencies must be specified";if(i===t)throw"invalid module definition, definition function must be specified";n(r,function(){s[e]=i.apply(null,arguments)})}function i(e){return!!s[e]}function o(t){for(var n=e,r=t.split(/[.\/]/),i=0;r.length>i;++i){if(!n[r[i]])return;n=n[r[i]]}return n}function a(n){for(var r=0;n.length>r;r++){for(var i=e,o=n[r],a=o.split(/[.\/]/),l=0;a.length-1>l;++l)i[a[l]]===t&&(i[a[l]]={}),i=i[a[l]];i[a[a.length-1]]=s[o]}}var s={},l="tinymce/dom/EventUtils",c="tinymce/dom/Sizzle",u="tinymce/dom/DomQuery",d="tinymce/html/Styles",f="tinymce/dom/TreeWalker",p="tinymce/util/Tools",h="tinymce/dom/Range",m="tinymce/html/Entities",g="tinymce/Env",v="tinymce/dom/DOMUtils",y="tinymce/dom/ScriptLoader",b="tinymce/AddOnManager",C="tinymce/html/Node",x="tinymce/html/Schema",w="tinymce/html/SaxParser",_="tinymce/html/DomParser",N="tinymce/html/Writer",E="tinymce/html/Serializer",k="tinymce/dom/Serializer",S="tinymce/dom/TridentSelection",T="tinymce/util/VK",R="tinymce/dom/ControlSelection",A="tinymce/dom/Selection",B="tinymce/dom/RangeUtils",L="tinymce/Formatter",H="tinymce/UndoManager",M="tinymce/EnterKey",D="tinymce/ForceBlocks",P="tinymce/EditorCommands",O="tinymce/util/URI",I="tinymce/util/Class",F="tinymce/ui/Selector",W="tinymce/ui/Collection",z="tinymce/ui/DomUtils",V="tinymce/ui/Control",U="tinymce/ui/Factory",q="tinymce/ui/Container",$="tinymce/ui/DragHelper",j="tinymce/ui/Scrollable",K="tinymce/ui/Panel",G="tinymce/ui/Movable",Y="tinymce/ui/Resizable",X="tinymce/ui/FloatPanel",J="tinymce/ui/KeyboardNavigation",Q="tinymce/ui/Window",Z="tinymce/ui/MessageBox",et="tinymce/WindowManager",tt="tinymce/util/Quirks",nt="tinymce/util/Observable",rt="tinymce/Shortcuts",it="tinymce/Editor",ot="tinymce/util/I18n",at="tinymce/FocusManager",st="tinymce/EditorManager",lt="tinymce/LegacyInput",ct="tinymce/util/XHR",ut="tinymce/util/JSON",dt="tinymce/util/JSONRequest",ft="tinymce/util/JSONP",pt="tinymce/util/LocalStorage",ht="tinymce/Compat",mt="tinymce/ui/Layout",gt="tinymce/ui/AbsoluteLayout",vt="tinymce/ui/Tooltip",yt="tinymce/ui/Widget",bt="tinymce/ui/Button",Ct="tinymce/ui/ButtonGroup",xt="tinymce/ui/Checkbox",wt="tinymce/ui/CheckboxGroup",_t="tinymce/ui/PanelButton",Nt="tinymce/ui/ColorButton",Et="tinymce/ui/ComboBox",kt="tinymce/ui/Path",St="tinymce/ui/ElementPath",Tt="tinymce/ui/FormItem",Rt="tinymce/ui/Form",At="tinymce/ui/FieldSet",Bt="tinymce/ui/FilePicker",Lt="tinymce/ui/FitLayout",Ht="tinymce/ui/FlexLayout",Mt="tinymce/ui/FlowLayout",Dt="tinymce/ui/FormatControls",Pt="tinymce/ui/GridLayout",Ot="tinymce/ui/Iframe",It="tinymce/ui/Label",Ft="tinymce/ui/Toolbar",Wt="tinymce/ui/MenuBar",zt="tinymce/ui/MenuButton",Vt="tinymce/ui/ListBox",Ut="tinymce/ui/MenuItem",qt="tinymce/ui/Menu",$t="tinymce/ui/Radio",jt="tinymce/ui/RadioGroup",Kt="tinymce/ui/ResizeHandle",Gt="tinymce/ui/Spacer",Yt="tinymce/ui/SplitButton",Xt="tinymce/ui/StackLayout",Jt="tinymce/ui/TabPanel",Qt="tinymce/ui/TextBox",Zt="tinymce/ui/Throbber";r(l,[],function(){function e(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function n(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function r(e,t){function n(){return!1}function r(){return!0}var i,o=t||{};for(i in e)"layerX"!==i&&"layerY"!==i&&(o[i]=e[i]);return o.target||(o.target=o.srcElement||document),o.preventDefault=function(){o.isDefaultPrevented=r,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},o.stopPropagation=function(){o.isPropagationStopped=r,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},o.stopImmediatePropagation=function(){o.isImmediatePropagationStopped=r,o.stopPropagation()},o.isDefaultPrevented||(o.isDefaultPrevented=n,o.isPropagationStopped=n,o.isImmediatePropagationStopped=n),o}function i(r,i,o){function a(){o.domLoaded||(o.domLoaded=!0,i(u))}function s(){"complete"===c.readyState&&(n(c,"readystatechange",s),a())}function l(){try{c.documentElement.doScroll("left")}catch(e){return setTimeout(l,0),t}a()}var c=r.document,u={type:"ready"};return o.domLoaded?(i(u),t):(c.addEventListener?e(r,"DOMContentLoaded",a):(e(c,"readystatechange",s),c.documentElement.doScroll&&r===r.top&&l()),e(r,"load",a),t)}function o(){function t(e,t){var n,r,i,o;if(n=s[t][e.type])for(r=0,i=n.length;i>r;r++)if(o=n[r],o&&o.func.call(o.scope,e)===!1&&e.preventDefault(),e.isImmediatePropagationStopped())return}var o=this,s={},l,c,u,d,f;c=a+(+new Date).toString(32),d="onmouseenter"in document.documentElement,u="onfocusin"in document.documentElement,f={mouseenter:"mouseover",mouseleave:"mouseout"},l=1,o.domLoaded=!1,o.events=s,o.bind=function(n,a,p,h){function m(e){t(r(e||_.event),g)}var g,v,y,b,C,x,w,_=window;if(n&&3!==n.nodeType&&8!==n.nodeType){for(n[c]?g=n[c]:(g=l++,n[c]=g,s[g]={}),h=h||n,a=a.split(" "),y=a.length;y--;)b=a[y],x=m,C=w=!1,"DOMContentLoaded"===b&&(b="ready"),o.domLoaded&&"ready"===b&&"complete"==n.readyState?p.call(h,r({type:b})):(d||(C=f[b],C&&(x=function(e){var n,i;if(n=e.currentTarget,i=e.relatedTarget,i&&n.contains)i=n.contains(i);else for(;i&&i!==n;)i=i.parentNode;i||(e=r(e||_.event),e.type="mouseout"===e.type?"mouseleave":"mouseenter",e.target=n,t(e,g))})),u||"focusin"!==b&&"focusout"!==b||(w=!0,C="focusin"===b?"focus":"blur",x=function(e){e=r(e||_.event),e.type="focus"===e.type?"focusin":"focusout",t(e,g)}),v=s[g][b],v?"ready"===b&&o.domLoaded?p({type:b}):v.push({func:p,scope:h}):(s[g][b]=v=[{func:p,scope:h}],v.fakeName=C,v.capture=w,v.nativeHandler=x,"ready"===b?i(n,x,o):e(n,C||b,x,w)));return n=v=0,p}},o.unbind=function(e,t,r){var i,a,l,u,d,f;if(!e||3===e.nodeType||8===e.nodeType)return o;if(i=e[c]){if(f=s[i],t){for(t=t.split(" "),l=t.length;l--;)if(d=t[l],a=f[d]){if(r)for(u=a.length;u--;)a[u].func===r&&a.splice(u,1);r&&0!==a.length||(delete f[d],n(e,a.fakeName||d,a.nativeHandler,a.capture))}}else{for(d in f)a=f[d],n(e,a.fakeName||d,a.nativeHandler,a.capture);f={}}for(d in f)return o;delete s[i];try{delete e[c]}catch(p){e[c]=null}}return o},o.fire=function(e,n,i){var a;if(!e||3===e.nodeType||8===e.nodeType)return o;i=r(null,i),i.type=n,i.target=e;do a=e[c],a&&t(i,a),e=e.parentNode||e.ownerDocument||e.defaultView||e.parentWindow;while(e&&!i.isPropagationStopped());return o},o.clean=function(e){var t,n,r=o.unbind;if(!e||3===e.nodeType||8===e.nodeType)return o;if(e[c]&&r(e),e.getElementsByTagName||(e=e.document),e&&e.getElementsByTagName)for(r(e),n=e.getElementsByTagName("*"),t=n.length;t--;)e=n[t],e[c]&&r(e);return o},o.destory=function(){s={}},o.cancel=function(e){return e&&(e.preventDefault(),e.stopImmediatePropagation()),!1}}var a="mce-data-";return o.Event=new o,o.Event.bind(window,"ready",function(){}),o}),r(c,[],function(){function e(e){return gt.test(e+"")}function n(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>N.cacheLength&&delete e[t.shift()],e[n]=r,r}}function i(e){return e[F]=!0,e}function o(e){var t=L.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t=null}}function a(e,t,n,r){var i,o,a,s,l,c,u,p,h,m;if((t?t.ownerDocument||t:W)!==L&&B(t),t=t||L,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(M&&!r){if(i=vt.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&I(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return et.apply(n,t.getElementsByTagName(e)),n;if((a=i[3])&&z.getElementsByClassName&&t.getElementsByClassName)return et.apply(n,t.getElementsByClassName(a)),n}if(z.qsa&&!D.test(e)){if(u=!0,p=F,h=t,m=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){for(c=d(e),(u=t.getAttribute("id"))?p=u.replace(Ct,"\\$&"):t.setAttribute("id",p),p="[id='"+p+"'] ",l=c.length;l--;)c[l]=p+f(c[l]);h=mt.test(e)&&t.parentNode||t,m=c.join(",")}if(m)try{return et.apply(n,h.querySelectorAll(m)),n}catch(g){}finally{u||t.removeAttribute("id")}}}return C(e.replace(ct,"$1"),t,n,r)}function s(e,t){var n=t&&e,r=n&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function l(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function c(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return i(function(t){return t=+t,i(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function d(e,t){var n,r,i,o,s,l,c,u=$[e+" "];if(u)return t?0:u.slice(0);for(s=e,l=[],c=N.preFilter;s;){(!n||(r=ut.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=dt.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(ct," ")}),s=s.slice(n.length));for(o in N.filter)!(r=ht[o].exec(s))||c[o]&&!(r=c[o](r))||(n=r.shift(),i.push({value:n,type:o,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?a.error(e):$(e,l).slice(0)}function f(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=U++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,l,c,u=V+" "+o;if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i)if(c=t[F]||(t[F]={}),(l=c[r])&&l[0]===u){if((s=l[1])===!0||s===_)return s===!0}else if(l=c[r]=[u],l[1]=e(t,n,a)||_,l[1]===!0)return!0}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,c=null!=t;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),c&&t.push(s));return a}function g(e,t,n,r,o,a){return r&&!r[F]&&(r=g(r)),o&&!o[F]&&(o=g(o,a)),i(function(i,a,s,l){var c,u,d,f=[],p=[],h=a.length,g=i||b(t||"*",s.nodeType?[s]:s,[]),v=!e||!i&&t?g:m(g,f,e,s,l),y=n?o||(i?e:h||r)?[]:a:v;if(n&&n(v,y,s,l),r)for(c=m(y,p),r(c,[],s,l),u=c.length;u--;)(d=c[u])&&(y[p[u]]=!(v[p[u]]=d));if(i){if(o||e){if(o){for(c=[],u=y.length;u--;)(d=y[u])&&c.push(v[u]=d);o(null,y=[],c,l)}for(u=y.length;u--;)(d=y[u])&&(c=o?nt.call(i,d):f[u])>-1&&(i[c]=!(a[c]=d))}}else y=m(y===a?y.splice(h,y.length):y),o?o(null,a,y,l):et.apply(a,y)})}function v(e){for(var t,n,r,i=e.length,o=N.relative[e[0].type],a=o||N.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),c=p(function(e){return nt.call(t,e)>-1},a,!0),u=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):c(e,n,r))}];i>s;s++)if(n=N.relative[e[s].type])u=[p(h(u),n)];else{if(n=N.filter[e[s].type].apply(null,e[s].matches),n[F]){for(r=++s;i>r&&!N.relative[e[r].type];r++);return g(s>1&&h(u),s>1&&f(e.slice(0,s-1)).replace(ct,"$1"),n,r>s&&v(e.slice(s,r)),i>r&&v(e=e.slice(r)),i>r&&f(e))}u.push(n)}return h(u)}function y(e,t){var n=0,r=t.length>0,o=e.length>0,s=function(i,s,l,c,u){var d,f,p,h=[],g=0,v="0",y=i&&[],b=null!=u,C=T,x=i||o&&N.find.TAG("*",u&&s.parentNode||s),w=V+=null==C?1:Math.random()||.1;for(b&&(T=s!==L&&s,_=n);null!=(d=x[v]);v++){if(o&&d){for(f=0;p=e[f++];)if(p(d,s,l)){c.push(d);break}b&&(V=w,_=++n)}r&&((d=!p&&d)&&g--,i&&y.push(d))}if(g+=v,r&&v!==g){for(f=0;p=t[f++];)p(y,h,s,l);if(i){if(g>0)for(;v--;)y[v]||h[v]||(h[v]=Q.call(c));h=m(h)}et.apply(c,h),b&&!i&&h.length>0&&g+t.length>1&&a.uniqueSort(c)}return b&&(V=w,T=C),y};return r?i(s):s}function b(e,t,n){for(var r=0,i=t.length;i>r;r++)a(e,t[r],n);return n}function C(e,t,n,r){var i,o,a,s,l,c=d(e);if(!r&&1===c.length){if(o=c[0]=c[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&9===t.nodeType&&M&&N.relative[o[1].type]){if(t=(N.find.ID(a.matches[0].replace(wt,_t),t)||[])[0],!t)return n;e=e.slice(o.shift().value.length)}for(i=ht.needsContext.test(e)?0:o.length;i--&&(a=o[i],!N.relative[s=a.type]);)if((l=N.find[s])&&(r=l(a.matches[0].replace(wt,_t),mt.test(o[0].type)&&t.parentNode||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return et.apply(n,r),n;break}}return S(e,c)(r,t,!M,n,mt.test(e)),n}function x(){}var w,_,N,E,k,S,T,R,A,B,L,H,M,D,P,O,I,F="sizzle"+-new Date,W=window.document,z={},V=0,U=0,q=n(),$=n(),j=n(),K=!1,G=function(){return 0},Y=typeof t,X=1<<31,J=[],Q=J.pop,Z=J.push,et=J.push,tt=J.slice,nt=J.indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},rt="[\\x20\\t\\r\\n\\f]",it="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ot=it.replace("w","w#"),at="([*^$|!~]?=)",st="\\["+rt+"*("+it+")"+rt+"*(?:"+at+rt+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+ot+")|)|)"+rt+"*\\]",lt=":("+it+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+st.replace(3,8)+")*)|.*)\\)|)",ct=RegExp("^"+rt+"+|((?:^|[^\\\\])(?:\\\\.)*)"+rt+"+$","g"),ut=RegExp("^"+rt+"*,"+rt+"*"),dt=RegExp("^"+rt+"*([\\x20\\t\\r\\n\\f>+~])"+rt+"*"),ft=RegExp(lt),pt=RegExp("^"+ot+"$"),ht={ID:RegExp("^#("+it+")"),CLASS:RegExp("^\\.("+it+")"),NAME:RegExp("^\\[name=['\"]?("+it+")['\"]?\\]"),TAG:RegExp("^("+it.replace("w","w*")+")"),ATTR:RegExp("^"+st),PSEUDO:RegExp("^"+lt),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+rt+"*(even|odd|(([+-]|)(\\d*)n|)"+rt+"*(?:([+-]|)"+rt+"*(\\d+)|))"+rt+"*\\)|)","i"),needsContext:RegExp("^"+rt+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+rt+"*((?:-\\d)?\\d*)"+rt+"*\\)|)(?=[^-]|$)","i")},mt=/[\x20\t\r\n\f]*[+~]/,gt=/^[^{]+\{\s*\[native code/,vt=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,yt=/^(?:input|select|textarea|button)$/i,bt=/^h\d$/i,Ct=/'|\\/g,xt=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,wt=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,_t=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{et.apply(J=tt.call(W.childNodes),W.childNodes),J[W.childNodes.length].nodeType}catch(Nt){et={apply:J.length?function(e,t){Z.apply(e,tt.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}k=a.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},B=a.setDocument=function(n){var r=n?n.ownerDocument||n:W;return r!==L&&9===r.nodeType&&r.documentElement?(L=r,H=r.documentElement,M=!k(r),z.getElementsByTagName=o(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),z.attributes=o(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),z.getElementsByClassName=o(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),z.getByName=o(function(e){e.id=F+0,e.appendChild(L.createElement("a")).setAttribute("name",F),e.appendChild(L.createElement("i")).setAttribute("name",F),H.appendChild(e);var t=r.getElementsByName&&r.getElementsByName(F).length===2+r.getElementsByName(F+0).length;return H.removeChild(e),t}),z.sortDetached=o(function(e){return e.compareDocumentPosition&&1&e.compareDocumentPosition(L.createElement("div"))}),N.attrHandle=o(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==Y&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},z.getByName?(N.find.ID=function(e,t){if(typeof t.getElementById!==Y&&M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},N.filter.ID=function(e){var t=e.replace(wt,_t);return function(e){return e.getAttribute("id")===t}}):(N.find.ID=function(e,n){if(typeof n.getElementById!==Y&&M){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==Y&&r.getAttributeNode("id").value===e?[r]:t:[]}},N.filter.ID=function(e){var t=e.replace(wt,_t);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),N.find.TAG=z.getElementsByTagName?function(e,n){return typeof n.getElementsByTagName!==Y?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},N.find.NAME=z.getByName&&function(e,n){return typeof n.getElementsByName!==Y?n.getElementsByName(name):t},N.find.CLASS=z.getElementsByClassName&&function(e,n){return typeof n.getElementsByClassName!==Y&&M?n.getElementsByClassName(e):t},P=[],D=[":focus"],(z.qsa=e(r.querySelectorAll))&&(o(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||D.push("\\["+rt+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||D.push(":checked")}),o(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&D.push("[*^$]="+rt+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||D.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),D.push(",.*:")})),(z.matchesSelector=e(O=H.matchesSelector||H.mozMatchesSelector||H.webkitMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&o(function(e){z.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),P.push("!=",lt)}),D=RegExp(D.join("|")),P=P.length&&RegExp(P.join("|")),I=e(H.contains)||H.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},G=H.compareDocumentPosition?function(e,t){if(e===t)return K=!0,0;var n=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return n?1&n||R&&t.compareDocumentPosition(e)===n?e===r||I(W,e)?-1:t===r||I(W,t)?1:A?nt.call(A,e)-nt.call(A,t):0:4&n?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var n,i=0,o=e.parentNode,a=t.parentNode,l=[e],c=[t];if(e===t)return K=!0,0;if(!o||!a)return e===r?-1:t===r?1:o?-1:a?1:0;if(o===a)return s(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)c.unshift(n);for(;l[i]===c[i];)i++;return i?s(l[i],c[i]):l[i]===W?-1:c[i]===W?1:0},L):L},a.matches=function(e,t){return a(e,null,null,t)},a.matchesSelector=function(e,t){if((e.ownerDocument||e)!==L&&B(e),t=t.replace(xt,"='$1']"),z.matchesSelector&&M&&(!P||!P.test(t))&&!D.test(t))try{var n=O.call(e,t);if(n||z.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return a(t,L,null,[e]).length>0},a.contains=function(e,t){return(e.ownerDocument||e)!==L&&B(e),I(e,t)},a.attr=function(e,t){var n;return(e.ownerDocument||e)!==L&&B(e),M&&(t=t.toLowerCase()),(n=N.attrHandle[t])?n(e):!M||z.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},a.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},a.uniqueSort=function(e){var t,n=[],r=0,i=0;if(K=!z.detectDuplicates,R=!z.sortDetached,A=!z.sortStable&&e.slice(0),e.sort(G),K){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return e},E=a.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=E(t);return n},N=a.selectors={cacheLength:50,createPseudo:i,match:ht,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(wt,_t),e[3]=(e[4]||e[5]||"").replace(wt,_t),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||a.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&a.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return ht.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&ft.test(n)&&(t=d(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(wt,_t).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=q[e+" "];return t||(t=RegExp("(^|"+rt+")"+e+"("+rt+"|$)"))&&q(e,function(e){return t.test(e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=a.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var c,u,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(u=g[F]||(g[F]={}),c=u[e]||[],p=c[0]===V&&c[1],f=c[0]===V&&c[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){u[e]=[V,p,f];break}}else if(y&&(c=(t[F]||(t[F]={}))[e])&&c[0]===V)f=c[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[V,f]),d!==t)););return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=N.pseudos[e]||N.setFilters[e.toLowerCase()]||a.error("unsupported pseudo: "+e);return r[F]?r(t):r.length>1?(n=[e,e,"",t],N.setFilters.hasOwnProperty(e.toLowerCase())?i(function(e,n){for(var i,o=r(e,t),a=o.length;a--;)i=nt.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:i(function(e){var t=[],n=[],r=S(e.replace(ct,"$1"));return r[F]?i(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:i(function(e){return function(t){return a(e,t).length>0}}),contains:i(function(e){return function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:i(function(e){return pt.test(e||"")||a.error("unsupported lang: "+e),e=e.replace(wt,_t).toLowerCase(),function(t){var n;do if(n=M?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===H},focus:function(e){return e===L.activeElement&&(!L.hasFocus||L.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!N.pseudos.empty(e)},header:function(e){return bt.test(e.nodeName)},input:function(e){return yt.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[0>n?n+t:n]}),even:u(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:u(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:u(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=0>n?n+t:n;t>++r;)e.push(r);return e})}};for(w in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})N.pseudos[w]=l(w);for(w in{submit:!0,reset:!0})N.pseudos[w]=c(w);return S=a.compile=function(e,t){var n,r=[],i=[],o=j[e+" "];if(!o){for(t||(t=d(e)),n=t.length;n--;)o=v(t[n]),o[F]?r.push(o):i.push(o);o=j(e,y(i,r))}return o},N.pseudos.nth=N.pseudos.eq,x.prototype=N.filters=N.pseudos,N.setFilters=new x,z.sortStable=F.split("").sort(G).join("")===F,B(),[0,0].sort(G),z.detectDuplicates=K,"function"==typeof r&&r.amd?r(function(){return a}):window.Sizzle=a,a}),r(u,[l,c],function(e,n){function r(e){return e!==t}function i(e){return"string"==typeof e}function o(e){var t,n,r;for(r=g.createElement("div"),t=g.createDocumentFragment(),r.innerHTML=e;n=r.firstChild;)t.appendChild(n);return t}function a(e,t,n){var r;if("string"==typeof t)t=o(t);else if(t.length){for(r=0;t.length>r;r++)a(e,t[r],n);return e}for(r=e.length;r--;)n.call(e[r],t.parentNode?t:t);return e}function s(e,t){return e&&t&&-1!==(" "+e.className+" ").indexOf(" "+t+" ")}function l(e,t){var n;for(e=e||[],"string"==typeof e&&(e=e.split(" ")),t=t||{},n=e.length;n--;)t[e[n]]={};return t}function c(e,t){return new c.fn.init(e,t)}function u(e){var t=arguments,n,r,i;for(r=1;t.length>r;r++){n=t[r];for(i in n)e[i]=n[i]}return e}function d(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function f(e,t){var n;if(t.indexOf)return t.indexOf(e);for(n=t.length;n--;)if(t[n]===e)return n;return-1}function p(e,t){var n,r,i,o,a;if(e)if(n=e.length,n===o){for(r in e)if(e.hasOwnProperty(r)&&(a=e[r],t.call(a,a,r)===!1))break}else for(i=0;n>i&&(a=e[i],t.call(a,a,r)!==!1);i++);return e}function h(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!c(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i}function m(e,t,n,r){for(var i=[];e;e=e[n])r&&e.nodeType!==r||e===t||i.push(e);return i}var g=document,v=Array.prototype.push,y=Array.prototype.slice,b=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,C=e.Event,x=l("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"),w=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},_=/^\s*|\s*$/g,N=function(e){return null===e||e===t?"":(""+e).replace(_,"")};return c.fn=c.prototype={constructor:c,selector:"",length:0,init:function(e,t){var n=this,r,a;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(i(e)){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:b.exec(e),!r)return c(t||document).find(e);if(r[1])for(a=o(e).firstChild;a;)this.add(a),a=a.nextSibling;else{if(a=g.getElementById(r[2]),a.id!==r[2])return n.find(e);n.length=1,n[0]=a}}else this.add(e);return n},toArray:function(){return d(this)},add:function(e){var t=this;return w(e)?v.apply(t,e):e instanceof c?t.add(e.toArray()):v.call(t,e),t},attr:function(e,n){var i=this;if("object"==typeof e)p(e,function(e,t){i.attr(t,e)});else{if(!r(n))return i[0]&&1===i[0].nodeType?i[0].getAttribute(e):t;this.each(function(){1===this.nodeType&&this.setAttribute(e,n)})}return i},css:function(e,n){var i=this;if("object"==typeof e)p(e,function(e,t){i.css(t,e)});else{if(e=e.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),!r(n))return i[0]?i[0].style[e]:t;"number"!=typeof n||x[e]||(n+="px"),i.each(function(){var r=this.style;"opacity"===e&&this.runtimeStyle&&this.runtimeStyle.opacity===t&&(r.filter=""===n?"":"alpha(opacity="+100*n+")");try{r[e]=n}catch(i){}})}return i},remove:function(){for(var e=this,t,n=this.length;n--;)t=e[n],C.clean(t),t.parentNode&&t.parentNode.removeChild(t);return this},empty:function(){for(var e=this,t,n=this.length;n--;)for(t=e[n];t.firstChild;)t.removeChild(t.firstChild);return this},html:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerHTML=e;return t}return t[0]?t[0].innerHTML:""},text:function(e){var t=this,n;if(r(e)){for(n=t.length;n--;)t[n].innerText=t[0].textContent=e;return t}return t[0]?t[0].innerText||t[0].textContent:""},append:function(){return a(this,arguments,function(e){1===this.nodeType&&this.appendChild(e)})},prepend:function(){return a(this,arguments,function(e){1===this.nodeType&&this.insertBefore(e,this.firstChild)})},before:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this.nextSibling)}):e},after:function(){var e=this;return e[0]&&e[0].parentNode?a(e,arguments,function(e){this.parentNode.insertBefore(e,this)}):e},appendTo:function(e){return c(e).append(this),this},addClass:function(e){return this.toggleClass(e,!0)},removeClass:function(e){return this.toggleClass(e,!1)},toggleClass:function(e,t){var n=this;return-1!==e.indexOf(" ")?p(e.split(" "),function(){n.toggleClass(this,t)}):n.each(function(){var n=this,r;s(n,e)!==t&&(r=n.className,t?n.className+=r?" "+e:e:n.className=N((" "+r+" ").replace(" "+e+" "," ")))}),n},hasClass:function(e){return s(this[0],e)},each:function(e){return p(this,e)},on:function(e,t){return this.each(function(){C.bind(this,e,t)})},off:function(e,t){return this.each(function(){C.unbind(this,e,t)})},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},slice:function(){return new c(y.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},replaceWith:function(e){var t=this;return t[0]&&t[0].parentNode.replaceChild(c(e)[0],t[0]),t},wrap:function(e){return e=c(e)[0],this.each(function(){var t=this,n=e.cloneNode(!1);t.parentNode.insertBefore(n,t),n.appendChild(t)})},unwrap:function(){return this.each(function(){for(var e=this,t=e.firstChild,n;t;)n=t,t=t.nextSibling,e.parentNode.insertBefore(n,e)})},clone:function(){var e=[];return this.each(function(){e.push(this.cloneNode(!0))}),c(e)},find:function(e){var t,n,r=[];for(t=0,n=this.length;n>t;t++)c.find(e,this[t],r);return c(r)},push:v,sort:[].sort,splice:[].splice},u(c,{extend:u,toArray:d,inArray:f,isArray:w,each:p,trim:N,makeMap:l,find:n,expr:n.selectors,unique:n.uniqueSort,text:n.getText,isXMLDoc:n.isXML,contains:n.contains,filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?c.find.matchesSelector(t[0],e)?[t[0]]:[]:c.find.matches(e,t)}}),p({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return h(e,"parentNode")},parentsUntil:function(e,t){return h(e,"parentNode",t)},next:function(e){return m(e,"nextSibling",1)},prev:function(e){return m(e,"previousSibling",1)},nextNodes:function(e){return m(e,"nextSibling")},prevNodes:function(e){return m(e,"previousSibling")},children:function(e){return m(e.firstChild,"nextSibling",1)},contents:function(e){return d(("iframe"===e.nodeName?e.contentDocument||e.contentWindow.document:e).childNodes)}},function(e,t){c.fn[e]=function(n){var r=this,i;if(r.length>1)throw Error("DomQuery only supports traverse functions on a single node.");return r[0]&&(i=t(r[0],n)),i=c(i),n&&"parentsUntil"!==e?i.filter(n):i}}),c.fn.filter=function(e){return c.filter(e)},c.fn.is=function(e){return!!e&&this.filter(e).length>0},c.fn.init.prototype=c.fn,c}),r(d,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l,c={},u,d="\ufeff";for(e=e||{},u=("\\\" \\' \\; \\: ; : "+d).split(" "),l=0;u.length>l;l++)c[u[l]]=d+l,c[d+l]=u[l];return{toHex:function(e){return e.replace(r,n)},parse:function(t){function s(e,t){var n,r,i,o;n=h[e+"-top"+t],n&&(r=h[e+"-right"+t],n==r&&(i=h[e+"-bottom"+t],r==i&&(o=h[e+"-left"+t],i==o&&(h[e+t]=o,delete h[e+"-top"+t],delete h[e+"-right"+t],delete h[e+"-bottom"+t],delete h[e+"-left"+t])))) +}function l(e){var t=h[e],n;if(t&&!(0>t.indexOf(" "))){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return h[e]=t[0],!0}}function u(e,t,n,r){l(t)&&l(n)&&l(r)&&(h[e]=h[t]+" "+h[n]+" "+h[r],delete h[t],delete h[n],delete h[r])}function d(e){return y=!0,c[e]}function f(e,t){return y&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return c[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function p(e,t,n,r,i,o){return(i=i||o)?(i=f(i),"'"+i.replace(/\'/g,"\\'")+"'"):(t=f(t||n||r),b&&(t=b.call(C,t,"style")),"url('"+t.replace(/\'/g,"\\'")+"')")}var h={},m,g,v,y,b=e.url_converter,C=e.url_converter_scope||this;if(t){for(t=t.replace(/\\[\"\';:\uFEFF]/g,d).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,d)});m=o.exec(t);)g=m[1].replace(a,"").toLowerCase(),v=m[2].replace(a,""),g&&v.length>0&&("font-weight"===g&&"700"===v?v="bold":("color"===g||"background-color"===g)&&(v=v.toLowerCase()),v=v.replace(r,n),v=v.replace(i,p),h[g]=y?f(v,!0):v),o.lastIndex=m.index+m[0].length;s("border",""),s("border","-width"),s("border","-color"),s("border","-style"),s("padding",""),s("margin",""),u("border","border-width","border-style","border-color"),"medium none"===h.border&&delete h.border}return h},serialize:function(e,n){function r(n){var r,o,a,l;if(r=t.styles[n])for(o=0,a=r.length;a>o;o++)n=r[o],l=e[n],l!==s&&l.length>0&&(i+=(i.length>0?" ":"")+n+": "+l+";")}var i="",o,a;if(n&&t&&t.styles)r("*"),r(n);else for(o in e)a=e[o],a!==s&&a.length>0&&(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(f,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}var r=e;this.current=function(){return r},this.next=function(e){return r=n(r,"firstChild","nextSibling",e)},this.prev=function(e){return r=n(r,"lastChild","previousSibling",e)}}}),r(p,[],function(){function e(e,n){return n?"array"==n&&g(e)?!0:typeof e==n:e!==t}function n(e){var t=[],n,r;for(n=0,r=e.length;r>n;n++)t[n]=e[n];return t}function r(e,t,n){var r;for(e=e||[],t=t||",","string"==typeof e&&(e=e.split(t)),n=n||{},r=e.length;r--;)n[e[r]]={};return n}function i(e,n,r){var i,o;if(!e)return 0;if(r=r||e,e.length!==t){for(i=0,o=e.length;o>i;i++)if(n.call(r,e[i],i,e)===!1)return 0}else for(i in e)if(e.hasOwnProperty(i)&&n.call(r,e[i],i,e)===!1)return 0;return 1}function o(e,t){var n=[];return i(e,function(e){n.push(t(e))}),n}function a(e,t){var n=[];return i(e,function(e){(!t||t(e))&&n.push(e)}),n}function s(e,n,r){var i=this,o,a,s,l,c,u=0;if(e=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(e),s=e[3].match(/(^|\.)(\w+)$/i)[2],a=i.createNS(e[3].replace(/\.\w+$/,""),r),!a[s]){if("static"==e[2])return a[s]=n,this.onCreate&&this.onCreate(e[2],e[3],a[s]),t;n[s]||(n[s]=function(){},u=1),a[s]=n[s],i.extend(a[s].prototype,n),e[5]&&(o=i.resolve(e[5]).prototype,l=e[5].match(/\.(\w+)$/i)[1],c=a[s],a[s]=u?function(){return o[l].apply(this,arguments)}:function(){return this.parent=o[l],c.apply(this,arguments)},a[s].prototype[s]=a[s],i.each(o,function(e,t){a[s].prototype[t]=o[t]}),i.each(n,function(e,t){o[t]?a[s].prototype[t]=function(){return this.parent=o[t],e.apply(this,arguments)}:t!=s&&(a[s].prototype[t]=e)})),i.each(n["static"],function(e,t){a[s][t]=e})}}function l(e,t){var n,r;if(e)for(n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function c(e,n){var r,i,o,a=arguments,s;for(r=1,i=a.length;i>r;r++){n=a[r];for(o in n)n.hasOwnProperty(o)&&(s=n[o],s!==t&&(e[o]=s))}return e}function u(e,n,r,o){o=o||this,e&&(r&&(e=e[r]),i(e,function(e,i){return n.call(o,e,i,r)===!1?!1:(u(e,n,r,o),t)}))}function d(e,t){var n,r;for(t=t||window,e=e.split("."),n=0;e.length>n;n++)r=e[n],t[r]||(t[r]={}),t=t[r];return t}function f(e,t){var n,r;for(t=t||window,e=e.split("."),n=0,r=e.length;r>n&&(t=t[e[n]],t);n++);return t}function p(t,n){return!t||e(t,"array")?t:o(t.split(n||","),m)}var h=/^\s*|\s*$/g,m=function(e){return null===e||e===t?"":(""+e).replace(h,"")},g=Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)};return{trim:m,isArray:g,is:e,toArray:n,makeMap:r,each:i,map:o,grep:a,inArray:l,extend:c,create:s,walk:u,createNS:d,resolve:f,explode:p}}),r(h,[p],function(e){function n(r){function i(){return P.createDocumentFragment()}function o(e,t){N(W,e,t)}function a(e,t){N(z,e,t)}function s(e){o(e.parentNode,K(e))}function l(e){o(e.parentNode,K(e)+1)}function c(e){a(e.parentNode,K(e))}function u(e){a(e.parentNode,K(e)+1)}function d(e){e?(D[q]=D[U],D[$]=D[V]):(D[U]=D[q],D[V]=D[$]),D.collapsed=W}function f(e){s(e),u(e)}function p(e){o(e,0),a(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function h(e,n){var r=D[U],i=D[V],o=D[q],a=D[$],s=n.startContainer,l=n.startOffset,c=n.endContainer,u=n.endOffset;return 0===e?_(r,i,s,l):1===e?_(o,a,s,l):2===e?_(o,a,c,u):3===e?_(r,i,c,u):t}function m(){E(F)}function g(){return E(O)}function v(){return E(I)}function y(e){var t=this[U],n=this[V],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[n]),o?t.insertBefore(e,o):t.appendChild(e)):n?n>=t.nodeValue.length?r.insertAfter(e,t):(i=t.splitText(n),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function b(e){var t=D.extractContents();D.insertNode(e),e.appendChild(t),D.selectNode(e)}function C(){return j(new n(r),{startContainer:D[U],startOffset:D[V],endContainer:D[q],endOffset:D[$],collapsed:D.collapsed,commonAncestorContainer:D.commonAncestorContainer})}function x(e,t){var n;if(3==e.nodeType)return e;if(0>t)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function w(){return D[U]==D[q]&&D[V]==D[$]}function _(e,t,n,i){var o,a,s,l,c,u;if(e==n)return t==i?0:i>t?-1:1;for(o=n;o&&o.parentNode!=e;)o=o.parentNode;if(o){for(a=0,s=e.firstChild;s!=o&&t>a;)a++,s=s.nextSibling;return a>=t?-1:1}for(o=e;o&&o.parentNode!=n;)o=o.parentNode;if(o){for(a=0,s=n.firstChild;s!=o&&i>a;)a++,s=s.nextSibling;return i>a?-1:1}for(l=r.findCommonAncestor(e,n),c=e;c&&c.parentNode!=l;)c=c.parentNode;for(c||(c=l),u=n;u&&u.parentNode!=l;)u=u.parentNode;if(u||(u=l),c==u)return 0;for(s=l.firstChild;s;){if(s==c)return-1;if(s==u)return 1;s=s.nextSibling}}function N(e,t,n){var i,o;for(e?(D[U]=t,D[V]=n):(D[q]=t,D[$]=n),i=D[q];i.parentNode;)i=i.parentNode;for(o=D[U];o.parentNode;)o=o.parentNode;o==i?_(D[U],D[V],D[q],D[$])>0&&D.collapse(e):D.collapse(e),D.collapsed=w(),D.commonAncestorContainer=r.findCommonAncestor(D[U],D[q])}function E(e){var t,n=0,r=0,i,o,a,s,l,c;if(D[U]==D[q])return k(e);for(t=D[q],i=t.parentNode;i;t=i,i=i.parentNode){if(i==D[U])return S(t,e);++n}for(t=D[U],i=t.parentNode;i;t=i,i=i.parentNode){if(i==D[q])return T(t,e);++r}for(o=r-n,a=D[U];o>0;)a=a.parentNode,o--;for(s=D[q];0>o;)s=s.parentNode,o++;for(l=a.parentNode,c=s.parentNode;l!=c;l=l.parentNode,c=c.parentNode)a=l,s=c;return R(a,s,e)}function k(e){var t,n,r,o,a,s,l,c,u;if(e!=F&&(t=i()),D[V]==D[$])return t;if(3==D[U].nodeType){if(n=D[U].nodeValue,r=n.substring(D[V],D[$]),e!=I&&(o=D[U],c=D[V],u=D[$]-D[V],0===c&&u>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(c,u),D.collapse(W)),e==F)return;return r.length>0&&t.appendChild(P.createTextNode(r)),t}for(o=x(D[U],D[V]),a=D[$]-D[V];o&&a>0;)s=o.nextSibling,l=H(o,e),t&&t.appendChild(l),--a,o=s;return e!=I&&D.collapse(W),t}function S(e,t){var n,r,o,a,s,l;if(t!=F&&(n=i()),r=A(e,t),n&&n.appendChild(r),o=K(e),a=o-D[V],0>=a)return t!=I&&(D.setEndBefore(e),D.collapse(z)),n;for(r=e.previousSibling;a>0;)s=r.previousSibling,l=H(r,t),n&&n.insertBefore(l,n.firstChild),--a,r=s;return t!=I&&(D.setEndBefore(e),D.collapse(z)),n}function T(e,t){var n,r,o,a,s,l;for(t!=F&&(n=i()),o=B(e,t),n&&n.appendChild(o),r=K(e),++r,a=D[$]-r,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=H(o,t),n&&n.appendChild(l),--a,o=s;return t!=I&&(D.setStartAfter(e),D.collapse(W)),n}function R(e,t,n){var r,o,a,s,l,c,u,d;for(n!=F&&(o=i()),r=B(e,n),o&&o.appendChild(r),a=e.parentNode,s=K(e),l=K(t),++s,c=l-s,u=e.nextSibling;c>0;)d=u.nextSibling,r=H(u,n),o&&o.appendChild(r),u=d,--c;return r=A(t,n),o&&o.appendChild(r),n!=I&&(D.setStartAfter(e),D.collapse(W)),o}function A(e,t){var n=x(D[q],D[$]-1),r,i,o,a,s,l=n!=D[q];if(n==e)return L(n,l,z,t);for(r=n.parentNode,i=L(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=L(n,l,z,t),t!=F&&i.insertBefore(a,i.firstChild),l=W,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=L(r,z,z,t),t!=F&&s.appendChild(i),i=s}}function B(e,t){var n=x(D[U],D[V]),r=n!=D[U],i,o,a,s,l;if(n==e)return L(n,r,W,t);for(i=n.parentNode,o=L(i,z,W,t);i;){for(;n;)a=n.nextSibling,s=L(n,r,W,t),t!=F&&o.appendChild(s),r=W,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=L(i,z,W,t),t!=F&&l.appendChild(o),o=l}}function L(e,t,n,i){var o,a,s,l,c;if(t)return H(e,i);if(3==e.nodeType){if(o=e.nodeValue,n?(l=D[V],a=o.substring(l),s=o.substring(0,l)):(l=D[$],a=o.substring(0,l),s=o.substring(l)),i!=I&&(e.nodeValue=s),i==F)return;return c=r.clone(e,z),c.nodeValue=a,c}if(i!=F)return r.clone(e,z)}function H(e,n){return n!=F?n==I?r.clone(e,W):e:(e.parentNode.removeChild(e),t)}function M(){return r.create("body",null,v()).outerText}var D=this,P=r.doc,O=0,I=1,F=2,W=!0,z=!1,V="startOffset",U="startContainer",q="endContainer",$="endOffset",j=e.extend,K=r.nodeIndex;return j(D,{startContainer:P,startOffset:0,endContainer:P,endOffset:0,collapsed:W,commonAncestorContainer:P,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:o,setEnd:a,setStartBefore:s,setStartAfter:l,setEndBefore:c,setEndAfter:u,collapse:d,selectNode:f,selectNodeContents:p,compareBoundaryPoints:h,deleteContents:m,extractContents:g,cloneContents:v,insertNode:y,surroundContents:b,cloneRange:C,toStringIE:M}),D}return n.prototype.toString=function(){return this.toStringIE()},n}),r(m,[p],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;e.length>n;n+=2)r=String.fromCharCode(parseInt(e[n],t)),o[r]||(i="&"+e[n+1]+";",a[r]=i,a[i]=r);return a}}var r=e.makeMap,i,o,a,s=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,c=/[<>&\"\']/g,u=/&(#x|#)?([\w]+);/g,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(c,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function c(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?c:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(u,function(e,n,r){return n?(r=parseInt(r,2===n.length?16:10),r>65535?(r-=65536,String.fromCharCode(55296+(r>>10),56320+(1023&r))):d[r]||String.fromCharCode(r)):a[e]||i[e]||t(e)})}};return f}),r(g,[],function(){var e=navigator,t=e.userAgent,n,r,i,o,a,s;n=window.opera&&window.opera.buildNumber,r=/WebKit/.test(t),i=!r&&!n&&/MSIE/gi.test(t)&&/Explorer/gi.test(e.appName),i=i&&/MSIE (\w+)\./.exec(t)[1],o=!r&&/Gecko/.test(t),a=-1!=t.indexOf("Mac"),s=/(iPad|iPhone)/.test(t);var l=!s||t.match(/AppleWebKit\/(\d*)/)[1]>=534;return{opera:n,webkit:r,ie:i,gecko:o,mac:a,iOS:s,contentEditable:l,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=i,range:window.getSelection&&"Range"in window}}),r(v,[c,d,l,f,h,m,g,p],function(e,n,r,i,o,a,s,l){function c(e,t){var i=this,o;i.doc=e,i.win=window,i.files={},i.counter=0,i.stdMode=!g||e.documentMode>=8,i.boxModel=!g||"CSS1Compat"==e.compatMode||i.stdMode,i.hasOuterHTML="outerHTML"in e.createElement("a"),i.settings=t=h({keep_values:!1,hex_colors:1},t),i.schema=t.schema,i.styles=new n({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),i.fixDoc(e),i.events=t.ownEvents?new r(t.proxy):r.Event,o=t.schema?t.schema.getBlockElements():{},i.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!o[e.nodeName]):!!o[e]}}var u=l.each,d=l.is,f=l.grep,p=l.trim,h=l.extend,m=s.webkit,g=s.ie,v=/^([a-z0-9],?)+$/i,y=/^[ \t\r\n]*$/,b=l.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," ");return c.prototype={root:null,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},fixDoc:function(e){var t=this.settings,n;if(g&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!g||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),u(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.get(e.settings.root_element)||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),-1===n.indexOf("px")&&(n=0),-1===r.indexOf("px")&&(r=0),{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),d(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.get(r.settings.root_element)||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(v.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}return e.matches(r,n.nodeType?[n]:n).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=d(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,n,r){var i="",o;i+="<"+e;for(o in n)n.hasOwnProperty(o)&&null!==n[o]&&(i+=" "+o+'="'+this.encode(n[o])+'"');return r!==t?i+">"+r+"</"+e+">":i+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return this.run(e,function(e){var n,r=e.parentNode;if(!r)return null;if(t)for(;n=e.firstChild;)!g||3!==n.nodeType||n.nodeValue?r.insertBefore(n,e):e.removeChild(n);return r.removeChild(e)})},setStyle:function(e,n,r){return this.run(e,function(e){var i=this,o,a;if(n)if("string"==typeof n){o=e.style,n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"number"!=typeof r||b[n]||(r+="px"),"opacity"===n&&e.runtimeStyle&&e.runtimeStyle.opacity===t&&(o.filter=""===r?"":"alpha(opacity="+100*r+")"),"float"==n&&(n="cssFloat"in e.style?"cssFloat":"styleFloat");try{o[n]=r}catch(s){}i.settings.update_styles&&e.removeAttribute("data-mce-style")}else for(a in n)i.setStyle(e,a,n[a])})},getStyle:function(e,n,r){if(e=this.get(e)){if(this.doc.defaultView&&r){n=n.replace(/[A-Z]/g,function(e){return"-"+e});try{return this.doc.defaultView.getComputedStyle(e,null).getPropertyValue(n)}catch(i){return null}}return n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=g?"styleFloat":"cssFloat"),n.currentStyle&&r?e.currentStyle[n]:e.style?e.style[n]:t}},setStyles:function(e,t){this.setStyle(e,t)},css:function(e,t,n){this.setStyle(e,t,n)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,n,r){var i=this;if(e&&n)return this.run(e,function(e){var o=i.settings,a=e.getAttribute(n);if(null!==r)switch(n){case"style":if(!d(r,"string"))return u(r,function(t,n){i.setStyle(e,n,t)}),t;o.keep_values&&(r?e.setAttribute("data-mce-style",r,2):e.removeAttribute("data-mce-style",2)),e.style.cssText=r;break;case"class":e.className=r||"";break;case"src":case"href":o.keep_values&&(o.url_converter&&(r=o.url_converter.call(o.url_converter_scope||i,r,n,e)),i.setAttrib(e,"data-mce-"+n,r,2));break;case"shape":e.setAttribute("data-mce-style",r)}d(r)&&null!==r&&0!==r.length?e.setAttribute(n,""+r,2):e.removeAttribute(n,2),a!=r&&o.onSetAttrib&&o.onSetAttrib({attrElm:e,attrName:n,attrValue:r})})},setAttribs:function(e,t){var n=this;return this.run(e,function(e){u(t,function(t,r){n.setAttrib(e,r,t)})})},getAttrib:function(e,t,n){var r,i=this,o;if(e=i.get(e),!e||1!==e.nodeType)return n===o?!1:n;if(d(n)||(n=""),/^(src|href|style|coords|shape)$/.test(t)&&(r=e.getAttribute("data-mce-"+t)))return r;if(g&&i.props[t]&&(r=e[i.props[t]],r=r&&r.nodeValue?r.nodeValue:r),r||(r=e.getAttribute(t,2)),/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(t))return e[i.props[t]]===!0&&""===r?t:r?t:"";if("FORM"===e.nodeName&&e.getAttributeNode(t))return e.getAttributeNode(t).nodeValue;if("style"===t&&(r=r||e.style.cssText,r&&(r=i.serializeStyle(i.parseStyle(r),e.nodeName),i.settings.keep_values&&e.setAttribute("data-mce-style",r))),m&&"class"===t&&r&&(r=r.replace(/(apple|webkit)\-[a-z\-]+/gi,"")),g)switch(t){case"rowspan":case"colspan":1===r&&(r="");break;case"size":("+0"===r||20===r||0===r)&&(r="");break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":0===r&&(r="");break;case"hspace":-1===r&&(r="");break;case"maxlength":case"tabindex":(32768===r||2147483647===r||"32768"===r)&&(r="");break;case"multiple":case"compact":case"noshade":case"nowrap":return 65535===r?t:n;case"shape":r=r.toLowerCase();break;default:0===t.indexOf("on")&&r&&(r=(""+r).replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1"))}return r!==o&&null!==r&&""!==r?""+r:n},getPos:function(e,t){var n=this,r=0,i=0,o,a=n.doc,s;if(e=n.get(e),t=t||a.body,e){if(t===a.body&&e.getBoundingClientRect)return s=e.getBoundingClientRect(),t=n.boxModel?a.documentElement:a.body,r=s.left+(a.documentElement.scrollLeft||a.body.scrollLeft)-t.clientTop,i=s.top+(a.documentElement.scrollTop||a.body.scrollTop)-t.clientLeft,{x:r,y:i};for(o=e;o&&o!=t&&o.nodeType;)r+=o.offsetLeft||0,i+=o.offsetTop||0,o=o.offsetParent;for(o=e.parentNode;o&&o!=t&&o.nodeType;)r-=o.scrollLeft||0,i-=o.scrollTop||0,o=o.parentNode}return{x:r,y:i}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==c.DOM&&n===document){var o=c.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,c.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var n=this,r=n.doc,i;return n!==c.DOM&&r===document?(c.DOM.loadCSS(e),t):(e||(e=""),i=r.getElementsByTagName("head")[0],u(e.split(","),function(e){var t;n.files[e]||(n.files[e]=!0,t=n.create("link",{rel:"stylesheet",href:e}),g&&r.documentMode&&r.recalc&&(t.onload=function(){r.recalc&&r.recalc(),t.onload=null}),i.appendChild(t))}),t)},addClass:function(e,t){return this.run(e,function(e){var n;return t?this.hasClass(e,t)?e.className:(n=this.removeClass(e,t),e.className=n=(""!==n?n+" ":"")+t,n):0})},removeClass:function(e,t){var n=this,r;return n.run(e,function(e){var i;return n.hasClass(e,t)?(r||(r=RegExp("(^|\\s+)"+t+"(\\s+|$)","g")),i=e.className.replace(r," "),i=p(" "!=i?i:""),e.className=i,i||(e.removeAttribute("class"),e.removeAttribute("className")),i):e.className})},hasClass:function(e,t){return e=this.get(e),e&&t?-1!==(" "+e.className+" ").indexOf(" "+t+" "):!1},toggleClass:function(e,n,r){r=r===t?!this.hasClass(e,n):r,this.hasClass(e,n)!==r&&(r?this.addClass(e,n):this.removeClass(e,n))},show:function(e){return this.setStyle(e,"display","block")},hide:function(e){return this.setStyle(e,"display","none")},isHidden:function(e){return e=this.get(e),!e||"none"==e.style.display||"none"==this.getStyle(e,"display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){var n=this;return n.run(e,function(e){if(g){for(;e.firstChild;)e.removeChild(e.firstChild);try{e.innerHTML="<br />"+t,e.removeChild(e.firstChild)}catch(r){var i=n.create("div");i.innerHTML="<br />"+t,u(f(i.childNodes),function(t,n){n&&e.canHaveHTML&&e.appendChild(t)})}}else e.innerHTML=t;return t})},getOuterHTML:function(e){var t,n=this;return(e=n.get(e))?1===e.nodeType&&n.hasOuterHTML?e.outerHTML:(t=(e.ownerDocument||n.doc).createElement("body"),t.appendChild(e.cloneNode(!0)),t.innerHTML):null},setOuterHTML:function(e,t,n){var r=this;return r.run(e,function(e){function i(){var i,o;for(o=n.createElement("body"),o.innerHTML=t,i=o.lastChild;i;)r.insertAfter(i.cloneNode(!0),e),i=i.previousSibling;r.remove(e)}if(1==e.nodeType)if(n=n||e.ownerDocument||r.doc,g)try{1==e.nodeType&&r.hasOuterHTML?e.outerHTML=t:i()}catch(o){i()}else i()})},decode:a.decode,encode:a.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return d(t,"array")&&(e=e.cloneNode(!0)),n&&u(f(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),u(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(l.trim(e))},getClasses:function(){function e(t){u(t.imports,function(t){e(t)}),u(t.cssRules||t.rules,function(t){switch(t.type||1){case 1:t.selectorText&&u(t.selectorText.split(","),function(e){e=e.replace(/^\s*|\s*$|^\s\./g,""),!/\.mce/.test(e)&&/\.[\w\-]+$/.test(e)&&(o=e,e=e.replace(/.*\.([a-z0-9_\-]+).*/i,"$1"),(!i||(e=i(e,o)))&&(r[e]||(n.push({"class":e}),r[e]=1)))});break;case 3:e(t.styleSheet)}})}var t=this,n=[],r={},i=t.settings.class_filter,o;if(t.classes)return t.classes;try{u(t.doc.styleSheets,e)}catch(a){}return n.length>0&&(t.classes=n),n},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),e?(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],u(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i)):!1},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(g){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,o,a,s,l,c=0;if(e=e.firstChild){s=new i(e,e.parentNode),t=t||n.schema?n.schema.getNonEmptyElements():null;do{if(a=e.nodeType,1===a){if(e.getAttribute("data-mce-bogus"))continue;if(l=e.nodeName.toLowerCase(),t&&t[l]){if("br"===l){c++;continue}return!1}for(o=n.getAttribs(e),r=e.attributes.length;r--;)if(l=e.attributes[r].nodeName,"name"===l||"data-mce-bookmark"===l)return!1}if(8==a)return!1;if(3===a&&!y.test(e.nodeValue))return!1}while(e=s.next())}return 1>=c},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new o(this)},nodeIndex:function(e,t){var n=0,r,i,o;if(e)for(r=e.nodeType,e=e.previousSibling,i=e;e;e=e.previousSibling)o=e.nodeType,(!t||3!=o||o!=r&&e.nodeValue.length)&&(n++,r=o);return n},split:function(e,n,r){function i(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,r=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=r.length-1;n>=0;n--)i(r[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=p(e.nodeValue).length;if(!o.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(r=e.childNodes,1==r.length&&r[0]&&1==r[0].nodeType&&"bookmark"==r[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(r[0],e),r.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;o.remove(e)}return e}}var o=this,a=o.createRng(),s,l,c;return e&&n?(a.setStart(e.parentNode,o.nodeIndex(e)),a.setEnd(n.parentNode,o.nodeIndex(n)),s=a.extractContents(),a=o.createRng(),a.setStart(n.parentNode,o.nodeIndex(n)+1),a.setEnd(e.parentNode,o.nodeIndex(e)+1),l=a.extractContents(),c=e.parentNode,c.insertBefore(i(s),e),r?c.replaceChild(r,n):c.insertBefore(n,e),c.insertBefore(i(l),e),o.remove(e),r||n):t},bind:function(e,t,n,r){return this.events.bind(e,t,n,r||this)},unbind:function(e,t,n){return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return 1!=e.nodeType?null:(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null)},destroy:function(){var e=this;e.win=e.doc=e.root=e.events=e.frag=null},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},c.DOM=new c(document),c}),r(y,[v,p],function(e,n){function r(){function e(e,t){function n(){o.remove(s),a&&(a.onreadystatechange=a.onload=a=null),t()}function r(){"undefined"!=typeof console&&console.log&&console.log("Failed to load: "+e)}var o=i,a,s;s=o.uniqueId(),a=document.createElement("script"),a.id=s,a.type="text/javascript",a.src=e,a.onload=n,a.onreadystatechange=function(){/loaded|complete/.test(a.readyState)&&n()},a.onerror=r,(document.getElementsByTagName("head")[0]||document.body).appendChild(a)}var n=0,r=1,s=2,l={},c=[],u={},d=[],f=0,p;this.isDone=function(e){return l[e]==s},this.markDone=function(e){l[e]=s},this.add=this.load=function(e,t,r){var i=l[e];i==p&&(c.push(e),l[e]=n),t&&(u[e]||(u[e]=[]),u[e].push({func:t,scope:r||this}))},this.loadQueue=function(e,t){this.loadScripts(c,e,t)},this.loadScripts=function(n,i,c){function h(e){o(u[e],function(e){e.func.call(e.scope)}),u[e]=p}var m;d.push({func:i,scope:c||this}),m=function(){var i=a(n);n.length=0,o(i,function(n){return l[n]==s?(h(n),t):(l[n]!=r&&(l[n]=r,f++,e(n,function(){l[n]=s,f--,h(n),m()})),t)}),f||(o(d,function(e){e.func.call(e.scope)}),d.length=0)},m()}}var i=e.DOM,o=n.each,a=n.grep;return r.ScriptLoader=new r,r}),r(b,[y,p],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t){var n=r.settings;n&&n.language&&n.language_load!==!1&&e.ScriptLoader.add(this.urls[t]+"/langs/"+n.language+".js")},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s){function l(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&(s?a.call(s):a.call(e))}var c=this,u=o;c.urls[n]||("object"==typeof o&&(u=o.prefix+o.resource+o.suffix),0!==u.indexOf("/")&&-1==u.indexOf("://")&&(u=r.baseURL+"/"+u),c.urls[n]=u.substring(0,u.lastIndexOf("/")),c.lookup[n]?l():e.ScriptLoader.add(u,l,s))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(C,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next"; +if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;i>r;r++)a=o[r],"id"!==a.name&&(s[s.length]={name:a.name,value:a.value},s.map[a.name]=a.value);n.attributes=s}return n.value=e.value,n.shortEnded=e.shortEnded,n},wrap:function(e){var t=this;return t.parent.insert(e,t),e.append(t),t},unwrap:function(){var e=this,t,n;for(t=e.firstChild;t;)n=t.next,e.insert(t,e,!0),t=n;e.remove()},remove:function(){var e=this,t=e.parent,n=e.next,r=e.prev;return t&&(t.firstChild===e?(t.firstChild=n,n&&(n.prev=null)):r.next=n,t.lastChild===e?(t.lastChild=r,r&&(r.next=null)):n.prev=r,e.parent=e.next=e.prev=null),e},append:function(e){var t=this,n;return e.parent&&e.remove(),n=t.lastChild,n?(n.next=e,e.prev=n,t.lastChild=e):t.lastChild=t.firstChild=e,e.parent=t,e},insert:function(e,t,n){var r;return e.parent&&e.remove(),r=t.parent||this,n?(t===r.firstChild?r.firstChild=e:t.prev.next=e,e.prev=t.prev,e.next=t,t.prev=e):(t===r.lastChild?r.lastChild=e:t.next.prev=e,e.next=t.next,e.prev=t,t.next=e),e.parent=r,e},getAll:function(t){var n=this,r,i=[];for(r=n.firstChild;r;r=e(r,n))r.name===t&&i.push(r);return i},empty:function(){var t=this,n,r,i;if(t.firstChild){for(n=[],i=t.firstChild;i;i=e(i,t))n.push(i);for(r=n.length;r--;)i=n[r],i.parent=i.firstChild=i.lastChild=i.next=i.prev=null}return t.firstChild=t.lastChild=null,t},isEmpty:function(t){var r=this,i=r.firstChild,o,a;if(i)do{if(1===i.type){if(i.attributes.map["data-mce-bogus"])continue;if(t[i.name])return!1;for(o=i.attributes.length;o--;)if(a=i.attributes[o].name,"name"===a||0===a.indexOf("data-mce-"))return!1}if(8===i.type)return!1;if(3===i.type&&!n.test(i.value))return!1}while(i=e(i,r));return!0},walk:function(t){return e(this,null,t)}},t.create=function(e,n){var i,o;if(i=new t(e,r[e]||1),n)for(o in n)i.attr(o,n[o]);return i},t}),r(x,[p],function(e){function t(e,t){return e?e.split(t||" "):[]}function n(e){function n(e,n,r){function i(e){var t={},n,r;for(n=0,r=e.length;r>n;n++)t[e[n]]={};return t}var o,l,c,u=arguments;for(r=r||[],n=n||"","string"==typeof r&&(r=t(r)),l=3;u.length>l;l++)"string"==typeof u[l]&&(u[l]=t(u[l])),r.push.apply(r,u[l]);for(e=t(e),o=e.length;o--;)c=[].concat(s,t(n)),a[e[o]]={attributes:i(c),attributesOrder:c,children:i(r)}}function i(e,n){var r,i,o,s;for(e=t(e),r=e.length,n=t(n);r--;)for(i=a[e[r]],o=0,s=n.length;s>o;o++)i.attributes[n[o]]={},i.attributesOrder.push(n[o])}var a={},s,l,c,u,d,f,p;return r[e]?r[e]:(s=t("id accesskey class dir lang style tabindex title"),l=t("onabort onblur oncancel oncanplay oncanplaythrough onchange onclick onclose oncontextmenu oncuechange ondblclick ondrag ondragend ondragenter ondragleave ondragover ondragstart ondrop ondurationchange onemptied onended onerror onfocus oninput oninvalid onkeydown onkeypress onkeyup onload onloadeddata onloadedmetadata onloadstart onmousedown onmousemove onmouseout onmouseover onmouseup onmousewheel onpause onplay onplaying onprogress onratechange onreset onscroll onseeked onseeking onseeking onselect onshow onstalled onsubmit onsuspend ontimeupdate onvolumechange onwaiting"),c=t("address blockquote div dl fieldset form h1 h2 h3 h4 h5 h6 hr menu ol p pre table ul"),u=t("a abbr b bdo br button cite code del dfn em embed i iframe img input ins kbd label map noscript object q s samp script select small span strong sub sup textarea u var #text #comment"),"html4"!=e&&(s.push.apply(s,t("contenteditable contextmenu draggable dropzone hidden spellcheck translate")),c.push.apply(c,t("article aside details dialog figure header footer hgroup section nav")),u.push.apply(u,t("audio canvas command datalist mark meter output progress time wbr video ruby bdi keygen"))),"html5-strict"!=e&&(s.push("xml:lang"),p=t("acronym applet basefont big font strike tt"),u.push.apply(u,p),o(p,function(e){n(e,"",u)}),f=t("center dir isindex noframes"),c.push.apply(c,f),d=[].concat(c,u),o(f,function(e){n(e,"",d)})),d=d||[].concat(c,u),n("html","manifest","head body"),n("head","","base command link meta noscript script style title"),n("title hr noscript br"),n("base","href target"),n("link","href rel media hreflang type sizes hreflang"),n("meta","name http-equiv content charset"),n("style","media type scoped"),n("script","src async defer type charset"),n("body","onafterprint onbeforeprint onbeforeunload onblur onerror onfocus onhashchange onload onmessage onoffline ononline onpagehide onpageshow onpopstate onresize onscroll onstorage onunload",d),n("address dt dd div caption","",d),n("h1 h2 h3 h4 h5 h6 pre p abbr code var samp kbd sub sup i b u bdo span legend em strong small s cite dfn","",u),n("blockquote","cite",d),n("ol","reversed start type","li"),n("ul","","li"),n("li","value",d),n("dl","","dt dd"),n("a","href target rel media hreflang type",u),n("q","cite",u),n("ins del","cite datetime",d),n("img","src alt usemap ismap width height"),n("iframe","src name width height",d),n("embed","src type width height"),n("object","data type typemustmatch name usemap form width height",d,"param"),n("param","name value"),n("map","name",d,"area"),n("area","alt coords shape href target rel media hreflang type"),n("table","border","caption colgroup thead tfoot tbody tr"+("html4"==e?" col":"")),n("colgroup","span","col"),n("col","span"),n("tbody thead tfoot","","tr"),n("tr","","td th"),n("td","colspan rowspan headers",d),n("th","colspan rowspan headers scope abbr",d),n("form","accept-charset action autocomplete enctype method name novalidate target",d),n("fieldset","disabled form name",d,"legend"),n("label","form for",u),n("input","accept alt autocomplete checked dirname disabled form formaction formenctype formmethod formnovalidate formtarget height list max maxlength min multiple name pattern readonly required size src step type value width"),n("button","disabled form formaction formenctype formmethod formnovalidate formtarget name type value","html4"==e?d:u),n("select","disabled form multiple name required size","option optgroup"),n("optgroup","disabled label","option"),n("option","disabled label selected value"),n("textarea","cols dirname disabled form maxlength name readonly required rows wrap"),n("menu","type label",d,"li"),n("noscript","",d),"html4"!=e&&(n("wbr"),n("ruby","",u,"rt rp"),n("figcaption","",d),n("mark rt rp summary bdi","",u),n("canvas","width height",d),n("video","src crossorigin poster preload autoplay mediagroup loop muted controls width height",d,"track source"),n("audio","src crossorigin preload autoplay mediagroup loop muted controls",d,"track source"),n("source","src type media"),n("track","kind src srclang label default"),n("datalist","",u,"option"),n("article section nav aside header footer","",d),n("hgroup","","h1 h2 h3 h4 h5 h6"),n("figure","",d,"figcaption"),n("time","datetime",u),n("dialog","open",d),n("command","type label icon disabled checked radiogroup command"),n("output","for form name",u),n("progress","value max",u),n("meter","value min max low high optimum",u),n("details","open",d,"summary"),n("keygen","autofocus challenge disabled form keytype name")),"html5-strict"!=e&&(i("script","language xml:space"),i("style","xml:space"),i("object","declare classid codebase codetype archive standby align border hspace vspace"),i("param","valuetype type"),i("a","charset name rev shape coords"),i("br","clear"),i("applet","codebase archive code object alt name width height align hspace vspace"),i("img","name longdesc align border hspace vspace"),i("iframe","longdesc frameborder marginwidth marginheight scrolling align"),i("font basefont","size color face"),i("input","usemap align"),i("select","onchange"),i("textarea"),i("h1 h2 h3 h4 h5 h6 div p legend caption","align"),i("ul","type compact"),i("li","type"),i("ol dl menu dir","compact"),i("pre","width xml:space"),i("hr","align noshade size width"),i("isindex","prompt"),i("table","summary width frame rules cellspacing cellpadding align bgcolor"),i("col","width align char charoff valign"),i("colgroup","width align char charoff valign"),i("thead","align char charoff valign"),i("tr","align char charoff valign bgcolor"),i("th","axis align char charoff valign nowrap bgcolor width height"),i("form","accept"),i("td","abbr axis scope align char charoff valign nowrap bgcolor width height"),i("tfoot","align char charoff valign"),i("tbody","align char charoff valign"),i("area","nohref"),i("body","background bgcolor text link vlink alink")),"html4"!=e&&(i("input button select textarea","autofocus"),i("input textarea","placeholder"),i("a","download"),i("link script img","crossorigin"),i("iframe","srcdoc sandbox seamless allowfullscreen")),o(t("a form meter progress dfn"),function(e){a[e]&&delete a[e].children[e]}),delete a.caption.children.table,r[e]=a,a)}var r={},i=e.makeMap,o=e.each,a=e.extend,s=e.explode,l=e.inArray;return function(e){function c(t,n,o){var s=e[t];return s?s=i(s,",",i(s.toUpperCase()," ")):(s=r[t],s||(s=i(n," ",i(n.toUpperCase()," ")),s=a(s,o),r[t]=s)),s}function u(e){return RegExp("^"+e.replace(/([?+*])/g,".$1")+"$")}function d(e){var n,r,o,a,s,c,d,f,p,h,m,g,y,C,x,w,_,N,E,k=/^([#+\-])?([^\[!\/]+)(?:\/([^\[!]+))?(?:(!?)\[([^\]]+)\])?$/,S=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,T=/[*?+]/;if(e)for(e=t(e,","),v["@"]&&(w=v["@"].attributes,_=v["@"].attributesOrder),n=0,r=e.length;r>n;n++)if(s=k.exec(e[n])){if(C=s[1],p=s[2],x=s[3],f=s[5],g={},y=[],c={attributes:g,attributesOrder:y},"#"===C&&(c.paddEmpty=!0),"-"===C&&(c.removeEmpty=!0),"!"===s[4]&&(c.removeEmptyAttrs=!0),w){for(N in w)g[N]=w[N];y.push.apply(y,_)}if(f)for(f=t(f,"|"),o=0,a=f.length;a>o;o++)if(s=S.exec(f[o])){if(d={},m=s[1],h=s[2].replace(/::/g,":"),C=s[3],E=s[4],"!"===m&&(c.attributesRequired=c.attributesRequired||[],c.attributesRequired.push(h),d.required=!0),"-"===m){delete g[h],y.splice(l(y,h),1);continue}C&&("="===C&&(c.attributesDefault=c.attributesDefault||[],c.attributesDefault.push({name:h,value:E}),d.defaultValue=E),":"===C&&(c.attributesForced=c.attributesForced||[],c.attributesForced.push({name:h,value:E}),d.forcedValue=E),"<"===C&&(d.validValues=i(E,"?"))),T.test(h)?(c.attributePatterns=c.attributePatterns||[],d.pattern=u(h),c.attributePatterns.push(d)):(g[h]||y.push(h),g[h]=d)}w||"@"!=p||(w=g,_=y),x&&(c.outputName=p,v[x]=c),T.test(p)?(c.pattern=u(p),b.push(c)):v[p]=c}}function f(e){v={},b=[],d(e),o(x,function(e,t){y[t]=e.children})}function p(e){var n=/^(~)?(.+)$/;e&&o(t(e,","),function(e){var t=n.exec(e),r="~"===t[1],i=r?"span":"div",a=t[2];y[a]=y[i],R[a]=i,r||(k[a.toUpperCase()]={},k[a]={}),v[a]||(v[a]=v[i]),o(y,function(e){e[i]&&(e[a]=e[i])})})}function h(e){var n=/^([+\-]?)(\w+)\[([^\]]+)\]$/;e&&o(t(e,","),function(e){var r=n.exec(e),i,a;r&&(a=r[1],i=a?y[r[2]]:y[r[2]]={"#comment":{}},i=y[r[2]],o(t(r[3],"|"),function(e){"-"===a?delete i[e]:i[e]={}}))})}function m(e){var t=v[e],n;if(t)return t;for(n=b.length;n--;)if(t=b[n],t.pattern.test(e))return t}var g=this,v={},y={},b=[],C,x,w,_,N,E,k,S,T,R={},A={};e=e||{},x=n(e.schema),e.verify_html===!1&&(e.valid_elements="*[*]"),e.valid_styles&&(C={},o(e.valid_styles,function(e,t){C[t]=s(e)})),w=c("whitespace_elements","pre script noscript style textarea video audio iframe object"),_=c("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr"),N=c("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr track"),E=c("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls"),S=c("non_empty_elements","td th iframe video audio object",N),T=c("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure"),k=c("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup",T),o((e.special||"script noscript style textarea").split(" "),function(e){A[e]=RegExp("</"+e+"[^>]*>","gi")}),e.valid_elements?f(e.valid_elements):(o(x,function(e,t){v[t]={attributes:e.attributes,attributesOrder:e.attributesOrder},y[t]=e.children}),"html5"!=e.schema&&o(t("strong/b em/i"),function(e){e=t(e,"/"),v[e[1]].outputName=e[0]}),v.img.attributesDefault=[{name:"alt",value:""}],o(t("ol ul sub sup blockquote span font a table tbody tr strong em b i"),function(e){v[e]&&(v[e].removeEmpty=!0)}),o(t("p h1 h2 h3 h4 h5 h6 th td pre div address caption"),function(e){v[e].paddEmpty=!0}),o(t("span"),function(e){v[e].removeEmptyAttrs=!0})),p(e.custom_elements),h(e.valid_children),d(e.extended_valid_elements),h("+ol[ul|ol],+ul[ul|ol]"),e.invalid_elements&&o(s(e.invalid_elements),function(e){v[e]&&delete v[e]}),m("span")||d("span[!data-mce-type|*]"),g.children=y,g.styles=C,g.getBoolAttrs=function(){return E},g.getBlockElements=function(){return k},g.getTextBlockElements=function(){return T},g.getShortEndedElements=function(){return N},g.getSelfClosingElements=function(){return _},g.getNonEmptyElements=function(){return S},g.getWhiteSpaceElements=function(){return w},g.getSpecialElements=function(){return A},g.isValidChild=function(e,t){var n=y[e];return!(!n||!n[t])},g.isValid=function(e,t){var n,r,i=m(e);if(i){if(!t)return!0;if(i.attributes[t])return!0;if(n=i.attributePatterns)for(r=n.length;r--;)if(n[r].pattern.test(e))return!0}return!1},g.getElementRule=m,g.getCustomElements=function(){return R},g.addValidElements=d,g.setValidElements=f,g.addCustomElements=p,g.addValidChildren=h,g.elements=v}}),r(w,[x,m,p],function(e,t,n){var r=n.each;return function(n,i){var o=this,a=function(){};n=n||{},o.schema=i=i||new e,n.fix_self_closing!==!1&&(n.fix_self_closing=!0),r("comment cdata text start end pi doctype".split(" "),function(e){e&&(o[e]=n[e]||a)}),o.parse=function(e){function r(e){var t,n;for(t=d.length;t--&&d[t].name!==e;);if(t>=0){for(n=d.length-1;n>=t;n--)e=d[n],e.valid&&a.end(e.name);d.length=t}}function o(e,t,n,r,i){var o,a;if(t=t.toLowerCase(),n=t in b?t:I(n||r||i||""),x&&!g&&0!==t.indexOf("data-mce-")){if(o=k[t],!o&&S){for(a=S.length;a--&&(o=S[a],!o.pattern.test(t)););-1===a&&(o=null)}if(!o)return;if(o.validValues&&!(n in o.validValues))return}f.map[t]=n,f.push({name:t,value:n})}var a=this,s,l=0,c,u,d=[],f,p,h,m,g,v,y,b,C,x,w,_,N,E,k,S,T,R,A,B,L,H,M,D,P,O=0,I=t.decode,F;for(H=RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g"),M=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g,y=i.getShortEndedElements(),L=n.self_closing_elements||i.getSelfClosingElements(),b=i.getBoolAttrs(),x=n.validate,v=n.remove_internals,F=n.fix_self_closing,D=i.getSpecialElements();s=H.exec(e);){if(s.index>l&&a.text(I(e.substr(l,s.index-l))),c=s[6])c=c.toLowerCase(),":"===c.charAt(0)&&(c=c.substr(1)),r(c);else if(c=s[7]){if(c=c.toLowerCase(),":"===c.charAt(0)&&(c=c.substr(1)),C=c in y,F&&L[c]&&d.length>0&&d[d.length-1].name===c&&r(c),!x||(w=i.getElementRule(c))){if(_=!0,x&&(k=w.attributes,S=w.attributePatterns),(E=s[8])?(g=-1!==E.indexOf("data-mce-type"),g&&v&&(_=!1),f=[],f.map={},E.replace(M,o)):(f=[],f.map={}),x&&!g){if(T=w.attributesRequired,R=w.attributesDefault,A=w.attributesForced,B=w.removeEmptyAttrs,B&&!f.length&&(_=!1),A)for(p=A.length;p--;)N=A[p],m=N.name,P=N.value,"{$uid}"===P&&(P="mce_"+O++),f.map[m]=P,f.push({name:m,value:P});if(R)for(p=R.length;p--;)N=R[p],m=N.name,m in f.map||(P=N.value,"{$uid}"===P&&(P="mce_"+O++),f.map[m]=P,f.push({name:m,value:P}));if(T){for(p=T.length;p--&&!(T[p]in f.map););-1===p&&(_=!1)}f.map["data-mce-bogus"]&&(_=!1)}_&&a.start(c,f,C)}else _=!1;if(u=D[c]){u.lastIndex=l=s.index+s[0].length,(s=u.exec(e))?(_&&(h=e.substr(l,s.index-l)),l=s.index+s[0].length):(h=e.substr(l),l=e.length),_&&(h.length>0&&a.text(h,!0),a.end(c)),H.lastIndex=l;continue}C||(E&&E.indexOf("/")==E.length-1?_&&a.end(c):d.push({name:c,valid:_}))}else(c=s[1])?a.comment(c):(c=s[2])?a.cdata(c):(c=s[3])?a.doctype(c):(c=s[4])&&a.pi(c,s[5]);l=s.index+s[0].length}for(e.length>l&&a.text(I(e.substr(l))),p=d.length-1;p>=0;p--)c=d[p],c.valid&&a.end(c.name)}}}),r(_,[C,x,w,p],function(e,n,r,i){var o=i.makeMap,a=i.each,s=i.explode,l=i.extend;return function(i,c){function u(t){var n,r,i,a,s,l,u,f,p,h,m,g,v,y;for(m=o("tr,td,th,tbody,thead,tfoot,table"),h=c.getNonEmptyElements(),g=c.getTextBlockElements(),n=0;t.length>n;n++)if(r=t[n],r.parent&&!r.fixed)if(g[r.name]&&"li"==r.parent.name){for(v=r.next;v&&g[v.name];)v.name="li",v.fixed=!0,r.parent.insert(v,r.parent),v=v.next;r.unwrap(r)}else{for(a=[r],i=r.parent;i&&!c.isValidChild(i.name,r.name)&&!m[i.name];i=i.parent)a.push(i);if(i&&a.length>1){for(a.reverse(),s=l=d.filterNode(a[0].clone()),p=0;a.length-1>p;p++){for(c.isValidChild(l.name,a[p].name)?(u=d.filterNode(a[p].clone()),l.append(u)):u=l,f=a[p].firstChild;f&&f!=a[p+1];)y=f.next,u.append(f),f=y;l=u}s.isEmpty(h)?i.insert(r,a[0],!0):(i.insert(s,a[0],!0),i.insert(r,s)),i=a[0],(i.isEmpty(h)||i.firstChild===i.lastChild&&"br"===i.firstChild.name)&&i.empty().remove()}else if(r.parent){if("li"===r.name){if(v=r.prev,v&&("ul"===v.name||"ul"===v.name)){v.append(r);continue}if(v=r.next,v&&("ul"===v.name||"ul"===v.name)){v.insert(r,v.firstChild,!0);continue}r.wrap(d.filterNode(new e("ul",1)));continue}c.isValidChild(r.parent.name,"div")&&c.isValidChild("div",r.name)?r.wrap(d.filterNode(new e("div",1))):"style"===r.name||"script"===r.name?r.empty().remove():r.unwrap()}}}var d=this,f={},p=[],h={},m={};i=i||{},i.validate="validate"in i?i.validate:!0,i.root_name=i.root_name||"body",d.schema=c=c||new n,d.filterNode=function(e){var t,n,r;n in f&&(r=h[n],r?r.push(e):h[n]=[e]),t=p.length;for(;t--;)n=p[t].name,n in e.attributes.map&&(r=m[n],r?r.push(e):m[n]=[e]);return e},d.addNodeFilter=function(e,t){a(s(e),function(e){var n=f[e];n||(f[e]=n=[]),n.push(t)})},d.addAttributeFilter=function(e,n){a(s(e),function(e){var r;for(r=0;p.length>r;r++)if(p[r].name===e)return p[r].callbacks.push(n),t;p.push({name:e,callbacks:[n]})})},d.parse=function(n,a){function s(){function e(e){e&&(t=e.firstChild,t&&3==t.type&&(t.value=t.value.replace(A,"")),t=e.lastChild,t&&3==t.type&&(t.value=t.value.replace(H,"")))}var t=b.firstChild,n,r;if(c.isValidChild(b.name,F.toLowerCase())){for(;t;)n=t.next,3==t.type||1==t.type&&"p"!==t.name&&!R[t.name]&&!t.attr("data-mce-type")?r?r.append(t):(r=d(F,1),b.insert(r,t),r.append(t)):(e(r),r=null),t=n;e(r)}}function d(t,n){var r=new e(t,n),i;return t in f&&(i=h[t],i?i.push(r):h[t]=[r]),r}function g(e){var t,n,r;for(t=e.prev;t&&3===t.type;)n=t.value.replace(H,""),n.length>0?(t.value=n,t=t.prev):(r=t.prev,t.remove(),t=r)}function v(e){var t,n={};for(t in e)"li"!==t&&"p"!=t&&(n[t]=e[t]);return n}var y,b,C,x,w,_,N,E,k,S,T,R,A,B=[],L,H,M,D,P,O,I,F;if(a=a||{},h={},m={},R=l(o("script,style,head,html,body,title,meta,param"),c.getBlockElements()),I=c.getNonEmptyElements(),O=c.children,T=i.validate,F="forced_root_block"in a?a.forced_root_block:i.forced_root_block,P=c.getWhiteSpaceElements(),A=/^[ \t\r\n]+/,H=/[ \t\r\n]+$/,M=/[ \t\r\n]+/g,D=/^[ \t\r\n]+$/,y=new r({validate:T,self_closing_elements:v(c.getSelfClosingElements()),cdata:function(e){C.append(d("#cdata",4)).value=e},text:function(e,t){var n;L||(e=e.replace(M," "),C.lastChild&&R[C.lastChild.name]&&(e=e.replace(A,""))),0!==e.length&&(n=d("#text",3),n.raw=!!t,C.append(n).value=e)},comment:function(e){C.append(d("#comment",8)).value=e},pi:function(e,t){C.append(d(e,7)).value=t,g(C)},doctype:function(e){var t;t=C.append(d("#doctype",10)),t.value=e,g(C)},start:function(e,t,n){var r,i,o,a,s;if(o=T?c.getElementRule(e):{}){for(r=d(o.outputName||e,1),r.attributes=t,r.shortEnded=n,C.append(r),s=O[C.name],s&&O[r.name]&&!s[r.name]&&B.push(r),i=p.length;i--;)a=p[i].name,a in t.map&&(k=m[a],k?k.push(r):m[a]=[r]);R[e]&&g(r),n||(C=r),!L&&P[e]&&(L=!0)}},end:function(n){var r,i,o,a,s;if(i=T?c.getElementRule(n):{}){if(R[n]&&!L){if(r=C.firstChild,r&&3===r.type)if(o=r.value.replace(A,""),o.length>0)r.value=o,r=r.next;else for(a=r.next,r.remove(),r=a;r&&3===r.type;)o=r.value,a=r.next,(0===o.length||D.test(o))&&(r.remove(),r=a),r=a;if(r=C.lastChild,r&&3===r.type)if(o=r.value.replace(H,""),o.length>0)r.value=o,r=r.prev;else for(a=r.prev,r.remove(),r=a;r&&3===r.type;)o=r.value,a=r.prev,(0===o.length||D.test(o))&&(r.remove(),r=a),r=a}if(L&&P[n]&&(L=!1),(i.removeEmpty||i.paddEmpty)&&C.isEmpty(I))if(i.paddEmpty)C.empty().append(new e("#text","3")).value="\u00a0";else if(!C.attributes.map.name&&!C.attributes.map.id)return s=C.parent,C.empty().remove(),C=s,t;C=C.parent}}},c),b=C=new e(a.context||i.root_name,11),y.parse(n),T&&B.length&&(a.context?a.invalid=!0:u(B)),F&&("body"==b.name||a.isRootContent)&&s(),!a.invalid){for(S in h){for(k=f[S],x=h[S],N=x.length;N--;)x[N].parent||x.splice(N,1);for(w=0,_=k.length;_>w;w++)k[w](x,S,a)}for(w=0,_=p.length;_>w;w++)if(k=p[w],k.name in m){for(x=m[k.name],N=x.length;N--;)x[N].parent||x.splice(N,1);for(N=0,E=k.callbacks.length;E>N;N++)k.callbacks[N](x,k.name,a)}}return b},i.remove_trailing_brs&&d.addNodeFilter("br",function(t){var n,r=t.length,i,o=l({},c.getBlockElements()),a=c.getNonEmptyElements(),s,u,d,f,p,h;for(o.body=1,n=0;r>n;n++)if(i=t[n],s=i.parent,o[i.parent.name]&&i===s.lastChild){for(d=i.prev;d;){if(f=d.name,"span"!==f||"bookmark"!==d.attr("data-mce-type")){if("br"!==f)break;if("br"===f){i=null;break}}d=d.prev}i&&(i.remove(),s.isEmpty(a)&&(p=c.getElementRule(s.name),p&&(p.removeEmpty?s.remove():p.paddEmpty&&(s.empty().append(new e("#text",3)).value="\u00a0"))))}else{for(u=i;s.firstChild===u&&s.lastChild===u&&(u=s,!o[s.name]);)s=s.parent;u===s&&(h=new e("#text",3),h.value="\u00a0",i.replace(h))}}),i.allow_html_in_named_anchor||d.addAttributeFilter("id,name",function(e){for(var t=e.length,n,r,i,o;t--;)if(o=e[t],"a"===o.name&&o.firstChild&&!o.attr("href")){i=o.parent,n=o.lastChild;do r=n.prev,i.insert(n,o),n=r;while(n)}})}}),r(N,[m,p],function(e,t){var n=t.makeMap;return function(t){var r=[],i,o,a,s,l;return t=t||{},i=t.indent,o=n(t.indent_before||""),a=n(t.indent_after||""),s=e.getEncodeFunc(t.entity_encoding||"raw",t.entities),l="html"==t.element_format,{start:function(e,t,n){var c,u,d,f;if(i&&o[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n")),r.push("<",e),t)for(c=0,u=t.length;u>c;c++)d=t[c],r.push(" ",d.name,'="',s(d.value,!0),'"');r[r.length]=!n||l?">":" />",n&&i&&a[e]&&r.length>0&&(f=r[r.length-1],f.length>0&&"\n"!==f&&r.push("\n"))},end:function(e){var t;r.push("</",e,">"),i&&a[e]&&r.length>0&&(t=r[r.length-1],t.length>0&&"\n"!==t&&r.push("\n"))},text:function(e,t){e.length>0&&(r[r.length]=t?e:s(e))},cdata:function(e){r.push("<![CDATA[",e,"]]>")},comment:function(e){r.push("<!--",e,"-->")},pi:function(e,t){t?r.push("<?",e," ",t,"?>"):r.push("<?",e,"?>"),i&&r.push("\n")},doctype:function(e){r.push("<!DOCTYPE",e,">",i?"\n":"")},reset:function(){r.length=0},getContent:function(){return r.join("").replace(/\n$/,"")}}}}),r(E,[N,x],function(e,t){return function(n,r){var i=this,o=new e(n);n=n||{},n.validate="validate"in n?n.validate:!0,i.schema=r=r||new t,i.writer=o,i.serialize=function(e){function t(e){var n=i[e.type],s,l,c,u,d,f,p,h,m;if(n)n(e);else{if(s=e.name,l=e.shortEnded,c=e.attributes,a&&c&&c.length>1){for(f=[],f.map={},m=r.getElementRule(e.name),p=0,h=m.attributesOrder.length;h>p;p++)u=m.attributesOrder[p],u in c.map&&(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));for(p=0,h=c.length;h>p;p++)u=c[p].name,u in f.map||(d=c.map[u],f.map[u]=d,f.push({name:u,value:d}));c=f}if(o.start(e.name,c,l),!l){if(e=e.firstChild)do t(e);while(e=e.next);o.end(s)}}}var i,a;return a=n.validate,i={3:function(e){o.text(e.value,e.raw)},8:function(e){o.comment(e.value)},7:function(e){o.pi(e.name,e.value)},10:function(e){o.doctype(e.value)},4:function(e){o.cdata(e.value)},11:function(e){if(e=e.firstChild)do t(e);while(e=e.next)}},o.reset(),1!=e.type||n.inner?i[11](e):t(e),o.getContent()}}}),r(k,[v,_,m,E,C,x,g,p],function(e,t,n,r,i,o,a,s){var l=s.each,c=s.trim,u=e.DOM;return function(e,i){var s,d,f;return i&&(s=i.dom,d=i.schema),s=s||u,d=d||new o(e),e.entity_encoding=e.entity_encoding||"named",e.remove_trailing_brs="remove_trailing_brs"in e?e.remove_trailing_brs:!0,f=new t(e,d),f.addAttributeFilter("src,href,style",function(t,n){for(var r=t.length,i,o,a="data-mce-"+n,l=e.url_converter,c=e.url_converter_scope,u;r--;)i=t[r],o=i.attributes.map[a],o!==u?(i.attr(n,o.length>0?o:null),i.attr(a,null)):(o=i.attributes.map[n],"style"===n?o=s.serializeStyle(s.parseStyle(o),i.name):l&&(o=l.call(c,o,n,i.name)),i.attr(n,o.length>0?o:null))}),f.addAttributeFilter("class",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("class").replace(/(?:^|\s)mce-item-\w+(?!\S)/g,""),n.attr("class",r.length>0?r:null)}),f.addAttributeFilter("data-mce-type",function(e,t,n){for(var r=e.length,i;r--;)i=e[r],"bookmark"!==i.attributes.map["data-mce-type"]||n.cleanup||i.remove()}),f.addAttributeFilter("data-mce-expando",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),f.addNodeFilter("noscript",function(e){for(var t=e.length,r;t--;)r=e[t].firstChild,r&&(r.value=n.decode(r.value))}),f.addNodeFilter("script,style",function(e,t){function n(e){return e.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}for(var r=e.length,i,o;r--;)i=e[r],o=i.firstChild?i.firstChild.value:"","script"===t?(i.attr("type",(i.attr("type")||"text/javascript").replace(/^mce\-/,"")),o.length>0&&(i.firstChild.value="// <![CDATA[\n"+n(o)+"\n// ]]>")):o.length>0&&(i.firstChild.value="<!--\n"+n(o)+"\n-->")}),f.addNodeFilter("#comment",function(e){for(var t=e.length,n;t--;)n=e[t],0===n.value.indexOf("[CDATA[")?(n.name="#cdata",n.type=4,n.value=n.value.replace(/^\[CDATA\[|\]\]$/g,"")):0===n.value.indexOf("mce:protected ")&&(n.name="#text",n.type=3,n.raw=!0,n.value=unescape(n.value).substr(14))}),f.addNodeFilter("xml:namespace,input",function(e,t){for(var n=e.length,r;n--;)r=e[n],7===r.type?r.remove():1===r.type&&("input"!==t||"type"in r.attributes.map||r.attr("type","text"))}),e.fix_list_elements&&f.addNodeFilter("ul,ol",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.parent,("ul"===r.name||"ol"===r.name)&&n.prev&&"li"===n.prev.name&&n.prev.append(n)}),f.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style,data-mce-selected",function(e,t){for(var n=e.length;n--;)e[n].attr(t,null)}),{schema:d,addNodeFilter:f.addNodeFilter,addAttributeFilter:f.addAttributeFilter,serialize:function(t,n){var i=this,o,u,p,h,m;return a.ie&&s.select("script,style,select,map").length>0?(m=t.innerHTML,t=t.cloneNode(!1),s.setHTML(t,m)):t=t.cloneNode(!0),o=t.ownerDocument.implementation,o.createHTMLDocument&&(u=o.createHTMLDocument(""),l("BODY"==t.nodeName?t.childNodes:[t],function(e){u.body.appendChild(u.importNode(e,!0))}),t="BODY"!=t.nodeName?u.body.firstChild:u.body,p=s.doc,s.doc=u),n=n||{},n.format=n.format||"html",n.selection&&(n.forced_root_block=""),n.no_events||(n.node=t,i.onPreProcess(n)),h=new r(e,d),n.content=h.serialize(f.parse(c(n.getInner?t.innerHTML:s.getOuterHTML(t)),n)),n.cleanup||(n.content=n.content.replace(/\uFEFF/g,"")),n.no_events||i.onPostProcess(n),p&&(s.doc=p),n.node=null,n.content},addRules:function(e){d.addValidElements(e)},setRules:function(e){d.setValidElements(e)},onPreProcess:function(e){i&&i.fire("PreProcess",e)},onPostProcess:function(e){i&&i.fire("PostProcess",e)}}}}),r(S,[],function(){function e(e){function n(t,n){var r,i=0,o,a,s,l,c,u,d=-1,f;if(r=t.duplicate(),r.collapse(n),f=r.parentElement(),f.ownerDocument===e.dom.doc){for(;"false"===f.contentEditable;)f=f.parentNode;if(!f.hasChildNodes())return{node:f,inside:1};for(s=f.children,o=s.length-1;o>=i;)if(u=Math.floor((i+o)/2),l=s[u],r.moveToElementText(l),d=r.compareEndPoints(n?"StartToStart":"EndToEnd",t),d>0)o=u-1;else{if(!(0>d))return{node:l};i=u+1}if(0>d)for(l?r.collapse(!1):(r.moveToElementText(f),r.collapse(!0),l=f,a=!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",1)&&f==r.parentElement();)c++;else for(r.collapse(!0),c=0;0!==r.compareEndPoints(n?"StartToStart":"StartToEnd",t)&&0!==r.move("character",-1)&&f==r.parentElement();)c++;return{node:l,position:d,offset:c,inside:a}}}function r(){function r(e){var r=n(a,e),i,o,l=0,c,u,d;if(i=r.node,o=r.offset,r.inside&&!i.hasChildNodes())return s[e?"setStart":"setEnd"](i,0),t;if(o===u)return s[e?"setStartBefore":"setEndAfter"](i),t;if(0>r.position){if(c=r.inside?i.firstChild:i.nextSibling,!c)return s[e?"setStartAfter":"setEndAfter"](i),t;if(!o)return 3==c.nodeType?s[e?"setStart":"setEnd"](c,0):s[e?"setStartBefore":"setEndBefore"](c),t;for(;c;){if(d=c.nodeValue,l+=d.length,l>=o){i=c,l-=o,l=d.length-l;break}c=c.nextSibling}}else{if(c=i.previousSibling,!c)return s[e?"setStartBefore":"setEndBefore"](i);if(!o)return 3==i.nodeType?s[e?"setStart":"setEnd"](c,i.nodeValue.length):s[e?"setStartAfter":"setEndAfter"](c),t;for(;c;){if(l+=c.nodeValue.length,l>=o){i=c,l-=o;break}c=c.previousSibling}}s[e?"setStart":"setEnd"](i,l)}var a=e.getRng(),s=o.createRng(),l,c,u,d,f;if(l=a.item?a.item(0):a.parentElement(),l.ownerDocument!=o.doc)return s;if(c=e.isCollapsed(),a.item)return s.setStart(l.parentNode,o.nodeIndex(l)),s.setEnd(s.startContainer,s.startOffset+1),s;try{r(!0),c||r()}catch(p){if(-2147024809!=p.number)throw p;f=i.getBookmark(2),u=a.duplicate(),u.collapse(!0),l=u.parentElement(),c||(u=a.duplicate(),u.collapse(!1),d=u.parentElement(),d.innerHTML=d.innerHTML),l.innerHTML=l.innerHTML,i.moveToBookmark(f),a=e.getRng(),r(!0),c||r()}return s}var i=this,o=e.dom,a=!1;this.getBookmark=function(r){function i(e){var t,n,r,i,a=[];for(t=e.parentNode,n=o.getRoot().parentNode;t!=n&&9!==t.nodeType;){for(r=t.children,i=r.length;i--;)if(e===r[i]){a.push(i);break}e=t,t=t.parentNode}return a}function a(e){var r;return r=n(s,e),r?{position:r.position,offset:r.offset,indexes:i(r.node),inside:r.inside}:t}var s=e.getRng(),l={};return 2===r&&(s.item?l.start={ctrl:!0,indexes:i(s.item(0))}:(l.start=a(!0),e.isCollapsed()||(l.end=a()))),l},this.moveToBookmark=function(e){function t(e){var t,n,r,i;for(t=o.getRoot(),n=e.length-1;n>=0;n--)i=t.children,r=e[n],i.length-1>=r&&(t=i[r]);return t}function n(n){var o=e[n?"start":"end"],a,s,l,c;o&&(a=o.position>0,s=i.createTextRange(),s.moveToElementText(t(o.indexes)),c=o.offset,c!==l?(s.collapse(o.inside||a),s.moveStart("character",a?-c:c)):s.collapse(n),r.setEndPoint(n?"StartToStart":"EndToStart",s),n&&r.collapse(!0))}var r,i=o.doc.body;e.start&&(e.start.ctrl?(r=i.createControlRange(),r.addElement(t(e.start.indexes)),r.select()):(r=i.createTextRange(),n(!0),n(),r.select()))},this.addRange=function(n){function r(e){var t,n,r,s,f;r=o.create("a"),t=e?l:u,n=e?c:d,s=i.duplicate(),(t==p||t==p.documentElement)&&(t=h,n=0),3==t.nodeType?(t.parentNode.insertBefore(r,t),s.moveToElementText(r),s.moveStart("character",n),o.remove(r),i.setEndPoint(e?"StartToStart":"EndToEnd",s)):(f=t.childNodes,f.length?(n>=f.length?o.insertAfter(r,f[f.length-1]):t.insertBefore(r,f[n]),s.moveToElementText(r)):t.canHaveHTML&&(t.innerHTML="<span></span>",r=t.firstChild,s.moveToElementText(r),s.collapse(a)),i.setEndPoint(e?"StartToStart":"EndToEnd",s),o.remove(r)) +}var i,s,l,c,u,d,f,p=e.dom.doc,h=p.body,m,g;if(l=n.startContainer,c=n.startOffset,u=n.endContainer,d=n.endOffset,i=h.createTextRange(),l==u&&1==l.nodeType){if(c==d&&!l.hasChildNodes()){if(l.canHaveHTML)return f=l.previousSibling,f&&!f.hasChildNodes()&&o.isBlock(f)?f.innerHTML="":f=null,l.innerHTML="<span></span><span></span>",i.moveToElementText(l.lastChild),i.select(),o.doc.selection.clear(),l.innerHTML="",f&&(f.innerHTML=""),t;c=o.nodeIndex(l),l=l.parentNode}if(c==d-1)try{if(g=l.childNodes[c],s=h.createControlRange(),s.addElement(g),s.select(),m=e.getRng(),m.item&&g===m.item(0))return}catch(v){}}r(!0),r(),i.select()},this.getRangeAt=r}return e}),r(T,[g],function(e){return{BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(e){return e.shiftKey||e.ctrlKey||e.altKey},metaKeyPressed:function(t){return e.mac?t.metaKey:t.ctrlKey&&!t.altKey}}}),r(R,[T,p,g],function(e,n,r){return function(i,o){function a(e){return o.settings.object_resizing===!1?!1:/TABLE|IMG|DIV/.test(e.nodeName)?"false"===e.getAttribute("data-mce-resize")?!1:!0:!1}function s(t){var n,r;n=t.screenX-E,r=t.screenY-k,H=n*N[2]+R,M=r*N[3]+A,H=5>H?5:H,M=5>M?5:M,(e.modifierPressed(t)||"IMG"==x.nodeName&&0!==N[2]*N[3])&&(H=Math.round(M/B),M=Math.round(H*B)),b.setStyles(w,{width:H,height:M}),0>N[2]&&H>=w.clientWidth&&b.setStyle(w,"left",S+(R-H)),0>N[3]&&M>=w.clientHeight&&b.setStyle(w,"top",T+(A-M)),L||(o.fire("ObjectResizeStart",{target:x,width:R,height:A}),L=!0)}function l(){function e(e,t){t&&(x.style[e]||!o.schema.isValid(x.nodeName.toLowerCase(),e)?b.setStyle(x,e,t):b.setAttrib(x,e,t))}L=!1,e("width",H),e("height",M),b.unbind(D,"mousemove",s),b.unbind(D,"mouseup",l),P!=D&&(b.unbind(P,"mousemove",s),b.unbind(P,"mouseup",l)),b.remove(w),O&&"TABLE"!=x.nodeName||c(x),o.fire("ObjectResized",{target:x,width:H,height:M}),o.nodeChanged()}function c(e,n,r){var i,c,d,f,p;i=b.getPos(e,o.getBody()),S=i.x,T=i.y,p=e.getBoundingClientRect(),c=p.width||p.right-p.left,d=p.height||p.bottom-p.top,x!=e&&(g(),x=e,H=M=0),f=o.fire("ObjectSelected",{target:e}),a(e)&&!f.isDefaultPrevented()?C(_,function(e,i){function a(t){L=!0,E=t.screenX,k=t.screenY,R=x.clientWidth,A=x.clientHeight,B=A/R,N=e,w=x.cloneNode(!0),b.addClass(w,"mce-clonedresizable"),w.contentEditable=!1,w.unSelectabe=!0,b.setStyles(w,{left:S,top:T,margin:0}),w.removeAttribute("data-mce-selected"),o.getBody().appendChild(w),b.bind(D,"mousemove",s),b.bind(D,"mouseup",l),P!=D&&(b.bind(P,"mousemove",s),b.bind(P,"mouseup",l))}var u,f;return n?(i==n&&a(r),t):(u=b.get("mceResizeHandle"+i),u?b.show(u):(f=o.getBody(),u=b.add(f,"div",{id:"mceResizeHandle"+i,"data-mce-bogus":!0,"class":"mce-resizehandle",contentEditable:!1,unSelectabe:!0,style:"cursor:"+i+"-resize; margin:0; padding:0"}),b.bind(u,"mousedown",function(e){e.preventDefault(),a(e)})),b.setStyles(u,{left:c*e[0]+S-u.offsetWidth/2,top:d*e[1]+T-u.offsetHeight/2}),t)}):u(),x.setAttribute("data-mce-selected","1")}function u(){var e,t;x&&x.removeAttribute("data-mce-selected");for(e in _)t=b.get("mceResizeHandle"+e),t&&(b.unbind(t),b.remove(t))}function d(e){function n(e,t){do if(e===t)return!0;while(e=e.parentNode)}var r;return C(b.select("img[data-mce-selected],hr[data-mce-selected]"),function(e){e.removeAttribute("data-mce-selected")}),r="mousedown"==e.type?e.target:i.getNode(),r=b.getParent(r,O?"table":"table,img,hr"),r&&n(i.getStart(),r)&&n(i.getEnd(),r)&&(!O||r!=i.getStart()&&"IMG"!==i.getStart().nodeName)?(c(r),t):(u(),t)}function f(e,t,n){e&&e.attachEvent&&e.attachEvent("on"+t,n)}function p(e,t,n){e&&e.detachEvent&&e.detachEvent("on"+t,n)}function h(e){var t=e.srcElement,n,r,i,a,s,l,u;n=t.getBoundingClientRect(),l=e.clientX-n.left,u=e.clientY-n.top;for(r in _)if(i=_[r],a=t.offsetWidth*i[0],s=t.offsetHeight*i[1],8>Math.abs(a-l)&&8>Math.abs(s-u)){N=i;break}L=!0,o.getDoc().selection.empty(),c(t,r,e)}function m(e){var n=e.srcElement;if(n!=x){if(g(),0===n.id.indexOf("mceResizeHandle"))return e.returnValue=!1,t;("IMG"==n.nodeName||"TABLE"==n.nodeName)&&(u(),x=n,f(n,"resizestart",h))}}function g(){p(x,"resizestart",h)}function v(e){var t;if(O){t=D.body.createControlRange();try{return t.addElement(e),t.select(),!0}catch(n){}}}function y(){x=w=null,O&&(g(),p(o.getBody(),"controlselect",m))}var b=o.dom,C=n.each,x,w,_,N,E,k,S,T,R,A,B,L,H,M,D=o.getDoc(),P=document,O=r.ie;_={n:[.5,0,0,-1],e:[1,.5,1,0],s:[.5,1,0,1],w:[0,.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};var I=".mce-content-body";return o.contentStyles.push(I+" div.mce-resizehandle {"+"position: absolute;"+"border: 1px solid black;"+"background: #FFF;"+"width: 5px;"+"height: 5px;"+"z-index: 10000"+"}"+I+" .mce-resizehandle:hover {"+"background: #000"+"}"+I+" img[data-mce-selected], hr[data-mce-selected] {"+"outline: 1px solid black;"+"resize: none"+"}"+I+" .mce-clonedresizable {"+"position: absolute;"+(r.gecko?"":"outline: 1px dashed black;")+"opacity: .5;"+"filter: alpha(opacity=50);"+"z-index: 10000"+"}"),o.on("init",function(){if(O)o.on("ObjectResized",function(e){"TABLE"!=e.target.nodeName&&(u(),v(e.target))}),f(o.getBody(),"controlselect",m);else try{o.getDoc().execCommand("enableObjectResizing",!1,!1)}catch(e){}o.on("nodechange mousedown ResizeEditor",d),o.on("keydown keyup",function(e){x&&"TABLE"==x.nodeName&&d(e)})}),{controlSelect:v,destroy:y}}}),r(A,[f,S,R,g,p],function(e,n,r,i,o){function a(e,t,i,o){var a=this;a.dom=e,a.win=t,a.serializer=i,a.editor=o,a.controlSelection=new r(a,o),a.win.getSelection||(a.tridentSel=new n(a))}var s=o.each,l=o.grep,c=o.trim,u=i.ie,d=i.opera;return a.prototype={setCursorLocation:function(e,t){var n=this,r=n.dom.createRng();r.setStart(e,t),r.setEnd(e,t),n.setRng(r),n.collapse(!1)},getContent:function(e){var n=this,r=n.getRng(),i=n.dom.create("body"),o=n.getSel(),a,s,l;return e=e||{},a=s="",e.get=!0,e.format=e.format||"html",e.selection=!0,n.editor.fire("BeforeGetContent",e),"text"==e.format?n.isCollapsed()?"":r.text||(o.toString?""+o:""):(r.cloneContents?(l=r.cloneContents(),l&&i.appendChild(l)):r.item!==t||r.htmlText!==t?(i.innerHTML="<br>"+(r.item?r.item(0).outerHTML:r.htmlText),i.removeChild(i.firstChild)):i.innerHTML=""+r,/^\s/.test(i.innerHTML)&&(a=" "),/\s+$/.test(i.innerHTML)&&(s=" "),e.getInner=!0,e.content=n.isCollapsed()?"":a+n.serializer.serialize(i,e)+s,n.editor.fire("GetContent",e),e.content)},setContent:function(e,t){var n=this,r=n.getRng(),i,o=n.win.document,a,s;if(t=t||{format:"html"},t.set=!0,t.selection=!0,e=t.content=e,t.no_events||n.editor.fire("BeforeSetContent",t),e=t.content,r.insertNode){e+='<span id="__caret">_</span>',r.startContainer==o&&r.endContainer==o?o.body.innerHTML=e:(r.deleteContents(),0===o.body.childNodes.length?o.body.innerHTML=e:r.createContextualFragment?r.insertNode(r.createContextualFragment(e)):(a=o.createDocumentFragment(),s=o.createElement("div"),a.appendChild(s),s.outerHTML=e,r.insertNode(a))),i=n.dom.get("__caret"),r=o.createRange(),r.setStartBefore(i),r.setEndBefore(i),n.setRng(r),n.dom.remove("__caret");try{n.setRng(r)}catch(l){}}else r.item&&(o.execCommand("Delete",!1,null),r=n.getRng()),/^\s+/.test(e)?(r.pasteHTML('<span id="__mce_tmp">_</span>'+e),n.dom.remove("__mce_tmp")):r.pasteHTML(e);t.no_events||n.editor.fire("SetContent",t)},getStart:function(){var e=this,t=e.getRng(),n,r,i,o;if(t.duplicate||t.item){if(t.item)return t.item(0);for(i=t.duplicate(),i.collapse(1),n=i.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),r=o=t.parentElement();o=o.parentNode;)if(o==n){n=r;break}return n}return n=t.startContainer,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[Math.min(n.childNodes.length-1,t.startOffset)]),n&&3==n.nodeType?n.parentNode:n},getEnd:function(){var e=this,t=e.getRng(),n,r;return t.duplicate||t.item?t.item?t.item(0):(t=t.duplicate(),t.collapse(0),n=t.parentElement(),n.ownerDocument!==e.dom.doc&&(n=e.dom.getRoot()),n&&"BODY"==n.nodeName?n.lastChild||n:n):(n=t.endContainer,r=t.endOffset,1==n.nodeType&&n.hasChildNodes()&&(n=n.childNodes[r>0?r-1:r]),n&&3==n.nodeType?n.parentNode:n)},getBookmark:function(e,t){function n(e,t){var n=0;return s(a.select(e),function(e,r){e==t&&(n=r)}),n}function r(e){function t(t){var n,r,i,o=t?"start":"end";n=e[o+"Container"],r=e[o+"Offset"],1==n.nodeType&&"TR"==n.nodeName&&(i=n.childNodes,n=i[Math.min(t?r:r-1,i.length-1)],n&&(r=t?0:n.childNodes.length,e["set"+(t?"Start":"End")](n,r)))}return t(!0),t(),e}function i(){function e(e,n){var i=e[n?"startContainer":"endContainer"],a=e[n?"startOffset":"endOffset"],s=[],l,c,u=0;if(3==i.nodeType){if(t)for(l=i.previousSibling;l&&3==l.nodeType;l=l.previousSibling)a+=l.nodeValue.length;s.push(a)}else c=i.childNodes,a>=c.length&&c.length&&(u=1,a=Math.max(0,c.length-1)),s.push(o.dom.nodeIndex(c[a],t)+u);for(;i&&i!=r;i=i.parentNode)s.push(o.dom.nodeIndex(i,t));return s}var n=o.getRng(!0),r=a.getRoot(),i={};return i.start=e(n,!0),o.isCollapsed()||(i.end=e(n)),i}var o=this,a=o.dom,l,c,u,d,f,p,h="",m;if(2==e)return p=o.getNode(),f=p.nodeName,"IMG"==f?{name:f,index:n(f,p)}:o.tridentSel?o.tridentSel.getBookmark(e):i();if(e)return{rng:o.getRng()};if(l=o.getRng(),u=a.uniqueId(),d=o.isCollapsed(),m="overflow:hidden;line-height:0px",l.duplicate||l.item){if(l.item)return p=l.item(0),f=p.nodeName,{name:f,index:n(f,p)};c=l.duplicate();try{l.collapse(),l.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_start" style="'+m+'">'+h+"</span>"),d||(c.collapse(!1),l.moveToElementText(c.parentElement()),0===l.compareEndPoints("StartToEnd",c)&&c.move("character",-1),c.pasteHTML('<span data-mce-type="bookmark" id="'+u+'_end" style="'+m+'">'+h+"</span>"))}catch(g){return null}}else{if(p=o.getNode(),f=p.nodeName,"IMG"==f)return{name:f,index:n(f,p)};c=r(l.cloneRange()),d||(c.collapse(!1),c.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_end",style:m},h))),l=r(l),l.collapse(!0),l.insertNode(a.create("span",{"data-mce-type":"bookmark",id:u+"_start",style:m},h))}return o.moveToBookmark({id:u,keep:1}),{id:u}},moveToBookmark:function(e){function t(t){var n=e[t?"start":"end"],r,i,o,s;if(n){for(o=n[0],i=c,r=n.length-1;r>=1;r--){if(s=i.childNodes,n[r]>s.length-1)return;i=s[n[r]]}3===i.nodeType&&(o=Math.min(n[0],i.nodeValue.length)),1===i.nodeType&&(o=Math.min(n[0],i.childNodes.length)),t?a.setStart(i,o):a.setEnd(i,o)}return!0}function n(t){var n=o.get(e.id+"_"+t),r,i,a,c,u=e.keep;if(n&&(r=n.parentNode,"start"==t?(u?(r=n.firstChild,i=1):i=o.nodeIndex(n),f=p=r,h=m=i):(u?(r=n.firstChild,i=1):i=o.nodeIndex(n),p=r,m=i),!u)){for(c=n.previousSibling,a=n.nextSibling,s(l(n.childNodes),function(e){3==e.nodeType&&(e.nodeValue=e.nodeValue.replace(/\uFEFF/g,""))});n=o.get(e.id+"_"+t);)o.remove(n,1);c&&a&&c.nodeType==a.nodeType&&3==c.nodeType&&!d&&(i=c.nodeValue.length,c.appendData(a.nodeValue),o.remove(a),"start"==t?(f=p=c,h=m=i):(p=c,m=i))}}function r(e){return!o.isBlock(e)||e.innerHTML||u||(e.innerHTML='<br data-mce-bogus="1" />'),e}var i=this,o=i.dom,a,c,f,p,h,m;if(e)if(e.start){if(a=o.createRng(),c=o.getRoot(),i.tridentSel)return i.tridentSel.moveToBookmark(e);t(!0)&&t()&&i.setRng(a)}else e.id?(n("start"),n("end"),f&&(a=o.createRng(),a.setStart(r(f),h),a.setEnd(r(p),m),i.setRng(a))):e.name?i.select(o.select(e.name)[e.index]):e.rng&&i.setRng(e.rng)},select:function(n,r){function i(n,r){var i=new e(n,n);do{if(3==n.nodeType&&0!==c(n.nodeValue).length)return r?s.setStart(n,0):s.setEnd(n,n.nodeValue.length),t;if("BR"==n.nodeName)return r?s.setStartBefore(n):s.setEndBefore(n),t}while(n=r?i.next():i.prev())}var o=this,a=o.dom,s=a.createRng(),l;if(n){if(!r&&o.controlSelection.controlSelect(n))return;l=a.nodeIndex(n),s.setStart(n.parentNode,l),s.setEnd(n.parentNode,l+1),r&&(i(n,1),i(n)),o.setRng(s)}return n},isCollapsed:function(){var e=this,t=e.getRng(),n=e.getSel();return!t||t.item?!1:t.compareEndPoints?0===t.compareEndPoints("StartToEnd",t):!n||t.collapsed},collapse:function(e){var t=this,n=t.getRng(),r;n.item&&(r=n.item(0),n=t.win.document.body.createTextRange(),n.moveToElementText(r)),n.collapse(!!e),t.setRng(n)},getSel:function(){var e=this.win;return e.getSelection?e.getSelection():e.document.selection},getRng:function(e){var t=this,n,r,i,o=t.win.document;if(e&&t.tridentSel)return t.tridentSel.getRangeAt(0);try{(n=t.getSel())&&(r=n.rangeCount>0?n.getRangeAt(0):n.createRange?n.createRange():o.createRange())}catch(a){}return u&&r&&r.setStart&&o.selection.createRange().item&&(i=o.selection.createRange().item(0),r=o.createRange(),r.setStartBefore(i),r.setEndAfter(i)),r||(r=o.createRange?o.createRange():o.body.createTextRange()),r.setStart&&9===r.startContainer.nodeType&&r.collapsed&&(i=t.dom.getRoot(),r.setStart(i,0),r.setEnd(i,0)),t.selectedRange&&t.explicitRange&&(0===r.compareBoundaryPoints(r.START_TO_START,t.selectedRange)&&0===r.compareBoundaryPoints(r.END_TO_END,t.selectedRange)?r=t.explicitRange:(t.selectedRange=null,t.explicitRange=null)),r},setRng:function(e,n){var r=this,i;if(e.select)try{e.select()}catch(o){}else if(r.tridentSel){if(e.cloneRange)try{return r.tridentSel.addRange(e),t}catch(o){}}else if(i=r.getSel()){r.explicitRange=e;try{i.removeAllRanges()}catch(o){}i.addRange(e),n===!1&&i.extend&&(i.collapse(e.endContainer,e.endOffset),i.extend(e.startContainer,e.startOffset)),r.selectedRange=i.rangeCount>0?i.getRangeAt(0):null}},setNode:function(e){var t=this;return t.setContent(t.dom.getOuterHTML(e)),e},getNode:function(){function e(e,t){for(var n=e;e&&3===e.nodeType&&0===e.length;)e=t?e.nextSibling:e.previousSibling;return e||n}var t=this,n=t.getRng(),r,i=n.startContainer,o=n.endContainer,a=n.startOffset,s=n.endOffset;return n?n.setStart?(r=n.commonAncestorContainer,!n.collapsed&&(i==o&&2>s-a&&i.hasChildNodes()&&(r=i.childNodes[a]),3===i.nodeType&&3===o.nodeType&&(i=i.length===a?e(i.nextSibling,!0):i.parentNode,o=0===s?e(o.previousSibling,!1):o.parentNode,i&&i===o))?i:r&&3==r.nodeType?r.parentNode:r):n.item?n.item(0):n.parentElement():t.dom.getRoot()},getSelectedBlocks:function(t,n){var r=this,i=r.dom,o,a=[];if(t=i.getParent(t||r.getStart(),i.isBlock),n=i.getParent(n||r.getEnd(),i.isBlock),t&&a.push(t),t&&n&&t!=n){o=t;for(var s=new e(t,i.getRoot());(o=s.next())&&o!=n;)i.isBlock(o)&&a.push(o)}return n&&t!=n&&a.push(n),a},isForward:function(){var e=this.dom,t=this.getSel(),n,r;return t&&t.anchorNode&&t.focusNode?(n=e.createRng(),n.setStart(t.anchorNode,t.anchorOffset),n.collapse(!0),r=e.createRng(),r.setStart(t.focusNode,t.focusOffset),r.collapse(!0),0>=n.compareBoundaryPoints(n.START_TO_START,r)):!0},normalize:function(){function n(n){function s(t,n){for(var r=new e(t,p.getParent(t.parentNode,p.isBlock)||h);t=r[n?"prev":"next"]();)if("BR"===t.nodeName)return!0}function l(e,t){return e.previousSibling&&e.previousSibling.nodeName==t}function c(n,r){var i,s;for(r=r||u,i=new e(r,p.getParent(r.parentNode,p.isBlock)||h);m=i[n?"prev":"next"]();){if(3===m.nodeType&&m.nodeValue.length>0)return u=m,d=n?m.nodeValue.length:0,o=!0,t;if(p.isBlock(m)||g[m.nodeName.toLowerCase()])return;s=m}a&&s&&(u=s,o=!0,d=0)}var u,d,f,p=r.dom,h=p.getRoot(),m,g,v;if(u=i[(n?"start":"end")+"Container"],d=i[(n?"start":"end")+"Offset"],g=p.schema.getNonEmptyElements(),9===u.nodeType&&(u=p.getRoot(),d=0),u===h){if(n&&(m=u.childNodes[d>0?d-1:0],m&&(v=m.nodeName.toLowerCase(),g[m.nodeName]||"TABLE"==m.nodeName)))return;if(u.hasChildNodes()&&(d=Math.min(!n&&d>0?d-1:d,u.childNodes.length-1),u=u.childNodes[d],d=0,u.hasChildNodes()&&!/TABLE/.test(u.nodeName))){m=u,f=new e(u,h);do{if(3===m.nodeType&&m.nodeValue.length>0){d=n?0:m.nodeValue.length,u=m,o=!0;break}if(g[m.nodeName.toLowerCase()]){d=p.nodeIndex(m),u=m.parentNode,"IMG"!=m.nodeName||n||d++,o=!0;break}}while(m=n?f.next():f.prev())}}a&&(3===u.nodeType&&0===d&&c(!0),1===u.nodeType&&(m=u.childNodes[d],!m||"BR"!==m.nodeName||l(m,"A")||s(m)||s(m,!0)||c(!0,u.childNodes[d]))),n&&!a&&3===u.nodeType&&d===u.nodeValue.length&&c(!1),o&&i["set"+(n?"Start":"End")](u,d)}var r=this,i,o,a;u||(i=r.getRng(),a=i.collapsed,n(!0),a||n(),o&&(a&&i.collapse(!0),r.setRng(i,r.isForward())))},selectorChanged:function(e,n){var r=this,i;return r.selectorChangedData||(r.selectorChangedData={},i={},r.editor.on("NodeChange",function(e){var n=e.element,o=r.dom,a=o.getParents(n,null,o.getRoot()),l={};s(r.selectorChangedData,function(e,n){s(a,function(r){return o.is(r,n)?(i[n]||(s(e,function(e){e(!0,{node:r,selector:n,parents:a})}),i[n]=e),l[n]=e,!1):t})}),s(i,function(e,t){l[t]||(delete i[t],s(e,function(e){e(!1,{node:n,selector:t,parents:a})}))})})),r.selectorChangedData[e]||(r.selectorChangedData[e]=[]),r.selectorChangedData[e].push(n),r},scrollIntoView:function(e){var t,n,r=this,i=r.dom;n=i.getViewPort(r.editor.getWin()),t=i.getPos(e).y,(n.y>t||t+25>n.y+n.h)&&r.editor.getWin().scrollTo(0,n.y>t?t:t-n.h+25)},destroy:function(){this.win=null,this.controlSelection.destroy()}},a}),r(B,[p],function(e){function n(e){this.walk=function(n,i){function o(e){var t;return t=e[0],3===t.nodeType&&t===c&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===f&&e.length>0&&t===d&&3===t.nodeType&&e.splice(e.length-1,1),e}function a(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function s(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function l(e,t,n){var r=n?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=a(g==e?g:g[r],r),y.length&&(n||y.reverse(),i(o(y)))}var c=n.startContainer,u=n.startOffset,d=n.endContainer,f=n.endOffset,p,h,m,g,v,y,b;if(b=e.select("td.mce-item-selected,th.mce-item-selected"),b.length>0)return r(b,function(e){i([e])}),t;if(1==c.nodeType&&c.hasChildNodes()&&(c=c.childNodes[u]),1==d.nodeType&&d.hasChildNodes()&&(d=d.childNodes[Math.min(f-1,d.childNodes.length-1)]),c==d)return i(o([c]));for(p=e.findCommonAncestor(c,d),g=c;g;g=g.parentNode){if(g===d)return l(c,p,!0);if(g===p)break}for(g=d;g;g=g.parentNode){if(g===c)return l(d,p);if(g===p)break}h=s(c,p)||c,m=s(d,p)||d,l(c,h,!0),y=a(h==c?h:h.nextSibling,"nextSibling",m==d?m.nextSibling:m),y.length&&i(o(y)),l(d,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&n.nodeValue.length>r&&(i=t(n,r),n=i.previousSibling,o>r?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&n.nodeValue.length>r&&(n=t(n,r),r=0),3==i.nodeType&&o>0&&i.nodeValue.length>o&&(i=t(i,o).previousSibling,o=i.nodeValue.length)),{startContainer:n,startOffset:r,endContainer:i,endOffset:o}}}var r=e.each;return n.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},n}),r(L,[f,B,p],function(e,n,r){return function(i){function o(e){return e.nodeType&&(e=e.nodeName),!!i.schema.getTextBlockElements()[e.toLowerCase()]}function a(e,t){return I.getParents(e,t,I.getRoot())}function s(e){return 1===e.nodeType&&"_mce_caret"===e.id}function l(){d({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:!1,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:!1,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:!1,styles:{"float":"right"}}],alignjustify:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:!0},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:!0},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:!1},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:!1},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},code:{inline:"code"},link:{inline:"a",selector:"a",remove:"all",split:!0,deep:!0,onmatch:function(){return!0},onformat:function(e,t,n){et(n,function(t,n){I.setAttrib(e,n,t)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike",remove:"all",split:!0,expand:!1,block_expand:!0,deep:!0},{selector:"span",attributes:["style","class"],remove:"empty",split:!0,expand:!1,deep:!0},{selector:"*",attributes:["style","class"],split:!1,expand:!1,deep:!0}]}),et("p h1 h2 h3 h4 h5 h6 div address pre div dt dd samp".split(/\s/),function(e){d(e,{block:e,remove:"all"})}),d(i.settings.formats)}function c(){i.addShortcut("ctrl+b","bold_desc","Bold"),i.addShortcut("ctrl+i","italic_desc","Italic"),i.addShortcut("ctrl+u","underline_desc","Underline");for(var e=1;6>=e;e++)i.addShortcut("ctrl+"+e,"",["FormatBlock",!1,"h"+e]);i.addShortcut("ctrl+7","",["FormatBlock",!1,"p"]),i.addShortcut("ctrl+8","",["FormatBlock",!1,"div"]),i.addShortcut("ctrl+9","",["FormatBlock",!1,"address"])}function u(e){return e?O[e]:O}function d(e,t){e&&("string"!=typeof e?et(e,function(e,t){d(t,e)}):(t=t.length?t:[t],et(t,function(e){e.deep===X&&(e.deep=!e.selector),e.split===X&&(e.split=!e.selector||e.inline),e.remove===X&&e.selector&&!e.inline&&(e.remove="none"),e.selector&&e.inline&&(e.mixed=!0,e.block_expand=!0),"string"==typeof e.classes&&(e.classes=e.classes.split(/\s+/))}),O[e]=t))}function f(e){var t;return i.dom.getParent(e,function(e){return t=i.dom.getStyle(e,"text-decoration"),t&&"none"!==t}),t}function p(e){var t;1===e.nodeType&&e.parentNode&&1===e.parentNode.nodeType&&(t=f(e.parentNode),i.dom.getStyle(e,"color")&&t?i.dom.setStyle(e,"text-decoration",t):i.dom.getStyle(e,"textdecoration")===t&&i.dom.setStyle(e,"text-decoration",null))}function h(n,r,a){function l(e,t){t=t||g,e&&(t.onformat&&t.onformat(e,t,r,a),et(t.styles,function(t,n){I.setStyle(e,n,E(t,r))}),et(t.attributes,function(t,n){I.setAttrib(e,n,E(t,r))}),et(t.classes,function(t){t=E(t,r),I.hasClass(e,t)||I.addClass(e,t)}))}function c(){function t(t,n){var r=new e(n);for(a=r.current();a;a=r.prev())if(a.childNodes.length>1||a==t||"BR"==a.tagName)return a}var n=i.selection.getRng(),r=n.startContainer,o=n.endContainer;if(r!=o&&0===n.endOffset){var s=t(r,o),l=3==s.nodeType?s.length:s.childNodes.length;n.setEnd(s,l)}return n}function d(e,n,r,i,o){var a=[],s=-1,l,c=-1,u=-1,d;return et(e.childNodes,function(e,n){return"UL"===e.nodeName||"OL"===e.nodeName?(s=n,l=e,!1):t}),et(e.childNodes,function(e,t){"SPAN"===e.nodeName&&"bookmark"==I.getAttrib(e,"data-mce-type")&&(e.id==n.id+"_start"?c=t:e.id==n.id+"_end"&&(u=t))}),0>=s||s>c&&u>s?(et(tt(e.childNodes),o),0):(d=I.clone(r,K),et(tt(e.childNodes),function(e,t){(s>c&&s>t||c>s&&t>s)&&(a.push(e),e.parentNode.removeChild(e))}),s>c?e.insertBefore(d,l):c>s&&e.insertBefore(d,l.nextSibling),i.push(d),et(a,function(e){d.appendChild(e)}),d)}function f(e,i,a){var c=[],u,f,p=!0;u=g.inline||g.block,f=I.create(u),l(f),W.walk(e,function(e){function h(e){var b,x,w,N,E;return E=p,b=e.nodeName.toLowerCase(),x=e.parentNode.nodeName.toLowerCase(),1===e.nodeType&&J(e)&&(E=p,p="true"===J(e),N=!0),_(b,"br")?(y=0,g.block&&I.remove(e),t):g.wrapper&&v(e,n,r)?(y=0,t):p&&!N&&g.block&&!g.wrapper&&o(b)&&z(x,u)?(e=I.rename(e,u),l(e),c.push(e),y=0,t):g.selector&&(et(m,function(t){"collapsed"in t&&t.collapsed!==C||I.is(e,t.selector)&&!s(e)&&(l(e,t),w=!0)}),!g.inline||w)?(y=0,t):(!p||N||!z(u,b)||!z(x,u)||!a&&3===e.nodeType&&1===e.nodeValue.length&&65279===e.nodeValue.charCodeAt(0)||s(e)||g.inline&&V(e)?"li"==b&&i?y=d(e,i,f,c,h):(y=0,et(tt(e.childNodes),h),N&&(p=E),y=0):(y||(y=I.clone(f,K),e.parentNode.insertBefore(y,e),c.push(y)),y.appendChild(e)),t)}var y;et(e,h)}),g.wrap_links===!1&&et(c,function(e){function t(e){var n,r,i;if("A"===e.nodeName){for(r=I.clone(f,K),c.push(r),i=tt(e.childNodes),n=0;i.length>n;n++)r.appendChild(i[n]);e.appendChild(r)}et(tt(e.childNodes),t)}t(e)}),et(c,function(e){function i(e){var t=0;return et(e.childNodes,function(e){k(e)||L(e)||t++}),t}function o(e){var n,r;return et(e.childNodes,function(e){return 1!=e.nodeType||L(e)||s(e)?t:(n=e,K)}),n&&w(n,g)&&(r=I.clone(n,K),l(r),I.replace(r,e,G),I.remove(n,1)),r||e}var a;if(a=i(e),(c.length>1||!V(e))&&0===a)return I.remove(e,1),t;if(g.inline||g.wrapper){if(g.exact||1!==a||(e=o(e)),et(m,function(t){et(I.select(t.inline,e),function(e){var n;if(t.wrap_links===!1){n=e.parentNode;do if("A"===n.nodeName)return;while(n=n.parentNode)}R(t,r,e,t.exact?e:null)})}),v(e.parentNode,n,r))return I.remove(e,1),e=0,G;g.merge_with_parents&&I.getParent(e.parentNode,function(i){return v(i,n,r)?(I.remove(e,1),e=0,G):t}),e&&g.merge_siblings!==!1&&(e=H(B(e),e),e=H(e,B(e,G)))}})}var m=u(n),g=m[0],y,b,C=!a&&F.isCollapsed();if(g)if(a)a.nodeType?(b=I.createRng(),b.setStartBefore(a),b.setEndAfter(a),f(T(b,m),null,!0)):f(a,null,!0);else if(C&&g.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length)D("apply",n,r);else{var x=i.selection.getNode();U||!m[0].defaultBlock||I.getParent(x,I.isBlock)||h(m[0].defaultBlock),i.selection.setRng(c()),y=F.getBookmark(),f(T(F.getRng(G),m),y),g.styles&&(g.styles.color||g.styles.textDecoration)&&(nt(x,p,"childNodes"),p(x)),F.moveToBookmark(y),P(F.getRng(G)),i.nodeChanged()}}function m(e,n,r){function o(e){var t,r,i,a,s;if(1===e.nodeType&&J(e)&&(a=C,C="true"===J(e),s=!0),t=tt(e.childNodes),C&&!s)for(r=0,i=h.length;i>r&&!R(h[r],n,e,e);r++);if(m.deep&&t.length){for(r=0,i=t.length;i>r;r++)o(t[r]);s&&(C=a)}}function s(t){var r;return et(a(t.parentNode).reverse(),function(t){var i;r||"_start"==t.id||"_end"==t.id||(i=v(t,e,n),i&&i.split!==!1&&(r=t))}),r}function l(e,t,r,i){var o,a,s,l,c,u;if(e){for(u=e.parentNode,o=t.parentNode;o&&o!=u;o=o.parentNode){for(a=I.clone(o,K),c=0;h.length>c;c++)if(R(h[c],n,a,a)){a=0;break}a&&(s&&a.appendChild(s),l||(l=a),s=a)}!i||m.mixed&&V(e)||(t=I.split(e,t)),s&&(r.parentNode.insertBefore(s,r),l.appendChild(r))}return t}function c(e){return l(s(e),e,e,!0)}function d(e){var t=I.get(e?"_start":"_end"),n=t[e?"firstChild":"lastChild"];return L(n)&&(n=n[e?"firstChild":"lastChild"]),I.remove(t,!0),n}function p(e){var t,n;e=T(e,h,G),m.split&&(t=M(e,G),n=M(e),t!=n?(/^(TR|TD)$/.test(t.nodeName)&&t.firstChild&&(t="TD"==t.nodeName?t.firstChild||t:t.firstChild.firstChild||t),t=S(t,"span",{id:"_start","data-mce-type":"bookmark"}),n=S(n,"span",{id:"_end","data-mce-type":"bookmark"}),c(t),c(n),t=d(G),n=d()):t=n=c(t),e.startContainer=t.parentNode,e.startOffset=q(t),e.endContainer=n.parentNode,e.endOffset=q(n)+1),W.walk(e,function(e){et(e,function(e){o(e),1===e.nodeType&&"underline"===i.dom.getStyle(e,"text-decoration")&&e.parentNode&&"underline"===f(e.parentNode)&&R({deep:!1,exact:!0,inline:"span",styles:{textDecoration:"underline"}},null,e)})})}var h=u(e),m=h[0],g,b,C=!0;return r?(r.nodeType?(b=I.createRng(),b.setStartBefore(r),b.setEndAfter(r),p(b)):p(r),t):(F.isCollapsed()&&m.inline&&!I.select("td.mce-item-selected,th.mce-item-selected").length?D("remove",e,n):(g=F.getBookmark(),p(F.getRng(G)),F.moveToBookmark(g),m.inline&&y(e,n,F.getStart())&&P(F.getRng(!0)),i.nodeChanged()),t)}function g(e,t,n){var r=u(e);!y(e,t,n)||"toggle"in r[0]&&!r[0].toggle?h(e,t,n):m(e,t,n)}function v(e,t,n,r){function i(e,t,i){var o,a,s=t[i],l;if(t.onmatch)return t.onmatch(e,t,i);if(s)if(s.length===X){for(o in s)if(s.hasOwnProperty(o)){if(a="attributes"===i?I.getAttrib(e,o):N(e,o),r&&!a&&!t.exact)return;if((!r||t.exact)&&!_(a,E(s[o],n)))return}}else for(l=0;s.length>l;l++)if("attributes"===i?I.getAttrib(e,s[l]):N(e,s[l]))return t;return t}var o=u(t),a,s,l;if(o&&e)for(s=0;o.length>s;s++)if(a=o[s],w(e,a)&&i(e,a,"attributes")&&i(e,a,"styles")){if(l=a.classes)for(s=0;l.length>s;s++)if(!I.hasClass(e,l[s]))return;return a}}function y(e,t,n){function r(n){return n=I.getParent(n,function(n){return!!v(n,e,t,!0)}),v(n,e,t)}var i;return n?r(n):(n=F.getNode(),r(n)?G:(i=F.getStart(),i!=n&&r(i)?G:K))}function b(e,t){var n,r=[],i={};return n=F.getStart(),I.getParent(n,function(n){var o,a;for(o=0;e.length>o;o++)a=e[o],!i[a]&&v(n,a,t)&&(i[a]=!0,r.push(a))},I.getRoot()),r}function C(e){var t=u(e),n,r,i,o,s;if(t)for(n=F.getStart(),r=a(n),o=t.length-1;o>=0;o--){if(s=t[o].selector,!s)return G;for(i=r.length-1;i>=0;i--)if(I.is(r[i],s))return G}return K}function x(e,n,r){var o;return Y||(Y={},o={},i.on("NodeChange",function(e){var n=a(e.element),r={};et(Y,function(e,i){et(n,function(a){return v(a,i,{},e.similar)?(o[i]||(et(e,function(e){e(!0,{node:a,format:i,parents:n})}),o[i]=e),r[i]=e,!1):t})}),et(o,function(t,i){r[i]||(delete o[i],et(t,function(t){t(!1,{node:e.element,format:i,parents:n})}))})})),et(e.split(","),function(e){Y[e]||(Y[e]=[],Y[e].similar=r),Y[e].push(n)}),this}function w(e,n){return _(e,n.inline)?G:_(e,n.block)?G:n.selector?1==e.nodeType&&I.is(e,n.selector):t}function _(e,t){return e=e||"",t=t||"",e=""+(e.nodeName||e),t=""+(t.nodeName||t),e.toLowerCase()==t.toLowerCase()}function N(e,t){var n=I.getStyle(e,t);return("color"==t||"backgroundColor"==t)&&(n=I.toHex(n)),"fontWeight"==t&&700==n&&(n="bold"),""+n}function E(e,t){return"string"!=typeof e?e=e(t):t&&(e=e.replace(/%(\w+)/g,function(e,n){return t[n]||e})),e}function k(e){return e&&3===e.nodeType&&/^([\t \r\n]+|)$/.test(e.nodeValue)}function S(e,t,n){var r=I.create(t,n);return e.parentNode.insertBefore(r,e),r.appendChild(e),r}function T(n,r,s){function l(e){function t(e){return"BR"==e.nodeName&&e.getAttribute("data-mce-bogus")&&!e.nextSibling}var n,i,o,a,s;if(n=i=e?v:b,a=e?"previousSibling":"nextSibling",s=I.getRoot(),3==n.nodeType&&!k(n)&&(e?y>0:n.nodeValue.length>C))return n;for(;;){if(!r[0].block_expand&&V(i))return i;for(o=i[a];o;o=o[a])if(!L(o)&&!k(o)&&!t(o))return i;if(i.parentNode==s){n=i;break}i=i.parentNode}return n}function c(e,t){for(t===X&&(t=3===e.nodeType?e.length:e.childNodes.length);e&&e.hasChildNodes();)e=e.childNodes[t],e&&(t=3===e.nodeType?e.length:e.childNodes.length);return{node:e,offset:t}}function u(e){for(var t=e;t;){if(1===t.nodeType&&J(t))return"false"===J(t)?t:e;t=t.parentNode}return e}function d(n,r,o){function a(e,n){var r,i,a=e.nodeValue;return n===t&&(n=o?a.length:0),o?(r=a.lastIndexOf(" ",n),i=a.lastIndexOf("\u00a0",n),r=r>i?r:i,-1===r||s||r++):(r=a.indexOf(" ",n),i=a.indexOf("\u00a0",n),r=-1!==r&&(-1===i||i>r)?r:i),r}var l,c,u,d;if(3===n.nodeType){if(u=a(n,r),-1!==u)return{container:n,offset:u};d=n}for(l=new e(n,I.getParent(n,V)||i.getBody());c=l[o?"prev":"next"]();)if(3===c.nodeType){if(d=c,u=a(c),-1!==u)return{container:c,offset:u}}else if(V(c))break;return d?(r=o?0:d.length,{container:d,offset:r}):t}function f(e,t){var i,o,s,l;for(3==e.nodeType&&0===e.nodeValue.length&&e[t]&&(e=e[t]),i=a(e),o=0;i.length>o;o++)for(s=0;r.length>s;s++)if(l=r[s],!("collapsed"in l&&l.collapsed!==n.collapsed)&&I.is(i[o],l.selector))return i[o];return e}function p(e,t){var n;if(r[0].wrapper||(n=I.getParent(e,r[0].block)),n||(n=I.getParent(3==e.nodeType?e.parentNode:e,o)),n&&r[0].wrapper&&(n=a(n,"ul,ol").reverse()[0]||n),!n)for(n=e;n[t]&&!V(n[t])&&(n=n[t],!_(n,"br")););return n||e}var h,m,g,v=n.startContainer,y=n.startOffset,b=n.endContainer,C=n.endOffset;if(1==v.nodeType&&v.hasChildNodes()&&(h=v.childNodes.length-1,v=v.childNodes[y>h?h:y],3==v.nodeType&&(y=0)),1==b.nodeType&&b.hasChildNodes()&&(h=b.childNodes.length-1,b=b.childNodes[C>h?h:C-1],3==b.nodeType&&(C=b.nodeValue.length)),v=u(v),b=u(b),(L(v.parentNode)||L(v))&&(v=L(v)?v:v.parentNode,v=v.nextSibling||v,3==v.nodeType&&(y=0)),(L(b.parentNode)||L(b))&&(b=L(b)?b:b.parentNode,b=b.previousSibling||b,3==b.nodeType&&(C=b.length)),r[0].inline&&(n.collapsed&&(g=d(v,y,!0),g&&(v=g.container,y=g.offset),g=d(b,C),g&&(b=g.container,C=g.offset)),m=c(b,C),m.node)){for(;m.node&&0===m.offset&&m.node.previousSibling;)m=c(m.node.previousSibling); +m.node&&m.offset>0&&3===m.node.nodeType&&" "===m.node.nodeValue.charAt(m.offset-1)&&m.offset>1&&(b=m.node,b.splitText(m.offset-1))}return(r[0].inline||r[0].block_expand)&&(r[0].inline&&3==v.nodeType&&0!==y||(v=l(!0)),r[0].inline&&3==b.nodeType&&C!==b.nodeValue.length||(b=l())),r[0].selector&&r[0].expand!==K&&!r[0].inline&&(v=f(v,"previousSibling"),b=f(b,"nextSibling")),(r[0].block||r[0].selector)&&(v=p(v,"previousSibling"),b=p(b,"nextSibling"),r[0].block&&(V(v)||(v=l(!0)),V(b)||(b=l()))),1==v.nodeType&&(y=q(v),v=v.parentNode),1==b.nodeType&&(C=q(b)+1,b=b.parentNode),{startContainer:v,startOffset:y,endContainer:b,endOffset:C}}function R(e,n,r,i){var o,a,s;if(!w(r,e))return K;if("all"!=e.remove)for(et(e.styles,function(e,t){e=E(e,n),"number"==typeof t&&(t=e,i=0),(!i||_(N(i,t),e))&&I.setStyle(r,t,""),s=1}),s&&""===I.getAttrib(r,"style")&&(r.removeAttribute("style"),r.removeAttribute("data-mce-style")),et(e.attributes,function(e,o){var a;if(e=E(e,n),"number"==typeof o&&(o=e,i=0),!i||_(I.getAttrib(i,o),e)){if("class"==o&&(e=I.getAttrib(r,o),e&&(a="",et(e.split(/\s+/),function(e){/mce\w+/.test(e)&&(a+=(a?" ":"")+e)}),a)))return I.setAttrib(r,o,a),t;"class"==o&&r.removeAttribute("className"),j.test(o)&&r.removeAttribute("data-mce-"+o),r.removeAttribute(o)}}),et(e.classes,function(e){e=E(e,n),(!i||I.hasClass(i,e))&&I.removeClass(r,e)}),a=I.getAttribs(r),o=0;a.length>o;o++)if(0!==a[o].nodeName.indexOf("_"))return K;return"none"!=e.remove?(A(r,e),G):t}function A(e,t){function n(e,t,n){return e=B(e,t,n),!e||"BR"==e.nodeName||V(e)}var r=e.parentNode,i;t.block&&(U?r==I.getRoot()&&(t.list_block&&_(e,t.list_block)||et(tt(e.childNodes),function(e){z(U,e.nodeName.toLowerCase())?i?i.appendChild(e):i=S(e,U):i=0})):V(e)&&!V(r)&&(n(e,K)||n(e.firstChild,G,1)||e.insertBefore(I.create("br"),e.firstChild),n(e,G)||n(e.lastChild,K,1)||e.appendChild(I.create("br")))),t.selector&&t.inline&&!_(t.inline,e)||I.remove(e,1)}function B(e,t,n){if(e)for(t=t?"nextSibling":"previousSibling",e=n?e:e[t];e;e=e[t])if(1==e.nodeType||!k(e))return e}function L(e){return e&&1==e.nodeType&&"bookmark"==e.getAttribute("data-mce-type")}function H(e,t){function n(e,t){function n(e){var t={};return et(I.getAttribs(e),function(n){var r=n.nodeName.toLowerCase();0!==r.indexOf("_")&&"style"!==r&&(t[r]=I.getAttrib(e,r))}),t}function r(e,t){var n,r;for(r in e)if(e.hasOwnProperty(r)){if(n=t[r],n===X)return K;if(e[r]!=n)return K;delete t[r]}for(r in t)if(t.hasOwnProperty(r))return K;return G}return e.nodeName!=t.nodeName?K:r(n(e),n(t))?r(I.parseStyle(I.getAttrib(e,"style")),I.parseStyle(I.getAttrib(t,"style")))?G:K:K}function r(e,t){for(i=e;i;i=i[t]){if(3==i.nodeType&&0!==i.nodeValue.length)return e;if(1==i.nodeType&&!L(i))return i}return e}var i,o;if(e&&t&&(e=r(e,"previousSibling"),t=r(t,"nextSibling"),n(e,t))){for(i=e.nextSibling;i&&i!=t;)o=i,i=i.nextSibling,e.appendChild(o);return I.remove(t),et(tt(t.childNodes),function(t){e.appendChild(t)}),e}return t}function M(t,n){var r,o,a;return r=t[n?"startContainer":"endContainer"],o=t[n?"startOffset":"endOffset"],1==r.nodeType&&(a=r.childNodes.length-1,!n&&o&&o--,r=r.childNodes[o>a?a:o]),3===r.nodeType&&n&&o>=r.nodeValue.length&&(r=new e(r,i.getBody()).next()||r),3!==r.nodeType||n||0!==o||(r=new e(r,i.getBody()).prev()||r),r}function D(t,n,r){function o(e){var t=I.create("span",{id:g,"data-mce-bogus":!0,style:y?"color:red":""});return e&&t.appendChild(i.getDoc().createTextNode($)),t}function a(e,t){for(;e;){if(3===e.nodeType&&e.nodeValue!==$||e.childNodes.length>1)return!1;t&&1===e.nodeType&&t.push(e),e=e.firstChild}return!0}function s(e){for(;e;){if(e.id===g)return e;e=e.parentNode}}function l(t){var n;if(t)for(n=new e(t,t),t=n.current();t;t=n.next())if(3===t.nodeType)return t}function c(e,t){var n,r;if(e)r=F.getRng(!0),a(e)?(t!==!1&&(r.setStartBefore(e),r.setEndBefore(e)),I.remove(e)):(n=l(e),n.nodeValue.charAt(0)===$&&(n=n.deleteData(0,1)),I.remove(e,1)),F.setRng(r);else if(e=s(F.getStart()),!e)for(;e=I.get(g);)c(e,!1)}function d(){var e,t,i,a,c,d,f;e=F.getRng(!0),a=e.startOffset,d=e.startContainer,f=d.nodeValue,t=s(F.getStart()),t&&(i=l(t)),f&&a>0&&f.length>a&&/\w/.test(f.charAt(a))&&/\w/.test(f.charAt(a-1))?(c=F.getBookmark(),e.collapse(!0),e=T(e,u(n)),e=W.split(e),h(n,r,e),F.moveToBookmark(c)):(t&&i.nodeValue===$?h(n,r,t):(t=o(!0),i=t.firstChild,e.insertNode(t),a=1,h(n,r,t)),F.setCursorLocation(i,a))}function f(){var e=F.getRng(!0),t,i,a,s,l,c,d=[],f,p;for(t=e.startContainer,i=e.startOffset,l=t,3==t.nodeType&&((i!=t.nodeValue.length||t.nodeValue===$)&&(s=!0),l=l.parentNode);l;){if(v(l,n,r)){c=l;break}l.nextSibling&&(s=!0),d.push(l),l=l.parentNode}if(c)if(s)a=F.getBookmark(),e.collapse(!0),e=T(e,u(n),!0),e=W.split(e),m(n,r,e),F.moveToBookmark(a);else{for(p=o(),l=p,f=d.length-1;f>=0;f--)l.appendChild(I.clone(d[f],!1)),l=l.firstChild;l.appendChild(I.doc.createTextNode($)),l=l.firstChild,I.insertAfter(p,c),F.setCursorLocation(l,1)}}function p(){var e;e=s(F.getStart()),e&&!I.isEmpty(e)&&nt(e,function(e){1!=e.nodeType||e.id===g||I.isEmpty(e)||I.setAttrib(e,"data-mce-bogus",null)},"childNodes")}var g="_mce_caret",y=i.settings.caret_debug;i._hasCaretEvents||(Z=function(){var e=[],t;if(a(s(F.getStart()),e))for(t=e.length;t--;)I.setAttrib(e[t],"data-mce-bogus","1")},Q=function(e){var t=e.keyCode;c(),(8==t||37==t||39==t)&&c(s(F.getStart())),p()},i.on("SetContent",function(e){e.selection&&p()}),i._hasCaretEvents=!0),"apply"==t?d():f()}function P(n){var r=n.startContainer,i=n.startOffset,o,a,s,l,c;if(3==r.nodeType&&i>=r.nodeValue.length&&(i=q(r),r=r.parentNode,o=!0),1==r.nodeType)for(l=r.childNodes,r=l[Math.min(i,l.length-1)],a=new e(r,I.getParent(r,I.isBlock)),(i>l.length-1||o)&&a.next(),s=a.current();s;s=a.next())if(3==s.nodeType&&!k(s))return c=I.create("a",null,$),s.parentNode.insertBefore(c,s),n.setStart(s,0),F.setRng(n),I.remove(c),t}var O={},I=i.dom,F=i.selection,W=new n(I),z=i.schema.isValidChild,V=I.isBlock,U=i.settings.forced_root_block,q=I.nodeIndex,$="\ufeff",j=/^(src|href|style)$/,K=!1,G=!0,Y,X,J=I.getContentEditable,Q,Z,et=r.each,tt=r.grep,nt=r.walk,rt=r.extend;rt(this,{get:u,register:d,apply:h,remove:m,toggle:g,match:y,matchAll:b,matchNode:v,canApply:C,formatChanged:x}),l(),c(),i.on("BeforeGetContent",function(){Z&&Z()}),i.on("mouseup keydown",function(e){Q&&Q(e)})}}),r(H,[g,p],function(e,n){var r=n.trim,i;return i=RegExp(["<span[^>]+data-mce-bogus[^>]+>[\u200b\ufeff]+<\\/span>","<div[^>]+data-mce-bogus[^>]+><\\/div>",'\\s?data-mce-selected="[^"]+"'].join("|"),"gi"),function(n){function o(){return r(n.getContent({format:"raw",no_events:1}).replace(i,""))}function a(){s.typing=!1,s.add()}var s,l=0,c=[],u;return n.on("init",function(){s.add()}),n.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&s.beforeChange()}),n.on("ExecCommand",function(e){var t=e.command;"Undo"!=t&&"Redo"!=t&&"mceRepaint"!=t&&s.add()}),n.on("ObjectResizeStart",function(){s.beforeChange()}),n.on("SaveContent ObjectResized",a),n.dom.bind(n.dom.getRoot(),"dragend",a),n.dom.bind(n.getBody(),"focusout",function(){!n.removed&&s.typing&&a()}),n.on("KeyUp",function(t){var r=t.keyCode;(r>=33&&36>=r||r>=37&&40>=r||45==r||13==r||t.ctrlKey)&&(a(),n.nodeChanged()),(46==r||8==r||e.isMac&&(91==r||93==r))&&n.nodeChanged()}),n.on("KeyDown",function(e){var n=e.keyCode;return n>=33&&36>=n||n>=37&&40>=n||45==n?(s.typing&&a(),t):((16>n||n>20)&&224!=n&&91!=n&&!s.typing&&(s.beforeChange(),s.typing=!0,s.add()),t)}),n.on("MouseDown",function(){s.typing&&a()}),n.addShortcut("ctrl+z","undo_desc","Undo"),n.addShortcut("ctrl+y","redo_desc","Redo"),n.on("AddUndo Undo Redo ClearUndos MouseUp",function(e){e.isDefaultPrevented()||n.nodeChanged()}),s={data:c,typing:!1,beforeChange:function(){u=n.selection.getBookmark(2,!0)},add:function(e){var t,r=n.settings,i;if(e=e||{},e.content=o(),n.fire("BeforeAddUndo",{level:e}).isDefaultPrevented())return null;if(i=c[l],i&&i.content==e.content)return null;if(c[l]&&(c[l].beforeBookmark=u),r.custom_undo_redo_levels&&c.length>r.custom_undo_redo_levels){for(t=0;c.length-1>t;t++)c[t]=c[t+1];c.length--,l=c.length}return e.bookmark=n.selection.getBookmark(2,!0),c.length-1>l&&(c.length=l+1),c.push(e),l=c.length-1,n.fire("AddUndo",{level:e,lastLevel:i}),n.isNotDirty=0,e},undo:function(){var e;return s.typing&&(s.add(),s.typing=!1),l>0&&(e=c[--l],n.setContent(e.content,{format:"raw"}),n.selection.moveToBookmark(e.beforeBookmark),n.fire("undo",{level:e})),e},redo:function(){var e;return c.length-1>l&&(e=c[++l],n.setContent(e.content,{format:"raw"}),n.selection.moveToBookmark(e.bookmark),n.fire("redo",{level:e})),e},clear:function(){c=[],l=0,s.typing=!1,n.fire("ClearUndos")},hasUndo:function(){return l>0||s.typing&&c[0]&&o()!=c[0].content},hasRedo:function(){return c.length-1>l&&!this.typing},transact:function(e){s.beforeChange(),e(),s.add()}}}}),r(M,[f,g],function(e,n){var r=n.ie;return function(n){function i(i){function d(e){return e&&o.isBlock(e)&&!/^(TD|TH|CAPTION|FORM)$/.test(e.nodeName)&&!/^(fixed|absolute)/i.test(e.style.position)&&"true"!==o.getContentEditable(e)}function f(e){var t;o.isBlock(e)&&(t=a.getRng(),e.appendChild(o.create("span",null,"\u00a0")),a.select(e),e.lastChild.outerHTML="",a.setRng(t))}function p(e){for(var t=e,n=[],r;t=t.firstChild;){if(o.isBlock(t))return;1!=t.nodeType||u[t.nodeName.toLowerCase()]||n.push(t)}for(r=n.length;r--;)t=n[r],!t.hasChildNodes()||t.firstChild==t.lastChild&&""===t.firstChild.nodeValue?o.remove(t):"A"==t.nodeName&&" "===(t.innerText||t.textContent)&&o.remove(t)}function h(t){var n,r,i,s=t,l;if(i=o.createRng(),t.hasChildNodes()){for(n=new e(t,t);r=n.current();){if(3==r.nodeType){i.setStart(r,0),i.setEnd(r,0);break}if(u[r.nodeName.toLowerCase()]){i.setStartBefore(r),i.setEndBefore(r);break}s=r,r=n.next()}r||(i.setStart(s,0),i.setEnd(s,0))}else"BR"==t.nodeName?t.nextSibling&&o.isBlock(t.nextSibling)?((!A||9>A)&&(l=o.create("br"),t.parentNode.insertBefore(l,t)),i.setStartBefore(t),i.setEndBefore(t)):(i.setStartAfter(t),i.setEndAfter(t)):(i.setStart(t,0),i.setEnd(t,0));a.setRng(i),o.remove(l),a.scrollIntoView(t)}function m(e){var t=S,n,i,a;if(n=e||"TABLE"==D?o.create(e||O):R.cloneNode(!1),a=n,s.keep_styles!==!1)do if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(t.nodeName)){if("_mce_caret"==t.id)continue;i=t.cloneNode(!1),o.setAttrib(i,"id",""),n.hasChildNodes()?(i.appendChild(n.firstChild),n.appendChild(i)):(a=i,n.appendChild(i))}while(t=t.parentNode);return r||(a.innerHTML='<br data-mce-bogus="1">'),n}function g(t){var n,r,i;if(3==S.nodeType&&(t?T>0:S.nodeValue.length>T))return!1;if(S.parentNode==R&&I&&!t)return!0;if(t&&1==S.nodeType&&S==R.firstChild)return!0;if("TABLE"===S.nodeName||S.previousSibling&&"TABLE"==S.previousSibling.nodeName)return I&&!t||!I&&t;for(n=new e(S,R),3==S.nodeType&&(t&&0===T?n.prev():t||T!=S.nodeValue.length||n.next());r=n.current();){if(1===r.nodeType){if(!r.getAttribute("data-mce-bogus")&&(i=r.nodeName.toLowerCase(),u[i]&&"br"!==i))return!1}else if(3===r.nodeType&&!/^[ \t\r\n]*$/.test(r.nodeValue))return!1;t?n.prev():n.next()}return!0}function v(e,t){var r,i,a,s,l,u,f=O||"P";if(i=o.getParent(e,o.isBlock),u=n.getBody().nodeName.toLowerCase(),!i||!d(i)){if(i=i||k,!i.hasChildNodes())return r=o.create(f),i.appendChild(r),N.setStart(r,0),N.setEnd(r,0),r;for(s=e;s.parentNode!=i;)s=s.parentNode;for(;s&&!o.isBlock(s);)a=s,s=s.previousSibling;if(a&&c.isValidChild(u,f.toLowerCase())){for(r=o.create(f),a.parentNode.insertBefore(r,a),s=a;s&&!o.isBlock(s);)l=s.nextSibling,r.appendChild(s),s=l;N.setStart(e,t),N.setEnd(e,t)}}return e}function y(){function e(e){for(var t=M[e?"firstChild":"lastChild"];t&&1!=t.nodeType;)t=t[e?"nextSibling":"previousSibling"];return t===R}function t(){var e=M.parentNode;return"LI"==e.nodeName?e:M}var n=M.parentNode.nodeName;/^(OL|UL|LI)$/.test(n)&&(O="LI"),L=O?m(O):o.create("BR"),e(!0)&&e()?"LI"==n?o.insertAfter(L,t()):o.replace(L,M):e(!0)?"LI"==n?(o.insertAfter(L,t()),L.appendChild(o.doc.createTextNode(" ")),L.appendChild(M)):M.parentNode.insertBefore(L,M):e()?(o.insertAfter(L,t()),f(L)):(M=t(),E=N.cloneRange(),E.setStartAfter(R),E.setEndAfter(M),H=E.extractContents(),o.insertAfter(H,M),o.insertAfter(L,M)),o.remove(R),h(L),l.add()}function b(){for(var t=new e(S,R),n;n=t.next();)if(u[n.nodeName.toLowerCase()]||n.length>0)return!0}function C(){var e,t,n;S&&3==S.nodeType&&T>=S.nodeValue.length&&(r||b()||(e=o.create("br"),N.insertNode(e),N.setStartAfter(e),N.setEndAfter(e),t=!0)),e=o.create("br"),N.insertNode(e),r&&"PRE"==D&&(!A||8>A)&&e.parentNode.insertBefore(o.doc.createTextNode("\r"),e),n=o.create("span",{}," "),e.parentNode.insertBefore(n,e),a.scrollIntoView(n),o.remove(n),t?(N.setStartBefore(e),N.setEndBefore(e)):(N.setStartAfter(e),N.setEndAfter(e)),a.setRng(N),l.add()}function x(e){do 3===e.nodeType&&(e.nodeValue=e.nodeValue.replace(/^[\r\n]+/,"")),e=e.firstChild;while(e)}function w(e){var t=o.getRoot(),n,r;for(n=e;n!==t&&"false"!==o.getContentEditable(n);)"true"===o.getContentEditable(n)&&(r=n),n=n.parentNode;return n!==t?r:t}function _(e){var t;r||(e.normalize(),t=e.lastChild,(!t||/^(left|right)$/gi.test(o.getStyle(t,"float",!0)))&&o.add(e,"br"))}var N=a.getRng(!0),E,k,S,T,R,A,B,L,H,M,D,P,O,I;if(!N.collapsed)return n.execCommand("Delete"),t;if(!i.isDefaultPrevented()&&(S=N.startContainer,T=N.startOffset,O=(s.force_p_newlines?"p":"")||s.forced_root_block,O=O?O.toUpperCase():"",A=o.doc.documentMode,B=i.shiftKey,1==S.nodeType&&S.hasChildNodes()&&(I=T>S.childNodes.length-1,S=S.childNodes[Math.min(T,S.childNodes.length-1)]||S,T=I&&3==S.nodeType?S.nodeValue.length:0),k=w(S))){if(l.beforeChange(),!o.isBlock(k)&&k!=o.getRoot())return(!O||B)&&C(),t;if((O&&!B||!O&&B)&&(S=v(S,T)),R=o.getParent(S,o.isBlock),M=R?o.getParent(R.parentNode,o.isBlock):null,D=R?R.nodeName.toUpperCase():"",P=M?M.nodeName.toUpperCase():"","LI"!=P||i.ctrlKey||(R=M,D=P),"LI"==D){if(!O&&B)return C(),t;if(o.isEmpty(R))return y(),t}if("PRE"==D&&s.br_in_pre!==!1){if(!B)return C(),t}else if(!O&&!B&&"LI"!=D||O&&B)return C(),t;O&&R===n.getBody()||(O=O||"P",g()?(L=/^(H[1-6]|PRE|FIGURE)$/.test(D)&&"HGROUP"!=P?m(O):m(),s.end_container_on_empty_block&&d(M)&&o.isEmpty(R)?L=o.split(M,R):o.insertAfter(L,R),h(L)):g(!0)?(L=R.parentNode.insertBefore(m(),R),f(L)):(E=N.cloneRange(),E.setEndAfter(R),H=E.extractContents(),x(H),L=H.firstChild,o.insertAfter(H,R),p(L),_(R),h(L)),o.setAttrib(L,"id",""),l.add())}}var o=n.dom,a=n.selection,s=n.settings,l=n.undoManager,c=n.schema,u=c.getNonEmptyElements();n.on("keydown",function(e){13==e.keyCode&&i(e)!==!1&&e.preventDefault()})}}),r(D,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,c,u,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){c=l.startContainer,u=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),u=-1*y.move("character",m),y.collapsed||(y=l.duplicate(),y.collapse(!1),f=-1*y.move("character",m)-u);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C),t.parentNode.insertBefore(p,t),g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(c,u),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",u),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("KeyUp NodeChange",t)}}),r(P,[E,g,p],function(e,n,r){var i=r.each,o=r.extend,a=r.map,s=r.inArray,l=r.explode,c=n.gecko,u=n.ie,d=!0,f=!1;return function(n){function r(e,t,n){var r;return e=e.toLowerCase(),(r=_.exec[e])?(r(e,t,n),d):f}function p(e){var t;return e=e.toLowerCase(),(t=_.state[e])?t(e):-1}function h(e){var t;return e=e.toLowerCase(),(t=_.value[e])?t(e):f}function m(e,t){t=t||"exec",i(e,function(e,n){i(n.toLowerCase().split(","),function(n){_[t][n]=e})})}function g(e,r,i){return r===t&&(r=f),i===t&&(i=null),n.getDoc().execCommand(e,r,i)}function v(e){return E.match(e)}function y(e,r){E.toggle(e,r?{value:r}:t),n.nodeChanged()}function b(e){k=w.getBookmark(e)}function C(){w.moveToBookmark(k)}var x=n.dom,w=n.selection,_={state:{},exec:{},value:{}},N=n.settings,E=n.formatter,k;o(this,{execCommand:r,queryCommandState:p,queryCommandValue:h,addCommands:m}),m({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(e){var t=n.getDoc(),r;try{g(e)}catch(i){r=d}(r||!t.queryCommandSupported(e))&&(c?n.windowManager.confirm(n.getLang("clipboard_msg"),function(e){e&&window.open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}):n.windowManager.alert("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead."))},unlink:function(e){w.isCollapsed()&&w.select(w.getNode()),g(e),w.collapse(f)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t=e.substring(7);"full"==t&&(t="justify"),i("left,center,right,justify".split(","),function(e){t!=e&&E.remove("align"+e)}),y("align"+t),r("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;g(e),t=x.getParent(w.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(b(),x.split(n,t),C()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){y(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){y(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&7>=n&&(i=l(N.font_size_style_values),r=l(N.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),y(e,n)},RemoveFormat:function(e){E.remove(e)},mceBlockQuote:function(){y("blockquote")},FormatBlock:function(e,t,n){return y(n||"p")},mceCleanup:function(){var e=w.getBookmark();n.setContent(n.getContent({cleanup:d}),{cleanup:d}),w.moveToBookmark(e)},mceRemoveNode:function(e,t,r){var i=r||w.getNode();i!=n.getBody()&&(b(),n.dom.remove(i,d),C())},mceSelectNodeDepth:function(e,r,i){var o=0;x.getParent(w.getNode(),function(e){return 1==e.nodeType&&o++==i?(w.select(e),f):t},n.getBody())},mceSelectNode:function(e,t,n){w.select(n)},mceInsertContent:function(t,r,i){function o(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=w.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^ /," "):t("previousSibling")||(e=e.replace(/^ /," ")),r.length>i?e=e.replace(/ (<br>|)$/," "):t("nextSibling")||(e=e.replace(/( | )(<br>|)$/," "))),e}var a,s,l,c,d,f,p,h,m,g,v,y,b,C;if(/^ | $/.test(i)&&(i=o(i)),a=n.parser,s=new e({},n.schema),b='<span id="mce_marker" data-mce-type="bookmark"></span>',f={content:i,format:"html",selection:!0},n.fire("BeforeSetContent",f),i=f.content,-1==i.indexOf("{$caret}")&&(i+="{$caret}"),i=i.replace(/\{\$caret\}/,b),w.isCollapsed()||n.getDoc().execCommand("Delete",!1,null),l=w.getNode(),f={context:l.nodeName.toLowerCase()},d=a.parse(i,f),v=d.lastChild,"mce_marker"==v.attr("id"))for(p=v,v=v.prev;v;v=v.walk(!0))if(3==v.type||!x.isBlock(v.name)){v.parent.insert(p,v,"br"===v.name);break}if(f.invalid){for(w.setContent(b),l=w.getNode(),c=n.getBody(),9==l.nodeType?l=v=c:v=l;v!==c;)l=v,v=v.parentNode;i=l==c?c.innerHTML:x.getOuterHTML(l),i=s.serialize(a.parse(i.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return s.serialize(d)}))),l==c?x.setHTML(c,i):x.setOuterHTML(l,i)}else i=s.serialize(d),v=l.firstChild,y=l.lastChild,!v||v===y&&"BR"===v.nodeName?x.setHTML(l,i):w.setContent(i);p=x.get("mce_marker"),h=x.getRect(p),m=x.getViewPort(n.getWin()),(h.y+h.h>m.y+m.h||h.y<m.y||h.x>m.x+m.w||h.x<m.x)&&(C=u?n.getDoc().documentElement:n.getBody(),C.scrollLeft=h.x,C.scrollTop=h.y-m.h+25),g=x.createRng(),v=p.previousSibling,v&&3==v.nodeType?(g.setStart(v,v.nodeValue.length),u||(y=p.nextSibling,y&&3==y.nodeType&&(v.appendData(y.data),y.parentNode.removeChild(y)))):(g.setStartBefore(p),g.setEndBefore(p)),x.remove(p),w.setRng(g),n.fire("SetContent",f),n.addVisual()},mceInsertRawHTML:function(e,t,r){w.setContent("tiny_mce_marker"),n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return r}))},mceToggleFormat:function(e,t,n){y(n)},mceSetContent:function(e,t,r){n.setContent(r)},"Indent,Outdent":function(e){var t,n,r;t=N.indentation,n=/[a-z%]+$/i.exec(t),t=parseInt(t,10),p("InsertUnorderedList")||p("InsertOrderedList")?g(e):(N.forced_root_block||x.getParent(w.getNode(),x.isBlock)||E.apply("div"),i(w.getSelectedBlocks(),function(i){var o;"LI"!=i.nodeName&&(o="rtl"==x.getStyle(i,"direction",!0)?"paddingRight":"paddingLeft","outdent"==e?(r=Math.max(0,parseInt(i.style[o]||0,10)-t),x.setStyle(i,o,r?r+n:"")):(r=parseInt(i.style[o]||0,10)+t+n,x.setStyle(i,o,r)))}))},mceRepaint:function(){if(c)try{b(d),w.getSel()&&w.getSel().selectAllChildren(n.getBody()),w.collapse(d),C()}catch(e){}},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",!1,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual,n.addVisual()},mceReplaceContent:function(e,t,r){n.execCommand("mceInsertContent",!1,r.replace(/\{\$selection\}/g,w.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=x.getParent(w.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||E.remove("link"),n.href&&E.apply("link",n,r)},selectAll:function(){var e=x.getRoot(),t=x.createRng();w.getRng().setStart?(t.setStart(e,0),t.setEnd(e,e.childNodes.length),w.setRng(t)):g("SelectAll")},mceNewDocument:function(){n.setContent("")}}),m({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=w.isCollapsed()?[x.getParent(w.getNode(),x.isBlock)]:w.getSelectedBlocks(),r=a(n,function(e){return!!E.matchNode(e,t)});return-1!==s(r,d)},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return v(e)},mceBlockQuote:function(){return v("blockquote")},Outdent:function(){var e;if(N.inline_styles){if((e=x.getParent(w.getStart(),x.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d;if((e=x.getParent(w.getEnd(),x.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return d}return p("InsertUnorderedList")||p("InsertOrderedList")||!N.inline_styles&&!!x.getParent(w.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=x.getParent(w.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),m({"FontSize,FontName":function(e){var t=0,n;return(n=x.getParent(w.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),m({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}),r(O,[p],function(e){function n(e,o){var a=this,s,l;return e=i(e),o=a.settings=o||{},/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)?(a.source=e,t):(0===e.indexOf("/")&&0!==e.indexOf("//")&&(e=(o.base_uri?o.base_uri.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new n(location.href).directory,e=(o.base_uri&&o.base_uri.protocol||"http")+"://mce_host"+a.toAbsPath(l,e)),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),r(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s=o.base_uri,s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),t)}var r=e.each,i=e.trim;return n.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var t=this,r;if("./"===e)return e;if(e=new n(e,{base_uri:t}),"mce_host"!=e.host&&t.host!=e.host&&e.host||t.port!=e.port||t.protocol!=e.protocol)return e.getURI();var i=t.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=t.toRelPath(t.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,t){return e=new n(e,{base_uri:this}),e.getURI(this.host==e.host&&this.protocol==e.protocol?t:0)},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;a>o;o++)if(o>=n.length||e[o]!=n[o]){r=o+1;break}if(e.length<n.length)for(o=0,a=n.length;a>o;o++)if(o>=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);a>o;o++)i+="../";for(o=r-1,a=n.length;a>o;o++)i+=o!=r-1?"/"+n[o]:n[o];return i},toAbsPath:function(e,t){var n,i=0,o=[],a,s;for(a=/\/$/.test(t)?"/":"",e=e.split("/"),t=t.split("/"),r(e,function(e){e&&o.push(e)}),e=o,n=t.length-1,o=[];n>=0;n--)0!==t[n].length&&"."!==t[n]&&(".."!==t[n]?i>0?i--:o.push(t[n]):i++);return n=e.length-i,s=0>=n?o.reverse().join("/"):e.slice(0,n).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return(!n.source||e)&&(t="",e||(n.protocol&&(t+=n.protocol+"://"),n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},n}),r(I,[p],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r;if(!o&&(r=this,r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=c[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,c=l.prototype,u,d,f;o=!0,u=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){t=t;for(var n in t)"init"!==n&&(e[n]=t[n])}),c.Mixins&&(e.Mixins=c.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&c.Defaults&&(e.Defaults=r({},c.Defaults,e.Defaults));for(d in e)f=e[d],u[d]="function"==typeof f&&c[d]?s(d,f):f;return t.prototype=u,t.constructor=t,t.extend=i,t},t}),r(F,[I,p],function(e,n){function r(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var i=/^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,o=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,a=/^\s*|\s*$/g,s,l=e.extend({init:function(e){function n(e){return e?(e=e.toLowerCase(),function(t){return"*"===e||t.type===e}):t}function r(e){return e?function(t){return t._name===e}:t}function s(e){return e?(e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.hasClass(e[n]))return!1;return!0}):t}function l(e,n,r){return e?function(t){var i=t[e]?t[e]():"";return n?"="===n?i===r:"*="===n?i.indexOf(r)>=0:"~="===n?(" "+i+" ").indexOf(" "+r+" ")>=0:"!="===n?i!=r:"^="===n?0===i.indexOf(r):"$="===n?i.substr(i.length-r.length)===r:!1:!!r}:t}function c(e){var n;return e?(e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(n=d(e[1],[]),function(e){return!f(e,n)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?0===n%2:"odd"===e?1===n%2:t[e]?t[e]():!1})):t}function u(e,t,o){function u(e){e&&t.push(e)}var d;return d=i.exec(e.replace(a,"")),u(n(d[1])),u(r(d[2])),u(s(d[3])),u(l(d[4],d[5],d[6])),u(c(d[7])),t.psuedo=!!d[7],t.direct=o,t}function d(e,t){var n=[],r,i,a;do if(o.exec(""),i=o.exec(e),i&&(e=i[3],n.push(i[1]),i[2])){r=i[3];break}while(i);for(r&&d(r,t),e=[],a=0;n.length>a;a++)">"!=n[a]&&e.push(u(n[a],[],">"===n[a-1]));return t.push(e),t}var f=this.match;this._selectors=d(e,[])},match:function(e,t){var r,i,o,a,s,l,c,u,d,f,p,h,m;for(t=t||this._selectors,r=0,i=t.length;i>r;r++){for(s=t[r],a=s.length,m=e,h=0,o=a-1;o>=0;o--)for(u=s[o];m;){for(u.psuedo&&(p=m.parent().items(),d=n.inArray(m,p),f=p.length),l=0,c=u.length;c>l;l++)if(!u[l](m,d,f)){l=c+1;break}if(l===c){h++;break}if(o===a-1)break;m=m.parent()}if(h===a)return!0}return!1},find:function(e){function t(e,r,i){var o,a,s,l,c,u=r[i];for(o=0,a=e.length;a>o;o++){for(c=e[o],s=0,l=u.length;l>s;s++)if(!u[s](c,o,a)){s=l+1;break}if(s===l)i==r.length-1?n.push(c):c.items&&t(c.items(),r,i+1);else if(u.direct)return;c.items&&t(c.items(),r,i)}}var n=[],i,o,a=this._selectors;if(e.items){for(i=0,o=a.length;o>i;i++)t(e.items(),a[i],0);o>1&&(n=r(n))}return s||(s=l.Collection),new s(n)}});return l}),r(W,[p,F,I],function(e,n,r){var i,o,a=Array.prototype.push,s=Array.prototype.slice;return o={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?a.apply(n,t):t instanceof i?n.add(t.toArray()):a.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;n>r;r++)delete t[r];return t},filter:function(e){var t=this,r,o,a=[],s,l;for("string"==typeof e?(e=new n(e),l=function(t){return e.match(t)}):l=e,r=0,o=t.length;o>r;r++)s=t[r],l(s)&&a.push(s);return new i(a)},slice:function(){return new i(s.apply(this,arguments))},eq:function(e){return-1===e?this.slice(e):this.slice(e,+e+1)},each:function(t){return e.each(this,t),this},toArray:function(){return e.toArray(this)},indexOf:function(e){for(var t=this,n=t.length;n--&&t[n]!==e;);return n},reverse:function(){return new i(e.toArray(this).reverse())},hasClass:function(e){return this[0]?this[0].hasClass(e):!1},prop:function(e,n){var r=this,i,o;return n!==i?(r.each(function(t){t[e]&&t[e](n)}),r):(o=r[0],o&&o[e]?o[e]():t)},exec:function(t){var n=this,r=e.toArray(arguments).slice(1);return n.each(function(e){e[t]&&e[t].apply(e,r)}),n}},e.each("fire on off show hide addClass removeClass append prepend before after reflow".split(" "),function(t){o[t]=function(){var n=e.toArray(arguments);return this.each(function(e){t in e&&e[t].apply(e,n)}),this}}),e.each("text name width height disabled active selected checked visible parent value data".split(" "),function(e){o[e]=function(t){return this.prop(e,t)}}),i=r.extend(o),n.Collection=i,i}),r(z,[p,v],function(e,t){return{id:function(){return t.DOM.uniqueId()},createFragment:function(e){return t.DOM.createFragment(e)},getWindowSize:function(){return t.DOM.getViewPort()},getSize:function(e){return t.DOM.getSize(e)},getPos:function(e,n){return t.DOM.getPos(e,n)},get:function(e){return document.getElementById(e)},addClass:function(e,n){return t.DOM.addClass(e,n)},removeClass:function(e,n){return t.DOM.removeClass(e,n)},hasClass:function(e,n){return t.DOM.hasClass(e,n)},toggleClass:function(e,n,r){return t.DOM.toggleClass(e,n,r)},css:function(e,n,r){return t.DOM.setStyle(e,n,r)},on:function(e,n,r,i){return t.DOM.bind(e,n,r,i)},off:function(e,n,r){return t.DOM.unbind(e,n,r)},fire:function(e,n,r){return t.DOM.fire(e,n,r)}}}),r(V,[I,p,W,z],function(e,n,r,i){var o=n.makeMap("focusin focusout scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave wheel keydown keypress keyup contextmenu"," "),a={},s="onmousewheel"in document,l=!1,c=e.extend({Statics:{controlIdLookup:{}},classPrefix:"mce-",getContainerElm:function(){return document.body},getParentCtrl:function(e){for(var t;e&&!(t=c.controlIdLookup[e.id]);)e=e.parentNode;return t},init:function(e){var r=this,o,a;if(r.settings=e=n.extend({},r.Defaults,e),r._id=i.id(),r._text=r._name="",r._width=r._height=0,r._aria={role:e.role},o=e.classes)for(o=o.split(" "),o.map={},a=o.length;a--;)o.map[o[a]]=!0; +r._classes=o||[],r.visible(!0),n.each("title text width height name classes visible disabled active value".split(" "),function(t){var n=e[t],i;n!==i?r[t](n):r["_"+t]===i&&(r["_"+t]=!1)}),r.on("click",function(){return r.disabled()?!1:t}),e.classes&&n.each(e.classes.split(" "),function(e){r.addClass(e)}),r.settings=e,r._borderBox=r.parseBox(e.border),r._paddingBox=r.parseBox(e.padding),r._marginBox=r.parseBox(e.margin),e.hidden&&r.hide()},Properties:"parent,title,text,width,height,disabled,active,name,value",Methods:"renderHtml,refresh",parseBox:function(e){var t,n=10;if(e)return"number"==typeof e?(e=e||0,{top:e,left:e,bottom:e,right:e}):(e=e.split(" "),t=e.length,1===t?e[1]=e[2]=e[3]=e[0]:2===t?(e[2]=e[0],e[3]=e[1]):3===t&&(e[3]=e[1]),{top:parseInt(e[0],n)||0,right:parseInt(e[1],n)||0,bottom:parseInt(e[2],n)||0,left:parseInt(e[3],n)||0})},borderBox:function(){return this._borderBox},paddingBox:function(){return this._paddingBox},marginBox:function(){return this._marginBox},measureBox:function(e,t){function n(t){var n=document.defaultView;return n?(t=t.replace(/[A-Z]/g,function(e){return"-"+e}),n.getComputedStyle(e,null).getPropertyValue(t)):e.currentStyle[t]}function r(e){var t=parseInt(n(e),10);return isNaN(t)?0:t}return{top:r(t+"TopWidth"),right:r(t+"RightWidth"),bottom:r(t+"BottomWidth"),left:r(t+"LeftWidth")}},initLayoutRect:function(){var e=this,n=e.settings,r,i,o=e.getEl(),a,s,l,c,u,d,f;r=e._borderBox=e._borderBox||e.measureBox(o,"border"),e._paddingBox=e._paddingBox||e.measureBox(o,"padding"),e._marginBox=e._marginBox||e.measureBox(o,"margin"),d=n.minWidth,f=n.minHeight,l=d||o.offsetWidth,c=f||o.offsetHeight,a=n.width,s=n.height,u=n.autoResize,u=u!==t?u:!a&&!s,a=a||l,s=s||c;var p=r.left+r.right,h=r.top+r.bottom,m=n.maxWidth||65535,g=n.maxHeight||65535;return e._layoutRect=i={x:n.x||0,y:n.y||0,w:a,h:s,deltaW:p,deltaH:h,contentW:a-p,contentH:s-h,innerW:a-p,innerH:s-h,startMinWidth:d||0,startMinHeight:f||0,minW:Math.min(l,m),minH:Math.min(c,g),maxW:m,maxH:g,autoResize:u,scrollW:0},e._lastLayoutRect={},i},layoutRect:function(e){var t=this,n=t._layoutRect,r,i,o,a,s,l;return n||(n=t.initLayoutRect()),e?(o=n.deltaW,a=n.deltaH,e.x!==s&&(n.x=e.x),e.y!==s&&(n.y=e.y),e.minW!==s&&(n.minW=e.minW),e.minH!==s&&(n.minH=e.minH),i=e.w,i!==s&&(i=n.minW>i?n.minW:i,i=i>n.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=n.minH>i?n.minH:i,i=i>n.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=n.minW-o>i?n.minW-o:i,i=i>n.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=n.minH-a>i?n.minH-a:i,i=i>n.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,(r.x!==n.x||r.y!==n.y||r.w!==n.w||r.h!==n.h)&&(l=c.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o=0,a=0,s;t=e.getEl().style,r=e._layoutRect,s=e._lastRepaintRect||{},i=e._borderBox,o=i.left+i.right,a=i.top+i.bottom,r.x!==s.x&&(t.left=r.x+"px",s.x=r.x),r.y!==s.y&&(t.top=r.y+"px",s.y=r.y),r.w!==s.w&&(t.width=r.w-o+"px",s.w=r.w),r.h!==s.h&&(t.height=r.h-a+"px",s.h=r.h),e._hasBody&&r.innerW!==s.innerW&&(n=e.getEl("body").style,n.width=r.innerW+"px",s.innerW=r.innerW),e._hasBody&&r.innerH!==s.innerH&&(n=n||e.getEl("body").style,n.height=r.innerH+"px",s.innerH=r.innerH),e._lastRepaintRect=s,e.fire("repaint",{},!1)},on:function(e,n){function r(e){var n,r;return function(o){return n||i.parents().each(function(i){var o=i.settings.callbacks;return o&&(n=o[e])?(r=i,!1):t}),n.call(r,o)}}var i=this,a,s,l,c;if(n)for("string"==typeof n&&(n=r(n)),l=e.toLowerCase().split(" "),c=l.length;c--;)e=l[c],a=i._bindings,a||(a=i._bindings={}),s=a[e],s||(s=a[e]=[]),s.push(n),o[e]&&(i._nativeEvents?i._nativeEvents[e]=!0:i._nativeEvents={name:!0},i._rendered&&i.bindPendingEvents());return i},off:function(e,t){var n=this,r,i=n._bindings,o,a,s,l;if(i)if(e)for(s=e.toLowerCase().split(" "),r=s.length;r--;){if(e=s[r],o=i[e],!e){for(a in i)i[a].length=0;return n}if(o)if(t)for(l=o.length;l--;)o[l]===t&&o.splice(l,1);else o.length=0}else n._bindings=[];return n},fire:function(e,t,n){function r(){return!1}function i(){return!0}var o=this,a,s,l,c;if(e=e.toLowerCase(),t=t||{},t.type||(t.type=e),t.control||(t.control=o),t.preventDefault||(t.preventDefault=function(){t.isDefaultPrevented=i},t.stopPropagation=function(){t.isPropagationStopped=i},t.stopImmediatePropagation=function(){t.isImmediatePropagationStopped=i},t.isDefaultPrevented=r,t.isPropagationStopped=r,t.isImmediatePropagationStopped=r),o._bindings&&(l=o._bindings[e]))for(a=0,s=l.length;s>a&&(t.isImmediatePropagationStopped()||l[a].call(o,t)!==!1);a++);if(n!==!1)for(c=o.parent();c&&!t.isPropagationStopped();)c.fire(e,t,!1),c=c.parent();return t},parents:function(e){var t=this,n=new r;for(t=t.parent();t;t=t.parent())n.add(t);return e&&(n=n.filter(e)),n},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},findCommonAncestor:function(e,t){for(var n;e;){for(n=t;n&&e!=n;)n=n.parent();if(e==n)break;e=e.parent()}return e},hasClass:function(e,t){var n=this._classes[t||"control"];return e=this.classPrefix+e,n&&!!n.map[e]},addClass:function(e,t){var n=this,r,i;return e=this.classPrefix+e,r=n._classes[t||"control"],r||(r=[],r.map={},n._classes[t||"control"]=r),r.map[e]||(r.map[e]=e,r.push(e),n._rendered&&(i=n.getEl(t),i&&(i.className=r.join(" ")))),n},removeClass:function(e,t){var n=this,r,i,o;if(e=this.classPrefix+e,r=n._classes[t||"control"],r&&r.map[e])for(delete r.map[e],i=r.length;i--;)r[i]===e&&r.splice(i,1);return n._rendered&&(o=n.getEl(t),o&&(o.className=r.join(" "))),n},toggleClass:function(e,t,n){var r=this;return t?r.addClass(e,n):r.removeClass(e,n),r},classes:function(e){var t=this._classes[e||"control"];return t?t.join(" "):""},getEl:function(e,t){var n,r=e?this._id+"-"+e:this._id;return n=a[r]=(t===!0?null:a[r])||i.get(r)},visible:function(e){var n=this,r;return e!==t?(n._visible!==e&&(n._rendered&&(n.getEl().style.display=e?"":"none"),n._visible=e,r=n.parent(),r&&(r._lastRect=null),n.fire(e?"show":"hide")),n):n._visible},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}},blur:function(){this.getEl().blur()},aria:function(e,n){var r=this,i=r.getEl();return n===t?r._aria[e]:(r._aria[e]=n,r._rendered&&("label"==e&&i.setAttribute("aria-labeledby",r._id),i.setAttribute("role"==e?e:"aria-"+e,n)),r)},encode:function(e,t){return t!==!1&&c.translate&&(e=c.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r;if(e.items)for(var o=e.items().toArray(),a=o.length;a--;)o[a].remove();return n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&i.off(t),delete c.controlIdLookup[e._id],t.parentNode&&t.parentNode.removeChild(t),e},renderBefore:function(e){var t=this;return e.parentNode.insertBefore(i.createFragment(t.renderHtml()),e),t.postRender(),t},renderTo:function(e){var t=this;return e=e||t.getContainerElm(),e.appendChild(i.createFragment(t.renderHtml())),t.postRender(),t},postRender:function(){var e=this,t=e.settings,n,r,o,a,s;for(a in t)0===a.indexOf("on")&&e.on(a.substr(2),t[a]);if(e._eventsRoot){for(o=e.parent();!s&&o;o=o.parent())s=o._eventsRoot;if(s)for(a in s._nativeEvents)e._nativeEvents[a]=!0}e.bindPendingEvents(),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e._visible||i.css(e.getEl(),"display","none"),e.settings.border&&(r=e.borderBox(),i.css(e.getEl(),{"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left})),c.controlIdLookup[e._id]=e;for(var l in e._aria)e.aria(l,e._aria[l]);e.fire("postrender",{},!1)},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,c,u=t(n,r);i=u.x,o=u.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,c=r.clientHeight,"end"==e?(i-=l-a,o-=c-s):"center"==e&&(i-=l/2-a/2,o-=c/2-s/2),r.scrollLeft=i,r.scrollTop=o},bindPendingEvents:function(){function e(e){var t=o.getParentCtrl(e.target);t&&t.fire(e.type,e)}function t(){var e=d._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),d._lastHoverCtrl=null)}function n(e){var t=o.getParentCtrl(e.target),n=d._lastHoverCtrl,r=0,i,a,s;if(t!==n){if(d._lastHoverCtrl=t,a=t.parents().toArray().reverse(),a.push(t),n){for(s=n.parents().toArray().reverse(),s.push(n),r=0;s.length>r&&a[r]===s[r];r++);for(i=s.length-1;i>=r;i--)n=s[i],n.fire("mouseleave",{target:n.getEl()})}for(i=r;a.length>i;i++)t=a[i],t.fire("mouseenter",{target:t.getEl()})}}function r(e){e.preventDefault(),"mousewheel"==e.type?(e.deltaY=-1/40*e.wheelDelta,e.wheelDeltaX&&(e.deltaX=-1/40*e.wheelDeltaX)):(e.deltaX=0,e.deltaY=e.detail),e=o.fire("wheel",e)}var o=this,a,c,u,d,f,p;if(o._rendered=!0,f=o._nativeEvents){for(u=o.parents().toArray(),u.unshift(o),a=0,c=u.length;!d&&c>a;a++)d=u[a]._eventsRoot;for(d||(d=u[u.length-1]||o),o._eventsRoot=d,c=a,a=0;c>a;a++)u[a]._eventsRoot=d;for(p in f){if(!f)return!1;"wheel"!==p||l?("mouseenter"===p||"mouseleave"===p?d._hasMouseEnter||(i.on(d.getEl(),"mouseleave",t),i.on(d.getEl(),"mouseover",n),d._hasMouseEnter=1):d[p]||(i.on(d.getEl(),p,e),d[p]=!0),f[p]=!1):s?i.on(o.getEl(),"mousewheel",r):i.on(o.getEl(),"DOMMouseScroll",r)}}},reflow:function(){return this.repaint(),this}});return c}),r(U,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(q,[V,W,F,U,p,z],function(e,n,r,i,o,a){var s={};return e.extend({layout:"",innerClass:"container-inner",init:function(e){var t=this;t._super(e),e=t.settings,t._items=new n,t.addClass("container"),t.addClass("container-body","body"),e.containerCls&&t.addClass(e.containerCls),t._layout=i.create((e.layout||t.layout)+"layout"),t.settings.items&&t.add(t.settings.items),t._hasBody=!0},items:function(){return this._items},find:function(e){return e=s[e]=s[e]||new r(e),e.find(this)},add:function(e){var t=this;return t.items().add(t.create(e)).parent(t),t},focus:function(){var e=this;return e.keyNav?e.keyNav.focusFirst():e._super(),e},replace:function(e,t){for(var n,r=this.items(),i=r.length;i--;)if(r[i]===e){r[i]=t;break}i>=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,r,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),r=o.extend({},n.settings.defaults,t),t.type=r.type=r.type||t.type||n.settings.defaultType||(r.defaults?r.defaults.type:null),t=i.create(r)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r,i;t.parent(e),t._rendered||(r=e.getEl("body"),i=a.createFragment(t.renderHtml()),r.hasChildNodes()&&r.childNodes.length-1>=n?r.insertBefore(i,r.childNodes[n]):r.appendChild(i),t.postRender())}),e._layout.applyClasses(e),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),n||(t+=1),t>=0&&i.length>t&&(o=i.slice(0,t).toArray(),a=i.slice(t).toArray(),i.set(o.concat(e,a))),r.renderNew()},preRender:function(){},renderHtml:function(){var e=this,t=e._layout;return e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" role="'+this.settings.role+'">'+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</div>"},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e._rendered=!0,e.settings.style&&a.css(e.getEl(),e.settings.style),e.settings.border&&(t=e.borderBox(),a.css(e.getEl(),{"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,n=e._layoutRect,r=e._lastRect;return r&&r.w==n.w&&r.h==n.h?t:(e._layout.recalc(e),n=e.layoutRect(),e._lastRect={x:n.x,y:n.y,w:n.w,h:n.h},!0)},reflow:function(){var t,n;if(this.visible()){for(e.repaintControls=[],e.repaintControls.map={},n=this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r($,[z],function(e){function n(){var e=document,t,n,r,i,o,a,s,l,c=Math.max;return t=e.documentElement,n=e.body,r=c(t.scrollWidth,n.scrollWidth),i=c(t.clientWidth,n.clientWidth),o=c(t.offsetWidth,n.offsetWidth),a=c(t.scrollHeight,n.scrollHeight),s=c(t.clientHeight,n.clientHeight),l=c(t.offsetHeight,n.offsetHeight),{width:o>r?i:r,height:l>a?s:a}}return function(r,i){function o(){return s.getElementById(i.handle||r)}var a,s=document,l,c,u,d,f,p;i=i||{},c=function(t){var r=n(),c,h;t.preventDefault(),l=t.button,c=o(),f=t.screenX,p=t.screenY,h=window.getComputedStyle?window.getComputedStyle(c,null).getPropertyValue("cursor"):c.runtimeStyle.cursor,a=s.createElement("div"),e.css(a,{position:"absolute",top:0,left:0,width:r.width,height:r.height,zIndex:65535,opacity:1e-4,background:"red",cursor:h}),s.body.appendChild(a),e.on(s,"mousemove",d),e.on(s,"mouseup",u),i.start(t)},d=function(e){return e.button!==l?u(e):(e.deltaX=e.screenX-f,e.deltaY=e.screenY-p,e.preventDefault(),i.drag(e),t)},u=function(t){e.off(s,"mousemove",d),e.off(s,"mouseup",u),a.parentNode.removeChild(a),i.stop&&i.stop(t)},this.destroy=function(){e.off(o())},e.on(o(),"mousedown",c)}}),r(j,[z,$],function(e,n){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function r(){function n(n,s,l,c,u,d){var f,p,h,m,g,v,y,b,C;if(p=o.getEl("scroll"+n)){if(b=s.toLowerCase(),C=l.toLowerCase(),o.getEl("absend")&&e.css(o.getEl("absend"),b,o.layoutRect()[c]-1),!u)return e.css(p,"display","none"),t;e.css(p,"display","block"),f=o.getEl("body"),h=o.getEl("scroll"+n+"t"),m=f["client"+l]-2*a,m-=r&&i?p["client"+d]:0,g=f["scroll"+l],v=m/g,y={},y[b]=f["offset"+s]+a,y[C]=m,e.css(p,y),y={},y[b]=f["scroll"+s]*v,y[C]=m*v,e.css(h,y)}}var r,i,s;s=o.getEl("body"),r=s.scrollWidth>s.clientWidth,i=s.scrollHeight>s.clientHeight,n("h","Left","Width","contentW",r,"Height"),n("v","Top","Height","contentH",i,"Width")}function i(){function t(t,r,i,s,l){var c,u=o._id+"-scroll"+t,d=o.classPrefix;o.getEl().appendChild(e.createFragment('<div id="'+u+'" class="'+d+"scrollbar "+d+"scrollbar-"+t+'">'+'<div id="'+u+'t" class="'+d+'scrollbar-thumb"></div>'+"</div>")),o.draghelper=new n(u+"t",{start:function(){c=o.getEl("body")["scroll"+r],e.addClass(e.get(u),d+"active")},drag:function(e){var n,u,d,f,p=o.layoutRect();u=p.contentW>p.innerW,d=p.contentH>p.innerH,f=o.getEl("body")["client"+i]-2*a,f-=u&&d?o.getEl("scroll"+t)["client"+l]:0,n=f/o.getEl("body")["scroll"+i],o.getEl("body")["scroll"+r]=c+e["delta"+s]/n},stop:function(){e.removeClass(e.get(u),d+"active")}})}o.addClass("scroll"),t("v","Top","Height","Y","Width"),t("h","Left","Width","X","Height")}var o=this,a=2;o.settings.autoScroll&&(o._hasScroll||(o._hasScroll=!0,i(),o.on("wheel",function(e){var t=o.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,r()}),e.on(o.getEl("body"),"scroll",r)),r())}}}),r(K,[q,j],function(e,n){var r=e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[n],fromJSON:function(e){var t=this;for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,n={};return e.find("*").each(function(e){var r=e.name(),i=e.value();r&&i!==t&&(n[r]=i)}),n},renderHtml:function(){var e=this,n=e._layout,r=e.settings.html;return e.preRender(),n.preRender(e),r===t?r='<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+n.renderHtml(e)+"</div>":("function"==typeof r&&(r=r.call(e)),e._hasBody=!1),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e._preBodyHtml||"")+r+"</div>"}});return r}),r(G,[z],function(e){return{moveRel:function(t,n){var r=this,i,o,a,s,l,c,u,d;return o=e.getPos(t),a=o.x,s=o.y,i=r.getEl(),l=i.offsetWidth,c=i.offsetHeight,u=t.offsetWidth,d=t.offsetHeight,n=(n||"").split(""),"b"===n[0]&&(s+=d),"r"===n[1]&&(a+=u),"c"===n[0]&&(s+=Math.round(d/2)),"c"===n[1]&&(a+=Math.round(u/2)),"b"===n[3]&&(s-=c),"r"===n[4]&&(a-=l),"c"===n[3]&&(s-=Math.round(c/2)),"c"===n[4]&&(a-=Math.round(l/2)),r.moveTo(a,s),r},moveBy:function(e,t){var n=this,r=n.layoutRect();return n.moveTo(r.x+e,r.y+t),n},moveTo:function(e,t){var n=this;return n._rendered?n.layoutRect({x:e,y:t}).repaint():(n.settings.x=e,n.settings.y=t),n.fire("move",{x:e,y:t}),n}}}),r(Y,[z],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(1>=t||1>=n){var r=e.getWindowSize();t=1>=t?t*r.w:t,n=1>=n?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(X,[K,G,Y,z],function(e,t,n,r){function i(e){var t;for(t=s.length;t--;)s[t]===e&&s.splice(t,1)}var o,a,s=[],l=[],c,u=e.extend({Mixins:[t,n],init:function(e){function t(){var e,t=u.zIndex||65535,n;if(l.length)for(e=0;l.length>e;e++)l[e].modal&&(t++,n=l[e]),l[e].getEl().style.zIndex=t,l[e].zIndex=t,t++;var i=document.getElementById(d.classPrefix+"modal-block");n?r.css(i,"z-index",n.zIndex-1):i&&(i.parentNode.removeChild(i),c=!1),u.currentZIndex=t}function n(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function i(e){var t=document.body.scrollTop||window.pageYOffset||document.documentElement.scrollTop;e.settings.autofix&&(t>(e._absY||e.layoutRect().y)?(e._absY=e._absY||e.layoutRect().y,e.getEl().style.position="fixed",e.layoutRect({y:0}).repaint()):(e.getEl().style.position="absolute",e.layoutRect({y:e._absY}).repaint()))}var d=this;d._super(e),d._eventsRoot=d,d.addClass("floatpanel"),e.autohide&&(o||(o=function(e){var t,r=d.getParentCtrl(e.target);for(t=s.length;t--;){var i=s[t];if(i.settings.autohide){if(r&&(n(r,i)||i.parent()===r))continue;i.hide()}}},r.on(document,"click",o)),s.push(d)),e.autofix&&(a||(a=function(){var e;for(e=s.length;e--;)i(s[e])},r.on(window,"scroll",a)),d.on("move",function(){i(this)})),d.on("postrender show",function(e){if(e.control==d){var n,i=d.classPrefix;d.modal&&!c&&(n=r.createFragment('<div id="'+i+'modal-block" class="'+i+"reset "+i+'fade"></div>'),n=n.firstChild,d.getContainerElm().appendChild(n),setTimeout(function(){r.addClass(n,i+"in"),r.addClass(d.getEl(),i+"in")},0),c=!0),l.push(d),t()}}),d.on("close hide",function(e){if(e.control==d){for(var n=l.length;n--;)l[n]===d&&l.splice(n,1);t()}}),e.popover&&(d._preBodyHtml='<div class="'+d.classPrefix+'arrow"></div>',d.addClass("popover").addClass("bottom").addClass("start"))},show:function(){var e=this,t,n=e._super();for(t=s.length;t--&&s[t]!==e;);return-1===t&&s.push(e),n},hide:function(){return i(this),this._super()},hideAll:function(){u.hideAll()},close:function(){var e=this;return e.fire("close"),e.remove()},remove:function(){i(this),this._super()}});return u.hideAll=function(){for(var e=s.length;e--;){var t=s[e];t.settings.autohide&&(t.fire("cancel",{},!1),t.hide(),s.splice(e,1))}},u}),r(J,[z],function(e){return function(n){function r(){if(!m)if(m=[],f.find)f.find("*").each(function(e){e.canFocus&&m.push(e.getEl())});else for(var e=f.getEl().getElementsByTagName("*"),t=0;e.length>t;t++)e[t].id&&e[t]&&m.push(e[t])}function i(){return document.getElementById(g)}function o(e){return e=e||i(),e&&e.getAttribute("role")}function a(e){for(var t,n=e||i();n=n.parentNode;)if(t=o(n))return t}function s(e){var n=document.getElementById(g);return n?n.getAttribute("aria-"+e):t}function l(){var t=i();if(!t||"TEXTAREA"!=t.nodeName&&"text"!=t.type)return n.onAction?n.onAction(g):e.fire(i(),"click",{keyboard:!0}),!0}function c(){var e;n.onCancel?((e=i())&&e.blur(),n.onCancel()):n.root.fire("cancel")}function u(e){var t=-1,i,o;for(r(),o=m.length;o--;)if(m[o].id===g){t=o;break}t+=e,0>t?t=m.length-1:t>=m.length&&(t=0),i=m[t],i.focus(),g=i.id,n.actOnFocus&&l()}function d(){var e,i;for(i=o(n.root.getEl()),r(),e=m.length;e--;)if("toolbar"==i&&m[e].id===g)return m[e].focus(),t;m[0].focus()}var f=n.root,p=n.enableUpDown!==!1,h=n.enableLeftRight!==!1,m=n.items,g;return f.on("keydown",function(e){var t=37,r=39,i=38,d=40,f=27,m=14,g=13,v=32,y=9,b;switch(e.keyCode){case t:h&&(n.leftAction?n.leftAction():u(-1),b=!0);break;case r:h&&("menuitem"==o()&&"menu"==a()?s("haspopup")&&l():u(1),b=!0);break;case i:p&&(u(-1),b=!0);break;case d:p&&("menuitem"==o()&&"menubar"==a()?l():"button"==o()&&s("haspopup")?l():u(1),b=!0);break;case y:b=!0,e.shiftKey?u(-1):u(1);break;case f:b=!0,c();break;case m:case g:case v:b=l()}b&&(e.stopPropagation(),e.preventDefault())}),f.on("focusin",function(e){r(),g=e.target.id}),{moveFocus:u,focusFirst:d,cancel:c}}}),r(Q,[X,K,z,J,$],function(e,n,r,i,o){var a=e.extend({modal:!0,Defaults:{border:1,layout:"flex",containerCls:"panel",role:"dialog",callbacks:{submit:function(){this.fire("submit",{data:this.toJSON()})},close:function(){this.close()}}},init:function(e){var t=this;t._super(e),t.addClass("window"),e.buttons&&(t.statusbar=new n({layout:"flex",border:"1 0 0 0",spacing:3,padding:10,align:"center",pack:"end",defaults:{type:"button"},items:e.buttons}),t.statusbar.addClass("foot"),t.statusbar.parent(t)),t.on("click",function(e){-1!=e.target.className.indexOf(t.classPrefix+"close")&&t.close()}),t.aria("label",e.title),t._fullscreen=!1},recalc:function(){var e=this,t=e.statusbar,n,i,o;e._fullscreen&&(e.layoutRect(r.getWindowSize()),e.layoutRect().contentH=e.layoutRect().innerH),e._super(),n=e.layoutRect(),e.settings.title&&!e._fullscreen&&(i=n.headerW,i>n.w&&(e.layoutRect({w:i}),o=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+n.deltaW,i>n.w&&(e.layoutRect({w:i}),o=!0)),o&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),n=0,i;e.settings.title&&!e._fullscreen&&(i=e.getEl("head"),t.headerW=i.offsetWidth,t.headerH=i.offsetHeight,n+=t.headerH),e.statusbar&&(n+=e.statusbar.layoutRect().h),t.deltaH+=n,t.minH+=n,t.h+=n;var o=r.getWindowSize();return t.x=Math.max(0,o.w/2-t.w/2),t.y=Math.max(0,o.h/2-t.h/2),t},renderHtml:function(){var e=this,n=e._layout,r=e._id,i=e.classPrefix,o=e.settings,a="",s="",l=o.html;return e.preRender(),n.preRender(e),o.title&&(a='<div id="'+r+'-head" class="'+i+'window-head">'+'<div class="'+i+'title">'+e.encode(o.title)+"</div>"+'<button type="button" class="'+i+'close" aria-hidden="true">×</button>'+'<div id="'+r+'-dragh" class="'+i+'dragh"></div>'+"</div>"),o.url&&(l='<iframe src="'+o.url+'" tabindex="-1"></iframe>'),l===t&&(l=n.renderHtml(e)),e.statusbar&&(s=e.statusbar.renderHtml()),'<div id="'+r+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+a+'<div id="'+r+'-body" class="'+e.classes("body")+'">'+l+"</div>"+s+"</div>"},fullscreen:function(e){var t=this,n=document.documentElement,i,o=t.classPrefix,a;if(e!=t._fullscreen)if(r.on(window,"resize",function(){var e;if(t._fullscreen)if(i)t._timer||(t._timer=setTimeout(function(){var e=r.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var n=r.getWindowSize();t.moveTo(0,0).resizeTo(n.w,n.h),(new Date).getTime()-e>50&&(i=!0)}}),a=t.layoutRect(),t._fullscreen=e,e){t._initial={x:a.x,y:a.y,w:a.w,h:a.h},t._borderBox=t.parseBox("0"),t.getEl("head").style.display="none",a.deltaH-=a.headerH+2,r.addClass(n,o+"fullscreen"),r.addClass(document.body,o+"fullscreen"),t.addClass("fullscreen");var s=r.getWindowSize();t.moveTo(0,0).resizeTo(s.w,s.h)}else t._borderBox=t.parseBox(t.settings.border),t.getEl("head").style.display="",a.deltaH+=a.headerH,r.removeClass(n,o+"fullscreen"),r.removeClass(document.body,o+"fullscreen"),t.removeClass("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t=[],n,r,a;setTimeout(function(){e.addClass("in")},0),e.keyboardNavigation=new i({root:e,enableLeftRight:!1,enableUpDown:!1,items:t,onCancel:function(){e.close()}}),e.find("*").each(function(e){e.canFocus&&(r=r||e.settings.autofocus,n=n||e,"filepicker"==e.type?(t.push(e.getEl("inp")),e.getEl("open")&&t.push(e.getEl("open").firstChild)):t.push(e.getEl()))}),e.statusbar&&e.statusbar.find("*").each(function(e){e.canFocus&&(r=r||e.settings.autofocus,n=n||e,t.push(e.getEl()))}),e._super(),e.statusbar&&e.statusbar.postRender(),!r&&n&&n.focus(),this.dragHelger=new o(e._id+"-dragh",{start:function(){a={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(t){e.moveTo(a.x+t.deltaX,a.y+t.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()})},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this;e._super(),e.dragHelger.destroy(),e.statusbar&&this.statusbar.remove()}});return a}),r(Z,[Q],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){var r,i=n.callback||function(){};switch(n.buttons){case t.OK_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}},{type:"button",text:"Cancel",onClick:function(e){e.control.parents()[1].close(),i(!1)}}];break;case t.YES_NO:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close(),i(!0)}}];break;case t.YES_NO_CANCEL:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}];break;default:r=[{type:"button",text:"Ok",subtype:"primary",onClick:function(e){e.control.parents()[1].close()}}]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:r,title:n.title,items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onClose:n.onClose}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(et,[Q,Z],function(e,t){return function(n){var r=this,i=[];r.windows=i,r.open=function(t){var r;return t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",minWidth:50,onclick:function(){r.find("form")[0].submit(),r.close()}},{text:"Cancel",onclick:function(){r.close()}}]),r=new e(t),i.push(r),r.on("close",function(){for(var e=i.length;e--;)i[e]===r&&i.splice(e,1);n.focus()}),t.data&&r.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),n.nodeChanged(),r.renderTo(document.body).reflow()},r.alert=function(e,n,r){t.alert(e,function(){n.call(r||this)})},r.confirm=function(e,n,r){t.confirm(e,function(e){n.call(r||this,e)})},r.close=function(){i.length&&i[window.length-1].win.close()}}}),r(tt,[T,B,C,m,g,p],function(e,n,r,i,o,a){return function(s){function l(e,t){try{s.getDoc().execCommand(e,!1,t)}catch(n){}}function c(){var e=s.getDoc().documentMode;return e?e:6}function u(e){return e.isDefaultPrevented()}function d(){function t(e){function t(){if(3==l.nodeType){if(e&&c==l.length)return!0;if(!e&&0===c)return!0}}var n,r,i,o,l,c,u;n=F.getRng();var d=[n.startContainer,n.startOffset,n.endContainer,n.endOffset];if(n.collapsed||(e=!0),l=n[(e?"start":"end")+"Container"],c=n[(e?"start":"end")+"Offset"],3==l.nodeType&&(r=I.getParent(n.startContainer,I.isBlock),e&&(r=I.getNext(r,I.isBlock)),!r||!t()&&n.collapsed||(i=I.create("em",{id:"__mceDel"}),D(a.grep(r.childNodes),function(e){i.appendChild(e)}),r.appendChild(i))),n=I.createRng(),n.setStart(d[0],d[1]),n.setEnd(d[2],d[3]),F.setRng(n),s.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null),i){for(o=F.getBookmark();u=I.get("__mceDel");)I.remove(u,!0);F.moveToBookmark(o)}}s.on("keydown",function(n){var r;r=n.keyCode==O,u(n)||!r&&n.keyCode!=P||e.modifierPressed(n)||(n.preventDefault(),t(r))}),s.addCommand("Delete",function(){t()})}function f(){function e(e){var t=I.create("body"),n=e.cloneContents();return t.appendChild(n),F.serializer.serialize(t,{format:"html"})}function t(t){var n=e(t),r=I.createRng();r.selectNode(s.getBody());var i=e(r);return n===i}s.on("keydown",function(e){var n=e.keyCode,r;if(!u(e)&&(n==O||n==P)){if(r=s.selection.isCollapsed(),r&&!I.isEmpty(s.getBody()))return;if(q&&!r)return;if(!r&&!t(s.selection.getRng()))return;e.preventDefault(),s.setContent(""),s.selection.setCursorLocation(s.getBody(),0),s.nodeChanged()}})}function p(){s.on("keydown",function(t){!u(t)&&65==t.keyCode&&e.metaKeyPressed(t)&&(t.preventDefault(),s.execCommand("SelectAll"))})}function h(){s.settings.content_editable||(I.bind(s.getDoc(),"focusin",function(){F.setRng(F.getRng())}),I.bind(s.getDoc(),"mousedown",function(e){e.target==s.getDoc().documentElement&&(s.getWin().focus(),F.setRng(F.getRng()))}))}function m(){s.on("keydown",function(e){if(!u(e)&&e.keyCode===P&&F.isCollapsed()&&0===F.getRng(!0).startOffset){var t=F.getNode(),n=t.previousSibling;n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(I.remove(n),e.preventDefault())}})}function g(){window.Range.prototype.getClientRects||s.on("mousedown",function(e){if(!u(e)&&"HTML"===e.target.nodeName){var t=s.getBody();t.blur(),setTimeout(function(){t.focus()},0)}})}function v(){s.on("click",function(e){e=e.target,/^(IMG|HR)$/.test(e.nodeName)&&F.getSel().setBaseAndExtent(e,0,e,1),"A"==e.nodeName&&I.hasClass(e,"mceItemAnchor")&&F.select(e),s.nodeChanged()})}function y(){function e(){var e=I.getAttribs(F.getStart().cloneNode(!1));return function(){var t=F.getStart();t!==s.getBody()&&(I.setAttrib(t,"style",null),D(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function n(){return!F.isCollapsed()&&I.getParent(F.getStart(),I.isBlock)!=I.getParent(F.getEnd(),I.isBlock)}s.on("keypress",function(r){var i;return u(r)||8!=r.keyCode&&46!=r.keyCode||!n()?t:(i=e(),s.getDoc().execCommand("delete",!1,null),i(),r.preventDefault(),!1)}),I.bind(s.getDoc(),"cut",function(t){var r;!u(t)&&n()&&(r=e(),setTimeout(function(){r()},0))})}function b(){var e,t;s.on("selectionchange",function(){t&&(clearTimeout(t),t=0),t=window.setTimeout(function(){var t=F.getRng();e&&n.compareRanges(t,e)||(s.nodeChanged(),e=t)},50)})}function C(){document.body.setAttribute("role","application")}function x(){s.on("keydown",function(e){if(!u(e)&&e.keyCode===P&&F.isCollapsed()&&0===F.getRng(!0).startOffset){var t=F.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function w(){c()>7||(l("RespectVisibilityInDesign",!0),s.contentStyles.push(".mceHideBrInPre pre br {display: none}"),I.addClass(s.getBody(),"mceHideBrInPre"),z.addNodeFilter("pre",function(e){for(var t=e.length,n,i,o,a;t--;)for(n=e[t].getAll("br"),i=n.length;i--;)o=n[i],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new r("#text",3),o,!0).value="\n" +}),V.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function _(){I.bind(s.getBody(),"mouseup",function(){var e,t=F.getNode();"IMG"==t.nodeName&&((e=I.getStyle(t,"width"))&&(I.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),I.setStyle(t,"width","")),(e=I.getStyle(t,"height"))&&(I.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),I.setStyle(t,"height","")))})}function N(){s.on("keydown",function(t){var n,r,i,o,a,l,c,d;if(n=t.keyCode==O,!u(t)&&(n||t.keyCode==P)&&!e.modifierPressed(t)&&(r=F.getRng(),i=r.startContainer,o=r.startOffset,c=r.collapsed,3==i.nodeType&&i.nodeValue.length>0&&(0===o&&!c||c&&o===(n?0:1)))){if(l=i.previousSibling,l&&"IMG"==l.nodeName)return;d=s.schema.getNonEmptyElements(),t.preventDefault(),a=I.create("br",{id:"__tmp"}),i.parentNode.insertBefore(a,i),s.getDoc().execCommand(n?"ForwardDelete":"Delete",!1,null),i=F.getRng().startContainer,l=i.previousSibling,l&&1==l.nodeType&&!I.isBlock(l)&&I.isEmpty(l)&&!d[l.nodeName.toLowerCase()]&&I.remove(l),I.remove("__tmp")}})}function E(){s.on("keydown",function(t){var n,r,i,o,a;if(!u(t)&&t.keyCode==e.BACKSPACE&&(n=F.getRng(),r=n.startContainer,i=n.startOffset,o=I.getRoot(),a=r,n.collapsed&&0===i)){for(;a&&a.parentNode&&a.parentNode.firstChild==a&&a.parentNode!=o;)a=a.parentNode;"BLOCKQUOTE"===a.tagName&&(s.formatter.toggle("blockquote",null,a),n=I.createRng(),n.setStart(r,0),n.setEnd(r,0),F.setRng(n))}})}function k(){function e(){s._refreshContentEditable(),l("StyleWithCSS",!1),l("enableInlineTableEditing",!1),W.object_resizing||l("enableObjectResizing",!1)}W.readonly||s.on("BeforeExecCommand MouseDown",e)}function S(){function e(){D(I.select("a"),function(e){var t=e.parentNode,n=I.getRoot();if(t.lastChild===e){for(;t&&!I.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}I.add(t,"br",{"data-mce-bogus":1})}})}s.on("SetContent ExecCommand",function(t){("setcontent"==t.type||"mceInsertLink"===t.command)&&e()})}function T(){W.forced_root_block&&s.on("init",function(){l("DefaultParagraphSeparator",W.forced_root_block)})}function R(){s.on("Undo Redo SetContent",function(e){e.initial||s.execCommand("mceRepaint")})}function A(){s.on("keydown",function(e){var t;u(e)||e.keyCode!=P||(t=s.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),s.undoManager.beforeChange(),I.remove(t.item(0)),s.undoManager.add()))})}function B(){var e;c()>=10&&(e="",D("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),s.contentStyles.push(e+"{padding-right: 1px !important}"))}function L(){9>c()&&(z.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),V.addNodeFilter("noscript",function(e){for(var t=e.length,n,o,a;t--;)n=e[t],o=e[t].firstChild,o?o.value=i.decode(o.value):(a=n.attributes.map["data-mce-innertext"],a&&(n.attr("data-mce-innertext",null),o=new r("#text",3),o.value=a,o.raw=!0,n.append(o)))}))}function H(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),I.unbind(r,"mouseup",n),I.unbind(r,"mousemove",t),a=o=0}var r=I.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,I.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(I.bind(r,"mouseup",n),I.bind(r,"mousemove",t),I.win.focus(),a.select())}})}function M(){s.on("keyup focusin",function(t){65==t.keyCode&&e.metaKeyPressed(t)||F.normalize()})}var D=a.each,P=e.BACKSPACE,O=e.DELETE,I=s.dom,F=s.selection,W=s.settings,z=s.parser,V=s.serializer,U=o.gecko,q=o.ie,$=o.webkit;x(),E(),f(),M(),$&&(N(),d(),h(),v(),T(),o.iOS?b():p()),q&&(m(),C(),w(),_(),A(),B(),L(),H()),U&&(m(),g(),y(),k(),S(),R())}}),r(nt,[p],function(e){function t(){return!1}function n(){return!0}var r="__bindings",i=e.makeMap("focusin focusout click dblclick mousedown mouseup mousemove mouseover beforepaste paste cut copy selectionchange mouseout mouseenter mouseleave keydown keypress keyup contextmenu dragend dragover draggesture dragdrop drop drag"," ");return{fire:function(e,i,o){var a=this,s,l,c,u,d;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=a),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=n},i.stopPropagation=function(){i.isPropagationStopped=n},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=n},i.isDefaultPrevented=t,i.isPropagationStopped=t,i.isImmediatePropagationStopped=t),a[r]&&(s=a[r][e]))for(l=0,c=s.length;c>l&&(s[l]=u=s[l],!i.isImmediatePropagationStopped());l++)if(u.call(a,i)===!1)return i.preventDefault(),i;if(o!==!1&&a.parent)for(d=a.parent();d&&!i.isPropagationStopped();)d.fire(e,i,!1),d=d.parent();return i},on:function(e,t){var n=this,o,a,s,l;if(t===!1&&(t=function(){return!1}),t)for(s=e.toLowerCase().split(" "),l=s.length;l--;)e=s[l],o=n[r],o||(o=n[r]={}),a=o[e],a||(a=o[e]=[],n.bindNative&&i[e]&&n.bindNative(e)),a.push(t);return n},off:function(e,t){var n=this,o,a=n[r],s,l,c,u;if(a)if(e)for(c=e.toLowerCase().split(" "),o=c.length;o--;){if(e=c[o],s=a[e],!e){for(l in a)a[e].length=0;return n}if(s){if(t)for(u=s.length;u--;)s[u]===t&&s.splice(u,1);else s.length=0;!s.length&&n.unbindNative&&i[e]&&(n.unbindNative(e),delete a[e])}}else{if(n.unbindNative)for(e in a)n.unbindNative(e);n[r]=[]}return n}}}),r(rt,[p,g],function(e,n){var r=e.each,i=e.explode,o={f9:120,f10:121,f11:122};return function(e){var a=this,s={};e.on("keyup keypress keydown",function(e){(e.altKey||e.ctrlKey||e.metaKey)&&r(s,function(r){var i=n.isMac?e.metaKey:e.ctrlKey;if(r.ctrl==i&&r.alt==e.altKey&&r.shift==e.shiftKey)return e.keyCode==r.keyCode||e.charCode&&e.charCode==r.charCode?(e.preventDefault(),"keydown"==e.type&&r.func.call(r.scope),!0):t})}),a.add=function(t,n,a,l){var c;return c=a,"string"==typeof a?a=function(){e.execCommand(c,!1,null)}:a.length&&(a=function(){e.execCommand(c[0],c[1],c[2])}),r(i(t.toLowerCase()),function(t){var c={func:a,scope:l||e,desc:e.translate(n),alt:!1,ctrl:!1,shift:!1};r(i(t,"+"),function(e){switch(e){case"alt":case"ctrl":case"shift":c[e]=!0;break;default:c.charCode=e.charCodeAt(0),c.keyCode=o[e]||e.toUpperCase().charCodeAt(0)}}),s[(c.ctrl?"ctrl":"")+","+(c.alt?"alt":"")+","+(c.shift?"shift":"")+","+c.keyCode]=c}),!0}}}),r(it,[v,b,C,k,E,A,L,H,M,D,P,O,y,l,et,x,_,tt,g,p,nt,rt],function(e,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w){function _(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|click|contextmenu/.test(t)?e.getDoc():e.getBody()}function N(e,t,r){var i=this,o,a;o=i.documentBaseUrl=r.documentBaseURL,a=r.baseURI,i.settings=t=T({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:o,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"<!DOCTYPE html>",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",directionality:"ltr",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:i.convertURL,url_converter_scope:i,ie7_compat:!0},t),n.settings=t,n.baseURL=r.baseURL,i.id=t.id=e,i.isNotDirty=!1,i.plugins={},i.documentBaseURI=new f(t.document_base_url||o,{base_uri:a}),i.baseURI=a,i.contentCSS=[],i.contentStyles=[],i.shortcuts=new w(i),i.execCommands={},i.queryStateCommands={},i.queryValueCommands={},i.suffix=r.suffix,i.editorManager=r,i.inline=t.inline,i.execCallback("setup",i)}var E=e.DOM,k=n.ThemeManager,S=n.PluginManager,T=C.extend,R=C.each,A=C.explode,B=C.inArray,L=C.trim,H=C.resolve,M=h.Event,D=b.gecko,P=b.ie,O=b.opera;return N.prototype={render:function(){function e(){var e=p.ScriptLoader;r.language&&e.add(n.editorManager.baseURL+"/langs/"+r.language+".js"),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!k.urls[r.theme]&&k.load(r.theme,"themes/"+r.theme+"/theme"+o+".js"),C.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),R(r.plugins.split(/[ ,]/),function(e){if(e=L(e),e&&!S.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=S.dependencies(e);R(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=S.createUrl(t,e),S.load(e.resource,e)})}else S.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!M.domLoaded)return E.bind(window,"ready",function(){n.render()}),t;if(n.editorManager.settings=r,n.getElement()&&b.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||E.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&E.insertAfter(E.create("input",{type:"hidden",name:i}),i),n.formEventDelegate=function(e){n.fire(e.type,e)},E.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.isNotDirty=1,a._mceOldSubmit(a)})),n.windowManager=new m(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=E.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&(n.save(),n.isNotDirty=1)}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0})},n.editorManager.on("BeforeUnload",n._beforeUnload)),e()}},init:function(){function e(n){var r=S.get(n),i,o;i=S.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=L(n),r&&-1===B(h,n)&&(R(S.dependencies(n),function(t){e(t)}),o=new r(t,i),t.plugins[n]=o,o.init&&(o.init(t,i),h.push(n)))}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,c,u,d,f,p,h=[];if(t.editorManager.add(t),n.aria_label=n.aria_label||E.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),l=k.get(n.theme),t.theme=new l(t,k.urls[n.theme]),t.theme.init&&t.theme.init(t,k.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""))):t.theme=n.theme),R(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),t.fire("BeforeRenderUI"),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,f=/^[0-9\.]+(|px)$/i,f.test(""+i)&&(i=Math.max(parseInt(i,10)+(l.deltaWidth||0),100)),f.test(""+o)&&(o=Math.max(parseInt(o,10)+(l.deltaHeight||0),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(E.setStyles(l.sizeContainer||l.editorContainer,{wi2dth:i,h2eight:o}),o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),a>o&&(o=a))):(l=n.theme(t,r),l.editorContainer.nodeType&&(l.editorContainer=l.editorContainer.id=l.editorContainer.id||t.id+"_parent"),l.iframeContainer.nodeType&&(l.iframeContainer=l.iframeContainer.id=l.iframeContainer.id||t.id+"_iframecontainer"),o=l.iframeHeight||r.offsetHeight),t.editorContainer=l.editorContainer),n.content_css&&R(A(n.content_css),function(e){t.contentCSS.push(t.documentBaseURI.toAbsolute(e))}),n.content_style&&t.contentStyles.push(n.content_style),n.content_editable)return r=s=l=null,t.initContentBody();for(document.domain&&location.hostname!=document.domain&&(t.editorManager.relaxedDomain=document.domain),t.iframeHTML=n.doctype+"<html><head>",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+='<base href="'+t.documentBaseURI.getURI()+'" />'),!b.caretAfter&&n.ie7_compat&&(t.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'),t.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />',p=0;t.contentCSS.length>p;p++)t.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+t.contentCSS[p]+'" />';t.contentCSS=[],u=n.body_id||"tinymce",-1!=u.indexOf("=")&&(u=t.getParam("body_id","","hash"),u=u[t.id]||u),d=n.body_class||"",-1!=d.indexOf("=")&&(d=t.getParam("body_class","","hash"),d=d[t.id]||""),t.iframeHTML+='</head><body id="'+u+'" class="mce-content-body '+d+'" '+"onload=\"window.parent.tinymce.get('"+t.id+"').fire('load');\"><br></body></html>",t.editorManager.relaxedDomain&&(P||O&&11>parseFloat(window.opera.version()))&&(c='javascript:(function(){document.open();document.domain="'+document.domain+'";'+'var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);'+"document.close();ed.initContentBody();})()"),s=E.add(l.iframeContainer,"iframe",{id:t.id+"_ifr",src:c||'javascript:""',frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}}),t.contentAreaContainer=l.iframeContainer,l.editorContainer&&(E.get(l.editorContainer).style.display=t.orgDisplay),E.get(t.id).style.display="none",E.setAttrib(t.id,"aria-hidden",!0),t.editorManager.relaxedDomain&&c||t.initContentBody(),r=s=l=null},initContentBody:function(){var t=this,n=t.settings,o=E.get(t.id),f=t.getDoc(),p,h;n.inline||(t.getElement().style.visibility=t.orgVisibility),P&&t.editorManager.relaxedDomain||n.content_editable||(f.open(),f.write(t.iframeHTML),f.close(),t.editorManager.relaxedDomain&&(f.domain=t.editorManager.relaxedDomain)),n.content_editable&&(E.addClass(o,"mce-content-body"),o.tabIndex=-1,t.contentDocument=f=n.content_document||document,t.contentWindow=n.content_window||window,t.bodyElement=o,n.content_document=n.content_window=null,n.root_name=o.nodeName.toLowerCase()),p=t.getBody(),p.disabled=!0,n.readonly||(p.contentEditable=t.getParam("content_editable_state",!0)),p.disabled=!1,t.schema=new g(n),t.dom=new e(f,{keep_values:!0,url_converter:t.convertURL,url_converter_scope:t,hex_colors:n.force_hex_style_colors,class_filter:n.class_filter,update_styles:!0,root_element:n.content_editable?t.id:null,schema:t.schema,onSetAttrib:function(e){t.fire("SetAttrib",e)}}),t.parser=new v(n,t.schema),t.parser.addAttributeFilter("src,href,style",function(e,n){for(var r=e.length,i,o=t.dom,a,s;r--;)i=e[r],a=i.attr(n),s="data-mce-"+n,i.attributes.map[s]||("style"===n?i.attr(s,o.serializeStyle(o.parseStyle(a),i.name)):i.attr(s,t.convertURL(a,n,i.name)))}),t.parser.addNodeFilter("script",function(e){for(var t=e.length,n;t--;)n=e[t],n.attr("type","mce-"+(n.attr("type")||"text/javascript"))}),t.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),t.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var n=e.length,i,o=t.schema.getNonEmptyElements();n--;)i=e[n],i.isEmpty(o)&&(i.empty().append(new r("br",1)).shortEnded=!0)}),t.serializer=new i(n,t),t.selection=new a(t.dom,t.getWin(),t.serializer,t),t.formatter=new s(t),t.undoManager=new l(t),t.forceBlocks=new u(t),t.enterKey=new c(t),t.editorCommands=new d(t),t.fire("PreInit"),n.browser_spellcheck||n.gecko_spellcheck||(f.body.spellcheck=!1),t.fire("PostRender"),t.quirks=y(t),n.directionality&&(p.dir=n.directionality),n.nowrap&&(p.style.whiteSpace="nowrap"),n.protect&&t.on("BeforeSetContent",function(e){R(n.protect,function(t){e.content=e.content.replace(t,function(e){return"<!--mce:protected "+escape(e)+"-->"})})}),t.on("SetContent",function(){t.addVisual(t.getBody())}),n.padd_empty_editor&&t.on("PostProcess",function(e){e.content=e.content.replace(/^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")}),t.load({initial:!0,format:"html"}),t.startContent=t.getContent({format:"raw"}),t.initialized=!0,R(t._pendingNativeEvents,function(e){t.dom.bind(_(t,e),e,function(e){t.fire(e.type,e)})}),t.fire("init"),t.focus(!0),t.nodeChanged({initial:!0}),t.execCallback("init_instance_callback",t),t.contentStyles.length>0&&(h="",R(t.contentStyles,function(e){h+=e+"\r\n"}),t.dom.addStyle(h)),R(t.contentCSS,function(e){t.dom.loadCSS(e)}),n.auto_focus&&setTimeout(function(){var e=t.editorManager.get(n.auto_focus);e.selection.select(e.getBody(),1),e.selection.collapse(1),e.getBody().focus(),e.getWin().focus()},100),o=f=p=null},focus:function(e){var t,n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l;e||(o=r.getRng(),o.item&&(a=o.item(0)),n._refreshContentEditable(),i||n.getWin().focus(),(D||i)&&(l=n.getBody(),l.setActive?l.setActive():l.focus(),i&&r.normalize()),a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())),n.editorManager.activeEditor!=n&&((t=n.editorManager.activeEditor)&&t.fire("deactivate",{relatedTarget:n}),n.fire("activate",{relatedTarget:t})),n.editorManager.activeEditor=n},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?H(r):0,n=H(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?n[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n[t+"."+r]||"{#"+r+"}"}):""},getLang:function(e,n){return this.editorManager.i18n[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?R(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(e){e=e.split("="),i[L(e[0])]=e.length>1?L(e[1]):L(e)}):i=r,i):r},nodeChanged:function(){var e=this,n=e.selection,r,i,o;e.initialized&&!e.settings.disable_nodechange&&(o=e.getBody(),r=n.getStart()||o,r=P&&r.ownerDocument!=e.getDoc()?e.getBody():r,"IMG"==r.nodeName&&n.isCollapsed()&&(r=r.parentNode),i=[],e.dom.getParent(r,function(e){return e===o?!0:(i.push(e),t)}),e.fire("NodeChange",{element:r,parents:i}))},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,t.icon=t.icon||(t.icon!==!1?e:!1),n.buttons[e]=t},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addCommand:function(e,t,n){this.execCommands[e]={func:t,scope:n||this}},addQueryStateHandler:function(e,t,n){this.queryStateCommands[e]={func:t,scope:n||this}},addQueryValueHandler:function(e,t,n){this.queryValueCommands[e]={func:t,scope:n||this}},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,n,r,i){var o=this,a=0,s;return/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||i&&i.skip_focus||o.focus(),i=T({},i),o.fire("BeforeExecCommand",{command:e,ui:n,value:r}),i.terminate?!1:(s=o.execCommands[e])&&s.func.call(s.scope,n,r)!==!0?(o.fire("ExecCommand",{command:e,ui:n,value:r}),!0):(R(o.plugins,function(i){return i.execCommand&&i.execCommand(e,n,r)?(o.fire("ExecCommand",{command:e,ui:n,value:r}),a=!0,!1):t}),a?a:o.theme&&o.theme.execCommand&&o.theme.execCommand(e,n,r)?(o.fire("ExecCommand",{command:e,ui:n,value:r}),!0):o.editorCommands.execCommand(e,n,r)?(o.fire("ExecCommand",{command:e,ui:n,value:r}),!0):(o.getDoc().execCommand(e,n,r),o.fire("ExecCommand",{command:e,ui:n,value:r}),t))},queryCommandState:function(e){var t=this,n,r;if(!t._isHidden()){if((n=t.queryStateCommands[e])&&(r=n.func.call(n.scope),r!==!0))return r;if(r=t.editorCommands.queryCommandState(e),-1!==r)return r;try{return t.getDoc().queryCommandState(e)}catch(i){}}},queryCommandValue:function(e){var n=this,r,i;if(!n._isHidden()){if((r=n.queryValueCommands[e])&&(i=r.func.call(r.scope),i!==!0))return i;if(i=n.editorCommands.queryCommandValue(e),i!==t)return i;try{return n.getDoc().queryCommandValue(e)}catch(o){}}},show:function(){var e=this;E.show(e.getContainer()),E.hide(e.id),e.load(),e.fire("show")},hide:function(){var e=this,t=e.getDoc();P&&t&&t.execCommand("SelectAll"),e.save(),E.hide(e.getContainer()),E.setStyle(e.id,"display",e.orgDisplay),e.fire("hide")},isHidden:function(){return!E.isHidden(this.id)},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;return r?(e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i):t},save:function(e){var n=this,r=n.getElement(),i,o;if(r&&n.initialized)return e=e||{},e.save=!0,e.element=r,i=e.content=n.getContent(e),e.no_events||n.fire("SaveContent",e),i=e.content,/TEXTAREA|INPUT/i.test(r.nodeName)?r.value=i:(r.innerHTML=i,(o=E.getParent(n.id,"form"))&&R(o.elements,function(e){return e.name==n.id?(e.value=i,!1):t})),e.element=r=null,i},setContent:function(e,n){var r=this,i=r.getBody(),a;return n=n||{},n.format=n.format||"html",n.set=!0,n.content=e,n.no_events||r.fire("BeforeSetContent",n),e=n.content,P||0!==e.length&&!/^\s+$/.test(e)?("raw"!==n.format&&(e=new o({},r.schema).serialize(r.parser.parse(e,{isRootContent:!0}))),n.content=L(e),r.dom.setHTML(i,n.content),n.no_events||r.fire("SetContent",n),r.settings.content_editable&&document.activeElement!==r.getBody()||r.selection.normalize(),n.content):(a=r.settings.forced_root_block,e=a&&r.schema.isValidChild(i.nodeName.toLowerCase(),a.toLowerCase())?"<"+a+'><br data-mce-bogus="1"></'+a+">":'<br data-mce-bogus="1">',i.innerHTML=e,r.selection.select(i,!0),r.selection.collapse(!0),t)},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?r.innerHTML:"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),e.content="text"!=e.format?L(n):n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e){this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty&&this.undoManager.hasUndo()},getContainer:function(){var e=this;return e.container||(e.container=E.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return E.get(this.settings.content_element||this.id)},getWin:function(){var e=this,t;return e.contentWindow||(t=E.get(e.id+"_ifr"),t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),R(i.select("table,a",e),function(e){var a;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",a=i.getAttrib(e,"border"),a&&"0"!=a||(n.hasVisual?i.addClass(e,o):i.removeClass(e,o)),t;case"A":return i.getAttrib(e,"href",!1)||(a=i.getAttrib(e,"name")||e.id,o="mce-item-anchor",a&&(n.hasVisual?i.addClass(e,o):i.removeClass(e,o))),t}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this,t=e.getContainer(),n=e.getDoc();e.removed||(e.removed=1,P&&n&&n.execCommand("SelectAll"),e.save(),E.setStyle(e.id,"display",e.orgDisplay),e.settings.content_editable||(M.unbind(e.getWin()),M.unbind(e.getDoc())),M.unbind(e.getBody()),M.unbind(t),e.fire("remove"),e.editorManager.remove(e),E.remove(t))},bindNative:function(e){var t=this;t.initialized?t.dom.bind(_(t,e),e,function(n){t.fire(e,n)}):t._pendingNativeEvents?t._pendingNativeEvents.push(e):t._pendingNativeEvents=[e]},unbindNative:function(e){var t=this;t.initialized&&t.dom.unbind(e)},destroy:function(e){var t=this,n;t.destroyed||(D&&(M.unbind(t.getDoc()),M.unbind(t.getWin()),M.unbind(t.getBody())),e||(t.editorManager.off(t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null,E.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=null,t.settings.content_element=t.bodyElement=t.contentDocument=t.contentWindow=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1)},_refreshContentEditable:function(){var e=this,t,n;e._isHidden()&&(t=e.getBody(),n=t.parentNode,n.removeChild(t),n.appendChild(t),t.focus())},_isHidden:function(){var e;return D?(e=this.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}},T(N.prototype,x),N}),r(ot,[],function(){var e={};return{add:function(t,n){for(var r in n)e[r]=n[r]},translate:function(n){if(n===t)return n;if("string"!=typeof n&&n.raw)return n.raw;if(n.push){var r=n.slice(1);n=(e[n[0]]||n[0]).replace(/\{([^\}]+)\}/g,function(e,t){return r[t]})}return e[n]||n},data:e}}),r(at,[v],function(e){function t(n){function r(){try{return document.activeElement}catch(e){return document.body}}function i(i){function o(n){return!!e.DOM.getParent(n,t.isEditorUIElement)}var a=i.editor,s,l;a.on("init",function(){"onbeforedeactivate"in document?a.dom.bind(a.getBody(),"beforedeactivate",function(){var e=a.getDoc().selection;l=e&&e.createRange?e.createRange():a.selection.getRng()}):a.inline&&a.on("nodechange",function(){for(var e,t=document.activeElement;t;){if(t==a.getBody()){e=!0;break}t=t.parentNode}e&&(l=a.selection.getRng())})}),a.on("focusin",function(){var e=n.focusedEditor;s&&(a.selection.setRng(s),s=null),e!=a&&(e&&e.fire("blur",{focusedEditor:a}),a.fire("focus",{blurredEditor:e}),a.focus(!1),n.focusedEditor=a)}),a.on("focusout",function(){s=l,window.setTimeout(function(){var e=n.focusedEditor;e!=a&&(s=null),o(r())||e!=a||(a.fire("blur",{focusedEditor:null}),n.focusedEditor=null,s=null)},0)})}n.on("AddEditor",i)}return t.isEditorUIElement=function(e){return-1!==e.className.indexOf("mce-")},t}),r(st,[it,v,O,g,p,nt,ot,at],function(e,n,r,i,o,a,s,l){var c=n.DOM,u=o.explode,d=o.each,f=o.extend,p=0,h,m={majorVersion:"4",minorVersion:"0b2",releaseDate:"2013-04-24",editors:[],i18n:s,activeEditor:null,setup:function(){var e=this,t,n,i="",o;if(n=document.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(n)||(n+="/"),o=window.tinymce||window.tinyMCEPreInit)t=o.base||o.baseURL,i=o.suffix;else for(var a=document.getElementsByTagName("script"),s=0;a.length>s;s++){var c=a[s].src;if(/tinymce(\.jquery|)(\.min|\.dev|).js/.test(c)){-1!=c.indexOf(".min")&&(i=".min"),t=c.substring(0,c.lastIndexOf("/"));break}}e.baseURL=new r(n).toAbsolute(t),e.documentBaseURL=n,e.baseURI=new r(e.baseURL),e.suffix=i,e.focusManager=new l(e)},init:function(t){function n(e){var t=e.id;return t||(t=e.name,t=t&&!c.get(t)?e.name:c.uniqueId(),e.setAttribute("id",t)),t}function r(e,t,n){var r=e[t];if(r)return r.apply(n||this,Array.prototype.slice.call(arguments,2))}function i(e,t){return t.constructor===RegExp?t.test(e.className):c.hasClass(e,t)}var o=this,a=[],s;o.settings=t,c.bind(window,"ready",function(){var l,h;switch(r(t,"onpageload"),t.mode){case"exact":l=t.elements||"",l.length>0&&d(u(l),function(n){c.get(n)?(s=new e(n,t,o),a.push(s),s.render(!0)):d(document.forms,function(r){d(r.elements,function(r){r.name===n&&(n="mce_editor_"+p++,c.setAttrib(r,"id",n),s=new e(n,t,o),a.push(s),s.render(1))})})});break;case"textareas":case"specific_textareas":d(c.select("textarea"),function(r){t.editor_deselector&&i(r,t.editor_deselector)||(!t.editor_selector||i(r,t.editor_selector))&&(s=new e(n(r),t,o),a.push(s),s.render(!0))});break;default:t.types?d(t.types,function(r){d(c.select(r.selector),function(i){var s=new e(n(i),f({},t,r),o);a.push(s),s.render(1)})}):t.selector&&d(c.select(t.selector),function(r){var i=new e(n(r),t,o);a.push(i),i.render(1)})}t.oninit&&(l=h=0,d(a,function(e){h++,e.initialized?l++:e.on("init",function(){l++,l==h&&r(t,"oninit")}),l==h&&r(t,"oninit")}))})},get:function(e){return e===t?this.editors:this.editors[e]},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),t.activeEditor=e,t.fire("AddEditor",{editor:e}),h||(h=function(){t.fire("BeforeUnload")},c.bind(window,"beforeunload",h)),e},createEditor:function(t){return this.add(new e(t))},remove:function(e){var t=this,n,r=t.editors;if(!r[e.id])return null;for(delete r[e.id],n=0;r.length>n;n++)if(r[n]==e){r.splice(n,1);break}return t.activeEditor==e&&(t.activeEditor=r[0]),e.destroy(),t.fire("RemoveEditor",{editor:e}),r.length||c.unbind(window,"beforeunload",h),e},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return i.activeEditor?i.activeEditor.execCommand(t,n,r):!1},triggerSave:function(){d(this.editors,function(e){e.save()})},addI18n:function(e,t){s.add(e,t)},translate:function(e){return s.translate(e)}};return f(m,a),m.setup(),window.tinymce=window.tinyMCE=m,m}),r(lt,[st,p],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(t,n){e(n,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(ct,[],function(){return{send:function(e){function t(){!e.async||4==n.readyState||r++>1e4?(e.success&&1e4>r&&200==n.status?e.success.call(e.success_scope,""+n.responseText,n,e):e.error&&e.error.call(e.error_scope,r>1e4?"TIMED_OUT":"GENERAL",n,e),n=null):setTimeout(t,10)}var n,r=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async===!1?!1:!0,e.data=e.data||"",n=new XMLHttpRequest){if(n.overrideMimeType&&n.overrideMimeType(e.content_type),n.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.content_type&&n.setRequestHeader("Content-Type",e.content_type),n.setRequestHeader("X-Requested-With","XMLHttpRequest"),n.send(e.data),!e.async)return t();setTimeout(t,10)}}}}),r(ut,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb t\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";t.length>r;r++)i+=(r>0?",":"")+e(t[r],n); +return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(dt,[ut,ct,p],function(e,n,r){function i(e){this.settings=o({},e),this.count=0}var o=r.extend;return i.sendRPC=function(e){return(new i).send(e)},i.prototype={send:function(r){var i=r.error,a=r.success;r=o(this.settings,r),r.success=function(n,o){n=e.parse(n),n===t&&(n={error:"JSON Parse error."}),n.error?i.call(r.error_scope||r.scope,n.error,o):a.call(r.success_scope||r.scope,n.result)},r.error=function(e,t){i&&i.call(r.error_scope||r.scope,e,t)},r.data=e.serialize({id:r.id||"c"+this.count++,method:r.method,params:r.params}),r.content_type="application/json",n.send(r)}},i}),r(ft,[v],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(pt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?c+e:i.indexOf(",",c),-1===r||r>i.length?null:(n=i.substring(c,r),c=r+1,n)}var r,i,s,c=0;a={},o.load(l),i=o.getAttribute(l)||"";do r=n(parseInt(n(),32)||0),null!==r&&(s=n(parseInt(n(),32)||0),a[r]=s);while(null!==r);e()}function r(){var t,n="";for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n),o.save(l),e()}var i,o,a,s,l;return window.localStorage?localStorage:(l="tinymce",o=document.documentElement,o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i)}),r(ht,[v,l,y,b,p,g],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each(i,function(e,t){a[t]=e}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(mt,[I,p],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.addClass(this.settings.containerClass,"body")},applyClasses:function(e){var t=this,n=t.settings,r,i,o;r=e.items().filter(":visible"),i=n.firstControlClass,o=n.lastControlClass,r.each(function(e){e.removeClass(i).removeClass(o),n.controlClass&&e.addClass(n.controlClass)}),r.eq(0).addClass(i),r.eq(-1).addClass(o)},renderHtml:function(e){var t=this,n=t.settings,r,i="";return r=e.items(),r.eq(0).addClass(n.firstControlClass),r.eq(-1).addClass(n.lastControlClass),r.each(function(e){n.controlClass&&e.addClass(n.controlClass),i+=e.renderHtml()}),i},recalc:function(){},postRender:function(){}})}),r(gt,[mt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'<div id="'+e._id+'-absend" class="'+e.classPrefix+'abs-end"></div>'+this._super(e)}})}),r(vt,[V,G],function(e,n){return e.extend({Mixins:[n],Defaults:{classes:"widget tooltip tooltip-n"},text:function(e){var n=this;return e!==t?(n._value=e,n._rendered&&(n.getEl().lastChild.innerHTML=n.encode(e)),n):n._value},renderHtml:function(){var e=this,t=e.classPrefix;return'<div id="'+e._id+'" class="'+e.classes()+'" role="presentation">'+'<div class="'+t+'tooltip-arrow"></div>'+'<div class="'+t+'tooltip-inner">'+e.encode(e._text)+"</div>"+"</div>"},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(yt,[V,vt],function(e,t){var n;return e.extend({init:function(e){var t=this;t._super(e),t.canFocus=!0,e.tooltip&&t.on("mouseenter mouseleave",function(n){n.control==t&&"mouseenter"==n.type?t.tooltip().moveTo(-65535).text(e.tooltip).show().moveRel(t.getEl(),"bc tc"):t.tooltip().moveTo(-65535).hide()}),t.aria("label",e.tooltip)},tooltip:function(){var e=this;return n||(n=new t({type:"tooltip"}),n.renderTo(e.getContainerElm())),n},active:function(e){var t=this,n;return e!==n&&(t.aria("pressed",e),t.toggleClass("active",e)),t._super(e)},disabled:function(e){var t=this,n;return e!==n&&(t.aria("disabled",e),t.toggleClass("disabled",e)),t._super(e)},postRender:function(){var e=this,t=e.settings;e._rendered=!0,e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&setTimeout(function(){e.focus()},0)},remove:function(){this._super(),n&&(n.remove(),n=null)}})}),r(bt,[yt],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t.on("click mousedown",function(e){e.preventDefault()}),t._super(e),n=e.size,e.subtype&&t.addClass(e.subtype),n&&t.addClass("btn-"+n)},repaint:function(){var e=this.getEl().firstChild.style;e.width=e.height="100%",this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon,i="";return e.settings.image&&(r="none",i=" style=\"background-image: url('"+e.settings.image+"')\""),r=e.settings.icon?n+"ico "+n+"i-"+r:"",'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+'<button role="presentation" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+(e._text?(r?" ":"")+e.encode(e._text):"")+"</button>"+"</div>"}})}),r(Ct,[q],function(e){return e.extend({Defaults:{defaultType:"button",role:"toolbar"},renderHtml:function(){var e=this,t=e._layout;return e.addClass("btn-group"),e.preRender(),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'">'+'<div id="'+e._id+'-body">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</div>"}})}),r(xt,[yt],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){var n=this;return e!==t?(e?n.addClass("checked"):n.removeClass("checked"),n._checked=e,n.aria("checked",e),n):n._checked},value:function(e){return this.checked(e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" unselectable="on" aria-labeledby="'+t+'-al" tabindex="-1">'+'<i class="'+n+"ico "+n+'i-checkbox"></i>'+'<span id="'+t+'-al" class="'+n+'label">'+e.encode(e._text)+"</span>"+"</div>"}})}),r(wt,[q],function(e){return e.extend({})}),r(_t,[bt,X],function(e,t){var n=e.extend({showPanel:function(){var e=this,n=e.settings;n.panel.popover=!0,n.panel.autohide=!0,e.active(!0),e.panel?e.panel.show():e.panel=new t(n.panel).on("hide",function(){e.active(!1)}).parent(e).renderTo(e.getContainerElm()).reflow().moveRel(e.getEl(),n.popoverAlign||"bc-tc")},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&e.showPanel()}),e._super()}});return n}),r(Nt,[_t],function(e){return e.extend({init:function(e){this._super(e),this.addClass("colorbutton")},showPreview:function(e){this.getEl("preview").style.backgroundColor=e},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",i=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"";return'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+'<button role="presentation" tabindex="-1">'+(r?'<i class="'+r+'"'+i+"></i>":"")+'<span id="'+t+'-preview" class="'+n+'preview"></span>'+(e._text?(r?" ":"")+e.encode(e._text):"")+"</button>"+"</div>"}})}),r(Et,[yt,z],function(e,n){return e.extend({init:function(e){var r=this;r._super(e),r.addClass("combobox"),r.on("click",function(e){for(var t=e.target;t;)t.id&&-1!=t.id.indexOf("-open")&&r.fire("action"),t=t.parentNode}),r.on("keydown",function(e){"INPUT"==e.target.nodeName&&13==e.keyCode&&r.parents().reverse().each(function(n){return e.preventDefault(),r.fire("change"),n.submit?(n.submit(),!1):t})}),e.placeholder&&(r.addClass("placeholder"),r.on("focusin",function(){r._hasOnChange||(n.on(r.getEl("inp"),"change",function(){r.fire("change")}),r._hasOnChange=!0),r.hasClass("placeholder")&&(r.getEl("inp").value="",r.removeClass("placeholder"))}),r.on("focusout",function(){0===r.value().length&&(r.getEl("inp").value=e.placeholder,r.addClass("placeholder"))}))},value:function(e){var n=this;return e!==t?(n._value=e,n.removeClass("placeholder"),n._rendered&&(n.getEl("inp").value=e),n):n._rendered?(e=n.getEl("inp").value,e!=n.settings.placeholder?e:""):n._value},repaint:function(){var e=this,t=e.getEl(),r=e.getEl("open"),i=e.layoutRect();return r?n.css(t.firstChild,{width:i.w-r.offsetWidth-10}):n.css(t.firstChild,{width:i.w-10}),e._super(),e},disabled:function(e){var t=this;t._super(e),t._rendered&&(t.getEl().disabled=e)},focus:function(){this.getEl("inp").focus()},postRender:function(){var e=this;return n.on(this.getEl("inp"),"change",function(){e.fire("change")}),e._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=n.value||n.placeholder||"",o,a,s="";return o=n.icon?r+"ico "+r+"i-"+n.icon:"",a=e._text,(o||a)&&(s='<div id="'+t+'-open" class="'+r+"btn "+r+'open" tabIndex="-1">'+'<button id="'+t+'-action" hidefocus tabindex="-1">'+(o?'<i class="'+o+'"></i>':'<i class="'+r+'caret"></i>')+(a?(o?" ":"")+a:"")+"</button>"+"</div>",e.addClass("has-open")),'<div id="'+t+'" class="'+e.classes()+'">'+'<input id="'+t+'-inp" class="'+r+"textbox "+r+'placeholder" value="'+i+'" hidefocus="true">'+s+"</div>"}})}),r(kt,[V,J],function(e,n){return e.extend({Defaults:{delimiter:"\u00bb"},init:function(e){var t=this;t._super(e),t.addClass("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.data()[n],index:n})})},focus:function(){var e=this;return e.keyNav=new n({root:e,enableLeftRight:!0}),e.keyNav.focusFirst(),e},data:function(e){var n=this;return e!==t?(n._data=e,n.update(),n):n._data},update:function(){this.getEl().innerHTML=this._getPathHtml()},postRender:function(){var e=this;e._super(),e.data(e.settings.data)},renderHtml:function(){var e=this;return'<div id="'+e._id+'" class="'+e.classPrefix+'path">'+e._getPathHtml()+"</div>"},_getPathHtml:function(){var e=this,t=e._data||[],n,r,i="",o=e.classPrefix;for(n=0,r=t.length;r>n;n++)i+=(n>0?'<div class="'+o+'divider" aria-hidden="true"> '+e.settings.delimiter+" </div>":"")+'<div role="button" class="'+o+"path-item"+(n==r-1?" "+o+"last":"")+'" data-index="'+n+'" tabindex="-1" id="'+e._id+"-"+n+'">'+t[n].name+"</div>";return i||(i='<div class="'+o+'path-item"> </div>'),i}})}),r(St,[kt,st],function(e,t){return e.extend({postRender:function(){function e(e){return 1===e.nodeType&&("BR"==e.nodeName||!!e.getAttribute("data-mce-bogus"))}var n=this,r=t.activeEditor;return n.on("select",function(t){for(var n=[],i=r.selection.getNode(),o=r.getBody();i&&(e(i)||n.push(i),i=i.parentNode,i!=o););r.focus(),r.selection.select(n[n.length-1-t.index]),r.nodeChanged()}),r.on("nodeChange",function(t){for(var i=[],o=t.parents,a=o.length;a--;)if(!e(o[a])){var s=r.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});i.push({name:s.name})}n.data(i)}),n._super()}})}),r(Tt,[q],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.addClass("formitem"),t.preRender(e),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<div id="'+e._id+'-title" class="'+n+'title">'+e.settings.title+"</div>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</div>"}})}),r(Rt,[q,Tt],function(e,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10},preRender:function(){var e=this,r=e.items();r.each(function(r){var i,o=r.settings.label;o&&(i=new n({layout:"flex",autoResize:"overflow",defaults:{flex:1},items:[{type:"label",text:o,flex:0,forId:r._id}]}),i.type="formitem",r.settings.flex===t&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},recalcLabels:function(){var e=this,t=0,n=[],r,i;if(e.settings.labelGapCalc!==!1)for(e.items().filter("formitem").each(function(e){var r=e.items()[0],i=r.getEl().clientWidth;t=i>t?i:t,n.push(r)}),i=e.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=t+i},visible:function(e){var t=this._super(e);return e===!0&&this._rendered&&this.recalcLabels(),t},fromJSON:function(e){var t=this;if(e)for(var n in e)t.find("#"+n).value(e[n]);return t},toJSON:function(){var e=this,n={};return e.find("*").each(function(e){var r=e.name(),i=e.value();r&&i!==t&&(n[r]=i)}),n},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.recalcLabels(),e.fromJSON(e.settings.data)}})}),r(At,[Rt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'<fieldset id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+(e.settings.title?'<legend id="'+e._id+'-title" class="'+n+'fieldset-title">'+e.settings.title+"</legend>":"")+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+(e.settings.html||"")+t.renderHtml(e)+"</div>"+"</fieldset>"}})}),r(Bt,[Et],function(e){return e.extend({init:function(e){var t=this,n=tinymce.activeEditor,r;e.spellcheck=!1,r=n.settings.file_browser_callback,r&&(e.icon="browse",e.onaction=function(){r(t.getEl("inp").id,t.getEl("inp").value,e.filetype,window)}),t._super(e)}})}),r(Lt,[gt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox();e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Ht,[gt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v=[],y,b,C,x,w,_,N,E,k,S,T,R,A,B,L,H,M,D,P,O,I,F,W,z,V=Math.max,U=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e._paddingBox,a=e.settings,f=a.direction,s=a.align,l=a.pack,c=a.spacing||0,("row-reversed"==f||"column-reverse"==f)&&(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(k="y",N="h",E="minH",S="maxH",R="innerH",T="top",A="bottom",B="deltaH",L="contentH",I="left",D="w",H="x",M="innerW",P="minW",O="maxW",F="right",W="deltaW",z="contentW"):(k="x",N="w",E="minW",S="maxW",R="innerW",T="left",A="right",B="deltaW",L="contentW",I="top",D="h",H="y",M="innerH",P="minH",O="maxH",F="bottom",W="deltaH",z="contentH"),d=i[R]-o[T]-o[T],_=u=0,t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),m=p.settings,g=m.flex,d-=n-1>t?c:0,g>0&&(u+=g,h[S]&&v.push(p),h.flex=g),d-=h[E],y=o[I]+h[P]+o[F],y>_&&(_=y);if(x={},x[E]=0>d?i[E]-d+i[B]:i[R]-d+i[B],x[P]=_+i[W],x[L]=i[R]-d,x[z]=_,x.minW=U(x.minW,i.maxW),x.minH=U(x.minH,i.maxH),x.minW=V(x.minW,i.startMinWidth),x.minH=V(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/u,t=0,n=v.length;n>t;t++)p=v[t],h=p.layoutRect(),b=h[S],y=h[E]+Math.ceil(h.flex*C),y>b?(d-=h[S]-h[E],u-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/u,w=o[T],x={},0===u&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],0>w&&(w=o[T])):"justify"==l&&(w=o[T],c=Math.floor(d/(r.length-1)))),x[H]=o[I],t=0,n=r.length;n>t;t++)p=r[t],h=p.layoutRect(),y=h.maxFlexSize||h[E],"center"===s?x[H]=Math.round(i[M]/2-h[D]/2):"stretch"===s?(x[D]=V(h[P]||0,i[M]-o[I]-o[F]),x[H]=o[I]):"end"===s&&(x[H]=i[M]-h[D]-o.top),h.flex>0&&(y+=Math.ceil(h.flex*C)),x[N]=y,x[k]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+c}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var q=e.parent();q&&(q._lastRect=null,q.recalc())}}})}),r(Mt,[mt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})}})}),r(Dt,[U,V,X,p,st],function(e,n,r,i,o){function a(e){function n(e){return e.replace(/%(\w+)/g,"")}var r=o.activeEditor,i,a,s=r.dom,c="",u,d;return d=r.settings.preview_styles,d===!1?"":(d||(d="font-family font-size font-weight text-decoration text-transform color background-color border border-radius"),(e=r.formatter.get(e))?(e=e[0],i=e.block||e.inline||"span",a=s.create(i),l(e.styles,function(e,t){e=n(e),e&&s.setStyle(a,t,e)}),l(e.attributes,function(e,t){e=n(e),e&&s.setAttrib(a,t,e)}),l(e.classes,function(e){e=n(e),s.hasClass(a,e)||s.addClass(a,e)}),r.fire("PreviewFormats"),s.setStyles(a,{position:"absolute",left:-65535}),r.getBody().appendChild(a),u=s.getStyle(r.getBody(),"fontSize",!0),u=/px$/.test(u)?parseInt(u,10):0,l(d.split(" "),function(e){var t=s.getStyle(a,e,!0);if(!("background-color"==e&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(t)&&(t=s.getStyle(r.getBody(),e,!0),"#ffffff"==s.toHex(t).toLowerCase())||"color"==e&&"#000000"==s.toHex(t).toLowerCase())){if("font-size"==e&&/em|%$/.test(t)){if(0===u)return;t=parseFloat(t,10)/(/%$/.test(t)?100:1),t=t*u+"px"}"border"==e&&t&&(c+="padding:0 2px;"),c+=e+":"+t+";"}}),r.fire("AfterPreviewFormats"),s.remove(a),c):t)}function s(e){e=e.split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}var l=i.each;n.translate=function(e){return o.translate(e)},o.on("AddEditor",function(t){function n(){function e(r){var i=[];if(r)return l(r,function(r){var o={text:{raw:r.title},icon:r.icon};if(r.items)o.menu=e(r.items);else{var s=r.format||"custom"+t++;r.format||(r.name=s,n.push(r)),o.textStyle=function(){return a(s)},o.onclick=function(){h(s)}}i.push(o)}),i}var t=0,n=[],r=[{title:"Headers",items:[{title:"Header 1",format:"h1"},{title:"Header 2",format:"h2"},{title:"Header 3",format:"h3"},{title:"Header 4",format:"h4"},{title:"Header 5",format:"h5"},{title:"Header 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];m.on("init",function(){l(n,function(e){m.formatter.register(e.name,e)})});var i=e(m.settings.style_formats||r);return i}function c(){return m.undoManager?m.undoManager.hasUndo():!1}function u(){return m.undoManager?m.undoManager.hasRedo():!1}function d(){var e=this;e.disabled(!c()),m.on("Undo Redo AddUndo",function(){e.disabled(!c())})}function f(){var e=this;e.disabled(!u()),m.on("Undo Redo AddUndo",function(){e.disabled(!u())})}function p(){var e=this;m.on("VisualAid",function(t){e.active(t.hasVisual)}),e.active(m.hasVisual)}function h(e){e.control&&(e=e.control.settings.format),e&&o.activeEditor.execCommand("mceToggleFormat",!1,e)}var m=t.editor,g;g=n(),l({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(e,t){m.addButton(t,{tooltip:e,onPostRender:function(){var e=this;m.formatter?m.formatter.formatChanged(t,function(t){e.active(t)}):m.on("init",function(){m.formatter.formatChanged(t,function(t){e.active(t)})})},onclick:function(){h(t)}})}),l({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],hr:["Insert horizontal rule","InsertHorizontalRule"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(e,t){m.addButton(t,{tooltip:e[0],cmd:e[1]})}),l({blockquote:["Toggle blockquote","mceBlockQuote"],numlist:["Numbered list","InsertOrderedList"],bullist:["Bulleted list","InsertUnorderedList"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"]},function(e,t){m.addButton(t,{tooltip:e[0],cmd:e[1],onPostRender:function(){var e=this;m.formatter?m.formatter.formatChanged(t,function(t){e.active(t)}):m.on("init",function(){m.formatter.formatChanged(t,function(t){e.active(t)})})}})}),m.addButton("undo",{tooltip:"Undo",onPostRender:d,cmd:"undo"}),m.addButton("redo",{tooltip:"Redo",onPostRender:f,cmd:"redo"}),m.addMenuItem("newdocument",{text:"New document",shortcut:"Ctrl+N",icon:"newdocument",cmd:"mceNewDocument"}),m.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Ctrl+Z",onPostRender:d,cmd:"undo"}),m.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Ctrl+Y",onPostRender:f,cmd:"redo"}),m.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:p,cmd:"mceToggleVisualAid"}),l({cut:["Cut","Cut","Ctrl+X"],copy:["Copy","Copy","Ctrl+C"],paste:["Paste","Paste","Ctrl+V"],selectall:["Select all","SelectAll","Ctrl+A"],bold:["Bold","Bold","Ctrl+B"],italic:["Italic","Italic","Ctrl+I"],underline:["Underline","Underline"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(e,t){m.addMenuItem(t,{text:e[0],icon:t,shortcut:e[2],cmd:e[1]})}),m.on("mousedown",function(){r.hideAll()}),e.add("styleselect",function(t){var n=[].concat(g);return e.create("menubutton",i.extend({text:"Formats",menu:n},t))}),e.add("formatselect",function(t){var n=[],r=s("Paragraph=p;Address=address;Pre=pre;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6");return l(r,function(e){n.push({text:{raw:e[0]},format:e[1],textStyle:function(){return a(e[1])}})}),e.create("listbox",i.extend({text:{raw:r[0][0]},menu:n,onclick:h},t))}),e.add("fontselect",function(t){var n=[],r=s("Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats");return l(r,function(e){n.push({text:{raw:e[0]},format:e[1],style:-1==e[1].indexOf("dings")?"font-family:"+e[1]:""})}),e.create("listbox",i.extend({text:"Font Family",menu:n,onclick:function(e){e.control.settings.format&&o.activeEditor.execCommand("FontName",!1,e.control.settings.format)}},t))}),e.add("fontsizeselect",function(t){var n=[];return l("8pt 10pt 12pt 14pt 18pt 24pt 36pt".split(" "),function(e){n.push({text:e,format:e})}),e.create("listbox",i.extend({text:"Font Sizes",menu:n,onclick:function(e){e.control.settings.format&&o.activeEditor.execCommand("FontSize",!1,e.control.settings.format)}},t))}),m.addMenuItem("formats",{text:"Formats",menu:g})})}),r(Pt,[gt],function(e){return e.extend({recalc:function(e){var t=e.settings,n,r,i,o,a,s,l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,N=[],E=[],k,S,T,R,A,B;for(t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e._paddingBox,d=0;r>d;d++)N.push(0);for(f=0;n>f;f++)E.push(0);for(f=0;n>f;f++)for(d=0;r>d&&(u=i[f*r+d],u);d++)c=u.layoutRect(),k=c.minW,S=c.minH,N[d]=k>N[d]?k:N[d],E[f]=S>E[f]?S:E[f];for(A=o.innerW-g.left-g.right,w=0,d=0;r>d;d++)w+=N[d]+(d>0?y:0),A-=(d>0?y:0)+N[d];for(B=o.innerH-g.top-g.bottom,_=0,f=0;n>f;f++)_+=E[f]+(f>0?b:0),B-=(f>0?b:0)+E[f];if(w+=g.left+g.right,_+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=_+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var L;L="start"==t.packV?0:B>0?Math.floor(B/n):0;var H=0,M=t.flexWidths;if(M)for(d=0;M.length>d;d++)H+=M[d];else H=r;var D=A/H;for(d=0;r>d;d++)N[d]+=M?Math.ceil(M[d]*D):D;for(h=g.top,f=0;n>f;f++){for(p=g.left,s=E[f]+L,d=0;r>d&&(u=i[f*r+d],u);d++)m=u.settings,c=u.layoutRect(),a=N[d],T=R=0,c.x=p,c.y=h,v=m.alignH||C,"center"==v?c.x=p+a/2-c.w/2:"right"==v?c.x=p+a-c.w:"stretch"==v&&(c.w=a),v=m.alignV||x,"center"==v?c.y=h+s/2-c.h/2:"bottom"==v?c.y=h+s-c.h:"stretch"==v&&(c.h=s),u.layoutRect(c),p+=a+y,u.recalc&&u.recalc();h+=s+b}}else if(l.w=l.minW,l.h=l.minH,e.layoutRect(l),this.recalc(e),null===e._lastRect){var P=e.parent();P&&(P._lastRect=null,P.recalc())}}})}),r(Ot,[yt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("iframe"),e.canFocus=!1,'<iframe id="'+e._id+'" class="'+e.classes()+'" tabindex="-1" src="'+(e.settings.url||"javascript:''")+'" frameborder="0"></iframe>'},src:function(e){this.getEl().src=e},html:function(e){return this.getEl().contentWindow.document.body.innerHTML=e,this}})}),r(It,[yt],function(e){return e.extend({init:function(e){var t=this;t._super(e),t.addClass("widget"),t.addClass("label"),t.canFocus=!1,e.multiline&&t.addClass("autoscroll"),e.strong&&t.addClass("strong")},initLayoutRect:function(){var e=this,t=e._super();return e.settings.multiline&&(e.getEl().offsetWidth>t.maxW&&(t.minW=t.maxW,e.addClass("multiline")),e.getEl().style.width=t.minW+"px",t.startMinH=t.h=t.minH=Math.min(t.maxH,e.getEl().offsetHeight)),t},disabled:function(e){var t=this,n;return e!==n&&(t.toggleClass("label-disabled",e),t._rendered&&(t.getEl()[0].className=t.classes())),t._super(e)},repaint:function(){var e=this;return e.settings.multiline||(e.getEl().style.lineHeight=e.layoutRect().h+"px"),e._super()},text:function(e){var t=this;return t._rendered&&e&&(t.getEl().innerHTML=t.encode(e)),t._super(e)},renderHtml:function(){var e=this,t=e.settings.forId;return'<label id="'+e._id+'" class="'+e.classes()+'"'+(t?' for="'+t:"")+'">'+e.encode(e._text)+"</label>"}})}),r(Ft,[q,J],function(e,t){return e.extend({Defaults:{role:"toolbar",layout:"flow"},init:function(e){var t=this;t._super(e),t.addClass("toolbar")},postRender:function(){var e=this;return e.items().addClass("toolbar-item"),e.keyNav=new t({root:e,enableLeftRight:!0}),e._super()}})}),r(Wt,[Ft],function(e){return e.extend({Defaults:{role:"menubar",containerCls:"menubar",defaults:{type:"menubutton"}}})}),r(zt,[bt,U,Wt],function(e,t,n){function r(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1}var i=e.extend({init:function(e){var t=this;t._renderOpen=!0,t._super(e),t.addClass("menubtn"),t.aria("haspopup",!0),t.hasPopup=!0},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control==e.menu&&e.activeMenu("show"==t.type)}).fire("show"),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),"bl-tl")},hideMenu:function(){var e=this;e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1))},activeMenu:function(e){this.toggleClass("active",e)},renderHtml:function(){var e=this,t=e._id,r=e.classPrefix,i=e.settings.icon?r+"ico "+r+"i-"+e.settings.icon:"";return e.aria("role",e.parent()instanceof n?"menuitem":"button"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+'<button id="'+t+'-open" role="presentation" tabindex="-1">'+(i?'<i class="'+i+'"></i>':"")+(e._text?(i?" ":"")+e.encode(e._text):"")+' <i class="'+r+'caret"></i>'+"</button>"+"</div>"},postRender:function(){var e=this;return e.on("click",function(t){t.control===e&&r(t.target,e.getEl())&&(e.showMenu(),t.keyboard&&e.menu.items()[0].focus())}),e.on("mouseenter",function(t){var n=t.control,r=e.parent(),o;n&&r&&n instanceof i&&n.parent()==r&&(r.items().filter("MenuButton").each(function(e){e.hideMenu&&e!=n&&(e.menu&&e.menu.visible()&&(o=!0),e.hideMenu())}),o&&n.showMenu())}),e._super()},text:function(e){var t=this,n,r;if(t._rendered)for(r=t.getEl("open").childNodes,n=0;r.length>n;n++)3==r[n].nodeType&&(r[n].data=t.encode(e));return this._super(e)},remove:function(){this._super(),this.menu&&this.menu.remove()}});return i}),r(Vt,[zt],function(e){return e.extend({init:function(e){var t=this,n,r,i,o,a;if(t._values=n=e.values,n){for(r=0;n.length>r;r++)i=n[r].selected||e.value===n[r].value,i&&(o=o||n[r].text,t._value=n[r].value);e.menu=n}e.text=e.text||o||n[0].text,t._super(e),t.addClass("listbox"),t.on("select",function(n){var r=n.control;a&&(n.lastControl=a),e.multiple?r.active(!r.active()):t.value(n.control.settings.value),a=r})},value:function(e){function n(e,t){e.items().each(function(e){i=e.value()===t,i&&(o=o||e.text()),e.active(i),e.menu&&n(e.menu,t)})}var r=this,i,o,a,s;if(e!==t){if(r.menu)n(r.menu,e);else for(a=r.settings.menu,s=0;a.length>s;s++)i=a[s].value==e,i&&(o=o||a[s].text),a[s].active=i;r.text(o)}return r._super(e)}})}),r(Ut,[yt,U],function(e,t){return e.extend({Defaults:{border:0,role:"menuitem"},init:function(e){var t=this;t.hasPopup=!0,t._super(e),e=t.settings,t.addClass("menu-item"),e.menu&&t.addClass("menu-item-expand"),("-"===t._text||"|"===t._text)&&(t.addClass("menu-item-sep"),t.aria("role","separator"),t.canFocus=!1,t._text="-"),e.selectable&&(t.aria("role","menuitemcheckbox"),t.aria("checked",!0),t.addClass("menu-item-checkbox"),e.icon="selected"),t.on("mousedown",function(e){e.preventDefault()}),t.on("mouseenter click",function(n){n.control===t&&(e.menu||"click"!==n.type?(t.showMenu(),n.keyboard&&setTimeout(function(){t.menu.items()[0].focus()},0)):(t.parent().hideAll(),t.fire("cancel"),t.fire("select")))}),e.menu&&t.aria("haspopup",!0)},hasMenus:function(){return!!this.settings.menu},showMenu:function(){var e=this,n=e.settings,r;e.parent().items().each(function(t){t!==e&&t.hideMenu()}),n.menu&&(e.menu?e.menu.show():(r=n.menu,r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.menu.reflow(),e.menu.fire("show"),e.menu.on("cancel",function(){e.focus()}),e.menu.on("hide",function(t){t.control===e.menu&&e.removeClass("selected")})),e.menu._parentMenu=e.parent(),e.menu.addClass("menu-sub"),e.menu.moveRel(e.getEl(),"tr-tl"),e.addClass("selected"),e.aria("expanded",!0))},hideMenu:function(){var e=this;return e.menu&&(e.menu.items().each(function(e){e.hideMenu&&e.hideMenu()}),e.menu.hide(),e.aria("expanded",!1)),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=e.encode(e._text),o=e.settings.icon;return o&&e.parent().addClass("menu-has-icons"),o=r+"ico "+r+"i-"+(e.settings.icon||"none"),'<div id="'+t+'" class="'+e.classes()+'" tabindex="-1">'+("-"!==i?'<i class="'+o+'"></i> ':"")+("-"!==i?'<span id="'+t+'-text" class="'+r+'text">'+i+"</span>":"")+(n.shortcut?'<div id="'+t+'-shortcut" class="'+r+'menu-shortcut">'+n.shortcut+"</div>":"")+(n.menu?'<div class="'+r+'caret"></div>':"")+"</div>" +},postRender:function(){var e=this,t=e.settings,n=t.textStyle;if("function"==typeof n&&(n=n()),n){var r=e.getEl("text");r&&r.setAttribute("style",n)}return e._super()},remove:function(){this._super(),this.menu&&this.menu.remove()}})}),r(qt,[X,J,Ut],function(e,n,r){var i=e.extend({Defaults:{defaultType:"menuitem",border:1,layout:"stack",role:"menu"},init:function(e){var t=this;e.autohide=!0,t._super(e),t.addClass("menu"),t.keyNav=new n({root:t,enableUpDown:!0,enableLeftRight:!0,leftAction:function(){t.parent()instanceof r&&t.keyNav.cancel()},onCancel:function(){t.fire("cancel",{},!1),t.hide()}})},repaint:function(){return this.toggleClass("menu-align",!0),this._super(),this.getEl().style.height="",this.getEl("body").style.height="",this},cancel:function(){var e=this;e.hideAll(),e.fire("cancel"),e.fire("select")},hideAll:function(){var e=this;return this.find("menuitem").exec("hideMenu"),e._super()},preRender:function(){var e=this;return e.items().each(function(n){var r=n.settings;return r.icon||r.selectable?(e._hasIcons=!0,!1):t}),e._super()}});return i}),r($t,[yt],function(e){return e.extend({Defaults:{classes:"radio",checked:!1},init:function(e){var t=this;t._super(e),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked()||(t.parent().items().filter("radio:checked").exec("checked",!1),t.checked(!0))}),t.checked(e.checked)},checked:function(e){var n=this;return e!==t?(e?n.addClass("checked"):n.removeClass("checked"),n._checked=e,n):n._checked},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'<div id="'+t+'" class="'+e.classes()+'" role="radio" unselectable="on">'+'<i class="'+n+"ico "+n+'radio"></i>'+e._text+"</div>"}})}),r(jt,[q],function(e){return e.extend({})}),r(Kt,[yt,$,z],function(e,t,n){return e.extend({renderHtml:function(){var e=this,t=e.classPrefix;return e.addClass("resizehandle"),e.settings.both&&e.addClass("resizehandle-both"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"><i class="'+t+"ico "+t+'i-resize"></i></div>'},postRender:function(){function e(e){return{width:e.clientWidth,height:e.clientHeight}}function r(t,r){var o,s,l,c,u=a.settings;o=a.getContainer(),s=a.getContentAreaContainer().firstChild,l=e(o),c=e(s),t=Math.max(u.min_width||100,t),r=Math.max(u.min_height||100,r),t=Math.min(u.max_width||65535,t),r=Math.min(u.max_height||65535,r),i.settings.both&&n.css(o,"width",t+(l.width-c.width)),n.css(o,"height",r+(l.height-c.height)),i.settings.both&&n.css(s,"width",t),n.css(s,"height",r),a.fire("ResizeEditor")}var i=this,o,a=i.settings.editor;i._super(),i.resizeDragHelper=new t(this._id,{start:function(){o=e(a.getContentAreaContainer().firstChild)},drag:function(e){r(o.width+e.deltaX,o.height+e.deltaY)},end:function(){}})}})}),r(Gt,[yt],function(e){return e.extend({renderHtml:function(){var e=this;return e.addClass("spacer"),e.canFocus=!1,'<div id="'+e._id+'" class="'+e.classes()+'"></div>'}})}),r(Yt,[zt,v],function(e,t){var n=t.DOM;return e.extend({Defaults:{classes:"widget btn splitbtn",role:"splitbutton"},repaint:function(){var e=this,t=e.getEl(),r=e.layoutRect(),i,o,a;return e._super(),i=t.firstChild,o=t.lastChild,n.css(i,{width:r.w-o.offsetWidth,height:r.h-2}),n.css(o,{height:r.h-2}),a=i.firstChild.style,a.width=a.height="100%",a=o.firstChild.style,a.width=a.height="100%",e},activeMenu:function(e){var t=this;n.toggleClass(t.getEl().lastChild,t.classPrefix+"active",e)},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"";return'<div id="'+t+'" class="'+e.classes()+'">'+'<button hidefocus tabindex="-1">'+(r?'<i class="'+r+'"></i>':"")+(e._text?(r?" ":"")+e._text:"")+"</button>"+'<button class="'+n+'open" hidefocus tabindex="-1">'+(e._menuBtnText?(r?" ":"")+e._menuBtnText:"")+' <i class="'+n+'caret"></i>'+"</button>"+"</div>"},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(e){e.control!=this||n.getParent(e.target,"."+this.classPrefix+"open")||(e.stopImmediatePropagation(),t.call(this,e))}),delete e.settings.onclick,e._super()}})}),r(Xt,[Mt],function(e){return e.extend({Defaults:{containerClass:"stack-layout",controlClass:"stack-layout-item",endClass:"break"}})}),r(Jt,[K,z],function(e,t){"use stict";return e.extend({lastIdx:0,Defaults:{layout:"absolute",defaults:{type:"panel"}},activateTab:function(e){this.activeTabId&&t.removeClass(this.getEl(this.activeTabId),this.classPrefix+"active"),this.activeTabId="t"+e,t.addClass(this.getEl("t"+e),this.classPrefix+"active"),e!=this.lastIdx&&(this.items()[this.lastIdx].hide(),this.lastIdx=e),this.items()[e].show().fire("showtab"),this.reflow()},renderHtml:function(){var e=this,t=e._layout,n="",r=e.classPrefix;return e.preRender(),t.preRender(e),e.items().each(function(t,i){n+='<div id="'+e._id+"-t"+i+'" class="'+r+'tab" unselectable="on">'+e.encode(t.settings.title)+"</div>"}),'<div id="'+e._id+'" class="'+e.classes()+'" hideFocus="1" tabIndex="-1">'+'<div id="'+e._id+'-head" class="'+r+'tabs">'+n+"</div>"+'<div id="'+e._id+'-body" class="'+e.classes("body")+'">'+t.renderHtml(e)+"</div>"+"</div>"},postRender:function(){var e=this;e._super(),e.settings.activeTab=e.settings.activeTab||0,e.activateTab(e.settings.activeTab),this.on("click",function(t){var n=t.target.parentNode;if(t.target.parentNode.id==e._id+"-head")for(var r=n.childNodes.length;r--;)n.childNodes[r]==t.target&&e.activateTab(r)})},initLayoutRect:function(){var e=this,t,n,r;n=r=0,e.items().each(function(t,i){n=Math.max(n,t.layoutRect().minW),r=Math.max(r,t.layoutRect().minH),e.settings.activeTab!=i&&t.hide()}),e.items().each(function(e){e.settings.x=0,e.settings.y=0,e.settings.w=n,e.settings.h=r,e.layoutRect({x:0,y:0,w:n,h:r})});var i=e.getEl("head").offsetHeight;return e.settings.minWidth=n,e.settings.minHeight=r+i,t=e._super(),t.deltaH+=e.getEl("head").offsetHeight,t.innerH=t.h-t.deltaH,t}})}),r(Qt,[yt,z],function(e,n){return e.extend({init:function(e){var n=this;n._super(e),n._value=e.value||"",n.addClass("textbox"),e.multiline?n.addClass("multiline"):n.on("keydown",function(e){13==e.keyCode&&n.parents().reverse().each(function(n){return e.preventDefault(),n.submit?(n.submit(),!1):t})})},value:function(e){var n=this;return e!==t?(n._value=e,n._rendered&&(n.getEl().value=e),n):n._rendered?n.getEl().value:n._value},repaint:function(){var e=this,t,n,r,i=0,o=0,a;return t=e.getEl().style,n=e._layoutRect,a=e._lastRepaintRect||{},r=e._borderBox,i=r.left+r.right+8,o=r.top+r.bottom+(e.settings.multiline?8:0),n.x!==a.x&&(t.left=n.x+"px",a.x=n.x),n.y!==a.y&&(t.top=n.y+"px",a.y=n.y),n.w!==a.w&&(t.width=n.w-i+"px",a.w=n.w),n.h!==a.h&&(t.height=n.h-o+"px",a.h=n.h),e._lastRepaintRect=a,e.fire("repaint",{},!1),e},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.encode(e._value,!1),i="";return"spellcheck"in n&&(i+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(i+=' maxlength="'+n.maxLength+'"'),n.size&&(i+=' size="'+n.size+'"'),n.subtype&&(i+=' type="'+n.subtype+'"'),n.multiline?'<textarea id="'+t+'" class="'+e.classes()+'" '+(n.rows?' rows="'+n.rows+'"':"")+' hidefocus="true"'+i+">"+r+"</textarea>":'<input id="'+t+'" class="'+e.classes()+'" value="'+r+'" hidefocus="true"'+i+">"},postRender:function(){var e=this;return n.on(e.getEl(),"change",function(t){e.fire("change",t)}),e._super()}})}),r(Zt,[z],function(e){return function(t){var n=this,r;n.show=function(i){return n.hide(),r=!0,window.setTimeout(function(){r&&t.appendChild(e.createFragment('<div class="mce-throbber"></div>'))},i||0),n},n.hide=function(){var e=t.lastChild;return e&&-1!=e.className.indexOf("throbber")&&e.parentNode.removeChild(e),r=!1,n}}}),a([l,c,u,d,f,p,h,m,g,v,y,b,C,x,w,_,N,E,k,S,T,R,A,B,L,H,M,D,P,O,I,F,W,z,V,U,q,$,j,K,G,Y,X,J,Q,Z,et,tt,nt,rt,it,ot,at,st,lt,ct,ut,dt,ft,pt,ht,mt,gt,vt,yt,bt,Ct,xt,wt,_t,Nt,Et,kt,St,Tt,Rt,At,Bt,Lt,Ht,Mt,Dt,Pt,Ot,It,Ft,Wt,zt,Vt,Ut,qt,$t,jt,Kt,Gt,Yt,Xt,Jt,Qt,Zt])})(this);
\ No newline at end of file diff --git a/97suifangqa/staticfiles/tinymce/js/tinymce/tinymce_init.js b/97suifangqa/staticfiles/tinymce/js/tinymce/tinymce_init.js new file mode 100644 index 0000000..0871074 --- /dev/null +++ b/97suifangqa/staticfiles/tinymce/js/tinymce/tinymce_init.js @@ -0,0 +1,14 @@ +tinymce.init({ + inline: true, + selector: "textarea", + plugins: [ + "advlist autolink lists link image charmap print preview anchor", + "searchreplace visualblocks code fullscreen", + "insertdatetime media table contextmenu paste " + ], + toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image", + resize:false, + width: 800, + language: "zh_CN", +}); + diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/common.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/common.css new file mode 100644 index 0000000..025cd14 --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/common.css @@ -0,0 +1,56 @@ +/* line 7, ../../../../../sass/sass-extensions/zen-grids/templates/project/common.scss */ +#skip-link { + margin: 0; +} +/* line 11, ../../../../../sass/sass-extensions/zen-grids/templates/project/common.scss */ +#skip-link a, +#skip-link a:visited { + display: block; + width: 100%; + padding: 2px 0 3px 0; + text-align: center; + background-color: #666; + color: #fff; +} + +/* line 27, ../../../../../sass/sass-extensions/zen-grids/templates/project/common.scss */ +#header, +#content, +#main-menu, +#aside1, +#aside2, +#footer { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + padding: 10px; +} + +/* line 38, ../../../../../sass/sass-extensions/zen-grids/templates/project/common.scss */ +#header, +#main-menu, +#aside2 { + border: 1px solid #ccc; +} + +/* line 43, ../../../../../sass/sass-extensions/zen-grids/templates/project/common.scss */ +#content, +#aside1, +#footer { + border: 1px solid #09f; +} + +/* line 49, ../../../../../sass/sass-extensions/zen-grids/templates/project/common.scss */ +header h1, +header h2 { + display: inline; +} + +/* line 52, ../../../../../sass/sass-extensions/zen-grids/templates/project/common.scss */ +header p { + display: inline; + text-transform: uppercase; + font-size: 0.8em; + color: #c00; +} diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/layout.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/layout.css new file mode 100644 index 0000000..87ea02d --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/layout.css @@ -0,0 +1,61 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 7 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss:7 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 7 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/styles.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/styles.css new file mode 100644 index 0000000..af7d6e0 --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/project/styles.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 7 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss + from line 3 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/styles.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss:7 +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/styles.scss:3 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 7 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/layout.scss\A from line 3 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/project/styles.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.css new file mode 100644 index 0000000..afbf69c --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-direction-flip.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.css new file mode 100644 index 0000000..f4e53aa --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-grid-item-width.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.css new file mode 100644 index 0000000..757402e --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-half-gutter.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.css new file mode 100644 index 0000000..d58dea4 --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/function-zen-unit-width.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.css new file mode 100644 index 0000000..c1bccea --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-clear.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.css new file mode 100644 index 0000000..5cf1d0a --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-float.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.css new file mode 100644 index 0000000..7aea253 --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-container.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.css new file mode 100644 index 0000000..a48495f --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-flow-item.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.css new file mode 100644 index 0000000..055371d --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item-base.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.css new file mode 100644 index 0000000..a7fae4b --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-grid-item.scss"; } diff --git a/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.css b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.css new file mode 100644 index 0000000..986f0b0 --- /dev/null +++ b/97suifangqa/stylesheets/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.css @@ -0,0 +1,63 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss + +1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 6 of /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss\A \A 1: /Users/maxwelllou/97suifangqa/sass/sass-extensions/zen-grids/templates/unit-tests/sass/zen-nested-container.scss"; } diff --git a/97suifangqa/stylesheets/sass/blocks.css b/97suifangqa/stylesheets/sass/blocks.css new file mode 100644 index 0000000..85e632b --- /dev/null +++ b/97suifangqa/stylesheets/sass/blocks.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/blocks.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/blocks.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/blocks.scss"; } diff --git a/97suifangqa/stylesheets/sass/blog.css b/97suifangqa/stylesheets/sass/blog.css new file mode 100644 index 0000000..da59acf --- /dev/null +++ b/97suifangqa/stylesheets/sass/blog.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 7 of /Users/maxwelllou/97suifangqa/sass/sass/blog.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/blog.scss:7 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 7 of /Users/maxwelllou/97suifangqa/sass/sass/blog.scss"; } diff --git a/97suifangqa/stylesheets/sass/comments.css b/97suifangqa/stylesheets/sass/comments.css new file mode 100644 index 0000000..a6f2990 --- /dev/null +++ b/97suifangqa/stylesheets/sass/comments.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/comments.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/comments.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/comments.scss"; } diff --git a/97suifangqa/stylesheets/sass/elements.css b/97suifangqa/stylesheets/sass/elements.css new file mode 100644 index 0000000..dc42e5e --- /dev/null +++ b/97suifangqa/stylesheets/sass/elements.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/elements.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/elements.scss:8 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/elements.scss"; } diff --git a/97suifangqa/stylesheets/sass/fields.css b/97suifangqa/stylesheets/sass/fields.css new file mode 100644 index 0000000..dffb796 --- /dev/null +++ b/97suifangqa/stylesheets/sass/fields.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 14 of /Users/maxwelllou/97suifangqa/sass/sass/fields.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/fields.scss:14 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 14 of /Users/maxwelllou/97suifangqa/sass/sass/fields.scss"; } diff --git a/97suifangqa/stylesheets/sass/forms-rtl.css b/97suifangqa/stylesheets/sass/forms-rtl.css new file mode 100644 index 0000000..4b49924 --- /dev/null +++ b/97suifangqa/stylesheets/sass/forms-rtl.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/forms-rtl.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/forms-rtl.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/forms-rtl.scss"; } diff --git a/97suifangqa/stylesheets/sass/forms.css b/97suifangqa/stylesheets/sass/forms.css new file mode 100644 index 0000000..8ea92e2 --- /dev/null +++ b/97suifangqa/stylesheets/sass/forms.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/forms.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/forms.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/forms.scss"; } diff --git a/97suifangqa/stylesheets/sass/layouts/content-layout.css b/97suifangqa/stylesheets/sass/layouts/content-layout.css new file mode 100644 index 0000000..3a9005d --- /dev/null +++ b/97suifangqa/stylesheets/sass/layouts/content-layout.css @@ -0,0 +1,61 @@ +/* +Syntax error: File to import not found or unreadable: base. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 9 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/content-layout.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/layouts/content-layout.scss:9 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: base.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 9 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/content-layout.scss"; } diff --git a/97suifangqa/stylesheets/sass/layouts/fixed-width-rtl.css b/97suifangqa/stylesheets/sass/layouts/fixed-width-rtl.css new file mode 100644 index 0000000..5c023fe --- /dev/null +++ b/97suifangqa/stylesheets/sass/layouts/fixed-width-rtl.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: base. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width.scss + from line 11 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width-rtl.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width.scss:12 +/Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width-rtl.scss:11 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: base.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width.scss\A from line 11 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width-rtl.scss"; } diff --git a/97suifangqa/stylesheets/sass/layouts/fixed-width.css b/97suifangqa/stylesheets/sass/layouts/fixed-width.css new file mode 100644 index 0000000..97c8c95 --- /dev/null +++ b/97suifangqa/stylesheets/sass/layouts/fixed-width.css @@ -0,0 +1,61 @@ +/* +Syntax error: File to import not found or unreadable: base. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width.scss:12 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: base.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/fixed-width.scss"; } diff --git a/97suifangqa/stylesheets/sass/layouts/responsive-sidebars-rtl.css b/97suifangqa/stylesheets/sass/layouts/responsive-sidebars-rtl.css new file mode 100644 index 0000000..10b18c4 --- /dev/null +++ b/97suifangqa/stylesheets/sass/layouts/responsive-sidebars-rtl.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: base. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars.scss + from line 11 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars-rtl.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars.scss:12 +/Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars-rtl.scss:11 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: base.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars.scss\A from line 11 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars-rtl.scss"; } diff --git a/97suifangqa/stylesheets/sass/layouts/responsive-sidebars.css b/97suifangqa/stylesheets/sass/layouts/responsive-sidebars.css new file mode 100644 index 0000000..1c6149b --- /dev/null +++ b/97suifangqa/stylesheets/sass/layouts/responsive-sidebars.css @@ -0,0 +1,61 @@ +/* +Syntax error: File to import not found or unreadable: base. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars.scss:12 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: base.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 12 of /Users/maxwelllou/97suifangqa/sass/sass/layouts/responsive-sidebars.scss"; } diff --git a/97suifangqa/stylesheets/sass/navigation-rtl.css b/97suifangqa/stylesheets/sass/navigation-rtl.css new file mode 100644 index 0000000..f42b066 --- /dev/null +++ b/97suifangqa/stylesheets/sass/navigation-rtl.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/navigation-rtl.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/navigation-rtl.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/navigation-rtl.scss"; } diff --git a/97suifangqa/stylesheets/sass/navigation.css b/97suifangqa/stylesheets/sass/navigation.css new file mode 100644 index 0000000..07fc5b7 --- /dev/null +++ b/97suifangqa/stylesheets/sass/navigation.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/navigation.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/navigation.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/navigation.scss"; } diff --git a/97suifangqa/stylesheets/sass/nodes.css b/97suifangqa/stylesheets/sass/nodes.css new file mode 100644 index 0000000..9613f03 --- /dev/null +++ b/97suifangqa/stylesheets/sass/nodes.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/nodes.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/nodes.scss:8 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/nodes.scss"; } diff --git a/97suifangqa/stylesheets/sass/normalize-rtl.css b/97suifangqa/stylesheets/sass/normalize-rtl.css new file mode 100644 index 0000000..cc29fbf --- /dev/null +++ b/97suifangqa/stylesheets/sass/normalize-rtl.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 3 of /Users/maxwelllou/97suifangqa/sass/sass/normalize-rtl.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/normalize-rtl.scss:3 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 3 of /Users/maxwelllou/97suifangqa/sass/sass/normalize-rtl.scss"; } diff --git a/97suifangqa/stylesheets/sass/normalize.css b/97suifangqa/stylesheets/sass/normalize.css new file mode 100644 index 0000000..b05963a --- /dev/null +++ b/97suifangqa/stylesheets/sass/normalize.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 15 of /Users/maxwelllou/97suifangqa/sass/sass/normalize.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/normalize.scss:15 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 15 of /Users/maxwelllou/97suifangqa/sass/sass/normalize.scss"; } diff --git a/97suifangqa/stylesheets/sass/pages-rtl.css b/97suifangqa/stylesheets/sass/pages-rtl.css new file mode 100644 index 0000000..26c6e9c --- /dev/null +++ b/97suifangqa/stylesheets/sass/pages-rtl.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/pages-rtl.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/pages-rtl.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/pages-rtl.scss"; } diff --git a/97suifangqa/stylesheets/sass/pages.css b/97suifangqa/stylesheets/sass/pages.css new file mode 100644 index 0000000..50b0aba --- /dev/null +++ b/97suifangqa/stylesheets/sass/pages.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 10 of /Users/maxwelllou/97suifangqa/sass/sass/pages.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/pages.scss:10 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 10 of /Users/maxwelllou/97suifangqa/sass/sass/pages.scss"; } diff --git a/97suifangqa/stylesheets/sass/print.css b/97suifangqa/stylesheets/sass/print.css new file mode 100644 index 0000000..6745326 --- /dev/null +++ b/97suifangqa/stylesheets/sass/print.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/print.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/print.scss:8 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/print.scss"; } diff --git a/97suifangqa/stylesheets/sass/tabs-rtl.css b/97suifangqa/stylesheets/sass/tabs-rtl.css new file mode 100644 index 0000000..14662d5 --- /dev/null +++ b/97suifangqa/stylesheets/sass/tabs-rtl.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/tabs-rtl.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/tabs-rtl.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/tabs-rtl.scss"; } diff --git a/97suifangqa/stylesheets/sass/tabs.css b/97suifangqa/stylesheets/sass/tabs.css new file mode 100644 index 0000000..8547e20 --- /dev/null +++ b/97suifangqa/stylesheets/sass/tabs.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 11 of /Users/maxwelllou/97suifangqa/sass/sass/tabs.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/tabs.scss:11 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 11 of /Users/maxwelllou/97suifangqa/sass/sass/tabs.scss"; } diff --git a/97suifangqa/stylesheets/sass/views-styles.css b/97suifangqa/stylesheets/sass/views-styles.css new file mode 100644 index 0000000..709a509 --- /dev/null +++ b/97suifangqa/stylesheets/sass/views-styles.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/views-styles.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/views-styles.scss:6 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 6 of /Users/maxwelllou/97suifangqa/sass/sass/views-styles.scss"; } diff --git a/97suifangqa/stylesheets/sass/wireframes.css b/97suifangqa/stylesheets/sass/wireframes.css new file mode 100644 index 0000000..31addb3 --- /dev/null +++ b/97suifangqa/stylesheets/sass/wireframes.css @@ -0,0 +1,69 @@ +/* +Syntax error: File to import not found or unreadable: zen. + Load paths: + /Users/maxwelllou/97suifangqa/sass + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets + /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets + Compass::SpriteImporter + on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss + from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/wireframes.scss + +Backtrace: +/Users/maxwelllou/97suifangqa/sass/sass/_base.scss:114 +/Users/maxwelllou/97suifangqa/sass/sass/wireframes.scss:8 +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:67:in `import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:28:in `imported_file' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/import_node.rb:37:in `css_import?' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:217:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:227:in `visit_import' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `map' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:53:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:109:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:121:in `with_environment' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:108:in `visit_children' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:128:in `visit_root' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/base.rb:37:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:100:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `send' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/visitors/perform.rb:7:in `visit' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/tree/root_node.rb:20:in `render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:315:in `_render' +/Library/Ruby/Gems/1.8/gems/sass-3.2.9/lib/sass/../sass/engine.rb:262:in `render' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:140:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:139:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/logger.rb:45:in `red' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:138:in `compile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:118:in `compile_if_required' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:103:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `each' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:101:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:126:in `timed' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/compiler.rb:100:in `run' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:147:in `recompile' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/watch_project.rb:68:in `perform' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/base.rb:18:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/commands/project_base.rb:19:in `execute' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:43:in `perform!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/lib/compass/exec/sub_command_ui.rb:15:in `run!' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:30 +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44:in `call' +/Library/Ruby/Gems/1.8/gems/compass-0.12.2/bin/compass:44 +/usr/bin/compass:19:in `load' +/usr/bin/compass:19 +*/ +body:before { + white-space: pre; + font-family: monospace; + content: "Syntax error: File to import not found or unreadable: zen.\A Load paths:\A /Users/maxwelllou/97suifangqa/sass\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/blueprint/stylesheets\A /Library/Ruby/Gems/1.8/gems/compass-0.12.2/frameworks/compass/stylesheets\A Compass::SpriteImporter\A on line 114 of /Users/maxwelllou/97suifangqa/sass/sass/_base.scss\A from line 8 of /Users/maxwelllou/97suifangqa/sass/sass/wireframes.scss"; } diff --git a/97suifangqa/templates/404.html b/97suifangqa/templates/404.html new file mode 100644 index 0000000..08f9af4 --- /dev/null +++ b/97suifangqa/templates/404.html @@ -0,0 +1,5 @@ +{% extends "picture-base.html" %}
+{% block bodyclasses %}{{ block.super }} page-not-found{% endblock %}
+{% block body %}
+ <div class="message">发生了一点错误,点击<a href="/blog/index">离开</a>返回首页吧。</div>
+{% endblock %}
\ No newline at end of file diff --git a/97suifangqa/templates/base-left-right.html b/97suifangqa/templates/base-left-right.html new file mode 100644 index 0000000..7baa00b --- /dev/null +++ b/97suifangqa/templates/base-left-right.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% block body %} +{% block top %} +{% endblock %} + <div class="left_slide"> + {% block leftside %} + {% endblock %} + </div> + <div class="right_slide"> + {% block rightside %} + {% endblock %} + </div> +{% endblock %} diff --git a/97suifangqa/templates/base.html b/97suifangqa/templates/base.html new file mode 100644 index 0000000..9637182 --- /dev/null +++ b/97suifangqa/templates/base.html @@ -0,0 +1,96 @@ +<!doctype html> +{% load staticfiles %} +{#-- https://github.com/paulirish/html5-boilerplate/blob/master/index.html -#} +{#-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -#} +{% comment %} + @note Justification for lang="en" + @author Zhao Yichen + @date 2013-5-22 + If you set lang="zh", lang="" or anything that's not lang="en", and set a global font-family with Chinese fonts, all English letters would also have the Chinese fonts applied, regardless of the order of appearance in the font-family fallback list. + + @note Conditional html elements + @author Zhao Yichen + @date 2013-5-22 + These elements are taken directly from the default Hyde (python tool) template. They are used for conditional css rules. + .ie means the browser is any Internet Explorer, except 10 + .ie7 means IE 7 + .ie8 means IE 8 + Other versions of IE (9 and up) do not have serious standards compliant problems. +{% endcomment %} +<!--[if lt IE 7 ]> <html lang="en" class="no-js ie"> <![endif]--> +<!--[if IE 7 ]> <html lang="en" class="no-js ie7 ie"> <![endif]--> +<!--[if IE 8 ]> <html lang="en" class="no-js ie8 ie"> <![endif]--> +<!--[if (gte IE 9)|!(IE)]><!--> <html lang="en" class="no-js"> <!--<![endif]--> + <head> + <meta charset="utf-8"> + <meta http-equiv="content-type" content="text/html; charset=utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge" /> + <title>{% block title %}97 随访{% endblock %}</title> + {% block css %} + <link rel="stylesheet" href="{% static "stylesheets/base.css" %}"> + {% block othercss %}{% endblock %} + {% endblock %} + <!-- HTML5 shim, for IE6-8 support of HTML5 elements --> + <!--[if lt IE 9]> + <script type="text/javascript" src="{% static "javascripts/html5shiv.js" %}"></script> + <script type="text/javascript" src="{% static "javascripts/css3-mediaqueries.js" %}"></script> + <script type="text/javascript" src="{% static "javascripts/respond.min.js" %}"></script> + <![endif]--> + + {% block favicons %} + <!-- Fav and touch icons --> + <link rel="apple-touch-icon-precomposed" sizes="144x144" href="{% static "images/apple-touch-icon-144-precomposed.png" %}"> + <link rel="apple-touch-icon-precomposed" sizes="114x114" href="{% static "images/apple-touch-icon-114-precomposed.png" %}"> + <link rel="apple-touch-icon-precomposed" sizes="72x72" href="{% static "images/apple-touch-icon-72-precomposed.png" %}"> + <link rel="apple-touch-icon-precomposed" href="{% static "images/apple-touch-icon-57-precomposed.png" %}"> + <link rel="shortcut icon" href="{% static "images/favicon.png" %}"> + {% endblock favicons %} + + {% block headjs %}{% endblock %} + {% block endhead %}{% endblock %} + </head> + + <body class="{% if user.is_authenticated %}logged-in{% else %}not-logged-in{% endif %} {% block bodyclasses %}{% endblock %}"> + {% block page %} + <div id="page"> + <div id="main" role="main"> + {% block before_content %}{% endblock %} + <section id="content" class="content"> + <div class="region-wrap"> + {% block body %} + {% endblock %} + </div> + </section> + {% block sidebar_first %}{% endblock %} + {% block sidebar_second %}{% endblock %} + {% block after_content %}{% endblock %} + </div> + <div class="modal-dialog-box" id="modal-dialog-box"> + <div class="close-box"></div> + <div class="content-wrap"></div> + </div> + <div class="image-enlargement-box" id="image-enlargement-box"> + <img src="{% static "images/loading.gif" %}" alt="" class="loading-image"> + <div class="image-container"></div> + </div> + <div class="modal-page-overlay hidden" id="modal-page-overlay"></div> + </div> + {% endblock page %} + + {% block js %} + {% block jquery %} + <script src="{% static "javascripts/jquery-1.9.1.min.js" %}"></script> + {% endblock %} + + {% block scripts %} + <script type="text/javascript" src="{% static "javascripts/jquery.waitforimages.min.js" %}"></script> + <script type="text/javascript" src="{% static "javascripts/jquery.placeholder.min.js" %}"></script> + <script type="text/javascript" src="{% static "javascripts/main.js" %}"></script> + <script type="text/javascript"> + $('input, textarea').placeholder(); + </script> + {% block otherscripts %}{% endblock %} + {% endblock scripts %} + {% endblock js %} + </body> +</html> diff --git a/97suifangqa/templates/footer.html b/97suifangqa/templates/footer.html new file mode 100644 index 0000000..bb97506 --- /dev/null +++ b/97suifangqa/templates/footer.html @@ -0,0 +1,3 @@ + +<div id="footer"> +</div>
\ No newline at end of file diff --git a/97suifangqa/templates/header.html b/97suifangqa/templates/header.html new file mode 100644 index 0000000..dc43a85 --- /dev/null +++ b/97suifangqa/templates/header.html @@ -0,0 +1,2 @@ + +<div id="header"></div>
\ No newline at end of file diff --git a/97suifangqa/templates/index.html b/97suifangqa/templates/index.html new file mode 100644 index 0000000..32770bd --- /dev/null +++ b/97suifangqa/templates/index.html @@ -0,0 +1,41 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="utf-8"> + <title>已完成页面</title> +<style type="text/css"> + div.pagelist { + width: 800px; + margin-left: auto; + margin-right: auto; + margin-top: 100px; + } + + li.done { + text-color: green; + } + + li.todo { + text-color: red; + } +</style> +</head> + +<body> +<div class="pagelist"> + 已完成页面: +<ul> + <li class="done"><a href="/admin">管理界面</a></li> + <li class="done"><a href="{% url sciblog.views.blog_index %}">搜索首页</a></li> + <li class="done"><a href="{% url list_blogs %}">文章列表</a></li> + <li class="done"><a href="{% url blog_detail 1%}">文章详细信息显示</a></li> + <li class="todo"><a href="{% url login %}">登录页面</a></li> + <li class="todo"><a href="{% url logout %}">登出页面</a></li> + <li class="todo"><a href="{% url signup %}">注册界面</a></li> +</ul> + 待完成页面: +<ul> +</ul> +</div> +</body> +</html> diff --git a/97suifangqa/templates/login-menu.inc.html b/97suifangqa/templates/login-menu.inc.html new file mode 100644 index 0000000..63058fe --- /dev/null +++ b/97suifangqa/templates/login-menu.inc.html @@ -0,0 +1,24 @@ +{% load staticfiles %} +{% if user.is_authenticated %} +<nav id="login" class="logged-in"> + <span class="drop-down-area"> + <span class="user-name">{{ user.username }}</span> + <img src="{% static "images/icon_down.png" %}" alt="" class="drop-down-menu-button"> + </span> + <div class="drop-down-menu"> + <div class="text-pointer"></div> + <ul class="links"> + <!--li><a href="">修改密码</a></li> + <li><a href="">完善信息</a></li--> + <li class="last"><a href="{% url logout %}?next={{ request.path }}">退出</a></li> + </ul> + </div> +</nav> +{% else %} +<nav id="login" class="not-logged-in"> + <ul class="links inline"> + <li class="first"><a href="{% url login %}?next={{ request.path }}">登录</a></li> + <li class="last"><a href="{% url signup %}?next={{ request.path }}">注册</a></li> + </ul> +</nav> +{% endif %} diff --git a/97suifangqa/templates/picture-base.html b/97suifangqa/templates/picture-base.html new file mode 100644 index 0000000..087d890 --- /dev/null +++ b/97suifangqa/templates/picture-base.html @@ -0,0 +1,18 @@ +{% extends "base.html" %}
+{% load staticfiles %}
+{% block bodyclasses %}{{ block.super }} sidebar-first picture-base left-picture{% endblock %}
+{% block sidebar_first %}
+<aside id="sidebar-first" class="region-sidebar-first">
+ <div class="background"></div>
+ {% block sidebar_first_content %}{% endblock %}
+ <header id="header">
+ <div id="logo">
+ {% block logo %}
+ <img src="{% static "images/logo-overlay-white.png" %}" alt="">
+ {% endblock %}
+ </div>
+ </header>
+</aside>
+{% endblock %}
+{% block body %}
+{% endblock %}
\ No newline at end of file diff --git a/97suifangqa/templates/profile/person-info.html b/97suifangqa/templates/profile/person-info.html new file mode 100644 index 0000000..0d7d7bc --- /dev/null +++ b/97suifangqa/templates/profile/person-info.html @@ -0,0 +1,11 @@ +<div class="signuptop black"><a href="sign.html" class="sign black">注册</a>|<a href="login.html" class="login black">登陆</a></div> +<div class="personal"><img id="userPhoto" src="/static/images/userPhoto.jpg"> + <div id="userLevel">99</div> + <div id="userName" class="black">Maxwell_Lou</div> + <div id="btn_down"></div> +</div> +<div class="personalcenter"> + <div class="hd"></div> + <div class="bm"><a href="#">修改密码</a><a href="#">完善信息</a><a href="#">绑定手机</a><a href="#" class="last">退出</a></div> + <div class="bd"></div> +</div> diff --git a/97suifangqa/templates/registration/login.html b/97suifangqa/templates/registration/login.html new file mode 100644 index 0000000..d0e98fc --- /dev/null +++ b/97suifangqa/templates/registration/login.html @@ -0,0 +1,47 @@ +{% extends "picture-base.html" %} +{% load staticfiles %} +{% block bodyclasses %}{{ block.super }} registration login{% endblock %} +{% block othercss %} +<link rel="stylesheet" href="{% static "stylesheets/sass/registration.css" %}"> +{% endblock %} +{% block body %} +<h2>登录97随访 科学了解乙肝治疗</h2> +<p></p> +<p> + <img src="{% static "images/sinalogo.png" %}" alt="" style="width: 2.5em; vertical-align: middle;"> + 新浪微博账号登录 +</p> + + +<p> + <img src="{% static "images/qqlogo.png" %}" alt="" style="width: 2.5em; vertical-align: middle;"> + 腾讯QQ账号登录 +</p> + +<form method="post">{% csrf_token %} + + <table class="reg-form login-form"> + <tr> + <td class="login-prompt"> + <span class="prompt">或者直接用邮箱登陆</span> + </td> + <td></td> + </tr> + <tr> + <td> + <input type="text" name="{{ form.username.name }}" value="{{ form.username.value|default_if_none:"" }}" maxlength="80" placeholder="{{ form.username.label }}" class="username "> + </td> + <td rowspan="2" class="error"> + {{form.non_field_errors|first}} + </td> + </tr> + <tr> + <td><input type="password" name="{{ form.password.name }}" placeholder="{{ form.password.label }}" class="password"></td> + </tr> + </table> + + <input type="hidden" name="next" value="{{ next }}" /> + <input type="submit" value="登 录" class="submit login"/>   |   + <a href="{% url profile.views.signup %}">还没有帐号?</a> +</form> +{% endblock body%} diff --git a/97suifangqa/templates/registration/logout.html b/97suifangqa/templates/registration/logout.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/logout.html diff --git a/97suifangqa/templates/registration/password_change_done.html b/97suifangqa/templates/registration/password_change_done.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_change_done.html diff --git a/97suifangqa/templates/registration/password_change_form.html b/97suifangqa/templates/registration/password_change_form.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_change_form.html diff --git a/97suifangqa/templates/registration/password_reset_complete.html b/97suifangqa/templates/registration/password_reset_complete.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_reset_complete.html diff --git a/97suifangqa/templates/registration/password_reset_confirm.html b/97suifangqa/templates/registration/password_reset_confirm.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_reset_confirm.html diff --git a/97suifangqa/templates/registration/password_reset_done.html b/97suifangqa/templates/registration/password_reset_done.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_reset_done.html diff --git a/97suifangqa/templates/registration/password_reset_email.html b/97suifangqa/templates/registration/password_reset_email.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_reset_email.html diff --git a/97suifangqa/templates/registration/password_reset_form.html b/97suifangqa/templates/registration/password_reset_form.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_reset_form.html diff --git a/97suifangqa/templates/registration/password_reset_subject.txt b/97suifangqa/templates/registration/password_reset_subject.txt new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templates/registration/password_reset_subject.txt diff --git a/97suifangqa/templates/registration/signup.html b/97suifangqa/templates/registration/signup.html new file mode 100644 index 0000000..935dde2 --- /dev/null +++ b/97suifangqa/templates/registration/signup.html @@ -0,0 +1,24 @@ +{% extends "picture-base.html" %} +{% load staticfiles %} +{% block bodyclasses %}{{ block.super }} registration signup{% endblock %} +{% block othercss %} +<link rel="stylesheet" href="{% static "stylesheets/sass/registration.css" %}"> +{% endblock %} +{% block body %} +<h2>注册97随访 科学了解乙肝治疗</h2> +<form method="post">{% csrf_token %} + <table class="reg-form register-form"> + {% for item in form %} + <tr> + <td> + <input type="{{ item.field.widget.input_type }}" name="{{ item.name }}" {% if item.field.widget.input_type == "text" %}value="{{ item.value|default_if_none:"" }}"{% endif %} placeholder="{{ item.label }}" class="{{ item.name }}"> + </td> + <td class="error">{{ item.errors|join:"" }}</td> + </tr> + {% endfor %} + </table> + + <input type="submit" value="注册完毕" class="submit register"/>   | +   <a href="{% url apps.profile.views.login %}">已有账号</a> +</form> +{% endblock body %} diff --git a/97suifangqa/templates/sciblog/blog_detail.html b/97suifangqa/templates/sciblog/blog_detail.html new file mode 100644 index 0000000..d9e53c9 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail.html @@ -0,0 +1,245 @@ +{% extends "base.html" %} +{% load staticfiles %} +{% block bodyclasses %}{{ block.super }} two-sidebars blog blog-details{% endblock %} +{% block othercss %} +<link rel="stylesheet" href="{% static "stylesheets/sass/blog.css" %}"> +{% endblock %} +{% block sidebar_first %} +<aside id="sidebar-first" class="region-sidebar-first"> + {% include "sciblog/nav-ribbon.html" %} + <div class="post-question"> + {% include "sciblog/blog_search_form.html" %} + </div> + <div class="related-questions"> + <h3>关联问题</h3> + {% for query in blog.query.all %} + <div><a href="{% url query_blogs %}?q={{ query.content }}" title="查询与此问题相关的文章">{{ query.content }}</a></div> + {% endfor %} + </div> + <div class="toc"> + <h3 class="toc-title">目 录</h3> + <ul class="links"> + <li class="{% if blockid == 'source' %}active{% endif %}"> + <a href="{% url blog_detail blog.id 'source'%}">文章来源</a> + </li> + <li class="{% if blockid == 'abstract' %}active{% endif %}"> + <a href="{% url blog_detail blog.id 'abstract'%}">文章简读</a> + </li> + <li class="{% if blockid == 'knowledge' %}active{% endif %}"> + <a href="{% url blog_detail blog.id 'knowledge'%}">科普扫盲</a> + </li> + <li class="{% if blockid == 'follow' %}active{% endif %}"> + <a href="{% url blog_detail blog.id 'follow'%}">随访与用药</a> + </li> + <li class="{% if blockid == 'results' %}active{% endif %}"> + <a href="{% url blog_detail blog.id 'results'%}">治疗结果</a> + </li> + <li class="{% if blockid == 'comment' %}active{% endif %}"> + <a href="{% url blog_detail blog.id 'comment'%}">学者科学评论</a> + </li> + <li class="{% if blockid == 'refrences' %}active{% endif %}"> + <a href="{% url blog_detail blog.id 'refrences'%}">参考信息</a> + </li> + </ul> + </div> + <header id="header"> + <div id="logo"> + <img src="{% static "images/slilogo.png" %}" alt=""> + </div> + </header> +</aside> +{% endblock %} +{% block sidebar_second %} +<aside id="sidebar-second" class="region-sidebar-second"> + {% include "login-menu.inc.html" %} + <nav class="social"> + <!-- Below are CSS-worthy structures. Styling incomplete, but you may start filling data --> + <ul class="buttons inline"> + <li> + <button class="multi-segment-button action-button grey-button" id="like-button" title="收藏整篇文章" target-url="{% url blog_collect blog.id %}"> + {% if collected %} + <div class="segment first like-button deaction">  收藏</div> + <div class="segment first unlike-button action">不收藏</div> + {% else %} + <div class="segment first like-button action">  收藏</div> + <div class="segment first unlike-button deaction">不收藏</div> + {% endif %} + <div class="segment last count">{{ blog.collected_by.count }}</div> + </button> + </li> + <li> + <button class="multi-segment-button action-button" id="no-idea-button" title="看不懂这篇文章" target-url="{% url blog_understood blog.id %}"> + {% if understood %} + <div class="segment first no-idea-button action">  不懂</div> + <div class="segment first idea-button deaction">看懂了</div> + {% else %} + <div class="segment first no-idea-button deaction">  不懂</div> + <div class="segment first idea-button action">看懂了</div> + {% endif %} + <div class="segment last count">{{ blog.catched_by.count }}</div> + </button> + </li> + </ul> + </nav> + <div id="card-abstract"></div> + <div class="lists-container"> + <nav class="comments expandable expanded" data-expand-group-selector="#sidebar-second .lists-container nav"> + <h4 class="expand-heading">段落注释</h4> + <ol class="expand-container jargon-links" id="paracomments-list"> + </ol> + </nav> + <nav class="jargon-list expandable" data-expand-group-selector="#sidebar-second .lists-container nav"> + <h4 class="expand-heading">专业名词</h4> + <ul class="expand-container jargon-links" id="propernouns-list"> + </ul> + </nav> + </div> +</aside> +{% endblock %} +{% block before_content %} +<section id="blog-top-nav" class="blog-top-nav content"> + <div class="region-wrap"> + <div class="background"></div> + <div class="breadcrumb"> + <ul class="links inline"> + <!--li><a href="" class="button dark-grey-button first">更多文章</a></li--> + <li><a id="return-to-results-button" href="{% url blog_detail blog.id 'results'%}" class="button dark-grey-button">返回治疗结果</a></li> + </ul> + </div> + <h1 class="blog-title">{{ blog.subhead }}</h1> + <h2 class="section-name">{% block sectionname %}临床策略{% endblock %}</h2> + <!-- if firstSection --> + {% block navigation %} + <nav role="navigation" class="section-nav"> + <ul class="links inline"> + <li><a href="#methods" class="active">治疗手段</a></li> + <li><a href="#objectives">目标</a></li> + <li><a href="">结果简述</a></li> + <li><a href="">副作用</a></li> + <li><a href="">本文结论</a></li> + </ul> + </nav> + {% endblock %} + <!-- endif --> + </div> +</section> +{% endblock %} +{% block body %} + <!-- if not cards --> + <div class="text jargons"> + {% autoescape off %} + {% block block_pieces %} + {% endblock %} + {% endautoescape %} + {% block explanations %} + <div class="jargon-explanations"> + <div class="jargon-explanation" data-key=""> + <h3 class="name"></h3> + <div class="jargon-details"> + </div> + </div> + </div> + {% endblock %} + <div class="page-expand"></div> + </div> + <div class="jargon-explanation-box"> + <div class="text-pointer"></div> + <div class="close-box"></div> + <img src="{% static "images/loading.gif" %}" alt="" class="loading-image"> + <div class="content-wrap"> + <h3 class="name"></h3> + <div class="jargon-details"></div> + </div> + {% if user.is_authenticated %} + <a class="button like-button grey-button collect"><img src="{% static "images/grey-heart.png" %}" alt="">收藏该条注释</a> + {% else %} + <div class="button like-button disabled grey-button" disabled="disabled"><a href="{% url login %}?next={{ request.path }}" class="login-button">登陆</a>97随访网站搜索此条目</div> + {% endif %} + </div> + <!-- else --> + <!-- for ... --> + <div id="back-to-top-button" title="返回顶部"></div> + <div id="related-questions-confirm" class="dialog-content confirm-dialog"> + <p>我们将要帮您重新搜索医学文章,会离开本文页面,您确定吗?</p> + <div class="controls"> + <button class="dialog-ok">确认</button> + + <button class="dialog-cancel grey-button">取消</button> + </div> + </div> + <div id="like-button-login-confirm" class="dialog-content confirm-dialog"> + <p>需要登陆才能够收藏文章。但这将离开此页面,确定离开?</p> + <div class="controls"> + <button class="dialog-ok">确认</button> + + <button class="dialog-cancel grey-button">取消</button> + </div> + </div> + <div id="no-idea-button-login-confirm" class="dialog-content confirm-dialog"> + <p>需要登陆才能让我们知道您没有看懂此文。但这将离开此页面,确定离开?</p> + <div class="controls"> + <button class="dialog-ok">确认</button> + + <button class="dialog-cancel grey-button">取消</button> + </div> + </div> + <!-- endfor --> + <!-- endif --> +{% endblock %} +{% block scripts %} +{{ block.super }} +<script type="text/javascript" src="{% static "javascripts/jargon-display.js" %}"></script> +<script type="text/javascript"> +$(document).ready(function() { + /* + * list all the annotations and markup the proper nouns + */ + + var annotations= {{ annotations|safe}}; + jargon_display(annotations); + }) +</script> +<script type="text/javascript"> + $(function(){ + var activeUrl = null; + $(".dialog-ok").click(function() { + location.href = activeUrl; + }) + $(".dialog-cancel").click(function() { + $.modalHide(); + }) + $("#sidebar-first .related-questions a").click(function(e) { + e.preventDefault(); + e.stopPropagation(); + activeUrl = $(this).attr('href'); + + $("#related-questions-confirm").modalShow(); + }) + $("body.not-logged-in").find("#no-idea-button,#like-button").click(function(e) { + e.preventDefault(); + e.stopPropagation(); + activeUrl = ""; // login url + $("#" + $(this).attr('id') + "-login-confirm").modalShow(); + }) + }); + + $(document).ready(function(){ + $('button.action-button').click(function(){ + var button = $(this); + var url = button.attr('target-url'); + + $.ajax({ + url:url, + dataType:'json', + success: function(data) { + if (data.error) { + return; + } + $('.count', button).text(data.times); + button.toggleClass('acted'); + } + }); + }); + }); +</script> +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_abstract.html b/97suifangqa/templates/sciblog/blog_detail_abstract.html new file mode 100644 index 0000000..03a00f3 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_abstract.html @@ -0,0 +1,35 @@ +{% extends "sciblog/blog_detail.html" %} + +{% block sectionname %} +文章简读 +{% endblock %} + +{% block navigation %} +<nav role="navigation" class="section-nav"> + <ul class="links inline"> + <li><a href="#methods" class="active">治疗方案</a></li> + <li><a href="#objectives">研究目标</a></li> + <li><a href="#abstract_result">结果简述</a></li> + <li><a href="#side_effect">副作用</a></li> + <li><a href="#conclusion">本文结论</a></li> + </ul> +</nav> +{% endblock %} + +{% block block_pieces %} +<a href="" id="methods"></a> +<h3>治疗手段</h3> +<p>{{ blog.method }}</p> +<a href="" id="objectives"></a> +<h3>研究目标</h3> +<p>{{ blog.aim }}</p> +<a href="" id="abstract_result"></a> +<h3>结果简述</h3> +<p>{{ blog.abstract_result }}</p> +<a href="" id="side_effect"></a> +<h3>副作用</h3> +<p>{{ blog.abstractAE }}</p> +<a href="" id="conclusion"></a> +<h3>本文结论</h3> +<p>{{ blog.conclusion}}</p> +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_comment.html b/97suifangqa/templates/sciblog/blog_detail_comment.html new file mode 100644 index 0000000..53dc07c --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_comment.html @@ -0,0 +1,15 @@ +{% extends "sciblog/blog_detail.html" %} + +{% block sectionname %} +学者科学评论 +{% endblock %} + +{% block navigation %} +{% endblock %} + +{% block block_pieces %} +{% for piece in blog.konwledge_piece.comments %} +<h4>{{ piece.title }}</h4> +<p>{{ piece.content }}</p> +{% endfor %} +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_follow.html b/97suifangqa/templates/sciblog/blog_detail_follow.html new file mode 100644 index 0000000..3635f9b --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_follow.html @@ -0,0 +1,39 @@ +{% extends "sciblog/blog_detail.html" %} + +{% block sectionname %} +随访与用药 +{% endblock %} + +{% block navigation %} +<nav role="navigation" class="section-nav"> + <ul class="links inline"> + <li><a href="#follow_medicine" class="active">用药与随访历史</a></li> + <li><a href="#endpoints">判别指标</a></li> + <li><a href="#guideline">治疗策略</a></li> + </ul> +</nav> +{% endblock %} + +{% block block_pieces %} +<a href="" id="follow_medicine"></a> +<h3>用药与随访历史</h3> +<p>{{ blog.treatment_content }}</p> +<a href="" id="endpoints"></a> +<h3>判别疗效的指标</h3> +<h4>主要</h4> +{% for end in blog.endpoints.all %} + {% if end.type == 1 %} + {{ end.content }} + {% endif %} +{% endfor %} +<h4>次要</h4> +{% for end in blog.endpoints.all %} + {% if end.type == 2 %} + {{ end.content }} + {% endif %} +{% endfor %} +<div></div> +<a href="" id="guideline"></a> +<h3>治疗策略</h3> +{{ blog.guidline.content }} +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_knowledge.html b/97suifangqa/templates/sciblog/blog_detail_knowledge.html new file mode 100644 index 0000000..6ab749d --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_knowledge.html @@ -0,0 +1,15 @@ +{% extends "sciblog/blog_detail.html" %} + +{% block sectionname %} +科普扫盲 +{% endblock %} + +{% block navigation %} +{% endblock %} + +{% block block_pieces %} +{% for piece in blog.konwledge_piece.knowledges %} +<h4>{{ piece.title }}</h4> +<p>{{ piece.content }}</p> +{% endfor %} +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_refrences.html b/97suifangqa/templates/sciblog/blog_detail_refrences.html new file mode 100644 index 0000000..a60935d --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_refrences.html @@ -0,0 +1,25 @@ +{% extends "sciblog/blog_detail.html" %} + +{% block sectionname %} +参考信息 +{% endblock %} + +{% block navigation %} +<nav role="navigation" class="section-nav"> + <ul class="links inline"> + <li><a href="#detect_methods" class="active">检测方法</a></li> + <li><a href="#refrences">参考文献</a></li> + </ul> +</nav> +{% endblock %} + +{% block block_pieces %} +<a href="" id="detect_methods"></a> +<h3>检测方法罗列</h3> +<p>{{ blog.detectionAssay }}</p> +<a href="" id="refrences"></a> +<h3>参考文献</h3> +{% for ref in blog.references.all %} +<a href="{{ ref.link }}">{{ ref.description }}</a> +{% endfor %} +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_results-detail.html b/97suifangqa/templates/sciblog/blog_detail_results-detail.html new file mode 100644 index 0000000..3e6ed25 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_results-detail.html @@ -0,0 +1,49 @@ +{% extends "sciblog/blog_detail.html" %} +{% block bodyclasses %}{{ block.super }} blog-results blog-results-detail{% endblock %} +{% block sectionname %} +病友治疗结果 +{% endblock %} + +{% block navigation %} +{% endblock %} + +{% block cards_abstract %} + <div class="cards-abstract"> + <div> + <p>{{ result.abstract }}</p> + </div> +</div> +{% endblock %} + +{% load group_list %} +{% block block_pieces %} +<div class="cards three-columns"> + <div class="column-first"> + <div class="card {{ result.color }}" href=""> + <div class="front"> + <div class="card-wrap"> + <h3 class="card-title">相关指标 </h3> + <h4 class="card-subtitle">{{ result.shorttitle }} </h4> + <div class="card-details"> + {{ result.card_content }} + </div> + </div> + </div> + <div class="back"> + <div class="card-wrap"> + <div class="content-wrap"> + {% for indicator in result.indicators.all %} + <div>{{ indicator.name }}</div> + {% endfor %} + </div> + </div> + </div> + </div> + </div> + <div class="column-main right card-brief"> + <p>{{ result.abstract }}</p> + </div> +</div> +<br /> +{{ result.content }} +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_results.html b/97suifangqa/templates/sciblog/blog_detail_results.html new file mode 100644 index 0000000..1427a01 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_results.html @@ -0,0 +1,45 @@ +{% extends "sciblog/blog_detail.html" %} +{% block bodyclasses %}{{ block.super }} blog-results{% endblock %} +{% block sectionname %} +病友治疗结果 +{% endblock %} + +{% block navigation %} +{% endblock %} + +{% load group_list %} +{% block block_pieces %} +{% for chunk in blog.results.all|chunks:3 %} +<div class="cards three-columns"> + {% for result in chunk %} + <div class="column-{% cycle 'first' 'second' 'third' %}"> + <div class="card {{ result.color }}" href="{% url blog_result result.id %}"> + <div class="front"> + <div class="card-wrap"> + <h3 class="card-title">相关指标 </h3> + <h4 class="card-subtitle">{{ result.shorttitle }} </h4> + <div class="card-details"> + {{ result.card_content }} + </div> + </div> + </div> + <div class="back"> + <div class="card-wrap"> + <div class="content-wrap"> + {% for indicator in result.indicators.all %} + <div>{{ indicator.name }}</div> + {% endfor %} + </div> + </div> + </div> + <div class="abstract"> + {{ result.abstract }} + </div> + </div> + </div> + +{% endfor %} +</div> +<br /> +{% endfor %} +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_source.html b/97suifangqa/templates/sciblog/blog_detail_source.html new file mode 100644 index 0000000..83be5f1 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_source.html @@ -0,0 +1,30 @@ +{% extends "sciblog/blog_detail.html" %} + +{% block sectionname %} +文章来源 +{% endblock %} + +{% block navigation %} +{% endblock %} + +{% block block_pieces %} +<h4>原文献标题</h4> +<!--下文所有p就是正文标准样式--> +<p>{{ blog.entitle }}</p> +<p>{{ blog.title }}</p> +<h4>发表国际期刊</h4> +<p>{{ blog.journal }}</p> +<h4>期刊出版日期</h4> +<p>{{ blog.publish_date}}<p> +<h4>期刊影响因子</h4> +<p>{{ blog.ifvalue }}</p> +<!--h4>本文难度系数</h4> +<p>{{ blog.level }}</p--> +<h4>研究学者</h4> +<p>{{ blog.authors }}</p> +<h4>学者机构</h4> +<p>{% for h in blog.hospital.all %} +{{ h.name }}({{ h.city.nation.name }}) +{% endfor %} +等等</p> +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_detail_test.html b/97suifangqa/templates/sciblog/blog_detail_test.html new file mode 100644 index 0000000..b6823a9 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_detail_test.html @@ -0,0 +1,356 @@ +{% extends "base.html" %} +{% load staticfiles %} +{% block bodyclasses %}{{ block.super }} two-sidebars blog blog-details{% endblock %} +{% block othercss %} +<link rel="stylesheet" href="{% static "stylesheets/base.css" %}"> +<link rel="stylesheet" href="{% static "stylesheets/sass/blog.css" %}"> +{% endblock %} +{% block oldcss %}{% endblock %} +{% block sidebar_first %} +<aside id="sidebar-first" class="region-sidebar-first"> + <div class="post-question"> + <form method="post" class="search" action="/query"> + {% csrf_token %} + <input type="text" name="q" placeholder="乙肝甲肝各种肝炎" class="question"> + <input type="submit" value="提问" class="submit"> + </form> + </div> + <div class="related-questions"> + <h3>关联问题</h3> + <div><a href="" title="查询与此问题相关的文章">什么是乙肝</a></div> + <div><a href="" title="查询与此问题相关的文章">什么是乙肝</a></div> + <div><a href="" title="查询与此问题相关的文章">什么是乙肝</a></div> + <div><a href="" title="查询与此问题相关的文章">什么是乙肝</a></div> + <div><a href="" title="查询与此问题相关的文章">什么是乙肝</a></div> + </div> + <div class="toc"> + <h3 class="toc-title">目 录</h3> + <ul class="links"> + <li> + <a href="{% url blog_detail blog.id 'source'%}">文章来源</a> + </li> + <li> + <a href="{% url blog_detail blog.id 'abstract'%}">文章简读</a> + </li> + <li> + <a href="{% url blog_detail blog.id 'knowledge'%}">科普扫盲</a> + </li> + <li> + <a href="{% url blog_detail blog.id 'follow'%}">随访与用药</a> + </li> + <li> + <a href="{% url blog_detail blog.id 'comment'%}">学者科学评论</a> + </li> + <li> + <a href="{% url blog_detail blog.id 'refrences'%}">参考信息</a> + </li> + </ul> + </div> + <header id="header"> + <div id="logo"> + <img src="{% static "images/slilogo.png" %}" alt=""> + </div> + </header> +</aside> +{% endblock %} +{% block sidebar_second %} +<aside id="sidebar-second" class="region-sidebar-second"> + {% include "login-menu.inc.html" %} + <nav class="social"> + <!-- Below are CSS-worthy structures. Styling incomplete, but you may start filling data --> + <ul class="buttons inline"> + <li> + <button class="multi-segment-button action-button grey-button" id="like-button"> + <div class="segment first like-button action">  收藏</div> + <div class="segment first unlike-button deaction">不收藏</div> + <div class="segment last like-count">58</div> + </button> + </li> + <li> + <button class="multi-segment-button action-button" id="no-idea-button"> + <div class="segment first no-idea-button action">  不懂</div> + <div class="segment first idea-button deaction">看懂了</div> + <div class="segment last no-idea-count">37</div> + </button> + </li> + </ul> + </nav> + <div class="cards-abstract"> + <div> + <p> + Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, + </p> + <p> + In porttitor. Donec laoreet nonummy augue. Suspendisse dui purus, scelerisque at, vulputate vitae, pretium mattis, nunc. Mauris eget neque at sem venenatis eleifend. + </p> + <p> + Donec ut est in lectus consequat consequat. Etiam eget dui. Aliquam erat volutpat. Sed at lorem in nunc porta tristique. Proin nec augue. Quisque aliquam tempor magna. + </p> + </div> + </div> + <div class="lists-container"> + <nav class="comments expandable expanded" data-expand-group-selector="#sidebar-second .lists-container nav"> + <h4 class="expand-heading">段落注释</h4> + <ol class="expand-container jargon-links"> + <li> + <a href="#gu-bing-zhuan-an-mei">核苷类似物还有其他药物,比如恩替卡韦、替诺福韦,他们的耐药率是否也是很高?</a> + </li> + <li> + <a href="#gu-bing-zhuan-an-mei">核苷类似物还有其他药物,比如恩替卡韦、替诺福韦,他们的耐药率是否也是很高?</a> + </li> + <li> + <a href="#gu-bing-zhuan-an-mei">核苷类似物还有其他药物,比如恩替卡韦、替诺福韦,他们的耐药率是否也是很高?</a> + </li> + </ol> + </nav> + <nav class="jargon-list expandable" data-expand-group-selector="#sidebar-second .lists-container nav"> + <h4 class="expand-heading">专业名词</h4> + <ul class="expand-container jargon-links"> + <li> + <a href="#gu-bing-zhuan-an-mei">谷丙转氨酶</a> + </li> + <li> + <a href="#gu-bing-zhuan-an-mei">谷丙转氨酶</a> + </li> + <li> + <a href="#gu-bing-zhuan-an-mei">谷丙转氨酶</a> + </li> + </ul> + </nav> + </div> +</aside> +{% endblock %} +{% block before_content %} +<section id="blog-top-nav" class="blog-top-nav content"> + <div class="region-wrap"> + <h1 class="blog-title">{{ blog.subhead }}</h1> + <h2 class="section-name">{% block sectionname %}临床策略{% endblock %}</h2> + <!-- if firstSection --> + {% block navigation %} + <nav role="navigation" class="section-nav"> + <ul class="links inline"> + <li><a href="#methods" class="active">治疗手段</a></li> + <li><a href="#objectives">目标</a></li> + <li><a href="">结果简述</a></li> + <li><a href="">副作用</a></li> + <li><a href="">本文结论</a></li> + </ul> + </nav> + {% endblock %} + <!-- endif --> + </div> +</section> +{% endblock %} +{% block body %} + <!-- if not cards --> + <div class="text jargons"> + {% block block_pieces %} + <a href="" id="methods"></a> + <h3>治疗手段</h3> + <h4>副标题</h4> + <p> + 24周随访期结束以后,<a href="#gu-bing-zhuan-an-mei" class="jargon">谷丙转氨酶</a>(ALT)的复常率(恢复正常值以内的几率)或者<a href="#yi-gan-bing-du" class="jargon">乙肝病毒</a>(HBV) NA水平降低到20,000拷贝/mL的几率在接受含有<a href="#ju-yi-er-chun-gan-rao-su" class="jargon">聚乙二醇干扰素</a>alfa-2a( 下文此类干扰素都简为“扰素”,如有说到普通干扰素会特别指出)的治疗组人群中会更高(比起那些仅用拉米夫定的患者)。 + </p> + <h4>很多字很多字很多字很多字很多字很多字很多字很多字很多字很多字很多字很多字</h4> + <p> + 在结束治疗24周后,病毒水平降到400<a href="#copies-per-second" class="jargon">拷贝/mL</a>是很多人追求的治疗终点,在含有干扰素的治疗组人群中大概有20%左右获得了这样病毒学<a href="#virulogical-response" class="jargon">应答</a>,仅用拉米夫定的患者这个数字只有7%。 + </p> + <p> + 在结束治疗24周后,病毒水平降到400<a href="#copies-per-second" class="jargon">拷贝/mL</a>是很多人追求的治疗终点,在含有干扰素的治疗组人群中大概有20%左右获得了这样病毒学<a href="#virulogical-response" class="jargon">应答</a>,仅用拉米夫定的患者这个数字只有7%。 + </p> + <div class="highlight"> + <p> + <a href="surface-antigen" class="jargon">表面抗原</a>(HBsAg)的清除,只有12个人发生(都在含有干扰素的治疗组人群中,占比3.4%),仅用<a href="#la-mi-fu-ding" class="jargon">拉米夫定</a>的治疗组中没有人获得HBsAg清除。 + </p> + </div> + + + <h3><a href="" id="objectives"></a>治疗手段</h3> + <h4>副标题</h4> + <p> + 24周随访期结束以后,<a href="#gu-bing-zhuan-an-mei" class="jargon">谷丙转氨酶</a>(ALT)的复常率(恢复正常值以内的几率)或者<a href="#yi-gan-bing-du" class="jargon">乙肝病毒</a>(HBV) NA水平降低到20,000拷贝/mL的几率在接受含有<a href="#ju-yi-er-chun-gan-rao-su" class="jargon">聚乙二醇干扰素</a>alfa-2a( 下文此类干扰素都简为“扰素”,如有说到普通干扰素会特别指出)的治疗组人群中会更高(比起那些仅用拉米夫定的患者)。 + </p> + <h4>很多字很多字很多字很多字很多字很多字很多字很多字很多字很多字很多字很多字</h4> + <p> + 在结束治疗24周后,病毒水平降到400<a href="#copies-per-second" class="jargon">拷贝/mL</a>是很多人追求的治疗终点,在含有干扰素的治疗组人群中大概有20%左右获得了这样病毒学<a href="#virulogical-response" class="jargon">应答</a>,仅用拉米夫定的患者这个数字只有7%。 + </p> + <div class="image-wrap"> + <a href="{% static "images/blog-images-temp/fig2-2.png" %}" class="enlarge-image"> + <img src="{% static "images/blog-images-temp/fig2-1.png" %}" alt=""> + </a> + </div> + <p> + 在结束治疗24周后,病毒水平降到400<a href="#copies-per-second" class="jargon">拷贝/mL</a>是很多人追求的治疗终点,在含有干扰素的治疗组人群中大概有20%左右获得了这样病毒学<a href="#virulogical-response" class="jargon">应答</a>,仅用拉米夫定的患者这个数字只有7%。 + </p> + <div class="highlight"> + <p> + <a href="surface-antigen" class="jargon">表面抗原</a>(HBsAg)的清除,只有12个人发生(都在含有干扰素的治疗组人群中,占比3.4%),仅用<a href="#la-mi-fu-ding" class="jargon">拉米夫定</a>的治疗组中没有人获得HBsAg清除。 + </p> + </div> + <div class="jargon-explanations"> + <div class="jargon-explanation" data-key="yi-gan-bing-du"> + <h3 class="name">乙肝病毒</h3> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p class="references"> + David E. Boundy (October 1991). "A taxonomy of programmers". + </p> + </div> + <div class="jargon-explanation" data-key="virulogical-response"> + <h3 class="name">应答</h3> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p class="references"> + David E. Boundy (October 1991). "A taxonomy of programmers". + </p> + </div> + <div class="jargon-explanation" data-key="gu-bing-zhuan-an-mei"> + <h3 class="name">谷丙转氨酶</h3> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p> + 在我们的研究中就接受含有乙二醇干扰素治疗的患者中,有40%的人乙肝病毒(HBV)DNA在治疗结束后24周时,下降到20,000拷贝/mL以下。 + </p> + <p class="references"> + David E. Boundy (October 1991). "A taxonomy of programmers". + </p> + </div> + </div> + </div> + <div class="jargon-explanation-box"> + <div class="text-pointer"></div> + <div class="close-box"></div> + <img src="{% static "images/loading.gif" %}" alt="" class="loading-image"> + <div class="content-wrap"> + </div> + <a class="button like-button grey-button"><img src="{% static "images/grey-heart.png" %}" alt=""> 收藏该条注释</a> + </div> + <!-- else --> + <!-- for ... --> + <div class="cards three-columns"> + <div class="column-first"> + <div class="card grey" href=""> + <div class="front"> + <div class="card-wrap"> + <h3 class="card-title">ALT 谷丙转氨酶</h3> + <h4 class="card-subtitle">谁的组织学应答好?</h4> + <div class="card-details"> + 治疗结束随访24周以后<br> + ALT恢复正常<br> + ALT没有恢复正常 + </div> + </div> + </div> + <div class="back"> + <div class="card-wrap"> + <div class="content-wrap"> + <div>ALT 谷丙转氨酶</div> + <div>HBeAg e抗原</div> + <div>...</div> + </div> + </div> + </div> + </div> + </div> + <div class="column-second"> + <div class="card green"> + <div class="front"> + <div class="card-wrap"> + <h3 class="card-title">ALT 谷丙转氨酶</h3> + <h4 class="card-subtitle">谁的组织学应答好?</h4> + <div class="card-details"> + 治疗结束随访24周以后<br> + ALT恢复正常<br> + ALT没有恢复正常 + </div> + </div> + </div> + <div class="back"> + <div class="card-wrap"> + <div class="content-wrap"> + <div>ALT 谷丙转氨酶</div> + <div>HBeAg e抗原</div> + <div>...</div> + </div> + </div> + </div> + </div> + </div> + + <div class="column-third"> + <div class="card blue"> + <div class="front"> + <div class="card-wrap"> + <h4 class="card-title">ALT 谷丙转氨酶</h4> + <h5 class="card-subtitle">谁的组织学应答好?</h5> + <div class="card-details"> + 治疗结束随访24周以后<br> + ALT恢复正常<br> + ALT没有恢复正常 + </div> + </div> + </div> + <div class="back"> + <div class="card-wrap"> + <div class="content-wrap"> + <div>ALT 谷丙转氨酶</div> + <div>HBeAg e抗原</div> + <div>...</div> + </div> + </div> + </div> + </div> + </div> + {% endblock %} + <div id="back-to-top-button" title="返回顶部" class="hidden"></div> + </div> + <div id="related-questions-confirm" class="dialog-content"> + <p>我们将要帮您重新搜索医学文章,会离开本文页面,您确定吗?</p> + <div class="controls"> + <button class="dialog-ok">确认</button> + + <button class="dialog-cancel grey-button">取消</button> + </div> + </div> + <!-- endfor --> + <!-- endif --> +{% endblock %} +{% block scripts %} +{{ block.super }} +<script type="text/javascript"> + $(function(){ + var activeUrl = null; + $("#related-questions-confirm .dialog-ok").click(function() { + location.href = activeUrl; + }) + $("#related-questions-confirm .dialog-cancel").click(function() { + $.modalHide(); + }) + $("#sidebar-first .related-questions a").click(function(e) { + e.preventDefault(); + e.stopPropagation(); + activeUrl = $(this).attr('href'); + + $("#related-questions-confirm").modalShow(); + }) + }) +</script> +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_list.html b/97suifangqa/templates/sciblog/blog_list.html new file mode 100644 index 0000000..7e8b7b2 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_list.html @@ -0,0 +1,113 @@ +{% extends "picture-base.html" %} +{% block bodyclasses %}{{ block.super }} blog blog-list{% endblock %} +{% load staticfiles %} +{% block othercss %} +<link rel="stylesheet" href="{% static "stylesheets/sass/blog.css" %}"> +{% endblock %} +{% block sidebar_first_content %} + {% include "sciblog/nav-ribbon.html" %} + <div class="region-wrap"> + <div class="post-question"> + {% include "sciblog/blog_search_form.html" %} + </div> + </div> + <div class="hover-overlay"> + <div class="region-wrap"> + <div class="user-info"> + <h3>用户姓名</h3> + </div> + <div class="search-history"> + <h3>搜索历史</h3> + <ul> + {% for search in search_history %} + <li><a href="{% url query_blogs %}?q={{ search }}">{{ search }}</a></li> + {% endfor%} + </ul> + </div> + <div class="related-questions"> + <h3>相关问题</h3> + <ul> + {% for query in questions%} + <li> + <a href="{% url query_blogs %}?q={{ query.content }}" title="查询与此问题相关的文章">{{ query.content }}</a> + </li> + {% endfor %} + </ul> + </div> + </div> + </div> +{% endblock %} +{% block body %} + <section id="blog-list-top-nav"> + {% include "login-menu.inc.html" %} + <nav class="search-type-nav"> + <ul class="links inline"> + <li class="first-level"><a href="" class="{% if tab == 'list' %}active{% endif %}">搜索结果</a></li> + <!--li class="first-level"><a href="">术语</a></li--> + <li class="first-level"><a href="{% url blog_collection %}" class="{% if tab == 'collection' %}active{% endif %}">我的收藏</a></li> + </ul> + </nav> + </section> + <section id="blog-list-content"> + <h2 class="section-name">专业术语</h2> + {% for noun in ppnouns %} + <ul class="articles"> + <li class="article"> + <div class="article-title"><!--a href=""-->{{noun.firstkeyword }}<!--/a--></div> + <div class="excerpt"> + {{ noun.firstparagraph }} + </div> + </li> + {% endfor %} + </ul> + <h2 class="section-name">医学文章</h2> + {% if has_blogs %} + <div class="articles"> + {% for blog in blogs %} + <div class="article"> + <div class="article-title"><a href="{% url blog_detail blog.id %}">{{ blog.subhead }}</a></div> + <ul class="article-subtitles inline"> + <!--li> + <span>难度:</span> + {% load tools %} + <ul class="difficulty inline rating-blocks"> + {% for num in 5|get_range %} + {% if num < blog.level %} + <li class="filled"></li> + {% else %} + <li class="empty"></li> + {% endif %} + {% endfor %} + </ul> + </li> + <li> + <span>权威:</span> + <ul class="difficulty inline rating-blocks"> + {% for num in 5|get_range %} + {% if num < blog.quality_value %} + <li class="filled"></li> + {% else %} + <li class="empty"></li> + {% endif %} + {% endfor %} + </ul> + </li--> + <li> <span>杂志:</span><span>{{ blog.journal }}</span></li> + <li> <span>作者:</span><span>{{ blog.communication_author }}</span></li> + </ul> + <br /> + <div class="excerpt"> + {{ blog.conclusion|safe }} + </div> + </div> + {% endfor %} + </div> + {% else %} + <div class="not-found"> + <img src="{% static "images/blog-not-found.png" %}" alt=""> + <div class="message">没有搜索到{% if tab == 'list'%}文章{% else %}收藏{% endif %}</div> + </div> + {% endif %} + </section> + +{% endblock %} diff --git a/97suifangqa/templates/sciblog/blog_search_form.html b/97suifangqa/templates/sciblog/blog_search_form.html new file mode 100644 index 0000000..e2869e9 --- /dev/null +++ b/97suifangqa/templates/sciblog/blog_search_form.html @@ -0,0 +1,5 @@ +<form method="get" class="searchdiv" action="{% url query_blogs %}"> + <input type="text" name="q" placeholder="在这里搜索关键词" class="question" value="{{ q }}"> + <input type="submit" value="搜 索" class="submit"> +</form> + diff --git a/97suifangqa/templates/sciblog/index.html b/97suifangqa/templates/sciblog/index.html new file mode 100644 index 0000000..86769c2 --- /dev/null +++ b/97suifangqa/templates/sciblog/index.html @@ -0,0 +1,23 @@ +{% extends "base.html" %}
+{% load staticfiles %}
+{% block bodyclasses %}{{ block.super }} blog blog-index{% endblock %}
+{% block othercss %}
+<link rel="stylesheet" href="{% static "stylesheets/sass/blog.css" %}">
+{% endblock %}
+{% block body %}
+ <div class="background"></div>
+ {% include "login-menu.inc.html" %}
+ <div class="post-question">
+ {% include "sciblog/blog_search_form.html" %}
+ </div>
+
+ <header id="header">
+ <div id="logo">
+ <img src="{% static "images/logo-overlay-white.png" %}" alt="">
+ </div>
+ </header>
+
+{% endblock %}
+{% block after_content %}
+<div id="copyright">© Augbase</div>
+{% endblock %}
\ No newline at end of file diff --git a/97suifangqa/templates/sciblog/nav-ribbon.html b/97suifangqa/templates/sciblog/nav-ribbon.html new file mode 100644 index 0000000..16b2bc1 --- /dev/null +++ b/97suifangqa/templates/sciblog/nav-ribbon.html @@ -0,0 +1,15 @@ +<nav id="nav-ribbon" role="navigation">
+ <div class="controls-wrap">
+ <div class="head-background"></div>
+ <div class="links-wrap">
+ <ul class="links inline">
+ <li class="first"><a href="/blog/index">首页</a></li>
+ <li><a href="{% url list_blogs %}">知识库</a></li>
+ <!--li><a href="">随访工具</a></li-->
+ <!--li class="last"><a href="">我的花费</a></li-->
+ </ul>
+ </div>
+ <div class="tail">导航</div>
+ <div class="tail-cut"></div>
+ </div>
+</nav>
\ No newline at end of file diff --git a/97suifangqa/templates/search/indexes/indicator/indicator_text.txt b/97suifangqa/templates/search/indexes/indicator/indicator_text.txt new file mode 100644 index 0000000..4ccb33e --- /dev/null +++ b/97suifangqa/templates/search/indexes/indicator/indicator_text.txt @@ -0,0 +1,6 @@ +{{ object.name }} +{{ object.pinyin }} +{{ object.englishName }} +{{ object.description }} +{{ object.helpText }} + diff --git a/97suifangqa/templates/search/indexes/indicator/indicatorcategory_text.txt b/97suifangqa/templates/search/indexes/indicator/indicatorcategory_text.txt new file mode 100644 index 0000000..df4ffac --- /dev/null +++ b/97suifangqa/templates/search/indexes/indicator/indicatorcategory_text.txt @@ -0,0 +1,5 @@ +{{ object.name }} +{{ object.pinyin }} +{{ object.englishName }} +{{ object.description }} + diff --git a/97suifangqa/templates/search/indexes/info/query_text.txt b/97suifangqa/templates/search/indexes/info/query_text.txt new file mode 100644 index 0000000..1451635 --- /dev/null +++ b/97suifangqa/templates/search/indexes/info/query_text.txt @@ -0,0 +1,2 @@ +{{ object.content }} +{{ object.user.get_full_name }} diff --git a/97suifangqa/templates/search/indexes/sciblog/blogannotation_text.txt b/97suifangqa/templates/search/indexes/sciblog/blogannotation_text.txt new file mode 100644 index 0000000..a347fc0 --- /dev/null +++ b/97suifangqa/templates/search/indexes/sciblog/blogannotation_text.txt @@ -0,0 +1,5 @@ +{{ object.brief_content }} +{{ object.detail }} +{% for keyword in object.keywords.all %} +{{ keyword.content }} +{% endfor %} diff --git a/97suifangqa/templates/search/indexes/sciblog/sciblog_text.txt b/97suifangqa/templates/search/indexes/sciblog/sciblog_text.txt new file mode 100644 index 0000000..edc145c --- /dev/null +++ b/97suifangqa/templates/search/indexes/sciblog/sciblog_text.txt @@ -0,0 +1,30 @@ +{{ object.title }} +{{ object.subhead }} +{{ object.journal }} +{{ object.entitle }} +{{ object.authors }} +{{ object.method }} +{{ object.aim }} +{{ object.abstract_result }} +{{ object.abstractAE }} +{{ object.treatment_content }} +{{ object.endpoint_content }} +{% for endpoint in object.endpoint_content.all %} +{{ endpoint.content }} +{% endfor %} + +{% for que in object.query.all %} +{{ que.content }} +{% endfor %} + +{{ object.conclusion }} + +{% for piece in object.konwledge_piece.all %} +{{ piece.content }} +{% endfor %} + +{{ object.detectionAssay }} + +{% for result in object.results.all %} +{{ result.content }} +{% endfor %} diff --git a/97suifangqa/templates/search/query/index.html b/97suifangqa/templates/search/query/index.html new file mode 100644 index 0000000..7e504fc --- /dev/null +++ b/97suifangqa/templates/search/query/index.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block otherlinks %} + <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Open+Sans:400,600"> +{% endblock %} + +{% block bodyclass %}bg{% endblock %} + +{% block body %} + {% include "profile/person-info.html" %} + <div class="body"> + <form method="post" class="search" action="/blog/query"> + {% csrf_token %} + <input type="text" name="q" placeholder="乙肝甲肝各种肝炎" class="queinput"> + <input type="submit" value="提问" class="quebtn"> + </form> + <div class="site_logo"></div> + </div> +{% endblock %} diff --git a/97suifangqa/templates/search/search.html b/97suifangqa/templates/search/search.html new file mode 100644 index 0000000..7308de0 --- /dev/null +++ b/97suifangqa/templates/search/search.html @@ -0,0 +1,39 @@ +{% extends 'base.html' %} + +{% block page %} + <h2>Search</h2> + + <form method="get" action="."> + <table> + {{ form.as_table }} + <tr> + <td> </td> + <td> + <input type="submit" value="Search" /> + </td> + </tr> + </table> + + {% if query %} + <h3>Results</h3> + + {% for result in page.object_list %} + <p> + <a href="{{ result.object.get_absolute_url }}">{{ result.object.show }}</a> + </p> + {% empty %} + <p>No results found.</p> + {% endfor %} + + {% if page.has_previous or page.has_next %} + <div> + {% if page.has_previous %}<a href="?q={{ query }}&page={{ page.previous_page_number }}">{% endif %}« Previous{% if page.has_previous %}</a>{% endif %} + | + {% if page.has_next %}<a href="?q={{ query }}&page={{ page.next_page_number }}">{% endif %}Next »{% if page.has_next %}</a>{% endif %} + </div> + {% endif %} + {% else %} + {# Show some example queries to run, maybe query syntax, something else? #} + {% endif %} + </form> +{% endblock %} diff --git a/97suifangqa/templatetags/__init__.py b/97suifangqa/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/templatetags/__init__.py diff --git a/97suifangqa/templatetags/tools.py b/97suifangqa/templatetags/tools.py new file mode 100644 index 0000000..d4d9d0e --- /dev/null +++ b/97suifangqa/templatetags/tools.py @@ -0,0 +1,6 @@ +from django import template
+
+register = template.Library()
+@register.filter
+def get_range(count, start = 0):
+ return range(start, start + count)
\ No newline at end of file diff --git a/97suifangqa/urls.py b/97suifangqa/urls.py new file mode 100644 index 0000000..f1b2aeb --- /dev/null +++ b/97suifangqa/urls.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- + +from django.contrib import admin +from django.conf.urls.defaults import patterns, include, url +from django.views.generic.simple import direct_to_template +from django.contrib.auth import logout, views as auth_views +from django.shortcuts import redirect, render_to_response + + +admin.autodiscover() +urlpatterns = patterns("", + url(r"^admin/", include(admin.site.urls)), + (r"^site_media/(?P<path>.*)$", "django.views.static.serve", {"document_root": "./media/"}), +) + +def _logout(request, **kwargs): + logout(request) + return redirect('/') + +urlpatterns += patterns("", + url(r"^$", direct_to_template, {"template": "index.html"}, name="index"), +) + +urlpatterns += patterns("info.views", + url(r"^query\/?$", "query"),) + +urlpatterns += patterns("", + url(r"^blog/", include('sciblog.urls')), + url(r"^accounts/", include('profile.urls')), + ) +def page_not_found(request): + return render_to_response('./templates/404.html') + + +## apps/indicator +urlpatterns += patterns('', + url(r'^indicator/', include('indicator.urls')), +) + + +## search (haystack) +urlpatterns += patterns('', + url(r'^search/', include('haystack.urls')), +) + + diff --git a/97suifangqa/wsgi.py b/97suifangqa/wsgi.py new file mode 100644 index 0000000..97efc6b --- /dev/null +++ b/97suifangqa/wsgi.py @@ -0,0 +1,7 @@ +import os + +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") + +from django.core.wsgi import get_wsgi_application + +application = get_wsgi_application() |