Commit dfe05910 authored by Jacob Durrant's avatar Jacob Durrant
Browse files

Update to version 1.0.1.

parent c259bd86
!function(e){"use strict";function o(e){var o=e.split("-");return{language:o[0],local:o[1]}}e||(e={});var t=Kekule,n=Kekule.language||(e&&e.navigator?navigator.language||navigator.browserLanguage:"en-US");t.language=n;var a=o(n),i=o("en-US"),_=[a.language+"_"+a.local,a.language,i.language+i.local,i.language];Kekule.Localization={},Kekule.LocalizationRes={};var r=Kekule.LocalizationRes;function T(e,o,t){var n=t||r[e];return!n&&o&&(n={},r[e]=n),n}function l(e,o,t){var n=T(o,!1,t);if(n){var a=Object.getCascadeFieldValue(e,n);if(void 0!==a)return a}}function E(e,o,t){for(var n=(o?[o]:[]).concat(_),a=0,i=n.length;a<i;++a){var r=l(e,n[a],t);if(void 0!==r)return r}}function I(e,o,t){var n=E(e,o,t);if(void 0!==n)return n;Kekule.error("Can not find localization resource: "+e)}var O,s=[],c=!!(e||e.window).__kekuleMarkLocalizationModuleInfo__,N={};function d(e,o,t,n){if(t){var a=l(o,e,n);(function(e,o,t,n,a){var i=T(t,n,a);!!i&&Object.setCascadeFieldValue(e,o,i,n)})(o,a?Object.extendEx(a,t,{cascade:!0}):JSON.parse(JSON.stringify(t)),e,!0,n)}}Kekule.$L=I,Kekule.Localization.getLanguages=function(){var e=[];for(var o in r)e.push(o);return e},Kekule.Localization.getValue=I,Kekule.Localization.findValue=E,Kekule.Localization.getModuleInfos=function(){return N},Kekule.Localization.setCurrModule=function(e){O=e,s.indexOf(e)<0&&s.push(e)},Kekule.Localization.getModuleNames=function(){return s},Kekule.Localization.addResource=function(e,o,t){(d(e,o,t),c)&&d(e,o,t,function(e,o){e=e||"GLOBAL";var t=Object.getCascadeFieldValue(e,N);return!t&&o&&(t=Object.setCascadeFieldValue(e,{},N,!0)),t}(O,!0))}}(this),Kekule.LOCAL_RES=!0,Kekule.Localization.setCurrModule("general"),Kekule.Localization.addResource("en","Texts",{UNNAMED:"unnamed"}),Kekule.Localization.addResource("en","ErrorMsg",{MODULE_NOT_LOADED:"Module {0} is not loaded",NON_OWN_PROPERTY_CANNOT_BE_REPLACED:"Only directly owned property of object can be replaced",EMPTY_DOC:"Document is empty",ELEMENT_NOTSET:"Element not set",EMPTY_RESURI:"Resource URI is empty",CANNOT_LOAD_RES_OF_URI:"Can not load resource of URI: ",LIST_ITEM_CLASS_MISMATCH:"Mismatched item class, can not add to list",CANNOT_CLEAR_WEAKMAP:"Can not clear a weak map",CANNOT_GET_KEY_LIST_IN_WEAKMAP:"Can not get key array from a weak map",CANNOT_GET_VALUE_LIST_IN_WEAKMAP:"Can not get value array from a weak map",INVALID_CHEMELEMENT:"Invalid chemical element",INVALID_ISOTOPE:"Invalid isotope",COORD_STICK_NOT_ALLOWED_ON_CLASS:"Coordinate sticking is not allowed in this type of object",INVALID_STICK_TARGET_OBJ:"Invalid sticking target",UNABLE_TO_STICK_TO_OTHER_OWNER_OBJ:"Unable to stick to object with a different owner",UNABLE_TO_STICK_TO_OBJ_WITHOUT_ABS_COORD:"Unable to stick to object without absolute coordinates",STICK_RECURSION_NOT_ALLOWED:"Stick recursion is not allowed",UNABLE_ADD_MISTYPED_NODE:"Unable to link mistyped node to connector",UNABLE_ADD_DIFF_OWNER_OBJ:"Object with different owner can not be linked to connector",CHEMSTRUCTUREOBJECTGROUP_ITEMCLASS_MISMATCH:"Mismatched group item class",SORT_FUNC_UNSET:"Sort function is not set",SOURCE_FRAGMENT_NOT_SET:"Source structure fragment not set",UNABLE_ADD_NONMOLECULE_MAP:"Unable to add non-molecule to reactants or products",CANNOT_ADD_NON_NODE_NOR_CONNECTOR_TO_STRUCT_CONTAINER:"Can not add object other than node or connector to structure object container",REGISTERED_CANONICALIZATION_EXECUTOR_NOT_FOUND:"Can not find registered canonicalization executor",ERROR_LOADING_FILE:"Error loading file: ",READER_ID_ALREADY_EXISTS:"Can not register reader: id already exists",WRITER_ID_ALREADY_EXISTS:"Can not register writer: id already exists",FAIL_TO_READ_FORMAT:"Fail to load data of format: ",NO_SUITABLE_READER_FOR_FORMAT:"Can not read data of format: ",NO_SUITABLE_READER_FOR_MIMETYPE:"Can not read data of MIME type: ",NO_SUITABLE_READER_FOR_FILEEXT:"Can not read data of file extension: ",NO_SUITABLE_WRITER_FOR_FORMAT:"Can not write data of format: ",NO_SUITABLE_WRITER_FOR_MIMETYPE:"Can not write data of MIME type: ",NO_SUITABLE_WRITER_FOR_FILEEXT:"Can not write data of file extension: ",AJAX_FILELOADER_NOT_FOUND:"AJAX file loader not found, can not load URL",FAIL_TO_LOAD_FILE_URL:"Fail to load file of URL: ",CML_ELEM_READER_NOT_FOUND:"Reader for element <{0}> not found",ATOMID_NOT_EXISTS:"Atom id not exists: ",BONDID_NOT_EXISTS:"Bond id not exists: ",CML_ELEM_WRITER_TYPE_INPROPER:"{0} is not a proper CML element writer for {1}",CML_CAN_NOT_OUTPUT_TO_EMPTY_ELEMENT:"Can not output content to empty element",UNABLE_TO_OUTPUT_AS_CML:"Unable to output object <{0}> to CML data",MDL_CTAB_ATOM_CANNOT_CREATE:"Can not create atom from source MDL format data",MDL_CTAB_BOND_CANNOT_CREATE:"Can not create bond from source MDL format data",CAN_NOT_WRITE_NON_MOLECULE_TO_MOL:"Object is not a molecule and can not be output to connection table",MOLECULE_HAS_NO_CTAB_TO_OUTPUT:"Molecule has no connection table and can not be output to MDL format",NOT_MDL2000_FORMAT_DATA:"Data format wrong: not MDL 2000",NOT_MDL_RXN_DATA:"Not MDL Reaction(RXN) data",MALFORMED_MDL3000_COUNTLINE:"Malformed MDL 3000 count line",MDL3000_ATOMBLOCK_NOT_FOUND:"Atom block not found, malformed MDL 3000 data?",NOT_MDL_FORMAT_DATA:"Data format wrong: not MDL 2000 or 3000",NOT_MDL2000_RXN_DATA:"Not MDL RXN 2000 data",NOT_MDL3000_RXN_DATA:"Not MDL RXN 3000 data",NOT_MDL3000_RXN_COUNTLINE:"Error in reading RXN 3000 count line",MDL_OUTPUT_DATATYPE_NOT_TEXT:"MDL data can not be output to non text format",MDL_INPUT_DATATYPE_NOT_TEXT:"Non text format is not a legal MDL source data",UNABLE_TO_OUTPUT_AS_MDL:"Unable to output object <{0}> to MDL data",KCJ_INPUT_DATATYPE_NOT_JSON_OR_TEXT:"Non text or JSON format data is not a legal KCJ source",KCJ_OUTPUT_DATATYPE_NOT_JSON_OR_TEXT:"Can not output as non text or JSON data",KCX_INPUT_DATATYPE_NOT_DOM_OR_TEXT:"Non text or DOM data is not a legal KCX source",KCX_OUTPUT_DATATYPE_NOT_DOM_OR_TEXT:"Can not output as non text or DOM data",JSON_SERIALIZER_NOT_EXISTS:"Serializer for JSON not exists",XML_SERIALIZER_NOT_EXISTS:"Serializer for XML not exists",INAVAILABLE_AUTOSCALE_REF_LENGTH:"Can not determine the length for calculation of auto scale",FORMULA_RENDERER_3D_NOT_AVAILABLE:"3D renderer for molecule formula is not available",CANNOT_FIND_SUITABLE_RENDERER_FOR_OBJ:"Can not find suitable renderer for object",CALC_TERMINATED_BY_USER:"Calculation terminated by user",CALC_SERVICE_UNAVAILABLE:'Calculation service "{0}" is unavailable'}),Kekule.LOCAL_RES=!0,Kekule.Localization.setCurrModule("widget"),Kekule.Localization.addResource("en","WidgetTexts",{CAPTION_OK:"OK",CAPTION_CANCEL:"Cancel",CAPTION_YES:"Yes",CAPTION_NO:"No",CAPTION_BROWSE_COLOR:"Browse colors",HINT_BROWSE_COLOR:"Browse more colors",S_COLOR_UNSET:"(unset)",S_COLOR_DEFAULT:"(default)",S_COLOR_MIXED:"(mixed)",S_COLOR_TRANSPARENT:"(transparent)",S_OBJECT_UNSET:"(none)",S_ITEMS:"item(s)",S_OBJECT:"object",S_VALUE_UNSET:"(Unset)",CAPTION_MENU:"Menu",HINT_MENU:"Open menu",S_INSPECT_NONE:"(none)",S_INSPECT_OBJECTS:"({0} objects)",S_INSPECT_ID_OBJECT:"{0}: {1}",S_INSPECT_ANONYMOUS_OBJECT:"({0})",CAPTION_TOGGLE_TEXTWRAP:"Toggle text wrapping",CAPTION_INC_TEXT_SIZE:"Increase text size",CAPTION_DEC_TEXT_SIZE:"Decrease text size",HINT_TOGGLE_TEXTWRAP:"Toggle the state of text wrapping",HINT_INC_TEXT_SIZE:"Increase text size",HINT_DEC_TEXT_SIZE:"Decrease text size",HINT_CHOOSE_FONT_FAMILY:"Choose font family",CAPTION_FIRST_PAGE:"First",CAPTION_LAST_PAGE:"Last",CAPTION_PREV_PAGE:"Prev",CAPTION_NEXT_PAGE:"Next",HINT_FIRST_PAGE:"First page",HINT_LAST_PAGE:"Last page",HINT_PREV_PAGE:"Previous page",HINT_NEXT_PAGE:"Next page",HINT_CURR_PAGE:"Current page",MSG_RETRIEVING_DATA:"Loading data...",CAPTION_DATATABLE_EDIT:"Edit",CAPTION_DATATABLE_DELETE:"Delete",CAPTION_DATATABLE_INSERT:"Insert",HINT_DATATABLE_EDIT:"Edit",HINT_DATATABLE_DELETE:"Delete",HINT_DATATABLE_INSERT:"Insert",CAPTION_ADD_CELL:"+",HINT_ADD_CELL:"Add new cell",CAPTION_REMOVE_CELL:"Remove",HINT_REMOVE_CELL:"Remove cell",CAPTION_CONFIG:"Settings...",HINT_CONFIG:"Change settings",TITLE_IMG_FORMAT_PNG:"PNG format image",TITLE_IMG_FORMAT_JPG:"Jpeg format image",TITLE_IMG_FORMAT_GIF:"GIF format image",TITLE_IMG_FORMAT_SVG:"SVG format image"}),Kekule.Localization.addResource("en","ChemWidgetTexts",{CAPTION_CLEAROBJS:"Clear",CAPTION_LOADFILE:"Load...",CAPTION_LOADDATA:"Load...",CAPTION_SAVEFILE:"Save...",CAPTION_ZOOMIN:"Zoom In",CAPTION_ZOOMOUT:"Zoom Out",CAPTION_RESETZOOM:"Reset Zoom",CAPTION_RESETVIEW:"Reset",CAPTION_ROTATE:"Rotate",CAPTION_ROTATELEFT:"Left Rotate",CAPTION_ROTATERIGHT:"Right Rotate",CAPTION_ROTATEX:"X Rotate",CAPTION_ROTATEY:"Y Rotate",CAPTION_ROTATEZ:"Z Rotate",CAPTION_MOL_DISPLAY_TYPE:"Molecule Display Style",CAPTION_SKELETAL:"Skeletal",CAPTION_CONDENSED:"Condensed",CAPTION_WIRE:"Wire Frame",CAPTION_STICKS:"Sticks",CAPTION_BALLSTICK:"Ball Stick",CAPTION_SPACEFILL:"Space Fill",CAPTION_HIDEHYDROGENS:"Show/hide hydrogens",CAPTION_OPENEDITOR:"Edit...",CAPTION_EDITOR_DONE:"Done",CAPTION_EDITOR_CANCEL:"Cancel",CAPTION_EDIT_OBJ:"Edit",HINT_CLEAROBJS:"Clear objects",HINT_LOADFILE:"Load from file",HINT_LOADDATA:"Load data",HINT_SAVEFILE:"Save to file",HINT_ZOOMIN:"Zoom in",HINT_ZOOMOUT:"Zoom out",HINT_RESETZOOM:"Reset zoom",HINT_RESETVIEW:"Reset zoom and rotation",HINT_ROTATE:"Rotate",HINT_ROTATELEFT:"Rotate in anticlockwise direction",HINT_ROTATERIGHT:"Rotate in clockwise direction",HINT_ROTATEX:"Rotate around X axis",HINT_ROTATEY:"Rotate around Y axis",HINT_ROTATEZ:"Rotate around Z axis",HINT_MOL_DISPLAY_TYPE:"Change molecule display style",HINT_SKELETAL:"Show molecule in skeletal style",HINT_CONDENSED:"Show molecule in condensed style",HINT_WIRE:"Show molecule in wire frame style",HINT_STICKS:"Show molecule in sticks style",HINT_BALLSTICK:"Show molecule in ball-stick style",HINT_SPACEFILL:"Show molecule in space-fill style",HINT_HIDEHYDROGENS:"Show/hide hydrogen atoms in model",HINT_OPENEDITOR:"Open an editor to modify displayed object",HINT_EDITOR_DONE:"Save the modification",HINT_EDITOR_CANCEL:"Discard the modification",CAPTION_NEWDOC:"New",CAPTION_UNDO:"Undo",CAPTION_REDO:"Redo",CAPTION_COPY:"Copy",CAPTION_CUT:"Cut",CAPTION_PASTE:"Paste",CAPTION_TOGGLE_SELECT:"Toggle select",CAPTION_CLONE_SELECTION:"Clone selection",CAPTION_TOGGLE_INSPECTOR:"Object inspector",CAPTION_MANIPULATE:"Select",CAPTION_MANIPULATE_MARQUEE:"Marquee select",CAPTION_MANIPULATE_LASSO:"Lasso select",CAPTION_MANIPULATE_BRUSH:"Brush select",CAPTION_MANIPULATE_ANCESTOR:"Select molecule",CAPTION_CLIENT_DRAGSCROLL:"Scroll",CAPTION_ERASE:"Erase",CAPTION_TRACK_INPUT:"Track",CAPTION_MOL_BOND:"Bond",CAPTION_MOL_BOND_SINGLE:"Single bond",CAPTION_MOL_BOND_DOUBLE:"Double bond",CAPTION_MOL_BOND_TRIPLE:"Triple bond",CAPTION_MOL_BOND_QUAD:"Quad bond",CAPTION_MOL_BOND_EXPLICIT_AROMATIC:"Aromatic bond",CAPTION_MOL_BOND_WEDGEUP:"Wedge up bond",CAPTION_MOL_BOND_WEDGEUP_INVERTED:"Wedge up bond 2",CAPTION_MOL_BOND_WEDGEDOWN:"Wedge down bond",CAPTION_MOL_BOND_WEDGEDOWN_INVERTED:"Wedge down bond 2",CAPTION_MOL_BOND_CLOSER:"Outer bond",CAPTION_MOL_BOND_WAVY:"Wavy bond",CAPTION_MOL_BOND_DOUBLE_EITHER:"Double Either bond",CAPTION_MOL_BOND_IONIC:"Ionic bond",CAPTION_MOL_BOND_COORDINATE:"Coordinate bond",CAPTION_MOL_BOND_METALLIC:"Metallic bond",CAPTION_MOL_BOND_HYDROGEN:"Hydrogen bond",CAPTION_MOL_BOND_KEKULIZE:"Kekulize",CAPTION_MOL_BOND_HUCKLIZE:"Hucklize",CAPTION_MOL_ATOM:"Atom",CAPTION_MOL_FORMULA:"Formula",CAPTION_MOL_ATOM_AND_FORMULA:"Atom & formula",CAPTION_MOL_CHARGE:"Charge",CAPTION_MOL_CHARGE_CLEAR:"Charge clear",CAPTION_MOL_CHARGE_POSITIVE:"Positive charge",CAPTION_MOL_CHARGE_NEGATIVE:"Negative charge",CAPTION_MOL_CHARGE_SINGLET:"Singlet radical",CAPTION_MOL_CHARGE_DOUBLET:"Monoradical",CAPTION_MOL_CHARGE_TRIPLET:"Triplet radical",CAPTION_MOL_ELECTRON_LONEPAIR:"Lone pair",CAPTION_TEXT_BLOCK:"Text block",CAPTION_IMAGE_BLOCK:"Image block",CAPTION_TEXT_IMAGE:"Text & image",CAPTION_MOL_FLEXCHAIN:"Flex chain",CAPTION_MOL_FLEXRING:"Flex ring",CAPTION_REPOSITORY_RING:"Rings",CAPTION_REPOSITORY_RING_3:"Cyclopropane",CAPTION_REPOSITORY_RING_4:"Cyclobutane",CAPTION_REPOSITORY_RING_5:"Cyclopentane",CAPTION_REPOSITORY_RING_6:"Cyclohexane",CAPTION_REPOSITORY_RING_7:"Cycloheptane",CAPTION_REPOSITORY_RING_8:"Cyclooctane",CAPTION_REPOSITORY_RING_AR_6:"Benzene",CAPTION_REPOSITORY_RING_AR_5:"Cyclopentadiene",CAPTION_REPOSITORY_CYCLOHEXANE_CHAIR1:"Cyclohexane chair 1",CAPTION_REPOSITORY_CYCLOHEXANE_CHAIR2:"Cyclohexane chair 2",CAPTION_REPOSITORY_CYCLOHEXANE_HARWORTH1:"Cyclohexane Haworth 1",CAPTION_REPOSITORY_CYCLOHEXANE_HARWORTH2:"Cyclohexane Haworth 2",CAPTION_REPOSITORY_CYCLOPENTANE_HARWORTH1:"Cyclopentane Haworth 1",CAPTION_REPOSITORY_CYCLOPENTANE_HARWORTH2:"Cyclopentane Haworth 2",CAPTION_REPOSITORY_METHANE:"Methane",CAPTION_REPOSITORY_FISCHER1:"Fischer projection 1",CAPTION_REPOSITORY_FISCHER2:"Fischer projection 2",CAPTION_REPOSITORY_FISCHER3:"Fischer projection 3",CAPTION_REPOSITORY_SAWHORSE_STAGGERED:"Sawhorse staggered",CAPTION_REPOSITORY_SAWHORSE_ECLIPSED:"Sawhorse eclipsed",CAPTION_REPOSITORY_SUBBOND_MARK:"Substituent bond",CAPTION_REPOSITORY_ARROWLINE:"Arrows & symbols",CAPTION_REPOSITORY_GLYPH:"Glyphs",CAPTION_REPOSITORY_GLYPH_LINE:"Line",CAPTION_REPOSITORY_GLYPH_OPEN_ARROW_LINE:"Open arrow line",CAPTION_REPOSITORY_GLYPH_TRIANGLE_ARROW_LINE:"Triangle arrow line",CAPTION_REPOSITORY_GLYPH_DI_OPEN_ARROW_LINE:"Bidirectional open arrow line",CAPTION_REPOSITORY_GLYPH_DI_TRIANGLE_ARROW_LINE:"Bidirectional triangle arrow line",CAPTION_REPOSITORY_GLYPH_REV_ARROW_LINE:"Reversible arrow line",CAPTION_REPOSITORY_GLYPH_OPEN_ARROW_DILINE:"Open arrow double line",CAPTION_REPOSITORY_GLYPH_OPEN_ARROW_ARC:"Open arrow arc",CAPTION_REPOSITORY_GLYPH_SINGLE_SIDE_OPEN_ARROW_ARC:"Single side open arrow arc",CAPTION_ELECTRON_PUSHING_ARROW:"Electron pushing arrow",CAPTION_ELECTRON_PUSHING_ARROW_DOUBLE:"Double electron pushing arrow",CAPTION_ELECTRON_PUSHING_ARROW_SINGLE:"Single electron pushing arrow",CAPTION_REPOSITORY_HEAT_SYMBOL:"Heat symbol",CAPTION_REPOSITORY_ADD_SYMBOL:"Add symbol",CAPTION_TEXT_FORMAT:"Text format",CAPTION_PICK_COLOR:"Color",CAPTION_FONTNAME:"Font name",CAPTION_FONTSIZE:"Font size",CAPTION_TEXT_DIRECTION:"Text direction",CAPTION_TEXT_DIRECTION_DEFAULT:"Default",CAPTION_TEXT_DIRECTION_LTR:"Left to right",CAPTION_TEXT_DIRECTION_RTL:"Right to left",CAPTION_TEXT_DIRECTION_TTB:"Top to bottom",CAPTION_TEXT_DIRECTION_BTT:"Bottom to top",CAPTION_TEXT_HORIZONTAL_ALIGN:"Text horizontal alignment",CAPTION_TEXT_VERTICAL_ALIGN:"Text vertical alignment",CAPTION_TEXT_ALIGN_DEFAULT:"Default",CAPTION_TEXT_ALIGN_LEADING:"Leading",CAPTION_TEXT_ALIGN_TRAILING:"Trailing",CAPTION_TEXT_ALIGN_CENTER:"Center",CAPTION_TEXT_ALIGN_LEFT:"Left",CAPTION_TEXT_ALIGN_RIGHT:"Right",CAPTION_TEXT_ALIGN_TOP:"Top",CAPTION_TEXT_ALIGN_BOTTOM:"Bottom",CAPTION_NODE_LABEL_DISPLAY_MODE:"Atom label display mode",CAPTION_NODE_LABEL_DISPLAY_MODE_DEFAULT:"Default",CAPTION_NODE_LABEL_DISPLAY_MODE_SHOWN:"Show label",CAPTION_NODE_LABEL_DISPLAY_MODE_HIDDEN:"Hide label",CAPTION_NODE_LABEL_DISPLAY_MODE_SMART:"Smart",CAPTION_ATOM_MODIFIER:"Atom",CAPTION_ATOM_MODIFIER_MIXED:"[A]",CAPTION_BOND_MODIFIER:"Bond",CAPTION_CHARGE_MODIFIER:"Charge",CAPTION_GLYPH_PATH_MODIFIER:"Path",CAPTION_REACTION_ARROW_AND_SEGMENT_PATH_MODIFIER:"Reaction arrow & segment",CAPTION_ARC_PATH_MODIFIER:"Arc",CAPTION_MULTI_ARC_PATH_MODIFIER:"Multi-Arc",CAPTION_ELECTRON_PUSHING_ARROW_MODIFIER:"Electron pushing arrow",CAPTION_BOND_FORMING_ELECTRON_PUSHING_ARROW_MODIFIER:"Bond forming arrow",TEXT_CHARGE_POSITIVE:"+",TEXT_CHARGE_NEGATIVE:"-",TEXT_CHARGE_UNKNOWN:"<sup>+</sup>/<sub>-</sub>",TEXT_CHARGE_NONE:"&#8709;",HINT_NEWDOC:"Create new document",HINT_UNDO:"Undo",HINT_REDO:"Redo",HINT_COPY:"Copy selection to internal clipboard",HINT_CUT:"Cut selection to internal clipboard",HINT_PASTE:"Paste from internal clipboard",HINT_CLONE_SELECTION:"Clone selection",HINT_TOGGLE_SELECT:"Toggle select",HINT_TOGGLE_INSPECTOR:"Show or hide object inspector panel",HINT_MANIPULATE:"Select tool",HINT_MANIPULATE_MARQUEE:"Marquee select",HINT_MANIPULATE_LASSO:"Lasso select",HINT_MANIPULATE_BRUSH:"Brush select",HINT_MANIPULATE_ANCESTOR:"Select molecule",HINT_CLIENT_DRAGSCROLL:"Scroll",HINT_ERASE:"Erase tool",HINT_TRACK_INPUT:"Track tool",HINT_MOL_BOND:"Bond tool",HINT_MOL_BOND_SINGLE:"Single bond",HINT_MOL_BOND_DOUBLE:"Double bond",HINT_MOL_BOND_TRIPLE:"Triple bond",HINT_MOL_BOND_QUAD:"Quad bond",HINT_MOL_BOND_EXPLICIT_AROMATIC:"Explicit aromatic bond",HINT_MOL_BOND_WEDGEUP:"Wedge up bond",HINT_MOL_BOND_WEDGEUP_INVERTED:"Wedge up bond 2",HINT_MOL_BOND_WEDGEDOWN:"Wedge down bond",HINT_MOL_BOND_WEDGEDOWN_INVERTED:"Wedge down bond 2",HINT_MOL_BOND_CLOSER:"Outer bond",HINT_MOL_BOND_WAVY:"Wavy bond",HINT_MOL_BOND_DOUBLE_EITHER:"Double either bond",HINT_MOL_BOND_IONIC:"Ionic bond",HINT_MOL_BOND_COORDINATE:"Coordinate bond",HINT_MOL_BOND_METALLIC:"Metallic bond",HINT_MOL_BOND_HYDROGEN:"Hydrogen bond",HINT_MOL_BOND_KEKULIZE:"Kekulize, convert explicit aromatic bonds to compartmental single and double ones",HINT_MOL_BOND_HUCKLIZE:"Hucklize, mark bonds on aromatic rings as explicit aromatic ones",HINT_MOL_ATOM:"Atom tool",HINT_MOL_FORMULA:"Formula tool",HINT_MOL_ATOM_AND_FORMULA:"Atom and formula tool",HINT_MOL_CHARGE:"Charge tool",HINT_MOL_CHARGE_CLEAR:"Clear charge and radical",HINT_MOL_CHARGE_POSITIVE:"Positive charge",HINT_MOL_CHARGE_NEGATIVE:"Negative charge",HINT_MOL_CHARGE_SINGLET:"Singlet radical",HINT_MOL_CHARGE_DOUBLET:"Monoradical",HINT_MOL_CHARGE_TRIPLET:"Triplet radical",HINT_MOL_ELECTRON_LONEPAIR:"Lone pair electrons",HINT_TEXT_BLOCK:"Text block tool",HINT_IMAGE_BLOCK:"Image block tool",HINT_TEXT_IMAGE:"Text and image tool",HINT_MOL_FLEXCHAIN:"Flex carbon chain",HINT_MOL_FLEXRING:"Flex carbon ring",HINT_REPOSITORY_RING:"Ring structures tool",HINT_REPOSITORY_RING_3:"Cyclopropane",HINT_REPOSITORY_RING_4:"Cyclobutane",HINT_REPOSITORY_RING_5:"Cyclopentane",HINT_REPOSITORY_RING_6:"Cyclohexane",HINT_REPOSITORY_RING_7:"Cycloheptane",HINT_REPOSITORY_RING_8:"Cyclooctane",HINT_REPOSITORY_RING_AR_6:"Benzene",HINT_REPOSITORY_RING_AR_5:"Cyclopentadiene",HINT_REPOSITORY_CYCLOHEXANE_CHAIR1:"Cyclohexane chair 1",HINT_REPOSITORY_CYCLOHEXANE_CHAIR2:"Cyclohexane chair 2",HINT_REPOSITORY_CYCLOHEXANE_HARWORTH1:"Cyclohexane Haworth 1",HINT_REPOSITORY_CYCLOHEXANE_HARWORTH2:"Cyclohexane Haworth 2",HINT_REPOSITORY_CYCLOPENTANE_HARWORTH1:"Cyclopentane Haworth 1",HINT_REPOSITORY_CYCLOPENTANE_HARWORTH2:"Cyclopentane Haworth 2",HINT_REPOSITORY_SUBBOND_MARK:"Substituent bond",HINT_REPOSITORY_METHANE:"Methane",HINT_REPOSITORY_FISCHER1:"Fischer projection with one chiral center",HINT_REPOSITORY_FISCHER2:"Fischer projection with two chiral centers",HINT_REPOSITORY_FISCHER3:"Fischer projection with three chiral centers",HINT_REPOSITORY_SAWHORSE_STAGGERED:"Sawhorse staggered",HINT_REPOSITORY_SAWHORSE_ECLIPSED:"Sawhorse eclipsed",HINT_REPOSITORY_ARROWLINE:"Arrows and symbols tool",HINT_REPOSITORY_GLYPH:"Glyphs",HINT_REPOSITORY_GLYPH_LINE:"Line",HINT_REPOSITORY_GLYPH_OPEN_ARROW_LINE:"Open arrow line",HINT_REPOSITORY_GLYPH_TRIANGLE_ARROW_LINE:"Triangle arrow line",HINT_REPOSITORY_GLYPH_DI_OPEN_ARROW_LINE:"Bidirectional open arrow line",HINT_REPOSITORY_GLYPH_DI_TRIANGLE_ARROW_LINE:"Bidirectional triangle arrow line",HINT_REPOSITORY_GLYPH_REV_ARROW_LINE:"Reversible arrow line",HINT_REPOSITORY_GLYPH_OPEN_ARROW_DILINE:"Open arrow double line",HINT_REPOSITORY_GLYPH_OPEN_ARROW_ARC:"Open arrow arc",HINT_REPOSITORY_GLYPH_SINGLE_SIDE_OPEN_ARROW_ARC:"Single side open arrow arc",HINT_REPOSITORY_HEAT_SYMBOL:"Heat symbol",HINT_REPOSITORY_ADD_SYMBOL:"Add symbol",HINT_ELECTRON_PUSHING_ARROW:"Electron pushing arrow",HINT_NODE_LABEL_DISPLAY_MODE:"Atom label display mode",HINT_TEXT_FORMAT:"Set text format",HINT_FONTNAME:"Set font name",HINT_FONTSIZE:"Set font size",HINT_PICK_COLOR:"Select color",HINT_TEXT_DIRECTION:"Set text direction",HINT_TEXT_HORIZONTAL_ALIGN:"Set text horizontal alignment",HINT_TEXT_VERTICAL_ALIGN:"Set text vertical alignment",HINT_CHARGE_NONE:"No charge",HINT_ATOM_MODIFIER:"Set atom",HINT_BOND_MODIFIER:"Set bond",HINT_CHARGE_MODIFIER:"Set charge",HINT_GLYPH_PATH_MODIFIER:"Set path properties",HINT_REACTION_ARROW_AND_SEGMENT_PATH_MODIFIER:"Set reaction arrow and segment properties",HINT_ARC_PATH_MODIFIER:"Set arc properties",HINT_MULTI_ARC_PATH_MODIFIER:"Set multi-arc properties",HINT_ELECTRON_PUSHING_ARROW_MODIFIER:"Set electron pushing arrow properties",HINT_BOND_FORMING_ELECTRON_PUSHING_ARROW_MODIFIER:"Set bond forming arrow properties",HINT_USE_ATOM_CUSTOM_COLOR:"(use atom custom color)",CAPTION_LOADDATA_DIALOG:"Load data",CAPTION_LOADDATA_DIALOG_APPENDMODE:"Append to current",CAPTION_SAVEDATA_DIALOG:"Save data",CAPTION_DATA_FORMAT:"Data format:",CAPTION_DATA_SRC:"Input or paste data below:",CAPTION_LOADDATA_FROM_FILE:"Load from file",CAPTION_CHOOSEFILEFORMAT:"Choose file format",CAPTION_SELECT_FORMAT:"Select format:",CAPTION_PREVIEW_FILE_CONTENT:"Preview: ",S_DEF_SAVE_FILENAME:"Unnamed",CAPTION_ATOMLIST_PERIODIC_TABLE:"more...",CAPTION_RGROUP:"Sub group",CAPTION_VARIABLE_ATOM:"Variable Atom (list)",CAPTION_VARIABLE_NOT_ATOM:"Variable Atom (not list)",CAPTION_PSEUDOATOM:"Pseudoatom",CAPTION_DUMMY_ATOM:"Dummy Atom",CAPTION_HETERO_ATOM:"Hetero Atom",CAPTION_ANY_ATOM:"Any Atom",CAPTION_ATOM:"Atom",CAPTION_SUBGROUP:"Subgroup",CAPTION_PERIODIC_TABLE_DIALOG:"Periodic table",CAPTION_PERIODIC_TABLE_DIALOG_SEL_ELEM:"Select element",CAPTION_PERIODIC_TABLE_DIALOG_SEL_ELEMS:"Select elements",CAPTION_TEXTBLOCK_INIT:"Enter text here",CAPTION_WIDTH:"Width",CAPTION_LENGTH:"Length",CAPTION_PATH_INDEX:"Path {0}",HINT_PATH_INDEX:"Path {0}",CAPTION_REACTION_ARROW_UNSET:"(Unset)",CAPTION_REACTION_ARROW_CUSTOM:"Custom",CAPTION_REACTION_ARROW_NORMAL:"Normal",CAPTION_REACTION_ARROW_RESONANCE:"Resonance",CAPTION_REACTION_ARROW_REVERSIBLE:"Reversible",CAPTION_REACTION_ARROW_RETROSYNTHESIS:"Retrosynthesis",HINT_REACTION_ARROW_UNSET:"Unset",HINT_REACTION_ARROW_CUSTOM:"Custom",HINT_REACTION_ARROW_NORMAL:"Normal arrow",HINT_REACTION_ARROW_RESONANCE:"Resonance arrow",HINT_REACTION_ARROW_REVERSIBLE:"Reversible arrow",HINT_REACTION_ARROW_RETROSYNTHESIS:"Retrosynthesis arrow",CAPTION_LINE_COUNT:"Line count",CAPTION_LINE_GAP:"Line gap",CAPTION_LINE:"Line",CAPTION_STARTING_ARROW:"Starting arrow",CAPTION_ENDING_ARROW:"Ending arrow",CAPTION_REACTION_ARROW_TYPE:"Reaction arrow type",CAPTION_ELECTRON_PUSHING_ARROW_TYPE:"Arrow type",CAPTION_OPPOSITE_ARROW_SIDES:"Opposite arrow sides",CAPTION_SAME_ARROW_SIDES:"Same arrow sides",CAPTION_ELECTRON_PUSHING_ARROW_1:"Single electron pushing arrow",CAPTION_ELECTRON_PUSHING_ARROW_1_ABBR:"Single",HINT_ELECTRON_PUSHING_ARROW_1:"Single electron pushing arrow",CAPTION_ELECTRON_PUSHING_ARROW_2:"Double electron pushing arrow",CAPTION_ELECTRON_PUSHING_ARROW_2_ABBR:"Double",HINT_ELECTRON_PUSHING_ARROW_2:"Double electron pushing arrow",CAPTION_BOND_FORMING_ELECTRON_PUSHING_ARROW_1:"Bond forming electron pushing arrow",HINT_BOND_FORMING_ELECTRON_PUSHING_ARROW_1:"Bond forming electron pushing arrow",LEGEND_CAPTION:"Legend",LEGEND_ELEM_SYMBOL:"Symbol",LEGEND_ELEM_NAME:"name",LEGEND_ATOMIC_NUM:"atomic number",LEGEND_ATOMIC_WEIGHT:"atomic weight",CAPTION_2D:"2D",CAPTION_3D:"3D",CAPTION_AUTOSIZE:"Autosize",CAPTION_AUTOFIT:"Autofit",CAPTION_SHOWSIZEINFO:"Show size info",CAPTION_LABEL_SIZE:"Size: ",CAPTION_BACKGROUND_COLOR:"Background color: ",CAPTION_WIDTH_HEIGHT:"width: {0}, height: {1}",PLACEHOLDER_WIDTH:"width",PLACEHOLDER_HEIGHT:"height",HINT_AUTOSIZE:"Whether graph size is determined by object automatically",HINT_AUTOFIT:"Whether object is zoomed to fullfill the whole graph",S_VALUE_DEFAULT:"(Default)"}),Kekule.Localization.addResource("en","ErrorMsg",{WIDGET_CLASS_NOT_FOUND:"Widget class not found",WIDGET_CAN_NOT_BIND_TO_ELEM:"Widget {0} can not be binded to element <{1}>",LOAD_CHEMDATA_FAILED:"Failed to load data",FILE_API_NOT_SUPPORTED:"File operations are not supported by your current web browser. Please update it.",DRAW_BRIDGE_NOT_SUPPORTED:"It seems that your web browser is not modern enough to support the drawing function. Please update it.",COMMAND_NOT_REVERSIBLE:"Command can not be undone",PAGE_INDEX_OUTOF_RANGE:"Page index out of range",FETCH_DATA_TIMEOUT:"Time out to fetch data",RENDER_TYPE_CHANGE_NOT_ALLOWED:"It is not allowed to change render type",CAN_NOT_CREATE_EDITOR:"Creating editor failed",CAN_NOT_SET_COORD_OF_CLASS:"Can not set coordinate of instance of {0}.",CAN_NOT_SET_DIMENSION_OF_CLASS:"Can not set dimension of instance of {0}.",CAN_NOT_MERGE_CONNECTORS:"Specified connectors can not be merged.",NOT_A_VALID_ATOM:"Not a valid atom",INVALID_ATOM_SYMBOL:"Invalid atom symbol",INVALID_OR_EMPTY_IMAGE:"Image is empty or invalidate"}),Kekule.LOCAL_RES=!0,Kekule.Localization.setCurrModule("objDefines"),Kekule.OBJDEF_TEXTS={},Kekule.Localization.addResource("en","OBJDEF_TEXTS",{TITLE_PREFIX:"TITLE_",DESCRIPTION_PREFIX:"DES_",DES_ID:"Unique ID for object.",Render:{GeneralConfigs:{TITLE_drawOpacity:"Opacity",DES_drawOpacity:"Opacity (between 0-1) to draw objects"},Render2DConfigs:{TITLE_generalConfigs:"General render settings",DES_generalConfigs:"General render settings",TITLE_moleculeDisplayConfigs:"Molecule display settings",DES_moleculeDisplayConfigs:"Settings about molecule display styles",TITLE_displayLabelConfigs:"Display label settings",DES_displayLabelConfigs:"Settings of displayed label in molecule/chem object",TITLE_textFontConfigs:"Text and font settings",DES_textFontConfigs:"Settings about text and font of display",TITLE_lengthConfigs:"Lengths settings",DES_lengthConfigs:"Lengths to display molecule/chem object",TITLE_colorConfigs:"Color settings",DES_colorConfigs:"Color settings to display molecule/chem object"},MoleculeDisplayConfigs:{TITLE_defMoleculeDisplayType:"Default molecule display mode",DES_defMoleculeDisplayType:"Default display type of molecule: in skeletal or in condensed mode",TITLE_defNodeDisplayMode:"Default atom display mode",DES_defNodeDisplayMode:"Default mode to display atom in molecule",TITLE_defHydrogenDisplayLevel:"Default hydrogen display level",DES_defHydrogenDisplayLevel:"How to display explicit or implicit hydrogens of atom",TITLE_defChargeMarkType:"Default charge mark type",DES_defChargeMarkType:null,TITLE_partialChargeDecimalsLength:"Decimal length of partial charge",DES_partialChargeDecimalsLength:"If an atom has a partical charge (e.g., +1.5), how many digits after decimal point should be displayed"},DisplayLabelConfigs:{TITLE_enableIsotopeAlias:"Enable isotope alias",DES_enableIsotopeAlias:"Whether isotope alias (e.g. D for 2H) is used to display atom label.",TITLE_unsetElement:"Unset element",DES_unsetElement:"Label for unset or unknown element",TITLE_dummyAtom:"Dummy atom",DES_dummyAtom:"Label for dummy atom",TITLE_heteroAtom:"Hetero atom",DES_heteroAtom:"Label for general hetero atom",TITLE_anyAtom:"Any atom",DES_anyAtom:"Label for atom wildcard",TITLE_variableAtom:"Variable atom",DES_variableAtom:"Label for variable atom or atom list",TITLE_rgroup:"RGroup",DES_rgroup:"Label for RGroup",TITLE_isoListLeadingBracket:"Atom list leading bracket",TITLE_isoListTailingBracket:"Atom list tailing bracket",TITLE_isoListDelimiter:"Atom delimiter in list",TITLE_isoListDisallowPrefix:"Prefix of not-atom list"},TextFontConfigs:{TITLE_labelFontFamily:"Label font",DES_labelFontFamily:"Font to draw general label",TITLE_atomFontFamily:"Atom font",DES_atomFontFamily:"Font to draw atom label",TITLE_supFontSizeRatio:"Superscript font size ratio",DES_supFontSizeRatio:"Ratio of Superscript text size to normal text size",TITLE_subFontSizeRatio:"Subscript font size ratio",DES_subFontSizeRatio:"Ratio of Subscript text size to normal text size",TITLE_superscriptOverhang:"Superscript text overhang",DES_superscriptOverhang:null,TITLE_subscriptOversink:"Subscript text oversink",DES_subscriptOversink:null,TITLE_textCharDirection:"Text direction",DES_textCharDirection:"Default text direction",TITLE_textHorizontalAlign:"Horizontal text alignment",DES_textHorizontalAlign:"Default horizontal text alignment of label",TITLE_textVerticalAlign:"Vertical text alignment",DES_textVerticalAlign:"Default vertical text alignment of label"},LengthConfigs:{TITLE_labelFontSize:"Label text size",DES_labelFontSize:"Size of general label text",TITLE_atomFontSize:"Atom text size",DES_atomFontSize:"Size of atom label text",TITLE_allenCenterAtomRadius:"Allen center radius",DES_allenCenterAtomRadius:"Radius to draw dot on center carbon atom in allen",TITLE_chargeMarkFontSize:"Charge mark size",DES_chargeMarkFontSize:"Font size of charge mark",TITLE_chargeMarkMargin:"Charge mark margin",DES_chargeMarkMargin:"Margin between charge mark and atom",TITLE_defBondLength:"Default bond length",DES_defBondLength:"Default length of a chemical bond",TITLE_bondLineWidth:"Bond line width",DES_bondLineWidth:"Line width to draw a chemical bond",TITLE_hashSpacing:"Hash spacing",DES_hashSpacing:"Spacing between small lines in hash bond",TITLE_multipleBondSpacingRatio:"Multiple bond spacing ratio",DES_multipleBondSpacingRatio:"Ratio of spacing between two lines in double or triple bond to bond length.",TITLE_multipleBondMaxAbsSpacing:"Max multiple bond spacing",DES_multipleBondMaxAbsSpacing:"Maximum spacing between multiple bond",TITLE_bondArrowLength:"Bond arrow length",DES_bondArrowLength:"The length of end triangle in arrow bond",TITLE_bondArrowWidth:"Bond arrow width",DES_bondArrowWidth:"The width of end triangle in arrow bond",TITLE_bondWedgeWidth:"Bond wedge max width",DES_bondWedgeWidth:"The width of ending point in wedge bond",TITLE_bondWedgeHashMinWidth:"Bond wedge min width",DES_bondWedgeHashMinWidth:"The width of starting point in wedge bond",TITLE_bondWavyRadius:"Bond wavy radius",DES_bondWavyRadius:"Radius to draw arc of wavy bond",TITLE_glyphStrokeWidth:"Glyph stroke width",DES_glyphStrokeWidth:"The default width of glyph strokes",TITLE_autofitContextPadding:"Autofit context padding",DES_autofitContextPadding:"Padding of autofit widget edge and drawn object"},ColorConfigs:{TITLE_useAtomSpecifiedColor:"Use element specified color",DES_useAtomSpecifiedColor:"Whether use different color on different element",TITLE_labelColor:"Label color",DES_labelColor:"Default color of general label",TITLE_atomColor:"Atom color",DES_atomColor:"Default color of atom label",TITLE_bondColor:"Bond color",DES_bondColor:"Default color of bond",TITLE_glyphStrokeColor:"Glyph stroke color",DES_glyphStrokeColor:"Default stroke color of glyph",TITLE_glyphFillColor:"Glyph fill color",DES_glyphFillColor:"Default fill color of glyph"},Render3DConfigs:{TITLE_generalConfigs:"General render settings",DES_generalConfigs:"General render settings",TITLE_moleculeDisplayConfigs:"Molecule display settings",DES_moleculeDisplayConfigs:"Settings about molecule display styles",TITLE_environmentConfigs:"3D environment settings",DES_environmentConfigs:"Settings of 3D environment",TITLE_modelConfigs:"3D model settings",DES_modelConfigs:"Settings to render a 3D molecule model",TITLE_lengthConfigs:"Lengths settings",DES_lengthConfigs:"Lengths to display molecule"},Render3DEnvironmentConfigs:{TITLE_graphicQuality:"Graphic quality",DES_graphicQuality:"Quality of 3D graphic"},Molecule3DDisplayConfigs:{TITLE_defMoleculeDisplayType:"Default molecule display type",DES_defMoleculeDisplayType:"Draw molecule in wire, stick, ball stick or space fill mode",TITLE_defBondSpliceMode:"Bond splice mode",DES_defBondSpliceMode:"How to draw a splice mode between two atoms with different color",TITLE_defDisplayMultipleBond:"Display multiple bond",DES_defDisplayMultipleBond:"Whether draw multiple bond lines for double or triple bond",TITLE_defBondColor:"Default bond color",DES_defBondColor:"Default bond color",TITLE_defAtomColor:"Default atom color",DES_defAtomColor:"Default atom color",TITLE_useAtomSpecifiedColor:"Use element specified color",DES_useAtomSpecifiedColor:"Whether use different color on different element"},Model3DConfigs:{TITLE_hideHydrogens:"Hide hydrogens",DES_hideHydrogens:"Whether hide all hydrogen atoms in 3D model",TITLE_useVdWRadius:"Use von dar Waals radius",DES_useVdWRadius:"Whether use atom's von dar Waals radius to draw 3D model",TITLE_multiConnectorRadiusRatio:"Multi-bond radius ratio",DES_multiConnectorRadiusRatio:"If use multi-cylinder for multibond, this value is the radius ratio between multi and single bond",TITLE_multiConnectorMarginRatio:"Multi-bond margin ratio",DES_multiConnectorMarginRatio:"If multi-cylinder is used for multibond, ratio of margin between cylinders and radius of cylinder"},Length3DConfigs:{TITLE_fixedNodeRadius:"Fixed atom radius",DES_fixedNodeRadius:"If vdW radius of atom is not used, this value will be used for all atom's radius",TITLE_connectorRadius:"Bond radius",DES_connectorRadius:"Bond will be draw based on this radius in stick or ball_stick mode",TITLE_connectorLineWidth:"Bond line width",DES_connectorLineWidth:"Bond will be draw on this width in wire mode"}},Widget:{BaseWidget:{TITLE_settingFacade:"General settings",DES_settingFacade:"General settings"}},ChemWidget:{ChemObjDisplayer:{TITLE_enableLoadNewFile:"Enable load data",DES_enableLoadNewFile:"Whether loading new data is enabled"},ChemObjDisplayerConfigs:{TITLE_ioConfigs:"I/O settings",DES_ioConfigs:"Settings of input/output"},ChemObjDisplayerIOConfigs:{TITLE_canonicalizeBeforeSave:"Canonicalize before save",DES_canonicalizeBeforeSave:"Whether canonicalize molecule before saving it"},Viewer:{TITLE_enableDirectInteraction:"Enable direct interaction",DES_enableDirectInteraction:"Whether interaction with chem object in viewer is enabled",TITLE_enableTouchInteraction:"Enable touch interaction",DES_enableTouchInteraction:"Whether touch interaction is enabled",TITLE_enableToolbar:"Enable toolbar",DES_enableToolbar:"Whether toolbar of viewer is displayed",TITLE_toolbarPos:"Toolbar Position",DES_toolbarPos:"Position of toolbar in viewer",TITLE_toolbarMarginHorizontal:"Toolbar horizontal margin",DES_toolbarMarginHorizontal:"Horizontal margin of toolbar to viewer edge",TITLE_toolbarMarginVertical:"Toolbar vertical margin",DES_toolbarMarginVertical:"Vertical margin of toolbar to viewer edge",TITLE_enableEdit:"Enable editing",DES_enableEdit:"Whether edit chem object in viewer is enabled",TITLE_modalEdit:"Modal editing",DES_modalEdit:"Using modal dialog or popup dialog to edit chem object"}},Editor:{BaseEditorConfigs:{TITLE_uiMarkerConfigs:"UI marker settings",DES_uiMarkerConfigs:"Settings of interaction marker",TITLE_interactionConfigs:"Interaction settings",DES_interactionConfigs:"Settings about interaction of editor",TITLE_structureConfigs:"Structure settings",DES_structureConfigs:"Settings about creating molecule structure"},ChemSpaceEditorConfigs:{TITLE_chemSpaceConfigs:"Chem space settings",DES_chemSpaceConfigs:"Settings about chem space/chem document",TITLE_styleSetterConfigs:"Style setter settings",DES_styleSetterConfigs:"Settings of style toolbar of editor"},InteractionConfigs:{TITLE_enableTrackOnNearest:"Enale track on nearest",DES_enableTrackOnNearest:"If setting to true, hot track or selection will focus on nearest object to current position, otherwise, the topmost object around will be focused.",TITLE_enableHotTrack:"Enable hot track",DES_enableHotTrack:"Whether highlighting objects under mouse position",TITLE_autoSelectNewlyInsertedObjects:"Auto select new inserted objects",DES_autoSelectNewlyInsertedObjects:"Whether select objects newly inserted or modified in editor automatically",TITLE_objBoundTrackMinInflation:"Object bound minimal inflation (default)",DES_objBoundTrackMinInflation:"The default minimal inflation of the bound of object to make it easier to select",TITLE_objBoundTrackMinInflationMouse:"Object bound minimal inflation (mouse)",DES_objBoundTrackMinInflationMouse:"The minimal inflation of the bound of object to make it easier to select when using mouse as pointer device",TITLE_objBoundTrackMinInflationTouch:"Object bound minimal inflation (touch)",DES_objBoundTrackMinInflationTouch:"The minimal inflation of the bound of object to make it easier to select when touching on screen",TITLE_objBoundTrackMinInflationPen:"Object bound minimal inflation (pen)",DES_objBoundTrackMinInflationPen:"The minimal inflation of the bound of object to make it easier to select when using pen as pointer device",TITLE_objBoundTrackInflationRatio:"Object bound inflation ratio (default)",DES_objBoundTrackInflationRatio:"The default inflation ratio (compaing with the default bond length) of the bound of object to make it easier to select",TITLE_objBoundTrackInflationRatioMouse:"Object bound inflation ratio (mouse)",DES_objBoundTrackInflationRatioMouse:"The inflation ratio (compaing with the default bond length) of the bound of object to make it easier to select when using mouse as pointer device",TITLE_objBoundTrackInflationRatioPen:"Object bound inflation ratio (pen)",DES_objBoundTrackInflationRatioPen:"The inflation ratio (compaing with the default bond length) of the bound of object to make it easier to select when using pen as pointer device",TITLE_objBoundTrackInflationRatioTouch:"Object bound inflation ratio (touch)",DES_objBoundTrackInflationRatioTouch:"The inflation ratio (compaing with the default bond length) of the bound of object to make it easier to select when touching on screen",TITLE_selectionMarkerInflation:"Selection marker inflation",DES_selectionMarkerInflation:"Inflation of object selection mark, makes it easier to see the containing objects",TITLE_selectionMarkerEdgeInflation:"Selection edge inflation",DES_selectionMarkerEdgeInflation:"Inflation when judging if a coord is on selection mark edge",TITLE_constrainedRotateStep:"Constrained rotation step",DES_constrainedRotateStep:"Constrained rotation step, in arc",TITLE_rotationLocationPointDistanceThreshold:"Rotation starting min distance",DES_rotationLocationPointDistanceThreshold:"Rotation will occur only when mouse point distance (from rotation center) larger than this value",TITLE_directedMoveDistanceThreshold:"Direct move min distance",DES_directedMoveDistanceThreshold:"Direct moving will only be done if moved distance large than this value",TITLE_enablePartialAreaSelecting:"Enable partial selecting",DES_enablePartialAreaSelecting:"If this value is true, when drag a selecting rubber band, object partly in the band will be totally selected",TITLE_selectingBrushWidth:"Brush selecting Width",DES_selectingBrushWidth:"Width of brush in brush selecting",TITLE_enableOffSelectionManipulation:"Enable off-selection manipulation",DES_enableOffSelectionManipulation:"When setting to true, you can still move, resize or rotate selected objects by holding mouse or touch outside selection for a while",TITLE_offSelectionManipulationActivatingTimeThreshold:"Off-selection manipulation hold time",DES_offSelectionManipulationActivatingTimeThreshold:"The minimal time (in ms) need for holding mouse or touch to invoke off-selection manipulation",TITLE_selectionMarkerDefPulseDuration:"Default selection mark pulse duration",DES_selectionMarkerDefPulseDuration:"The duration (in ms) of selection mark pulse when the selection is been emphasised",TITLE_selectionMarkerDefPulseCount:"Default selection mark pulse count",DES_selectionMarkerDefPulseCount:"The pulse count when the selection is been emphasised",TITLE_rotationRegionInflation:"Rotation region inflation",DES_rotationRegionInflation:"User can rotate the selected objects by pressing and move mouse in this inflated region outside selection",TITLE_enableMergePreview:"Enable merge preview",DES_enableMergePreview:"Whether a preview operation is used rather then the actual merge operation when merge two objects in editor during manipulation. Turn on this option may improve the performance of object manipulation.",TITLE_enableGestureManipulation:"Enable gesture manipulation",DES_enableGestureManipulation:"Whether user can use touch gestures (e.g. pinch) to scale or rotate selected objects in editor",TITLE_enableGestureZoomOnEditor:"Enable gesture zoom on editor",DES_enableGestureZoomOnEditor:"Whether user can use pinch gesture to zoom in or out the editor when there is no selection existed",TITLE_trackSimplifierDistanceThreshold:"Track-input curve simplification threshold",DES_trackSimplifierDistanceThreshold:"Distance threshold in simplifying curve drawn by track-input tool",TITLE_trackSimplifierIgnoreSegmentThreshold:"Track-input ignored segment threshold",DES_trackSimplifierIgnoreSegmentThreshold:"Segment length less than this threshold drawn by track-input will be ignored in parsing",TITLE_trackMergeDistanceThreshold:"Track-input merge distance threshold",DES_trackMergeDistanceThreshold:"If a joint or end point of line segment drawn by track-inpu tool is close to another line segment (less than this threshold), it will be regarded on that line.",TITLE_trackOptimizationAngleConstraint:"Track-input optimization line cross angle constraint",DES_trackOptimizationAngleConstraint:null,TITLE_trackOptimizationDistanceConstraints:"Track-input optimization line length constraint",DES_trackOptimizationDistanceConstraints:null,TITLE_trackOptimizationPrimaryDistanceConstraint:"Track-input optimization primary line length",DES_trackOptimizationPrimaryDistanceConstraint:null,TITLE_autoAdjustZoomLevelOnTrackTouching:null,DES_autoAdjustZoomLevelOnTrackTouching:null,TITLE_editorInitialZoom:"Editor initial zoom level",DES_editorInitialZoom:"The initial zoom level of editor",TITLE_atomSetterFontSize:"Atom setter font size",DES_atomSetterFontSize:"Font size of atom setter",TITLE_allowUnknownAtomSymbol:"Allow unknown atom symbol",DES_allowUnknownAtomSymbol:"Allow inputting unknown symbol and handle it as pseudo atom in atom setter",TITLE_clonedObjectScreenOffset:"Copied object coord offset",DES_clonedObjectScreenOffset:"The distance between copied objects and origin objects when doing paste selection action in editor"},UiMarkerConfigs:{TITLE_hotTrackerColor:"Hot track mark color",DES_hotTrackerColor:"Color of hot track mark",TITLE_hotTrackerOpacity:"Hot track mark opacity",DES_hotTrackerOpacity:"Opacity of hot track marker, value from 0 to 1",TITLE_selectionMarkerStrokeColor:"Selection mark stroke color",DES_selectionMarkerStrokeColor:"Stroke color of selection mark",TITLE_selectionMarkerStrokeWidth:"Selection mark stroke width",DES_selectionMarkerStrokeWidth:"Width of selection mark stroke",TITLE_selectionMarkerFillColor:"Selection mark fill color",DES_selectionMarkerFillColor:"Fill color of selection mark.",TITLE_selectionMarkerOpacity:"Selection mark opacity",DES_selectionMarkerOpacity:"Opacity of selection mark, value from 0 to 1",TITLE_selectionMarkerEmphasisOpacity:"Emphasised selection mark opacity",DES_selectionMarkerEmphasisOpacity:"Opacity of emphasised selection marker, value from 0 to 1",TITLE_selectingMarkerStrokeColor:"Selecting mark stroke color",DES_selectingMarkerStrokeColor:"Stroke color of selecting rubber band mark",TITLE_selectingMarkerStrokeWidth:"Selecting mark stroke width",DES_selectingMarkerStrokeWidth:"Stroke width of selection rubber band",TITLE_selectingMarkerStrokeDash:"Selecting mark dash style",DES_selectingMarkerStrokeDash:"Dash style of selecting rubber band",TITLE_selectingMarkerFillColor:"Selecting mark fill color",DES_selectingMarkerFillColor:"Fill color of selecting mark. Usually this value should be left blank (not filled)",TITLE_selectingMarkerOpacity:"Selecting mark opacity",DES_selectingMarkerOpacity:"Opacity of selecting mark, value from 0 to 1",TITLE_selectingBrushMarkerStrokeColor:"Brush selecting mark stroke color",DES_selectingBrushMarkerStrokeColor:"Stroke color of brush selecting mark",TITLE_selectingBrushMarkerStrokeDash:"Brush selecting mark dash style",DES_selectingBrushMarkerStrokeDash:"Dash style of brush selecting track",TITLE_selectingBrushMarkerStrokeLineCap:"Brushing selecting mark line-cap style",DES_selectingBrushMarkerStrokeLineCap:"Line-cap style of both ends of brush selecting track",TITLE_selectingBrushMarkerStrokeLineJoin:"Brushing selecting mark join point style",DES_selectingBrushMarkerStrokeLineJoin:"Join style of brush selection track segments",TITLE_selectingBrushMarkerOpacity:"Brush selecting mark opacity",DES_selectingBrushMarkerOpacity:"Opacity of brush selecting mark, value from 0 to 1",TITLE_trackMarkerStrokeColor:"Track-input mark stroke color",DES_trackMarkerStrokeColor:"Stroke color of track mark when using track-input tool to draw a structure",TITLE_trackMarkerStrokeWidth:"Track-input mark stroke width",DES_trackMarkerStrokeWidth:"Stroke width of track mark when using track-input tool to draw a structure",TITLE_trackMarkerStrokeDash:"Track-input mark dash style",DES_trackMarkerStrokeDash:"Dash style of track mark when using track-input tool to draw a structure",TITLE_trackMarkerOpacity:"Track-input mark opacity",DES_trackMarkerOpacity:"Opacity of track mark when using track-input tool to draw a structure",TITLE_flexStructureAssocMarkerColor:"Flex structure association mark color",DES_flexStructureAssocMarkerColor:"Color of mark showing atom count of flex ring/chain tool",TITLE_flexStructureAssocMarkerOpacity:"Flex structure association mark opacity",DES_flexStructureAssocMarkerOpacity:"Opacity of mark showing atom count of flex ring/chain tool",TITLE_flexStructureAssocMarkerFontSize:"Flex structure association mark font size",DES_flexStructureAssocMarkerFontSize:"Font size of mark showing atom count of flex ring/chain tool",TITLE_flexStructureAssocMarkerFontFamily:"Flex structure association mark font family",DES_flexStructureAssocMarkerFontFamily:"Font family of mark showing atom count of flex ring/chain tool"},StructureConfigs:{TITLE_defBondType:"Default bond type",DES_defBondType:"Default type of bond",TITLE_defBondOrder:"Default bond order",DES_defBondOrder:"Default bond order",TITLE_defBondLength:"Default bond length",DES_defBondLength:"Default bond length",TITLE_defIsotopeId:"Default isotope",DES_defIsotopeId:"Default isotope when adding a new atom",TITLE_maxFlexChainAtomCount:"Maximum flex chain atom count",DES_maxFlexChainAtomCount:"Maximum atom count when inputting with flex chain tool",TITLE_minFlexChainAtomCount:"Minimal flex chain atom count",DES_minFlexChainAtomCount:"Minimal atom count when inputting with flex chain tool",TITLE_maxFlexRingAtomCount:"Maximum flex ring atom count",DES_maxFlexRingAtomCount:"Maximum atom count when inputting with flex ring tool",TITLE_minFlexRingAtomCount:"Minimal flex ring atom count",DES_minFlexRingAtomCount:"Minimal atom count when inputting with flex ring tool",TITLE_enabledNonAtomNodeTypes:"Available non-atom structure node types",DES_enabledNonAtomNodeTypes:"Non-atom structure node types available in editor",TITLE_enabledBondForms:"Available bond forms",DES_enabledBondForms:"Bond forms available in editor"},ChemSpaceConfigs:{TITLE_defScreenSize2D:"Default 2D screen size",TITLE_defScreenSize3D:"Default 3D screen size",TITLE_defPadding:"Default padding",DES_defPadding:"Padding on top when adding an unpositioned object to container chem space"},BaseEditor:{TITLE_enableCreateNewDoc:"Enable create new document",DES_enableCreateNewDoc:"Whether creating a new document is allowed",TITLE_initOnNewDoc:"Starts with a new document",DES_initOnNewDoc:"Whether create a new document automatically when composer is initialized",TITLE_enableOperHistory:"Enable undo",DES_enableOperHistory:"Whether undo/redo is enabled"},Composer:{TITLE_enableStyleToolbar:"Enable style toolbar",DES_enableStyleToolbar:"Whether display style toolbar to set color, font and size of objects",TITLE_allowCreateNewChild:"Enable create new child object",DES_allowCreateNewChild:"Whether new direct child of document can be created"}}});
\ No newline at end of file
Kekule.Localization.setCurrModule("general"),Kekule.Localization.addResource("zh","Texts",{UNNAMED:"未命名"}),Kekule.Localization.addResource("zh","ErrorMsg",{MODULE_NOT_LOADED:"模块{0}未载入",NON_OWN_PROPERTY_CANNOT_BE_REPLACED:"只能替换对象的直接属性",EMPTY_DOC:"文档无内容",ELEMENT_NOTSET:"未设置元素",EMPTY_RESURI:"资源URI无内容",CANNOT_LOAD_RES_OF_URI:"无法载入资源URI:",LIST_ITEM_CLASS_MISMATCH:"条目类型错误,无法加入列表",CANNOT_CLEAR_WEAKMAP:"Can not clear a weak map",CANNOT_GET_KEY_LIST_IN_WEAKMAP:"Can not get key array from a weak map",CANNOT_GET_VALUE_LIST_IN_WEAKMAP:"Can not get value array from a weak map",INVALID_CHEMELEMENT:"无效的化学元素",INVALID_ISOTOPE:"无效的同位素",UNABLE_ADD_MISTYPED_NODE:"无法向键/连接符上连接错误的原子/顶点",UNABLE_ADD_DIFF_OWNER_OBJ:"对象有着不同的宿主,无法连接在同一键/连接符上",CHEMSTRUCTUREOBJECTGROUP_ITEMCLASS_MISMATCH:"条目类型不符",SORT_FUNC_UNSET:"排序函数未设置",SOURCE_FRAGMENT_NOT_SET:"未指定源分子",UNABLE_ADD_NONMOLECULE_MAP:"仅能向反应物或生成物中添加分子",CANNOT_ADD_NON_NODE_NOR_CONNECTOR_TO_STRUCT_CONTAINER:"仅能向结构中添加原子、键或顶点、连接符",REGISTERED_CANONICALIZATION_EXECUTOR_NOT_FOUND:"无法找到注册的归一化执行器",ERROR_LOADING_FILE:"文件载入错误:",READER_ID_ALREADY_EXISTS:"Can not register reader: id already exists",WRITER_ID_ALREADY_EXISTS:"Can not register writer: id already exists",FAIL_TO_READ_FORMAT:"读入数据失败,格式:",NO_SUITABLE_READER_FOR_FORMAT:"无法读入数据,格式:",NO_SUITABLE_READER_FOR_MIMETYPE:"无法读入数据,MIME类型:",NO_SUITABLE_READER_FOR_FILEEXT:"无法读入数据,文件后缀:",NO_SUITABLE_WRITER_FOR_FORMAT:"无法写入数据,格式:",NO_SUITABLE_WRITER_FOR_MIMETYPE:"无法写入数据,MIME类型:",NO_SUITABLE_WRITER_FOR_FILEEXT:"无法写入数据,文件后缀:",AJAX_FILELOADER_NOT_FOUND:"AJAX file loader not found, can not load URL",FAIL_TO_LOAD_FILE_URL:"载入文件或链接失败:",CML_ELEM_READER_NOT_FOUND:"CML元素<{0}>读入器不存在",ATOMID_NOT_EXISTS:"原子标识(ID)不存在:",BONDID_NOT_EXISTS:"键标识(ID)不存在:",CML_ELEM_WRITER_TYPE_INPROPER:"{0}不是合适的CML元素{1}的写入器",CML_CAN_NOT_OUTPUT_TO_EMPTY_ELEMENT:"无法向空的CML元素中输出内容",UNABLE_TO_OUTPUT_AS_CML:"无法将对象<{0}>输出至CML",MDL_CTAB_ATOM_CANNOT_CREATE:"无法从源MDL格式数据中创建原子",MDL_CTAB_BOND_CANNOT_CREATE:"无法从源MDL格式数据中创建化学键",CAN_NOT_WRITE_NON_MOLECULE_TO_MOL:"对象并非分子,无法输出至分子连接表",MOLECULE_HAS_NO_CTAB_TO_OUTPUT:"分子无连接表,无法输出至MDL格式数据",NOT_MDL2000_FORMAT_DATA:"数据格式错误:并非MDL 2000",NOT_MDL_RXN_DATA:"并非MDL反应(RXN)数据",MALFORMED_MDL3000_COUNTLINE:"MDL 3000计数行格式错误",MDL3000_ATOMBLOCK_NOT_FOUND:"无法找到原子块,错误的MDL 3000数据?",NOT_MDL_FORMAT_DATA:"数据格式错误:并非MDL 2000或3000",NOT_MDL2000_RXN_DATA:"并非MDL RXN 2000数据",NOT_MDL3000_RXN_DATA:"并非MDL RXN 3000数据",NOT_MDL3000_RXN_COUNTLINE:"读入RXN 3000计数行错误",MDL_OUTPUT_DATATYPE_NOT_TEXT:"MDL数据无法输出为非文本格式",MDL_INPUT_DATATYPE_NOT_TEXT:"非文本格式数据,非法的MDL源数据",UNABLE_TO_OUTPUT_AS_MDL:"无法将对象<{0}>输出至MDL格式数据",KCJ_INPUT_DATATYPE_NOT_JSON_OR_TEXT:"非文本或JSON格式数据,非法的KCJ源数据",KCJ_OUTPUT_DATATYPE_NOT_JSON_OR_TEXT:"无法输出为非文本或JSON格式",KCX_INPUT_DATATYPE_NOT_DOM_OR_TEXT:"非文本或DOM格式数据,非法的KCX源数据",KCX_OUTPUT_DATATYPE_NOT_DOM_OR_TEXT:"无法输出为非文本或DOM格式",JSON_SERIALIZER_NOT_EXISTS:"JSON序列化器不存在",XML_SERIALIZER_NOT_EXISTS:"XML序列化器不存在",INAVAILABLE_AUTOSCALE_REF_LENGTH:"无法计算自动缩放所需的长度",FORMULA_RENDERER_3D_NOT_AVAILABLE:"分子式3D渲染器暂不可用",CANNOT_FIND_SUITABLE_RENDERER_FOR_OBJ:"无法找到合适的渲染器",CALC_TERMINATED_BY_USER:"计算过程被用户中断",CALC_SERVICE_UNAVAILABLE:"计算服务“{0}”不可用"}),Kekule.Localization.setCurrModule("widget"),Kekule.Localization.addResource("zh","WidgetTexts",{CAPTION_OK:"确定",CAPTION_CANCEL:"取消",CAPTION_YES:"",CAPTION_NO:"",CAPTION_BROWSE_COLOR:"浏览颜色",HINT_BROWSE_COLOR:"浏览更多颜色",S_COLOR_UNSET:"(未设置)",S_COLOR_DEFAULT:"(缺省值)",S_COLOR_MIXED:"(多个值)",S_COLOR_TRANSPARENT:"(透明)",S_OBJECT_UNSET:"(无)",S_ITEMS:"条目",S_OBJECT:"对象",S_VALUE_UNSET:"(未设置)",CAPTION_MENU:"菜单",HINT_MENU:"打开菜单",S_INSPECT_NONE:"(无)",S_INSPECT_OBJECTS:"({0}个对象)",S_INSPECT_ID_OBJECT:"{0}: {1}",S_INSPECT_ANONYMOUS_OBJECT:"({0})",CAPTION_TOGGLE_TEXTWRAP:"切换文本换行",CAPTION_INC_TEXT_SIZE:"增大字号",CAPTION_DEC_TEXT_SIZE:"减小字号",HINT_TOGGLE_TEXTWRAP:"切换文本是否自动换行",HINT_INC_TEXT_SIZE:"增大字号",HINT_DEC_TEXT_SIZE:"减小字号",HINT_CHOOSE_FONT_FAMILY:"选择字体",CAPTION_FIRST_PAGE:"首页",CAPTION_LAST_PAGE:"末页",CAPTION_PREV_PAGE:"前一页",CAPTION_NEXT_PAGE:"后一页",HINT_FIRST_PAGE:"首页",HINT_LAST_PAGE:"末页",HINT_PREV_PAGE:"前一页",HINT_NEXT_PAGE:"后一页",HINT_CURR_PAGE:"当前页",MSG_RETRIEVING_DATA:"载入数据…",CAPTION_DATATABLE_EDIT:"编辑",CAPTION_DATATABLE_DELETE:"删除",CAPTION_DATATABLE_INSERT:"插入",HINT_DATATABLE_EDIT:"编辑数据",HINT_DATATABLE_DELETE:"删除数据",HINT_DATATABLE_INSERT:"插入数据",CAPTION_ADD_CELL:"+",HINT_ADD_CELL:"添加新单元格",CAPTION_REMOVE_CELL:"移除",HINT_REMOVE_CELL:"移除单元格",CAPTION_CONFIG:"设置…",HINT_CONFIG:"修改设置",TITLE_IMG_FORMAT_PNG:"PNG格式图像",TITLE_IMG_FORMAT_JPG:"Jpeg格式图像",TITLE_IMG_FORMAT_GIF:"GIF格式图像",TITLE_IMG_FORMAT_SVG:"SVG格式图像"}),Kekule.Localization.addResource("zh","ChemWidgetTexts",{CAPTION_CLEAROBJS:"清除",CAPTION_LOADFILE:"载入…",CAPTION_LOADDATA:"载入…",CAPTION_SAVEFILE:"保存…",CAPTION_ZOOMIN:"放大",CAPTION_ZOOMOUT:"缩小",CAPTION_RESETZOOM:"重置缩放",CAPTION_RESETVIEW:"重置",CAPTION_ROTATE:"旋转",CAPTION_ROTATELEFT:"向左旋转",CAPTION_ROTATERIGHT:"向右旋转",CAPTION_ROTATEX:"沿X轴旋转",CAPTION_ROTATEY:"沿Y轴旋转",CAPTION_ROTATEZ:"沿Z轴旋转",CAPTION_MOL_DISPLAY_TYPE:"分子显示样式",CAPTION_SKELETAL:"键线式",CAPTION_CONDENSED:"缩写式",CAPTION_WIRE:"单线模型",CAPTION_STICKS:"棍式模型",CAPTION_BALLSTICK:"球棍模型",CAPTION_SPACEFILL:"比例模型",CAPTION_HIDEHYDROGENS:"显示/隐藏氢原子",CAPTION_OPENEDITOR:"编辑…",CAPTION_EDITOR_DONE:"完成",CAPTION_EDITOR_CANCEL:"取消",CAPTION_EDIT_OBJ:"编辑",HINT_CLEAROBJS:"清除对象",HINT_LOADFILE:"自文件载入",HINT_LOADDATA:"载入数据",HINT_SAVEFILE:"存储到文件",HINT_ZOOMIN:"放大",HINT_ZOOMOUT:"缩小",HINT_RESETZOOM:"重置缩放",HINT_RESETVIEW:"重置缩放与旋转",HINT_ROTATE:"旋转",HINT_ROTATELEFT:"逆时针旋转",HINT_ROTATERIGHT:"顺时针旋转",HINT_ROTATEX:"沿X轴旋转",HINT_ROTATEY:"沿Y轴旋转",HINT_ROTATEZ:"沿Z轴旋转",HINT_MOL_DISPLAY_TYPE:"改变分子显示样式",HINT_SKELETAL:"以键线式显示",HINT_CONDENSED:"以缩写式显示",HINT_WIRE:"以单线模型显示",HINT_STICKS:"以棍式模型显示",HINT_BALLSTICK:"以球棍模型显示",HINT_SPACEFILL:"以比例模型显示",HINT_HIDEHYDROGENS:"模型中显示/隐藏氢原子",HINT_OPENEDITOR:"编辑当前对象",HINT_EDITOR_DONE:"关闭并保存编辑器中的修改",HINT_EDITOR_CANCEL:"关闭并取消编辑器中的修改",CAPTION_NEWDOC:"新建",CAPTION_UNDO:"撤销",CAPTION_REDO:"重做",CAPTION_COPY:"复制",CAPTION_CUT:"剪切",CAPTION_PASTE:"粘贴",CAPTION_TOGGLE_SELECT:"叠加选择",CAPTION_CLONE_SELECTION:"克隆选区",CAPTION_TOGGLE_INSPECTOR:"对象检视器",CAPTION_MANIPULATE:"选取",CAPTION_MANIPULATE_MARQUEE:"矩形选框",CAPTION_MANIPULATE_LASSO:"套索选择",CAPTION_MANIPULATE_BRUSH:"选择刷",CAPTION_MANIPULATE_ANCESTOR:"选择分子",CAPTION_CLIENT_DRAGSCROLL:"移动画布",CAPTION_ERASE:"删除",CAPTION_TRACK_INPUT:"手写输入",CAPTION_MOL_BOND:"",CAPTION_MOL_BOND_SINGLE:"单键",CAPTION_MOL_BOND_DOUBLE:"双键",CAPTION_MOL_BOND_TRIPLE:"三键",CAPTION_MOL_BOND_QUAD:"四键",CAPTION_MOL_BOND_EXPLICIT_AROMATIC:"芳香键",CAPTION_MOL_BOND_WEDGEUP:"实楔线键",CAPTION_MOL_BOND_WEDGEUP_INVERTED:"实楔线键2",CAPTION_MOL_BOND_WEDGEDOWN:"虚楔线键",CAPTION_MOL_BOND_WEDGEDOWN_INVERTED:"虚楔线键2",CAPTION_MOL_BOND_CLOSER:"突出(加粗)键",CAPTION_MOL_BOND_WAVY:"波浪键",CAPTION_MOL_BOND_DOUBLE_EITHER:"顺或反式双键",CAPTION_MOL_BOND_IONIC:"离子键",CAPTION_MOL_BOND_COORDINATE:"配位键",CAPTION_MOL_BOND_METALLIC:"金属键",CAPTION_MOL_BOND_HYDROGEN:"氢键",CAPTION_MOL_ATOM:"原子",CAPTION_MOL_FORMULA:"分子式",CAPTION_MOL_ATOM_AND_FORMULA:"原子与分子式",CAPTION_MOL_CHARGE:"电荷",CAPTION_MOL_CHARGE_CLEAR:"清除电荷",CAPTION_MOL_CHARGE_POSITIVE:"正电荷",CAPTION_MOL_CHARGE_NEGATIVE:"负电荷",CAPTION_MOL_CHARGE_SINGLET:"单线态",CAPTION_MOL_CHARGE_DOUBLET:"双线态自由基",CAPTION_MOL_CHARGE_TRIPLET:"三线态",CAPTION_MOL_ELECTRON_LONEPAIR:"孤对电子",CAPTION_TEXT_BLOCK:"文字",CAPTION_IMAGE_BLOCK:"图像",CAPTION_TEXT_IMAGE:"文字与图像",CAPTION_MOL_FLEXCHAIN:"可变碳链",CAPTION_MOL_FLEXRING:"可变碳环",CAPTION_REPOSITORY_RING:"",CAPTION_REPOSITORY_RING_3:"环丙烷",CAPTION_REPOSITORY_RING_4:"环丁烷",CAPTION_REPOSITORY_RING_5:"环戊烷",CAPTION_REPOSITORY_RING_6:"环己烷",CAPTION_REPOSITORY_RING_7:"环庚烷",CAPTION_REPOSITORY_RING_8:"环辛烷",CAPTION_REPOSITORY_RING_AR_6:"",CAPTION_REPOSITORY_RING_AR_5:"环戊二烯",CAPTION_REPOSITORY_CYCLOHEXANE_CHAIR1:"环己烷椅式1",CAPTION_REPOSITORY_CYCLOHEXANE_CHAIR2:"环己烷椅式2",CAPTION_REPOSITORY_CYCLOHEXANE_HARWORTH1:"环己烷Haworth式1",CAPTION_REPOSITORY_CYCLOHEXANE_HARWORTH2:"环己烷Haworth式2",CAPTION_REPOSITORY_CYCLOPENTANE_HARWORTH1:"环戊烷Haworth式1",CAPTION_REPOSITORY_CYCLOPENTANE_HARWORTH2:"环戊烷Haworth式2",CAPTION_REPOSITORY_METHANE:"甲烷",CAPTION_REPOSITORY_FISCHER1:"单手性中心Fischer投影式",CAPTION_REPOSITORY_FISCHER2:"双手性中心Fischer投影式",CAPTION_REPOSITORY_FISCHER3:"三手性中心Fischer投影式",CAPTION_REPOSITORY_SAWHORSE_STAGGERED:"交叉式锯架式",CAPTION_REPOSITORY_SAWHORSE_ECLIPSED:"重叠式锯架式",CAPTION_REPOSITORY_SUBBOND_MARK:"取代基键",CAPTION_REPOSITORY_ARROWLINE:"线段与箭头",CAPTION_REPOSITORY_GLYPH:"图符",CAPTION_REPOSITORY_GLYPH_LINE:"直线",CAPTION_REPOSITORY_GLYPH_OPEN_ARROW_LINE:"开放箭头线",CAPTION_REPOSITORY_GLYPH_TRIANGLE_ARROW_LINE:"三角箭头线",CAPTION_REPOSITORY_GLYPH_DI_OPEN_ARROW_LINE:"双向开放箭头线",CAPTION_REPOSITORY_GLYPH_DI_TRIANGLE_ARROW_LINE:"双向三角箭头线",CAPTION_REPOSITORY_GLYPH_REV_ARROW_LINE:"可逆箭头线",CAPTION_REPOSITORY_GLYPH_OPEN_ARROW_DILINE:"开放箭头双线",CAPTION_REPOSITORY_HEAT_SYMBOL:"加热符号",CAPTION_REPOSITORY_ADD_SYMBOL:"加号",CAPTION_TEXT_FORMAT:"文字格式",CAPTION_PICK_COLOR:"颜色",CAPTION_FONTNAME:"字体",CAPTION_FONTSIZE:"字号",CAPTION_TEXT_DIRECTION:"文字方向",CAPTION_TEXT_DIRECTION_DEFAULT:"缺省",CAPTION_TEXT_DIRECTION_LTR:"由左至右",CAPTION_TEXT_DIRECTION_RTL:"由右至左",CAPTION_TEXT_DIRECTION_TTB:"由上至下",CAPTION_TEXT_DIRECTION_BTT:"由下至上",CAPTION_TEXT_HORIZONTAL_ALIGN:"文字水平对齐",CAPTION_TEXT_VERTICAL_ALIGN:"文字垂直对齐",CAPTION_TEXT_ALIGN_DEFAULT:"缺省",CAPTION_TEXT_ALIGN_LEADING:"首对齐",CAPTION_TEXT_ALIGN_TRAILING:"尾对齐",CAPTION_TEXT_ALIGN_CENTER:"居中对齐",CAPTION_TEXT_ALIGN_LEFT:"左对齐",CAPTION_TEXT_ALIGN_RIGHT:"右对齐",CAPTION_TEXT_ALIGN_TOP:"上对齐",CAPTION_TEXT_ALIGN_BOTTOM:"下对齐",CAPTION_ATOM_MODIFIER:"原子",CAPTION_ATOM_MODIFIER_MIXED:"[A]",CAPTION_BOND_MODIFIER:"",CAPTION_CHARGE_MODIFIER:"Charge",TEXT_CHARGE_POSITIVE:"+",TEXT_CHARGE_NEGATIVE:"-",TEXT_CHARGE_UNKNOWN:"<sup>+</sup>/<sub>-</sub>",TEXT_CHARGE_NONE:"&#8709;",HINT_NEWDOC:"创建新文档",HINT_UNDO:"撤销",HINT_REDO:"重做",HINT_COPY:"将选定对象复制至内部剪贴板",HINT_CUT:"将选定对象剪切至内部剪贴板",HINT_PASTE:"自内部剪贴板复制",HINT_CLONE_SELECTION:"克隆当前选区",HINT_TOGGLE_SELECT:"叠加选择",HINT_TOGGLE_INSPECTOR:"显示或隐藏对象检视器",HINT_MANIPULATE:"选择工具",HINT_MANIPULATE_MARQUEE:"矩形选框",HINT_MANIPULATE_LASSO:"套索选择",HINT_MANIPULATE_BRUSH:"选择刷",HINT_MANIPULATE_ANCESTOR:"选择分子",HINT_CLIENT_DRAGSCROLL:"移动画布",HINT_ERASE:"删除工具",HINT_TRACK_INPUT:"手写输入工具",HINT_MOL_BOND:"化学键工具",HINT_MOL_BOND_SINGLE:"单键",HINT_MOL_BOND_DOUBLE:"双键",HINT_MOL_BOND_TRIPLE:"叁键",HINT_MOL_BOND_QUAD:"四键",HINT_MOL_BOND_EXPLICIT_AROMATIC:"显式芳香键",HINT_MOL_BOND_WEDGEUP:"实楔线键",HINT_MOL_BOND_WEDGEUP_INVERTED:"实楔线键2",HINT_MOL_BOND_WEDGEDOWN:"虚楔线键",HINT_MOL_BOND_WEDGEDOWN_INVERTED:"虚楔线键2",HINT_MOL_BOND_CLOSER:"突出(加粗)键",HINT_MOL_BOND_WAVY:"波浪键",HINT_MOL_BOND_DOUBLE_EITHER:"顺或反式双键",HINT_MOL_BOND_IONIC:"离子键",HINT_MOL_BOND_COORDINATE:"配位键",HINT_MOL_BOND_METALLIC:"金属键",HINT_MOL_BOND_HYDROGEN:"氢键",HINT_MOL_ATOM:"原子工具",HINT_MOL_FORMULA:"分子式工具",HINT_MOL_ATOM_AND_FORMULA:"原子与分子式工具",HINT_MOL_CHARGE:"电荷工具",HINT_MOL_CHARGE_CLEAR:"清除电荷或自由基",HINT_MOL_CHARGE_POSITIVE:"正电荷",HINT_MOL_CHARGE_NEGATIVE:"负电荷",HINT_MOL_CHARGE_SINGLET:"单线态自由基",HINT_MOL_CHARGE_DOUBLET:"双线态自由基",HINT_MOL_CHARGE_TRIPLET:"三线态自由基",HINT_MOL_ELECTRON_LONEPAIR:"孤对电子",HINT_TEXT_BLOCK:"文字工具",HINT_IMAGE_BLOCK:"图像工具",HINT_TEXT_IMAGE:"文字与图像工具",HINT_MOL_FLEXCHAIN:"可变碳链",HINT_MOL_FLEXRING:"可变碳环",HINT_REPOSITORY_RING:"环工具",HINT_REPOSITORY_RING_3:"环丙烷",HINT_REPOSITORY_RING_4:"环丁烷",HINT_REPOSITORY_RING_5:"环戊烷",HINT_REPOSITORY_RING_6:"环己烷",HINT_REPOSITORY_RING_7:"环庚烷",HINT_REPOSITORY_RING_8:"环辛烷",HINT_REPOSITORY_RING_AR_6:"",HINT_REPOSITORY_RING_AR_5:"环戊二烯",HINT_REPOSITORY_CYCLOHEXANE_CHAIR1:"环己烷椅式1",HINT_REPOSITORY_CYCLOHEXANE_CHAIR2:"环己烷椅式2",HINT_REPOSITORY_CYCLOHEXANE_HARWORTH1:"环己烷Haworth式1",HINT_REPOSITORY_CYCLOHEXANE_HARWORTH2:"环己烷Haworth式2",HINT_REPOSITORY_CYCLOPENTANE_HARWORTH1:"环戊烷Haworth式1",HINT_REPOSITORY_CYCLOPENTANE_HARWORTH2:"环戊烷Haworth式2",HINT_REPOSITORY_SUBBOND_MARK:"取代基键",HINT_REPOSITORY_METHANE:"甲烷",HINT_REPOSITORY_FISCHER1:"单手性中心Fischer投影式",HINT_REPOSITORY_FISCHER2:"双手性中心Fischer投影式",HINT_REPOSITORY_FISCHER3:"三手性中心Fischer投影式",HINT_REPOSITORY_SAWHORSE_STAGGERED:"交叉式锯架式",HINT_REPOSITORY_SAWHORSE_ECLIPSED:"重叠式锯架式",HINT_REPOSITORY_ARROWLINE:"线段与箭头",HINT_REPOSITORY_GLYPH:"图符",HINT_REPOSITORY_GLYPH_LINE:"直线",HINT_REPOSITORY_GLYPH_OPEN_ARROW_LINE:"开放箭头线",HINT_REPOSITORY_GLYPH_TRIANGLE_ARROW_LINE:"三角箭头线",HINT_REPOSITORY_GLYPH_DI_OPEN_ARROW_LINE:"双向开放箭头线",HINT_REPOSITORY_GLYPH_DI_TRIANGLE_ARROW_LINE:"双向三角箭头线",HINT_REPOSITORY_GLYPH_REV_ARROW_LINE:"可逆箭头线",HINT_REPOSITORY_GLYPH_OPEN_ARROW_DILINE:"开放箭头双线",HINT_REPOSITORY_HEAT_SYMBOL:"加热符号",HINT_REPOSITORY_ADD_SYMBOL:"加号",HINT_TEXT_FORMAT:"设置文字格式",HINT_FONTNAME:"设置字体",HINT_FONTSIZE:"设置字号",HINT_PICK_COLOR:"选择颜色",HINT_TEXT_DIRECTION:"设置文字方向",HINT_TEXT_HORIZONTAL_ALIGN:"设置文字水平对齐方式",HINT_TEXT_VERTICAL_ALIGN:"设置文字水平垂直方式",HINT_CHARGE_NONE:"无电荷",HINT_ATOM_MODIFIER:"设置原子",HINT_BOND_MODIFIER:"设置键",HINT_CHARGE_MODIFIER:"设置电荷",HINT_USE_ATOM_CUSTOM_COLOR:"(使用原子特征颜色)",CAPTION_LOADDATA_DIALOG:"载入数据",CAPTION_SAVEDATA_DIALOG:"保存数据",CAPTION_DATA_FORMAT:"数据格式:",CAPTION_DATA_SRC:"在下方输入或粘贴数据:",CAPTION_LOADDATA_FROM_FILE:"载入文件",CAPTION_CHOOSEFILEFORMAT:"选择文件格式",CAPTION_SELECT_FORMAT:"选择格式:",CAPTION_PREVIEW_FILE_CONTENT:"预览文件内容…",S_DEF_SAVE_FILENAME:"Unnamed",CAPTION_ATOMLIST_PERIODIC_TABLE:"更多…",CAPTION_RGROUP:"取代基",CAPTION_VARIABLE_ATOM:"(包含)原子列表",CAPTION_VARIABLE_NOT_ATOM:"(不包含)原子列表",CAPTION_PSEUDOATOM:"赝原子(Pseudoatom)",CAPTION_DUMMY_ATOM:"虚原子(Dummy atom)",CAPTION_HETERO_ATOM:"杂原子",CAPTION_ANY_ATOM:"任意原子",CAPTION_ATOM:"原子",CAPTION_SUBGROUP:"基团",CAPTION_PERIODIC_TABLE_DIALOG:"元素周期表",CAPTION_PERIODIC_TABLE_DIALOG_SEL_ELEM:"选择元素",CAPTION_PERIODIC_TABLE_DIALOG_SEL_ELEMS:"选择多个元素",CAPTION_TEXTBLOCK_INIT:"在此输入文字",LEGEND_CAPTION:"图例",LEGEND_ELEM_SYMBOL:"元素符号",LEGEND_ELEM_NAME:"名称",LEGEND_ATOMIC_NUM:"原子序数",LEGEND_ATOMIC_WEIGHT:"原子量",CAPTION_2D:"2D",CAPTION_3D:"3D",CAPTION_AUTOSIZE:"自动尺寸",CAPTION_AUTOFIT:"自动缩放",CAPTION_SHOWSIZEINFO:"显示尺寸信息",CAPTION_LABEL_SIZE:"尺寸:",CAPTION_BACKGROUND_COLOR:"背景颜色:",CAPTION_WIDTH_HEIGHT:"宽:{0}、高:{1}",PLACEHOLDER_WIDTH:"",PLACEHOLDER_HEIGHT:"",HINT_AUTOSIZE:"图形尺寸是否由对象大小自动调整",HINT_AUTOFIT:"对象是否填满图形区域",S_VALUE_DEFAULT:"(缺省)"}),Kekule.Localization.addResource("zh","ErrorMsg",{WIDGET_CLASS_NOT_FOUND:"控件类不存在",WIDGET_CAN_NOT_BIND_TO_ELEM:"控件{0}无法绑定到HTML元素<{1}>",LOAD_CHEMDATA_FAILED:"载入数据失败",FILE_API_NOT_SUPPORTED:"您当前的浏览器不支持HTML文件操作,请升级浏览器。",DRAW_BRIDGE_NOT_SUPPORTED:"您当前的浏览器不支持该绘图功能,请升级浏览器。",COMMAND_NOT_REVERSIBLE:"命令无法撤销",PAGE_INDEX_OUTOF_RANGE:"页面超出范围",FETCH_DATA_TIMEOUT:"加载数据超时",RENDER_TYPE_CHANGE_NOT_ALLOWED:"渲染类型无法改变",CAN_NOT_CREATE_EDITOR:"创建编辑器失败",CAN_NOT_SET_COORD_OF_CLASS:"无法设置对象{0}实例的坐标",CAN_NOT_SET_DIMENSION_OF_CLASS:"无法设置对象{0}实例的尺寸",CAN_NOT_MERGE_CONNECTORS:"化学键或连接符无法合并",NOT_A_VALID_ATOM:"无效的原子",INVALID_ATOM_SYMBOL:"原子符号无效",INVALID_OR_EMPTY_IMAGE:"空白或不合法的图像"});
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
"use strict";!function($jsRoot){function emptyFunction(){}function __$A__(e){if(!e)return[];if(e.toArray)return e.toArray();for(var t=e.length||0,r=new Array(t);t--;)r[t]=e[t];return r}"object"==typeof self?$jsRoot=self:"object"==typeof window&&window.document?$jsRoot=window:"object"==typeof global&&($jsRoot=global);var Class={createCore:function(){var e=null,t=__$A__(arguments);if(!t[0]&&t.length>1){var r=t[1],n=r&&r.CLASS_NAME;throw"Can not create new class"+(n?" "+n:"")+" , base class not found"}function i(){this.initialize.apply(this,arguments)}if(Object.isFunction(t[0])&&(e=t.shift()),Object.extend(i,Class.Methods),i.superclass=e,i.subclasses=[],e){var a=function(){};a.prototype=e.prototype,i.prototype=new a,e.subclasses.push(i)}for(var o=0;o<t.length;o++)i.addMethods(t[o]);return i.prototype.initialize||(i.prototype.initialize=emptyFunction),i.prototype.constructor=i,i},create:function(){return Class.createCore.apply(this,arguments)},free:function(e){e.finalize&&e.finalize(),e=null}};Class.Methods={addMethods:function(e){if(!e)return this;var t=this.superclass&&this.superclass.prototype,r=Object.keys(e);Object.keys({toString:!0}).length||r.push("toString","valueOf");for(var n=function(){},i=0,a=r.length;i<a;i++){var o=r[i],s=e[o],l=Object.isFunction(s);if(t&&l&&"$super"===FunctionUtils.argumentNames(s)[0]){var u=s;(s=function(e){return function(){return(t[e]||n).apply(this,arguments)}}(o).wrap(u)).valueOf=u.valueOf.bind(u),s.toString=u.toString.bind(u)}this.prototype[o]=s}return this}},Object.extend=function(e,t,r,n){if(r||n)for(var i in t){var a=t[i];r&&null==a||(n&&""===a||(e[i]=a))}else for(var i in t)e[i]=t[i];return e},Object.extendEx=function(e,t,r){var n=r||{};for(var i in t){var a=t[i];if((!n.ignoreUnsetValue||null!=a)&&(!n.ignoreEmptyString||""!==a)){var o=e[i];if(!r.preserveExisted||!o){var s=o&&o.constructor&&o.constructor.prototype,l=a&&a.constructor&&a.constructor.prototype;o&&"object"==typeof o&&s===l?Object.extendEx(o,a,r):e[i]=a}}}return e},Object._extendSupportMethods=function(e,t){return Object.extendEx(e,t,{ignoreUnsetValue:!0,preserveExisted:!0})},Object.getCascadeFieldValue=function(e,t){var r,n;if(n=e.length&&e.splice?e:e.split("."),!t)t=$jsRoot||this;for(var i=0,a=n.length;i<a&&(r=t[n[i]]);++i)t=r;return r},Object.setCascadeFieldValue=function(e,t,r,n){for(var i,a=r,o=0,s=(i=e.length&&e.splice?e:e.split(".")).length;o<s;++o){var l=i[o];if(o===s-1)return a[l]=t,t;var u=a[l];if(!u&&n&&(u={},a[l]=u),!u)return!1;a=u}},Object._inherit=function(e){null===e&&(e={});var t=typeof e;if(!DataType.isFunctionType(t)&&!DataType.isObjectType(t))throw TypeError();function r(){}return r.prototype=e,new r},Object.create||(Object.create=Object._inherit),Object.copyValues=function(e,t,r){if(r){for(var n=0,i=r.length;n<i;++n){var a=r[n],o=t[a];void 0!==o&&(e[a]=o)}return e}return Object.extend(e,t)},Object._extendSupportMethods(Object,{keys:function(e){var t=[];for(var r in e)t.push(r);return t},isFunction:function(e){return"function"==typeof e},isUndefined:function(e){return void 0===e}}),Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r);return t});var FunctionUtils={argumentNames:function(e){var t=((e.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)||[])[1]||"").replace(/\s+/g,"").split(",");return 1!=t.length||t[0]?t:[]}};Object._extendSupportMethods(Function.prototype,{argumentNames:function(){var e=this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1].replace(/\s+/g,"").split(",");return 1!=e.length||e[0]?e:[]},wrap:function(e){var t=this;return function(){return e.apply(this,[t.bind(this)].concat(__$A__(arguments)))}},methodize:function(){if(this._methodized)return this._methodized;var e=this;return this._methodized=function(){var t=Array.prototype.slice.call(arguments);return t.unshift(this),e.apply(null,t)}},bind:function(){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var e=this,t=__$A__(arguments),r=t.shift();return function(){return e.apply(r,t.concat(__$A__(arguments)))}},delay:function(){var e=this,t=__$A__(arguments),r=t.shift();return window.setTimeout(function(){return e.apply(e,t)},r)},defer:function(){var e=this,t=__$A__(arguments);t.shift();return window.setTimeout(function(){return e.apply(e,t)},10)}}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){t||(t=0);var r=this.length;for(t<0&&(t=r+t);t<r;t++)if(this[t]===e)return t;return-1}),Array.prototype.lastIndexOf||(Array.prototype.lastIndexOf=function(e,t){t=isNaN(t)?this.length:(t<0?this.length+t:t)+1;var r=this.slice(0,t).reverse().indexOf(e);return r<0?r:t-r-1}),Object._extendSupportMethods(String.prototype,{gsub:function(e,t){for(var r="",n=this;n.length>0;)void 0===n.match(e)?(r+=n.slice(0,(void 0).index),r+=t,n=n.slice((void 0).index+(void 0)[0].length)):(r+=n,n="");return r},sub:function(e,t,r){return r=Object.isUndefined(r)?1:r,this.gsub(e,function(e){return--r<0?e[0]:t(e)})},scan:function(e,t){return this.gsub(e,t),String(this)},truncate:function(e,t){return e=e||30,t=Object.isUndefined(t)?"...":t,this.length>e?this.slice(0,e-t.length)+t:String(this)},strip:function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,"")},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,"img"),"")},extractScripts:function(){var e=new RegExp(Prototype.ScriptFragment,"img"),t=new RegExp(Prototype.ScriptFragment,"im");return(this.match(e)||[]).map(function(e){return(e.match(t)||["",""])[1]})},evalScripts:function(){return this.extractScripts().map(function(script){return eval(script)})},escapeHTML:function(){return this.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br />")},unescapeHTML:function(){return this.replace(/\<br \/\>/g,"\n").replace(/&amp;/g,"&").replace(/&lt;/g,"<").replace(/&gt;/g,">")},toQueryParams:function(e){var t=this.strip().match(/([^?#]*)(#.*)?$/);return t?t[1].split(e||"&").inject({},function(e,t){if((t=t.split("="))[0]){var r=decodeURIComponent(t.shift()),n=t.length>1?t.join("="):t[0];null!=n&&(n=decodeURIComponent(n)),r in e?(Object.isArray(e[r])||(e[r]=[e[r]]),e[r].push(n)):e[r]=n}return e}):{}},toArray:function(){return this.split("")},succ:function(){return this.slice(0,this.length-1)+String.fromCharCode(this.charCodeAt(this.length-1)+1)},times:function(e){return e<1?"":new Array(e+1).join(this)},camelize:function(){var e=this.split("-"),t=e.length;if(1==t)return e[0];for(var r="-"==this.charAt(0)?e[0].charAt(0).toUpperCase()+e[0].substring(1):e[0],n=1;n<t;n++)r+=e[n].charAt(0).toUpperCase()+e[n].substring(1);return r},capitalize:function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase()},capitalizeFirst:function(){return this.charAt(0).toUpperCase()+this.substring(1)},underscore:function(){return this.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/-/g,"_").toLowerCase()},dasherize:function(){return this.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1-$2").replace(/([a-z\d])([A-Z])/g,"$1-$2").replace(/-/g,"-").toLowerCase()},inspect:function(e){var t=this.gsub(/[\x00-\x1f\\]/,function(e){var t=String.specialChar[e[0]];return t||"\\u00"+e[0].charCodeAt().toPaddedString(2,16)});return e?'"'+t.replace(/"/g,'\\"')+'"':"'"+t.replace(/'/g,"\\'")+"'"},toJSON:function(){return this.inspect(!0)},unfilterJSON:function(e){return this.sub(e||Prototype.JSONFilter,"#{1}")},isJSON:function(){var e=this;return!e.blank()&&(e=this.replace(/\\./g,"@").replace(/"[^"\\\n\r]*"/g,""),/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/.test(e))},evalJSON:function(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON())return eval("("+json+")")}catch(e){}throw new SyntaxError("Badly formed JSON string: "+this.inspect())},include:function(e){return this.indexOf(e)>-1},startsWith:function(e){return 0===this.indexOf(e)},endsWith:function(e){var t=this.length-e.length;return t>=0&&this.lastIndexOf(e)===t},empty:function(){return""==this},blank:function(){return/^\s*$/.test(this)},interpolate:function(e,t){return new Template(this,t).evaluate(e)}}),Object._extendSupportMethods(String.prototype,{upperFirst:function(){return this.charAt(0).toUpperCase()+this.substring(1)},format:function(){for(var e=this,t=0;t<arguments.length;t++){var r=new RegExp("\\{"+t+"\\}","gi");e=e.replace(r,arguments[t])}return e},trim:function(){return this.replace(/^\s*|\s*$/g,"")},ltrim:function(){return this.replace(/^\s+/,"")},rtrim:function(){return this.replace(/\s+$/,"")},trimLeft:function(){return this.ltrim()},trimRight:function(){return this.rtrim()},pad:function(e,t,r){for(var n=t||" ",i=[],a=0,o=e-this.length;a<o;++a)i.push(n);return r?this+i.join(""):i.join("")+this},lpad:function(e,t){return this.pad(e,t,!1)},rpad:function(e,t){return this.pad(e,t,!0)},reverse:function(){for(var e=[],t=this.length-1;t>=0;--t)e.push(this.charAt(t));return e.join("")},toCharArray:function(){for(var e=[],t=0,r=this.length;t<r;++t)e.push(this.charAt(t));return e},hyphenize:function(e){e||(e="-");for(var t=this.length,r=[],n=0;n<t;++n){var i=this.charAt(n);0!==n&&i>="A"&&i<="Z"?r.push(e+i.toLowerCase()):r.push(i)}return r.join("")}});var StringUtils={STRUE:"$TRUE",SFALSE:"$FALSE",SUNDEFINED:"$UNDEFINED",SNULL:"$NULL",SNAN:"$NAN",SPOSITIVE:"+",SNEGATIVE:"-",SDATEPREFIX:"@",isAllDigitalChar:function(e){for(var t=0,r=e.length;t<r;++t){var n=e.charAt(t);if(!(n>="0"&&n<="9")&&"."!=n)return!1}return!0},isNumbericStr:function(e){var t=Number(e);return!isNaN(t)},serializeValue:function(e,t){var r=t||[],n=DataType.getType(e);if(r.indexOf(n)>=0)return e.toString();if(null===e)return StringUtils.SNULL;if(void 0===e)return StringUtils.SUNDEFINED;if(e!=e)return StringUtils.SNAN;switch(n){case"boolean":return e?StringUtils.STRUE:StringUtils.SFALSE;case"number":case DataType.INT:case DataType.FLOAT:return(e>=0?StringUtils.SPOSITIVE:"")+e;case DataType.DATE:return StringUtils.SDATEPREFIX+e.toString();default:return e.toString()}},deserializeValue:function(e,t){if("string"!=typeof e)return e;switch(e){case StringUtils.STRUE:return!0;case StringUtils.SFALSE:return!1;case StringUtils.SNULL:return null;case StringUtils.SUNDEFINED:return;case StringUtils.SNAN:return NaN;default:if(t)switch(t){case DataType.FLOAT:return parseFloat(e);case DataType.INT:return parseInt(e);case"number":return parseFloat(e);case"boolean":return!!e;default:return e}else switch(e.charAt(0)){case StringUtils.SPOSITIVE:case StringUtils.SNEGATIVE:var r=e.substring(1);return StringUtils.isNumbericStr(r)?parseFloat(e):e;case StringUtils.SDATEPREFIX:r=e.substr(1);try{var n=new Date(r);return isNaN(n.getTime())?e:n}catch(t){return e}default:return e}}}};Object.extend(Date.prototype,{copyFrom:function(e){this.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),this.setTime(e.getTime())}}),Math.sqr||(Math.sqr=function(e){return e*e}),Math.sign||(Math.sign=function(e){return e>0?1:e<0?-1:0}),$jsRoot.Node||($jsRoot.Node={}),$jsRoot.Node.ELEMENT_NODE||Object.extend($jsRoot.Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12}),Class.PropertyScope={DEFAULT:3,PUBLISHED:3,PUBLIC:2,PRIVATE:1},Class.PropList=function(){this.props=[]},Class.PropList.prototype={addProperty:function(e,t){var r;return t||(t={}),(r=this.getPropInfo(e))||(r={},this.props.push(r)),void 0===(r=Object.extend(r,t)).serializable&&(r.serializable=!0),r.name=e,r},removeProperty:function(e){var t=this.indexOf(e);t>=0&&this.props.splice(t,1)},removePropAt:function(e){e>=0&&(this.props[e]&&this.props.splice(e,1))},getLength:function(){return this.props.length},indexOf:function(e){for(var t=0,r=this.props.length;t<r;++t)if(this.props[t].name===e)return t;return-1},getPropInfoAt:function(e){return e>=0?this.props[e]:null},getPropInfo:function(e){var t=this.indexOf(e);return this.getPropInfoAt(t)},hasProperty:function(e){return this.indexOf(e)>=0},clear:function(){this.props.clear()},clone:function(){var e=new Class.PropList;return e.props=this.props.slice(),e},appendList:function(e){for(var t=0,r=e.props.length;t<r;++t)this.props.push(e.props[t])}},Class.PropList.prototype.constructor=Class.PropList,Class.EventHandlerList=function(){this.handlers=[],this._$flag_="KekuleEventList"},Class.EventHandlerList.prototype={add:function(e,t){t||(t=null),this.handlers.push({thisArg:t,handler:e})},remove:function(e,t){var r=this.indexesOf(e,t);if(r.length>0)for(var n=r.length-1;n>=0;--n)this.removeAt(r[n])},removeAt:function(e){for(var t=e,r=this.handlers.length;t<r;++t)this.handlers[t]=this.handlers[t+1];this.handlers.length=this.handlers.length-1},clear:function(){this.handlers=[]},getHandlerInfo:function(e){return this.handlers[e]},indexOf:function(e,t){for(var r=0,n=this.handlers.length;r<n;++r)if(this.handlers[r].handler==e){if(void 0!==t&&this.handlers[r].thisArg===t)return r;if(void 0===t)return r}return-1},indexesOf:function(e,t){for(var r=[],n=0,i=this.handlers.length;n<i;++n)this.handlers[n].handler==e&&(void 0!==t&&this.handlers[n].thisArg===t?r.push(n):void 0===t&&r.push(n));return r},getLength:function(){return this.handlers.length}},Class.EventHandlerList.constructor=Class.EventHandlerList;var DataType={UNKNOWN:null,VARIANT:null,PRIMARY:"primary",UNDEFINED:"undefined",BOOL:"boolean",BOOLEAN:"boolean",NUMBER:"number",INT:"int",INTEGER:"int",FLOAT:"float",STRING:"string",ARRAY:"array",FUNCTION:"function",DATE:"date",HASH:"object",OBJECT:"object",OBJECTEX:"objectex",CLASS:"class",isSimpleType:function(e){return e==DataType.STRING||e==DataType.NUMBER||e==DataType.INT||e==DataType.FLOAT||e==DataType.BOOL||e==DataType.UNDEFINED||e==DataType.PRIMARY},isComplexType:function(e){return!(DataType.isSimpleType(e)||DataType.isFunctionType(e))},isFunctionType:function(e){return e==DataType.FUNCTION},isObjectType:function(e){return e==DataType.OBJECT},isDateType:function(e){return e==DataType.DATE},isObjectExType:function(e){var t=DataType.isComplexType(e)&&!DataType.isObjectType(e)&&!DataType.isDateType(e);if(t){var r=ClassEx.findClass(e);t=r&&ClassEx.isOrIsDescendantOf(r,ObjectEx)}return t},getType:function(e){var t=typeof e;switch(t){case"undefined":return DataType.UNDEFINED;case"function":return DataType.FUNCTION;case"boolean":return DataType.BOOL;case"string":return DataType.STRING;case"number":return Math.floor(e)==e?DataType.INT:DataType.FLOAT;case"object":return this.isDateValue(e)?DataType.DATE:DataType.isArrayValue(e)?DataType.ARRAY:ClassEx.isClass(e)?DataType.CLASS:DataType.isObjectExValue(e)&&e.getClassName?e.getClassName():DataType.OBJECT;default:return t}},isSimpleValue:function(e){return DataType.isSimpleType(typeof e)},isUndefinedValue:function(e){return void 0===e},isNullValue:function(e){return null===e},isFunctionValue:function(e){return"function"==typeof e},isObjectValue:function(e){return!!e&&("object"==typeof e&&!DataType.isArrayValue(e)&&!DataType.isDateValue(e))},isDateValue:function(e){return!!e&&("object"==typeof e&&void 0!==e.getFullYear)},isArrayValue:function(e){return!!e&&("object"==typeof e&&void 0!==e.length)},isObjectExValue:function(e){return e instanceof ObjectEx},createInstance:function(e){switch(e){case DataType.UNDEFINED:return;case DataType.DATE:return new Date;case DataType.ARRAY:return new Array;case DataType.OBJECT:return new Object;case DataType.FUNCTION:return new Function;default:return new(ClassEx.findClass(e.capitalizeFirst()))}}},__definePropertyAvailable__=Object.defineProperty&&function(){try{return Object.defineProperty({},"x",{}),!0}catch(e){return!1}}(),ClassEx={isClass:function(e){return!!e&&!(!e.superclass&&!e.subclasses)},findClass:function(e,t){return Object.getCascadeFieldValue(e,t||$jsRoot)},getClassName:function(e){return e?e.prototype.CLASS_NAME:null},getClassLocalName:function(e){var t=ClassEx.getClassName(e),r=t.lastIndexOf(".");return r>=0?t.substring(r+1):t},getPrototype:function(e){return e.prototype},getSuperClass:function(e){return e.superclass||e.constructor.superclass},getSuperClassPrototype:function(e){return e.superclass?e.superclass.prototype:null},_getCommonSuperClass2:function(e,t){for(var r=e;r&&!ClassEx.isOrIsDescendantOf(t,r);)r=ClassEx.getSuperClass(r);return r},getCommonSuperClass:function(e){if(!e||!e.length)return null;var t=e[0].getClass?e[0].getClass():null;if(!t)return null;for(var r=1,n=e.length;r<n;++r){var i=e[r].getClass?e[r].getClass():null;if(!i)return null;t=ClassEx._getCommonSuperClass2(t,i)}return t},isDescendantOf:function(e,t){for(var r=ClassEx.getSuperClass(e);r&&r!==t;)r=ClassEx.getSuperClass(r);return!!r},isOrIsDescendantOf:function(e,t){return e===t||ClassEx.isDescendantOf(e,t)},isOrIsDescendantOfClasses:function(e,t){for(var r=0,n=t.length;r<n;++r)if(ClassEx.isOrIsDescendantOf(e,t[r]))return!0;return!1},_ensurePropertySystem:function(e){var t=ClassEx.getPrototype(e);if(t&&!t.hasOwnProperty("properties")){var r=ClassEx.getSuperClass(e);r&&ClassEx._ensurePropertySystem(r),ClassEx._createPropertyList(e),ClassEx._remapPropGetters(e),t.hasOwnProperty("initProperties")&&t.initProperties.apply(t)}},_createPropertyList:function(e){ClassEx.getPrototype(e).hasOwnProperty("properties")||(ClassEx.getPrototype(e).properties=new Class.PropList)},_remapPropGetters:function(e,t){for(var r=ClassEx.getPrototype(e),n=t||Object.getOwnPropertyNames(r),i=0,a=n.length;i<a;++i){var o=n[i];if(o.length>5&&o.startsWith("doGet")){var s=r[o];if("function"==typeof s){var l=o.charAt(5).toLowerCase()+o.substr(6);if(r.hasDirectProperty(l))continue;var u=ClassEx.getPropInfo(e,l);if(u&&u.getter)if(r["get"+l.capitalizeFirst()]=s,__definePropertyAvailable__){var p=Object.extend({},u.descriptor);p.get=s;try{Object.defineProperty(r,l,p)}catch(e){throw e}}}}}},getOwnPropList:function(e){var t=ClassEx.getPrototype(e);return t?(t._initPropertySystem(),t.properties):null},getAllPropList:function(e){var t,r=ClassEx.getSuperClassPrototype(e);return r?(t=r.getAllPropList().clone()).appendList(ClassEx.getOwnPropList(e)):t=ClassEx.getOwnPropList(e),t},getPropListOfScopes:function(e,t){var r,n=function(e,t){var r=ClassEx.getOwnPropList(e).clone();if(r)for(var n=r.getLength()-1;n>=0;--n){var i=r.getPropInfoAt(n).scope||Class.PropertyScope.DEFAULT;t.indexOf(i)<0&&r.removePropAt(n)}return r},i=ClassEx.getSuperClass(e);return i?(r=ClassEx.getPropListOfScopes(i,t).clone()).appendList(n(e,t)):r=n(e,t),r},defineProp:function(e,t,r){return ClassEx._ensurePropertySystem(e),ClassEx.getPrototype(e).defineProp(t,r)},defineProps:function(e,t){ClassEx._ensurePropertySystem(e);for(var r=ClassEx.getPrototype(e),n=0,i=t.length;n<i;++n){var a=t[n],o=a.name,s=a;r.defineProp(o,s)}},getPropInfo:function(e,t,r){return ClassEx.getPrototype(e).getPropInfo(t,r)},defineEvent:function(e,t){return ClassEx.getPrototype(e).defineEvent(t)},getUnusedMethodName:function(e,t,r){for(var n=r||0,i=ClassEx.getPrototype(e),a=t+Number(n).toString();i[a];)++n,a=t+Number(n).toString();return a},extendMethod:function(e,t,r){var n=ClassEx.getPrototype(e),i=n[t],a=ClassEx.getUnusedMethodName(e,"__$changed$_"+t+"__");n[a]=i;var o,s=(o=a,function(){return n[o].apply(this,arguments)}).wrap(r);n[t]=s,s.valueOf=r.valueOf.bind(r),s.toString=r.toString.bind(r)},extend:function(e,t){var r=ClassEx.getPrototype(e),n=ClassEx.getSuperClassPrototype(e),i=Object.keys(t);Object.keys({toString:!0}).length||i.push("toString","valueOf");for(var a=0,o=i.length;a<o;a++){var s=i[a],l=t[s];if("function"==typeof l){var u=FunctionUtils.argumentNames(l),p=u[0];if("$origin"==p){var c=l,f=r[s],d=ClassEx.getUnusedMethodName(e,"__$changed$_"+s+"__");r[d]=f,(l=function(e){return function(){return r[e].apply(this,arguments)}}(d).wrap(c)).valueOf=c.valueOf.bind(c),l.toString=c.toString.bind(c),u.shift(),p=u.first()}if("$super"==p){c=l;(l=function(e){return function(){return n[e].apply(this,arguments)}}(s).wrap(c)).valueOf=c.valueOf.bind(c),l.toString=c.toString.bind(c)}}r[s]=l}return ClassEx._remapPropGetters(e,i),e}},ObjectEx=Class.create({CLASS_NAME:"ObjectEx",EVENT_HANDLERS_FIELD:"__$__k__eventhandlers__$__",initialize:function(){this._initPropertySystem(),this.initPropValues(),this._updateStatus=0,this._childChangeEventSuppressed=!1,this._modifiedProps=[],this._finalized=!1,this.afterInitialization()},afterInitialization:function(){},finalize:function(){this._finalized||(this.doFinalize(),this.invokeEvent("finalize",{obj:this}),this[this.EVENT_HANDLERS_FIELD]=null,this._finalized=!0)},doFinalize:function(){},initProperties:function(){this.defineProp("enablePropValueGetEvent",{dataType:DataType.BOOL,serializable:!1,scope:Class.PropertyScope.PUBLIC}),this.defineProp("enablePropValueSetEvent",{dataType:DataType.BOOL,serializable:!1,scope:Class.PropertyScope.PUBLIC}),this.defineProp("enableObjectChangeEvent",{dataType:DataType.BOOL,serializable:!1,scope:Class.PropertyScope.PUBLIC}),this.defineProp("bubbleEvent",{dataType:DataType.BOOL,serializable:!1,scope:Class.PropertyScope.PUBLIC}),this.defineProp("suppressChildChangeEventInUpdating",{dataType:DataType.BOOL,serializable:!1,scope:Class.PropertyScope.PUBLIC}),this.defineProp("eventHandlers",{dataType:DataType.HASH,serializable:!1,scope:Class.PropertyScope.PRIVATE,setter:null,getter:function(){var e=this[this.EVENT_HANDLERS_FIELD];return e||(e={},this[this.EVENT_HANDLERS_FIELD]=e),e}})},initPropValues:function(){},getHigherLevelObj:function(){return null},saved:function(){},loaded:function(){},_initPropertySystem:function(){ClassEx._ensurePropertySystem(this.getClass())},_createPropertyList:function(){ClassEx._createPropertyList(this.getClass())},_remapPropGetters:function(){ClassEx._remapPropGetters(this.getClass())},getClass:function(){return this.constructor},getSuperClass:function(){return this.getClass().superclass},getClassName:function(){return this.getPrototype().CLASS_NAME},getClassLocalName:function(){return ClassEx.getClassLocalName(this.getClass())},getSerializationName:function(){return this.getClassName()},getPrototype:function(){return this.prototype?this.prototype:this.constructor.prototype},getSuperClassPrototype:function(){return this.constructor&&this.constructor.superclass?this.constructor.superclass.prototype:null},__changeClass__:function(e){var t=ClassEx.getPrototype(e);return this.prototype=t,this.__proto__=t,this.constructor=e,this.objectChange(["__proto__"]),this},getOwnPropList:function(){return this._initPropertySystem(),this.getPrototype().properties},getAllPropList:function(){var e,t=this.getSuperClassPrototype();return t?(e=t.getAllPropList().clone()).appendList(this.getOwnPropList()):e=this.getOwnPropList().clone(),e},getPropListOfScopes:function(e){return ClassEx.getPropListOfScopes(this.getClass(),e)},getPropInfoHashKey:function(e){return ObjectEx._PROPINFO_HASHKEY_PREFIX+e},getDefPropStoreFieldName:function(e){return ObjectEx._PROP_STOREFIELD_PREFIX+e},defineProp:function(e,t){var r;void 0===(r=t?Object.extend({},t):{}).serializable&&(r.serializable=!0),r.storeField=this.getDefPropStoreFieldName(e);var n,i,a=this.getOwnPropList().addProperty(e,r);if(null!==r.getter&&!1!==r.getter&&(n=this.createPropGetter(a,r.getter),a.getter=n.doGetterName),null!==r.setter&&!1!==r.setter&&(i=this.createPropSetter(a,r.setter),a.setter=i.doSetterName),this[this.getPropInfoHashKey(e)]=a,__definePropertyAvailable__){var o={enumerable:r.enumerable,configurable:!1};void 0===o.enumerable&&(o.enumerable=!0),n&&(o.get=this[n.getterName]),i&&(o.set=this[i.setterName]),a.descriptor=o;try{Object.defineProperty(this,e,o)}catch(e){throw e}}return a},createPropGetter:function(e,t){var r=e.name.toString().upperFirst(),n="get"+r,i="doGet"+r,a=this[i];return a||(a=t||new Function('return this["'+e.storeField+'"];'),this.getPrototype()[i]=a),this.getPrototype()[n]=a,{getterName:n,doGetterName:i}},createPropSetter:function(e,t){var r=e.name.toString(),n=r.upperFirst(),i="set"+n,a="doSet"+n,o=this[a];return this[a]||(o=t||new Function("value",'this["'+e.storeField+'"] = value;'),this.getPrototype()[a]=o),this.getPrototype()[i]=function(){var e=arguments[0];return this[a].apply(this,arguments),this.notifyPropSet(r,e),this},{setterName:i,doSetterName:a}},hasProperty:function(e){return null!=this.getPropInfo(e)},hasDirectProperty:function(e){return null!=this.getPropInfo(e,!0)},getPropInfo:function(e,t){var r,n=e||"";t||(r=this[this.getPropInfoHashKey(n)||""]);if(!r&&!(r=this.getOwnPropList().getPropInfo(n))&&!t){var i=this.getSuperClassPrototype();r=i&&i.getPropInfo?i.getPropInfo(n):null}return r},getPropertyDataType:function(e){var t=this.getPropInfo(e);return t?t.dataType:null},isPropertySerializable:function(e){var t=this.getPropInfo(e),r=t&&t.serializable;return void 0===r||!!r},getPropStoreFieldValue:function(e){return this[ObjectEx._PROP_STOREFIELD_PREFIX+e]},getPropValue:function(e){var t,r=this.getPropInfo(e);if(r){if(r.getter){var n=Array.prototype.slice.call(arguments);n.shift(),t=this[r.getter].apply(this,n)}else t=this[r.storeField];return t}return null},getPropValues:function(e){var t={};if(DataType.isArrayValue(e))for(var r=0,n=e.length;r<n;++r){t[i=e[r]]=this.getPropValue(i)}else if(DataType.isObjectValue(e))for(var i in e)e.hasOwnProperty(i)&&"function"!=typeof e[i]&&(t[i]=this.getPropValue(i));return t},setPropStoreFieldValue:function(e,t){this[ObjectEx._PROP_STOREFIELD_PREFIX+e]=t},setPropValue:function(e,t,r){var n=this.getPropInfo(e);return n&&(n.setter?this[n.setter].apply(this,[t]):r&&(this[n.storeField]=t),this.notifyPropSet(e,t)),this},setPropValueX:function(){var e=Array.prototype.slice.call(arguments),t=e.shift(),r=this.getPropInfo(t);return r&&(r.setter&&this[r.setter].apply(this,e),this.notifyPropSet(t,this.getPropValue(t))),this},setPropValues:function(e,t){for(var r in e)if(e.hasOwnProperty(r)&&this.hasProperty(r)){var n=e[r];this.setPropValue(r,n,t)}return this},_isPropGetOrSetEvent:function(e){return"propValueGet"==e||"propValueSet"==e},notifyPropSet:function(e,t,r){this.isUpdating()?this._modifiedProps.indexOf(e)<0&&this._modifiedProps.push(e):this._isPropGetOrSetEvent(e)||this.isEventPropName(e)||(this.doPropChanged(e,t),this.getPropStoreFieldValue("enablePropValueSetEvent")&&this.invokeEvent("propValueSet",{propName:e,propValue:t}),r||this.objectChange([e]))},objectChange:function(e){this.doObjectChange(e),this.getEnableObjectChangeEvent()&&this.invokeEvent("change",{changedPropNames:e})},doObjectChange:function(e){},doPropChanged:function(e,t){},defineEvent:function(e){},eventNameToPropName:function(e){return"__event_"+e},isEventPropName:function(e){return"string"==typeof e&&e.indexOf("__event_")>=0},isEventHandlerList:function(e){return e&&"object"==typeof e&&e instanceof Class.EventHandlerList},getEventHandlerList:function(e){var t=this.getEventHandlers(),r=t[e];return r||(r=new Class.EventHandlerList,t[e]=r),r},addEventListener:function(e,t,r){var n=this.getEventHandlerList(e);return this.isEventHandlerList(n)?("change"===e&&this.setEnableObjectChangeEvent(!0),n.add(t,r)):null},addOnceEventListener:function(e,t,r){var n=this,i=function(a){n.removeEventListener(e,i,r),t(a)};return this.addEventListener(e,i,r)},removeEventListener:function(e,t,r){var n=this.getEventHandlerList(e);if(this.isEventHandlerList(n))return n.remove(t,r)},on:function(e,t,r){return this.addEventListener(e,t,r)},once:function(e,t,r){return this.addOnceEventListener(e,t,r)},off:function(e,t,r){return this.removeEventListener(e,t,r)},invokeEvent:function(e,t){t?(t.name=e,t.target=this):t={name:e,target:this},t.stopImmediatePropagation||(t.stopImmediatePropagation=this._eventStopImmediatePropagation),t.stopPropagation||(t.stopPropagation=this._eventCancelBubble),t.preventDefault||(t.preventDefault=this._eventPreventDefault),this.dispatchEvent(e,t)},_eventStopImmediatePropagation:function(){this._stopImmediatePropagation=!0,this._cancelBubble=!0},_eventCancelBubble:function(){this._cancelBubble=!0},_eventPreventDefault:function(){this._preventDefault=!0},relayEvent:function(e,t){t.currentTarget=this,"change"===e&&this.getSuppressChildChangeEventInUpdating()&&this.isUpdating()?this._childChangeEventSuppressed=!0:this.dispatchEvent(e,t)},dispatchEvent:function(e,t){for(var r=this.getEventHandlerList(e),n=0,i=r.getLength();n<i&&!t._stopImmediatePropagation;++n){var a=r.getHandlerInfo(n);a.handler.apply(a.thisArg,[t])}if(!t._cancelBubble&&this.getBubbleEvent()){var o=this.getHigherLevelObj();o&&o.relayEvent&&o.relayEvent(e,t)}},stopEventPropagation:function(e){e.cancelBubble=!0},overwriteMethod:function(e,t){var r=this,n=this[e];return this[e]=function(){var e=Array.prototype.slice.call(arguments);return e.unshift(n&&n.bind(r)),t.apply(r,e)},this},assign:function(e){return e.assignTo(this)},assignTo:function(e){var t={};this.saveObj(t,"json"),e.loadObj(t,"json")},clone:function(){var e=new(this.getClass());return this.assignTo(e),e},beginUpdate:function(){++this._updateStatus},endUpdate:function(){if(--this._updateStatus,this.checkUpdateStatus(),!this.isUpdating()){var e=this._modifiedProps||[];this._modifiedProps=[],this._childChangeEventSuppressed&&(e.push("[children]"),this._childChangeEventSuppressed=!1),this.doEndUpdate(e)}},doEndUpdate:function(e){if(e.length){if(this.getPropStoreFieldValue("enablePropValueSetEvent"))for(var t=0,r=e.length;t<r;++t){var n=e[t],i=this.getPropValue(n);this.notifyPropSet(n,i,!0)}this.objectChange(e)}},isUpdating:function(){return this._updateStatus>0},isPropUpdated:function(e){return this._modifiedProps.indexOf(e)>=0},checkUpdateStatus:function(){this._updateStatus<=0&&(this._updateStatus=0)},copyPropsTo:function(e){for(var t=this.getAllPropList(),r=0,n=t.getLength();r<n;++r){var i=t.getPropInfoAt(r).name;if(e.hasProperty(i)){var a=this.getPropValue(i);e.setPropValue(i,a,!0)}}}});ObjectEx._PROPINFO_HASHKEY_PREFIX="__$propInfo__",ObjectEx._PROP_STOREFIELD_PREFIX="__$__k__p__",$jsRoot.Class=Class,$jsRoot.ClassEx=ClassEx,$jsRoot.ObjectEx=ObjectEx,$jsRoot.DataType=DataType,DataType.StringUtils=StringUtils}(this),function($root){var JsonUtility={DEF_LOAD_TIMEOUT:2e4,FILE_EXT_JSON:".json",FILE_EXT_JSON_JS_WRAPPER:".jsonjs",DEF_SERIALIZE_TO_JSCODE_VARNAME:"__jsonvar__",parse:function(e){return JSON.parse(e)},parseFromJsWrappedCode:function(code,jsVarName){return jsVarName||(jsVarName=JsonUtility.DEF_SERIALIZE_TO_JSCODE_VARNAME),eval(code),JsonUtility.parse(eval(jsVarName))},load:function(e,t,r){return WebShow.URL.getFileExt(e).toLowerCase()==JsonUtility.FILE_EXT_JSON_JS_WRAPPER?JsonUtility.loadJsWrapper(e,t,r):JsonUtility.loadJson(e,t,r)},loadJsWrapper:function(url,callback,options){var loptions=options||{},wrapperVarName=loptions.wrapperVarName||JsonUtility.DEF_SERIALIZE_TO_JSCODE_VARNAME;loptions.timeout||(loptions.timeout=JsonUtility.DEF_LOAD_TIMEOUT);var runCallBack=function(e,t){callback&&callback(e,t)},wrapperCallback=function(src,isSuccess){var jsonObj=null;if(isSuccess){var wrapperVar=eval(wrapperVarName);wrapperVar&&(jsonObj="string"==typeof wrapperVar?JsonUtility.parse(wrapperVar):wrapperVar),runCallBack(jsonObj,!0)}else runCallBack(null,!1)};WebShow.ScriptLoader.load(url,wrapperCallback,loptions)},loadJson:function(e,t,r){var n=r||{};n.timeout||(n.timeout=JsonUtility.DEF_LOAD_TIMEOUT),n.resultType=WebShow.FileLoader.ResultType.TEXT,n.extractBody=!1;(new WebShow.XHRLoader).load(e,function(e,r,n){if(r){var i=JsonUtility.parse(e);t(i,!0)}else t(null,!1)},n)},serializeToStr:function(e,t){return t&&t.prettyPrint?JSON.stringify(e,null,t.indentSpaces||2):JSON.stringify(e)},serializeToJsCode:function(e,t,r){r||(r="'"),t||(t=JsonUtility.DEF_SERIALIZE_TO_JSCODE_VARNAME);var n=JsonUtility.serializeToStr(e),i=new RegExp(r,"g");return"var "+t+" = "+r+(n=n.replace(i,"\\"+r))+r}},XmlUtility={DOM_PARSER:null,DOM_IMPLEMENTATION:null,XML_SERIALIZER:null,DEF_INCLUDE_TAG_NAME:"include",DEF_INCLUDE_SRC_ATTRIB:"src",DEF_LOAD_TIMEOUT:2e4,DEF_BYPASS_ROOT_ELEM:!0,DEF_SERIALIZE_TO_JSCODE_VARNAME:"__xmlStr__",FILE_EXT_XML:".xml",FILE_EXT_XML_JS_WRAPPER:".xmljs",newDocument:function(e,t){if(e||(e=""),t||(t=""),XmlUtility.DOM_IMPLEMENTATION)return r=(new XmlUtility.DOM_IMPLEMENTATION).createDocument(t,e,null);if("undefined"!=typeof document){if(document.implementation&&document.implementation.createDocument)return r=document.implementation.createDocument(t,e,null);if("undefined"!=typeof ActiveXObject){var r=new ActiveXObject("MSXML2.DOMDocument");if(e){var n="",i=e,a=e.indexOf(":");-1!=a&&(n=e.substring(0,a),i=e.substring(a+1));var o="<"+(n?n+":":"")+i+(t?(n?" xmlns:":" xmlns")+n+'="'+t+'"':"")+"/>";r.loadXML(o)}return r}}},parse:function(e){if(XmlUtility.DOM_PARSER)return(new XmlUtility.DOM_PARSER).parseFromString(e,"application/xml");if("undefined"!=typeof document){if("undefined"!=typeof DOMParser)return(new DOMParser).parseFromString(e,"application/xml");if("undefined"!=typeof ActiveXObject){var t=XmlUtility.newDocument();return t.loadXML(e),t}var r="data:text/xml;charset=utf-8,"+encodeURIComponent(e),n=new XMLHttpRequest;return n.open("GET",r,!1),n.send(null),n.responseXML}},load:function(e,t,r){return e.lastIndexOf(XmlUtility.FILE_EXT_XML_JS_WRAPPER)===e.length-XmlUtility.FILE_EXT_XML_JS_WRAPPER.length?XmlUtility.loadHelper.loadJsWrapper(e,t,r):(r||(r={disableInclude:!1}),r.disableInclude?XmlUtility.loadHelper.loadSimple(e,t,r.timeout):XmlUtility.loadHelper.loadAndHandleIncludeElement(e,t,r))},loadHelper:{loadSimple:function(e,t,r){var n=null!=t;if(null==r&&(r=XmlUtility.DEF_LOAD_TIMEOUT),document.implementation&&document.implementation.createDocument){var i=new XMLHttpRequest,a=null;r&&(a=setTimeout(function(){o(null,!1)},r));var o=function(e,r){a&&clearTimeout(a),t&&t(e,r)};n&&(i.onreadystatechange=function(){if(4==i.readyState){var e=i.responseXML;e&&e.documentElement?o(e,!0):o(null,!1)}});try{i.open("get",e,n),i.send(null)}catch(e){WebShow.reportError(e),o(null,!1)}var s=i.responseXML;return s&&s.documentElement?s:null}return XmlUtility.loadHelper.loadSimpleViaDoc(e,t)},loadSimpleViaDoc:function(e,t){var r=null!=t,n=XmlUtility.newDocument("dummy_dummy_dummy_dummy");return n.async=r,r&&(n.onreadystatechange=function(){4==n.readyState&&(n.documentElement&&"dummy_dummy_dummy_dummy"!=n.documentElement.tag?t(n,!0):t(n,!1))}),n.load(e),n},loadAndHandleIncludeElement:function(e,t,r){var n;if(n=r?r.timeout:null,null==t){var i=XmlUtility.loadHelper.loadSimple(e,null,n);return i&&i.documentElement?(XmlUtility.loadHelper.handleIncludedXmlInElement(i.documentElement,null,r),i):null}return XmlUtility.loadHelper.loadSimple(e,function(e,n){n?XmlUtility.loadHelper.handleIncludedXmlInElement(e.documentElement,function(r){t(e,!0)},r):t(e,!1)},n)},loadJsWrapper:function(url,callback,options){options=options||{};var wrapperVarName=options.wrapperVarName||XmlUtility.DEF_SERIALIZE_TO_JSCODE_VARNAME,loadTimeout=options.timeout;null==loadTimeout&&(loadTimeout=XmlUtility.DEF_LOAD_TIMEOUT);var runCallBack=function(e,t){callback&&callback(e,t)},wrapperCallback=function(src,isSuccess){if(isSuccess){var xmlContent=eval(wrapperVarName),doc=XmlUtility.parse(xmlContent);runCallBack(doc,!0)}else runCallBack(null,!1)};options.timeout=loadTimeout,WebShow.ScriptLoader.load(url,wrapperCallback,options)},getIncludeElements:function(e,t){return t||(t=XmlUtility.DEF_INCLUDE_TAG_NAME),e.getElementsByTagName(t)},handleIncludedXmlInElement:function(e,t,r){r||(r={});var n=r.includeTagName||XmlUtility.DEF_INCLUDE_TAG_NAME,i=r.srcAttribName||XmlUtility.DEF_INCLUDE_SRC_ATTRIB,a=null!=r.bypassRootElem?r.bypassRootElem:XmlUtility.DEF_BYPASS_ROOT_ELEM,o=null==t,s=XmlUtility.getXmlDocUrl(e.ownerDocument),l=XmlUtility.loadHelper.getIncludeElements(e,n);if(!i)var u=null;var p,c=null,f=0,d=l.length;if(d<=0)return t&&t(0),null;for(var h=l.length-1;h>=0;--h)(u=(c=l[h]).getAttribute(i))&&(u=WebShow.URL.mergePath(u,s),o?(p=XmlUtility.loadHelper.loadSimple(u))&&XmlUtility.loadHelper.insertIncludedSection(p,c,a):XmlUtility.loadHelper.loadSimple(u,function(e,r,n){n&&r&&(p=r,XmlUtility.loadHelper.insertIncludedSection(p,e,a)),++f==d&&t(f)}.bind(this,c)));return e},insertIncludedSection:function(e,t,r){var n=[];if(r)for(var i=e.documentElement.firstChild;i;)i.nodeType==Node.ELEMENT_NODE&&n.push(i),i=i.nextSibling;else n.push(e.documentElement);for(var a=t.ownerDocument,o=(a.documentElement,0),s=n.length;o<s;++o){var l=n[o];a.importNode&&(l=a.importNode(l,!0)),t.parentNode.insertBefore(l,t)}return t.parentNode.removeChild(t),a}},serializeNode:function(e,t){if(t&&t.prettyPrint)return XmlUtility.serializeNodePretty(e);if(XmlUtility.XML_SERIALIZER)return(new XmlUtility.XML_SERIALIZER).serializeToString(e);if("undefined"!=typeof XMLSerializer)return(new XMLSerializer).serializeToString(e);if(e.xml)return e.xml;throw"XML.serialize is not supported or can't serialize "+e},serializeNodePretty:function(e){try{return XmlUtility.XML_SERIALIZER?(new XmlUtility.XML_SERIALIZER).serializeToString(e).toXMLString():(new XMLSerializer).serializeToString(e).toXMLString()}catch(t){return XmlUtility.serializeNode(e)}},serializeNodeToJsCode:function(e,t,r){r||(r="'"),t||(t=XmlUtility.DEF_SERIALIZE_TO_JSCODE_VARNAME);var n=XmlUtility.serializeNode(e),i=new RegExp(r,"g");return"var "+t+" = "+r+(n=n.replace(i,"\\"+r))+r+";"},parseFromJsWrappedCode:function(code,jsVarName){eval(code);var xmlText=eval(jsVarName);return XmlUtility.parse(xmlText)},getXmlDocUrl:function(e){return e.url||e.documentURI||e.URL||e.location}};DataType.JsonUtility=JsonUtility,DataType.XmlUtility=XmlUtility}(this),function(){var e=Class.create({CLASS_NAME:"ObjSerializer",serializeValue:function(e){return e},deserializeValue:function(e,t){return e},propNameToStorageName:function(e){return e},storageNameToPropName:function(e){return e},getObjCustomSaveMethod:function(e){return e.doSaveObj},getObjCustomLoadMethod:function(e){return e.doLoadObj},getObjCustomPropSaveMethod:function(e){return e.doSaveProp},getObjCustomPropLoadMethod:function(e){return e.doLoadProp},isUndefined:function(e){return DataType.isUndefinedValue(e)},isNull:function(e){return null===e},isNaN:function(e){return e!=e},isFunction:function(e){return DataType.isFunctionValue(e)},isArray:function(e){return DataType.isArrayValue(e)},isDate:function(e){return DataType.isDateValue(e)},isObject:function(e){return DataType.isObjectValue(e)},isObjectEx:function(e){return DataType.isObjectExValue(e)},isSimpleType:function(e){var t=typeof e;return"string"==t||"number"==t||"boolean"==t||"undefined"==t||this.isNull(e)},isComplexType:function(e){return!this.isSimpleType(e)},createChildStorageNode:function(e,t,r){},appendArrayItemStorageNode:function(e,t,r){},getNameForArrayItemStorageNode:function(e){return this.getDefaultArrayItemStorageName()},getChildStorageNode:function(e,t){},getAllArrayItemStorageNodes:function(e){},getAllStoredStorageNames:function(e){},setStorageNodeExplicitType:function(e,t){},getStorageNodeExplicitType:function(e){},getStorageNodeName:function(e){},isComplexStorageNode:function(e){},isComplexArrayItemStorageNode:function(e){},isSimpleStorageNode:function(e){},getValueExplicitType:function(e){return e instanceof ObjectEx?e.getClassName():this.isObject(e)?DataType.OBJECT:this.isArray(e)?DataType.ARRAY:this.isDate(e)?DataType.DATE:typeof e},getDefaultArrayItemStorageName:function(){return"item"},getDefaultDateStorageName:function(){return"date"},save:function(e,t,r){if("object"==typeof e){var n=this.getObjCustomSaveMethod(e);if(n)return n(e,t,this)}var i=this.doSave(e,t,r||{});return i&&this.isFunction(e.saved)&&e.saved(),i},doSave:function(e,t,r){return"object"==typeof e&&(e instanceof ObjectEx?this.doSaveObjectEx(e,t,r):this.isArray(e)?this.doSaveArray(e,t):this.isDate(e)?this.doSaveDate(e,t):this.doSaveSimpleObject(e,t)),this.setStorageNodeExplicitType(t,this.getValueExplicitType(e)),e},doSaveSimpleObject:function(e,t){for(var r in e)if(e.hasOwnProperty(r)){var n,i=e[r];this.isComplexType(i)&&(n=this.getValueExplicitType(i)),this.doSaveFieldValue(e,r,i,t,n)}},doSaveArray:function(e,t){for(var r=0,n=e.length;r<n;++r){var i=e[r],a=this.getNameForArrayItemStorageNode(i);if(this.isComplexType(i)){var o=this.appendArrayItemStorageNode(t,this.propNameToStorageName(a),this.isArray(i));this.setStorageNodeExplicitType(o,this.getValueExplicitType(i)),this.save(i,o)}else this.doAppendArrayItemSimpleValue(this.serializeValue(i),typeof i,t)}},doSaveDate:function(e,t){var r=e.toUTCString();this.doSaveSimpleValue(e,this.propNameToStorageName(this.getDefaultDateStorageName()),this.serializeValue(r),DataType.DATE,t)},doSaveObjectEx:function(e,t,r){for(var n=e.getAllPropList(),i=r.propFilter,a=0,o=n.getLength();a<o;++a){var s=n.getPropInfoAt(a);if(!i||i(s,e)){var l=this.getObjCustomPropSaveMethod(e),u=!1;if(l&&(u=l(e,s,t,this)),!u)if(s.serializable)("function"==typeof s.serializable?s.serializable.apply(e):s.serializable)&&this.doSaveObjectExProp(e,s,t,r)}}},doSaveObjectExProp:function(e,t,r,n){var i,a=t.name,o=t.dataType,s=e.getPropValue(a);(n.saveDefaultValues||s!==t.defaultValue)&&(s instanceof ObjectEx?s.getClassName()!=o&&(i=s.getClassName()):this.isComplexType(s)&&(i=this.getValueExplicitType(s))==o&&(i=void 0),this.doSaveFieldValue(e,a,s,r,i))},doSaveFieldValue:function(e,t,r,n,i){if("function"!=typeof r)if(this.isComplexType(r)){var a=this.createChildStorageNode(n,this.propNameToStorageName(t),this.isArray(r));i&&this.setStorageNodeExplicitType(a,i),this.save(r,a)}else this.doSaveSimpleValue(e,this.propNameToStorageName(t),this.serializeValue(r),this.getValueExplicitType(r),n)},doSaveSimpleValue:function(e,t,r,n,i){},doAppendArrayItemSimpleValue:function(e,t,r){},load:function(e,t){if(!e){var r=this.getStorageNodeExplicitType(t);if(!r)return this.doLoadUntypedNode?this.doLoadUntypedNode(t):null;e=DataType.createInstance(r)}if("object"==typeof e){var n=this.getObjCustomLoadMethod(e);if(n)return n(e,t,this)}var i=this.doLoad(e,t);return i&&this.isFunction(e.loaded)&&e.loaded(),i},doLoad:function(e,t){this.getStorageNodeExplicitType(t);if("object"==typeof e)if(e instanceof ObjectEx){e.beginUpdate();try{e=this.doLoadObjectEx(e,t)}finally{e.endUpdate()}}else e=this.isArray(e)?this.doLoadArray(e,t):this.isDate(e)?this.doLoadDate(e,t):this.doLoadSimpleObject(e,t);return e},doLoadArray:function(e,t){for(var r=this.getAllArrayItemStorageNodes(t),n=0,i=r.length;n<i;++n){var a=r[n];if(this.isComplexArrayItemStorageNode(a)){var o,s=this.getStorageNodeExplicitType(a)||this.getStorageNodeName(a);s?(o=DataType.createInstance(s),this.load(o,a)):(o={},this.load(o,a)),e.push(o)}else{var l=this.deserializeValue(this.doGetArrayItemSimpleStorageValue(a));e.push(l)}}return e},doLoadDate:function(e,t){var r=this.propNameToStorageName(this.getDefaultDateStorageName()),n=this.doLoadSimpleValue(e,r,DataType.DATE,t);if(n){var i=new Date(n);return e.copyFrom(i),e}},doLoadSimpleObject:function(e,t){for(var r=this.getAllStoredStorageNames(t),n=0,i=r.length;n<i;++n){var a=r[n],o=this.storageNameToPropName(a),s=this.getChildStorageNode(t,a);if(s){var l,u=this.getStorageNodeExplicitType(s);l=u?DataType.createInstance(u):{},this.load(l,s),e[o]=l}else{var p=this.doLoadSimpleValue(e,a,null,t);e[o]=p}}return e},doLoadObjectEx:function(e,t){for(var r=e.getAllPropList(),n=0,i=r.getLength();n<i;++n){var a=r.getPropInfoAt(n);if(a.serializable){var o=this.getObjCustomPropLoadMethod(e),s=!1;o&&(s=o(e,a,t,this)),s||this.doLoadObjectExProp(e,a,t)}}return e},doLoadObjectExProp:function(e,t,r){var n=t.name,i=t.dataType,a=this.doLoadFieldValue(e,n,r,i);null!=a&&e.setPropValue(n,a,!0)},doLoadFieldValue:function(e,t,r,n){var i,a=!1;if(DataType.isComplexType(n)){var o=this.getChildStorageNode(r,this.propNameToStorageName(t));if(o){var s=this.getStorageNodeExplicitType(o);i=s&&s!=n?DataType.createInstance(s):DataType.createInstance(n),this.load(i,o),a=!0}}return!DataType.isSimpleType(n)&&a||(i=this.doLoadSimpleValue(e,this.propNameToStorageName(t),n,r)),i},doLoadSimpleValue:function(e,t,r,n){var i=this.doLoadSimpleStorageValue(t,n);return this.deserializeValue(i,r)},doLoadSimpleStorageValue:function(e,t){},doGetArrayItemSimpleStorageValue:function(e){}}),t=Class.create(e,{CLASS_NAME:"JsonObjSerializer",TYPE_TAG_NAME:"__type__",createChildStorageNode:function(e,t,r){var n=r?[]:{};return e[t]=n,n},appendArrayItemStorageNode:function(e,t,r){var n=r?[]:{};return e.push(n),n},getChildStorageNode:function(e,t){var r=e[t];return this.isSimpleType(r)&&(r=null),r},getAllArrayItemStorageNodes:function(e){return Array.prototype.slice.call(e)},getAllStoredStorageNames:function(e){var t=[];for(var r in e)e.hasOwnProperty(r)&&r!=this.TYPE_TAG_NAME&&t.push(r);return t},isComplexStorageNode:function(e){return this.isComplexType(e)},isComplexArrayItemStorageNode:function(e){return this.isComplexStorageNode(e)},isSimpleStorageNode:function(e){return this.isSimpleType(e)},setStorageNodeExplicitType:function(e,t){this.isArray(e)||(e[this.TYPE_TAG_NAME]=t)},getStorageNodeExplicitType:function(e){var t=e[this.TYPE_TAG_NAME]||null;return!t&&this.isArray(e)?DataType.ARRAY:t},doSaveSimpleValue:function(e,t,r,n,i){i[t]=r},doAppendArrayItemSimpleValue:function(e,t,r){return r.push(e)},doLoadSimpleStorageValue:function(e,t){return t[e]},doLoadUntypedNode:function(e){return e},doGetArrayItemSimpleStorageValue:function(e){return e}}),r=Class.create(e,{CLASS_NAME:"XmlObjSerializer",TYPE_TAG_NAME:"dataType",UNSUIT_PROPNAME_PREFIX:"__.",getLocalName:function(e){return e.localName||e.baseName||e.nodeName},getElemTextValue:function(e){for(var t="",r=0,n=e.childNodes.length;r<n;++r)e.childNodes[r].nodeType==Node.TEXT_NODE&&(t+=e.childNodes[r].nodeValue);return t},serializeValue:function(e){return DataType.StringUtils.serializeValue(e)},deserializeValue:function(e,t){return DataType.StringUtils.deserializeValue(e,t)},propNameToStorageName:function(e){var t=e.toString().charAt(0).toLowerCase();return"_"===t||t>="a"&&t<="z"?e:this.UNSUIT_PROPNAME_PREFIX+e},storageNameToPropName:function(e){return"string"!=typeof e?e:0===e.indexOf(this.UNSUIT_PROPNAME_PREFIX)?e.substr(this.UNSUIT_PROPNAME_PREFIX.length):e},createChildStorageNode:function(e,t,r){var n=e.ownerDocument.createElement(t);return e.appendChild(n),n},appendArrayItemStorageNode:function(e,t,r){return this.createChildStorageNode(e,t,r)},getAllArrayItemStorageNodes:function(e){for(var t=[],r=0,n=e.childNodes.length;r<n;++r){var i=e.childNodes[r];i.nodeType==Node.ELEMENT_NODE&&t.push(i)}return t},getAllStoredStorageNames:function(e){for(var t=[],r=0,n=e.childNodes.length;r<n;++r){var i=e.childNodes[r];i.nodeType==Node.ELEMENT_NODE&&this.getLocalName(i)!=this.TYPE_TAG_NAME&&t.push(this.getLocalName(i))}for(r=0,n=e.attributes.length;r<n;++r){var a=e.attributes[r];this.getLocalName(a)!=this.TYPE_TAG_NAME&&t.push(this.getLocalName(a))}return t},getChildStorageNode:function(e,t){for(var r=null,n=0,i=e.childNodes.length;n<i;++n){var a=e.childNodes[n];a.nodeType==Node.ELEMENT_NODE&&this.getLocalName(a)==t&&(r=a)}return r},isComplexStorageNode:function(e){return e.nodeType==Node.ELEMENT_NODE},isComplexArrayItemStorageNode:function(e){return this.isComplexStorageNode(e)&&e.attributes.length&&!this.getElemTextValue(e).trim()},isSimpleStorageNode:function(e){return e.nodeType==Node.ATTRIBUTE_NODE},setStorageNodeExplicitType:function(e,t){e.setAttribute(this.TYPE_TAG_NAME,t)},getStorageNodeExplicitType:function(e){return e.getAttribute(this.TYPE_TAG_NAME)||null},getStorageNodeName:function(e){var t=e.tagName;return t==this.getDefaultArrayItemStorageName()?null:t},doSaveSimpleObject:function($super,e,t){$super(e,t)},doSaveArray:function($super,e,t){$super(e,t)},doSaveSimpleValue:function(e,t,r,n,i){i.setAttribute(t,r)},doAppendArrayItemSimpleValue:function(e,t,r){var n=this.appendArrayItemStorageNode(r,this.propNameToStorageName(this.getDefaultArrayItemStorageName()),!1),i=n.ownerDocument.createTextNode(e);n.appendChild(i)},doLoadSimpleStorageValue:function(e,t){return t.getAttribute(e)},doGetArrayItemSimpleStorageValue:function(e){return this.getElemTextValue(e)}}),n={_serializerClasses:{},_defaultName:null,registerSerializer:function(e,t,r){var i="string"==typeof t?ClassEx.findClass(t):t;n._serializerClasses[e]=i,r&&(n._defaultName=e)},getSerializer:function(e){var t=e||n._defaultName;if(t){var r=n._serializerClasses[t];return r?new r:null}return null}};n.registerSerializer("json",t,!0),n.registerSerializer("xml",r),Class.ObjSerializerFactory=n,ClassEx.extend(ObjectEx,{saveObj:function(e,t,r){return(t?"string"==typeof t?n.getSerializer(t):t:n.getSerializer()).save(this,e,r)},loadObj:function(e,t){var r,i;r=t?"string"==typeof t?n.getSerializer(t):t:n.getSerializer(),this.beginUpdate();try{i=r.load(this,e)}finally{this.endUpdate()}return i}}),Object.extend(ClassEx,{saveObj:function(e,t,r,i){return(r?"string"==typeof r?n.getSerializer(r):r:n.getSerializer()).save(e,t,i)},loadObj:function(e,t,r){return(r?"string"==typeof r?n.getSerializer(r):r:n.getSerializer()).load(e,t)}}),Object.extend(DataType,{valueToJson:function(e,t){if(DataType.isSimpleValue(e))return JSON.stringify(e);var r=DataType.isArrayValue(e)?[]:{};return ClassEx.saveObj(e,r,"json",t),JSON.stringify(r)},jsonToValue:function(e){var t=JSON.parse(e);return!t||DataType.isSimpleValue(t)?t:ClassEx.loadObj(null,t,"json")}})}();var Kekule={LIBNAME:"Kekule.js",LIBNAME_CORE:"Kekule",VERSION:"0.9.5.20022800",LOADED:!1,_afterLoadSysProcedures:[],_afterLoadUserProcedures:[],PROP_AUTO_TITLE:!0,_loaded:function(){if(!Kekule.LOADED){Kekule.LOADED=!0;for(var e=Kekule._afterLoadSysProcedures;e.length;){(t=e.shift())&&t()}for(e=Kekule._afterLoadUserProcedures;e.length;){var t;(t=e.shift())&&t()}var r=Kekule.$jsRoot&&Kekule.$jsRoot.document;if(r&&r.createEvent&&r.body&&r.body.dispatchEvent){var n=r.createEvent("Event");n.initEvent("kekuleload",!0,!0),r.body.dispatchEvent(n)}}},_isLoaded:function(){return Kekule.LOADED},_registerAfterLoadSysProc:function(e){e&&(Kekule.LOADED?e():Kekule._afterLoadSysProcedures.push(e))},_ready:function(e){e&&(Kekule.LOADED?e():Kekule._afterLoadUserProcedures.push(e))}};Kekule._registerAfterLoadProc=Kekule._ready,Kekule.$jsRoot=this,"object"==typeof self?Kekule.$jsRoot=self:"object"==typeof window&&window&&window.document?Kekule.$jsRoot=window:"object"==typeof global&&(Kekule.$jsRoot=global),Kekule.$jsRoot.Kekule=Kekule,Kekule.$document=this&&this.document||null,Kekule.scriptSrcInfo||(Kekule.scriptSrcInfo=Kekule.$jsRoot.__$kekule_load_info__),Kekule.scriptSrcInfo&&Kekule.scriptSrcInfo.language&&(Kekule.language=Kekule.scriptSrcInfo.language),!Kekule.scriptSrcInfo&&Kekule.$jsRoot.document&&(Kekule.scriptSrcInfo=function(){for(var e=/^(.*\/?)kekule\..*\.js(\?.*)?$/,t=document.getElementsByTagName("script"),r=t.length-1;r>=0;--r){var n=t[r];if(n.src){var i=n.src.match(e);if(i){var a=i[2];return a&&(a=a.substr(1)),{src:n.src,path:i[1],paramStr:a,useMinFile:!0}}}}return null}()),Kekule.environment={isNode:!("object"!=typeof process||"object"!=typeof process.versions||void 0===process.versions.node),isWeb:!("object"!=typeof window||!window.document)},Kekule.scriptSrcInfo&&(Kekule.environment.nodeModule=Kekule.scriptSrcInfo.nodeModule,Kekule.environment.nodeRequire=Kekule.scriptSrcInfo.nodeRequire),Kekule.$jsRoot.__$kekule_scriptfile_utils__&&(Kekule._ScriptFileUtils_=Kekule.$jsRoot.__$kekule_scriptfile_utils__,Kekule.ScriptFileUtils=Kekule._ScriptFileUtils_,Kekule.modules=function(e,t){var r=[];r="string"==typeof e?[e]:e;var n=Kekule.scriptSrcInfo;if(n){Kekule._ScriptFileUtils_.loadModuleScriptFiles(r,n.useMinFile,Kekule.scriptSrcInfo.path,n,function(e){t&&t(e)});return this}return this},Kekule.loadModules=Kekule.modules),Kekule.getScriptPath=function(){return Kekule.scriptSrcInfo.path},Kekule.getScriptSrc=function(){return Kekule.scriptSrcInfo.src},Kekule.getStyleSheetPath=function(){var e=Kekule.scriptSrcInfo;return e.useMinFile?e.path:e.path+"widgets/"},Kekule.getStyleSheetUrl=function(){return Kekule.getStyleSheetPath()+"themes/default/kekule.css"},Kekule.$jsRoot&&Kekule.$jsRoot.addEventListener&&Kekule.$jsRoot.postMessage&&Kekule.$jsRoot.addEventListener("message",function(e){"kekule-sys-info-query"===e.data&&Kekule.$jsRoot.postMessage({msg:"kekule-sys-info-result",libName:Kekule.LIBNAME,version:Kekule.VERSION},"*")},!1),Kekule.Dev={},Kekule.Class=Class,Kekule.ClassEx=ClassEx,Kekule.ObjectEx=ObjectEx,Kekule.DataType=DataType;
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
// ┌─────────────────────────────────────────────────────────────────────┐ \\
// │ Raphaël 2.0.1 - JavaScript Vector Library │ \\
// ├─────────────────────────────────────────────────────────────────────┤ \\
// │ Copyright (c) 2008-2011 Dmitry Baranovskiy (http://raphaeljs.com) │ \\
// │ Copyright (c) 2008-2011 Sencha Labs (http://sencha.com) │ \\
// │ Licensed under the MIT (http://raphaeljs.com/license.html) license. │ \\
// └─────────────────────────────────────────────────────────────────────┘ \\
(function(a){var b="0.4.0",c="hasOwnProperty",d=/[\.\/]/,e="*",f=function(){},g=function(a,b){return a-b},h,i,j={n:{}},k=function(a,b){var c=j,d=i,e=Array.prototype.slice.call(arguments,2),f=k.listeners(a),l=0,m=!1,n,o=[],p={},q=[],r=[];h=a,i=0;for(var s=0,t=f.length;s<t;s++)"zIndex"in f[s]&&(o.push(f[s].zIndex),f[s].zIndex<0&&(p[f[s].zIndex]=f[s]));o.sort(g);while(o[l]<0){n=p[o[l++]],q.push(n.apply(b,e));if(i){i=d;return q}}for(s=0;s<t;s++){n=f[s];if("zIndex"in n)if(n.zIndex==o[l]){q.push(n.apply(b,e));if(i){i=d;return q}do{l++,n=p[o[l]],n&&q.push(n.apply(b,e));if(i){i=d;return q}}while(n)}else p[n.zIndex]=n;else{q.push(n.apply(b,e));if(i){i=d;return q}}}i=d;return q.length?q:null};k.listeners=function(a){var b=a.split(d),c=j,f,g,h,i,k,l,m,n,o=[c],p=[];for(i=0,k=b.length;i<k;i++){n=[];for(l=0,m=o.length;l<m;l++){c=o[l].n,g=[c[b[i]],c[e]],h=2;while(h--)f=g[h],f&&(n.push(f),p=p.concat(f.f||[]))}o=n}return p},k.on=function(a,b){var c=a.split(d),e=j;for(var g=0,h=c.length;g<h;g++)e=e.n,!e[c[g]]&&(e[c[g]]={n:{}}),e=e[c[g]];e.f=e.f||[];for(g=0,h=e.f.length;g<h;g++)if(e.f[g]==b)return f;e.f.push(b);return function(a){+a==+a&&(b.zIndex=+a)}},k.stop=function(){i=1},k.nt=function(a){if(a)return(new RegExp("(?:\\.|\\/|^)"+a+"(?:\\.|\\/|$)")).test(h);return h},k.unbind=function(a,b){var f=a.split(d),g,h,i,k,l,m,n,o=[j];for(k=0,l=f.length;k<l;k++)for(m=0;m<o.length;m+=i.length-2){i=[m,1],g=o[m].n;if(f[k]!=e)g[f[k]]&&i.push(g[f[k]]);else for(h in g)g[c](h)&&i.push(g[h]);o.splice.apply(o,i)}for(k=0,l=o.length;k<l;k++){g=o[k];while(g.n){if(b){if(g.f){for(m=0,n=g.f.length;m<n;m++)if(g.f[m]==b){g.f.splice(m,1);break}!g.f.length&&delete g.f}for(h in g.n)if(g.n[c](h)&&g.n[h].f){var p=g.n[h].f;for(m=0,n=p.length;m<n;m++)if(p[m]==b){p.splice(m,1);break}!p.length&&delete g.n[h].f}}else{delete g.f;for(h in g.n)g.n[c](h)&&g.n[h].f&&delete g.n[h].f}g=g.n}}},k.once=function(a,b){var c=function(){b.apply(this,arguments),k.unbind(a,c)};return k.on(a,c)},k.version=b,k.toString=function(){return"You are running Eve "+b},typeof module!="undefined"&&module.exports?module.exports=k:a.eve=k})(this),function(){function cr(b,d,e,f,h,i){e=Q(e);var j,k,l,m=[],o,p,q,t=b.ms,u={},v={},w={};if(f)for(y=0,z=cl.length;y<z;y++){var x=cl[y];if(x.el.id==d.id&&x.anim==b){x.percent!=e?(cl.splice(y,1),l=1):k=x,d.attr(x.totalOrigin);break}}else f=+v;for(var y=0,z=b.percents.length;y<z;y++){if(b.percents[y]==e||b.percents[y]>f*b.top){e=b.percents[y],p=b.percents[y-1]||0,t=t/b.top*(e-p),o=b.percents[y+1],j=b.anim[e];break}f&&d.attr(b.anim[b.percents[y]])}if(!!j){if(!k){for(var A in j)if(j[g](A))if(U[g](A)||d.paper.customAttributes[g](A)){u[A]=d.attr(A),u[A]==null&&(u[A]=T[A]),v[A]=j[A];switch(U[A]){case C:w[A]=(v[A]-u[A])/t;break;case"colour":u[A]=a.getRGB(u[A]);var B=a.getRGB(v[A]);w[A]={r:(B.r-u[A].r)/t,g:(B.g-u[A].g)/t,b:(B.b-u[A].b)/t};break;case"path":var D=bG(u[A],v[A]),E=D[1];u[A]=D[0],w[A]=[];for(y=0,z=u[A].length;y<z;y++){w[A][y]=[0];for(var F=1,G=u[A][y].length;F<G;F++)w[A][y][F]=(E[y][F]-u[A][y][F])/t}break;case"transform":var H=d._,I=bP(H[A],v[A]);if(I){u[A]=I.from,v[A]=I.to,w[A]=[],w[A].real=!0;for(y=0,z=u[A].length;y<z;y++){w[A][y]=[u[A][y][0]];for(F=1,G=u[A][y].length;F<G;F++)w[A][y][F]=(v[A][y][F]-u[A][y][F])/t}}else{var J=d.matrix||new bQ,K={_:{transform:H.transform},getBBox:function(){return d.getBBox(1)}};u[A]=[J.a,J.b,J.c,J.d,J.e,J.f],bN(K,v[A]),v[A]=K._.transform,w[A]=[(K.matrix.a-J.a)/t,(K.matrix.b-J.b)/t,(K.matrix.c-J.c)/t,(K.matrix.d-J.d)/t,(K.matrix.e-J.e)/t,(K.matrix.e-J.f)/t]}break;case"csv":var L=r(j[A])[s](c),M=r(u[A])[s](c);if(A=="clip-rect"){u[A]=M,w[A]=[],y=M.length;while(y--)w[A][y]=(L[y]-u[A][y])/t}v[A]=L;break;default:L=[][n](j[A]),M=[][n](u[A]),w[A]=[],y=d.paper.customAttributes[A].length;while(y--)w[A][y]=((L[y]||0)-(M[y]||0))/t}}var O=j.easing,P=a.easing_formulas[O];if(!P){P=r(O).match(N);if(P&&P.length==5){var R=P;P=function(a){return cp(a,+R[1],+R[2],+R[3],+R[4],t)}}else P=be}q=j.start||b.start||+(new Date),x={anim:b,percent:e,timestamp:q,start:q+(b.del||0),status:0,initstatus:f||0,stop:!1,ms:t,easing:P,from:u,diff:w,to:v,el:d,callback:j.callback,prev:p,next:o,repeat:i||b.times,origin:d.attr(),totalOrigin:h},cl.push(x);if(f&&!k&&!l){x.stop=!0,x.start=new Date-t*f;if(cl.length==1)return cn()}l&&(x.start=new Date-x.ms*f),cl.length==1&&cm(cn)}else k.initstatus=f,k.start=new Date-k.ms*f;eve("anim.start."+d.id,d,b)}}function cq(a,b){var c=[],d={};this.ms=b,this.times=1;if(a){for(var e in a)a[g](e)&&(d[Q(e)]=a[e],c.push(Q(e)));c.sort(bc)}this.anim=d,this.top=c[c.length-1],this.percents=c}function cp(a,b,c,d,e,f){function o(a,b){var c,d,e,f,j,k;for(e=a,k=0;k<8;k++){f=m(e)-a;if(z(f)<b)return e;j=(3*i*e+2*h)*e+g;if(z(j)<1e-6)break;e=e-f/j}c=0,d=1,e=a;if(e<c)return c;if(e>d)return d;while(c<d){f=m(e);if(z(f-a)<b)return e;a>f?c=e:d=e,e=(d-c)/2+c}return e}function n(a,b){var c=o(a,b);return((l*c+k)*c+j)*c}function m(a){return((i*a+h)*a+g)*a}var g=3*b,h=3*(d-b)-g,i=1-g-h,j=3*c,k=3*(e-c)-j,l=1-j-k;return n(a,1/(200*f))}function cd(){return this.x+q+this.y+q+this.width+" × "+this.height}function cc(){return this.x+q+this.y}function bQ(a,b,c,d,e,f){a!=null?(this.a=+a,this.b=+b,this.c=+c,this.d=+d,this.e=+e,this.f=+f):(this.a=1,this.b=0,this.c=0,this.d=1,this.e=0,this.f=0)}function bw(a){var b=[];for(var c=0,d=a.length;d-2>c;c+=2){var e=[{x:+a[c],y:+a[c+1]},{x:+a[c],y:+a[c+1]},{x:+a[c+2],y:+a[c+3]},{x:+a[c+4],y:+a[c+5]}];d-4==c?(e[0]={x:+a[c-2],y:+a[c-1]},e[3]=e[2]):c&&(e[0]={x:+a[c-2],y:+a[c-1]}),b.push(["C",(-e[0].x+6*e[1].x+e[2].x)/6,(-e[0].y+6*e[1].y+e[2].y)/6,(e[1].x+6*e[2].x-e[3].x)/6,(e[1].y+6*e[2].y-e[3].y)/6,e[2].x,e[2].y])}return b}function bv(){return this.hex}function bt(a,b,c){function d(){var e=Array.prototype.slice.call(arguments,0),f=e.join(""),h=d.cache=d.cache||{},i=d.count=d.count||[];if(h[g](f)){bs(i,f);return c?c(h[f]):h[f]}i.length>=1e3&&delete h[i.shift()],i.push(f),h[f]=a[m](b,e);return c?c(h[f]):h[f]}return d}function bs(a,b){for(var c=0,d=a.length;c<d;c++)if(a[c]===b)return a.push(a.splice(c,1)[0])}function a(c){if(a.is(c,"function"))return b?c():eve.on("DOMload",c);if(a.is(c,E))return a._engine.create[m](a,c.splice(0,3+a.is(c[0],C))).add(c);var d=Array.prototype.slice.call(arguments,0);if(a.is(d[d.length-1],"function")){var e=d.pop();return b?e.call(a._engine.create[m](a,d)):eve.on("DOMload",function(){e.call(a._engine.create[m](a,d))})}return a._engine.create[m](a,arguments)}a.version="2.0.1",a.eve=eve;var b,c=/[, ]+/,d={circle:1,rect:1,path:1,ellipse:1,text:1,image:1},e=/\{(\d+)\}/g,f="prototype",g="hasOwnProperty",h={doc:document,win:window},i={was:Object.prototype[g].call(h.win,"Raphael"),is:h.win.Raphael},j=function(){this.ca=this.customAttributes={}},k,l="appendChild",m="apply",n="concat",o="createTouch"in h.doc,p="",q=" ",r=String,s="split",t="click dblclick mousedown mousemove mouseout mouseover mouseup touchstart touchmove touchend touchcancel"[s](q),u={mousedown:"touchstart",mousemove:"touchmove",mouseup:"touchend"},v=r.prototype.toLowerCase,w=Math,x=w.max,y=w.min,z=w.abs,A=w.pow,B=w.PI,C="number",D="string",E="array",F="toString",G="fill",H=Object.prototype.toString,I={},J="push",K=a._ISURL=/^url\(['"]?([^\)]+?)['"]?\)$/i,L=/^\s*((#[a-f\d]{6})|(#[a-f\d]{3})|rgba?\(\s*([\d\.]+%?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+%?(?:\s*,\s*[\d\.]+%?)?)\s*\)|hsba?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\)|hsla?\(\s*([\d\.]+(?:deg|\xb0|%)?\s*,\s*[\d\.]+%?\s*,\s*[\d\.]+(?:%?\s*,\s*[\d\.]+)?)%?\s*\))\s*$/i,M={NaN:1,Infinity:1,"-Infinity":1},N=/^(?:cubic-)?bezier\(([^,]+),([^,]+),([^,]+),([^\)]+)\)/,O=w.round,P="setAttribute",Q=parseFloat,R=parseInt,S=r.prototype.toUpperCase,T=a._availableAttrs={"arrow-end":"none","arrow-start":"none",blur:0,"clip-rect":"0 0 1e9 1e9",cursor:"default",cx:0,cy:0,fill:"#fff","fill-opacity":1,font:'10px "Arial"',"font-family":'"Arial"',"font-size":"10","font-style":"normal","font-weight":400,gradient:0,height:0,href:"http://raphaeljs.com/","letter-spacing":0,opacity:1,path:"M0,0",r:0,rx:0,ry:0,src:"",stroke:"#000","stroke-dasharray":"","stroke-linecap":"butt","stroke-linejoin":"butt","stroke-miterlimit":0,"stroke-opacity":1,"stroke-width":1,target:"_blank","text-anchor":"middle",title:"Raphael",transform:"",width:0,x:0,y:0},U=a._availableAnimAttrs={blur:C,"clip-rect":"csv",cx:C,cy:C,fill:"colour","fill-opacity":C,"font-size":C,height:C,opacity:C,path:"path",r:C,rx:C,ry:C,stroke:"colour","stroke-opacity":C,"stroke-width":C,transform:"transform",width:C,x:C,y:C},V=/\s*,\s*/,W={hs:1,rg:1},X=/,?([achlmqrstvxz]),?/gi,Y=/([achlmrqstvz])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?\s*,?\s*)+)/ig,Z=/([rstm])[\s,]*((-?\d*\.?\d*(?:e[\-+]?\d+)?\s*,?\s*)+)/ig,$=/(-?\d*\.?\d*(?:e[\-+]?\d+)?)\s*,?\s*/ig,_=a._radial_gradient=/^r(?:\(([^,]+?)\s*,\s*([^\)]+?)\))?/,ba={},bb=function(a,b){return a.key-b.key},bc=function(a,b){return Q(a)-Q(b)},bd=function(){},be=function(a){return a},bf=a._rectPath=function(a,b,c,d,e){if(e)return[["M",a+e,b],["l",c-e*2,0],["a",e,e,0,0,1,e,e],["l",0,d-e*2],["a",e,e,0,0,1,-e,e],["l",e*2-c,0],["a",e,e,0,0,1,-e,-e],["l",0,e*2-d],["a",e,e,0,0,1,e,-e],["z"]];return[["M",a,b],["l",c,0],["l",0,d],["l",-c,0],["z"]]},bg=function(a,b,c,d){d==null&&(d=c);return[["M",a,b],["m",0,-d],["a",c,d,0,1,1,0,2*d],["a",c,d,0,1,1,0,-2*d],["z"]]},bh=a._getPath={path:function(a){return a.attr("path")},circle:function(a){var b=a.attrs;return bg(b.cx,b.cy,b.r)},ellipse:function(a){var b=a.attrs;return bg(b.cx,b.cy,b.rx,b.ry)},rect:function(a){var b=a.attrs;return bf(b.x,b.y,b.width,b.height,b.r)},image:function(a){var b=a.attrs;return bf(b.x,b.y,b.width,b.height)},text:function(a){var b=a._getBBox();return bf(b.x,b.y,b.width,b.height)}},bi=a.mapPath=function(a,b){if(!b)return a;var c,d,e,f,g,h,i;a=bG(a);for(e=0,g=a.length;e<g;e++){i=a[e];for(f=1,h=i.length;f<h;f+=2)c=b.x(i[f],i[f+1]),d=b.y(i[f],i[f+1]),i[f]=c,i[f+1]=d}return a};a._g=h,a.type=h.win.SVGAngle||h.doc.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"SVG":"VML";if(a.type=="VML"){var bj=h.doc.createElement("div"),bk;bj.innerHTML='<v:shape adj="1"/>',bk=bj.firstChild,bk.style.behavior="url(#default#VML)";if(!bk||typeof bk.adj!="object")return a.type=p;bj=null}a.svg=!(a.vml=a.type=="VML"),a._Paper=j,a.fn=k=j.prototype=a.prototype,a._id=0,a._oid=0,a.is=function(a,b){b=v.call(b);if(b=="finite")return!M[g](+a);if(b=="array")return a instanceof Array;return b=="null"&&a===null||b==typeof a&&a!==null||b=="object"&&a===Object(a)||b=="array"&&Array.isArray&&Array.isArray(a)||H.call(a).slice(8,-1).toLowerCase()==b},a.angle=function(b,c,d,e,f,g){if(f==null){var h=b-d,i=c-e;if(!h&&!i)return 0;return(180+w.atan2(-i,-h)*180/B+360)%360}return a.angle(b,c,f,g)-a.angle(d,e,f,g)},a.rad=function(a){return a%360*B/180},a.deg=function(a){return a*180/B%360},a.snapTo=function(b,c,d){d=a.is(d,"finite")?d:10;if(a.is(b,E)){var e=b.length;while(e--)if(z(b[e]-c)<=d)return b[e]}else{b=+b;var f=c%b;if(f<d)return c-f;if(f>b-d)return c-f+b}return c};var bl=a.createUUID=function(a,b){return function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(a,b).toUpperCase()}}(/[xy]/g,function(a){var b=w.random()*16|0,c=a=="x"?b:b&3|8;return c.toString(16)});a.setWindow=function(b){eve("setWindow",a,h.win,b),h.win=b,h.doc=h.win.document,a._engine.initWin&&a._engine.initWin(h.win)};var bm=function(b){if(a.vml){var c=/^\s+|\s+$/g,d;try{var e=new ActiveXObject("htmlfile");e.write("<body>"),e.close(),d=e.body}catch(f){d=createPopup().document.body}var g=d.createTextRange();bm=bt(function(a){try{d.style.color=r(a).replace(c,p);var b=g.queryCommandValue("ForeColor");b=(b&255)<<16|b&65280|(b&16711680)>>>16;return"#"+("000000"+b.toString(16)).slice(-6)}catch(e){return"none"}})}else{var i=h.doc.createElement("i");i.title="Raphaël Colour Picker",i.style.display="none",h.doc.body.appendChild(i),bm=bt(function(a){i.style.color=a;return h.doc.defaultView.getComputedStyle(i,p).getPropertyValue("color")})}return bm(b)},bn=function(){return"hsb("+[this.h,this.s,this.b]+")"},bo=function(){return"hsl("+[this.h,this.s,this.l]+")"},bp=function(){return this.hex},bq=function(b,c,d){c==null&&a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b&&(d=b.b,c=b.g,b=b.r);if(c==null&&a.is(b,D)){var e=a.getRGB(b);b=e.r,c=e.g,d=e.b}if(b>1||c>1||d>1)b/=255,c/=255,d/=255;return[b,c,d]},br=function(b,c,d,e){b*=255,c*=255,d*=255;var f={r:b,g:c,b:d,hex:a.rgb(b,c,d),toString:bp};a.is(e,"finite")&&(f.opacity=e);return f};a.color=function(b){var c;a.is(b,"object")&&"h"in b&&"s"in b&&"b"in b?(c=a.hsb2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):a.is(b,"object")&&"h"in b&&"s"in b&&"l"in b?(c=a.hsl2rgb(b),b.r=c.r,b.g=c.g,b.b=c.b,b.hex=c.hex):(a.is(b,"string")&&(b=a.getRGB(b)),a.is(b,"object")&&"r"in b&&"g"in b&&"b"in b?(c=a.rgb2hsl(b),b.h=c.h,b.s=c.s,b.l=c.l,c=a.rgb2hsb(b),b.v=c.b):(b={hex:"none"},b.r=b.g=b.b=b.h=b.s=b.v=b.l=-1)),b.toString=bp;return b},a.hsb2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"b"in a&&(c=a.b,b=a.s,a=a.h,d=a.o),a*=360;var e,f,g,h,i;a=a%360/60,i=c*b,h=i*(1-z(a%2-1)),e=f=g=c-i,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return br(e,f,g,d)},a.hsl2rgb=function(a,b,c,d){this.is(a,"object")&&"h"in a&&"s"in a&&"l"in a&&(c=a.l,b=a.s,a=a.h);if(a>1||b>1||c>1)a/=360,b/=100,c/=100;a*=360;var e,f,g,h,i;a=a%360/60,i=2*b*(c<.5?c:1-c),h=i*(1-z(a%2-1)),e=f=g=c-i/2,a=~~a,e+=[i,h,0,0,h,i][a],f+=[h,i,i,h,0,0][a],g+=[0,0,h,i,i,h][a];return br(e,f,g,d)},a.rgb2hsb=function(a,b,c){c=bq(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g;f=x(a,b,c),g=f-y(a,b,c),d=g==0?null:f==a?(b-c)/g:f==b?(c-a)/g+2:(a-b)/g+4,d=(d+360)%6*60/360,e=g==0?0:g/f;return{h:d,s:e,b:f,toString:bn}},a.rgb2hsl=function(a,b,c){c=bq(a,b,c),a=c[0],b=c[1],c=c[2];var d,e,f,g,h,i;g=x(a,b,c),h=y(a,b,c),i=g-h,d=i==0?null:g==a?(b-c)/i:g==b?(c-a)/i+2:(a-b)/i+4,d=(d+360)%6*60/360,f=(g+h)/2,e=i==0?0:f<.5?i/(2*f):i/(2-2*f);return{h:d,s:e,l:f,toString:bo}},a._path2string=function(){return this.join(",").replace(X,"$1")};var bu=a._preload=function(a,b){var c=h.doc.createElement("img");c.style.cssText="position:absolute;left:-9999em;top:-9999em",c.onload=function(){b.call(this),this.onload=null,h.doc.body.removeChild(this)},c.onerror=function(){h.doc.body.removeChild(this)},h.doc.body.appendChild(c),c.src=a};a.getRGB=bt(function(b){if(!b||!!((b=r(b)).indexOf("-")+1))return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bv};if(b=="none")return{r:-1,g:-1,b:-1,hex:"none",toString:bv};!W[g](b.toLowerCase().substring(0,2))&&b.charAt()!="#"&&(b=bm(b));var c,d,e,f,h,i,j,k=b.match(L);if(k){k[2]&&(f=R(k[2].substring(5),16),e=R(k[2].substring(3,5),16),d=R(k[2].substring(1,3),16)),k[3]&&(f=R((i=k[3].charAt(3))+i,16),e=R((i=k[3].charAt(2))+i,16),d=R((i=k[3].charAt(1))+i,16)),k[4]&&(j=k[4][s](V),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),k[1].toLowerCase().slice(0,4)=="rgba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100));if(k[5]){j=k[5][s](V),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsba"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsb2rgb(d,e,f,h)}if(k[6]){j=k[6][s](V),d=Q(j[0]),j[0].slice(-1)=="%"&&(d*=2.55),e=Q(j[1]),j[1].slice(-1)=="%"&&(e*=2.55),f=Q(j[2]),j[2].slice(-1)=="%"&&(f*=2.55),(j[0].slice(-3)=="deg"||j[0].slice(-1)=="°")&&(d/=360),k[1].toLowerCase().slice(0,4)=="hsla"&&(h=Q(j[3])),j[3]&&j[3].slice(-1)=="%"&&(h/=100);return a.hsl2rgb(d,e,f,h)}k={r:d,g:e,b:f,toString:bv},k.hex="#"+(16777216|f|e<<8|d<<16).toString(16).slice(1),a.is(h,"finite")&&(k.opacity=h);return k}return{r:-1,g:-1,b:-1,hex:"none",error:1,toString:bv}},a),a.hsb=bt(function(b,c,d){return a.hsb2rgb(b,c,d).hex}),a.hsl=bt(function(b,c,d){return a.hsl2rgb(b,c,d).hex}),a.rgb=bt(function(a,b,c){return"#"+(16777216|c|b<<8|a<<16).toString(16).slice(1)}),a.getColor=function(a){var b=this.getColor.start=this.getColor.start||{h:0,s:1,b:a||.75},c=this.hsb2rgb(b.h,b.s,b.b);b.h+=.075,b.h>1&&(b.h=0,b.s-=.2,b.s<=0&&(this.getColor.start={h:0,s:1,b:b.b}));return c.hex},a.getColor.reset=function(){delete this.start},a.parsePathString=bt(function(b){if(!b)return null;var c={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0},d=[];a.is(b,E)&&a.is(b[0],E)&&(d=by(b)),d.length