From 528191e8dabfde5661f2af0047a896c9af902b90 Mon Sep 17 00:00:00 2001 From: roshelrao Date: Tue, 15 Jun 2021 15:40:56 +0530 Subject: [PATCH] loans index.php changes --- core/admin/loans/index.php | 34 +- web/dist/admin-bundle.js | 46816 ++++++++++++++++- web/dist/common.js | 532 +- web/dist/login.js | 10483 +++- web/dist/modules-bundle.js | 37470 +++++++++++++- web/dist/third-party.js | 68188 ++++++++++++------------- web/dist/vendorAntd.js | 91755 ++++++++++++++++++++++++++++++++- web/dist/vendorAntdIcons.js | 39549 ++++++++++++++- web/dist/vendorAntv.js | 92738 +++++++++++++++++++++++++++++++++- web/dist/vendorOther.js | 15466 +++++- web/dist/vendorReact.js | 28928 ++++++++++- 11 files changed, 397823 insertions(+), 34136 deletions(-) diff --git a/core/admin/loans/index.php b/core/admin/loans/index.php index e667c197..2575a340 100644 --- a/core/admin/loans/index.php +++ b/core/admin/loans/index.php @@ -3,6 +3,9 @@ Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) */ +use Classes\PermissionManager; +use CompanyLoans\Common\Model\CompanyLoan; +use CompanyLoans\Common\Model\EmployeeCompanyLoan; $moduleName = 'loans'; $moduleGroup = 'admin'; @@ -36,13 +39,36 @@ include APP_BASE_PATH.'modulejslibs.inc.php'; + + $user->user_level, + 'permissions' => [ + 'CompanyLoan' => PermissionManager::checkGeneralAccess(new CompanyLoan()), + 'EmployeeCompanyLoan' => PermissionManager::checkGeneralAccess(new EmployeeCompanyLoan()), + ] +]; +?> + diff --git a/web/dist/admin-bundle.js b/web/dist/admin-bundle.js index ef8ad334..c13f936f 100644 --- a/web/dist/admin-bundle.js +++ b/web/dist/admin-bundle.js @@ -1,9 +1,44400 @@ -var _0xc7a5=['saveUserFailCallBack','setSelection','fillRect','work_station_id','getFormParameters','transparent\x20transparent\x20rgba(0,0,0,.1)\x20transparent','Alt-','\x5c$&','./_isKeyable','reload','overlays','','goCharLeft','Social\x20Security\x20Number','#7c4dff','ClockCircleOutlined','attendnaceMapCanvasOut','null-label','hidden','Employee\x20contract\x20re-activated.','nic_num','codemirror/addon/edit/closebrackets','008b8b','Employee','DataImportAdapter','left','uid','optimizelegibility','project','currentStyle','inset\x200\x200\x200\x203px\x20','expire_notification_week','origFilter','lineN','replaceChild','#82b1ff','dragLabel','Company\x20Structure\x20is\x20having\x20a\x20cyclic\x20dependency','CodeMirror-vscrollbar','#283593','AAAlarge','touchstart','.modal-backdrop','control2','keys','_edit__delete__photo_','.datetimefield','DataView','require','borderBottom','compareEndPoints','cachedTextHeight','ea7e5d','./_getSymbolsIn','flex','Number\x20required','5px','autoCloseBrackets','pointerEvents','delGroupBefore','cwd','Item\x20Removed','stateAfter','For\x20this\x20user\x20type,\x20you\x20have\x20to\x20assign\x20an\x20employee\x20when\x20adding\x20or\x20editing\x20the\x20user.
','keyword\x20b','#80deea','clearOnResize','Action','done','Time\x20Zone','Swatches','ASC','form','buffer','__proto__','dependOnField','Calling\x20PropTypes\x20validators\x20directly\x20is\x20not\x20supported\x20by\x20the\x20`prop-types`\x20package.\x20Use\x20`PropTypes.checkPropTypes()`\x20to\x20call\x20them.\x20Read\x20more\x20at\x20http://fb.me/use-check-prop-types','\x20for\x20all\x20ranges','calculation_function','linear-gradient(-180deg,\x20#F0F0F0\x200%,\x20#D4D4D4\x20100%)','./_Promise','employees/','readOnly','every','props','2px\x20#fff\x20solid','#FFF','#attendnaceMapCanvasOut','startGracePeriod','isInteger','setCurrentPayroll','Monthly\x20Installment','#aa00ff','getTableHTMLTemplate','addFailed','°,\x20','_formFileds','38px','.timefield','nl2br','setBaseUrl','#f44336','./_baseIsSet','_div','./IceFormModal','getSuccessCallBack','#000000','`\x20is\x20marked\x20as\x20required\x20in\x20`','service.php','Suspense','handleTaskHover','throwIfRequested','Pos','showEdit','itemNameLower','triangleShadow','setDataPipe','./isArguments','AlphaPointer','local','renderModel','initAdminCustomFields','#plainMessageModel\x20.modal-body','out_ip','Speaking','scale(1)','#B80000','from','execCommand','_lastVelocity','uploaded','14px','./_Map','An\x20email\x20has\x20been\x20sent\x20to\x20','CompactPicker','findNext','head','response','indirect_supervisors','./debounce','getLuminance','.completeBtnTable','556b2f','onBegin','./_root','UploadOutlined','Cache','_applyCombination','extendSelectionsBy','replaceSelections','popupTop','borderRadius','SettingAdapter','markers','./components/twitter/Twitter','#C45100','fun','Reset\x20Filters','Descriptions','masterDataReader','getIconByFileType','./_toSource','length','Child','select2','./_toKey','ops','module_id','TrainingSession','\x20status','addMinutes','Attachment\x203','setLocalDate','mousedown','leave','barMeasure','Address\x20Line\x202','../common','SupportedLanguage','isEmpty','changePassword','DownloadOutlined','0ff','inset\x200\x201px\x200\x200\x20rgba(255,255,255,.2),\x20inset\x200\x20-1px\x200\x200\x20rgba(0,0,0,.02)','../../../api/IdNameAdapter','Body','Authorization','previousView','Hue','false','Mod','value','currentElement','Tr:','react.suspense','dragleave','./eq','EmployeeDistributionChart','viewOffset','data_import_definition','isConcurrentMode','#0d47a1','handleActive','getDataItemByKeyValues','GooglePointerCircle','toggles','wheelStartY','window','EmployeeCertificationAdapter','Component','city','Last\x20Installment\x20Date',',\x200)\x200%,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20rgba(','Error\x20saving\x20attendance\x20entry','./adapters/http','image_out','Columns\x20to\x20Add','-16px','NoBtn','#8B572A','handlers','../../../api/FormValidation','maxBodyLength','purple','detachEvent','./isObject','../helpers/isAbsoluteURL','moveOnDrag','commands','gutterClass','fixJSON','maybeUnhiddenMarkers','undo','nodeType','top','listSelections','_mouseButtonDown','Input','travel_date','y-2-1\x20h:s:00','employee_id','bdb76b','./_equalByTag','exports','.signatureField','drag','initForm','87ceeb','toHexString','addClass','isURLSearchParams','_div_inner','Industry','mask','Select','Employee\x20Distribution','onTimeout','2px\x20solid\x20#B3B3B3','extend','Photoshop','translate(-8px,\x20-5px)','updateDataSuccessCallBack','./_safeGet','address1','setHistory','CountryAdapter','indentWithTabs','getShowAddNew','SUCCESS','Max\x20Salary','./Swatch','getRequestKey','Greater\x20than\x20or\x20Equal','#666','./_stackClear','da70d6','-02-29','location','handleMouseDown','Line','small','createDocumentFragment','returnValue','316px','onContextMenu','singleSelection','localStorage','23px','16px','responseURL','currentReport','mod_order','getFilter','px\x20','JobTitle','#messageModel','Divider','fixedPos','triangleBorder','drawCompanyLeaveEntitlementChart','convertToRelativeTime','translate(-10px,\x20-7px)','ProjectAdapter','#_edit_#','enableZeroWidthBar','dataTable','dims','loadRemoteDataForSettings','initialFilter','[object\x20RegExp]','resolve','emailOrEmpty','./isSymbol','checkPermission','saveFailCallback','insertTab','Material','toState','ms\x20exceeded','ceil','../components/IceStepFromModal','getEditButtonJsx','Number','The\x20','arguments','save','_resetFilters','CompanyLeaveEntitlementChartLoader','_originalInput','EmployeeSubDependentAdapter','events','\x20deduction\x20is\x20','#ffea00','static','Basic\x20','Start\x20Date','ExpensesCategory','Job\x20Title\x20Code','_fromData','setNoJSONRequests','Full\x20Professional\x20Proficiency','filters','0\x202px\x202px\x200','postRenderForm','rgba(255,\x20255,\x20255,\x20.05)','Document','forceScroll','ba55d3','Empty\x20Report','clearRect','upload','multiple','[object\x20Uint8ClampedArray]','Shift-','Esc','allow-null','lodash/each','#tabPageTimeUtilizationGraph\x20svg','Company\x20Vacation\x20Usage','work_phone','ClientAdapter','image/svg+xml','Google','CommonDataImporter','data/','viewElement','Clocked\x20In\x20Status','word','hasCustomButtons','Access\x20violation','volcano','historyEventDelay','Pass','_remove','Gender','select2Multi','Category','links','#ad1457','notes','Skeleton','travel','isProfiler','altGraphKey','ExpensesPaymentMethod','Multi\x20Select','1px\x20solid\x20#888888','code+name','./_nativeKeys','Run\x20Payroll','validations','defineExtension','supervisor','reading','insertBefore','Space','toggleComment','admin=payroll','./MasterDataReader','#attendnaceMapCanvasIn','findMarks','resize','reset','#fce4ec','dragFunctions','minWidth','react.block','lastAnchorNode','indented','width:\x20','position:\x20relative;','span','Additional\x20details','4px\x200\x204px\x206px','#helptext','fieldSymbols','getSubItemHtml','first_name','download','closeBefore','width','downloadArchivedEmployee','content-box','#F0F0F0','SketchPicker','tabEmployeeSkill','Lower\x20Limit','px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20left:\x20','marker','#BED3F3','findIndex','institute','#ffd54f','#000','this','\x20','attendnaceCanvasOut','./_baseIteratee','./components/active','./helpers/normalizeHeaderName','3px','travelrequest','?g=admin&n=users&m=admin_Admin&action=new&object=','enum','rgb(248,\x20248,\x20248)','100ms\x20transform\x20ease','Ctrl-','renderFormSelectOptions','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function,\x20not\x20','px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20','#e8f5e9','./_hashSet','blinker','8fbc8f','tabCompanyStructure','amber','deleteDataGroupItem','#ce93d8','#607d8b','total','display','#ffe082','loop','TaskListLoader','remoteFieldsExists','admin=charts','#f57f17','image_in','noJSONRequests','alignable','../../../api/IceDataPipe','callFunction','getElementsByClassName','getOwnPropertyNames','#AEA1FF','getStatusOptionsData','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.hue-horizontal\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(to\x20right,\x20#f00\x200%,\x20#ff0\x2017%,\x20#0f0\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2033%,\x20#0ff\x2050%,\x20#00f\x2067%,\x20#f0f\x2083%,\x20#f00\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20-webkit-linear-gradient(to\x20right,\x20#f00\x200%,\x20#ff0\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2017%,\x20#0f0\x2033%,\x20#0ff\x2050%,\x20#00f\x2067%,\x20#f0f\x2083%,\x20#f00\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.hue-vertical\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(to\x20top,\x20#f00\x200%,\x20#ff0\x2017%,\x20#0f0\x2033%,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#0ff\x2050%,\x20#00f\x2067%,\x20#f0f\x2083%,\x20#f00\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20-webkit-linear-gradient(to\x20top,\x20#f00\x200%,\x20#ff0\x2017%,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#0f0\x2033%,\x20#0ff\x2050%,\x20#00f\x2067%,\x20#f0f\x2083%,\x20#f00\x20100%);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','#ffcc80','#_delete_##_edit_##_label_#:#_value_#','#fff176','setTimeout\x20has\x20not\x20been\x20defined','0f0','editableTableWidget','admin=data','endPoint','plainMessage','DeleteOutlined','beforeCursorEnter','desaturate','SwatchesGroup','lastModTime','getMetaFieldValues','fillStyle','Professional\x20Working\x20Proficiency','9px','getFormSelectOptionsRemote','./adapters/xhr','#1b5e20','clone','#attendnaceMapCanvasInWrapper','next','propertyIsEnumerable','Id\x20Number','remoteTableSkipProfileRestriction','deepOrange','fieldTemplates','./_baseMergeDeep','Uint8Array','http://blog.icehrm.com/docs/projects/','teTop','`,\x20expected\x20a\x20ReactNode.','#ba68c8','\x20=\x20','redoSelection','application/x-www-form-urlencoded;charset=utf-8','numberOfCourses','f4a460','startColorstr=','version','0\x200\x2024\x2024','eatSpace','0\x200\x200\x201px\x20rgba(0,0,0,.25),\x200\x208px\x2016px\x20rgba(0,0,0,.15)','fa\x20fa-file-pdf-o','defineDocExtension','explicitlyCleared','handleDrag','Anyone','readFromDOMSoon','4px\x200','fromDataURL','Actions','[object\x20Null]','quasi','supervisor_Name','prop-types','expires=','codemirror/mode/javascript/javascript','rmClass','#546e7a','Permission','./_memoizeCapped','refresh','Fragment','#bf360c','react.forward_ref','000','isForwardRef','afeeee','terminateEmployeeSuccessCallback','\x20#grid\x20.editcell','./_getPrototype','','#ff80ab','widgets','6px\x206px\x200\x200','address2','rest','__filterString__\x20','./lib','Supervisor','helperType','Time','skipThree','_createPoint','hsva(','#ff8a80','7b68ee','Selected\x20file\x20type\x20is\x20not\x20supported','localVars','getHelpLink','mode','nocursor','Alpha','setFieldTemplates','getClientGMTOffset','getTextArea','#1565c0','4px\x200\x200\x204px','abcdefghijklmnopqrst','gutterBackground','#tabPageTimeUtilizationGraph','./isArray','setSelections','&version=v2','XSRF-TOKEN','./_arrayFilter','Error','HH:mm','inset\x200\x200\x200\x201px\x20rgba(0,0,0,.15)','513px','isBuffer','Submit','getWrapperElement','emit','iter\x20insert\x20remove\x20copy\x20getEditor\x20constructor','MMM\x20d\x20\x20HH:mm','setCurrentProfile','./_isStrictComparable','#punchInIp','_process','&sm=','path=',',\x20100%,\x2050%)','&type=sub','indentMore','bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN','Normal','loan','#006B76','helper','#adminUsersModel','empty','react-dom','keyMaps','target','currentTarget','ChromePointerCircle','PayrollDataImporter','dataGroupToHtml','./_baseFor','Rented\x20Vehicle','ranges','edit','sub_columns','clientY','smartIndent','setSettings','CLIENT_BASE_URL','prev','()[]{}\x27\x27\x22\x22','./_baseEach','_ctx','moved','#d1c4e9','overflow:\x20hidden;\x20position:\x20relative;\x20width:\x203px;\x20height:\x200px;','Amount','field_type','./isFunction','nationality_Name','tableFields','checkboard','autocorrect','__data__','Inconsistent\x20bindings\x20for\x20','lineSpace','data:text/plain;charset=utf-8,','sourceData','87cefa','updateData','SliderPointer','[\x5cs|\x5c(]+(','dotSize','canvasProps','1px\x20solid\x20rgba(0,0,0,0.2)','getImageData','Other\x20ID','./checkPropTypes','inset\x200\x200\x200\x201px\x20rgba(0,0,0,.1)','Restricted\x20Employee','getRemoteTable','`,\x20expected\x20an\x20array.','Limited\x20Working\x20Proficiency','rgb(','equals','Holidays','removeAllRanges','Error\x20occured\x20while\x20terminating\x20Employee','Password\x20must\x20include\x20at\x20least\x20one\x20number','#ffff8d','calculation_columns','./_copyObject','hsla(','closeModal','codepoint','','getNoDataMessage','lineWrapping','translate','DataImportFileAdapter','saveUser','#D9D9D9','clearError','fa\x20fa\x20fa-file-code-o','./_setToArray','toggle','inset\x200\x200\x200\x20','scrollbarsClipped','#adminUsersChangePwd_error','fffff0','maybeHiddenMarkers','jsonld-keyword','swatches-picker\x20','[object\x20Date]','isValid','interceptors','#2979ff','1px\x20solid\x20#eee','viewportChange','AlphaPicker','Left','responseEncoding','8px','%,\x20','clearWhenEmpty','reverse','.dataTables_filter\x20label','approver3','SliderSwatches','100','orderDataGroup','url','columnIDMap','inset\x200\x200\x200\x201px\x20#F0F0F0','element','lastSelOrigin','time','deleteSuccessCallBack','\x20Filters','background','#iceloader','ChromeFields','./_freeGlobal','onSwatchHover','_error','lime','__text__','out_time','Password\x20Change','ffd700','set','shadowRoot','1e90ff','screenReaderLabel','./_stackGet','SalaryComponentTypeAdapter','clearOnEnter','Home\x20Phone','sorting','toISOString','abort','mustUpdate','#c8e6c9','updateMaxLine','4b0082','Certification','On\x20Hold','preSetFilterExternal','container','PrintScrn','handleChange','Expected\x20a\x20function','#ff6f00','Specification','orderBy','beforeRenderFieldHook','valueTable','Depends\x20On','checkValues','Cancelled','#attendnaceCanvasOutWrapper','setTypes','column','option:eq(0)','div','keyword','d3d3d3','User\x20created\x20successfully.\x20But\x20there\x20was\x20a\x20problem\x20sending\x20welcome\x20email.','#8e24aa','checkFileType','socketPath','./lib/axios','setObjectTypeName','finish','html','goDocStart','Institute','addSuccessCallBack','age','height','gender','./forEach','Not\x20Selected','touchAction','menu+name','noRender','Middle','externalMeasured','modalType','setFilter','10px\x200\x200\x2010px','#43a047','skip','renderYesNoModel','cache','unhide','gutterLeft','makeEmptyDateFieldsNull','modules=employees','hideHighlight','Expiry\x20Date','#aeea00','footer','deletePayrollGroup','that','28px','lodash/throttle','aqua','Cancellation\x20Requested','tabEmploymentStatus','Roboto','getTokenAt','22px','options','goDocEnd','click','velocityFilterWeight','moveToElementText','animate','pop','_date_  _status_
_note_','date','./CompactColor','./components/sketch/Sketch','lastOrigin','fa\x20fa-file-powerpoint-o','Swatch','reject','table','a52a2a','LineWidget','if-unmodified-since','getAttendanceSuccessCallBack','trailing','Network\x20Error','selectionInEditor','+move','readonly','Inactive','Employee\x20Salary','react.concurrent_mode','timeout','Female','#827717','pptx','rgba(255,\x20255,\x20255,\x201)','apply','./_getMapData','codemirrorIgnore','disableInput','Admin','test','validation','Twitter','','borderRightWidth','

','typeOf','#ff1744','EmployeeCompanyLoanAdapter','deviceXDPI','#fff','begin','show','now','getMetaFieldForRendering','Display\x20Status','brace','addRange','fa\x20fa-file-word-o','getAllResponseHeaders','meta','application/json','toRgbString','#f4ff81','isArrayBufferView','status_from','addError','Additional\x20Permissions','filtersAlreadySet','invalidateTable','Password\x20changed\x20successfully','selForContextMenu','position:\x20absolute;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x20','1px\x20transparent\x20solid','storage','#ec407a','getThemeColors','trimCanvas','UsageAdapter','ant-advanced-search-form','rgba(0,\x200,\x200,\x200.12)','address','deleteH','attributes','#FA28FF','./_isKey','#33691e','Step','context','0\x201px\x20rgba(0,0,0,.1)','makeDataGroupSortable','Less\x20than\x20or\x20Equal','SSN/NRIC','saturation','EmergencyContactAdapter','#2196f3','Popover','rangeAmounts','_blank','EmployeeSalaryAdapter','lookupKey','./_equalObjects','#ffa000','metaKey','12px','colId','fill','CodeMirror.Init','UndoOutlined','user','\x20Add\x20New','c71585','keyHandled','checkbox','#7b1fa2','Card','last','construct','stat','autofocus','drawEmployeeDistributionChart','EmployeeSubEducationAdapter','addKeyMap','offsetParent','Date','province','xxxxxxxxxx','#4A90E2','EmergencyContact','changeObjs','reduceXTicks','sTitle','select-one','addEventListener','_point','countryCompany','preProcessRemoteTableData','483d8b','10px\x2010px\x200','pairs','dragDrop','showError','goGroupRight','vis','./_Symbol','docHeight','TimePicker','toLowerCase','fromRatio','./Raised','isNumber','errorMessages','PayrollDataAdapter','beforeRenderField','lastWrapWidth','#d500f9','enter','None','sampleValue','7cfc00','scrollLeft','createTable','hideAllTasks','search','../../../api/ReactModalAdapterBase','end_time','https://icehrm.gitbook.io/icehrm/employees/employee-information-setup','UserAdapter','2px\x20solid\x20#F0F0F0','','canceled','#558b2f','#ff0000','Hiring\x20Pipeline','Payroll\x20Employees','hex4','Checkboard','mouseover','dcdcdc','VerifiedOutlined','date_start','PropTypes','#5e35b1','initFieldMasterData','Error\x20Occurred\x20while\x20retrieving\x20candidate','forceCompositionEnd','transitionDuration','totalRecords','secure','full','EditableInput','./SliderPointer',')\x5cs*\x5c)?','active','\x20|\x20','File\x20imported\x20successfully.','prevInput','OvertimeCategoryAdapter','boolean','position:\x20absolute;\x20left:\x20','immigration_status','tinycolor','Active','parentElement','datetime','lodash/map','#03a9f4','localStorageEnabled','`,\x20expected\x20one\x20of\x20','#808080','goLineStartSmart','isMemo','noHScroll','keyword\x20c','react-is','doc_number','endStyle','@antv/g2plot','beginPath','textContent','ReportAdapter','hideFirstChars','Response\x20for\x20','keyup','contextmenu','enumerable','Employee\x20Projects','#adminUsersChangePwd\x20#newpwd','maxLine','google-picker\x20','Provinces','./_baseMerge','Department','setCustomFields','e_preventDefault','../../../components/TaskList','contact_email','Menu','#changePasswordBtn','copy','MedicineBoxOutlined','./cancel/Cancel','isModuleInstalled','setUneditable','&iDisplayLength=','issued','retriveItemsAfterSave','currentView','alpha-picker\x20','_MENU_\x20records\x20per\x20page','Calculation\x20Process','modeOption','tabLanguage','getStatusFieldPosition','#E27300','setCurrentElement','reason','setPrototypeOf','#3949ab','pointer','#e3f2fd','Create\x20User','#f1f8e9','viewTo','#EB144C','formId','setDefaultValues','terminateEmployeeFailCallback','name','./cjs/react-is.development.js','[object\x20Int16Array]','getTableName','fileName','CSV\x20Field\x20Name','first','keyword\x20d','delWordAfter','theme','#333','\x20*\x20','getCustomTableParams','valid_until','exec','onChange','_addPoint','Notify\x20Expiry\x20Before\x20One\x20Week','codemirror/addon/display/autorefresh','hideLabel','#deleteModel','setAdminEmp','','lang','protocol','','progid:DXImageTransform.Microsoft.gradient(','CodeMirror-composing','cd5c5c','markedSpans','resetWarningCache','#pay_period','./_hashGet','marginTop','center','Right','groups','0000-00-00\x2000:00:00','handler','MODULE_NOT_FOUND','./isTypedArray','lightGreen','upperCondition','abs','./Hue','fieldMasterDataCallback','EmployeeEducationAdapter','operation','rows','Relationship','cancelToken','delete','0123456789','activeTouch','/certifications','isFile','getBoundingClientRect','./_baseIsArguments','startStyle','rowTable','CSS_UNIT','jsonld','./_Hash','contenteditable','maxHighlightLength','postal_code','promise','Plane','#b2ff59','actions','./CompactFields','changeEnd','Pending','data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==','employment_status','documentname','blueGrey','createTask','#66bb6a','file:','#d32f2f','tabindex','symbol','getOwnPropertyDescriptor','./GooglePointerCircle','signaturePad','tabCustomField','TextArea','property','`\x20key\x20`','typescript','#d50000','./_baseIsEqual','update_path','handleFocus','undefined','getDataMapping','Display\x20Section','_strokeWidth','split','changeStatus','Custom\x20Field','Heads','setAttribute','saveSuccessCallback','PhotoshopPointerCircle','#b2ebf2','log','nextLine','#536dfe','#3f51b5','paramsSerializer','#FCDC00','100px','#b3e5fc','Clocked\x20In','.logTime','getTimeUtilizationFailCallBack','./_Uint8Array','_strokeBegin','getMode','#ffffff','HuePicker','TextMarker','messages','maxLookAhead','.tableActionButton','hasSelection','#EB9694','showDomElement','#ffeb3b','baseToken','character','toggleViews','User\x20Data','Invalid\x20field\x20label\x20for\x20custom\x20field','Not\x20Processed','codemirror','48d1cc','position:\x20relative','_filter_error','getTemplate','initAdapter','CodeMirror-focused','fileGroup','Double','Ctrl','fuchsia','deviceYDPI','\x20.dataTables_paginate\x20.active\x20a','\x0a\x0a\x0a\x0a','doc','group','Language','always','admin=attendance','CodeMirror','openStatus','.svg','Pay\x20Frequency','Restricted\x20Manager','enabled','prgb','#00c853','datepicker','toHsvString','#7e57c2','colors','#ff8f00','./mergeClasses','YYYY-MM-DD\x20HH:mm:ss','offsetHeight','pasteIncoming','header','getAllData','macDefault','arrayOf','dob','getTableData','updateAllMasterData','lineWidgetChanged','&sSearch=','PayrollColumnAdapter','0\x202px\x2010px\x20rgba(0,0,0,.12),\x200\x202px\x205px\x20rgba(0,0,0,.16)','getTime','deduction_group','idField','inset\x200\x200\x200\x201px\x20rgba(0,0,0,.15),\x200\x200\x204px\x20','#e0f2f1','uppercase','Color\x20Picker','./_arrayMap','Text\x20Area','draggable','AsyncMode','transparent\x20transparent\x20transparent\x20#fff','Sketch','fffacd','createField','preRenderForm','columns','client','dragMax','hue-','lastLine','_div\x27]','previousSibling','Pie','classes','#999','0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ','#26a69a','ensurePolled','0\x203px','#40c4ff','last_name','Work','reportedViewFrom','consoleLog','Travel\x20From','ffc0cb','fetchCompleted','return','CodeMirror-line','triple','./SketchFields','contains','a0522d','select','9{0,10}.99','showPreviousView','deleteFailCallBack','curve','overlay\x20','CodeMirror-cursors\x20CodeMirror-dragcursors','Error\x20adding\x20data\x20group:\x20','If\x20the\x20type\x20is\x20Reference\x20then\x20\x27Depends\x20On\x20Field\x27\x20can\x20not\x20be\x20empty','-14px','lastIndexOf','If\x20salary\x20component\x20','-server','0\x200\x204px\x20','object-assign','00ff7f','Invalid\x20argument\x20supplied\x20to\x20oneOfType.\x20Expected\x20an\x20array\x20of\x20check\x20functions,\x20but\x20received\x20','#b0bec5','#eee','\x22\x20target=\x22_blank\x22\x20style=\x22font-size:14px;font-weight:bold;\x22>Download\x20Report\x20\x20','handleView','delWrappedLineRight','suppressEdits','Are\x20you\x20sure\x20you\x20want\x20to\x20terminate\x20this\x20employee\x20contract?\x20You\x20will\x20still\x20be\x20able\x20to\x20access\x20all\x20details\x20of\x20this\x20employee.','handleTableChange','Default\x20Module','#attendnaceCanvasPunchInTime','#FF6900','removeAllByPrefix','#80d8ff','before','calculation_hook','\x20Departments','Permissions','#numberOfAttendanceLastWeek','getSourceDataById','JSON','Direct\x20Supervisor','getFieldValues','password','createElementNS','d2b48c','Company\x20Url','30px','&file_group=','clearDeleteParams','./_baseGet','Field\x20Label','executor\x20must\x20be\x20a\x20function.','innerMode','','f0f8ff','#fff8e1','collapse','lineWise','copyRow','ffe4b5','(?:$|\x5cs)','goLineEnd','#F78DA7','note','getTableActionButtonJsx','nativeBarWidth','_edit__download__clone__delete_','dragover','yellow','preventDefault','indentLess','Company\x20Payroll','points','replaceSelection','0\x20solid\x20rgba(0,0,0,0.25)','charCoords','mouseup','f5f5f5','addAdditionalRequestData','oncopy','ref','getFilters','\x20in\x20the\x20document.','./_cloneBuffer','100%','keyName','Mode\x20','SharedTextMarker','./_mapCacheGet','[object\x20Arguments]','workDelay','Spin','2px\x20white\x20solid','getSourceMapping','deleteEmployee','getContrastingColor','btoa','addActualFieldsForStepModal','inputmask','dummy','Rejected','CodeMirror-code','Form\x20#','fieldMasterDataKeys','order','pay_grade','fields','./_baseIsEqualDeep','teLeft','Columns','lookAhead','All\x20Skills','updateDataAllFailCallBack','ArchivedEmployee','_filter','viewOnly','selectAll','inArray','middle_name','unmountComponentAtNode','','signal','End\x20Date','./_copyArray','.dataTables_length','#b388ff','tableContainer','lineDiv','#69f0ae','signatureField','ChromePointer','lastAnchorOffset','./SwatchesColor','[object\x20WeakMap]','toHex8','.colorpick','./_getNative','&iSortCol_0=','level','SalaryComponent','svg','#0C797D','hsl(','Unit','<>','rgba(0,\x200,\x200,\x200.54)','state','extends','changePasswordFailCallBack','Enter','first_name+last_name','filter','templates','specification','66cdaa','change','isUndefined','changeGeneration','pollInterval','linked','columnTable','_children','Modal','translate(-12px,\x20-13px)','odd','Loan\x20Start\x20Date','Logs','keyof','#FCC400','other','#fff59d','./components/photoshop/Photoshop','MODAL_TYPE_NORMAL','./_isPrototype','#numberOfUsers','radio','iterator','CompanyGraphAdapter','detail','handleMouseEvents','fafad2','gutterWidth','cancel','_global','_clone_','#cddc39','clearHistory','
','35px','Mapped\x20Text','CalculationHook','Sign','#68BC00','Raised','cm-tab','async','tabPayGrade','photoshop-picker\x20','_submit\x20#id','#73D8FF','after','Block','cmpPos','relationship','application/ecmascript','baseUrl','4px\x204px\x200\x200','customTemplates','alignWidgets','#50E3C2','./_baseIsNative','#ff3d00','BlockPicker','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','lodash/debounce','.groupAddBtn','polling','#6d4c41','lineSeparator','hash','approver2','isString','Driving\x20License\x20No','teal','resolveMode','Item','permission','[]{}','#6a1b9a','Element','errorMap','text','Option\x20Value','@ant-design/icons',';\x0a\x20\x20\x20\x20\x20\x20outline:\x20none;\x20border-width:\x200;\x20outline:\x20none;\x20overflow:\x20hidden;\x20opacity:\x20.05;\x20filter:\x20alpha(opacity=5);','ProvinceAdapter','./_objectToString','drawImage','modes','showSave','check','Type','reloadCurrentElement','cssText','error','getData','EmploymentStatus','./_baseGetAllKeys','Value','../../../api/BaseGraphAdapter','Priority','getAttendanceFailCallBack','pink','export','pollingFast','home_phone','inputTypes','showAllTasks','Empty','transition','Code','single','./_overArg','[object\x20Uint8Array]','4682b4','inset\x200\x200\x200\x201px\x20#dadada','text/ecmascript','$1.*?','amount','#8ED1FC','formTemplate','drop','selectLeft','','ShowPopup','Password\x20must\x20include\x20at\x20least\x20one\x20symbol','50%','#3e2723','Validation','getOwnPropertySymbols','private','changeStatusSuccessCallBack','getHelper','[object\x20Int32Array]','_format','range','../components/IceFormModal','compositionstart','#f57c00','curOp','#dd2c00','splitLines','CompactColor','CompanyStructure','optionChange','-11px','source','[object\x20Number]','innerHTML','language_id','?_url=1','ltr','#f0f4c3','*compose','formatter','saveData','downloadTemplate','action','content-type','Status','textMapped','./IceDataGroup','_calculateCurveControlPoints','referer','Roboto-Regular,HelveticaNeue,Arial,sans-serif','Parent','Languages','WeakMap','y-1-2','confirmation_date','formError','children','sharedHist','rememberSelection','#f06292','#417505','hitSide','baseURL','parameters','\x20Active\x20Projects','outside','primIndex','registerGlobalHelper','grey','Clients','#4527a0','link','PayrollEmployee','scrollToPos','mover','LabelErrorClass','PhotoshopPreviews','modeFrontier','#689f38','disableAlpha','Completed','goLineDown','Sub\x20Unit','unit','3.6px/2px','From','firstSort','./Checkboard','green','./_equalArrays','closeMessage','maxScrollLeft','travel_to','./IceForm','joined_date','./ChromePointer','11px','#212121','#008B02','*mouse','#9013FE','[object\x20Function]','./_arraySome','reactcss','class','_edit__process__clone__delete_','#field_heads','./_coreJsData','getElementFailCallBack','Days\x20for\x20Expiry\x20Alert','getContent','#7cb342','objectType','\x0a\x0ab','cursorBlinkRate','Edit','The\x20ReactIs.isAsyncMode()\x20alias\x20has\x20been\x20deprecated,\x20and\x20will\x20be\x20removed\x20in\x20React\x2017+.\x20Update\x20your\x20code\x20to\x20use\x20ReactIs.isConcurrentMode()\x20instead.\x20It\x20has\x20the\x20exact\x20same\x20API.','lineWiseCopyCut','index','tabIndex','#9e9e9e','#18ffff','profile_image','__lodash_hash_undefined__','lineNumberFormatter','-10px','waitForIt','top-right','Employee\x20Number','Pause','bool','appendChild','html,\x20body','#29b6f6','

','#9fa8da','field_label','#Payroll','../../../../components/TagList','#9F0500','abstract','not','Notes','getText','bgClass','private_email','inputStyle\x20can\x20not\x20(yet)\x20be\x20changed\x20in\x20a\x20running\x20editor','switch','hidden.bs.modal','addCustomFields','#numberOfTimeEntries','#c2185b','selectionChanged','currentDataGroupItemId','cm-force-border','table-row-dark','sigCanvas','transparent','maxLineLength','Paragraph','EmploymentStatusAdapter','Delete','coverEnd','getRemoteSourceKey','708090','All\x20Job\x20Titles','Leave\x20Group','number','./_shortOut','leaveSubmitMethodAlone','string-2','EmployeeSubCertificationAdapter','./isLength','processFailCallBack','User','sol','./SketchPresetColors','ffa500','../../../api/ReactCustomFieldAdapter','linear-gradient(to\x20bottom,\x20rgba(','getDerivedStateFromProps','cachedCharWidth','checkedZeroWidth','Loan\x20Type','_handleMouseDown','adff2f','StatusModel','sizer','emacsy','callBackSuccess','modeGen','clientX','[datemask]','0\x201px\x204px\x200\x20rgba(0,\x200,\x200,\x200.37)','Access\x20Forbidden','008000','maxLineChanged','wheelEventPixels','mostReadable','Compact','1px\x20solid\x20#dadce0','moveInputWithCursor','./isObjectLike','#303f9f','../../lib/codemirror','_process_','#90caf9','fieldMasterDataCallbackData','education_id','M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z','../helpers/combineURLs','./defaults','#ffa726','getSelections','isValidHex','ffe4e1','sourceMapping','Alert\x20Before\x20Expiry','getMappedFields','_handlers','handleMouseOut','lodash/cloneDeep','./_baseIsTypedArray','\x20property','Roboto,Arial,sans-serif','Salary\x20Component\x20Type','monthly_installment','translate(20px,\x20-14px)\x20rotate(180deg)','indentSelection','Table\x20and\x20Form','steps-action','compositionupdate','all','deleteObj','access','Attachment\x201','both','array','Sample\x20Value','_handleTouchEvents','signature','EmployeeSubSkillsAdapter','steps','#e040fb','f5deb3','third','showSelection','../helpers/buildURL','`\x20has\x20invalid\x20PropType\x20notation\x20inside\x20arrayOf.','#b2dfdb','#2962ff','setRequestHeader','showPrimarySelection','Variable:','preProcessTableData','saveUsage','00fa9a','gutterClick','#fbe9e7','_edit_','isFragment','getAttribute','./stubFalse','List','Deactivate','We\x20found\x20a\x20cyclic\x20dependency\x20due\x20to\x20following\x20reasons:
','lineNumInnerWidth','ff4500','Regional\x20Office','spellcheck','success','floor','Insert','profile_image_','markerCleared','initial','user_level','near','trim-canvas','textClass','./isArrayLike','

','EmployeeSalary','getSpinner','sort','#attendancePhotoModel','handleBlur','AttendanceGraphAdapter','unlinkDoc','border-box','inputStyles','./factoryWithThrowingShims','vardef','\x20on\x20','getLogs','GooglePicker','#tabPageCompanyGraph','25px','Home','[object\x20String]','CompanyLoanAdapter','component','_strokeMoveUpdate','getRangeAt','Content-Type','getFullYear','processSuccessCallBack','attachEvent','[datetimemask]','[object\x20GeneratorFunction]','defineInitHook','  ','selectionEnd','Download','Joined\x20Date','Last\x20Name','d-MMM-yyyy\x20hh:mm\x20tt','regexp','tableType','EmployeeSubLanguageAdapter','explode','PlusCircleOutlined','#64b5f6','CompactFields','selectionsMayTouch','#222','heads','Total','Postal/Zip\x20Code','#f9fbe7','./_hasPath','admin=users','','View','a9a9a9','#DCDCDC','saveUserSuccessCallBack','work_email','currentProfile','lineGutter','IE_PROTO','Arguments','#009CE0','setTables','lex','./../helpers/parseHeaders','grid','#ede7f6','Work\x20Station\x20Id','public','_sigPad','Alert\x20If\x20Not\x20Found','skipToEnd','./_isIndex','4px','400','.20','Skills','No\x20Upper\x20Limit','EmployeeOnlineOfflineChartLoader','icon','modeExtensions','Draft','CodeMirror-rtl','mod_group','Memo','replaceWith','110px','_calculateCurveWidths','px;\x0a\x20\x20\x20\x20\x20\x20z-index:\x201000;\x20background:\x20','stateChange','goLineRight','Payroll\x20Data','configurable','ColorWrap','tabEducation','onload','Start\x20Time','./identity','react.element','alert_before_expiry','b8860b','Instead\x20of\x20sharing\x20with\x20all\x20the\x20employees\x20in\x20a\x20department,\x20you\x20can\x20share\x20it\x20only\x20with\x20specific\x20employees','#ffb300','application/json,\x20text/plain,\x20*/*','modulePathName','./SliderSwatches','PayslipTemplate','inputRead','#F47373','middle','setGoogleAnalytics','Alert','horiz','status','#98A1A4','

','filetypes','\x20failed\x20to\x20advance\x20stream.','setItem','rightInside','pagination','#b9f6ca','EmployeeDistributionChartLoader','csrfRequired','_checkClearOnResize','getInitDataFailCallBack','getFilterString','LeaveType','lastFocusNode','8px\x208px\x200px\x200px','ffebcd','view','Date\x20Added','updateFields','message','datagroupTemplate','Drawer','selectingText','country','./LogViewAdapter','employee_Name','createCard','fallthrough','handled','autocapitalize','000000','renderLine','./../helpers/buildURL','e9967a','setPhotoAttendance','warn','./_getMatchData','lineSep','_resizeCanvas','./stubArray','translate(-9px,\x20-1px)','32cd32','PayGrade','clearRedo','./_baseHasIn','getStatusOptions','#9B9B9B','off','lastSelTime','workTime','dataType','showErrors','DESC','../../../api/ApproveAdminAdapter','transformRequest','hsva','fail','defineMode','zIndex','Row','#ffca28','./components/compact/Compact','clearCachedResponse','#_renderFunction_#','getHistory','DashboardAdapter','disabled','data:image/svg+xml;base64,','Education','Currency','([{}])','TabPane','getCSVData','lodash/isPlainObject','ff7f50','fixCyclicParent','Add\x20New','#00838f','pasteLinesPerSelection','addToken','return;','_strokeEnd','Marital\x20Status','composing','barHeight','showAddNew','[object\x20Boolean]','createTaskList','Next','37px','clipboardData','document','basic','pay_period','focused','80px','mark','Error\x20occurred\x20while\x20activating\x20Employee','CurrencyType','EmployeeOnlineOfflineChart','57px','Passwords\x20don\x27t\x20match',',\x200\x200\x205px\x20','__filterString__\x20','1000px','gaq','compact','react.strict_mode','leading','yyyy/mm/dd','datum','Single','input2','./_Stack','./GoogleFields','react-color','#punchInLocation','match','currency','Nationality','_datetime','ff0','isWordChar','validator','#4db6ac','focus','toTextArea','[object\x20Promise]','#payday_all','#e6ee9c','setDragImage','run','Save','Successful','getCurrentProfile','touchend','gutter-row','spread','textarea','1px','replacedWith','transposeChars','Promise','Click','control1','poll','./_nativeCreate','0\x209px\x2010px\x209px','GithubPicker','defaultProps','removeInner','hover','fixedGutter','#PayrollDataButtons','#attendnaceCanvasEmp','inputId','pay_frequency','flush','dependOn','fetch','CodeMirror-gutter-elt','@icons/material/UnfoldMoreHorizontalIcon','childNodes','SliderSwatch','180px','#7B64FF','getSelection','#dce775','lodash/merge','hasAccess','#009688','Lazy','dataGroupGetNextAutoIncrementId','NativeScript','for','category','\x20at\x20index\x20','moveStart','viewFrom','Portal','translate(-13px,\x20-4px)','isContextConsumer','isSubProfileTable','./_cloneArrayBuffer','Activate','#880e4f','Button','Granted\x20On','SketchPresetColors','First\x20Name','Country','CustomFieldAdapter','writable','pcDefault','File\x20to\x20Import',':checked','typeof','field_validation','lightBlue','mousemove','&file_name=','Decimal','body','Upper\x20Limit\x20Condition','Manager','circleSize','cut','N/A','offset','CodeMirror.Pass','./_isIterateeCall','#d81b60','#eeeeee','`\x20supplied\x20to\x20`','shadow','[object\x20File]','widget','fromTextArea','translate(-3px,\x20-9px)','image/png','getJSON','user-agent','alpha','CodeMirror-wrap','./_baseGetTag','inset\x200\x200\x200\x201px\x20#ccc','RGBwrap','Share\x20Employees','[object\x20Int8Array]','#C1E1C5','Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','6a5acd','fillForm','oldDisplayWidth','./PhotoshopFields','moduleRelativeURL','setSize','return_date','compact-picker\x20','react.async_mode','CodeMirror-gutters','HiringPipeline','inset\x200\x201px\x201px\x20rgba(0,0,0,.1),\x200\x201px\x200\x200\x20#ECECEC','','#e57373','NULL','_excludeOurProps','generateOptions','NationalityAdapter','Mobile','_toSVG','nextSibling','translate(-6px,\x20-6px)','./_initCloneByTag','logicalXDPI','#a5d6a7','line','maxGeneration','0\x204px\x204px\x200','All\x20Certifications','capitalize','axios','white','className','#ffe0b2','colorpick','setData','translations','material','Github','https://thilinah.gitbooks.io/icehrm-guide/content/employee-information-setup.html','key','#757575','removeAllListeners','2px\x20solid\x20','./_mapCacheSet','#68CCCA','#DB3E00','isAxiosError','Backspace','removeKeyMap','canvas','[object\x20Symbol]','Restricted\x20Admin','#00bfa5','Date\x20End','cleanGeneration','Date\x20Time','`\x20of\x20component\x20`','fileupload','You\x27re\x20all\x20caught\x20up!','./_cloneSymbol','./hasIn','indigo','viewportMargin','Contact\x20details','+transpose','Head\x20Office','#cccccc','Timeline','LoginOutlined','callBackData','Termination\x20Date','renderFormNew','#plainMessageModel','fa\x20fa-edit','float','rangeCount','#f9a825','append','PhoneTwoTone','cm-not-content','There\x20is\x20no\x20line\x20','findWordAt','flattenSpans','./SliderSwatch','#ccff90','fileupload-new.php?user=','Typography','isSuspense','data.php','paddingRight','Label','toRgb','velocityFrom','6px','No\x20data\x20found','Editable','handleDelete','Contact\x20Information','prepareSelection','#81d4fa','./AdapterBase','Order','registerHelper','getCustomActionUrl','#0693E3','','react.context','throw','Listening','pageX','yyyy\x20MMM\x20d\x20\x20HH:mm','Time-In','help','#ef5350','else','#ff4081','./_copySymbolsIn','2px\x202px\x200\x200','admin=','defineMIME','#D0021B','common','atom','9370db','nodeValue','Error\x20occurred\x20while\x20deleting\x20Employee','calculateChange','saveUsageFailCallBack','`,\x20but\x20its\x20value\x20is\x20`undefined`.','Request\x20aborted','bottom-right','numberOfUsers','user_levels','loading','MaterialPicker','UserRoleAdapter','getValidationRule','CurrencyTypeAdapter','Inserting\x20collapsed\x20marker\x20partially\x20overlapping\x20an\x20existing\x20one','shiftKey','job_title','setValue','encodeURI','force','confirmDelete','db7093','./isPlainObject','renderers','CirclePicker','#adminUsersChangePwd\x20#conpwd','direction','#DBDF00','&ft=','#attendnaceCanvasOut','Benifit','onDownloadProgress','documentMode','./helpers/bind','numberOfCandidates','label[for=\x27','somethingSelected','submit','loaded','#f8bbd0','','cursorDiv','./IceUpload','country_Name','handleMouseOver','Personal\x20Information','./now','_roundA','overwrite','delayedCallbacks','inline-block','auth','screenReaderLabelChanged','shared','lineNumbers','getTableFields','markText','AAsmall','upperLimit','\x20and\x20','696969','fieldset','blankLine','description','TimeUtilizationGraphAdapter','Reset','Leave\x20Starting\x20Balance','This\x20document\x20will\x20be\x20visible\x20to\x20employees\x20from\x20selected\x20department.\x20If\x20no\x20department\x20is\x20selected\x20only\x20Admin\x20users\x20can\x20see\x20this','lastFocusOffset','pageYOffset','./_Set','fa\x20fa-file-text-o','onChangeComplete','operator','oldHue','_handleTouchEnd','DeductionGroup','#f5f5f5','./_baseToString','sliders','\x0aValid\x20keys:\x20','f0e68c','EmployeeDocumentAdapter','getColorByRandomString','./IceStepForm','rtl','Means\x20of\x20Transportation','push','deduction_exemptions','sortField','bind','resetPosition','scrollHeight','type','steps-content','photoAttendance','isModifierKey','optionHandlers','closeChangePassword','#8bc34a','onAccept','.dataTables_filter\x20input','40%','react.suspense_list','Clocked\x20Out','Steps','0\x201px\x204px\x20rgba(0,0,0,0.25)','f0f','#attendancePhoto','getActionButtons','TerminatedEmployeeAdapter','#numberOfCandidates','#9c27b0','activateEmployee','addFailCallBack','map_out_snapshot','Parameters','componentWillUnmount','Taxi','map_lat','override','keySeq','.select2Multi','flattenNames','saveSuccessItemCallback','Item\x20Edited','jpeg','fatArrowAt','content','fff','info','checked','setTranslationsSubModules','add','rgba(','right','_edit__delete__status__logs_','scrollTop','#9900EF','Client','objectTypeName','./constant','vertical','modulePath','20%','#d7ccc8','Data\x20Type','editorIsHidden','gradientType','0\x201px\x200\x200\x20#EAEAEA','Employee\x20deleted.\x20You\x20can\x20find\x20archived\x20information\x20for\x20this\x20employee\x20in\x20Archived\x20Employees\x20tab','replaceAll','setSignature','./utils','getHeaders','DOMMouseScroll','tabEmployeeEducation','toFixed','#3d5afe','createFromField','alert_before_day_number','includes','ID\x20Number','./FormValidation','interface','Expenses\x20Payment\x20Method','StringStream','setUpdatedValue','lastIndex','#dcedc8','View\x20All','Number\x20or\x20Empty','proxy-authorization','#ABB8C3','./_assignValue','tableData','tableInitialized','getDataItem','DeductionAdapter','#e53935','isReady','[object\x20Map]','isStream','BlockSwatches','CodeMirror-line-like','circle-picker\x20','px;','backgroundColor','paste','setOrderBy','`\x20of\x20value\x20`','HoliDay','linear-gradient(to\x20right,\x20rgba(','_tc_id','8b008b','svg:g','dda0dd','Male','throttle','','addToLangTerms','#ffb74d','updateDataFailCallBack','../utils','sel','binding','ffffe0','../../helpers/hue','Menlo','share_departments','http://blog.icehrm.com/docs/settings/','`,\x20expected\x20`object`.','_handleTouchMove','getRemoteSourceFields','writing','px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20height:\x20','setModalType','toHsl','zeroWidthHack','boxShadow','validationRules','Attendance\x20Data','Share\x20Departments','delGroupAfter','top-left','defineProperty','','\x20Delete','undoDepth','processing',',endColorstr=','PayrollColumnTemplateAdapter','widths','#4dd0e1','','','content-length','getImages','img','decompress','./components/github/Github','./_assignMergeValue','currentId','fa\x20fa-file-image-o','./_assocIndexOf','#efebe9','duration','isFormData','display_order','certification_id','lastSelOp','downloadPayroll','','MODAL_TYPE_STEPS','bottom','RGBlabel','Disabled','abrupt','#e0e0e0','Confirm\x20Deletion','selection','multiBarChart','Tag','Invariant\x20Violation',')]}\x27\x22:;>','parentNode','#b39ddb','Employee\x20Data','dblclick','insert','goalColumn','15px\x2015px\x200','defaultView','#999999','indent','#a7ffeb','closeDataMessage','clientHeight','_handleMouseMove','pos','#d4e157','javascript','Search','./AlphaPointer','','.simplemde','Property\x20`','code','maxWait','csrf','return\x20this','./isArrayLikeObject','modJsList','isComponentVisible','isPortal','renderedView','prop','true','round','Valid\x20Until','slider','onUploadProgress','horizontal','./_hashClear','#9ccc65','#e64a19','../../../api/ReactLegacyModalAdapterBase','prependOnceListener','addCellDataUpdate','activateEmployeeFailCallback','https://icehrm.gitbook.io/icehrm/payroll-and-expenses/payroll-management','svg:text','parseValue','_data','Salary\x20Component','valid','fill-opacity','#194D33','EditOutlined','Contact\x20Number','#653294','smart','./memoize','attachLine','./Cancel','_colorpick','Copy','EthnicityAdapter','trailingSpace','max','bmp','#7986cb','#f4511e','./_cloneTypedArray','responseType','margin','#ffc400','Identification','#1a237e','brown','\x20failed','employment_status_Name','advanced_search','#388e3c','Document\x20Id','left:\x20','getFileName','./components/common/ColorWrap','sketch-picker\x20','isAsyncMode','#5d4037','addSuccess','Calculation\x20Method','#4fc3f7','34px','\x20#help_err_','lightsteelblue','#c5cae9','isRequired','../components/IceTable','./core/Axios','select2multi','getDataUrl','fa\x20fa-file-excel-o','items','coverGutterNextToScrollbar','fdf5e6','#ff5252','wrapClass','sendCustomRequest','#039be5','default_value','tabPayrollData','isReadable','heights','built','Buffer','hideError','fast','All\x20Employees','./../core/settle','responseJSON','setHeaders','fromSaved','company_url','xsrfHeaderName','button','Previous','Donut','placeholder','readability','scrollbarModel','#ffd180','nowrap','getInitDataSuccessCallBack','triangle','CodeMirror-linenumbers','LeavePeriod','removeClass','driving_license','case','8b0000','toUpperCase','','additional_permissions','char','goLineUp','Field\x20Type','format','custom-validate-function','gutterContextMenu','extraKeys','#ffab40','#5c6bc0','getUser','FieldNameAdapter','disableHoriz','move','EmployeeLanguageAdapter','#FCB900','detach','null','CopyOutlined','altKey','rgba','getValueObjectWithLabel','#00bcd4','cloneNode','currentFilterString','Predefined\x20Calculations','random','./IceSelect','position:\x20static','CompanyLeaveEntitlementChart','handleHover','#969696','inset\x201px\x200\x200\x20#000,\x20inset\x20-1px\x200\x200\x20#000,\x20inset\x200\x201px\x200\x20#000','./isBuffer','clearFileElement','setShowDelete','#448aff','#e1f5fe','start','focusOffset','#eeff41','validateStatus','generation','handleKeyDown','map_out_lng','modeProps','listeners','\x20Employees','User\x20Level','_drawCurve','TaskListWrap','Password\x20must\x20include\x20at\x20least\x20one\x20uppercase\x20letter','EmployeeAdapter','NODE_ENV','\x20:input','getTimezonesWithOffset','\x27].edit(\x27_id_\x27);return\x20false;\x22\x20type=\x22button\x22\x20style=\x22position:\x20absolute;bottom:\x205px;right:\x2035px;font-size:\x2013px;\x22\x20tooltip=\x22Edit\x22>','Pay\x20Grades','CodeMirror-measure','Native\x20or\x20Bilingual\x20Proficiency','undone','isElement','\x20Candidates','deleteEmployeeFailCallback','./_baseCreate','open','date_added','Third\x20Level\x20Approver','col','98px','validateFields','setRowFieldName','#e1bee7','setTableType','add_columns','numberOfAttendanceLastWeek','showMessage','getUserModules','remove','swatchWrap','goCharRight','_strokeUpdate','deleteParams','006400','measure','EmployeeImmigrationAdapter','axis','Visa','modJs','callBack','Lower\x20Limit\x20Condition','showDelete','closePath','','marked','findParent','./_listCacheGet','#dataMessageModel','supportedLanguage','#1e88e5','charts/employees-distribution','Expenses\x20Category','e0ffff','setModulePath','handleSwatchHover','rejected','_delete_','_download_','solid','moveEnd','LeaveStartingBalance','Tab','indentation','CodeMirror-overwrite','[object\x20Uint32Array]','./dispatchRequest','#4caf50','Employee\x20Check-Ins','numberOfCompanyStuctures','Invalid\x20name\x20for\x20custom\x20field','around','constructor','Reference','getContainerRenderWindow','tabSize','ownerDocument','email','_isEmpty','./ReactModalAdapterBase','result','CompanyStructureAdapter','getChildrenWithProps','#punchOutIp','map_out_lat','fieldNameMap','Clear','currentColor','readOnlyChanged','#00e5ff','setRemoteTable','deletePayrollGroupFailCallback','./_hashHas','Item\x20Added','#006064','cancelYesno','terminateEmployee','lineNumWidth','sqrt','saveCallback','getActionButtonHeader','adjustWidthTo','showFilters','keypress','inclusiveLeft','./enhanceError','Dropped','#9e9d24','[object\x20process]','40e0d0','pollContent','#ff8a65','tokenize','_photo_','RGBinput','./_initCloneArray','closeDialog','showPunchImages','#attendanceMap','Children','picker','tables','First\x20Contact\x20Date','react.fragment','','markerAdded','dataTransfer','baseTokenPos','showFormOnPopup','_edit__delete_','delCharAfter','attr','atomic','startPoint','#0091ea','_handleTouchStart','react','EmployeeTravelRecordAdminAdapter','clearTimeout\x20has\x20not\x20been\x20defined','changedTouches','clear','fileList','insertLeft','15px\x209px\x209px\x2015px','PDF','ForwardRef','./_nativeKeysIn','uploadInput','https:','Select','','./keysIn','sham','wordChars','hsl','setTemplates','#sortable-ul-selector-id','first_contact_date','translate(-2px,\x20-2px)','product','../defaults','svg:svg','./_baseKeys','Saturation','.module-check','./components/swatches/Swatches','#ffab00','Less\x20than','lowerLimit','errorMsg','808000','eat','renderModelFromDom','period_months',')[,|\x5cs]+(','byteOffset','typing','translate(-7px,\x20-1px)','form-control','peek','Email','16px\x200\x206px\x2016px','object','#78909c','./ChromeFields','Address','OvertimeCategory','SkillAdapter','formContainer','HEXinput','deletePayrollGroupSuccessCallback','City','event','PauseCircleOutlined','#d84315','getCustomUrl','selectionDiv','request','showCancel','#tabPageAttendanceGraph\x20svg','lastType','setUser','resetFilters','./_castFunction','config','rgb','getWSProperty','#f50057','moveV','removeEventListener','setFilterData','filterQuery','toJSON','rc-editable-input-','CodeMirror-crosshair','Differance\x20between\x20start\x20and\x20end\x20dates\x20should\x20not\x20be\x20more\x20than\x2045\x20days,\x20when\x20creating\x20chart\x20for\x20all\x20employees','numberOrEmpty','Disallowed\x20User\x20Roles','incdec','read','./_nodeUtil','isArray','controls','Cancel','parent','.cancelBtn','finishInit','#5300EB','toString','Is\x20ID\x20Field','logicalYDPI','showElement','PureComponent','iceFormReference','goLineLeft','100ms\x20box-shadow\x20ease','(?:$|\x5cs)\x5cs*','querySelector','forEach','commonAncestorContainer','field_options','applySortingData','InfoCircleOutlined','renderFormField','eol','Projects','#ff9800','isAllLoaded','getTableColumns','`,\x20expected\x20`','#fffde7','subtract','newlineAndIndent','process.chdir\x20is\x20not\x20supported','min-height','[object\x20Undefined]','pageSize','@@iterator','thirdPartyPopup','GithubSwatch','Processing','trim','\x20Users','MailTwoTone','remote-source','#fb8c00','createTableServer','offsetWidth','node','Notify\x20Expiry\x20Before\x20One\x20Day','showHighlight','defaultPrevented','New\x20State:','Circle','render','updateInput','../core/buildFullPath','max-forwards','../../../api/SubAdapterBase','changes','deleteEmployeeSuccessCallback','blur','surround','unmountForm','Payroll\x20Group\x20Deleted\x20','&method=get&url=/','Payroll\x20Group','keyCode','55%','Get\x20Details','showAll','method','.datefield','Employee\x20Profile','field','application/typescript','marital_status','Error\x20occurred\x20while\x20changing\x20','text-anchor','purpose','../../helpers/alpha','getTokenTypeAt','getCursor','CodeMirror-linenumber\x20CodeMirror-gutter-elt','3cb371','viewFailCallBack','set-cookie','func','getFile','react.lazy','#01579b','blurValue','pageXOffset','5.58.1','resetSelectionOnContextMenu','PaydayAdapter','changePasswordSuccessCallBack','origin','colorpicker','page','activeElement','Slider','Enabled','ff8c00','Supervisors\x20and\x20reports','PayrollAdapter','color','create','_gradientType','Symbol','react.profiler','','menu','elementFromPoint','#_name_#\x20#_delete_##_edit_#Title:\x20#_title_#
Type:\x20#_type_#\x20
Sample:\x20#_sampleValue_#
 #_help_#
','getSubHeader','checkPropTypes','multi','termination_date','createRef','marginBottom','editDataGroupItem','deepCopy','Salary\x20Components','transform','#e8eaf6','divider','rgba(255,\x20255,\x20255,\x200.12)','Item\x20removed.\x20This\x20change\x20will\x20be\x20effective\x20only\x20when\x20you\x20save\x20the\x20form','.filterBtn','#ef6c00','./HuePointer','itemName','./flattenNames','./IceSignature','api/index.php?token=','select2-input','DataImport','#ff9e80','triggerOnKeyDown','0\x2010px\x2010px\x200','

','oneOf','initAdminCompanyStructure','../../../api/CustomFieldAdapter','dc143c','./_arrayLikeKeys','Work\x20Email','moveH','ethnicity','shape','timezone','toName','Leave\x20Type','lastSavedEmployee','simplemde','Company','valueOf','renderForm','setScrollLeft','#FFFFFF','react.fundamental','unbindEventListeners','addGraph','+input','#90a4ae','token','buildTaskList','#ffab91','./_getSymbols','Alt','hex','#0062B1','popupDialog','getNameFromFieldName','#fff3e0','ppt','_canvas','position:\x20relative;\x20outline:\x20none','#42a5f5','.saveBtnTable','colorpicker-container','approver1','showDataGroup','rgba(0,\x200,\x200,\x200.87)','CodeMirror-sizer','firstLine','(?:^|\x5cs)','validateCellValue','_isMounted','slow','#c0ca33','__CANCEL__','rtop','heightForcer','bottom-left','./IceColorPick','Pay\x20Grade\x20Name','flexbox-fix','goWordLeft','Map','updateDataAllSuccessCallBack','getUri','distanceTo','0\x200\x202px\x20rgba(0,\x200,\x200,\x20.6)','../api-common/RequestCache','.35','domain=','[object\x20Uint16Array]','#tabPageTimeUtilizationGraph\x20div','#ff9100','#attendnaceCanvasPunchOutTime','setClientMessages','process','lastChild','https://icehrm.gitbook.io/icehrm/training-and-reviews/document-management','ModelLabel','Notify\x20Expiry','#651fff','attachment2','#00695c','gutter','viewChanged','id_number','card','_lastWidth','payroll_','countColumn','Shift','mergeClasses','rgba(0,0,0,0.4)','Are\x20you\x20sure\x20you\x20want\x20to\x20re-activate\x20this\x20employee\x20contract?','4px\x2010%\x203px','PayrollColumn','codeMirror','deleteRow','_message','#bdbdbd','ssn_num','defineOption','openLine','attachment','abc','wordCharacters','delWordBefore','./isSet','datagroup','_drawPoint','setupApiClient','navy','visitLink','0\x202px','Experience\x20Level','#tabPageAttendanceGraph','Done','getInputField','','presentation','Divorced','EmployeeDependentAdapter','cursorActivityCalled','viewHeight','generateFieldMessage','mix','#f48fb1','00f','#1273DE','GoogleFields','Text','block','OrEmpty','handleMouseUp','deepPurple','killLine','./_initCloneObject','Hide','focusNode','9400d3','./_baseAssignValue','0px','outerHeight','Spouse','7fffd4','doubleIndentSwitch','\x20cm-force-border','closePlainMessage','apiClient','0000cd','inset\x200\x200\x200\x201px\x20#fff','visibility','anchorOffset','toData','00bfff','testing','Email\x20or\x20Empty','CancelToken','contents','_div_inner\x20[fieldid=\x27','colorder','./EditableInput','undoSelection','getRange','callBackFail','Payroll\x20Columns','getOption','file','isvalidColorString','dragCursor','fffafa','instanceId','Contact\x20Email','#4a148c','#1976d2','#ffd740','map_lng','ffefd5','lodash/forOwn','above','fa\x20fa-file-o','CertificationAdapter','permissions','cutIncoming','onClick','keyword\x20a','sortable-placeholder','getImagesFailCallback','descend','receivedFocus','end','gte','charAt','tooltip','formObject','getImagesSuccessCallback','NIC','lineMeasure','#525252','Chrome','limit','put','./_listCacheClear','\x20with\x20a\x20temporary\x20password\x20to\x20login\x20to\x20IceHrm.','dataToFormFields','hue','#ffe57f','.cm-tab','savePunch','autoRefresh','#1de9b6','display_section','lineNumber','','rule','contentEditable','widgetNode','Elementary\x20Proficiency','./_baseUnary','host','cachedPaddingH','material-colors','get','Total\x20Funding\x20Proposed','coverStart','EmployeeSubDocumentAdapter','toHex8String','_construct','anchor','Col','PhotoshopButton','Hidden','text/javascript','./components/google/Google','onEnd','#ef9a9a','CustomField','getModeAt','isFunction','updateLineNumbers','tabJobTitle','attach','CustomPicker','_initLocalFormFields','modeSpec','svg:path','charCode','lte','align','wrap','dependencies','historyAdded','electricInput','deduction_allowed','PageUp','implements','GooglePointer','Work\x20Phone','Employment\x20Status','focusStyle','./components/alpha/Alpha','255','attachment3','input\x20search\x20text','_reason','val','aoColumnDefs','min','#aed581','scrollTo','#_delete_##_edit_##_renderFunction_#','\x20.tinymce','rgba(255,\x20255,\x20255,\x200.7)','which','./_mapCacheClear','rgba(0,0,0,0)','reduce','Table','Simple',',.1f','Column','highlight','Compulsory','228b22','red','formFieldsToData','protected','Province','ModelBody','hex6','changed','Company\x20Structure','validation=\x22','isBlob','parents','#00e676','Success','sortOrder','#64dd17','#37474f','editcell','Request\x20failed\x20with\x20status\x20code\x20','orange','srcElement','EmployeeProject','10px','charCodeAt','_applyModification','scrollWidth','\x20transparent','label2','ReactNative','keyMap','editable','types','#424242','#4D4D4D','hsv','UserDataImporter','./_baseClone','useEffect','(?:[-\x5c+]?\x5cd*\x5c.\x5cd+%?)|(?:[-\x5c+]?\x5cd+%?)','datetimepicker','...','#80cbc4','speaking','dispatchEvent','react.responder','isPlainObject','translate(','#e0f7fa','attendnaceCanvasIn','select2-focusser','hsv(','\x20You\x20may\x20create\x20a\x20new\x20employee\x20through\x20\x27Admin\x27->\x27Employees\x27\x20menu','#e91e63','./_getAllKeys','changeStatusFailCallBack','models','Details','defaults','#ffecb3','eachLine','#fbc02d','sendCellDataUpdates','eatWhile','map','resetDataGroup','byteLength','margin-left:\x20-','createRemoteTable','rowFieldName','cantEdit','./_getTag','hand','merge','#ff6d00','customAction','getTimeUtilization','needsContentAttribute','#FCCB00','FilterForm','.paydayCheck','Option','files','getActiveSubordinateEmployees','#0288d1','0\x206px\x2020px\x20rgba(0,0,0,.19),\x200\x208px\x2017px\x20rgba(0,0,0,.2)','touches','State','wheelDelta','current','httpsAgent','concat','variable','ModuleAdapter','8px\x20solid\x20transparent','clearData','getElement','transparent\x20transparent\x20transparent\x20#555','789','react.provider','toGMTString','Set','.select2Field','nodeIdCounter','TwitterPicker','#eceff1','preparedSelection','cm-marker','targetTouches','image','caches','./_arrayPush','defineProperties','tinymce','setAdminProfile','xRel','EmployeeSubEmergencyContactAdapter','selectionStart','currentWheelTarget','#afb42b','setTableLoading','CircleSwatch','visible','End','AAAsmall','env','[object\x20Float64Array]','Timezone','rotate(180deg)','CodeMirror-linewidget','username','vert','lowercase','hostname','hex3','chdir','stroke','substring','legacyApiWrapper','onreadystatechange','./_listCacheSet','Widowed','removeAttribute','clientWidth','Name','xsrfCookieName','gutterMarkers','./_baseProperty','#512da8','editDataGroup','SalaryComponentType','radiusY','Mobile\x20Phone','src','viewWidth','#ffd600','delayingBlurEvent','detectingSelectAll','an\x20','umask','.saveBtn','#81c784','_id_','slice','wheelDY','amd','tabCertification','payrollColumn','deleteProfileImage','fetchConfig','chrome-picker\x20','csvData','inset\x200\x200\x200\x201px\x20#000','var','Skill','19px','wrapperHeight','UserRole','formOnlyFields','iter','prototype','Add','SalaryComponentAdapter','find','radius','bc8f8f','addDataGroup','setCustomTemplates','disableVert','#PayrollForm','','this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called','triples','dispatch','triggerElectric','addNew','#a1887f','cursorScrollMargin','8b4513','arrowOffset','addFour','redo','#8c9eff','layout','VERTICAL_AXIS','alert_on_missing','#B8E986','24px','#f6f6f6','#00b0ff','.row','createTextNode','isArrayBuffer','CloudDownloadOutlined','AttendanceStatusAdapter','Object','getActionButtonsHtml','maxWidth','getOwnPropertyDescriptors','copyState','./_defineProperty','fff8dc','getTableTopButtonHtml','SketchFields','rect','PayslipTemplateAdapter','expiry','YesBtn','Form','Upload','react.portal','#ffcdd2','./_mapCacheDelete','#673ab7','marginLeft','getElementSuccessCallBack','MonitorOutlined','findPrev','terms','#F44E3B','tab','translateX(-2px)','#numberOfJobs','showLoader','headers','d8bfd8','saveUsageSuccessCallBack','Approved','keydown','SliderPicker','#FE9200','PageDown','draggingText','add8e6','bogus',',\x201)','innerHeight','scrollToElementBottom','admin=dashboard','ImmigrationStatus','Separators','1px\x20solid\x20#B1B1B1','update','User\x20Levels','moveToStep','position','leftInside','maps','First\x20Level\x20Approver','expire_notification_day','Unrecognized\x20modifier\x20name:\x20','Employee\x20contract\x20terminated.\x20You\x20can\x20find\x20terminated\x20employee\x20information\x20under\x20Terminated\x20Employees\x20menu.','Errors\x20Found','has','./_createAssigner','goPageUp','','modEmployeeDeleteProfileImageCallBack','[object\x20Object]','ee82ee','circle','191970','showActionButtons','Return\x20Date','cursorActivity','tags','priority','If\x20the\x20type\x20is\x20Reference\x20this\x20field\x20should\x20not\x20refer\x20another\x20object','tasks','Authentication\x20Email','dataPipe','application/json;charset=utf-8','skill_id','./components/hover','../../../api/TableEditAdapter','fastPoll','translate(-6px,\x20-1px)','#ff6e40','dataGroup','beforeSelectionChange','Text\x20Field','import','Writing','min-width:\x201px','overflow','ew-resize','reader','style','jpg','even','If\x20the\x20type\x20is\x20Reference\x20this\x20field\x20should\x20referring\x20another\x20object','onHover','doCustomValidation','componentDidUpdate','pathname','gutterFiller','ctrlKey','\x27]:checked','req','devicePixelRatio','util','getSubHeaderTitle','#ff5722','40px','responseText','react.memo','228px','CompanyDocumentAdapter','comment','Error\x20Occured\x20while\x20getting\x20data\x20for\x20chart','#795548','maxRedirects','&skip=1','getClientMessage','hasOwnProperty','lexical','./_createBaseEach','phrases','getTimeUtilizationSuccessCallBack','none','_reset','compositionend','stack','setFilterExternal','showMultipleSelections','hasClass','first-child','9932cc','rotateLabels','#00D084','delay','./_listCacheHas','Original\x20Text','tickFormat','start_date','getInitData','slowPoll','Personal','filterTemplate','#FAD0C3','defaultTab','wheelStartX','getContext','init','scroll','path','use','getFormOptions','_handleMouseEvents','onCancel','settings','Download\x20Report','16px\x2016px\x2012px','Attachment','oneOfType','copied','isReadOnly','onabort','debugger','./_baseAssignIn','rbottom','0\x200\x202px\x20rgba(0,0,0,.3),\x200\x204px\x208px\x20rgba(0,0,0,.3)','inset\x200\x200\x200\x201px\x20rgba(0,0,0,0.1)','getClientRects','#555555','\x20Active','Completed\x20On','./cancel/CancelToken','department','setScrollTop','relative','clientLeft','[object\x20Array]','Payroll\x20Report\x20Column','generateRandom','date_end','./_baseMatches','#00796b','CodeMirror-gutter-filler','Payslip\x20Template','modifyCSVHeader','+delete','insertAt','transformResponse','globalVars','withCredentials','bottom-center','penColor','../../../api/AdapterBase','styleClasses','dragstart','absolute','resetFields','scrollbars','','75%','Payroll\x20Column','cursorActivityHandlers','#bbdefb','0\x203px\x2012px\x20rgba(0,0,0,0.15)','-6px','diagonal','transport','Emergency\x20Contacts','gutters','Calculation\x20Columns','\x20C\x20','black','stopPropagation','#punchOutLocation','react-signature-canvas','readDOMTimeout','#BEDADC','splitSpaces','indexOf','contact_number','offsetTop','isDate','gutterSpecs','bad','./components/block/Block','textRendering','Help\x20Text','Show','All\x20Loan\x20Types','stringify','hideLoader','#84ffff','Immigration\x20Status','6b8e23','0\x200\x205px\x202px\x20rgba(0,0,0,0.25)','CompanyLoan','#numberOfCompanyStuctures','isValidElementType','()[]{}\x27\x27\x22\x22``','`\x20of\x20type\x20`','#ea80fc','setRemoteFieldExists','lastColumnValue','#c6ff00','g.node','json','extendSelection','toDataURL','activeElt','ff69b4','requestCache','./IceApiClient','documentElement','User\x20Name','simpleCheckForValidColor','getAddNewLabel','hsla','5px\x205px\x205px\x205px','Module','#numberOfEmployees','PayFrequency','required','scrollIntoView','clientBaseUrl','#c62828','position:\x20absolute;\x20bottom:\x20-1em;\x20padding:\x200;\x20width:\x201px;\x20height:\x201em;\x20outline:\x20none','shift','scroller','EmployeeProjectAdapter','./_castPath','nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111','HEXlabel','0\x2040px\x2077px\x20rgba(0,0,0,.22),\x200\x2027px\x2024px\x20rgba(0,0,0,.2)','mobile_phone','[object\x20ArrayBuffer]','getItem','insertInner','getValue','label','useState','isObject','Object.assign\x20cannot\x20be\x20called\x20with\x20null\x20or\x20undefined','inset\x200\x200\x200\x201px\x20rgba(0,0,0,.15),\x20inset\x200\x200\x204px\x20rgba(0,0,0,.25)','DeductionGroupAdapter','anchorNode','0\x200\x202px\x202px','goGroupLeft','hexNames','Other','TaskList','1px\x20solid\x20black','onKeyPress','hurry','30%','Pay\x20Grade','getAllDataSuccessCallBack','other_id','getAttendance','','last-child','\x20Upcoming','beforeChange','End\x20Time','Function','Required','CodeMirror-selected','#00897b','overtimerequest','cm-ignore-events','process.binding\x20is\x20not\x20supported','lineWidgetCleared','#yesnoModel','#00b8d4','default','&ob=','File\x20import\x20unsuccessful.\x20Result:','Note','map_snapshot','getComputedStyle','_status_','Down','_status','setAccess','Invalid\x20','SwatchesColor','double','fromData','title','#2e7d32','Qualifications','rowId','mask=\x22','px\x20rgba(0,0,0,.24)','formInitialized','./../utils','csv,txt','./_ListCache','lowerCondition','timeout\x20of\x20','application/x-javascript','18px','&iDisplayStart=','admin=modules','getCachedResponse','EmployeeSkillAdapter','All\x20Qualifications','Color\x20picker','lines','.50','spans_','https://icehrm.gitbook.io/icehrm/insights/analytics','_download','firstChild','Select2','./core/mergeConfig','modal','ConcurrentMode','max_salary','./_MapCache','user_roles','exit','moveTo','#64ffda','forceUpdate','Certifications','removeChild','updateProfileImage','toHsv','large','#fdd835','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','barLeft','Date\x20of\x20Birth','../../helpers/saturation','cookie','Paid','closeBrackets','./_setCacheAdd','getOrderBy','vars','Deduction','#c51162','chunkSize','Password\x20must\x20include\x20at\x20least\x20one\x20lowercase\x20letter','EmployeeDataImporter','./_basePropertyDeep','renderEmployee','createElement','minHeight','Form\x20.label','deductions','_field_','./InterceptorManager','','20px','15px','adapter','HEXwrap','dashed','createTextRange','processFormFieldsWithObject','getFailCallBack','getField','isStrictMode','currentDataGroupField','getArrowOffset','hiddenFields','splice','Passport','./_baseMatchesProperty','readMetaData','2px\x200\x200\x202px','indentUnit','wrapper','textOrig','`,\x20expected\x20instance\x20of\x20`','Filter','pipe','setEmailTemplates','cursorHeight','getLine','params','setTranslations','addModeClass','validateAll','#455a64','#b71c1c','ReviewTemplate','call','initFieldMasterDataResponse','Job\x20Title','800000','goPageDown','showCursorWhenSelecting','firstLineNumber','./toPlainObject','Object\x20Type','getLogsSuccessCallBack','componentType','./components/slider/Slider','\x20Entries\x20Last\x20Week','Data\x20Import\x20Definition','contextMenuPending','toHex','includeFallbackColors','isContextProvider','nodeName','variable-2','Field\x20Options','pre','clipPos','80%','stop','[object\x20DataView]','collapsed','is\x20required','`\x20has\x20invalid\x20PropType\x20notation\x20inside\x20objectOf.','materialColors','Column\x20Order','unshift','./_createBaseFor','min_salary','SignatureCanvas','Ethnicity','Owner','getClientDataUrl','changePasswordConfirm','#_delete_##_edit_##_type_#\x20#_label_#\x20
\x20#_text_#','1px\x20solid\x20#F0F0F0','hasFocus','pre-format-function','Group','_img_','#26c6da','ImmigrationStatusAdapter','daa520','ReportGenAdapter','tempOptions','initMasterDataReader','signature_pad','fromCharCode','ownsGroup','&cl=','Contact','barWidth','cm-$&','overwriteToggle','./cancel/isCancel','#tabPageAttendanceGraph\x20div','Private\x20Email','__wrapped__','\x20request\x20status','getElementById','#ffccbc','#cfd8dc','$$typeof','data','pow','No\x20Lower\x20Limit','Rail','PayrollEmployeeAdapter','onerror','File\x20not\x20found','wheelDX','Travel\x20Date','Error:\x20','\x20#field_','File\x20Upload','#7BDCB5','CodeMirror-gutter-background\x20','Description','Parent\x20Structure','baseTokens','isValidElement','scrollbarStyle','setPermissions','./_WeakMap','gutterTotalWidth','touchcancel','Tabs','./GithubSwatch','history','#6200ea','Password\x20too\x20long','scaleY(1.8)','CodeMirror-cursors','./CircleSwatch','lastWrapHeight','hasHeights','application/ld+json','./PhotoshopPointer','lodash/isString','display:\x20inline-block;\x20width:\x201px;\x20margin-right:\x20-1px','0\x2025px\x2055px\x20rgba(0,0,0,.21),\x200\x2016px\x2028px\x20rgba(0,0,0,.22)','opaque','_ok','createRange','0\x2010px\x2010px\x2010px','../../helpers/color','Yes','Loan\x20Period\x20(Months)','browser','./_arrayEach','aData','CodeMirror-gutter-wrapper','#fafafa','initAdminQualifications','ECONNABORTED','parse','@@toStringTag','#bcaaa4','void','startState','propTypes','getImageUrlFromName','infer','cm-text','timeoutErrorMessage','componentDidMount','808080','detachLine','in_ip','isSortable','nextTick','cellDataUpdates','customFields','-7px','Cmd-','inputStyle','getSubFormData','assign','progress','#ffee58','circleSpacing','autoprefix','trackEvent','_top','setAttributeNS','All\x20Departments','transparent\x20transparent\x20#fff\x20transparent','#ffebee','etag','function','0\x20-10px','skipTo','text/typescript','Signature','primary','.select2-choices','reportedViewTo','Payslip\x20Fields','pageY','fieldMasterData','`,\x20but\x20its\x20value\x20is\x20`null`.','Not\x20Clocked\x20In','./components/circle/Circle','Qualification','png','start_time','attachment1','createUser','configureMouse','drawOnlineOfflineEmployeeChart','lineNumChars','If\x20the\x20type\x20is\x20Reference\x20then\x20\x27Depends\x20On\x20Field\x27\x20should\x20be\x20empty','rgba(255,\x20255,\x20255,\x200.5)','cursorCoords','touchmove','Calculation\x20Exemptions','isView','Asset\x20Type','setState','32px','validateOnChange','setDirection','linear-gradient(-180deg,\x20#FFFFFF\x200%,\x20#E6E6E6\x20100%)','(^|;\x5cs*)(','Married','ffdead','scrollToElement','#004d40','details','_trackEvent','#9575cd','lastColumnPos','ChromePicker','./toNumber','placeholder=\x22','Indirect\x20Supervisors','callee','Job\x20Titles','rgba(0,\x200,\x200,\x200.38)','activeColor','#2CCCE4','payrollId','createForm','size','paddingBottom','tabEmployeeCertification','coverGutter','#B3B3B3','blue','cursors','98fb98','#0097a7','scrollToTop','apiUrl','styles','nationality','module','Columns\x20to\x20Subtract','lastOp','AssetType','#c5e1a5','256px','c0c0c0','attendnaceMapCanvasIn','0px\x200px\x200px\x200px','groupSpacing','Init','Common','./_matchesStrictComparable','#BD10E0','','twoColumnLayout','','/educations','px;\x20width:\x20','patch','position:\x20absolute;\x20height:\x2050px;\x20width:\x201px;','fetchMasterData','admin=employees','then','2f4f4f','replaceRange','Leave\x20Rule','statusChangeId','specialChars','Bearer\x20','getTabViewEmployeeFilterButtonJsx','sort-function','light-blue','catch','employee','antd','movementX','inset\x200\x200\x200\x201px\x20#ddd','formReference','#8d6e63','getFormFields','validate','rectangle','','columnFieldName','lineStart','travel_from','cyan','StrictMode','in_time','aria-label'];(function(_0x6db774,_0xc7a59){var _0x5376f1=function(_0x1747b7){while(--_0x1747b7){_0x6db774['push'](_0x6db774['shift']());}};_0x5376f1(++_0xc7a59);}(_0xc7a5,0x8f));var _0x5376=function(_0x6db774,_0xc7a59){_0x6db774=_0x6db774-0x0;var _0x5376f1=_0xc7a5[_0x6db774];return _0x5376f1;};var _0x548f48=_0x5376;!function e(_0x1747b7,_0x105609,_0x14b28c){var _0x2a0052=_0x5376;function _0xb6601b(_0x382c6c,_0x48908f){var _0x5ead84=_0x5376;if(!_0x105609[_0x382c6c]){if(!_0x1747b7[_0x382c6c]){var _0x5da09f=_0x5ead84('0x106c')==typeof require&&require;if(!_0x48908f&&_0x5da09f)return _0x5da09f(_0x382c6c,!0x0);if(_0x48ceae)return _0x48ceae(_0x382c6c,!0x0);var _0x5ddd45=new Error('Cannot\x20find\x20module\x20\x27'+_0x382c6c+'\x27');throw _0x5ddd45[_0x5ead84('0x9e3')]=_0x5ead84('0x411'),_0x5ddd45;}var _0x4cab2c=_0x105609[_0x382c6c]={'exports':{}};_0x1747b7[_0x382c6c][0x0][_0x5ead84('0xfd2')](_0x4cab2c[_0x5ead84('0x64')],function(_0x292656){return _0xb6601b(_0x1747b7[_0x382c6c][0x1][_0x292656]||_0x292656);},_0x4cab2c,_0x4cab2c[_0x5ead84('0x64')],e,_0x1747b7,_0x105609,_0x14b28c);}return _0x105609[_0x382c6c][_0x5ead84('0x64')];}for(var _0x48ceae=_0x2a0052('0x106c')==typeof require&&require,_0x101ce0=0x0;_0x101ce0<_0x14b28c['length'];_0x101ce0++)_0xb6601b(_0x14b28c[_0x101ce0]);return _0xb6601b;}({0x1:[function(_0x211aa3,_0x33ed37,_0x44f2be){var _0x2cb313=_0x5376,_0x355a1e,_0xef234d,_0x528d0d=_0x33ed37['exports']={};function _0x1a4d5d(){var _0x48f87a=_0x5376;throw new Error(_0x48f87a('0x151'));}function _0x24efb0(){var _0x245424=_0x5376;throw new Error(_0x245424('0xb13'));}function _0x59b7ff(_0x4359c2){var _0x120576=_0x5376;if(_0x355a1e===setTimeout)return setTimeout(_0x4359c2,0x0);if((_0x355a1e===_0x1a4d5d||!_0x355a1e)&&setTimeout)return _0x355a1e=setTimeout,setTimeout(_0x4359c2,0x0);try{return _0x355a1e(_0x4359c2,0x0);}catch(_0x3d88ac){try{return _0x355a1e[_0x120576('0xfd2')](null,_0x4359c2,0x0);}catch(_0x5b2842){return _0x355a1e['call'](this,_0x4359c2,0x0);}}}!function(){var _0x9fda01=_0x5376;try{_0x355a1e=_0x9fda01('0x106c')==typeof setTimeout?setTimeout:_0x1a4d5d;}catch(_0x503e05){_0x355a1e=_0x1a4d5d;}try{_0xef234d=_0x9fda01('0x106c')==typeof clearTimeout?clearTimeout:_0x24efb0;}catch(_0x21c7ce){_0xef234d=_0x24efb0;}}();var _0x533c8e,_0x407994=[],_0x231028=!0x1,_0x13bbc4=-0x1;function _0x3bf245(){var _0x390d29=_0x5376;_0x231028&&_0x533c8e&&(_0x231028=!0x1,_0x533c8e[_0x390d29('0x13')]?_0x407994=_0x533c8e[_0x390d29('0xda9')](_0x407994):_0x13bbc4=-0x1,_0x407994[_0x390d29('0x13')]&&_0x523e8b());}function _0x523e8b(){var _0x4f54ab=_0x5376;if(!_0x231028){var _0x451f41=_0x59b7ff(_0x3bf245);_0x231028=!0x0;for(var _0x46ed44=_0x407994[_0x4f54ab('0x13')];_0x46ed44;){for(_0x533c8e=_0x407994,_0x407994=[];++_0x13bbc4<_0x46ed44;)_0x533c8e&&_0x533c8e[_0x13bbc4]['run']();_0x13bbc4=-0x1,_0x46ed44=_0x407994[_0x4f54ab('0x13')];}_0x533c8e=null,_0x231028=!0x1,function(_0x55350f){var _0x3a569e=_0x4f54ab;if(_0xef234d===clearTimeout)return clearTimeout(_0x55350f);if((_0xef234d===_0x24efb0||!_0xef234d)&&clearTimeout)return _0xef234d=clearTimeout,clearTimeout(_0x55350f);try{_0xef234d(_0x55350f);}catch(_0x1bc077){try{return _0xef234d[_0x3a569e('0xfd2')](null,_0x55350f);}catch(_0x546aea){return _0xef234d[_0x3a569e('0xfd2')](this,_0x55350f);}}}(_0x451f41);}}function _0x13e0dc(_0x5f507c,_0x5831fd){var _0x27161e=_0x5376;this[_0x27161e('0xd')]=_0x5f507c,this['array']=_0x5831fd;}function _0x3d1d95(){}_0x528d0d[_0x2cb313('0x1059')]=function(_0x54b8ae){var _0x5c5145=_0x2cb313,_0x599cc2=new Array(arguments['length']-0x1);if(arguments['length']>0x1)for(var _0x1c4929=0x1;_0x1c49290xa?''['concat'](_0x4e9bbc[_0xdfc381('0xdd7')](0x0,0xa),'..'):_0x4e9bbc:void 0x0;}},{'key':_0x2e3903('0xb6'),'value':function(){var _0xdf7a0a=_0x2e3903,_0x190131=new _0x31a6c8['default'](''[_0xdf7a0a('0xda9')](this[_0xdf7a0a('0x3ed')](),_0xdf7a0a('0x2db')),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':_0xdf7a0a('0x5bf')});if(_0x190131['checkValues']()){var _0x1d1fb5=_0x190131['getFormParameters'](),_0x5603c9=this['doCustomValidation'](_0x1d1fb5);if(null==_0x5603c9){var _0x555614=$('#'['concat'](this['getTableName'](),_0xdf7a0a('0x591')))['val']();null!=_0x555614&&void 0x0!==_0x555614&&''!==_0x555614&&(_0x1d1fb5['id']=_0x555614);var _0x137050=JSON[_0xdf7a0a('0xf0b')](_0x1d1fb5),_0x2dff3f=[];_0x2dff3f['callBackData']=[],_0x2dff3f[_0xdf7a0a('0x691')]=_0xdf7a0a('0x452'),_0x2dff3f['callBackFail']=_0xdf7a0a('0xab'),this[_0xdf7a0a('0xd99')](_0xdf7a0a('0xcbf'),_0xdf7a0a('0x485'),_0x137050,_0x2dff3f);}else{var _0x323ae9=$('#'['concat'](this[_0xdf7a0a('0x3ed')](),_0xdf7a0a('0xfab')));_0x323ae9[_0xdf7a0a('0x276')](_0x5603c9),_0x323ae9[_0xdf7a0a('0x312')]();}}}},{'key':_0x2e3903('0x452'),'value':function(_0x1d63c7){var _0x596b28=_0x2e3903;this[_0x596b28('0xd12')](_0x1d63c7);}},{'key':_0x2e3903('0xab'),'value':function(_0x2e24ba){var _0x17af1d=_0x2e3903;this[_0x17af1d('0xaa4')](_0x17af1d('0x46'),_0x2e24ba);}},{'key':_0x2e3903('0x816'),'value':function(){var _0x1a6ce5=_0x2e3903;return _0x1a6ce5('0x2c2')!==this[_0x1a6ce5('0x34b')][_0x1a6ce5('0x6e8')]&&'Restricted\x20Admin'!==this[_0x1a6ce5('0x34b')][_0x1a6ce5('0x6e8')];}},{'key':_0x2e3903('0xafe'),'value':function(_0x34ecb4){var _0x458f4b=_0x2e3903,_0x5e6fa7=JSON[_0x458f4b('0xf0b')]({'id':_0x34ecb4}),_0x5c1c18=[];_0x5c1c18['callBackData']=[],_0x5c1c18[_0x458f4b('0x691')]=_0x458f4b('0xcb2'),_0x5c1c18[_0x458f4b('0xc93')]=_0x458f4b('0xcaa'),this[_0x458f4b('0xd99')](_0x458f4b('0x9b1'),_0x458f4b('0x485'),_0x5e6fa7,_0x5c1c18);}},{'key':_0x2e3903('0xcb2'),'value':function(_0xa57782){var _0x2127f2=_0x2e3903;if($(_0x2127f2('0x100'))[_0x2127f2('0xaa6')](),$('#attendnaceCanvasInWrapper')['html'](_0x2127f2('0xf50')),$(_0x2127f2('0x8e1'))[_0x2127f2('0xaa6')](),$(_0x2127f2('0x268'))[_0x2127f2('0x276')](''),$(_0x2127f2('0x4e8'))[_0x2127f2('0x276')](''),$(_0x2127f2('0xc38'))[_0x2127f2('0x276')](''),$(_0x2127f2('0x7d4'))[_0x2127f2('0x276')](''),$(_0x2127f2('0xefb'))[_0x2127f2('0x276')](''),$(_0x2127f2('0x1c7'))[_0x2127f2('0x276')](''),$(_0x2127f2('0xadc'))['html'](''),$(_0x2127f2('0x100'))[_0x2127f2('0xaa6')](),$(_0x2127f2('0x164'))[_0x2127f2('0x276')](_0x2127f2('0x9c0')),$(_0x2127f2('0x1139'))[_0x2127f2('0xaa6')](),$('#attendnaceMapCanvasOutWrapper')[_0x2127f2('0x276')](_0x2127f2('0x720')),$(_0x2127f2('0x6f1'))[_0x2127f2('0xf89')]('show'),$(_0x2127f2('0x7fa'))[_0x2127f2('0x276')](_0xa57782[_0x2127f2('0x779')]),_0xa57782[_0x2127f2('0x10e0')]&&$(_0x2127f2('0x4e8'))['html'](Date[_0x2127f2('0x104a')](_0xa57782['in_time'])[_0x2127f2('0xb6d')]('yyyy\x20MMM\x20d\x20\x20HH:mm')),_0xa57782['image_in']){$(_0x2127f2('0x930'))[_0x2127f2('0x312')]();var _0x1bceca=document[_0x2127f2('0x1012')](_0x2127f2('0xd7f'));try{var _0x57ebf4=_0x1bceca['getContext']('2d'),_0x17b1fd=new Image();_0x17b1fd[_0x2127f2('0x74c')]=function(){_0x57ebf4['drawImage'](_0x17b1fd,0x0,0x0);},_0x17b1fd[_0x2127f2('0xde7')]=_0xa57782[_0x2127f2('0x144')];}catch(_0x1649c9){console[_0x2127f2('0x455')](_0x1649c9);}}if(_0xa57782[_0x2127f2('0x247')]&&$(_0x2127f2('0xc38'))[_0x2127f2('0x276')](Date[_0x2127f2('0x104a')](_0xa57782[_0x2127f2('0x247')])['toString'](_0x2127f2('0x8b6'))),_0xa57782['image_out']){$(_0x2127f2('0x930'))[_0x2127f2('0x312')]();var _0x4c324d=document[_0x2127f2('0x1012')](_0x2127f2('0x125'));try{var _0x1382ab=_0x4c324d[_0x2127f2('0xeb8')]('2d'),_0x35a2c3=new Image();_0x35a2c3[_0x2127f2('0x74c')]=function(){var _0x20d12c=_0x2127f2;_0x1382ab[_0x20d12c('0x5b8')](_0x35a2c3,0x0,0x0);},_0x35a2c3[_0x2127f2('0xde7')]=_0xa57782[_0x2127f2('0x48')];}catch(_0x16f06b){console['log'](_0x16f06b);}}if(_0xa57782[_0x2127f2('0x93b')]&&($('#attendanceMap')[_0x2127f2('0x312')](),$(_0x2127f2('0x7d4'))[_0x2127f2('0x276')](''['concat'](_0xa57782['map_lat'],',')[_0x2127f2('0xda9')](_0xa57782[_0x2127f2('0xc9f')]))),_0xa57782['map_out_lat']&&($(_0x2127f2('0xaff'))[_0x2127f2('0x312')](),$(_0x2127f2('0xefb'))[_0x2127f2('0x276')](''[_0x2127f2('0xda9')](_0xa57782[_0x2127f2('0xadd')],',')[_0x2127f2('0xda9')](_0xa57782[_0x2127f2('0xa84')]))),_0xa57782['in_ip']&&$(_0x2127f2('0x1c7'))[_0x2127f2('0x276')](_0xa57782[_0x2127f2('0x1057')]),_0xa57782[_0x2127f2('0x115d')]&&$(_0x2127f2('0xadc'))['html'](_0xa57782[_0x2127f2('0x115d')]),_0xa57782['map_snapshot']){$(_0x2127f2('0xaff'))[_0x2127f2('0x312')]();var _0x174f32=document[_0x2127f2('0x1012')](_0x2127f2('0x10b6'));try{var _0x3ed4fe=_0x174f32[_0x2127f2('0xeb8')]('2d'),_0x439c4a=new Image();_0x439c4a[_0x2127f2('0x74c')]=function(){var _0x2f7477=_0x2127f2;_0x3ed4fe[_0x2f7477('0x5b8')](_0x439c4a,0x0,0x0);},_0x439c4a['src']=_0xa57782[_0x2127f2('0xf63')];}catch(_0x243a63){console[_0x2127f2('0x455')](_0x243a63);}}if(_0xa57782[_0x2127f2('0x937')]){$(_0x2127f2('0xaff'))[_0x2127f2('0x312')]();var _0x109f55=document['getElementById'](_0x2127f2('0x10f2'));try{var _0x344f09=_0x109f55[_0x2127f2('0xeb8')]('2d'),_0x4b353a=new Image();_0x4b353a[_0x2127f2('0x74c')]=function(){var _0x102114=_0x2127f2;_0x344f09[_0x102114('0x5b8')](_0x4b353a,0x0,0x0);},_0x4b353a[_0x2127f2('0xde7')]=_0xa57782[_0x2127f2('0x937')];}catch(_0x2f2cc1){console[_0x2127f2('0x455')](_0x2f2cc1);}}}},{'key':'getImagesFailCallback','value':function(_0x1580ce){var _0x3cd836=_0x2e3903;this['showMessage'](_0x3cd836('0x1bb'),_0x1580ce);}},{'key':_0x2e3903('0xe26'),'value':function(_0xa5f837,_0x410a47){var _0x4d7e67=_0x2e3903,_0x5347fa;return _0x5347fa=(_0x5347fa=0x1===this[_0x4d7e67('0x923')]?_0x4d7e67('0x110f'):_0x4d7e67('0xb0a'))['replace'](_0x4d7e67('0xafa'),''),_0x5347fa=this[_0x4d7e67('0xab3')]?_0x5347fa['replace'](_0x4d7e67('0xac2'),''):_0x5347fa[_0x4d7e67('0xd06')](_0x4d7e67('0xac2'),''),_0x5347fa=(_0x5347fa=(_0x5347fa=this[_0x4d7e67('0x1153')]?_0x5347fa[_0x4d7e67('0xd06')]('_edit_',_0x4d7e67('0xbd4')):_0x5347fa[_0x4d7e67('0xd06')](_0x4d7e67('0x6d7'),''))['replace'](/_id_/g,_0xa5f837))[_0x4d7e67('0xd06')](/_BASE_/g,this['baseUrl']);}},{'key':_0x2e3903('0x1aa'),'value':function(){return'https://icehrm.gitbook.io/icehrm/time-and-attendance/attendance-time-management';}}]),_0x7461f7;}(_0x3bef5a['default']),_0x3562a1=function(_0x1c5b40){var _0x49b822=_0x5376;_0x28aace(_0x579832,_0x1c5b40);var _0x26b2ad=_0x111da0(_0x579832);function _0x579832(){var _0x3c3042=_0x5376;return _0x1330d2(this,_0x579832),_0x26b2ad[_0x3c3042('0x2be')](this,arguments);}return _0x18b3f0(_0x579832,[{'key':_0x49b822('0x44a'),'value':function(){var _0x4242ec=_0x49b822;return['id','employee',_0x4242ec('0x75e')];}},{'key':_0x49b822('0x95e'),'value':function(){var _0x37a5b7=_0x49b822;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x37a5b7('0x10f9')},{'sTitle':_0x37a5b7('0xdf')}];}},{'key':_0x49b822('0x10d7'),'value':function(){return[];}},{'key':'getFilters','value':function(){var _0x163692=_0x49b822;return[[_0x163692('0x10d1'),{'label':_0x163692('0x10f9'),'type':_0x163692('0x15'),'allow-null':!0x1,'remote-source':['Employee','id',_0x163692('0x561')]}]];}},{'key':_0x49b822('0xe26'),'value':function(_0x5a3c78,_0x4f3674){var _0x254015=_0x49b822,_0xf08c1=_0x254015('0x10da');return _0xf08c1=_0xf08c1[_0x254015('0xd06')](/_BASE_/g,this[_0x254015('0x598')]),_0x254015('0x1078')==_0x4f3674[0x2]?_0xf08c1=_0xf08c1[_0x254015('0xd06')](/_COLOR_/g,'gray'):_0x254015('0x92c')==_0x4f3674[0x2]?_0xf08c1=_0xf08c1['replace'](/_COLOR_/g,_0x254015('0x50f')):_0x254015('0x45d')==_0x4f3674[0x2]&&(_0xf08c1=_0xf08c1['replace'](/_COLOR_/g,_0x254015('0x62c'))),_0xf08c1;}},{'key':_0x49b822('0x816'),'value':function(){var _0x3733a9=_0x49b822;return _0x3733a9('0x2c2')!==this[_0x3733a9('0x34b')][_0x3733a9('0x6e8')]&&_0x3733a9('0x87b')!==this[_0x3733a9('0x34b')][_0x3733a9('0x6e8')];}},{'key':'getHelpLink','value':function(){return'https://icehrm.gitbook.io/icehrm/time-and-attendance/attendance-time-management';}}]),_0x579832;}(_0x3bef5a['default']);_0x1d0a57[_0x3a4c0e('0x64')]={'AttendanceAdapter':_0x411959,'AttendanceStatusAdapter':_0x3562a1};},{'../../../api/AdapterBase':0x34,'../../../api/FormValidation':0x38}],0x4:[function(_0x9a772e,_0x52f45c,_0x194453){var _0x12cef6=_0x5376;'use strict';var _0x5e000a=_0x9a772e(_0x12cef6('0x19f'));window[_0x12cef6('0x6f3')]=_0x5e000a[_0x12cef6('0x6f3')],window[_0x12cef6('0x904')]=_0x5e000a[_0x12cef6('0x904')];},{'./lib':0x5}],0x5:[function(_0x393647,_0x3ae541,_0x2b552a){var _0x10cdcd=_0x5376;'use strict';var _0x30e0f8,_0x42100f=(_0x30e0f8=_0x393647(_0x10cdcd('0x5c4')))&&_0x30e0f8[_0x10cdcd('0xce5')]?_0x30e0f8:{'default':_0x30e0f8};function _0x4471db(_0xb9c87d){var _0x388d94=_0x10cdcd;return(_0x4471db=_0x388d94('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x388d94('0x57b')]?function(_0x3550c5){return typeof _0x3550c5;}:function(_0x14d0c4){var _0x1d5c7b=_0x388d94;return _0x14d0c4&&_0x1d5c7b('0x106c')==typeof Symbol&&_0x14d0c4[_0x1d5c7b('0xad1')]===Symbol&&_0x14d0c4!==Symbol['prototype']?_0x1d5c7b('0x43c'):typeof _0x14d0c4;})(_0xb9c87d);}function _0x3e0b6e(_0xb42f38,_0x21dcc6){var _0x32ea98=_0x10cdcd;if(!(_0xb42f38 instanceof _0x21dcc6))throw new TypeError(_0x32ea98('0xf98'));}function _0x44d47b(_0x53a777,_0x27433d){var _0x5aaefa=_0x10cdcd;for(var _0x48d558=0x0;_0x48d558<_0x27433d['length'];_0x48d558++){var _0x5bb610=_0x27433d[_0x48d558];_0x5bb610['enumerable']=_0x5bb610[_0x5aaefa('0x3bf')]||!0x1,_0x5bb610[_0x5aaefa('0x749')]=!0x0,'value'in _0x5bb610&&(_0x5bb610[_0x5aaefa('0x820')]=!0x0),Object[_0x5aaefa('0x9a5')](_0x53a777,_0x5bb610[_0x5aaefa('0x86f')],_0x5bb610);}}function _0x6fda9(_0x502e50,_0x23deab,_0x295fdf){var _0x3bb32e=_0x10cdcd;return _0x23deab&&_0x44d47b(_0x502e50[_0x3bb32e('0xe02')],_0x23deab),_0x295fdf&&_0x44d47b(_0x502e50,_0x295fdf),_0x502e50;}function _0x23eaa5(_0xb4623f){return function(){var _0x3121b1=_0x5376,_0x215d7c,_0x4ea422=_0x498854(_0xb4623f);if(_0x5ae8c3()){var _0x1136e4=_0x498854(this)[_0x3121b1('0xad1')];_0x215d7c=Reflect[_0x3121b1('0x353')](_0x4ea422,arguments,_0x1136e4);}else _0x215d7c=_0x4ea422[_0x3121b1('0x2be')](this,arguments);return _0x3e550e(this,_0x215d7c);};}function _0x3e550e(_0x13424f,_0x26d777){var _0x1e78d9=_0x10cdcd;return!_0x26d777||_0x1e78d9('0xb3f')!==_0x4471db(_0x26d777)&&'function'!=typeof _0x26d777?function(_0x38b895){var _0x472519=_0x1e78d9;if(void 0x0===_0x38b895)throw new ReferenceError(_0x472519('0xe0d'));return _0x38b895;}(_0x13424f):_0x26d777;}function _0x5ae8c3(){var _0x1213c3=_0x10cdcd;if(_0x1213c3('0x449')==typeof Reflect||!Reflect[_0x1213c3('0x353')])return!0x1;if(Reflect[_0x1213c3('0x353')][_0x1213c3('0xb21')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date['prototype'][_0x1213c3('0xb6d')][_0x1213c3('0xfd2')](Reflect[_0x1213c3('0x353')](Date,[],function(){})),!0x0;}catch(_0x207a3c){return!0x1;}}function _0x498854(_0x32ed75){var _0x1b6130=_0x10cdcd;return(_0x498854=Object[_0x1b6130('0x3df')]?Object[_0x1b6130('0x2d9')]:function(_0x248130){var _0x2bcf27=_0x1b6130;return _0x248130[_0x2bcf27('0x112c')]||Object[_0x2bcf27('0x2d9')](_0x248130);})(_0x32ed75);}function _0x11193d(_0xad204b,_0x4e40ad){var _0x1933a2=_0x10cdcd;if(_0x1933a2('0x106c')!=typeof _0x4e40ad&&null!==_0x4e40ad)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0xad204b['prototype']=Object[_0x1933a2('0xbd0')](_0x4e40ad&&_0x4e40ad['prototype'],{'constructor':{'value':_0xad204b,'writable':!0x0,'configurable':!0x0}}),_0x4e40ad&&_0x2cf99d(_0xad204b,_0x4e40ad);}function _0x2cf99d(_0x2d7bf3,_0x4dff28){var _0x593d9e=_0x10cdcd;return(_0x2cf99d=Object[_0x593d9e('0x3df')]||function(_0x238da9,_0x52ef20){var _0x2b8cc2=_0x593d9e;return _0x238da9[_0x2b8cc2('0x112c')]=_0x52ef20,_0x238da9;})(_0x2d7bf3,_0x4dff28);}var _0x4875fa=function(_0x5f0e80){var _0x26f2b9=_0x10cdcd;_0x11193d(_0x5d214d,_0x5f0e80);var _0x231423=_0x23eaa5(_0x5d214d);function _0x5d214d(){var _0x48cc84=_0x5376;return _0x3e0b6e(this,_0x5d214d),_0x231423[_0x48cc84('0x2be')](this,arguments);}return _0x6fda9(_0x5d214d,[{'key':_0x26f2b9('0x10d7'),'value':function(){return[];}},{'key':_0x26f2b9('0x51c'),'value':function(){var _0x205f18=_0x26f2b9;return[[_0x205f18('0x10d1'),{'label':_0x205f18('0x10f9'),'type':'select2','allow-null':!0x0,'null-label':_0x205f18('0xa3f'),'remote-source':[_0x205f18('0x10f9'),'id',_0x205f18('0x561')]}],[_0x205f18('0xa7e'),{'label':'Start\x20Date','type':_0x205f18('0x2a5'),'validation':''}],['end',{'label':_0x205f18('0x545'),'type':_0x205f18('0x2a5'),'validation':''}]];}},{'key':_0x26f2b9('0xd12'),'value':function(){var _0x262e48=_0x26f2b9;this[_0x262e48('0x395')](),this[_0x262e48('0xd9a')]();}},{'key':_0x26f2b9('0x2d4'),'value':function(_0x2f997b){var _0x15d786=_0x26f2b9,_0x51d010=$('#'['concat'](this['table'],_0x15d786('0x476')));if(_0x51d010[_0x15d786('0x276')](''),_0x51d010['hide'](),Date[_0x15d786('0x104a')](_0x2f997b[_0x15d786('0xa7e')])[_0x15d786('0x4a2')]()>Date[_0x15d786('0x104a')](_0x2f997b[_0x15d786('0xcad')])['getTime']())return _0x51d010['html']('End\x20date\x20should\x20be\x20a\x20later\x20date\x20than\x20start\x20date'),_0x51d010['show'](),!0x1;var _0x358192=(Date[_0x15d786('0x104a')](_0x2f997b[_0x15d786('0xcad')])[_0x15d786('0x4a2')]()-Date['parse'](_0x2f997b[_0x15d786('0xa7e')])[_0x15d786('0x4a2')]())/0x5265c00;return _0x358192>0x2d&&(void 0x0===_0x2f997b[_0x15d786('0x10d1')]||null==_0x2f997b[_0x15d786('0x10d1')]||_0x15d786('0x855')===_0x2f997b[_0x15d786('0x10d1')])?(_0x51d010[_0x15d786('0x276')]('Differance\x20between\x20start\x20and\x20end\x20dates\x20should\x20not\x20be\x20more\x20than\x2045\x20days,\x20when\x20creating\x20chart\x20for\x20all\x20employees'),_0x51d010[_0x15d786('0x312')](),!0x1):!(_0x358192>0x5a)||(_0x51d010[_0x15d786('0x276')]('Differance\x20between\x20start\x20and\x20end\x20dates\x20should\x20not\x20be\x20more\x20than\x2090\x20days'),_0x51d010[_0x15d786('0x312')](),!0x1);}},{'key':'getTimeUtilization','value':function(_0x57843f,_0x44643b){var _0x26ec9c=_0x26f2b9;_0x57843f={},null!=this[_0x26ec9c('0x562')]&&void 0x0!==this[_0x26ec9c('0x562')]&&('NULL'!==this[_0x26ec9c('0x562')][_0x26ec9c('0x10d1')]&&(_0x57843f['employee']=this[_0x26ec9c('0x562')]['employee']),_0x57843f[_0x26ec9c('0xa7e')]=this[_0x26ec9c('0x562')][_0x26ec9c('0xa7e')],_0x57843f[_0x26ec9c('0xcad')]=this[_0x26ec9c('0x562')][_0x26ec9c('0xcad')]);var _0x47fe17=JSON[_0x26ec9c('0xf0b')](_0x57843f);(_0x44643b=null==_0x44643b?[]:_0x44643b)[_0x26ec9c('0x88d')]=[],_0x44643b[_0x26ec9c('0x691')]=_0x26ec9c('0x2b0'),_0x44643b[_0x26ec9c('0xc93')]=_0x26ec9c('0x5c6'),this['customAction'](_0x26ec9c('0xf4f'),_0x26ec9c('0x142'),_0x47fe17,_0x44643b);}},{'key':'getAttendanceFailCallBack','value':function(_0x3373de){var _0x5a44fd=_0x26f2b9;this[_0x5a44fd('0xaa4')](_0x5a44fd('0xe97'),_0x3373de);}},{'key':'getAttendanceSuccessCallBack','value':function(_0x317f27){var _0x3daf1b=_0x26f2b9,_0x7e33d6=this[_0x3daf1b('0xe2c')]();$(_0x3daf1b('0xb50'))['remove'](),$(_0x3daf1b('0x100e'))[_0x3daf1b('0xaa6')]();var _0x18ae76=$(_0x3daf1b('0xc62'));_0x18ae76[_0x3daf1b('0x276')](''),_0x18ae76[_0x3daf1b('0x276')](''[_0x3daf1b('0xda9')](_0x7e33d6,_0x3daf1b('0xb1f'))),nv[_0x3daf1b('0xc08')](function(){var _0xdde263=_0x3daf1b,_0x3784f8=nv[_0xdde263('0xd86')][_0xdde263('0x9c9')]()[_0xdde263('0xa13')]({'bottom':0xc8})[_0xdde263('0x398')](0x0)[_0xdde263('0x360')](!0x0)[_0xdde263('0xeaa')](0x2d)['showControls'](!0x1)[_0xdde263('0x10b8')](0.1);return _0x3784f8[_0xdde263('0x2e3')][_0xdde263('0xeaf')](d3[_0xdde263('0xa5c')](_0xdde263('0xd4b'))),_0x3784f8[_0xdde263('0xe0f')]['on'](_0xdde263('0x746'),function(_0x344256){var _0x28ea80=_0xdde263;nv[_0x28ea80('0x455')](_0x28ea80('0xb99'),JSON[_0x28ea80('0xf0b')](_0x344256));}),_0x3784f8[_0xdde263('0xcb0')](function(_0x143a4a,_0x175e97,_0x5f4cd7,_0x2ddebe,_0x2abd3e){var _0x447574=_0xdde263;return'

'[_0x447574('0xda9')](_0x143a4a,'

')+_0x447574('0x760')[_0x447574('0xda9')](_0x5f4cd7,_0x447574('0x6f9'))[_0x447574('0xda9')](_0x175e97,_0x447574('0x65a'));}),d3['select'](_0xdde263('0xb50'))[_0xdde263('0x7ce')](_0x317f27)[_0xdde263('0xfd2')](_0x3784f8),_0x3784f8;});}},{'key':'getHelpLink','value':function(){return'https://icehrm.gitbook.io/icehrm/insights/analytics';}}]),_0x5d214d;}(_0x42100f[_0x10cdcd('0xf5f')]),_0x34b278=function(_0x170a31){var _0x43f4be=_0x10cdcd;_0x11193d(_0x36e368,_0x170a31);var _0x10136b=_0x23eaa5(_0x36e368);function _0x36e368(){var _0x8ab4f0=_0x5376;return _0x3e0b6e(this,_0x36e368),_0x10136b[_0x8ab4f0('0x2be')](this,arguments);}return _0x6fda9(_0x36e368,[{'key':_0x43f4be('0x10d7'),'value':function(){return[];}},{'key':'getFilters','value':function(){var _0x5526b2=_0x43f4be;return[[_0x5526b2('0x10d1'),{'label':_0x5526b2('0x10f9'),'type':'select2','allow-null':!0x0,'null-label':_0x5526b2('0xa3f'),'remote-source':[_0x5526b2('0x10f9'),'id',_0x5526b2('0x561')]}],[_0x5526b2('0xa7e'),{'label':'Start\x20Date','type':_0x5526b2('0x2a5'),'validation':''}],[_0x5526b2('0xcad'),{'label':_0x5526b2('0x545'),'type':_0x5526b2('0x2a5'),'validation':''}]];}},{'key':_0x43f4be('0xd12'),'value':function(){var _0x4cc492=_0x43f4be;this[_0x4cc492('0x395')](),this[_0x4cc492('0xd9a')]();}},{'key':_0x43f4be('0x2d4'),'value':function(_0x42b465){var _0x343dd1=_0x43f4be,_0xb68ae3=$('#'[_0x343dd1('0xda9')](this[_0x343dd1('0x2ac')],_0x343dd1('0x476')));if(_0xb68ae3[_0x343dd1('0x276')](''),_0xb68ae3[_0x343dd1('0xcee')](),Date[_0x343dd1('0x104a')](_0x42b465[_0x343dd1('0xa7e')])[_0x343dd1('0x4a2')]()>Date[_0x343dd1('0x104a')](_0x42b465[_0x343dd1('0xcad')])[_0x343dd1('0x4a2')]())return _0xb68ae3[_0x343dd1('0x276')]('End\x20date\x20should\x20be\x20a\x20later\x20date\x20than\x20start\x20date'),_0xb68ae3[_0x343dd1('0x312')](),!0x1;var _0x2bf4eb=(Date[_0x343dd1('0x104a')](_0x42b465[_0x343dd1('0xcad')])[_0x343dd1('0x4a2')]()-Date[_0x343dd1('0x104a')](_0x42b465[_0x343dd1('0xa7e')])[_0x343dd1('0x4a2')]())/0x5265c00;return _0x2bf4eb>0x2d&&(void 0x0===_0x42b465[_0x343dd1('0x10d1')]||null==_0x42b465['employee']||'NULL'===_0x42b465[_0x343dd1('0x10d1')])?(_0xb68ae3[_0x343dd1('0x276')](_0x343dd1('0xb60')),_0xb68ae3['show'](),!0x1):!(_0x2bf4eb>0x5a)||(_0xb68ae3[_0x343dd1('0x276')]('Differance\x20between\x20start\x20and\x20end\x20dates\x20should\x20not\x20be\x20more\x20than\x2090\x20days'),_0xb68ae3[_0x343dd1('0x312')](),!0x1);}},{'key':'getTimeUtilization','value':function(_0x25351b,_0x34fd11){var _0x269a22=_0x43f4be;_0x25351b={},null!=this[_0x269a22('0x562')]&&void 0x0!==this[_0x269a22('0x562')]&&(_0x269a22('0x855')!==this[_0x269a22('0x562')]['employee']&&(_0x25351b['employee']=this[_0x269a22('0x562')][_0x269a22('0x10d1')]),_0x25351b[_0x269a22('0xa7e')]=this['filter'][_0x269a22('0xa7e')],_0x25351b[_0x269a22('0xcad')]=this['filter'][_0x269a22('0xcad')]);var _0x2e71b7=JSON[_0x269a22('0xf0b')](_0x25351b);(_0x34fd11=null==_0x34fd11?[]:_0x34fd11)[_0x269a22('0x88d')]=[],_0x34fd11[_0x269a22('0x691')]=_0x269a22('0xea0'),_0x34fd11[_0x269a22('0xc93')]=_0x269a22('0x45f'),this[_0x269a22('0xd99')](_0x269a22('0xd9a'),_0x269a22('0x142'),_0x2e71b7,_0x34fd11);}},{'key':_0x43f4be('0x45f'),'value':function(_0x31f34d){var _0x5de849=_0x43f4be;this[_0x5de849('0xaa4')](_0x5de849('0xe97'),_0x31f34d);}},{'key':_0x43f4be('0xea0'),'value':function(_0x5f076f){var _0x5f3d7e=_0x43f4be,_0x2cae1d=this[_0x5f3d7e('0xe2c')]();$(_0x5f3d7e('0xd6'))[_0x5f3d7e('0xaa6')](),$(_0x5f3d7e('0xc36'))[_0x5f3d7e('0xaa6')]();var _0xac2a67=$(_0x5f3d7e('0x1b5'));_0xac2a67['html'](''),_0xac2a67[_0x5f3d7e('0x276')](''['concat'](_0x2cae1d,_0x5f3d7e('0xb1f'))),nv['addGraph'](function(){var _0x1a7fdd=_0x5f3d7e,_0x39c71c=nv[_0x1a7fdd('0xd86')][_0x1a7fdd('0x9c9')]()[_0x1a7fdd('0xa13')]({'bottom':0xc8})[_0x1a7fdd('0x398')](0x0)[_0x1a7fdd('0x360')](!0x0)[_0x1a7fdd('0xeaa')](0x2d)['showControls'](!0x0)['groupSpacing'](0.1);return _0x39c71c[_0x1a7fdd('0x2e3')][_0x1a7fdd('0xeaf')](d3[_0x1a7fdd('0xa5c')](_0x1a7fdd('0xd4b'))),d3[_0x1a7fdd('0x4ce')](_0x1a7fdd('0xd6'))[_0x1a7fdd('0x7ce')](_0x5f076f)[_0x1a7fdd('0xfd2')](_0x39c71c),_0x39c71c[_0x1a7fdd('0xe0f')]['on'](_0x1a7fdd('0x746'),function(_0xb336aa){var _0x40b316=_0x1a7fdd;nv[_0x40b316('0x455')](_0x40b316('0xb99'),JSON[_0x40b316('0xf0b')](_0xb336aa));}),_0x39c71c[_0x1a7fdd('0xcb0')](function(_0x5da6f0,_0x1a9f78,_0xfe913c,_0x35ce77,_0x2f4d08){var _0x40df49=_0x1a7fdd;return _0x40df49('0xd09')[_0x40df49('0xda9')](_0x5da6f0,_0x40df49('0x30b'))+_0x40df49('0x760')[_0x40df49('0xda9')](_0xfe913c,'\x20on\x20')[_0x40df49('0xda9')](_0x1a9f78,_0x40df49('0x65a'));}),_0x39c71c;});}},{'key':_0x43f4be('0x1aa'),'value':function(){var _0x2486e9=_0x43f4be;return _0x2486e9('0xf84');}}]),_0x36e368;}(_0x42100f[_0x10cdcd('0xf5f')]);_0x3ae541[_0x10cdcd('0x64')]={'AttendanceGraphAdapter':_0x4875fa,'TimeUtilizationGraphAdapter':_0x34b278};},{'../../../api/BaseGraphAdapter':0x36}],0x6:[function(_0x1976c1,_0x23d6d2,_0x46419d){var _0xbb188f=_0x5376;'use strict';var _0x58819d=_0x1976c1(_0xbb188f('0x19f'));window[_0xbb188f('0xd9')]=_0x58819d[_0xbb188f('0xd9')];},{'./lib':0x7}],0x7:[function(_0x8137d4,_0x27bd42,_0x26583d){var _0x2baf53=_0x5376;'use strict';var _0x3251b3;function _0x5ab004(_0x397984){var _0x27719d=_0x5376;return(_0x5ab004=_0x27719d('0x106c')==typeof Symbol&&_0x27719d('0x43c')==typeof Symbol[_0x27719d('0x57b')]?function(_0x7102a3){return typeof _0x7102a3;}:function(_0x59257d){var _0x1b2747=_0x27719d;return _0x59257d&&_0x1b2747('0x106c')==typeof Symbol&&_0x59257d[_0x1b2747('0xad1')]===Symbol&&_0x59257d!==Symbol[_0x1b2747('0xe02')]?'symbol':typeof _0x59257d;})(_0x397984);}function _0xb669fa(_0x3dc0e1,_0x2b1d67){var _0x416828=_0x5376;for(var _0x539521=0x0;_0x539521<_0x2b1d67[_0x416828('0x13')];_0x539521++){var _0x4eca55=_0x2b1d67[_0x539521];_0x4eca55[_0x416828('0x3bf')]=_0x4eca55[_0x416828('0x3bf')]||!0x1,_0x4eca55[_0x416828('0x749')]=!0x0,_0x416828('0x30')in _0x4eca55&&(_0x4eca55[_0x416828('0x820')]=!0x0),Object[_0x416828('0x9a5')](_0x3dc0e1,_0x4eca55['key'],_0x4eca55);}}function _0x56881b(_0x5e7228,_0x8bf2ab){var _0xd58099=_0x5376;return!_0x8bf2ab||_0xd58099('0xb3f')!==_0x5ab004(_0x8bf2ab)&&_0xd58099('0x106c')!=typeof _0x8bf2ab?function(_0xf53a01){var _0x48483b=_0xd58099;if(void 0x0===_0xf53a01)throw new ReferenceError(_0x48483b('0xe0d'));return _0xf53a01;}(_0x5e7228):_0x8bf2ab;}function _0x1df8b1(){var _0x38c006=_0x5376;if(_0x38c006('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x38c006('0x353')]['sham'])return!0x1;if(_0x38c006('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x38c006('0xe02')][_0x38c006('0xb6d')][_0x38c006('0xfd2')](Reflect[_0x38c006('0x353')](Date,[],function(){})),!0x0;}catch(_0x18ec90){return!0x1;}}function _0x9400f7(_0x254d70){var _0x8c81b3=_0x5376;return(_0x9400f7=Object[_0x8c81b3('0x3df')]?Object[_0x8c81b3('0x2d9')]:function(_0x87d42b){var _0x321da1=_0x8c81b3;return _0x87d42b[_0x321da1('0x112c')]||Object[_0x321da1('0x2d9')](_0x87d42b);})(_0x254d70);}function _0x4cc6a7(_0xc7e756,_0x4d8ccb){var _0x51f23c=_0x5376;return(_0x4cc6a7=Object[_0x51f23c('0x3df')]||function(_0x2f7428,_0x450ad3){var _0x13f14e=_0x51f23c;return _0x2f7428[_0x13f14e('0x112c')]=_0x450ad3,_0x2f7428;})(_0xc7e756,_0x4d8ccb);}var _0x4d88f8=function(_0x429ef9){var _0x834685=_0x5376;!function(_0x4f460f,_0x3cd3fe){var _0x24f888=_0x5376;if(_0x24f888('0x106c')!=typeof _0x3cd3fe&&null!==_0x3cd3fe)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x4f460f[_0x24f888('0xe02')]=Object[_0x24f888('0xbd0')](_0x3cd3fe&&_0x3cd3fe[_0x24f888('0xe02')],{'constructor':{'value':_0x4f460f,'writable':!0x0,'configurable':!0x0}}),_0x3cd3fe&&_0x4cc6a7(_0x4f460f,_0x3cd3fe);}(_0xbda990,_0x429ef9);var _0x358bab,_0x37e17a,_0x181d12,_0x3c68b0,_0x497370=(_0x358bab=_0xbda990,function(){var _0x355dbd=_0x5376,_0x2bb3d4,_0x24c2fb=_0x9400f7(_0x358bab);if(_0x1df8b1()){var _0x29b3d2=_0x9400f7(this)[_0x355dbd('0xad1')];_0x2bb3d4=Reflect[_0x355dbd('0x353')](_0x24c2fb,arguments,_0x29b3d2);}else _0x2bb3d4=_0x24c2fb['apply'](this,arguments);return _0x56881b(this,_0x2bb3d4);});function _0xbda990(_0x30822e,_0x325ebd,_0x450c62,_0x56e9c){var _0x35f20d=_0x5376,_0x4d04d9;return function(_0x2e38ee,_0x40a6fe){var _0xe49879=_0x5376;if(!(_0x2e38ee instanceof _0x40a6fe))throw new TypeError(_0xe49879('0xf98'));}(this,_0xbda990),(_0x4d04d9=_0x497370[_0x35f20d('0xfd2')](this,_0x30822e,_0x325ebd,_0x450c62,_0x56e9c))[_0x35f20d('0xade')]={},_0x4d04d9[_0x35f20d('0xfbc')]={},_0x4d04d9['tableFields']={},_0x4d04d9[_0x35f20d('0xe00')]={},_0x4d04d9;}return _0x37e17a=_0xbda990,(_0x181d12=[{'key':_0x834685('0x44a'),'value':function(){var _0x1538a2=_0x834685;return['id',_0x1538a2('0x3ea'),'details',_0x1538a2('0x32f'),_0x1538a2('0xf01')];}},{'key':_0x834685('0x95e'),'value':function(){var _0x5cb47e=_0x834685;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0x5cb47e('0xd87')},{'sTitle':_0x5cb47e('0xb42')},{'sTitle':_0x5cb47e('0xa03')}];}},{'key':_0x834685('0xb81'),'value':function(){var _0x31fed4=_0x834685;return[{'title':'Name','dataIndex':_0x31fed4('0x3ea'),'sorter':!0x0},{'title':_0x31fed4('0xd87'),'dataIndex':'details','sorter':!0x0},{'title':_0x31fed4('0xb42'),'dataIndex':'address','sorter':!0x0},{'title':_0x31fed4('0xa03'),'dataIndex':_0x31fed4('0xf01'),'sorter':!0x0}];}},{'key':_0x834685('0x10d7'),'value':function(){var _0x5aa250=_0x834685;return this[_0x5aa250('0x5ba')]?[['id',{'label':'ID','type':_0x5aa250('0x10f4')}],['name',{'label':_0x5aa250('0xdde'),'type':_0x5aa250('0x5b2')}],['details',{'label':_0x5aa250('0xd87'),'type':_0x5aa250('0x7ea'),'validation':_0x5aa250('0xea1')}],[_0x5aa250('0x32f'),{'label':_0x5aa250('0xb42'),'type':_0x5aa250('0x7ea'),'validation':'none'}],[_0x5aa250('0xf01'),{'label':_0x5aa250('0xa03'),'type':_0x5aa250('0x5b2'),'validation':'none'}],[_0x5aa250('0x3ca'),{'label':_0x5aa250('0xc9b'),'type':'text','validation':_0x5aa250('0xea1')}],[_0x5aa250('0xa44'),{'label':_0x5aa250('0x4f8'),'type':'text','validation':_0x5aa250('0xea1')}],[_0x5aa250('0x75e'),{'label':_0x5aa250('0x600'),'type':'select','source':[['Active',_0x5aa250('0x3a8')],[_0x5aa250('0x2b6'),_0x5aa250('0x2b6')]]}],[_0x5aa250('0xb26'),{'label':_0x5aa250('0xb03'),'type':'date','validation':'none'}]]:[['id',{'label':'ID','type':_0x5aa250('0x10f4')}],[_0x5aa250('0x3ea'),{'label':_0x5aa250('0xdde'),'type':_0x5aa250('0xa49')}],[_0x5aa250('0x1093'),{'label':_0x5aa250('0xd87'),'type':_0x5aa250('0xa49'),'validation':_0x5aa250('0xea1')}],['address',{'label':_0x5aa250('0xb42'),'type':_0x5aa250('0xa49'),'validation':'none'}],[_0x5aa250('0xf01'),{'label':_0x5aa250('0xa03'),'type':'placeholder','validation':_0x5aa250('0xea1')}],['contact_email',{'label':_0x5aa250('0xc9b'),'type':_0x5aa250('0xa49'),'validation':_0x5aa250('0xea1')}],['company_url',{'label':_0x5aa250('0x4f8'),'type':_0x5aa250('0xa49'),'validation':_0x5aa250('0xea1')}],[_0x5aa250('0x75e'),{'label':_0x5aa250('0x600'),'type':_0x5aa250('0xa49'),'source':[[_0x5aa250('0x3a8'),_0x5aa250('0x3a8')],['Inactive','Inactive']]}],[_0x5aa250('0xb26'),{'label':_0x5aa250('0xb03'),'type':'placeholder','validation':_0x5aa250('0xea1')}]];}},{'key':_0x834685('0x1aa'),'value':function(){var _0xb5cc88=_0x834685;return _0xb5cc88('0x16d');}}])&&_0xb669fa(_0x37e17a[_0x834685('0xe02')],_0x181d12),_0x3c68b0&&_0xb669fa(_0x37e17a,_0x3c68b0),_0xbda990;}(((_0x3251b3=_0x8137d4('../../../api/ReactModalAdapterBase'))&&_0x3251b3[_0x2baf53('0xce5')]?_0x3251b3:{'default':_0x3251b3})['default']);_0x27bd42[_0x2baf53('0x64')]={'ClientAdapter':_0x4d88f8};},{'../../../api/ReactModalAdapterBase':0x41}],0x8:[function(_0x43ad7b,_0x151671,_0x4f54c3){var _0x26eca5=_0x5376;'use strict';var _0x46f476,_0x3e28db=_0x43ad7b('./lib'),_0x55b314=(_0x46f476=_0x43ad7b(_0x26eca5('0x147')))&&_0x46f476[_0x26eca5('0xce5')]?_0x46f476:{'default':_0x46f476};window[_0x26eca5('0xbf4')]=function(_0x59cbb2){var _0x3ba9bb=_0x26eca5,_0x475957={};_0x475957[_0x3ba9bb('0x137')]=new _0x3e28db[(_0x3ba9bb('0xada'))](_0x3ba9bb('0x5f0')),_0x475957[_0x3ba9bb('0x137')]['setObjectTypeName'](_0x3ba9bb('0xd57')),_0x475957[_0x3ba9bb('0x137')]['setDataPipe'](new _0x55b314[(_0x3ba9bb('0xf5f'))](_0x475957[_0x3ba9bb('0x137')])),_0x475957[_0x3ba9bb('0x137')]['setAccess'](_0x59cbb2[_0x3ba9bb('0xca5')][_0x3ba9bb('0x5f0')]),_0x475957['tabCompanyStructure']['setCustomFields'](_0x59cbb2['customFields']),_0x475957['tabCompanyGraph']=new _0x3e28db[(_0x3ba9bb('0x57c'))](_0x3ba9bb('0x5f0')),window['modJs']=_0x475957[_0x3ba9bb('0x137')],window['modJsList']=_0x475957;};},{'../../../api/IceDataPipe':0x3a,'./lib':0x9}],0x9:[function(_0x3424ff,_0x538c97,_0x435bef){var _0x2c2bcb=_0x5376;'use strict';var _0x70d30f=_0x2ee589(_0x3424ff('../../../api/ReactModalAdapterBase')),_0x58d1d5=_0x2ee589(_0x3424ff(_0x2c2bcb('0xee6')));function _0x2ee589(_0x483ae8){var _0x5023d2=_0x2c2bcb;return _0x483ae8&&_0x483ae8[_0x5023d2('0xce5')]?_0x483ae8:{'default':_0x483ae8};}function _0x41f3f8(_0x5c3453){var _0x201851=_0x2c2bcb;return(_0x41f3f8=_0x201851('0x106c')==typeof Symbol&&_0x201851('0x43c')==typeof Symbol['iterator']?function(_0x56053c){return typeof _0x56053c;}:function(_0x5869c0){var _0x48179d=_0x201851;return _0x5869c0&&_0x48179d('0x106c')==typeof Symbol&&_0x5869c0[_0x48179d('0xad1')]===Symbol&&_0x5869c0!==Symbol[_0x48179d('0xe02')]?_0x48179d('0x43c'):typeof _0x5869c0;})(_0x5c3453);}function _0x4b279d(_0x265f9c,_0x2391aa){var _0x2d0242=_0x2c2bcb;if(!(_0x265f9c instanceof _0x2391aa))throw new TypeError(_0x2d0242('0xf98'));}function _0x19cec5(_0x2008f0,_0x1eaf22){var _0x1287cd=_0x2c2bcb;for(var _0x321219=0x0;_0x321219<_0x1eaf22[_0x1287cd('0x13')];_0x321219++){var _0x33c622=_0x1eaf22[_0x321219];_0x33c622['enumerable']=_0x33c622[_0x1287cd('0x3bf')]||!0x1,_0x33c622[_0x1287cd('0x749')]=!0x0,'value'in _0x33c622&&(_0x33c622['writable']=!0x0),Object[_0x1287cd('0x9a5')](_0x2008f0,_0x33c622[_0x1287cd('0x86f')],_0x33c622);}}function _0x5c81c8(_0x44737e,_0x4239c1,_0x4c70ab){var _0x59eb0=_0x2c2bcb;return _0x4239c1&&_0x19cec5(_0x44737e[_0x59eb0('0xe02')],_0x4239c1),_0x4c70ab&&_0x19cec5(_0x44737e,_0x4c70ab),_0x44737e;}function _0xe24d33(_0xe5f976){return function(){var _0x21e62d=_0x5376,_0x2e2718,_0x2fb888=_0x2d8f3b(_0xe5f976);if(_0x17ee91()){var _0x515486=_0x2d8f3b(this)[_0x21e62d('0xad1')];_0x2e2718=Reflect['construct'](_0x2fb888,arguments,_0x515486);}else _0x2e2718=_0x2fb888[_0x21e62d('0x2be')](this,arguments);return _0x54d5e9(this,_0x2e2718);};}function _0x54d5e9(_0x417388,_0x4698ab){var _0x5e092d=_0x2c2bcb;return!_0x4698ab||_0x5e092d('0xb3f')!==_0x41f3f8(_0x4698ab)&&'function'!=typeof _0x4698ab?function(_0x1ff628){if(void 0x0===_0x1ff628)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x1ff628;}(_0x417388):_0x4698ab;}function _0x17ee91(){var _0x431288=_0x2c2bcb;if(_0x431288('0x449')==typeof Reflect||!Reflect[_0x431288('0x353')])return!0x1;if(Reflect['construct'][_0x431288('0xb21')])return!0x1;if(_0x431288('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x431288('0xe02')][_0x431288('0xb6d')]['call'](Reflect[_0x431288('0x353')](Date,[],function(){})),!0x0;}catch(_0x542b5f){return!0x1;}}function _0x2d8f3b(_0x56cd1a){var _0xdfd50a=_0x2c2bcb;return(_0x2d8f3b=Object[_0xdfd50a('0x3df')]?Object[_0xdfd50a('0x2d9')]:function(_0x5e3966){var _0x300c6b=_0xdfd50a;return _0x5e3966[_0x300c6b('0x112c')]||Object[_0x300c6b('0x2d9')](_0x5e3966);})(_0x56cd1a);}function _0x2b4c42(_0x54127d,_0xe4006e){var _0x29f253=_0x2c2bcb;if(_0x29f253('0x106c')!=typeof _0xe4006e&&null!==_0xe4006e)throw new TypeError(_0x29f253('0x5a0'));_0x54127d[_0x29f253('0xe02')]=Object[_0x29f253('0xbd0')](_0xe4006e&&_0xe4006e[_0x29f253('0xe02')],{'constructor':{'value':_0x54127d,'writable':!0x0,'configurable':!0x0}}),_0xe4006e&&_0x2ca0e0(_0x54127d,_0xe4006e);}function _0x2ca0e0(_0x9a781e,_0xea5ede){var _0x1c8e9d=_0x2c2bcb;return(_0x2ca0e0=Object[_0x1c8e9d('0x3df')]||function(_0x1e9eea,_0x6d1be3){var _0x5993b3=_0x1c8e9d;return _0x1e9eea[_0x5993b3('0x112c')]=_0x6d1be3,_0x1e9eea;})(_0x9a781e,_0xea5ede);}var _0x276746=function(_0x427c12){var _0x228daa=_0x2c2bcb;_0x2b4c42(_0x31d1a0,_0x427c12);var _0x4db842=_0xe24d33(_0x31d1a0);function _0x31d1a0(){var _0x221a3b=_0x5376;return _0x4b279d(this,_0x31d1a0),_0x4db842[_0x221a3b('0x2be')](this,arguments);}return _0x5c81c8(_0x31d1a0,[{'key':_0x228daa('0x44a'),'value':function(){var _0x14b9c3=_0x228daa;return['id','title',_0x14b9c3('0x32f'),_0x14b9c3('0x921'),'country',_0x14b9c3('0xbfc'),'parent'];}},{'key':_0x228daa('0x95e'),'value':function(){var _0x1425c4=_0x228daa;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x1425c4('0xdde')},{'sTitle':'Address','bSortable':!0x1},{'sTitle':_0x1425c4('0x5bc')},{'sTitle':_0x1425c4('0x81e'),'sClass':'center'},{'sTitle':_0x1425c4('0x1127')},{'sTitle':_0x1425c4('0x1025')}];}},{'key':'getTableColumns','value':function(){var _0x40eaa5=_0x228daa;return[{'title':_0x40eaa5('0xdde'),'dataIndex':_0x40eaa5('0xf6d'),'sorter':!0x0},{'title':_0x40eaa5('0xb42'),'dataIndex':_0x40eaa5('0x32f')},{'title':_0x40eaa5('0x5bc'),'dataIndex':'type'},{'title':_0x40eaa5('0x81e'),'dataIndex':'country'},{'title':_0x40eaa5('0x1127'),'dataIndex':_0x40eaa5('0xbfc')},{'title':_0x40eaa5('0x1025'),'dataIndex':'parent'}];}},{'key':'getFormFields','value':function(){var _0x4f50ee=_0x228daa;return this[_0x4f50ee('0x669')]([['id',{'label':'ID','type':_0x4f50ee('0x10f4'),'validation':''}],[_0x4f50ee('0xf6d'),{'label':_0x4f50ee('0xdde'),'type':'text','validation':''}],[_0x4f50ee('0x903'),{'label':_0x4f50ee('0xd87'),'type':_0x4f50ee('0x7ea'),'validation':''}],['address',{'label':'Address','type':_0x4f50ee('0x7ea'),'validation':_0x4f50ee('0xea1')}],[_0x4f50ee('0x921'),{'label':_0x4f50ee('0x5bc'),'type':_0x4f50ee('0x4ce'),'source':[['Company',_0x4f50ee('0xc01')],[_0x4f50ee('0x889'),_0x4f50ee('0x889')],['Regional\x20Office',_0x4f50ee('0x6e0')],[_0x4f50ee('0x3c6'),_0x4f50ee('0x3c6')],['Unit',_0x4f50ee('0x55a')],[_0x4f50ee('0x626'),_0x4f50ee('0x626')],['Other',_0x4f50ee('0xf46')]]}],[_0x4f50ee('0x777'),{'label':_0x4f50ee('0x81e'),'type':_0x4f50ee('0x15'),'remote-source':['Country','code','name']}],['timezone',{'label':'Time\x20Zone','type':_0x4f50ee('0x15'),'allow-null':!0x1,'remote-source':[_0x4f50ee('0xdcd'),_0x4f50ee('0x3ea'),_0x4f50ee('0x1093'),'getTimezonesWithOffset']}],['parent',{'label':_0x4f50ee('0x1025'),'type':_0x4f50ee('0x4ce'),'allow-null':!0x0,'remote-source':[_0x4f50ee('0x5f0'),'id',_0x4f50ee('0xf6d')]}],[_0x4f50ee('0x71a'),{'label':_0x4f50ee('0x450'),'type':_0x4f50ee('0xa2d'),'allow-null':!0x0,'remote-source':['Employee','id','first_name+last_name']}]]);}},{'key':_0x228daa('0xc8'),'value':function(_0x34aee4,_0x342378){var _0x5f2d33=_0x228daa;null!=_0x34aee4&&null!==_0x34aee4['id']&&void 0x0!==_0x34aee4['id']&&''!==_0x34aee4['id']||_0x342378[_0x5f2d33('0xe05')](_0x5f2d33('0x63e'))[_0x5f2d33('0xcee')]();}},{'key':_0x228daa('0x1aa'),'value':function(){var _0x510213=_0x228daa;return _0x510213('0x384');}}]),_0x31d1a0;}(_0x70d30f[_0x2c2bcb('0xf5f')]),_0x3801dc=function(_0x235a26){var _0xb47621=_0x2c2bcb;_0x2b4c42(_0x22bfe7,_0x235a26);var _0x2343cf=_0xe24d33(_0x22bfe7);function _0x22bfe7(_0x41a0b8,_0x55336a,_0x2b416c,_0x7423d3){var _0x111dc0=_0x5376,_0x40aea0;return _0x4b279d(this,_0x22bfe7),(_0x40aea0=_0x2343cf[_0x111dc0('0xfd2')](this,_0x41a0b8,_0x55336a,_0x2b416c,_0x7423d3))[_0x111dc0('0xdb5')]=0x0,_0x40aea0;}return _0x5c81c8(_0x22bfe7,[{'key':'getDataMapping','value':function(){var _0x5ce7d6=_0x5376;return['id',_0x5ce7d6('0xf6d'),_0x5ce7d6('0x32f'),'type','country',_0x5ce7d6('0xbfc'),_0x5ce7d6('0xb69')];}},{'key':_0xb47621('0x95e'),'value':function(){var _0xfd9b2d=_0xb47621;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0xfd9b2d('0xb42'),'bSortable':!0x1},{'sTitle':_0xfd9b2d('0x5bc')},{'sTitle':_0xfd9b2d('0x81e'),'sClass':_0xfd9b2d('0x40c')},{'sTitle':_0xfd9b2d('0x1127')},{'sTitle':_0xfd9b2d('0x1025')}];}},{'key':_0xb47621('0x10d7'),'value':function(){var _0x407abe=_0xb47621;return[['id',{'label':'ID','type':'hidden','validation':''}],[_0x407abe('0xf6d'),{'label':_0x407abe('0xdde'),'type':_0x407abe('0x5b2'),'validation':''}],[_0x407abe('0x903'),{'label':_0x407abe('0xd87'),'type':_0x407abe('0x7ea'),'validation':''}],['address',{'label':_0x407abe('0xb42'),'type':_0x407abe('0x7ea'),'validation':_0x407abe('0xea1')}],[_0x407abe('0x921'),{'label':_0x407abe('0x5bc'),'type':_0x407abe('0x4ce'),'source':[[_0x407abe('0xc01'),_0x407abe('0xc01')],[_0x407abe('0x889'),_0x407abe('0x889')],[_0x407abe('0x6e0'),_0x407abe('0x6e0')],[_0x407abe('0x3c6'),_0x407abe('0x3c6')],[_0x407abe('0x55a'),'Unit'],[_0x407abe('0x626'),'Sub\x20Unit'],[_0x407abe('0xf46'),_0x407abe('0xf46')]]}],[_0x407abe('0x777'),{'label':'Country','type':_0x407abe('0x15'),'remote-source':[_0x407abe('0x81e'),_0x407abe('0x9e3'),'name']}],[_0x407abe('0xbfc'),{'label':'Time\x20Zone','type':_0x407abe('0x15'),'allow-null':!0x1,'remote-source':[_0x407abe('0xdcd'),_0x407abe('0x3ea'),'details',_0x407abe('0xa8f')]}],[_0x407abe('0xb69'),{'label':'Parent\x20Structure','type':_0x407abe('0x4ce'),'allow-null':!0x0,'remote-source':[_0x407abe('0x5f0'),'id','title']}],['heads',{'label':'Heads','type':_0x407abe('0xa2d'),'allow-null':!0x0,'remote-source':['Employee','id',_0x407abe('0x561')]}]];}},{'key':'convertToTree','value':function(_0x4b3fdb){var _0x32b421=_0xb47621;for(var _0x47399c={'id':-0x1,'title':'','name':'','children':[]},_0x176f37=null,_0x2b777a=0x0;_0x2b777a<_0x4b3fdb[_0x32b421('0x13')];_0x2b777a++)_0x4b3fdb[_0x2b777a][_0x32b421('0x3ea')]=_0x4b3fdb[_0x2b777a][_0x32b421('0xf6d')],null!=_0x4b3fdb[_0x2b777a][_0x32b421('0xb69')]&&void 0x0!==_0x4b3fdb[_0x2b777a][_0x32b421('0xb69')]&&null!=(_0x176f37=this[_0x32b421('0xab7')](_0x4b3fdb,_0x4b3fdb[_0x2b777a]['parent']))&&(void 0x0!==_0x176f37[_0x32b421('0x60c')]&&null!=_0x176f37['children']||(_0x176f37[_0x32b421('0x60c')]=[]),_0x176f37[_0x32b421('0x60c')][_0x32b421('0x91b')](_0x4b3fdb[_0x2b777a]));for(var _0x1f30f7=0x0;_0x1f30f7<_0x4b3fdb[_0x32b421('0x13')];_0x1f30f7++)null!=_0x4b3fdb[_0x1f30f7][_0x32b421('0xb69')]&&void 0x0!==_0x4b3fdb[_0x1f30f7][_0x32b421('0xb69')]||_0x47399c[_0x32b421('0x60c')][_0x32b421('0x91b')](_0x4b3fdb[_0x1f30f7]);return _0x47399c;}},{'key':_0xb47621('0xab7'),'value':function(_0x51c36c,_0x4fe898){var _0x52f8c6=_0xb47621;for(var _0xc6d31f=0x0;_0xc6d31f<_0x51c36c[_0x52f8c6('0x13')];_0xc6d31f++)if(_0x51c36c[_0xc6d31f][_0x52f8c6('0xf6d')]===_0x4fe898||_0x51c36c[_0xc6d31f][_0x52f8c6('0xf6d')]===_0x4fe898)return _0x51c36c[_0xc6d31f];return null;}},{'key':_0xb47621('0x37f'),'value':function(_0x584e47){var _0x136299=_0xb47621;$(_0x136299('0x6fc'))[_0x136299('0x276')]('');var _0x8fe1a0=this[_0x136299('0x1f7')],_0x4d35c9=this['convertToTree'](_0x8fe1a0),_0x25d411=[0x14,0x78,0x14,0x78],_0x44a607=0x1388-_0x25d411[0x1]-_0x25d411[0x3],_0x3a4f17=0x3e8-_0x25d411[0x0]-_0x25d411[0x2],_0x396a11=d3[_0x136299('0xe19')][_0x136299('0x2d7')]()[_0x136299('0x10a2')]([_0x3a4f17,_0x44a607]);this[_0x136299('0xef3')]=d3[_0x136299('0x557')][_0x136299('0xef3')]()['projection'](function(_0x1fe887){return[_0x1fe887['y'],_0x1fe887['x']];}),this[_0x136299('0x36d')]=d3['select'](_0x136299('0x6fc'))[_0x136299('0x895')](_0x136299('0xb2a'))[_0x136299('0xb0c')](_0x136299('0x115'),_0x44a607+_0x25d411[0x1]+_0x25d411[0x3])[_0x136299('0xb0c')]('height',_0x3a4f17+_0x25d411[0x0]+_0x25d411[0x2])['append'](_0x136299('0x987'))[_0x136299('0xb0c')](_0x136299('0xbe1'),_0x136299('0xd7d')[_0x136299('0xda9')](_0x25d411[0x3],',')[_0x136299('0xda9')](_0x25d411[0x0],')'));var _0x5121f7=_0x4d35c9;_0x5121f7['x0']=_0x3a4f17/0x2,_0x5121f7['y0']=0x0,this[_0x136299('0xe54')](_0x5121f7,_0x396a11,_0x5121f7);}},{'key':_0xb47621('0xe54'),'value':function(_0x1d0387,_0x3d3646,_0xf33290){var _0x18abf0=_0xb47621,_0x3cab9c=this,_0x1a7d9d=d3[_0x18abf0('0xb49')]&&d3['event'][_0x18abf0('0xa6b')]?0x1388:0x1f4,_0x8de483=_0x3d3646['nodes'](_0xf33290)['reverse']();_0x8de483[_0x18abf0('0xb77')](function(_0x2696b6){_0x2696b6['y']=0xb4*_0x2696b6['depth'];});var _0x324886=_0x3cab9c['vis'][_0x18abf0('0x53f')](_0x18abf0('0xf1a'))['data'](_0x8de483,function(_0x8572a2){var _0x2d6ae7=_0x18abf0;return _0x8572a2['id']||(_0x8572a2['id']=++_0x3cab9c[_0x2d6ae7('0xdb5')]);}),_0x22aff3=_0x324886[_0x18abf0('0x37a')]()[_0x18abf0('0x895')](_0x18abf0('0x987'))['attr'](_0x18abf0('0x63c'),_0x18abf0('0xb95'))['attr']('transform',function(_0xfb9c5e){var _0x4d7e40=_0x18abf0;return _0x4d7e40('0xd7d')[_0x4d7e40('0xda9')](_0x1d0387['y0'],',')[_0x4d7e40('0xda9')](_0x1d0387['x0'],')');})['on']('click',function(_0x4c9088){var _0x5f0d0a=_0x18abf0;_0x3cab9c[_0x5f0d0a('0x21d')](_0x4c9088),_0x3cab9c[_0x5f0d0a('0xe54')](_0x4c9088,_0x3d3646,_0xf33290);});_0x22aff3[_0x18abf0('0x895')]('svg:circle')[_0x18abf0('0xb0c')]('r',0.000001)['style']('fill',function(_0x31fe6b){var _0x330751=_0x18abf0;return _0x31fe6b[_0x330751('0x56c')]?_0x330751('0xa28'):_0x330751('0x310');}),_0x22aff3[_0x18abf0('0x895')](_0x18abf0('0x9fb'))[_0x18abf0('0xb0c')]('x',function(_0x3c323c){var _0xb3a5e4=_0x18abf0;return _0x3c323c[_0xb3a5e4('0x60c')]||_0x3c323c[_0xb3a5e4('0x56c')]?-0xa:0xa;})['attr']('dy','.35em')['attr'](_0x18abf0('0xbb3'),function(_0x3de906){var _0x1ce445=_0x18abf0;return _0x3de906[_0x1ce445('0x60c')]||_0x3de906[_0x1ce445('0x56c')]?_0x1ce445('0xcad'):_0x1ce445('0xa7e');})[_0x18abf0('0x5b2')](function(_0x3d8cc8){var _0x1ec79c=_0x18abf0;return _0x3d8cc8[_0x1ec79c('0x3ea')];})[_0x18abf0('0xe81')](_0x18abf0('0xa00'),0.000001);var _0x1848ba=_0x324886[_0x18abf0('0x5ce')]()['duration'](_0x1a7d9d)[_0x18abf0('0xb0c')](_0x18abf0('0xbe1'),function(_0x499637){var _0x2766ea=_0x18abf0;return'translate('[_0x2766ea('0xda9')](_0x499637['y'],',')[_0x2766ea('0xda9')](_0x499637['x'],')');});_0x1848ba[_0x18abf0('0x4ce')](_0x18abf0('0xe66'))[_0x18abf0('0xb0c')]('r',4.5)[_0x18abf0('0xe81')]('fill',function(_0x18e32e){var _0x2064e2=_0x18abf0;return _0x18e32e[_0x2064e2('0x56c')]?_0x2064e2('0xa28'):_0x2064e2('0x310');}),_0x1848ba[_0x18abf0('0x4ce')](_0x18abf0('0x5b2'))[_0x18abf0('0xe81')]('fill-opacity',0x1);var _0x39f389=_0x324886['exit']()['transition']()[_0x18abf0('0x9ba')](_0x1a7d9d)[_0x18abf0('0xb0c')]('transform',function(_0x366c00){var _0x1bba77=_0x18abf0;return _0x1bba77('0xd7d')['concat'](_0x1d0387['y'],',')['concat'](_0x1d0387['x'],')');})[_0x18abf0('0xaa6')]();_0x39f389[_0x18abf0('0x4ce')](_0x18abf0('0xe66'))[_0x18abf0('0xb0c')]('r',0.000001),_0x39f389[_0x18abf0('0x4ce')](_0x18abf0('0x5b2'))[_0x18abf0('0xe81')](_0x18abf0('0xa00'),0.000001);var _0x12da04=_0x3cab9c['vis'][_0x18abf0('0x53f')]('path.link')['data'](_0x3d3646[_0x18abf0('0xea')](_0x8de483),function(_0x4aef16){return _0x4aef16['target']['id'];});_0x12da04['enter']()[_0x18abf0('0x9d1')](_0x18abf0('0xd29'),'g')[_0x18abf0('0xb0c')](_0x18abf0('0x63c'),_0x18abf0('0x61b'))[_0x18abf0('0xb0c')]('d',function(_0x39e098){var _0x82be8d=_0x18abf0,_0x39564c={'x':_0x1d0387['x0'],'y':_0x1d0387['y0']};return _0x3cab9c[_0x82be8d('0xef3')]({'source':_0x39564c,'target':_0x39564c});})[_0x18abf0('0x5ce')]()[_0x18abf0('0x9ba')](_0x1a7d9d)[_0x18abf0('0xb0c')]('d',_0x3cab9c[_0x18abf0('0xef3')]),_0x12da04[_0x18abf0('0x5ce')]()[_0x18abf0('0x9ba')](_0x1a7d9d)[_0x18abf0('0xb0c')]('d',_0x3cab9c[_0x18abf0('0xef3')]),_0x12da04[_0x18abf0('0xf8e')]()['transition']()[_0x18abf0('0x9ba')](_0x1a7d9d)[_0x18abf0('0xb0c')]('d',function(_0x3d5b9e){var _0x4c2300=_0x18abf0,_0x388cc6={'x':_0x1d0387['x'],'y':_0x1d0387['y']};return _0x3cab9c[_0x4c2300('0xef3')]({'source':_0x388cc6,'target':_0x388cc6});})[_0x18abf0('0xaa6')](),_0x8de483[_0x18abf0('0xb77')](function(_0x1ec641){_0x1ec641['x0']=_0x1ec641['x'],_0x1ec641['y0']=_0x1ec641['y'];});}},{'key':_0xb47621('0x21d'),'value':function(_0x10c616){var _0x4a9305=_0xb47621;_0x10c616[_0x4a9305('0x60c')]?(_0x10c616[_0x4a9305('0x56c')]=_0x10c616['children'],_0x10c616['children']=null):(_0x10c616[_0x4a9305('0x60c')]=_0x10c616[_0x4a9305('0x56c')],_0x10c616[_0x4a9305('0x56c')]=null);}},{'key':'getSourceDataById','value':function(_0x52025b){var _0x2a604d=_0xb47621;for(var _0x1fccfb=0x0;_0x1fccfb#_delete_##_edit_##_label_#:#_value_#','columns':[{'title':_0x16f9cf('0x8a2'),'dataIndex':_0x16f9cf('0xf3c'),'key':_0x16f9cf('0xf3c')},{'title':_0x16f9cf('0x5b3'),'dataIndex':_0x16f9cf('0x30'),'key':'value'}],'validation':'none'}],[_0x16f9cf('0x9bc'),{'label':_0x16f9cf('0x5c5'),'type':_0x16f9cf('0x5b2'),'validation':_0x16f9cf('0xea1')}]];}},{'key':_0x5b39d7('0x51c'),'value':function(){var _0x4e2b02=_0x5b39d7;return[[_0x4e2b02('0x921'),{'label':_0x4e2b02('0xfda'),'type':_0x4e2b02('0x15'),'allow-null':!0x0,'source':this[_0x4e2b02('0xd6e')]}]];}},{'key':_0x5b39d7('0xcea'),'value':function(_0x156a2e){var _0x55b116=_0x5b39d7,_0x58bf3f,_0xfdd42a=['',{}],_0x3e1fac=[];if(_0xfdd42a[0x1]['label']=_0x156a2e[_0x55b116('0x65c')],_0xfdd42a[0x1]['type']=_0x156a2e[_0x55b116('0x1ed')],_0xfdd42a[0x1][_0x55b116('0x2c4')]=_0x156a2e[_0x55b116('0x825')],[_0x55b116('0x4ce'),_0x55b116('0x15'),_0x55b116('0xa2d')]['indexOf'](_0x156a2e[_0x55b116('0x1ed')])>=0x0){for(var _0x4ac149 in _0x58bf3f=''===_0x156a2e[_0x55b116('0xb79')]||void 0x0===_0x156a2e[_0x55b116('0xb79')]?[]:JSON[_0x55b116('0x104a')](_0x156a2e[_0x55b116('0xb79')]))_0x3e1fac[_0x55b116('0x91b')]([_0x58bf3f[_0x4ac149][_0x55b116('0x30')],_0x58bf3f[_0x4ac149][_0x55b116('0xf3c')]]);_0xfdd42a[0x1][_0x55b116('0x5f3')]=_0x3e1fac;}return null!=_0x156a2e[_0x55b116('0x825')]&&void 0x0!==_0x156a2e[_0x55b116('0x825')]||(_0x156a2e[_0x55b116('0x825')]=''),null==this['currentElement']||null==this[_0x55b116('0x31')][_0x55b116('0x3ea')]||''===this[_0x55b116('0x31')][_0x55b116('0x3ea')]?_0x156a2e[_0x55b116('0x3ea')]=this[_0x55b116('0xc13')](_0x156a2e[_0x55b116('0x65c')]):_0x156a2e['name']=this[_0x55b116('0x31')][_0x55b116('0x3ea')],_0xfdd42a[0x0]=_0x156a2e[_0x55b116('0x3ea')],_0x156a2e[_0x55b116('0x1016')]=JSON[_0x55b116('0xf0b')](_0xfdd42a),_0x156a2e['display']='Form',_0x156a2e['display_order']=parseInt(_0x156a2e['display_order']),Number[_0x55b116('0x113b')](_0x156a2e[_0x55b116('0x9bc')])||(_0x156a2e['display_order']=0x1),_0x156a2e;}}])&&_0x21a139(_0x50329d[_0x5b39d7('0xe02')],_0x28e0d9),_0x2343bb&&_0x21a139(_0x50329d,_0x2343bb),_0x59e5a8;}(((_0x336071=_0x567142(_0x43d247('0x686')))&&_0x336071['__esModule']?_0x336071:{'default':_0x336071})[_0x43d247('0xf5f')]);_0x364be4[_0x43d247('0x64')]={'CommonCustomFieldAdapter':_0x32c741};},{'../../../api/ReactCustomFieldAdapter':0x3f}],0xc:[function(_0x59866d,_0x2389db,_0x26a8ad){var _0x11966c=_0x5376;'use strict';var _0x1e5c04=_0x59866d(_0x11966c('0x19f'));window['DashboardAdapter']=_0x1e5c04[_0x11966c('0x7a1')];},{'./lib':0xd}],0xd:[function(_0xbdb84c,_0x260606,_0x5ad57a){var _0xe320dc=_0x5376;'use strict';var _0x519f4f=_0x1d176d(_0xbdb84c('react')),_0x1fc33c=_0xbdb84c('antd'),_0x286aa8=_0xbdb84c(_0xe320dc('0x3b7')),_0x382c40=_0x1d176d(_0xbdb84c(_0xe320dc('0x1d5'))),_0x460ce6=_0x1d176d(_0xbdb84c(_0xe320dc('0xee6'))),_0x25d87d=_0x1d176d(_0xbdb84c(_0xe320dc('0x3c9')));function _0x1d176d(_0x5a6ab6){var _0x1dd7e2=_0xe320dc;return _0x5a6ab6&&_0x5a6ab6[_0x1dd7e2('0xce5')]?_0x5a6ab6:{'default':_0x5a6ab6};}function _0x40646f(_0x53ef4b){var _0x56a87e=_0xe320dc;return(_0x40646f=_0x56a87e('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x56a87e('0x57b')]?function(_0x22129c){return typeof _0x22129c;}:function(_0x1b6568){var _0x3dd0cc=_0x56a87e;return _0x1b6568&&_0x3dd0cc('0x106c')==typeof Symbol&&_0x1b6568[_0x3dd0cc('0xad1')]===Symbol&&_0x1b6568!==Symbol[_0x3dd0cc('0xe02')]?_0x3dd0cc('0x43c'):typeof _0x1b6568;})(_0x53ef4b);}function _0x3d56fc(_0x1b4b94,_0x1d8a9f){var _0x509b3c=_0xe320dc;if(!(_0x1b4b94 instanceof _0x1d8a9f))throw new TypeError(_0x509b3c('0xf98'));}function _0x27cd1d(_0x325136,_0x2f9a8e){var _0x344a46=_0xe320dc;for(var _0x51f04c=0x0;_0x51f04c<_0x2f9a8e[_0x344a46('0x13')];_0x51f04c++){var _0x5232b8=_0x2f9a8e[_0x51f04c];_0x5232b8[_0x344a46('0x3bf')]=_0x5232b8['enumerable']||!0x1,_0x5232b8[_0x344a46('0x749')]=!0x0,'value'in _0x5232b8&&(_0x5232b8['writable']=!0x0),Object[_0x344a46('0x9a5')](_0x325136,_0x5232b8[_0x344a46('0x86f')],_0x5232b8);}}function _0x1f1cfd(_0x5181e1,_0x2ef3b5){var _0x18d643=_0xe320dc;return!_0x2ef3b5||'object'!==_0x40646f(_0x2ef3b5)&&_0x18d643('0x106c')!=typeof _0x2ef3b5?function(_0x57d41e){var _0xca7a27=_0x18d643;if(void 0x0===_0x57d41e)throw new ReferenceError(_0xca7a27('0xe0d'));return _0x57d41e;}(_0x5181e1):_0x2ef3b5;}function _0x115b8b(){var _0x225cab=_0xe320dc;if(_0x225cab('0x449')==typeof Reflect||!Reflect[_0x225cab('0x353')])return!0x1;if(Reflect[_0x225cab('0x353')][_0x225cab('0xb21')])return!0x1;if(_0x225cab('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x225cab('0xb6d')][_0x225cab('0xfd2')](Reflect[_0x225cab('0x353')](Date,[],function(){})),!0x0;}catch(_0x2a3129){return!0x1;}}function _0x58e5cb(_0x95e973){var _0x48c5ad=_0xe320dc;return(_0x58e5cb=Object['setPrototypeOf']?Object[_0x48c5ad('0x2d9')]:function(_0x535269){var _0x318494=_0x48c5ad;return _0x535269[_0x318494('0x112c')]||Object['getPrototypeOf'](_0x535269);})(_0x95e973);}function _0x5b1e1d(_0x586b25,_0x4016a3){var _0xa42be4=_0xe320dc;return(_0x5b1e1d=Object[_0xa42be4('0x3df')]||function(_0x12e865,_0x4edbe4){return _0x12e865['__proto__']=_0x4edbe4,_0x12e865;})(_0x586b25,_0x4016a3);}var _0x3ef5b8=function(_0xe3025b){var _0x27fff5=_0xe320dc;!function(_0x4ec577,_0x48115f){var _0x3f4ca4=_0x5376;if('function'!=typeof _0x48115f&&null!==_0x48115f)throw new TypeError(_0x3f4ca4('0x5a0'));_0x4ec577[_0x3f4ca4('0xe02')]=Object[_0x3f4ca4('0xbd0')](_0x48115f&&_0x48115f[_0x3f4ca4('0xe02')],{'constructor':{'value':_0x4ec577,'writable':!0x0,'configurable':!0x0}}),_0x48115f&&_0x5b1e1d(_0x4ec577,_0x48115f);}(_0x2e11ba,_0xe3025b);var _0x344f28,_0x5aa317,_0x42816e,_0x45fac3,_0x360ef6=(_0x344f28=_0x2e11ba,function(){var _0x408431=_0x5376,_0x17f2ed,_0xfc83ed=_0x58e5cb(_0x344f28);if(_0x115b8b()){var _0x378252=_0x58e5cb(this)['constructor'];_0x17f2ed=Reflect[_0x408431('0x353')](_0xfc83ed,arguments,_0x378252);}else _0x17f2ed=_0xfc83ed['apply'](this,arguments);return _0x1f1cfd(this,_0x17f2ed);});function _0x2e11ba(){var _0x3ad98e=_0x5376;return _0x3d56fc(this,_0x2e11ba),_0x360ef6[_0x3ad98e('0x2be')](this,arguments);}return _0x5aa317=_0x2e11ba,(_0x42816e=[{'key':_0x27fff5('0x44a'),'value':function(){return[];}},{'key':'getHeaders','value':function(){return[];}},{'key':'getFormFields','value':function(){return[];}},{'key':'get','value':function(_0x2a4e1c){this['initializeReactDashboard']();}},{'key':_0x27fff5('0xeb1'),'value':function(){var _0x3a4be6=_0x27fff5,_0x1a4786=JSON[_0x3a4be6('0xf0b')]({}),_0x204ab1=[];_0x204ab1[_0x3a4be6('0x88d')]=[],_0x204ab1[_0x3a4be6('0x691')]='getInitDataSuccessCallBack',_0x204ab1[_0x3a4be6('0xc93')]='getInitDataFailCallBack',this[_0x3a4be6('0xd99')](_0x3a4be6('0xeb1'),_0x3a4be6('0xe50'),_0x1a4786,_0x204ab1);}},{'key':_0x27fff5('0xa4e'),'value':function(_0x1c4916){var _0x11646b=_0x27fff5;$(_0x11646b('0xf29'))['html'](''[_0x11646b('0xda9')](_0x1c4916['numberOfEmployees'],_0x11646b('0xa87'))),$(_0x11646b('0xf12'))[_0x11646b('0x276')](''[_0x11646b('0xda9')](_0x1c4916[_0x11646b('0xace')],_0x11646b('0x4ee'))),$(_0x11646b('0x579'))[_0x11646b('0x276')](''[_0x11646b('0xda9')](_0x1c4916[_0x11646b('0x8cb')],_0x11646b('0xb8f'))),$('#numberOfProjects')[_0x11646b('0x276')](''[_0x11646b('0xda9')](_0x1c4916['numberOfProjects'],_0x11646b('0x614'))),$(_0x11646b('0x4f0'))[_0x11646b('0x276')](''[_0x11646b('0xda9')](_0x1c4916[_0x11646b('0xaa3')],_0x11646b('0xfde'))),$('#numberOfLeaves')[_0x11646b('0x276')](''[_0x11646b('0xda9')](_0x1c4916['numberOfLeaves'],_0x11646b('0xf52'))),$(_0x11646b('0x66a'))[_0x11646b('0x276')](_0x1c4916['numberOfTimeEntries']),$(_0x11646b('0x933'))[_0x11646b('0x276')](''[_0x11646b('0xda9')](_0x1c4916[_0x11646b('0x8e6')],_0x11646b('0xa96'))),$(_0x11646b('0xe40'))[_0x11646b('0x276')](''[_0x11646b('0xda9')](_0x1c4916['numberOfJobs'],_0x11646b('0xecf'))),$('#numberOfCourses')['html'](''['concat'](_0x1c4916[_0x11646b('0x174')],'\x20Courses'));}},{'key':_0x27fff5('0x76a'),'value':function(_0xb595c3){}},{'key':_0x27fff5('0x6ef'),'value':function(){var _0x33ed67=_0x27fff5;return _0x519f4f[_0x33ed67('0xf5f')]['createElement'](_0x1fc33c[_0x33ed67('0x79b')],null,_0x519f4f[_0x33ed67('0xf5f')][_0x33ed67('0xfa9')](_0x1fc33c['Col'],{'span':0x8},'\x20'),_0x519f4f[_0x33ed67('0xf5f')][_0x33ed67('0xfa9')](_0x1fc33c['Col'],{'span':0x8},_0x519f4f[_0x33ed67('0xf5f')][_0x33ed67('0xfa9')](_0x1fc33c[_0x33ed67('0x526')],{'size':_0x33ed67('0xf96')})),_0x519f4f[_0x33ed67('0xf5f')][_0x33ed67('0xfa9')](_0x1fc33c[_0x33ed67('0xd19')],{'span':0x8},'\x20'));}},{'key':'initializeReactDashboard','value':function(){var _0xa9e8a7=_0x27fff5;this[_0xa9e8a7('0x1080')](),this[_0xa9e8a7('0x356')](),this[_0xa9e8a7('0xc0c')]();}},{'key':_0x27fff5('0xc0c'),'value':function(){var _0x30793a=_0x27fff5;document[_0x30793a('0x1012')](_0x30793a('0xa8a'))[_0x30793a('0xe81')]['display']='none',_0x382c40['default'][_0x30793a('0xb9b')](this[_0x30793a('0x6ef')](),document[_0x30793a('0x1012')](_0x30793a('0x140'))),this[_0x30793a('0xc83')]['get'](_0x30793a('0xe6e'))[_0x30793a('0x10c6')](function(_0x4b1bc3){var _0x1d0f89=_0x30793a;document['getElementById'](_0x1d0f89('0xa8a'))[_0x1d0f89('0xe81')][_0x1d0f89('0x13d')]=_0x1d0f89('0xc72'),_0x382c40[_0x1d0f89('0xf5f')][_0x1d0f89('0xb9b')](_0x519f4f[_0x1d0f89('0xf5f')][_0x1d0f89('0xfa9')](_0x25d87d[_0x1d0f89('0xf5f')],{'tasks':_0x4b1bc3[_0x1d0f89('0x1016')]}),document['getElementById'](_0x1d0f89('0xf47'))),_0x382c40[_0x1d0f89('0xf5f')]['unmountComponentAtNode'](document[_0x1d0f89('0x1012')]('TaskListLoader'));});}},{'key':'drawEmployeeDistributionChart','value':function(){var _0x4cc61c=_0x27fff5,_0x523605=this;document[_0x4cc61c('0x1012')]('EmployeeDistributionChart')['style'][_0x4cc61c('0x13d')]=_0x4cc61c('0xea1'),_0x382c40[_0x4cc61c('0xf5f')][_0x4cc61c('0xb9b')](this['getSpinner'](),document[_0x4cc61c('0x1012')](_0x4cc61c('0x767'))),this[_0x4cc61c('0xc83')][_0x4cc61c('0xd12')](_0x4cc61c('0xabc'))['then'](function(_0x4405ca){var _0x29b0aa=_0x4cc61c,_0x3c54ca=Object['keys'](_0x4405ca[_0x29b0aa('0x1016')])[_0x29b0aa('0xd8e')](function(_0x5c5660){var _0xfde4dd=_0x29b0aa;return{'type':_0x5c5660[_0xfde4dd('0xcaf')](0x0)[_0xfde4dd('0xa56')]()+_0x5c5660['slice'](0x1),'value':_0x4405ca[_0xfde4dd('0x1016')][_0x5c5660]};}),_0x66bda0={'forceFit':!0x0,'title':{'visible':!0x0,'text':_0x523605['gt'](_0x29b0aa('0x70'))},'description':{'visible':!0x1,'text':''},'statistic':{'visible':!0x0,'content':{'value':_0x3c54ca[_0x29b0aa('0xd48')](function(_0x36d750,_0x11b50b){var _0x4662bb=_0x29b0aa;return _0x36d750+_0x11b50b[_0x4662bb('0x30')];},0x0),'name':_0x523605['gt'](_0x29b0aa('0x71b'))}},'legend':{'visible':!0x0,'position':_0x29b0aa('0xee4')},'radius':0.8,'padding':'auto','data':_0x3c54ca,'angleField':'value','colorField':_0x29b0aa('0x921'),'label':{'visible':!0x0,'type':'outer','offset':0x14}};_0x382c40[_0x29b0aa('0xf5f')][_0x29b0aa('0x542')](document['getElementById'](_0x29b0aa('0x767'))),document[_0x29b0aa('0x1012')](_0x29b0aa('0x36'))[_0x29b0aa('0xe81')][_0x29b0aa('0x13d')]=_0x29b0aa('0xc72'),new _0x286aa8[(_0x29b0aa('0x4b9'))](document[_0x29b0aa('0x1012')]('EmployeeDistributionChart'),_0x66bda0)[_0x29b0aa('0xb9b')]();});}},{'key':'drawOnlineOfflineEmployeeChart','value':function(){var _0x2ba361=_0x27fff5,_0x525178=this;document[_0x2ba361('0x1012')]('EmployeeOnlineOfflineChart')['style'][_0x2ba361('0x13d')]=_0x2ba361('0xea1'),_0x382c40['default'][_0x2ba361('0xb9b')](this['getSpinner'](),document[_0x2ba361('0x1012')]('EmployeeOnlineOfflineChartLoader')),this[_0x2ba361('0xc83')][_0x2ba361('0xd12')]('charts/employee-check-ins')['then'](function(_0x4d9f6b){var _0x5628f1=_0x2ba361,_0x4d1146=Object['keys'](_0x4d9f6b[_0x5628f1('0x1016')])[_0x5628f1('0xd8e')](function(_0x2e65fe){var _0x1eb7d7=_0x5628f1;return{'type':_0x2e65fe,'value':_0x4d9f6b[_0x1eb7d7('0x1016')][_0x2e65fe]};}),_0x1c147f={'forceFit':!0x0,'title':{'visible':!0x0,'text':_0x525178['gt'](_0x5628f1('0xacd'))},'description':{'visible':!0x1,'text':''},'statistic':{'visible':!0x0,'content':{'value':_0x4d1146['reduce'](function(_0x361929,_0x1622d2){return _0x361929+_0x1622d2['value'];},0x0),'name':_0x525178['gt'](_0x5628f1('0x71b'))}},'legend':{'visible':!0x0,'position':_0x5628f1('0xee4')},'radius':0.8,'padding':_0x5628f1('0xcfb'),'data':_0x4d1146,'angleField':_0x5628f1('0x30'),'colorField':'type'};_0x382c40[_0x5628f1('0xf5f')][_0x5628f1('0x542')](document[_0x5628f1('0x1012')](_0x5628f1('0x73b'))),document[_0x5628f1('0x1012')]('EmployeeOnlineOfflineChart')[_0x5628f1('0xe81')]['display']=_0x5628f1('0xc72'),new _0x286aa8[(_0x5628f1('0xa48'))](document[_0x5628f1('0x1012')](_0x5628f1('0x7c3')),_0x1c147f)[_0x5628f1('0xb9b')]();});}},{'key':_0x27fff5('0x9c'),'value':function(){var _0x2a034d=_0x27fff5,_0x124135=this;document['getElementById'](_0x2a034d('0xa75'))[_0x2a034d('0xe81')][_0x2a034d('0x13d')]=_0x2a034d('0xea1'),_0x382c40['default']['render'](this[_0x2a034d('0x6ef')](),document[_0x2a034d('0x1012')](_0x2a034d('0xb8'))),this['apiClient'][_0x2a034d('0xd12')]('charts/company-leave-entitlement')[_0x2a034d('0x10c6')](function(_0x5e3e4f){var _0x3fc12f=_0x2a034d,_0x2b3098=Object[_0x3fc12f('0x110e')](_0x5e3e4f['data'])[_0x3fc12f('0xd8e')](function(_0x44a764){var _0x51418b=_0x3fc12f;return{'type':_0x44a764,'value':_0x5e3e4f[_0x51418b('0x1016')][_0x44a764]};}),_0x2e95a7={'forceFit':!0x0,'title':{'visible':!0x0,'text':_0x124135['gt'](_0x3fc12f('0xd7'))},'description':{'visible':!0x1,'text':''},'statistic':{'visible':!0x0,'content':{'value':_0x2b3098['reduce'](function(_0x1146e5,_0x1ed69a){return _0x1146e5+_0x1ed69a['value'];},0x0),'name':_0x124135['gt']('Total')}},'legend':{'visible':!0x0,'position':_0x3fc12f('0xee4')},'radius':0.8,'padding':_0x3fc12f('0xcfb'),'data':_0x2b3098,'angleField':_0x3fc12f('0x30'),'colorField':_0x3fc12f('0x921')};_0x382c40['default'][_0x3fc12f('0x542')](document[_0x3fc12f('0x1012')](_0x3fc12f('0xb8'))),document[_0x3fc12f('0x1012')](_0x3fc12f('0xa75'))[_0x3fc12f('0xe81')]['display']=_0x3fc12f('0xc72'),new _0x286aa8['Donut'](document[_0x3fc12f('0x1012')](_0x3fc12f('0xa75')),_0x2e95a7)[_0x3fc12f('0xb9b')]();});}}])&&_0x27cd1d(_0x5aa317['prototype'],_0x42816e),_0x45fac3&&_0x27cd1d(_0x5aa317,_0x45fac3),_0x2e11ba;}(_0x460ce6[_0xe320dc('0xf5f')]);_0x260606[_0xe320dc('0x64')]={'DashboardAdapter':_0x3ef5b8};},{'../../../api/AdapterBase':0x34,'../../../components/TaskList':0x50,'@antv/g2plot':'@antv/g2plot','antd':'antd','react':_0x548f48('0xb11'),'react-dom':_0x548f48('0x1d5')}],0xe:[function(_0x20b0d4,_0x3c4e5b,_0x355ffa){var _0x3c1c76=_0x548f48;'use strict';var _0x34c248=_0x20b0d4(_0x3c1c76('0x19f'));window[_0x3c1c76('0x10fa')]=_0x34c248[_0x3c1c76('0x10fa')],window[_0x3c1c76('0x217')]=_0x34c248['DataImportFileAdapter'];},{'./lib':0xf}],0xf:[function(_0x25d8db,_0x17c4a8,_0x43c312){var _0x68da33=_0x548f48;'use strict';var _0x35182a,_0x5103d1=(_0x35182a=_0x25d8db(_0x68da33('0xee6')))&&_0x35182a['__esModule']?_0x35182a:{'default':_0x35182a};function _0x5a9d99(_0x3bd861){return(_0x5a9d99='function'==typeof Symbol&&'symbol'==typeof Symbol['iterator']?function(_0x7fde17){return typeof _0x7fde17;}:function(_0x1d3801){var _0x2b88fb=_0x5376;return _0x1d3801&&'function'==typeof Symbol&&_0x1d3801[_0x2b88fb('0xad1')]===Symbol&&_0x1d3801!==Symbol['prototype']?_0x2b88fb('0x43c'):typeof _0x1d3801;})(_0x3bd861);}function _0x5e5fa0(_0x4f71d1,_0x404ecb){if(!(_0x4f71d1 instanceof _0x404ecb))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x1aeac5(_0x32177d,_0x4ca253){var _0x372975=_0x68da33;for(var _0x281c8b=0x0;_0x281c8b<_0x4ca253[_0x372975('0x13')];_0x281c8b++){var _0x3af648=_0x4ca253[_0x281c8b];_0x3af648['enumerable']=_0x3af648['enumerable']||!0x1,_0x3af648['configurable']=!0x0,'value'in _0x3af648&&(_0x3af648[_0x372975('0x820')]=!0x0),Object[_0x372975('0x9a5')](_0x32177d,_0x3af648[_0x372975('0x86f')],_0x3af648);}}function _0x2e70ea(_0x1089ce,_0x3d5171,_0x5863ea){return _0x3d5171&&_0x1aeac5(_0x1089ce['prototype'],_0x3d5171),_0x5863ea&&_0x1aeac5(_0x1089ce,_0x5863ea),_0x1089ce;}function _0x465450(_0x28bc54){return function(){var _0x56b131=_0x5376,_0x568b27,_0x1ac3a8=_0x1c0225(_0x28bc54);if(_0x501f40()){var _0x253539=_0x1c0225(this)[_0x56b131('0xad1')];_0x568b27=Reflect[_0x56b131('0x353')](_0x1ac3a8,arguments,_0x253539);}else _0x568b27=_0x1ac3a8[_0x56b131('0x2be')](this,arguments);return _0x51da9d(this,_0x568b27);};}function _0x51da9d(_0x109bce,_0x532b99){var _0x2c37d4=_0x68da33;return!_0x532b99||_0x2c37d4('0xb3f')!==_0x5a9d99(_0x532b99)&&_0x2c37d4('0x106c')!=typeof _0x532b99?function(_0x4fc919){if(void 0x0===_0x4fc919)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x4fc919;}(_0x109bce):_0x532b99;}function _0x501f40(){var _0x7dc7f5=_0x68da33;if(_0x7dc7f5('0x449')==typeof Reflect||!Reflect[_0x7dc7f5('0x353')])return!0x1;if(Reflect[_0x7dc7f5('0x353')][_0x7dc7f5('0xb21')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date['prototype'][_0x7dc7f5('0xb6d')][_0x7dc7f5('0xfd2')](Reflect[_0x7dc7f5('0x353')](Date,[],function(){})),!0x0;}catch(_0x4af7da){return!0x1;}}function _0x1c0225(_0x25d98c){var _0x4ce614=_0x68da33;return(_0x1c0225=Object[_0x4ce614('0x3df')]?Object[_0x4ce614('0x2d9')]:function(_0x23a584){var _0x539fba=_0x4ce614;return _0x23a584[_0x539fba('0x112c')]||Object['getPrototypeOf'](_0x23a584);})(_0x25d98c);}function _0x64c5df(_0x21e3f2,_0x4a9190){var _0x3977af=_0x68da33;if(_0x3977af('0x106c')!=typeof _0x4a9190&&null!==_0x4a9190)throw new TypeError(_0x3977af('0x5a0'));_0x21e3f2['prototype']=Object[_0x3977af('0xbd0')](_0x4a9190&&_0x4a9190[_0x3977af('0xe02')],{'constructor':{'value':_0x21e3f2,'writable':!0x0,'configurable':!0x0}}),_0x4a9190&&_0x45503e(_0x21e3f2,_0x4a9190);}function _0x45503e(_0x5f0495,_0x329085){return(_0x45503e=Object['setPrototypeOf']||function(_0x24e2bc,_0x1b5e2a){var _0x225f39=_0x5376;return _0x24e2bc[_0x225f39('0x112c')]=_0x1b5e2a,_0x24e2bc;})(_0x5f0495,_0x329085);}var _0x510829=function(_0x4719e0){var _0x511fc5=_0x68da33;_0x64c5df(_0x28c029,_0x4719e0);var _0xd048a3=_0x465450(_0x28c029);function _0x28c029(){return _0x5e5fa0(this,_0x28c029),_0xd048a3['apply'](this,arguments);}return _0x2e70ea(_0x28c029,[{'key':'getDataMapping','value':function(){var _0x1a0771=_0x5376;return['id',_0x1a0771('0x3ea'),_0x1a0771('0x792'),_0x1a0771('0x1093')];}},{'key':_0x511fc5('0x95e'),'value':function(){var _0xa9dccd=_0x511fc5;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0xa9dccd('0x956')},{'sTitle':_0xa9dccd('0xd87')}];}},{'key':_0x511fc5('0x10d7'),'value':function(){var _0x3b0ba8=_0x511fc5;return[['id',{'label':'ID','type':_0x3b0ba8('0x10f4')}],[_0x3b0ba8('0x3ea'),{'label':'Name','type':_0x3b0ba8('0x5b2'),'validation':''}],['dataType',{'label':'Data\x20Type','type':_0x3b0ba8('0x4ce'),'sort':_0x3b0ba8('0xea1'),'source':[[_0x3b0ba8('0xfa6'),_0x3b0ba8('0x9cf')],['AttendanceDataImporter',_0x3b0ba8('0x9a1')],[_0x3b0ba8('0x1da'),_0x3b0ba8('0x748')],[_0x3b0ba8('0xd72'),_0x3b0ba8('0x470')],[_0x3b0ba8('0xdc'),'Common\x20Data\x20Importer']]}],[_0x3b0ba8('0x644'),{'label':_0x3b0ba8('0xfda'),'type':'select','sort':_0x3b0ba8('0xea1'),'allow-null':!0x0,'null-label':_0x3b0ba8('0x37b'),'source':[[_0x3b0ba8('0xac6'),_0x3b0ba8('0x906')],[_0x3b0ba8('0x983'),_0x3b0ba8('0x209')],['EmployeeExpense','Employee\x20Expenses'],[_0x3b0ba8('0xcf0'),_0x3b0ba8('0xb7e')],[_0x3b0ba8('0xd64'),_0x3b0ba8('0x3c0')],[_0x3b0ba8('0x6ee'),_0x3b0ba8('0x2b7')],[_0x3b0ba8('0x61c'),_0x3b0ba8('0x512')],[_0x3b0ba8('0x94f'),_0x3b0ba8('0x619')],[_0x3b0ba8('0xd53'),_0x3b0ba8('0x3c4')],[_0x3b0ba8('0x6d'),_0x3b0ba8('0x6d')],['Industry',_0x3b0ba8('0x6d')],[_0x3b0ba8('0x35e'),'Emergency\x20Contacts'],[_0x3b0ba8('0xff5'),_0x3b0ba8('0xff5')],[_0x3b0ba8('0x7d7'),_0x3b0ba8('0x7d7')],[_0x3b0ba8('0x97'),_0x3b0ba8('0x109c')],['PayFrequency','Pay\x20Frequency'],['PayrollEmployee',_0x3b0ba8('0x38c')],[_0x3b0ba8('0x556'),_0x3b0ba8('0xbe0')],['EmployeeSalary','Employee\x20Salary'],['CompanyStructure','Company\x20Structure']]}],['details',{'label':_0x3b0ba8('0xd87'),'type':'textarea','validation':_0x3b0ba8('0xea1')}],[_0x3b0ba8('0x4b2'),{'label':_0x3b0ba8('0x538'),'type':_0x3b0ba8('0xc5b'),'form':[['name',{'label':_0x3b0ba8('0x3ef'),'type':_0x3b0ba8('0x5b2'),'validation':''}],[_0x3b0ba8('0xf6d'),{'label':'Field\x20Title','type':_0x3b0ba8('0x5b2'),'validation':_0x3b0ba8('0xea1')}],[_0x3b0ba8('0x921'),{'label':_0x3b0ba8('0x5bc'),'type':_0x3b0ba8('0x4ce'),'sort':'none','source':[[_0x3b0ba8('0x1cf'),_0x3b0ba8('0x1cf')],['Reference',_0x3b0ba8('0xad2')]]}],[_0x3b0ba8('0x7fe'),{'label':_0x3b0ba8('0x265'),'type':_0x3b0ba8('0x4ce'),'allow-null':!0x0,'null-label':_0x3b0ba8('0x82f'),'source':[[_0x3b0ba8('0x35e'),_0x3b0ba8('0xef5')],[_0x3b0ba8('0xff5'),_0x3b0ba8('0xff5')],[_0x3b0ba8('0x7d7'),_0x3b0ba8('0x7d7')],[_0x3b0ba8('0x97'),_0x3b0ba8('0x97')],[_0x3b0ba8('0xf2a'),_0x3b0ba8('0x489')],[_0x3b0ba8('0x78a'),'Pay\x20Grade'],['EmploymentStatus',_0x3b0ba8('0xd36')],['CompanyStructure',_0x3b0ba8('0xd57')],[_0x3b0ba8('0x10f9'),_0x3b0ba8('0x10f9')],[_0x3b0ba8('0xe51'),_0x3b0ba8('0xf0e')],['Industry','Industry'],[_0x3b0ba8('0x7c2'),'CurrencyType'],[_0x3b0ba8('0xca'),_0x3b0ba8('0xca')],[_0x3b0ba8('0x7a4'),_0x3b0ba8('0x7a4')],[_0x3b0ba8('0xc1'),_0x3b0ba8('0xabd')],[_0x3b0ba8('0xf1'),_0x3b0ba8('0x969')],['ExperienceLevel',_0x3b0ba8('0xc61')],[_0x3b0ba8('0xe32'),_0x3b0ba8('0xe32')],[_0x3b0ba8('0x851'),_0x3b0ba8('0x38b')],[_0x3b0ba8('0x983'),_0x3b0ba8('0x983')],['Language',_0x3b0ba8('0x483')],['LeaveGroup',_0x3b0ba8('0x67a')],[_0x3b0ba8('0xa51'),'Leave\x20Period'],[_0x3b0ba8('0x2cf'),_0x3b0ba8('0x10c9')],[_0x3b0ba8('0x76c'),_0x3b0ba8('0xbfe')],[_0x3b0ba8('0xb43'),'Overtime\x20Category'],['Project',_0x3b0ba8('0xcf0')],[_0x3b0ba8('0x94f'),_0x3b0ba8('0x94f')],[_0x3b0ba8('0xfd1'),_0x3b0ba8('0x2ed')],[_0x3b0ba8('0x556'),_0x3b0ba8('0x9fe')],['SalaryComponentType',_0x3b0ba8('0x6b5')],[_0x3b0ba8('0xdfc'),_0x3b0ba8('0xdfc')],[_0x3b0ba8('0xdcd'),_0x3b0ba8('0xdcd')],[_0x3b0ba8('0x10b2'),_0x3b0ba8('0x1088')],['Benifit',_0x3b0ba8('0x8e2')],[_0x3b0ba8('0x259'),_0x3b0ba8('0x259')],[_0x3b0ba8('0x81e'),'Country'],[_0x3b0ba8('0xd53'),_0x3b0ba8('0xd53')],[_0x3b0ba8('0x19'),_0x3b0ba8('0x19')],[_0x3b0ba8('0x682'),_0x3b0ba8('0x682')]]}],[_0x3b0ba8('0x112d'),{'label':'Depends\x20On\x20Field','type':_0x3b0ba8('0x4ce'),'allow-null':!0x0,'null-label':_0x3b0ba8('0x82f'),'source':[['id','id'],[_0x3b0ba8('0x61'),_0x3b0ba8('0x61')],['name',_0x3b0ba8('0x3ea')],['code',_0x3b0ba8('0x9e3')],[_0x3b0ba8('0xf6d'),_0x3b0ba8('0xf6d')],[_0x3b0ba8('0x10d1'),_0x3b0ba8('0x10d1')]]}],[_0x3b0ba8('0x4a4'),{'label':_0x3b0ba8('0xb6e'),'type':_0x3b0ba8('0x4ce'),'validation':'','source':[['No','No'],['Yes','Yes']]}],[_0x3b0ba8('0x37c'),{'label':_0x3b0ba8('0x6c2'),'type':_0x3b0ba8('0x5b2')}],[_0x3b0ba8('0x8b8'),{'label':_0x3b0ba8('0xf08'),'type':_0x3b0ba8('0x5b2')}]],'html':_0x3b0ba8('0xbd7'),'validation':_0x3b0ba8('0xea1'),'custom-validate-function':function(_0x4aee56){var _0x5661e8=_0x3b0ba8,_0x405127={};return _0x405127[_0x5661e8('0xfcb')]=_0x4aee56,_0x405127[_0x5661e8('0x9ff')]=!0x0,_0x5661e8('0xad2')===_0x4aee56['type']?_0x5661e8('0x855')===_0x4aee56[_0x5661e8('0x7fe')]?(_0x405127['message']=_0x5661e8('0xe84'),_0x405127[_0x5661e8('0x9ff')]=!0x1):null!=dependOnField&&_0x5661e8('0x855')!==dependOnField||(_0x405127[_0x5661e8('0x773')]=_0x5661e8('0x4d6'),_0x405127[_0x5661e8('0x9ff')]=!0x1):_0x5661e8('0x1cf')===_0x4aee56[_0x5661e8('0x921')]&&('NULL'!==_0x4aee56['dependOn']?(_0x405127[_0x5661e8('0x773')]=_0x5661e8('0xe6d'),_0x405127[_0x5661e8('0x9ff')]=!0x1):null!=dependOnField&&_0x5661e8('0x855')!==dependOnField||(_0x405127['message']=_0x5661e8('0x1082'),_0x405127['valid']=!0x1)),_0x405127;}}]];}},{'key':'getActionButtonsHtml','value':function(_0x43db3d,_0x4d61e9){var _0x241226=_0x511fc5,_0x2b3ed9=_0x241226('0x50d');return _0x2b3ed9=this['showAddNew']?_0x2b3ed9[_0x241226('0xd06')](_0x241226('0x583'),_0x241226('0xb05')):_0x2b3ed9['replace'](_0x241226('0x583'),''),_0x2b3ed9=this['showDelete']?_0x2b3ed9['replace']('_delete_',_0x241226('0x9a6')):_0x2b3ed9['replace']('_delete_',''),_0x2b3ed9=(_0x2b3ed9=(_0x2b3ed9=(_0x2b3ed9=(_0x2b3ed9=this['showEdit']?_0x2b3ed9[_0x241226('0xd06')](_0x241226('0x6d7'),_0x241226('0xbd4')):_0x2b3ed9[_0x241226('0xd06')](_0x241226('0x6d7'),''))[_0x241226('0xd06')](_0x241226('0xac3'),_0x241226('0x853')))['replace'](/_id_/g,_0x43db3d))['replace'](/_status_/g,_0x4d61e9[0x6]))[_0x241226('0xd06')](/_BASE_/g,this['baseUrl']);}},{'key':_0x511fc5('0x5fd'),'value':function(_0x32220e){var _0x3949db=_0x511fc5,_0xf6e3d7={'t':this[_0x3949db('0x2ac')],'sa':'downloadTemplate','mod':'admin=data'};_0xf6e3d7[_0x3949db('0xe8c')]=JSON[_0x3949db('0xf0b')]({'id':_0x32220e});var _0x22b733=modJs[_0x3949db('0x8af')]('ca',_0xf6e3d7);window['open'](_0x22b733,_0x3949db('0x340'));}}]),_0x28c029;}(_0x5103d1[_0x68da33('0xf5f')]),_0x3127f9=function(_0xab1bf1){var _0x15f606=_0x68da33;_0x64c5df(_0x33b4ef,_0xab1bf1);var _0x521d44=_0x465450(_0x33b4ef);function _0x33b4ef(){var _0x2666ee=_0x5376;return _0x5e5fa0(this,_0x33b4ef),_0x521d44[_0x2666ee('0x2be')](this,arguments);}return _0x2e70ea(_0x33b4ef,[{'key':_0x15f606('0x44a'),'value':function(){var _0xa00673=_0x15f606;return['id','name',_0xa00673('0x38'),'status'];}},{'key':'getHeaders','value':function(){var _0x2b1884=_0x15f606;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x2b1884('0xdde')},{'sTitle':_0x2b1884('0xfdf')},{'sTitle':_0x2b1884('0x600')}];}},{'key':_0x15f606('0x10d7'),'value':function(){var _0x18ef73=_0x15f606;return[['id',{'label':'ID','type':_0x18ef73('0x10f4')}],[_0x18ef73('0x3ea'),{'label':_0x18ef73('0xdde'),'type':_0x18ef73('0x5b2'),'validation':''}],[_0x18ef73('0x38'),{'label':'Data\x20Import\x20Definitions','type':_0x18ef73('0x4ce'),'remote-source':[_0x18ef73('0xbee'),'id','name']}],['file',{'label':_0x18ef73('0x822'),'type':'fileupload','validation':'','filetypes':_0x18ef73('0xf75')}],[_0x18ef73('0x1093'),{'label':'Last\x20Export\x20Result','type':_0x18ef73('0x7ea'),'validation':_0x18ef73('0xea1')}]];}},{'key':'getActionButtonsHtml','value':function(_0x50a5a5,_0x3d2485){var _0x4fe179=_0x15f606,_0x5f511b=_0x4fe179('0x63d');return _0x5f511b=this['showAddNew']?_0x5f511b[_0x4fe179('0xd06')](_0x4fe179('0x583'),''):_0x5f511b[_0x4fe179('0xd06')](_0x4fe179('0x583'),''),_0x5f511b=this['showDelete']?_0x5f511b[_0x4fe179('0xd06')](_0x4fe179('0xac2'),''):_0x5f511b[_0x4fe179('0xd06')](_0x4fe179('0xac2'),''),_0x5f511b=this['showEdit']?_0x5f511b[_0x4fe179('0xd06')](_0x4fe179('0x6d7'),_0x4fe179('0xbd4')):_0x5f511b['replace']('_edit_',''),_0x5f511b=(_0x5f511b=(_0x5f511b=(_0x5f511b=_0x4fe179('0x472')===_0x3d2485[0x3]?_0x5f511b[_0x4fe179('0xd06')](_0x4fe179('0x6a1'),_0x4fe179('0x403')):_0x5f511b['replace'](_0x4fe179('0x6a1'),''))[_0x4fe179('0xd06')](/_id_/g,_0x50a5a5))[_0x4fe179('0xd06')](/_status_/g,_0x3d2485[0x6]))[_0x4fe179('0xd06')](/_BASE_/g,this[_0x4fe179('0x598')]);}},{'key':_0x15f606('0xc3a'),'value':function(_0x5654f3){var _0x394a16=_0x15f606,_0x39f589={'id':_0x5654f3},_0x441a2d=JSON['stringify'](_0x39f589),_0x3dd773=[];_0x3dd773['callBackData']=[],_0x3dd773[_0x394a16('0x691')]=_0x394a16('0x706'),_0x3dd773[_0x394a16('0xc93')]=_0x394a16('0x681'),this[_0x394a16('0xd99')]('processDataFile',_0x394a16('0x154'),_0x441a2d,_0x3dd773);}},{'key':_0x15f606('0x706'),'value':function(_0x5085c4){var _0x10eb8a=_0x15f606;this[_0x10eb8a('0xaa4')](_0x10eb8a('0xd5c'),_0x10eb8a('0x3a1')),this[_0x10eb8a('0xd12')]([]);}},{'key':_0x15f606('0x681'),'value':function(_0x319581){var _0x4dd704=_0x15f606;this[_0x4dd704('0xaa4')]('Error',_0x4dd704('0xf61')[_0x4dd704('0xda9')](_0x319581));}}]),_0x33b4ef;}(_0x5103d1[_0x68da33('0xf5f')]);_0x17c4a8['exports']={'DataImportAdapter':_0x510829,'DataImportFileAdapter':_0x3127f9};},{'../../../api/AdapterBase':0x34}],0x10:[function(_0x445047,_0x56cc76,_0x32d45b){var _0x1003d2=_0x548f48;'use strict';var _0x3a05b2=_0x445047(_0x1003d2('0x19f'));window['DocumentAdapter']=_0x3a05b2['DocumentAdapter'],window[_0x1003d2('0xe95')]=_0x3a05b2[_0x1003d2('0xe95')],window[_0x1003d2('0x916')]=_0x3a05b2[_0x1003d2('0x916')];},{'./lib':0x11}],0x11:[function(_0x212d02,_0x32828f,_0x2c71e9){var _0x488dd4=_0x548f48;'use strict';var _0x346fd1,_0x57b1d0=(_0x346fd1=_0x212d02(_0x488dd4('0xee6')))&&_0x346fd1[_0x488dd4('0xce5')]?_0x346fd1:{'default':_0x346fd1};function _0x2f7340(_0x373ce5){var _0x561fdf=_0x488dd4;return(_0x2f7340=_0x561fdf('0x106c')==typeof Symbol&&_0x561fdf('0x43c')==typeof Symbol['iterator']?function(_0x4b9a1b){return typeof _0x4b9a1b;}:function(_0x26e464){var _0x34199e=_0x561fdf;return _0x26e464&&_0x34199e('0x106c')==typeof Symbol&&_0x26e464[_0x34199e('0xad1')]===Symbol&&_0x26e464!==Symbol[_0x34199e('0xe02')]?_0x34199e('0x43c'):typeof _0x26e464;})(_0x373ce5);}function _0x31cffa(_0x19fdd1,_0xa40a81){var _0x3fe56e=_0x488dd4;if(!(_0x19fdd1 instanceof _0xa40a81))throw new TypeError(_0x3fe56e('0xf98'));}function _0x3bc567(_0x138d73,_0x283eae){var _0x49fa5b=_0x488dd4;for(var _0x3127c8=0x0;_0x3127c8<_0x283eae[_0x49fa5b('0x13')];_0x3127c8++){var _0x4b35a4=_0x283eae[_0x3127c8];_0x4b35a4[_0x49fa5b('0x3bf')]=_0x4b35a4[_0x49fa5b('0x3bf')]||!0x1,_0x4b35a4['configurable']=!0x0,_0x49fa5b('0x30')in _0x4b35a4&&(_0x4b35a4[_0x49fa5b('0x820')]=!0x0),Object[_0x49fa5b('0x9a5')](_0x138d73,_0x4b35a4[_0x49fa5b('0x86f')],_0x4b35a4);}}function _0x398816(_0x2d56ac,_0x141c30,_0x36cc1d){var _0x5bdd17=_0x488dd4;return _0x141c30&&_0x3bc567(_0x2d56ac[_0x5bdd17('0xe02')],_0x141c30),_0x36cc1d&&_0x3bc567(_0x2d56ac,_0x36cc1d),_0x2d56ac;}function _0x27ff16(_0x13cb99){return function(){var _0x38a776=_0x5376,_0x3f5719,_0x2c05f1=_0x27ab9e(_0x13cb99);if(_0x322824()){var _0x57d126=_0x27ab9e(this)['constructor'];_0x3f5719=Reflect['construct'](_0x2c05f1,arguments,_0x57d126);}else _0x3f5719=_0x2c05f1[_0x38a776('0x2be')](this,arguments);return _0xfcb5ca(this,_0x3f5719);};}function _0xfcb5ca(_0x5012fc,_0x404e77){var _0x21ec19=_0x488dd4;return!_0x404e77||_0x21ec19('0xb3f')!==_0x2f7340(_0x404e77)&&_0x21ec19('0x106c')!=typeof _0x404e77?function(_0x4a48ed){var _0x4bdb53=_0x21ec19;if(void 0x0===_0x4a48ed)throw new ReferenceError(_0x4bdb53('0xe0d'));return _0x4a48ed;}(_0x5012fc):_0x404e77;}function _0x322824(){var _0x21a56e=_0x488dd4;if(_0x21a56e('0x449')==typeof Reflect||!Reflect[_0x21a56e('0x353')])return!0x1;if(Reflect[_0x21a56e('0x353')][_0x21a56e('0xb21')])return!0x1;if(_0x21a56e('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x21a56e('0xb6d')]['call'](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x3a8f3f){return!0x1;}}function _0x27ab9e(_0x366087){var _0x1b9b6d=_0x488dd4;return(_0x27ab9e=Object['setPrototypeOf']?Object[_0x1b9b6d('0x2d9')]:function(_0x34e962){var _0x31f7c2=_0x1b9b6d;return _0x34e962[_0x31f7c2('0x112c')]||Object[_0x31f7c2('0x2d9')](_0x34e962);})(_0x366087);}function _0x2ce80c(_0x1a8774,_0x2cd606){var _0xfbed02=_0x488dd4;if(_0xfbed02('0x106c')!=typeof _0x2cd606&&null!==_0x2cd606)throw new TypeError(_0xfbed02('0x5a0'));_0x1a8774[_0xfbed02('0xe02')]=Object[_0xfbed02('0xbd0')](_0x2cd606&&_0x2cd606[_0xfbed02('0xe02')],{'constructor':{'value':_0x1a8774,'writable':!0x0,'configurable':!0x0}}),_0x2cd606&&_0x54cacf(_0x1a8774,_0x2cd606);}function _0x54cacf(_0x2f6c1f,_0xf08bf1){var _0x1608c4=_0x488dd4;return(_0x54cacf=Object[_0x1608c4('0x3df')]||function(_0x550f92,_0x2fbff9){return _0x550f92['__proto__']=_0x2fbff9,_0x550f92;})(_0x2f6c1f,_0xf08bf1);}var _0x457daa=function(_0x265ca1){var _0x43b3d1=_0x488dd4;_0x2ce80c(_0x4237d2,_0x265ca1);var _0x5ba193=_0x27ff16(_0x4237d2);function _0x4237d2(){var _0x32f5d0=_0x5376;return _0x31cffa(this,_0x4237d2),_0x5ba193[_0x32f5d0('0x2be')](this,arguments);}return _0x398816(_0x4237d2,[{'key':'getDataMapping','value':function(){return['id','name','details'];}},{'key':_0x43b3d1('0x95e'),'value':function(){var _0x5c3030=_0x43b3d1;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x5c3030('0xdde')},{'sTitle':_0x5c3030('0xd87')}];}},{'key':_0x43b3d1('0x10d7'),'value':function(){var _0x979093=_0x43b3d1;return[['id',{'label':'ID','type':'hidden'}],[_0x979093('0x3ea'),{'label':_0x979093('0xdde'),'type':_0x979093('0x5b2'),'validation':''}],['expire_notification',{'label':_0x979093('0xc3e'),'type':_0x979093('0x4ce'),'source':[[_0x979093('0x1041'),_0x979093('0x1041')],['No','No']]}],['expire_notification_month',{'label':'Notify\x20Expiry\x20Before\x20One\x20Month','type':_0x979093('0x4ce'),'source':[[_0x979093('0x1041'),_0x979093('0x1041')],['No','No']]}],[_0x979093('0x1101'),{'label':_0x979093('0x3fb'),'type':'select','source':[['Yes','Yes'],['No','No']]}],[_0x979093('0xe5b'),{'label':_0x979093('0xb96'),'type':'select','source':[[_0x979093('0x1041'),'Yes'],['No','No']]}],['share_with_employee',{'label':'Share\x20with\x20Employee','type':_0x979093('0x4ce'),'source':[['Yes',_0x979093('0x1041')],['No','No']]}],['details',{'label':'Details','type':_0x979093('0x7ea'),'validation':_0x979093('0xea1')}]];}},{'key':'getHelpLink','value':function(){var _0x4ddab3=_0x43b3d1;return _0x4ddab3('0xc3c');}}]),_0x4237d2;}(_0x57b1d0[_0x488dd4('0xf5f')]),_0x14be12=function(_0x4fa436){var _0x1d7926=_0x488dd4;_0x2ce80c(_0x24d3e8,_0x4fa436);var _0x342935=_0x27ff16(_0x24d3e8);function _0x24d3e8(){var _0x59b1ad=_0x5376;return _0x31cffa(this,_0x24d3e8),_0x342935[_0x59b1ad('0x2be')](this,arguments);}return _0x398816(_0x24d3e8,[{'key':_0x1d7926('0x44a'),'value':function(){var _0x266b15=_0x1d7926;return['id',_0x266b15('0x3ea'),_0x266b15('0x1093'),'status'];}},{'key':'getHeaders','value':function(){var _0x2fcb4a=_0x1d7926;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x2fcb4a('0xdde')},{'sTitle':_0x2fcb4a('0xd87')},{'sTitle':_0x2fcb4a('0x600')}];}},{'key':_0x1d7926('0x10d7'),'value':function(){var _0x32bb60=_0x1d7926;return[['id',{'label':'ID','type':_0x32bb60('0x10f4')}],['name',{'label':_0x32bb60('0xdde'),'type':_0x32bb60('0x5b2'),'validation':''}],['details',{'label':_0x32bb60('0xd87'),'type':'textarea','validation':_0x32bb60('0xea1')}],[_0x32bb60('0x75e'),{'label':_0x32bb60('0x600'),'type':'select','source':[[_0x32bb60('0x3a8'),_0x32bb60('0x3a8')],[_0x32bb60('0x2b6'),_0x32bb60('0x2b6')],[_0x32bb60('0x73e'),_0x32bb60('0x73e')]]}],[_0x32bb60('0xc56'),{'label':'Attachment','type':_0x32bb60('0x881')}],[_0x32bb60('0x995'),{'label':_0x32bb60('0x9a2'),'type':_0x32bb60('0xa2d'),'allow-null':!0x0,'null-label':_0x32bb60('0x1068'),'remote-source':[_0x32bb60('0x5f0'),'id',_0x32bb60('0xf6d')],'help':_0x32bb60('0x907')}],['share_employees',{'label':_0x32bb60('0x843'),'type':'select2multi','allow-null':!0x0,'null-label':_0x32bb60('0xa3f'),'remote-source':[_0x32bb60('0x10f9'),'id',_0x32bb60('0x561')],'validation':_0x32bb60('0xea1'),'help':_0x32bb60('0x752')}]];}}]),_0x24d3e8;}(_0x57b1d0['default']),_0x215abe=function(_0x475c41){var _0x1a2458=_0x488dd4;_0x2ce80c(_0x38721b,_0x475c41);var _0x2e795f=_0x27ff16(_0x38721b);function _0x38721b(){var _0x3ae9d9=_0x5376;return _0x31cffa(this,_0x38721b),_0x2e795f[_0x3ae9d9('0x2be')](this,arguments);}return _0x398816(_0x38721b,[{'key':_0x1a2458('0x44a'),'value':function(){var _0xeb79ae=_0x1a2458;return['id',_0xeb79ae('0x10d1'),_0xeb79ae('0x7bb'),_0xeb79ae('0x1093'),_0xeb79ae('0xa9a'),_0xeb79ae('0x75e'),_0xeb79ae('0xc56')];}},{'key':_0x1a2458('0x95e'),'value':function(){var _0x114c3f=_0x1a2458;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x114c3f('0x10f9')},{'sTitle':_0x114c3f('0xca')},{'sTitle':_0x114c3f('0xd87')},{'sTitle':_0x114c3f('0x771')},{'sTitle':_0x114c3f('0x600')},{'sTitle':_0x114c3f('0xec3'),'bVisible':!0x1}];}},{'key':_0x1a2458('0x10d7'),'value':function(){var _0x5694b9=_0x1a2458;return[['id',{'label':'ID','type':'hidden'}],[_0x5694b9('0x10d1'),{'label':'Employee','type':_0x5694b9('0x15'),'sort':'none','allow-null':!0x1,'remote-source':[_0x5694b9('0x10f9'),'id',_0x5694b9('0x561'),'getActiveSubordinateEmployees']}],[_0x5694b9('0x7bb'),{'label':_0x5694b9('0xca'),'type':_0x5694b9('0x15'),'remote-source':[_0x5694b9('0xca'),'id',_0x5694b9('0x3ea')]}],[_0x5694b9('0xa9a'),{'label':'Date\x20Added','type':_0x5694b9('0x2a5'),'validation':''}],[_0x5694b9('0x3f7'),{'label':_0x5694b9('0x9ef'),'type':_0x5694b9('0x2a5'),'validation':_0x5694b9('0xea1')}],[_0x5694b9('0x75e'),{'label':_0x5694b9('0x600'),'type':_0x5694b9('0x4ce'),'source':[[_0x5694b9('0x3a8'),'Active'],[_0x5694b9('0x2b6'),_0x5694b9('0x2b6')],[_0x5694b9('0x73e'),'Draft']]}],['visible_to',{'label':_0x5694b9('0xcd7'),'type':_0x5694b9('0x4ce'),'source':[[_0x5694b9('0xff6'),'Owner'],[_0x5694b9('0x82c'),'Manager'],[_0x5694b9('0x2c2'),_0x5694b9('0x2c2')]]}],['details',{'label':_0x5694b9('0xd87'),'type':_0x5694b9('0x7ea'),'validation':'none'}],[_0x5694b9('0xc56'),{'label':_0x5694b9('0xec3'),'type':_0x5694b9('0x881'),'validation':''}]];}},{'key':_0x1a2458('0x51c'),'value':function(){var _0x1a214c=_0x1a2458;return[[_0x1a214c('0x10d1'),{'label':'Employee','type':_0x1a214c('0x15'),'remote-source':[_0x1a214c('0x10f9'),'id',_0x1a214c('0x561'),_0x1a214c('0xda1')]}]];}},{'key':_0x1a2458('0xe26'),'value':function(_0x45973f,_0x229072){var _0x5749ba=_0x1a2458,_0x58e9da=_0x5749ba('0xe62');return _0x58e9da=(_0x58e9da=(_0x58e9da=_0x58e9da[_0x5749ba('0xd06')](/_id_/g,_0x45973f))[_0x5749ba('0xd06')](/_attachment_/g,_0x229072[0x6]))[_0x5749ba('0xd06')](/_BASE_/g,this['baseUrl']);}},{'key':_0x1a2458('0x816'),'value':function(){var _0x2420f8=_0x1a2458;return _0x2420f8('0x2c2')!==this[_0x2420f8('0x34b')][_0x2420f8('0x6e8')]&&_0x2420f8('0x87b')!==this['user'][_0x2420f8('0x6e8')];}}]),_0x38721b;}(_0x57b1d0[_0x488dd4('0xf5f')]);_0x32828f[_0x488dd4('0x64')]={'DocumentAdapter':_0x457daa,'CompanyDocumentAdapter':_0x14be12,'EmployeeDocumentAdapter':_0x215abe};},{'../../../api/AdapterBase':0x34}],0x12:[function(_0x5836ac,_0x2bcb7c,_0x377b8c){var _0xbaf6a0=_0x548f48;'use strict';Object[_0xbaf6a0('0x9a5')](_0x377b8c,_0xbaf6a0('0xce5'),{'value':!0x0}),_0x377b8c[_0xbaf6a0('0xf5f')]=void 0x0;var _0x5042e7,_0x2a99fd=function(_0x4faa04){var _0xb25c96=_0xbaf6a0;if(_0x4faa04&&_0x4faa04[_0xb25c96('0xce5')])return _0x4faa04;if(null===_0x4faa04||_0xb25c96('0xb3f')!==_0x44304b(_0x4faa04)&&'function'!=typeof _0x4faa04)return{'default':_0x4faa04};var _0x527ec8=_0x4ad752();if(_0x527ec8&&_0x527ec8['has'](_0x4faa04))return _0x527ec8[_0xb25c96('0xd12')](_0x4faa04);var _0x347d75={},_0x2db73e=Object[_0xb25c96('0x9a5')]&&Object[_0xb25c96('0x43d')];for(var _0x309a51 in _0x4faa04)if(Object[_0xb25c96('0xe02')][_0xb25c96('0xe9c')][_0xb25c96('0xfd2')](_0x4faa04,_0x309a51)){var _0x390318=_0x2db73e?Object['getOwnPropertyDescriptor'](_0x4faa04,_0x309a51):null;_0x390318&&(_0x390318[_0xb25c96('0xd12')]||_0x390318['set'])?Object[_0xb25c96('0x9a5')](_0x347d75,_0x309a51,_0x390318):_0x347d75[_0x309a51]=_0x4faa04[_0x309a51];}return _0x347d75[_0xb25c96('0xf5f')]=_0x4faa04,_0x527ec8&&_0x527ec8['set'](_0x4faa04,_0x347d75),_0x347d75;}(_0x5836ac('react')),_0x198db4=_0x5836ac(_0xbaf6a0('0x10d2')),_0x1deda2=_0x5836ac(_0xbaf6a0('0x5b4')),_0x963961=(_0x5042e7=_0x5836ac(_0xbaf6a0('0x65e')))&&_0x5042e7[_0xbaf6a0('0xce5')]?_0x5042e7:{'default':_0x5042e7};function _0x4ad752(){if('function'!=typeof WeakMap)return null;var _0x88b5cd=new WeakMap();return _0x4ad752=function(){return _0x88b5cd;},_0x88b5cd;}function _0x44304b(_0xa570ec){var _0x1c6958=_0xbaf6a0;return(_0x44304b=_0x1c6958('0x106c')==typeof Symbol&&_0x1c6958('0x43c')==typeof Symbol[_0x1c6958('0x57b')]?function(_0x4ae413){return typeof _0x4ae413;}:function(_0x1dbf9c){var _0x1d735f=_0x1c6958;return _0x1dbf9c&&_0x1d735f('0x106c')==typeof Symbol&&_0x1dbf9c[_0x1d735f('0xad1')]===Symbol&&_0x1dbf9c!==Symbol[_0x1d735f('0xe02')]?_0x1d735f('0x43c'):typeof _0x1dbf9c;})(_0xa570ec);}function _0x180ee1(_0x309e7a,_0x516fe8){var _0x273b47=_0xbaf6a0;for(var _0x293910=0x0;_0x293910<_0x516fe8[_0x273b47('0x13')];_0x293910++){var _0x256888=_0x516fe8[_0x293910];_0x256888[_0x273b47('0x3bf')]=_0x256888['enumerable']||!0x1,_0x256888[_0x273b47('0x749')]=!0x0,_0x273b47('0x30')in _0x256888&&(_0x256888[_0x273b47('0x820')]=!0x0),Object[_0x273b47('0x9a5')](_0x309e7a,_0x256888[_0x273b47('0x86f')],_0x256888);}}function _0x17b67e(_0x39845d,_0x342e0e){var _0x379239=_0xbaf6a0;return!_0x342e0e||_0x379239('0xb3f')!==_0x44304b(_0x342e0e)&&_0x379239('0x106c')!=typeof _0x342e0e?function(_0x36be34){if(void 0x0===_0x36be34)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x36be34;}(_0x39845d):_0x342e0e;}function _0x8e8ad2(){var _0x202ee5=_0xbaf6a0;if(_0x202ee5('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x202ee5('0x353')]['sham'])return!0x1;if(_0x202ee5('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x202ee5('0xb6d')][_0x202ee5('0xfd2')](Reflect[_0x202ee5('0x353')](Date,[],function(){})),!0x0;}catch(_0x2d23fc){return!0x1;}}function _0x2affce(_0x3f8a65){var _0x54a92e=_0xbaf6a0;return(_0x2affce=Object[_0x54a92e('0x3df')]?Object[_0x54a92e('0x2d9')]:function(_0x124194){var _0x2d9080=_0x54a92e;return _0x124194[_0x2d9080('0x112c')]||Object[_0x2d9080('0x2d9')](_0x124194);})(_0x3f8a65);}function _0x2aec47(_0xecda68,_0xd3818c){var _0x483015=_0xbaf6a0;return(_0x2aec47=Object[_0x483015('0x3df')]||function(_0x10ca9b,_0x2973af){var _0x56a497=_0x483015;return _0x10ca9b[_0x56a497('0x112c')]=_0x2973af,_0x10ca9b;})(_0xecda68,_0xd3818c);}_0x198db4[_0xbaf6a0('0x5e')]['Search'];var _0x50fdb3=_0x198db4[_0xbaf6a0('0x89e')]['Title'],_0x381d77=_0x198db4['Typography']['Text'],_0x279c81=_0x198db4['Tabs'][_0xbaf6a0('0x7a7')],_0x59c373=function(_0x422eff){var _0x1397d0=_0xbaf6a0;!function(_0x87d0ba,_0x16ee48){var _0x2ec7a9=_0x5376;if(_0x2ec7a9('0x106c')!=typeof _0x16ee48&&null!==_0x16ee48)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x87d0ba[_0x2ec7a9('0xe02')]=Object[_0x2ec7a9('0xbd0')](_0x16ee48&&_0x16ee48['prototype'],{'constructor':{'value':_0x87d0ba,'writable':!0x0,'configurable':!0x0}}),_0x16ee48&&_0x2aec47(_0x87d0ba,_0x16ee48);}(_0x5c6016,_0x422eff);var _0x1347d7,_0x58dd8a,_0x44867b,_0x237a1c,_0x5300c3=(_0x1347d7=_0x5c6016,function(){var _0x406985=_0x5376,_0x1e26b4,_0x15c5c1=_0x2affce(_0x1347d7);if(_0x8e8ad2()){var _0xc3a985=_0x2affce(this)[_0x406985('0xad1')];_0x1e26b4=Reflect['construct'](_0x15c5c1,arguments,_0xc3a985);}else _0x1e26b4=_0x15c5c1['apply'](this,arguments);return _0x17b67e(this,_0x1e26b4);});function _0x5c6016(_0x45e032){var _0x29a380=_0x5376,_0x29e2c3;return function(_0x333732,_0x27d21a){var _0x3e07cb=_0x5376;if(!(_0x333732 instanceof _0x27d21a))throw new TypeError(_0x3e07cb('0xf98'));}(this,_0x5c6016),(_0x29e2c3=_0x5300c3[_0x29a380('0xfd2')](this,_0x45e032))[_0x29a380('0x55d')]={'loading':!0x0},_0x29e2c3;}return _0x58dd8a=_0x5c6016,(_0x44867b=[{'key':'updateProfileImage','value':function(){var _0x396e41=_0x5376;showUploadDialog(_0x396e41('0x6e5')['concat'](this[_0x396e41('0x1136')]['element']['id'],'_')['concat'](new Date()['getTime']()),'Upload\x20Profile\x20Image',_0x396e41('0x64e'),this['props'][_0x396e41('0x23a')]['id'],_0x396e41('0x6e5')[_0x396e41('0xda9')](this[_0x396e41('0x1136')][_0x396e41('0x23a')]['id']),_0x396e41('0x106c'),_0x396e41('0x5bd'),_0x396e41('0xdbb'));}},{'key':_0x1397d0('0xb2'),'value':function(){var _0x116638=_0x1397d0,_0x4636e2=this;return _0x2a99fd['default'][_0x116638('0xfa9')](_0x2a99fd[_0x116638('0xf5f')][_0x116638('0x18f')],null,this[_0x116638('0x1136')][_0x116638('0x8cd')]&&_0x2a99fd[_0x116638('0xf5f')]['createElement'](_0x198db4['Tag'],{'icon':_0x2a99fd[_0x116638('0xf5f')][_0x116638('0xfa9')](_0x1deda2['SyncOutlined'],{'spin':!0x0}),'color':'processing'},this[_0x116638('0x1136')][_0x116638('0xfb2')]['gt']('Edit')),!this['props'][_0x116638('0x8cd')]&&_0x2a99fd[_0x116638('0xf5f')]['createElement'](_0x198db4[_0x116638('0x9ca')],{'icon':_0x2a99fd[_0x116638('0xf5f')]['createElement'](_0x1deda2[_0x116638('0xa02')],null),'color':_0x116638('0x9a9'),'onClick':function(){var _0xbfdfdc=_0x116638;return modJs[_0xbfdfdc('0x1df')](_0x4636e2['props'][_0xbfdfdc('0x23a')]['id']);}},this[_0x116638('0x1136')][_0x116638('0xfb2')]['gt']('Edit')));}},{'key':_0x1397d0('0x10cd'),'value':function(_0x4c39f6){var _0x52dd7f=_0x1397d0,_0x2ca412=this;return _0x2a99fd[_0x52dd7f('0xf5f')][_0x52dd7f('0xfa9')](_0x198db4['Tag'],{'icon':_0x2a99fd['default'][_0x52dd7f('0xfa9')](_0x1deda2[_0x52dd7f('0xa02')],null),'color':_0x52dd7f('0x9a9'),'onClick':function(){var _0x19191f=_0x52dd7f;switchTab(_0x4c39f6,{'employee':_0x2ca412[_0x19191f('0x1136')][_0x19191f('0x23a')]['id']});}},this[_0x52dd7f('0x1136')][_0x52dd7f('0xfb2')]['gt']('Edit'));}},{'key':'render','value':function(){var _0x5c811d=_0x1397d0,_0x139586=this;return _0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0x18f')],null,_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0x79b')],{'direction':'vertical','style':{'width':'100%','padding':_0x5c811d('0xd65')},'gutter':0x18},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xd19')],{'span':0x18},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0x351')],{'title':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xbae')),'extra':this['getEditButtonJsx'](),'style':{'width':_0x5c811d('0x51f')}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xfc')],{'size':_0x5c811d('0xf96')},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4['Avatar'],{'size':0x8c,'src':this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0xdbb')],'onClick':function(){var _0x93b447=_0x5c811d;return _0x139586[_0x93b447('0xf94')]();}}),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xfc')],{'direction':_0x5c811d('0x952')},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x50fdb3,{'level':0x4},''['concat'](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')]['first_name'],'\x20')['concat'](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x4c1')])),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4['Space'],null,_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x1deda2[_0x5c811d('0x896')],null),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x381d77,{'copyable':!0x0},'\x20'[_0x5c811d('0xda9')](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')]['mobile_phone']||''))),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xfc')],null,_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x1deda2['MailTwoTone'],null),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x381d77,{'copyable':!0x0},'\x20'['concat'](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x725')]||'')))),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')],{'title':'','bordered':!0x0,'style':{'width':_0x5c811d('0x51f'),'padding':_0x5c811d('0xd65')}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4['Descriptions'][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')]['adapter']['gt'](_0x5c811d('0x654')),'span':0x3},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x61')]),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x966')),'span':0x3},this['props'][_0x5c811d('0x23a')]['nic_num']||''),this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0xc53')]&&''!==this[_0x5c811d('0x1136')]['element']['ssn_num']&&_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4['Descriptions'][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x10ef')),'span':0x3},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0xc53')]||'')))))),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0x79b')],{'direction':_0x5c811d('0x952'),'style':{'width':_0x5c811d('0x51f'),'padding':'10px'},'gutter':0x18},_0x2a99fd['default']['createElement'](_0x198db4[_0x5c811d('0x102d')],{'type':_0x5c811d('0xc45'),'style':{'width':_0x5c811d('0x51f')}},_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x279c81,{'tab':_0x5c811d('0x2ee'),'key':'1','style':{'width':'100%'}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0x79b')],{'direction':'vertical','style':{'width':_0x5c811d('0x51f'),'padding':_0x5c811d('0xd65')},'gutter':0x18},_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xd19')],{'span':0x18},_0x2a99fd['default']['createElement'](_0x198db4[_0x5c811d('0x351')],{'title':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x8f1')),'extra':this[_0x5c811d('0xb2')](),'style':{'width':'100%'}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')],{'title':'','bordered':!0x0},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xf9a'))},this['props'][_0x5c811d('0x23a')][_0x5c811d('0x303')]||''),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xf')]['Item'],{'label':this['props']['adapter']['gt'](_0x5c811d('0xe7'))},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x27c')]),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')]['Item'],{'label':this[_0x5c811d('0x1136')]['adapter']['gt']('Nationality')},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x1ef')]),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x7b2'))},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0xbb1')]),_0x2a99fd['default']['createElement'](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')]['adapter']['gt'](_0x5c811d('0x70e'))},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')]['joined_date']),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4['Descriptions'][_0x5c811d('0x5ac')],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x5a9'))},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0xa53')]||''),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x200'))},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0xf4e')]||'')))),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4['Col'],{'span':0x18},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0x351')],{'title':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x8a9')),'extra':this[_0x5c811d('0xb2')](),'style':{'width':_0x5c811d('0x51f')}},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xf')],{'title':'','bordered':!0x0},_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')]['Item'],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt']('Address'),'span':0x3},''['concat'](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')]['address1'],',\x20')[_0x5c811d('0xda9')](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x19c')]||'')),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xb48'))},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x43')]),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4['Descriptions']['Item'],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x81e'))},this['props'][_0x5c811d('0x23a')][_0x5c811d('0x8ef')]),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x71c'))},this['props'][_0x5c811d('0x23a')][_0x5c811d('0x42b')]),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')]['adapter']['gt'](_0x5c811d('0x251')),'span':0x2},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xfc')],null,_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x1deda2[_0x5c811d('0x896')],null),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x381d77,{'copyable':!0x0},'\x20'['concat'](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x5ca')]||'')))),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xd35')),'span':0x2},_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xfc')],null,_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x1deda2[_0x5c811d('0x896')],null),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x381d77,{'copyable':!0x0},'\x20'[_0x5c811d('0xda9')](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0xd8')]||'')))),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this['props'][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x100f')),'span':0x2},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xfc')],null,_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x1deda2[_0x5c811d('0xb90')],null),_0x2a99fd['default']['createElement'](_0x381d77,{'copyable':!0x0},'\x20'[_0x5c811d('0xda9')](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')][_0x5c811d('0x665')]||''))))))),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xd19')],{'span':0x18},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0x351')],{'title':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt']('Job\x20Details'),'extra':this[_0x5c811d('0xb2')](),'style':{'width':_0x5c811d('0x51f')}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')],{'title':'','bordered':!0x0},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xfd4')),'span':0x2},this[_0x5c811d('0x1136')][_0x5c811d('0x23a')]['job_title_Name']),_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xd36'))},this[_0x5c811d('0x1136')]['element'][_0x5c811d('0xa19')]),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt']('Department')},this['props']['element']['department_Name']),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xf')][_0x5c811d('0x5ac')],{'label':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x1a0'))},this['props'][_0x5c811d('0x23a')][_0x5c811d('0x186')])))))),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x279c81,{'tab':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xf6f')),'key':'2','style':{'width':_0x5c811d('0x51f')}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4['Row'],{'style':{'width':_0x5c811d('0x51f'),'padding':_0x5c811d('0xd65')},'gutter':0x18},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4['Col'],{'span':0x6},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x198db4[_0x5c811d('0x351')],{'title':this['props'][_0x5c811d('0xfb2')]['gt']('Skills'),'extra':this[_0x5c811d('0x10cd')](_0x5c811d('0x11a')),'style':{'width':_0x5c811d('0x51f')}},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x963961[_0x5c811d('0xf5f')],{'color':'geekblue','apiClient':this['props'][_0x5c811d('0xfb2')][_0x5c811d('0xc83')],'url':_0x5c811d('0x1133')[_0x5c811d('0xda9')](this['props'][_0x5c811d('0x23a')]['id'],'/skills'),'extractTag':function(_0x524105){var _0x2018df=_0x5c811d;return _0x524105[_0x2018df('0xe72')][_0x2018df('0x13d')];}}))),_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xd19')],{'span':0x6},_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0x351')],{'title':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt']('Education'),'extra':this[_0x5c811d('0x10cd')](_0x5c811d('0x960')),'style':{'width':_0x5c811d('0x51f')}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x963961[_0x5c811d('0xf5f')],{'color':_0x5c811d('0x10de'),'apiClient':this[_0x5c811d('0x1136')]['adapter'][_0x5c811d('0xc83')],'url':'employees/'[_0x5c811d('0xda9')](this['props'][_0x5c811d('0x23a')]['id'],_0x5c811d('0x10c0')),'extractTag':function(_0x2e1c46){var _0x23ae51=_0x5c811d;return _0x2e1c46[_0x23ae51('0x6a4')][_0x23ae51('0x13d')];}}))),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xd19')],{'span':0x6},_0x2a99fd['default']['createElement'](_0x198db4['Card'],{'title':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0xf92')),'extra':this[_0x5c811d('0x10cd')](_0x5c811d('0x10a4')),'style':{'width':'100%'}},_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x963961[_0x5c811d('0xf5f')],{'color':_0x5c811d('0xe3'),'apiClient':this['props'][_0x5c811d('0xfb2')][_0x5c811d('0xc83')],'url':'employees/'[_0x5c811d('0xda9')](this[_0x5c811d('0x1136')]['element']['id'],_0x5c811d('0x420')),'extractTag':function(_0x30786c){var _0x2c390c=_0x5c811d;return _0x30786c[_0x2c390c('0x9bd')][_0x2c390c('0x13d')];}}))),_0x2a99fd[_0x5c811d('0xf5f')][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0xd19')],{'span':0x6},_0x2a99fd['default'][_0x5c811d('0xfa9')](_0x198db4[_0x5c811d('0x351')],{'title':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['gt'](_0x5c811d('0x607')),'extra':this[_0x5c811d('0x10cd')]('tabEmployeeLanguage'),'style':{'width':_0x5c811d('0x51f')}},_0x2a99fd[_0x5c811d('0xf5f')]['createElement'](_0x963961['default'],{'color':_0x5c811d('0xd62'),'apiClient':this[_0x5c811d('0x1136')][_0x5c811d('0xfb2')]['apiClient'],'url':'employees/'['concat'](this[_0x5c811d('0x1136')][_0x5c811d('0x23a')]['id'],'/languages'),'extractTag':function(_0x2b03d0){var _0x4b2b8f=_0x5c811d;return _0x2b03d0[_0x4b2b8f('0x5f6')][_0x4b2b8f('0x13d')];}}))))))));}}])&&_0x180ee1(_0x58dd8a[_0x1397d0('0xe02')],_0x44867b),_0x237a1c&&_0x180ee1(_0x58dd8a,_0x237a1c),_0x5c6016;}(_0x2a99fd[_0xbaf6a0('0xf5f')][_0xbaf6a0('0x42')]);_0x377b8c[_0xbaf6a0('0xf5f')]=_0x59c373;},{'../../../../components/TagList':0x4f,'@ant-design/icons':'@ant-design/icons','antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11')}],0x13:[function(_0x494492,_0x243ea1,_0x3f26d0){var _0x245024=_0x548f48;'use strict';var _0x59b811,_0x2df133=_0x494492(_0x245024('0x19f')),_0x32772d=(_0x59b811=_0x494492('../../../api/IceDataPipe'))&&_0x59b811['__esModule']?_0x59b811:{'default':_0x59b811};window[_0x245024('0xa8c')]=_0x2df133[_0x245024('0xa8c')],window[_0x245024('0x932')]=_0x2df133[_0x245024('0x932')],window[_0x245024('0x302')]=_0x2df133[_0x245024('0x302')],window['EmployeeSkillAdapter']=_0x2df133[_0x245024('0xf7e')],window[_0x245024('0x418')]=_0x2df133['EmployeeEducationAdapter'],window[_0x245024('0x41')]=_0x2df133[_0x245024('0x41')],window[_0x245024('0xa66')]=_0x2df133[_0x245024('0xa66')],window[_0x245024('0xc68')]=_0x2df133[_0x245024('0xc68')],window[_0x245024('0x33c')]=_0x2df133[_0x245024('0x33c')],window[_0x245024('0xaad')]=_0x2df133['EmployeeImmigrationAdapter'],window['EmployeeSubSkillsAdapter']=_0x2df133[_0x245024('0x6c5')],window[_0x245024('0x357')]=_0x2df133[_0x245024('0x357')],window[_0x245024('0x67f')]=_0x2df133[_0x245024('0x67f')],window['EmployeeSubLanguageAdapter']=_0x2df133[_0x245024('0x713')],window[_0x245024('0xba')]=_0x2df133[_0x245024('0xba')],window[_0x245024('0xdc2')]=_0x2df133[_0x245024('0xdc2')],window[_0x245024('0xd15')]=_0x2df133['EmployeeSubDocumentAdapter'],window['IceDataPipe']=_0x32772d[_0x245024('0xf5f')];},{'../../../api/IceDataPipe':0x3a,'./lib':0x14}],0x14:[function(_0x383b10,_0x2a06ab,_0x54f81e){var _0x58c04d=_0x548f48;'use strict';var _0x4c6ed6=_0x5b5f8d(_0x383b10(_0x58c04d('0xb11'))),_0x3d7adf=_0x383b10(_0x58c04d('0x10d2')),_0x3c5955=_0x383b10(_0x58c04d('0x5b4')),_0x41c5da=(_0x5b5f8d(_0x383b10(_0x58c04d('0xee6'))),_0x5b5f8d(_0x383b10(_0x58c04d('0xb9f'))),_0x5b5f8d(_0x383b10(_0x58c04d('0x9f6'))),_0x5b5f8d(_0x383b10(_0x58c04d('0x382')))),_0x39d675=_0x5b5f8d(_0x383b10('./components/EmployeeProfile'));function _0x5b5f8d(_0x2dad87){var _0x4a9563=_0x58c04d;return _0x2dad87&&_0x2dad87[_0x4a9563('0xce5')]?_0x2dad87:{'default':_0x2dad87};}function _0x515b5d(_0x3cd7ca){var _0x5430b9=_0x58c04d;return(_0x515b5d=_0x5430b9('0x106c')==typeof Symbol&&_0x5430b9('0x43c')==typeof Symbol[_0x5430b9('0x57b')]?function(_0x34916c){return typeof _0x34916c;}:function(_0x56ca5a){var _0xea6dc8=_0x5430b9;return _0x56ca5a&&_0xea6dc8('0x106c')==typeof Symbol&&_0x56ca5a['constructor']===Symbol&&_0x56ca5a!==Symbol[_0xea6dc8('0xe02')]?_0xea6dc8('0x43c'):typeof _0x56ca5a;})(_0x3cd7ca);}function _0x2ca28e(_0x3c8817,_0x47d12a){var _0x6ac382=_0x58c04d;if(!(_0x3c8817 instanceof _0x47d12a))throw new TypeError(_0x6ac382('0xf98'));}function _0x1bf25f(_0x46d437,_0x111dde){var _0x22093b=_0x58c04d;for(var _0x5bc250=0x0;_0x5bc250<_0x111dde[_0x22093b('0x13')];_0x5bc250++){var _0x19f995=_0x111dde[_0x5bc250];_0x19f995[_0x22093b('0x3bf')]=_0x19f995[_0x22093b('0x3bf')]||!0x1,_0x19f995['configurable']=!0x0,_0x22093b('0x30')in _0x19f995&&(_0x19f995['writable']=!0x0),Object['defineProperty'](_0x46d437,_0x19f995[_0x22093b('0x86f')],_0x19f995);}}function _0x4632d8(_0x552da4,_0x2b198a,_0x23de0d){return _0x2b198a&&_0x1bf25f(_0x552da4['prototype'],_0x2b198a),_0x23de0d&&_0x1bf25f(_0x552da4,_0x23de0d),_0x552da4;}function _0x4a4217(_0x4fa8e2){return function(){var _0x503bfa=_0x5376,_0x3ec664,_0x358f76=_0x35746f(_0x4fa8e2);if(_0x39b704()){var _0x4ed9e7=_0x35746f(this)['constructor'];_0x3ec664=Reflect[_0x503bfa('0x353')](_0x358f76,arguments,_0x4ed9e7);}else _0x3ec664=_0x358f76[_0x503bfa('0x2be')](this,arguments);return _0x3aa6d9(this,_0x3ec664);};}function _0x3aa6d9(_0x553889,_0x19263f){var _0x22949e=_0x58c04d;return!_0x19263f||_0x22949e('0xb3f')!==_0x515b5d(_0x19263f)&&_0x22949e('0x106c')!=typeof _0x19263f?function(_0x3e9380){var _0x22326c=_0x22949e;if(void 0x0===_0x3e9380)throw new ReferenceError(_0x22326c('0xe0d'));return _0x3e9380;}(_0x553889):_0x19263f;}function _0x39b704(){var _0x23d4f2=_0x58c04d;if(_0x23d4f2('0x449')==typeof Reflect||!Reflect[_0x23d4f2('0x353')])return!0x1;if(Reflect[_0x23d4f2('0x353')][_0x23d4f2('0xb21')])return!0x1;if(_0x23d4f2('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x23d4f2('0xb6d')]['call'](Reflect[_0x23d4f2('0x353')](Date,[],function(){})),!0x0;}catch(_0x2bc296){return!0x1;}}function _0x35746f(_0x34be69){var _0x103412=_0x58c04d;return(_0x35746f=Object[_0x103412('0x3df')]?Object[_0x103412('0x2d9')]:function(_0x14713e){var _0x2b0c43=_0x103412;return _0x14713e[_0x2b0c43('0x112c')]||Object[_0x2b0c43('0x2d9')](_0x14713e);})(_0x34be69);}function _0x2a2bb3(_0x261cbe,_0x4007d1){var _0x208daa=_0x58c04d;if(_0x208daa('0x106c')!=typeof _0x4007d1&&null!==_0x4007d1)throw new TypeError(_0x208daa('0x5a0'));_0x261cbe[_0x208daa('0xe02')]=Object['create'](_0x4007d1&&_0x4007d1['prototype'],{'constructor':{'value':_0x261cbe,'writable':!0x0,'configurable':!0x0}}),_0x4007d1&&_0xd61ce1(_0x261cbe,_0x4007d1);}function _0xd61ce1(_0x19edfb,_0x5452fc){var _0x1a5e39=_0x58c04d;return(_0xd61ce1=Object[_0x1a5e39('0x3df')]||function(_0x149a6a,_0x1cba00){return _0x149a6a['__proto__']=_0x1cba00,_0x149a6a;})(_0x19edfb,_0x5452fc);}var _0x587442=function(_0x39d8e3){var _0x3c7925=_0x58c04d;_0x2a2bb3(_0x18d0c8,_0x39d8e3);var _0x58656b=_0x4a4217(_0x18d0c8);function _0x18d0c8(){var _0x1de9c8=_0x5376;return _0x2ca28e(this,_0x18d0c8),_0x58656b[_0x1de9c8('0x2be')](this,arguments);}return _0x4632d8(_0x18d0c8,[{'key':_0x3c7925('0x816'),'value':function(){var _0x4c2081=_0x3c7925;return _0x4c2081('0x2c2')!==this[_0x4c2081('0x34b')][_0x4c2081('0x6e8')]&&'Restricted\x20Admin'!==this[_0x4c2081('0x34b')][_0x4c2081('0x6e8')];}}]),_0x18d0c8;}(_0x41c5da['default']),_0x116996=function(_0x82968d){var _0x3f1a10=_0x58c04d;_0x2a2bb3(_0x5f87e8,_0x82968d);var _0x283a2b=_0x4a4217(_0x5f87e8);function _0x5f87e8(_0x52e428,_0x2c0420,_0x34c373,_0x24f6f7){var _0x12d1f3=_0x5376,_0x4e3355;return _0x2ca28e(this,_0x5f87e8),(_0x4e3355=_0x283a2b['call'](this,_0x52e428,_0x2c0420,_0x34c373,_0x24f6f7))[_0x12d1f3('0xade')]={},_0x4e3355[_0x12d1f3('0xfbc')]={},_0x4e3355['tableFields']={},_0x4e3355['formOnlyFields']={},_0x4e3355;}return _0x4632d8(_0x5f87e8,[{'key':_0x3f1a10('0x816'),'value':function(){var _0x5a17b2=_0x3f1a10;return _0x5a17b2('0x2c2')!==this['user'][_0x5a17b2('0x6e8')]&&_0x5a17b2('0x87b')!==this['user'][_0x5a17b2('0x6e8')];}},{'key':'setFieldNameMap','value':function(_0x964e61){var _0x1636ee=_0x3f1a10;for(var _0x10efd2,_0x39d192=0x0;_0x39d192<_0x964e61[_0x1636ee('0x13')];_0x39d192++)_0x10efd2=_0x964e61[_0x39d192],this['fieldNameMap'][_0x10efd2['name']]=_0x10efd2,'Hidden'===_0x10efd2[_0x1636ee('0x13d')]?this[_0x1636ee('0xfbc')][_0x10efd2['name']]=_0x10efd2:_0x1636ee('0x6b9')===_0x10efd2[_0x1636ee('0x13d')]||_0x1636ee('0xe32')===_0x10efd2[_0x1636ee('0x13d')]?this['tableFields'][_0x10efd2['name']]=_0x10efd2:this[_0x1636ee('0xe00')][_0x10efd2['name']]=_0x10efd2;}},{'key':_0x3f1a10('0x3f6'),'value':function(){var _0x351ce7=_0x3f1a10,_0xdf492b=this;return{'aoColumnDefs':[{'fnRender':function(_0x314ca9,_0x48b290){var _0x1ac753=_0x5376;return _0xdf492b[_0x1ac753('0x366')](_0x314ca9,_0x48b290,0x1);},'aTargets':[0x1]},{'fnRender':_0xdf492b['getActionButtons'],'aTargets':[_0xdf492b[_0x351ce7('0x44a')]()[_0x351ce7('0x13')]]}]};}},{'key':'preProcessRemoteTableData','value':function(_0x311b1a,_0x11a3ca,_0x228364){var _0x1bec50=_0x3f1a10;if(0x1===_0x228364)return''[_0x1bec50('0xd06')](_0x1bec50('0xffe'),_0x11a3ca);return _0x11a3ca;}},{'key':_0x3f1a10('0x113f'),'value':function(){return'';}},{'key':_0x3f1a10('0x8fb'),'value':function(){var _0x39ea36=_0x3f1a10;return['id','image','employee_id','first_name',_0x39ea36('0x4c1'),_0x39ea36('0xed2'),_0x39ea36('0xf9')];}},{'key':_0x3f1a10('0x44a'),'value':function(){var _0x4815b0=_0x3f1a10;for(var _0x5d8137=this[_0x4815b0('0x8fb')](),_0x3d21c0=[],_0x548fbe=0x0;_0x548fbe<_0x5d8137[_0x4815b0('0x13')];_0x548fbe++)void 0x0!==this[_0x4815b0('0xfbc')][_0x5d8137[_0x548fbe]]&&null!==this[_0x4815b0('0xfbc')][_0x5d8137[_0x548fbe]]||void 0x0!==this['formOnlyFields'][_0x5d8137[_0x548fbe]]&&null!==this[_0x4815b0('0xe00')][_0x5d8137[_0x548fbe]]||_0x3d21c0[_0x4815b0('0x91b')](_0x5d8137[_0x548fbe]);return _0x3d21c0;}},{'key':_0x3f1a10('0x95e'),'value':function(){var _0x4f8e7a=_0x3f1a10;for(var _0x4b7c41=this['getTableFields'](),_0x216841=[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'','bSortable':!0x1}],_0x286f59='',_0x48a30e=0x0;_0x48a30e<_0x4b7c41['length'];_0x48a30e++)void 0x0!==this[_0x4f8e7a('0xfbc')][_0x4b7c41[_0x48a30e]]&&null!==this['hiddenFields'][_0x4b7c41[_0x48a30e]]||void 0x0!==this[_0x4f8e7a('0xe00')][_0x4b7c41[_0x48a30e]]&&null!==this[_0x4f8e7a('0xe00')][_0x4b7c41[_0x48a30e]]||void 0x0!==this[_0x4f8e7a('0xade')][_0x4b7c41[_0x48a30e]]&&null!==this['fieldNameMap'][_0x4b7c41[_0x48a30e]]&&(null==(_0x286f59=this[_0x4f8e7a('0xade')][_0x4b7c41[_0x48a30e]][_0x4f8e7a('0x601')])||''===_0x286f59?_0x216841[_0x4f8e7a('0x91b')]({'sTitle':_0x286f59}):_0x4f8e7a('0x27c')===_0x4b7c41[_0x48a30e]?_0x216841[_0x4f8e7a('0x91b')]({'sTitle':_0x286f59,'translate':!0x0}):_0x216841[_0x4f8e7a('0x91b')]({'sTitle':_0x286f59}));return _0x216841;}},{'key':_0x3f1a10('0xb81'),'value':function(){var _0x3b2f11=_0x3f1a10;for(var _0x35f95d=this[_0x3b2f11('0x44a')](),_0x5e513c=this[_0x3b2f11('0x95e')](),_0x34dfec=[],_0x2116ce=0x1;_0x2116ce<_0x35f95d[_0x3b2f11('0x13')];_0x2116ce++)_0x34dfec[_0x3b2f11('0x91b')]({'title':_0x5e513c[_0x2116ce][_0x3b2f11('0x361')],'dataIndex':_0x35f95d[_0x2116ce],'sorter':!0x0}),'image'===_0x35f95d[_0x2116ce]&&(_0x34dfec[_0x2116ce-0x1][_0x3b2f11('0xb9b')]=function(_0x20225a,_0xde9420){var _0x4b05d4=_0x3b2f11;return _0x4c6ed6[_0x4b05d4('0xf5f')][_0x4b05d4('0xfa9')](_0x3d7adf['Avatar'],{'src':_0x20225a});});return _0x34dfec;}},{'key':_0x3f1a10('0xb70'),'value':function(_0x44649e){var _0xc28bdf=_0x3f1a10;this['tableContainer'][_0xc28bdf('0xda7')]['setCurrentElement'](_0x44649e);}},{'key':_0x3f1a10('0x2c9'),'value':function(){var _0x2ca2d9=_0x3f1a10;return _0x4c6ed6['default'][_0x2ca2d9('0xfa9')](_0x39d675[_0x2ca2d9('0xf5f')],null);}},{'key':_0x3f1a10('0x10d7'),'value':function(){var _0x1bf8e6=_0x3f1a10;for(var _0x27e499,_0x24d403,_0x2091dc=[],_0x5d98b4=[['id',{'label':'ID','type':_0x1bf8e6('0x10f4'),'validation':''}],[_0x1bf8e6('0x61'),{'label':_0x1bf8e6('0x654'),'type':_0x1bf8e6('0x5b2'),'validation':''}],['first_name',{'label':_0x1bf8e6('0x81d'),'type':_0x1bf8e6('0x5b2'),'validation':''}],[_0x1bf8e6('0x541'),{'label':'Middle\x20Name','type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0x4c1'),{'label':_0x1bf8e6('0x70f'),'type':_0x1bf8e6('0x5b2'),'validation':''}],[_0x1bf8e6('0x10ae'),{'label':_0x1bf8e6('0x7d7'),'type':'select2','remote-source':[_0x1bf8e6('0x7d7'),'id','name']}],[_0x1bf8e6('0x303'),{'label':_0x1bf8e6('0xf9a'),'type':'date','validation':''}],[_0x1bf8e6('0x27c'),{'label':_0x1bf8e6('0xe7'),'type':_0x1bf8e6('0x4ce'),'source':[[_0x1bf8e6('0x989'),_0x1bf8e6('0x989')],[_0x1bf8e6('0x2ba'),'Female'],[_0x1bf8e6('0xf46'),'Other']]}],[_0x1bf8e6('0xbb1'),{'label':_0x1bf8e6('0x7b2'),'type':_0x1bf8e6('0x4ce'),'source':[[_0x1bf8e6('0x108f'),_0x1bf8e6('0x108f')],[_0x1bf8e6('0x7cf'),_0x1bf8e6('0x7cf')],[_0x1bf8e6('0xc67'),'Divorced'],[_0x1bf8e6('0xddb'),_0x1bf8e6('0xddb')],[_0x1bf8e6('0xf46'),_0x1bf8e6('0xf46')]]}],['ethnicity',{'label':_0x1bf8e6('0xff5'),'type':_0x1bf8e6('0x15'),'allow-null':!0x0,'remote-source':[_0x1bf8e6('0xff5'),'id','name']}],[_0x1bf8e6('0x3a6'),{'label':'Immigration\x20Status','type':_0x1bf8e6('0x15'),'allow-null':!0x0,'remote-source':[_0x1bf8e6('0xe51'),'id',_0x1bf8e6('0x3ea')]}],['ssn_num',{'label':_0x1bf8e6('0x33a'),'type':'text','validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0x10f6'),{'label':'NIC','type':_0x1bf8e6('0x5b2'),'validation':'none'}],[_0x1bf8e6('0xf4e'),{'label':_0x1bf8e6('0x200'),'type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0xa53'),{'label':_0x1bf8e6('0x5a9'),'type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0x434'),{'label':'Employment\x20Status','type':_0x1bf8e6('0x15'),'remote-source':[_0x1bf8e6('0x5c1'),'id',_0x1bf8e6('0x3ea')]}],[_0x1bf8e6('0xed2'),{'label':_0x1bf8e6('0x3c6'),'type':_0x1bf8e6('0x15'),'remote-source':['CompanyStructure','id','title']}],[_0x1bf8e6('0x8d4'),{'label':_0x1bf8e6('0xfd4'),'type':_0x1bf8e6('0x15'),'remote-source':[_0x1bf8e6('0x97'),'id',_0x1bf8e6('0x3ea')]}],['pay_grade',{'label':_0x1bf8e6('0xf4c'),'type':_0x1bf8e6('0x15'),'allow-null':!0x0,'remote-source':[_0x1bf8e6('0x78a'),'id','name']}],[_0x1bf8e6('0x632'),{'label':_0x1bf8e6('0x70e'),'type':_0x1bf8e6('0x2a5'),'validation':''}],[_0x1bf8e6('0x60a'),{'label':'Confirmation\x20Date','type':'date','validation':_0x1bf8e6('0xea1')}],['termination_date',{'label':_0x1bf8e6('0x88e'),'type':_0x1bf8e6('0x2a5'),'validation':_0x1bf8e6('0xea1')}],['work_station_id',{'label':_0x1bf8e6('0x730'),'type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0x78'),{'label':'Address\x20Line\x201','type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0x19c'),{'label':_0x1bf8e6('0x21'),'type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0x43'),{'label':'City','type':_0x1bf8e6('0x5b2'),'validation':'none'}],[_0x1bf8e6('0x777'),{'label':'Country','type':_0x1bf8e6('0x15'),'remote-source':[_0x1bf8e6('0x81e'),_0x1bf8e6('0x9e3'),_0x1bf8e6('0x3ea')]}],[_0x1bf8e6('0x35b'),{'label':_0x1bf8e6('0xda5'),'type':_0x1bf8e6('0x15'),'allow-null':!0x0,'remote-source':[_0x1bf8e6('0xd53'),'id',_0x1bf8e6('0x3ea')]}],['postal_code',{'label':_0x1bf8e6('0x71c'),'type':_0x1bf8e6('0x5b2'),'validation':'none'}],[_0x1bf8e6('0x5ca'),{'label':_0x1bf8e6('0x251'),'type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0xf37'),{'label':_0x1bf8e6('0xde6'),'type':_0x1bf8e6('0x5b2'),'validation':'none'}],[_0x1bf8e6('0xd8'),{'label':_0x1bf8e6('0xd35'),'type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xea1')}],[_0x1bf8e6('0x725'),{'label':_0x1bf8e6('0xbf8'),'type':_0x1bf8e6('0x5b2'),'validation':_0x1bf8e6('0xa8')}],['private_email',{'label':_0x1bf8e6('0x100f'),'type':'text','validation':'emailOrEmpty'}],[_0x1bf8e6('0xf9'),{'label':_0x1bf8e6('0x4f3'),'type':_0x1bf8e6('0x15'),'allow-null':!0x0,'remote-source':['Employee','id',_0x1bf8e6('0x561')]}],[_0x1bf8e6('0x116c'),{'label':_0x1bf8e6('0x109a'),'type':_0x1bf8e6('0xa2d'),'allow-null':!0x0,'remote-source':['Employee','id',_0x1bf8e6('0x561')]}],['approver1',{'label':_0x1bf8e6('0xe5a'),'type':_0x1bf8e6('0x15'),'allow-null':!0x0,'null-label':_0x1bf8e6('0x37b'),'remote-source':[_0x1bf8e6('0x10f9'),'id',_0x1bf8e6('0x561')]}],[_0x1bf8e6('0x5a7'),{'label':'Second\x20Level\x20Approver','type':_0x1bf8e6('0x15'),'allow-null':!0x0,'null-label':_0x1bf8e6('0x37b'),'remote-source':[_0x1bf8e6('0x10f9'),'id',_0x1bf8e6('0x561')]}],['approver3',{'label':_0x1bf8e6('0xa9b'),'type':_0x1bf8e6('0x15'),'allow-null':!0x0,'null-label':_0x1bf8e6('0x37b'),'remote-source':['Employee','id',_0x1bf8e6('0x561')]}],[_0x1bf8e6('0xec'),{'label':_0x1bf8e6('0x662'),'type':'datagroup','form':[[_0x1bf8e6('0x50a'),{'label':'Note','type':_0x1bf8e6('0x7ea'),'validation':''}]],'html':'#_delete_##_edit_#Date:\x20#_date_#
#_note_#','validation':'none','columns':[{'title':'Note','dataIndex':_0x1bf8e6('0x50a'),'key':_0x1bf8e6('0x50a')}],'sort-function':function(_0x24a672,_0x44b0b7){var _0x39ff8f=_0x1bf8e6;return Date[_0x39ff8f('0x104a')](_0x24a672[_0x39ff8f('0x2a5')])[_0x39ff8f('0x4a2')]()0x0&&_0x125840[_0x348034('0x91b')]({'title':this['gt'](_0x348034('0xf46')),'description':this['gt'](_0x348034('0x10d')),'fields':this[_0x348034('0x105b')][_0x348034('0xd8e')](function(_0xb5f4d6){return _0xb5f4d6[0x0];})}),this['addActualFieldsForStepModal'](_0x125840,_0x18aab5);}},{'key':_0x3f1a10('0x51c'),'value':function(){var _0x58f2db=_0x3f1a10;return[[_0x58f2db('0x8d4'),{'label':_0x58f2db('0xfd4'),'type':_0x58f2db('0x15'),'allow-null':!0x0,'null-label':'All\x20Job\x20Titles','remote-source':[_0x58f2db('0x97'),'id',_0x58f2db('0x3ea')]}],[_0x58f2db('0xed2'),{'label':_0x58f2db('0x3c6'),'type':_0x58f2db('0x15'),'allow-null':!0x0,'null-label':_0x58f2db('0x1068'),'remote-source':[_0x58f2db('0x5f0'),'id',_0x58f2db('0xf6d')]}],['supervisor',{'label':_0x58f2db('0x1a0'),'type':_0x58f2db('0x15'),'allow-null':!0x0,'null-label':_0x58f2db('0x17f'),'remote-source':[_0x58f2db('0x10f9'),'id',_0x58f2db('0x561')]}]];}},{'key':'getTableActionButtonJsx','value':function(_0x2455e0){return function(_0x536878,_0x58fa77){var _0x1fca69=_0x5376;return _0x4c6ed6[_0x1fca69('0xf5f')][_0x1fca69('0xfa9')](_0x3d7adf['Space'],{'size':'middle'},_0x4c6ed6['default'][_0x1fca69('0xfa9')](_0x3d7adf['Tag'],{'color':_0x1fca69('0xd62'),'onClick':function(){var _0x90c33b=_0x1fca69;return modJs[_0x90c33b('0xdc0')](_0x58fa77['id']);},'style':{'cursor':_0x1fca69('0x3e1')}},_0x4c6ed6[_0x1fca69('0xf5f')]['createElement'](_0x3c5955[_0x1fca69('0x88c')],null),'\x20'['concat'](_0x2455e0['gt']('Login\x20As'))),_0x2455e0[_0x1fca69('0x809')](_0x1fca69('0xb6'))&&_0x2455e0['showEdit']&&_0x4c6ed6[_0x1fca69('0xf5f')][_0x1fca69('0xfa9')](_0x3d7adf[_0x1fca69('0x9ca')],{'color':_0x1fca69('0x62c'),'onClick':function(){var _0x26000f=_0x1fca69;return modJs[_0x26000f('0x1df')](_0x58fa77['id']);},'style':{'cursor':_0x1fca69('0x3e1')}},_0x4c6ed6[_0x1fca69('0xf5f')]['createElement'](_0x3c5955[_0x1fca69('0xa02')],null),'\x20'['concat'](_0x2455e0['gt']('Edit'))),_0x2455e0[_0x1fca69('0x809')](_0x1fca69('0x23a'))&&_0x4c6ed6[_0x1fca69('0xf5f')][_0x1fca69('0xfa9')](_0x3d7adf['Tag'],{'color':_0x1fca69('0x10a7'),'onClick':function(){return modJs['viewElement'](_0x58fa77['id']);},'style':{'cursor':_0x1fca69('0x3e1')}},_0x4c6ed6[_0x1fca69('0xf5f')][_0x1fca69('0xfa9')](_0x3c5955['MonitorOutlined'],null),'\x20'[_0x1fca69('0xda9')](_0x2455e0['gt']('View'))),_0x2455e0[_0x1fca69('0x809')](_0x1fca69('0x41d'))&&_0x2455e0['showDelete']&&_0x4c6ed6[_0x1fca69('0xf5f')][_0x1fca69('0xfa9')](_0x3d7adf[_0x1fca69('0x9ca')],{'color':_0x1fca69('0xe3'),'onClick':function(){var _0x285066=_0x1fca69;return modJs[_0x285066('0xae9')](_0x58fa77['id']);},'style':{'cursor':_0x1fca69('0x3e1')}},_0x4c6ed6['default']['createElement'](_0x3c5955[_0x1fca69('0x157')],null),'\x20'[_0x1fca69('0xda9')](_0x2455e0['gt'](_0x1fca69('0x6dc')))),_0x2455e0['hasAccess'](_0x1fca69('0xb6'))&&_0x4c6ed6[_0x1fca69('0xf5f')][_0x1fca69('0xfa9')](_0x3d7adf[_0x1fca69('0x9ca')],{'color':_0x1fca69('0x10de'),'onClick':function(){var _0x2fb1c3=_0x1fca69;return modJs[_0x2fb1c3('0x505')](_0x58fa77['id']);},'style':{'cursor':_0x1fca69('0x3e1')}},_0x4c6ed6[_0x1fca69('0xf5f')][_0x1fca69('0xfa9')](_0x3c5955[_0x1fca69('0xa6a')],null),'\x20'[_0x1fca69('0xda9')](_0x2455e0['gt'](_0x1fca69('0xa0a')))));};}},{'key':'getActionButtonsHtml','value':function(_0x1ea84a){var _0xf2ada5=_0x3f1a10,_0x271f2f='';!0x1===this[_0xf2ada5('0xab3')]&&(_0x271f2f='');var _0x381cb6='\x0a\x0a\x0a\x0a'[_0xf2ada5('0xda9')](_0x271f2f,'\x0a');return _0x381cb6=(_0x381cb6=_0x381cb6['replace'](/_id_/g,_0x1ea84a))[_0xf2ada5('0xd06')](/_BASE_/g,this[_0xf2ada5('0x598')]);}},{'key':'getHelpLink','value':function(){var _0x33c75a=_0x3f1a10;return _0x33c75a('0x86e');}},{'key':_0x3f1a10('0x940'),'value':function(_0x505b79){var _0x5f0eb7=_0x3f1a10;this[_0x5f0eb7('0xbff')]=_0x505b79,null===this[_0x5f0eb7('0x9b6')]&&$('#createUserModel')[_0x5f0eb7('0xf89')](_0x5f0eb7('0x312'));}},{'key':'closeCreateUser','value':function(){$('#createUserModel')['modal']('hide');}},{'key':_0x3f1a10('0x107e'),'value':function(){var _0x1e5520=_0x3f1a10,_0x2de1cd={};_0x2de1cd[_0x1e5520('0x10d1')]=this['lastSavedEmployee']['id'],_0x2de1cd[_0x1e5520('0x6e8')]=_0x1e5520('0x10f9'),_0x2de1cd[_0x1e5520('0xad6')]=this[_0x1e5520('0xbff')][_0x1e5520('0x725')],_0x2de1cd[_0x1e5520('0xdd0')]=this[_0x1e5520('0xbff')]['work_email']['split']('@')[0x0],top[_0x1e5520('0x86')][_0x1e5520('0xcf7')]=this[_0x1e5520('0xb4c')](_0x1e5520('0x12b')[_0x1e5520('0xda9')](Base64[_0x1e5520('0x8d6')](JSON[_0x1e5520('0xf0b')](_0x2de1cd))));}},{'key':_0x3f1a10('0x529'),'value':function(_0x7f622){var _0x32a79f=_0x3f1a10;if(confirm('Are\x20you\x20sure\x20you\x20want\x20to\x20archive\x20this\x20employee?\x20Data\x20for\x20this\x20employee\x20will\x20be\x20saved\x20to\x20an\x20archive\x20table.\x20But\x20you\x20will\x20not\x20be\x20able\x20to\x20covert\x20the\x20archived\x20employee\x20data\x20into\x20a\x20normal\x20employee.')){var _0x242169=[];_0x242169[_0x32a79f('0x88d')]=[],_0x242169[_0x32a79f('0x691')]=_0x32a79f('0xba1'),_0x242169[_0x32a79f('0xc93')]=_0x32a79f('0xa97'),this[_0x32a79f('0xd99')](_0x32a79f('0x529'),'admin=employees',JSON[_0x32a79f('0xf0b')]({'id':_0x7f622}),_0x242169);}}},{'key':_0x3f1a10('0xba1'),'value':function(_0x37bdd2){var _0x22e566=_0x3f1a10;this[_0x22e566('0xaa4')](_0x22e566('0xd02'),_0x22e566('0x95a')),this[_0x22e566('0xd12')]([]);}},{'key':_0x3f1a10('0xa97'),'value':function(_0x5e4d6c){var _0x3fdc01=_0x3f1a10;this[_0x3fdc01('0xaa4')](_0x3fdc01('0x8c5'),_0x5e4d6c);}},{'key':_0x3f1a10('0xae9'),'value':function(_0x253369){var _0x31c4c7=_0x3f1a10;if(confirm(_0x31c4c7('0x4e5'))){var _0x1c5133={};_0x1c5133['id']=_0x253369;var _0x413d43=JSON[_0x31c4c7('0xf0b')](_0x1c5133),_0x352f6b=[];_0x352f6b['callBackData']=[],_0x352f6b[_0x31c4c7('0x691')]=_0x31c4c7('0x195'),_0x352f6b['callBackFail']=_0x31c4c7('0x3e9'),this[_0x31c4c7('0xd99')]('terminateEmployee',_0x31c4c7('0x10c5'),_0x413d43,_0x352f6b);}}},{'key':_0x3f1a10('0x195'),'value':function(_0x320b93){var _0x3e6e27=_0x3f1a10;this[_0x3e6e27('0xaa4')](_0x3e6e27('0xd5c'),_0x3e6e27('0xe5d')),this[_0x3e6e27('0xd12')]([]);}},{'key':'terminateEmployeeFailCallback','value':function(_0x45c054){var _0x3a4d44=_0x3f1a10;this['showMessage'](_0x3a4d44('0x20b'),_0x45c054);}},{'key':_0x3f1a10('0x935'),'value':function(_0x4b090c){var _0x50a1b6=_0x3f1a10;if(confirm(_0x50a1b6('0xc4c'))){var _0x1c8aca={};_0x1c8aca['id']=_0x4b090c;var _0xd7ce7e=JSON[_0x50a1b6('0xf0b')](_0x1c8aca),_0xe1b0c6=[];_0xe1b0c6[_0x50a1b6('0x88d')]=[],_0xe1b0c6[_0x50a1b6('0x691')]='activateEmployeeSuccessCallback',_0xe1b0c6[_0x50a1b6('0xc93')]=_0x50a1b6('0x9f9'),this['customAction']('activateEmployee',_0x50a1b6('0x10c5'),_0xd7ce7e,_0xe1b0c6);}}},{'key':'activateEmployeeSuccessCallback','value':function(_0x22a07d){var _0x1a3df5=_0x3f1a10;this['showMessage'](_0x1a3df5('0xd5c'),_0x1a3df5('0x10f5')),this['get']([]);}},{'key':_0x3f1a10('0x9f9'),'value':function(_0x4ad3a1){var _0x523aa0=_0x3f1a10;this[_0x523aa0('0xaa4')](_0x523aa0('0x7c1'),_0x4ad3a1);}},{'key':_0x3f1a10('0x770'),'value':function(_0x33d6a5){var _0x1ef229=_0x3f1a10;this['currentId']=_0x33d6a5;var _0x139aae={'id':_0x33d6a5,'map':JSON['stringify'](this['getSourceMapping']())},_0x53a71e=JSON[_0x1ef229('0xf0b')](_0x139aae),_0x332d7b=[];_0x332d7b[_0x1ef229('0x88d')]=[],_0x332d7b['callBackSuccess']=_0x1ef229('0xfa8'),_0x332d7b['callBackFail']=_0x1ef229('0xbba'),this[_0x1ef229('0xd99')](_0x1ef229('0xd12'),'modules=employees',_0x53a71e,_0x332d7b);}},{'key':_0x3f1a10('0xbba'),'value':function(_0x10e965){var _0x6d40f4=_0x3f1a10;this[_0x6d40f4('0xaa4')](_0x6d40f4('0x1bb'),_0x6d40f4('0x396'));}},{'key':_0x3f1a10('0xdf6'),'value':function(_0x2c9fa9){var _0x5221c6=_0x3f1a10,_0xb78379={'id':_0x2c9fa9},_0x123bee=JSON[_0x5221c6('0xf0b')](_0xb78379),_0x367ad4=[];_0x367ad4['callBackData']=[],_0x367ad4[_0x5221c6('0x691')]='modEmployeeDeleteProfileImageCallBack',_0x367ad4[_0x5221c6('0xc93')]=_0x5221c6('0xe63'),this[_0x5221c6('0xd99')](_0x5221c6('0xdf6'),_0x5221c6('0x28e'),_0x123bee,_0x367ad4);}},{'key':_0x3f1a10('0xe63'),'value':function(_0x5bf539){}}]),_0x5f87e8;}(_0x41c5da[_0x58c04d('0xf5f')]),_0x152d35=function(_0x1e34dd){var _0x4ad78c=_0x58c04d;_0x2a2bb3(_0x26453d,_0x1e34dd);var _0x4fa10e=_0x4a4217(_0x26453d);function _0x26453d(){return _0x2ca28e(this,_0x26453d),_0x4fa10e['apply'](this,arguments);}return _0x4632d8(_0x26453d,[{'key':_0x4ad78c('0x44a'),'value':function(){var _0x276440=_0x4ad78c;return['id',_0x276440('0x61'),'first_name',_0x276440('0x4c1'),_0x276440('0xf37'),'department',_0x276440('0x27c'),'supervisor'];}},{'key':_0x4ad78c('0x95e'),'value':function(){var _0x2c1c97=_0x4ad78c;return[{'sTitle':'ID'},{'sTitle':'','bSortable':!0x1},{'sTitle':_0x2c1c97('0x654')},{'sTitle':_0x2c1c97('0x81d')},{'sTitle':_0x2c1c97('0x70f')},{'sTitle':_0x2c1c97('0x859')},{'sTitle':_0x2c1c97('0x3c6')},{'sTitle':_0x2c1c97('0xe7')},{'sTitle':_0x2c1c97('0x1a0')}];}},{'key':_0x4ad78c('0xb81'),'value':function(){var _0x489ff4=_0x4ad78c;return[{'title':_0x489ff4('0x654'),'dataIndex':_0x489ff4('0x61'),'sorter':!0x0},{'title':_0x489ff4('0x81d'),'dataIndex':_0x489ff4('0x112')},{'title':_0x489ff4('0x70f'),'dataIndex':_0x489ff4('0x4c1')},{'title':_0x489ff4('0x3c6'),'dataIndex':_0x489ff4('0xed2')},{'title':_0x489ff4('0x1a0'),'dataIndex':'supervisor'}];}},{'key':'getFilters','value':function(){var _0x41ed25=_0x4ad78c;return[[_0x41ed25('0x8d4'),{'label':_0x41ed25('0xfd4'),'type':_0x41ed25('0x15'),'allow-null':!0x0,'null-label':_0x41ed25('0x679'),'remote-source':[_0x41ed25('0x97'),'id',_0x41ed25('0x3ea')]}],[_0x41ed25('0xed2'),{'label':_0x41ed25('0x3c6'),'type':_0x41ed25('0x15'),'allow-null':!0x0,'null-label':_0x41ed25('0x1068'),'remote-source':[_0x41ed25('0x5f0'),'id',_0x41ed25('0xf6d')]}],['supervisor',{'label':_0x41ed25('0x1a0'),'type':_0x41ed25('0x15'),'allow-null':!0x0,'null-label':_0x41ed25('0x17f'),'remote-source':[_0x41ed25('0x10f9'),'id',_0x41ed25('0x561')]}]];}},{'key':_0x4ad78c('0xe26'),'value':function(_0x2ef71e){var _0x367fdd=_0x4ad78c,_0xebe907=_0x367fdd('0x480');return _0xebe907=(_0xebe907=_0xebe907['replace'](/_id_/g,_0x2ef71e))[_0x367fdd('0xd06')](/_BASE_/g,this[_0x367fdd('0x598')]);}},{'key':'download','value':function(_0x1cdfc7){var _0x12dc46=_0x4ad78c,_0x19ed21={'t':'ArchivedEmployee','sa':_0x12dc46('0x116'),'mod':_0x12dc46('0x10c5')};_0x19ed21[_0x12dc46('0xe8c')]=JSON['stringify']({'id':_0x1cdfc7});var _0x5544df=modJs[_0x12dc46('0x8af')]('ca',_0x19ed21);window[_0x12dc46('0xa99')](_0x5544df,_0x12dc46('0x340'));}},{'key':_0x4ad78c('0x50b'),'value':function(_0x521d29){return function(_0x18afe4,_0x205217){var _0x190a12=_0x5376;return _0x4c6ed6[_0x190a12('0xf5f')]['createElement'](_0x3d7adf[_0x190a12('0xfc')],{'size':'middle'},_0x4c6ed6[_0x190a12('0xf5f')][_0x190a12('0xfa9')](_0x3d7adf[_0x190a12('0x9ca')],{'color':_0x190a12('0x10de'),'onClick':function(){return modJs['activateEmployee'](_0x205217['id']);},'style':{'cursor':'pointer'}},_0x4c6ed6['default'][_0x190a12('0xfa9')](_0x3c5955[_0x190a12('0x34a')],null),'\x20'[_0x190a12('0xda9')](_0x521d29['gt'](_0x190a12('0x818')))),_0x521d29[_0x190a12('0x809')]('delete')&&_0x521d29['showDelete']&&_0x4c6ed6[_0x190a12('0xf5f')][_0x190a12('0xfa9')](_0x3d7adf[_0x190a12('0x9ca')],{'color':_0x190a12('0xe3'),'onClick':function(){var _0x47bd67=_0x190a12;return modJs[_0x47bd67('0x529')](_0x205217['id']);},'style':{'cursor':_0x190a12('0x3e1')}},_0x4c6ed6[_0x190a12('0xf5f')][_0x190a12('0xfa9')](_0x3c5955[_0x190a12('0x157')],null),'\x20'[_0x190a12('0xda9')](_0x521d29['gt'](_0x190a12('0x675')))));};}}]),_0x26453d;}(_0x116996),_0x5554c9=function(_0x120337){var _0x258d52=_0x58c04d;_0x2a2bb3(_0x16961a,_0x120337);var _0x31591e=_0x4a4217(_0x16961a);function _0x16961a(){var _0x3c0990=_0x5376;return _0x2ca28e(this,_0x16961a),_0x31591e[_0x3c0990('0x2be')](this,arguments);}return _0x4632d8(_0x16961a,[{'key':_0x258d52('0x44a'),'value':function(){var _0xfaa54c=_0x258d52;return['id',_0xfaa54c('0x61'),_0xfaa54c('0x112'),'last_name','work_email',_0xfaa54c('0xed2'),'gender',_0xfaa54c('0xf9')];}},{'key':_0x258d52('0x95e'),'value':function(){var _0x113b41=_0x258d52;return[{'sTitle':'ID'},{'sTitle':'Employee\x20Number'},{'sTitle':_0x113b41('0x81d')},{'sTitle':_0x113b41('0x70f')},{'sTitle':'Work\x20Email'},{'sTitle':_0x113b41('0x3c6')},{'sTitle':_0x113b41('0xe7')},{'sTitle':_0x113b41('0x1a0')}];}},{'key':_0x258d52('0xb81'),'value':function(){var _0xf0b16c=_0x258d52;return[{'title':'Employee\x20Number','dataIndex':_0xf0b16c('0x61'),'sorter':!0x0},{'title':'First\x20Name','dataIndex':_0xf0b16c('0x112')},{'title':_0xf0b16c('0x70f'),'dataIndex':_0xf0b16c('0x4c1')},{'title':_0xf0b16c('0x3c6'),'dataIndex':'department'},{'title':_0xf0b16c('0x1a0'),'dataIndex':'supervisor'}];}},{'key':'getFormFields','value':function(){var _0x5379cd=_0x258d52;return[['id',{'label':'ID','type':_0x5379cd('0x10f4'),'validation':''}],[_0x5379cd('0x61'),{'label':'Employee\x20Number','type':'text','validation':''}],['first_name',{'label':_0x5379cd('0x81d'),'type':_0x5379cd('0x5b2'),'validation':''}],[_0x5379cd('0x541'),{'label':'Middle\x20Name','type':_0x5379cd('0x5b2'),'validation':'none'}],[_0x5379cd('0x4c1'),{'label':_0x5379cd('0x70f'),'type':_0x5379cd('0x5b2'),'validation':''}],[_0x5379cd('0x27c'),{'label':_0x5379cd('0xe7'),'type':'select','source':[[_0x5379cd('0x989'),'Male'],[_0x5379cd('0x2ba'),_0x5379cd('0x2ba')],[_0x5379cd('0xf46'),'Other']]}],[_0x5379cd('0xc53'),{'label':_0x5379cd('0x33a'),'type':'text','validation':_0x5379cd('0xea1')}],[_0x5379cd('0x10f6'),{'label':_0x5379cd('0xcb3'),'type':_0x5379cd('0x5b2'),'validation':_0x5379cd('0xea1')}],['other_id',{'label':_0x5379cd('0x200'),'type':_0x5379cd('0x5b2'),'validation':_0x5379cd('0xea1')}],[_0x5379cd('0xa53'),{'label':_0x5379cd('0x5a9'),'type':'text','validation':_0x5379cd('0xea1')}],[_0x5379cd('0xed2'),{'label':'Department','type':_0x5379cd('0x15'),'remote-source':[_0x5379cd('0x5f0'),'id',_0x5379cd('0xf6d')]}],['supervisor',{'label':_0x5379cd('0x1a0'),'type':_0x5379cd('0x15'),'allow-null':!0x0,'remote-source':[_0x5379cd('0x10f9'),'id',_0x5379cd('0x561')]}]];}},{'key':'getFilters','value':function(){var _0x17fe51=_0x258d52;return[[_0x17fe51('0x8d4'),{'label':_0x17fe51('0xfd4'),'type':'select2','allow-null':!0x0,'null-label':'All\x20Job\x20Titles','remote-source':['JobTitle','id',_0x17fe51('0x3ea')]}],[_0x17fe51('0xed2'),{'label':'Department','type':_0x17fe51('0x15'),'allow-null':!0x0,'null-label':_0x17fe51('0x1068'),'remote-source':[_0x17fe51('0x5f0'),'id',_0x17fe51('0xf6d')]}],[_0x17fe51('0xf9'),{'label':_0x17fe51('0x1a0'),'type':_0x17fe51('0x15'),'allow-null':!0x0,'null-label':_0x17fe51('0x17f'),'remote-source':[_0x17fe51('0x10f9'),'id',_0x17fe51('0x561')]}]];}},{'key':_0x258d52('0xe26'),'value':function(_0x1099fe){var _0xececec=_0x258d52,_0x622dbf=_0xececec('0x198');return _0x622dbf=(_0x622dbf=_0x622dbf[_0xececec('0xd06')](/_id_/g,_0x1099fe))[_0xececec('0xd06')](/_BASE_/g,this[_0xececec('0x598')]);}},{'key':_0x258d52('0x113'),'value':function(_0x3b2fab){var _0x19e751=_0x258d52,_0xfefdd4={'t':_0x19e751('0x53c'),'sa':_0x19e751('0x116'),'mod':_0x19e751('0x10c5')};_0xfefdd4[_0x19e751('0xe8c')]=JSON[_0x19e751('0xf0b')]({'id':_0x3b2fab});var _0x3b8185=modJs[_0x19e751('0x8af')]('ca',_0xfefdd4);window[_0x19e751('0xa99')](_0x3b8185,_0x19e751('0x340'));}},{'key':'getTableActionButtonJsx','value':function(_0x42cc8f){return function(_0x1d5341,_0x84109b){var _0x551401=_0x5376;return _0x4c6ed6['default'][_0x551401('0xfa9')](_0x3d7adf[_0x551401('0xfc')],{'size':_0x551401('0x75a')},_0x42cc8f['hasAccess'](_0x551401('0x23a'))&&_0x4c6ed6['default'][_0x551401('0xfa9')](_0x3d7adf['Tag'],{'color':_0x551401('0x10a7'),'onClick':function(){return modJs['viewElement'](_0x84109b['id']);},'style':{'cursor':_0x551401('0x3e1')}},_0x4c6ed6[_0x551401('0xf5f')][_0x551401('0xfa9')](_0x3c5955['MonitorOutlined'],null),'\x20'[_0x551401('0xda9')](_0x42cc8f['gt'](_0x551401('0x721')))),_0x4c6ed6[_0x551401('0xf5f')]['createElement'](_0x3d7adf['Tag'],{'color':'cyan','onClick':function(){var _0xb5f4b7=_0x551401;return modJs[_0xb5f4b7('0x113')](_0x84109b['id']);},'style':{'cursor':_0x551401('0x3e1')}},_0x4c6ed6[_0x551401('0xf5f')][_0x551401('0xfa9')](_0x3c5955[_0x551401('0xe23')],null),'\x20'[_0x551401('0xda9')](_0x42cc8f['gt'](_0x551401('0x70d')))),_0x42cc8f[_0x551401('0x809')](_0x551401('0x41d'))&&_0x42cc8f[_0x551401('0xab3')]&&_0x4c6ed6['default'][_0x551401('0xfa9')](_0x3d7adf[_0x551401('0x9ca')],{'color':_0x551401('0xe3'),'onClick':function(){return modJs['deleteRow'](_0x84109b['id']);},'style':{'cursor':_0x551401('0x3e1')}},_0x4c6ed6['default'][_0x551401('0xfa9')](_0x3c5955[_0x551401('0x157')],null),'\x20'[_0x551401('0xda9')](_0x42cc8f['gt']('Delete'))));};}}]),_0x16961a;}(_0x587442),_0x251f44=function(_0x346fb6){var _0x197fef=_0x58c04d;_0x2a2bb3(_0x1724af,_0x346fb6);var _0x34c48d=_0x4a4217(_0x1724af);function _0x1724af(){var _0x3c25fc=_0x5376;return _0x2ca28e(this,_0x1724af),_0x34c48d[_0x3c25fc('0x2be')](this,arguments);}return _0x4632d8(_0x1724af,[{'key':_0x197fef('0x44a'),'value':function(){var _0x136b9b=_0x197fef;return['id',_0x136b9b('0x10d1'),'skill_id',_0x136b9b('0x1093')];}},{'key':_0x197fef('0x95e'),'value':function(){var _0x3fe0cc=_0x197fef;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x3fe0cc('0x10f9')},{'sTitle':_0x3fe0cc('0xdfc')},{'sTitle':_0x3fe0cc('0xd87')}];}},{'key':'getTableColumns','value':function(){var _0x3a6764=_0x197fef;return[{'title':'Employee','dataIndex':_0x3a6764('0x10d1'),'sorter':!0x0},{'title':'Skill','dataIndex':_0x3a6764('0xe72'),'sorter':!0x0},{'title':'Details','dataIndex':_0x3a6764('0x1093')}];}},{'key':_0x197fef('0x10d7'),'value':function(){var _0x5814db=_0x197fef;return[['id',{'label':'ID','type':_0x5814db('0x10f4')}],[_0x5814db('0x10d1'),{'label':_0x5814db('0x10f9'),'type':_0x5814db('0x15'),'sort':_0x5814db('0xea1'),'allow-null':!0x1,'remote-source':[_0x5814db('0x10f9'),'id',_0x5814db('0x561'),_0x5814db('0xda1')]}],[_0x5814db('0xe72'),{'label':'Skill','type':_0x5814db('0x15'),'allow-null':!0x0,'remote-source':['Skill','id','name']}],['details',{'label':_0x5814db('0xd87'),'type':_0x5814db('0x7ea'),'validation':''}]];}},{'key':_0x197fef('0x51c'),'value':function(){var _0x3a57d1=_0x197fef;return[[_0x3a57d1('0x10d1'),{'label':'Employee','type':'select2','sort':_0x3a57d1('0xea1'),'allow-null':!0x1,'remote-source':[_0x3a57d1('0x10f9'),'id','first_name+last_name',_0x3a57d1('0xda1')]}],['skill_id',{'label':_0x3a57d1('0xdfc'),'type':'select2','allow-null':!0x0,'null-label':_0x3a57d1('0x53a'),'remote-source':[_0x3a57d1('0xdfc'),'id',_0x3a57d1('0x3ea')]}]];}},{'key':_0x197fef('0x816'),'value':function(){var _0x1c5806=_0x197fef;return'Admin'!==this[_0x1c5806('0x34b')]['user_level']&&'Restricted\x20Admin'!==this['user']['user_level'];}}]),_0x1724af;}(_0x41c5da[_0x58c04d('0xf5f')]),_0x47305a=function(_0x342460){var _0x59d164=_0x58c04d;_0x2a2bb3(_0x4a17ae,_0x342460);var _0x3740ce=_0x4a4217(_0x4a17ae);function _0x4a17ae(){var _0x3e1a7b=_0x5376;return _0x2ca28e(this,_0x4a17ae),_0x3740ce[_0x3e1a7b('0x2be')](this,arguments);}return _0x4632d8(_0x4a17ae,[{'key':_0x59d164('0x44a'),'value':function(){var _0x30f455=_0x59d164;return['id',_0x30f455('0x10d1'),'education_id','institute','date_start','date_end'];}},{'key':_0x59d164('0xb81'),'value':function(){var _0x56b5ad=_0x59d164;return[{'title':_0x56b5ad('0x10f9'),'dataIndex':_0x56b5ad('0x10d1'),'sorter':!0x0},{'title':'Qualification','dataIndex':_0x56b5ad('0x6a4'),'sorter':!0x0},{'title':_0x56b5ad('0x278'),'dataIndex':_0x56b5ad('0x120'),'sorter':!0x0},{'title':_0x56b5ad('0xc0'),'dataIndex':_0x56b5ad('0x392'),'sorter':!0x0},{'title':'Completed\x20On','dataIndex':'date_end','sorter':!0x0}];}},{'key':_0x59d164('0x95e'),'value':function(){var _0x1f923b=_0x59d164;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Employee'},{'sTitle':_0x1f923b('0x107a')},{'sTitle':_0x1f923b('0x278')},{'sTitle':_0x1f923b('0xc0')},{'sTitle':_0x1f923b('0xed0')}];}},{'key':_0x59d164('0x10d7'),'value':function(){var _0x8785d2=_0x59d164;return[['id',{'label':'ID','type':'hidden'}],[_0x8785d2('0x10d1'),{'label':'Employee','type':_0x8785d2('0x15'),'sort':_0x8785d2('0xea1'),'allow-null':!0x1,'remote-source':['Employee','id',_0x8785d2('0x561'),_0x8785d2('0xda1')]}],[_0x8785d2('0x6a4'),{'label':'Qualification','type':_0x8785d2('0x15'),'allow-null':!0x1,'remote-source':[_0x8785d2('0x7a4'),'id',_0x8785d2('0x3ea')]}],['institute',{'label':'Institute','type':_0x8785d2('0x5b2'),'validation':''}],['date_start',{'label':_0x8785d2('0xc0'),'type':_0x8785d2('0x2a5'),'validation':_0x8785d2('0xea1')}],['date_end',{'label':'Completed\x20On','type':_0x8785d2('0x2a5'),'validation':_0x8785d2('0xea1')}]];}},{'key':_0x59d164('0x51c'),'value':function(){var _0x1294a6=_0x59d164;return[[_0x1294a6('0x10d1'),{'label':_0x1294a6('0x10f9'),'type':_0x1294a6('0x15'),'sort':_0x1294a6('0xea1'),'allow-null':!0x1,'remote-source':[_0x1294a6('0x10f9'),'id',_0x1294a6('0x561'),'getActiveSubordinateEmployees']}],[_0x1294a6('0x6a4'),{'label':_0x1294a6('0x107a'),'type':_0x1294a6('0x15'),'allow-null':!0x0,'null-label':_0x1294a6('0xf7f'),'remote-source':[_0x1294a6('0x7a4'),'id',_0x1294a6('0x3ea')]}]];}},{'key':'isSubProfileTable','value':function(){var _0x2b09d2=_0x59d164;return _0x2b09d2('0x2c2')!==this['user'][_0x2b09d2('0x6e8')]&&_0x2b09d2('0x87b')!==this[_0x2b09d2('0x34b')][_0x2b09d2('0x6e8')];}}]),_0x4a17ae;}(_0x587442),_0x1eea11=function(_0x16c571){var _0xae4609=_0x58c04d;_0x2a2bb3(_0x47e3db,_0x16c571);var _0xd7c196=_0x4a4217(_0x47e3db);function _0x47e3db(){var _0xdfce8b=_0x5376;return _0x2ca28e(this,_0x47e3db),_0xd7c196[_0xdfce8b('0x2be')](this,arguments);}return _0x4632d8(_0x47e3db,[{'key':_0xae4609('0x44a'),'value':function(){var _0x43ae7b=_0xae4609;return['id',_0x43ae7b('0x10d1'),_0x43ae7b('0x9bd'),_0x43ae7b('0x120'),_0x43ae7b('0x392'),_0x43ae7b('0xed9')];}},{'key':_0xae4609('0x95e'),'value':function(){var _0x1eacd6=_0xae4609;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Employee'},{'sTitle':'Certification'},{'sTitle':_0x1eacd6('0x278')},{'sTitle':_0x1eacd6('0x81b')},{'sTitle':'Valid\x20Thru'}];}},{'key':_0xae4609('0xb81'),'value':function(){var _0x5ce77d=_0xae4609;return[{'title':_0x5ce77d('0x10f9'),'dataIndex':_0x5ce77d('0x10d1'),'sorter':!0x0},{'title':_0x5ce77d('0x259'),'dataIndex':_0x5ce77d('0x9bd'),'sorter':!0x0},{'title':'Institute','dataIndex':'institute','sorter':!0x0},{'title':_0x5ce77d('0x81b'),'dataIndex':_0x5ce77d('0x392'),'sorter':!0x0},{'title':_0x5ce77d('0x9ef'),'dataIndex':_0x5ce77d('0xed9'),'sorter':!0x0}];}},{'key':_0xae4609('0x10d7'),'value':function(){var _0x5195f8=_0xae4609;return[['id',{'label':'ID','type':'hidden'}],[_0x5195f8('0x10d1'),{'label':_0x5195f8('0x10f9'),'type':_0x5195f8('0x15'),'sort':_0x5195f8('0xea1'),'allow-null':!0x1,'remote-source':['Employee','id','first_name+last_name','getActiveSubordinateEmployees']}],['certification_id',{'label':_0x5195f8('0x259'),'type':_0x5195f8('0x15'),'allow-null':!0x1,'remote-source':[_0x5195f8('0x259'),'id',_0x5195f8('0x3ea')]}],['institute',{'label':_0x5195f8('0x278'),'type':'text','validation':''}],[_0x5195f8('0x392'),{'label':_0x5195f8('0x81b'),'type':_0x5195f8('0x2a5'),'validation':_0x5195f8('0xea1')}],['date_end',{'label':'Valid\x20Thru','type':_0x5195f8('0x2a5'),'validation':'none'}]];}},{'key':'getFilters','value':function(){var _0x12bdec=_0xae4609;return[['employee',{'label':_0x12bdec('0x10f9'),'type':_0x12bdec('0x15'),'sort':_0x12bdec('0xea1'),'allow-null':!0x1,'remote-source':['Employee','id',_0x12bdec('0x561'),'getActiveSubordinateEmployees']}],['certification_id',{'label':_0x12bdec('0x259'),'type':'select2','allow-null':!0x0,'null-label':_0x12bdec('0x863'),'remote-source':[_0x12bdec('0x259'),'id',_0x12bdec('0x3ea')]}]];}},{'key':'isSubProfileTable','value':function(){var _0x26a96a=_0xae4609;return'Admin'!==this[_0x26a96a('0x34b')][_0x26a96a('0x6e8')]&&_0x26a96a('0x87b')!==this[_0x26a96a('0x34b')][_0x26a96a('0x6e8')];}}]),_0x47e3db;}(_0x587442),_0x3ab2a1=function(_0x2f1a54){var _0x2a33fe=_0x58c04d;_0x2a2bb3(_0x18ec3d,_0x2f1a54);var _0x4fd11a=_0x4a4217(_0x18ec3d);function _0x18ec3d(){return _0x2ca28e(this,_0x18ec3d),_0x4fd11a['apply'](this,arguments);}return _0x4632d8(_0x18ec3d,[{'key':_0x2a33fe('0x44a'),'value':function(){var _0x381aab=_0x2a33fe;return['id','employee',_0x381aab('0x5f6'),_0x381aab('0xfa'),_0x381aab('0xd79'),_0x381aab('0x99a'),'understanding'];}},{'key':_0x2a33fe('0x95e'),'value':function(){var _0x452882=_0x2a33fe;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x452882('0x10f9')},{'sTitle':_0x452882('0x483')},{'sTitle':_0x452882('0xcf4')},{'sTitle':'Speaking'},{'sTitle':_0x452882('0xe7c')},{'sTitle':_0x452882('0x8b4')}];}},{'key':_0x2a33fe('0xb81'),'value':function(){var _0x1f620e=_0x2a33fe;return[{'title':_0x1f620e('0x10f9'),'dataIndex':_0x1f620e('0x10d1'),'sorter':!0x0},{'title':_0x1f620e('0x483'),'dataIndex':_0x1f620e('0x5f6'),'sorter':!0x0},{'title':_0x1f620e('0xcf4'),'dataIndex':'reading','sorter':!0x0},{'title':_0x1f620e('0x115e'),'dataIndex':'speaking','sorter':!0x0},{'title':_0x1f620e('0xe7c'),'dataIndex':_0x1f620e('0x99a'),'sorter':!0x0},{'title':'Listening','dataIndex':'understanding','sorter':!0x0}];}},{'key':_0x2a33fe('0x10d7'),'value':function(){var _0x58206f=_0x2a33fe,_0x52de81=[[_0x58206f('0xd0d'),'Elementary\x20Proficiency'],[_0x58206f('0x206'),_0x58206f('0x206')],[_0x58206f('0x15e'),_0x58206f('0x15e')],[_0x58206f('0xc5'),_0x58206f('0xc5')],[_0x58206f('0xa93'),_0x58206f('0xa93')]];return[['id',{'label':'ID','type':_0x58206f('0x10f4')}],[_0x58206f('0x10d1'),{'label':_0x58206f('0x10f9'),'type':_0x58206f('0x15'),'sort':'none','allow-null':!0x1,'remote-source':[_0x58206f('0x10f9'),'id',_0x58206f('0x561'),_0x58206f('0xda1')]}],['language_id',{'label':_0x58206f('0x483'),'type':_0x58206f('0x15'),'allow-null':!0x1,'remote-source':[_0x58206f('0x483'),'id','name']}],[_0x58206f('0xfa'),{'label':_0x58206f('0xcf4'),'type':_0x58206f('0x4ce'),'source':_0x52de81}],[_0x58206f('0xd79'),{'label':'Speaking','type':_0x58206f('0x4ce'),'source':_0x52de81}],[_0x58206f('0x99a'),{'label':_0x58206f('0xe7c'),'type':_0x58206f('0x4ce'),'source':_0x52de81}],['understanding',{'label':_0x58206f('0x8b4'),'type':_0x58206f('0x4ce'),'source':_0x52de81}]];}},{'key':_0x2a33fe('0x51c'),'value':function(){var _0xe47eee=_0x2a33fe;return[['employee',{'label':_0xe47eee('0x10f9'),'type':'select2','sort':_0xe47eee('0xea1'),'allow-null':!0x1,'remote-source':['Employee','id',_0xe47eee('0x561'),_0xe47eee('0xda1')]}],[_0xe47eee('0x5f6'),{'label':_0xe47eee('0x483'),'type':_0xe47eee('0x15'),'allow-null':!0x0,'null-label':_0xe47eee('0xcec'),'remote-source':[_0xe47eee('0x483'),'id','name']}]];}},{'key':'isSubProfileTable','value':function(){var _0x287d84=_0x2a33fe;return _0x287d84('0x2c2')!==this[_0x287d84('0x34b')][_0x287d84('0x6e8')]&&_0x287d84('0x87b')!==this[_0x287d84('0x34b')]['user_level'];}}]),_0x18ec3d;}(_0x587442),_0x5350bf=function(_0x3e7ae0){var _0x34957e=_0x58c04d;_0x2a2bb3(_0x55ada9,_0x3e7ae0);var _0x528996=_0x4a4217(_0x55ada9);function _0x55ada9(){return _0x2ca28e(this,_0x55ada9),_0x528996['apply'](this,arguments);}return _0x4632d8(_0x55ada9,[{'key':_0x34957e('0x44a'),'value':function(){var _0xc6a9d3=_0x34957e;return['id',_0xc6a9d3('0x10d1'),_0xc6a9d3('0x3ea'),_0xc6a9d3('0x596'),_0xc6a9d3('0x49b'),_0xc6a9d3('0xc44')];}},{'key':_0x34957e('0x95e'),'value':function(){var _0x26fcc5=_0x34957e;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x26fcc5('0x10f9')},{'sTitle':_0x26fcc5('0xdde')},{'sTitle':_0x26fcc5('0x41b')},{'sTitle':_0x26fcc5('0xf9a')},{'sTitle':_0x26fcc5('0x167')}];}},{'key':'getTableColumns','value':function(){var _0x222b22=_0x34957e;return[{'title':_0x222b22('0x10f9'),'dataIndex':_0x222b22('0x10d1'),'sorter':!0x0},{'title':_0x222b22('0xdde'),'dataIndex':_0x222b22('0x3ea'),'sorter':!0x0},{'title':_0x222b22('0x41b'),'dataIndex':_0x222b22('0x596'),'sorter':!0x0},{'title':_0x222b22('0xf9a'),'dataIndex':_0x222b22('0x49b'),'sorter':!0x0},{'title':_0x222b22('0x167'),'dataIndex':_0x222b22('0xc44')}];}},{'key':'getFormFields','value':function(){var _0xad4e7a=_0x34957e;return[['id',{'label':'ID','type':_0xad4e7a('0x10f4')}],[_0xad4e7a('0x10d1'),{'label':_0xad4e7a('0x10f9'),'type':_0xad4e7a('0x15'),'sort':_0xad4e7a('0xea1'),'allow-null':!0x1,'remote-source':['Employee','id',_0xad4e7a('0x561'),_0xad4e7a('0xda1')]}],[_0xad4e7a('0x3ea'),{'label':'Name','type':_0xad4e7a('0x5b2'),'validation':''}],[_0xad4e7a('0x596'),{'label':_0xad4e7a('0x41b'),'type':_0xad4e7a('0x4ce'),'source':[[_0xad4e7a('0x14'),_0xad4e7a('0x14')],[_0xad4e7a('0xc7e'),_0xad4e7a('0xc7e')],[_0xad4e7a('0x606'),_0xad4e7a('0x606')],[_0xad4e7a('0xf46'),'Other']]}],[_0xad4e7a('0x49b'),{'label':_0xad4e7a('0xf9a'),'type':'date','validation':''}],[_0xad4e7a('0xc44'),{'label':'Id\x20Number','type':_0xad4e7a('0x5b2'),'validation':'none'}]];}},{'key':_0x34957e('0x51c'),'value':function(){var _0x2471e8=_0x34957e;return[[_0x2471e8('0x10d1'),{'label':'Employee','type':_0x2471e8('0x15'),'sort':_0x2471e8('0xea1'),'allow-null':!0x1,'remote-source':[_0x2471e8('0x10f9'),'id',_0x2471e8('0x561'),_0x2471e8('0xda1')]}]];}},{'key':_0x34957e('0x816'),'value':function(){var _0x2dced3=_0x34957e;return _0x2dced3('0x2c2')!==this[_0x2dced3('0x34b')][_0x2dced3('0x6e8')]&&_0x2dced3('0x87b')!==this[_0x2dced3('0x34b')][_0x2dced3('0x6e8')];}}]),_0x55ada9;}(_0x587442),_0x5348e4=function(_0x107be2){var _0x320181=_0x58c04d;_0x2a2bb3(_0x2d7868,_0x107be2);var _0x301d0b=_0x4a4217(_0x2d7868);function _0x2d7868(){var _0x5786cf=_0x5376;return _0x2ca28e(this,_0x2d7868),_0x301d0b[_0x5786cf('0x2be')](this,arguments);}return _0x4632d8(_0x2d7868,[{'key':'getDataMapping','value':function(){var _0x2d7857=_0x5376;return['id',_0x2d7857('0x10d1'),_0x2d7857('0x3ea'),'relationship',_0x2d7857('0x5ca'),'work_phone',_0x2d7857('0xf37')];}},{'key':_0x320181('0x95e'),'value':function(){var _0x218c29=_0x320181;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x218c29('0x10f9')},{'sTitle':_0x218c29('0xdde')},{'sTitle':_0x218c29('0x41b')},{'sTitle':_0x218c29('0x251')},{'sTitle':_0x218c29('0xd35')},{'sTitle':_0x218c29('0xde6')}];}},{'key':_0x320181('0xb81'),'value':function(){var _0x3c73c7=_0x320181;return[{'title':_0x3c73c7('0x10f9'),'dataIndex':'employee','sorter':!0x0},{'title':_0x3c73c7('0xdde'),'dataIndex':_0x3c73c7('0x3ea'),'sorter':!0x0},{'title':'Relationship','dataIndex':_0x3c73c7('0x596'),'sorter':!0x0},{'title':_0x3c73c7('0x251'),'dataIndex':_0x3c73c7('0x5ca')},{'title':_0x3c73c7('0xd35'),'dataIndex':_0x3c73c7('0xd8')},{'title':_0x3c73c7('0xde6'),'dataIndex':_0x3c73c7('0xf37')}];}},{'key':_0x320181('0x10d7'),'value':function(){var _0x3c6ee5=_0x320181;return[['id',{'label':'ID','type':_0x3c6ee5('0x10f4')}],[_0x3c6ee5('0x10d1'),{'label':_0x3c6ee5('0x10f9'),'type':'select2','sort':_0x3c6ee5('0xea1'),'allow-null':!0x1,'remote-source':[_0x3c6ee5('0x10f9'),'id',_0x3c6ee5('0x561'),_0x3c6ee5('0xda1')]}],[_0x3c6ee5('0x3ea'),{'label':_0x3c6ee5('0xdde'),'type':_0x3c6ee5('0x5b2'),'validation':''}],[_0x3c6ee5('0x596'),{'label':_0x3c6ee5('0x41b'),'type':_0x3c6ee5('0x5b2'),'validation':_0x3c6ee5('0xea1')}],['home_phone',{'label':_0x3c6ee5('0x251'),'type':_0x3c6ee5('0x5b2'),'validation':_0x3c6ee5('0xea1')}],[_0x3c6ee5('0xd8'),{'label':_0x3c6ee5('0xd35'),'type':_0x3c6ee5('0x5b2'),'validation':_0x3c6ee5('0xea1')}],['mobile_phone',{'label':'Mobile\x20Phone','type':'text','validation':_0x3c6ee5('0xea1')}]];}},{'key':'getFilters','value':function(){var _0x2c95c1=_0x320181;return[[_0x2c95c1('0x10d1'),{'label':_0x2c95c1('0x10f9'),'type':'select2','sort':_0x2c95c1('0xea1'),'allow-null':!0x1,'remote-source':['Employee','id',_0x2c95c1('0x561'),_0x2c95c1('0xda1')]}]];}},{'key':_0x320181('0x816'),'value':function(){var _0x5c2ab8=_0x320181;return _0x5c2ab8('0x2c2')!==this[_0x5c2ab8('0x34b')][_0x5c2ab8('0x6e8')]&&_0x5c2ab8('0x87b')!==this[_0x5c2ab8('0x34b')][_0x5c2ab8('0x6e8')];}}]),_0x2d7868;}(_0x587442),_0x2d3f86=function(_0x418095){var _0x210ba3=_0x58c04d;_0x2a2bb3(_0x17f75c,_0x418095);var _0x1ea15f=_0x4a4217(_0x17f75c);function _0x17f75c(){var _0x24f8ed=_0x5376;return _0x2ca28e(this,_0x17f75c),_0x1ea15f[_0x24f8ed('0x2be')](this,arguments);}return _0x4632d8(_0x17f75c,[{'key':_0x210ba3('0x44a'),'value':function(){var _0x57de94=_0x210ba3;return['id','employee',_0x57de94('0x7bb'),_0x57de94('0x3b5'),_0x57de94('0x3d3'),_0x57de94('0xe30'),_0x57de94('0x75e'),_0x57de94('0x1093')];}},{'key':_0x210ba3('0x95e'),'value':function(){var _0x2fc15e=_0x210ba3;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x2fc15e('0x10f9')},{'sTitle':'Document','sClass':'columnMain'},{'sTitle':_0x2fc15e('0xb3')},{'sTitle':'Issued\x20Date'},{'sTitle':_0x2fc15e('0x290')},{'sTitle':_0x2fc15e('0x600')},{'sTitle':_0x2fc15e('0xd87')}];}},{'key':_0x210ba3('0x10d7'),'value':function(){var _0x1dae5c=_0x210ba3;return[['id',{'label':'ID','type':_0x1dae5c('0x10f4')}],['employee',{'label':_0x1dae5c('0x10f9'),'type':_0x1dae5c('0x15'),'sort':'none','allow-null':!0x1,'remote-source':[_0x1dae5c('0x10f9'),'id','first_name+last_name',_0x1dae5c('0xda1')]}],[_0x1dae5c('0x7bb'),{'label':'Document','type':_0x1dae5c('0x15'),'source':[[_0x1dae5c('0xfbe'),_0x1dae5c('0xfbe')],[_0x1dae5c('0xaaf'),_0x1dae5c('0xaaf')]]}],[_0x1dae5c('0x3b5'),{'label':'Number','type':_0x1dae5c('0x5b2'),'validation':''}],[_0x1dae5c('0x3d3'),{'label':'Issued\x20Date','type':_0x1dae5c('0x2a5'),'validation':''}],[_0x1dae5c('0xe30'),{'label':_0x1dae5c('0x290'),'type':'date','validation':''}],[_0x1dae5c('0x75e'),{'label':_0x1dae5c('0x600'),'type':_0x1dae5c('0x5b2'),'validation':'none'}],[_0x1dae5c('0x1093'),{'label':_0x1dae5c('0xd87'),'type':_0x1dae5c('0x7ea'),'validation':'none'}]];}},{'key':_0x210ba3('0x51c'),'value':function(){var _0x4e27c8=_0x210ba3;return[[_0x4e27c8('0x10d1'),{'label':_0x4e27c8('0x10f9'),'type':'select2','remote-source':[_0x4e27c8('0x10f9'),'id','first_name+last_name']}]];}},{'key':_0x210ba3('0x816'),'value':function(){var _0x34293e=_0x210ba3;return'Admin'!==this[_0x34293e('0x34b')]['user_level']&&_0x34293e('0x87b')!==this[_0x34293e('0x34b')][_0x34293e('0x6e8')];}}]),_0x17f75c;}(_0x587442);_0x2a06ab['exports']={'EmployeeAdapter':_0x116996,'TerminatedEmployeeAdapter':_0x152d35,'ArchivedEmployeeAdapter':_0x5554c9,'EmployeeSkillAdapter':_0x251f44,'EmployeeEducationAdapter':_0x47305a,'EmployeeCertificationAdapter':_0x1eea11,'EmployeeLanguageAdapter':_0x3ab2a1,'EmployeeDependentAdapter':_0x5350bf,'EmergencyContactAdapter':_0x5348e4,'EmployeeImmigrationAdapter':_0x2d3f86};},{'../../../api/AdapterBase':0x34,'../../../api/ReactLegacyModalAdapterBase':0x40,'../../../api/ReactModalAdapterBase':0x41,'../../../api/SubAdapterBase':0x42,'./components/EmployeeProfile':0x12,'@ant-design/icons':'@ant-design/icons','antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11')}],0x15:[function(_0x13fef0,_0x5418fa,_0x4d6ded){var _0x5a4f62=_0x548f48;'use strict';var _0x2ed493=_0x13fef0(_0x5a4f62('0x19f'));window[_0x5a4f62('0xa63')]=_0x2ed493['FieldNameAdapter'],window[_0x5a4f62('0x81f')]=_0x2ed493['CustomFieldAdapter'];},{'./lib':0x16}],0x16:[function(_0x3fedd8,_0x52aba7,_0x5291c7){var _0x4a56ff=_0x548f48;'use strict';var _0x4bc455=_0x1f9f1c(_0x3fedd8(_0x4a56ff('0xee6'))),_0x406a69=_0x1f9f1c(_0x3fedd8(_0x4a56ff('0xbf5')));function _0x1f9f1c(_0xa0872a){var _0x5135e4=_0x4a56ff;return _0xa0872a&&_0xa0872a[_0x5135e4('0xce5')]?_0xa0872a:{'default':_0xa0872a};}function _0x3538c1(_0x597b47){var _0x17603f=_0x4a56ff;return(_0x3538c1='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x17603f('0x57b')]?function(_0x338ade){return typeof _0x338ade;}:function(_0x3ab262){var _0x3a43c5=_0x17603f;return _0x3ab262&&_0x3a43c5('0x106c')==typeof Symbol&&_0x3ab262[_0x3a43c5('0xad1')]===Symbol&&_0x3ab262!==Symbol[_0x3a43c5('0xe02')]?_0x3a43c5('0x43c'):typeof _0x3ab262;})(_0x597b47);}function _0x4af83b(_0xba675e,_0x422e75){if(!(_0xba675e instanceof _0x422e75))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x390af5(_0x1464db,_0x2d41d4){var _0x3aa5d3=_0x4a56ff;for(var _0x18aaea=0x0;_0x18aaea<_0x2d41d4[_0x3aa5d3('0x13')];_0x18aaea++){var _0x33d78c=_0x2d41d4[_0x18aaea];_0x33d78c[_0x3aa5d3('0x3bf')]=_0x33d78c[_0x3aa5d3('0x3bf')]||!0x1,_0x33d78c[_0x3aa5d3('0x749')]=!0x0,'value'in _0x33d78c&&(_0x33d78c['writable']=!0x0),Object[_0x3aa5d3('0x9a5')](_0x1464db,_0x33d78c[_0x3aa5d3('0x86f')],_0x33d78c);}}function _0x1fe731(_0x2fdfff,_0x5d65e9){var _0xe701da=_0x4a56ff;return!_0x5d65e9||_0xe701da('0xb3f')!==_0x3538c1(_0x5d65e9)&&'function'!=typeof _0x5d65e9?function(_0x7bd94f){if(void 0x0===_0x7bd94f)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x7bd94f;}(_0x2fdfff):_0x5d65e9;}function _0x200e5b(){var _0x48f0b9=_0x4a56ff;if(_0x48f0b9('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x48f0b9('0x353')][_0x48f0b9('0xb21')])return!0x1;if(_0x48f0b9('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x48f0b9('0xe02')]['toString'][_0x48f0b9('0xfd2')](Reflect[_0x48f0b9('0x353')](Date,[],function(){})),!0x0;}catch(_0x1d08d3){return!0x1;}}function _0x2e7328(_0x1fb274){var _0x17c2cb=_0x4a56ff;return(_0x2e7328=Object[_0x17c2cb('0x3df')]?Object[_0x17c2cb('0x2d9')]:function(_0x3c83bb){var _0x5ee444=_0x17c2cb;return _0x3c83bb[_0x5ee444('0x112c')]||Object[_0x5ee444('0x2d9')](_0x3c83bb);})(_0x1fb274);}function _0x4b9e94(_0xf1593d,_0x514ed3){var _0x40ce82=_0x4a56ff;return(_0x4b9e94=Object[_0x40ce82('0x3df')]||function(_0x479f36,_0x322efe){return _0x479f36['__proto__']=_0x322efe,_0x479f36;})(_0xf1593d,_0x514ed3);}var _0x5dcac5=function(_0x1ba21b){var _0x5373ba=_0x4a56ff;!function(_0x5c04e7,_0x4547eb){var _0x344df1=_0x5376;if('function'!=typeof _0x4547eb&&null!==_0x4547eb)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x5c04e7['prototype']=Object[_0x344df1('0xbd0')](_0x4547eb&&_0x4547eb[_0x344df1('0xe02')],{'constructor':{'value':_0x5c04e7,'writable':!0x0,'configurable':!0x0}}),_0x4547eb&&_0x4b9e94(_0x5c04e7,_0x4547eb);}(_0x15fead,_0x1ba21b);var _0x322171,_0x2ef200,_0xa776e9,_0xb609ed,_0x2a2b0e=(_0x322171=_0x15fead,function(){var _0xcc3f5=_0x5376,_0x3141ce,_0x12e017=_0x2e7328(_0x322171);if(_0x200e5b()){var _0x5dcdc4=_0x2e7328(this)[_0xcc3f5('0xad1')];_0x3141ce=Reflect[_0xcc3f5('0x353')](_0x12e017,arguments,_0x5dcdc4);}else _0x3141ce=_0x12e017[_0xcc3f5('0x2be')](this,arguments);return _0x1fe731(this,_0x3141ce);});function _0x15fead(){var _0x5cc290=_0x5376;return _0x4af83b(this,_0x15fead),_0x2a2b0e[_0x5cc290('0x2be')](this,arguments);}return _0x2ef200=_0x15fead,(_0xa776e9=[{'key':_0x5373ba('0x44a'),'value':function(){var _0x52e3de=_0x5373ba;return['id',_0x52e3de('0x3ea'),'textOrig',_0x52e3de('0x601'),_0x52e3de('0x13d')];}},{'key':_0x5373ba('0x95e'),'value':function(){var _0x910516=_0x5373ba;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x910516('0xdde')},{'sTitle':_0x910516('0xeae')},{'sTitle':_0x910516('0x588')},{'sTitle':_0x910516('0x315')}];}},{'key':_0x5373ba('0x10d7'),'value':function(){var _0x53700d=_0x5373ba;return[['id',{'label':'ID','type':_0x53700d('0x10f4')}],['type',{'label':'Type','type':_0x53700d('0xa49'),'validation':''}],[_0x53700d('0x3ea'),{'label':'Name','type':_0x53700d('0xa49'),'validation':''}],[_0x53700d('0xfc4'),{'label':_0x53700d('0xeae'),'type':'placeholder','validation':''}],['textMapped',{'label':'Mapped\x20Text','type':_0x53700d('0x5b2'),'validation':''}],['display',{'label':_0x53700d('0x315'),'type':_0x53700d('0x4ce'),'source':[[_0x53700d('0xe32'),_0x53700d('0xf09')],['Hidden',_0x53700d('0xd1b')]]}]];}}])&&_0x390af5(_0x2ef200[_0x5373ba('0xe02')],_0xa776e9),_0xb609ed&&_0x390af5(_0x2ef200,_0xb609ed),_0x15fead;}(_0x4bc455[_0x4a56ff('0xf5f')]);_0x52aba7[_0x4a56ff('0x64')]={'FieldNameAdapter':_0x5dcac5,'CustomFieldAdapter':_0x406a69[_0x4a56ff('0xf5f')]};},{'../../../api/AdapterBase':0x34,'../../../api/CustomFieldAdapter':0x37}],0x17:[function(_0x2d6137,_0x334abd,_0x4149dc){var _0x3494cb=_0x548f48;'use strict';var _0x4422fd,_0x3882f1=_0x2d6137(_0x3494cb('0x19f')),_0x216908=(_0x4422fd=_0x2d6137(_0x3494cb('0x147')))&&_0x4422fd[_0x3494cb('0xce5')]?_0x4422fd:{'default':_0x4422fd};window['initAdminJobs']=function(_0x1293a6){var _0xafad86=_0x3494cb,_0x4e06c4=[];_0x4e06c4[_0xafad86('0xd24')]=new _0x3882f1['JobTitleAdapter'](_0xafad86('0x97'),_0xafad86('0x97'),'',''),_0x4e06c4[_0xafad86('0xd24')]['setObjectTypeName'](_0xafad86('0x109c')),_0x4e06c4[_0xafad86('0xd24')][_0xafad86('0x1156')](new _0x216908['default'](_0x4e06c4[_0xafad86('0xd24')])),_0x4e06c4[_0xafad86('0xd24')][_0xafad86('0xf68')](_0x1293a6[_0xafad86('0xca5')][_0xafad86('0x97')]),_0x4e06c4[_0xafad86('0x58f')]=new _0x3882f1['PayGradeAdapter'](_0xafad86('0x78a'),'PayGrade','',''),_0x4e06c4['tabPayGrade']['setObjectTypeName'](_0xafad86('0xa91')),_0x4e06c4[_0xafad86('0x58f')][_0xafad86('0x1156')](new _0x216908[(_0xafad86('0xf5f'))](_0x4e06c4[_0xafad86('0x58f')])),_0x4e06c4[_0xafad86('0x58f')][_0xafad86('0xf68')](_0x1293a6[_0xafad86('0xca5')][_0xafad86('0x78a')]),_0x4e06c4[_0xafad86('0x299')]=new _0x3882f1[(_0xafad86('0x674'))](_0xafad86('0x5c1'),'EmploymentStatus','',''),_0x4e06c4[_0xafad86('0x299')]['setObjectTypeName'](_0xafad86('0xd36')),_0x4e06c4[_0xafad86('0x299')][_0xafad86('0x1156')](new _0x216908[(_0xafad86('0xf5f'))](_0x4e06c4[_0xafad86('0x299')])),_0x4e06c4[_0xafad86('0x299')][_0xafad86('0xf68')](_0x1293a6[_0xafad86('0xca5')][_0xafad86('0x5c1')]),window[_0xafad86('0xab0')]=_0x4e06c4[_0xafad86('0xd24')],window[_0xafad86('0x9e8')]=_0x4e06c4;};},{'../../../api/IceDataPipe':0x3a,'./lib':0x18}],0x18:[function(_0x13e59c,_0x166cd9,_0x5402b3){var _0x4a96b1=_0x548f48;'use strict';var _0x283b91,_0x8b059a=(_0x283b91=_0x13e59c(_0x4a96b1('0x382')))&&_0x283b91['__esModule']?_0x283b91:{'default':_0x283b91};function _0x4c49c4(_0x42f205){var _0xe17048=_0x4a96b1;return(_0x4c49c4=_0xe17048('0x106c')==typeof Symbol&&_0xe17048('0x43c')==typeof Symbol['iterator']?function(_0x1341db){return typeof _0x1341db;}:function(_0x616b3a){var _0x31bf79=_0xe17048;return _0x616b3a&&'function'==typeof Symbol&&_0x616b3a[_0x31bf79('0xad1')]===Symbol&&_0x616b3a!==Symbol[_0x31bf79('0xe02')]?'symbol':typeof _0x616b3a;})(_0x42f205);}function _0x5e7109(_0x38069e,_0x154424){if(!(_0x38069e instanceof _0x154424))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x20dc96(_0xa18ac7,_0x268e11){var _0x24741f=_0x4a96b1;for(var _0x14eed1=0x0;_0x14eed1<_0x268e11[_0x24741f('0x13')];_0x14eed1++){var _0x7f9484=_0x268e11[_0x14eed1];_0x7f9484[_0x24741f('0x3bf')]=_0x7f9484[_0x24741f('0x3bf')]||!0x1,_0x7f9484[_0x24741f('0x749')]=!0x0,'value'in _0x7f9484&&(_0x7f9484['writable']=!0x0),Object['defineProperty'](_0xa18ac7,_0x7f9484[_0x24741f('0x86f')],_0x7f9484);}}function _0x11dde0(_0x4a2364,_0x292520,_0x6f4eaa){var _0x45a999=_0x4a96b1;return _0x292520&&_0x20dc96(_0x4a2364[_0x45a999('0xe02')],_0x292520),_0x6f4eaa&&_0x20dc96(_0x4a2364,_0x6f4eaa),_0x4a2364;}function _0x443c66(_0x37f711){return function(){var _0x316130=_0x5376,_0x334c15,_0x20abfa=_0x20c3b6(_0x37f711);if(_0x5ba71d()){var _0x14b4c1=_0x20c3b6(this)[_0x316130('0xad1')];_0x334c15=Reflect[_0x316130('0x353')](_0x20abfa,arguments,_0x14b4c1);}else _0x334c15=_0x20abfa[_0x316130('0x2be')](this,arguments);return _0x508bdb(this,_0x334c15);};}function _0x508bdb(_0x512eb3,_0x2e8d72){var _0x45b984=_0x4a96b1;return!_0x2e8d72||_0x45b984('0xb3f')!==_0x4c49c4(_0x2e8d72)&&_0x45b984('0x106c')!=typeof _0x2e8d72?function(_0x394629){var _0x4be3f2=_0x45b984;if(void 0x0===_0x394629)throw new ReferenceError(_0x4be3f2('0xe0d'));return _0x394629;}(_0x512eb3):_0x2e8d72;}function _0x5ba71d(){var _0x1ee457=_0x4a96b1;if(_0x1ee457('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x1ee457('0xb21')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date[_0x1ee457('0xe02')][_0x1ee457('0xb6d')]['call'](Reflect[_0x1ee457('0x353')](Date,[],function(){})),!0x0;}catch(_0x5e77de){return!0x1;}}function _0x20c3b6(_0x40a9b0){var _0x500f02=_0x4a96b1;return(_0x20c3b6=Object[_0x500f02('0x3df')]?Object['getPrototypeOf']:function(_0x5c1e80){var _0x1de12d=_0x500f02;return _0x5c1e80[_0x1de12d('0x112c')]||Object[_0x1de12d('0x2d9')](_0x5c1e80);})(_0x40a9b0);}function _0x20d261(_0x8251e1,_0x386126){var _0x4ac6ad=_0x4a96b1;if('function'!=typeof _0x386126&&null!==_0x386126)throw new TypeError(_0x4ac6ad('0x5a0'));_0x8251e1[_0x4ac6ad('0xe02')]=Object[_0x4ac6ad('0xbd0')](_0x386126&&_0x386126['prototype'],{'constructor':{'value':_0x8251e1,'writable':!0x0,'configurable':!0x0}}),_0x386126&&_0x59065b(_0x8251e1,_0x386126);}function _0x59065b(_0x260f4f,_0x5c45cd){return(_0x59065b=Object['setPrototypeOf']||function(_0x2ffcf0,_0x100f5a){return _0x2ffcf0['__proto__']=_0x100f5a,_0x2ffcf0;})(_0x260f4f,_0x5c45cd);}var _0x25f958=function(_0x4efce7){var _0x206bb3=_0x4a96b1;_0x20d261(_0x11e4b4,_0x4efce7);var _0x95e50=_0x443c66(_0x11e4b4);function _0x11e4b4(){var _0x14018f=_0x5376;return _0x5e7109(this,_0x11e4b4),_0x95e50[_0x14018f('0x2be')](this,arguments);}return _0x11dde0(_0x11e4b4,[{'key':_0x206bb3('0x44a'),'value':function(){return['id','code','name'];}},{'key':_0x206bb3('0x95e'),'value':function(){var _0x2f622b=_0x206bb3;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x2f622b('0x5cf')},{'sTitle':_0x2f622b('0xdde')}];}},{'key':_0x206bb3('0x10d7'),'value':function(){var _0x1f4130=_0x206bb3;return[['id',{'label':'ID','type':_0x1f4130('0x10f4')}],[_0x1f4130('0x9e3'),{'label':_0x1f4130('0xc2'),'type':_0x1f4130('0x5b2')}],[_0x1f4130('0x3ea'),{'label':_0x1f4130('0xfd4'),'type':'text'}],['description',{'label':_0x1f4130('0x1024'),'type':_0x1f4130('0x7ea')}],[_0x1f4130('0x564'),{'label':_0x1f4130('0x261'),'type':_0x1f4130('0x7ea')}]];}},{'key':_0x206bb3('0xb81'),'value':function(){var _0x224517=_0x206bb3;return[{'title':'Job\x20Title\x20Code','dataIndex':'code','sorter':!0x0},{'title':_0x224517('0xfd4'),'dataIndex':_0x224517('0x3ea'),'sorter':!0x0}];}}]),_0x11e4b4;}(_0x8b059a[_0x4a96b1('0xf5f')]),_0x361668=function(_0x4fe544){var _0x13691b=_0x4a96b1;_0x20d261(_0x5690c7,_0x4fe544);var _0x504431=_0x443c66(_0x5690c7);function _0x5690c7(){return _0x5e7109(this,_0x5690c7),_0x504431['apply'](this,arguments);}return _0x11dde0(_0x5690c7,[{'key':_0x13691b('0x44a'),'value':function(){var _0x38748=_0x13691b;return['id',_0x38748('0x3ea'),_0x38748('0x7d6'),_0x38748('0xff3'),'max_salary'];}},{'key':_0x13691b('0x95e'),'value':function(){var _0x38e09d=_0x13691b;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0x38e09d('0x7a5')},{'sTitle':'Min\x20Salary'},{'sTitle':_0x38e09d('0x7e')}];}},{'key':_0x13691b('0x10d7'),'value':function(){var _0x178e2e=_0x13691b;return[['id',{'label':'ID','type':_0x178e2e('0x10f4')}],['name',{'label':_0x178e2e('0xc2a'),'type':'text'}],[_0x178e2e('0x7d6'),{'label':_0x178e2e('0x7a5'),'type':_0x178e2e('0x15'),'remote-source':[_0x178e2e('0x7c2'),'code','name']}],[_0x178e2e('0xff3'),{'label':'Min\x20Salary','type':_0x178e2e('0x5b2'),'validation':_0x178e2e('0x892')}],['max_salary',{'label':_0x178e2e('0x7e'),'type':_0x178e2e('0x5b2'),'validation':_0x178e2e('0x892')}]];}},{'key':'getTableColumns','value':function(){var _0x2b66fa=_0x13691b;return[{'title':_0x2b66fa('0xdde'),'dataIndex':'name','sorter':!0x0},{'title':'Currency','dataIndex':_0x2b66fa('0x7d6')},{'title':'Min\x20Salary','dataIndex':_0x2b66fa('0xff3')},{'title':_0x2b66fa('0x7e'),'dataIndex':'max_salary'}];}},{'key':_0x13691b('0xe86'),'value':function(_0x5dbbfb){var _0x27fc62=_0x13691b;try{if(parseFloat(_0x5dbbfb[_0x27fc62('0xff3')])>parseFloat(_0x5dbbfb[_0x27fc62('0xf8b')]))return'Min\x20Salary\x20should\x20be\x20smaller\x20than\x20Max\x20Salary';}catch(_0x5797f5){}return null;}}]),_0x5690c7;}(_0x8b059a['default']),_0x3c5b86=function(_0x1da44d){var _0x45e16d=_0x4a96b1;_0x20d261(_0x2ccffc,_0x1da44d);var _0x1a7445=_0x443c66(_0x2ccffc);function _0x2ccffc(){var _0x142543=_0x5376;return _0x5e7109(this,_0x2ccffc),_0x1a7445[_0x142543('0x2be')](this,arguments);}return _0x11dde0(_0x2ccffc,[{'key':'getDataMapping','value':function(){var _0x4cd542=_0x5376;return['id','name',_0x4cd542('0x903')];}},{'key':_0x45e16d('0x95e'),'value':function(){var _0x1a6118=_0x45e16d;return[{'sTitle':'ID'},{'sTitle':_0x1a6118('0xdde')},{'sTitle':_0x1a6118('0x1024')}];}},{'key':_0x45e16d('0x10d7'),'value':function(){var _0x4819bb=_0x45e16d;return[['id',{'label':'ID','type':_0x4819bb('0x10f4')}],['name',{'label':_0x4819bb('0xd36'),'type':'text'}],['description',{'label':'Description','type':_0x4819bb('0x7ea'),'validation':''}]];}},{'key':_0x45e16d('0xb81'),'value':function(){var _0x22cfed=_0x45e16d;return[{'title':'Employment\x20Status','dataIndex':_0x22cfed('0x3ea'),'sorter':!0x0},{'title':_0x22cfed('0x1024'),'dataIndex':_0x22cfed('0x903')}];}}]),_0x2ccffc;}(_0x8b059a['default']);_0x166cd9[_0x4a96b1('0x64')]={'JobTitleAdapter':_0x25f958,'PayGradeAdapter':_0x361668,'EmploymentStatusAdapter':_0x3c5b86};},{'../../../api/ReactModalAdapterBase':0x41}],0x19:[function(_0x1cc6c8,_0x851fd1,_0x336511){var _0x3c3c54=_0x548f48;'use strict';var _0x3b0df7=_0x1cc6c8(_0x3c3c54('0x19f'));window[_0x3c3c54('0x700')]=_0x3b0df7[_0x3c3c54('0x700')],window[_0x3c3c54('0x30e')]=_0x3b0df7[_0x3c3c54('0x30e')];},{'./lib':0x1a}],0x1a:[function(_0x69f3d5,_0x4b026c,_0x2fcf16){var _0x365115=_0x548f48;'use strict';var _0x8c10e,_0x243704=(_0x8c10e=_0x69f3d5(_0x365115('0xee6')))&&_0x8c10e[_0x365115('0xce5')]?_0x8c10e:{'default':_0x8c10e};function _0x1f2770(_0x220f5e){var _0x513dc1=_0x365115;return(_0x1f2770='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x513dc1('0x57b')]?function(_0x4841cf){return typeof _0x4841cf;}:function(_0x44f208){var _0x1cc24f=_0x513dc1;return _0x44f208&&_0x1cc24f('0x106c')==typeof Symbol&&_0x44f208[_0x1cc24f('0xad1')]===Symbol&&_0x44f208!==Symbol['prototype']?'symbol':typeof _0x44f208;})(_0x220f5e);}function _0x1bbaf2(_0x5f5737,_0x2663d2){if(!(_0x5f5737 instanceof _0x2663d2))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x300aa5(_0x5850a1,_0x58b2e6){var _0x1b1346=_0x365115;for(var _0x30a91c=0x0;_0x30a91c<_0x58b2e6[_0x1b1346('0x13')];_0x30a91c++){var _0x34080f=_0x58b2e6[_0x30a91c];_0x34080f['enumerable']=_0x34080f['enumerable']||!0x1,_0x34080f[_0x1b1346('0x749')]=!0x0,_0x1b1346('0x30')in _0x34080f&&(_0x34080f['writable']=!0x0),Object['defineProperty'](_0x5850a1,_0x34080f[_0x1b1346('0x86f')],_0x34080f);}}function _0x37ca29(_0x1f821d,_0x296358,_0x942cba){var _0x3bc0df=_0x365115;return _0x296358&&_0x300aa5(_0x1f821d[_0x3bc0df('0xe02')],_0x296358),_0x942cba&&_0x300aa5(_0x1f821d,_0x942cba),_0x1f821d;}function _0x2d6557(_0x16c960){return function(){var _0xd71645=_0x5376,_0x4ec55f,_0x1059fb=_0xf77288(_0x16c960);if(_0x108c37()){var _0x445925=_0xf77288(this)['constructor'];_0x4ec55f=Reflect['construct'](_0x1059fb,arguments,_0x445925);}else _0x4ec55f=_0x1059fb[_0xd71645('0x2be')](this,arguments);return _0x980fda(this,_0x4ec55f);};}function _0x980fda(_0x8bdc42,_0x5886e0){return!_0x5886e0||'object'!==_0x1f2770(_0x5886e0)&&'function'!=typeof _0x5886e0?function(_0x332f3a){var _0x1f62c7=_0x5376;if(void 0x0===_0x332f3a)throw new ReferenceError(_0x1f62c7('0xe0d'));return _0x332f3a;}(_0x8bdc42):_0x5886e0;}function _0x108c37(){var _0xa02668=_0x365115;if(_0xa02668('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0xa02668('0x353')][_0xa02668('0xb21')])return!0x1;if(_0xa02668('0x106c')==typeof Proxy)return!0x0;try{return Date[_0xa02668('0xe02')]['toString']['call'](Reflect[_0xa02668('0x353')](Date,[],function(){})),!0x0;}catch(_0x3eb856){return!0x1;}}function _0xf77288(_0x9c96c2){var _0x30c0a0=_0x365115;return(_0xf77288=Object['setPrototypeOf']?Object[_0x30c0a0('0x2d9')]:function(_0x5d0afc){var _0x239971=_0x30c0a0;return _0x5d0afc[_0x239971('0x112c')]||Object[_0x239971('0x2d9')](_0x5d0afc);})(_0x9c96c2);}function _0x59c5a0(_0x591323,_0x416d42){var _0x2b079e=_0x365115;if(_0x2b079e('0x106c')!=typeof _0x416d42&&null!==_0x416d42)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x591323[_0x2b079e('0xe02')]=Object['create'](_0x416d42&&_0x416d42[_0x2b079e('0xe02')],{'constructor':{'value':_0x591323,'writable':!0x0,'configurable':!0x0}}),_0x416d42&&_0x143b3b(_0x591323,_0x416d42);}function _0x143b3b(_0x4e1a20,_0x11620e){var _0x5edd21=_0x365115;return(_0x143b3b=Object[_0x5edd21('0x3df')]||function(_0x255af0,_0x11a266){return _0x255af0['__proto__']=_0x11a266,_0x255af0;})(_0x4e1a20,_0x11620e);}var _0x3b1554=function(_0x319160){var _0x35bde5=_0x365115;_0x59c5a0(_0x58c54a,_0x319160);var _0x49c57f=_0x2d6557(_0x58c54a);function _0x58c54a(){var _0x6f0ac7=_0x5376;return _0x1bbaf2(this,_0x58c54a),_0x49c57f[_0x6f0ac7('0x2be')](this,arguments);}return _0x37ca29(_0x58c54a,[{'key':_0x35bde5('0x44a'),'value':function(){return['id','name','details'];}},{'key':_0x35bde5('0x95e'),'value':function(){var _0x3eb2f4=_0x35bde5;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0x3eb2f4('0xd87')}];}},{'key':'getFormFields','value':function(){var _0x9365c3=_0x35bde5;return[['id',{'label':'ID','type':_0x9365c3('0x10f4')}],[_0x9365c3('0x3ea'),{'label':_0x9365c3('0xdde'),'type':_0x9365c3('0x5b2'),'validation':''}],['details',{'label':_0x9365c3('0xd87'),'type':_0x9365c3('0x7ea'),'validation':_0x9365c3('0xea1')}]];}}]),_0x58c54a;}(_0x243704[_0x365115('0xf5f')]),_0xd402c3=function(_0x5dd3a8){var _0x360057=_0x365115;_0x59c5a0(_0x73d903,_0x5dd3a8);var _0x5505d3=_0x2d6557(_0x73d903);function _0x73d903(){var _0x1daa0e=_0x5376;return _0x1bbaf2(this,_0x73d903),_0x5505d3[_0x1daa0e('0x2be')](this,arguments);}return _0x37ca29(_0x73d903,[{'key':_0x360057('0x44a'),'value':function(){var _0x124a69=_0x360057;return['id','employee',_0x124a69('0x1d0'),'start_date',_0x124a69('0xb36'),_0x124a69('0x7d6'),'amount',_0x124a69('0x75e')];}},{'key':_0x360057('0x95e'),'value':function(){var _0x12ef13=_0x360057;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Employee'},{'sTitle':_0x12ef13('0x68b')},{'sTitle':_0x12ef13('0x570')},{'sTitle':_0x12ef13('0x1042')},{'sTitle':_0x12ef13('0x7a5')},{'sTitle':_0x12ef13('0x1ec')},{'sTitle':_0x12ef13('0x600')}];}},{'key':_0x360057('0x10d7'),'value':function(){var _0x133071=_0x360057;return[['id',{'label':'ID','type':_0x133071('0x10f4')}],[_0x133071('0x10d1'),{'label':'Employee','type':_0x133071('0x15'),'remote-source':['Employee','id',_0x133071('0x561')]}],[_0x133071('0x1d0'),{'label':_0x133071('0x68b'),'type':_0x133071('0x4ce'),'remote-source':[_0x133071('0xf11'),'id','name']}],[_0x133071('0xeb0'),{'label':_0x133071('0x570'),'type':_0x133071('0x2a5'),'validation':''}],['last_installment_date',{'label':_0x133071('0x44'),'type':_0x133071('0x2a5'),'validation':_0x133071('0xea1')}],[_0x133071('0xb36'),{'label':'Loan\x20Period\x20(Months)','type':_0x133071('0x5b2'),'validation':_0x133071('0x67b')}],[_0x133071('0x7d6'),{'label':'Currency','type':_0x133071('0x15'),'remote-source':['CurrencyType','id',_0x133071('0x3ea')]}],[_0x133071('0x5d7'),{'label':'Loan\x20Amount','type':_0x133071('0x5b2'),'validation':_0x133071('0x892')}],[_0x133071('0x6b6'),{'label':_0x133071('0x113d'),'type':_0x133071('0x5b2'),'validation':'float'}],[_0x133071('0x75e'),{'label':_0x133071('0x600'),'type':_0x133071('0x4ce'),'source':[[_0x133071('0xe45'),'Approved'],[_0x133071('0xf9d'),_0x133071('0xf9d')],['Suspended',_0x133071('0x2ca')]]}],['details',{'label':_0x133071('0xd87'),'type':_0x133071('0x7ea'),'validation':_0x133071('0xea1')}]];}},{'key':_0x360057('0x51c'),'value':function(){var _0x58c95d=_0x360057;return[[_0x58c95d('0x10d1'),{'label':'Employee','type':_0x58c95d('0x15'),'allow-null':!0x0,'null-label':_0x58c95d('0xa3f'),'remote-source':[_0x58c95d('0x10f9'),'id',_0x58c95d('0x561')]}],[_0x58c95d('0x1d0'),{'label':_0x58c95d('0x68b'),'type':'select','allow-null':!0x0,'null-label':_0x58c95d('0xf0a'),'remote-source':[_0x58c95d('0xf11'),'id',_0x58c95d('0x3ea')]}]];}}]),_0x73d903;}(_0x243704[_0x365115('0xf5f')]);_0x4b026c['exports']={'CompanyLoanAdapter':_0x3b1554,'EmployeeCompanyLoanAdapter':_0xd402c3};},{'../../../api/AdapterBase':0x34}],0x1b:[function(_0x591882,_0x10a3cb,_0x3854bf){var _0x2dcc8d=_0x548f48;'use strict';var _0xebb7a1=_0x591882(_0x2dcc8d('0x19f'));window[_0x2dcc8d('0x7a')]=_0xebb7a1[_0x2dcc8d('0x7a')],window[_0x2dcc8d('0x5b6')]=_0xebb7a1[_0x2dcc8d('0x5b6')],window[_0x2dcc8d('0x8d1')]=_0xebb7a1[_0x2dcc8d('0x8d1')],window[_0x2dcc8d('0x858')]=_0xebb7a1[_0x2dcc8d('0x858')],window[_0x2dcc8d('0x1000')]=_0xebb7a1['ImmigrationStatusAdapter'],window[_0x2dcc8d('0xa0b')]=_0xebb7a1[_0x2dcc8d('0xa0b')];},{'./lib':0x1c}],0x1c:[function(_0x1535cd,_0x5c88e7,_0xedbbbe){var _0xdd7fff=_0x548f48;'use strict';var _0x102eff=_0x22a712(_0x1535cd('../../../api/AdapterBase')),_0x59bd6a=_0x22a712(_0x1535cd(_0xdd7fff('0x29')));function _0x22a712(_0x21b4e9){var _0x52c44f=_0xdd7fff;return _0x21b4e9&&_0x21b4e9[_0x52c44f('0xce5')]?_0x21b4e9:{'default':_0x21b4e9};}function _0x3165b4(_0x28976c){var _0x514618=_0xdd7fff;return(_0x3165b4=_0x514618('0x106c')==typeof Symbol&&_0x514618('0x43c')==typeof Symbol['iterator']?function(_0x4ffdbe){return typeof _0x4ffdbe;}:function(_0x364704){var _0xb83dbb=_0x514618;return _0x364704&&'function'==typeof Symbol&&_0x364704[_0xb83dbb('0xad1')]===Symbol&&_0x364704!==Symbol[_0xb83dbb('0xe02')]?_0xb83dbb('0x43c'):typeof _0x364704;})(_0x28976c);}function _0x52db8f(_0x5e00e0,_0x1abd9c){var _0x2fc817=_0xdd7fff;if(!(_0x5e00e0 instanceof _0x1abd9c))throw new TypeError(_0x2fc817('0xf98'));}function _0x19c02f(_0x2ba8e9,_0x106da5){var _0xdab24f=_0xdd7fff;for(var _0x3590e6=0x0;_0x3590e6<_0x106da5['length'];_0x3590e6++){var _0x8a4e6d=_0x106da5[_0x3590e6];_0x8a4e6d[_0xdab24f('0x3bf')]=_0x8a4e6d[_0xdab24f('0x3bf')]||!0x1,_0x8a4e6d[_0xdab24f('0x749')]=!0x0,'value'in _0x8a4e6d&&(_0x8a4e6d['writable']=!0x0),Object[_0xdab24f('0x9a5')](_0x2ba8e9,_0x8a4e6d['key'],_0x8a4e6d);}}function _0xcbc29a(_0x5ce8da,_0x42b9fa,_0x2b53ac){var _0x2595ac=_0xdd7fff;return _0x42b9fa&&_0x19c02f(_0x5ce8da[_0x2595ac('0xe02')],_0x42b9fa),_0x2b53ac&&_0x19c02f(_0x5ce8da,_0x2b53ac),_0x5ce8da;}function _0x308e72(_0x11ee18){return function(){var _0x5333e8=_0x5376,_0x3af038,_0xaa0a54=_0x1409ef(_0x11ee18);if(_0x235d68()){var _0x335a31=_0x1409ef(this)[_0x5333e8('0xad1')];_0x3af038=Reflect[_0x5333e8('0x353')](_0xaa0a54,arguments,_0x335a31);}else _0x3af038=_0xaa0a54['apply'](this,arguments);return _0x223bdf(this,_0x3af038);};}function _0x223bdf(_0x3d72a1,_0x4061f1){var _0x367e5c=_0xdd7fff;return!_0x4061f1||_0x367e5c('0xb3f')!==_0x3165b4(_0x4061f1)&&'function'!=typeof _0x4061f1?function(_0x4bdd88){var _0x6a93c4=_0x367e5c;if(void 0x0===_0x4bdd88)throw new ReferenceError(_0x6a93c4('0xe0d'));return _0x4bdd88;}(_0x3d72a1):_0x4061f1;}function _0x235d68(){var _0x543324=_0xdd7fff;if(_0x543324('0x449')==typeof Reflect||!Reflect[_0x543324('0x353')])return!0x1;if(Reflect[_0x543324('0x353')][_0x543324('0xb21')])return!0x1;if(_0x543324('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x543324('0xe02')][_0x543324('0xb6d')][_0x543324('0xfd2')](Reflect[_0x543324('0x353')](Date,[],function(){})),!0x0;}catch(_0x8eea2c){return!0x1;}}function _0x1409ef(_0x427111){var _0x2dbf57=_0xdd7fff;return(_0x1409ef=Object['setPrototypeOf']?Object[_0x2dbf57('0x2d9')]:function(_0xcd4238){var _0xeea0e3=_0x2dbf57;return _0xcd4238[_0xeea0e3('0x112c')]||Object[_0xeea0e3('0x2d9')](_0xcd4238);})(_0x427111);}function _0x4f5b30(_0x293661,_0x4a3818){var _0x286108=_0xdd7fff;if(_0x286108('0x106c')!=typeof _0x4a3818&&null!==_0x4a3818)throw new TypeError(_0x286108('0x5a0'));_0x293661[_0x286108('0xe02')]=Object['create'](_0x4a3818&&_0x4a3818[_0x286108('0xe02')],{'constructor':{'value':_0x293661,'writable':!0x0,'configurable':!0x0}}),_0x4a3818&&_0x3aab60(_0x293661,_0x4a3818);}function _0x3aab60(_0x556640,_0x4e4963){return(_0x3aab60=Object['setPrototypeOf']||function(_0x375751,_0x6bf98d){var _0x47ceae=_0x5376;return _0x375751[_0x47ceae('0x112c')]=_0x6bf98d,_0x375751;})(_0x556640,_0x4e4963);}var _0x28988f=function(_0x2b57e6){_0x4f5b30(_0x2dd3b6,_0x2b57e6);var _0x298dde=_0x308e72(_0x2dd3b6);function _0x2dd3b6(){var _0x55db4f=_0x5376;return _0x52db8f(this,_0x2dd3b6),_0x298dde[_0x55db4f('0x2be')](this,arguments);}return _0xcbc29a(_0x2dd3b6,[{'key':'getDataMapping','value':function(){var _0x46354c=_0x5376;return['id',_0x46354c('0x9e3'),_0x46354c('0x3ea')];}},{'key':'getHeaders','value':function(){var _0x1e8d61=_0x5376;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x1e8d61('0x5cf')},{'sTitle':'Name'}];}},{'key':'getFormFields','value':function(){var _0x58fd66=_0x5376;return[['id',{'label':'ID','type':_0x58fd66('0x10f4')}],['code',{'label':_0x58fd66('0x5cf'),'type':_0x58fd66('0x5b2'),'validation':''}],[_0x58fd66('0x3ea'),{'label':_0x58fd66('0xdde'),'type':_0x58fd66('0x5b2'),'validation':''}]];}}]),_0x2dd3b6;}(_0x102eff[_0xdd7fff('0xf5f')]),_0x2b14d5=function(_0x4257bf){var _0x188a6c=_0xdd7fff;_0x4f5b30(_0x5a73c9,_0x4257bf);var _0x58ba7b=_0x308e72(_0x5a73c9);function _0x5a73c9(){var _0x15c861=_0x5376;return _0x52db8f(this,_0x5a73c9),_0x58ba7b[_0x15c861('0x2be')](this,arguments);}return _0xcbc29a(_0x5a73c9,[{'key':_0x188a6c('0x44a'),'value':function(){var _0x14ee5c=_0x188a6c;return['id',_0x14ee5c('0x9e3'),_0x14ee5c('0x3ea'),'country'];}},{'key':'getHeaders','value':function(){var _0x572630=_0x188a6c;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x572630('0x5cf')},{'sTitle':_0x572630('0xdde')},{'sTitle':_0x572630('0x81e')}];}},{'key':_0x188a6c('0x10d7'),'value':function(){var _0x398c00=_0x188a6c;return[['id',{'label':'ID','type':_0x398c00('0x10f4')}],[_0x398c00('0x9e3'),{'label':_0x398c00('0x5cf'),'type':'text','validation':''}],['name',{'label':_0x398c00('0xdde'),'type':_0x398c00('0x5b2'),'validation':''}],[_0x398c00('0x777'),{'label':_0x398c00('0x81e'),'type':_0x398c00('0x15'),'remote-source':[_0x398c00('0x81e'),_0x398c00('0x9e3'),_0x398c00('0x3ea')]}]];}},{'key':_0x188a6c('0x51c'),'value':function(){var _0x5d4702=_0x188a6c;return[[_0x5d4702('0x777'),{'label':_0x5d4702('0x81e'),'type':_0x5d4702('0x15'),'remote-source':[_0x5d4702('0x81e'),_0x5d4702('0x9e3'),_0x5d4702('0x3ea')]}]];}}]),_0x5a73c9;}(_0x102eff[_0xdd7fff('0xf5f')]),_0x4094d5=function(_0x3d63f4){var _0x23e33f=_0xdd7fff;_0x4f5b30(_0x567ab7,_0x3d63f4);var _0xb8eddc=_0x308e72(_0x567ab7);function _0x567ab7(){var _0x3a869c=_0x5376;return _0x52db8f(this,_0x567ab7),_0xb8eddc[_0x3a869c('0x2be')](this,arguments);}return _0xcbc29a(_0x567ab7,[{'key':_0x23e33f('0x44a'),'value':function(){var _0x3a07f7=_0x23e33f;return['id','code',_0x3a07f7('0x3ea')];}},{'key':_0x23e33f('0x95e'),'value':function(){var _0x190def=_0x23e33f;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x190def('0x5cf')},{'sTitle':_0x190def('0xdde')}];}},{'key':_0x23e33f('0x10d7'),'value':function(){var _0x35363f=_0x23e33f;return[['id',{'label':'ID','type':_0x35363f('0x10f4')}],[_0x35363f('0x9e3'),{'label':_0x35363f('0x5cf'),'type':_0x35363f('0x5b2'),'validation':''}],['name',{'label':'Name','type':_0x35363f('0x5b2'),'validation':''}]];}}]),_0x567ab7;}(_0x102eff[_0xdd7fff('0xf5f')]),_0x263995=function(_0x10cda5){_0x4f5b30(_0x4b486f,_0x10cda5);var _0x4ec797=_0x308e72(_0x4b486f);function _0x4b486f(){var _0x195f6a=_0x5376;return _0x52db8f(this,_0x4b486f),_0x4ec797[_0x195f6a('0x2be')](this,arguments);}return _0x4b486f;}(_0x59bd6a[_0xdd7fff('0xf5f')]),_0x24d6a2=function(_0x3eb087){_0x4f5b30(_0x46abd2,_0x3eb087);var _0x43959c=_0x308e72(_0x46abd2);function _0x46abd2(){var _0x5db013=_0x5376;return _0x52db8f(this,_0x46abd2),_0x43959c[_0x5db013('0x2be')](this,arguments);}return _0x46abd2;}(_0x59bd6a[_0xdd7fff('0xf5f')]),_0x1a8f6a=function(_0x3608be){_0x4f5b30(_0x3f76a4,_0x3608be);var _0x23a96e=_0x308e72(_0x3f76a4);function _0x3f76a4(){var _0x3145e4=_0x5376;return _0x52db8f(this,_0x3f76a4),_0x23a96e[_0x3145e4('0x2be')](this,arguments);}return _0x3f76a4;}(_0x59bd6a[_0xdd7fff('0xf5f')]);_0x5c88e7[_0xdd7fff('0x64')]={'CountryAdapter':_0x28988f,'ProvinceAdapter':_0x2b14d5,'CurrencyTypeAdapter':_0x4094d5,'NationalityAdapter':_0x263995,'ImmigrationStatusAdapter':_0x24d6a2,'EthnicityAdapter':_0x1a8f6a};},{'../../../api/AdapterBase':0x34,'../../../api/IdNameAdapter':0x3b}],0x1d:[function(_0x38364a,_0x2abbb6,_0x40b9fa){var _0x3da084=_0x548f48;'use strict';var _0x18d801=_0x38364a(_0x3da084('0x19f'));window[_0x3da084('0xdab')]=_0x18d801[_0x3da084('0xdab')],window[_0x3da084('0x32c')]=_0x18d801['UsageAdapter'];},{'./lib':0x1e}],0x1e:[function(_0x517a02,_0x4f654e,_0x3dbde8){var _0x4e9ffd=_0x548f48;'use strict';var _0x43c333,_0x3a35d1=(_0x43c333=_0x517a02(_0x4e9ffd('0xee6')))&&_0x43c333[_0x4e9ffd('0xce5')]?_0x43c333:{'default':_0x43c333};function _0x91a684(_0x3d96db){var _0x2d6fc1=_0x4e9ffd;return(_0x91a684='function'==typeof Symbol&&_0x2d6fc1('0x43c')==typeof Symbol[_0x2d6fc1('0x57b')]?function(_0x21d51c){return typeof _0x21d51c;}:function(_0x2beac0){var _0x57d5f0=_0x2d6fc1;return _0x2beac0&&'function'==typeof Symbol&&_0x2beac0['constructor']===Symbol&&_0x2beac0!==Symbol['prototype']?_0x57d5f0('0x43c'):typeof _0x2beac0;})(_0x3d96db);}function _0x2908e5(_0x279f80,_0x3f8f1c){var _0x1190ff=_0x4e9ffd;if(!(_0x279f80 instanceof _0x3f8f1c))throw new TypeError(_0x1190ff('0xf98'));}function _0x5ec4cb(_0x20d8fc,_0xdada0d){var _0x451f01=_0x4e9ffd;for(var _0x3b5232=0x0;_0x3b5232<_0xdada0d[_0x451f01('0x13')];_0x3b5232++){var _0x452ade=_0xdada0d[_0x3b5232];_0x452ade[_0x451f01('0x3bf')]=_0x452ade[_0x451f01('0x3bf')]||!0x1,_0x452ade[_0x451f01('0x749')]=!0x0,_0x451f01('0x30')in _0x452ade&&(_0x452ade[_0x451f01('0x820')]=!0x0),Object['defineProperty'](_0x20d8fc,_0x452ade[_0x451f01('0x86f')],_0x452ade);}}function _0x502060(_0x1e429d,_0x328ad8,_0x5aecac){return _0x328ad8&&_0x5ec4cb(_0x1e429d['prototype'],_0x328ad8),_0x5aecac&&_0x5ec4cb(_0x1e429d,_0x5aecac),_0x1e429d;}function _0x4a41dd(_0x22a6ce){return function(){var _0x39281c=_0x5376,_0xd958e6,_0x556a18=_0x453283(_0x22a6ce);if(_0x2e81c1()){var _0x263f56=_0x453283(this)[_0x39281c('0xad1')];_0xd958e6=Reflect[_0x39281c('0x353')](_0x556a18,arguments,_0x263f56);}else _0xd958e6=_0x556a18[_0x39281c('0x2be')](this,arguments);return _0x29707a(this,_0xd958e6);};}function _0x29707a(_0x42bd1d,_0x3e3953){var _0x557fbd=_0x4e9ffd;return!_0x3e3953||_0x557fbd('0xb3f')!==_0x91a684(_0x3e3953)&&_0x557fbd('0x106c')!=typeof _0x3e3953?function(_0x3806e3){var _0x2f3103=_0x557fbd;if(void 0x0===_0x3806e3)throw new ReferenceError(_0x2f3103('0xe0d'));return _0x3806e3;}(_0x42bd1d):_0x3e3953;}function _0x2e81c1(){var _0x3828bf=_0x4e9ffd;if(_0x3828bf('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x3828bf('0x353')]['sham'])return!0x1;if(_0x3828bf('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x3828bf('0xe02')][_0x3828bf('0xb6d')][_0x3828bf('0xfd2')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x4916c0){return!0x1;}}function _0x453283(_0x318822){var _0x5434fc=_0x4e9ffd;return(_0x453283=Object['setPrototypeOf']?Object[_0x5434fc('0x2d9')]:function(_0x6f49df){var _0x17a99f=_0x5434fc;return _0x6f49df[_0x17a99f('0x112c')]||Object[_0x17a99f('0x2d9')](_0x6f49df);})(_0x318822);}function _0x5e18d4(_0x447c8b,_0x33ad46){var _0x21e023=_0x4e9ffd;if(_0x21e023('0x106c')!=typeof _0x33ad46&&null!==_0x33ad46)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x447c8b[_0x21e023('0xe02')]=Object['create'](_0x33ad46&&_0x33ad46[_0x21e023('0xe02')],{'constructor':{'value':_0x447c8b,'writable':!0x0,'configurable':!0x0}}),_0x33ad46&&_0x38b391(_0x447c8b,_0x33ad46);}function _0x38b391(_0x43736d,_0x6d5c0c){var _0x5f0a88=_0x4e9ffd;return(_0x38b391=Object[_0x5f0a88('0x3df')]||function(_0x5743cc,_0x1a8220){var _0x19baca=_0x5f0a88;return _0x5743cc[_0x19baca('0x112c')]=_0x1a8220,_0x5743cc;})(_0x43736d,_0x6d5c0c);}var _0xc0c293=function(_0x144c30){var _0x4090d2=_0x4e9ffd;_0x5e18d4(_0x3b38d7,_0x144c30);var _0x198960=_0x4a41dd(_0x3b38d7);function _0x3b38d7(){var _0x5647f0=_0x5376;return _0x2908e5(this,_0x3b38d7),_0x198960[_0x5647f0('0x2be')](this,arguments);}return _0x502060(_0x3b38d7,[{'key':_0x4090d2('0x44a'),'value':function(){var _0x1a4422=_0x4090d2;return['id',_0x1a4422('0xf3c'),_0x1a4422('0xbd5'),_0x1a4422('0x740'),_0x1a4422('0x94'),_0x1a4422('0x75e'),_0x1a4422('0x177'),_0x1a4422('0x447')];}},{'key':'getHeaders','value':function(){var _0x5f4885=_0x4090d2;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0x5f4885('0x3cb'),'bVisible':!0x1},{'sTitle':_0x5f4885('0xffd')},{'sTitle':_0x5f4885('0x8ad')},{'sTitle':_0x5f4885('0x600')},{'sTitle':'Version','bVisible':!0x1},{'sTitle':'Path','bVisible':!0x1}];}},{'key':_0x4090d2('0x10d7'),'value':function(){var _0x5163bb=_0x4090d2;return[['id',{'label':'ID','type':_0x5163bb('0x10f4')}],[_0x5163bb('0xf3c'),{'label':_0x5163bb('0x8a2'),'type':_0x5163bb('0x5b2'),'validation':''}],[_0x5163bb('0x75e'),{'label':_0x5163bb('0x600'),'type':_0x5163bb('0x4ce'),'source':[[_0x5163bb('0xbcb'),_0x5163bb('0xbcb')],[_0x5163bb('0x9c4'),_0x5163bb('0x9c4')]]}],[_0x5163bb('0x8cc'),{'label':_0x5163bb('0xe55'),'type':_0x5163bb('0xa2d'),'source':[['Admin',_0x5163bb('0x2c2')],[_0x5163bb('0x82c'),_0x5163bb('0x82c')],[_0x5163bb('0x10f9'),_0x5163bb('0x10f9')]]}],[_0x5163bb('0xf8d'),{'label':'Allowed\x20User\x20Roles','type':_0x5163bb('0xa2d'),'remote-source':[_0x5163bb('0xdff'),'id',_0x5163bb('0x3ea')]}],['user_roles_blacklist',{'label':_0x5163bb('0xb62'),'type':'select2multi','remote-source':['UserRole','id',_0x5163bb('0x3ea')]}]];}},{'key':_0x4090d2('0xe26'),'value':function(_0x5bd379,_0x43f7fc){var _0x3ef22d=_0x4090d2,_0x58e027=_0x3ef22d('0x5dc');return _0x58e027=(_0x58e027=_0x58e027['replace'](/_id_/g,_0x5bd379))['replace'](/_BASE_/g,this[_0x3ef22d('0x598')]);}}]),_0x3b38d7;}(_0x3a35d1[_0x4e9ffd('0xf5f')]),_0x5730fd=function(_0x566da8){var _0x553df2=_0x4e9ffd;_0x5e18d4(_0x5d2fa1,_0x566da8);var _0x26187f=_0x4a41dd(_0x5d2fa1);function _0x5d2fa1(){var _0xba7b3b=_0x5376;return _0x2908e5(this,_0x5d2fa1),_0x26187f[_0xba7b3b('0x2be')](this,arguments);}return _0x502060(_0x5d2fa1,[{'key':_0x553df2('0x44a'),'value':function(){return[];}},{'key':_0x553df2('0x95e'),'value':function(){return[];}},{'key':'getFormFields','value':function(){return[];}},{'key':'get','value':function(_0x2c1a65){}},{'key':_0x553df2('0x6d3'),'value':function(){var _0x302e40=_0x553df2,_0x4109c8={},_0x114029=[];if($(_0x302e40('0xb2d'))[_0x302e40('0x2fa')](function(){var _0x128720=_0x302e40;$(this)['is'](':checked')&&_0x114029[_0x128720('0x91b')]($(this)['val']());}),0x0!==_0x114029[_0x302e40('0x13')]){_0x4109c8[_0x302e40('0x40e')]=_0x114029['join'](',');var _0x369ad8=JSON[_0x302e40('0xf0b')](_0x4109c8),_0x51ec44=[];_0x51ec44['callBackData']=[],_0x51ec44[_0x302e40('0x691')]=_0x302e40('0xa4e'),_0x51ec44['callBackFail']=_0x302e40('0x76a'),this[_0x302e40('0xd99')]('saveUsage',_0x302e40('0xf7c'),_0x369ad8,_0x51ec44);}else alert('Please\x20select\x20one\x20or\x20more\x20module\x20groups');}},{'key':_0x553df2('0xe44'),'value':function(_0x421d3d){}},{'key':_0x553df2('0x8c7'),'value':function(_0x20e61d){}}]),_0x5d2fa1;}(_0x3a35d1[_0x4e9ffd('0xf5f')]);_0x4f654e['exports']={'ModuleAdapter':_0xc0c293,'UsageAdapter':_0x5730fd};},{'../../../api/AdapterBase':0x34}],0x1f:[function(_0x5dd141,_0x23875b,_0x11e50c){var _0x1e91d1=_0x548f48;'use strict';var _0x7c0e7d=_0x5dd141('./lib');window['OvertimeCategoryAdapter']=_0x7c0e7d[_0x1e91d1('0x3a3')],window['EmployeeOvertimeAdminAdapter']=_0x7c0e7d['EmployeeOvertimeAdminAdapter'];},{'./lib':0x20}],0x20:[function(_0x3947e4,_0x4e2298,_0x223acd){var _0x364dd2=_0x548f48;'use strict';var _0x3ba576=_0x444302(_0x3947e4(_0x364dd2('0xee6'))),_0x40d025=_0x444302(_0x3947e4(_0x364dd2('0x795')));function _0x444302(_0x4c3153){var _0x41e125=_0x364dd2;return _0x4c3153&&_0x4c3153[_0x41e125('0xce5')]?_0x4c3153:{'default':_0x4c3153};}function _0x4f343f(_0x4256b0){var _0x63f9d2=_0x364dd2;return(_0x4f343f=_0x63f9d2('0x106c')==typeof Symbol&&_0x63f9d2('0x43c')==typeof Symbol[_0x63f9d2('0x57b')]?function(_0x51760d){return typeof _0x51760d;}:function(_0x3d9a2b){var _0x49b617=_0x63f9d2;return _0x3d9a2b&&_0x49b617('0x106c')==typeof Symbol&&_0x3d9a2b[_0x49b617('0xad1')]===Symbol&&_0x3d9a2b!==Symbol[_0x49b617('0xe02')]?_0x49b617('0x43c'):typeof _0x3d9a2b;})(_0x4256b0);}function _0x4ba0b8(_0x4a2011,_0x326dae){var _0x4dcd50=_0x364dd2;if(!(_0x4a2011 instanceof _0x326dae))throw new TypeError(_0x4dcd50('0xf98'));}function _0x515589(_0x482813,_0x26da54){var _0x434634=_0x364dd2;for(var _0x47262f=0x0;_0x47262f<_0x26da54[_0x434634('0x13')];_0x47262f++){var _0x427d0d=_0x26da54[_0x47262f];_0x427d0d[_0x434634('0x3bf')]=_0x427d0d[_0x434634('0x3bf')]||!0x1,_0x427d0d['configurable']=!0x0,_0x434634('0x30')in _0x427d0d&&(_0x427d0d[_0x434634('0x820')]=!0x0),Object[_0x434634('0x9a5')](_0x482813,_0x427d0d[_0x434634('0x86f')],_0x427d0d);}}function _0x12e1ea(_0xc41006,_0x45627d,_0x1026cf){var _0x4b9734=_0x364dd2;return _0x45627d&&_0x515589(_0xc41006[_0x4b9734('0xe02')],_0x45627d),_0x1026cf&&_0x515589(_0xc41006,_0x1026cf),_0xc41006;}function _0x222193(_0x963e27){return function(){var _0xd1d529=_0x5376,_0x2bd8a1,_0x320329=_0x252b7f(_0x963e27);if(_0x41ce23()){var _0x360de4=_0x252b7f(this)[_0xd1d529('0xad1')];_0x2bd8a1=Reflect[_0xd1d529('0x353')](_0x320329,arguments,_0x360de4);}else _0x2bd8a1=_0x320329[_0xd1d529('0x2be')](this,arguments);return _0x464881(this,_0x2bd8a1);};}function _0x464881(_0x167d71,_0x307bfa){var _0x1d6dec=_0x364dd2;return!_0x307bfa||_0x1d6dec('0xb3f')!==_0x4f343f(_0x307bfa)&&_0x1d6dec('0x106c')!=typeof _0x307bfa?function(_0xfa7ee6){var _0x5eb0d5=_0x1d6dec;if(void 0x0===_0xfa7ee6)throw new ReferenceError(_0x5eb0d5('0xe0d'));return _0xfa7ee6;}(_0x167d71):_0x307bfa;}function _0x41ce23(){var _0x3f0054=_0x364dd2;if('undefined'==typeof Reflect||!Reflect[_0x3f0054('0x353')])return!0x1;if(Reflect[_0x3f0054('0x353')][_0x3f0054('0xb21')])return!0x1;if(_0x3f0054('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x3f0054('0xe02')][_0x3f0054('0xb6d')][_0x3f0054('0xfd2')](Reflect[_0x3f0054('0x353')](Date,[],function(){})),!0x0;}catch(_0x4097cf){return!0x1;}}function _0x252b7f(_0x4dd56d){var _0x300fb7=_0x364dd2;return(_0x252b7f=Object[_0x300fb7('0x3df')]?Object[_0x300fb7('0x2d9')]:function(_0x292bb4){var _0x526363=_0x300fb7;return _0x292bb4[_0x526363('0x112c')]||Object[_0x526363('0x2d9')](_0x292bb4);})(_0x4dd56d);}function _0x8581a4(_0x1ae28d,_0x27a339){var _0xc61f8=_0x364dd2;if(_0xc61f8('0x106c')!=typeof _0x27a339&&null!==_0x27a339)throw new TypeError(_0xc61f8('0x5a0'));_0x1ae28d[_0xc61f8('0xe02')]=Object[_0xc61f8('0xbd0')](_0x27a339&&_0x27a339[_0xc61f8('0xe02')],{'constructor':{'value':_0x1ae28d,'writable':!0x0,'configurable':!0x0}}),_0x27a339&&_0x2cddd4(_0x1ae28d,_0x27a339);}function _0x2cddd4(_0xfc0777,_0xf44953){return(_0x2cddd4=Object['setPrototypeOf']||function(_0x23acff,_0x347330){var _0x18a6ce=_0x5376;return _0x23acff[_0x18a6ce('0x112c')]=_0x347330,_0x23acff;})(_0xfc0777,_0xf44953);}var _0x1e69a5=function(_0x6f6f80){var _0x4eae64=_0x364dd2;_0x8581a4(_0x312e1e,_0x6f6f80);var _0x319bf9=_0x222193(_0x312e1e);function _0x312e1e(){var _0x34c20e=_0x5376;return _0x4ba0b8(this,_0x312e1e),_0x319bf9[_0x34c20e('0x2be')](this,arguments);}return _0x12e1ea(_0x312e1e,[{'key':_0x4eae64('0x44a'),'value':function(){var _0x3e12d0=_0x4eae64;return['id',_0x3e12d0('0x3ea')];}},{'key':_0x4eae64('0x95e'),'value':function(){return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'}];}},{'key':'getFormFields','value':function(){var _0x1fa0c9=_0x4eae64;return[['id',{'label':'ID','type':_0x1fa0c9('0x10f4')}],['name',{'label':_0x1fa0c9('0xdde'),'type':'text','validation':''}]];}}]),_0x312e1e;}(_0x3ba576[_0x364dd2('0xf5f')]),_0x3ec454=function(_0x4ec6bb){var _0x2d4aaa=_0x364dd2;_0x8581a4(_0x1b4d9e,_0x4ec6bb);var _0x1f5fca=_0x222193(_0x1b4d9e);function _0x1b4d9e(_0x4fd863,_0x748610,_0x966d56,_0x497b4b){var _0xc833fb=_0x5376,_0x475fbb;return _0x4ba0b8(this,_0x1b4d9e),(_0x475fbb=_0x1f5fca[_0xc833fb('0xfd2')](this,_0x4fd863,_0x748610,_0x966d56,_0x497b4b))[_0xc833fb('0xbe9')]='OvertimeRequest',_0x475fbb['itemNameLower']=_0xc833fb('0xf59'),_0x475fbb[_0xc833fb('0x755')]='overtime',_0x475fbb;}return _0x12e1ea(_0x1b4d9e,[{'key':'getDataMapping','value':function(){var _0xe982fd=_0x5376;return['id','employee','category','start_time',_0xe982fd('0x383'),_0xe982fd('0x10fe'),'status'];}},{'key':_0x2d4aaa('0x95e'),'value':function(){var _0x22f682=_0x2d4aaa;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x22f682('0x10f9')},{'sTitle':_0x22f682('0xe9')},{'sTitle':_0x22f682('0x74d')},{'sTitle':_0x22f682('0xf54')},{'sTitle':'Project'},{'sTitle':_0x22f682('0x600')}];}},{'key':'getFormFields','value':function(){var _0x17d11c=_0x2d4aaa;return[['id',{'label':'ID','type':_0x17d11c('0x10f4')}],['employee',{'label':_0x17d11c('0x10f9'),'type':_0x17d11c('0x15'),'sort':_0x17d11c('0xea1'),'allow-null':!0x1,'remote-source':[_0x17d11c('0x10f9'),'id',_0x17d11c('0x561'),_0x17d11c('0xda1')]}],[_0x17d11c('0x80f'),{'label':'Category','type':_0x17d11c('0x15'),'allow-null':!0x1,'remote-source':[_0x17d11c('0xb43'),'id',_0x17d11c('0x3ea')]}],[_0x17d11c('0x107c'),{'label':_0x17d11c('0x74d'),'type':_0x17d11c('0x3aa'),'validation':''}],[_0x17d11c('0x383'),{'label':_0x17d11c('0xf54'),'type':_0x17d11c('0x3aa'),'validation':''}],[_0x17d11c('0x10fe'),{'label':'Project','type':_0x17d11c('0x15'),'allow-null':!0x0,'null=label':'none','remote-source':[_0x17d11c('0xcf0'),'id',_0x17d11c('0x3ea')]}],[_0x17d11c('0xec'),{'label':'Notes','type':_0x17d11c('0x7ea'),'validation':_0x17d11c('0xea1')}]];}}]),_0x1b4d9e;}(_0x40d025['default']);_0x4e2298[_0x364dd2('0x64')]={'OvertimeCategoryAdapter':_0x1e69a5,'EmployeeOvertimeAdminAdapter':_0x3ec454};},{'../../../api/AdapterBase':0x34,'../../../api/ApproveAdminAdapter':0x35}],0x21:[function(_0x45ec1a,_0x102992,_0x307b76){var _0x588b4b=_0x548f48;'use strict';var _0x2c910c=_0x45ec1a(_0x588b4b('0x19f'));window[_0x588b4b('0xbc4')]=_0x2c910c['PaydayAdapter'],window['PayrollAdapter']=_0x2c910c[_0x588b4b('0xbce')],window[_0x588b4b('0x376')]=_0x2c910c['PayrollDataAdapter'],window[_0x588b4b('0x4a0')]=_0x2c910c[_0x588b4b('0x4a0')],window[_0x588b4b('0x9ab')]=_0x2c910c[_0x588b4b('0x9ab')],window[_0x588b4b('0x101a')]=_0x2c910c[_0x588b4b('0x101a')],window['DeductionAdapter']=_0x2c910c[_0x588b4b('0x976')],window[_0x588b4b('0xf41')]=_0x2c910c['DeductionGroupAdapter'],window['PayslipTemplateAdapter']=_0x2c910c[_0x588b4b('0xe2f')];},{'./lib':0x22}],0x22:[function(_0x1694bb,_0x3be29a,_0x4a8164){var _0x3f418a=_0x548f48;'use strict';var _0x3e94e6=_0x5585fa(_0x1694bb(_0x3f418a('0xee6'))),_0x225305=_0x5585fa(_0x1694bb(_0x3f418a('0xe74')));function _0x5585fa(_0x9e0749){var _0x4d550b=_0x3f418a;return _0x9e0749&&_0x9e0749[_0x4d550b('0xce5')]?_0x9e0749:{'default':_0x9e0749};}function _0x1c141a(_0x1251b6){var _0x3b3ce2=_0x3f418a;return(_0x1c141a='function'==typeof Symbol&&_0x3b3ce2('0x43c')==typeof Symbol['iterator']?function(_0x646f42){return typeof _0x646f42;}:function(_0x42c036){var _0x56cb01=_0x3b3ce2;return _0x42c036&&'function'==typeof Symbol&&_0x42c036[_0x56cb01('0xad1')]===Symbol&&_0x42c036!==Symbol[_0x56cb01('0xe02')]?_0x56cb01('0x43c'):typeof _0x42c036;})(_0x1251b6);}function _0x10491f(_0x2d87a6,_0xd46752){var _0x2534ed=_0x3f418a;if(!(_0x2d87a6 instanceof _0xd46752))throw new TypeError(_0x2534ed('0xf98'));}function _0x4d3ef4(_0x8a3917,_0x3c1452){var _0x275271=_0x3f418a;for(var _0x16da30=0x0;_0x16da30<_0x3c1452[_0x275271('0x13')];_0x16da30++){var _0x237a00=_0x3c1452[_0x16da30];_0x237a00[_0x275271('0x3bf')]=_0x237a00[_0x275271('0x3bf')]||!0x1,_0x237a00[_0x275271('0x749')]=!0x0,_0x275271('0x30')in _0x237a00&&(_0x237a00['writable']=!0x0),Object[_0x275271('0x9a5')](_0x8a3917,_0x237a00[_0x275271('0x86f')],_0x237a00);}}function _0x5cc638(_0x119b32,_0x3cbb0f,_0x43458d){var _0x141354=_0x3f418a;return _0x3cbb0f&&_0x4d3ef4(_0x119b32[_0x141354('0xe02')],_0x3cbb0f),_0x43458d&&_0x4d3ef4(_0x119b32,_0x43458d),_0x119b32;}function _0x373fba(_0x2b06cb,_0x2bfff1,_0x312d0a){var _0x25be67=_0x3f418a;return(_0x373fba=_0x25be67('0x449')!=typeof Reflect&&Reflect[_0x25be67('0xd12')]?Reflect[_0x25be67('0xd12')]:function(_0x4264ff,_0x27cce9,_0x1b0daf){var _0x5d2bca=_0x25be67,_0x494a7d=function(_0xd5ab4,_0x122690){var _0x57188c=_0x5376;for(;!Object[_0x57188c('0xe02')][_0x57188c('0xe9c')][_0x57188c('0xfd2')](_0xd5ab4,_0x122690)&&null!==(_0xd5ab4=_0x32d812(_0xd5ab4)););return _0xd5ab4;}(_0x4264ff,_0x27cce9);if(_0x494a7d){var _0x92594a=Object['getOwnPropertyDescriptor'](_0x494a7d,_0x27cce9);return _0x92594a[_0x5d2bca('0xd12')]?_0x92594a[_0x5d2bca('0xd12')][_0x5d2bca('0xfd2')](_0x1b0daf):_0x92594a[_0x5d2bca('0x30')];}})(_0x2b06cb,_0x2bfff1,_0x312d0a||_0x2b06cb);}function _0x733221(_0x1f4b61){return function(){var _0x5a79da=_0x5376,_0x50af92,_0x333efc=_0x32d812(_0x1f4b61);if(_0x2e5efd()){var _0x3ea324=_0x32d812(this)[_0x5a79da('0xad1')];_0x50af92=Reflect[_0x5a79da('0x353')](_0x333efc,arguments,_0x3ea324);}else _0x50af92=_0x333efc[_0x5a79da('0x2be')](this,arguments);return _0x148522(this,_0x50af92);};}function _0x148522(_0x3a6ebd,_0x237418){var _0x893d3b=_0x3f418a;return!_0x237418||_0x893d3b('0xb3f')!==_0x1c141a(_0x237418)&&_0x893d3b('0x106c')!=typeof _0x237418?function(_0x24a320){var _0x4d7918=_0x893d3b;if(void 0x0===_0x24a320)throw new ReferenceError(_0x4d7918('0xe0d'));return _0x24a320;}(_0x3a6ebd):_0x237418;}function _0x2e5efd(){var _0x4eb928=_0x3f418a;if('undefined'==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x4eb928('0xb21')])return!0x1;if(_0x4eb928('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x4eb928('0xe02')]['toString'][_0x4eb928('0xfd2')](Reflect[_0x4eb928('0x353')](Date,[],function(){})),!0x0;}catch(_0x5daf89){return!0x1;}}function _0x32d812(_0x13734c){var _0x5b61bc=_0x3f418a;return(_0x32d812=Object[_0x5b61bc('0x3df')]?Object['getPrototypeOf']:function(_0x119383){var _0x27c9ac=_0x5b61bc;return _0x119383[_0x27c9ac('0x112c')]||Object[_0x27c9ac('0x2d9')](_0x119383);})(_0x13734c);}function _0x2971fc(_0x4459f1,_0x4770f3){var _0x51923f=_0x3f418a;if(_0x51923f('0x106c')!=typeof _0x4770f3&&null!==_0x4770f3)throw new TypeError(_0x51923f('0x5a0'));_0x4459f1[_0x51923f('0xe02')]=Object[_0x51923f('0xbd0')](_0x4770f3&&_0x4770f3[_0x51923f('0xe02')],{'constructor':{'value':_0x4459f1,'writable':!0x0,'configurable':!0x0}}),_0x4770f3&&_0x42e437(_0x4459f1,_0x4770f3);}function _0x42e437(_0x359244,_0x230a3a){var _0x46cade=_0x3f418a;return(_0x42e437=Object[_0x46cade('0x3df')]||function(_0x2ff0f0,_0x495aff){var _0x9f244a=_0x46cade;return _0x2ff0f0[_0x9f244a('0x112c')]=_0x495aff,_0x2ff0f0;})(_0x359244,_0x230a3a);}_0x1694bb(_0x3f418a('0x189')),_0x1694bb(_0x3f418a('0x10f7')),_0x1694bb(_0x3f418a('0x3fc'));var _0x3517a6=_0x1694bb('codemirror'),_0x5cb0f8=function(_0x4c4243){var _0x42d57d=_0x3f418a;_0x2971fc(_0x23cecf,_0x4c4243);var _0x1a7700=_0x733221(_0x23cecf);function _0x23cecf(){var _0x371a96=_0x5376;return _0x10491f(this,_0x23cecf),_0x1a7700[_0x371a96('0x2be')](this,arguments);}return _0x5cc638(_0x23cecf,[{'key':'getDataMapping','value':function(){var _0x4196dd=_0x5376;return['id',_0x4196dd('0x3ea')];}},{'key':_0x42d57d('0x95e'),'value':function(){return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Select\x20Pay\x20Frequency'}];}},{'key':_0x42d57d('0x10d7'),'value':function(){var _0x46fd2a=_0x42d57d;return[[_0x46fd2a('0x3ea'),{'label':'Name','type':_0x46fd2a('0x5b2'),'validation':''}]];}},{'key':_0x42d57d('0xf25'),'value':function(){var _0x41f6a2=_0x42d57d;return _0x41f6a2('0xf6');}},{'key':_0x42d57d('0x37f'),'value':function(_0x1fb2c5){var _0x23bd1e=_0x42d57d;$('#payday_all')[_0x23bd1e('0x78f')](),_0x373fba(_0x32d812(_0x23cecf[_0x23bd1e('0xe02')]),_0x23bd1e('0x37f'),this)['call'](this,_0x1fb2c5),$(_0x23bd1e('0x7e0'))[_0x23bd1e('0x78f')]()['on'](_0x23bd1e('0x29f'),function(){var _0x5ab64e=_0x23bd1e;$(this)['is'](_0x5ab64e('0x823'))?$(_0x5ab64e('0xd9e'))[_0x5ab64e('0x9ec')](_0x5ab64e('0x947'),!0x0):$(_0x5ab64e('0xd9e'))['prop']('checked',!0x1);});}},{'key':_0x42d57d('0xe26'),'value':function(_0x3f1af0,_0x4d2b00){var _0x36c483=_0x42d57d,_0x5a4251='_edit_';return _0x5a4251=(_0x5a4251=(_0x5a4251=_0x5a4251[_0x36c483('0xd06')]('_edit_',_0x36c483('0x10bd')))[_0x36c483('0xd06')](/_id_/g,_0x3f1af0))[_0x36c483('0xd06')](/_BASE_/g,this[_0x36c483('0x598')]);}},{'key':_0x42d57d('0xaed'),'value':function(){var _0x3df95e=_0x42d57d;return{'sTitle':'','sClass':_0x3df95e('0x40c')};}}]),_0x23cecf;}(_0x3e94e6[_0x3f418a('0xf5f')]),_0xe6d23a=function(_0x17a2e6){var _0x279eae=_0x3f418a;_0x2971fc(_0x1484be,_0x17a2e6);var _0x3427e0=_0x733221(_0x1484be);function _0x1484be(){var _0x2e02e7=_0x5376;return _0x10491f(this,_0x1484be),_0x3427e0[_0x2e02e7('0x2be')](this,arguments);}return _0x5cc638(_0x1484be,[{'key':_0x279eae('0x44a'),'value':function(){var _0x3386fa=_0x279eae;return['id',_0x3386fa('0x3ea'),_0x3386fa('0x7bd'),_0x3386fa('0xed2'),_0x3386fa('0x392'),_0x3386fa('0xed9'),_0x3386fa('0x75e')];}},{'key':_0x279eae('0x95e'),'value':function(){var _0x12f2b8=_0x279eae;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x12f2b8('0xdde')},{'sTitle':_0x12f2b8('0x489')},{'sTitle':_0x12f2b8('0x3c6')},{'sTitle':'Date\x20Start'},{'sTitle':_0x12f2b8('0x87d')},{'sTitle':_0x12f2b8('0x600')}];}},{'key':_0x279eae('0x10d7'),'value':function(){var _0x923526=_0x279eae;return[['id',{'label':'ID','type':'hidden'}],[_0x923526('0x3ea'),{'label':'Name','type':'text'}],[_0x923526('0x7bd'),{'label':_0x923526('0x489'),'type':_0x923526('0x4ce'),'remote-source':['PayFrequency','id',_0x923526('0x3ea')],'sort':_0x923526('0xea1')}],[_0x923526('0x4a3'),{'label':_0x923526('0xba7'),'type':'select','remote-source':['DeductionGroup','id',_0x923526('0x3ea')],'sort':_0x923526('0xea1')}],['payslipTemplate',{'label':_0x923526('0xedd'),'type':'select','remote-source':[_0x923526('0x757'),'id',_0x923526('0x3ea')]}],[_0x923526('0xed2'),{'label':_0x923526('0x3c6'),'type':'select2','remote-source':[_0x923526('0x5f0'),'id','title'],'sort':_0x923526('0xea1')}],[_0x923526('0x392'),{'label':_0x923526('0xc0'),'type':_0x923526('0x2a5'),'validation':''}],[_0x923526('0xed9'),{'label':'End\x20Date','type':'date','validation':''}],[_0x923526('0x4b2'),{'label':'Payroll\x20Columns','type':'select2multi','remote-source':[_0x923526('0xc4e'),'id','name']}],['status',{'label':_0x923526('0x600'),'type':_0x923526('0x4ce'),'source':[['Draft','Draft'],[_0x923526('0x624'),'Completed']],'sort':_0x923526('0xea1')}]];}},{'key':'postRenderForm','value':function(_0x1da7dd,_0x4922af){var _0x470599=_0x279eae;null!=_0x1da7dd&&void 0x0!==_0x1da7dd&&void 0x0!==_0x1da7dd['id']&&null!=_0x1da7dd['id']&&(_0x4922af[_0x470599('0xe05')](_0x470599('0x409'))[_0x470599('0xb0c')](_0x470599('0x7a2'),_0x470599('0x7a2')),_0x4922af[_0x470599('0xe05')]('#department')[_0x470599('0xb0c')](_0x470599('0x7a2'),_0x470599('0x7a2')));}},{'key':_0x279eae('0xc3a'),'value':function(_0x59c612,_0x5a5cdb){var _0x4fb5a7=_0x279eae;modJs=modJsList[_0x4fb5a7('0xa38')],modJs[_0x4fb5a7('0x113c')](_0x59c612),$(_0x4fb5a7('0x65d'))[_0x4fb5a7('0xcee')](),$('#PayrollData')[_0x4fb5a7('0x312')](),$(_0x4fb5a7('0x7f9'))['show'](),'Completed'===_0x5a5cdb?($(_0x4fb5a7('0x116f'))['hide'](),$(_0x4fb5a7('0xc19'))[_0x4fb5a7('0xcee')]()):($(_0x4fb5a7('0x116f'))['show'](),$(_0x4fb5a7('0xc19'))['show']()),modJs[_0x4fb5a7('0xd12')]([]);}},{'key':'getActionButtonsHtml','value':function(_0x11a6a1,_0x36620a){var _0x3bafe6=_0x279eae,_0x1cd08d='_edit__process__clone__delete_';return _0x1cd08d=this[_0x3bafe6('0x7b5')]?_0x1cd08d['replace']('_clone_',_0x3bafe6('0xb05')):_0x1cd08d[_0x3bafe6('0xd06')](_0x3bafe6('0x583'),''),_0x1cd08d=this[_0x3bafe6('0xab3')]?_0x1cd08d['replace'](_0x3bafe6('0xac2'),_0x3bafe6('0x9a6')):_0x1cd08d[_0x3bafe6('0xd06')](_0x3bafe6('0xac2'),''),_0x1cd08d=(_0x1cd08d=(_0x1cd08d=(_0x1cd08d=(_0x1cd08d=this[_0x3bafe6('0x1153')]?_0x1cd08d[_0x3bafe6('0xd06')](_0x3bafe6('0x6d7'),_0x3bafe6('0xbd4')):_0x1cd08d[_0x3bafe6('0xd06')](_0x3bafe6('0x6d7'),''))[_0x3bafe6('0xd06')]('_process_',_0x3bafe6('0x403')))[_0x3bafe6('0xd06')](/_id_/g,_0x11a6a1))[_0x3bafe6('0xd06')](/_status_/g,_0x36620a[0x6]))['replace'](/_BASE_/g,this[_0x3bafe6('0x598')]);}},{'key':'get','value':function(_0x35b70d){var _0x3ccbfd=_0x279eae;$('#PayrollData')['hide'](),$(_0x3ccbfd('0xe0b'))[_0x3ccbfd('0xcee')](),$('#PayrollDataButtons')[_0x3ccbfd('0xcee')](),$(_0x3ccbfd('0x65d'))[_0x3ccbfd('0x312')](),modJsList['tabPayrollData'][_0x3ccbfd('0x113c')](null),_0x373fba(_0x32d812(_0x1484be[_0x3ccbfd('0xe02')]),_0x3ccbfd('0xd12'),this)[_0x3ccbfd('0xfd2')](this,_0x35b70d);}},{'key':_0x279eae('0x1aa'),'value':function(){return'https://icehrm.gitbook.io/icehrm/payroll-and-expenses/payroll-management';}}]),_0x1484be;}(_0x3e94e6[_0x3f418a('0xf5f')]),_0x5be210=function(_0x15e6f3){var _0x378e60=_0x3f418a;_0x2971fc(_0x233f4b,_0x15e6f3);var _0x2eee9b=_0x733221(_0x233f4b);function _0x233f4b(_0x561643,_0x5e8265,_0x1d181b,_0x301b1b){var _0x440011=_0x5376,_0x32f36e;return _0x10491f(this,_0x233f4b),(_0x32f36e=_0x2eee9b[_0x440011('0xfd2')](this,_0x561643,_0x5e8265,_0x1d181b,_0x301b1b))[_0x440011('0x105a')]={},_0x32f36e['payrollId']=null,_0x32f36e;}return _0x5cc638(_0x233f4b,[{'key':_0x378e60('0xc21'),'value':function(_0x24d840,_0x4a270a,_0x32c2f6){var _0x3a30e3=_0x378e60;return modJs[_0x3a30e3('0x9f8')](_0x24d840[_0x3a30e3('0x1016')]('colId'),_0x24d840[_0x3a30e3('0x1016')](_0x3a30e3('0xf70')),_0x32c2f6),!0x0;}},{'key':_0x378e60('0x113c'),'value':function(_0x2f59a3){var _0x27d369=_0x378e60;this[_0x27d369('0x10a0')]=_0x2f59a3;}},{'key':_0x378e60('0x519'),'value':function(_0x4a761a,_0x47460e){var _0x2610c1=_0x378e60;return(_0x2610c1('0x1f9')===_0x4a761a||'updateAllData'===_0x4a761a||_0x2610c1('0x498')===_0x4a761a)&&(_0x47460e[_0x2610c1('0x10a0')]=this['payrollId']),_0x47460e;}},{'key':_0x378e60('0xede'),'value':function(_0x180cfa){return _0x180cfa['unshift'](''),_0x180cfa;}},{'key':_0x378e60('0x7a8'),'value':function(){var _0x3598b6=_0x378e60;for(var _0x5d6084='',_0x372750=0x0;_0x372750','gte':'>=','lt':'<','lte':'<='};return _0x3e6778[_0x18ace8];};return _0x2ea9a7('0x1018')!==_0x50d2a1[_0x2ea9a7('0xf77')]&&(_0x552434+=''[_0x2ea9a7('0xda9')](_0x50d2a1[_0x2ea9a7('0xb31')],'\x20')[_0x2ea9a7('0xda9')](_0x37bdc6(_0x50d2a1[_0x2ea9a7('0xf77')]),'\x20')),_0x2ea9a7('0x73a')!==_0x50d2a1['upperCondition']&&(_0x552434+=_0x2ea9a7('0x8ff'),_0x552434+=''['concat'](_0x37bdc6(_0x50d2a1[_0x2ea9a7('0x414')]),'\x20')['concat'](_0x50d2a1[_0x2ea9a7('0x8fe')],'\x20')),''===_0x552434?'Deduction\x20is\x20'[_0x2ea9a7('0xda9')](_0x50d2a1[_0x2ea9a7('0x5d7')],_0x2ea9a7('0x112f')):_0x2ea9a7('0x4d9')[_0x2ea9a7('0xda9')](_0x552434,_0x2ea9a7('0xbc'))[_0x2ea9a7('0xda9')](_0x50d2a1[_0x2ea9a7('0x5d7')]);}}],['deduction_group',{'label':_0x2b4bba('0xba7'),'type':_0x2b4bba('0x15'),'allow-null':!0x1,'remote-source':['DeductionGroup','id','name']}]];}}]),_0x51290e;}(_0x3e94e6[_0x3f418a('0xf5f')]),_0x34d55e=function(_0x3da28a){var _0x2734f4=_0x3f418a;_0x2971fc(_0x5d1fe2,_0x3da28a);var _0x48cb46=_0x733221(_0x5d1fe2);function _0x5d1fe2(){var _0x3f1ae4=_0x5376;return _0x10491f(this,_0x5d1fe2),_0x48cb46[_0x3f1ae4('0x2be')](this,arguments);}return _0x5cc638(_0x5d1fe2,[{'key':_0x2734f4('0x44a'),'value':function(){var _0x2975e2=_0x2734f4;return['id',_0x2975e2('0x3ea'),_0x2975e2('0x903')];}},{'key':_0x2734f4('0x95e'),'value':function(){var _0x55de2a=_0x2734f4;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0x55de2a('0xd87')}];}},{'key':_0x2734f4('0x10d7'),'value':function(){var _0x1cf334=_0x2734f4;return[['id',{'label':'ID','type':_0x1cf334('0x10f4')}],[_0x1cf334('0x3ea'),{'label':_0x1cf334('0xdde'),'type':'text','validation':''}],[_0x1cf334('0x903'),{'label':_0x1cf334('0xd87'),'type':'textarea','validation':'none'}]];}},{'key':_0x2734f4('0xe26'),'value':function(_0x54eaf6){var _0x3c86e4=_0x2734f4,_0x105893=_0x3c86e4('0xab5');return _0x105893=(_0x105893=_0x105893['replace'](/_id_/g,_0x54eaf6))['replace'](/_BASE_/g,this[_0x3c86e4('0x598')]);}},{'key':_0x2734f4('0x293'),'value':function(_0x3381d5){var _0x352dc1=_0x2734f4;if(confirm('Are\x20you\x20sure\x20you\x20want\x20to\x20delete\x20this\x20payroll\x20group?\x20Deleting\x20the\x20payroll\x20group\x20will\x20delete\x20all\x20the\x20Payroll\x20columns\x20and\x20Saved\x20calculations\x20attached\x20to\x20this\x20Payroll\x20Group')){var _0x940acb={};_0x940acb['id']=_0x3381d5;var _0x1844e7=JSON['stringify'](_0x940acb),_0x5e9024=[];_0x5e9024[_0x352dc1('0x88d')]=[],_0x5e9024[_0x352dc1('0x691')]=_0x352dc1('0xb47'),_0x5e9024[_0x352dc1('0xc93')]=_0x352dc1('0xae4'),this[_0x352dc1('0xd99')](_0x352dc1('0x293'),_0x352dc1('0xfe'),_0x1844e7,_0x5e9024);}}},{'key':_0x2734f4('0xb47'),'value':function(_0x2ae578){var _0x202952=_0x2734f4;this['showMessage'](_0x202952('0xd5c'),_0x202952('0xba5')),this[_0x202952('0xd12')]([]);}},{'key':_0x2734f4('0xae4'),'value':function(_0x12b454){var _0x4922d2=_0x2734f4;this[_0x4922d2('0xaa4')]('Error\x20occured\x20while\x20deleting\x20Payroll\x20Group',_0x12b454);}}]),_0x5d1fe2;}(_0x3e94e6[_0x3f418a('0xf5f')]),_0x344495=function(_0x164438){var _0x1ef729=_0x3f418a;_0x2971fc(_0x128b95,_0x164438);var _0x3c28f6=_0x733221(_0x128b95);function _0x128b95(){var _0x2469df=_0x5376;return _0x10491f(this,_0x128b95),_0x3c28f6[_0x2469df('0x2be')](this,arguments);}return _0x5cc638(_0x128b95,[{'key':_0x1ef729('0x44a'),'value':function(){var _0x3a7005=_0x1ef729;return['id',_0x3a7005('0x3ea')];}},{'key':_0x1ef729('0x95e'),'value':function(){return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'}];}},{'key':_0x1ef729('0x10d7'),'value':function(){var _0x25e6c8=_0x1ef729;return[['id',{'label':'ID','type':_0x25e6c8('0x10f4')}],[_0x25e6c8('0x3ea'),{'label':'Name','type':_0x25e6c8('0x5b2'),'validation':''}],['data',{'label':_0x25e6c8('0x1074'),'type':_0x25e6c8('0xc5b'),'form':[[_0x25e6c8('0x921'),{'label':_0x25e6c8('0x5bc'),'type':_0x25e6c8('0x4ce'),'sort':'none','source':[['Payroll\x20Column','Payroll\x20Column'],[_0x25e6c8('0xc71'),_0x25e6c8('0xc71')],['Company\x20Name','Company\x20Name'],['Company\x20Logo','Company\x20Logo'],[_0x25e6c8('0xe52'),'Separators']]}],['payrollColumn',{'label':_0x25e6c8('0xeee'),'type':_0x25e6c8('0x15'),'sort':'none','allow-null':!0x0,'null-label':_0x25e6c8('0x37b'),'remote-source':[_0x25e6c8('0xc4e'),'id','name']}],[_0x25e6c8('0xf3c'),{'label':_0x25e6c8('0x8a2'),'type':_0x25e6c8('0x5b2'),'validation':_0x25e6c8('0xea1')}],[_0x25e6c8('0x5b2'),{'label':'Text','type':_0x25e6c8('0x7ea'),'validation':_0x25e6c8('0xea1')}],[_0x25e6c8('0x75e'),{'label':_0x25e6c8('0x600'),'type':_0x25e6c8('0x4ce'),'sort':_0x25e6c8('0xea1'),'source':[[_0x25e6c8('0xf09'),_0x25e6c8('0xf09')],[_0x25e6c8('0xc78'),_0x25e6c8('0xc78')]]}]],'html':_0x25e6c8('0xff9'),'validation':_0x25e6c8('0xea1'),'custom-validate-function':function(_0x5c5cf5){var _0x25fe1c=_0x25e6c8,_0x534bc6={'valid':!0x0};return _0x25fe1c('0xeee')===_0x5c5cf5['type']?_0x25fe1c('0x855')===_0x5c5cf5[_0x25fe1c('0xdf5')]&&(_0x534bc6[_0x25fe1c('0x9ff')]=!0x1,_0x534bc6['message']='Please\x20select\x20payroll\x20column'):_0x5c5cf5[_0x25fe1c('0xdf5')]='NULL',_0x25fe1c('0xc71')===_0x5c5cf5[_0x25fe1c('0x921')]&&''===_0x5c5cf5[_0x25fe1c('0x5b2')]&&(_0x534bc6[_0x25fe1c('0x9ff')]=!0x1,_0x534bc6[_0x25fe1c('0x773')]='Text\x20can\x20not\x20be\x20empty'),_0x534bc6[_0x25fe1c('0xfcb')]=_0x5c5cf5,_0x534bc6;}}]];}}]),_0x128b95;}(_0x3e94e6[_0x3f418a('0xf5f')]);_0x3be29a[_0x3f418a('0x64')]={'PaydayAdapter':_0x5cb0f8,'PayrollAdapter':_0xe6d23a,'PayrollDataAdapter':_0x5be210,'PayrollColumnAdapter':_0x48d780,'PayrollColumnTemplateAdapter':_0x2f5a38,'PayrollEmployeeAdapter':_0x5c5f93,'DeductionAdapter':_0xc7bcf3,'DeductionGroupAdapter':_0x34d55e,'PayslipTemplateAdapter':_0x344495};},{'../../../api/AdapterBase':0x34,'../../../api/TableEditAdapter':0x43,'codemirror':'codemirror','codemirror/addon/display/autorefresh':0x6d,'codemirror/addon/edit/closebrackets':0x6e,'codemirror/mode/javascript/javascript':0x70}],0x23:[function(_0x4102c6,_0xd81969,_0xadda5f){var _0xaca19d=_0x548f48;'use strict';var _0x482a4f=_0x4102c6(_0xaca19d('0x19f'));window['PermissionAdapter']=_0x482a4f['PermissionAdapter'];},{'./lib':0x24}],0x24:[function(_0x5572e7,_0x52c37b,_0x1586c6){'use strict';var _0x271714;function _0x44f2a4(_0x53ac5a){var _0x4cc83f=_0x5376;return(_0x44f2a4='function'==typeof Symbol&&_0x4cc83f('0x43c')==typeof Symbol['iterator']?function(_0x4b8e83){return typeof _0x4b8e83;}:function(_0xbdaea9){var _0x31f968=_0x4cc83f;return _0xbdaea9&&'function'==typeof Symbol&&_0xbdaea9['constructor']===Symbol&&_0xbdaea9!==Symbol[_0x31f968('0xe02')]?_0x31f968('0x43c'):typeof _0xbdaea9;})(_0x53ac5a);}function _0x3d2e29(_0x4b8ba9,_0x251b0d){var _0x3241ae=_0x5376;if(!(_0x4b8ba9 instanceof _0x251b0d))throw new TypeError(_0x3241ae('0xf98'));}function _0x4a61db(_0x711c7,_0x4e19a4){var _0x5c2bdf=_0x5376;for(var _0x239249=0x0;_0x239249<_0x4e19a4[_0x5c2bdf('0x13')];_0x239249++){var _0x3c8355=_0x4e19a4[_0x239249];_0x3c8355[_0x5c2bdf('0x3bf')]=_0x3c8355[_0x5c2bdf('0x3bf')]||!0x1,_0x3c8355[_0x5c2bdf('0x749')]=!0x0,_0x5c2bdf('0x30')in _0x3c8355&&(_0x3c8355[_0x5c2bdf('0x820')]=!0x0),Object[_0x5c2bdf('0x9a5')](_0x711c7,_0x3c8355[_0x5c2bdf('0x86f')],_0x3c8355);}}function _0x5015f6(_0x54aa95,_0x2df88d,_0x5463d1){var _0x2b5a78=_0x5376;return(_0x5015f6='undefined'!=typeof Reflect&&Reflect[_0x2b5a78('0xd12')]?Reflect['get']:function(_0x36efb8,_0x2c636e,_0x2705aa){var _0xb029c0=_0x2b5a78,_0x3bd3f5=function(_0x5192d7,_0x4d078b){var _0x275b59=_0x5376;for(;!Object[_0x275b59('0xe02')][_0x275b59('0xe9c')][_0x275b59('0xfd2')](_0x5192d7,_0x4d078b)&&null!==(_0x5192d7=_0x5f5524(_0x5192d7)););return _0x5192d7;}(_0x36efb8,_0x2c636e);if(_0x3bd3f5){var _0x3d92d0=Object[_0xb029c0('0x43d')](_0x3bd3f5,_0x2c636e);return _0x3d92d0['get']?_0x3d92d0['get']['call'](_0x2705aa):_0x3d92d0[_0xb029c0('0x30')];}})(_0x54aa95,_0x2df88d,_0x5463d1||_0x54aa95);}function _0x1e65b5(_0x57c518,_0x5d714b){var _0x489810=_0x5376;return!_0x5d714b||'object'!==_0x44f2a4(_0x5d714b)&&_0x489810('0x106c')!=typeof _0x5d714b?function(_0x22296b){var _0x5596df=_0x489810;if(void 0x0===_0x22296b)throw new ReferenceError(_0x5596df('0xe0d'));return _0x22296b;}(_0x57c518):_0x5d714b;}function _0x4e3e4c(){var _0x18c3e5=_0x5376;if(_0x18c3e5('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct']['sham'])return!0x1;if(_0x18c3e5('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x18c3e5('0xb6d')][_0x18c3e5('0xfd2')](Reflect[_0x18c3e5('0x353')](Date,[],function(){})),!0x0;}catch(_0x5d4497){return!0x1;}}function _0x5f5524(_0x44aee2){var _0x3e4de7=_0x5376;return(_0x5f5524=Object[_0x3e4de7('0x3df')]?Object[_0x3e4de7('0x2d9')]:function(_0x55821e){var _0x2614a4=_0x3e4de7;return _0x55821e[_0x2614a4('0x112c')]||Object[_0x2614a4('0x2d9')](_0x55821e);})(_0x44aee2);}function _0xce5a51(_0x307499,_0x9f0d23){return(_0xce5a51=Object['setPrototypeOf']||function(_0x5063bc,_0x35e424){var _0x3ddda8=_0x5376;return _0x5063bc[_0x3ddda8('0x112c')]=_0x35e424,_0x5063bc;})(_0x307499,_0x9f0d23);}var _0x2df8d4=function(_0x3d6b40){var _0x22037a=_0x5376;!function(_0x3fa674,_0x1317f6){var _0x2f5a98=_0x5376;if('function'!=typeof _0x1317f6&&null!==_0x1317f6)throw new TypeError(_0x2f5a98('0x5a0'));_0x3fa674[_0x2f5a98('0xe02')]=Object['create'](_0x1317f6&&_0x1317f6[_0x2f5a98('0xe02')],{'constructor':{'value':_0x3fa674,'writable':!0x0,'configurable':!0x0}}),_0x1317f6&&_0xce5a51(_0x3fa674,_0x1317f6);}(_0x18e62f,_0x3d6b40);var _0x2fcb63,_0x47c83d,_0x28fca7,_0x36819e,_0x3cf313=(_0x2fcb63=_0x18e62f,function(){var _0x519603=_0x5376,_0x496d3c,_0x1991f7=_0x5f5524(_0x2fcb63);if(_0x4e3e4c()){var _0x983ed1=_0x5f5524(this)['constructor'];_0x496d3c=Reflect[_0x519603('0x353')](_0x1991f7,arguments,_0x983ed1);}else _0x496d3c=_0x1991f7[_0x519603('0x2be')](this,arguments);return _0x1e65b5(this,_0x496d3c);});function _0x18e62f(){return _0x3d2e29(this,_0x18e62f),_0x3cf313['apply'](this,arguments);}return _0x47c83d=_0x18e62f,(_0x28fca7=[{'key':'getDataMapping','value':function(){var _0x27267b=_0x5376;return['id',_0x27267b('0x6e8'),'module_id',_0x27267b('0x5ad'),_0x27267b('0x30')];}},{'key':_0x22037a('0x95e'),'value':function(){var _0xdf1e66=_0x22037a;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0xdf1e66('0xa88')},{'sTitle':_0xdf1e66('0xf28')},{'sTitle':_0xdf1e66('0x18c')},{'sTitle':_0xdf1e66('0x5c3')}];}},{'key':_0x22037a('0x10d7'),'value':function(){var _0x1f840c=_0x22037a;return[['id',{'label':'ID','type':_0x1f840c('0x10f4')}],[_0x1f840c('0x6e8'),{'label':_0x1f840c('0xa88'),'type':_0x1f840c('0xa49'),'validation':'none'}],['module_id',{'label':_0x1f840c('0xf28'),'type':_0x1f840c('0xa49'),'remote-source':[_0x1f840c('0xf28'),'id',_0x1f840c('0x280')]}],[_0x1f840c('0x5ad'),{'label':_0x1f840c('0x18c'),'type':'placeholder','validation':'none'}],[_0x1f840c('0x30'),{'label':_0x1f840c('0x5c3'),'type':_0x1f840c('0x5b2'),'validation':'none'}]];}},{'key':_0x22037a('0x51c'),'value':function(){var _0x393ddd=_0x22037a;return[[_0x393ddd('0x18'),{'label':_0x393ddd('0xf28'),'type':_0x393ddd('0x15'),'allow-null':!0x0,'null-label':'All\x20Modules','remote-source':['Module','id','menu+name']}]];}},{'key':_0x22037a('0xe26'),'value':function(_0x5d245e,_0x190cfa){var _0x4dbdd9=_0x22037a,_0x43cb79=_0x4dbdd9('0x500');return _0x43cb79=(_0x43cb79=_0x43cb79['replace'](/_id_/g,_0x5d245e))[_0x4dbdd9('0xd06')](/_BASE_/g,this[_0x4dbdd9('0x598')]);}},{'key':_0x22037a('0x314'),'value':function(_0x2c21fc){var _0x3af704=_0x22037a;return _0x3af704('0x30')===_0x2c21fc?_0x3af704('0x31a'):'';}},{'key':'fillForm','value':function(_0x3a86f7){var _0x1e52a1=_0x22037a;_0x5015f6(_0x5f5524(_0x18e62f['prototype']),_0x1e52a1('0x848'),this)[_0x1e52a1('0xfd2')](this,_0x3a86f7),$(_0x1e52a1('0x10f'))[_0x1e52a1('0x276')](_0x3a86f7[_0x1e52a1('0x903')]);}}])&&_0x4a61db(_0x47c83d[_0x22037a('0xe02')],_0x28fca7),_0x36819e&&_0x4a61db(_0x47c83d,_0x36819e),_0x18e62f;}(((_0x271714=_0x5572e7('../../../api/AdapterBase'))&&_0x271714['__esModule']?_0x271714:{'default':_0x271714})['default']);_0x52c37b['exports']={'PermissionAdapter':_0x2df8d4};},{'../../../api/AdapterBase':0x34}],0x25:[function(_0x4a7e7e,_0x144e2a,_0x174843){var _0x1c5670=_0x548f48;'use strict';var _0x1abb74=_0x4a7e7e('./lib');window[_0x1c5670('0x9f')]=_0x1abb74[_0x1c5670('0x9f')],window[_0x1c5670('0xf32')]=_0x1abb74[_0x1c5670('0xf32')];},{'./lib':0x26}],0x26:[function(_0x56bb2b,_0x353fe2,_0x251fb5){var _0x21cdea=_0x548f48;'use strict';var _0x1351de,_0x5ddf77=(_0x1351de=_0x56bb2b('../../../api/ReactModalAdapterBase'))&&_0x1351de[_0x21cdea('0xce5')]?_0x1351de:{'default':_0x1351de};function _0xdc5a89(_0x36cb9f){var _0x4e0def=_0x21cdea;return(_0xdc5a89=_0x4e0def('0x106c')==typeof Symbol&&_0x4e0def('0x43c')==typeof Symbol[_0x4e0def('0x57b')]?function(_0xa49bd){return typeof _0xa49bd;}:function(_0x2604c6){var _0x210356=_0x4e0def;return _0x2604c6&&_0x210356('0x106c')==typeof Symbol&&_0x2604c6[_0x210356('0xad1')]===Symbol&&_0x2604c6!==Symbol[_0x210356('0xe02')]?_0x210356('0x43c'):typeof _0x2604c6;})(_0x36cb9f);}function _0x110ead(_0x31b99f,_0x40c984){if(!(_0x31b99f instanceof _0x40c984))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x18a299(_0x340365,_0xbf0389){var _0x2e8ef2=_0x21cdea;for(var _0x8fb7f1=0x0;_0x8fb7f1<_0xbf0389[_0x2e8ef2('0x13')];_0x8fb7f1++){var _0x1530e4=_0xbf0389[_0x8fb7f1];_0x1530e4[_0x2e8ef2('0x3bf')]=_0x1530e4[_0x2e8ef2('0x3bf')]||!0x1,_0x1530e4['configurable']=!0x0,_0x2e8ef2('0x30')in _0x1530e4&&(_0x1530e4[_0x2e8ef2('0x820')]=!0x0),Object[_0x2e8ef2('0x9a5')](_0x340365,_0x1530e4[_0x2e8ef2('0x86f')],_0x1530e4);}}function _0x11f011(_0x2873c4,_0xb605da,_0x11cd91){var _0x2dd81f=_0x21cdea;return _0xb605da&&_0x18a299(_0x2873c4[_0x2dd81f('0xe02')],_0xb605da),_0x11cd91&&_0x18a299(_0x2873c4,_0x11cd91),_0x2873c4;}function _0x2d5046(_0x169b02){return function(){var _0x30cc4d=_0x5376,_0x555c58,_0x2f635f=_0x30da61(_0x169b02);if(_0xc8c7a5()){var _0x31085b=_0x30da61(this)['constructor'];_0x555c58=Reflect[_0x30cc4d('0x353')](_0x2f635f,arguments,_0x31085b);}else _0x555c58=_0x2f635f[_0x30cc4d('0x2be')](this,arguments);return _0x2f1626(this,_0x555c58);};}function _0x2f1626(_0x1a719e,_0xe6d28f){var _0x38c515=_0x21cdea;return!_0xe6d28f||_0x38c515('0xb3f')!==_0xdc5a89(_0xe6d28f)&&_0x38c515('0x106c')!=typeof _0xe6d28f?function(_0x1b6bab){var _0x1c8f30=_0x38c515;if(void 0x0===_0x1b6bab)throw new ReferenceError(_0x1c8f30('0xe0d'));return _0x1b6bab;}(_0x1a719e):_0xe6d28f;}function _0xc8c7a5(){var _0x2eaffc=_0x21cdea;if('undefined'==typeof Reflect||!Reflect[_0x2eaffc('0x353')])return!0x1;if(Reflect[_0x2eaffc('0x353')][_0x2eaffc('0xb21')])return!0x1;if(_0x2eaffc('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x2eaffc('0xe02')][_0x2eaffc('0xb6d')][_0x2eaffc('0xfd2')](Reflect[_0x2eaffc('0x353')](Date,[],function(){})),!0x0;}catch(_0x9a994f){return!0x1;}}function _0x30da61(_0x54f6b4){var _0x26cdb9=_0x21cdea;return(_0x30da61=Object[_0x26cdb9('0x3df')]?Object[_0x26cdb9('0x2d9')]:function(_0x439afc){var _0x5cbcdf=_0x26cdb9;return _0x439afc[_0x5cbcdf('0x112c')]||Object['getPrototypeOf'](_0x439afc);})(_0x54f6b4);}function _0x870d7f(_0x3632fe,_0x222f32){var _0x5d8eb4=_0x21cdea;if(_0x5d8eb4('0x106c')!=typeof _0x222f32&&null!==_0x222f32)throw new TypeError(_0x5d8eb4('0x5a0'));_0x3632fe['prototype']=Object[_0x5d8eb4('0xbd0')](_0x222f32&&_0x222f32[_0x5d8eb4('0xe02')],{'constructor':{'value':_0x3632fe,'writable':!0x0,'configurable':!0x0}}),_0x222f32&&_0x3538ae(_0x3632fe,_0x222f32);}function _0x3538ae(_0x23067f,_0x386b9d){return(_0x3538ae=Object['setPrototypeOf']||function(_0x218347,_0x50d1df){var _0x47260c=_0x5376;return _0x218347[_0x47260c('0x112c')]=_0x50d1df,_0x218347;})(_0x23067f,_0x386b9d);}var _0x5834cf=function(_0x812d9){var _0xf96440=_0x21cdea;_0x870d7f(_0x5967ff,_0x812d9);var _0x512608=_0x2d5046(_0x5967ff);function _0x5967ff(_0x3433ee,_0x15af91,_0x1004ab,_0x29fcab){var _0x25f411=_0x5376,_0x53dddd;return _0x110ead(this,_0x5967ff),(_0x53dddd=_0x512608[_0x25f411('0xfd2')](this,_0x3433ee,_0x15af91,_0x1004ab,_0x29fcab))[_0x25f411('0xade')]={},_0x53dddd[_0x25f411('0xfbc')]={},_0x53dddd[_0x25f411('0x1f0')]={},_0x53dddd[_0x25f411('0xe00')]={},_0x53dddd;}return _0x11f011(_0x5967ff,[{'key':_0xf96440('0x44a'),'value':function(){var _0x155f99=_0xf96440;return['id',_0x155f99('0x3ea'),_0x155f99('0x4b3')];}},{'key':_0xf96440('0x95e'),'value':function(){var _0x26be16=_0xf96440;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x26be16('0xdde')},{'sTitle':'Client'}];}},{'key':'getTableColumns','value':function(){var _0x5ce36f=_0xf96440;return[{'title':_0x5ce36f('0xdde'),'dataIndex':'name','sorter':!0x0},{'title':'Client','dataIndex':'client','sorter':!0x0}];}},{'key':_0xf96440('0x10d7'),'value':function(){var _0x5e0d75=_0xf96440;return this[_0x5e0d75('0x5ba')]?[['id',{'label':'ID','type':_0x5e0d75('0x10f4')}],[_0x5e0d75('0x3ea'),{'label':_0x5e0d75('0xdde'),'type':_0x5e0d75('0x5b2')}],['client',{'label':_0x5e0d75('0x94f'),'type':_0x5e0d75('0x15'),'allow-null':!0x0,'remote-source':[_0x5e0d75('0x94f'),'id',_0x5e0d75('0x3ea')]}],[_0x5e0d75('0x1093'),{'label':'Details','type':_0x5e0d75('0x7ea'),'validation':_0x5e0d75('0xea1')}],[_0x5e0d75('0x75e'),{'label':_0x5e0d75('0x600'),'type':'select','source':[[_0x5e0d75('0x3a8'),_0x5e0d75('0x3a8')],[_0x5e0d75('0x25a'),_0x5e0d75('0x25a')],[_0x5e0d75('0x624'),'Completed'],[_0x5e0d75('0xaf3'),'Dropped']]}]]:[['id',{'label':'ID','type':_0x5e0d75('0x10f4')}],['name',{'label':_0x5e0d75('0xdde'),'type':_0x5e0d75('0xa49')}],[_0x5e0d75('0x4b3'),{'label':_0x5e0d75('0x94f'),'type':_0x5e0d75('0xa49'),'allow-null':!0x0,'remote-source':[_0x5e0d75('0x94f'),'id',_0x5e0d75('0x3ea')]}],['details',{'label':'Details','type':_0x5e0d75('0xa49'),'validation':'none'}],[_0x5e0d75('0x75e'),{'label':'Status','type':'select','source':[[_0x5e0d75('0x3a8'),_0x5e0d75('0x3a8')],['On\x20Hold',_0x5e0d75('0x25a')],[_0x5e0d75('0x624'),'Completed'],[_0x5e0d75('0xaf3'),'Dropped']]}]];}},{'key':_0xf96440('0x1aa'),'value':function(){return'http://blog.icehrm.com/docs/projects/';}}]),_0x5967ff;}(_0x5ddf77[_0x21cdea('0xf5f')]),_0x31b8b5=function(_0x2c744a){var _0x261d1d=_0x21cdea;_0x870d7f(_0x256df4,_0x2c744a);var _0x557486=_0x2d5046(_0x256df4);function _0x256df4(_0xe5a569,_0x374376,_0x3977fe,_0x21387e){var _0xeef441=_0x5376,_0x354eb8;return _0x110ead(this,_0x256df4),(_0x354eb8=_0x557486[_0xeef441('0xfd2')](this,_0xe5a569,_0x374376,_0x3977fe,_0x21387e))[_0xeef441('0xade')]={},_0x354eb8['hiddenFields']={},_0x354eb8[_0xeef441('0x1f0')]={},_0x354eb8[_0xeef441('0xe00')]={},_0x354eb8;}return _0x11f011(_0x256df4,[{'key':'getDataMapping','value':function(){var _0x106c26=_0x5376;return['id',_0x106c26('0x10d1'),_0x106c26('0x10fe')];}},{'key':'getHeaders','value':function(){return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Employee'},{'sTitle':'Project'}];}},{'key':_0x261d1d('0xb81'),'value':function(){var _0x5935b2=_0x261d1d;return[{'title':'Employee','dataIndex':_0x5935b2('0x10d1'),'sorter':!0x0},{'title':'Project','dataIndex':'project','sorter':!0x0}];}},{'key':_0x261d1d('0x10d7'),'value':function(){var _0x4c51b7=_0x261d1d;return[['id',{'label':'ID','type':'hidden'}],['employee',{'label':'Employee','type':_0x4c51b7('0x15'),'remote-source':['Employee','id','first_name+last_name']}],[_0x4c51b7('0x10fe'),{'label':'Project','type':_0x4c51b7('0x15'),'remote-source':[_0x4c51b7('0xcf0'),'id','name']}],[_0x4c51b7('0x1093'),{'label':_0x4c51b7('0xd87'),'type':'textarea','validation':_0x4c51b7('0xea1')}]];}},{'key':_0x261d1d('0x51c'),'value':function(){var _0x2df8b1=_0x261d1d;return[['employee',{'label':'Employee','type':_0x2df8b1('0x15'),'remote-source':[_0x2df8b1('0x10f9'),'id',_0x2df8b1('0x561')]}]];}},{'key':'getHelpLink','value':function(){var _0x41f8f6=_0x261d1d;return _0x41f8f6('0x16d');}}]),_0x256df4;}(_0x5ddf77[_0x21cdea('0xf5f')]);_0x353fe2[_0x21cdea('0x64')]={'ProjectAdapter':_0x5834cf,'EmployeeProjectAdapter':_0x31b8b5};},{'../../../api/ReactModalAdapterBase':0x41}],0x27:[function(_0x30f190,_0x4fefd3,_0x3b6faa){var _0xf82c80=_0x548f48;'use strict';var _0x3d66bf,_0x516e97=_0x30f190('./lib'),_0x2abaa4=(_0x3d66bf=_0x30f190(_0xf82c80('0x147')))&&_0x3d66bf['__esModule']?_0x3d66bf:{'default':_0x3d66bf};window[_0xf82c80('0x1048')]=function(_0x33522a){var _0x1836d7=_0xf82c80,_0x553e07=[];_0x553e07[_0x1836d7('0xcc5')]=new _0x516e97[(_0x1836d7('0xb44'))](_0x1836d7('0xdfc')),_0x553e07[_0x1836d7('0xcc5')][_0x1836d7('0x274')](_0x1836d7('0x739')),_0x553e07['tabSkill'][_0x1836d7('0x1156')](new _0x2abaa4[(_0x1836d7('0xf5f'))](_0x553e07[_0x1836d7('0xcc5')])),_0x553e07[_0x1836d7('0xcc5')][_0x1836d7('0xf68')](_0x33522a[_0x1836d7('0xca5')][_0x1836d7('0xdfc')]),_0x553e07[_0x1836d7('0x74b')]=new _0x516e97['EducationAdapter'](_0x1836d7('0x7a4')),_0x553e07[_0x1836d7('0x74b')][_0x1836d7('0x274')](_0x1836d7('0x7a4')),_0x553e07[_0x1836d7('0x74b')][_0x1836d7('0x1156')](new _0x2abaa4[(_0x1836d7('0xf5f'))](_0x553e07[_0x1836d7('0x74b')])),_0x553e07[_0x1836d7('0x74b')][_0x1836d7('0xf68')](_0x33522a['permissions'][_0x1836d7('0x7a4')]),_0x553e07[_0x1836d7('0xdf4')]=new _0x516e97[(_0x1836d7('0xca4'))](_0x1836d7('0x259')),_0x553e07[_0x1836d7('0xdf4')]['setObjectTypeName']('Education'),_0x553e07[_0x1836d7('0xdf4')][_0x1836d7('0x1156')](new _0x2abaa4['default'](_0x553e07[_0x1836d7('0xdf4')])),_0x553e07[_0x1836d7('0xdf4')]['setAccess'](_0x33522a[_0x1836d7('0xca5')][_0x1836d7('0x259')]),_0x553e07[_0x1836d7('0x3da')]=new _0x516e97['LanguageAdapter'](_0x1836d7('0x483')),_0x553e07[_0x1836d7('0x3da')][_0x1836d7('0x274')](_0x1836d7('0x483')),_0x553e07[_0x1836d7('0x3da')][_0x1836d7('0x1156')](new _0x2abaa4[(_0x1836d7('0xf5f'))](_0x553e07[_0x1836d7('0x3da')])),_0x553e07[_0x1836d7('0x3da')][_0x1836d7('0xf68')](_0x33522a['permissions'][_0x1836d7('0x483')]),window[_0x1836d7('0xab0')]=_0x553e07['tabSkill'],window[_0x1836d7('0x9e8')]=_0x553e07;};},{'../../../api/IceDataPipe':0x3a,'./lib':0x28}],0x28:[function(_0xe39cd8,_0x1b3b41,_0x3937c3){var _0x194396=_0x548f48;'use strict';_0x37fc68(_0xe39cd8(_0x194396('0xee6')));var _0x56680c=_0x37fc68(_0xe39cd8(_0x194396('0x382')));function _0x37fc68(_0x99fb23){var _0x229bb8=_0x194396;return _0x99fb23&&_0x99fb23[_0x229bb8('0xce5')]?_0x99fb23:{'default':_0x99fb23};}function _0x5d253f(_0x3c36db){var _0xe65bdd=_0x194396;return(_0x5d253f=_0xe65bdd('0x106c')==typeof Symbol&&_0xe65bdd('0x43c')==typeof Symbol[_0xe65bdd('0x57b')]?function(_0x253278){return typeof _0x253278;}:function(_0x571ceb){var _0x138392=_0xe65bdd;return _0x571ceb&&_0x138392('0x106c')==typeof Symbol&&_0x571ceb[_0x138392('0xad1')]===Symbol&&_0x571ceb!==Symbol[_0x138392('0xe02')]?'symbol':typeof _0x571ceb;})(_0x3c36db);}function _0x48456f(_0x166f8a,_0x3173e6){var _0x2ccd45=_0x194396;if(!(_0x166f8a instanceof _0x3173e6))throw new TypeError(_0x2ccd45('0xf98'));}function _0x344243(_0x42e779,_0x4fecf8){var _0xfc8c92=_0x194396;for(var _0x3608f5=0x0;_0x3608f5<_0x4fecf8[_0xfc8c92('0x13')];_0x3608f5++){var _0x53974f=_0x4fecf8[_0x3608f5];_0x53974f[_0xfc8c92('0x3bf')]=_0x53974f[_0xfc8c92('0x3bf')]||!0x1,_0x53974f[_0xfc8c92('0x749')]=!0x0,_0xfc8c92('0x30')in _0x53974f&&(_0x53974f[_0xfc8c92('0x820')]=!0x0),Object['defineProperty'](_0x42e779,_0x53974f[_0xfc8c92('0x86f')],_0x53974f);}}function _0x46578a(_0x4e802f,_0x2b2c49,_0x53120c){var _0x129a6b=_0x194396;return _0x2b2c49&&_0x344243(_0x4e802f[_0x129a6b('0xe02')],_0x2b2c49),_0x53120c&&_0x344243(_0x4e802f,_0x53120c),_0x4e802f;}function _0x14bf76(_0x11596d){return function(){var _0x212fb8=_0x5376,_0x1c3733,_0x448215=_0x1724d6(_0x11596d);if(_0x33a1a1()){var _0x5aaf09=_0x1724d6(this)[_0x212fb8('0xad1')];_0x1c3733=Reflect['construct'](_0x448215,arguments,_0x5aaf09);}else _0x1c3733=_0x448215[_0x212fb8('0x2be')](this,arguments);return _0x2d8c87(this,_0x1c3733);};}function _0x2d8c87(_0xc27cf6,_0x5c87b8){var _0x4947d3=_0x194396;return!_0x5c87b8||_0x4947d3('0xb3f')!==_0x5d253f(_0x5c87b8)&&'function'!=typeof _0x5c87b8?function(_0xb0f524){if(void 0x0===_0xb0f524)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0xb0f524;}(_0xc27cf6):_0x5c87b8;}function _0x33a1a1(){var _0x238f34=_0x194396;if(_0x238f34('0x449')==typeof Reflect||!Reflect[_0x238f34('0x353')])return!0x1;if(Reflect['construct'][_0x238f34('0xb21')])return!0x1;if(_0x238f34('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x238f34('0xb6d')][_0x238f34('0xfd2')](Reflect[_0x238f34('0x353')](Date,[],function(){})),!0x0;}catch(_0xdb8a54){return!0x1;}}function _0x1724d6(_0x4525a6){var _0x35056b=_0x194396;return(_0x1724d6=Object[_0x35056b('0x3df')]?Object[_0x35056b('0x2d9')]:function(_0x51b2f7){var _0x20b3b1=_0x35056b;return _0x51b2f7[_0x20b3b1('0x112c')]||Object[_0x20b3b1('0x2d9')](_0x51b2f7);})(_0x4525a6);}function _0x11cef0(_0x51db3,_0x52ccce){var _0x2a1ca7=_0x194396;if(_0x2a1ca7('0x106c')!=typeof _0x52ccce&&null!==_0x52ccce)throw new TypeError(_0x2a1ca7('0x5a0'));_0x51db3[_0x2a1ca7('0xe02')]=Object[_0x2a1ca7('0xbd0')](_0x52ccce&&_0x52ccce[_0x2a1ca7('0xe02')],{'constructor':{'value':_0x51db3,'writable':!0x0,'configurable':!0x0}}),_0x52ccce&&_0x2e5ee3(_0x51db3,_0x52ccce);}function _0x2e5ee3(_0x230c48,_0x535838){var _0x3ed23d=_0x194396;return(_0x2e5ee3=Object[_0x3ed23d('0x3df')]||function(_0xb06e27,_0x4bd9e1){return _0xb06e27['__proto__']=_0x4bd9e1,_0xb06e27;})(_0x230c48,_0x535838);}var _0x1eb5d0=function(_0x1f1777){var _0x5937f1=_0x194396;_0x11cef0(_0x2d8d31,_0x1f1777);var _0x4ca924=_0x14bf76(_0x2d8d31);function _0x2d8d31(){var _0x599610=_0x5376;return _0x48456f(this,_0x2d8d31),_0x4ca924[_0x599610('0x2be')](this,arguments);}return _0x46578a(_0x2d8d31,[{'key':_0x5937f1('0x44a'),'value':function(){var _0x113584=_0x5937f1;return['id',_0x113584('0x3ea'),_0x113584('0x903')];}},{'key':_0x5937f1('0x95e'),'value':function(){var _0x5b195f=_0x5937f1;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x5b195f('0xdde')},{'sTitle':_0x5b195f('0x1024')}];}},{'key':_0x5937f1('0x10d7'),'value':function(){var _0x47e151=_0x5937f1;return[['id',{'label':'ID','type':_0x47e151('0x10f4')}],[_0x47e151('0x3ea'),{'label':_0x47e151('0xdde'),'type':_0x47e151('0x5b2')}],[_0x47e151('0x903'),{'label':'Description','type':_0x47e151('0x7ea'),'validation':''}]];}},{'key':_0x5937f1('0xb81'),'value':function(){var _0x406e68=_0x5937f1;return[{'title':_0x406e68('0xdde'),'dataIndex':_0x406e68('0x3ea'),'sorter':!0x0},{'title':_0x406e68('0x1024'),'dataIndex':_0x406e68('0x903')}];}}]),_0x2d8d31;}(_0x56680c[_0x194396('0xf5f')]),_0x564a0c=function(_0x46a377){var _0x4c48c6=_0x194396;_0x11cef0(_0x290dbf,_0x46a377);var _0x2b2660=_0x14bf76(_0x290dbf);function _0x290dbf(){var _0x491cdd=_0x5376;return _0x48456f(this,_0x290dbf),_0x2b2660[_0x491cdd('0x2be')](this,arguments);}return _0x46578a(_0x290dbf,[{'key':_0x4c48c6('0x44a'),'value':function(){var _0x522379=_0x4c48c6;return['id',_0x522379('0x3ea'),_0x522379('0x903')];}},{'key':'getHeaders','value':function(){var _0x15b390=_0x4c48c6;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x15b390('0xdde')},{'sTitle':'Description'}];}},{'key':'getFormFields','value':function(){var _0x3ab59e=_0x4c48c6;return[['id',{'label':'ID','type':_0x3ab59e('0x10f4')}],[_0x3ab59e('0x3ea'),{'label':_0x3ab59e('0xdde'),'type':'text'}],[_0x3ab59e('0x903'),{'label':_0x3ab59e('0x1024'),'type':_0x3ab59e('0x7ea'),'validation':''}]];}},{'key':_0x4c48c6('0xb81'),'value':function(){var _0x33c8f6=_0x4c48c6;return[{'title':'Name','dataIndex':_0x33c8f6('0x3ea'),'sorter':!0x0},{'title':_0x33c8f6('0x1024'),'dataIndex':_0x33c8f6('0x903')}];}}]),_0x290dbf;}(_0x56680c['default']),_0x34224e=function(_0x329ef0){var _0x2dfbc2=_0x194396;_0x11cef0(_0x510ff8,_0x329ef0);var _0x3627bd=_0x14bf76(_0x510ff8);function _0x510ff8(){var _0x196180=_0x5376;return _0x48456f(this,_0x510ff8),_0x3627bd[_0x196180('0x2be')](this,arguments);}return _0x46578a(_0x510ff8,[{'key':_0x2dfbc2('0x44a'),'value':function(){var _0x150872=_0x2dfbc2;return['id',_0x150872('0x3ea'),_0x150872('0x903')];}},{'key':_0x2dfbc2('0x95e'),'value':function(){var _0x5213f8=_0x2dfbc2;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x5213f8('0xdde')},{'sTitle':_0x5213f8('0x1024')}];}},{'key':_0x2dfbc2('0x10d7'),'value':function(){var _0x3d5c90=_0x2dfbc2;return[['id',{'label':'ID','type':_0x3d5c90('0x10f4')}],[_0x3d5c90('0x3ea'),{'label':_0x3d5c90('0xdde'),'type':_0x3d5c90('0x5b2')}],[_0x3d5c90('0x903'),{'label':_0x3d5c90('0x1024'),'type':_0x3d5c90('0x7ea'),'validation':''}]];}},{'key':_0x2dfbc2('0xb81'),'value':function(){var _0x4403ff=_0x2dfbc2;return[{'title':'Name','dataIndex':'name','sorter':!0x0},{'title':_0x4403ff('0x1024'),'dataIndex':_0x4403ff('0x903')}];}}]),_0x510ff8;}(_0x56680c['default']),_0x425d97=function(_0x267abd){var _0x59e510=_0x194396;_0x11cef0(_0x245118,_0x267abd);var _0x5b385f=_0x14bf76(_0x245118);function _0x245118(){var _0xe02afb=_0x5376;return _0x48456f(this,_0x245118),_0x5b385f[_0xe02afb('0x2be')](this,arguments);}return _0x46578a(_0x245118,[{'key':_0x59e510('0x44a'),'value':function(){var _0x968ecb=_0x59e510;return['id',_0x968ecb('0x3ea'),_0x968ecb('0x903')];}},{'key':_0x59e510('0x95e'),'value':function(){var _0x4ba3e5=_0x59e510;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x4ba3e5('0xdde')},{'sTitle':_0x4ba3e5('0x1024')}];}},{'key':_0x59e510('0x10d7'),'value':function(){var _0x5cb990=_0x59e510;return[['id',{'label':'ID','type':_0x5cb990('0x10f4')}],['name',{'label':'Name','type':_0x5cb990('0x5b2')}],[_0x5cb990('0x903'),{'label':'Description','type':_0x5cb990('0x7ea'),'validation':''}]];}},{'key':'getTableColumns','value':function(){var _0x18ee30=_0x59e510;return[{'title':_0x18ee30('0xdde'),'dataIndex':_0x18ee30('0x3ea'),'sorter':!0x0},{'title':'Description','dataIndex':_0x18ee30('0x903')}];}}]),_0x245118;}(_0x56680c[_0x194396('0xf5f')]);_0x1b3b41[_0x194396('0x64')]={'SkillAdapter':_0x1eb5d0,'EducationAdapter':_0x564a0c,'CertificationAdapter':_0x34224e,'LanguageAdapter':_0x425d97};},{'../../../api/AdapterBase':0x34,'../../../api/ReactModalAdapterBase':0x41}],0x29:[function(_0xad13cb,_0x53a819,_0x3a388f){var _0x32c06e=_0x548f48;'use strict';var _0x1e1510=_0xad13cb(_0x32c06e('0x19f'));window[_0x32c06e('0x3ba')]=_0x1e1510[_0x32c06e('0x3ba')],window['ReportGenAdapter']=_0x1e1510[_0x32c06e('0x1002')];},{'./lib':0x2a}],0x2a:[function(_0x464173,_0x4b5427,_0x308d99){var _0x15da0e=_0x548f48;'use strict';var _0x57be30,_0x6acb96=(_0x57be30=_0x464173(_0x15da0e('0xee6')))&&_0x57be30['__esModule']?_0x57be30:{'default':_0x57be30};function _0x66975(_0x1f2456){var _0x24c848=_0x15da0e;return(_0x66975='function'==typeof Symbol&&_0x24c848('0x43c')==typeof Symbol[_0x24c848('0x57b')]?function(_0x43fe4a){return typeof _0x43fe4a;}:function(_0x2617de){var _0x37b430=_0x24c848;return _0x2617de&&_0x37b430('0x106c')==typeof Symbol&&_0x2617de[_0x37b430('0xad1')]===Symbol&&_0x2617de!==Symbol['prototype']?_0x37b430('0x43c'):typeof _0x2617de;})(_0x1f2456);}function _0x1c9db1(_0x3d8598,_0x573137){var _0x4356dc=_0x15da0e;if(!(_0x3d8598 instanceof _0x573137))throw new TypeError(_0x4356dc('0xf98'));}function _0x29f256(_0x3d5352,_0x2a031c){var _0x120a4c=_0x15da0e;for(var _0x1fedc9=0x0;_0x1fedc9<_0x2a031c[_0x120a4c('0x13')];_0x1fedc9++){var _0xb5a68=_0x2a031c[_0x1fedc9];_0xb5a68[_0x120a4c('0x3bf')]=_0xb5a68[_0x120a4c('0x3bf')]||!0x1,_0xb5a68[_0x120a4c('0x749')]=!0x0,_0x120a4c('0x30')in _0xb5a68&&(_0xb5a68[_0x120a4c('0x820')]=!0x0),Object[_0x120a4c('0x9a5')](_0x3d5352,_0xb5a68[_0x120a4c('0x86f')],_0xb5a68);}}function _0x48405d(_0x1a20ac,_0x5761ef,_0x3d6e65){var _0x5d42e3=_0x15da0e;return _0x5761ef&&_0x29f256(_0x1a20ac[_0x5d42e3('0xe02')],_0x5761ef),_0x3d6e65&&_0x29f256(_0x1a20ac,_0x3d6e65),_0x1a20ac;}function _0x1c378b(_0x559492){return function(){var _0x34e5bf=_0x5376,_0x376bf5,_0x439316=_0x334b6f(_0x559492);if(_0x1581b6()){var _0x2bed14=_0x334b6f(this)['constructor'];_0x376bf5=Reflect[_0x34e5bf('0x353')](_0x439316,arguments,_0x2bed14);}else _0x376bf5=_0x439316[_0x34e5bf('0x2be')](this,arguments);return _0x3b4339(this,_0x376bf5);};}function _0x3b4339(_0x264d89,_0x290091){var _0x1f5378=_0x15da0e;return!_0x290091||_0x1f5378('0xb3f')!==_0x66975(_0x290091)&&_0x1f5378('0x106c')!=typeof _0x290091?function(_0x1153c3){var _0x11d3c8=_0x1f5378;if(void 0x0===_0x1153c3)throw new ReferenceError(_0x11d3c8('0xe0d'));return _0x1153c3;}(_0x264d89):_0x290091;}function _0x1581b6(){var _0x238aa1=_0x15da0e;if(_0x238aa1('0x449')==typeof Reflect||!Reflect[_0x238aa1('0x353')])return!0x1;if(Reflect['construct']['sham'])return!0x1;if(_0x238aa1('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x238aa1('0xe02')][_0x238aa1('0xb6d')][_0x238aa1('0xfd2')](Reflect[_0x238aa1('0x353')](Date,[],function(){})),!0x0;}catch(_0x1a1b84){return!0x1;}}function _0x334b6f(_0x312fc6){var _0x60a57=_0x15da0e;return(_0x334b6f=Object[_0x60a57('0x3df')]?Object['getPrototypeOf']:function(_0x2807ad){var _0x40778d=_0x60a57;return _0x2807ad[_0x40778d('0x112c')]||Object['getPrototypeOf'](_0x2807ad);})(_0x312fc6);}function _0x16e379(_0xc79469,_0x505c7f){var _0x18f186=_0x15da0e;if(_0x18f186('0x106c')!=typeof _0x505c7f&&null!==_0x505c7f)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0xc79469['prototype']=Object['create'](_0x505c7f&&_0x505c7f['prototype'],{'constructor':{'value':_0xc79469,'writable':!0x0,'configurable':!0x0}}),_0x505c7f&&_0x25b581(_0xc79469,_0x505c7f);}function _0x25b581(_0x3093ce,_0x6da157){return(_0x25b581=Object['setPrototypeOf']||function(_0x18ea12,_0x1e5d76){var _0x170451=_0x5376;return _0x18ea12[_0x170451('0x112c')]=_0x1e5d76,_0x18ea12;})(_0x3093ce,_0x6da157);}var _0x45055f=function(_0x3cbf66){var _0x5d716f=_0x15da0e;_0x16e379(_0x55eb67,_0x3cbf66);var _0x2ff284=_0x1c378b(_0x55eb67);function _0x55eb67(_0x34bee7,_0x2f7d2e,_0x9d4db5,_0x360b33){var _0x25b2f3=_0x5376,_0x3de9bd;return _0x1c9db1(this,_0x55eb67),(_0x3de9bd=_0x2ff284['call'](this,_0x34bee7,_0x2f7d2e,_0x9d4db5,_0x360b33))[_0x25b2f3('0xd17')](),_0x3de9bd;}return _0x48405d(_0x55eb67,[{'key':_0x5d716f('0xd17'),'value':function(){var _0x159bf8=_0x5d716f;this[_0x159bf8('0x1142')]=[['id',{'label':'ID','type':_0x159bf8('0x10f4')}],[_0x159bf8('0x3ea'),{'label':_0x159bf8('0xdde'),'type':_0x159bf8('0xf3c'),'validation':''}],[_0x159bf8('0x613'),{'label':_0x159bf8('0x938'),'type':_0x159bf8('0x901'),'validation':_0x159bf8('0xea1')}]],this[_0x159bf8('0x141')]=!0x1;}},{'key':_0x5d716f('0xd27'),'value':function(){var _0x46b99c=_0x5d716f;this['_formFileds']=[['id',{'label':'ID','type':_0x46b99c('0x10f4')}],['name',{'label':'Name','type':_0x46b99c('0xf3c'),'validation':''}],[_0x46b99c('0x613'),{'label':_0x46b99c('0x938'),'type':_0x46b99c('0x901'),'validation':_0x46b99c('0xea1')}]];}},{'key':_0x5d716f('0xf17'),'value':function(_0x225f2e){var _0x90fa4a=_0x5d716f;this[_0x90fa4a('0x141')]=_0x225f2e;}},{'key':_0x5d716f('0x44a'),'value':function(){var _0x3bc73a=_0x5d716f;return['id',_0x3bc73a('0x73c'),_0x3bc73a('0x3ea'),_0x3bc73a('0x1093'),_0x3bc73a('0x613')];}},{'key':'getHeaders','value':function(){var _0x2590bc=_0x5d716f;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'','bSortable':!0x1,'sWidth':'22px'},{'sTitle':_0x2590bc('0xdde'),'sWidth':_0x2590bc('0xf4b')},{'sTitle':_0x2590bc('0xd87')},{'sTitle':'Parameters','bVisible':!0x1}];}},{'key':_0x5d716f('0x10d7'),'value':function(){var _0x232ffa=_0x5d716f;return this[_0x232ffa('0x1142')];}},{'key':_0x5d716f('0xfb6'),'value':function(_0x5432e6){var _0x54a99a=_0x5d716f,_0x5cacb6=this;this[_0x54a99a('0xd27')]();var _0x66c5fa=this[_0x54a99a('0x1142')][_0x54a99a('0x13')],_0x410051=[];this[_0x54a99a('0x141')]=!0x1;for(var _0xb4754b=0x0;_0xb4754b<_0x66c5fa;_0xb4754b++)if('fieldset'===this['_formFileds'][_0xb4754b][0x1][_0x54a99a('0x921')]){var _0xfa923=JSON['parse'](_0x5432e6[this[_0x54a99a('0x1142')][_0xb4754b][0x0]]);_0x410051['push'](this[_0x54a99a('0x1142')][_0xb4754b][0x0]),_0xfa923[_0x54a99a('0xb77')](function(_0x3abd9a){var _0x74d2a2=_0x54a99a;_0x5cacb6[_0x74d2a2('0x1142')][_0x74d2a2('0x91b')](_0x3abd9a),void 0x0!==_0x3abd9a[0x1][_0x74d2a2('0xb91')]&&null!=_0x3abd9a[0x1]['remote-source']&&(_0x5cacb6[_0x74d2a2('0x141')]=!0x0);});}var _0x3338b0=[];_0x5cacb6[_0x54a99a('0x1142')]['forEach'](function(_0x710514){var _0x1090c7=_0x54a99a;jQuery[_0x1090c7('0x540')](_0x710514[0x0],_0x410051)<0x0&&_0x3338b0[_0x1090c7('0x91b')](_0x710514);}),_0x5cacb6[_0x54a99a('0x1142')]=_0x3338b0;}},{'key':_0x5d716f('0xc03'),'value':function(_0x283653){var _0x4ec92f=_0x5d716f,_0x51dfed=this;if(this[_0x4ec92f('0xfb6')](_0x283653),this[_0x4ec92f('0x141')])this['initFieldMasterData'](function(){var _0x496367=_0x4ec92f;_0x51dfed[_0x496367('0x88f')](_0x283653);});else this['initFieldMasterData'](),_0x51dfed['renderFormNew'](_0x283653);this[_0x4ec92f('0x93')]=_0x283653;}},{'key':'renderFormNew','value':function(_0x1d3549){var _0x23f879=_0x5d716f,_0x15cedf=[];null!=_0x1d3549&&void 0x0!==_0x1d3549||(this[_0x23f879('0x9b6')]=null),this['preRenderForm'](_0x1d3549);for(var _0x4ca3fe,_0x3bb3d0=this[_0x23f879('0x563')][_0x23f879('0x5d9')],_0x44b564='',_0x330831=this[_0x23f879('0x10d7')](),_0x56072b=0x0;_0x56072b<_0x330831['length'];_0x56072b++){var _0x539c2c=this[_0x23f879('0x314')](_0x330831[_0x56072b][0x0]);if(''===_0x539c2c||void 0x0===_0x539c2c)_0x44b564+=this[_0x23f879('0xb7c')](_0x330831[_0x56072b]);else{var _0x2f4729=_0x1d3549[_0x539c2c];''!==_0x2f4729&&null!=_0x2f4729&&void 0x0!==_0x2f4729&&''!==_0x2f4729[_0x23f879('0xb8e')]()?_0x44b564+=this[_0x23f879('0xb7c')](JSON[_0x23f879('0x104a')](_0x2f4729)):_0x44b564+=this['renderFormField'](_0x330831[_0x56072b]);}}_0x3bb3d0=(_0x3bb3d0=_0x3bb3d0['replace'](/_id_/g,''['concat'](this['getTableName'](),'_submit')))[_0x23f879('0xd06')](/_fields_/g,_0x44b564);var _0x1e566f=this[_0x23f879('0xed8')](0xe);this[_0x23f879('0xb09')]?(_0x4ca3fe=$(_0x23f879('0x98b')))[_0x23f879('0xb0c')]('id',_0x1e566f):_0x4ca3fe=$('#'[_0x23f879('0xda9')](this[_0x23f879('0x3ed')](),_0x23f879('0xe32'))),_0x4ca3fe[_0x23f879('0x276')](_0x3bb3d0),_0x4ca3fe[_0x23f879('0xe05')](_0x23f879('0xbad'))[_0x23f879('0x48e')]({'viewMode':0x2}),_0x4ca3fe[_0x23f879('0xe05')]('.timefield')['datetimepicker']({'language':'en','pickDate':!0x1}),_0x4ca3fe[_0x23f879('0xe05')]('.datetimefield')['datetimepicker']({'language':'en'}),_0x4ca3fe['find'](_0x23f879('0x552'))['colorpicker'](),_0x4ca3fe['find'](_0x23f879('0xdb4'))[_0x23f879('0x2fa')](function(){var _0x8a24a=_0x23f879;$(this)['select2']()[_0x8a24a('0x15')](_0x8a24a('0xd3d'),$(this)[_0x8a24a('0xe05')](_0x8a24a('0x26b'))['val']());}),_0x4ca3fe[_0x23f879('0xe05')](_0x23f879('0x93e'))[_0x23f879('0x2fa')](function(){var _0x536eb7=_0x23f879;$(this)[_0x536eb7('0x15')]()['on'](_0x536eb7('0x566'),function(_0x3dc99d){var _0x299cfd=_0x536eb7,_0x5f0af7=$(this)[_0x299cfd('0xd5a')](_0x299cfd('0xe20')),_0x588443=_0x5f0af7['find']('.select2-choices')[_0x299cfd('0x27b')]();_0x5f0af7['height'](parseInt(_0x588443,0xa));});}),_0x4ca3fe[_0x23f879('0xe05')](_0x23f879('0x65'))[_0x23f879('0x2fa')](function(){var _0x2b1c26=_0x23f879;_0x15cedf[_0x2b1c26('0x91b')]($(this)[_0x2b1c26('0xb0c')]('id'));});for(var _0x143bd1=0x0;_0x143bd1<_0x330831[_0x23f879('0x13')];_0x143bd1++)'datagroup'===_0x330831[_0x143bd1][0x1][_0x23f879('0x921')]&&_0x4ca3fe[_0x23f879('0xe05')]('#'[_0x23f879('0xda9')](_0x330831[_0x143bd1][0x0]))['data'](_0x23f879('0xbaf'),_0x330831[_0x143bd1]);if(!0x1===this[_0x23f879('0x5ba')]?_0x4ca3fe[_0x23f879('0xe05')](_0x23f879('0xdee'))['remove']():(_0x4ca3fe['find'](_0x23f879('0xdee'))[_0x23f879('0x78f')](),_0x4ca3fe['find'](_0x23f879('0xdee'))['data'](_0x23f879('0xab0'),this),_0x4ca3fe[_0x23f879('0xe05')](_0x23f879('0xdee'))['on'](_0x23f879('0x29f'),function(){var _0x4256b3=_0x23f879;return null!=$(this)[_0x4256b3('0x1016')]('modJs')[_0x4256b3('0x940')]&&void 0x0!==$(this)[_0x4256b3('0x1016')](_0x4256b3('0xab0'))[_0x4256b3('0x940')]?$(this)[_0x4256b3('0x1016')](_0x4256b3('0xab0'))[_0x4256b3('0xb6')]($(this)[_0x4256b3('0x1016')](_0x4256b3('0xab0'))[_0x4256b3('0x3d4')](),$(this)[_0x4256b3('0x1016')]('modJs')[_0x4256b3('0x940')]):$(this)[_0x4256b3('0x1016')](_0x4256b3('0xab0'))[_0x4256b3('0xb6')](),!0x1;})),!0x1===this['showCancel']?_0x4ca3fe[_0x23f879('0xe05')]('.cancelBtn')[_0x23f879('0xaa6')]():(_0x4ca3fe[_0x23f879('0xe05')]('.cancelBtn')[_0x23f879('0x78f')](),_0x4ca3fe[_0x23f879('0xe05')](_0x23f879('0xb6a'))[_0x23f879('0x1016')]('modJs',this),_0x4ca3fe[_0x23f879('0xe05')](_0x23f879('0xb6a'))['on']('click',function(){var _0x3a8170=_0x23f879;return $(this)[_0x3a8170('0x1016')](_0x3a8170('0xab0'))['cancel'](),!0x1;})),this[_0x23f879('0xb09')]){this[_0x23f879('0xaa4')]('Edit','',null,null,!0x0),$('#plainMessageModel\x20.modal-body')[_0x23f879('0x276')](''),$(_0x23f879('0x115c'))[_0x23f879('0x895')](_0x4ca3fe);for(var _0x23833f=0x0;_0x23833f<_0x15cedf['length'];_0x23833f++)$('#'['concat'](_0x15cedf[_0x23833f]))[_0x23f879('0x1016')](_0x23f879('0x43f'),new SignaturePad(document[_0x23f879('0x1012')](_0x15cedf[_0x23833f])));void 0x0!==_0x1d3549&&null!=_0x1d3549&&this['fillForm'](_0x1d3549,'#'[_0x23f879('0xda9')](_0x1e566f));}else{$('#'[_0x23f879('0xda9')](this[_0x23f879('0x3ed')](),_0x23f879('0xe32')))['show'](),$('#'[_0x23f879('0xda9')](this[_0x23f879('0x3ed')]()))['hide']();for(var _0x594792=0x0;_0x594792<_0x15cedf[_0x23f879('0x13')];_0x594792++)$('#'[_0x23f879('0xda9')](_0x15cedf[_0x594792]))[_0x23f879('0x1016')]('signaturePad',new SignaturePad(document['getElementById'](_0x15cedf[_0x594792])));void 0x0!==_0x1d3549&&null!=_0x1d3549&&this[_0x23f879('0x848')](_0x1d3549);}this[_0x23f879('0xc8')](_0x1d3549,_0x4ca3fe);}},{'key':_0x5d716f('0xe26'),'value':function(_0x2984f9,_0x5651ae){var _0x2cc416=_0x5d716f,_0x50a30c=_0x2cc416('0x309');return _0x50a30c=(_0x50a30c=_0x50a30c[_0x2cc416('0xd06')](/_id_/g,_0x2984f9))[_0x2cc416('0xd06')](/_BASE_/g,this[_0x2cc416('0x598')]);}},{'key':'addSuccessCallBack','value':function(_0x59682b,_0x3c3098){var _0x262f3f=_0x5d716f,_0xdf5e8d,_0x97cdfe=_0x3c3098[0x0];if(_0xdf5e8d=(_0xdf5e8d=0x0===_0x97cdfe[_0x262f3f('0xf00')](_0x262f3f('0xb1d'))?'Download\x20Report\x20\x20'):_0x262f3f('0x2c6')['concat'](modJs[_0x262f3f('0x8af')](_0x262f3f('0x113'),{'file':_0x97cdfe}),_0x262f3f('0x4e1')))['replace'](/_BASE_/g,this[_0x262f3f('0x598')]),_0x262f3f('0xb19')===this[_0x262f3f('0x93')]['output']||_0x262f3f('0x4f2')===this[_0x262f3f('0x93')]['output'])this['showMessage'](_0x262f3f('0xec1'),_0xdf5e8d);else{if(0x0===_0x3c3098[0x1][_0x262f3f('0x13')])return void this[_0x262f3f('0xaa4')](_0x262f3f('0xcd'),'There\x20were\x20no\x20data\x20for\x20selected\x20filters');var _0x57cbac=''[_0x262f3f('0xda9')](_0xdf5e8d,_0x262f3f('0x6ed'));$('#tempReportTable')[_0x262f3f('0xaa6')](),$('#'[_0x262f3f('0xda9')](this[_0x262f3f('0x2ac')]))[_0x262f3f('0x276')](_0x57cbac),$('#'[_0x262f3f('0xda9')](this['table']))[_0x262f3f('0x312')](),$('#'[_0x262f3f('0xda9')](this[_0x262f3f('0x2ac')],_0x262f3f('0xe32')))[_0x262f3f('0xcee')]();var _0x54b88b=[];for(var _0x15494e in _0x3c3098[0x1])_0x54b88b[_0x262f3f('0x91b')]({'sTitle':_0x3c3098[0x1][_0x15494e]});var _0x3ea1eb={'oLanguage':{'sLengthMenu':_0x262f3f('0x3d7')},'aaData':_0x3c3098[0x2],'aoColumns':_0x54b88b,'bSort':!0x1,'iDisplayLength':0xf,'iDisplayStart':0x0};$(_0x262f3f('0xd08'))[_0x262f3f('0xa2')](_0x3ea1eb),$('.dataTables_paginate\x20ul')['addClass'](_0x262f3f('0x765')),$('.dataTables_length')[_0x262f3f('0xcee')](),$(_0x262f3f('0x929'))[_0x262f3f('0x6a')](_0x262f3f('0xb3b')),$(_0x262f3f('0x929'))[_0x262f3f('0xb0c')](_0x262f3f('0xa49'),'Search'),$(_0x262f3f('0x232'))[_0x262f3f('0xc8d')]()[_0x262f3f('0x562')](function(){var _0x361b2a=_0x262f3f;return 0x3===this[_0x361b2a('0x5a')];})[_0x262f3f('0xaa6')](),$(_0x262f3f('0x468'))[_0x262f3f('0xcb0')]();}}},{'key':'fillForm','value':function(_0xcd264f){var _0x26b972=_0x5d716f;for(var _0x29e55a=this[_0x26b972('0x10d7')](),_0x38094c=0x0;_0x38094c<_0x29e55a[_0x26b972('0x13')];_0x38094c++)_0x26b972('0xf3c')===_0x29e55a[_0x38094c][0x1]['type']?$('#'[_0x26b972('0xda9')](this[_0x26b972('0x3ed')](),_0x26b972('0x531'))[_0x26b972('0xda9')](_0x29e55a[_0x38094c][0x0]))[_0x26b972('0x276')](_0xcd264f[_0x29e55a[_0x38094c][0x0]]):$('#'['concat'](this[_0x26b972('0x3ed')](),_0x26b972('0x531'))[_0x26b972('0xda9')](_0x29e55a[_0x38094c][0x0]))[_0x26b972('0xd3d')](_0xcd264f[_0x29e55a[_0x38094c][0x0]]);}}]),_0x55eb67;}(_0x6acb96[_0x15da0e('0xf5f')]),_0x573aa4=function(_0x401842){var _0xf8bc1a=_0x15da0e;_0x16e379(_0x4422c1,_0x401842);var _0xc32b33=_0x1c378b(_0x4422c1);function _0x4422c1(){return _0x1c9db1(this,_0x4422c1),_0xc32b33['apply'](this,arguments);}return _0x48405d(_0x4422c1,[{'key':_0xf8bc1a('0x44a'),'value':function(){var _0x32f8ba=_0xf8bc1a;return['id',_0x32f8ba('0x3ea')];}},{'key':_0xf8bc1a('0x95e'),'value':function(){var _0x12a00b=_0xf8bc1a;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x12a00b('0xdde')}];}},{'key':_0xf8bc1a('0x10d7'),'value':function(){return[];}},{'key':_0xf8bc1a('0xe26'),'value':function(_0x45c8a9,_0x417f37){var _0x6a284e=_0xf8bc1a,_0x5d05d0=_0x6a284e('0x9e0');return _0x5d05d0=(_0x5d05d0=(_0x5d05d0=_0x5d05d0[_0x6a284e('0xd06')](/_id_/g,_0x45c8a9))['replace'](/_name_/g,_0x417f37[0x1]))[_0x6a284e('0xd06')](/_BASE_/g,this['baseUrl']);}}]),_0x4422c1;}(_0x6acb96['default']);_0x4b5427[_0x15da0e('0x64')]={'ReportAdapter':_0x45055f,'ReportGenAdapter':_0x573aa4};},{'../../../api/AdapterBase':0x34}],0x2b:[function(_0x226a3d,_0x59c806,_0x3ca231){var _0x3aa3fc=_0x548f48;'use strict';var _0x17d9a8=_0x226a3d(_0x3aa3fc('0x19f'));window[_0x3aa3fc('0x24f')]=_0x17d9a8['SalaryComponentTypeAdapter'],window[_0x3aa3fc('0xe04')]=_0x17d9a8[_0x3aa3fc('0xe04')],window[_0x3aa3fc('0x341')]=_0x17d9a8[_0x3aa3fc('0x341')];},{'./lib':0x2c}],0x2c:[function(_0x5a4f2f,_0x2a3dbe,_0x3c39af){var _0x21a29=_0x548f48;'use strict';var _0x362fab,_0x4b94fd=(_0x362fab=_0x5a4f2f(_0x21a29('0xee6')))&&_0x362fab[_0x21a29('0xce5')]?_0x362fab:{'default':_0x362fab};function _0x25ad2c(_0x77a85d){var _0xe41ff2=_0x21a29;return(_0x25ad2c=_0xe41ff2('0x106c')==typeof Symbol&&_0xe41ff2('0x43c')==typeof Symbol[_0xe41ff2('0x57b')]?function(_0x45307c){return typeof _0x45307c;}:function(_0x57411c){var _0xfb583b=_0xe41ff2;return _0x57411c&&_0xfb583b('0x106c')==typeof Symbol&&_0x57411c['constructor']===Symbol&&_0x57411c!==Symbol[_0xfb583b('0xe02')]?_0xfb583b('0x43c'):typeof _0x57411c;})(_0x77a85d);}function _0x5ea4bf(_0x1be186,_0x178ae0){var _0x545c4f=_0x21a29;if(!(_0x1be186 instanceof _0x178ae0))throw new TypeError(_0x545c4f('0xf98'));}function _0x44b29c(_0x4cf7b8,_0x3fee25){var _0x511e98=_0x21a29;for(var _0xa2ae33=0x0;_0xa2ae33<_0x3fee25[_0x511e98('0x13')];_0xa2ae33++){var _0x5b7c70=_0x3fee25[_0xa2ae33];_0x5b7c70[_0x511e98('0x3bf')]=_0x5b7c70[_0x511e98('0x3bf')]||!0x1,_0x5b7c70[_0x511e98('0x749')]=!0x0,_0x511e98('0x30')in _0x5b7c70&&(_0x5b7c70[_0x511e98('0x820')]=!0x0),Object[_0x511e98('0x9a5')](_0x4cf7b8,_0x5b7c70[_0x511e98('0x86f')],_0x5b7c70);}}function _0x570bfe(_0x4de428,_0x5ac743,_0x46eaf3){return _0x5ac743&&_0x44b29c(_0x4de428['prototype'],_0x5ac743),_0x46eaf3&&_0x44b29c(_0x4de428,_0x46eaf3),_0x4de428;}function _0x42b0f5(_0x2ce187){return function(){var _0x5d6792=_0x5376,_0x5bb780,_0x150b7b=_0x338f58(_0x2ce187);if(_0x4482ac()){var _0xe842e7=_0x338f58(this)[_0x5d6792('0xad1')];_0x5bb780=Reflect[_0x5d6792('0x353')](_0x150b7b,arguments,_0xe842e7);}else _0x5bb780=_0x150b7b[_0x5d6792('0x2be')](this,arguments);return _0x34590f(this,_0x5bb780);};}function _0x34590f(_0x314416,_0x1268fd){var _0x1433e1=_0x21a29;return!_0x1268fd||_0x1433e1('0xb3f')!==_0x25ad2c(_0x1268fd)&&_0x1433e1('0x106c')!=typeof _0x1268fd?function(_0x4f54dc){if(void 0x0===_0x4f54dc)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x4f54dc;}(_0x314416):_0x1268fd;}function _0x4482ac(){var _0x3e16da=_0x21a29;if(_0x3e16da('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x3e16da('0xb21')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date[_0x3e16da('0xe02')][_0x3e16da('0xb6d')][_0x3e16da('0xfd2')](Reflect[_0x3e16da('0x353')](Date,[],function(){})),!0x0;}catch(_0x342edb){return!0x1;}}function _0x338f58(_0x3269d0){var _0xf29090=_0x21a29;return(_0x338f58=Object[_0xf29090('0x3df')]?Object[_0xf29090('0x2d9')]:function(_0x3612ad){var _0x5034cf=_0xf29090;return _0x3612ad[_0x5034cf('0x112c')]||Object['getPrototypeOf'](_0x3612ad);})(_0x3269d0);}function _0x133873(_0x46aee6,_0x1cccba){var _0x2b7961=_0x21a29;if('function'!=typeof _0x1cccba&&null!==_0x1cccba)throw new TypeError(_0x2b7961('0x5a0'));_0x46aee6[_0x2b7961('0xe02')]=Object[_0x2b7961('0xbd0')](_0x1cccba&&_0x1cccba[_0x2b7961('0xe02')],{'constructor':{'value':_0x46aee6,'writable':!0x0,'configurable':!0x0}}),_0x1cccba&&_0x15b914(_0x46aee6,_0x1cccba);}function _0x15b914(_0x38254d,_0x2fbc78){var _0x50a074=_0x21a29;return(_0x15b914=Object[_0x50a074('0x3df')]||function(_0x11ca85,_0x54410a){var _0xd6547c=_0x50a074;return _0x11ca85[_0xd6547c('0x112c')]=_0x54410a,_0x11ca85;})(_0x38254d,_0x2fbc78);}var _0x444a1e=function(_0x1fef23){var _0x3e83a0=_0x21a29;_0x133873(_0x30ec29,_0x1fef23);var _0x5e8c31=_0x42b0f5(_0x30ec29);function _0x30ec29(){var _0x867edd=_0x5376;return _0x5ea4bf(this,_0x30ec29),_0x5e8c31[_0x867edd('0x2be')](this,arguments);}return _0x570bfe(_0x30ec29,[{'key':_0x3e83a0('0x44a'),'value':function(){return['id','code','name'];}},{'key':_0x3e83a0('0x95e'),'value':function(){var _0x1401a3=_0x3e83a0;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x1401a3('0x5cf')},{'sTitle':_0x1401a3('0xdde')}];}},{'key':_0x3e83a0('0x10d7'),'value':function(){var _0x182043=_0x3e83a0;return[['id',{'label':'ID','type':'hidden'}],[_0x182043('0x9e3'),{'label':_0x182043('0x5cf'),'type':'text','validation':''}],[_0x182043('0x3ea'),{'label':'Name','type':_0x182043('0x5b2'),'validation':''}]];}}]),_0x30ec29;}(_0x4b94fd[_0x21a29('0xf5f')]),_0x2c1e85=function(_0x524555){var _0x31c5c8=_0x21a29;_0x133873(_0x11a85c,_0x524555);var _0x1ccdb3=_0x42b0f5(_0x11a85c);function _0x11a85c(){var _0x3cd9f7=_0x5376;return _0x5ea4bf(this,_0x11a85c),_0x1ccdb3[_0x3cd9f7('0x2be')](this,arguments);}return _0x570bfe(_0x11a85c,[{'key':_0x31c5c8('0x44a'),'value':function(){var _0x1f4cd1=_0x31c5c8;return['id','name',_0x1f4cd1('0xfdc'),'details'];}},{'key':_0x31c5c8('0x95e'),'value':function(){var _0x12508b=_0x31c5c8;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x12508b('0xdde')},{'sTitle':_0x12508b('0x6b5')},{'sTitle':_0x12508b('0xd87')}];}},{'key':'getFormFields','value':function(){var _0x47ff0f=_0x31c5c8;return[['id',{'label':'ID','type':_0x47ff0f('0x10f4')}],[_0x47ff0f('0x3ea'),{'label':'Name','type':'text','validation':''}],['componentType',{'label':'Salary\x20Component\x20Type','type':_0x47ff0f('0x15'),'remote-source':[_0x47ff0f('0xde4'),'id',_0x47ff0f('0x3ea')]}],[_0x47ff0f('0x1093'),{'label':_0x47ff0f('0xd87'),'type':_0x47ff0f('0x7ea'),'validation':'none'}]];}}]),_0x11a85c;}(_0x4b94fd[_0x21a29('0xf5f')]),_0xf38f94=function(_0x32f319){var _0x5a61d7=_0x21a29;_0x133873(_0x43f9ac,_0x32f319);var _0x5cbcfe=_0x42b0f5(_0x43f9ac);function _0x43f9ac(){var _0x5c27f6=_0x5376;return _0x5ea4bf(this,_0x43f9ac),_0x5cbcfe[_0x5c27f6('0x2be')](this,arguments);}return _0x570bfe(_0x43f9ac,[{'key':_0x5a61d7('0x44a'),'value':function(){var _0x27a637=_0x5a61d7;return['id',_0x27a637('0x10d1'),_0x27a637('0x701'),_0x27a637('0x5d7'),_0x27a637('0x1093')];}},{'key':'getHeaders','value':function(){var _0x2ad5c1=_0x5a61d7;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x2ad5c1('0x10f9')},{'sTitle':_0x2ad5c1('0x9fe')},{'sTitle':_0x2ad5c1('0x1ec')},{'sTitle':_0x2ad5c1('0xd87')}];}},{'key':_0x5a61d7('0x10d7'),'value':function(){var _0x549231=_0x5a61d7;return[['id',{'label':'ID','type':_0x549231('0x10f4')}],[_0x549231('0x10d1'),{'label':_0x549231('0x10f9'),'type':'select2','remote-source':[_0x549231('0x10f9'),'id',_0x549231('0x561')]}],[_0x549231('0x701'),{'label':_0x549231('0x9fe'),'type':_0x549231('0x15'),'remote-source':[_0x549231('0x556'),'id','name']}],[_0x549231('0x5d7'),{'label':_0x549231('0x1ec'),'type':'text','validation':_0x549231('0x892')}],[_0x549231('0x1093'),{'label':_0x549231('0xd87'),'type':_0x549231('0x7ea'),'validation':'none'}]];}},{'key':'getFilters','value':function(){var _0x1ff655=_0x5a61d7;return[[_0x1ff655('0x10d1'),{'label':_0x1ff655('0x10f9'),'type':_0x1ff655('0x15'),'remote-source':[_0x1ff655('0x10f9'),'id','first_name+last_name']}]];}}]),_0x43f9ac;}(_0x4b94fd[_0x21a29('0xf5f')]);_0x2a3dbe['exports']={'SalaryComponentTypeAdapter':_0x444a1e,'SalaryComponentAdapter':_0x2c1e85,'EmployeeSalaryAdapter':_0xf38f94};},{'../../../api/AdapterBase':0x34}],0x2d:[function(_0x4d85d4,_0x1a45db,_0x192ccd){var _0x2fc8b9=_0x548f48;'use strict';var _0x5f3b64=_0x4d85d4(_0x2fc8b9('0x19f'));window[_0x2fc8b9('0x9')]=_0x5f3b64['SettingAdapter'];},{'./lib':0x2e}],0x2e:[function(_0x137cf8,_0x100556,_0x3cd811){var _0x4f4231=_0x548f48;'use strict';var _0x4e3816;function _0x7aa955(_0x11163f){var _0x7f786d=_0x5376;return(_0x7aa955=_0x7f786d('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x7f786d('0x57b')]?function(_0x473ea0){return typeof _0x473ea0;}:function(_0x49cb8f){var _0xc5aa3d=_0x7f786d;return _0x49cb8f&&'function'==typeof Symbol&&_0x49cb8f['constructor']===Symbol&&_0x49cb8f!==Symbol['prototype']?_0xc5aa3d('0x43c'):typeof _0x49cb8f;})(_0x11163f);}function _0x5d660b(_0x455042,_0x417b35){var _0x56523a=_0x5376;if(!(_0x455042 instanceof _0x417b35))throw new TypeError(_0x56523a('0xf98'));}function _0x593679(_0x5498cb,_0x2b0770){var _0x9f842d=_0x5376;for(var _0x2ac772=0x0;_0x2ac772<_0x2b0770[_0x9f842d('0x13')];_0x2ac772++){var _0x4a611a=_0x2b0770[_0x2ac772];_0x4a611a[_0x9f842d('0x3bf')]=_0x4a611a['enumerable']||!0x1,_0x4a611a[_0x9f842d('0x749')]=!0x0,_0x9f842d('0x30')in _0x4a611a&&(_0x4a611a[_0x9f842d('0x820')]=!0x0),Object[_0x9f842d('0x9a5')](_0x5498cb,_0x4a611a[_0x9f842d('0x86f')],_0x4a611a);}}function _0x2675e6(_0x384c88,_0x110b44,_0x106ce1){var _0x21aa2b=_0x5376;return(_0x2675e6=_0x21aa2b('0x449')!=typeof Reflect&&Reflect['get']?Reflect[_0x21aa2b('0xd12')]:function(_0x1728d8,_0xb5fea0,_0xe8158c){var _0xb0082c=_0x21aa2b,_0x53dfda=function(_0x804b77,_0x51a855){var _0x1e3500=_0x5376;for(;!Object[_0x1e3500('0xe02')][_0x1e3500('0xe9c')]['call'](_0x804b77,_0x51a855)&&null!==(_0x804b77=_0x1e459b(_0x804b77)););return _0x804b77;}(_0x1728d8,_0xb5fea0);if(_0x53dfda){var _0x597233=Object[_0xb0082c('0x43d')](_0x53dfda,_0xb5fea0);return _0x597233[_0xb0082c('0xd12')]?_0x597233['get'][_0xb0082c('0xfd2')](_0xe8158c):_0x597233[_0xb0082c('0x30')];}})(_0x384c88,_0x110b44,_0x106ce1||_0x384c88);}function _0x5ec5cd(_0x2ffb5d,_0x295511){var _0x1e7d16=_0x5376;return!_0x295511||_0x1e7d16('0xb3f')!==_0x7aa955(_0x295511)&&_0x1e7d16('0x106c')!=typeof _0x295511?function(_0x39f5d9){if(void 0x0===_0x39f5d9)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x39f5d9;}(_0x2ffb5d):_0x295511;}function _0x29a316(){var _0x1b9009=_0x5376;if('undefined'==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x1b9009('0x353')][_0x1b9009('0xb21')])return!0x1;if(_0x1b9009('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x1b9009('0xe02')][_0x1b9009('0xb6d')]['call'](Reflect[_0x1b9009('0x353')](Date,[],function(){})),!0x0;}catch(_0x2dce80){return!0x1;}}function _0x1e459b(_0x5a021e){var _0x32e091=_0x5376;return(_0x1e459b=Object[_0x32e091('0x3df')]?Object[_0x32e091('0x2d9')]:function(_0x170cd1){var _0xaa884c=_0x32e091;return _0x170cd1['__proto__']||Object[_0xaa884c('0x2d9')](_0x170cd1);})(_0x5a021e);}function _0x2ce191(_0x531b0e,_0x35592a){var _0x8fb4ff=_0x5376;return(_0x2ce191=Object[_0x8fb4ff('0x3df')]||function(_0x20070b,_0x58c702){var _0x5c6bad=_0x8fb4ff;return _0x20070b[_0x5c6bad('0x112c')]=_0x58c702,_0x20070b;})(_0x531b0e,_0x35592a);}var _0x3c167a=function(_0x98e76e){var _0xfd3418=_0x5376;!function(_0x122694,_0x4deeaf){var _0x4652f3=_0x5376;if(_0x4652f3('0x106c')!=typeof _0x4deeaf&&null!==_0x4deeaf)throw new TypeError(_0x4652f3('0x5a0'));_0x122694[_0x4652f3('0xe02')]=Object[_0x4652f3('0xbd0')](_0x4deeaf&&_0x4deeaf[_0x4652f3('0xe02')],{'constructor':{'value':_0x122694,'writable':!0x0,'configurable':!0x0}}),_0x4deeaf&&_0x2ce191(_0x122694,_0x4deeaf);}(_0x5beb2f,_0x98e76e);var _0x416bd7,_0x54886e,_0x57c49c,_0x542d7a,_0x59de25=(_0x416bd7=_0x5beb2f,function(){var _0x535511=_0x5376,_0x551088,_0x471b26=_0x1e459b(_0x416bd7);if(_0x29a316()){var _0x4ce219=_0x1e459b(this)['constructor'];_0x551088=Reflect[_0x535511('0x353')](_0x471b26,arguments,_0x4ce219);}else _0x551088=_0x471b26['apply'](this,arguments);return _0x5ec5cd(this,_0x551088);});function _0x5beb2f(){var _0x16f3c3=_0x5376;return _0x5d660b(this,_0x5beb2f),_0x59de25[_0x16f3c3('0x2be')](this,arguments);}return _0x54886e=_0x5beb2f,(_0x57c49c=[{'key':_0xfd3418('0x44a'),'value':function(){var _0x233329=_0xfd3418;return['id',_0x233329('0x3ea'),'value',_0x233329('0x903')];}},{'key':_0xfd3418('0x95e'),'value':function(){var _0x33cd31=_0xfd3418;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x33cd31('0xdde')},{'sTitle':_0x33cd31('0x5c3')},{'sTitle':_0x33cd31('0xd87')}];}},{'key':_0xfd3418('0x10d7'),'value':function(){var _0x3d4586=_0xfd3418;return[['id',{'label':'ID','type':_0x3d4586('0x10f4')}],[_0x3d4586('0x30'),{'label':_0x3d4586('0x5c3'),'type':_0x3d4586('0x5b2'),'validation':_0x3d4586('0xea1')}]];}},{'key':_0xfd3418('0xe26'),'value':function(_0xa4335,_0x1a0682){var _0x5a5f84=_0xfd3418,_0x2455bd=_0x5a5f84('0x500');return _0x2455bd=(_0x2455bd=_0x2455bd[_0x5a5f84('0xd06')](/_id_/g,_0xa4335))['replace'](/_BASE_/g,this[_0x5a5f84('0x598')]);}},{'key':_0xfd3418('0x314'),'value':function(_0x176c2e){var _0xde489=_0xfd3418;return _0xde489('0x30')===_0x176c2e?'meta':'';}},{'key':_0xfd3418('0x1df'),'value':function(_0x4ce79e){var _0x6d6275=_0xfd3418;this[_0x6d6275('0xa4')](),_0x2675e6(_0x1e459b(_0x5beb2f[_0x6d6275('0xe02')]),_0x6d6275('0x1df'),this)['call'](this,_0x4ce79e);}},{'key':_0xfd3418('0x848'),'value':function(_0x218ad9){var _0x1dfee8=_0xfd3418,_0x4bb577=_0x218ad9[this[_0x1dfee8('0x314')](_0x1dfee8('0x30'))],_0x2267c3=null;''!==_0x4bb577&&void 0x0!==_0x4bb577&&(_0x2267c3=[['id',{'label':'ID','type':_0x1dfee8('0x10f4')}],JSON[_0x1dfee8('0x104a')](_0x4bb577)]),_0x2675e6(_0x1e459b(_0x5beb2f[_0x1dfee8('0xe02')]),_0x1dfee8('0x848'),this)['call'](this,_0x218ad9,null,_0x2267c3),$(_0x1dfee8('0x10f'))[_0x1dfee8('0x276')](_0x218ad9[_0x1dfee8('0x903')]);}},{'key':'loadRemoteDataForSettings','value':function(){var _0x3768bc=_0xfd3418,_0x5d5071=[],_0x25137f=null;for(var _0x1ba373 in(_0x5d5071['push']([_0x3768bc('0x777'),{'label':_0x3768bc('0x81e'),'type':_0x3768bc('0xa2d'),'remote-source':[_0x3768bc('0x81e'),'id','name']}]),_0x5d5071[_0x3768bc('0x91b')]([_0x3768bc('0x365'),{'label':_0x3768bc('0x81e'),'type':'select2','remote-source':[_0x3768bc('0x81e'),_0x3768bc('0x9e3'),_0x3768bc('0x3ea')]}]),_0x5d5071[_0x3768bc('0x91b')]([_0x3768bc('0x7d6'),{'label':_0x3768bc('0x7a5'),'type':'select2multi','remote-source':[_0x3768bc('0x7c2'),'id',_0x3768bc('0xf4')]}]),_0x5d5071['push'](['nationality',{'label':_0x3768bc('0x7d7'),'type':_0x3768bc('0xa2d'),'remote-source':[_0x3768bc('0x7d7'),'id',_0x3768bc('0x3ea')]}]),_0x5d5071['push']([_0x3768bc('0xaba'),{'label':_0x3768bc('0x5c3'),'type':_0x3768bc('0x15'),'allow-null':!0x1,'remote-source':[_0x3768bc('0x23'),_0x3768bc('0x3ea'),'description']}]),_0x5d5071))if(void 0x0!==(_0x25137f=_0x5d5071[_0x1ba373])[0x1][_0x3768bc('0xb91')]&&null!==_0x25137f[0x1]['remote-source']){var _0x1f7b04=''[_0x3768bc('0xda9')](_0x25137f[0x1][_0x3768bc('0xb91')][0x0],'_')[_0x3768bc('0xda9')](_0x25137f[0x1][_0x3768bc('0xb91')][0x1],'_')[_0x3768bc('0xda9')](_0x25137f[0x1][_0x3768bc('0xb91')][0x2]);this[_0x3768bc('0x532')][_0x1f7b04]=!0x1,this['sourceMapping'][_0x25137f[0x0]]=_0x25137f[0x1]['remote-source'];var _0x574723={'callBack':_0x3768bc('0xfd3')};_0x574723[_0x3768bc('0x88d')]=[_0x1f7b04],this[_0x3768bc('0x4f4')](_0x25137f[0x1][_0x3768bc('0xb91')],_0x574723);}}},{'key':_0xfd3418('0x1aa'),'value':function(){var _0x2545a5=_0xfd3418;return _0x2545a5('0x996');}}])&&_0x593679(_0x54886e[_0xfd3418('0xe02')],_0x57c49c),_0x542d7a&&_0x593679(_0x54886e,_0x542d7a),_0x5beb2f;}(((_0x4e3816=_0x137cf8('../../../api/AdapterBase'))&&_0x4e3816[_0x4f4231('0xce5')]?_0x4e3816:{'default':_0x4e3816})['default']);_0x100556[_0x4f4231('0x64')]={'SettingAdapter':_0x3c167a};},{'../../../api/AdapterBase':0x34}],0x2f:[function(_0x442e2b,_0x3acef5,_0x2defb6){var _0x1e9343=_0x548f48;'use strict';var _0x3a89e7=_0x442e2b(_0x1e9343('0x19f'));window['ImmigrationDocumentAdapter']=_0x3a89e7['ImmigrationDocumentAdapter'],window[_0x1e9343('0xaad')]=_0x3a89e7[_0x1e9343('0xaad')],window[_0x1e9343('0xb12')]=_0x3a89e7[_0x1e9343('0xb12')],window['CustomFieldAdapter']=_0x3a89e7['CustomFieldAdapter'];},{'./lib':0x30}],0x30:[function(_0xa2007c,_0x332256,_0x51ff3b){var _0xecb5e1=_0x548f48;'use strict';var _0x1784a1=_0x22db66(_0xa2007c(_0xecb5e1('0xee6'))),_0x5ecd4a=_0x22db66(_0xa2007c('../../../api/CustomFieldAdapter')),_0x46db97=_0x22db66(_0xa2007c('../../../api/ApproveAdminAdapter'));function _0x22db66(_0x213fbd){var _0x5f5881=_0xecb5e1;return _0x213fbd&&_0x213fbd[_0x5f5881('0xce5')]?_0x213fbd:{'default':_0x213fbd};}function _0x50e56c(_0x214ac4){var _0x1f9c40=_0xecb5e1;return(_0x50e56c=_0x1f9c40('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x1f9c40('0x57b')]?function(_0x3b15f5){return typeof _0x3b15f5;}:function(_0x396f09){var _0x4eb165=_0x1f9c40;return _0x396f09&&_0x4eb165('0x106c')==typeof Symbol&&_0x396f09[_0x4eb165('0xad1')]===Symbol&&_0x396f09!==Symbol['prototype']?_0x4eb165('0x43c'):typeof _0x396f09;})(_0x214ac4);}function _0x40249a(_0xfa6ff,_0x34556f){var _0x6226e7=_0xecb5e1;if(!(_0xfa6ff instanceof _0x34556f))throw new TypeError(_0x6226e7('0xf98'));}function _0x3d3c5a(_0xc28939,_0x447b67){var _0x4ff5b2=_0xecb5e1;for(var _0x414886=0x0;_0x414886<_0x447b67[_0x4ff5b2('0x13')];_0x414886++){var _0x138694=_0x447b67[_0x414886];_0x138694[_0x4ff5b2('0x3bf')]=_0x138694['enumerable']||!0x1,_0x138694[_0x4ff5b2('0x749')]=!0x0,_0x4ff5b2('0x30')in _0x138694&&(_0x138694['writable']=!0x0),Object['defineProperty'](_0xc28939,_0x138694[_0x4ff5b2('0x86f')],_0x138694);}}function _0x1e6694(_0x58fd52,_0x2228f8,_0x3d44ce){var _0x191d44=_0xecb5e1;return _0x2228f8&&_0x3d3c5a(_0x58fd52[_0x191d44('0xe02')],_0x2228f8),_0x3d44ce&&_0x3d3c5a(_0x58fd52,_0x3d44ce),_0x58fd52;}function _0x2cba78(_0x2460f0){return function(){var _0x4a462e=_0x5376,_0x4da7e0,_0x416c39=_0x505b47(_0x2460f0);if(_0x34ca46()){var _0x5de655=_0x505b47(this)[_0x4a462e('0xad1')];_0x4da7e0=Reflect[_0x4a462e('0x353')](_0x416c39,arguments,_0x5de655);}else _0x4da7e0=_0x416c39['apply'](this,arguments);return _0x229e5a(this,_0x4da7e0);};}function _0x229e5a(_0x2a0f35,_0x2638b5){return!_0x2638b5||'object'!==_0x50e56c(_0x2638b5)&&'function'!=typeof _0x2638b5?function(_0x3fdc47){var _0x33b1d=_0x5376;if(void 0x0===_0x3fdc47)throw new ReferenceError(_0x33b1d('0xe0d'));return _0x3fdc47;}(_0x2a0f35):_0x2638b5;}function _0x34ca46(){var _0x56714e=_0xecb5e1;if('undefined'==typeof Reflect||!Reflect[_0x56714e('0x353')])return!0x1;if(Reflect['construct'][_0x56714e('0xb21')])return!0x1;if(_0x56714e('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x56714e('0xb6d')][_0x56714e('0xfd2')](Reflect[_0x56714e('0x353')](Date,[],function(){})),!0x0;}catch(_0x3ba30f){return!0x1;}}function _0x505b47(_0x31b45b){var _0xd2f440=_0xecb5e1;return(_0x505b47=Object['setPrototypeOf']?Object[_0xd2f440('0x2d9')]:function(_0x55c53c){var _0x2b4a76=_0xd2f440;return _0x55c53c[_0x2b4a76('0x112c')]||Object[_0x2b4a76('0x2d9')](_0x55c53c);})(_0x31b45b);}function _0x18ef4c(_0x2a6d65,_0x4a9bf){var _0x4ac3f1=_0xecb5e1;if('function'!=typeof _0x4a9bf&&null!==_0x4a9bf)throw new TypeError(_0x4ac3f1('0x5a0'));_0x2a6d65[_0x4ac3f1('0xe02')]=Object[_0x4ac3f1('0xbd0')](_0x4a9bf&&_0x4a9bf['prototype'],{'constructor':{'value':_0x2a6d65,'writable':!0x0,'configurable':!0x0}}),_0x4a9bf&&_0x14ea24(_0x2a6d65,_0x4a9bf);}function _0x14ea24(_0x41f2b4,_0x3513ae){return(_0x14ea24=Object['setPrototypeOf']||function(_0x2e844c,_0x1bd547){var _0x144498=_0x5376;return _0x2e844c[_0x144498('0x112c')]=_0x1bd547,_0x2e844c;})(_0x41f2b4,_0x3513ae);}var _0x5b179d=function(_0x212c5a){var _0x51bcdb=_0xecb5e1;_0x18ef4c(_0x2fadb5,_0x212c5a);var _0x58b892=_0x2cba78(_0x2fadb5);function _0x2fadb5(){var _0x37bcd9=_0x5376;return _0x40249a(this,_0x2fadb5),_0x58b892[_0x37bcd9('0x2be')](this,arguments);}return _0x1e6694(_0x2fadb5,[{'key':_0x51bcdb('0x44a'),'value':function(){var _0x2bae01=_0x51bcdb;return['id','name',_0x2bae01('0x1093'),_0x2bae01('0xf2b'),_0x2bae01('0xe1b'),_0x2bae01('0x750')];}},{'key':_0x51bcdb('0x95e'),'value':function(){var _0x1b36e2=_0x51bcdb;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':'Details'},{'sTitle':_0x1b36e2('0xd4e')},{'sTitle':_0x1b36e2('0x733')},{'sTitle':_0x1b36e2('0x6ad')}];}},{'key':_0x51bcdb('0x10d7'),'value':function(){var _0x3ea5f7=_0x51bcdb;for(var _0x556ff9=[['id',{'label':'ID','type':_0x3ea5f7('0x10f4')}],[_0x3ea5f7('0x3ea'),{'label':'Name','type':_0x3ea5f7('0x5b2'),'validation':''}],['details',{'label':'Details','type':_0x3ea5f7('0x7ea'),'validation':'none'}],[_0x3ea5f7('0xf2b'),{'label':_0x3ea5f7('0xd4e'),'type':_0x3ea5f7('0x4ce'),'source':[['No','No'],[_0x3ea5f7('0x1041'),_0x3ea5f7('0x1041')]]}],[_0x3ea5f7('0xe1b'),{'label':_0x3ea5f7('0x733'),'type':_0x3ea5f7('0x4ce'),'source':[['No','No'],[_0x3ea5f7('0x1041'),_0x3ea5f7('0x1041')]]}],[_0x3ea5f7('0x750'),{'label':_0x3ea5f7('0x6ad'),'type':'select','source':[['No','No'],[_0x3ea5f7('0x1041'),_0x3ea5f7('0x1041')]]}],[_0x3ea5f7('0x964'),{'label':_0x3ea5f7('0x641'),'type':'text','validation':''}]],_0x2e972b=0x0;_0x2e972b0x0&&delete this[_0x27312a('0x1016')][_0x18c58d[_0x5e1d50]];}}]),_0x27c061;}(),_0x3a03fb=function(){var _0x2b3241=_0x2869df;function _0x520b39(_0x535392){_0x4b90da(this,_0x520b39),this['storage']=_0x535392||new _0x443832();}return _0x1378c4(_0x520b39,[{'key':'getKey','value':function(_0x538f94,_0x137117){var _0x5c4810=''['concat'](_0x538f94,'|');for(var _0x4d999b in _0x137117)_0x5c4810+=''['concat'](_0x4d999b,'=')['concat'](_0x137117[_0x4d999b],'|');return _0x5c4810;}},{'key':_0x2b3241('0x323'),'value':function(_0x56cd37){var _0x4a5f36=_0x2b3241;this[_0x4a5f36('0x328')][_0x4a5f36('0x4ea')]('t='['concat'](_0x56cd37));}},{'key':_0x2b3241('0x5c0'),'value':function(_0x5ea647){var _0x65223e=this['storage']['getItem'](_0x5ea647);return _0x65223e||null;}},{'key':_0x2b3241('0x86a'),'value':function(_0x5172b5,_0x1e15d4){var _0x116a35=_0x2b3241;return void 0x0!==_0x1e15d4['status']&&null!=_0x1e15d4[_0x116a35('0x75e')]&&_0x116a35('0x7d')!==_0x1e15d4[_0x116a35('0x75e')]?null:(this['storage']['setItem'](_0x5172b5,_0x1e15d4),_0x1e15d4);}}]),_0x520b39;}();_0x5e3fca[_0x2869df('0xf5f')]=_0x3a03fb;},{}],0x34:[function(_0x50cff8,_0x4bbdb5,_0x29a386){var _0xe9a0af=_0x548f48;'use strict';Object[_0xe9a0af('0x9a5')](_0x29a386,_0xe9a0af('0xce5'),{'value':!0x0}),_0x29a386[_0xe9a0af('0xf5f')]=void 0x0;var _0x5f323c=_0x1fa570(_0x50cff8(_0xe9a0af('0xf21'))),_0x3ea8b8=_0x1fa570(_0x50cff8('./ModuleBase')),_0x1e4884=_0x1fa570(_0x50cff8(_0xe9a0af('0xc32'))),_0x55e153=_0x1fa570(_0x50cff8('./MasterDataReader'));function _0x1fa570(_0x393c15){var _0x5b8201=_0xe9a0af;return _0x393c15&&_0x393c15[_0x5b8201('0xce5')]?_0x393c15:{'default':_0x393c15};}function _0x453822(_0x2fe497){var _0x3fbe82=_0xe9a0af;return(_0x453822=_0x3fbe82('0x106c')==typeof Symbol&&_0x3fbe82('0x43c')==typeof Symbol[_0x3fbe82('0x57b')]?function(_0x3c275c){return typeof _0x3c275c;}:function(_0x5b53f8){var _0xaca522=_0x3fbe82;return _0x5b53f8&&_0xaca522('0x106c')==typeof Symbol&&_0x5b53f8[_0xaca522('0xad1')]===Symbol&&_0x5b53f8!==Symbol[_0xaca522('0xe02')]?'symbol':typeof _0x5b53f8;})(_0x2fe497);}function _0x539c91(_0x366cdf,_0x724289){var _0x250395=_0xe9a0af;for(var _0x19cca5=0x0;_0x19cca5<_0x724289[_0x250395('0x13')];_0x19cca5++){var _0x4314c9=_0x724289[_0x19cca5];_0x4314c9[_0x250395('0x3bf')]=_0x4314c9[_0x250395('0x3bf')]||!0x1,_0x4314c9[_0x250395('0x749')]=!0x0,_0x250395('0x30')in _0x4314c9&&(_0x4314c9['writable']=!0x0),Object[_0x250395('0x9a5')](_0x366cdf,_0x4314c9[_0x250395('0x86f')],_0x4314c9);}}function _0xd54961(_0x16a205,_0x875c4e){var _0x41ba08=_0xe9a0af;return!_0x875c4e||'object'!==_0x453822(_0x875c4e)&&_0x41ba08('0x106c')!=typeof _0x875c4e?function(_0x12dd3d){var _0x2d6ae0=_0x41ba08;if(void 0x0===_0x12dd3d)throw new ReferenceError(_0x2d6ae0('0xe0d'));return _0x12dd3d;}(_0x16a205):_0x875c4e;}function _0x302eb4(){var _0x3ae25a=_0xe9a0af;if(_0x3ae25a('0x449')==typeof Reflect||!Reflect[_0x3ae25a('0x353')])return!0x1;if(Reflect[_0x3ae25a('0x353')][_0x3ae25a('0xb21')])return!0x1;if(_0x3ae25a('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x3ae25a('0xe02')][_0x3ae25a('0xb6d')][_0x3ae25a('0xfd2')](Reflect[_0x3ae25a('0x353')](Date,[],function(){})),!0x0;}catch(_0x550c9b){return!0x1;}}function _0x13a402(_0x56ef2a){return(_0x13a402=Object['setPrototypeOf']?Object['getPrototypeOf']:function(_0x2e8502){var _0x3cbbad=_0x5376;return _0x2e8502[_0x3cbbad('0x112c')]||Object[_0x3cbbad('0x2d9')](_0x2e8502);})(_0x56ef2a);}function _0xe00589(_0x300d02,_0x89de54){var _0x354522=_0xe9a0af;return(_0xe00589=Object[_0x354522('0x3df')]||function(_0x2e19ce,_0x1c4810){var _0x4429a1=_0x354522;return _0x2e19ce[_0x4429a1('0x112c')]=_0x1c4810,_0x2e19ce;})(_0x300d02,_0x89de54);}var _0xce71d1=function(_0x574ba8){var _0x84180f=_0xe9a0af;!function(_0x40d5f1,_0xb81099){var _0x382ea4=_0x5376;if(_0x382ea4('0x106c')!=typeof _0xb81099&&null!==_0xb81099)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x40d5f1[_0x382ea4('0xe02')]=Object[_0x382ea4('0xbd0')](_0xb81099&&_0xb81099[_0x382ea4('0xe02')],{'constructor':{'value':_0x40d5f1,'writable':!0x0,'configurable':!0x0}}),_0xb81099&&_0xe00589(_0x40d5f1,_0xb81099);}(_0x526601,_0x574ba8);var _0xab262a,_0x15b948,_0x578176,_0xd018c,_0x137d05=(_0xab262a=_0x526601,function(){var _0x4283f7=_0x5376,_0x4d9b8e,_0x280d3b=_0x13a402(_0xab262a);if(_0x302eb4()){var _0x32a54c=_0x13a402(this)['constructor'];_0x4d9b8e=Reflect[_0x4283f7('0x353')](_0x280d3b,arguments,_0x32a54c);}else _0x4d9b8e=_0x280d3b['apply'](this,arguments);return _0xd54961(this,_0x4d9b8e);});function _0x526601(_0x131420,_0x5aa086,_0x150024,_0x35ab82){var _0x1903c3=_0x5376,_0x2d775f;return function(_0x36b05f,_0x595ad3){var _0x7646b8=_0x5376;if(!(_0x36b05f instanceof _0x595ad3))throw new TypeError(_0x7646b8('0xf98'));}(this,_0x526601),(_0x2d775f=_0x137d05[_0x1903c3('0xfd2')](this))[_0x1903c3('0x84b')]=null,_0x2d775f['tableData']=[],_0x2d775f['sourceData']=[],_0x2d775f[_0x1903c3('0x562')]=null,_0x2d775f['origFilter']=null,_0x2d775f[_0x1903c3('0x262')]=null,_0x2d775f[_0x1903c3('0x31')]=null,_0x2d775f[_0x1903c3('0x478')](_0x131420,_0x5aa086,_0x150024,_0x35ab82),_0x2d775f;}return _0x15b948=_0x526601,(_0x578176=[{'key':'initAdapter','value':function(_0x278796,_0x27c3cd,_0x182cd5,_0x1d7d7a){var _0x20c272=_0x5376;this['moduleRelativeURL']=baseUrl,this[_0x20c272('0x2ac')]=_0x278796,this[_0x20c272('0xe3e')]=null==_0x27c3cd?_0x278796:_0x27c3cd,this[_0x20c272('0x562')]=null==_0x182cd5?null:_0x182cd5,this[_0x20c272('0x1102')]=this['filter'],this[_0x20c272('0x262')]=null==_0x1d7d7a?null:_0x1d7d7a,this['trackEvent'](_0x20c272('0x478'),_0x27c3cd),this[_0x20c272('0xf20')]=new _0x1e4884[(_0x20c272('0xf5f'))]();}},{'key':_0x84180f('0x1004'),'value':function(){var _0x219c6b=_0x84180f;this[_0x219c6b('0x10')]=new _0x55e153[(_0x219c6b('0xf5f'))](this);}},{'key':_0x84180f('0xc5d'),'value':function(_0x8ab14f){var _0x4d1736=_0x84180f;this['apiClient']=new _0x5f323c[(_0x4d1736('0xf5f'))](this[_0x4d1736('0x10ac')],_0x8ab14f,window[_0x4d1736('0x1e4')],!0x0);}},{'key':'setApiUrl','value':function(_0x5b893d){var _0x24e333=_0x84180f;this[_0x24e333('0x10ac')]=_0x5b893d;}},{'key':_0x84180f('0x285'),'value':function(_0x24e63b){var _0x13db10=_0x84180f;this[_0x13db10('0x562')]=_0x24e63b;}},{'key':_0x84180f('0x25b'),'value':function(_0xed4692){var _0x5adc2f=_0x84180f;this[_0x5adc2f('0xa5')]=_0xed4692;}},{'key':_0x84180f('0xea5'),'value':function(_0x21276b){var _0x23560c=_0x84180f,_0x815196=_0x21276b;null==_0x815196&&(_0x815196=this[_0x23560c('0xa5')]),null!=_0x815196&&(this[_0x23560c('0x285')](_0x815196),this[_0x23560c('0x322')]=!0x0,$('#'[_0x23560c('0xda9')](this['getTableName'](),_0x23560c('0xb7')))[_0x23560c('0x312')](),this[_0x23560c('0xa70')]=this[_0x23560c('0x76b')](_0x815196));}},{'key':_0x84180f('0x95'),'value':function(){var _0x6e1369=_0x84180f;return this[_0x6e1369('0x562')];}},{'key':_0x84180f('0x981'),'value':function(_0x559fc5){var _0x2e1e09=_0x84180f;this[_0x2e1e09('0x262')]=_0x559fc5;}},{'key':'getOrderBy','value':function(){var _0x7f8370=_0x84180f;return this[_0x7f8370('0x262')];}},{'key':_0x84180f('0xbbd'),'value':function(_0x3e9b20){var _0x490d3c=_0x84180f,_0x2ef90d=this;return this[_0x490d3c('0x1065')](_0x490d3c('0xc96'),_0x3e9b20),new Promise(function(_0x4d4106,_0x14a06){var _0x7bc938=_0x490d3c;$[_0x7bc938('0x83c')](_0x2ef90d[_0x7bc938('0x84b')],{'a':_0x7bc938('0xc96'),'name':_0x3e9b20},function(_0x25642b){var _0x5bf115=_0x7bc938;_0x5bf115('0x7d')===_0x25642b[_0x5bf115('0x75e')]?_0x4d4106(_0x25642b[_0x5bf115('0x1016')]):_0x14a06();})[_0x7bc938('0x798')](function(){return _0x14a06();});});}},{'key':_0x84180f('0x949'),'value':function(_0x2e74cb,_0x525754,_0x58c520,_0x158626){var _0x2f3e45=_0x84180f,_0x63bdb2=this;null==_0x58c520&&(_0x58c520=!0x0),$(_0x2e74cb)['attr']('a',_0x2f3e45('0x949')),$(_0x2e74cb)[_0x2f3e45('0xb0c')]('t',this[_0x2f3e45('0x2ac')]),_0x63bdb2[_0x2f3e45('0xe41')](),this[_0x2f3e45('0xf20')]['invalidateTable'](this[_0x2f3e45('0x2ac')]),$[_0x2f3e45('0xcce')](this[_0x2f3e45('0x84b')],_0x2e74cb,function(_0x5e4a17){var _0x12c30e=_0x2f3e45;_0x12c30e('0x7d')===_0x5e4a17[_0x12c30e('0x75e')]?_0x63bdb2[_0x12c30e('0x279')](_0x525754,_0x5e4a17[_0x12c30e('0xb3f')],_0x58c520,_0x158626,_0x63bdb2):_0x63bdb2['addFailCallBack'](_0x525754,_0x5e4a17['object']);},'json')[_0x2f3e45('0x798')](function(_0x5b77ed){var _0x557130=_0x2f3e45;0x193===_0x5b77ed['status']&&_0x63bdb2[_0x557130('0xaa4')](_0x557130('0x696'),_0x5b77ed[_0x557130('0xa41')][_0x557130('0x773')]);})[_0x2f3e45('0x484')](function(){_0x63bdb2['hideLoader']();}),this[_0x2f3e45('0x1065')]('add',this[_0x2f3e45('0xe3e')],this[_0x2f3e45('0x2ac')]);}},{'key':_0x84180f('0x279'),'value':function(_0x4e16a3,_0x100702,_0x780cc,_0x3c51cd,_0x2afa92){var _0x3165ac=_0x84180f;_0x780cc&&this[_0x3165ac('0xd12')](_0x4e16a3),this[_0x3165ac('0x395')](),null!=_0x3c51cd&&_0x3c51cd['apply'](_0x2afa92,[_0x100702]),this[_0x3165ac('0x1065')](_0x3165ac('0xa23'),this[_0x3165ac('0xe3e')],this[_0x3165ac('0x2ac')]);}},{'key':_0x84180f('0x936'),'value':function(_0x573854,_0x2719d1){var _0x24fa6c=_0x84180f;try{this[_0x24fa6c('0xc82')]();}catch(_0x1598fa){}this[_0x24fa6c('0xaa4')]('Error\x20saving',_0x2719d1),this[_0x24fa6c('0x1065')](_0x24fa6c('0x1140'),this[_0x24fa6c('0xe3e')],this[_0x24fa6c('0x2ac')]);}},{'key':'deleteObj','value':function(_0x520883,_0x4bdc8d){var _0x45c592=_0x84180f,_0x1601b0=this;_0x1601b0[_0x45c592('0xe41')](),this[_0x45c592('0xf20')][_0x45c592('0x323')](this[_0x45c592('0x2ac')]),$[_0x45c592('0xcce')](this[_0x45c592('0x84b')],{'t':this[_0x45c592('0x2ac')],'a':'delete','id':_0x520883},function(_0x1bf36a){var _0x5aa0f3=_0x45c592;_0x5aa0f3('0x7d')===_0x1bf36a[_0x5aa0f3('0x75e')]?_0x1601b0[_0x5aa0f3('0x23d')](_0x4bdc8d,_0x1bf36a[_0x5aa0f3('0xb3f')]):_0x1601b0['deleteFailCallBack'](_0x4bdc8d,_0x1bf36a[_0x5aa0f3('0xb3f')]);},_0x45c592('0xf1b'))[_0x45c592('0x798')](function(_0x2265cd){var _0x513955=_0x45c592;0x193===_0x2265cd[_0x513955('0x75e')]&&_0x1601b0[_0x513955('0xaa4')](_0x513955('0x696'),_0x2265cd[_0x513955('0xa41')][_0x513955('0x773')]);})['always'](function(){var _0x1de0e5=_0x45c592;_0x1601b0[_0x1de0e5('0xf0c')]();}),this[_0x45c592('0x1065')]('delete',this[_0x45c592('0xe3e')],this[_0x45c592('0x2ac')]);}},{'key':_0x84180f('0x23d'),'value':function(_0x44f6e9,_0x19416b){var _0x74ae44=_0x84180f;this[_0x74ae44('0xd12')](_0x44f6e9),this[_0x74ae44('0x4fb')]();}},{'key':_0x84180f('0x4d1'),'value':function(_0x54dd92,_0x17d803){var _0x5efa93=_0x84180f;this[_0x5efa93('0x4fb')](),this[_0x5efa93('0xaa4')]('Error\x20Occurred\x20while\x20Deleting\x20Item',_0x17d803);}},{'key':_0x84180f('0xd12'),'value':function(_0x4090a4){var _0x5eec17=_0x84180f,_0x54d5b7=this;if(this[_0x5eec17('0x204')]())return this['createTableServer'](this[_0x5eec17('0x3ed')]()),$('#'[_0x5eec17('0xda9')](this[_0x5eec17('0x3ed')](),_0x5eec17('0xe32')))[_0x5eec17('0xcee')](),void $('#'[_0x5eec17('0xda9')](this[_0x5eec17('0x3ed')]()))[_0x5eec17('0x312')]();var _0x405039=JSON['stringify'](this[_0x5eec17('0x528')]()),_0x4a091b='';null!==this['getFilter']()&&(_0x4a091b=JSON['stringify'](this['getFilter']()));var _0x4b675c='';null!==this['getOrderBy']()&&(_0x4b675c=this[_0x5eec17('0xfa0')]()),_0x405039=this[_0x5eec17('0x57')](_0x405039),_0x4a091b=this['fixJSON'](_0x4a091b),_0x54d5b7[_0x5eec17('0xe41')](),$[_0x5eec17('0xcce')](this[_0x5eec17('0x84b')],{'t':this[_0x5eec17('0x2ac')],'a':_0x5eec17('0xd12'),'sm':_0x405039,'ft':_0x4a091b,'ob':_0x4b675c},function(_0x518d67){var _0x1d3cb8=_0x5eec17;_0x1d3cb8('0x7d')===_0x518d67[_0x1d3cb8('0x75e')]?_0x54d5b7['getSuccessCallBack'](_0x4090a4,_0x518d67[_0x1d3cb8('0xb3f')]):_0x54d5b7[_0x1d3cb8('0xfb7')](_0x4090a4,_0x518d67[_0x1d3cb8('0xb3f')]);},_0x5eec17('0xf1b'))[_0x5eec17('0x798')](function(_0x362903){var _0x1b4832=_0x5eec17;0x193===_0x362903[_0x1b4832('0x75e')]&&_0x54d5b7[_0x1b4832('0xaa4')](_0x1b4832('0x696'),_0x362903['responseJSON'][_0x1b4832('0x773')]);})[_0x5eec17('0x484')](function(){var _0x2b1a07=_0x5eec17;_0x54d5b7[_0x2b1a07('0xf0c')]();}),_0x54d5b7[_0x5eec17('0x395')](),this[_0x5eec17('0x1065')](_0x5eec17('0xd12'),this[_0x5eec17('0xe3e')],this[_0x5eec17('0x2ac')]);}},{'key':_0x84180f('0xa2e'),'value':function(_0x2dbbdb){var _0x598c39=_0x84180f,_0x4a8ef5=JSON[_0x598c39('0xf0b')](this['getSourceMapping']()),_0x158c2d=JSON[_0x598c39('0xf0b')](_0x2dbbdb),_0x20c8e7='';null!==this['getFilter']()&&(_0x20c8e7=JSON[_0x598c39('0xf0b')](this['getFilter']()));var _0x4acf7c='';null!==this[_0x598c39('0xfa0')]()&&(_0x4acf7c=this['getOrderBy']());var _0x45ff6f=this[_0x598c39('0x84b')][_0x598c39('0xd06')](_0x598c39('0x114e'),_0x598c39('0x8a0'));return _0x45ff6f=''[_0x598c39('0xda9')](_0x45ff6f,_0x598c39('0x2e5'))[_0x598c39('0xda9')](this[_0x598c39('0x2ac')]),_0x45ff6f=''[_0x598c39('0xda9')](_0x45ff6f,_0x598c39('0x1c9'))[_0x598c39('0xda9')](this['fixJSON'](_0x4a8ef5)),_0x45ff6f=''[_0x598c39('0xda9')](_0x45ff6f,_0x598c39('0x1008'))[_0x598c39('0xda9')](this[_0x598c39('0x57')](_0x158c2d)),_0x45ff6f=''['concat'](_0x45ff6f,_0x598c39('0x8e0'))['concat'](this[_0x598c39('0x57')](_0x20c8e7)),_0x45ff6f=''[_0x598c39('0xda9')](_0x45ff6f,'&ob=')[_0x598c39('0xda9')](_0x4acf7c),this[_0x598c39('0x816')]()&&(_0x45ff6f=''[_0x598c39('0xda9')](_0x45ff6f,_0x598c39('0x1cc'))),this[_0x598c39('0x168')]()&&(_0x45ff6f=''[_0x598c39('0xda9')](_0x45ff6f,_0x598c39('0xe9a'))),_0x45ff6f;}},{'key':'isSubProfileTable','value':function(){return!0x1;}},{'key':_0x84180f('0x168'),'value':function(){return!0x1;}},{'key':_0x84180f('0x6d2'),'value':function(_0x3416dd){return _0x3416dd;}},{'key':_0x84180f('0x114b'),'value':function(_0x1d99e1,_0x4c35b8){var _0x17a9a9=_0x84180f;for(var _0x1a2100=[],_0x425c39=this[_0x17a9a9('0x44a')](),_0x33a63e=0x0;_0x33a63e<_0x4c35b8[_0x17a9a9('0x13')];_0x33a63e++){for(var _0x539947=[],_0x4d1912=0x0;_0x4d1912<_0x425c39['length'];_0x4d1912++)_0x539947[_0x4d1912]=_0x4c35b8[_0x33a63e][_0x425c39[_0x4d1912]];_0x1a2100[_0x17a9a9('0x91b')](this['preProcessTableData'](_0x539947));}this[_0x17a9a9('0x1f7')]=_0x4c35b8,void 0x0!==_0x1d99e1['callBack']&&null!==_0x1d99e1['callBack']&&(void 0x0!==_0x1d99e1[_0x17a9a9('0x88d')]&&null!==_0x1d99e1[_0x17a9a9('0x88d')]||(_0x1d99e1[_0x17a9a9('0x88d')]=[]),_0x1d99e1['callBackData'][_0x17a9a9('0x91b')](_0x4c35b8),_0x1d99e1[_0x17a9a9('0x88d')]['push'](_0x1a2100),this[_0x17a9a9('0x148')](_0x1d99e1['callBack'],_0x1d99e1['callBackData'])),this[_0x17a9a9('0x973')]=_0x1a2100,void 0x0!==_0x1d99e1[_0x17a9a9('0x281')]&&null!==_0x1d99e1['noRender']&&!0x0===_0x1d99e1['noRender']||(this['createTable'](this[_0x17a9a9('0x3ed')]()),$('#'[_0x17a9a9('0xda9')](this[_0x17a9a9('0x3ed')](),'Form'))[_0x17a9a9('0xcee')](),$('#'[_0x17a9a9('0xda9')](this[_0x17a9a9('0x3ed')]()))[_0x17a9a9('0x312')]());}},{'key':'getFailCallBack','value':function(_0x4b6241,_0x4b9a8d){}},{'key':_0x84180f('0xdae'),'value':function(_0x58e649,_0x34ed4f,_0x10a678){var _0x17c05a=_0x84180f,_0x3b0278=this,_0x370bc2=JSON[_0x17c05a('0xf0b')](this['getSourceMapping']());_0x370bc2=this[_0x17c05a('0x57')](_0x370bc2),_0x3b0278['showLoader'](),$[_0x17c05a('0xcce')](this[_0x17c05a('0x84b')],{'t':this['table'],'a':_0x17c05a('0xdae'),'id':_0x58e649,'sm':_0x370bc2},function(_0x322e37){var _0xfa9dff=_0x17c05a;_0xfa9dff('0x7d')===_0x322e37[_0xfa9dff('0x75e')]?(_0x10a678&&delete _0x322e37[_0xfa9dff('0xb3f')]['id'],this[_0xfa9dff('0x31')]=_0x322e37[_0xfa9dff('0xb3f')],_0x3b0278[_0xfa9dff('0xe39')][_0xfa9dff('0x2be')](_0x3b0278,[_0x34ed4f,_0x322e37[_0xfa9dff('0xb3f')]])):_0x3b0278[_0xfa9dff('0x640')][_0xfa9dff('0x2be')](_0x3b0278,[_0x34ed4f,_0x322e37[_0xfa9dff('0xb3f')]]);},_0x17c05a('0xf1b'))[_0x17c05a('0x798')](function(_0x1b23a6){var _0x2b51d8=_0x17c05a;0x193===_0x1b23a6['status']&&_0x3b0278[_0x2b51d8('0xaa4')](_0x2b51d8('0x696'),_0x1b23a6[_0x2b51d8('0xa41')][_0x2b51d8('0x773')]);})[_0x17c05a('0x484')](function(){var _0x27b866=_0x17c05a;_0x3b0278[_0x27b866('0xf0c')]();}),this[_0x17c05a('0x1065')](_0x17c05a('0xdae'),this[_0x17c05a('0xe3e')],this['table']);}},{'key':_0x84180f('0xe39'),'value':function(_0x16e8db,_0x4c4240){var _0x1a96c9=_0x84180f;void 0x0!==_0x16e8db[_0x1a96c9('0xab1')]&&null!==_0x16e8db[_0x1a96c9('0xab1')]&&(void 0x0!==_0x16e8db[_0x1a96c9('0x88d')]&&null!==_0x16e8db[_0x1a96c9('0x88d')]||(_0x16e8db[_0x1a96c9('0x88d')]=[]),_0x16e8db[_0x1a96c9('0x88d')][_0x1a96c9('0x91b')](_0x4c4240),this[_0x1a96c9('0x148')](_0x16e8db['callBack'],_0x16e8db['callBackData'],this)),this[_0x1a96c9('0x31')]=_0x4c4240,void 0x0!==_0x16e8db[_0x1a96c9('0x281')]&&null!==_0x16e8db['noRender']&&!0x0===_0x16e8db[_0x1a96c9('0x281')]||this[_0x1a96c9('0xc03')](_0x4c4240);}},{'key':_0x84180f('0x640'),'value':function(_0x3cce75,_0x1457d3){}},{'key':_0x84180f('0x49c'),'value':function(){var _0x3c7fde=_0x84180f;return this[_0x3c7fde('0x973')];}},{'key':_0x84180f('0x3ed'),'value':function(){var _0x22a850=_0x84180f;return this[_0x22a850('0xe3e')];}},{'key':_0x84180f('0x4f4'),'value':function(_0x275f24,_0x3779f7){var _0x34dc25=_0x84180f,_0x585127=this,_0x5bec87='',_0x55a36a='';void 0x0!==_0x275f24[0x3]&&null!==_0x275f24[0x3]&&(_0x5bec87=_0x275f24[0x3]),void 0x0!==_0x275f24[0x4]&&null!==_0x275f24[0x4]&&(_0x55a36a=JSON[_0x34dc25('0xf0b')](_0x275f24[0x4]));var _0x361da1=this[_0x34dc25('0xf20')]['getKey'](this[_0x34dc25('0x84b')],{'t':_0x275f24[0x0],'key':_0x275f24[0x1],'value':_0x275f24[0x2],'method':_0x5bec87,'methodParams':_0x55a36a,'a':_0x34dc25('0x4f4')}),_0x50f59f=this[_0x34dc25('0xf20')]['getData'](_0x361da1);if(null!=_0x50f59f)_0x34dc25('0x7d')===_0x50f59f[_0x34dc25('0x75e')]&&(_0x3779f7[_0x34dc25('0x88d')][_0x34dc25('0x91b')](_0x50f59f[_0x34dc25('0x1016')]),null!==_0x3779f7['callBackSuccess']&&void 0x0!==_0x3779f7[_0x34dc25('0x691')]&&_0x3779f7[_0x34dc25('0x88d')]['push'](_0x3779f7[_0x34dc25('0x691')]),_0x585127[_0x34dc25('0x148')](_0x3779f7[_0x34dc25('0xab1')],_0x3779f7[_0x34dc25('0x88d')]));else{var _0xa3ffc0=function _0x55c867(_0x28220e){var _0x475ada=_0x34dc25;if(_0x475ada('0x7d')===_0x28220e[_0x475ada('0x75e')]){_0x585127[_0x475ada('0xf20')][_0x475ada('0x86a')](this[_0x475ada('0x6e2')]['key'],_0x28220e);var _0x4a0519=_0x3779f7;_0x4a0519['callBackData']=[_0x3779f7['callBackData'][0x0]],_0x4a0519[_0x475ada('0x88d')]['push'](_0x28220e[_0x475ada('0x1016')]),null!==_0x4a0519[_0x475ada('0x691')]&&void 0x0!==_0x4a0519[_0x475ada('0x691')]&&_0x4a0519[_0x475ada('0x88d')][_0x475ada('0x91b')](_0x3779f7[_0x475ada('0x691')]),_0x585127[_0x475ada('0x148')](_0x4a0519[_0x475ada('0xab1')],_0x4a0519[_0x475ada('0x88d')]);}else _0x475ada('0xe2')===_0x28220e[_0x475ada('0x773')]&&alert('Error\x20:\x20'[_0x475ada('0xda9')](_0x55c867[_0x475ada('0x2ac')],'\x20')[_0x475ada('0xda9')](_0x28220e[_0x475ada('0x773')]));};_0xa3ffc0['key']=_0x361da1,_0xa3ffc0[_0x34dc25('0x2ac')]=_0x275f24[0x0],$[_0x34dc25('0xcce')](this['moduleRelativeURL'],{'t':_0x275f24[0x0],'key':_0x275f24[0x1],'value':_0x275f24[0x2],'method':_0x5bec87,'methodParams':_0x55a36a,'a':_0x34dc25('0x4f4')},_0xa3ffc0,_0x34dc25('0xf1b'));}}},{'key':'setAdminProfile','value':function(_0x3b53cf){var _0x52a7a0=_0x84180f;try{localStorage[_0x52a7a0('0xb15')]();}catch(_0x649656){}$[_0x52a7a0('0xcce')](this[_0x52a7a0('0x84b')],{'a':_0x52a7a0('0x3ff'),'empid':_0x3b53cf},function(){var _0x509857=_0x52a7a0;top[_0x509857('0x86')]['href']=clientUrl;},'json');}},{'key':_0x84180f('0xd99'),'value':function(_0x4df301,_0xb30b32,_0x22a029,_0x1ec498,_0x533b76){var _0x51f214=_0x84180f,_0x57c815=this;_0x22a029=this[_0x51f214('0x57')](_0x22a029),_0x533b76?$[_0x51f214('0xcce')](this['moduleRelativeURL'],{'t':this[_0x51f214('0x2ac')],'a':'ca','sa':_0x4df301,'mod':_0xb30b32,'req':_0x22a029},function(_0x2a07b4){var _0x12c6e1=_0x51f214;_0x12c6e1('0x7d')===_0x2a07b4['status']?(_0x1ec498[_0x12c6e1('0x88d')][_0x12c6e1('0x91b')](_0x2a07b4[_0x12c6e1('0x1016')]),_0x57c815[_0x12c6e1('0x148')](_0x1ec498[_0x12c6e1('0x691')],_0x1ec498['callBackData'])):(_0x1ec498[_0x12c6e1('0x88d')][_0x12c6e1('0x91b')](_0x2a07b4[_0x12c6e1('0x1016')]),_0x57c815[_0x12c6e1('0x148')](_0x1ec498[_0x12c6e1('0xc93')],_0x1ec498[_0x12c6e1('0x88d')]));},_0x51f214('0xf1b')):$['getJSON'](this[_0x51f214('0x84b')],{'t':this[_0x51f214('0x2ac')],'a':'ca','sa':_0x4df301,'mod':_0xb30b32,'req':_0x22a029},function(_0x1e0f29){var _0x32693b=_0x51f214;_0x32693b('0x7d')===_0x1e0f29[_0x32693b('0x75e')]?(_0x1ec498[_0x32693b('0x88d')][_0x32693b('0x91b')](_0x1e0f29[_0x32693b('0x1016')]),_0x57c815[_0x32693b('0x148')](_0x1ec498['callBackSuccess'],_0x1ec498['callBackData'])):(_0x1ec498[_0x32693b('0x88d')][_0x32693b('0x91b')](_0x1e0f29[_0x32693b('0x1016')]),_0x57c815[_0x32693b('0x148')](_0x1ec498[_0x32693b('0xc93')],_0x1ec498[_0x32693b('0x88d')]));});}},{'key':_0x84180f('0xa35'),'value':function(_0x2adcdd,_0x230e45,_0x82f95b,_0x8ad777){var _0x4ced71=_0x84180f;_0x230e45['a']=_0x2adcdd,$['post'](this[_0x4ced71('0x84b')],_0x230e45,function(_0x5ab5a5){var _0x3bac1a=_0x4ced71;_0x3bac1a('0x7d')===_0x5ab5a5['status']?_0x82f95b(_0x5ab5a5[_0x3bac1a('0x1016')]):_0x8ad777(_0x5ab5a5['data']);},'json');}},{'key':_0x84180f('0x8af'),'value':function(_0x2826ce,_0x4ef727){var _0x524da2=_0x84180f;_0x4ef727['a']=_0x2826ce;var _0x21bed6='';for(var _0x2611cc in _0x4ef727)_0x4ef727[_0x524da2('0xe9c')](_0x2611cc)&&(''!==_0x21bed6&&(_0x21bed6+='&'),_0x21bed6+=''[_0x524da2('0xda9')](_0x2611cc,'=')[_0x524da2('0xda9')](_0x4ef727[_0x2611cc]));return''[_0x524da2('0xda9')](this[_0x524da2('0x84b')],'?')[_0x524da2('0xda9')](_0x21bed6);}},{'key':_0x84180f('0xff7'),'value':function(){var _0x1ed88a=_0x84180f;return''['concat'](this['moduleRelativeURL'][_0x1ed88a('0xd06')](_0x1ed88a('0x114e'),''),_0x1ed88a('0xdd'));}},{'key':_0x84180f('0xb4c'),'value':function(_0x2703ad){var _0x517449=_0x84180f;return this['moduleRelativeURL'][_0x517449('0xd06')]('service.php',_0x2703ad);}}])&&_0x539c91(_0x15b948[_0x84180f('0xe02')],_0x578176),_0xd018c&&_0x539c91(_0x15b948,_0xd018c),_0x526601;}(_0x3ea8b8['default']);_0x29a386['default']=_0xce71d1;},{'../api-common/RequestCache':0x33,'./IceApiClient':0x39,'./MasterDataReader':0x3d,'./ModuleBase':0x3e}],0x35:[function(_0x1df5ec,_0x17a861,_0x534004){var _0x3f382b=_0x548f48;'use strict';var _0x1a7c84;function _0x3d6875(_0x4a9bb5){var _0x4ac622=_0x5376;return(_0x3d6875=_0x4ac622('0x106c')==typeof Symbol&&_0x4ac622('0x43c')==typeof Symbol[_0x4ac622('0x57b')]?function(_0x1e805d){return typeof _0x1e805d;}:function(_0x7fca66){var _0x2782b5=_0x4ac622;return _0x7fca66&&_0x2782b5('0x106c')==typeof Symbol&&_0x7fca66['constructor']===Symbol&&_0x7fca66!==Symbol[_0x2782b5('0xe02')]?'symbol':typeof _0x7fca66;})(_0x4a9bb5);}function _0x1f5337(_0xf8d454,_0x568b6d){var _0x169148=_0x5376;for(var _0x26dff7=0x0;_0x26dff7<_0x568b6d['length'];_0x26dff7++){var _0x27f510=_0x568b6d[_0x26dff7];_0x27f510[_0x169148('0x3bf')]=_0x27f510[_0x169148('0x3bf')]||!0x1,_0x27f510[_0x169148('0x749')]=!0x0,_0x169148('0x30')in _0x27f510&&(_0x27f510[_0x169148('0x820')]=!0x0),Object[_0x169148('0x9a5')](_0xf8d454,_0x27f510['key'],_0x27f510);}}function _0x1aab81(_0x285bbe,_0x26edc4){var _0x3619f7=_0x5376;return!_0x26edc4||_0x3619f7('0xb3f')!==_0x3d6875(_0x26edc4)&&_0x3619f7('0x106c')!=typeof _0x26edc4?function(_0x5b5f2c){if(void 0x0===_0x5b5f2c)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x5b5f2c;}(_0x285bbe):_0x26edc4;}function _0xe54d6c(){var _0x29a4d1=_0x5376;if('undefined'==typeof Reflect||!Reflect[_0x29a4d1('0x353')])return!0x1;if(Reflect[_0x29a4d1('0x353')][_0x29a4d1('0xb21')])return!0x1;if(_0x29a4d1('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x29a4d1('0xe02')][_0x29a4d1('0xb6d')][_0x29a4d1('0xfd2')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x2f6c23){return!0x1;}}function _0x9da183(_0x41c6c4){var _0x3c3bbd=_0x5376;return(_0x9da183=Object[_0x3c3bbd('0x3df')]?Object[_0x3c3bbd('0x2d9')]:function(_0x43a0c){var _0x34fd48=_0x3c3bbd;return _0x43a0c[_0x34fd48('0x112c')]||Object[_0x34fd48('0x2d9')](_0x43a0c);})(_0x41c6c4);}function _0x10906f(_0x5164aa,_0x250c9d){var _0x41f7a7=_0x5376;return(_0x10906f=Object[_0x41f7a7('0x3df')]||function(_0x76d6d,_0x3cb57a){var _0x347cba=_0x41f7a7;return _0x76d6d[_0x347cba('0x112c')]=_0x3cb57a,_0x76d6d;})(_0x5164aa,_0x250c9d);}Object[_0x3f382b('0x9a5')](_0x534004,_0x3f382b('0xce5'),{'value':!0x0}),_0x534004[_0x3f382b('0xf5f')]=void 0x0;var _0x4c68d2=function(_0x46800c){var _0x4302eb=_0x3f382b;!function(_0x3128b8,_0x51643e){var _0x26ba14=_0x5376;if('function'!=typeof _0x51643e&&null!==_0x51643e)throw new TypeError(_0x26ba14('0x5a0'));_0x3128b8[_0x26ba14('0xe02')]=Object[_0x26ba14('0xbd0')](_0x51643e&&_0x51643e[_0x26ba14('0xe02')],{'constructor':{'value':_0x3128b8,'writable':!0x0,'configurable':!0x0}}),_0x51643e&&_0x10906f(_0x3128b8,_0x51643e);}(_0x253358,_0x46800c);var _0x544b6c,_0x3c8e89,_0x1c5823,_0xdc2e06,_0x172372=(_0x544b6c=_0x253358,function(){var _0x31e360=_0x5376,_0x149f2b,_0x557dd2=_0x9da183(_0x544b6c);if(_0xe54d6c()){var _0x4d89ee=_0x9da183(this)[_0x31e360('0xad1')];_0x149f2b=Reflect[_0x31e360('0x353')](_0x557dd2,arguments,_0x4d89ee);}else _0x149f2b=_0x557dd2[_0x31e360('0x2be')](this,arguments);return _0x1aab81(this,_0x149f2b);});function _0x253358(_0x49a88f,_0x2fe9df,_0x15ba98,_0x1a9bdf){var _0x3bbc18=_0x5376;return function(_0x301add,_0x591a60){var _0x3866a4=_0x5376;if(!(_0x301add instanceof _0x591a60))throw new TypeError(_0x3866a4('0xf98'));}(this,_0x253358),_0x172372[_0x3bbc18('0xfd2')](this,_0x49a88f,_0x2fe9df,_0x15ba98,_0x1a9bdf);}return _0x3c8e89=_0x253358,(_0x1c5823=[{'key':'getStatusFieldPosition','value':function(){var _0x4b9250=_0x5376;return this[_0x4b9250('0x44a')]()['length']-0x1;}},{'key':_0x4302eb('0x487'),'value':function(_0x4c816f,_0x54a5cb){var _0x5a0c4a=_0x4302eb;$('#'[_0x5a0c4a('0xda9')](this['itemNameLower'],'StatusModel'))[_0x5a0c4a('0xf89')](_0x5a0c4a('0x312')),$('#'['concat'](this[_0x5a0c4a('0x1154')],_0x5a0c4a('0xf67')))['html'](this[_0x5a0c4a('0x78d')](_0x54a5cb)),$('#'[_0x5a0c4a('0xda9')](this['itemNameLower'],_0x5a0c4a('0xf67')))[_0x5a0c4a('0xd3d')](_0x54a5cb),this[_0x5a0c4a('0x10ca')]=_0x4c816f;}},{'key':_0x4302eb('0xafd'),'value':function(){var _0x50769a=_0x4302eb;$('#'['concat'](this[_0x50769a('0x1154')],_0x50769a('0x68e')))['modal'](_0x50769a('0xcee'));}},{'key':_0x4302eb('0x44e'),'value':function(){var _0x530e43=_0x4302eb,_0x18d510=$('#'[_0x530e43('0xda9')](this[_0x530e43('0x1154')],_0x530e43('0xf67')))[_0x530e43('0xd3d')](),_0x4fc386=$('#'['concat'](this[_0x530e43('0x1154')],_0x530e43('0xd3c')))['val']();if(null!=_0x18d510&&null!=_0x18d510&&''!=_0x18d510){var _0x665fc8={'id':this[_0x530e43('0x10ca')],'status':_0x18d510,'reason':_0x4fc386},_0x58724e=JSON['stringify'](_0x665fc8),_0x494604=[];_0x494604[_0x530e43('0x88d')]=[],_0x494604['callBackSuccess']='changeStatusSuccessCallBack',_0x494604[_0x530e43('0xc93')]='changeStatusFailCallBack',this[_0x530e43('0xd99')](_0x530e43('0x44e'),_0x530e43('0x8be')[_0x530e43('0xda9')](this['modulePathName']),_0x58724e,_0x494604),this[_0x530e43('0xafd')](),this['statusChangeId']=null;}else this[_0x530e43('0xaa4')](_0x530e43('0x1bb'),'Please\x20select\x20'[_0x530e43('0xda9')](this[_0x530e43('0x1154')],_0x530e43('0x1a')));}},{'key':_0x4302eb('0x5e4'),'value':function(_0x4bbd09){var _0x5ccf19=_0x4302eb;this['showMessage'](_0x5ccf19('0x7e5'),''[_0x5ccf19('0xda9')](this[_0x5ccf19('0xbe9')],'\x20Request\x20status\x20changed\x20successfully')),this[_0x5ccf19('0xd12')]([]);}},{'key':_0x4302eb('0xd85'),'value':function(_0x3c9301){var _0x3e210b=_0x4302eb;this[_0x3e210b('0xaa4')](_0x3e210b('0x1bb'),_0x3e210b('0xbb2')[_0x3e210b('0xda9')](this[_0x3e210b('0xbe9')],_0x3e210b('0x1011')));}},{'key':_0x4302eb('0xe26'),'value':function(_0x4d70d7,_0x12bb0a){var _0x45f69f=_0x4302eb,_0x1bdb94=_0x45f69f('0x94c'),_0x325d05=this[_0x45f69f('0x14c')](_0x12bb0a[this[_0x45f69f('0x3db')]()]);return _0x1bdb94=(_0x1bdb94=Object['keys'](_0x325d05)['length']>0x0?_0x1bdb94[_0x45f69f('0xd06')](_0x45f69f('0xf65'),_0x45f69f('0x400')):_0x1bdb94[_0x45f69f('0xd06')](_0x45f69f('0xf65'),''))[_0x45f69f('0xd06')](_0x45f69f('0x2fc'),_0x45f69f('0x543')),_0x1bdb94=this['showDelete']?_0x1bdb94[_0x45f69f('0xd06')]('_delete_',_0x45f69f('0x9a6')):_0x1bdb94[_0x45f69f('0xd06')](_0x45f69f('0xac2'),''),_0x1bdb94=(_0x1bdb94=(_0x1bdb94=(_0x1bdb94=this['showEdit']?_0x1bdb94['replace']('_edit_',_0x45f69f('0xbd4')):_0x1bdb94['replace'](_0x45f69f('0x6d7'),''))['replace'](/_id_/g,_0x4d70d7))[_0x45f69f('0xd06')](/_BASE_/g,this[_0x45f69f('0x598')]))[_0x45f69f('0xd06')](/_cstatus_/g,_0x12bb0a[this[_0x45f69f('0x3db')]()]);}},{'key':'isSubProfileTable','value':function(){var _0x127e21=_0x4302eb;return _0x127e21('0x2c2')!==this[_0x127e21('0x34b')]['user_level']&&_0x127e21('0x87b')!==this[_0x127e21('0x34b')][_0x127e21('0x6e8')];}},{'key':_0x4302eb('0x14c'),'value':function(_0x4362b7){var _0x2d0047=_0x4302eb,_0x100e10={};return _0x2d0047('0xe45')===_0x4362b7||(_0x2d0047('0x432')===_0x4362b7?(_0x100e10[_0x2d0047('0xe45')]=_0x2d0047('0xe45'),_0x100e10[_0x2d0047('0x52f')]='Rejected'):_0x2d0047('0x52f')===_0x4362b7||_0x2d0047('0x267')===_0x4362b7||_0x2d0047('0xb8d')===_0x4362b7||(_0x100e10['Cancellation\x20Requested']=_0x2d0047('0x298'),_0x100e10[_0x2d0047('0x267')]=_0x2d0047('0x267'))),_0x100e10;}},{'key':'getStatusOptions','value':function(_0x316669){var _0x31af07=_0x4302eb;return this['generateOptions'](this[_0x31af07('0x14c')](_0x316669));}}])&&_0x1f5337(_0x3c8e89[_0x4302eb('0xe02')],_0x1c5823),_0xdc2e06&&_0x1f5337(_0x3c8e89,_0xdc2e06),_0x253358;}(((_0x1a7c84=_0x1df5ec(_0x3f382b('0x778')))&&_0x1a7c84[_0x3f382b('0xce5')]?_0x1a7c84:{'default':_0x1a7c84})[_0x3f382b('0xf5f')]);_0x534004[_0x3f382b('0xf5f')]=_0x4c68d2;},{'./LogViewAdapter':0x3c}],0x36:[function(_0x9a7489,_0x59636b,_0x14c6ba){var _0x10d1d1=_0x548f48;'use strict';var _0x16f00e;function _0x2a41de(_0x3c2f9b){return(_0x2a41de='function'==typeof Symbol&&'symbol'==typeof Symbol['iterator']?function(_0x168e29){return typeof _0x168e29;}:function(_0x57cf24){var _0x220d3c=_0x5376;return _0x57cf24&&_0x220d3c('0x106c')==typeof Symbol&&_0x57cf24[_0x220d3c('0xad1')]===Symbol&&_0x57cf24!==Symbol[_0x220d3c('0xe02')]?_0x220d3c('0x43c'):typeof _0x57cf24;})(_0x3c2f9b);}function _0x59b335(_0x2e24ae,_0xe08d47){var _0x528ed1=_0x5376;if(!(_0x2e24ae instanceof _0xe08d47))throw new TypeError(_0x528ed1('0xf98'));}function _0x123756(_0x25f707,_0x5f04b5){var _0x4b4dc6=_0x5376;for(var _0x58945f=0x0;_0x58945f<_0x5f04b5[_0x4b4dc6('0x13')];_0x58945f++){var _0x44d537=_0x5f04b5[_0x58945f];_0x44d537[_0x4b4dc6('0x3bf')]=_0x44d537[_0x4b4dc6('0x3bf')]||!0x1,_0x44d537['configurable']=!0x0,'value'in _0x44d537&&(_0x44d537[_0x4b4dc6('0x820')]=!0x0),Object[_0x4b4dc6('0x9a5')](_0x25f707,_0x44d537['key'],_0x44d537);}}function _0x1a6a9f(_0x1d93a6,_0x1c5fd6){var _0x13f96f=_0x5376;return!_0x1c5fd6||_0x13f96f('0xb3f')!==_0x2a41de(_0x1c5fd6)&&_0x13f96f('0x106c')!=typeof _0x1c5fd6?function(_0x45fc24){if(void 0x0===_0x45fc24)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x45fc24;}(_0x1d93a6):_0x1c5fd6;}function _0x5ac6a6(){var _0x2e4e58=_0x5376;if(_0x2e4e58('0x449')==typeof Reflect||!Reflect[_0x2e4e58('0x353')])return!0x1;if(Reflect[_0x2e4e58('0x353')][_0x2e4e58('0xb21')])return!0x1;if(_0x2e4e58('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype']['toString'][_0x2e4e58('0xfd2')](Reflect[_0x2e4e58('0x353')](Date,[],function(){})),!0x0;}catch(_0x782cc8){return!0x1;}}function _0x43ff55(_0x406927){var _0x167c26=_0x5376;return(_0x43ff55=Object[_0x167c26('0x3df')]?Object[_0x167c26('0x2d9')]:function(_0xb26265){var _0x2f5e7b=_0x167c26;return _0xb26265['__proto__']||Object[_0x2f5e7b('0x2d9')](_0xb26265);})(_0x406927);}function _0x52aadb(_0x48340a,_0x318821){var _0x14ad0d=_0x5376;return(_0x52aadb=Object[_0x14ad0d('0x3df')]||function(_0xfcda0b,_0xb9eed){return _0xfcda0b['__proto__']=_0xb9eed,_0xfcda0b;})(_0x48340a,_0x318821);}Object[_0x10d1d1('0x9a5')](_0x14c6ba,_0x10d1d1('0xce5'),{'value':!0x0}),_0x14c6ba['default']=void 0x0;var _0x47190d=function(_0x36d23d){var _0x5d2171=_0x10d1d1;!function(_0x37d3ff,_0x23d0cb){var _0xa692fd=_0x5376;if('function'!=typeof _0x23d0cb&&null!==_0x23d0cb)throw new TypeError(_0xa692fd('0x5a0'));_0x37d3ff[_0xa692fd('0xe02')]=Object[_0xa692fd('0xbd0')](_0x23d0cb&&_0x23d0cb[_0xa692fd('0xe02')],{'constructor':{'value':_0x37d3ff,'writable':!0x0,'configurable':!0x0}}),_0x23d0cb&&_0x52aadb(_0x37d3ff,_0x23d0cb);}(_0x302716,_0x36d23d);var _0x3ca6df,_0x5ea3c6,_0x3c1ed0,_0xb3de5a,_0x193fe5=(_0x3ca6df=_0x302716,function(){var _0x5a921f=_0x5376,_0x59a9f7,_0x1ccf6f=_0x43ff55(_0x3ca6df);if(_0x5ac6a6()){var _0x956ebe=_0x43ff55(this)[_0x5a921f('0xad1')];_0x59a9f7=Reflect[_0x5a921f('0x353')](_0x1ccf6f,arguments,_0x956ebe);}else _0x59a9f7=_0x1ccf6f[_0x5a921f('0x2be')](this,arguments);return _0x1a6a9f(this,_0x59a9f7);});function _0x302716(){var _0x36a1f2=_0x5376;return _0x59b335(this,_0x302716),_0x193fe5[_0x36a1f2('0x2be')](this,arguments);}return _0x5ea3c6=_0x302716,(_0x3c1ed0=[{'key':_0x5d2171('0x44a'),'value':function(){return[];}},{'key':'getHeaders','value':function(){return[];}},{'key':_0x5d2171('0x10d7'),'value':function(){return[];}},{'key':_0x5d2171('0x37f'),'value':function(_0x36ead5){}}])&&_0x123756(_0x5ea3c6[_0x5d2171('0xe02')],_0x3c1ed0),_0xb3de5a&&_0x123756(_0x5ea3c6,_0xb3de5a),_0x302716;}(((_0x16f00e=_0x9a7489(_0x10d1d1('0x8ac')))&&_0x16f00e[_0x10d1d1('0xce5')]?_0x16f00e:{'default':_0x16f00e})['default']);_0x14c6ba[_0x10d1d1('0xf5f')]=_0x47190d;},{'./AdapterBase':0x34}],0x37:[function(_0x58c5a4,_0xff61b3,_0x1ec09f){var _0x5bf17b=_0x548f48;'use strict';var _0x12b66d;function _0x5de908(_0x4bbe45){var _0x30997c=_0x5376;return(_0x5de908='function'==typeof Symbol&&_0x30997c('0x43c')==typeof Symbol[_0x30997c('0x57b')]?function(_0x1e70ad){return typeof _0x1e70ad;}:function(_0x4178eb){var _0x12f249=_0x30997c;return _0x4178eb&&_0x12f249('0x106c')==typeof Symbol&&_0x4178eb[_0x12f249('0xad1')]===Symbol&&_0x4178eb!==Symbol['prototype']?_0x12f249('0x43c'):typeof _0x4178eb;})(_0x4bbe45);}function _0x43a9f7(_0x52ff1,_0x54123b){var _0xa4e7e3=_0x5376;for(var _0x5b1252=0x0;_0x5b1252<_0x54123b['length'];_0x5b1252++){var _0x4ea193=_0x54123b[_0x5b1252];_0x4ea193[_0xa4e7e3('0x3bf')]=_0x4ea193[_0xa4e7e3('0x3bf')]||!0x1,_0x4ea193['configurable']=!0x0,_0xa4e7e3('0x30')in _0x4ea193&&(_0x4ea193[_0xa4e7e3('0x820')]=!0x0),Object[_0xa4e7e3('0x9a5')](_0x52ff1,_0x4ea193[_0xa4e7e3('0x86f')],_0x4ea193);}}function _0x55ebbf(_0x4d8669,_0x53f1a2){var _0xc55b01=_0x5376;return!_0x53f1a2||'object'!==_0x5de908(_0x53f1a2)&&_0xc55b01('0x106c')!=typeof _0x53f1a2?function(_0x366854){var _0x599c8e=_0xc55b01;if(void 0x0===_0x366854)throw new ReferenceError(_0x599c8e('0xe0d'));return _0x366854;}(_0x4d8669):_0x53f1a2;}function _0x36a301(){var _0x114d80=_0x5376;if(_0x114d80('0x449')==typeof Reflect||!Reflect[_0x114d80('0x353')])return!0x1;if(Reflect[_0x114d80('0x353')][_0x114d80('0xb21')])return!0x1;if(_0x114d80('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x114d80('0xe02')][_0x114d80('0xb6d')][_0x114d80('0xfd2')](Reflect[_0x114d80('0x353')](Date,[],function(){})),!0x0;}catch(_0x2fb217){return!0x1;}}function _0x5b3cbd(_0xf22a79){var _0x110478=_0x5376;return(_0x5b3cbd=Object[_0x110478('0x3df')]?Object[_0x110478('0x2d9')]:function(_0x14f885){var _0x529d0a=_0x110478;return _0x14f885[_0x529d0a('0x112c')]||Object[_0x529d0a('0x2d9')](_0x14f885);})(_0xf22a79);}function _0x4db412(_0x801a6,_0x427ec5){var _0x281603=_0x5376;return(_0x4db412=Object[_0x281603('0x3df')]||function(_0x171a59,_0x43035c){var _0x2af6be=_0x281603;return _0x171a59[_0x2af6be('0x112c')]=_0x43035c,_0x171a59;})(_0x801a6,_0x427ec5);}Object[_0x5bf17b('0x9a5')](_0x1ec09f,_0x5bf17b('0xce5'),{'value':!0x0}),_0x1ec09f['default']=void 0x0;var _0x152d5c=function(_0x3aeabd){var _0x4ca89a=_0x5bf17b;!function(_0x25fe44,_0x23404d){var _0x145472=_0x5376;if(_0x145472('0x106c')!=typeof _0x23404d&&null!==_0x23404d)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x25fe44['prototype']=Object[_0x145472('0xbd0')](_0x23404d&&_0x23404d[_0x145472('0xe02')],{'constructor':{'value':_0x25fe44,'writable':!0x0,'configurable':!0x0}}),_0x23404d&&_0x4db412(_0x25fe44,_0x23404d);}(_0x574918,_0x3aeabd);var _0x3212ec,_0x8b2bb0,_0x2243b6,_0x3dc471,_0x5e27eb=(_0x3212ec=_0x574918,function(){var _0x3edbb3=_0x5376,_0xe45b67,_0x5ece12=_0x5b3cbd(_0x3212ec);if(_0x36a301()){var _0x1456df=_0x5b3cbd(this)[_0x3edbb3('0xad1')];_0xe45b67=Reflect[_0x3edbb3('0x353')](_0x5ece12,arguments,_0x1456df);}else _0xe45b67=_0x5ece12[_0x3edbb3('0x2be')](this,arguments);return _0x55ebbf(this,_0xe45b67);});function _0x574918(_0x219dc1,_0x467e95,_0x357c01,_0x35eab7){var _0x3f237f;return function(_0x1d6b37,_0x4b7652){var _0x964041=_0x5376;if(!(_0x1d6b37 instanceof _0x4b7652))throw new TypeError(_0x964041('0xf98'));}(this,_0x574918),(_0x3f237f=_0x5e27eb['call'](this,_0x219dc1,_0x467e95,_0x357c01,_0x35eab7))['tableType']='',_0x3f237f;}return _0x8b2bb0=_0x574918,(_0x2243b6=[{'key':_0x4ca89a('0x44a'),'value':function(){var _0x312b91=_0x4ca89a;return['id',_0x312b91('0x3ea'),_0x312b91('0x13d'),_0x312b91('0x9bc')];}},{'key':_0x4ca89a('0x95e'),'value':function(){var _0x1b1e79=_0x4ca89a;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x1b1e79('0xdde')},{'sTitle':_0x1b1e79('0x315')},{'sTitle':'Priority'}];}},{'key':_0x4ca89a('0x10d7'),'value':function(){var _0x5b934a=_0x4ca89a;return[['id',{'label':'ID','type':_0x5b934a('0x10f4')}],['name',{'label':'Name','type':_0x5b934a('0x5b2'),'validation':''}],[_0x5b934a('0x13d'),{'label':_0x5b934a('0x315'),'type':_0x5b934a('0x4ce'),'source':[[_0x5b934a('0xe32'),_0x5b934a('0xf09')],[_0x5b934a('0xd1b'),_0x5b934a('0xd1b')]]}],['field_type',{'label':_0x5b934a('0xa5b'),'type':'select','source':[['text','Text\x20Field'],['textarea','Text\x20Area'],[_0x5b934a('0x4ce'),_0x5b934a('0x6f')],[_0x5b934a('0x15'),_0x5b934a('0xf87')],[_0x5b934a('0xa2d'),'Multi\x20Select'],[_0x5b934a('0x881'),'File\x20Upload'],[_0x5b934a('0x2a5'),_0x5b934a('0x35a')],[_0x5b934a('0x3aa'),_0x5b934a('0x87f')],[_0x5b934a('0x23c'),'Time'],[_0x5b934a('0x6c4'),_0x5b934a('0x1070')]]}],['field_label',{'label':_0x5b934a('0x4fd'),'type':'text','validation':''}],['field_validation',{'label':_0x5b934a('0x5e1'),'type':_0x5b934a('0x15'),'validation':_0x5b934a('0xea1'),'sort':_0x5b934a('0xea1'),'null-label':_0x5b934a('0xf56'),'allow-null':!0x0,'source':[['none',_0x5b934a('0x37b')],[_0x5b934a('0x67b'),_0x5b934a('0xb3')],[_0x5b934a('0xb61'),'Number\x20or\x20Empty'],[_0x5b934a('0x892'),_0x5b934a('0x829')],['email',_0x5b934a('0xb3d')],[_0x5b934a('0xa8'),'Email\x20or\x20Empty']]}],[_0x5b934a('0xb79'),{'label':_0x5b934a('0xfe6'),'type':'datagroup','form':[['label',{'label':_0x5b934a('0x8a2'),'type':_0x5b934a('0x5b2'),'validation':''}],['value',{'label':'Value','type':_0x5b934a('0x5b2'),'validation':'none'}]],'html':_0x5b934a('0x14f'),'validation':_0x5b934a('0xea1')}],['display_order',{'label':_0x5b934a('0x5c5'),'type':_0x5b934a('0x5b2'),'validation':_0x5b934a('0x67b')}],[_0x5b934a('0xcc2'),{'label':_0x5b934a('0x44b'),'type':_0x5b934a('0x5b2'),'validation':_0x5b934a('0xea1')}]];}},{'key':'setTableType','value':function(_0x3231f5){var _0x44fd9e=_0x4ca89a;this[_0x44fd9e('0x712')]=_0x3231f5;}},{'key':_0x4ca89a('0xe86'),'value':function(_0x2f9b31){var _0x3ae6d9=_0x4ca89a,_0x3081e9;return null!=(_0x3081e9=_0x2f9b31[_0x3ae6d9('0x3ea')])&&/^[a-z][a-z0-9._]+$/[_0x3ae6d9('0x2c3')](_0x3081e9)?null:_0x3ae6d9('0xacf');}},{'key':_0x4ca89a('0xcea'),'value':function(_0x299c4a){var _0xea56d3=_0x4ca89a,_0x45fab3,_0x324e7f=[_0x299c4a[_0xea56d3('0x3ea')]],_0x5db05d=[];if(_0x324e7f[_0xea56d3('0x91b')]({}),_0x324e7f[0x1][_0xea56d3('0xf3c')]=_0x299c4a[_0xea56d3('0x65c')],_0x324e7f[0x1]['type']=_0x299c4a[_0xea56d3('0x1ed')],_0x324e7f[0x1][_0xea56d3('0x2c4')]=_0x299c4a[_0xea56d3('0x825')],[_0xea56d3('0x4ce'),'select2',_0xea56d3('0xa2d')][_0xea56d3('0xf00')](_0x299c4a[_0xea56d3('0x1ed')])>=0x0){for(var _0x2b58d2 in _0x45fab3=''===_0x299c4a['field_options']||void 0x0===_0x299c4a[_0xea56d3('0xb79')]?[]:JSON[_0xea56d3('0x104a')](_0x299c4a[_0xea56d3('0xb79')]))_0x5db05d[_0xea56d3('0x91b')]([_0x45fab3[_0x2b58d2][_0xea56d3('0x30')],_0x45fab3[_0x2b58d2]['label']]);_0x324e7f[0x1][_0xea56d3('0x5f3')]=_0x5db05d;}return null!=_0x299c4a[_0xea56d3('0x825')]&&void 0x0!==_0x299c4a[_0xea56d3('0x825')]||(_0x299c4a['field_validation']=''),_0x299c4a['data']=JSON['stringify'](_0x324e7f),_0x299c4a['type']=this[_0xea56d3('0x712')],_0x299c4a;}}])&&_0x43a9f7(_0x8b2bb0[_0x4ca89a('0xe02')],_0x2243b6),_0x3dc471&&_0x43a9f7(_0x8b2bb0,_0x3dc471),_0x574918;}(((_0x12b66d=_0x58c5a4(_0x5bf17b('0x8ac')))&&_0x12b66d['__esModule']?_0x12b66d:{'default':_0x12b66d})[_0x5bf17b('0xf5f')]);_0x1ec09f['default']=_0x152d5c;},{'./AdapterBase':0x34}],0x38:[function(_0x2a448d,_0x19ab2a,_0x3270d1){var _0x183d06=_0x548f48;'use strict';function _0x2369ea(_0x300a74,_0x34814d){var _0x449f27=_0x5376;for(var _0x19ab77=0x0;_0x19ab77<_0x34814d[_0x449f27('0x13')];_0x19ab77++){var _0x3c1f8d=_0x34814d[_0x19ab77];_0x3c1f8d[_0x449f27('0x3bf')]=_0x3c1f8d['enumerable']||!0x1,_0x3c1f8d[_0x449f27('0x749')]=!0x0,_0x449f27('0x30')in _0x3c1f8d&&(_0x3c1f8d[_0x449f27('0x820')]=!0x0),Object[_0x449f27('0x9a5')](_0x300a74,_0x3c1f8d[_0x449f27('0x86f')],_0x3c1f8d);}}Object[_0x183d06('0x9a5')](_0x3270d1,_0x183d06('0xce5'),{'value':!0x0}),_0x3270d1['default']=void 0x0;var _0x3f013c={'float':function(_0x47f59f){return!(null==_0x47f59f||!_0x47f59f['match'](/^[-+]?[0-9]+(\.[0-9]+)?$/));},'number':function(_0x4ba27f){return!(null==_0x4ba27f||!_0x4ba27f['match'](/^[0-9]+$/));},'numberOrEmpty':function(_0x849f7f){var _0x1bfa36=_0x183d06;if(''===_0x849f7f)return!0x0;return!(null==_0x849f7f||!_0x849f7f[_0x1bfa36('0x7d5')](/^[0-9]+$/));},'email':function(_0x52b705){var _0x16e4b5=_0x183d06;return null!=_0x52b705&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/[_0x16e4b5('0x2c3')](_0x52b705);},'emailOrEmpty':function(_0x24ae05){var _0x1df97d=_0x183d06;if(''===_0x24ae05)return!0x0;return null!=_0x24ae05&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/[_0x1df97d('0x2c3')](_0x24ae05);},'username':function(_0x2aa10b){var _0xb85128=_0x183d06;return null!=_0x2aa10b&&/^[a-zA-Z0-9.-]+$/[_0xb85128('0x2c3')](_0x2aa10b);},'input':function(_0x1341a5){var _0x3e1888=_0x183d06;return null!=_0x1341a5&&_0x1341a5[_0x3e1888('0x13')]>0x0;}},_0x4ae005=function(){var _0x14f84d=_0x183d06;function _0x327eda(_0x357e98,_0x41ba5b,_0x572f2b){var _0x363d83=_0x5376;!function(_0x30c6a6,_0xf2b874){var _0x1947f8=_0x5376;if(!(_0x30c6a6 instanceof _0xf2b874))throw new TypeError(_0x1947f8('0xf98'));}(this,_0x327eda),this['tempOptions']={},this[_0x363d83('0x3e7')]=_0x357e98,this[_0x363d83('0x60b')]=!0x1,this['formObject']=null,this[_0x363d83('0x375')]='',this[_0x363d83('0xc12')]=null,this[_0x363d83('0xfce')]=_0x41ba5b,this[_0x363d83('0x5b1')]=[],this['settings']={'thirdPartyPopup':null,'LabelErrorClass':!0x1,'ShowPopup':!0x0},this['settings']=jQuery['extend'](this[_0x363d83('0xec0')],_0x572f2b),this[_0x363d83('0x5cb')]=[_0x363d83('0x5b2'),_0x363d83('0x57a'),_0x363d83('0x34f'),'file',_0x363d83('0x4f5'),_0x363d83('0x362'),'select-multi',_0x363d83('0x7ea'),_0x363d83('0x881'),'signature'],this[_0x363d83('0x7db')]=_0x3f013c;}var _0x511dfc,_0x51c25e,_0x35cb81;return _0x511dfc=_0x327eda,_0x51c25e=[{'key':_0x14f84d('0x21a'),'value':function(_0x5ef7f5,_0x37a062){var _0x3cdad1=_0x14f84d,_0x50318a=_0x5ef7f5[_0x3cdad1('0xb0c')]('id');$('#'[_0x3cdad1('0xda9')](this[_0x3cdad1('0x3e7')],_0x3cdad1('0x1020'))['concat'](_0x50318a))[_0x3cdad1('0xa52')](_0x3cdad1('0x5bf')),$('#'[_0x3cdad1('0xda9')](this[_0x3cdad1('0x3e7')],'\x20#help_')['concat'](_0x50318a))['html']('');}},{'key':_0x14f84d('0x320'),'value':function(_0xc5ef92,_0x5861d7){var _0x205f86=_0x14f84d;this[_0x205f86('0x60b')]=!0x0,null!=_0xc5ef92[_0x205f86('0xb0c')]('message')?(this[_0x205f86('0x375')]+=''[_0x205f86('0xda9')](_0xc5ef92['attr']('message'),'\x0a'),this[_0x205f86('0x5b1')][_0xc5ef92['attr'](_0x205f86('0x3ea'))]=_0xc5ef92[_0x205f86('0xb0c')](_0x205f86('0x773'))):this[_0x205f86('0x5b1')][_0xc5ef92['attr'](_0x205f86('0x3ea'))]='';var _0x541938=_0xc5ef92['attr']('id'),_0x816cee=_0xc5ef92[_0x205f86('0xb0c')](_0x205f86('0x2c4')),_0x5b7f76=_0xc5ef92[_0x205f86('0xb0c')](_0x205f86('0x2c4'));$('#'[_0x205f86('0xda9')](this[_0x205f86('0x3e7')],_0x205f86('0x1020'))['concat'](_0x541938))[_0x205f86('0x6a')](_0x205f86('0x5bf')),void 0x0===_0x5b7f76||null==_0x5b7f76||''===_0x5b7f76?$('#'[_0x205f86('0xda9')](this[_0x205f86('0x3e7')],_0x205f86('0xa27'))[_0x205f86('0xda9')](_0x541938))['html'](_0x5b7f76):void 0x0===_0x816cee||null==_0x816cee||''===_0x816cee?$('#'[_0x205f86('0xda9')](this[_0x205f86('0x3e7')],_0x205f86('0xa27'))[_0x205f86('0xda9')](_0x541938))['html'](_0x205f86('0xf56')):_0x205f86('0x892')===_0x816cee||'number'===_0x816cee?$('#'[_0x205f86('0xda9')](this['formId'],'\x20#help_err_')[_0x205f86('0xda9')](_0x541938))[_0x205f86('0x276')](_0x205f86('0x1119')):'email'===_0x816cee?$('#'['concat'](this[_0x205f86('0x3e7')],_0x205f86('0xa27'))[_0x205f86('0xda9')](_0x541938))[_0x205f86('0x276')]('Email\x20required'):$('#'[_0x205f86('0xda9')](this['formId'],_0x205f86('0xa27'))['concat'](_0x541938))[_0x205f86('0x276')](_0x205f86('0xf56'));}},{'key':_0x14f84d('0x793'),'value':function(){var _0xb7fb4b=_0x14f84d;this['formError']&&(void 0x0!==this[_0xb7fb4b('0xec0')][_0xb7fb4b('0xb8b')]&&null!=this[_0xb7fb4b('0xec0')][_0xb7fb4b('0xb8b')]?this['settings'][_0xb7fb4b('0xb8b')]['alert']():!0x0===this[_0xb7fb4b('0xec0')][_0xb7fb4b('0x5dd')]&&(void 0x0!==this['tempOptions'][_0xb7fb4b('0x7')]&&null!=this[_0xb7fb4b('0x1003')][_0xb7fb4b('0x7')]?this[_0xb7fb4b('0x2eb')](_0xb7fb4b('0xe5e'),this['errorMessages'],this[_0xb7fb4b('0x1003')][_0xb7fb4b('0x7')]):this[_0xb7fb4b('0x2eb')](_0xb7fb4b('0xe5e'),this[_0xb7fb4b('0x375')],-0x1)));}},{'key':_0x14f84d('0x266'),'value':function(_0x175c3b){var _0x1d53b8=_0x14f84d;this[_0x1d53b8('0x1003')]=_0x175c3b;var _0x49748d=this;this['formError']=!0x1,this['errorMessages']='',this[_0x1d53b8('0xcb1')]={};var _0x51e64f=function(_0x1fa758){var _0x2979a5=_0x1d53b8,_0xb48d30=null,_0x4b7352=_0x1fa758['attr'](_0x2979a5('0x3ea'));!0x1!==_0x49748d[_0x2979a5('0xec0')]['LabelErrorClass']&&$(_0x2979a5('0x8e7')[_0x2979a5('0xda9')](_0x4b7352,'\x27]'))[_0x2979a5('0xa52')](_0x49748d[_0x2979a5('0xec0')][_0x2979a5('0x61f')]);var _0x396aae=_0x1fa758[_0x2979a5('0xb0c')]('id'),_0x56d93c=_0x1fa758[_0x2979a5('0xb0c')](_0x2979a5('0x921'));if(_0x1fa758[_0x2979a5('0xea7')](_0x2979a5('0xd80'))||_0x1fa758['hasClass'](_0x2979a5('0xbed')))return!0x0;if(jQuery[_0x2979a5('0x540')](_0x56d93c,_0x49748d['inputTypes'])>=0x0){if(_0x1fa758[_0x2979a5('0xea7')](_0x2979a5('0xb1c')))_0xb48d30=_0x1fa758[_0x2979a5('0xb0c')]('val');else{if(_0x2979a5('0x57a')===_0x56d93c||_0x2979a5('0x34f')===_0x56d93c)_0xb48d30=$('input[name=\x27'[_0x2979a5('0xda9')](_0x4b7352,_0x2979a5('0xe8b')))[_0x2979a5('0xd3d')]();else{if(_0x1fa758[_0x2979a5('0xea7')]('select2Field'))_0xb48d30=null!=$('#'[_0x2979a5('0xda9')](_0x49748d[_0x2979a5('0x3e7')],'\x20#')[_0x2979a5('0xda9')](_0x396aae))['select2'](_0x2979a5('0x1016'))&&void 0x0!==$('#'[_0x2979a5('0xda9')](_0x49748d[_0x2979a5('0x3e7')],'\x20#')['concat'](_0x396aae))[_0x2979a5('0x15')](_0x2979a5('0x1016'))?$('#'[_0x2979a5('0xda9')](_0x49748d['formId'],'\x20#')[_0x2979a5('0xda9')](_0x396aae))['select2'](_0x2979a5('0x1016'))['id']:'';else{if(_0x1fa758[_0x2979a5('0xea7')](_0x2979a5('0xe8'))){if(null!=$('#'[_0x2979a5('0xda9')](_0x49748d[_0x2979a5('0x3e7')],'\x20#')[_0x2979a5('0xda9')](_0x396aae))[_0x2979a5('0x15')](_0x2979a5('0x1016'))&&void 0x0!==$('#'[_0x2979a5('0xda9')](_0x49748d[_0x2979a5('0x3e7')],'\x20#')['concat'](_0x396aae))[_0x2979a5('0x15')](_0x2979a5('0x1016'))){var _0x3f8aa5=$('#'[_0x2979a5('0xda9')](_0x49748d[_0x2979a5('0x3e7')],'\x20#')[_0x2979a5('0xda9')](_0x396aae))['select2'](_0x2979a5('0x1016'));_0xb48d30=[];for(var _0x3b9f22=0x0;_0x3b9f22<_0x3f8aa5[_0x2979a5('0x13')];_0x3b9f22++)_0xb48d30[_0x2979a5('0x91b')](_0x3f8aa5[_0x3b9f22]['id']);_0xb48d30=JSON['stringify'](_0xb48d30);}else _0xb48d30='';}else _0xb48d30=_0x1fa758[_0x2979a5('0xea7')](_0x2979a5('0x54c'))?$('#'['concat'](_0x49748d['formId'],'\x20#')[_0x2979a5('0xda9')](_0x396aae))[_0x2979a5('0x1016')](_0x2979a5('0x43f'))[_0x2979a5('0x24')]()?'':$('#'[_0x2979a5('0xda9')](_0x396aae))[_0x2979a5('0x1016')](_0x2979a5('0x43f'))[_0x2979a5('0xf1d')]():_0x1fa758[_0x2979a5('0xea7')](_0x2979a5('0xc00'))?$('#'[_0x2979a5('0xda9')](_0x49748d[_0x2979a5('0x3e7')],'\x20#')[_0x2979a5('0xda9')](_0x396aae))[_0x2979a5('0x1016')](_0x2979a5('0xc00'))[_0x2979a5('0x30')]():_0x1fa758['hasClass'](_0x2979a5('0x9e3'))?$('#'[_0x2979a5('0xda9')](_0x49748d[_0x2979a5('0x3e7')],'\x20#')[_0x2979a5('0xda9')](_0x396aae))[_0x2979a5('0x1016')]('codemirror')[_0x2979a5('0xf3b')]():_0x1fa758[_0x2979a5('0xea7')](_0x2979a5('0xdbf'))?tinyMCE[_0x2979a5('0xd12')](_0x396aae)[_0x2979a5('0x642')]({'format':'raw'}):_0x1fa758[_0x2979a5('0xd3d')]();}}}var _0x355305=_0x1fa758[_0x2979a5('0xb0c')](_0x2979a5('0x2c4')),_0xbff3c3=!0x1;void 0x0!==_0x355305&&null!=_0x355305&&void 0x0!==_0x49748d[_0x2979a5('0x7db')][_0x355305]&&null!=_0x49748d['validator'][_0x355305]?_0xbff3c3=_0x49748d['validator'][_0x355305](_0xb48d30):(_0xbff3c3=!_0x49748d['validateAll']||void 0x0!==_0x355305&&null!=_0x355305&&_0x2979a5('0xea1')===_0x355305||_0x49748d['validator'][_0x2979a5('0x2f8')](_0xb48d30),_0x49748d[_0x2979a5('0xcb1')][_0x396aae]=_0xb48d30),_0xbff3c3?(_0x49748d[_0x2979a5('0x21a')](_0x1fa758,null),_0x49748d[_0x2979a5('0xcb1')][_0x396aae]=_0xb48d30):_0x49748d[_0x2979a5('0x320')](_0x1fa758,null);}},_0x2706a3=$('#'[_0x1d53b8('0xda9')](this[_0x1d53b8('0x3e7')],_0x1d53b8('0xa8e')));return _0x2706a3[_0x1d53b8('0x2fa')](function(){_0x51e64f($(this));}),(_0x2706a3=$('#'['concat'](this['formId'],'\x20.uploadInput')))[_0x1d53b8('0x2fa')](function(){_0x51e64f($(this));}),this[_0x1d53b8('0x793')](),this[_0x1d53b8('0x1003')]={},!this[_0x1d53b8('0x60b')];}},{'key':'getFormParameters','value':function(){var _0x51257a=_0x14f84d;return this[_0x51257a('0xcb1')];}},{'key':_0x14f84d('0x2eb'),'value':function(_0x225024){var _0xdbb204=_0x14f84d;function _0x353230(_0x4f769b,_0x2a6ace){var _0x3260b0=_0x5376;return _0x225024[_0x3260b0('0x2be')](this,arguments);}return _0x353230[_0xdbb204('0xb6d')]=function(){var _0x17d7cd=_0xdbb204;return _0x225024[_0x17d7cd('0xb6d')]();},_0x353230;}(function(_0x41ca8f,_0x5e6651){alert(_0x5e6651);})}],_0x35cb81=[{'key':'getValidationRules','value':function(){return _0x3f013c;}}],_0x51c25e&&_0x2369ea(_0x511dfc[_0x14f84d('0xe02')],_0x51c25e),_0x35cb81&&_0x2369ea(_0x511dfc,_0x35cb81),_0x327eda;}();_0x3270d1[_0x183d06('0xf5f')]=_0x4ae005;},{}],0x39:[function(_0x14c7b0,_0x52676b,_0x5c6ff9){var _0x144590=_0x548f48;'use strict';function _0x3e7e3c(_0x3fad29,_0x471336){var _0x28b04e=_0x5376;if(!(_0x3fad29 instanceof _0x471336))throw new TypeError(_0x28b04e('0xf98'));}function _0x2ea5aa(_0x241292,_0x26b257){var _0x48355b=_0x5376;for(var _0x36e00f=0x0;_0x36e00f<_0x26b257[_0x48355b('0x13')];_0x36e00f++){var _0x130e1e=_0x26b257[_0x36e00f];_0x130e1e[_0x48355b('0x3bf')]=_0x130e1e['enumerable']||!0x1,_0x130e1e[_0x48355b('0x749')]=!0x0,_0x48355b('0x30')in _0x130e1e&&(_0x130e1e[_0x48355b('0x820')]=!0x0),Object[_0x48355b('0x9a5')](_0x241292,_0x130e1e[_0x48355b('0x86f')],_0x130e1e);}}Object[_0x144590('0x9a5')](_0x5c6ff9,'__esModule',{'value':!0x0}),_0x5c6ff9[_0x144590('0xf5f')]=void 0x0;var _0x902f74=_0x14c7b0(_0x144590('0x865')),_0x356cc1=function(){var _0x40e77d=_0x144590;function _0x166c97(_0x53392b,_0x5052d3,_0x229a66){var _0x10e454=_0x5376,_0xa41d4b=!(arguments[_0x10e454('0x13')]>0x3&&void 0x0!==arguments[0x3])||arguments[0x3];_0x3e7e3c(this,_0x166c97),this[_0x10e454('0x598')]=_0x53392b,this[_0x10e454('0xc0b')]=_0x5052d3,this['clientBaseUrl']=_0x229a66,this[_0x10e454('0xdd8')]=_0xa41d4b;}var _0x258f96,_0x2ef69c,_0x5da9fd;return _0x258f96=_0x166c97,(_0x2ef69c=[{'key':_0x40e77d('0xd12'),'value':function(_0x5232cd){var _0xe004fc=_0x40e77d;if(this[_0xe004fc('0xdd8')]){var _0x5e3f32=''[_0xe004fc('0xda9')](this[_0xe004fc('0xf2d')],_0xe004fc('0xbec'))[_0xe004fc('0xda9')](this[_0xe004fc('0xc0b')],_0xe004fc('0xba6'))[_0xe004fc('0xda9')](_0x5232cd);return _0x902f74[_0xe004fc('0xd12')](_0x5e3f32);}return _0x902f74['get'](this[_0xe004fc('0x598')]+_0x5232cd,{'headers':{'Authorization':_0xe004fc('0x10cc')[_0xe004fc('0xda9')](this[_0xe004fc('0xc0b')])}});}}])&&_0x2ea5aa(_0x258f96[_0x40e77d('0xe02')],_0x2ef69c),_0x5da9fd&&_0x2ea5aa(_0x258f96,_0x5da9fd),_0x166c97;}();_0x5c6ff9[_0x144590('0xf5f')]=_0x356cc1;},{'axios':0x53}],0x3a:[function(_0xe1280d,_0x58a04f,_0x41ef54){var _0x52dcc4=_0x548f48;'use strict';function _0x52abed(_0x1e3387,_0x26167a){var _0x31d370=_0x5376;if(!(_0x1e3387 instanceof _0x26167a))throw new TypeError(_0x31d370('0xf98'));}function _0x1a1808(_0x3d4b55,_0xab09c1){var _0x69f5b7=_0x5376;for(var _0x30b51b=0x0;_0x30b51b<_0xab09c1['length'];_0x30b51b++){var _0x3601fa=_0xab09c1[_0x30b51b];_0x3601fa['enumerable']=_0x3601fa[_0x69f5b7('0x3bf')]||!0x1,_0x3601fa[_0x69f5b7('0x749')]=!0x0,_0x69f5b7('0x30')in _0x3601fa&&(_0x3601fa[_0x69f5b7('0x820')]=!0x0),Object['defineProperty'](_0x3d4b55,_0x3601fa[_0x69f5b7('0x86f')],_0x3601fa);}}Object[_0x52dcc4('0x9a5')](_0x41ef54,_0x52dcc4('0xce5'),{'value':!0x0}),_0x41ef54[_0x52dcc4('0xf5f')]=void 0x0;var _0x1866fc=_0xe1280d(_0x52dcc4('0x865')),_0x3e8d87=function(){var _0x4d2499=_0x52dcc4;function _0x2e09dd(_0x2344d9){var _0x40d571=_0x5376,_0x4b4227=arguments[_0x40d571('0x13')]>0x1&&void 0x0!==arguments[0x1]?arguments[0x1]:0xa;_0x52abed(this,_0x2e09dd),this[_0x40d571('0xfb2')]=_0x2344d9,this[_0x40d571('0xb89')]=_0x4b4227;}var _0x55fe8e,_0x3014e2,_0x4f951e;return _0x55fe8e=_0x2e09dd,(_0x3014e2=[{'key':_0x4d2499('0xfc0'),'value':function(){var _0x914df=_0x4d2499;this[_0x914df('0xfb2')][_0x914df('0x395')]();}},{'key':_0x4d2499('0xd12'),'value':function(_0x42879f){var _0x450ecd=_0x4d2499,_0x4b1029=this,_0x58355b=_0x42879f[_0x450ecd('0xbc8')],_0x549e5f=_0x42879f[_0x450ecd('0x381')],_0x40aed5=_0x42879f[_0x450ecd('0x91d')],_0x14af03=_0x42879f[_0x450ecd('0xd5d')],_0x424327=_0x42879f[_0x450ecd('0xc6')],_0x123015=_0x42879f[_0x450ecd('0xcb7')],_0x1e8494=_0x123015||this['pageSize'],_0xbe7f53=(_0x58355b-0x1)*_0x1e8494,_0x2f31be=this[_0x450ecd('0xa2e')](this[_0x450ecd('0xfb2')][_0x450ecd('0x44a')](),_0x549e5f,_0x424327),_0xd571a9=''[_0x450ecd('0xda9')](_0x2f31be,_0x450ecd('0xf7b'))[_0x450ecd('0xda9')](_0xbe7f53,_0x450ecd('0x3d2'))[_0x450ecd('0xda9')](_0x1e8494);return _0xd571a9=this[_0x450ecd('0xb7a')](this[_0x450ecd('0xfb2')][_0x450ecd('0x44a')](),_0xd571a9,_0x40aed5,_0x14af03),_0xd571a9=''[_0x450ecd('0xda9')](_0xd571a9,_0x450ecd('0x1b8')),_0x1866fc[_0x450ecd('0xcce')](_0xd571a9,{})['then'](function(_0x3719c8){var _0x5f2d3e=_0x450ecd,_0x5674c6=_0x4b1029[_0x5f2d3e('0x80')](_0x58355b,_0x549e5f,_0x40aed5,_0x14af03,_0x424327,_0x123015),_0x4fd30a={'items':_0x3719c8['data'][_0x5f2d3e('0x2d3')],'total':_0x3719c8[_0x5f2d3e('0x1016')][_0x5f2d3e('0x399')]};return _0x4b1029[_0x5f2d3e('0xfb2')][_0x5f2d3e('0x3ad')]&&window[_0x5f2d3e('0x8f')][_0x5f2d3e('0x763')](_0x5674c6,JSON['stringify'](_0x4fd30a)),_0x4fd30a;});}},{'key':_0x4d2499('0xf7d'),'value':function(_0x47cadc){var _0xae89c7=_0x4d2499,_0x2d7154=_0x47cadc[_0xae89c7('0xbc8')],_0x46d325=_0x47cadc[_0xae89c7('0x381')],_0x36f5f0=_0x47cadc[_0xae89c7('0x91d')],_0x5b0026=_0x47cadc[_0xae89c7('0xd5d')],_0x2dbd94=_0x47cadc[_0xae89c7('0xc6')],_0x2c94b2=_0x47cadc[_0xae89c7('0xcb7')],_0x66450e=this[_0xae89c7('0x80')](_0x2d7154,_0x46d325,_0x36f5f0,_0x5b0026,_0x2dbd94,_0x2c94b2),_0x2af769=window['localStorage'][_0xae89c7('0xf39')](_0x66450e);return _0x2af769?JSON['parse'](_0x2af769):null;}},{'key':'clearCachedResponse','value':function(_0x4f74da){var _0x4cbac8=_0x4d2499,_0x1979d7=_0x4f74da[_0x4cbac8('0xbc8')],_0x5c6069=_0x4f74da[_0x4cbac8('0x381')],_0x49c7e4=_0x4f74da['sortField'],_0x22fb6f=_0x4f74da[_0x4cbac8('0xd5d')],_0x5b80a2=_0x4f74da['filters'],_0x5f3645=_0x4f74da[_0x4cbac8('0xcb7')],_0x1c4a41=this[_0x4cbac8('0x80')](_0x1979d7,_0x5c6069,_0x49c7e4,_0x22fb6f,_0x5b80a2,_0x5f3645);window[_0x4cbac8('0x8f')][_0x4cbac8('0x763')](_0x1c4a41,null);}},{'key':_0x4d2499('0x80'),'value':function(_0x1dfa0e,_0x21ebeb,_0x5e47e5,_0x3922be,_0x331ebf,_0x4df869){var _0xda0d5b=_0x4d2499;return''['concat'](this[_0xda0d5b('0xfb2')][_0xda0d5b('0x2ac')],'|')['concat'](_0x1dfa0e,'|')[_0xda0d5b('0xda9')](_0x21ebeb,'|')['concat'](_0x5e47e5,'|')[_0xda0d5b('0xda9')](_0x3922be,'|')[_0xda0d5b('0xda9')](_0x331ebf,'|')[_0xda0d5b('0xda9')](_0x4df869);}},{'key':_0x4d2499('0xb7a'),'value':function(_0x4a1f6a,_0x477919,_0x3c3838,_0x6460e4){var _0x4d084b=_0x4d2499,_0x32ce8a='';return _0x3c3838?(_0x477919=''['concat'](_0x477919,'&sorting=1'),_0x477919=''['concat'](_0x477919,_0x4d084b('0x554'))[_0x4d084b('0xda9')](_0x4a1f6a[_0x4d084b('0xf00')](_0x3c3838)),_0x477919=''['concat'](_0x477919,'&sSortDir_0=')[_0x4d084b('0xda9')](_0x4d084b('0xcab')===_0x6460e4?_0x4d084b('0x794'):_0x4d084b('0x1129'))):null!==this[_0x4d084b('0xfb2')][_0x4d084b('0xfa0')]()&&(_0x32ce8a=this[_0x4d084b('0xfb2')]['getOrderBy'](),_0x477919=''['concat'](_0x477919,_0x4d084b('0xf60'))['concat'](_0x32ce8a)),_0x477919;}},{'key':_0x4d2499('0xa2e'),'value':function(_0x468ddc,_0x589f6b,_0x59161f){var _0x427e5f=_0x4d2499,_0xa96bfd=JSON[_0x427e5f('0xf0b')](this['adapter'][_0x427e5f('0x528')]()),_0x5b0f63=JSON[_0x427e5f('0xf0b')](_0x468ddc),_0x4c4c1b='';null!==this[_0x427e5f('0xfb2')][_0x427e5f('0x95')]()&&(_0x4c4c1b=JSON[_0x427e5f('0xf0b')](this['adapter'][_0x427e5f('0x95')]()));var _0x10d4da=this[_0x427e5f('0xfb2')][_0x427e5f('0x84b')][_0x427e5f('0xd06')](_0x427e5f('0x114e'),_0x427e5f('0x8a0'));return _0x10d4da=''[_0x427e5f('0xda9')](_0x10d4da,_0x427e5f('0x2e5'))['concat'](this[_0x427e5f('0xfb2')][_0x427e5f('0x2ac')]),_0x10d4da=''[_0x427e5f('0xda9')](_0x10d4da,_0x427e5f('0x1c9'))[_0x427e5f('0xda9')](_0xa96bfd),_0x10d4da=''[_0x427e5f('0xda9')](_0x10d4da,_0x427e5f('0x1008'))[_0x427e5f('0xda9')](_0x5b0f63),_0x10d4da=''[_0x427e5f('0xda9')](_0x10d4da,_0x427e5f('0x8e0'))[_0x427e5f('0xda9')](_0x4c4c1b),_0x589f6b&&''!==_0x589f6b['trim']()&&(_0x10d4da+=_0x427e5f('0x49f')['concat'](_0x589f6b)),this[_0x427e5f('0xfb2')][_0x427e5f('0x816')]()&&(_0x10d4da=''[_0x427e5f('0xda9')](_0x10d4da,_0x427e5f('0x1cc'))),this[_0x427e5f('0xfb2')]['remoteTableSkipProfileRestriction']()&&(_0x10d4da=''[_0x427e5f('0xda9')](_0x10d4da,_0x427e5f('0xe9a'))),_0x10d4da;}}])&&_0x1a1808(_0x55fe8e['prototype'],_0x3014e2),_0x4f951e&&_0x1a1808(_0x55fe8e,_0x4f951e),_0x2e09dd;}();_0x41ef54['default']=_0x3e8d87;},{'axios':0x53}],0x3b:[function(_0x5cfd8a,_0x227a0,_0x457b2d){var _0x4c7136=_0x548f48;'use strict';var _0x3780aa;function _0x160195(_0x4eabc0){var _0x3a0b7e=_0x5376;return(_0x160195='function'==typeof Symbol&&'symbol'==typeof Symbol[_0x3a0b7e('0x57b')]?function(_0x4072a0){return typeof _0x4072a0;}:function(_0x127d82){var _0x1e6ea3=_0x3a0b7e;return _0x127d82&&_0x1e6ea3('0x106c')==typeof Symbol&&_0x127d82[_0x1e6ea3('0xad1')]===Symbol&&_0x127d82!==Symbol[_0x1e6ea3('0xe02')]?_0x1e6ea3('0x43c'):typeof _0x127d82;})(_0x4eabc0);}function _0x1ba2d3(_0x177052,_0x473152){var _0x1c4816=_0x5376;for(var _0x4d1bb5=0x0;_0x4d1bb5<_0x473152[_0x1c4816('0x13')];_0x4d1bb5++){var _0x411ba7=_0x473152[_0x4d1bb5];_0x411ba7[_0x1c4816('0x3bf')]=_0x411ba7[_0x1c4816('0x3bf')]||!0x1,_0x411ba7['configurable']=!0x0,'value'in _0x411ba7&&(_0x411ba7['writable']=!0x0),Object[_0x1c4816('0x9a5')](_0x177052,_0x411ba7[_0x1c4816('0x86f')],_0x411ba7);}}function _0x1f4f84(_0x44f675,_0x47eaf5){var _0x58ec65=_0x5376;return!_0x47eaf5||_0x58ec65('0xb3f')!==_0x160195(_0x47eaf5)&&_0x58ec65('0x106c')!=typeof _0x47eaf5?function(_0x3b65c8){var _0x535b40=_0x58ec65;if(void 0x0===_0x3b65c8)throw new ReferenceError(_0x535b40('0xe0d'));return _0x3b65c8;}(_0x44f675):_0x47eaf5;}function _0xedaf70(){var _0x1b8ca3=_0x5376;if('undefined'==typeof Reflect||!Reflect[_0x1b8ca3('0x353')])return!0x1;if(Reflect[_0x1b8ca3('0x353')][_0x1b8ca3('0xb21')])return!0x1;if(_0x1b8ca3('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x1b8ca3('0xe02')][_0x1b8ca3('0xb6d')][_0x1b8ca3('0xfd2')](Reflect[_0x1b8ca3('0x353')](Date,[],function(){})),!0x0;}catch(_0x4ed413){return!0x1;}}function _0x1cab23(_0x2325ae){var _0x1c9451=_0x5376;return(_0x1cab23=Object[_0x1c9451('0x3df')]?Object[_0x1c9451('0x2d9')]:function(_0x1648b9){var _0x3d3208=_0x1c9451;return _0x1648b9[_0x3d3208('0x112c')]||Object['getPrototypeOf'](_0x1648b9);})(_0x2325ae);}function _0x17d5d1(_0x4a541b,_0x12065f){var _0x305571=_0x5376;return(_0x17d5d1=Object[_0x305571('0x3df')]||function(_0x4b38c4,_0x48b06e){var _0x11037c=_0x305571;return _0x4b38c4[_0x11037c('0x112c')]=_0x48b06e,_0x4b38c4;})(_0x4a541b,_0x12065f);}Object['defineProperty'](_0x457b2d,_0x4c7136('0xce5'),{'value':!0x0}),_0x457b2d[_0x4c7136('0xf5f')]=void 0x0;var _0x31b95b=function(_0x3b5db4){var _0x318e3=_0x4c7136;!function(_0x202d3b,_0x3cf344){var _0xa6d383=_0x5376;if(_0xa6d383('0x106c')!=typeof _0x3cf344&&null!==_0x3cf344)throw new TypeError(_0xa6d383('0x5a0'));_0x202d3b[_0xa6d383('0xe02')]=Object[_0xa6d383('0xbd0')](_0x3cf344&&_0x3cf344[_0xa6d383('0xe02')],{'constructor':{'value':_0x202d3b,'writable':!0x0,'configurable':!0x0}}),_0x3cf344&&_0x17d5d1(_0x202d3b,_0x3cf344);}(_0x214c7f,_0x3b5db4);var _0x4cae22,_0x43e918,_0x3540b2,_0x9c8d82,_0x1bf3fe=(_0x4cae22=_0x214c7f,function(){var _0x4738a9=_0x5376,_0x4420a2,_0x4a1e17=_0x1cab23(_0x4cae22);if(_0xedaf70()){var _0x562391=_0x1cab23(this)['constructor'];_0x4420a2=Reflect[_0x4738a9('0x353')](_0x4a1e17,arguments,_0x562391);}else _0x4420a2=_0x4a1e17[_0x4738a9('0x2be')](this,arguments);return _0x1f4f84(this,_0x4420a2);});function _0x214c7f(_0x4b0c05,_0x19af11,_0x341fe0,_0x4acfc1){var _0x1a0494=_0x5376;return function(_0x49b1b4,_0x478495){var _0x18d9a5=_0x5376;if(!(_0x49b1b4 instanceof _0x478495))throw new TypeError(_0x18d9a5('0xf98'));}(this,_0x214c7f),_0x1bf3fe[_0x1a0494('0xfd2')](this,_0x4b0c05,_0x19af11,_0x341fe0,_0x4acfc1);}return _0x43e918=_0x214c7f,(_0x3540b2=[{'key':_0x318e3('0x44a'),'value':function(){return['id','name'];}},{'key':'getHeaders','value':function(){var _0x4bc7dc=_0x318e3;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x4bc7dc('0xdde')}];}},{'key':_0x318e3('0x10d7'),'value':function(){var _0x1e8daa=_0x318e3;return[['id',{'label':'ID','type':_0x1e8daa('0x10f4')}],[_0x1e8daa('0x3ea'),{'label':'Name','type':'text','validation':''}]];}}])&&_0x1ba2d3(_0x43e918[_0x318e3('0xe02')],_0x3540b2),_0x9c8d82&&_0x1ba2d3(_0x43e918,_0x9c8d82),_0x214c7f;}(((_0x3780aa=_0x5cfd8a(_0x4c7136('0x8ac')))&&_0x3780aa[_0x4c7136('0xce5')]?_0x3780aa:{'default':_0x3780aa})[_0x4c7136('0xf5f')]);_0x457b2d[_0x4c7136('0xf5f')]=_0x31b95b;},{'./AdapterBase':0x34}],0x3c:[function(_0xac361c,_0x2e5c77,_0x216e50){var _0xafc445=_0x548f48;'use strict';var _0x55f1d5;function _0x3b50d6(_0x1be6cf){var _0x1b04e0=_0x5376;return(_0x3b50d6=_0x1b04e0('0x106c')==typeof Symbol&&_0x1b04e0('0x43c')==typeof Symbol['iterator']?function(_0x3d431b){return typeof _0x3d431b;}:function(_0x242eb2){var _0x5c9a5a=_0x1b04e0;return _0x242eb2&&'function'==typeof Symbol&&_0x242eb2[_0x5c9a5a('0xad1')]===Symbol&&_0x242eb2!==Symbol['prototype']?'symbol':typeof _0x242eb2;})(_0x1be6cf);}function _0x11d1ad(_0x57ee80,_0x1fb71a){var _0x385df1=_0x5376;if(!(_0x57ee80 instanceof _0x1fb71a))throw new TypeError(_0x385df1('0xf98'));}function _0x5f445d(_0x57a7bd,_0x54a20c){var _0x4899a=_0x5376;for(var _0x566abc=0x0;_0x566abc<_0x54a20c['length'];_0x566abc++){var _0x210816=_0x54a20c[_0x566abc];_0x210816[_0x4899a('0x3bf')]=_0x210816[_0x4899a('0x3bf')]||!0x1,_0x210816['configurable']=!0x0,_0x4899a('0x30')in _0x210816&&(_0x210816['writable']=!0x0),Object[_0x4899a('0x9a5')](_0x57a7bd,_0x210816[_0x4899a('0x86f')],_0x210816);}}function _0x3d38bb(_0x3f45a1,_0x4b1a1e){var _0x58026c=_0x5376;return!_0x4b1a1e||'object'!==_0x3b50d6(_0x4b1a1e)&&_0x58026c('0x106c')!=typeof _0x4b1a1e?function(_0x8f258d){var _0x3b5f42=_0x58026c;if(void 0x0===_0x8f258d)throw new ReferenceError(_0x3b5f42('0xe0d'));return _0x8f258d;}(_0x3f45a1):_0x4b1a1e;}function _0x17d16a(){var _0x2d5009=_0x5376;if(_0x2d5009('0x449')==typeof Reflect||!Reflect[_0x2d5009('0x353')])return!0x1;if(Reflect[_0x2d5009('0x353')][_0x2d5009('0xb21')])return!0x1;if(_0x2d5009('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype']['toString'][_0x2d5009('0xfd2')](Reflect[_0x2d5009('0x353')](Date,[],function(){})),!0x0;}catch(_0x4caa7b){return!0x1;}}function _0xbcc7a1(_0x493da1){var _0x866ab=_0x5376;return(_0xbcc7a1=Object[_0x866ab('0x3df')]?Object[_0x866ab('0x2d9')]:function(_0x4193d6){var _0x260afa=_0x866ab;return _0x4193d6[_0x260afa('0x112c')]||Object[_0x260afa('0x2d9')](_0x4193d6);})(_0x493da1);}function _0x2ac826(_0x3ff351,_0x5ea98e){var _0x33217b=_0x5376;return(_0x2ac826=Object[_0x33217b('0x3df')]||function(_0x37cf7e,_0x58411c){var _0x146dbc=_0x33217b;return _0x37cf7e[_0x146dbc('0x112c')]=_0x58411c,_0x37cf7e;})(_0x3ff351,_0x5ea98e);}Object[_0xafc445('0x9a5')](_0x216e50,_0xafc445('0xce5'),{'value':!0x0}),_0x216e50['default']=void 0x0;var _0x227dd3=function(_0x305849){var _0x21363a=_0xafc445;!function(_0x222285,_0x4b619d){var _0x1b782b=_0x5376;if(_0x1b782b('0x106c')!=typeof _0x4b619d&&null!==_0x4b619d)throw new TypeError(_0x1b782b('0x5a0'));_0x222285[_0x1b782b('0xe02')]=Object[_0x1b782b('0xbd0')](_0x4b619d&&_0x4b619d[_0x1b782b('0xe02')],{'constructor':{'value':_0x222285,'writable':!0x0,'configurable':!0x0}}),_0x4b619d&&_0x2ac826(_0x222285,_0x4b619d);}(_0x47c9bc,_0x305849);var _0x1a534b,_0xb5994c,_0x37928e,_0x3ef566,_0x2a7ef1=(_0x1a534b=_0x47c9bc,function(){var _0x26d3b6=_0x5376,_0x4c8c50,_0x594c67=_0xbcc7a1(_0x1a534b);if(_0x17d16a()){var _0x210aad=_0xbcc7a1(this)[_0x26d3b6('0xad1')];_0x4c8c50=Reflect['construct'](_0x594c67,arguments,_0x210aad);}else _0x4c8c50=_0x594c67[_0x26d3b6('0x2be')](this,arguments);return _0x3d38bb(this,_0x4c8c50);});function _0x47c9bc(){var _0x48c625=_0x5376;return _0x11d1ad(this,_0x47c9bc),_0x2a7ef1[_0x48c625('0x2be')](this,arguments);}return _0xb5994c=_0x47c9bc,(_0x37928e=[{'key':_0x21363a('0x6fa'),'value':function(_0x2919e2){var _0x374a70=_0x21363a,_0x9e514d={'id':_0x2919e2},_0x471d60=JSON['stringify'](_0x9e514d),_0x545c8a=[];_0x545c8a[_0x374a70('0x88d')]=[],_0x545c8a[_0x374a70('0x691')]=_0x374a70('0xfdb'),_0x545c8a['callBackFail']='getLogsFailCallBack',this[_0x374a70('0xd99')](_0x374a70('0x6fa'),_0x374a70('0x8be')[_0x374a70('0xda9')](this[_0x374a70('0x755')]),_0x471d60,_0x545c8a);}},{'key':_0x21363a('0xfdb'),'value':function(_0x31d686){var _0x2b141=_0x21363a;for(var _0x48d3e4='Notes_days_\x20',_0x226385=_0x31d686[_0x2b141('0x1016')],_0x3b80d9='',_0x390014='',_0x2d06e3=0x0;_0x2d06e3<_0x226385[_0x2b141('0x13')];_0x2d06e3++){var _0x58f25e=_0x2b141('0x2a4');_0x390014+=_0x58f25e=(_0x58f25e=(_0x58f25e=_0x58f25e[_0x2b141('0xd06')](/_date_/g,_0x226385[_0x2d06e3]['time']))[_0x2b141('0xd06')](/_status_/g,''[_0x2b141('0xda9')](_0x226385[_0x2d06e3][_0x2b141('0x31f')],'\x20->\x20')[_0x2b141('0xda9')](_0x226385[_0x2d06e3]['status_to'])))[_0x2b141('0xd06')](/_note_/g,_0x226385[_0x2d06e3][_0x2b141('0x50a')]);}''!==_0x390014&&(_0x3b80d9+=_0x48d3e4=_0x48d3e4[_0x2b141('0xd06')]('_days_',_0x390014)),this[_0x2b141('0xaa4')](_0x2b141('0x571'),_0x3b80d9),timeUtils[_0x2b141('0x9d')]($(_0x2b141('0x45e')));}},{'key':'getLogsFailCallBack','value':function(_0x5c27e4){var _0x1590b0=_0x21363a;this[_0x1590b0('0xaa4')](_0x1590b0('0x1bb'),'Error\x20occured\x20while\x20getting\x20data');}}])&&_0x5f445d(_0xb5994c[_0x21363a('0xe02')],_0x37928e),_0x3ef566&&_0x5f445d(_0xb5994c,_0x3ef566),_0x47c9bc;}(((_0x55f1d5=_0xac361c(_0xafc445('0x8ac')))&&_0x55f1d5[_0xafc445('0xce5')]?_0x55f1d5:{'default':_0x55f1d5})[_0xafc445('0xf5f')]);_0x216e50[_0xafc445('0xf5f')]=_0x227dd3;},{'./AdapterBase':0x34}],0x3d:[function(_0x8ea5de,_0x8185b1,_0x35eef1){var _0x3f33d1=_0x548f48;'use strict';function _0x571b13(_0x473ebc,_0x26af0c){var _0x558b0b=_0x5376;for(var _0x294b29=0x0;_0x294b29<_0x26af0c[_0x558b0b('0x13')];_0x294b29++){var _0x4e88d1=_0x26af0c[_0x294b29];_0x4e88d1[_0x558b0b('0x3bf')]=_0x4e88d1[_0x558b0b('0x3bf')]||!0x1,_0x4e88d1[_0x558b0b('0x749')]=!0x0,_0x558b0b('0x30')in _0x4e88d1&&(_0x4e88d1[_0x558b0b('0x820')]=!0x0),Object[_0x558b0b('0x9a5')](_0x473ebc,_0x4e88d1['key'],_0x4e88d1);}}Object[_0x3f33d1('0x9a5')](_0x35eef1,'__esModule',{'value':!0x0}),_0x35eef1[_0x3f33d1('0xf5f')]=void 0x0;var _0x27cf87=_0x8ea5de(_0x3f33d1('0x865')),_0x4f461f=function(){var _0x53f0b7=_0x3f33d1;function _0x4c4d74(_0xa94831){var _0x3bfb73=_0x5376;!function(_0x418093,_0x32c6fe){var _0x512563=_0x5376;if(!(_0x418093 instanceof _0x32c6fe))throw new TypeError(_0x512563('0xf98'));}(this,_0x4c4d74),this[_0x3bfb73('0xfb2')]=_0xa94831,this[_0x3bfb73('0xf20')]=this['adapter'][_0x3bfb73('0xf20')];}var _0x4560a2,_0x2607df,_0x2a88c8;return _0x4560a2=_0x4c4d74,(_0x2607df=[{'key':'fetchMasterData','value':function(_0x11906f){var _0x11b449=_0x5376,_0x3c090d=this,_0xe6c2a2='',_0x139362='';null!=_0x11906f[0x3]&&(_0xe6c2a2=_0x11906f[0x3]),null!=_0x11906f[0x4]&&(_0x139362=JSON[_0x11b449('0xf0b')](_0x11906f[0x4]));var _0x418ed7=this[_0x11b449('0xf20')]['getKey'](this['adapter'][_0x11b449('0x84b')],{'t':_0x11906f[0x0],'key':_0x11906f[0x1],'value':_0x11906f[0x2],'method':_0xe6c2a2,'methodParams':_0x139362,'a':_0x11b449('0x4f4')}),_0x3bd893=this[_0x11b449('0xf20')][_0x11b449('0x5c0')](_0x418ed7);if(null!=_0x3bd893&&_0x11b449('0x7d')===_0x3bd893[_0x11b449('0x75e')])return new Promise(function(_0x22c66a,_0x2471f8){var _0x2009ea=_0x11b449;return _0x22c66a(_0x3bd893[_0x2009ea('0x1016')]);});var _0x5304e1={'t':_0x11906f[0x0],'key':_0x11906f[0x1],'value':_0x11906f[0x2],'method':_0xe6c2a2,'methodParams':_0x139362,'a':_0x11b449('0x4f4')},_0x106523=''[_0x11b449('0xda9')](this[_0x11b449('0xfb2')][_0x11b449('0x84b')],_0x11b449('0x5f7'));for(var _0x5818b7 in _0x5304e1)_0x106523=''[_0x11b449('0xda9')](_0x106523,'&')[_0x11b449('0xda9')](_0x5818b7,'=')['concat'](encodeURIComponent(_0x5304e1[_0x5818b7]));return _0x27cf87[_0x11b449('0xcce')](_0x106523,{})[_0x11b449('0x10c6')](function(_0x6414b3){var _0xf806a6=_0x11b449;if(_0xf806a6('0x7d')!==_0x6414b3['data'][_0xf806a6('0x75e')])throw Error(_0xf806a6('0x3bc')[_0xf806a6('0xda9')](_0x418ed7,_0xf806a6('0xa18')));return _0x3c090d['requestCache'][_0xf806a6('0x86a')](_0x418ed7,_0x6414b3['data']),_0x6414b3[_0xf806a6('0x1016')][_0xf806a6('0x1016')];});}},{'key':_0x53f0b7('0x49d'),'value':function(){var _0x383d95=_0x53f0b7;for(var _0x3ff421=this,_0x1368d6=this[_0x383d95('0xfb2')]['getRemoteSourceFields'](),_0x37f03a=[],_0x44c089=0x0;_0x44c089<_0x1368d6[_0x383d95('0x13')];_0x44c089++){var _0x159e67=_0x1368d6[_0x44c089];void 0x0!==_0x159e67[0x1][_0x383d95('0xb91')]&&null!=_0x159e67[0x1][_0x383d95('0xb91')]&&function(){var _0x492b08=_0x383d95,_0x545b4e=''[_0x492b08('0xda9')](_0x159e67[0x1][_0x492b08('0xb91')][0x0],'_')[_0x492b08('0xda9')](_0x159e67[0x1][_0x492b08('0xb91')][0x1],'_')['concat'](_0x159e67[0x1]['remote-source'][0x2]);0x4===_0x159e67[0x1][_0x492b08('0xb91')][_0x492b08('0x13')]&&(_0x545b4e=''['concat'](_0x545b4e,'_')[_0x492b08('0xda9')](_0x159e67[0x1]['remote-source'][0x3]));var _0x32a633=_0x3ff421[_0x492b08('0x10c4')](_0x159e67[0x1][_0x492b08('0xb91')])[_0x492b08('0x10c6')](function(_0x56866a){var _0xbe36bc=_0x492b08;_0x3ff421[_0xbe36bc('0xfb2')]['fieldMasterData'][_0x545b4e]=_0x56866a;});_0x37f03a['push'](_0x32a633);}();}return Promise[_0x383d95('0x6bc')](_0x37f03a);}}])&&_0x571b13(_0x4560a2[_0x53f0b7('0xe02')],_0x2607df),_0x2a88c8&&_0x571b13(_0x4560a2,_0x2a88c8),_0x4c4d74;}();_0x35eef1[_0x3f33d1('0xf5f')]=_0x4f461f;},{'axios':0x53}],0x3e:[function(_0x265578,_0x25134d,_0x5df6be){var _0x16b605=_0x548f48;'use strict';Object[_0x16b605('0x9a5')](_0x5df6be,_0x16b605('0xce5'),{'value':!0x0}),_0x5df6be[_0x16b605('0xf5f')]=void 0x0;var _0x30fb1d,_0x28c13b=(_0x30fb1d=_0x265578(_0x16b605('0x967')))&&_0x30fb1d['__esModule']?_0x30fb1d:{'default':_0x30fb1d};function _0x6a14c2(_0x1161db,_0x5bb7ae){var _0x58c1af=_0x16b605;for(var _0x76f2d5=0x0;_0x76f2d5<_0x5bb7ae[_0x58c1af('0x13')];_0x76f2d5++){var _0x357ce9=_0x5bb7ae[_0x76f2d5];_0x357ce9[_0x58c1af('0x3bf')]=_0x357ce9[_0x58c1af('0x3bf')]||!0x1,_0x357ce9[_0x58c1af('0x749')]=!0x0,_0x58c1af('0x30')in _0x357ce9&&(_0x357ce9['writable']=!0x0),Object[_0x58c1af('0x9a5')](_0x1161db,_0x357ce9[_0x58c1af('0x86f')],_0x357ce9);}}var _0x9f71ce=function(){var _0x57c234=_0x16b605;function _0x4b0696(){var _0x44b5c9=_0x5376;!function(_0x5e55e4,_0x1f73a4){var _0x18621a=_0x5376;if(!(_0x5e55e4 instanceof _0x1f73a4))throw new TypeError(_0x18621a('0xf98'));}(this,_0x4b0696),this[_0x44b5c9('0xaaa')]={},this['createRemoteTable']=!0x1,this['instanceId']='None',this['ga']=[],this['showAddNew']=!0x0,this['showEdit']=!0x0,this[_0x44b5c9('0xab3')]=!0x0,this[_0x44b5c9('0x5ba')]=!0x0,this[_0x44b5c9('0xb4f')]=!0x0,this[_0x44b5c9('0xb09')]=!0x1,this[_0x44b5c9('0x322')]=!0x1,this[_0x44b5c9('0xa70')]='',this[_0x44b5c9('0x252')]=0x0,this[_0x44b5c9('0xec0')]={},this[_0x44b5c9('0x86b')]={},this[_0x44b5c9('0x105b')]=[],this[_0x44b5c9('0x768')]=!0x1,this['fieldTemplates']=null,this[_0x44b5c9('0x563')]=null,this[_0x44b5c9('0x59a')]=null,this[_0x44b5c9('0xd05')]=null,this['fieldMasterData']={},this[_0x44b5c9('0x532')]={},this[_0x44b5c9('0x417')]=null,this[_0x44b5c9('0x6ac')]=null,this[_0x44b5c9('0x9b6')]=null,this[_0x44b5c9('0x31')]=null,this[_0x44b5c9('0x34b')]=null,this[_0x44b5c9('0x726')]=null,this['permissions']={},this[_0x44b5c9('0x598')]=null,this[_0x44b5c9('0x294')]=this;}var _0x7ac53c,_0x32cd16,_0x2c6e58;return _0x7ac53c=_0x4b0696,(_0x32cd16=[{'key':_0x57c234('0xeb9'),'value':function(_0x53a6cd,_0xc700ba,_0x5278e0,_0x2e73cc){}},{'key':'initForm','value':function(){}},{'key':'setObjectTypeName','value':function(_0x37a324){var _0xff650a=_0x57c234;this[_0xff650a('0x950')]=_0x37a324;}},{'key':_0x57c234('0xc4'),'value':function(_0x57ee4b){var _0x398fdf=_0x57c234;this[_0x398fdf('0x145')]=_0x57ee4b;}},{'key':_0x57c234('0x1029'),'value':function(_0x5c4784){var _0x511e86=_0x57c234;this[_0x511e86('0xca5')]=_0x5c4784;}},{'key':'sortingStarted','value':function(_0x425de9){var _0x17e8fc=_0x57c234;this[_0x17e8fc('0x252')]=_0x425de9;}},{'key':_0x57c234('0xaa'),'value':function(_0xf19e2c){var _0x4d9fbc=_0x57c234;return void 0x0===this['permissions'][_0xf19e2c]||null==this['permissions'][_0xf19e2c]||_0x4d9fbc('0x1041')===this[_0x4d9fbc('0xca5')][_0xf19e2c]?_0x4d9fbc('0x1041'):this['permissions'][_0xf19e2c];}},{'key':_0x57c234('0x1146'),'value':function(_0x189ecf){var _0x66014d=_0x57c234;this[_0x66014d('0x598')]=_0x189ecf;}},{'key':_0x57c234('0xb52'),'value':function(_0x5258de){var _0x2b587e=_0x57c234;this[_0x2b587e('0x34b')]=_0x5258de;}},{'key':_0x57c234('0xa62'),'value':function(){var _0x45e2b3=_0x57c234;return this[_0x45e2b3('0x34b')];}},{'key':'setInstanceId','value':function(_0x152a0c){var _0x3a86be=_0x57c234;this[_0x3a86be('0xc9a')]=_0x152a0c;}},{'key':'setCSRFRequired','value':function(_0x2353d5){var _0x29b44f=_0x57c234;this[_0x29b44f('0x768')]=_0x2353d5;}},{'key':'scrollToTop','value':function(){var _0x1318c0=_0x57c234;$(_0x1318c0('0x658'))[_0x1318c0('0x2a2')]({'scrollTop':0x0},_0x1318c0('0xa3e'));}},{'key':'scrollToBottom','value':function(){var _0x69f725=_0x57c234;$('html,\x20body')['animate']({'scrollTop':$(document)[_0x69f725('0x27b')]()},'slow');}},{'key':_0x57c234('0x1091'),'value':function(_0x22c815){var _0x3a923b=_0x57c234;$(window)[_0x3a923b('0x27b')]()<=_0x22c815['offset']()['top']&&$(_0x3a923b('0x658'))[_0x3a923b('0x2a2')]({'scrollTop':_0x22c815[_0x3a923b('0x830')]()[_0x3a923b('0x5b')]},_0x3a923b('0xc23'));}},{'key':_0x57c234('0xe4f'),'value':function(_0x468435){var _0x305731=_0x57c234;$(window)[_0x305731('0x27b')]()<=_0x468435[_0x305731('0x830')]()[_0x305731('0x5b')]+_0x468435[_0x305731('0x27b')]()&&$(_0x305731('0x658'))[_0x305731('0x2a2')]({'scrollTop':_0x468435[_0x305731('0x830')]()[_0x305731('0x5b')]+_0x468435[_0x305731('0x27b')]()},_0x305731('0xc23'));}},{'key':_0x57c234('0xfcc'),'value':function(_0x367332){var _0x26c5bd=_0x57c234;this[_0x26c5bd('0x86b')]=_0x367332[_0x26c5bd('0x466')][''];}},{'key':_0x57c234('0x948'),'value':function(_0x2e5745){var _0x5441e4=_0x57c234;this[_0x5441e4('0x86b')]=_0x2e5745;}},{'key':'gt','value':function(_0x4606e9){var _0x1839bb=_0x57c234;return void 0x0===this[_0x1839bb('0x86b')][_0x4606e9]||null===this[_0x1839bb('0x86b')][_0x4606e9]?(console[_0x1839bb('0x455')](_0x1839bb('0x32')+_0x4606e9),_0x4606e9):this[_0x1839bb('0x86b')][_0x4606e9][0x0];}},{'key':_0x57c234('0x98c'),'value':function(_0x22c288){var _0x3a26da=_0x57c234,_0x2fae5f,_0x4c93b6=localStorage['getItem'](_0x3a26da('0xe3c'));if(void 0x0===_0x4c93b6)_0x2fae5f={};else try{_0x2fae5f=JSON['parse'](_0x4c93b6);}catch(_0x1bce27){_0x2fae5f={};}void 0x0===this['translations'][_0x22c288]&&(_0x2fae5f[_0x22c288]=_0x22c288,localStorage[_0x3a26da('0x763')]('terms',JSON[_0x3a26da('0xf0b')](_0x2fae5f)));}},{'key':_0x57c234('0xe68'),'value':function(){return!0x0;}},{'key':_0x57c234('0x1065'),'value':function(_0xb2d00f,_0x3b1be1,_0x419b35){var _0xcad88b=_0x57c234;try{void 0x0===_0x3b1be1||null==_0x3b1be1?this['ga'][_0xcad88b('0x91b')]([_0xcad88b('0x1094'),this[_0xcad88b('0xc9a')],_0xb2d00f]):void 0x0===_0x419b35||null==_0x419b35?this['ga'][_0xcad88b('0x91b')]([_0xcad88b('0x1094'),this[_0xcad88b('0xc9a')],_0xb2d00f,_0x3b1be1]):this['ga'][_0xcad88b('0x91b')]([_0xcad88b('0x1094'),this[_0xcad88b('0xc9a')],_0xb2d00f,_0x3b1be1,_0x419b35]);}catch(_0x56e2e7){}}},{'key':_0x57c234('0x1c5'),'value':function(_0x4123d9){this['currentProfile']=_0x4123d9;}},{'key':_0x57c234('0x7e6'),'value':function(){return this['currentProfile'];}},{'key':'initFieldMasterData','value':function(_0x3c44a4,_0x15ee91,_0x401398){var _0x46135c=_0x57c234;this['fieldMasterData']={},this[_0x46135c('0x532')]={},this[_0x46135c('0x417')]=_0x15ee91,this[_0x46135c('0x6a3')]=_0x401398;for(var _0x5a8699=this['getRemoteSourceFields'](),_0x4c28e6=0x0;_0x4c28e6<_0x5a8699[_0x46135c('0x13')];_0x4c28e6++){var _0x2dedd9=_0x5a8699[_0x4c28e6];if(void 0x0!==_0x2dedd9[0x1][_0x46135c('0xb91')]&&null!=_0x2dedd9[0x1][_0x46135c('0xb91')]){var _0x460b0d=this['getRemoteSourceKey'](_0x2dedd9);this['fieldMasterDataKeys'][_0x460b0d]=!0x1;var _0x35cd5a={'callBack':_0x46135c('0xfd3')};_0x35cd5a[_0x46135c('0x88d')]=[_0x460b0d],null!=_0x3c44a4&&(_0x35cd5a['callBackSuccess']=_0x3c44a4),this[_0x46135c('0x4f4')](_0x2dedd9[0x1][_0x46135c('0xb91')],_0x35cd5a);}}}},{'key':'initSourceMappings','value':function(){var _0x5bbeb3=_0x57c234;this['sourceMapping']={};for(var _0x4603e0=this['getRemoteSourceFields'](),_0x666fce=0x0;_0x666fce<_0x4603e0[_0x5bbeb3('0x13')];_0x666fce++){var _0x5b8048=_0x4603e0[_0x666fce];void 0x0!==_0x5b8048[0x1][_0x5bbeb3('0xb91')]&&null!=_0x5b8048[0x1][_0x5bbeb3('0xb91')]&&(this['sourceMapping'][_0x5b8048[0x0]]=_0x5b8048[0x1]['remote-source']);}}},{'key':_0x57c234('0x677'),'value':function(_0x47bc48){var _0x50243e=_0x57c234,_0x59a958=''[_0x50243e('0xda9')](_0x47bc48[0x1]['remote-source'][0x0],'_')[_0x50243e('0xda9')](_0x47bc48[0x1][_0x50243e('0xb91')][0x1],'_')[_0x50243e('0xda9')](_0x47bc48[0x1][_0x50243e('0xb91')][0x2]);return _0x47bc48[0x1][_0x50243e('0xb91')][_0x50243e('0x13')]>0x3&&(_0x59a958=''[_0x50243e('0xda9')](_0x59a958,'_')['concat'](_0x47bc48[0x1][_0x50243e('0xb91')][0x3])),_0x59a958;}},{'key':_0x57c234('0x999'),'value':function(){var _0x202eb0=_0x57c234,_0x4de5af,_0x35562b=this[_0x202eb0('0x10d7')](),_0x483cf0=this[_0x202eb0('0x51c')]();if(null!=_0x483cf0)for(var _0x41ecef=0x0;_0x41ecef<_0x483cf0[_0x202eb0('0x13')];_0x41ecef++)(null==(_0x4de5af=this[_0x202eb0('0x15c')](_0x483cf0[_0x41ecef][0x0],_0x35562b))||_0x202eb0('0x4ce')!==_0x4de5af[_0x202eb0('0x921')]&&_0x202eb0('0x15')!==_0x4de5af['type']&&_0x202eb0('0xa2d')!==_0x4de5af[_0x202eb0('0x921')])&&_0x35562b['push'](_0x483cf0[_0x41ecef]);for(var _0x4cecc1=[],_0x3eb80e=[],_0x268b9e=null,_0xba04b5=null,_0x5c9ffe=0x0;_0x5c9ffe<_0x35562b[_0x202eb0('0x13')];_0x5c9ffe++)if(void 0x0!==(_0x268b9e=_0x35562b[_0x5c9ffe])[0x1][_0x202eb0('0xb91')]&&null!==_0x268b9e[0x1][_0x202eb0('0xb91')]){var _0x2fbd69=this['getRemoteSourceKey'](_0x268b9e);_0x3eb80e[_0x202eb0('0xf00')](_0x2fbd69)<0x0&&(_0x4cecc1[_0x202eb0('0x91b')](_0x268b9e),_0x3eb80e['push'](_0x2fbd69));}else{if(void 0x0!==_0x268b9e[0x1]['form']&&null!==_0x268b9e[0x1][_0x202eb0('0x112a')])for(var _0x202819=0x0;_0x202819<_0x268b9e[0x1]['form']['length'];_0x202819++)if(void 0x0!==(_0xba04b5=_0x268b9e[0x1][_0x202eb0('0x112a')][_0x202819])[0x1][_0x202eb0('0xb91')]&&null!==_0xba04b5[0x1][_0x202eb0('0xb91')]){var _0x32fa89=this['getRemoteSourceKey'](_0xba04b5);_0x3eb80e['indexOf'](_0x32fa89)<0x0&&(_0x4cecc1[_0x202eb0('0x91b')](_0xba04b5),_0x3eb80e['push'](_0x32fa89));}}return _0x4cecc1;}},{'key':'setShowFormOnPopup','value':function(_0x5e626e){var _0x31ca35=_0x57c234;this[_0x31ca35('0xb09')]=_0x5e626e;}},{'key':_0x57c234('0xae3'),'value':function(_0x1542fb){var _0x603b78=_0x57c234;this[_0x603b78('0xd92')]=_0x1542fb;}},{'key':_0x57c234('0x1e3'),'value':function(_0x1a2a19){this['settings']=_0x1a2a19;}},{'key':_0x57c234('0x204'),'value':function(){var _0x53c973=_0x57c234;return this[_0x53c973('0xd92')];}},{'key':_0x57c234('0xb80'),'value':function(_0xb380bb){for(var _0x1d3752 in _0xb380bb)if(!0x1===_0xb380bb[_0x1d3752])return!0x1;return!0x0;}},{'key':_0x57c234('0xfd3'),'value':function(_0x43c7d1,_0x4dd686,_0x3d1084,_0x2659c7){var _0x34071c=_0x57c234;this[_0x34071c('0x1076')][_0x43c7d1]=_0x4dd686,this['fieldMasterDataKeys'][_0x43c7d1]=!0x0,null!=_0x3d1084&&_0x3d1084(),null!==this['fieldMasterDataCallback']&&void 0x0!==this['fieldMasterDataCallback']&&this['isAllLoaded'](this[_0x34071c('0x532')])&&null!==this['fieldMasterDataCallbackData']&&void 0x0!==this['fieldMasterDataCallbackData']?this[_0x34071c('0x417')](this['fieldMasterDataCallbackData']):null!==this[_0x34071c('0x417')]&&void 0x0!==this[_0x34071c('0x417')]&&this[_0x34071c('0xb80')](this[_0x34071c('0x532')])&&this[_0x34071c('0x417')]();}},{'key':_0x57c234('0x15c'),'value':function(_0x587503,_0x542d09){for(var _0x2282fe=0x0;_0x2282fe<_0x542d09['length'];_0x2282fe++)if(_0x587503===_0x542d09[_0x2282fe][0x0])return _0x542d09[_0x2282fe][0x1];return null;}},{'key':_0x57c234('0x32a'),'value':function(){var _0x367b3f=_0x57c234;return[_0x367b3f('0xd50'),'yellow',_0x367b3f('0x297'),_0x367b3f('0x10a7'),_0x367b3f('0x10cf'),_0x367b3f('0x62c'),_0x367b3f('0xc5e'),'teal','olive',_0x367b3f('0xd62'),_0x367b3f('0x47d'),_0x367b3f('0x50')];}},{'key':_0x57c234('0x917'),'value':function(_0x377c78){var _0x2f8091=_0x57c234,_0x268c50=this[_0x2f8091('0x32a')]();return _0x268c50[_0x377c78[_0x2f8091('0xd66')](0x0)%_0x268c50['length']];}},{'key':'getColorByFileType','value':function(_0x30fdf0){var _0x559c2f=_0x57c234;_0x30fdf0=_0x30fdf0['toLowerCase']();var _0x169a3b={'pdf':_0x559c2f('0xd50'),'csv':_0x559c2f('0x50f'),'xls':'green','xlsx':_0x559c2f('0x62c'),'doc':_0x559c2f('0x10cf'),'docx':'light-blue'};return _0x169a3b['docx']=_0x559c2f('0x10a7'),_0x169a3b[_0x559c2f('0xc15')]='orange',_0x169a3b[_0x559c2f('0x2bc')]=_0x559c2f('0xd62'),_0x169a3b[_0x559c2f('0xe82')]='teal',_0x169a3b[_0x559c2f('0x942')]=_0x559c2f('0x5aa'),_0x169a3b['gif']=_0x559c2f('0x62c'),_0x169a3b[_0x559c2f('0x107b')]='yellow',_0x169a3b[_0x559c2f('0xa0e')]=_0x559c2f('0x47d'),void 0x0!==_0x169a3b[_0x30fdf0]||null!=_0x169a3b[_0x30fdf0]?_0x169a3b[_0x30fdf0]:this['getColorByRandomString'](_0x30fdf0);}},{'key':_0x57c234('0x11'),'value':function(_0x57f726){var _0x35f200=_0x57c234,_0x4d9bd3={'pdf':_0x35f200('0x17b'),'csv':_0x35f200('0x21b'),'xls':_0x35f200('0xa2f'),'xlsx':_0x35f200('0xa2f'),'doc':'fa\x20fa-file-word-o','docx':_0x35f200('0x318'),'ppt':_0x35f200('0x2a9'),'pptx':_0x35f200('0x2a9'),'jpg':'fa\x20fa-file-image-o','jpeg':_0x35f200('0x9b7'),'gif':_0x35f200('0x9b7'),'png':'fa\x20fa-file-image-o','bmp':'fa\x20fa-file-image-o','txt':_0x35f200('0x90b'),'rtf':_0x35f200('0x90b')};return void 0x0!==_0x4d9bd3[_0x57f726=_0x57f726['toLowerCase']()]||null!=_0x4d9bd3[_0x57f726]?_0x4d9bd3[_0x57f726]:_0x35f200('0xca3');}},{'key':'getSourceMapping','value':function(){var _0x527db8=_0x57c234;return this[_0x527db8('0x6ac')];}},{'key':'setTesting','value':function(_0xd92f79){var _0xed8ab1=_0x57c234;this[_0xed8ab1('0xc8a')]=_0xd92f79;}},{'key':_0x57c234('0x4c4'),'value':function(_0x4f05f2){var _0x5d436a=_0x57c234;this[_0x5d436a('0xc8a')]&&console['log'](_0x4f05f2);}},{'key':_0x57c234('0xc39'),'value':function(_0x32974b){this['msgList']=_0x32974b;}},{'key':_0x57c234('0xb24'),'value':function(_0x425bf6){var _0x15f3d7=_0x57c234;this[_0x15f3d7('0x563')]=_0x425bf6;}},{'key':_0x57c234('0xb57'),'value':function(_0xf74f76,_0x4cc811){var _0x5f36b6=_0x57c234;return _0xf74f76[_0x5f36b6('0xe9c')](_0x4cc811)?_0xf74f76[_0x4cc811]:null;}},{'key':_0x57c234('0xe9b'),'value':function(_0x1a9891){var _0x59ad1c=_0x57c234;return this[_0x59ad1c('0xb57')](this['msgList'],_0x1a9891);}},{'key':_0x57c234('0x477'),'value':function(_0x5a1157){var _0x592129=_0x57c234;return this[_0x592129('0xb57')](this['templates'],_0x5a1157);}},{'key':_0x57c234('0x75b'),'value':function(_0x4718a0){var _0x365ba9=_0x57c234;this[_0x365ba9('0x7c9')]=_0x4718a0;}},{'key':_0x57c234('0x2cd'),'value':function(_0x56c3a0){var _0x35712e=_0x57c234;null!=this[_0x35712e('0x3d5')]&&(this['previousView']=this['currentView'],$('#'[_0x35712e('0xda9')](this[_0x35712e('0x3d5')]))[_0x35712e('0xcee')]()),$('#'[_0x35712e('0xda9')](_0x56c3a0))['show'](),this['currentView']=_0x56c3a0,this['moveToTop']();}},{'key':_0x57c234('0x4d0'),'value':function(){var _0x288e3f=_0x57c234;this[_0x288e3f('0x2cd')](this[_0x288e3f('0x2c')]);}},{'key':'moveToTop','value':function(){}},{'key':'callFunction','value':function(_0x4e9025,_0x326d8c,_0x2e70f5){var _0x2a0b60=_0x57c234;if($[_0x2a0b60('0xd22')](_0x4e9025))try{null==_0x2e70f5?_0x4e9025[_0x2a0b60('0x2be')](document,_0x326d8c):_0x4e9025[_0x2a0b60('0x2be')](_0x2e70f5,_0x326d8c);}catch(_0x5b3c4c){console[_0x2a0b60('0x455')](_0x5b3c4c[_0x2a0b60('0x773')]);}else{var _0x2f4560=this[_0x4e9025];if($[_0x2a0b60('0xd22')](_0x2f4560))try{_0x2f4560[_0x2a0b60('0x2be')](this,_0x326d8c);}catch(_0x1c57fa){console[_0x2a0b60('0x455')](_0x1c57fa['message']);}}}},{'key':'getTableTopButtonHtml','value':function(){var _0x144650=_0x57c234,_0x55a635='';return this[_0x144650('0x7c')]()&&(_0x55a635=_0x144650('0xc65')[_0x144650('0xda9')](this['gt'](this['getAddNewLabel']()),'\x20')),null!=this['getFilters']()&&(''!==_0x55a635&&(_0x55a635+=_0x144650('0x70b')),_0x55a635+=''['concat'](this['gt'](_0x144650('0xfc6')),_0x144650('0x124')),_0x55a635+=_0x144650('0x70b'),this[_0x144650('0x322')]?_0x55a635+=_0x144650('0x7c7'):_0x55a635+=_0x144650('0x19e')),_0x55a635=_0x55a635[_0x144650('0xd06')](/__id__/g,this[_0x144650('0x3ed')]()),''!==(_0x55a635=''!==this[_0x144650('0xa70')]&&null!=this['currentFilterString']?_0x55a635[_0x144650('0xd06')](/__filterString__/g,this[_0x144650('0xa70')]):_0x55a635[_0x144650('0xd06')](/__filterString__/g,_0x144650('0xe')))&&(_0x55a635=''['concat'](_0x55a635,_0x144650('0xeec'))),_0x55a635;}},{'key':_0x57c234('0xaed'),'value':function(){var _0x552649=_0x57c234;return{'sTitle':'','sClass':_0x552649('0x40c')};}},{'key':_0x57c234('0x113f'),'value':function(){var _0x118959=_0x57c234;return _0x118959('0x8b1');}},{'key':'isSortable','value':function(){return!0x0;}},{'key':_0x57c234('0x37f'),'value':function(_0x1cf725){var _0x28e32d=_0x57c234;if(this[_0x28e32d('0x204')]())this[_0x28e32d('0xb93')](_0x1cf725);else{var _0x3899ec=this[_0x28e32d('0x95e')]();for(var _0x2802ae in _0x3899ec)_0x3899ec[_0x2802ae][_0x28e32d('0x361')]=this['gt'](_0x3899ec[_0x2802ae][_0x28e32d('0x361')]);var _0x549f2d,_0x3a7b01=this['getTableData']();if(this['showActionButtons']()&&_0x3899ec[_0x28e32d('0x91b')](this['getActionButtonHeader']()),this[_0x28e32d('0xe68')]())for(var _0xeba8ef=0x0;_0xeba8ef<_0x3a7b01[_0x28e32d('0x13')];_0xeba8ef++)_0x3a7b01[_0xeba8ef]['push'](this[_0x28e32d('0xe26')](_0x3a7b01[_0xeba8ef][0x0],_0x3a7b01[_0xeba8ef]));_0x549f2d=this[_0x28e32d('0xe2c')]()+this[_0x28e32d('0x113f')]();var _0x196e8d=$('#'[_0x28e32d('0xda9')](_0x1cf725,_0x28e32d('0x47f')))[_0x28e32d('0x276')](),_0x135e1f=0x0;void 0x0!==_0x196e8d&&null!=_0x196e8d&&(_0x135e1f=0xf*parseInt(_0x196e8d,0xa)-0xf),$('#'[_0x28e32d('0xda9')](_0x1cf725))[_0x28e32d('0x276')](_0x549f2d);var _0x461562={'oLanguage':{'sLengthMenu':_0x28e32d('0x3d7')},'aaData':_0x3a7b01,'aoColumns':_0x3899ec,'bSort':this[_0x28e32d('0x1058')](),'iDisplayLength':0xf,'iDisplayStart':_0x135e1f},_0x50bc36=this[_0x28e32d('0x3f6')]();$[_0x28e32d('0x73')](_0x461562,_0x50bc36),$('#'[_0x28e32d('0xda9')](_0x1cf725,'\x20#grid'))[_0x28e32d('0xa2')](_0x461562),$(_0x28e32d('0x308'))['addClass'](_0x28e32d('0x765')),$(_0x28e32d('0x547'))[_0x28e32d('0xcee')](),$(_0x28e32d('0x929'))[_0x28e32d('0x6a')](_0x28e32d('0xb3b')),$(_0x28e32d('0x929'))['attr'](_0x28e32d('0xa49'),_0x28e32d('0x9de')),$(_0x28e32d('0x232'))[_0x28e32d('0xc8d')]()[_0x28e32d('0x562')](function(){return 0x3===this['nodeType'];})['remove'](),$(_0x28e32d('0x468'))[_0x28e32d('0xcb0')]();}}},{'key':_0x57c234('0xb93'),'value':function(_0x43fe9e){var _0x3eaaeb=_0x57c234,_0x10d74d,_0x219aaf=this['getHeaders']();for(var _0x5388c7 in(_0x219aaf[_0x3eaaeb('0x91b')]({'sTitle':'','sClass':_0x3eaaeb('0x40c')}),_0x219aaf))_0x219aaf[_0x5388c7]['sTitle']=this['gt'](_0x219aaf[_0x5388c7][_0x3eaaeb('0x361')]);_0x10d74d=this[_0x3eaaeb('0xe2c')]()+this[_0x3eaaeb('0x113f')]();var _0x2f4b29=$('#'[_0x3eaaeb('0xda9')](_0x43fe9e,'\x20.dataTables_paginate\x20.active\x20a'))[_0x3eaaeb('0x276')](),_0x29e7ab=0x0;void 0x0!==_0x2f4b29&&null!=_0x2f4b29&&(_0x29e7ab=0xf*parseInt(_0x2f4b29,0xa)-0xf),$('#'[_0x3eaaeb('0xda9')](_0x43fe9e))[_0x3eaaeb('0x276')](_0x10d74d);var _0x45745f={'oLanguage':{'sLengthMenu':_0x3eaaeb('0x3d7')},'bProcessing':!0x0,'bServerSide':!0x0,'sAjaxSource':this[_0x3eaaeb('0xa2e')](this['getDataMapping']()),'aoColumns':_0x219aaf,'bSort':this[_0x3eaaeb('0x1058')](),'parent':this,'iDisplayLength':0xf,'iDisplayStart':_0x29e7ab};this['showActionButtons']()&&(_0x45745f[_0x3eaaeb('0xd3e')]=[{'fnRender':this['getActionButtons'],'aTargets':[this[_0x3eaaeb('0x44a')]()[_0x3eaaeb('0x13')]]}]);var _0x5f634f=this[_0x3eaaeb('0x3f6')]();$['extend'](_0x45745f,_0x5f634f),$('#'[_0x3eaaeb('0xda9')](_0x43fe9e,_0x3eaaeb('0xd01')))[_0x3eaaeb('0xa2')](_0x45745f),$(_0x3eaaeb('0x308'))['addClass'](_0x3eaaeb('0x765')),$('.dataTables_length')['hide'](),$(_0x3eaaeb('0x929'))[_0x3eaaeb('0x6a')](_0x3eaaeb('0xb3b')),$(_0x3eaaeb('0x929'))[_0x3eaaeb('0xb0c')](_0x3eaaeb('0xa49'),_0x3eaaeb('0x9de')),$('.dataTables_filter\x20label')['contents']()[_0x3eaaeb('0x562')](function(){var _0xe788b3=_0x3eaaeb;return 0x3===this[_0xe788b3('0x5a')];})[_0x3eaaeb('0xaa6')](),$(_0x3eaaeb('0x468'))[_0x3eaaeb('0xcb0')]();}},{'key':_0x57c234('0x95e'),'value':function(){}},{'key':_0x57c234('0x44a'),'value':function(){}},{'key':'getFormFields','value':function(){}},{'key':_0x57c234('0xb81'),'value':function(){return[];}},{'key':_0x57c234('0x49c'),'value':function(){}},{'key':'getFilters','value':function(){return null;}},{'key':_0x57c234('0x1df'),'value':function(_0x44fc2f){var _0x2b25b8=_0x57c234;this[_0x2b25b8('0x9b6')]=_0x44fc2f,this[_0x2b25b8('0xdae')](_0x44fc2f,[]);}},{'key':_0x57c234('0x505'),'value':function(_0x31bb21){var _0x58800e=_0x57c234;this[_0x58800e('0xdae')](_0x31bb21,[],!0x0);}},{'key':'renderModel','value':function(_0x51884f,_0x31508d,_0x47f492){var _0xc50bcd=_0x57c234;$('#'[_0xc50bcd('0xda9')](_0x51884f,_0xc50bcd('0xd54')))[_0xc50bcd('0x276')](''),void 0x0!==_0x47f492&&null!=_0x47f492||(_0x47f492=''),$('#'[_0xc50bcd('0xda9')](_0x51884f,_0xc50bcd('0xc3d')))['html'](_0x31508d),$('#'[_0xc50bcd('0xda9')](_0x51884f,'ModelBody'))[_0xc50bcd('0x276')](_0x47f492);}},{'key':_0x57c234('0x289'),'value':function(_0x3cdf9a,_0x8274a3,_0x590786,_0x5a8d35,_0x240533,_0x496105){var _0x1d1736=_0x57c234,_0x3b46d0=this,_0x1bbc19=_0x1d1736('0xf5d');void 0x0!==_0x8274a3&&null!=_0x8274a3||(_0x8274a3=''),$(''[_0x1d1736('0xda9')](_0x1bbc19,'Label'))['html'](_0x3cdf9a),$(''[_0x1d1736('0xda9')](_0x1bbc19,_0x1d1736('0x2a')))[_0x1d1736('0x276')](_0x8274a3),null!=_0x590786&&$(''[_0x1d1736('0xda9')](_0x1bbc19,_0x1d1736('0xe31')))['html'](_0x590786),null!=_0x5a8d35&&$(''[_0x1d1736('0xda9')](_0x1bbc19,_0x1d1736('0x4b')))[_0x1d1736('0x276')](_0x5a8d35),$(''['concat'](_0x1bbc19,_0x1d1736('0xe31')))[_0x1d1736('0x78f')]()['on']('click',function(){var _0x2bccea=_0x1d1736;void 0x0!==_0x240533&&null!=_0x240533&&(_0x240533[_0x2bccea('0x2be')](_0x3b46d0,_0x496105),_0x3b46d0[_0x2bccea('0xae8')]());}),$(_0x1bbc19)[_0x1d1736('0xf89')]({'backdrop':_0x1d1736('0xbe')});}},{'key':_0x57c234('0xb35'),'value':function(_0x19aec6,_0x4ae29b,_0x306296){var _0x141a37=_0x57c234;$('#'['concat'](_0x19aec6,_0x141a37('0xd54')))['html'](''),void 0x0!==_0x306296&&null!=_0x306296||(_0x306296=$(_0x141a37('0xbf2'))),$('#'[_0x141a37('0xda9')](_0x19aec6,_0x141a37('0xc3d')))[_0x141a37('0x276')](_0x4ae29b),$('#'[_0x141a37('0xda9')](_0x19aec6,_0x141a37('0xd54')))['html'](''),$('#'[_0x141a37('0xda9')](_0x19aec6,'ModelBody'))[_0x141a37('0x895')](_0x306296);}},{'key':_0x57c234('0xc50'),'value':function(_0xa5e548){var _0x959130=_0x57c234;this[_0x959130('0xaaa')]['id']=_0xa5e548,this['renderModel'](_0x959130('0x41d'),_0x959130('0x9c7'),'Are\x20you\x20sure\x20you\x20want\x20to\x20delete\x20this\x20item\x20?'),$(_0x959130('0x3fe'))[_0x959130('0xf89')](_0x959130('0x312'));}},{'key':_0x57c234('0xaa4'),'value':function(_0x45e096,_0x483eb8){var _0xacdd09=_0x57c234,_0x4c66e1=arguments[_0xacdd09('0x13')]>0x2&&void 0x0!==arguments[0x2]?arguments[0x2]:null,_0x2f3c3e=arguments[_0xacdd09('0x13')]>0x3&&void 0x0!==arguments[0x3]?arguments[0x3]:null,_0x279c1b=arguments[_0xacdd09('0x13')]>0x4&&void 0x0!==arguments[0x4]&&arguments[0x4],_0x3662f9=this,_0x40924d='';_0x40924d=_0x279c1b?_0xacdd09('0x890'):_0xacdd09('0x98'),$(_0x40924d)[_0xacdd09('0x78f')](),_0x279c1b?this[_0xacdd09('0x115a')](_0xacdd09('0x156'),_0x45e096,_0x483eb8):this[_0xacdd09('0x115a')](_0xacdd09('0x773'),_0x45e096,_0x483eb8),null!=_0x4c66e1?($(_0x40924d)['modal']({'show':!0x0}),$(_0x40924d)['on'](_0xacdd09('0x668'),function(){var _0x3f2291=_0xacdd09;_0x4c66e1[_0x3f2291('0x2be')](_0x3662f9,_0x2f3c3e),$('.modal-backdrop')[_0x3f2291('0xaa6')]();})):$(_0x40924d)[_0xacdd09('0xf89')]({'backdrop':_0xacdd09('0xbe')});}},{'key':_0x57c234('0x46b'),'value':function(_0x43bd18,_0x2eb0d4,_0x16b8a7,_0x5ed9fd,_0x4f49d4){var _0x5c3a5d=_0x57c234,_0x212370=this,_0x4fb277='';_0x4fb277=_0x4f49d4?'#dataMessageModel':_0x5c3a5d('0x98'),$(_0x4fb277)['unbind']('hide'),_0x4f49d4?this[_0x5c3a5d('0xb35')]('dataMessage',_0x43bd18,_0x2eb0d4):this[_0x5c3a5d('0xb35')](_0x5c3a5d('0x773'),_0x43bd18,_0x2eb0d4),null!=_0x16b8a7?($(_0x4fb277)[_0x5c3a5d('0xf89')]({'show':!0x0}),$(_0x4fb277)['on'](_0x5c3a5d('0x668'),function(){var _0x477bb6=_0x5c3a5d;_0x16b8a7[_0x477bb6('0x2be')](_0x212370,_0x5ed9fd),$(_0x477bb6('0x110c'))[_0x477bb6('0xaa6')]();})):$(_0x4fb277)[_0x5c3a5d('0xf89')]({'backdrop':'static'});}},{'key':'confirmDelete','value':function(){var _0x30f912=_0x57c234;void 0x0===this[_0x30f912('0xaaa')]['id']&&null==this[_0x30f912('0xaaa')]['id']||this[_0x30f912('0x6bd')](this[_0x30f912('0xaaa')]['id'],[]),$(_0x30f912('0x3fe'))[_0x30f912('0xf89')](_0x30f912('0xcee'));}},{'key':'cancelDelete','value':function(){var _0x1100c1=_0x57c234;$(_0x1100c1('0x3fe'))[_0x1100c1('0xf89')]('hide'),this[_0x1100c1('0xaaa')]['id']=null;}},{'key':_0x57c234('0x62e'),'value':function(){var _0x326eab=_0x57c234;$(_0x326eab('0x98'))[_0x326eab('0xf89')]('hide');}},{'key':'cancelYesno','value':function(){var _0x4faee1=_0x57c234;$(_0x4faee1('0xf5d'))[_0x4faee1('0xf89')]('hide');}},{'key':_0x57c234('0xc82'),'value':function(){var _0x2ff267=_0x57c234;$('#plainMessageModel')[_0x2ff267('0xf89')](_0x2ff267('0xcee')),$(_0x2ff267('0xab9'))[_0x2ff267('0xf89')](_0x2ff267('0xcee'));}},{'key':'closeDataMessage','value':function(){var _0x227d74=_0x57c234;$(_0x227d74('0xab9'))[_0x227d74('0xf89')](_0x227d74('0xcee'));}},{'key':'save','value':function(_0xffc763,_0x40d191){var _0x1477aa=_0x57c234,_0x7fc7fd=new _0x28c13b[(_0x1477aa('0xf5f'))](''[_0x1477aa('0xda9')](this[_0x1477aa('0x3ed')](),_0x1477aa('0x2db')),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':_0x1477aa('0x5bf')});if(_0x7fc7fd[_0x1477aa('0x266')]()){var _0x59de2b=_0x7fc7fd[_0x1477aa('0x10e6')]();_0x59de2b=this[_0x1477aa('0xcea')](_0x59de2b);var _0x7b81e2=this[_0x1477aa('0xe86')](_0x59de2b);if(null==_0x7b81e2){this[_0x1477aa('0x768')]&&(_0x59de2b[_0x1477aa('0x9e5')]=$('#'[_0x1477aa('0xda9')](this['getTableName'](),_0x1477aa('0xe32')))['data'](_0x1477aa('0x9e5')));var _0x2ce7d1=$('#'[_0x1477aa('0xda9')](this[_0x1477aa('0x3ed')](),'_submit\x20#id'))[_0x1477aa('0xd3d')]();null!=_0x2ce7d1&&void 0x0!==_0x2ce7d1&&''!==_0x2ce7d1&&(_0x59de2b['id']=_0x2ce7d1),_0x59de2b=this[_0x1477aa('0x28d')](_0x59de2b),this[_0x1477aa('0x949')](_0x59de2b,[],_0xffc763,_0x40d191);}else $('#'[_0x1477aa('0xda9')](this[_0x1477aa('0x3ed')](),'Form\x20.label'))['html'](_0x7b81e2),$('#'['concat'](this[_0x1477aa('0x3ed')](),_0x1477aa('0xfab')))[_0x1477aa('0x312')](),this['scrollToTop']();}}},{'key':_0x57c234('0x28d'),'value':function(_0x298884){var _0x5b98fc=_0x57c234;return this[_0x5b98fc('0x10d7')]()[_0x5b98fc('0xb77')](function(_0x3122c3){var _0x23683c=_0x5b98fc;_0x23683c('0x2a5')!==_0x3122c3[0x1]['type']&&'datetime'!==_0x3122c3[0x1][_0x23683c('0x921')]||''!==_0x298884[_0x3122c3[0x0]]&&'0000-00-00'!==_0x298884[_0x3122c3[0x0]]&&_0x23683c('0x40f')!==_0x298884[_0x3122c3[0x0]]||(_0x23683c('0xea1')===_0x3122c3[0x1][_0x23683c('0x2c4')]?_0x298884[_0x3122c3[0x0]]=_0x23683c('0x855'):delete _0x298884[_0x3122c3[0x0]]);}),_0x298884;}},{'key':_0x57c234('0x2e4'),'value':function(_0x474ba1){var _0x40ef48=_0x57c234;return _0x474ba1[_0x40ef48('0x13')]<0x8?this['gt']('Password\x20too\x20short'):_0x474ba1[_0x40ef48('0x13')]>0x1e?this['gt'](_0x40ef48('0x1031')):_0x474ba1[_0x40ef48('0x7d5')](/.*[0-9]+.*$/)?_0x474ba1[_0x40ef48('0x7d5')](/.*[a-z]+.*$/)?_0x474ba1[_0x40ef48('0x7d5')](/.*[A-Z]+.*$/)?_0x474ba1[_0x40ef48('0x7d5')](/.*[\W]+.*$/)?null:this['gt'](_0x40ef48('0x5de')):this['gt'](_0x40ef48('0xa8b')):this['gt'](_0x40ef48('0xfa5')):this['gt'](_0x40ef48('0x20c'));}},{'key':_0x57c234('0xcea'),'value':function(_0x51447e){return _0x51447e;}},{'key':_0x57c234('0xe86'),'value':function(_0x598b38){return null;}},{'key':_0x57c234('0xb5c'),'value':function(){var _0x54bcf8=_0x57c234,_0xeb1bce=new _0x28c13b[(_0x54bcf8('0xf5f'))](''['concat'](this[_0x54bcf8('0x3ed')](),'_filter'),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':'error'});if(_0xeb1bce[_0x54bcf8('0x266')]()){var _0x53621d=_0xeb1bce['getFormParameters']();if(this[_0x54bcf8('0x2d4')](_0x53621d)){for(var _0x37263a in _0x53621d)_0x53621d[_0x54bcf8('0xe9c')](_0x37263a)&&_0x54bcf8('0x855')===_0x53621d[_0x37263a]&&delete _0x53621d[_0x37263a];this[_0x54bcf8('0x285')](_0x53621d),this[_0x54bcf8('0x322')]=!0x0,$('#'[_0x54bcf8('0xda9')](this[_0x54bcf8('0x3ed')](),'_resetFilters'))[_0x54bcf8('0x312')](),this[_0x54bcf8('0xa70')]=this[_0x54bcf8('0x76b')](_0x53621d),this[_0x54bcf8('0xd12')]([]),this[_0x54bcf8('0xc82')]();}}}},{'key':_0x57c234('0x76b'),'value':function(_0x36d353){var _0x45042c=_0x57c234,_0x13d77f,_0x4979ef,_0x5349c0,_0x359f5d,_0x2b7cd7,_0x101ba3,_0x63633a='',_0x35a5ab=this[_0x45042c('0x51c')]();for(var _0x8b47ca in(null==_0x5349c0&&(_0x5349c0=[]),_0x36d353))if(_0x36d353[_0x45042c('0xe9c')](_0x8b47ca)){if(!(_0x5349c0=this[_0x45042c('0x15c')](_0x8b47ca,_0x35a5ab)))continue;if(_0x2b7cd7='',_0x101ba3=null,_0x45042c('0x4ce')===_0x5349c0[_0x45042c('0x921')]||_0x45042c('0x15')===_0x5349c0[_0x45042c('0x921')]){if(void 0x0!==_0x5349c0[_0x45042c('0xb91')]&&null!=_0x5349c0[_0x45042c('0xb91')]){if(_0x13d77f=_0x5349c0[_0x45042c('0xb91')],_0x45042c('0x855')===_0x36d353[_0x8b47ca])_0x2b7cd7=void 0x0!==_0x5349c0[_0x45042c('0x10f3')]&&null!=_0x5349c0[_0x45042c('0x10f3')]?_0x5349c0[_0x45042c('0x10f3')]:_0x45042c('0x27e');else{var _0x35ca7f=''[_0x45042c('0xda9')](_0x13d77f[0x0],'_')[_0x45042c('0xda9')](_0x13d77f[0x1],'_')['concat'](_0x13d77f[0x2]);_0x13d77f[_0x45042c('0x13')]>0x3&&(_0x35ca7f=''[_0x45042c('0xda9')](_0x35ca7f,'_')[_0x45042c('0xda9')](_0x13d77f[0x3])),_0x101ba3=_0x2b7cd7=this[_0x45042c('0x1076')][_0x35ca7f][_0x36d353[_0x8b47ca]];}}else{if(_0x4979ef=_0x5349c0['source'][0x0],_0x45042c('0x855')===_0x36d353[_0x8b47ca])_0x2b7cd7=void 0x0!==_0x5349c0[_0x45042c('0x10f3')]&&null!=_0x5349c0[_0x45042c('0x10f3')]?_0x5349c0['null-label']:_0x45042c('0x27e');else for(var _0x1cc42d=0x0;_0x1cc42d<_0x4979ef[_0x45042c('0x13')];_0x1cc42d++)if(_0x36d353[_0x8b47ca]===_0x5349c0[_0x45042c('0x5f3')][_0x1cc42d][0x0]){_0x101ba3=_0x2b7cd7=_0x5349c0[_0x45042c('0x5f3')][_0x1cc42d][0x1];break;}}}else{if(_0x45042c('0xa2d')===_0x5349c0[_0x45042c('0x921')]){_0x359f5d=[];try{_0x359f5d=JSON['parse'](_0x36d353[_0x8b47ca]);}catch(_0xa0b060){}''!==(_0x2b7cd7=_0x359f5d[_0x45042c('0x2e2')](','))&&(_0x101ba3=_0x2b7cd7);}else''!==(_0x2b7cd7=_0x36d353[_0x8b47ca])&&(_0x101ba3=_0x2b7cd7);}null!=_0x101ba3&&(''!==_0x63633a&&(_0x63633a+=_0x45042c('0x3a0')),_0x63633a+=''['concat'](_0x5349c0[_0x45042c('0xf3c')],_0x45042c('0x171'))[_0x45042c('0xda9')](_0x2b7cd7));}return _0x63633a;}},{'key':_0x57c234('0x2d4'),'value':function(_0x25ddec){return!0x0;}},{'key':_0x57c234('0xb53'),'value':function(){var _0x3e3e85=_0x57c234;this[_0x3e3e85('0x562')]=this[_0x3e3e85('0x1102')],this['filtersAlreadySet']=!0x1,$('#'['concat'](this[_0x3e3e85('0x3ed')](),_0x3e3e85('0xb7')))['hide'](),this[_0x3e3e85('0xa70')]='',this[_0x3e3e85('0xd12')]([]);}},{'key':_0x57c234('0xaef'),'value':function(_0x15d0c6){var _0x3663e8=_0x57c234;for(var _0x45295e=this['templates']['filterTemplate'],_0x56cd60='',_0x4548c7=this['getFilters'](),_0x28b9ec=0x0;_0x28b9ec<_0x4548c7[_0x3663e8('0x13')];_0x28b9ec++){var _0x4dd3ea=this[_0x3663e8('0x314')](_0x4548c7[_0x28b9ec][0x0]);if(''===_0x4dd3ea||void 0x0===_0x4dd3ea)_0x56cd60+=this[_0x3663e8('0xb7c')](_0x4548c7[_0x28b9ec]);else{var _0x503820=_0x15d0c6[_0x4dd3ea];''!==_0x503820&&null!=_0x503820&&void 0x0!==_0x503820&&''!==_0x503820[_0x3663e8('0xb8e')]()?_0x56cd60+=this[_0x3663e8('0xb7c')](JSON[_0x3663e8('0x104a')](_0x503820)):_0x56cd60+=this[_0x3663e8('0xb7c')](_0x4548c7[_0x28b9ec]);}}_0x45295e=(_0x45295e=_0x45295e[_0x3663e8('0xd06')](/_id_/g,''[_0x3663e8('0xda9')](this[_0x3663e8('0x3ed')](),_0x3663e8('0x53d'))))['replace'](/_fields_/g,_0x56cd60);var _0xb22f0e=this[_0x3663e8('0xed8')](0xe),_0x20cbd5=$(_0x3663e8('0x98b'));_0x20cbd5[_0x3663e8('0xb0c')]('id',_0xb22f0e),_0x20cbd5['html'](_0x45295e),_0x20cbd5[_0x3663e8('0xe05')](_0x3663e8('0xbad'))['datepicker']({'viewMode':0x2}),_0x20cbd5['find'](_0x3663e8('0x1144'))['datetimepicker']({'language':'en','pickDate':!0x1}),_0x20cbd5[_0x3663e8('0xe05')](_0x3663e8('0x1110'))[_0x3663e8('0xd76')]({'language':'en'}),_0x20cbd5[_0x3663e8('0xe05')](_0x3663e8('0x552'))[_0x3663e8('0xbc7')](),tinymce[_0x3663e8('0xeb9')]({'selector':'#'[_0x3663e8('0xda9')](_0x20cbd5['attr']('id'),_0x3663e8('0xd43')),'height':_0x3663e8('0x737')}),_0x20cbd5['find'](_0x3663e8('0x9e1'))['each'](function(){var _0x18280a=_0x3663e8,_0x5a463c=new SimpleMDE({'element':$(this)[0x0]});$(this)[_0x18280a('0x1016')](_0x18280a('0xc00'),_0x5a463c);}),_0x20cbd5[_0x3663e8('0xe05')](_0x3663e8('0xdb4'))[_0x3663e8('0x2fa')](function(){var _0x2f46d2=_0x3663e8;$(this)[_0x2f46d2('0x15')]()['select2']('val',$(this)[_0x2f46d2('0xe05')](_0x2f46d2('0x26b'))[_0x2f46d2('0xd3d')]());}),_0x20cbd5['find'](_0x3663e8('0x93e'))[_0x3663e8('0x2fa')](function(){var _0x117faa=_0x3663e8;$(this)[_0x117faa('0x15')]()['on'](_0x117faa('0x566'),function(_0x444bfc){var _0x26d0bd=_0x117faa,_0x2f19c1=$(this)[_0x26d0bd('0xd5a')]('.row'),_0x797acd=_0x2f19c1[_0x26d0bd('0xe05')](_0x26d0bd('0x1072'))['height']();_0x2f19c1[_0x26d0bd('0x27b')](parseInt(_0x797acd,0xa));});}),this['showDomElement'](_0x3663e8('0x647'),_0x20cbd5,null,null,!0x0),$(_0x3663e8('0xbe6'))['off'](),$(_0x3663e8('0xbe6'))['on'](_0x3663e8('0x29f'),function(_0x565ccd){var _0x5074c6=_0x3663e8;_0x565ccd['preventDefault'](),_0x565ccd[_0x5074c6('0xefa')]();try{modJs[_0x5074c6('0xb5c')]();}catch(_0x4e2d93){console[_0x5074c6('0x455')](_0x4e2d93),console[_0x5074c6('0x455')](_0x4e2d93[_0x5074c6('0x773')]);}return!0x1;}),void 0x0!==this[_0x3663e8('0x562')]&&null!=this['filter']&&''!==this['filter']&&this[_0x3663e8('0x848')](this[_0x3663e8('0x562')],'#'[_0x3663e8('0xda9')](this['getTableName'](),_0x3663e8('0x53d')),this['getFilters']());}},{'key':_0x57c234('0x4b1'),'value':function(_0x306cea){}},{'key':_0x57c234('0xc03'),'value':function(_0xa32fc2){var _0x4bd9cb=_0x57c234,_0x49a3cf=[];null!=_0xa32fc2&&void 0x0!==_0xa32fc2||(this['currentId']=null),this[_0x4bd9cb('0x4b1')](_0xa32fc2);for(var _0x271226,_0x439557=this[_0x4bd9cb('0x563')][_0x4bd9cb('0x5d9')],_0x3ede8a='',_0xf87f1b=this[_0x4bd9cb('0x10d7')](),_0x5cec11=0x0;_0x5cec11<_0xf87f1b[_0x4bd9cb('0x13')];_0x5cec11++){var _0x190e9f=this[_0x4bd9cb('0x314')](_0xf87f1b[_0x5cec11][0x0]);if(''===_0x190e9f||void 0x0===_0x190e9f)_0x3ede8a+=this[_0x4bd9cb('0xb7c')](_0xf87f1b[_0x5cec11]);else{var _0x341fbb=_0xa32fc2[_0x190e9f];''!==_0x341fbb&&null!=_0x341fbb&&void 0x0!==_0x341fbb&&''!==_0x341fbb['trim']()?_0x3ede8a+=this[_0x4bd9cb('0xb7c')](JSON[_0x4bd9cb('0x104a')](_0x341fbb)):_0x3ede8a+=this[_0x4bd9cb('0xb7c')](_0xf87f1b[_0x5cec11]);}}_0x439557=(_0x439557=_0x439557['replace'](/_id_/g,''[_0x4bd9cb('0xda9')](this[_0x4bd9cb('0x3ed')](),_0x4bd9cb('0x2db'))))['replace'](/_fields_/g,_0x3ede8a);var _0x5ed284=this[_0x4bd9cb('0xed8')](0xe);this[_0x4bd9cb('0xb09')]?(_0x271226=$(''))[_0x4bd9cb('0xb0c')]('id',_0x5ed284):_0x271226=$('#'[_0x4bd9cb('0xda9')](this[_0x4bd9cb('0x3ed')](),'Form')),_0x271226[_0x4bd9cb('0x276')](_0x439557),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0xbad'))['datepicker']({'viewMode':0x2}),_0x271226['find'](_0x4bd9cb('0x1144'))[_0x4bd9cb('0xd76')]({'language':'en','pickDate':!0x1}),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0x1110'))['datetimepicker']({'language':'en'}),_0x271226[_0x4bd9cb('0xe05')]('.colorpick')[_0x4bd9cb('0xbc7')](),tinymce['init']({'selector':'#'[_0x4bd9cb('0xda9')](_0x271226[_0x4bd9cb('0xb0c')]('id'),_0x4bd9cb('0xd43')),'height':_0x4bd9cb('0x737')}),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0x9e1'))['each'](function(){var _0x2c6772=_0x4bd9cb,_0x2c67f4=new SimpleMDE({'element':$(this)[0x0]});$(this)[_0x2c6772('0x1016')]('simplemde',_0x2c67f4);});var _0x10f773=this[_0x4bd9cb('0xc4f')];_0x10f773&&_0x271226[_0x4bd9cb('0xe05')]('.code')[_0x4bd9cb('0x2fa')](function(){var _0x372945=_0x4bd9cb,_0x43a076=_0x10f773[_0x372945('0x839')]($(this)[0x0],{'lineNumbers':!0x1,'matchBrackets':!0x0,'continueComments':_0x372945('0x560'),'extraKeys':{'Ctrl-Q':_0x372945('0xfd')}});$(this)[_0x372945('0x1016')](_0x372945('0x473'),_0x43a076);}),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0xdb4'))[_0x4bd9cb('0x2fa')](function(){var _0x40f703=_0x4bd9cb;$(this)[_0x40f703('0x15')]()[_0x40f703('0x15')](_0x40f703('0xd3d'),$(this)[_0x40f703('0xe05')](_0x40f703('0x26b'))[_0x40f703('0xd3d')]());}),_0x271226['find'](_0x4bd9cb('0x93e'))[_0x4bd9cb('0x2fa')](function(){var _0x357576=_0x4bd9cb;$(this)[_0x357576('0x15')]()['on'](_0x357576('0x566'),function(_0x23ebd6){var _0x5f4ed3=_0x357576,_0x3c3dd9=$(this)['parents'](_0x5f4ed3('0xe20')),_0x504705=_0x3c3dd9['find'](_0x5f4ed3('0x1072'))['height']();_0x3c3dd9[_0x5f4ed3('0x27b')](parseInt(_0x504705,0xa));});}),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0x65'))[_0x4bd9cb('0x2fa')](function(){var _0x426021=_0x4bd9cb;_0x49a3cf[_0x426021('0x91b')]($(this)[_0x426021('0xb0c')]('id'));});for(var _0x264092=0x0;_0x264092<_0xf87f1b[_0x4bd9cb('0x13')];_0x264092++)_0x4bd9cb('0xc5b')===_0xf87f1b[_0x264092][0x1][_0x4bd9cb('0x921')]&&_0x271226['find']('#'['concat'](_0xf87f1b[_0x264092][0x0]))[_0x4bd9cb('0x1016')](_0x4bd9cb('0xbaf'),_0xf87f1b[_0x264092]);if(!0x1===this[_0x4bd9cb('0x5ba')]?_0x271226[_0x4bd9cb('0xe05')]('.saveBtn')[_0x4bd9cb('0xaa6')]():(_0x271226[_0x4bd9cb('0xe05')]('.saveBtn')[_0x4bd9cb('0x78f')](),_0x271226[_0x4bd9cb('0xe05')]('.saveBtn')['data'](_0x4bd9cb('0xab0'),this),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0xdee'))['on'](_0x4bd9cb('0x29f'),function(){var _0x47477e=_0x4bd9cb;return null!=$(this)[_0x47477e('0x1016')](_0x47477e('0xab0'))[_0x47477e('0x940')]&&void 0x0!==$(this)[_0x47477e('0x1016')]('modJs')[_0x47477e('0x940')]?$(this)[_0x47477e('0x1016')](_0x47477e('0xab0'))['save']($(this)['data'](_0x47477e('0xab0'))[_0x47477e('0x3d4')](),$(this)[_0x47477e('0x1016')](_0x47477e('0xab0'))[_0x47477e('0x940')]):$(this)['data'](_0x47477e('0xab0'))[_0x47477e('0xb6')](),!0x1;})),!0x1===this[_0x4bd9cb('0xb4f')]?_0x271226[_0x4bd9cb('0xe05')]('.cancelBtn')[_0x4bd9cb('0xaa6')]():(_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0xb6a'))[_0x4bd9cb('0x78f')](),_0x271226['find'](_0x4bd9cb('0xb6a'))[_0x4bd9cb('0x1016')](_0x4bd9cb('0xab0'),this),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0xb6a'))['on'](_0x4bd9cb('0x29f'),function(){var _0x4c686d=_0x4bd9cb;return $(this)[_0x4c686d('0x1016')]('modJs')[_0x4c686d('0x581')](),!0x1;})),_0x271226[_0x4bd9cb('0xe05')]('[mask]')['each'](function(){var _0x24bea0=_0x4bd9cb;$(this)[_0x24bea0('0x52d')]($(this)[_0x24bea0('0xb0c')](_0x24bea0('0x6e')));}),_0x271226['find'](_0x4bd9cb('0x694'))['each'](function(){var _0x50cc2=_0x4bd9cb;$(this)[_0x50cc2('0x52d')]({'mask':_0x50cc2('0x609'),'placeholder':'YYYY-MM-DD','leapday':_0x50cc2('0x85'),'separator':'-','alias':'yyyy/mm/dd'});}),_0x271226[_0x4bd9cb('0xe05')](_0x4bd9cb('0x708'))['each'](function(){var _0x47703d=_0x4bd9cb;$(this)[_0x47703d('0x52d')]('datetime',{'mask':_0x47703d('0x60'),'placeholder':_0x47703d('0xcc9'),'leapday':_0x47703d('0x85'),'separator':'-','alias':_0x47703d('0x7cd')});}),this[_0x4bd9cb('0xb09')]){this['showMessage']('Edit','',null,null,!0x0),$(_0x4bd9cb('0x115c'))['html'](''),$('#plainMessageModel\x20.modal-body')[_0x4bd9cb('0x895')](_0x271226);for(var _0x501fe8=0x0;_0x501fe8<_0x49a3cf[_0x4bd9cb('0x13')];_0x501fe8++)$('#'['concat'](_0x49a3cf[_0x501fe8]))['data']('signaturePad',new SignaturePad(document[_0x4bd9cb('0x1012')](_0x49a3cf[_0x501fe8])));void 0x0!==_0xa32fc2&&null!=_0xa32fc2?this['fillForm'](_0xa32fc2,'#'[_0x4bd9cb('0xda9')](_0x5ed284)):this[_0x4bd9cb('0x3e8')]('#'[_0x4bd9cb('0xda9')](_0x5ed284));}else{$('#'[_0x4bd9cb('0xda9')](this['getTableName'](),_0x4bd9cb('0xe32')))[_0x4bd9cb('0x312')](),$('#'['concat'](this['getTableName']()))['hide']();for(var _0x549055=0x0;_0x549055<_0x49a3cf['length'];_0x549055++)$('#'[_0x4bd9cb('0xda9')](_0x49a3cf[_0x549055]))['data'](_0x4bd9cb('0x43f'),new SignaturePad(document[_0x4bd9cb('0x1012')](_0x49a3cf[_0x549055])));void 0x0!==_0xa32fc2&&null!=_0xa32fc2?this[_0x4bd9cb('0x848')](_0xa32fc2):this[_0x4bd9cb('0x3e8')](),this[_0x4bd9cb('0x10ab')]();}this[_0x4bd9cb('0xc8')](_0xa32fc2,_0x271226);}},{'key':_0x57c234('0x3e8'),'value':function(_0x3e78e2,_0x44cf19){var _0x2f768d=_0x57c234;null!=_0x44cf19&&void 0x0!==_0x44cf19||(_0x44cf19=this[_0x2f768d('0x10d7')]()),null!=_0x3e78e2&&void 0x0!==_0x3e78e2&&''!==_0x3e78e2||(_0x3e78e2='#'[_0x2f768d('0xda9')](this[_0x2f768d('0x3ed')](),'Form'));for(var _0x304b06=0x0;_0x304b06<_0x44cf19[_0x2f768d('0x13')];_0x304b06++)_0x2f768d('0x5b2')!==_0x44cf19[_0x304b06][0x1][_0x2f768d('0x921')]&&'textarea'!==_0x44cf19[_0x304b06][0x1][_0x2f768d('0x921')]||void 0x0!==_0x44cf19[_0x304b06][0x1]['default']&&null!==_0x44cf19[_0x304b06][0x1]['default']&&$(''[_0x2f768d('0xda9')](_0x3e78e2,'\x20#')[_0x2f768d('0xda9')](_0x44cf19[_0x304b06][0x0]))[_0x2f768d('0xd3d')](_0x44cf19[_0x304b06][0x1][_0x2f768d('0xf5f')]);}},{'key':'retriveItemsAfterSave','value':function(){return!0x0;}},{'key':_0x57c234('0xc8'),'value':function(_0x5c6336,_0x8bf2f7){}},{'key':_0x57c234('0x1db'),'value':function(_0x1a86ca,_0x321220){var _0x550210=_0x57c234,_0x973e94,_0x2e5ce5,_0x43909f,_0x1f89d4,_0x333770=JSON[_0x550210('0x104a')](_0x1a86ca),_0x562d7f=_0x321220[0x1]['html'];null!=_0x333770&&void 0x0!==_0x333770&&void 0x0!==_0x321220[0x1][_0x550210('0x10ce')]&&null!=_0x321220[0x1]['sort-function']&&_0x333770[_0x550210('0x6f0')](_0x321220[0x1][_0x550210('0x10ce')]);for(var _0x325d2a=$(_0x550210('0xcc4')['concat'](_0x321220[0x0],'_div_inner\x22>')),_0x5eaac7=0x0;_0x5eaac7<_0x333770[_0x550210('0x13')];_0x5eaac7++){for(var _0x2ab01f in(_0x2e5ce5=_0x333770[_0x5eaac7],void 0x0!==_0x321220[0x1][_0x550210('0xffc')]&&null!=_0x321220[0x1][_0x550210('0xffc')]&&(_0x2e5ce5=_0x321220[0x1][_0x550210('0xffc')][_0x550210('0x2be')](this,[_0x2e5ce5])),_0x973e94=(_0x973e94=(_0x973e94=(_0x973e94=_0x562d7f)[_0x550210('0xd06')]('#_delete_#',_0x550210('0x213')))[_0x550210('0xd06')](_0x550210('0xa0'),_0x550210('0xe0c')))[_0x550210('0xd06')](/#_id_#/g,_0x2e5ce5['id']),_0x2e5ce5))void 0x0!==(_0x1f89d4=_0x2e5ce5[_0x2ab01f])&&null!=_0x1f89d4&&_0x550210('0x2fd')==typeof _0x1f89d4&&(_0x1f89d4=_0x1f89d4['replace'](/(?:\r\n|\r|\n)/g,_0x550210('0x8ec'))),_0x973e94=_0x973e94[_0x550210('0xd06')]('#_'[_0x550210('0xda9')](_0x2ab01f,'_#'),_0x1f89d4);void 0x0!==_0x321220[0x1][_0x550210('0xb9b')]&&null!=_0x321220[0x1][_0x550210('0xb9b')]&&(_0x973e94=_0x973e94['replace']('#_renderFunction_#',_0x321220[0x1][_0x550210('0xb9b')](_0x2e5ce5))),(_0x43909f=$(_0x973e94))['attr']('fieldId',''[_0x550210('0xda9')](_0x321220[0x0],_0x550210('0x1149'))),_0x325d2a[_0x550210('0x895')](_0x43909f);}return _0x325d2a;}},{'key':_0x57c234('0xd8f'),'value':function(_0x5a0413){var _0x372bd0=_0x57c234;$('#'['concat'](_0x5a0413[0x0]))['val'](''),$('#'[_0x372bd0('0xda9')](_0x5a0413[0x0],_0x372bd0('0x1149')))[_0x372bd0('0x276')]('');}},{'key':_0x57c234('0xc1c'),'value':function(_0x3119b0,_0x3fe4f7,_0x4512f1){var _0x2ca616=_0x57c234,_0x517363=this[_0x2ca616('0x563')][_0x2ca616('0x774')],_0x3b0d5e='',_0x209f9a=_0x3119b0[0x1][_0x2ca616('0x112a')];void 0x0!==_0x3fe4f7&&null!=_0x3fe4f7&&void 0x0!==_0x3fe4f7['id']?this['currentDataGroupItemId']=_0x3fe4f7['id']:this['currentDataGroupItemId']=null;for(var _0xa0c256=0x0;_0xa0c256<_0x209f9a[_0x2ca616('0x13')];_0xa0c256++)_0x3b0d5e+=this[_0x2ca616('0xb7c')](_0x209f9a[_0xa0c256]);_0x517363=(_0x517363=_0x517363[_0x2ca616('0xd06')](/_id_/g,''['concat'](this[_0x2ca616('0x3ed')](),_0x2ca616('0xfad'))['concat'](_0x3119b0[0x0])))['replace'](/_fields_/g,_0x3b0d5e);var _0x54dd20=this[_0x2ca616('0xed8')](0xe),_0x3d63c6=$(_0x2ca616('0x98b'));_0x3d63c6[_0x2ca616('0xb0c')]('id',_0x54dd20),_0x3d63c6[_0x2ca616('0x276')](_0x517363),_0x3d63c6[_0x2ca616('0xe05')](_0x2ca616('0xbad'))[_0x2ca616('0x48e')]({'viewMode':0x2}),_0x3d63c6[_0x2ca616('0xe05')]('.timefield')['datetimepicker']({'language':'en','pickDate':!0x1}),_0x3d63c6[_0x2ca616('0xe05')]('.datetimefield')['datetimepicker']({'language':'en'}),_0x3d63c6[_0x2ca616('0xe05')]('.colorpick')['colorpicker'](),tinymce[_0x2ca616('0xeb9')]({'selector':'#'[_0x2ca616('0xda9')](_0x3d63c6[_0x2ca616('0xb0c')]('id'),'\x20.tinymce'),'height':_0x2ca616('0x737')}),_0x3d63c6[_0x2ca616('0xe05')](_0x2ca616('0x9e1'))[_0x2ca616('0x2fa')](function(){var _0xc9f2d=new SimpleMDE({'element':$(this)[0x0]});$(this)['data']('simplemde',_0xc9f2d);}),_0x3d63c6[_0x2ca616('0xe05')](_0x2ca616('0xdb4'))[_0x2ca616('0x2fa')](function(){var _0x20368c=_0x2ca616;$(this)[_0x20368c('0x15')]()[_0x20368c('0x15')](_0x20368c('0xd3d'),$(this)[_0x20368c('0xe05')](_0x20368c('0x26b'))[_0x20368c('0xd3d')]());}),_0x3d63c6['find'](_0x2ca616('0x93e'))[_0x2ca616('0x2fa')](function(){var _0x190a91=_0x2ca616;$(this)[_0x190a91('0x15')]()['on']('change',function(_0x1e6838){var _0x37fb9a=_0x190a91,_0xccebbd=$(this)[_0x37fb9a('0xd5a')](_0x37fb9a('0xe20')),_0x51b2fa=_0xccebbd['find'](_0x37fb9a('0x1072'))['height']();_0xccebbd[_0x37fb9a('0x27b')](parseInt(_0x51b2fa,0xa));});}),this[_0x2ca616('0xfba')]=_0x3119b0,this['showDomElement']('Add\x20'[_0x2ca616('0xda9')](_0x3119b0[0x1][_0x2ca616('0xf3c')]),_0x3d63c6,null,null,!0x0),void 0x0!==_0x3fe4f7&&null!=_0x3fe4f7?this[_0x2ca616('0x848')](_0x3fe4f7,'#'[_0x2ca616('0xda9')](this[_0x2ca616('0x3ed')](),'_field_')['concat'](_0x3119b0[0x0]),_0x3119b0[0x1][_0x2ca616('0x112a')]):this[_0x2ca616('0x3e8')]('#'['concat'](this[_0x2ca616('0x3ed')](),_0x2ca616('0xfad'))[_0x2ca616('0xda9')](_0x3119b0[0x0]),_0x3119b0[0x1]['form']),$(_0x2ca616('0x5a2'))[_0x2ca616('0x78f')](),void 0x0!==_0x3fe4f7&&null!=_0x3fe4f7&&void 0x0!==_0x3fe4f7['id']?$('.groupAddBtn')['on'](_0x2ca616('0x29f'),function(_0x10a6a8){var _0x5217ab=_0x2ca616;_0x10a6a8[_0x5217ab('0x510')](),_0x10a6a8[_0x5217ab('0xefa')]();try{modJs[_0x5217ab('0xde3')](_0x4512f1);}catch(_0x5ede9b){console['log'](_0x5217ab('0xcd2')[_0x5217ab('0xda9')](_0x5ede9b[_0x5217ab('0x773')]));}return!0x1;}):$(_0x2ca616('0x5a2'))['on']('click',function(_0x4b6b72){var _0x2a183d=_0x2ca616;_0x4b6b72['preventDefault'](),_0x4b6b72[_0x2a183d('0xefa')]();try{modJs[_0x2a183d('0xe08')](_0x4512f1);}catch(_0x519ba7){console['log'](_0x2a183d('0x4d5')[_0x2a183d('0xda9')](_0x519ba7[_0x2a183d('0x773')]));}return!0x1;});}},{'key':'addDataGroup','value':function(_0x57a08c,_0x18f255){var _0x446084=_0x57c234,_0x599aef,_0x5e9949=this[_0x446084('0xfba')];$('#'[_0x446084('0xda9')](this[_0x446084('0x3ed')](),_0x446084('0xfad'))['concat'](_0x5e9949[0x0],_0x446084('0x244')))[_0x446084('0x276')](''),$('#'['concat'](this['getTableName'](),_0x446084('0xfad'))['concat'](_0x5e9949[0x0],_0x446084('0x244')))[_0x446084('0xcee')]();var _0xe4fbb8=new _0x28c13b[(_0x446084('0xf5f'))](''[_0x446084('0xda9')](this['getTableName'](),_0x446084('0xfad'))[_0x446084('0xda9')](_0x5e9949[0x0]),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':_0x446084('0x5bf')});if(_0xe4fbb8[_0x446084('0x266')]()){var _0x5457bd=_0xe4fbb8[_0x446084('0x10e6')]();if(void 0x0!==_0x5e9949[0x1][_0x446084('0xa5d')]&&null!=_0x5e9949[0x1][_0x446084('0xa5d')]){if(!(_0x599aef=_0x5e9949[0x1]['custom-validate-function'][_0x446084('0x2be')](this,[_0x5457bd]))['valid'])return $('#'[_0x446084('0xda9')](this['getTableName'](),'_field_')[_0x446084('0xda9')](_0x5e9949[0x0],_0x446084('0x244')))[_0x446084('0x276')](_0x599aef[_0x446084('0x773')]),$('#'['concat'](this['getTableName'](),_0x446084('0xfad'))[_0x446084('0xda9')](_0x5e9949[0x0],_0x446084('0x244')))[_0x446084('0x312')](),!0x1;_0x5457bd=_0x599aef[_0x446084('0xfcb')];}var _0x58aeb6='[]';_0x18f255?_0x58aeb6=_0x18f255:''!==(_0x58aeb6=$('#'[_0x446084('0xda9')](_0x5e9949[0x0]))[_0x446084('0xd3d')]())&&null!=_0x58aeb6||(_0x58aeb6='[]');var _0x2a4cf5=JSON[_0x446084('0x104a')](_0x58aeb6);_0x5457bd['id']=''[_0x446084('0xda9')](_0x5e9949[0x0],'_')[_0x446084('0xda9')](this[_0x446084('0x80c')](_0x2a4cf5)),_0x2a4cf5[_0x446084('0x91b')](_0x5457bd),void 0x0!==_0x5e9949[0x1][_0x446084('0x10ce')]&&null!=_0x5e9949[0x1][_0x446084('0x10ce')]&&_0x2a4cf5[_0x446084('0x6f0')](_0x5e9949[0x1][_0x446084('0x10ce')]),_0x58aeb6=JSON['stringify'](_0x2a4cf5);var _0x5b3041=this[_0x446084('0x1db')](_0x58aeb6,_0x5e9949);_0x57a08c&&_0x57a08c(_0x58aeb6),$('#'[_0x446084('0xda9')](_0x5e9949[0x0],'_div'))['html'](''),$('#'[_0x446084('0xda9')](_0x5e9949[0x0],_0x446084('0x1149')))[_0x446084('0x895')](_0x5b3041),this[_0x446084('0x338')](_0x5e9949,$('#'[_0x446084('0xda9')](_0x5e9949[0x0],_0x446084('0x6c')))),$('#'[_0x446084('0xda9')](_0x5e9949[0x0]))[_0x446084('0xd3d')](_0x58aeb6),this[_0x446084('0x236')](_0x5e9949),this[_0x446084('0x9d8')](),this[_0x446084('0xaa4')](_0x446084('0xae6'),_0x446084('0x2ff'));}return!0x0;}},{'key':_0x57c234('0x1145'),'value':function(_0x95b937,_0x151d75){var _0x2ecf0e=_0x57c234,_0x26e40c='';try{for(var _0x43a350=_0x95b937[_0x2ecf0e('0x44d')]('\x20'),_0x4b0cb4=0x0,_0x1d37ad=0x0;_0x1d37ad<_0x43a350['length'];_0x1d37ad++)(_0x4b0cb4+=_0x43a350[_0x1d37ad]['length']+0x1)>_0x151d75?(_0x26e40c+=''[_0x2ecf0e('0xda9')](_0x43a350[_0x1d37ad],'
'),_0x4b0cb4=0x0):_0x26e40c+=''['concat'](_0x43a350[_0x1d37ad],'\x20');}catch(_0x1ead0b){}return _0x26e40c;}},{'key':_0x57c234('0x338'),'value':function(_0x3bcaa0,_0x465210){var _0xbb86f8=_0x57c234;_0x465210[_0xbb86f8('0x1016')](_0xbb86f8('0xbaf'),_0x3bcaa0),_0x465210[_0xbb86f8('0x1016')](_0xbb86f8('0x62a'),!0x0),_0x465210['sortable']({'create':function(){var _0x4558b7=_0xbb86f8;$(this)[_0x4558b7('0x27b')]($(this)[_0x4558b7('0x27b')]());},'ui-floating':!0x1,'start':function(_0x2beaf5,_0x376cd9){var _0x1af033=_0xbb86f8;$(_0x1af033('0xb25'))['sortable']({'sort':function(_0x52d6be,_0x6284a4){var _0x4e8b5d=_0x1af033,_0x24b6b0=$(_0x52d6be[_0x4e8b5d('0x1d7')]);if(!/html|body/i['test'](_0x24b6b0[_0x4e8b5d('0x359')]()[0x0]['tagName'])){var _0x5de55b=_0x52d6be[_0x4e8b5d('0x1075')]-_0x24b6b0['offsetParent']()[_0x4e8b5d('0x830')]()[_0x4e8b5d('0x5b')]-_0x6284a4[_0x4e8b5d('0x1d2')][_0x4e8b5d('0xc7d')](!0x0)/0x2;_0x6284a4[_0x4e8b5d('0x1d2')]['css']({'top':''['concat'](_0x5de55b,'px')});}}});},'revert':!0x0,'stop':function(){var _0x53b3ac=_0xbb86f8;modJs[_0x53b3ac('0x236')]($(this)[_0x53b3ac('0x1016')](_0x53b3ac('0xbaf')));},'axis':'y','scroll':!0x1,'placeholder':_0xbb86f8('0xca9'),'cursor':_0xbb86f8('0xa65')});}},{'key':_0x57c234('0x236'),'value':function(_0x45dcd2,_0x2abc50){var _0x31cd18=_0x57c234,_0x446714,_0xe08d37=[],_0x203b9b=$('#'['concat'](_0x45dcd2[0x0],_0x31cd18('0xc8e'))['concat'](_0x45dcd2[0x0],_0x31cd18('0x4b7'))),_0x31f95c=$('#'[_0x31cd18('0xda9')](_0x45dcd2[0x0]))['val']();''!==_0x31f95c&&null!=_0x31f95c||(_0x31f95c='[]');var _0x2cb41c=JSON[_0x31cd18('0x104a')](_0x31f95c);_0x203b9b[_0x31cd18('0x2fa')](function(){var _0x34c9f1=_0x31cd18;for(var _0x3c7761 in(_0x446714=$(this)[_0x34c9f1('0xb0c')]('id'),_0x2cb41c))if(_0x2cb41c[_0x3c7761]['id']===_0x446714){_0xe08d37[_0x34c9f1('0x91b')](_0x2cb41c[_0x3c7761]);break;}}),$('#'[_0x31cd18('0xda9')](_0x45dcd2[0x0]))['val'](JSON[_0x31cd18('0xf0b')](_0xe08d37)),null!=_0x2abc50&&_0x2abc50(_0xe08d37);}},{'key':'editDataGroup','value':function(_0x3c9041,_0xe81aa2){var _0x5e0b08=_0x57c234,_0x5f41c1=this[_0x5e0b08('0xfba')],_0x291e66=this[_0x5e0b08('0x66d')],_0x5437c1=new _0x28c13b[(_0x5e0b08('0xf5f'))](''[_0x5e0b08('0xda9')](this[_0x5e0b08('0x3ed')](),'_field_')[_0x5e0b08('0xda9')](_0x5f41c1[0x0]),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':_0x5e0b08('0x5bf')});if(_0x5437c1['checkValues']()){var _0x14799a=_0x5437c1[_0x5e0b08('0x10e6')]();if(void 0x0!==_0x5f41c1[0x1]['custom-validate-function']&&null!=_0x5f41c1[0x1][_0x5e0b08('0xa5d')]){var _0xf5d291=_0x5f41c1[0x1][_0x5e0b08('0xa5d')][_0x5e0b08('0x2be')](this,[_0x14799a]);if(!_0xf5d291['valid'])return $('#'[_0x5e0b08('0xda9')](this[_0x5e0b08('0x3ed')](),'_field_')[_0x5e0b08('0xda9')](_0x5f41c1[0x0],_0x5e0b08('0x244')))[_0x5e0b08('0x276')](_0xf5d291[_0x5e0b08('0x773')]),$('#'[_0x5e0b08('0xda9')](this[_0x5e0b08('0x3ed')](),_0x5e0b08('0xfad'))[_0x5e0b08('0xda9')](_0x5f41c1[0x0],_0x5e0b08('0x244')))['show'](),!0x1;_0x14799a=_0xf5d291[_0x5e0b08('0xfcb')];}if(this[_0x5e0b08('0x2d4')](_0x14799a)){var _0x1f7086='[]';_0xe81aa2?_0x1f7086=_0xe81aa2:''!==(_0x1f7086=$('#'[_0x5e0b08('0xda9')](_0x5f41c1[0x0]))[_0x5e0b08('0xd3d')]())&&null!=_0x1f7086||(_0x1f7086='[]');for(var _0x6eabe7=JSON[_0x5e0b08('0x104a')](_0x1f7086),_0x585d7f={},_0x43b347=-0x1,_0x150e9d=[],_0x145c13=0x0;_0x145c13<_0x6eabe7['length'];_0x145c13++){var _0x5b53b4=_0x6eabe7[_0x145c13];_0x5b53b4['id']===_0x291e66&&(_0x585d7f=_0x5b53b4,_0x43b347=_0x145c13),_0x150e9d[_0x5e0b08('0x91b')](_0x5b53b4);}_0x14799a['id']=_0x585d7f['id'],_0x150e9d[_0x43b347]=_0x14799a,void 0x0!==_0x5f41c1[0x1]['sort-function']&&null!=_0x5f41c1[0x1][_0x5e0b08('0x10ce')]&&_0x150e9d[_0x5e0b08('0x6f0')](_0x5f41c1[0x1]['sort-function']),_0x1f7086=JSON[_0x5e0b08('0xf0b')](_0x150e9d),$('#'[_0x5e0b08('0xda9')](_0x5f41c1[0x0]))[_0x5e0b08('0xd3d')](_0x1f7086);var _0x1b5614=this[_0x5e0b08('0x1db')](_0x1f7086,_0x5f41c1);_0x3c9041&&_0x3c9041(_0x150e9d),this[_0x5e0b08('0x236')](_0x5f41c1),$('#'[_0x5e0b08('0xda9')](_0x5f41c1[0x0],'_div'))['html'](''),$('#'['concat'](_0x5f41c1[0x0],_0x5e0b08('0x1149')))[_0x5e0b08('0x895')](_0x1b5614),this[_0x5e0b08('0x338')](_0x5f41c1,$('#'[_0x5e0b08('0xda9')](_0x5f41c1[0x0],_0x5e0b08('0x6c')))),this[_0x5e0b08('0x9d8')](),this[_0x5e0b08('0xaa4')](_0x5e0b08('0x941'),_0x5e0b08('0x2ff'));}}return!0x0;}},{'key':_0x57c234('0xbde'),'value':function(_0x3b8a8d,_0x1ae011,_0x1e9c51){var _0x132afa=_0x57c234,_0x389f22,_0x46f939=_0x3b8a8d[_0x132afa('0xdd7')](0x0,_0x3b8a8d[_0x132afa('0x4d8')]('_'));_0x389f22=_0x1ae011?decodeURI(_0x1ae011):$('#'[_0x132afa('0xda9')](_0x46f939))[_0x132afa('0xd3d')]();for(var _0x18a54f=JSON[_0x132afa('0x104a')](_0x389f22),_0x5546eb={},_0x3861cc=0x0;_0x3861cc<_0x18a54f[_0x132afa('0x13')];_0x3861cc++){var _0x35487a=_0x18a54f[_0x3861cc];_0x35487a['id']===_0x3b8a8d&&(_0x5546eb=_0x35487a);}_0x1e9c51=_0x1e9c51?JSON[_0x132afa('0x104a')](decodeURI(_0x1e9c51)):$('#'[_0x132afa('0xda9')](_0x46f939))['data']('field'),this[_0x132afa('0xc1c')](_0x1e9c51,_0x5546eb);}},{'key':_0x57c234('0x80c'),'value':function(_0x59a05a){var _0x289227=_0x57c234;for(var _0x374f1a,_0x4483ff=0x1,_0x514bdb=0x0;_0x514bdb<_0x59a05a[_0x289227('0x13')];_0x514bdb++){var _0x4f67e9=_0x59a05a[_0x514bdb];void 0x0!==_0x4f67e9['id']&&null!=_0x4f67e9['id']||(_0x4f67e9['id']=0x1),(_0x374f1a=_0x4f67e9['id'][_0x289227('0xdd7')](_0x4f67e9['id'][_0x289227('0x4d8')]('_')+0x1,_0x4f67e9['id'][_0x289227('0x13')]))>=_0x4483ff&&(_0x4483ff=parseInt(_0x374f1a,0xa)+0x1);}return _0x4483ff;}},{'key':_0x57c234('0x139'),'value':function(_0x2758e1,_0x5d260e){var _0x258fa2=_0x57c234,_0x28ab7e,_0x2d2c29=_0x2758e1[_0x258fa2('0xdd7')](0x0,_0x2758e1[_0x258fa2('0x4d8')]('_'));_0x28ab7e=_0x5d260e?decodeURI(_0x5d260e):$('#'[_0x258fa2('0xda9')](_0x2d2c29))[_0x258fa2('0xd3d')]();for(var _0x2828e9=JSON[_0x258fa2('0x104a')](_0x28ab7e),_0x31488a=[],_0xb8ede=0x0;_0xb8ede<_0x2828e9[_0x258fa2('0x13')];_0xb8ede++){var _0x1f8029=_0x2828e9[_0xb8ede];_0x1f8029['id']!==_0x2758e1&&_0x31488a[_0x258fa2('0x91b')](_0x1f8029);}$('#'[_0x258fa2('0xda9')](_0x2d2c29))[_0x258fa2('0xd3d')](JSON[_0x258fa2('0xf0b')](_0x31488a)),$('#'[_0x258fa2('0xda9')](_0x2758e1))[_0x258fa2('0xaa6')](),this['showMessage'](_0x258fa2('0x111f'),_0x258fa2('0xbe5'));}},{'key':'fillForm','value':function(_0x10436b,_0x34d00c,_0x2dc94f){var _0x44822a=_0x57c234,_0x127817;null!=_0x2dc94f&&void 0x0!==_0x2dc94f||(_0x2dc94f=this['getFormFields']()),null!=_0x34d00c&&void 0x0!==_0x34d00c&&''!==_0x34d00c||(_0x34d00c='#'[_0x44822a('0xda9')](this[_0x44822a('0x3ed')](),_0x44822a('0xe32')));for(var _0x46d416=0x0;_0x46d416<_0x2dc94f[_0x44822a('0x13')];_0x46d416++)if(_0x44822a('0x2a5')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')])_0x44822a('0xce4')!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&''!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],'_date'))['datepicker'](_0x44822a('0x8d5'),_0x10436b[_0x2dc94f[_0x46d416][0x0]]);else{if(_0x44822a('0x869')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')])null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&($(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],_0x44822a('0xa09')))[_0x44822a('0xbc7')](_0x44822a('0x8d5'),_0x10436b[_0x2dc94f[_0x46d416][0x0]]),$(''['concat'](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))['val'](_0x10436b[_0x2dc94f[_0x46d416][0x0]]));else{if(_0x44822a('0x3aa')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')]||_0x44822a('0x23c')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')]){if(_0x44822a('0x40f')!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&''!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]){var _0x47048c=_0x10436b[_0x2dc94f[_0x46d416][0x0]]['split']('\x20'),_0x3d3d72=_0x47048c[0x0][_0x44822a('0x44d')]('-'),_0x1a1398=_0x47048c[0x1][_0x44822a('0x44d')](':');$(''['concat'](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],_0x44822a('0x7d8')))[_0x44822a('0x1016')](_0x44822a('0xd76'))[_0x44822a('0x1d')](new Date(_0x3d3d72[0x0],parseInt(_0x3d3d72[0x1],0xa)-0x1,_0x3d3d72[0x2],_0x1a1398[0x0],_0x1a1398[0x1],_0x1a1398[0x2]));}}else{if(_0x44822a('0xf3c')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')])$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x276')](_0x10436b[_0x2dc94f[_0x46d416][0x0]]);else{if(_0x44822a('0xa49')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')]){if(void 0x0!==_0x2dc94f[_0x46d416][0x1][_0x44822a('0xb91')]&&null!=_0x2dc94f[_0x46d416][0x1][_0x44822a('0xb91')]){var _0x13aace=this[_0x44822a('0x677')](_0x2dc94f[_0x46d416]);_0x127817=this[_0x44822a('0x1076')][_0x13aace][_0x10436b[_0x2dc94f[_0x46d416][0x0]]];}else _0x127817=_0x10436b[_0x2dc94f[_0x46d416][0x0]];if(void 0x0===_0x127817||null==_0x127817)_0x127817='';else try{_0x127817=_0x127817['replace'](/(?:\r\n|\r|\n)/g,_0x44822a('0x8ec'));}catch(_0x585f16){}if(void 0x0!==_0x2dc94f[_0x46d416][0x1][_0x44822a('0x5fb')]&&_0x2dc94f[_0x46d416][0x1][_0x44822a('0x5fb')]&&$[_0x44822a('0xd22')](_0x2dc94f[_0x46d416][0x1][_0x44822a('0x5fb')]))try{_0x127817=_0x2dc94f[_0x46d416][0x1][_0x44822a('0x5fb')](_0x127817);}catch(_0x49aab1){}$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x276')](_0x127817);}else{if(_0x44822a('0x881')===_0x2dc94f[_0x46d416][0x1]['type'])null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&''!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&($(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x276')](_0x10436b[_0x2dc94f[_0x46d416][0x0]]),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))['attr'](_0x44822a('0xd3d'),_0x10436b[_0x2dc94f[_0x46d416][0x0]]),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x312')](),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],_0x44822a('0xf85')))['show'](),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],_0x44822a('0xe6')))[_0x44822a('0x312')]()),!0x0===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x2b5')]&&$(''['concat'](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],'_upload'))[_0x44822a('0xaa6')]();else{if(_0x44822a('0x4ce')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')])void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&''!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]||(_0x10436b[_0x2dc94f[_0x46d416][0x0]]='NULL'),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')['concat'](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0xd3d')](_0x10436b[_0x2dc94f[_0x46d416][0x0]]);else{if(_0x44822a('0x15')===_0x2dc94f[_0x46d416][0x1]['type'])void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&''!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]||(_0x10436b[_0x2dc94f[_0x46d416][0x0]]=_0x44822a('0x855')),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')['concat'](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x15')](_0x44822a('0xd3d'),_0x10436b[_0x2dc94f[_0x46d416][0x0]]);else{if('select2multi'===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')]){void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&''!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]||(_0x10436b[_0x2dc94f[_0x46d416][0x0]]=_0x44822a('0x855'));var _0x4520db=[];if(void 0x0!==_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&null!=_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&''!==_0x10436b[_0x2dc94f[_0x46d416][0x0]])try{_0x4520db=JSON[_0x44822a('0x104a')](_0x10436b[_0x2dc94f[_0x46d416][0x0]]);}catch(_0x1ff70d){}$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x15')](_0x44822a('0xd3d'),_0x4520db);var _0x4852de=$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')['concat'](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0xe05')](_0x44822a('0x1072'))[_0x44822a('0x27b')]();$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')['concat'](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0xe05')]('.controls')[_0x44822a('0x2d6')]('min-height',''[_0x44822a('0xda9')](_0x4852de,'px')),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x2d6')](_0x44822a('0xb87'),''[_0x44822a('0xda9')](_0x4852de,'px'));}else{if('datagroup'===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')])try{var _0xd81e60=this[_0x44822a('0x1db')](_0x10436b[_0x2dc94f[_0x46d416][0x0]],_0x2dc94f[_0x46d416]);$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))['val'](_0x10436b[_0x2dc94f[_0x46d416][0x0]]),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],'_div'))[_0x44822a('0x276')](''),$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')['concat'](_0x2dc94f[_0x46d416][0x0],_0x44822a('0x1149')))[_0x44822a('0x895')](_0xd81e60),this[_0x44822a('0x338')](_0x2dc94f[_0x46d416],$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0],_0x44822a('0x6c'))));}catch(_0x40630e){}else{if('signature'===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')])''===_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&void 0x0===_0x10436b[_0x2dc94f[_0x46d416][0x0]]&&null==_0x10436b[_0x2dc94f[_0x46d416][0x0]]||$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')['concat'](_0x2dc94f[_0x46d416][0x0]))['data']('signaturePad')[_0x44822a('0x182')](_0x10436b[_0x2dc94f[_0x46d416][0x0]]);else{if(_0x44822a('0xc00')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')])$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x1016')](_0x44822a('0xc00'))['value'](_0x10436b[_0x2dc94f[_0x46d416][0x0]]);else{if(_0x44822a('0x9e3')===_0x2dc94f[_0x46d416][0x1][_0x44822a('0x921')]){var _0x4c2455=$(''[_0x44822a('0xda9')](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0x1016')]('codemirror');_0x4c2455&&_0x4c2455['getDoc']()[_0x44822a('0x8d5')](_0x10436b[_0x2dc94f[_0x46d416][0x0]]);}else $(''['concat'](_0x34d00c,'\x20#')[_0x44822a('0xda9')](_0x2dc94f[_0x46d416][0x0]))[_0x44822a('0xd3d')](_0x10436b[_0x2dc94f[_0x46d416][0x0]]);}}}}}}}}}}}}}},{'key':_0x57c234('0x581'),'value':function(){var _0x48927d=_0x57c234;$('#'[_0x48927d('0xda9')](this[_0x48927d('0x3ed')](),_0x48927d('0xe32')))[_0x48927d('0xcee')](),$('#'[_0x48927d('0xda9')](this[_0x48927d('0x3ed')]()))[_0x48927d('0x312')]();}},{'key':'renderFormField','value':function(_0x14225d){var _0x44401f=_0x57c234,_0x564082=0x0;if(void 0x0===this[_0x44401f('0x16a')][_0x14225d[0x1][_0x44401f('0x921')]]||null==this['fieldTemplates'][_0x14225d[0x1][_0x44401f('0x921')]])return'';var _0x47ff43=this[_0x44401f('0x16a')][_0x14225d[0x1][_0x44401f('0x921')]];if(_0x14225d[0x1][_0x44401f('0xf3c')]=this['gt'](_0x14225d[0x1][_0x44401f('0xf3c')]),_0x44401f('0xea1')!==_0x14225d[0x1][_0x44401f('0x2c4')]&&_0x44401f('0xa8')!==_0x14225d[0x1][_0x44401f('0x2c4')]&&_0x44401f('0xb61')!==_0x14225d[0x1]['validation']&&'placeholder'!==_0x14225d[0x1][_0x44401f('0x921')]&&_0x14225d[0x1][_0x44401f('0xf3c')][_0x44401f('0xf00')]('*')<0x0&&(['select',_0x44401f('0x15')]['indexOf'](_0x14225d[0x1][_0x44401f('0x921')])>=0x0&&!0x0===_0x14225d[0x1]['allow-null']||(_0x14225d[0x1]['label']=''['concat'](_0x14225d[0x1][_0x44401f('0xf3c')],'*'))),'select'===_0x14225d[0x1]['type']||_0x44401f('0x15')===_0x14225d[0x1][_0x44401f('0x921')]||'select2multi'===_0x14225d[0x1][_0x44401f('0x921')]){if(_0x47ff43=(_0x47ff43=_0x47ff43[_0x44401f('0xd06')](/_id_/g,_0x14225d[0x0]))[_0x44401f('0xd06')](/_label_/g,_0x14225d[0x1][_0x44401f('0xf3c')]),void 0x0!==_0x14225d[0x1][_0x44401f('0x5f3')]&&null!=_0x14225d[0x1][_0x44401f('0x5f3')])_0x47ff43=_0x47ff43[_0x44401f('0xd06')]('_options_',this[_0x44401f('0x130')](_0x14225d[0x1]['source'],_0x14225d));else{if(void 0x0!==_0x14225d[0x1][_0x44401f('0xb91')]&&null!=_0x14225d[0x1]['remote-source']){var _0x55ff17=this[_0x44401f('0x677')](_0x14225d);_0x47ff43=_0x47ff43[_0x44401f('0xd06')]('_options_',this['renderFormSelectOptionsRemote'](this[_0x44401f('0x1076')][_0x55ff17],_0x14225d));}}}else{if('colorpick'===_0x14225d[0x1][_0x44401f('0x921')])_0x47ff43=(_0x47ff43=_0x47ff43['replace'](/_id_/g,_0x14225d[0x0]))[_0x44401f('0xd06')](/_label_/g,_0x14225d[0x1][_0x44401f('0xf3c')]);else{if(_0x44401f('0x2a5')===_0x14225d[0x1][_0x44401f('0x921')])_0x47ff43=(_0x47ff43=_0x47ff43[_0x44401f('0xd06')](/_id_/g,_0x14225d[0x0]))['replace'](/_label_/g,_0x14225d[0x1][_0x44401f('0xf3c')]);else{if(_0x44401f('0x3aa')===_0x14225d[0x1]['type'])_0x47ff43=(_0x47ff43=_0x47ff43['replace'](/_id_/g,_0x14225d[0x0]))[_0x44401f('0xd06')](/_label_/g,_0x14225d[0x1][_0x44401f('0xf3c')]);else{if(_0x44401f('0x23c')===_0x14225d[0x1]['type'])_0x47ff43=(_0x47ff43=_0x47ff43['replace'](/_id_/g,_0x14225d[0x0]))[_0x44401f('0xd06')](/_label_/g,_0x14225d[0x1][_0x44401f('0xf3c')]);else{if('fileupload'===_0x14225d[0x1][_0x44401f('0x921')]){_0x47ff43=(_0x47ff43=_0x47ff43['replace'](/_id_/g,_0x14225d[0x0]))[_0x44401f('0xd06')](/_label_/g,_0x14225d[0x1][_0x44401f('0xf3c')]);var _0x1752f5=this['getCurrentProfile']();_0x564082=null!=_0x1752f5&&void 0x0!==_0x1752f5?_0x1752f5['id']:-0x1*this['getUser']()['id'],_0x47ff43=(_0x47ff43=_0x47ff43['replace'](/_userId_/g,_0x564082))[_0x44401f('0xd06')](/_group_/g,this[_0x44401f('0xe3e')]),_0x47ff43=(_0x47ff43=void 0x0!==_0x14225d[0x1][_0x44401f('0x761')]&&null!=_0x14225d[0x1][_0x44401f('0x761')]?_0x47ff43[_0x44401f('0xd06')](/_filetypes_/g,_0x14225d[0x1]['filetypes']):_0x47ff43[_0x44401f('0xd06')](/_filetypes_/g,_0x44401f('0x6bc')))['replace'](/_rand_/g,this['generateRandom'](0xe));}else _0x44401f('0xc5b')===_0x14225d[0x1]['type']||_0x44401f('0x6c4')===_0x14225d[0x1][_0x44401f('0x921')]||_0x44401f('0xdbf')===_0x14225d[0x1]['type']||_0x14225d[0x1][_0x44401f('0x921')],_0x47ff43=(_0x47ff43=_0x47ff43[_0x44401f('0xd06')](/_id_/g,_0x14225d[0x0]))['replace'](/_label_/g,_0x14225d[0x1][_0x44401f('0xf3c')]);}}}}}return _0x47ff43=void 0x0!==_0x14225d[0x1][_0x44401f('0x2c4')]&&null!=_0x14225d[0x1][_0x44401f('0x2c4')]&&''!==_0x14225d[0x1][_0x44401f('0x2c4')]?_0x47ff43[_0x44401f('0xd06')](/_validation_/g,_0x44401f('0xd58')[_0x44401f('0xda9')](_0x14225d[0x1][_0x44401f('0x2c4')],'\x22')):_0x47ff43[_0x44401f('0xd06')](/_validation_/g,''),_0x47ff43=void 0x0!==_0x14225d[0x1][_0x44401f('0x8b8')]&&null!==_0x14225d[0x1]['help']?(_0x47ff43=_0x47ff43['replace'](/_helpline_/g,_0x14225d[0x1][_0x44401f('0x8b8')]))[_0x44401f('0xd06')](/_hidden_class_help_/g,''):(_0x47ff43=_0x47ff43[_0x44401f('0xd06')](/_helpline_/g,''))[_0x44401f('0xd06')](/_hidden_class_help_/g,_0x44401f('0xcee')),_0x47ff43=void 0x0!==_0x14225d[0x1][_0x44401f('0xa49')]&&null!==_0x14225d[0x1]['placeholder']?_0x47ff43[_0x44401f('0xd06')](/_placeholder_/g,_0x44401f('0x1099')[_0x44401f('0xda9')](_0x14225d[0x1][_0x44401f('0xa49')],'\x22')):_0x47ff43[_0x44401f('0xd06')](/_placeholder_/g,''),_0x47ff43=void 0x0!==_0x14225d[0x1][_0x44401f('0x6e')]&&null!==_0x14225d[0x1][_0x44401f('0x6e')]?_0x47ff43[_0x44401f('0xd06')](/_mask_/g,_0x44401f('0xf71')[_0x44401f('0xda9')](_0x14225d[0x1][_0x44401f('0x6e')],'\x22')):_0x47ff43[_0x44401f('0xd06')](/_mask_/g,'');}},{'key':_0x57c234('0x130'),'value':function(_0x46d5e9,_0x20090d){var _0x2a6917=_0x57c234,_0x1557be='';null!=_0x20090d&&void 0x0!==_0x20090d&&!0x0===_0x20090d[0x1][_0x2a6917('0xd4')]&&(void 0x0!==_0x20090d[0x1][_0x2a6917('0x10f3')]&&null!=_0x20090d[0x1][_0x2a6917('0x10f3')]?_0x1557be+=_0x2a6917('0x9ae')[_0x2a6917('0xda9')](this['gt'](_0x20090d[0x1][_0x2a6917('0x10f3')]),_0x2a6917('0x10bf')):_0x1557be+=_0x2a6917('0xb1e'));var _0x4324a3=[];for(var _0x6f53f1 in _0x46d5e9)_0x4324a3['push'](_0x46d5e9[_0x6f53f1]);!0x0===_0x20090d[0x1]['sort']&&_0x4324a3[_0x2a6917('0x6f0')](function(_0x5f21c4,_0x1c848d){return(_0x5f21c4=_0x5f21c4[0x1])<(_0x1c848d=_0x1c848d[0x1])?-0x1:_0x5f21c4>_0x1c848d?0x1:0x0;});for(var _0x1edd4a=0x0;_0x1edd4a<_0x4324a3['length'];_0x1edd4a++){var _0x23579e=_0x4324a3[_0x1edd4a][0x0],_0x1a1a10=_0x4324a3[_0x1edd4a][0x1],_0x54c647='_val_';_0x1557be+=_0x54c647=(_0x54c647=_0x54c647['replace'](_0x2a6917('0xdf0'),_0x23579e))['replace']('_val_',this['gt'](_0x1a1a10));}return _0x1557be;}},{'key':'renderFormSelectOptionsRemote','value':function(_0x4263bc,_0x35c30c){var _0x2955cf=_0x57c234,_0x2091b4='';!0x0===_0x35c30c[0x1][_0x2955cf('0xd4')]&&(void 0x0!==_0x35c30c[0x1][_0x2955cf('0x10f3')]&&null!=_0x35c30c[0x1][_0x2955cf('0x10f3')]?_0x2091b4+=_0x2955cf('0x9ae')['concat'](this['gt'](_0x35c30c[0x1][_0x2955cf('0x10f3')]),''):_0x2091b4+=_0x2955cf('0xb1e'));var _0x40ebd6=[];for(var _0x3970b6 in _0x4263bc)_0x40ebd6[_0x2955cf('0x91b')]([_0x3970b6,_0x4263bc[_0x3970b6]]);_0x2955cf('0x9ed')===_0x35c30c[0x1]['sort']&&_0x40ebd6[_0x2955cf('0x6f0')](function(_0x2125ef,_0x188c07){return(_0x2125ef=_0x2125ef[0x1])<(_0x188c07=_0x188c07[0x1])?-0x1:_0x2125ef>_0x188c07?0x1:0x0;});for(var _0x277195=0x0;_0x277195<_0x40ebd6['length'];_0x277195++){var _0xc7f157=_0x40ebd6[_0x277195][0x0],_0xd623a4=_0x40ebd6[_0x277195][0x1],_0x1bb0fa='_val_';_0x2091b4+=_0x1bb0fa=(_0x1bb0fa=_0x1bb0fa[_0x2955cf('0xd06')]('_id_',_0xc7f157))[_0x2955cf('0xd06')]('_val_',this['gt'](_0xd623a4));}return _0x2091b4;}},{'key':_0x57c234('0xe09'),'value':function(_0x28d12c){this['customTemplates']=_0x28d12c;}},{'key':_0x57c234('0xfc8'),'value':function(_0x4c38eb){var _0x31912c=_0x57c234;this[_0x31912c('0xd05')]=_0x4c38eb;}},{'key':'getCustomTemplate','value':function(_0x4674d7){var _0x2f0ba0=_0x57c234;return this[_0x2f0ba0('0x59a')][_0x4674d7];}},{'key':_0x57c234('0x1ae'),'value':function(_0x5b2a1e){this['fieldTemplates']=_0x5b2a1e;}},{'key':_0x57c234('0x314'),'value':function(_0x376181){return'';}},{'key':_0x57c234('0x4fb'),'value':function(){var _0x1f34cb=_0x57c234;this[_0x1f34cb('0xaaa')]={};}},{'key':_0x57c234('0x7c'),'value':function(){return this['showAddNew'];}},{'key':'getAddNewLabel','value':function(){var _0xf5c07=_0x57c234;return _0xf5c07('0x7ac');}},{'key':'setShowAddNew','value':function(_0x5d8ea8){var _0x48cd23=_0x57c234;this[_0x48cd23('0x7b5')]=_0x5d8ea8;}},{'key':_0x57c234('0xa7b'),'value':function(_0x598c7f){this['showDelete']=_0x598c7f;}},{'key':'setShowEdit','value':function(_0x1e74bb){var _0x1fccdb=_0x57c234;this[_0x1fccdb('0x1153')]=_0x1e74bb;}},{'key':'setShowSave','value':function(_0x4be86){this['showSave']=_0x4be86;}},{'key':'setShowCancel','value':function(_0x336da0){var _0x28c37e=_0x57c234;this[_0x28c37e('0xb4f')]=_0x336da0;}},{'key':_0x57c234('0x3f6'),'value':function(){return{};}},{'key':_0x57c234('0x931'),'value':function(_0x93b2ae){var _0x392ad6=_0x57c234;return modJs['getActionButtonsHtml'](_0x93b2ae[_0x392ad6('0x1045')][0x0],_0x93b2ae['aData']);}},{'key':_0x57c234('0xe26'),'value':function(_0x109ad8,_0x2c1074){var _0x1dde55=_0x57c234,_0x9563fb='_edit__delete__clone_';return _0x9563fb=this[_0x1dde55('0x7b5')]?_0x9563fb[_0x1dde55('0xd06')](_0x1dde55('0x583'),_0x1dde55('0xb05')):_0x9563fb[_0x1dde55('0xd06')]('_clone_',''),_0x9563fb=this['showDelete']?_0x9563fb['replace']('_delete_',_0x1dde55('0x9a6')):_0x9563fb[_0x1dde55('0xd06')]('_delete_',''),_0x9563fb=(_0x9563fb=(_0x9563fb=this[_0x1dde55('0x1153')]?_0x9563fb[_0x1dde55('0xd06')]('_edit_',_0x1dde55('0xbd4')):_0x9563fb[_0x1dde55('0xd06')](_0x1dde55('0x6d7'),''))[_0x1dde55('0xd06')](/_id_/g,_0x109ad8))[_0x1dde55('0xd06')](/_BASE_/g,this[_0x1dde55('0x598')]);}},{'key':_0x57c234('0xed8'),'value':function(_0x4d2961){var _0x4fb442=_0x57c234;for(var _0xb13fda=new Date(),_0x1e31be=_0x4fb442('0x4bc'),_0x188653='',_0x5077d9=_0x4d2961;_0x5077d9>0x0;--_0x5077d9)_0x188653+=_0x1e31be[Math[_0x4fb442('0x9ee')](Math['random']()*(_0x1e31be['length']-0x1))];return _0x188653+_0xb13fda['getTime']();}},{'key':_0x57c234('0x271'),'value':function(_0x19a604,_0x4b41c2){var _0x19ab96=_0x57c234,_0x18a44c=document['getElementById'](_0x19a604),_0x29df9c='';return _0x18a44c[_0x19ab96('0x30')][_0x19ab96('0x4d8')]('.')>0x0&&(_0x29df9c=_0x18a44c[_0x19ab96('0x30')]['substring'](_0x18a44c[_0x19ab96('0x30')][_0x19ab96('0x4d8')]('.')+0x1,_0x18a44c[_0x19ab96('0x30')]['length'])),_0x29df9c=_0x29df9c['toLowerCase'](),!(_0x4b41c2[_0x19ab96('0x44d')](',')['indexOf'](_0x29df9c)<0x0&&(_0x18a44c[_0x19ab96('0x30')]='',this[_0x19ab96('0xaa4')]('File\x20Type\x20Error',_0x19ab96('0x1a8')),this[_0x19ab96('0xa7a')](_0x19a604),0x1));}},{'key':_0x57c234('0xa7a'),'value':function(_0xdd66a6){var _0x2ff049=_0x57c234,_0x28e39e=$('#'[_0x2ff049('0xda9')](_0xdd66a6));_0x28e39e[_0x2ff049('0x742')](_0x28e39e=_0x28e39e['val']('')[_0x2ff049('0x163')](!0x0));}},{'key':_0x57c234('0x57'),'value':function(_0xb5459){var _0x4f229d=_0x57c234;return'1'===this[_0x4f229d('0x145')]&&(_0xb5459=window[_0x4f229d('0x52b')](_0xb5459)),_0xb5459;}},{'key':'getClientDate','value':function(_0x27e2df){var _0x3c202a=_0x57c234,_0x30e0cd=this[_0x3c202a('0x1af')]();return _0x27e2df[_0x3c202a('0x1b')](0x3c*_0x30e0cd);}},{'key':_0x57c234('0x1af'),'value':function(){var _0x1412ac=_0x57c234,_0x14e491=new Date(),_0x38b0cb=new Date(_0x14e491[_0x1412ac('0x705')](),0x0,0x1,0x0,0x0,0x0,0x0),_0x26d392=_0x38b0cb[_0x1412ac('0xdb2')]();return(_0x38b0cb-new Date(_0x26d392[_0x1412ac('0xdd7')](0x0,_0x26d392['lastIndexOf']('\x20')-0x1)))/0x36ee80;}},{'key':_0x57c234('0x1aa'),'value':function(){return null;}},{'key':'showLoader','value':function(){var _0x4c8d96=_0x57c234;$('#iceloader')[_0x4c8d96('0x312')]();}},{'key':_0x57c234('0xf0c'),'value':function(){var _0xfd296e=_0x57c234;$(_0xfd296e('0x240'))[_0xfd296e('0xcee')]();}},{'key':_0x57c234('0x857'),'value':function(_0x8de69){var _0x4b747b=_0x57c234,_0x8ce554='';for(var _0x45a229 in _0x8de69)_0x8ce554+='__text__'[_0x4b747b('0xd06')]('__val__',_0x45a229)[_0x4b747b('0xd06')](_0x4b747b('0x246'),_0x8de69[_0x45a229]);return _0x8ce554;}},{'key':_0x57c234('0x3d0'),'value':function(_0x2346d9,_0xfc0277){var _0x240a09=_0x57c234;return void 0x0!==modulesInstalled&&null!==modulesInstalled&&0x1===modulesInstalled[''[_0x240a09('0xda9')](_0x2346d9,'_')[_0x240a09('0xda9')](_0xfc0277)];}},{'key':_0x57c234('0x3c7'),'value':function(_0x1dbb11){var _0x22d24f=_0x57c234;for(var _0xef7ad,_0x4fd8e5,_0x2d1675=0x0;_0x2d1675<_0x1dbb11['length'];_0x2d1675++)if('Hidden'!==(_0xef7ad=_0x1dbb11[_0x2d1675])[_0x22d24f('0x13d')]&&''!==_0xef7ad[_0x22d24f('0x1016')]&&void 0x0!==_0xef7ad[_0x22d24f('0x1016')])try{if(void 0x0===(_0x4fd8e5=JSON['parse'](_0xef7ad[_0x22d24f('0x1016')]))||null==_0x4fd8e5)continue;if(0x2!==_0x4fd8e5[_0x22d24f('0x13')])continue;if(void 0x0===_0x4fd8e5[0x1][_0x22d24f('0x921')]||null==_0x4fd8e5[0x1][_0x22d24f('0x921')])continue;this['customFields'][_0x22d24f('0x91b')](_0x4fd8e5);}catch(_0x23b35f){}}},{'key':_0x57c234('0x669'),'value':function(_0x20ebaf){var _0x4ff24e=_0x57c234;for(var _0x244ffd=0x0;_0x244ffd0x0?_0x901fca+=_0x5d8012[_0x4f5dcf('0xdd7')](_0x5d8012[_0x4f5dcf('0x13')]-0x1,0x1):_0x901fca+=_0x577235[_0x4f5dcf('0xdd7')](0x0,0x1),_0x901fca+=''[_0x4f5dcf('0xda9')](_0x5d8012)[_0x4f5dcf('0xda9')](_0x577235)[_0x4f5dcf('0x44d')]('')[_0x4f5dcf('0xd48')](function(_0x34f57f,_0x14a342){var _0x10b8e6=_0x4f5dcf;return parseInt(_0x14a342[_0x10b8e6('0xd66')](0x0),0xa)+_0x34f57f;},0x0),_0x4f5dcf('0x2ea')['concat'](_0x901fca,_0x4f5dcf('0x488'));}}])&&_0x6a14c2(_0x7ac53c['prototype'],_0x32cd16),_0x2c6e58&&_0x6a14c2(_0x7ac53c,_0x2c6e58),_0x4b0696;}();_0x5df6be[_0x16b605('0xf5f')]=_0x9f71ce;},{'./FormValidation':0x38}],0x3f:[function(_0x309ddd,_0x82ebd6,_0x2c7ed8){var _0x402945=_0x548f48;'use strict';Object['defineProperty'](_0x2c7ed8,_0x402945('0xce5'),{'value':!0x0}),_0x2c7ed8[_0x402945('0xf5f')]=void 0x0,(_0x376a84(_0x309ddd(_0x402945('0xb11'))),_0x309ddd(_0x402945('0x10d2')));function _0x376a84(_0x3487ae){var _0x35d9c7=_0x402945;return _0x3487ae&&_0x3487ae[_0x35d9c7('0xce5')]?_0x3487ae:{'default':_0x3487ae};}function _0x5eeef7(_0x5a267f){var _0x4ea6f7=_0x402945;return(_0x5eeef7=_0x4ea6f7('0x106c')==typeof Symbol&&_0x4ea6f7('0x43c')==typeof Symbol[_0x4ea6f7('0x57b')]?function(_0x1e757b){return typeof _0x1e757b;}:function(_0xa9b469){var _0x1666e2=_0x4ea6f7;return _0xa9b469&&_0x1666e2('0x106c')==typeof Symbol&&_0xa9b469[_0x1666e2('0xad1')]===Symbol&&_0xa9b469!==Symbol[_0x1666e2('0xe02')]?_0x1666e2('0x43c'):typeof _0xa9b469;})(_0x5a267f);}function _0x5b386d(_0x4511fa,_0x2ee8b6){var _0x2fa934=_0x402945;for(var _0x43ff4b=0x0;_0x43ff4b<_0x2ee8b6[_0x2fa934('0x13')];_0x43ff4b++){var _0x37a606=_0x2ee8b6[_0x43ff4b];_0x37a606[_0x2fa934('0x3bf')]=_0x37a606[_0x2fa934('0x3bf')]||!0x1,_0x37a606[_0x2fa934('0x749')]=!0x0,_0x2fa934('0x30')in _0x37a606&&(_0x37a606['writable']=!0x0),Object['defineProperty'](_0x4511fa,_0x37a606[_0x2fa934('0x86f')],_0x37a606);}}function _0x20fb47(_0x473f24,_0x23a218){var _0x2b031c=_0x402945;return!_0x23a218||_0x2b031c('0xb3f')!==_0x5eeef7(_0x23a218)&&'function'!=typeof _0x23a218?function(_0x354281){var _0x44d1bd=_0x2b031c;if(void 0x0===_0x354281)throw new ReferenceError(_0x44d1bd('0xe0d'));return _0x354281;}(_0x473f24):_0x23a218;}function _0x4cd961(){var _0x46679e=_0x402945;if(_0x46679e('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x46679e('0x353')][_0x46679e('0xb21')])return!0x1;if(_0x46679e('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x46679e('0xe02')][_0x46679e('0xb6d')][_0x46679e('0xfd2')](Reflect[_0x46679e('0x353')](Date,[],function(){})),!0x0;}catch(_0x20e2b7){return!0x1;}}function _0x371f94(_0x11fa0f){var _0x34786f=_0x402945;return(_0x371f94=Object['setPrototypeOf']?Object[_0x34786f('0x2d9')]:function(_0x213bed){var _0x455d03=_0x34786f;return _0x213bed[_0x455d03('0x112c')]||Object[_0x455d03('0x2d9')](_0x213bed);})(_0x11fa0f);}function _0x10f8b8(_0x35c36d,_0x6cee78){var _0xab2541=_0x402945;return(_0x10f8b8=Object[_0xab2541('0x3df')]||function(_0x305bd2,_0x528cd1){return _0x305bd2['__proto__']=_0x528cd1,_0x305bd2;})(_0x35c36d,_0x6cee78);}var _0x15bc2f=function(_0x3debf1){var _0x59a4ea=_0x402945;!function(_0x41483d,_0x6b26f0){var _0x24e3b3=_0x5376;if('function'!=typeof _0x6b26f0&&null!==_0x6b26f0)throw new TypeError(_0x24e3b3('0x5a0'));_0x41483d[_0x24e3b3('0xe02')]=Object[_0x24e3b3('0xbd0')](_0x6b26f0&&_0x6b26f0[_0x24e3b3('0xe02')],{'constructor':{'value':_0x41483d,'writable':!0x0,'configurable':!0x0}}),_0x6b26f0&&_0x10f8b8(_0x41483d,_0x6b26f0);}(_0x88126d,_0x3debf1);var _0x4bde8f,_0x1e6a2d,_0x14036b,_0x3e08ad,_0x3b4eb7=(_0x4bde8f=_0x88126d,function(){var _0x2e203b=_0x5376,_0x430353,_0x4702cb=_0x371f94(_0x4bde8f);if(_0x4cd961()){var _0x582e00=_0x371f94(this)[_0x2e203b('0xad1')];_0x430353=Reflect[_0x2e203b('0x353')](_0x4702cb,arguments,_0x582e00);}else _0x430353=_0x4702cb[_0x2e203b('0x2be')](this,arguments);return _0x20fb47(this,_0x430353);});function _0x88126d(_0x56c8ef,_0x397f7b,_0x13a0f5,_0x4b9d37){var _0x39d069=_0x5376,_0xa1e664;return function(_0x456c6e,_0x1b07d5){var _0x3ffd7=_0x5376;if(!(_0x456c6e instanceof _0x1b07d5))throw new TypeError(_0x3ffd7('0xf98'));}(this,_0x88126d),(_0xa1e664=_0x3b4eb7[_0x39d069('0xfd2')](this,_0x56c8ef,_0x397f7b,_0x13a0f5,_0x4b9d37))['tableType']='',_0xa1e664;}return _0x1e6a2d=_0x88126d,(_0x14036b=[{'key':_0x59a4ea('0x44a'),'value':function(){var _0xd66c7d=_0x59a4ea;return['id',_0xd66c7d('0x3ea'),_0xd66c7d('0x1ed'),_0xd66c7d('0x65c'),_0xd66c7d('0x13d'),'display_order'];}},{'key':_0x59a4ea('0x95e'),'value':function(){var _0x17ef34=_0x59a4ea;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':'Field\x20Type'},{'sTitle':_0x17ef34('0x4fd')},{'sTitle':_0x17ef34('0x315')},{'sTitle':_0x17ef34('0x5c5')}];}},{'key':_0x59a4ea('0xb81'),'value':function(){var _0x1defd8=_0x59a4ea;return[{'title':'Name','dataIndex':_0x1defd8('0x3ea'),'sorter':!0x0},{'title':_0x1defd8('0x4fd'),'dataIndex':'field_label'},{'title':_0x1defd8('0xa5b'),'dataIndex':'field_type'},{'title':_0x1defd8('0x315'),'dataIndex':'display','sorter':!0x0},{'title':'Priority','dataIndex':'display_order','sorter':!0x0}];}},{'key':_0x59a4ea('0x10d7'),'value':function(){var _0x2037ea=_0x59a4ea;return[['id',{'label':'ID','type':_0x2037ea('0x10f4')}],[_0x2037ea('0x65c'),{'label':_0x2037ea('0x4fd'),'type':_0x2037ea('0x5b2'),'validation':''}],[_0x2037ea('0x1ed'),{'label':_0x2037ea('0xa5b'),'type':_0x2037ea('0x4ce'),'source':[[_0x2037ea('0x5b2'),_0x2037ea('0xe7a')],[_0x2037ea('0x7ea'),_0x2037ea('0x4aa')],[_0x2037ea('0x4ce'),_0x2037ea('0x6f')],[_0x2037ea('0x15'),'Select2'],[_0x2037ea('0xa2d'),_0x2037ea('0xf2')],[_0x2037ea('0x881'),_0x2037ea('0x1021')],[_0x2037ea('0x2a5'),_0x2037ea('0x35a')],['datetime',_0x2037ea('0x87f')],[_0x2037ea('0x23c'),_0x2037ea('0x1a2')],[_0x2037ea('0x6c4'),'Signature']]}],[_0x2037ea('0x825'),{'label':_0x2037ea('0x5e1'),'type':_0x2037ea('0x15'),'validation':_0x2037ea('0xea1'),'sort':_0x2037ea('0xea1'),'null-label':_0x2037ea('0xf56'),'allow-null':!0x0,'source':[[_0x2037ea('0xea1'),_0x2037ea('0x37b')],[_0x2037ea('0x67b'),'Number'],['numberOrEmpty','Number\x20or\x20Empty'],['float',_0x2037ea('0x829')],[_0x2037ea('0xad6'),_0x2037ea('0xb3d')],[_0x2037ea('0xa8'),_0x2037ea('0xc8b')]]}],[_0x2037ea('0xb79'),{'label':'Field\x20Options','type':_0x2037ea('0xc5b'),'form':[[_0x2037ea('0xf3c'),{'label':_0x2037ea('0x8a2'),'type':_0x2037ea('0x5b2'),'validation':''}],[_0x2037ea('0x30'),{'label':'Value','type':_0x2037ea('0x5b2'),'validation':_0x2037ea('0xea1')}]],'html':'#_delete_##_edit_##_label_#:#_value_#','columns':[{'title':_0x2037ea('0x8a2'),'dataIndex':_0x2037ea('0xf3c'),'key':_0x2037ea('0xf3c')},{'title':'Option\x20Value','dataIndex':_0x2037ea('0x30'),'key':_0x2037ea('0x30')}],'validation':_0x2037ea('0xea1')}],[_0x2037ea('0x9bc'),{'label':_0x2037ea('0x5c5'),'type':_0x2037ea('0x5b2'),'validation':'none'}]];}},{'key':_0x59a4ea('0xc13'),'value':function(_0x17fc11){var _0x86069a=_0x59a4ea;return _0x17fc11[_0x86069a('0xd06')](/[^a-z0-9+]+/gi,'')[_0x86069a('0x371')]();}},{'key':_0x59a4ea('0xaa1'),'value':function(_0x2baac2){var _0x5afa23=_0x59a4ea;this[_0x5afa23('0x712')]=_0x2baac2;}},{'key':_0x59a4ea('0xe86'),'value':function(_0xe258ad){var _0x2b52f1=_0x59a4ea,_0x4ff4f2=function(_0x179e6d){var _0x4f1799=_0x5376;return null!=_0x179e6d&&/^[a-z][a-z0-9._]+$/[_0x4f1799('0x2c3')](_0x179e6d);};if(null==this[_0x2b52f1('0x31')]||null==this['currentElement'][_0x2b52f1('0x3ea')]||''===this['currentElement'][_0x2b52f1('0x3ea')]){if(_0xe258ad['name']=this[_0x2b52f1('0xc13')](_0xe258ad[_0x2b52f1('0x65c')]),!_0x4ff4f2(_0xe258ad[_0x2b52f1('0x3ea')]))return _0x2b52f1('0x471');}else _0xe258ad[_0x2b52f1('0x3ea')]=this[_0x2b52f1('0x31')][_0x2b52f1('0x3ea')];return _0x4ff4f2(_0xe258ad[_0x2b52f1('0x3ea')])?null:'Invalid\x20name\x20for\x20custom\x20field';}},{'key':_0x59a4ea('0xcea'),'value':function(_0x4b7c8a){var _0x10d317=_0x59a4ea,_0x1d3cb4,_0x1966f4=['',{}],_0xdc0049=[];if(_0x1966f4[0x1][_0x10d317('0xf3c')]=_0x4b7c8a['field_label'],_0x1966f4[0x1][_0x10d317('0x921')]=_0x4b7c8a['field_type'],_0x1966f4[0x1][_0x10d317('0x2c4')]=_0x4b7c8a['field_validation'],[_0x10d317('0x4ce'),_0x10d317('0x15'),'select2multi'][_0x10d317('0xf00')](_0x4b7c8a['field_type'])>=0x0){for(var _0x376479 in _0x1d3cb4=''===_0x4b7c8a[_0x10d317('0xb79')]||void 0x0===_0x4b7c8a[_0x10d317('0xb79')]?[]:JSON[_0x10d317('0x104a')](_0x4b7c8a['field_options']))_0xdc0049[_0x10d317('0x91b')]([_0x1d3cb4[_0x376479]['value'],_0x1d3cb4[_0x376479][_0x10d317('0xf3c')]]);_0x1966f4[0x1][_0x10d317('0x5f3')]=_0xdc0049;}return null!=_0x4b7c8a[_0x10d317('0x825')]&&void 0x0!==_0x4b7c8a['field_validation']||(_0x4b7c8a[_0x10d317('0x825')]=''),_0x4b7c8a[_0x10d317('0x921')]=this[_0x10d317('0x712')],null==this[_0x10d317('0x31')]||null==this['currentElement'][_0x10d317('0x3ea')]||''===this[_0x10d317('0x31')][_0x10d317('0x3ea')]?_0x4b7c8a[_0x10d317('0x3ea')]=this[_0x10d317('0xc13')](_0x4b7c8a[_0x10d317('0x65c')]):_0x4b7c8a[_0x10d317('0x3ea')]=this[_0x10d317('0x31')]['name'],_0x1966f4[0x0]=_0x4b7c8a[_0x10d317('0x3ea')],_0x4b7c8a[_0x10d317('0x1016')]=JSON[_0x10d317('0xf0b')](_0x1966f4),_0x4b7c8a['display']=_0x10d317('0xe32'),_0x4b7c8a[_0x10d317('0x9bc')]=parseInt(_0x4b7c8a[_0x10d317('0x9bc')]),Number['isInteger'](_0x4b7c8a[_0x10d317('0x9bc')])||(_0x4b7c8a[_0x10d317('0x9bc')]=0x1),_0x4b7c8a;}}])&&_0x5b386d(_0x1e6a2d[_0x59a4ea('0xe02')],_0x14036b),_0x3e08ad&&_0x5b386d(_0x1e6a2d,_0x3e08ad),_0x88126d;}(_0x376a84(_0x309ddd('./ReactModalAdapterBase'))[_0x402945('0xf5f')]);_0x2c7ed8[_0x402945('0xf5f')]=_0x15bc2f;},{'./ReactModalAdapterBase':0x41,'antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11')}],0x40:[function(_0x230c2b,_0x417c4e,_0x1a61ce){var _0x2dfe02=_0x548f48;'use strict';var _0x39009d;function _0x4d23d7(_0x437a2b){var _0x126b40=_0x5376;return(_0x4d23d7=_0x126b40('0x106c')==typeof Symbol&&_0x126b40('0x43c')==typeof Symbol[_0x126b40('0x57b')]?function(_0x5073c8){return typeof _0x5073c8;}:function(_0x5e74e6){var _0x247204=_0x126b40;return _0x5e74e6&&_0x247204('0x106c')==typeof Symbol&&_0x5e74e6[_0x247204('0xad1')]===Symbol&&_0x5e74e6!==Symbol['prototype']?_0x247204('0x43c'):typeof _0x5e74e6;})(_0x437a2b);}function _0x35e06b(_0x1c5c4c,_0x4d114d){var _0x2bbb9f=_0x5376;if(!(_0x1c5c4c instanceof _0x4d114d))throw new TypeError(_0x2bbb9f('0xf98'));}function _0xcbe9d8(_0x43d0b6,_0x5f5265){var _0x1c59f4=_0x5376;for(var _0x4b8397=0x0;_0x4b8397<_0x5f5265[_0x1c59f4('0x13')];_0x4b8397++){var _0x26c01d=_0x5f5265[_0x4b8397];_0x26c01d[_0x1c59f4('0x3bf')]=_0x26c01d[_0x1c59f4('0x3bf')]||!0x1,_0x26c01d['configurable']=!0x0,'value'in _0x26c01d&&(_0x26c01d[_0x1c59f4('0x820')]=!0x0),Object['defineProperty'](_0x43d0b6,_0x26c01d[_0x1c59f4('0x86f')],_0x26c01d);}}function _0x3b4d55(_0x34b328,_0x5530fc){var _0x980c96=_0x5376;return!_0x5530fc||_0x980c96('0xb3f')!==_0x4d23d7(_0x5530fc)&&'function'!=typeof _0x5530fc?function(_0x342008){var _0x12dba7=_0x980c96;if(void 0x0===_0x342008)throw new ReferenceError(_0x12dba7('0xe0d'));return _0x342008;}(_0x34b328):_0x5530fc;}function _0x108ff4(){var _0x3b7a05=_0x5376;if('undefined'==typeof Reflect||!Reflect[_0x3b7a05('0x353')])return!0x1;if(Reflect[_0x3b7a05('0x353')][_0x3b7a05('0xb21')])return!0x1;if(_0x3b7a05('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x3b7a05('0xe02')][_0x3b7a05('0xb6d')]['call'](Reflect[_0x3b7a05('0x353')](Date,[],function(){})),!0x0;}catch(_0x25d3f4){return!0x1;}}function _0x58aecb(_0x1e3deb){var _0xb85663=_0x5376;return(_0x58aecb=Object['setPrototypeOf']?Object[_0xb85663('0x2d9')]:function(_0x13621e){var _0x5d3f3c=_0xb85663;return _0x13621e[_0x5d3f3c('0x112c')]||Object[_0x5d3f3c('0x2d9')](_0x13621e);})(_0x1e3deb);}function _0x3e35a5(_0x30c77e,_0x1c176c){var _0x5a5e15=_0x5376;return(_0x3e35a5=Object[_0x5a5e15('0x3df')]||function(_0x4e61af,_0x248ad0){var _0x31508b=_0x5a5e15;return _0x4e61af[_0x31508b('0x112c')]=_0x248ad0,_0x4e61af;})(_0x30c77e,_0x1c176c);}Object[_0x2dfe02('0x9a5')](_0x1a61ce,_0x2dfe02('0xce5'),{'value':!0x0}),_0x1a61ce[_0x2dfe02('0xf5f')]=void 0x0;var _0x5bb46f=function(_0x139557){var _0x313e02=_0x2dfe02;!function(_0x138bbb,_0x3752e2){var _0x18eb99=_0x5376;if(_0x18eb99('0x106c')!=typeof _0x3752e2&&null!==_0x3752e2)throw new TypeError(_0x18eb99('0x5a0'));_0x138bbb[_0x18eb99('0xe02')]=Object['create'](_0x3752e2&&_0x3752e2[_0x18eb99('0xe02')],{'constructor':{'value':_0x138bbb,'writable':!0x0,'configurable':!0x0}}),_0x3752e2&&_0x3e35a5(_0x138bbb,_0x3752e2);}(_0x4b1165,_0x139557);var _0x4cbd94,_0x3958fe,_0x25e89a,_0x2357ab,_0x24ea71=(_0x4cbd94=_0x4b1165,function(){var _0x1db9f9=_0x5376,_0x38a037,_0x4ef101=_0x58aecb(_0x4cbd94);if(_0x108ff4()){var _0x14c490=_0x58aecb(this)['constructor'];_0x38a037=Reflect[_0x1db9f9('0x353')](_0x4ef101,arguments,_0x14c490);}else _0x38a037=_0x4ef101[_0x1db9f9('0x2be')](this,arguments);return _0x3b4d55(this,_0x38a037);});function _0x4b1165(){var _0x1990ec=_0x5376;return _0x35e06b(this,_0x4b1165),_0x24ea71[_0x1990ec('0x2be')](this,arguments);}return _0x3958fe=_0x4b1165,(_0x25e89a=[{'key':'get','value':function(_0x1de4ad){var _0x582c51=_0x5376,_0x3a9bad=this;if(this[_0x582c51('0x204')]())return this[_0x582c51('0xb93')](this[_0x582c51('0x3ed')]()),$('#'['concat'](this[_0x582c51('0x3ed')](),_0x582c51('0xe32')))[_0x582c51('0xcee')](),void $('#'[_0x582c51('0xda9')](this['getTableName']()))[_0x582c51('0x312')]();var _0x1b9ca8=JSON[_0x582c51('0xf0b')](this[_0x582c51('0x528')]()),_0x8e92bf='';null!==this[_0x582c51('0x95')]()&&(_0x8e92bf=JSON[_0x582c51('0xf0b')](this[_0x582c51('0x95')]()));var _0x4aba7f='';null!==this['getOrderBy']()&&(_0x4aba7f=this[_0x582c51('0xfa0')]()),_0x1b9ca8=this[_0x582c51('0x57')](_0x1b9ca8),_0x8e92bf=this[_0x582c51('0x57')](_0x8e92bf),_0x3a9bad['showLoader'](),$[_0x582c51('0xcce')](this[_0x582c51('0x84b')],{'t':this['table'],'a':_0x582c51('0xd12'),'sm':_0x1b9ca8,'ft':_0x8e92bf,'ob':_0x4aba7f},function(_0x5507ff){var _0x518be3=_0x582c51;_0x518be3('0x7d')===_0x5507ff[_0x518be3('0x75e')]?_0x3a9bad[_0x518be3('0x114b')](_0x1de4ad,_0x5507ff[_0x518be3('0xb3f')]):_0x3a9bad[_0x518be3('0xfb7')](_0x1de4ad,_0x5507ff[_0x518be3('0xb3f')]);},_0x582c51('0xf1b'))[_0x582c51('0x798')](function(_0x2c07ab){var _0x318ca3=_0x582c51;0x193===_0x2c07ab[_0x318ca3('0x75e')]&&_0x3a9bad[_0x318ca3('0xaa4')](_0x318ca3('0x696'),_0x2c07ab['responseJSON']['message']);})[_0x582c51('0x484')](function(){var _0x15f209=_0x582c51;_0x3a9bad[_0x15f209('0xf0c')]();}),_0x3a9bad[_0x582c51('0x395')](),this[_0x582c51('0x1065')](_0x582c51('0xd12'),this['tab'],this[_0x582c51('0x2ac')]);}},{'key':_0x313e02('0xaef'),'value':function(_0x1e8f40){var _0x37adbe=_0x313e02;for(var _0x4759bc=this[_0x37adbe('0x563')][_0x37adbe('0xeb4')],_0x109993='',_0x58298e=this[_0x37adbe('0x51c')](),_0x15a199=0x0;_0x15a199<_0x58298e[_0x37adbe('0x13')];_0x15a199++){var _0x5ddd2f=this[_0x37adbe('0x314')](_0x58298e[_0x15a199][0x0]);if(''===_0x5ddd2f||void 0x0===_0x5ddd2f)_0x109993+=this[_0x37adbe('0xb7c')](_0x58298e[_0x15a199]);else{var _0x6e22bf=_0x1e8f40[_0x5ddd2f];''!==_0x6e22bf&&null!=_0x6e22bf&&void 0x0!==_0x6e22bf&&''!==_0x6e22bf[_0x37adbe('0xb8e')]()?_0x109993+=this[_0x37adbe('0xb7c')](JSON[_0x37adbe('0x104a')](_0x6e22bf)):_0x109993+=this[_0x37adbe('0xb7c')](_0x58298e[_0x15a199]);}}_0x4759bc=(_0x4759bc=_0x4759bc[_0x37adbe('0xd06')](/_id_/g,''[_0x37adbe('0xda9')](this[_0x37adbe('0x3ed')](),_0x37adbe('0x53d'))))['replace'](/_fields_/g,_0x109993);var _0x5f2cbc=this[_0x37adbe('0xed8')](0xe),_0x2f157d=$(_0x37adbe('0x98b'));_0x2f157d['attr']('id',_0x5f2cbc),_0x2f157d[_0x37adbe('0x276')](_0x4759bc),_0x2f157d[_0x37adbe('0xe05')](_0x37adbe('0xbad'))[_0x37adbe('0x48e')]({'viewMode':0x2}),_0x2f157d['find']('.timefield')[_0x37adbe('0xd76')]({'language':'en','pickDate':!0x1}),_0x2f157d['find'](_0x37adbe('0x1110'))['datetimepicker']({'language':'en'}),_0x2f157d[_0x37adbe('0xe05')]('.colorpick')[_0x37adbe('0xbc7')](),tinymce[_0x37adbe('0xeb9')]({'selector':'#'['concat'](_0x2f157d[_0x37adbe('0xb0c')]('id'),_0x37adbe('0xd43')),'height':'400'}),_0x2f157d[_0x37adbe('0xe05')](_0x37adbe('0x9e1'))[_0x37adbe('0x2fa')](function(){var _0x1bf416=_0x37adbe,_0x41d176=new SimpleMDE({'element':$(this)[0x0]});$(this)[_0x1bf416('0x1016')](_0x1bf416('0xc00'),_0x41d176);}),_0x2f157d[_0x37adbe('0xe05')](_0x37adbe('0xdb4'))[_0x37adbe('0x2fa')](function(){var _0x505d6b=_0x37adbe;$(this)[_0x505d6b('0x15')]()['select2'](_0x505d6b('0xd3d'),$(this)[_0x505d6b('0xe05')](_0x505d6b('0x26b'))[_0x505d6b('0xd3d')]());}),_0x2f157d[_0x37adbe('0xe05')](_0x37adbe('0x93e'))[_0x37adbe('0x2fa')](function(){var _0x45072c=_0x37adbe;$(this)[_0x45072c('0x15')]()['on'](_0x45072c('0x566'),function(_0x38043f){var _0x5f1a98=_0x45072c,_0x363775=$(this)[_0x5f1a98('0xd5a')]('.row'),_0x12c2cf=_0x363775['find'](_0x5f1a98('0x1072'))[_0x5f1a98('0x27b')]();_0x363775[_0x5f1a98('0x27b')](parseInt(_0x12c2cf,0xa));});}),this[_0x37adbe('0x46b')]('Edit',_0x2f157d,null,null,!0x0),$(_0x37adbe('0xbe6'))[_0x37adbe('0x78f')](),$(_0x37adbe('0xbe6'))['on'](_0x37adbe('0x29f'),function(_0x347f81){var _0x14e7a9=_0x37adbe;_0x347f81['preventDefault'](),_0x347f81[_0x14e7a9('0xefa')]();try{modJs[_0x14e7a9('0xb5c')]();}catch(_0x20c4dd){}return!0x1;}),void 0x0!==this[_0x37adbe('0x562')]&&null!=this['filter']&&''!==this['filter']&&this[_0x37adbe('0x848')](this[_0x37adbe('0x562')],'#'[_0x37adbe('0xda9')](this[_0x37adbe('0x3ed')](),_0x37adbe('0x53d')),this[_0x37adbe('0x51c')]());}},{'key':_0x313e02('0xb53'),'value':function(){var _0x5533c5=_0x313e02;this['filter']=this[_0x5533c5('0x1102')],this[_0x5533c5('0x322')]=!0x1,$('#'[_0x5533c5('0xda9')](this['getTableName'](),_0x5533c5('0xb7')))[_0x5533c5('0xcee')](),this[_0x5533c5('0xa70')]='',this[_0x5533c5('0xd12')]([]);}}])&&_0xcbe9d8(_0x3958fe[_0x313e02('0xe02')],_0x25e89a),_0x2357ab&&_0xcbe9d8(_0x3958fe,_0x2357ab),_0x4b1165;}(((_0x39009d=_0x230c2b(_0x2dfe02('0xad8')))&&_0x39009d[_0x2dfe02('0xce5')]?_0x39009d:{'default':_0x39009d})[_0x2dfe02('0xf5f')]);_0x1a61ce[_0x2dfe02('0xf5f')]=_0x5bb46f;},{'./ReactModalAdapterBase':0x41}],0x41:[function(_0x57ef37,_0xa4849f,_0x3fc7ed){var _0x911bd0=_0x548f48;'use strict';Object[_0x911bd0('0x9a5')](_0x3fc7ed,_0x911bd0('0xce5'),{'value':!0x0}),_0x3fc7ed[_0x911bd0('0xf5f')]=void 0x0;var _0x11fb93=_0x5b5a7f(_0x57ef37(_0x911bd0('0xb11'))),_0x24358c=_0x5b5a7f(_0x57ef37(_0x911bd0('0x1d5'))),_0x27fdd4=_0x57ef37(_0x911bd0('0x10d2')),_0x3b5a25=_0x57ef37(_0x911bd0('0x5b4')),_0x53e6dd=_0x5b5a7f(_0x57ef37(_0x911bd0('0x8ac'))),_0x455078=_0x5b5a7f(_0x57ef37(_0x911bd0('0x5e9'))),_0x44b07e=_0x5b5a7f(_0x57ef37(_0x911bd0('0xb1'))),_0x5ddc43=_0x5b5a7f(_0x57ef37(_0x911bd0('0xa2b'))),_0x2977ca=_0x5b5a7f(_0x57ef37(_0x911bd0('0xff')));function _0x5b5a7f(_0x1748df){var _0x33c955=_0x911bd0;return _0x1748df&&_0x1748df[_0x33c955('0xce5')]?_0x1748df:{'default':_0x1748df};}function _0x347669(_0x463291){var _0x42b71b=_0x911bd0;return(_0x347669=_0x42b71b('0x106c')==typeof Symbol&&_0x42b71b('0x43c')==typeof Symbol[_0x42b71b('0x57b')]?function(_0x426a63){return typeof _0x426a63;}:function(_0x35b58c){var _0x21f8d4=_0x42b71b;return _0x35b58c&&_0x21f8d4('0x106c')==typeof Symbol&&_0x35b58c[_0x21f8d4('0xad1')]===Symbol&&_0x35b58c!==Symbol[_0x21f8d4('0xe02')]?'symbol':typeof _0x35b58c;})(_0x463291);}function _0x147bac(_0xdda65d,_0x17abab){return function(_0x3ddb1f){var _0x3352ba=_0x5376;if(Array[_0x3352ba('0xb66')](_0x3ddb1f))return _0x3ddb1f;}(_0xdda65d)||function(_0xd5bcba,_0x36377f){var _0x1e5294=_0x5376;if('undefined'==typeof Symbol||!(Symbol['iterator']in Object(_0xd5bcba)))return;var _0x45f92d=[],_0x131ca8=!0x0,_0x3321c6=!0x1,_0x2cd79b=void 0x0;try{for(var _0x592bb4,_0x527284=_0xd5bcba[Symbol[_0x1e5294('0x57b')]]();!(_0x131ca8=(_0x592bb4=_0x527284[_0x1e5294('0x165')]())[_0x1e5294('0x1126')])&&(_0x45f92d[_0x1e5294('0x91b')](_0x592bb4[_0x1e5294('0x30')]),!_0x36377f||_0x45f92d['length']!==_0x36377f);_0x131ca8=!0x0);}catch(_0x231677){_0x3321c6=!0x0,_0x2cd79b=_0x231677;}finally{try{_0x131ca8||null==_0x527284['return']||_0x527284[_0x1e5294('0x4c8')]();}finally{if(_0x3321c6)throw _0x2cd79b;}}return _0x45f92d;}(_0xdda65d,_0x17abab)||function(_0x237e8e,_0x3dc9e4){var _0x628d46=_0x5376;if(!_0x237e8e)return;if(_0x628d46('0x2fd')==typeof _0x237e8e)return _0x59579e(_0x237e8e,_0x3dc9e4);var _0x706e95=Object[_0x628d46('0xe02')][_0x628d46('0xb6d')][_0x628d46('0xfd2')](_0x237e8e)[_0x628d46('0xdf1')](0x8,-0x1);'Object'===_0x706e95&&_0x237e8e[_0x628d46('0xad1')]&&(_0x706e95=_0x237e8e[_0x628d46('0xad1')]['name']);if(_0x628d46('0xc2d')===_0x706e95||_0x628d46('0xdb3')===_0x706e95)return Array['from'](_0x706e95);if(_0x628d46('0x729')===_0x706e95||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x628d46('0x2c3')](_0x706e95))return _0x59579e(_0x237e8e,_0x3dc9e4);}(_0xdda65d,_0x17abab)||function(){var _0x4389d4=_0x5376;throw new TypeError(_0x4389d4('0x846'));}();}function _0x59579e(_0x4fc338,_0x10b563){var _0x505fb0=_0x911bd0;(null==_0x10b563||_0x10b563>_0x4fc338[_0x505fb0('0x13')])&&(_0x10b563=_0x4fc338[_0x505fb0('0x13')]);for(var _0x368df3=0x0,_0x468603=new Array(_0x10b563);_0x368df3<_0x10b563;_0x368df3++)_0x468603[_0x368df3]=_0x4fc338[_0x368df3];return _0x468603;}function _0x312282(_0xc4ada8,_0x26b674){var _0x1e1441=_0x911bd0;for(var _0x49ac7f=0x0;_0x49ac7f<_0x26b674['length'];_0x49ac7f++){var _0x50822b=_0x26b674[_0x49ac7f];_0x50822b['enumerable']=_0x50822b['enumerable']||!0x1,_0x50822b['configurable']=!0x0,'value'in _0x50822b&&(_0x50822b['writable']=!0x0),Object['defineProperty'](_0xc4ada8,_0x50822b[_0x1e1441('0x86f')],_0x50822b);}}function _0x2ca983(_0x545f64,_0x1d20fc,_0x37c8ef){var _0x86d4ff=_0x911bd0;return _0x1d20fc&&_0x312282(_0x545f64[_0x86d4ff('0xe02')],_0x1d20fc),_0x37c8ef&&_0x312282(_0x545f64,_0x37c8ef),_0x545f64;}function _0x341842(_0x1573d2,_0x41be76){var _0x1bbb80=_0x911bd0;return!_0x41be76||_0x1bbb80('0xb3f')!==_0x347669(_0x41be76)&&_0x1bbb80('0x106c')!=typeof _0x41be76?_0x27bf71(_0x1573d2):_0x41be76;}function _0x27bf71(_0x487c99){var _0x878f3c=_0x911bd0;if(void 0x0===_0x487c99)throw new ReferenceError(_0x878f3c('0xe0d'));return _0x487c99;}function _0x249686(){var _0x33f5dc=_0x911bd0;if(_0x33f5dc('0x449')==typeof Reflect||!Reflect[_0x33f5dc('0x353')])return!0x1;if(Reflect[_0x33f5dc('0x353')][_0x33f5dc('0xb21')])return!0x1;if(_0x33f5dc('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x33f5dc('0xb6d')][_0x33f5dc('0xfd2')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x43fa42){return!0x1;}}function _0x5bc884(_0x4b47b8){var _0x597428=_0x911bd0;return(_0x5bc884=Object[_0x597428('0x3df')]?Object[_0x597428('0x2d9')]:function(_0x4e8d8a){var _0x3be14e=_0x597428;return _0x4e8d8a['__proto__']||Object[_0x3be14e('0x2d9')](_0x4e8d8a);})(_0x4b47b8);}function _0x4b454f(_0x30850b,_0x27327a){return(_0x4b454f=Object['setPrototypeOf']||function(_0x3798be,_0x295969){var _0x3eacf2=_0x5376;return _0x3798be[_0x3eacf2('0x112c')]=_0x295969,_0x3798be;})(_0x30850b,_0x27327a);}var _0x4c7a23=function(_0x4315b9){var _0x185d5c=_0x911bd0;!function(_0x221783,_0x424313){var _0x118a7b=_0x5376;if(_0x118a7b('0x106c')!=typeof _0x424313&&null!==_0x424313)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x221783[_0x118a7b('0xe02')]=Object[_0x118a7b('0xbd0')](_0x424313&&_0x424313[_0x118a7b('0xe02')],{'constructor':{'value':_0x221783,'writable':!0x0,'configurable':!0x0}}),_0x424313&&_0x4b454f(_0x221783,_0x424313);}(_0x145774,_0x4315b9);var _0x40221c,_0x25707a=(_0x40221c=_0x145774,function(){var _0x3c6be1=_0x5376,_0x3eb95d,_0x4c4765=_0x5bc884(_0x40221c);if(_0x249686()){var _0x57fb23=_0x5bc884(this)[_0x3c6be1('0xad1')];_0x3eb95d=Reflect[_0x3c6be1('0x353')](_0x4c4765,arguments,_0x57fb23);}else _0x3eb95d=_0x4c4765[_0x3c6be1('0x2be')](this,arguments);return _0x341842(this,_0x3eb95d);});function _0x145774(_0x3a2963,_0x2e175b,_0x1aaac2,_0x4b8ca8){var _0x3c1918=_0x5376,_0x49a81e;return function(_0xfa5c26,_0x2a247c){if(!(_0xfa5c26 instanceof _0x2a247c))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0x145774),(_0x49a81e=_0x25707a[_0x3c1918('0xfd2')](this,_0x3a2963,_0x2e175b,_0x1aaac2,_0x4b8ca8))[_0x3c1918('0x284')]=_0x49a81e['MODAL_TYPE_NORMAL'],_0x49a81e[_0x3c1918('0xe70')]=null,_0x49a81e['formInitialized']=!0x1,_0x49a81e[_0x3c1918('0x974')]=!0x1,_0x49a81e[_0x3c1918('0x6be')]=[],_0x49a81e['localStorageEnabled']=!0x1,_0x49a81e['isV2']=!0x0,_0x49a81e[_0x3c1918('0x10')]=new _0x2977ca[(_0x3c1918('0xf5f'))](_0x27bf71(_0x49a81e)),_0x49a81e;}return _0x2ca983(_0x145774,null,[{'key':_0x185d5c('0x577'),'get':function(){var _0x31de59=_0x185d5c;return _0x31de59('0x1cf');}},{'key':_0x185d5c('0x9c1'),'get':function(){var _0x19c44d=_0x185d5c;return _0x19c44d('0x92d');}}]),_0x2ca983(_0x145774,[{'key':'enableLocalStorage','value':function(){var _0x37e478=_0x185d5c;this[_0x37e478('0x3ad')]=!0x0;}},{'key':_0x185d5c('0x99c'),'value':function(_0x388b05){this['modalType']=_0x388b05;}},{'key':'setDataPipe','value':function(_0x5cb967){var _0x37bffd=_0x185d5c;this[_0x37bffd('0xe70')]=_0x5cb967;}},{'key':_0x185d5c('0xf68'),'value':function(_0x3dacf8){var _0x197366=_0x185d5c;this[_0x197366('0x6be')]=_0x3dacf8;}},{'key':_0x185d5c('0x809'),'value':function(_0x25cc0a){var _0x26335f=_0x185d5c;return this['access'][_0x26335f('0xf00')](_0x25cc0a)>0x0;}},{'key':_0x185d5c('0xe1'),'value':function(){return!0x1;}},{'key':_0x185d5c('0xd03'),'value':function(){var _0x568769=_0x185d5c,_0xe5985a=this;if(this[_0x568769('0x974')])return!0x1;var _0x5d708e=document[_0x568769('0x1012')](''['concat'](this[_0x568769('0xe3e')],_0x568769('0xd49')));if(_0x5d708e){this[_0x568769('0x549')]=_0x11fb93[_0x568769('0xf5f')][_0x568769('0xbdc')]();var _0x5efe76=this['getTableColumns']();(this['hasAccess'](_0x568769('0xb6'))||this[_0x568769('0x809')]('delete')||this[_0x568769('0x809')](_0x568769('0x23a'))||this[_0x568769('0xe1')]())&&_0x5efe76[_0x568769('0x91b')]({'title':_0x568769('0x183'),'key':_0x568769('0x42f'),'render':this['getTableActionButtonJsx'](this)}),_0x5efe76=_0x5efe76[_0x568769('0xd8e')](function(_0x1b5bc5){var _0x27c263=_0x568769;return _0x1b5bc5[_0x27c263('0xf6d')]=_0xe5985a['gt'](_0x1b5bc5[_0x27c263('0xf6d')]),_0x1b5bc5;}),_0x24358c[_0x568769('0xf5f')][_0x568769('0xb9b')](_0x11fb93[_0x568769('0xf5f')]['createElement'](_0x5ddc43[_0x568769('0xf5f')],{'ref':this[_0x568769('0x549')],'reader':this[_0x568769('0xe70')],'columns':_0x5efe76,'adapter':this},this[_0x568769('0x2c9')]()),_0x5d708e);}return this[_0x568769('0x974')]=!0x0,!0x0;}},{'key':_0x185d5c('0x67'),'value':function(){var _0x5c1327=_0x185d5c,_0x30c55f=this;if(this[_0x5c1327('0xf73')])return!0x1;this[_0x5c1327('0xb45')]=_0x11fb93[_0x5c1327('0xf5f')][_0x5c1327('0xbdc')](),this[_0x5c1327('0x284')]===this[_0x5c1327('0x577')]?_0x24358c[_0x5c1327('0xf5f')][_0x5c1327('0xb9b')](_0x11fb93['default'][_0x5c1327('0xfa9')](_0x455078['default'],{'ref':this['formContainer'],'fields':this['getFormFields'](),'adapter':this,'formReference':this[_0x5c1327('0x10d5')]}),document[_0x5c1327('0x1012')](''[_0x5c1327('0xda9')](this[_0x5c1327('0xe3e')],_0x5c1327('0xe32')))):_0x24358c['default'][_0x5c1327('0xb9b')](_0x11fb93[_0x5c1327('0xf5f')][_0x5c1327('0xfa9')](_0x44b07e[_0x5c1327('0xf5f')],{'ref':this[_0x5c1327('0xb45')],'fields':this[_0x5c1327('0x6ae')](),'adapter':this,'formReference':this[_0x5c1327('0x10d5')]}),document['getElementById'](''[_0x5c1327('0xda9')](this[_0x5c1327('0xe3e')],'Form')));var _0x433a20=document[_0x5c1327('0x1012')](''[_0x5c1327('0xda9')](this[_0x5c1327('0xe3e')],_0x5c1327('0xd9d')));return _0x433a20&&this['getFilters']()&&(this['filtersContainer']=_0x11fb93[_0x5c1327('0xf5f')][_0x5c1327('0xbdc')](),_0x24358c[_0x5c1327('0xf5f')][_0x5c1327('0xb9b')](_0x11fb93[_0x5c1327('0xf5f')][_0x5c1327('0xfa9')](_0x455078[_0x5c1327('0xf5f')],{'ref':this['filtersContainer'],'fields':this[_0x5c1327('0x51c')](),'adapter':this,'saveCallback':function(_0x183462,_0x507f0a,_0x756167){var _0x2983d7=_0x5c1327;_0x30c55f[_0x2983d7('0x285')](_0x183462),_0x30c55f[_0x2983d7('0x322')]=!0x0,_0x30c55f[_0x2983d7('0xd12')]([]),_0x30c55f['tableContainer'][_0x2983d7('0xda7')][_0x2983d7('0xb5b')](_0x183462),_0x756167();}}),_0x433a20)),this[_0x5c1327('0xf73')]=!0x0,!0x0;}},{'key':_0x185d5c('0x2c9'),'value':function(){return!0x1;}},{'key':_0x185d5c('0x5bd'),'value':function(){var _0x21b5c9=_0x185d5c;this[_0x21b5c9('0xde')](this[_0x21b5c9('0x9b6')]);}},{'key':'getTableActionButtonJsx','value':function(_0x30e535){return function(_0x3d9844,_0x15e8fa){var _0x5a0f61=_0x5376;return _0x11fb93['default'][_0x5a0f61('0xfa9')](_0x27fdd4[_0x5a0f61('0xfc')],{'size':_0x5a0f61('0x75a')},_0x30e535[_0x5a0f61('0x809')](_0x5a0f61('0xb6'))&&_0x30e535[_0x5a0f61('0x1153')]&&_0x11fb93['default'][_0x5a0f61('0xfa9')](_0x27fdd4[_0x5a0f61('0x9ca')],{'color':_0x5a0f61('0x62c'),'onClick':function(){var _0x2d4469=_0x5a0f61;return modJs[_0x2d4469('0x1df')](_0x15e8fa['id']);},'style':{'cursor':_0x5a0f61('0x3e1')}},_0x11fb93[_0x5a0f61('0xf5f')][_0x5a0f61('0xfa9')](_0x3b5a25['EditOutlined'],null),'\x20'[_0x5a0f61('0xda9')](_0x30e535['gt'](_0x5a0f61('0x647')))),_0x30e535[_0x5a0f61('0x809')](_0x5a0f61('0x23a'))&&_0x11fb93[_0x5a0f61('0xf5f')][_0x5a0f61('0xfa9')](_0x27fdd4['Tag'],{'color':_0x5a0f61('0x10a7'),'onClick':function(){var _0x2733ec=_0x5a0f61;return modJs[_0x2733ec('0xde')](_0x15e8fa['id']);},'style':{'cursor':'pointer'}},_0x11fb93[_0x5a0f61('0xf5f')]['createElement'](_0x3b5a25[_0x5a0f61('0xe3a')],null),'\x20'['concat'](_0x30e535['gt']('View'))),_0x30e535['hasAccess'](_0x5a0f61('0x41d'))&&_0x30e535[_0x5a0f61('0xab3')]&&_0x11fb93[_0x5a0f61('0xf5f')][_0x5a0f61('0xfa9')](_0x27fdd4[_0x5a0f61('0x9ca')],{'color':'volcano','onClick':function(){var _0x56cfb0=_0x5a0f61;return modJs[_0x56cfb0('0xc50')](_0x15e8fa['id']);},'style':{'cursor':_0x5a0f61('0x3e1')}},_0x11fb93[_0x5a0f61('0xf5f')][_0x5a0f61('0xfa9')](_0x3b5a25[_0x5a0f61('0x157')],null),'\x20'['concat'](_0x30e535['gt'](_0x5a0f61('0x675')))),_0x30e535[_0x5a0f61('0x809')]('save')&&_0x11fb93[_0x5a0f61('0xf5f')][_0x5a0f61('0xfa9')](_0x27fdd4[_0x5a0f61('0x9ca')],{'color':_0x5a0f61('0x10de'),'onClick':function(){var _0x427f9c=_0x5a0f61;return modJs[_0x427f9c('0x505')](_0x15e8fa['id']);},'style':{'cursor':'pointer'}},_0x11fb93['default']['createElement'](_0x3b5a25[_0x5a0f61('0xa6a')],null),'\x20'['concat'](_0x30e535['gt']('Copy'))));};}},{'key':_0x185d5c('0xdc6'),'value':function(_0x30338f){this['tableContainer']['current']['setLoading'](_0x30338f);}},{'key':_0x185d5c('0xde'),'value':function(_0x4d437d){var _0x152700=_0x185d5c,_0x44f8fd=this;this['setTableLoading'](!0x0),this[_0x152700('0x9b6')]=_0x4d437d,this[_0x152700('0xdae')](_0x4d437d,{'noRender':!0x0,'callBack':function(_0x37fb51){var _0xefa957=_0x152700;_0x44f8fd[_0xefa957('0xb70')](_0x37fb51),_0x44f8fd[_0xefa957('0xdc6')](!0x1);}});}},{'key':'showElement','value':function(_0x4ceb95){var _0x572554=_0x185d5c;this[_0x572554('0xc03')](_0x4ceb95,!0x0);}},{'key':_0x185d5c('0x1df'),'value':function(_0x210c14){var _0x234827=_0x185d5c;this[_0x234827('0xdc6')](!0x0),this['currentId']=_0x210c14,this['getElement'](_0x210c14,[]);}},{'key':'renderForm','value':function(){var _0x40b3ed=_0x185d5c,_0x1026de=arguments[_0x40b3ed('0x13')]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:null,_0x125e3f=arguments[_0x40b3ed('0x13')]>0x1&&void 0x0!==arguments[0x1]&&arguments[0x1];null==_0x1026de&&(this['currentId']=null,this[_0x40b3ed('0x31')]=null),this[_0x40b3ed('0xdc6')](!0x1),this['initForm'](),this[_0x40b3ed('0xb45')]['current']['setViewOnly'](_0x125e3f),this[_0x40b3ed('0xb45')][_0x40b3ed('0xda7')][_0x40b3ed('0x312')](_0x1026de);}},{'key':'showFilters','value':function(){var _0x1d920c=_0x185d5c;this['initForm'](),this['filtersContainer']['current'][_0x1d920c('0x312')](this[_0x1d920c('0x562')]);}},{'key':'resetFilters','value':function(){var _0x52ca12=_0x185d5c;this[_0x52ca12('0x562')]=this[_0x52ca12('0x1102')],this[_0x52ca12('0x322')]=!0x1,this[_0x52ca12('0xa70')]='',this[_0x52ca12('0xd12')]([]),this['tableContainer'][_0x52ca12('0xda7')][_0x52ca12('0xb5b')](this[_0x52ca12('0x562')]);}},{'key':'get','value':function(){var _0x47563f=_0x185d5c,_0x1d60ab=this;this[_0x47563f('0x549')]&&this[_0x47563f('0x549')][_0x47563f('0xda7')]&&this[_0x47563f('0x549')][_0x47563f('0xda7')][_0x47563f('0x3dd')](null),this[_0x47563f('0xd03')](),this[_0x47563f('0x10')]['updateAllMasterData']()[_0x47563f('0x10c6')](function(){var _0x1951e6=_0x47563f;_0x1d60ab[_0x1951e6('0x549')][_0x1951e6('0xda7')][_0x1951e6('0x10eb')]();}),this['trackEvent'](_0x47563f('0xd12'),this[_0x47563f('0xe3e')],this[_0x47563f('0x2ac')]);}},{'key':_0x185d5c('0xe41'),'value':function(){}},{'key':_0x185d5c('0x52c'),'value':function(_0x3ab60a,_0x6d3e8d){var _0x10e4cb=_0x185d5c;return _0x3ab60a[_0x10e4cb('0xd8e')](function(_0x31b97f){var _0x3728ab=_0x10e4cb;return _0x31b97f[_0x3728ab('0x535')]=_0x31b97f[_0x3728ab('0x535')]['reduce'](function(_0x2068ce,_0x3a52bf){var _0x3dd1d0=_0x3728ab,_0x585aec=_0x6d3e8d[_0x3dd1d0('0xe05')](function(_0x395f01){return _0x147bac(_0x395f01,0x1)[0x0]===_0x3a52bf;});return _0x585aec&&_0x2068ce[_0x3dd1d0('0x91b')](_0x585aec),_0x2068ce;},[]),_0x31b97f;});}},{'key':_0x185d5c('0xebd'),'value':function(){return{'width':0x400,'twoColumnLayout':!0x1};}}]),_0x145774;}(_0x53e6dd['default']);_0x3fc7ed['default']=_0x4c7a23;},{'../components/IceFormModal':0x47,'../components/IceStepFromModal':0x4c,'../components/IceTable':0x4d,'./AdapterBase':0x34,'./MasterDataReader':0x3d,'@ant-design/icons':_0x548f48('0x5b4'),'antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11'),'react-dom':_0x548f48('0x1d5')}],0x42:[function(_0xc5691,_0x751f58,_0x29181d){var _0x26e6af=_0x548f48;'use strict';var _0x23c040;function _0x3c1270(_0x367658){var _0x4a584c=_0x5376;return(_0x3c1270=_0x4a584c('0x106c')==typeof Symbol&&_0x4a584c('0x43c')==typeof Symbol['iterator']?function(_0x4dcebc){return typeof _0x4dcebc;}:function(_0xd26a8c){var _0x4d33c9=_0x4a584c;return _0xd26a8c&&'function'==typeof Symbol&&_0xd26a8c['constructor']===Symbol&&_0xd26a8c!==Symbol[_0x4d33c9('0xe02')]?_0x4d33c9('0x43c'):typeof _0xd26a8c;})(_0x367658);}function _0x3c41c9(_0x483bce,_0x20b628){var _0x224c3d=_0x5376;if(!(_0x483bce instanceof _0x20b628))throw new TypeError(_0x224c3d('0xf98'));}function _0x13b30c(_0x3445d9,_0x13df52){var _0x228760=_0x5376;for(var _0x1a33a1=0x0;_0x1a33a1<_0x13df52[_0x228760('0x13')];_0x1a33a1++){var _0x3eec64=_0x13df52[_0x1a33a1];_0x3eec64[_0x228760('0x3bf')]=_0x3eec64['enumerable']||!0x1,_0x3eec64[_0x228760('0x749')]=!0x0,_0x228760('0x30')in _0x3eec64&&(_0x3eec64['writable']=!0x0),Object[_0x228760('0x9a5')](_0x3445d9,_0x3eec64[_0x228760('0x86f')],_0x3eec64);}}function _0x689ce(_0x1ab2ed,_0x2cd760){var _0x505ac9=_0x5376;return!_0x2cd760||_0x505ac9('0xb3f')!==_0x3c1270(_0x2cd760)&&_0x505ac9('0x106c')!=typeof _0x2cd760?function(_0x27c02e){if(void 0x0===_0x27c02e)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x27c02e;}(_0x1ab2ed):_0x2cd760;}function _0x24e3b5(){var _0x1af9a1=_0x5376;if(_0x1af9a1('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x1af9a1('0x353')]['sham'])return!0x1;if(_0x1af9a1('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x1af9a1('0xe02')][_0x1af9a1('0xb6d')][_0x1af9a1('0xfd2')](Reflect[_0x1af9a1('0x353')](Date,[],function(){})),!0x0;}catch(_0x1fb083){return!0x1;}}function _0x525d1f(_0x2efe65){var _0x2a8354=_0x5376;return(_0x525d1f=Object[_0x2a8354('0x3df')]?Object['getPrototypeOf']:function(_0x48808a){var _0x2a883c=_0x2a8354;return _0x48808a[_0x2a883c('0x112c')]||Object[_0x2a883c('0x2d9')](_0x48808a);})(_0x2efe65);}function _0x16d2db(_0x2f3137,_0x376e80){var _0x2c6203=_0x5376;return(_0x16d2db=Object[_0x2c6203('0x3df')]||function(_0x5e37d6,_0x5bb6ed){var _0x2a32e6=_0x2c6203;return _0x5e37d6[_0x2a32e6('0x112c')]=_0x5bb6ed,_0x5e37d6;})(_0x2f3137,_0x376e80);}Object['defineProperty'](_0x29181d,_0x26e6af('0xce5'),{'value':!0x0}),_0x29181d[_0x26e6af('0xf5f')]=void 0x0;var _0x1f4450=function(_0x332ad8){var _0x3bb685=_0x26e6af;!function(_0x1a2e87,_0xb04154){var _0x1d478e=_0x5376;if(_0x1d478e('0x106c')!=typeof _0xb04154&&null!==_0xb04154)throw new TypeError(_0x1d478e('0x5a0'));_0x1a2e87[_0x1d478e('0xe02')]=Object[_0x1d478e('0xbd0')](_0xb04154&&_0xb04154[_0x1d478e('0xe02')],{'constructor':{'value':_0x1a2e87,'writable':!0x0,'configurable':!0x0}}),_0xb04154&&_0x16d2db(_0x1a2e87,_0xb04154);}(_0x3c252a,_0x332ad8);var _0xf6cca1,_0xac17e8,_0x270f70,_0x4c3f99,_0x529c49=(_0xf6cca1=_0x3c252a,function(){var _0x154e8b=_0x5376,_0x429465,_0x17447d=_0x525d1f(_0xf6cca1);if(_0x24e3b5()){var _0x461ce6=_0x525d1f(this)[_0x154e8b('0xad1')];_0x429465=Reflect[_0x154e8b('0x353')](_0x17447d,arguments,_0x461ce6);}else _0x429465=_0x17447d[_0x154e8b('0x2be')](this,arguments);return _0x689ce(this,_0x429465);});function _0x3c252a(){var _0x149b64=_0x5376;return _0x3c41c9(this,_0x3c252a),_0x529c49[_0x149b64('0x2be')](this,arguments);}return _0xac17e8=_0x3c252a,(_0x270f70=[{'key':_0x3bb685('0xc50'),'value':function(_0x49919c){var _0x98ec3d=_0x3bb685;this[_0x98ec3d('0xaaa')]['id']=_0x49919c,this[_0x98ec3d('0x8d8')]();}},{'key':_0x3bb685('0x37f'),'value':function(_0x1335cd){var _0x449683=_0x3bb685,_0x173c2b,_0x32f762,_0x3d429a,_0x15337f,_0x8aad48=this[_0x449683('0x49c')](),_0x4598a4=''),_0x3bdc4b=''));else for(var _0x4b0e07=0x0;_0x4b0e07<_0x8aad48['length'];_0x4b0e07++)_0x173c2b=_0x8aad48[_0x4b0e07],_0x3d429a=_0x4598a4['replace'](/_id_/g,_0x173c2b[0x0]),_0x15337f=_0x3bdc4b[_0x449683('0xd06')](/_id_/g,_0x173c2b[0x0]),_0x32f762=this[_0x449683('0x111')](_0x173c2b,_0x3d429a,_0x15337f),_0xc9e9a0[_0x449683('0x895')](_0x32f762);$('#'['concat'](_0x1335cd))[_0x449683('0x276')](''),$('#'[_0x449683('0xda9')](_0x1335cd))[_0x449683('0x895')](_0xc9e9a0),$(_0x449683('0x890'))[_0x449683('0xf89')](_0x449683('0xcee'));}},{'key':_0x3bb685('0x214'),'value':function(){var _0x2c6858=_0x3bb685;return _0x2c6858('0x8a6');}},{'key':_0x3bb685('0xbd8'),'value':function(){var _0x1e2bf4=_0x3bb685;return $(_0x1e2bf4('0xa57')[_0x1e2bf4('0xda9')](this[_0x1e2bf4('0xe8f')](),_0x1e2bf4('0x387')));}}])&&_0x13b30c(_0xac17e8[_0x3bb685('0xe02')],_0x270f70),_0x4c3f99&&_0x13b30c(_0xac17e8,_0x4c3f99),_0x3c252a;}(((_0x23c040=_0xc5691(_0x26e6af('0x8ac')))&&_0x23c040[_0x26e6af('0xce5')]?_0x23c040:{'default':_0x23c040})[_0x26e6af('0xf5f')]);_0x29181d[_0x26e6af('0xf5f')]=_0x1f4450;},{'./AdapterBase':0x34}],0x43:[function(_0x2ab7ff,_0x4b691e,_0x47bfc7){var _0x163bfb=_0x548f48;'use strict';var _0x7bf948;function _0x328d9b(_0x22d23e){var _0x5b5c91=_0x5376;return(_0x328d9b=_0x5b5c91('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x5b5c91('0x57b')]?function(_0x2ca878){return typeof _0x2ca878;}:function(_0x518ac0){var _0x5e7624=_0x5b5c91;return _0x518ac0&&_0x5e7624('0x106c')==typeof Symbol&&_0x518ac0[_0x5e7624('0xad1')]===Symbol&&_0x518ac0!==Symbol['prototype']?_0x5e7624('0x43c'):typeof _0x518ac0;})(_0x22d23e);}function _0x6b669c(_0x2acbc1,_0x4b6562){var _0x1169d7=_0x5376;for(var _0x324b03=0x0;_0x324b03<_0x4b6562[_0x1169d7('0x13')];_0x324b03++){var _0x18c67c=_0x4b6562[_0x324b03];_0x18c67c[_0x1169d7('0x3bf')]=_0x18c67c[_0x1169d7('0x3bf')]||!0x1,_0x18c67c[_0x1169d7('0x749')]=!0x0,_0x1169d7('0x30')in _0x18c67c&&(_0x18c67c[_0x1169d7('0x820')]=!0x0),Object[_0x1169d7('0x9a5')](_0x2acbc1,_0x18c67c[_0x1169d7('0x86f')],_0x18c67c);}}function _0xa70200(_0x2bfc0d,_0x4e50ac){var _0x562250=_0x5376;return!_0x4e50ac||'object'!==_0x328d9b(_0x4e50ac)&&_0x562250('0x106c')!=typeof _0x4e50ac?function(_0x4c6766){var _0x58a5e9=_0x562250;if(void 0x0===_0x4c6766)throw new ReferenceError(_0x58a5e9('0xe0d'));return _0x4c6766;}(_0x2bfc0d):_0x4e50ac;}function _0x1604ec(){var _0x18651a=_0x5376;if('undefined'==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x18651a('0x353')][_0x18651a('0xb21')])return!0x1;if(_0x18651a('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x18651a('0xe02')]['toString'][_0x18651a('0xfd2')](Reflect[_0x18651a('0x353')](Date,[],function(){})),!0x0;}catch(_0x11099c){return!0x1;}}function _0x363a93(_0x586dae){var _0x5f19da=_0x5376;return(_0x363a93=Object[_0x5f19da('0x3df')]?Object[_0x5f19da('0x2d9')]:function(_0x1cda85){var _0x334422=_0x5f19da;return _0x1cda85[_0x334422('0x112c')]||Object[_0x334422('0x2d9')](_0x1cda85);})(_0x586dae);}function _0x3f0abe(_0x203d7c,_0x4638d5){return(_0x3f0abe=Object['setPrototypeOf']||function(_0x57a53c,_0x315411){var _0x1ba1eb=_0x5376;return _0x57a53c[_0x1ba1eb('0x112c')]=_0x315411,_0x57a53c;})(_0x203d7c,_0x4638d5);}Object['defineProperty'](_0x47bfc7,'__esModule',{'value':!0x0}),_0x47bfc7['default']=void 0x0;var _0x987038=function(_0x38ae39){var _0x3e15ca=_0x5376;!function(_0xaa007b,_0x12aa90){var _0x589906=_0x5376;if('function'!=typeof _0x12aa90&&null!==_0x12aa90)throw new TypeError(_0x589906('0x5a0'));_0xaa007b[_0x589906('0xe02')]=Object[_0x589906('0xbd0')](_0x12aa90&&_0x12aa90[_0x589906('0xe02')],{'constructor':{'value':_0xaa007b,'writable':!0x0,'configurable':!0x0}}),_0x12aa90&&_0x3f0abe(_0xaa007b,_0x12aa90);}(_0x2e4db2,_0x38ae39);var _0x31a034,_0x1618e7,_0x50f84f,_0x3c94ef,_0x59e0ed=(_0x31a034=_0x2e4db2,function(){var _0x33027c=_0x5376,_0x25a408,_0x294e83=_0x363a93(_0x31a034);if(_0x1604ec()){var _0x1402d2=_0x363a93(this)[_0x33027c('0xad1')];_0x25a408=Reflect[_0x33027c('0x353')](_0x294e83,arguments,_0x1402d2);}else _0x25a408=_0x294e83[_0x33027c('0x2be')](this,arguments);return _0xa70200(this,_0x25a408);});function _0x2e4db2(_0x4ca72c,_0x2b17d8,_0x22cfd1,_0x9bd829){var _0x43b549=_0x5376,_0x3c9363;return function(_0x1e1efa,_0x3a380f){var _0x274813=_0x5376;if(!(_0x1e1efa instanceof _0x3a380f))throw new TypeError(_0x274813('0xf98'));}(this,_0x2e4db2),(_0x3c9363=_0x59e0ed[_0x43b549('0xfd2')](this,_0x4ca72c,_0x2b17d8,_0x22cfd1,_0x9bd829))['cellDataUpdates']={},_0x3c9363['modulePath']='',_0x3c9363[_0x43b549('0xd93')]='',_0x3c9363[_0x43b549('0x10db')]='',_0x3c9363[_0x43b549('0x425')]='',_0x3c9363[_0x43b549('0x56b')]='',_0x3c9363[_0x43b549('0x264')]='',_0x3c9363[_0x43b549('0xdf9')]=[],_0x3c9363[_0x43b549('0x238')]={},_0x3c9363;}return _0x1618e7=_0x2e4db2,(_0x50f84f=[{'key':_0x3e15ca('0xabf'),'value':function(_0x17d185){var _0x4803f2=_0x3e15ca;this[_0x4803f2('0x953')]=_0x17d185;}},{'key':_0x3e15ca('0xa9f'),'value':function(_0xe50c36){this['rowFieldName']=_0xe50c36;}},{'key':_0x3e15ca('0x72b'),'value':function(_0x42005d,_0x1b53c1,_0x4bbf1e){var _0x374274=_0x3e15ca;this['rowTable']=_0x42005d,this[_0x374274('0x56b')]=_0x1b53c1,this[_0x374274('0x264')]=_0x4bbf1e;}},{'key':'setColumnFieldName','value':function(_0x298fbc){var _0xa3376=_0x3e15ca;this[_0xa3376('0x10db')]=_0x298fbc;}},{'key':_0x3e15ca('0x44a'),'value':function(){return[];}},{'key':_0x3e15ca('0x10d7'),'value':function(){return[];}},{'key':_0x3e15ca('0xd12'),'value':function(){var _0x209098=_0x3e15ca;this[_0x209098('0x498')]();}},{'key':'getAllData','value':function(_0x170588){var _0xf96c5e=_0x3e15ca,_0x2992a9={};_0x2992a9[_0xf96c5e('0x425')]=this[_0xf96c5e('0x425')],_0x2992a9[_0xf96c5e('0x56b')]=this[_0xf96c5e('0x56b')],_0x2992a9['valueTable']=this[_0xf96c5e('0x264')],(_0x2992a9=this[_0xf96c5e('0x519')](_0xf96c5e('0x498'),_0x2992a9))[_0xf96c5e('0xb6')]=void 0x0===_0x170588||null==_0x170588||!0x1===_0x170588?0x0:0x1;var _0x43ea10=JSON['stringify'](_0x2992a9),_0x4d79d7=[];_0x4d79d7['callBackData']=[],_0x4d79d7[_0xf96c5e('0x691')]=_0xf96c5e('0xf4d'),_0x4d79d7[_0xf96c5e('0xc93')]=_0xf96c5e('0xced'),this['customAction'](_0xf96c5e('0x498'),this['modulePath'],_0x43ea10,_0x4d79d7);}},{'key':_0x3e15ca('0x975'),'value':function(_0x3bf660,_0xe458fd,_0x42dedb){var _0x2cde42=_0x3e15ca,_0x244d13=_0x42dedb[0x1],_0x27b9f7=_0x42dedb[0x0],_0xc7161f=_0x42dedb[0x2];return-0x1===_0xe458fd?_0x27b9f7[_0x3bf660][_0x2cde42('0x3ea')]:this['getDataItemByKeyValues'](this['rowFieldName'],_0x27b9f7[_0x3bf660]['id'],this[_0x2cde42('0x10db')],_0x244d13[_0xe458fd]['id'],_0xc7161f);}},{'key':_0x3e15ca('0x3c'),'value':function(_0x8ea5b0,_0x4929d1,_0x2ade6e,_0x31f4d0,_0x3b7a31){var _0x117d90=_0x3e15ca;for(var _0x2bfab8=0x0;_0x2bfab8<_0x3b7a31[_0x117d90('0x13')];_0x2bfab8++)if(_0x3b7a31[_0x2bfab8][_0x8ea5b0]===_0x4929d1&&_0x3b7a31[_0x2bfab8][_0x2ade6e]===_0x31f4d0)return void 0x0!==_0x3b7a31[_0x2bfab8][_0x117d90('0x5d7')]&&null!=_0x3b7a31[_0x2bfab8][_0x117d90('0x5d7')]?_0x3b7a31[_0x2bfab8][_0x117d90('0x5d7')]:'';return'';}},{'key':_0x3e15ca('0xf4d'),'value':function(_0x19eea4){var _0x15b79c=_0x3e15ca;for(var _0x153b7b=_0x19eea4[0x2],_0x1737b6=_0x19eea4[0x1],_0x2816fe=_0x19eea4[0x0],_0x1c12a6=[],_0x3ba273=0x0;_0x3ba273<_0x2816fe[_0x15b79c('0x13')];_0x3ba273++){for(var _0x5399d4=[],_0x115c12=-0x1;_0x115c12<_0x1737b6['length'];_0x115c12++)_0x5399d4[_0x115c12+0x1]=this['getDataItem'](_0x3ba273,_0x115c12,_0x19eea4);_0x1c12a6[_0x15b79c('0x91b')](this['preProcessTableData'](_0x5399d4));}this[_0x15b79c('0x1f7')]=_0x153b7b,this[_0x15b79c('0x973')]=_0x1c12a6,this[_0x15b79c('0xa42')](_0x1737b6,_0x2816fe),this[_0x15b79c('0x37f')](this[_0x15b79c('0x3ed')]()),$('#'['concat'](this[_0x15b79c('0x3ed')](),_0x15b79c('0xe32')))[_0x15b79c('0xcee')](),$('#'[_0x15b79c('0xda9')](this[_0x15b79c('0x3ed')]()))['show'](),this[_0x15b79c('0xdf9')]=[];for(var _0x10e4f2=[],_0xfd9b32=0x0;_0xfd9b32<_0x1737b6[_0x15b79c('0x13')];_0xfd9b32++)_0x10e4f2[_0x15b79c('0x91b')](_0x1737b6[_0xfd9b32][_0x15b79c('0x3ea')]);_0x10e4f2=this[_0x15b79c('0xede')](_0x10e4f2),this[_0x15b79c('0xdf9')][_0x15b79c('0x91b')](_0x10e4f2);for(var _0x1b05f9=0x0;_0x1b05f9<_0x1c12a6[_0x15b79c('0x13')];_0x1b05f9++)this[_0x15b79c('0xdf9')]['push'](_0x1c12a6[_0x1b05f9]);}},{'key':'modifyCSVHeader','value':function(_0x234cb8){return _0x234cb8;}},{'key':_0x3e15ca('0xced'),'value':function(_0x36be18,_0x3a4854){}},{'key':_0x3e15ca('0xa42'),'value':function(_0x5c7b47,_0x4e06a7){var _0xeeb5a4=_0x3e15ca,_0x1718f6=[];_0x1718f6[_0xeeb5a4('0x91b')]({'sTitle':'','sWidth':'180px;'});var _0x3a6812='';this[_0xeeb5a4('0x238')]={};for(var _0x168e57=0x0;_0x168e57<_0x5c7b47['length'];_0x168e57++)this[_0xeeb5a4('0x238')][_0x5c7b47[_0x168e57]['id']]=_0x168e57,_0x3a6812=void 0x0===_0x5c7b47[_0x168e57][_0xeeb5a4('0xd6d')]||null==_0x5c7b47[_0x168e57][_0xeeb5a4('0xd6d')]||_0xeeb5a4('0x1041')===_0x5c7b47[_0x168e57][_0xeeb5a4('0xd6d')]?_0xeeb5a4('0xd60'):'',_0x1718f6[_0xeeb5a4('0x91b')]({'sTitle':_0x5c7b47[_0x168e57]['name'],'sClass':_0x3a6812,'fnCreatedCell':function(_0x4dab98,_0x214f96,_0x5cc40d,_0x247863,_0x566d15){var _0x5abd33=_0xeeb5a4;$(_0x4dab98)[_0x5abd33('0x1016')](_0x5abd33('0x347'),_0x5c7b47[_0x566d15-0x1]['id']),$(_0x4dab98)[_0x5abd33('0x1016')](_0x5abd33('0xf70'),_0x4e06a7[_0x247863]['id']);}});this[_0xeeb5a4('0xe42')]=_0x1718f6;}},{'key':_0x3e15ca('0x95e'),'value':function(){var _0x27f256=_0x3e15ca;return this[_0x27f256('0xe42')];}},{'key':'createTable','value':function(_0x51b719){var _0x3b62c3=_0x3e15ca,_0x542573,_0x33362f=this[_0x3b62c3('0x49c')](),_0x5cb871=this[_0x3b62c3('0x95e')]();if(this[_0x3b62c3('0xe68')]()&&_0x5cb871[_0x3b62c3('0x91b')]({'sTitle':'','sClass':_0x3b62c3('0x40c')}),this[_0x3b62c3('0xe68')]())for(var _0x332f57=0x0;_0x332f57<_0x33362f[_0x3b62c3('0x13')];_0x332f57++)_0x33362f[_0x332f57][_0x3b62c3('0x91b')](this['getActionButtonsHtml'](_0x33362f[_0x332f57][0x0],_0x33362f[_0x332f57]));_0x542573=''['concat'](this[_0x3b62c3('0xe2c')](),_0x3b62c3('0x8b1'));var _0x1acda2=$('#'['concat'](_0x51b719,'\x20.dataTables_paginate\x20.active\x20a'))[_0x3b62c3('0x276')](),_0x2348fa=0x0;void 0x0!==_0x1acda2&&null!=_0x1acda2&&(_0x2348fa=0xf*parseInt(_0x1acda2,0xa)-0xf),$('#'['concat'](_0x51b719))[_0x3b62c3('0x276')](_0x542573);var _0x271df7={'oLanguage':{'sLengthMenu':_0x3b62c3('0x3d7')},'aaData':_0x33362f,'aoColumns':_0x5cb871,'bSort':!0x1,'iDisplayLength':0xf,'iDisplayStart':_0x2348fa},_0x156df0=this[_0x3b62c3('0x3f6')]();$[_0x3b62c3('0x73')](_0x271df7,_0x156df0),$('#'['concat'](_0x51b719,_0x3b62c3('0xd01')))[_0x3b62c3('0xa2')](_0x271df7),$(_0x3b62c3('0x308'))['addClass'](_0x3b62c3('0x765')),$(_0x3b62c3('0x547'))['hide'](),$(_0x3b62c3('0x929'))[_0x3b62c3('0x6a')](_0x3b62c3('0xb3b')),$('.dataTables_filter\x20input')[_0x3b62c3('0xb0c')](_0x3b62c3('0xa49'),_0x3b62c3('0x9de')),$(_0x3b62c3('0x232'))[_0x3b62c3('0xc8d')]()[_0x3b62c3('0x562')](function(){var _0x2ff0d8=_0x3b62c3;return 0x3===this[_0x2ff0d8('0x5a')];})[_0x3b62c3('0xaa6')](),$('#'[_0x3b62c3('0xda9')](_0x51b719,'\x20#grid'))[_0x3b62c3('0x153')](),$('#'[_0x3b62c3('0xda9')](_0x51b719,_0x3b62c3('0x196')))['on'](_0x3b62c3('0x10d8'),function(_0x3f83bd,_0x57f3fa){var _0x1795b6=_0x3b62c3;return modJs[_0x1795b6('0xc21')]($(this),_0x3f83bd,_0x57f3fa);}),this['afterCreateTable'](_0x51b719);}},{'key':_0x3e15ca('0x2fb'),'value':function(_0x1c58bc){}},{'key':_0x3e15ca('0x9f8'),'value':function(_0x552af3,_0x51db73,_0x34af1d){var _0x490e10=_0x3e15ca;this['cellDataUpdates'][''[_0x490e10('0xda9')](_0x552af3,'=')['concat'](_0x51db73)]=[_0x552af3,_0x51db73,_0x34af1d];}},{'key':'addAdditionalRequestData','value':function(_0x5a81f2,_0x56b070){return _0x56b070;}},{'key':_0x3e15ca('0xd8c'),'value':function(){var _0x549713=_0x3e15ca,_0x3ca4cc=this[_0x549713('0x105a')];_0x3ca4cc[_0x549713('0x425')]=this['rowTable'],_0x3ca4cc[_0x549713('0x56b')]=this['columnTable'],_0x3ca4cc[_0x549713('0x264')]=this[_0x549713('0x264')],_0x3ca4cc=this[_0x549713('0x519')](_0x549713('0x1f9'),_0x3ca4cc);var _0xe520ec=JSON[_0x549713('0xf0b')](_0x3ca4cc),_0x2215b9=[];_0x2215b9['callBackData']=[],_0x2215b9[_0x549713('0x691')]=_0x549713('0x76'),_0x2215b9['callBackFail']=_0x549713('0x98e'),this[_0x549713('0xe41')](),this[_0x549713('0xd99')](_0x549713('0x1f9'),this['modulePath'],_0xe520ec,_0x2215b9);}},{'key':_0x3e15ca('0x76'),'value':function(_0x285199,_0x11d8c5){var _0x15bc60=_0x3e15ca;this[_0x15bc60('0xf0c')](),modJs['cellDataUpdates']={},modJs[_0x15bc60('0xd12')]();}},{'key':_0x3e15ca('0x98e'),'value':function(_0x4478ae,_0x192727){this['hideLoader']();}},{'key':'sendAllCellDataUpdates','value':function(){var _0x223a21=_0x3e15ca,_0xfdb4ae=this[_0x223a21('0x105a')];_0xfdb4ae[_0x223a21('0x425')]=this['rowTable'],_0xfdb4ae['columnTable']=this[_0x223a21('0x56b')],_0xfdb4ae[_0x223a21('0x264')]=this[_0x223a21('0x264')],_0xfdb4ae=this[_0x223a21('0x519')]('updateAllData',_0xfdb4ae);var _0x6b1d37=JSON['stringify'](_0xfdb4ae),_0x27a132=[];_0x27a132[_0x223a21('0x88d')]=[],_0x27a132[_0x223a21('0x691')]=_0x223a21('0xc2e'),_0x27a132[_0x223a21('0xc93')]=_0x223a21('0x53b'),this[_0x223a21('0xe41')](),this[_0x223a21('0xd99')]('updateAllData',this[_0x223a21('0x953')],_0x6b1d37,_0x27a132);}},{'key':'updateDataAllSuccessCallBack','value':function(_0x265ae2,_0x791056){this['hideLoader'](),modJs['cellDataUpdates']={},modJs['getAllData'](!0x0);}},{'key':_0x3e15ca('0x53b'),'value':function(_0x2d2504,_0x256fd8){var _0x29bb05=_0x3e15ca;this[_0x29bb05('0xf0c')]();}},{'key':_0x3e15ca('0xe68'),'value':function(){return!0x1;}}])&&_0x6b669c(_0x1618e7[_0x3e15ca('0xe02')],_0x50f84f),_0x3c94ef&&_0x6b669c(_0x1618e7,_0x3c94ef),_0x2e4db2;}(((_0x7bf948=_0x2ab7ff(_0x163bfb('0x8ac')))&&_0x7bf948[_0x163bfb('0xce5')]?_0x7bf948:{'default':_0x7bf948})[_0x163bfb('0xf5f')]);_0x47bfc7[_0x163bfb('0xf5f')]=_0x987038;},{'./AdapterBase':0x34}],0x44:[function(_0x3fed6e,_0x3a7dc0,_0x30c922){var _0x46ab74=_0x548f48;'use strict';function _0x1ddbaf(_0x228a94){var _0x5f271e=_0x5376;return(_0x1ddbaf=_0x5f271e('0x106c')==typeof Symbol&&_0x5f271e('0x43c')==typeof Symbol[_0x5f271e('0x57b')]?function(_0x220e62){return typeof _0x220e62;}:function(_0x15fd2e){var _0x8e7759=_0x5f271e;return _0x15fd2e&&_0x8e7759('0x106c')==typeof Symbol&&_0x15fd2e['constructor']===Symbol&&_0x15fd2e!==Symbol[_0x8e7759('0xe02')]?_0x8e7759('0x43c'):typeof _0x15fd2e;})(_0x228a94);}Object[_0x46ab74('0x9a5')](_0x30c922,_0x46ab74('0xce5'),{'value':!0x0}),_0x30c922['default']=void 0x0;var _0x622643=function(_0x303e83){var _0x344eb5=_0x46ab74;if(_0x303e83&&_0x303e83[_0x344eb5('0xce5')])return _0x303e83;if(null===_0x303e83||_0x344eb5('0xb3f')!==_0x1ddbaf(_0x303e83)&&'function'!=typeof _0x303e83)return{'default':_0x303e83};var _0x333196=_0x176658();if(_0x333196&&_0x333196[_0x344eb5('0xe5f')](_0x303e83))return _0x333196[_0x344eb5('0xd12')](_0x303e83);var _0x356320={},_0x4e328d=Object[_0x344eb5('0x9a5')]&&Object['getOwnPropertyDescriptor'];for(var _0x497cbb in _0x303e83)if(Object['prototype']['hasOwnProperty'][_0x344eb5('0xfd2')](_0x303e83,_0x497cbb)){var _0x5d5796=_0x4e328d?Object[_0x344eb5('0x43d')](_0x303e83,_0x497cbb):null;_0x5d5796&&(_0x5d5796[_0x344eb5('0xd12')]||_0x5d5796[_0x344eb5('0x24a')])?Object[_0x344eb5('0x9a5')](_0x356320,_0x497cbb,_0x5d5796):_0x356320[_0x497cbb]=_0x303e83[_0x497cbb];}return _0x356320[_0x344eb5('0xf5f')]=_0x303e83,_0x333196&&_0x333196[_0x344eb5('0x24a')](_0x303e83,_0x356320),_0x356320;}(_0x3fed6e(_0x46ab74('0xb11'))),_0x48e5a8=_0x3fed6e(_0x46ab74('0x7d3'));function _0x176658(){var _0x2ce95e=_0x46ab74;if(_0x2ce95e('0x106c')!=typeof WeakMap)return null;var _0x44b0e0=new WeakMap();return _0x176658=function(){return _0x44b0e0;},_0x44b0e0;}function _0x4cd18d(_0x5221c7,_0x1ecba2){return function(_0x4d0026){var _0x11a45b=_0x5376;if(Array[_0x11a45b('0xb66')](_0x4d0026))return _0x4d0026;}(_0x5221c7)||function(_0x4a23ee,_0x31681f){var _0x4b08bc=_0x5376;if(_0x4b08bc('0x449')==typeof Symbol||!(Symbol[_0x4b08bc('0x57b')]in Object(_0x4a23ee)))return;var _0x412891=[],_0x66d1b4=!0x0,_0x46a334=!0x1,_0x5c901=void 0x0;try{for(var _0x544f3d,_0x35fefc=_0x4a23ee[Symbol[_0x4b08bc('0x57b')]]();!(_0x66d1b4=(_0x544f3d=_0x35fefc[_0x4b08bc('0x165')]())[_0x4b08bc('0x1126')])&&(_0x412891[_0x4b08bc('0x91b')](_0x544f3d[_0x4b08bc('0x30')]),!_0x31681f||_0x412891[_0x4b08bc('0x13')]!==_0x31681f);_0x66d1b4=!0x0);}catch(_0x1ce47e){_0x46a334=!0x0,_0x5c901=_0x1ce47e;}finally{try{_0x66d1b4||null==_0x35fefc['return']||_0x35fefc[_0x4b08bc('0x4c8')]();}finally{if(_0x46a334)throw _0x5c901;}}return _0x412891;}(_0x5221c7,_0x1ecba2)||function(_0x5dcaaa,_0x16370c){var _0x30dbd5=_0x5376;if(!_0x5dcaaa)return;if(_0x30dbd5('0x2fd')==typeof _0x5dcaaa)return _0x2cb67e(_0x5dcaaa,_0x16370c);var _0x2aa7bf=Object[_0x30dbd5('0xe02')][_0x30dbd5('0xb6d')][_0x30dbd5('0xfd2')](_0x5dcaaa)[_0x30dbd5('0xdf1')](0x8,-0x1);_0x30dbd5('0xe25')===_0x2aa7bf&&_0x5dcaaa[_0x30dbd5('0xad1')]&&(_0x2aa7bf=_0x5dcaaa[_0x30dbd5('0xad1')][_0x30dbd5('0x3ea')]);if(_0x30dbd5('0xc2d')===_0x2aa7bf||_0x30dbd5('0xdb3')===_0x2aa7bf)return Array[_0x30dbd5('0x1161')](_0x2aa7bf);if('Arguments'===_0x2aa7bf||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x30dbd5('0x2c3')](_0x2aa7bf))return _0x2cb67e(_0x5dcaaa,_0x16370c);}(_0x5221c7,_0x1ecba2)||function(){var _0x2492cf=_0x5376;throw new TypeError(_0x2492cf('0x846'));}();}function _0x2cb67e(_0x30ee41,_0x202e37){var _0x318ac0=_0x46ab74;(null==_0x202e37||_0x202e37>_0x30ee41[_0x318ac0('0x13')])&&(_0x202e37=_0x30ee41[_0x318ac0('0x13')]);for(var _0x4185ce=0x0,_0x12274c=new Array(_0x202e37);_0x4185ce<_0x202e37;_0x4185ce++)_0x12274c[_0x4185ce]=_0x30ee41[_0x4185ce];return _0x12274c;}var _0x5ef081=function(_0x55df0d){var _0x385251=_0x46ab74,_0x285e0a=_0x55df0d['value'],_0x187da7=_0x55df0d[_0x385251('0x3f9')],_0xa038cf=_0x55df0d[_0x385251('0x1134')],_0x15ae24=function(_0x43e100){var _0x8f326c=_0x385251,_0x39b15d=_0x4cd18d((0x0,_0x622643[_0x8f326c('0xf3d')])(_0x43e100),0x2),_0x4e64b9=_0x39b15d[0x0],_0x5858a1=_0x39b15d[0x1],_0x5640e7=(0x0,_0x622643['useRef'])(null),_0x319c07=function(_0x15aed5){var _0x39297a=_0x8f326c;_0x5640e7[_0x39297a('0xda7')]&&!_0x5640e7[_0x39297a('0xda7')][_0x39297a('0x4cc')](_0x15aed5[_0x39297a('0x1d7')])&&_0x5858a1(!0x1);};return(0x0,_0x622643[_0x8f326c('0xd74')])(function(){var _0x2da27b=_0x8f326c;return document[_0x2da27b('0x363')]('click',_0x319c07,!0x0),function(){var _0x251b8c=_0x2da27b;document[_0x251b8c('0xb5a')](_0x251b8c('0x29f'),_0x319c07,!0x0);};}),{'ref':_0x5640e7,'isComponentVisible':_0x4e64b9,'setIsComponentVisible':_0x5858a1};}(!0x0),_0xa5b098=_0x15ae24['ref'],_0x56e140=_0x15ae24[_0x385251('0x9e9')],_0xd621b8=_0x15ae24['setIsComponentVisible'],_0x3e6ed3=_0x4cd18d((0x0,_0x622643[_0x385251('0xf3d')])(_0x285e0a||_0x385251('0x1138')),0x2),_0x390a5c=_0x3e6ed3[0x0],_0x584229=_0x3e6ed3[0x1],_0x38407e=_0x4cd18d((0x0,_0x622643[_0x385251('0xf3d')])(!0x1),0x2),_0x5303d0=_0x38407e[0x0],_0x51cf1f=_0x38407e[0x1];return(0x0,_0x622643[_0x385251('0xd74')])(function(){_0x56e140||_0x51cf1f(!0x1);},[_0x56e140]),(0x0,_0x622643[_0x385251('0xd74')])(function(){_0x285e0a&&_0x584229(_0x285e0a);},[_0x285e0a]),_0x622643[_0x385251('0xf5f')][_0x385251('0xfa9')](_0x385251('0x26c'),{'className':_0x385251('0xc1a')},_0x622643[_0x385251('0xf5f')][_0x385251('0xfa9')](_0x385251('0x26c'),{'className':'colorpicker-preview','onClick':function(){_0x5303d0||_0xd621b8(!0x0),_0x51cf1f(!_0x5303d0);},'style':{'backgroundColor':_0x390a5c}}),_0x622643[_0x385251('0xf5f')]['createElement'](_0x385251('0x26c'),{'ref':_0xa5b098,'className':'colorpicker-component\x20'['concat'](_0xa038cf||!_0x5303d0?_0x385251('0x10f4'):'')},_0x622643[_0x385251('0xf5f')][_0x385251('0xfa9')](_0x48e5a8[_0x385251('0x119')],{'color':_0x390a5c,'disableAlpha':!0x0,'presetColors':[],'onChangeComplete':function(_0x570b0e){var _0x57529c=_0x570b0e['hex'];_0x187da7(_0x57529c),_0x584229(_0x57529c);}})));};_0x30c922[_0x46ab74('0xf5f')]=_0x5ef081;},{'react':'react','react-color':0x162}],0x45:[function(_0x4d6cda,_0x10fb54,_0x49c5f5){var _0x491936=_0x548f48;'use strict';Object['defineProperty'](_0x49c5f5,_0x491936('0xce5'),{'value':!0x0}),_0x49c5f5['default']=void 0x0;var _0x4b93cd=_0x460687(_0x4d6cda(_0x491936('0xb11'))),_0x7a4501=_0x4d6cda('antd'),_0x1dd0a7=_0x460687(_0x4d6cda(_0x491936('0x114a'))),_0xeede93=_0x460687(_0x4d6cda('react-dom'));function _0x460687(_0x5ebd96){var _0x4865d1=_0x491936;return _0x5ebd96&&_0x5ebd96[_0x4865d1('0xce5')]?_0x5ebd96:{'default':_0x5ebd96};}function _0x5bb846(_0x413b1b){var _0x143909=_0x491936;return(_0x5bb846=_0x143909('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x143909('0x57b')]?function(_0x2436e3){return typeof _0x2436e3;}:function(_0x4bd396){var _0x4c76e4=_0x143909;return _0x4bd396&&_0x4c76e4('0x106c')==typeof Symbol&&_0x4bd396[_0x4c76e4('0xad1')]===Symbol&&_0x4bd396!==Symbol[_0x4c76e4('0xe02')]?_0x4c76e4('0x43c'):typeof _0x4bd396;})(_0x413b1b);}function _0x43661d(_0x548882,_0x5266c9){var _0x5f4c3b=_0x491936,_0x4eabf5=Object[_0x5f4c3b('0x110e')](_0x548882);if(Object['getOwnPropertySymbols']){var _0x35c35e=Object['getOwnPropertySymbols'](_0x548882);_0x5266c9&&(_0x35c35e=_0x35c35e[_0x5f4c3b('0x562')](function(_0x22cdcd){var _0xc15be9=_0x5f4c3b;return Object['getOwnPropertyDescriptor'](_0x548882,_0x22cdcd)[_0xc15be9('0x3bf')];})),_0x4eabf5[_0x5f4c3b('0x91b')]['apply'](_0x4eabf5,_0x35c35e);}return _0x4eabf5;}function _0x4f9734(_0x3052b0,_0x1a9de3,_0x172064){return _0x1a9de3 in _0x3052b0?Object['defineProperty'](_0x3052b0,_0x1a9de3,{'value':_0x172064,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):_0x3052b0[_0x1a9de3]=_0x172064,_0x3052b0;}function _0x38e2dc(_0x2c1e69,_0x43df8f){var _0x449126=_0x491936;for(var _0x45a4cd=0x0;_0x45a4cd<_0x43df8f['length'];_0x45a4cd++){var _0x5f4a85=_0x43df8f[_0x45a4cd];_0x5f4a85[_0x449126('0x3bf')]=_0x5f4a85['enumerable']||!0x1,_0x5f4a85[_0x449126('0x749')]=!0x0,'value'in _0x5f4a85&&(_0x5f4a85[_0x449126('0x820')]=!0x0),Object[_0x449126('0x9a5')](_0x2c1e69,_0x5f4a85[_0x449126('0x86f')],_0x5f4a85);}}function _0x279f93(_0x34ab44,_0x1757f5){var _0x4748aa=_0x491936;return!_0x1757f5||_0x4748aa('0xb3f')!==_0x5bb846(_0x1757f5)&&_0x4748aa('0x106c')!=typeof _0x1757f5?function(_0x1888af){if(void 0x0===_0x1888af)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x1888af;}(_0x34ab44):_0x1757f5;}function _0x1d7706(){var _0x41972b=_0x491936;if(_0x41972b('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x41972b('0x353')]['sham'])return!0x1;if(_0x41972b('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x41972b('0xb6d')][_0x41972b('0xfd2')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x16c911){return!0x1;}}function _0x529006(_0xe98412){var _0x388154=_0x491936;return(_0x529006=Object[_0x388154('0x3df')]?Object[_0x388154('0x2d9')]:function(_0x2e3c48){var _0x5d452b=_0x388154;return _0x2e3c48[_0x5d452b('0x112c')]||Object['getPrototypeOf'](_0x2e3c48);})(_0xe98412);}function _0x223ec2(_0x24fe1f,_0x231525){var _0x474325=_0x491936;return(_0x223ec2=Object[_0x474325('0x3df')]||function(_0x4e702f,_0x510cfd){return _0x4e702f['__proto__']=_0x510cfd,_0x4e702f;})(_0x24fe1f,_0x231525);}_0x7a4501['Select'][_0x491936('0xd9f')];var _0x544c42=function(_0x5b6118){var _0x40047d=_0x491936;!function(_0x346c1c,_0x1896ba){var _0x4df1e4=_0x5376;if(_0x4df1e4('0x106c')!=typeof _0x1896ba&&null!==_0x1896ba)throw new TypeError(_0x4df1e4('0x5a0'));_0x346c1c[_0x4df1e4('0xe02')]=Object[_0x4df1e4('0xbd0')](_0x1896ba&&_0x1896ba[_0x4df1e4('0xe02')],{'constructor':{'value':_0x346c1c,'writable':!0x0,'configurable':!0x0}}),_0x1896ba&&_0x223ec2(_0x346c1c,_0x1896ba);}(_0x543797,_0x5b6118);var _0x537f3d,_0x2f0fc5,_0x1a2cc5,_0x15a801,_0x4a1489=(_0x537f3d=_0x543797,function(){var _0x46a48b=_0x5376,_0xdbaafa,_0x5cbf0f=_0x529006(_0x537f3d);if(_0x1d7706()){var _0x41dacb=_0x529006(this)[_0x46a48b('0xad1')];_0xdbaafa=Reflect[_0x46a48b('0x353')](_0x5cbf0f,arguments,_0x41dacb);}else _0xdbaafa=_0x5cbf0f[_0x46a48b('0x2be')](this,arguments);return _0x279f93(this,_0xdbaafa);});function _0x543797(_0x1cbf36){var _0x43cd93=_0x5376,_0x5556c6;return function(_0x4d7d9c,_0x4e1155){var _0x4e35ea=_0x5376;if(!(_0x4d7d9c instanceof _0x4e1155))throw new TypeError(_0x4e35ea('0xf98'));}(this,_0x543797),(_0x5556c6=_0x4a1489[_0x43cd93('0xfd2')](this,_0x1cbf36))[_0x43cd93('0x55d')]={},_0x5556c6[_0x43cd93('0x3f9')]=_0x1cbf36[_0x43cd93('0x3f9')],_0x5556c6[_0x43cd93('0x10d5')]=_0x4b93cd[_0x43cd93('0xf5f')][_0x43cd93('0xbdc')](),_0x5556c6;}return _0x2f0fc5=_0x543797,(_0x1a2cc5=[{'key':_0x40047d('0xb9b'),'value':function(){var _0x5ed176=_0x40047d,_0x574d82=this,_0x48e0e5=this['props'],_0x4057ae=_0x48e0e5[_0x5ed176('0xbaf')],_0x5eed95=_0x48e0e5[_0x5ed176('0xfb2')],_0x2bb6cc=this[_0x5ed176('0x1136')]['value'];_0x2bb6cc=(_0x2bb6cc=this['parseValue'](_0x2bb6cc))[_0x5ed176('0xd8e')](function(_0x22d7de){return function(_0x47f564){var _0x234786=_0x5376;for(var _0x361583=0x1;_0x361583=_0x1980c6&&(_0x1980c6=parseInt(_0x138372,0xa)+0x1);}return _0x1980c6;}}])&&_0x38e2dc(_0x2f0fc5[_0x40047d('0xe02')],_0x1a2cc5),_0x15a801&&_0x38e2dc(_0x2f0fc5,_0x15a801),_0x543797;}(_0x4b93cd[_0x491936('0xf5f')][_0x491936('0x42')]);_0x49c5f5[_0x491936('0xf5f')]=_0x544c42;},{'./IceFormModal':0x47,'antd':'antd','react':_0x548f48('0xb11'),'react-dom':'react-dom'}],0x46:[function(_0x200fc3,_0x3a8e24,_0x3f6fcf){var _0xdb6bc9=_0x548f48;'use strict';Object[_0xdb6bc9('0x9a5')](_0x3f6fcf,'__esModule',{'value':!0x0}),_0x3f6fcf[_0xdb6bc9('0xf5f')]=void 0x0;var _0x1d7367=_0x5c27cd(_0x200fc3(_0xdb6bc9('0xb11'))),_0x1c89ba=_0x200fc3(_0xdb6bc9('0x10d2')),_0x164912=_0x5c27cd(_0x200fc3('moment')),_0x448e9b=_0x5c27cd(_0x200fc3(_0xdb6bc9('0x8ee'))),_0x2c7b93=_0x5c27cd(_0x200fc3(_0xdb6bc9('0x602'))),_0x46d229=_0x5c27cd(_0x200fc3(_0xdb6bc9('0xa73'))),_0x351065=_0x5c27cd(_0x200fc3('./IceLabel')),_0x30b83a=_0x5c27cd(_0x200fc3(_0xdb6bc9('0xc29'))),_0x491cfd=_0x5c27cd(_0x200fc3(_0xdb6bc9('0xbeb')));function _0x5c27cd(_0x3bc37c){var _0x1d43cb=_0xdb6bc9;return _0x3bc37c&&_0x3bc37c[_0x1d43cb('0xce5')]?_0x3bc37c:{'default':_0x3bc37c};}function _0x2b1f80(_0x55d2ca){var _0x3a0268=_0xdb6bc9;return(_0x2b1f80=_0x3a0268('0x106c')==typeof Symbol&&_0x3a0268('0x43c')==typeof Symbol[_0x3a0268('0x57b')]?function(_0xaf7448){return typeof _0xaf7448;}:function(_0x2ab1bf){var _0x1068ec=_0x3a0268;return _0x2ab1bf&&_0x1068ec('0x106c')==typeof Symbol&&_0x2ab1bf[_0x1068ec('0xad1')]===Symbol&&_0x2ab1bf!==Symbol[_0x1068ec('0xe02')]?_0x1068ec('0x43c'):typeof _0x2ab1bf;})(_0x55d2ca);}function _0x242d83(_0x57e6ca,_0x39232e){return function(_0x3e87b4){var _0x52dbdc=_0x5376;if(Array[_0x52dbdc('0xb66')](_0x3e87b4))return _0x3e87b4;}(_0x57e6ca)||function(_0x1b29ec,_0x59bfe9){var _0x23f492=_0x5376;if(_0x23f492('0x449')==typeof Symbol||!(Symbol[_0x23f492('0x57b')]in Object(_0x1b29ec)))return;var _0x37a3c8=[],_0x4222fa=!0x0,_0x22e31c=!0x1,_0x34da9f=void 0x0;try{for(var _0x42ada6,_0x10d388=_0x1b29ec[Symbol['iterator']]();!(_0x4222fa=(_0x42ada6=_0x10d388[_0x23f492('0x165')]())[_0x23f492('0x1126')])&&(_0x37a3c8[_0x23f492('0x91b')](_0x42ada6[_0x23f492('0x30')]),!_0x59bfe9||_0x37a3c8[_0x23f492('0x13')]!==_0x59bfe9);_0x4222fa=!0x0);}catch(_0x2f50de){_0x22e31c=!0x0,_0x34da9f=_0x2f50de;}finally{try{_0x4222fa||null==_0x10d388['return']||_0x10d388['return']();}finally{if(_0x22e31c)throw _0x34da9f;}}return _0x37a3c8;}(_0x57e6ca,_0x39232e)||function(_0x182904,_0x5449c5){var _0xd1c436=_0x5376;if(!_0x182904)return;if(_0xd1c436('0x2fd')==typeof _0x182904)return _0x50c0c6(_0x182904,_0x5449c5);var _0x17972f=Object['prototype'][_0xd1c436('0xb6d')]['call'](_0x182904)[_0xd1c436('0xdf1')](0x8,-0x1);_0xd1c436('0xe25')===_0x17972f&&_0x182904[_0xd1c436('0xad1')]&&(_0x17972f=_0x182904[_0xd1c436('0xad1')][_0xd1c436('0x3ea')]);if(_0xd1c436('0xc2d')===_0x17972f||_0xd1c436('0xdb3')===_0x17972f)return Array[_0xd1c436('0x1161')](_0x17972f);if(_0xd1c436('0x729')===_0x17972f||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0xd1c436('0x2c3')](_0x17972f))return _0x50c0c6(_0x182904,_0x5449c5);}(_0x57e6ca,_0x39232e)||function(){var _0x2d6b0f=_0x5376;throw new TypeError(_0x2d6b0f('0x846'));}();}function _0x50c0c6(_0x4ee108,_0x279b47){var _0x235299=_0xdb6bc9;(null==_0x279b47||_0x279b47>_0x4ee108['length'])&&(_0x279b47=_0x4ee108[_0x235299('0x13')]);for(var _0x54bcbd=0x0,_0x383242=new Array(_0x279b47);_0x54bcbd<_0x279b47;_0x54bcbd++)_0x383242[_0x54bcbd]=_0x4ee108[_0x54bcbd];return _0x383242;}function _0x1374d6(_0x4fe423,_0x4e0c0d){var _0x25aa56=_0xdb6bc9;for(var _0x1d8521=0x0;_0x1d8521<_0x4e0c0d[_0x25aa56('0x13')];_0x1d8521++){var _0x178f7a=_0x4e0c0d[_0x1d8521];_0x178f7a['enumerable']=_0x178f7a[_0x25aa56('0x3bf')]||!0x1,_0x178f7a[_0x25aa56('0x749')]=!0x0,_0x25aa56('0x30')in _0x178f7a&&(_0x178f7a[_0x25aa56('0x820')]=!0x0),Object[_0x25aa56('0x9a5')](_0x4fe423,_0x178f7a['key'],_0x178f7a);}}function _0x39bd7b(_0x34839f,_0x179106){var _0x1b196e=_0xdb6bc9;return!_0x179106||_0x1b196e('0xb3f')!==_0x2b1f80(_0x179106)&&_0x1b196e('0x106c')!=typeof _0x179106?function(_0x1a26fa){if(void 0x0===_0x1a26fa)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x1a26fa;}(_0x34839f):_0x179106;}function _0x124db4(){var _0x5f141b=_0xdb6bc9;if('undefined'==typeof Reflect||!Reflect[_0x5f141b('0x353')])return!0x1;if(Reflect[_0x5f141b('0x353')]['sham'])return!0x1;if(_0x5f141b('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x5f141b('0xe02')][_0x5f141b('0xb6d')]['call'](Reflect[_0x5f141b('0x353')](Date,[],function(){})),!0x0;}catch(_0xec94c1){return!0x1;}}function _0x9f4fa0(_0x384640){var _0x2844aa=_0xdb6bc9;return(_0x9f4fa0=Object[_0x2844aa('0x3df')]?Object['getPrototypeOf']:function(_0x2e5edb){var _0x1f673c=_0x2844aa;return _0x2e5edb[_0x1f673c('0x112c')]||Object[_0x1f673c('0x2d9')](_0x2e5edb);})(_0x384640);}function _0x4117de(_0xc285af,_0x3eba2d){var _0x488fe1=_0xdb6bc9;return(_0x4117de=Object[_0x488fe1('0x3df')]||function(_0x5cfdb8,_0x15fef3){var _0x97863=_0x488fe1;return _0x5cfdb8[_0x97863('0x112c')]=_0x15fef3,_0x5cfdb8;})(_0xc285af,_0x3eba2d);}var _0x404e85={'float':function(_0xa35a59){var _0x6c3aa0=_0xdb6bc9;return!(null==_0xa35a59||!_0xa35a59[_0x6c3aa0('0x7d5')](/^[-+]?[0-9]+(\.[0-9]+)?$/));},'number':function(_0x4dab77){return!(null==_0x4dab77||!_0x4dab77['match'](/^[0-9]+$/));},'numberOrEmpty':function(_0x5075a7){var _0x5a8452=_0xdb6bc9;if(''===_0x5075a7)return!0x0;return!(null==_0x5075a7||!_0x5075a7[_0x5a8452('0x7d5')](/^[0-9]+$/));},'email':function(_0x132eac){return null!=_0x132eac&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/['test'](_0x132eac);},'emailOrEmpty':function(_0x7d0455){var _0x2c5a56=_0xdb6bc9;if(''===_0x7d0455)return!0x0;return null!=_0x7d0455&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/[_0x2c5a56('0x2c3')](_0x7d0455);},'username':function(_0x20e772){var _0x267431=_0xdb6bc9;return null!=_0x20e772&&/^[a-zA-Z0-9.-]+$/[_0x267431('0x2c3')](_0x20e772);}},_0x5a3498=function(_0x5722f5){var _0x2dd1f6=_0xdb6bc9;!function(_0x3de11b,_0x497544){var _0x1caeac=_0x5376;if(_0x1caeac('0x106c')!=typeof _0x497544&&null!==_0x497544)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x3de11b[_0x1caeac('0xe02')]=Object[_0x1caeac('0xbd0')](_0x497544&&_0x497544['prototype'],{'constructor':{'value':_0x3de11b,'writable':!0x0,'configurable':!0x0}}),_0x497544&&_0x4117de(_0x3de11b,_0x497544);}(_0x5f0deb,_0x5722f5);var _0x5db3ae,_0x7b38f5,_0x315619,_0x48d81a,_0x174dc8=(_0x5db3ae=_0x5f0deb,function(){var _0x6b83a2=_0x5376,_0x528373,_0x4266ab=_0x9f4fa0(_0x5db3ae);if(_0x124db4()){var _0x39e956=_0x9f4fa0(this)[_0x6b83a2('0xad1')];_0x528373=Reflect[_0x6b83a2('0x353')](_0x4266ab,arguments,_0x39e956);}else _0x528373=_0x4266ab[_0x6b83a2('0x2be')](this,arguments);return _0x39bd7b(this,_0x528373);});function _0x5f0deb(_0x445a16){var _0x591287=_0x5376,_0x5b9bfc;return function(_0x256948,_0x5357ac){if(!(_0x256948 instanceof _0x5357ac))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0x5f0deb),(_0x5b9bfc=_0x174dc8['call'](this,_0x445a16))['validationRules']={},_0x5b9bfc[_0x591287('0x55d')]={'validations':{},'errorMsg':!0x1},_0x5b9bfc[_0x591287('0x10d5')]=_0x1d7367[_0x591287('0xf5f')][_0x591287('0xbdc')](),_0x5b9bfc;}return _0x7b38f5=_0x5f0deb,(_0x315619=[{'key':'showError','value':function(_0xb74899){this['setState']({'errorMsg':_0xb74899});}},{'key':'hideError','value':function(){this['setState']({'errorMsg':!0x1});}},{'key':_0x2dd1f6('0x978'),'value':function(){var _0x3413dc=_0x2dd1f6;return null!=this[_0x3413dc('0x10d5')][_0x3413dc('0xda7')];}},{'key':_0x2dd1f6('0xa9e'),'value':function(){var _0x487cc1=_0x2dd1f6;return this[_0x487cc1('0x10d5')][_0x487cc1('0xda7')][_0x487cc1('0xa9e')]();}},{'key':_0x2dd1f6('0xb9b'),'value':function(){var _0x1757df=_0x2dd1f6;for(var _0x53030d=this[_0x1757df('0x1136')],_0x10c30d=_0x53030d[_0x1757df('0x535')],_0x62037c=_0x53030d['twoColumnLayout'],_0x50d8a3=_0x53030d[_0x1757df('0xfb2')],_0x35ff6f=[],_0x2ce4b1=[],_0x580efa=[],_0x19c2b9=_0x62037c?0x2:0x1,_0x414f1b=0x0;_0x414f1b<_0x10c30d[_0x1757df('0x13')];_0x414f1b++)_0x35ff6f[_0x1757df('0x91b')](_0x50d8a3[_0x1757df('0x263')](_0x10c30d[_0x414f1b][0x0],this[_0x1757df('0x963')](_0x10c30d[_0x414f1b],this[_0x1757df('0x1136')][_0x1757df('0x53e')]),_0x10c30d[_0x414f1b][0x1]));_0x35ff6f=_0x35ff6f['filter'](function(_0x36330f){return!!_0x36330f;});for(var _0x191946=0x0;_0x191946<_0x35ff6f[_0x1757df('0x13')];_0x191946++)null!=_0x35ff6f[_0x191946]&&(0x1===_0x19c2b9||_0x191946%0x2==0x0?_0x2ce4b1['push'](_0x35ff6f[_0x191946]):_0x580efa[_0x1757df('0x91b')](_0x35ff6f[_0x191946]));return _0x1d7367[_0x1757df('0xf5f')]['createElement'](_0x1c89ba['Form'],{'ref':this[_0x1757df('0x10d5')],'labelCol':{'span':0x6},'wrapperCol':{'span':0x10},'layout':this[_0x1757df('0x1136')][_0x1757df('0xe19')]||_0x1757df('0x9f2'),'initialValues':{'size':_0x1757df('0x75a')},'onValuesChange':function(){},'size':_0x1757df('0x75a')},this[_0x1757df('0x55d')][_0x1757df('0xb32')]&&_0x1d7367[_0x1757df('0xf5f')][_0x1757df('0xfa9')](_0x1d7367[_0x1757df('0xf5f')][_0x1757df('0x18f')],null,_0x1d7367[_0x1757df('0xf5f')][_0x1757df('0xfa9')](_0x1c89ba[_0x1757df('0x75c')],{'message':this['state'][_0x1757df('0xb32')],'type':_0x1757df('0x5bf'),'showIcon':!0x0}),_0x1d7367['default']['createElement']('br',null)),0x1===_0x19c2b9&&_0x2ce4b1,0x2===_0x19c2b9&&_0x1d7367[_0x1757df('0xf5f')][_0x1757df('0xfa9')](_0x1c89ba[_0x1757df('0x79b')],{'gutter':0x10},_0x1d7367[_0x1757df('0xf5f')]['createElement'](_0x1c89ba[_0x1757df('0xd19')],{'className':_0x1757df('0x7e8'),'span':0xc},_0x2ce4b1),_0x1d7367['default'][_0x1757df('0xfa9')](_0x1c89ba[_0x1757df('0xd19')],{'className':_0x1757df('0x7e8'),'span':0xc},_0x580efa)));}},{'key':'isValid','value':function(){var _0x2f3479=_0x2dd1f6,_0xc5e713=this;return Object[_0x2f3479('0x110e')](this[_0x2f3479('0x9a0')])['reduce'](function(_0x398b5f,_0x7e6d65){var _0x59a753=_0x2f3479;return _0x398b5f&&('success'===_0xc5e713[_0x59a753('0x55d')][_0x7e6d65]||null==_0xc5e713[_0x59a753('0x55d')][_0x7e6d65]);},!0x0);}},{'key':_0x2dd1f6('0x108b'),'value':function(_0xa0ec03){var _0x179e2d=_0x2dd1f6,_0x325824=this['validationRules'][_0xa0ec03[_0x179e2d('0x1d7')]['id']],_0x1ee978=this[_0x179e2d('0x55d')][_0x179e2d('0xf7')];_0x325824&&(_0x325824[_0x179e2d('0xd0a')](_0xa0ec03['target'][_0x179e2d('0x30')])?(this[_0x179e2d('0x55d')][_0xa0ec03['target']['id']]='success',this[_0x179e2d('0x55d')][''['concat'](_0xa0ec03[_0x179e2d('0x1d7')]['id'],_0x179e2d('0xc51'))]=null):(this['state'][_0xa0ec03['target']['id']]=_0x179e2d('0x5bf'),this['state'][''[_0x179e2d('0xda9')](_0xa0ec03[_0x179e2d('0x1d7')]['id'],_0x179e2d('0xc51'))]=_0x325824['message'])),this['setState']({'validations':_0x1ee978});}},{'key':_0x2dd1f6('0x963'),'value':function(_0x75b4d8){var _0x575e3b=_0x2dd1f6,_0xc6538c=arguments[_0x575e3b('0x13')]>0x1&&void 0x0!==arguments[0x1]&&arguments[0x1],_0x2abd39=0x0,_0x1cdb0d=[],_0x653b9e={'required':!0x0},_0x4c24c4=_0x242d83(_0x75b4d8,0x2),_0x4adf80=_0x4c24c4[0x0],_0x578b28=_0x4c24c4[0x1],_0x49c31f=this[_0x575e3b('0x1136')],_0x592f45=_0x49c31f[_0x575e3b('0xfb2')],_0x3dfdc5=_0x49c31f[_0x575e3b('0xe19')],_0x35b57c=null;_0x578b28[_0x575e3b('0xf3c')]=_0x592f45['gt'](_0x578b28['label']);var _0x5b640e='vertical'===_0x3dfdc5?{'span':0x18}:{'span':0x6},_0x14360e=[_0x575e3b('0x4ce'),'select2',_0x575e3b('0xa2d')];if(_0x14360e[_0x575e3b('0xf00')](_0x578b28[_0x575e3b('0x921')])>=0x0&&!0x0===_0x578b28['allow-null']||_0x575e3b('0xea1')===_0x578b28[_0x575e3b('0x2c4')]||_0x575e3b('0xa8')===_0x578b28[_0x575e3b('0x2c4')]||_0x575e3b('0xb61')===_0x578b28[_0x575e3b('0x2c4')]?_0x653b9e[_0x575e3b('0xf2b')]=!0x1:(_0x653b9e[_0x575e3b('0xf2b')]=!0x0,_0x653b9e[_0x575e3b('0x773')]=this['generateFieldMessage'](_0x578b28[_0x575e3b('0xf3c')])),_0x1cdb0d[_0x575e3b('0x91b')](_0x653b9e),_0x575e3b('0x10f4')===_0x578b28[_0x575e3b('0x921')])return _0x653b9e[_0x575e3b('0xf2b')]=!0x1,_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')][_0x575e3b('0x5ac')],{'labelCol':_0x5b640e,'style':{'display':'none'},'label':_0x578b28[_0x575e3b('0xf3c')],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0x5e')],null));if(_0x575e3b('0x5b2')===_0x578b28[_0x575e3b('0x921')])return _0x578b28['validation']&&(_0x578b28[_0x575e3b('0x2c4')]=_0x578b28['validation'][_0x575e3b('0xd06')](_0x575e3b('0xc73'),''),(_0x35b57c=this[_0x575e3b('0x8d0')](_0x578b28))&&(this[_0x575e3b('0x9a0')][_0x4adf80]={'rule':_0x35b57c,'message':'Invalid\x20value\x20for\x20'[_0x575e3b('0xda9')](_0x578b28[_0x575e3b('0xf3c')])})),null!=_0x35b57c?_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')][_0x575e3b('0x5ac')],{'labelCol':_0x5b640e,'label':_0x578b28[_0x575e3b('0xf3c')],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d,'validateStatus':this[_0x575e3b('0x55d')][_0x4adf80],'help':this['state'][''[_0x575e3b('0xda9')](_0x4adf80,_0x575e3b('0xc51'))]},_0xc6538c?_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x351065[_0x575e3b('0xf5f')],null):_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba['Input'],{'onChange':this[_0x575e3b('0x108b')][_0x575e3b('0x91e')](this)})):_0x1d7367['default'][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')]['Item'],{'labelCol':_0x5b640e,'label':_0x578b28[_0x575e3b('0xf3c')],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0xc6538c?_0x1d7367['default'][_0x575e3b('0xfa9')](_0x351065[_0x575e3b('0xf5f')],null):_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0x5e')],null));if(_0x575e3b('0x7ea')===_0x578b28[_0x575e3b('0x921')])return _0x578b28[_0x575e3b('0x41a')]||(_0x578b28[_0x575e3b('0x41a')]=0x4),_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')]['Item'],{'labelCol':_0x5b640e,'label':_0x578b28[_0x575e3b('0xf3c')],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0xc6538c?_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x351065[_0x575e3b('0xf5f')],null):_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0x5e')][_0x575e3b('0x441')],{'rows':_0x578b28[_0x575e3b('0x41a')]}));if(_0x575e3b('0x2a5')===_0x578b28[_0x575e3b('0x921')])return _0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')][_0x575e3b('0x5ac')],{'labelCol':_0x5b640e,'label':_0x578b28['label'],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0x1d7367[_0x575e3b('0xf5f')]['createElement'](_0x1c89ba['DatePicker'],{'disabled':_0xc6538c}));if(_0x575e3b('0x3aa')===_0x578b28[_0x575e3b('0x921')])return _0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')][_0x575e3b('0x5ac')],{'labelCol':_0x5b640e,'label':_0x578b28[_0x575e3b('0xf3c')],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0x1d7367['default']['createElement'](_0x1c89ba['DatePicker'],{'format':_0x575e3b('0x494'),'disabled':_0xc6538c}));if(_0x575e3b('0x23c')===_0x578b28[_0x575e3b('0x921')])return _0x1d7367['default']['createElement'](_0x1c89ba[_0x575e3b('0xe32')]['Item'],{'labelCol':_0x5b640e,'label':_0x578b28['label'],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0x370')],{'format':_0x575e3b('0x1bc'),'disabled':_0xc6538c}));if(_0x575e3b('0x881')===_0x578b28[_0x575e3b('0x921')]){var _0x21c2bb=_0x592f45[_0x575e3b('0x7e6')]();return _0x2abd39=null!=_0x21c2bb?_0x21c2bb['id']:-0x1*_0x592f45[_0x575e3b('0xa62')]()['id'],null==_0x578b28[_0x575e3b('0x761')]&&(_0x578b28[_0x575e3b('0x761')]='.doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/*,.pdf'),_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')][_0x575e3b('0x5ac')],{'labelCol':_0x5b640e,'name':_0x4adf80,'key':_0x4adf80,'label':_0x578b28[_0x575e3b('0xf3c')]},_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x448e9b[_0x575e3b('0xf5f')],{'user':_0x2abd39,'fileGroup':_0x592f45[_0x575e3b('0xe3e')],'fileName':_0x4adf80,'adapter':_0x592f45,'accept':_0x578b28[_0x575e3b('0x761')],'readOnly':_0xc6538c}));}return _0x575e3b('0xc5b')===_0x578b28['type']?_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba['Form'][_0x575e3b('0x5ac')],{'labelCol':_0x5b640e,'name':_0x4adf80,'key':_0x4adf80,'label':_0x578b28[_0x575e3b('0xf3c')]},_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x2c7b93['default'],{'adapter':_0x592f45,'field':_0x75b4d8,'title':_0x578b28[_0x575e3b('0xf3c')],'readOnly':_0xc6538c})):_0x575e3b('0x15')===_0x578b28['type']||_0x575e3b('0x4ce')===_0x578b28[_0x575e3b('0x921')]||_0x575e3b('0xa2d')===_0x578b28[_0x575e3b('0x921')]?_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')]['Item'],{'labelCol':_0x5b640e,'label':_0x578b28[_0x575e3b('0xf3c')],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x46d229[_0x575e3b('0xf5f')],{'adapter':_0x592f45,'field':_0x75b4d8,'readOnly':_0xc6538c})):_0x575e3b('0x869')===_0x578b28[_0x575e3b('0x921')]?_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')]['Item'],{'labelCol':_0x5b640e,'name':_0x4adf80,'key':_0x4adf80,'label':_0x578b28[_0x575e3b('0xf3c')]},_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x30b83a[_0x575e3b('0xf5f')],{'adapter':_0x592f45,'field':_0x75b4d8,'title':_0x578b28['label'],'readOnly':_0xc6538c})):_0x575e3b('0x6c4')===_0x578b28['type']?_0x1d7367['default'][_0x575e3b('0xfa9')](_0x1c89ba[_0x575e3b('0xe32')][_0x575e3b('0x5ac')],{'labelCol':_0x5b640e,'label':_0x578b28['label'],'key':_0x4adf80,'name':_0x4adf80,'rules':_0x1cdb0d},_0x1d7367[_0x575e3b('0xf5f')][_0x575e3b('0xfa9')](_0x491cfd[_0x575e3b('0xf5f')],{'readOnly':_0xc6538c})):null;}},{'key':_0x2dd1f6('0xc6b'),'value':function(_0x9da2cb){var _0x2c48a4=_0x2dd1f6;return''['concat'](_0x9da2cb,':\x20')[_0x2c48a4('0xda9')](this[_0x2c48a4('0x1136')]['adapter']['gt'](_0x2c48a4('0xfed')));}},{'key':_0x2dd1f6('0x8d0'),'value':function(_0x28fb8a){var _0x3a0939=_0x2dd1f6;return null==_0x404e85[_0x28fb8a['validation']]?null:_0x404e85[_0x28fb8a[_0x3a0939('0x2c4')]];}},{'key':_0x2dd1f6('0xcbb'),'value':function(_0x149fd3,_0x534f6e){var _0x271b17=_0x2dd1f6;for(var _0xf3a397=0x0;_0xf3a397<_0x534f6e[_0x271b17('0x13')];_0xf3a397++){var _0x2abeaf=_0x242d83(_0x534f6e[_0xf3a397],0x2),_0x31f719=_0x2abeaf[0x0],_0x32ef23=_0x2abeaf[0x1];_0x271b17('0x2a5')===_0x32ef23[_0x271b17('0x921')]?_0x149fd3[_0x31f719]=_0x149fd3[_0x31f719]?(0x0,_0x164912[_0x271b17('0xf5f')])(_0x149fd3[_0x31f719],_0x271b17('0xcf1')):null:_0x271b17('0x3aa')===_0x32ef23[_0x271b17('0x921')]?_0x149fd3[_0x31f719]=_0x149fd3[_0x31f719]?(0x0,_0x164912['default'])(_0x149fd3[_0x31f719],_0x271b17('0x494')):null:_0x271b17('0x23c')===_0x32ef23[_0x271b17('0x921')]&&(_0x149fd3[_0x31f719]=_0x149fd3[_0x31f719]?(0x0,_0x164912[_0x271b17('0xf5f')])(_0x149fd3[_0x31f719],_0x271b17('0x1bc')):null);}return _0x149fd3;}},{'key':'formFieldsToData','value':function(_0x23780f,_0x2e2459){var _0x3c67eb=_0x2dd1f6;for(var _0x58be34=0x0;_0x58be34<_0x2e2459[_0x3c67eb('0x13')];_0x58be34++){var _0x24fa84=_0x242d83(_0x2e2459[_0x58be34],0x2),_0x35408e=_0x24fa84[0x0],_0x549fbd=_0x24fa84[0x1];'date'===_0x549fbd[_0x3c67eb('0x921')]?_0x23780f[_0x35408e]=_0x23780f[_0x35408e]?_0x23780f[_0x35408e]['format'](_0x3c67eb('0xcf1')):'NULL':_0x3c67eb('0x3aa')===_0x549fbd[_0x3c67eb('0x921')]?_0x23780f[_0x35408e]=_0x23780f[_0x35408e]?_0x23780f[_0x35408e]['format'](_0x3c67eb('0x494')):_0x3c67eb('0x855'):'time'===_0x549fbd['type']?_0x23780f[_0x35408e]=_0x23780f[_0x35408e]?_0x23780f[_0x35408e]['format'](_0x3c67eb('0x1bc')):_0x3c67eb('0x855'):_0x3c67eb('0x4ce')!==_0x549fbd[_0x3c67eb('0x921')]&&_0x3c67eb('0x15')!==_0x549fbd[_0x3c67eb('0x921')]||null!=_0x23780f[_0x35408e]||(_0x23780f[_0x35408e]=_0x3c67eb('0x855'));}return _0x23780f;}},{'key':_0x2dd1f6('0x772'),'value':function(_0xf1e768){var _0xe3f4f7=_0x2dd1f6,_0x37a443=this[_0xe3f4f7('0x1136')]['fields'];if(_0xf1e768=this[_0xe3f4f7('0xcbb')](_0xf1e768,_0x37a443),this['formReference']['current'][_0xe3f4f7('0xeea')](),null!=_0xf1e768)try{this[_0xe3f4f7('0x10d5')]['current'][_0xe3f4f7('0xce6')](_0xf1e768);}catch(_0x5c70e7){console['log'](_0x5c70e7);}}},{'key':_0x2dd1f6('0xeea'),'value':function(){var _0x3e53da=_0x2dd1f6;this[_0x3e53da('0x10d5')]['current'][_0x3e53da('0xeea')]();}},{'key':_0x2dd1f6('0xce6'),'value':function(_0x522c8d){var _0x382b8b=_0x2dd1f6;this[_0x382b8b('0x10d5')][_0x382b8b('0xda7')][_0x382b8b('0xce6')](_0x522c8d);}},{'key':_0x2dd1f6('0xb6'),'value':function(_0xc247c,_0x2aa5ab){var _0xbf9df0=_0x2dd1f6,_0x10f9a1=this,_0x29fe38=this['props'],_0x3a1bbe=_0x29fe38[_0xbf9df0('0xfb2')],_0x1a9d3d=_0x29fe38[_0xbf9df0('0x535')],_0x17e41b=_0xc247c;_0x17e41b=_0x3a1bbe[_0xbf9df0('0xcea')](_0x17e41b);var _0x48d0cb=_0x3a1bbe['doCustomValidation'](_0x17e41b);if(null===_0x48d0cb){_0x3a1bbe[_0xbf9df0('0x768')]&&(_0x17e41b[_0xbf9df0('0x9e5')]=$('#'['concat'](_0x3a1bbe[_0xbf9df0('0x3ed')](),_0xbf9df0('0xe32')))[_0xbf9df0('0x1016')](_0xbf9df0('0x9e5')));var _0x38226a=null!=_0x3a1bbe[_0xbf9df0('0x31')]?_0x3a1bbe[_0xbf9df0('0x31')]['id']:null;null!=_0x38226a&&''!==_0x38226a&&(_0x17e41b['id']=_0x38226a),_0x17e41b=this[_0xbf9df0('0xd51')](_0x17e41b,_0x1a9d3d),_0x3a1bbe[_0xbf9df0('0x949')](_0x17e41b,[],function(){return _0x3a1bbe['get']([]);},function(){var _0x59e844=_0xbf9df0;_0x10f9a1[_0x59e844('0x10d5')][_0x59e844('0xda7')]['resetFields'](),_0x10f9a1[_0x59e844('0x36b')](!0x1),_0x2aa5ab();});}else this[_0xbf9df0('0x36b')](_0x48d0cb);}}])&&_0x1374d6(_0x7b38f5['prototype'],_0x315619),_0x48d81a&&_0x1374d6(_0x7b38f5,_0x48d81a),_0x5f0deb;}(_0x1d7367[_0xdb6bc9('0xf5f')][_0xdb6bc9('0x42')]);_0x3f6fcf[_0xdb6bc9('0xf5f')]=_0x5a3498;},{'./IceColorPick':0x44,'./IceDataGroup':0x45,'./IceLabel':0x48,'./IceSelect':0x49,'./IceSignature':0x4a,'./IceUpload':0x4e,'antd':_0x548f48('0x10d2'),'moment':'moment','react':'react'}],0x47:[function(_0x5b156c,_0x9324a,_0x4324df){var _0x3d7403=_0x548f48;'use strict';Object['defineProperty'](_0x4324df,_0x3d7403('0xce5'),{'value':!0x0}),_0x4324df['default']=void 0x0;var _0x371479=_0x509237(_0x5b156c('react')),_0x26d227=_0x5b156c(_0x3d7403('0x10d2')),_0x288a96=_0x509237(_0x5b156c(_0x3d7403('0x631')));function _0x509237(_0x2a8187){var _0x5daaf5=_0x3d7403;return _0x2a8187&&_0x2a8187[_0x5daaf5('0xce5')]?_0x2a8187:{'default':_0x2a8187};}function _0x29b08b(_0xb22b5b){var _0x11610c=_0x3d7403;return(_0x29b08b=_0x11610c('0x106c')==typeof Symbol&&_0x11610c('0x43c')==typeof Symbol[_0x11610c('0x57b')]?function(_0x1116c3){return typeof _0x1116c3;}:function(_0x459fd4){var _0x187068=_0x11610c;return _0x459fd4&&_0x187068('0x106c')==typeof Symbol&&_0x459fd4[_0x187068('0xad1')]===Symbol&&_0x459fd4!==Symbol[_0x187068('0xe02')]?_0x187068('0x43c'):typeof _0x459fd4;})(_0xb22b5b);}function _0x2a410c(){var _0x524685=_0x3d7403;return(_0x2a410c=Object[_0x524685('0x1060')]||function(_0x48b4b7){var _0x4463f7=_0x524685;for(var _0x28d248=0x1;_0x28d248\r\n]?)(\r\n|\n\r|\r|\n)/g,_0x31dbbb('0x8ec'));}}])&&_0x45aab6(_0x3fe042[_0xb3e965('0xe02')],_0x10f296),_0x277291&&_0x45aab6(_0x3fe042,_0x277291),_0x125457;}(_0x419f6b[_0x1496d4('0xf5f')][_0x1496d4('0x42')]);_0x210639['default']=_0x243925;},{'antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11')}],0x49:[function(_0x2a39fc,_0x1af29a,_0x4c75b0){var _0x280696=_0x548f48;'use strict';Object['defineProperty'](_0x4c75b0,_0x280696('0xce5'),{'value':!0x0}),_0x4c75b0[_0x280696('0xf5f')]=void 0x0;var _0x48ac7d,_0x1195a9=(_0x48ac7d=_0x2a39fc(_0x280696('0xb11')))&&_0x48ac7d[_0x280696('0xce5')]?_0x48ac7d:{'default':_0x48ac7d},_0x39d042=_0x2a39fc(_0x280696('0x10d2'));function _0x5a9f13(_0x1e5d56){var _0x314867=_0x280696;return(_0x5a9f13=_0x314867('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x314867('0x57b')]?function(_0x5f5a62){return typeof _0x5f5a62;}:function(_0x37d472){var _0xccfb7=_0x314867;return _0x37d472&&_0xccfb7('0x106c')==typeof Symbol&&_0x37d472[_0xccfb7('0xad1')]===Symbol&&_0x37d472!==Symbol['prototype']?'symbol':typeof _0x37d472;})(_0x1e5d56);}function _0x399411(_0x5b4e55,_0x32f151){var _0x527746=_0x280696;for(var _0x7632f1=0x0;_0x7632f1<_0x32f151[_0x527746('0x13')];_0x7632f1++){var _0x33db75=_0x32f151[_0x7632f1];_0x33db75[_0x527746('0x3bf')]=_0x33db75[_0x527746('0x3bf')]||!0x1,_0x33db75[_0x527746('0x749')]=!0x0,'value'in _0x33db75&&(_0x33db75['writable']=!0x0),Object[_0x527746('0x9a5')](_0x5b4e55,_0x33db75[_0x527746('0x86f')],_0x33db75);}}function _0x1df119(_0x369ea6,_0x44adcc){var _0x4d67a7=_0x280696;return!_0x44adcc||'object'!==_0x5a9f13(_0x44adcc)&&_0x4d67a7('0x106c')!=typeof _0x44adcc?function(_0x3561a4){if(void 0x0===_0x3561a4)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x3561a4;}(_0x369ea6):_0x44adcc;}function _0x1b8dbd(){var _0x16edb8=_0x280696;if(_0x16edb8('0x449')==typeof Reflect||!Reflect[_0x16edb8('0x353')])return!0x1;if(Reflect['construct']['sham'])return!0x1;if(_0x16edb8('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x16edb8('0xe02')]['toString']['call'](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0xbe0e0b){return!0x1;}}function _0x57d21f(_0x379fc7){var _0x2320cc=_0x280696;return(_0x57d21f=Object[_0x2320cc('0x3df')]?Object[_0x2320cc('0x2d9')]:function(_0x3d2ed9){var _0x5a709b=_0x2320cc;return _0x3d2ed9[_0x5a709b('0x112c')]||Object[_0x5a709b('0x2d9')](_0x3d2ed9);})(_0x379fc7);}function _0x181d5a(_0x4f0ff0,_0x416b33){var _0x1cb8cd=_0x280696;return(_0x181d5a=Object[_0x1cb8cd('0x3df')]||function(_0x339558,_0x76bbea){return _0x339558['__proto__']=_0x76bbea,_0x339558;})(_0x4f0ff0,_0x416b33);}var _0x1b9070=_0x39d042[_0x280696('0x6f')][_0x280696('0xd9f')],_0x144e37=function(_0x2b730e){var _0x311708=_0x280696;!function(_0x4851e4,_0x55abb1){var _0x1d0349=_0x5376;if(_0x1d0349('0x106c')!=typeof _0x55abb1&&null!==_0x55abb1)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x4851e4[_0x1d0349('0xe02')]=Object[_0x1d0349('0xbd0')](_0x55abb1&&_0x55abb1[_0x1d0349('0xe02')],{'constructor':{'value':_0x4851e4,'writable':!0x0,'configurable':!0x0}}),_0x55abb1&&_0x181d5a(_0x4851e4,_0x55abb1);}(_0xc2dbbe,_0x2b730e);var _0x3d69c5,_0x1f008c,_0x307c71,_0x536d8a,_0x322b2f=(_0x3d69c5=_0xc2dbbe,function(){var _0x1dfcfa=_0x5376,_0x4eb670,_0x3d46ba=_0x57d21f(_0x3d69c5);if(_0x1b8dbd()){var _0x791264=_0x57d21f(this)['constructor'];_0x4eb670=Reflect[_0x1dfcfa('0x353')](_0x3d46ba,arguments,_0x791264);}else _0x4eb670=_0x3d46ba[_0x1dfcfa('0x2be')](this,arguments);return _0x1df119(this,_0x4eb670);});function _0xc2dbbe(_0x262805){var _0x44b075=_0x5376,_0xffb14a;return function(_0x3e4109,_0x2fe714){var _0x53bb0c=_0x5376;if(!(_0x3e4109 instanceof _0x2fe714))throw new TypeError(_0x53bb0c('0xf98'));}(this,_0xc2dbbe),(_0xffb14a=_0x322b2f[_0x44b075('0xfd2')](this,_0x262805))['onChange']=_0x262805[_0x44b075('0x3f9')],_0xffb14a;}return _0x1f008c=_0xc2dbbe,(_0x307c71=[{'key':'render','value':function(){var _0x581de2=_0x5376,_0x35a332,_0x523804=this[_0x581de2('0x1136')],_0x534087=_0x523804[_0x581de2('0xbaf')],_0xd8cdb3=_0x523804[_0x581de2('0xfb2')],_0x2e3c9b=this[_0x581de2('0x1136')][_0x581de2('0x30')],_0x3edd02=_0x534087[0x1];if(null!=_0x3edd02[_0x581de2('0xb91')]){var _0x5b776a=''['concat'](_0x3edd02[_0x581de2('0xb91')][0x0],'_')[_0x581de2('0xda9')](_0x3edd02[_0x581de2('0xb91')][0x1],'_')[_0x581de2('0xda9')](_0x3edd02[_0x581de2('0xb91')][0x2]);0x4===_0x3edd02[_0x581de2('0xb91')][_0x581de2('0x13')]&&(_0x5b776a=''[_0x581de2('0xda9')](_0x5b776a,'_')[_0x581de2('0xda9')](_0x3edd02['remote-source'][0x3])),_0x35a332=_0xd8cdb3[_0x581de2('0x1076')][_0x5b776a];}else _0x35a332=_0x3edd02['source'];var _0xdaa687=this['getFormSelectOptionsRemote'](_0x35a332,_0x534087,_0xd8cdb3);if(_0x581de2('0xa2d')===_0x3edd02[_0x581de2('0x921')])try{null==(_0x2e3c9b=JSON[_0x581de2('0x104a')](_0x2e3c9b))&&(_0x2e3c9b=[]),_0x2e3c9b=_0x2e3c9b[_0x581de2('0xd8e')](function(_0x3c170a){var _0x18cf37=_0x581de2;return''[_0x18cf37('0xda9')](_0x3c170a);});}catch(_0x4566db){_0x2e3c9b=[];}return _0x1195a9[_0x581de2('0xf5f')][_0x581de2('0xfa9')](_0x39d042['Select'],{'mode':_0x581de2('0xa2d')===_0x3edd02[_0x581de2('0x921')]?_0x581de2('0xd0'):void 0x0,'showSearch':!0x0,'placeholder':'Select\x20'[_0x581de2('0xda9')](_0x3edd02['label']),'optionFilterProp':'children','filterOption':function(_0x4fbe70,_0x234c3b){var _0x418c5a=_0x581de2;return null!=_0x4fbe70&&_0x234c3b['label'][_0x418c5a('0x371')]()[_0x418c5a('0xf00')](_0x4fbe70[_0x418c5a('0x371')]())>=0x0;},'value':_0x2e3c9b,'options':_0xdaa687,'allowClear':!0x0,'onChange':this[_0x581de2('0x25e')]['bind'](this),'disabled':this[_0x581de2('0x1136')][_0x581de2('0x1134')]});}},{'key':_0x311708('0x25e'),'value':function(_0x5f5000){var _0x27611b=_0x311708;_0x27611b('0xa2d')===this[_0x27611b('0x1136')][_0x27611b('0xbaf')][0x1][_0x27611b('0x921')]?this[_0x27611b('0x3f9')](JSON[_0x27611b('0xf0b')](_0x5f5000)):this['onChange'](_0x5f5000);}},{'key':'makeOption','value':function(_0x37d4a5){var _0x382962=_0x311708;return _0x1195a9[_0x382962('0xf5f')]['createElement'](_0x1b9070,{'key':''[_0x382962('0xda9')](_0x37d4a5[0x0]),'value':''[_0x382962('0xda9')](_0x37d4a5[0x0])},_0x37d4a5[0x1]);}},{'key':_0x311708('0x160'),'value':function(_0x4632f1,_0x44ea1c,_0x14b787){var _0x41df2b=_0x311708,_0xa1913=[];if(Array[_0x41df2b('0xb66')](_0x4632f1))for(var _0x1e27fb=0x0;_0x1e27fb<_0x4632f1['length'];_0x1e27fb++)_0xa1913[_0x41df2b('0x91b')]({'label':_0x4632f1[_0x1e27fb][0x1],'value':_0x4632f1[_0x1e27fb][0x0]});else for(var _0x38c070 in _0x4632f1)_0xa1913[_0x41df2b('0x91b')]({'label':_0x4632f1[_0x38c070],'value':_0x38c070});return _0xa1913;}}])&&_0x399411(_0x1f008c[_0x311708('0xe02')],_0x307c71),_0x536d8a&&_0x399411(_0x1f008c,_0x536d8a),_0xc2dbbe;}(_0x1195a9['default']['Component']);_0x4c75b0[_0x280696('0xf5f')]=_0x144e37;},{'antd':_0x548f48('0x10d2'),'react':'react'}],0x4a:[function(_0x5be35d,_0x59f2bf,_0x500130){var _0x1213a1=_0x548f48;'use strict';Object[_0x1213a1('0x9a5')](_0x500130,_0x1213a1('0xce5'),{'value':!0x0}),_0x500130[_0x1213a1('0xf5f')]=void 0x0;var _0x52f574=_0x17f4b7(_0x5be35d(_0x1213a1('0xb11'))),_0x2349ca=_0x17f4b7(_0x5be35d(_0x1213a1('0xefc'))),_0x543a24=_0x5be35d(_0x1213a1('0x10d2')),_0x5c01b2=_0x5be35d(_0x1213a1('0x5b4'));function _0x17f4b7(_0x12735e){var _0x286348=_0x1213a1;return _0x12735e&&_0x12735e[_0x286348('0xce5')]?_0x12735e:{'default':_0x12735e};}function _0x778bb8(_0x390b83){var _0x4b31e5=_0x1213a1;return(_0x778bb8=_0x4b31e5('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x4b31e5('0x57b')]?function(_0x2f8445){return typeof _0x2f8445;}:function(_0x413280){var _0x1453aa=_0x4b31e5;return _0x413280&&'function'==typeof Symbol&&_0x413280[_0x1453aa('0xad1')]===Symbol&&_0x413280!==Symbol[_0x1453aa('0xe02')]?_0x1453aa('0x43c'):typeof _0x413280;})(_0x390b83);}function _0x24d6ff(_0x24bc14,_0x17d792){var _0x5bd952=_0x1213a1,_0x4d36f1=Object[_0x5bd952('0x110e')](_0x24bc14);if(Object[_0x5bd952('0x5e2')]){var _0x520323=Object['getOwnPropertySymbols'](_0x24bc14);_0x17d792&&(_0x520323=_0x520323[_0x5bd952('0x562')](function(_0x46aec8){var _0x2a948b=_0x5bd952;return Object[_0x2a948b('0x43d')](_0x24bc14,_0x46aec8)['enumerable'];})),_0x4d36f1[_0x5bd952('0x91b')][_0x5bd952('0x2be')](_0x4d36f1,_0x520323);}return _0x4d36f1;}function _0x109361(_0xc44de8){var _0x25891b=_0x1213a1;for(var _0x5c50f5=0x1;_0x5c50f50xa&&_0x322415[_0x56da17('0x182')](_0x1e5e55);}}},{'key':_0x1291c3('0xcee'),'value':function(){this['setState']({'visible':!0x1});}},{'key':'clear','value':function(){var _0x182cc7=_0x1291c3;this[_0x182cc7('0x6c4')][_0x182cc7('0xb15')]();}},{'key':_0x1291c3('0xb6'),'value':function(){var _0x437609=_0x1291c3,_0x4a7e08=this['signature'][_0x437609('0xf1d')](_0x437609('0x83b'));this[_0x437609('0x3f9')](_0x4a7e08),this[_0x437609('0x1089')]({'visible':!0x1});}},{'key':_0x1291c3('0xb9b'),'value':function(){var _0x39f679=_0x1291c3,_0x504349=this,_0xed8708=this['props'][_0x39f679('0x1134')];return _0x52f574[_0x39f679('0xf5f')]['createElement'](_0x52f574['default']['Fragment'],null,_0x52f574['default'][_0x39f679('0xfa9')](_0x543a24[_0x39f679('0x56d')],{'visible':this[_0x39f679('0x55d')][_0x39f679('0xdc8')],'title':_0x39f679('0x1070'),'maskClosable':!0x1,'centered':!0x0,'width':0x12c,'onCancel':function(){var _0x5abc69=_0x39f679;_0x504349[_0x5abc69('0xcee')]();},'footer':[_0x52f574[_0x39f679('0xf5f')][_0x39f679('0xfa9')](_0x543a24[_0x39f679('0x81a')],{'key':_0x39f679('0x581'),'onClick':function(){var _0x5a20a4=_0x39f679;_0x504349[_0x5a20a4('0xcee')]();}},'Cancel'),_0x52f574['default'][_0x39f679('0xfa9')](_0x543a24[_0x39f679('0x81a')],{'key':_0x39f679('0xb15'),'disabled':_0xed8708,'type':_0x39f679('0xfb4'),'onClick':function(){_0xed8708||_0x504349['clear']();}},_0x39f679('0xadf')),_0x52f574[_0x39f679('0xf5f')][_0x39f679('0xfa9')](_0x543a24[_0x39f679('0x81a')],{'key':'ok','disabled':_0xed8708,'type':_0x39f679('0x1071'),'onClick':function(){var _0x1734cf=_0x39f679;_0xed8708||_0x504349[_0x1734cf('0xb6')]();}},_0x39f679('0x1c0'))]},_0x52f574[_0x39f679('0xf5f')]['createElement'](_0x2349ca[_0x39f679('0xf5f')],{'ref':function(_0xc08433){var _0xd8c624=_0x39f679;_0x504349[_0xd8c624('0x6c4')]=_0xc08433,_0x504349[_0xd8c624('0x95c')](_0xc08433);},'canvasProps':_0x109361({'width':0xfa,'height':0xc8,'className':_0x39f679('0x670')},_0xed8708?{'readOnly':_0xed8708}:{})})),_0x52f574[_0x39f679('0xf5f')][_0x39f679('0xfa9')](_0x543a24[_0x39f679('0x9ca')],{'color':_0x39f679('0x10a7'),'style':{'cursor':_0x39f679('0x3e1')},'onClick':function(){var _0x5506da=_0x39f679;_0x504349[_0x5506da('0x312')]();}},_0x52f574[_0x39f679('0xf5f')][_0x39f679('0xfa9')](_0x5c01b2[_0x39f679('0x391')],null),'\x20',_0x39f679('0x58a')));}}])&&_0x7cf066(_0x37335e[_0x1291c3('0xe02')],_0x19ac5d),_0x397c1b&&_0x7cf066(_0x37335e,_0x397c1b),_0xae6d85;}(_0x52f574[_0x1213a1('0xf5f')][_0x1213a1('0x42')]);_0x500130[_0x1213a1('0xf5f')]=_0x469eb0;},{'@ant-design/icons':'@ant-design/icons','antd':'antd','react':_0x548f48('0xb11'),'react-signature-canvas':0x166}],0x4b:[function(_0x2d8c8b,_0x7e611b,_0x5dca6b){var _0x31d4ae=_0x548f48;'use strict';Object[_0x31d4ae('0x9a5')](_0x5dca6b,_0x31d4ae('0xce5'),{'value':!0x0}),_0x5dca6b[_0x31d4ae('0xf5f')]=void 0x0;var _0x301b8a=_0x120c08(_0x2d8c8b(_0x31d4ae('0xb11'))),_0x381649=_0x2d8c8b(_0x31d4ae('0x10d2')),_0x33372a=_0x120c08(_0x2d8c8b(_0x31d4ae('0x631')));function _0x120c08(_0x15d9fa){return _0x15d9fa&&_0x15d9fa['__esModule']?_0x15d9fa:{'default':_0x15d9fa};}function _0x4fd2d3(_0x4ae786){var _0x3be5e3=_0x31d4ae;return(_0x4fd2d3=_0x3be5e3('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x3be5e3('0x57b')]?function(_0x14141b){return typeof _0x14141b;}:function(_0x321616){var _0x4eec8b=_0x3be5e3;return _0x321616&&'function'==typeof Symbol&&_0x321616[_0x4eec8b('0xad1')]===Symbol&&_0x321616!==Symbol[_0x4eec8b('0xe02')]?_0x4eec8b('0x43c'):typeof _0x321616;})(_0x4ae786);}function _0x55044b(_0x187892){return function(_0x2942d7){var _0x21af7c=_0x5376;if(Array[_0x21af7c('0xb66')](_0x2942d7))return _0x4cb878(_0x2942d7);}(_0x187892)||function(_0x228082){var _0x5bbb10=_0x5376;if('undefined'!=typeof Symbol&&Symbol[_0x5bbb10('0x57b')]in Object(_0x228082))return Array[_0x5bbb10('0x1161')](_0x228082);}(_0x187892)||_0x2d7209(_0x187892)||function(){throw new TypeError('Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}();}function _0x505d1a(_0x3dfff5,_0x4da14e){return function(_0x29d76a){var _0x337f5b=_0x5376;if(Array[_0x337f5b('0xb66')](_0x29d76a))return _0x29d76a;}(_0x3dfff5)||function(_0x37d640,_0x177544){var _0x379694=_0x5376;if(_0x379694('0x449')==typeof Symbol||!(Symbol['iterator']in Object(_0x37d640)))return;var _0x48b68d=[],_0x1b2fa4=!0x0,_0x45edd5=!0x1,_0x291897=void 0x0;try{for(var _0x4d5c6f,_0x3b2a7b=_0x37d640[Symbol['iterator']]();!(_0x1b2fa4=(_0x4d5c6f=_0x3b2a7b[_0x379694('0x165')]())[_0x379694('0x1126')])&&(_0x48b68d['push'](_0x4d5c6f['value']),!_0x177544||_0x48b68d[_0x379694('0x13')]!==_0x177544);_0x1b2fa4=!0x0);}catch(_0x34b875){_0x45edd5=!0x0,_0x291897=_0x34b875;}finally{try{_0x1b2fa4||null==_0x3b2a7b[_0x379694('0x4c8')]||_0x3b2a7b[_0x379694('0x4c8')]();}finally{if(_0x45edd5)throw _0x291897;}}return _0x48b68d;}(_0x3dfff5,_0x4da14e)||_0x2d7209(_0x3dfff5,_0x4da14e)||function(){throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}();}function _0x2d7209(_0x363fd1,_0x2f4662){var _0x28eda1=_0x31d4ae;if(_0x363fd1){if(_0x28eda1('0x2fd')==typeof _0x363fd1)return _0x4cb878(_0x363fd1,_0x2f4662);var _0x32c9c9=Object[_0x28eda1('0xe02')]['toString'][_0x28eda1('0xfd2')](_0x363fd1)[_0x28eda1('0xdf1')](0x8,-0x1);return _0x28eda1('0xe25')===_0x32c9c9&&_0x363fd1[_0x28eda1('0xad1')]&&(_0x32c9c9=_0x363fd1['constructor']['name']),'Map'===_0x32c9c9||_0x28eda1('0xdb3')===_0x32c9c9?Array['from'](_0x32c9c9):_0x28eda1('0x729')===_0x32c9c9||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x32c9c9)?_0x4cb878(_0x363fd1,_0x2f4662):void 0x0;}}function _0x4cb878(_0xf2fea5,_0xc2c82){var _0x24e979=_0x31d4ae;(null==_0xc2c82||_0xc2c82>_0xf2fea5[_0x24e979('0x13')])&&(_0xc2c82=_0xf2fea5['length']);for(var _0x28b02f=0x0,_0x13627c=new Array(_0xc2c82);_0x28b02f<_0xc2c82;_0x28b02f++)_0x13627c[_0x28b02f]=_0xf2fea5[_0x28b02f];return _0x13627c;}function _0x17dd31(_0xcdf76,_0xb36f7a,_0x15d28f,_0x1e14ff,_0x201d8a,_0x4db76c,_0x220413){var _0x416fb4=_0x31d4ae;try{var _0x5f4247=_0xcdf76[_0x4db76c](_0x220413),_0x1384c6=_0x5f4247[_0x416fb4('0x30')];}catch(_0x145575){return void _0x15d28f(_0x145575);}_0x5f4247[_0x416fb4('0x1126')]?_0xb36f7a(_0x1384c6):Promise[_0x416fb4('0xa7')](_0x1384c6)[_0x416fb4('0x10c6')](_0x1e14ff,_0x201d8a);}function _0x4027a5(_0x586ffc){return function(){var _0x1a7fed=this,_0x45c849=arguments;return new Promise(function(_0x4996ff,_0x2c9a16){var _0x7beece=_0x586ffc['apply'](_0x1a7fed,_0x45c849);function _0x133294(_0x584483){var _0x393270=_0x5376;_0x17dd31(_0x7beece,_0x4996ff,_0x2c9a16,_0x133294,_0x4e8363,_0x393270('0x165'),_0x584483);}function _0x4e8363(_0x4baf0d){var _0x28210c=_0x5376;_0x17dd31(_0x7beece,_0x4996ff,_0x2c9a16,_0x133294,_0x4e8363,_0x28210c('0x8b3'),_0x4baf0d);}_0x133294(void 0x0);});};}function _0x645789(_0x47443e,_0x3205fc){var _0x453328=_0x31d4ae,_0x483266=Object[_0x453328('0x110e')](_0x47443e);if(Object[_0x453328('0x5e2')]){var _0x12ded4=Object[_0x453328('0x5e2')](_0x47443e);_0x3205fc&&(_0x12ded4=_0x12ded4['filter'](function(_0x595b39){var _0x1e6126=_0x453328;return Object[_0x1e6126('0x43d')](_0x47443e,_0x595b39)[_0x1e6126('0x3bf')];})),_0x483266[_0x453328('0x91b')][_0x453328('0x2be')](_0x483266,_0x12ded4);}return _0x483266;}function _0x26900f(_0x34c0cd,_0x121f17,_0x391880){var _0x4a97f2=_0x31d4ae;return _0x121f17 in _0x34c0cd?Object[_0x4a97f2('0x9a5')](_0x34c0cd,_0x121f17,{'value':_0x391880,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):_0x34c0cd[_0x121f17]=_0x391880,_0x34c0cd;}function _0x2a75d3(_0x462fc6,_0x199093){var _0x568467=_0x31d4ae;for(var _0x4bec79=0x0;_0x4bec79<_0x199093[_0x568467('0x13')];_0x4bec79++){var _0x22bbf9=_0x199093[_0x4bec79];_0x22bbf9[_0x568467('0x3bf')]=_0x22bbf9[_0x568467('0x3bf')]||!0x1,_0x22bbf9[_0x568467('0x749')]=!0x0,'value'in _0x22bbf9&&(_0x22bbf9['writable']=!0x0),Object[_0x568467('0x9a5')](_0x462fc6,_0x22bbf9[_0x568467('0x86f')],_0x22bbf9);}}function _0x2345b9(_0x383af9,_0x660c81){var _0x58b2f2=_0x31d4ae;return!_0x660c81||'object'!==_0x4fd2d3(_0x660c81)&&_0x58b2f2('0x106c')!=typeof _0x660c81?function(_0x43674d){var _0x44a951=_0x58b2f2;if(void 0x0===_0x43674d)throw new ReferenceError(_0x44a951('0xe0d'));return _0x43674d;}(_0x383af9):_0x660c81;}function _0x5d2178(){var _0x521d2b=_0x31d4ae;if(_0x521d2b('0x449')==typeof Reflect||!Reflect[_0x521d2b('0x353')])return!0x1;if(Reflect['construct'][_0x521d2b('0xb21')])return!0x1;if(_0x521d2b('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x521d2b('0xe02')][_0x521d2b('0xb6d')]['call'](Reflect[_0x521d2b('0x353')](Date,[],function(){})),!0x0;}catch(_0xdc7faf){return!0x1;}}function _0x37b499(_0x503b2e){var _0x252d88=_0x31d4ae;return(_0x37b499=Object[_0x252d88('0x3df')]?Object['getPrototypeOf']:function(_0x3d9c3e){return _0x3d9c3e['__proto__']||Object['getPrototypeOf'](_0x3d9c3e);})(_0x503b2e);}function _0x83fe5c(_0x3c3cda,_0x4ba784){var _0x3395af=_0x31d4ae;return(_0x83fe5c=Object[_0x3395af('0x3df')]||function(_0xf2d9e3,_0xbdb3a9){var _0x45a47f=_0x3395af;return _0xf2d9e3[_0x45a47f('0x112c')]=_0xbdb3a9,_0xf2d9e3;})(_0x3c3cda,_0x4ba784);}var _0x5a4030=_0x381649[_0x31d4ae('0x92d')][_0x31d4ae('0x335')],_0x4e07aa=function(_0x58c128){var _0x4b4985=_0x31d4ae;!function(_0x28b274,_0x3decca){var _0x247589=_0x5376;if(_0x247589('0x106c')!=typeof _0x3decca&&null!==_0x3decca)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x28b274[_0x247589('0xe02')]=Object['create'](_0x3decca&&_0x3decca[_0x247589('0xe02')],{'constructor':{'value':_0x28b274,'writable':!0x0,'configurable':!0x0}}),_0x3decca&&_0x83fe5c(_0x28b274,_0x3decca);}(_0x2a04b7,_0x58c128);var _0x31bbd0,_0x28c021,_0x38a1b6,_0x26faa1,_0x2f7b8c,_0x31431a,_0x2e135f=(_0x31bbd0=_0x2a04b7,function(){var _0x29ed54=_0x5376,_0x3a7e95,_0x49b92b=_0x37b499(_0x31bbd0);if(_0x5d2178()){var _0x24ba78=_0x37b499(this)[_0x29ed54('0xad1')];_0x3a7e95=Reflect[_0x29ed54('0x353')](_0x49b92b,arguments,_0x24ba78);}else _0x3a7e95=_0x49b92b['apply'](this,arguments);return _0x2345b9(this,_0x3a7e95);});function _0x2a04b7(_0x897493){var _0x51e3aa=_0x5376,_0x445eee;!function(_0x2ebd97,_0x3dba84){var _0xa753aa=_0x5376;if(!(_0x2ebd97 instanceof _0x3dba84))throw new TypeError(_0xa753aa('0xf98'));}(this,_0x2a04b7),(_0x445eee=_0x2e135f[_0x51e3aa('0xfd2')](this,_0x897493))['onChange']=_0x897493[_0x51e3aa('0x3f9')];var _0x18b9d3=_0x445eee[_0x51e3aa('0x1136')][_0x51e3aa('0x535')][_0x51e3aa('0xd8e')](function(_0x48a436){var _0x460317=_0x51e3aa;return function(_0xd053aa){var _0x7d1e8=_0x5376;for(var _0x286d54=0x1;_0x286d540x0&&_0x301b8a[_0x389c26('0xf5f')]['createElement'](_0x381649[_0x389c26('0x81a')],{'onClick':function(){var _0x4ea812=_0x389c26;return _0x5bce7b[_0x4ea812('0x1e5')]();}},_0x7771ac['gt'](_0x389c26('0xa47'))))),_0x301b8a['default']['createElement'](_0x381649[_0x389c26('0xd19')],{'className':_0x389c26('0x7e8'),'span':0xc,'style':{'textAlign':_0x389c26('0x94b')}},_0x301b8a['default'][_0x389c26('0xfa9')](_0x381649['Space'],null,_0x301b8a[_0x389c26('0xf5f')]['createElement'](_0x381649['Button'],{'onClick':function(){var _0x27f8ad=_0x389c26;return _0x5bce7b[_0x27f8ad('0x1136')][_0x27f8ad('0x211')]();}},_0x7771ac['gt'](_0x389c26('0xb68'))),_0x301b8a[_0x389c26('0xf5f')]['createElement'](_0x381649[_0x389c26('0x81a')],{'type':'primary','loading':this['state'][_0x389c26('0x8cd')],'onClick':function(){var _0x36e2a1=_0x389c26;return _0x5bce7b[_0x36e2a1('0x5fc')]();}},_0x7771ac['gt'](_0x389c26('0x7e4'))))))));}},{'key':_0x4b4985('0x5fc'),'value':(_0x31431a=_0x4027a5(regeneratorRuntime[_0x4b4985('0x7c0')](function _0x55a3e8(){var _0x2675b8=_0x4b4985,_0x5d3686,_0x5ed5ee=this;return regeneratorRuntime[_0x2675b8('0xd2d')](function(_0x3f2934){var _0xd8b4ec=_0x2675b8;for(;;)switch(_0x3f2934[_0xd8b4ec('0x1e5')]=_0x3f2934[_0xd8b4ec('0x165')]){case 0x0:return this[_0xd8b4ec('0x1089')]({'loading':!0x0}),_0x3f2934[_0xd8b4ec('0x165')]=0x3,this[_0xd8b4ec('0xa9e')](!0x0);case 0x3:(_0x5d3686=_0x3f2934[_0xd8b4ec('0xcdf')])&&this['save'](_0x5d3686,function(){var _0x3d965a=_0xd8b4ec;return _0x5ed5ee[_0x3d965a('0x1136')]['closeModal']();}),this['setState']({'loading':!0x1});case 0x6:case'end':return _0x3f2934[_0xd8b4ec('0xfea')]();}},_0x55a3e8,this);})),function(){var _0xb1ae0f=_0x4b4985;return _0x31431a[_0xb1ae0f('0x2be')](this,arguments);})},{'key':_0x4b4985('0xb6'),'value':function(_0x511bda,_0xb0fb24){var _0x52f75d=_0x4b4985,_0x319d87=this,_0x51125f=this['props']['adapter'];_0x51125f[_0x52f75d('0x949')](_0x511bda,[],function(){var _0x4fd4e2=_0x52f75d;return _0x51125f[_0x4fd4e2('0xd12')]([]);},function(){var _0x3a4c7e=_0x52f75d;_0x319d87[_0x3a4c7e('0xeea')](),_0x319d87['showError'](!0x1),_0xb0fb24();});}},{'key':'updateFields','value':function(_0x4f3f98){var _0xcf58bb=_0x4b4985,_0x2addbd=this;this[_0xcf58bb('0x55d')]['steps'][_0xcf58bb('0xb77')](function(_0x9c5307){var _0x922a21=_0xcf58bb,_0x5ceefc={};_0x9c5307[_0x922a21('0x535')]['forEach'](function(_0xd8f6a7){var _0x5c71a9=_0x505d1a(_0xd8f6a7,0x1)[0x0];_0x5ceefc[_0x5c71a9]=_0x4f3f98[_0x5c71a9];}),_0x2addbd['updateFieldsSubForm'](_0x9c5307['ref'],_0x9c5307[_0x922a21('0x535')],_0x5ceefc);});}},{'key':'updateFieldsSubForm','value':function(_0x566c91,_0x4ace3c,_0x2e14f9){var _0x491118=_0x4b4985;if(_0x2e14f9=this[_0x491118('0xcbb')](_0x2e14f9,_0x4ace3c),_0x566c91[_0x491118('0xda7')]['resetFields'](),null!=_0x2e14f9)try{_0x566c91[_0x491118('0xda7')][_0x491118('0xce6')](_0x2e14f9);}catch(_0x41ac3d){console[_0x491118('0x455')](_0x41ac3d);}}},{'key':_0x4b4985('0xa9e'),'value':(_0x2f7b8c=_0x4027a5(regeneratorRuntime[_0x4b4985('0x7c0')](function _0x521239(_0x54508f){var _0x45dae1,_0x7d3ae7,_0x70fe57,_0x59a513,_0x370475,_0x2455f6,_0xa02a2e,_0x412b23,_0x131bb1;return regeneratorRuntime['wrap'](function(_0x4bd654){var _0x16b41a=_0x5376;for(;;)switch(_0x4bd654['prev']=_0x4bd654['next']){case 0x0:return _0x45dae1=this[_0x16b41a('0x1136')][_0x16b41a('0xfb2')],_0x7d3ae7=_0x54508f?this[_0x16b41a('0x55d')]['steps']:this['state'][_0x16b41a('0x6c6')]['slice'](0x0,this[_0x16b41a('0x55d')][_0x16b41a('0xda7')]+0x1),_0x70fe57=_0x7d3ae7['map'](function(_0x25cd49){var _0x5462b3=_0x16b41a;return _0x25cd49[_0x5462b3('0x51b')][_0x5462b3('0xda7')][_0x5462b3('0xa9e')]()['then'](function(_0x187358){var _0x5acab4=_0x5462b3;return!!_0x25cd49['ref'][_0x5acab4('0xda7')][_0x5acab4('0x226')]()&&_0x187358;})['catch'](function(){return!0x1;});}),_0x4bd654[_0x16b41a('0x165')]=0x5,Promise['all'](_0x70fe57);case 0x5:if(_0x59a513=_0x4bd654[_0x16b41a('0xcdf')],!((_0x370475=_0x59a513[_0x16b41a('0x11f')](function(_0x55a161){return!0x1===_0x55a161;}))>=0x0)){_0x4bd654['next']=0xa;break;}return this[_0x16b41a('0x1089')]({'current':_0x370475}),_0x4bd654['abrupt'](_0x16b41a('0x4c8'),!0x1);case 0xa:if(_0x2455f6=Object[_0x16b41a('0x1060')]['apply'](Object,[{}]['concat'](_0x55044b(_0x59a513))),_0x2455f6=_0x45dae1[_0x16b41a('0xcea')](_0x2455f6),null===(_0xa02a2e=_0x45dae1['doCustomValidation'](_0x2455f6))){_0x4bd654['next']=0x10;break;}return this['showError'](_0xa02a2e),_0x4bd654['abrupt'](_0x16b41a('0x4c8'),!0x1);case 0x10:return _0x45dae1[_0x16b41a('0x768')]&&(_0x2455f6[_0x16b41a('0x9e5')]=$('#'[_0x16b41a('0xda9')](_0x45dae1['getTableName'](),_0x16b41a('0xe32')))[_0x16b41a('0x1016')]('csrf')),null!=(_0x412b23=null!=_0x45dae1['currentElement']?_0x45dae1['currentElement']['id']:null)&&''!==_0x412b23&&(_0x2455f6['id']=_0x412b23),_0x131bb1=[][_0x16b41a('0xda9')][_0x16b41a('0x2be')]([],this['state']['steps']['map'](function(_0xd75f72){var _0x1c720e=_0x16b41a;return _0xd75f72[_0x1c720e('0x535')];})),_0x4bd654[_0x16b41a('0x9c5')]('return',this[_0x16b41a('0xd51')](_0x2455f6,_0x131bb1));case 0x15:case _0x16b41a('0xcad'):return _0x4bd654[_0x16b41a('0xfea')]();}},_0x521239,this);})),function(_0xf991b3){var _0x21ce48=_0x4b4985;return _0x2f7b8c[_0x21ce48('0x2be')](this,arguments);})},{'key':_0x4b4985('0x105f'),'value':function(_0x35a3af,_0x218786,_0x4d604c){var _0x121e36=_0x4b4985,_0x1472fa=this['props'][_0x121e36('0xfb2')],_0xc65e0=_0x4d604c;_0xc65e0=_0x1472fa[_0x121e36('0xcea')](_0xc65e0);var _0x24db7d=_0x1472fa[_0x121e36('0xe86')](_0xc65e0);if(null===_0x24db7d){_0x1472fa['csrfRequired']&&(_0xc65e0[_0x121e36('0x9e5')]=$('#'[_0x121e36('0xda9')](_0x1472fa[_0x121e36('0x3ed')](),_0x121e36('0xe32')))['data'](_0x121e36('0x9e5')));var _0x5a6471=null!=_0x1472fa['currentElement']?_0x1472fa[_0x121e36('0x31')]['id']:null;return null!=_0x5a6471&&''!==_0x5a6471&&(_0xc65e0['id']=_0x5a6471),this[_0x121e36('0xd51')](_0xc65e0,_0x218786);}_0x35a3af[_0x121e36('0xda7')]['showError'](_0x24db7d);}},{'key':_0x4b4985('0x36b'),'value':function(_0x23ecb8){var _0x1a4b79=_0x4b4985;this[_0x1a4b79('0x55d')]['steps']['forEach'](function(_0x10801f){var _0x12d5fa=_0x1a4b79;return _0x10801f[_0x12d5fa('0x51b')][_0x12d5fa('0xda7')][_0x12d5fa('0x36b')](_0x23ecb8);});}},{'key':'resetFields','value':function(){var _0x4b0cfa=_0x4b4985;this[_0x4b0cfa('0x55d')]['steps']['forEach'](function(_0x2c3a0e){var _0x3a5fc0=_0x4b0cfa;return _0x2c3a0e[_0x3a5fc0('0x51b')][_0x3a5fc0('0xda7')]['resetFields']();});}},{'key':_0x4b4985('0xa3d'),'value':function(){var _0x3e5121=_0x4b4985;this[_0x3e5121('0x55d')][_0x3e5121('0x6c6')]['forEach'](function(_0x40e1a8){var _0x8a661b=_0x3e5121;return _0x40e1a8['ref'][_0x8a661b('0xda7')][_0x8a661b('0xa3d')]();});}},{'key':_0x4b4985('0x978'),'value':function(){var _0x216e61=_0x4b4985;return this[_0x216e61('0x55d')][_0x216e61('0x6c6')][_0x216e61('0xd48')](function(_0x3335b3,_0x336462){var _0x29160f=_0x216e61;return _0x3335b3&&null!=_0x336462[_0x29160f('0x51b')]['current'];},!0x0);}}])&&_0x2a75d3(_0x28c021[_0x4b4985('0xe02')],_0x38a1b6),_0x26faa1&&_0x2a75d3(_0x28c021,_0x26faa1),_0x2a04b7;}(_0x33372a[_0x31d4ae('0xf5f')]);_0x5dca6b[_0x31d4ae('0xf5f')]=_0x4e07aa;},{'./IceForm':0x46,'antd':'antd','react':_0x548f48('0xb11')}],0x4c:[function(_0x3b715d,_0x48819d,_0x9517b){var _0x25a4f3=_0x548f48;'use strict';Object[_0x25a4f3('0x9a5')](_0x9517b,_0x25a4f3('0xce5'),{'value':!0x0}),_0x9517b[_0x25a4f3('0xf5f')]=void 0x0;var _0x1a279e=_0x4435e5(_0x3b715d(_0x25a4f3('0xb11'))),_0x3d18f6=_0x3b715d(_0x25a4f3('0x10d2')),_0x1d9685=_0x4435e5(_0x3b715d('./IceFormModal')),_0x5350f6=_0x4435e5(_0x3b715d(_0x25a4f3('0x918')));function _0x4435e5(_0x4aa523){var _0x171d75=_0x25a4f3;return _0x4aa523&&_0x4aa523[_0x171d75('0xce5')]?_0x4aa523:{'default':_0x4aa523};}function _0x500d42(_0x1bf9a6){var _0x6a6533=_0x25a4f3;return(_0x500d42=_0x6a6533('0x106c')==typeof Symbol&&_0x6a6533('0x43c')==typeof Symbol['iterator']?function(_0xf338d1){return typeof _0xf338d1;}:function(_0x3d1424){var _0x44beea=_0x6a6533;return _0x3d1424&&_0x44beea('0x106c')==typeof Symbol&&_0x3d1424['constructor']===Symbol&&_0x3d1424!==Symbol['prototype']?'symbol':typeof _0x3d1424;})(_0x1bf9a6);}function _0x4602da(_0x433968,_0x3a3f94){var _0x23aae7=_0x25a4f3;for(var _0x24cafd=0x0;_0x24cafd<_0x3a3f94[_0x23aae7('0x13')];_0x24cafd++){var _0x161131=_0x3a3f94[_0x24cafd];_0x161131[_0x23aae7('0x3bf')]=_0x161131[_0x23aae7('0x3bf')]||!0x1,_0x161131[_0x23aae7('0x749')]=!0x0,_0x23aae7('0x30')in _0x161131&&(_0x161131[_0x23aae7('0x820')]=!0x0),Object[_0x23aae7('0x9a5')](_0x433968,_0x161131[_0x23aae7('0x86f')],_0x161131);}}function _0x313ce9(_0x6cfc64,_0x46e710){return!_0x46e710||'object'!==_0x500d42(_0x46e710)&&'function'!=typeof _0x46e710?function(_0x4c4283){var _0x463f06=_0x5376;if(void 0x0===_0x4c4283)throw new ReferenceError(_0x463f06('0xe0d'));return _0x4c4283;}(_0x6cfc64):_0x46e710;}function _0x3db400(){var _0x1b5783=_0x25a4f3;if('undefined'==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x1b5783('0xb21')])return!0x1;if(_0x1b5783('0x106c')==typeof Proxy)return!0x0;try{return Date[_0x1b5783('0xe02')][_0x1b5783('0xb6d')]['call'](Reflect[_0x1b5783('0x353')](Date,[],function(){})),!0x0;}catch(_0x2f7cab){return!0x1;}}function _0x5804d0(_0x36186f){var _0x7e9185=_0x25a4f3;return(_0x5804d0=Object['setPrototypeOf']?Object[_0x7e9185('0x2d9')]:function(_0x31bd5d){var _0x1d3e7f=_0x7e9185;return _0x31bd5d[_0x1d3e7f('0x112c')]||Object[_0x1d3e7f('0x2d9')](_0x31bd5d);})(_0x36186f);}function _0x7cef37(_0x31c494,_0x1abeab){var _0x3efabc=_0x25a4f3;return(_0x7cef37=Object[_0x3efabc('0x3df')]||function(_0xb53111,_0x396a23){return _0xb53111['__proto__']=_0x396a23,_0xb53111;})(_0x31c494,_0x1abeab);}var _0x30e166=function(_0xb10562){var _0x359004=_0x25a4f3;!function(_0x56eb85,_0x5f20fd){var _0x55662a=_0x5376;if('function'!=typeof _0x5f20fd&&null!==_0x5f20fd)throw new TypeError(_0x55662a('0x5a0'));_0x56eb85[_0x55662a('0xe02')]=Object[_0x55662a('0xbd0')](_0x5f20fd&&_0x5f20fd['prototype'],{'constructor':{'value':_0x56eb85,'writable':!0x0,'configurable':!0x0}}),_0x5f20fd&&_0x7cef37(_0x56eb85,_0x5f20fd);}(_0x152306,_0xb10562);var _0x32f8fc,_0x5677a9,_0x14f1a4,_0x216350,_0x2b176c=(_0x32f8fc=_0x152306,function(){var _0x33b2dd=_0x5376,_0x7e10d2,_0x548869=_0x5804d0(_0x32f8fc);if(_0x3db400()){var _0x4fab7c=_0x5804d0(this)['constructor'];_0x7e10d2=Reflect[_0x33b2dd('0x353')](_0x548869,arguments,_0x4fab7c);}else _0x7e10d2=_0x548869[_0x33b2dd('0x2be')](this,arguments);return _0x313ce9(this,_0x7e10d2);});function _0x152306(_0x111b46){var _0x272299=_0x5376,_0x4200ea;return function(_0x510aaa,_0x302e43){var _0xd9f201=_0x5376;if(!(_0x510aaa instanceof _0x302e43))throw new TypeError(_0xd9f201('0xf98'));}(this,_0x152306),(_0x4200ea=_0x2b176c[_0x272299('0xfd2')](this,_0x111b46))[_0x272299('0x115')]=0x352,_0x4200ea;}return _0x5677a9=_0x152306,(_0x14f1a4=[{'key':_0x359004('0x312'),'value':function(_0x56d401){var _0x364a1e=_0x359004,_0x46ffb0=this;this[_0x364a1e('0x1136')]['adapter']['beforeRenderFieldHook']=this[_0x364a1e('0x1136')][_0x364a1e('0xfb2')][_0x364a1e('0x377')]?this['props'][_0x364a1e('0xfb2')]['beforeRenderField'](_0x56d401):function(_0x589ebc,_0x51c0e8){return _0x51c0e8;},_0x56d401?(this[_0x364a1e('0x1089')]({'visible':!0x0}),this[_0x364a1e('0xb72')][_0x364a1e('0xda7')]&&this[_0x364a1e('0xb72')]['current']['isReady']()?(this[_0x364a1e('0xb72')][_0x364a1e('0xda7')][_0x364a1e('0xe56')](0x0),this[_0x364a1e('0xb72')][_0x364a1e('0xda7')][_0x364a1e('0x772')](_0x56d401)):this[_0x364a1e('0x652')](function(){var _0x2f6b9f=_0x364a1e;return _0x46ffb0[_0x2f6b9f('0xb72')]['current']&&_0x46ffb0[_0x2f6b9f('0xb72')][_0x2f6b9f('0xda7')]['isReady']();},function(){var _0x36eaa8=_0x364a1e;_0x46ffb0[_0x36eaa8('0xb72')][_0x36eaa8('0xda7')][_0x36eaa8('0x772')](_0x56d401),_0x46ffb0[_0x36eaa8('0xb72')][_0x36eaa8('0xda7')][_0x36eaa8('0xe56')](0x0);},0x3e8)):(this['setState']({'visible':!0x0}),this['iceFormReference'][_0x364a1e('0xda7')]&&this['iceFormReference'][_0x364a1e('0xda7')][_0x364a1e('0xeea')]());}},{'key':_0x359004('0xcee'),'value':function(){var _0x7f7921=_0x359004;this['iceFormReference'][_0x7f7921('0xda7')][_0x7f7921('0xe56')](0x0),this['setState']({'visible':!0x1});}},{'key':_0x359004('0xb9b'),'value':function(){var _0x3ba25e=_0x359004,_0x32d6f1=this,_0x5587d4=this[_0x3ba25e('0x1136')],_0x10d241=_0x5587d4['fields'],_0x3f6964=_0x5587d4['adapter'],_0x287509=this[_0x3ba25e('0x1136')][_0x3ba25e('0xfb2')][_0x3ba25e('0xebd')](),_0x5c6676=_0x287509[_0x3ba25e('0x115')],_0x15e903=_0x287509[_0x3ba25e('0x10be')],_0x16177b=_0x287509['layout'];return _0x1a279e[_0x3ba25e('0xf5f')][_0x3ba25e('0xfa9')](_0x3d18f6[_0x3ba25e('0x56d')],{'visible':this['state']['visible'],'title':this[_0x3ba25e('0x1136')][_0x3ba25e('0xfb2')]['gt'](this['props'][_0x3ba25e('0xf6d')]||_0x3f6964[_0x3ba25e('0x950')]),'maskClosable':!0x1,'width':_0x5c6676||this[_0x3ba25e('0x115')],'footer':[],'onCancel':function(){var _0x70947=_0x3ba25e;_0x32d6f1[_0x70947('0x211')]();}},_0x1a279e[_0x3ba25e('0xf5f')][_0x3ba25e('0xfa9')](_0x5350f6[_0x3ba25e('0xf5f')],{'ref':this[_0x3ba25e('0xb72')],'adapter':_0x3f6964,'fields':_0x10d241,'closeModal':function(){var _0x1af49c=_0x3ba25e;_0x32d6f1[_0x1af49c('0x211')]();},'twoColumnLayout':_0x15e903||!0x1,'layout':_0x16177b}));}}])&&_0x4602da(_0x5677a9[_0x359004('0xe02')],_0x14f1a4),_0x216350&&_0x4602da(_0x5677a9,_0x216350),_0x152306;}(_0x1d9685[_0x25a4f3('0xf5f')]);_0x9517b[_0x25a4f3('0xf5f')]=_0x30e166;},{'./IceFormModal':0x47,'./IceStepForm':0x4b,'antd':_0x548f48('0x10d2'),'react':'react'}],0x4d:[function(_0x4b34b4,_0x3cc7a8,_0x4df0f0){var _0x214213=_0x548f48;'use strict';Object['defineProperty'](_0x4df0f0,_0x214213('0xce5'),{'value':!0x0}),_0x4df0f0['default']=void 0x0;var _0x114c83=function(_0x3d7f1c){var _0x2b51d5=_0x214213;if(_0x3d7f1c&&_0x3d7f1c[_0x2b51d5('0xce5')])return _0x3d7f1c;if(null===_0x3d7f1c||'object'!==_0x91cc5a(_0x3d7f1c)&&_0x2b51d5('0x106c')!=typeof _0x3d7f1c)return{'default':_0x3d7f1c};var _0x2eceb5=_0x7fc359();if(_0x2eceb5&&_0x2eceb5['has'](_0x3d7f1c))return _0x2eceb5['get'](_0x3d7f1c);var _0x2e15ad={},_0x31ba91=Object[_0x2b51d5('0x9a5')]&&Object['getOwnPropertyDescriptor'];for(var _0x434015 in _0x3d7f1c)if(Object[_0x2b51d5('0xe02')][_0x2b51d5('0xe9c')]['call'](_0x3d7f1c,_0x434015)){var _0x253b15=_0x31ba91?Object[_0x2b51d5('0x43d')](_0x3d7f1c,_0x434015):null;_0x253b15&&(_0x253b15[_0x2b51d5('0xd12')]||_0x253b15[_0x2b51d5('0x24a')])?Object[_0x2b51d5('0x9a5')](_0x2e15ad,_0x434015,_0x253b15):_0x2e15ad[_0x434015]=_0x3d7f1c[_0x434015];}return _0x2e15ad[_0x2b51d5('0xf5f')]=_0x3d7f1c,_0x2eceb5&&_0x2eceb5[_0x2b51d5('0x24a')](_0x3d7f1c,_0x2e15ad),_0x2e15ad;}(_0x4b34b4(_0x214213('0xb11'))),_0x28283f=_0x4b34b4('antd'),_0xe06795=_0x4b34b4('@ant-design/icons');function _0x7fc359(){var _0x2e77ef=_0x214213;if(_0x2e77ef('0x106c')!=typeof WeakMap)return null;var _0x1acdf6=new WeakMap();return _0x7fc359=function(){return _0x1acdf6;},_0x1acdf6;}function _0x91cc5a(_0x552d73){var _0x4b4269=_0x214213;return(_0x91cc5a=_0x4b4269('0x106c')==typeof Symbol&&'symbol'==typeof Symbol[_0x4b4269('0x57b')]?function(_0x14e464){return typeof _0x14e464;}:function(_0x2b20b0){var _0x107fdd=_0x4b4269;return _0x2b20b0&&_0x107fdd('0x106c')==typeof Symbol&&_0x2b20b0['constructor']===Symbol&&_0x2b20b0!==Symbol['prototype']?'symbol':typeof _0x2b20b0;})(_0x552d73);}function _0x2f20fd(_0x13efce,_0x22e28f){var _0x501c40=_0x214213,_0xc3d8d9=Object[_0x501c40('0x110e')](_0x13efce);if(Object[_0x501c40('0x5e2')]){var _0x1e2d61=Object[_0x501c40('0x5e2')](_0x13efce);_0x22e28f&&(_0x1e2d61=_0x1e2d61[_0x501c40('0x562')](function(_0x2d4137){return Object['getOwnPropertyDescriptor'](_0x13efce,_0x2d4137)['enumerable'];})),_0xc3d8d9[_0x501c40('0x91b')]['apply'](_0xc3d8d9,_0x1e2d61);}return _0xc3d8d9;}function _0x433e84(_0x4ccf48){var _0x2b9c96=_0x214213;for(var _0x4bb63c=0x1;_0x4bb63c0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};_0x14dbdc[_0x1fa6d8('0x1089')]({'loading':!0x0});var _0x4dfc0e=_0x433e84({},_0x14dbdc[_0x1fa6d8('0x55d')][_0x1fa6d8('0x765')]);if(_0x14dbdc['props'][_0x1fa6d8('0xfb2')][_0x1fa6d8('0x3ad')])try{var _0x566e5b=_0x14dbdc[_0x1fa6d8('0x1136')][_0x1fa6d8('0xe80')][_0x1fa6d8('0xf7d')](_0x5d152c);_0x566e5b[_0x1fa6d8('0xa30')]?_0x14dbdc[_0x1fa6d8('0x1089')]({'loading':!0x1,'data':_0x566e5b[_0x1fa6d8('0xa30')],'pagination':_0x4dfc0e,'showLoading':!0x1}):_0x14dbdc['props'][_0x1fa6d8('0xe80')][_0x1fa6d8('0x79e')](_0x5d152c);}catch(_0x35be0e){_0x14dbdc[_0x1fa6d8('0x1136')][_0x1fa6d8('0xe80')][_0x1fa6d8('0x79e')](_0x5d152c);}_0x14dbdc[_0x1fa6d8('0x1136')][_0x1fa6d8('0xe80')][_0x1fa6d8('0xd12')](_0x5d152c)[_0x1fa6d8('0x10c6')](function(_0x42418a){var _0x369c2a=_0x1fa6d8;_0x4dfc0e['total']=_0x42418a[_0x369c2a('0x13c')],_0x14dbdc[_0x369c2a('0x1089')]({'loading':!0x1,'data':_0x42418a['items'],'pagination':_0x4dfc0e,'showLoading':!0x1,'fetchCompleted':!0x0});});},_0x14dbdc;}return _0x3cf706=_0xb67509,(_0x264737=[{'key':_0x584899('0x1054'),'value':function(){var _0x76cf21=_0x584899;_0x28283f[_0x76cf21('0x773')]['config']({'top':0x28}),this[_0x76cf21('0x1089')]({'fetchConfig':{'page':0x1},'pagination':{'pageSize':this[_0x76cf21('0x1136')][_0x76cf21('0xe80')][_0x76cf21('0xb89')]}});}},{'key':'setLoading','value':function(_0x2520b5){var _0x1b47f6=_0x584899;this[_0x1b47f6('0x1089')]({'loading':_0x2520b5});}},{'key':_0x584899('0xadb'),'value':function(_0x4480e1){var _0x520de4=_0x584899,_0x15a996=this;return _0x114c83[_0x520de4('0xf5f')][_0x520de4('0xb00')][_0x520de4('0xd8e')](this[_0x520de4('0x1136')][_0x520de4('0x60c')],function(_0x2a976d){var _0x3bd37a=_0x520de4,_0x347c0d={'element':_0x4480e1,'adapter':_0x15a996[_0x3bd37a('0x1136')][_0x3bd37a('0xfb2')],'loading':_0x15a996['state'][_0x3bd37a('0x8cd')]};return _0x114c83[_0x3bd37a('0xf5f')][_0x3bd37a('0x1027')](_0x2a976d)?_0x114c83[_0x3bd37a('0xf5f')]['cloneElement'](_0x2a976d,_0x347c0d):_0x2a976d;});}},{'key':_0x584899('0xb9b'),'value':function(){var _0x405c79=_0x584899,_0x3c60c4=this;return _0x114c83['default'][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0x79b')],{'direction':_0x405c79('0x952'),'style':{'width':_0x405c79('0x51f')}},!this[_0x405c79('0x55d')][_0x405c79('0x31')]&&_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f['Col'],{'span':0x18},_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0x79b')],{'gutter':0x18},_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0xd19')],{'span':0x12},_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0xfc')],null,this[_0x405c79('0x1136')][_0x405c79('0xfb2')][_0x405c79('0x809')](_0x405c79('0xb6'))&&this[_0x405c79('0x1136')][_0x405c79('0xfb2')][_0x405c79('0x7c')]()&&_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0x81a')],{'type':_0x405c79('0x1071'),'onClick':this[_0x405c79('0xe11')]},_0x114c83[_0x405c79('0xf5f')]['createElement'](_0xe06795[_0x405c79('0x715')],null),_0x405c79('0x34c')),this[_0x405c79('0x1136')][_0x405c79('0xfb2')]['getFilters']()&&_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0x81a')],{'onClick':this[_0x405c79('0xaef')]},_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0xe06795['FilterOutlined'],null),_0x405c79('0x23e')),this[_0x405c79('0x55d')][_0x405c79('0x4c7')]&&this[_0x405c79('0x1136')]['adapter'][_0x405c79('0x51c')]()&&null!=this['props'][_0x405c79('0xfb2')][_0x405c79('0x562')]&&this[_0x405c79('0x1136')]['adapter'][_0x405c79('0x562')]!==[]&&''!==this[_0x405c79('0x1136')]['adapter'][_0x405c79('0x562')]&&''!==this[_0x405c79('0x1136')][_0x405c79('0xfb2')][_0x405c79('0x76b')](this['props'][_0x405c79('0xfb2')][_0x405c79('0x562')])&&_0x114c83[_0x405c79('0xf5f')]['createElement'](_0x28283f['Tag'],{'closable':!0x0,'style':{'lineHeight':_0x405c79('0x4f9')},'color':_0x405c79('0x10a7'),'onClose':function(){var _0x393007=_0x405c79;return _0x3c60c4[_0x393007('0x1136')][_0x393007('0xfb2')][_0x393007('0xb53')]();},'visible':null!=this[_0x405c79('0x1136')][_0x405c79('0xfb2')][_0x405c79('0x562')]&&this[_0x405c79('0x1136')][_0x405c79('0xfb2')][_0x405c79('0x562')]!==[]&&''!==this[_0x405c79('0x1136')]['adapter'][_0x405c79('0x562')]},this[_0x405c79('0x1136')][_0x405c79('0xfb2')][_0x405c79('0x76b')](this[_0x405c79('0x1136')]['adapter'][_0x405c79('0x562')])))),_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0xd19')],{'span':0x6},_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0xe32')],{'ref':function(_0x48a64f){return _0x3c60c4['form']=_0x48a64f;},'name':_0x405c79('0xa1a'),'className':_0x405c79('0x32d')},_0x114c83['default']['createElement'](_0x28283f[_0x405c79('0xe32')]['Item'],{'name':'searchTerm','label':'','rules':[{'required':!0x1}]},_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x5bea37,{'placeholder':_0x405c79('0xd3b'),'enterButton':_0x405c79('0x9de'),'onSearch':function(_0x9f9d0e){return _0x3c60c4['search'](_0x9f9d0e);}}))))),_0x114c83[_0x405c79('0xf5f')][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0x79b')],{'gutter':0x18},_0x114c83['default'][_0x405c79('0xfa9')](_0x28283f[_0x405c79('0xd19')],{'span':0x18},_0x114c83['default']['createElement'](_0x28283f[_0x405c79('0xd49')],{'rowClassName':function(_0x2554b9,_0x4543f2){var _0x559110=_0x405c79;return _0x4543f2%0x2==0x0?'table-row-light':_0x559110('0x66f');},'columns':this[_0x405c79('0x1136')][_0x405c79('0x4b2')],'rowKey':function(_0x2e0e3f){return _0x2e0e3f['id'];},'dataSource':this['state'][_0x405c79('0x1016')],'pagination':this[_0x405c79('0x55d')][_0x405c79('0x765')],'loading':this[_0x405c79('0x55d')][_0x405c79('0x8cd')],'onChange':this[_0x405c79('0x4e6')],'reader':this[_0x405c79('0x1136')][_0x405c79('0xe70')]})))),this['state'][_0x405c79('0x31')]&&this[_0x405c79('0xadb')](this[_0x405c79('0x55d')]['currentElement']));}}])&&_0x31b435(_0x3cf706[_0x584899('0xe02')],_0x264737),_0x360b86&&_0x31b435(_0x3cf706,_0x360b86),_0xb67509;}(_0x114c83[_0x214213('0xf5f')][_0x214213('0x42')]);_0x4df0f0[_0x214213('0xf5f')]=_0x3485ce;},{'@ant-design/icons':_0x548f48('0x5b4'),'antd':'antd','react':'react'}],0x4e:[function(_0x2fbc8a,_0x5c1cdf,_0x59563e){var _0x38f1d4=_0x548f48;'use strict';Object[_0x38f1d4('0x9a5')](_0x59563e,'__esModule',{'value':!0x0}),_0x59563e['default']=void 0x0;var _0x269aa1,_0x1d9f52=(_0x269aa1=_0x2fbc8a(_0x38f1d4('0xb11')))&&_0x269aa1['__esModule']?_0x269aa1:{'default':_0x269aa1},_0x4cf4bf=_0x2fbc8a(_0x38f1d4('0x10d2')),_0x4e3320=_0x2fbc8a('@ant-design/icons');function _0x8dbb3d(_0x3d2d8f){var _0x29ca52=_0x38f1d4;return(_0x8dbb3d=_0x29ca52('0x106c')==typeof Symbol&&_0x29ca52('0x43c')==typeof Symbol['iterator']?function(_0x3d2870){return typeof _0x3d2870;}:function(_0x45aed9){var _0x5a33a5=_0x29ca52;return _0x45aed9&&_0x5a33a5('0x106c')==typeof Symbol&&_0x45aed9[_0x5a33a5('0xad1')]===Symbol&&_0x45aed9!==Symbol[_0x5a33a5('0xe02')]?_0x5a33a5('0x43c'):typeof _0x45aed9;})(_0x3d2d8f);}function _0x815c3e(){var _0x4ebdf7=_0x38f1d4;return(_0x815c3e=Object['assign']||function(_0x1c184e){var _0x786ff8=_0x5376;for(var _0x5d12b6=0x1;_0x5d12b6_0x8d354a['length'])&&(_0x1f4a9c=_0x8d354a[_0x5b489f('0x13')]);for(var _0x152497=0x0,_0x542d40=new Array(_0x1f4a9c);_0x152497<_0x1f4a9c;_0x152497++)_0x542d40[_0x152497]=_0x8d354a[_0x152497];return _0x542d40;}function _0x394572(_0x312bd3,_0x228322){var _0x53abde=_0x38f1d4;for(var _0x24382d=0x0;_0x24382d<_0x228322[_0x53abde('0x13')];_0x24382d++){var _0x37c797=_0x228322[_0x24382d];_0x37c797[_0x53abde('0x3bf')]=_0x37c797['enumerable']||!0x1,_0x37c797[_0x53abde('0x749')]=!0x0,_0x53abde('0x30')in _0x37c797&&(_0x37c797[_0x53abde('0x820')]=!0x0),Object[_0x53abde('0x9a5')](_0x312bd3,_0x37c797[_0x53abde('0x86f')],_0x37c797);}}function _0x2a4b0c(_0x5a1450,_0x141a31){var _0x6367d2=_0x38f1d4;return!_0x141a31||_0x6367d2('0xb3f')!==_0x8dbb3d(_0x141a31)&&'function'!=typeof _0x141a31?function(_0x1d79ad){var _0x2240e6=_0x6367d2;if(void 0x0===_0x1d79ad)throw new ReferenceError(_0x2240e6('0xe0d'));return _0x1d79ad;}(_0x5a1450):_0x141a31;}function _0x51e7d4(){var _0x336cc9=_0x38f1d4;if(_0x336cc9('0x449')==typeof Reflect||!Reflect[_0x336cc9('0x353')])return!0x1;if(Reflect[_0x336cc9('0x353')][_0x336cc9('0xb21')])return!0x1;if(_0x336cc9('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x336cc9('0xb6d')]['call'](Reflect[_0x336cc9('0x353')](Date,[],function(){})),!0x0;}catch(_0x16eef2){return!0x1;}}function _0x3e1c4f(_0x138ad9){var _0x4e4fce=_0x38f1d4;return(_0x3e1c4f=Object[_0x4e4fce('0x3df')]?Object[_0x4e4fce('0x2d9')]:function(_0x59f1b3){var _0x2cda13=_0x4e4fce;return _0x59f1b3[_0x2cda13('0x112c')]||Object['getPrototypeOf'](_0x59f1b3);})(_0x138ad9);}function _0x5d614b(_0x525474,_0x57f6b3){var _0x424b5a=_0x38f1d4;return(_0x5d614b=Object[_0x424b5a('0x3df')]||function(_0x24baee,_0x204770){var _0x3286a5=_0x424b5a;return _0x24baee[_0x3286a5('0x112c')]=_0x204770,_0x24baee;})(_0x525474,_0x57f6b3);}var _0x5d5fa2=function(_0x826334){var _0x3fa174=_0x38f1d4;!function(_0x1152d5,_0x31cd1c){var _0x3a0e80=_0x5376;if('function'!=typeof _0x31cd1c&&null!==_0x31cd1c)throw new TypeError(_0x3a0e80('0x5a0'));_0x1152d5[_0x3a0e80('0xe02')]=Object[_0x3a0e80('0xbd0')](_0x31cd1c&&_0x31cd1c[_0x3a0e80('0xe02')],{'constructor':{'value':_0x1152d5,'writable':!0x0,'configurable':!0x0}}),_0x31cd1c&&_0x5d614b(_0x1152d5,_0x31cd1c);}(_0x34d8e7,_0x826334);var _0x30fba7,_0x57ae68,_0x44c310,_0x57e2cb,_0x3de7a5=(_0x30fba7=_0x34d8e7,function(){var _0x3a8457=_0x5376,_0x163e33,_0xf3a3ee=_0x3e1c4f(_0x30fba7);if(_0x51e7d4()){var _0x4dd3df=_0x3e1c4f(this)[_0x3a8457('0xad1')];_0x163e33=Reflect[_0x3a8457('0x353')](_0xf3a3ee,arguments,_0x4dd3df);}else _0x163e33=_0xf3a3ee['apply'](this,arguments);return _0x2a4b0c(this,_0x163e33);});function _0x34d8e7(_0x30bd8e){var _0x15ee40=_0x5376,_0x43c1b0;return function(_0x2eaa2b,_0x412315){var _0x42c9c8=_0x5376;if(!(_0x2eaa2b instanceof _0x412315))throw new TypeError(_0x42c9c8('0xf98'));}(this,_0x34d8e7),(_0x43c1b0=_0x3de7a5[_0x15ee40('0xfd2')](this,_0x30bd8e))[_0x15ee40('0x55d')]={'fileList':[],'uploaded':!0x1},_0x43c1b0[_0x15ee40('0xc22')]=!0x1,_0x43c1b0[_0x15ee40('0x8a8')]=function(){var _0x53afd2=_0x15ee40;_0x43c1b0['setState']({'fileList':[],'value':null,'uploaded':!0x1}),_0x43c1b0[_0x53afd2('0x3f9')](null);},_0x43c1b0['handleView']=function(){var _0x15c800=_0x15ee40,_0x161aa9=_0x43c1b0[_0x15c800('0x1136')]['value'];(null!=_0x43c1b0[_0x15c800('0x55d')][_0x15c800('0x30')]&&''!==_0x43c1b0[_0x15c800('0x55d')][_0x15c800('0x30')]&&(_0x161aa9=_0x43c1b0[_0x15c800('0x55d')][_0x15c800('0x30')]),null!=_0x161aa9&&''!==_0x161aa9)?_0x43c1b0[_0x15c800('0x1136')][_0x15c800('0xfb2')][_0x15c800('0xbbd')](_0x161aa9)[_0x15c800('0x10c6')](function(_0x3c0782){var _0x22e7ec=_0x15c800,_0x34f7c3={'key':_0x3c0782[_0x22e7ec('0x10fc')],'uid':_0x3c0782[_0x22e7ec('0x10fc')],'name':_0x3c0782['name'],'status':_0x3c0782[_0x22e7ec('0x75e')],'url':_0x3c0782['filename']};window[_0x22e7ec('0xa99')](_0x34f7c3[_0x22e7ec('0x237')]);})[_0x15c800('0x10d0')](function(_0x4670a5){}):_0x4cf4bf['message'][_0x15c800('0x5bf')](_0x15c800('0x101c'));},_0x43c1b0[_0x15ee40('0x25e')]=function(_0x3cf98f){var _0x4c9dda=_0x15ee40,_0x5dcea1=_0x30a059(_0x3cf98f['fileList']);return 0x0===_0x5dcea1[_0x4c9dda('0x13')]?(_0x43c1b0[_0x4c9dda('0x1089')]({'value':null}),_0x43c1b0[_0x4c9dda('0x3f9')](null),_0x43c1b0['setState']({'fileList':[]}),void _0x43c1b0['setState']({'uploaded':!0x1})):(_0x5dcea1=_0x5dcea1[_0x4c9dda('0xdf1')](-0x1))[0x0]['response']&&_0x4c9dda('0x5bf')===_0x5dcea1[0x0]['response'][_0x4c9dda('0x75e')]?(_0x43c1b0['setState']({'value':null}),_0x43c1b0['onChange'](null),_0x43c1b0[_0x4c9dda('0x1089')]({'fileList':[]}),_0x43c1b0[_0x4c9dda('0x1089')]({'uploaded':!0x1}),void _0x4cf4bf[_0x4c9dda('0x773')][_0x4c9dda('0x5bf')](_0x4c9dda('0x101f')[_0x4c9dda('0xda9')](_0x5dcea1[0x0][_0x4c9dda('0x116b')]['message']))):(_0x5dcea1=_0x5dcea1['map'](function(_0x222f41){var _0x24800d=_0x4c9dda;return _0x222f41[_0x24800d('0x116b')]&&(_0x222f41['name']=_0x222f41[_0x24800d('0x116b')]['name'],_0x222f41[_0x24800d('0x237')]=_0x222f41[_0x24800d('0x116b')]['url']),_0x222f41;}),_0x43c1b0[_0x4c9dda('0x1089')]({'fileList':_0x5dcea1}),_0x43c1b0[_0x4c9dda('0x1089')]({'value':_0x43c1b0['getFileName'](_0x5dcea1),'uploaded':!0x0}),void _0x43c1b0[_0x4c9dda('0x3f9')](_0x43c1b0[_0x4c9dda('0xa1e')](_0x5dcea1)));},_0x43c1b0['onChange']=_0x30bd8e[_0x15ee40('0x3f9')],_0x43c1b0;}return _0x57ae68=_0x34d8e7,(_0x44c310=[{'key':_0x3fa174('0x1054'),'value':function(){var _0x204416=_0x3fa174;this[_0x204416('0xc22')]=!0x0,_0x4cf4bf[_0x204416('0x773')][_0x204416('0xb55')]({'top':0x37,'duration':0x2});}},{'key':'componentWillUnmount','value':function(){var _0x235886=_0x3fa174;this[_0x235886('0xc22')]=!0x1;}},{'key':'getFileName','value':function(_0x377a08){var _0xf3fdf8=_0x3fa174,_0xffc845=null;return _0x377a08&&(_0xffc845=_0x377a08[0x0]),_0xffc845?_0xffc845[_0xf3fdf8('0x3ea')]:'';}},{'key':_0x3fa174('0xed8'),'value':function(_0x477062){var _0x47e6c9=_0x3fa174;for(var _0x3ecd50=new Date(),_0x3f3af3=_0x47e6c9('0x4bc'),_0x27cd22='',_0x40240b=_0x477062;_0x40240b>0x0;--_0x40240b)_0x27cd22+=_0x3f3af3[Math['round'](Math[_0x47e6c9('0xa72')]()*(_0x3f3af3['length']-0x1))];return _0x27cd22+_0x3ecd50[_0x47e6c9('0x4a2')]();}},{'key':_0x3fa174('0xb9b'),'value':function(){var _0x4ed318=_0x3fa174,_0x1fca72=this[_0x4ed318('0xed8')](0xe),_0x18711f={'action':''['concat'](window[_0x4ed318('0x1e4')],_0x4ed318('0x89d'))[_0x4ed318('0xda9')](this[_0x4ed318('0x1136')][_0x4ed318('0x34b')],_0x4ed318('0x4fa'))[_0x4ed318('0xda9')](this[_0x4ed318('0x1136')][_0x4ed318('0x47a')],_0x4ed318('0x828'))[_0x4ed318('0xda9')](_0x1fca72),'onChange':this[_0x4ed318('0x25e')],'onRemove':this[_0x4ed318('0x8a8')],'multiple':!0x1,'listType':'picture'};return _0x1d9f52['default']['createElement'](_0x4cf4bf[_0x4ed318('0xfc')],{'direction':_0x4ed318('0x952')},!this[_0x4ed318('0x1136')]['readOnly']&&_0x1d9f52['default']['createElement'](_0x4cf4bf[_0x4ed318('0xfc')],null,_0x1d9f52['default'][_0x4ed318('0xfa9')](_0x4cf4bf[_0x4ed318('0xe33')],_0x815c3e({},_0x18711f,{'fileList':this[_0x4ed318('0x55d')][_0x4ed318('0xb16')]}),_0x1d9f52[_0x4ed318('0xf5f')][_0x4ed318('0xfa9')](_0x4cf4bf[_0x4ed318('0x9ca')],{'color':_0x4ed318('0x10a7'),'style':{'cursor':'pointer'}},_0x1d9f52['default']['createElement'](_0x4e3320[_0x4ed318('0x2')],null),'\x20','Upload'))),_0x1d9f52['default'][_0x4ed318('0xfa9')](_0x4cf4bf[_0x4ed318('0xfc')],null,(null!=this[_0x4ed318('0x1136')][_0x4ed318('0x30')]&&''!==this[_0x4ed318('0x1136')][_0x4ed318('0x30')]||null!=this['state'][_0x4ed318('0x30')]&&''!==this[_0x4ed318('0x55d')][_0x4ed318('0x30')])&&!this[_0x4ed318('0x55d')][_0x4ed318('0x1164')]&&_0x1d9f52[_0x4ed318('0xf5f')][_0x4ed318('0xfa9')](_0x4cf4bf[_0x4ed318('0x81a')],{'type':'link','htmlType':_0x4ed318('0xa46'),'onClick':this[_0x4ed318('0x4e2')]},_0x1d9f52['default'][_0x4ed318('0xfa9')](_0x4e3320[_0x4ed318('0x26')],null),_0x4ed318('0x2df')),(null!=this[_0x4ed318('0x1136')][_0x4ed318('0x30')]&&''!==this[_0x4ed318('0x1136')]['value']||null!=this[_0x4ed318('0x55d')][_0x4ed318('0x30')]&&''!==this['state']['value'])&&!this[_0x4ed318('0x55d')]['uploaded']&&!this['props'][_0x4ed318('0x1134')]&&_0x1d9f52[_0x4ed318('0xf5f')]['createElement'](_0x4cf4bf[_0x4ed318('0x81a')],{'type':_0x4ed318('0x61b'),'htmlType':_0x4ed318('0xa46'),'danger':!0x0,'onClick':this[_0x4ed318('0x8a8')]},_0x1d9f52[_0x4ed318('0xf5f')][_0x4ed318('0xfa9')](_0x4e3320['DeleteOutlined'],null),_0x4ed318('0x9a7'))));}}])&&_0x394572(_0x57ae68[_0x3fa174('0xe02')],_0x44c310),_0x57e2cb&&_0x394572(_0x57ae68,_0x57e2cb),_0x34d8e7;}(_0x1d9f52[_0x38f1d4('0xf5f')][_0x38f1d4('0x42')]);_0x59563e[_0x38f1d4('0xf5f')]=_0x5d5fa2;},{'@ant-design/icons':_0x548f48('0x5b4'),'antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11')}],0x4f:[function(_0x3addc4,_0x2a36f2,_0x1418fa){var _0x35d020=_0x548f48;'use strict';Object[_0x35d020('0x9a5')](_0x1418fa,_0x35d020('0xce5'),{'value':!0x0}),_0x1418fa[_0x35d020('0xf5f')]=void 0x0;var _0x13d611,_0x1cf635=(_0x13d611=_0x3addc4(_0x35d020('0xb11')))&&_0x13d611[_0x35d020('0xce5')]?_0x13d611:{'default':_0x13d611},_0x4c7096=_0x3addc4(_0x35d020('0x10d2'));function _0x4953ba(_0x3f2f68){var _0x3ba1d2=_0x35d020;return(_0x4953ba=_0x3ba1d2('0x106c')==typeof Symbol&&_0x3ba1d2('0x43c')==typeof Symbol[_0x3ba1d2('0x57b')]?function(_0x40ca53){return typeof _0x40ca53;}:function(_0x44c907){var _0x195e5d=_0x3ba1d2;return _0x44c907&&_0x195e5d('0x106c')==typeof Symbol&&_0x44c907['constructor']===Symbol&&_0x44c907!==Symbol[_0x195e5d('0xe02')]?'symbol':typeof _0x44c907;})(_0x3f2f68);}function _0x1cc06d(_0x58043f,_0x224424){var _0x52c8dd=_0x35d020;for(var _0x218d75=0x0;_0x218d75<_0x224424[_0x52c8dd('0x13')];_0x218d75++){var _0x87279d=_0x224424[_0x218d75];_0x87279d['enumerable']=_0x87279d[_0x52c8dd('0x3bf')]||!0x1,_0x87279d['configurable']=!0x0,_0x52c8dd('0x30')in _0x87279d&&(_0x87279d[_0x52c8dd('0x820')]=!0x0),Object[_0x52c8dd('0x9a5')](_0x58043f,_0x87279d['key'],_0x87279d);}}function _0x266c2f(_0x3ebc58,_0x4b1cd1){var _0x116029=_0x35d020;return!_0x4b1cd1||_0x116029('0xb3f')!==_0x4953ba(_0x4b1cd1)&&_0x116029('0x106c')!=typeof _0x4b1cd1?function(_0x495427){var _0x1e0770=_0x116029;if(void 0x0===_0x495427)throw new ReferenceError(_0x1e0770('0xe0d'));return _0x495427;}(_0x3ebc58):_0x4b1cd1;}function _0x48dd74(){var _0x5a2de2=_0x35d020;if(_0x5a2de2('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x5a2de2('0x353')]['sham'])return!0x1;if(_0x5a2de2('0x106c')==typeof Proxy)return!0x0;try{return Date['prototype']['toString'][_0x5a2de2('0xfd2')](Reflect[_0x5a2de2('0x353')](Date,[],function(){})),!0x0;}catch(_0x534730){return!0x1;}}function _0x5132df(_0x250f4c){var _0x1900cf=_0x35d020;return(_0x5132df=Object[_0x1900cf('0x3df')]?Object[_0x1900cf('0x2d9')]:function(_0x4dca36){var _0x24848f=_0x1900cf;return _0x4dca36[_0x24848f('0x112c')]||Object[_0x24848f('0x2d9')](_0x4dca36);})(_0x250f4c);}function _0x1ef921(_0x5bfec1,_0x29ec47){var _0x75d1fa=_0x35d020;return(_0x1ef921=Object[_0x75d1fa('0x3df')]||function(_0x73482d,_0x5abb92){return _0x73482d['__proto__']=_0x5abb92,_0x73482d;})(_0x5bfec1,_0x29ec47);}var _0x480c05=function(_0x433967){var _0x5c17a2=_0x35d020;!function(_0x22093a,_0x17ca72){var _0x47cf15=_0x5376;if(_0x47cf15('0x106c')!=typeof _0x17ca72&&null!==_0x17ca72)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x22093a[_0x47cf15('0xe02')]=Object[_0x47cf15('0xbd0')](_0x17ca72&&_0x17ca72[_0x47cf15('0xe02')],{'constructor':{'value':_0x22093a,'writable':!0x0,'configurable':!0x0}}),_0x17ca72&&_0x1ef921(_0x22093a,_0x17ca72);}(_0x46bee4,_0x433967);var _0x5cddd2,_0x396151,_0x41e66e,_0x46cba4,_0x30ea0e=(_0x5cddd2=_0x46bee4,function(){var _0x1127ec=_0x5376,_0x24945e,_0x58ddf1=_0x5132df(_0x5cddd2);if(_0x48dd74()){var _0x1a23cc=_0x5132df(this)['constructor'];_0x24945e=Reflect[_0x1127ec('0x353')](_0x58ddf1,arguments,_0x1a23cc);}else _0x24945e=_0x58ddf1[_0x1127ec('0x2be')](this,arguments);return _0x266c2f(this,_0x24945e);});function _0x46bee4(_0x46f3ec){var _0x2ed9fc=_0x5376,_0x1ed4b1;return function(_0x23f90,_0xd8b6b8){var _0x50fe03=_0x5376;if(!(_0x23f90 instanceof _0xd8b6b8))throw new TypeError(_0x50fe03('0xf98'));}(this,_0x46bee4),(_0x1ed4b1=_0x30ea0e[_0x2ed9fc('0xfd2')](this,_0x46f3ec))['state']={'tags':[],'loading':!0x0},_0x1ed4b1;}return _0x396151=_0x46bee4,(_0x41e66e=[{'key':_0x5c17a2('0x1054'),'value':function(){var _0x154b03=_0x5c17a2;this[_0x154b03('0x7ff')]();}},{'key':_0x5c17a2('0x7ff'),'value':function(){var _0xc48280=_0x5c17a2,_0x328e7d=this;this[_0xc48280('0x1089')]({'loading':!0x0}),this[_0xc48280('0x1136')][_0xc48280('0xc83')][_0xc48280('0xd12')](this[_0xc48280('0x1136')][_0xc48280('0x237')])[_0xc48280('0x10c6')](function(_0x32c4e3){var _0x518ddf=_0xc48280,_0x374646=_0x32c4e3[_0x518ddf('0x1016')]['data'][_0x518ddf('0xd8e')](_0x328e7d['props']['extractTag']);_0x328e7d[_0x518ddf('0x1089')]({'tags':_0x374646,'loading':!0x1});});}},{'key':_0x5c17a2('0xb9b'),'value':function(){var _0x3d94e7=_0x5c17a2,_0x22b2d3=this;return _0x1cf635[_0x3d94e7('0xf5f')][_0x3d94e7('0xfa9')]('div',{'style':{'display':_0x3d94e7('0x8f6'),'textOverflow':'ellipsis','whiteSpace':_0x3d94e7('0xa4d'),'overflow':_0x3d94e7('0x10f4'),'width':'100%'}},this[_0x3d94e7('0x55d')][_0x3d94e7('0x8cd')]&&_0x1cf635[_0x3d94e7('0xf5f')]['createElement'](_0x4c7096[_0x3d94e7('0xed')],{'active':!0x0}),!this['state'][_0x3d94e7('0x8cd')]&&this[_0x3d94e7('0x55d')][_0x3d94e7('0xe6b')][_0x3d94e7('0xd8e')](function(_0x434caa,_0x801845){var _0x26499d=_0x3d94e7;return _0x22b2d3[_0x26499d('0x1136')][_0x26499d('0xb9b')]?_0x22b2d3[_0x26499d('0x1136')]['render'](_0x434caa):_0x1cf635[_0x26499d('0xf5f')][_0x26499d('0xfa9')](_0x26499d('0x26c'),{'key':'p'[_0x26499d('0xda9')](_0x801845)},_0x1cf635[_0x26499d('0xf5f')][_0x26499d('0xfa9')](_0x4c7096[_0x26499d('0x9ca')],{'color':_0x22b2d3[_0x26499d('0x1136')][_0x26499d('0xbcf')],'key':_0x801845,'style':{'margin':_0x26499d('0xd65')}},_0x434caa),_0x1cf635['default'][_0x26499d('0xfa9')]('br',null));}));}}])&&_0x1cc06d(_0x396151[_0x5c17a2('0xe02')],_0x41e66e),_0x46cba4&&_0x1cc06d(_0x396151,_0x46cba4),_0x46bee4;}(_0x1cf635[_0x35d020('0xf5f')][_0x35d020('0x42')]);_0x1418fa[_0x35d020('0xf5f')]=_0x480c05;},{'antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11')}],0x50:[function(_0x384c94,_0x5417ed,_0x49cdae){var _0x21d6de=_0x548f48;'use strict';Object[_0x21d6de('0x9a5')](_0x49cdae,_0x21d6de('0xce5'),{'value':!0x0}),_0x49cdae[_0x21d6de('0xf5f')]=void 0x0;var _0x550eb0,_0x31496d=(_0x550eb0=_0x384c94(_0x21d6de('0xb11')))&&_0x550eb0[_0x21d6de('0xce5')]?_0x550eb0:{'default':_0x550eb0},_0x5a85d3=_0x384c94(_0x21d6de('0x10d2')),_0x244388=_0x384c94(_0x21d6de('0x5b4'));function _0x370003(_0x5507a4){var _0x3093fa=_0x21d6de;return(_0x370003=_0x3093fa('0x106c')==typeof Symbol&&_0x3093fa('0x43c')==typeof Symbol['iterator']?function(_0x5de55a){return typeof _0x5de55a;}:function(_0x14107f){var _0x13aa07=_0x3093fa;return _0x14107f&&_0x13aa07('0x106c')==typeof Symbol&&_0x14107f[_0x13aa07('0xad1')]===Symbol&&_0x14107f!==Symbol[_0x13aa07('0xe02')]?_0x13aa07('0x43c'):typeof _0x14107f;})(_0x5507a4);}function _0x9da5cf(_0x1c664b,_0x57f80e){var _0x596689=_0x21d6de;for(var _0x335b9c=0x0;_0x335b9c<_0x57f80e[_0x596689('0x13')];_0x335b9c++){var _0x44deac=_0x57f80e[_0x335b9c];_0x44deac[_0x596689('0x3bf')]=_0x44deac['enumerable']||!0x1,_0x44deac[_0x596689('0x749')]=!0x0,'value'in _0x44deac&&(_0x44deac[_0x596689('0x820')]=!0x0),Object[_0x596689('0x9a5')](_0x1c664b,_0x44deac[_0x596689('0x86f')],_0x44deac);}}function _0x2d4f00(_0x266a01,_0x485633){var _0x28882d=_0x21d6de;return!_0x485633||_0x28882d('0xb3f')!==_0x370003(_0x485633)&&_0x28882d('0x106c')!=typeof _0x485633?function(_0x505231){var _0x5ec2d7=_0x28882d;if(void 0x0===_0x505231)throw new ReferenceError(_0x5ec2d7('0xe0d'));return _0x505231;}(_0x266a01):_0x485633;}function _0x36c9d2(){var _0x1eb5ec=_0x21d6de;if(_0x1eb5ec('0x449')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x1eb5ec('0x353')]['sham'])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date['prototype'][_0x1eb5ec('0xb6d')][_0x1eb5ec('0xfd2')](Reflect[_0x1eb5ec('0x353')](Date,[],function(){})),!0x0;}catch(_0x4e64eb){return!0x1;}}function _0x73314b(_0x32bac9){var _0x2b585b=_0x21d6de;return(_0x73314b=Object[_0x2b585b('0x3df')]?Object['getPrototypeOf']:function(_0x541b3c){var _0x3fb0e2=_0x2b585b;return _0x541b3c['__proto__']||Object[_0x3fb0e2('0x2d9')](_0x541b3c);})(_0x32bac9);}function _0x168a90(_0x10c3de,_0x5408e9){return(_0x168a90=Object['setPrototypeOf']||function(_0x395281,_0x226c28){var _0x35fba0=_0x5376;return _0x395281[_0x35fba0('0x112c')]=_0x226c28,_0x395281;})(_0x10c3de,_0x5408e9);}var _0x1939b9=_0x5a85d3[_0x21d6de('0x89e')][_0x21d6de('0x673')],_0x3179be=function(_0x4b0e55){var _0x12c514=_0x21d6de;!function(_0x3d9c1b,_0x3fe8a7){var _0x53615e=_0x5376;if(_0x53615e('0x106c')!=typeof _0x3fe8a7&&null!==_0x3fe8a7)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x3d9c1b[_0x53615e('0xe02')]=Object[_0x53615e('0xbd0')](_0x3fe8a7&&_0x3fe8a7[_0x53615e('0xe02')],{'constructor':{'value':_0x3d9c1b,'writable':!0x0,'configurable':!0x0}}),_0x3fe8a7&&_0x168a90(_0x3d9c1b,_0x3fe8a7);}(_0x5d92fc,_0x4b0e55);var _0x13d55b,_0x20902c,_0x23b801,_0xc0b8ab,_0x1d137b=(_0x13d55b=_0x5d92fc,function(){var _0x5cc8f8=_0x5376,_0x5727e0,_0x5692fd=_0x73314b(_0x13d55b);if(_0x36c9d2()){var _0x3ac43d=_0x73314b(this)[_0x5cc8f8('0xad1')];_0x5727e0=Reflect[_0x5cc8f8('0x353')](_0x5692fd,arguments,_0x3ac43d);}else _0x5727e0=_0x5692fd[_0x5cc8f8('0x2be')](this,arguments);return _0x2d4f00(this,_0x5727e0);});function _0x5d92fc(_0x1f4df4){var _0x3b6227=_0x5376,_0x4a4969;return function(_0x2b76e4,_0x2abdb6){if(!(_0x2b76e4 instanceof _0x2abdb6))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0x5d92fc),(_0x4a4969=_0x1d137b[_0x3b6227('0xfd2')](this,_0x1f4df4))[_0x3b6227('0x55d')]={'tasks':[],'showAll':!0x1},_0x4a4969[_0x3b6227('0x55d')]['tasks']=_0x4a4969[_0x3b6227('0x1136')][_0x3b6227('0xe6e')][_0x3b6227('0xd8e')](function(_0x3346f6){return!0x1;}),_0x4a4969;}return _0x20902c=_0x5d92fc,(_0x23b801=[{'key':_0x12c514('0xb9b'),'value':function(){var _0x5272ee=_0x12c514;return this[_0x5272ee('0x7b7')](0x4);}},{'key':_0x12c514('0x7b7'),'value':function(_0x530d82){var _0x100dce=_0x12c514,_0x11e96b=this,_0x258896=this[_0x100dce('0x1136')][_0x100dce('0xe6e')]['slice'](0x0,_0x530d82);return _0x31496d['default'][_0x100dce('0xfa9')](_0x31496d[_0x100dce('0xf5f')][_0x100dce('0x18f')],null,_0x31496d[_0x100dce('0xf5f')]['createElement'](_0x5a85d3[_0x100dce('0xfc')],{'direction':_0x100dce('0x952'),'size':_0x100dce('0xf96'),'style':{'width':_0x100dce('0x51f')}},this[_0x100dce('0x1136')][_0x100dce('0xe6e')]&&this[_0x100dce('0x1136')][_0x100dce('0xe6e')][_0x100dce('0x13')]>0x0&&_0x31496d['default'][_0x100dce('0xfa9')](_0x5a85d3[_0x100dce('0xfc')],{'direction':_0x100dce('0x952'),'style':{'width':_0x100dce('0x51f')}},_0x31496d[_0x100dce('0xf5f')]['createElement'](_0x5a85d3[_0x100dce('0x88b')],{'style':{'width':_0x100dce('0x51f')}},_0x258896[_0x100dce('0xd8e')](function(_0x3ac20e,_0x25bb2d){return _0x11e96b['createTask'](_0x3ac20e,_0x25bb2d);})),this[_0x100dce('0x1136')][_0x100dce('0xe6e')]['length']>_0x530d82&&_0x31496d['default'][_0x100dce('0xfa9')](_0x5a85d3['Button'],{'type':'primary','onClick':function(){return _0x11e96b['showAllTasks']();}},_0x100dce('0x96e'),'\x20',this[_0x100dce('0x1136')][_0x100dce('0xe6e')]['length'],'\x20','Tasks')),this[_0x100dce('0x1136')][_0x100dce('0xe6e')]&&0x0===this['props']['tasks'][_0x100dce('0x13')]&&_0x31496d[_0x100dce('0xf5f')][_0x100dce('0xfa9')](_0x5a85d3[_0x100dce('0x5cd')],{'description':_0x100dce('0x882')})),_0x31496d[_0x100dce('0xf5f')][_0x100dce('0xfa9')](_0x5a85d3[_0x100dce('0x775')],{'title':'Task\x20List','width':0x1d6,'onClose':function(){var _0x5c8092=_0x100dce;return _0x11e96b[_0x5c8092('0x380')]();},'visible':this[_0x100dce('0x55d')][_0x100dce('0xbab')],'bodyStyle':{'paddingBottom':0x50},'zIndex':0x4b0,'maskClosable':!0x1},_0x31496d[_0x100dce('0xf5f')][_0x100dce('0xfa9')](_0x5a85d3[_0x100dce('0x88b')],{'style':{'width':_0x100dce('0x51f')}},this[_0x100dce('0x1136')]['tasks'][_0x100dce('0xd8e')](function(_0x3c8fd1,_0x655166){return _0x11e96b['createTask'](_0x3c8fd1,_0x655166);}))));}},{'key':'visitLink','value':function(_0x4686ea){setTimeout(function(){var _0x14ad89=_0x5376;window[_0x14ad89('0xa99')](_0x4686ea);},0x64);}},{'key':'handleTaskHover','value':function(_0x1d5710){var _0x1c7e1d=_0x12c514;this[_0x1c7e1d('0x1089')]({'tasks':this[_0x1c7e1d('0x1136')][_0x1c7e1d('0xe6e')]['map'](function(_0x19fae3,_0x252b33){return _0x1d5710===_0x252b33;})});}},{'key':_0x12c514('0x437'),'value':function(_0x444c98,_0x5c1c67){var _0x2dbfea=_0x12c514,_0x4b5087=this;return 0x64===_0x444c98[_0x2dbfea('0xe6c')]?_0x31496d[_0x2dbfea('0xf5f')][_0x2dbfea('0xfa9')](_0x5a85d3[_0x2dbfea('0x88b')][_0x2dbfea('0x5ac')],{'onMouseEnter':function(){return _0x4b5087['handleTaskHover'](_0x5c1c67);},'dot':_0x31496d['default'][_0x2dbfea('0xfa9')](_0x244388[_0x2dbfea('0x10f1')],{'style':{'fontSize':'16px'}}),'color':'red'},this[_0x2dbfea('0x663')](_0x444c98),_0x444c98[_0x2dbfea('0x61b')]&&this['state'][_0x2dbfea('0xe6e')][_0x5c1c67]&&_0x31496d['default'][_0x2dbfea('0xfa9')](_0x5a85d3[_0x2dbfea('0x81a')],{'type':'link','onClick':function(){var _0x4e5283=_0x2dbfea;return _0x4b5087[_0x4e5283('0xc5f')](_0x444c98[_0x4e5283('0x61b')]);}},_0x31496d['default'][_0x2dbfea('0xfa9')](_0x244388['MedicineBoxOutlined'],{'style':{'fontSize':_0x2dbfea('0x91')}}),'\x20',_0x444c98[_0x2dbfea('0x5fe')])):0x32===_0x444c98[_0x2dbfea('0xe6c')]?_0x31496d['default'][_0x2dbfea('0xfa9')](_0x5a85d3['Timeline']['Item'],{'onMouseEnter':function(){var _0x49213c=_0x2dbfea;return _0x4b5087[_0x49213c('0x1150')](_0x5c1c67);},'dot':_0x31496d['default'][_0x2dbfea('0xfa9')](_0x244388[_0x2dbfea('0xb7b')],{'style':{'fontSize':_0x2dbfea('0x91')}}),'color':_0x2dbfea('0x10a7')},this[_0x2dbfea('0x663')](_0x444c98),_0x444c98[_0x2dbfea('0x61b')]&&this[_0x2dbfea('0x55d')][_0x2dbfea('0xe6e')][_0x5c1c67]&&_0x31496d[_0x2dbfea('0xf5f')]['createElement'](_0x5a85d3['Button'],{'type':'link','onClick':function(){var _0x17aa63=_0x2dbfea;return _0x4b5087[_0x17aa63('0xc5f')](_0x444c98[_0x17aa63('0x61b')]);}},_0x31496d[_0x2dbfea('0xf5f')]['createElement'](_0x244388[_0x2dbfea('0x3ce')],{'style':{'fontSize':_0x2dbfea('0x91')}}),'\x20',_0x444c98[_0x2dbfea('0x5fe')])):0x14===_0x444c98['priority']?_0x31496d[_0x2dbfea('0xf5f')][_0x2dbfea('0xfa9')](_0x5a85d3[_0x2dbfea('0x88b')][_0x2dbfea('0x5ac')],{'onMouseEnter':function(){var _0x11c843=_0x2dbfea;return _0x4b5087[_0x11c843('0x1150')](_0x5c1c67);},'dot':_0x31496d['default'][_0x2dbfea('0xfa9')](_0x244388[_0x2dbfea('0x715')],{'style':{'fontSize':_0x2dbfea('0x91')}}),'color':_0x2dbfea('0x10a7')},this['getText'](_0x444c98),_0x444c98[_0x2dbfea('0x61b')]&&this[_0x2dbfea('0x55d')][_0x2dbfea('0xe6e')][_0x5c1c67]&&_0x31496d[_0x2dbfea('0xf5f')][_0x2dbfea('0xfa9')](_0x5a85d3[_0x2dbfea('0x81a')],{'type':_0x2dbfea('0x61b'),'onClick':function(){var _0x32d0e2=_0x2dbfea;return _0x4b5087[_0x32d0e2('0xc5f')](_0x444c98['link']);}},_0x31496d[_0x2dbfea('0xf5f')][_0x2dbfea('0xfa9')](_0x244388[_0x2dbfea('0x3ce')],{'style':{'fontSize':_0x2dbfea('0x91')}}),'\x20',_0x444c98[_0x2dbfea('0x5fe')])):0xa===_0x444c98[_0x2dbfea('0xe6c')]?_0x31496d[_0x2dbfea('0xf5f')]['createElement'](_0x5a85d3[_0x2dbfea('0x88b')][_0x2dbfea('0x5ac')],{'onMouseEnter':function(){var _0xe491de=_0x2dbfea;return _0x4b5087[_0xe491de('0x1150')](_0x5c1c67);},'dot':_0x31496d['default'][_0x2dbfea('0xfa9')](_0x244388[_0x2dbfea('0xb4a')],{'style':{'fontSize':_0x2dbfea('0x91')}}),'color':'green'},this[_0x2dbfea('0x663')](_0x444c98),_0x444c98[_0x2dbfea('0x61b')]&&this[_0x2dbfea('0x55d')][_0x2dbfea('0xe6e')][_0x5c1c67]&&_0x31496d[_0x2dbfea('0xf5f')]['createElement'](_0x5a85d3[_0x2dbfea('0x81a')],{'type':_0x2dbfea('0x61b'),'onClick':function(){var _0x11cb3a=_0x2dbfea;return _0x4b5087['visitLink'](_0x444c98[_0x11cb3a('0x61b')]);}},_0x31496d[_0x2dbfea('0xf5f')][_0x2dbfea('0xfa9')](_0x244388[_0x2dbfea('0x3ce')],{'style':{'fontSize':_0x2dbfea('0x91')}}),'\x20',_0x444c98[_0x2dbfea('0x5fe')])):void 0x0;}},{'key':_0x12c514('0x663'),'value':function(_0xfbe770){var _0x509564=_0x12c514;return _0xfbe770[_0x509564('0x1093')]?_0x31496d[_0x509564('0xf5f')][_0x509564('0xfa9')](_0x5a85d3[_0x509564('0x33e')],{'content':_0xfbe770[_0x509564('0x1093')]},_0x31496d[_0x509564('0xf5f')][_0x509564('0xfa9')](_0x1939b9,{'ellipsis':{'rows':0x1,'expandable':!0x0}},_0xfbe770[_0x509564('0x5b2')])):_0x31496d[_0x509564('0xf5f')]['createElement'](_0x1939b9,{'ellipsis':{'rows':0x1,'expandable':!0x0}},_0xfbe770[_0x509564('0x5b2')]);}},{'key':_0x12c514('0x5cc'),'value':function(){var _0x5c630a=_0x12c514;this[_0x5c630a('0x1089')]({'showAll':!0x0});}},{'key':_0x12c514('0x380'),'value':function(){this['setState']({'showAll':!0x1});}}])&&_0x9da5cf(_0x20902c[_0x12c514('0xe02')],_0x23b801),_0xc0b8ab&&_0x9da5cf(_0x20902c,_0xc0b8ab),_0x5d92fc;}(_0x31496d[_0x21d6de('0xf5f')][_0x21d6de('0x42')]);_0x49cdae[_0x21d6de('0xf5f')]=_0x3179be;},{'@ant-design/icons':_0x548f48('0x5b4'),'antd':_0x548f48('0x10d2'),'react':_0x548f48('0xb11')}],0x51:[function(_0x54b712,_0x1518a1,_0x465a41){var _0x190d64=_0x548f48;'use strict';Object['defineProperty'](_0x465a41,'__esModule',{'value':!0x0});var _0x2b3c10,_0x3c496b=Object[_0x190d64('0x1060')]||function(_0x529f0a){var _0x505a08=_0x190d64;for(var _0x5ecc6a=0x1;_0x5ecc6a=0x0||Object[_0xeb8825('0xe02')]['hasOwnProperty'][_0xeb8825('0xfd2')](_0x2cb8e4,_0x4c8d2a)&&(_0x13c8e2[_0x4c8d2a]=_0x2cb8e4[_0x4c8d2a]);return _0x13c8e2;}(_0x55a06e,[_0x1cbb2a('0x348'),_0x1cbb2a('0x115'),_0x1cbb2a('0x27b'),_0x1cbb2a('0xe81')]);return _0x69d5c7[_0x1cbb2a('0xf5f')][_0x1cbb2a('0xfa9')](_0x1cbb2a('0x557'),_0x3c496b({'viewBox':_0x1cbb2a('0x178'),'style':_0x3c496b({'fill':_0x442d10,'width':_0x17e8ee,'height':_0x2ac0ba},_0x17d91e)},_0x363da6),_0x69d5c7['default'][_0x1cbb2a('0xfa9')](_0x1cbb2a('0xebb'),{'d':'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z'}));};},{'react':_0x548f48('0xb11')}],0x52:[function(_0x2d1d62,_0x139ea5,_0x2fc834){var _0x802897=_0x548f48;'use strict';Object['defineProperty'](_0x2fc834,'__esModule',{'value':!0x0});var _0x406c22,_0x5318c0=Object[_0x802897('0x1060')]||function(_0x20ae28){var _0x560f22=_0x802897;for(var _0x457f06=0x1;_0x457f06=0x0||Object[_0x2ee2c1('0xe02')][_0x2ee2c1('0xe9c')][_0x2ee2c1('0xfd2')](_0x384e02,_0x19be59)&&(_0x3280d5[_0x19be59]=_0x384e02[_0x19be59]);return _0x3280d5;}(_0x16a6b2,[_0x48c2a9('0x348'),_0x48c2a9('0x115'),'height',_0x48c2a9('0xe81')]);return _0x10fb58['default'][_0x48c2a9('0xfa9')](_0x48c2a9('0x557'),_0x5318c0({'viewBox':'0\x200\x2024\x2024','style':_0x5318c0({'fill':_0x127a85,'width':_0x599cfc,'height':_0x3f712b},_0x2114a2)},_0x42ba32),_0x10fb58[_0x48c2a9('0xf5f')][_0x48c2a9('0xfa9')]('path',{'d':_0x48c2a9('0x6a5')}));};},{'react':_0x548f48('0xb11')}],0x53:[function(_0x5db2ea,_0x33a99a,_0x2818f1){var _0x303d1d=_0x548f48;_0x33a99a['exports']=_0x5db2ea(_0x303d1d('0x273'));},{'./lib/axios':0x55}],0x54:[function(_0xe52e16,_0x305ddd,_0x654f86){var _0x139e9b=_0x548f48;'use strict';var _0x538355=_0xe52e16(_0x139e9b('0xf74')),_0x457d9b=_0xe52e16(_0x139e9b('0xa40')),_0xf09ab7=_0xe52e16('./../helpers/cookies'),_0x23a7ae=_0xe52e16(_0x139e9b('0x780')),_0x2e6e91=_0xe52e16(_0x139e9b('0xb9d')),_0xd45642=_0xe52e16(_0x139e9b('0x72d')),_0x37f8bf=_0xe52e16('./../helpers/isURLSameOrigin'),_0x234e17=_0xe52e16('../core/createError');_0x305ddd[_0x139e9b('0x64')]=function(_0x48d884){return new Promise(function(_0x4d1fa6,_0x1c31b6){var _0x3e32aa=_0x5376,_0x30f6b6=_0x48d884[_0x3e32aa('0x1016')],_0x5a50af=_0x48d884[_0x3e32aa('0xe42')];_0x538355[_0x3e32aa('0x9bb')](_0x30f6b6)&&delete _0x5a50af['Content-Type'],(_0x538355['isBlob'](_0x30f6b6)||_0x538355[_0x3e32aa('0x421')](_0x30f6b6))&&_0x30f6b6[_0x3e32aa('0x921')]&&delete _0x5a50af[_0x3e32aa('0x704')];var _0x62f092=new XMLHttpRequest();if(_0x48d884['auth']){var _0x1371bf=_0x48d884[_0x3e32aa('0x8f7')][_0x3e32aa('0xdd0')]||'',_0x4b3f9d=unescape(encodeURIComponent(_0x48d884['auth'][_0x3e32aa('0x4f5')]))||'';_0x5a50af[_0x3e32aa('0x2b')]=_0x3e32aa('0xbf')+btoa(_0x1371bf+':'+_0x4b3f9d);}var _0x5c4376=_0x2e6e91(_0x48d884[_0x3e32aa('0x612')],_0x48d884[_0x3e32aa('0x237')]);if(_0x62f092[_0x3e32aa('0xa99')](_0x48d884[_0x3e32aa('0xbac')][_0x3e32aa('0xa56')](),_0x23a7ae(_0x5c4376,_0x48d884[_0x3e32aa('0xfcb')],_0x48d884[_0x3e32aa('0x459')]),!0x0),_0x62f092[_0x3e32aa('0x2b9')]=_0x48d884[_0x3e32aa('0x2b9')],_0x62f092[_0x3e32aa('0xdd9')]=function(){var _0x57caa3=_0x3e32aa;if(_0x62f092&&0x4===_0x62f092['readyState']&&(0x0!==_0x62f092[_0x57caa3('0x75e')]||_0x62f092[_0x57caa3('0x92')]&&0x0===_0x62f092['responseURL'][_0x57caa3('0xf00')](_0x57caa3('0x439')))){var _0x49e5cf=_0x57caa3('0x319')in _0x62f092?_0xd45642(_0x62f092[_0x57caa3('0x319')]()):null,_0x299498={'data':_0x48d884[_0x57caa3('0xa12')]&&_0x57caa3('0x5b2')!==_0x48d884[_0x57caa3('0xa12')]?_0x62f092[_0x57caa3('0x116b')]:_0x62f092[_0x57caa3('0xe92')],'status':_0x62f092[_0x57caa3('0x75e')],'statusText':_0x62f092['statusText'],'headers':_0x49e5cf,'config':_0x48d884,'request':_0x62f092};_0x457d9b(_0x4d1fa6,_0x1c31b6,_0x299498),_0x62f092=null;}},_0x62f092[_0x3e32aa('0xec7')]=function(){var _0x588997=_0x3e32aa;_0x62f092&&(_0x1c31b6(_0x234e17(_0x588997('0x8c9'),_0x48d884,_0x588997('0x1049'),_0x62f092)),_0x62f092=null);},_0x62f092[_0x3e32aa('0x101b')]=function(){var _0x228da7=_0x3e32aa;_0x1c31b6(_0x234e17(_0x228da7('0x2b2'),_0x48d884,null,_0x62f092)),_0x62f092=null;},_0x62f092['ontimeout']=function(){var _0x36dc6a=_0x3e32aa,_0x2fe1de=_0x36dc6a('0xf78')+_0x48d884[_0x36dc6a('0x2b9')]+_0x36dc6a('0xaf');_0x48d884[_0x36dc6a('0x1053')]&&(_0x2fe1de=_0x48d884[_0x36dc6a('0x1053')]),_0x1c31b6(_0x234e17(_0x2fe1de,_0x48d884,_0x36dc6a('0x1049'),_0x62f092)),_0x62f092=null;},_0x538355[_0x3e32aa('0xcd5')]()){var _0x32b961=(_0x48d884['withCredentials']||_0x37f8bf(_0x5c4376))&&_0x48d884[_0x3e32aa('0xddf')]?_0xf09ab7[_0x3e32aa('0xb64')](_0x48d884[_0x3e32aa('0xddf')]):void 0x0;_0x32b961&&(_0x5a50af[_0x48d884[_0x3e32aa('0xa45')]]=_0x32b961);}if(_0x3e32aa('0x6cf')in _0x62f092&&_0x538355['forEach'](_0x5a50af,function(_0x585aa9,_0x1c5622){var _0x493f2f=_0x3e32aa;void 0x0===_0x30f6b6&&_0x493f2f('0x5ff')===_0x1c5622[_0x493f2f('0x371')]()?delete _0x5a50af[_0x1c5622]:_0x62f092[_0x493f2f('0x6cf')](_0x1c5622,_0x585aa9);}),_0x538355[_0x3e32aa('0x567')](_0x48d884[_0x3e32aa('0xee3')])||(_0x62f092[_0x3e32aa('0xee3')]=!!_0x48d884['withCredentials']),_0x48d884[_0x3e32aa('0xa12')])try{_0x62f092[_0x3e32aa('0xa12')]=_0x48d884[_0x3e32aa('0xa12')];}catch(_0x53f3c5){if(_0x3e32aa('0xf1b')!==_0x48d884[_0x3e32aa('0xa12')])throw _0x53f3c5;}_0x3e32aa('0x106c')==typeof _0x48d884[_0x3e32aa('0x8e3')]&&_0x62f092[_0x3e32aa('0x363')](_0x3e32aa('0x1061'),_0x48d884[_0x3e32aa('0x8e3')]),_0x3e32aa('0x106c')==typeof _0x48d884[_0x3e32aa('0x9f1')]&&_0x62f092['upload']&&_0x62f092[_0x3e32aa('0xcf')][_0x3e32aa('0x363')](_0x3e32aa('0x1061'),_0x48d884[_0x3e32aa('0x9f1')]),_0x48d884[_0x3e32aa('0x41c')]&&_0x48d884[_0x3e32aa('0x41c')][_0x3e32aa('0x42c')]['then'](function(_0x4504ae){var _0x4436f9=_0x3e32aa;_0x62f092&&(_0x62f092[_0x4436f9('0x254')](),_0x1c31b6(_0x4504ae),_0x62f092=null);}),_0x30f6b6||(_0x30f6b6=null),_0x62f092['send'](_0x30f6b6);});};},{'../core/buildFullPath':0x5b,'../core/createError':0x5c,'./../core/settle':0x60,'./../helpers/buildURL':0x64,'./../helpers/cookies':0x66,'./../helpers/isURLSameOrigin':0x68,'./../helpers/parseHeaders':0x6a,'./../utils':0x6c}],0x55:[function(_0x5f245b,_0x48ba9a,_0x6e3ba3){var _0x4c89d0=_0x548f48;'use strict';var _0x11cea7=_0x5f245b(_0x4c89d0('0x95d')),_0x292f88=_0x5f245b(_0x4c89d0('0x8e5')),_0x28eace=_0x5f245b(_0x4c89d0('0xa2c')),_0x27d3de=_0x5f245b(_0x4c89d0('0xf88'));function _0x555c12(_0x1a9125){var _0x355919=_0x4c89d0,_0x4719b1=new _0x28eace(_0x1a9125),_0xd222f8=_0x292f88(_0x28eace[_0x355919('0xe02')][_0x355919('0xb4e')],_0x4719b1);return _0x11cea7['extend'](_0xd222f8,_0x28eace[_0x355919('0xe02')],_0x4719b1),_0x11cea7[_0x355919('0x73')](_0xd222f8,_0x4719b1),_0xd222f8;}var _0x39d3e9=_0x555c12(_0x5f245b(_0x4c89d0('0x6a7')));_0x39d3e9['Axios']=_0x28eace,_0x39d3e9[_0x4c89d0('0xbd0')]=function(_0x477f60){var _0x2b8b6f=_0x4c89d0;return _0x555c12(_0x27d3de(_0x39d3e9[_0x2b8b6f('0xd88')],_0x477f60));},_0x39d3e9['Cancel']=_0x5f245b(_0x4c89d0('0x3cf')),_0x39d3e9[_0x4c89d0('0xc8c')]=_0x5f245b(_0x4c89d0('0xed1')),_0x39d3e9['isCancel']=_0x5f245b(_0x4c89d0('0x100d')),_0x39d3e9[_0x4c89d0('0x6bc')]=function(_0x4fadb7){return Promise['all'](_0x4fadb7);},_0x39d3e9[_0x4c89d0('0x7e9')]=_0x5f245b('./helpers/spread'),_0x48ba9a['exports']=_0x39d3e9,_0x48ba9a[_0x4c89d0('0x64')]['default']=_0x39d3e9;},{'./cancel/Cancel':0x56,'./cancel/CancelToken':0x57,'./cancel/isCancel':0x58,'./core/Axios':0x59,'./core/mergeConfig':0x5f,'./defaults':0x62,'./helpers/bind':0x63,'./helpers/spread':0x6b,'./utils':0x6c}],0x56:[function(_0x200970,_0x981add,_0x294a8d){var _0x797bc8=_0x548f48;'use strict';function _0x2fa5e9(_0x419f9e){var _0x12a3db=_0x5376;this[_0x12a3db('0x773')]=_0x419f9e;}_0x2fa5e9[_0x797bc8('0xe02')][_0x797bc8('0xb6d')]=function(){var _0x2acd7b=_0x797bc8;return _0x2acd7b('0xb68')+(this[_0x2acd7b('0x773')]?':\x20'+this[_0x2acd7b('0x773')]:'');},_0x2fa5e9[_0x797bc8('0xe02')][_0x797bc8('0xc25')]=!0x0,_0x981add[_0x797bc8('0x64')]=_0x2fa5e9;},{}],0x57:[function(_0x11de27,_0x4cf55,_0x32fa5e){var _0x24aedd=_0x548f48;'use strict';var _0x3cb8eb=_0x11de27(_0x24aedd('0xa08'));function _0x54668c(_0x4e4941){var _0x3ebd3f=_0x24aedd;if(_0x3ebd3f('0x106c')!=typeof _0x4e4941)throw new TypeError(_0x3ebd3f('0x4fe'));var _0x28e4de;this[_0x3ebd3f('0x42c')]=new Promise(function(_0x36fb2d){_0x28e4de=_0x36fb2d;});var _0x30ed8f=this;_0x4e4941(function(_0x4b2767){var _0x47c6bb=_0x3ebd3f;_0x30ed8f[_0x47c6bb('0x3de')]||(_0x30ed8f['reason']=new _0x3cb8eb(_0x4b2767),_0x28e4de(_0x30ed8f[_0x47c6bb('0x3de')]));});}_0x54668c['prototype'][_0x24aedd('0x1151')]=function(){var _0x2d8ebd=_0x24aedd;if(this[_0x2d8ebd('0x3de')])throw this[_0x2d8ebd('0x3de')];},_0x54668c['source']=function(){var _0x4233ae;return{'token':new _0x54668c(function(_0x3eab91){_0x4233ae=_0x3eab91;}),'cancel':_0x4233ae};},_0x4cf55[_0x24aedd('0x64')]=_0x54668c;},{'./Cancel':0x56}],0x58:[function(_0x27fa29,_0x24b457,_0x9ae9e4){var _0x178f08=_0x548f48;'use strict';_0x24b457[_0x178f08('0x64')]=function(_0x25cf56){var _0xdb8f06=_0x178f08;return!(!_0x25cf56||!_0x25cf56[_0xdb8f06('0xc25')]);};},{}],0x59:[function(_0xfe23f,_0x585235,_0xabcaea){var _0x541167=_0x548f48;'use strict';var _0x86286e=_0xfe23f('./../utils'),_0x5e85b3=_0xfe23f(_0x541167('0x6cb')),_0x2781ca=_0xfe23f(_0x541167('0xfae')),_0x3f8ae6=_0xfe23f(_0x541167('0xacb')),_0x1061e4=_0xfe23f('./mergeConfig');function _0x56d0fa(_0x3c62fb){var _0x39ced6=_0x541167;this['defaults']=_0x3c62fb,this[_0x39ced6('0x227')]={'request':new _0x2781ca(),'response':new _0x2781ca()};}_0x56d0fa[_0x541167('0xe02')][_0x541167('0xb4e')]=function(_0x17807a){var _0x3f5bb4=_0x541167;_0x3f5bb4('0x2fd')==typeof _0x17807a?(_0x17807a=arguments[0x1]||{})['url']=arguments[0x0]:_0x17807a=_0x17807a||{},(_0x17807a=_0x1061e4(this['defaults'],_0x17807a))[_0x3f5bb4('0xbac')]?_0x17807a[_0x3f5bb4('0xbac')]=_0x17807a[_0x3f5bb4('0xbac')][_0x3f5bb4('0x371')]():this[_0x3f5bb4('0xd88')][_0x3f5bb4('0xbac')]?_0x17807a[_0x3f5bb4('0xbac')]=this[_0x3f5bb4('0xd88')]['method'][_0x3f5bb4('0x371')]():_0x17807a[_0x3f5bb4('0xbac')]=_0x3f5bb4('0xd12');var _0x246d92=[_0x3f8ae6,void 0x0],_0x2ca9f5=Promise[_0x3f5bb4('0xa7')](_0x17807a);for(this[_0x3f5bb4('0x227')][_0x3f5bb4('0xb4e')]['forEach'](function(_0x2fec5f){var _0xf70d8f=_0x3f5bb4;_0x246d92[_0xf70d8f('0xff1')](_0x2fec5f['fulfilled'],_0x2fec5f[_0xf70d8f('0xac1')]);}),this[_0x3f5bb4('0x227')]['response'][_0x3f5bb4('0xb77')](function(_0x469b3c){var _0x3397b2=_0x3f5bb4;_0x246d92['push'](_0x469b3c['fulfilled'],_0x469b3c[_0x3397b2('0xac1')]);});_0x246d92[_0x3f5bb4('0x13')];)_0x2ca9f5=_0x2ca9f5[_0x3f5bb4('0x10c6')](_0x246d92['shift'](),_0x246d92[_0x3f5bb4('0xf30')]());return _0x2ca9f5;},_0x56d0fa[_0x541167('0xe02')][_0x541167('0xc2f')]=function(_0x15bbe8){var _0x1405a7=_0x541167;return _0x15bbe8=_0x1061e4(this[_0x1405a7('0xd88')],_0x15bbe8),_0x5e85b3(_0x15bbe8[_0x1405a7('0x237')],_0x15bbe8['params'],_0x15bbe8['paramsSerializer'])[_0x1405a7('0xd06')](/^\?/,'');},_0x86286e[_0x541167('0xb77')]([_0x541167('0x41d'),_0x541167('0xd12'),'head',_0x541167('0x29d')],function(_0x57b950){var _0x4dc6f1=_0x541167;_0x56d0fa[_0x4dc6f1('0xe02')][_0x57b950]=function(_0x31558b,_0x4c4b37){return this['request'](_0x1061e4(_0x4c4b37||{},{'method':_0x57b950,'url':_0x31558b}));};}),_0x86286e[_0x541167('0xb77')]([_0x541167('0xcce'),_0x541167('0xcb8'),'patch'],function(_0xe4052d){var _0x2930b9=_0x541167;_0x56d0fa[_0x2930b9('0xe02')][_0xe4052d]=function(_0x5e0e26,_0x28ebc3,_0x338567){var _0x568dab=_0x2930b9;return this[_0x568dab('0xb4e')](_0x1061e4(_0x338567||{},{'method':_0xe4052d,'url':_0x5e0e26,'data':_0x28ebc3}));};}),_0x585235[_0x541167('0x64')]=_0x56d0fa;},{'../helpers/buildURL':0x64,'./../utils':0x6c,'./InterceptorManager':0x5a,'./dispatchRequest':0x5d,'./mergeConfig':0x5f}],0x5a:[function(_0x586d51,_0x7862ac,_0x170c9b){var _0x2767c8=_0x548f48;'use strict';var _0x46c690=_0x586d51('./../utils');function _0x7e8300(){this['handlers']=[];}_0x7e8300[_0x2767c8('0xe02')][_0x2767c8('0xebc')]=function(_0xf30434,_0x3384d6){var _0x14d811=_0x2767c8;return this[_0x14d811('0x4d')]['push']({'fulfilled':_0xf30434,'rejected':_0x3384d6}),this['handlers'][_0x14d811('0x13')]-0x1;},_0x7e8300[_0x2767c8('0xe02')]['eject']=function(_0x3cfc5d){var _0x36bde7=_0x2767c8;this[_0x36bde7('0x4d')][_0x3cfc5d]&&(this[_0x36bde7('0x4d')][_0x3cfc5d]=null);},_0x7e8300[_0x2767c8('0xe02')][_0x2767c8('0xb77')]=function(_0x2b4de8){var _0x269ee3=_0x2767c8;_0x46c690[_0x269ee3('0xb77')](this['handlers'],function(_0xfc61b6){null!==_0xfc61b6&&_0x2b4de8(_0xfc61b6);});},_0x7862ac[_0x2767c8('0x64')]=_0x7e8300;},{'./../utils':0x6c}],0x5b:[function(_0x43958b,_0x53676c,_0xee74a9){var _0xcb8b7d=_0x548f48;'use strict';var _0xf6052=_0x43958b(_0xcb8b7d('0x53')),_0xca60a9=_0x43958b(_0xcb8b7d('0x6a6'));_0x53676c[_0xcb8b7d('0x64')]=function(_0x5c15bd,_0x2f2b4){return _0x5c15bd&&!_0xf6052(_0x2f2b4)?_0xca60a9(_0x5c15bd,_0x2f2b4):_0x2f2b4;};},{'../helpers/combineURLs':0x65,'../helpers/isAbsoluteURL':0x67}],0x5c:[function(_0x4f434e,_0x31258,_0x44a240){var _0x783da1=_0x548f48;'use strict';var _0x368aa5=_0x4f434e(_0x783da1('0xaf2'));_0x31258[_0x783da1('0x64')]=function(_0x1ae2b8,_0x4583be,_0x30d692,_0x462627,_0x35736b){var _0x14020e=new Error(_0x1ae2b8);return _0x368aa5(_0x14020e,_0x4583be,_0x30d692,_0x462627,_0x35736b);};},{'./enhanceError':0x5e}],0x5d:[function(_0x57475a,_0xd4328,_0xbdf860){var _0x1c1aef=_0x548f48;'use strict';var _0x262fa8=_0x57475a(_0x1c1aef('0xf74')),_0x4e3498=_0x57475a('./transformData'),_0x3e6b0c=_0x57475a('../cancel/isCancel'),_0x228fe7=_0x57475a(_0x1c1aef('0xb29'));function _0x16bc8d(_0x53808a){var _0x331f33=_0x1c1aef;_0x53808a[_0x331f33('0x41c')]&&_0x53808a[_0x331f33('0x41c')][_0x331f33('0x1151')]();}_0xd4328[_0x1c1aef('0x64')]=function(_0x425a1f){var _0x5e744a=_0x1c1aef;return _0x16bc8d(_0x425a1f),_0x425a1f[_0x5e744a('0xe42')]=_0x425a1f[_0x5e744a('0xe42')]||{},_0x425a1f[_0x5e744a('0x1016')]=_0x4e3498(_0x425a1f[_0x5e744a('0x1016')],_0x425a1f[_0x5e744a('0xe42')],_0x425a1f[_0x5e744a('0x796')]),_0x425a1f['headers']=_0x262fa8[_0x5e744a('0xd97')](_0x425a1f[_0x5e744a('0xe42')][_0x5e744a('0x8c1')]||{},_0x425a1f['headers'][_0x425a1f[_0x5e744a('0xbac')]]||{},_0x425a1f[_0x5e744a('0xe42')]),_0x262fa8['forEach']([_0x5e744a('0x41d'),_0x5e744a('0xd12'),_0x5e744a('0x116a'),_0x5e744a('0xcce'),_0x5e744a('0xcb8'),_0x5e744a('0x10c2'),'common'],function(_0x2e5503){delete _0x425a1f['headers'][_0x2e5503];}),(_0x425a1f[_0x5e744a('0xfb2')]||_0x228fe7['adapter'])(_0x425a1f)[_0x5e744a('0x10c6')](function(_0x3606da){var _0x4b39ce=_0x5e744a;return _0x16bc8d(_0x425a1f),_0x3606da['data']=_0x4e3498(_0x3606da[_0x4b39ce('0x1016')],_0x3606da['headers'],_0x425a1f[_0x4b39ce('0xee1')]),_0x3606da;},function(_0x4f266f){var _0x288272=_0x5e744a;return _0x3e6b0c(_0x4f266f)||(_0x16bc8d(_0x425a1f),_0x4f266f&&_0x4f266f[_0x288272('0x116b')]&&(_0x4f266f[_0x288272('0x116b')][_0x288272('0x1016')]=_0x4e3498(_0x4f266f[_0x288272('0x116b')][_0x288272('0x1016')],_0x4f266f[_0x288272('0x116b')][_0x288272('0xe42')],_0x425a1f[_0x288272('0xee1')]))),Promise[_0x288272('0x2ab')](_0x4f266f);});};},{'../cancel/isCancel':0x58,'../defaults':0x62,'./../utils':0x6c,'./transformData':0x61}],0x5e:[function(_0x2cc326,_0x160bf8,_0x1e94ee){var _0x3c79e7=_0x548f48;'use strict';_0x160bf8[_0x3c79e7('0x64')]=function(_0x1f36ef,_0x9ee407,_0x2dd939,_0x43fe8f,_0x1d0d91){var _0x4d7945=_0x3c79e7;return _0x1f36ef[_0x4d7945('0xb55')]=_0x9ee407,_0x2dd939&&(_0x1f36ef[_0x4d7945('0x9e3')]=_0x2dd939),_0x1f36ef[_0x4d7945('0xb4e')]=_0x43fe8f,_0x1f36ef[_0x4d7945('0x116b')]=_0x1d0d91,_0x1f36ef[_0x4d7945('0x876')]=!0x0,_0x1f36ef[_0x4d7945('0xb5d')]=function(){var _0x3a78d1=_0x4d7945;return{'message':this[_0x3a78d1('0x773')],'name':this[_0x3a78d1('0x3ea')],'description':this[_0x3a78d1('0x903')],'number':this['number'],'fileName':this[_0x3a78d1('0x3ee')],'lineNumber':this[_0x3a78d1('0xcc3')],'columnNumber':this['columnNumber'],'stack':this[_0x3a78d1('0xea4')],'config':this[_0x3a78d1('0xb55')],'code':this['code']};},_0x1f36ef;};},{}],0x5f:[function(_0x38f363,_0x14d482,_0x461768){var _0x4f4d91=_0x548f48;'use strict';var _0x2a8592=_0x38f363(_0x4f4d91('0x98f'));_0x14d482[_0x4f4d91('0x64')]=function(_0x1ae19b,_0x27a19e){var _0x541d5d=_0x4f4d91;_0x27a19e=_0x27a19e||{};var _0x44cb22={},_0x1a0d51=[_0x541d5d('0x237'),_0x541d5d('0xbac'),_0x541d5d('0x1016')],_0x3a3b94=[_0x541d5d('0xe42'),_0x541d5d('0x8f7'),'proxy','params'],_0x1875e7=['baseURL',_0x541d5d('0x796'),_0x541d5d('0xee1'),_0x541d5d('0x459'),_0x541d5d('0x2b9'),'timeoutMessage',_0x541d5d('0xee3'),_0x541d5d('0xfb2'),_0x541d5d('0xa12'),_0x541d5d('0xddf'),_0x541d5d('0xa45'),_0x541d5d('0x9f1'),'onDownloadProgress',_0x541d5d('0x9b3'),'maxContentLength',_0x541d5d('0x4f'),_0x541d5d('0xe99'),_0x541d5d('0xef4'),'httpAgent',_0x541d5d('0xda8'),'cancelToken',_0x541d5d('0x272'),_0x541d5d('0x22d')],_0x5538f4=[_0x541d5d('0xa81')];function _0x40f98e(_0x4da23f,_0x35b1a6){var _0x2e5dba=_0x541d5d;return _0x2a8592[_0x2e5dba('0xd7c')](_0x4da23f)&&_0x2a8592[_0x2e5dba('0xd7c')](_0x35b1a6)?_0x2a8592[_0x2e5dba('0xd97')](_0x4da23f,_0x35b1a6):_0x2a8592[_0x2e5dba('0xd7c')](_0x35b1a6)?_0x2a8592['merge']({},_0x35b1a6):_0x2a8592[_0x2e5dba('0xb66')](_0x35b1a6)?_0x35b1a6[_0x2e5dba('0xdf1')]():_0x35b1a6;}function _0x1658e9(_0x43be77){_0x2a8592['isUndefined'](_0x27a19e[_0x43be77])?_0x2a8592['isUndefined'](_0x1ae19b[_0x43be77])||(_0x44cb22[_0x43be77]=_0x40f98e(void 0x0,_0x1ae19b[_0x43be77])):_0x44cb22[_0x43be77]=_0x40f98e(_0x1ae19b[_0x43be77],_0x27a19e[_0x43be77]);}_0x2a8592[_0x541d5d('0xb77')](_0x1a0d51,function(_0x332c19){_0x2a8592['isUndefined'](_0x27a19e[_0x332c19])||(_0x44cb22[_0x332c19]=_0x40f98e(void 0x0,_0x27a19e[_0x332c19]));}),_0x2a8592[_0x541d5d('0xb77')](_0x3a3b94,_0x1658e9),_0x2a8592[_0x541d5d('0xb77')](_0x1875e7,function(_0xccf1b1){_0x2a8592['isUndefined'](_0x27a19e[_0xccf1b1])?_0x2a8592['isUndefined'](_0x1ae19b[_0xccf1b1])||(_0x44cb22[_0xccf1b1]=_0x40f98e(void 0x0,_0x1ae19b[_0xccf1b1])):_0x44cb22[_0xccf1b1]=_0x40f98e(void 0x0,_0x27a19e[_0xccf1b1]);}),_0x2a8592[_0x541d5d('0xb77')](_0x5538f4,function(_0x56029e){_0x56029e in _0x27a19e?_0x44cb22[_0x56029e]=_0x40f98e(_0x1ae19b[_0x56029e],_0x27a19e[_0x56029e]):_0x56029e in _0x1ae19b&&(_0x44cb22[_0x56029e]=_0x40f98e(void 0x0,_0x1ae19b[_0x56029e]));});var _0xc9cb33=_0x1a0d51[_0x541d5d('0xda9')](_0x3a3b94)['concat'](_0x1875e7)[_0x541d5d('0xda9')](_0x5538f4),_0x22cea4=Object[_0x541d5d('0x110e')](_0x1ae19b)['concat'](Object['keys'](_0x27a19e))[_0x541d5d('0x562')](function(_0x111aba){var _0x1e0519=_0x541d5d;return-0x1===_0xc9cb33[_0x1e0519('0xf00')](_0x111aba);});return _0x2a8592[_0x541d5d('0xb77')](_0x22cea4,_0x1658e9),_0x44cb22;};},{'../utils':0x6c}],0x60:[function(_0x183df6,_0x4464df,_0x4e2fcf){'use strict';var _0xd9b4db=_0x183df6('./createError');_0x4464df['exports']=function(_0x558b49,_0x21ec03,_0x4e5329){var _0x51ba93=_0x5376,_0x35fa7d=_0x4e5329['config'][_0x51ba93('0xa81')];_0x4e5329['status']&&_0x35fa7d&&!_0x35fa7d(_0x4e5329['status'])?_0x21ec03(_0xd9b4db(_0x51ba93('0xd61')+_0x4e5329['status'],_0x4e5329[_0x51ba93('0xb55')],null,_0x4e5329['request'],_0x4e5329)):_0x558b49(_0x4e5329);};},{'./createError':0x5c}],0x61:[function(_0xe85af8,_0x182e7a,_0x11d305){var _0x1589bf=_0x548f48;'use strict';var _0x532f4e=_0xe85af8(_0x1589bf('0xf74'));_0x182e7a[_0x1589bf('0x64')]=function(_0x36ba99,_0x1a9213,_0x1b1f58){var _0x32c939=_0x1589bf;return _0x532f4e[_0x32c939('0xb77')](_0x1b1f58,function(_0x5abdee){_0x36ba99=_0x5abdee(_0x36ba99,_0x1a9213);}),_0x36ba99;};},{'./../utils':0x6c}],0x62:[function(_0x2e0e67,_0x19a5b1,_0x1aa285){var _0x12ecad=_0x548f48;(function(_0x3df198){var _0x2ea920=_0x5376;'use strict';var _0x5b0a77=_0x2e0e67(_0x2ea920('0x95d')),_0x529723=_0x2e0e67(_0x2ea920('0x128')),_0x142922={'Content-Type':'application/x-www-form-urlencoded'};function _0x2facfc(_0x1c37e2,_0x2c6270){var _0x625c38=_0x2ea920;!_0x5b0a77[_0x625c38('0x567')](_0x1c37e2)&&_0x5b0a77[_0x625c38('0x567')](_0x1c37e2[_0x625c38('0x704')])&&(_0x1c37e2[_0x625c38('0x704')]=_0x2c6270);}var _0x4ca827,_0x21288d={'adapter':(_0x2ea920('0x449')!=typeof XMLHttpRequest?_0x4ca827=_0x2e0e67(_0x2ea920('0x161')):void 0x0!==_0x3df198&&_0x2ea920('0xaf5')===Object[_0x2ea920('0xe02')]['toString'][_0x2ea920('0xfd2')](_0x3df198)&&(_0x4ca827=_0x2e0e67(_0x2ea920('0x47'))),_0x4ca827),'transformRequest':[function(_0x591b48,_0x3ebcca){var _0x444e24=_0x2ea920;return _0x529723(_0x3ebcca,'Accept'),_0x529723(_0x3ebcca,_0x444e24('0x704')),_0x5b0a77[_0x444e24('0x9bb')](_0x591b48)||_0x5b0a77[_0x444e24('0xe22')](_0x591b48)||_0x5b0a77[_0x444e24('0x1bf')](_0x591b48)||_0x5b0a77[_0x444e24('0x97a')](_0x591b48)||_0x5b0a77[_0x444e24('0x421')](_0x591b48)||_0x5b0a77[_0x444e24('0xd59')](_0x591b48)?_0x591b48:_0x5b0a77[_0x444e24('0x31e')](_0x591b48)?_0x591b48[_0x444e24('0x112b')]:_0x5b0a77[_0x444e24('0x6b')](_0x591b48)?(_0x2facfc(_0x3ebcca,_0x444e24('0x173')),_0x591b48[_0x444e24('0xb6d')]()):_0x5b0a77[_0x444e24('0xf3e')](_0x591b48)?(_0x2facfc(_0x3ebcca,_0x444e24('0xe71')),JSON[_0x444e24('0xf0b')](_0x591b48)):_0x591b48;}],'transformResponse':[function(_0x463eb2){var _0x41f9f4=_0x2ea920;if('string'==typeof _0x463eb2)try{_0x463eb2=JSON[_0x41f9f4('0x104a')](_0x463eb2);}catch(_0x4fcc8e){}return _0x463eb2;}],'timeout':0x0,'xsrfCookieName':_0x2ea920('0x1b9'),'xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-0x1,'maxBodyLength':-0x1,'validateStatus':function(_0x457751){return _0x457751>=0xc8&&_0x457751<0x12c;}};_0x21288d[_0x2ea920('0xe42')]={'common':{'Accept':_0x2ea920('0x754')}},_0x5b0a77[_0x2ea920('0xb77')]([_0x2ea920('0x41d'),_0x2ea920('0xd12'),_0x2ea920('0x116a')],function(_0x2a0a85){var _0x41ad40=_0x2ea920;_0x21288d[_0x41ad40('0xe42')][_0x2a0a85]={};}),_0x5b0a77[_0x2ea920('0xb77')]([_0x2ea920('0xcce'),_0x2ea920('0xcb8'),_0x2ea920('0x10c2')],function(_0x180568){var _0x1edde4=_0x2ea920;_0x21288d['headers'][_0x180568]=_0x5b0a77[_0x1edde4('0xd97')](_0x142922);}),_0x19a5b1['exports']=_0x21288d;}['call'](this,_0x2e0e67(_0x12ecad('0x1c8'))));},{'./adapters/http':0x54,'./adapters/xhr':0x54,'./helpers/normalizeHeaderName':0x69,'./utils':0x6c,'_process':0x1}],0x63:[function(_0x9fb3ee,_0x46fb05,_0x8b2999){var _0x1ea302=_0x548f48;'use strict';_0x46fb05[_0x1ea302('0x64')]=function(_0x39f582,_0x4acc76){return function(){var _0x2e2264=_0x5376;for(var _0x305f99=new Array(arguments[_0x2e2264('0x13')]),_0x2e6c3b=0x0;_0x2e6c3b<_0x305f99[_0x2e2264('0x13')];_0x2e6c3b++)_0x305f99[_0x2e6c3b]=arguments[_0x2e6c3b];return _0x39f582['apply'](_0x4acc76,_0x305f99);};};},{}],0x64:[function(_0xbeb7d1,_0x1948ac,_0x444bbd){var _0x58d6f9=_0x548f48;'use strict';var _0x3f0308=_0xbeb7d1(_0x58d6f9('0xf74'));function _0x5cc3d5(_0x39acb8){var _0x290207=_0x58d6f9;return encodeURIComponent(_0x39acb8)[_0x290207('0xd06')](/%3A/gi,':')[_0x290207('0xd06')](/%24/g,'$')['replace'](/%2C/gi,',')[_0x290207('0xd06')](/%20/g,'+')['replace'](/%5B/gi,'[')[_0x290207('0xd06')](/%5D/gi,']');}_0x1948ac[_0x58d6f9('0x64')]=function(_0x31b7d3,_0x21f5a0,_0x596f2f){var _0xcbce45=_0x58d6f9;if(!_0x21f5a0)return _0x31b7d3;var _0x5c4493;if(_0x596f2f)_0x5c4493=_0x596f2f(_0x21f5a0);else{if(_0x3f0308['isURLSearchParams'](_0x21f5a0))_0x5c4493=_0x21f5a0['toString']();else{var _0x3c90e6=[];_0x3f0308[_0xcbce45('0xb77')](_0x21f5a0,function(_0x5a7548,_0xe4397e){var _0x1f285f=_0xcbce45;null!=_0x5a7548&&(_0x3f0308[_0x1f285f('0xb66')](_0x5a7548)?_0xe4397e+='[]':_0x5a7548=[_0x5a7548],_0x3f0308[_0x1f285f('0xb77')](_0x5a7548,function(_0x49d043){var _0x43e049=_0x1f285f;_0x3f0308[_0x43e049('0xf03')](_0x49d043)?_0x49d043=_0x49d043[_0x43e049('0x253')]():_0x3f0308[_0x43e049('0xf3e')](_0x49d043)&&(_0x49d043=JSON[_0x43e049('0xf0b')](_0x49d043)),_0x3c90e6[_0x43e049('0x91b')](_0x5cc3d5(_0xe4397e)+'='+_0x5cc3d5(_0x49d043));}));}),_0x5c4493=_0x3c90e6[_0xcbce45('0x2e2')]('&');}}if(_0x5c4493){var _0x3abad2=_0x31b7d3[_0xcbce45('0xf00')]('#');-0x1!==_0x3abad2&&(_0x31b7d3=_0x31b7d3[_0xcbce45('0xdf1')](0x0,_0x3abad2)),_0x31b7d3+=(-0x1===_0x31b7d3[_0xcbce45('0xf00')]('?')?'?':'&')+_0x5c4493;}return _0x31b7d3;};},{'./../utils':0x6c}],0x65:[function(_0x5dee40,_0x2584a7,_0x1ea01a){var _0x223d9b=_0x548f48;'use strict';_0x2584a7[_0x223d9b('0x64')]=function(_0x1e8ed7,_0x40c92b){var _0x102946=_0x223d9b;return _0x40c92b?_0x1e8ed7[_0x102946('0xd06')](/\/+$/,'')+'/'+_0x40c92b[_0x102946('0xd06')](/^\/+/,''):_0x1e8ed7;};},{}],0x66:[function(_0x471e6f,_0x3bcc70,_0x2fafb6){var _0xd255e8=_0x548f48;'use strict';var _0x40d6ac=_0x471e6f(_0xd255e8('0xf74'));_0x3bcc70['exports']=_0x40d6ac[_0xd255e8('0xcd5')]()?{'write':function(_0x2a720e,_0x3cde7c,_0x3be4c2,_0x266084,_0x23411c,_0x55e67b){var _0x149968=_0xd255e8,_0xbf29d9=[];_0xbf29d9['push'](_0x2a720e+'='+encodeURIComponent(_0x3cde7c)),_0x40d6ac[_0x149968('0x374')](_0x3be4c2)&&_0xbf29d9['push'](_0x149968('0x188')+new Date(_0x3be4c2)[_0x149968('0xdb2')]()),_0x40d6ac[_0x149968('0x5a8')](_0x266084)&&_0xbf29d9['push'](_0x149968('0x1ca')+_0x266084),_0x40d6ac[_0x149968('0x5a8')](_0x23411c)&&_0xbf29d9[_0x149968('0x91b')](_0x149968('0xc34')+_0x23411c),!0x0===_0x55e67b&&_0xbf29d9['push'](_0x149968('0x39a')),document[_0x149968('0xf9c')]=_0xbf29d9[_0x149968('0x2e2')](';\x20');},'read':function(_0x54b6da){var _0x45e9db=_0xd255e8,_0x491575=document[_0x45e9db('0xf9c')][_0x45e9db('0x7d5')](new RegExp(_0x45e9db('0x108e')+_0x54b6da+')=([^;]*)'));return _0x491575?decodeURIComponent(_0x491575[0x3]):null;},'remove':function(_0x376af3){var _0x4337bd=_0xd255e8;this['write'](_0x376af3,'',Date[_0x4337bd('0x313')]()-0x5265c00);}}:{'write':function(){},'read':function(){return null;},'remove':function(){}};},{'./../utils':0x6c}],0x67:[function(_0x391e89,_0x480a4a,_0x1a589d){'use strict';_0x480a4a['exports']=function(_0x3030d3){var _0x5f5941=_0x5376;return/^([a-z][a-z\d\+\-\.]*:)?\/\//i[_0x5f5941('0x2c3')](_0x3030d3);};},{}],0x68:[function(_0x3611cb,_0x285d31,_0x13aae3){var _0x13cfea=_0x548f48;'use strict';var _0x1ddfe9=_0x3611cb(_0x13cfea('0xf74'));_0x285d31[_0x13cfea('0x64')]=_0x1ddfe9[_0x13cfea('0xcd5')]()?function(){var _0x3b356e=_0x13cfea,_0x49dbc8,_0x546e88=/(msie|trident)/i['test'](navigator[_0x3b356e('0xcca')]),_0x47f69f=document['createElement']('a');function _0x437c4b(_0x5b0685){var _0x22703a=_0x3b356e,_0x5e3352=_0x5b0685;return _0x546e88&&(_0x47f69f['setAttribute'](_0x22703a('0xcf7'),_0x5e3352),_0x5e3352=_0x47f69f['href']),_0x47f69f[_0x22703a('0x451')]('href',_0x5e3352),{'href':_0x47f69f[_0x22703a('0xcf7')],'protocol':_0x47f69f['protocol']?_0x47f69f[_0x22703a('0x402')][_0x22703a('0xd06')](/:$/,''):'','host':_0x47f69f[_0x22703a('0xd0f')],'search':_0x47f69f[_0x22703a('0x381')]?_0x47f69f['search'][_0x22703a('0xd06')](/^\?/,''):'','hash':_0x47f69f[_0x22703a('0x5a6')]?_0x47f69f[_0x22703a('0x5a6')][_0x22703a('0xd06')](/^#/,''):'','hostname':_0x47f69f[_0x22703a('0xdd3')],'port':_0x47f69f['port'],'pathname':'/'===_0x47f69f['pathname'][_0x22703a('0xcaf')](0x0)?_0x47f69f[_0x22703a('0xe88')]:'/'+_0x47f69f['pathname']};}return _0x49dbc8=_0x437c4b(window[_0x3b356e('0x86')][_0x3b356e('0xcf7')]),function(_0x5687a4){var _0x21388c=_0x3b356e,_0x5b8e63=_0x1ddfe9['isString'](_0x5687a4)?_0x437c4b(_0x5687a4):_0x5687a4;return _0x5b8e63['protocol']===_0x49dbc8[_0x21388c('0x402')]&&_0x5b8e63[_0x21388c('0xd0f')]===_0x49dbc8[_0x21388c('0xd0f')];};}():function(){return!0x0;};},{'./../utils':0x6c}],0x69:[function(_0x3de76a,_0x256d19,_0x1523f6){var _0x41c26e=_0x548f48;'use strict';var _0x1d6f80=_0x3de76a('../utils');_0x256d19[_0x41c26e('0x64')]=function(_0x473a00,_0x5b3ea7){_0x1d6f80['forEach'](_0x473a00,function(_0x4c606b,_0x2845cc){_0x2845cc!==_0x5b3ea7&&_0x2845cc['toUpperCase']()===_0x5b3ea7['toUpperCase']()&&(_0x473a00[_0x5b3ea7]=_0x4c606b,delete _0x473a00[_0x2845cc]);});};},{'../utils':0x6c}],0x6a:[function(_0x59cce5,_0x1f3f32,_0x4c59b4){var _0x2958c3=_0x548f48;'use strict';var _0x37ad18=_0x59cce5(_0x2958c3('0xf74')),_0x4fc81f=[_0x2958c3('0x27a'),'authorization',_0x2958c3('0x9b0'),_0x2958c3('0x5ff'),_0x2958c3('0x106b'),'expires','from',_0x2958c3('0xd0f'),'if-modified-since',_0x2958c3('0x2af'),'last-modified',_0x2958c3('0x86'),_0x2958c3('0xb9e'),_0x2958c3('0x970'),_0x2958c3('0x604'),_0x2958c3('0x301'),_0x2958c3('0x83d')];_0x1f3f32['exports']=function(_0x1267b3){var _0x157451=_0x2958c3,_0x573120,_0x5318fc,_0x3b2a5d,_0x53b4fc={};return _0x1267b3?(_0x37ad18[_0x157451('0xb77')](_0x1267b3[_0x157451('0x44d')]('\x0a'),function(_0x3d3369){var _0xa46bfc=_0x157451;if(_0x3b2a5d=_0x3d3369[_0xa46bfc('0xf00')](':'),_0x573120=_0x37ad18['trim'](_0x3d3369[_0xa46bfc('0x2d8')](0x0,_0x3b2a5d))[_0xa46bfc('0x371')](),_0x5318fc=_0x37ad18[_0xa46bfc('0xb8e')](_0x3d3369[_0xa46bfc('0x2d8')](_0x3b2a5d+0x1)),_0x573120){if(_0x53b4fc[_0x573120]&&_0x4fc81f[_0xa46bfc('0xf00')](_0x573120)>=0x0)return;_0x53b4fc[_0x573120]=_0xa46bfc('0xbbb')===_0x573120?(_0x53b4fc[_0x573120]?_0x53b4fc[_0x573120]:[])['concat']([_0x5318fc]):_0x53b4fc[_0x573120]?_0x53b4fc[_0x573120]+',\x20'+_0x5318fc:_0x5318fc;}}),_0x53b4fc):_0x53b4fc;};},{'./../utils':0x6c}],0x6b:[function(_0x6261e8,_0x16cf9d,_0x5d3f5c){var _0x3692e4=_0x548f48;'use strict';_0x16cf9d[_0x3692e4('0x64')]=function(_0xbe6f1d){return function(_0x3373a7){var _0x3d39b0=_0x5376;return _0xbe6f1d[_0x3d39b0('0x2be')](null,_0x3373a7);};};},{}],0x6c:[function(_0x1d5b72,_0x21c54a,_0x781170){var _0x1b4160=_0x548f48;'use strict';var _0x1dc5a9=_0x1d5b72(_0x1b4160('0x8e5')),_0x17f5fe=Object[_0x1b4160('0xe02')][_0x1b4160('0xb6d')];function _0x5ac769(_0x31913e){var _0x26d0c6=_0x1b4160;return _0x26d0c6('0xed6')===_0x17f5fe[_0x26d0c6('0xfd2')](_0x31913e);}function _0x2d2c30(_0x160fae){return void 0x0===_0x160fae;}function _0x9b39c0(_0x15363d){return null!==_0x15363d&&'object'==typeof _0x15363d;}function _0x47fc4a(_0x17e50b){var _0x3fd9d9=_0x1b4160;if(_0x3fd9d9('0xe64')!==_0x17f5fe['call'](_0x17e50b))return!0x1;var _0x47dca1=Object['getPrototypeOf'](_0x17e50b);return null===_0x47dca1||_0x47dca1===Object[_0x3fd9d9('0xe02')];}function _0x1a4b53(_0x31efae){var _0x596c3b=_0x1b4160;return _0x596c3b('0x639')===_0x17f5fe[_0x596c3b('0xfd2')](_0x31efae);}function _0x119ebd(_0x388a66,_0x2b6a65){var _0x49dfdc=_0x1b4160;if(null!=_0x388a66){if(_0x49dfdc('0xb3f')!=typeof _0x388a66&&(_0x388a66=[_0x388a66]),_0x5ac769(_0x388a66))for(var _0x44a430=0x0,_0x10de2f=_0x388a66[_0x49dfdc('0x13')];_0x44a430<_0x10de2f;_0x44a430++)_0x2b6a65[_0x49dfdc('0xfd2')](null,_0x388a66[_0x44a430],_0x44a430,_0x388a66);else for(var _0x50c8f4 in _0x388a66)Object[_0x49dfdc('0xe02')]['hasOwnProperty'][_0x49dfdc('0xfd2')](_0x388a66,_0x50c8f4)&&_0x2b6a65['call'](null,_0x388a66[_0x50c8f4],_0x50c8f4,_0x388a66);}}_0x21c54a['exports']={'isArray':_0x5ac769,'isArrayBuffer':function(_0x4786ec){var _0x1c862f=_0x1b4160;return _0x1c862f('0xf38')===_0x17f5fe[_0x1c862f('0xfd2')](_0x4786ec);},'isBuffer':function(_0xdbb0c3){var _0x1d0f35=_0x1b4160;return null!==_0xdbb0c3&&!_0x2d2c30(_0xdbb0c3)&&null!==_0xdbb0c3['constructor']&&!_0x2d2c30(_0xdbb0c3[_0x1d0f35('0xad1')])&&_0x1d0f35('0x106c')==typeof _0xdbb0c3[_0x1d0f35('0xad1')][_0x1d0f35('0x1bf')]&&_0xdbb0c3[_0x1d0f35('0xad1')][_0x1d0f35('0x1bf')](_0xdbb0c3);},'isFormData':function(_0x390b0d){var _0x229198=_0x1b4160;return _0x229198('0x449')!=typeof FormData&&_0x390b0d instanceof FormData;},'isArrayBufferView':function(_0x1f791b){var _0x26bf35=_0x1b4160;return _0x26bf35('0x449')!=typeof ArrayBuffer&&ArrayBuffer[_0x26bf35('0x1087')]?ArrayBuffer['isView'](_0x1f791b):_0x1f791b&&_0x1f791b[_0x26bf35('0x112b')]&&_0x1f791b[_0x26bf35('0x112b')]instanceof ArrayBuffer;},'isString':function(_0x3d8e24){var _0x28f127=_0x1b4160;return _0x28f127('0x2fd')==typeof _0x3d8e24;},'isNumber':function(_0x27d27f){var _0xa483ab=_0x1b4160;return _0xa483ab('0x67b')==typeof _0x27d27f;},'isObject':_0x9b39c0,'isPlainObject':_0x47fc4a,'isUndefined':_0x2d2c30,'isDate':function(_0x2693b6){var _0x47c95d=_0x1b4160;return'[object\x20Date]'===_0x17f5fe[_0x47c95d('0xfd2')](_0x2693b6);},'isFile':function(_0x14b116){var _0x5e98e5=_0x1b4160;return _0x5e98e5('0x837')===_0x17f5fe[_0x5e98e5('0xfd2')](_0x14b116);},'isBlob':function(_0x25130a){var _0x460dd9=_0x1b4160;return'[object\x20Blob]'===_0x17f5fe[_0x460dd9('0xfd2')](_0x25130a);},'isFunction':_0x1a4b53,'isStream':function(_0x10ae33){var _0xfcfa5d=_0x1b4160;return _0x9b39c0(_0x10ae33)&&_0x1a4b53(_0x10ae33[_0xfcfa5d('0xfc7')]);},'isURLSearchParams':function(_0x18216a){var _0x3af49d=_0x1b4160;return _0x3af49d('0x449')!=typeof URLSearchParams&&_0x18216a instanceof URLSearchParams;},'isStandardBrowserEnv':function(){var _0x33bc6c=_0x1b4160;return(_0x33bc6c('0x449')==typeof navigator||_0x33bc6c('0xd6b')!==navigator[_0x33bc6c('0xb28')]&&_0x33bc6c('0x80d')!==navigator[_0x33bc6c('0xb28')]&&'NS'!==navigator[_0x33bc6c('0xb28')])&&(_0x33bc6c('0x449')!=typeof window&&_0x33bc6c('0x449')!=typeof document);},'forEach':_0x119ebd,'merge':function _0x3167ee(){var _0x2b7feb=_0x1b4160,_0x6f26e6={};function _0x2f0054(_0x87768a,_0x1df8ed){var _0x5a1ceb=_0x5376;_0x47fc4a(_0x6f26e6[_0x1df8ed])&&_0x47fc4a(_0x87768a)?_0x6f26e6[_0x1df8ed]=_0x3167ee(_0x6f26e6[_0x1df8ed],_0x87768a):_0x47fc4a(_0x87768a)?_0x6f26e6[_0x1df8ed]=_0x3167ee({},_0x87768a):_0x5ac769(_0x87768a)?_0x6f26e6[_0x1df8ed]=_0x87768a[_0x5a1ceb('0xdf1')]():_0x6f26e6[_0x1df8ed]=_0x87768a;}for(var _0x310074=0x0,_0x36cee5=arguments[_0x2b7feb('0x13')];_0x310074<_0x36cee5;_0x310074++)_0x119ebd(arguments[_0x310074],_0x2f0054);return _0x6f26e6;},'extend':function(_0x1842fa,_0x15cec9,_0x44f023){return _0x119ebd(_0x15cec9,function(_0x365dd0,_0x4ec246){var _0x3dd7e1=_0x5376;_0x1842fa[_0x4ec246]=_0x44f023&&_0x3dd7e1('0x106c')==typeof _0x365dd0?_0x1dc5a9(_0x365dd0,_0x44f023):_0x365dd0;}),_0x1842fa;},'trim':function(_0xeb4bf4){var _0x60ce6d=_0x1b4160;return _0xeb4bf4[_0x60ce6d('0xd06')](/^\s*/,'')[_0x60ce6d('0xd06')](/\s*$/,'');},'stripBOM':function(_0x361f5e){var _0x2a5a2e=_0x1b4160;return 0xfeff===_0x361f5e[_0x2a5a2e('0xd66')](0x0)&&(_0x361f5e=_0x361f5e[_0x2a5a2e('0xdf1')](0x1)),_0x361f5e;}};},{'./helpers/bind':0x63}],0x6d:[function(_0x2c75d7,_0x2e0619,_0x24a2f5){var _0x3e4b08=_0x548f48,_0x467e5e;_0x467e5e=function(_0x2e035f){'use strict';function _0x4bba69(_0x19e0b8,_0x457915){var _0x2e34ec=_0x5376;clearTimeout(_0x457915['timeout']),_0x2e035f[_0x2e34ec('0x78f')](window,_0x2e34ec('0x517'),_0x457915[_0x2e34ec('0xf4a')]),_0x2e035f[_0x2e34ec('0x78f')](window,_0x2e34ec('0x3bd'),_0x457915['hurry']);}_0x2e035f['defineOption']('autoRefresh',!0x1,function(_0x19c29c,_0x4c1654){var _0x3cc694=_0x5376;_0x19c29c[_0x3cc694('0x55d')][_0x3cc694('0xcc0')]&&(_0x4bba69(0x0,_0x19c29c[_0x3cc694('0x55d')][_0x3cc694('0xcc0')]),_0x19c29c[_0x3cc694('0x55d')][_0x3cc694('0xcc0')]=null),_0x4c1654&&0x0==_0x19c29c[_0x3cc694('0x13d')]['wrapper'][_0x3cc694('0x495')]&&function(_0x4f8570,_0x1e3f3c){var _0x75a7de=_0x3cc694;function _0x122966(){var _0x308acd=_0x5376;_0x4f8570['display'][_0x308acd('0xfc3')][_0x308acd('0x495')]?(_0x4bba69(0x0,_0x1e3f3c),_0x4f8570[_0x308acd('0x13d')][_0x308acd('0x1035')]!=_0x4f8570[_0x308acd('0x13d')][_0x308acd('0xfc3')][_0x308acd('0x9d9')]&&_0x4f8570[_0x308acd('0x18e')]()):_0x1e3f3c[_0x308acd('0x2b9')]=setTimeout(_0x122966,_0x1e3f3c[_0x308acd('0xeac')]);}_0x1e3f3c['timeout']=setTimeout(_0x122966,_0x1e3f3c[_0x75a7de('0xeac')]),_0x1e3f3c[_0x75a7de('0xf4a')]=function(){var _0x560392=_0x75a7de;clearTimeout(_0x1e3f3c['timeout']),_0x1e3f3c[_0x560392('0x2b9')]=setTimeout(_0x122966,0x32);},_0x2e035f['on'](window,_0x75a7de('0x517'),_0x1e3f3c[_0x75a7de('0xf4a')]),_0x2e035f['on'](window,'keyup',_0x1e3f3c[_0x75a7de('0xf4a')]);}(_0x19c29c,_0x19c29c[_0x3cc694('0x55d')]['autoRefresh']={'delay':_0x4c1654['delay']||0xfa});});},_0x3e4b08('0xb3f')==typeof _0x24a2f5&&_0x3e4b08('0xb3f')==typeof _0x2e0619?_0x467e5e(_0x2c75d7('../../lib/codemirror')):_0x3e4b08('0x106c')==typeof define&&define[_0x3e4b08('0xdf3')]?define([_0x3e4b08('0x6a0')],_0x467e5e):_0x467e5e(CodeMirror);},{'../../lib/codemirror':0x6f}],0x6e:[function(_0x54c010,_0x1bc6ab,_0x57f837){var _0x408d25=_0x548f48,_0x44b261;_0x44b261=function(_0xea66b0){var _0x168899=_0x5376,_0x24941a={'pairs':_0x168899('0x1e6'),'closeBefore':_0x168899('0x9cc'),'triples':'','explode':_0x168899('0x5ae')},_0x42ac36=_0xea66b0[_0x168899('0x1152')];function _0x1bae8f(_0x279b3f,_0xd24711){var _0x1fddea=_0x168899;return _0x1fddea('0x369')==_0xd24711&&_0x1fddea('0x2fd')==typeof _0x279b3f?_0x279b3f:_0x1fddea('0xb3f')==typeof _0x279b3f&&null!=_0x279b3f[_0xd24711]?_0x279b3f[_0xd24711]:_0x24941a[_0xd24711];}_0xea66b0['defineOption'](_0x168899('0x111b'),!0x1,function(_0x1f488a,_0x1637ea,_0x25d934){var _0x55b3f3=_0x168899;_0x25d934&&_0x25d934!=_0xea66b0[_0x55b3f3('0x10b9')]&&(_0x1f488a[_0x55b3f3('0x878')](_0x229007),_0x1f488a[_0x55b3f3('0x55d')]['closeBrackets']=null),_0x1637ea&&(_0x116ffc(_0x1bae8f(_0x1637ea,_0x55b3f3('0x369'))),_0x1f488a['state'][_0x55b3f3('0xf9e')]=_0x1637ea,_0x1f488a[_0x55b3f3('0x358')](_0x229007));});var _0x229007={'Backspace':function(_0x5c47e1){var _0x3e3333=_0x168899,_0x140678=_0x354b1d(_0x5c47e1);if(!_0x140678||_0x5c47e1[_0x3e3333('0xc95')](_0x3e3333('0x2c1')))return _0xea66b0[_0x3e3333('0xe5')];for(var _0x5a1ace=_0x1bae8f(_0x140678,_0x3e3333('0x369')),_0x116e8e=_0x5c47e1['listSelections'](),_0x9d3e8e=0x0;_0x9d3e8e<_0x116e8e[_0x3e3333('0x13')];_0x9d3e8e++){if(!_0x116e8e[_0x9d3e8e]['empty']())return _0xea66b0[_0x3e3333('0xe5')];var _0x334bd8=_0x1e0cd4(_0x5c47e1,_0x116e8e[_0x9d3e8e][_0x3e3333('0x116a')]);if(!_0x334bd8||_0x5a1ace[_0x3e3333('0xf00')](_0x334bd8)%0x2!=0x0)return _0xea66b0[_0x3e3333('0xe5')];}for(_0x9d3e8e=_0x116e8e[_0x3e3333('0x13')]-0x1;_0x9d3e8e>=0x0;_0x9d3e8e--){var _0x1a552f=_0x116e8e[_0x9d3e8e][_0x3e3333('0x116a')];_0x5c47e1['replaceRange']('',_0x42ac36(_0x1a552f[_0x3e3333('0x860')],_0x1a552f['ch']-0x1),_0x42ac36(_0x1a552f[_0x3e3333('0x860')],_0x1a552f['ch']+0x1),_0x3e3333('0xedf'));}},'Enter':function(_0x1737cd){var _0x4fea98=_0x168899,_0x584915=_0x354b1d(_0x1737cd),_0x40899c=_0x584915&&_0x1bae8f(_0x584915,_0x4fea98('0x714'));if(!_0x40899c||_0x1737cd[_0x4fea98('0xc95')]('disableInput'))return _0xea66b0[_0x4fea98('0xe5')];for(var _0x102fdf=_0x1737cd[_0x4fea98('0x5c')](),_0x377b2e=0x0;_0x377b2e<_0x102fdf[_0x4fea98('0x13')];_0x377b2e++){if(!_0x102fdf[_0x377b2e]['empty']())return _0xea66b0[_0x4fea98('0xe5')];var _0x5d799b=_0x1e0cd4(_0x1737cd,_0x102fdf[_0x377b2e][_0x4fea98('0x116a')]);if(!_0x5d799b||_0x40899c[_0x4fea98('0xf00')](_0x5d799b)%0x2!=0x0)return _0xea66b0[_0x4fea98('0xe5')];}_0x1737cd[_0x4fea98('0x419')](function(){var _0xcce4ce=_0x4fea98,_0xa1ccd3=_0x1737cd[_0xcce4ce('0x5a5')]()||'\x0a';_0x1737cd['replaceSelection'](_0xa1ccd3+_0xa1ccd3,null),_0x1737cd[_0xcce4ce('0x1162')](_0xcce4ce('0x10ee')),_0x102fdf=_0x1737cd[_0xcce4ce('0x5c')]();for(var _0x3b3bf9=0x0;_0x3b3bf9<_0x102fdf[_0xcce4ce('0x13')];_0x3b3bf9++){var _0x481b4f=_0x102fdf[_0x3b3bf9][_0xcce4ce('0x116a')][_0xcce4ce('0x860')];_0x1737cd['indentLine'](_0x481b4f,null,!0x0),_0x1737cd['indentLine'](_0x481b4f+0x1,null,!0x0);}});}};function _0x116ffc(_0x35b0e4){var _0x1bb936=_0x168899;for(var _0x4158ed=0x0;_0x4158ed<_0x35b0e4['length'];_0x4158ed++){var _0x7bc0be=_0x35b0e4[_0x1bb936('0xcaf')](_0x4158ed),_0x16d91e='\x27'+_0x7bc0be+'\x27';_0x229007[_0x16d91e]||(_0x229007[_0x16d91e]=_0x3e7a89(_0x7bc0be));}}function _0x3e7a89(_0x4ddd5a){return function(_0x2fa6dc){return function(_0x2fe7a1,_0x55e41a){var _0x5ee4c5=_0x5376,_0x5d7928=_0x354b1d(_0x2fe7a1);if(!_0x5d7928||_0x2fe7a1['getOption'](_0x5ee4c5('0x2c1')))return _0xea66b0['Pass'];var _0x29eda8=_0x1bae8f(_0x5d7928,_0x5ee4c5('0x369')),_0x1e76c9=_0x29eda8[_0x5ee4c5('0xf00')](_0x55e41a);if(-0x1==_0x1e76c9)return _0xea66b0[_0x5ee4c5('0xe5')];for(var _0xb07f90,_0x17e2e7=_0x1bae8f(_0x5d7928,_0x5ee4c5('0x114')),_0x2c402f=_0x1bae8f(_0x5d7928,_0x5ee4c5('0xe0e')),_0x1b2f92=_0x29eda8[_0x5ee4c5('0xcaf')](_0x1e76c9+0x1)==_0x55e41a,_0x4eb92c=_0x2fe7a1[_0x5ee4c5('0x5c')](),_0x2af721=_0x1e76c9%0x2==0x0,_0x54c852=0x0;_0x54c852<_0x4eb92c[_0x5ee4c5('0x13')];_0x54c852++){var _0x431ca3,_0x163a2d=_0x4eb92c[_0x54c852],_0x5b46d7=_0x163a2d[_0x5ee4c5('0x116a')],_0x2b30e1=_0x2fe7a1[_0x5ee4c5('0xc92')](_0x5b46d7,_0x42ac36(_0x5b46d7[_0x5ee4c5('0x860')],_0x5b46d7['ch']+0x1));if(_0x2af721&&!_0x163a2d[_0x5ee4c5('0x1d4')]())_0x431ca3=_0x5ee4c5('0xba3');else{if(!_0x1b2f92&&_0x2af721||_0x2b30e1!=_0x55e41a){if(_0x1b2f92&&_0x5b46d7['ch']>0x1&&_0x2c402f[_0x5ee4c5('0xf00')](_0x55e41a)>=0x0&&_0x2fe7a1[_0x5ee4c5('0xc92')](_0x42ac36(_0x5b46d7[_0x5ee4c5('0x860')],_0x5b46d7['ch']-0x2),_0x5b46d7)==_0x55e41a+_0x55e41a){if(_0x5b46d7['ch']>0x2&&/\bstring/[_0x5ee4c5('0x2c3')](_0x2fe7a1[_0x5ee4c5('0xbb6')](_0x42ac36(_0x5b46d7[_0x5ee4c5('0x860')],_0x5b46d7['ch']-0x2))))return _0xea66b0[_0x5ee4c5('0xe5')];_0x431ca3=_0x5ee4c5('0xe16');}else{if(_0x1b2f92){var _0x58543d=0x0==_0x5b46d7['ch']?'\x20':_0x2fe7a1['getRange'](_0x42ac36(_0x5b46d7[_0x5ee4c5('0x860')],_0x5b46d7['ch']-0x1),_0x5b46d7);if(_0xea66b0['isWordChar'](_0x2b30e1)||_0x58543d==_0x55e41a||_0xea66b0[_0x5ee4c5('0x7da')](_0x58543d))return _0xea66b0[_0x5ee4c5('0xe5')];_0x431ca3=_0x5ee4c5('0x6c0');}else{if(!_0x2af721||!(0x0===_0x2b30e1[_0x5ee4c5('0x13')]||/\s/['test'](_0x2b30e1)||_0x17e2e7['indexOf'](_0x2b30e1)>-0x1))return _0xea66b0[_0x5ee4c5('0xe5')];_0x431ca3='both';}}}else _0x431ca3=_0x1b2f92&&_0x1fd0b6(_0x2fe7a1,_0x5b46d7)?_0x5ee4c5('0x6c0'):_0x2c402f[_0x5ee4c5('0xf00')](_0x55e41a)>=0x0&&_0x2fe7a1[_0x5ee4c5('0xc92')](_0x5b46d7,_0x42ac36(_0x5b46d7['line'],_0x5b46d7['ch']+0x3))==_0x55e41a+_0x55e41a+_0x55e41a?_0x5ee4c5('0x1a3'):_0x5ee4c5('0x288');}if(_0xb07f90){if(_0xb07f90!=_0x431ca3)return _0xea66b0[_0x5ee4c5('0xe5')];}else _0xb07f90=_0x431ca3;}var _0x37bf3c=_0x1e76c9%0x2?_0x29eda8[_0x5ee4c5('0xcaf')](_0x1e76c9-0x1):_0x55e41a,_0x3b115b=_0x1e76c9%0x2?_0x55e41a:_0x29eda8[_0x5ee4c5('0xcaf')](_0x1e76c9+0x1);_0x2fe7a1[_0x5ee4c5('0x419')](function(){var _0x11f2e0=_0x5ee4c5;if(_0x11f2e0('0x288')==_0xb07f90)_0x2fe7a1[_0x11f2e0('0x1162')](_0x11f2e0('0xaa8'));else{if(_0x11f2e0('0x1a3')==_0xb07f90)for(var _0x2b3d19=0x0;_0x2b3d19<0x3;_0x2b3d19++)_0x2fe7a1[_0x11f2e0('0x1162')](_0x11f2e0('0xaa8'));else{if('surround'==_0xb07f90){var _0x474560=_0x2fe7a1[_0x11f2e0('0x6a9')]();for(_0x2b3d19=0x0;_0x2b3d19<_0x474560[_0x11f2e0('0x13')];_0x2b3d19++)_0x474560[_0x2b3d19]=_0x37bf3c+_0x474560[_0x2b3d19]+_0x3b115b;for(_0x2fe7a1['replaceSelections'](_0x474560,'around'),_0x474560=_0x2fe7a1[_0x11f2e0('0x5c')]()[_0x11f2e0('0xdf1')](),_0x2b3d19=0x0;_0x2b3d19<_0x474560[_0x11f2e0('0x13')];_0x2b3d19++)_0x474560[_0x2b3d19]=(_0x4d999e=_0x474560[_0x2b3d19],_0x4afaf6=void 0x0,_0x4afaf6=_0xea66b0[_0x11f2e0('0x595')](_0x4d999e['anchor'],_0x4d999e[_0x11f2e0('0x116a')])>0x0,{'anchor':new _0x42ac36(_0x4d999e['anchor'][_0x11f2e0('0x860')],_0x4d999e[_0x11f2e0('0xd18')]['ch']+(_0x4afaf6?-0x1:0x1)),'head':new _0x42ac36(_0x4d999e[_0x11f2e0('0x116a')][_0x11f2e0('0x860')],_0x4d999e[_0x11f2e0('0x116a')]['ch']+(_0x4afaf6?0x1:-0x1))});_0x2fe7a1[_0x11f2e0('0x1b7')](_0x474560);}else _0x11f2e0('0x6c0')==_0xb07f90?(_0x2fe7a1[_0x11f2e0('0x514')](_0x37bf3c+_0x3b115b,null),_0x2fe7a1[_0x11f2e0('0xe10')](_0x37bf3c+_0x3b115b),_0x2fe7a1[_0x11f2e0('0x1162')](_0x11f2e0('0x10ee'))):_0x11f2e0('0xe16')==_0xb07f90&&(_0x2fe7a1['replaceSelection'](_0x37bf3c+_0x37bf3c+_0x37bf3c+_0x37bf3c,_0x11f2e0('0x4ec')),_0x2fe7a1[_0x11f2e0('0x1162')](_0x11f2e0('0xaa8')));}}var _0x4d999e,_0x4afaf6;});}(_0x2fa6dc,_0x4ddd5a);};}function _0x354b1d(_0x4b1b33){var _0x2dcf6d=_0x168899,_0x4b4537=_0x4b1b33[_0x2dcf6d('0x55d')][_0x2dcf6d('0xf9e')];return!_0x4b4537||_0x4b4537[_0x2dcf6d('0x93c')]?_0x4b4537:_0x4b1b33[_0x2dcf6d('0xd21')](_0x4b1b33[_0x2dcf6d('0xbb7')]())[_0x2dcf6d('0xf9e')]||_0x4b4537;}function _0x1e0cd4(_0x974bb0,_0x42e1bc){var _0x1ccadd=_0x168899,_0x3c0aa1=_0x974bb0[_0x1ccadd('0xc92')](_0x42ac36(_0x42e1bc[_0x1ccadd('0x860')],_0x42e1bc['ch']-0x1),_0x42ac36(_0x42e1bc[_0x1ccadd('0x860')],_0x42e1bc['ch']+0x1));return 0x2==_0x3c0aa1[_0x1ccadd('0x13')]?_0x3c0aa1:null;}function _0x1fd0b6(_0x559323,_0x578678){var _0x49d96b=_0x168899,_0xe9cd61=_0x559323[_0x49d96b('0x29b')](_0x42ac36(_0x578678[_0x49d96b('0x860')],_0x578678['ch']+0x1));return/\bstring/[_0x49d96b('0x2c3')](_0xe9cd61[_0x49d96b('0x921')])&&_0xe9cd61[_0x49d96b('0xa7e')]==_0x578678['ch']&&(0x0==_0x578678['ch']||!/\bstring/[_0x49d96b('0x2c3')](_0x559323[_0x49d96b('0xbb6')](_0x578678)));}_0x116ffc(_0x24941a[_0x168899('0x369')]+'`');},_0x408d25('0xb3f')==typeof _0x57f837&&'object'==typeof _0x1bc6ab?_0x44b261(_0x54c010(_0x408d25('0x6a0'))):'function'==typeof define&&define['amd']?define([_0x408d25('0x6a0')],_0x44b261):_0x44b261(CodeMirror);},{'../../lib/codemirror':0x6f}],0x6f:[function(_0xfc388,_0x146492,_0x59139b){!function(_0x50bbbb,_0xda3ea0){var _0x4b75e2=_0x5376;_0x4b75e2('0xb3f')==typeof _0x59139b&&void 0x0!==_0x146492?_0x146492[_0x4b75e2('0x64')]=_0xda3ea0():'function'==typeof define&&define['amd']?define(_0xda3ea0):(_0x50bbbb=_0x50bbbb||self)[_0x4b75e2('0x486')]=_0xda3ea0();}(this,function(){var _0x1a265f=_0x5376;'use strict';var _0x82f5b1=navigator[_0x1a265f('0xcca')],_0x1be457=navigator['platform'],_0x29b819=/gecko\/\d/i['test'](_0x82f5b1),_0x38148a=/MSIE \d/['test'](_0x82f5b1),_0x3e9960=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/[_0x1a265f('0x3f8')](_0x82f5b1),_0x33edcd=/Edge\/(\d+)/[_0x1a265f('0x3f8')](_0x82f5b1),_0x22bb28=_0x38148a||_0x3e9960||_0x33edcd,_0x217fe9=_0x22bb28&&(_0x38148a?document[_0x1a265f('0x8e4')]||0x6:+(_0x33edcd||_0x3e9960)[0x1]),_0x5683b3=!_0x33edcd&&/WebKit\//['test'](_0x82f5b1),_0x2438d8=_0x5683b3&&/Qt\/\d+\.\d+/[_0x1a265f('0x2c3')](_0x82f5b1),_0x563557=!_0x33edcd&&/Chrome\//[_0x1a265f('0x2c3')](_0x82f5b1),_0x126de8=/Opera\//['test'](_0x82f5b1),_0x5ec12f=/Apple Computer/[_0x1a265f('0x2c3')](navigator['vendor']),_0x57b01e=/Mac OS X 1\d\D([8-9]|\d\d)\D/[_0x1a265f('0x2c3')](_0x82f5b1),_0x7ba71f=/PhantomJS/[_0x1a265f('0x2c3')](_0x82f5b1),_0x34394b=!_0x33edcd&&/AppleWebKit/[_0x1a265f('0x2c3')](_0x82f5b1)&&/Mobile\/\w+/[_0x1a265f('0x2c3')](_0x82f5b1),_0x2cbfeb=/Android/[_0x1a265f('0x2c3')](_0x82f5b1),_0x221ee3=_0x34394b||_0x2cbfeb||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i[_0x1a265f('0x2c3')](_0x82f5b1),_0x182eee=_0x34394b||/Mac/[_0x1a265f('0x2c3')](_0x1be457),_0x5d991d=/\bCrOS\b/[_0x1a265f('0x2c3')](_0x82f5b1),_0x300c7d=/win/i[_0x1a265f('0x2c3')](_0x1be457),_0x40ab9d=_0x126de8&&_0x82f5b1[_0x1a265f('0x7d5')](/Version\/(\d*\.\d*)/);_0x40ab9d&&(_0x40ab9d=Number(_0x40ab9d[0x1])),_0x40ab9d&&_0x40ab9d>=0xf&&(_0x126de8=!0x1,_0x5683b3=!0x0);var _0x347597=_0x182eee&&(_0x2438d8||_0x126de8&&(null==_0x40ab9d||_0x40ab9d<12.11)),_0x2a46fb=_0x29b819||_0x22bb28&&_0x217fe9>=0x9;function _0x31e19d(_0x41ad75){var _0x51c5d2=_0x1a265f;return new RegExp('(^|\x5cs)'+_0x41ad75+_0x51c5d2('0xb75'));}var _0x377102,_0x1ce61b=function(_0x3174c5,_0x5cd3dc){var _0x1a1baf=_0x1a265f,_0x3c9252=_0x3174c5[_0x1a1baf('0x867')],_0x2fd0e0=_0x31e19d(_0x5cd3dc)[_0x1a1baf('0x3f8')](_0x3c9252);if(_0x2fd0e0){var _0x4d2a6d=_0x3c9252['slice'](_0x2fd0e0[_0x1a1baf('0x64a')]+_0x2fd0e0[0x0][_0x1a1baf('0x13')]);_0x3174c5[_0x1a1baf('0x867')]=_0x3c9252[_0x1a1baf('0xdf1')](0x0,_0x2fd0e0[_0x1a1baf('0x64a')])+(_0x4d2a6d?_0x2fd0e0[0x1]+_0x4d2a6d:'');}};function _0x11fb2f(_0x4b7a3f){var _0x44e134=_0x1a265f;for(var _0x3239ee=_0x4b7a3f[_0x44e134('0x802')][_0x44e134('0x13')];_0x3239ee>0x0;--_0x3239ee)_0x4b7a3f['removeChild'](_0x4b7a3f[_0x44e134('0xf86')]);return _0x4b7a3f;}function _0x221945(_0x27274f,_0x5591bc){return _0x11fb2f(_0x27274f)['appendChild'](_0x5591bc);}function _0x4aeabd(_0xbf357a,_0x4c8dfd,_0x50a32c,_0x32c095){var _0x465d34=_0x1a265f,_0x34e1f0=document[_0x465d34('0xfa9')](_0xbf357a);if(_0x50a32c&&(_0x34e1f0[_0x465d34('0x867')]=_0x50a32c),_0x32c095&&(_0x34e1f0['style']['cssText']=_0x32c095),'string'==typeof _0x4c8dfd)_0x34e1f0[_0x465d34('0x657')](document[_0x465d34('0xe21')](_0x4c8dfd));else{if(_0x4c8dfd)for(var _0x196888=0x0;_0x196888<_0x4c8dfd[_0x465d34('0x13')];++_0x196888)_0x34e1f0[_0x465d34('0x657')](_0x4c8dfd[_0x196888]);}return _0x34e1f0;}function _0x54ad33(_0x164276,_0x22a805,_0x14951a,_0x1c7927){var _0x5969c6=_0x1a265f,_0x429bce=_0x4aeabd(_0x164276,_0x22a805,_0x14951a,_0x1c7927);return _0x429bce[_0x5969c6('0x451')](_0x5969c6('0x2f2'),_0x5969c6('0xc66')),_0x429bce;}function _0x487fc0(_0x2a79d8,_0x271bfd){var _0x2bf931=_0x1a265f;if(0x3==_0x271bfd[_0x2bf931('0x5a')]&&(_0x271bfd=_0x271bfd[_0x2bf931('0x9cd')]),_0x2a79d8['contains'])return _0x2a79d8[_0x2bf931('0x4cc')](_0x271bfd);do{if(0xb==_0x271bfd[_0x2bf931('0x5a')]&&(_0x271bfd=_0x271bfd[_0x2bf931('0xd0f')]),_0x271bfd==_0x2a79d8)return!0x0;}while(_0x271bfd=_0x271bfd['parentNode']);}function _0x205be5(){var _0x2aa892=_0x1a265f,_0x3a6920;try{_0x3a6920=document['activeElement'];}catch(_0x3a9c5f){_0x3a6920=document[_0x2aa892('0x82a')]||null;}for(;_0x3a6920&&_0x3a6920[_0x2aa892('0x24b')]&&_0x3a6920['shadowRoot'][_0x2aa892('0xbc9')];)_0x3a6920=_0x3a6920['shadowRoot'][_0x2aa892('0xbc9')];return _0x3a6920;}function _0x379c51(_0x1a9664,_0x2b89d1){var _0x2ddcf0=_0x1a265f,_0x50786c=_0x1a9664[_0x2ddcf0('0x867')];_0x31e19d(_0x2b89d1)['test'](_0x50786c)||(_0x1a9664['className']+=(_0x50786c?'\x20':'')+_0x2b89d1);}function _0x5c0355(_0x188515,_0x5b4a86){var _0x2e1919=_0x1a265f;for(var _0x2496c4=_0x188515[_0x2e1919('0x44d')]('\x20'),_0x5afc3a=0x0;_0x5afc3a<_0x2496c4[_0x2e1919('0x13')];_0x5afc3a++)_0x2496c4[_0x5afc3a]&&!_0x31e19d(_0x2496c4[_0x5afc3a])[_0x2e1919('0x2c3')](_0x5b4a86)&&(_0x5b4a86+='\x20'+_0x2496c4[_0x5afc3a]);return _0x5b4a86;}_0x377102=document[_0x1a265f('0x103e')]?function(_0x5207e9,_0x5c8fe1,_0x4a584f,_0x5212b4){var _0x1ca2a0=_0x1a265f,_0x2522e2=document[_0x1ca2a0('0x103e')]();return _0x2522e2[_0x1ca2a0('0xcff')](_0x5212b4||_0x5207e9,_0x4a584f),_0x2522e2['setStart'](_0x5207e9,_0x5c8fe1),_0x2522e2;}:function(_0x35f416,_0x2c5aa1,_0x277757){var _0x357271=_0x1a265f,_0x854217=document[_0x357271('0x82a')][_0x357271('0xfb5')]();try{_0x854217[_0x357271('0x2a1')](_0x35f416[_0x357271('0x9cd')]);}catch(_0x43dd02){return _0x854217;}return _0x854217[_0x357271('0x503')](!0x0),_0x854217[_0x357271('0xac5')](_0x357271('0x46e'),_0x277757),_0x854217[_0x357271('0x811')](_0x357271('0x46e'),_0x2c5aa1),_0x854217;};var _0x23e318=function(_0x576583){var _0x3029b5=_0x1a265f;_0x576583[_0x3029b5('0x4ce')]();};function _0x43826b(_0x54d002){var _0x256e1d=_0x1a265f,_0x29354a=Array[_0x256e1d('0xe02')][_0x256e1d('0xdf1')][_0x256e1d('0xfd2')](arguments,0x1);return function(){var _0x53e9f7=_0x256e1d;return _0x54d002[_0x53e9f7('0x2be')](null,_0x29354a);};}function _0x581885(_0x5a719c,_0x2efd78,_0x8ad0c6){var _0x568614=_0x1a265f;for(var _0x3a2e65 in(_0x2efd78||(_0x2efd78={}),_0x5a719c))!_0x5a719c['hasOwnProperty'](_0x3a2e65)||!0x1===_0x8ad0c6&&_0x2efd78[_0x568614('0xe9c')](_0x3a2e65)||(_0x2efd78[_0x3a2e65]=_0x5a719c[_0x3a2e65]);return _0x2efd78;}function _0x213d1d(_0x253312,_0x4ed802,_0x1286be,_0x568642,_0x53a03b){var _0x4dbf5d=_0x1a265f;null==_0x4ed802&&-0x1==(_0x4ed802=_0x253312[_0x4dbf5d('0x381')](/[^\s\u00a0]/))&&(_0x4ed802=_0x253312[_0x4dbf5d('0x13')]);for(var _0x449957=_0x568642||0x0,_0x47570a=_0x53a03b||0x0;;){var _0x22de20=_0x253312['indexOf']('\x09',_0x449957);if(_0x22de20<0x0||_0x22de20>=_0x4ed802)return _0x47570a+(_0x4ed802-_0x449957);_0x47570a+=_0x22de20-_0x449957,_0x47570a+=_0x1286be-_0x47570a%_0x1286be,_0x449957=_0x22de20+0x1;}}_0x34394b?_0x23e318=function(_0x1eacf6){var _0x335a2c=_0x1a265f;_0x1eacf6[_0x335a2c('0xdc3')]=0x0,_0x1eacf6[_0x335a2c('0x70c')]=_0x1eacf6[_0x335a2c('0x30')][_0x335a2c('0x13')];}:_0x22bb28&&(_0x23e318=function(_0x152840){var _0x1e099d=_0x1a265f;try{_0x152840[_0x1e099d('0x4ce')]();}catch(_0x244303){}});var _0x4e4ea8=function(){var _0x3f2466=_0x1a265f;this['id']=null,this['f']=null,this[_0x3f2466('0x23c')]=0x0,this[_0x3f2466('0x410')]=_0x43826b(this[_0x3f2466('0x71')],this);};function _0x55346f(_0x5e2b9f,_0x5bf062){var _0x1e2194=_0x1a265f;for(var _0x49d01d=0x0;_0x49d01d<_0x5e2b9f[_0x1e2194('0x13')];++_0x49d01d)if(_0x5e2b9f[_0x49d01d]==_0x5bf062)return _0x49d01d;return-0x1;}_0x4e4ea8['prototype'][_0x1a265f('0x71')]=function(_0x191985){var _0x5a3af0=_0x1a265f;_0x191985['id']=0x0,_0x191985[_0x5a3af0('0x23c')]<=+new Date()?_0x191985['f']():setTimeout(_0x191985[_0x5a3af0('0x410')],_0x191985[_0x5a3af0('0x23c')]-+new Date());},_0x4e4ea8[_0x1a265f('0xe02')][_0x1a265f('0x24a')]=function(_0x5820a5,_0x2bf90a){var _0x9f9091=_0x1a265f;this['f']=_0x2bf90a;var _0x147213=+new Date()+_0x5820a5;(!this['id']||_0x147213=_0x47827f)return _0x446ce0+Math['min'](_0xec0b4f,_0x47827f-_0x499a4e);if(_0x499a4e+=_0xce97b1-_0x446ce0,_0x446ce0=_0xce97b1+0x1,(_0x499a4e+=_0x49b476-_0x499a4e%_0x49b476)>=_0x47827f)return _0x446ce0;}}var _0x16de38=[''];function _0x4ca766(_0x53c0ab){var _0x30a772=_0x1a265f;for(;_0x16de38[_0x30a772('0x13')]<=_0x53c0ab;)_0x16de38[_0x30a772('0x91b')](_0x18184b(_0x16de38)+'\x20');return _0x16de38[_0x53c0ab];}function _0x18184b(_0x3e4843){var _0x105009=_0x1a265f;return _0x3e4843[_0x3e4843[_0x105009('0x13')]-0x1];}function _0x2d0ee7(_0xbbcfe,_0x2f214e){var _0x12259a=_0x1a265f;for(var _0x39e183=[],_0x599f4c=0x0;_0x599f4c<_0xbbcfe[_0x12259a('0x13')];_0x599f4c++)_0x39e183[_0x599f4c]=_0x2f214e(_0xbbcfe[_0x599f4c],_0x599f4c);return _0x39e183;}function _0x2c6ca4(){}function _0x4d5cd8(_0x536cc8,_0x1d6764){var _0x5d82a7=_0x1a265f,_0x352203;return Object[_0x5d82a7('0xbd0')]?_0x352203=Object[_0x5d82a7('0xbd0')](_0x536cc8):(_0x2c6ca4['prototype']=_0x536cc8,_0x352203=new _0x2c6ca4()),_0x1d6764&&_0x581885(_0x1d6764,_0x352203),_0x352203;}var _0x98dfd=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;function _0x4ddd49(_0x12b348){var _0x50f164=_0x1a265f;return/\w/[_0x50f164('0x2c3')](_0x12b348)||_0x12b348>'\u0080'&&(_0x12b348['toUpperCase']()!=_0x12b348[_0x50f164('0x371')]()||_0x98dfd['test'](_0x12b348));}function _0x1d107d(_0x1affe0,_0x473d09){var _0x44137a=_0x1a265f;return _0x473d09?!!(_0x473d09[_0x44137a('0x5f3')]['indexOf']('\x5cw')>-0x1&&_0x4ddd49(_0x1affe0))||_0x473d09[_0x44137a('0x2c3')](_0x1affe0):_0x4ddd49(_0x1affe0);}function _0x3928d4(_0xa7f166){var _0x1c9b99=_0x1a265f;for(var _0x551b64 in _0xa7f166)if(_0xa7f166[_0x1c9b99('0xe9c')](_0x551b64)&&_0xa7f166[_0x551b64])return!0x1;return!0x0;}var _0x5bfbf6=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;function _0x21170c(_0x1106f3){var _0x3d63a3=_0x1a265f;return _0x1106f3[_0x3d63a3('0xd66')](0x0)>=0x300&&_0x5bfbf6[_0x3d63a3('0x2c3')](_0x1106f3);}function _0x249de5(_0xd88f12,_0x51028,_0x56030b){var _0x26e462=_0x1a265f;for(;(_0x56030b<0x0?_0x51028>0x0:_0x51028<_0xd88f12[_0x26e462('0x13')])&&_0x21170c(_0xd88f12[_0x26e462('0xcaf')](_0x51028));)_0x51028+=_0x56030b;return _0x51028;}function _0x12c0d8(_0x440f30,_0x1c013e,_0x348011){var _0x3854ae=_0x1a265f;for(var _0x3b8e96=_0x1c013e>_0x348011?-0x1:0x1;;){if(_0x1c013e==_0x348011)return _0x1c013e;var _0x3fbc24=(_0x1c013e+_0x348011)/0x2,_0xde175b=_0x3b8e96<0x0?Math['ceil'](_0x3fbc24):Math[_0x3854ae('0x6e3')](_0x3fbc24);if(_0xde175b==_0x1c013e)return _0x440f30(_0xde175b)?_0x1c013e:_0x348011;_0x440f30(_0xde175b)?_0x348011=_0xde175b:_0x1c013e=_0xde175b+_0x3b8e96;}}var _0x19838b=null;function _0x267328(_0x437a1c,_0x51961a,_0x3f9d1b){var _0x19119f=_0x1a265f,_0x3581c1;_0x19838b=null;for(var _0x2461b6=0x0;_0x2461b6<_0x437a1c[_0x19119f('0x13')];++_0x2461b6){var _0x1967b9=_0x437a1c[_0x2461b6];if(_0x1967b9[_0x19119f('0x1161')]<_0x51961a&&_0x1967b9['to']>_0x51961a)return _0x2461b6;_0x1967b9['to']==_0x51961a&&(_0x1967b9[_0x19119f('0x1161')]!=_0x1967b9['to']&&'before'==_0x3f9d1b?_0x3581c1=_0x2461b6:_0x19838b=_0x2461b6),_0x1967b9['from']==_0x51961a&&(_0x1967b9[_0x19119f('0x1161')]!=_0x1967b9['to']&&_0x19119f('0x4ec')!=_0x3f9d1b?_0x3581c1=_0x2461b6:_0x19838b=_0x2461b6);}return null!=_0x3581c1?_0x3581c1:_0x19838b;}var _0x263f68=function(){var _0x4c6767=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,_0x57a741=/[stwN]/,_0x2f6251=/[LRr]/,_0x561a63=/[Lb1n]/,_0x174d67=/[1n]/;function _0xbbc8c0(_0x5a2fce,_0x1bbeb3,_0x39465c){var _0x165c64=_0x5376;this[_0x165c64('0x555')]=_0x5a2fce,this[_0x165c64('0x1161')]=_0x1bbeb3,this['to']=_0x39465c;}return function(_0x2654e8,_0x57e919){var _0x1de9cf=_0x5376,_0x192a9c='ltr'==_0x57e919?'L':'R';if(0x0==_0x2654e8[_0x1de9cf('0x13')]||'ltr'==_0x57e919&&!_0x4c6767[_0x1de9cf('0x2c3')](_0x2654e8))return!0x1;for(var _0x1eee83,_0x339cd5=_0x2654e8[_0x1de9cf('0x13')],_0x1b8ea7=[],_0x2f8813=0x0;_0x2f8813<_0x339cd5;++_0x2f8813)_0x1b8ea7['push']((_0x1eee83=_0x2654e8[_0x1de9cf('0xd66')](_0x2f8813))<=0xf7?_0x1de9cf('0x1ce')['charAt'](_0x1eee83):0x590<=_0x1eee83&&_0x1eee83<=0x5f4?'R':0x600<=_0x1eee83&&_0x1eee83<=0x6f9?_0x1de9cf('0xf34')[_0x1de9cf('0xcaf')](_0x1eee83-0x600):0x6ee<=_0x1eee83&&_0x1eee83<=0x8ac?'r':0x2000<=_0x1eee83&&_0x1eee83<=0x200b?'w':0x200c==_0x1eee83?'b':'L');for(var _0x88e3fb=0x0,_0x1cdb97=_0x192a9c;_0x88e3fb<_0x339cd5;++_0x88e3fb){var _0x374b6b=_0x1b8ea7[_0x88e3fb];'m'==_0x374b6b?_0x1b8ea7[_0x88e3fb]=_0x1cdb97:_0x1cdb97=_0x374b6b;}for(var _0x1fe0c9=0x0,_0x355fca=_0x192a9c;_0x1fe0c9<_0x339cd5;++_0x1fe0c9){var _0xf51ef9=_0x1b8ea7[_0x1fe0c9];'1'==_0xf51ef9&&'r'==_0x355fca?_0x1b8ea7[_0x1fe0c9]='n':_0x2f6251[_0x1de9cf('0x2c3')](_0xf51ef9)&&(_0x355fca=_0xf51ef9,'r'==_0xf51ef9&&(_0x1b8ea7[_0x1fe0c9]='R'));}for(var _0x5b3c1c=0x1,_0x3d5cd2=_0x1b8ea7[0x0];_0x5b3c1c<_0x339cd5-0x1;++_0x5b3c1c){var _0x34e61a=_0x1b8ea7[_0x5b3c1c];'+'==_0x34e61a&&'1'==_0x3d5cd2&&'1'==_0x1b8ea7[_0x5b3c1c+0x1]?_0x1b8ea7[_0x5b3c1c]='1':','!=_0x34e61a||_0x3d5cd2!=_0x1b8ea7[_0x5b3c1c+0x1]||'1'!=_0x3d5cd2&&'n'!=_0x3d5cd2||(_0x1b8ea7[_0x5b3c1c]=_0x3d5cd2),_0x3d5cd2=_0x34e61a;}for(var _0xf962d8=0x0;_0xf962d8<_0x339cd5;++_0xf962d8){var _0x3c35a1=_0x1b8ea7[_0xf962d8];if(','==_0x3c35a1)_0x1b8ea7[_0xf962d8]='N';else{if('%'==_0x3c35a1){var _0x311ea8=void 0x0;for(_0x311ea8=_0xf962d8+0x1;_0x311ea8<_0x339cd5&&'%'==_0x1b8ea7[_0x311ea8];++_0x311ea8);for(var _0x48b13c=_0xf962d8&&'!'==_0x1b8ea7[_0xf962d8-0x1]||_0x311ea8<_0x339cd5&&'1'==_0x1b8ea7[_0x311ea8]?'1':'N',_0x356406=_0xf962d8;_0x356406<_0x311ea8;++_0x356406)_0x1b8ea7[_0x356406]=_0x48b13c;_0xf962d8=_0x311ea8-0x1;}}}for(var _0x24c5b8=0x0,_0x43d543=_0x192a9c;_0x24c5b8<_0x339cd5;++_0x24c5b8){var _0x298e1e=_0x1b8ea7[_0x24c5b8];'L'==_0x43d543&&'1'==_0x298e1e?_0x1b8ea7[_0x24c5b8]='L':_0x2f6251[_0x1de9cf('0x2c3')](_0x298e1e)&&(_0x43d543=_0x298e1e);}for(var _0x2aec79=0x0;_0x2aec79<_0x339cd5;++_0x2aec79)if(_0x57a741['test'](_0x1b8ea7[_0x2aec79])){var _0x3ac678=void 0x0;for(_0x3ac678=_0x2aec79+0x1;_0x3ac678<_0x339cd5&&_0x57a741[_0x1de9cf('0x2c3')](_0x1b8ea7[_0x3ac678]);++_0x3ac678);for(var _0x12dbcd='L'==(_0x2aec79?_0x1b8ea7[_0x2aec79-0x1]:_0x192a9c),_0x2233d0=_0x12dbcd==('L'==(_0x3ac678<_0x339cd5?_0x1b8ea7[_0x3ac678]:_0x192a9c))?_0x12dbcd?'L':'R':_0x192a9c,_0x37a3f9=_0x2aec79;_0x37a3f9<_0x3ac678;++_0x37a3f9)_0x1b8ea7[_0x37a3f9]=_0x2233d0;_0x2aec79=_0x3ac678-0x1;}for(var _0x489ddf,_0x2249ac=[],_0x3954ba=0x0;_0x3954ba<_0x339cd5;)if(_0x561a63['test'](_0x1b8ea7[_0x3954ba])){var _0x140794=_0x3954ba;for(++_0x3954ba;_0x3954ba<_0x339cd5&&_0x561a63[_0x1de9cf('0x2c3')](_0x1b8ea7[_0x3954ba]);++_0x3954ba);_0x2249ac[_0x1de9cf('0x91b')](new _0xbbc8c0(0x0,_0x140794,_0x3954ba));}else{var _0x5893cb=_0x3954ba,_0x5d5405=_0x2249ac[_0x1de9cf('0x13')],_0x3abf08='rtl'==_0x57e919?0x1:0x0;for(++_0x3954ba;_0x3954ba<_0x339cd5&&'L'!=_0x1b8ea7[_0x3954ba];++_0x3954ba);for(var _0xffa2ff=_0x5893cb;_0xffa2ff<_0x3954ba;)if(_0x174d67[_0x1de9cf('0x2c3')](_0x1b8ea7[_0xffa2ff])){_0x5893cb<_0xffa2ff&&(_0x2249ac[_0x1de9cf('0xfbd')](_0x5d5405,0x0,new _0xbbc8c0(0x1,_0x5893cb,_0xffa2ff)),_0x5d5405+=_0x3abf08);var _0x1d30c2=_0xffa2ff;for(++_0xffa2ff;_0xffa2ff<_0x3954ba&&_0x174d67[_0x1de9cf('0x2c3')](_0x1b8ea7[_0xffa2ff]);++_0xffa2ff);_0x2249ac[_0x1de9cf('0xfbd')](_0x5d5405,0x0,new _0xbbc8c0(0x2,_0x1d30c2,_0xffa2ff)),_0x5d5405+=_0x3abf08,_0x5893cb=_0xffa2ff;}else++_0xffa2ff;_0x5893cb<_0x3954ba&&_0x2249ac['splice'](_0x5d5405,0x0,new _0xbbc8c0(0x1,_0x5893cb,_0x3954ba));}return _0x1de9cf('0x5f8')==_0x57e919&&(0x1==_0x2249ac[0x0]['level']&&(_0x489ddf=_0x2654e8[_0x1de9cf('0x7d5')](/^\s+/))&&(_0x2249ac[0x0]['from']=_0x489ddf[0x0]['length'],_0x2249ac['unshift'](new _0xbbc8c0(0x0,0x0,_0x489ddf[0x0][_0x1de9cf('0x13')]))),0x1==_0x18184b(_0x2249ac)[_0x1de9cf('0x555')]&&(_0x489ddf=_0x2654e8[_0x1de9cf('0x7d5')](/\s+$/))&&(_0x18184b(_0x2249ac)['to']-=_0x489ddf[0x0]['length'],_0x2249ac['push'](new _0xbbc8c0(0x0,_0x339cd5-_0x489ddf[0x0][_0x1de9cf('0x13')],_0x339cd5)))),_0x1de9cf('0x919')==_0x57e919?_0x2249ac[_0x1de9cf('0x231')]():_0x2249ac;};}();function _0x30ca79(_0x550772,_0x361392){var _0x5c4f0d=_0x1a265f,_0x3f7af1=_0x550772[_0x5c4f0d('0x533')];return null==_0x3f7af1&&(_0x3f7af1=_0x550772[_0x5c4f0d('0x533')]=_0x263f68(_0x550772['text'],_0x361392)),_0x3f7af1;}var _0x76ea89=[],_0x4d62f6=function(_0x589907,_0x23a533,_0x11b862){var _0x2e5644=_0x1a265f;if(_0x589907[_0x2e5644('0x363')])_0x589907[_0x2e5644('0x363')](_0x23a533,_0x11b862,!0x1);else{if(_0x589907[_0x2e5644('0x707')])_0x589907[_0x2e5644('0x707')]('on'+_0x23a533,_0x11b862);else{var _0x147976=_0x589907[_0x2e5644('0x6af')]||(_0x589907[_0x2e5644('0x6af')]={});_0x147976[_0x23a533]=(_0x147976[_0x23a533]||_0x76ea89)['concat'](_0x11b862);}}};function _0x5d49e1(_0x373e85,_0x1c5c42){var _0xba8933=_0x1a265f;return _0x373e85['_handlers']&&_0x373e85[_0xba8933('0x6af')][_0x1c5c42]||_0x76ea89;}function _0x4fabc1(_0x4df11c,_0x4e0ba3,_0x188930){var _0x453a4f=_0x1a265f;if(_0x4df11c['removeEventListener'])_0x4df11c[_0x453a4f('0xb5a')](_0x4e0ba3,_0x188930,!0x1);else{if(_0x4df11c[_0x453a4f('0x51')])_0x4df11c[_0x453a4f('0x51')]('on'+_0x4e0ba3,_0x188930);else{var _0x3ddab9=_0x4df11c[_0x453a4f('0x6af')],_0x87f39c=_0x3ddab9&&_0x3ddab9[_0x4e0ba3];if(_0x87f39c){var _0x5636a5=_0x55346f(_0x87f39c,_0x188930);_0x5636a5>-0x1&&(_0x3ddab9[_0x4e0ba3]=_0x87f39c['slice'](0x0,_0x5636a5)[_0x453a4f('0xda9')](_0x87f39c[_0x453a4f('0xdf1')](_0x5636a5+0x1)));}}}}function _0x38db09(_0x256233,_0x826cb){var _0x312222=_0x1a265f,_0x9d99a8=_0x5d49e1(_0x256233,_0x826cb);if(_0x9d99a8[_0x312222('0x13')])for(var _0x3a580f=Array[_0x312222('0xe02')][_0x312222('0xdf1')][_0x312222('0xfd2')](arguments,0x2),_0x2f7c69=0x0;_0x2f7c69<_0x9d99a8[_0x312222('0x13')];++_0x2f7c69)_0x9d99a8[_0x2f7c69][_0x312222('0x2be')](null,_0x3a580f);}function _0x5c7334(_0x41a1e8,_0x53baef,_0x2aa9fa){var _0x42cf0c=_0x1a265f;return _0x42cf0c('0x2fd')==typeof _0x53baef&&(_0x53baef={'type':_0x53baef,'preventDefault':function(){var _0x35d348=_0x42cf0c;this[_0x35d348('0xb98')]=!0x0;}}),_0x38db09(_0x41a1e8,_0x2aa9fa||_0x53baef[_0x42cf0c('0x921')],_0x41a1e8,_0x53baef),_0x16e2c9(_0x53baef)||_0x53baef[_0x42cf0c('0x2c0')];}function _0x1f9e81(_0x3eb74b){var _0x57e8fa=_0x1a265f,_0x5a2afe=_0x3eb74b['_handlers']&&_0x3eb74b[_0x57e8fa('0x6af')][_0x57e8fa('0xe6a')];if(_0x5a2afe)for(var _0x453b83=_0x3eb74b[_0x57e8fa('0x5ec')][_0x57e8fa('0xeef')]||(_0x3eb74b['curOp'][_0x57e8fa('0xeef')]=[]),_0x9aa1=0x0;_0x9aa1<_0x5a2afe[_0x57e8fa('0x13')];++_0x9aa1)-0x1==_0x55346f(_0x453b83,_0x5a2afe[_0x9aa1])&&_0x453b83[_0x57e8fa('0x91b')](_0x5a2afe[_0x9aa1]);}function _0x452465(_0xa642a4,_0x351d76){var _0x2b3b75=_0x1a265f;return _0x5d49e1(_0xa642a4,_0x351d76)[_0x2b3b75('0x13')]>0x0;}function _0x862cc9(_0xd026be){var _0x46af1f=_0x1a265f;_0xd026be['prototype']['on']=function(_0x5836b3,_0x1a7ca6){_0x4d62f6(this,_0x5836b3,_0x1a7ca6);},_0xd026be[_0x46af1f('0xe02')][_0x46af1f('0x78f')]=function(_0x93ec4b,_0x109014){_0x4fabc1(this,_0x93ec4b,_0x109014);};}function _0x3de262(_0x53a8d4){var _0x591140=_0x1a265f;_0x53a8d4[_0x591140('0x510')]?_0x53a8d4['preventDefault']():_0x53a8d4[_0x591140('0x8b')]=!0x1;}function _0x172023(_0x5b68dd){var _0x319a49=_0x1a265f;_0x5b68dd[_0x319a49('0xefa')]?_0x5b68dd[_0x319a49('0xefa')]():_0x5b68dd['cancelBubble']=!0x0;}function _0x16e2c9(_0x2866f6){var _0x48746e=_0x1a265f;return null!=_0x2866f6[_0x48746e('0xb98')]?_0x2866f6[_0x48746e('0xb98')]:0x0==_0x2866f6[_0x48746e('0x8b')];}function _0x28ee18(_0x1f0f84){_0x3de262(_0x1f0f84),_0x172023(_0x1f0f84);}function _0x18ca14(_0xb2a0ab){var _0x48f222=_0x1a265f;return _0xb2a0ab[_0x48f222('0x1d7')]||_0xb2a0ab[_0x48f222('0xd63')];}function _0x50f57b(_0xc28269){var _0x37fae9=_0x1a265f,_0xc333e9=_0xc28269[_0x37fae9('0xd45')];return null==_0xc333e9&&(0x1&_0xc28269['button']?_0xc333e9=0x1:0x2&_0xc28269[_0x37fae9('0xa46')]?_0xc333e9=0x3:0x4&_0xc28269[_0x37fae9('0xa46')]&&(_0xc333e9=0x2)),_0x182eee&&_0xc28269[_0x37fae9('0xe8a')]&&0x1==_0xc333e9&&(_0xc333e9=0x3),_0xc333e9;}var _0x69145c,_0x85fe4,_0x230c29=function(){var _0x5df3a5=_0x1a265f;if(_0x22bb28&&_0x217fe9<0x9)return!0x1;var _0x54e59b=_0x4aeabd(_0x5df3a5('0x26c'));return _0x5df3a5('0x4ab')in _0x54e59b||_0x5df3a5('0x36a')in _0x54e59b;}();function _0x9471a(_0x39919e){var _0x40489d=_0x1a265f;if(null==_0x69145c){var _0x54d162=_0x4aeabd('span','​');_0x221945(_0x39919e,_0x4aeabd(_0x40489d('0x10c'),[_0x54d162,document[_0x40489d('0xe21')]('x')])),0x0!=_0x39919e[_0x40489d('0xf86')]['offsetHeight']&&(_0x69145c=_0x54d162['offsetWidth']<=0x1&&_0x54d162[_0x40489d('0x495')]>0x2&&!(_0x22bb28&&_0x217fe9<0x8));}var _0x21244a=_0x69145c?_0x4aeabd('span','​'):_0x4aeabd(_0x40489d('0x10c'),'\u00a0',null,_0x40489d('0x103a'));return _0x21244a[_0x40489d('0x451')](_0x40489d('0x1052'),''),_0x21244a;}function _0x2bf3ae(_0x566365){var _0x542817=_0x1a265f;if(null!=_0x85fe4)return _0x85fe4;var _0x4bce47=_0x221945(_0x566365,document[_0x542817('0xe21')]('AخA')),_0x17254c=_0x377102(_0x4bce47,0x0,0x1)['getBoundingClientRect'](),_0x4f1524=_0x377102(_0x4bce47,0x1,0x2)[_0x542817('0x422')]();return _0x11fb2f(_0x566365),!(!_0x17254c||_0x17254c['left']==_0x17254c[_0x542817('0x94b')])&&(_0x85fe4=_0x4f1524[_0x542817('0x94b')]-_0x17254c[_0x542817('0x94b')]<0x3);}var _0x58a5dd,_0x207989=0x3!=_0x1a265f('0x645')[_0x1a265f('0x44d')](/\n/)['length']?function(_0x270901){var _0x50dd6e=_0x1a265f;for(var _0x517349=0x0,_0xebf2a7=[],_0x567e79=_0x270901['length'];_0x517349<=_0x567e79;){var _0x2f6dd6=_0x270901[_0x50dd6e('0xf00')]('\x0a',_0x517349);-0x1==_0x2f6dd6&&(_0x2f6dd6=_0x270901[_0x50dd6e('0x13')]);var _0x6debe4=_0x270901[_0x50dd6e('0xdf1')](_0x517349,'\x0d'==_0x270901[_0x50dd6e('0xcaf')](_0x2f6dd6-0x1)?_0x2f6dd6-0x1:_0x2f6dd6),_0x4e56ae=_0x6debe4[_0x50dd6e('0xf00')]('\x0d');-0x1!=_0x4e56ae?(_0xebf2a7[_0x50dd6e('0x91b')](_0x6debe4['slice'](0x0,_0x4e56ae)),_0x517349+=_0x4e56ae+0x1):(_0xebf2a7[_0x50dd6e('0x91b')](_0x6debe4),_0x517349=_0x2f6dd6+0x1);}return _0xebf2a7;}:function(_0x2dc09c){var _0xd9b1de=_0x1a265f;return _0x2dc09c[_0xd9b1de('0x44d')](/\r\n?|\n/);},_0x3d235a=window[_0x1a265f('0x806')]?function(_0x219898){var _0x3b9905=_0x1a265f;try{return _0x219898[_0x3b9905('0xdc3')]!=_0x219898[_0x3b9905('0x70c')];}catch(_0x5ea9fb){return!0x1;}}:function(_0x8d6cc0){var _0x2ec5fc=_0x1a265f,_0x523f0f;try{_0x523f0f=_0x8d6cc0['ownerDocument'][_0x2ec5fc('0x9c8')]['createRange']();}catch(_0x224da8){}return!(!_0x523f0f||_0x523f0f[_0x2ec5fc('0x3a9')]()!=_0x8d6cc0)&&0x0!=_0x523f0f[_0x2ec5fc('0x1114')]('StartToEnd',_0x523f0f);},_0x5234b9=_0x1a265f('0x51a')in(_0x58a5dd=_0x4aeabd('div'))||(_0x58a5dd[_0x1a265f('0x451')]('oncopy',_0x1a265f('0x7b0')),_0x1a265f('0x106c')==typeof _0x58a5dd['oncopy']),_0x5072bb=null,_0x2f6d73={},_0x29ff8a={};function _0x35ac9a(_0x568f4d,_0x336639){var _0x467dd2=_0x1a265f;arguments[_0x467dd2('0x13')]>0x2&&(_0x336639[_0x467dd2('0xd2e')]=Array[_0x467dd2('0xe02')]['slice']['call'](arguments,0x2)),_0x2f6d73[_0x568f4d]=_0x336639;}function _0x4b93d9(_0x3f44b2){var _0x225c10=_0x1a265f;if('string'==typeof _0x3f44b2&&_0x29ff8a[_0x225c10('0xe9c')](_0x3f44b2))_0x3f44b2=_0x29ff8a[_0x3f44b2];else{if(_0x3f44b2&&'string'==typeof _0x3f44b2[_0x225c10('0x3ea')]&&_0x29ff8a['hasOwnProperty'](_0x3f44b2['name'])){var _0x20de8e=_0x29ff8a[_0x3f44b2['name']];'string'==typeof _0x20de8e&&(_0x20de8e={'name':_0x20de8e}),(_0x3f44b2=_0x4d5cd8(_0x20de8e,_0x3f44b2))[_0x225c10('0x3ea')]=_0x20de8e[_0x225c10('0x3ea')];}else{if(_0x225c10('0x2fd')==typeof _0x3f44b2&&/^[\w\-]+\/[\w\-]+\+xml$/[_0x225c10('0x2c3')](_0x3f44b2))return _0x4b93d9('application/xml');if('string'==typeof _0x3f44b2&&/^[\w\-]+\/[\w\-]+\+json$/[_0x225c10('0x2c3')](_0x3f44b2))return _0x4b93d9(_0x225c10('0x31b'));}}return _0x225c10('0x2fd')==typeof _0x3f44b2?{'name':_0x3f44b2}:_0x3f44b2||{'name':_0x225c10('0xa69')};}function _0xd80094(_0xa8bf1b,_0x2826af){var _0x328d87=_0x1a265f;_0x2826af=_0x4b93d9(_0x2826af);var _0x2e757c=_0x2f6d73[_0x2826af[_0x328d87('0x3ea')]];if(!_0x2e757c)return _0xd80094(_0xa8bf1b,'text/plain');var _0x40b2b1=_0x2e757c(_0xa8bf1b,_0x2826af);if(_0x508e2a[_0x328d87('0xe9c')](_0x2826af[_0x328d87('0x3ea')])){var _0x7dadfb=_0x508e2a[_0x2826af[_0x328d87('0x3ea')]];for(var _0x457e88 in _0x7dadfb)_0x7dadfb[_0x328d87('0xe9c')](_0x457e88)&&(_0x40b2b1[_0x328d87('0xe9c')](_0x457e88)&&(_0x40b2b1['_'+_0x457e88]=_0x40b2b1[_0x457e88]),_0x40b2b1[_0x457e88]=_0x7dadfb[_0x457e88]);}if(_0x40b2b1[_0x328d87('0x3ea')]=_0x2826af['name'],_0x2826af[_0x328d87('0x1a1')]&&(_0x40b2b1['helperType']=_0x2826af[_0x328d87('0x1a1')]),_0x2826af[_0x328d87('0xa85')])for(var _0x4db24f in _0x2826af[_0x328d87('0xa85')])_0x40b2b1[_0x4db24f]=_0x2826af[_0x328d87('0xa85')][_0x4db24f];return _0x40b2b1;}var _0x508e2a={};function _0x256004(_0x1e07d3,_0x2f169d){var _0x363b9f=_0x1a265f;_0x581885(_0x2f169d,_0x508e2a[_0x363b9f('0xe9c')](_0x1e07d3)?_0x508e2a[_0x1e07d3]:_0x508e2a[_0x1e07d3]={});}function _0x2e27a(_0x33da2d,_0x3076a6){var _0xd44b7a=_0x1a265f;if(!0x0===_0x3076a6)return _0x3076a6;if(_0x33da2d[_0xd44b7a('0xe29')])return _0x33da2d[_0xd44b7a('0xe29')](_0x3076a6);var _0x564597={};for(var _0x3365e4 in _0x3076a6){var _0x674cb0=_0x3076a6[_0x3365e4];_0x674cb0 instanceof Array&&(_0x674cb0=_0x674cb0[_0xd44b7a('0xda9')]([])),_0x564597[_0x3365e4]=_0x674cb0;}return _0x564597;}function _0x578dca(_0x238194,_0x145dd2){var _0x2232bc=_0x1a265f;for(var _0x1d2c6e;_0x238194[_0x2232bc('0x4ff')]&&(_0x1d2c6e=_0x238194['innerMode'](_0x145dd2))&&_0x1d2c6e[_0x2232bc('0x1ab')]!=_0x238194;)_0x145dd2=_0x1d2c6e[_0x2232bc('0x55d')],_0x238194=_0x1d2c6e['mode'];return _0x1d2c6e||{'mode':_0x238194,'state':_0x145dd2};}function _0x43b7fb(_0x5313c6,_0x5d846e,_0xd47291){var _0x1a7fe1=_0x1a265f;return!_0x5313c6[_0x1a7fe1('0x104e')]||_0x5313c6[_0x1a7fe1('0x104e')](_0x5d846e,_0xd47291);}var _0x728e7b=function(_0x577ea3,_0x26c171,_0x173e2e){var _0x23ea03=_0x1a265f;this[_0x23ea03('0x9db')]=this[_0x23ea03('0xa7e')]=0x0,this[_0x23ea03('0x2fd')]=_0x577ea3,this[_0x23ea03('0xad4')]=_0x26c171||0x8,this['lastColumnPos']=this[_0x23ea03('0xf18')]=0x0,this[_0x23ea03('0x10dc')]=0x0,this[_0x23ea03('0xcd1')]=_0x173e2e;};function _0x1964d4(_0x5478c0,_0x2cb813){var _0xcbb193=_0x1a265f;if((_0x2cb813-=_0x5478c0[_0xcbb193('0x3f0')])<0x0||_0x2cb813>=_0x5478c0[_0xcbb193('0x10a2')])throw new Error(_0xcbb193('0x898')+(_0x2cb813+_0x5478c0['first'])+_0xcbb193('0x51d'));for(var _0x579525=_0x5478c0;!_0x579525['lines'];)for(var _0x1c8e9a=0x0;;++_0x1c8e9a){var _0x42a1d6=_0x579525[_0xcbb193('0x60c')][_0x1c8e9a],_0x2bbe26=_0x42a1d6[_0xcbb193('0xfa4')]();if(_0x2cb813<_0x2bbe26){_0x579525=_0x42a1d6;break;}_0x2cb813-=_0x2bbe26;}return _0x579525[_0xcbb193('0xf81')][_0x2cb813];}function _0x4f8473(_0x42f4de,_0x11c93c,_0x44aee6){var _0x4edfc3=_0x1a265f,_0x49b65b=[],_0x4b567b=_0x11c93c[_0x4edfc3('0x860')];return _0x42f4de[_0x4edfc3('0xe01')](_0x11c93c['line'],_0x44aee6['line']+0x1,function(_0x262e12){var _0x2e9a6d=_0x4edfc3,_0x3ed991=_0x262e12['text'];_0x4b567b==_0x44aee6[_0x2e9a6d('0x860')]&&(_0x3ed991=_0x3ed991[_0x2e9a6d('0xdf1')](0x0,_0x44aee6['ch'])),_0x4b567b==_0x11c93c[_0x2e9a6d('0x860')]&&(_0x3ed991=_0x3ed991[_0x2e9a6d('0xdf1')](_0x11c93c['ch'])),_0x49b65b['push'](_0x3ed991),++_0x4b567b;}),_0x49b65b;}function _0x1cfd1e(_0x13cba9,_0x5075c3,_0x385f55){var _0x45030f=[];return _0x13cba9['iter'](_0x5075c3,_0x385f55,function(_0x236598){var _0x72cd11=_0x5376;_0x45030f['push'](_0x236598[_0x72cd11('0x5b2')]);}),_0x45030f;}function _0x1ae833(_0x1eee33,_0x283d40){var _0x16a0a6=_0x1a265f,_0x254342=_0x283d40-_0x1eee33[_0x16a0a6('0x27b')];if(_0x254342)for(var _0xc31dc6=_0x1eee33;_0xc31dc6;_0xc31dc6=_0xc31dc6[_0x16a0a6('0xb69')])_0xc31dc6[_0x16a0a6('0x27b')]+=_0x254342;}function _0x432947(_0x42660d){var _0x3d43e2=_0x1a265f;if(null==_0x42660d[_0x3d43e2('0xb69')])return null;for(var _0x128ace=_0x42660d['parent'],_0x2e929f=_0x55346f(_0x128ace['lines'],_0x42660d),_0x350abe=_0x128ace[_0x3d43e2('0xb69')];_0x350abe;_0x128ace=_0x350abe,_0x350abe=_0x350abe['parent'])for(var _0x12917f=0x0;_0x350abe[_0x3d43e2('0x60c')][_0x12917f]!=_0x128ace;++_0x12917f)_0x2e929f+=_0x350abe[_0x3d43e2('0x60c')][_0x12917f][_0x3d43e2('0xfa4')]();return _0x2e929f+_0x128ace[_0x3d43e2('0x3f0')];}function _0x1d0db2(_0x145f5e,_0x495b06){var _0x39ae12=_0x1a265f,_0x304059=_0x145f5e['first'];_0x78faa2:do{for(var _0x3c468c=0x0;_0x3c468c<_0x145f5e[_0x39ae12('0x60c')][_0x39ae12('0x13')];++_0x3c468c){var _0x21b15e=_0x145f5e[_0x39ae12('0x60c')][_0x3c468c],_0x2337c0=_0x21b15e['height'];if(_0x495b06<_0x2337c0){_0x145f5e=_0x21b15e;continue _0x78faa2;}_0x495b06-=_0x2337c0,_0x304059+=_0x21b15e[_0x39ae12('0xfa4')]();}return _0x304059;}while(!_0x145f5e[_0x39ae12('0xf81')]);for(var _0x2dec04=0x0;_0x2dec04<_0x145f5e[_0x39ae12('0xf81')][_0x39ae12('0x13')];++_0x2dec04){var _0x349209=_0x145f5e[_0x39ae12('0xf81')][_0x2dec04][_0x39ae12('0x27b')];if(_0x495b06<_0x349209)break;_0x495b06-=_0x349209;}return _0x304059+_0x2dec04;}function _0x3ad5be(_0x327978,_0x391b1f){var _0x2bb128=_0x1a265f;return _0x391b1f>=_0x327978[_0x2bb128('0x3f0')]&&_0x391b1f<_0x327978[_0x2bb128('0x3f0')]+_0x327978[_0x2bb128('0x10a2')];}function _0x217f83(_0x1733fd,_0x3cccc4){var _0x407e08=_0x1a265f;return String(_0x1733fd[_0x407e08('0x650')](_0x3cccc4+_0x1733fd[_0x407e08('0xfd8')]));}function _0x3de23f(_0x39c775,_0x556af7,_0x407b27){if(void 0x0===_0x407b27&&(_0x407b27=null),!(this instanceof _0x3de23f))return new _0x3de23f(_0x39c775,_0x556af7,_0x407b27);this['line']=_0x39c775,this['ch']=_0x556af7,this['sticky']=_0x407b27;}function _0x1213af(_0x408f9c,_0x50256e){var _0x63ff25=_0x1a265f;return _0x408f9c[_0x63ff25('0x860')]-_0x50256e[_0x63ff25('0x860')]||_0x408f9c['ch']-_0x50256e['ch'];}function _0x2bdd96(_0x5d14c4,_0x5d2d51){var _0x19143a=_0x1a265f;return _0x5d14c4[_0x19143a('0xce7')]==_0x5d2d51[_0x19143a('0xce7')]&&0x0==_0x1213af(_0x5d14c4,_0x5d2d51);}function _0x37b6f6(_0x1ec40c){return _0x3de23f(_0x1ec40c['line'],_0x1ec40c['ch']);}function _0x28826d(_0x7b9755,_0x42380a){return _0x1213af(_0x7b9755,_0x42380a)<0x0?_0x42380a:_0x7b9755;}function _0x315a51(_0x98f805,_0x7e9e93){return _0x1213af(_0x98f805,_0x7e9e93)<0x0?_0x98f805:_0x7e9e93;}function _0x3c1da9(_0x48fb73,_0x13f7bd){var _0x1fdb13=_0x1a265f;return Math[_0x1fdb13('0xa0d')](_0x48fb73[_0x1fdb13('0x3f0')],Math['min'](_0x13f7bd,_0x48fb73[_0x1fdb13('0x3f0')]+_0x48fb73[_0x1fdb13('0x10a2')]-0x1));}function _0x11e028(_0x2bcd2a,_0x1d6385){var _0x2588f1=_0x1a265f;if(_0x1d6385[_0x2588f1('0x860')]<_0x2bcd2a['first'])return _0x3de23f(_0x2bcd2a['first'],0x0);var _0x72c9cd=_0x2bcd2a[_0x2588f1('0x3f0')]+_0x2bcd2a[_0x2588f1('0x10a2')]-0x1;return _0x1d6385['line']>_0x72c9cd?_0x3de23f(_0x72c9cd,_0x1964d4(_0x2bcd2a,_0x72c9cd)['text'][_0x2588f1('0x13')]):function(_0x16c9fd,_0x5a34d9){var _0x22c804=_0x2588f1,_0x4abc11=_0x16c9fd['ch'];return null==_0x4abc11||_0x4abc11>_0x5a34d9?_0x3de23f(_0x16c9fd['line'],_0x5a34d9):_0x4abc11<0x0?_0x3de23f(_0x16c9fd[_0x22c804('0x860')],0x0):_0x16c9fd;}(_0x1d6385,_0x1964d4(_0x2bcd2a,_0x1d6385[_0x2588f1('0x860')])[_0x2588f1('0x5b2')][_0x2588f1('0x13')]);}function _0x2ba955(_0x391810,_0x177e07){for(var _0x1d7bda=[],_0x359ce3=0x0;_0x359ce3<_0x177e07['length'];_0x359ce3++)_0x1d7bda[_0x359ce3]=_0x11e028(_0x391810,_0x177e07[_0x359ce3]);return _0x1d7bda;}_0x728e7b[_0x1a265f('0xe02')][_0x1a265f('0xb7d')]=function(){var _0x5189d9=_0x1a265f;return this[_0x5189d9('0x9db')]>=this[_0x5189d9('0x2fd')][_0x5189d9('0x13')];},_0x728e7b[_0x1a265f('0xe02')][_0x1a265f('0x683')]=function(){var _0xe12c60=_0x1a265f;return this[_0xe12c60('0x9db')]==this[_0xe12c60('0x10dc')];},_0x728e7b['prototype'][_0x1a265f('0xb3c')]=function(){var _0x3d3840=_0x1a265f;return this[_0x3d3840('0x2fd')][_0x3d3840('0xcaf')](this[_0x3d3840('0x9db')])||void 0x0;},_0x728e7b[_0x1a265f('0xe02')][_0x1a265f('0x165')]=function(){var _0x3b5461=_0x1a265f;if(this['pos']_0x42ee8f;},_0x728e7b['prototype'][_0x1a265f('0x179')]=function(){var _0x34735f=_0x1a265f;for(var _0x2cf366=this['pos'];/[\s\u00a0]/[_0x34735f('0x2c3')](this[_0x34735f('0x2fd')]['charAt'](this[_0x34735f('0x9db')]));)++this[_0x34735f('0x9db')];return this[_0x34735f('0x9db')]>_0x2cf366;},_0x728e7b[_0x1a265f('0xe02')][_0x1a265f('0x734')]=function(){var _0x41d941=_0x1a265f;this['pos']=this[_0x41d941('0x2fd')][_0x41d941('0x13')];},_0x728e7b['prototype'][_0x1a265f('0x106e')]=function(_0x4b2c4a){var _0x4aba47=_0x1a265f,_0x515cb6=this[_0x4aba47('0x2fd')][_0x4aba47('0xf00')](_0x4b2c4a,this[_0x4aba47('0x9db')]);if(_0x515cb6>-0x1)return this[_0x4aba47('0x9db')]=_0x515cb6,!0x0;},_0x728e7b[_0x1a265f('0xe02')]['backUp']=function(_0x5cdc99){var _0x5a2671=_0x1a265f;this[_0x5a2671('0x9db')]-=_0x5cdc99;},_0x728e7b[_0x1a265f('0xe02')]['column']=function(){var _0x263f69=_0x1a265f;return this[_0x263f69('0x1096')]0x0?null:(_0x445409&&!0x1!==_0xb2f2e8&&(this[_0x35095f('0x9db')]+=_0x445409[0x0][_0x35095f('0x13')]),_0x445409);}var _0xe9e957=function(_0x2c18e7){var _0x3842c5=_0x35095f;return _0x5db7cb?_0x2c18e7[_0x3842c5('0x371')]():_0x2c18e7;};if(_0xe9e957(this['string']['substr'](this[_0x35095f('0x9db')],_0x51ffeb[_0x35095f('0x13')]))==_0xe9e957(_0x51ffeb))return!0x1!==_0xb2f2e8&&(this[_0x35095f('0x9db')]+=_0x51ffeb['length']),!0x0;},_0x728e7b['prototype'][_0x1a265f('0xda7')]=function(){var _0x5d36e1=_0x1a265f;return this[_0x5d36e1('0x2fd')][_0x5d36e1('0xdf1')](this[_0x5d36e1('0xa7e')],this[_0x5d36e1('0x9db')]);},_0x728e7b[_0x1a265f('0xe02')][_0x1a265f('0x3bb')]=function(_0x1deb24,_0x1e9929){var _0x30c2fb=_0x1a265f;this[_0x30c2fb('0x10dc')]+=_0x1deb24;try{return _0x1e9929();}finally{this[_0x30c2fb('0x10dc')]-=_0x1deb24;}},_0x728e7b['prototype'][_0x1a265f('0x539')]=function(_0x5ab27c){var _0x5bae9c=_0x1a265f,_0x3bf1bb=this[_0x5bae9c('0xcd1')];return _0x3bf1bb&&_0x3bf1bb[_0x5bae9c('0x539')](_0x5ab27c);},_0x728e7b['prototype'][_0x1a265f('0x46d')]=function(){var _0x574c0e=_0x1a265f,_0x5052f1=this['lineOracle'];return _0x5052f1&&_0x5052f1[_0x574c0e('0x46d')](this['pos']);};var _0x206c89=function(_0x4f24f7,_0x10ca94){var _0x11f871=_0x1a265f;this[_0x11f871('0x55d')]=_0x4f24f7,this[_0x11f871('0x539')]=_0x10ca94;},_0x30481d=function(_0x32b822,_0x296b56,_0x45aa9c,_0x9d9983){var _0x56a7a5=_0x1a265f;this[_0x56a7a5('0x55d')]=_0x296b56,this[_0x56a7a5('0x481')]=_0x32b822,this[_0x56a7a5('0x860')]=_0x45aa9c,this[_0x56a7a5('0x467')]=_0x9d9983||0x0,this[_0x56a7a5('0x1026')]=null,this[_0x56a7a5('0xb08')]=0x1;};function _0x125cf7(_0x2d86e7,_0x1326aa,_0x383076,_0x4caf8b){var _0x514680=_0x1a265f,_0xbee83d=[_0x2d86e7[_0x514680('0x55d')][_0x514680('0x692')]],_0x2d4eb8={};_0x2f3ba2(_0x2d86e7,_0x1326aa[_0x514680('0x5b2')],_0x2d86e7[_0x514680('0x481')]['mode'],_0x383076,function(_0x3902c9,_0x2113bc){return _0xbee83d['push'](_0x3902c9,_0x2113bc);},_0x2d4eb8,_0x4caf8b);for(var _0x546aac=_0x383076[_0x514680('0x55d')],_0x5bdf97=function(_0x20fd3e){var _0x511c6e=_0x514680;_0x383076[_0x511c6e('0x1026')]=_0xbee83d;var _0x4dfcd9=_0x2d86e7[_0x511c6e('0x55d')][_0x511c6e('0x10ec')][_0x20fd3e],_0x1f3a1a=0x1,_0x450f42=0x0;_0x383076[_0x511c6e('0x55d')]=!0x0,_0x2f3ba2(_0x2d86e7,_0x1326aa[_0x511c6e('0x5b2')],_0x4dfcd9['mode'],_0x383076,function(_0x165ba9,_0x239940){var _0x45ec2b=_0x511c6e;for(var _0x48d90d=_0x1f3a1a;_0x450f42<_0x165ba9;){var _0x3b86c2=_0xbee83d[_0x1f3a1a];_0x3b86c2>_0x165ba9&&_0xbee83d[_0x45ec2b('0xfbd')](_0x1f3a1a,0x1,_0x165ba9,_0xbee83d[_0x1f3a1a+0x1],_0x3b86c2),_0x1f3a1a+=0x2,_0x450f42=Math[_0x45ec2b('0xd3f')](_0x165ba9,_0x3b86c2);}if(_0x239940){if(_0x4dfcd9[_0x45ec2b('0x103c')])_0xbee83d['splice'](_0x48d90d,_0x1f3a1a-_0x48d90d,_0x165ba9,'overlay\x20'+_0x239940),_0x1f3a1a=_0x48d90d+0x2;else for(;_0x48d90d<_0x1f3a1a;_0x48d90d+=0x2){var _0x4abf31=_0xbee83d[_0x48d90d+0x1];_0xbee83d[_0x48d90d+0x1]=(_0x4abf31?_0x4abf31+'\x20':'')+_0x45ec2b('0x4d3')+_0x239940;}}},_0x2d4eb8),_0x383076[_0x511c6e('0x55d')]=_0x546aac,_0x383076[_0x511c6e('0x1026')]=null,_0x383076['baseTokenPos']=0x1;},_0x3d3f3f=0x0;_0x3d3f3f<_0x2d86e7[_0x514680('0x55d')][_0x514680('0x10ec')][_0x514680('0x13')];++_0x3d3f3f)_0x5bdf97(_0x3d3f3f);return{'styles':_0xbee83d,'classes':_0x2d4eb8[_0x514680('0x664')]||_0x2d4eb8['textClass']?_0x2d4eb8:null};}function _0x112a14(_0x2a19af,_0x4afa2b,_0x121002){var _0x3958e5=_0x1a265f;if(!_0x4afa2b[_0x3958e5('0x10ad')]||_0x4afa2b[_0x3958e5('0x10ad')][0x0]!=_0x2a19af[_0x3958e5('0x55d')]['modeGen']){var _0x32fe25=_0x619115(_0x2a19af,_0x432947(_0x4afa2b)),_0x3267fd=_0x4afa2b[_0x3958e5('0x5b2')][_0x3958e5('0x13')]>_0x2a19af[_0x3958e5('0x29d')][_0x3958e5('0x42a')]&&_0x2e27a(_0x2a19af['doc']['mode'],_0x32fe25['state']),_0x5aca23=_0x125cf7(_0x2a19af,_0x4afa2b,_0x32fe25);_0x3267fd&&(_0x32fe25[_0x3958e5('0x55d')]=_0x3267fd),_0x4afa2b['stateAfter']=_0x32fe25[_0x3958e5('0xb6')](!_0x3267fd),_0x4afa2b[_0x3958e5('0x10ad')]=_0x5aca23[_0x3958e5('0x10ad')],_0x5aca23[_0x3958e5('0x4ba')]?_0x4afa2b[_0x3958e5('0xee7')]=_0x5aca23['classes']:_0x4afa2b['styleClasses']&&(_0x4afa2b[_0x3958e5('0xee7')]=null),_0x121002===_0x2a19af[_0x3958e5('0x481')][_0x3958e5('0x2c8')]&&(_0x2a19af['doc'][_0x3958e5('0x621')]=Math[_0x3958e5('0xa0d')](_0x2a19af[_0x3958e5('0x481')][_0x3958e5('0x621')],++_0x2a19af['doc'][_0x3958e5('0x2c8')]));}return _0x4afa2b[_0x3958e5('0x10ad')];}function _0x619115(_0x43efed,_0x212ea6,_0x3805e2){var _0x23a899=_0x1a265f,_0x4c7bc6=_0x43efed[_0x23a899('0x481')],_0xd3fb7a=_0x43efed[_0x23a899('0x13d')];if(!_0x4c7bc6['mode'][_0x23a899('0x104e')])return new _0x30481d(_0x4c7bc6,!0x0,_0x212ea6);var _0x446783=function(_0x216abb,_0x4c208e,_0x1aeb54){var _0xb0680a=_0x23a899;for(var _0x450d12,_0x5d8815,_0x40360d=_0x216abb['doc'],_0x286eb2=_0x1aeb54?-0x1:_0x4c208e-(_0x216abb['doc'][_0xb0680a('0x1ab')][_0xb0680a('0x4ff')]?0x3e8:0x64),_0x7352fd=_0x4c208e;_0x7352fd>_0x286eb2;--_0x7352fd){if(_0x7352fd<=_0x40360d[_0xb0680a('0x3f0')])return _0x40360d[_0xb0680a('0x3f0')];var _0x2f6713=_0x1964d4(_0x40360d,_0x7352fd-0x1),_0xc32cff=_0x2f6713[_0xb0680a('0x1120')];if(_0xc32cff&&(!_0x1aeb54||_0x7352fd+(_0xc32cff instanceof _0x206c89?_0xc32cff[_0xb0680a('0x539')]:0x0)<=_0x40360d[_0xb0680a('0x621')]))return _0x7352fd;var _0x3c21da=_0x213d1d(_0x2f6713['text'],null,_0x216abb[_0xb0680a('0x29d')][_0xb0680a('0xad4')]);(null==_0x5d8815||_0x450d12>_0x3c21da)&&(_0x5d8815=_0x7352fd-0x1,_0x450d12=_0x3c21da);}return _0x5d8815;}(_0x43efed,_0x212ea6,_0x3805e2),_0x61f811=_0x446783>_0x4c7bc6[_0x23a899('0x3f0')]&&_0x1964d4(_0x4c7bc6,_0x446783-0x1)['stateAfter'],_0x2ed426=_0x61f811?_0x30481d[_0x23a899('0xa43')](_0x4c7bc6,_0x61f811,_0x446783):new _0x30481d(_0x4c7bc6,_0x43b7fb(_0x4c7bc6[_0x23a899('0x1ab')]),_0x446783);return _0x4c7bc6[_0x23a899('0xe01')](_0x446783,_0x212ea6,function(_0xa67ecd){var _0x5923f6=_0x23a899;_0x3363c9(_0x43efed,_0xa67ecd[_0x5923f6('0x5b2')],_0x2ed426);var _0x1e6025=_0x2ed426['line'];_0xa67ecd[_0x5923f6('0x1120')]=_0x1e6025==_0x212ea6-0x1||_0x1e6025%0x5==0x0||_0x1e6025>=_0xd3fb7a['viewFrom']&&_0x1e6025<_0xd3fb7a[_0x5923f6('0x3e5')]?_0x2ed426['save']():null,_0x2ed426[_0x5923f6('0x456')]();}),_0x3805e2&&(_0x4c7bc6[_0x23a899('0x621')]=_0x2ed426[_0x23a899('0x860')]),_0x2ed426;}function _0x3363c9(_0x2bdd51,_0x21f75d,_0x3f89f8,_0x575900){var _0xfe8b89=_0x1a265f,_0x5da554=_0x2bdd51['doc']['mode'],_0x1220af=new _0x728e7b(_0x21f75d,_0x2bdd51['options'][_0xfe8b89('0xad4')],_0x3f89f8);for(_0x1220af['start']=_0x1220af[_0xfe8b89('0x9db')]=_0x575900||0x0,''==_0x21f75d&&_0x2f455f(_0x5da554,_0x3f89f8['state']);!_0x1220af[_0xfe8b89('0xb7d')]();)_0x1a89a2(_0x5da554,_0x1220af,_0x3f89f8['state']),_0x1220af[_0xfe8b89('0xa7e')]=_0x1220af['pos'];}function _0x2f455f(_0x361a5d,_0x4fa4b3){var _0x4c30c2=_0x1a265f;if(_0x361a5d[_0x4c30c2('0x902')])return _0x361a5d['blankLine'](_0x4fa4b3);if(_0x361a5d['innerMode']){var _0x3ea6cb=_0x578dca(_0x361a5d,_0x4fa4b3);return _0x3ea6cb['mode']['blankLine']?_0x3ea6cb[_0x4c30c2('0x1ab')][_0x4c30c2('0x902')](_0x3ea6cb[_0x4c30c2('0x55d')]):void 0x0;}}function _0x1a89a2(_0x4e0d4e,_0x26d1cc,_0x29f863,_0xc9afec){var _0x5218cf=_0x1a265f;for(var _0x57d256=0x0;_0x57d256<0xa;_0x57d256++){_0xc9afec&&(_0xc9afec[0x0]=_0x578dca(_0x4e0d4e,_0x29f863)[_0x5218cf('0x1ab')]);var _0x549f8f=_0x4e0d4e[_0x5218cf('0xc0b')](_0x26d1cc,_0x29f863);if(_0x26d1cc[_0x5218cf('0x9db')]>_0x26d1cc[_0x5218cf('0xa7e')])return _0x549f8f;}throw new Error(_0x5218cf('0x521')+_0x4e0d4e[_0x5218cf('0x3ea')]+_0x5218cf('0x762'));}_0x30481d[_0x1a265f('0xe02')][_0x1a265f('0x539')]=function(_0x5ae1b5){var _0x933862=_0x1a265f,_0x35f2f5=this[_0x933862('0x481')][_0x933862('0xfca')](this[_0x933862('0x860')]+_0x5ae1b5);return null!=_0x35f2f5&&_0x5ae1b5>this[_0x933862('0x467')]&&(this['maxLookAhead']=_0x5ae1b5),_0x35f2f5;},_0x30481d['prototype'][_0x1a265f('0x46d')]=function(_0x1258b9){var _0x14eaf3=_0x1a265f;if(!this['baseTokens'])return null;for(;this[_0x14eaf3('0x1026')][this[_0x14eaf3('0xb08')]]<=_0x1258b9;)this[_0x14eaf3('0xb08')]+=0x2;var _0x2ca90d=this[_0x14eaf3('0x1026')][this[_0x14eaf3('0xb08')]+0x1];return{'type':_0x2ca90d&&_0x2ca90d[_0x14eaf3('0xd06')](/( |^)overlay .*/,''),'size':this[_0x14eaf3('0x1026')][this[_0x14eaf3('0xb08')]]-_0x1258b9};},_0x30481d['prototype'][_0x1a265f('0x456')]=function(){var _0x5ba0fb=_0x1a265f;this[_0x5ba0fb('0x860')]++,this[_0x5ba0fb('0x467')]>0x0&&this['maxLookAhead']--;},_0x30481d[_0x1a265f('0xa43')]=function(_0x30a3ac,_0x4c73f2,_0xf3ede3){var _0x3b04fe=_0x1a265f;return _0x4c73f2 instanceof _0x206c89?new _0x30481d(_0x30a3ac,_0x2e27a(_0x30a3ac[_0x3b04fe('0x1ab')],_0x4c73f2[_0x3b04fe('0x55d')]),_0xf3ede3,_0x4c73f2['lookAhead']):new _0x30481d(_0x30a3ac,_0x2e27a(_0x30a3ac[_0x3b04fe('0x1ab')],_0x4c73f2),_0xf3ede3);},_0x30481d['prototype'][_0x1a265f('0xb6')]=function(_0x273532){var _0x3fb5ee=_0x1a265f,_0x339b69=!0x1!==_0x273532?_0x2e27a(this[_0x3fb5ee('0x481')]['mode'],this[_0x3fb5ee('0x55d')]):this[_0x3fb5ee('0x55d')];return this[_0x3fb5ee('0x467')]>0x0?new _0x206c89(_0x339b69,this['maxLookAhead']):_0x339b69;};var _0x17db7d=function(_0x18646b,_0x4e4e08,_0x298341){var _0x547872=_0x1a265f;this[_0x547872('0xa7e')]=_0x18646b[_0x547872('0xa7e')],this[_0x547872('0xcad')]=_0x18646b[_0x547872('0x9db')],this['string']=_0x18646b[_0x547872('0xda7')](),this[_0x547872('0x921')]=_0x4e4e08||null,this['state']=_0x298341;};function _0xf21dcf(_0x587507,_0x147232,_0x562c25,_0x16d865){var _0x5b1242=_0x1a265f,_0x362fd5,_0x1540a8,_0xb29f42=_0x587507['doc'],_0x770894=_0xb29f42[_0x5b1242('0x1ab')],_0x25f5b2=_0x1964d4(_0xb29f42,(_0x147232=_0x11e028(_0xb29f42,_0x147232))['line']),_0x344eb4=_0x619115(_0x587507,_0x147232['line'],_0x562c25),_0x1a5e65=new _0x728e7b(_0x25f5b2[_0x5b1242('0x5b2')],_0x587507[_0x5b1242('0x29d')][_0x5b1242('0xad4')],_0x344eb4);for(_0x16d865&&(_0x1540a8=[]);(_0x16d865||_0x1a5e65[_0x5b1242('0x9db')]<_0x147232['ch'])&&!_0x1a5e65['eol']();)_0x1a5e65[_0x5b1242('0xa7e')]=_0x1a5e65[_0x5b1242('0x9db')],_0x362fd5=_0x1a89a2(_0x770894,_0x1a5e65,_0x344eb4[_0x5b1242('0x55d')]),_0x16d865&&_0x1540a8[_0x5b1242('0x91b')](new _0x17db7d(_0x1a5e65,_0x362fd5,_0x2e27a(_0xb29f42['mode'],_0x344eb4[_0x5b1242('0x55d')])));return _0x16d865?_0x1540a8:new _0x17db7d(_0x1a5e65,_0x362fd5,_0x344eb4[_0x5b1242('0x55d')]);}function _0x2c0a41(_0x22f9d6,_0x19b131){var _0x3d088b=_0x1a265f;if(_0x22f9d6)for(;;){var _0x15ac40=_0x22f9d6['match'](/(?:^|\s+)line-(background-)?(\S+)/);if(!_0x15ac40)break;_0x22f9d6=_0x22f9d6[_0x3d088b('0xdf1')](0x0,_0x15ac40[_0x3d088b('0x64a')])+_0x22f9d6['slice'](_0x15ac40[_0x3d088b('0x64a')]+_0x15ac40[0x0][_0x3d088b('0x13')]);var _0x10fe7e=_0x15ac40[0x1]?_0x3d088b('0x664'):_0x3d088b('0x6eb');null==_0x19b131[_0x10fe7e]?_0x19b131[_0x10fe7e]=_0x15ac40[0x2]:new RegExp(_0x3d088b('0xc20')+_0x15ac40[0x2]+_0x3d088b('0x507'))[_0x3d088b('0x2c3')](_0x19b131[_0x10fe7e])||(_0x19b131[_0x10fe7e]+='\x20'+_0x15ac40[0x2]);}return _0x22f9d6;}function _0x2f3ba2(_0x5d3480,_0x4ff90b,_0x18bc21,_0x8a1059,_0x2241fa,_0x202e76,_0x31823d){var _0x24fb98=_0x1a265f,_0xf91e03=_0x18bc21[_0x24fb98('0x89a')];null==_0xf91e03&&(_0xf91e03=_0x5d3480[_0x24fb98('0x29d')][_0x24fb98('0x89a')]);var _0x362e4c,_0x3aca1f=0x0,_0x5c3911=null,_0x330435=new _0x728e7b(_0x4ff90b,_0x5d3480['options']['tabSize'],_0x8a1059),_0x1eeb32=_0x5d3480[_0x24fb98('0x29d')]['addModeClass']&&[null];for(''==_0x4ff90b&&_0x2c0a41(_0x2f455f(_0x18bc21,_0x8a1059[_0x24fb98('0x55d')]),_0x202e76);!_0x330435['eol']();){if(_0x330435['pos']>_0x5d3480['options'][_0x24fb98('0x42a')]?(_0xf91e03=!0x1,_0x31823d&&_0x3363c9(_0x5d3480,_0x4ff90b,_0x8a1059,_0x330435['pos']),_0x330435[_0x24fb98('0x9db')]=_0x4ff90b[_0x24fb98('0x13')],_0x362e4c=null):_0x362e4c=_0x2c0a41(_0x1a89a2(_0x18bc21,_0x330435,_0x8a1059[_0x24fb98('0x55d')],_0x1eeb32),_0x202e76),_0x1eeb32){var _0x442ea8=_0x1eeb32[0x0][_0x24fb98('0x3ea')];_0x442ea8&&(_0x362e4c='m-'+(_0x362e4c?_0x442ea8+'\x20'+_0x362e4c:_0x442ea8));}if(!_0xf91e03||_0x5c3911!=_0x362e4c){for(;_0x3aca1f<_0x330435[_0x24fb98('0xa7e')];)_0x2241fa(_0x3aca1f=Math['min'](_0x330435[_0x24fb98('0xa7e')],_0x3aca1f+0x1388),_0x5c3911);_0x5c3911=_0x362e4c;}_0x330435[_0x24fb98('0xa7e')]=_0x330435[_0x24fb98('0x9db')];}for(;_0x3aca1f<_0x330435['pos'];){var _0x18413c=Math[_0x24fb98('0xd3f')](_0x330435[_0x24fb98('0x9db')],_0x3aca1f+0x1388);_0x2241fa(_0x18413c,_0x5c3911),_0x3aca1f=_0x18413c;}}var _0x270147=!0x1,_0x346523=!0x1;function _0x18ccd5(_0x280373,_0x533c81,_0x45a3a5){var _0x3b773a=_0x1a265f;this[_0x3b773a('0x11d')]=_0x280373,this['from']=_0x533c81,this['to']=_0x45a3a5;}function _0x2429a9(_0x2c54de,_0x117799){var _0xb8cf3a=_0x1a265f;if(_0x2c54de)for(var _0xc2920c=0x0;_0xc2920c<_0x2c54de['length'];++_0xc2920c){var _0x501bb5=_0x2c54de[_0xc2920c];if(_0x501bb5[_0xb8cf3a('0x11d')]==_0x117799)return _0x501bb5;}}function _0x578b91(_0x67e250,_0x3e55e0){var _0xded6c6=_0x1a265f;for(var _0x51cd05,_0x2af696=0x0;_0x2af696<_0x67e250[_0xded6c6('0x13')];++_0x2af696)_0x67e250[_0x2af696]!=_0x3e55e0&&(_0x51cd05||(_0x51cd05=[]))['push'](_0x67e250[_0x2af696]);return _0x51cd05;}function _0x4b9390(_0x247ce4,_0x15674a){var _0x1756a9=_0x1a265f;if(_0x15674a['full'])return null;var _0x23e0e4=_0x3ad5be(_0x247ce4,_0x15674a[_0x1756a9('0x1161')]['line'])&&_0x1964d4(_0x247ce4,_0x15674a[_0x1756a9('0x1161')][_0x1756a9('0x860')])[_0x1756a9('0x407')],_0x3e3297=_0x3ad5be(_0x247ce4,_0x15674a['to'][_0x1756a9('0x860')])&&_0x1964d4(_0x247ce4,_0x15674a['to'][_0x1756a9('0x860')])['markedSpans'];if(!_0x23e0e4&&!_0x3e3297)return null;var _0x5e771a=_0x15674a['from']['ch'],_0x8e767c=_0x15674a['to']['ch'],_0x553f11=0x0==_0x1213af(_0x15674a[_0x1756a9('0x1161')],_0x15674a['to']),_0x4df0fb=function(_0x5d3b22,_0x32befe,_0x1791fe){var _0x19961c=_0x1756a9,_0x1d574a;if(_0x5d3b22)for(var _0x4d8061=0x0;_0x4d8061<_0x5d3b22[_0x19961c('0x13')];++_0x4d8061){var _0x5e5ee0=_0x5d3b22[_0x4d8061],_0x249a6e=_0x5e5ee0[_0x19961c('0x11d')];if(null==_0x5e5ee0[_0x19961c('0x1161')]||(_0x249a6e[_0x19961c('0xaf1')]?_0x5e5ee0[_0x19961c('0x1161')]<=_0x32befe:_0x5e5ee0[_0x19961c('0x1161')]<_0x32befe)||_0x5e5ee0[_0x19961c('0x1161')]==_0x32befe&&_0x19961c('0xce8')==_0x249a6e[_0x19961c('0x921')]&&(!_0x1791fe||!_0x5e5ee0[_0x19961c('0x11d')][_0x19961c('0xb17')])){var _0x4c9a29=null==_0x5e5ee0['to']||(_0x249a6e['inclusiveRight']?_0x5e5ee0['to']>=_0x32befe:_0x5e5ee0['to']>_0x32befe);(_0x1d574a||(_0x1d574a=[]))[_0x19961c('0x91b')](new _0x18ccd5(_0x249a6e,_0x5e5ee0['from'],_0x4c9a29?null:_0x5e5ee0['to']));}}return _0x1d574a;}(_0x23e0e4,_0x5e771a,_0x553f11),_0x45466f=function(_0x4a018e,_0x5646bf,_0x2db9e1){var _0x5130bf=_0x1756a9,_0x194795;if(_0x4a018e)for(var _0xadac7d=0x0;_0xadac7d<_0x4a018e['length'];++_0xadac7d){var _0x3b8dc9=_0x4a018e[_0xadac7d],_0x272844=_0x3b8dc9[_0x5130bf('0x11d')];if(null==_0x3b8dc9['to']||(_0x272844[_0x5130bf('0x2f6')]?_0x3b8dc9['to']>=_0x5646bf:_0x3b8dc9['to']>_0x5646bf)||_0x3b8dc9[_0x5130bf('0x1161')]==_0x5646bf&&_0x5130bf('0xce8')==_0x272844[_0x5130bf('0x921')]&&(!_0x2db9e1||_0x3b8dc9['marker'][_0x5130bf('0xb17')])){var _0x6fb720=null==_0x3b8dc9[_0x5130bf('0x1161')]||(_0x272844[_0x5130bf('0xaf1')]?_0x3b8dc9[_0x5130bf('0x1161')]<=_0x5646bf:_0x3b8dc9['from']<_0x5646bf);(_0x194795||(_0x194795=[]))['push'](new _0x18ccd5(_0x272844,_0x6fb720?null:_0x3b8dc9[_0x5130bf('0x1161')]-_0x5646bf,null==_0x3b8dc9['to']?null:_0x3b8dc9['to']-_0x5646bf));}}return _0x194795;}(_0x3e3297,_0x8e767c,_0x553f11),_0x290dd3=0x1==_0x15674a[_0x1756a9('0x5b2')]['length'],_0x5868d3=_0x18184b(_0x15674a[_0x1756a9('0x5b2')])[_0x1756a9('0x13')]+(_0x290dd3?_0x5e771a:0x0);if(_0x4df0fb)for(var _0x4909d0=0x0;_0x4909d0<_0x4df0fb[_0x1756a9('0x13')];++_0x4909d0){var _0x66bf8b=_0x4df0fb[_0x4909d0];if(null==_0x66bf8b['to']){var _0x17645c=_0x2429a9(_0x45466f,_0x66bf8b['marker']);_0x17645c?_0x290dd3&&(_0x66bf8b['to']=null==_0x17645c['to']?null:_0x17645c['to']+_0x5868d3):_0x66bf8b['to']=_0x5e771a;}}if(_0x45466f)for(var _0x2f4bf2=0x0;_0x2f4bf2<_0x45466f['length'];++_0x2f4bf2){var _0x3d7086=_0x45466f[_0x2f4bf2];if(null!=_0x3d7086['to']&&(_0x3d7086['to']+=_0x5868d3),null==_0x3d7086['from'])_0x2429a9(_0x4df0fb,_0x3d7086[_0x1756a9('0x11d')])||(_0x3d7086['from']=_0x5868d3,_0x290dd3&&(_0x4df0fb||(_0x4df0fb=[]))[_0x1756a9('0x91b')](_0x3d7086));else _0x3d7086[_0x1756a9('0x1161')]+=_0x5868d3,_0x290dd3&&(_0x4df0fb||(_0x4df0fb=[]))['push'](_0x3d7086);}_0x4df0fb&&(_0x4df0fb=_0x408740(_0x4df0fb)),_0x45466f&&_0x45466f!=_0x4df0fb&&(_0x45466f=_0x408740(_0x45466f));var _0x2b463b=[_0x4df0fb];if(!_0x290dd3){var _0x4291f8,_0x4f69a6=_0x15674a[_0x1756a9('0x5b2')][_0x1756a9('0x13')]-0x2;if(_0x4f69a6>0x0&&_0x4df0fb)for(var _0x58e3ef=0x0;_0x58e3ef<_0x4df0fb[_0x1756a9('0x13')];++_0x58e3ef)null==_0x4df0fb[_0x58e3ef]['to']&&(_0x4291f8||(_0x4291f8=[]))[_0x1756a9('0x91b')](new _0x18ccd5(_0x4df0fb[_0x58e3ef]['marker'],null,null));for(var _0x293724=0x0;_0x293724<_0x4f69a6;++_0x293724)_0x2b463b[_0x1756a9('0x91b')](_0x4291f8);_0x2b463b[_0x1756a9('0x91b')](_0x45466f);}return _0x2b463b;}function _0x408740(_0x5e913d){var _0x37a2b0=_0x1a265f;for(var _0x203c63=0x0;_0x203c63<_0x5e913d[_0x37a2b0('0x13')];++_0x203c63){var _0x2e388c=_0x5e913d[_0x203c63];null!=_0x2e388c['from']&&_0x2e388c['from']==_0x2e388c['to']&&!0x1!==_0x2e388c[_0x37a2b0('0x11d')][_0x37a2b0('0x230')]&&_0x5e913d[_0x37a2b0('0xfbd')](_0x203c63--,0x1);}return _0x5e913d[_0x37a2b0('0x13')]?_0x5e913d:null;}function _0x34d8a0(_0x2336df){var _0x334c4a=_0x1a265f,_0x3ffc15=_0x2336df[_0x334c4a('0x407')];if(_0x3ffc15){for(var _0x39a3e6=0x0;_0x39a3e6<_0x3ffc15[_0x334c4a('0x13')];++_0x39a3e6)_0x3ffc15[_0x39a3e6][_0x334c4a('0x11d')][_0x334c4a('0x1056')](_0x2336df);_0x2336df[_0x334c4a('0x407')]=null;}}function _0x3e22c3(_0xb9eb9e,_0x302e97){var _0x9d6a8c=_0x1a265f;if(_0x302e97){for(var _0x9045e7=0x0;_0x9045e7<_0x302e97[_0x9d6a8c('0x13')];++_0x9045e7)_0x302e97[_0x9045e7][_0x9d6a8c('0x11d')][_0x9d6a8c('0xa07')](_0xb9eb9e);_0xb9eb9e['markedSpans']=_0x302e97;}}function _0x5a450f(_0x583e58){return _0x583e58['inclusiveLeft']?-0x1:0x0;}function _0xea4c26(_0x1e7070){var _0x20e793=_0x1a265f;return _0x1e7070[_0x20e793('0x2f6')]?0x1:0x0;}function _0x1e1ae7(_0x5656e6,_0x2832b8){var _0x894256=_0x1a265f,_0x105b9a=_0x5656e6[_0x894256('0xf81')][_0x894256('0x13')]-_0x2832b8['lines']['length'];if(0x0!=_0x105b9a)return _0x105b9a;var _0xae8de5=_0x5656e6['find'](),_0x430a6c=_0x2832b8[_0x894256('0xe05')](),_0x1c0e57=_0x1213af(_0xae8de5[_0x894256('0x1161')],_0x430a6c[_0x894256('0x1161')])||_0x5a450f(_0x5656e6)-_0x5a450f(_0x2832b8);if(_0x1c0e57)return-_0x1c0e57;var _0x5dbd7a=_0x1213af(_0xae8de5['to'],_0x430a6c['to'])||_0xea4c26(_0x5656e6)-_0xea4c26(_0x2832b8);return _0x5dbd7a||_0x2832b8['id']-_0x5656e6['id'];}function _0x19c517(_0x1ba878,_0x2e6553){var _0x5ba13d=_0x1a265f,_0x2c5e3a,_0x5cead8=_0x346523&&_0x1ba878[_0x5ba13d('0x407')];if(_0x5cead8)for(var _0x2f11dc=void 0x0,_0x5d8d7e=0x0;_0x5d8d7e<_0x5cead8[_0x5ba13d('0x13')];++_0x5d8d7e)(_0x2f11dc=_0x5cead8[_0x5d8d7e])[_0x5ba13d('0x11d')][_0x5ba13d('0xfec')]&&null==(_0x2e6553?_0x2f11dc[_0x5ba13d('0x1161')]:_0x2f11dc['to'])&&(!_0x2c5e3a||_0x1e1ae7(_0x2c5e3a,_0x2f11dc[_0x5ba13d('0x11d')])<0x0)&&(_0x2c5e3a=_0x2f11dc[_0x5ba13d('0x11d')]);return _0x2c5e3a;}function _0x5b9985(_0x4f6124){return _0x19c517(_0x4f6124,!0x0);}function _0x37ab89(_0x2c5194){return _0x19c517(_0x2c5194,!0x1);}function _0x2033c7(_0x1ee32f,_0x68cdef){var _0x739d6d=_0x1a265f,_0x2056e3,_0x1502eb=_0x346523&&_0x1ee32f['markedSpans'];if(_0x1502eb)for(var _0x6895bc=0x0;_0x6895bc<_0x1502eb['length'];++_0x6895bc){var _0x2a291e=_0x1502eb[_0x6895bc];_0x2a291e[_0x739d6d('0x11d')][_0x739d6d('0xfec')]&&(null==_0x2a291e[_0x739d6d('0x1161')]||_0x2a291e[_0x739d6d('0x1161')]<_0x68cdef)&&(null==_0x2a291e['to']||_0x2a291e['to']>_0x68cdef)&&(!_0x2056e3||_0x1e1ae7(_0x2056e3,_0x2a291e[_0x739d6d('0x11d')])<0x0)&&(_0x2056e3=_0x2a291e['marker']);}return _0x2056e3;}function _0x5b0c93(_0x4a0a8c,_0x132860,_0x4f6ac2,_0x5370e0,_0x19ce0e){var _0x46fe15=_0x1a265f,_0x17e30b=_0x1964d4(_0x4a0a8c,_0x132860),_0x2891f3=_0x346523&&_0x17e30b[_0x46fe15('0x407')];if(_0x2891f3)for(var _0x28250b=0x0;_0x28250b<_0x2891f3[_0x46fe15('0x13')];++_0x28250b){var _0x384a04=_0x2891f3[_0x28250b];if(_0x384a04[_0x46fe15('0x11d')][_0x46fe15('0xfec')]){var _0x1b0bd8=_0x384a04[_0x46fe15('0x11d')][_0x46fe15('0xe05')](0x0),_0x4fd404=_0x1213af(_0x1b0bd8['from'],_0x4f6ac2)||_0x5a450f(_0x384a04[_0x46fe15('0x11d')])-_0x5a450f(_0x19ce0e),_0x175451=_0x1213af(_0x1b0bd8['to'],_0x5370e0)||_0xea4c26(_0x384a04[_0x46fe15('0x11d')])-_0xea4c26(_0x19ce0e);if(!(_0x4fd404>=0x0&&_0x175451<=0x0||_0x4fd404<=0x0&&_0x175451>=0x0)&&(_0x4fd404<=0x0&&(_0x384a04[_0x46fe15('0x11d')]['inclusiveRight']&&_0x19ce0e[_0x46fe15('0xaf1')]?_0x1213af(_0x1b0bd8['to'],_0x4f6ac2)>=0x0:_0x1213af(_0x1b0bd8['to'],_0x4f6ac2)>0x0)||_0x4fd404>=0x0&&(_0x384a04['marker']['inclusiveRight']&&_0x19ce0e[_0x46fe15('0xaf1')]?_0x1213af(_0x1b0bd8['from'],_0x5370e0)<=0x0:_0x1213af(_0x1b0bd8['from'],_0x5370e0)<0x0)))return!0x0;}}}function _0xa6d8(_0x21051d){var _0x2d0672=_0x1a265f;for(var _0xe8c63b;_0xe8c63b=_0x5b9985(_0x21051d);)_0x21051d=_0xe8c63b['find'](-0x1,!0x0)[_0x2d0672('0x860')];return _0x21051d;}function _0x167490(_0x382fb2,_0x35533a){var _0x229e4c=_0x1964d4(_0x382fb2,_0x35533a),_0x2b2a21=_0xa6d8(_0x229e4c);return _0x229e4c==_0x2b2a21?_0x35533a:_0x432947(_0x2b2a21);}function _0x19c9e7(_0x44b1f1,_0x431dc4){var _0x5ad5f3=_0x1a265f;if(_0x431dc4>_0x44b1f1[_0x5ad5f3('0x4b6')]())return _0x431dc4;var _0x433e8b,_0x24faf9=_0x1964d4(_0x44b1f1,_0x431dc4);if(!_0x20f310(_0x44b1f1,_0x24faf9))return _0x431dc4;for(;_0x433e8b=_0x37ab89(_0x24faf9);)_0x24faf9=_0x433e8b['find'](0x1,!0x0)['line'];return _0x432947(_0x24faf9)+0x1;}function _0x20f310(_0x238309,_0x2430d7){var _0x336fd1=_0x1a265f,_0xf24e17=_0x346523&&_0x2430d7[_0x336fd1('0x407')];if(_0xf24e17)for(var _0x29fcdc=void 0x0,_0x46d1ad=0x0;_0x46d1ad<_0xf24e17[_0x336fd1('0x13')];++_0x46d1ad)if((_0x29fcdc=_0xf24e17[_0x46d1ad])[_0x336fd1('0x11d')]['collapsed']){if(null==_0x29fcdc[_0x336fd1('0x1161')])return!0x0;if(!_0x29fcdc['marker'][_0x336fd1('0xd0c')]&&0x0==_0x29fcdc[_0x336fd1('0x1161')]&&_0x29fcdc[_0x336fd1('0x11d')][_0x336fd1('0xaf1')]&&_0x47a74a(_0x238309,_0x2430d7,_0x29fcdc))return!0x0;}}function _0x47a74a(_0x4d93a7,_0x48e6bf,_0x29447a){var _0x19c602=_0x1a265f;if(null==_0x29447a['to']){var _0x2be741=_0x29447a['marker'][_0x19c602('0xe05')](0x1,!0x0);return _0x47a74a(_0x4d93a7,_0x2be741[_0x19c602('0x860')],_0x2429a9(_0x2be741[_0x19c602('0x860')][_0x19c602('0x407')],_0x29447a[_0x19c602('0x11d')]));}if(_0x29447a[_0x19c602('0x11d')][_0x19c602('0x2f6')]&&_0x29447a['to']==_0x48e6bf['text']['length'])return!0x0;for(var _0x1bb5d9=void 0x0,_0x27ce87=0x0;_0x27ce87<_0x48e6bf['markedSpans'][_0x19c602('0x13')];++_0x27ce87)if((_0x1bb5d9=_0x48e6bf[_0x19c602('0x407')][_0x27ce87])[_0x19c602('0x11d')][_0x19c602('0xfec')]&&!_0x1bb5d9[_0x19c602('0x11d')][_0x19c602('0xd0c')]&&_0x1bb5d9[_0x19c602('0x1161')]==_0x29447a['to']&&(null==_0x1bb5d9['to']||_0x1bb5d9['to']!=_0x29447a[_0x19c602('0x1161')])&&(_0x1bb5d9[_0x19c602('0x11d')][_0x19c602('0xaf1')]||_0x29447a[_0x19c602('0x11d')][_0x19c602('0x2f6')])&&_0x47a74a(_0x4d93a7,_0x48e6bf,_0x1bb5d9))return!0x0;}function _0x112056(_0x5ec44b){var _0x4e7652=_0x1a265f;for(var _0x5ded0e=0x0,_0x41af4e=(_0x5ec44b=_0xa6d8(_0x5ec44b))['parent'],_0x4ce1e3=0x0;_0x4ce1e3<_0x41af4e[_0x4e7652('0xf81')]['length'];++_0x4ce1e3){var _0x549c21=_0x41af4e[_0x4e7652('0xf81')][_0x4ce1e3];if(_0x549c21==_0x5ec44b)break;_0x5ded0e+=_0x549c21[_0x4e7652('0x27b')];}for(var _0x1ffada=_0x41af4e[_0x4e7652('0xb69')];_0x1ffada;_0x1ffada=(_0x41af4e=_0x1ffada)[_0x4e7652('0xb69')])for(var _0x3a722c=0x0;_0x3a722c<_0x1ffada[_0x4e7652('0x60c')][_0x4e7652('0x13')];++_0x3a722c){var _0x6ad49b=_0x1ffada[_0x4e7652('0x60c')][_0x3a722c];if(_0x6ad49b==_0x41af4e)break;_0x5ded0e+=_0x6ad49b['height'];}return _0x5ded0e;}function _0x9a1b7e(_0x35a8ee){var _0xb368f6=_0x1a265f;if(0x0==_0x35a8ee[_0xb368f6('0x27b')])return 0x0;for(var _0x40d4ad,_0xb509fd=_0x35a8ee[_0xb368f6('0x5b2')][_0xb368f6('0x13')],_0x5e77cd=_0x35a8ee;_0x40d4ad=_0x5b9985(_0x5e77cd);){var _0x217e8a=_0x40d4ad['find'](0x0,!0x0);_0x5e77cd=_0x217e8a[_0xb368f6('0x1161')][_0xb368f6('0x860')],_0xb509fd+=_0x217e8a[_0xb368f6('0x1161')]['ch']-_0x217e8a['to']['ch'];}for(_0x5e77cd=_0x35a8ee;_0x40d4ad=_0x37ab89(_0x5e77cd);){var _0x19e4c9=_0x40d4ad[_0xb368f6('0xe05')](0x0,!0x0);_0xb509fd-=_0x5e77cd[_0xb368f6('0x5b2')][_0xb368f6('0x13')]-_0x19e4c9[_0xb368f6('0x1161')]['ch'],_0xb509fd+=(_0x5e77cd=_0x19e4c9['to'][_0xb368f6('0x860')])[_0xb368f6('0x5b2')]['length']-_0x19e4c9['to']['ch'];}return _0xb509fd;}function _0x3e9ea0(_0x5d9409){var _0x17ed1a=_0x1a265f,_0x33f651=_0x5d9409[_0x17ed1a('0x13d')],_0x410adc=_0x5d9409[_0x17ed1a('0x481')];_0x33f651['maxLine']=_0x1964d4(_0x410adc,_0x410adc[_0x17ed1a('0x3f0')]),_0x33f651[_0x17ed1a('0x672')]=_0x9a1b7e(_0x33f651[_0x17ed1a('0x3c2')]),_0x33f651[_0x17ed1a('0x698')]=!0x0,_0x410adc[_0x17ed1a('0xe01')](function(_0x3eaef4){var _0x43596f=_0x17ed1a,_0x290213=_0x9a1b7e(_0x3eaef4);_0x290213>_0x33f651[_0x43596f('0x672')]&&(_0x33f651[_0x43596f('0x672')]=_0x290213,_0x33f651[_0x43596f('0x3c2')]=_0x3eaef4);});}var _0x4e10fe=function(_0x139e90,_0x17764c,_0xc561b4){var _0x533cfe=_0x1a265f;this[_0x533cfe('0x5b2')]=_0x139e90,_0x3e22c3(this,_0x17764c),this['height']=_0xc561b4?_0xc561b4(this):0x1;};function _0x1032d8(_0xcab01f){var _0x5b5701=_0x1a265f;_0xcab01f[_0x5b5701('0xb69')]=null,_0x34d8a0(_0xcab01f);}_0x4e10fe[_0x1a265f('0xe02')]['lineNo']=function(){return _0x432947(this);},_0x862cc9(_0x4e10fe);var _0x15e8fc={},_0x576c46={};function _0x4da6d4(_0x1f26d9,_0xac24dd){var _0x3bac78=_0x1a265f;if(!_0x1f26d9||/^\s*$/['test'](_0x1f26d9))return null;var _0x1d66d2=_0xac24dd[_0x3bac78('0xfcd')]?_0x576c46:_0x15e8fc;return _0x1d66d2[_0x1f26d9]||(_0x1d66d2[_0x1f26d9]=_0x1f26d9[_0x3bac78('0xd06')](/\S+/g,_0x3bac78('0x100b')));}function _0x3f42d3(_0x14c587,_0x1ede67){var _0x26ca7e=_0x1a265f,_0x4874fa=_0x54ad33(_0x26ca7e('0x10c'),null,null,_0x5683b3?'padding-right:\x20.1px':null),_0x498f6b={'pre':_0x54ad33(_0x26ca7e('0xfe7'),[_0x4874fa],_0x26ca7e('0x4c9')),'content':_0x4874fa,'col':0x0,'pos':0x0,'cm':_0x14c587,'trailingSpace':!0x1,'splitSpaces':_0x14c587[_0x26ca7e('0xc95')](_0x26ca7e('0x215'))};_0x1ede67['measure']={};for(var _0x397faa=0x0;_0x397faa<=(_0x1ede67[_0x26ca7e('0x19d')]?_0x1ede67[_0x26ca7e('0x19d')][_0x26ca7e('0x13')]:0x0);_0x397faa++){var _0x3e39e9=_0x397faa?_0x1ede67[_0x26ca7e('0x19d')][_0x397faa-0x1]:_0x1ede67[_0x26ca7e('0x860')],_0x264467=void 0x0;_0x498f6b[_0x26ca7e('0x9db')]=0x0,_0x498f6b['addToken']=_0x200454,_0x2bf3ae(_0x14c587[_0x26ca7e('0x13d')][_0x26ca7e('0xaac')])&&(_0x264467=_0x30ca79(_0x3e39e9,_0x14c587[_0x26ca7e('0x481')]['direction']))&&(_0x498f6b[_0x26ca7e('0x7af')]=_0x2f39fd(_0x498f6b['addToken'],_0x264467)),_0x498f6b[_0x26ca7e('0xd8e')]=[],_0x50c8f9(_0x3e39e9,_0x498f6b,_0x112a14(_0x14c587,_0x3e39e9,_0x1ede67!=_0x14c587['display'][_0x26ca7e('0x283')]&&_0x432947(_0x3e39e9))),_0x3e39e9['styleClasses']&&(_0x3e39e9[_0x26ca7e('0xee7')][_0x26ca7e('0x664')]&&(_0x498f6b[_0x26ca7e('0x664')]=_0x5c0355(_0x3e39e9[_0x26ca7e('0xee7')][_0x26ca7e('0x664')],_0x498f6b[_0x26ca7e('0x664')]||'')),_0x3e39e9[_0x26ca7e('0xee7')][_0x26ca7e('0x6eb')]&&(_0x498f6b[_0x26ca7e('0x6eb')]=_0x5c0355(_0x3e39e9[_0x26ca7e('0xee7')]['textClass'],_0x498f6b[_0x26ca7e('0x6eb')]||''))),0x0==_0x498f6b[_0x26ca7e('0xd8e')][_0x26ca7e('0x13')]&&_0x498f6b[_0x26ca7e('0xd8e')][_0x26ca7e('0x91b')](0x0,0x0,_0x498f6b[_0x26ca7e('0x944')][_0x26ca7e('0x657')](_0x9471a(_0x14c587[_0x26ca7e('0x13d')]['measure']))),0x0==_0x397faa?(_0x1ede67[_0x26ca7e('0xaac')][_0x26ca7e('0xd8e')]=_0x498f6b[_0x26ca7e('0xd8e')],_0x1ede67[_0x26ca7e('0xaac')][_0x26ca7e('0x28a')]={}):((_0x1ede67[_0x26ca7e('0xaac')][_0x26ca7e('0xe59')]||(_0x1ede67[_0x26ca7e('0xaac')]['maps']=[]))[_0x26ca7e('0x91b')](_0x498f6b['map']),(_0x1ede67[_0x26ca7e('0xaac')][_0x26ca7e('0xdbc')]||(_0x1ede67['measure'][_0x26ca7e('0xdbc')]=[]))[_0x26ca7e('0x91b')]({}));}if(_0x5683b3){var _0x323eb3=_0x498f6b[_0x26ca7e('0x944')][_0x26ca7e('0xc3b')];(/\bcm-tab\b/[_0x26ca7e('0x2c3')](_0x323eb3['className'])||_0x323eb3['querySelector']&&_0x323eb3[_0x26ca7e('0xb76')](_0x26ca7e('0xcbe')))&&(_0x498f6b['content'][_0x26ca7e('0x867')]='cm-tab-wrap-hack');}return _0x38db09(_0x14c587,_0x26ca7e('0x77f'),_0x14c587,_0x1ede67[_0x26ca7e('0x860')],_0x498f6b[_0x26ca7e('0xfe7')]),_0x498f6b[_0x26ca7e('0xfe7')]['className']&&(_0x498f6b[_0x26ca7e('0x6eb')]=_0x5c0355(_0x498f6b['pre'][_0x26ca7e('0x867')],_0x498f6b[_0x26ca7e('0x6eb')]||'')),_0x498f6b;}function _0x26785d(_0x287054){var _0x348b50=_0x1a265f,_0x36691a=_0x4aeabd('span','•',_0x348b50('0x305'));return _0x36691a[_0x348b50('0xf6d')]='\x5cu'+_0x287054[_0x348b50('0xd66')](0x0)[_0x348b50('0xb6d')](0x10),_0x36691a[_0x348b50('0x451')](_0x348b50('0x10e1'),_0x36691a[_0x348b50('0xf6d')]),_0x36691a;}function _0x200454(_0x5a45f2,_0x20f7db,_0x234a6e,_0x2f84c8,_0x501d1f,_0x91d665,_0x1e9490){var _0x51e79d=_0x1a265f;if(_0x20f7db){var _0x127319,_0x53d557=_0x5a45f2[_0x51e79d('0xeff')]?function(_0x310316,_0x4a3b23){var _0x437513=_0x51e79d;if(_0x310316['length']>0x1&&!/ /[_0x437513('0x2c3')](_0x310316))return _0x310316;for(var _0x50261c=_0x4a3b23,_0x475609='',_0x36750f=0x0;_0x36750f<_0x310316[_0x437513('0x13')];_0x36750f++){var _0xc33163=_0x310316['charAt'](_0x36750f);'\x20'!=_0xc33163||!_0x50261c||_0x36750f!=_0x310316[_0x437513('0x13')]-0x1&&0x20!=_0x310316[_0x437513('0xd66')](_0x36750f+0x1)||(_0xc33163='\u00a0'),_0x475609+=_0xc33163,_0x50261c='\x20'==_0xc33163;}return _0x475609;}(_0x20f7db,_0x5a45f2[_0x51e79d('0xa0c')]):_0x20f7db,_0x116334=_0x5a45f2['cm']['state'][_0x51e79d('0x10cb')],_0x1fd566=!0x1;if(_0x116334['test'](_0x20f7db)){_0x127319=document[_0x51e79d('0x8a')]();for(var _0x18166a=0x0;;){_0x116334['lastIndex']=_0x18166a;var _0x306208=_0x116334[_0x51e79d('0x3f8')](_0x20f7db),_0x1faa62=_0x306208?_0x306208[_0x51e79d('0x64a')]-_0x18166a:_0x20f7db[_0x51e79d('0x13')]-_0x18166a;if(_0x1faa62){var _0x4d87b1=document[_0x51e79d('0xe21')](_0x53d557['slice'](_0x18166a,_0x18166a+_0x1faa62));_0x22bb28&&_0x217fe9<0x9?_0x127319[_0x51e79d('0x657')](_0x4aeabd(_0x51e79d('0x10c'),[_0x4d87b1])):_0x127319[_0x51e79d('0x657')](_0x4d87b1),_0x5a45f2['map'][_0x51e79d('0x91b')](_0x5a45f2['pos'],_0x5a45f2[_0x51e79d('0x9db')]+_0x1faa62,_0x4d87b1),_0x5a45f2['col']+=_0x1faa62,_0x5a45f2[_0x51e79d('0x9db')]+=_0x1faa62;}if(!_0x306208)break;_0x18166a+=_0x1faa62+0x1;var _0x2366f3=void 0x0;if('\x09'==_0x306208[0x0]){var _0x42789a=_0x5a45f2['cm']['options'][_0x51e79d('0xad4')],_0x480156=_0x42789a-_0x5a45f2[_0x51e79d('0xa9c')]%_0x42789a;(_0x2366f3=_0x127319[_0x51e79d('0x657')](_0x4aeabd(_0x51e79d('0x10c'),_0x4ca766(_0x480156),_0x51e79d('0x58d'))))['setAttribute']('role','presentation'),_0x2366f3[_0x51e79d('0x451')](_0x51e79d('0x1052'),'\x09'),_0x5a45f2[_0x51e79d('0xa9c')]+=_0x480156;}else'\x0d'==_0x306208[0x0]||'\x0a'==_0x306208[0x0]?((_0x2366f3=_0x127319[_0x51e79d('0x657')](_0x4aeabd(_0x51e79d('0x10c'),'\x0d'==_0x306208[0x0]?'␍':'␤',_0x51e79d('0x305'))))[_0x51e79d('0x451')](_0x51e79d('0x1052'),_0x306208[0x0]),_0x5a45f2[_0x51e79d('0xa9c')]+=0x1):((_0x2366f3=_0x5a45f2['cm']['options'][_0x51e79d('0xcd0')](_0x306208[0x0]))['setAttribute'](_0x51e79d('0x1052'),_0x306208[0x0]),_0x22bb28&&_0x217fe9<0x9?_0x127319['appendChild'](_0x4aeabd(_0x51e79d('0x10c'),[_0x2366f3])):_0x127319['appendChild'](_0x2366f3),_0x5a45f2[_0x51e79d('0xa9c')]+=0x1);_0x5a45f2['map'][_0x51e79d('0x91b')](_0x5a45f2[_0x51e79d('0x9db')],_0x5a45f2[_0x51e79d('0x9db')]+0x1,_0x2366f3),_0x5a45f2[_0x51e79d('0x9db')]++;}}else _0x5a45f2[_0x51e79d('0xa9c')]+=_0x20f7db[_0x51e79d('0x13')],_0x127319=document[_0x51e79d('0xe21')](_0x53d557),_0x5a45f2[_0x51e79d('0xd8e')][_0x51e79d('0x91b')](_0x5a45f2['pos'],_0x5a45f2[_0x51e79d('0x9db')]+_0x20f7db['length'],_0x127319),_0x22bb28&&_0x217fe9<0x9&&(_0x1fd566=!0x0),_0x5a45f2[_0x51e79d('0x9db')]+=_0x20f7db[_0x51e79d('0x13')];if(_0x5a45f2[_0x51e79d('0xa0c')]=0x20==_0x53d557[_0x51e79d('0xd66')](_0x20f7db[_0x51e79d('0x13')]-0x1),_0x234a6e||_0x2f84c8||_0x501d1f||_0x1fd566||_0x91d665||_0x1e9490){var _0x52bc64=_0x234a6e||'';_0x2f84c8&&(_0x52bc64+=_0x2f84c8),_0x501d1f&&(_0x52bc64+=_0x501d1f);var _0x2642d3=_0x4aeabd(_0x51e79d('0x10c'),[_0x127319],_0x52bc64,_0x91d665);if(_0x1e9490)for(var _0x14e90a in _0x1e9490)_0x1e9490[_0x51e79d('0xe9c')](_0x14e90a)&&_0x51e79d('0xe81')!=_0x14e90a&&'class'!=_0x14e90a&&_0x2642d3['setAttribute'](_0x14e90a,_0x1e9490[_0x14e90a]);return _0x5a45f2[_0x51e79d('0x944')]['appendChild'](_0x2642d3);}_0x5a45f2[_0x51e79d('0x944')][_0x51e79d('0x657')](_0x127319);}}function _0x2f39fd(_0x5e82b5,_0x4d70f7){return function(_0x537750,_0x121aec,_0x10129f,_0x2dfbf2,_0x2b9b27,_0x5a3fa0,_0x5f1af1){var _0x358b6a=_0x5376;_0x10129f=_0x10129f?_0x10129f+_0x358b6a('0xc81'):_0x358b6a('0x66e');for(var _0x645836=_0x537750['pos'],_0x2a6fd5=_0x645836+_0x121aec[_0x358b6a('0x13')];;){for(var _0x314cec=void 0x0,_0x255355=0x0;_0x255355<_0x4d70f7[_0x358b6a('0x13')]&&!((_0x314cec=_0x4d70f7[_0x255355])['to']>_0x645836&&_0x314cec[_0x358b6a('0x1161')]<=_0x645836);_0x255355++);if(_0x314cec['to']>=_0x2a6fd5)return _0x5e82b5(_0x537750,_0x121aec,_0x10129f,_0x2dfbf2,_0x2b9b27,_0x5a3fa0,_0x5f1af1);_0x5e82b5(_0x537750,_0x121aec[_0x358b6a('0xdf1')](0x0,_0x314cec['to']-_0x645836),_0x10129f,_0x2dfbf2,null,_0x5a3fa0,_0x5f1af1),_0x2dfbf2=null,_0x121aec=_0x121aec[_0x358b6a('0xdf1')](_0x314cec['to']-_0x645836),_0x645836=_0x314cec['to'];}};}function _0x4cf336(_0x173b5a,_0x34e143,_0x379738,_0x5d30ed){var _0x43e1a6=_0x1a265f,_0xb688a6=!_0x5d30ed&&_0x379738[_0x43e1a6('0xd0c')];_0xb688a6&&_0x173b5a[_0x43e1a6('0xd8e')][_0x43e1a6('0x91b')](_0x173b5a['pos'],_0x173b5a[_0x43e1a6('0x9db')]+_0x34e143,_0xb688a6),!_0x5d30ed&&_0x173b5a['cm'][_0x43e1a6('0x13d')][_0x43e1a6('0x2f8')]['needsContentAttribute']&&(_0xb688a6||(_0xb688a6=_0x173b5a[_0x43e1a6('0x944')][_0x43e1a6('0x657')](document[_0x43e1a6('0xfa9')]('span'))),_0xb688a6[_0x43e1a6('0x451')]('cm-marker',_0x379738['id'])),_0xb688a6&&(_0x173b5a['cm']['display'][_0x43e1a6('0x2f8')]['setUneditable'](_0xb688a6),_0x173b5a[_0x43e1a6('0x944')][_0x43e1a6('0x657')](_0xb688a6)),_0x173b5a['pos']+=_0x34e143,_0x173b5a[_0x43e1a6('0xa0c')]=!0x1;}function _0x50c8f9(_0x223e96,_0x34ea54,_0x3589c3){var _0x26afae=_0x1a265f,_0x43c421=_0x223e96[_0x26afae('0x407')],_0x55c92f=_0x223e96['text'],_0x1c1523=0x0;if(_0x43c421)for(var _0x396d03,_0x21c9f4,_0x3817de,_0x4c64e7,_0x433621,_0x253afd,_0x4d45e5,_0x19a9fd=_0x55c92f['length'],_0x3565bb=0x0,_0x1aabfd=0x1,_0x85640e='',_0x5a0752=0x0;;){if(_0x5a0752==_0x3565bb){_0x3817de=_0x4c64e7=_0x433621=_0x21c9f4='',_0x4d45e5=null,_0x253afd=null,_0x5a0752=0x1/0x0;for(var _0x1e81be=[],_0x23f074=void 0x0,_0x3d3f1d=0x0;_0x3d3f1d<_0x43c421[_0x26afae('0x13')];++_0x3d3f1d){var _0x3c94b0=_0x43c421[_0x3d3f1d],_0x529a87=_0x3c94b0['marker'];if('bookmark'==_0x529a87[_0x26afae('0x921')]&&_0x3c94b0['from']==_0x3565bb&&_0x529a87[_0x26afae('0xd0c')])_0x1e81be['push'](_0x529a87);else{if(_0x3c94b0[_0x26afae('0x1161')]<=_0x3565bb&&(null==_0x3c94b0['to']||_0x3c94b0['to']>_0x3565bb||_0x529a87[_0x26afae('0xfec')]&&_0x3c94b0['to']==_0x3565bb&&_0x3c94b0['from']==_0x3565bb)){if(null!=_0x3c94b0['to']&&_0x3c94b0['to']!=_0x3565bb&&_0x5a0752>_0x3c94b0['to']&&(_0x5a0752=_0x3c94b0['to'],_0x4c64e7=''),_0x529a87[_0x26afae('0x867')]&&(_0x3817de+='\x20'+_0x529a87[_0x26afae('0x867')]),_0x529a87[_0x26afae('0x2d6')]&&(_0x21c9f4=(_0x21c9f4?_0x21c9f4+';':'')+_0x529a87[_0x26afae('0x2d6')]),_0x529a87[_0x26afae('0x424')]&&_0x3c94b0[_0x26afae('0x1161')]==_0x3565bb&&(_0x433621+='\x20'+_0x529a87['startStyle']),_0x529a87[_0x26afae('0x3b6')]&&_0x3c94b0['to']==_0x5a0752&&(_0x23f074||(_0x23f074=[]))['push'](_0x529a87[_0x26afae('0x3b6')],_0x3c94b0['to']),_0x529a87[_0x26afae('0xf6d')]&&((_0x4d45e5||(_0x4d45e5={}))[_0x26afae('0xf6d')]=_0x529a87['title']),_0x529a87[_0x26afae('0x331')])for(var _0x5aa2ac in _0x529a87[_0x26afae('0x331')])(_0x4d45e5||(_0x4d45e5={}))[_0x5aa2ac]=_0x529a87[_0x26afae('0x331')][_0x5aa2ac];_0x529a87[_0x26afae('0xfec')]&&(!_0x253afd||_0x1e1ae7(_0x253afd[_0x26afae('0x11d')],_0x529a87)<0x0)&&(_0x253afd=_0x3c94b0);}else _0x3c94b0['from']>_0x3565bb&&_0x5a0752>_0x3c94b0['from']&&(_0x5a0752=_0x3c94b0[_0x26afae('0x1161')]);}}if(_0x23f074)for(var _0xc933a3=0x0;_0xc933a3<_0x23f074[_0x26afae('0x13')];_0xc933a3+=0x2)_0x23f074[_0xc933a3+0x1]==_0x5a0752&&(_0x4c64e7+='\x20'+_0x23f074[_0xc933a3]);if(!_0x253afd||_0x253afd['from']==_0x3565bb)for(var _0x10c871=0x0;_0x10c871<_0x1e81be[_0x26afae('0x13')];++_0x10c871)_0x4cf336(_0x34ea54,0x0,_0x1e81be[_0x10c871]);if(_0x253afd&&(_0x253afd['from']||0x0)==_0x3565bb){if(_0x4cf336(_0x34ea54,(null==_0x253afd['to']?_0x19a9fd+0x1:_0x253afd['to'])-_0x3565bb,_0x253afd[_0x26afae('0x11d')],null==_0x253afd[_0x26afae('0x1161')]),null==_0x253afd['to'])return;_0x253afd['to']==_0x3565bb&&(_0x253afd=!0x1);}}if(_0x3565bb>=_0x19a9fd)break;for(var _0x1bfd6e=Math['min'](_0x19a9fd,_0x5a0752);;){if(_0x85640e){var _0x2a1cb5=_0x3565bb+_0x85640e['length'];if(!_0x253afd){var _0x8c411b=_0x2a1cb5>_0x1bfd6e?_0x85640e['slice'](0x0,_0x1bfd6e-_0x3565bb):_0x85640e;_0x34ea54[_0x26afae('0x7af')](_0x34ea54,_0x8c411b,_0x396d03?_0x396d03+_0x3817de:_0x3817de,_0x433621,_0x3565bb+_0x8c411b[_0x26afae('0x13')]==_0x5a0752?_0x4c64e7:'',_0x21c9f4,_0x4d45e5);}if(_0x2a1cb5>=_0x1bfd6e){_0x85640e=_0x85640e['slice'](_0x1bfd6e-_0x3565bb),_0x3565bb=_0x1bfd6e;break;}_0x3565bb=_0x2a1cb5,_0x433621='';}_0x85640e=_0x55c92f[_0x26afae('0xdf1')](_0x1c1523,_0x1c1523=_0x3589c3[_0x1aabfd++]),_0x396d03=_0x4da6d4(_0x3589c3[_0x1aabfd++],_0x34ea54['cm'][_0x26afae('0x29d')]);}}else for(var _0x4fefb8=0x1;_0x4fefb8<_0x3589c3['length'];_0x4fefb8+=0x2)_0x34ea54[_0x26afae('0x7af')](_0x34ea54,_0x55c92f[_0x26afae('0xdf1')](_0x1c1523,_0x1c1523=_0x3589c3[_0x4fefb8]),_0x4da6d4(_0x3589c3[_0x4fefb8+0x1],_0x34ea54['cm'][_0x26afae('0x29d')]));}function _0x5b6c70(_0x1cc5a0,_0x1e1a30,_0x2e48b7){var _0x284f31=_0x1a265f;this['line']=_0x1e1a30,this[_0x284f31('0x19d')]=function(_0x34ffd2){var _0xedff48=_0x284f31;for(var _0x5be9ae,_0x4c0e18;_0x5be9ae=_0x37ab89(_0x34ffd2);)_0x34ffd2=_0x5be9ae['find'](0x1,!0x0)[_0xedff48('0x860')],(_0x4c0e18||(_0x4c0e18=[]))['push'](_0x34ffd2);return _0x4c0e18;}(_0x1e1a30),this[_0x284f31('0x10a2')]=this[_0x284f31('0x19d')]?_0x432947(_0x18184b(this[_0x284f31('0x19d')]))-_0x2e48b7+0x1:0x1,this['node']=this[_0x284f31('0x5b2')]=null,this['hidden']=_0x20f310(_0x1cc5a0,_0x1e1a30);}function _0x463a64(_0x5879a6,_0x50e805,_0x5a8e48){var _0x25a4cb=_0x1a265f;for(var _0x3e4fe0,_0x9c9e7f=[],_0x5e53c4=_0x50e805;_0x5e53c4<_0x5a8e48;_0x5e53c4=_0x3e4fe0){var _0xf32364=new _0x5b6c70(_0x5879a6[_0x25a4cb('0x481')],_0x1964d4(_0x5879a6[_0x25a4cb('0x481')],_0x5e53c4),_0x5e53c4);_0x3e4fe0=_0x5e53c4+_0xf32364[_0x25a4cb('0x10a2')],_0x9c9e7f['push'](_0xf32364);}return _0x9c9e7f;}var _0x4d0654=null,_0x13cfbe=null;function _0x1a8e5b(_0x5cc7e9,_0x4bec71){var _0x3dce9b=_0x1a265f,_0x4464c6=_0x5d49e1(_0x5cc7e9,_0x4bec71);if(_0x4464c6[_0x3dce9b('0x13')]){var _0x4bbcb5,_0x1d54a3=Array[_0x3dce9b('0xe02')][_0x3dce9b('0xdf1')][_0x3dce9b('0xfd2')](arguments,0x2);_0x4d0654?_0x4bbcb5=_0x4d0654[_0x3dce9b('0x8f5')]:_0x13cfbe?_0x4bbcb5=_0x13cfbe:(_0x4bbcb5=_0x13cfbe=[],setTimeout(_0x20f92f,0x0));for(var _0x4d1902=function(_0x3ed331){_0x4bbcb5['push'](function(){return _0x4464c6[_0x3ed331]['apply'](null,_0x1d54a3);});},_0x42c60f=0x0;_0x42c60f<_0x4464c6[_0x3dce9b('0x13')];++_0x42c60f)_0x4d1902(_0x42c60f);}}function _0x20f92f(){var _0x3634cc=_0x1a265f,_0x277b8c=_0x13cfbe;_0x13cfbe=null;for(var _0x150cc9=0x0;_0x150cc9<_0x277b8c[_0x3634cc('0x13')];++_0x150cc9)_0x277b8c[_0x150cc9]();}function _0x2a0b65(_0x55e36a,_0x3326e4,_0x40f4eb,_0x65ca7a){var _0x2fff16=_0x1a265f;for(var _0x289921=0x0;_0x289921<_0x3326e4[_0x2fff16('0xba0')]['length'];_0x289921++){var _0x25b200=_0x3326e4[_0x2fff16('0xba0')][_0x289921];'text'==_0x25b200?_0x544927(_0x55e36a,_0x3326e4):_0x2fff16('0xc42')==_0x25b200?_0x3b3201(_0x55e36a,_0x3326e4,_0x40f4eb,_0x65ca7a):_0x2fff16('0x63c')==_0x25b200?_0x3be27a(_0x55e36a,_0x3326e4):_0x2fff16('0x838')==_0x25b200&&_0x335852(_0x55e36a,_0x3326e4,_0x65ca7a);}_0x3326e4['changes']=null;}function _0x5d59fa(_0x169097){var _0x5085b1=_0x1a265f;return _0x169097[_0x5085b1('0xb95')]==_0x169097[_0x5085b1('0x5b2')]&&(_0x169097[_0x5085b1('0xb95')]=_0x4aeabd(_0x5085b1('0x26c'),null,null,_0x5085b1('0x475')),_0x169097[_0x5085b1('0x5b2')][_0x5085b1('0x9cd')]&&_0x169097['text'][_0x5085b1('0x9cd')]['replaceChild'](_0x169097[_0x5085b1('0xb95')],_0x169097['text']),_0x169097['node']['appendChild'](_0x169097[_0x5085b1('0x5b2')]),_0x22bb28&&_0x217fe9<0x8&&(_0x169097[_0x5085b1('0xb95')][_0x5085b1('0xe81')][_0x5085b1('0x79a')]=0x2)),_0x169097['node'];}function _0x2760e2(_0x37779a,_0x55c41a){var _0x4f1b47=_0x1a265f,_0x4f9e25=_0x37779a[_0x4f1b47('0x13d')]['externalMeasured'];return _0x4f9e25&&_0x4f9e25[_0x4f1b47('0x860')]==_0x55c41a[_0x4f1b47('0x860')]?(_0x37779a[_0x4f1b47('0x13d')][_0x4f1b47('0x283')]=null,_0x55c41a['measure']=_0x4f9e25[_0x4f1b47('0xaac')],_0x4f9e25[_0x4f1b47('0xa3b')]):_0x3f42d3(_0x37779a,_0x55c41a);}function _0x544927(_0x3fb5dd,_0x33698a){var _0x499372=_0x1a265f,_0x2bb643=_0x33698a[_0x499372('0x5b2')][_0x499372('0x867')],_0x150ea7=_0x2760e2(_0x3fb5dd,_0x33698a);_0x33698a['text']==_0x33698a['node']&&(_0x33698a[_0x499372('0xb95')]=_0x150ea7[_0x499372('0xfe7')]),_0x33698a[_0x499372('0x5b2')][_0x499372('0x9cd')][_0x499372('0x1104')](_0x150ea7[_0x499372('0xfe7')],_0x33698a['text']),_0x33698a[_0x499372('0x5b2')]=_0x150ea7[_0x499372('0xfe7')],_0x150ea7[_0x499372('0x664')]!=_0x33698a[_0x499372('0x664')]||_0x150ea7['textClass']!=_0x33698a[_0x499372('0x6eb')]?(_0x33698a['bgClass']=_0x150ea7['bgClass'],_0x33698a[_0x499372('0x6eb')]=_0x150ea7['textClass'],_0x3be27a(_0x3fb5dd,_0x33698a)):_0x2bb643&&(_0x33698a[_0x499372('0x5b2')][_0x499372('0x867')]=_0x2bb643);}function _0x3be27a(_0x32d87b,_0x343771){var _0x51778d=_0x1a265f;!function(_0x4e0f80,_0x2b98de){var _0x442031=_0x5376,_0x5a201d=_0x2b98de['bgClass']?_0x2b98de['bgClass']+'\x20'+(_0x2b98de['line'][_0x442031('0x664')]||''):_0x2b98de[_0x442031('0x860')][_0x442031('0x664')];if(_0x5a201d&&(_0x5a201d+='\x20CodeMirror-linebackground'),_0x2b98de[_0x442031('0x23f')])_0x5a201d?_0x2b98de[_0x442031('0x23f')]['className']=_0x5a201d:(_0x2b98de['background'][_0x442031('0x9cd')][_0x442031('0xf93')](_0x2b98de['background']),_0x2b98de[_0x442031('0x23f')]=null);else{if(_0x5a201d){var _0x3c36c0=_0x5d59fa(_0x2b98de);_0x2b98de[_0x442031('0x23f')]=_0x3c36c0[_0x442031('0xfb')](_0x4aeabd(_0x442031('0x26c'),null,_0x5a201d),_0x3c36c0[_0x442031('0xf86')]),_0x4e0f80[_0x442031('0x13d')][_0x442031('0x2f8')]['setUneditable'](_0x2b98de[_0x442031('0x23f')]);}}}(_0x32d87b,_0x343771),_0x343771[_0x51778d('0x860')][_0x51778d('0xa34')]?_0x5d59fa(_0x343771)['className']=_0x343771['line'][_0x51778d('0xa34')]:_0x343771[_0x51778d('0xb95')]!=_0x343771[_0x51778d('0x5b2')]&&(_0x343771[_0x51778d('0xb95')]['className']='');var _0x234e5e=_0x343771[_0x51778d('0x6eb')]?_0x343771[_0x51778d('0x6eb')]+'\x20'+(_0x343771[_0x51778d('0x860')][_0x51778d('0x6eb')]||''):_0x343771[_0x51778d('0x860')][_0x51778d('0x6eb')];_0x343771[_0x51778d('0x5b2')][_0x51778d('0x867')]=_0x234e5e||'';}function _0x3b3201(_0x24a25c,_0x3372f2,_0x1748c8,_0x5d68d5){var _0x294b9f=_0x1a265f;if(_0x3372f2[_0x294b9f('0xc42')]&&(_0x3372f2[_0x294b9f('0xb95')]['removeChild'](_0x3372f2[_0x294b9f('0xc42')]),_0x3372f2[_0x294b9f('0xc42')]=null),_0x3372f2['gutterBackground']&&(_0x3372f2[_0x294b9f('0xb95')][_0x294b9f('0xf93')](_0x3372f2[_0x294b9f('0x1b4')]),_0x3372f2['gutterBackground']=null),_0x3372f2[_0x294b9f('0x860')][_0x294b9f('0x56')]){var _0x1803a0=_0x5d59fa(_0x3372f2);_0x3372f2[_0x294b9f('0x1b4')]=_0x4aeabd(_0x294b9f('0x26c'),null,_0x294b9f('0x1023')+_0x3372f2['line'][_0x294b9f('0x56')],'left:\x20'+(_0x24a25c[_0x294b9f('0x29d')][_0x294b9f('0x7f8')]?_0x5d68d5[_0x294b9f('0x9a')]:-_0x5d68d5['gutterTotalWidth'])+_0x294b9f('0x10c1')+_0x5d68d5[_0x294b9f('0x102b')]+'px'),_0x24a25c[_0x294b9f('0x13d')][_0x294b9f('0x2f8')][_0x294b9f('0x3d1')](_0x3372f2[_0x294b9f('0x1b4')]),_0x1803a0[_0x294b9f('0xfb')](_0x3372f2[_0x294b9f('0x1b4')],_0x3372f2[_0x294b9f('0x5b2')]);}var _0x4fd3f6=_0x3372f2[_0x294b9f('0x860')]['gutterMarkers'];if(_0x24a25c[_0x294b9f('0x29d')][_0x294b9f('0x8fa')]||_0x4fd3f6){var _0x22eca3=_0x5d59fa(_0x3372f2),_0x37a805=_0x3372f2[_0x294b9f('0xc42')]=_0x4aeabd('div',null,_0x294b9f('0x1046'),'left:\x20'+(_0x24a25c['options'][_0x294b9f('0x7f8')]?_0x5d68d5[_0x294b9f('0x9a')]:-_0x5d68d5[_0x294b9f('0x102b')])+'px');if(_0x24a25c[_0x294b9f('0x13d')][_0x294b9f('0x2f8')][_0x294b9f('0x3d1')](_0x37a805),_0x22eca3['insertBefore'](_0x37a805,_0x3372f2[_0x294b9f('0x5b2')]),_0x3372f2[_0x294b9f('0x860')][_0x294b9f('0x56')]&&(_0x37a805[_0x294b9f('0x867')]+='\x20'+_0x3372f2['line']['gutterClass']),!_0x24a25c[_0x294b9f('0x29d')][_0x294b9f('0x8fa')]||_0x4fd3f6&&_0x4fd3f6['CodeMirror-linenumbers']||(_0x3372f2[_0x294b9f('0xcc3')]=_0x37a805[_0x294b9f('0x657')](_0x4aeabd(_0x294b9f('0x26c'),_0x217f83(_0x24a25c[_0x294b9f('0x29d')],_0x1748c8),'CodeMirror-linenumber\x20CodeMirror-gutter-elt',_0x294b9f('0xa1d')+_0x5d68d5[_0x294b9f('0x28c')][_0x294b9f('0xa50')]+_0x294b9f('0x10c1')+_0x24a25c[_0x294b9f('0x13d')]['lineNumInnerWidth']+'px'))),_0x4fd3f6)for(var _0x7e45d7=0x0;_0x7e45d7<_0x24a25c['display']['gutterSpecs'][_0x294b9f('0x13')];++_0x7e45d7){var _0x28cc6f=_0x24a25c[_0x294b9f('0x13d')]['gutterSpecs'][_0x7e45d7][_0x294b9f('0x867')],_0x4a6298=_0x4fd3f6['hasOwnProperty'](_0x28cc6f)&&_0x4fd3f6[_0x28cc6f];_0x4a6298&&_0x37a805[_0x294b9f('0x657')](_0x4aeabd(_0x294b9f('0x26c'),[_0x4a6298],_0x294b9f('0x800'),_0x294b9f('0xa1d')+_0x5d68d5[_0x294b9f('0x28c')][_0x28cc6f]+_0x294b9f('0x10c1')+_0x5d68d5[_0x294b9f('0x580')][_0x28cc6f]+'px'));}}}function _0x335852(_0x41530e,_0x3232ce,_0x48f1b5){var _0x9ae09d=_0x1a265f;_0x3232ce[_0x9ae09d('0x146')]&&(_0x3232ce[_0x9ae09d('0x146')]=null);for(var _0x544617=_0x31e19d('CodeMirror-linewidget'),_0x5c1bff=_0x3232ce[_0x9ae09d('0xb95')][_0x9ae09d('0xf86')],_0x24cb65=void 0x0;_0x5c1bff;_0x5c1bff=_0x24cb65)_0x24cb65=_0x5c1bff[_0x9ae09d('0x85b')],_0x544617[_0x9ae09d('0x2c3')](_0x5c1bff[_0x9ae09d('0x867')])&&_0x3232ce[_0x9ae09d('0xb95')][_0x9ae09d('0xf93')](_0x5c1bff);_0x266c0e(_0x41530e,_0x3232ce,_0x48f1b5);}function _0x29ff22(_0x37cd3a,_0x207d5e,_0x27e530,_0x1b8a49){var _0x4dfdc6=_0x1a265f,_0x1b3bb5=_0x2760e2(_0x37cd3a,_0x207d5e);return _0x207d5e[_0x4dfdc6('0x5b2')]=_0x207d5e[_0x4dfdc6('0xb95')]=_0x1b3bb5['pre'],_0x1b3bb5[_0x4dfdc6('0x664')]&&(_0x207d5e[_0x4dfdc6('0x664')]=_0x1b3bb5[_0x4dfdc6('0x664')]),_0x1b3bb5[_0x4dfdc6('0x6eb')]&&(_0x207d5e[_0x4dfdc6('0x6eb')]=_0x1b3bb5[_0x4dfdc6('0x6eb')]),_0x3be27a(_0x37cd3a,_0x207d5e),_0x3b3201(_0x37cd3a,_0x207d5e,_0x27e530,_0x1b8a49),_0x266c0e(_0x37cd3a,_0x207d5e,_0x1b8a49),_0x207d5e[_0x4dfdc6('0xb95')];}function _0x266c0e(_0x881c50,_0x469f31,_0x5f04d2){var _0x27a2a9=_0x1a265f;if(_0x1eed55(_0x881c50,_0x469f31[_0x27a2a9('0x860')],_0x469f31,_0x5f04d2,!0x0),_0x469f31['rest'])for(var _0x46cd92=0x0;_0x46cd92<_0x469f31[_0x27a2a9('0x19d')][_0x27a2a9('0x13')];_0x46cd92++)_0x1eed55(_0x881c50,_0x469f31[_0x27a2a9('0x19d')][_0x46cd92],_0x469f31,_0x5f04d2,!0x1);}function _0x1eed55(_0x35e8bd,_0x3b1fae,_0xfafd86,_0x105f42,_0x32f27c){var _0x424794=_0x1a265f;if(_0x3b1fae[_0x424794('0x19a')])for(var _0xbe5f78=_0x5d59fa(_0xfafd86),_0xa87f4e=0x0,_0x18a337=_0x3b1fae[_0x424794('0x19a')];_0xa87f4e<_0x18a337['length'];++_0xa87f4e){var _0x356b22=_0x18a337[_0xa87f4e],_0x6a9aa6=_0x4aeabd('div',[_0x356b22[_0x424794('0xb95')]],_0x424794('0xdcf')+(_0x356b22[_0x424794('0x867')]?'\x20'+_0x356b22[_0x424794('0x867')]:''));_0x356b22[_0x424794('0x57e')]||_0x6a9aa6[_0x424794('0x451')](_0x424794('0xf5a'),_0x424794('0x9ed')),_0x4f7ae3(_0x356b22,_0x6a9aa6,_0xfafd86,_0x105f42),_0x35e8bd[_0x424794('0x13d')][_0x424794('0x2f8')]['setUneditable'](_0x6a9aa6),_0x32f27c&&_0x356b22[_0x424794('0xca2')]?_0xbe5f78[_0x424794('0xfb')](_0x6a9aa6,_0xfafd86[_0x424794('0xc42')]||_0xfafd86[_0x424794('0x5b2')]):_0xbe5f78[_0x424794('0x657')](_0x6a9aa6),_0x1a8e5b(_0x356b22,'redraw');}}function _0x4f7ae3(_0x27a0a8,_0x13c112,_0x362e49,_0x4660cb){var _0x5385de=_0x1a265f;if(_0x27a0a8[_0x5385de('0x3b2')]){(_0x362e49['alignable']||(_0x362e49[_0x5385de('0x146')]=[]))[_0x5385de('0x91b')](_0x13c112);var _0x46fd58=_0x4660cb[_0x5385de('0xce3')];_0x13c112[_0x5385de('0xe81')][_0x5385de('0x10fb')]=_0x4660cb['fixedPos']+'px',_0x27a0a8[_0x5385de('0x10a5')]||(_0x46fd58-=_0x4660cb['gutterTotalWidth'],_0x13c112[_0x5385de('0xe81')]['paddingLeft']=_0x4660cb[_0x5385de('0x102b')]+'px'),_0x13c112[_0x5385de('0xe81')][_0x5385de('0x115')]=_0x46fd58+'px';}_0x27a0a8['coverGutter']&&(_0x13c112['style'][_0x5385de('0x79a')]=0x5,_0x13c112[_0x5385de('0xe81')][_0x5385de('0xe57')]=_0x5385de('0xed4'),_0x27a0a8[_0x5385de('0x3b2')]||(_0x13c112[_0x5385de('0xe81')][_0x5385de('0xe38')]=-_0x4660cb['gutterTotalWidth']+'px'));}function _0x269321(_0x2527ac){var _0x575fbc=_0x1a265f;if(null!=_0x2527ac[_0x575fbc('0x27b')])return _0x2527ac[_0x575fbc('0x27b')];var _0x2dccb6=_0x2527ac[_0x575fbc('0x481')]['cm'];if(!_0x2dccb6)return 0x0;if(!_0x487fc0(document[_0x575fbc('0x82a')],_0x2527ac[_0x575fbc('0xb95')])){var _0xfa8f8=_0x575fbc('0x10b');_0x2527ac['coverGutter']&&(_0xfa8f8+=_0x575fbc('0xd91')+_0x2dccb6[_0x575fbc('0x13d')]['gutters']['offsetWidth']+_0x575fbc('0x97e')),_0x2527ac[_0x575fbc('0x3b2')]&&(_0xfa8f8+=_0x575fbc('0x10a')+_0x2dccb6['display'][_0x575fbc('0xfc3')][_0x575fbc('0xddd')]+_0x575fbc('0x97e')),_0x221945(_0x2dccb6[_0x575fbc('0x13d')][_0x575fbc('0xaac')],_0x4aeabd(_0x575fbc('0x26c'),[_0x2527ac[_0x575fbc('0xb95')]],null,_0xfa8f8));}return _0x2527ac[_0x575fbc('0x27b')]=_0x2527ac[_0x575fbc('0xb95')]['parentNode']['offsetHeight'];}function _0x113cb1(_0xf22541,_0x1f5b7b){var _0x573dcb=_0x1a265f;for(var _0x54eb92=_0x18ca14(_0x1f5b7b);_0x54eb92!=_0xf22541[_0x573dcb('0xfc3')];_0x54eb92=_0x54eb92['parentNode'])if(!_0x54eb92||0x1==_0x54eb92['nodeType']&&_0x573dcb('0x9ed')==_0x54eb92[_0x573dcb('0x6d9')](_0x573dcb('0xf5a'))||_0x54eb92[_0x573dcb('0x9cd')]==_0xf22541[_0x573dcb('0x68f')]&&_0x54eb92!=_0xf22541['mover'])return!0x0;}function _0x475c2f(_0x11f3cc){var _0x14b1e5=_0x1a265f;return _0x11f3cc[_0x14b1e5('0x1f5')][_0x14b1e5('0xf02')];}function _0x26cbdd(_0x4b6a6f){var _0x359c50=_0x1a265f;return _0x4b6a6f[_0x359c50('0x61e')][_0x359c50('0x495')]-_0x4b6a6f[_0x359c50('0x1f5')]['offsetHeight'];}function _0x233016(_0x14e7db){var _0x261ba3=_0x1a265f;if(_0x14e7db['cachedPaddingH'])return _0x14e7db[_0x261ba3('0xd10')];var _0x2e0d3f=_0x221945(_0x14e7db[_0x261ba3('0xaac')],_0x4aeabd(_0x261ba3('0xfe7'),'x','CodeMirror-line-like')),_0x51ed03=window[_0x261ba3('0xf64')]?window[_0x261ba3('0xf64')](_0x2e0d3f):_0x2e0d3f[_0x261ba3('0x10ff')],_0x3bab15={'left':parseInt(_0x51ed03['paddingLeft']),'right':parseInt(_0x51ed03['paddingRight'])};return isNaN(_0x3bab15[_0x261ba3('0x10fb')])||isNaN(_0x3bab15[_0x261ba3('0x94b')])||(_0x14e7db[_0x261ba3('0xd10')]=_0x3bab15),_0x3bab15;}function _0x1cc4be(_0x4f942c){var _0x1db9e0=_0x1a265f;return 0x32-_0x4f942c[_0x1db9e0('0x13d')][_0x1db9e0('0x50c')];}function _0x2eda44(_0x3bb521){var _0x141283=_0x1a265f;return _0x3bb521[_0x141283('0x13d')][_0x141283('0xf31')][_0x141283('0xddd')]-_0x1cc4be(_0x3bb521)-_0x3bb521['display'][_0x141283('0x100a')];}function _0xf54677(_0x15c5c8){var _0x40336a=_0x1a265f;return _0x15c5c8[_0x40336a('0x13d')][_0x40336a('0xf31')][_0x40336a('0x9d9')]-_0x1cc4be(_0x15c5c8)-_0x15c5c8['display'][_0x40336a('0x7b4')];}function _0x4e1fda(_0x127abf,_0x453a56,_0x40f525){var _0x223dd6=_0x1a265f;if(_0x127abf[_0x223dd6('0x860')]==_0x453a56)return{'map':_0x127abf[_0x223dd6('0xaac')]['map'],'cache':_0x127abf[_0x223dd6('0xaac')][_0x223dd6('0x28a')]};for(var _0x9a277f=0x0;_0x9a277f<_0x127abf[_0x223dd6('0x19d')]['length'];_0x9a277f++)if(_0x127abf[_0x223dd6('0x19d')][_0x9a277f]==_0x453a56)return{'map':_0x127abf['measure'][_0x223dd6('0xe59')][_0x9a277f],'cache':_0x127abf[_0x223dd6('0xaac')][_0x223dd6('0xdbc')][_0x9a277f]};for(var _0x4bea4d=0x0;_0x4bea4d<_0x127abf[_0x223dd6('0x19d')][_0x223dd6('0x13')];_0x4bea4d++)if(_0x432947(_0x127abf[_0x223dd6('0x19d')][_0x4bea4d])>_0x40f525)return{'map':_0x127abf[_0x223dd6('0xaac')]['maps'][_0x4bea4d],'cache':_0x127abf[_0x223dd6('0xaac')][_0x223dd6('0xdbc')][_0x4bea4d],'before':!0x0};}function _0x1742ef(_0x32c627,_0x49c45e,_0x58f76f,_0x3f69fe){return _0x2089da(_0x32c627,_0x1058f2(_0x32c627,_0x49c45e),_0x58f76f,_0x3f69fe);}function _0x21db41(_0x5de0d9,_0x27b99f){var _0x3728a1=_0x1a265f;if(_0x27b99f>=_0x5de0d9[_0x3728a1('0x13d')][_0x3728a1('0x812')]&&_0x27b99f<_0x5de0d9[_0x3728a1('0x13d')][_0x3728a1('0x3e5')])return _0x5de0d9[_0x3728a1('0x13d')][_0x3728a1('0x770')][_0x376711(_0x5de0d9,_0x27b99f)];var _0x57a4a5=_0x5de0d9[_0x3728a1('0x13d')][_0x3728a1('0x283')];return _0x57a4a5&&_0x27b99f>=_0x57a4a5['lineN']&&_0x27b99f<_0x57a4a5[_0x3728a1('0x1103')]+_0x57a4a5[_0x3728a1('0x10a2')]?_0x57a4a5:void 0x0;}function _0x1058f2(_0x1b559d,_0x19310e){var _0x5703dc=_0x1a265f,_0x50b9c4=_0x432947(_0x19310e),_0x4014e4=_0x21db41(_0x1b559d,_0x50b9c4);_0x4014e4&&!_0x4014e4[_0x5703dc('0x5b2')]?_0x4014e4=null:_0x4014e4&&_0x4014e4[_0x5703dc('0xba0')]&&(_0x2a0b65(_0x1b559d,_0x4014e4,_0x50b9c4,_0x3f2595(_0x1b559d)),_0x1b559d[_0x5703dc('0x5ec')][_0x5703dc('0xf91')]=!0x0),_0x4014e4||(_0x4014e4=function(_0x476b5e,_0x2f47fc){var _0x57d551=_0x5703dc,_0x35288c=_0x432947(_0x2f47fc=_0xa6d8(_0x2f47fc)),_0x3f6a8b=_0x476b5e[_0x57d551('0x13d')][_0x57d551('0x283')]=new _0x5b6c70(_0x476b5e[_0x57d551('0x481')],_0x2f47fc,_0x35288c);_0x3f6a8b['lineN']=_0x35288c;var _0xf487de=_0x3f6a8b[_0x57d551('0xa3b')]=_0x3f42d3(_0x476b5e,_0x3f6a8b);return _0x3f6a8b['text']=_0xf487de[_0x57d551('0xfe7')],_0x221945(_0x476b5e[_0x57d551('0x13d')]['lineMeasure'],_0xf487de['pre']),_0x3f6a8b;}(_0x1b559d,_0x19310e));var _0x2d02f5=_0x4e1fda(_0x4014e4,_0x19310e,_0x50b9c4);return{'line':_0x19310e,'view':_0x4014e4,'rect':null,'map':_0x2d02f5[_0x5703dc('0xd8e')],'cache':_0x2d02f5[_0x5703dc('0x28a')],'before':_0x2d02f5[_0x5703dc('0x4ec')],'hasHeights':!0x1};}function _0x2089da(_0x540895,_0x36644f,_0x555aea,_0x5b694b,_0x2dc507){var _0xff025b=_0x1a265f;_0x36644f[_0xff025b('0x4ec')]&&(_0x555aea=-0x1);var _0x80e8b0,_0x317d16=_0x555aea+(_0x5b694b||'');return _0x36644f['cache'][_0xff025b('0xe9c')](_0x317d16)?_0x80e8b0=_0x36644f['cache'][_0x317d16]:(_0x36644f[_0xff025b('0xe2e')]||(_0x36644f[_0xff025b('0xe2e')]=_0x36644f[_0xff025b('0x770')]['text']['getBoundingClientRect']()),_0x36644f[_0xff025b('0x1036')]||(!function(_0x1cca4a,_0x483218,_0x124027){var _0x33ec1f=_0xff025b,_0x4cf8cd=_0x1cca4a[_0x33ec1f('0x29d')][_0x33ec1f('0x215')],_0xab7a42=_0x4cf8cd&&_0x2eda44(_0x1cca4a);if(!_0x483218[_0x33ec1f('0xaac')][_0x33ec1f('0xa3a')]||_0x4cf8cd&&_0x483218[_0x33ec1f('0xaac')][_0x33ec1f('0x115')]!=_0xab7a42){var _0x44458e=_0x483218[_0x33ec1f('0xaac')][_0x33ec1f('0xa3a')]=[];if(_0x4cf8cd){_0x483218[_0x33ec1f('0xaac')][_0x33ec1f('0x115')]=_0xab7a42;for(var _0x1dc474=_0x483218[_0x33ec1f('0x5b2')][_0x33ec1f('0xf86')][_0x33ec1f('0xecd')](),_0x53cf5e=0x0;_0x53cf5e<_0x1dc474[_0x33ec1f('0x13')]-0x1;_0x53cf5e++){var _0x47e181=_0x1dc474[_0x53cf5e],_0x1710d9=_0x1dc474[_0x53cf5e+0x1];Math[_0x33ec1f('0x415')](_0x47e181[_0x33ec1f('0x9c2')]-_0x1710d9[_0x33ec1f('0x9c2')])>0x2&&_0x44458e['push']((_0x47e181[_0x33ec1f('0x9c2')]+_0x1710d9[_0x33ec1f('0x5b')])/0x2-_0x124027[_0x33ec1f('0x5b')]);}}_0x44458e[_0x33ec1f('0x91b')](_0x124027[_0x33ec1f('0x9c2')]-_0x124027[_0x33ec1f('0x5b')]);}}(_0x540895,_0x36644f[_0xff025b('0x770')],_0x36644f[_0xff025b('0xe2e')]),_0x36644f['hasHeights']=!0x0),(_0x80e8b0=function(_0x30e78b,_0x10826b,_0x1dc39f,_0x2427ef){var _0x1e2ede=_0xff025b,_0x1e04e3,_0x55d2f6=_0x24d59d(_0x10826b['map'],_0x1dc39f,_0x2427ef),_0x5b9e35=_0x55d2f6[_0x1e2ede('0xb95')],_0x2d3f68=_0x55d2f6[_0x1e2ede('0xa7e')],_0x3061ef=_0x55d2f6[_0x1e2ede('0xcad')],_0x994c7c=_0x55d2f6['collapse'];if(0x3==_0x5b9e35[_0x1e2ede('0x5a')]){for(var _0x14cf48=0x0;_0x14cf48<0x4;_0x14cf48++){for(;_0x2d3f68&&_0x21170c(_0x10826b[_0x1e2ede('0x860')]['text'][_0x1e2ede('0xcaf')](_0x55d2f6[_0x1e2ede('0xd14')]+_0x2d3f68));)--_0x2d3f68;for(;_0x55d2f6[_0x1e2ede('0xd14')]+_0x3061ef<_0x55d2f6[_0x1e2ede('0x676')]&&_0x21170c(_0x10826b[_0x1e2ede('0x860')]['text']['charAt'](_0x55d2f6['coverStart']+_0x3061ef));)++_0x3061ef;if((_0x1e04e3=_0x22bb28&&_0x217fe9<0x9&&0x0==_0x2d3f68&&_0x3061ef==_0x55d2f6[_0x1e2ede('0x676')]-_0x55d2f6['coverStart']?_0x5b9e35[_0x1e2ede('0x9cd')][_0x1e2ede('0x422')]():_0x4fca8e(_0x377102(_0x5b9e35,_0x2d3f68,_0x3061ef)['getClientRects'](),_0x2427ef))[_0x1e2ede('0x10fb')]||_0x1e04e3[_0x1e2ede('0x94b')]||0x0==_0x2d3f68)break;_0x3061ef=_0x2d3f68,_0x2d3f68-=0x1,_0x994c7c=_0x1e2ede('0x94b');}_0x22bb28&&_0x217fe9<0xb&&(_0x1e04e3=function(_0x338c67,_0x2628a4){var _0x2d989c=_0x1e2ede;if(!window['screen']||null==screen[_0x2d989c('0x85e')]||screen[_0x2d989c('0x85e')]==screen[_0x2d989c('0x30f')]||!function(_0x2d4b6c){var _0x391314=_0x2d989c;if(null!=_0x5072bb)return _0x5072bb;var _0x50b54d=_0x221945(_0x2d4b6c,_0x4aeabd('span','x')),_0x3f797d=_0x50b54d[_0x391314('0x422')](),_0x308e46=_0x377102(_0x50b54d,0x0,0x1)[_0x391314('0x422')]();return _0x5072bb=Math[_0x391314('0x415')](_0x3f797d[_0x391314('0x10fb')]-_0x308e46[_0x391314('0x10fb')])>0x1;}(_0x338c67))return _0x2628a4;var _0x463ad6=screen[_0x2d989c('0x85e')]/screen[_0x2d989c('0x30f')],_0x1bd1a6=screen[_0x2d989c('0xb6f')]/screen[_0x2d989c('0x47e')];return{'left':_0x2628a4[_0x2d989c('0x10fb')]*_0x463ad6,'right':_0x2628a4[_0x2d989c('0x94b')]*_0x463ad6,'top':_0x2628a4[_0x2d989c('0x5b')]*_0x1bd1a6,'bottom':_0x2628a4['bottom']*_0x1bd1a6};}(_0x30e78b[_0x1e2ede('0x13d')][_0x1e2ede('0xaac')],_0x1e04e3));}else{var _0x27c6e7;_0x2d3f68>0x0&&(_0x994c7c=_0x2427ef='right'),_0x1e04e3=_0x30e78b[_0x1e2ede('0x29d')][_0x1e2ede('0x215')]&&(_0x27c6e7=_0x5b9e35[_0x1e2ede('0xecd')]())[_0x1e2ede('0x13')]>0x1?_0x27c6e7[_0x1e2ede('0x94b')==_0x2427ef?_0x27c6e7[_0x1e2ede('0x13')]-0x1:0x0]:_0x5b9e35[_0x1e2ede('0x422')]();}if(_0x22bb28&&_0x217fe9<0x9&&!_0x2d3f68&&(!_0x1e04e3||!_0x1e04e3[_0x1e2ede('0x10fb')]&&!_0x1e04e3[_0x1e2ede('0x94b')])){var _0x3b90a3=_0x5b9e35[_0x1e2ede('0x9cd')][_0x1e2ede('0xecd')]()[0x0];_0x1e04e3=_0x3b90a3?{'left':_0x3b90a3['left'],'right':_0x3b90a3[_0x1e2ede('0x10fb')]+_0x48a458(_0x30e78b[_0x1e2ede('0x13d')]),'top':_0x3b90a3['top'],'bottom':_0x3b90a3[_0x1e2ede('0x9c2')]}:_0x1bd697;}for(var _0x495722=_0x1e04e3[_0x1e2ede('0x5b')]-_0x10826b[_0x1e2ede('0xe2e')][_0x1e2ede('0x5b')],_0xa06c70=_0x1e04e3[_0x1e2ede('0x9c2')]-_0x10826b[_0x1e2ede('0xe2e')][_0x1e2ede('0x5b')],_0x26f797=(_0x495722+_0xa06c70)/0x2,_0x5e2201=_0x10826b[_0x1e2ede('0x770')][_0x1e2ede('0xaac')][_0x1e2ede('0xa3a')],_0x5895ad=0x0;_0x5895ad<_0x5e2201[_0x1e2ede('0x13')]-0x1&&!(_0x26f797<_0x5e2201[_0x5895ad]);_0x5895ad++);var _0x3ab479=_0x5895ad?_0x5e2201[_0x5895ad-0x1]:0x0,_0x468925=_0x5e2201[_0x5895ad],_0xd36d9c={'left':(_0x1e2ede('0x94b')==_0x994c7c?_0x1e04e3[_0x1e2ede('0x94b')]:_0x1e04e3[_0x1e2ede('0x10fb')])-_0x10826b[_0x1e2ede('0xe2e')]['left'],'right':(_0x1e2ede('0x10fb')==_0x994c7c?_0x1e04e3[_0x1e2ede('0x10fb')]:_0x1e04e3[_0x1e2ede('0x94b')])-_0x10826b[_0x1e2ede('0xe2e')]['left'],'top':_0x3ab479,'bottom':_0x468925};return _0x1e04e3['left']||_0x1e04e3['right']||(_0xd36d9c[_0x1e2ede('0xe4c')]=!0x0),_0x30e78b['options']['singleCursorHeightPerLine']||(_0xd36d9c[_0x1e2ede('0xc26')]=_0x495722,_0xd36d9c[_0x1e2ede('0xeca')]=_0xa06c70),_0xd36d9c;}(_0x540895,_0x36644f,_0x555aea,_0x5b694b))[_0xff025b('0xe4c')]||(_0x36644f['cache'][_0x317d16]=_0x80e8b0)),{'left':_0x80e8b0[_0xff025b('0x10fb')],'right':_0x80e8b0[_0xff025b('0x94b')],'top':_0x2dc507?_0x80e8b0['rtop']:_0x80e8b0[_0xff025b('0x5b')],'bottom':_0x2dc507?_0x80e8b0[_0xff025b('0xeca')]:_0x80e8b0[_0xff025b('0x9c2')]};}var _0x3c98de,_0x1bd697={'left':0x0,'right':0x0,'top':0x0,'bottom':0x0};function _0x24d59d(_0x320d6e,_0x2ef535,_0x182c5f){var _0x4f07a4=_0x1a265f;for(var _0x3ce3aa,_0x1bfd7d,_0x1ffacd,_0x4d1d25,_0x27572c,_0x199bad,_0x5699d8=0x0;_0x5699d8<_0x320d6e[_0x4f07a4('0x13')];_0x5699d8+=0x3)if(_0x27572c=_0x320d6e[_0x5699d8],_0x199bad=_0x320d6e[_0x5699d8+0x1],_0x2ef535<_0x27572c?(_0x1bfd7d=0x0,_0x1ffacd=0x1,_0x4d1d25=_0x4f07a4('0x10fb')):_0x2ef535<_0x199bad?_0x1ffacd=(_0x1bfd7d=_0x2ef535-_0x27572c)+0x1:(_0x5699d8==_0x320d6e[_0x4f07a4('0x13')]-0x3||_0x2ef535==_0x199bad&&_0x320d6e[_0x5699d8+0x3]>_0x2ef535)&&(_0x1bfd7d=(_0x1ffacd=_0x199bad-_0x27572c)-0x1,_0x2ef535>=_0x199bad&&(_0x4d1d25='right')),null!=_0x1bfd7d){if(_0x3ce3aa=_0x320d6e[_0x5699d8+0x2],_0x27572c==_0x199bad&&_0x182c5f==(_0x3ce3aa[_0x4f07a4('0xb17')]?_0x4f07a4('0x10fb'):_0x4f07a4('0x94b'))&&(_0x4d1d25=_0x182c5f),'left'==_0x182c5f&&0x0==_0x1bfd7d)for(;_0x5699d8&&_0x320d6e[_0x5699d8-0x2]==_0x320d6e[_0x5699d8-0x3]&&_0x320d6e[_0x5699d8-0x1][_0x4f07a4('0xb17')];)_0x3ce3aa=_0x320d6e[0x2+(_0x5699d8-=0x3)],_0x4d1d25=_0x4f07a4('0x10fb');if(_0x4f07a4('0x94b')==_0x182c5f&&_0x1bfd7d==_0x199bad-_0x27572c)for(;_0x5699d8<_0x320d6e['length']-0x3&&_0x320d6e[_0x5699d8+0x3]==_0x320d6e[_0x5699d8+0x4]&&!_0x320d6e[_0x5699d8+0x5][_0x4f07a4('0xb17')];)_0x3ce3aa=_0x320d6e[(_0x5699d8+=0x3)+0x2],_0x4d1d25=_0x4f07a4('0x94b');break;}return{'node':_0x3ce3aa,'start':_0x1bfd7d,'end':_0x1ffacd,'collapse':_0x4d1d25,'coverStart':_0x27572c,'coverEnd':_0x199bad};}function _0x4fca8e(_0x2797f9,_0x43ac1e){var _0x2d9076=_0x1a265f,_0x3f7877=_0x1bd697;if('left'==_0x43ac1e)for(var _0x53a1c7=0x0;_0x53a1c7<_0x2797f9['length']&&(_0x3f7877=_0x2797f9[_0x53a1c7])[_0x2d9076('0x10fb')]==_0x3f7877[_0x2d9076('0x94b')];_0x53a1c7++);else for(var _0x19e73d=_0x2797f9[_0x2d9076('0x13')]-0x1;_0x19e73d>=0x0&&(_0x3f7877=_0x2797f9[_0x19e73d])['left']==_0x3f7877[_0x2d9076('0x94b')];_0x19e73d--);return _0x3f7877;}function _0x3677ad(_0x37b412){var _0x5cf2ce=_0x1a265f;if(_0x37b412[_0x5cf2ce('0xaac')]&&(_0x37b412[_0x5cf2ce('0xaac')][_0x5cf2ce('0x28a')]={},_0x37b412['measure'][_0x5cf2ce('0xa3a')]=null,_0x37b412[_0x5cf2ce('0x19d')]))for(var _0x2a28f6=0x0;_0x2a28f6<_0x37b412[_0x5cf2ce('0x19d')][_0x5cf2ce('0x13')];_0x2a28f6++)_0x37b412[_0x5cf2ce('0xaac')]['caches'][_0x2a28f6]={};}function _0x15e403(_0x4b02c0){var _0x319ce2=_0x1a265f;_0x4b02c0[_0x319ce2('0x13d')]['externalMeasure']=null,_0x11fb2f(_0x4b02c0[_0x319ce2('0x13d')][_0x319ce2('0xcb4')]);for(var _0x5bbd35=0x0;_0x5bbd35<_0x4b02c0[_0x319ce2('0x13d')][_0x319ce2('0x770')][_0x319ce2('0x13')];_0x5bbd35++)_0x3677ad(_0x4b02c0['display'][_0x319ce2('0x770')][_0x5bbd35]);}function _0x4ccb63(_0x55adce){var _0x51108f=_0x1a265f;_0x15e403(_0x55adce),_0x55adce['display']['cachedCharWidth']=_0x55adce[_0x51108f('0x13d')]['cachedTextHeight']=_0x55adce[_0x51108f('0x13d')][_0x51108f('0xd10')]=null,_0x55adce['options'][_0x51108f('0x215')]||(_0x55adce[_0x51108f('0x13d')][_0x51108f('0x698')]=!0x0),_0x55adce[_0x51108f('0x13d')][_0x51108f('0x1081')]=null;}function _0x151fdf(){var _0x35d377=_0x1a265f;return _0x563557&&_0x2cbfeb?-(document[_0x35d377('0x82a')][_0x35d377('0x422')]()[_0x35d377('0x10fb')]-parseInt(getComputedStyle(document['body'])[_0x35d377('0xe38')])):window['pageXOffset']||(document[_0x35d377('0xf22')]||document[_0x35d377('0x82a')])[_0x35d377('0x37e')];}function _0x17df13(){var _0x4216a1=_0x1a265f;return _0x563557&&_0x2cbfeb?-(document['body'][_0x4216a1('0x422')]()[_0x4216a1('0x5b')]-parseInt(getComputedStyle(document[_0x4216a1('0x82a')])[_0x4216a1('0x40b')])):window[_0x4216a1('0x909')]||(document['documentElement']||document[_0x4216a1('0x82a')])['scrollTop'];}function _0x12195c(_0x24c696){var _0x44cf60=_0x1a265f,_0x40b49a=0x0;if(_0x24c696[_0x44cf60('0x19a')])for(var _0x20a585=0x0;_0x20a585<_0x24c696[_0x44cf60('0x19a')][_0x44cf60('0x13')];++_0x20a585)_0x24c696[_0x44cf60('0x19a')][_0x20a585][_0x44cf60('0xca2')]&&(_0x40b49a+=_0x269321(_0x24c696[_0x44cf60('0x19a')][_0x20a585]));return _0x40b49a;}function _0x50e8eb(_0x46d5b4,_0x3ef54b,_0x3eedb0,_0xe1a8d9,_0x5184c0){var _0xdfa1e4=_0x1a265f;if(!_0x5184c0){var _0x2ea889=_0x12195c(_0x3ef54b);_0x3eedb0['top']+=_0x2ea889,_0x3eedb0[_0xdfa1e4('0x9c2')]+=_0x2ea889;}if(_0xdfa1e4('0x860')==_0xe1a8d9)return _0x3eedb0;_0xe1a8d9||(_0xe1a8d9=_0xdfa1e4('0x1159'));var _0x29c204=_0x112056(_0x3ef54b);if(_0xdfa1e4('0x1159')==_0xe1a8d9?_0x29c204+=_0x475c2f(_0x46d5b4[_0xdfa1e4('0x13d')]):_0x29c204-=_0x46d5b4[_0xdfa1e4('0x13d')]['viewOffset'],'page'==_0xe1a8d9||_0xdfa1e4('0x40')==_0xe1a8d9){var _0x22e2c9=_0x46d5b4[_0xdfa1e4('0x13d')][_0xdfa1e4('0x1f5')][_0xdfa1e4('0x422')]();_0x29c204+=_0x22e2c9[_0xdfa1e4('0x5b')]+(_0xdfa1e4('0x40')==_0xe1a8d9?0x0:_0x17df13());var _0x15421b=_0x22e2c9['left']+(_0xdfa1e4('0x40')==_0xe1a8d9?0x0:_0x151fdf());_0x3eedb0[_0xdfa1e4('0x10fb')]+=_0x15421b,_0x3eedb0[_0xdfa1e4('0x94b')]+=_0x15421b;}return _0x3eedb0[_0xdfa1e4('0x5b')]+=_0x29c204,_0x3eedb0[_0xdfa1e4('0x9c2')]+=_0x29c204,_0x3eedb0;}function _0x45c136(_0x5b8c42,_0x4c0aa0,_0x2ad9bf){var _0x1863dc=_0x1a265f;if(_0x1863dc('0x26c')==_0x2ad9bf)return _0x4c0aa0;var _0x404053=_0x4c0aa0[_0x1863dc('0x10fb')],_0x4bc503=_0x4c0aa0[_0x1863dc('0x5b')];if(_0x1863dc('0xbc8')==_0x2ad9bf)_0x404053-=_0x151fdf(),_0x4bc503-=_0x17df13();else{if(_0x1863dc('0x1159')==_0x2ad9bf||!_0x2ad9bf){var _0x59514c=_0x5b8c42[_0x1863dc('0x13d')][_0x1863dc('0x68f')][_0x1863dc('0x422')]();_0x404053+=_0x59514c[_0x1863dc('0x10fb')],_0x4bc503+=_0x59514c[_0x1863dc('0x5b')];}}var _0x523c9e=_0x5b8c42['display'][_0x1863dc('0x1f5')][_0x1863dc('0x422')]();return{'left':_0x404053-_0x523c9e[_0x1863dc('0x10fb')],'top':_0x4bc503-_0x523c9e['top']};}function _0x1ccb03(_0x46f781,_0x5ad856,_0x569e26,_0x1faa23,_0x20741b){var _0x58c7b4=_0x1a265f;return _0x1faa23||(_0x1faa23=_0x1964d4(_0x46f781['doc'],_0x5ad856[_0x58c7b4('0x860')])),_0x50e8eb(_0x46f781,_0x1faa23,_0x1742ef(_0x46f781,_0x1faa23,_0x5ad856['ch'],_0x20741b),_0x569e26);}function _0x42fc0e(_0x459bbe,_0x14cda2,_0x32e162,_0x3e6514,_0x427c9f,_0x1b0478){var _0x8c402b=_0x1a265f;function _0x49658f(_0x271425,_0xf36b0f){var _0x461ee8=_0x5376,_0x19f0ff=_0x2089da(_0x459bbe,_0x427c9f,_0x271425,_0xf36b0f?_0x461ee8('0x94b'):_0x461ee8('0x10fb'),_0x1b0478);return _0xf36b0f?_0x19f0ff['left']=_0x19f0ff['right']:_0x19f0ff[_0x461ee8('0x94b')]=_0x19f0ff[_0x461ee8('0x10fb')],_0x50e8eb(_0x459bbe,_0x3e6514,_0x19f0ff,_0x32e162);}_0x3e6514=_0x3e6514||_0x1964d4(_0x459bbe['doc'],_0x14cda2[_0x8c402b('0x860')]),_0x427c9f||(_0x427c9f=_0x1058f2(_0x459bbe,_0x3e6514));var _0x103356=_0x30ca79(_0x3e6514,_0x459bbe[_0x8c402b('0x481')][_0x8c402b('0x8de')]),_0x47caa5=_0x14cda2['ch'],_0x1ca92c=_0x14cda2[_0x8c402b('0xce7')];if(_0x47caa5>=_0x3e6514['text'][_0x8c402b('0x13')]?(_0x47caa5=_0x3e6514[_0x8c402b('0x5b2')][_0x8c402b('0x13')],_0x1ca92c=_0x8c402b('0x4ec')):_0x47caa5<=0x0&&(_0x47caa5=0x0,_0x1ca92c=_0x8c402b('0x593')),!_0x103356)return _0x49658f('before'==_0x1ca92c?_0x47caa5-0x1:_0x47caa5,_0x8c402b('0x4ec')==_0x1ca92c);function _0x26fb3c(_0x2036e5,_0x3e35a1,_0x45042e){var _0x2c6a1c=_0x8c402b;return _0x49658f(_0x45042e?_0x2036e5-0x1:_0x2036e5,0x1==_0x103356[_0x3e35a1][_0x2c6a1c('0x555')]!=_0x45042e);}var _0x182676=_0x267328(_0x103356,_0x47caa5,_0x1ca92c),_0x3c2c9a=_0x19838b,_0x55b757=_0x26fb3c(_0x47caa5,_0x182676,_0x8c402b('0x4ec')==_0x1ca92c);return null!=_0x3c2c9a&&(_0x55b757[_0x8c402b('0x574')]=_0x26fb3c(_0x47caa5,_0x3c2c9a,_0x8c402b('0x4ec')!=_0x1ca92c)),_0x55b757;}function _0x3b947b(_0x27e97f,_0x3e9260){var _0x5d2369=_0x1a265f,_0x56a4c7=0x0;_0x3e9260=_0x11e028(_0x27e97f[_0x5d2369('0x481')],_0x3e9260),_0x27e97f[_0x5d2369('0x29d')][_0x5d2369('0x215')]||(_0x56a4c7=_0x48a458(_0x27e97f[_0x5d2369('0x13d')])*_0x3e9260['ch']);var _0xd57325=_0x1964d4(_0x27e97f[_0x5d2369('0x481')],_0x3e9260[_0x5d2369('0x860')]),_0x13e7a8=_0x112056(_0xd57325)+_0x475c2f(_0x27e97f[_0x5d2369('0x13d')]);return{'left':_0x56a4c7,'right':_0x56a4c7,'top':_0x13e7a8,'bottom':_0x13e7a8+_0xd57325[_0x5d2369('0x27b')]};}function _0x5f09ba(_0x5ffdcb,_0x288636,_0x47e4e7,_0x2bec39,_0x55e49d){var _0x30e649=_0x1a265f,_0x559aeb=_0x3de23f(_0x5ffdcb,_0x288636,_0x47e4e7);return _0x559aeb[_0x30e649('0xdc1')]=_0x55e49d,_0x2bec39&&(_0x559aeb[_0x30e649('0x615')]=_0x2bec39),_0x559aeb;}function _0x4e049b(_0x3c39d8,_0x26ae89,_0x39c4f3){var _0x24c28d=_0x1a265f,_0x4fc5f1=_0x3c39d8[_0x24c28d('0x481')];if((_0x39c4f3+=_0x3c39d8[_0x24c28d('0x13d')][_0x24c28d('0x37')])<0x0)return _0x5f09ba(_0x4fc5f1[_0x24c28d('0x3f0')],0x0,null,-0x1,-0x1);var _0x34af88=_0x1d0db2(_0x4fc5f1,_0x39c4f3),_0x1bcf39=_0x4fc5f1[_0x24c28d('0x3f0')]+_0x4fc5f1[_0x24c28d('0x10a2')]-0x1;if(_0x34af88>_0x1bcf39)return _0x5f09ba(_0x4fc5f1[_0x24c28d('0x3f0')]+_0x4fc5f1['size']-0x1,_0x1964d4(_0x4fc5f1,_0x1bcf39)[_0x24c28d('0x5b2')][_0x24c28d('0x13')],null,0x1,0x1);_0x26ae89<0x0&&(_0x26ae89=0x0);for(var _0xa900c1=_0x1964d4(_0x4fc5f1,_0x34af88);;){var _0x18ce07=_0x1d0b60(_0x3c39d8,_0xa900c1,_0x34af88,_0x26ae89,_0x39c4f3),_0x24ce76=_0x2033c7(_0xa900c1,_0x18ce07['ch']+(_0x18ce07[_0x24c28d('0xdc1')]>0x0||_0x18ce07['outside']>0x0?0x1:0x0));if(!_0x24ce76)return _0x18ce07;var _0x122a60=_0x24ce76[_0x24c28d('0xe05')](0x1);if(_0x122a60[_0x24c28d('0x860')]==_0x34af88)return _0x122a60;_0xa900c1=_0x1964d4(_0x4fc5f1,_0x34af88=_0x122a60['line']);}}function _0x272765(_0x37d398,_0x713eaf,_0x33fa81,_0x41b36e){var _0x1c0d86=_0x1a265f;_0x41b36e-=_0x12195c(_0x713eaf);var _0x18e2cd=_0x713eaf[_0x1c0d86('0x5b2')][_0x1c0d86('0x13')],_0x40eedb=_0x12c0d8(function(_0x21b5fe){return _0x2089da(_0x37d398,_0x33fa81,_0x21b5fe-0x1)['bottom']<=_0x41b36e;},_0x18e2cd,0x0);return{'begin':_0x40eedb,'end':_0x18e2cd=_0x12c0d8(function(_0x1ba7a6){var _0x531673=_0x1c0d86;return _0x2089da(_0x37d398,_0x33fa81,_0x1ba7a6)[_0x531673('0x5b')]>_0x41b36e;},_0x40eedb,_0x18e2cd)};}function _0x2f905e(_0x19b5f0,_0x30d502,_0x3ff3c8,_0x1efe5e){var _0x15e042=_0x1a265f;return _0x3ff3c8||(_0x3ff3c8=_0x1058f2(_0x19b5f0,_0x30d502)),_0x272765(_0x19b5f0,_0x30d502,_0x3ff3c8,_0x50e8eb(_0x19b5f0,_0x30d502,_0x2089da(_0x19b5f0,_0x3ff3c8,_0x1efe5e),_0x15e042('0x860'))['top']);}function _0x3f7b1b(_0x34874a,_0x2243ca,_0x1cc3cb,_0x42577c){return!(_0x34874a['bottom']<=_0x1cc3cb)&&(_0x34874a['top']>_0x1cc3cb||(_0x42577c?_0x34874a['left']:_0x34874a['right'])>_0x2243ca);}function _0x1d0b60(_0x5db079,_0x2948cf,_0x3f0f7f,_0xc4354,_0x21696c){var _0x620bc7=_0x1a265f;_0x21696c-=_0x112056(_0x2948cf);var _0x4db870=_0x1058f2(_0x5db079,_0x2948cf),_0x12913e=_0x12195c(_0x2948cf),_0x22a76e=0x0,_0x47d8fb=_0x2948cf[_0x620bc7('0x5b2')][_0x620bc7('0x13')],_0x30d81a=!0x0,_0x25bb53=_0x30ca79(_0x2948cf,_0x5db079[_0x620bc7('0x481')][_0x620bc7('0x8de')]);if(_0x25bb53){var _0x107935=(_0x5db079['options']['lineWrapping']?_0x2b7a9b:_0x3536fe)(_0x5db079,_0x2948cf,_0x3f0f7f,_0x4db870,_0x25bb53,_0xc4354,_0x21696c);_0x22a76e=(_0x30d81a=0x1!=_0x107935['level'])?_0x107935['from']:_0x107935['to']-0x1,_0x47d8fb=_0x30d81a?_0x107935['to']:_0x107935[_0x620bc7('0x1161')]-0x1;}var _0x4c0439,_0x184156,_0x47466f=null,_0x1615c3=null,_0x42ca0d=_0x12c0d8(function(_0x3e0915){var _0x3157f5=_0x620bc7,_0x460a67=_0x2089da(_0x5db079,_0x4db870,_0x3e0915);return _0x460a67[_0x3157f5('0x5b')]+=_0x12913e,_0x460a67['bottom']+=_0x12913e,!!_0x3f7b1b(_0x460a67,_0xc4354,_0x21696c,!0x1)&&(_0x460a67[_0x3157f5('0x5b')]<=_0x21696c&&_0x460a67[_0x3157f5('0x10fb')]<=_0xc4354&&(_0x47466f=_0x3e0915,_0x1615c3=_0x460a67),!0x0);},_0x22a76e,_0x47d8fb),_0x481a07=!0x1;if(_0x1615c3){var _0x11703c=_0xc4354-_0x1615c3[_0x620bc7('0x10fb')]<_0x1615c3[_0x620bc7('0x94b')]-_0xc4354,_0x40814a=_0x11703c==_0x30d81a;_0x42ca0d=_0x47466f+(_0x40814a?0x0:0x1),_0x184156=_0x40814a?_0x620bc7('0x593'):_0x620bc7('0x4ec'),_0x4c0439=_0x11703c?_0x1615c3[_0x620bc7('0x10fb')]:_0x1615c3[_0x620bc7('0x94b')];}else{_0x30d81a||_0x42ca0d!=_0x47d8fb&&_0x42ca0d!=_0x22a76e||_0x42ca0d++,_0x184156=0x0==_0x42ca0d?'after':_0x42ca0d==_0x2948cf[_0x620bc7('0x5b2')][_0x620bc7('0x13')]?_0x620bc7('0x4ec'):_0x2089da(_0x5db079,_0x4db870,_0x42ca0d-(_0x30d81a?0x1:0x0))['bottom']+_0x12913e<=_0x21696c==_0x30d81a?_0x620bc7('0x593'):'before';var _0x4e53c4=_0x42fc0e(_0x5db079,_0x3de23f(_0x3f0f7f,_0x42ca0d,_0x184156),_0x620bc7('0x860'),_0x2948cf,_0x4db870);_0x4c0439=_0x4e53c4['left'],_0x481a07=_0x21696c<_0x4e53c4[_0x620bc7('0x5b')]?-0x1:_0x21696c>=_0x4e53c4[_0x620bc7('0x9c2')]?0x1:0x0;}return _0x5f09ba(_0x3f0f7f,_0x42ca0d=_0x249de5(_0x2948cf['text'],_0x42ca0d,0x1),_0x184156,_0x481a07,_0xc4354-_0x4c0439);}function _0x3536fe(_0x4091a0,_0x27ace0,_0xf80fe3,_0x12170d,_0x316266,_0xf0e8c4,_0x4089d1){var _0x193a0e=_0x1a265f,_0xb1eed0=_0x12c0d8(function(_0x531c70){var _0x4ee80d=_0x5376,_0x1d4c0c=_0x316266[_0x531c70],_0x1fc1d5=0x1!=_0x1d4c0c['level'];return _0x3f7b1b(_0x42fc0e(_0x4091a0,_0x3de23f(_0xf80fe3,_0x1fc1d5?_0x1d4c0c['to']:_0x1d4c0c['from'],_0x1fc1d5?_0x4ee80d('0x4ec'):'after'),'line',_0x27ace0,_0x12170d),_0xf0e8c4,_0x4089d1,!0x0);},0x0,_0x316266[_0x193a0e('0x13')]-0x1),_0x92ca08=_0x316266[_0xb1eed0];if(_0xb1eed0>0x0){var _0x4368be=0x1!=_0x92ca08[_0x193a0e('0x555')],_0xf40686=_0x42fc0e(_0x4091a0,_0x3de23f(_0xf80fe3,_0x4368be?_0x92ca08['from']:_0x92ca08['to'],_0x4368be?_0x193a0e('0x593'):_0x193a0e('0x4ec')),'line',_0x27ace0,_0x12170d);_0x3f7b1b(_0xf40686,_0xf0e8c4,_0x4089d1,!0x0)&&_0xf40686['top']>_0x4089d1&&(_0x92ca08=_0x316266[_0xb1eed0-0x1]);}return _0x92ca08;}function _0x2b7a9b(_0x486d70,_0x2bb8ab,_0x3aaf8c,_0x9de296,_0xf54fa9,_0x2af76f,_0x1971db){var _0x272ae4=_0x1a265f,_0x575ffd=_0x272765(_0x486d70,_0x2bb8ab,_0x9de296,_0x1971db),_0x1113d5=_0x575ffd['begin'],_0x32c601=_0x575ffd['end'];/\s/[_0x272ae4('0x2c3')](_0x2bb8ab['text'][_0x272ae4('0xcaf')](_0x32c601-0x1))&&_0x32c601--;for(var _0x581c66=null,_0xe11215=null,_0x39a020=0x0;_0x39a020<_0xf54fa9[_0x272ae4('0x13')];_0x39a020++){var _0x5bc3df=_0xf54fa9[_0x39a020];if(!(_0x5bc3df['from']>=_0x32c601||_0x5bc3df['to']<=_0x1113d5)){var _0x364492=_0x2089da(_0x486d70,_0x9de296,0x1!=_0x5bc3df['level']?Math[_0x272ae4('0xd3f')](_0x32c601,_0x5bc3df['to'])-0x1:Math[_0x272ae4('0xa0d')](_0x1113d5,_0x5bc3df[_0x272ae4('0x1161')]))[_0x272ae4('0x94b')],_0x351a10=_0x364492<_0x2af76f?_0x2af76f-_0x364492+0x3b9aca00:_0x364492-_0x2af76f;(!_0x581c66||_0xe11215>_0x351a10)&&(_0x581c66=_0x5bc3df,_0xe11215=_0x351a10);}}return _0x581c66||(_0x581c66=_0xf54fa9[_0xf54fa9[_0x272ae4('0x13')]-0x1]),_0x581c66[_0x272ae4('0x1161')]<_0x1113d5&&(_0x581c66={'from':_0x1113d5,'to':_0x581c66['to'],'level':_0x581c66['level']}),_0x581c66['to']>_0x32c601&&(_0x581c66={'from':_0x581c66[_0x272ae4('0x1161')],'to':_0x32c601,'level':_0x581c66[_0x272ae4('0x555')]}),_0x581c66;}function _0x30a1c3(_0x2a510d){var _0xe3ebf6=_0x1a265f;if(null!=_0x2a510d[_0xe3ebf6('0x1115')])return _0x2a510d[_0xe3ebf6('0x1115')];if(null==_0x3c98de){_0x3c98de=_0x4aeabd('pre',null,_0xe3ebf6('0x97c'));for(var _0x55eb8b=0x0;_0x55eb8b<0x31;++_0x55eb8b)_0x3c98de[_0xe3ebf6('0x657')](document[_0xe3ebf6('0xe21')]('x')),_0x3c98de[_0xe3ebf6('0x657')](_0x4aeabd('br'));_0x3c98de['appendChild'](document[_0xe3ebf6('0xe21')]('x'));}_0x221945(_0x2a510d[_0xe3ebf6('0xaac')],_0x3c98de);var _0x8549e0=_0x3c98de[_0xe3ebf6('0x495')]/0x32;return _0x8549e0>0x3&&(_0x2a510d['cachedTextHeight']=_0x8549e0),_0x11fb2f(_0x2a510d['measure']),_0x8549e0||0x1;}function _0x48a458(_0x5f442e){var _0x4e3035=_0x1a265f;if(null!=_0x5f442e[_0x4e3035('0x689')])return _0x5f442e['cachedCharWidth'];var _0x7ce763=_0x4aeabd(_0x4e3035('0x10c'),_0x4e3035('0x35c')),_0x15f309=_0x4aeabd('pre',[_0x7ce763],_0x4e3035('0x97c'));_0x221945(_0x5f442e[_0x4e3035('0xaac')],_0x15f309);var _0x4397ee=_0x7ce763['getBoundingClientRect'](),_0x397d96=(_0x4397ee[_0x4e3035('0x94b')]-_0x4397ee[_0x4e3035('0x10fb')])/0xa;return _0x397d96>0x2&&(_0x5f442e[_0x4e3035('0x689')]=_0x397d96),_0x397d96||0xa;}function _0x3f2595(_0x13cf00){var _0xf8bd6c=_0x1a265f;for(var _0x132e6b=_0x13cf00[_0xf8bd6c('0x13d')],_0x406367={},_0x2daa47={},_0x4184e0=_0x132e6b[_0xf8bd6c('0xef6')][_0xf8bd6c('0xed5')],_0x4c7e7a=_0x132e6b['gutters'][_0xf8bd6c('0xf86')],_0x1bbd1c=0x0;_0x4c7e7a;_0x4c7e7a=_0x4c7e7a[_0xf8bd6c('0x85b')],++_0x1bbd1c){var _0x3839a3=_0x13cf00[_0xf8bd6c('0x13d')][_0xf8bd6c('0xf04')][_0x1bbd1c][_0xf8bd6c('0x867')];_0x406367[_0x3839a3]=_0x4c7e7a[_0xf8bd6c('0xd07')]+_0x4c7e7a[_0xf8bd6c('0xed5')]+_0x4184e0,_0x2daa47[_0x3839a3]=_0x4c7e7a[_0xf8bd6c('0xddd')];}return{'fixedPos':_0x10d6d5(_0x132e6b),'gutterTotalWidth':_0x132e6b[_0xf8bd6c('0xef6')][_0xf8bd6c('0xb94')],'gutterLeft':_0x406367,'gutterWidth':_0x2daa47,'wrapperWidth':_0x132e6b[_0xf8bd6c('0xfc3')][_0xf8bd6c('0xddd')]};}function _0x10d6d5(_0x22c229){var _0x6dfd9b=_0x1a265f;return _0x22c229[_0x6dfd9b('0xf31')][_0x6dfd9b('0x422')]()[_0x6dfd9b('0x10fb')]-_0x22c229['sizer']['getBoundingClientRect']()[_0x6dfd9b('0x10fb')];}function _0x3c3f36(_0x37ca66){var _0x3c3625=_0x1a265f,_0x5965aa=_0x30a1c3(_0x37ca66['display']),_0x4de660=_0x37ca66[_0x3c3625('0x29d')]['lineWrapping'],_0x2c117c=_0x4de660&&Math['max'](0x5,_0x37ca66[_0x3c3625('0x13d')][_0x3c3625('0xf31')]['clientWidth']/_0x48a458(_0x37ca66[_0x3c3625('0x13d')])-0x3);return function(_0x5a2313){var _0x55c8cf=_0x3c3625;if(_0x20f310(_0x37ca66[_0x55c8cf('0x481')],_0x5a2313))return 0x0;var _0x2d3851=0x0;if(_0x5a2313[_0x55c8cf('0x19a')])for(var _0x154959=0x0;_0x154959<_0x5a2313[_0x55c8cf('0x19a')][_0x55c8cf('0x13')];_0x154959++)_0x5a2313[_0x55c8cf('0x19a')][_0x154959]['height']&&(_0x2d3851+=_0x5a2313['widgets'][_0x154959][_0x55c8cf('0x27b')]);return _0x4de660?_0x2d3851+(Math[_0x55c8cf('0xb0')](_0x5a2313[_0x55c8cf('0x5b2')]['length']/_0x2c117c)||0x1)*_0x5965aa:_0x2d3851+_0x5965aa;};}function _0x2c9072(_0x4e5746){var _0x18b9c8=_0x1a265f,_0x4b1e9f=_0x4e5746[_0x18b9c8('0x481')],_0x5b6ec0=_0x3c3f36(_0x4e5746);_0x4b1e9f[_0x18b9c8('0xe01')](function(_0x2dc6aa){var _0x26bb19=_0x5b6ec0(_0x2dc6aa);_0x26bb19!=_0x2dc6aa['height']&&_0x1ae833(_0x2dc6aa,_0x26bb19);});}function _0x55e6f5(_0x21a506,_0x100a94,_0x50e90c,_0x4f5ffb){var _0x5f39b3=_0x1a265f,_0x243f9f=_0x21a506[_0x5f39b3('0x13d')];if(!_0x50e90c&&'true'==_0x18ca14(_0x100a94)[_0x5f39b3('0x6d9')](_0x5f39b3('0x897')))return null;var _0x4aa5ed,_0x1b42e5,_0x22ad39=_0x243f9f[_0x5f39b3('0x1f5')][_0x5f39b3('0x422')]();try{_0x4aa5ed=_0x100a94[_0x5f39b3('0x693')]-_0x22ad39[_0x5f39b3('0x10fb')],_0x1b42e5=_0x100a94[_0x5f39b3('0x1e1')]-_0x22ad39[_0x5f39b3('0x5b')];}catch(_0x25988a){return null;}var _0x2e88e8,_0x2d6089=_0x4e049b(_0x21a506,_0x4aa5ed,_0x1b42e5);if(_0x4f5ffb&&_0x2d6089[_0x5f39b3('0xdc1')]>0x0&&(_0x2e88e8=_0x1964d4(_0x21a506[_0x5f39b3('0x481')],_0x2d6089['line'])[_0x5f39b3('0x5b2')])[_0x5f39b3('0x13')]==_0x2d6089['ch']){var _0x336adf=_0x213d1d(_0x2e88e8,_0x2e88e8[_0x5f39b3('0x13')],_0x21a506['options'][_0x5f39b3('0xad4')])-_0x2e88e8['length'];_0x2d6089=_0x3de23f(_0x2d6089[_0x5f39b3('0x860')],Math[_0x5f39b3('0xa0d')](0x0,Math[_0x5f39b3('0x9ee')]((_0x4aa5ed-_0x233016(_0x21a506[_0x5f39b3('0x13d')])[_0x5f39b3('0x10fb')])/_0x48a458(_0x21a506[_0x5f39b3('0x13d')]))-_0x336adf));}return _0x2d6089;}function _0x376711(_0x33c650,_0x4b5a57){var _0x193d86=_0x1a265f;if(_0x4b5a57>=_0x33c650['display'][_0x193d86('0x3e5')])return null;if((_0x4b5a57-=_0x33c650['display'][_0x193d86('0x812')])<0x0)return null;for(var _0xd46164=_0x33c650[_0x193d86('0x13d')][_0x193d86('0x770')],_0x8dc1a6=0x0;_0x8dc1a6<_0xd46164[_0x193d86('0x13')];_0x8dc1a6++)if((_0x4b5a57-=_0xd46164[_0x8dc1a6][_0x193d86('0x10a2')])<0x0)return _0x8dc1a6;}function _0x589d49(_0x452e8d,_0x4da310,_0x41d4bc,_0x142d41){var _0x221fa7=_0x1a265f;null==_0x4da310&&(_0x4da310=_0x452e8d[_0x221fa7('0x481')][_0x221fa7('0x3f0')]),null==_0x41d4bc&&(_0x41d4bc=_0x452e8d[_0x221fa7('0x481')][_0x221fa7('0x3f0')]+_0x452e8d[_0x221fa7('0x481')][_0x221fa7('0x10a2')]),_0x142d41||(_0x142d41=0x0);var _0x3753e2=_0x452e8d[_0x221fa7('0x13d')];if(_0x142d41&&_0x41d4bc<_0x3753e2['viewTo']&&(null==_0x3753e2['updateLineNumbers']||_0x3753e2[_0x221fa7('0xd23')]>_0x4da310)&&(_0x3753e2[_0x221fa7('0xd23')]=_0x4da310),_0x452e8d['curOp'][_0x221fa7('0xc43')]=!0x0,_0x4da310>=_0x3753e2[_0x221fa7('0x3e5')])_0x346523&&_0x167490(_0x452e8d[_0x221fa7('0x481')],_0x4da310)<_0x3753e2[_0x221fa7('0x3e5')]&&_0x5ed366(_0x452e8d);else{if(_0x41d4bc<=_0x3753e2[_0x221fa7('0x812')])_0x346523&&_0x19c9e7(_0x452e8d['doc'],_0x41d4bc+_0x142d41)>_0x3753e2[_0x221fa7('0x812')]?_0x5ed366(_0x452e8d):(_0x3753e2[_0x221fa7('0x812')]+=_0x142d41,_0x3753e2['viewTo']+=_0x142d41);else{if(_0x4da310<=_0x3753e2[_0x221fa7('0x812')]&&_0x41d4bc>=_0x3753e2[_0x221fa7('0x3e5')])_0x5ed366(_0x452e8d);else{if(_0x4da310<=_0x3753e2[_0x221fa7('0x812')]){var _0x520cfe=_0x5cb660(_0x452e8d,_0x41d4bc,_0x41d4bc+_0x142d41,0x1);_0x520cfe?(_0x3753e2[_0x221fa7('0x770')]=_0x3753e2[_0x221fa7('0x770')][_0x221fa7('0xdf1')](_0x520cfe[_0x221fa7('0x64a')]),_0x3753e2[_0x221fa7('0x812')]=_0x520cfe[_0x221fa7('0x1103')],_0x3753e2[_0x221fa7('0x3e5')]+=_0x142d41):_0x5ed366(_0x452e8d);}else{if(_0x41d4bc>=_0x3753e2[_0x221fa7('0x3e5')]){var _0x56ed77=_0x5cb660(_0x452e8d,_0x4da310,_0x4da310,-0x1);_0x56ed77?(_0x3753e2[_0x221fa7('0x770')]=_0x3753e2[_0x221fa7('0x770')]['slice'](0x0,_0x56ed77[_0x221fa7('0x64a')]),_0x3753e2[_0x221fa7('0x3e5')]=_0x56ed77[_0x221fa7('0x1103')]):_0x5ed366(_0x452e8d);}else{var _0x1d40b7=_0x5cb660(_0x452e8d,_0x4da310,_0x4da310,-0x1),_0x554d2e=_0x5cb660(_0x452e8d,_0x41d4bc,_0x41d4bc+_0x142d41,0x1);_0x1d40b7&&_0x554d2e?(_0x3753e2[_0x221fa7('0x770')]=_0x3753e2[_0x221fa7('0x770')][_0x221fa7('0xdf1')](0x0,_0x1d40b7[_0x221fa7('0x64a')])[_0x221fa7('0xda9')](_0x463a64(_0x452e8d,_0x1d40b7[_0x221fa7('0x1103')],_0x554d2e[_0x221fa7('0x1103')]))['concat'](_0x3753e2[_0x221fa7('0x770')]['slice'](_0x554d2e[_0x221fa7('0x64a')])),_0x3753e2[_0x221fa7('0x3e5')]+=_0x142d41):_0x5ed366(_0x452e8d);}}}}}var _0x21f0ec=_0x3753e2[_0x221fa7('0x283')];_0x21f0ec&&(_0x41d4bc<_0x21f0ec[_0x221fa7('0x1103')]?_0x21f0ec[_0x221fa7('0x1103')]+=_0x142d41:_0x4da310<_0x21f0ec[_0x221fa7('0x1103')]+_0x21f0ec['size']&&(_0x3753e2[_0x221fa7('0x283')]=null));}function _0x42df63(_0x25f120,_0x438c0b,_0xe390d7){var _0x2d00fb=_0x1a265f;_0x25f120['curOp']['viewChanged']=!0x0;var _0x35ff9b=_0x25f120['display'],_0x276dec=_0x25f120[_0x2d00fb('0x13d')][_0x2d00fb('0x283')];if(_0x276dec&&_0x438c0b>=_0x276dec[_0x2d00fb('0x1103')]&&_0x438c0b<_0x276dec['lineN']+_0x276dec['size']&&(_0x35ff9b[_0x2d00fb('0x283')]=null),!(_0x438c0b<_0x35ff9b[_0x2d00fb('0x812')]||_0x438c0b>=_0x35ff9b[_0x2d00fb('0x3e5')])){var _0x29a525=_0x35ff9b[_0x2d00fb('0x770')][_0x376711(_0x25f120,_0x438c0b)];if(null!=_0x29a525[_0x2d00fb('0xb95')]){var _0x9330eb=_0x29a525['changes']||(_0x29a525[_0x2d00fb('0xba0')]=[]);-0x1==_0x55346f(_0x9330eb,_0xe390d7)&&_0x9330eb[_0x2d00fb('0x91b')](_0xe390d7);}}}function _0x5ed366(_0x11e7e2){var _0x3e039d=_0x1a265f;_0x11e7e2[_0x3e039d('0x13d')][_0x3e039d('0x812')]=_0x11e7e2[_0x3e039d('0x13d')][_0x3e039d('0x3e5')]=_0x11e7e2['doc'][_0x3e039d('0x3f0')],_0x11e7e2['display'][_0x3e039d('0x770')]=[],_0x11e7e2[_0x3e039d('0x13d')][_0x3e039d('0x37')]=0x0;}function _0x5cb660(_0x388fcc,_0x3ae0db,_0x4e7586,_0x3e5cbc){var _0x54a79a=_0x1a265f,_0x5d335e,_0x520f39=_0x376711(_0x388fcc,_0x3ae0db),_0x370b0f=_0x388fcc['display'][_0x54a79a('0x770')];if(!_0x346523||_0x4e7586==_0x388fcc[_0x54a79a('0x481')][_0x54a79a('0x3f0')]+_0x388fcc[_0x54a79a('0x481')][_0x54a79a('0x10a2')])return{'index':_0x520f39,'lineN':_0x4e7586};for(var _0x5a73e1=_0x388fcc[_0x54a79a('0x13d')][_0x54a79a('0x812')],_0x4d34cd=0x0;_0x4d34cd<_0x520f39;_0x4d34cd++)_0x5a73e1+=_0x370b0f[_0x4d34cd][_0x54a79a('0x10a2')];if(_0x5a73e1!=_0x3ae0db){if(_0x3e5cbc>0x0){if(_0x520f39==_0x370b0f[_0x54a79a('0x13')]-0x1)return null;_0x5d335e=_0x5a73e1+_0x370b0f[_0x520f39][_0x54a79a('0x10a2')]-_0x3ae0db,_0x520f39++;}else _0x5d335e=_0x5a73e1-_0x3ae0db;_0x3ae0db+=_0x5d335e,_0x4e7586+=_0x5d335e;}for(;_0x167490(_0x388fcc[_0x54a79a('0x481')],_0x4e7586)!=_0x4e7586;){if(_0x520f39==(_0x3e5cbc<0x0?0x0:_0x370b0f[_0x54a79a('0x13')]-0x1))return null;_0x4e7586+=_0x3e5cbc*_0x370b0f[_0x520f39-(_0x3e5cbc<0x0?0x1:0x0)][_0x54a79a('0x10a2')],_0x520f39+=_0x3e5cbc;}return{'index':_0x520f39,'lineN':_0x4e7586};}function _0x2952fe(_0x56df37){var _0x2ebb67=_0x1a265f;for(var _0x52ce88=_0x56df37[_0x2ebb67('0x13d')][_0x2ebb67('0x770')],_0x3870cd=0x0,_0x307520=0x0;_0x307520<_0x52ce88[_0x2ebb67('0x13')];_0x307520++){var _0x175804=_0x52ce88[_0x307520];_0x175804[_0x2ebb67('0x10f4')]||_0x175804[_0x2ebb67('0xb95')]&&!_0x175804[_0x2ebb67('0xba0')]||++_0x3870cd;}return _0x3870cd;}function _0x2a9cff(_0x20a38a){var _0xbe54cd=_0x1a265f;_0x20a38a[_0xbe54cd('0x13d')][_0xbe54cd('0x2f8')][_0xbe54cd('0x6ca')](_0x20a38a[_0xbe54cd('0x13d')][_0xbe54cd('0x2f8')][_0xbe54cd('0x8aa')]());}function _0x457d43(_0xa7e454,_0x6bd07e){var _0x5788df=_0x1a265f;void 0x0===_0x6bd07e&&(_0x6bd07e=!0x0);for(var _0x13ff49=_0xa7e454[_0x5788df('0x481')],_0x2cc961={},_0x383b24=_0x2cc961[_0x5788df('0x10a8')]=document[_0x5788df('0x8a')](),_0x42686b=_0x2cc961[_0x5788df('0x9c8')]=document[_0x5788df('0x8a')](),_0x488ce5=0x0;_0x488ce5<_0x13ff49[_0x5788df('0x990')]['ranges'][_0x5788df('0x13')];_0x488ce5++)if(_0x6bd07e||_0x488ce5!=_0x13ff49[_0x5788df('0x990')][_0x5788df('0x616')]){var _0x1b2d0f=_0x13ff49[_0x5788df('0x990')][_0x5788df('0x1de')][_0x488ce5];if(!(_0x1b2d0f[_0x5788df('0x1161')]()[_0x5788df('0x860')]>=_0xa7e454['display'][_0x5788df('0x3e5')]||_0x1b2d0f['to']()[_0x5788df('0x860')]<_0xa7e454[_0x5788df('0x13d')]['viewFrom'])){var _0x239ba6=_0x1b2d0f[_0x5788df('0x1d4')]();(_0x239ba6||_0xa7e454[_0x5788df('0x29d')]['showCursorWhenSelecting'])&&_0x1724f5(_0xa7e454,_0x1b2d0f[_0x5788df('0x116a')],_0x383b24),_0x239ba6||_0xd4d278(_0xa7e454,_0x1b2d0f,_0x42686b);}}return _0x2cc961;}function _0x1724f5(_0x5b65db,_0x33d6cb,_0x51cb1d){var _0x586e26=_0x1a265f,_0x1c6673=_0x42fc0e(_0x5b65db,_0x33d6cb,'div',null,null,!_0x5b65db[_0x586e26('0x29d')]['singleCursorHeightPerLine']),_0x156e7f=_0x51cb1d[_0x586e26('0x657')](_0x4aeabd('div','\u00a0','CodeMirror-cursor'));if(_0x156e7f[_0x586e26('0xe81')][_0x586e26('0x10fb')]=_0x1c6673[_0x586e26('0x10fb')]+'px',_0x156e7f[_0x586e26('0xe81')]['top']=_0x1c6673[_0x586e26('0x5b')]+'px',_0x156e7f[_0x586e26('0xe81')][_0x586e26('0x27b')]=Math[_0x586e26('0xa0d')](0x0,_0x1c6673[_0x586e26('0x9c2')]-_0x1c6673[_0x586e26('0x5b')])*_0x5b65db[_0x586e26('0x29d')]['cursorHeight']+'px',_0x1c6673[_0x586e26('0x574')]){var _0x32f9f5=_0x51cb1d[_0x586e26('0x657')](_0x4aeabd(_0x586e26('0x26c'),'\u00a0','CodeMirror-cursor\x20CodeMirror-secondarycursor'));_0x32f9f5[_0x586e26('0xe81')]['display']='',_0x32f9f5[_0x586e26('0xe81')][_0x586e26('0x10fb')]=_0x1c6673[_0x586e26('0x574')][_0x586e26('0x10fb')]+'px',_0x32f9f5[_0x586e26('0xe81')]['top']=_0x1c6673[_0x586e26('0x574')][_0x586e26('0x5b')]+'px',_0x32f9f5['style'][_0x586e26('0x27b')]=0.85*(_0x1c6673[_0x586e26('0x574')][_0x586e26('0x9c2')]-_0x1c6673['other'][_0x586e26('0x5b')])+'px';}}function _0x29372f(_0x41804b,_0x2ddef6){var _0x23d091=_0x1a265f;return _0x41804b[_0x23d091('0x5b')]-_0x2ddef6[_0x23d091('0x5b')]||_0x41804b[_0x23d091('0x10fb')]-_0x2ddef6[_0x23d091('0x10fb')];}function _0xd4d278(_0x32197e,_0xd49c83,_0x25e8be){var _0x6695e0=_0x1a265f,_0x208c97=_0x32197e[_0x6695e0('0x13d')],_0x4e0c99=_0x32197e[_0x6695e0('0x481')],_0x4c6938=document[_0x6695e0('0x8a')](),_0x5dbfa5=_0x233016(_0x32197e[_0x6695e0('0x13d')]),_0x49f935=_0x5dbfa5[_0x6695e0('0x10fb')],_0x31a808=Math[_0x6695e0('0xa0d')](_0x208c97[_0x6695e0('0x2e0')],_0x2eda44(_0x32197e)-_0x208c97[_0x6695e0('0x68f')][_0x6695e0('0xd07')])-_0x5dbfa5[_0x6695e0('0x94b')],_0x337080=_0x6695e0('0x5f8')==_0x4e0c99[_0x6695e0('0x8de')];function _0x23a8dc(_0x511fbb,_0x222c7c,_0x382ed1,_0x409b63){var _0x4f6f3c=_0x6695e0;_0x222c7c<0x0&&(_0x222c7c=0x0),_0x222c7c=Math[_0x4f6f3c('0x9ee')](_0x222c7c),_0x409b63=Math[_0x4f6f3c('0x9ee')](_0x409b63),_0x4c6938['appendChild'](_0x4aeabd(_0x4f6f3c('0x26c'),null,_0x4f6f3c('0xf57'),_0x4f6f3c('0x3a5')+_0x511fbb+'px;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20top:\x20'+_0x222c7c+_0x4f6f3c('0x10c1')+(null==_0x382ed1?_0x31a808-_0x511fbb:_0x382ed1)+_0x4f6f3c('0x99b')+(_0x409b63-_0x222c7c)+'px'));}function _0x407c09(_0x1005c9,_0x21b046,_0x532ea4){var _0x11ece2=_0x6695e0,_0xe4afd4,_0x34ef7f,_0x1250f5=_0x1964d4(_0x4e0c99,_0x1005c9),_0x3485ed=_0x1250f5[_0x11ece2('0x5b2')][_0x11ece2('0x13')];function _0x59d252(_0x4c1bd3,_0x406b8b){return _0x1ccb03(_0x32197e,_0x3de23f(_0x1005c9,_0x4c1bd3),'div',_0x1250f5,_0x406b8b);}function _0x168261(_0x41141f,_0x249490,_0x558662){var _0x444d20=_0x11ece2,_0x431712=_0x2f905e(_0x32197e,_0x1250f5,null,_0x41141f),_0x32df73=_0x444d20('0x5f8')==_0x249490==(_0x444d20('0x593')==_0x558662)?_0x444d20('0x10fb'):_0x444d20('0x94b');return _0x59d252(_0x444d20('0x593')==_0x558662?_0x431712[_0x444d20('0x311')]:_0x431712[_0x444d20('0xcad')]-(/\s/[_0x444d20('0x2c3')](_0x1250f5[_0x444d20('0x5b2')]['charAt'](_0x431712[_0x444d20('0xcad')]-0x1))?0x2:0x1),_0x32df73)[_0x32df73];}var _0x3a70ef=_0x30ca79(_0x1250f5,_0x4e0c99['direction']);return function(_0xcf751c,_0x37a3bd,_0x1cf0ea,_0x579500){var _0x3ab239=_0x11ece2;if(!_0xcf751c)return _0x579500(_0x37a3bd,_0x1cf0ea,_0x3ab239('0x5f8'),0x0);for(var _0x5d4150=!0x1,_0x2bfff8=0x0;_0x2bfff8<_0xcf751c[_0x3ab239('0x13')];++_0x2bfff8){var _0x2f462a=_0xcf751c[_0x2bfff8];(_0x2f462a[_0x3ab239('0x1161')]<_0x1cf0ea&&_0x2f462a['to']>_0x37a3bd||_0x37a3bd==_0x1cf0ea&&_0x2f462a['to']==_0x37a3bd)&&(_0x579500(Math['max'](_0x2f462a[_0x3ab239('0x1161')],_0x37a3bd),Math[_0x3ab239('0xd3f')](_0x2f462a['to'],_0x1cf0ea),0x1==_0x2f462a[_0x3ab239('0x555')]?_0x3ab239('0x919'):_0x3ab239('0x5f8'),_0x2bfff8),_0x5d4150=!0x0);}_0x5d4150||_0x579500(_0x37a3bd,_0x1cf0ea,_0x3ab239('0x5f8'));}(_0x3a70ef,_0x21b046||0x0,null==_0x532ea4?_0x3485ed:_0x532ea4,function(_0xa9d651,_0x5539bf,_0x102ffd,_0xa3b5b5){var _0x449fce=_0x11ece2,_0x3eabf8='ltr'==_0x102ffd,_0x37bf3d=_0x59d252(_0xa9d651,_0x3eabf8?'left':_0x449fce('0x94b')),_0x215cde=_0x59d252(_0x5539bf-0x1,_0x3eabf8?_0x449fce('0x94b'):_0x449fce('0x10fb')),_0x28f02c=null==_0x21b046&&0x0==_0xa9d651,_0x2f7b6f=null==_0x532ea4&&_0x5539bf==_0x3485ed,_0x14ab7d=0x0==_0xa3b5b5,_0x1ba0fd=!_0x3a70ef||_0xa3b5b5==_0x3a70ef[_0x449fce('0x13')]-0x1;if(_0x215cde[_0x449fce('0x5b')]-_0x37bf3d['top']<=0x3){var _0xd38ca1=(_0x337080?_0x2f7b6f:_0x28f02c)&&_0x1ba0fd,_0x318bcc=(_0x337080?_0x28f02c:_0x2f7b6f)&&_0x14ab7d?_0x49f935:(_0x3eabf8?_0x37bf3d:_0x215cde)['left'],_0x51ac2f=_0xd38ca1?_0x31a808:(_0x3eabf8?_0x215cde:_0x37bf3d)['right'];_0x23a8dc(_0x318bcc,_0x37bf3d[_0x449fce('0x5b')],_0x51ac2f-_0x318bcc,_0x37bf3d[_0x449fce('0x9c2')]);}else{var _0x305ef0,_0x115c44,_0xc399b0,_0x143093;_0x3eabf8?(_0x305ef0=_0x337080&&_0x28f02c&&_0x14ab7d?_0x49f935:_0x37bf3d['left'],_0x115c44=_0x337080?_0x31a808:_0x168261(_0xa9d651,_0x102ffd,_0x449fce('0x4ec')),_0xc399b0=_0x337080?_0x49f935:_0x168261(_0x5539bf,_0x102ffd,_0x449fce('0x593')),_0x143093=_0x337080&&_0x2f7b6f&&_0x1ba0fd?_0x31a808:_0x215cde[_0x449fce('0x94b')]):(_0x305ef0=_0x337080?_0x168261(_0xa9d651,_0x102ffd,_0x449fce('0x4ec')):_0x49f935,_0x115c44=!_0x337080&&_0x28f02c&&_0x14ab7d?_0x31a808:_0x37bf3d[_0x449fce('0x94b')],_0xc399b0=!_0x337080&&_0x2f7b6f&&_0x1ba0fd?_0x49f935:_0x215cde[_0x449fce('0x10fb')],_0x143093=_0x337080?_0x168261(_0x5539bf,_0x102ffd,_0x449fce('0x593')):_0x31a808),_0x23a8dc(_0x305ef0,_0x37bf3d[_0x449fce('0x5b')],_0x115c44-_0x305ef0,_0x37bf3d[_0x449fce('0x9c2')]),_0x37bf3d[_0x449fce('0x9c2')]<_0x215cde[_0x449fce('0x5b')]&&_0x23a8dc(_0x49f935,_0x37bf3d[_0x449fce('0x9c2')],null,_0x215cde[_0x449fce('0x5b')]),_0x23a8dc(_0xc399b0,_0x215cde[_0x449fce('0x5b')],_0x143093-_0xc399b0,_0x215cde[_0x449fce('0x9c2')]);}(!_0xe4afd4||_0x29372f(_0x37bf3d,_0xe4afd4)<0x0)&&(_0xe4afd4=_0x37bf3d),_0x29372f(_0x215cde,_0xe4afd4)<0x0&&(_0xe4afd4=_0x215cde),(!_0x34ef7f||_0x29372f(_0x37bf3d,_0x34ef7f)<0x0)&&(_0x34ef7f=_0x37bf3d),_0x29372f(_0x215cde,_0x34ef7f)<0x0&&(_0x34ef7f=_0x215cde);}),{'start':_0xe4afd4,'end':_0x34ef7f};}var _0x3cdf13=_0xd49c83[_0x6695e0('0x1161')](),_0x393495=_0xd49c83['to']();if(_0x3cdf13['line']==_0x393495[_0x6695e0('0x860')])_0x407c09(_0x3cdf13['line'],_0x3cdf13['ch'],_0x393495['ch']);else{var _0x14eea2=_0x1964d4(_0x4e0c99,_0x3cdf13[_0x6695e0('0x860')]),_0x5791e6=_0x1964d4(_0x4e0c99,_0x393495[_0x6695e0('0x860')]),_0x1526cb=_0xa6d8(_0x14eea2)==_0xa6d8(_0x5791e6),_0x8683e0=_0x407c09(_0x3cdf13['line'],_0x3cdf13['ch'],_0x1526cb?_0x14eea2[_0x6695e0('0x5b2')]['length']+0x1:null)[_0x6695e0('0xcad')],_0x38f81b=_0x407c09(_0x393495[_0x6695e0('0x860')],_0x1526cb?0x0:null,_0x393495['ch'])['start'];_0x1526cb&&(_0x8683e0[_0x6695e0('0x5b')]<_0x38f81b[_0x6695e0('0x5b')]-0x2?(_0x23a8dc(_0x8683e0[_0x6695e0('0x94b')],_0x8683e0[_0x6695e0('0x5b')],null,_0x8683e0['bottom']),_0x23a8dc(_0x49f935,_0x38f81b[_0x6695e0('0x5b')],_0x38f81b[_0x6695e0('0x10fb')],_0x38f81b[_0x6695e0('0x9c2')])):_0x23a8dc(_0x8683e0[_0x6695e0('0x94b')],_0x8683e0[_0x6695e0('0x5b')],_0x38f81b[_0x6695e0('0x10fb')]-_0x8683e0[_0x6695e0('0x94b')],_0x8683e0[_0x6695e0('0x9c2')])),_0x8683e0[_0x6695e0('0x9c2')]<_0x38f81b[_0x6695e0('0x5b')]&&_0x23a8dc(_0x49f935,_0x8683e0[_0x6695e0('0x9c2')],null,_0x38f81b['top']);}_0x25e8be[_0x6695e0('0x657')](_0x4c6938);}function _0x2c8d50(_0x1f1fb3){var _0xe55d5e=_0x1a265f;if(_0x1f1fb3['state']['focused']){var _0xf8b3be=_0x1f1fb3[_0xe55d5e('0x13d')];clearInterval(_0xf8b3be[_0xe55d5e('0x135')]);var _0x25c1d2=!0x0;_0xf8b3be[_0xe55d5e('0x8ed')]['style'][_0xe55d5e('0xc86')]='',_0x1f1fb3['options']['cursorBlinkRate']>0x0?_0xf8b3be[_0xe55d5e('0x135')]=setInterval(function(){var _0x3a55b8=_0xe55d5e;_0x1f1fb3[_0x3a55b8('0xffb')]()||_0x3d07e0(_0x1f1fb3),_0xf8b3be[_0x3a55b8('0x8ed')][_0x3a55b8('0xe81')]['visibility']=(_0x25c1d2=!_0x25c1d2)?'':_0x3a55b8('0x10f4');},_0x1f1fb3[_0xe55d5e('0x29d')]['cursorBlinkRate']):_0x1f1fb3['options'][_0xe55d5e('0x646')]<0x0&&(_0xf8b3be[_0xe55d5e('0x8ed')]['style'][_0xe55d5e('0xc86')]=_0xe55d5e('0x10f4'));}}function _0x22d291(_0x2b2020){var _0x383870=_0x1a265f;_0x2b2020[_0x383870('0x55d')][_0x383870('0x7be')]||(_0x2b2020['display']['input'][_0x383870('0x7dd')](),_0x3fee13(_0x2b2020));}function _0x4dcb99(_0x34e196){var _0x266522=_0x1a265f;_0x34e196[_0x266522('0x55d')][_0x266522('0xdea')]=!0x0,setTimeout(function(){var _0x3a47c3=_0x266522;_0x34e196['state'][_0x3a47c3('0xdea')]&&(_0x34e196['state']['delayingBlurEvent']=!0x1,_0x3d07e0(_0x34e196));},0x64);}function _0x3fee13(_0x3a0518,_0x2f6ecd){var _0x57f0cb=_0x1a265f;_0x3a0518[_0x57f0cb('0x55d')][_0x57f0cb('0xdea')]&&(_0x3a0518[_0x57f0cb('0x55d')][_0x57f0cb('0xdea')]=!0x1),_0x57f0cb('0x1ac')!=_0x3a0518[_0x57f0cb('0x29d')][_0x57f0cb('0x1134')]&&(_0x3a0518['state'][_0x57f0cb('0x7be')]||(_0x38db09(_0x3a0518,'focus',_0x3a0518,_0x2f6ecd),_0x3a0518[_0x57f0cb('0x55d')][_0x57f0cb('0x7be')]=!0x0,_0x379c51(_0x3a0518['display'][_0x57f0cb('0xfc3')],_0x57f0cb('0x479')),_0x3a0518[_0x57f0cb('0x5ec')]||_0x3a0518[_0x57f0cb('0x13d')][_0x57f0cb('0x325')]==_0x3a0518[_0x57f0cb('0x481')][_0x57f0cb('0x990')]||(_0x3a0518[_0x57f0cb('0x13d')][_0x57f0cb('0x2f8')][_0x57f0cb('0x103')](),_0x5683b3&&setTimeout(function(){var _0x252a58=_0x57f0cb;return _0x3a0518[_0x252a58('0x13d')][_0x252a58('0x2f8')][_0x252a58('0x103')](!0x0);},0x14)),_0x3a0518[_0x57f0cb('0x13d')][_0x57f0cb('0x2f8')]['receivedFocus']()),_0x2c8d50(_0x3a0518));}function _0x3d07e0(_0x3eada4,_0xb1e80d){var _0x2faa96=_0x1a265f;_0x3eada4[_0x2faa96('0x55d')]['delayingBlurEvent']||(_0x3eada4[_0x2faa96('0x55d')]['focused']&&(_0x38db09(_0x3eada4,_0x2faa96('0xba2'),_0x3eada4,_0xb1e80d),_0x3eada4[_0x2faa96('0x55d')][_0x2faa96('0x7be')]=!0x1,_0x1ce61b(_0x3eada4['display'][_0x2faa96('0xfc3')],_0x2faa96('0x479'))),clearInterval(_0x3eada4[_0x2faa96('0x13d')][_0x2faa96('0x135')]),setTimeout(function(){var _0x55ec25=_0x2faa96;_0x3eada4[_0x55ec25('0x55d')][_0x55ec25('0x7be')]||(_0x3eada4[_0x55ec25('0x13d')][_0x55ec25('0xf30')]=!0x1);},0x96));}function _0x1c7024(_0x35e436){var _0x18e022=_0x1a265f;for(var _0x485f62=_0x35e436[_0x18e022('0x13d')],_0x294b3b=_0x485f62[_0x18e022('0x54a')][_0x18e022('0xf02')],_0x3731a2=0x0;_0x3731a2<_0x485f62[_0x18e022('0x770')][_0x18e022('0x13')];_0x3731a2++){var _0x3f364f=_0x485f62['view'][_0x3731a2],_0x35197d=_0x35e436[_0x18e022('0x29d')][_0x18e022('0x215')],_0x3a27c3=void 0x0,_0x1ea6bb=0x0;if(!_0x3f364f[_0x18e022('0x10f4')]){if(_0x22bb28&&_0x217fe9<0x8){var _0x588033=_0x3f364f[_0x18e022('0xb95')][_0x18e022('0xf02')]+_0x3f364f[_0x18e022('0xb95')][_0x18e022('0x495')];_0x3a27c3=_0x588033-_0x294b3b,_0x294b3b=_0x588033;}else{var _0x3ff394=_0x3f364f[_0x18e022('0xb95')]['getBoundingClientRect']();_0x3a27c3=_0x3ff394[_0x18e022('0x9c2')]-_0x3ff394['top'],!_0x35197d&&_0x3f364f[_0x18e022('0x5b2')][_0x18e022('0xf86')]&&(_0x1ea6bb=_0x3f364f[_0x18e022('0x5b2')][_0x18e022('0xf86')][_0x18e022('0x422')]()[_0x18e022('0x94b')]-_0x3ff394[_0x18e022('0x10fb')]-0x1);}var _0x4746a5=_0x3f364f[_0x18e022('0x860')]['height']-_0x3a27c3;if((_0x4746a5>0.005||_0x4746a5<-0.005)&&(_0x1ae833(_0x3f364f[_0x18e022('0x860')],_0x3a27c3),_0x204cca(_0x3f364f[_0x18e022('0x860')]),_0x3f364f[_0x18e022('0x19d')]))for(var _0x262fe1=0x0;_0x262fe1<_0x3f364f[_0x18e022('0x19d')][_0x18e022('0x13')];_0x262fe1++)_0x204cca(_0x3f364f[_0x18e022('0x19d')][_0x262fe1]);if(_0x1ea6bb>_0x35e436[_0x18e022('0x13d')][_0x18e022('0x2e0')]){var _0x47ae10=Math[_0x18e022('0xb0')](_0x1ea6bb/_0x48a458(_0x35e436[_0x18e022('0x13d')]));_0x47ae10>_0x35e436[_0x18e022('0x13d')][_0x18e022('0x672')]&&(_0x35e436[_0x18e022('0x13d')]['maxLineLength']=_0x47ae10,_0x35e436['display'][_0x18e022('0x3c2')]=_0x3f364f[_0x18e022('0x860')],_0x35e436[_0x18e022('0x13d')][_0x18e022('0x698')]=!0x0);}}}}function _0x204cca(_0x1f9a1f){var _0x3a4e73=_0x1a265f;if(_0x1f9a1f['widgets'])for(var _0x34d028=0x0;_0x34d028<_0x1f9a1f['widgets'][_0x3a4e73('0x13')];++_0x34d028){var _0x47e26e=_0x1f9a1f['widgets'][_0x34d028],_0x25f452=_0x47e26e[_0x3a4e73('0xb95')][_0x3a4e73('0x9cd')];_0x25f452&&(_0x47e26e[_0x3a4e73('0x27b')]=_0x25f452[_0x3a4e73('0x495')]);}}function _0x21ac22(_0x1bf5d4,_0x5b0e8c,_0x3ecd5b){var _0x99f016=_0x1a265f,_0xab6def=_0x3ecd5b&&null!=_0x3ecd5b[_0x99f016('0x5b')]?Math[_0x99f016('0xa0d')](0x0,_0x3ecd5b[_0x99f016('0x5b')]):_0x1bf5d4['scroller'][_0x99f016('0x94d')];_0xab6def=Math['floor'](_0xab6def-_0x475c2f(_0x1bf5d4));var _0x58837a=_0x3ecd5b&&null!=_0x3ecd5b['bottom']?_0x3ecd5b[_0x99f016('0x9c2')]:_0xab6def+_0x1bf5d4[_0x99f016('0xfc3')][_0x99f016('0x9d9')],_0x4742be=_0x1d0db2(_0x5b0e8c,_0xab6def),_0xf3f38d=_0x1d0db2(_0x5b0e8c,_0x58837a);if(_0x3ecd5b&&_0x3ecd5b[_0x99f016('0xcfc')]){var _0x237469=_0x3ecd5b[_0x99f016('0xcfc')][_0x99f016('0x1161')]['line'],_0x59f25c=_0x3ecd5b[_0x99f016('0xcfc')]['to'][_0x99f016('0x860')];_0x237469<_0x4742be?(_0x4742be=_0x237469,_0xf3f38d=_0x1d0db2(_0x5b0e8c,_0x112056(_0x1964d4(_0x5b0e8c,_0x237469))+_0x1bf5d4[_0x99f016('0xfc3')][_0x99f016('0x9d9')])):Math[_0x99f016('0xd3f')](_0x59f25c,_0x5b0e8c['lastLine']())>=_0xf3f38d&&(_0x4742be=_0x1d0db2(_0x5b0e8c,_0x112056(_0x1964d4(_0x5b0e8c,_0x59f25c))-_0x1bf5d4[_0x99f016('0xfc3')][_0x99f016('0x9d9')]),_0xf3f38d=_0x59f25c);}return{'from':_0x4742be,'to':Math[_0x99f016('0xa0d')](_0xf3f38d,_0x4742be+0x1)};}function _0x163950(_0x1fdddf,_0x249942){var _0x2b6e19=_0x1a265f,_0x50e664=_0x1fdddf[_0x2b6e19('0x13d')],_0x3432ec=_0x30a1c3(_0x1fdddf['display']);_0x249942[_0x2b6e19('0x5b')]<0x0&&(_0x249942['top']=0x0);var _0x4cead2=_0x1fdddf[_0x2b6e19('0x5ec')]&&null!=_0x1fdddf['curOp'][_0x2b6e19('0x94d')]?_0x1fdddf['curOp'][_0x2b6e19('0x94d')]:_0x50e664['scroller'][_0x2b6e19('0x94d')],_0x3172c9=_0xf54677(_0x1fdddf),_0x2a95b5={};_0x249942['bottom']-_0x249942[_0x2b6e19('0x5b')]>_0x3172c9&&(_0x249942['bottom']=_0x249942[_0x2b6e19('0x5b')]+_0x3172c9);var _0x3244c0=_0x1fdddf[_0x2b6e19('0x481')]['height']+_0x26cbdd(_0x50e664),_0x4f0780=_0x249942['top']<_0x3432ec,_0x1c12e7=_0x249942[_0x2b6e19('0x9c2')]>_0x3244c0-_0x3432ec;if(_0x249942['top']<_0x4cead2)_0x2a95b5[_0x2b6e19('0x94d')]=_0x4f0780?0x0:_0x249942[_0x2b6e19('0x5b')];else{if(_0x249942['bottom']>_0x4cead2+_0x3172c9){var _0x59710a=Math[_0x2b6e19('0xd3f')](_0x249942[_0x2b6e19('0x5b')],(_0x1c12e7?_0x3244c0:_0x249942[_0x2b6e19('0x9c2')])-_0x3172c9);_0x59710a!=_0x4cead2&&(_0x2a95b5[_0x2b6e19('0x94d')]=_0x59710a);}}var _0x4f31cd=_0x1fdddf[_0x2b6e19('0x5ec')]&&null!=_0x1fdddf[_0x2b6e19('0x5ec')][_0x2b6e19('0x37e')]?_0x1fdddf[_0x2b6e19('0x5ec')][_0x2b6e19('0x37e')]:_0x50e664[_0x2b6e19('0xf31')][_0x2b6e19('0x37e')],_0x2a872e=_0x2eda44(_0x1fdddf)-(_0x1fdddf[_0x2b6e19('0x29d')][_0x2b6e19('0x7f8')]?_0x50e664['gutters']['offsetWidth']:0x0),_0x375970=_0x249942[_0x2b6e19('0x94b')]-_0x249942['left']>_0x2a872e;return _0x375970&&(_0x249942[_0x2b6e19('0x94b')]=_0x249942[_0x2b6e19('0x10fb')]+_0x2a872e),_0x249942[_0x2b6e19('0x10fb')]<0xa?_0x2a95b5[_0x2b6e19('0x37e')]=0x0:_0x249942[_0x2b6e19('0x10fb')]<_0x4f31cd?_0x2a95b5[_0x2b6e19('0x37e')]=Math[_0x2b6e19('0xa0d')](0x0,_0x249942[_0x2b6e19('0x10fb')]-(_0x375970?0x0:0xa)):_0x249942[_0x2b6e19('0x94b')]>_0x2a872e+_0x4f31cd-0x3&&(_0x2a95b5['scrollLeft']=_0x249942[_0x2b6e19('0x94b')]+(_0x375970?0x0:0xa)-_0x2a872e),_0x2a95b5;}function _0x4b37de(_0x2d30d4,_0x570f0a){var _0x205155=_0x1a265f;null!=_0x570f0a&&(_0xed24ec(_0x2d30d4),_0x2d30d4[_0x205155('0x5ec')][_0x205155('0x94d')]=(null==_0x2d30d4[_0x205155('0x5ec')]['scrollTop']?_0x2d30d4[_0x205155('0x481')]['scrollTop']:_0x2d30d4[_0x205155('0x5ec')][_0x205155('0x94d')])+_0x570f0a);}function _0x3b2a9(_0x18316e){var _0x2c2433=_0x1a265f;_0xed24ec(_0x18316e);var _0x296b4e=_0x18316e[_0x2c2433('0xbb7')]();_0x18316e[_0x2c2433('0x5ec')][_0x2c2433('0x61d')]={'from':_0x296b4e,'to':_0x296b4e,'margin':_0x18316e[_0x2c2433('0x29d')][_0x2c2433('0xe13')]};}function _0x4115a7(_0x421fa5,_0x33cc46,_0x45e61e){var _0x36128b=_0x1a265f;null==_0x33cc46&&null==_0x45e61e||_0xed24ec(_0x421fa5),null!=_0x33cc46&&(_0x421fa5[_0x36128b('0x5ec')][_0x36128b('0x37e')]=_0x33cc46),null!=_0x45e61e&&(_0x421fa5[_0x36128b('0x5ec')][_0x36128b('0x94d')]=_0x45e61e);}function _0xed24ec(_0x2b590d){var _0x1b3260=_0x1a265f,_0x1465e1=_0x2b590d['curOp'][_0x1b3260('0x61d')];_0x1465e1&&(_0x2b590d[_0x1b3260('0x5ec')][_0x1b3260('0x61d')]=null,_0x1accf9(_0x2b590d,_0x3b947b(_0x2b590d,_0x1465e1[_0x1b3260('0x1161')]),_0x3b947b(_0x2b590d,_0x1465e1['to']),_0x1465e1[_0x1b3260('0xa13')]));}function _0x1accf9(_0x5af0ac,_0x109eaf,_0x44147b,_0x36c9d7){var _0x1b71a2=_0x1a265f,_0x3c2db5=_0x163950(_0x5af0ac,{'left':Math['min'](_0x109eaf[_0x1b71a2('0x10fb')],_0x44147b[_0x1b71a2('0x10fb')]),'top':Math[_0x1b71a2('0xd3f')](_0x109eaf[_0x1b71a2('0x5b')],_0x44147b[_0x1b71a2('0x5b')])-_0x36c9d7,'right':Math[_0x1b71a2('0xa0d')](_0x109eaf[_0x1b71a2('0x94b')],_0x44147b[_0x1b71a2('0x94b')]),'bottom':Math[_0x1b71a2('0xa0d')](_0x109eaf[_0x1b71a2('0x9c2')],_0x44147b['bottom'])+_0x36c9d7});_0x4115a7(_0x5af0ac,_0x3c2db5[_0x1b71a2('0x37e')],_0x3c2db5[_0x1b71a2('0x94d')]);}function _0x3b60c2(_0xdd741f,_0x507dec){var _0x55a6e7=_0x1a265f;Math[_0x55a6e7('0x415')](_0xdd741f[_0x55a6e7('0x481')][_0x55a6e7('0x94d')]-_0x507dec)<0x2||(_0x29b819||_0x50bfa6(_0xdd741f,{'top':_0x507dec}),_0x18b16c(_0xdd741f,_0x507dec,!0x0),_0x29b819&&_0x50bfa6(_0xdd741f),_0x6070d0(_0xdd741f,0x64));}function _0x18b16c(_0x3e5828,_0x44f6de,_0x484e44){var _0x1adebb=_0x1a265f;_0x44f6de=Math[_0x1adebb('0xa0d')](0x0,Math['min'](_0x3e5828[_0x1adebb('0x13d')][_0x1adebb('0xf31')]['scrollHeight']-_0x3e5828[_0x1adebb('0x13d')]['scroller']['clientHeight'],_0x44f6de)),(_0x3e5828[_0x1adebb('0x13d')][_0x1adebb('0xf31')][_0x1adebb('0x94d')]!=_0x44f6de||_0x484e44)&&(_0x3e5828[_0x1adebb('0x481')][_0x1adebb('0x94d')]=_0x44f6de,_0x3e5828[_0x1adebb('0x13d')]['scrollbars'][_0x1adebb('0xed3')](_0x44f6de),_0x3e5828['display']['scroller'][_0x1adebb('0x94d')]!=_0x44f6de&&(_0x3e5828[_0x1adebb('0x13d')][_0x1adebb('0xf31')][_0x1adebb('0x94d')]=_0x44f6de));}function _0x4faaac(_0xd815e0,_0x3274df,_0x2ba07e,_0x401ccb){var _0x4f848c=_0x1a265f;_0x3274df=Math[_0x4f848c('0xa0d')](0x0,Math[_0x4f848c('0xd3f')](_0x3274df,_0xd815e0[_0x4f848c('0x13d')]['scroller'][_0x4f848c('0xd68')]-_0xd815e0[_0x4f848c('0x13d')][_0x4f848c('0xf31')][_0x4f848c('0xddd')])),(_0x2ba07e?_0x3274df==_0xd815e0[_0x4f848c('0x481')][_0x4f848c('0x37e')]:Math['abs'](_0xd815e0[_0x4f848c('0x481')][_0x4f848c('0x37e')]-_0x3274df)<0x2)&&!_0x401ccb||(_0xd815e0[_0x4f848c('0x481')]['scrollLeft']=_0x3274df,_0x4428e5(_0xd815e0),_0xd815e0[_0x4f848c('0x13d')][_0x4f848c('0xf31')][_0x4f848c('0x37e')]!=_0x3274df&&(_0xd815e0['display'][_0x4f848c('0xf31')]['scrollLeft']=_0x3274df),_0xd815e0[_0x4f848c('0x13d')][_0x4f848c('0xeeb')][_0x4f848c('0xc04')](_0x3274df));}function _0x5cba03(_0x5433f0){var _0x1dad32=_0x1a265f,_0x1f19b3=_0x5433f0[_0x1dad32('0x13d')],_0x4fd850=_0x1f19b3['gutters'][_0x1dad32('0xb94')],_0x36d6d5=Math[_0x1dad32('0x9ee')](_0x5433f0[_0x1dad32('0x481')][_0x1dad32('0x27b')]+_0x26cbdd(_0x5433f0[_0x1dad32('0x13d')]));return{'clientHeight':_0x1f19b3[_0x1dad32('0xf31')]['clientHeight'],'viewHeight':_0x1f19b3['wrapper'][_0x1dad32('0x9d9')],'scrollWidth':_0x1f19b3[_0x1dad32('0xf31')][_0x1dad32('0xd68')],'clientWidth':_0x1f19b3[_0x1dad32('0xf31')][_0x1dad32('0xddd')],'viewWidth':_0x1f19b3[_0x1dad32('0xfc3')][_0x1dad32('0xddd')],'barLeft':_0x5433f0[_0x1dad32('0x29d')][_0x1dad32('0x7f8')]?_0x4fd850:0x0,'docHeight':_0x36d6d5,'scrollHeight':_0x36d6d5+_0x1cc4be(_0x5433f0)+_0x1f19b3[_0x1dad32('0x7b4')],'nativeBarWidth':_0x1f19b3[_0x1dad32('0x50c')],'gutterWidth':_0x4fd850};}var _0x4a59d9=function(_0x7f5b1c,_0x26c762,_0x58cbd2){var _0x11c8fa=_0x1a265f;this['cm']=_0x58cbd2;var _0xa0010=this[_0x11c8fa('0xdd1')]=_0x4aeabd(_0x11c8fa('0x26c'),[_0x4aeabd(_0x11c8fa('0x26c'),null,null,_0x11c8fa('0xe7d'))],_0x11c8fa('0x1108')),_0x22b9b8=this['horiz']=_0x4aeabd(_0x11c8fa('0x26c'),[_0x4aeabd('div',null,null,'height:\x20100%;\x20min-height:\x201px')],_0x11c8fa('0x2de'));_0xa0010['tabIndex']=_0x22b9b8[_0x11c8fa('0x64b')]=-0x1,_0x7f5b1c(_0xa0010),_0x7f5b1c(_0x22b9b8),_0x4d62f6(_0xa0010,_0x11c8fa('0xeba'),function(){var _0x3d333d=_0x11c8fa;_0xa0010[_0x3d333d('0x9d9')]&&_0x26c762(_0xa0010[_0x3d333d('0x94d')],_0x3d333d('0x952'));}),_0x4d62f6(_0x22b9b8,_0x11c8fa('0xeba'),function(){var _0x12bc3f=_0x11c8fa;_0x22b9b8[_0x12bc3f('0xddd')]&&_0x26c762(_0x22b9b8[_0x12bc3f('0x37e')],_0x12bc3f('0x9f2'));}),this[_0x11c8fa('0x68a')]=!0x1,_0x22bb28&&_0x217fe9<0x8&&(this[_0x11c8fa('0x75d')]['style'][_0x11c8fa('0xfaa')]=this[_0x11c8fa('0xdd1')]['style'][_0x11c8fa('0x106')]=_0x11c8fa('0xf7a'));};_0x4a59d9[_0x1a265f('0xe02')][_0x1a265f('0xe54')]=function(_0x31cc06){var _0x140702=_0x1a265f,_0x3ca23b=_0x31cc06['scrollWidth']>_0x31cc06['clientWidth']+0x1,_0x380fad=_0x31cc06[_0x140702('0x920')]>_0x31cc06[_0x140702('0x9d9')]+0x1,_0x1865f1=_0x31cc06[_0x140702('0x50c')];if(_0x380fad){this[_0x140702('0xdd1')][_0x140702('0xe81')]['display']=_0x140702('0xc72'),this['vert'][_0x140702('0xe81')][_0x140702('0x9c2')]=_0x3ca23b?_0x1865f1+'px':'0';var _0xff5a04=_0x31cc06[_0x140702('0xc6a')]-(_0x3ca23b?_0x1865f1:0x0);this['vert'][_0x140702('0xf86')][_0x140702('0xe81')][_0x140702('0x27b')]=Math[_0x140702('0xa0d')](0x0,_0x31cc06['scrollHeight']-_0x31cc06[_0x140702('0x9d9')]+_0xff5a04)+'px';}else this[_0x140702('0xdd1')][_0x140702('0xe81')][_0x140702('0x13d')]='',this['vert']['firstChild'][_0x140702('0xe81')][_0x140702('0x27b')]='0';if(_0x3ca23b){this[_0x140702('0x75d')]['style'][_0x140702('0x13d')]=_0x140702('0xc72'),this[_0x140702('0x75d')][_0x140702('0xe81')][_0x140702('0x94b')]=_0x380fad?_0x1865f1+'px':'0',this[_0x140702('0x75d')][_0x140702('0xe81')][_0x140702('0x10fb')]=_0x31cc06[_0x140702('0xf99')]+'px';var _0x1dc072=_0x31cc06[_0x140702('0xde8')]-_0x31cc06[_0x140702('0xf99')]-(_0x380fad?_0x1865f1:0x0);this[_0x140702('0x75d')]['firstChild'][_0x140702('0xe81')][_0x140702('0x115')]=Math[_0x140702('0xa0d')](0x0,_0x31cc06[_0x140702('0xd68')]-_0x31cc06[_0x140702('0xddd')]+_0x1dc072)+'px';}else this[_0x140702('0x75d')][_0x140702('0xe81')][_0x140702('0x13d')]='',this[_0x140702('0x75d')][_0x140702('0xf86')][_0x140702('0xe81')][_0x140702('0x115')]='0';return!this['checkedZeroWidth']&&_0x31cc06[_0x140702('0x9d9')]>0x0&&(0x0==_0x1865f1&&this[_0x140702('0x99e')](),this['checkedZeroWidth']=!0x0),{'right':_0x380fad?_0x1865f1:0x0,'bottom':_0x3ca23b?_0x1865f1:0x0};},_0x4a59d9['prototype'][_0x1a265f('0xc04')]=function(_0x18460c){var _0x3959af=_0x1a265f;this[_0x3959af('0x75d')]['scrollLeft']!=_0x18460c&&(this['horiz'][_0x3959af('0x37e')]=_0x18460c),this[_0x3959af('0xa64')]&&this[_0x3959af('0xa1')](this['horiz'],this[_0x3959af('0xa64')],_0x3959af('0x75d'));},_0x4a59d9[_0x1a265f('0xe02')][_0x1a265f('0xed3')]=function(_0x10d347){var _0x13b657=_0x1a265f;this[_0x13b657('0xdd1')][_0x13b657('0x94d')]!=_0x10d347&&(this[_0x13b657('0xdd1')][_0x13b657('0x94d')]=_0x10d347),this['disableVert']&&this[_0x13b657('0xa1')](this['vert'],this[_0x13b657('0xe0a')],_0x13b657('0xdd1'));},_0x4a59d9[_0x1a265f('0xe02')][_0x1a265f('0x99e')]=function(){var _0x49b404=_0x1a265f,_0x2a62b4=_0x182eee&&!_0x57b01e?_0x49b404('0x346'):_0x49b404('0xf7a');this['horiz']['style'][_0x49b404('0x27b')]=this[_0x49b404('0xdd1')][_0x49b404('0xe81')][_0x49b404('0x115')]=_0x2a62b4,this['horiz'][_0x49b404('0xe81')]['pointerEvents']=this[_0x49b404('0xdd1')]['style'][_0x49b404('0x111c')]=_0x49b404('0xea1'),this[_0x49b404('0xa64')]=new _0x4e4ea8(),this[_0x49b404('0xe0a')]=new _0x4e4ea8();},_0x4a59d9[_0x1a265f('0xe02')][_0x1a265f('0xa1')]=function(_0x43ab38,_0x35c31d,_0x491af9){var _0x12bf0a=_0x1a265f;_0x43ab38[_0x12bf0a('0xe81')][_0x12bf0a('0x111c')]='auto',_0x35c31d['set'](0x3e8,function _0x21e3cd(){var _0x4c899d=_0x12bf0a,_0x26aeb3=_0x43ab38[_0x4c899d('0x422')]();(_0x4c899d('0xdd1')==_0x491af9?document[_0x4c899d('0xbd6')](_0x26aeb3[_0x4c899d('0x94b')]-0x1,(_0x26aeb3['top']+_0x26aeb3[_0x4c899d('0x9c2')])/0x2):document[_0x4c899d('0xbd6')]((_0x26aeb3[_0x4c899d('0x94b')]+_0x26aeb3[_0x4c899d('0x10fb')])/0x2,_0x26aeb3[_0x4c899d('0x9c2')]-0x1))!=_0x43ab38?_0x43ab38[_0x4c899d('0xe81')][_0x4c899d('0x111c')]=_0x4c899d('0xea1'):_0x35c31d['set'](0x3e8,_0x21e3cd);});},_0x4a59d9[_0x1a265f('0xe02')][_0x1a265f('0xb15')]=function(){var _0x375551=_0x1a265f,_0x2f79a0=this[_0x375551('0x75d')]['parentNode'];_0x2f79a0[_0x375551('0xf93')](this['horiz']),_0x2f79a0['removeChild'](this[_0x375551('0xdd1')]);};var _0x2ce033=function(){};function _0x433520(_0x5c2700,_0x45e388){var _0x5dff03=_0x1a265f;_0x45e388||(_0x45e388=_0x5cba03(_0x5c2700));var _0x2db1b0=_0x5c2700[_0x5dff03('0x13d')][_0x5dff03('0x100a')],_0xb90a92=_0x5c2700['display'][_0x5dff03('0x7b4')];_0x43f9d5(_0x5c2700,_0x45e388);for(var _0x513b0e=0x0;_0x513b0e<0x4&&_0x2db1b0!=_0x5c2700['display'][_0x5dff03('0x100a')]||_0xb90a92!=_0x5c2700[_0x5dff03('0x13d')][_0x5dff03('0x7b4')];_0x513b0e++)_0x2db1b0!=_0x5c2700[_0x5dff03('0x13d')][_0x5dff03('0x100a')]&&_0x5c2700[_0x5dff03('0x29d')][_0x5dff03('0x215')]&&_0x1c7024(_0x5c2700),_0x43f9d5(_0x5c2700,_0x5cba03(_0x5c2700)),_0x2db1b0=_0x5c2700[_0x5dff03('0x13d')][_0x5dff03('0x100a')],_0xb90a92=_0x5c2700[_0x5dff03('0x13d')]['barHeight'];}function _0x43f9d5(_0x261d73,_0x48f6c6){var _0x5002ba=_0x1a265f,_0x2fe927=_0x261d73['display'],_0x1f3b63=_0x2fe927[_0x5002ba('0xeeb')][_0x5002ba('0xe54')](_0x48f6c6);_0x2fe927['sizer'][_0x5002ba('0xe81')][_0x5002ba('0x8a1')]=(_0x2fe927['barWidth']=_0x1f3b63['right'])+'px',_0x2fe927['sizer'][_0x5002ba('0xe81')][_0x5002ba('0x10a3')]=(_0x2fe927[_0x5002ba('0x7b4')]=_0x1f3b63[_0x5002ba('0x9c2')])+'px',_0x2fe927[_0x5002ba('0xc27')][_0x5002ba('0xe81')][_0x5002ba('0x1113')]=_0x1f3b63[_0x5002ba('0x9c2')]+'px\x20solid\x20transparent',_0x1f3b63[_0x5002ba('0x94b')]&&_0x1f3b63['bottom']?(_0x2fe927[_0x5002ba('0x2cc')]['style'][_0x5002ba('0x13d')]=_0x5002ba('0xc72'),_0x2fe927['scrollbarFiller'][_0x5002ba('0xe81')][_0x5002ba('0x27b')]=_0x1f3b63[_0x5002ba('0x9c2')]+'px',_0x2fe927['scrollbarFiller'][_0x5002ba('0xe81')][_0x5002ba('0x115')]=_0x1f3b63[_0x5002ba('0x94b')]+'px'):_0x2fe927[_0x5002ba('0x2cc')][_0x5002ba('0xe81')][_0x5002ba('0x13d')]='',_0x1f3b63[_0x5002ba('0x9c2')]&&_0x261d73[_0x5002ba('0x29d')][_0x5002ba('0xa31')]&&_0x261d73[_0x5002ba('0x29d')][_0x5002ba('0x7f8')]?(_0x2fe927['gutterFiller']['style'][_0x5002ba('0x13d')]=_0x5002ba('0xc72'),_0x2fe927[_0x5002ba('0xe89')][_0x5002ba('0xe81')][_0x5002ba('0x27b')]=_0x1f3b63[_0x5002ba('0x9c2')]+'px',_0x2fe927[_0x5002ba('0xe89')][_0x5002ba('0xe81')]['width']=_0x48f6c6[_0x5002ba('0x580')]+'px'):_0x2fe927[_0x5002ba('0xe89')][_0x5002ba('0xe81')][_0x5002ba('0x13d')]='';}_0x2ce033[_0x1a265f('0xe02')]['update']=function(){return{'bottom':0x0,'right':0x0};},_0x2ce033['prototype'][_0x1a265f('0xc04')]=function(){},_0x2ce033[_0x1a265f('0xe02')][_0x1a265f('0xed3')]=function(){},_0x2ce033['prototype'][_0x1a265f('0xb15')]=function(){};var _0x35e66d={'native':_0x4a59d9,'null':_0x2ce033};function _0x2dae9f(_0x13574d){var _0x11ae4a=_0x1a265f;_0x13574d[_0x11ae4a('0x13d')][_0x11ae4a('0xeeb')]&&(_0x13574d[_0x11ae4a('0x13d')][_0x11ae4a('0xeeb')][_0x11ae4a('0xb15')](),_0x13574d[_0x11ae4a('0x13d')][_0x11ae4a('0xeeb')]['addClass']&&_0x1ce61b(_0x13574d[_0x11ae4a('0x13d')]['wrapper'],_0x13574d[_0x11ae4a('0x13d')]['scrollbars'][_0x11ae4a('0x6a')])),_0x13574d[_0x11ae4a('0x13d')]['scrollbars']=new _0x35e66d[_0x13574d['options'][(_0x11ae4a('0x1028'))]](function(_0x1e77e2){var _0x3266bf=_0x11ae4a;_0x13574d[_0x3266bf('0x13d')]['wrapper'][_0x3266bf('0xfb')](_0x1e77e2,_0x13574d['display'][_0x3266bf('0x2cc')]),_0x4d62f6(_0x1e77e2,'mousedown',function(){var _0x4ac953=_0x3266bf;_0x13574d['state'][_0x4ac953('0x7be')]&&setTimeout(function(){var _0x237513=_0x4ac953;return _0x13574d[_0x237513('0x13d')][_0x237513('0x2f8')]['focus']();},0x0);}),_0x1e77e2[_0x3266bf('0x451')](_0x3266bf('0x897'),'true');},function(_0x5966fc,_0x467fbe){var _0x4c2dff=_0x11ae4a;_0x4c2dff('0x9f2')==_0x467fbe?_0x4faaac(_0x13574d,_0x5966fc):_0x3b60c2(_0x13574d,_0x5966fc);},_0x13574d),_0x13574d[_0x11ae4a('0x13d')][_0x11ae4a('0xeeb')]['addClass']&&_0x379c51(_0x13574d['display'][_0x11ae4a('0xfc3')],_0x13574d['display']['scrollbars']['addClass']);}var _0x399e68=0x0;function _0x4b83c7(_0xb6434d){var _0x47b37b=_0x1a265f,_0x24bd88;_0xb6434d[_0x47b37b('0x5ec')]={'cm':_0xb6434d,'viewChanged':!0x1,'startHeight':_0xb6434d[_0x47b37b('0x481')][_0x47b37b('0x27b')],'forceUpdate':!0x1,'updateInput':0x0,'typing':!0x1,'changeObjs':null,'cursorActivityHandlers':null,'cursorActivityCalled':0x0,'selectionChanged':!0x1,'updateMaxLine':!0x1,'scrollLeft':null,'scrollTop':null,'scrollToPos':null,'focus':!0x1,'id':++_0x399e68},_0x24bd88=_0xb6434d[_0x47b37b('0x5ec')],_0x4d0654?_0x4d0654[_0x47b37b('0x17')][_0x47b37b('0x91b')](_0x24bd88):_0x24bd88[_0x47b37b('0x1007')]=_0x4d0654={'ops':[_0x24bd88],'delayedCallbacks':[]};}function _0x381b4d(_0x449b5b){var _0x4b507a=_0x449b5b['curOp'];_0x4b507a&&function(_0x11d943,_0x3783e6){var _0x2ea3af=_0x5376,_0x38cd75=_0x11d943[_0x2ea3af('0x1007')];if(_0x38cd75)try{!function(_0x23c76d){var _0x1c5d97=_0x2ea3af,_0x342abf=_0x23c76d[_0x1c5d97('0x8f5')],_0x2aeb97=0x0;do{for(;_0x2aeb97<_0x342abf[_0x1c5d97('0x13')];_0x2aeb97++)_0x342abf[_0x2aeb97][_0x1c5d97('0xfd2')](null);for(var _0xe48969=0x0;_0xe48969<_0x23c76d[_0x1c5d97('0x17')][_0x1c5d97('0x13')];_0xe48969++){var _0x46b803=_0x23c76d['ops'][_0xe48969];if(_0x46b803['cursorActivityHandlers'])for(;_0x46b803[_0x1c5d97('0xc69')]<_0x46b803[_0x1c5d97('0xeef')][_0x1c5d97('0x13')];)_0x46b803[_0x1c5d97('0xeef')][_0x46b803['cursorActivityCalled']++][_0x1c5d97('0xfd2')](null,_0x46b803['cm']);}}while(_0x2aeb97<_0x342abf[_0x1c5d97('0x13')]);}(_0x38cd75);}finally{_0x4d0654=null,_0x3783e6(_0x38cd75);}}(_0x4b507a,function(_0x3edd96){var _0x2ec0de=_0x5376;for(var _0x488a8e=0x0;_0x488a8e<_0x3edd96[_0x2ec0de('0x17')]['length'];_0x488a8e++)_0x3edd96[_0x2ec0de('0x17')][_0x488a8e]['cm'][_0x2ec0de('0x5ec')]=null;!function(_0x4c87b0){var _0x157672=_0x2ec0de;for(var _0x3bcf5b=_0x4c87b0[_0x157672('0x17')],_0xf24be3=0x0;_0xf24be3<_0x3bcf5b[_0x157672('0x13')];_0xf24be3++)_0x4f2419(_0x3bcf5b[_0xf24be3]);for(var _0x25fda6=0x0;_0x25fda6<_0x3bcf5b[_0x157672('0x13')];_0x25fda6++)_0x38f7ba(_0x3bcf5b[_0x25fda6]);for(var _0x596059=0x0;_0x596059<_0x3bcf5b['length'];_0x596059++)_0x18dca8(_0x3bcf5b[_0x596059]);for(var _0x1c74c3=0x0;_0x1c74c3<_0x3bcf5b[_0x157672('0x13')];_0x1c74c3++)_0x56201e(_0x3bcf5b[_0x1c74c3]);for(var _0x396fca=0x0;_0x396fca<_0x3bcf5b[_0x157672('0x13')];_0x396fca++)_0x44b1b8(_0x3bcf5b[_0x396fca]);}(_0x3edd96);});}function _0x4f2419(_0x2ffd59){var _0x30894a=_0x1a265f,_0x52026e=_0x2ffd59['cm'],_0x3d71c8=_0x52026e[_0x30894a('0x13d')];!function(_0xc1ee1f){var _0x4d7e69=_0x30894a,_0x2df33a=_0xc1ee1f['display'];!_0x2df33a[_0x4d7e69('0x21f')]&&_0x2df33a[_0x4d7e69('0xf31')]['offsetWidth']&&(_0x2df33a['nativeBarWidth']=_0x2df33a[_0x4d7e69('0xf31')][_0x4d7e69('0xb94')]-_0x2df33a[_0x4d7e69('0xf31')][_0x4d7e69('0xddd')],_0x2df33a[_0x4d7e69('0xc27')][_0x4d7e69('0xe81')]['height']=_0x1cc4be(_0xc1ee1f)+'px',_0x2df33a[_0x4d7e69('0x68f')][_0x4d7e69('0xe81')][_0x4d7e69('0xbdd')]=-_0x2df33a['nativeBarWidth']+'px',_0x2df33a[_0x4d7e69('0x68f')]['style'][_0x4d7e69('0x30a')]=_0x1cc4be(_0xc1ee1f)+'px',_0x2df33a[_0x4d7e69('0x21f')]=!0x0);}(_0x52026e),_0x2ffd59[_0x30894a('0x257')]&&_0x3e9ea0(_0x52026e),_0x2ffd59[_0x30894a('0x255')]=_0x2ffd59[_0x30894a('0xc43')]||_0x2ffd59[_0x30894a('0xf91')]||null!=_0x2ffd59[_0x30894a('0x94d')]||_0x2ffd59[_0x30894a('0x61d')]&&(_0x2ffd59[_0x30894a('0x61d')]['from'][_0x30894a('0x860')]<_0x3d71c8[_0x30894a('0x812')]||_0x2ffd59[_0x30894a('0x61d')]['to'][_0x30894a('0x860')]>=_0x3d71c8[_0x30894a('0x3e5')])||_0x3d71c8[_0x30894a('0x698')]&&_0x52026e[_0x30894a('0x29d')][_0x30894a('0x215')],_0x2ffd59[_0x30894a('0xe54')]=_0x2ffd59[_0x30894a('0x255')]&&new _0x293764(_0x52026e,_0x2ffd59[_0x30894a('0x255')]&&{'top':_0x2ffd59[_0x30894a('0x94d')],'ensure':_0x2ffd59['scrollToPos']},_0x2ffd59[_0x30894a('0xf91')]);}function _0x38f7ba(_0x21b948){var _0xea30bf=_0x1a265f;_0x21b948[_0xea30bf('0x304')]=_0x21b948['mustUpdate']&&_0x409e26(_0x21b948['cm'],_0x21b948['update']);}function _0x18dca8(_0x341370){var _0x1f4259=_0x1a265f,_0x182140=_0x341370['cm'],_0x1eaa14=_0x182140[_0x1f4259('0x13d')];_0x341370[_0x1f4259('0x304')]&&_0x1c7024(_0x182140),_0x341370[_0x1f4259('0x20')]=_0x5cba03(_0x182140),_0x1eaa14[_0x1f4259('0x698')]&&!_0x182140[_0x1f4259('0x29d')][_0x1f4259('0x215')]&&(_0x341370['adjustWidthTo']=_0x1742ef(_0x182140,_0x1eaa14[_0x1f4259('0x3c2')],_0x1eaa14[_0x1f4259('0x3c2')]['text']['length'])[_0x1f4259('0x10fb')]+0x3,_0x182140['display'][_0x1f4259('0x2e0')]=_0x341370[_0x1f4259('0xaee')],_0x341370[_0x1f4259('0x20')][_0x1f4259('0xd68')]=Math[_0x1f4259('0xa0d')](_0x1eaa14['scroller']['clientWidth'],_0x1eaa14[_0x1f4259('0x68f')][_0x1f4259('0xd07')]+_0x341370[_0x1f4259('0xaee')]+_0x1cc4be(_0x182140)+_0x182140[_0x1f4259('0x13d')]['barWidth']),_0x341370['maxScrollLeft']=Math[_0x1f4259('0xa0d')](0x0,_0x1eaa14[_0x1f4259('0x68f')][_0x1f4259('0xd07')]+_0x341370[_0x1f4259('0xaee')]-_0x2eda44(_0x182140))),(_0x341370[_0x1f4259('0x304')]||_0x341370[_0x1f4259('0x66c')])&&(_0x341370[_0x1f4259('0xdb8')]=_0x1eaa14[_0x1f4259('0x2f8')]['prepareSelection']());}function _0x56201e(_0x51123f){var _0x25e480=_0x1a265f,_0x44f95=_0x51123f['cm'];null!=_0x51123f[_0x25e480('0xaee')]&&(_0x44f95[_0x25e480('0x13d')][_0x25e480('0x68f')][_0x25e480('0xe81')][_0x25e480('0x106')]=_0x51123f['adjustWidthTo']+'px',_0x51123f[_0x25e480('0x62f')]<_0x44f95[_0x25e480('0x481')][_0x25e480('0x37e')]&&_0x4faaac(_0x44f95,Math[_0x25e480('0xd3f')](_0x44f95[_0x25e480('0x13d')][_0x25e480('0xf31')]['scrollLeft'],_0x51123f['maxScrollLeft']),!0x0),_0x44f95[_0x25e480('0x13d')]['maxLineChanged']=!0x1);var _0x29adee=_0x51123f[_0x25e480('0x7dd')]&&_0x51123f[_0x25e480('0x7dd')]==_0x205be5();_0x51123f[_0x25e480('0xdb8')]&&_0x44f95['display'][_0x25e480('0x2f8')][_0x25e480('0x6ca')](_0x51123f[_0x25e480('0xdb8')],_0x29adee),(_0x51123f['updatedDisplay']||_0x51123f['startHeight']!=_0x44f95[_0x25e480('0x481')][_0x25e480('0x27b')])&&_0x433520(_0x44f95,_0x51123f[_0x25e480('0x20')]),_0x51123f['updatedDisplay']&&_0x561432(_0x44f95,_0x51123f[_0x25e480('0x20')]),_0x51123f['selectionChanged']&&_0x2c8d50(_0x44f95),_0x44f95[_0x25e480('0x55d')][_0x25e480('0x7be')]&&_0x51123f['updateInput']&&_0x44f95['display'][_0x25e480('0x2f8')][_0x25e480('0x103')](_0x51123f['typing']),_0x29adee&&_0x22d291(_0x51123f['cm']);}function _0x44b1b8(_0xe57a74){var _0x366fe1=_0x1a265f,_0x3edeff=_0xe57a74['cm'],_0x56e9d3=_0x3edeff['display'],_0x13a2cb=_0x3edeff[_0x366fe1('0x481')];(_0xe57a74[_0x366fe1('0x304')]&&_0xbe150c(_0x3edeff,_0xe57a74[_0x366fe1('0xe54')]),null==_0x56e9d3[_0x366fe1('0xeb7')]||null==_0xe57a74['scrollTop']&&null==_0xe57a74['scrollLeft']&&!_0xe57a74[_0x366fe1('0x61d')]||(_0x56e9d3[_0x366fe1('0xeb7')]=_0x56e9d3[_0x366fe1('0x3f')]=null),null!=_0xe57a74[_0x366fe1('0x94d')]&&_0x18b16c(_0x3edeff,_0xe57a74[_0x366fe1('0x94d')],_0xe57a74['forceScroll']),null!=_0xe57a74[_0x366fe1('0x37e')]&&_0x4faaac(_0x3edeff,_0xe57a74[_0x366fe1('0x37e')],!0x0,!0x0),_0xe57a74[_0x366fe1('0x61d')])&&function(_0x243fc2,_0xba02d1){var _0x33dab4=_0x366fe1;if(!_0x5c7334(_0x243fc2,'scrollCursorIntoView')){var _0x516d27=_0x243fc2[_0x33dab4('0x13d')],_0x4b1892=_0x516d27[_0x33dab4('0x68f')][_0x33dab4('0x422')](),_0x357904=null;if(_0xba02d1[_0x33dab4('0x5b')]+_0x4b1892['top']<0x0?_0x357904=!0x0:_0xba02d1[_0x33dab4('0x9c2')]+_0x4b1892[_0x33dab4('0x5b')]>(window[_0x33dab4('0xe4e')]||document['documentElement'][_0x33dab4('0x9d9')])&&(_0x357904=!0x1),null!=_0x357904&&!_0x7ba71f){var _0x1a6bc7=_0x4aeabd(_0x33dab4('0x26c'),'​',null,_0x33dab4('0x326')+(_0xba02d1[_0x33dab4('0x5b')]-_0x516d27[_0x33dab4('0x37')]-_0x475c2f(_0x243fc2['display']))+_0x33dab4('0x132')+(_0xba02d1[_0x33dab4('0x9c2')]-_0xba02d1['top']+_0x1cc4be(_0x243fc2)+_0x516d27[_0x33dab4('0x7b4')])+_0x33dab4('0x11c')+_0xba02d1['left']+_0x33dab4('0x10c1')+Math[_0x33dab4('0xa0d')](0x2,_0xba02d1[_0x33dab4('0x94b')]-_0xba02d1[_0x33dab4('0x10fb')])+_0x33dab4('0x97e'));_0x243fc2[_0x33dab4('0x13d')][_0x33dab4('0x1f5')][_0x33dab4('0x657')](_0x1a6bc7),_0x1a6bc7[_0x33dab4('0xf2c')](_0x357904),_0x243fc2[_0x33dab4('0x13d')][_0x33dab4('0x1f5')][_0x33dab4('0xf93')](_0x1a6bc7);}}}(_0x3edeff,function(_0x183d2a,_0x3c7dd8,_0x4baa30,_0x422243){var _0x5de683=_0x366fe1,_0x3c39aa;null==_0x422243&&(_0x422243=0x0),_0x183d2a['options']['lineWrapping']||_0x3c7dd8!=_0x4baa30||(_0x4baa30=_0x5de683('0x4ec')==(_0x3c7dd8=_0x3c7dd8['ch']?_0x3de23f(_0x3c7dd8['line'],'before'==_0x3c7dd8['sticky']?_0x3c7dd8['ch']-0x1:_0x3c7dd8['ch'],_0x5de683('0x593')):_0x3c7dd8)[_0x5de683('0xce7')]?_0x3de23f(_0x3c7dd8['line'],_0x3c7dd8['ch']+0x1,_0x5de683('0x4ec')):_0x3c7dd8);for(var _0x5403bf=0x0;_0x5403bf<0x5;_0x5403bf++){var _0x44187c=!0x1,_0x5f13b8=_0x42fc0e(_0x183d2a,_0x3c7dd8),_0x1eb42c=_0x4baa30&&_0x4baa30!=_0x3c7dd8?_0x42fc0e(_0x183d2a,_0x4baa30):_0x5f13b8,_0x4cabad=_0x163950(_0x183d2a,_0x3c39aa={'left':Math['min'](_0x5f13b8['left'],_0x1eb42c['left']),'top':Math[_0x5de683('0xd3f')](_0x5f13b8[_0x5de683('0x5b')],_0x1eb42c[_0x5de683('0x5b')])-_0x422243,'right':Math['max'](_0x5f13b8[_0x5de683('0x10fb')],_0x1eb42c[_0x5de683('0x10fb')]),'bottom':Math['max'](_0x5f13b8[_0x5de683('0x9c2')],_0x1eb42c[_0x5de683('0x9c2')])+_0x422243}),_0x3b17b3=_0x183d2a[_0x5de683('0x481')][_0x5de683('0x94d')],_0x45a1ec=_0x183d2a[_0x5de683('0x481')]['scrollLeft'];if(null!=_0x4cabad[_0x5de683('0x94d')]&&(_0x3b60c2(_0x183d2a,_0x4cabad['scrollTop']),Math[_0x5de683('0x415')](_0x183d2a['doc']['scrollTop']-_0x3b17b3)>0x1&&(_0x44187c=!0x0)),null!=_0x4cabad[_0x5de683('0x37e')]&&(_0x4faaac(_0x183d2a,_0x4cabad[_0x5de683('0x37e')]),Math[_0x5de683('0x415')](_0x183d2a[_0x5de683('0x481')]['scrollLeft']-_0x45a1ec)>0x1&&(_0x44187c=!0x0)),!_0x44187c)break;}return _0x3c39aa;}(_0x3edeff,_0x11e028(_0x13a2cb,_0xe57a74['scrollToPos'][_0x366fe1('0x1161')]),_0x11e028(_0x13a2cb,_0xe57a74[_0x366fe1('0x61d')]['to']),_0xe57a74['scrollToPos'][_0x366fe1('0xa13')]));var _0x9175fb=_0xe57a74['maybeHiddenMarkers'],_0x4ffafd=_0xe57a74['maybeUnhiddenMarkers'];if(_0x9175fb)for(var _0x359d6b=0x0;_0x359d6b<_0x9175fb[_0x366fe1('0x13')];++_0x359d6b)_0x9175fb[_0x359d6b][_0x366fe1('0xf81')]['length']||_0x38db09(_0x9175fb[_0x359d6b],'hide');if(_0x4ffafd)for(var _0x12024e=0x0;_0x12024e<_0x4ffafd[_0x366fe1('0x13')];++_0x12024e)_0x4ffafd[_0x12024e]['lines'][_0x366fe1('0x13')]&&_0x38db09(_0x4ffafd[_0x12024e],_0x366fe1('0x28b'));_0x56e9d3[_0x366fe1('0xfc3')][_0x366fe1('0x495')]&&(_0x13a2cb[_0x366fe1('0x94d')]=_0x3edeff[_0x366fe1('0x13d')][_0x366fe1('0xf31')][_0x366fe1('0x94d')]),_0xe57a74[_0x366fe1('0x35f')]&&_0x38db09(_0x3edeff,'changes',_0x3edeff,_0xe57a74['changeObjs']),_0xe57a74['update']&&_0xe57a74[_0x366fe1('0xe54')]['finish']();}function _0x39976b(_0x661e39,_0x5ce389){var _0x3f9a38=_0x1a265f;if(_0x661e39[_0x3f9a38('0x5ec')])return _0x5ce389();_0x4b83c7(_0x661e39);try{return _0x5ce389();}finally{_0x381b4d(_0x661e39);}}function _0x53bb92(_0x31b0b7,_0x4a4daa){return function(){var _0x2274c6=_0x5376;if(_0x31b0b7['curOp'])return _0x4a4daa[_0x2274c6('0x2be')](_0x31b0b7,arguments);_0x4b83c7(_0x31b0b7);try{return _0x4a4daa[_0x2274c6('0x2be')](_0x31b0b7,arguments);}finally{_0x381b4d(_0x31b0b7);}};}function _0x30ee12(_0x5e3a95){return function(){var _0x392396=_0x5376;if(this[_0x392396('0x5ec')])return _0x5e3a95[_0x392396('0x2be')](this,arguments);_0x4b83c7(this);try{return _0x5e3a95[_0x392396('0x2be')](this,arguments);}finally{_0x381b4d(this);}};}function _0x42c915(_0x42d9ed){return function(){var _0x5074f5=_0x5376,_0x2c815=this['cm'];if(!_0x2c815||_0x2c815['curOp'])return _0x42d9ed['apply'](this,arguments);_0x4b83c7(_0x2c815);try{return _0x42d9ed[_0x5074f5('0x2be')](this,arguments);}finally{_0x381b4d(_0x2c815);}};}function _0x6070d0(_0x37b071,_0x204c91){var _0x303ac8=_0x1a265f;_0x37b071['doc']['highlightFrontier']<_0x37b071[_0x303ac8('0x13d')][_0x303ac8('0x3e5')]&&_0x37b071['state'][_0x303ac8('0xd4d')][_0x303ac8('0x24a')](_0x204c91,_0x43826b(_0x258c32,_0x37b071));}function _0x258c32(_0x4947c9){var _0xb401b7=_0x1a265f,_0x2f2304=_0x4947c9[_0xb401b7('0x481')];if(!(_0x2f2304['highlightFrontier']>=_0x4947c9[_0xb401b7('0x13d')][_0xb401b7('0x3e5')])){var _0x341b95=+new Date()+_0x4947c9['options'][_0xb401b7('0x791')],_0x1a2ea4=_0x619115(_0x4947c9,_0x2f2304['highlightFrontier']),_0x510dd4=[];_0x2f2304['iter'](_0x1a2ea4[_0xb401b7('0x860')],Math[_0xb401b7('0xd3f')](_0x2f2304['first']+_0x2f2304[_0xb401b7('0x10a2')],_0x4947c9[_0xb401b7('0x13d')][_0xb401b7('0x3e5')]+0x1f4),function(_0x9bc68b){var _0x4edc24=_0xb401b7;if(_0x1a2ea4['line']>=_0x4947c9[_0x4edc24('0x13d')]['viewFrom']){var _0x379aa2=_0x9bc68b[_0x4edc24('0x10ad')],_0x298a13=_0x9bc68b[_0x4edc24('0x5b2')][_0x4edc24('0x13')]>_0x4947c9['options'][_0x4edc24('0x42a')]?_0x2e27a(_0x2f2304[_0x4edc24('0x1ab')],_0x1a2ea4[_0x4edc24('0x55d')]):null,_0x25bc14=_0x125cf7(_0x4947c9,_0x9bc68b,_0x1a2ea4,!0x0);_0x298a13&&(_0x1a2ea4[_0x4edc24('0x55d')]=_0x298a13),_0x9bc68b[_0x4edc24('0x10ad')]=_0x25bc14[_0x4edc24('0x10ad')];var _0x20ac17=_0x9bc68b[_0x4edc24('0xee7')],_0x24aae1=_0x25bc14[_0x4edc24('0x4ba')];_0x24aae1?_0x9bc68b[_0x4edc24('0xee7')]=_0x24aae1:_0x20ac17&&(_0x9bc68b[_0x4edc24('0xee7')]=null);for(var _0x5d9ef3=!_0x379aa2||_0x379aa2[_0x4edc24('0x13')]!=_0x9bc68b[_0x4edc24('0x10ad')][_0x4edc24('0x13')]||_0x20ac17!=_0x24aae1&&(!_0x20ac17||!_0x24aae1||_0x20ac17[_0x4edc24('0x664')]!=_0x24aae1['bgClass']||_0x20ac17[_0x4edc24('0x6eb')]!=_0x24aae1[_0x4edc24('0x6eb')]),_0x1095d0=0x0;!_0x5d9ef3&&_0x1095d0<_0x379aa2[_0x4edc24('0x13')];++_0x1095d0)_0x5d9ef3=_0x379aa2[_0x1095d0]!=_0x9bc68b['styles'][_0x1095d0];_0x5d9ef3&&_0x510dd4[_0x4edc24('0x91b')](_0x1a2ea4['line']),_0x9bc68b['stateAfter']=_0x1a2ea4[_0x4edc24('0xb6')](),_0x1a2ea4['nextLine']();}else _0x9bc68b[_0x4edc24('0x5b2')][_0x4edc24('0x13')]<=_0x4947c9['options']['maxHighlightLength']&&_0x3363c9(_0x4947c9,_0x9bc68b[_0x4edc24('0x5b2')],_0x1a2ea4),_0x9bc68b[_0x4edc24('0x1120')]=_0x1a2ea4[_0x4edc24('0x860')]%0x5==0x0?_0x1a2ea4[_0x4edc24('0xb6')]():null,_0x1a2ea4[_0x4edc24('0x456')]();if(+new Date()>_0x341b95)return _0x6070d0(_0x4947c9,_0x4947c9[_0x4edc24('0x29d')]['workDelay']),!0x0;}),_0x2f2304['highlightFrontier']=_0x1a2ea4[_0xb401b7('0x860')],_0x2f2304[_0xb401b7('0x621')]=Math['max'](_0x2f2304[_0xb401b7('0x621')],_0x1a2ea4[_0xb401b7('0x860')]),_0x510dd4['length']&&_0x39976b(_0x4947c9,function(){var _0x955ae3=_0xb401b7;for(var _0x996f00=0x0;_0x996f00<_0x510dd4[_0x955ae3('0x13')];_0x996f00++)_0x42df63(_0x4947c9,_0x510dd4[_0x996f00],'text');});}}var _0x293764=function(_0x463d40,_0x36fe1d,_0x53b901){var _0x43c0ef=_0x1a265f,_0x117e5f=_0x463d40[_0x43c0ef('0x13d')];this[_0x43c0ef('0x2d5')]=_0x36fe1d,this['visible']=_0x21ac22(_0x117e5f,_0x463d40[_0x43c0ef('0x481')],_0x36fe1d),this[_0x43c0ef('0x957')]=!_0x117e5f[_0x43c0ef('0xfc3')]['offsetWidth'],this[_0x43c0ef('0xdfe')]=_0x117e5f[_0x43c0ef('0xfc3')][_0x43c0ef('0x9d9')],this[_0x43c0ef('0xce3')]=_0x117e5f[_0x43c0ef('0xfc3')][_0x43c0ef('0xddd')],this[_0x43c0ef('0x849')]=_0x2eda44(_0x463d40),this[_0x43c0ef('0x8d7')]=_0x53b901,this[_0x43c0ef('0xa3')]=_0x3f2595(_0x463d40),this['events']=[];};function _0x409e26(_0xd1e23f,_0x1ba41c){var _0x17591c=_0x1a265f,_0x520b80=_0xd1e23f['display'],_0x5a90da=_0xd1e23f['doc'];if(_0x1ba41c[_0x17591c('0x957')])return _0x5ed366(_0xd1e23f),!0x1;if(!_0x1ba41c[_0x17591c('0x8d7')]&&_0x1ba41c['visible'][_0x17591c('0x1161')]>=_0x520b80[_0x17591c('0x812')]&&_0x1ba41c[_0x17591c('0xdc8')]['to']<=_0x520b80[_0x17591c('0x3e5')]&&(null==_0x520b80[_0x17591c('0xd23')]||_0x520b80[_0x17591c('0xd23')]>=_0x520b80['viewTo'])&&_0x520b80[_0x17591c('0x9eb')]==_0x520b80[_0x17591c('0x770')]&&0x0==_0x2952fe(_0xd1e23f))return!0x1;_0x5e5abb(_0xd1e23f)&&(_0x5ed366(_0xd1e23f),_0x1ba41c[_0x17591c('0xa3')]=_0x3f2595(_0xd1e23f));var _0x20edd6=_0x5a90da['first']+_0x5a90da[_0x17591c('0x10a2')],_0x2132ea=Math['max'](_0x1ba41c[_0x17591c('0xdc8')][_0x17591c('0x1161')]-_0xd1e23f['options'][_0x17591c('0x886')],_0x5a90da[_0x17591c('0x3f0')]),_0x4ae709=Math[_0x17591c('0xd3f')](_0x20edd6,_0x1ba41c[_0x17591c('0xdc8')]['to']+_0xd1e23f[_0x17591c('0x29d')][_0x17591c('0x886')]);_0x520b80[_0x17591c('0x812')]<_0x2132ea&&_0x2132ea-_0x520b80['viewFrom']<0x14&&(_0x2132ea=Math['max'](_0x5a90da['first'],_0x520b80['viewFrom'])),_0x520b80[_0x17591c('0x3e5')]>_0x4ae709&&_0x520b80['viewTo']-_0x4ae709<0x14&&(_0x4ae709=Math[_0x17591c('0xd3f')](_0x20edd6,_0x520b80[_0x17591c('0x3e5')])),_0x346523&&(_0x2132ea=_0x167490(_0xd1e23f[_0x17591c('0x481')],_0x2132ea),_0x4ae709=_0x19c9e7(_0xd1e23f[_0x17591c('0x481')],_0x4ae709));var _0x35924f=_0x2132ea!=_0x520b80[_0x17591c('0x812')]||_0x4ae709!=_0x520b80['viewTo']||_0x520b80[_0x17591c('0x1035')]!=_0x1ba41c[_0x17591c('0xdfe')]||_0x520b80['lastWrapWidth']!=_0x1ba41c[_0x17591c('0xce3')];!function(_0x8ecaa0,_0x1a1326,_0x5a123f){var _0x545466=_0x17591c,_0x302c34=_0x8ecaa0[_0x545466('0x13d')];0x0==_0x302c34[_0x545466('0x770')][_0x545466('0x13')]||_0x1a1326>=_0x302c34[_0x545466('0x3e5')]||_0x5a123f<=_0x302c34[_0x545466('0x812')]?(_0x302c34[_0x545466('0x770')]=_0x463a64(_0x8ecaa0,_0x1a1326,_0x5a123f),_0x302c34[_0x545466('0x812')]=_0x1a1326):(_0x302c34[_0x545466('0x812')]>_0x1a1326?_0x302c34[_0x545466('0x770')]=_0x463a64(_0x8ecaa0,_0x1a1326,_0x302c34[_0x545466('0x812')])['concat'](_0x302c34[_0x545466('0x770')]):_0x302c34[_0x545466('0x812')]<_0x1a1326&&(_0x302c34[_0x545466('0x770')]=_0x302c34[_0x545466('0x770')][_0x545466('0xdf1')](_0x376711(_0x8ecaa0,_0x1a1326))),_0x302c34['viewFrom']=_0x1a1326,_0x302c34[_0x545466('0x3e5')]<_0x5a123f?_0x302c34[_0x545466('0x770')]=_0x302c34[_0x545466('0x770')]['concat'](_0x463a64(_0x8ecaa0,_0x302c34['viewTo'],_0x5a123f)):_0x302c34[_0x545466('0x3e5')]>_0x5a123f&&(_0x302c34[_0x545466('0x770')]=_0x302c34[_0x545466('0x770')][_0x545466('0xdf1')](0x0,_0x376711(_0x8ecaa0,_0x5a123f)))),_0x302c34[_0x545466('0x3e5')]=_0x5a123f;}(_0xd1e23f,_0x2132ea,_0x4ae709),_0x520b80[_0x17591c('0x37')]=_0x112056(_0x1964d4(_0xd1e23f['doc'],_0x520b80[_0x17591c('0x812')])),_0xd1e23f[_0x17591c('0x13d')][_0x17591c('0x61e')][_0x17591c('0xe81')]['top']=_0x520b80[_0x17591c('0x37')]+'px';var _0x242c30=_0x2952fe(_0xd1e23f);if(!_0x35924f&&0x0==_0x242c30&&!_0x1ba41c['force']&&_0x520b80[_0x17591c('0x9eb')]==_0x520b80[_0x17591c('0x770')]&&(null==_0x520b80['updateLineNumbers']||_0x520b80[_0x17591c('0xd23')]>=_0x520b80[_0x17591c('0x3e5')]))return!0x1;var _0x43bf20=function(_0x2346d2){var _0xba33a6=_0x17591c;if(_0x2346d2[_0xba33a6('0xffb')]())return null;var _0x48a7cd=_0x205be5();if(!_0x48a7cd||!_0x487fc0(_0x2346d2[_0xba33a6('0x13d')][_0xba33a6('0x54a')],_0x48a7cd))return null;var _0x158901={'activeElt':_0x48a7cd};if(window[_0xba33a6('0x806')]){var _0x391e80=window[_0xba33a6('0x806')]();_0x391e80[_0xba33a6('0xf42')]&&_0x391e80[_0xba33a6('0x73')]&&_0x487fc0(_0x2346d2['display'][_0xba33a6('0x54a')],_0x391e80[_0xba33a6('0xf42')])&&(_0x158901[_0xba33a6('0xf42')]=_0x391e80[_0xba33a6('0xf42')],_0x158901['anchorOffset']=_0x391e80[_0xba33a6('0xc87')],_0x158901['focusNode']=_0x391e80['focusNode'],_0x158901[_0xba33a6('0xa7f')]=_0x391e80['focusOffset']);}return _0x158901;}(_0xd1e23f);return _0x242c30>0x4&&(_0x520b80[_0x17591c('0x54a')][_0x17591c('0xe81')][_0x17591c('0x13d')]=_0x17591c('0xea1')),function(_0x14b30e,_0x470d49,_0x5d9324){var _0xc1b9d8=_0x17591c,_0x47abcf=_0x14b30e[_0xc1b9d8('0x13d')],_0x30ffc9=_0x14b30e['options'][_0xc1b9d8('0x8fa')],_0x3ea6cf=_0x47abcf[_0xc1b9d8('0x54a')],_0x4c0bab=_0x3ea6cf['firstChild'];function _0x1d42ca(_0x135663){var _0x2e6886=_0xc1b9d8,_0xf94bbf=_0x135663['nextSibling'];return _0x5683b3&&_0x182eee&&_0x14b30e[_0x2e6886('0x13d')][_0x2e6886('0xdc4')]==_0x135663?_0x135663[_0x2e6886('0xe81')]['display']=_0x2e6886('0xea1'):_0x135663[_0x2e6886('0x9cd')][_0x2e6886('0xf93')](_0x135663),_0xf94bbf;}for(var _0x343500=_0x47abcf[_0xc1b9d8('0x770')],_0x7ebcfe=_0x47abcf[_0xc1b9d8('0x812')],_0x5a6f41=0x0;_0x5a6f41<_0x343500[_0xc1b9d8('0x13')];_0x5a6f41++){var _0x3d0947=_0x343500[_0x5a6f41];if(_0x3d0947['hidden']);else{if(_0x3d0947[_0xc1b9d8('0xb95')]&&_0x3d0947['node']['parentNode']==_0x3ea6cf){for(;_0x4c0bab!=_0x3d0947[_0xc1b9d8('0xb95')];)_0x4c0bab=_0x1d42ca(_0x4c0bab);var _0x44cbe8=_0x30ffc9&&null!=_0x470d49&&_0x470d49<=_0x7ebcfe&&_0x3d0947[_0xc1b9d8('0xcc3')];_0x3d0947[_0xc1b9d8('0xba0')]&&(_0x55346f(_0x3d0947[_0xc1b9d8('0xba0')],_0xc1b9d8('0xc42'))>-0x1&&(_0x44cbe8=!0x1),_0x2a0b65(_0x14b30e,_0x3d0947,_0x7ebcfe,_0x5d9324)),_0x44cbe8&&(_0x11fb2f(_0x3d0947[_0xc1b9d8('0xcc3')]),_0x3d0947[_0xc1b9d8('0xcc3')][_0xc1b9d8('0x657')](document[_0xc1b9d8('0xe21')](_0x217f83(_0x14b30e['options'],_0x7ebcfe)))),_0x4c0bab=_0x3d0947[_0xc1b9d8('0xb95')][_0xc1b9d8('0x85b')];}else{var _0x3593d2=_0x29ff22(_0x14b30e,_0x3d0947,_0x7ebcfe,_0x5d9324);_0x3ea6cf['insertBefore'](_0x3593d2,_0x4c0bab);}}_0x7ebcfe+=_0x3d0947[_0xc1b9d8('0x10a2')];}for(;_0x4c0bab;)_0x4c0bab=_0x1d42ca(_0x4c0bab);}(_0xd1e23f,_0x520b80['updateLineNumbers'],_0x1ba41c[_0x17591c('0xa3')]),_0x242c30>0x4&&(_0x520b80[_0x17591c('0x54a')][_0x17591c('0xe81')]['display']=''),_0x520b80[_0x17591c('0x9eb')]=_0x520b80['view'],function(_0x50e016){var _0x5b594f=_0x17591c;if(_0x50e016&&_0x50e016[_0x5b594f('0xf1e')]&&_0x50e016['activeElt']!=_0x205be5()&&(_0x50e016[_0x5b594f('0xf1e')][_0x5b594f('0x7dd')](),!/^(INPUT|TEXTAREA)$/[_0x5b594f('0x2c3')](_0x50e016['activeElt'][_0x5b594f('0xfe4')])&&_0x50e016['anchorNode']&&_0x487fc0(document[_0x5b594f('0x82a')],_0x50e016[_0x5b594f('0xf42')])&&_0x487fc0(document[_0x5b594f('0x82a')],_0x50e016[_0x5b594f('0xc79')]))){var _0x23d056=window[_0x5b594f('0x806')](),_0x1df78d=document[_0x5b594f('0x103e')]();_0x1df78d['setEnd'](_0x50e016['anchorNode'],_0x50e016[_0x5b594f('0xc87')]),_0x1df78d[_0x5b594f('0x503')](!0x1),_0x23d056['removeAllRanges'](),_0x23d056[_0x5b594f('0x317')](_0x1df78d),_0x23d056[_0x5b594f('0x73')](_0x50e016[_0x5b594f('0xc79')],_0x50e016[_0x5b594f('0xa7f')]);}}(_0x43bf20),_0x11fb2f(_0x520b80[_0x17591c('0x8ed')]),_0x11fb2f(_0x520b80[_0x17591c('0xb4d')]),_0x520b80['gutters'][_0x17591c('0xe81')]['height']=_0x520b80[_0x17591c('0x68f')][_0x17591c('0xe81')]['minHeight']=0x0,_0x35924f&&(_0x520b80['lastWrapHeight']=_0x1ba41c[_0x17591c('0xdfe')],_0x520b80['lastWrapWidth']=_0x1ba41c[_0x17591c('0xce3')],_0x6070d0(_0xd1e23f,0x190)),_0x520b80[_0x17591c('0xd23')]=null,!0x0;}function _0xbe150c(_0x10a8e5,_0x4f689d){var _0x2b5b69=_0x1a265f;for(var _0x2118cb=_0x4f689d[_0x2b5b69('0x2d5')],_0x1ee65e=!0x0;;_0x1ee65e=!0x1){if(_0x1ee65e&&_0x10a8e5[_0x2b5b69('0x29d')][_0x2b5b69('0x215')]&&_0x4f689d['oldDisplayWidth']!=_0x2eda44(_0x10a8e5))_0x1ee65e&&(_0x4f689d[_0x2b5b69('0xdc8')]=_0x21ac22(_0x10a8e5['display'],_0x10a8e5[_0x2b5b69('0x481')],_0x2118cb));else{if(_0x2118cb&&null!=_0x2118cb[_0x2b5b69('0x5b')]&&(_0x2118cb={'top':Math['min'](_0x10a8e5['doc']['height']+_0x26cbdd(_0x10a8e5['display'])-_0xf54677(_0x10a8e5),_0x2118cb['top'])}),_0x4f689d[_0x2b5b69('0xdc8')]=_0x21ac22(_0x10a8e5[_0x2b5b69('0x13d')],_0x10a8e5['doc'],_0x2118cb),_0x4f689d[_0x2b5b69('0xdc8')]['from']>=_0x10a8e5[_0x2b5b69('0x13d')]['viewFrom']&&_0x4f689d['visible']['to']<=_0x10a8e5['display'][_0x2b5b69('0x3e5')])break;}if(!_0x409e26(_0x10a8e5,_0x4f689d))break;_0x1c7024(_0x10a8e5);var _0x5479ae=_0x5cba03(_0x10a8e5);_0x2a9cff(_0x10a8e5),_0x433520(_0x10a8e5,_0x5479ae),_0x561432(_0x10a8e5,_0x5479ae),_0x4f689d['force']=!0x1;}_0x4f689d['signal'](_0x10a8e5,_0x2b5b69('0xe54'),_0x10a8e5),_0x10a8e5[_0x2b5b69('0x13d')][_0x2b5b69('0x812')]==_0x10a8e5[_0x2b5b69('0x13d')][_0x2b5b69('0x4c3')]&&_0x10a8e5[_0x2b5b69('0x13d')]['viewTo']==_0x10a8e5[_0x2b5b69('0x13d')]['reportedViewTo']||(_0x4f689d[_0x2b5b69('0x544')](_0x10a8e5,_0x2b5b69('0x22a'),_0x10a8e5,_0x10a8e5[_0x2b5b69('0x13d')]['viewFrom'],_0x10a8e5[_0x2b5b69('0x13d')][_0x2b5b69('0x3e5')]),_0x10a8e5[_0x2b5b69('0x13d')][_0x2b5b69('0x4c3')]=_0x10a8e5[_0x2b5b69('0x13d')][_0x2b5b69('0x812')],_0x10a8e5[_0x2b5b69('0x13d')]['reportedViewTo']=_0x10a8e5['display'][_0x2b5b69('0x3e5')]);}function _0x50bfa6(_0x295060,_0x105e88){var _0x10b57f=_0x1a265f,_0x516f57=new _0x293764(_0x295060,_0x105e88);if(_0x409e26(_0x295060,_0x516f57)){_0x1c7024(_0x295060),_0xbe150c(_0x295060,_0x516f57);var _0x461b80=_0x5cba03(_0x295060);_0x2a9cff(_0x295060),_0x433520(_0x295060,_0x461b80),_0x561432(_0x295060,_0x461b80),_0x516f57[_0x10b57f('0x275')]();}}function _0x3641e8(_0x608a2b){var _0x4e93e9=_0x1a265f,_0x2a6ea4=_0x608a2b[_0x4e93e9('0xef6')]['offsetWidth'];_0x608a2b[_0x4e93e9('0x68f')][_0x4e93e9('0xe81')][_0x4e93e9('0xe38')]=_0x2a6ea4+'px';}function _0x561432(_0x5aa1cf,_0x23bc2e){var _0x89789d=_0x1a265f;_0x5aa1cf[_0x89789d('0x13d')][_0x89789d('0x68f')][_0x89789d('0xe81')][_0x89789d('0xfaa')]=_0x23bc2e[_0x89789d('0x36f')]+'px',_0x5aa1cf[_0x89789d('0x13d')][_0x89789d('0xc27')][_0x89789d('0xe81')]['top']=_0x23bc2e['docHeight']+'px',_0x5aa1cf[_0x89789d('0x13d')][_0x89789d('0xef6')][_0x89789d('0xe81')][_0x89789d('0x27b')]=_0x23bc2e[_0x89789d('0x36f')]+_0x5aa1cf['display'][_0x89789d('0x7b4')]+_0x1cc4be(_0x5aa1cf)+'px';}function _0x4428e5(_0x46449c){var _0x18bd75=_0x1a265f,_0x254d4a=_0x46449c[_0x18bd75('0x13d')],_0xe43dc6=_0x254d4a['view'];if(_0x254d4a[_0x18bd75('0x59b')]||_0x254d4a[_0x18bd75('0xef6')][_0x18bd75('0xf86')]&&_0x46449c[_0x18bd75('0x29d')][_0x18bd75('0x7f8')]){for(var _0xc347ed=_0x10d6d5(_0x254d4a)-_0x254d4a[_0x18bd75('0xf31')][_0x18bd75('0x37e')]+_0x46449c[_0x18bd75('0x481')]['scrollLeft'],_0x11715f=_0x254d4a[_0x18bd75('0xef6')][_0x18bd75('0xb94')],_0x4fc27f=_0xc347ed+'px',_0x5eeec5=0x0;_0x5eeec5<_0xe43dc6[_0x18bd75('0x13')];_0x5eeec5++)if(!_0xe43dc6[_0x5eeec5][_0x18bd75('0x10f4')]){_0x46449c[_0x18bd75('0x29d')][_0x18bd75('0x7f8')]&&(_0xe43dc6[_0x5eeec5][_0x18bd75('0xc42')]&&(_0xe43dc6[_0x5eeec5][_0x18bd75('0xc42')][_0x18bd75('0xe81')][_0x18bd75('0x10fb')]=_0x4fc27f),_0xe43dc6[_0x5eeec5][_0x18bd75('0x1b4')]&&(_0xe43dc6[_0x5eeec5]['gutterBackground'][_0x18bd75('0xe81')][_0x18bd75('0x10fb')]=_0x4fc27f));var _0x200467=_0xe43dc6[_0x5eeec5][_0x18bd75('0x146')];if(_0x200467)for(var _0x26ef07=0x0;_0x26ef07<_0x200467[_0x18bd75('0x13')];_0x26ef07++)_0x200467[_0x26ef07][_0x18bd75('0xe81')][_0x18bd75('0x10fb')]=_0x4fc27f;}_0x46449c['options'][_0x18bd75('0x7f8')]&&(_0x254d4a[_0x18bd75('0xef6')][_0x18bd75('0xe81')][_0x18bd75('0x10fb')]=_0xc347ed+_0x11715f+'px');}}function _0x5e5abb(_0x474975){var _0x2b8c05=_0x1a265f;if(!_0x474975[_0x2b8c05('0x29d')][_0x2b8c05('0x8fa')])return!0x1;var _0x1a7efe=_0x474975[_0x2b8c05('0x481')],_0x23e66e=_0x217f83(_0x474975[_0x2b8c05('0x29d')],_0x1a7efe['first']+_0x1a7efe[_0x2b8c05('0x10a2')]-0x1),_0x508944=_0x474975['display'];if(_0x23e66e['length']!=_0x508944[_0x2b8c05('0x1081')]){var _0x2ea968=_0x508944[_0x2b8c05('0xaac')][_0x2b8c05('0x657')](_0x4aeabd('div',[_0x4aeabd(_0x2b8c05('0x26c'),_0x23e66e)],_0x2b8c05('0xbb8'))),_0x29262e=_0x2ea968['firstChild'][_0x2b8c05('0xb94')],_0x596260=_0x2ea968[_0x2b8c05('0xb94')]-_0x29262e;return _0x508944[_0x2b8c05('0x727')][_0x2b8c05('0xe81')][_0x2b8c05('0x115')]='',_0x508944[_0x2b8c05('0x6de')]=Math[_0x2b8c05('0xa0d')](_0x29262e,_0x508944[_0x2b8c05('0x727')]['offsetWidth']-_0x596260)+0x1,_0x508944[_0x2b8c05('0xaea')]=_0x508944[_0x2b8c05('0x6de')]+_0x596260,_0x508944[_0x2b8c05('0x1081')]=_0x508944[_0x2b8c05('0x6de')]?_0x23e66e[_0x2b8c05('0x13')]:-0x1,_0x508944[_0x2b8c05('0x727')][_0x2b8c05('0xe81')][_0x2b8c05('0x115')]=_0x508944[_0x2b8c05('0xaea')]+'px',_0x3641e8(_0x474975[_0x2b8c05('0x13d')]),!0x0;}return!0x1;}function _0x51888a(_0x2a17e6,_0x10c1d5){var _0x913d4=_0x1a265f;for(var _0x4999d2=[],_0x1f1160=!0x1,_0x2d559c=0x0;_0x2d559c<_0x2a17e6[_0x913d4('0x13')];_0x2d559c++){var _0x14e996=_0x2a17e6[_0x2d559c],_0x5ba9e6=null;if('string'!=typeof _0x14e996&&(_0x5ba9e6=_0x14e996[_0x913d4('0xe81')],_0x14e996=_0x14e996[_0x913d4('0x867')]),_0x913d4('0xa50')==_0x14e996){if(!_0x10c1d5)continue;_0x1f1160=!0x0;}_0x4999d2['push']({'className':_0x14e996,'style':_0x5ba9e6});}return _0x10c1d5&&!_0x1f1160&&_0x4999d2[_0x913d4('0x91b')]({'className':_0x913d4('0xa50'),'style':null}),_0x4999d2;}function _0x40e2c6(_0x2ec86c){var _0x49da19=_0x1a265f,_0x22cbb1=_0x2ec86c[_0x49da19('0xef6')],_0x2f668a=_0x2ec86c[_0x49da19('0xf04')];_0x11fb2f(_0x22cbb1),_0x2ec86c[_0x49da19('0x727')]=null;for(var _0x59bac1=0x0;_0x59bac1<_0x2f668a['length'];++_0x59bac1){var _0x42a6ee=_0x2f668a[_0x59bac1],_0x21e38b=_0x42a6ee[_0x49da19('0x867')],_0x34c2c7=_0x42a6ee['style'],_0x536d6e=_0x22cbb1[_0x49da19('0x657')](_0x4aeabd('div',null,'CodeMirror-gutter\x20'+_0x21e38b));_0x34c2c7&&(_0x536d6e['style'][_0x49da19('0x5be')]=_0x34c2c7),'CodeMirror-linenumbers'==_0x21e38b&&(_0x2ec86c[_0x49da19('0x727')]=_0x536d6e,_0x536d6e[_0x49da19('0xe81')][_0x49da19('0x115')]=(_0x2ec86c['lineNumWidth']||0x1)+'px');}_0x22cbb1[_0x49da19('0xe81')][_0x49da19('0x13d')]=_0x2f668a[_0x49da19('0x13')]?'':_0x49da19('0xea1'),_0x3641e8(_0x2ec86c);}function _0x430349(_0x26ff6d){_0x40e2c6(_0x26ff6d['display']),_0x589d49(_0x26ff6d),_0x4428e5(_0x26ff6d);}function _0x44d0bc(_0x3f7ad3,_0x139068,_0x32647b,_0x559960){var _0xe75444=_0x1a265f,_0x40ecee=this;this[_0xe75444('0x2f8')]=_0x32647b,_0x40ecee[_0xe75444('0x2cc')]=_0x4aeabd(_0xe75444('0x26c'),null,_0xe75444('0xd00')),_0x40ecee[_0xe75444('0x2cc')]['setAttribute'](_0xe75444('0x897'),_0xe75444('0x9ed')),_0x40ecee[_0xe75444('0xe89')]=_0x4aeabd(_0xe75444('0x26c'),null,_0xe75444('0xedc')),_0x40ecee['gutterFiller']['setAttribute'](_0xe75444('0x897'),_0xe75444('0x9ed')),_0x40ecee['lineDiv']=_0x54ad33('div',null,_0xe75444('0x530')),_0x40ecee[_0xe75444('0xb4d')]=_0x4aeabd(_0xe75444('0x26c'),null,null,'position:\x20relative;\x20z-index:\x201'),_0x40ecee['cursorDiv']=_0x4aeabd(_0xe75444('0x26c'),null,_0xe75444('0x1033')),_0x40ecee[_0xe75444('0xaac')]=_0x4aeabd(_0xe75444('0x26c'),null,'CodeMirror-measure'),_0x40ecee[_0xe75444('0xcb4')]=_0x4aeabd(_0xe75444('0x26c'),null,_0xe75444('0xa92')),_0x40ecee[_0xe75444('0x1f5')]=_0x54ad33(_0xe75444('0x26c'),[_0x40ecee['measure'],_0x40ecee['lineMeasure'],_0x40ecee[_0xe75444('0xb4d')],_0x40ecee[_0xe75444('0x8ed')],_0x40ecee[_0xe75444('0x54a')]],null,_0xe75444('0xc17'));var _0x1cff64=_0x54ad33(_0xe75444('0x26c'),[_0x40ecee[_0xe75444('0x1f5')]],'CodeMirror-lines');_0x40ecee['mover']=_0x4aeabd(_0xe75444('0x26c'),[_0x1cff64],null,_0xe75444('0x475')),_0x40ecee['sizer']=_0x4aeabd(_0xe75444('0x26c'),[_0x40ecee[_0xe75444('0x61e')]],_0xe75444('0xc1e')),_0x40ecee[_0xe75444('0x2e0')]=null,_0x40ecee[_0xe75444('0xc27')]=_0x4aeabd(_0xe75444('0x26c'),null,null,_0xe75444('0x10c3')),_0x40ecee[_0xe75444('0xef6')]=_0x4aeabd('div',null,_0xe75444('0x850')),_0x40ecee[_0xe75444('0x727')]=null,_0x40ecee[_0xe75444('0xf31')]=_0x4aeabd(_0xe75444('0x26c'),[_0x40ecee[_0xe75444('0x68f')],_0x40ecee['heightForcer'],_0x40ecee[_0xe75444('0xef6')]],'CodeMirror-scroll'),_0x40ecee['scroller']['setAttribute'](_0xe75444('0x64b'),'-1'),_0x40ecee['wrapper']=_0x4aeabd(_0xe75444('0x26c'),[_0x40ecee[_0xe75444('0x2cc')],_0x40ecee[_0xe75444('0xe89')],_0x40ecee[_0xe75444('0xf31')]],'CodeMirror'),_0x22bb28&&_0x217fe9<0x8&&(_0x40ecee[_0xe75444('0xef6')]['style']['zIndex']=-0x1,_0x40ecee[_0xe75444('0xf31')]['style']['paddingRight']=0x0),_0x5683b3||_0x29b819&&_0x221ee3||(_0x40ecee[_0xe75444('0xf31')][_0xe75444('0x4ab')]=!0x0),_0x3f7ad3&&(_0x3f7ad3['appendChild']?_0x3f7ad3['appendChild'](_0x40ecee['wrapper']):_0x3f7ad3(_0x40ecee['wrapper'])),_0x40ecee[_0xe75444('0x812')]=_0x40ecee[_0xe75444('0x3e5')]=_0x139068[_0xe75444('0x3f0')],_0x40ecee[_0xe75444('0x4c3')]=_0x40ecee[_0xe75444('0x1073')]=_0x139068['first'],_0x40ecee[_0xe75444('0x770')]=[],_0x40ecee[_0xe75444('0x9eb')]=null,_0x40ecee['externalMeasured']=null,_0x40ecee['viewOffset']=0x0,_0x40ecee[_0xe75444('0x1035')]=_0x40ecee[_0xe75444('0x378')]=0x0,_0x40ecee[_0xe75444('0xd23')]=null,_0x40ecee['nativeBarWidth']=_0x40ecee[_0xe75444('0x7b4')]=_0x40ecee[_0xe75444('0x100a')]=0x0,_0x40ecee[_0xe75444('0x21f')]=!0x1,_0x40ecee['lineNumWidth']=_0x40ecee[_0xe75444('0x6de')]=_0x40ecee[_0xe75444('0x1081')]=null,_0x40ecee[_0xe75444('0x59b')]=!0x1,_0x40ecee['cachedCharWidth']=_0x40ecee[_0xe75444('0x1115')]=_0x40ecee['cachedPaddingH']=null,_0x40ecee[_0xe75444('0x3c2')]=null,_0x40ecee[_0xe75444('0x672')]=0x0,_0x40ecee['maxLineChanged']=!0x1,_0x40ecee[_0xe75444('0x101d')]=_0x40ecee[_0xe75444('0xdf2')]=_0x40ecee[_0xe75444('0xeb7')]=_0x40ecee[_0xe75444('0x3f')]=null,_0x40ecee[_0xe75444('0xf30')]=!0x1,_0x40ecee[_0xe75444('0x325')]=null,_0x40ecee[_0xe75444('0x41f')]=null,_0x40ecee['gutterSpecs']=_0x51888a(_0x559960[_0xe75444('0xef6')],_0x559960[_0xe75444('0x8fa')]),_0x40e2c6(_0x40ecee),_0x32647b[_0xe75444('0xeb9')](_0x40ecee);}_0x293764[_0x1a265f('0xe02')]['signal']=function(_0x12545b,_0x26cfa8){var _0x475f97=_0x1a265f;_0x452465(_0x12545b,_0x26cfa8)&&this[_0x475f97('0xbb')]['push'](arguments);},_0x293764['prototype'][_0x1a265f('0x275')]=function(){var _0x4c9866=_0x1a265f;for(var _0x56e5a0=0x0;_0x56e5a0_0x365a4e['clientWidth'],_0x3b9e8a=_0x365a4e[_0x18f58c('0x920')]>_0x365a4e[_0x18f58c('0x9d9')];if(_0x4e40ac&&_0x3f0e33||_0x122d33&&_0x3b9e8a){if(_0x122d33&&_0x182eee&&_0x5683b3)_0xa8e8e0:for(var _0x5a8ebb=_0xc1d5ce[_0x18f58c('0x1d7')],_0x396780=_0x2d23ab[_0x18f58c('0x770')];_0x5a8ebb!=_0x365a4e;_0x5a8ebb=_0x5a8ebb[_0x18f58c('0x9cd')])for(var _0x593917=0x0;_0x593917<_0x396780['length'];_0x593917++)if(_0x396780[_0x593917][_0x18f58c('0xb95')]==_0x5a8ebb){_0x2bd164[_0x18f58c('0x13d')][_0x18f58c('0xdc4')]=_0x5a8ebb;break _0xa8e8e0;}if(_0x4e40ac&&!_0x29b819&&!_0x126de8&&null!=_0x1104d2)return _0x122d33&&_0x3b9e8a&&_0x3b60c2(_0x2bd164,Math[_0x18f58c('0xa0d')](0x0,_0x365a4e[_0x18f58c('0x94d')]+_0x122d33*_0x1104d2)),_0x4faaac(_0x2bd164,Math[_0x18f58c('0xa0d')](0x0,_0x365a4e[_0x18f58c('0x37e')]+_0x4e40ac*_0x1104d2)),(!_0x122d33||_0x122d33&&_0x3b9e8a)&&_0x3de262(_0xc1d5ce),void(_0x2d23ab[_0x18f58c('0xeb7')]=null);if(_0x122d33&&null!=_0x1104d2){var _0x28c87b=_0x122d33*_0x1104d2,_0xd5ed56=_0x2bd164[_0x18f58c('0x481')]['scrollTop'],_0x262621=_0xd5ed56+_0x2d23ab[_0x18f58c('0xfc3')][_0x18f58c('0x9d9')];_0x28c87b<0x0?_0xd5ed56=Math[_0x18f58c('0xa0d')](0x0,_0xd5ed56+_0x28c87b-0x32):_0x262621=Math[_0x18f58c('0xd3f')](_0x2bd164[_0x18f58c('0x481')][_0x18f58c('0x27b')],_0x262621+_0x28c87b+0x32),_0x50bfa6(_0x2bd164,{'top':_0xd5ed56,'bottom':_0x262621});}_0xf547e3<0x14&&(null==_0x2d23ab[_0x18f58c('0xeb7')]?(_0x2d23ab[_0x18f58c('0xeb7')]=_0x365a4e[_0x18f58c('0x37e')],_0x2d23ab['wheelStartY']=_0x365a4e[_0x18f58c('0x94d')],_0x2d23ab[_0x18f58c('0x101d')]=_0x4e40ac,_0x2d23ab[_0x18f58c('0xdf2')]=_0x122d33,setTimeout(function(){var _0x1d6bac=_0x18f58c;if(null!=_0x2d23ab[_0x1d6bac('0xeb7')]){var _0x5d5f29=_0x365a4e[_0x1d6bac('0x37e')]-_0x2d23ab[_0x1d6bac('0xeb7')],_0x2b5037=_0x365a4e[_0x1d6bac('0x94d')]-_0x2d23ab[_0x1d6bac('0x3f')],_0x289231=_0x2b5037&&_0x2d23ab[_0x1d6bac('0xdf2')]&&_0x2b5037/_0x2d23ab[_0x1d6bac('0xdf2')]||_0x5d5f29&&_0x2d23ab['wheelDX']&&_0x5d5f29/_0x2d23ab[_0x1d6bac('0x101d')];_0x2d23ab[_0x1d6bac('0xeb7')]=_0x2d23ab['wheelStartY']=null,_0x289231&&(_0x1104d2=(_0x1104d2*_0xf547e3+_0x289231)/(_0xf547e3+0x1),++_0xf547e3);}},0xc8)):(_0x2d23ab[_0x18f58c('0x101d')]+=_0x4e40ac,_0x2d23ab['wheelDY']+=_0x122d33));}}_0x22bb28?_0x1104d2=-0.53:_0x29b819?_0x1104d2=0xf:_0x563557?_0x1104d2=-0.7:_0x5ec12f&&(_0x1104d2=-0x1/0x3);var _0x447193=function(_0x1f12e2,_0x488efe){var _0x20b802=_0x1a265f;this[_0x20b802('0x1de')]=_0x1f12e2,this[_0x20b802('0x616')]=_0x488efe;};_0x447193[_0x1a265f('0xe02')][_0x1a265f('0x1071')]=function(){var _0x47a1f5=_0x1a265f;return this[_0x47a1f5('0x1de')][this[_0x47a1f5('0x616')]];},_0x447193[_0x1a265f('0xe02')]['equals']=function(_0x3cc059){var _0x598bb0=_0x1a265f;if(_0x3cc059==this)return!0x0;if(_0x3cc059['primIndex']!=this[_0x598bb0('0x616')]||_0x3cc059['ranges'][_0x598bb0('0x13')]!=this[_0x598bb0('0x1de')][_0x598bb0('0x13')])return!0x1;for(var _0x165743=0x0;_0x165743=0x0&&_0x1213af(_0x3dc513,_0x3eb2b0['to']())<=0x0)return _0x4ed014;}return-0x1;};var _0x4d2b0d=function(_0x3db149,_0x467efa){var _0x57181f=_0x1a265f;this[_0x57181f('0xd18')]=_0x3db149,this[_0x57181f('0x116a')]=_0x467efa;};function _0x474853(_0x549ba0,_0x1a172a,_0x2d1d45){var _0x41e94f=_0x1a265f,_0x35dde6=_0x549ba0&&_0x549ba0['options'][_0x41e94f('0x718')],_0x2b985c=_0x1a172a[_0x2d1d45];_0x1a172a[_0x41e94f('0x6f0')](function(_0x814ee6,_0x43507a){var _0x311bd5=_0x41e94f;return _0x1213af(_0x814ee6[_0x311bd5('0x1161')](),_0x43507a[_0x311bd5('0x1161')]());}),_0x2d1d45=_0x55346f(_0x1a172a,_0x2b985c);for(var _0x1ceeb0=0x1;_0x1ceeb0<_0x1a172a['length'];_0x1ceeb0++){var _0x56c32b=_0x1a172a[_0x1ceeb0],_0x4c0441=_0x1a172a[_0x1ceeb0-0x1],_0x3656d3=_0x1213af(_0x4c0441['to'](),_0x56c32b[_0x41e94f('0x1161')]());if(_0x35dde6&&!_0x56c32b[_0x41e94f('0x1d4')]()?_0x3656d3>0x0:_0x3656d3>=0x0){var _0x105915=_0x315a51(_0x4c0441[_0x41e94f('0x1161')](),_0x56c32b[_0x41e94f('0x1161')]()),_0x14e4e2=_0x28826d(_0x4c0441['to'](),_0x56c32b['to']()),_0x5242b7=_0x4c0441[_0x41e94f('0x1d4')]()?_0x56c32b[_0x41e94f('0x1161')]()==_0x56c32b['head']:_0x4c0441[_0x41e94f('0x1161')]()==_0x4c0441['head'];_0x1ceeb0<=_0x2d1d45&&--_0x2d1d45,_0x1a172a['splice'](--_0x1ceeb0,0x2,new _0x4d2b0d(_0x5242b7?_0x14e4e2:_0x105915,_0x5242b7?_0x105915:_0x14e4e2));}}return new _0x447193(_0x1a172a,_0x2d1d45);}function _0x3f83ba(_0x1be333,_0xc8b066){return new _0x447193([new _0x4d2b0d(_0x1be333,_0xc8b066||_0x1be333)],0x0);}function _0x14f38d(_0x1b114b){var _0x42ae24=_0x1a265f;return _0x1b114b[_0x42ae24('0x5b2')]?_0x3de23f(_0x1b114b['from'][_0x42ae24('0x860')]+_0x1b114b['text'][_0x42ae24('0x13')]-0x1,_0x18184b(_0x1b114b[_0x42ae24('0x5b2')])[_0x42ae24('0x13')]+(0x1==_0x1b114b[_0x42ae24('0x5b2')][_0x42ae24('0x13')]?_0x1b114b['from']['ch']:0x0)):_0x1b114b['to'];}function _0x2fb920(_0x2253b1,_0x27e7e0){var _0x3588d7=_0x1a265f;if(_0x1213af(_0x2253b1,_0x27e7e0[_0x3588d7('0x1161')])<0x0)return _0x2253b1;if(_0x1213af(_0x2253b1,_0x27e7e0['to'])<=0x0)return _0x14f38d(_0x27e7e0);var _0x251640=_0x2253b1[_0x3588d7('0x860')]+_0x27e7e0[_0x3588d7('0x5b2')]['length']-(_0x27e7e0['to'][_0x3588d7('0x860')]-_0x27e7e0['from'][_0x3588d7('0x860')])-0x1,_0x420580=_0x2253b1['ch'];return _0x2253b1[_0x3588d7('0x860')]==_0x27e7e0['to'][_0x3588d7('0x860')]&&(_0x420580+=_0x14f38d(_0x27e7e0)['ch']-_0x27e7e0['to']['ch']),_0x3de23f(_0x251640,_0x420580);}function _0x5723de(_0x39e32c,_0x2bfaf3){var _0x59d7a4=_0x1a265f;for(var _0x3dacee=[],_0x5ab59b=0x0;_0x5ab59b<_0x39e32c[_0x59d7a4('0x990')][_0x59d7a4('0x1de')]['length'];_0x5ab59b++){var _0x5a2a1f=_0x39e32c[_0x59d7a4('0x990')][_0x59d7a4('0x1de')][_0x5ab59b];_0x3dacee[_0x59d7a4('0x91b')](new _0x4d2b0d(_0x2fb920(_0x5a2a1f[_0x59d7a4('0xd18')],_0x2bfaf3),_0x2fb920(_0x5a2a1f[_0x59d7a4('0x116a')],_0x2bfaf3)));}return _0x474853(_0x39e32c['cm'],_0x3dacee,_0x39e32c[_0x59d7a4('0x990')]['primIndex']);}function _0x277a91(_0xd4cbc0,_0x1d4643,_0x306742){var _0x41934b=_0x1a265f;return _0xd4cbc0['line']==_0x1d4643[_0x41934b('0x860')]?_0x3de23f(_0x306742['line'],_0xd4cbc0['ch']-_0x1d4643['ch']+_0x306742['ch']):_0x3de23f(_0x306742[_0x41934b('0x860')]+(_0xd4cbc0[_0x41934b('0x860')]-_0x1d4643[_0x41934b('0x860')]),_0xd4cbc0['ch']);}function _0x356ea6(_0x233801){var _0x33ba6d=_0x1a265f;_0x233801[_0x33ba6d('0x481')][_0x33ba6d('0x1ab')]=_0xd80094(_0x233801['options'],_0x233801[_0x33ba6d('0x481')]['modeOption']),_0x32d443(_0x233801);}function _0x32d443(_0xff53c6){var _0x3d7d31=_0x1a265f;_0xff53c6[_0x3d7d31('0x481')][_0x3d7d31('0xe01')](function(_0x336007){var _0x2de80c=_0x3d7d31;_0x336007[_0x2de80c('0x1120')]&&(_0x336007[_0x2de80c('0x1120')]=null),_0x336007[_0x2de80c('0x10ad')]&&(_0x336007[_0x2de80c('0x10ad')]=null);}),_0xff53c6[_0x3d7d31('0x481')][_0x3d7d31('0x621')]=_0xff53c6[_0x3d7d31('0x481')][_0x3d7d31('0x2c8')]=_0xff53c6['doc']['first'],_0x6070d0(_0xff53c6,0x64),_0xff53c6[_0x3d7d31('0x55d')][_0x3d7d31('0x692')]++,_0xff53c6[_0x3d7d31('0x5ec')]&&_0x589d49(_0xff53c6);}function _0x2cf005(_0x382688,_0x5d9311){var _0x1c79a8=_0x1a265f;return 0x0==_0x5d9311[_0x1c79a8('0x1161')]['ch']&&0x0==_0x5d9311['to']['ch']&&''==_0x18184b(_0x5d9311[_0x1c79a8('0x5b2')])&&(!_0x382688['cm']||_0x382688['cm'][_0x1c79a8('0x29d')]['wholeLineUpdateBefore']);}function _0x26d8aa(_0x248d95,_0x5df37c,_0x4fd963,_0xed5d44){var _0x2c7ea4=_0x1a265f;function _0x4ce4a5(_0x43050b){return _0x4fd963?_0x4fd963[_0x43050b]:null;}function _0x27d5ee(_0x2869de,_0x3a402e,_0x8a830f){!function(_0x13c5e7,_0x2a041f,_0x427065,_0x254c25){var _0x3a5936=_0x5376;_0x13c5e7[_0x3a5936('0x5b2')]=_0x2a041f,_0x13c5e7[_0x3a5936('0x1120')]&&(_0x13c5e7[_0x3a5936('0x1120')]=null),_0x13c5e7[_0x3a5936('0x10ad')]&&(_0x13c5e7[_0x3a5936('0x10ad')]=null),null!=_0x13c5e7[_0x3a5936('0x533')]&&(_0x13c5e7[_0x3a5936('0x533')]=null),_0x34d8a0(_0x13c5e7),_0x3e22c3(_0x13c5e7,_0x427065);var _0x5bbe87=_0x254c25?_0x254c25(_0x13c5e7):0x1;_0x5bbe87!=_0x13c5e7['height']&&_0x1ae833(_0x13c5e7,_0x5bbe87);}(_0x2869de,_0x3a402e,_0x8a830f,_0xed5d44),_0x1a8e5b(_0x2869de,'change',_0x2869de,_0x5df37c);}function _0x1f2463(_0x298673,_0x46253d){var _0x3a786d=_0x5376;for(var _0x1a5649=[],_0x20bb51=_0x298673;_0x20bb51<_0x46253d;++_0x20bb51)_0x1a5649[_0x3a786d('0x91b')](new _0x4e10fe(_0x4ee6f7[_0x20bb51],_0x4ce4a5(_0x20bb51),_0xed5d44));return _0x1a5649;}var _0x4ab9c2=_0x5df37c[_0x2c7ea4('0x1161')],_0x416c37=_0x5df37c['to'],_0x4ee6f7=_0x5df37c[_0x2c7ea4('0x5b2')],_0x483fe8=_0x1964d4(_0x248d95,_0x4ab9c2[_0x2c7ea4('0x860')]),_0x5876fe=_0x1964d4(_0x248d95,_0x416c37[_0x2c7ea4('0x860')]),_0x32c9c1=_0x18184b(_0x4ee6f7),_0x2a6405=_0x4ce4a5(_0x4ee6f7[_0x2c7ea4('0x13')]-0x1),_0xb7f5b9=_0x416c37[_0x2c7ea4('0x860')]-_0x4ab9c2[_0x2c7ea4('0x860')];if(_0x5df37c[_0x2c7ea4('0x39b')])_0x248d95[_0x2c7ea4('0x9d1')](0x0,_0x1f2463(0x0,_0x4ee6f7[_0x2c7ea4('0x13')])),_0x248d95[_0x2c7ea4('0xaa6')](_0x4ee6f7[_0x2c7ea4('0x13')],_0x248d95[_0x2c7ea4('0x10a2')]-_0x4ee6f7[_0x2c7ea4('0x13')]);else{if(_0x2cf005(_0x248d95,_0x5df37c)){var _0x5b3931=_0x1f2463(0x0,_0x4ee6f7[_0x2c7ea4('0x13')]-0x1);_0x27d5ee(_0x5876fe,_0x5876fe['text'],_0x2a6405),_0xb7f5b9&&_0x248d95['remove'](_0x4ab9c2[_0x2c7ea4('0x860')],_0xb7f5b9),_0x5b3931['length']&&_0x248d95['insert'](_0x4ab9c2[_0x2c7ea4('0x860')],_0x5b3931);}else{if(_0x483fe8==_0x5876fe){if(0x1==_0x4ee6f7[_0x2c7ea4('0x13')])_0x27d5ee(_0x483fe8,_0x483fe8[_0x2c7ea4('0x5b2')]['slice'](0x0,_0x4ab9c2['ch'])+_0x32c9c1+_0x483fe8[_0x2c7ea4('0x5b2')][_0x2c7ea4('0xdf1')](_0x416c37['ch']),_0x2a6405);else{var _0x3fde6e=_0x1f2463(0x1,_0x4ee6f7[_0x2c7ea4('0x13')]-0x1);_0x3fde6e[_0x2c7ea4('0x91b')](new _0x4e10fe(_0x32c9c1+_0x483fe8[_0x2c7ea4('0x5b2')][_0x2c7ea4('0xdf1')](_0x416c37['ch']),_0x2a6405,_0xed5d44)),_0x27d5ee(_0x483fe8,_0x483fe8[_0x2c7ea4('0x5b2')][_0x2c7ea4('0xdf1')](0x0,_0x4ab9c2['ch'])+_0x4ee6f7[0x0],_0x4ce4a5(0x0)),_0x248d95[_0x2c7ea4('0x9d1')](_0x4ab9c2[_0x2c7ea4('0x860')]+0x1,_0x3fde6e);}}else{if(0x1==_0x4ee6f7[_0x2c7ea4('0x13')])_0x27d5ee(_0x483fe8,_0x483fe8[_0x2c7ea4('0x5b2')]['slice'](0x0,_0x4ab9c2['ch'])+_0x4ee6f7[0x0]+_0x5876fe[_0x2c7ea4('0x5b2')]['slice'](_0x416c37['ch']),_0x4ce4a5(0x0)),_0x248d95[_0x2c7ea4('0xaa6')](_0x4ab9c2['line']+0x1,_0xb7f5b9);else{_0x27d5ee(_0x483fe8,_0x483fe8[_0x2c7ea4('0x5b2')][_0x2c7ea4('0xdf1')](0x0,_0x4ab9c2['ch'])+_0x4ee6f7[0x0],_0x4ce4a5(0x0)),_0x27d5ee(_0x5876fe,_0x32c9c1+_0x5876fe['text'][_0x2c7ea4('0xdf1')](_0x416c37['ch']),_0x2a6405);var _0x495f43=_0x1f2463(0x1,_0x4ee6f7[_0x2c7ea4('0x13')]-0x1);_0xb7f5b9>0x1&&_0x248d95[_0x2c7ea4('0xaa6')](_0x4ab9c2['line']+0x1,_0xb7f5b9-0x1),_0x248d95['insert'](_0x4ab9c2[_0x2c7ea4('0x860')]+0x1,_0x495f43);}}}}_0x1a8e5b(_0x248d95,_0x2c7ea4('0x566'),_0x248d95,_0x5df37c);}function _0x2ce38f(_0x75ff16,_0x4b3945,_0x80c4d9){!function _0x3d107f(_0x4aee69,_0x271dcd,_0x4081af){var _0x531c10=_0x5376;if(_0x4aee69['linked'])for(var _0x6ac5c9=0x0;_0x6ac5c9<_0x4aee69[_0x531c10('0x56a')][_0x531c10('0x13')];++_0x6ac5c9){var _0x2c3544=_0x4aee69[_0x531c10('0x56a')][_0x6ac5c9];if(_0x2c3544[_0x531c10('0x481')]!=_0x271dcd){var _0x13ad3e=_0x4081af&&_0x2c3544[_0x531c10('0x60d')];_0x80c4d9&&!_0x13ad3e||(_0x4b3945(_0x2c3544['doc'],_0x13ad3e),_0x3d107f(_0x2c3544[_0x531c10('0x481')],_0x4aee69,_0x13ad3e));}}}(_0x75ff16,null,!0x0);}function _0x52696a(_0x3cd3b1,_0x44160e){var _0x5a254e=_0x1a265f;if(_0x44160e['cm'])throw new Error('This\x20document\x20is\x20already\x20in\x20use.');_0x3cd3b1[_0x5a254e('0x481')]=_0x44160e,_0x44160e['cm']=_0x3cd3b1,_0x2c9072(_0x3cd3b1),_0x356ea6(_0x3cd3b1),_0x2bd4dc(_0x3cd3b1),_0x3cd3b1[_0x5a254e('0x29d')]['lineWrapping']||_0x3e9ea0(_0x3cd3b1),_0x3cd3b1[_0x5a254e('0x29d')][_0x5a254e('0x1ab')]=_0x44160e[_0x5a254e('0x3d9')],_0x589d49(_0x3cd3b1);}function _0x2bd4dc(_0x40a54f){var _0x22e723=_0x1a265f;(_0x22e723('0x919')==_0x40a54f['doc'][_0x22e723('0x8de')]?_0x379c51:_0x1ce61b)(_0x40a54f[_0x22e723('0x13d')]['lineDiv'],_0x22e723('0x73f'));}function _0x489f21(_0x52636f){var _0x27b270=_0x1a265f;this[_0x27b270('0x1126')]=[],this[_0x27b270('0xa94')]=[],this[_0x27b270('0x9a8')]=0x1/0x0,this[_0x27b270('0x15b')]=this[_0x27b270('0x790')]=0x0,this[_0x27b270('0x10b1')]=this[_0x27b270('0x9be')]=null,this[_0x27b270('0x2a8')]=this['lastSelOrigin']=null,this[_0x27b270('0xa82')]=this[_0x27b270('0x861')]=_0x52636f||0x1;}function _0x21be92(_0x200fce,_0x653154){var _0xafbcc4=_0x1a265f,_0x2a4e4f={'from':_0x37b6f6(_0x653154[_0xafbcc4('0x1161')]),'to':_0x14f38d(_0x653154),'text':_0x4f8473(_0x200fce,_0x653154[_0xafbcc4('0x1161')],_0x653154['to'])};return _0x31f4dd(_0x200fce,_0x2a4e4f,_0x653154['from'][_0xafbcc4('0x860')],_0x653154['to'][_0xafbcc4('0x860')]+0x1),_0x2ce38f(_0x200fce,function(_0x5de098){var _0x1a5458=_0xafbcc4;return _0x31f4dd(_0x5de098,_0x2a4e4f,_0x653154['from'][_0x1a5458('0x860')],_0x653154['to']['line']+0x1);},!0x0),_0x2a4e4f;}function _0x33e102(_0x7d45be){var _0x3cd770=_0x1a265f;for(;_0x7d45be[_0x3cd770('0x13')];){if(!_0x18184b(_0x7d45be)[_0x3cd770('0x1de')])break;_0x7d45be['pop']();}}function _0x57babf(_0x34d9b2,_0x5b758e,_0x6c892e,_0x7e284){var _0x1d7cbf=_0x1a265f,_0x1d5bfb=_0x34d9b2[_0x1d7cbf('0x102f')];_0x1d5bfb['undone'][_0x1d7cbf('0x13')]=0x0;var _0xa4f460,_0x5aae65,_0x33ab7f=+new Date();if((_0x1d5bfb[_0x1d7cbf('0x10b1')]==_0x7e284||_0x1d5bfb[_0x1d7cbf('0x2a8')]==_0x5b758e['origin']&&_0x5b758e[_0x1d7cbf('0xbc6')]&&('+'==_0x5b758e[_0x1d7cbf('0xbc6')][_0x1d7cbf('0xcaf')](0x0)&&_0x1d5bfb[_0x1d7cbf('0x15b')]>_0x33ab7f-(_0x34d9b2['cm']?_0x34d9b2['cm'][_0x1d7cbf('0x29d')]['historyEventDelay']:0x1f4)||'*'==_0x5b758e['origin']['charAt'](0x0)))&&(_0xa4f460=function(_0x3c1689,_0x189a31){var _0x4d3dc6=_0x1d7cbf;return _0x189a31?(_0x33e102(_0x3c1689[_0x4d3dc6('0x1126')]),_0x18184b(_0x3c1689[_0x4d3dc6('0x1126')])):_0x3c1689[_0x4d3dc6('0x1126')][_0x4d3dc6('0x13')]&&!_0x18184b(_0x3c1689[_0x4d3dc6('0x1126')])[_0x4d3dc6('0x1de')]?_0x18184b(_0x3c1689[_0x4d3dc6('0x1126')]):_0x3c1689[_0x4d3dc6('0x1126')]['length']>0x1&&!_0x3c1689['done'][_0x3c1689[_0x4d3dc6('0x1126')][_0x4d3dc6('0x13')]-0x2][_0x4d3dc6('0x1de')]?(_0x3c1689[_0x4d3dc6('0x1126')]['pop'](),_0x18184b(_0x3c1689[_0x4d3dc6('0x1126')])):void 0x0;}(_0x1d5bfb,_0x1d5bfb[_0x1d7cbf('0x10b1')]==_0x7e284)))_0x5aae65=_0x18184b(_0xa4f460['changes']),0x0==_0x1213af(_0x5b758e['from'],_0x5b758e['to'])&&0x0==_0x1213af(_0x5b758e[_0x1d7cbf('0x1161')],_0x5aae65['to'])?_0x5aae65['to']=_0x14f38d(_0x5b758e):_0xa4f460['changes'][_0x1d7cbf('0x91b')](_0x21be92(_0x34d9b2,_0x5b758e));else{var _0xdd0a48=_0x18184b(_0x1d5bfb['done']);for(_0xdd0a48&&_0xdd0a48[_0x1d7cbf('0x1de')]||_0x4efd58(_0x34d9b2[_0x1d7cbf('0x990')],_0x1d5bfb[_0x1d7cbf('0x1126')]),_0xa4f460={'changes':[_0x21be92(_0x34d9b2,_0x5b758e)],'generation':_0x1d5bfb[_0x1d7cbf('0xa82')]},_0x1d5bfb[_0x1d7cbf('0x1126')]['push'](_0xa4f460);_0x1d5bfb[_0x1d7cbf('0x1126')][_0x1d7cbf('0x13')]>_0x1d5bfb[_0x1d7cbf('0x9a8')];)_0x1d5bfb[_0x1d7cbf('0x1126')]['shift'](),_0x1d5bfb[_0x1d7cbf('0x1126')][0x0][_0x1d7cbf('0x1de')]||_0x1d5bfb[_0x1d7cbf('0x1126')][_0x1d7cbf('0xf30')]();}_0x1d5bfb[_0x1d7cbf('0x1126')][_0x1d7cbf('0x91b')](_0x6c892e),_0x1d5bfb['generation']=++_0x1d5bfb['maxGeneration'],_0x1d5bfb['lastModTime']=_0x1d5bfb[_0x1d7cbf('0x790')]=_0x33ab7f,_0x1d5bfb[_0x1d7cbf('0x10b1')]=_0x1d5bfb['lastSelOp']=_0x7e284,_0x1d5bfb[_0x1d7cbf('0x2a8')]=_0x1d5bfb[_0x1d7cbf('0x23b')]=_0x5b758e[_0x1d7cbf('0xbc6')],_0x5aae65||_0x38db09(_0x34d9b2,_0x1d7cbf('0xd2f'));}function _0x1076c3(_0x5143a4,_0xdf100,_0x30913a,_0x105892){var _0x3484e3=_0x1a265f,_0x3c42ac=_0x5143a4[_0x3484e3('0x102f')],_0x4528ca=_0x105892&&_0x105892[_0x3484e3('0xbc6')];_0x30913a==_0x3c42ac[_0x3484e3('0x9be')]||_0x4528ca&&_0x3c42ac[_0x3484e3('0x23b')]==_0x4528ca&&(_0x3c42ac['lastModTime']==_0x3c42ac['lastSelTime']&&_0x3c42ac[_0x3484e3('0x2a8')]==_0x4528ca||function(_0x43270c,_0x36f298,_0x471a7f,_0x5df7b4){var _0x421ca8=_0x3484e3,_0x1adcf9=_0x36f298[_0x421ca8('0xcaf')](0x0);return'*'==_0x1adcf9||'+'==_0x1adcf9&&_0x471a7f[_0x421ca8('0x1de')][_0x421ca8('0x13')]==_0x5df7b4['ranges'][_0x421ca8('0x13')]&&_0x471a7f[_0x421ca8('0x8e8')]()==_0x5df7b4[_0x421ca8('0x8e8')]()&&new Date()-_0x43270c[_0x421ca8('0x102f')][_0x421ca8('0x790')]<=(_0x43270c['cm']?_0x43270c['cm'][_0x421ca8('0x29d')][_0x421ca8('0xe4')]:0x1f4);}(_0x5143a4,_0x4528ca,_0x18184b(_0x3c42ac[_0x3484e3('0x1126')]),_0xdf100))?_0x3c42ac[_0x3484e3('0x1126')][_0x3c42ac[_0x3484e3('0x1126')]['length']-0x1]=_0xdf100:_0x4efd58(_0xdf100,_0x3c42ac['done']),_0x3c42ac[_0x3484e3('0x790')]=+new Date(),_0x3c42ac[_0x3484e3('0x23b')]=_0x4528ca,_0x3c42ac[_0x3484e3('0x9be')]=_0x30913a,_0x105892&&!0x1!==_0x105892[_0x3484e3('0x78b')]&&_0x33e102(_0x3c42ac[_0x3484e3('0xa94')]);}function _0x4efd58(_0x2c998f,_0x42a42f){var _0x3c1ae7=_0x1a265f,_0x3eb27a=_0x18184b(_0x42a42f);_0x3eb27a&&_0x3eb27a[_0x3c1ae7('0x1de')]&&_0x3eb27a[_0x3c1ae7('0x208')](_0x2c998f)||_0x42a42f[_0x3c1ae7('0x91b')](_0x2c998f);}function _0x31f4dd(_0x45eabe,_0x49d4c8,_0x81ad1a,_0x1df0ef){var _0x2dc6d8=_0x1a265f,_0x56a18f=_0x49d4c8[_0x2dc6d8('0xf83')+_0x45eabe['id']],_0x589fb0=0x0;_0x45eabe[_0x2dc6d8('0xe01')](Math[_0x2dc6d8('0xa0d')](_0x45eabe[_0x2dc6d8('0x3f0')],_0x81ad1a),Math[_0x2dc6d8('0xd3f')](_0x45eabe[_0x2dc6d8('0x3f0')]+_0x45eabe['size'],_0x1df0ef),function(_0x16ac06){var _0x111f95=_0x2dc6d8;_0x16ac06['markedSpans']&&((_0x56a18f||(_0x56a18f=_0x49d4c8[_0x111f95('0xf83')+_0x45eabe['id']]={}))[_0x589fb0]=_0x16ac06[_0x111f95('0x407')]),++_0x589fb0;});}function _0x30b21c(_0x547625){var _0x5b9931=_0x1a265f;if(!_0x547625)return null;for(var _0x5c19a0,_0x27e7e6=0x0;_0x27e7e6<_0x547625[_0x5b9931('0x13')];++_0x27e7e6)_0x547625[_0x27e7e6]['marker'][_0x5b9931('0x17d')]?_0x5c19a0||(_0x5c19a0=_0x547625[_0x5b9931('0xdf1')](0x0,_0x27e7e6)):_0x5c19a0&&_0x5c19a0['push'](_0x547625[_0x27e7e6]);return _0x5c19a0?_0x5c19a0[_0x5b9931('0x13')]?_0x5c19a0:null:_0x547625;}function _0x30fabd(_0x33d11c,_0x12867a){var _0x4da0c5=_0x1a265f,_0x5ef6fc=function(_0x29b559,_0x57dd34){var _0x5e1e13=_0x5376,_0x3fc037=_0x57dd34[_0x5e1e13('0xf83')+_0x29b559['id']];if(!_0x3fc037)return null;for(var _0x11feef=[],_0x15a442=0x0;_0x15a442<_0x57dd34[_0x5e1e13('0x5b2')][_0x5e1e13('0x13')];++_0x15a442)_0x11feef[_0x5e1e13('0x91b')](_0x30b21c(_0x3fc037[_0x15a442]));return _0x11feef;}(_0x33d11c,_0x12867a),_0x4e8225=_0x4b9390(_0x33d11c,_0x12867a);if(!_0x5ef6fc)return _0x4e8225;if(!_0x4e8225)return _0x5ef6fc;for(var _0x43a6cb=0x0;_0x43a6cb<_0x5ef6fc[_0x4da0c5('0x13')];++_0x43a6cb){var _0x1a115a=_0x5ef6fc[_0x43a6cb],_0x56d872=_0x4e8225[_0x43a6cb];if(_0x1a115a&&_0x56d872)_0x29bebf:for(var _0x3f6bbd=0x0;_0x3f6bbd<_0x56d872[_0x4da0c5('0x13')];++_0x3f6bbd){for(var _0xad3e6f=_0x56d872[_0x3f6bbd],_0x2fefc4=0x0;_0x2fefc4<_0x1a115a[_0x4da0c5('0x13')];++_0x2fefc4)if(_0x1a115a[_0x2fefc4][_0x4da0c5('0x11d')]==_0xad3e6f['marker'])continue _0x29bebf;_0x1a115a[_0x4da0c5('0x91b')](_0xad3e6f);}else _0x56d872&&(_0x5ef6fc[_0x43a6cb]=_0x56d872);}return _0x5ef6fc;}function _0x18c7de(_0x39516b,_0x39426d,_0x3a0dce){var _0x5f0baa=_0x1a265f;for(var _0x12fdd9=[],_0x48e774=0x0;_0x48e774<_0x39516b[_0x5f0baa('0x13')];++_0x48e774){var _0x5b3a3c=_0x39516b[_0x48e774];if(_0x5b3a3c[_0x5f0baa('0x1de')])_0x12fdd9[_0x5f0baa('0x91b')](_0x3a0dce?_0x447193[_0x5f0baa('0xe02')][_0x5f0baa('0xbdf')]['call'](_0x5b3a3c):_0x5b3a3c);else{var _0x4c44e2=_0x5b3a3c[_0x5f0baa('0xba0')],_0x41dab7=[];_0x12fdd9[_0x5f0baa('0x91b')]({'changes':_0x41dab7});for(var _0x2c46c1=0x0;_0x2c46c1<_0x4c44e2['length'];++_0x2c46c1){var _0x1a6b07=_0x4c44e2[_0x2c46c1],_0x3b91ba=void 0x0;if(_0x41dab7[_0x5f0baa('0x91b')]({'from':_0x1a6b07[_0x5f0baa('0x1161')],'to':_0x1a6b07['to'],'text':_0x1a6b07[_0x5f0baa('0x5b2')]}),_0x39426d)for(var _0x19163b in _0x1a6b07)(_0x3b91ba=_0x19163b[_0x5f0baa('0x7d5')](/^spans_(\d+)$/))&&_0x55346f(_0x39426d,Number(_0x3b91ba[0x1]))>-0x1&&(_0x18184b(_0x41dab7)[_0x19163b]=_0x1a6b07[_0x19163b],delete _0x1a6b07[_0x19163b]);}}}return _0x12fdd9;}function _0x77763d(_0x1452ec,_0x9a2974,_0x277842,_0x5d9b66){var _0x1eefdc=_0x1a265f;if(_0x5d9b66){var _0x29512a=_0x1452ec[_0x1eefdc('0xd18')];if(_0x277842){var _0x39cc68=_0x1213af(_0x9a2974,_0x29512a)<0x0;_0x39cc68!=_0x1213af(_0x277842,_0x29512a)<0x0?(_0x29512a=_0x9a2974,_0x9a2974=_0x277842):_0x39cc68!=_0x1213af(_0x9a2974,_0x277842)<0x0&&(_0x9a2974=_0x277842);}return new _0x4d2b0d(_0x29512a,_0x9a2974);}return new _0x4d2b0d(_0x277842||_0x9a2974,_0x9a2974);}function _0x3f97b9(_0x4b0339,_0x4f3fee,_0x4eb7ba,_0x58d501,_0xcde322){var _0x15442c=_0x1a265f;null==_0xcde322&&(_0xcde322=_0x4b0339['cm']&&(_0x4b0339['cm']['display'][_0x15442c('0xf30')]||_0x4b0339[_0x15442c('0x73')])),_0x704724(_0x4b0339,new _0x447193([_0x77763d(_0x4b0339['sel'][_0x15442c('0x1071')](),_0x4f3fee,_0x4eb7ba,_0xcde322)],0x0),_0x58d501);}function _0x16a3a6(_0x1c284f,_0xae6204,_0xc541a1){var _0x17ebca=_0x1a265f;for(var _0x442e78=[],_0x2d0529=_0x1c284f['cm']&&(_0x1c284f['cm'][_0x17ebca('0x13d')][_0x17ebca('0xf30')]||_0x1c284f[_0x17ebca('0x73')]),_0x211d2d=0x0;_0x211d2d<_0x1c284f[_0x17ebca('0x990')][_0x17ebca('0x1de')]['length'];_0x211d2d++)_0x442e78[_0x211d2d]=_0x77763d(_0x1c284f[_0x17ebca('0x990')][_0x17ebca('0x1de')][_0x211d2d],_0xae6204[_0x211d2d],null,_0x2d0529);_0x704724(_0x1c284f,_0x474853(_0x1c284f['cm'],_0x442e78,_0x1c284f[_0x17ebca('0x990')][_0x17ebca('0x616')]),_0xc541a1);}function _0x17a700(_0x5405b3,_0x52ce8f,_0x4bc224,_0x485a94){var _0x2dfad4=_0x1a265f,_0x5a1d0b=_0x5405b3[_0x2dfad4('0x990')][_0x2dfad4('0x1de')]['slice'](0x0);_0x5a1d0b[_0x52ce8f]=_0x4bc224,_0x704724(_0x5405b3,_0x474853(_0x5405b3['cm'],_0x5a1d0b,_0x5405b3[_0x2dfad4('0x990')][_0x2dfad4('0x616')]),_0x485a94);}function _0x28644e(_0x2b5190,_0x1c55a5,_0x17f202,_0x5b2bd8){_0x704724(_0x2b5190,_0x3f83ba(_0x1c55a5,_0x17f202),_0x5b2bd8);}function _0x26d532(_0x5528a0,_0x875f40,_0x395903){var _0x5dd424=_0x1a265f,_0x22dbd0=_0x5528a0[_0x5dd424('0x102f')][_0x5dd424('0x1126')],_0x395d1a=_0x18184b(_0x22dbd0);_0x395d1a&&_0x395d1a[_0x5dd424('0x1de')]?(_0x22dbd0[_0x22dbd0['length']-0x1]=_0x875f40,_0x2436ce(_0x5528a0,_0x875f40,_0x395903)):_0x704724(_0x5528a0,_0x875f40,_0x395903);}function _0x704724(_0x8b349b,_0x4381fc,_0x3f19f1){var _0x4a3e74=_0x1a265f;_0x2436ce(_0x8b349b,_0x4381fc,_0x3f19f1),_0x1076c3(_0x8b349b,_0x8b349b[_0x4a3e74('0x990')],_0x8b349b['cm']?_0x8b349b['cm']['curOp']['id']:NaN,_0x3f19f1);}function _0x2436ce(_0x447fcd,_0x4e81fc,_0x4f853c){var _0x28e252=_0x1a265f;(_0x452465(_0x447fcd,'beforeSelectionChange')||_0x447fcd['cm']&&_0x452465(_0x447fcd['cm'],'beforeSelectionChange'))&&(_0x4e81fc=function(_0x43a5bd,_0x464d73,_0x18d88e){var _0x3716d7=_0x5376,_0x4f8961={'ranges':_0x464d73[_0x3716d7('0x1de')],'update':function(_0x1dc035){var _0x406cbf=_0x3716d7;this[_0x406cbf('0x1de')]=[];for(var _0x16b4b8=0x0;_0x16b4b8<_0x1dc035['length'];_0x16b4b8++)this[_0x406cbf('0x1de')][_0x16b4b8]=new _0x4d2b0d(_0x11e028(_0x43a5bd,_0x1dc035[_0x16b4b8][_0x406cbf('0xd18')]),_0x11e028(_0x43a5bd,_0x1dc035[_0x16b4b8][_0x406cbf('0x116a')]));},'origin':_0x18d88e&&_0x18d88e['origin']};return _0x38db09(_0x43a5bd,_0x3716d7('0xe79'),_0x43a5bd,_0x4f8961),_0x43a5bd['cm']&&_0x38db09(_0x43a5bd['cm'],_0x3716d7('0xe79'),_0x43a5bd['cm'],_0x4f8961),_0x4f8961[_0x3716d7('0x1de')]!=_0x464d73['ranges']?_0x474853(_0x43a5bd['cm'],_0x4f8961[_0x3716d7('0x1de')],_0x4f8961['ranges'][_0x3716d7('0x13')]-0x1):_0x464d73;}(_0x447fcd,_0x4e81fc,_0x4f853c));var _0x34dc5f=_0x4f853c&&_0x4f853c['bias']||(_0x1213af(_0x4e81fc[_0x28e252('0x1071')]()[_0x28e252('0x116a')],_0x447fcd['sel']['primary']()[_0x28e252('0x116a')])<0x0?-0x1:0x1);_0x4406ca(_0x447fcd,_0x44bec3(_0x447fcd,_0x4e81fc,_0x34dc5f,!0x0)),_0x4f853c&&!0x1===_0x4f853c['scroll']||!_0x447fcd['cm']||_0x3b2a9(_0x447fcd['cm']);}function _0x4406ca(_0x562379,_0x21b085){var _0x5c52ec=_0x1a265f;_0x21b085[_0x5c52ec('0x208')](_0x562379[_0x5c52ec('0x990')])||(_0x562379['sel']=_0x21b085,_0x562379['cm']&&(_0x562379['cm']['curOp'][_0x5c52ec('0xb9c')]=0x1,_0x562379['cm'][_0x5c52ec('0x5ec')][_0x5c52ec('0x66c')]=!0x0,_0x1f9e81(_0x562379['cm'])),_0x1a8e5b(_0x562379,_0x5c52ec('0xe6a'),_0x562379));}function _0x31c668(_0x5011d0){_0x4406ca(_0x5011d0,_0x44bec3(_0x5011d0,_0x5011d0['sel'],null,!0x1));}function _0x44bec3(_0x5aaae6,_0x57f6fe,_0x321a7d,_0x28be89){var _0x4fee51=_0x1a265f;for(var _0x3831a5,_0x5b4cda=0x0;_0x5b4cda<_0x57f6fe[_0x4fee51('0x1de')]['length'];_0x5b4cda++){var _0x2ff6a5=_0x57f6fe[_0x4fee51('0x1de')][_0x5b4cda],_0x5611ba=_0x57f6fe['ranges'][_0x4fee51('0x13')]==_0x5aaae6[_0x4fee51('0x990')][_0x4fee51('0x1de')][_0x4fee51('0x13')]&&_0x5aaae6['sel'][_0x4fee51('0x1de')][_0x5b4cda],_0x523359=_0x357168(_0x5aaae6,_0x2ff6a5[_0x4fee51('0xd18')],_0x5611ba&&_0x5611ba[_0x4fee51('0xd18')],_0x321a7d,_0x28be89),_0x30656f=_0x357168(_0x5aaae6,_0x2ff6a5[_0x4fee51('0x116a')],_0x5611ba&&_0x5611ba[_0x4fee51('0x116a')],_0x321a7d,_0x28be89);(_0x3831a5||_0x523359!=_0x2ff6a5[_0x4fee51('0xd18')]||_0x30656f!=_0x2ff6a5[_0x4fee51('0x116a')])&&(_0x3831a5||(_0x3831a5=_0x57f6fe[_0x4fee51('0x1de')][_0x4fee51('0xdf1')](0x0,_0x5b4cda)),_0x3831a5[_0x5b4cda]=new _0x4d2b0d(_0x523359,_0x30656f));}return _0x3831a5?_0x474853(_0x5aaae6['cm'],_0x3831a5,_0x57f6fe[_0x4fee51('0x616')]):_0x57f6fe;}function _0x35f147(_0x331817,_0x551dc8,_0x5746bf,_0x3def1a,_0x137d82){var _0x28de02=_0x1a265f,_0x42e8e4=_0x1964d4(_0x331817,_0x551dc8[_0x28de02('0x860')]);if(_0x42e8e4[_0x28de02('0x407')])for(var _0x33b0ef=0x0;_0x33b0ef<_0x42e8e4[_0x28de02('0x407')]['length'];++_0x33b0ef){var _0x4b49b8=_0x42e8e4[_0x28de02('0x407')][_0x33b0ef],_0x460a5a=_0x4b49b8[_0x28de02('0x11d')],_0x1755b9=_0x28de02('0x5db')in _0x460a5a?!_0x460a5a[_0x28de02('0x5db')]:_0x460a5a[_0x28de02('0xaf1')],_0x1f6e86='selectRight'in _0x460a5a?!_0x460a5a['selectRight']:_0x460a5a['inclusiveRight'];if((null==_0x4b49b8[_0x28de02('0x1161')]||(_0x1755b9?_0x4b49b8[_0x28de02('0x1161')]<=_0x551dc8['ch']:_0x4b49b8['from']<_0x551dc8['ch']))&&(null==_0x4b49b8['to']||(_0x1f6e86?_0x4b49b8['to']>=_0x551dc8['ch']:_0x4b49b8['to']>_0x551dc8['ch']))){if(_0x137d82&&(_0x38db09(_0x460a5a,'beforeCursorEnter'),_0x460a5a[_0x28de02('0x17d')])){if(_0x42e8e4[_0x28de02('0x407')]){--_0x33b0ef;continue;}break;}if(!_0x460a5a['atomic'])continue;if(_0x5746bf){var _0x37bfea=_0x460a5a[_0x28de02('0xe05')](_0x3def1a<0x0?0x1:-0x1),_0x222bf2=void 0x0;if((_0x3def1a<0x0?_0x1f6e86:_0x1755b9)&&(_0x37bfea=_0x5f4528(_0x331817,_0x37bfea,-_0x3def1a,_0x37bfea&&_0x37bfea[_0x28de02('0x860')]==_0x551dc8['line']?_0x42e8e4:null)),_0x37bfea&&_0x37bfea['line']==_0x551dc8[_0x28de02('0x860')]&&(_0x222bf2=_0x1213af(_0x37bfea,_0x5746bf))&&(_0x3def1a<0x0?_0x222bf2<0x0:_0x222bf2>0x0))return _0x35f147(_0x331817,_0x37bfea,_0x551dc8,_0x3def1a,_0x137d82);}var _0x18b014=_0x460a5a[_0x28de02('0xe05')](_0x3def1a<0x0?-0x1:0x1);return(_0x3def1a<0x0?_0x1755b9:_0x1f6e86)&&(_0x18b014=_0x5f4528(_0x331817,_0x18b014,_0x3def1a,_0x18b014[_0x28de02('0x860')]==_0x551dc8['line']?_0x42e8e4:null)),_0x18b014?_0x35f147(_0x331817,_0x18b014,_0x551dc8,_0x3def1a,_0x137d82):null;}}return _0x551dc8;}function _0x357168(_0x11184b,_0x42ee4d,_0x1b8731,_0x262f17,_0x2de422){var _0x2ea2e6=_0x1a265f,_0x5c3e7c=_0x262f17||0x1,_0x37f0e7=_0x35f147(_0x11184b,_0x42ee4d,_0x1b8731,_0x5c3e7c,_0x2de422)||!_0x2de422&&_0x35f147(_0x11184b,_0x42ee4d,_0x1b8731,_0x5c3e7c,!0x0)||_0x35f147(_0x11184b,_0x42ee4d,_0x1b8731,-_0x5c3e7c,_0x2de422)||!_0x2de422&&_0x35f147(_0x11184b,_0x42ee4d,_0x1b8731,-_0x5c3e7c,!0x0);return _0x37f0e7||(_0x11184b[_0x2ea2e6('0xd94')]=!0x0,_0x3de23f(_0x11184b[_0x2ea2e6('0x3f0')],0x0));}function _0x5f4528(_0x46daff,_0x32f431,_0x52d4ac,_0x21d585){var _0x4740a6=_0x1a265f;return _0x52d4ac<0x0&&0x0==_0x32f431['ch']?_0x32f431[_0x4740a6('0x860')]>_0x46daff[_0x4740a6('0x3f0')]?_0x11e028(_0x46daff,_0x3de23f(_0x32f431['line']-0x1)):null:_0x52d4ac>0x0&&_0x32f431['ch']==(_0x21d585||_0x1964d4(_0x46daff,_0x32f431[_0x4740a6('0x860')]))[_0x4740a6('0x5b2')][_0x4740a6('0x13')]?_0x32f431[_0x4740a6('0x860')]<_0x46daff[_0x4740a6('0x3f0')]+_0x46daff['size']-0x1?_0x3de23f(_0x32f431[_0x4740a6('0x860')]+0x1,0x0):null:new _0x3de23f(_0x32f431[_0x4740a6('0x860')],_0x32f431['ch']+_0x52d4ac);}function _0x2f49a1(_0x27a973){var _0x43b8b7=_0x1a265f;_0x27a973[_0x43b8b7('0x10e3')](_0x3de23f(_0x27a973[_0x43b8b7('0xc1f')](),0x0),_0x3de23f(_0x27a973[_0x43b8b7('0x4b6')]()),_0x135890);}function _0x527e3b(_0x363a3d,_0x5613f0,_0x513ae0){var _0x20dd54=_0x1a265f,_0x4b375d={'canceled':!0x1,'from':_0x5613f0[_0x20dd54('0x1161')],'to':_0x5613f0['to'],'text':_0x5613f0['text'],'origin':_0x5613f0[_0x20dd54('0xbc6')],'cancel':function(){var _0x4b1988=_0x20dd54;return _0x4b375d[_0x4b1988('0x388')]=!0x0;}};return _0x513ae0&&(_0x4b375d['update']=function(_0x2d338d,_0x40ec74,_0xa7d33b,_0x1bd18e){var _0x24263b=_0x20dd54;_0x2d338d&&(_0x4b375d[_0x24263b('0x1161')]=_0x11e028(_0x363a3d,_0x2d338d)),_0x40ec74&&(_0x4b375d['to']=_0x11e028(_0x363a3d,_0x40ec74)),_0xa7d33b&&(_0x4b375d[_0x24263b('0x5b2')]=_0xa7d33b),void 0x0!==_0x1bd18e&&(_0x4b375d[_0x24263b('0xbc6')]=_0x1bd18e);}),_0x38db09(_0x363a3d,_0x20dd54('0xf53'),_0x363a3d,_0x4b375d),_0x363a3d['cm']&&_0x38db09(_0x363a3d['cm'],_0x20dd54('0xf53'),_0x363a3d['cm'],_0x4b375d),_0x4b375d[_0x20dd54('0x388')]?(_0x363a3d['cm']&&(_0x363a3d['cm']['curOp'][_0x20dd54('0xb9c')]=0x2),null):{'from':_0x4b375d[_0x20dd54('0x1161')],'to':_0x4b375d['to'],'text':_0x4b375d[_0x20dd54('0x5b2')],'origin':_0x4b375d['origin']};}function _0x2e3d26(_0x24a918,_0x419c2c,_0x2bb069){var _0x2b87a2=_0x1a265f;if(_0x24a918['cm']){if(!_0x24a918['cm'][_0x2b87a2('0x5ec')])return _0x53bb92(_0x24a918['cm'],_0x2e3d26)(_0x24a918,_0x419c2c,_0x2bb069);if(_0x24a918['cm'][_0x2b87a2('0x55d')][_0x2b87a2('0x4e4')])return;}if(!(_0x452465(_0x24a918,_0x2b87a2('0xf53'))||_0x24a918['cm']&&_0x452465(_0x24a918['cm'],_0x2b87a2('0xf53')))||(_0x419c2c=_0x527e3b(_0x24a918,_0x419c2c,!0x0))){var _0x2216a3=_0x270147&&!_0x2bb069&&function(_0xd03341,_0x26978c,_0x307130){var _0x56fa18=_0x2b87a2,_0x402809=null;if(_0xd03341[_0x56fa18('0xe01')](_0x26978c[_0x56fa18('0x860')],_0x307130['line']+0x1,function(_0x2461b7){var _0x9c44f1=_0x56fa18;if(_0x2461b7[_0x9c44f1('0x407')])for(var _0x5bcdbf=0x0;_0x5bcdbf<_0x2461b7['markedSpans'][_0x9c44f1('0x13')];++_0x5bcdbf){var _0x30e41d=_0x2461b7[_0x9c44f1('0x407')][_0x5bcdbf][_0x9c44f1('0x11d')];!_0x30e41d[_0x9c44f1('0x1134')]||_0x402809&&-0x1!=_0x55346f(_0x402809,_0x30e41d)||(_0x402809||(_0x402809=[]))[_0x9c44f1('0x91b')](_0x30e41d);}}),!_0x402809)return null;for(var _0x285c1d=[{'from':_0x26978c,'to':_0x307130}],_0x499457=0x0;_0x499457<_0x402809[_0x56fa18('0x13')];++_0x499457)for(var _0x567970=_0x402809[_0x499457],_0x3a15c3=_0x567970[_0x56fa18('0xe05')](0x0),_0x527a86=0x0;_0x527a86<_0x285c1d['length'];++_0x527a86){var _0x48389a=_0x285c1d[_0x527a86];if(!(_0x1213af(_0x48389a['to'],_0x3a15c3['from'])<0x0||_0x1213af(_0x48389a[_0x56fa18('0x1161')],_0x3a15c3['to'])>0x0)){var _0x1b1b3b=[_0x527a86,0x1],_0x425666=_0x1213af(_0x48389a['from'],_0x3a15c3[_0x56fa18('0x1161')]),_0x4f30de=_0x1213af(_0x48389a['to'],_0x3a15c3['to']);(_0x425666<0x0||!_0x567970[_0x56fa18('0xaf1')]&&!_0x425666)&&_0x1b1b3b[_0x56fa18('0x91b')]({'from':_0x48389a[_0x56fa18('0x1161')],'to':_0x3a15c3[_0x56fa18('0x1161')]}),(_0x4f30de>0x0||!_0x567970['inclusiveRight']&&!_0x4f30de)&&_0x1b1b3b[_0x56fa18('0x91b')]({'from':_0x3a15c3['to'],'to':_0x48389a['to']}),_0x285c1d[_0x56fa18('0xfbd')][_0x56fa18('0x2be')](_0x285c1d,_0x1b1b3b),_0x527a86+=_0x1b1b3b['length']-0x3;}}return _0x285c1d;}(_0x24a918,_0x419c2c['from'],_0x419c2c['to']);if(_0x2216a3)for(var _0x18b492=_0x2216a3['length']-0x1;_0x18b492>=0x0;--_0x18b492)_0x42a2e8(_0x24a918,{'from':_0x2216a3[_0x18b492]['from'],'to':_0x2216a3[_0x18b492]['to'],'text':_0x18b492?['']:_0x419c2c[_0x2b87a2('0x5b2')],'origin':_0x419c2c[_0x2b87a2('0xbc6')]});else _0x42a2e8(_0x24a918,_0x419c2c);}}function _0x42a2e8(_0x7d2fde,_0x510456){var _0x10a060=_0x1a265f;if(0x1!=_0x510456[_0x10a060('0x5b2')][_0x10a060('0x13')]||''!=_0x510456[_0x10a060('0x5b2')][0x0]||0x0!=_0x1213af(_0x510456[_0x10a060('0x1161')],_0x510456['to'])){var _0x45ad94=_0x5723de(_0x7d2fde,_0x510456);_0x57babf(_0x7d2fde,_0x510456,_0x45ad94,_0x7d2fde['cm']?_0x7d2fde['cm'][_0x10a060('0x5ec')]['id']:NaN),_0xee02c4(_0x7d2fde,_0x510456,_0x45ad94,_0x4b9390(_0x7d2fde,_0x510456));var _0x1592ef=[];_0x2ce38f(_0x7d2fde,function(_0x313058,_0x439c7b){var _0x9c13e7=_0x10a060;_0x439c7b||-0x1!=_0x55346f(_0x1592ef,_0x313058[_0x9c13e7('0x102f')])||(_0x26c104(_0x313058[_0x9c13e7('0x102f')],_0x510456),_0x1592ef[_0x9c13e7('0x91b')](_0x313058['history'])),_0xee02c4(_0x313058,_0x510456,null,_0x4b9390(_0x313058,_0x510456));});}}function _0xc41259(_0x58c656,_0x3076de,_0x1d7b26){var _0x2d2291=_0x1a265f,_0xb482bc=_0x58c656['cm']&&_0x58c656['cm']['state'][_0x2d2291('0x4e4')];if(!_0xb482bc||_0x1d7b26){for(var _0x49968c,_0x4ea632=_0x58c656['history'],_0x50249f=_0x58c656['sel'],_0x2088b2='undo'==_0x3076de?_0x4ea632[_0x2d2291('0x1126')]:_0x4ea632[_0x2d2291('0xa94')],_0x1da9ad=_0x2d2291('0x59')==_0x3076de?_0x4ea632['undone']:_0x4ea632['done'],_0x4513cd=0x0;_0x4513cd<_0x2088b2[_0x2d2291('0x13')]&&(_0x49968c=_0x2088b2[_0x4513cd],_0x1d7b26?!_0x49968c[_0x2d2291('0x1de')]||_0x49968c['equals'](_0x58c656[_0x2d2291('0x990')]):_0x49968c[_0x2d2291('0x1de')]);_0x4513cd++);if(_0x4513cd!=_0x2088b2[_0x2d2291('0x13')]){for(_0x4ea632['lastOrigin']=_0x4ea632[_0x2d2291('0x23b')]=null;;){if(!(_0x49968c=_0x2088b2[_0x2d2291('0x2a3')]())['ranges']){if(_0xb482bc)return void _0x2088b2['push'](_0x49968c);break;}if(_0x4efd58(_0x49968c,_0x1da9ad),_0x1d7b26&&!_0x49968c[_0x2d2291('0x208')](_0x58c656[_0x2d2291('0x990')]))return void _0x704724(_0x58c656,_0x49968c,{'clearRedo':!0x1});_0x50249f=_0x49968c;}var _0x2606b3=[];_0x4efd58(_0x50249f,_0x1da9ad),_0x1da9ad[_0x2d2291('0x91b')]({'changes':_0x2606b3,'generation':_0x4ea632[_0x2d2291('0xa82')]}),_0x4ea632[_0x2d2291('0xa82')]=_0x49968c['generation']||++_0x4ea632[_0x2d2291('0x861')];for(var _0x21f069=_0x452465(_0x58c656,_0x2d2291('0xf53'))||_0x58c656['cm']&&_0x452465(_0x58c656['cm'],'beforeChange'),_0x21f1ca=function(_0x4e3f0a){var _0x373147=_0x2d2291,_0x39b1cf=_0x49968c[_0x373147('0xba0')][_0x4e3f0a];if(_0x39b1cf[_0x373147('0xbc6')]=_0x3076de,_0x21f069&&!_0x527e3b(_0x58c656,_0x39b1cf,!0x1))return _0x2088b2[_0x373147('0x13')]=0x0,{};_0x2606b3['push'](_0x21be92(_0x58c656,_0x39b1cf));var _0x971ded=_0x4e3f0a?_0x5723de(_0x58c656,_0x39b1cf):_0x18184b(_0x2088b2);_0xee02c4(_0x58c656,_0x39b1cf,_0x971ded,_0x30fabd(_0x58c656,_0x39b1cf)),!_0x4e3f0a&&_0x58c656['cm']&&_0x58c656['cm'][_0x373147('0xf2c')]({'from':_0x39b1cf[_0x373147('0x1161')],'to':_0x14f38d(_0x39b1cf)});var _0x188880=[];_0x2ce38f(_0x58c656,function(_0x3bb4b2,_0x28c04a){var _0x5e86af=_0x373147;_0x28c04a||-0x1!=_0x55346f(_0x188880,_0x3bb4b2[_0x5e86af('0x102f')])||(_0x26c104(_0x3bb4b2[_0x5e86af('0x102f')],_0x39b1cf),_0x188880['push'](_0x3bb4b2[_0x5e86af('0x102f')])),_0xee02c4(_0x3bb4b2,_0x39b1cf,null,_0x30fabd(_0x3bb4b2,_0x39b1cf));});},_0x485026=_0x49968c[_0x2d2291('0xba0')][_0x2d2291('0x13')]-0x1;_0x485026>=0x0;--_0x485026){var _0x1df358=_0x21f1ca(_0x485026);if(_0x1df358)return _0x1df358['v'];}}}}function _0x1d4084(_0x14e08b,_0x522f0e){var _0x53fac7=_0x1a265f;if(0x0!=_0x522f0e&&(_0x14e08b[_0x53fac7('0x3f0')]+=_0x522f0e,_0x14e08b[_0x53fac7('0x990')]=new _0x447193(_0x2d0ee7(_0x14e08b[_0x53fac7('0x990')][_0x53fac7('0x1de')],function(_0x5b8e58){var _0x4ff54b=_0x53fac7;return new _0x4d2b0d(_0x3de23f(_0x5b8e58['anchor']['line']+_0x522f0e,_0x5b8e58[_0x4ff54b('0xd18')]['ch']),_0x3de23f(_0x5b8e58[_0x4ff54b('0x116a')]['line']+_0x522f0e,_0x5b8e58['head']['ch']));}),_0x14e08b['sel'][_0x53fac7('0x616')]),_0x14e08b['cm'])){_0x589d49(_0x14e08b['cm'],_0x14e08b['first'],_0x14e08b[_0x53fac7('0x3f0')]-_0x522f0e,_0x522f0e);for(var _0x57567d=_0x14e08b['cm'][_0x53fac7('0x13d')],_0x1ea29f=_0x57567d[_0x53fac7('0x812')];_0x1ea29f<_0x57567d[_0x53fac7('0x3e5')];_0x1ea29f++)_0x42df63(_0x14e08b['cm'],_0x1ea29f,'gutter');}}function _0xee02c4(_0x1d765c,_0x201128,_0x4de296,_0x28b1ed){var _0x54aec4=_0x1a265f;if(_0x1d765c['cm']&&!_0x1d765c['cm']['curOp'])return _0x53bb92(_0x1d765c['cm'],_0xee02c4)(_0x1d765c,_0x201128,_0x4de296,_0x28b1ed);if(_0x201128['to']['line']<_0x1d765c[_0x54aec4('0x3f0')])_0x1d4084(_0x1d765c,_0x201128['text']['length']-0x1-(_0x201128['to'][_0x54aec4('0x860')]-_0x201128[_0x54aec4('0x1161')]['line']));else{if(!(_0x201128[_0x54aec4('0x1161')][_0x54aec4('0x860')]>_0x1d765c[_0x54aec4('0x4b6')]())){if(_0x201128[_0x54aec4('0x1161')][_0x54aec4('0x860')]<_0x1d765c['first']){var _0x46889d=_0x201128[_0x54aec4('0x5b2')][_0x54aec4('0x13')]-0x1-(_0x1d765c[_0x54aec4('0x3f0')]-_0x201128[_0x54aec4('0x1161')][_0x54aec4('0x860')]);_0x1d4084(_0x1d765c,_0x46889d),_0x201128={'from':_0x3de23f(_0x1d765c[_0x54aec4('0x3f0')],0x0),'to':_0x3de23f(_0x201128['to'][_0x54aec4('0x860')]+_0x46889d,_0x201128['to']['ch']),'text':[_0x18184b(_0x201128[_0x54aec4('0x5b2')])],'origin':_0x201128[_0x54aec4('0xbc6')]};}var _0x1bc0a3=_0x1d765c[_0x54aec4('0x4b6')]();_0x201128['to'][_0x54aec4('0x860')]>_0x1bc0a3&&(_0x201128={'from':_0x201128[_0x54aec4('0x1161')],'to':_0x3de23f(_0x1bc0a3,_0x1964d4(_0x1d765c,_0x1bc0a3)[_0x54aec4('0x5b2')][_0x54aec4('0x13')]),'text':[_0x201128['text'][0x0]],'origin':_0x201128[_0x54aec4('0xbc6')]}),_0x201128[_0x54aec4('0xce1')]=_0x4f8473(_0x1d765c,_0x201128[_0x54aec4('0x1161')],_0x201128['to']),_0x4de296||(_0x4de296=_0x5723de(_0x1d765c,_0x201128)),_0x1d765c['cm']?function(_0x197e5f,_0x1a712f,_0x3b8d3d){var _0x13de51=_0x54aec4,_0x2745d6=_0x197e5f['doc'],_0x2bc111=_0x197e5f['display'],_0x475b87=_0x1a712f[_0x13de51('0x1161')],_0x2358e8=_0x1a712f['to'],_0x4fb7e0=!0x1,_0x30ac96=_0x475b87[_0x13de51('0x860')];_0x197e5f[_0x13de51('0x29d')][_0x13de51('0x215')]||(_0x30ac96=_0x432947(_0xa6d8(_0x1964d4(_0x2745d6,_0x475b87[_0x13de51('0x860')]))),_0x2745d6[_0x13de51('0xe01')](_0x30ac96,_0x2358e8['line']+0x1,function(_0x3310e0){var _0x5dbfd7=_0x13de51;if(_0x3310e0==_0x2bc111[_0x5dbfd7('0x3c2')])return _0x4fb7e0=!0x0,!0x0;})),_0x2745d6['sel'][_0x13de51('0x4cc')](_0x1a712f[_0x13de51('0x1161')],_0x1a712f['to'])>-0x1&&_0x1f9e81(_0x197e5f),(_0x26d8aa(_0x2745d6,_0x1a712f,_0x3b8d3d,_0x3c3f36(_0x197e5f)),_0x197e5f['options']['lineWrapping']||(_0x2745d6[_0x13de51('0xe01')](_0x30ac96,_0x475b87[_0x13de51('0x860')]+_0x1a712f[_0x13de51('0x5b2')][_0x13de51('0x13')],function(_0x2c7ef7){var _0x7a9c8d=_0x13de51,_0x37a996=_0x9a1b7e(_0x2c7ef7);_0x37a996>_0x2bc111['maxLineLength']&&(_0x2bc111[_0x7a9c8d('0x3c2')]=_0x2c7ef7,_0x2bc111[_0x7a9c8d('0x672')]=_0x37a996,_0x2bc111[_0x7a9c8d('0x698')]=!0x0,_0x4fb7e0=!0x1);}),_0x4fb7e0&&(_0x197e5f[_0x13de51('0x5ec')][_0x13de51('0x257')]=!0x0))),(function(_0xa2c218,_0x16986e){var _0x3d100e=_0x13de51;if(_0xa2c218['modeFrontier']=Math[_0x3d100e('0xd3f')](_0xa2c218[_0x3d100e('0x621')],_0x16986e),!(_0xa2c218[_0x3d100e('0x2c8')]<_0x16986e-0xa)){for(var _0x3b6145=_0xa2c218[_0x3d100e('0x3f0')],_0x35ec22=_0x16986e-0x1;_0x35ec22>_0x3b6145;_0x35ec22--){var _0x42c2c0=_0x1964d4(_0xa2c218,_0x35ec22)[_0x3d100e('0x1120')];if(_0x42c2c0&&(!(_0x42c2c0 instanceof _0x206c89)||_0x35ec22+_0x42c2c0[_0x3d100e('0x539')]<_0x16986e)){_0x3b6145=_0x35ec22+0x1;break;}}_0xa2c218[_0x3d100e('0x2c8')]=Math['min'](_0xa2c218[_0x3d100e('0x2c8')],_0x3b6145);}}(_0x2745d6,_0x475b87['line']),_0x6070d0(_0x197e5f,0x190));var _0x2a55b7=_0x1a712f[_0x13de51('0x5b2')]['length']-(_0x2358e8[_0x13de51('0x860')]-_0x475b87[_0x13de51('0x860')])-0x1;_0x1a712f[_0x13de51('0x39b')]?_0x589d49(_0x197e5f):_0x475b87['line']!=_0x2358e8[_0x13de51('0x860')]||0x1!=_0x1a712f[_0x13de51('0x5b2')][_0x13de51('0x13')]||_0x2cf005(_0x197e5f[_0x13de51('0x481')],_0x1a712f)?_0x589d49(_0x197e5f,_0x475b87[_0x13de51('0x860')],_0x2358e8[_0x13de51('0x860')]+0x1,_0x2a55b7):_0x42df63(_0x197e5f,_0x475b87[_0x13de51('0x860')],'text');var _0x5680f0=_0x452465(_0x197e5f,_0x13de51('0xba0')),_0x208e1f=_0x452465(_0x197e5f,'change');if(_0x208e1f||_0x5680f0){var _0x33cc56={'from':_0x475b87,'to':_0x2358e8,'text':_0x1a712f[_0x13de51('0x5b2')],'removed':_0x1a712f['removed'],'origin':_0x1a712f[_0x13de51('0xbc6')]};_0x208e1f&&_0x1a8e5b(_0x197e5f,_0x13de51('0x566'),_0x197e5f,_0x33cc56),_0x5680f0&&(_0x197e5f[_0x13de51('0x5ec')][_0x13de51('0x35f')]||(_0x197e5f['curOp'][_0x13de51('0x35f')]=[]))['push'](_0x33cc56);}_0x197e5f[_0x13de51('0x13d')][_0x13de51('0x325')]=null;}(_0x1d765c['cm'],_0x201128,_0x28b1ed):_0x26d8aa(_0x1d765c,_0x201128,_0x28b1ed),_0x2436ce(_0x1d765c,_0x4de296,_0x135890),_0x1d765c[_0x54aec4('0xd94')]&&_0x357168(_0x1d765c,_0x3de23f(_0x1d765c[_0x54aec4('0xc1f')](),0x0))&&(_0x1d765c[_0x54aec4('0xd94')]=!0x1);}}}function _0x1b6eb7(_0x5e3676,_0x2068a3,_0x2bf476,_0x4165e7,_0x276cd6){var _0x587b92=_0x1a265f,_0x100a1f;_0x4165e7||(_0x4165e7=_0x2bf476),_0x1213af(_0x4165e7,_0x2bf476)<0x0&&(_0x2bf476=(_0x100a1f=[_0x4165e7,_0x2bf476])[0x0],_0x4165e7=_0x100a1f[0x1]),'string'==typeof _0x2068a3&&(_0x2068a3=_0x5e3676[_0x587b92('0x5ee')](_0x2068a3)),_0x2e3d26(_0x5e3676,{'from':_0x2bf476,'to':_0x4165e7,'text':_0x2068a3,'origin':_0x276cd6});}function _0x596c95(_0x199f0f,_0x52c740,_0x536f81,_0x4bcfb4){var _0x122df2=_0x1a265f;_0x536f81<_0x199f0f[_0x122df2('0x860')]?_0x199f0f[_0x122df2('0x860')]+=_0x4bcfb4:_0x52c740<_0x199f0f[_0x122df2('0x860')]&&(_0x199f0f[_0x122df2('0x860')]=_0x52c740,_0x199f0f['ch']=0x0);}function _0xfe8f4e(_0x1c87ed,_0x32da54,_0x4022b5,_0x2b985b){var _0x3b612b=_0x1a265f;for(var _0x3ea578=0x0;_0x3ea578<_0x1c87ed[_0x3b612b('0x13')];++_0x3ea578){var _0x4d57a4=_0x1c87ed[_0x3ea578],_0x1fe750=!0x0;if(_0x4d57a4['ranges']){_0x4d57a4[_0x3b612b('0xec5')]||((_0x4d57a4=_0x1c87ed[_0x3ea578]=_0x4d57a4[_0x3b612b('0xbdf')]())[_0x3b612b('0xec5')]=!0x0);for(var _0x1ae87f=0x0;_0x1ae87f<_0x4d57a4['ranges'][_0x3b612b('0x13')];_0x1ae87f++)_0x596c95(_0x4d57a4[_0x3b612b('0x1de')][_0x1ae87f][_0x3b612b('0xd18')],_0x32da54,_0x4022b5,_0x2b985b),_0x596c95(_0x4d57a4[_0x3b612b('0x1de')][_0x1ae87f][_0x3b612b('0x116a')],_0x32da54,_0x4022b5,_0x2b985b);}else{for(var _0x4c9b18=0x0;_0x4c9b18<_0x4d57a4[_0x3b612b('0xba0')][_0x3b612b('0x13')];++_0x4c9b18){var _0x3d1d8d=_0x4d57a4['changes'][_0x4c9b18];if(_0x4022b5<_0x3d1d8d[_0x3b612b('0x1161')]['line'])_0x3d1d8d[_0x3b612b('0x1161')]=_0x3de23f(_0x3d1d8d[_0x3b612b('0x1161')][_0x3b612b('0x860')]+_0x2b985b,_0x3d1d8d[_0x3b612b('0x1161')]['ch']),_0x3d1d8d['to']=_0x3de23f(_0x3d1d8d['to'][_0x3b612b('0x860')]+_0x2b985b,_0x3d1d8d['to']['ch']);else{if(_0x32da54<=_0x3d1d8d['to']['line']){_0x1fe750=!0x1;break;}}}_0x1fe750||(_0x1c87ed[_0x3b612b('0xfbd')](0x0,_0x3ea578+0x1),_0x3ea578=0x0);}}}function _0x26c104(_0x22d764,_0x5ec3f9){var _0x4fa11b=_0x1a265f,_0x286d62=_0x5ec3f9[_0x4fa11b('0x1161')][_0x4fa11b('0x860')],_0x50e48c=_0x5ec3f9['to']['line'],_0x2335a9=_0x5ec3f9['text'][_0x4fa11b('0x13')]-(_0x50e48c-_0x286d62)-0x1;_0xfe8f4e(_0x22d764[_0x4fa11b('0x1126')],_0x286d62,_0x50e48c,_0x2335a9),_0xfe8f4e(_0x22d764['undone'],_0x286d62,_0x50e48c,_0x2335a9);}function _0x4c36ff(_0x33da24,_0x3b9192,_0x73d714,_0x53f557){var _0x329a80=_0x1a265f,_0x5cbc19=_0x3b9192,_0x468c7d=_0x3b9192;return _0x329a80('0x67b')==typeof _0x3b9192?_0x468c7d=_0x1964d4(_0x33da24,_0x3c1da9(_0x33da24,_0x3b9192)):_0x5cbc19=_0x432947(_0x3b9192),null==_0x5cbc19?null:(_0x53f557(_0x468c7d,_0x5cbc19)&&_0x33da24['cm']&&_0x42df63(_0x33da24['cm'],_0x5cbc19,_0x73d714),_0x468c7d);}function _0x56fd0c(_0x25f7af){var _0x2c14d8=_0x1a265f;this[_0x2c14d8('0xf81')]=_0x25f7af,this[_0x2c14d8('0xb69')]=null;for(var _0x28c7aa=0x0,_0x1ac979=0x0;_0x1ac979<_0x25f7af[_0x2c14d8('0x13')];++_0x1ac979)_0x25f7af[_0x1ac979][_0x2c14d8('0xb69')]=this,_0x28c7aa+=_0x25f7af[_0x1ac979]['height'];this['height']=_0x28c7aa;}function _0x929bc3(_0x30118d){var _0x7a647e=_0x1a265f;this[_0x7a647e('0x60c')]=_0x30118d;for(var _0x95d061=0x0,_0x17c3f1=0x0,_0x4e94d4=0x0;_0x4e94d4<_0x30118d[_0x7a647e('0x13')];++_0x4e94d4){var _0x11aa87=_0x30118d[_0x4e94d4];_0x95d061+=_0x11aa87[_0x7a647e('0xfa4')](),_0x17c3f1+=_0x11aa87[_0x7a647e('0x27b')],_0x11aa87[_0x7a647e('0xb69')]=this;}this['size']=_0x95d061,this[_0x7a647e('0x27b')]=_0x17c3f1,this[_0x7a647e('0xb69')]=null;}_0x4d2b0d[_0x1a265f('0xe02')]['from']=function(){var _0x13010f=_0x1a265f;return _0x315a51(this[_0x13010f('0xd18')],this[_0x13010f('0x116a')]);},_0x4d2b0d[_0x1a265f('0xe02')]['to']=function(){var _0x37a971=_0x1a265f;return _0x28826d(this[_0x37a971('0xd18')],this[_0x37a971('0x116a')]);},_0x4d2b0d[_0x1a265f('0xe02')][_0x1a265f('0x1d4')]=function(){var _0xa3a8d4=_0x1a265f;return this['head']['line']==this[_0xa3a8d4('0xd18')][_0xa3a8d4('0x860')]&&this[_0xa3a8d4('0x116a')]['ch']==this['anchor']['ch'];},_0x56fd0c['prototype']={'chunkSize':function(){var _0x572964=_0x1a265f;return this[_0x572964('0xf81')]['length'];},'removeInner':function(_0x400518,_0x48d1a0){var _0x328301=_0x1a265f;for(var _0xc2c3f2=_0x400518,_0x2b0cfe=_0x400518+_0x48d1a0;_0xc2c3f2<_0x2b0cfe;++_0xc2c3f2){var _0x329f23=this[_0x328301('0xf81')][_0xc2c3f2];this[_0x328301('0x27b')]-=_0x329f23[_0x328301('0x27b')],_0x1032d8(_0x329f23),_0x1a8e5b(_0x329f23,_0x328301('0x41d'));}this[_0x328301('0xf81')]['splice'](_0x400518,_0x48d1a0);},'collapse':function(_0x2ac2d0){var _0x2bf310=_0x1a265f;_0x2ac2d0['push'][_0x2bf310('0x2be')](_0x2ac2d0,this[_0x2bf310('0xf81')]);},'insertInner':function(_0xd3263,_0x1a77c6,_0x5ba454){var _0x33d9b3=_0x1a265f;this['height']+=_0x5ba454,this[_0x33d9b3('0xf81')]=this['lines'][_0x33d9b3('0xdf1')](0x0,_0xd3263)[_0x33d9b3('0xda9')](_0x1a77c6)[_0x33d9b3('0xda9')](this[_0x33d9b3('0xf81')][_0x33d9b3('0xdf1')](_0xd3263));for(var _0x38bca2=0x0;_0x38bca2<_0x1a77c6[_0x33d9b3('0x13')];++_0x38bca2)_0x1a77c6[_0x38bca2][_0x33d9b3('0xb69')]=this;},'iterN':function(_0x46d8bb,_0x50df0e,_0x41ea38){var _0x490ed2=_0x1a265f;for(var _0x4c2591=_0x46d8bb+_0x50df0e;_0x46d8bb<_0x4c2591;++_0x46d8bb)if(_0x41ea38(this[_0x490ed2('0xf81')][_0x46d8bb]))return!0x0;}},_0x929bc3['prototype']={'chunkSize':function(){var _0x4a0c11=_0x1a265f;return this[_0x4a0c11('0x10a2')];},'removeInner':function(_0x46e852,_0x4b12cf){var _0x2b1e64=_0x1a265f;this[_0x2b1e64('0x10a2')]-=_0x4b12cf;for(var _0x13804c=0x0;_0x13804c0x1||!(this[_0x2b1e64('0x60c')][0x0]instanceof _0x56fd0c))){var _0x20350e=[];this[_0x2b1e64('0x503')](_0x20350e),this[_0x2b1e64('0x60c')]=[new _0x56fd0c(_0x20350e)],this[_0x2b1e64('0x60c')][0x0][_0x2b1e64('0xb69')]=this;}},'collapse':function(_0x457e7e){var _0x54d4f8=_0x1a265f;for(var _0x4e390f=0x0;_0x4e390f0x32){for(var _0x45e8b9=_0x15ede7[_0x287bea('0xf81')][_0x287bea('0x13')]%0x19+0x19,_0xa61105=_0x45e8b9;_0xa61105<_0x15ede7[_0x287bea('0xf81')]['length'];){var _0x102fec=new _0x56fd0c(_0x15ede7[_0x287bea('0xf81')][_0x287bea('0xdf1')](_0xa61105,_0xa61105+=0x19));_0x15ede7[_0x287bea('0x27b')]-=_0x102fec[_0x287bea('0x27b')],this['children'][_0x287bea('0xfbd')](++_0x41ca4d,0x0,_0x102fec),_0x102fec[_0x287bea('0xb69')]=this;}_0x15ede7[_0x287bea('0xf81')]=_0x15ede7['lines'][_0x287bea('0xdf1')](0x0,_0x45e8b9),this['maybeSpill']();}break;}_0xf9fea8-=_0xdad65d;}},'maybeSpill':function(){var _0x442d48=_0x1a265f;if(!(this[_0x442d48('0x60c')][_0x442d48('0x13')]<=0xa)){var _0x3a6635=this;do{var _0xeb295b=new _0x929bc3(_0x3a6635[_0x442d48('0x60c')][_0x442d48('0xfbd')](_0x3a6635[_0x442d48('0x60c')]['length']-0x5,0x5));if(_0x3a6635['parent']){_0x3a6635[_0x442d48('0x10a2')]-=_0xeb295b[_0x442d48('0x10a2')],_0x3a6635[_0x442d48('0x27b')]-=_0xeb295b[_0x442d48('0x27b')];var _0x424b36=_0x55346f(_0x3a6635['parent'][_0x442d48('0x60c')],_0x3a6635);_0x3a6635[_0x442d48('0xb69')][_0x442d48('0x60c')][_0x442d48('0xfbd')](_0x424b36+0x1,0x0,_0xeb295b);}else{var _0x153f90=new _0x929bc3(_0x3a6635[_0x442d48('0x60c')]);_0x153f90[_0x442d48('0xb69')]=_0x3a6635,_0x3a6635[_0x442d48('0x60c')]=[_0x153f90,_0xeb295b],_0x3a6635=_0x153f90;}_0xeb295b[_0x442d48('0xb69')]=_0x3a6635[_0x442d48('0xb69')];}while(_0x3a6635[_0x442d48('0x60c')][_0x442d48('0x13')]>0xa);_0x3a6635['parent']['maybeSpill']();}},'iterN':function(_0x8e5afe,_0x1b4745,_0x2ed2c7){var _0x579326=_0x1a265f;for(var _0x59a27f=0x0;_0x59a27f0x0||0x0==_0x2b04ac&&!0x1!==_0x3075d6[_0x5bcf85('0x230')])return _0x3075d6;if(_0x3075d6['replacedWith']&&(_0x3075d6[_0x5bcf85('0xfec')]=!0x0,_0x3075d6[_0x5bcf85('0xd0c')]=_0x54ad33('span',[_0x3075d6[_0x5bcf85('0x7ec')]],'CodeMirror-widget'),_0x481b5f[_0x5bcf85('0x57e')]||_0x3075d6[_0x5bcf85('0xd0c')][_0x5bcf85('0x451')]('cm-ignore-events',_0x5bcf85('0x9ed')),_0x481b5f[_0x5bcf85('0xb17')]&&(_0x3075d6[_0x5bcf85('0xd0c')][_0x5bcf85('0xb17')]=!0x0)),_0x3075d6[_0x5bcf85('0xfec')]){if(_0x5b0c93(_0x328d50,_0x5c1a81[_0x5bcf85('0x860')],_0x5c1a81,_0x333737,_0x3075d6)||_0x5c1a81[_0x5bcf85('0x860')]!=_0x333737[_0x5bcf85('0x860')]&&_0x5b0c93(_0x328d50,_0x333737[_0x5bcf85('0x860')],_0x5c1a81,_0x333737,_0x3075d6))throw new Error(_0x5bcf85('0x8d2'));_0x346523=!0x0;}_0x3075d6['addToHistory']&&_0x57babf(_0x328d50,{'from':_0x5c1a81,'to':_0x333737,'origin':'markText'},_0x328d50['sel'],NaN);var _0x2fea95,_0x2a259a=_0x5c1a81['line'],_0x3f8493=_0x328d50['cm'];if(_0x328d50['iter'](_0x2a259a,_0x333737[_0x5bcf85('0x860')]+0x1,function(_0x599ad7){var _0x5c76aa=_0x5bcf85;_0x3f8493&&_0x3075d6[_0x5c76aa('0xfec')]&&!_0x3f8493[_0x5c76aa('0x29d')]['lineWrapping']&&_0xa6d8(_0x599ad7)==_0x3f8493[_0x5c76aa('0x13d')]['maxLine']&&(_0x2fea95=!0x0),_0x3075d6[_0x5c76aa('0xfec')]&&_0x2a259a!=_0x5c1a81[_0x5c76aa('0x860')]&&_0x1ae833(_0x599ad7,0x0),function(_0x13b42e,_0x261790){var _0x1ad069=_0x5c76aa;_0x13b42e[_0x1ad069('0x407')]=_0x13b42e[_0x1ad069('0x407')]?_0x13b42e['markedSpans']['concat']([_0x261790]):[_0x261790],_0x261790[_0x1ad069('0x11d')][_0x1ad069('0xa07')](_0x13b42e);}(_0x599ad7,new _0x18ccd5(_0x3075d6,_0x2a259a==_0x5c1a81[_0x5c76aa('0x860')]?_0x5c1a81['ch']:null,_0x2a259a==_0x333737[_0x5c76aa('0x860')]?_0x333737['ch']:null)),++_0x2a259a;}),_0x3075d6[_0x5bcf85('0xfec')]&&_0x328d50[_0x5bcf85('0xe01')](_0x5c1a81[_0x5bcf85('0x860')],_0x333737[_0x5bcf85('0x860')]+0x1,function(_0x4397d8){_0x20f310(_0x328d50,_0x4397d8)&&_0x1ae833(_0x4397d8,0x0);}),_0x3075d6[_0x5bcf85('0x250')]&&_0x4d62f6(_0x3075d6,_0x5bcf85('0x158'),function(){var _0x5cf5a2=_0x5bcf85;return _0x3075d6[_0x5cf5a2('0xb15')]();}),_0x3075d6['readOnly']&&(_0x270147=!0x0,(_0x328d50['history'][_0x5bcf85('0x1126')]['length']||_0x328d50['history']['undone'][_0x5bcf85('0x13')])&&_0x328d50[_0x5bcf85('0x585')]()),_0x3075d6['collapsed']&&(_0x3075d6['id']=++_0x2a8eae,_0x3075d6[_0x5bcf85('0xb0d')]=!0x0),_0x3f8493){if(_0x2fea95&&(_0x3f8493[_0x5bcf85('0x5ec')][_0x5bcf85('0x257')]=!0x0),_0x3075d6[_0x5bcf85('0xfec')])_0x589d49(_0x3f8493,_0x5c1a81['line'],_0x333737[_0x5bcf85('0x860')]+0x1);else{if(_0x3075d6[_0x5bcf85('0x867')]||_0x3075d6['startStyle']||_0x3075d6['endStyle']||_0x3075d6['css']||_0x3075d6[_0x5bcf85('0x331')]||_0x3075d6['title'])for(var _0x41e7fe=_0x5c1a81['line'];_0x41e7fe<=_0x333737[_0x5bcf85('0x860')];_0x41e7fe++)_0x42df63(_0x3f8493,_0x41e7fe,_0x5bcf85('0x5b2'));}_0x3075d6[_0x5bcf85('0xb0d')]&&_0x31c668(_0x3f8493[_0x5bcf85('0x481')]),_0x1a8e5b(_0x3f8493,_0x5bcf85('0xb06'),_0x3f8493,_0x3075d6);}return _0x3075d6;}_0x445310[_0x1a265f('0xe02')][_0x1a265f('0xb15')]=function(){var _0x2a55cc=_0x1a265f;if(!this[_0x2a55cc('0x17d')]){var _0x43bc25=this[_0x2a55cc('0x481')]['cm'],_0x1dd6a1=_0x43bc25&&!_0x43bc25['curOp'];if(_0x1dd6a1&&_0x4b83c7(_0x43bc25),_0x452465(this,_0x2a55cc('0xb15'))){var _0x42973b=this[_0x2a55cc('0xe05')]();_0x42973b&&_0x1a8e5b(this,_0x2a55cc('0xb15'),_0x42973b[_0x2a55cc('0x1161')],_0x42973b['to']);}for(var _0x539ab7=null,_0x3a9f93=null,_0x3c8f4e=0x0;_0x3c8f4e_0x43bc25[_0x2a55cc('0x13d')][_0x2a55cc('0x672')]&&(_0x43bc25[_0x2a55cc('0x13d')][_0x2a55cc('0x3c2')]=_0x3b26fe,_0x43bc25[_0x2a55cc('0x13d')][_0x2a55cc('0x672')]=_0x291b62,_0x43bc25['display']['maxLineChanged']=!0x0);}null!=_0x539ab7&&_0x43bc25&&this[_0x2a55cc('0xfec')]&&_0x589d49(_0x43bc25,_0x539ab7,_0x3a9f93+0x1),this['lines']['length']=0x0,this['explicitlyCleared']=!0x0,this[_0x2a55cc('0xb0d')]&&this[_0x2a55cc('0x481')][_0x2a55cc('0xd94')]&&(this[_0x2a55cc('0x481')]['cantEdit']=!0x1,_0x43bc25&&_0x31c668(_0x43bc25[_0x2a55cc('0x481')])),_0x43bc25&&_0x1a8e5b(_0x43bc25,_0x2a55cc('0x6e6'),_0x43bc25,this,_0x539ab7,_0x3a9f93),_0x1dd6a1&&_0x381b4d(_0x43bc25),this[_0x2a55cc('0xb69')]&&this[_0x2a55cc('0xb69')][_0x2a55cc('0xb15')]();}},_0x445310[_0x1a265f('0xe02')][_0x1a265f('0xe05')]=function(_0x1410d1,_0x54dc3b){var _0x544953=_0x1a265f,_0x24c1c6,_0x7a688a;null==_0x1410d1&&_0x544953('0xce8')==this[_0x544953('0x921')]&&(_0x1410d1=0x1);for(var _0x2748f3=0x0;_0x2748f3=0x0;_0x5c8575--)_0x2e3d26(this,_0x11a5ea[_0x5c8575]);_0x11b566?_0x26d532(this,_0x11b566):this['cm']&&_0x3b2a9(this['cm']);}),'undo':_0x42c915(function(){var _0x4f9fb3=_0x1a265f;_0xc41259(this,_0x4f9fb3('0x59'));}),'redo':_0x42c915(function(){_0xc41259(this,'redo');}),'undoSelection':_0x42c915(function(){var _0x2396f8=_0x1a265f;_0xc41259(this,_0x2396f8('0x59'),!0x0);}),'redoSelection':_0x42c915(function(){var _0x4e24e4=_0x1a265f;_0xc41259(this,_0x4e24e4('0xe17'),!0x0);}),'setExtending':function(_0x156746){var _0x1aefb8=_0x1a265f;this[_0x1aefb8('0x73')]=_0x156746;},'getExtending':function(){return this['extend'];},'historySize':function(){var _0x11a2e0=_0x1a265f;for(var _0x28dab3=this[_0x11a2e0('0x102f')],_0x857aba=0x0,_0x545b69=0x0,_0xc6cfe=0x0;_0xc6cfe<_0x28dab3[_0x11a2e0('0x1126')]['length'];_0xc6cfe++)_0x28dab3['done'][_0xc6cfe][_0x11a2e0('0x1de')]||++_0x857aba;for(var _0x352e4a=0x0;_0x352e4a<_0x28dab3['undone'][_0x11a2e0('0x13')];_0x352e4a++)_0x28dab3[_0x11a2e0('0xa94')][_0x352e4a][_0x11a2e0('0x1de')]||++_0x545b69;return{'undo':_0x857aba,'redo':_0x545b69};},'clearHistory':function(){var _0x3888da=_0x1a265f,_0x7391e5=this;this['history']=new _0x489f21(this[_0x3888da('0x102f')]['maxGeneration']),_0x2ce38f(this,function(_0x532a5c){var _0x48885b=_0x3888da;return _0x532a5c[_0x48885b('0x102f')]=_0x7391e5[_0x48885b('0x102f')];},!0x0);},'markClean':function(){var _0x5c90ce=_0x1a265f;this['cleanGeneration']=this[_0x5c90ce('0x568')](!0x0);},'changeGeneration':function(_0x26d678){var _0x59ce14=_0x1a265f;return _0x26d678&&(this[_0x59ce14('0x102f')][_0x59ce14('0x10b1')]=this[_0x59ce14('0x102f')]['lastSelOp']=this[_0x59ce14('0x102f')][_0x59ce14('0x2a8')]=null),this['history'][_0x59ce14('0xa82')];},'isClean':function(_0x201daf){var _0x5bc603=_0x1a265f;return this[_0x5bc603('0x102f')][_0x5bc603('0xa82')]==(_0x201daf||this[_0x5bc603('0x87e')]);},'getHistory':function(){var _0x83581b=_0x1a265f;return{'done':_0x18c7de(this[_0x83581b('0x102f')][_0x83581b('0x1126')]),'undone':_0x18c7de(this[_0x83581b('0x102f')]['undone'])};},'setHistory':function(_0x420e3d){var _0x4cfe72=_0x1a265f,_0x45b5a9=this[_0x4cfe72('0x102f')]=new _0x489f21(this[_0x4cfe72('0x102f')][_0x4cfe72('0x861')]);_0x45b5a9[_0x4cfe72('0x1126')]=_0x18c7de(_0x420e3d[_0x4cfe72('0x1126')][_0x4cfe72('0xdf1')](0x0),null,!0x0),_0x45b5a9[_0x4cfe72('0xa94')]=_0x18c7de(_0x420e3d['undone'][_0x4cfe72('0xdf1')](0x0),null,!0x0);},'setGutterMarker':_0x42c915(function(_0x1c24a4,_0x439571,_0x30c1ff){var _0x9b6f88=_0x1a265f;return _0x4c36ff(this,_0x1c24a4,_0x9b6f88('0xc42'),function(_0x508db0){var _0x54c74f=_0x9b6f88,_0x26a524=_0x508db0['gutterMarkers']||(_0x508db0[_0x54c74f('0xde0')]={});return _0x26a524[_0x439571]=_0x30c1ff,!_0x30c1ff&&_0x3928d4(_0x26a524)&&(_0x508db0[_0x54c74f('0xde0')]=null),!0x0;});}),'clearGutter':_0x42c915(function(_0x15fef0){var _0x322840=_0x1a265f,_0x3d2c09=this;this[_0x322840('0xe01')](function(_0x2f06f2){var _0x261614=_0x322840;_0x2f06f2['gutterMarkers']&&_0x2f06f2[_0x261614('0xde0')][_0x15fef0]&&_0x4c36ff(_0x3d2c09,_0x2f06f2,_0x261614('0xc42'),function(){var _0x2c15ed=_0x261614;return _0x2f06f2[_0x2c15ed('0xde0')][_0x15fef0]=null,_0x3928d4(_0x2f06f2[_0x2c15ed('0xde0')])&&(_0x2f06f2[_0x2c15ed('0xde0')]=null),!0x0;});});}),'lineInfo':function(_0x2dfc4c){var _0x1fca83=_0x1a265f,_0x54114d;if(_0x1fca83('0x67b')==typeof _0x2dfc4c){if(!_0x3ad5be(this,_0x2dfc4c))return null;if(_0x54114d=_0x2dfc4c,!(_0x2dfc4c=_0x1964d4(this,_0x2dfc4c)))return null;}else{if(null==(_0x54114d=_0x432947(_0x2dfc4c)))return null;}return{'line':_0x54114d,'handle':_0x2dfc4c,'text':_0x2dfc4c[_0x1fca83('0x5b2')],'gutterMarkers':_0x2dfc4c[_0x1fca83('0xde0')],'textClass':_0x2dfc4c[_0x1fca83('0x6eb')],'bgClass':_0x2dfc4c['bgClass'],'wrapClass':_0x2dfc4c[_0x1fca83('0xa34')],'widgets':_0x2dfc4c[_0x1fca83('0x19a')]};},'addLineClass':_0x42c915(function(_0x4fdfa0,_0x3e5c2e,_0x3dee64){var _0x203a15=_0x1a265f;return _0x4c36ff(this,_0x4fdfa0,_0x203a15('0xc42')==_0x3e5c2e?_0x203a15('0xc42'):_0x203a15('0x63c'),function(_0x1424b8){var _0x4cc654=_0x203a15,_0x428804=_0x4cc654('0x5b2')==_0x3e5c2e?'textClass':_0x4cc654('0x23f')==_0x3e5c2e?_0x4cc654('0x664'):_0x4cc654('0xc42')==_0x3e5c2e?_0x4cc654('0x56'):_0x4cc654('0xa34');if(_0x1424b8[_0x428804]){if(_0x31e19d(_0x3dee64)[_0x4cc654('0x2c3')](_0x1424b8[_0x428804]))return!0x1;_0x1424b8[_0x428804]+='\x20'+_0x3dee64;}else _0x1424b8[_0x428804]=_0x3dee64;return!0x0;});}),'removeLineClass':_0x42c915(function(_0x3fe16e,_0x170fde,_0x1544ec){var _0x5d4534=_0x1a265f;return _0x4c36ff(this,_0x3fe16e,_0x5d4534('0xc42')==_0x170fde?'gutter':_0x5d4534('0x63c'),function(_0x23121d){var _0x42f9ed=_0x5d4534,_0x5b6b58=_0x42f9ed('0x5b2')==_0x170fde?_0x42f9ed('0x6eb'):_0x42f9ed('0x23f')==_0x170fde?_0x42f9ed('0x664'):_0x42f9ed('0xc42')==_0x170fde?_0x42f9ed('0x56'):_0x42f9ed('0xa34'),_0x33fd31=_0x23121d[_0x5b6b58];if(!_0x33fd31)return!0x1;if(null==_0x1544ec)_0x23121d[_0x5b6b58]=null;else{var _0x291bca=_0x33fd31['match'](_0x31e19d(_0x1544ec));if(!_0x291bca)return!0x1;var _0x150402=_0x291bca[_0x42f9ed('0x64a')]+_0x291bca[0x0][_0x42f9ed('0x13')];_0x23121d[_0x5b6b58]=_0x33fd31[_0x42f9ed('0xdf1')](0x0,_0x291bca[_0x42f9ed('0x64a')])+(_0x291bca[_0x42f9ed('0x64a')]&&_0x150402!=_0x33fd31['length']?'\x20':'')+_0x33fd31[_0x42f9ed('0xdf1')](_0x150402)||null;}return!0x0;});}),'addLineWidget':_0x42c915(function(_0x362715,_0x505283,_0x5ac56d){return function(_0x54ae6b,_0x55078b,_0x24f431,_0x49165d){var _0x551df5=_0x5376,_0x392765=new _0x5b2cfe(_0x54ae6b,_0x24f431,_0x49165d),_0x4a70eb=_0x54ae6b['cm'];return _0x4a70eb&&_0x392765['noHScroll']&&(_0x4a70eb[_0x551df5('0x13d')][_0x551df5('0x59b')]=!0x0),_0x4c36ff(_0x54ae6b,_0x55078b,_0x551df5('0x838'),function(_0x1b4615){var _0x5070ec=_0x551df5,_0x19b625=_0x1b4615[_0x5070ec('0x19a')]||(_0x1b4615[_0x5070ec('0x19a')]=[]);if(null==_0x392765[_0x5070ec('0xee0')]?_0x19b625[_0x5070ec('0x91b')](_0x392765):_0x19b625['splice'](Math[_0x5070ec('0xd3f')](_0x19b625[_0x5070ec('0x13')]-0x1,Math[_0x5070ec('0xa0d')](0x0,_0x392765['insertAt'])),0x0,_0x392765),_0x392765[_0x5070ec('0x860')]=_0x1b4615,_0x4a70eb&&!_0x20f310(_0x54ae6b,_0x1b4615)){var _0x23a521=_0x112056(_0x1b4615)<_0x54ae6b[_0x5070ec('0x94d')];_0x1ae833(_0x1b4615,_0x1b4615[_0x5070ec('0x27b')]+_0x269321(_0x392765)),_0x23a521&&_0x4b37de(_0x4a70eb,_0x392765['height']),_0x4a70eb['curOp'][_0x5070ec('0xf91')]=!0x0;}return!0x0;}),_0x4a70eb&&_0x1a8e5b(_0x4a70eb,'lineWidgetAdded',_0x4a70eb,_0x392765,_0x551df5('0x67b')==typeof _0x55078b?_0x55078b:_0x432947(_0x55078b)),_0x392765;}(this,_0x362715,_0x505283,_0x5ac56d);}),'removeLineWidget':function(_0xa2ff15){_0xa2ff15['clear']();},'markText':function(_0x522524,_0xf4c4ab,_0x1a57de){var _0x15246e=_0x1a265f;return _0x293ea2(this,_0x11e028(this,_0x522524),_0x11e028(this,_0xf4c4ab),_0x1a57de,_0x1a57de&&_0x1a57de['type']||_0x15246e('0x5e8'));},'setBookmark':function(_0x1ca5f2,_0x2b445a){var _0x335a80=_0x1a265f,_0x39e87e={'replacedWith':_0x2b445a&&(null==_0x2b445a[_0x335a80('0x5a')]?_0x2b445a['widget']:_0x2b445a),'insertLeft':_0x2b445a&&_0x2b445a[_0x335a80('0xb17')],'clearWhenEmpty':!0x1,'shared':_0x2b445a&&_0x2b445a[_0x335a80('0x8f9')],'handleMouseEvents':_0x2b445a&&_0x2b445a[_0x335a80('0x57e')]};return _0x293ea2(this,_0x1ca5f2=_0x11e028(this,_0x1ca5f2),_0x1ca5f2,_0x39e87e,_0x335a80('0xce8'));},'findMarksAt':function(_0x45452e){var _0x315db7=_0x1a265f,_0x4210a4=[],_0x2fae6a=_0x1964d4(this,(_0x45452e=_0x11e028(this,_0x45452e))['line'])['markedSpans'];if(_0x2fae6a)for(var _0x413a20=0x0;_0x413a20<_0x2fae6a['length'];++_0x413a20){var _0x451b95=_0x2fae6a[_0x413a20];(null==_0x451b95[_0x315db7('0x1161')]||_0x451b95['from']<=_0x45452e['ch'])&&(null==_0x451b95['to']||_0x451b95['to']>=_0x45452e['ch'])&&_0x4210a4[_0x315db7('0x91b')](_0x451b95['marker'][_0x315db7('0xb69')]||_0x451b95['marker']);}return _0x4210a4;},'findMarks':function(_0x54b494,_0x1de7a1,_0x5f4d41){var _0x4eb33c=_0x1a265f;_0x54b494=_0x11e028(this,_0x54b494),_0x1de7a1=_0x11e028(this,_0x1de7a1);var _0x582bc3=[],_0x6d26ea=_0x54b494['line'];return this[_0x4eb33c('0xe01')](_0x54b494['line'],_0x1de7a1[_0x4eb33c('0x860')]+0x1,function(_0x59e2fb){var _0x310625=_0x4eb33c,_0x5ed842=_0x59e2fb['markedSpans'];if(_0x5ed842)for(var _0xd53b0e=0x0;_0xd53b0e<_0x5ed842[_0x310625('0x13')];_0xd53b0e++){var _0x2b267d=_0x5ed842[_0xd53b0e];null!=_0x2b267d['to']&&_0x6d26ea==_0x54b494[_0x310625('0x860')]&&_0x54b494['ch']>=_0x2b267d['to']||null==_0x2b267d['from']&&_0x6d26ea!=_0x54b494['line']||null!=_0x2b267d[_0x310625('0x1161')]&&_0x6d26ea==_0x1de7a1['line']&&_0x2b267d[_0x310625('0x1161')]>=_0x1de7a1['ch']||_0x5f4d41&&!_0x5f4d41(_0x2b267d[_0x310625('0x11d')])||_0x582bc3['push'](_0x2b267d[_0x310625('0x11d')]['parent']||_0x2b267d[_0x310625('0x11d')]);}++_0x6d26ea;}),_0x582bc3;},'getAllMarks':function(){var _0x293ca6=_0x1a265f,_0x3e11a7=[];return this[_0x293ca6('0xe01')](function(_0xc3fe64){var _0x257ff9=_0x293ca6,_0x3e529f=_0xc3fe64[_0x257ff9('0x407')];if(_0x3e529f)for(var _0x46fcd5=0x0;_0x46fcd5<_0x3e529f[_0x257ff9('0x13')];++_0x46fcd5)null!=_0x3e529f[_0x46fcd5][_0x257ff9('0x1161')]&&_0x3e11a7['push'](_0x3e529f[_0x46fcd5][_0x257ff9('0x11d')]);}),_0x3e11a7;},'posFromIndex':function(_0x5354fa){var _0x1db077=_0x1a265f,_0x1cd114,_0x1142ba=this[_0x1db077('0x3f0')],_0x1e5a3b=this[_0x1db077('0x5a5')]()[_0x1db077('0x13')];return this[_0x1db077('0xe01')](function(_0x43282a){var _0x490e3c=_0x1db077,_0x245e7d=_0x43282a[_0x490e3c('0x5b2')]['length']+_0x1e5a3b;if(_0x245e7d>_0x5354fa)return _0x1cd114=_0x5354fa,!0x0;_0x5354fa-=_0x245e7d,++_0x1142ba;}),_0x11e028(this,_0x3de23f(_0x1142ba,_0x1cd114));},'indexFromPos':function(_0x4f06e0){var _0x5cb832=_0x1a265f,_0x510365=(_0x4f06e0=_0x11e028(this,_0x4f06e0))['ch'];if(_0x4f06e0[_0x5cb832('0x860')]_0x233327&&(_0x233327=_0xdbf669[_0x3da5b2('0x1161')]),null!=_0xdbf669['to']&&_0xdbf669['to']<_0x148ed6&&(_0x148ed6=_0xdbf669['to']);var _0x469323=new _0x2bc8c4(_0x1cfd1e(this,_0x233327,_0x148ed6),_0xdbf669[_0x3da5b2('0x1ab')]||this[_0x3da5b2('0x3d9')],_0x233327,this['lineSep'],this['direction']);return _0xdbf669['sharedHist']&&(_0x469323[_0x3da5b2('0x102f')]=this[_0x3da5b2('0x102f')]),(this[_0x3da5b2('0x56a')]||(this['linked']=[]))[_0x3da5b2('0x91b')]({'doc':_0x469323,'sharedHist':_0xdbf669['sharedHist']}),_0x469323[_0x3da5b2('0x56a')]=[{'doc':this,'isParent':!0x0,'sharedHist':_0xdbf669[_0x3da5b2('0x60d')]}],function(_0x179024,_0x3098e1){var _0x39e0e5=_0x3da5b2;for(var _0x5037ae=0x0;_0x5037ae<_0x3098e1[_0x39e0e5('0x13')];_0x5037ae++){var _0x363d7c=_0x3098e1[_0x5037ae],_0x3ab9d1=_0x363d7c[_0x39e0e5('0xe05')](),_0x32db2b=_0x179024['clipPos'](_0x3ab9d1[_0x39e0e5('0x1161')]),_0x315897=_0x179024[_0x39e0e5('0xfe8')](_0x3ab9d1['to']);if(_0x1213af(_0x32db2b,_0x315897)){var _0x3b49ba=_0x293ea2(_0x179024,_0x32db2b,_0x315897,_0x363d7c[_0x39e0e5('0x1071')],_0x363d7c['primary'][_0x39e0e5('0x921')]);_0x363d7c[_0x39e0e5('0xa')][_0x39e0e5('0x91b')](_0x3b49ba),_0x3b49ba['parent']=_0x363d7c;}}}(_0x469323,_0x2156c4(this)),_0x469323;},'unlinkDoc':function(_0xbc3f6d){var _0x395c1e=_0x1a265f;if(_0xbc3f6d instanceof _0x11eb40&&(_0xbc3f6d=_0xbc3f6d[_0x395c1e('0x481')]),this[_0x395c1e('0x56a')])for(var _0x281c88=0x0;_0x281c88-0x1)return _0x1d9f2d[_0x3bf10b('0x55d')][_0x3bf10b('0xe4a')](_0x561b0b),void setTimeout(function(){var _0x344332=_0x3bf10b;return _0x1d9f2d[_0x344332('0x13d')]['input'][_0x344332('0x7dd')]();},0x14);try{var _0x230a34=_0x561b0b[_0x3bf10b('0xb07')][_0x3bf10b('0x5c0')]('Text');if(_0x230a34){var _0x1897a1;if(_0x1d9f2d[_0x3bf10b('0x55d')]['draggingText']&&!_0x1d9f2d['state'][_0x3bf10b('0xe4a')][_0x3bf10b('0x3cd')]&&(_0x1897a1=_0x1d9f2d[_0x3bf10b('0x5c')]()),_0x2436ce(_0x1d9f2d['doc'],_0x3f83ba(_0x35b194,_0x35b194)),_0x1897a1)for(var _0x6d823c=0x0;_0x6d823c<_0x1897a1[_0x3bf10b('0x13')];++_0x6d823c)_0x1b6eb7(_0x1d9f2d[_0x3bf10b('0x481')],'',_0x1897a1[_0x6d823c][_0x3bf10b('0xd18')],_0x1897a1[_0x6d823c]['head'],_0x3bf10b('0x66'));_0x1d9f2d[_0x3bf10b('0x514')](_0x230a34,_0x3bf10b('0xad0'),_0x3bf10b('0x980')),_0x1d9f2d[_0x3bf10b('0x13d')][_0x3bf10b('0x2f8')][_0x3bf10b('0x7dd')]();}}catch(_0x56d922){}}}}}function _0x3d0149(_0x1c0605){var _0x1a2284=_0x1a265f;_0x1c0605[_0x1a2284('0x13d')][_0x1a2284('0xc98')]&&(_0x1c0605['display'][_0x1a2284('0x1f5')][_0x1a2284('0xf93')](_0x1c0605[_0x1a2284('0x13d')][_0x1a2284('0xc98')]),_0x1c0605['display'][_0x1a2284('0xc98')]=null);}function _0x127c0a(_0x5aadf1){var _0x3edc79=_0x1a265f;if(document[_0x3edc79('0x149')]){for(var _0x2dbe16=document[_0x3edc79('0x149')]('CodeMirror'),_0x530373=[],_0x579fd2=0x0;_0x579fd2<_0x2dbe16['length'];_0x579fd2++){var _0x15b101=_0x2dbe16[_0x579fd2][_0x3edc79('0x486')];_0x15b101&&_0x530373[_0x3edc79('0x91b')](_0x15b101);}_0x530373[_0x3edc79('0x13')]&&_0x530373[0x0]['operation'](function(){for(var _0x2b246b=0x0;_0x2b246b<_0x530373['length'];_0x2b246b++)_0x5aadf1(_0x530373[_0x2b246b]);});}}var _0x125973=!0x1;function _0x50265e(){var _0x54a1d7=_0x1a265f,_0x2093d6;_0x125973||(_0x4d62f6(window,_0x54a1d7('0x102'),function(){null==_0x2093d6&&(_0x2093d6=setTimeout(function(){_0x2093d6=null,_0x127c0a(_0xb4df55);},0x64));}),_0x4d62f6(window,_0x54a1d7('0xba2'),function(){return _0x127c0a(_0x3d07e0);}),_0x125973=!0x0);}function _0xb4df55(_0x588b22){var _0x5bbdac=_0x1a265f,_0x207df0=_0x588b22['display'];_0x207df0['cachedCharWidth']=_0x207df0[_0x5bbdac('0x1115')]=_0x207df0['cachedPaddingH']=null,_0x207df0['scrollbarsClipped']=!0x1,_0x588b22[_0x5bbdac('0x84c')]();}for(var _0x4ed5f8={0x3:_0x1a265f('0x655'),0x8:_0x1a265f('0x877'),0x9:_0x1a265f('0xac7'),0xd:_0x1a265f('0x560'),0x10:'Shift',0x11:'Ctrl',0x12:'Alt',0x13:_0x1a265f('0x655'),0x14:'CapsLock',0x1b:_0x1a265f('0xd3'),0x20:_0x1a265f('0xfc'),0x21:_0x1a265f('0xd32'),0x22:_0x1a265f('0xe49'),0x23:_0x1a265f('0xdc9'),0x24:_0x1a265f('0x6fe'),0x25:_0x1a265f('0x22c'),0x26:'Up',0x27:_0x1a265f('0x40d'),0x28:'Down',0x2c:_0x1a265f('0x25d'),0x2d:'Insert',0x2e:_0x1a265f('0x675'),0x3b:';',0x3d:'=',0x5b:_0x1a265f('0x2f'),0x5c:_0x1a265f('0x2f'),0x5d:'Mod',0x6a:'*',0x6b:'=',0x6d:'-',0x6e:'.',0x6f:'/',0x91:'ScrollLock',0xad:'-',0xba:';',0xbb:'=',0xbc:',',0xbd:'-',0xbe:'.',0xbf:'/',0xc0:'`',0xdb:'[',0xdc:'\x5c',0xdd:']',0xde:'\x27',0xe0:_0x1a265f('0x2f'),0xf700:'Up',0xf701:_0x1a265f('0xf66'),0xf702:_0x1a265f('0x22c'),0xf703:_0x1a265f('0x40d'),0xf728:_0x1a265f('0x675'),0xf729:_0x1a265f('0x6fe'),0xf72b:_0x1a265f('0xdc9'),0xf72c:'PageUp',0xf72d:_0x1a265f('0xe49'),0xf746:_0x1a265f('0x6e4')},_0xc9eb7b=0x0;_0xc9eb7b<0xa;_0xc9eb7b++)_0x4ed5f8[_0xc9eb7b+0x30]=_0x4ed5f8[_0xc9eb7b+0x60]=String(_0xc9eb7b);for(var _0x2d9ef9=0x41;_0x2d9ef9<=0x5a;_0x2d9ef9++)_0x4ed5f8[_0x2d9ef9]=String['fromCharCode'](_0x2d9ef9);for(var _0x27942f=0x1;_0x27942f<=0xc;_0x27942f++)_0x4ed5f8[_0x27942f+0x6f]=_0x4ed5f8[_0x27942f+0xf703]='F'+_0x27942f;var _0x253397={};function _0xe17b87(_0x2da0ca){var _0x1d06cc=_0x1a265f,_0x2f3b87,_0x5e645b,_0xaffd2f,_0x504bfb,_0x4e6518=_0x2da0ca[_0x1d06cc('0x44d')](/-(?!$)/);_0x2da0ca=_0x4e6518[_0x4e6518[_0x1d06cc('0x13')]-0x1];for(var _0x178535=0x0;_0x178535<_0x4e6518[_0x1d06cc('0x13')]-0x1;_0x178535++){var _0x31c38c=_0x4e6518[_0x178535];if(/^(cmd|meta|m)$/i[_0x1d06cc('0x2c3')](_0x31c38c))_0x504bfb=!0x0;else{if(/^a(lt)?$/i[_0x1d06cc('0x2c3')](_0x31c38c))_0x2f3b87=!0x0;else{if(/^(c|ctrl|control)$/i[_0x1d06cc('0x2c3')](_0x31c38c))_0x5e645b=!0x0;else{if(!/^s(hift)?$/i[_0x1d06cc('0x2c3')](_0x31c38c))throw new Error(_0x1d06cc('0xe5c')+_0x31c38c);_0xaffd2f=!0x0;}}}}return _0x2f3b87&&(_0x2da0ca=_0x1d06cc('0x10e8')+_0x2da0ca),_0x5e645b&&(_0x2da0ca=_0x1d06cc('0x12f')+_0x2da0ca),_0x504bfb&&(_0x2da0ca=_0x1d06cc('0x105d')+_0x2da0ca),_0xaffd2f&&(_0x2da0ca=_0x1d06cc('0xd2')+_0x2da0ca),_0x2da0ca;}function _0x45235d(_0x139161){var _0x3227a7=_0x1a265f,_0x1ee947={};for(var _0x2db070 in _0x139161)if(_0x139161[_0x3227a7('0xe9c')](_0x2db070)){var _0x63ee64=_0x139161[_0x2db070];if(/^(name|fallthrough|(de|at)tach)$/[_0x3227a7('0x2c3')](_0x2db070))continue;if(_0x3227a7('0xd77')==_0x63ee64){delete _0x139161[_0x2db070];continue;}for(var _0x5b22f8=_0x2d0ee7(_0x2db070[_0x3227a7('0x44d')]('\x20'),_0xe17b87),_0x5e0c89=0x0;_0x5e0c89<_0x5b22f8['length'];_0x5e0c89++){var _0x48ecac=void 0x0,_0x234f9b=void 0x0;_0x5e0c89==_0x5b22f8[_0x3227a7('0x13')]-0x1?(_0x234f9b=_0x5b22f8['join']('\x20'),_0x48ecac=_0x63ee64):(_0x234f9b=_0x5b22f8[_0x3227a7('0xdf1')](0x0,_0x5e0c89+0x1)[_0x3227a7('0x2e2')]('\x20'),_0x48ecac=_0x3227a7('0xd77'));var _0x2f0eee=_0x1ee947[_0x234f9b];if(_0x2f0eee){if(_0x2f0eee!=_0x48ecac)throw new Error(_0x3227a7('0x1f4')+_0x234f9b);}else _0x1ee947[_0x234f9b]=_0x48ecac;}delete _0x139161[_0x2db070];}for(var _0x292bfc in _0x1ee947)_0x139161[_0x292bfc]=_0x1ee947[_0x292bfc];return _0x139161;}function _0x299570(_0x5beace,_0x54477c,_0x382b73,_0x537eab){var _0x4875ef=_0x1a265f,_0x5855d4=(_0x54477c=_0x32b032(_0x54477c))[_0x4875ef('0xfd2')]?_0x54477c[_0x4875ef('0xfd2')](_0x5beace,_0x537eab):_0x54477c[_0x5beace];if(!0x1===_0x5855d4)return'nothing';if('...'===_0x5855d4)return _0x4875ef('0xbda');if(null!=_0x5855d4&&_0x382b73(_0x5855d4))return _0x4875ef('0x77c');if(_0x54477c['fallthrough']){if('[object\x20Array]'!=Object[_0x4875ef('0xe02')][_0x4875ef('0xb6d')][_0x4875ef('0xfd2')](_0x54477c[_0x4875ef('0x77b')]))return _0x299570(_0x5beace,_0x54477c[_0x4875ef('0x77b')],_0x382b73,_0x537eab);for(var _0x18cd27=0x0;_0x18cd27<_0x54477c['fallthrough'][_0x4875ef('0x13')];_0x18cd27++){var _0x265a51=_0x299570(_0x5beace,_0x54477c[_0x4875ef('0x77b')][_0x18cd27],_0x382b73,_0x537eab);if(_0x265a51)return _0x265a51;}}}function _0x42bf1a(_0x2b4743){var _0xf4c0f5=_0x1a265f,_0x453520='string'==typeof _0x2b4743?_0x2b4743:_0x4ed5f8[_0x2b4743[_0xf4c0f5('0xba8')]];return _0xf4c0f5('0x47c')==_0x453520||'Alt'==_0x453520||_0xf4c0f5('0xc49')==_0x453520||_0xf4c0f5('0x2f')==_0x453520;}function _0x110a03(_0x3dec57,_0x16260b,_0x5987ef){var _0x38a4be=_0x1a265f,_0x52bc52=_0x3dec57;return _0x16260b[_0x38a4be('0xa6b')]&&_0x38a4be('0xc0f')!=_0x52bc52&&(_0x3dec57='Alt-'+_0x3dec57),(_0x347597?_0x16260b[_0x38a4be('0x345')]:_0x16260b['ctrlKey'])&&_0x38a4be('0x47c')!=_0x52bc52&&(_0x3dec57=_0x38a4be('0x12f')+_0x3dec57),(_0x347597?_0x16260b[_0x38a4be('0xe8a')]:_0x16260b[_0x38a4be('0x345')])&&_0x38a4be('0x2f')!=_0x52bc52&&(_0x3dec57='Cmd-'+_0x3dec57),!_0x5987ef&&_0x16260b[_0x38a4be('0x8d3')]&&_0x38a4be('0xc49')!=_0x52bc52&&(_0x3dec57=_0x38a4be('0xd2')+_0x3dec57),_0x3dec57;}function _0x32e99b(_0x18d2c1,_0x16f654){var _0xbe1817=_0x1a265f;if(_0x126de8&&0x22==_0x18d2c1[_0xbe1817('0xba8')]&&_0x18d2c1[_0xbe1817('0xa59')])return!0x1;var _0x4c8f09=_0x4ed5f8[_0x18d2c1['keyCode']];return null!=_0x4c8f09&&!_0x18d2c1[_0xbe1817('0xf0')]&&(0x3==_0x18d2c1['keyCode']&&_0x18d2c1[_0xbe1817('0x9e3')]&&(_0x4c8f09=_0x18d2c1[_0xbe1817('0x9e3')]),_0x110a03(_0x4c8f09,_0x18d2c1,_0x16f654));}function _0x32b032(_0x3eb12e){var _0x239ec7=_0x1a265f;return _0x239ec7('0x2fd')==typeof _0x3eb12e?_0x253397[_0x3eb12e]:_0x3eb12e;}function _0x4de126(_0x223737,_0x57daae){var _0x142b3e=_0x1a265f;for(var _0x183dcc=_0x223737[_0x142b3e('0x481')]['sel'][_0x142b3e('0x1de')],_0x1e317c=[],_0x1684be=0x0;_0x1684be<_0x183dcc[_0x142b3e('0x13')];_0x1684be++){for(var _0x140923=_0x57daae(_0x183dcc[_0x1684be]);_0x1e317c[_0x142b3e('0x13')]&&_0x1213af(_0x140923[_0x142b3e('0x1161')],_0x18184b(_0x1e317c)['to'])<=0x0;){var _0x51f89b=_0x1e317c[_0x142b3e('0x2a3')]();if(_0x1213af(_0x51f89b['from'],_0x140923[_0x142b3e('0x1161')])<0x0){_0x140923[_0x142b3e('0x1161')]=_0x51f89b[_0x142b3e('0x1161')];break;}}_0x1e317c[_0x142b3e('0x91b')](_0x140923);}_0x39976b(_0x223737,function(){var _0x4de818=_0x142b3e;for(var _0x336400=_0x1e317c[_0x4de818('0x13')]-0x1;_0x336400>=0x0;_0x336400--)_0x1b6eb7(_0x223737[_0x4de818('0x481')],'',_0x1e317c[_0x336400][_0x4de818('0x1161')],_0x1e317c[_0x336400]['to'],_0x4de818('0xedf'));_0x3b2a9(_0x223737);});}function _0x35e7aa(_0x24621b,_0x172f99,_0x50172e){var _0xf79195=_0x1a265f,_0x27b831=_0x249de5(_0x24621b[_0xf79195('0x5b2')],_0x172f99+_0x50172e,_0x50172e);return _0x27b831<0x0||_0x27b831>_0x24621b['text']['length']?null:_0x27b831;}function _0x2b6c67(_0x397520,_0x179059,_0xf0b7ee){var _0x354ea1=_0x1a265f,_0x28a148=_0x35e7aa(_0x397520,_0x179059['ch'],_0xf0b7ee);return null==_0x28a148?null:new _0x3de23f(_0x179059[_0x354ea1('0x860')],_0x28a148,_0xf0b7ee<0x0?_0x354ea1('0x593'):_0x354ea1('0x4ec'));}function _0x28f4ab(_0x31a3ef,_0x26e18e,_0x387990,_0x40fdc5,_0x577336){var _0x4aadea=_0x1a265f;if(_0x31a3ef){_0x4aadea('0x919')==_0x26e18e[_0x4aadea('0x481')][_0x4aadea('0x8de')]&&(_0x577336=-_0x577336);var _0x102335=_0x30ca79(_0x387990,_0x26e18e[_0x4aadea('0x481')][_0x4aadea('0x8de')]);if(_0x102335){var _0x491429,_0x74de19=_0x577336<0x0?_0x18184b(_0x102335):_0x102335[0x0],_0x183715=_0x577336<0x0==(0x1==_0x74de19['level'])?_0x4aadea('0x593'):_0x4aadea('0x4ec');if(_0x74de19[_0x4aadea('0x555')]>0x0||_0x4aadea('0x919')==_0x26e18e['doc']['direction']){var _0x2186cb=_0x1058f2(_0x26e18e,_0x387990);_0x491429=_0x577336<0x0?_0x387990[_0x4aadea('0x5b2')]['length']-0x1:0x0;var _0x2c838f=_0x2089da(_0x26e18e,_0x2186cb,_0x491429)[_0x4aadea('0x5b')];_0x491429=_0x12c0d8(function(_0x3c0d2c){var _0x13403d=_0x4aadea;return _0x2089da(_0x26e18e,_0x2186cb,_0x3c0d2c)[_0x13403d('0x5b')]==_0x2c838f;},_0x577336<0x0==(0x1==_0x74de19['level'])?_0x74de19['from']:_0x74de19['to']-0x1,_0x491429),_0x4aadea('0x4ec')==_0x183715&&(_0x491429=_0x35e7aa(_0x387990,_0x491429,0x1));}else _0x491429=_0x577336<0x0?_0x74de19['to']:_0x74de19['from'];return new _0x3de23f(_0x40fdc5,_0x491429,_0x183715);}}return new _0x3de23f(_0x40fdc5,_0x577336<0x0?_0x387990[_0x4aadea('0x5b2')][_0x4aadea('0x13')]:0x0,_0x577336<0x0?_0x4aadea('0x4ec'):'after');}_0x253397[_0x1a265f('0x7bc')]={'Left':_0x1a265f('0x10ee'),'Right':_0x1a265f('0xaa8'),'Up':_0x1a265f('0xa5a'),'Down':_0x1a265f('0x625'),'End':_0x1a265f('0x508'),'Home':_0x1a265f('0x3b0'),'PageUp':'goPageUp','PageDown':_0x1a265f('0xfd6'),'Delete':_0x1a265f('0xb0b'),'Backspace':_0x1a265f('0x2e9'),'Shift-Backspace':_0x1a265f('0x2e9'),'Tab':_0x1a265f('0xeb6'),'Shift-Tab':'indentAuto','Enter':_0x1a265f('0xb85'),'Insert':'toggleOverwrite','Esc':_0x1a265f('0x8e')},_0x253397[_0x1a265f('0x821')]={'Ctrl-A':_0x1a265f('0x53f'),'Ctrl-D':_0x1a265f('0x2f7'),'Ctrl-Z':_0x1a265f('0x59'),'Shift-Ctrl-Z':_0x1a265f('0xe17'),'Ctrl-Y':_0x1a265f('0xe17'),'Ctrl-Home':_0x1a265f('0x277'),'Ctrl-End':_0x1a265f('0x29e'),'Ctrl-Up':_0x1a265f('0xa5a'),'Ctrl-Down':_0x1a265f('0x625'),'Ctrl-Left':_0x1a265f('0xf44'),'Ctrl-Right':_0x1a265f('0x36c'),'Alt-Left':'goLineStart','Alt-Right':_0x1a265f('0x508'),'Ctrl-Backspace':_0x1a265f('0x111d'),'Ctrl-Delete':_0x1a265f('0x9a3'),'Ctrl-S':_0x1a265f('0xb6'),'Ctrl-F':_0x1a265f('0xe05'),'Ctrl-G':_0x1a265f('0x1169'),'Shift-Ctrl-G':_0x1a265f('0xe3b'),'Shift-Ctrl-F':_0x1a265f('0xd06'),'Shift-Ctrl-R':_0x1a265f('0x95b'),'Ctrl-[':_0x1a265f('0x511'),'Ctrl-]':_0x1a265f('0x1cd'),'Ctrl-U':'undoSelection','Shift-Ctrl-U':'redoSelection','Alt-U':'redoSelection','fallthrough':'basic'},_0x253397['emacsy']={'Ctrl-F':_0x1a265f('0xaa8'),'Ctrl-B':_0x1a265f('0x10ee'),'Ctrl-P':_0x1a265f('0xa5a'),'Ctrl-N':_0x1a265f('0x625'),'Alt-F':'goWordRight','Alt-B':_0x1a265f('0xc2c'),'Ctrl-A':'goLineStart','Ctrl-E':_0x1a265f('0x508'),'Ctrl-V':_0x1a265f('0xfd6'),'Shift-Ctrl-V':_0x1a265f('0xe61'),'Ctrl-D':_0x1a265f('0xb0b'),'Ctrl-H':'delCharBefore','Alt-D':_0x1a265f('0x3f2'),'Alt-Backspace':_0x1a265f('0xc59'),'Ctrl-K':_0x1a265f('0xc76'),'Ctrl-T':_0x1a265f('0x7ed'),'Ctrl-O':_0x1a265f('0xc55')},_0x253397[_0x1a265f('0x499')]={'Cmd-A':_0x1a265f('0x53f'),'Cmd-D':_0x1a265f('0x2f7'),'Cmd-Z':_0x1a265f('0x59'),'Shift-Cmd-Z':_0x1a265f('0xe17'),'Cmd-Y':_0x1a265f('0xe17'),'Cmd-Home':'goDocStart','Cmd-Up':'goDocStart','Cmd-End':_0x1a265f('0x29e'),'Cmd-Down':'goDocEnd','Alt-Left':_0x1a265f('0xf44'),'Alt-Right':'goGroupRight','Cmd-Left':_0x1a265f('0xb73'),'Cmd-Right':_0x1a265f('0x747'),'Alt-Backspace':'delGroupBefore','Ctrl-Alt-Backspace':_0x1a265f('0x9a3'),'Alt-Delete':_0x1a265f('0x9a3'),'Cmd-S':_0x1a265f('0xb6'),'Cmd-F':'find','Cmd-G':'findNext','Shift-Cmd-G':_0x1a265f('0xe3b'),'Cmd-Alt-F':_0x1a265f('0xd06'),'Shift-Cmd-Alt-F':'replaceAll','Cmd-[':'indentLess','Cmd-]':_0x1a265f('0x1cd'),'Cmd-Backspace':'delWrappedLineLeft','Cmd-Delete':_0x1a265f('0x4e3'),'Cmd-U':'undoSelection','Shift-Cmd-U':_0x1a265f('0x172'),'Ctrl-Up':_0x1a265f('0x277'),'Ctrl-Down':_0x1a265f('0x29e'),'fallthrough':[_0x1a265f('0x7bc'),_0x1a265f('0x690')]},_0x253397[_0x1a265f('0xf5f')]=_0x182eee?_0x253397[_0x1a265f('0x499')]:_0x253397['pcDefault'];var _0x33fa02={'selectAll':_0x2f49a1,'singleSelection':function(_0xda980a){var _0x117832=_0x1a265f;return _0xda980a[_0x117832('0x10e3')](_0xda980a[_0x117832('0xbb7')](_0x117832('0xd18')),_0xda980a[_0x117832('0xbb7')](_0x117832('0x116a')),_0x135890);},'killLine':function(_0x2c328c){return _0x4de126(_0x2c328c,function(_0xff435f){var _0x5c6794=_0x5376;if(_0xff435f[_0x5c6794('0x1d4')]()){var _0x4f7fd1=_0x1964d4(_0x2c328c['doc'],_0xff435f[_0x5c6794('0x116a')][_0x5c6794('0x860')])[_0x5c6794('0x5b2')]['length'];return _0xff435f[_0x5c6794('0x116a')]['ch']==_0x4f7fd1&&_0xff435f[_0x5c6794('0x116a')][_0x5c6794('0x860')]<_0x2c328c[_0x5c6794('0x4b6')]()?{'from':_0xff435f[_0x5c6794('0x116a')],'to':_0x3de23f(_0xff435f[_0x5c6794('0x116a')][_0x5c6794('0x860')]+0x1,0x0)}:{'from':_0xff435f[_0x5c6794('0x116a')],'to':_0x3de23f(_0xff435f['head'][_0x5c6794('0x860')],_0x4f7fd1)};}return{'from':_0xff435f[_0x5c6794('0x1161')](),'to':_0xff435f['to']()};});},'deleteLine':function(_0x2de65b){return _0x4de126(_0x2de65b,function(_0x190796){var _0x57b821=_0x5376;return{'from':_0x3de23f(_0x190796['from']()['line'],0x0),'to':_0x11e028(_0x2de65b[_0x57b821('0x481')],_0x3de23f(_0x190796['to']()['line']+0x1,0x0))};});},'delLineLeft':function(_0x226557){return _0x4de126(_0x226557,function(_0x35ec3f){var _0x36fcc7=_0x5376;return{'from':_0x3de23f(_0x35ec3f['from']()[_0x36fcc7('0x860')],0x0),'to':_0x35ec3f['from']()};});},'delWrappedLineLeft':function(_0x6a2824){return _0x4de126(_0x6a2824,function(_0x5492db){var _0x3c6422=_0x5376,_0x195d40=_0x6a2824[_0x3c6422('0x516')](_0x5492db[_0x3c6422('0x116a')],_0x3c6422('0x26c'))[_0x3c6422('0x5b')]+0x5;return{'from':_0x6a2824['coordsChar']({'left':0x0,'top':_0x195d40},_0x3c6422('0x26c')),'to':_0x5492db[_0x3c6422('0x1161')]()};});},'delWrappedLineRight':function(_0x1ec6c7){return _0x4de126(_0x1ec6c7,function(_0x985c11){var _0xd0aa39=_0x5376,_0x4245b4=_0x1ec6c7['charCoords'](_0x985c11[_0xd0aa39('0x116a')],_0xd0aa39('0x26c'))['top']+0x5,_0x4ea2d1=_0x1ec6c7[_0xd0aa39('0xce9')]({'left':_0x1ec6c7['display'][_0xd0aa39('0x54a')]['offsetWidth']+0x64,'top':_0x4245b4},_0xd0aa39('0x26c'));return{'from':_0x985c11[_0xd0aa39('0x1161')](),'to':_0x4ea2d1};});},'undo':function(_0x4c6813){var _0x46c925=_0x1a265f;return _0x4c6813[_0x46c925('0x59')]();},'redo':function(_0x10b494){var _0x5b063c=_0x1a265f;return _0x10b494[_0x5b063c('0xe17')]();},'undoSelection':function(_0x1f2cd2){var _0x3a3979=_0x1a265f;return _0x1f2cd2[_0x3a3979('0xc91')]();},'redoSelection':function(_0x6b2a3){var _0x28e08d=_0x1a265f;return _0x6b2a3[_0x28e08d('0x172')]();},'goDocStart':function(_0x39a81a){var _0x5c1996=_0x1a265f;return _0x39a81a[_0x5c1996('0xf1c')](_0x3de23f(_0x39a81a['firstLine'](),0x0));},'goDocEnd':function(_0x56cf2a){var _0x2ca807=_0x1a265f;return _0x56cf2a[_0x2ca807('0xf1c')](_0x3de23f(_0x56cf2a[_0x2ca807('0x4b6')]()));},'goLineStart':function(_0x145627){var _0x44de1e=_0x1a265f;return _0x145627[_0x44de1e('0x5')](function(_0x4dc35c){var _0x4b0d93=_0x44de1e;return _0x242884(_0x145627,_0x4dc35c[_0x4b0d93('0x116a')][_0x4b0d93('0x860')]);},{'origin':_0x44de1e('0x2b4'),'bias':0x1});},'goLineStartSmart':function(_0x279ceb){var _0x5587a1=_0x1a265f;return _0x279ceb[_0x5587a1('0x5')](function(_0x47ea2f){return _0x1d4061(_0x279ceb,_0x47ea2f['head']);},{'origin':_0x5587a1('0x2b4'),'bias':0x1});},'goLineEnd':function(_0x213a38){var _0x52a020=_0x1a265f;return _0x213a38[_0x52a020('0x5')](function(_0xc62cc0){var _0x10e0dc=_0x52a020;return function(_0x55758a,_0xd286e8){var _0x2ee428=_0x5376,_0x24186d=_0x1964d4(_0x55758a[_0x2ee428('0x481')],_0xd286e8),_0x56d5b4=function(_0x1cd733){for(var _0x335ca5;_0x335ca5=_0x37ab89(_0x1cd733);)_0x1cd733=_0x335ca5['find'](0x1,!0x0)['line'];return _0x1cd733;}(_0x24186d);return _0x56d5b4!=_0x24186d&&(_0xd286e8=_0x432947(_0x56d5b4)),_0x28f4ab(!0x0,_0x55758a,_0x24186d,_0xd286e8,-0x1);}(_0x213a38,_0xc62cc0[_0x10e0dc('0x116a')][_0x10e0dc('0x860')]);},{'origin':_0x52a020('0x2b4'),'bias':-0x1});},'goLineRight':function(_0x5897e1){var _0x517d13=_0x1a265f;return _0x5897e1[_0x517d13('0x5')](function(_0x3f2dc9){var _0x544715=_0x517d13,_0x3b952a=_0x5897e1['cursorCoords'](_0x3f2dc9[_0x544715('0x116a')],_0x544715('0x26c'))[_0x544715('0x5b')]+0x5;return _0x5897e1[_0x544715('0xce9')]({'left':_0x5897e1['display'][_0x544715('0x54a')]['offsetWidth']+0x64,'top':_0x3b952a},'div');},_0x2a9257);},'goLineLeft':function(_0x271731){var _0x30b93d=_0x1a265f;return _0x271731[_0x30b93d('0x5')](function(_0x24bf2f){var _0x4e3dfe=_0x30b93d,_0xbacf89=_0x271731[_0x4e3dfe('0x1084')](_0x24bf2f[_0x4e3dfe('0x116a')],_0x4e3dfe('0x26c'))[_0x4e3dfe('0x5b')]+0x5;return _0x271731[_0x4e3dfe('0xce9')]({'left':0x0,'top':_0xbacf89},_0x4e3dfe('0x26c'));},_0x2a9257);},'goLineLeftSmart':function(_0x2ed1f9){var _0x588b7d=_0x1a265f;return _0x2ed1f9[_0x588b7d('0x5')](function(_0x22a9e5){var _0x58b913=_0x588b7d,_0x101f49=_0x2ed1f9[_0x58b913('0x1084')](_0x22a9e5[_0x58b913('0x116a')],_0x58b913('0x26c'))[_0x58b913('0x5b')]+0x5,_0xf6db9a=_0x2ed1f9['coordsChar']({'left':0x0,'top':_0x101f49},_0x58b913('0x26c'));return _0xf6db9a['ch']<_0x2ed1f9[_0x58b913('0xfca')](_0xf6db9a[_0x58b913('0x860')])[_0x58b913('0x381')](/\S/)?_0x1d4061(_0x2ed1f9,_0x22a9e5['head']):_0xf6db9a;},_0x2a9257);},'goLineUp':function(_0x5d1873){var _0x4ac5eb=_0x1a265f;return _0x5d1873[_0x4ac5eb('0xb59')](-0x1,_0x4ac5eb('0x860'));},'goLineDown':function(_0x3c680a){var _0xad52a7=_0x1a265f;return _0x3c680a[_0xad52a7('0xb59')](0x1,_0xad52a7('0x860'));},'goPageUp':function(_0x46bef6){var _0x758601=_0x1a265f;return _0x46bef6[_0x758601('0xb59')](-0x1,_0x758601('0xbc8'));},'goPageDown':function(_0x29c377){var _0x3cd0ba=_0x1a265f;return _0x29c377[_0x3cd0ba('0xb59')](0x1,_0x3cd0ba('0xbc8'));},'goCharLeft':function(_0x5756cf){return _0x5756cf['moveH'](-0x1,'char');},'goCharRight':function(_0x27b2ea){var _0x26bce8=_0x1a265f;return _0x27b2ea['moveH'](0x1,_0x26bce8('0xa59'));},'goColumnLeft':function(_0x31e082){var _0x1ce08a=_0x1a265f;return _0x31e082['moveH'](-0x1,_0x1ce08a('0x26a'));},'goColumnRight':function(_0x206fee){var _0x15ca1d=_0x1a265f;return _0x206fee[_0x15ca1d('0xbf9')](0x1,_0x15ca1d('0x26a'));},'goWordLeft':function(_0x368e11){var _0x1f756a=_0x1a265f;return _0x368e11[_0x1f756a('0xbf9')](-0x1,_0x1f756a('0xe0'));},'goGroupRight':function(_0x3514b1){var _0x3ecc46=_0x1a265f;return _0x3514b1[_0x3ecc46('0xbf9')](0x1,_0x3ecc46('0x482'));},'goGroupLeft':function(_0x35b885){var _0x33d3dd=_0x1a265f;return _0x35b885[_0x33d3dd('0xbf9')](-0x1,_0x33d3dd('0x482'));},'goWordRight':function(_0x1b748f){var _0x2bc5a8=_0x1a265f;return _0x1b748f[_0x2bc5a8('0xbf9')](0x1,_0x2bc5a8('0xe0'));},'delCharBefore':function(_0x45d63f){var _0x5eb17e=_0x1a265f;return _0x45d63f['deleteH'](-0x1,_0x5eb17e('0x212'));},'delCharAfter':function(_0x1ca1b1){var _0x37a295=_0x1a265f;return _0x1ca1b1[_0x37a295('0x330')](0x1,_0x37a295('0xa59'));},'delWordBefore':function(_0x249683){var _0x52125b=_0x1a265f;return _0x249683[_0x52125b('0x330')](-0x1,_0x52125b('0xe0'));},'delWordAfter':function(_0x5806ff){var _0x313a47=_0x1a265f;return _0x5806ff[_0x313a47('0x330')](0x1,_0x313a47('0xe0'));},'delGroupBefore':function(_0x1b11ed){var _0x26bc4b=_0x1a265f;return _0x1b11ed[_0x26bc4b('0x330')](-0x1,_0x26bc4b('0x482'));},'delGroupAfter':function(_0x4f04c3){var _0x2002d0=_0x1a265f;return _0x4f04c3[_0x2002d0('0x330')](0x1,_0x2002d0('0x482'));},'indentAuto':function(_0x97a06){var _0x17bf9f=_0x1a265f;return _0x97a06[_0x17bf9f('0x6b8')]('smart');},'indentMore':function(_0x50c325){return _0x50c325['indentSelection']('add');},'indentLess':function(_0x74df8f){var _0x11a4a1=_0x1a265f;return _0x74df8f[_0x11a4a1('0x6b8')](_0x11a4a1('0xb84'));},'insertTab':function(_0x4589ea){return _0x4589ea['replaceSelection']('\x09');},'insertSoftTab':function(_0x3cc18f){var _0x66b8ee=_0x1a265f;for(var _0x316522=[],_0x53093a=_0x3cc18f[_0x66b8ee('0x5c')](),_0x315ddd=_0x3cc18f[_0x66b8ee('0x29d')][_0x66b8ee('0xad4')],_0x5aeb37=0x0;_0x5aeb37<_0x53093a[_0x66b8ee('0x13')];_0x5aeb37++){var _0x21b748=_0x53093a[_0x5aeb37]['from'](),_0x30d16b=_0x213d1d(_0x3cc18f[_0x66b8ee('0xfca')](_0x21b748[_0x66b8ee('0x860')]),_0x21b748['ch'],_0x315ddd);_0x316522['push'](_0x4ca766(_0x315ddd-_0x30d16b%_0x315ddd));}_0x3cc18f[_0x66b8ee('0x6')](_0x316522);},'defaultTab':function(_0x37fa06){var _0x2e285f=_0x1a265f;_0x37fa06[_0x2e285f('0x8e8')]()?_0x37fa06[_0x2e285f('0x6b8')]('add'):_0x37fa06[_0x2e285f('0x1162')](_0x2e285f('0xac'));},'transposeChars':function(_0x2e292d){return _0x39976b(_0x2e292d,function(){var _0x505f56=_0x5376;for(var _0x2df052=_0x2e292d[_0x505f56('0x5c')](),_0x39be21=[],_0xef9b47=0x0;_0xef9b47<_0x2df052[_0x505f56('0x13')];_0xef9b47++)if(_0x2df052[_0xef9b47][_0x505f56('0x1d4')]()){var _0x452eab=_0x2df052[_0xef9b47]['head'],_0x410606=_0x1964d4(_0x2e292d[_0x505f56('0x481')],_0x452eab[_0x505f56('0x860')])[_0x505f56('0x5b2')];if(_0x410606){if(_0x452eab['ch']==_0x410606[_0x505f56('0x13')]&&(_0x452eab=new _0x3de23f(_0x452eab[_0x505f56('0x860')],_0x452eab['ch']-0x1)),_0x452eab['ch']>0x0)_0x452eab=new _0x3de23f(_0x452eab[_0x505f56('0x860')],_0x452eab['ch']+0x1),_0x2e292d[_0x505f56('0x10c8')](_0x410606['charAt'](_0x452eab['ch']-0x1)+_0x410606[_0x505f56('0xcaf')](_0x452eab['ch']-0x2),_0x3de23f(_0x452eab['line'],_0x452eab['ch']-0x2),_0x452eab,_0x505f56('0x888'));else{if(_0x452eab[_0x505f56('0x860')]>_0x2e292d[_0x505f56('0x481')][_0x505f56('0x3f0')]){var _0x255ac0=_0x1964d4(_0x2e292d['doc'],_0x452eab[_0x505f56('0x860')]-0x1)[_0x505f56('0x5b2')];_0x255ac0&&(_0x452eab=new _0x3de23f(_0x452eab[_0x505f56('0x860')],0x1),_0x2e292d['replaceRange'](_0x410606[_0x505f56('0xcaf')](0x0)+_0x2e292d[_0x505f56('0x481')]['lineSeparator']()+_0x255ac0[_0x505f56('0xcaf')](_0x255ac0[_0x505f56('0x13')]-0x1),_0x3de23f(_0x452eab[_0x505f56('0x860')]-0x1,_0x255ac0[_0x505f56('0x13')]-0x1),_0x452eab,_0x505f56('0x888')));}}}_0x39be21[_0x505f56('0x91b')](new _0x4d2b0d(_0x452eab,_0x452eab));}_0x2e292d['setSelections'](_0x39be21);});},'newlineAndIndent':function(_0x40a64b){return _0x39976b(_0x40a64b,function(){var _0x5df0bb=_0x5376;for(var _0x246794=_0x40a64b['listSelections'](),_0x31009b=_0x246794[_0x5df0bb('0x13')]-0x1;_0x31009b>=0x0;_0x31009b--)_0x40a64b[_0x5df0bb('0x10c8')](_0x40a64b['doc'][_0x5df0bb('0x5a5')](),_0x246794[_0x31009b][_0x5df0bb('0xd18')],_0x246794[_0x31009b][_0x5df0bb('0x116a')],_0x5df0bb('0xc09'));_0x246794=_0x40a64b['listSelections']();for(var _0x263e1d=0x0;_0x263e1d<_0x246794[_0x5df0bb('0x13')];_0x263e1d++)_0x40a64b['indentLine'](_0x246794[_0x263e1d][_0x5df0bb('0x1161')]()[_0x5df0bb('0x860')],null,!0x0);_0x3b2a9(_0x40a64b);});},'openLine':function(_0x2bd7bf){return _0x2bd7bf['replaceSelection']('\x0a','start');},'toggleOverwrite':function(_0xea89f5){return _0xea89f5['toggleOverwrite']();}};function _0x242884(_0x41080e,_0x4308c6){var _0x703811=_0x1a265f,_0x53e2a2=_0x1964d4(_0x41080e[_0x703811('0x481')],_0x4308c6),_0x5e5787=_0xa6d8(_0x53e2a2);return _0x5e5787!=_0x53e2a2&&(_0x4308c6=_0x432947(_0x5e5787)),_0x28f4ab(!0x0,_0x41080e,_0x5e5787,_0x4308c6,0x1);}function _0x1d4061(_0x3d8480,_0x590ef7){var _0x423880=_0x1a265f,_0x492ea4=_0x242884(_0x3d8480,_0x590ef7[_0x423880('0x860')]),_0x3a24de=_0x1964d4(_0x3d8480[_0x423880('0x481')],_0x492ea4[_0x423880('0x860')]),_0x38b8c3=_0x30ca79(_0x3a24de,_0x3d8480[_0x423880('0x481')]['direction']);if(!_0x38b8c3||0x0==_0x38b8c3[0x0][_0x423880('0x555')]){var _0x13cc45=Math[_0x423880('0xa0d')](_0x492ea4['ch'],_0x3a24de[_0x423880('0x5b2')][_0x423880('0x381')](/\S/)),_0x279f25=_0x590ef7[_0x423880('0x860')]==_0x492ea4[_0x423880('0x860')]&&_0x590ef7['ch']<=_0x13cc45&&_0x590ef7['ch'];return _0x3de23f(_0x492ea4[_0x423880('0x860')],_0x279f25?0x0:_0x13cc45,_0x492ea4[_0x423880('0xce7')]);}return _0x492ea4;}function _0x572208(_0x19f2b0,_0x2da2b5,_0x356db2){var _0x194e19=_0x1a265f;if('string'==typeof _0x2da2b5&&!(_0x2da2b5=_0x33fa02[_0x2da2b5]))return!0x1;_0x19f2b0['display']['input'][_0x194e19('0x4be')]();var _0x496235=_0x19f2b0[_0x194e19('0x13d')][_0x194e19('0xf30')],_0x3eb366=!0x1;try{_0x19f2b0['isReadOnly']()&&(_0x19f2b0[_0x194e19('0x55d')][_0x194e19('0x4e4')]=!0x0),_0x356db2&&(_0x19f2b0[_0x194e19('0x13d')][_0x194e19('0xf30')]=!0x1),_0x3eb366=_0x2da2b5(_0x19f2b0)!=_0x3d5a0e;}finally{_0x19f2b0[_0x194e19('0x13d')][_0x194e19('0xf30')]=_0x496235,_0x19f2b0[_0x194e19('0x55d')][_0x194e19('0x4e4')]=!0x1;}return _0x3eb366;}var _0x45ad36=new _0x4e4ea8();function _0x4dc250(_0x597aef,_0x29ffb2,_0x2712db,_0x22c96b){var _0x204f4c=_0x1a265f,_0xfb49ee=_0x597aef[_0x204f4c('0x55d')]['keySeq'];if(_0xfb49ee){if(_0x42bf1a(_0x29ffb2))return _0x204f4c('0x77c');if(/\'$/[_0x204f4c('0x2c3')](_0x29ffb2)?_0x597aef[_0x204f4c('0x55d')][_0x204f4c('0x93d')]=null:_0x45ad36[_0x204f4c('0x24a')](0x32,function(){var _0x58437e=_0x204f4c;_0x597aef['state'][_0x58437e('0x93d')]==_0xfb49ee&&(_0x597aef[_0x58437e('0x55d')][_0x58437e('0x93d')]=null,_0x597aef[_0x58437e('0x13d')][_0x58437e('0x2f8')][_0x58437e('0x103')]());}),_0x30b815(_0x597aef,_0xfb49ee+'\x20'+_0x29ffb2,_0x2712db,_0x22c96b))return!0x0;}return _0x30b815(_0x597aef,_0x29ffb2,_0x2712db,_0x22c96b);}function _0x30b815(_0x3a97c6,_0x3642bb,_0x4bcecf,_0x144534){var _0x4a7c0e=_0x1a265f,_0x2c44a2=function(_0x3c20a6,_0x424a85,_0x1143a4){var _0x248b27=_0x5376;for(var _0x3a0206=0x0;_0x3a0206<_0x3c20a6['state']['keyMaps'][_0x248b27('0x13')];_0x3a0206++){var _0x39d0af=_0x299570(_0x424a85,_0x3c20a6[_0x248b27('0x55d')][_0x248b27('0x1d6')][_0x3a0206],_0x1143a4,_0x3c20a6);if(_0x39d0af)return _0x39d0af;}return _0x3c20a6[_0x248b27('0x29d')]['extraKeys']&&_0x299570(_0x424a85,_0x3c20a6[_0x248b27('0x29d')][_0x248b27('0xa5f')],_0x1143a4,_0x3c20a6)||_0x299570(_0x424a85,_0x3c20a6[_0x248b27('0x29d')][_0x248b27('0xd6c')],_0x1143a4,_0x3c20a6);}(_0x3a97c6,_0x3642bb,_0x144534);return _0x4a7c0e('0xbda')==_0x2c44a2&&(_0x3a97c6['state'][_0x4a7c0e('0x93d')]=_0x3642bb),_0x4a7c0e('0x77c')==_0x2c44a2&&_0x1a8e5b(_0x3a97c6,_0x4a7c0e('0x34e'),_0x3a97c6,_0x3642bb,_0x4bcecf),'handled'!=_0x2c44a2&&_0x4a7c0e('0xbda')!=_0x2c44a2||(_0x3de262(_0x4bcecf),_0x2c8d50(_0x3a97c6)),!!_0x2c44a2;}function _0x59d345(_0x290534,_0x102c7f){var _0x2a1e68=_0x1a265f,_0x364c7a=_0x32e99b(_0x102c7f,!0x0);return!!_0x364c7a&&(_0x102c7f[_0x2a1e68('0x8d3')]&&!_0x290534[_0x2a1e68('0x55d')][_0x2a1e68('0x93d')]?_0x4dc250(_0x290534,_0x2a1e68('0xd2')+_0x364c7a,_0x102c7f,function(_0x10cb47){return _0x572208(_0x290534,_0x10cb47,!0x0);})||_0x4dc250(_0x290534,_0x364c7a,_0x102c7f,function(_0x5800b4){var _0x515b94=_0x2a1e68;if('string'==typeof _0x5800b4?/^go[A-Z]/[_0x515b94('0x2c3')](_0x5800b4):_0x5800b4['motion'])return _0x572208(_0x290534,_0x5800b4);}):_0x4dc250(_0x290534,_0x364c7a,_0x102c7f,function(_0x58d1ea){return _0x572208(_0x290534,_0x58d1ea);}));}var _0x3d0078=null;function _0x11c2d8(_0x307c88){var _0x4c011c=_0x1a265f,_0x5e8feb=this;if(!(_0x307c88['target']&&_0x307c88[_0x4c011c('0x1d7')]!=_0x5e8feb[_0x4c011c('0x13d')][_0x4c011c('0x2f8')][_0x4c011c('0xfb8')]()||(_0x5e8feb[_0x4c011c('0x5ec')][_0x4c011c('0x7dd')]=_0x205be5(),_0x5c7334(_0x5e8feb,_0x307c88)))){_0x22bb28&&_0x217fe9<0xb&&0x1b==_0x307c88[_0x4c011c('0xba8')]&&(_0x307c88[_0x4c011c('0x8b')]=!0x1);var _0x384bd3=_0x307c88[_0x4c011c('0xba8')];_0x5e8feb[_0x4c011c('0x13d')][_0x4c011c('0xf30')]=0x10==_0x384bd3||_0x307c88[_0x4c011c('0x8d3')];var _0x2c3676=_0x59d345(_0x5e8feb,_0x307c88);_0x126de8&&(_0x3d0078=_0x2c3676?_0x384bd3:null,_0x2c3676||0x58!=_0x384bd3||_0x5234b9||!(_0x182eee?_0x307c88[_0x4c011c('0x345')]:_0x307c88[_0x4c011c('0xe8a')])||_0x5e8feb[_0x4c011c('0x514')]('',null,'cut')),_0x29b819&&!_0x182eee&&!_0x2c3676&&0x2e==_0x384bd3&&_0x307c88[_0x4c011c('0x8d3')]&&!_0x307c88[_0x4c011c('0xe8a')]&&document[_0x4c011c('0x1162')]&&document['execCommand']('cut'),0x12!=_0x384bd3||/\bCodeMirror-crosshair\b/[_0x4c011c('0x2c3')](_0x5e8feb[_0x4c011c('0x13d')]['lineDiv'][_0x4c011c('0x867')])||function(_0x15ec10){var _0x5b3db0=_0x4c011c,_0x5ca193=_0x15ec10[_0x5b3db0('0x13d')]['lineDiv'];function _0xa32e0(_0x592260){var _0x4ae59d=_0x5b3db0;0x12!=_0x592260['keyCode']&&_0x592260['altKey']||(_0x1ce61b(_0x5ca193,'CodeMirror-crosshair'),_0x4fabc1(document,_0x4ae59d('0x3bd'),_0xa32e0),_0x4fabc1(document,_0x4ae59d('0x38f'),_0xa32e0));}_0x379c51(_0x5ca193,_0x5b3db0('0xb5f')),_0x4d62f6(document,_0x5b3db0('0x3bd'),_0xa32e0),_0x4d62f6(document,_0x5b3db0('0x38f'),_0xa32e0);}(_0x5e8feb);}}function _0x2ffef2(_0x392d9c){var _0x11b298=_0x1a265f;0x10==_0x392d9c[_0x11b298('0xba8')]&&(this['doc']['sel']['shift']=!0x1),_0x5c7334(this,_0x392d9c);}function _0x422a87(_0x229552){var _0x4f9438=_0x1a265f,_0x3caa8f=this;if(!(_0x229552['target']&&_0x229552['target']!=_0x3caa8f['display']['input'][_0x4f9438('0xfb8')]()||_0x113cb1(_0x3caa8f[_0x4f9438('0x13d')],_0x229552)||_0x5c7334(_0x3caa8f,_0x229552)||_0x229552[_0x4f9438('0xe8a')]&&!_0x229552[_0x4f9438('0xa6b')]||_0x182eee&&_0x229552[_0x4f9438('0x345')])){var _0x264390=_0x229552['keyCode'],_0x189248=_0x229552[_0x4f9438('0xd2a')];if(_0x126de8&&_0x264390==_0x3d0078)return _0x3d0078=null,void _0x3de262(_0x229552);if(!_0x126de8||_0x229552[_0x4f9438('0xd45')]&&!(_0x229552['which']<0xa)||!_0x59d345(_0x3caa8f,_0x229552)){var _0x55e2f9=String[_0x4f9438('0x1006')](null==_0x189248?_0x264390:_0x189248);'\x08'!=_0x55e2f9&&(function(_0x82b7f3,_0x30022c,_0x57f55e){return _0x4dc250(_0x82b7f3,'\x27'+_0x57f55e+'\x27',_0x30022c,function(_0x3b3c79){return _0x572208(_0x82b7f3,_0x3b3c79,!0x0);});}(_0x3caa8f,_0x229552,_0x55e2f9)||_0x3caa8f['display']['input']['onKeyPress'](_0x229552));}}}var _0x117573,_0x5a3d74,_0x2e4025=function(_0xc37571,_0x5a30fc,_0x41cc80){this['time']=_0xc37571,this['pos']=_0x5a30fc,this['button']=_0x41cc80;};function _0x483451(_0x2d66b3){var _0x46dafb=_0x1a265f,_0x28fd29=this,_0x2b04ff=_0x28fd29[_0x46dafb('0x13d')];if(!(_0x5c7334(_0x28fd29,_0x2d66b3)||_0x2b04ff[_0x46dafb('0x41f')]&&_0x2b04ff[_0x46dafb('0x2f8')]['supportsTouch']())){if(_0x2b04ff[_0x46dafb('0x2f8')]['ensurePolled'](),_0x2b04ff[_0x46dafb('0xf30')]=_0x2d66b3[_0x46dafb('0x8d3')],_0x113cb1(_0x2b04ff,_0x2d66b3))_0x5683b3||(_0x2b04ff[_0x46dafb('0xf31')][_0x46dafb('0x4ab')]=!0x1,setTimeout(function(){var _0x4501b4=_0x46dafb;return _0x2b04ff[_0x4501b4('0xf31')][_0x4501b4('0x4ab')]=!0x0;},0x64));else{if(!_0x47ab7a(_0x28fd29,_0x2d66b3)){var _0x486e67=_0x55e6f5(_0x28fd29,_0x2d66b3),_0x2b5e6e=_0x50f57b(_0x2d66b3),_0x33d7e6=_0x486e67?function(_0x1e6209,_0x40dfa7){var _0x27e357=_0x46dafb,_0x7511d3=+new Date();return _0x5a3d74&&_0x5a3d74['compare'](_0x7511d3,_0x1e6209,_0x40dfa7)?(_0x117573=_0x5a3d74=null,_0x27e357('0x4ca')):_0x117573&&_0x117573[_0x27e357('0x2e7')](_0x7511d3,_0x1e6209,_0x40dfa7)?(_0x5a3d74=new _0x2e4025(_0x7511d3,_0x1e6209,_0x40dfa7),_0x117573=null,_0x27e357('0xf6b')):(_0x117573=new _0x2e4025(_0x7511d3,_0x1e6209,_0x40dfa7),_0x5a3d74=null,_0x27e357('0x5d0'));}(_0x486e67,_0x2b5e6e):_0x46dafb('0x5d0');window[_0x46dafb('0x7dd')](),0x1==_0x2b5e6e&&_0x28fd29['state']['selectingText']&&_0x28fd29['state'][_0x46dafb('0x776')](_0x2d66b3),_0x486e67&&function(_0x54e0e9,_0x469a33,_0x29090e,_0x52bc1b,_0x16b4ae){var _0x15db37=_0x46dafb,_0x47a39f=_0x15db37('0x7ef');return _0x15db37('0xf6b')==_0x52bc1b?_0x47a39f=_0x15db37('0x47b')+_0x47a39f:_0x15db37('0x4ca')==_0x52bc1b&&(_0x47a39f='Triple'+_0x47a39f),_0x4dc250(_0x54e0e9,_0x110a03(_0x47a39f=(0x1==_0x469a33?_0x15db37('0x22c'):0x2==_0x469a33?_0x15db37('0x282'):_0x15db37('0x40d'))+_0x47a39f,_0x16b4ae),_0x16b4ae,function(_0x2ac97c){var _0x19f3ce=_0x15db37;if(_0x19f3ce('0x2fd')==typeof _0x2ac97c&&(_0x2ac97c=_0x33fa02[_0x2ac97c]),!_0x2ac97c)return!0x1;var _0x57796c=!0x1;try{_0x54e0e9['isReadOnly']()&&(_0x54e0e9[_0x19f3ce('0x55d')]['suppressEdits']=!0x0),_0x57796c=_0x2ac97c(_0x54e0e9,_0x29090e)!=_0x3d5a0e;}finally{_0x54e0e9[_0x19f3ce('0x55d')]['suppressEdits']=!0x1;}return _0x57796c;});}(_0x28fd29,_0x2b5e6e,_0x486e67,_0x33d7e6,_0x2d66b3)||(0x1==_0x2b5e6e?_0x486e67?function(_0x2cf63f,_0x5155df,_0x281bc6,_0x32109b){var _0x2be421=_0x46dafb;_0x22bb28?setTimeout(_0x43826b(_0x22d291,_0x2cf63f),0x0):_0x2cf63f[_0x2be421('0x5ec')]['focus']=_0x205be5();var _0x4783f7,_0x19da94=function(_0x3cdfe4,_0x3a3be4,_0xe80e06){var _0x20448a=_0x2be421,_0x28c47d=_0x3cdfe4[_0x20448a('0xc95')](_0x20448a('0x107f')),_0x268fa9=_0x28c47d?_0x28c47d(_0x3cdfe4,_0x3a3be4,_0xe80e06):{};if(null==_0x268fa9[_0x20448a('0x627')]){var _0x1f8c83=_0x5d991d?_0xe80e06[_0x20448a('0x8d3')]&&_0xe80e06[_0x20448a('0x345')]:_0xe80e06[_0x20448a('0xa6b')];_0x268fa9[_0x20448a('0x627')]=_0x1f8c83?_0x20448a('0x10d9'):_0x20448a('0x5d0')==_0x3a3be4?'char':_0x20448a('0xf6b')==_0x3a3be4?'word':_0x20448a('0x860');}return(null==_0x268fa9[_0x20448a('0x73')]||_0x3cdfe4[_0x20448a('0x481')][_0x20448a('0x73')])&&(_0x268fa9[_0x20448a('0x73')]=_0x3cdfe4[_0x20448a('0x481')][_0x20448a('0x73')]||_0xe80e06[_0x20448a('0x8d3')]),null==_0x268fa9['addNew']&&(_0x268fa9['addNew']=_0x182eee?_0xe80e06[_0x20448a('0x345')]:_0xe80e06[_0x20448a('0xe8a')]),null==_0x268fa9['moveOnDrag']&&(_0x268fa9[_0x20448a('0x54')]=!(_0x182eee?_0xe80e06[_0x20448a('0xa6b')]:_0xe80e06[_0x20448a('0xe8a')])),_0x268fa9;}(_0x2cf63f,_0x281bc6,_0x32109b),_0x29264d=_0x2cf63f['doc'][_0x2be421('0x990')];_0x2cf63f[_0x2be421('0x29d')][_0x2be421('0x36a')]&&_0x230c29&&!_0x2cf63f[_0x2be421('0xec6')]()&&'single'==_0x281bc6&&(_0x4783f7=_0x29264d[_0x2be421('0x4cc')](_0x5155df))>-0x1&&(_0x1213af((_0x4783f7=_0x29264d[_0x2be421('0x1de')][_0x4783f7])[_0x2be421('0x1161')](),_0x5155df)<0x0||_0x5155df[_0x2be421('0xdc1')]>0x0)&&(_0x1213af(_0x4783f7['to'](),_0x5155df)>0x0||_0x5155df[_0x2be421('0xdc1')]<0x0)?function(_0x362496,_0xccff11,_0x426e12,_0x2fbe2d){var _0x451df9=_0x2be421,_0x3008e1=_0x362496[_0x451df9('0x13d')],_0x1063b4=!0x1,_0x104835=_0x53bb92(_0x362496,function(_0x4407ce){var _0x7b6151=_0x451df9;_0x5683b3&&(_0x3008e1[_0x7b6151('0xf31')][_0x7b6151('0x4ab')]=!0x1),_0x362496[_0x7b6151('0x55d')][_0x7b6151('0xe4a')]=!0x1,_0x4fabc1(_0x3008e1[_0x7b6151('0xfc3')][_0x7b6151('0xad5')],'mouseup',_0x104835),_0x4fabc1(_0x3008e1[_0x7b6151('0xfc3')][_0x7b6151('0xad5')],_0x7b6151('0x827'),_0x59fbf5),_0x4fabc1(_0x3008e1['scroller'],_0x7b6151('0xee8'),_0xb17894),_0x4fabc1(_0x3008e1['scroller'],_0x7b6151('0x5da'),_0x104835),_0x1063b4||(_0x3de262(_0x4407ce),_0x2fbe2d['addNew']||_0x3f97b9(_0x362496[_0x7b6151('0x481')],_0x426e12,null,null,_0x2fbe2d[_0x7b6151('0x73')]),_0x5683b3&&!_0x5ec12f||_0x22bb28&&0x9==_0x217fe9?setTimeout(function(){var _0x118706=_0x7b6151;_0x3008e1[_0x118706('0xfc3')][_0x118706('0xad5')]['body']['focus']({'preventScroll':!0x0}),_0x3008e1[_0x118706('0x2f8')][_0x118706('0x7dd')]();},0x14):_0x3008e1[_0x7b6151('0x2f8')][_0x7b6151('0x7dd')]());}),_0x59fbf5=function(_0x3dcb3c){var _0x5d4861=_0x451df9;_0x1063b4=_0x1063b4||Math[_0x5d4861('0x415')](_0xccff11['clientX']-_0x3dcb3c[_0x5d4861('0x693')])+Math[_0x5d4861('0x415')](_0xccff11[_0x5d4861('0x1e1')]-_0x3dcb3c[_0x5d4861('0x1e1')])>=0xa;},_0xb17894=function(){return _0x1063b4=!0x0;};_0x5683b3&&(_0x3008e1['scroller'][_0x451df9('0x4ab')]=!0x0),(_0x362496['state'][_0x451df9('0xe4a')]=_0x104835,_0x104835[_0x451df9('0x3cd')]=!_0x2fbe2d['moveOnDrag'],_0x3008e1[_0x451df9('0xf31')]['dragDrop']&&_0x3008e1[_0x451df9('0xf31')]['dragDrop']()),(_0x4d62f6(_0x3008e1[_0x451df9('0xfc3')]['ownerDocument'],_0x451df9('0x517'),_0x104835),_0x4d62f6(_0x3008e1[_0x451df9('0xfc3')][_0x451df9('0xad5')],_0x451df9('0x827'),_0x59fbf5),_0x4d62f6(_0x3008e1[_0x451df9('0xf31')],_0x451df9('0xee8'),_0xb17894),_0x4d62f6(_0x3008e1[_0x451df9('0xf31')],_0x451df9('0x5da'),_0x104835),_0x4dcb99(_0x362496),setTimeout(function(){var _0xb1a9e8=_0x451df9;return _0x3008e1[_0xb1a9e8('0x2f8')][_0xb1a9e8('0x7dd')]();},0x14));}(_0x2cf63f,_0x32109b,_0x5155df,_0x19da94):function(_0x3fbad3,_0x4280aa,_0x53ad25,_0x55c156){var _0x5ed75a=_0x2be421,_0x40db40=_0x3fbad3['display'],_0x46524=_0x3fbad3[_0x5ed75a('0x481')];_0x3de262(_0x4280aa);var _0x30f59b,_0xd6b526,_0x9de3f4=_0x46524['sel'],_0x3603c9=_0x9de3f4[_0x5ed75a('0x1de')];_0x55c156['addNew']&&!_0x55c156[_0x5ed75a('0x73')]?(_0xd6b526=_0x46524[_0x5ed75a('0x990')][_0x5ed75a('0x4cc')](_0x53ad25),_0x30f59b=_0xd6b526>-0x1?_0x3603c9[_0xd6b526]:new _0x4d2b0d(_0x53ad25,_0x53ad25)):(_0x30f59b=_0x46524[_0x5ed75a('0x990')][_0x5ed75a('0x1071')](),_0xd6b526=_0x46524['sel']['primIndex']);if(_0x5ed75a('0x10d9')==_0x55c156[_0x5ed75a('0x627')])_0x55c156[_0x5ed75a('0xe11')]||(_0x30f59b=new _0x4d2b0d(_0x53ad25,_0x53ad25)),_0x53ad25=_0x55e6f5(_0x3fbad3,_0x4280aa,!0x0,!0x0),_0xd6b526=-0x1;else{var _0xedf6af=_0xd53a0f(_0x3fbad3,_0x53ad25,_0x55c156[_0x5ed75a('0x627')]);_0x30f59b=_0x55c156[_0x5ed75a('0x73')]?_0x77763d(_0x30f59b,_0xedf6af[_0x5ed75a('0xd18')],_0xedf6af[_0x5ed75a('0x116a')],_0x55c156[_0x5ed75a('0x73')]):_0xedf6af;}_0x55c156[_0x5ed75a('0xe11')]?-0x1==_0xd6b526?(_0xd6b526=_0x3603c9[_0x5ed75a('0x13')],_0x704724(_0x46524,_0x474853(_0x3fbad3,_0x3603c9[_0x5ed75a('0xda9')]([_0x30f59b]),_0xd6b526),{'scroll':!0x1,'origin':_0x5ed75a('0x637')})):_0x3603c9['length']>0x1&&_0x3603c9[_0xd6b526][_0x5ed75a('0x1d4')]()&&_0x5ed75a('0xa59')==_0x55c156[_0x5ed75a('0x627')]&&!_0x55c156['extend']?(_0x704724(_0x46524,_0x474853(_0x3fbad3,_0x3603c9['slice'](0x0,_0xd6b526)[_0x5ed75a('0xda9')](_0x3603c9[_0x5ed75a('0xdf1')](_0xd6b526+0x1)),0x0),{'scroll':!0x1,'origin':'*mouse'}),_0x9de3f4=_0x46524[_0x5ed75a('0x990')]):_0x17a700(_0x46524,_0xd6b526,_0x30f59b,_0xa45b18):(_0xd6b526=0x0,_0x704724(_0x46524,new _0x447193([_0x30f59b],0x0),_0xa45b18),_0x9de3f4=_0x46524[_0x5ed75a('0x990')]);var _0x230dd4=_0x53ad25;function _0x4f9fe7(_0x478631){var _0x4cd222=_0x5ed75a;if(0x0!=_0x1213af(_0x230dd4,_0x478631)){if(_0x230dd4=_0x478631,_0x4cd222('0x10d9')==_0x55c156[_0x4cd222('0x627')]){for(var _0x39cf28=[],_0x1c96ee=_0x3fbad3[_0x4cd222('0x29d')]['tabSize'],_0x58080f=_0x213d1d(_0x1964d4(_0x46524,_0x53ad25['line'])['text'],_0x53ad25['ch'],_0x1c96ee),_0x4e8735=_0x213d1d(_0x1964d4(_0x46524,_0x478631[_0x4cd222('0x860')])[_0x4cd222('0x5b2')],_0x478631['ch'],_0x1c96ee),_0x30cab0=Math[_0x4cd222('0xd3f')](_0x58080f,_0x4e8735),_0x28b012=Math['max'](_0x58080f,_0x4e8735),_0x130143=Math[_0x4cd222('0xd3f')](_0x53ad25[_0x4cd222('0x860')],_0x478631['line']),_0x1f43f4=Math[_0x4cd222('0xd3f')](_0x3fbad3[_0x4cd222('0x4b6')](),Math[_0x4cd222('0xa0d')](_0x53ad25[_0x4cd222('0x860')],_0x478631[_0x4cd222('0x860')]));_0x130143<=_0x1f43f4;_0x130143++){var _0x4fc068=_0x1964d4(_0x46524,_0x130143)[_0x4cd222('0x5b2')],_0x4301c4=_0x1e7d22(_0x4fc068,_0x30cab0,_0x1c96ee);_0x30cab0==_0x28b012?_0x39cf28[_0x4cd222('0x91b')](new _0x4d2b0d(_0x3de23f(_0x130143,_0x4301c4),_0x3de23f(_0x130143,_0x4301c4))):_0x4fc068[_0x4cd222('0x13')]>_0x4301c4&&_0x39cf28[_0x4cd222('0x91b')](new _0x4d2b0d(_0x3de23f(_0x130143,_0x4301c4),_0x3de23f(_0x130143,_0x1e7d22(_0x4fc068,_0x28b012,_0x1c96ee))));}_0x39cf28[_0x4cd222('0x13')]||_0x39cf28['push'](new _0x4d2b0d(_0x53ad25,_0x53ad25)),_0x704724(_0x46524,_0x474853(_0x3fbad3,_0x9de3f4['ranges']['slice'](0x0,_0xd6b526)['concat'](_0x39cf28),_0xd6b526),{'origin':'*mouse','scroll':!0x1}),_0x3fbad3[_0x4cd222('0xf2c')](_0x478631);}else{var _0x5bc5d8,_0x27b3b3=_0x30f59b,_0x553c6d=_0xd53a0f(_0x3fbad3,_0x478631,_0x55c156[_0x4cd222('0x627')]),_0x21d34b=_0x27b3b3[_0x4cd222('0xd18')];_0x1213af(_0x553c6d['anchor'],_0x21d34b)>0x0?(_0x5bc5d8=_0x553c6d['head'],_0x21d34b=_0x315a51(_0x27b3b3[_0x4cd222('0x1161')](),_0x553c6d[_0x4cd222('0xd18')])):(_0x5bc5d8=_0x553c6d[_0x4cd222('0xd18')],_0x21d34b=_0x28826d(_0x27b3b3['to'](),_0x553c6d[_0x4cd222('0x116a')]));var _0x3972e7=_0x9de3f4['ranges']['slice'](0x0);_0x3972e7[_0xd6b526]=function(_0x565811,_0x34c95d){var _0x3b160a=_0x4cd222,_0x5a458d=_0x34c95d[_0x3b160a('0xd18')],_0x20dae0=_0x34c95d['head'],_0x1706b3=_0x1964d4(_0x565811[_0x3b160a('0x481')],_0x5a458d[_0x3b160a('0x860')]);if(0x0==_0x1213af(_0x5a458d,_0x20dae0)&&_0x5a458d['sticky']==_0x20dae0[_0x3b160a('0xce7')])return _0x34c95d;var _0x32cc2d=_0x30ca79(_0x1706b3);if(!_0x32cc2d)return _0x34c95d;var _0xbdcbcf=_0x267328(_0x32cc2d,_0x5a458d['ch'],_0x5a458d[_0x3b160a('0xce7')]),_0x4b7b30=_0x32cc2d[_0xbdcbcf];if(_0x4b7b30[_0x3b160a('0x1161')]!=_0x5a458d['ch']&&_0x4b7b30['to']!=_0x5a458d['ch'])return _0x34c95d;var _0x350839,_0x1bdc29=_0xbdcbcf+(_0x4b7b30[_0x3b160a('0x1161')]==_0x5a458d['ch']==(0x1!=_0x4b7b30['level'])?0x0:0x1);if(0x0==_0x1bdc29||_0x1bdc29==_0x32cc2d[_0x3b160a('0x13')])return _0x34c95d;if(_0x20dae0[_0x3b160a('0x860')]!=_0x5a458d[_0x3b160a('0x860')])_0x350839=(_0x20dae0['line']-_0x5a458d[_0x3b160a('0x860')])*(_0x3b160a('0x5f8')==_0x565811[_0x3b160a('0x481')][_0x3b160a('0x8de')]?0x1:-0x1)>0x0;else{var _0x3b71d8=_0x267328(_0x32cc2d,_0x20dae0['ch'],_0x20dae0[_0x3b160a('0xce7')]),_0x88a17a=_0x3b71d8-_0xbdcbcf||(_0x20dae0['ch']-_0x5a458d['ch'])*(0x1==_0x4b7b30[_0x3b160a('0x555')]?-0x1:0x1);_0x350839=_0x3b71d8==_0x1bdc29-0x1||_0x3b71d8==_0x1bdc29?_0x88a17a<0x0:_0x88a17a>0x0;}var _0x4d481d=_0x32cc2d[_0x1bdc29+(_0x350839?-0x1:0x0)],_0x1be9ea=_0x350839==(0x1==_0x4d481d[_0x3b160a('0x555')]),_0x5d8462=_0x1be9ea?_0x4d481d[_0x3b160a('0x1161')]:_0x4d481d['to'],_0x22abd3=_0x1be9ea?_0x3b160a('0x593'):_0x3b160a('0x4ec');return _0x5a458d['ch']==_0x5d8462&&_0x5a458d[_0x3b160a('0xce7')]==_0x22abd3?_0x34c95d:new _0x4d2b0d(new _0x3de23f(_0x5a458d['line'],_0x5d8462,_0x22abd3),_0x20dae0);}(_0x3fbad3,new _0x4d2b0d(_0x11e028(_0x46524,_0x21d34b),_0x5bc5d8)),_0x704724(_0x46524,_0x474853(_0x3fbad3,_0x3972e7,_0xd6b526),_0xa45b18);}}}var _0x439996=_0x40db40[_0x5ed75a('0xfc3')][_0x5ed75a('0x422')](),_0x4b6668=0x0;function _0x3886ac(_0x4b7b78){var _0x432556=_0x5ed75a;_0x3fbad3[_0x432556('0x55d')]['selectingText']=!0x1,_0x4b6668=0x1/0x0,_0x4b7b78&&(_0x3de262(_0x4b7b78),_0x40db40[_0x432556('0x2f8')][_0x432556('0x7dd')]()),_0x4fabc1(_0x40db40[_0x432556('0xfc3')]['ownerDocument'],_0x432556('0x827'),_0x11ed6d),_0x4fabc1(_0x40db40['wrapper']['ownerDocument'],_0x432556('0x517'),_0x782bba),_0x46524['history']['lastSelOrigin']=null;}var _0x11ed6d=_0x53bb92(_0x3fbad3,function(_0x51ba35){0x0!==_0x51ba35['buttons']&&_0x50f57b(_0x51ba35)?function _0x5045af(_0x4bda95){var _0x2d5d3b=_0x5376,_0x1136cb=++_0x4b6668,_0x143784=_0x55e6f5(_0x3fbad3,_0x4bda95,!0x0,_0x2d5d3b('0x10d9')==_0x55c156[_0x2d5d3b('0x627')]);if(_0x143784){if(0x0!=_0x1213af(_0x143784,_0x230dd4)){_0x3fbad3['curOp'][_0x2d5d3b('0x7dd')]=_0x205be5(),_0x4f9fe7(_0x143784);var _0x310eb0=_0x21ac22(_0x40db40,_0x46524);(_0x143784[_0x2d5d3b('0x860')]>=_0x310eb0['to']||_0x143784[_0x2d5d3b('0x860')]<_0x310eb0['from'])&&setTimeout(_0x53bb92(_0x3fbad3,function(){_0x4b6668==_0x1136cb&&_0x5045af(_0x4bda95);}),0x96);}else{var _0x19a3f9=_0x4bda95['clientY']<_0x439996[_0x2d5d3b('0x5b')]?-0x14:_0x4bda95['clientY']>_0x439996[_0x2d5d3b('0x9c2')]?0x14:0x0;_0x19a3f9&&setTimeout(_0x53bb92(_0x3fbad3,function(){var _0x541499=_0x2d5d3b;_0x4b6668==_0x1136cb&&(_0x40db40['scroller'][_0x541499('0x94d')]+=_0x19a3f9,_0x5045af(_0x4bda95));}),0x32);}}}(_0x51ba35):_0x3886ac(_0x51ba35);}),_0x782bba=_0x53bb92(_0x3fbad3,_0x3886ac);_0x3fbad3['state'][_0x5ed75a('0x776')]=_0x782bba,_0x4d62f6(_0x40db40[_0x5ed75a('0xfc3')][_0x5ed75a('0xad5')],_0x5ed75a('0x827'),_0x11ed6d),_0x4d62f6(_0x40db40[_0x5ed75a('0xfc3')][_0x5ed75a('0xad5')],_0x5ed75a('0x517'),_0x782bba);}(_0x2cf63f,_0x32109b,_0x5155df,_0x19da94);}(_0x28fd29,_0x486e67,_0x33d7e6,_0x2d66b3):_0x18ca14(_0x2d66b3)==_0x2b04ff[_0x46dafb('0xf31')]&&_0x3de262(_0x2d66b3):0x2==_0x2b5e6e?(_0x486e67&&_0x3f97b9(_0x28fd29[_0x46dafb('0x481')],_0x486e67),setTimeout(function(){var _0x2554be=_0x46dafb;return _0x2b04ff['input'][_0x2554be('0x7dd')]();},0x14)):0x3==_0x2b5e6e&&(_0x2a46fb?_0x28fd29[_0x46dafb('0x13d')][_0x46dafb('0x2f8')][_0x46dafb('0x8d')](_0x2d66b3):_0x4dcb99(_0x28fd29)));}}}}function _0xd53a0f(_0x55d9e8,_0x47ecb4,_0x4e0796){var _0xd8b8c7=_0x1a265f;if(_0xd8b8c7('0xa59')==_0x4e0796)return new _0x4d2b0d(_0x47ecb4,_0x47ecb4);if(_0xd8b8c7('0xe0')==_0x4e0796)return _0x55d9e8[_0xd8b8c7('0x899')](_0x47ecb4);if(_0xd8b8c7('0x860')==_0x4e0796)return new _0x4d2b0d(_0x3de23f(_0x47ecb4['line'],0x0),_0x11e028(_0x55d9e8[_0xd8b8c7('0x481')],_0x3de23f(_0x47ecb4[_0xd8b8c7('0x860')]+0x1,0x0)));var _0x3e19a0=_0x4e0796(_0x55d9e8,_0x47ecb4);return new _0x4d2b0d(_0x3e19a0[_0xd8b8c7('0x1161')],_0x3e19a0['to']);}function _0x1be9ca(_0x17e99f,_0x33dca9,_0x1e068f,_0x6d3e32){var _0x4b8ebc=_0x1a265f,_0x4f78de,_0x2a3ac5;if(_0x33dca9[_0x4b8ebc('0xda4')])_0x4f78de=_0x33dca9[_0x4b8ebc('0xda4')][0x0][_0x4b8ebc('0x693')],_0x2a3ac5=_0x33dca9[_0x4b8ebc('0xda4')][0x0][_0x4b8ebc('0x1e1')];else try{_0x4f78de=_0x33dca9[_0x4b8ebc('0x693')],_0x2a3ac5=_0x33dca9[_0x4b8ebc('0x1e1')];}catch(_0x223156){return!0x1;}if(_0x4f78de>=Math[_0x4b8ebc('0x6e3')](_0x17e99f[_0x4b8ebc('0x13d')]['gutters'][_0x4b8ebc('0x422')]()[_0x4b8ebc('0x94b')]))return!0x1;_0x6d3e32&&_0x3de262(_0x33dca9);var _0x163f13=_0x17e99f['display'],_0x420636=_0x163f13[_0x4b8ebc('0x54a')][_0x4b8ebc('0x422')]();if(_0x2a3ac5>_0x420636[_0x4b8ebc('0x9c2')]||!_0x452465(_0x17e99f,_0x1e068f))return _0x16e2c9(_0x33dca9);_0x2a3ac5-=_0x420636[_0x4b8ebc('0x5b')]-_0x163f13[_0x4b8ebc('0x37')];for(var _0xcee31d=0x0;_0xcee31d<_0x17e99f[_0x4b8ebc('0x13d')][_0x4b8ebc('0xf04')][_0x4b8ebc('0x13')];++_0xcee31d){var _0x3768d8=_0x163f13[_0x4b8ebc('0xef6')]['childNodes'][_0xcee31d];if(_0x3768d8&&_0x3768d8[_0x4b8ebc('0x422')]()[_0x4b8ebc('0x94b')]>=_0x4f78de)return _0x38db09(_0x17e99f,_0x1e068f,_0x17e99f,_0x1d0db2(_0x17e99f[_0x4b8ebc('0x481')],_0x2a3ac5),_0x17e99f[_0x4b8ebc('0x13d')][_0x4b8ebc('0xf04')][_0xcee31d]['className'],_0x33dca9),_0x16e2c9(_0x33dca9);}}function _0x47ab7a(_0xec3263,_0x668e9f){var _0x27135f=_0x1a265f;return _0x1be9ca(_0xec3263,_0x668e9f,_0x27135f('0x6d5'),!0x0);}function _0x4e52d4(_0x2e6722,_0x2fa516){var _0x387bb8=_0x1a265f;_0x113cb1(_0x2e6722['display'],_0x2fa516)||function(_0x404a48,_0x547ae7){var _0x20b734=_0x5376;if(!_0x452465(_0x404a48,_0x20b734('0xa5e')))return!0x1;return _0x1be9ca(_0x404a48,_0x547ae7,_0x20b734('0xa5e'),!0x1);}(_0x2e6722,_0x2fa516)||_0x5c7334(_0x2e6722,_0x2fa516,_0x387bb8('0x3be'))||_0x2a46fb||_0x2e6722[_0x387bb8('0x13d')][_0x387bb8('0x2f8')]['onContextMenu'](_0x2fa516);}function _0x460623(_0x416cbc){var _0x46ff0d=_0x1a265f;_0x416cbc[_0x46ff0d('0x13d')][_0x46ff0d('0xfc3')][_0x46ff0d('0x867')]=_0x416cbc['display'][_0x46ff0d('0xfc3')]['className']['replace'](/\s*cm-s-\S+/g,'')+_0x416cbc[_0x46ff0d('0x29d')]['theme'][_0x46ff0d('0xd06')](/(^|\s)\s*/g,'\x20cm-s-'),_0x4ccb63(_0x416cbc);}_0x2e4025[_0x1a265f('0xe02')][_0x1a265f('0x2e7')]=function(_0x251002,_0x4f4f98,_0x1a8add){var _0x4353aa=_0x1a265f;return this[_0x4353aa('0x23c')]+0x190>_0x251002&&0x0==_0x1213af(_0x4f4f98,this[_0x4353aa('0x9db')])&&_0x1a8add==this[_0x4353aa('0xa46')];};var _0x52e06b={'toString':function(){var _0x4ed0fd=_0x1a265f;return _0x4ed0fd('0x349');}},_0x89b525={},_0x451ca1={};function _0x26dcf2(_0x2ebd23,_0xd89c6a,_0x347357){var _0x57f8c0=_0x1a265f;if(!_0xd89c6a!=!(_0x347357&&_0x347357!=_0x52e06b)){var _0x44696f=_0x2ebd23[_0x57f8c0('0x13d')][_0x57f8c0('0x105')],_0xa4d489=_0xd89c6a?_0x4d62f6:_0x4fabc1;_0xa4d489(_0x2ebd23[_0x57f8c0('0x13d')][_0x57f8c0('0xf31')],'dragstart',_0x44696f[_0x57f8c0('0xa7e')]),_0xa4d489(_0x2ebd23[_0x57f8c0('0x13d')][_0x57f8c0('0xf31')],'dragenter',_0x44696f[_0x57f8c0('0x37a')]),_0xa4d489(_0x2ebd23['display']['scroller'],_0x57f8c0('0x50e'),_0x44696f['over']),_0xa4d489(_0x2ebd23[_0x57f8c0('0x13d')][_0x57f8c0('0xf31')],_0x57f8c0('0x34'),_0x44696f[_0x57f8c0('0x1f')]),_0xa4d489(_0x2ebd23[_0x57f8c0('0x13d')]['scroller'],_0x57f8c0('0x5da'),_0x44696f[_0x57f8c0('0x5da')]);}}function _0x28603c(_0x144359){var _0x20f454=_0x1a265f;_0x144359['options'][_0x20f454('0x215')]?(_0x379c51(_0x144359[_0x20f454('0x13d')][_0x20f454('0xfc3')],_0x20f454('0x83f')),_0x144359[_0x20f454('0x13d')][_0x20f454('0x68f')][_0x20f454('0xe81')][_0x20f454('0x106')]='',_0x144359[_0x20f454('0x13d')][_0x20f454('0x2e0')]=null):(_0x1ce61b(_0x144359['display'][_0x20f454('0xfc3')],_0x20f454('0x83f')),_0x3e9ea0(_0x144359)),_0x2c9072(_0x144359),_0x589d49(_0x144359),_0x4ccb63(_0x144359),setTimeout(function(){return _0x433520(_0x144359);},0x64);}function _0x11eb40(_0x38b1ba,_0x4ad319){var _0x4164c3=_0x1a265f,_0x227152=this;if(!(this instanceof _0x11eb40))return new _0x11eb40(_0x38b1ba,_0x4ad319);this[_0x4164c3('0x29d')]=_0x4ad319=_0x4ad319?_0x581885(_0x4ad319):{},_0x581885(_0x89b525,_0x4ad319,!0x1);var _0x95fcbc=_0x4ad319['value'];_0x4164c3('0x2fd')==typeof _0x95fcbc?_0x95fcbc=new _0x2bc8c4(_0x95fcbc,_0x4ad319['mode'],null,_0x4ad319[_0x4164c3('0x5a5')],_0x4ad319[_0x4164c3('0x8de')]):_0x4ad319['mode']&&(_0x95fcbc[_0x4164c3('0x3d9')]=_0x4ad319[_0x4164c3('0x1ab')]),this[_0x4164c3('0x481')]=_0x95fcbc;var _0x23a7f3=new _0x11eb40[(_0x4164c3('0x6f6'))][_0x4ad319[(_0x4164c3('0x105e'))]](this),_0x454fba=this[_0x4164c3('0x13d')]=new _0x44d0bc(_0x38b1ba,_0x95fcbc,_0x23a7f3,_0x4ad319);for(var _0x51ce2d in(_0x454fba[_0x4164c3('0xfc3')][_0x4164c3('0x486')]=this,_0x460623(this),_0x4ad319[_0x4164c3('0x215')]&&(this['display']['wrapper'][_0x4164c3('0x867')]+=_0x4164c3('0x2dd')),_0x2dae9f(this),this[_0x4164c3('0x55d')]={'keyMaps':[],'overlays':[],'modeGen':0x0,'overwrite':!0x1,'delayingBlurEvent':!0x1,'focused':!0x1,'suppressEdits':!0x1,'pasteIncoming':-0x1,'cutIncoming':-0x1,'selectingText':!0x1,'draggingText':!0x1,'highlight':new _0x4e4ea8(),'keySeq':null,'specialChars':null},_0x4ad319[_0x4164c3('0x355')]&&!_0x221ee3&&_0x454fba['input'][_0x4164c3('0x7dd')](),_0x22bb28&&_0x217fe9<0xb&&setTimeout(function(){var _0x1d05c3=_0x4164c3;return _0x227152[_0x1d05c3('0x13d')]['input']['reset'](!0x0);},0x14),function(_0x54b0b4){var _0x4c13d4=_0x4164c3,_0x5ab896=_0x54b0b4['display'];_0x4d62f6(_0x5ab896[_0x4c13d4('0xf31')],'mousedown',_0x53bb92(_0x54b0b4,_0x483451)),_0x4d62f6(_0x5ab896['scroller'],_0x4c13d4('0x9d0'),_0x22bb28&&_0x217fe9<0xb?_0x53bb92(_0x54b0b4,function(_0xa0eb34){var _0x27af6b=_0x4c13d4;if(!_0x5c7334(_0x54b0b4,_0xa0eb34)){var _0x45ba59=_0x55e6f5(_0x54b0b4,_0xa0eb34);if(_0x45ba59&&!_0x47ab7a(_0x54b0b4,_0xa0eb34)&&!_0x113cb1(_0x54b0b4['display'],_0xa0eb34)){_0x3de262(_0xa0eb34);var _0x39da76=_0x54b0b4['findWordAt'](_0x45ba59);_0x3f97b9(_0x54b0b4[_0x27af6b('0x481')],_0x39da76[_0x27af6b('0xd18')],_0x39da76[_0x27af6b('0x116a')]);}}}):function(_0x839667){return _0x5c7334(_0x54b0b4,_0x839667)||_0x3de262(_0x839667);}),(_0x4d62f6(_0x5ab896['scroller'],_0x4c13d4('0x3be'),function(_0x38cf49){return _0x4e52d4(_0x54b0b4,_0x38cf49);}),_0x4d62f6(_0x5ab896[_0x4c13d4('0x2f8')][_0x4c13d4('0xfb8')](),_0x4c13d4('0x3be'),function(_0x5066ab){var _0x5d8861=_0x4c13d4;_0x5ab896['scroller']['contains'](_0x5066ab[_0x5d8861('0x1d7')])||_0x4e52d4(_0x54b0b4,_0x5066ab);}));var _0x8e7e05,_0x3f1a3b={'end':0x0};function _0x140f78(){var _0x160bd5=_0x4c13d4;_0x5ab896[_0x160bd5('0x41f')]&&(_0x8e7e05=setTimeout(function(){var _0x562f95=_0x160bd5;return _0x5ab896[_0x562f95('0x41f')]=null;},0x3e8),(_0x3f1a3b=_0x5ab896[_0x160bd5('0x41f')])[_0x160bd5('0xcad')]=+new Date());}function _0x4f2105(_0x4e6386,_0x57f942){var _0x208e4c=_0x4c13d4;if(null==_0x57f942[_0x208e4c('0x10fb')])return!0x0;var _0x57b2a0=_0x57f942[_0x208e4c('0x10fb')]-_0x4e6386[_0x208e4c('0x10fb')],_0x4e5ecd=_0x57f942[_0x208e4c('0x5b')]-_0x4e6386['top'];return _0x57b2a0*_0x57b2a0+_0x4e5ecd*_0x4e5ecd>0x190;}_0x4d62f6(_0x5ab896['scroller'],_0x4c13d4('0x110b'),function(_0x5509f7){var _0x5e5186=_0x4c13d4;if(!_0x5c7334(_0x54b0b4,_0x5509f7)&&!function(_0x4ff7e4){var _0x4a7262=_0x5376;if(0x1!=_0x4ff7e4[_0x4a7262('0xda4')][_0x4a7262('0x13')])return!0x1;var _0x3cbc79=_0x4ff7e4['touches'][0x0];return _0x3cbc79['radiusX']<=0x1&&_0x3cbc79[_0x4a7262('0xde5')]<=0x1;}(_0x5509f7)&&!_0x47ab7a(_0x54b0b4,_0x5509f7)){_0x5ab896[_0x5e5186('0x2f8')][_0x5e5186('0x4be')](),clearTimeout(_0x8e7e05);var _0x48e613=+new Date();_0x5ab896[_0x5e5186('0x41f')]={'start':_0x48e613,'moved':!0x1,'prev':_0x48e613-_0x3f1a3b[_0x5e5186('0xcad')]<=0x12c?_0x3f1a3b:null},0x1==_0x5509f7[_0x5e5186('0xda4')][_0x5e5186('0x13')]&&(_0x5ab896['activeTouch']['left']=_0x5509f7[_0x5e5186('0xda4')][0x0][_0x5e5186('0x8b5')],_0x5ab896[_0x5e5186('0x41f')][_0x5e5186('0x5b')]=_0x5509f7['touches'][0x0]['pageY']);}}),_0x4d62f6(_0x5ab896['scroller'],_0x4c13d4('0x1085'),function(){var _0x414a51=_0x4c13d4;_0x5ab896[_0x414a51('0x41f')]&&(_0x5ab896[_0x414a51('0x41f')][_0x414a51('0x1e9')]=!0x0);}),_0x4d62f6(_0x5ab896['scroller'],'touchend',function(_0x5a94af){var _0x3371e5=_0x4c13d4,_0x1fc506=_0x5ab896['activeTouch'];if(_0x1fc506&&!_0x113cb1(_0x5ab896,_0x5a94af)&&null!=_0x1fc506['left']&&!_0x1fc506[_0x3371e5('0x1e9')]&&new Date()-_0x1fc506[_0x3371e5('0xa7e')]<0x12c){var _0x78ebe,_0x5a6c18=_0x54b0b4[_0x3371e5('0xce9')](_0x5ab896[_0x3371e5('0x41f')],_0x3371e5('0xbc8'));_0x78ebe=!_0x1fc506['prev']||_0x4f2105(_0x1fc506,_0x1fc506[_0x3371e5('0x1e5')])?new _0x4d2b0d(_0x5a6c18,_0x5a6c18):!_0x1fc506[_0x3371e5('0x1e5')][_0x3371e5('0x1e5')]||_0x4f2105(_0x1fc506,_0x1fc506[_0x3371e5('0x1e5')][_0x3371e5('0x1e5')])?_0x54b0b4['findWordAt'](_0x5a6c18):new _0x4d2b0d(_0x3de23f(_0x5a6c18['line'],0x0),_0x11e028(_0x54b0b4[_0x3371e5('0x481')],_0x3de23f(_0x5a6c18[_0x3371e5('0x860')]+0x1,0x0))),_0x54b0b4['setSelection'](_0x78ebe[_0x3371e5('0xd18')],_0x78ebe[_0x3371e5('0x116a')]),_0x54b0b4[_0x3371e5('0x7dd')](),_0x3de262(_0x5a94af);}_0x140f78();}),_0x4d62f6(_0x5ab896['scroller'],_0x4c13d4('0x102c'),_0x140f78),_0x4d62f6(_0x5ab896[_0x4c13d4('0xf31')],_0x4c13d4('0xeba'),function(){var _0x7b32df=_0x4c13d4;_0x5ab896[_0x7b32df('0xf31')][_0x7b32df('0x9d9')]&&(_0x3b60c2(_0x54b0b4,_0x5ab896[_0x7b32df('0xf31')][_0x7b32df('0x94d')]),_0x4faaac(_0x54b0b4,_0x5ab896['scroller']['scrollLeft'],!0x0),_0x38db09(_0x54b0b4,'scroll',_0x54b0b4));}),_0x4d62f6(_0x5ab896['scroller'],'mousewheel',function(_0x35d8e5){return _0xf15660(_0x54b0b4,_0x35d8e5);}),_0x4d62f6(_0x5ab896['scroller'],_0x4c13d4('0x95f'),function(_0x2bad76){return _0xf15660(_0x54b0b4,_0x2bad76);}),_0x4d62f6(_0x5ab896[_0x4c13d4('0xfc3')],_0x4c13d4('0xeba'),function(){var _0x2ff7fc=_0x4c13d4;return _0x5ab896[_0x2ff7fc('0xfc3')]['scrollTop']=_0x5ab896['wrapper'][_0x2ff7fc('0x37e')]=0x0;}),_0x5ab896['dragFunctions']={'enter':function(_0x505269){_0x5c7334(_0x54b0b4,_0x505269)||_0x28ee18(_0x505269);},'over':function(_0x174564){_0x5c7334(_0x54b0b4,_0x174564)||(!function(_0x66cb83,_0x49dec6){var _0x48b2fa=_0x5376,_0x44992d=_0x55e6f5(_0x66cb83,_0x49dec6);if(_0x44992d){var _0x5ee86b=document[_0x48b2fa('0x8a')]();_0x1724f5(_0x66cb83,_0x44992d,_0x5ee86b),_0x66cb83[_0x48b2fa('0x13d')][_0x48b2fa('0xc98')]||(_0x66cb83[_0x48b2fa('0x13d')][_0x48b2fa('0xc98')]=_0x4aeabd('div',null,_0x48b2fa('0x4d4')),_0x66cb83[_0x48b2fa('0x13d')][_0x48b2fa('0x1f5')][_0x48b2fa('0xfb')](_0x66cb83[_0x48b2fa('0x13d')][_0x48b2fa('0xc98')],_0x66cb83[_0x48b2fa('0x13d')][_0x48b2fa('0x8ed')])),_0x221945(_0x66cb83[_0x48b2fa('0x13d')][_0x48b2fa('0xc98')],_0x5ee86b);}}(_0x54b0b4,_0x174564),_0x28ee18(_0x174564));},'start':function(_0x3dce71){return function(_0x3f5ce5,_0x19b660){var _0xdaabd1=_0x5376;if(_0x22bb28&&(!_0x3f5ce5[_0xdaabd1('0x55d')]['draggingText']||+new Date()-_0x92d24e<0x64))_0x28ee18(_0x19b660);else{if(!_0x5c7334(_0x3f5ce5,_0x19b660)&&!_0x113cb1(_0x3f5ce5[_0xdaabd1('0x13d')],_0x19b660)&&(_0x19b660[_0xdaabd1('0xb07')][_0xdaabd1('0x86a')](_0xdaabd1('0xc71'),_0x3f5ce5['getSelection']()),_0x19b660['dataTransfer']['effectAllowed']=_0xdaabd1('0xccf'),_0x19b660[_0xdaabd1('0xb07')][_0xdaabd1('0x7e2')]&&!_0x5ec12f)){var _0x2c2100=_0x4aeabd(_0xdaabd1('0x9b2'),null,null,'position:\x20fixed;\x20left:\x200;\x20top:\x200;');_0x2c2100['src']=_0xdaabd1('0x433'),_0x126de8&&(_0x2c2100['width']=_0x2c2100[_0xdaabd1('0x27b')]=0x1,_0x3f5ce5['display']['wrapper'][_0xdaabd1('0x657')](_0x2c2100),_0x2c2100[_0xdaabd1('0x1066')]=_0x2c2100[_0xdaabd1('0xf02')]),_0x19b660[_0xdaabd1('0xb07')][_0xdaabd1('0x7e2')](_0x2c2100,0x0,0x0),_0x126de8&&_0x2c2100[_0xdaabd1('0x9cd')][_0xdaabd1('0xf93')](_0x2c2100);}}}(_0x54b0b4,_0x3dce71);},'drop':_0x53bb92(_0x54b0b4,_0x7c840b),'leave':function(_0x535b90){_0x5c7334(_0x54b0b4,_0x535b90)||_0x3d0149(_0x54b0b4);}};var _0x1021e6=_0x5ab896['input']['getField']();_0x4d62f6(_0x1021e6,_0x4c13d4('0x3bd'),function(_0x4c3725){var _0x5404ff=_0x4c13d4;return _0x2ffef2[_0x5404ff('0xfd2')](_0x54b0b4,_0x4c3725);}),_0x4d62f6(_0x1021e6,_0x4c13d4('0xe46'),_0x53bb92(_0x54b0b4,_0x11c2d8)),_0x4d62f6(_0x1021e6,_0x4c13d4('0xaf0'),_0x53bb92(_0x54b0b4,_0x422a87)),_0x4d62f6(_0x1021e6,'focus',function(_0x517c94){return _0x3fee13(_0x54b0b4,_0x517c94);}),_0x4d62f6(_0x1021e6,_0x4c13d4('0xba2'),function(_0x144f12){return _0x3d07e0(_0x54b0b4,_0x144f12);});}(this),_0x50265e(),_0x4b83c7(this),this[_0x4164c3('0x5ec')]['forceUpdate']=!0x0,_0x52696a(this,_0x95fcbc),_0x4ad319[_0x4164c3('0x355')]&&!_0x221ee3||this[_0x4164c3('0xffb')]()?setTimeout(function(){var _0x409310=_0x4164c3;_0x227152['hasFocus']()&&!_0x227152[_0x409310('0x55d')]['focused']&&_0x3fee13(_0x227152);},0x14):_0x3d07e0(this),_0x451ca1))_0x451ca1[_0x4164c3('0xe9c')](_0x51ce2d)&&_0x451ca1[_0x51ce2d](this,_0x4ad319[_0x51ce2d],_0x52e06b);_0x5e5abb(this),_0x4ad319[_0x4164c3('0xb6b')]&&_0x4ad319[_0x4164c3('0xb6b')](this);for(var _0x19201b=0x0;_0x19201b<_0x5b64bc[_0x4164c3('0x13')];++_0x19201b)_0x5b64bc[_0x19201b](this);_0x381b4d(this),_0x5683b3&&_0x4ad319[_0x4164c3('0x215')]&&_0x4164c3('0x10fd')==getComputedStyle(_0x454fba[_0x4164c3('0x54a')])[_0x4164c3('0xf07')]&&(_0x454fba[_0x4164c3('0x54a')][_0x4164c3('0xe81')]['textRendering']=_0x4164c3('0xcfb'));}_0x11eb40[_0x1a265f('0xd88')]=_0x89b525,_0x11eb40['optionHandlers']=_0x451ca1;var _0x5b64bc=[];function _0x330772(_0x3050d6,_0x1034fa,_0x23fd7f,_0x3ccfaf){var _0x2327d0=_0x1a265f,_0x172b41,_0x3cc3ac=_0x3050d6['doc'];null==_0x23fd7f&&(_0x23fd7f=_0x2327d0('0x949')),'smart'==_0x23fd7f&&(_0x3cc3ac[_0x2327d0('0x1ab')][_0x2327d0('0x9d6')]?_0x172b41=_0x619115(_0x3050d6,_0x1034fa)[_0x2327d0('0x55d')]:_0x23fd7f=_0x2327d0('0x1e5'));var _0x433a80=_0x3050d6[_0x2327d0('0x29d')][_0x2327d0('0xad4')],_0x4dd9d0=_0x1964d4(_0x3cc3ac,_0x1034fa),_0x36b6d6=_0x213d1d(_0x4dd9d0['text'],null,_0x433a80);_0x4dd9d0['stateAfter']&&(_0x4dd9d0[_0x2327d0('0x1120')]=null);var _0x32a413,_0x6658a4=_0x4dd9d0[_0x2327d0('0x5b2')][_0x2327d0('0x7d5')](/^\s*/)[0x0];if(_0x3ccfaf||/\S/[_0x2327d0('0x2c3')](_0x4dd9d0[_0x2327d0('0x5b2')])){if('smart'==_0x23fd7f&&((_0x32a413=_0x3cc3ac[_0x2327d0('0x1ab')][_0x2327d0('0x9d6')](_0x172b41,_0x4dd9d0[_0x2327d0('0x5b2')][_0x2327d0('0xdf1')](_0x6658a4[_0x2327d0('0x13')]),_0x4dd9d0['text']))==_0x3d5a0e||_0x32a413>0x96)){if(!_0x3ccfaf)return;_0x23fd7f='prev';}}else _0x32a413=0x0,_0x23fd7f=_0x2327d0('0x661');_0x2327d0('0x1e5')==_0x23fd7f?_0x32a413=_0x1034fa>_0x3cc3ac[_0x2327d0('0x3f0')]?_0x213d1d(_0x1964d4(_0x3cc3ac,_0x1034fa-0x1)[_0x2327d0('0x5b2')],null,_0x433a80):0x0:_0x2327d0('0x949')==_0x23fd7f?_0x32a413=_0x36b6d6+_0x3050d6['options'][_0x2327d0('0xfc2')]:_0x2327d0('0xb84')==_0x23fd7f?_0x32a413=_0x36b6d6-_0x3050d6[_0x2327d0('0x29d')][_0x2327d0('0xfc2')]:_0x2327d0('0x67b')==typeof _0x23fd7f&&(_0x32a413=_0x36b6d6+_0x23fd7f),_0x32a413=Math[_0x2327d0('0xa0d')](0x0,_0x32a413);var _0x2311eb='',_0x40c157=0x0;if(_0x3050d6['options'][_0x2327d0('0x7b')])for(var _0xd6db5c=Math[_0x2327d0('0x6e3')](_0x32a413/_0x433a80);_0xd6db5c;--_0xd6db5c)_0x40c157+=_0x433a80,_0x2311eb+='\x09';if(_0x40c157<_0x32a413&&(_0x2311eb+=_0x4ca766(_0x32a413-_0x40c157)),_0x2311eb!=_0x6658a4)return _0x1b6eb7(_0x3cc3ac,_0x2311eb,_0x3de23f(_0x1034fa,0x0),_0x3de23f(_0x1034fa,_0x6658a4[_0x2327d0('0x13')]),_0x2327d0('0xc09')),_0x4dd9d0[_0x2327d0('0x1120')]=null,!0x0;for(var _0x192de0=0x0;_0x192de0<_0x3cc3ac['sel'][_0x2327d0('0x1de')][_0x2327d0('0x13')];_0x192de0++){var _0x437425=_0x3cc3ac[_0x2327d0('0x990')][_0x2327d0('0x1de')][_0x192de0];if(_0x437425[_0x2327d0('0x116a')][_0x2327d0('0x860')]==_0x1034fa&&_0x437425['head']['ch']<_0x6658a4['length']){var _0x2bf002=_0x3de23f(_0x1034fa,_0x6658a4[_0x2327d0('0x13')]);_0x17a700(_0x3cc3ac,_0x192de0,new _0x4d2b0d(_0x2bf002,_0x2bf002));break;}}}_0x11eb40[_0x1a265f('0x70a')]=function(_0x42161d){var _0x15a16e=_0x1a265f;return _0x5b64bc[_0x15a16e('0x91b')](_0x42161d);};var _0x42d5d4=null;function _0x10b816(_0x1e10c7){_0x42d5d4=_0x1e10c7;}function _0x45bfb0(_0x606f2f,_0x468a1e,_0x4c005e,_0x183990,_0x339222){var _0x6317c5=_0x1a265f,_0xd1a002=_0x606f2f['doc'];_0x606f2f[_0x6317c5('0x13d')]['shift']=!0x1,_0x183990||(_0x183990=_0xd1a002[_0x6317c5('0x990')]);var _0x3d74ff=+new Date()-0xc8,_0xb89902=_0x6317c5('0x980')==_0x339222||_0x606f2f[_0x6317c5('0x55d')]['pasteIncoming']>_0x3d74ff,_0x18201f=_0x207989(_0x468a1e),_0x423f43=null;if(_0xb89902&&_0x183990[_0x6317c5('0x1de')][_0x6317c5('0x13')]>0x1){if(_0x42d5d4&&_0x42d5d4[_0x6317c5('0x5b2')][_0x6317c5('0x2e2')]('\x0a')==_0x468a1e){if(_0x183990[_0x6317c5('0x1de')][_0x6317c5('0x13')]%_0x42d5d4[_0x6317c5('0x5b2')][_0x6317c5('0x13')]==0x0){_0x423f43=[];for(var _0x4e85ab=0x0;_0x4e85ab<_0x42d5d4['text'][_0x6317c5('0x13')];_0x4e85ab++)_0x423f43['push'](_0xd1a002[_0x6317c5('0x5ee')](_0x42d5d4[_0x6317c5('0x5b2')][_0x4e85ab]));}}else _0x18201f[_0x6317c5('0x13')]==_0x183990['ranges'][_0x6317c5('0x13')]&&_0x606f2f[_0x6317c5('0x29d')][_0x6317c5('0x7ae')]&&(_0x423f43=_0x2d0ee7(_0x18201f,function(_0x52ee4c){return[_0x52ee4c];}));}for(var _0x39d391=_0x606f2f[_0x6317c5('0x5ec')][_0x6317c5('0xb9c')],_0x57255b=_0x183990[_0x6317c5('0x1de')][_0x6317c5('0x13')]-0x1;_0x57255b>=0x0;_0x57255b--){var _0x32ace1=_0x183990['ranges'][_0x57255b],_0x27515a=_0x32ace1[_0x6317c5('0x1161')](),_0x171033=_0x32ace1['to']();_0x32ace1[_0x6317c5('0x1d4')]()&&(_0x4c005e&&_0x4c005e>0x0?_0x27515a=_0x3de23f(_0x27515a[_0x6317c5('0x860')],_0x27515a['ch']-_0x4c005e):_0x606f2f[_0x6317c5('0x55d')][_0x6317c5('0x8f4')]&&!_0xb89902?_0x171033=_0x3de23f(_0x171033[_0x6317c5('0x860')],Math[_0x6317c5('0xd3f')](_0x1964d4(_0xd1a002,_0x171033[_0x6317c5('0x860')])[_0x6317c5('0x5b2')][_0x6317c5('0x13')],_0x171033['ch']+_0x18184b(_0x18201f)['length'])):_0xb89902&&_0x42d5d4&&_0x42d5d4[_0x6317c5('0x504')]&&_0x42d5d4[_0x6317c5('0x5b2')][_0x6317c5('0x2e2')]('\x0a')==_0x18201f[_0x6317c5('0x2e2')]('\x0a')&&(_0x27515a=_0x171033=_0x3de23f(_0x27515a['line'],0x0)));var _0x56a51e={'from':_0x27515a,'to':_0x171033,'text':_0x423f43?_0x423f43[_0x57255b%_0x423f43[_0x6317c5('0x13')]]:_0x18201f,'origin':_0x339222||(_0xb89902?_0x6317c5('0x980'):_0x606f2f[_0x6317c5('0x55d')]['cutIncoming']>_0x3d74ff?_0x6317c5('0x82e'):_0x6317c5('0xc09'))};_0x2e3d26(_0x606f2f['doc'],_0x56a51e),_0x1a8e5b(_0x606f2f,_0x6317c5('0x758'),_0x606f2f,_0x56a51e);}_0x468a1e&&!_0xb89902&&_0x1c504b(_0x606f2f,_0x468a1e),_0x3b2a9(_0x606f2f),_0x606f2f[_0x6317c5('0x5ec')]['updateInput']<0x2&&(_0x606f2f['curOp'][_0x6317c5('0xb9c')]=_0x39d391),_0x606f2f['curOp'][_0x6317c5('0xb39')]=!0x0,_0x606f2f[_0x6317c5('0x55d')]['pasteIncoming']=_0x606f2f[_0x6317c5('0x55d')][_0x6317c5('0xca6')]=-0x1;}function _0x539421(_0x3ecee7,_0x229010){var _0x4dcf56=_0x1a265f,_0x1d4938=_0x3ecee7[_0x4dcf56('0x7ba')]&&_0x3ecee7['clipboardData'][_0x4dcf56('0x5c0')]('Text');if(_0x1d4938)return _0x3ecee7[_0x4dcf56('0x510')](),_0x229010[_0x4dcf56('0xec6')]()||_0x229010[_0x4dcf56('0x29d')][_0x4dcf56('0x2c1')]||_0x39976b(_0x229010,function(){return _0x45bfb0(_0x229010,_0x1d4938,0x0,null,'paste');}),!0x0;}function _0x1c504b(_0x1061ea,_0x2ea323){var _0x57bbf1=_0x1a265f;if(_0x1061ea['options'][_0x57bbf1('0x2dc')]&&_0x1061ea['options'][_0x57bbf1('0x1e2')])for(var _0x354475=_0x1061ea[_0x57bbf1('0x481')][_0x57bbf1('0x990')],_0x43f9cc=_0x354475[_0x57bbf1('0x1de')][_0x57bbf1('0x13')]-0x1;_0x43f9cc>=0x0;_0x43f9cc--){var _0x48b31a=_0x354475[_0x57bbf1('0x1de')][_0x43f9cc];if(!(_0x48b31a[_0x57bbf1('0x116a')]['ch']>0x64||_0x43f9cc&&_0x354475[_0x57bbf1('0x1de')][_0x43f9cc-0x1]['head'][_0x57bbf1('0x860')]==_0x48b31a[_0x57bbf1('0x116a')]['line'])){var _0x3259ae=_0x1061ea[_0x57bbf1('0xd21')](_0x48b31a[_0x57bbf1('0x116a')]),_0x4f96d9=!0x1;if(_0x3259ae[_0x57bbf1('0x2dc')])for(var _0x17cc85=0x0;_0x17cc85<_0x3259ae[_0x57bbf1('0x2dc')][_0x57bbf1('0x13')];_0x17cc85++)if(_0x2ea323[_0x57bbf1('0xf00')](_0x3259ae[_0x57bbf1('0x2dc')]['charAt'](_0x17cc85))>-0x1){_0x4f96d9=_0x330772(_0x1061ea,_0x48b31a[_0x57bbf1('0x116a')][_0x57bbf1('0x860')],'smart');break;}else _0x3259ae['electricInput']&&_0x3259ae[_0x57bbf1('0xd30')][_0x57bbf1('0x2c3')](_0x1964d4(_0x1061ea[_0x57bbf1('0x481')],_0x48b31a[_0x57bbf1('0x116a')]['line'])[_0x57bbf1('0x5b2')][_0x57bbf1('0xdf1')](0x0,_0x48b31a['head']['ch']))&&(_0x4f96d9=_0x330772(_0x1061ea,_0x48b31a[_0x57bbf1('0x116a')][_0x57bbf1('0x860')],_0x57bbf1('0xa05')));_0x4f96d9&&_0x1a8e5b(_0x1061ea,_0x57bbf1('0xd30'),_0x1061ea,_0x48b31a[_0x57bbf1('0x116a')][_0x57bbf1('0x860')]);}}}function _0x37d22b(_0x56cc8b){var _0x5d460b=_0x1a265f;for(var _0x570716=[],_0x5a71fb=[],_0x36fe59=0x0;_0x36fe59<_0x56cc8b['doc'][_0x5d460b('0x990')][_0x5d460b('0x1de')]['length'];_0x36fe59++){var _0x19e155=_0x56cc8b[_0x5d460b('0x481')]['sel'][_0x5d460b('0x1de')][_0x36fe59][_0x5d460b('0x116a')][_0x5d460b('0x860')],_0x44ebf3={'anchor':_0x3de23f(_0x19e155,0x0),'head':_0x3de23f(_0x19e155+0x1,0x0)};_0x5a71fb[_0x5d460b('0x91b')](_0x44ebf3),_0x570716[_0x5d460b('0x91b')](_0x56cc8b[_0x5d460b('0xc92')](_0x44ebf3['anchor'],_0x44ebf3[_0x5d460b('0x116a')]));}return{'text':_0x570716,'ranges':_0x5a71fb};}function _0x6556aa(_0x3d1e79,_0x2c528d,_0x38ef5f,_0x22d877){var _0x1e9808=_0x1a265f;_0x3d1e79['setAttribute']('autocorrect',_0x38ef5f?'':_0x1e9808('0x78f')),_0x3d1e79['setAttribute']('autocapitalize',_0x22d877?'':_0x1e9808('0x78f')),_0x3d1e79[_0x1e9808('0x451')](_0x1e9808('0x6e1'),!!_0x2c528d);}function _0x47a235(){var _0x574900=_0x1a265f,_0x561588=_0x4aeabd('textarea',null,null,_0x574900('0xf2f')),_0x4eef84=_0x4aeabd(_0x574900('0x26c'),[_0x561588],null,_0x574900('0x1eb'));return _0x5683b3?_0x561588[_0x574900('0xe81')][_0x574900('0x115')]=_0x574900('0x7c8'):_0x561588[_0x574900('0x451')]('wrap',_0x574900('0x78f')),_0x34394b&&(_0x561588[_0x574900('0xe81')]['border']=_0x574900('0xf48')),_0x6556aa(_0x561588),_0x4eef84;}function _0x2faf67(_0x137304,_0x274834,_0x32f4fb,_0x440089,_0x4b08aa){var _0x3488e8=_0x1a265f,_0x52821f=_0x274834,_0x2bd237=_0x32f4fb,_0x136dc7=_0x1964d4(_0x137304,_0x274834[_0x3488e8('0x860')]),_0x187b28=_0x4b08aa&&_0x3488e8('0x919')==_0x137304[_0x3488e8('0x8de')]?-_0x32f4fb:_0x32f4fb;function _0x4fe241(_0x20804e){var _0x31fe04=_0x3488e8,_0x1a56ca,_0x523eb6;if(_0x31fe04('0x212')==_0x440089){var _0x5fcd0b=_0x136dc7[_0x31fe04('0x5b2')][_0x31fe04('0xd66')](_0x274834['ch']+(_0x440089>0x0?0x0:-0x1));_0x1a56ca=isNaN(_0x5fcd0b)?null:new _0x3de23f(_0x274834[_0x31fe04('0x860')],Math[_0x31fe04('0xa0d')](0x0,Math[_0x31fe04('0xd3f')](_0x136dc7[_0x31fe04('0x5b2')][_0x31fe04('0x13')],_0x274834['ch']+_0x32f4fb*(_0x5fcd0b>=0xd800&&_0x5fcd0b<0xdc00?0x2:0x1))),-_0x32f4fb);}else _0x1a56ca=_0x4b08aa?function(_0x5a0b0b,_0x35c71a,_0x2ac1b2,_0x2980b8){var _0x16b058=_0x31fe04,_0x48bbd6=_0x30ca79(_0x35c71a,_0x5a0b0b['doc']['direction']);if(!_0x48bbd6)return _0x2b6c67(_0x35c71a,_0x2ac1b2,_0x2980b8);_0x2ac1b2['ch']>=_0x35c71a['text'][_0x16b058('0x13')]?(_0x2ac1b2['ch']=_0x35c71a[_0x16b058('0x5b2')][_0x16b058('0x13')],_0x2ac1b2[_0x16b058('0xce7')]=_0x16b058('0x4ec')):_0x2ac1b2['ch']<=0x0&&(_0x2ac1b2['ch']=0x0,_0x2ac1b2[_0x16b058('0xce7')]=_0x16b058('0x593'));var _0x1b7e46=_0x267328(_0x48bbd6,_0x2ac1b2['ch'],_0x2ac1b2['sticky']),_0x28931b=_0x48bbd6[_0x1b7e46];if(_0x16b058('0x5f8')==_0x5a0b0b['doc'][_0x16b058('0x8de')]&&_0x28931b[_0x16b058('0x555')]%0x2==0x0&&(_0x2980b8>0x0?_0x28931b['to']>_0x2ac1b2['ch']:_0x28931b[_0x16b058('0x1161')]<_0x2ac1b2['ch']))return _0x2b6c67(_0x35c71a,_0x2ac1b2,_0x2980b8);var _0x125a4d,_0x403cbb=function(_0x22d431,_0x16e69b){return _0x35e7aa(_0x35c71a,_0x22d431 instanceof _0x3de23f?_0x22d431['ch']:_0x22d431,_0x16e69b);},_0xbee1a4=function(_0xeb33e3){var _0x47ab83=_0x16b058;return _0x5a0b0b['options'][_0x47ab83('0x215')]?(_0x125a4d=_0x125a4d||_0x1058f2(_0x5a0b0b,_0x35c71a),_0x2f905e(_0x5a0b0b,_0x35c71a,_0x125a4d,_0xeb33e3)):{'begin':0x0,'end':_0x35c71a[_0x47ab83('0x5b2')][_0x47ab83('0x13')]};},_0x4cd675=_0xbee1a4(_0x16b058('0x4ec')==_0x2ac1b2[_0x16b058('0xce7')]?_0x403cbb(_0x2ac1b2,-0x1):_0x2ac1b2['ch']);if(_0x16b058('0x919')==_0x5a0b0b[_0x16b058('0x481')][_0x16b058('0x8de')]||0x1==_0x28931b[_0x16b058('0x555')]){var _0x57eb24=0x1==_0x28931b['level']==_0x2980b8<0x0,_0x2c839b=_0x403cbb(_0x2ac1b2,_0x57eb24?0x1:-0x1);if(null!=_0x2c839b&&(_0x57eb24?_0x2c839b<=_0x28931b['to']&&_0x2c839b<=_0x4cd675[_0x16b058('0xcad')]:_0x2c839b>=_0x28931b['from']&&_0x2c839b>=_0x4cd675[_0x16b058('0x311')])){var _0x104959=_0x57eb24?_0x16b058('0x4ec'):_0x16b058('0x593');return new _0x3de23f(_0x2ac1b2['line'],_0x2c839b,_0x104959);}}var _0x1e2f8b=function(_0x395e1e,_0xcceb67,_0x3525a6){var _0x7d51a8=_0x16b058;for(var _0x387f90=function(_0x49e648,_0x250eba){var _0x5bc9d9=_0x5376;return _0x250eba?new _0x3de23f(_0x2ac1b2[_0x5bc9d9('0x860')],_0x403cbb(_0x49e648,0x1),_0x5bc9d9('0x4ec')):new _0x3de23f(_0x2ac1b2[_0x5bc9d9('0x860')],_0x49e648,_0x5bc9d9('0x593'));};_0x395e1e>=0x0&&_0x395e1e<_0x48bbd6[_0x7d51a8('0x13')];_0x395e1e+=_0xcceb67){var _0x15bb66=_0x48bbd6[_0x395e1e],_0x2d1dc4=_0xcceb67>0x0==(0x1!=_0x15bb66['level']),_0x35bac8=_0x2d1dc4?_0x3525a6['begin']:_0x403cbb(_0x3525a6[_0x7d51a8('0xcad')],-0x1);if(_0x15bb66[_0x7d51a8('0x1161')]<=_0x35bac8&&_0x35bac8<_0x15bb66['to'])return _0x387f90(_0x35bac8,_0x2d1dc4);if(_0x35bac8=_0x2d1dc4?_0x15bb66[_0x7d51a8('0x1161')]:_0x403cbb(_0x15bb66['to'],-0x1),_0x3525a6[_0x7d51a8('0x311')]<=_0x35bac8&&_0x35bac8<_0x3525a6['end'])return _0x387f90(_0x35bac8,_0x2d1dc4);}},_0x1a5165=_0x1e2f8b(_0x1b7e46+_0x2980b8,_0x2980b8,_0x4cd675);if(_0x1a5165)return _0x1a5165;var _0x463a90=_0x2980b8>0x0?_0x4cd675[_0x16b058('0xcad')]:_0x403cbb(_0x4cd675[_0x16b058('0x311')],-0x1);return null==_0x463a90||_0x2980b8>0x0&&_0x463a90==_0x35c71a[_0x16b058('0x5b2')]['length']||!(_0x1a5165=_0x1e2f8b(_0x2980b8>0x0?0x0:_0x48bbd6[_0x16b058('0x13')]-0x1,_0x2980b8,_0xbee1a4(_0x463a90)))?null:_0x1a5165;}(_0x137304['cm'],_0x136dc7,_0x274834,_0x32f4fb):_0x2b6c67(_0x136dc7,_0x274834,_0x32f4fb);if(null==_0x1a56ca){if(_0x20804e||(_0x523eb6=_0x274834[_0x31fe04('0x860')]+_0x187b28)<_0x137304['first']||_0x523eb6>=_0x137304[_0x31fe04('0x3f0')]+_0x137304['size']||(_0x274834=new _0x3de23f(_0x523eb6,_0x274834['ch'],_0x274834[_0x31fe04('0xce7')]),!(_0x136dc7=_0x1964d4(_0x137304,_0x523eb6))))return!0x1;_0x274834=_0x28f4ab(_0x4b08aa,_0x137304['cm'],_0x136dc7,_0x274834[_0x31fe04('0x860')],_0x187b28);}else _0x274834=_0x1a56ca;return!0x0;}if('char'==_0x440089||'codepoint'==_0x440089)_0x4fe241();else{if(_0x3488e8('0x26a')==_0x440089)_0x4fe241(!0x0);else{if(_0x3488e8('0xe0')==_0x440089||_0x3488e8('0x482')==_0x440089)for(var _0x378713=null,_0x2f4979=_0x3488e8('0x482')==_0x440089,_0x3dc9ba=_0x137304['cm']&&_0x137304['cm'][_0x3488e8('0x5e5')](_0x274834,'wordChars'),_0x119214=!0x0;!(_0x32f4fb<0x0)||_0x4fe241(!_0x119214);_0x119214=!0x1){var _0x58d9a5=_0x136dc7[_0x3488e8('0x5b2')][_0x3488e8('0xcaf')](_0x274834['ch'])||'\x0a',_0x56a619=_0x1d107d(_0x58d9a5,_0x3dc9ba)?'w':_0x2f4979&&'\x0a'==_0x58d9a5?'n':!_0x2f4979||/\s/[_0x3488e8('0x2c3')](_0x58d9a5)?null:'p';if(!_0x2f4979||_0x119214||_0x56a619||(_0x56a619='s'),_0x378713&&_0x378713!=_0x56a619){_0x32f4fb<0x0&&(_0x32f4fb=0x1,_0x4fe241(),_0x274834[_0x3488e8('0xce7')]=_0x3488e8('0x593'));break;}if(_0x56a619&&(_0x378713=_0x56a619),_0x32f4fb>0x0&&!_0x4fe241(!_0x119214))break;}}}var _0x25e97d=_0x357168(_0x137304,_0x274834,_0x52821f,_0x2bd237,!0x0);return _0x2bdd96(_0x52821f,_0x25e97d)&&(_0x25e97d['hitSide']=!0x0),_0x25e97d;}function _0x344fa2(_0x55c3d2,_0x1d1d67,_0x48d11c,_0x1a436){var _0x297ca9=_0x1a265f,_0x20dc64,_0x34651f,_0x3391e8=_0x55c3d2[_0x297ca9('0x481')],_0x1b4953=_0x1d1d67[_0x297ca9('0x10fb')];if(_0x297ca9('0xbc8')==_0x1a436){var _0xe958c6=Math['min'](_0x55c3d2[_0x297ca9('0x13d')][_0x297ca9('0xfc3')]['clientHeight'],window['innerHeight']||document[_0x297ca9('0xf22')][_0x297ca9('0x9d9')]),_0x5a9b66=Math[_0x297ca9('0xa0d')](_0xe958c6-0.5*_0x30a1c3(_0x55c3d2[_0x297ca9('0x13d')]),0x3);_0x20dc64=(_0x48d11c>0x0?_0x1d1d67[_0x297ca9('0x9c2')]:_0x1d1d67[_0x297ca9('0x5b')])+_0x48d11c*_0x5a9b66;}else'line'==_0x1a436&&(_0x20dc64=_0x48d11c>0x0?_0x1d1d67[_0x297ca9('0x9c2')]+0x3:_0x1d1d67[_0x297ca9('0x5b')]-0x3);for(;(_0x34651f=_0x4e049b(_0x55c3d2,_0x1b4953,_0x20dc64))[_0x297ca9('0x615')];){if(_0x48d11c<0x0?_0x20dc64<=0x0:_0x20dc64>=_0x3391e8['height']){_0x34651f['hitSide']=!0x0;break;}_0x20dc64+=0x5*_0x48d11c;}return _0x34651f;}var _0x351fca=function(_0x3324f0){var _0xaedcdc=_0x1a265f;this['cm']=_0x3324f0,this[_0xaedcdc('0x108')]=this[_0xaedcdc('0x54e')]=this['lastFocusNode']=this['lastFocusOffset']=null,this[_0xaedcdc('0x5a3')]=new _0x4e4ea8(),this[_0xaedcdc('0x7b3')]=null,this['gracePeriod']=!0x1,this[_0xaedcdc('0xefd')]=null;};function _0x5edfa0(_0xcd0a49,_0x30b17e){var _0x4f1ab6=_0x1a265f,_0x494aa5=_0x21db41(_0xcd0a49,_0x30b17e[_0x4f1ab6('0x860')]);if(!_0x494aa5||_0x494aa5[_0x4f1ab6('0x10f4')])return null;var _0x739b6a=_0x1964d4(_0xcd0a49['doc'],_0x30b17e['line']),_0x2d22a9=_0x4e1fda(_0x494aa5,_0x739b6a,_0x30b17e['line']),_0x4bcdfe=_0x30ca79(_0x739b6a,_0xcd0a49[_0x4f1ab6('0x481')][_0x4f1ab6('0x8de')]),_0x333f39='left';_0x4bcdfe&&(_0x333f39=_0x267328(_0x4bcdfe,_0x30b17e['ch'])%0x2?'right':_0x4f1ab6('0x10fb'));var _0x5c2f4f=_0x24d59d(_0x2d22a9[_0x4f1ab6('0xd8e')],_0x30b17e['ch'],_0x333f39);return _0x5c2f4f[_0x4f1ab6('0x830')]=_0x4f1ab6('0x94b')==_0x5c2f4f[_0x4f1ab6('0x503')]?_0x5c2f4f[_0x4f1ab6('0xcad')]:_0x5c2f4f[_0x4f1ab6('0xa7e')],_0x5c2f4f;}function _0x2840ef(_0x4b0341,_0x2248d7){return _0x2248d7&&(_0x4b0341['bad']=!0x0),_0x4b0341;}function _0x19fb85(_0x2fa12f,_0x312383,_0x3150c2){var _0x17aec8=_0x1a265f,_0x504f4c;if(_0x312383==_0x2fa12f[_0x17aec8('0x13d')][_0x17aec8('0x54a')]){if(!(_0x504f4c=_0x2fa12f[_0x17aec8('0x13d')]['lineDiv']['childNodes'][_0x3150c2]))return _0x2840ef(_0x2fa12f[_0x17aec8('0xfe8')](_0x3de23f(_0x2fa12f[_0x17aec8('0x13d')][_0x17aec8('0x3e5')]-0x1)),!0x0);_0x312383=null,_0x3150c2=0x0;}else for(_0x504f4c=_0x312383;;_0x504f4c=_0x504f4c[_0x17aec8('0x9cd')]){if(!_0x504f4c||_0x504f4c==_0x2fa12f[_0x17aec8('0x13d')]['lineDiv'])return null;if(_0x504f4c[_0x17aec8('0x9cd')]&&_0x504f4c['parentNode']==_0x2fa12f[_0x17aec8('0x13d')][_0x17aec8('0x54a')])break;}for(var _0x33d545=0x0;_0x33d545<_0x2fa12f['display']['view'][_0x17aec8('0x13')];_0x33d545++){var _0x23753a=_0x2fa12f[_0x17aec8('0x13d')][_0x17aec8('0x770')][_0x33d545];if(_0x23753a[_0x17aec8('0xb95')]==_0x504f4c)return _0x597df3(_0x23753a,_0x312383,_0x3150c2);}}function _0x597df3(_0x467d98,_0x233f06,_0x2650f1){var _0x1ff453=_0x1a265f,_0x93e982=_0x467d98[_0x1ff453('0x5b2')][_0x1ff453('0xf86')],_0x1b5543=!0x1;if(!_0x233f06||!_0x487fc0(_0x93e982,_0x233f06))return _0x2840ef(_0x3de23f(_0x432947(_0x467d98['line']),0x0),!0x0);if(_0x233f06==_0x93e982&&(_0x1b5543=!0x0,_0x233f06=_0x93e982[_0x1ff453('0x802')][_0x2650f1],_0x2650f1=0x0,!_0x233f06)){var _0x54be90=_0x467d98[_0x1ff453('0x19d')]?_0x18184b(_0x467d98[_0x1ff453('0x19d')]):_0x467d98[_0x1ff453('0x860')];return _0x2840ef(_0x3de23f(_0x432947(_0x54be90),_0x54be90[_0x1ff453('0x5b2')][_0x1ff453('0x13')]),_0x1b5543);}var _0x1c1260=0x3==_0x233f06[_0x1ff453('0x5a')]?_0x233f06:null,_0x244cb2=_0x233f06;for(_0x1c1260||0x1!=_0x233f06[_0x1ff453('0x802')]['length']||0x3!=_0x233f06[_0x1ff453('0xf86')]['nodeType']||(_0x1c1260=_0x233f06[_0x1ff453('0xf86')],_0x2650f1&&(_0x2650f1=_0x1c1260[_0x1ff453('0x8c4')][_0x1ff453('0x13')]));_0x244cb2[_0x1ff453('0x9cd')]!=_0x93e982;)_0x244cb2=_0x244cb2[_0x1ff453('0x9cd')];var _0x2a9b20=_0x467d98[_0x1ff453('0xaac')],_0x1695e9=_0x2a9b20[_0x1ff453('0xe59')];function _0x36d0df(_0x30acbf,_0x5ac1e0,_0x14ca17){var _0x28f087=_0x1ff453;for(var _0x2d8866=-0x1;_0x2d8866<(_0x1695e9?_0x1695e9[_0x28f087('0x13')]:0x0);_0x2d8866++)for(var _0x495223=_0x2d8866<0x0?_0x2a9b20[_0x28f087('0xd8e')]:_0x1695e9[_0x2d8866],_0x2ee6da=0x0;_0x2ee6da<_0x495223[_0x28f087('0x13')];_0x2ee6da+=0x3){var _0x2c317c=_0x495223[_0x2ee6da+0x2];if(_0x2c317c==_0x30acbf||_0x2c317c==_0x5ac1e0){var _0x3dc8b5=_0x432947(_0x2d8866<0x0?_0x467d98['line']:_0x467d98['rest'][_0x2d8866]),_0x69557d=_0x495223[_0x2ee6da]+_0x14ca17;return(_0x14ca17<0x0||_0x2c317c!=_0x30acbf)&&(_0x69557d=_0x495223[_0x2ee6da+(_0x14ca17?0x1:0x0)]),_0x3de23f(_0x3dc8b5,_0x69557d);}}}var _0x1874e9=_0x36d0df(_0x1c1260,_0x244cb2,_0x2650f1);if(_0x1874e9)return _0x2840ef(_0x1874e9,_0x1b5543);for(var _0xffc9ce=_0x244cb2['nextSibling'],_0x555ba8=_0x1c1260?_0x1c1260[_0x1ff453('0x8c4')][_0x1ff453('0x13')]-_0x2650f1:0x0;_0xffc9ce;_0xffc9ce=_0xffc9ce[_0x1ff453('0x85b')]){if(_0x1874e9=_0x36d0df(_0xffc9ce,_0xffc9ce[_0x1ff453('0xf86')],0x0))return _0x2840ef(_0x3de23f(_0x1874e9['line'],_0x1874e9['ch']-_0x555ba8),_0x1b5543);_0x555ba8+=_0xffc9ce[_0x1ff453('0x3b9')]['length'];}for(var _0x51ddbe=_0x244cb2[_0x1ff453('0x4b8')],_0x2d5d7e=_0x2650f1;_0x51ddbe;_0x51ddbe=_0x51ddbe['previousSibling']){if(_0x1874e9=_0x36d0df(_0x51ddbe,_0x51ddbe['firstChild'],-0x1))return _0x2840ef(_0x3de23f(_0x1874e9[_0x1ff453('0x860')],_0x1874e9['ch']+_0x2d5d7e),_0x1b5543);_0x2d5d7e+=_0x51ddbe[_0x1ff453('0x3b9')][_0x1ff453('0x13')];}}_0x351fca[_0x1a265f('0xe02')]['init']=function(_0x26e9af){var _0x4ca22f=_0x1a265f,_0x398ba0=this,_0x426820=this,_0x2ba483=_0x426820['cm'],_0xfedb82=_0x426820[_0x4ca22f('0x26c')]=_0x26e9af[_0x4ca22f('0x54a')];function _0x203d70(_0x18616f){var _0x5aea20=_0x4ca22f;for(var _0x528c3c=_0x18616f['target'];_0x528c3c;_0x528c3c=_0x528c3c[_0x5aea20('0x9cd')]){if(_0x528c3c==_0xfedb82)return!0x0;if(/\bCodeMirror-(?:line)?widget\b/['test'](_0x528c3c[_0x5aea20('0x867')]))break;}return!0x1;}function _0x1e0c5f(_0x2d1643){var _0x97a496=_0x4ca22f;if(_0x203d70(_0x2d1643)&&!_0x5c7334(_0x2ba483,_0x2d1643)){if(_0x2ba483[_0x97a496('0x8e8')]())_0x10b816({'lineWise':!0x1,'text':_0x2ba483[_0x97a496('0x6a9')]()}),'cut'==_0x2d1643['type']&&_0x2ba483[_0x97a496('0x514')]('',null,'cut');else{if(!_0x2ba483['options'][_0x97a496('0x649')])return;var _0x41dea6=_0x37d22b(_0x2ba483);_0x10b816({'lineWise':!0x0,'text':_0x41dea6[_0x97a496('0x5b2')]}),_0x97a496('0x82e')==_0x2d1643[_0x97a496('0x921')]&&_0x2ba483[_0x97a496('0x419')](function(){var _0x142aa3=_0x97a496;_0x2ba483['setSelections'](_0x41dea6[_0x142aa3('0x1de')],0x0,_0x135890),_0x2ba483[_0x142aa3('0x514')]('',null,_0x142aa3('0x82e'));});}if(_0x2d1643[_0x97a496('0x7ba')]){_0x2d1643[_0x97a496('0x7ba')][_0x97a496('0xdad')]();var _0x28e6b8=_0x42d5d4[_0x97a496('0x5b2')]['join']('\x0a');if(_0x2d1643[_0x97a496('0x7ba')][_0x97a496('0x86a')](_0x97a496('0xc71'),_0x28e6b8),_0x2d1643['clipboardData'][_0x97a496('0x5c0')](_0x97a496('0xc71'))==_0x28e6b8)return void _0x2d1643[_0x97a496('0x510')]();}var _0x5e420a=_0x47a235(),_0x5a5ca6=_0x5e420a[_0x97a496('0xf86')];_0x2ba483[_0x97a496('0x13d')][_0x97a496('0x1f5')][_0x97a496('0xfb')](_0x5e420a,_0x2ba483[_0x97a496('0x13d')][_0x97a496('0x1f5')]['firstChild']),_0x5a5ca6[_0x97a496('0x30')]=_0x42d5d4[_0x97a496('0x5b2')][_0x97a496('0x2e2')]('\x0a');var _0x57998b=document['activeElement'];_0x23e318(_0x5a5ca6),setTimeout(function(){var _0x4f6c65=_0x97a496;_0x2ba483[_0x4f6c65('0x13d')]['lineSpace'][_0x4f6c65('0xf93')](_0x5e420a),_0x57998b[_0x4f6c65('0x7dd')](),_0x57998b==_0xfedb82&&_0x426820['showPrimarySelection']();},0x32);}}_0x6556aa(_0xfedb82,_0x2ba483['options'][_0x4ca22f('0x6e1')],_0x2ba483[_0x4ca22f('0x29d')]['autocorrect'],_0x2ba483[_0x4ca22f('0x29d')]['autocapitalize']),_0x4d62f6(_0xfedb82,_0x4ca22f('0x980'),function(_0x3cfa8a){!_0x203d70(_0x3cfa8a)||_0x5c7334(_0x2ba483,_0x3cfa8a)||_0x539421(_0x3cfa8a,_0x2ba483)||_0x217fe9<=0xb&&setTimeout(_0x53bb92(_0x2ba483,function(){var _0x115632=_0x5376;return _0x398ba0[_0x115632('0x2e6')]();}),0x14);}),_0x4d62f6(_0xfedb82,_0x4ca22f('0x5ea'),function(_0x3cc42d){var _0xc4e0e5=_0x4ca22f;_0x398ba0[_0xc4e0e5('0x7b3')]={'data':_0x3cc42d[_0xc4e0e5('0x1016')],'done':!0x1};}),_0x4d62f6(_0xfedb82,_0x4ca22f('0x6bb'),function(_0x560300){var _0x3e6fa2=_0x4ca22f;_0x398ba0[_0x3e6fa2('0x7b3')]||(_0x398ba0[_0x3e6fa2('0x7b3')]={'data':_0x560300[_0x3e6fa2('0x1016')],'done':!0x1});}),_0x4d62f6(_0xfedb82,'compositionend',function(_0x3aa2d8){var _0x2180f3=_0x4ca22f;_0x398ba0[_0x2180f3('0x7b3')]&&(_0x3aa2d8['data']!=_0x398ba0['composing'][_0x2180f3('0x1016')]&&_0x398ba0[_0x2180f3('0x180')](),_0x398ba0['composing']['done']=!0x0);}),_0x4d62f6(_0xfedb82,_0x4ca22f('0x110b'),function(){var _0x25d9ad=_0x4ca22f;return _0x426820[_0x25d9ad('0x397')]();}),_0x4d62f6(_0xfedb82,_0x4ca22f('0x2f8'),function(){var _0x48868a=_0x4ca22f;_0x398ba0['composing']||_0x398ba0[_0x48868a('0x180')]();}),_0x4d62f6(_0xfedb82,_0x4ca22f('0x3cd'),_0x1e0c5f),_0x4d62f6(_0xfedb82,'cut',_0x1e0c5f);},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x8f8')]=function(_0xb1fe52){var _0xb5e2f8=_0x1a265f;_0xb1fe52?this[_0xb5e2f8('0x26c')][_0xb5e2f8('0x451')](_0xb5e2f8('0x10e1'),_0xb1fe52):this[_0xb5e2f8('0x26c')][_0xb5e2f8('0xddc')](_0xb5e2f8('0x10e1'));},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x8aa')]=function(){var _0x12af3c=_0x1a265f,_0x75b14a=_0x457d43(this['cm'],!0x1);return _0x75b14a[_0x12af3c('0x7dd')]=document['activeElement']==this['div'],_0x75b14a;},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x6ca')]=function(_0x1135be,_0x585d9e){var _0x3fc193=_0x1a265f;_0x1135be&&this['cm'][_0x3fc193('0x13d')]['view'][_0x3fc193('0x13')]&&((_0x1135be[_0x3fc193('0x7dd')]||_0x585d9e)&&this[_0x3fc193('0x6d0')](),this[_0x3fc193('0xea6')](_0x1135be));},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x806')]=function(){var _0x312421=_0x1a265f;return this['cm'][_0x312421('0x13d')][_0x312421('0xfc3')][_0x312421('0xad5')][_0x312421('0x806')]();},_0x351fca['prototype']['showPrimarySelection']=function(){var _0x415029=_0x1a265f,_0x340817=this[_0x415029('0x806')](),_0x31cad1=this['cm'],_0x392d19=_0x31cad1[_0x415029('0x481')][_0x415029('0x990')]['primary'](),_0xeaf6=_0x392d19[_0x415029('0x1161')](),_0x181ca1=_0x392d19['to']();if(_0x31cad1['display']['viewTo']==_0x31cad1[_0x415029('0x13d')][_0x415029('0x812')]||_0xeaf6[_0x415029('0x860')]>=_0x31cad1['display']['viewTo']||_0x181ca1[_0x415029('0x860')]<_0x31cad1[_0x415029('0x13d')][_0x415029('0x812')])_0x340817[_0x415029('0x20a')]();else{var _0x230b8e=_0x19fb85(_0x31cad1,_0x340817[_0x415029('0xf42')],_0x340817[_0x415029('0xc87')]),_0x474912=_0x19fb85(_0x31cad1,_0x340817['focusNode'],_0x340817[_0x415029('0xa7f')]);if(!_0x230b8e||_0x230b8e[_0x415029('0xf05')]||!_0x474912||_0x474912[_0x415029('0xf05')]||0x0!=_0x1213af(_0x315a51(_0x230b8e,_0x474912),_0xeaf6)||0x0!=_0x1213af(_0x28826d(_0x230b8e,_0x474912),_0x181ca1)){var _0x59983e=_0x31cad1[_0x415029('0x13d')][_0x415029('0x770')],_0x225e6b=_0xeaf6[_0x415029('0x860')]>=_0x31cad1['display']['viewFrom']&&_0x5edfa0(_0x31cad1,_0xeaf6)||{'node':_0x59983e[0x0][_0x415029('0xaac')]['map'][0x2],'offset':0x0},_0x2e9851=_0x181ca1['line']<_0x31cad1['display'][_0x415029('0x3e5')]&&_0x5edfa0(_0x31cad1,_0x181ca1);if(!_0x2e9851){var _0x5b6cea=_0x59983e[_0x59983e['length']-0x1][_0x415029('0xaac')],_0x41dc86=_0x5b6cea[_0x415029('0xe59')]?_0x5b6cea[_0x415029('0xe59')][_0x5b6cea[_0x415029('0xe59')][_0x415029('0x13')]-0x1]:_0x5b6cea['map'];_0x2e9851={'node':_0x41dc86[_0x41dc86['length']-0x1],'offset':_0x41dc86[_0x41dc86[_0x415029('0x13')]-0x2]-_0x41dc86[_0x41dc86[_0x415029('0x13')]-0x3]};}if(_0x225e6b&&_0x2e9851){var _0x3ac091,_0x14a5fe=_0x340817[_0x415029('0x893')]&&_0x340817['getRangeAt'](0x0);try{_0x3ac091=_0x377102(_0x225e6b[_0x415029('0xb95')],_0x225e6b[_0x415029('0x830')],_0x2e9851[_0x415029('0x830')],_0x2e9851[_0x415029('0xb95')]);}catch(_0x54db79){}_0x3ac091&&(!_0x29b819&&_0x31cad1[_0x415029('0x55d')][_0x415029('0x7be')]?(_0x340817[_0x415029('0x503')](_0x225e6b[_0x415029('0xb95')],_0x225e6b[_0x415029('0x830')]),_0x3ac091['collapsed']||(_0x340817['removeAllRanges'](),_0x340817[_0x415029('0x317')](_0x3ac091))):(_0x340817['removeAllRanges'](),_0x340817['addRange'](_0x3ac091)),_0x14a5fe&&null==_0x340817['anchorNode']?_0x340817['addRange'](_0x14a5fe):_0x29b819&&this[_0x415029('0x113a')]()),this['rememberSelection']();}else _0x340817['removeAllRanges']();}}},_0x351fca['prototype'][_0x1a265f('0x113a')]=function(){var _0x25a1e7=this;clearTimeout(this['gracePeriod']),this['gracePeriod']=setTimeout(function(){var _0x19dbdd=_0x5376;_0x25a1e7['gracePeriod']=!0x1,_0x25a1e7[_0x19dbdd('0x66c')]()&&_0x25a1e7['cm']['operation'](function(){var _0x41e678=_0x19dbdd;return _0x25a1e7['cm'][_0x41e678('0x5ec')][_0x41e678('0x66c')]=!0x0;});},0x14);},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0xea6')]=function(_0x46af14){var _0x865d28=_0x1a265f;_0x221945(this['cm'][_0x865d28('0x13d')]['cursorDiv'],_0x46af14[_0x865d28('0x10a8')]),_0x221945(this['cm'][_0x865d28('0x13d')][_0x865d28('0xb4d')],_0x46af14['selection']);},_0x351fca[_0x1a265f('0xe02')]['rememberSelection']=function(){var _0x42d7c1=_0x1a265f,_0x813397=this['getSelection']();this[_0x42d7c1('0x108')]=_0x813397[_0x42d7c1('0xf42')],this[_0x42d7c1('0x54e')]=_0x813397['anchorOffset'],this['lastFocusNode']=_0x813397[_0x42d7c1('0xc79')],this[_0x42d7c1('0x908')]=_0x813397[_0x42d7c1('0xa7f')];},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x2b3')]=function(){var _0x3a8cbe=_0x1a265f,_0x32c091=this[_0x3a8cbe('0x806')]();if(!_0x32c091[_0x3a8cbe('0x893')])return!0x1;var _0x435491=_0x32c091[_0x3a8cbe('0x703')](0x0)[_0x3a8cbe('0xb78')];return _0x487fc0(this[_0x3a8cbe('0x26c')],_0x435491);},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x7dd')]=function(){var _0x439e28=_0x1a265f;_0x439e28('0x1ac')!=this['cm'][_0x439e28('0x29d')]['readOnly']&&(this[_0x439e28('0x2b3')]()&&document[_0x439e28('0xbc9')]==this['div']||this[_0x439e28('0x6ca')](this[_0x439e28('0x8aa')](),!0x0),this[_0x439e28('0x26c')][_0x439e28('0x7dd')]());},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0xba2')]=function(){var _0x461c1f=_0x1a265f;this[_0x461c1f('0x26c')][_0x461c1f('0xba2')]();},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0xfb8')]=function(){var _0x3eab71=_0x1a265f;return this[_0x3eab71('0x26c')];},_0x351fca[_0x1a265f('0xe02')]['supportsTouch']=function(){return!0x0;},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0xcac')]=function(){var _0x1def5d=_0x1a265f,_0x39c323=this;this[_0x1def5d('0x2b3')]()?this[_0x1def5d('0x2fe')]():_0x39976b(this['cm'],function(){var _0x5f9204=_0x1def5d;return _0x39c323['cm'][_0x5f9204('0x5ec')][_0x5f9204('0x66c')]=!0x0;}),this[_0x1def5d('0x5a3')][_0x1def5d('0x24a')](this['cm']['options'][_0x1def5d('0x569')],function _0x3e18f4(){var _0x9cd6=_0x1def5d;_0x39c323['cm'][_0x9cd6('0x55d')][_0x9cd6('0x7be')]&&(_0x39c323[_0x9cd6('0x2fe')](),_0x39c323[_0x9cd6('0x5a3')][_0x9cd6('0x24a')](_0x39c323['cm']['options'][_0x9cd6('0x569')],_0x3e18f4));});},_0x351fca['prototype'][_0x1a265f('0x66c')]=function(){var _0x2365b0=_0x1a265f,_0x48c0e6=this[_0x2365b0('0x806')]();return _0x48c0e6['anchorNode']!=this[_0x2365b0('0x108')]||_0x48c0e6['anchorOffset']!=this[_0x2365b0('0x54e')]||_0x48c0e6[_0x2365b0('0xc79')]!=this[_0x2365b0('0x76d')]||_0x48c0e6[_0x2365b0('0xa7f')]!=this['lastFocusOffset'];},_0x351fca['prototype'][_0x1a265f('0x2fe')]=function(){var _0x4c8016=_0x1a265f;if(null==this[_0x4c8016('0xefd')]&&!this['gracePeriod']&&this[_0x4c8016('0x66c')]()){var _0x233ee5=this[_0x4c8016('0x806')](),_0x3b90f2=this['cm'];if(_0x2cbfeb&&_0x563557&&this['cm'][_0x4c8016('0x13d')][_0x4c8016('0xf04')][_0x4c8016('0x13')]&&function(_0x4293eb){var _0x7a35a6=_0x4c8016;for(var _0x34b3a2=_0x4293eb;_0x34b3a2;_0x34b3a2=_0x34b3a2[_0x7a35a6('0x9cd')])if(/CodeMirror-gutter-wrapper/[_0x7a35a6('0x2c3')](_0x34b3a2['className']))return!0x0;return!0x1;}(_0x233ee5[_0x4c8016('0xf42')]))return this['cm'][_0x4c8016('0xbf0')]({'type':_0x4c8016('0xe46'),'keyCode':0x8,'preventDefault':Math['abs']}),this[_0x4c8016('0xba2')](),void this[_0x4c8016('0x7dd')]();if(!this[_0x4c8016('0x7b3')]){this[_0x4c8016('0x60e')]();var _0xc467d0=_0x19fb85(_0x3b90f2,_0x233ee5[_0x4c8016('0xf42')],_0x233ee5[_0x4c8016('0xc87')]),_0x1a5876=_0x19fb85(_0x3b90f2,_0x233ee5[_0x4c8016('0xc79')],_0x233ee5['focusOffset']);_0xc467d0&&_0x1a5876&&_0x39976b(_0x3b90f2,function(){var _0x2b5882=_0x4c8016;_0x704724(_0x3b90f2[_0x2b5882('0x481')],_0x3f83ba(_0xc467d0,_0x1a5876),_0x135890),(_0xc467d0['bad']||_0x1a5876[_0x2b5882('0xf05')])&&(_0x3b90f2[_0x2b5882('0x5ec')][_0x2b5882('0x66c')]=!0x0);});}}},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0xaf7')]=function(){var _0x1de9e4=_0x1a265f;null!=this[_0x1de9e4('0xefd')]&&(clearTimeout(this[_0x1de9e4('0xefd')]),this['readDOMTimeout']=null);var _0x19336b,_0x56f068,_0x5adc32,_0x52fb84=this['cm'],_0x168e14=_0x52fb84['display'],_0x4a9bac=_0x52fb84[_0x1de9e4('0x481')]['sel'][_0x1de9e4('0x1071')](),_0x46e3de=_0x4a9bac[_0x1de9e4('0x1161')](),_0x541dfe=_0x4a9bac['to']();if(0x0==_0x46e3de['ch']&&_0x46e3de[_0x1de9e4('0x860')]>_0x52fb84['firstLine']()&&(_0x46e3de=_0x3de23f(_0x46e3de['line']-0x1,_0x1964d4(_0x52fb84['doc'],_0x46e3de[_0x1de9e4('0x860')]-0x1)['length'])),_0x541dfe['ch']==_0x1964d4(_0x52fb84['doc'],_0x541dfe[_0x1de9e4('0x860')])['text'][_0x1de9e4('0x13')]&&_0x541dfe[_0x1de9e4('0x860')]<_0x52fb84['lastLine']()&&(_0x541dfe=_0x3de23f(_0x541dfe[_0x1de9e4('0x860')]+0x1,0x0)),_0x46e3de['line']<_0x168e14[_0x1de9e4('0x812')]||_0x541dfe[_0x1de9e4('0x860')]>_0x168e14['viewTo']-0x1)return!0x1;_0x46e3de[_0x1de9e4('0x860')]==_0x168e14[_0x1de9e4('0x812')]||0x0==(_0x19336b=_0x376711(_0x52fb84,_0x46e3de[_0x1de9e4('0x860')]))?(_0x56f068=_0x432947(_0x168e14[_0x1de9e4('0x770')][0x0][_0x1de9e4('0x860')]),_0x5adc32=_0x168e14[_0x1de9e4('0x770')][0x0][_0x1de9e4('0xb95')]):(_0x56f068=_0x432947(_0x168e14[_0x1de9e4('0x770')][_0x19336b][_0x1de9e4('0x860')]),_0x5adc32=_0x168e14[_0x1de9e4('0x770')][_0x19336b-0x1][_0x1de9e4('0xb95')][_0x1de9e4('0x85b')]);var _0x652689,_0x1f21f3,_0x196be0=_0x376711(_0x52fb84,_0x541dfe[_0x1de9e4('0x860')]);if(_0x196be0==_0x168e14['view']['length']-0x1?(_0x652689=_0x168e14['viewTo']-0x1,_0x1f21f3=_0x168e14[_0x1de9e4('0x54a')][_0x1de9e4('0xc3b')]):(_0x652689=_0x432947(_0x168e14[_0x1de9e4('0x770')][_0x196be0+0x1]['line'])-0x1,_0x1f21f3=_0x168e14[_0x1de9e4('0x770')][_0x196be0+0x1][_0x1de9e4('0xb95')]['previousSibling']),!_0x5adc32)return!0x1;for(var _0x2e68e0=_0x52fb84[_0x1de9e4('0x481')][_0x1de9e4('0x5ee')](function(_0x207e1a,_0x2feac0,_0x2f468a,_0x4adbea,_0x13fd26){var _0x30730b=_0x1de9e4,_0x3a08ad='',_0x17b36e=!0x1,_0x5843aa=_0x207e1a[_0x30730b('0x481')][_0x30730b('0x5a5')](),_0x1eda82=!0x1;function _0x1c3d6e(){_0x17b36e&&(_0x3a08ad+=_0x5843aa,_0x1eda82&&(_0x3a08ad+=_0x5843aa),_0x17b36e=_0x1eda82=!0x1);}function _0x5f4278(_0x3f0873){_0x3f0873&&(_0x1c3d6e(),_0x3a08ad+=_0x3f0873);}function _0xe81e0d(_0x44d1b4){var _0x2a0811=_0x30730b;if(0x1==_0x44d1b4[_0x2a0811('0x5a')]){var _0x174df6=_0x44d1b4['getAttribute'](_0x2a0811('0x1052'));if(_0x174df6)return void _0x5f4278(_0x174df6);var _0x590550,_0x5a2e5d=_0x44d1b4['getAttribute'](_0x2a0811('0xdb9'));if(_0x5a2e5d){var _0xf95c4e=_0x207e1a[_0x2a0811('0x101')](_0x3de23f(_0x4adbea,0x0),_0x3de23f(_0x13fd26+0x1,0x0),(_0x3b6853=+_0x5a2e5d,function(_0x41a98d){return _0x41a98d['id']==_0x3b6853;}));return void(_0xf95c4e[_0x2a0811('0x13')]&&(_0x590550=_0xf95c4e[0x0]['find'](0x0))&&_0x5f4278(_0x4f8473(_0x207e1a[_0x2a0811('0x481')],_0x590550['from'],_0x590550['to'])[_0x2a0811('0x2e2')](_0x5843aa)));}if(_0x2a0811('0x2e')==_0x44d1b4[_0x2a0811('0x6d9')](_0x2a0811('0x429')))return;var _0x21a7a3=/^(pre|div|p|li|table|br)$/i[_0x2a0811('0x2c3')](_0x44d1b4[_0x2a0811('0xfe4')]);if(!/^br$/i[_0x2a0811('0x2c3')](_0x44d1b4[_0x2a0811('0xfe4')])&&0x0==_0x44d1b4['textContent'][_0x2a0811('0x13')])return;_0x21a7a3&&_0x1c3d6e();for(var _0x1eb96c=0x0;_0x1eb96c<_0x44d1b4['childNodes'][_0x2a0811('0x13')];_0x1eb96c++)_0xe81e0d(_0x44d1b4[_0x2a0811('0x802')][_0x1eb96c]);/^(pre|p)$/i[_0x2a0811('0x2c3')](_0x44d1b4[_0x2a0811('0xfe4')])&&(_0x1eda82=!0x0),_0x21a7a3&&(_0x17b36e=!0x0);}else 0x3==_0x44d1b4[_0x2a0811('0x5a')]&&_0x5f4278(_0x44d1b4['nodeValue'][_0x2a0811('0xd06')](/\u200b/g,'')[_0x2a0811('0xd06')](/\u00a0/g,'\x20'));var _0x3b6853;}for(;_0xe81e0d(_0x2feac0),_0x2feac0!=_0x2f468a;)_0x2feac0=_0x2feac0[_0x30730b('0x85b')],_0x1eda82=!0x1;return _0x3a08ad;}(_0x52fb84,_0x5adc32,_0x1f21f3,_0x56f068,_0x652689)),_0x46d297=_0x4f8473(_0x52fb84[_0x1de9e4('0x481')],_0x3de23f(_0x56f068,0x0),_0x3de23f(_0x652689,_0x1964d4(_0x52fb84[_0x1de9e4('0x481')],_0x652689)[_0x1de9e4('0x5b2')][_0x1de9e4('0x13')]));_0x2e68e0[_0x1de9e4('0x13')]>0x1&&_0x46d297[_0x1de9e4('0x13')]>0x1;)if(_0x18184b(_0x2e68e0)==_0x18184b(_0x46d297))_0x2e68e0[_0x1de9e4('0x2a3')](),_0x46d297[_0x1de9e4('0x2a3')](),_0x652689--;else{if(_0x2e68e0[0x0]!=_0x46d297[0x0])break;_0x2e68e0['shift'](),_0x46d297[_0x1de9e4('0xf30')](),_0x56f068++;}for(var _0x336e9c=0x0,_0xf27f31=0x0,_0x51b2c8=_0x2e68e0[0x0],_0x3ad15a=_0x46d297[0x0],_0x22fe2d=Math[_0x1de9e4('0xd3f')](_0x51b2c8[_0x1de9e4('0x13')],_0x3ad15a['length']);_0x336e9c<_0x22fe2d&&_0x51b2c8['charCodeAt'](_0x336e9c)==_0x3ad15a[_0x1de9e4('0xd66')](_0x336e9c);)++_0x336e9c;for(var _0xb3ec7c=_0x18184b(_0x2e68e0),_0x15cab4=_0x18184b(_0x46d297),_0x5eba3b=Math['min'](_0xb3ec7c['length']-(0x1==_0x2e68e0[_0x1de9e4('0x13')]?_0x336e9c:0x0),_0x15cab4[_0x1de9e4('0x13')]-(0x1==_0x46d297[_0x1de9e4('0x13')]?_0x336e9c:0x0));_0xf27f31<_0x5eba3b&&_0xb3ec7c['charCodeAt'](_0xb3ec7c[_0x1de9e4('0x13')]-_0xf27f31-0x1)==_0x15cab4[_0x1de9e4('0xd66')](_0x15cab4[_0x1de9e4('0x13')]-_0xf27f31-0x1);)++_0xf27f31;if(0x1==_0x2e68e0[_0x1de9e4('0x13')]&&0x1==_0x46d297['length']&&_0x56f068==_0x46e3de[_0x1de9e4('0x860')])for(;_0x336e9c&&_0x336e9c>_0x46e3de['ch']&&_0xb3ec7c[_0x1de9e4('0xd66')](_0xb3ec7c['length']-_0xf27f31-0x1)==_0x15cab4[_0x1de9e4('0xd66')](_0x15cab4[_0x1de9e4('0x13')]-_0xf27f31-0x1);)_0x336e9c--,_0xf27f31++;_0x2e68e0[_0x2e68e0[_0x1de9e4('0x13')]-0x1]=_0xb3ec7c['slice'](0x0,_0xb3ec7c[_0x1de9e4('0x13')]-_0xf27f31)[_0x1de9e4('0xd06')](/^\u200b+/,''),_0x2e68e0[0x0]=_0x2e68e0[0x0]['slice'](_0x336e9c)['replace'](/\u200b+$/,'');var _0x513912=_0x3de23f(_0x56f068,_0x336e9c),_0x1adc48=_0x3de23f(_0x652689,_0x46d297[_0x1de9e4('0x13')]?_0x18184b(_0x46d297)['length']-_0xf27f31:0x0);return _0x2e68e0[_0x1de9e4('0x13')]>0x1||_0x2e68e0[0x0]||_0x1213af(_0x513912,_0x1adc48)?(_0x1b6eb7(_0x52fb84[_0x1de9e4('0x481')],_0x2e68e0,_0x513912,_0x1adc48,_0x1de9e4('0xc09')),!0x0):void 0x0;},_0x351fca[_0x1a265f('0xe02')]['ensurePolled']=function(){var _0x33b734=_0x1a265f;this[_0x33b734('0x397')]();},_0x351fca['prototype'][_0x1a265f('0x103')]=function(){this['forceCompositionEnd']();},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x397')]=function(){var _0xea7db0=_0x1a265f;this[_0xea7db0('0x7b3')]&&(clearTimeout(this[_0xea7db0('0xefd')]),this[_0xea7db0('0x7b3')]=null,this['updateFromDOM'](),this[_0xea7db0('0x26c')][_0xea7db0('0xba2')](),this[_0xea7db0('0x26c')][_0xea7db0('0x7dd')]());},_0x351fca[_0x1a265f('0xe02')]['readFromDOMSoon']=function(){var _0x11b19e=_0x1a265f,_0x17c7d2=this;null==this[_0x11b19e('0xefd')]&&(this[_0x11b19e('0xefd')]=setTimeout(function(){var _0x444e98=_0x11b19e;if(_0x17c7d2['readDOMTimeout']=null,_0x17c7d2[_0x444e98('0x7b3')]){if(!_0x17c7d2[_0x444e98('0x7b3')][_0x444e98('0x1126')])return;_0x17c7d2[_0x444e98('0x7b3')]=null;}_0x17c7d2['updateFromDOM']();},0x50));},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x2e6')]=function(){var _0x170b06=_0x1a265f,_0x8f9a48=this;!this['cm'][_0x170b06('0xec6')]()&&this['pollContent']()||_0x39976b(this['cm'],function(){return _0x589d49(_0x8f9a48['cm']);});},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x3d1')]=function(_0x435caa){var _0x400761=_0x1a265f;_0x435caa[_0x400761('0xd0b')]=_0x400761('0x2e');},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0xf49')]=function(_0x1fb154){var _0xb8fd2=_0x1a265f;0x0==_0x1fb154[_0xb8fd2('0xd2a')]||this[_0xb8fd2('0x7b3')]||(_0x1fb154[_0xb8fd2('0x510')](),this['cm']['isReadOnly']()||_0x53bb92(this['cm'],_0x45bfb0)(this['cm'],String[_0xb8fd2('0x1006')](null==_0x1fb154[_0xb8fd2('0xd2a')]?_0x1fb154[_0xb8fd2('0xba8')]:_0x1fb154[_0xb8fd2('0xd2a')]),0x0));},_0x351fca['prototype'][_0x1a265f('0xae1')]=function(_0x5bdfef){var _0x53f3c0=_0x1a265f;this[_0x53f3c0('0x26c')][_0x53f3c0('0xd0b')]=String('nocursor'!=_0x5bdfef);},_0x351fca['prototype']['onContextMenu']=function(){},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0x91f')]=function(){},_0x351fca[_0x1a265f('0xe02')][_0x1a265f('0xd9b')]=!0x0;var _0x3b8ec=function(_0x2d4f85){var _0xbd9576=_0x1a265f;this['cm']=_0x2d4f85,this[_0xbd9576('0x3a2')]='',this[_0xbd9576('0x5c9')]=!0x1,this[_0xbd9576('0x5a3')]=new _0x4e4ea8(),this['hasSelection']=!0x1,this[_0xbd9576('0x7b3')]=null;};_0x3b8ec['prototype'][_0x1a265f('0xeb9')]=function(_0x3b4280){var _0x24aed2=_0x1a265f,_0x5f008e=this,_0x8d9723=this,_0x566501=this['cm'];this[_0x24aed2('0x4b0')](_0x3b4280);var _0x475e34=this[_0x24aed2('0x7ea')];function _0x214647(_0x4a91e6){var _0x37117c=_0x24aed2;if(!_0x5c7334(_0x566501,_0x4a91e6)){if(_0x566501[_0x37117c('0x8e8')]())_0x10b816({'lineWise':!0x1,'text':_0x566501[_0x37117c('0x6a9')]()});else{if(!_0x566501['options']['lineWiseCopyCut'])return;var _0x1bd962=_0x37d22b(_0x566501);_0x10b816({'lineWise':!0x0,'text':_0x1bd962[_0x37117c('0x5b2')]}),_0x37117c('0x82e')==_0x4a91e6['type']?_0x566501[_0x37117c('0x1b7')](_0x1bd962[_0x37117c('0x1de')],null,_0x135890):(_0x8d9723['prevInput']='',_0x475e34[_0x37117c('0x30')]=_0x1bd962['text']['join']('\x0a'),_0x23e318(_0x475e34));}_0x37117c('0x82e')==_0x4a91e6['type']&&(_0x566501[_0x37117c('0x55d')]['cutIncoming']=+new Date());}}_0x3b4280[_0x24aed2('0xfc3')]['insertBefore'](this['wrapper'],_0x3b4280[_0x24aed2('0xfc3')][_0x24aed2('0xf86')]),_0x34394b&&(_0x475e34[_0x24aed2('0xe81')][_0x24aed2('0x115')]='0px'),_0x4d62f6(_0x475e34,_0x24aed2('0x2f8'),function(){var _0x4874d8=_0x24aed2;_0x22bb28&&_0x217fe9>=0x9&&_0x5f008e[_0x4874d8('0x469')]&&(_0x5f008e['hasSelection']=null),_0x8d9723['poll']();}),_0x4d62f6(_0x475e34,'paste',function(_0x83397b){var _0x4c59e3=_0x24aed2;_0x5c7334(_0x566501,_0x83397b)||_0x539421(_0x83397b,_0x566501)||(_0x566501[_0x4c59e3('0x55d')][_0x4c59e3('0x496')]=+new Date(),_0x8d9723['fastPoll']());}),_0x4d62f6(_0x475e34,_0x24aed2('0x82e'),_0x214647),_0x4d62f6(_0x475e34,_0x24aed2('0x3cd'),_0x214647),_0x4d62f6(_0x3b4280['scroller'],_0x24aed2('0x980'),function(_0xdbd121){var _0x2b6084=_0x24aed2;if(!_0x113cb1(_0x3b4280,_0xdbd121)&&!_0x5c7334(_0x566501,_0xdbd121)){if(!_0x475e34[_0x2b6084('0xd7a')])return _0x566501['state'][_0x2b6084('0x496')]=+new Date(),void _0x8d9723[_0x2b6084('0x7dd')]();var _0x822ad4=new Event(_0x2b6084('0x980'));_0x822ad4[_0x2b6084('0x7ba')]=_0xdbd121[_0x2b6084('0x7ba')],_0x475e34[_0x2b6084('0xd7a')](_0x822ad4);}}),_0x4d62f6(_0x3b4280[_0x24aed2('0x1f5')],'selectstart',function(_0x36eb9e){_0x113cb1(_0x3b4280,_0x36eb9e)||_0x3de262(_0x36eb9e);}),_0x4d62f6(_0x475e34,_0x24aed2('0x5ea'),function(){var _0x46989e=_0x24aed2,_0x457ce9=_0x566501[_0x46989e('0xbb7')](_0x46989e('0x1161'));_0x8d9723[_0x46989e('0x7b3')]&&_0x8d9723[_0x46989e('0x7b3')][_0x46989e('0x5e8')][_0x46989e('0xb15')](),_0x8d9723[_0x46989e('0x7b3')]={'start':_0x457ce9,'range':_0x566501[_0x46989e('0x8fc')](_0x457ce9,_0x566501[_0x46989e('0xbb7')]('to'),{'className':_0x46989e('0x405')})};}),_0x4d62f6(_0x475e34,_0x24aed2('0xea3'),function(){var _0x495c5a=_0x24aed2;_0x8d9723[_0x495c5a('0x7b3')]&&(_0x8d9723[_0x495c5a('0x7f1')](),_0x8d9723[_0x495c5a('0x7b3')][_0x495c5a('0x5e8')][_0x495c5a('0xb15')](),_0x8d9723[_0x495c5a('0x7b3')]=null);});},_0x3b8ec[_0x1a265f('0xe02')][_0x1a265f('0x4b0')]=function(_0x34e2d3){var _0x4fa47c=_0x1a265f;this[_0x4fa47c('0xfc3')]=_0x47a235(),this['textarea']=this[_0x4fa47c('0xfc3')][_0x4fa47c('0xf86')];},_0x3b8ec['prototype'][_0x1a265f('0x8f8')]=function(_0x18c4fd){var _0x433a50=_0x1a265f;_0x18c4fd?this[_0x433a50('0x7ea')][_0x433a50('0x451')](_0x433a50('0x10e1'),_0x18c4fd):this[_0x433a50('0x7ea')][_0x433a50('0xddc')](_0x433a50('0x10e1'));},_0x3b8ec[_0x1a265f('0xe02')][_0x1a265f('0x8aa')]=function(){var _0x11c68d=_0x1a265f,_0x41ea92=this['cm'],_0x4282b3=_0x41ea92[_0x11c68d('0x13d')],_0x1bb834=_0x41ea92[_0x11c68d('0x481')],_0x75fb16=_0x457d43(_0x41ea92);if(_0x41ea92[_0x11c68d('0x29d')][_0x11c68d('0x69d')]){var _0x395228=_0x42fc0e(_0x41ea92,_0x1bb834[_0x11c68d('0x990')][_0x11c68d('0x1071')]()[_0x11c68d('0x116a')],'div'),_0x4825b6=_0x4282b3[_0x11c68d('0xfc3')]['getBoundingClientRect'](),_0xbebe92=_0x4282b3[_0x11c68d('0x54a')][_0x11c68d('0x422')]();_0x75fb16[_0x11c68d('0x16e')]=Math[_0x11c68d('0xa0d')](0x0,Math[_0x11c68d('0xd3f')](_0x4282b3['wrapper'][_0x11c68d('0x9d9')]-0xa,_0x395228[_0x11c68d('0x5b')]+_0xbebe92[_0x11c68d('0x5b')]-_0x4825b6[_0x11c68d('0x5b')])),_0x75fb16['teLeft']=Math[_0x11c68d('0xa0d')](0x0,Math[_0x11c68d('0xd3f')](_0x4282b3[_0x11c68d('0xfc3')][_0x11c68d('0xddd')]-0xa,_0x395228[_0x11c68d('0x10fb')]+_0xbebe92['left']-_0x4825b6[_0x11c68d('0x10fb')]));}return _0x75fb16;},_0x3b8ec['prototype'][_0x1a265f('0x6ca')]=function(_0x320d4d){var _0x5429a9=_0x1a265f,_0x2fd420=this['cm'][_0x5429a9('0x13d')];_0x221945(_0x2fd420[_0x5429a9('0x8ed')],_0x320d4d[_0x5429a9('0x10a8')]),_0x221945(_0x2fd420[_0x5429a9('0xb4d')],_0x320d4d['selection']),null!=_0x320d4d[_0x5429a9('0x16e')]&&(this['wrapper'][_0x5429a9('0xe81')][_0x5429a9('0x5b')]=_0x320d4d[_0x5429a9('0x16e')]+'px',this[_0x5429a9('0xfc3')]['style'][_0x5429a9('0x10fb')]=_0x320d4d[_0x5429a9('0x537')]+'px');},_0x3b8ec['prototype'][_0x1a265f('0x103')]=function(_0x386d44){var _0x353e37=_0x1a265f;if(!this[_0x353e37('0xfe0')]&&!this[_0x353e37('0x7b3')]){var _0x5be465=this['cm'];if(_0x5be465[_0x353e37('0x8e8')]()){this[_0x353e37('0x3a2')]='';var _0xa60ee4=_0x5be465[_0x353e37('0x806')]();this['textarea'][_0x353e37('0x30')]=_0xa60ee4,_0x5be465[_0x353e37('0x55d')][_0x353e37('0x7be')]&&_0x23e318(this[_0x353e37('0x7ea')]),_0x22bb28&&_0x217fe9>=0x9&&(this['hasSelection']=_0xa60ee4);}else _0x386d44||(this[_0x353e37('0x3a2')]=this[_0x353e37('0x7ea')][_0x353e37('0x30')]='',_0x22bb28&&_0x217fe9>=0x9&&(this['hasSelection']=null));}},_0x3b8ec[_0x1a265f('0xe02')]['getField']=function(){var _0xea5d3c=_0x1a265f;return this[_0xea5d3c('0x7ea')];},_0x3b8ec[_0x1a265f('0xe02')]['supportsTouch']=function(){return!0x1;},_0x3b8ec['prototype']['focus']=function(){var _0xdcee4d=_0x1a265f;if(_0xdcee4d('0x1ac')!=this['cm']['options'][_0xdcee4d('0x1134')]&&(!_0x221ee3||_0x205be5()!=this['textarea']))try{this[_0xdcee4d('0x7ea')][_0xdcee4d('0x7dd')]();}catch(_0x644af4){}},_0x3b8ec[_0x1a265f('0xe02')][_0x1a265f('0xba2')]=function(){var _0x5ddff2=_0x1a265f;this[_0x5ddff2('0x7ea')]['blur']();},_0x3b8ec[_0x1a265f('0xe02')][_0x1a265f('0x91f')]=function(){var _0x1148e3=_0x1a265f;this[_0x1148e3('0xfc3')][_0x1148e3('0xe81')][_0x1148e3('0x5b')]=this[_0x1148e3('0xfc3')][_0x1148e3('0xe81')][_0x1148e3('0x10fb')]=0x0;},_0x3b8ec[_0x1a265f('0xe02')]['receivedFocus']=function(){var _0x310b9a=_0x1a265f;this[_0x310b9a('0xeb2')]();},_0x3b8ec[_0x1a265f('0xe02')]['slowPoll']=function(){var _0x2cdf84=_0x1a265f,_0x4fcb60=this;this[_0x2cdf84('0x5c9')]||this[_0x2cdf84('0x5a3')]['set'](this['cm'][_0x2cdf84('0x29d')]['pollInterval'],function(){var _0x31ee0d=_0x2cdf84;_0x4fcb60['poll'](),_0x4fcb60['cm'][_0x31ee0d('0x55d')]['focused']&&_0x4fcb60[_0x31ee0d('0xeb2')]();});},_0x3b8ec['prototype'][_0x1a265f('0xe75')]=function(){var _0x14220c=_0x1a265f,_0x7f784d=!0x1,_0x53da66=this;_0x53da66[_0x14220c('0x5c9')]=!0x0,_0x53da66[_0x14220c('0x5a3')][_0x14220c('0x24a')](0x14,function _0x35876d(){var _0x46c077=_0x14220c;_0x53da66['poll']()||_0x7f784d?(_0x53da66[_0x46c077('0x5c9')]=!0x1,_0x53da66[_0x46c077('0xeb2')]()):(_0x7f784d=!0x0,_0x53da66[_0x46c077('0x5a3')][_0x46c077('0x24a')](0x3c,_0x35876d));});},_0x3b8ec[_0x1a265f('0xe02')][_0x1a265f('0x7f1')]=function(){var _0x5bf3a3=_0x1a265f,_0xc082d1=this,_0x728848=this['cm'],_0x13e031=this[_0x5bf3a3('0x7ea')],_0x155e9e=this[_0x5bf3a3('0x3a2')];if(this[_0x5bf3a3('0xfe0')]||!_0x728848[_0x5bf3a3('0x55d')][_0x5bf3a3('0x7be')]||_0x3d235a(_0x13e031)&&!_0x155e9e&&!this[_0x5bf3a3('0x7b3')]||_0x728848['isReadOnly']()||_0x728848['options']['disableInput']||_0x728848[_0x5bf3a3('0x55d')][_0x5bf3a3('0x93d')])return!0x1;var _0x5316d6=_0x13e031[_0x5bf3a3('0x30')];if(_0x5316d6==_0x155e9e&&!_0x728848[_0x5bf3a3('0x8e8')]())return!0x1;if(_0x22bb28&&_0x217fe9>=0x9&&this[_0x5bf3a3('0x469')]===_0x5316d6||_0x182eee&&/[\uf700-\uf7ff]/[_0x5bf3a3('0x2c3')](_0x5316d6))return _0x728848[_0x5bf3a3('0x13d')][_0x5bf3a3('0x2f8')][_0x5bf3a3('0x103')](),!0x1;if(_0x728848[_0x5bf3a3('0x481')]['sel']==_0x728848['display'][_0x5bf3a3('0x325')]){var _0x381591=_0x5316d6[_0x5bf3a3('0xd66')](0x0);if(0x200b!=_0x381591||_0x155e9e||(_0x155e9e='​'),0x21da==_0x381591)return this[_0x5bf3a3('0x103')](),this['cm'][_0x5bf3a3('0x1162')](_0x5bf3a3('0x59'));}for(var _0x53e7c9=0x0,_0x4ba030=Math[_0x5bf3a3('0xd3f')](_0x155e9e['length'],_0x5316d6[_0x5bf3a3('0x13')]);_0x53e7c9<_0x4ba030&&_0x155e9e['charCodeAt'](_0x53e7c9)==_0x5316d6[_0x5bf3a3('0xd66')](_0x53e7c9);)++_0x53e7c9;return _0x39976b(_0x728848,function(){var _0x59f9fa=_0x5bf3a3;_0x45bfb0(_0x728848,_0x5316d6[_0x59f9fa('0xdf1')](_0x53e7c9),_0x155e9e[_0x59f9fa('0x13')]-_0x53e7c9,null,_0xc082d1[_0x59f9fa('0x7b3')]?_0x59f9fa('0x5fa'):null),_0x5316d6['length']>0x3e8||_0x5316d6[_0x59f9fa('0xf00')]('\x0a')>-0x1?_0x13e031[_0x59f9fa('0x30')]=_0xc082d1[_0x59f9fa('0x3a2')]='':_0xc082d1[_0x59f9fa('0x3a2')]=_0x5316d6,_0xc082d1[_0x59f9fa('0x7b3')]&&(_0xc082d1['composing'][_0x59f9fa('0x5e8')][_0x59f9fa('0xb15')](),_0xc082d1['composing']['range']=_0x728848['markText'](_0xc082d1[_0x59f9fa('0x7b3')][_0x59f9fa('0xa7e')],_0x728848['getCursor']('to'),{'className':'CodeMirror-composing'}));}),!0x0;},_0x3b8ec[_0x1a265f('0xe02')]['ensurePolled']=function(){var _0x272905=_0x1a265f;this[_0x272905('0x5c9')]&&this[_0x272905('0x7f1')]()&&(this[_0x272905('0x5c9')]=!0x1);},_0x3b8ec[_0x1a265f('0xe02')][_0x1a265f('0xf49')]=function(){var _0x3e261f=_0x1a265f;_0x22bb28&&_0x217fe9>=0x9&&(this['hasSelection']=null),this[_0x3e261f('0xe75')]();},_0x3b8ec[_0x1a265f('0xe02')][_0x1a265f('0x8d')]=function(_0x3b6590){var _0x110805=_0x1a265f,_0x30f6ce=this,_0x186592=_0x30f6ce['cm'],_0x3ac031=_0x186592[_0x110805('0x13d')],_0x24b616=_0x30f6ce[_0x110805('0x7ea')];_0x30f6ce['contextMenuPending']&&_0x30f6ce[_0x110805('0xfe0')]();var _0x5ec856=_0x55e6f5(_0x186592,_0x3b6590),_0x5cd5cb=_0x3ac031[_0x110805('0xf31')][_0x110805('0x94d')];if(_0x5ec856&&!_0x126de8){_0x186592[_0x110805('0x29d')]['resetSelectionOnContextMenu']&&-0x1==_0x186592['doc'][_0x110805('0x990')][_0x110805('0x4cc')](_0x5ec856)&&_0x53bb92(_0x186592,_0x704724)(_0x186592[_0x110805('0x481')],_0x3f83ba(_0x5ec856),_0x135890);var _0x545161,_0x39d14c=_0x24b616[_0x110805('0xe81')][_0x110805('0x5be')],_0x30f544=_0x30f6ce['wrapper'][_0x110805('0xe81')][_0x110805('0x5be')],_0x45e689=_0x30f6ce[_0x110805('0xfc3')]['offsetParent'][_0x110805('0x422')]();if(_0x30f6ce[_0x110805('0xfc3')][_0x110805('0xe81')][_0x110805('0x5be')]=_0x110805('0xa74'),_0x24b616[_0x110805('0xe81')][_0x110805('0x5be')]='position:\x20absolute;\x20width:\x2030px;\x20height:\x2030px;\x0a\x20\x20\x20\x20\x20\x20top:\x20'+(_0x3b6590['clientY']-_0x45e689[_0x110805('0x5b')]-0x5)+'px;\x20left:\x20'+(_0x3b6590[_0x110805('0x693')]-_0x45e689['left']-0x5)+_0x110805('0x745')+(_0x22bb28?_0x110805('0xc9'):_0x110805('0x671'))+_0x110805('0x5b5'),_0x5683b3&&(_0x545161=window['scrollY']),_0x3ac031[_0x110805('0x2f8')][_0x110805('0x7dd')](),_0x5683b3&&window[_0x110805('0xd41')](null,_0x545161),_0x3ac031[_0x110805('0x2f8')][_0x110805('0x103')](),_0x186592[_0x110805('0x8e8')]()||(_0x24b616[_0x110805('0x30')]=_0x30f6ce[_0x110805('0x3a2')]='\x20'),_0x30f6ce['contextMenuPending']=_0x33772e,_0x3ac031[_0x110805('0x325')]=_0x186592[_0x110805('0x481')][_0x110805('0x990')],clearTimeout(_0x3ac031[_0x110805('0xdeb')]),_0x22bb28&&_0x217fe9>=0x9&&_0x1ba4c4(),_0x2a46fb){_0x28ee18(_0x3b6590);var _0x563266=function(){var _0x2b11dd=_0x110805;_0x4fabc1(window,_0x2b11dd('0x517'),_0x563266),setTimeout(_0x33772e,0x14);};_0x4d62f6(window,_0x110805('0x517'),_0x563266);}else setTimeout(_0x33772e,0x32);}function _0x1ba4c4(){var _0x3a247e=_0x110805;if(null!=_0x24b616['selectionStart']){var _0x402e10=_0x186592[_0x3a247e('0x8e8')](),_0x31a7c3='​'+(_0x402e10?_0x24b616['value']:'');_0x24b616[_0x3a247e('0x30')]='⇚',_0x24b616[_0x3a247e('0x30')]=_0x31a7c3,_0x30f6ce[_0x3a247e('0x3a2')]=_0x402e10?'':'​',_0x24b616[_0x3a247e('0xdc3')]=0x1,_0x24b616['selectionEnd']=_0x31a7c3[_0x3a247e('0x13')],_0x3ac031[_0x3a247e('0x325')]=_0x186592[_0x3a247e('0x481')][_0x3a247e('0x990')];}}function _0x33772e(){var _0x509aae=_0x110805;if(_0x30f6ce[_0x509aae('0xfe0')]==_0x33772e&&(_0x30f6ce[_0x509aae('0xfe0')]=!0x1,_0x30f6ce['wrapper']['style'][_0x509aae('0x5be')]=_0x30f544,_0x24b616[_0x509aae('0xe81')][_0x509aae('0x5be')]=_0x39d14c,_0x22bb28&&_0x217fe9<0x9&&_0x3ac031[_0x509aae('0xeeb')]['setScrollTop'](_0x3ac031['scroller'][_0x509aae('0x94d')]=_0x5cd5cb),null!=_0x24b616['selectionStart'])){(!_0x22bb28||_0x22bb28&&_0x217fe9<0x9)&&_0x1ba4c4();var _0x2b6ab9=0x0,_0xb5559e=function(){var _0x383bc6=_0x509aae;_0x3ac031['selForContextMenu']==_0x186592[_0x383bc6('0x481')][_0x383bc6('0x990')]&&0x0==_0x24b616[_0x383bc6('0xdc3')]&&_0x24b616['selectionEnd']>0x0&&'​'==_0x30f6ce['prevInput']?_0x53bb92(_0x186592,_0x2f49a1)(_0x186592):_0x2b6ab9++<0xa?_0x3ac031[_0x383bc6('0xdeb')]=setTimeout(_0xb5559e,0x1f4):(_0x3ac031['selForContextMenu']=null,_0x3ac031['input'][_0x383bc6('0x103')]());};_0x3ac031[_0x509aae('0xdeb')]=setTimeout(_0xb5559e,0xc8);}}},_0x3b8ec[_0x1a265f('0xe02')]['readOnlyChanged']=function(_0x55812b){var _0x3899de=_0x1a265f;_0x55812b||this[_0x3899de('0x103')](),this[_0x3899de('0x7ea')][_0x3899de('0x7a2')]=_0x3899de('0x1ac')==_0x55812b,this[_0x3899de('0x7ea')][_0x3899de('0x1134')]=!!_0x55812b;},_0x3b8ec['prototype'][_0x1a265f('0x3d1')]=function(){},_0x3b8ec[_0x1a265f('0xe02')]['needsContentAttribute']=!0x1,function(_0x4577a0){var _0x3cb826=_0x1a265f,_0x1b4fad=_0x4577a0[_0x3cb826('0x925')];function _0xa00a81(_0x35bc8d,_0x315325,_0x5ce423,_0x4de57d){var _0x2d5553=_0x3cb826;_0x4577a0[_0x2d5553('0xd88')][_0x35bc8d]=_0x315325,_0x5ce423&&(_0x1b4fad[_0x35bc8d]=_0x4de57d?function(_0x3c2abf,_0x50c8a3,_0x1c0c2a){_0x1c0c2a!=_0x52e06b&&_0x5ce423(_0x3c2abf,_0x50c8a3,_0x1c0c2a);}:_0x5ce423);}_0x4577a0[_0x3cb826('0xc54')]=_0xa00a81,_0x4577a0[_0x3cb826('0x10b9')]=_0x52e06b,_0xa00a81('value','',function(_0x4c7971,_0x2981e6){var _0x49ffd2=_0x3cb826;return _0x4c7971[_0x49ffd2('0x8d5')](_0x2981e6);},!0x0),_0xa00a81('mode',null,function(_0xc8109,_0x7b2b4f){var _0x3401f6=_0x3cb826;_0xc8109[_0x3401f6('0x481')][_0x3401f6('0x3d9')]=_0x7b2b4f,_0x356ea6(_0xc8109);},!0x0),_0xa00a81(_0x3cb826('0xfc2'),0x2,_0x356ea6,!0x0),_0xa00a81(_0x3cb826('0x7b'),!0x1),_0xa00a81(_0x3cb826('0x1e2'),!0x0),_0xa00a81(_0x3cb826('0xad4'),0x4,function(_0x43b38a){_0x32d443(_0x43b38a),_0x4ccb63(_0x43b38a),_0x589d49(_0x43b38a);},!0x0),_0xa00a81(_0x3cb826('0x5a5'),null,function(_0x31436f,_0x1b5431){var _0x1c738a=_0x3cb826;if(_0x31436f[_0x1c738a('0x481')][_0x1c738a('0x785')]=_0x1b5431,_0x1b5431){var _0x33bd20=[],_0x2e4834=_0x31436f['doc'][_0x1c738a('0x3f0')];_0x31436f[_0x1c738a('0x481')][_0x1c738a('0xe01')](function(_0x20890e){var _0x189a66=_0x1c738a;for(var _0x4f0ea6=0x0;;){var _0x409b1b=_0x20890e[_0x189a66('0x5b2')][_0x189a66('0xf00')](_0x1b5431,_0x4f0ea6);if(-0x1==_0x409b1b)break;_0x4f0ea6=_0x409b1b+_0x1b5431[_0x189a66('0x13')],_0x33bd20[_0x189a66('0x91b')](_0x3de23f(_0x2e4834,_0x409b1b));}_0x2e4834++;});for(var _0x4a5570=_0x33bd20[_0x1c738a('0x13')]-0x1;_0x4a5570>=0x0;_0x4a5570--)_0x1b6eb7(_0x31436f[_0x1c738a('0x481')],_0x1b5431,_0x33bd20[_0x4a5570],_0x3de23f(_0x33bd20[_0x4a5570]['line'],_0x33bd20[_0x4a5570]['ch']+_0x1b5431[_0x1c738a('0x13')]));}}),_0xa00a81(_0x3cb826('0x10cb'),/[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g,function(_0x2b3023,_0x370d6b,_0x281758){var _0x43b40f=_0x3cb826;_0x2b3023['state']['specialChars']=new RegExp(_0x370d6b[_0x43b40f('0x5f3')]+(_0x370d6b[_0x43b40f('0x2c3')]('\x09')?'':'|\x09'),'g'),_0x281758!=_0x52e06b&&_0x2b3023[_0x43b40f('0x18e')]();}),_0xa00a81(_0x3cb826('0xcd0'),_0x26785d,function(_0xd3fef){var _0x4e7f83=_0x3cb826;return _0xd3fef[_0x4e7f83('0x18e')]();},!0x0),_0xa00a81('electricChars',!0x0),_0xa00a81('inputStyle',_0x221ee3?'contenteditable':'textarea',function(){var _0x5b16cb=_0x3cb826;throw new Error(_0x5b16cb('0x666'));},!0x0),_0xa00a81(_0x3cb826('0x6e1'),!0x1,function(_0x520e11,_0x13d16b){return _0x520e11['getInputField']()['spellcheck']=_0x13d16b;},!0x0),_0xa00a81(_0x3cb826('0x1f2'),!0x1,function(_0x494c73,_0xfdf2dc){var _0x3c975f=_0x3cb826;return _0x494c73[_0x3c975f('0xc64')]()[_0x3c975f('0x1f2')]=_0xfdf2dc;},!0x0),_0xa00a81(_0x3cb826('0x77d'),!0x1,function(_0x58d129,_0x312824){var _0x5e3570=_0x3cb826;return _0x58d129[_0x5e3570('0xc64')]()[_0x5e3570('0x77d')]=_0x312824;},!0x0),_0xa00a81('rtlMoveVisually',!_0x300c7d),_0xa00a81('wholeLineUpdateBefore',!0x0),_0xa00a81(_0x3cb826('0x3f3'),'default',function(_0x2f00c1){_0x460623(_0x2f00c1),_0x430349(_0x2f00c1);},!0x0),_0xa00a81('keyMap','default',function(_0x40225d,_0x5675ba,_0x15d57c){var _0xac66ca=_0x3cb826,_0x5974c1=_0x32b032(_0x5675ba),_0x53dab4=_0x15d57c!=_0x52e06b&&_0x32b032(_0x15d57c);_0x53dab4&&_0x53dab4[_0xac66ca('0xa68')]&&_0x53dab4['detach'](_0x40225d,_0x5974c1),_0x5974c1[_0xac66ca('0xd25')]&&_0x5974c1[_0xac66ca('0xd25')](_0x40225d,_0x53dab4||null);}),_0xa00a81(_0x3cb826('0xa5f'),null),_0xa00a81('configureMouse',null),_0xa00a81('lineWrapping',!0x1,_0x28603c,!0x0),_0xa00a81(_0x3cb826('0xef6'),[],function(_0x544529,_0x500926){var _0x474fe1=_0x3cb826;_0x544529[_0x474fe1('0x13d')][_0x474fe1('0xf04')]=_0x51888a(_0x500926,_0x544529[_0x474fe1('0x29d')]['lineNumbers']),_0x430349(_0x544529);},!0x0),_0xa00a81(_0x3cb826('0x7f8'),!0x0,function(_0x5f37b0,_0x5091bd){var _0x5b0441=_0x3cb826;_0x5f37b0['display'][_0x5b0441('0xef6')]['style'][_0x5b0441('0x10fb')]=_0x5091bd?_0x10d6d5(_0x5f37b0[_0x5b0441('0x13d')])+'px':'0',_0x5f37b0[_0x5b0441('0x18e')]();},!0x0),_0xa00a81(_0x3cb826('0xa31'),!0x1,function(_0x3b1925){return _0x433520(_0x3b1925);},!0x0),_0xa00a81(_0x3cb826('0x1028'),'native',function(_0x471faf){var _0xaff73d=_0x3cb826;_0x2dae9f(_0x471faf),_0x433520(_0x471faf),_0x471faf[_0xaff73d('0x13d')]['scrollbars'][_0xaff73d('0xed3')](_0x471faf[_0xaff73d('0x481')][_0xaff73d('0x94d')]),_0x471faf[_0xaff73d('0x13d')][_0xaff73d('0xeeb')]['setScrollLeft'](_0x471faf[_0xaff73d('0x481')][_0xaff73d('0x37e')]);},!0x0),_0xa00a81(_0x3cb826('0x8fa'),!0x1,function(_0x53143c,_0x37977e){var _0x9799ae=_0x3cb826;_0x53143c[_0x9799ae('0x13d')][_0x9799ae('0xf04')]=_0x51888a(_0x53143c[_0x9799ae('0x29d')][_0x9799ae('0xef6')],_0x37977e),_0x430349(_0x53143c);},!0x0),_0xa00a81(_0x3cb826('0xfd8'),0x1,_0x430349,!0x0),_0xa00a81(_0x3cb826('0x650'),function(_0x52a21d){return _0x52a21d;},_0x430349,!0x0),_0xa00a81(_0x3cb826('0xfd7'),!0x1,_0x2a9cff,!0x0),_0xa00a81(_0x3cb826('0xbc3'),!0x0),_0xa00a81(_0x3cb826('0x649'),!0x0),_0xa00a81('pasteLinesPerSelection',!0x0),_0xa00a81(_0x3cb826('0x718'),!0x1),_0xa00a81(_0x3cb826('0x1134'),!0x1,function(_0x1c959e,_0x996bdc){var _0x5702cf=_0x3cb826;'nocursor'==_0x996bdc&&(_0x3d07e0(_0x1c959e),_0x1c959e[_0x5702cf('0x13d')][_0x5702cf('0x2f8')]['blur']()),_0x1c959e[_0x5702cf('0x13d')][_0x5702cf('0x2f8')][_0x5702cf('0xae1')](_0x996bdc);}),_0xa00a81(_0x3cb826('0x24d'),null,function(_0x285b37,_0x30280a){var _0x2d5ef1=_0x3cb826;_0x30280a=''===_0x30280a?null:_0x30280a,_0x285b37[_0x2d5ef1('0x13d')][_0x2d5ef1('0x2f8')][_0x2d5ef1('0x8f8')](_0x30280a);}),_0xa00a81('disableInput',!0x1,function(_0x1da452,_0x1d5ad8){var _0x5767e2=_0x3cb826;_0x1d5ad8||_0x1da452[_0x5767e2('0x13d')][_0x5767e2('0x2f8')][_0x5767e2('0x103')]();},!0x0),_0xa00a81(_0x3cb826('0x36a'),!0x0,_0x26dcf2),_0xa00a81(_0x3cb826('0xcf9'),null),_0xa00a81('cursorBlinkRate',0x212),_0xa00a81(_0x3cb826('0xe13'),0x0),_0xa00a81(_0x3cb826('0xfc9'),0x1,_0x2a9cff,!0x0),_0xa00a81(_0x3cb826('0x306'),!0x0,_0x2a9cff,!0x0),_0xa00a81(_0x3cb826('0x791'),0x64),_0xa00a81(_0x3cb826('0x525'),0x64),_0xa00a81(_0x3cb826('0x89a'),!0x0,_0x32d443,!0x0),_0xa00a81(_0x3cb826('0xfcd'),!0x1,_0x32d443,!0x0),_0xa00a81('pollInterval',0x64),_0xa00a81(_0x3cb826('0x9a8'),0xc8,function(_0x1980ed,_0xee2a8e){var _0x326ef9=_0x3cb826;return _0x1980ed[_0x326ef9('0x481')][_0x326ef9('0x102f')]['undoDepth']=_0xee2a8e;}),_0xa00a81(_0x3cb826('0xe4'),0x4e2),_0xa00a81('viewportMargin',0xa,function(_0x303495){return _0x303495['refresh']();},!0x0),_0xa00a81(_0x3cb826('0x42a'),0x2710,_0x32d443,!0x0),_0xa00a81(_0x3cb826('0x69d'),!0x0,function(_0x225955,_0x1f07e9){var _0x8293e=_0x3cb826;_0x1f07e9||_0x225955[_0x8293e('0x13d')][_0x8293e('0x2f8')][_0x8293e('0x91f')]();}),_0xa00a81('tabindex',null,function(_0x113c0e,_0x564b05){var _0x2db8fe=_0x3cb826;return _0x113c0e[_0x2db8fe('0x13d')][_0x2db8fe('0x2f8')]['getField']()[_0x2db8fe('0x64b')]=_0x564b05||'';}),_0xa00a81('autofocus',null),_0xa00a81(_0x3cb826('0x8de'),'ltr',function(_0x1e8956,_0x4b7fe1){var _0x4e5e38=_0x3cb826;return _0x1e8956['doc'][_0x4e5e38('0x108c')](_0x4b7fe1);},!0x0),_0xa00a81('phrases',null);}(_0x11eb40),function(_0xb0545f){var _0xdbf8f1=_0x1a265f,_0x693078=_0xb0545f[_0xdbf8f1('0x925')],_0x45e947=_0xb0545f['helpers']={};_0xb0545f['prototype']={'constructor':_0xb0545f,'focus':function(){var _0x295217=_0xdbf8f1;window[_0x295217('0x7dd')](),this['display'][_0x295217('0x2f8')][_0x295217('0x7dd')]();},'setOption':function(_0x5e05d4,_0x4f41b4){var _0x1acd3c=_0xdbf8f1,_0x460f29=this[_0x1acd3c('0x29d')],_0x5d94ac=_0x460f29[_0x5e05d4];_0x460f29[_0x5e05d4]==_0x4f41b4&&_0x1acd3c('0x1ab')!=_0x5e05d4||(_0x460f29[_0x5e05d4]=_0x4f41b4,_0x693078[_0x1acd3c('0xe9c')](_0x5e05d4)&&_0x53bb92(this,_0x693078[_0x5e05d4])(this,_0x4f41b4,_0x5d94ac),_0x38db09(this,_0x1acd3c('0x5f1'),this,_0x5e05d4));},'getOption':function(_0x3bc31e){var _0x423497=_0xdbf8f1;return this[_0x423497('0x29d')][_0x3bc31e];},'getDoc':function(){var _0x582390=_0xdbf8f1;return this[_0x582390('0x481')];},'addKeyMap':function(_0x1a86ce,_0x3fcf1e){var _0x6c4963=_0xdbf8f1;this['state'][_0x6c4963('0x1d6')][_0x3fcf1e?_0x6c4963('0x91b'):'unshift'](_0x32b032(_0x1a86ce));},'removeKeyMap':function(_0x416cfc){var _0x527423=_0xdbf8f1;for(var _0x431ca2=this[_0x527423('0x55d')][_0x527423('0x1d6')],_0x2d414f=0x0;_0x2d414f<_0x431ca2['length'];++_0x2d414f)if(_0x431ca2[_0x2d414f]==_0x416cfc||_0x431ca2[_0x2d414f]['name']==_0x416cfc)return _0x431ca2['splice'](_0x2d414f,0x1),!0x0;},'addOverlay':_0x30ee12(function(_0x414473,_0x4fe1c6){var _0x522a0f=_0xdbf8f1,_0x2f8295=_0x414473['token']?_0x414473:_0xb0545f['getMode'](this['options'],_0x414473);if(_0x2f8295[_0x522a0f('0x104e')])throw new Error('Overlays\x20may\x20not\x20be\x20stateful.');!function(_0x5862d4,_0x3d46a0,_0x4ab0d0){var _0x88f6e0=_0x522a0f;for(var _0xca1d41=0x0,_0x4625d3=_0x4ab0d0(_0x3d46a0);_0xca1d41<_0x5862d4[_0x88f6e0('0x13')]&&_0x4ab0d0(_0x5862d4[_0xca1d41])<=_0x4625d3;)_0xca1d41++;_0x5862d4['splice'](_0xca1d41,0x0,_0x3d46a0);}(this[_0x522a0f('0x55d')]['overlays'],{'mode':_0x2f8295,'modeSpec':_0x414473,'opaque':_0x4fe1c6&&_0x4fe1c6[_0x522a0f('0x103c')],'priority':_0x4fe1c6&&_0x4fe1c6[_0x522a0f('0xe6c')]||0x0},function(_0x5eed1c){var _0x493c06=_0x522a0f;return _0x5eed1c[_0x493c06('0xe6c')];}),this[_0x522a0f('0x55d')]['modeGen']++,_0x589d49(this);}),'removeOverlay':_0x30ee12(function(_0x1dcfe0){var _0x58fcb4=_0xdbf8f1;for(var _0x4741cb=this['state']['overlays'],_0x463307=0x0;_0x463307<_0x4741cb[_0x58fcb4('0x13')];++_0x463307){var _0x1963b1=_0x4741cb[_0x463307][_0x58fcb4('0xd28')];if(_0x1963b1==_0x1dcfe0||_0x58fcb4('0x2fd')==typeof _0x1dcfe0&&_0x1963b1[_0x58fcb4('0x3ea')]==_0x1dcfe0)return _0x4741cb[_0x58fcb4('0xfbd')](_0x463307,0x1),this[_0x58fcb4('0x55d')][_0x58fcb4('0x692')]++,void _0x589d49(this);}}),'indentLine':_0x30ee12(function(_0x4061d4,_0x273a55,_0x4dd95d){var _0x2266c8=_0xdbf8f1;_0x2266c8('0x2fd')!=typeof _0x273a55&&_0x2266c8('0x67b')!=typeof _0x273a55&&(_0x273a55=null==_0x273a55?this[_0x2266c8('0x29d')]['smartIndent']?_0x2266c8('0xa05'):_0x2266c8('0x1e5'):_0x273a55?_0x2266c8('0x949'):_0x2266c8('0xb84')),_0x3ad5be(this[_0x2266c8('0x481')],_0x4061d4)&&_0x330772(this,_0x4061d4,_0x273a55,_0x4dd95d);}),'indentSelection':_0x30ee12(function(_0x3ab502){var _0x4f3194=_0xdbf8f1;for(var _0x177b8b=this[_0x4f3194('0x481')]['sel']['ranges'],_0x5def08=-0x1,_0x15e137=0x0;_0x15e137<_0x177b8b[_0x4f3194('0x13')];_0x15e137++){var _0x25479b=_0x177b8b[_0x15e137];if(_0x25479b['empty']())_0x25479b[_0x4f3194('0x116a')]['line']>_0x5def08&&(_0x330772(this,_0x25479b['head'][_0x4f3194('0x860')],_0x3ab502,!0x0),_0x5def08=_0x25479b['head'][_0x4f3194('0x860')],_0x15e137==this[_0x4f3194('0x481')][_0x4f3194('0x990')][_0x4f3194('0x616')]&&_0x3b2a9(this));else{var _0x4b0c6a=_0x25479b[_0x4f3194('0x1161')](),_0x534692=_0x25479b['to'](),_0xf31725=Math[_0x4f3194('0xa0d')](_0x5def08,_0x4b0c6a[_0x4f3194('0x860')]);_0x5def08=Math[_0x4f3194('0xd3f')](this[_0x4f3194('0x4b6')](),_0x534692[_0x4f3194('0x860')]-(_0x534692['ch']?0x0:0x1))+0x1;for(var _0x5df4c0=_0xf31725;_0x5df4c0<_0x5def08;++_0x5df4c0)_0x330772(this,_0x5df4c0,_0x3ab502);var _0x1a3845=this[_0x4f3194('0x481')][_0x4f3194('0x990')][_0x4f3194('0x1de')];0x0==_0x4b0c6a['ch']&&_0x177b8b[_0x4f3194('0x13')]==_0x1a3845[_0x4f3194('0x13')]&&_0x1a3845[_0x15e137]['from']()['ch']>0x0&&_0x17a700(this[_0x4f3194('0x481')],_0x15e137,new _0x4d2b0d(_0x4b0c6a,_0x1a3845[_0x15e137]['to']()),_0x135890);}}}),'getTokenAt':function(_0x41f992,_0x2d250a){return _0xf21dcf(this,_0x41f992,_0x2d250a);},'getLineTokens':function(_0x4ea117,_0x36b318){return _0xf21dcf(this,_0x3de23f(_0x4ea117),_0x36b318,!0x0);},'getTokenTypeAt':function(_0x153176){var _0x4d088b=_0xdbf8f1;_0x153176=_0x11e028(this[_0x4d088b('0x481')],_0x153176);var _0xd92133,_0x3f93d=_0x112a14(this,_0x1964d4(this[_0x4d088b('0x481')],_0x153176[_0x4d088b('0x860')])),_0x122fbc=0x0,_0x2553c5=(_0x3f93d[_0x4d088b('0x13')]-0x1)/0x2,_0x4bb43e=_0x153176['ch'];if(0x0==_0x4bb43e)_0xd92133=_0x3f93d[0x2];else for(;;){var _0x126315=_0x122fbc+_0x2553c5>>0x1;if((_0x126315?_0x3f93d[0x2*_0x126315-0x1]:0x0)>=_0x4bb43e)_0x2553c5=_0x126315;else{if(!(_0x3f93d[0x2*_0x126315+0x1]<_0x4bb43e)){_0xd92133=_0x3f93d[0x2*_0x126315+0x2];break;}_0x122fbc=_0x126315+0x1;}}var _0x4a501d=_0xd92133?_0xd92133[_0x4d088b('0xf00')](_0x4d088b('0x4d3')):-0x1;return _0x4a501d<0x0?_0xd92133:0x0==_0x4a501d?null:_0xd92133[_0x4d088b('0xdf1')](0x0,_0x4a501d-0x1);},'getModeAt':function(_0x4c346a){var _0x434764=_0xdbf8f1,_0x3d5651=this[_0x434764('0x481')][_0x434764('0x1ab')];return _0x3d5651[_0x434764('0x4ff')]?_0xb0545f[_0x434764('0x4ff')](_0x3d5651,this[_0x434764('0x29b')](_0x4c346a)[_0x434764('0x55d')])[_0x434764('0x1ab')]:_0x3d5651;},'getHelper':function(_0x42cc5b,_0x3c9da5){return this['getHelpers'](_0x42cc5b,_0x3c9da5)[0x0];},'getHelpers':function(_0x2dd4a0,_0x180898){var _0x23ec77=_0xdbf8f1,_0x10a8c5=[];if(!_0x45e947[_0x23ec77('0xe9c')](_0x180898))return _0x10a8c5;var _0x3e3e80=_0x45e947[_0x180898],_0xafbab5=this['getModeAt'](_0x2dd4a0);if('string'==typeof _0xafbab5[_0x180898])_0x3e3e80[_0xafbab5[_0x180898]]&&_0x10a8c5[_0x23ec77('0x91b')](_0x3e3e80[_0xafbab5[_0x180898]]);else{if(_0xafbab5[_0x180898])for(var _0xc0e51d=0x0;_0xc0e51d<_0xafbab5[_0x180898][_0x23ec77('0x13')];_0xc0e51d++){var _0x5c2894=_0x3e3e80[_0xafbab5[_0x180898][_0xc0e51d]];_0x5c2894&&_0x10a8c5[_0x23ec77('0x91b')](_0x5c2894);}else _0xafbab5[_0x23ec77('0x1a1')]&&_0x3e3e80[_0xafbab5['helperType']]?_0x10a8c5[_0x23ec77('0x91b')](_0x3e3e80[_0xafbab5[_0x23ec77('0x1a1')]]):_0x3e3e80[_0xafbab5['name']]&&_0x10a8c5['push'](_0x3e3e80[_0xafbab5[_0x23ec77('0x3ea')]]);}for(var _0x3f903d=0x0;_0x3f903d<_0x3e3e80[_0x23ec77('0x582')][_0x23ec77('0x13')];_0x3f903d++){var _0x5b026d=_0x3e3e80[_0x23ec77('0x582')][_0x3f903d];_0x5b026d['pred'](_0xafbab5,this)&&-0x1==_0x55346f(_0x10a8c5,_0x5b026d[_0x23ec77('0xd3d')])&&_0x10a8c5['push'](_0x5b026d['val']);}return _0x10a8c5;},'getStateAfter':function(_0x30d283,_0x2edcb9){var _0x168bd5=_0xdbf8f1,_0x101a0d=this['doc'];return _0x619115(this,(_0x30d283=_0x3c1da9(_0x101a0d,null==_0x30d283?_0x101a0d[_0x168bd5('0x3f0')]+_0x101a0d['size']-0x1:_0x30d283))+0x1,_0x2edcb9)['state'];},'cursorCoords':function(_0x39be91,_0x21ee3d){var _0x30db16=_0xdbf8f1,_0x10ab66=this['doc'][_0x30db16('0x990')][_0x30db16('0x1071')]();return _0x42fc0e(this,null==_0x39be91?_0x10ab66[_0x30db16('0x116a')]:_0x30db16('0xb3f')==typeof _0x39be91?_0x11e028(this[_0x30db16('0x481')],_0x39be91):_0x39be91?_0x10ab66[_0x30db16('0x1161')]():_0x10ab66['to'](),_0x21ee3d||_0x30db16('0xbc8'));},'charCoords':function(_0x55c9b7,_0x27a3f0){var _0x4c4cec=_0xdbf8f1;return _0x1ccb03(this,_0x11e028(this[_0x4c4cec('0x481')],_0x55c9b7),_0x27a3f0||_0x4c4cec('0xbc8'));},'coordsChar':function(_0x1b888d,_0x4ae235){var _0x3e70ea=_0xdbf8f1;return _0x4e049b(this,(_0x1b888d=_0x45c136(this,_0x1b888d,_0x4ae235||'page'))[_0x3e70ea('0x10fb')],_0x1b888d[_0x3e70ea('0x5b')]);},'lineAtHeight':function(_0x4d0ffd,_0x1b7af2){var _0x365b24=_0xdbf8f1;return _0x4d0ffd=_0x45c136(this,{'top':_0x4d0ffd,'left':0x0},_0x1b7af2||_0x365b24('0xbc8'))['top'],_0x1d0db2(this[_0x365b24('0x481')],_0x4d0ffd+this['display']['viewOffset']);},'heightAtLine':function(_0x3a0f20,_0x24d1e2,_0x1730e9){var _0x1f5c98=_0xdbf8f1,_0x5bdea7,_0x5b6699=!0x1;if(_0x1f5c98('0x67b')==typeof _0x3a0f20){var _0x24c764=this[_0x1f5c98('0x481')]['first']+this[_0x1f5c98('0x481')][_0x1f5c98('0x10a2')]-0x1;_0x3a0f20_0x24c764&&(_0x3a0f20=_0x24c764,_0x5b6699=!0x0),_0x5bdea7=_0x1964d4(this['doc'],_0x3a0f20);}else _0x5bdea7=_0x3a0f20;return _0x50e8eb(this,_0x5bdea7,{'top':0x0,'left':0x0},_0x24d1e2||_0x1f5c98('0xbc8'),_0x1730e9||_0x5b6699)[_0x1f5c98('0x5b')]+(_0x5b6699?this[_0x1f5c98('0x481')]['height']-_0x112056(_0x5bdea7):0x0);},'defaultTextHeight':function(){return _0x30a1c3(this['display']);},'defaultCharWidth':function(){return _0x48a458(this['display']);},'getViewport':function(){var _0x3b21db=_0xdbf8f1;return{'from':this[_0x3b21db('0x13d')][_0x3b21db('0x812')],'to':this[_0x3b21db('0x13d')][_0x3b21db('0x3e5')]};},'addWidget':function(_0x72705f,_0x1b6d44,_0x1fadd2,_0x3ee8a8,_0x5af133){var _0x5ba80a=_0xdbf8f1,_0x4be069,_0x21788f,_0x55dd5b,_0x5a1cf5=this[_0x5ba80a('0x13d')],_0x13e561=(_0x72705f=_0x42fc0e(this,_0x11e028(this[_0x5ba80a('0x481')],_0x72705f)))[_0x5ba80a('0x9c2')],_0x421836=_0x72705f[_0x5ba80a('0x10fb')];if(_0x1b6d44[_0x5ba80a('0xe81')][_0x5ba80a('0xe57')]=_0x5ba80a('0xee9'),_0x1b6d44['setAttribute']('cm-ignore-events','true'),this['display'][_0x5ba80a('0x2f8')][_0x5ba80a('0x3d1')](_0x1b6d44),_0x5a1cf5[_0x5ba80a('0x68f')][_0x5ba80a('0x657')](_0x1b6d44),'over'==_0x3ee8a8)_0x13e561=_0x72705f[_0x5ba80a('0x5b')];else{if('above'==_0x3ee8a8||_0x5ba80a('0x6e9')==_0x3ee8a8){var _0x7ce9b3=Math[_0x5ba80a('0xa0d')](_0x5a1cf5['wrapper'][_0x5ba80a('0x9d9')],this[_0x5ba80a('0x481')][_0x5ba80a('0x27b')]),_0x5f0886=Math['max'](_0x5a1cf5[_0x5ba80a('0x68f')]['clientWidth'],_0x5a1cf5['lineSpace'][_0x5ba80a('0xddd')]);(_0x5ba80a('0xca2')==_0x3ee8a8||_0x72705f[_0x5ba80a('0x9c2')]+_0x1b6d44[_0x5ba80a('0x495')]>_0x7ce9b3)&&_0x72705f[_0x5ba80a('0x5b')]>_0x1b6d44[_0x5ba80a('0x495')]?_0x13e561=_0x72705f[_0x5ba80a('0x5b')]-_0x1b6d44['offsetHeight']:_0x72705f[_0x5ba80a('0x9c2')]+_0x1b6d44[_0x5ba80a('0x495')]<=_0x7ce9b3&&(_0x13e561=_0x72705f[_0x5ba80a('0x9c2')]),_0x421836+_0x1b6d44[_0x5ba80a('0xb94')]>_0x5f0886&&(_0x421836=_0x5f0886-_0x1b6d44[_0x5ba80a('0xb94')]);}}_0x1b6d44[_0x5ba80a('0xe81')][_0x5ba80a('0x5b')]=_0x13e561+'px',_0x1b6d44['style'][_0x5ba80a('0x10fb')]=_0x1b6d44[_0x5ba80a('0xe81')][_0x5ba80a('0x94b')]='',_0x5ba80a('0x94b')==_0x5af133?(_0x421836=_0x5a1cf5[_0x5ba80a('0x68f')][_0x5ba80a('0xddd')]-_0x1b6d44[_0x5ba80a('0xb94')],_0x1b6d44[_0x5ba80a('0xe81')][_0x5ba80a('0x94b')]=_0x5ba80a('0xc7c')):(_0x5ba80a('0x10fb')==_0x5af133?_0x421836=0x0:_0x5ba80a('0x75a')==_0x5af133&&(_0x421836=(_0x5a1cf5[_0x5ba80a('0x68f')]['clientWidth']-_0x1b6d44[_0x5ba80a('0xb94')])/0x2),_0x1b6d44['style'][_0x5ba80a('0x10fb')]=_0x421836+'px'),_0x1fadd2&&(_0x4be069=this,_0x21788f={'left':_0x421836,'top':_0x13e561,'right':_0x421836+_0x1b6d44[_0x5ba80a('0xb94')],'bottom':_0x13e561+_0x1b6d44[_0x5ba80a('0x495')]},null!=(_0x55dd5b=_0x163950(_0x4be069,_0x21788f))[_0x5ba80a('0x94d')]&&_0x3b60c2(_0x4be069,_0x55dd5b[_0x5ba80a('0x94d')]),null!=_0x55dd5b[_0x5ba80a('0x37e')]&&_0x4faaac(_0x4be069,_0x55dd5b[_0x5ba80a('0x37e')]));},'triggerOnKeyDown':_0x30ee12(_0x11c2d8),'triggerOnKeyPress':_0x30ee12(_0x422a87),'triggerOnKeyUp':_0x2ffef2,'triggerOnMouseDown':_0x30ee12(_0x483451),'execCommand':function(_0x431672){var _0x20cd5b=_0xdbf8f1;if(_0x33fa02['hasOwnProperty'](_0x431672))return _0x33fa02[_0x431672][_0x20cd5b('0xfd2')](null,this);},'triggerElectric':_0x30ee12(function(_0x4d9fe3){_0x1c504b(this,_0x4d9fe3);}),'findPosH':function(_0x302788,_0x28cf7f,_0x4d2050,_0x50fc43){var _0xee1c74=_0xdbf8f1,_0x4dea22=0x1;_0x28cf7f<0x0&&(_0x4dea22=-0x1,_0x28cf7f=-_0x28cf7f);for(var _0x4fe972=_0x11e028(this[_0xee1c74('0x481')],_0x302788),_0x3f62e7=0x0;_0x3f62e7<_0x28cf7f&&!(_0x4fe972=_0x2faf67(this[_0xee1c74('0x481')],_0x4fe972,_0x4dea22,_0x4d2050,_0x50fc43))[_0xee1c74('0x611')];++_0x3f62e7);return _0x4fe972;},'moveH':_0x30ee12(function(_0x1a3d51,_0x13f25f){var _0x2ecc6b=_0xdbf8f1,_0x39eea7=this;this[_0x2ecc6b('0x5')](function(_0x5bed9c){var _0x16599c=_0x2ecc6b;return _0x39eea7[_0x16599c('0x13d')][_0x16599c('0xf30')]||_0x39eea7[_0x16599c('0x481')][_0x16599c('0x73')]||_0x5bed9c[_0x16599c('0x1d4')]()?_0x2faf67(_0x39eea7[_0x16599c('0x481')],_0x5bed9c[_0x16599c('0x116a')],_0x1a3d51,_0x13f25f,_0x39eea7[_0x16599c('0x29d')]['rtlMoveVisually']):_0x1a3d51<0x0?_0x5bed9c[_0x16599c('0x1161')]():_0x5bed9c['to']();},_0x2a9257);}),'deleteH':_0x30ee12(function(_0x4b3e74,_0xe28616){var _0x4bc673=_0xdbf8f1,_0x4549c4=this[_0x4bc673('0x481')]['sel'],_0x528f23=this['doc'];_0x4549c4['somethingSelected']()?_0x528f23[_0x4bc673('0x514')]('',null,_0x4bc673('0xedf')):_0x4de126(this,function(_0x61be56){var _0x3a97d5=_0x4bc673,_0xff819b=_0x2faf67(_0x528f23,_0x61be56[_0x3a97d5('0x116a')],_0x4b3e74,_0xe28616,!0x1);return _0x4b3e74<0x0?{'from':_0xff819b,'to':_0x61be56[_0x3a97d5('0x116a')]}:{'from':_0x61be56['head'],'to':_0xff819b};});}),'findPosV':function(_0x5eb86f,_0x4e350e,_0x1348ce,_0x34b906){var _0x41de3a=_0xdbf8f1,_0x132593=0x1,_0x11abe4=_0x34b906;_0x4e350e<0x0&&(_0x132593=-0x1,_0x4e350e=-_0x4e350e);for(var _0x2c1803=_0x11e028(this[_0x41de3a('0x481')],_0x5eb86f),_0x223ef5=0x0;_0x223ef5<_0x4e350e;++_0x223ef5){var _0x4976e1=_0x42fc0e(this,_0x2c1803,_0x41de3a('0x26c'));if(null==_0x11abe4?_0x11abe4=_0x4976e1[_0x41de3a('0x10fb')]:_0x4976e1[_0x41de3a('0x10fb')]=_0x11abe4,(_0x2c1803=_0x344fa2(this,_0x4976e1,_0x132593,_0x1348ce))[_0x41de3a('0x611')])break;}return _0x2c1803;},'moveV':_0x30ee12(function(_0x11757b,_0x2cc7e1){var _0x1c5da4=_0xdbf8f1,_0x5ce85d=this,_0x42bc4c=this[_0x1c5da4('0x481')],_0x3b862d=[],_0x352123=!this[_0x1c5da4('0x13d')]['shift']&&!_0x42bc4c[_0x1c5da4('0x73')]&&_0x42bc4c[_0x1c5da4('0x990')][_0x1c5da4('0x8e8')]();if(_0x42bc4c['extendSelectionsBy'](function(_0x2dfb88){var _0x4399f1=_0x1c5da4;if(_0x352123)return _0x11757b<0x0?_0x2dfb88[_0x4399f1('0x1161')]():_0x2dfb88['to']();var _0x3ea359=_0x42fc0e(_0x5ce85d,_0x2dfb88[_0x4399f1('0x116a')],_0x4399f1('0x26c'));null!=_0x2dfb88[_0x4399f1('0x9d2')]&&(_0x3ea359[_0x4399f1('0x10fb')]=_0x2dfb88[_0x4399f1('0x9d2')]),_0x3b862d[_0x4399f1('0x91b')](_0x3ea359['left']);var _0x2bf7a5=_0x344fa2(_0x5ce85d,_0x3ea359,_0x11757b,_0x2cc7e1);return'page'==_0x2cc7e1&&_0x2dfb88==_0x42bc4c['sel'][_0x4399f1('0x1071')]()&&_0x4b37de(_0x5ce85d,_0x1ccb03(_0x5ce85d,_0x2bf7a5,_0x4399f1('0x26c'))[_0x4399f1('0x5b')]-_0x3ea359[_0x4399f1('0x5b')]),_0x2bf7a5;},_0x2a9257),_0x3b862d[_0x1c5da4('0x13')])for(var _0x3409d2=0x0;_0x3409d2<_0x42bc4c[_0x1c5da4('0x990')][_0x1c5da4('0x1de')][_0x1c5da4('0x13')];_0x3409d2++)_0x42bc4c[_0x1c5da4('0x990')][_0x1c5da4('0x1de')][_0x3409d2]['goalColumn']=_0x3b862d[_0x3409d2];}),'findWordAt':function(_0xda9e41){var _0x3552ff=_0xdbf8f1,_0xb077f0=_0x1964d4(this['doc'],_0xda9e41[_0x3552ff('0x860')])[_0x3552ff('0x5b2')],_0x3209d7=_0xda9e41['ch'],_0x1c624f=_0xda9e41['ch'];if(_0xb077f0){var _0x2fce24=this['getHelper'](_0xda9e41,_0x3552ff('0xb22'));_0x3552ff('0x4ec')!=_0xda9e41[_0x3552ff('0xce7')]&&_0x1c624f!=_0xb077f0[_0x3552ff('0x13')]||!_0x3209d7?++_0x1c624f:--_0x3209d7;for(var _0xe69512=_0xb077f0[_0x3552ff('0xcaf')](_0x3209d7),_0x4167ea=_0x1d107d(_0xe69512,_0x2fce24)?function(_0x38b452){return _0x1d107d(_0x38b452,_0x2fce24);}:/\s/['test'](_0xe69512)?function(_0xb58f82){var _0x2b064f=_0x3552ff;return/\s/[_0x2b064f('0x2c3')](_0xb58f82);}:function(_0xe8dd55){var _0x5bb674=_0x3552ff;return!/\s/[_0x5bb674('0x2c3')](_0xe8dd55)&&!_0x1d107d(_0xe8dd55);};_0x3209d7>0x0&&_0x4167ea(_0xb077f0['charAt'](_0x3209d7-0x1));)--_0x3209d7;for(;_0x1c624f<_0xb077f0['length']&&_0x4167ea(_0xb077f0['charAt'](_0x1c624f));)++_0x1c624f;}return new _0x4d2b0d(_0x3de23f(_0xda9e41[_0x3552ff('0x860')],_0x3209d7),_0x3de23f(_0xda9e41[_0x3552ff('0x860')],_0x1c624f));},'toggleOverwrite':function(_0x3db189){var _0x520a62=_0xdbf8f1;null!=_0x3db189&&_0x3db189==this[_0x520a62('0x55d')][_0x520a62('0x8f4')]||((this[_0x520a62('0x55d')][_0x520a62('0x8f4')]=!this['state'][_0x520a62('0x8f4')])?_0x379c51(this['display']['cursorDiv'],_0x520a62('0xac9')):_0x1ce61b(this[_0x520a62('0x13d')]['cursorDiv'],_0x520a62('0xac9')),_0x38db09(this,_0x520a62('0x100c'),this,this['state'][_0x520a62('0x8f4')]));},'hasFocus':function(){var _0x54b689=_0xdbf8f1;return this[_0x54b689('0x13d')][_0x54b689('0x2f8')][_0x54b689('0xfb8')]()==_0x205be5();},'isReadOnly':function(){var _0x300cb2=_0xdbf8f1;return!(!this[_0x300cb2('0x29d')][_0x300cb2('0x1134')]&&!this[_0x300cb2('0x481')][_0x300cb2('0xd94')]);},'scrollTo':_0x30ee12(function(_0x4d85fe,_0x2d7c35){_0x4115a7(this,_0x4d85fe,_0x2d7c35);}),'getScrollInfo':function(){var _0x3999dd=_0xdbf8f1,_0x36ffd7=this[_0x3999dd('0x13d')][_0x3999dd('0xf31')];return{'left':_0x36ffd7[_0x3999dd('0x37e')],'top':_0x36ffd7[_0x3999dd('0x94d')],'height':_0x36ffd7[_0x3999dd('0x920')]-_0x1cc4be(this)-this[_0x3999dd('0x13d')][_0x3999dd('0x7b4')],'width':_0x36ffd7[_0x3999dd('0xd68')]-_0x1cc4be(this)-this[_0x3999dd('0x13d')]['barWidth'],'clientHeight':_0xf54677(this),'clientWidth':_0x2eda44(this)};},'scrollIntoView':_0x30ee12(function(_0x3108b1,_0x5a8c88){var _0x1bf924=_0xdbf8f1;null==_0x3108b1?(_0x3108b1={'from':this[_0x1bf924('0x481')][_0x1bf924('0x990')][_0x1bf924('0x1071')]()[_0x1bf924('0x116a')],'to':null},null==_0x5a8c88&&(_0x5a8c88=this[_0x1bf924('0x29d')][_0x1bf924('0xe13')])):_0x1bf924('0x67b')==typeof _0x3108b1?_0x3108b1={'from':_0x3de23f(_0x3108b1,0x0),'to':null}:null==_0x3108b1[_0x1bf924('0x1161')]&&(_0x3108b1={'from':_0x3108b1,'to':null}),_0x3108b1['to']||(_0x3108b1['to']=_0x3108b1[_0x1bf924('0x1161')]),_0x3108b1[_0x1bf924('0xa13')]=_0x5a8c88||0x0,null!=_0x3108b1[_0x1bf924('0x1161')]['line']?function(_0x65f60,_0x2fc449){_0xed24ec(_0x65f60),_0x65f60['curOp']['scrollToPos']=_0x2fc449;}(this,_0x3108b1):_0x1accf9(this,_0x3108b1[_0x1bf924('0x1161')],_0x3108b1['to'],_0x3108b1[_0x1bf924('0xa13')]);}),'setSize':_0x30ee12(function(_0x3eeb0e,_0x5366b4){var _0x259652=_0xdbf8f1,_0x2fcc89=this,_0x3af616=function(_0x614f09){var _0x37d5b7=_0x5376;return _0x37d5b7('0x67b')==typeof _0x614f09||/^\d+$/[_0x37d5b7('0x2c3')](String(_0x614f09))?_0x614f09+'px':_0x614f09;};null!=_0x3eeb0e&&(this[_0x259652('0x13d')][_0x259652('0xfc3')][_0x259652('0xe81')][_0x259652('0x115')]=_0x3af616(_0x3eeb0e)),null!=_0x5366b4&&(this[_0x259652('0x13d')]['wrapper'][_0x259652('0xe81')]['height']=_0x3af616(_0x5366b4)),this[_0x259652('0x29d')][_0x259652('0x215')]&&_0x15e403(this);var _0xc88a77=this['display'][_0x259652('0x812')];this[_0x259652('0x481')][_0x259652('0xe01')](_0xc88a77,this[_0x259652('0x13d')][_0x259652('0x3e5')],function(_0x21dfe1){var _0x321b96=_0x259652;if(_0x21dfe1[_0x321b96('0x19a')])for(var _0x3a2f33=0x0;_0x3a2f33<_0x21dfe1['widgets'][_0x321b96('0x13')];_0x3a2f33++)if(_0x21dfe1['widgets'][_0x3a2f33]['noHScroll']){_0x42df63(_0x2fcc89,_0xc88a77,'widget');break;}++_0xc88a77;}),this[_0x259652('0x5ec')]['forceUpdate']=!0x0,_0x38db09(this,'refresh',this);}),'operation':function(_0x2b7fd2){return _0x39976b(this,_0x2b7fd2);},'startOperation':function(){return _0x4b83c7(this);},'endOperation':function(){return _0x381b4d(this);},'refresh':_0x30ee12(function(){var _0x34c6d1=_0xdbf8f1,_0x31d138=this[_0x34c6d1('0x13d')][_0x34c6d1('0x1115')];_0x589d49(this),this[_0x34c6d1('0x5ec')][_0x34c6d1('0xf91')]=!0x0,_0x4ccb63(this),_0x4115a7(this,this[_0x34c6d1('0x481')][_0x34c6d1('0x37e')],this['doc'][_0x34c6d1('0x94d')]),_0x3641e8(this[_0x34c6d1('0x13d')]),(null==_0x31d138||Math[_0x34c6d1('0x415')](_0x31d138-_0x30a1c3(this['display']))>0.5||this['options'][_0x34c6d1('0x215')])&&_0x2c9072(this),_0x38db09(this,_0x34c6d1('0x18e'),this);}),'swapDoc':_0x30ee12(function(_0x5690dc){var _0x5cec1b=_0xdbf8f1,_0x299c10=this[_0x5cec1b('0x481')];return _0x299c10['cm']=null,this[_0x5cec1b('0x55d')][_0x5cec1b('0x776')]&&this[_0x5cec1b('0x55d')][_0x5cec1b('0x776')](),_0x52696a(this,_0x5690dc),_0x4ccb63(this),this[_0x5cec1b('0x13d')][_0x5cec1b('0x2f8')][_0x5cec1b('0x103')](),_0x4115a7(this,_0x5690dc[_0x5cec1b('0x37e')],_0x5690dc[_0x5cec1b('0x94d')]),this['curOp'][_0x5cec1b('0xcb')]=!0x0,_0x1a8e5b(this,'swapDoc',this,_0x299c10),_0x299c10;}),'phrase':function(_0x276dde){var _0x48b578=_0xdbf8f1,_0x387577=this[_0x48b578('0x29d')][_0x48b578('0xe9f')];return _0x387577&&Object[_0x48b578('0xe02')][_0x48b578('0xe9c')][_0x48b578('0xfd2')](_0x387577,_0x276dde)?_0x387577[_0x276dde]:_0x276dde;},'getInputField':function(){var _0x43ee08=_0xdbf8f1;return this[_0x43ee08('0x13d')][_0x43ee08('0x2f8')][_0x43ee08('0xfb8')]();},'getWrapperElement':function(){var _0x2a223e=_0xdbf8f1;return this[_0x2a223e('0x13d')][_0x2a223e('0xfc3')];},'getScrollerElement':function(){var _0x2597c0=_0xdbf8f1;return this[_0x2597c0('0x13d')][_0x2597c0('0xf31')];},'getGutterElement':function(){var _0x29e20d=_0xdbf8f1;return this[_0x29e20d('0x13d')][_0x29e20d('0xef6')];}},_0x862cc9(_0xb0545f),_0xb0545f[_0xdbf8f1('0x8ae')]=function(_0x188eae,_0x58e2bc,_0x19310f){var _0x12b732=_0xdbf8f1;_0x45e947[_0x12b732('0xe9c')](_0x188eae)||(_0x45e947[_0x188eae]=_0xb0545f[_0x188eae]={'_global':[]}),_0x45e947[_0x188eae][_0x58e2bc]=_0x19310f;},_0xb0545f[_0xdbf8f1('0x617')]=function(_0x354065,_0x4ead56,_0x259aa0,_0x5df37b){var _0x99b638=_0xdbf8f1;_0xb0545f[_0x99b638('0x8ae')](_0x354065,_0x4ead56,_0x5df37b),_0x45e947[_0x354065]['_global'][_0x99b638('0x91b')]({'pred':_0x259aa0,'val':_0x5df37b});};}(_0x11eb40);var _0x2345f1=_0x1a265f('0x1c3')[_0x1a265f('0x44d')]('\x20');for(var _0x542ff2 in _0x2bc8c4[_0x1a265f('0xe02')])_0x2bc8c4['prototype'][_0x1a265f('0xe9c')](_0x542ff2)&&_0x55346f(_0x2345f1,_0x542ff2)<0x0&&(_0x11eb40[_0x1a265f('0xe02')][_0x542ff2]=function(_0x258cb5){return function(){var _0x51e505=_0x5376;return _0x258cb5[_0x51e505('0x2be')](this[_0x51e505('0x481')],arguments);};}(_0x2bc8c4[_0x1a265f('0xe02')][_0x542ff2]));return _0x862cc9(_0x2bc8c4),_0x11eb40[_0x1a265f('0x6f6')]={'textarea':_0x3b8ec,'contenteditable':_0x351fca},_0x11eb40['defineMode']=function(_0x220165){var _0x1c2b5b=_0x1a265f;_0x11eb40[_0x1c2b5b('0xd88')]['mode']||'null'==_0x220165||(_0x11eb40[_0x1c2b5b('0xd88')][_0x1c2b5b('0x1ab')]=_0x220165),_0x35ac9a['apply'](this,arguments);},_0x11eb40[_0x1a265f('0x8bf')]=function(_0x22c90a,_0x5198ae){_0x29ff8a[_0x22c90a]=_0x5198ae;},_0x11eb40['defineMode']('null',function(){return{'token':function(_0x4f764c){var _0x375d7a=_0x5376;return _0x4f764c[_0x375d7a('0x734')]();}};}),_0x11eb40['defineMIME']('text/plain',_0x1a265f('0xa69')),_0x11eb40[_0x1a265f('0xf8')]=function(_0x53bd83,_0xe588fa){_0x11eb40['prototype'][_0x53bd83]=_0xe588fa;},_0x11eb40[_0x1a265f('0x17c')]=function(_0x3d2278,_0x1b78e6){var _0x182bda=_0x1a265f;_0x2bc8c4[_0x182bda('0xe02')][_0x3d2278]=_0x1b78e6;},_0x11eb40[_0x1a265f('0x839')]=function(_0x380a1f,_0x4cf27c){var _0x3437ad=_0x1a265f;if((_0x4cf27c=_0x4cf27c?_0x581885(_0x4cf27c):{})['value']=_0x380a1f['value'],!_0x4cf27c['tabindex']&&_0x380a1f[_0x3437ad('0x64b')]&&(_0x4cf27c[_0x3437ad('0x43b')]=_0x380a1f[_0x3437ad('0x64b')]),!_0x4cf27c[_0x3437ad('0xa49')]&&_0x380a1f[_0x3437ad('0xa49')]&&(_0x4cf27c[_0x3437ad('0xa49')]=_0x380a1f['placeholder']),null==_0x4cf27c[_0x3437ad('0x355')]){var _0x24af03=_0x205be5();_0x4cf27c[_0x3437ad('0x355')]=_0x24af03==_0x380a1f||null!=_0x380a1f['getAttribute']('autofocus')&&_0x24af03==document[_0x3437ad('0x82a')];}function _0x2dde1f(){var _0x3388ae=_0x3437ad;_0x380a1f['value']=_0x44e32e[_0x3388ae('0xf3b')]();}var _0x49de37;if(_0x380a1f[_0x3437ad('0x112a')]&&(_0x4d62f6(_0x380a1f[_0x3437ad('0x112a')],'submit',_0x2dde1f),!_0x4cf27c['leaveSubmitMethodAlone'])){var _0x3190e4=_0x380a1f[_0x3437ad('0x112a')];_0x49de37=_0x3190e4[_0x3437ad('0x8e9')];try{var _0x28d186=_0x3190e4[_0x3437ad('0x8e9')]=function(){var _0x389d8d=_0x3437ad;_0x2dde1f(),_0x3190e4['submit']=_0x49de37,_0x3190e4[_0x389d8d('0x8e9')](),_0x3190e4[_0x389d8d('0x8e9')]=_0x28d186;};}catch(_0x477630){}}_0x4cf27c['finishInit']=function(_0x53834f){var _0x3b88bb=_0x3437ad;_0x53834f[_0x3b88bb('0xb6')]=_0x2dde1f,_0x53834f[_0x3b88bb('0x1b0')]=function(){return _0x380a1f;},_0x53834f[_0x3b88bb('0x7de')]=function(){var _0x3e6cba=_0x3b88bb;_0x53834f[_0x3e6cba('0x7de')]=isNaN,_0x2dde1f(),_0x380a1f[_0x3e6cba('0x9cd')][_0x3e6cba('0xf93')](_0x53834f[_0x3e6cba('0x1c1')]()),_0x380a1f[_0x3e6cba('0xe81')][_0x3e6cba('0x13d')]='',_0x380a1f[_0x3e6cba('0x112a')]&&(_0x4fabc1(_0x380a1f[_0x3e6cba('0x112a')],'submit',_0x2dde1f),_0x4cf27c[_0x3e6cba('0x67d')]||'function'!=typeof _0x380a1f['form'][_0x3e6cba('0x8e9')]||(_0x380a1f[_0x3e6cba('0x112a')][_0x3e6cba('0x8e9')]=_0x49de37));};},_0x380a1f[_0x3437ad('0xe81')][_0x3437ad('0x13d')]=_0x3437ad('0xea1');var _0x44e32e=_0x11eb40(function(_0x425047){var _0x28eb5f=_0x3437ad;return _0x380a1f[_0x28eb5f('0x9cd')]['insertBefore'](_0x425047,_0x380a1f['nextSibling']);},_0x4cf27c);return _0x44e32e;},function(_0x5bdd04){var _0x429d06=_0x1a265f;_0x5bdd04[_0x429d06('0x78f')]=_0x4fabc1,_0x5bdd04['on']=_0x4d62f6,_0x5bdd04[_0x429d06('0x699')]=_0x400a7e,_0x5bdd04['Doc']=_0x2bc8c4,_0x5bdd04[_0x429d06('0x5ee')]=_0x207989,_0x5bdd04[_0x429d06('0xc48')]=_0x213d1d,_0x5bdd04['findColumn']=_0x1e7d22,_0x5bdd04['isWordChar']=_0x4ddd49,_0x5bdd04[_0x429d06('0xe5')]=_0x3d5a0e,_0x5bdd04['signal']=_0x38db09,_0x5bdd04[_0x429d06('0x88')]=_0x4e10fe,_0x5bdd04[_0x429d06('0x431')]=_0x14f38d,_0x5bdd04[_0x429d06('0xa4b')]=_0x35e66d,_0x5bdd04['Pos']=_0x3de23f,_0x5bdd04[_0x429d06('0x595')]=_0x1213af,_0x5bdd04[_0x429d06('0x5b9')]=_0x2f6d73,_0x5bdd04['mimeModes']=_0x29ff8a,_0x5bdd04[_0x429d06('0x5ab')]=_0x4b93d9,_0x5bdd04[_0x429d06('0x462')]=_0xd80094,_0x5bdd04[_0x429d06('0x73d')]=_0x508e2a,_0x5bdd04['extendMode']=_0x256004,_0x5bdd04[_0x429d06('0xe29')]=_0x2e27a,_0x5bdd04[_0x429d06('0x104e')]=_0x43b7fb,_0x5bdd04[_0x429d06('0x4ff')]=_0x578dca,_0x5bdd04[_0x429d06('0x55')]=_0x33fa02,_0x5bdd04['keyMap']=_0x253397,_0x5bdd04[_0x429d06('0x520')]=_0x32e99b,_0x5bdd04[_0x429d06('0x924')]=_0x42bf1a,_0x5bdd04[_0x429d06('0x342')]=_0x299570,_0x5bdd04['normalizeKeyMap']=_0x45235d,_0x5bdd04[_0x429d06('0x96a')]=_0x728e7b,_0x5bdd04[_0x429d06('0x522')]=_0xca1ae6,_0x5bdd04[_0x429d06('0x465')]=_0x445310,_0x5bdd04[_0x429d06('0x2ae')]=_0x5b2cfe,_0x5bdd04[_0x429d06('0x3c8')]=_0x3de262,_0x5bdd04['e_stopPropagation']=_0x172023,_0x5bdd04['e_stop']=_0x28ee18,_0x5bdd04['addClass']=_0x379c51,_0x5bdd04[_0x429d06('0x4cc')]=_0x487fc0,_0x5bdd04[_0x429d06('0x18a')]=_0x1ce61b,_0x5bdd04['keyNames']=_0x4ed5f8;}(_0x11eb40),_0x11eb40['version']=_0x1a265f('0xbc2'),_0x11eb40;});},{}],0x70:[function(_0x78df99,_0xc9af40,_0x52e8cc){var _0x3d6beb=_0x548f48,_0x455809;_0x455809=function(_0x395398){var _0x4bcd32=_0x5376;'use strict';_0x395398[_0x4bcd32('0x799')](_0x4bcd32('0x9dd'),function(_0x13a3a1,_0x155b6f){var _0x81caa1=_0x4bcd32,_0x507def,_0x4fd57d,_0x12cd30=_0x13a3a1['indentUnit'],_0x309b1b=_0x155b6f['statementIndent'],_0x4839e4=_0x155b6f[_0x81caa1('0x427')],_0x58faf3=_0x155b6f['json']||_0x4839e4,_0x12de9a=_0x155b6f[_0x81caa1('0x444')],_0x459c6c=_0x155b6f[_0x81caa1('0xc58')]||/[\w$\xa1-\uffff]/,_0x32a16d=function(){var _0x38307a=_0x81caa1;function _0xd20196(_0x17a496){var _0x414eb1=_0x5376;return{'type':_0x17a496,'style':_0x414eb1('0x26d')};}var _0x312f57=_0xd20196('keyword\x20a'),_0x2d465b=_0xd20196(_0x38307a('0x1122')),_0x292ab6=_0xd20196(_0x38307a('0x3b3')),_0x5c0bcd=_0xd20196('keyword\x20d'),_0x57d086=_0xd20196(_0x38307a('0x90d')),_0x278b61={'type':_0x38307a('0x8c2'),'style':_0x38307a('0x8c2')};return{'if':_0xd20196('if'),'while':_0x312f57,'with':_0x312f57,'else':_0x2d465b,'do':_0x2d465b,'try':_0x2d465b,'finally':_0x2d465b,'return':_0x5c0bcd,'break':_0x5c0bcd,'continue':_0x5c0bcd,'new':_0xd20196(_0x38307a('0xccb')),'delete':_0x292ab6,'void':_0x292ab6,'throw':_0x292ab6,'debugger':_0xd20196(_0x38307a('0xec8')),'var':_0xd20196(_0x38307a('0xdfb')),'const':_0xd20196(_0x38307a('0xdfb')),'let':_0xd20196(_0x38307a('0xdfb')),'function':_0xd20196(_0x38307a('0x106c')),'catch':_0xd20196('catch'),'for':_0xd20196(_0x38307a('0x80e')),'switch':_0xd20196(_0x38307a('0x667')),'case':_0xd20196(_0x38307a('0xa54')),'default':_0xd20196('default'),'in':_0x57d086,'typeof':_0x57d086,'instanceof':_0x57d086,'true':_0x278b61,'false':_0x278b61,'null':_0x278b61,'undefined':_0x278b61,'NaN':_0x278b61,'Infinity':_0x278b61,'this':_0xd20196(_0x38307a('0x123')),'class':_0xd20196('class'),'super':_0xd20196(_0x38307a('0x8c2')),'yield':_0x292ab6,'export':_0xd20196(_0x38307a('0x5c8')),'import':_0xd20196(_0x38307a('0xe7b')),'extends':_0x292ab6,'await':_0x292ab6};}(),_0x40d873=/[+\-*&%=<>!?|~^@]/,_0x577fb0=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function _0x27f99c(_0x2b55de,_0x5e0184,_0xfe83b2){return _0x507def=_0x2b55de,_0x4fd57d=_0xfe83b2,_0x5e0184;}function _0x3ae603(_0x142170,_0x3b5cad){var _0x3da46d=_0x81caa1,_0x3ca2d6,_0x1111ef=_0x142170['next']();if('\x22'==_0x1111ef||'\x27'==_0x1111ef)return _0x3b5cad['tokenize']=(_0x3ca2d6=_0x1111ef,function(_0x1595aa,_0x8327c4){var _0x3179b0=_0x5376,_0x560582,_0x3662a3=!0x1;if(_0x4839e4&&'@'==_0x1595aa[_0x3179b0('0xb3c')]()&&_0x1595aa['match'](_0x577fb0))return _0x8327c4[_0x3179b0('0xaf9')]=_0x3ae603,_0x27f99c('jsonld-keyword',_0x3179b0('0x31a'));for(;null!=(_0x560582=_0x1595aa[_0x3179b0('0x165')]())&&(_0x560582!=_0x3ca2d6||_0x3662a3);)_0x3662a3=!_0x3662a3&&'\x5c'==_0x560582;return _0x3662a3||(_0x8327c4['tokenize']=_0x3ae603),_0x27f99c(_0x3179b0('0x2fd'),_0x3179b0('0x2fd'));}),_0x3b5cad['tokenize'](_0x142170,_0x3b5cad);if('.'==_0x1111ef&&_0x142170[_0x3da46d('0x7d5')](/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return _0x27f99c(_0x3da46d('0x67b'),_0x3da46d('0x67b'));if('.'==_0x1111ef&&_0x142170[_0x3da46d('0x7d5')]('..'))return _0x27f99c(_0x3da46d('0x7e9'),_0x3da46d('0x31a'));if(/[\[\]{}\(\),;\:\.]/[_0x3da46d('0x2c3')](_0x1111ef))return _0x27f99c(_0x1111ef);if('='==_0x1111ef&&_0x142170[_0x3da46d('0xb34')]('>'))return _0x27f99c('=>',_0x3da46d('0x90d'));if('0'==_0x1111ef&&_0x142170[_0x3da46d('0x7d5')](/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return _0x27f99c(_0x3da46d('0x67b'),_0x3da46d('0x67b'));if(/\d/[_0x3da46d('0x2c3')](_0x1111ef))return _0x142170['match'](/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),_0x27f99c(_0x3da46d('0x67b'),_0x3da46d('0x67b'));if('/'==_0x1111ef)return _0x142170[_0x3da46d('0xb34')]('*')?(_0x3b5cad[_0x3da46d('0xaf9')]=_0x296dea,_0x296dea(_0x142170,_0x3b5cad)):_0x142170[_0x3da46d('0xb34')]('/')?(_0x142170[_0x3da46d('0x734')](),_0x27f99c(_0x3da46d('0xe96'),_0x3da46d('0xe96'))):_0xcc85f4(_0x142170,_0x3b5cad,0x1)?(function(_0xc155d9){for(var _0x561d59,_0x28c2c0=!0x1,_0x3cb3f1=!0x1;null!=(_0x561d59=_0xc155d9['next']());){if(!_0x28c2c0){if('/'==_0x561d59&&!_0x3cb3f1)return;'['==_0x561d59?_0x3cb3f1=!0x0:_0x3cb3f1&&']'==_0x561d59&&(_0x3cb3f1=!0x1);}_0x28c2c0=!_0x28c2c0&&'\x5c'==_0x561d59;}}(_0x142170),_0x142170[_0x3da46d('0x7d5')](/^\b(([gimyus])(?![gimyus]*\2))+\b/),_0x27f99c(_0x3da46d('0x711'),_0x3da46d('0x67e'))):(_0x142170[_0x3da46d('0xb34')]('='),_0x27f99c(_0x3da46d('0x90d'),_0x3da46d('0x90d'),_0x142170[_0x3da46d('0xda7')]()));if('`'==_0x1111ef)return _0x3b5cad['tokenize']=_0x612a6,_0x612a6(_0x142170,_0x3b5cad);if('#'==_0x1111ef&&'!'==_0x142170['peek']())return _0x142170['skipToEnd'](),_0x27f99c('meta',_0x3da46d('0x31a'));if('#'==_0x1111ef&&_0x142170[_0x3da46d('0xd8d')](_0x459c6c))return _0x27f99c('variable',_0x3da46d('0x442'));if('<'==_0x1111ef&&_0x142170[_0x3da46d('0x7d5')]('!--')||'-'==_0x1111ef&&_0x142170['match']('->')&&!/\S/[_0x3da46d('0x2c3')](_0x142170[_0x3da46d('0x2fd')][_0x3da46d('0xdf1')](0x0,_0x142170[_0x3da46d('0xa7e')])))return _0x142170['skipToEnd'](),_0x27f99c('comment',_0x3da46d('0xe96'));if(_0x40d873[_0x3da46d('0x2c3')](_0x1111ef))return'>'==_0x1111ef&&_0x3b5cad[_0x3da46d('0xe9d')]&&'>'==_0x3b5cad[_0x3da46d('0xe9d')]['type']||(_0x142170['eat']('=')?'!'!=_0x1111ef&&'='!=_0x1111ef||_0x142170[_0x3da46d('0xb34')]('='):/[<>*+\-|&?]/[_0x3da46d('0x2c3')](_0x1111ef)&&(_0x142170[_0x3da46d('0xb34')](_0x1111ef),'>'==_0x1111ef&&_0x142170['eat'](_0x1111ef))),'?'==_0x1111ef&&_0x142170[_0x3da46d('0xb34')]('.')?_0x27f99c('.'):_0x27f99c(_0x3da46d('0x90d'),_0x3da46d('0x90d'),_0x142170[_0x3da46d('0xda7')]());if(_0x459c6c[_0x3da46d('0x2c3')](_0x1111ef)){_0x142170[_0x3da46d('0xd8d')](_0x459c6c);var _0x148646=_0x142170[_0x3da46d('0xda7')]();if('.'!=_0x3b5cad[_0x3da46d('0xb51')]){if(_0x32a16d['propertyIsEnumerable'](_0x148646)){var _0x2bb4ee=_0x32a16d[_0x148646];return _0x27f99c(_0x2bb4ee[_0x3da46d('0x921')],_0x2bb4ee[_0x3da46d('0xe81')],_0x148646);}if(_0x3da46d('0x58e')==_0x148646&&_0x142170[_0x3da46d('0x7d5')](/^(\s|\/\*.*?\*\/)*[\[\(\w]/,!0x1))return _0x27f99c(_0x3da46d('0x58e'),_0x3da46d('0x26d'),_0x148646);}return _0x27f99c('variable',_0x3da46d('0xdaa'),_0x148646);}}function _0x296dea(_0x3881fa,_0x53f2a9){var _0x23f9b9=_0x81caa1;for(var _0x9c86a0,_0x3e9fe9=!0x1;_0x9c86a0=_0x3881fa[_0x23f9b9('0x165')]();){if('/'==_0x9c86a0&&_0x3e9fe9){_0x53f2a9['tokenize']=_0x3ae603;break;}_0x3e9fe9='*'==_0x9c86a0;}return _0x27f99c(_0x23f9b9('0xe96'),_0x23f9b9('0xe96'));}function _0x612a6(_0x359c83,_0x39c46c){var _0x11b14c=_0x81caa1;for(var _0x2e6fa6,_0x119341=!0x1;null!=(_0x2e6fa6=_0x359c83[_0x11b14c('0x165')]());){if(!_0x119341&&('`'==_0x2e6fa6||'$'==_0x2e6fa6&&_0x359c83[_0x11b14c('0xb34')]('{'))){_0x39c46c[_0x11b14c('0xaf9')]=_0x3ae603;break;}_0x119341=!_0x119341&&'\x5c'==_0x2e6fa6;}return _0x27f99c(_0x11b14c('0x185'),'string-2',_0x359c83[_0x11b14c('0xda7')]());}function _0x3c76e3(_0x405181,_0x1b0545){var _0x34c376=_0x81caa1;_0x1b0545['fatArrowAt']&&(_0x1b0545[_0x34c376('0x943')]=null);var _0x1f6cd5=_0x405181[_0x34c376('0x2fd')][_0x34c376('0xf00')]('=>',_0x405181['start']);if(!(_0x1f6cd5<0x0)){if(_0x12de9a){var _0x56a74d=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/['exec'](_0x405181[_0x34c376('0x2fd')][_0x34c376('0xdf1')](_0x405181['start'],_0x1f6cd5));_0x56a74d&&(_0x1f6cd5=_0x56a74d['index']);}for(var _0x576be1=0x0,_0x187821=!0x1,_0x228071=_0x1f6cd5-0x1;_0x228071>=0x0;--_0x228071){var _0x20bc08=_0x405181[_0x34c376('0x2fd')][_0x34c376('0xcaf')](_0x228071),_0x41d4eb=_0x34c376('0x7a6')[_0x34c376('0xf00')](_0x20bc08);if(_0x41d4eb>=0x0&&_0x41d4eb<0x3){if(!_0x576be1){++_0x228071;break;}if(0x0==--_0x576be1){'('==_0x20bc08&&(_0x187821=!0x0);break;}}else{if(_0x41d4eb>=0x3&&_0x41d4eb<0x6)++_0x576be1;else{if(_0x459c6c[_0x34c376('0x2c3')](_0x20bc08))_0x187821=!0x0;else{if(/["'\/`]/[_0x34c376('0x2c3')](_0x20bc08))for(;;--_0x228071){if(0x0==_0x228071)return;if(_0x405181['string']['charAt'](_0x228071-0x1)==_0x20bc08&&'\x5c'!=_0x405181[_0x34c376('0x2fd')][_0x34c376('0xcaf')](_0x228071-0x2)){_0x228071--;break;}}else{if(_0x187821&&!_0x576be1){++_0x228071;break;}}}}}}_0x187821&&!_0x576be1&&(_0x1b0545[_0x34c376('0x943')]=_0x228071);}}var _0x52d29b={'atom':!0x0,'number':!0x0,'variable':!0x0,'string':!0x0,'regexp':!0x0,'this':!0x0,'jsonld-keyword':!0x0};function _0x3f676c(_0x393ab0,_0x2d514a,_0x10a4aa,_0x2be75d,_0x10aeb8,_0x2a3011){var _0x105d23=_0x81caa1;this[_0x105d23('0x109')]=_0x393ab0,this['column']=_0x2d514a,this[_0x105d23('0x921')]=_0x10a4aa,this[_0x105d23('0x1e5')]=_0x10aeb8,this[_0x105d23('0x946')]=_0x2a3011,null!=_0x2be75d&&(this[_0x105d23('0xd2c')]=_0x2be75d);}function _0x321eea(_0x462e97,_0xc91ad6){var _0x91908d=_0x81caa1;for(var _0x1905d1=_0x462e97['localVars'];_0x1905d1;_0x1905d1=_0x1905d1[_0x91908d('0x165')])if(_0x1905d1[_0x91908d('0x3ea')]==_0xc91ad6)return!0x0;for(var _0x221497=_0x462e97['context'];_0x221497;_0x221497=_0x221497[_0x91908d('0x1e5')])for(_0x1905d1=_0x221497[_0x91908d('0xfa1')];_0x1905d1;_0x1905d1=_0x1905d1[_0x91908d('0x165')])if(_0x1905d1[_0x91908d('0x3ea')]==_0xc91ad6)return!0x0;}var _0x5cbde2={'state':null,'column':null,'marked':null,'cc':null};function _0x2210ce(){var _0x478c2e=_0x81caa1;for(var _0x101ee5=arguments['length']-0x1;_0x101ee5>=0x0;_0x101ee5--)_0x5cbde2['cc'][_0x478c2e('0x91b')](arguments[_0x101ee5]);}function _0xdde3a1(){return _0x2210ce['apply'](null,arguments),!0x0;}function _0x120f2c(_0x5958ba,_0x1756cc){var _0x39c541=_0x81caa1;for(var _0x58bfff=_0x1756cc;_0x58bfff;_0x58bfff=_0x58bfff[_0x39c541('0x165')])if(_0x58bfff[_0x39c541('0x3ea')]==_0x5958ba)return!0x0;return!0x1;}function _0x57f9b5(_0xbc17f3){var _0x4ce9de=_0x81caa1,_0x51a46b=_0x5cbde2[_0x4ce9de('0x55d')];if(_0x5cbde2[_0x4ce9de('0xab6')]='def',_0x51a46b[_0x4ce9de('0x336')]){if(_0x4ce9de('0xdfb')==_0x51a46b[_0x4ce9de('0xe9d')][_0x4ce9de('0x946')]&&_0x51a46b[_0x4ce9de('0x336')]&&_0x51a46b[_0x4ce9de('0x336')][_0x4ce9de('0xc72')]){var _0x3a9b8c=function _0x1e22db(_0x76c3d9,_0x57da78){var _0x1c1d33=_0x4ce9de;if(_0x57da78){if(_0x57da78[_0x1c1d33('0xc72')]){var _0x50a60a=_0x1e22db(_0x76c3d9,_0x57da78[_0x1c1d33('0x1e5')]);return _0x50a60a?_0x50a60a==_0x57da78['prev']?_0x57da78:new _0x5c0e91(_0x50a60a,_0x57da78['vars'],!0x0):null;}return _0x120f2c(_0x76c3d9,_0x57da78[_0x1c1d33('0xfa1')])?_0x57da78:new _0x5c0e91(_0x57da78[_0x1c1d33('0x1e5')],new _0x166a12(_0x76c3d9,_0x57da78[_0x1c1d33('0xfa1')]),!0x1);}return null;}(_0xbc17f3,_0x51a46b[_0x4ce9de('0x336')]);if(null!=_0x3a9b8c)return void(_0x51a46b['context']=_0x3a9b8c);}else{if(!_0x120f2c(_0xbc17f3,_0x51a46b[_0x4ce9de('0x1a9')]))return void(_0x51a46b[_0x4ce9de('0x1a9')]=new _0x166a12(_0xbc17f3,_0x51a46b[_0x4ce9de('0x1a9')]));}}_0x155b6f[_0x4ce9de('0xee2')]&&!_0x120f2c(_0xbc17f3,_0x51a46b[_0x4ce9de('0xee2')])&&(_0x51a46b[_0x4ce9de('0xee2')]=new _0x166a12(_0xbc17f3,_0x51a46b[_0x4ce9de('0xee2')]));}function _0x1123a1(_0x374fcb){var _0x159e44=_0x81caa1;return _0x159e44('0x731')==_0x374fcb||_0x159e44('0x5e3')==_0x374fcb||_0x159e44('0xd52')==_0x374fcb||_0x159e44('0x660')==_0x374fcb||'readonly'==_0x374fcb;}function _0x5c0e91(_0xafce8d,_0x171a91,_0x629d08){var _0x13741f=_0x81caa1;this[_0x13741f('0x1e5')]=_0xafce8d,this[_0x13741f('0xfa1')]=_0x171a91,this['block']=_0x629d08;}function _0x166a12(_0x20dd94,_0x533564){var _0x3385aa=_0x81caa1;this[_0x3385aa('0x3ea')]=_0x20dd94,this[_0x3385aa('0x165')]=_0x533564;}var _0x20f3af=new _0x166a12(_0x81caa1('0x123'),new _0x166a12(_0x81caa1('0xb5'),null));function _0x3fc146(){var _0x4f1001=_0x81caa1;_0x5cbde2['state'][_0x4f1001('0x336')]=new _0x5c0e91(_0x5cbde2[_0x4f1001('0x55d')][_0x4f1001('0x336')],_0x5cbde2[_0x4f1001('0x55d')][_0x4f1001('0x1a9')],!0x1),_0x5cbde2[_0x4f1001('0x55d')]['localVars']=_0x20f3af;}function _0x3989ac(){var _0x42c480=_0x81caa1;_0x5cbde2['state'][_0x42c480('0x336')]=new _0x5c0e91(_0x5cbde2[_0x42c480('0x55d')][_0x42c480('0x336')],_0x5cbde2[_0x42c480('0x55d')][_0x42c480('0x1a9')],!0x0),_0x5cbde2[_0x42c480('0x55d')][_0x42c480('0x1a9')]=null;}function _0x47bcbc(){var _0x302d4b=_0x81caa1;_0x5cbde2[_0x302d4b('0x55d')][_0x302d4b('0x1a9')]=_0x5cbde2['state'][_0x302d4b('0x336')][_0x302d4b('0xfa1')],_0x5cbde2[_0x302d4b('0x55d')][_0x302d4b('0x336')]=_0x5cbde2['state']['context'][_0x302d4b('0x1e5')];}function _0x277fef(_0x12f71e,_0x16f1c6){var _0x5cf4ae=_0x81caa1,_0x18a2ec=function(){var _0x39e94b=_0x5376,_0x4c1da7=_0x5cbde2[_0x39e94b('0x55d')],_0x2411dd=_0x4c1da7[_0x39e94b('0x109')];if(_0x39e94b('0x354')==_0x4c1da7[_0x39e94b('0xe9d')][_0x39e94b('0x921')])_0x2411dd=_0x4c1da7['lexical'][_0x39e94b('0x109')];else for(var _0x2dd6d0=_0x4c1da7['lexical'];_0x2dd6d0&&')'==_0x2dd6d0[_0x39e94b('0x921')]&&_0x2dd6d0[_0x39e94b('0xd2c')];_0x2dd6d0=_0x2dd6d0['prev'])_0x2411dd=_0x2dd6d0[_0x39e94b('0x109')];_0x4c1da7[_0x39e94b('0xe9d')]=new _0x3f676c(_0x2411dd,_0x5cbde2['stream'][_0x39e94b('0x26a')](),_0x12f71e,null,_0x4c1da7[_0x39e94b('0xe9d')],_0x16f1c6);};return _0x18a2ec[_0x5cf4ae('0x72c')]=!0x0,_0x18a2ec;}function _0x4d0289(){var _0x2d310b=_0x81caa1,_0x1a6b50=_0x5cbde2[_0x2d310b('0x55d')];_0x1a6b50[_0x2d310b('0xe9d')][_0x2d310b('0x1e5')]&&(')'==_0x1a6b50[_0x2d310b('0xe9d')][_0x2d310b('0x921')]&&(_0x1a6b50[_0x2d310b('0x109')]=_0x1a6b50[_0x2d310b('0xe9d')][_0x2d310b('0x109')]),_0x1a6b50['lexical']=_0x1a6b50[_0x2d310b('0xe9d')]['prev']);}function _0x123fdd(_0x51773e){return function _0x1062d5(_0x2dbf98){return _0x2dbf98==_0x51773e?_0xdde3a1():';'==_0x51773e||'}'==_0x2dbf98||')'==_0x2dbf98||']'==_0x2dbf98?_0x2210ce():_0xdde3a1(_0x1062d5);};}function _0x274ff5(_0x5a2919,_0x58c840){var _0x49057f=_0x81caa1;return _0x49057f('0xdfb')==_0x5a2919?_0xdde3a1(_0x277fef(_0x49057f('0x6f8'),_0x58c840),_0x3f51fc,_0x123fdd(';'),_0x4d0289):_0x49057f('0xca8')==_0x5a2919?_0xdde3a1(_0x277fef(_0x49057f('0x112a')),_0x52556c,_0x274ff5,_0x4d0289):_0x49057f('0x1122')==_0x5a2919?_0xdde3a1(_0x277fef(_0x49057f('0x112a')),_0x274ff5,_0x4d0289):_0x49057f('0x3f1')==_0x5a2919?_0x5cbde2[_0x49057f('0x2ec')]['match'](/^\s*$/,!0x1)?_0xdde3a1():_0xdde3a1(_0x277fef('stat'),_0x526b21,_0x123fdd(';'),_0x4d0289):_0x49057f('0xec8')==_0x5a2919?_0xdde3a1(_0x123fdd(';')):'{'==_0x5a2919?_0xdde3a1(_0x277fef('}'),_0x3989ac,_0x85dbc6,_0x4d0289,_0x47bcbc):';'==_0x5a2919?_0xdde3a1():'if'==_0x5a2919?(_0x49057f('0x8ba')==_0x5cbde2[_0x49057f('0x55d')][_0x49057f('0xe9d')]['info']&&_0x5cbde2[_0x49057f('0x55d')]['cc'][_0x5cbde2['state']['cc'][_0x49057f('0x13')]-0x1]==_0x4d0289&&_0x5cbde2['state']['cc']['pop']()(),_0xdde3a1(_0x277fef(_0x49057f('0x112a')),_0x52556c,_0x274ff5,_0x4d0289,_0x8bba03)):'function'==_0x5a2919?_0xdde3a1(_0x7d9d88):_0x49057f('0x80e')==_0x5a2919?_0xdde3a1(_0x277fef(_0x49057f('0x112a')),_0xb0ab0b,_0x274ff5,_0x4d0289):_0x49057f('0x63c')==_0x5a2919||_0x12de9a&&_0x49057f('0x968')==_0x58c840?(_0x5cbde2['marked']=_0x49057f('0x26d'),_0xdde3a1(_0x277fef('form',_0x49057f('0x63c')==_0x5a2919?_0x5a2919:_0x58c840),_0x4fbd38,_0x4d0289)):_0x49057f('0xdaa')==_0x5a2919?_0x12de9a&&'declare'==_0x58c840?(_0x5cbde2[_0x49057f('0xab6')]=_0x49057f('0x26d'),_0xdde3a1(_0x274ff5)):_0x12de9a&&(_0x49057f('0x10af')==_0x58c840||'enum'==_0x58c840||_0x49057f('0x921')==_0x58c840)&&_0x5cbde2[_0x49057f('0x2ec')][_0x49057f('0x7d5')](/^\s*\w/,!0x1)?(_0x5cbde2[_0x49057f('0xab6')]='keyword',_0x49057f('0x12c')==_0x58c840?_0xdde3a1(_0x465c25):_0x49057f('0x921')==_0x58c840?_0xdde3a1(_0x538f12,_0x123fdd(_0x49057f('0x90d')),_0x1c68f8,_0x123fdd(';')):_0xdde3a1(_0x277fef(_0x49057f('0x112a')),_0x34645d,_0x123fdd('{'),_0x277fef('}'),_0x85dbc6,_0x4d0289,_0x4d0289)):_0x12de9a&&'namespace'==_0x58c840?(_0x5cbde2[_0x49057f('0xab6')]=_0x49057f('0x26d'),_0xdde3a1(_0x277fef(_0x49057f('0x112a')),_0xddd84a,_0x274ff5,_0x4d0289)):_0x12de9a&&_0x49057f('0x660')==_0x58c840?(_0x5cbde2[_0x49057f('0xab6')]=_0x49057f('0x26d'),_0xdde3a1(_0x274ff5)):_0xdde3a1(_0x277fef(_0x49057f('0x354')),_0x11465c):'switch'==_0x5a2919?_0xdde3a1(_0x277fef('form'),_0x52556c,_0x123fdd('{'),_0x277fef('}',_0x49057f('0x667')),_0x3989ac,_0x85dbc6,_0x4d0289,_0x4d0289,_0x47bcbc):_0x49057f('0xa54')==_0x5a2919?_0xdde3a1(_0xddd84a,_0x123fdd(':')):'default'==_0x5a2919?_0xdde3a1(_0x123fdd(':')):_0x49057f('0x10d0')==_0x5a2919?_0xdde3a1(_0x277fef(_0x49057f('0x112a')),_0x3fc146,_0x59f7d9,_0x274ff5,_0x4d0289,_0x47bcbc):_0x49057f('0x5c8')==_0x5a2919?_0xdde3a1(_0x277fef(_0x49057f('0x354')),_0x3ba2e9,_0x4d0289):_0x49057f('0xe7b')==_0x5a2919?_0xdde3a1(_0x277fef(_0x49057f('0x354')),_0x16d362,_0x4d0289):'async'==_0x5a2919?_0xdde3a1(_0x274ff5):'@'==_0x58c840?_0xdde3a1(_0xddd84a,_0x274ff5):_0x2210ce(_0x277fef(_0x49057f('0x354')),_0xddd84a,_0x123fdd(';'),_0x4d0289);}function _0x59f7d9(_0x12f083){if('('==_0x12f083)return _0xdde3a1(_0x109d7e,_0x123fdd(')'));}function _0xddd84a(_0x2b6ac9,_0x24f5f8){return _0x51f7b2(_0x2b6ac9,_0x24f5f8,!0x1);}function _0x5c8e05(_0x196dd1,_0xcaf0ca){return _0x51f7b2(_0x196dd1,_0xcaf0ca,!0x0);}function _0x52556c(_0x472f54){return'('!=_0x472f54?_0x2210ce():_0xdde3a1(_0x277fef(')'),_0x526b21,_0x123fdd(')'),_0x4d0289);}function _0x51f7b2(_0x2ce100,_0x473c34,_0x2e253a){var _0x3e41d5=_0x81caa1;if(_0x5cbde2['state'][_0x3e41d5('0x943')]==_0x5cbde2[_0x3e41d5('0x2ec')]['start']){var _0x50c053=_0x2e253a?_0x331cf4:_0x14440a;if('('==_0x2ce100)return _0xdde3a1(_0x3fc146,_0x277fef(')'),_0x10bb19(_0x109d7e,')'),_0x4d0289,_0x123fdd('=>'),_0x50c053,_0x47bcbc);if('variable'==_0x2ce100)return _0x2210ce(_0x3fc146,_0x34645d,_0x123fdd('=>'),_0x50c053,_0x47bcbc);}var _0x389461=_0x2e253a?_0x28fee5:_0x3c6d3f;return _0x52d29b['hasOwnProperty'](_0x2ce100)?_0xdde3a1(_0x389461):_0x3e41d5('0x106c')==_0x2ce100?_0xdde3a1(_0x7d9d88,_0x389461):'class'==_0x2ce100||_0x12de9a&&_0x3e41d5('0x968')==_0x473c34?(_0x5cbde2[_0x3e41d5('0xab6')]=_0x3e41d5('0x26d'),_0xdde3a1(_0x277fef(_0x3e41d5('0x112a')),_0x531066,_0x4d0289)):'keyword\x20c'==_0x2ce100||_0x3e41d5('0x58e')==_0x2ce100?_0xdde3a1(_0x2e253a?_0x5c8e05:_0xddd84a):'('==_0x2ce100?_0xdde3a1(_0x277fef(')'),_0x526b21,_0x123fdd(')'),_0x4d0289,_0x389461):_0x3e41d5('0x90d')==_0x2ce100||'spread'==_0x2ce100?_0xdde3a1(_0x2e253a?_0x5c8e05:_0xddd84a):'['==_0x2ce100?_0xdde3a1(_0x277fef(']'),_0x46a19c,_0x4d0289,_0x389461):'{'==_0x2ce100?_0x454dac(_0x2bb53c,'}',null,_0x389461):_0x3e41d5('0x185')==_0x2ce100?_0x2210ce(_0xd7116,_0x389461):'new'==_0x2ce100?_0xdde3a1(function(_0xfa0b44){return function(_0x4bd6cd){var _0x429479=_0x5376;return'.'==_0x4bd6cd?_0xdde3a1(_0xfa0b44?_0x57b402:_0x24687b):_0x429479('0xdaa')==_0x4bd6cd&&_0x12de9a?_0xdde3a1(_0x499cf2,_0xfa0b44?_0x28fee5:_0x3c6d3f):_0x2210ce(_0xfa0b44?_0x5c8e05:_0xddd84a);};}(_0x2e253a)):'import'==_0x2ce100?_0xdde3a1(_0xddd84a):_0xdde3a1();}function _0x526b21(_0x59f4b9){var _0x209de9=_0x81caa1;return _0x59f4b9[_0x209de9('0x7d5')](/[;\}\)\],]/)?_0x2210ce():_0x2210ce(_0xddd84a);}function _0x3c6d3f(_0x414e11,_0x7b8228){return','==_0x414e11?_0xdde3a1(_0x526b21):_0x28fee5(_0x414e11,_0x7b8228,!0x1);}function _0x28fee5(_0x2803a9,_0xc483c3,_0x27a243){var _0xbf6378=_0x81caa1,_0x8957ba=0x0==_0x27a243?_0x3c6d3f:_0x28fee5,_0x511ba3=0x0==_0x27a243?_0xddd84a:_0x5c8e05;return'=>'==_0x2803a9?_0xdde3a1(_0x3fc146,_0x27a243?_0x331cf4:_0x14440a,_0x47bcbc):_0xbf6378('0x90d')==_0x2803a9?/\+\+|--/['test'](_0xc483c3)||_0x12de9a&&'!'==_0xc483c3?_0xdde3a1(_0x8957ba):_0x12de9a&&'<'==_0xc483c3&&_0x5cbde2[_0xbf6378('0x2ec')][_0xbf6378('0x7d5')](/^([^<>]|<[^<>]*>)*>\s*\(/,!0x1)?_0xdde3a1(_0x277fef('>'),_0x10bb19(_0x1c68f8,'>'),_0x4d0289,_0x8957ba):'?'==_0xc483c3?_0xdde3a1(_0xddd84a,_0x123fdd(':'),_0x511ba3):_0xdde3a1(_0x511ba3):_0xbf6378('0x185')==_0x2803a9?_0x2210ce(_0xd7116,_0x8957ba):';'!=_0x2803a9?'('==_0x2803a9?_0x454dac(_0x5c8e05,')','call',_0x8957ba):'.'==_0x2803a9?_0xdde3a1(_0x3210d1,_0x8957ba):'['==_0x2803a9?_0xdde3a1(_0x277fef(']'),_0x526b21,_0x123fdd(']'),_0x4d0289,_0x8957ba):_0x12de9a&&'as'==_0xc483c3?(_0x5cbde2['marked']='keyword',_0xdde3a1(_0x1c68f8,_0x8957ba)):_0xbf6378('0x711')==_0x2803a9?(_0x5cbde2['state']['lastType']=_0x5cbde2['marked']=_0xbf6378('0x90d'),_0x5cbde2[_0xbf6378('0x2ec')][_0xbf6378('0x2f9')](_0x5cbde2[_0xbf6378('0x2ec')][_0xbf6378('0x9db')]-_0x5cbde2[_0xbf6378('0x2ec')][_0xbf6378('0xa7e')]-0x1),_0xdde3a1(_0x511ba3)):void 0x0:void 0x0;}function _0xd7116(_0x1691e4,_0x482d13){var _0x1d44df=_0x81caa1;return _0x1d44df('0x185')!=_0x1691e4?_0x2210ce():'${'!=_0x482d13[_0x1d44df('0xdf1')](_0x482d13[_0x1d44df('0x13')]-0x2)?_0xdde3a1(_0xd7116):_0xdde3a1(_0xddd84a,_0x10f102);}function _0x10f102(_0x365e5f){var _0x236df5=_0x81caa1;if('}'==_0x365e5f)return _0x5cbde2[_0x236df5('0xab6')]=_0x236df5('0x67e'),_0x5cbde2['state'][_0x236df5('0xaf9')]=_0x612a6,_0xdde3a1(_0xd7116);}function _0x14440a(_0xce1441){var _0x1e2db9=_0x81caa1;return _0x3c76e3(_0x5cbde2[_0x1e2db9('0x2ec')],_0x5cbde2['state']),_0x2210ce('{'==_0xce1441?_0x274ff5:_0xddd84a);}function _0x331cf4(_0x3b0627){var _0x32c538=_0x81caa1;return _0x3c76e3(_0x5cbde2['stream'],_0x5cbde2[_0x32c538('0x55d')]),_0x2210ce('{'==_0x3b0627?_0x274ff5:_0x5c8e05);}function _0x24687b(_0x519f5b,_0x28489b){var _0x2c7451=_0x81caa1;if(_0x2c7451('0x1d7')==_0x28489b)return _0x5cbde2[_0x2c7451('0xab6')]=_0x2c7451('0x26d'),_0xdde3a1(_0x3c6d3f);}function _0x57b402(_0x5d9535,_0x5e9e02){var _0x40e5c1=_0x81caa1;if(_0x40e5c1('0x1d7')==_0x5e9e02)return _0x5cbde2['marked']=_0x40e5c1('0x26d'),_0xdde3a1(_0x28fee5);}function _0x11465c(_0x2aa6e0){return':'==_0x2aa6e0?_0xdde3a1(_0x4d0289,_0x274ff5):_0x2210ce(_0x3c6d3f,_0x123fdd(';'),_0x4d0289);}function _0x3210d1(_0x6dc38b){var _0x4c2ed5=_0x81caa1;if(_0x4c2ed5('0xdaa')==_0x6dc38b)return _0x5cbde2[_0x4c2ed5('0xab6')]=_0x4c2ed5('0x442'),_0xdde3a1();}function _0x2bb53c(_0x53acd1,_0x147852){var _0xda260c=_0x81caa1;return _0xda260c('0x58e')==_0x53acd1?(_0x5cbde2[_0xda260c('0xab6')]=_0xda260c('0x442'),_0xdde3a1(_0x2bb53c)):_0xda260c('0xdaa')==_0x53acd1||'keyword'==_0x5cbde2['style']?(_0x5cbde2['marked']='property',_0xda260c('0xd12')==_0x147852||'set'==_0x147852?_0xdde3a1(_0x1b7a53):(_0x12de9a&&_0x5cbde2['state'][_0xda260c('0x943')]==_0x5cbde2['stream']['start']&&(_0x5c59c9=_0x5cbde2['stream']['match'](/^\s*:\s*/,!0x1))&&(_0x5cbde2['state']['fatArrowAt']=_0x5cbde2[_0xda260c('0x2ec')]['pos']+_0x5c59c9[0x0][_0xda260c('0x13')]),_0xdde3a1(_0x122bbf))):_0xda260c('0x67b')==_0x53acd1||_0xda260c('0x2fd')==_0x53acd1?(_0x5cbde2[_0xda260c('0xab6')]=_0x4839e4?'property':_0x5cbde2[_0xda260c('0xe81')]+_0xda260c('0x6b3'),_0xdde3a1(_0x122bbf)):_0xda260c('0x223')==_0x53acd1?_0xdde3a1(_0x122bbf):_0x12de9a&&_0x1123a1(_0x147852)?(_0x5cbde2[_0xda260c('0xab6')]=_0xda260c('0x26d'),_0xdde3a1(_0x2bb53c)):'['==_0x53acd1?_0xdde3a1(_0xddd84a,_0x2d4827,_0x123fdd(']'),_0x122bbf):_0xda260c('0x7e9')==_0x53acd1?_0xdde3a1(_0x5c8e05,_0x122bbf):'*'==_0x147852?(_0x5cbde2[_0xda260c('0xab6')]=_0xda260c('0x26d'),_0xdde3a1(_0x2bb53c)):':'==_0x53acd1?_0x2210ce(_0x122bbf):void 0x0;var _0x5c59c9;}function _0x1b7a53(_0x50aa27){var _0x57b837=_0x81caa1;return _0x57b837('0xdaa')!=_0x50aa27?_0x2210ce(_0x122bbf):(_0x5cbde2['marked']=_0x57b837('0x442'),_0xdde3a1(_0x7d9d88));}function _0x122bbf(_0x13b401){return':'==_0x13b401?_0xdde3a1(_0x5c8e05):'('==_0x13b401?_0x2210ce(_0x7d9d88):void 0x0;}function _0x10bb19(_0x20f143,_0x549dae,_0x560d7a){function _0x576c35(_0x39d5bf,_0x124698){var _0x9c5731=_0x5376;if(_0x560d7a?_0x560d7a[_0x9c5731('0xf00')](_0x39d5bf)>-0x1:','==_0x39d5bf){var _0x321164=_0x5cbde2[_0x9c5731('0x55d')][_0x9c5731('0xe9d')];return _0x9c5731('0xfd2')==_0x321164['info']&&(_0x321164['pos']=(_0x321164[_0x9c5731('0x9db')]||0x0)+0x1),_0xdde3a1(function(_0x46eb4c,_0x2762c3){return _0x46eb4c==_0x549dae||_0x2762c3==_0x549dae?_0x2210ce():_0x2210ce(_0x20f143);},_0x576c35);}return _0x39d5bf==_0x549dae||_0x124698==_0x549dae?_0xdde3a1():_0x560d7a&&_0x560d7a[_0x9c5731('0xf00')](';')>-0x1?_0x2210ce(_0x20f143):_0xdde3a1(_0x123fdd(_0x549dae));}return function(_0x16a07d,_0x33db04){return _0x16a07d==_0x549dae||_0x33db04==_0x549dae?_0xdde3a1():_0x2210ce(_0x20f143,_0x576c35);};}function _0x454dac(_0x242304,_0x244b35,_0x1306e4){var _0x23691b=_0x81caa1;for(var _0x93f008=0x3;_0x93f008'),_0x1c68f8):void 0x0;}function _0x3d8c87(_0x197b65){if('=>'==_0x197b65)return _0xdde3a1(_0x1c68f8);}function _0x3fda16(_0x11c575,_0xa356f4){var _0x213c6b=_0x81caa1;return _0x213c6b('0xdaa')==_0x11c575||_0x213c6b('0x26d')==_0x5cbde2[_0x213c6b('0xe81')]?(_0x5cbde2[_0x213c6b('0xab6')]=_0x213c6b('0x442'),_0xdde3a1(_0x3fda16)):'?'==_0xa356f4||_0x213c6b('0x67b')==_0x11c575||_0x213c6b('0x2fd')==_0x11c575?_0xdde3a1(_0x3fda16):':'==_0x11c575?_0xdde3a1(_0x1c68f8):'['==_0x11c575?_0xdde3a1(_0x123fdd(_0x213c6b('0xdaa')),_0x471517,_0x123fdd(']'),_0x3fda16):'('==_0x11c575?_0x2210ce(_0x360ce1,_0x3fda16):void 0x0;}function _0x32860c(_0x5814b5,_0x9a8abf){var _0x4e2076=_0x81caa1;return _0x4e2076('0xdaa')==_0x5814b5&&_0x5cbde2[_0x4e2076('0x2ec')][_0x4e2076('0x7d5')](/^\s*[?:]/,!0x1)||'?'==_0x9a8abf?_0xdde3a1(_0x32860c):':'==_0x5814b5?_0xdde3a1(_0x1c68f8):'spread'==_0x5814b5?_0xdde3a1(_0x32860c):_0x2210ce(_0x1c68f8);}function _0x26b7e5(_0x8520a0,_0x386c37){var _0x57faae=_0x81caa1;return'<'==_0x386c37?_0xdde3a1(_0x277fef('>'),_0x10bb19(_0x1c68f8,'>'),_0x4d0289,_0x26b7e5):'|'==_0x386c37||'.'==_0x8520a0||'&'==_0x386c37?_0xdde3a1(_0x1c68f8):'['==_0x8520a0?_0xdde3a1(_0x1c68f8,_0x123fdd(']'),_0x26b7e5):_0x57faae('0x55e')==_0x386c37||_0x57faae('0xd33')==_0x386c37?(_0x5cbde2[_0x57faae('0xab6')]=_0x57faae('0x26d'),_0xdde3a1(_0x1c68f8)):'?'==_0x386c37?_0xdde3a1(_0x1c68f8,_0x123fdd(':'),_0x1c68f8):void 0x0;}function _0x499cf2(_0x1caae5,_0x1af1ec){if('<'==_0x1af1ec)return _0xdde3a1(_0x277fef('>'),_0x10bb19(_0x1c68f8,'>'),_0x4d0289,_0x26b7e5);}function _0x3d181e(){return _0x2210ce(_0x1c68f8,_0x437fc9);}function _0x437fc9(_0x5258cd,_0x394bad){if('='==_0x394bad)return _0xdde3a1(_0x1c68f8);}function _0x3f51fc(_0x579d1e,_0x4ee6bf){var _0x36463f=_0x81caa1;return _0x36463f('0x12c')==_0x4ee6bf?(_0x5cbde2[_0x36463f('0xab6')]='keyword',_0xdde3a1(_0x465c25)):_0x2210ce(_0x34645d,_0x2d4827,_0x38c9fd,_0xca1e0b);}function _0x34645d(_0x3bb185,_0x3d08a3){var _0x473c13=_0x81caa1;return _0x12de9a&&_0x1123a1(_0x3d08a3)?(_0x5cbde2[_0x473c13('0xab6')]='keyword',_0xdde3a1(_0x34645d)):'variable'==_0x3bb185?(_0x57f9b5(_0x3d08a3),_0xdde3a1()):'spread'==_0x3bb185?_0xdde3a1(_0x34645d):'['==_0x3bb185?_0x454dac(_0x403a45,']'):'{'==_0x3bb185?_0x454dac(_0x41872a,'}'):void 0x0;}function _0x41872a(_0x313b87,_0x26bafa){var _0xcff9f9=_0x81caa1;return _0xcff9f9('0xdaa')!=_0x313b87||_0x5cbde2[_0xcff9f9('0x2ec')][_0xcff9f9('0x7d5')](/^\s*:/,!0x1)?(_0xcff9f9('0xdaa')==_0x313b87&&(_0x5cbde2[_0xcff9f9('0xab6')]='property'),_0xcff9f9('0x7e9')==_0x313b87?_0xdde3a1(_0x34645d):'}'==_0x313b87?_0x2210ce():'['==_0x313b87?_0xdde3a1(_0xddd84a,_0x123fdd(']'),_0x123fdd(':'),_0x41872a):_0xdde3a1(_0x123fdd(':'),_0x34645d,_0x38c9fd)):(_0x57f9b5(_0x26bafa),_0xdde3a1(_0x38c9fd));}function _0x403a45(){return _0x2210ce(_0x34645d,_0x38c9fd);}function _0x38c9fd(_0x548e98,_0x23892c){if('='==_0x23892c)return _0xdde3a1(_0x5c8e05);}function _0xca1e0b(_0x119f81){if(','==_0x119f81)return _0xdde3a1(_0x3f51fc);}function _0x8bba03(_0xe6b67e,_0x598096){var _0x1b1089=_0x81caa1;if(_0x1b1089('0x1122')==_0xe6b67e&&'else'==_0x598096)return _0xdde3a1(_0x277fef(_0x1b1089('0x112a'),_0x1b1089('0x8ba')),_0x274ff5,_0x4d0289);}function _0xb0ab0b(_0x37c4a6,_0x21062a){var _0x268fe9=_0x81caa1;return _0x268fe9('0xcf6')==_0x21062a?_0xdde3a1(_0xb0ab0b):'('==_0x37c4a6?_0xdde3a1(_0x277fef(')'),_0x2e5ed2,_0x4d0289):void 0x0;}function _0x2e5ed2(_0x496f2e){var _0x502de1=_0x81caa1;return _0x502de1('0xdfb')==_0x496f2e?_0xdde3a1(_0x3f51fc,_0x28c270):'variable'==_0x496f2e?_0xdde3a1(_0x28c270):_0x2210ce(_0x28c270);}function _0x28c270(_0x201c8c,_0x28656a){var _0x573336=_0x81caa1;return')'==_0x201c8c?_0xdde3a1():';'==_0x201c8c?_0xdde3a1(_0x28c270):'in'==_0x28656a||'of'==_0x28656a?(_0x5cbde2['marked']=_0x573336('0x26d'),_0xdde3a1(_0xddd84a,_0x28c270)):_0x2210ce(_0xddd84a,_0x28c270);}function _0x7d9d88(_0x3b01f5,_0xb6f83b){var _0xa9ad53=_0x81caa1;return'*'==_0xb6f83b?(_0x5cbde2[_0xa9ad53('0xab6')]='keyword',_0xdde3a1(_0x7d9d88)):_0xa9ad53('0xdaa')==_0x3b01f5?(_0x57f9b5(_0xb6f83b),_0xdde3a1(_0x7d9d88)):'('==_0x3b01f5?_0xdde3a1(_0x3fc146,_0x277fef(')'),_0x10bb19(_0x109d7e,')'),_0x4d0289,_0x4beba,_0x274ff5,_0x47bcbc):_0x12de9a&&'<'==_0xb6f83b?_0xdde3a1(_0x277fef('>'),_0x10bb19(_0x3d181e,'>'),_0x4d0289,_0x7d9d88):void 0x0;}function _0x360ce1(_0x5f1392,_0xec6239){var _0x13c1f1=_0x81caa1;return'*'==_0xec6239?(_0x5cbde2[_0x13c1f1('0xab6')]=_0x13c1f1('0x26d'),_0xdde3a1(_0x360ce1)):'variable'==_0x5f1392?(_0x57f9b5(_0xec6239),_0xdde3a1(_0x360ce1)):'('==_0x5f1392?_0xdde3a1(_0x3fc146,_0x277fef(')'),_0x10bb19(_0x109d7e,')'),_0x4d0289,_0x4beba,_0x47bcbc):_0x12de9a&&'<'==_0xec6239?_0xdde3a1(_0x277fef('>'),_0x10bb19(_0x3d181e,'>'),_0x4d0289,_0x360ce1):void 0x0;}function _0x538f12(_0x49d13f,_0x1b1026){var _0x449452=_0x81caa1;return _0x449452('0x26d')==_0x49d13f||_0x449452('0xdaa')==_0x49d13f?(_0x5cbde2['marked']=_0x449452('0x921'),_0xdde3a1(_0x538f12)):'<'==_0x1b1026?_0xdde3a1(_0x277fef('>'),_0x10bb19(_0x3d181e,'>'),_0x4d0289):void 0x0;}function _0x109d7e(_0x476fd6,_0x49cbd4){var _0x1a211b=_0x81caa1;return'@'==_0x49cbd4&&_0xdde3a1(_0xddd84a,_0x109d7e),_0x1a211b('0x7e9')==_0x476fd6?_0xdde3a1(_0x109d7e):_0x12de9a&&_0x1123a1(_0x49cbd4)?(_0x5cbde2[_0x1a211b('0xab6')]='keyword',_0xdde3a1(_0x109d7e)):_0x12de9a&&_0x1a211b('0x123')==_0x476fd6?_0xdde3a1(_0x2d4827,_0x38c9fd):_0x2210ce(_0x34645d,_0x2d4827,_0x38c9fd);}function _0x531066(_0x3ff16d,_0x417643){var _0x412c25=_0x81caa1;return _0x412c25('0xdaa')==_0x3ff16d?_0x4fbd38(_0x3ff16d,_0x417643):_0x4b404c(_0x3ff16d,_0x417643);}function _0x4fbd38(_0x5a4d14,_0x901ee3){var _0x2e207f=_0x81caa1;if(_0x2e207f('0xdaa')==_0x5a4d14)return _0x57f9b5(_0x901ee3),_0xdde3a1(_0x4b404c);}function _0x4b404c(_0x4859a0,_0x581690){var _0x1ce3de=_0x81caa1;return'<'==_0x581690?_0xdde3a1(_0x277fef('>'),_0x10bb19(_0x3d181e,'>'),_0x4d0289,_0x4b404c):_0x1ce3de('0x55e')==_0x581690||_0x1ce3de('0xd33')==_0x581690||_0x12de9a&&','==_0x4859a0?(_0x1ce3de('0xd33')==_0x581690&&(_0x5cbde2[_0x1ce3de('0xab6')]=_0x1ce3de('0x26d')),_0xdde3a1(_0x12de9a?_0x1c68f8:_0xddd84a,_0x4b404c)):'{'==_0x4859a0?_0xdde3a1(_0x277fef('}'),_0x50a16e,_0x4d0289):void 0x0;}function _0x50a16e(_0x108f99,_0x33a357){var _0x117231=_0x81caa1;return _0x117231('0x58e')==_0x108f99||_0x117231('0xdaa')==_0x108f99&&(_0x117231('0xbe')==_0x33a357||_0x117231('0xd12')==_0x33a357||_0x117231('0x24a')==_0x33a357||_0x12de9a&&_0x1123a1(_0x33a357))&&_0x5cbde2[_0x117231('0x2ec')][_0x117231('0x7d5')](/^\s+[\w$\xa1-\uffff]/,!0x1)?(_0x5cbde2['marked']='keyword',_0xdde3a1(_0x50a16e)):_0x117231('0xdaa')==_0x108f99||'keyword'==_0x5cbde2[_0x117231('0xe81')]?(_0x5cbde2[_0x117231('0xab6')]=_0x117231('0x442'),_0xdde3a1(_0x57324c,_0x50a16e)):_0x117231('0x67b')==_0x108f99||_0x117231('0x2fd')==_0x108f99?_0xdde3a1(_0x57324c,_0x50a16e):'['==_0x108f99?_0xdde3a1(_0xddd84a,_0x2d4827,_0x123fdd(']'),_0x57324c,_0x50a16e):'*'==_0x33a357?(_0x5cbde2[_0x117231('0xab6')]=_0x117231('0x26d'),_0xdde3a1(_0x50a16e)):_0x12de9a&&'('==_0x108f99?_0x2210ce(_0x360ce1,_0x50a16e):';'==_0x108f99||','==_0x108f99?_0xdde3a1(_0x50a16e):'}'==_0x108f99?_0xdde3a1():'@'==_0x33a357?_0xdde3a1(_0xddd84a,_0x50a16e):void 0x0;}function _0x57324c(_0x5232e4,_0x2316fe){var _0x14ba7b=_0x81caa1;if('?'==_0x2316fe)return _0xdde3a1(_0x57324c);if(':'==_0x5232e4)return _0xdde3a1(_0x1c68f8,_0x38c9fd);if('='==_0x2316fe)return _0xdde3a1(_0x5c8e05);var _0x2f07fc=_0x5cbde2[_0x14ba7b('0x55d')][_0x14ba7b('0xe9d')][_0x14ba7b('0x1e5')];return _0x2210ce(_0x2f07fc&&'interface'==_0x2f07fc[_0x14ba7b('0x946')]?_0x360ce1:_0x7d9d88);}function _0x3ba2e9(_0x40b8a5,_0x4eb400){var _0x2ffd17=_0x81caa1;return'*'==_0x4eb400?(_0x5cbde2[_0x2ffd17('0xab6')]=_0x2ffd17('0x26d'),_0xdde3a1(_0x512444,_0x123fdd(';'))):_0x2ffd17('0xf5f')==_0x4eb400?(_0x5cbde2['marked']='keyword',_0xdde3a1(_0xddd84a,_0x123fdd(';'))):'{'==_0x40b8a5?_0xdde3a1(_0x10bb19(_0x2e1c78,'}'),_0x512444,_0x123fdd(';')):_0x2210ce(_0x274ff5);}function _0x2e1c78(_0x1d275d,_0x9b8bb0){var _0x530336=_0x81caa1;return'as'==_0x9b8bb0?(_0x5cbde2[_0x530336('0xab6')]=_0x530336('0x26d'),_0xdde3a1(_0x123fdd(_0x530336('0xdaa')))):_0x530336('0xdaa')==_0x1d275d?_0x2210ce(_0x5c8e05,_0x2e1c78):void 0x0;}function _0x16d362(_0x5d8215){var _0x295b3b=_0x81caa1;return _0x295b3b('0x2fd')==_0x5d8215?_0xdde3a1():'('==_0x5d8215?_0x2210ce(_0xddd84a):_0x2210ce(_0x57d0db,_0x11dae4,_0x512444);}function _0x57d0db(_0x49c8a2,_0x571fdf){var _0x27c92b=_0x81caa1;return'{'==_0x49c8a2?_0x454dac(_0x57d0db,'}'):('variable'==_0x49c8a2&&_0x57f9b5(_0x571fdf),'*'==_0x571fdf&&(_0x5cbde2[_0x27c92b('0xab6')]='keyword'),_0xdde3a1(_0x2bde46));}function _0x11dae4(_0xf0fb51){if(','==_0xf0fb51)return _0xdde3a1(_0x57d0db,_0x11dae4);}function _0x2bde46(_0x57c99f,_0x5eeedb){var _0x3b5a49=_0x81caa1;if('as'==_0x5eeedb)return _0x5cbde2['marked']=_0x3b5a49('0x26d'),_0xdde3a1(_0x57d0db);}function _0x512444(_0x567b61,_0x33f619){var _0x564311=_0x81caa1;if(_0x564311('0x1161')==_0x33f619)return _0x5cbde2[_0x564311('0xab6')]=_0x564311('0x26d'),_0xdde3a1(_0xddd84a);}function _0x46a19c(_0x6addf8){return']'==_0x6addf8?_0xdde3a1():_0x2210ce(_0x10bb19(_0x5c8e05,']'));}function _0x465c25(){return _0x2210ce(_0x277fef('form'),_0x34645d,_0x123fdd('{'),_0x277fef('}'),_0x10bb19(_0x26e28a,'}'),_0x4d0289,_0x4d0289);}function _0x26e28a(){return _0x2210ce(_0x34645d,_0x38c9fd);}function _0xcc85f4(_0x18cead,_0x151a3e,_0x5779e9){var _0x4060f3=_0x81caa1;return _0x151a3e[_0x4060f3('0xaf9')]==_0x3ae603&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/[_0x4060f3('0x2c3')](_0x151a3e[_0x4060f3('0xb51')])||'quasi'==_0x151a3e['lastType']&&/\{\s*$/['test'](_0x18cead[_0x4060f3('0x2fd')][_0x4060f3('0xdf1')](0x0,_0x18cead[_0x4060f3('0x9db')]-(_0x5779e9||0x0)));}return _0x47bcbc['lex']=!0x0,_0x4d0289[_0x81caa1('0x72c')]=!0x0,{'startState':function(_0x1a55b6){var _0x12c669=_0x81caa1,_0x5be94f={'tokenize':_0x3ae603,'lastType':'sof','cc':[],'lexical':new _0x3f676c((_0x1a55b6||0x0)-_0x12cd30,0x0,_0x12c669('0xc72'),!0x1),'localVars':_0x155b6f['localVars'],'context':_0x155b6f[_0x12c669('0x1a9')]&&new _0x5c0e91(null,null,!0x1),'indented':_0x1a55b6||0x0};return _0x155b6f['globalVars']&&_0x12c669('0xb3f')==typeof _0x155b6f[_0x12c669('0xee2')]&&(_0x5be94f[_0x12c669('0xee2')]=_0x155b6f[_0x12c669('0xee2')]),_0x5be94f;},'token':function(_0x1e8d4c,_0x814a2b){var _0x5e2d88=_0x81caa1;if(_0x1e8d4c[_0x5e2d88('0x683')]()&&(_0x814a2b['lexical'][_0x5e2d88('0xe9c')](_0x5e2d88('0xd2c'))||(_0x814a2b[_0x5e2d88('0xe9d')][_0x5e2d88('0xd2c')]=!0x1),_0x814a2b[_0x5e2d88('0x109')]=_0x1e8d4c[_0x5e2d88('0xac8')](),_0x3c76e3(_0x1e8d4c,_0x814a2b)),_0x814a2b['tokenize']!=_0x296dea&&_0x1e8d4c['eatSpace']())return null;var _0x24d281=_0x814a2b[_0x5e2d88('0xaf9')](_0x1e8d4c,_0x814a2b);return _0x5e2d88('0xe96')==_0x507def?_0x24d281:(_0x814a2b['lastType']='operator'!=_0x507def||'++'!=_0x4fd57d&&'--'!=_0x4fd57d?_0x507def:_0x5e2d88('0xb63'),function(_0x54fb09,_0x41f4bd,_0xa8e92c,_0x5234c4,_0x35e5a2){var _0x22baea=_0x5e2d88,_0x2175f5=_0x54fb09['cc'];for(_0x5cbde2[_0x22baea('0x55d')]=_0x54fb09,_0x5cbde2[_0x22baea('0x2ec')]=_0x35e5a2,_0x5cbde2[_0x22baea('0xab6')]=null,_0x5cbde2['cc']=_0x2175f5,_0x5cbde2[_0x22baea('0xe81')]=_0x41f4bd,_0x54fb09[_0x22baea('0xe9d')][_0x22baea('0xe9c')](_0x22baea('0xd2c'))||(_0x54fb09[_0x22baea('0xe9d')][_0x22baea('0xd2c')]=!0x0);;)if((_0x2175f5[_0x22baea('0x13')]?_0x2175f5[_0x22baea('0x2a3')]():_0x58faf3?_0xddd84a:_0x274ff5)(_0xa8e92c,_0x5234c4)){for(;_0x2175f5['length']&&_0x2175f5[_0x2175f5[_0x22baea('0x13')]-0x1][_0x22baea('0x72c')];)_0x2175f5[_0x22baea('0x2a3')]()();return _0x5cbde2[_0x22baea('0xab6')]?_0x5cbde2[_0x22baea('0xab6')]:_0x22baea('0xdaa')==_0xa8e92c&&_0x321eea(_0x54fb09,_0x5234c4)?_0x22baea('0xfe5'):_0x41f4bd;}}(_0x814a2b,_0x24d281,_0x507def,_0x4fd57d,_0x1e8d4c));},'indent':function(_0x533da8,_0x305829){var _0x774c77=_0x81caa1;if(_0x533da8[_0x774c77('0xaf9')]==_0x296dea)return _0x395398[_0x774c77('0xe5')];if(_0x533da8[_0x774c77('0xaf9')]!=_0x3ae603)return 0x0;var _0x293a94,_0x44d5aa=_0x305829&&_0x305829['charAt'](0x0),_0x379b2d=_0x533da8[_0x774c77('0xe9d')];if(!/^\s*else\b/[_0x774c77('0x2c3')](_0x305829))for(var _0x30831b=_0x533da8['cc'][_0x774c77('0x13')]-0x1;_0x30831b>=0x0;--_0x30831b){var _0x1e52ef=_0x533da8['cc'][_0x30831b];if(_0x1e52ef==_0x4d0289)_0x379b2d=_0x379b2d['prev'];else{if(_0x1e52ef!=_0x8bba03)break;}}for(;(_0x774c77('0x354')==_0x379b2d['type']||_0x774c77('0x112a')==_0x379b2d[_0x774c77('0x921')])&&('}'==_0x44d5aa||(_0x293a94=_0x533da8['cc'][_0x533da8['cc']['length']-0x1])&&(_0x293a94==_0x3c6d3f||_0x293a94==_0x28fee5)&&!/^[,\.=+\-*:?[\(]/[_0x774c77('0x2c3')](_0x305829));)_0x379b2d=_0x379b2d['prev'];_0x309b1b&&')'==_0x379b2d[_0x774c77('0x921')]&&_0x774c77('0x354')==_0x379b2d[_0x774c77('0x1e5')][_0x774c77('0x921')]&&(_0x379b2d=_0x379b2d[_0x774c77('0x1e5')]);var _0x3a8442=_0x379b2d[_0x774c77('0x921')],_0x45ebfd=_0x44d5aa==_0x3a8442;return _0x774c77('0x6f8')==_0x3a8442?_0x379b2d[_0x774c77('0x109')]+(_0x774c77('0x90d')==_0x533da8[_0x774c77('0xb51')]||','==_0x533da8[_0x774c77('0xb51')]?_0x379b2d[_0x774c77('0x946')]['length']+0x1:0x0):'form'==_0x3a8442&&'{'==_0x44d5aa?_0x379b2d[_0x774c77('0x109')]:_0x774c77('0x112a')==_0x3a8442?_0x379b2d[_0x774c77('0x109')]+_0x12cd30:'stat'==_0x3a8442?_0x379b2d['indented']+(function(_0x2a49f2,_0x497196){var _0x3f067b=_0x774c77;return'operator'==_0x2a49f2[_0x3f067b('0xb51')]||','==_0x2a49f2[_0x3f067b('0xb51')]||_0x40d873['test'](_0x497196[_0x3f067b('0xcaf')](0x0))||/[,.]/[_0x3f067b('0x2c3')](_0x497196['charAt'](0x0));}(_0x533da8,_0x305829)?_0x309b1b||_0x12cd30:0x0):'switch'!=_0x379b2d[_0x774c77('0x946')]||_0x45ebfd||0x0==_0x155b6f[_0x774c77('0xc80')]?_0x379b2d['align']?_0x379b2d[_0x774c77('0x26a')]+(_0x45ebfd?0x0:0x1):_0x379b2d['indented']+(_0x45ebfd?0x0:_0x12cd30):_0x379b2d[_0x774c77('0x109')]+(/^(?:case|default)\b/['test'](_0x305829)?_0x12cd30:0x2*_0x12cd30);},'electricInput':/^\s*(?:case .*?:|default:|\{|\})$/,'blockCommentStart':_0x58faf3?null:'/*','blockCommentEnd':_0x58faf3?null:'*/','blockCommentContinue':_0x58faf3?null:_0x81caa1('0x3f5'),'lineComment':_0x58faf3?null:'//','fold':_0x81caa1('0x316'),'closeBrackets':_0x81caa1('0xf14'),'helperType':_0x58faf3?_0x81caa1('0xf1b'):'javascript','jsonldMode':_0x4839e4,'jsonMode':_0x58faf3,'expressionAllowed':_0xcc85f4,'skipExpression':function(_0x16a00a){var _0x5ef553=_0x81caa1,_0x8abb82=_0x16a00a['cc'][_0x16a00a['cc']['length']-0x1];_0x8abb82!=_0xddd84a&&_0x8abb82!=_0x5c8e05||_0x16a00a['cc'][_0x5ef553('0x2a3')]();}};}),_0x395398[_0x4bcd32('0x8ae')](_0x4bcd32('0xb22'),_0x4bcd32('0x9dd'),/[\w$]/),_0x395398[_0x4bcd32('0x8bf')](_0x4bcd32('0xd1c'),_0x4bcd32('0x9dd')),_0x395398[_0x4bcd32('0x8bf')](_0x4bcd32('0x5d5'),_0x4bcd32('0x9dd')),_0x395398['defineMIME']('application/javascript','javascript'),_0x395398['defineMIME'](_0x4bcd32('0xf79'),_0x4bcd32('0x9dd')),_0x395398['defineMIME'](_0x4bcd32('0x597'),_0x4bcd32('0x9dd')),_0x395398[_0x4bcd32('0x8bf')](_0x4bcd32('0x31b'),{'name':_0x4bcd32('0x9dd'),'json':!0x0}),_0x395398[_0x4bcd32('0x8bf')]('application/x-json',{'name':_0x4bcd32('0x9dd'),'json':!0x0}),_0x395398[_0x4bcd32('0x8bf')](_0x4bcd32('0x1037'),{'name':_0x4bcd32('0x9dd'),'jsonld':!0x0}),_0x395398['defineMIME'](_0x4bcd32('0x106f'),{'name':'javascript','typescript':!0x0}),_0x395398[_0x4bcd32('0x8bf')](_0x4bcd32('0xbb0'),{'name':'javascript','typescript':!0x0});},_0x3d6beb('0xb3f')==typeof _0x52e8cc&&'object'==typeof _0xc9af40?_0x455809(_0x78df99(_0x3d6beb('0x6a0'))):_0x3d6beb('0x106c')==typeof define&&define[_0x3d6beb('0xdf3')]?define([_0x3d6beb('0x6a0')],_0x455809):_0x455809(CodeMirror);},{'../../lib/codemirror':0x6f}],0x71:[function(_0x32aaa7,_0x489222,_0x299f22){var _0x424e08=_0x548f48,_0x695c5c=_0x32aaa7('./_getNative')(_0x32aaa7('./_root'),_0x424e08('0x1111'));_0x489222[_0x424e08('0x64')]=_0x695c5c;},{'./_getNative':0xc4,'./_root':0xef}],0x72:[function(_0x12413a,_0x3e06f5,_0x5e00fd){var _0x3f1b70=_0x548f48,_0x16fa90=_0x12413a(_0x3f1b70('0x9f3')),_0x3be92d=_0x12413a('./_hashDelete'),_0xfe320e=_0x12413a(_0x3f1b70('0x40a')),_0x3b2aec=_0x12413a(_0x3f1b70('0xae5')),_0x41f422=_0x12413a(_0x3f1b70('0x134'));function _0x272784(_0x5b01d8){var _0x4d2009=_0x3f1b70,_0x420e97=-0x1,_0x1e5446=null==_0x5b01d8?0x0:_0x5b01d8[_0x4d2009('0x13')];for(this[_0x4d2009('0xb15')]();++_0x420e97<_0x1e5446;){var _0x1c871f=_0x5b01d8[_0x420e97];this[_0x4d2009('0x24a')](_0x1c871f[0x0],_0x1c871f[0x1]);}}_0x272784[_0x3f1b70('0xe02')][_0x3f1b70('0xb15')]=_0x16fa90,_0x272784[_0x3f1b70('0xe02')][_0x3f1b70('0x41d')]=_0x3be92d,_0x272784['prototype'][_0x3f1b70('0xd12')]=_0xfe320e,_0x272784[_0x3f1b70('0xe02')][_0x3f1b70('0xe5f')]=_0x3b2aec,_0x272784['prototype'][_0x3f1b70('0x24a')]=_0x41f422,_0x3e06f5['exports']=_0x272784;},{'./_hashClear':0xcc,'./_hashDelete':0xcd,'./_hashGet':0xce,'./_hashHas':0xcf,'./_hashSet':0xd0}],0x73:[function(_0x57c680,_0x565c94,_0x5a3874){var _0x22f744=_0x548f48,_0x5c0764=_0x57c680(_0x22f744('0xcb9')),_0x52879e=_0x57c680('./_listCacheDelete'),_0x1a8a0d=_0x57c680(_0x22f744('0xab8')),_0x10b87e=_0x57c680(_0x22f744('0xead')),_0x5da3d6=_0x57c680(_0x22f744('0xdda'));function _0x11080b(_0x446b05){var _0x51ecc7=_0x22f744,_0x2a02f6=-0x1,_0x2e211a=null==_0x446b05?0x0:_0x446b05[_0x51ecc7('0x13')];for(this[_0x51ecc7('0xb15')]();++_0x2a02f6<_0x2e211a;){var _0x1e0fc8=_0x446b05[_0x2a02f6];this[_0x51ecc7('0x24a')](_0x1e0fc8[0x0],_0x1e0fc8[0x1]);}}_0x11080b[_0x22f744('0xe02')][_0x22f744('0xb15')]=_0x5c0764,_0x11080b[_0x22f744('0xe02')][_0x22f744('0x41d')]=_0x52879e,_0x11080b[_0x22f744('0xe02')]['get']=_0x1a8a0d,_0x11080b[_0x22f744('0xe02')][_0x22f744('0xe5f')]=_0x10b87e,_0x11080b[_0x22f744('0xe02')][_0x22f744('0x24a')]=_0x5da3d6,_0x565c94[_0x22f744('0x64')]=_0x11080b;},{'./_listCacheClear':0xdb,'./_listCacheDelete':0xdc,'./_listCacheGet':0xdd,'./_listCacheHas':0xde,'./_listCacheSet':0xdf}],0x74:[function(_0x402d00,_0x3c038b,_0x11e246){var _0x13cffb=_0x548f48,_0x381b93=_0x402d00(_0x13cffb('0x553'))(_0x402d00(_0x13cffb('0x1')),'Map');_0x3c038b[_0x13cffb('0x64')]=_0x381b93;},{'./_getNative':0xc4,'./_root':0xef}],0x75:[function(_0x17bc23,_0x11279d,_0x48e867){var _0x2b67d3=_0x548f48,_0x10137c=_0x17bc23(_0x2b67d3('0xd46')),_0x2238b2=_0x17bc23(_0x2b67d3('0xe36')),_0x2c6dc3=_0x17bc23(_0x2b67d3('0x523')),_0x56cc92=_0x17bc23('./_mapCacheHas'),_0x45be3f=_0x17bc23(_0x2b67d3('0x873'));function _0x5e0d67(_0x17b03c){var _0x421c81=_0x2b67d3,_0x4d5489=-0x1,_0x569938=null==_0x17b03c?0x0:_0x17b03c[_0x421c81('0x13')];for(this[_0x421c81('0xb15')]();++_0x4d5489<_0x569938;){var _0x1c7788=_0x17b03c[_0x4d5489];this[_0x421c81('0x24a')](_0x1c7788[0x0],_0x1c7788[0x1]);}}_0x5e0d67[_0x2b67d3('0xe02')][_0x2b67d3('0xb15')]=_0x10137c,_0x5e0d67[_0x2b67d3('0xe02')]['delete']=_0x2238b2,_0x5e0d67['prototype'][_0x2b67d3('0xd12')]=_0x2c6dc3,_0x5e0d67[_0x2b67d3('0xe02')][_0x2b67d3('0xe5f')]=_0x56cc92,_0x5e0d67[_0x2b67d3('0xe02')][_0x2b67d3('0x24a')]=_0x45be3f,_0x11279d[_0x2b67d3('0x64')]=_0x5e0d67;},{'./_mapCacheClear':0xe0,'./_mapCacheDelete':0xe1,'./_mapCacheGet':0xe2,'./_mapCacheHas':0xe3,'./_mapCacheSet':0xe4}],0x76:[function(_0x353c2f,_0xcbc841,_0x1b4478){var _0x477a95=_0x548f48,_0x5134e0=_0x353c2f('./_getNative')(_0x353c2f(_0x477a95('0x1')),_0x477a95('0x7ee'));_0xcbc841[_0x477a95('0x64')]=_0x5134e0;},{'./_getNative':0xc4,'./_root':0xef}],0x77:[function(_0x2ce588,_0xb282fe,_0x44fcee){var _0x52e9ff=_0x548f48,_0x3ec9bc=_0x2ce588(_0x52e9ff('0x553'))(_0x2ce588(_0x52e9ff('0x1')),_0x52e9ff('0xdb3'));_0xb282fe[_0x52e9ff('0x64')]=_0x3ec9bc;},{'./_getNative':0xc4,'./_root':0xef}],0x78:[function(_0x2a4145,_0x1754a8,_0x24b862){var _0x39ff21=_0x548f48,_0x4404db=_0x2a4145('./_MapCache'),_0x576837=_0x2a4145(_0x39ff21('0xf9f')),_0xe5ca1e=_0x2a4145('./_setCacheHas');function _0x49256d(_0x1a4682){var _0x3e1a1e=_0x39ff21,_0x32f28d=-0x1,_0x23645a=null==_0x1a4682?0x0:_0x1a4682['length'];for(this[_0x3e1a1e('0x1f3')]=new _0x4404db();++_0x32f28d<_0x23645a;)this[_0x3e1a1e('0x949')](_0x1a4682[_0x32f28d]);}_0x49256d[_0x39ff21('0xe02')][_0x39ff21('0x949')]=_0x49256d[_0x39ff21('0xe02')]['push']=_0x576837,_0x49256d[_0x39ff21('0xe02')]['has']=_0xe5ca1e,_0x1754a8['exports']=_0x49256d;},{'./_MapCache':0x75,'./_setCacheAdd':0xf1,'./_setCacheHas':0xf2}],0x79:[function(_0x4ffa41,_0x36935d,_0x256c78){var _0x307210=_0x548f48,_0x40f7fd=_0x4ffa41(_0x307210('0xf76')),_0x40275a=_0x4ffa41(_0x307210('0x83')),_0x4d9c41=_0x4ffa41('./_stackDelete'),_0x138474=_0x4ffa41(_0x307210('0x24e')),_0x50f18e=_0x4ffa41('./_stackHas'),_0x329d8b=_0x4ffa41('./_stackSet');function _0x2006d1(_0x163ca2){var _0x3ed75c=_0x307210,_0x1b6ff0=this['__data__']=new _0x40f7fd(_0x163ca2);this[_0x3ed75c('0x10a2')]=_0x1b6ff0['size'];}_0x2006d1['prototype'][_0x307210('0xb15')]=_0x40275a,_0x2006d1[_0x307210('0xe02')]['delete']=_0x4d9c41,_0x2006d1[_0x307210('0xe02')][_0x307210('0xd12')]=_0x138474,_0x2006d1[_0x307210('0xe02')][_0x307210('0xe5f')]=_0x50f18e,_0x2006d1['prototype'][_0x307210('0x24a')]=_0x329d8b,_0x36935d['exports']=_0x2006d1;},{'./_ListCache':0x73,'./_stackClear':0xf6,'./_stackDelete':0xf7,'./_stackGet':0xf8,'./_stackHas':0xf9,'./_stackSet':0xfa}],0x7a:[function(_0x31fd84,_0x34f8a8,_0x512d78){var _0x45c494=_0x548f48,_0x544f1b=_0x31fd84(_0x45c494('0x1'))['Symbol'];_0x34f8a8[_0x45c494('0x64')]=_0x544f1b;},{'./_root':0xef}],0x7b:[function(_0x3ae6c7,_0x4a75d1,_0x3bb741){var _0x14d5d1=_0x548f48,_0x9a961f=_0x3ae6c7(_0x14d5d1('0x1'))[_0x14d5d1('0x16c')];_0x4a75d1[_0x14d5d1('0x64')]=_0x9a961f;},{'./_root':0xef}],0x7c:[function(_0x37361f,_0x126ece,_0x2bad9c){var _0x574a7a=_0x548f48,_0xffbd6c=_0x37361f('./_getNative')(_0x37361f(_0x574a7a('0x1')),_0x574a7a('0x608'));_0x126ece[_0x574a7a('0x64')]=_0xffbd6c;},{'./_getNative':0xc4,'./_root':0xef}],0x7d:[function(_0x4bf68b,_0x21cd99,_0x1846b4){var _0x10a9dc=_0x548f48;_0x21cd99[_0x10a9dc('0x64')]=function(_0x2dfbe0,_0x5c49c4,_0x4cfa72){var _0x542bab=_0x10a9dc;switch(_0x4cfa72[_0x542bab('0x13')]){case 0x0:return _0x2dfbe0['call'](_0x5c49c4);case 0x1:return _0x2dfbe0[_0x542bab('0xfd2')](_0x5c49c4,_0x4cfa72[0x0]);case 0x2:return _0x2dfbe0[_0x542bab('0xfd2')](_0x5c49c4,_0x4cfa72[0x0],_0x4cfa72[0x1]);case 0x3:return _0x2dfbe0[_0x542bab('0xfd2')](_0x5c49c4,_0x4cfa72[0x0],_0x4cfa72[0x1],_0x4cfa72[0x2]);}return _0x2dfbe0[_0x542bab('0x2be')](_0x5c49c4,_0x4cfa72);};},{}],0x7e:[function(_0x4e3c6a,_0x281f38,_0x4bf218){_0x281f38['exports']=function(_0x46d373,_0x514ec0){var _0x4ca2a4=_0x5376;for(var _0x4de89f=-0x1,_0x1df817=null==_0x46d373?0x0:_0x46d373[_0x4ca2a4('0x13')];++_0x4de89f<_0x1df817&&!0x1!==_0x514ec0(_0x46d373[_0x4de89f],_0x4de89f,_0x46d373););return _0x46d373;};},{}],0x7f:[function(_0x50904d,_0x130532,_0x515423){var _0x502575=_0x548f48;_0x130532[_0x502575('0x64')]=function(_0x3d2948,_0x17ccbf){var _0x2c18c0=_0x502575;for(var _0x2de52f=-0x1,_0xb1f9a6=null==_0x3d2948?0x0:_0x3d2948[_0x2c18c0('0x13')],_0xe308b6=0x0,_0x4cc114=[];++_0x2de52f<_0xb1f9a6;){var _0x1a5995=_0x3d2948[_0x2de52f];_0x17ccbf(_0x1a5995,_0x2de52f,_0x3d2948)&&(_0x4cc114[_0xe308b6++]=_0x1a5995);}return _0x4cc114;};},{}],0x80:[function(_0x222b88,_0x36c27d,_0xb9e289){var _0x46cc29=_0x548f48,_0x1a327e=_0x222b88(_0x46cc29('0x2d2')),_0xd15ac1=_0x222b88(_0x46cc29('0x1157')),_0x2a4a77=_0x222b88(_0x46cc29('0x1b6')),_0x405da9=_0x222b88('./isBuffer'),_0x4a89b0=_0x222b88(_0x46cc29('0x735')),_0x2a084f=_0x222b88(_0x46cc29('0x412')),_0xdfeb2d=Object['prototype'][_0x46cc29('0xe9c')];_0x36c27d[_0x46cc29('0x64')]=function(_0x504380,_0x15d07b){var _0x4ae634=_0x46cc29,_0x2c311c=_0x2a4a77(_0x504380),_0x9afa4d=!_0x2c311c&&_0xd15ac1(_0x504380),_0x26f0d6=!_0x2c311c&&!_0x9afa4d&&_0x405da9(_0x504380),_0x352c42=!_0x2c311c&&!_0x9afa4d&&!_0x26f0d6&&_0x2a084f(_0x504380),_0x428428=_0x2c311c||_0x9afa4d||_0x26f0d6||_0x352c42,_0x555b08=_0x428428?_0x1a327e(_0x504380[_0x4ae634('0x13')],String):[],_0x5a5803=_0x555b08[_0x4ae634('0x13')];for(var _0x4a5a71 in _0x504380)!_0x15d07b&&!_0xdfeb2d[_0x4ae634('0xfd2')](_0x504380,_0x4a5a71)||_0x428428&&(_0x4ae634('0x13')==_0x4a5a71||_0x26f0d6&&(_0x4ae634('0x830')==_0x4a5a71||_0x4ae634('0xb69')==_0x4a5a71)||_0x352c42&&(_0x4ae634('0x112b')==_0x4a5a71||_0x4ae634('0xd90')==_0x4a5a71||_0x4ae634('0xb38')==_0x4a5a71)||_0x4a89b0(_0x4a5a71,_0x5a5803))||_0x555b08[_0x4ae634('0x91b')](_0x4a5a71);return _0x555b08;};},{'./_baseTimes':0xa7,'./_isIndex':0xd4,'./isArguments':0x108,'./isArray':0x109,'./isBuffer':0x10c,'./isTypedArray':0x116}],0x81:[function(_0x5aa96f,_0x32b660,_0x471be7){_0x32b660['exports']=function(_0x24acb4,_0x253139){var _0x3cb3f6=_0x5376;for(var _0x5629d0=-0x1,_0x47f82e=null==_0x24acb4?0x0:_0x24acb4[_0x3cb3f6('0x13')],_0x1e40b8=Array(_0x47f82e);++_0x5629d0<_0x47f82e;)_0x1e40b8[_0x5629d0]=_0x253139(_0x24acb4[_0x5629d0],_0x5629d0,_0x24acb4);return _0x1e40b8;};},{}],0x82:[function(_0x25d1eb,_0x19fe89,_0x51688e){var _0x1b97d6=_0x548f48;_0x19fe89[_0x1b97d6('0x64')]=function(_0xfc0599,_0xb22039){var _0x17c9eb=_0x1b97d6;for(var _0x5d4f42=-0x1,_0x5cecf7=_0xb22039[_0x17c9eb('0x13')],_0x192293=_0xfc0599[_0x17c9eb('0x13')];++_0x5d4f42<_0x5cecf7;)_0xfc0599[_0x192293+_0x5d4f42]=_0xb22039[_0x5d4f42];return _0xfc0599;};},{}],0x83:[function(_0x4b1ab7,_0x117579,_0x27c4da){var _0x53d94c=_0x548f48;_0x117579[_0x53d94c('0x64')]=function(_0x1e322d,_0x3446a9){var _0x485896=_0x53d94c;for(var _0x5c5819=-0x1,_0x5e6c94=null==_0x1e322d?0x0:_0x1e322d[_0x485896('0x13')];++_0x5c5819<_0x5e6c94;)if(_0x3446a9(_0x1e322d[_0x5c5819],_0x5c5819,_0x1e322d))return!0x0;return!0x1;};},{}],0x84:[function(_0x21b74b,_0x2b46a5,_0x453bf7){var _0x317fc2=_0x548f48,_0x2ca9c8=_0x21b74b(_0x317fc2('0xc7b')),_0x13c3d3=_0x21b74b('./eq');_0x2b46a5[_0x317fc2('0x64')]=function(_0x3052c2,_0x502613,_0x30422c){(void 0x0!==_0x30422c&&!_0x13c3d3(_0x3052c2[_0x502613],_0x30422c)||void 0x0===_0x30422c&&!(_0x502613 in _0x3052c2))&&_0x2ca9c8(_0x3052c2,_0x502613,_0x30422c);};},{'./_baseAssignValue':0x89,'./eq':0x102}],0x85:[function(_0x308912,_0x384be7,_0x12b47b){var _0x16fa9c=_0x548f48,_0xd54dcb=_0x308912(_0x16fa9c('0xc7b')),_0xc86a48=_0x308912(_0x16fa9c('0x35')),_0x4069c5=Object[_0x16fa9c('0xe02')][_0x16fa9c('0xe9c')];_0x384be7[_0x16fa9c('0x64')]=function(_0x25eb75,_0x86324c,_0x1e0084){var _0x199b18=_0x16fa9c,_0x2d61b0=_0x25eb75[_0x86324c];_0x4069c5[_0x199b18('0xfd2')](_0x25eb75,_0x86324c)&&_0xc86a48(_0x2d61b0,_0x1e0084)&&(void 0x0!==_0x1e0084||_0x86324c in _0x25eb75)||_0xd54dcb(_0x25eb75,_0x86324c,_0x1e0084);};},{'./_baseAssignValue':0x89,'./eq':0x102}],0x86:[function(_0x28fcb1,_0xe18f9c,_0x20dc78){var _0x2f0f3c=_0x548f48,_0x49642f=_0x28fcb1(_0x2f0f3c('0x35'));_0xe18f9c[_0x2f0f3c('0x64')]=function(_0xabeaca,_0x3f08e8){var _0x31cebe=_0x2f0f3c;for(var _0x542726=_0xabeaca[_0x31cebe('0x13')];_0x542726--;)if(_0x49642f(_0xabeaca[_0x542726][0x0],_0x3f08e8))return _0x542726;return-0x1;};},{'./eq':0x102}],0x87:[function(_0x304d2d,_0x164972,_0x1e82fa){var _0x2541dd=_0x548f48,_0x1d4c04=_0x304d2d('./_copyObject'),_0x4a25a9=_0x304d2d('./keys');_0x164972[_0x2541dd('0x64')]=function(_0x13ba1a,_0x1fd45e){return _0x13ba1a&&_0x1d4c04(_0x1fd45e,_0x4a25a9(_0x1fd45e),_0x13ba1a);};},{'./_copyObject':0xb4,'./keys':0x118}],0x88:[function(_0x274a67,_0x7d99a5,_0x55aaf6){var _0x31c550=_0x548f48,_0x315174=_0x274a67('./_copyObject'),_0x129866=_0x274a67(_0x31c550('0xb20'));_0x7d99a5[_0x31c550('0x64')]=function(_0x52108f,_0x356853){return _0x52108f&&_0x315174(_0x356853,_0x129866(_0x356853),_0x52108f);};},{'./_copyObject':0xb4,'./keysIn':0x119}],0x89:[function(_0x283ff5,_0x57871a,_0x4dcc8e){var _0x42963e=_0x548f48,_0x3f1dfe=_0x283ff5(_0x42963e('0xe2a'));_0x57871a[_0x42963e('0x64')]=function(_0x70a112,_0x467445,_0x304b39){var _0xf42eb2=_0x42963e;_0xf42eb2('0x112c')==_0x467445&&_0x3f1dfe?_0x3f1dfe(_0x70a112,_0x467445,{'configurable':!0x0,'enumerable':!0x0,'value':_0x304b39,'writable':!0x0}):_0x70a112[_0x467445]=_0x304b39;};},{'./_defineProperty':0xbb}],0x8a:[function(_0x29c1eb,_0x4d683b,_0x26aafc){var _0xef5752=_0x548f48,_0x883790=_0x29c1eb(_0xef5752('0x7d1')),_0x37c081=_0x29c1eb(_0xef5752('0x1044')),_0x5d2f0f=_0x29c1eb(_0xef5752('0x972')),_0x4f2c47=_0x29c1eb('./_baseAssign'),_0x255404=_0x29c1eb(_0xef5752('0xec9')),_0x46cbe8=_0x29c1eb('./_cloneBuffer'),_0x129179=_0x29c1eb(_0xef5752('0x546')),_0x30e832=_0x29c1eb('./_copySymbols'),_0x2a0e56=_0x29c1eb(_0xef5752('0x8bc')),_0x2521c4=_0x29c1eb('./_getAllKeys'),_0x484599=_0x29c1eb('./_getAllKeysIn'),_0x5d33ca=_0x29c1eb(_0xef5752('0xd95')),_0x3e1618=_0x29c1eb(_0xef5752('0xafc')),_0x696e70=_0x29c1eb(_0xef5752('0x85d')),_0x35c16f=_0x29c1eb(_0xef5752('0xc77')),_0x5e209c=_0x29c1eb('./isArray'),_0x344944=_0x29c1eb(_0xef5752('0xa79')),_0x6740c2=_0x29c1eb('./isMap'),_0x338db6=_0x29c1eb(_0xef5752('0x52')),_0xda316f=_0x29c1eb(_0xef5752('0xc5a')),_0x353e3d=_0x29c1eb('./keys'),_0x4c288d=_0x29c1eb(_0xef5752('0xb20')),_0x1e2ac1={};_0x1e2ac1[_0xef5752('0x524')]=_0x1e2ac1['[object\x20Array]']=_0x1e2ac1[_0xef5752('0xf38')]=_0x1e2ac1[_0xef5752('0xfeb')]=_0x1e2ac1['[object\x20Boolean]']=_0x1e2ac1['[object\x20Date]']=_0x1e2ac1[_0xef5752('0xcd6')]=_0x1e2ac1['[object\x20Float64Array]']=_0x1e2ac1[_0xef5752('0x844')]=_0x1e2ac1[_0xef5752('0x3ec')]=_0x1e2ac1['[object\x20Int32Array]']=_0x1e2ac1[_0xef5752('0x979')]=_0x1e2ac1['[object\x20Number]']=_0x1e2ac1['[object\x20Object]']=_0x1e2ac1[_0xef5752('0xa6')]=_0x1e2ac1[_0xef5752('0x2da')]=_0x1e2ac1[_0xef5752('0x6ff')]=_0x1e2ac1[_0xef5752('0x87a')]=_0x1e2ac1[_0xef5752('0x5d2')]=_0x1e2ac1['[object\x20Uint8ClampedArray]']=_0x1e2ac1['[object\x20Uint16Array]']=_0x1e2ac1[_0xef5752('0xaca')]=!0x0,_0x1e2ac1[_0xef5752('0x2ef')]=_0x1e2ac1[_0xef5752('0x639')]=_0x1e2ac1['[object\x20WeakMap]']=!0x1,_0x4d683b['exports']=function _0x653565(_0x1e16d9,_0x6870d9,_0x45704e,_0x28953e,_0xde3bdc,_0x44357a){var _0x28c328=_0xef5752,_0x3db7d9,_0x33a54c=0x1&_0x6870d9,_0x4f3f4d=0x2&_0x6870d9,_0x4930ee=0x4&_0x6870d9;if(_0x45704e&&(_0x3db7d9=_0xde3bdc?_0x45704e(_0x1e16d9,_0x28953e,_0xde3bdc,_0x44357a):_0x45704e(_0x1e16d9)),void 0x0!==_0x3db7d9)return _0x3db7d9;if(!_0x338db6(_0x1e16d9))return _0x1e16d9;var _0xce3f17=_0x5e209c(_0x1e16d9);if(_0xce3f17){if(_0x3db7d9=_0x3e1618(_0x1e16d9),!_0x33a54c)return _0x129179(_0x1e16d9,_0x3db7d9);}else{var _0x401c3b=_0x5d33ca(_0x1e16d9),_0x20f33c=_0x28c328('0x639')==_0x401c3b||_0x28c328('0x709')==_0x401c3b;if(_0x344944(_0x1e16d9))return _0x46cbe8(_0x1e16d9,_0x33a54c);if(_0x28c328('0xe64')==_0x401c3b||_0x28c328('0x524')==_0x401c3b||_0x20f33c&&!_0xde3bdc){if(_0x3db7d9=_0x4f3f4d||_0x20f33c?{}:_0x35c16f(_0x1e16d9),!_0x33a54c)return _0x4f3f4d?_0x2a0e56(_0x1e16d9,_0x255404(_0x3db7d9,_0x1e16d9)):_0x30e832(_0x1e16d9,_0x4f2c47(_0x3db7d9,_0x1e16d9));}else{if(!_0x1e2ac1[_0x401c3b])return _0xde3bdc?_0x1e16d9:{};_0x3db7d9=_0x696e70(_0x1e16d9,_0x401c3b,_0x33a54c);}}_0x44357a||(_0x44357a=new _0x883790());var _0x5c8a8f=_0x44357a[_0x28c328('0xd12')](_0x1e16d9);if(_0x5c8a8f)return _0x5c8a8f;_0x44357a['set'](_0x1e16d9,_0x3db7d9),_0xda316f(_0x1e16d9)?_0x1e16d9[_0x28c328('0xb77')](function(_0x59805e){var _0x1b78ea=_0x28c328;_0x3db7d9[_0x1b78ea('0x949')](_0x653565(_0x59805e,_0x6870d9,_0x45704e,_0x59805e,_0x1e16d9,_0x44357a));}):_0x6740c2(_0x1e16d9)&&_0x1e16d9[_0x28c328('0xb77')](function(_0x134c0d,_0x4fa708){var _0xeef1fb=_0x28c328;_0x3db7d9[_0xeef1fb('0x24a')](_0x4fa708,_0x653565(_0x134c0d,_0x6870d9,_0x45704e,_0x4fa708,_0x1e16d9,_0x44357a));});var _0x2564e5=_0xce3f17?void 0x0:(_0x4930ee?_0x4f3f4d?_0x484599:_0x2521c4:_0x4f3f4d?_0x4c288d:_0x353e3d)(_0x1e16d9);return _0x37c081(_0x2564e5||_0x1e16d9,function(_0x3defea,_0x7dd44c){_0x2564e5&&(_0x3defea=_0x1e16d9[_0x7dd44c=_0x3defea]),_0x5d2f0f(_0x3db7d9,_0x7dd44c,_0x653565(_0x3defea,_0x6870d9,_0x45704e,_0x7dd44c,_0x1e16d9,_0x44357a));}),_0x3db7d9;};},{'./_Stack':0x79,'./_arrayEach':0x7e,'./_assignValue':0x85,'./_baseAssign':0x87,'./_baseAssignIn':0x88,'./_cloneBuffer':0xae,'./_copyArray':0xb3,'./_copySymbols':0xb5,'./_copySymbolsIn':0xb6,'./_getAllKeys':0xc0,'./_getAllKeysIn':0xc1,'./_getTag':0xc9,'./_initCloneArray':0xd1,'./_initCloneByTag':0xd2,'./_initCloneObject':0xd3,'./isArray':0x109,'./isBuffer':0x10c,'./isMap':0x10f,'./isObject':0x110,'./isSet':0x113,'./keys':0x118,'./keysIn':0x119}],0x8b:[function(_0x5ad023,_0x2a85a9,_0x5e6e7f){var _0x2f8dc4=_0x548f48,_0x1554e8=_0x5ad023(_0x2f8dc4('0x52')),_0xc76f9=Object[_0x2f8dc4('0xbd0')],_0x46cc0e=function(){function _0x5b86b9(){}return function(_0x5d5664){var _0x244963=_0x5376;if(!_0x1554e8(_0x5d5664))return{};if(_0xc76f9)return _0xc76f9(_0x5d5664);_0x5b86b9[_0x244963('0xe02')]=_0x5d5664;var _0x38f410=new _0x5b86b9();return _0x5b86b9[_0x244963('0xe02')]=void 0x0,_0x38f410;};}();_0x2a85a9[_0x2f8dc4('0x64')]=_0x46cc0e;},{'./isObject':0x110}],0x8c:[function(_0x1ea44f,_0xb085e9,_0x134126){var _0x41ff9a=_0x548f48,_0xad2f7c=_0x1ea44f('./_baseForOwn'),_0x370b74=_0x1ea44f(_0x41ff9a('0xe9e'))(_0xad2f7c);_0xb085e9[_0x41ff9a('0x64')]=_0x370b74;},{'./_baseForOwn':0x8e,'./_createBaseEach':0xb9}],0x8d:[function(_0x480fb6,_0x319c71,_0x57d92c){var _0x40d1a8=_0x548f48,_0x286ea4=_0x480fb6(_0x40d1a8('0xff2'))();_0x319c71['exports']=_0x286ea4;},{'./_createBaseFor':0xba}],0x8e:[function(_0x478534,_0x496fe2,_0x43d020){var _0x2c6a81=_0x548f48,_0x148921=_0x478534(_0x2c6a81('0x1dc')),_0x4895d1=_0x478534('./keys');_0x496fe2['exports']=function(_0x52ed4f,_0x208400){return _0x52ed4f&&_0x148921(_0x52ed4f,_0x208400,_0x4895d1);};},{'./_baseFor':0x8d,'./keys':0x118}],0x8f:[function(_0x39a59f,_0x5648e7,_0x4c57dd){var _0xe1adb4=_0x548f48,_0x27fa43=_0x39a59f(_0xe1adb4('0xf33')),_0x541486=_0x39a59f(_0xe1adb4('0x16'));_0x5648e7[_0xe1adb4('0x64')]=function(_0x4161c0,_0x2c1699){var _0x545de2=_0xe1adb4;for(var _0x289e45=0x0,_0x44d219=(_0x2c1699=_0x27fa43(_0x2c1699,_0x4161c0))[_0x545de2('0x13')];null!=_0x4161c0&&_0x289e45<_0x44d219;)_0x4161c0=_0x4161c0[_0x541486(_0x2c1699[_0x289e45++])];return _0x289e45&&_0x289e45==_0x44d219?_0x4161c0:void 0x0;};},{'./_castPath':0xac,'./_toKey':0xfc}],0x90:[function(_0x2594f4,_0x13aa04,_0x1e8748){var _0x580933=_0x548f48,_0x186e89=_0x2594f4(_0x580933('0xdbd')),_0x310c26=_0x2594f4(_0x580933('0x1b6'));_0x13aa04[_0x580933('0x64')]=function(_0x51e66e,_0x113359,_0x333aad){var _0x4290bc=_0x113359(_0x51e66e);return _0x310c26(_0x51e66e)?_0x4290bc:_0x186e89(_0x4290bc,_0x333aad(_0x51e66e));};},{'./_arrayPush':0x82,'./isArray':0x109}],0x91:[function(_0x56a0ce,_0x299674,_0x1976ca){var _0x534984=_0x548f48,_0x1caa06=_0x56a0ce(_0x534984('0x36e')),_0x3820da=_0x56a0ce('./_getRawTag'),_0x56827a=_0x56a0ce(_0x534984('0x5b7')),_0x5a9c9b=_0x1caa06?_0x1caa06[_0x534984('0x2d1')]:void 0x0;_0x299674[_0x534984('0x64')]=function(_0x1573f4){var _0x2a05b2=_0x534984;return null==_0x1573f4?void 0x0===_0x1573f4?_0x2a05b2('0xb88'):_0x2a05b2('0x184'):_0x5a9c9b&&_0x5a9c9b in Object(_0x1573f4)?_0x3820da(_0x1573f4):_0x56827a(_0x1573f4);};},{'./_Symbol':0x7a,'./_getRawTag':0xc6,'./_objectToString':0xec}],0x92:[function(_0x127835,_0x159f87,_0x2b26ee){var _0x5170b9=_0x548f48;_0x159f87[_0x5170b9('0x64')]=function(_0x377683,_0x107c15){return null!=_0x377683&&_0x107c15 in Object(_0x377683);};},{}],0x93:[function(_0x2d52e4,_0x36003a,_0x3668c7){var _0x72ab15=_0x548f48,_0x5286d3=_0x2d52e4('./_baseGetTag'),_0x27b454=_0x2d52e4(_0x72ab15('0x69e'));_0x36003a[_0x72ab15('0x64')]=function(_0x61760c){return _0x27b454(_0x61760c)&&'[object\x20Arguments]'==_0x5286d3(_0x61760c);};},{'./_baseGetTag':0x91,'./isObjectLike':0x111}],0x94:[function(_0x28f76b,_0x1c0fdf,_0x415af2){var _0x4a849b=_0x548f48,_0x1eefa8=_0x28f76b(_0x4a849b('0x536')),_0x20cf19=_0x28f76b('./isObjectLike');_0x1c0fdf[_0x4a849b('0x64')]=function _0x492e86(_0x24f64d,_0x3ca2a7,_0x3ca719,_0x3c5445,_0x1eafc2){return _0x24f64d===_0x3ca2a7||(null==_0x24f64d||null==_0x3ca2a7||!_0x20cf19(_0x24f64d)&&!_0x20cf19(_0x3ca2a7)?_0x24f64d!=_0x24f64d&&_0x3ca2a7!=_0x3ca2a7:_0x1eefa8(_0x24f64d,_0x3ca2a7,_0x3ca719,_0x3c5445,_0x492e86,_0x1eafc2));};},{'./_baseIsEqualDeep':0x95,'./isObjectLike':0x111}],0x95:[function(_0x3cd766,_0x4f6cc2,_0x254f59){var _0x59b752=_0x548f48,_0x4cd740=_0x3cd766(_0x59b752('0x7d1')),_0x578cfd=_0x3cd766(_0x59b752('0x62d')),_0x312856=_0x3cd766(_0x59b752('0x63')),_0x27deb0=_0x3cd766(_0x59b752('0x343')),_0x55fdcc=_0x3cd766('./_getTag'),_0x4ff516=_0x3cd766(_0x59b752('0x1b6')),_0xf31811=_0x3cd766(_0x59b752('0xa79')),_0x167086=_0x3cd766(_0x59b752('0x412')),_0x5454a6=_0x59b752('0xe64'),_0x2ebfff=Object[_0x59b752('0xe02')]['hasOwnProperty'];_0x4f6cc2[_0x59b752('0x64')]=function(_0x662091,_0x32a315,_0x2b1ba9,_0x1e6c16,_0x4e5072,_0x1b62c1){var _0x1d10b9=_0x59b752,_0x309f5d=_0x4ff516(_0x662091),_0x2121c5=_0x4ff516(_0x32a315),_0x420fd0=_0x309f5d?'[object\x20Array]':_0x55fdcc(_0x662091),_0x423bc4=_0x2121c5?_0x1d10b9('0xed6'):_0x55fdcc(_0x32a315),_0x294c21=(_0x420fd0=_0x1d10b9('0x524')==_0x420fd0?_0x5454a6:_0x420fd0)==_0x5454a6,_0x4359af=(_0x423bc4='[object\x20Arguments]'==_0x423bc4?_0x5454a6:_0x423bc4)==_0x5454a6,_0x3a004a=_0x420fd0==_0x423bc4;if(_0x3a004a&&_0xf31811(_0x662091)){if(!_0xf31811(_0x32a315))return!0x1;_0x309f5d=!0x0,_0x294c21=!0x1;}if(_0x3a004a&&!_0x294c21)return _0x1b62c1||(_0x1b62c1=new _0x4cd740()),_0x309f5d||_0x167086(_0x662091)?_0x578cfd(_0x662091,_0x32a315,_0x2b1ba9,_0x1e6c16,_0x4e5072,_0x1b62c1):_0x312856(_0x662091,_0x32a315,_0x420fd0,_0x2b1ba9,_0x1e6c16,_0x4e5072,_0x1b62c1);if(!(0x1&_0x2b1ba9)){var _0x4e8973=_0x294c21&&_0x2ebfff[_0x1d10b9('0xfd2')](_0x662091,_0x1d10b9('0x1010')),_0x270d66=_0x4359af&&_0x2ebfff[_0x1d10b9('0xfd2')](_0x32a315,_0x1d10b9('0x1010'));if(_0x4e8973||_0x270d66){var _0x591c58=_0x4e8973?_0x662091['value']():_0x662091,_0x210c70=_0x270d66?_0x32a315[_0x1d10b9('0x30')]():_0x32a315;return _0x1b62c1||(_0x1b62c1=new _0x4cd740()),_0x4e5072(_0x591c58,_0x210c70,_0x2b1ba9,_0x1e6c16,_0x1b62c1);}}return!!_0x3a004a&&(_0x1b62c1||(_0x1b62c1=new _0x4cd740()),_0x27deb0(_0x662091,_0x32a315,_0x2b1ba9,_0x1e6c16,_0x4e5072,_0x1b62c1));};},{'./_Stack':0x79,'./_equalArrays':0xbc,'./_equalByTag':0xbd,'./_equalObjects':0xbe,'./_getTag':0xc9,'./isArray':0x109,'./isBuffer':0x10c,'./isTypedArray':0x116}],0x96:[function(_0x2246f0,_0x40ba07,_0x1ad956){var _0x35b543=_0x548f48,_0x388b11=_0x2246f0(_0x35b543('0xd95')),_0x328d30=_0x2246f0('./isObjectLike');_0x40ba07['exports']=function(_0xbada9e){var _0x417d8d=_0x35b543;return _0x328d30(_0xbada9e)&&_0x417d8d('0x979')==_0x388b11(_0xbada9e);};},{'./_getTag':0xc9,'./isObjectLike':0x111}],0x97:[function(_0x5d9cc0,_0x5611d0,_0x2844ac){var _0x2caf2b=_0x548f48,_0x406586=_0x5d9cc0(_0x2caf2b('0x7d1')),_0x158dcd=_0x5d9cc0(_0x2caf2b('0x446'));_0x5611d0[_0x2caf2b('0x64')]=function(_0x597e04,_0xc0e829,_0x30a14f,_0x293971){var _0x3a2a17=_0x2caf2b,_0x168e4f=_0x30a14f[_0x3a2a17('0x13')],_0x8024c6=_0x168e4f,_0x34ef30=!_0x293971;if(null==_0x597e04)return!_0x8024c6;for(_0x597e04=Object(_0x597e04);_0x168e4f--;){var _0x261ef5=_0x30a14f[_0x168e4f];if(_0x34ef30&&_0x261ef5[0x2]?_0x261ef5[0x1]!==_0x597e04[_0x261ef5[0x0]]:!(_0x261ef5[0x0]in _0x597e04))return!0x1;}for(;++_0x168e4f<_0x8024c6;){var _0xb1aad0=(_0x261ef5=_0x30a14f[_0x168e4f])[0x0],_0x510079=_0x597e04[_0xb1aad0],_0x38446c=_0x261ef5[0x1];if(_0x34ef30&&_0x261ef5[0x2]){if(void 0x0===_0x510079&&!(_0xb1aad0 in _0x597e04))return!0x1;}else{var _0x233714=new _0x406586();if(_0x293971)var _0x4548e9=_0x293971(_0x510079,_0x38446c,_0xb1aad0,_0x597e04,_0xc0e829,_0x233714);if(!(void 0x0===_0x4548e9?_0x158dcd(_0x38446c,_0x510079,0x3,_0x293971,_0x233714):_0x4548e9))return!0x1;}}return!0x0;};},{'./_Stack':0x79,'./_baseIsEqual':0x94}],0x98:[function(_0x2af4f3,_0x495cae,_0x1de7e0){var _0x33c6ba=_0x548f48,_0x2fe9d8=_0x2af4f3(_0x33c6ba('0x1ee')),_0x3d07ad=_0x2af4f3(_0x33c6ba('0xcf3')),_0x2b905a=_0x2af4f3(_0x33c6ba('0x52')),_0x1f4fc4=_0x2af4f3('./_toSource'),_0x49f096=/^\[object .+?Constructor\]$/,_0x5a0a73=Function[_0x33c6ba('0xe02')],_0x660266=Object[_0x33c6ba('0xe02')],_0x320cc2=_0x5a0a73['toString'],_0x400074=_0x660266[_0x33c6ba('0xe9c')],_0x5219fd=RegExp('^'+_0x320cc2[_0x33c6ba('0xfd2')](_0x400074)['replace'](/[\\^$.*+?()[\]{}|]/g,_0x33c6ba('0x10e9'))[_0x33c6ba('0xd06')](/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,_0x33c6ba('0x5d6'))+'$');_0x495cae[_0x33c6ba('0x64')]=function(_0x546f6e){var _0x5924f0=_0x33c6ba;return!(!_0x2b905a(_0x546f6e)||_0x3d07ad(_0x546f6e))&&(_0x2fe9d8(_0x546f6e)?_0x5219fd:_0x49f096)[_0x5924f0('0x2c3')](_0x1f4fc4(_0x546f6e));};},{'./_isMasked':0xd8,'./_toSource':0xfd,'./isFunction':0x10d,'./isObject':0x110}],0x99:[function(_0x24d1ea,_0x41da9a,_0x2f7526){var _0x28606f=_0x548f48,_0x141443=_0x24d1ea(_0x28606f('0xd95')),_0x2d43c3=_0x24d1ea(_0x28606f('0x69e'));_0x41da9a[_0x28606f('0x64')]=function(_0x30e252){var _0x559730=_0x28606f;return _0x2d43c3(_0x30e252)&&_0x559730('0x2da')==_0x141443(_0x30e252);};},{'./_getTag':0xc9,'./isObjectLike':0x111}],0x9a:[function(_0xc3d3ac,_0xc74751,_0xe7f6e5){var _0x491149=_0x548f48,_0x3b4d00=_0xc3d3ac(_0x491149('0x840')),_0x551906=_0xc3d3ac(_0x491149('0x680')),_0x267a6a=_0xc3d3ac(_0x491149('0x69e')),_0x5cc1f2={};_0x5cc1f2[_0x491149('0xcd6')]=_0x5cc1f2[_0x491149('0xdcc')]=_0x5cc1f2[_0x491149('0x844')]=_0x5cc1f2[_0x491149('0x3ec')]=_0x5cc1f2[_0x491149('0x5e6')]=_0x5cc1f2[_0x491149('0x5d2')]=_0x5cc1f2['[object\x20Uint8ClampedArray]']=_0x5cc1f2[_0x491149('0xc35')]=_0x5cc1f2[_0x491149('0xaca')]=!0x0,_0x5cc1f2[_0x491149('0x524')]=_0x5cc1f2[_0x491149('0xed6')]=_0x5cc1f2[_0x491149('0xf38')]=_0x5cc1f2[_0x491149('0x7b6')]=_0x5cc1f2[_0x491149('0xfeb')]=_0x5cc1f2[_0x491149('0x225')]=_0x5cc1f2[_0x491149('0x2ef')]=_0x5cc1f2[_0x491149('0x639')]=_0x5cc1f2[_0x491149('0x979')]=_0x5cc1f2[_0x491149('0x5f4')]=_0x5cc1f2['[object\x20Object]']=_0x5cc1f2[_0x491149('0xa6')]=_0x5cc1f2['[object\x20Set]']=_0x5cc1f2['[object\x20String]']=_0x5cc1f2[_0x491149('0x550')]=!0x1,_0xc74751['exports']=function(_0x1dbee1){return _0x267a6a(_0x1dbee1)&&_0x551906(_0x1dbee1['length'])&&!!_0x5cc1f2[_0x3b4d00(_0x1dbee1)];};},{'./_baseGetTag':0x91,'./isLength':0x10e,'./isObjectLike':0x111}],0x9b:[function(_0x4fcc3d,_0x47c47f,_0x2c8cba){var _0x5cb652=_0x548f48,_0x34dc5e=_0x4fcc3d(_0x5cb652('0xeda')),_0x4b169d=_0x4fcc3d(_0x5cb652('0xfbf')),_0x2a88a4=_0x4fcc3d('./identity'),_0x2b840f=_0x4fcc3d('./isArray'),_0x1f740c=_0x4fcc3d('./property');_0x47c47f[_0x5cb652('0x64')]=function(_0x4e9bc1){var _0x7b1021=_0x5cb652;return _0x7b1021('0x106c')==typeof _0x4e9bc1?_0x4e9bc1:null==_0x4e9bc1?_0x2a88a4:_0x7b1021('0xb3f')==typeof _0x4e9bc1?_0x2b840f(_0x4e9bc1)?_0x4b169d(_0x4e9bc1[0x0],_0x4e9bc1[0x1]):_0x34dc5e(_0x4e9bc1):_0x1f740c(_0x4e9bc1);};},{'./_baseMatches':0x9f,'./_baseMatchesProperty':0xa0,'./identity':0x107,'./isArray':0x109,'./property':0x11e}],0x9c:[function(_0x4f4255,_0x254f50,_0x3f4026){var _0x1cf47a=_0x548f48,_0x45de59=_0x4f4255(_0x1cf47a('0x578')),_0x543ac1=_0x4f4255(_0x1cf47a('0xf5')),_0x1b1b9f=Object['prototype']['hasOwnProperty'];_0x254f50[_0x1cf47a('0x64')]=function(_0x460297){var _0x222f43=_0x1cf47a;if(!_0x45de59(_0x460297))return _0x543ac1(_0x460297);var _0x19ccd3=[];for(var _0x20bee6 in Object(_0x460297))_0x1b1b9f['call'](_0x460297,_0x20bee6)&&_0x222f43('0xad1')!=_0x20bee6&&_0x19ccd3[_0x222f43('0x91b')](_0x20bee6);return _0x19ccd3;};},{'./_isPrototype':0xd9,'./_nativeKeys':0xe9}],0x9d:[function(_0x30a3e5,_0x5ed517,_0x3c4cfb){var _0x336c18=_0x548f48,_0x534662=_0x30a3e5('./isObject'),_0x500eac=_0x30a3e5(_0x336c18('0x578')),_0x43d873=_0x30a3e5(_0x336c18('0xb1b')),_0xb71bc0=Object[_0x336c18('0xe02')][_0x336c18('0xe9c')];_0x5ed517[_0x336c18('0x64')]=function(_0x4532df){var _0x5cfbd1=_0x336c18;if(!_0x534662(_0x4532df))return _0x43d873(_0x4532df);var _0x5e9fad=_0x500eac(_0x4532df),_0x3b8409=[];for(var _0x330ad0 in _0x4532df)(_0x5cfbd1('0xad1')!=_0x330ad0||!_0x5e9fad&&_0xb71bc0[_0x5cfbd1('0xfd2')](_0x4532df,_0x330ad0))&&_0x3b8409[_0x5cfbd1('0x91b')](_0x330ad0);return _0x3b8409;};},{'./_isPrototype':0xd9,'./_nativeKeysIn':0xea,'./isObject':0x110}],0x9e:[function(_0x209049,_0x13e18a,_0x52f4ba){var _0x3c2f1c=_0x548f48,_0x209e3d=_0x209049(_0x3c2f1c('0x1e7')),_0x138dcb=_0x209049(_0x3c2f1c('0x6ec'));_0x13e18a[_0x3c2f1c('0x64')]=function(_0x5c5d75,_0x130d2c){var _0x187a85=_0x3c2f1c,_0x4042fa=-0x1,_0x4e7512=_0x138dcb(_0x5c5d75)?Array(_0x5c5d75[_0x187a85('0x13')]):[];return _0x209e3d(_0x5c5d75,function(_0x5230a9,_0xf6652b,_0x1e1399){_0x4e7512[++_0x4042fa]=_0x130d2c(_0x5230a9,_0xf6652b,_0x1e1399);}),_0x4e7512;};},{'./_baseEach':0x8c,'./isArrayLike':0x10a}],0x9f:[function(_0x325419,_0x8c9ce7,_0x17e9b1){var _0xc3ab74=_0x548f48,_0x519459=_0x325419(_0xc3ab74('0xcfe')),_0x21d30f=_0x325419(_0xc3ab74('0x784')),_0x2794b9=_0x325419('./_matchesStrictComparable');_0x8c9ce7[_0xc3ab74('0x64')]=function(_0xa55072){var _0x41b5a8=_0x21d30f(_0xa55072);return 0x1==_0x41b5a8['length']&&_0x41b5a8[0x0][0x2]?_0x2794b9(_0x41b5a8[0x0][0x0],_0x41b5a8[0x0][0x1]):function(_0x37e818){return _0x37e818===_0xa55072||_0x519459(_0x37e818,_0xa55072,_0x41b5a8);};};},{'./_baseIsMatch':0x97,'./_getMatchData':0xc3,'./_matchesStrictComparable':0xe6}],0xa0:[function(_0x7f9eba,_0x590cf5,_0x477ee2){var _0x523c7e=_0x548f48,_0x3d4d6d=_0x7f9eba('./_baseIsEqual'),_0x555d1f=_0x7f9eba('./get'),_0x264a64=_0x7f9eba(_0x523c7e('0x884')),_0x46c94d=_0x7f9eba(_0x523c7e('0x333')),_0xaaa72a=_0x7f9eba(_0x523c7e('0x1c6')),_0x3ede95=_0x7f9eba(_0x523c7e('0x10bb')),_0x39c89f=_0x7f9eba(_0x523c7e('0x16'));_0x590cf5[_0x523c7e('0x64')]=function(_0x50a7f6,_0x507d50){return _0x46c94d(_0x50a7f6)&&_0xaaa72a(_0x507d50)?_0x3ede95(_0x39c89f(_0x50a7f6),_0x507d50):function(_0x3d283c){var _0x5d8dcb=_0x555d1f(_0x3d283c,_0x50a7f6);return void 0x0===_0x5d8dcb&&_0x5d8dcb===_0x507d50?_0x264a64(_0x3d283c,_0x50a7f6):_0x3d4d6d(_0x507d50,_0x5d8dcb,0x3);};};},{'./_baseIsEqual':0x94,'./_isKey':0xd6,'./_isStrictComparable':0xda,'./_matchesStrictComparable':0xe6,'./_toKey':0xfc,'./get':0x105,'./hasIn':0x106}],0xa1:[function(_0x16ae96,_0x4edead,_0x52ce05){var _0x4e6b22=_0x548f48,_0x3d72c6=_0x16ae96(_0x4e6b22('0x7d1')),_0x30d5a8=_0x16ae96(_0x4e6b22('0x9b5')),_0x4b499e=_0x16ae96(_0x4e6b22('0x1dc')),_0x3223b9=_0x16ae96(_0x4e6b22('0x16b')),_0x2873d1=_0x16ae96(_0x4e6b22('0x52')),_0x25e3c9=_0x16ae96(_0x4e6b22('0xb20')),_0x11465f=_0x16ae96(_0x4e6b22('0x77'));_0x4edead[_0x4e6b22('0x64')]=function _0x67a4a9(_0x346c91,_0x4c82fe,_0x2ea4bc,_0x47b284,_0x32784e){_0x346c91!==_0x4c82fe&&_0x4b499e(_0x4c82fe,function(_0x3f081d,_0x5b5add){if(_0x32784e||(_0x32784e=new _0x3d72c6()),_0x2873d1(_0x3f081d))_0x3223b9(_0x346c91,_0x4c82fe,_0x5b5add,_0x2ea4bc,_0x67a4a9,_0x47b284,_0x32784e);else{var _0x121744=_0x47b284?_0x47b284(_0x11465f(_0x346c91,_0x5b5add),_0x3f081d,_0x5b5add+'',_0x346c91,_0x4c82fe,_0x32784e):void 0x0;void 0x0===_0x121744&&(_0x121744=_0x3f081d),_0x30d5a8(_0x346c91,_0x5b5add,_0x121744);}},_0x25e3c9);};},{'./_Stack':0x79,'./_assignMergeValue':0x84,'./_baseFor':0x8d,'./_baseMergeDeep':0xa2,'./_safeGet':0xf0,'./isObject':0x110,'./keysIn':0x119}],0xa2:[function(_0x22413d,_0x1e34d8,_0x4c72d5){var _0x36d76e=_0x548f48,_0x116b5e=_0x22413d('./_assignMergeValue'),_0x2d21c5=_0x22413d(_0x36d76e('0x51e')),_0x2dd02c=_0x22413d(_0x36d76e('0xa11')),_0x4a86ef=_0x22413d('./_copyArray'),_0x4d94fc=_0x22413d(_0x36d76e('0xc77')),_0x112c64=_0x22413d(_0x36d76e('0x1157')),_0x298992=_0x22413d(_0x36d76e('0x1b6')),_0x58e3b1=_0x22413d(_0x36d76e('0x9e7')),_0x2cd31e=_0x22413d(_0x36d76e('0xa79')),_0x2043c1=_0x22413d(_0x36d76e('0x1ee')),_0xd22568=_0x22413d(_0x36d76e('0x52')),_0x3f8100=_0x22413d(_0x36d76e('0x8da')),_0x164b7f=_0x22413d(_0x36d76e('0x412')),_0x32861e=_0x22413d(_0x36d76e('0x77')),_0x94f573=_0x22413d(_0x36d76e('0xfd9'));_0x1e34d8[_0x36d76e('0x64')]=function(_0x2f5fd9,_0x4124b4,_0x937cf9,_0x22d977,_0x56eda8,_0x305e0f,_0x27080b){var _0x2bb66c=_0x36d76e,_0x4f3030=_0x32861e(_0x2f5fd9,_0x937cf9),_0x516644=_0x32861e(_0x4124b4,_0x937cf9),_0x184fe4=_0x27080b[_0x2bb66c('0xd12')](_0x516644);if(_0x184fe4)_0x116b5e(_0x2f5fd9,_0x937cf9,_0x184fe4);else{var _0x42e175=_0x305e0f?_0x305e0f(_0x4f3030,_0x516644,_0x937cf9+'',_0x2f5fd9,_0x4124b4,_0x27080b):void 0x0,_0x252483=void 0x0===_0x42e175;if(_0x252483){var _0x4bd817=_0x298992(_0x516644),_0x1880e2=!_0x4bd817&&_0x2cd31e(_0x516644),_0x5ea336=!_0x4bd817&&!_0x1880e2&&_0x164b7f(_0x516644);_0x42e175=_0x516644,_0x4bd817||_0x1880e2||_0x5ea336?_0x298992(_0x4f3030)?_0x42e175=_0x4f3030:_0x58e3b1(_0x4f3030)?_0x42e175=_0x4a86ef(_0x4f3030):_0x1880e2?(_0x252483=!0x1,_0x42e175=_0x2d21c5(_0x516644,!0x0)):_0x5ea336?(_0x252483=!0x1,_0x42e175=_0x2dd02c(_0x516644,!0x0)):_0x42e175=[]:_0x3f8100(_0x516644)||_0x112c64(_0x516644)?(_0x42e175=_0x4f3030,_0x112c64(_0x4f3030)?_0x42e175=_0x94f573(_0x4f3030):_0xd22568(_0x4f3030)&&!_0x2043c1(_0x4f3030)||(_0x42e175=_0x4d94fc(_0x516644))):_0x252483=!0x1;}_0x252483&&(_0x27080b['set'](_0x516644,_0x42e175),_0x56eda8(_0x42e175,_0x516644,_0x22d977,_0x305e0f,_0x27080b),_0x27080b[_0x2bb66c('0x41d')](_0x516644)),_0x116b5e(_0x2f5fd9,_0x937cf9,_0x42e175);}};},{'./_assignMergeValue':0x84,'./_cloneBuffer':0xae,'./_cloneTypedArray':0xb2,'./_copyArray':0xb3,'./_initCloneObject':0xd3,'./_safeGet':0xf0,'./isArguments':0x108,'./isArray':0x109,'./isArrayLikeObject':0x10b,'./isBuffer':0x10c,'./isFunction':0x10d,'./isObject':0x110,'./isPlainObject':0x112,'./isTypedArray':0x116,'./toPlainObject':0x123}],0xa3:[function(_0xeebed0,_0x2cf460,_0xdf141b){var _0x5a5602=_0x548f48;_0x2cf460[_0x5a5602('0x64')]=function(_0x2b0a8d){return function(_0x4ea3a1){return null==_0x4ea3a1?void 0x0:_0x4ea3a1[_0x2b0a8d];};};},{}],0xa4:[function(_0x448914,_0x419fbb,_0x4b8387){var _0x1fc1a8=_0x548f48,_0x560716=_0x448914(_0x1fc1a8('0x4fc'));_0x419fbb[_0x1fc1a8('0x64')]=function(_0x2eebca){return function(_0x2ee5e8){return _0x560716(_0x2ee5e8,_0x2eebca);};};},{'./_baseGet':0x8f}],0xa5:[function(_0x4f110a,_0x5e4590,_0x50cdb2){var _0x3393b9=_0x548f48,_0x6d27ce=_0x4f110a('./identity'),_0x4caa3c=_0x4f110a('./_overRest'),_0x1ee5e2=_0x4f110a(_0x3393b9('0xcde'));_0x5e4590['exports']=function(_0x180d0,_0x563a73){return _0x1ee5e2(_0x4caa3c(_0x180d0,_0x563a73,_0x6d27ce),_0x180d0+'');};},{'./_overRest':0xee,'./_setToString':0xf4,'./identity':0x107}],0xa6:[function(_0x11cb05,_0x3aa127,_0x46f0f9){var _0x2bdfc8=_0x548f48,_0x1f017d=_0x11cb05(_0x2bdfc8('0x951')),_0x5db57e=_0x11cb05(_0x2bdfc8('0xe2a')),_0x4a6ef2=_0x11cb05(_0x2bdfc8('0x74e')),_0x5629dc=_0x5db57e?function(_0x3eda14,_0xd5f150){return _0x5db57e(_0x3eda14,'toString',{'configurable':!0x0,'enumerable':!0x1,'value':_0x1f017d(_0xd5f150),'writable':!0x0});}:_0x4a6ef2;_0x3aa127['exports']=_0x5629dc;},{'./_defineProperty':0xbb,'./constant':0xff,'./identity':0x107}],0xa7:[function(_0x3d1ad4,_0xdefbb9,_0xaf3235){var _0x1ab8fa=_0x548f48;_0xdefbb9[_0x1ab8fa('0x64')]=function(_0x5cc5d4,_0x460651){for(var _0x1a5766=-0x1,_0x1c415b=Array(_0x5cc5d4);++_0x1a5766<_0x5cc5d4;)_0x1c415b[_0x1a5766]=_0x460651(_0x1a5766);return _0x1c415b;};},{}],0xa8:[function(_0x296253,_0x20129c,_0x468de6){var _0x281beb=_0x548f48,_0x2d8956=_0x296253('./_Symbol'),_0x32df7b=_0x296253(_0x281beb('0x4a9')),_0x311975=_0x296253(_0x281beb('0x1b6')),_0x4b5dcb=_0x296253(_0x281beb('0xa9')),_0x3ba973=_0x2d8956?_0x2d8956[_0x281beb('0xe02')]:void 0x0,_0xe71bb9=_0x3ba973?_0x3ba973[_0x281beb('0xb6d')]:void 0x0;_0x20129c[_0x281beb('0x64')]=function _0x3af889(_0xd2ccb4){var _0xfcdd=_0x281beb;if(_0xfcdd('0x2fd')==typeof _0xd2ccb4)return _0xd2ccb4;if(_0x311975(_0xd2ccb4))return _0x32df7b(_0xd2ccb4,_0x3af889)+'';if(_0x4b5dcb(_0xd2ccb4))return _0xe71bb9?_0xe71bb9[_0xfcdd('0xfd2')](_0xd2ccb4):'';var _0x205ad1=_0xd2ccb4+'';return'0'==_0x205ad1&&0x1/_0xd2ccb4==-0x1/0x0?'-0':_0x205ad1;};},{'./_Symbol':0x7a,'./_arrayMap':0x81,'./isArray':0x109,'./isSymbol':0x115}],0xa9:[function(_0xd7341c,_0x2e27ca,_0x974170){var _0x7a0fd3=_0x548f48;_0x2e27ca[_0x7a0fd3('0x64')]=function(_0x3bd7a7){return function(_0x4a94b5){return _0x3bd7a7(_0x4a94b5);};};},{}],0xaa:[function(_0x2c14f0,_0x4be80f,_0x597496){_0x4be80f['exports']=function(_0x3d95f1,_0x3495ed){var _0x43f4b9=_0x5376;return _0x3d95f1[_0x43f4b9('0xe5f')](_0x3495ed);};},{}],0xab:[function(_0x310bb9,_0x40ff88,_0x3e6bce){var _0xca0e28=_0x548f48,_0x49eff6=_0x310bb9('./identity');_0x40ff88[_0xca0e28('0x64')]=function(_0x3c6a90){var _0x26daf0=_0xca0e28;return _0x26daf0('0x106c')==typeof _0x3c6a90?_0x3c6a90:_0x49eff6;};},{'./identity':0x107}],0xac:[function(_0x427da9,_0x149950,_0x18038b){var _0x17fb8d=_0x548f48,_0x30e773=_0x427da9('./isArray'),_0x2e008d=_0x427da9(_0x17fb8d('0x333')),_0x38bed1=_0x427da9('./_stringToPath'),_0x5e03da=_0x427da9('./toString');_0x149950[_0x17fb8d('0x64')]=function(_0x3dae08,_0x6a069d){return _0x30e773(_0x3dae08)?_0x3dae08:_0x2e008d(_0x3dae08,_0x6a069d)?[_0x3dae08]:_0x38bed1(_0x5e03da(_0x3dae08));};},{'./_isKey':0xd6,'./_stringToPath':0xfb,'./isArray':0x109,'./toString':0x124}],0xad:[function(_0x2848e3,_0x2fda87,_0x4c41b5){var _0x31719f=_0x548f48,_0x25181a=_0x2848e3(_0x31719f('0x460'));_0x2fda87[_0x31719f('0x64')]=function(_0x168905){var _0x21279=_0x31719f,_0x1b43b7=new _0x168905[(_0x21279('0xad1'))](_0x168905['byteLength']);return new _0x25181a(_0x1b43b7)['set'](new _0x25181a(_0x168905)),_0x1b43b7;};},{'./_Uint8Array':0x7b}],0xae:[function(_0x23e0f1,_0x248c2c,_0x19c228){var _0x5ed77c=_0x548f48,_0x13c64e=_0x23e0f1(_0x5ed77c('0x1')),_0x5d158c=_0x5ed77c('0xb3f')==typeof _0x19c228&&_0x19c228&&!_0x19c228[_0x5ed77c('0x5a')]&&_0x19c228,_0x556793=_0x5d158c&&_0x5ed77c('0xb3f')==typeof _0x248c2c&&_0x248c2c&&!_0x248c2c[_0x5ed77c('0x5a')]&&_0x248c2c,_0x43892a=_0x556793&&_0x556793[_0x5ed77c('0x64')]===_0x5d158c?_0x13c64e[_0x5ed77c('0xa3c')]:void 0x0,_0x5be51b=_0x43892a?_0x43892a['allocUnsafe']:void 0x0;_0x248c2c['exports']=function(_0xd46bc4,_0x22c61c){var _0x2d0a05=_0x5ed77c;if(_0x22c61c)return _0xd46bc4[_0x2d0a05('0xdf1')]();var _0x52f8df=_0xd46bc4[_0x2d0a05('0x13')],_0x5bc56a=_0x5be51b?_0x5be51b(_0x52f8df):new _0xd46bc4['constructor'](_0x52f8df);return _0xd46bc4[_0x2d0a05('0x3cd')](_0x5bc56a),_0x5bc56a;};},{'./_root':0xef}],0xaf:[function(_0x2f8147,_0x572719,_0x401c06){var _0x2a7172=_0x548f48,_0x45551b=_0x2f8147(_0x2a7172('0x817'));_0x572719['exports']=function(_0xfaf2f4,_0x1e5654){var _0x5511b0=_0x2a7172,_0xbc6d3b=_0x1e5654?_0x45551b(_0xfaf2f4[_0x5511b0('0x112b')]):_0xfaf2f4[_0x5511b0('0x112b')];return new _0xfaf2f4[(_0x5511b0('0xad1'))](_0xbc6d3b,_0xfaf2f4[_0x5511b0('0xb38')],_0xfaf2f4[_0x5511b0('0xd90')]);};},{'./_cloneArrayBuffer':0xad}],0xb0:[function(_0x5361a9,_0x9a2283,_0x2eaf70){var _0xca720b=/\w*$/;_0x9a2283['exports']=function(_0x3b3491){var _0x235495=_0x5376,_0x1c702c=new _0x3b3491['constructor'](_0x3b3491[_0x235495('0x5f3')],_0xca720b['exec'](_0x3b3491));return _0x1c702c[_0x235495('0x96c')]=_0x3b3491[_0x235495('0x96c')],_0x1c702c;};},{}],0xb1:[function(_0x390464,_0x5e9de9,_0x1175ff){var _0x19837b=_0x548f48,_0x65d0e2=_0x390464('./_Symbol'),_0x28f703=_0x65d0e2?_0x65d0e2[_0x19837b('0xe02')]:void 0x0,_0x267209=_0x28f703?_0x28f703[_0x19837b('0xc02')]:void 0x0;_0x5e9de9['exports']=function(_0x1daae1){var _0x11bc51=_0x19837b;return _0x267209?Object(_0x267209[_0x11bc51('0xfd2')](_0x1daae1)):{};};},{'./_Symbol':0x7a}],0xb2:[function(_0x3c614a,_0x456eba,_0x2baccd){var _0x1538f4=_0x548f48,_0x2a0545=_0x3c614a(_0x1538f4('0x817'));_0x456eba[_0x1538f4('0x64')]=function(_0x3b9acf,_0x429c25){var _0xdf4424=_0x1538f4,_0x2010b6=_0x429c25?_0x2a0545(_0x3b9acf['buffer']):_0x3b9acf['buffer'];return new _0x3b9acf[(_0xdf4424('0xad1'))](_0x2010b6,_0x3b9acf[_0xdf4424('0xb38')],_0x3b9acf[_0xdf4424('0x13')]);};},{'./_cloneArrayBuffer':0xad}],0xb3:[function(_0x71373f,_0x2ebe8b,_0x5487e0){_0x2ebe8b['exports']=function(_0x12e4f0,_0x51074f){var _0xe76bd8=-0x1,_0xd285a=_0x12e4f0['length'];for(_0x51074f||(_0x51074f=Array(_0xd285a));++_0xe76bd8<_0xd285a;)_0x51074f[_0xe76bd8]=_0x12e4f0[_0xe76bd8];return _0x51074f;};},{}],0xb4:[function(_0x329c01,_0x1775da,_0x5e3da0){var _0x221e6a=_0x548f48,_0xcbb7ed=_0x329c01('./_assignValue'),_0x3cd375=_0x329c01(_0x221e6a('0xc7b'));_0x1775da[_0x221e6a('0x64')]=function(_0x430445,_0x53e0b1,_0x4e27f4,_0x4ec0dc){var _0x40fa30=_0x221e6a,_0x4f51bb=!_0x4e27f4;_0x4e27f4||(_0x4e27f4={});for(var _0x482960=-0x1,_0xc5d4f1=_0x53e0b1[_0x40fa30('0x13')];++_0x482960<_0xc5d4f1;){var _0xfb24a7=_0x53e0b1[_0x482960],_0x3d3aa9=_0x4ec0dc?_0x4ec0dc(_0x4e27f4[_0xfb24a7],_0x430445[_0xfb24a7],_0xfb24a7,_0x4e27f4,_0x430445):void 0x0;void 0x0===_0x3d3aa9&&(_0x3d3aa9=_0x430445[_0xfb24a7]),_0x4f51bb?_0x3cd375(_0x4e27f4,_0xfb24a7,_0x3d3aa9):_0xcbb7ed(_0x4e27f4,_0xfb24a7,_0x3d3aa9);}return _0x4e27f4;};},{'./_assignValue':0x85,'./_baseAssignValue':0x89}],0xb5:[function(_0xcc9d10,_0xe732d9,_0xc81cd2){var _0x99b356=_0x548f48,_0x504a7c=_0xcc9d10('./_copyObject'),_0x30fa98=_0xcc9d10(_0x99b356('0xc0e'));_0xe732d9[_0x99b356('0x64')]=function(_0x448357,_0x26188e){return _0x504a7c(_0x448357,_0x30fa98(_0x448357),_0x26188e);};},{'./_copyObject':0xb4,'./_getSymbols':0xc7}],0xb6:[function(_0x410379,_0x1a58e1,_0x160a8f){var _0x7bab55=_0x548f48,_0x2632cc=_0x410379(_0x7bab55('0x20f')),_0x36c968=_0x410379(_0x7bab55('0x1117'));_0x1a58e1[_0x7bab55('0x64')]=function(_0x4e0b23,_0x96c66e){return _0x2632cc(_0x4e0b23,_0x36c968(_0x4e0b23),_0x96c66e);};},{'./_copyObject':0xb4,'./_getSymbolsIn':0xc8}],0xb7:[function(_0x28f6ee,_0x1b035a,_0x4aeb4b){var _0x288c24=_0x548f48,_0x5eedd0=_0x28f6ee(_0x288c24('0x1'))['__core-js_shared__'];_0x1b035a[_0x288c24('0x64')]=_0x5eedd0;},{'./_root':0xef}],0xb8:[function(_0x891cb4,_0x5efad2,_0x49ae88){var _0x5e4594=_0x548f48,_0x1d3911=_0x891cb4('./_baseRest'),_0x45eb23=_0x891cb4(_0x5e4594('0x832'));_0x5efad2[_0x5e4594('0x64')]=function(_0x43c1ed){return _0x1d3911(function(_0x3a769b,_0x261952){var _0x5cee7b=_0x5376,_0x355f1d=-0x1,_0x46ca8f=_0x261952[_0x5cee7b('0x13')],_0x25b35f=_0x46ca8f>0x1?_0x261952[_0x46ca8f-0x1]:void 0x0,_0x59bf8c=_0x46ca8f>0x2?_0x261952[0x2]:void 0x0;for(_0x25b35f=_0x43c1ed['length']>0x3&&_0x5cee7b('0x106c')==typeof _0x25b35f?(_0x46ca8f--,_0x25b35f):void 0x0,_0x59bf8c&&_0x45eb23(_0x261952[0x0],_0x261952[0x1],_0x59bf8c)&&(_0x25b35f=_0x46ca8f<0x3?void 0x0:_0x25b35f,_0x46ca8f=0x1),_0x3a769b=Object(_0x3a769b);++_0x355f1d<_0x46ca8f;){var _0x502ee4=_0x261952[_0x355f1d];_0x502ee4&&_0x43c1ed(_0x3a769b,_0x502ee4,_0x355f1d,_0x25b35f);}return _0x3a769b;});};},{'./_baseRest':0xa5,'./_isIterateeCall':0xd5}],0xb9:[function(_0x522b56,_0xaa1075,_0x3858da){var _0x3c230f=_0x522b56('./isArrayLike');_0xaa1075['exports']=function(_0x2407e5,_0x3fee83){return function(_0x2d27a8,_0x5cf2ea){var _0x2ea74d=_0x5376;if(null==_0x2d27a8)return _0x2d27a8;if(!_0x3c230f(_0x2d27a8))return _0x2407e5(_0x2d27a8,_0x5cf2ea);for(var _0x34e375=_0x2d27a8[_0x2ea74d('0x13')],_0x26213f=_0x3fee83?_0x34e375:-0x1,_0x200ec8=Object(_0x2d27a8);(_0x3fee83?_0x26213f--:++_0x26213f<_0x34e375)&&!0x1!==_0x5cf2ea(_0x200ec8[_0x26213f],_0x26213f,_0x200ec8););return _0x2d27a8;};};},{'./isArrayLike':0x10a}],0xba:[function(_0x4b5e9f,_0x324049,_0x22ed9c){var _0x3b99af=_0x548f48;_0x324049[_0x3b99af('0x64')]=function(_0x8987d6){return function(_0x39999b,_0x6dd14c,_0x1ab20c){for(var _0x530238=-0x1,_0x1c1305=Object(_0x39999b),_0x221a0a=_0x1ab20c(_0x39999b),_0xe849e0=_0x221a0a['length'];_0xe849e0--;){var _0x37972b=_0x221a0a[_0x8987d6?_0xe849e0:++_0x530238];if(!0x1===_0x6dd14c(_0x1c1305[_0x37972b],_0x37972b,_0x1c1305))break;}return _0x39999b;};};},{}],0xbb:[function(_0x502f28,_0x43cde7,_0x131f09){var _0x38f9e5=_0x548f48,_0x2fd994=_0x502f28(_0x38f9e5('0x553')),_0x624c82=function(){var _0x38d7c8=_0x38f9e5;try{var _0x453837=_0x2fd994(Object,_0x38d7c8('0x9a5'));return _0x453837({},'',{}),_0x453837;}catch(_0x294fdf){}}();_0x43cde7[_0x38f9e5('0x64')]=_0x624c82;},{'./_getNative':0xc4}],0xbc:[function(_0x317c5d,_0x37ba06,_0x545979){var _0x2e041e=_0x548f48,_0x12934e=_0x317c5d('./_SetCache'),_0x25c0ca=_0x317c5d(_0x2e041e('0x63a')),_0xe5580=_0x317c5d('./_cacheHas');_0x37ba06['exports']=function(_0x35c329,_0x5f222b,_0x152972,_0x502d5c,_0x505a27,_0xe63641){var _0x39995d=_0x2e041e,_0x12783b=0x1&_0x152972,_0x28ec41=_0x35c329['length'],_0x3288d5=_0x5f222b[_0x39995d('0x13')];if(_0x28ec41!=_0x3288d5&&!(_0x12783b&&_0x3288d5>_0x28ec41))return!0x1;var _0x1580c7=_0xe63641['get'](_0x35c329),_0x30aac6=_0xe63641['get'](_0x5f222b);if(_0x1580c7&&_0x30aac6)return _0x1580c7==_0x5f222b&&_0x30aac6==_0x35c329;var _0x50e072=-0x1,_0x101317=!0x0,_0x469e9a=0x2&_0x152972?new _0x12934e():void 0x0;for(_0xe63641[_0x39995d('0x24a')](_0x35c329,_0x5f222b),_0xe63641[_0x39995d('0x24a')](_0x5f222b,_0x35c329);++_0x50e072<_0x28ec41;){var _0x570a57=_0x35c329[_0x50e072],_0x5cafb3=_0x5f222b[_0x50e072];if(_0x502d5c)var _0x552139=_0x12783b?_0x502d5c(_0x5cafb3,_0x570a57,_0x50e072,_0x5f222b,_0x35c329,_0xe63641):_0x502d5c(_0x570a57,_0x5cafb3,_0x50e072,_0x35c329,_0x5f222b,_0xe63641);if(void 0x0!==_0x552139){if(_0x552139)continue;_0x101317=!0x1;break;}if(_0x469e9a){if(!_0x25c0ca(_0x5f222b,function(_0x36e02c,_0x43eb83){var _0x4e7cb6=_0x39995d;if(!_0xe5580(_0x469e9a,_0x43eb83)&&(_0x570a57===_0x36e02c||_0x505a27(_0x570a57,_0x36e02c,_0x152972,_0x502d5c,_0xe63641)))return _0x469e9a[_0x4e7cb6('0x91b')](_0x43eb83);})){_0x101317=!0x1;break;}}else{if(_0x570a57!==_0x5cafb3&&!_0x505a27(_0x570a57,_0x5cafb3,_0x152972,_0x502d5c,_0xe63641)){_0x101317=!0x1;break;}}}return _0xe63641[_0x39995d('0x41d')](_0x35c329),_0xe63641[_0x39995d('0x41d')](_0x5f222b),_0x101317;};},{'./_SetCache':0x78,'./_arraySome':0x83,'./_cacheHas':0xaa}],0xbd:[function(_0x230fae,_0x4ad77a,_0x50405b){var _0x2139d3=_0x548f48,_0x4adc92=_0x230fae(_0x2139d3('0x36e')),_0x52d995=_0x230fae('./_Uint8Array'),_0x54894e=_0x230fae(_0x2139d3('0x35')),_0x483fb0=_0x230fae('./_equalArrays'),_0x595c28=_0x230fae('./_mapToArray'),_0x3b9813=_0x230fae(_0x2139d3('0x21c')),_0x36f7ef=_0x4adc92?_0x4adc92[_0x2139d3('0xe02')]:void 0x0,_0x39bf46=_0x36f7ef?_0x36f7ef[_0x2139d3('0xc02')]:void 0x0;_0x4ad77a[_0x2139d3('0x64')]=function(_0x2b2445,_0x4d4850,_0x1ebffa,_0x4ec840,_0x36a3e4,_0x52caa5,_0x1fc3d8){var _0x3e0bdc=_0x2139d3;switch(_0x1ebffa){case _0x3e0bdc('0xfeb'):if(_0x2b2445[_0x3e0bdc('0xd90')]!=_0x4d4850[_0x3e0bdc('0xd90')]||_0x2b2445[_0x3e0bdc('0xb38')]!=_0x4d4850[_0x3e0bdc('0xb38')])return!0x1;_0x2b2445=_0x2b2445[_0x3e0bdc('0x112b')],_0x4d4850=_0x4d4850['buffer'];case _0x3e0bdc('0xf38'):return!(_0x2b2445[_0x3e0bdc('0xd90')]!=_0x4d4850[_0x3e0bdc('0xd90')]||!_0x52caa5(new _0x52d995(_0x2b2445),new _0x52d995(_0x4d4850)));case _0x3e0bdc('0x7b6'):case _0x3e0bdc('0x225'):case _0x3e0bdc('0x5f4'):return _0x54894e(+_0x2b2445,+_0x4d4850);case'[object\x20Error]':return _0x2b2445[_0x3e0bdc('0x3ea')]==_0x4d4850[_0x3e0bdc('0x3ea')]&&_0x2b2445[_0x3e0bdc('0x773')]==_0x4d4850[_0x3e0bdc('0x773')];case'[object\x20RegExp]':case'[object\x20String]':return _0x2b2445==_0x4d4850+'';case _0x3e0bdc('0x979'):var _0x3727b0=_0x595c28;case _0x3e0bdc('0x2da'):var _0x5a9582=0x1&_0x4ec840;if(_0x3727b0||(_0x3727b0=_0x3b9813),_0x2b2445[_0x3e0bdc('0x10a2')]!=_0x4d4850[_0x3e0bdc('0x10a2')]&&!_0x5a9582)return!0x1;var _0x58a267=_0x1fc3d8[_0x3e0bdc('0xd12')](_0x2b2445);if(_0x58a267)return _0x58a267==_0x4d4850;_0x4ec840|=0x2,_0x1fc3d8[_0x3e0bdc('0x24a')](_0x2b2445,_0x4d4850);var _0x30c189=_0x483fb0(_0x3727b0(_0x2b2445),_0x3727b0(_0x4d4850),_0x4ec840,_0x36a3e4,_0x52caa5,_0x1fc3d8);return _0x1fc3d8[_0x3e0bdc('0x41d')](_0x2b2445),_0x30c189;case _0x3e0bdc('0x87a'):if(_0x39bf46)return _0x39bf46[_0x3e0bdc('0xfd2')](_0x2b2445)==_0x39bf46['call'](_0x4d4850);}return!0x1;};},{'./_Symbol':0x7a,'./_Uint8Array':0x7b,'./_equalArrays':0xbc,'./_mapToArray':0xe5,'./_setToArray':0xf3,'./eq':0x102}],0xbe:[function(_0x51836a,_0x4338c6,_0x45a840){var _0x6fb89=_0x548f48,_0x58c59f=_0x51836a(_0x6fb89('0xd84')),_0x5247c2=Object[_0x6fb89('0xe02')][_0x6fb89('0xe9c')];_0x4338c6[_0x6fb89('0x64')]=function(_0x4b8382,_0x321076,_0x3093da,_0x2b0fc5,_0x421d96,_0x3c7953){var _0x583edc=_0x6fb89,_0x2b1b84=0x1&_0x3093da,_0x1e1a5d=_0x58c59f(_0x4b8382),_0x4317ed=_0x1e1a5d['length'];if(_0x4317ed!=_0x58c59f(_0x321076)[_0x583edc('0x13')]&&!_0x2b1b84)return!0x1;for(var _0x38f81a=_0x4317ed;_0x38f81a--;){var _0x3da381=_0x1e1a5d[_0x38f81a];if(!(_0x2b1b84?_0x3da381 in _0x321076:_0x5247c2[_0x583edc('0xfd2')](_0x321076,_0x3da381)))return!0x1;}var _0x3d41ea=_0x3c7953[_0x583edc('0xd12')](_0x4b8382),_0x5bd66d=_0x3c7953[_0x583edc('0xd12')](_0x321076);if(_0x3d41ea&&_0x5bd66d)return _0x3d41ea==_0x321076&&_0x5bd66d==_0x4b8382;var _0x3d0991=!0x0;_0x3c7953[_0x583edc('0x24a')](_0x4b8382,_0x321076),_0x3c7953['set'](_0x321076,_0x4b8382);for(var _0x584970=_0x2b1b84;++_0x38f81a<_0x4317ed;){var _0x4176ff=_0x4b8382[_0x3da381=_0x1e1a5d[_0x38f81a]],_0x3a70c3=_0x321076[_0x3da381];if(_0x2b0fc5)var _0xf8b476=_0x2b1b84?_0x2b0fc5(_0x3a70c3,_0x4176ff,_0x3da381,_0x321076,_0x4b8382,_0x3c7953):_0x2b0fc5(_0x4176ff,_0x3a70c3,_0x3da381,_0x4b8382,_0x321076,_0x3c7953);if(!(void 0x0===_0xf8b476?_0x4176ff===_0x3a70c3||_0x421d96(_0x4176ff,_0x3a70c3,_0x3093da,_0x2b0fc5,_0x3c7953):_0xf8b476)){_0x3d0991=!0x1;break;}_0x584970||(_0x584970=_0x583edc('0xad1')==_0x3da381);}if(_0x3d0991&&!_0x584970){var _0x5a1d7=_0x4b8382[_0x583edc('0xad1')],_0x44a573=_0x321076[_0x583edc('0xad1')];_0x5a1d7==_0x44a573||!('constructor'in _0x4b8382)||!('constructor'in _0x321076)||'function'==typeof _0x5a1d7&&_0x5a1d7 instanceof _0x5a1d7&&_0x583edc('0x106c')==typeof _0x44a573&&_0x44a573 instanceof _0x44a573||(_0x3d0991=!0x1);}return _0x3c7953['delete'](_0x4b8382),_0x3c7953['delete'](_0x321076),_0x3d0991;};},{'./_getAllKeys':0xc0}],0xbf:[function(_0x49f87d,_0x84a413,_0x57ddeb){var _0x134a61=_0x548f48;(function(_0x49a162){var _0x24e72c=_0x5376,_0x34c28b=_0x24e72c('0xb3f')==typeof _0x49a162&&_0x49a162&&_0x49a162[_0x24e72c('0xe25')]===Object&&_0x49a162;_0x84a413[_0x24e72c('0x64')]=_0x34c28b;}[_0x134a61('0xfd2')](this,_0x134a61('0x449')!=typeof global?global:_0x134a61('0x449')!=typeof self?self:_0x134a61('0x449')!=typeof window?window:{}));},{}],0xc0:[function(_0x15b614,_0x50ddf1,_0x2fc270){var _0xe76797=_0x548f48,_0x47eaa4=_0x15b614(_0xe76797('0x5c2')),_0x3a906a=_0x15b614('./_getSymbols'),_0x2acfa1=_0x15b614('./keys');_0x50ddf1[_0xe76797('0x64')]=function(_0xee2fe6){return _0x47eaa4(_0xee2fe6,_0x2acfa1,_0x3a906a);};},{'./_baseGetAllKeys':0x90,'./_getSymbols':0xc7,'./keys':0x118}],0xc1:[function(_0x2f145a,_0x53d21b,_0x1b54e4){var _0x5d6a12=_0x548f48,_0x1e2d25=_0x2f145a(_0x5d6a12('0x5c2')),_0x22e80e=_0x2f145a(_0x5d6a12('0x1117')),_0x15e178=_0x2f145a(_0x5d6a12('0xb20'));_0x53d21b[_0x5d6a12('0x64')]=function(_0x9c7aeb){return _0x1e2d25(_0x9c7aeb,_0x15e178,_0x22e80e);};},{'./_baseGetAllKeys':0x90,'./_getSymbolsIn':0xc8,'./keysIn':0x119}],0xc2:[function(_0x25dfa6,_0x1e2c35,_0xf87e85){var _0x58d44f=_0x548f48,_0x404909=_0x25dfa6(_0x58d44f('0x10ea'));_0x1e2c35[_0x58d44f('0x64')]=function(_0x46dfa0,_0x3bec06){var _0x35ade4=_0x58d44f,_0x527e94=_0x46dfa0['__data__'];return _0x404909(_0x3bec06)?_0x527e94[_0x35ade4('0x2fd')==typeof _0x3bec06?_0x35ade4('0x2fd'):_0x35ade4('0x5a6')]:_0x527e94[_0x35ade4('0xd8e')];};},{'./_isKeyable':0xd7}],0xc3:[function(_0x20f44f,_0x495434,_0x296aad){var _0xc820d0=_0x548f48,_0x38e94f=_0x20f44f(_0xc820d0('0x1c6')),_0x301abd=_0x20f44f('./keys');_0x495434[_0xc820d0('0x64')]=function(_0xbb0589){var _0x1600a4=_0xc820d0;for(var _0x69ca0=_0x301abd(_0xbb0589),_0x3fad0a=_0x69ca0[_0x1600a4('0x13')];_0x3fad0a--;){var _0x2810a6=_0x69ca0[_0x3fad0a],_0x1ff8e3=_0xbb0589[_0x2810a6];_0x69ca0[_0x3fad0a]=[_0x2810a6,_0x1ff8e3,_0x38e94f(_0x1ff8e3)];}return _0x69ca0;};},{'./_isStrictComparable':0xda,'./keys':0x118}],0xc4:[function(_0x3c2eeb,_0x2ac68a,_0x4097e1){var _0xa542d7=_0x548f48,_0x457f31=_0x3c2eeb(_0xa542d7('0x59d')),_0x3ed568=_0x3c2eeb('./_getValue');_0x2ac68a[_0xa542d7('0x64')]=function(_0x53d2c4,_0x4e7b26){var _0x44dc22=_0x3ed568(_0x53d2c4,_0x4e7b26);return _0x457f31(_0x44dc22)?_0x44dc22:void 0x0;};},{'./_baseIsNative':0x98,'./_getValue':0xca}],0xc5:[function(_0x1b20c1,_0x213131,_0x501522){var _0xe78ffb=_0x548f48,_0x24dd40=_0x1b20c1('./_overArg')(Object[_0xe78ffb('0x2d9')],Object);_0x213131[_0xe78ffb('0x64')]=_0x24dd40;},{'./_overArg':0xed}],0xc6:[function(_0x16154b,_0x4c44be,_0x5c3745){var _0x377744=_0x548f48,_0x4465df=_0x16154b('./_Symbol'),_0x41cdfd=Object[_0x377744('0xe02')],_0x20d627=_0x41cdfd['hasOwnProperty'],_0x359199=_0x41cdfd[_0x377744('0xb6d')],_0x3fa48a=_0x4465df?_0x4465df['toStringTag']:void 0x0;_0x4c44be[_0x377744('0x64')]=function(_0x1e90a8){var _0x7069e1=_0x377744,_0x41ed51=_0x20d627['call'](_0x1e90a8,_0x3fa48a),_0x3847e4=_0x1e90a8[_0x3fa48a];try{_0x1e90a8[_0x3fa48a]=void 0x0;var _0x4abc29=!0x0;}catch(_0x13dcd7){}var _0x2607cd=_0x359199[_0x7069e1('0xfd2')](_0x1e90a8);return _0x4abc29&&(_0x41ed51?_0x1e90a8[_0x3fa48a]=_0x3847e4:delete _0x1e90a8[_0x3fa48a]),_0x2607cd;};},{'./_Symbol':0x7a}],0xc7:[function(_0x2ee185,_0x31208b,_0x23cf0e){var _0x577865=_0x548f48,_0xbfbc4c=_0x2ee185(_0x577865('0x1ba')),_0x5b54ad=_0x2ee185(_0x577865('0x787')),_0x1230ba=Object['prototype'][_0x577865('0x166')],_0x51fca0=Object[_0x577865('0x5e2')],_0x5d6ba8=_0x51fca0?function(_0x4568b0){return null==_0x4568b0?[]:(_0x4568b0=Object(_0x4568b0),_0xbfbc4c(_0x51fca0(_0x4568b0),function(_0x530e7a){return _0x1230ba['call'](_0x4568b0,_0x530e7a);}));}:_0x5b54ad;_0x31208b[_0x577865('0x64')]=_0x5d6ba8;},{'./_arrayFilter':0x7f,'./stubArray':0x11f}],0xc8:[function(_0x185e4d,_0x1b8593,_0x3f106d){var _0x271be6=_0x548f48,_0x4be299=_0x185e4d(_0x271be6('0xdbd')),_0x29615d=_0x185e4d(_0x271be6('0x197')),_0x2ec59d=_0x185e4d(_0x271be6('0xc0e')),_0x216eb2=_0x185e4d(_0x271be6('0x787')),_0x57914a=Object['getOwnPropertySymbols']?function(_0x476444){for(var _0x43db1a=[];_0x476444;)_0x4be299(_0x43db1a,_0x2ec59d(_0x476444)),_0x476444=_0x29615d(_0x476444);return _0x43db1a;}:_0x216eb2;_0x1b8593[_0x271be6('0x64')]=_0x57914a;},{'./_arrayPush':0x82,'./_getPrototype':0xc5,'./_getSymbols':0xc7,'./stubArray':0x11f}],0xc9:[function(_0x2110b4,_0x5c815f,_0x184216){var _0x3cbf5e=_0x548f48,_0x5d6305=_0x2110b4('./_DataView'),_0x191bce=_0x2110b4(_0x3cbf5e('0x1166')),_0x24e097=_0x2110b4(_0x3cbf5e('0x1132')),_0x56d3ad=_0x2110b4(_0x3cbf5e('0x90a')),_0x1d79bc=_0x2110b4(_0x3cbf5e('0x102a')),_0x201837=_0x2110b4(_0x3cbf5e('0x840')),_0x154b6b=_0x2110b4(_0x3cbf5e('0x12')),_0x3a435f=_0x154b6b(_0x5d6305),_0x535ae3=_0x154b6b(_0x191bce),_0x41e2ce=_0x154b6b(_0x24e097),_0x3230e6=_0x154b6b(_0x56d3ad),_0x5d42ae=_0x154b6b(_0x1d79bc),_0xe94677=_0x201837;(_0x5d6305&&_0x3cbf5e('0xfeb')!=_0xe94677(new _0x5d6305(new ArrayBuffer(0x1)))||_0x191bce&&'[object\x20Map]'!=_0xe94677(new _0x191bce())||_0x24e097&&_0x3cbf5e('0x7df')!=_0xe94677(_0x24e097[_0x3cbf5e('0xa7')]())||_0x56d3ad&&_0x3cbf5e('0x2da')!=_0xe94677(new _0x56d3ad())||_0x1d79bc&&'[object\x20WeakMap]'!=_0xe94677(new _0x1d79bc()))&&(_0xe94677=function(_0x27dc14){var _0x2dec90=_0x3cbf5e,_0x48ea9e=_0x201837(_0x27dc14),_0x314e9b='[object\x20Object]'==_0x48ea9e?_0x27dc14[_0x2dec90('0xad1')]:void 0x0,_0x57a872=_0x314e9b?_0x154b6b(_0x314e9b):'';if(_0x57a872)switch(_0x57a872){case _0x3a435f:return _0x2dec90('0xfeb');case _0x535ae3:return _0x2dec90('0x979');case _0x41e2ce:return'[object\x20Promise]';case _0x3230e6:return _0x2dec90('0x2da');case _0x5d42ae:return _0x2dec90('0x550');}return _0x48ea9e;}),_0x5c815f[_0x3cbf5e('0x64')]=_0xe94677;},{'./_DataView':0x71,'./_Map':0x74,'./_Promise':0x76,'./_Set':0x77,'./_WeakMap':0x7c,'./_baseGetTag':0x91,'./_toSource':0xfd}],0xca:[function(_0x4eedb9,_0x3a621f,_0x135cae){var _0x3be459=_0x548f48;_0x3a621f[_0x3be459('0x64')]=function(_0x24dc5a,_0x594bfd){return null==_0x24dc5a?void 0x0:_0x24dc5a[_0x594bfd];};},{}],0xcb:[function(_0x13416d,_0x3d80c8,_0x338d5b){var _0x29f150=_0x548f48,_0x574ec4=_0x13416d(_0x29f150('0xf33')),_0x29dfd9=_0x13416d('./isArguments'),_0x269f08=_0x13416d(_0x29f150('0x1b6')),_0x313982=_0x13416d(_0x29f150('0x735')),_0xb11474=_0x13416d(_0x29f150('0x680')),_0x59b6cb=_0x13416d(_0x29f150('0x16'));_0x3d80c8['exports']=function(_0x2e37e0,_0x5d2d8e,_0xc2fece){var _0x40f6ba=_0x29f150;for(var _0x5d4720=-0x1,_0x6ddee4=(_0x5d2d8e=_0x574ec4(_0x5d2d8e,_0x2e37e0))['length'],_0x38960e=!0x1;++_0x5d4720<_0x6ddee4;){var _0x395d89=_0x59b6cb(_0x5d2d8e[_0x5d4720]);if(!(_0x38960e=null!=_0x2e37e0&&_0xc2fece(_0x2e37e0,_0x395d89)))break;_0x2e37e0=_0x2e37e0[_0x395d89];}return _0x38960e||++_0x5d4720!=_0x6ddee4?_0x38960e:!!(_0x6ddee4=null==_0x2e37e0?0x0:_0x2e37e0[_0x40f6ba('0x13')])&&_0xb11474(_0x6ddee4)&&_0x313982(_0x395d89,_0x6ddee4)&&(_0x269f08(_0x2e37e0)||_0x29dfd9(_0x2e37e0));};},{'./_castPath':0xac,'./_isIndex':0xd4,'./_toKey':0xfc,'./isArguments':0x108,'./isArray':0x109,'./isLength':0x10e}],0xcc:[function(_0x1e338d,_0x24e613,_0x27c801){var _0x4ef8b6=_0x548f48,_0x40254a=_0x1e338d(_0x4ef8b6('0x7f2'));_0x24e613[_0x4ef8b6('0x64')]=function(){var _0x2058b3=_0x4ef8b6;this[_0x2058b3('0x1f3')]=_0x40254a?_0x40254a(null):{},this['size']=0x0;};},{'./_nativeCreate':0xe8}],0xcd:[function(_0x17c14c,_0x578ad0,_0x43b155){var _0x3dc1e1=_0x548f48;_0x578ad0[_0x3dc1e1('0x64')]=function(_0x378734){var _0x54991b=_0x3dc1e1,_0x350511=this['has'](_0x378734)&&delete this[_0x54991b('0x1f3')][_0x378734];return this[_0x54991b('0x10a2')]-=_0x350511?0x1:0x0,_0x350511;};},{}],0xce:[function(_0x1cfd2f,_0x26d6da,_0x2fc428){var _0x236984=_0x548f48,_0x54b930=_0x1cfd2f(_0x236984('0x7f2')),_0xd976ea=Object[_0x236984('0xe02')][_0x236984('0xe9c')];_0x26d6da[_0x236984('0x64')]=function(_0x1706b8){var _0x5ecdf5=_0x236984,_0x47d968=this[_0x5ecdf5('0x1f3')];if(_0x54b930){var _0x1d3629=_0x47d968[_0x1706b8];return _0x5ecdf5('0x64f')===_0x1d3629?void 0x0:_0x1d3629;}return _0xd976ea[_0x5ecdf5('0xfd2')](_0x47d968,_0x1706b8)?_0x47d968[_0x1706b8]:void 0x0;};},{'./_nativeCreate':0xe8}],0xcf:[function(_0x1a2919,_0x215207,_0x58dbfc){var _0xc39950=_0x548f48,_0x56daf9=_0x1a2919(_0xc39950('0x7f2')),_0x4c9eb4=Object[_0xc39950('0xe02')][_0xc39950('0xe9c')];_0x215207[_0xc39950('0x64')]=function(_0x142a4d){var _0x48dc2a=_0xc39950,_0x3024ac=this[_0x48dc2a('0x1f3')];return _0x56daf9?void 0x0!==_0x3024ac[_0x142a4d]:_0x4c9eb4['call'](_0x3024ac,_0x142a4d);};},{'./_nativeCreate':0xe8}],0xd0:[function(_0x1b85ad,_0x55b6f2,_0x2c273a){var _0x1a7371=_0x548f48,_0x305d6e=_0x1b85ad(_0x1a7371('0x7f2'));_0x55b6f2[_0x1a7371('0x64')]=function(_0x541135,_0x500066){var _0xc24e1d=_0x1a7371,_0x453cdd=this[_0xc24e1d('0x1f3')];return this['size']+=this[_0xc24e1d('0xe5f')](_0x541135)?0x0:0x1,_0x453cdd[_0x541135]=_0x305d6e&&void 0x0===_0x500066?_0xc24e1d('0x64f'):_0x500066,this;};},{'./_nativeCreate':0xe8}],0xd1:[function(_0x23f37a,_0x3525f2,_0x1bfbe1){var _0x31df0b=_0x548f48,_0x585cc9=Object[_0x31df0b('0xe02')][_0x31df0b('0xe9c')];_0x3525f2['exports']=function(_0x5c5812){var _0x4c23bc=_0x31df0b,_0x3282bb=_0x5c5812['length'],_0x1ea6e9=new _0x5c5812[(_0x4c23bc('0xad1'))](_0x3282bb);return _0x3282bb&&_0x4c23bc('0x2fd')==typeof _0x5c5812[0x0]&&_0x585cc9[_0x4c23bc('0xfd2')](_0x5c5812,_0x4c23bc('0x64a'))&&(_0x1ea6e9[_0x4c23bc('0x64a')]=_0x5c5812['index'],_0x1ea6e9['input']=_0x5c5812['input']),_0x1ea6e9;};},{}],0xd2:[function(_0x12da6d,_0x118fed,_0x13d481){var _0x297e89=_0x548f48,_0x5130ab=_0x12da6d(_0x297e89('0x817')),_0x2813bb=_0x12da6d('./_cloneDataView'),_0x24f3ed=_0x12da6d('./_cloneRegExp'),_0x44139d=_0x12da6d(_0x297e89('0x883')),_0x49ccbe=_0x12da6d(_0x297e89('0xa11'));_0x118fed[_0x297e89('0x64')]=function(_0x8fb01b,_0xf1fcf,_0xe24bc1){var _0x8d868e=_0x297e89,_0x21b2cf=_0x8fb01b[_0x8d868e('0xad1')];switch(_0xf1fcf){case'[object\x20ArrayBuffer]':return _0x5130ab(_0x8fb01b);case'[object\x20Boolean]':case'[object\x20Date]':return new _0x21b2cf(+_0x8fb01b);case _0x8d868e('0xfeb'):return _0x2813bb(_0x8fb01b,_0xe24bc1);case _0x8d868e('0xcd6'):case _0x8d868e('0xdcc'):case _0x8d868e('0x844'):case _0x8d868e('0x3ec'):case'[object\x20Int32Array]':case'[object\x20Uint8Array]':case _0x8d868e('0xd1'):case _0x8d868e('0xc35'):case'[object\x20Uint32Array]':return _0x49ccbe(_0x8fb01b,_0xe24bc1);case'[object\x20Map]':return new _0x21b2cf();case _0x8d868e('0x5f4'):case _0x8d868e('0x6ff'):return new _0x21b2cf(_0x8fb01b);case _0x8d868e('0xa6'):return _0x24f3ed(_0x8fb01b);case _0x8d868e('0x2da'):return new _0x21b2cf();case'[object\x20Symbol]':return _0x44139d(_0x8fb01b);}};},{'./_cloneArrayBuffer':0xad,'./_cloneDataView':0xaf,'./_cloneRegExp':0xb0,'./_cloneSymbol':0xb1,'./_cloneTypedArray':0xb2}],0xd3:[function(_0x14355e,_0x4129a8,_0x555ca4){var _0x11b9c9=_0x548f48,_0x4f8b0f=_0x14355e(_0x11b9c9('0xa98')),_0x5725ed=_0x14355e(_0x11b9c9('0x197')),_0xdcca17=_0x14355e('./_isPrototype');_0x4129a8[_0x11b9c9('0x64')]=function(_0x104b39){var _0x382c0a=_0x11b9c9;return _0x382c0a('0x106c')!=typeof _0x104b39[_0x382c0a('0xad1')]||_0xdcca17(_0x104b39)?{}:_0x4f8b0f(_0x5725ed(_0x104b39));};},{'./_baseCreate':0x8b,'./_getPrototype':0xc5,'./_isPrototype':0xd9}],0xd4:[function(_0x3b5148,_0x5bb819,_0x31a349){var _0x251b96=_0x548f48,_0x494011=/^(?:0|[1-9]\d*)$/;_0x5bb819[_0x251b96('0x64')]=function(_0x2ba3e5,_0x1d65d6){var _0x46237b=_0x251b96,_0x9b963b=typeof _0x2ba3e5;return!!(_0x1d65d6=null==_0x1d65d6?0x1fffffffffffff:_0x1d65d6)&&(_0x46237b('0x67b')==_0x9b963b||_0x46237b('0x43c')!=_0x9b963b&&_0x494011[_0x46237b('0x2c3')](_0x2ba3e5))&&_0x2ba3e5>-0x1&&_0x2ba3e5%0x1==0x0&&_0x2ba3e5<_0x1d65d6;};},{}],0xd5:[function(_0x2e4bee,_0x4fff85,_0x3700a1){var _0x3d854f=_0x548f48,_0x54ae94=_0x2e4bee('./eq'),_0xfecd39=_0x2e4bee(_0x3d854f('0x6ec')),_0x17bb2c=_0x2e4bee(_0x3d854f('0x735')),_0xbc778e=_0x2e4bee(_0x3d854f('0x52'));_0x4fff85[_0x3d854f('0x64')]=function(_0x4ae83d,_0x5e9390,_0x39ae54){var _0x453272=_0x3d854f;if(!_0xbc778e(_0x39ae54))return!0x1;var _0x8a77df=typeof _0x5e9390;return!!(_0x453272('0x67b')==_0x8a77df?_0xfecd39(_0x39ae54)&&_0x17bb2c(_0x5e9390,_0x39ae54[_0x453272('0x13')]):_0x453272('0x2fd')==_0x8a77df&&_0x5e9390 in _0x39ae54)&&_0x54ae94(_0x39ae54[_0x5e9390],_0x4ae83d);};},{'./_isIndex':0xd4,'./eq':0x102,'./isArrayLike':0x10a,'./isObject':0x110}],0xd6:[function(_0x2cfd1f,_0x4e08f2,_0x4c4f25){var _0x37e766=_0x548f48,_0x78eacd=_0x2cfd1f(_0x37e766('0x1b6')),_0x5bc352=_0x2cfd1f(_0x37e766('0xa9')),_0x2aeff8=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_0x551190=/^\w*$/;_0x4e08f2[_0x37e766('0x64')]=function(_0x54264a,_0x52d978){var _0x22adb4=_0x37e766;if(_0x78eacd(_0x54264a))return!0x1;var _0x220d91=typeof _0x54264a;return!(_0x22adb4('0x67b')!=_0x220d91&&_0x22adb4('0x43c')!=_0x220d91&&_0x22adb4('0x3a4')!=_0x220d91&&null!=_0x54264a&&!_0x5bc352(_0x54264a))||(_0x551190[_0x22adb4('0x2c3')](_0x54264a)||!_0x2aeff8[_0x22adb4('0x2c3')](_0x54264a)||null!=_0x52d978&&_0x54264a in Object(_0x52d978));};},{'./isArray':0x109,'./isSymbol':0x115}],0xd7:[function(_0x5972fe,_0x3046e9,_0x160570){var _0x3f637e=_0x548f48;_0x3046e9[_0x3f637e('0x64')]=function(_0x52c541){var _0x1b93cd=_0x3f637e,_0x562a1d=typeof _0x52c541;return'string'==_0x562a1d||_0x1b93cd('0x67b')==_0x562a1d||'symbol'==_0x562a1d||_0x1b93cd('0x3a4')==_0x562a1d?'__proto__'!==_0x52c541:null===_0x52c541;};},{}],0xd8:[function(_0x566332,_0x1d4d5c,_0x53be8c){var _0x110ee4=_0x548f48,_0x522951,_0x1f7330=_0x566332(_0x110ee4('0x63f')),_0x32bb68=(_0x522951=/[^.]+$/[_0x110ee4('0x3f8')](_0x1f7330&&_0x1f7330[_0x110ee4('0x110e')]&&_0x1f7330[_0x110ee4('0x110e')][_0x110ee4('0x728')]||''))?'Symbol(src)_1.'+_0x522951:'';_0x1d4d5c['exports']=function(_0x29445c){return!!_0x32bb68&&_0x32bb68 in _0x29445c;};},{'./_coreJsData':0xb7}],0xd9:[function(_0x2411de,_0x2d31c8,_0x3da5c9){var _0x3b9b30=Object['prototype'];_0x2d31c8['exports']=function(_0x271818){var _0x25f22e=_0x5376,_0x8e7e0d=_0x271818&&_0x271818[_0x25f22e('0xad1')];return _0x271818===('function'==typeof _0x8e7e0d&&_0x8e7e0d[_0x25f22e('0xe02')]||_0x3b9b30);};},{}],0xda:[function(_0x3b19de,_0x195a94,_0x453a6a){var _0x518f4f=_0x548f48,_0x17c8b6=_0x3b19de(_0x518f4f('0x52'));_0x195a94[_0x518f4f('0x64')]=function(_0x3862ae){return _0x3862ae==_0x3862ae&&!_0x17c8b6(_0x3862ae);};},{'./isObject':0x110}],0xdb:[function(_0x273e5b,_0x44f3df,_0x15107e){var _0xbfac44=_0x548f48;_0x44f3df[_0xbfac44('0x64')]=function(){var _0x262b9f=_0xbfac44;this[_0x262b9f('0x1f3')]=[],this[_0x262b9f('0x10a2')]=0x0;};},{}],0xdc:[function(_0x34ea1f,_0x443567,_0x3cbc4a){var _0x3685d1=_0x548f48,_0x293692=_0x34ea1f(_0x3685d1('0x9b8')),_0x5ee299=Array[_0x3685d1('0xe02')][_0x3685d1('0xfbd')];_0x443567['exports']=function(_0x1c4b90){var _0x2e393e=_0x3685d1,_0x1af402=this[_0x2e393e('0x1f3')],_0x31c671=_0x293692(_0x1af402,_0x1c4b90);return!(_0x31c671<0x0)&&(_0x31c671==_0x1af402[_0x2e393e('0x13')]-0x1?_0x1af402[_0x2e393e('0x2a3')]():_0x5ee299['call'](_0x1af402,_0x31c671,0x1),--this[_0x2e393e('0x10a2')],!0x0);};},{'./_assocIndexOf':0x86}],0xdd:[function(_0x251209,_0x52ac7d,_0x46d7c9){var _0x3d22e3=_0x548f48,_0x264718=_0x251209(_0x3d22e3('0x9b8'));_0x52ac7d[_0x3d22e3('0x64')]=function(_0xaae504){var _0x3d46ed=_0x3d22e3,_0x34bc29=this[_0x3d46ed('0x1f3')],_0x38f23f=_0x264718(_0x34bc29,_0xaae504);return _0x38f23f<0x0?void 0x0:_0x34bc29[_0x38f23f][0x1];};},{'./_assocIndexOf':0x86}],0xde:[function(_0x3d268d,_0x49e635,_0x503069){var _0xdb8c35=_0x548f48,_0x49c1af=_0x3d268d(_0xdb8c35('0x9b8'));_0x49e635[_0xdb8c35('0x64')]=function(_0x1e490c){var _0x201cbd=_0xdb8c35;return _0x49c1af(this[_0x201cbd('0x1f3')],_0x1e490c)>-0x1;};},{'./_assocIndexOf':0x86}],0xdf:[function(_0x318825,_0x1576b1,_0x4fcf7f){var _0x4e8f2e=_0x548f48,_0x1ed3b6=_0x318825('./_assocIndexOf');_0x1576b1[_0x4e8f2e('0x64')]=function(_0x180d34,_0x421dbd){var _0x441b23=_0x4e8f2e,_0x386473=this[_0x441b23('0x1f3')],_0x4fad26=_0x1ed3b6(_0x386473,_0x180d34);return _0x4fad26<0x0?(++this[_0x441b23('0x10a2')],_0x386473['push']([_0x180d34,_0x421dbd])):_0x386473[_0x4fad26][0x1]=_0x421dbd,this;};},{'./_assocIndexOf':0x86}],0xe0:[function(_0x440e68,_0x301c0a,_0x374a1e){var _0xd0509=_0x548f48,_0x296f32=_0x440e68(_0xd0509('0x428')),_0x160754=_0x440e68(_0xd0509('0xf76')),_0x32560a=_0x440e68(_0xd0509('0x1166'));_0x301c0a['exports']=function(){var _0x3536df=_0xd0509;this[_0x3536df('0x10a2')]=0x0,this['__data__']={'hash':new _0x296f32(),'map':new(_0x32560a||_0x160754)(),'string':new _0x296f32()};};},{'./_Hash':0x72,'./_ListCache':0x73,'./_Map':0x74}],0xe1:[function(_0x3c2285,_0x6073a4,_0x5e1589){var _0x2cdd57=_0x548f48,_0x595d5c=_0x3c2285(_0x2cdd57('0x2bf'));_0x6073a4[_0x2cdd57('0x64')]=function(_0x5911f0){var _0x4ad36e=_0x2cdd57,_0x5e4785=_0x595d5c(this,_0x5911f0)[_0x4ad36e('0x41d')](_0x5911f0);return this[_0x4ad36e('0x10a2')]-=_0x5e4785?0x1:0x0,_0x5e4785;};},{'./_getMapData':0xc2}],0xe2:[function(_0x429db1,_0x90d846,_0xe20200){var _0x4cf4ff=_0x548f48,_0x94c878=_0x429db1(_0x4cf4ff('0x2bf'));_0x90d846['exports']=function(_0x4b4fad){var _0x3b5bbc=_0x4cf4ff;return _0x94c878(this,_0x4b4fad)[_0x3b5bbc('0xd12')](_0x4b4fad);};},{'./_getMapData':0xc2}],0xe3:[function(_0x6d58a0,_0xac58fb,_0x2c99a1){var _0x204d35=_0x548f48,_0x5c2e71=_0x6d58a0(_0x204d35('0x2bf'));_0xac58fb[_0x204d35('0x64')]=function(_0x3a84fa){return _0x5c2e71(this,_0x3a84fa)['has'](_0x3a84fa);};},{'./_getMapData':0xc2}],0xe4:[function(_0x3f10bf,_0x2f4b69,_0x3c8890){var _0x2afaa4=_0x548f48,_0x10833e=_0x3f10bf('./_getMapData');_0x2f4b69[_0x2afaa4('0x64')]=function(_0x7cdac9,_0xc07e96){var _0x4d6d6f=_0x2afaa4,_0x446476=_0x10833e(this,_0x7cdac9),_0x468eb9=_0x446476['size'];return _0x446476[_0x4d6d6f('0x24a')](_0x7cdac9,_0xc07e96),this[_0x4d6d6f('0x10a2')]+=_0x446476[_0x4d6d6f('0x10a2')]==_0x468eb9?0x0:0x1,this;};},{'./_getMapData':0xc2}],0xe5:[function(_0x4c80f7,_0x315b22,_0x451a81){_0x315b22['exports']=function(_0x76f974){var _0x166de7=_0x5376,_0x20efff=-0x1,_0x41637c=Array(_0x76f974[_0x166de7('0x10a2')]);return _0x76f974[_0x166de7('0xb77')](function(_0x653b5,_0x316778){_0x41637c[++_0x20efff]=[_0x316778,_0x653b5];}),_0x41637c;};},{}],0xe6:[function(_0x3df47a,_0x29fe13,_0x315dff){var _0x54de11=_0x548f48;_0x29fe13[_0x54de11('0x64')]=function(_0x1a2652,_0x106d9d){return function(_0x34202d){return null!=_0x34202d&&(_0x34202d[_0x1a2652]===_0x106d9d&&(void 0x0!==_0x106d9d||_0x1a2652 in Object(_0x34202d)));};};},{}],0xe7:[function(_0x4d4e33,_0x2d9f8d,_0x48c878){var _0x4adaff=_0x548f48,_0x4e5dee=_0x4d4e33(_0x4adaff('0xa06'));_0x2d9f8d[_0x4adaff('0x64')]=function(_0x33ac37){var _0x9e8106=_0x4adaff,_0xe0dba5=_0x4e5dee(_0x33ac37,function(_0x5daad7){var _0x54a0de=_0x5376;return 0x1f4===_0x3fa1ab[_0x54a0de('0x10a2')]&&_0x3fa1ab['clear'](),_0x5daad7;}),_0x3fa1ab=_0xe0dba5[_0x9e8106('0x28a')];return _0xe0dba5;};},{'./memoize':0x11b}],0xe8:[function(_0x4a84b7,_0x5c4727,_0x166225){var _0x11be89=_0x548f48,_0x30b23e=_0x4a84b7(_0x11be89('0x553'))(Object,_0x11be89('0xbd0'));_0x5c4727[_0x11be89('0x64')]=_0x30b23e;},{'./_getNative':0xc4}],0xe9:[function(_0x453717,_0x273338,_0x4e54e8){var _0x351fe8=_0x548f48,_0x12b6b8=_0x453717(_0x351fe8('0x5d1'))(Object[_0x351fe8('0x110e')],Object);_0x273338[_0x351fe8('0x64')]=_0x12b6b8;},{'./_overArg':0xed}],0xea:[function(_0x38b055,_0x27bb12,_0x4bec34){var _0x394deb=_0x548f48;_0x27bb12[_0x394deb('0x64')]=function(_0x312e88){var _0x4580ee=[];if(null!=_0x312e88)for(var _0x465e28 in Object(_0x312e88))_0x4580ee['push'](_0x465e28);return _0x4580ee;};},{}],0xeb:[function(_0x2a7f12,_0x1cfd3a,_0x47060f){var _0x177f6a=_0x548f48,_0x223f94=_0x2a7f12(_0x177f6a('0x242')),_0x3a3f4e=_0x177f6a('0xb3f')==typeof _0x47060f&&_0x47060f&&!_0x47060f[_0x177f6a('0x5a')]&&_0x47060f,_0x21ba9d=_0x3a3f4e&&'object'==typeof _0x1cfd3a&&_0x1cfd3a&&!_0x1cfd3a[_0x177f6a('0x5a')]&&_0x1cfd3a,_0x95c993=_0x21ba9d&&_0x21ba9d[_0x177f6a('0x64')]===_0x3a3f4e&&_0x223f94[_0x177f6a('0xc3a')],_0x429521=function(){var _0x30b391=_0x177f6a;try{var _0x2716ee=_0x21ba9d&&_0x21ba9d[_0x30b391('0x1112')]&&_0x21ba9d[_0x30b391('0x1112')](_0x30b391('0xe8e'))[_0x30b391('0xd6e')];return _0x2716ee||_0x95c993&&_0x95c993[_0x30b391('0x991')]&&_0x95c993[_0x30b391('0x991')](_0x30b391('0xe8e'));}catch(_0x3a6a40){}}();_0x1cfd3a['exports']=_0x429521;},{'./_freeGlobal':0xbf}],0xec:[function(_0x643d3f,_0x4bb28f,_0x348a65){var _0x236937=_0x548f48,_0x2262d2=Object['prototype'][_0x236937('0xb6d')];_0x4bb28f[_0x236937('0x64')]=function(_0x421cd2){return _0x2262d2['call'](_0x421cd2);};},{}],0xed:[function(_0x1f12b9,_0x373534,_0x2ddc06){var _0x2124f3=_0x548f48;_0x373534[_0x2124f3('0x64')]=function(_0x856952,_0xd014ca){return function(_0x3d37d2){return _0x856952(_0xd014ca(_0x3d37d2));};};},{}],0xee:[function(_0x4d6594,_0x2dabb9,_0x255108){var _0x32c6c0=_0x548f48,_0xa82365=_0x4d6594('./_apply'),_0x5c7874=Math['max'];_0x2dabb9[_0x32c6c0('0x64')]=function(_0x1d09ff,_0x48694b,_0x54fb25){var _0x53852e=_0x32c6c0;return _0x48694b=_0x5c7874(void 0x0===_0x48694b?_0x1d09ff[_0x53852e('0x13')]-0x1:_0x48694b,0x0),function(){var _0x4e1d98=_0x53852e;for(var _0x40791a=arguments,_0x8a50ae=-0x1,_0x41c84d=_0x5c7874(_0x40791a[_0x4e1d98('0x13')]-_0x48694b,0x0),_0x339534=Array(_0x41c84d);++_0x8a50ae<_0x41c84d;)_0x339534[_0x8a50ae]=_0x40791a[_0x48694b+_0x8a50ae];_0x8a50ae=-0x1;for(var _0x5f25cb=Array(_0x48694b+0x1);++_0x8a50ae<_0x48694b;)_0x5f25cb[_0x8a50ae]=_0x40791a[_0x8a50ae];return _0x5f25cb[_0x48694b]=_0x54fb25(_0x339534),_0xa82365(_0x1d09ff,this,_0x5f25cb);};};},{'./_apply':0x7d}],0xef:[function(_0x17e2d1,_0x55767c,_0x4aa23e){var _0x206514=_0x548f48,_0x37958e=_0x17e2d1(_0x206514('0x242')),_0x5ccc7a=_0x206514('0xb3f')==typeof self&&self&&self[_0x206514('0xe25')]===Object&&self,_0x39d5b7=_0x37958e||_0x5ccc7a||Function(_0x206514('0x9e6'))();_0x55767c[_0x206514('0x64')]=_0x39d5b7;},{'./_freeGlobal':0xbf}],0xf0:[function(_0x4bc122,_0x2ce99a,_0x2d2a85){var _0x239b9a=_0x548f48;_0x2ce99a[_0x239b9a('0x64')]=function(_0x49b429,_0x335ec9){var _0x27c88b=_0x239b9a;if(('constructor'!==_0x335ec9||_0x27c88b('0x106c')!=typeof _0x49b429[_0x335ec9])&&_0x27c88b('0x112c')!=_0x335ec9)return _0x49b429[_0x335ec9];};},{}],0xf1:[function(_0x203f40,_0x279862,_0x36e50d){var _0xdd9dc6=_0x548f48;_0x279862[_0xdd9dc6('0x64')]=function(_0x15c7ba){var _0x436564=_0xdd9dc6;return this['__data__']['set'](_0x15c7ba,_0x436564('0x64f')),this;};},{}],0xf2:[function(_0x25be28,_0xe09884,_0xb3c6e9){var _0x21d9c3=_0x548f48;_0xe09884[_0x21d9c3('0x64')]=function(_0x23db2a){return this['__data__']['has'](_0x23db2a);};},{}],0xf3:[function(_0x4b935e,_0x576aa7,_0x266bc6){var _0x476191=_0x548f48;_0x576aa7[_0x476191('0x64')]=function(_0x1c769e){var _0x205d99=-0x1,_0x1ca4ee=Array(_0x1c769e['size']);return _0x1c769e['forEach'](function(_0x3d2bac){_0x1ca4ee[++_0x205d99]=_0x3d2bac;}),_0x1ca4ee;};},{}],0xf4:[function(_0x3778bf,_0x3bedfe,_0x2b75ad){var _0x4030b7=_0x548f48,_0x96901b=_0x3778bf(_0x4030b7('0xcf2')),_0x478ec4=_0x3778bf(_0x4030b7('0x67c'))(_0x96901b);_0x3bedfe[_0x4030b7('0x64')]=_0x478ec4;},{'./_baseSetToString':0xa6,'./_shortOut':0xf5}],0xf5:[function(_0x2c77bf,_0x1dff06,_0x3298be){var _0x48d99f=_0x548f48,_0x10155c=Date[_0x48d99f('0x313')];_0x1dff06[_0x48d99f('0x64')]=function(_0x54b954){var _0x4755fc=0x0,_0x54bf86=0x0;return function(){var _0x2db39d=_0x5376,_0x139473=_0x10155c(),_0x2b563c=0x10-(_0x139473-_0x54bf86);if(_0x54bf86=_0x139473,_0x2b563c>0x0){if(++_0x4755fc>=0x320)return arguments[0x0];}else _0x4755fc=0x0;return _0x54b954[_0x2db39d('0x2be')](void 0x0,arguments);};};},{}],0xf6:[function(_0x54309b,_0x282c93,_0x3e7fd2){var _0xa15bd1=_0x548f48,_0x14aad7=_0x54309b(_0xa15bd1('0xf76'));_0x282c93[_0xa15bd1('0x64')]=function(){var _0x2312ad=_0xa15bd1;this[_0x2312ad('0x1f3')]=new _0x14aad7(),this['size']=0x0;};},{'./_ListCache':0x73}],0xf7:[function(_0x185f28,_0x390101,_0x4d8774){var _0x224a19=_0x548f48;_0x390101[_0x224a19('0x64')]=function(_0xe5a1ee){var _0x3ab860=_0x224a19,_0x195d11=this[_0x3ab860('0x1f3')],_0x3d6d20=_0x195d11[_0x3ab860('0x41d')](_0xe5a1ee);return this['size']=_0x195d11['size'],_0x3d6d20;};},{}],0xf8:[function(_0xa27be3,_0x2b5f05,_0x2958e5){var _0x4cd4e7=_0x548f48;_0x2b5f05[_0x4cd4e7('0x64')]=function(_0x517721){var _0x405f01=_0x4cd4e7;return this['__data__'][_0x405f01('0xd12')](_0x517721);};},{}],0xf9:[function(_0x5e45b3,_0x5aa9ad,_0x36a1c0){var _0x5524f5=_0x548f48;_0x5aa9ad[_0x5524f5('0x64')]=function(_0x365935){var _0x4623f7=_0x5524f5;return this[_0x4623f7('0x1f3')][_0x4623f7('0xe5f')](_0x365935);};},{}],0xfa:[function(_0xf95764,_0x348535,_0x5acce7){var _0x42a707=_0x548f48,_0x3dc830=_0xf95764(_0x42a707('0xf76')),_0x71c9aa=_0xf95764(_0x42a707('0x1166')),_0x58b8cc=_0xf95764(_0x42a707('0xf8c'));_0x348535[_0x42a707('0x64')]=function(_0xeecd0e,_0x26a212){var _0x420f46=_0x42a707,_0x24078d=this['__data__'];if(_0x24078d instanceof _0x3dc830){var _0x168018=_0x24078d[_0x420f46('0x1f3')];if(!_0x71c9aa||_0x168018[_0x420f46('0x13')]<0xc7)return _0x168018[_0x420f46('0x91b')]([_0xeecd0e,_0x26a212]),this[_0x420f46('0x10a2')]=++_0x24078d[_0x420f46('0x10a2')],this;_0x24078d=this[_0x420f46('0x1f3')]=new _0x58b8cc(_0x168018);}return _0x24078d['set'](_0xeecd0e,_0x26a212),this[_0x420f46('0x10a2')]=_0x24078d['size'],this;};},{'./_ListCache':0x73,'./_Map':0x74,'./_MapCache':0x75}],0xfb:[function(_0x1f4d3c,_0x3d83da,_0x2f83c4){var _0x146dd9=_0x548f48,_0x5a670c=_0x1f4d3c(_0x146dd9('0x18d')),_0x4e7c29=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_0x355ae7=/\\(\\)?/g,_0x3636d8=_0x5a670c(function(_0x395b0c){var _0x204fb9=_0x146dd9,_0x55b375=[];return 0x2e===_0x395b0c[_0x204fb9('0xd66')](0x0)&&_0x55b375['push'](''),_0x395b0c['replace'](_0x4e7c29,function(_0x49c8bc,_0x2dfa37,_0x4ed015,_0x1b7c6d){var _0xf4c96=_0x204fb9;_0x55b375[_0xf4c96('0x91b')](_0x4ed015?_0x1b7c6d[_0xf4c96('0xd06')](_0x355ae7,'$1'):_0x2dfa37||_0x49c8bc);}),_0x55b375;});_0x3d83da[_0x146dd9('0x64')]=_0x3636d8;},{'./_memoizeCapped':0xe7}],0xfc:[function(_0x4514c7,_0x1c335a,_0x561f29){var _0x38e8e2=_0x548f48,_0x2558fc=_0x4514c7(_0x38e8e2('0xa9'));_0x1c335a[_0x38e8e2('0x64')]=function(_0x34d75d){var _0x5ac9b7=_0x38e8e2;if(_0x5ac9b7('0x2fd')==typeof _0x34d75d||_0x2558fc(_0x34d75d))return _0x34d75d;var _0x20e7c0=_0x34d75d+'';return'0'==_0x20e7c0&&0x1/_0x34d75d==-0x1/0x0?'-0':_0x20e7c0;};},{'./isSymbol':0x115}],0xfd:[function(_0xc2a02e,_0x1edd50,_0x3f7658){var _0x5b9a8c=_0x548f48,_0x484d38=Function[_0x5b9a8c('0xe02')]['toString'];_0x1edd50[_0x5b9a8c('0x64')]=function(_0x516cf9){var _0x1496cc=_0x5b9a8c;if(null!=_0x516cf9){try{return _0x484d38[_0x1496cc('0xfd2')](_0x516cf9);}catch(_0x4febc3){}try{return _0x516cf9+'';}catch(_0x431383){}}return'';};},{}],0xfe:[function(_0x1f7ce3,_0x14992d,_0x3306f6){var _0x1bc605=_0x548f48,_0x30c334=_0x1f7ce3(_0x1bc605('0xd73'));_0x14992d[_0x1bc605('0x64')]=function(_0x1b69d8){return _0x30c334(_0x1b69d8,0x5);};},{'./_baseClone':0x8a}],0xff:[function(_0x118f08,_0x18a067,_0x30ca9b){var _0x3d0962=_0x548f48;_0x18a067[_0x3d0962('0x64')]=function(_0x40d757){return function(){return _0x40d757;};};},{}],0x100:[function(_0x13dc0f,_0x12ac05,_0x1cc47c){var _0x461745=_0x548f48,_0x5e443e=_0x13dc0f('./isObject'),_0x233548=_0x13dc0f(_0x461745('0x8f2')),_0x33b8d1=_0x13dc0f(_0x461745('0x1098')),_0x256383=Math[_0x461745('0xa0d')],_0x17696c=Math[_0x461745('0xd3f')];_0x12ac05['exports']=function(_0xc7f97a,_0x60421c,_0x2cecfa){var _0x46bcee=_0x461745,_0x523021,_0xd1ff9a,_0x4b13d5,_0x202fd2,_0x551a70,_0x81cea7,_0x3a343a=0x0,_0x3ac63d=!0x1,_0xc2de51=!0x1,_0x306290=!0x0;if('function'!=typeof _0xc7f97a)throw new TypeError(_0x46bcee('0x25f'));function _0x28aab3(_0x4ca41e){var _0x510c14=_0x46bcee,_0x254a52=_0x523021,_0x277a59=_0xd1ff9a;return _0x523021=_0xd1ff9a=void 0x0,_0x3a343a=_0x4ca41e,_0x202fd2=_0xc7f97a[_0x510c14('0x2be')](_0x277a59,_0x254a52);}function _0x249fe1(_0x43dc85){return _0x3a343a=_0x43dc85,_0x551a70=setTimeout(_0xa09976,_0x60421c),_0x3ac63d?_0x28aab3(_0x43dc85):_0x202fd2;}function _0x5974cd(_0x5b4efe){var _0x475ec4=_0x5b4efe-_0x81cea7;return void 0x0===_0x81cea7||_0x475ec4>=_0x60421c||_0x475ec4<0x0||_0xc2de51&&_0x5b4efe-_0x3a343a>=_0x4b13d5;}function _0xa09976(){var _0x2d6b28=_0x233548();if(_0x5974cd(_0x2d6b28))return _0x3dfe47(_0x2d6b28);_0x551a70=setTimeout(_0xa09976,function(_0xc0f464){var _0x181212=_0x60421c-(_0xc0f464-_0x81cea7);return _0xc2de51?_0x17696c(_0x181212,_0x4b13d5-(_0xc0f464-_0x3a343a)):_0x181212;}(_0x2d6b28));}function _0x3dfe47(_0x5927a5){return _0x551a70=void 0x0,_0x306290&&_0x523021?_0x28aab3(_0x5927a5):(_0x523021=_0xd1ff9a=void 0x0,_0x202fd2);}function _0x33badc(){var _0x3e0a96=_0x233548(),_0x16e70f=_0x5974cd(_0x3e0a96);if(_0x523021=arguments,_0xd1ff9a=this,_0x81cea7=_0x3e0a96,_0x16e70f){if(void 0x0===_0x551a70)return _0x249fe1(_0x81cea7);if(_0xc2de51)return clearTimeout(_0x551a70),_0x551a70=setTimeout(_0xa09976,_0x60421c),_0x28aab3(_0x81cea7);}return void 0x0===_0x551a70&&(_0x551a70=setTimeout(_0xa09976,_0x60421c)),_0x202fd2;}return _0x60421c=_0x33b8d1(_0x60421c)||0x0,_0x5e443e(_0x2cecfa)&&(_0x3ac63d=!!_0x2cecfa[_0x46bcee('0x7cc')],_0x4b13d5=(_0xc2de51=_0x46bcee('0x9e4')in _0x2cecfa)?_0x256383(_0x33b8d1(_0x2cecfa['maxWait'])||0x0,_0x60421c):_0x4b13d5,_0x306290=_0x46bcee('0x2b1')in _0x2cecfa?!!_0x2cecfa['trailing']:_0x306290),_0x33badc[_0x46bcee('0x581')]=function(){void 0x0!==_0x551a70&&clearTimeout(_0x551a70),_0x3a343a=0x0,_0x523021=_0x81cea7=_0xd1ff9a=_0x551a70=void 0x0;},_0x33badc[_0x46bcee('0x7fd')]=function(){return void 0x0===_0x551a70?_0x202fd2:_0x3dfe47(_0x233548());},_0x33badc;};},{'./isObject':0x110,'./now':0x11d,'./toNumber':0x122}],0x101:[function(_0x52bfb4,_0x36d18f,_0x16cb5b){var _0x5e0f8f=_0x548f48;_0x36d18f[_0x5e0f8f('0x64')]=_0x52bfb4(_0x5e0f8f('0x27d'));},{'./forEach':0x103}],0x102:[function(_0x4f1e8e,_0x11f57b,_0x5d7011){var _0x4a183f=_0x548f48;_0x11f57b[_0x4a183f('0x64')]=function(_0x555f02,_0x54da6f){return _0x555f02===_0x54da6f||_0x555f02!=_0x555f02&&_0x54da6f!=_0x54da6f;};},{}],0x103:[function(_0x4f10cf,_0x2a865f,_0x322488){var _0x42beab=_0x548f48,_0x3ffe15=_0x4f10cf('./_arrayEach'),_0x270499=_0x4f10cf('./_baseEach'),_0x11f857=_0x4f10cf(_0x42beab('0xb54')),_0x2a041e=_0x4f10cf('./isArray');_0x2a865f[_0x42beab('0x64')]=function(_0x7d8a08,_0x23ed10){return(_0x2a041e(_0x7d8a08)?_0x3ffe15:_0x270499)(_0x7d8a08,_0x11f857(_0x23ed10));};},{'./_arrayEach':0x7e,'./_baseEach':0x8c,'./_castFunction':0xab,'./isArray':0x109}],0x104:[function(_0x406665,_0x27a4c5,_0x1e5d6b){var _0x579641=_0x548f48,_0x16d4f9=_0x406665('./_baseForOwn'),_0x5de127=_0x406665(_0x579641('0xb54'));_0x27a4c5['exports']=function(_0x355c72,_0x26ebee){return _0x355c72&&_0x16d4f9(_0x355c72,_0x5de127(_0x26ebee));};},{'./_baseForOwn':0x8e,'./_castFunction':0xab}],0x105:[function(_0x54ad5f,_0x1e537f,_0x4a8fda){var _0x528b5a=_0x548f48,_0x1ad5d5=_0x54ad5f(_0x528b5a('0x4fc'));_0x1e537f[_0x528b5a('0x64')]=function(_0x21a58a,_0x57bc24,_0xad8dad){var _0x22ddc6=null==_0x21a58a?void 0x0:_0x1ad5d5(_0x21a58a,_0x57bc24);return void 0x0===_0x22ddc6?_0xad8dad:_0x22ddc6;};},{'./_baseGet':0x8f}],0x106:[function(_0x455c36,_0x26c22c,_0x51af2e){var _0x5275d1=_0x548f48,_0x2e1dce=_0x455c36(_0x5275d1('0x78c')),_0x577566=_0x455c36(_0x5275d1('0x71e'));_0x26c22c[_0x5275d1('0x64')]=function(_0xbebf9a,_0x26500e){return null!=_0xbebf9a&&_0x577566(_0xbebf9a,_0x26500e,_0x2e1dce);};},{'./_baseHasIn':0x92,'./_hasPath':0xcb}],0x107:[function(_0x103898,_0x54066c,_0x293820){var _0x53ab24=_0x548f48;_0x54066c[_0x53ab24('0x64')]=function(_0x26c97d){return _0x26c97d;};},{}],0x108:[function(_0x4bec76,_0x42d3c4,_0x22b5e7){var _0x37149a=_0x548f48,_0x5b0ff0=_0x4bec76(_0x37149a('0x423')),_0xa27653=_0x4bec76(_0x37149a('0x69e')),_0xedde2f=Object[_0x37149a('0xe02')],_0xa0acc7=_0xedde2f[_0x37149a('0xe9c')],_0x9c7134=_0xedde2f[_0x37149a('0x166')],_0x5d6106=_0x5b0ff0(function(){return arguments;}())?_0x5b0ff0:function(_0x118df4){var _0x17d59b=_0x37149a;return _0xa27653(_0x118df4)&&_0xa0acc7['call'](_0x118df4,_0x17d59b('0x109b'))&&!_0x9c7134[_0x17d59b('0xfd2')](_0x118df4,_0x17d59b('0x109b'));};_0x42d3c4[_0x37149a('0x64')]=_0x5d6106;},{'./_baseIsArguments':0x93,'./isObjectLike':0x111}],0x109:[function(_0x2d830f,_0x20b36d,_0x26bc81){var _0x5f1f0a=_0x548f48,_0x450acc=Array[_0x5f1f0a('0xb66')];_0x20b36d[_0x5f1f0a('0x64')]=_0x450acc;},{}],0x10a:[function(_0x1552d7,_0x448cde,_0x184d3b){var _0x356305=_0x548f48,_0xb8364=_0x1552d7(_0x356305('0x1ee')),_0x49b338=_0x1552d7(_0x356305('0x680'));_0x448cde[_0x356305('0x64')]=function(_0x2d5960){return null!=_0x2d5960&&_0x49b338(_0x2d5960['length'])&&!_0xb8364(_0x2d5960);};},{'./isFunction':0x10d,'./isLength':0x10e}],0x10b:[function(_0x714c61,_0x54b22c,_0x332378){var _0x5a506f=_0x548f48,_0x4a60f6=_0x714c61(_0x5a506f('0x6ec')),_0x5aa798=_0x714c61(_0x5a506f('0x69e'));_0x54b22c['exports']=function(_0x1752f8){return _0x5aa798(_0x1752f8)&&_0x4a60f6(_0x1752f8);};},{'./isArrayLike':0x10a,'./isObjectLike':0x111}],0x10c:[function(_0x2511ed,_0x54307e,_0x331ebc){var _0x453f52=_0x548f48,_0x22eece=_0x2511ed('./_root'),_0x245d24=_0x2511ed(_0x453f52('0x6da')),_0x3e636d=_0x453f52('0xb3f')==typeof _0x331ebc&&_0x331ebc&&!_0x331ebc[_0x453f52('0x5a')]&&_0x331ebc,_0x4268a4=_0x3e636d&&'object'==typeof _0x54307e&&_0x54307e&&!_0x54307e[_0x453f52('0x5a')]&&_0x54307e,_0xee3ea=_0x4268a4&&_0x4268a4[_0x453f52('0x64')]===_0x3e636d?_0x22eece[_0x453f52('0xa3c')]:void 0x0,_0x301bd3=(_0xee3ea?_0xee3ea[_0x453f52('0x1bf')]:void 0x0)||_0x245d24;_0x54307e['exports']=_0x301bd3;},{'./_root':0xef,'./stubFalse':0x120}],0x10d:[function(_0x479875,_0x5272c3,_0x38fa1c){var _0xc796fc=_0x548f48,_0x54fe47=_0x479875(_0xc796fc('0x840')),_0x409417=_0x479875('./isObject');_0x5272c3[_0xc796fc('0x64')]=function(_0x2f0069){var _0x36adfc=_0xc796fc;if(!_0x409417(_0x2f0069))return!0x1;var _0x417298=_0x54fe47(_0x2f0069);return _0x36adfc('0x639')==_0x417298||_0x36adfc('0x709')==_0x417298||'[object\x20AsyncFunction]'==_0x417298||'[object\x20Proxy]'==_0x417298;};},{'./_baseGetTag':0x91,'./isObject':0x110}],0x10e:[function(_0x5b4b66,_0x1b5f44,_0x125310){var _0x4e6771=_0x548f48;_0x1b5f44[_0x4e6771('0x64')]=function(_0xf5d225){return'number'==typeof _0xf5d225&&_0xf5d225>-0x1&&_0xf5d225%0x1==0x0&&_0xf5d225<=0x1fffffffffffff;};},{}],0x10f:[function(_0x4cc901,_0x41621e,_0x1ee9bb){var _0x42789c=_0x548f48,_0x45b441=_0x4cc901('./_baseIsMap'),_0x4b75f1=_0x4cc901('./_baseUnary'),_0x13ed0c=_0x4cc901(_0x42789c('0xb65')),_0x7927b1=_0x13ed0c&&_0x13ed0c['isMap'],_0x150dfa=_0x7927b1?_0x4b75f1(_0x7927b1):_0x45b441;_0x41621e[_0x42789c('0x64')]=_0x150dfa;},{'./_baseIsMap':0x96,'./_baseUnary':0xa9,'./_nodeUtil':0xeb}],0x110:[function(_0x4238f7,_0x13d455,_0x1a1c16){var _0x5df9f3=_0x548f48;_0x13d455[_0x5df9f3('0x64')]=function(_0x54fc65){var _0x5f4771=_0x5df9f3,_0x544bc8=typeof _0x54fc65;return null!=_0x54fc65&&('object'==_0x544bc8||_0x5f4771('0x106c')==_0x544bc8);};},{}],0x111:[function(_0x164d75,_0xc24c74,_0x526487){var _0x146627=_0x548f48;_0xc24c74[_0x146627('0x64')]=function(_0x22c384){var _0x5b65c5=_0x146627;return null!=_0x22c384&&_0x5b65c5('0xb3f')==typeof _0x22c384;};},{}],0x112:[function(_0x465f9a,_0x4a3f01,_0xc155d8){var _0x4cd90b=_0x548f48,_0x39b51f=_0x465f9a(_0x4cd90b('0x840')),_0x287416=_0x465f9a(_0x4cd90b('0x197')),_0x5bdef1=_0x465f9a(_0x4cd90b('0x69e')),_0x405ace=Function[_0x4cd90b('0xe02')],_0x4f238e=Object[_0x4cd90b('0xe02')],_0x2e9972=_0x405ace[_0x4cd90b('0xb6d')],_0x11484f=_0x4f238e['hasOwnProperty'],_0x1bf366=_0x2e9972['call'](Object);_0x4a3f01[_0x4cd90b('0x64')]=function(_0x217a12){var _0x12f1ba=_0x4cd90b;if(!_0x5bdef1(_0x217a12)||_0x12f1ba('0xe64')!=_0x39b51f(_0x217a12))return!0x1;var _0x2b0520=_0x287416(_0x217a12);if(null===_0x2b0520)return!0x0;var _0x358245=_0x11484f['call'](_0x2b0520,'constructor')&&_0x2b0520[_0x12f1ba('0xad1')];return _0x12f1ba('0x106c')==typeof _0x358245&&_0x358245 instanceof _0x358245&&_0x2e9972[_0x12f1ba('0xfd2')](_0x358245)==_0x1bf366;};},{'./_baseGetTag':0x91,'./_getPrototype':0xc5,'./isObjectLike':0x111}],0x113:[function(_0x2221d9,_0x341cd3,_0x4b8c35){var _0x406e96=_0x548f48,_0x37423c=_0x2221d9(_0x406e96('0x1148')),_0x321bf7=_0x2221d9(_0x406e96('0xd0e')),_0x35ad6e=_0x2221d9('./_nodeUtil'),_0x53be4b=_0x35ad6e&&_0x35ad6e['isSet'],_0x11e950=_0x53be4b?_0x321bf7(_0x53be4b):_0x37423c;_0x341cd3[_0x406e96('0x64')]=_0x11e950;},{'./_baseIsSet':0x99,'./_baseUnary':0xa9,'./_nodeUtil':0xeb}],0x114:[function(_0x46046b,_0x166f2a,_0x524e93){var _0x455cac=_0x548f48,_0x12d43f=_0x46046b(_0x455cac('0x840')),_0x3cc550=_0x46046b('./isArray'),_0x129df6=_0x46046b(_0x455cac('0x69e'));_0x166f2a[_0x455cac('0x64')]=function(_0x493bfb){var _0x5d997a=_0x455cac;return _0x5d997a('0x2fd')==typeof _0x493bfb||!_0x3cc550(_0x493bfb)&&_0x129df6(_0x493bfb)&&_0x5d997a('0x6ff')==_0x12d43f(_0x493bfb);};},{'./_baseGetTag':0x91,'./isArray':0x109,'./isObjectLike':0x111}],0x115:[function(_0x408ad2,_0x3cad28,_0x5adb08){var _0x947e85=_0x548f48,_0x4c5d6c=_0x408ad2(_0x947e85('0x840')),_0x304353=_0x408ad2(_0x947e85('0x69e'));_0x3cad28[_0x947e85('0x64')]=function(_0x12ece5){var _0x56472c=_0x947e85;return _0x56472c('0x43c')==typeof _0x12ece5||_0x304353(_0x12ece5)&&_0x56472c('0x87a')==_0x4c5d6c(_0x12ece5);};},{'./_baseGetTag':0x91,'./isObjectLike':0x111}],0x116:[function(_0x2756e0,_0x542a35,_0x38c700){var _0x238c09=_0x548f48,_0x3213ef=_0x2756e0(_0x238c09('0x6b2')),_0x239ff6=_0x2756e0(_0x238c09('0xd0e')),_0x391281=_0x2756e0(_0x238c09('0xb65')),_0xe5c9cf=_0x391281&&_0x391281['isTypedArray'],_0xcfb9cc=_0xe5c9cf?_0x239ff6(_0xe5c9cf):_0x3213ef;_0x542a35[_0x238c09('0x64')]=_0xcfb9cc;},{'./_baseIsTypedArray':0x9a,'./_baseUnary':0xa9,'./_nodeUtil':0xeb}],0x117:[function(_0x23cc0e,_0x61f926,_0x39a508){_0x61f926['exports']=function(_0x48aeac){return void 0x0===_0x48aeac;};},{}],0x118:[function(_0x30ae2a,_0x4b2fb8,_0x48833d){var _0x327a44=_0x548f48,_0x4c77b0=_0x30ae2a(_0x327a44('0xbf7')),_0x38ec0b=_0x30ae2a(_0x327a44('0xb2b')),_0x3cbce6=_0x30ae2a('./isArrayLike');_0x4b2fb8[_0x327a44('0x64')]=function(_0x4a3b50){return _0x3cbce6(_0x4a3b50)?_0x4c77b0(_0x4a3b50):_0x38ec0b(_0x4a3b50);};},{'./_arrayLikeKeys':0x80,'./_baseKeys':0x9c,'./isArrayLike':0x10a}],0x119:[function(_0xea1423,_0x2b152f,_0x20164d){var _0x2446b6=_0x548f48,_0x413e11=_0xea1423(_0x2446b6('0xbf7')),_0xc9eb34=_0xea1423('./_baseKeysIn'),_0x28ebca=_0xea1423(_0x2446b6('0x6ec'));_0x2b152f[_0x2446b6('0x64')]=function(_0x2618e5){return _0x28ebca(_0x2618e5)?_0x413e11(_0x2618e5,!0x0):_0xc9eb34(_0x2618e5);};},{'./_arrayLikeKeys':0x80,'./_baseKeysIn':0x9d,'./isArrayLike':0x10a}],0x11a:[function(_0xe6f380,_0x5a71e5,_0x26aa67){var _0x14d299=_0x548f48,_0x3e3f4a=_0xe6f380(_0x14d299('0x4a9')),_0x35662a=_0xe6f380(_0x14d299('0x126')),_0x51466b=_0xe6f380('./_baseMap'),_0x1d7dcd=_0xe6f380(_0x14d299('0x1b6'));_0x5a71e5[_0x14d299('0x64')]=function(_0x38f339,_0x10b99a){return(_0x1d7dcd(_0x38f339)?_0x3e3f4a:_0x51466b)(_0x38f339,_0x35662a(_0x10b99a,0x3));};},{'./_arrayMap':0x81,'./_baseIteratee':0x9b,'./_baseMap':0x9e,'./isArray':0x109}],0x11b:[function(_0x431115,_0x3bad4b,_0x3d63cc){var _0x1bb386=_0x548f48,_0x2c2e7d=_0x431115('./_MapCache');function _0xa2859a(_0x49653f,_0x3d2234){var _0x144c33=_0x5376;if(_0x144c33('0x106c')!=typeof _0x49653f||null!=_0x3d2234&&_0x144c33('0x106c')!=typeof _0x3d2234)throw new TypeError(_0x144c33('0x25f'));var _0x1802c1=function(){var _0x3143d2=_0x144c33,_0x6c6fe9=arguments,_0xd8bb85=_0x3d2234?_0x3d2234[_0x3143d2('0x2be')](this,_0x6c6fe9):_0x6c6fe9[0x0],_0x3532c4=_0x1802c1[_0x3143d2('0x28a')];if(_0x3532c4[_0x3143d2('0xe5f')](_0xd8bb85))return _0x3532c4['get'](_0xd8bb85);var _0xe7e3b0=_0x49653f['apply'](this,_0x6c6fe9);return _0x1802c1[_0x3143d2('0x28a')]=_0x3532c4[_0x3143d2('0x24a')](_0xd8bb85,_0xe7e3b0)||_0x3532c4,_0xe7e3b0;};return _0x1802c1['cache']=new(_0xa2859a[(_0x144c33('0x3'))]||_0x2c2e7d)(),_0x1802c1;}_0xa2859a['Cache']=_0x2c2e7d,_0x3bad4b[_0x1bb386('0x64')]=_0xa2859a;},{'./_MapCache':0x75}],0x11c:[function(_0x29844b,_0x546f7c,_0x1c33da){var _0x5e6f6a=_0x548f48,_0x3337b1=_0x29844b(_0x5e6f6a('0x3c5')),_0x743b57=_0x29844b(_0x5e6f6a('0xe60'))(function(_0x5c60f2,_0x634a31,_0x44bb85){_0x3337b1(_0x5c60f2,_0x634a31,_0x44bb85);});_0x546f7c[_0x5e6f6a('0x64')]=_0x743b57;},{'./_baseMerge':0xa1,'./_createAssigner':0xb8}],0x11d:[function(_0x4dbc91,_0x36b1b1,_0x5686b2){var _0x43238a=_0x548f48,_0x2a2545=_0x4dbc91(_0x43238a('0x1'));_0x36b1b1[_0x43238a('0x64')]=function(){var _0x166810=_0x43238a;return _0x2a2545['Date'][_0x166810('0x313')]();};},{'./_root':0xef}],0x11e:[function(_0x83d650,_0x3154ab,_0xc111c6){var _0x412ef6=_0x548f48,_0x2fc8ec=_0x83d650(_0x412ef6('0xde1')),_0x201a19=_0x83d650(_0x412ef6('0xfa7')),_0x322dd9=_0x83d650('./_isKey'),_0x2fb29a=_0x83d650('./_toKey');_0x3154ab[_0x412ef6('0x64')]=function(_0xae820c){return _0x322dd9(_0xae820c)?_0x2fc8ec(_0x2fb29a(_0xae820c)):_0x201a19(_0xae820c);};},{'./_baseProperty':0xa3,'./_basePropertyDeep':0xa4,'./_isKey':0xd6,'./_toKey':0xfc}],0x11f:[function(_0x15ac64,_0x2bda74,_0x17b0ef){_0x2bda74['exports']=function(){return[];};},{}],0x120:[function(_0x18db02,_0x129206,_0x48f084){var _0x392082=_0x548f48;_0x129206[_0x392082('0x64')]=function(){return!0x1;};},{}],0x121:[function(_0x2a432b,_0x10405c,_0xc20e80){var _0x23fbe0=_0x548f48,_0x1406c0=_0x2a432b(_0x23fbe0('0x116d')),_0x8a64cd=_0x2a432b('./isObject');_0x10405c['exports']=function(_0x151c4c,_0x560467,_0x3cfc3b){var _0x49c1df=_0x23fbe0,_0x1c4373=!0x0,_0x21b029=!0x0;if(_0x49c1df('0x106c')!=typeof _0x151c4c)throw new TypeError(_0x49c1df('0x25f'));return _0x8a64cd(_0x3cfc3b)&&(_0x1c4373=_0x49c1df('0x7cc')in _0x3cfc3b?!!_0x3cfc3b['leading']:_0x1c4373,_0x21b029='trailing'in _0x3cfc3b?!!_0x3cfc3b['trailing']:_0x21b029),_0x1406c0(_0x151c4c,_0x560467,{'leading':_0x1c4373,'maxWait':_0x560467,'trailing':_0x21b029});};},{'./debounce':0x100,'./isObject':0x110}],0x122:[function(_0x345907,_0x16eaa6,_0x1f270a){var _0x352a35=_0x548f48,_0x577671=_0x345907(_0x352a35('0x52')),_0x3b095a=_0x345907(_0x352a35('0xa9')),_0x2d5b10=/^\s+|\s+$/g,_0x1cdaf0=/^[-+]0x[0-9a-f]+$/i,_0x19fe7f=/^0b[01]+$/i,_0x30f3c9=/^0o[0-7]+$/i,_0x2079ef=parseInt;_0x16eaa6['exports']=function(_0x36c109){var _0x135f3f=_0x352a35;if(_0x135f3f('0x67b')==typeof _0x36c109)return _0x36c109;if(_0x3b095a(_0x36c109))return NaN;if(_0x577671(_0x36c109)){var _0x4b5658='function'==typeof _0x36c109['valueOf']?_0x36c109['valueOf']():_0x36c109;_0x36c109=_0x577671(_0x4b5658)?_0x4b5658+'':_0x4b5658;}if(_0x135f3f('0x2fd')!=typeof _0x36c109)return 0x0===_0x36c109?_0x36c109:+_0x36c109;_0x36c109=_0x36c109[_0x135f3f('0xd06')](_0x2d5b10,'');var _0x35b87f=_0x19fe7f['test'](_0x36c109);return _0x35b87f||_0x30f3c9[_0x135f3f('0x2c3')](_0x36c109)?_0x2079ef(_0x36c109[_0x135f3f('0xdf1')](0x2),_0x35b87f?0x2:0x8):_0x1cdaf0[_0x135f3f('0x2c3')](_0x36c109)?NaN:+_0x36c109;};},{'./isObject':0x110,'./isSymbol':0x115}],0x123:[function(_0x2cfc71,_0x334796,_0xf689d5){var _0x14da11=_0x548f48,_0xa19846=_0x2cfc71(_0x14da11('0x20f')),_0x5cc038=_0x2cfc71(_0x14da11('0xb20'));_0x334796[_0x14da11('0x64')]=function(_0x3bb632){return _0xa19846(_0x3bb632,_0x5cc038(_0x3bb632));};},{'./_copyObject':0xb4,'./keysIn':0x119}],0x124:[function(_0x4e3a49,_0xe70a3a,_0x278c0a){var _0x32f526=_0x548f48,_0x4aeb60=_0x4e3a49(_0x32f526('0x912'));_0xe70a3a[_0x32f526('0x64')]=function(_0x5ae059){return null==_0x5ae059?'':_0x4aeb60(_0x5ae059);};},{'./_baseToString':0xa8}],0x125:[function(_0x2adb66,_0x1b4369,_0x2ad9d1){var _0x1ec6c2=_0x548f48,_0x304a1f,_0x3978e5;_0x304a1f=this,_0x3978e5=function(){var _0x553a5d=_0x5376;return{'red':{0x32:_0x553a5d('0x106a'),0x64:_0x553a5d('0xe35'),0xc8:'#ef9a9a',0x12c:_0x553a5d('0x854'),0x190:_0x553a5d('0x8b9'),0x1f4:'#f44336',0x258:_0x553a5d('0x977'),0x2bc:_0x553a5d('0x43a'),0x320:_0x553a5d('0xf2e'),0x384:_0x553a5d('0xfd0'),'a100':_0x553a5d('0x1a6'),'a200':_0x553a5d('0xa33'),'a400':_0x553a5d('0x30d'),'a700':_0x553a5d('0x445')},'pink':{0x32:'#fce4ec',0x64:_0x553a5d('0x8eb'),0xc8:_0x553a5d('0xc6d'),0x12c:_0x553a5d('0x60f'),0x190:'#ec407a',0x1f4:_0x553a5d('0xd83'),0x258:_0x553a5d('0x833'),0x2bc:_0x553a5d('0x66b'),0x320:_0x553a5d('0xeb'),0x384:_0x553a5d('0x819'),'a100':_0x553a5d('0x199'),'a200':_0x553a5d('0x8bb'),'a400':_0x553a5d('0xb58'),'a700':_0x553a5d('0xfa3')},'purple':{0x32:'#f3e5f5',0x64:_0x553a5d('0xaa0'),0xc8:_0x553a5d('0x13a'),0x12c:_0x553a5d('0x170'),0x190:_0x553a5d('0xcf5'),0x1f4:_0x553a5d('0x934'),0x258:'#8e24aa',0x2bc:_0x553a5d('0x350'),0x320:_0x553a5d('0x5af'),0x384:'#4a148c','a100':'#ea80fc','a200':_0x553a5d('0x6c7'),'a400':_0x553a5d('0x379'),'a700':'#aa00ff'},'deepPurple':{0x32:_0x553a5d('0x72f'),0x64:'#d1c4e9',0xc8:_0x553a5d('0x9ce'),0x12c:_0x553a5d('0x1095'),0x190:_0x553a5d('0x490'),0x1f4:'#673ab7',0x258:_0x553a5d('0x394'),0x2bc:_0x553a5d('0xde2'),0x320:_0x553a5d('0x61a'),0x384:'#311b92','a100':_0x553a5d('0x548'),'a200':'#7c4dff','a400':_0x553a5d('0xc3f'),'a700':'#6200ea'},'indigo':{0x32:_0x553a5d('0xbe2'),0x64:_0x553a5d('0xa29'),0xc8:_0x553a5d('0x65b'),0x12c:_0x553a5d('0xa0f'),0x190:_0x553a5d('0xa61'),0x1f4:_0x553a5d('0x458'),0x258:_0x553a5d('0x3e0'),0x2bc:_0x553a5d('0x69f'),0x320:_0x553a5d('0x1109'),0x384:'#1a237e','a100':_0x553a5d('0xe18'),'a200':_0x553a5d('0x457'),'a400':_0x553a5d('0x962'),'a700':_0x553a5d('0xcd9')},'blue':{0x32:_0x553a5d('0x3e2'),0x64:_0x553a5d('0xef0'),0xc8:_0x553a5d('0x6a2'),0x12c:'#64b5f6',0x190:'#42a5f5',0x1f4:'#2196f3',0x258:_0x553a5d('0xabb'),0x2bc:_0x553a5d('0xc9d'),0x320:_0x553a5d('0x1b1'),0x384:_0x553a5d('0x3a'),'a100':_0x553a5d('0x1105'),'a200':_0x553a5d('0xa7c'),'a400':'#2979ff','a700':_0x553a5d('0x6ce')},'lightBlue':{0x32:'#e1f5fe',0x64:_0x553a5d('0x45c'),0xc8:_0x553a5d('0x8ab'),0x12c:_0x553a5d('0xa25'),0x190:_0x553a5d('0x659'),0x1f4:_0x553a5d('0x3ac'),0x258:_0x553a5d('0xa36'),0x2bc:'#0288d1',0x320:'#0277bd',0x384:_0x553a5d('0xbbf'),'a100':'#80d8ff','a200':_0x553a5d('0x4c0'),'a400':_0x553a5d('0xe1f'),'a700':_0x553a5d('0xb0f')},'cyan':{0x32:_0x553a5d('0xd7e'),0x64:_0x553a5d('0x454'),0xc8:_0x553a5d('0x1123'),0x12c:_0x553a5d('0x9ad'),0x190:_0x553a5d('0xfff'),0x1f4:_0x553a5d('0xa6e'),0x258:'#00acc1',0x2bc:_0x553a5d('0x10aa'),0x320:_0x553a5d('0x7ad'),0x384:_0x553a5d('0xae7'),'a100':'#84ffff','a200':_0x553a5d('0x64d'),'a400':_0x553a5d('0xae2'),'a700':_0x553a5d('0xf5e')},'teal':{0x32:_0x553a5d('0x4a6'),0x64:_0x553a5d('0x6cd'),0xc8:'#80cbc4',0x12c:_0x553a5d('0x7dc'),0x190:_0x553a5d('0x4bd'),0x1f4:'#009688',0x258:'#00897b',0x2bc:_0x553a5d('0xedb'),0x320:_0x553a5d('0xc41'),0x384:_0x553a5d('0x1092'),'a100':_0x553a5d('0x9d7'),'a200':_0x553a5d('0xf90'),'a400':_0x553a5d('0xcc1'),'a700':_0x553a5d('0x87c')},'green':{0x32:_0x553a5d('0x133'),0x64:'#c8e6c9',0xc8:_0x553a5d('0x85f'),0x12c:_0x553a5d('0xdef'),0x190:_0x553a5d('0x438'),0x1f4:_0x553a5d('0xacc'),0x258:_0x553a5d('0x287'),0x2bc:_0x553a5d('0xa1b'),0x320:_0x553a5d('0xf6e'),0x384:_0x553a5d('0x162'),'a100':'#b9f6ca','a200':'#69f0ae','a400':_0x553a5d('0xd5b'),'a700':_0x553a5d('0x48d')},'lightGreen':{0x32:_0x553a5d('0x3e4'),0x64:_0x553a5d('0x96d'),0xc8:_0x553a5d('0x10b3'),0x12c:_0x553a5d('0xd40'),0x190:_0x553a5d('0x9f4'),0x1f4:_0x553a5d('0x927'),0x258:_0x553a5d('0x643'),0x2bc:_0x553a5d('0x622'),0x320:'#558b2f',0x384:'#33691e','a100':'#ccff90','a200':_0x553a5d('0x42e'),'a400':'#76ff03','a700':'#64dd17'},'lime':{0x32:'#f9fbe7',0x64:_0x553a5d('0x5f9'),0xc8:'#e6ee9c',0x12c:_0x553a5d('0x807'),0x190:'#d4e157',0x1f4:_0x553a5d('0x584'),0x258:'#c0ca33',0x2bc:_0x553a5d('0xdc5'),0x320:_0x553a5d('0xaf4'),0x384:'#827717','a100':'#f4ff81','a200':'#eeff41','a400':_0x553a5d('0xf19'),'a700':'#aeea00'},'yellow':{0x32:_0x553a5d('0xb83'),0x64:'#fff9c4',0xc8:_0x553a5d('0x575'),0x12c:_0x553a5d('0x150'),0x190:'#ffee58',0x1f4:_0x553a5d('0x46c'),0x258:_0x553a5d('0xf97'),0x2bc:_0x553a5d('0xd8b'),0x320:_0x553a5d('0x894'),0x384:_0x553a5d('0x143'),'a100':_0x553a5d('0x20d'),'a200':_0x553a5d('0x2f1'),'a400':_0x553a5d('0xbd'),'a700':_0x553a5d('0xde9')},'amber':{0x32:'#fff8e1',0x64:_0x553a5d('0xd89'),0xc8:_0x553a5d('0x13e'),0x12c:_0x553a5d('0x121'),0x190:_0x553a5d('0x79c'),0x1f4:'#ffc107',0x258:_0x553a5d('0x753'),0x2bc:_0x553a5d('0x344'),0x320:_0x553a5d('0x492'),0x384:_0x553a5d('0x260'),'a100':_0x553a5d('0xcbd'),'a200':_0x553a5d('0xc9e'),'a400':_0x553a5d('0xa14'),'a700':_0x553a5d('0xb2f')},'orange':{0x32:_0x553a5d('0xc14'),0x64:_0x553a5d('0x868'),0xc8:_0x553a5d('0x14e'),0x12c:_0x553a5d('0x98d'),0x190:_0x553a5d('0x6a8'),0x1f4:'#ff9800',0x258:_0x553a5d('0xb92'),0x2bc:'#f57c00',0x320:_0x553a5d('0xbe7'),0x384:'#e65100','a100':'#ffd180','a200':_0x553a5d('0xa60'),'a400':_0x553a5d('0xc37'),'a700':_0x553a5d('0xd98')},'deepOrange':{0x32:_0x553a5d('0x6d6'),0x64:_0x553a5d('0x1013'),0xc8:_0x553a5d('0xc0d'),0x12c:_0x553a5d('0xaf8'),0x190:_0x553a5d('0xcdd'),0x1f4:_0x553a5d('0xe90'),0x258:_0x553a5d('0xa10'),0x2bc:'#e64a19',0x320:_0x553a5d('0xb4b'),0x384:_0x553a5d('0x190'),'a100':_0x553a5d('0xbef'),'a200':_0x553a5d('0xe77'),'a400':'#ff3d00','a700':_0x553a5d('0x5ed')},'brown':{0x32:_0x553a5d('0x9b9'),0x64:_0x553a5d('0x955'),0xc8:_0x553a5d('0x104c'),0x12c:'#a1887f',0x190:_0x553a5d('0x10d6'),0x1f4:_0x553a5d('0xe98'),0x258:_0x553a5d('0x5a4'),0x2bc:_0x553a5d('0xa22'),0x320:_0x553a5d('0xcfa'),0x384:_0x553a5d('0x5e0')},'grey':{0x32:_0x553a5d('0x1047'),0x64:_0x553a5d('0x911'),0xc8:_0x553a5d('0x834'),0x12c:_0x553a5d('0x9c6'),0x190:'#bdbdbd',0x1f4:_0x553a5d('0x64c'),0x258:_0x553a5d('0x870'),0x2bc:_0x553a5d('0x2c7'),0x320:_0x553a5d('0xd6f'),0x384:_0x553a5d('0x635')},'blueGrey':{0x32:'#eceff1',0x64:'#cfd8dc',0xc8:'#b0bec5',0x12c:_0x553a5d('0xc0a'),0x190:_0x553a5d('0xb40'),0x1f4:_0x553a5d('0x13b'),0x258:_0x553a5d('0x18b'),0x2bc:'#455a64',0x320:'#37474f',0x384:'#263238'},'darkText':{'primary':'rgba(0,\x200,\x200,\x200.87)','secondary':_0x553a5d('0x55c'),'disabled':'rgba(0,\x200,\x200,\x200.38)','dividers':_0x553a5d('0x32e')},'lightText':{'primary':_0x553a5d('0x2bd'),'secondary':_0x553a5d('0xd44'),'disabled':'rgba(255,\x20255,\x20255,\x200.5)','dividers':_0x553a5d('0xbe4')},'darkIcons':{'active':'rgba(0,\x200,\x200,\x200.54)','inactive':_0x553a5d('0x109d')},'lightIcons':{'active':_0x553a5d('0x2bd'),'inactive':_0x553a5d('0x1083')},'white':_0x553a5d('0x463'),'black':_0x553a5d('0x114c')};},_0x1ec6c2('0x106c')==typeof define&&define[_0x1ec6c2('0xdf3')]?define([],_0x3978e5):'object'==typeof _0x2ad9d1?_0x1b4369[_0x1ec6c2('0x64')]={'red':{0x32:_0x1ec6c2('0x106a'),0x64:'#ffcdd2',0xc8:_0x1ec6c2('0xd1f'),0x12c:'#e57373',0x190:'#ef5350',0x1f4:_0x1ec6c2('0x1147'),0x258:'#e53935',0x2bc:_0x1ec6c2('0x43a'),0x320:_0x1ec6c2('0xf2e'),0x384:_0x1ec6c2('0xfd0'),'a100':_0x1ec6c2('0x1a6'),'a200':_0x1ec6c2('0xa33'),'a400':_0x1ec6c2('0x30d'),'a700':_0x1ec6c2('0x445')},'pink':{0x32:_0x1ec6c2('0x104'),0x64:_0x1ec6c2('0x8eb'),0xc8:_0x1ec6c2('0xc6d'),0x12c:_0x1ec6c2('0x60f'),0x190:'#ec407a',0x1f4:_0x1ec6c2('0xd83'),0x258:'#d81b60',0x2bc:_0x1ec6c2('0x66b'),0x320:'#ad1457',0x384:_0x1ec6c2('0x819'),'a100':_0x1ec6c2('0x199'),'a200':_0x1ec6c2('0x8bb'),'a400':'#f50057','a700':_0x1ec6c2('0xfa3')},'purple':{0x32:'#f3e5f5',0x64:'#e1bee7',0xc8:_0x1ec6c2('0x13a'),0x12c:_0x1ec6c2('0x170'),0x190:_0x1ec6c2('0xcf5'),0x1f4:'#9c27b0',0x258:_0x1ec6c2('0x270'),0x2bc:_0x1ec6c2('0x350'),0x320:'#6a1b9a',0x384:_0x1ec6c2('0xc9c'),'a100':_0x1ec6c2('0xf16'),'a200':_0x1ec6c2('0x6c7'),'a400':_0x1ec6c2('0x379'),'a700':_0x1ec6c2('0x113e')},'deepPurple':{0x32:'#ede7f6',0x64:_0x1ec6c2('0x1ea'),0xc8:_0x1ec6c2('0x9ce'),0x12c:_0x1ec6c2('0x1095'),0x190:_0x1ec6c2('0x490'),0x1f4:_0x1ec6c2('0xe37'),0x258:_0x1ec6c2('0x394'),0x2bc:'#512da8',0x320:_0x1ec6c2('0x61a'),0x384:_0x1ec6c2('0xcda'),'a100':_0x1ec6c2('0x548'),'a200':_0x1ec6c2('0x10f0'),'a400':_0x1ec6c2('0xc3f'),'a700':_0x1ec6c2('0x1030')},'indigo':{0x32:_0x1ec6c2('0xbe2'),0x64:_0x1ec6c2('0xa29'),0xc8:_0x1ec6c2('0x65b'),0x12c:_0x1ec6c2('0xa0f'),0x190:_0x1ec6c2('0xa61'),0x1f4:'#3f51b5',0x258:'#3949ab',0x2bc:'#303f9f',0x320:_0x1ec6c2('0x1109'),0x384:_0x1ec6c2('0xa16'),'a100':_0x1ec6c2('0xe18'),'a200':_0x1ec6c2('0x457'),'a400':'#3d5afe','a700':_0x1ec6c2('0xcd9')},'blue':{0x32:_0x1ec6c2('0x3e2'),0x64:_0x1ec6c2('0xef0'),0xc8:'#90caf9',0x12c:_0x1ec6c2('0x716'),0x190:_0x1ec6c2('0xc18'),0x1f4:'#2196f3',0x258:'#1e88e5',0x2bc:_0x1ec6c2('0xc9d'),0x320:'#1565c0',0x384:'#0d47a1','a100':_0x1ec6c2('0x1105'),'a200':_0x1ec6c2('0xa7c'),'a400':_0x1ec6c2('0x228'),'a700':'#2962ff'},'lightBlue':{0x32:_0x1ec6c2('0xa7d'),0x64:'#b3e5fc',0xc8:_0x1ec6c2('0x8ab'),0x12c:_0x1ec6c2('0xa25'),0x190:_0x1ec6c2('0x659'),0x1f4:_0x1ec6c2('0x3ac'),0x258:_0x1ec6c2('0xa36'),0x2bc:_0x1ec6c2('0xda2'),0x320:'#0277bd',0x384:'#01579b','a100':_0x1ec6c2('0x4eb'),'a200':'#40c4ff','a400':_0x1ec6c2('0xe1f'),'a700':'#0091ea'},'cyan':{0x32:_0x1ec6c2('0xd7e'),0x64:_0x1ec6c2('0x454'),0xc8:_0x1ec6c2('0x1123'),0x12c:_0x1ec6c2('0x9ad'),0x190:_0x1ec6c2('0xfff'),0x1f4:'#00bcd4',0x258:'#00acc1',0x2bc:_0x1ec6c2('0x10aa'),0x320:_0x1ec6c2('0x7ad'),0x384:_0x1ec6c2('0xae7'),'a100':'#84ffff','a200':_0x1ec6c2('0x64d'),'a400':_0x1ec6c2('0xae2'),'a700':_0x1ec6c2('0xf5e')},'teal':{0x32:_0x1ec6c2('0x4a6'),0x64:_0x1ec6c2('0x6cd'),0xc8:_0x1ec6c2('0xd78'),0x12c:'#4db6ac',0x190:_0x1ec6c2('0x4bd'),0x1f4:_0x1ec6c2('0x80a'),0x258:_0x1ec6c2('0xf58'),0x2bc:_0x1ec6c2('0xedb'),0x320:_0x1ec6c2('0xc41'),0x384:'#004d40','a100':_0x1ec6c2('0x9d7'),'a200':_0x1ec6c2('0xf90'),'a400':_0x1ec6c2('0xcc1'),'a700':_0x1ec6c2('0x87c')},'green':{0x32:'#e8f5e9',0x64:_0x1ec6c2('0x256'),0xc8:_0x1ec6c2('0x85f'),0x12c:_0x1ec6c2('0xdef'),0x190:_0x1ec6c2('0x438'),0x1f4:'#4caf50',0x258:_0x1ec6c2('0x287'),0x2bc:_0x1ec6c2('0xa1b'),0x320:_0x1ec6c2('0xf6e'),0x384:_0x1ec6c2('0x162'),'a100':_0x1ec6c2('0x766'),'a200':_0x1ec6c2('0x54b'),'a400':_0x1ec6c2('0xd5b'),'a700':_0x1ec6c2('0x48d')},'lightGreen':{0x32:_0x1ec6c2('0x3e4'),0x64:_0x1ec6c2('0x96d'),0xc8:_0x1ec6c2('0x10b3'),0x12c:_0x1ec6c2('0xd40'),0x190:_0x1ec6c2('0x9f4'),0x1f4:_0x1ec6c2('0x927'),0x258:_0x1ec6c2('0x643'),0x2bc:'#689f38',0x320:_0x1ec6c2('0x389'),0x384:_0x1ec6c2('0x334'),'a100':_0x1ec6c2('0x89c'),'a200':_0x1ec6c2('0x42e'),'a400':'#76ff03','a700':'#64dd17'},'lime':{0x32:_0x1ec6c2('0x71d'),0x64:_0x1ec6c2('0x5f9'),0xc8:'#e6ee9c',0x12c:_0x1ec6c2('0x807'),0x190:_0x1ec6c2('0x9dc'),0x1f4:'#cddc39',0x258:_0x1ec6c2('0xc24'),0x2bc:_0x1ec6c2('0xdc5'),0x320:_0x1ec6c2('0xaf4'),0x384:_0x1ec6c2('0x2bb'),'a100':_0x1ec6c2('0x31d'),'a200':_0x1ec6c2('0xa80'),'a400':'#c6ff00','a700':'#aeea00'},'yellow':{0x32:'#fffde7',0x64:'#fff9c4',0xc8:_0x1ec6c2('0x575'),0x12c:_0x1ec6c2('0x150'),0x190:_0x1ec6c2('0x1062'),0x1f4:_0x1ec6c2('0x46c'),0x258:_0x1ec6c2('0xf97'),0x2bc:_0x1ec6c2('0xd8b'),0x320:_0x1ec6c2('0x894'),0x384:_0x1ec6c2('0x143'),'a100':_0x1ec6c2('0x20d'),'a200':_0x1ec6c2('0x2f1'),'a400':_0x1ec6c2('0xbd'),'a700':_0x1ec6c2('0xde9')},'amber':{0x32:_0x1ec6c2('0x502'),0x64:_0x1ec6c2('0xd89'),0xc8:_0x1ec6c2('0x13e'),0x12c:'#ffd54f',0x190:_0x1ec6c2('0x79c'),0x1f4:'#ffc107',0x258:_0x1ec6c2('0x753'),0x2bc:'#ffa000',0x320:_0x1ec6c2('0x492'),0x384:_0x1ec6c2('0x260'),'a100':_0x1ec6c2('0xcbd'),'a200':_0x1ec6c2('0xc9e'),'a400':_0x1ec6c2('0xa14'),'a700':_0x1ec6c2('0xb2f')},'orange':{0x32:_0x1ec6c2('0xc14'),0x64:'#ffe0b2',0xc8:'#ffcc80',0x12c:_0x1ec6c2('0x98d'),0x190:_0x1ec6c2('0x6a8'),0x1f4:_0x1ec6c2('0xb7f'),0x258:_0x1ec6c2('0xb92'),0x2bc:_0x1ec6c2('0x5eb'),0x320:_0x1ec6c2('0xbe7'),0x384:'#e65100','a100':_0x1ec6c2('0xa4c'),'a200':_0x1ec6c2('0xa60'),'a400':_0x1ec6c2('0xc37'),'a700':_0x1ec6c2('0xd98')},'deepOrange':{0x32:_0x1ec6c2('0x6d6'),0x64:'#ffccbc',0xc8:_0x1ec6c2('0xc0d'),0x12c:_0x1ec6c2('0xaf8'),0x190:_0x1ec6c2('0xcdd'),0x1f4:_0x1ec6c2('0xe90'),0x258:_0x1ec6c2('0xa10'),0x2bc:_0x1ec6c2('0x9f5'),0x320:'#d84315',0x384:'#bf360c','a100':_0x1ec6c2('0xbef'),'a200':_0x1ec6c2('0xe77'),'a400':'#ff3d00','a700':_0x1ec6c2('0x5ed')},'brown':{0x32:'#efebe9',0x64:_0x1ec6c2('0x955'),0xc8:_0x1ec6c2('0x104c'),0x12c:_0x1ec6c2('0xe12'),0x190:_0x1ec6c2('0x10d6'),0x1f4:'#795548',0x258:_0x1ec6c2('0x5a4'),0x2bc:_0x1ec6c2('0xa22'),0x320:'#4e342e',0x384:_0x1ec6c2('0x5e0')},'grey':{0x32:'#fafafa',0x64:_0x1ec6c2('0x911'),0xc8:_0x1ec6c2('0x834'),0x12c:_0x1ec6c2('0x9c6'),0x190:_0x1ec6c2('0xc52'),0x1f4:_0x1ec6c2('0x64c'),0x258:_0x1ec6c2('0x870'),0x2bc:_0x1ec6c2('0x2c7'),0x320:_0x1ec6c2('0xd6f'),0x384:_0x1ec6c2('0x635')},'blueGrey':{0x32:_0x1ec6c2('0xdb7'),0x64:_0x1ec6c2('0x1014'),0xc8:_0x1ec6c2('0x4df'),0x12c:_0x1ec6c2('0xc0a'),0x190:'#78909c',0x1f4:_0x1ec6c2('0x13b'),0x258:_0x1ec6c2('0x18b'),0x2bc:_0x1ec6c2('0xfcf'),0x320:_0x1ec6c2('0xd5f'),0x384:_0x1ec6c2('0x2d0')},'darkText':{'primary':_0x1ec6c2('0xc1d'),'secondary':_0x1ec6c2('0x55c'),'disabled':'rgba(0,\x200,\x200,\x200.38)','dividers':_0x1ec6c2('0x32e')},'lightText':{'primary':_0x1ec6c2('0x2bd'),'secondary':'rgba(255,\x20255,\x20255,\x200.7)','disabled':_0x1ec6c2('0x1083'),'dividers':'rgba(255,\x20255,\x20255,\x200.12)'},'darkIcons':{'active':_0x1ec6c2('0x55c'),'inactive':'rgba(0,\x200,\x200,\x200.38)'},'lightIcons':{'active':_0x1ec6c2('0x2bd'),'inactive':_0x1ec6c2('0x1083')},'white':_0x1ec6c2('0x463'),'black':'#000000'}:_0x304a1f[_0x1ec6c2('0xfef')]={'red':{0x32:_0x1ec6c2('0x106a'),0x64:_0x1ec6c2('0xe35'),0xc8:'#ef9a9a',0x12c:_0x1ec6c2('0x854'),0x190:_0x1ec6c2('0x8b9'),0x1f4:_0x1ec6c2('0x1147'),0x258:_0x1ec6c2('0x977'),0x2bc:_0x1ec6c2('0x43a'),0x320:'#c62828',0x384:_0x1ec6c2('0xfd0'),'a100':_0x1ec6c2('0x1a6'),'a200':_0x1ec6c2('0xa33'),'a400':_0x1ec6c2('0x30d'),'a700':_0x1ec6c2('0x445')},'pink':{0x32:'#fce4ec',0x64:_0x1ec6c2('0x8eb'),0xc8:_0x1ec6c2('0xc6d'),0x12c:_0x1ec6c2('0x60f'),0x190:_0x1ec6c2('0x329'),0x1f4:_0x1ec6c2('0xd83'),0x258:_0x1ec6c2('0x833'),0x2bc:_0x1ec6c2('0x66b'),0x320:_0x1ec6c2('0xeb'),0x384:_0x1ec6c2('0x819'),'a100':'#ff80ab','a200':_0x1ec6c2('0x8bb'),'a400':_0x1ec6c2('0xb58'),'a700':_0x1ec6c2('0xfa3')},'purple':{0x32:'#f3e5f5',0x64:_0x1ec6c2('0xaa0'),0xc8:_0x1ec6c2('0x13a'),0x12c:_0x1ec6c2('0x170'),0x190:_0x1ec6c2('0xcf5'),0x1f4:_0x1ec6c2('0x934'),0x258:_0x1ec6c2('0x270'),0x2bc:_0x1ec6c2('0x350'),0x320:_0x1ec6c2('0x5af'),0x384:_0x1ec6c2('0xc9c'),'a100':'#ea80fc','a200':_0x1ec6c2('0x6c7'),'a400':'#d500f9','a700':'#aa00ff'},'deepPurple':{0x32:_0x1ec6c2('0x72f'),0x64:'#d1c4e9',0xc8:_0x1ec6c2('0x9ce'),0x12c:_0x1ec6c2('0x1095'),0x190:_0x1ec6c2('0x490'),0x1f4:_0x1ec6c2('0xe37'),0x258:'#5e35b1',0x2bc:'#512da8',0x320:_0x1ec6c2('0x61a'),0x384:_0x1ec6c2('0xcda'),'a100':_0x1ec6c2('0x548'),'a200':'#7c4dff','a400':'#651fff','a700':'#6200ea'},'indigo':{0x32:_0x1ec6c2('0xbe2'),0x64:_0x1ec6c2('0xa29'),0xc8:_0x1ec6c2('0x65b'),0x12c:_0x1ec6c2('0xa0f'),0x190:_0x1ec6c2('0xa61'),0x1f4:_0x1ec6c2('0x458'),0x258:'#3949ab',0x2bc:_0x1ec6c2('0x69f'),0x320:'#283593',0x384:_0x1ec6c2('0xa16'),'a100':'#8c9eff','a200':_0x1ec6c2('0x457'),'a400':_0x1ec6c2('0x962'),'a700':'#304ffe'},'blue':{0x32:'#e3f2fd',0x64:_0x1ec6c2('0xef0'),0xc8:_0x1ec6c2('0x6a2'),0x12c:_0x1ec6c2('0x716'),0x190:_0x1ec6c2('0xc18'),0x1f4:_0x1ec6c2('0x33d'),0x258:_0x1ec6c2('0xabb'),0x2bc:'#1976d2',0x320:'#1565c0',0x384:_0x1ec6c2('0x3a'),'a100':_0x1ec6c2('0x1105'),'a200':_0x1ec6c2('0xa7c'),'a400':'#2979ff','a700':'#2962ff'},'lightBlue':{0x32:'#e1f5fe',0x64:_0x1ec6c2('0x45c'),0xc8:_0x1ec6c2('0x8ab'),0x12c:_0x1ec6c2('0xa25'),0x190:_0x1ec6c2('0x659'),0x1f4:_0x1ec6c2('0x3ac'),0x258:_0x1ec6c2('0xa36'),0x2bc:'#0288d1',0x320:'#0277bd',0x384:'#01579b','a100':_0x1ec6c2('0x4eb'),'a200':_0x1ec6c2('0x4c0'),'a400':_0x1ec6c2('0xe1f'),'a700':'#0091ea'},'cyan':{0x32:_0x1ec6c2('0xd7e'),0x64:'#b2ebf2',0xc8:_0x1ec6c2('0x1123'),0x12c:_0x1ec6c2('0x9ad'),0x190:'#26c6da',0x1f4:_0x1ec6c2('0xa6e'),0x258:'#00acc1',0x2bc:_0x1ec6c2('0x10aa'),0x320:'#00838f',0x384:_0x1ec6c2('0xae7'),'a100':_0x1ec6c2('0xf0d'),'a200':_0x1ec6c2('0x64d'),'a400':_0x1ec6c2('0xae2'),'a700':_0x1ec6c2('0xf5e')},'teal':{0x32:_0x1ec6c2('0x4a6'),0x64:_0x1ec6c2('0x6cd'),0xc8:_0x1ec6c2('0xd78'),0x12c:_0x1ec6c2('0x7dc'),0x190:_0x1ec6c2('0x4bd'),0x1f4:_0x1ec6c2('0x80a'),0x258:_0x1ec6c2('0xf58'),0x2bc:_0x1ec6c2('0xedb'),0x320:'#00695c',0x384:_0x1ec6c2('0x1092'),'a100':_0x1ec6c2('0x9d7'),'a200':_0x1ec6c2('0xf90'),'a400':_0x1ec6c2('0xcc1'),'a700':'#00bfa5'},'green':{0x32:_0x1ec6c2('0x133'),0x64:'#c8e6c9',0xc8:_0x1ec6c2('0x85f'),0x12c:_0x1ec6c2('0xdef'),0x190:'#66bb6a',0x1f4:_0x1ec6c2('0xacc'),0x258:_0x1ec6c2('0x287'),0x2bc:'#388e3c',0x320:_0x1ec6c2('0xf6e'),0x384:_0x1ec6c2('0x162'),'a100':_0x1ec6c2('0x766'),'a200':_0x1ec6c2('0x54b'),'a400':'#00e676','a700':'#00c853'},'lightGreen':{0x32:_0x1ec6c2('0x3e4'),0x64:_0x1ec6c2('0x96d'),0xc8:_0x1ec6c2('0x10b3'),0x12c:_0x1ec6c2('0xd40'),0x190:'#9ccc65',0x1f4:_0x1ec6c2('0x927'),0x258:_0x1ec6c2('0x643'),0x2bc:'#689f38',0x320:_0x1ec6c2('0x389'),0x384:_0x1ec6c2('0x334'),'a100':_0x1ec6c2('0x89c'),'a200':'#b2ff59','a400':'#76ff03','a700':_0x1ec6c2('0xd5e')},'lime':{0x32:_0x1ec6c2('0x71d'),0x64:'#f0f4c3',0xc8:_0x1ec6c2('0x7e1'),0x12c:'#dce775',0x190:_0x1ec6c2('0x9dc'),0x1f4:_0x1ec6c2('0x584'),0x258:_0x1ec6c2('0xc24'),0x2bc:_0x1ec6c2('0xdc5'),0x320:_0x1ec6c2('0xaf4'),0x384:_0x1ec6c2('0x2bb'),'a100':_0x1ec6c2('0x31d'),'a200':'#eeff41','a400':_0x1ec6c2('0xf19'),'a700':_0x1ec6c2('0x291')},'yellow':{0x32:'#fffde7',0x64:'#fff9c4',0xc8:_0x1ec6c2('0x575'),0x12c:_0x1ec6c2('0x150'),0x190:_0x1ec6c2('0x1062'),0x1f4:_0x1ec6c2('0x46c'),0x258:'#fdd835',0x2bc:_0x1ec6c2('0xd8b'),0x320:_0x1ec6c2('0x894'),0x384:_0x1ec6c2('0x143'),'a100':_0x1ec6c2('0x20d'),'a200':_0x1ec6c2('0x2f1'),'a400':_0x1ec6c2('0xbd'),'a700':_0x1ec6c2('0xde9')},'amber':{0x32:_0x1ec6c2('0x502'),0x64:'#ffecb3',0xc8:_0x1ec6c2('0x13e'),0x12c:_0x1ec6c2('0x121'),0x190:_0x1ec6c2('0x79c'),0x1f4:'#ffc107',0x258:_0x1ec6c2('0x753'),0x2bc:_0x1ec6c2('0x344'),0x320:_0x1ec6c2('0x492'),0x384:_0x1ec6c2('0x260'),'a100':_0x1ec6c2('0xcbd'),'a200':_0x1ec6c2('0xc9e'),'a400':_0x1ec6c2('0xa14'),'a700':_0x1ec6c2('0xb2f')},'orange':{0x32:_0x1ec6c2('0xc14'),0x64:_0x1ec6c2('0x868'),0xc8:_0x1ec6c2('0x14e'),0x12c:_0x1ec6c2('0x98d'),0x190:'#ffa726',0x1f4:_0x1ec6c2('0xb7f'),0x258:'#fb8c00',0x2bc:_0x1ec6c2('0x5eb'),0x320:_0x1ec6c2('0xbe7'),0x384:'#e65100','a100':'#ffd180','a200':'#ffab40','a400':_0x1ec6c2('0xc37'),'a700':_0x1ec6c2('0xd98')},'deepOrange':{0x32:_0x1ec6c2('0x6d6'),0x64:_0x1ec6c2('0x1013'),0xc8:_0x1ec6c2('0xc0d'),0x12c:'#ff8a65',0x190:_0x1ec6c2('0xcdd'),0x1f4:'#ff5722',0x258:_0x1ec6c2('0xa10'),0x2bc:_0x1ec6c2('0x9f5'),0x320:_0x1ec6c2('0xb4b'),0x384:_0x1ec6c2('0x190'),'a100':_0x1ec6c2('0xbef'),'a200':_0x1ec6c2('0xe77'),'a400':_0x1ec6c2('0x59e'),'a700':'#dd2c00'},'brown':{0x32:_0x1ec6c2('0x9b9'),0x64:_0x1ec6c2('0x955'),0xc8:_0x1ec6c2('0x104c'),0x12c:'#a1887f',0x190:_0x1ec6c2('0x10d6'),0x1f4:'#795548',0x258:_0x1ec6c2('0x5a4'),0x2bc:'#5d4037',0x320:_0x1ec6c2('0xcfa'),0x384:_0x1ec6c2('0x5e0')},'grey':{0x32:_0x1ec6c2('0x1047'),0x64:_0x1ec6c2('0x911'),0xc8:_0x1ec6c2('0x834'),0x12c:_0x1ec6c2('0x9c6'),0x190:_0x1ec6c2('0xc52'),0x1f4:'#9e9e9e',0x258:'#757575',0x2bc:_0x1ec6c2('0x2c7'),0x320:'#424242',0x384:_0x1ec6c2('0x635')},'blueGrey':{0x32:_0x1ec6c2('0xdb7'),0x64:_0x1ec6c2('0x1014'),0xc8:_0x1ec6c2('0x4df'),0x12c:_0x1ec6c2('0xc0a'),0x190:_0x1ec6c2('0xb40'),0x1f4:_0x1ec6c2('0x13b'),0x258:_0x1ec6c2('0x18b'),0x2bc:_0x1ec6c2('0xfcf'),0x320:_0x1ec6c2('0xd5f'),0x384:_0x1ec6c2('0x2d0')},'darkText':{'primary':'rgba(0,\x200,\x200,\x200.87)','secondary':_0x1ec6c2('0x55c'),'disabled':_0x1ec6c2('0x109d'),'dividers':_0x1ec6c2('0x32e')},'lightText':{'primary':'rgba(255,\x20255,\x20255,\x201)','secondary':_0x1ec6c2('0xd44'),'disabled':_0x1ec6c2('0x1083'),'dividers':_0x1ec6c2('0xbe4')},'darkIcons':{'active':_0x1ec6c2('0x55c'),'inactive':'rgba(0,\x200,\x200,\x200.38)'},'lightIcons':{'active':_0x1ec6c2('0x2bd'),'inactive':_0x1ec6c2('0x1083')},'white':_0x1ec6c2('0x463'),'black':_0x1ec6c2('0x114c')};},{}],0x126:[function(_0x358657,_0x6194ed,_0x50483e){var _0x25cb3e=_0x548f48;/* +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],2:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.AttendanceAdapter = _lib.AttendanceAdapter; +window.AttendanceStatusAdapter = _lib.AttendanceStatusAdapter; + +},{"./lib":3}],3:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _FormValidation = _interopRequireDefault(require("../../../api/FormValidation")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var AttendanceAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(AttendanceAdapter, _AdapterBase); + + var _super = _createSuper(AttendanceAdapter); + + function AttendanceAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, AttendanceAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.photoAttendance = false; + return _this; + } + + _createClass(AttendanceAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'in_time', 'out_time', 'note']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Time-In' + }, { + sTitle: 'Time-Out' + }, { + sTitle: 'Note' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['id', { + label: 'ID', + type: 'hidden' + }], ['in_time', { + label: 'Time-In', + type: 'datetime' + }], ['out_time', { + label: 'Time-Out', + type: 'datetime', + validation: 'none' + }], ['note', { + label: 'Note', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "setPhotoAttendance", + value: function setPhotoAttendance(val) { + this.photoAttendance = parseInt(val, 10); + } + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + var that = this; + var dataTableParams = { + aoColumnDefs: [{ + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 2); + }, + aTargets: [2] + }, { + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 3); + }, + aTargets: [3] + }, { + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 4); + }, + aTargets: [4] + }, { + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }] + }; + return dataTableParams; + } + }, { + key: "preProcessRemoteTableData", + value: function preProcessRemoteTableData(data, cell, id) { + if (id === 2) { + if (cell === '0000-00-00 00:00:00' || cell === '' || cell === undefined || cell == null) { + return ''; + } + + return Date.parse(cell).toString('yyyy MMM d HH:mm'); + } + + if (id === 3) { + if (cell === '0000-00-00 00:00:00' || cell === '' || cell === undefined || cell == null) { + return ''; + } + + return Date.parse(cell).toString('MMM d HH:mm'); + } + + if (id === 4) { + if (cell !== undefined && cell !== null) { + if (cell.length > 10) { + return "".concat(cell.substring(0, 10), ".."); + } + } + + return cell; + } + } + }, { + key: "save", + value: function save() { + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_submit"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + var msg = this.doCustomValidation(params); + + if (msg == null) { + var id = $("#".concat(this.getTableName(), "_submit #id")).val(); + + if (id != null && id !== undefined && id !== '') { + params.id = id; + } + + var reqJson = JSON.stringify(params); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'saveSuccessCallback'; + callBackData.callBackFail = 'saveFailCallback'; + this.customAction('savePunch', 'admin=attendance', reqJson, callBackData); + } else { + var label = $("#".concat(this.getTableName(), "Form .label")); + label.html(msg); + label.show(); + } + } + } + }, { + key: "saveSuccessCallback", + value: function saveSuccessCallback(callBackData) { + this.get(callBackData); + } + }, { + key: "saveFailCallback", + value: function saveFailCallback(callBackData) { + this.showMessage('Error saving attendance entry', callBackData); + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }, { + key: "showPunchImages", + value: function showPunchImages(id) { + var reqJson = JSON.stringify({ + id: id + }); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getImagesSuccessCallback'; + callBackData.callBackFail = 'getImagesFailCallback'; + this.customAction('getImages', 'admin=attendance', reqJson, callBackData); + } + }, { + key: "getImagesSuccessCallback", + value: function getImagesSuccessCallback(callBackData) { + $('#attendnaceMapCanvasIn').remove(); + $('#attendnaceCanvasInWrapper').html(''); + $('#attendnaceCanvasOut').remove(); + $('#attendnaceCanvasOutWrapper').html(''); + $('#attendnaceCanvasPunchInTime').html(''); + $('#attendnaceCanvasPunchOutTime').html(''); + $('#punchInLocation').html(''); + $('#punchOutLocation').html(''); + $('#punchInIp').html(''); + $('#punchOutIp').html(''); + $('#attendnaceMapCanvasIn').remove(); + $('#attendnaceMapCanvasInWrapper').html(''); + $('#attendnaceMapCanvasOut').remove(); + $('#attendnaceMapCanvasOutWrapper').html(''); + $('#attendancePhotoModel').modal('show'); + $('#attendnaceCanvasEmp').html(callBackData.employee_Name); + + if (callBackData.in_time) { + $('#attendnaceCanvasPunchInTime').html(Date.parse(callBackData.in_time).toString('yyyy MMM d HH:mm')); + } + + if (callBackData.image_in) { + $('#attendancePhoto').show(); + var myCanvas = document.getElementById('attendnaceCanvasIn'); + + try { + var ctx = myCanvas.getContext('2d'); + var img = new Image(); + + img.onload = function () { + ctx.drawImage(img, 0, 0); // Or at whatever offset you like + }; + + img.src = callBackData.image_in; + } catch (e) { + console.log(e); + } + } + + if (callBackData.out_time) { + $('#attendnaceCanvasPunchOutTime').html(Date.parse(callBackData.out_time).toString('yyyy MMM d HH:mm')); + } + + if (callBackData.image_out) { + $('#attendancePhoto').show(); + + var _myCanvas = document.getElementById('attendnaceCanvasOut'); + + try { + var _ctx = _myCanvas.getContext('2d'); + + var _img = new Image(); + + _img.onload = function () { + _ctx.drawImage(_img, 0, 0); // Or at whatever offset you like + + }; + + _img.src = callBackData.image_out; + } catch (e) { + console.log(e); + } + } + + if (callBackData.map_lat) { + $('#attendanceMap').show(); + $('#punchInLocation').html("".concat(callBackData.map_lat, ",").concat(callBackData.map_lng)); + } + + if (callBackData.map_out_lat) { + $('#attendanceMap').show(); + $('#punchOutLocation').html("".concat(callBackData.map_out_lat, ",").concat(callBackData.map_out_lng)); + } + + if (callBackData.in_ip) { + $('#punchInIp').html(callBackData.in_ip); + } + + if (callBackData.out_ip) { + $('#punchOutIp').html(callBackData.out_ip); + } + + if (callBackData.map_snapshot) { + $('#attendanceMap').show(); + + var _myCanvas2 = document.getElementById('attendnaceMapCanvasIn'); + + try { + var _ctx2 = _myCanvas2.getContext('2d'); + + var _img2 = new Image(); + + _img2.onload = function () { + _ctx2.drawImage(_img2, 0, 0); // Or at whatever offset you like + + }; + + _img2.src = callBackData.map_snapshot; + } catch (e) { + console.log(e); + } + } + + if (callBackData.map_out_snapshot) { + $('#attendanceMap').show(); + + var _myCanvas3 = document.getElementById('attendnaceMapCanvasOut'); + + try { + var _ctx3 = _myCanvas3.getContext('2d'); + + var _img3 = new Image(); + + _img3.onload = function () { + _ctx3.drawImage(_img3, 0, 0); // Or at whatever offset you like + + }; + + _img3.src = callBackData.map_out_snapshot; + } catch (e) { + console.log(e); + } + } + } + }, { + key: "getImagesFailCallback", + value: function getImagesFailCallback(callBackData) { + this.showMessage('Error', callBackData); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var deleteButton = ''; + var photoButton = ''; + var html; + + if (this.photoAttendance === 1) { + html = '
_edit__delete__photo_
'; + } else { + html = '
_edit__delete_
'; + } + + html = html.replace('_photo_', photoButton); + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/time-and-attendance/attendance-time-management'; + } + }]); + + return AttendanceAdapter; +}(_AdapterBase3["default"]); +/* + Attendance Status + */ + + +var AttendanceStatusAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(AttendanceStatusAdapter, _AdapterBase2); + + var _super2 = _createSuper(AttendanceStatusAdapter); + + function AttendanceStatusAdapter() { + _classCallCheck(this, AttendanceStatusAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(AttendanceStatusAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Clocked In Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
'; + html = html.replace(/_BASE_/g, this.baseUrl); + + if (data[2] == 'Not Clocked In') { + html = html.replace(/_COLOR_/g, 'gray'); + } else if (data[2] == 'Clocked Out') { + html = html.replace(/_COLOR_/g, 'yellow'); + } else if (data[2] == 'Clocked In') { + html = html.replace(/_COLOR_/g, 'green'); + } + + return html; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/time-and-attendance/attendance-time-management'; + } + }]); + + return AttendanceStatusAdapter; +}(_AdapterBase3["default"]); + +module.exports = { + AttendanceAdapter: AttendanceAdapter, + AttendanceStatusAdapter: AttendanceStatusAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/FormValidation":56}],4:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.AttendanceGraphAdapter = _lib.AttendanceGraphAdapter; +window.TimeUtilizationGraphAdapter = _lib.TimeUtilizationGraphAdapter; + +},{"./lib":5}],5:[function(require,module,exports){ +"use strict"; + +var _BaseGraphAdapter3 = _interopRequireDefault(require("../../../api/BaseGraphAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/* + * AttendanceGraphAdapter + */ +var AttendanceGraphAdapter = /*#__PURE__*/function (_BaseGraphAdapter) { + _inherits(AttendanceGraphAdapter, _BaseGraphAdapter); + + var _super = _createSuper(AttendanceGraphAdapter); + + function AttendanceGraphAdapter() { + _classCallCheck(this, AttendanceGraphAdapter); + + return _super.apply(this, arguments); + } + + _createClass(AttendanceGraphAdapter, [{ + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Employees', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['start', { + label: 'Start Date', + type: 'date', + validation: '' + }], ['end', { + label: 'End Date', + type: 'date', + validation: '' + }]]; + } + }, { + key: "get", + value: function get() { + this.initFieldMasterData(); + this.getTimeUtilization(); + } + }, { + key: "doCustomFilterValidation", + value: function doCustomFilterValidation(params) { + var $errorElement = $("#".concat(this.table, "_filter_error")); + $errorElement.html(''); + $errorElement.hide(); + + if (Date.parse(params.start).getTime() > Date.parse(params.end).getTime()) { + $errorElement.html('End date should be a later date than start date'); + $errorElement.show(); + return false; + } + + var dateDiff = (Date.parse(params.end).getTime() - Date.parse(params.start).getTime()) / (1000 * 60 * 60 * 24); + + if (dateDiff > 45 && (params.employee === undefined || params.employee == null || params.employee === 'NULL')) { + $errorElement.html('Differance between start and end dates should not be more than 45 days, when creating chart for all employees'); + $errorElement.show(); + return false; + } + + if (dateDiff > 90) { + $errorElement.html('Differance between start and end dates should not be more than 90 days'); + $errorElement.show(); + return false; + } + + return true; + } + }, { + key: "getTimeUtilization", + value: function getTimeUtilization(object, callBackData) { + object = {}; + + if (this.filter != null && this.filter !== undefined) { + if (this.filter.employee !== 'NULL') { + object.employee = this.filter.employee; + } + + object.start = this.filter.start; + object.end = this.filter.end; + } + + var reqJson = JSON.stringify(object); + callBackData = callBackData === undefined || callBackData === null ? [] : callBackData; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getAttendanceSuccessCallBack'; + callBackData.callBackFail = 'getAttendanceFailCallBack'; + this.customAction('getAttendance', 'admin=charts', reqJson, callBackData); + } + }, { + key: "getAttendanceFailCallBack", + value: function getAttendanceFailCallBack(callBackData) { + this.showMessage('Error Occured while getting data for chart', callBackData); + } + }, { + key: "getAttendanceSuccessCallBack", + value: function getAttendanceSuccessCallBack(callBackData) { + var that = this; + var filterHtml = that.getTableTopButtonHtml(); + $('#tabPageAttendanceGraph svg').remove(); + $('#tabPageAttendanceGraph div').remove(); + var $tabPageAttendanceGraph = $('#tabPageAttendanceGraph'); + $tabPageAttendanceGraph.html(''); + $tabPageAttendanceGraph.html("".concat(filterHtml, "")); + nv.addGraph(function () { + var chart = nv.models.multiBarChart().margin({ + bottom: 200 + }).transitionDuration(0).reduceXTicks(true) // If 'false', every single x-axis tick label will be rendered. + .rotateLabels(45) // Angle to rotate x-axis labels. + .showControls(false) // Allow user to switch between 'Grouped' and 'Stacked' mode. + .groupSpacing(0.1); // Distance between each group of bars. + + chart.yAxis.tickFormat(d3.format(',.1f')); + chart.dispatch.on('stateChange', function (e) { + nv.log('New State:', JSON.stringify(e)); + }); + chart.tooltip(function (key, x, y, e, graph) { + return "

".concat(key, "

") + "

".concat(y, " on ").concat(x, "

"); + }); + d3.select('#tabPageAttendanceGraph svg').datum(callBackData).call(chart); + return chart; + }); + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/insights/analytics'; + } + }]); + + return AttendanceGraphAdapter; +}(_BaseGraphAdapter3["default"]); +/* + * TimeUtilizationGraphAdapter + */ + + +var TimeUtilizationGraphAdapter = /*#__PURE__*/function (_BaseGraphAdapter2) { + _inherits(TimeUtilizationGraphAdapter, _BaseGraphAdapter2); + + var _super2 = _createSuper(TimeUtilizationGraphAdapter); + + function TimeUtilizationGraphAdapter() { + _classCallCheck(this, TimeUtilizationGraphAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(TimeUtilizationGraphAdapter, [{ + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Employees', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['start', { + label: 'Start Date', + type: 'date', + validation: '' + }], ['end', { + label: 'End Date', + type: 'date', + validation: '' + }]]; + } + }, { + key: "get", + value: function get() { + this.initFieldMasterData(); + this.getTimeUtilization(); + } + }, { + key: "doCustomFilterValidation", + value: function doCustomFilterValidation(params) { + var $errorElement = $("#".concat(this.table, "_filter_error")); + $errorElement.html(''); + $errorElement.hide(); + + if (Date.parse(params.start).getTime() > Date.parse(params.end).getTime()) { + $errorElement.html('End date should be a later date than start date'); + $errorElement.show(); + return false; + } + + var dateDiff = (Date.parse(params.end).getTime() - Date.parse(params.start).getTime()) / (1000 * 60 * 60 * 24); + + if (dateDiff > 45 && (params.employee === undefined || params.employee == null || params.employee === 'NULL')) { + $errorElement.html('Differance between start and end dates should not be more than 45 days, when creating chart for all employees'); + $errorElement.show(); + return false; + } + + if (dateDiff > 90) { + $errorElement.html('Differance between start and end dates should not be more than 90 days'); + $errorElement.show(); + return false; + } + + return true; + } + }, { + key: "getTimeUtilization", + value: function getTimeUtilization(object, callBackData) { + object = {}; + + if (this.filter != null && this.filter !== undefined) { + if (this.filter.employee !== 'NULL') { + object.employee = this.filter.employee; + } + + object.start = this.filter.start; + object.end = this.filter.end; + } + + var reqJson = JSON.stringify(object); + callBackData = callBackData === undefined || callBackData === null ? [] : callBackData; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getTimeUtilizationSuccessCallBack'; + callBackData.callBackFail = 'getTimeUtilizationFailCallBack'; + this.customAction('getTimeUtilization', 'admin=charts', reqJson, callBackData); + } + }, { + key: "getTimeUtilizationFailCallBack", + value: function getTimeUtilizationFailCallBack(callBackData) { + this.showMessage('Error Occured while getting data for chart', callBackData); + } + }, { + key: "getTimeUtilizationSuccessCallBack", + value: function getTimeUtilizationSuccessCallBack(callBackData) { + var that = this; + var filterHtml = that.getTableTopButtonHtml(); + $('#tabPageTimeUtilizationGraph svg').remove(); + $('#tabPageTimeUtilizationGraph div').remove(); + var $tabPageTimeUtilizationGraph = $('#tabPageTimeUtilizationGraph'); + $tabPageTimeUtilizationGraph.html(''); + $tabPageTimeUtilizationGraph.html("".concat(filterHtml, "")); + nv.addGraph(function () { + var chart = nv.models.multiBarChart().margin({ + bottom: 200 + }).transitionDuration(0).reduceXTicks(true) // If 'false', every single x-axis tick label will be rendered. + .rotateLabels(45) // Angle to rotate x-axis labels. + .showControls(true) // Allow user to switch between 'Grouped' and 'Stacked' mode. + .groupSpacing(0.1); // Distance between each group of bars. + + chart.yAxis.tickFormat(d3.format(',.1f')); + d3.select('#tabPageTimeUtilizationGraph svg').datum(callBackData).call(chart); + chart.dispatch.on('stateChange', function (e) { + nv.log('New State:', JSON.stringify(e)); + }); + chart.tooltip(function (key, x, y, e, graph) { + return "

".concat(key, "

") + "

".concat(y, " on ").concat(x, "

"); + }); + return chart; + }); + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/insights/analytics'; + } + }]); + + return TimeUtilizationGraphAdapter; +}(_BaseGraphAdapter3["default"]); + +module.exports = { + AttendanceGraphAdapter: AttendanceGraphAdapter, + TimeUtilizationGraphAdapter: TimeUtilizationGraphAdapter +}; + +},{"../../../api/BaseGraphAdapter":54}],6:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.ClientAdapter = _lib.ClientAdapter; + +},{"./lib":7}],7:[function(require,module,exports){ +"use strict"; + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ClientAdapter + */ +var ClientAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(ClientAdapter, _ReactModalAdapterBas); + + var _super = _createSuper(ClientAdapter); + + function ClientAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ClientAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.fieldNameMap = {}; + _this.hiddenFields = {}; + _this.tableFields = {}; + _this.formOnlyFields = {}; + return _this; + } + + _createClass(ClientAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'details', 'address', 'contact_number']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }, { + sTitle: 'Address' + }, { + sTitle: 'Contact Number' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Details', + dataIndex: 'details', + sorter: true + }, { + title: 'Address', + dataIndex: 'address', + sorter: true + }, { + title: 'Contact Number', + dataIndex: 'contact_number', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + if (this.showSave) { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['address', { + label: 'Address', + type: 'textarea', + validation: 'none' + }], ['contact_number', { + label: 'Contact Number', + type: 'text', + validation: 'none' + }], ['contact_email', { + label: 'Contact Email', + type: 'text', + validation: 'none' + }], ['company_url', { + label: 'Company Url', + type: 'text', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['Inactive', 'Inactive']] + }], ['first_contact_date', { + label: 'First Contact Date', + type: 'date', + validation: 'none' + }]]; + } + + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'placeholder' + }], ['details', { + label: 'Details', + type: 'placeholder', + validation: 'none' + }], ['address', { + label: 'Address', + type: 'placeholder', + validation: 'none' + }], ['contact_number', { + label: 'Contact Number', + type: 'placeholder', + validation: 'none' + }], ['contact_email', { + label: 'Contact Email', + type: 'placeholder', + validation: 'none' + }], ['company_url', { + label: 'Company Url', + type: 'placeholder', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'placeholder', + source: [['Active', 'Active'], ['Inactive', 'Inactive']] + }], ['first_contact_date', { + label: 'First Contact Date', + type: 'placeholder', + validation: 'none' + }]]; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'http://blog.icehrm.com/docs/projects/'; + } + }]); + + return ClientAdapter; +}(_ReactModalAdapterBase["default"]); + +module.exports = { + ClientAdapter: ClientAdapter +}; + +},{"../../../api/ReactModalAdapterBase":65}],8:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +var _IceDataPipe = _interopRequireDefault(require("../../../api/IceDataPipe")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function init(data) { + var modJsList = {}; + modJsList.tabCompanyStructure = new _lib.CompanyStructureAdapter('CompanyStructure'); + modJsList.tabCompanyStructure.setObjectTypeName('Company Structure'); + modJsList.tabCompanyStructure.setDataPipe(new _IceDataPipe["default"](modJsList.tabCompanyStructure)); + modJsList.tabCompanyStructure.setAccess(data.permissions.CompanyStructure); + modJsList.tabCompanyStructure.setCustomFields(data.customFields); + modJsList.tabCompanyGraph = new _lib.CompanyGraphAdapter('CompanyStructure'); + window.modJs = modJsList.tabCompanyStructure; + window.modJsList = modJsList; +} + +window.initAdminCompanyStructure = init; + +},{"../../../api/IceDataPipe":58,"./lib":9}],9:[function(require,module,exports){ +"use strict"; + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var CompanyStructureAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(CompanyStructureAdapter, _ReactModalAdapterBas); + + var _super = _createSuper(CompanyStructureAdapter); + + function CompanyStructureAdapter() { + _classCallCheck(this, CompanyStructureAdapter); + + return _super.apply(this, arguments); + } + + _createClass(CompanyStructureAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'title', 'address', 'type', 'country', 'timezone', 'parent']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Address', + bSortable: false + }, { + sTitle: 'Type' + }, { + sTitle: 'Country', + sClass: 'center' + }, { + sTitle: 'Time Zone' + }, { + sTitle: 'Parent Structure' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'title', + sorter: true + }, { + title: 'Address', + dataIndex: 'address' + }, { + title: 'Type', + dataIndex: 'type' + }, { + title: 'Country', + dataIndex: 'country' + }, { + title: 'Time Zone', + dataIndex: 'timezone' + }, { + title: 'Parent Structure', + dataIndex: 'parent' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return this.addCustomFields([['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['title', { + label: 'Name', + type: 'text', + validation: '' + }], ['description', { + label: 'Details', + type: 'textarea', + validation: '' + }], ['address', { + label: 'Address', + type: 'textarea', + validation: 'none' + }], ['type', { + label: 'Type', + type: 'select', + source: [['Company', 'Company'], ['Head Office', 'Head Office'], ['Regional Office', 'Regional Office'], ['Department', 'Department'], ['Unit', 'Unit'], ['Sub Unit', 'Sub Unit'], ['Other', 'Other']] + }], ['country', { + label: 'Country', + type: 'select2', + 'remote-source': ['Country', 'code', 'name'] + }], ['timezone', { + label: 'Time Zone', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Timezone', 'name', 'details', 'getTimezonesWithOffset'] + }], ['parent', { + label: 'Parent Structure', + type: 'select', + 'allow-null': true, + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['heads', { + label: 'Heads', + type: 'select2multi', + 'allow-null': true, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]); + } + }, { + key: "postRenderForm", + value: function postRenderForm(object, $tempDomObj) { + if (object === undefined || object === null || object.id === null || object.id === undefined || object.id === '') { + $tempDomObj.find('#field_heads').hide(); + } + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/employees/employee-information-setup'; + } + }]); + + return CompanyStructureAdapter; +}(_ReactModalAdapterBase["default"]); +/* + * Company Graph + */ + + +var CompanyGraphAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(CompanyGraphAdapter, _AdapterBase); + + var _super2 = _createSuper(CompanyGraphAdapter); + + function CompanyGraphAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, CompanyGraphAdapter); + + _this = _super2.call(this, endPoint, tab, filter, orderBy); + _this.nodeIdCounter = 0; + return _this; + } + + _createClass(CompanyGraphAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'title', 'address', 'type', 'country', 'timezone', 'parent']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Address', + bSortable: false + }, { + sTitle: 'Type' + }, { + sTitle: 'Country', + sClass: 'center' + }, { + sTitle: 'Time Zone' + }, { + sTitle: 'Parent Structure' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['title', { + label: 'Name', + type: 'text', + validation: '' + }], ['description', { + label: 'Details', + type: 'textarea', + validation: '' + }], ['address', { + label: 'Address', + type: 'textarea', + validation: 'none' + }], ['type', { + label: 'Type', + type: 'select', + source: [['Company', 'Company'], ['Head Office', 'Head Office'], ['Regional Office', 'Regional Office'], ['Department', 'Department'], ['Unit', 'Unit'], ['Sub Unit', 'Sub Unit'], ['Other', 'Other']] + }], ['country', { + label: 'Country', + type: 'select2', + 'remote-source': ['Country', 'code', 'name'] + }], ['timezone', { + label: 'Time Zone', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Timezone', 'name', 'details', 'getTimezonesWithOffset'] + }], ['parent', { + label: 'Parent Structure', + type: 'select', + 'allow-null': true, + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['heads', { + label: 'Heads', + type: 'select2multi', + 'allow-null': true, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "convertToTree", + value: function convertToTree(data) { + var ice = {}; + ice.id = -1; + ice.title = ''; + ice.name = ''; + ice.children = []; + var parent = null; + var added = {}; + + for (var i = 0; i < data.length; i++) { + data[i].name = data[i].title; + + if (data[i].parent != null && data[i].parent !== undefined) { + parent = this.findParent(data, data[i].parent); + + if (parent != null) { + if (parent.children === undefined || parent.children == null) { + parent.children = []; + } + + parent.children.push(data[i]); + } + } + } + + for (var _i = 0; _i < data.length; _i++) { + if (data[_i].parent == null || data[_i].parent === undefined) { + ice.children.push(data[_i]); + } + } + + return ice; + } + }, { + key: "findParent", + value: function findParent(data, parent) { + for (var i = 0; i < data.length; i++) { + if (data[i].title === parent || data[i].title === parent) { + return data[i]; + } + } + + return null; + } + }, { + key: "createTable", + value: function createTable(elementId) { + $('#tabPageCompanyGraph').html(''); + var that = this; + var sourceData = this.sourceData; // this.fixCyclicParent(sourceData); + + var treeData = this.convertToTree(sourceData); + var m = [20, 120, 20, 120]; + var w = 5000 - m[1] - m[3]; + var h = 1000 - m[0] - m[2]; + var tree = d3.layout.tree().size([h, w]); + this.diagonal = d3.svg.diagonal().projection(function (d) { + return [d.y, d.x]; + }); + this.vis = d3.select('#tabPageCompanyGraph').append('svg:svg').attr('width', w + m[1] + m[3]).attr('height', h + m[0] + m[2]).append('svg:g').attr('transform', "translate(".concat(m[3], ",").concat(m[0], ")")); + var root = treeData; + root.x0 = h / 2; + root.y0 = 0; + + function toggleAll(d) { + if (d.children) { + console.log(d.name); + d.children.forEach(toggleAll); + that.toggle(d); + } + } + + this.update(root, tree, root); + } + }, { + key: "update", + value: function update(source, tree, root) { + var that = this; + var duration = d3.event && d3.event.altKey ? 5000 : 500; // Compute the new tree layout. + + var nodes = tree.nodes(root).reverse(); // Normalize for fixed-depth. + + nodes.forEach(function (d) { + d.y = d.depth * 180; + }); // Update the nodes� + + var node = that.vis.selectAll('g.node').data(nodes, function (d) { + return d.id || (d.id = ++that.nodeIdCounter); + }); // Enter any new nodes at the parent's previous position. + + var nodeEnter = node.enter().append('svg:g').attr('class', 'node').attr('transform', function (d) { + return "translate(".concat(source.y0, ",").concat(source.x0, ")"); + }).on('click', function (d) { + that.toggle(d); + that.update(d, tree, root); + }); + nodeEnter.append('svg:circle').attr('r', 1e-6).style('fill', function (d) { + return d._children ? 'lightsteelblue' : '#fff'; + }); + nodeEnter.append('svg:text').attr('x', function (d) { + return d.children || d._children ? -10 : 10; + }).attr('dy', '.35em').attr('text-anchor', function (d) { + return d.children || d._children ? 'end' : 'start'; + }).text(function (d) { + return d.name; + }).style('fill-opacity', 1e-6); // Transition nodes to their new position. + + var nodeUpdate = node.transition().duration(duration).attr('transform', function (d) { + return "translate(".concat(d.y, ",").concat(d.x, ")"); + }); + nodeUpdate.select('circle').attr('r', 4.5).style('fill', function (d) { + return d._children ? 'lightsteelblue' : '#fff'; + }); + nodeUpdate.select('text').style('fill-opacity', 1); // Transition exiting nodes to the parent's new position. + + var nodeExit = node.exit().transition().duration(duration).attr('transform', function (d) { + return "translate(".concat(source.y, ",").concat(source.x, ")"); + }).remove(); + nodeExit.select('circle').attr('r', 1e-6); + nodeExit.select('text').style('fill-opacity', 1e-6); // Update the links� + + var link = that.vis.selectAll('path.link').data(tree.links(nodes), function (d) { + return d.target.id; + }); // Enter any new links at the parent's previous position. + + link.enter().insert('svg:path', 'g').attr('class', 'link').attr('d', function (d) { + var o = { + x: source.x0, + y: source.y0 + }; + return that.diagonal({ + source: o, + target: o + }); + }).transition().duration(duration).attr('d', that.diagonal); // Transition links to their new position. + + link.transition().duration(duration).attr('d', that.diagonal); // Transition exiting nodes to the parent's new position. + + link.exit().transition().duration(duration).attr('d', function (d) { + var o = { + x: source.x, + y: source.y + }; + return that.diagonal({ + source: o, + target: o + }); + }).remove(); // Stash the old positions for transition. + + nodes.forEach(function (d) { + d.x0 = d.x; + d.y0 = d.y; + }); + } // Toggle children. + + }, { + key: "toggle", + value: function toggle(d) { + if (d.children) { + d._children = d.children; + d.children = null; + } else { + d.children = d._children; + d._children = null; + } + } + }, { + key: "getSourceDataById", + value: function getSourceDataById(id) { + for (var i = 0; i < this.sourceData.length; i++) { + if (this.sourceData[i].id == id) { + return this.sourceData[i]; + } + } + + return null; + } + }, { + key: "fixCyclicParent", + value: function fixCyclicParent(sourceData) { + var errorMsg = ''; + + for (var i = 0; i < sourceData.length; i++) { + var obj = sourceData[i]; + var curObj = obj; + var parentIdArr = {}; + parentIdArr[curObj.id] = 1; + + while (curObj.parent != null && curObj.parent != undefined) { + var parent = this.getSourceDataById(curObj.parent); + + if (parent == null) { + break; + } else if (parentIdArr[parent.id] == 1) { + errorMsg = "".concat(obj.title, "'s parent structure set to ").concat(parent.title, "
"); + obj.parent = null; + break; + } + + parentIdArr[parent.id] = 1; + curObj = parent; + } + } + + if (errorMsg !== '') { + this.showMessage('Company Structure is having a cyclic dependency', "We found a cyclic dependency due to following reasons:
".concat(errorMsg)); + return false; + } + + return true; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/employees/employee-information-setup'; + } + }]); + + return CompanyGraphAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + CompanyStructureAdapter: CompanyStructureAdapter, + CompanyGraphAdapter: CompanyGraphAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/ReactModalAdapterBase":65}],10:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +var _IceDataPipe = _interopRequireDefault(require("../../../api/IceDataPipe")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function init(data) { + var modJsList = {}; + modJsList.tabCustomField = new _lib.CommonCustomFieldAdapter('CustomField', 'CustomField', {}, ''); + modJsList.tabCustomField.setRemoteTable(true); + modJsList.tabCustomField.setObjectTypeName('Custom Field'); + modJsList.tabCustomField.setDataPipe(new _IceDataPipe["default"](modJsList.tabCustomField)); + modJsList.tabCustomField.setAccess(data.permissions.CustomField); + modJsList.tabCustomField.setTypes(data.types); + window.modJs = modJsList.tabCustomField; + window.modJsList = modJsList; +} + +window.initAdminCustomFields = init; + +},{"../../../api/IceDataPipe":58,"./lib":11}],11:[function(require,module,exports){ +"use strict"; + +var _ReactCustomFieldAdapter = _interopRequireDefault(require("../../../api/ReactCustomFieldAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * AssetTypeAdapter + */ +var CommonCustomFieldAdapter = /*#__PURE__*/function (_ReactCustomFieldAdap) { + _inherits(CommonCustomFieldAdapter, _ReactCustomFieldAdap); + + var _super = _createSuper(CommonCustomFieldAdapter); + + function CommonCustomFieldAdapter() { + _classCallCheck(this, CommonCustomFieldAdapter); + + return _super.apply(this, arguments); + } + + _createClass(CommonCustomFieldAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'type', 'field_type', 'field_label', 'display', 'display_order']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Object Type' + }, { + sTitle: 'Field Type' + }, { + sTitle: 'Field Label' + }, { + sTitle: 'Display Status' + }, { + sTitle: 'Priority' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Object Type', + dataIndex: 'type', + sorter: true + }, { + title: 'Field Label', + dataIndex: 'field_label' + }, { + title: 'Field Type', + dataIndex: 'field_type' + }, { + title: 'Display Status', + dataIndex: 'display', + sorter: true + }, { + title: 'Priority', + dataIndex: 'display_order', + sorter: true + }]; + } + }, { + key: "setTypes", + value: function setTypes(tables) { + this.types = tables; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['field_label', { + label: 'Field Label', + type: 'text', + validation: '' + }], ['type', { + label: 'Object Type', + type: 'select2', + source: this.types + }], ['field_type', { + label: 'Field Type', + type: 'select', + source: [['text', 'Text Field'], ['textarea', 'Text Area'], ['select', 'Select'], ['select2', 'Select2'], ['select2multi', 'Multi Select'], ['fileupload', 'File Upload'], ['date', 'Date'], ['datetime', 'Date Time'], ['time', 'Time'], ['signature', 'Signature']] + }], ['field_validation', { + label: 'Validation', + type: 'select2', + validation: 'none', + sort: 'none', + 'null-label': 'Required', + 'allow-null': true, + source: [['none', 'None'], ['number', 'Number'], ['numberOrEmpty', 'Number or Empty'], ['float', 'Decimal'], ['email', 'Email'], ['emailOrEmpty', 'Email or Empty']] + }], ['field_options', { + label: 'Field Options', + type: 'datagroup', + form: [['label', { + label: 'Label', + type: 'text', + validation: '' + }], ['value', { + label: 'Value', + type: 'text', + validation: 'none' + }]], + html: '
#_delete_##_edit_##_label_#:#_value_#
', + columns: [{ + title: 'Label', + dataIndex: 'label', + key: 'label' + }, { + title: 'Option Value', + dataIndex: 'value', + key: 'value' + }], + validation: 'none' + }], ['display_order', { + label: 'Priority', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['type', { + label: 'Object Type', + type: 'select2', + 'allow-null': true, + source: this.types + }]]; + } + }, { + key: "forceInjectValuesBeforeSave", + value: function forceInjectValuesBeforeSave(params) { + var data = ['', {}]; + var options = []; + var optionsData; + data[1].label = params.field_label; + data[1].type = params.field_type; + data[1].validation = params.field_validation; + + if (['select', 'select2', 'select2multi'].indexOf(params.field_type) >= 0) { + optionsData = params.field_options === '' || params.field_options === undefined ? [] : JSON.parse(params.field_options); + + for (var index in optionsData) { + options.push([optionsData[index].value, optionsData[index].label]); + } + + data[1].source = options; + } + + if (params.field_validation == null || params.field_validation === undefined) { + params.field_validation = ''; + } + + if (this.currentElement == null || this.currentElement.name == null || this.currentElement.name === '') { + params.name = this.getNameFromFieldName(params.field_label); + } else { + params.name = this.currentElement.name; + } + + data[0] = params.name; + params.data = JSON.stringify(data); + params.display = 'Form'; + params.display_order = parseInt(params.display_order); + + if (!Number.isInteger(params.display_order)) { + params.display_order = 1; + } + + return params; + } + }]); + + return CommonCustomFieldAdapter; +}(_ReactCustomFieldAdapter["default"]); + +module.exports = { + CommonCustomFieldAdapter: CommonCustomFieldAdapter +}; + +},{"../../../api/ReactCustomFieldAdapter":63}],12:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.DashboardAdapter = _lib.DashboardAdapter; + +},{"./lib":13}],13:[function(require,module,exports){ +"use strict"; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _g2plot = require("@antv/g2plot"); + +var _reactDom = _interopRequireDefault(require("react-dom")); + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _TaskList = _interopRequireDefault(require("../../../components/TaskList")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var DashboardAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(DashboardAdapter, _AdapterBase); + + var _super = _createSuper(DashboardAdapter); + + function DashboardAdapter() { + _classCallCheck(this, DashboardAdapter); + + return _super.apply(this, arguments); + } + + _createClass(DashboardAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return []; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return []; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "get", + value: function get(callBackData) { + this.initializeReactDashboard(); + } + }, { + key: "getInitData", + value: function getInitData() { + var that = this; + var object = {}; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getInitDataSuccessCallBack'; + callBackData.callBackFail = 'getInitDataFailCallBack'; + this.customAction('getInitData', 'admin=dashboard', reqJson, callBackData); + } + }, { + key: "getInitDataSuccessCallBack", + value: function getInitDataSuccessCallBack(data) { + $('#numberOfEmployees').html("".concat(data.numberOfEmployees, " Employees")); + $('#numberOfCompanyStuctures').html("".concat(data.numberOfCompanyStuctures, " Departments")); + $('#numberOfUsers').html("".concat(data.numberOfUsers, " Users")); + $('#numberOfProjects').html("".concat(data.numberOfProjects, " Active Projects")); + $('#numberOfAttendanceLastWeek').html("".concat(data.numberOfAttendanceLastWeek, " Entries Last Week")); + $('#numberOfLeaves').html("".concat(data.numberOfLeaves, " Upcoming")); + $('#numberOfTimeEntries').html(data.numberOfTimeEntries); + $('#numberOfCandidates').html("".concat(data.numberOfCandidates, " Candidates")); + $('#numberOfJobs').html("".concat(data.numberOfJobs, " Active")); + $('#numberOfCourses').html("".concat(data.numberOfCourses, " Courses")); + } + }, { + key: "getInitDataFailCallBack", + value: function getInitDataFailCallBack(callBackData) {} + }, { + key: "getSpinner", + value: function getSpinner() { + return /*#__PURE__*/_react["default"].createElement(_antd.Row, null, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 8 + }, " "), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 8 + }, /*#__PURE__*/_react["default"].createElement(_antd.Spin, { + size: "large" + })), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 8 + }, " ")); + } + }, { + key: "initializeReactDashboard", + value: function initializeReactDashboard() { + //this.drawCompanyLeaveEntitlementChart(); + this.drawOnlineOfflineEmployeeChart(); + this.drawEmployeeDistributionChart(); + this.buildTaskList(); + } + }, { + key: "buildTaskList", + value: function buildTaskList() { + document.getElementById('TaskListWrap').style.display = 'none'; + + _reactDom["default"].render(this.getSpinner(), document.getElementById('TaskListLoader')); + + this.apiClient.get('tasks').then(function (data) { + document.getElementById('TaskListWrap').style.display = 'block'; + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_TaskList["default"], { + tasks: data.data + }), document.getElementById('TaskList')); + + _reactDom["default"].unmountComponentAtNode(document.getElementById('TaskListLoader')); + }); + } + }, { + key: "drawEmployeeDistributionChart", + value: function drawEmployeeDistributionChart() { + var that = this; + document.getElementById('EmployeeDistributionChart').style.display = 'none'; + + _reactDom["default"].render(this.getSpinner(), document.getElementById('EmployeeDistributionChartLoader')); + + this.apiClient.get('charts/employees-distribution').then(function (data) { + var chartData = Object.keys(data.data).map(function (key) { + return { + type: key.charAt(0).toUpperCase() + key.slice(1), + value: data.data[key] + }; + }); + var props = { + forceFit: true, + title: { + visible: true, + text: that.gt('Employee Distribution') + }, + description: { + visible: false, + text: '' + }, + statistic: { + visible: true, + content: { + value: chartData.reduce(function (acc, item) { + return acc + item.value; + }, 0), + name: that.gt('Total') + } + }, + legend: { + visible: true, + position: 'bottom-center' + }, + radius: 0.8, + padding: 'auto', + data: chartData, + angleField: 'value', + colorField: 'type', + label: { + visible: true, + type: 'outer', + offset: 20 + } + }; + + _reactDom["default"].unmountComponentAtNode(document.getElementById('EmployeeDistributionChartLoader')); + + document.getElementById('EmployeeDistributionChart').style.display = 'block'; + var plot = new _g2plot.Pie(document.getElementById('EmployeeDistributionChart'), props); + plot.render(); + }); + } + }, { + key: "drawOnlineOfflineEmployeeChart", + value: function drawOnlineOfflineEmployeeChart() { + var that = this; + document.getElementById('EmployeeOnlineOfflineChart').style.display = 'none'; + + _reactDom["default"].render(this.getSpinner(), document.getElementById('EmployeeOnlineOfflineChartLoader')); + + this.apiClient.get('charts/employee-check-ins').then(function (data) { + var chartData = Object.keys(data.data).map(function (key) { + return { + type: key, + value: data.data[key] + }; + }); + var props = { + forceFit: true, + title: { + visible: true, + text: that.gt('Employee Check-Ins') + }, + description: { + visible: false, + text: '' + }, + statistic: { + visible: true, + content: { + value: chartData.reduce(function (acc, item) { + return acc + item.value; + }, 0), + name: that.gt('Total') + } + }, + legend: { + visible: true, + position: 'bottom-center' + }, + radius: 0.8, + padding: 'auto', + data: chartData, + angleField: 'value', + colorField: 'type' + }; + + _reactDom["default"].unmountComponentAtNode(document.getElementById('EmployeeOnlineOfflineChartLoader')); + + document.getElementById('EmployeeOnlineOfflineChart').style.display = 'block'; + var donutPlot = new _g2plot.Donut(document.getElementById('EmployeeOnlineOfflineChart'), props); + donutPlot.render(); + }); + } + }, { + key: "drawCompanyLeaveEntitlementChart", + value: function drawCompanyLeaveEntitlementChart() { + var that = this; + document.getElementById('CompanyLeaveEntitlementChart').style.display = 'none'; + + _reactDom["default"].render(this.getSpinner(), document.getElementById('CompanyLeaveEntitlementChartLoader')); + + this.apiClient.get('charts/company-leave-entitlement').then(function (data) { + var chartData = Object.keys(data.data).map(function (key) { + return { + type: key, + value: data.data[key] + }; + }); + var props = { + forceFit: true, + title: { + visible: true, + text: that.gt('Company Vacation Usage') + }, + description: { + visible: false, + text: '' + }, + statistic: { + visible: true, + content: { + value: chartData.reduce(function (acc, item) { + return acc + item.value; + }, 0), + name: that.gt('Total') + } + }, + legend: { + visible: true, + position: 'bottom-center' + }, + radius: 0.8, + padding: 'auto', + data: chartData, + angleField: 'value', + colorField: 'type' + }; + + _reactDom["default"].unmountComponentAtNode(document.getElementById('CompanyLeaveEntitlementChartLoader')); + + document.getElementById('CompanyLeaveEntitlementChart').style.display = 'block'; + var donutPlot = new _g2plot.Donut(document.getElementById('CompanyLeaveEntitlementChart'), props); + donutPlot.render(); + }); + } + }]); + + return DashboardAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + DashboardAdapter: DashboardAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../components/TaskList":80,"@antv/g2plot":"@antv/g2plot","antd":"antd","react":"react","react-dom":"react-dom"}],14:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.DataImportAdapter = _lib.DataImportAdapter; +window.DataImportFileAdapter = _lib.DataImportFileAdapter; + +},{"./lib":15}],15:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * DataImportAdapter + */ +var DataImportAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(DataImportAdapter, _AdapterBase); + + var _super = _createSuper(DataImportAdapter); + + function DataImportAdapter() { + _classCallCheck(this, DataImportAdapter); + + return _super.apply(this, arguments); + } + + _createClass(DataImportAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'dataType', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Data Type' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['dataType', { + label: 'Data Type', + type: 'select', + sort: 'none', + source: [['EmployeeDataImporter', 'Employee Data'], ['AttendanceDataImporter', 'Attendance Data'], ['PayrollDataImporter', 'Payroll Data'], ['UserDataImporter', 'User Data'], ['CommonDataImporter', 'Common Data Importer']] + }], ['objectType', { + label: 'Object Type', + type: 'select', + sort: 'none', + 'allow-null': true, + 'null-label': 'None', + source: [['LeaveStartingBalance', 'Leave Starting Balance'], ['HoliDay', 'Holidays'], ['EmployeeExpense', 'Employee Expenses'], ['Project', 'Projects'], ['EmployeeProject', 'Employee Projects'], ['EmployeeSalary', 'Employee Salary'], ['PayrollEmployee', 'Company Payroll'], ['Client', 'Clients'], ['Province', 'Provinces'], ['Industry', 'Industry'], ['Industry', 'Industry'], ['EmergencyContact', 'Emergency Contacts'], ['Ethnicity', 'Ethnicity'], ['Nationality', 'Nationality'], ['JobTitle', 'Job Titles'], ['PayFrequency', 'Pay Frequency'], ['PayrollEmployee', 'Payroll Employees'], ['SalaryComponent', 'Salary Components'], ['EmployeeSalary', 'Employee Salary'], ['CompanyStructure', 'Company Structure']] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['columns', { + label: 'Columns', + type: 'datagroup', + form: [['name', { + label: 'CSV Field Name', + type: 'text', + validation: '' + }], ['title', { + label: 'Field Title', + type: 'text', + validation: 'none' + }], ['type', { + label: 'Type', + type: 'select', + sort: 'none', + source: [['Normal', 'Normal'], ['Reference', 'Reference']] + }], ['dependOn', { + label: 'Depends On', + type: 'select', + 'allow-null': true, + 'null-label': 'N/A', + source: [['EmergencyContact', 'Emergency Contacts'], ['Ethnicity', 'Ethnicity'], ['Nationality', 'Nationality'], ['JobTitle', 'JobTitle'], ['PayFrequency', 'Pay Frequency'], ['PayGrade', 'Pay Grade'], ['EmploymentStatus', 'Employment Status'], ['CompanyStructure', 'Company Structure'], ['Employee', 'Employee'], ['ImmigrationStatus', 'Immigration Status'], ['Industry', 'Industry'], ['CurrencyType', 'CurrencyType'], ['Document', 'Document'], ['Education', 'Education'], ['ExpensesCategory', 'Expenses Category'], ['ExpensesPaymentMethod', 'Expenses Payment Method'], ['ExperienceLevel', 'Experience Level'], ['Form', 'Form'], ['HiringPipeline', 'Hiring Pipeline'], ['HoliDay', 'HoliDay'], ['Language', 'Language'], ['LeaveGroup', 'Leave Group'], ['LeavePeriod', 'Leave Period'], ['LeaveRule', 'Leave Rule'], ['LeaveType', 'Leave Type'], ['OvertimeCategory', 'Overtime Category'], ['Project', 'Project'], ['Client', 'Client'], ['ReviewTemplate', 'Review Template'], ['SalaryComponent', 'Salary Component'], ['SalaryComponentType', 'Salary Component Type'], ['Skill', 'Skill'], ['Timezone', 'Timezone'], ['AssetType', 'Asset Type'], ['Benifit', 'Benifit'], ['Certification', 'Certification'], ['Country', 'Country'], ['Province', 'Province'], ['TrainingSession', 'TrainingSession'], ['User', 'User']] + }], ['dependOnField', { + label: 'Depends On Field', + type: 'select', + 'allow-null': true, + 'null-label': 'N/A', + source: [['id', 'id'], ['employee_id', 'employee_id'], ['name', 'name'], ['code', 'code'], ['title', 'title'], ['employee', 'employee']] + }], ['idField', { + label: 'Is ID Field', + type: 'select', + validation: '', + source: [['No', 'No'], ['Yes', 'Yes']] + }], ['sampleValue', { + label: 'Sample Value', + type: 'text' + }], ['help', { + label: 'Help Text', + type: 'text' + }]], + html: '
#_name_# #_delete_##_edit_#
Title: #_title_#
Type: #_type_#
Sample: #_sampleValue_#
 #_help_#
', + validation: 'none', + 'custom-validate-function': function customValidateFunction(data) { + var res = {}; + res.params = data; + res.valid = true; + + if (data.type === 'Reference') { + if (data.dependOn === 'NULL') { + res.message = 'If the type is Reference this field should referring another object'; + res.valid = false; + } else if (dependOnField == null || dependOnField === 'NULL') { + res.message = "If the type is Reference then 'Depends On Field' can not be empty"; + res.valid = false; + } + } else if (data.type === 'Normal') { + if (data.dependOn !== 'NULL') { + res.message = 'If the type is Reference this field should not refer another object'; + res.valid = false; + } else if (dependOnField == null || dependOnField === 'NULL') { + res.message = "If the type is Reference then 'Depends On Field' should be empty"; + res.valid = false; + } + } + + return res; + } + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var download = ''; + var deleteButton = ''; + var cloneButton = ''; + var html = '
_edit__download__clone__delete_
'; + + if (this.showAddNew) { + html = html.replace('_clone_', cloneButton); + } else { + html = html.replace('_clone_', ''); + } + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace('_download_', download); + html = html.replace(/_id_/g, id); + html = html.replace(/_status_/g, data[6]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "downloadTemplate", + value: function downloadTemplate(id) { + var params = { + t: this.table, + sa: 'downloadTemplate', + mod: 'admin=data' + }; + params.req = JSON.stringify({ + id: id + }); + var downloadUrl = modJs.getCustomActionUrl('ca', params); + window.open(downloadUrl, '_blank'); + } + }]); + + return DataImportAdapter; +}(_AdapterBase3["default"]); +/** + * DataImportFileAdapter + */ + + +var DataImportFileAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(DataImportFileAdapter, _AdapterBase2); + + var _super2 = _createSuper(DataImportFileAdapter); + + function DataImportFileAdapter() { + _classCallCheck(this, DataImportFileAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(DataImportFileAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'data_import_definition', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Data Import Definition' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['data_import_definition', { + label: 'Data Import Definitions', + type: 'select', + 'remote-source': ['DataImport', 'id', 'name'] + }], ['file', { + label: 'File to Import', + type: 'fileupload', + validation: '', + filetypes: 'csv,txt' + }], ['details', { + label: 'Last Export Result', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var processButton = ''; + var deleteButton = ''; + var cloneButton = ''; + var html = '
_edit__process__clone__delete_
'; + + if (this.showAddNew) { + html = html.replace('_clone_', cloneButton); + } else { + html = html.replace('_clone_', ''); + } + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + if (data[3] === 'Not Processed') { + html = html.replace('_process_', processButton); + } else { + html = html.replace('_process_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_status_/g, data[6]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "process", + value: function process(id) { + var object = { + id: id + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'processSuccessCallBack'; + callBackData.callBackFail = 'processFailCallBack'; + this.customAction('processDataFile', 'admin=data', reqJson, callBackData); + } + }, { + key: "processSuccessCallBack", + value: function processSuccessCallBack(callBackData) { + this.showMessage('Success', 'File imported successfully.'); + this.get([]); + } + }, { + key: "processFailCallBack", + value: function processFailCallBack(callBackData) { + this.showMessage('Error', "File import unsuccessful. Result:".concat(callBackData)); + } + }]); + + return DataImportFileAdapter; +}(_AdapterBase3["default"]); + +module.exports = { + DataImportAdapter: DataImportAdapter, + DataImportFileAdapter: DataImportFileAdapter +}; + +},{"../../../api/AdapterBase":52}],16:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.DocumentAdapter = _lib.DocumentAdapter; +window.CompanyDocumentAdapter = _lib.CompanyDocumentAdapter; +window.EmployeeDocumentAdapter = _lib.EmployeeDocumentAdapter; + +},{"./lib":17}],17:[function(require,module,exports){ +"use strict"; + +var _AdapterBase4 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * DocumentAdapter + */ +var DocumentAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(DocumentAdapter, _AdapterBase); + + var _super = _createSuper(DocumentAdapter); + + function DocumentAdapter() { + _classCallCheck(this, DocumentAdapter); + + return _super.apply(this, arguments); + } + + _createClass(DocumentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['expire_notification', { + label: 'Notify Expiry', + type: 'select', + source: [['Yes', 'Yes'], ['No', 'No']] + }], ['expire_notification_month', { + label: 'Notify Expiry Before One Month', + type: 'select', + source: [['Yes', 'Yes'], ['No', 'No']] + }], ['expire_notification_week', { + label: 'Notify Expiry Before One Week', + type: 'select', + source: [['Yes', 'Yes'], ['No', 'No']] + }], ['expire_notification_day', { + label: 'Notify Expiry Before One Day', + type: 'select', + source: [['Yes', 'Yes'], ['No', 'No']] + }], ['share_with_employee', { + label: 'Share with Employee', + type: 'select', + source: [['Yes', 'Yes'], ['No', 'No']] + }], // [ "sign", {"label":"Require Signature","type":"select","source":[["Yes","Yes"],["No","No"]]}], + // [ "sign", {"label":"Require Signature","type":"select","source":[["Yes","Yes"],["No","No"]]}], + // [ "sign_label", {"label":"Signature Description","type":"textarea","validation":"none"}], + ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/training-and-reviews/document-management'; + } + }]); + + return DocumentAdapter; +}(_AdapterBase4["default"]); +/** + * CompanyDocumentAdapter + */ + + +var CompanyDocumentAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(CompanyDocumentAdapter, _AdapterBase2); + + var _super2 = _createSuper(CompanyDocumentAdapter); + + function CompanyDocumentAdapter() { + _classCallCheck(this, CompanyDocumentAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(CompanyDocumentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'details', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['Inactive', 'Inactive'], ['Draft', 'Draft']] + }], ['attachment', { + label: 'Attachment', + type: 'fileupload' + }], ['share_departments', { + label: 'Share Departments', + type: 'select2multi', + 'allow-null': true, + 'null-label': 'All Departments', + 'remote-source': ['CompanyStructure', 'id', 'title'], + help: 'This document will be visible to employees from selected department. If no department is selected only Admin users can see this' + }], ['share_employees', { + label: 'Share Employees', + type: 'select2multi', + 'allow-null': true, + 'null-label': 'All Employees', + 'remote-source': ['Employee', 'id', 'first_name+last_name'], + validation: 'none', + help: 'Instead of sharing with all the employees in a department, you can share it only with specific employees' + }]]; + } + }]); + + return CompanyDocumentAdapter; +}(_AdapterBase4["default"]); +/** + * EmployeeDocumentAdapter + */ + + +var EmployeeDocumentAdapter = /*#__PURE__*/function (_AdapterBase3) { + _inherits(EmployeeDocumentAdapter, _AdapterBase3); + + var _super3 = _createSuper(EmployeeDocumentAdapter); + + function EmployeeDocumentAdapter() { + _classCallCheck(this, EmployeeDocumentAdapter); + + return _super3.apply(this, arguments); + } + + _createClass(EmployeeDocumentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'document', 'details', 'date_added', 'status', 'attachment']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Document' + }, { + sTitle: 'Details' + }, { + sTitle: 'Date Added' + }, { + sTitle: 'Status' + }, { + sTitle: 'Attachment', + bVisible: false + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['document', { + label: 'Document', + type: 'select2', + 'remote-source': ['Document', 'id', 'name'] + }], ['date_added', { + label: 'Date Added', + type: 'date', + validation: '' + }], ['valid_until', { + label: 'Valid Until', + type: 'date', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['Inactive', 'Inactive'], ['Draft', 'Draft']] + }], ['visible_to', { + label: 'Visible To', + type: 'select', + source: [['Owner', 'Owner'], ['Manager', 'Manager'], ['Admin', 'Admin']] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['attachment', { + label: 'Attachment', + type: 'fileupload', + validation: '' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
' + '' + '' + '' + '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_attachment_/g, data[6]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmployeeDocumentAdapter; +}(_AdapterBase4["default"]); + +module.exports = { + DocumentAdapter: DocumentAdapter, + CompanyDocumentAdapter: CompanyDocumentAdapter, + EmployeeDocumentAdapter: EmployeeDocumentAdapter +}; + +},{"../../../api/AdapterBase":52}],18:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireWildcard(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +var _TagList = _interopRequireDefault(require("../../../../components/TagList")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Search = _antd.Input.Search; +var Title = _antd.Typography.Title, + Text = _antd.Typography.Text; +var TabPane = _antd.Tabs.TabPane; + +var EmployeeProfile = /*#__PURE__*/function (_React$Component) { + _inherits(EmployeeProfile, _React$Component); + + var _super = _createSuper(EmployeeProfile); + + function EmployeeProfile(props) { + var _this; + + _classCallCheck(this, EmployeeProfile); + + _this = _super.call(this, props); + _this.state = { + loading: true + }; + return _this; + } + + _createClass(EmployeeProfile, [{ + key: "updateProfileImage", + value: function updateProfileImage() { + showUploadDialog("profile_image_".concat(this.props.element.id, "_").concat(new Date().getTime()), 'Upload Profile Image', 'profile_image', this.props.element.id, "profile_image_".concat(this.props.element.id), 'function', 'reloadCurrentElement', 'image'); + } + }, { + key: "getEditButtonJsx", + value: function getEditButtonJsx() { + var _this2 = this; + + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, this.props.loading && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.SyncOutlined, { + spin: true + }), + color: "processing" + }, this.props.adapter.gt('Edit')), !this.props.loading && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), + color: "processing", + onClick: function onClick() { + return modJs.edit(_this2.props.element.id); + } + }, this.props.adapter.gt('Edit'))); + } + }, { + key: "getTabViewEmployeeFilterButtonJsx", + value: function getTabViewEmployeeFilterButtonJsx(tab) { + var _this3 = this; + + return /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), + color: "processing", + onClick: function onClick() { + switchTab(tab, { + employee: _this3.props.element.id + }); + } + }, this.props.adapter.gt('Edit')); + } + }, { + key: "render", + value: function render() { + var _this4 = this; + + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Employee Profile'), + extra: this.getEditButtonJsx(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: 'large' + }, /*#__PURE__*/_react["default"].createElement(_antd.Avatar, { + size: 140, + src: this.props.element.image, + onClick: function onClick() { + return _this4.updateProfileImage(); + } + }), /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: 'vertical' + }, /*#__PURE__*/_react["default"].createElement(Title, { + level: 4 + }, "".concat(this.props.element.first_name, " ").concat(this.props.element.last_name)), /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.PhoneTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.mobile_phone || ''))), /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.MailTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.work_email || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true, + style: { + width: '100%', + padding: '10px' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Employee Number'), + span: 3 + }, this.props.element.employee_id), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('ID Number'), + span: 3 + }, this.props.element.nic_num || ''), this.props.element.ssn_num && this.props.element.ssn_num !== '' && /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Social Security Number'), + span: 3 + }, this.props.element.ssn_num || '')))))), /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Tabs, { + type: "card", + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(TabPane, { + tab: "Basic Information", + key: "1", + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Personal Information'), + extra: this.getEditButtonJsx(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Date of Birth') + }, this.props.element.birthday || ''), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Gender') + }, this.props.element.gender), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Nationality') + }, this.props.element.nationality_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Marital Status') + }, this.props.element.marital_status), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Joined Date') + }, this.props.element.joined_date), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Driving License No') + }, this.props.element.driving_license || ''), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Other ID') + }, this.props.element.other_id || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Contact Information'), + extra: this.getEditButtonJsx(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Address'), + span: 3 + }, "".concat(this.props.element.address1, ", ").concat(this.props.element.address2 || '')), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('City') + }, this.props.element.city), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Country') + }, this.props.element.country_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Postal/Zip Code') + }, this.props.element.postal_code), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Home Phone'), + span: 2 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.PhoneTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.home_phone || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Work Phone'), + span: 2 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.PhoneTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.work_phone || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Private Email'), + span: 2 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.MailTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.private_email || ''))))))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Job Details'), + extra: this.getEditButtonJsx(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Job Title'), + span: 2 + }, this.props.element.job_title_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Employment Status') + }, this.props.element.employment_status_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Department') + }, this.props.element.department_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Supervisor') + }, this.props.element.supervisor_Name)))))), /*#__PURE__*/_react["default"].createElement(TabPane, { + tab: this.props.adapter.gt('Qualifications'), + key: "2", + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Skills'), + extra: this.getTabViewEmployeeFilterButtonJsx('tabEmployeeSkill'), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "geekblue", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/skills"), + extractTag: function extractTag(item) { + return item.skill_id.display; + } + }))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Education'), + extra: this.getTabViewEmployeeFilterButtonJsx('tabEmployeeEducation'), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "cyan", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/educations"), + extractTag: function extractTag(item) { + return item.education_id.display; + } + }))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Certifications'), + extra: this.getTabViewEmployeeFilterButtonJsx('tabEmployeeCertification'), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "volcano", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/certifications"), + extractTag: function extractTag(item) { + return item.certification_id.display; + } + }))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Languages'), + extra: this.getTabViewEmployeeFilterButtonJsx('tabEmployeeLanguage'), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "orange", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/languages"), + extractTag: function extractTag(item) { + return item.language_id.display; + } + })))))))); + } + }]); + + return EmployeeProfile; +}(_react["default"].Component); + +var _default = EmployeeProfile; +exports["default"] = _default; + +},{"../../../../components/TagList":79,"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],19:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +var _IceDataPipe = _interopRequireDefault(require("../../../api/IceDataPipe")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +window.EmployeeAdapter = _lib.EmployeeAdapter; +window.TerminatedEmployeeAdapter = _lib.TerminatedEmployeeAdapter; +window.ArchivedEmployeeAdapter = _lib.ArchivedEmployeeAdapter; +window.EmployeeSkillAdapter = _lib.EmployeeSkillAdapter; +window.EmployeeEducationAdapter = _lib.EmployeeEducationAdapter; +window.EmployeeCertificationAdapter = _lib.EmployeeCertificationAdapter; +window.EmployeeLanguageAdapter = _lib.EmployeeLanguageAdapter; +window.EmployeeDependentAdapter = _lib.EmployeeDependentAdapter; +window.EmergencyContactAdapter = _lib.EmergencyContactAdapter; +window.EmployeeImmigrationAdapter = _lib.EmployeeImmigrationAdapter; +window.EmployeeSubSkillsAdapter = _lib.EmployeeSubSkillsAdapter; +window.EmployeeSubEducationAdapter = _lib.EmployeeSubEducationAdapter; +window.EmployeeSubCertificationAdapter = _lib.EmployeeSubCertificationAdapter; +window.EmployeeSubLanguageAdapter = _lib.EmployeeSubLanguageAdapter; +window.EmployeeSubDependentAdapter = _lib.EmployeeSubDependentAdapter; +window.EmployeeSubEmergencyContactAdapter = _lib.EmployeeSubEmergencyContactAdapter; +window.EmployeeSubDocumentAdapter = _lib.EmployeeSubDocumentAdapter; +window.IceDataPipe = _IceDataPipe["default"]; + +},{"../../../api/IceDataPipe":58,"./lib":20}],20:[function(require,module,exports){ +"use strict"; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +var _AdapterBase = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _SubAdapterBase = _interopRequireDefault(require("../../../api/SubAdapterBase")); + +var _ReactLegacyModalAdapterBase = _interopRequireDefault(require("../../../api/ReactLegacyModalAdapterBase")); + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +var _EmployeeProfile = _interopRequireDefault(require("./components/EmployeeProfile")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var SubProfileEnabledAdapterBase = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(SubProfileEnabledAdapterBase, _ReactModalAdapterBas); + + var _super = _createSuper(SubProfileEnabledAdapterBase); + + function SubProfileEnabledAdapterBase() { + _classCallCheck(this, SubProfileEnabledAdapterBase); + + return _super.apply(this, arguments); + } + + _createClass(SubProfileEnabledAdapterBase, [{ + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return SubProfileEnabledAdapterBase; +}(_ReactModalAdapterBase["default"]); + +var EmployeeAdapter = /*#__PURE__*/function (_ReactModalAdapterBas2) { + _inherits(EmployeeAdapter, _ReactModalAdapterBas2); + + var _super2 = _createSuper(EmployeeAdapter); + + function EmployeeAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeAdapter); + + _this = _super2.call(this, endPoint, tab, filter, orderBy); + _this.fieldNameMap = {}; + _this.hiddenFields = {}; + _this.tableFields = {}; + _this.formOnlyFields = {}; + return _this; + } + + _createClass(EmployeeAdapter, [{ + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }, { + key: "setFieldNameMap", + value: function setFieldNameMap(fields) { + var field; + + for (var i = 0; i < fields.length; i++) { + field = fields[i]; + this.fieldNameMap[field.name] = field; + + if (field.display === 'Hidden') { + this.hiddenFields[field.name] = field; + } else if (field.display === 'Table and Form' || field.display === 'Form') { + this.tableFields[field.name] = field; + } else { + this.formOnlyFields[field.name] = field; + } + } + } + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + var that = this; + return { + aoColumnDefs: [{ + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 1); + }, + aTargets: [1] + }, { + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }] + }; + } + }, { + key: "preProcessRemoteTableData", + value: function preProcessRemoteTableData(data, cell, id) { + if (id === 1) { + var tmp = 'User Image'; + return tmp.replace('_img_', cell); + } + + return cell; + } + }, { + key: "getTableHTMLTemplate", + value: function getTableHTMLTemplate() { + return '
'; + } + }, { + key: "getTableFields", + value: function getTableFields() { + return ['id', 'image', 'employee_id', 'first_name', 'last_name', //'mobile_phone', + 'department', //'gender', + 'supervisor']; + } + }, { + key: "getDataMapping", + value: function getDataMapping() { + var tableFields = this.getTableFields(); + var newTableFields = []; + + for (var i = 0; i < tableFields.length; i++) { + if ((this.hiddenFields[tableFields[i]] === undefined || this.hiddenFields[tableFields[i]] === null) && (this.formOnlyFields[tableFields[i]] === undefined || this.formOnlyFields[tableFields[i]] === null)) { + newTableFields.push(tableFields[i]); + } + } + + return newTableFields; + } + }, { + key: "getHeaders", + value: function getHeaders() { + var tableFields = this.getTableFields(); + var headers = [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: '', + bSortable: false + }]; + var title = ''; + + for (var i = 0; i < tableFields.length; i++) { + if ((this.hiddenFields[tableFields[i]] === undefined || this.hiddenFields[tableFields[i]] === null) && (this.formOnlyFields[tableFields[i]] === undefined || this.formOnlyFields[tableFields[i]] === null)) { + if (this.fieldNameMap[tableFields[i]] !== undefined && this.fieldNameMap[tableFields[i]] !== null) { + title = this.fieldNameMap[tableFields[i]].textMapped; + + if (title === undefined || title === null || title === '') { + headers.push({ + sTitle: title + }); + } else if (tableFields[i] === 'gender') { + headers.push({ + sTitle: title, + translate: true + }); + } else { + headers.push({ + sTitle: title + }); + } + } + } + } + + return headers; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + var columns = this.getDataMapping(); + var headers = this.getHeaders(); + var tableColumns = []; + + for (var i = 1; i < columns.length; i++) { + tableColumns.push({ + title: headers[i].sTitle, + dataIndex: columns[i], + sorter: true + }); + + if (columns[i] === 'image') { + tableColumns[i - 1].render = function (text, record) { + return /*#__PURE__*/_react["default"].createElement(_antd.Avatar, { + src: text + }); + }; + } + } + + return tableColumns; + } + }, { + key: "showElement", + value: function showElement(element) { + this.tableContainer.current.setCurrentElement(element); + } + }, { + key: "getTableChildComponents", + value: function getTableChildComponents() { + return /*#__PURE__*/_react["default"].createElement(_EmployeeProfile["default"], null); + } + }, { + key: "getFormFields", + value: function getFormFields() { + var newFields = []; + var tempField; + var title; + var fields = [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['employee_id', { + label: 'Employee Number', + type: 'text', + validation: '' + }], ['first_name', { + label: 'First Name', + type: 'text', + validation: '' + }], ['middle_name', { + label: 'Middle Name', + type: 'text', + validation: 'none' + }], ['last_name', { + label: 'Last Name', + type: 'text', + validation: '' + }], ['nationality', { + label: 'Nationality', + type: 'select2', + 'remote-source': ['Nationality', 'id', 'name'] + }], ['birthday', { + label: 'Date of Birth', + type: 'date', + validation: '' + }], ['gender', { + label: 'Gender', + type: 'select', + source: [['Male', 'Male'], ['Female', 'Female'], ['Other', 'Other']] + }], ['marital_status', { + label: 'Marital Status', + type: 'select', + source: [['Married', 'Married'], ['Single', 'Single'], ['Divorced', 'Divorced'], ['Widowed', 'Widowed'], ['Other', 'Other']] + }], ['ethnicity', { + label: 'Ethnicity', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Ethnicity', 'id', 'name'] + }], ['immigration_status', { + label: 'Immigration Status', + type: 'select2', + 'allow-null': true, + 'remote-source': ['ImmigrationStatus', 'id', 'name'] + }], ['ssn_num', { + label: 'SSN/NRIC', + type: 'text', + validation: 'none' + }], ['nic_num', { + label: 'NIC', + type: 'text', + validation: 'none' + }], ['other_id', { + label: 'Other ID', + type: 'text', + validation: 'none' + }], ['driving_license', { + label: 'Driving License No', + type: 'text', + validation: 'none' + }], ['employment_status', { + label: 'Employment Status', + type: 'select2', + 'remote-source': ['EmploymentStatus', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['job_title', { + label: 'Job Title', + type: 'select2', + 'remote-source': ['JobTitle', 'id', 'name'] + }], ['pay_grade', { + label: 'Pay Grade', + type: 'select2', + 'allow-null': true, + 'remote-source': ['PayGrade', 'id', 'name'] + }], ['joined_date', { + label: 'Joined Date', + type: 'date', + validation: '' + }], ['confirmation_date', { + label: 'Confirmation Date', + type: 'date', + validation: 'none' + }], ['termination_date', { + label: 'Termination Date', + type: 'date', + validation: 'none' + }], ['work_station_id', { + label: 'Work Station Id', + type: 'text', + validation: 'none' + }], ['address1', { + label: 'Address Line 1', + type: 'text', + validation: 'none' + }], ['address2', { + label: 'Address Line 2', + type: 'text', + validation: 'none' + }], ['city', { + label: 'City', + type: 'text', + validation: 'none' + }], ['country', { + label: 'Country', + type: 'select2', + 'remote-source': ['Country', 'code', 'name'] + }], ['province', { + label: 'State', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Province', 'id', 'name'] + }], ['postal_code', { + label: 'Postal/Zip Code', + type: 'text', + validation: 'none' + }], ['home_phone', { + label: 'Home Phone', + type: 'text', + validation: 'none' + }], ['mobile_phone', { + label: 'Mobile Phone', + type: 'text', + validation: 'none' + }], ['work_phone', { + label: 'Work Phone', + type: 'text', + validation: 'none' + }], ['work_email', { + label: 'Work Email', + type: 'text', + validation: 'emailOrEmpty' + }], ['private_email', { + label: 'Private Email', + type: 'text', + validation: 'emailOrEmpty' + }], ['supervisor', { + label: 'Direct Supervisor', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['indirect_supervisors', { + label: 'Indirect Supervisors', + type: 'select2multi', + 'allow-null': true, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['approver1', { + label: 'First Level Approver', + type: 'select2', + 'allow-null': true, + 'null-label': 'None', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['approver2', { + label: 'Second Level Approver', + type: 'select2', + 'allow-null': true, + 'null-label': 'None', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['approver3', { + label: 'Third Level Approver', + type: 'select2', + 'allow-null': true, + 'null-label': 'None', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['notes', { + label: 'Notes', + type: 'datagroup', + form: [['note', { + label: 'Note', + type: 'textarea', + validation: '' + }]], + html: '
#_delete_##_edit_#Date: #_date_#
#_note_#
', + validation: 'none', + columns: [{ + title: 'Note', + dataIndex: 'note', + key: 'note' + }], + 'sort-function': function sortFunction(a, b) { + var t1 = Date.parse(a.date).getTime(); + var t2 = Date.parse(b.date).getTime(); + return t1 < t2; + }, + 'custom-validate-function': function customValidateFunction(data) { + var res = {}; + res.valid = true; + data.date = new Date().toString('d-MMM-yyyy hh:mm tt'); + res.params = data; + return res; + } + }]]; + + for (var i = 0; i < this.customFields.length; i++) { + fields.push(this.customFields[i]); + } + + for (var _i = 0; _i < fields.length; _i++) { + tempField = fields[_i]; + + if (this.hiddenFields[tempField[0]] === undefined || this.hiddenFields[tempField[0]] === null) { + if (this.fieldNameMap[tempField[0]] !== undefined && this.fieldNameMap[tempField[0]] !== null) { + title = this.fieldNameMap[tempField[0]].textMapped; + tempField[1].label = title; + } + + newFields.push(tempField); + } + } + + return newFields; + } + }, { + key: "getMappedFields", + value: function getMappedFields() { + var fields = this.getFormFields(); + var steps = [{ + title: this.gt('Personal'), + description: this.gt('Personal Information'), + fields: ['id', 'employee_id', 'first_name', 'middle_name', 'last_name', 'nationality', 'birthday', 'gender', 'marital_status', 'ethnicity'] + }, { + title: this.gt('Identification'), + description: this.gt('Personal Information'), + fields: ['immigration_status', 'ssn_num', 'nic_num', 'other_id', 'driving_license'] + }, { + title: this.gt('Work'), + description: this.gt('Work related details'), + fields: ['employment_status', 'department', 'job_title', 'pay_grade', 'joined_date', 'confirmation_date', 'termination_date', 'work_station_id'] + }, { + title: this.gt('Contact'), + description: this.gt('Contact details'), + fields: ['address1', 'address2', 'city', 'country', 'province', 'postal_code', 'home_phone', 'mobile_phone', 'work_phone', 'work_email', 'private_email'] + }, { + title: this.gt('Report'), + description: this.gt('Supervisors and reports'), + fields: ['supervisor', 'indirect_supervisors', 'approver1', 'approver2', 'approver3', 'notes'] + }]; + + if (this.customFields.length > 0) { + steps.push({ + title: this.gt('Other'), + description: this.gt('Additional details'), + fields: this.customFields.map(function (item) { + return item[0]; + }) + }); + } + + return this.addActualFieldsForStepModal(steps, fields); + } + }, { + key: "getFilters", + value: function getFilters() { + return [['job_title', { + label: 'Job Title', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Job Titles', + 'remote-source': ['JobTitle', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Departments', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['supervisor', { + label: 'Supervisor', + type: 'select2', + 'allow-null': true, + 'null-label': 'Anyone', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "getTableActionButtonJsx", + value: function getTableActionButtonJsx(adapter) { + return function (text, record) { + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: "middle" + }, /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "orange", + onClick: function onClick() { + return modJs.setAdminProfile(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.LoginOutlined, null), " ".concat(adapter.gt('Login As'))), adapter.hasAccess('save') && adapter.showEdit && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "green", + onClick: function onClick() { + return modJs.edit(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), " ".concat(adapter.gt('Edit'))), adapter.hasAccess('element') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + onClick: function onClick() { + return modJs.viewElement(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MonitorOutlined, null), " ".concat(adapter.gt('View'))), adapter.hasAccess('delete') && adapter.showDelete && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "volcano", + onClick: function onClick() { + return modJs.terminateEmployee(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " ".concat(adapter.gt('Deactivate'))), adapter.hasAccess('save') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "cyan", + onClick: function onClick() { + return modJs.copyRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.CopyOutlined, null), " ".concat(adapter.gt('Copy')))); + }; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id) { + var deleteBtn = ''; + + if (this.showDelete === false) { + deleteBtn = ''; + } // eslint-disable-next-line max-len + + + var html = "
\n\n\n\n".concat(deleteBtn, "\n
"); + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://thilinah.gitbooks.io/icehrm-guide/content/employee-information-setup.html'; + } + }, { + key: "saveSuccessItemCallback", + value: function saveSuccessItemCallback(data) { + this.lastSavedEmployee = data; + + if (this.currentId === null) { + $('#createUserModel').modal('show'); + } + } + }, { + key: "closeCreateUser", + value: function closeCreateUser() { + $('#createUserModel').modal('hide'); + } + }, { + key: "createUser", + value: function createUser() { + var data = {}; + data.employee = this.lastSavedEmployee.id; + data.user_level = 'Employee'; + data.email = this.lastSavedEmployee.work_email; + data.username = this.lastSavedEmployee.work_email.split('@')[0]; + top.location.href = this.getCustomUrl("?g=admin&n=users&m=admin_Admin&action=new&object=".concat(Base64.encodeURI(JSON.stringify(data)))); + } + }, { + key: "deleteEmployee", + value: function deleteEmployee(id) { + if (confirm('Are you sure you want to archive this employee? Data for this employee will be saved to an archive table. But you will not be able to covert the archived employee data into a normal employee.')) {// Archive + } else { + return; + } + + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'deleteEmployeeSuccessCallback'; + callBackData.callBackFail = 'deleteEmployeeFailCallback'; + this.customAction('deleteEmployee', 'admin=employees', JSON.stringify({ + id: id + }), callBackData); + } + }, { + key: "deleteEmployeeSuccessCallback", + value: function deleteEmployeeSuccessCallback(callBackData) { + this.showMessage('Delete Success', 'Employee deleted. You can find archived information for this employee in Archived Employees tab'); + this.get([]); + } + }, { + key: "deleteEmployeeFailCallback", + value: function deleteEmployeeFailCallback(callBackData) { + this.showMessage('Error occurred while deleting Employee', callBackData); + } + }, { + key: "terminateEmployee", + value: function terminateEmployee(id) { + if (confirm('Are you sure you want to terminate this employee contract? You will still be able to access all details of this employee.')) {// Terminate + } else { + return; + } + + var params = {}; + params.id = id; + var reqJson = JSON.stringify(params); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'terminateEmployeeSuccessCallback'; + callBackData.callBackFail = 'terminateEmployeeFailCallback'; + this.customAction('terminateEmployee', 'admin=employees', reqJson, callBackData); + } + }, { + key: "terminateEmployeeSuccessCallback", + value: function terminateEmployeeSuccessCallback(callBackData) { + this.showMessage('Success', 'Employee contract terminated. You can find terminated employee information under Terminated Employees menu.'); + this.get([]); + } + }, { + key: "terminateEmployeeFailCallback", + value: function terminateEmployeeFailCallback(callBackData) { + this.showMessage('Error occured while terminating Employee', callBackData); + } + }, { + key: "activateEmployee", + value: function activateEmployee(id) { + if (confirm('Are you sure you want to re-activate this employee contract?')) {// Terminate + } else { + return; + } + + var params = {}; + params.id = id; + var reqJson = JSON.stringify(params); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'activateEmployeeSuccessCallback'; + callBackData.callBackFail = 'activateEmployeeFailCallback'; + this.customAction('activateEmployee', 'admin=employees', reqJson, callBackData); + } + }, { + key: "activateEmployeeSuccessCallback", + value: function activateEmployeeSuccessCallback(callBackData) { + this.showMessage('Success', 'Employee contract re-activated.'); + this.get([]); + } + }, { + key: "activateEmployeeFailCallback", + value: function activateEmployeeFailCallback(callBackData) { + this.showMessage('Error occurred while activating Employee', callBackData); + } + }, { + key: "view", + value: function view(id) { + var that = this; + this.currentId = id; + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + var object = { + id: id, + map: sourceMappingJson + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'renderEmployee'; + callBackData.callBackFail = 'viewFailCallBack'; + this.customAction('get', 'modules=employees', reqJson, callBackData); + } + }, { + key: "viewFailCallBack", + value: function viewFailCallBack(callBackData) { + this.showMessage('Error', 'Error Occurred while retrieving candidate'); + } + }, { + key: "deleteProfileImage", + value: function deleteProfileImage(empId) { + var req = { + id: empId + }; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'modEmployeeDeleteProfileImageCallBack'; + callBackData.callBackFail = 'modEmployeeDeleteProfileImageCallBack'; + this.customAction('deleteProfileImage', 'modules=employees', reqJson, callBackData); + } + }, { + key: "modEmployeeDeleteProfileImageCallBack", + value: function modEmployeeDeleteProfileImageCallBack(data) {// top.location.href = top.location.href; + } + }]); + + return EmployeeAdapter; +}(_ReactModalAdapterBase["default"]); +/* + * Terminated Employee + */ + + +var TerminatedEmployeeAdapter = /*#__PURE__*/function (_EmployeeAdapter) { + _inherits(TerminatedEmployeeAdapter, _EmployeeAdapter); + + var _super3 = _createSuper(TerminatedEmployeeAdapter); + + function TerminatedEmployeeAdapter() { + _classCallCheck(this, TerminatedEmployeeAdapter); + + return _super3.apply(this, arguments); + } + + _createClass(TerminatedEmployeeAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee_id', 'first_name', 'last_name', 'mobile_phone', 'department', 'gender', 'supervisor']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID' + }, { + sTitle: '', + bSortable: false + }, { + sTitle: 'Employee Number' + }, { + sTitle: 'First Name' + }, { + sTitle: 'Last Name' + }, { + sTitle: 'Mobile' + }, { + sTitle: 'Department' + }, { + sTitle: 'Gender' + }, { + sTitle: 'Supervisor' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee Number', + dataIndex: 'employee_id', + sorter: true + }, { + title: 'First Name', + dataIndex: 'first_name' + }, { + title: 'Last Name', + dataIndex: 'last_name' + }, { + title: 'Department', + dataIndex: 'department' + }, { + title: 'Supervisor', + dataIndex: 'supervisor' + }]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['job_title', { + label: 'Job Title', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Job Titles', + 'remote-source': ['JobTitle', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Departments', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['supervisor', { + label: 'Supervisor', + type: 'select2', + 'allow-null': true, + 'null-label': 'Anyone', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id) { + // eslint-disable-next-line max-len + var html = "
\n\n\n\n
"; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "download", + value: function download(id) { + var params = { + t: 'ArchivedEmployee', + sa: 'downloadArchivedEmployee', + mod: 'admin=employees' + }; + params.req = JSON.stringify({ + id: id + }); + var downloadUrl = modJs.getCustomActionUrl('ca', params); + window.open(downloadUrl, '_blank'); + } + }, { + key: "getTableActionButtonJsx", + value: function getTableActionButtonJsx(adapter) { + return function (text, record) { + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: "middle" + }, /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "cyan", + onClick: function onClick() { + return modJs.activateEmployee(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.UndoOutlined, null), " ".concat(adapter.gt('Activate'))), adapter.hasAccess('delete') && adapter.showDelete && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "volcano", + onClick: function onClick() { + return modJs.deleteEmployee(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " ".concat(adapter.gt('Delete')))); + }; + } + }]); + + return TerminatedEmployeeAdapter; +}(EmployeeAdapter); +/* + * Archived Employee + */ + + +var ArchivedEmployeeAdapter = /*#__PURE__*/function (_SubProfileEnabledAda) { + _inherits(ArchivedEmployeeAdapter, _SubProfileEnabledAda); + + var _super4 = _createSuper(ArchivedEmployeeAdapter); + + function ArchivedEmployeeAdapter() { + _classCallCheck(this, ArchivedEmployeeAdapter); + + return _super4.apply(this, arguments); + } + + _createClass(ArchivedEmployeeAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee_id', 'first_name', 'last_name', 'work_email', 'department', 'gender', 'supervisor']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID' + }, { + sTitle: 'Employee Number' + }, { + sTitle: 'First Name' + }, { + sTitle: 'Last Name' + }, { + sTitle: 'Work Email' + }, { + sTitle: 'Department' + }, { + sTitle: 'Gender' + }, { + sTitle: 'Supervisor' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee Number', + dataIndex: 'employee_id', + sorter: true + }, { + title: 'First Name', + dataIndex: 'first_name' + }, { + title: 'Last Name', + dataIndex: 'last_name' + }, { + title: 'Department', + dataIndex: 'department' + }, { + title: 'Supervisor', + dataIndex: 'supervisor' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['employee_id', { + label: 'Employee Number', + type: 'text', + validation: '' + }], ['first_name', { + label: 'First Name', + type: 'text', + validation: '' + }], ['middle_name', { + label: 'Middle Name', + type: 'text', + validation: 'none' + }], ['last_name', { + label: 'Last Name', + type: 'text', + validation: '' + }], ['gender', { + label: 'Gender', + type: 'select', + source: [['Male', 'Male'], ['Female', 'Female'], ['Other', 'Other']] + }], ['ssn_num', { + label: 'SSN/NRIC', + type: 'text', + validation: 'none' + }], ['nic_num', { + label: 'NIC', + type: 'text', + validation: 'none' + }], ['other_id', { + label: 'Other ID', + type: 'text', + validation: 'none' + }], ['driving_license', { + label: 'Driving License No', + type: 'text', + validation: 'none' + }], ['department', { + label: 'Department', + type: 'select2', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['supervisor', { + label: 'Supervisor', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['job_title', { + label: 'Job Title', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Job Titles', + 'remote-source': ['JobTitle', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Departments', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['supervisor', { + label: 'Supervisor', + type: 'select2', + 'allow-null': true, + 'null-label': 'Anyone', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id) { + // eslint-disable-next-line max-len + var html = '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "download", + value: function download(id) { + var params = { + t: 'ArchivedEmployee', + sa: 'downloadArchivedEmployee', + mod: 'admin=employees' + }; + params.req = JSON.stringify({ + id: id + }); + var downloadUrl = modJs.getCustomActionUrl('ca', params); + window.open(downloadUrl, '_blank'); + } + }, { + key: "getTableActionButtonJsx", + value: function getTableActionButtonJsx(adapter) { + return function (text, record) { + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: "middle" + }, adapter.hasAccess('element') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + onClick: function onClick() { + return modJs.viewElement(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MonitorOutlined, null), " ".concat(adapter.gt('View'))), /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "cyan", + onClick: function onClick() { + return modJs.download(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.CloudDownloadOutlined, null), " ".concat(adapter.gt('Download'))), adapter.hasAccess('delete') && adapter.showDelete && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "volcano", + onClick: function onClick() { + return modJs.deleteRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " ".concat(adapter.gt('Delete')))); + }; + } + }]); + + return ArchivedEmployeeAdapter; +}(SubProfileEnabledAdapterBase); +/* + * ========================================================== + */ + + +var EmployeeSkillAdapter = /*#__PURE__*/function (_ReactModalAdapterBas3) { + _inherits(EmployeeSkillAdapter, _ReactModalAdapterBas3); + + var _super5 = _createSuper(EmployeeSkillAdapter); + + function EmployeeSkillAdapter() { + _classCallCheck(this, EmployeeSkillAdapter); + + return _super5.apply(this, arguments); + } + + _createClass(EmployeeSkillAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'skill_id', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Skill' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Skill', + dataIndex: 'skill_id', + sorter: true + }, { + title: 'Details', + dataIndex: 'details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['skill_id', { + label: 'Skill', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Skill', 'id', 'name'] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: '' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['skill_id', { + label: 'Skill', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Skills', + 'remote-source': ['Skill', 'id', 'name'] + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmployeeSkillAdapter; +}(_ReactModalAdapterBase["default"]); +/** + * EmployeeEducationAdapter + */ + + +var EmployeeEducationAdapter = /*#__PURE__*/function (_SubProfileEnabledAda2) { + _inherits(EmployeeEducationAdapter, _SubProfileEnabledAda2); + + var _super6 = _createSuper(EmployeeEducationAdapter); + + function EmployeeEducationAdapter() { + _classCallCheck(this, EmployeeEducationAdapter); + + return _super6.apply(this, arguments); + } + + _createClass(EmployeeEducationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'education_id', 'institute', 'date_start', 'date_end']; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Qualification', + dataIndex: 'education_id', + sorter: true + }, { + title: 'Institute', + dataIndex: 'institute', + sorter: true + }, { + title: 'Start Date', + dataIndex: 'date_start', + sorter: true + }, { + title: 'Completed On', + dataIndex: 'date_end', + sorter: true + }]; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Qualification' + }, { + sTitle: 'Institute' + }, { + sTitle: 'Start Date' + }, { + sTitle: 'Completed On' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['education_id', { + label: 'Qualification', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Education', 'id', 'name'] + }], ['institute', { + label: 'Institute', + type: 'text', + validation: '' + }], ['date_start', { + label: 'Start Date', + type: 'date', + validation: 'none' + }], ['date_end', { + label: 'Completed On', + type: 'date', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['education_id', { + label: 'Qualification', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Qualifications', + 'remote-source': ['Education', 'id', 'name'] + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmployeeEducationAdapter; +}(SubProfileEnabledAdapterBase); +/** + * EmployeeCertificationAdapter + */ + + +var EmployeeCertificationAdapter = /*#__PURE__*/function (_SubProfileEnabledAda3) { + _inherits(EmployeeCertificationAdapter, _SubProfileEnabledAda3); + + var _super7 = _createSuper(EmployeeCertificationAdapter); + + function EmployeeCertificationAdapter() { + _classCallCheck(this, EmployeeCertificationAdapter); + + return _super7.apply(this, arguments); + } + + _createClass(EmployeeCertificationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'certification_id', 'institute', 'date_start', 'date_end']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Certification' + }, { + sTitle: 'Institute' + }, { + sTitle: 'Granted On' + }, { + sTitle: 'Valid Thru' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Certification', + dataIndex: 'certification_id', + sorter: true + }, { + title: 'Institute', + dataIndex: 'institute', + sorter: true + }, { + title: 'Granted On', + dataIndex: 'date_start', + sorter: true + }, { + title: 'Valid Until', + dataIndex: 'date_end', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['certification_id', { + label: 'Certification', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Certification', 'id', 'name'] + }], ['institute', { + label: 'Institute', + type: 'text', + validation: '' + }], ['date_start', { + label: 'Granted On', + type: 'date', + validation: 'none' + }], ['date_end', { + label: 'Valid Thru', + type: 'date', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['certification_id', { + label: 'Certification', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Certifications', + 'remote-source': ['Certification', 'id', 'name'] + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmployeeCertificationAdapter; +}(SubProfileEnabledAdapterBase); +/** + * EmployeeLanguageAdapter + */ + + +var EmployeeLanguageAdapter = /*#__PURE__*/function (_SubProfileEnabledAda4) { + _inherits(EmployeeLanguageAdapter, _SubProfileEnabledAda4); + + var _super8 = _createSuper(EmployeeLanguageAdapter); + + function EmployeeLanguageAdapter() { + _classCallCheck(this, EmployeeLanguageAdapter); + + return _super8.apply(this, arguments); + } + + _createClass(EmployeeLanguageAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'language_id', 'reading', 'speaking', 'writing', 'understanding']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Language' + }, { + sTitle: 'Reading' + }, { + sTitle: 'Speaking' + }, { + sTitle: 'Writing' + }, { + sTitle: 'Listening' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Language', + dataIndex: 'language_id', + sorter: true + }, { + title: 'Reading', + dataIndex: 'reading', + sorter: true + }, { + title: 'Speaking', + dataIndex: 'speaking', + sorter: true + }, { + title: 'Writing', + dataIndex: 'writing', + sorter: true + }, { + title: 'Listening', + dataIndex: 'understanding', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var compArray = [['Elementary Proficiency', 'Elementary Proficiency'], ['Limited Working Proficiency', 'Limited Working Proficiency'], ['Professional Working Proficiency', 'Professional Working Proficiency'], ['Full Professional Proficiency', 'Full Professional Proficiency'], ['Native or Bilingual Proficiency', 'Native or Bilingual Proficiency']]; + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['language_id', { + label: 'Language', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Language', 'id', 'name'] + }], ['reading', { + label: 'Reading', + type: 'select', + source: compArray + }], ['speaking', { + label: 'Speaking', + type: 'select', + source: compArray + }], ['writing', { + label: 'Writing', + type: 'select', + source: compArray + }], ['understanding', { + label: 'Listening', + type: 'select', + source: compArray + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['language_id', { + label: 'Language', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Languages', + 'remote-source': ['Language', 'id', 'name'] + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmployeeLanguageAdapter; +}(SubProfileEnabledAdapterBase); +/** + * EmployeeDependentAdapter + */ + + +var EmployeeDependentAdapter = /*#__PURE__*/function (_SubProfileEnabledAda5) { + _inherits(EmployeeDependentAdapter, _SubProfileEnabledAda5); + + var _super9 = _createSuper(EmployeeDependentAdapter); + + function EmployeeDependentAdapter() { + _classCallCheck(this, EmployeeDependentAdapter); + + return _super9.apply(this, arguments); + } + + _createClass(EmployeeDependentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'name', 'relationship', 'dob', 'id_number']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Name' + }, { + sTitle: 'Relationship' + }, { + sTitle: 'Date of Birth' + }, { + sTitle: 'Id Number' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Relationship', + dataIndex: 'relationship', + sorter: true + }, { + title: 'Date of Birth', + dataIndex: 'dob', + sorter: true + }, { + title: 'Id Number', + dataIndex: 'id_number' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['relationship', { + label: 'Relationship', + type: 'select', + source: [['Child', 'Child'], ['Spouse', 'Spouse'], ['Parent', 'Parent'], ['Other', 'Other']] + }], ['dob', { + label: 'Date of Birth', + type: 'date', + validation: '' + }], ['id_number', { + label: 'Id Number', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmployeeDependentAdapter; +}(SubProfileEnabledAdapterBase); +/* + * EmergencyContactAdapter + */ + + +var EmergencyContactAdapter = /*#__PURE__*/function (_SubProfileEnabledAda6) { + _inherits(EmergencyContactAdapter, _SubProfileEnabledAda6); + + var _super10 = _createSuper(EmergencyContactAdapter); + + function EmergencyContactAdapter() { + _classCallCheck(this, EmergencyContactAdapter); + + return _super10.apply(this, arguments); + } + + _createClass(EmergencyContactAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'name', 'relationship', 'home_phone', 'work_phone', 'mobile_phone']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Name' + }, { + sTitle: 'Relationship' + }, { + sTitle: 'Home Phone' + }, { + sTitle: 'Work Phone' + }, { + sTitle: 'Mobile Phone' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Relationship', + dataIndex: 'relationship', + sorter: true + }, { + title: 'Home Phone', + dataIndex: 'home_phone' + }, { + title: 'Work Phone', + dataIndex: 'work_phone' + }, { + title: 'Mobile Phone', + dataIndex: 'mobile_phone' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['relationship', { + label: 'Relationship', + type: 'text', + validation: 'none' + }], ['home_phone', { + label: 'Home Phone', + type: 'text', + validation: 'none' + }], ['work_phone', { + label: 'Work Phone', + type: 'text', + validation: 'none' + }], ['mobile_phone', { + label: 'Mobile Phone', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmergencyContactAdapter; +}(SubProfileEnabledAdapterBase); +/* + * EmployeeImmigrationAdapter + */ + + +var EmployeeImmigrationAdapter = /*#__PURE__*/function (_SubProfileEnabledAda7) { + _inherits(EmployeeImmigrationAdapter, _SubProfileEnabledAda7); + + var _super11 = _createSuper(EmployeeImmigrationAdapter); + + function EmployeeImmigrationAdapter() { + _classCallCheck(this, EmployeeImmigrationAdapter); + + return _super11.apply(this, arguments); + } + + _createClass(EmployeeImmigrationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'document', 'doc_number', 'issued', 'expiry', 'status', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Document', + sClass: 'columnMain' + }, { + sTitle: 'Number' + }, { + sTitle: 'Issued Date' + }, { + sTitle: 'Expiry Date' + }, { + sTitle: 'Status' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['document', { + label: 'Document', + type: 'select2', + source: [['Passport', 'Passport'], ['Visa', 'Visa']] + }], ['doc_number', { + label: 'Number', + type: 'text', + validation: '' + }], ['issued', { + label: 'Issued Date', + type: 'date', + validation: '' + }], ['expiry', { + label: 'Expiry Date', + type: 'date', + validation: '' + }], ['status', { + label: 'Status', + type: 'text', + validation: 'none' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }]); + + return EmployeeImmigrationAdapter; +}(SubProfileEnabledAdapterBase); + +module.exports = { + EmployeeAdapter: EmployeeAdapter, + TerminatedEmployeeAdapter: TerminatedEmployeeAdapter, + ArchivedEmployeeAdapter: ArchivedEmployeeAdapter, + EmployeeSkillAdapter: EmployeeSkillAdapter, + EmployeeEducationAdapter: EmployeeEducationAdapter, + EmployeeCertificationAdapter: EmployeeCertificationAdapter, + EmployeeLanguageAdapter: EmployeeLanguageAdapter, + EmployeeDependentAdapter: EmployeeDependentAdapter, + EmergencyContactAdapter: EmergencyContactAdapter, + EmployeeImmigrationAdapter: EmployeeImmigrationAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/ReactLegacyModalAdapterBase":64,"../../../api/ReactModalAdapterBase":65,"../../../api/SubAdapterBase":66,"./components/EmployeeProfile":18,"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],21:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.FieldNameAdapter = _lib.FieldNameAdapter; +window.CustomFieldAdapter = _lib.CustomFieldAdapter; + +},{"./lib":22}],22:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _CustomFieldAdapter = _interopRequireDefault(require("../../../api/CustomFieldAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * FieldNameAdapter + */ +var FieldNameAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(FieldNameAdapter, _AdapterBase); + + var _super = _createSuper(FieldNameAdapter); + + function FieldNameAdapter() { + _classCallCheck(this, FieldNameAdapter); + + return _super.apply(this, arguments); + } + + _createClass(FieldNameAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'textOrig', 'textMapped', 'display']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Original Text' + }, { + sTitle: 'Mapped Text' + }, { + sTitle: 'Display Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['type', { + label: 'Type', + type: 'placeholder', + validation: '' + }], ['name', { + label: 'Name', + type: 'placeholder', + validation: '' + }], ['textOrig', { + label: 'Original Text', + type: 'placeholder', + validation: '' + }], ['textMapped', { + label: 'Mapped Text', + type: 'text', + validation: '' + }], ['display', { + label: 'Display Status', + type: 'select', + source: [['Form', 'Show'], ['Hidden', 'Hidden']] + }]]; + } + }]); + + return FieldNameAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + FieldNameAdapter: FieldNameAdapter, + CustomFieldAdapter: _CustomFieldAdapter["default"] +}; + +},{"../../../api/AdapterBase":52,"../../../api/CustomFieldAdapter":55}],23:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +var _IceDataPipe = _interopRequireDefault(require("../../../api/IceDataPipe")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function init(data) { + var modJsList = []; + modJsList.tabJobTitle = new _lib.JobTitleAdapter('JobTitle', 'JobTitle', '', ''); + modJsList.tabJobTitle.setObjectTypeName('Job Titles'); + modJsList.tabJobTitle.setDataPipe(new _IceDataPipe["default"](modJsList.tabJobTitle)); + modJsList.tabJobTitle.setAccess(data.permissions.JobTitle); + modJsList.tabPayGrade = new _lib.PayGradeAdapter('PayGrade', 'PayGrade', '', ''); + modJsList.tabPayGrade.setObjectTypeName('Pay Grades'); + modJsList.tabPayGrade.setDataPipe(new _IceDataPipe["default"](modJsList.tabPayGrade)); + modJsList.tabPayGrade.setAccess(data.permissions.PayGrade); + modJsList.tabEmploymentStatus = new _lib.EmploymentStatusAdapter('EmploymentStatus', 'EmploymentStatus', '', ''); + modJsList.tabEmploymentStatus.setObjectTypeName('Employment Status'); + modJsList.tabEmploymentStatus.setDataPipe(new _IceDataPipe["default"](modJsList.tabEmploymentStatus)); + modJsList.tabEmploymentStatus.setAccess(data.permissions.EmploymentStatus); + window.modJs = modJsList.tabJobTitle; + window.modJsList = modJsList; +} + +window.initAdminJobs = init; + +},{"../../../api/IceDataPipe":58,"./lib":24}],24:[function(require,module,exports){ +"use strict"; + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * JobTitleAdapter + */ +var JobTitleAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(JobTitleAdapter, _ReactModalAdapterBas); + + var _super = _createSuper(JobTitleAdapter); + + function JobTitleAdapter() { + _classCallCheck(this, JobTitleAdapter); + + return _super.apply(this, arguments); + } + + _createClass(JobTitleAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'code', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Code' + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['code', { + label: 'Job Title Code', + type: 'text' + }], ['name', { + label: 'Job Title', + type: 'text' + }], ['description', { + label: 'Description', + type: 'textarea' + }], ['specification', { + label: 'Specification', + type: 'textarea' + }]]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Job Title Code', + dataIndex: 'code', + sorter: true + }, { + title: 'Job Title', + dataIndex: 'name', + sorter: true + }]; + } + }]); + + return JobTitleAdapter; +}(_ReactModalAdapterBase["default"]); +/** + * PayGradeAdapter + */ + + +var PayGradeAdapter = /*#__PURE__*/function (_ReactModalAdapterBas2) { + _inherits(PayGradeAdapter, _ReactModalAdapterBas2); + + var _super2 = _createSuper(PayGradeAdapter); + + function PayGradeAdapter() { + _classCallCheck(this, PayGradeAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(PayGradeAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'currency', 'min_salary', 'max_salary']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Currency' + }, { + sTitle: 'Min Salary' + }, { + sTitle: 'Max Salary' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Pay Grade Name', + type: 'text' + }], ['currency', { + label: 'Currency', + type: 'select2', + 'remote-source': ['CurrencyType', 'code', 'name'] + }], ['min_salary', { + label: 'Min Salary', + type: 'text', + validation: 'float' + }], ['max_salary', { + label: 'Max Salary', + type: 'text', + validation: 'float' + }]]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Currency', + dataIndex: 'currency' + }, { + title: 'Min Salary', + dataIndex: 'min_salary' + }, { + title: 'Max Salary', + dataIndex: 'max_salary' + }]; + } + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + try { + if (parseFloat(params.min_salary) > parseFloat(params.max_salary)) { + return 'Min Salary should be smaller than Max Salary'; + } + } catch (e) {// D/N + } + + return null; + } + }]); + + return PayGradeAdapter; +}(_ReactModalAdapterBase["default"]); +/** + * EmploymentStatusAdapter + */ + + +var EmploymentStatusAdapter = /*#__PURE__*/function (_ReactModalAdapterBas3) { + _inherits(EmploymentStatusAdapter, _ReactModalAdapterBas3); + + var _super3 = _createSuper(EmploymentStatusAdapter); + + function EmploymentStatusAdapter() { + _classCallCheck(this, EmploymentStatusAdapter); + + return _super3.apply(this, arguments); + } + + _createClass(EmploymentStatusAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'description']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID' + }, { + sTitle: 'Name' + }, { + sTitle: 'Description' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Employment Status', + type: 'text' + }], ['description', { + label: 'Description', + type: 'textarea', + validation: '' + }]]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employment Status', + dataIndex: 'name', + sorter: true + }, { + title: 'Description', + dataIndex: 'description' + }]; + } + }]); + + return EmploymentStatusAdapter; +}(_ReactModalAdapterBase["default"]); + +module.exports = { + JobTitleAdapter: JobTitleAdapter, + PayGradeAdapter: PayGradeAdapter, + EmploymentStatusAdapter: EmploymentStatusAdapter +}; + +},{"../../../api/ReactModalAdapterBase":65}],25:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.CompanyLoanAdapter = _lib.CompanyLoanAdapter; +window.EmployeeCompanyLoanAdapter = _lib.EmployeeCompanyLoanAdapter; + +},{"./lib":26}],26:[function(require,module,exports){ +"use strict"; + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * CompanyLoanAdapter + */ +var CompanyLoanAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(CompanyLoanAdapter, _ReactModalAdapterBas); + + var _super = _createSuper(CompanyLoanAdapter); + + function CompanyLoanAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, CompanyLoanAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.fieldNameMap = {}; + _this.hiddenFields = {}; + _this.tableFields = {}; + _this.formOnlyFields = {}; + return _this; + } + + _createClass(CompanyLoanAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Details', + dataIndex: 'details', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + if (this.showSave) { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }]); + + return CompanyLoanAdapter; +}(_ReactModalAdapterBase["default"]); +/* + * EmployeeCompanyLoanAdapter + */ + + +var EmployeeCompanyLoanAdapter = /*#__PURE__*/function (_ReactModalAdapterBas2) { + _inherits(EmployeeCompanyLoanAdapter, _ReactModalAdapterBas2); + + var _super2 = _createSuper(EmployeeCompanyLoanAdapter); + + function EmployeeCompanyLoanAdapter(endPoint, tab, filter, orderBy) { + var _this2; + + _classCallCheck(this, EmployeeCompanyLoanAdapter); + + _this2 = _super2.call(this, endPoint, tab, filter, orderBy); + _this2.fieldNameMap = {}; + _this2.hiddenFields = {}; + _this2.tableFields = {}; + _this2.formOnlyFields = {}; + return _this2; + } + + _createClass(EmployeeCompanyLoanAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'loan', 'start_date', 'period_months', 'currency', 'amount', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Loan Type' + }, { + sTitle: 'Loan Start Date' + }, { + sTitle: 'Loan Period (Months)' + }, { + sTitle: 'Currency' + }, { + sTitle: 'Amount' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Loan Type', + dataIndex: 'loan', + sorter: true + }, { + title: 'Loan Start Date', + dataIndex: 'start_date', + sorter: true + }, { + title: 'Loan Period (Months)', + dataIndex: 'period_months', + sorter: true + }, { + title: 'Currency', + dataIndex: 'currency', + sorter: true + }, { + title: 'Amount', + dataIndex: 'amount', + sorter: true + }, { + title: 'Status', + dataIndex: 'status', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['loan', { + label: 'Loan Type', + type: 'select', + 'remote-source': ['CompanyLoan', 'id', 'name'] + }], ['start_date', { + label: 'Loan Start Date', + type: 'date', + validation: '' + }], ['last_installment_date', { + label: 'Last Installment Date', + type: 'date', + validation: 'none' + }], ['period_months', { + label: 'Loan Period (Months)', + type: 'text', + validation: 'number' + }], ['currency', { + label: 'Currency', + type: 'select2', + 'remote-source': ['CurrencyType', 'id', 'name'] + }], ['amount', { + label: 'Loan Amount', + type: 'text', + validation: 'float' + }], ['monthly_installment', { + label: 'Monthly Installment', + type: 'text', + validation: 'float' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Approved', 'Approved'], ['Paid', 'Paid'], ['Suspended', 'Suspended']] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Employees', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['loan', { + label: 'Loan Type', + type: 'select', + 'allow-null': true, + 'null-label': 'All Loan Types', + 'remote-source': ['CompanyLoan', 'id', 'name'] + }]]; + } + }]); + + return EmployeeCompanyLoanAdapter; +}(_ReactModalAdapterBase["default"]); + +module.exports = { + CompanyLoanAdapter: CompanyLoanAdapter, + EmployeeCompanyLoanAdapter: EmployeeCompanyLoanAdapter +}; + +},{"../../../api/ReactModalAdapterBase":65}],27:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.CountryAdapter = _lib.CountryAdapter; +window.ProvinceAdapter = _lib.ProvinceAdapter; +window.CurrencyTypeAdapter = _lib.CurrencyTypeAdapter; +window.NationalityAdapter = _lib.NationalityAdapter; +window.ImmigrationStatusAdapter = _lib.ImmigrationStatusAdapter; +window.EthnicityAdapter = _lib.EthnicityAdapter; + +},{"./lib":28}],28:[function(require,module,exports){ +"use strict"; + +var _AdapterBase4 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _IdNameAdapter4 = _interopRequireDefault(require("../../../api/IdNameAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * CountryAdapter + */ +var CountryAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(CountryAdapter, _AdapterBase); + + var _super = _createSuper(CountryAdapter); + + function CountryAdapter() { + _classCallCheck(this, CountryAdapter); + + return _super.apply(this, arguments); + } + + _createClass(CountryAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'code', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Code' + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['code', { + label: 'Code', + type: 'text', + validation: '' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }]]; + } + }]); + + return CountryAdapter; +}(_AdapterBase4["default"]); +/** + * ProvinceAdapter + */ + + +var ProvinceAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(ProvinceAdapter, _AdapterBase2); + + var _super2 = _createSuper(ProvinceAdapter); + + function ProvinceAdapter() { + _classCallCheck(this, ProvinceAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(ProvinceAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'code', 'name', 'country']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Code' + }, { + sTitle: 'Name' + }, { + sTitle: 'Country' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['code', { + label: 'Code', + type: 'text', + validation: '' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['country', { + label: 'Country', + type: 'select2', + 'remote-source': ['Country', 'code', 'name'] + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['country', { + label: 'Country', + type: 'select2', + 'remote-source': ['Country', 'code', 'name'] + }]]; + } + }]); + + return ProvinceAdapter; +}(_AdapterBase4["default"]); +/** + * CurrencyTypeAdapter + */ + + +var CurrencyTypeAdapter = /*#__PURE__*/function (_AdapterBase3) { + _inherits(CurrencyTypeAdapter, _AdapterBase3); + + var _super3 = _createSuper(CurrencyTypeAdapter); + + function CurrencyTypeAdapter() { + _classCallCheck(this, CurrencyTypeAdapter); + + return _super3.apply(this, arguments); + } + + _createClass(CurrencyTypeAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'code', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Code' + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['code', { + label: 'Code', + type: 'text', + validation: '' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }]]; + } + }]); + + return CurrencyTypeAdapter; +}(_AdapterBase4["default"]); +/** + * NationalityAdapter + */ + + +var NationalityAdapter = /*#__PURE__*/function (_IdNameAdapter) { + _inherits(NationalityAdapter, _IdNameAdapter); + + var _super4 = _createSuper(NationalityAdapter); + + function NationalityAdapter() { + _classCallCheck(this, NationalityAdapter); + + return _super4.apply(this, arguments); + } + + return NationalityAdapter; +}(_IdNameAdapter4["default"]); +/** + * ImmigrationStatusAdapter + */ + + +var ImmigrationStatusAdapter = /*#__PURE__*/function (_IdNameAdapter2) { + _inherits(ImmigrationStatusAdapter, _IdNameAdapter2); + + var _super5 = _createSuper(ImmigrationStatusAdapter); + + function ImmigrationStatusAdapter() { + _classCallCheck(this, ImmigrationStatusAdapter); + + return _super5.apply(this, arguments); + } + + return ImmigrationStatusAdapter; +}(_IdNameAdapter4["default"]); +/** + * EthnicityAdapter + */ + + +var EthnicityAdapter = /*#__PURE__*/function (_IdNameAdapter3) { + _inherits(EthnicityAdapter, _IdNameAdapter3); + + var _super6 = _createSuper(EthnicityAdapter); + + function EthnicityAdapter() { + _classCallCheck(this, EthnicityAdapter); + + return _super6.apply(this, arguments); + } + + return EthnicityAdapter; +}(_IdNameAdapter4["default"]); + +module.exports = { + CountryAdapter: CountryAdapter, + ProvinceAdapter: ProvinceAdapter, + CurrencyTypeAdapter: CurrencyTypeAdapter, + NationalityAdapter: NationalityAdapter, + ImmigrationStatusAdapter: ImmigrationStatusAdapter, + EthnicityAdapter: EthnicityAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/IdNameAdapter":59}],29:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.ModuleAdapter = _lib.ModuleAdapter; +window.UsageAdapter = _lib.UsageAdapter; + +},{"./lib":30}],30:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ModuleAdapter + */ +var ModuleAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(ModuleAdapter, _AdapterBase); + + var _super = _createSuper(ModuleAdapter); + + function ModuleAdapter() { + _classCallCheck(this, ModuleAdapter); + + return _super.apply(this, arguments); + } + + _createClass(ModuleAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'label', 'menu', 'mod_group', 'mod_order', 'status', 'version', 'update_path']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Menu', + bVisible: false + }, { + sTitle: 'Group' + }, { + sTitle: 'Order' + }, { + sTitle: 'Status' + }, { + sTitle: 'Version', + bVisible: false + }, { + sTitle: 'Path', + bVisible: false + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['label', { + label: 'Label', + type: 'text', + validation: '' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Enabled', 'Enabled'], ['Disabled', 'Disabled']] + }], ['user_levels', { + label: 'User Levels', + type: 'select2multi', + source: [['Admin', 'Admin'], ['Manager', 'Manager'], ['Employee', 'Employee']] + }], ['user_roles', { + label: 'Allowed User Roles', + type: 'select2multi', + 'remote-source': ['UserRole', 'id', 'name'] + }], ['user_roles_blacklist', { + label: 'Disallowed User Roles', + type: 'select2multi', + 'remote-source': ['UserRole', 'id', 'name'] + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + /* + const nonEditableFields = {}; + nonEditableFields['admin_Company Structure'] = 1; + nonEditableFields.admin_Employees = 1; + nonEditableFields['admin_Job Details Setup'] = 1; + nonEditableFields.admin_Leaves = 1; + nonEditableFields['admin_Manage Modules'] = 1; + nonEditableFields.admin_Projects = 1; + nonEditableFields.admin_Qualifications = 1; + nonEditableFields.admin_Settings = 1; + nonEditableFields.admin_Users = 1; + nonEditableFields.admin_Upgrade = 1; + nonEditableFields.admin_Dashboard = 1; + nonEditableFields['user_Basic Information'] = 1; + nonEditableFields.user_Dashboard = 1; + if (nonEditableFields[`${data[3]}_${data[1]}`] === 1) { + return ''; + } + */ + var html = '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }]); + + return ModuleAdapter; +}(_AdapterBase3["default"]); +/** + * UsageAdapter + */ + + +var UsageAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(UsageAdapter, _AdapterBase2); + + var _super2 = _createSuper(UsageAdapter); + + function UsageAdapter() { + _classCallCheck(this, UsageAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(UsageAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return []; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return []; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "get", + value: function get(callBackData) {} + }, { + key: "saveUsage", + value: function saveUsage() { + var object = {}; + var arr = []; + $('.module-check').each(function () { + if ($(this).is(':checked')) { + arr.push($(this).val()); + } + }); + + if (arr.length === 0) { + alert('Please select one or more module groups'); + return; + } + + object.groups = arr.join(','); + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getInitDataSuccessCallBack'; + callBackData.callBackFail = 'getInitDataFailCallBack'; + this.customAction('saveUsage', 'admin=modules', reqJson, callBackData); + } + }, { + key: "saveUsageSuccessCallBack", + value: function saveUsageSuccessCallBack(data) {} + }, { + key: "saveUsageFailCallBack", + value: function saveUsageFailCallBack(callBackData) {} + }]); + + return UsageAdapter; +}(_AdapterBase3["default"]); + +module.exports = { + ModuleAdapter: ModuleAdapter, + UsageAdapter: UsageAdapter +}; + +},{"../../../api/AdapterBase":52}],31:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.OvertimeCategoryAdapter = _lib.OvertimeCategoryAdapter; +window.EmployeeOvertimeAdminAdapter = _lib.EmployeeOvertimeAdminAdapter; + +},{"./lib":32}],32:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ApproveAdminAdapter2 = _interopRequireDefault(require("../../../api/ApproveAdminAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * OvertimeCategoryAdapter + */ +var OvertimeCategoryAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(OvertimeCategoryAdapter, _AdapterBase); + + var _super = _createSuper(OvertimeCategoryAdapter); + + function OvertimeCategoryAdapter() { + _classCallCheck(this, OvertimeCategoryAdapter); + + return _super.apply(this, arguments); + } + + _createClass(OvertimeCategoryAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }]]; + } + }]); + + return OvertimeCategoryAdapter; +}(_AdapterBase2["default"]); +/** + * EmployeeOvertimeAdminAdapter + */ + + +var EmployeeOvertimeAdminAdapter = /*#__PURE__*/function (_ApproveAdminAdapter) { + _inherits(EmployeeOvertimeAdminAdapter, _ApproveAdminAdapter); + + var _super2 = _createSuper(EmployeeOvertimeAdminAdapter); + + function EmployeeOvertimeAdminAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeOvertimeAdminAdapter); + + _this = _super2.call(this, endPoint, tab, filter, orderBy); + _this.itemName = 'OvertimeRequest'; + _this.itemNameLower = 'overtimerequest'; + _this.modulePathName = 'overtime'; + return _this; + } + + _createClass(EmployeeOvertimeAdminAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'category', 'start_time', 'end_time', 'project', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Category' + }, { + sTitle: 'Start Time' + }, { + sTitle: 'End Time' + }, { + sTitle: 'Project' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['category', { + label: 'Category', + type: 'select2', + 'allow-null': false, + 'remote-source': ['OvertimeCategory', 'id', 'name'] + }], ['start_time', { + label: 'Start Time', + type: 'datetime', + validation: '' + }], ['end_time', { + label: 'End Time', + type: 'datetime', + validation: '' + }], ['project', { + label: 'Project', + type: 'select2', + 'allow-null': true, + 'null=label': 'none', + 'remote-source': ['Project', 'id', 'name'] + }], ['notes', { + label: 'Notes', + type: 'textarea', + validation: 'none' + }]]; + } + }]); + + return EmployeeOvertimeAdminAdapter; +}(_ApproveAdminAdapter2["default"]); + +module.exports = { + OvertimeCategoryAdapter: OvertimeCategoryAdapter, + EmployeeOvertimeAdminAdapter: EmployeeOvertimeAdminAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/ApproveAdminAdapter":53}],33:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.PaydayAdapter = _lib.PaydayAdapter; +window.PayrollAdapter = _lib.PayrollAdapter; +window.PayrollDataAdapter = _lib.PayrollDataAdapter; +window.PayrollColumnAdapter = _lib.PayrollColumnAdapter; +window.PayrollColumnTemplateAdapter = _lib.PayrollColumnTemplateAdapter; +window.PayrollEmployeeAdapter = _lib.PayrollEmployeeAdapter; +window.DeductionAdapter = _lib.DeductionAdapter; +window.DeductionGroupAdapter = _lib.DeductionGroupAdapter; +window.PayslipTemplateAdapter = _lib.PayslipTemplateAdapter; + +},{"./lib":34}],34:[function(require,module,exports){ +"use strict"; + +var _AdapterBase9 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _TableEditAdapter2 = _interopRequireDefault(require("../../../api/TableEditAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +require('codemirror/mode/javascript/javascript'); + +require('codemirror/addon/edit/closebrackets'); + +require('codemirror/addon/display/autorefresh'); + +var CodeMirror = require('codemirror'); +/** + * PaydayAdapter + */ + + +var PaydayAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(PaydayAdapter, _AdapterBase); + + var _super = _createSuper(PaydayAdapter); + + function PaydayAdapter() { + _classCallCheck(this, PaydayAdapter); + + return _super.apply(this, arguments); + } + + _createClass(PaydayAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Select Pay Frequency' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['name', { + label: 'Name', + type: 'text', + validation: '' + }]]; + } + }, { + key: "getAddNewLabel", + value: function getAddNewLabel() { + return 'Run Payroll'; + } + }, { + key: "createTable", + value: function createTable(elementId) { + $('#payday_all').off(); + + _get(_getPrototypeOf(PaydayAdapter.prototype), "createTable", this).call(this, elementId); + + $('#payday_all').off().on('click', function () { + if ($(this).is(':checked')) { + $('.paydayCheck').prop('checked', true); + } else { + $('.paydayCheck').prop('checked', false); + } + }); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var html = '
_edit_
'; + html = html.replace('_edit_', editButton); + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "getActionButtonHeader", + value: function getActionButtonHeader() { + return { + sTitle: '', + sClass: 'center' + }; + } + }]); + + return PaydayAdapter; +}(_AdapterBase9["default"]); +/** + * PayrollAdapter + */ + + +var PayrollAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(PayrollAdapter, _AdapterBase2); + + var _super2 = _createSuper(PayrollAdapter); + + function PayrollAdapter() { + _classCallCheck(this, PayrollAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(PayrollAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'pay_period', 'department', 'date_start', 'date_end', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Pay Frequency' + }, { + sTitle: 'Department' + }, { + sTitle: 'Date Start' + }, { + sTitle: 'Date End' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text' + }], ['pay_period', { + label: 'Pay Frequency', + type: 'select', + 'remote-source': ['PayFrequency', 'id', 'name'], + sort: 'none' + }], ['deduction_group', { + label: 'Payroll Group', + type: 'select', + 'remote-source': ['DeductionGroup', 'id', 'name'], + sort: 'none' + }], ['payslipTemplate', { + label: 'Payslip Template', + type: 'select', + 'remote-source': ['PayslipTemplate', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'remote-source': ['CompanyStructure', 'id', 'title'], + sort: 'none' + }], ['date_start', { + label: 'Start Date', + type: 'date', + validation: '' + }], ['date_end', { + label: 'End Date', + type: 'date', + validation: '' + }], // [ "column_template", {"label":"Report Column Template","type":"select","remote-source":["PayrollColumnTemplate","id","name"]}], + ['columns', { + label: 'Payroll Columns', + type: 'select2multi', + 'remote-source': ['PayrollColumn', 'id', 'name'] + }], ['status', { + label: 'Status', + type: 'select', + source: [['Draft', 'Draft'], ['Completed', 'Completed']], + sort: 'none' + }]]; + } + }, { + key: "postRenderForm", + value: function postRenderForm(object, $tempDomObj) { + if (object != null && object !== undefined && object.id !== undefined && object.id != null) { + $tempDomObj.find('#pay_period').attr('disabled', 'disabled'); + $tempDomObj.find('#department').attr('disabled', 'disabled'); // $tempDomObj.find("#date_start").attr('disabled','disabled'); + // $tempDomObj.find("#date_end").attr('disabled','disabled'); + // $tempDomObj.find("#column_template").attr('disabled','disabled'); + } + } + }, { + key: "process", + value: function process(id, status) { + // eslint-disable-next-line no-global-assign + modJs = modJsList.tabPayrollData; + modJs.setCurrentPayroll(id); + $('#Payroll').hide(); + $('#PayrollData').show(); + $('#PayrollDataButtons').show(); + + if (status === 'Completed') { + $('.completeBtnTable').hide(); + $('.saveBtnTable').hide(); + } else { + $('.completeBtnTable').show(); + $('.saveBtnTable').show(); + } + + modJs.get([]); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var processButton = ''; + var deleteButton = ''; + var cloneButton = ''; + var html = '
_edit__process__clone__delete_
'; + + if (this.showAddNew) { + html = html.replace('_clone_', cloneButton); + } else { + html = html.replace('_clone_', ''); + } + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace('_process_', processButton); + html = html.replace(/_id_/g, id); + html = html.replace(/_status_/g, data[6]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "get", + value: function get(callBackData) { + $('#PayrollData').hide(); + $('#PayrollForm').hide(); + $('#PayrollDataButtons').hide(); + $('#Payroll').show(); + modJsList.tabPayrollData.setCurrentPayroll(null); + + _get(_getPrototypeOf(PayrollAdapter.prototype), "get", this).call(this, callBackData); + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/payroll-and-expenses/payroll-management'; + } + }]); + + return PayrollAdapter; +}(_AdapterBase9["default"]); +/** + * PayrollDataAdapter + */ + + +var PayrollDataAdapter = /*#__PURE__*/function (_TableEditAdapter) { + _inherits(PayrollDataAdapter, _TableEditAdapter); + + var _super3 = _createSuper(PayrollDataAdapter); + + function PayrollDataAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, PayrollDataAdapter); + + _this = _super3.call(this, endPoint, tab, filter, orderBy); + _this.cellDataUpdates = {}; + _this.payrollId = null; + return _this; + } + + _createClass(PayrollDataAdapter, [{ + key: "validateCellValue", + value: function validateCellValue(element, evt, newValue) { + modJs.addCellDataUpdate(element.data('colId'), element.data('rowId'), newValue); + return true; + } + }, { + key: "setCurrentPayroll", + value: function setCurrentPayroll(val) { + this.payrollId = val; + } + }, { + key: "addAdditionalRequestData", + value: function addAdditionalRequestData(type, req) { + if (type === 'updateData') { + req.payrollId = this.payrollId; + } else if (type === 'updateAllData') { + req.payrollId = this.payrollId; + } else if (type === 'getAllData') { + req.payrollId = this.payrollId; + } + + return req; + } + }, { + key: "modifyCSVHeader", + value: function modifyCSVHeader(header) { + header.unshift(''); + return header; + } + }, { + key: "getCSVData", + value: function getCSVData() { + var csv = ''; + + for (var i = 0; i < this.csvData.length; i++) { + csv += this.csvData[i].join(','); + + if (i < this.csvData.length - 1) { + csv += '\r\n'; + } + } + + return csv; + } + }, { + key: "downloadPayroll", + value: function downloadPayroll() { + var element = document.createElement('a'); + element.setAttribute('href', "data:text/plain;charset=utf-8,".concat(encodeURIComponent(this.getCSVData()))); + element.setAttribute('download', "payroll_".concat(this.payrollId, ".csv")); + element.style.display = 'none'; + document.body.appendChild(element); + element.click(); + document.body.removeChild(element); + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/payroll-and-expenses/payroll-management'; + } + }]); + + return PayrollDataAdapter; +}(_TableEditAdapter2["default"]); +/** + * PayrollColumnAdapter + */ + + +var PayrollColumnAdapter = /*#__PURE__*/function (_AdapterBase3) { + _inherits(PayrollColumnAdapter, _AdapterBase3); + + var _super4 = _createSuper(PayrollColumnAdapter); + + function PayrollColumnAdapter(endPoint, tab, filter, orderBy) { + var _this2; + + _classCallCheck(this, PayrollColumnAdapter); + + _this2 = _super4.call(this, endPoint, tab, filter, orderBy); + _this2.codeMirror = CodeMirror; + return _this2; + } + + _createClass(PayrollColumnAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'colorder', 'calculation_hook', 'deduction_group', 'editable', 'enabled']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Column Order' + }, { + sTitle: 'Calculation Method' + }, { + sTitle: 'Payroll Group' + }, { + sTitle: 'Editable' + }, { + sTitle: 'Enabled' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var fucntionColumnList = ['calculation_columns', { + label: 'Calculation Columns', + type: 'datagroup', + form: [['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['column', { + label: 'Column', + type: 'select2', + 'remote-source': ['PayrollColumn', 'id', 'name'] + }]], + html: '
#_delete_##_edit_#
#_renderFunction_#
', + validation: 'none', + render: function render(item) { + var output = "Variable:".concat(item.name); + return output; + } + }]; + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['calculation_hook', { + label: 'Predefined Calculations', + type: 'select2', + 'allow-null': true, + 'null-label': 'None', + 'remote-source': ['CalculationHook', 'code', 'name'] + }], ['deduction_group', { + label: 'Payroll Group', + type: 'select2', + 'allow-null': true, + 'null-label': 'Common', + 'remote-source': ['DeductionGroup', 'id', 'name'] + }], ['salary_components', { + label: 'Salary Components', + type: 'select2multi', + 'remote-source': ['SalaryComponent', 'id', 'name'] + }], ['deductions', { + label: 'Calculation Method', + type: 'select2multi', + 'remote-source': ['Deduction', 'id', 'name'] + }], ['add_columns', { + label: 'Columns to Add', + type: 'select2multi', + 'remote-source': ['PayrollColumn', 'id', 'name'] + }], ['sub_columns', { + label: 'Columns to Subtract', + type: 'select2multi', + 'remote-source': ['PayrollColumn', 'id', 'name'] + }], ['colorder', { + label: 'Column Order', + type: 'text', + validation: 'number' + }], ['editable', { + label: 'Editable', + type: 'select', + source: [['Yes', 'Yes'], ['No', 'No']] + }], ['enabled', { + label: 'Enabled', + type: 'select', + source: [['Yes', 'Yes'], ['No', 'No']] + }], ['default_value', { + label: 'Default Value', + type: 'text', + validation: '' + }], fucntionColumnList, ['function_type', { + label: 'Function Type', + type: 'select', + source: [['Simple', 'Simple']] + }], ['calculation_function', { + label: 'Function', + type: 'code', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['deduction_group', { + label: 'Payroll Group', + type: 'select2', + 'allow-null': false, + 'remote-source': ['DeductionGroup', 'id', 'name'] + }]]; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'https://icehrm.gitbook.io/icehrm/payroll-and-expenses/payroll-management'; + } + }]); + + return PayrollColumnAdapter; +}(_AdapterBase9["default"]); +/** + * PayrollColumnTemplateAdapter + */ + + +var PayrollColumnTemplateAdapter = /*#__PURE__*/function (_AdapterBase4) { + _inherits(PayrollColumnTemplateAdapter, _AdapterBase4); + + var _super5 = _createSuper(PayrollColumnTemplateAdapter); + + function PayrollColumnTemplateAdapter() { + _classCallCheck(this, PayrollColumnTemplateAdapter); + + return _super5.apply(this, arguments); + } + + _createClass(PayrollColumnTemplateAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: true + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['columns', { + label: 'Payroll Columns', + type: 'select2multi', + 'remote-source': ['PayrollColumn', 'id', 'name'] + }]]; + } + }]); + + return PayrollColumnTemplateAdapter; +}(_AdapterBase9["default"]); +/* + * PayrollEmployeeAdapter + */ + + +var PayrollEmployeeAdapter = /*#__PURE__*/function (_AdapterBase5) { + _inherits(PayrollEmployeeAdapter, _AdapterBase5); + + var _super6 = _createSuper(PayrollEmployeeAdapter); + + function PayrollEmployeeAdapter() { + _classCallCheck(this, PayrollEmployeeAdapter); + + return _super6.apply(this, arguments); + } + + _createClass(PayrollEmployeeAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'pay_frequency', 'deduction_group', 'currency']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Pay Frequency' + }, { + sTitle: 'Payroll Group' + }, { + sTitle: 'Currency' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['pay_frequency', { + label: 'Pay Frequency', + type: 'select2', + 'remote-source': ['PayFrequency', 'id', 'name'] + }], ['currency', { + label: 'Currency', + type: 'select2', + 'remote-source': ['CurrencyType', 'id', 'code'] + }], ['deduction_group', { + label: 'Payroll Group', + type: 'select2', + 'allow-null': true, + 'null-label': 'None', + 'remote-source': ['DeductionGroup', 'id', 'name'] + }], ['deduction_exemptions', { + label: 'Calculation Exemptions', + type: 'select2multi', + 'remote-source': ['Deduction', 'id', 'name'], + validation: 'none' + }], ['deduction_allowed', { + label: 'Calculations Assigned', + type: 'select2multi', + 'remote-source': ['Deduction', 'id', 'name'], + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }]); + + return PayrollEmployeeAdapter; +}(_AdapterBase9["default"]); +/** + * DeductionAdapter + */ + + +var DeductionAdapter = /*#__PURE__*/function (_AdapterBase6) { + _inherits(DeductionAdapter, _AdapterBase6); + + var _super7 = _createSuper(DeductionAdapter); + + function DeductionAdapter() { + _classCallCheck(this, DeductionAdapter); + + return _super7.apply(this, arguments); + } + + _createClass(DeductionAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'deduction_group']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Payroll Group' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var rangeAmounts = ['rangeAmounts', { + label: 'Calculation Process', + type: 'datagroup', + form: [['lowerCondition', { + label: 'Lower Limit Condition', + type: 'select', + source: [['No Lower Limit', 'No Lower Limit'], ['gt', 'Greater than'], ['gte', 'Greater than or Equal']] + }], ['lowerLimit', { + label: 'Lower Limit', + type: 'text', + validation: 'float' + }], ['upperCondition', { + label: 'Upper Limit Condition', + type: 'select', + source: [['No Upper Limit', 'No Upper Limit'], ['lt', 'Less than'], ['lte', 'Less than or Equal']] + }], ['upperLimit', { + label: 'Upper Limit', + type: 'text', + validation: 'float' + }], ['amount', { + label: 'Value', + type: 'text', + validation: '' + }]], + html: '
#_delete_##_edit_#
#_renderFunction_#
', + validation: 'none', + 'custom-validate-function': function customValidateFunction(data) { + var res = {}; + res.valid = true; + + if (data.lowerCondition === 'No Lower Limit') { + data.lowerLimit = 0; + } + + if (data.upperCondition === 'No Upper Limit') { + data.upperLimit = 0; + } + + res.params = data; + return res; + }, + render: function render(item) { + var output = ''; + + var getSymbol = function getSymbol(text) { + var map = {}; + map.gt = '>'; + map.gte = '>='; + map.lt = '<'; + map.lte = '<='; + return map[text]; + }; + + if (item.lowerCondition !== 'No Lower Limit') { + output += "".concat(item.lowerLimit, " ").concat(getSymbol(item.lowerCondition), " "); + } + + if (item.upperCondition !== 'No Upper Limit') { + output += ' and '; + output += "".concat(getSymbol(item.upperCondition), " ").concat(item.upperLimit, " "); + } + + if (output === '') { + return "Deduction is ".concat(item.amount, " for all ranges"); + } + + return "If salary component ".concat(output, " deduction is ").concat(item.amount); + } + }]; + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['componentType', { + label: 'Salary Component Type', + type: 'select2multi', + 'allow-null': true, + 'remote-source': ['SalaryComponentType', 'id', 'name'] + }], ['component', { + label: 'Salary Component', + type: 'select2multi', + 'allow-null': true, + 'remote-source': ['SalaryComponent', 'id', 'name'] + }], ['payrollColumn', { + label: 'Payroll Report Column', + type: 'select2', + 'allow-null': true, + 'remote-source': ['PayrollColumn', 'id', 'name'] + }], rangeAmounts, ['deduction_group', { + label: 'Payroll Group', + type: 'select2', + 'allow-null': false, + 'remote-source': ['DeductionGroup', 'id', 'name'] + }]]; + } + }]); + + return DeductionAdapter; +}(_AdapterBase9["default"]); +/* + * DeductionGroupAdapter + */ + + +var DeductionGroupAdapter = /*#__PURE__*/function (_AdapterBase7) { + _inherits(DeductionGroupAdapter, _AdapterBase7); + + var _super8 = _createSuper(DeductionGroupAdapter); + + function DeductionGroupAdapter() { + _classCallCheck(this, DeductionGroupAdapter); + + return _super8.apply(this, arguments); + } + + _createClass(DeductionGroupAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'description']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['description', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id) { + var html = '
' + '' + '' + '' + '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "deletePayrollGroup", + value: function deletePayrollGroup(id) { + if (confirm('Are you sure you want to delete this payroll group? Deleting the payroll group will delete all the Payroll columns and Saved calculations attached to this Payroll Group')) {// Terminate + } else { + return; + } + + var params = {}; + params.id = id; + var reqJson = JSON.stringify(params); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'deletePayrollGroupSuccessCallback'; + callBackData.callBackFail = 'deletePayrollGroupFailCallback'; + this.customAction('deletePayrollGroup', 'admin=payroll', reqJson, callBackData); + } + }, { + key: "deletePayrollGroupSuccessCallback", + value: function deletePayrollGroupSuccessCallback(callBackData) { + this.showMessage('Success', 'Payroll Group Deleted '); + this.get([]); + } + }, { + key: "deletePayrollGroupFailCallback", + value: function deletePayrollGroupFailCallback(callBackData) { + this.showMessage('Error occured while deleting Payroll Group', callBackData); + } + }]); + + return DeductionGroupAdapter; +}(_AdapterBase9["default"]); +/* + * PayslipTemplateAdapter + */ + + +var PayslipTemplateAdapter = /*#__PURE__*/function (_AdapterBase8) { + _inherits(PayslipTemplateAdapter, _AdapterBase8); + + var _super9 = _createSuper(PayslipTemplateAdapter); + + function PayslipTemplateAdapter() { + _classCallCheck(this, PayslipTemplateAdapter); + + return _super9.apply(this, arguments); + } + + _createClass(PayslipTemplateAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var payslipFields = ['data', { + label: 'Payslip Fields', + type: 'datagroup', + form: [['type', { + label: 'Type', + type: 'select', + sort: 'none', + source: [['Payroll Column', 'Payroll Column'], ['Text', 'Text'], ['Company Name', 'Company Name'], ['Company Logo', 'Company Logo'], ['Separators', 'Separators']] + }], ['payrollColumn', { + label: 'Payroll Column', + type: 'select2', + sort: 'none', + 'allow-null': true, + 'null-label': 'None', + 'remote-source': ['PayrollColumn', 'id', 'name'] + }], ['label', { + label: 'Label', + type: 'text', + validation: 'none' + }], ['text', { + label: 'Text', + type: 'textarea', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + sort: 'none', + source: [['Show', 'Show'], ['Hide', 'Hide']] + }]], + // "html":'
#_delete_##_edit_#
Type#_type_#
Label#_label_#
Text#_text_#
Font Size#_fontSize_#
Font Style#_fontStyle_#
Font Color#_fontColor_#
Status#_status_#
', + html: '
#_delete_##_edit_#
#_type_# #_label_#
#_text_#
', + validation: 'none', + 'custom-validate-function': function customValidateFunction(data) { + var res = {}; + res.valid = true; + + if (data.type === 'Payroll Column') { + if (data.payrollColumn === 'NULL') { + res.valid = false; + res.message = 'Please select payroll column'; + } + } else { + data.payrollColumn = 'NULL'; + } + + if (data.type === 'Text') { + if (data.text === '') { + res.valid = false; + res.message = 'Text can not be empty'; + } + } + + res.params = data; + return res; + } + }]; + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], payslipFields]; + } + }]); + + return PayslipTemplateAdapter; +}(_AdapterBase9["default"]); + +module.exports = { + PaydayAdapter: PaydayAdapter, + PayrollAdapter: PayrollAdapter, + PayrollDataAdapter: PayrollDataAdapter, + PayrollColumnAdapter: PayrollColumnAdapter, + PayrollColumnTemplateAdapter: PayrollColumnTemplateAdapter, + PayrollEmployeeAdapter: PayrollEmployeeAdapter, + DeductionAdapter: DeductionAdapter, + DeductionGroupAdapter: DeductionGroupAdapter, + PayslipTemplateAdapter: PayslipTemplateAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/TableEditAdapter":67,"codemirror":"codemirror","codemirror/addon/display/autorefresh":109,"codemirror/addon/edit/closebrackets":110,"codemirror/mode/javascript/javascript":112}],35:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.PermissionAdapter = _lib.PermissionAdapter; + +},{"./lib":36}],36:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * PermissionAdapter + */ +var PermissionAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(PermissionAdapter, _AdapterBase); + + var _super = _createSuper(PermissionAdapter); + + function PermissionAdapter() { + _classCallCheck(this, PermissionAdapter); + + return _super.apply(this, arguments); + } + + _createClass(PermissionAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'user_level', 'module_id', 'permission', 'value']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'User Level' + }, { + sTitle: 'Module' + }, { + sTitle: 'Permission' + }, { + sTitle: 'Value' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['user_level', { + label: 'User Level', + type: 'placeholder', + validation: 'none' + }], ['module_id', { + label: 'Module', + type: 'placeholder', + 'remote-source': ['Module', 'id', 'menu+name'] + }], ['permission', { + label: 'Permission', + type: 'placeholder', + validation: 'none' + }], ['value', { + label: 'Value', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['module_id', { + label: 'Module', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Modules', + 'remote-source': ['Module', 'id', 'menu+name'] + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "getMetaFieldForRendering", + value: function getMetaFieldForRendering(fieldName) { + if (fieldName === 'value') { + return 'meta'; + } + + return ''; + } + }, { + key: "fillForm", + value: function fillForm(object) { + _get(_getPrototypeOf(PermissionAdapter.prototype), "fillForm", this).call(this, object); + + $('#helptext').html(object.description); + } + }]); + + return PermissionAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + PermissionAdapter: PermissionAdapter +}; + +},{"../../../api/AdapterBase":52}],37:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.ProjectAdapter = _lib.ProjectAdapter; +window.EmployeeProjectAdapter = _lib.EmployeeProjectAdapter; + +},{"./lib":38}],38:[function(require,module,exports){ +"use strict"; + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ProjectAdapter + */ +var ProjectAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(ProjectAdapter, _ReactModalAdapterBas); + + var _super = _createSuper(ProjectAdapter); + + function ProjectAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ProjectAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.fieldNameMap = {}; + _this.hiddenFields = {}; + _this.tableFields = {}; + _this.formOnlyFields = {}; + return _this; + } + + _createClass(ProjectAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'client']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Client' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Client', + dataIndex: 'client', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + if (this.showSave) { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text' + }], ['client', { + label: 'Client', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Client', 'id', 'name'] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['On Hold', 'On Hold'], ['Completed', 'Completed'], ['Dropped', 'Dropped']] + }]]; + } + + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'placeholder' + }], ['client', { + label: 'Client', + type: 'placeholder', + 'allow-null': true, + 'remote-source': ['Client', 'id', 'name'] + }], ['details', { + label: 'Details', + type: 'placeholder', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['On Hold', 'On Hold'], ['Completed', 'Completed'], ['Dropped', 'Dropped']] + }]]; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'http://blog.icehrm.com/docs/projects/'; + } + }]); + + return ProjectAdapter; +}(_ReactModalAdapterBase["default"]); +/* + * EmployeeProjectAdapter + */ + + +var EmployeeProjectAdapter = /*#__PURE__*/function (_ReactModalAdapterBas2) { + _inherits(EmployeeProjectAdapter, _ReactModalAdapterBas2); + + var _super2 = _createSuper(EmployeeProjectAdapter); + + function EmployeeProjectAdapter(endPoint, tab, filter, orderBy) { + var _this2; + + _classCallCheck(this, EmployeeProjectAdapter); + + _this2 = _super2.call(this, endPoint, tab, filter, orderBy); + _this2.fieldNameMap = {}; + _this2.hiddenFields = {}; + _this2.tableFields = {}; + _this2.formOnlyFields = {}; + return _this2; + } + + _createClass(EmployeeProjectAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'project']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Project' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Employee', + dataIndex: 'employee', + sorter: true + }, { + title: 'Project', + dataIndex: 'project', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['project', { + label: 'Project', + type: 'select2', + 'remote-source': ['Project', 'id', 'name'] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'http://blog.icehrm.com/docs/projects/'; + } + }]); + + return EmployeeProjectAdapter; +}(_ReactModalAdapterBase["default"]); + +module.exports = { + ProjectAdapter: ProjectAdapter, + EmployeeProjectAdapter: EmployeeProjectAdapter +}; + +},{"../../../api/ReactModalAdapterBase":65}],39:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +var _IceDataPipe = _interopRequireDefault(require("../../../api/IceDataPipe")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function init(data) { + var modJsList = []; + modJsList.tabSkill = new _lib.SkillAdapter('Skill'); + modJsList.tabSkill.setObjectTypeName('Skills'); + modJsList.tabSkill.setDataPipe(new _IceDataPipe["default"](modJsList.tabSkill)); + modJsList.tabSkill.setAccess(data.permissions.Skill); + modJsList.tabEducation = new _lib.EducationAdapter('Education'); + modJsList.tabEducation.setObjectTypeName('Education'); + modJsList.tabEducation.setDataPipe(new _IceDataPipe["default"](modJsList.tabEducation)); + modJsList.tabEducation.setAccess(data.permissions.Education); + modJsList.tabCertification = new _lib.CertificationAdapter('Certification'); + modJsList.tabCertification.setObjectTypeName('Education'); + modJsList.tabCertification.setDataPipe(new _IceDataPipe["default"](modJsList.tabCertification)); + modJsList.tabCertification.setAccess(data.permissions.Certification); + modJsList.tabLanguage = new _lib.LanguageAdapter('Language'); + modJsList.tabLanguage.setObjectTypeName('Language'); + modJsList.tabLanguage.setDataPipe(new _IceDataPipe["default"](modJsList.tabLanguage)); + modJsList.tabLanguage.setAccess(data.permissions.Language); + window.modJs = modJsList.tabSkill; + window.modJsList = modJsList; +} + +window.initAdminQualifications = init; + +},{"../../../api/IceDataPipe":58,"./lib":40}],40:[function(require,module,exports){ +"use strict"; + +var _AdapterBase = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * SkillAdapter + */ +var SkillAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(SkillAdapter, _ReactModalAdapterBas); + + var _super = _createSuper(SkillAdapter); + + function SkillAdapter() { + _classCallCheck(this, SkillAdapter); + + return _super.apply(this, arguments); + } + + _createClass(SkillAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'description']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Description' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text' + }], ['description', { + label: 'Description', + type: 'textarea', + validation: '' + }]]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Description', + dataIndex: 'description' + }]; + } + }]); + + return SkillAdapter; +}(_ReactModalAdapterBase["default"]); +/** + * EducationAdapter + */ + + +var EducationAdapter = /*#__PURE__*/function (_ReactModalAdapterBas2) { + _inherits(EducationAdapter, _ReactModalAdapterBas2); + + var _super2 = _createSuper(EducationAdapter); + + function EducationAdapter() { + _classCallCheck(this, EducationAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(EducationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'description']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Description' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text' + }], ['description', { + label: 'Description', + type: 'textarea', + validation: '' + }]]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Description', + dataIndex: 'description' + }]; + } + }]); + + return EducationAdapter; +}(_ReactModalAdapterBase["default"]); +/** + * CertificationAdapter + */ + + +var CertificationAdapter = /*#__PURE__*/function (_ReactModalAdapterBas3) { + _inherits(CertificationAdapter, _ReactModalAdapterBas3); + + var _super3 = _createSuper(CertificationAdapter); + + function CertificationAdapter() { + _classCallCheck(this, CertificationAdapter); + + return _super3.apply(this, arguments); + } + + _createClass(CertificationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'description']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Description' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text' + }], ['description', { + label: 'Description', + type: 'textarea', + validation: '' + }]]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Description', + dataIndex: 'description' + }]; + } + }]); + + return CertificationAdapter; +}(_ReactModalAdapterBase["default"]); +/** + * LanguageAdapter + */ + + +var LanguageAdapter = /*#__PURE__*/function (_ReactModalAdapterBas4) { + _inherits(LanguageAdapter, _ReactModalAdapterBas4); + + var _super4 = _createSuper(LanguageAdapter); + + function LanguageAdapter() { + _classCallCheck(this, LanguageAdapter); + + return _super4.apply(this, arguments); + } + + _createClass(LanguageAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'description']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Description' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text' + }], ['description', { + label: 'Description', + type: 'textarea', + validation: '' + }]]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Description', + dataIndex: 'description' + }]; + } + }]); + + return LanguageAdapter; +}(_ReactModalAdapterBase["default"]); + +module.exports = { + SkillAdapter: SkillAdapter, + EducationAdapter: EducationAdapter, + CertificationAdapter: CertificationAdapter, + LanguageAdapter: LanguageAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/ReactModalAdapterBase":65}],41:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.ReportAdapter = _lib.ReportAdapter; +window.ReportGenAdapter = _lib.ReportGenAdapter; + +},{"./lib":42}],42:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ReportAdapter + */ +var ReportAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(ReportAdapter, _AdapterBase); + + var _super = _createSuper(ReportAdapter); + + function ReportAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ReportAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + + _this._construct(); + + return _this; + } + + _createClass(ReportAdapter, [{ + key: "_construct", + value: function _construct() { + this._formFileds = [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'label', + validation: '' + }], ['parameters', { + label: 'Parameters', + type: 'fieldset', + validation: 'none' + }]]; + this.remoteFieldsExists = false; + } + }, { + key: "_initLocalFormFields", + value: function _initLocalFormFields() { + this._formFileds = [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'label', + validation: '' + }], ['parameters', { + label: 'Parameters', + type: 'fieldset', + validation: 'none' + }]]; + } + }, { + key: "setRemoteFieldExists", + value: function setRemoteFieldExists(val) { + this.remoteFieldsExists = val; + } + }, { + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'icon', 'name', 'details', 'parameters']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: '', + bSortable: false, + sWidth: '22px' + }, { + sTitle: 'Name', + sWidth: '30%' + }, { + sTitle: 'Details' + }, { + sTitle: 'Parameters', + bVisible: false + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return this._formFileds; + } + }, { + key: "processFormFieldsWithObject", + value: function processFormFieldsWithObject(object) { + var that = this; + + this._initLocalFormFields(); + + var len = this._formFileds.length; + var fieldIDsToDelete = []; + var fieldsToDelete = []; + this.remoteFieldsExists = false; + + for (var i = 0; i < len; i++) { + if (this._formFileds[i][1].type === 'fieldset') { + var newFields = JSON.parse(object[this._formFileds[i][0]]); + fieldsToDelete.push(this._formFileds[i][0]); + newFields.forEach(function (entry) { + that._formFileds.push(entry); + + if (entry[1]['remote-source'] !== undefined && entry[1]['remote-source'] != null) { + that.remoteFieldsExists = true; + } + }); + } + } + + var tempArray = []; + + that._formFileds.forEach(function (entry) { + if (jQuery.inArray(entry[0], fieldsToDelete) < 0) { + tempArray.push(entry); + } + }); + + that._formFileds = tempArray; + } + }, { + key: "renderForm", + value: function renderForm(object) { + var that = this; + this.processFormFieldsWithObject(object); + + if (this.remoteFieldsExists) { + var cb = function cb() { + that.renderFormNew(object); + }; + + this.initFieldMasterData(cb); + } else { + this.initFieldMasterData(); + that.renderFormNew(object); + } + + this.currentReport = object; + } + }, { + key: "renderFormNew", + value: function renderFormNew(object) { + var that = this; + var signatureIds = []; + + if (object == null || object === undefined) { + this.currentId = null; + } + + this.preRenderForm(object); + var formHtml = this.templates.formTemplate; + var html = ''; + var fields = this.getFormFields(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_submit")); + formHtml = formHtml.replace(/_fields_/g, html); + var $tempDomObj; + var randomFormId = this.generateRandom(14); + + if (!this.showFormOnPopup) { + $tempDomObj = $("#".concat(this.getTableName(), "Form")); + } else { + $tempDomObj = $('
'); + $tempDomObj.attr('id', randomFormId); + } + + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); // $tempDomObj.find('.select2Field').select2(); + + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + $tempDomObj.find('.signatureField').each(function () { + // $(this).data('signaturePad',new SignaturePad($(this))); + signatureIds.push($(this).attr('id')); + }); + + for (var _i = 0; _i < fields.length; _i++) { + if (fields[_i][1].type === 'datagroup') { + $tempDomObj.find("#".concat(fields[_i][0])).data('field', fields[_i]); + } + } + + if (this.showSave === false) { + $tempDomObj.find('.saveBtn').remove(); + } else { + $tempDomObj.find('.saveBtn').off(); + $tempDomObj.find('.saveBtn').data('modJs', this); + $tempDomObj.find('.saveBtn').on('click', function () { + if ($(this).data('modJs').saveSuccessItemCallback != null && $(this).data('modJs').saveSuccessItemCallback !== undefined) { + $(this).data('modJs').save($(this).data('modJs').retriveItemsAfterSave(), $(this).data('modJs').saveSuccessItemCallback); + } else { + $(this).data('modJs').save(); + } + + return false; + }); + } + + if (this.showCancel === false) { + $tempDomObj.find('.cancelBtn').remove(); + } else { + $tempDomObj.find('.cancelBtn').off(); + $tempDomObj.find('.cancelBtn').data('modJs', this); + $tempDomObj.find('.cancelBtn').on('click', function () { + $(this).data('modJs').cancel(); + return false; + }); + } + + if (!this.showFormOnPopup) { + $("#".concat(this.getTableName(), "Form")).show(); + $("#".concat(this.getTableName())).hide(); + + for (var _i2 = 0; _i2 < signatureIds.length; _i2++) { + $("#".concat(signatureIds[_i2])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i2]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object); + } + } else { + // var tHtml = $tempDomObj.wrap('
').parent().html(); + // this.showMessage("Edit",tHtml,null,null,true); + this.showMessage('Edit', '', null, null, true); + $('#plainMessageModel .modal-body').html(''); + $('#plainMessageModel .modal-body').append($tempDomObj); + + for (var _i3 = 0; _i3 < signatureIds.length; _i3++) { + $("#".concat(signatureIds[_i3])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i3]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object, "#".concat(randomFormId)); + } + } + + this.postRenderForm(object, $tempDomObj); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "addSuccessCallBack", + value: function addSuccessCallBack(callBackData, serverData) { + var fileName = serverData[0]; + var link; + + if (fileName.indexOf('https:') === 0) { + link = "Download Report "); + } else { + link = "Download Report "); + } + + link = link.replace(/_BASE_/g, this.baseUrl); + + if (this.currentReport.output === 'PDF' || this.currentReport.output === 'JSON') { + this.showMessage('Download Report', link); + } else { + if (serverData[1].length === 0) { + this.showMessage('Empty Report', 'There were no data for selected filters'); + return; + } + + var tableHtml = "".concat(link, "

"); // Delete existing temp report table + + $('#tempReportTable').remove(); // this.showMessage("Report",tableHtml); + + $("#".concat(this.table)).html(tableHtml); + $("#".concat(this.table)).show(); + $("#".concat(this.table, "Form")).hide(); // Prepare headers + + var headers = []; + + for (var index in serverData[1]) { + headers.push({ + sTitle: serverData[1][index] + }); + } + + var data = serverData[2]; + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + aaData: data, + aoColumns: headers, + bSort: false, + iDisplayLength: 15, + iDisplayStart: 0 + }; + $('#tempReportTable').dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); + $('.tableActionButton').tooltip(); + } + } + }, { + key: "fillForm", + value: function fillForm(object) { + var fields = this.getFormFields(); + + for (var i = 0; i < fields.length; i++) { + if (fields[i][1].type === 'label') { + $("#".concat(this.getTableName(), "Form #").concat(fields[i][0])).html(object[fields[i][0]]); + } else { + $("#".concat(this.getTableName(), "Form #").concat(fields[i][0])).val(object[fields[i][0]]); + } + } + } + }]); + + return ReportAdapter; +}(_AdapterBase3["default"]); + +var ReportGenAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(ReportGenAdapter, _AdapterBase2); + + var _super2 = _createSuper(ReportGenAdapter); + + function ReportGenAdapter() { + _classCallCheck(this, ReportGenAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(ReportGenAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_name_/g, data[1]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }]); + + return ReportGenAdapter; +}(_AdapterBase3["default"]); + +module.exports = { + ReportAdapter: ReportAdapter, + ReportGenAdapter: ReportGenAdapter +}; + +},{"../../../api/AdapterBase":52}],43:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.SalaryComponentTypeAdapter = _lib.SalaryComponentTypeAdapter; +window.SalaryComponentAdapter = _lib.SalaryComponentAdapter; +window.EmployeeSalaryAdapter = _lib.EmployeeSalaryAdapter; + +},{"./lib":44}],44:[function(require,module,exports){ +"use strict"; + +var _AdapterBase4 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * SalaryComponentTypeAdapter + */ +var SalaryComponentTypeAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(SalaryComponentTypeAdapter, _AdapterBase); + + var _super = _createSuper(SalaryComponentTypeAdapter); + + function SalaryComponentTypeAdapter() { + _classCallCheck(this, SalaryComponentTypeAdapter); + + return _super.apply(this, arguments); + } + + _createClass(SalaryComponentTypeAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'code', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Code' + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['code', { + label: 'Code', + type: 'text', + validation: '' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }]]; + } + }]); + + return SalaryComponentTypeAdapter; +}(_AdapterBase4["default"]); +/** + * SalaryComponentAdapter + */ + + +var SalaryComponentAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(SalaryComponentAdapter, _AdapterBase2); + + var _super2 = _createSuper(SalaryComponentAdapter); + + function SalaryComponentAdapter() { + _classCallCheck(this, SalaryComponentAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(SalaryComponentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'componentType', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Salary Component Type' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['componentType', { + label: 'Salary Component Type', + type: 'select2', + 'remote-source': ['SalaryComponentType', 'id', 'name'] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }]); + + return SalaryComponentAdapter; +}(_AdapterBase4["default"]); +/* + * EmployeeSalaryAdapter + */ + + +var EmployeeSalaryAdapter = /*#__PURE__*/function (_AdapterBase3) { + _inherits(EmployeeSalaryAdapter, _AdapterBase3); + + var _super3 = _createSuper(EmployeeSalaryAdapter); + + function EmployeeSalaryAdapter() { + _classCallCheck(this, EmployeeSalaryAdapter); + + return _super3.apply(this, arguments); + } + + _createClass(EmployeeSalaryAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'component', 'amount', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Salary Component' + }, { + sTitle: 'Amount' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['component', { + label: 'Salary Component', + type: 'select2', + 'remote-source': ['SalaryComponent', 'id', 'name'] + }], ['amount', { + label: 'Amount', + type: 'text', + validation: 'float' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }]); + + return EmployeeSalaryAdapter; +}(_AdapterBase4["default"]); + +module.exports = { + SalaryComponentTypeAdapter: SalaryComponentTypeAdapter, + SalaryComponentAdapter: SalaryComponentAdapter, + EmployeeSalaryAdapter: EmployeeSalaryAdapter +}; + +},{"../../../api/AdapterBase":52}],45:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.SettingAdapter = _lib.SettingAdapter; + +},{"./lib":46}],46:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } + +function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * SettingAdapter + */ +var SettingAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(SettingAdapter, _AdapterBase); + + var _super = _createSuper(SettingAdapter); + + function SettingAdapter() { + _classCallCheck(this, SettingAdapter); + + return _super.apply(this, arguments); + } + + _createClass(SettingAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'value', 'description']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Value' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['value', { + label: 'Value', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
'; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "getMetaFieldForRendering", + value: function getMetaFieldForRendering(fieldName) { + if (fieldName === 'value') { + return 'meta'; + } + + return ''; + } + }, { + key: "edit", + value: function edit(id) { + this.loadRemoteDataForSettings(); + + _get(_getPrototypeOf(SettingAdapter.prototype), "edit", this).call(this, id); + } + }, { + key: "fillForm", + value: function fillForm(object) { + var metaField = this.getMetaFieldForRendering('value'); + var metaVal = object[metaField]; + var formFields = null; + + if (metaVal !== '' && metaVal !== undefined) { + formFields = [['id', { + label: 'ID', + type: 'hidden' + }], JSON.parse(metaVal)]; + } + + _get(_getPrototypeOf(SettingAdapter.prototype), "fillForm", this).call(this, object, null, formFields); + + $('#helptext').html(object.description); + } + }, { + key: "loadRemoteDataForSettings", + value: function loadRemoteDataForSettings() { + var fields = []; + var field = null; + fields.push(['country', { + label: 'Country', + type: 'select2multi', + 'remote-source': ['Country', 'id', 'name'] + }]); + fields.push(['countryCompany', { + label: 'Country', + type: 'select2', + 'remote-source': ['Country', 'code', 'name'] + }]); + fields.push(['currency', { + label: 'Currency', + type: 'select2multi', + 'remote-source': ['CurrencyType', 'id', 'code+name'] + }]); + fields.push(['nationality', { + label: 'Nationality', + type: 'select2multi', + 'remote-source': ['Nationality', 'id', 'name'] + }]); + fields.push(['supportedLanguage', { + label: 'Value', + type: 'select2', + 'allow-null': false, + 'remote-source': ['SupportedLanguage', 'name', 'description'] + }]); + + for (var index in fields) { + field = fields[index]; + + if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] !== null) { + var key = "".concat(field[1]['remote-source'][0], "_").concat(field[1]['remote-source'][1], "_").concat(field[1]['remote-source'][2]); + this.fieldMasterDataKeys[key] = false; + this.sourceMapping[field[0]] = field[1]['remote-source']; + var callBackData = {}; + callBackData.callBack = 'initFieldMasterDataResponse'; + callBackData.callBackData = [key]; + this.getFieldValues(field[1]['remote-source'], callBackData); + } + } + } + }, { + key: "getHelpLink", + value: function getHelpLink() { + return 'http://blog.icehrm.com/docs/settings/'; + } + }]); + + return SettingAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + SettingAdapter: SettingAdapter +}; + +},{"../../../api/AdapterBase":52}],47:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.ImmigrationDocumentAdapter = _lib.ImmigrationDocumentAdapter; +window.EmployeeImmigrationAdapter = _lib.EmployeeImmigrationAdapter; +window.EmployeeTravelRecordAdminAdapter = _lib.EmployeeTravelRecordAdminAdapter; +window.CustomFieldAdapter = _lib.CustomFieldAdapter; + +},{"./lib":48}],48:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _CustomFieldAdapter = _interopRequireDefault(require("../../../api/CustomFieldAdapter")); + +var _ApproveAdminAdapter2 = _interopRequireDefault(require("../../../api/ApproveAdminAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ImmigrationDocumentAdapter + */ +var ImmigrationDocumentAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(ImmigrationDocumentAdapter, _AdapterBase); + + var _super = _createSuper(ImmigrationDocumentAdapter); + + function ImmigrationDocumentAdapter() { + _classCallCheck(this, ImmigrationDocumentAdapter); + + return _super.apply(this, arguments); + } + + _createClass(ImmigrationDocumentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'details', 'required', 'alert_on_missing', 'alert_before_expiry']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }, { + sTitle: 'Compulsory' + }, { + sTitle: 'Alert If Not Found' + }, { + sTitle: 'Alert Before Expiry' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var fields = [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['required', { + label: 'Compulsory', + type: 'select', + source: [['No', 'No'], ['Yes', 'Yes']] + }], ['alert_on_missing', { + label: 'Alert If Not Found', + type: 'select', + source: [['No', 'No'], ['Yes', 'Yes']] + }], ['alert_before_expiry', { + label: 'Alert Before Expiry', + type: 'select', + source: [['No', 'No'], ['Yes', 'Yes']] + }], ['alert_before_day_number', { + label: 'Days for Expiry Alert', + type: 'text', + validation: '' + }]]; + + for (var i = 0; i < this.customFields.length; i++) { + fields.push(this.customFields[i]); + } + + return fields; + } + }]); + + return ImmigrationDocumentAdapter; +}(_AdapterBase3["default"]); +/** + * EmployeeImmigrationAdapter + */ + + +var EmployeeImmigrationAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(EmployeeImmigrationAdapter, _AdapterBase2); + + var _super2 = _createSuper(EmployeeImmigrationAdapter); + + function EmployeeImmigrationAdapter() { + _classCallCheck(this, EmployeeImmigrationAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(EmployeeImmigrationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'document', 'documentname', 'valid_until', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Document' + }, { + sTitle: 'Document Id' + }, { + sTitle: 'Valid Until' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['document', { + label: 'Document', + type: 'select2', + 'remote-source': ['ImmigrationDocument', 'id', 'name'] + }], ['documentname', { + label: 'Document Id', + type: 'text', + validation: '' + }], ['valid_until', { + label: 'Valid Until', + type: 'date', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['Inactive', 'Inactive'], ['Draft', 'Draft']] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['attachment1', { + label: 'Attachment 1', + type: 'fileupload', + validation: 'none' + }], ['attachment2', { + label: 'Attachment 2', + type: 'fileupload', + validation: 'none' + }], ['attachment3', { + label: 'Attachment 3', + type: 'fileupload', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }]); + + return EmployeeImmigrationAdapter; +}(_AdapterBase3["default"]); +/** + * EmployeeTravelRecordAdminAdapter + */ + + +var EmployeeTravelRecordAdminAdapter = /*#__PURE__*/function (_ApproveAdminAdapter) { + _inherits(EmployeeTravelRecordAdminAdapter, _ApproveAdminAdapter); + + var _super3 = _createSuper(EmployeeTravelRecordAdminAdapter); + + function EmployeeTravelRecordAdminAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeTravelRecordAdminAdapter); + + _this = _super3.call(this, endPoint, tab, filter, orderBy); + _this.itemName = 'TravelRequest'; + _this.itemNameLower = 'travelrequest'; + _this.modulePathName = 'travel'; + return _this; + } + + _createClass(EmployeeTravelRecordAdminAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'type', 'purpose', 'travel_from', 'travel_to', 'travel_date', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Travel Type' + }, { + sTitle: 'Purpose' + }, { + sTitle: 'From' + }, { + sTitle: 'To' + }, { + sTitle: 'Travel Date' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return this.addCustomFields([['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['type', { + label: 'Means of Transportation', + type: 'select', + source: [['Plane', 'Plane'], ['Rail', 'Rail'], ['Taxi', 'Taxi'], ['Own Vehicle', 'Own Vehicle'], ['Rented Vehicle', 'Rented Vehicle'], ['Other', 'Other']] + }], ['purpose', { + label: 'Purpose of Travel', + type: 'textarea', + validation: '' + }], ['travel_from', { + label: 'Travel From', + type: 'text', + validation: '' + }], ['travel_to', { + label: 'Travel To', + type: 'text', + validation: '' + }], ['travel_date', { + label: 'Travel Date', + type: 'datetime', + validation: '' + }], ['return_date', { + label: 'Return Date', + type: 'datetime', + validation: '' + }], ['details', { + label: 'Notes', + type: 'textarea', + validation: 'none' + }], ['currency', { + label: 'Currency', + type: 'select2', + 'allow-null': false, + 'remote-source': ['CurrencyType', 'id', 'code'] + }], ['funding', { + label: 'Total Funding Proposed', + type: 'text', + validation: 'float', + "default": '0.00', + mask: '9{0,10}.99' + }], ['attachment1', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }], ['attachment2', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }], ['attachment3', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }]]); + } + }]); + + return EmployeeTravelRecordAdminAdapter; +}(_ApproveAdminAdapter2["default"]); + +module.exports = { + ImmigrationDocumentAdapter: ImmigrationDocumentAdapter, + EmployeeImmigrationAdapter: EmployeeImmigrationAdapter, + EmployeeTravelRecordAdminAdapter: EmployeeTravelRecordAdminAdapter, + CustomFieldAdapter: _CustomFieldAdapter["default"] +}; + +},{"../../../api/AdapterBase":52,"../../../api/ApproveAdminAdapter":53,"../../../api/CustomFieldAdapter":55}],49:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.UserAdapter = _lib.UserAdapter; +window.UserRoleAdapter = _lib.UserRoleAdapter; + +},{"./lib":50}],50:[function(require,module,exports){ +"use strict"; + +var _FormValidation = _interopRequireDefault(require("../../../api/FormValidation")); + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var UserAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(UserAdapter, _AdapterBase); + + var _super = _createSuper(UserAdapter); + + function UserAdapter() { + _classCallCheck(this, UserAdapter); + + return _super.apply(this, arguments); + } + + _createClass(UserAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'username', 'email', 'employee', 'user_level']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID' + }, { + sTitle: 'User Name' + }, { + sTitle: 'Authentication Email' + }, { + sTitle: 'Employee' + }, { + sTitle: 'User Level' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['username', { + label: 'User Name', + type: 'text', + validation: 'username' + }], ['email', { + label: 'Email', + type: 'text', + validation: 'email' + }], ['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['user_level', { + label: 'User Level', + type: 'select', + source: [['Admin', 'Admin'], ['Manager', 'Manager'], ['Employee', 'Employee'], ['Restricted Admin', 'Restricted Admin'], ['Restricted Manager', 'Restricted Manager'], ['Restricted Employee', 'Restricted Employee']] + }], ['user_roles', { + label: 'User Roles', + type: 'select2multi', + 'remote-source': ['UserRole', 'id', 'name'] + }], ['lang', { + label: 'Language', + type: 'select2', + 'allow-null': true, + 'remote-source': ['SupportedLanguage', 'id', 'description'] + }], ['default_module', { + label: 'Default Module', + type: 'select2', + 'null-label': 'No Default Module', + 'allow-null': true, + 'remote-source': ['Module', 'id', 'name', 'getUserModules'] + }]]; + } + }, { + key: "postRenderForm", + value: function postRenderForm(object, $tempDomObj) { + if (object == null || object === undefined) { + $tempDomObj.find('#changePasswordBtn').remove(); + } + } + }, { + key: "changePassword", + value: function changePassword() { + $('#adminUsersModel').modal('show'); + $('#adminUsersChangePwd #newpwd').val(''); + $('#adminUsersChangePwd #conpwd').val(''); + $('#adminUsersChangePwd_error').hide(); + } + }, { + key: "saveUserSuccessCallBack", + value: function saveUserSuccessCallBack(callBackData, serverData) { + var user = callBackData[0]; + + if (callBackData[1]) { + this.showMessage('Create User', "An email has been sent to ".concat(user.email, " with a temporary password to login to IceHrm.")); + } else { + this.showMessage('Create User', 'User created successfully. But there was a problem sending welcome email.'); + } + + this.get([]); + } + }, { + key: "saveUserFailCallBack", + value: function saveUserFailCallBack(callBackData, serverData) { + this.showMessage('Error', callBackData); + } + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + var msg = null; + + if (params.user_level !== 'Admin' && params.user_level !== 'Restricted Admin' && params.employee === 'NULL') { + msg = 'For this user type, you have to assign an employee when adding or editing the user.
'; + msg += " You may create a new employee through 'Admin'->'Employees' menu"; + } + + return msg; + } + }, { + key: "save", + value: function save() { + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_submit"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + var msg = this.doCustomValidation(params); + + if (msg == null) { + var id = $("#".concat(this.getTableName(), "_submit #id")).val(); + params.csrf = $("#".concat(this.getTableName(), "Form")).data('csrf'); + + if (id != null && id !== undefined && id !== '') { + params.id = id; + this.add(params, []); + } else { + var reqJson = JSON.stringify(params); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'saveUserSuccessCallBack'; + callBackData.callBackFail = 'saveUserFailCallBack'; + this.customAction('saveUser', 'admin=users', reqJson, callBackData); + } + } else { + // $("#"+this.getTableName()+'Form .label').html(msg); + // $("#"+this.getTableName()+'Form .label').show(); + this.showMessage('Error Saving User', msg); + } + } + } + }, { + key: "changePasswordConfirm", + value: function changePasswordConfirm() { + $('#adminUsersChangePwd_error').hide(); + var password = $('#adminUsersChangePwd #newpwd').val(); + var conPassword = $('#adminUsersChangePwd #conpwd').val(); + + if (conPassword !== password) { + $('#adminUsersChangePwd_error').html("Passwords don't match"); + $('#adminUsersChangePwd_error').show(); + return; + } + + var validatePasswordResult = this.validatePassword(password); + + if (validatePasswordResult != null) { + $('#adminUsersChangePwd_error').html(validatePasswordResult); + $('#adminUsersChangePwd_error').show(); + return; + } + + var req = { + id: this.currentId, + pwd: conPassword + }; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'changePasswordSuccessCallBack'; + callBackData.callBackFail = 'changePasswordFailCallBack'; + this.customAction('changePassword', 'admin=users', reqJson, callBackData); + } + }, { + key: "closeChangePassword", + value: function closeChangePassword() { + $('#adminUsersModel').modal('hide'); + } + }, { + key: "changePasswordSuccessCallBack", + value: function changePasswordSuccessCallBack(callBackData, serverData) { + this.closeChangePassword(); + this.showMessage('Password Change', 'Password changed successfully'); + } + }, { + key: "changePasswordFailCallBack", + value: function changePasswordFailCallBack(callBackData, serverData) { + this.closeChangePassword(); + this.showMessage('Error', callBackData); + } + }]); + + return UserAdapter; +}(_AdapterBase2["default"]); +/** + * UserRoleAdapter + */ + + +var UserRoleAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(UserRoleAdapter, _ReactModalAdapterBas); + + var _super2 = _createSuper(UserRoleAdapter); + + function UserRoleAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, UserRoleAdapter); + + _this = _super2.call(this, endPoint, tab, filter, orderBy); + _this.tables = []; + return _this; + } + + _createClass(UserRoleAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'ID', + dataIndex: 'id', + sorter: true + }, { + title: 'Name', + dataIndex: 'name', + sorter: true + }]; + } + }, { + key: "setTables", + value: function setTables(tables) { + this.tables = tables; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['additional_permissions', { + label: 'Additional Permissions', + type: 'datagroup', + form: [['table', { + label: 'Table', + type: 'select2', + source: this.tables + }], ['permissions', { + label: 'Permissions', + type: 'select2multi', + 'allow-null': true, + source: [['get', 'List'], ['element', 'Get Details'], ['save', 'Add/Edit'], ['delete', 'Delete']] + }]], + columns: [{ + title: 'Table', + dataIndex: 'table', + key: 'table' + }, { + title: 'Permissions', + dataIndex: 'permissions', + key: 'permissions' + }], + validation: 'none' + }]]; + } + }]); + + return UserRoleAdapter; +}(_ReactModalAdapterBase["default"]); + +module.exports = { + UserAdapter: UserAdapter, + UserRoleAdapter: UserRoleAdapter +}; + +},{"../../../api/AdapterBase":52,"../../../api/FormValidation":56,"../../../api/ReactModalAdapterBase":65}],51:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ + +/** + * RequestCache + */ +var MemoryStorage = /*#__PURE__*/function () { + function MemoryStorage() { + _classCallCheck(this, MemoryStorage); + + this.data = {}; + } + + _createClass(MemoryStorage, [{ + key: "getItem", + value: function getItem(key) { + return this.data[key]; + } + }, { + key: "setItem", + value: function setItem(key, data) { + this.data[key] = data; + } + }, { + key: "removeAllByPrefix", + value: function removeAllByPrefix(prefix) { + var keys = Object.keys(this.data); + + for (var i = 0; i < keys.length; i++) { + if (keys[i].indexOf(prefix) > 0) { + delete this.data[keys[i]]; + } + } + } + }]); + + return MemoryStorage; +}(); + +var RequestCache = /*#__PURE__*/function () { + function RequestCache(storage) { + _classCallCheck(this, RequestCache); + + if (!storage) { + this.storage = new MemoryStorage(); + } else { + this.storage = storage; + } + } + + _createClass(RequestCache, [{ + key: "getKey", + value: function getKey(url, params) { + var key = "".concat(url, "|"); + + for (var index in params) { + key += "".concat(index, "=").concat(params[index], "|"); + } + + return key; + } + /* + invalidateTable(table) { + let key; + for (let i = 0; i < this.storage.length; i++) { + key = this.storage.key(i); + if (key.indexOf(`t=${table}`) > 0) { + this.storage.removeItem(key); + } + } + } + */ + + }, { + key: "invalidateTable", + value: function invalidateTable(table) { + this.storage.removeAllByPrefix("t=".concat(table)); + } + }, { + key: "getData", + value: function getData(key) { + var data = this.storage.getItem(key); + + if (!data) { + return null; + } + + return data; + } + }, { + key: "setData", + value: function setData(key, data) { + if (data.status !== undefined && data.status != null && data.status !== 'SUCCESS') { + return null; + } + + this.storage.setItem(key, data); + return data; + } + }]); + + return RequestCache; +}(); + +var _default = RequestCache; +exports["default"] = _default; + +},{}],52:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IceApiClient = _interopRequireDefault(require("./IceApiClient")); + +var _ModuleBase2 = _interopRequireDefault(require("./ModuleBase")); + +var _RequestCache = _interopRequireDefault(require("../api-common/RequestCache")); + +var _MasterDataReader = _interopRequireDefault(require("./MasterDataReader")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var AdapterBase = /*#__PURE__*/function (_ModuleBase) { + _inherits(AdapterBase, _ModuleBase); + + var _super = _createSuper(AdapterBase); + + function AdapterBase(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, AdapterBase); + + _this = _super.call(this); + _this.moduleRelativeURL = null; + _this.tableData = []; + _this.sourceData = []; + _this.filter = null; + _this.origFilter = null; + _this.orderBy = null; + _this.currentElement = null; + + _this.initAdapter(endPoint, tab, filter, orderBy); + + return _this; + } + + _createClass(AdapterBase, [{ + key: "initAdapter", + value: function initAdapter(endPoint, tab, filter, orderBy) { + this.moduleRelativeURL = baseUrl; + this.table = endPoint; + + if (tab === undefined || tab === null) { + this.tab = endPoint; + } else { + this.tab = tab; + } + + if (filter === undefined || filter === null) { + this.filter = null; + } else { + this.filter = filter; + } + + this.origFilter = this.filter; + + if (orderBy === undefined || orderBy === null) { + this.orderBy = null; + } else { + this.orderBy = orderBy; + } + + this.trackEvent('initAdapter', tab); + this.requestCache = new _RequestCache["default"](); + } + }, { + key: "initMasterDataReader", + value: function initMasterDataReader() { + this.masterDataReader = new _MasterDataReader["default"](this); + } + }, { + key: "setupApiClient", + value: function setupApiClient(token) { + this.apiClient = new _IceApiClient["default"](this.apiUrl, token, window.CLIENT_BASE_URL, true); + } + }, { + key: "setApiUrl", + value: function setApiUrl(apiUrl) { + this.apiUrl = apiUrl; + } + }, { + key: "setFilter", + value: function setFilter(filter) { + this.filter = filter; + } + }, { + key: "preSetFilterExternal", + value: function preSetFilterExternal(filter) { + this.initialFilter = filter; + } + }, { + key: "setFilterExternal", + value: function setFilterExternal(_filter) { + var filter = _filter; + + if (filter === undefined || filter === null) { + filter = this.initialFilter; + } + + if (filter === undefined || filter === null) { + return; + } + + this.setFilter(filter); + this.filtersAlreadySet = true; + $("#".concat(this.getTableName(), "_resetFilters")).show(); + this.currentFilterString = this.getFilterString(filter); + } + }, { + key: "getFilter", + value: function getFilter() { + return this.filter; + } + }, { + key: "setOrderBy", + value: function setOrderBy(orderBy) { + this.orderBy = orderBy; + } + }, { + key: "getOrderBy", + value: function getOrderBy() { + return this.orderBy; + } + }, { + key: "getFile", + value: function getFile(name) { + var _this2 = this; + + this.trackEvent('file', name); + return new Promise(function (resolve, reject) { + $.getJSON(_this2.moduleRelativeURL, { + a: 'file', + name: name + }, function (data) { + if (data.status === 'SUCCESS') { + resolve(data.data); + } else { + reject(); + } + }).fail(function () { + return reject(); + }); + }); + } + /** + * @method add + * @param object {Array} object data to be added to database + * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters + * @param _callGetFunction {Boolean} if false the get function of the module will not be called (default: true) + * @param successCallback {Function} this will get called after success response + */ + + }, { + key: "add", + value: function add(object, getFunctionCallBackData, callGetFunction, successCallback) { + var that = this; + + if (callGetFunction === undefined || callGetFunction === null) { + // eslint-disable-next-line no-param-reassign + callGetFunction = true; + } + + $(object).attr('a', 'add'); + $(object).attr('t', this.table); + that.showLoader(); + this.requestCache.invalidateTable(this.table); + $.post(this.moduleRelativeURL, object, function (data) { + if (data.status === 'SUCCESS') { + that.addSuccessCallBack(getFunctionCallBackData, data.object, callGetFunction, successCallback, that); + } else { + that.addFailCallBack(getFunctionCallBackData, data.object); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + this.trackEvent('add', this.tab, this.table); + } + }, { + key: "addSuccessCallBack", + value: function addSuccessCallBack(callBackData, serverData, callGetFunction, successCallback, thisObject) { + if (callGetFunction) { + this.get(callBackData); + } + + this.initFieldMasterData(); + + if (successCallback !== undefined && successCallback !== null) { + successCallback.apply(thisObject, [serverData]); + } + + this.trackEvent('addSuccess', this.tab, this.table); + } + }, { + key: "addFailCallBack", + value: function addFailCallBack(callBackData, serverData) { + try { + this.closePlainMessage(); + } catch (e) {// No need to report + } + + this.showMessage('Error saving', serverData); + this.trackEvent('addFailed', this.tab, this.table); + } + }, { + key: "deleteObj", + value: function deleteObj(id, callBackData) { + var that = this; + that.showLoader(); + this.requestCache.invalidateTable(this.table); + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'delete', + id: id + }, function (data) { + if (data.status === 'SUCCESS') { + that.deleteSuccessCallBack(callBackData, data.object); + } else { + that.deleteFailCallBack(callBackData, data.object); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + this.trackEvent('delete', this.tab, this.table); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "deleteSuccessCallBack", + value: function deleteSuccessCallBack(callBackData, serverData) { + this.get(callBackData); + this.clearDeleteParams(); + } + }, { + key: "deleteFailCallBack", + value: function deleteFailCallBack(callBackData, serverData) { + this.clearDeleteParams(); + this.showMessage('Error Occurred while Deleting Item', serverData); + } + }, { + key: "get", + value: function get(callBackData) { + var that = this; + + if (this.getRemoteTable()) { + this.createTableServer(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + return; + } + + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + var filterJson = ''; + + if (this.getFilter() !== null) { + filterJson = JSON.stringify(this.getFilter()); + } + + var orderBy = ''; + + if (this.getOrderBy() !== null) { + orderBy = this.getOrderBy(); + } + + sourceMappingJson = this.fixJSON(sourceMappingJson); + filterJson = this.fixJSON(filterJson); + that.showLoader(); + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'get', + sm: sourceMappingJson, + ft: filterJson, + ob: orderBy + }, function (data) { + if (data.status === 'SUCCESS') { + that.getSuccessCallBack(callBackData, data.object); + } else { + that.getFailCallBack(callBackData, data.object); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + that.initFieldMasterData(); + this.trackEvent('get', this.tab, this.table); // var url = this.getDataUrl(); + // console.log(url); + } + }, { + key: "getDataUrl", + value: function getDataUrl(_columns) { + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + var columns = JSON.stringify(_columns); + var filterJson = ''; + + if (this.getFilter() !== null) { + filterJson = JSON.stringify(this.getFilter()); + } + + var orderBy = ''; + + if (this.getOrderBy() !== null) { + orderBy = this.getOrderBy(); + } + + var url = this.moduleRelativeURL.replace('service.php', 'data.php'); + url = "".concat(url, "?t=").concat(this.table); + url = "".concat(url, "&sm=").concat(this.fixJSON(sourceMappingJson)); + url = "".concat(url, "&cl=").concat(this.fixJSON(columns)); + url = "".concat(url, "&ft=").concat(this.fixJSON(filterJson)); + url = "".concat(url, "&ob=").concat(orderBy); + + if (this.isSubProfileTable()) { + url = "".concat(url, "&type=sub"); + } + + if (this.remoteTableSkipProfileRestriction()) { + url = "".concat(url, "&skip=1"); + } + + return url; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return false; + } + }, { + key: "remoteTableSkipProfileRestriction", + value: function remoteTableSkipProfileRestriction() { + return false; + } + }, { + key: "preProcessTableData", + value: function preProcessTableData(row) { + return row; + } + }, { + key: "getSuccessCallBack", + value: function getSuccessCallBack(callBackData, serverData) { + var data = []; + var mapping = this.getDataMapping(); + + for (var i = 0; i < serverData.length; i++) { + var row = []; + + for (var j = 0; j < mapping.length; j++) { + row[j] = serverData[i][mapping[j]]; + } + + data.push(this.preProcessTableData(row)); + } + + this.sourceData = serverData; + + if (callBackData.callBack !== undefined && callBackData.callBack !== null) { + if (callBackData.callBackData === undefined || callBackData.callBackData === null) { + callBackData.callBackData = []; + } + + callBackData.callBackData.push(serverData); + callBackData.callBackData.push(data); + this.callFunction(callBackData.callBack, callBackData.callBackData); + } + + this.tableData = data; + + if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) { + this.createTable(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + } + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getFailCallBack", + value: function getFailCallBack(callBackData, serverData) {} + }, { + key: "getElement", + value: function getElement(id, callBackData, clone) { + var that = this; + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + sourceMappingJson = this.fixJSON(sourceMappingJson); + that.showLoader(); + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'getElement', + id: id, + sm: sourceMappingJson + }, function (data) { + if (data.status === 'SUCCESS') { + if (clone) { + delete data.object.id; + } + + this.currentElement = data.object; + that.getElementSuccessCallBack.apply(that, [callBackData, data.object]); + } else { + that.getElementFailCallBack.apply(that, [callBackData, data.object]); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + this.trackEvent('getElement', this.tab, this.table); + } + }, { + key: "getElementSuccessCallBack", + value: function getElementSuccessCallBack(callBackData, serverData) { + if (callBackData.callBack !== undefined && callBackData.callBack !== null) { + if (callBackData.callBackData === undefined || callBackData.callBackData === null) { + callBackData.callBackData = []; + } + + callBackData.callBackData.push(serverData); + this.callFunction(callBackData.callBack, callBackData.callBackData, this); + } + + this.currentElement = serverData; + + if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) { + this.renderForm(serverData); + } + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getElementFailCallBack", + value: function getElementFailCallBack(callBackData, serverData) {} + }, { + key: "getTableData", + value: function getTableData() { + return this.tableData; + } + }, { + key: "getTableName", + value: function getTableName() { + return this.tab; + } + }, { + key: "getFieldValues", + value: function getFieldValues(fieldMaster, callBackData) { + var that = this; + var method = ''; + var methodParams = ''; + + if (fieldMaster[3] !== undefined && fieldMaster[3] !== null) { + // eslint-disable-next-line prefer-destructuring + method = fieldMaster[3]; + } + + if (fieldMaster[4] !== undefined && fieldMaster[4] !== null) { + methodParams = JSON.stringify(fieldMaster[4]); + } + + var key = this.requestCache.getKey(this.moduleRelativeURL, { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }); + var cacheData = this.requestCache.getData(key); + + if (cacheData !== null && cacheData !== undefined) { + if (cacheData.status === 'SUCCESS') { + callBackData.callBackData.push(cacheData.data); + + if (callBackData.callBackSuccess !== null && callBackData.callBackSuccess !== undefined) { + callBackData.callBackData.push(callBackData.callBackSuccess); + } + + that.callFunction(callBackData.callBack, callBackData.callBackData); + } + } else { + var callbackWraper = function callbackWraper(data) { + if (data.status === 'SUCCESS') { + that.requestCache.setData(this.success.key, data); + var localCallBackData = callBackData; + localCallBackData.callBackData = [callBackData.callBackData[0]]; + localCallBackData.callBackData.push(data.data); + + if (localCallBackData.callBackSuccess !== null && localCallBackData.callBackSuccess !== undefined) { + localCallBackData.callBackData.push(callBackData.callBackSuccess); + } + + that.callFunction(localCallBackData.callBack, localCallBackData.callBackData); + } else if (data.message === 'Access violation') { + alert("Error : ".concat(callbackWraper.table, " ").concat(data.message)); + } + }; + + callbackWraper.key = key; // eslint-disable-next-line prefer-destructuring + + callbackWraper.table = fieldMaster[0]; + $.post(this.moduleRelativeURL, { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }, callbackWraper, 'json'); + } + } + }, { + key: "setAdminProfile", + value: function setAdminProfile(empId) { + try { + localStorage.clear(); + } catch (e) {// No need to report + } + + $.post(this.moduleRelativeURL, { + a: 'setAdminEmp', + empid: empId + }, function () { + // eslint-disable-next-line no-restricted-globals + top.location.href = clientUrl; + }, 'json'); + } + }, { + key: "customAction", + value: function customAction(subAction, module, request, callBackData, isPost) { + var that = this; + request = this.fixJSON(request); + + if (!isPost) { + $.getJSON(this.moduleRelativeURL, { + t: this.table, + a: 'ca', + sa: subAction, + mod: module, + req: request + }, function (data) { + if (data.status === 'SUCCESS') { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackSuccess, callBackData.callBackData); + } else { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackFail, callBackData.callBackData); + } + }); + } else { + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'ca', + sa: subAction, + mod: module, + req: request + }, function (data) { + if (data.status === 'SUCCESS') { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackSuccess, callBackData.callBackData); + } else { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackFail, callBackData.callBackData); + } + }, 'json'); + } + } + }, { + key: "sendCustomRequest", + value: function sendCustomRequest(action, params, successCallback, failCallback) { + params.a = action; + $.post(this.moduleRelativeURL, params, function (data) { + if (data.status === 'SUCCESS') { + successCallback(data.data); + } else { + failCallback(data.data); + } + }, 'json'); + } + }, { + key: "getCustomActionUrl", + value: function getCustomActionUrl(action, params) { + params.a = action; + var str = ''; + + for (var key in params) { + if (params.hasOwnProperty(key)) { + if (str !== '') { + str += '&'; + } + + str += "".concat(key, "=").concat(params[key]); + } + } + + return "".concat(this.moduleRelativeURL, "?").concat(str); + } + }, { + key: "getClientDataUrl", + value: function getClientDataUrl() { + return "".concat(this.moduleRelativeURL.replace('service.php', ''), "data/"); + } + }, { + key: "getCustomUrl", + value: function getCustomUrl(str) { + return this.moduleRelativeURL.replace('service.php', str); + } + }]); + + return AdapterBase; +}(_ModuleBase2["default"]); + +var _default = AdapterBase; +exports["default"] = _default; + +},{"../api-common/RequestCache":51,"./IceApiClient":57,"./MasterDataReader":61,"./ModuleBase":62}],53:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _LogViewAdapter2 = _interopRequireDefault(require("./LogViewAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ApproveAdminAdapter = /*#__PURE__*/function (_LogViewAdapter) { + _inherits(ApproveAdminAdapter, _LogViewAdapter); + + var _super = _createSuper(ApproveAdminAdapter); + + function ApproveAdminAdapter(endPoint, tab, filter, orderBy) { + _classCallCheck(this, ApproveAdminAdapter); + + return _super.call(this, endPoint, tab, filter, orderBy); + } + + _createClass(ApproveAdminAdapter, [{ + key: "getStatusFieldPosition", + value: function getStatusFieldPosition() { + var dm = this.getDataMapping(); + return dm.length - 1; + } + }, { + key: "openStatus", + value: function openStatus(id, status) { + $("#".concat(this.itemNameLower, "StatusModel")).modal('show'); + $("#".concat(this.itemNameLower, "_status")).html(this.getStatusOptions(status)); + $("#".concat(this.itemNameLower, "_status")).val(status); + this.statusChangeId = id; + } + }, { + key: "closeDialog", + value: function closeDialog() { + $("#".concat(this.itemNameLower, "StatusModel")).modal('hide'); + } + }, { + key: "changeStatus", + value: function changeStatus() { + var status = $("#".concat(this.itemNameLower, "_status")).val(); + var reason = $("#".concat(this.itemNameLower, "_reason")).val(); + + if (status == undefined || status == null || status == '') { + this.showMessage('Error', "Please select ".concat(this.itemNameLower, " status")); + return; + } + + var object = { + id: this.statusChangeId, + status: status, + reason: reason + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'changeStatusSuccessCallBack'; + callBackData.callBackFail = 'changeStatusFailCallBack'; + this.customAction('changeStatus', "admin=".concat(this.modulePathName), reqJson, callBackData); + this.closeDialog(); + this.statusChangeId = null; + } + }, { + key: "changeStatusSuccessCallBack", + value: function changeStatusSuccessCallBack(callBackData) { + this.showMessage('Successful', "".concat(this.itemName, " Request status changed successfully")); + this.get([]); + } + }, { + key: "changeStatusFailCallBack", + value: function changeStatusFailCallBack(callBackData) { + this.showMessage('Error', "Error occurred while changing ".concat(this.itemName, " request status")); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var deleteButton = ''; + var statusChangeButton = ''; + var viewLogsButton = ''; + var html = '
_edit__delete__status__logs_
'; + var optiondata = this.getStatusOptionsData(data[this.getStatusFieldPosition()]); + + if (Object.keys(optiondata).length > 0) { + html = html.replace('_status_', statusChangeButton); + } else { + html = html.replace('_status_', ''); + } + + html = html.replace('_logs_', viewLogsButton); + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + html = html.replace(/_cstatus_/g, data[this.getStatusFieldPosition()]); + return html; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }, { + key: "getStatusOptionsData", + value: function getStatusOptionsData(currentStatus) { + var data = {}; + + if (currentStatus === 'Approved') {} else if (currentStatus === 'Pending') { + data.Approved = 'Approved'; + data.Rejected = 'Rejected'; + } else if (currentStatus === 'Rejected') {} else if (currentStatus === 'Cancelled') {} else if (currentStatus === 'Processing') {} else { + data['Cancellation Requested'] = 'Cancellation Requested'; + data.Cancelled = 'Cancelled'; + } + + return data; + } + }, { + key: "getStatusOptions", + value: function getStatusOptions(currentStatus) { + return this.generateOptions(this.getStatusOptionsData(currentStatus)); + } + }]); + + return ApproveAdminAdapter; +}(_LogViewAdapter2["default"]); + +var _default = ApproveAdminAdapter; +exports["default"] = _default; + +},{"./LogViewAdapter":60}],54:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var BaseGraphAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(BaseGraphAdapter, _AdapterBase); + + var _super = _createSuper(BaseGraphAdapter); + + function BaseGraphAdapter() { + _classCallCheck(this, BaseGraphAdapter); + + return _super.apply(this, arguments); + } + + _createClass(BaseGraphAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return []; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return []; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } // eslint-disable-next-line no-unused-vars + + }, { + key: "createTable", + value: function createTable(elementId) {} + }]); + + return BaseGraphAdapter; +}(_AdapterBase2["default"]); + +var _default = BaseGraphAdapter; +exports["default"] = _default; + +},{"./AdapterBase":52}],55:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/* + * CustomFieldAdapter + */ +var CustomFieldAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(CustomFieldAdapter, _AdapterBase); + + var _super = _createSuper(CustomFieldAdapter); + + function CustomFieldAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, CustomFieldAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.tableType = ''; + return _this; + } + + _createClass(CustomFieldAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'display', 'display_order']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Display Status' + }, { + sTitle: 'Priority' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['display', { + label: 'Display Status', + type: 'select', + source: [['Form', 'Show'], ['Hidden', 'Hidden']] + }], ['field_type', { + label: 'Field Type', + type: 'select', + source: [['text', 'Text Field'], ['textarea', 'Text Area'], ['select', 'Select'], ['select2', 'Select2'], ['select2multi', 'Multi Select'], ['fileupload', 'File Upload'], ['date', 'Date'], ['datetime', 'Date Time'], ['time', 'Time'], ['signature', 'Signature']] + }], ['field_label', { + label: 'Field Label', + type: 'text', + validation: '' + }], ['field_validation', { + label: 'Validation', + type: 'select2', + validation: 'none', + sort: 'none', + 'null-label': 'Required', + 'allow-null': true, + source: [['none', 'None'], ['number', 'Number'], ['numberOrEmpty', 'Number or Empty'], ['float', 'Decimal'], ['email', 'Email'], ['emailOrEmpty', 'Email or Empty']] + }], ['field_options', { + label: 'Field Options', + type: 'datagroup', + form: [['label', { + label: 'Label', + type: 'text', + validation: '' + }], ['value', { + label: 'Value', + type: 'text', + validation: 'none' + }]], + html: '
#_delete_##_edit_##_label_#:#_value_#
', + validation: 'none' + }], ['display_order', { + label: 'Priority', + type: 'text', + validation: 'number' + }], ['display_section', { + label: 'Display Section', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "setTableType", + value: function setTableType(type) { + this.tableType = type; + } + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + var validateName = function validateName(str) { + var name = /^[a-z][a-z0-9._]+$/; + return str != null && name.test(str); + }; + + if (!validateName(params.name)) { + return 'Invalid name for custom field'; + } + + return null; + } + }, { + key: "forceInjectValuesBeforeSave", + value: function forceInjectValuesBeforeSave(params) { + var data = [params.name]; + var options = []; + var optionsData; + data.push({}); + data[1].label = params.field_label; + data[1].type = params.field_type; + data[1].validation = params.field_validation; + + if (['select', 'select2', 'select2multi'].indexOf(params.field_type) >= 0) { + optionsData = params.field_options === '' || params.field_options === undefined ? [] : JSON.parse(params.field_options); + + for (var index in optionsData) { + options.push([optionsData[index].value, optionsData[index].label]); + } + + data[1].source = options; + } + + if (params.field_validation == null || params.field_validation === undefined) { + params.field_validation = ''; + } + + params.data = JSON.stringify(data); + params.type = this.tableType; + return params; + } + }]); + + return CustomFieldAdapter; +}(_AdapterBase2["default"]); + +var _default = CustomFieldAdapter; +exports["default"] = _default; + +},{"./AdapterBase":52}],56:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ + +/* global tinyMCE */ +var ValidationRules = { + "float": function float(str) { + var floatstr = /^[-+]?[0-9]+(\.[0-9]+)?$/; + + if (str != null && str.match(floatstr)) { + return true; + } + + return false; + }, + number: function number(str) { + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + numberOrEmpty: function numberOrEmpty(str) { + if (str === '') { + return true; + } + + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + email: function email(str) { + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + emailOrEmpty: function emailOrEmpty(str) { + if (str === '') { + return true; + } + + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + username: function username(str) { + var username = /^[a-zA-Z0-9.-]+$/; + return str != null && username.test(str); + }, + input: function input(str) { + if (str != null && str.length > 0) { + return true; + } + + return false; + } +}; + +var FormValidation = /*#__PURE__*/function () { + function FormValidation(formId, validateAll, options) { + _classCallCheck(this, FormValidation); + + this.tempOptions = {}; + this.formId = formId; + this.formError = false; + this.formObject = null; + this.errorMessages = ''; + this.popupDialog = null; + this.validateAll = validateAll; + this.errorMap = []; + this.settings = { + thirdPartyPopup: null, + LabelErrorClass: false, + ShowPopup: true + }; + this.settings = jQuery.extend(this.settings, options); + this.inputTypes = ['text', 'radio', 'checkbox', 'file', 'password', 'select-one', 'select-multi', 'textarea', 'fileupload', 'signature']; + this.validator = ValidationRules; + } // eslint-disable-next-line no-unused-vars + + + _createClass(FormValidation, [{ + key: "clearError", + value: function clearError(formInput, overrideMessage) { + var id = formInput.attr('id'); + $("#".concat(this.formId, " #field_").concat(id)).removeClass('error'); + $("#".concat(this.formId, " #help_").concat(id)).html(''); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "addError", + value: function addError(formInput, overrideMessage) { + this.formError = true; + + if (formInput.attr('message') != null) { + this.errorMessages += "".concat(formInput.attr('message'), "\n"); + this.errorMap[formInput.attr('name')] = formInput.attr('message'); + } else { + this.errorMap[formInput.attr('name')] = ''; + } + + var id = formInput.attr('id'); + var validation = formInput.attr('validation'); + var message = formInput.attr('validation'); + $("#".concat(this.formId, " #field_").concat(id)).addClass('error'); + + if (message === undefined || message == null || message === '') { + $("#".concat(this.formId, " #help_err_").concat(id)).html(message); + } else if (validation === undefined || validation == null || validation === '') { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Required'); + } else if (validation === 'float' || validation === 'number') { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Number required'); + } else if (validation === 'email') { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Email required'); + } else { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Required'); + } + } + }, { + key: "showErrors", + value: function showErrors() { + if (this.formError) { + if (this.settings.thirdPartyPopup !== undefined && this.settings.thirdPartyPopup != null) { + this.settings.thirdPartyPopup.alert(); + } else if (this.settings.ShowPopup === true) { + if (this.tempOptions.popupTop !== undefined && this.tempOptions.popupTop != null) { + this.alert('Errors Found', this.errorMessages, this.tempOptions.popupTop); + } else { + this.alert('Errors Found', this.errorMessages, -1); + } + } + } + } + }, { + key: "checkValues", + value: function checkValues(options) { + this.tempOptions = options; + var that = this; + this.formError = false; + this.errorMessages = ''; + this.formObject = {}; // eslint-disable-next-line consistent-return + + var validate = function validate(inputObject) { + var inputValue = null; + var name = inputObject.attr('name'); + + if (that.settings.LabelErrorClass !== false) { + $("label[for='".concat(name, "']")).removeClass(that.settings.LabelErrorClass); + } + + var id = inputObject.attr('id'); + var type = inputObject.attr('type'); + + if (inputObject.hasClass('select2-focusser') || inputObject.hasClass('select2-input')) { + return true; + } + + if (jQuery.inArray(type, that.inputTypes) >= 0) { + if (inputObject.hasClass('uploadInput')) { + inputValue = inputObject.attr('val'); + } else if (type === 'radio' || type === 'checkbox') { + inputValue = $("input[name='".concat(name, "']:checked")).val(); + } else if (inputObject.hasClass('select2Field')) { + if ($("#".concat(that.formId, " #").concat(id)).select2('data') != null && $("#".concat(that.formId, " #").concat(id)).select2('data') !== undefined) { + inputValue = $("#".concat(that.formId, " #").concat(id)).select2('data').id; + } else { + inputValue = ''; + } + } else if (inputObject.hasClass('select2Multi')) { + if ($("#".concat(that.formId, " #").concat(id)).select2('data') != null && $("#".concat(that.formId, " #").concat(id)).select2('data') !== undefined) { + var inputValueObjects = $("#".concat(that.formId, " #").concat(id)).select2('data'); + inputValue = []; + + for (var i = 0; i < inputValueObjects.length; i++) { + inputValue.push(inputValueObjects[i].id); + } + + inputValue = JSON.stringify(inputValue); + } else { + inputValue = ''; + } + } else if (inputObject.hasClass('signatureField')) { + if ($("#".concat(that.formId, " #").concat(id)).data('signaturePad').isEmpty()) { + inputValue = ''; + } else { + inputValue = $("#".concat(id)).data('signaturePad').toDataURL(); + } + } else if (inputObject.hasClass('simplemde')) { + inputValue = $("#".concat(that.formId, " #").concat(id)).data('simplemde').value(); + } else if (inputObject.hasClass('code')) { + inputValue = $("#".concat(that.formId, " #").concat(id)).data('codemirror').getValue(); + } else if (inputObject.hasClass('tinymce')) { + inputValue = tinyMCE.get(id).getContent({ + format: 'raw' + }); + } else { + inputValue = inputObject.val(); + } + + var validation = inputObject.attr('validation'); + var valid = false; + + if (validation !== undefined && validation != null && that.validator[validation] !== undefined && that.validator[validation] != null) { + valid = that.validator[validation](inputValue); + } else { + if (that.validateAll) { + if (validation !== undefined && validation != null && validation === 'none') { + valid = true; + } else { + valid = that.validator.input(inputValue); + } + } else { + valid = true; + } + + that.formObject[id] = inputValue; + } + + if (!valid) { + that.addError(inputObject, null); + } else { + that.clearError(inputObject, null); + that.formObject[id] = inputValue; + } + } + }; + + var inputs = $("#".concat(this.formId, " :input")); + inputs.each(function () { + validate($(this)); + }); + inputs = $("#".concat(this.formId, " .uploadInput")); + inputs.each(function () { + validate($(this)); + }); + this.showErrors(); + this.tempOptions = {}; + return !this.formError; + } + }, { + key: "getFormParameters", + value: function getFormParameters() { + return this.formObject; + } + }, { + key: "alert", + value: function (_alert) { + function alert(_x, _x2) { + return _alert.apply(this, arguments); + } + + alert.toString = function () { + return _alert.toString(); + }; + + return alert; + }(function (title, text) { + alert(text); + }) + }], [{ + key: "getValidationRules", + value: function getValidationRules() { + return ValidationRules; + } + }]); + + return FormValidation; +}(); + +var _default = FormValidation; +exports["default"] = _default; + +},{}],57:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var axios = require('axios'); + +var IceApiClient = /*#__PURE__*/function () { + function IceApiClient(baseUrl, token, clientBaseUrl) { + var legacyApiWrapper = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + + _classCallCheck(this, IceApiClient); + + this.baseUrl = baseUrl; + this.token = token; + this.clientBaseUrl = clientBaseUrl; + this.legacyApiWrapper = legacyApiWrapper; + } + + _createClass(IceApiClient, [{ + key: "get", + value: function get(endpoint) { + if (this.legacyApiWrapper) { + var url = "".concat(this.clientBaseUrl, "api/index.php?token=").concat(this.token, "&method=get&url=/").concat(endpoint); + return axios.get(url); + } + + return axios.get(this.baseUrl + endpoint, { + headers: { + Authorization: "Bearer ".concat(this.token) + } + }); + } + }]); + + return IceApiClient; +}(); + +var _default = IceApiClient; +exports["default"] = _default; + +},{"axios":83}],58:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var axios = require('axios'); + +var IceDataPipe = /*#__PURE__*/function () { + function IceDataPipe(adapter) { + var pageSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; + + _classCallCheck(this, IceDataPipe); + + this.adapter = adapter; + this.pageSize = pageSize; + } + + _createClass(IceDataPipe, [{ + key: "readMetaData", + value: function readMetaData() { + this.adapter.initFieldMasterData(); + } + }, { + key: "get", + value: function get(_ref) { + var _this = this; + + var page = _ref.page, + search = _ref.search, + sortField = _ref.sortField, + sortOrder = _ref.sortOrder, + filters = _ref.filters, + limit = _ref.limit; + var pageSize = limit || this.pageSize; + var start = (page - 1) * pageSize; + var dataUrl = this.getDataUrl(this.adapter.getDataMapping(), search, filters); + var url = "".concat(dataUrl, "&iDisplayStart=").concat(start, "&iDisplayLength=").concat(pageSize); + url = this.applySortingData(this.adapter.getDataMapping(), url, sortField, sortOrder); // $.post(url, (data) => { + // that.getSuccessCallBack(callBackData, data); + // }, 'json').always(() => { that.hideLoader(); }); + + url = "".concat(url, "&version=v2"); + return axios.post(url, {}).then(function (data) { + var key = _this.getRequestKey(page, search, sortField, sortOrder, filters, limit); + + var response = { + items: data.data.objects, + total: data.data.totalRecords + }; + + if (_this.adapter.localStorageEnabled) { + window.localStorage.setItem(key, JSON.stringify(response)); + } + + return response; + }); + } + }, { + key: "getCachedResponse", + value: function getCachedResponse(_ref2) { + var page = _ref2.page, + search = _ref2.search, + sortField = _ref2.sortField, + sortOrder = _ref2.sortOrder, + filters = _ref2.filters, + limit = _ref2.limit; + var key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit); + var cachedResponse = window.localStorage.getItem(key); + + if (!cachedResponse) { + return null; + } + + return JSON.parse(cachedResponse); + } + }, { + key: "clearCachedResponse", + value: function clearCachedResponse(_ref3) { + var page = _ref3.page, + search = _ref3.search, + sortField = _ref3.sortField, + sortOrder = _ref3.sortOrder, + filters = _ref3.filters, + limit = _ref3.limit; + var key = this.getRequestKey(page, search, sortField, sortOrder, filters, limit); + window.localStorage.setItem(key, null); + } + }, { + key: "getRequestKey", + value: function getRequestKey(page, search, sortField, sortOrder, filters, limit) { + return "".concat(this.adapter.table, "|").concat(page, "|").concat(search, "|").concat(sortField, "|").concat(sortOrder, "|").concat(filters, "|").concat(limit); + } + }, { + key: "applySortingData", + value: function applySortingData(columns, url, sortField, sortOrder) { + var orderBy = ''; + + if (sortField) { + url = "".concat(url, "&sorting=1"); + url = "".concat(url, "&iSortCol_0=").concat(columns.indexOf(sortField)); + url = "".concat(url, "&sSortDir_0=").concat(sortOrder === 'descend' ? 'DESC' : 'ASC'); + } else if (this.adapter.getOrderBy() !== null) { + // Setting the fix ordering + orderBy = this.adapter.getOrderBy(); + url = "".concat(url, "&ob=").concat(orderBy); + } + + return url; + } + }, { + key: "getDataUrl", + value: function getDataUrl(_columns, searchTerm, filters) { + var sourceMappingJson = JSON.stringify(this.adapter.getSourceMapping()); + var columns = JSON.stringify(_columns); + var filterJson = ''; + + if (this.adapter.getFilter() !== null) { + filterJson = JSON.stringify(this.adapter.getFilter()); + } + + var url = this.adapter.moduleRelativeURL.replace('service.php', 'data.php'); + url = "".concat(url, "?t=").concat(this.adapter.table); + url = "".concat(url, "&sm=").concat(sourceMappingJson); + url = "".concat(url, "&cl=").concat(columns); + url = "".concat(url, "&ft=").concat(filterJson); + + if (searchTerm && searchTerm.trim() !== '') { + url += "&sSearch=".concat(searchTerm); + } + + if (this.adapter.isSubProfileTable()) { + url = "".concat(url, "&type=sub"); + } + + if (this.adapter.remoteTableSkipProfileRestriction()) { + url = "".concat(url, "&skip=1"); + } + + return url; + } + }]); + + return IceDataPipe; +}(); + +var _default = IceDataPipe; +exports["default"] = _default; + +},{"axios":83}],59:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * IdNameAdapter + */ +var IdNameAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(IdNameAdapter, _AdapterBase); + + var _super = _createSuper(IdNameAdapter); + + function IdNameAdapter(endPoint, tab, filter, orderBy) { + _classCallCheck(this, IdNameAdapter); + + return _super.call(this, endPoint, tab, filter, orderBy); + } + + _createClass(IdNameAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }]]; + } + }]); + + return IdNameAdapter; +}(_AdapterBase2["default"]); + +var _default = IdNameAdapter; +exports["default"] = _default; + +},{"./AdapterBase":52}],60:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var LogViewAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(LogViewAdapter, _AdapterBase); + + var _super = _createSuper(LogViewAdapter); + + function LogViewAdapter() { + _classCallCheck(this, LogViewAdapter); + + return _super.apply(this, arguments); + } + + _createClass(LogViewAdapter, [{ + key: "getLogs", + value: function getLogs(id) { + var object = { + id: id + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getLogsSuccessCallBack'; + callBackData.callBackFail = 'getLogsFailCallBack'; + this.customAction('getLogs', "admin=".concat(this.modulePathName), reqJson, callBackData); + } + }, { + key: "getLogsSuccessCallBack", + value: function getLogsSuccessCallBack(callBackData) { + var tableLog = '_days_
Notes
'; + var rowLog = '_date_  _status_
_note_'; + var logs = callBackData.data; + var html = ''; + var rowsLogs = ''; + + for (var i = 0; i < logs.length; i++) { + var trow = rowLog; + trow = trow.replace(/_date_/g, logs[i].time); + trow = trow.replace(/_status_/g, "".concat(logs[i].status_from, " -> ").concat(logs[i].status_to)); + trow = trow.replace(/_note_/g, logs[i].note); + rowsLogs += trow; + } + + if (rowsLogs !== '') { + tableLog = tableLog.replace('_days_', rowsLogs); + html += tableLog; + } + + this.showMessage('Logs', html); + timeUtils.convertToRelativeTime($('.logTime')); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getLogsFailCallBack", + value: function getLogsFailCallBack(callBackData) { + this.showMessage('Error', 'Error occured while getting data'); + } + }]); + + return LogViewAdapter; +}(_AdapterBase2["default"]); + +var _default = LogViewAdapter; +exports["default"] = _default; + +},{"./AdapterBase":52}],61:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var axios = require('axios'); + +var MasterDataReader = /*#__PURE__*/function () { + function MasterDataReader(adapter) { + _classCallCheck(this, MasterDataReader); + + this.adapter = adapter; + this.requestCache = this.adapter.requestCache; + } + + _createClass(MasterDataReader, [{ + key: "fetchMasterData", + value: function fetchMasterData(fieldMaster) { + var _this = this; + + var method = ''; + var methodParams = ''; + + if (fieldMaster[3] != null) { + method = fieldMaster[3]; + } + + if (fieldMaster[4] != null) { + methodParams = JSON.stringify(fieldMaster[4]); + } + + var key = this.requestCache.getKey(this.adapter.moduleRelativeURL, { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }); + var cacheData = this.requestCache.getData(key); + + if (cacheData != null && cacheData.status === 'SUCCESS') { + return new Promise(function (resolve, reject) { + return resolve(cacheData.data); + }); + } + + var urlData = { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }; + var url = "".concat(this.adapter.moduleRelativeURL, "?_url=1"); + + for (var index in urlData) { + url = "".concat(url, "&").concat(index, "=").concat(encodeURIComponent(urlData[index])); + } // TODO - Should be a get request + + + return axios.post(url, {}).then(function (response) { + if (response.data.status !== 'SUCCESS') { + throw Error("Response for ".concat(key, " failed")); + } + + _this.requestCache.setData(key, response.data); + + return response.data.data; + }); + } + }, { + key: "updateAllMasterData", + value: function updateAllMasterData() { + var _this2 = this; + + var remoteSourceFields = this.adapter.getRemoteSourceFields(); + var promiseList = []; + + for (var i = 0; i < remoteSourceFields.length; i++) { + var fieldRemote = remoteSourceFields[i]; + + if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) { + (function () { + var key = "".concat(fieldRemote[1]['remote-source'][0], "_").concat(fieldRemote[1]['remote-source'][1], "_").concat(fieldRemote[1]['remote-source'][2]); + + if (fieldRemote[1]['remote-source'].length === 4) { + key = "".concat(key, "_").concat(fieldRemote[1]['remote-source'][3]); + } + + var masterDataPromise = _this2.fetchMasterData(fieldRemote[1]['remote-source']).then(function (data) { + _this2.adapter.fieldMasterData[key] = data; + }); + + promiseList.push(masterDataPromise); + })(); + } + } + + return Promise.all(promiseList); + } + }]); + + return MasterDataReader; +}(); + +var _default = MasterDataReader; +exports["default"] = _default; + +},{"axios":83}],62:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _FormValidation = _interopRequireDefault(require("./FormValidation")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/** + * The base class for providing core functions to all module classes. + * @class Base.js + */ +var ModuleBase = /*#__PURE__*/function () { + function ModuleBase() { + _classCallCheck(this, ModuleBase); + + this.deleteParams = {}; + this.createRemoteTable = false; + this.instanceId = 'None'; + this.ga = []; + this.showAddNew = true; + this.showEdit = true; + this.showDelete = true; + this.showSave = true; + this.showCancel = true; + this.showFormOnPopup = false; + this.filtersAlreadySet = false; + this.currentFilterString = ''; + this.sorting = 0; + this.settings = {}; + this.translations = {}; + this.customFields = []; + this.csrfRequired = false; + this.fieldTemplates = null; + this.templates = null; + this.customTemplates = null; + this.emailTemplates = null; + this.fieldMasterData = {}; + this.fieldMasterDataKeys = {}; + this.fieldMasterDataCallback = null; + this.sourceMapping = null; + this.currentId = null; + this.currentElement = null; + this.user = null; + this.currentProfile = null; + this.permissions = {}; + this.baseUrl = null; + this.that = this; + } // eslint-disable-next-line no-unused-vars + + + _createClass(ModuleBase, [{ + key: "init", + value: function init(appName, currentView, dataUrl, permissions) {} + }, { + key: "initForm", + value: function initForm() {} + }, { + key: "setObjectTypeName", + value: function setObjectTypeName(objectTypeName) { + this.objectTypeName = objectTypeName; + } + /** + * Some browsers do not support sending JSON in get parameters. Set this to true to avoid sending JSON + * @method setNoJSONRequests + * @param val {Boolean} + */ + + }, { + key: "setNoJSONRequests", + value: function setNoJSONRequests(val) { + this.noJSONRequests = val; + } + }, { + key: "setPermissions", + value: function setPermissions(permissions) { + this.permissions = permissions; + } + }, { + key: "sortingStarted", + value: function sortingStarted(val) { + this.sorting = val; + } + /** + * Check if the current user has a permission + * @method checkPermission + * @param permission {String} + * @example + * this.checkPermission("Upload/Delete Profile Image") + */ + + }, { + key: "checkPermission", + value: function checkPermission(permission) { + if (this.permissions[permission] === undefined || this.permissions[permission] == null || this.permissions[permission] === 'Yes') { + return 'Yes'; + } + + return this.permissions[permission]; + } + }, { + key: "setBaseUrl", + value: function setBaseUrl(url) { + this.baseUrl = url; + } + }, { + key: "setUser", + value: function setUser(user) { + this.user = user; + } + }, { + key: "getUser", + value: function getUser() { + return this.user; + } + }, { + key: "setInstanceId", + value: function setInstanceId(id) { + this.instanceId = id; + } + }, { + key: "setCSRFRequired", + value: function setCSRFRequired(val) { + this.csrfRequired = val; + } + }, { + key: "scrollToTop", + value: function scrollToTop() { + $('html, body').animate({ + scrollTop: 0 + }, 'fast'); + } + }, { + key: "scrollToBottom", + value: function scrollToBottom() { + $('html, body').animate({ + scrollTop: $(document).height() + }, 'slow'); + } + }, { + key: "scrollToElement", + value: function scrollToElement(element) { + if ($(window).height() <= element.offset().top) { + $('html, body').animate({ + scrollTop: element.offset().top + }, 'slow'); + } + } + }, { + key: "scrollToElementBottom", + value: function scrollToElementBottom(element) { + if ($(window).height() <= element.offset().top + element.height()) { + $('html, body').animate({ + scrollTop: element.offset().top + element.height() + }, 'slow'); + } + } + }, { + key: "setTranslations", + value: function setTranslations(txt) { + this.translations = txt.messages['']; + } + }, { + key: "setTranslationsSubModules", + value: function setTranslationsSubModules(translations) { + this.translations = translations; + } + }, { + key: "gt", + value: function gt(key) { + if (this.translations[key] === undefined || this.translations[key] === null) { + console.log("Tr:" + key); + return key; + } + + return this.translations[key][0]; + } + }, { + key: "addToLangTerms", + value: function addToLangTerms(key) { + var termsArr; + var terms = localStorage.getItem('terms'); + + if (terms === undefined) { + termsArr = {}; + } else { + try { + termsArr = JSON.parse(terms); + } catch (e) { + termsArr = {}; + } + } + + if (this.translations[key] === undefined) { + termsArr[key] = key; + localStorage.setItem('terms', JSON.stringify(termsArr)); + } + } + /** + * If this method returned false the action buttons in data table for modules will not be displayed. + * Override this method in module lib.js to hide action buttons + * @method showActionButtons + * @param permission {String} + * @example + * EmployeeLeaveEntitlementAdapter.method('showActionButtons() { + * return false; + * } + */ + + }, { + key: "showActionButtons", + value: function showActionButtons() { + return true; + } + }, { + key: "trackEvent", + value: function trackEvent(action, label, value) { + try { + if (label === undefined || label == null) { + this.ga.push(['_trackEvent', this.instanceId, action]); + } else if (value === undefined || value == null) { + this.ga.push(['_trackEvent', this.instanceId, action, label]); + } else { + this.ga.push(['_trackEvent', this.instanceId, action, label, value]); + } + } catch (e) {// Do nothing + } + } + }, { + key: "setCurrentProfile", + value: function setCurrentProfile(currentProfile) { + this.currentProfile = currentProfile; + } + /** + * Get the current profile + * @method getCurrentProfile + * @returns Profile of the current user if the profile is not switched if not switched profile + */ + + }, { + key: "getCurrentProfile", + value: function getCurrentProfile() { + return this.currentProfile; + } + /** + * Retrive data required to create select boxes for add new /edit forms for a given module. This is called when loading the module + * @method initFieldMasterData + * @param callback {Function} call this once loading completed + * @param callback {Function} call this once all field loading completed. This indicate that the form can be displayed saftly + * @example + * ReportAdapter.method('renderForm(object) { + * var that = this; + * this.processFormFieldsWithObject(object); + * var cb = function(){ + * that.super.renderForm(object); + * }; + * this.initFieldMasterData(cb); + * } + */ + + }, { + key: "initFieldMasterData", + value: function initFieldMasterData(callback, loadAllCallback, loadAllCallbackData) { + this.fieldMasterData = {}; + this.fieldMasterDataKeys = {}; + this.fieldMasterDataCallback = loadAllCallback; + this.fieldMasterDataCallbackData = loadAllCallbackData; + var remoteSourceFields = this.getRemoteSourceFields(); + + for (var i = 0; i < remoteSourceFields.length; i++) { + var fieldRemote = remoteSourceFields[i]; + + if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) { + // let key = `${fieldRemote[1]['remote-source'][0]}_${fieldRemote[1]['remote-source'][1]}_${fieldRemote[1]['remote-source'][2]}`; + // if (fieldRemote[1]['remote-source'].length === 4) { + // key = `${key}_${fieldRemote[1]['remote-source'][3]}`; + // } + var key = this.getRemoteSourceKey(fieldRemote); + this.fieldMasterDataKeys[key] = false; + var callBackData = {}; + callBackData.callBack = 'initFieldMasterDataResponse'; + callBackData.callBackData = [key]; + + if (callback !== null && callback !== undefined) { + callBackData.callBackSuccess = callback; + } + + this.getFieldValues(fieldRemote[1]['remote-source'], callBackData); + } + } + } + }, { + key: "initSourceMappings", + value: function initSourceMappings() { + this.sourceMapping = {}; + var remoteSourceFields = this.getRemoteSourceFields(); + + for (var i = 0; i < remoteSourceFields.length; i++) { + var fieldRemote = remoteSourceFields[i]; + + if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) { + this.sourceMapping[fieldRemote[0]] = fieldRemote[1]['remote-source']; + } + } + } + }, { + key: "getRemoteSourceKey", + value: function getRemoteSourceKey(field) { + var key = "".concat(field[1]['remote-source'][0], "_").concat(field[1]['remote-source'][1], "_").concat(field[1]['remote-source'][2]); + + if (field[1]['remote-source'].length > 3) { + key = "".concat(key, "_").concat(field[1]['remote-source'][3]); + } + + return key; + } + }, { + key: "getRemoteSourceFields", + value: function getRemoteSourceFields() { + var values; + var fields = this.getFormFields(); + var filterFields = this.getFilters(); + + if (filterFields != null) { + for (var j = 0; j < filterFields.length; j++) { + values = this.getMetaFieldValues(filterFields[j][0], fields); + + if (values == null || values.type !== 'select' && values.type !== 'select2' && values.type !== 'select2multi') { + fields.push(filterFields[j]); + } + } + } + + var remoteSourceFields = []; + var remoteSourceFieldKeys = []; + var field = null; + var fieldSub = null; + + for (var i = 0; i < fields.length; i++) { + field = fields[i]; + + if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] !== null) { + var key = this.getRemoteSourceKey(field); + + if (remoteSourceFieldKeys.indexOf(key) < 0) { + remoteSourceFields.push(field); + remoteSourceFieldKeys.push(key); + } + } else if (field[1].form !== undefined && field[1].form !== null) { + for (var _j = 0; _j < field[1].form.length; _j++) { + fieldSub = field[1].form[_j]; + + if (fieldSub[1]['remote-source'] !== undefined && fieldSub[1]['remote-source'] !== null) { + var _key = this.getRemoteSourceKey(fieldSub); + + if (remoteSourceFieldKeys.indexOf(_key) < 0) { + remoteSourceFields.push(fieldSub); + remoteSourceFieldKeys.push(_key); + } + } + } + } + } + + return remoteSourceFields; + } + /** + * Pass true to this method after creating module JS object to open new/edit entry form for the module on a popup. + * @method setShowFormOnPopup + * @param val {Boolean} + * @example + * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{"candidate":data.id} + * modJs.subModJsList['tabCandidateApplication'].setShowFormOnPopup(true); + */ + + }, { + key: "setShowFormOnPopup", + value: function setShowFormOnPopup(val) { + this.showFormOnPopup = val; + } + /** + * Set this to true to if you need the datatable to load data page by page instead of loading all data at once. + * @method setRemoteTable + * @param val {Boolean} + * @example + * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{"candidate":data.id} + * modJs.subModJsList['tabCandidateApplication'].setRemoteTable(true); + */ + + }, { + key: "setRemoteTable", + value: function setRemoteTable(val) { + this.createRemoteTable = val; + } + }, { + key: "setSettings", + value: function setSettings(val) { + this.settings = val; + } + }, { + key: "getRemoteTable", + value: function getRemoteTable() { + return this.createRemoteTable; + } + }, { + key: "isAllLoaded", + value: function isAllLoaded(fieldMasterDataKeys) { + for (var key in fieldMasterDataKeys) { + if (fieldMasterDataKeys[key] === false) { + return false; + } + } + + return true; + } // eslint-disable-next-line no-unused-vars + + }, { + key: "initFieldMasterDataResponse", + value: function initFieldMasterDataResponse(key, data, callback, loadAllCallbackData) { + this.fieldMasterData[key] = data; + this.fieldMasterDataKeys[key] = true; + + if (callback !== undefined && callback !== null) { + callback(); + } + + if (this.fieldMasterDataCallback !== null && this.fieldMasterDataCallback !== undefined && this.isAllLoaded(this.fieldMasterDataKeys) && this.fieldMasterDataCallbackData !== null && this.fieldMasterDataCallbackData !== undefined) { + this.fieldMasterDataCallback(this.fieldMasterDataCallbackData); + } else if (this.fieldMasterDataCallback !== null && this.fieldMasterDataCallback !== undefined && this.isAllLoaded(this.fieldMasterDataKeys)) { + this.fieldMasterDataCallback(); + } + } + }, { + key: "getMetaFieldValues", + value: function getMetaFieldValues(key, fields) { + for (var i = 0; i < fields.length; i++) { + if (key === fields[i][0]) { + return fields[i][1]; + } + } + + return null; + } + }, { + key: "getThemeColors", + value: function getThemeColors() { + var colors = ['red', 'yellow', 'aqua', 'blue', 'light-blue', 'green', 'navy', 'teal', 'olive', 'orange', 'fuchsia', 'purple']; + return colors; + } + }, { + key: "getColorByRandomString", + value: function getColorByRandomString(string) { + var colors = this.getThemeColors(); + var k = string.charCodeAt(0); + return colors[k % colors.length]; + } + }, { + key: "getColorByFileType", + value: function getColorByFileType(type) { + type = type.toLowerCase(); + var colorMap = {}; + colorMap.pdf = 'red'; + colorMap.csv = 'yellow'; + colorMap.xls = 'green'; + colorMap.xlsx = 'green'; + colorMap.doc = 'light-blue'; + colorMap.docx = 'light-blue'; + colorMap.docx = 'blue'; + colorMap.ppt = 'orange'; + colorMap.pptx = 'orange'; + colorMap.jpg = 'teal'; + colorMap.jpeg = 'teal'; + colorMap.gif = 'green'; + colorMap.png = 'yellow'; + colorMap.bmp = 'fuchsia'; + + if (colorMap[type] !== undefined || colorMap[type] != null) { + return colorMap[type]; + } + + return this.getColorByRandomString(type); + } + }, { + key: "getIconByFileType", + value: function getIconByFileType(type) { + type = type.toLowerCase(); + var iconMap = {}; + iconMap.pdf = 'fa fa-file-pdf-o'; + iconMap.csv = 'fa fa fa-file-code-o'; + iconMap.xls = 'fa fa-file-excel-o'; + iconMap.xlsx = 'fa fa-file-excel-o'; + iconMap.doc = 'fa fa-file-word-o'; + iconMap.docx = 'fa fa-file-word-o'; + iconMap.ppt = 'fa fa-file-powerpoint-o'; + iconMap.pptx = 'fa fa-file-powerpoint-o'; + iconMap.jpg = 'fa fa-file-image-o'; + iconMap.jpeg = 'fa fa-file-image-o'; + iconMap.gif = 'fa fa-file-image-o'; + iconMap.png = 'fa fa-file-image-o'; + iconMap.bmp = 'fa fa-file-image-o'; + iconMap.txt = 'fa fa-file-text-o'; + iconMap.rtf = 'fa fa-file-text-o'; + + if (iconMap[type] !== undefined || iconMap[type] != null) { + return iconMap[type]; + } + + return 'fa fa-file-o'; + } + }, { + key: "getSourceMapping", + value: function getSourceMapping() { + return this.sourceMapping; + } + }, { + key: "setTesting", + value: function setTesting(testing) { + this.testing = testing; + } + }, { + key: "consoleLog", + value: function consoleLog(message) { + if (this.testing) { + console.log(message); + } + } + }, { + key: "setClientMessages", + value: function setClientMessages(msgList) { + this.msgList = msgList; + } + }, { + key: "setTemplates", + value: function setTemplates(templates) { + this.templates = templates; + } + }, { + key: "getWSProperty", + value: function getWSProperty(array, key) { + if (array.hasOwnProperty(key)) { + return array[key]; + } + + return null; + } + }, { + key: "getClientMessage", + value: function getClientMessage(key) { + return this.getWSProperty(this.msgList, key); + } + }, { + key: "getTemplate", + value: function getTemplate(key) { + return this.getWSProperty(this.templates, key); + } + }, { + key: "setGoogleAnalytics", + value: function setGoogleAnalytics(gaq) { + this.gaq = gaq; + } + }, { + key: "showView", + value: function showView(view) { + if (this.currentView != null) { + this.previousView = this.currentView; + $("#".concat(this.currentView)).hide(); + } + + $("#".concat(view)).show(); + this.currentView = view; + this.moveToTop(); + } + }, { + key: "showPreviousView", + value: function showPreviousView() { + this.showView(this.previousView); + } + }, { + key: "moveToTop", + value: function moveToTop() {} + }, { + key: "callFunction", + value: function callFunction(callback, cbParams, thisParam) { + if ($.isFunction(callback)) { + try { + if (thisParam === undefined || thisParam === null) { + callback.apply(document, cbParams); + } else { + callback.apply(thisParam, cbParams); + } + } catch (e) { + console.log(e.message); + } + } else { + var f = this[callback]; + + if ($.isFunction(f)) { + try { + f.apply(this, cbParams); + } catch (e) { + console.log(e.message); + } + } + } + } + }, { + key: "getTableTopButtonHtml", + value: function getTableTopButtonHtml() { + var html = ''; + + if (this.getShowAddNew()) { + html = ""); + } + + if (this.getFilters() != null) { + if (html !== '') { + html += '  '; + } + + html += ""); + html += '  '; + + if (this.filtersAlreadySet) { + html += ''; + } else { + html += ''; + } + } + + html = html.replace(/__id__/g, this.getTableName()); + + if (this.currentFilterString !== '' && this.currentFilterString != null) { + html = html.replace(/__filterString__/g, this.currentFilterString); + } else { + html = html.replace(/__filterString__/g, 'Reset Filters'); + } + + if (html !== '') { + html = "
".concat(html, "
"); + } + + return html; + } + }, { + key: "getActionButtonHeader", + value: function getActionButtonHeader() { + return { + sTitle: '', + sClass: 'center' + }; + } + }, { + key: "getTableHTMLTemplate", + value: function getTableHTMLTemplate() { + return '
'; + } + }, { + key: "isSortable", + value: function isSortable() { + return true; + } + /** + * Create the data table on provided element id + * @method createTable + * @param val {Boolean} + */ + + }, { + key: "createTable", + value: function createTable(elementId) { + var that = this; + + if (this.getRemoteTable()) { + this.createTableServer(elementId); + return; + } + + var headers = this.getHeaders(); // add translations + + for (var index in headers) { + headers[index].sTitle = this.gt(headers[index].sTitle); + } + + var data = this.getTableData(); + + if (this.showActionButtons()) { + headers.push(this.getActionButtonHeader()); + } + + if (this.showActionButtons()) { + for (var i = 0; i < data.length; i++) { + data[i].push(this.getActionButtonsHtml(data[i][0], data[i])); + } + } + + var html = ''; + html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate(); + /* + if(this.getShowAddNew()){ + html = this.getTableTopButtonHtml()+'
'; + }else{ + html = '
'; + } + */ + // Find current page + + var activePage = $("#".concat(elementId, " .dataTables_paginate .active a")).html(); + var start = 0; + + if (activePage !== undefined && activePage != null) { + start = parseInt(activePage, 10) * 15 - 15; + } + + $("#".concat(elementId)).html(html); + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + aaData: data, + aoColumns: headers, + bSort: that.isSortable(), + iDisplayLength: 15, + iDisplayStart: start + }; + var customTableParams = this.getCustomTableParams(); + $.extend(dataTableParams, customTableParams); + $("#".concat(elementId, " #grid")).dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); + $('.tableActionButton').tooltip(); + } + /** + * Create a data table on provided element id which loads data page by page + * @method createTableServer + * @param val {Boolean} + */ + + }, { + key: "createTableServer", + value: function createTableServer(elementId) { + var that = this; + var headers = this.getHeaders(); + headers.push({ + sTitle: '', + sClass: 'center' + }); // add translations + + for (var index in headers) { + headers[index].sTitle = this.gt(headers[index].sTitle); + } + + var html = ''; + html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate(); // Find current page + + var activePage = $("#".concat(elementId, " .dataTables_paginate .active a")).html(); + var start = 0; + + if (activePage !== undefined && activePage != null) { + start = parseInt(activePage, 10) * 15 - 15; + } + + $("#".concat(elementId)).html(html); + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + bProcessing: true, + bServerSide: true, + sAjaxSource: that.getDataUrl(that.getDataMapping()), + aoColumns: headers, + bSort: that.isSortable(), + parent: that, + iDisplayLength: 15, + iDisplayStart: start + }; + + if (this.showActionButtons()) { + dataTableParams.aoColumnDefs = [{ + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }]; + } + + var customTableParams = this.getCustomTableParams(); + $.extend(dataTableParams, customTableParams); + $("#".concat(elementId, " #grid")).dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); + $('.tableActionButton').tooltip(); + } + /** + * This should be overridden in module lib.js classes to return module headers which are used to create the data table. + * @method getHeaders + * @example + SettingAdapter.method('getHeaders() { + return [ + { "sTitle": "ID" ,"bVisible":false}, + { "sTitle": "Name" }, + { "sTitle": "Value"}, + { "sTitle": "Details"} + ]; + } + */ + + }, { + key: "getHeaders", + value: function getHeaders() {} + /** + * This should be overridden in module lib.js classes to return module field values which are used to create the data table. + * @method getDataMapping + * @example + SettingAdapter.method('getDataMapping() { + return [ + "id", + "name", + "value", + "description" + ]; + } + */ + + }, { + key: "getDataMapping", + value: function getDataMapping() {} + /** + * This should be overridden in module lib.js classes to return module from fields which are used to create the add/edit form and also used for initializing select box values in form. + * @method getFormFields + * @example + SettingAdapter.method('getFormFields() { + return [ + [ "id", {"label":"ID","type":"hidden"}], + [ "value", {"label":"Value","type":"text","validation":"none"}] + ]; + } + */ + + }, { + key: "getFormFields", + value: function getFormFields() {} + }, { + key: "getTableColumns", + value: function getTableColumns() { + return []; + } + }, { + key: "getTableData", + value: function getTableData() {} + /** + * This can be overridden in module lib.js classes inorder to show a filter form + * @method getFilters + * @example + EmployeeAdapter.method('getFilters() { + return [ + [ "job_title", {"label":"Job Title","type":"select2","allow-null":true,"null-label":"All Job Titles","remote-source":["JobTitle","id","name"]}], + [ "department", {"label":"Department","type":"select2","allow-null":true,"null-label":"All Departments","remote-source":["CompanyStructure","id","title"]}], + [ "supervisor", {"label":"Supervisor","type":"select2","allow-null":true,"null-label":"Anyone","remote-source":["Employee","id","first_name+last_name"]}] + ]; + } + */ + + }, { + key: "getFilters", + value: function getFilters() { + return null; + } + /** + * Show the edit form for an item + * @method edit + * @param id {int} id of the item to edit + */ + + }, { + key: "edit", + value: function edit(id) { + this.currentId = id; + this.getElement(id, []); + } + }, { + key: "copyRow", + value: function copyRow(id) { + this.getElement(id, [], true); + } + }, { + key: "renderModel", + value: function renderModel(id, header, body) { + $("#".concat(id, "ModelBody")).html(''); + + if (body === undefined || body == null) { + body = ''; + } + + $("#".concat(id, "ModelLabel")).html(header); + $("#".concat(id, "ModelBody")).html(body); + } + }, { + key: "renderYesNoModel", + value: function renderYesNoModel(header, body, yesBtnName, noBtnName, callback, callbackParams) { + var that = this; + var modelId = '#yesnoModel'; + + if (body === undefined || body == null) { + body = ''; + } + + $("".concat(modelId, "Label")).html(header); + $("".concat(modelId, "Body")).html(body); + + if (yesBtnName != null) { + $("".concat(modelId, "YesBtn")).html(yesBtnName); + } + + if (noBtnName != null) { + $("".concat(modelId, "NoBtn")).html(noBtnName); + } + + $("".concat(modelId, "YesBtn")).off().on('click', function () { + if (callback !== undefined && callback != null) { + callback.apply(that, callbackParams); + that.cancelYesno(); + } + }); + $(modelId).modal({ + backdrop: 'static' + }); + } + }, { + key: "renderModelFromDom", + value: function renderModelFromDom(id, header, element) { + $("#".concat(id, "ModelBody")).html(''); + + if (element === undefined || element == null) { + element = $('
'); + } + + $("#".concat(id, "ModelLabel")).html(header); + $("#".concat(id, "ModelBody")).html(''); + $("#".concat(id, "ModelBody")).append(element); + } + /** + * Delete an item + * @method deleteRow + * @param id {int} id of the item to edit + */ + + }, { + key: "deleteRow", + value: function deleteRow(id) { + this.deleteParams.id = id; + this.renderModel('delete', 'Confirm Deletion', 'Are you sure you want to delete this item ?'); + $('#deleteModel').modal('show'); + } + /** + * Show a popup with message + * @method showMessage + * @param title {String} title of the message box + * @param message {String} message + * @param closeCallback {Function} this will be called once the dialog is closed (optional) + * @param closeCallback {Function} data to pass to close callback (optional) + * @param closeCallbackData + * @param isPlain {Boolean} if true buttons are not shown (optional / default = true) + * @example + * this.showMessage("Error Occured while Applying Leave", callBackData); + */ + + }, { + key: "showMessage", + value: function showMessage(title, message) { + var closeCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var closeCallbackData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var isPlain = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + var that = this; + var modelId = ''; + + if (isPlain) { + modelId = '#plainMessageModel'; + } else { + modelId = '#messageModel'; + } + + $(modelId).off(); + + if (isPlain) { + this.renderModel('plainMessage', title, message); + } else { + this.renderModel('message', title, message); + } + + if (closeCallback !== null && closeCallback !== undefined) { + $(modelId).modal({ + show: true + }); + $(modelId).on('hidden.bs.modal', function () { + closeCallback.apply(that, closeCallbackData); + $('.modal-backdrop').remove(); + }); + } else { + $(modelId).modal({ + backdrop: 'static' + }); + } + } + }, { + key: "showDomElement", + value: function showDomElement(title, element, closeCallback, closeCallbackData, isPlain) { + var that = this; + var modelId = ''; + + if (isPlain) { + modelId = '#dataMessageModel'; + } else { + modelId = '#messageModel'; + } + + $(modelId).unbind('hide'); + + if (isPlain) { + this.renderModelFromDom('dataMessage', title, element); + } else { + this.renderModelFromDom('message', title, element); + } + + if (closeCallback !== null && closeCallback !== undefined) { + $(modelId).modal({ + show: true + }); + $(modelId).on('hidden.bs.modal', function () { + closeCallback.apply(that, closeCallbackData); + $('.modal-backdrop').remove(); + }); + } else { + $(modelId).modal({ + backdrop: 'static' + }); + } + } + }, { + key: "confirmDelete", + value: function confirmDelete() { + if (this.deleteParams.id !== undefined || this.deleteParams.id != null) { + this.deleteObj(this.deleteParams.id, []); + } + + $('#deleteModel').modal('hide'); + } + }, { + key: "cancelDelete", + value: function cancelDelete() { + $('#deleteModel').modal('hide'); + this.deleteParams.id = null; + } + }, { + key: "closeMessage", + value: function closeMessage() { + $('#messageModel').modal('hide'); + } + }, { + key: "cancelYesno", + value: function cancelYesno() { + $('#yesnoModel').modal('hide'); + } + }, { + key: "closePlainMessage", + value: function closePlainMessage() { + $('#plainMessageModel').modal('hide'); + $('#dataMessageModel').modal('hide'); + } + }, { + key: "closeDataMessage", + value: function closeDataMessage() { + $('#dataMessageModel').modal('hide'); + } + /** + * Create or edit an element + * @method save + * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters + * @param successCallback {Function} this will get called after success response + */ + + }, { + key: "save", + value: function save(callGetFunction, successCallback) { + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_submit"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + params = this.forceInjectValuesBeforeSave(params); + var msg = this.doCustomValidation(params); + + if (msg == null) { + if (this.csrfRequired) { + params.csrf = $("#".concat(this.getTableName(), "Form")).data('csrf'); + } + + var id = $("#".concat(this.getTableName(), "_submit #id")).val(); + + if (id != null && id !== undefined && id !== '') { + params.id = id; + } + + params = this.makeEmptyDateFieldsNull(params); + this.add(params, [], callGetFunction, successCallback); + } else { + $("#".concat(this.getTableName(), "Form .label")).html(msg); + $("#".concat(this.getTableName(), "Form .label")).show(); + this.scrollToTop(); + } + } + } + }, { + key: "makeEmptyDateFieldsNull", + value: function makeEmptyDateFieldsNull(params) { + var fields = this.getFormFields(); + fields.forEach(function (field) { + if ((field[1].type === 'date' || field[1].type === 'datetime') && (params[field[0]] === '' || params[field[0]] === '0000-00-00' || params[field[0]] === '0000-00-00 00:00:00')) { + if (field[1].validation === 'none') { + params[field[0]] = 'NULL'; + } else { + delete params[field[0]]; + } + } + }); + return params; + } + }, { + key: "validatePassword", + value: function validatePassword(password) { + if (password.length < 8) { + return this.gt('Password too short'); + } + + if (password.length > 30) { + return this.gt('Password too long'); + } + + var numberTester = /.*[0-9]+.*$/; + + if (!password.match(numberTester)) { + return this.gt('Password must include at least one number'); + } + + var lowerTester = /.*[a-z]+.*$/; + + if (!password.match(lowerTester)) { + return this.gt('Password must include at least one lowercase letter'); + } + + var upperTester = /.*[A-Z]+.*$/; + + if (!password.match(upperTester)) { + return this.gt('Password must include at least one uppercase letter'); + } + + var symbolTester = /.*[\W]+.*$/; + + if (!password.match(symbolTester)) { + return this.gt('Password must include at least one symbol'); + } + + return null; + } + /** + * Override this method to inject attitional parameters or modify existing parameters retrived from + * add/edit form before sending to the server + * @method forceInjectValuesBeforeSave + * @param params {Array} keys and values in form + * @returns {Array} modified parameters + */ + + }, { + key: "forceInjectValuesBeforeSave", + value: function forceInjectValuesBeforeSave(params) { + return params; + } + /** + * Override this method to do custom validations at client side + * @method doCustomValidation + * @param params {Array} keys and values in form + * @returns {Null or String} return null if validation success, returns error message if unsuccessful + * @example + EmployeeLeaveAdapter.method('doCustomValidation(params) { + try{ + if(params['date_start'] != params['date_end']){ + var ds = new Date(params['date_start']); + var de = new Date(params['date_end']); + if(de < ds){ + return "Start date should be earlier than end date of the leave period"; + } + } + }catch(e){ + } + return null; + } + */ + // eslint-disable-next-line no-unused-vars + + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + return null; + } + }, { + key: "filterQuery", + value: function filterQuery() { + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_filter"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + + if (this.doCustomFilterValidation(params)) { + // remove null params + for (var prop in params) { + if (params.hasOwnProperty(prop)) { + if (params[prop] === 'NULL') { + delete params[prop]; + } + } + } + + this.setFilter(params); + this.filtersAlreadySet = true; + $("#".concat(this.getTableName(), "_resetFilters")).show(); + this.currentFilterString = this.getFilterString(params); + this.get([]); + this.closePlainMessage(); + } + } + } + }, { + key: "getFilterString", + value: function getFilterString(filters) { + var str = ''; + var rmf; + var source; + var values; + var select2MVal; + var value; + var valueOrig; + var filterFields = this.getFilters(); + + if (values == null) { + values = []; + } + + for (var prop in filters) { + if (filters.hasOwnProperty(prop)) { + values = this.getMetaFieldValues(prop, filterFields); + + if (!values) { + continue; + } + + value = ''; + valueOrig = null; + + if (values.type === 'select' || values.type === 'select2') { + if (values['remote-source'] !== undefined && values['remote-source'] != null) { + rmf = values['remote-source']; + + if (filters[prop] === 'NULL') { + if (values['null-label'] !== undefined && values['null-label'] != null) { + value = values['null-label']; + } else { + value = 'Not Selected'; + } + } else { + var key = "".concat(rmf[0], "_").concat(rmf[1], "_").concat(rmf[2]); + + if (rmf.length > 3) { + key = "".concat(key, "_").concat(rmf[3]); + } //value = this.fieldMasterData[`${rmf[0]}_${rmf[1]}_${rmf[2]}`][filters[prop]]; + + + value = this.fieldMasterData[key][filters[prop]]; + valueOrig = value; + } + } else { + source = values.source[0]; + + if (filters[prop] === 'NULL') { + if (values['null-label'] !== undefined && values['null-label'] != null) { + value = values['null-label']; + } else { + value = 'Not Selected'; + } + } else { + for (var i = 0; i < source.length; i++) { + if (filters[prop] === values.source[i][0]) { + value = values.source[i][1]; + valueOrig = value; + break; + } + } + } + } + } else if (values.type === 'select2multi') { + select2MVal = []; + + try { + select2MVal = JSON.parse(filters[prop]); + } catch (e) {// Do nothing + } + + value = select2MVal.join(','); + + if (value !== '') { + valueOrig = value; + } + } else { + value = filters[prop]; + + if (value !== '') { + valueOrig = value; + } + } + + if (valueOrig != null) { + if (str !== '') { + str += ' | '; + } + + str += "".concat(values.label, " = ").concat(value); + } + } + } + + return str; + } + /** + * Override this method to do custom validations at client side for values selected in filters + * @method doCustomFilterValidation + * @param params {Array} keys and values in form + * @returns {Null or String} return null if validation success, returns error message if unsuccessful + */ + + }, { + key: "doCustomFilterValidation", + value: function doCustomFilterValidation(params) { + return true; + } + /** + * Reset selected filters + * @method resetFilters + */ + + }, { + key: "resetFilters", + value: function resetFilters() { + this.filter = this.origFilter; + this.filtersAlreadySet = false; + $("#".concat(this.getTableName(), "_resetFilters")).hide(); + this.currentFilterString = ''; + this.get([]); + } + }, { + key: "showFilters", + value: function showFilters(object) { + var formHtml = this.templates.filterTemplate; + var html = ''; + var fields = this.getFilters(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_filter")); + formHtml = formHtml.replace(/_fields_/g, html); + var randomFormId = this.generateRandom(14); + var $tempDomObj = $('
'); + $tempDomObj.attr('id', randomFormId); + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); + tinymce.init({ + selector: "#".concat($tempDomObj.attr('id'), " .tinymce"), + height: '400' + }); + $tempDomObj.find('.simplemde').each(function () { + var simplemde = new SimpleMDE({ + element: $(this)[0] + }); + $(this).data('simplemde', simplemde); // simplemde.value($(this).val()); + }); // $tempDomObj.find('.select2Field').select2(); + + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + /* + $tempDomObj.find('.signatureField').each(function() { + $(this).data('signaturePad',new SignaturePad($(this))); + }); + */ + // var tHtml = $tempDomObj.wrap('
').parent().html(); + + this.showDomElement('Edit', $tempDomObj, null, null, true); + $('.filterBtn').off(); + $('.filterBtn').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + + try { + modJs.filterQuery(); + } catch (err) { + console.log(err); + console.log(err.message); + } + + return false; + }); + + if (this.filter !== undefined && this.filter != null && this.filter !== '') { + this.fillForm(this.filter, "#".concat(this.getTableName(), "_filter"), this.getFilters()); + } + } + /** + * Override this method in your module class to make changes to data fo the form before showing the form + * @method preRenderForm + * @param object {Array} keys value list for populating form + */ + + }, { + key: "preRenderForm", + value: function preRenderForm(object) {} + /** + * Create the form + * @method renderForm + * @param object {Array} keys value list for populating form + */ + + }, { + key: "renderForm", + value: function renderForm(object) { + var signatureIds = []; + + if (object == null || object === undefined) { + this.currentId = null; + } + + this.preRenderForm(object); + var formHtml = this.templates.formTemplate; + var html = ''; + var fields = this.getFormFields(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_submit")); + formHtml = formHtml.replace(/_fields_/g, html); + var $tempDomObj; + var randomFormId = this.generateRandom(14); + + if (!this.showFormOnPopup) { + $tempDomObj = $("#".concat(this.getTableName(), "Form")); + } else { + $tempDomObj = $('
'); + $tempDomObj.attr('id', randomFormId); + } + + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); + tinymce.init({ + selector: "#".concat($tempDomObj.attr('id'), " .tinymce"), + height: '400' + }); + $tempDomObj.find('.simplemde').each(function () { + var simplemde = new SimpleMDE({ + element: $(this)[0] + }); + $(this).data('simplemde', simplemde); // simplemde.value($(this).val()); + }); + var codeMirror = this.codeMirror; + + if (codeMirror) { + $tempDomObj.find('.code').each(function () { + var editor = codeMirror.fromTextArea($(this)[0], { + lineNumbers: false, + matchBrackets: true, + continueComments: 'Enter', + extraKeys: { + 'Ctrl-Q': 'toggleComment' + } + }); + $(this).data('codemirror', editor); + }); + } // $tempDomObj.find('.select2Field').select2(); + + + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + $tempDomObj.find('.signatureField').each(function () { + // $(this).data('signaturePad',new SignaturePad($(this))); + signatureIds.push($(this).attr('id')); + }); + + for (var _i = 0; _i < fields.length; _i++) { + if (fields[_i][1].type === 'datagroup') { + $tempDomObj.find("#".concat(fields[_i][0])).data('field', fields[_i]); + } + } + + if (this.showSave === false) { + $tempDomObj.find('.saveBtn').remove(); + } else { + $tempDomObj.find('.saveBtn').off(); + $tempDomObj.find('.saveBtn').data('modJs', this); + $tempDomObj.find('.saveBtn').on('click', function () { + if ($(this).data('modJs').saveSuccessItemCallback != null && $(this).data('modJs').saveSuccessItemCallback !== undefined) { + $(this).data('modJs').save($(this).data('modJs').retriveItemsAfterSave(), $(this).data('modJs').saveSuccessItemCallback); + } else { + $(this).data('modJs').save(); + } + + return false; + }); + } + + if (this.showCancel === false) { + $tempDomObj.find('.cancelBtn').remove(); + } else { + $tempDomObj.find('.cancelBtn').off(); + $tempDomObj.find('.cancelBtn').data('modJs', this); + $tempDomObj.find('.cancelBtn').on('click', function () { + $(this).data('modJs').cancel(); + return false; + }); + } // Input mask + + + $tempDomObj.find('[mask]').each(function () { + $(this).inputmask($(this).attr('mask')); + }); + $tempDomObj.find('[datemask]').each(function () { + $(this).inputmask({ + mask: 'y-1-2', + placeholder: 'YYYY-MM-DD', + leapday: '-02-29', + separator: '-', + alias: 'yyyy/mm/dd' + }); + }); + $tempDomObj.find('[datetimemask]').each(function () { + $(this).inputmask('datetime', { + mask: 'y-2-1 h:s:00', + placeholder: 'YYYY-MM-DD hh:mm:ss', + leapday: '-02-29', + separator: '-', + alias: 'yyyy/mm/dd' + }); + }); + + if (!this.showFormOnPopup) { + $("#".concat(this.getTableName(), "Form")).show(); + $("#".concat(this.getTableName())).hide(); + + for (var _i2 = 0; _i2 < signatureIds.length; _i2++) { + $("#".concat(signatureIds[_i2])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i2]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object); + } else { + this.setDefaultValues(); + } + + this.scrollToTop(); + } else { + // var tHtml = $tempDomObj.wrap('
').parent().html(); + // this.showMessage("Edit",tHtml,null,null,true); + this.showMessage('Edit', '', null, null, true); + $('#plainMessageModel .modal-body').html(''); + $('#plainMessageModel .modal-body').append($tempDomObj); + + for (var _i3 = 0; _i3 < signatureIds.length; _i3++) { + $("#".concat(signatureIds[_i3])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i3]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object, "#".concat(randomFormId)); + } else { + this.setDefaultValues("#".concat(randomFormId)); + } + } + + this.postRenderForm(object, $tempDomObj); + } + }, { + key: "setDefaultValues", + value: function setDefaultValues(formId, fields) { + if (fields == null || fields === undefined) { + fields = this.getFormFields(); + } + + if (formId == null || formId === undefined || formId === '') { + formId = "#".concat(this.getTableName(), "Form"); + } + + for (var i = 0; i < fields.length; i++) { + if (fields[i][1].type !== 'text' && fields[i][1].type !== 'textarea') { + continue; + } + + if (fields[i][1]["default"] !== undefined && fields[i][1]["default"] !== null) { + $("".concat(formId, " #").concat(fields[i][0])).val(fields[i][1]["default"]); + } + } + } + }, { + key: "retriveItemsAfterSave", + value: function retriveItemsAfterSave() { + return true; + } + /** + * Override this method in your module class to make changes to data fo the form after showing it + * @method postRenderForm + * @param object {Array} keys value list for populating form + * @param $tempDomObj {DOM} a DOM element for the form + * @example + * UserAdapter.method('postRenderForm(object, $tempDomObj) { + if(object == null || object == undefined){ + $tempDomObj.find("#changePasswordBtn").remove(); + } + } + */ + + }, { + key: "postRenderForm", + value: function postRenderForm(object, $tempDomObj) {} + /** + * Convert data group field to HTML + * @method dataGroupToHtml + * @param val {String} value in the field + * @param field {Array} field meta data + */ + + }, { + key: "dataGroupToHtml", + value: function dataGroupToHtml(val, field) { + var data = JSON.parse(val); + var t; + var sortFunction; + var item; + var itemHtml; + var itemVal; + var deleteButton = '
  • '; + var editButton = '
  • '; + var template = field[1].html; + + if (data != null && data !== undefined && field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) { + data.sort(field[1]['sort-function']); + } + + var html = $("
    ")); + + for (var i = 0; i < data.length; i++) { + item = data[i]; + + if (field[1]['pre-format-function'] !== undefined && field[1]['pre-format-function'] != null) { + item = field[1]['pre-format-function'].apply(this, [item]); + } + + t = template; + t = t.replace('#_delete_#', deleteButton); + t = t.replace('#_edit_#', editButton); + t = t.replace(/#_id_#/g, item.id); + + for (var key in item) { + itemVal = item[key]; + + if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') { + itemVal = itemVal.replace(/(?:\r\n|\r|\n)/g, '
    '); + } + + t = t.replace("#_".concat(key, "_#"), itemVal); + } + + if (field[1].render !== undefined && field[1].render != null) { + t = t.replace('#_renderFunction_#', field[1].render(item)); + } + + itemHtml = $(t); + itemHtml.attr('fieldId', "".concat(field[0], "_div")); + html.append(itemHtml); + } + + return html; + } + /** + * Reset the DataGroup for a given field + * @method resetDataGroup + * @param field {Array} field meta data + */ + + }, { + key: "resetDataGroup", + value: function resetDataGroup(field) { + $("#".concat(field[0])).val(''); + $("#".concat(field[0], "_div")).html(''); + } + }, { + key: "showDataGroup", + value: function showDataGroup(field, object, callback) { + var formHtml = this.templates.datagroupTemplate; + var html = ''; + var fields = field[1].form; + + if (object !== undefined && object != null && object.id !== undefined) { + this.currentDataGroupItemId = object.id; + } else { + this.currentDataGroupItemId = null; + } + + for (var i = 0; i < fields.length; i++) { + html += this.renderFormField(fields[i]); + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_field_").concat(field[0])); + formHtml = formHtml.replace(/_fields_/g, html); + var randomFormId = this.generateRandom(14); + var $tempDomObj = $('
    '); + $tempDomObj.attr('id', randomFormId); + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); + tinymce.init({ + selector: "#".concat($tempDomObj.attr('id'), " .tinymce"), + height: '400' + }); + $tempDomObj.find('.simplemde').each(function () { + var simplemde = new SimpleMDE({ + element: $(this)[0] + }); + $(this).data('simplemde', simplemde); // simplemde.value($(this).val()); + }); + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + this.currentDataGroupField = field; + this.showDomElement("Add ".concat(field[1].label), $tempDomObj, null, null, true); + + if (object !== undefined && object != null) { + this.fillForm(object, "#".concat(this.getTableName(), "_field_").concat(field[0]), field[1].form); + } else { + this.setDefaultValues("#".concat(this.getTableName(), "_field_").concat(field[0]), field[1].form); + } + + $('.groupAddBtn').off(); + + if (object !== undefined && object != null && object.id !== undefined) { + $('.groupAddBtn').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + + try { + modJs.editDataGroup(callback); + } catch (err) { + console.log("Error editing data group: ".concat(err.message)); + } + + return false; + }); + } else { + $('.groupAddBtn').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + + try { + modJs.addDataGroup(callback); + } catch (err) { + console.log("Error adding data group: ".concat(err.message)); + } + + return false; + }); + } + } + }, { + key: "addDataGroup", + value: function addDataGroup(callback, existingData) { + var field = this.currentDataGroupField; + var tempParams; + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).html(''); + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).hide(); + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_field_").concat(field[0]), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + + if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) { + tempParams = field[1]['custom-validate-function'].apply(this, [params]); + + if (tempParams.valid) { + params = tempParams.params; + } else { + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).html(tempParams.message); + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).show(); + return false; + } + } + + var val = '[]'; + + if (existingData) { + val = existingData; + } else { + val = $("#".concat(field[0])).val(); + + if (val === '' || val == null) { + val = '[]'; + } + } + + var data = JSON.parse(val); + params.id = "".concat(field[0], "_").concat(this.dataGroupGetNextAutoIncrementId(data)); + data.push(params); + + if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) { + data.sort(field[1]['sort-function']); + } + + val = JSON.stringify(data); + var html = this.dataGroupToHtml(val, field); + + if (callback) { + callback(val); + } + + $("#".concat(field[0], "_div")).html(''); + $("#".concat(field[0], "_div")).append(html); + this.makeDataGroupSortable(field, $("#".concat(field[0], "_div_inner"))); + $("#".concat(field[0])).val(val); + this.orderDataGroup(field); + this.closeDataMessage(); + this.showMessage('Item Added', 'This change will be effective only when you save the form'); + } + + return true; + } + }, { + key: "nl2br", + value: function nl2br(str, len) { + var t = ''; + + try { + var arr = str.split(' '); + var count = 0; + + for (var i = 0; i < arr.length; i++) { + count += arr[i].length + 1; + + if (count > len) { + t += "".concat(arr[i], "
    "); + count = 0; + } else { + t += "".concat(arr[i], " "); + } + } + } catch (e) {// Do nothing + } + + return t; + } + }, { + key: "makeDataGroupSortable", + value: function makeDataGroupSortable(field, obj) { + obj.data('field', field); + obj.data('firstSort', true); + obj.sortable({ + create: function create() { + $(this).height($(this).height()); + }, + 'ui-floating': false, + start: function start(e, uiStart) { + $('#sortable-ul-selector-id').sortable({ + sort: function sort(event, ui) { + var $target = $(event.target); + + if (!/html|body/i.test($target.offsetParent()[0].tagName)) { + var top = event.pageY - $target.offsetParent().offset().top - ui.helper.outerHeight(true) / 2; + ui.helper.css({ + top: "".concat(top, "px") + }); + } + } + }); + }, + revert: true, + stop: function stop() { + modJs.orderDataGroup($(this).data('field')); + }, + axis: 'y', + scroll: false, + placeholder: 'sortable-placeholder', + cursor: 'move' + }); + } + }, { + key: "orderDataGroup", + value: function orderDataGroup(field, callback) { + var newArr = []; + var id; + var list = $("#".concat(field[0], "_div_inner [fieldid='").concat(field[0], "_div']")); + var val = $("#".concat(field[0])).val(); + + if (val === '' || val == null) { + val = '[]'; + } + + var data = JSON.parse(val); + list.each(function () { + id = $(this).attr('id'); + + for (var index in data) { + if (data[index].id === id) { + newArr.push(data[index]); + break; + } + } + }); + $("#".concat(field[0])).val(JSON.stringify(newArr)); + + if (callback != null) { + callback(newArr); + } + } + }, { + key: "editDataGroup", + value: function editDataGroup(callback, existingData) { + var field = this.currentDataGroupField; + var id = this.currentDataGroupItemId; + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_field_").concat(field[0]), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + + if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) { + var tempParams = field[1]['custom-validate-function'].apply(this, [params]); + + if (tempParams.valid) { + params = tempParams.params; + } else { + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).html(tempParams.message); + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).show(); + return false; + } + } + + if (this.doCustomFilterValidation(params)) { + var val = '[]'; + + if (existingData) { + val = existingData; + } else { + val = $("#".concat(field[0])).val(); + + if (val === '' || val == null) { + val = '[]'; + } + } + + var data = JSON.parse(val); + var editVal = {}; + var editValIndex = -1; + var newVals = []; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === id) { + editVal = item; + editValIndex = i; + } + + newVals.push(item); + } + + params.id = editVal.id; + newVals[editValIndex] = params; + + if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) { + newVals.sort(field[1]['sort-function']); + } + + val = JSON.stringify(newVals); + $("#".concat(field[0])).val(val); + var html = this.dataGroupToHtml(val, field); + + if (callback) { + callback(newVals); + } + + this.orderDataGroup(field); + $("#".concat(field[0], "_div")).html(''); + $("#".concat(field[0], "_div")).append(html); + this.makeDataGroupSortable(field, $("#".concat(field[0], "_div_inner"))); + this.closeDataMessage(); + this.showMessage('Item Edited', 'This change will be effective only when you save the form'); + } + } + + return true; + } + }, { + key: "editDataGroupItem", + value: function editDataGroupItem(id, existingData, field) { + var fieldId = id.substring(0, id.lastIndexOf('_')); + var val; + + if (existingData) { + val = decodeURI(existingData); + } else { + val = $("#".concat(fieldId)).val(); + } + + var data = JSON.parse(val); + var editVal = {}; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === id) { + editVal = item; + } + } + + if (field) { + field = JSON.parse(decodeURI(field)); + } else { + field = $("#".concat(fieldId)).data('field'); + } + + this.showDataGroup(field, editVal); + } + }, { + key: "dataGroupGetNextAutoIncrementId", + value: function dataGroupGetNextAutoIncrementId(data) { + var autoId = 1; + var id; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === undefined || item.id == null) { + item.id = 1; + } + + id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length); + + if (id >= autoId) { + autoId = parseInt(id, 10) + 1; + } + } + + return autoId; + } + }, { + key: "deleteDataGroupItem", + value: function deleteDataGroupItem(id, existingData) { + var fieldId = id.substring(0, id.lastIndexOf('_')); + var val; + + if (existingData) { + val = decodeURI(existingData); + } else { + val = $("#".concat(fieldId)).val(); + } + + var data = JSON.parse(val); + var newVal = []; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id !== id) { + newVal.push(item); + } + } + + $("#".concat(fieldId)).val(JSON.stringify(newVal)); + $("#".concat(id)).remove(); + this.showMessage('Item Removed', 'Item removed. This change will be effective only when you save the form'); + } + /** + * Fill a form with required values after showing it + * @method fillForm + * @param object {Array} form data + * @param formId {String} id of the form + * @param formId {Array} field meta data + */ + + }, { + key: "fillForm", + value: function fillForm(object, formId, fields) { + var placeHolderVal; + + if (fields == null || fields === undefined) { + fields = this.getFormFields(); + } + + if (formId == null || formId === undefined || formId === '') { + formId = "#".concat(this.getTableName(), "Form"); + } + + for (var i = 0; i < fields.length; i++) { + if (fields[i][1].type === 'date') { + if (object[fields[i][0]] !== '0000-00-00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) { + $("".concat(formId, " #").concat(fields[i][0], "_date")).datepicker('setValue', object[fields[i][0]]); + } + } else if (fields[i][1].type === 'colorpick') { + if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined) { + $("".concat(formId, " #").concat(fields[i][0], "_colorpick")).colorpicker('setValue', object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + } + } else if (fields[i][1].type === 'datetime' || fields[i][1].type === 'time') { + if (object[fields[i][0]] !== '0000-00-00 00:00:00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) { + var tempDate = object[fields[i][0]]; + var arr = tempDate.split(' '); + var dateArr = arr[0].split('-'); + var timeArr = arr[1].split(':'); + $("".concat(formId, " #").concat(fields[i][0], "_datetime")).data('datetimepicker').setLocalDate(new Date(dateArr[0], parseInt(dateArr[1], 10) - 1, dateArr[2], timeArr[0], timeArr[1], timeArr[2])); + } + } else if (fields[i][1].type === 'label') { + $("".concat(formId, " #").concat(fields[i][0])).html(object[fields[i][0]]); + } else if (fields[i][1].type === 'placeholder') { + if (fields[i][1]['remote-source'] !== undefined && fields[i][1]['remote-source'] != null) { + //const key = `${fields[i][1]['remote-source'][0]}_${fields[i][1]['remote-source'][1]}_${fields[i][1]['remote-source'][2]}`; + var key = this.getRemoteSourceKey(fields[i]); + placeHolderVal = this.fieldMasterData[key][object[fields[i][0]]]; + } else { + placeHolderVal = object[fields[i][0]]; + } + + if (placeHolderVal === undefined || placeHolderVal == null) { + placeHolderVal = ''; + } else { + try { + placeHolderVal = placeHolderVal.replace(/(?:\r\n|\r|\n)/g, '
    '); + } catch (e) {// Do nothing + } + } + + if (fields[i][1].formatter !== undefined && fields[i][1].formatter && $.isFunction(fields[i][1].formatter)) { + try { + placeHolderVal = fields[i][1].formatter(placeHolderVal); + } catch (e) {// Do nothing + } + } + + $("".concat(formId, " #").concat(fields[i][0])).html(placeHolderVal); + } else if (fields[i][1].type === 'fileupload') { + if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined && object[fields[i][0]] !== '') { + $("".concat(formId, " #").concat(fields[i][0])).html(object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0])).attr('val', object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0])).show(); + $("".concat(formId, " #").concat(fields[i][0], "_download")).show(); + $("".concat(formId, " #").concat(fields[i][0], "_remove")).show(); + } + + if (fields[i][1].readonly === true) { + $("".concat(formId, " #").concat(fields[i][0], "_upload")).remove(); + } + } else if (fields[i][1].type === 'select') { + if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') { + object[fields[i][0]] = 'NULL'; + } + + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + } else if (fields[i][1].type === 'select2') { + if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') { + object[fields[i][0]] = 'NULL'; + } + + $("".concat(formId, " #").concat(fields[i][0])).select2('val', object[fields[i][0]]); + } else if (fields[i][1].type === 'select2multi') { + // TODO - SM + if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') { + object[fields[i][0]] = 'NULL'; + } + + var msVal = []; + + if (object[fields[i][0]] !== undefined && object[fields[i][0]] != null && object[fields[i][0]] !== '') { + try { + msVal = JSON.parse(object[fields[i][0]]); + } catch (e) {// Do nothing + } + } + + $("".concat(formId, " #").concat(fields[i][0])).select2('val', msVal); + var select2Height = $("".concat(formId, " #").concat(fields[i][0])).find('.select2-choices').height(); + $("".concat(formId, " #").concat(fields[i][0])).find('.controls').css('min-height', "".concat(select2Height, "px")); + $("".concat(formId, " #").concat(fields[i][0])).css('min-height', "".concat(select2Height, "px")); + } else if (fields[i][1].type === 'datagroup') { + try { + var html = this.dataGroupToHtml(object[fields[i][0]], fields[i]); + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0], "_div")).html(''); + $("".concat(formId, " #").concat(fields[i][0], "_div")).append(html); + this.makeDataGroupSortable(fields[i], $("".concat(formId, " #").concat(fields[i][0], "_div_inner"))); + } catch (e) {// Do nothing + } + } else if (fields[i][1].type === 'signature') { + if (object[fields[i][0]] !== '' || object[fields[i][0]] !== undefined || object[fields[i][0]] != null) { + $("".concat(formId, " #").concat(fields[i][0])).data('signaturePad').fromDataURL(object[fields[i][0]]); + } + } else if (fields[i][1].type === 'simplemde') { + $("".concat(formId, " #").concat(fields[i][0])).data('simplemde').value(object[fields[i][0]]); + } else if (fields[i][1].type === 'code') { + var cm = $("".concat(formId, " #").concat(fields[i][0])).data('codemirror'); + + if (cm) { + cm.getDoc().setValue(object[fields[i][0]]); + } + } else { + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + } + } + } + /** + * Cancel edit or add new on modules + * @method cancel + */ + + }, { + key: "cancel", + value: function cancel() { + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + } + }, { + key: "renderFormField", + value: function renderFormField(field) { + var userId = 0; + + if (this.fieldTemplates[field[1].type] === undefined || this.fieldTemplates[field[1].type] == null) { + return ''; + } + + var t = this.fieldTemplates[field[1].type]; + field[1].label = this.gt(field[1].label); + + if (field[1].validation !== 'none' && field[1].validation !== 'emailOrEmpty' && field[1].validation !== 'numberOrEmpty' && field[1].type !== 'placeholder' && field[1].label.indexOf('*') < 0) { + var tempSelectBoxes = ['select', 'select2']; + + if (!(tempSelectBoxes.indexOf(field[1].type) >= 0 && field[1]['allow-null'] === true)) { + field[1].label = "".concat(field[1].label, "*"); + } + } + + if (field[1].type === 'select' || field[1].type === 'select2' || field[1].type === 'select2multi') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + + if (field[1].source !== undefined && field[1].source != null) { + t = t.replace('_options_', this.renderFormSelectOptions(field[1].source, field)); + } else if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] != null) { + // let key = `${field[1]['remote-source'][0]}_${field[1]['remote-source'][1]}_${field[1]['remote-source'][2]}`; + // if (field[1]['remote-source'].length === 4) { + // key = `${key}_${field[1]['remote-source'][3]}`; + // } + var key = this.getRemoteSourceKey(field); + t = t.replace('_options_', this.renderFormSelectOptionsRemote(this.fieldMasterData[key], field)); + } + } else if (field[1].type === 'colorpick') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'date') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'datetime') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'time') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'fileupload') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + var ce = this.getCurrentProfile(); + + if (ce != null && ce !== undefined) { + userId = ce.id; + } else { + userId = this.getUser().id * -1; + } + + t = t.replace(/_userId_/g, userId); + t = t.replace(/_group_/g, this.tab); + + if (field[1].filetypes !== undefined && field[1].filetypes != null) { + t = t.replace(/_filetypes_/g, field[1].filetypes); + } else { + t = t.replace(/_filetypes_/g, 'all'); + } + + t = t.replace(/_rand_/g, this.generateRandom(14)); + } else if (field[1].type === 'datagroup') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'signature') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'tinymce' || field[1].type === 'simplemde') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } + + if (field[1].validation !== undefined && field[1].validation != null && field[1].validation !== '') { + t = t.replace(/_validation_/g, "validation=\"".concat(field[1].validation, "\"")); + } else { + t = t.replace(/_validation_/g, ''); + } + + if (field[1].help !== undefined && field[1].help !== null) { + t = t.replace(/_helpline_/g, field[1].help); + t = t.replace(/_hidden_class_help_/g, ''); + } else { + t = t.replace(/_helpline_/g, ''); + t = t.replace(/_hidden_class_help_/g, 'hide'); + } + + if (field[1].placeholder !== undefined && field[1].placeholder !== null) { + t = t.replace(/_placeholder_/g, "placeholder=\"".concat(field[1].placeholder, "\"")); + } else { + t = t.replace(/_placeholder_/g, ''); + } + + if (field[1].mask !== undefined && field[1].mask !== null) { + t = t.replace(/_mask_/g, "mask=\"".concat(field[1].mask, "\"")); + } else { + t = t.replace(/_mask_/g, ''); + } + + return t; + } + }, { + key: "renderFormSelectOptions", + value: function renderFormSelectOptions(options, field) { + var html = ''; + + if (field != null && field !== undefined) { + if (field[1]['allow-null'] === true) { + if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) { + html += ""); + } else { + html += ''; + } + } + } // Sort options + + + var tuples = []; + + for (var key in options) { + tuples.push(options[key]); + } + + if (field[1].sort === true) { + tuples.sort(function (a, b) { + a = a[1]; + b = b[1]; // eslint-disable-next-line no-nested-ternary + + return a < b ? -1 : a > b ? 1 : 0; + }); + } + + for (var i = 0; i < tuples.length; i++) { + var prop = tuples[i][0]; + var value = tuples[i][1]; + var t = ''; + t = t.replace('_id_', prop); + t = t.replace('_val_', this.gt(value)); + html += t; + } + + return html; + } + }, { + key: "renderFormSelectOptionsRemote", + value: function renderFormSelectOptionsRemote(options, field) { + var html = ''; + + if (field[1]['allow-null'] === true) { + if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) { + html += ""); + } else { + html += ''; + } + } // Sort options + + + var tuples = []; + + for (var key in options) { + tuples.push([key, options[key]]); + } + + if (field[1].sort === 'true') { + tuples.sort(function (a, b) { + a = a[1]; + b = b[1]; // eslint-disable-next-line no-nested-ternary + + return a < b ? -1 : a > b ? 1 : 0; + }); + } + + for (var i = 0; i < tuples.length; i++) { + var prop = tuples[i][0]; + var value = tuples[i][1]; + var t = ''; + t = t.replace('_id_', prop); + t = t.replace('_val_', this.gt(value)); + html += t; + } + + return html; + } + }, { + key: "setCustomTemplates", + value: function setCustomTemplates(templates) { + this.customTemplates = templates; + } + }, { + key: "setEmailTemplates", + value: function setEmailTemplates(templates) { + this.emailTemplates = templates; + } + }, { + key: "getCustomTemplate", + value: function getCustomTemplate(file) { + return this.customTemplates[file]; + } + }, { + key: "setFieldTemplates", + value: function setFieldTemplates(templates) { + this.fieldTemplates = templates; + } + }, { + key: "getMetaFieldForRendering", + value: function getMetaFieldForRendering(fieldName) { + return ''; + } + }, { + key: "clearDeleteParams", + value: function clearDeleteParams() { + this.deleteParams = {}; + } + }, { + key: "getShowAddNew", + value: function getShowAddNew() { + return this.showAddNew; + } + /** + * Override this method to change add new button label + * @method getAddNewLabel + */ + + }, { + key: "getAddNewLabel", + value: function getAddNewLabel() { + return 'Add New'; + } + /** + * Used to set whether to show the add new button for a module + * @method setShowAddNew + * @param showAddNew {Boolean} value + */ + + }, { + key: "setShowAddNew", + value: function setShowAddNew(showAddNew) { + this.showAddNew = showAddNew; + } + /** + * Used to set whether to show delete button for each entry in module + * @method setShowDelete + * @param val {Boolean} value + */ + + }, { + key: "setShowDelete", + value: function setShowDelete(val) { + this.showDelete = val; + } + /** + * Used to set whether to show edit button for each entry in module + * @method setShowEdit + * @param val {Boolean} value + */ + + }, { + key: "setShowEdit", + value: function setShowEdit(val) { + this.showEdit = val; + } + /** + * Used to set whether to show save button in form + * @method setShowSave + * @param val {Boolean} value + */ + + }, { + key: "setShowSave", + value: function setShowSave(val) { + this.showSave = val; + } + /** + * Used to set whether to show cancel button in form + * @method setShowCancel + * @param val {Boolean} value + */ + + }, { + key: "setShowCancel", + value: function setShowCancel(val) { + this.showCancel = val; + } + /** + * Datatable option array will be extended with associative array provided here + * @method getCustomTableParams + * @param val {Boolean} value + */ + + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + return {}; + } + }, { + key: "getActionButtons", + value: function getActionButtons(obj) { + return modJs.getActionButtonsHtml(obj.aData[0], obj.aData); + } + /** + * This return html for action buttons in each row. Override this method if you need to make changes to action buttons. + * @method getActionButtonsHtml + * @param id {int} id of the row + * @param data {Array} data for the row + * @returns {String} html for action buttons + */ + + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var deleteButton = ''; + var cloneButton = ''; + var html = '
    _edit__delete__clone_
    '; + + if (this.showAddNew) { + html = html.replace('_clone_', cloneButton); + } else { + html = html.replace('_clone_', ''); + } + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + /** + * Generates a random string + * @method generateRandom + * @param length {int} required length of the string + * @returns {String} random string + */ + + }, { + key: "generateRandom", + value: function generateRandom(length) { + var d = new Date(); + var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var result = ''; + + for (var i = length; i > 0; --i) { + result += chars[Math.round(Math.random() * (chars.length - 1))]; + } + + return result + d.getTime(); + } + }, { + key: "checkFileType", + value: function checkFileType(elementName, fileTypes) { + var fileElement = document.getElementById(elementName); + var fileExtension = ''; + + if (fileElement.value.lastIndexOf('.') > 0) { + fileExtension = fileElement.value.substring(fileElement.value.lastIndexOf('.') + 1, fileElement.value.length); + } + + fileExtension = fileExtension.toLowerCase(); + var allowed = fileTypes.split(','); + + if (allowed.indexOf(fileExtension) < 0) { + fileElement.value = ''; + this.showMessage('File Type Error', 'Selected file type is not supported'); + this.clearFileElement(elementName); + return false; + } + + return true; + } + }, { + key: "clearFileElement", + value: function clearFileElement(elementName) { + var control = $("#".concat(elementName)); + control.replaceWith(control = control.val('').clone(true)); + } + }, { + key: "fixJSON", + value: function fixJSON(json) { + if (this.noJSONRequests === '1') { + json = window.btoa(json); + } + + return json; + } + }, { + key: "getClientDate", + value: function getClientDate(date) { + var offset = this.getClientGMTOffset(); + var tzDate = date.addMinutes(offset * 60); + return tzDate; + } + }, { + key: "getClientGMTOffset", + value: function getClientGMTOffset() { + var rightNow = new Date(); + var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0); + var temp = jan1.toGMTString(); + var jan2 = new Date(temp.substring(0, temp.lastIndexOf(' ') - 1)); + return (jan1 - jan2) / (1000 * 60 * 60); + } + /** + * Override this method in a module to provide the help link for the module. Help link of the module on frontend will get updated with this. + * @method getHelpLink + * @returns {String} help link + */ + + }, { + key: "getHelpLink", + value: function getHelpLink() { + return null; + } + }, { + key: "showLoader", + value: function showLoader() { + $('#iceloader').show(); + } + }, { + key: "hideLoader", + value: function hideLoader() { + $('#iceloader').hide(); + } + }, { + key: "generateOptions", + value: function generateOptions(data) { + var template = ''; + var options = ''; + + for (var index in data) { + options += template.replace('__val__', index).replace('__text__', data[index]); + } + + return options; + } + }, { + key: "isModuleInstalled", + value: function isModuleInstalled(type, name) { + if (modulesInstalled === undefined || modulesInstalled === null) { + return false; + } + + return modulesInstalled["".concat(type, "_").concat(name)] === 1; + } + }, { + key: "setCustomFields", + value: function setCustomFields(fields) { + var field; + var parsed; + + for (var i = 0; i < fields.length; i++) { + field = fields[i]; + + if (field.display !== 'Hidden' && field.data !== '' && field.data !== undefined) { + try { + parsed = JSON.parse(field.data); + + if (parsed === undefined || parsed == null) { + continue; + } else if (parsed.length !== 2) { + continue; + } else if (parsed[1].type === undefined || parsed[1].type == null) { + continue; + } + + this.customFields.push(parsed); + } catch (e) {// Do nothing + } + } + } + } + }, { + key: "addCustomFields", + value: function addCustomFields(fields) { + for (var i = 0; i < this.customFields.length; i++) { + fields.push(this.customFields[i]); + } + + return fields; + } + }, { + key: "getImageUrlFromName", + value: function getImageUrlFromName(firstName, lastName) { + var seed = firstName.substring(0, 1); + + if (!lastName && lastName.length > 0) { + seed += firstName.substring(firstName.length - 1, 1); + } else { + seed += lastName.substring(0, 1); + } + + var arr = "".concat(firstName).concat(lastName).split(''); + seed += arr.reduce(function (acc, item) { + return parseInt(item.charCodeAt(0), 10) + acc; + }, 0); + return "https://avatars.dicebear.com/api/initials/:".concat(seed, ".svg"); + } + }]); + + return ModuleBase; +}(); + +var _default = ModuleBase; +exports["default"] = _default; + +},{"./FormValidation":56}],63:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _ReactModalAdapterBase = _interopRequireDefault(require("./ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/* + * CustomFieldAdapter + */ +var ReactCustomFieldAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(ReactCustomFieldAdapter, _AdapterBase); + + var _super = _createSuper(ReactCustomFieldAdapter); + + function ReactCustomFieldAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ReactCustomFieldAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.tableType = ''; + return _this; + } + + _createClass(ReactCustomFieldAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'field_type', 'field_label', 'display', 'display_order']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Field Type' + }, { + sTitle: 'Field Label' + }, { + sTitle: 'Display Status' + }, { + sTitle: 'Priority' + }]; + } + }, { + key: "getTableColumns", + value: function getTableColumns() { + return [{ + title: 'Name', + dataIndex: 'name', + sorter: true + }, { + title: 'Field Label', + dataIndex: 'field_label' + }, { + title: 'Field Type', + dataIndex: 'field_type' + }, { + title: 'Display Status', + dataIndex: 'display', + sorter: true + }, { + title: 'Priority', + dataIndex: 'display_order', + sorter: true + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['field_label', { + label: 'Field Label', + type: 'text', + validation: '' + }], ['field_type', { + label: 'Field Type', + type: 'select', + source: [['text', 'Text Field'], ['textarea', 'Text Area'], ['select', 'Select'], ['select2', 'Select2'], ['select2multi', 'Multi Select'], ['fileupload', 'File Upload'], ['date', 'Date'], ['datetime', 'Date Time'], ['time', 'Time'], ['signature', 'Signature']] + }], ['field_validation', { + label: 'Validation', + type: 'select2', + validation: 'none', + sort: 'none', + 'null-label': 'Required', + 'allow-null': true, + source: [['none', 'None'], ['number', 'Number'], ['numberOrEmpty', 'Number or Empty'], ['float', 'Decimal'], ['email', 'Email'], ['emailOrEmpty', 'Email or Empty']] + }], ['field_options', { + label: 'Field Options', + type: 'datagroup', + form: [['label', { + label: 'Label', + type: 'text', + validation: '' + }], ['value', { + label: 'Value', + type: 'text', + validation: 'none' + }]], + html: '
    #_delete_##_edit_##_label_#:#_value_#
    ', + columns: [{ + title: 'Label', + dataIndex: 'label', + key: 'label' + }, { + title: 'Option Value', + dataIndex: 'value', + key: 'value' + }], + validation: 'none' + }], ['display_order', { + label: 'Priority', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "getNameFromFieldName", + value: function getNameFromFieldName(fieldName) { + return fieldName.replace(/[^a-z0-9+]+/gi, '').toLowerCase(); + } + }, { + key: "setTableType", + value: function setTableType(type) { + this.tableType = type; + } + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + var validateName = function validateName(str) { + var name = /^[a-z][a-z0-9._]+$/; + return str != null && name.test(str); + }; + + if (this.currentElement == null || this.currentElement.name == null || this.currentElement.name === '') { + params.name = this.getNameFromFieldName(params.field_label); + + if (!validateName(params.name)) { + return 'Invalid field label for custom field'; + } + } else { + params.name = this.currentElement.name; + } + + if (!validateName(params.name)) { + return 'Invalid name for custom field'; + } + + return null; + } + }, { + key: "forceInjectValuesBeforeSave", + value: function forceInjectValuesBeforeSave(params) { + var data = ['', {}]; + var options = []; + var optionsData; + data[1].label = params.field_label; + data[1].type = params.field_type; + data[1].validation = params.field_validation; + + if (['select', 'select2', 'select2multi'].indexOf(params.field_type) >= 0) { + optionsData = params.field_options === '' || params.field_options === undefined ? [] : JSON.parse(params.field_options); + + for (var index in optionsData) { + options.push([optionsData[index].value, optionsData[index].label]); + } + + data[1].source = options; + } + + if (params.field_validation == null || params.field_validation === undefined) { + params.field_validation = ''; + } + + params.type = this.tableType; + + if (this.currentElement == null || this.currentElement.name == null || this.currentElement.name === '') { + params.name = this.getNameFromFieldName(params.field_label); + } else { + params.name = this.currentElement.name; + } + + data[0] = params.name; + params.data = JSON.stringify(data); + params.display = 'Form'; + params.display_order = parseInt(params.display_order); + + if (!Number.isInteger(params.display_order)) { + params.display_order = 1; + } + + return params; + } + }]); + + return ReactCustomFieldAdapter; +}(_ReactModalAdapterBase["default"]); + +var _default = ReactCustomFieldAdapter; +exports["default"] = _default; + +},{"./ReactModalAdapterBase":65,"antd":"antd","react":"react"}],64:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _ReactModalAdapterBase = _interopRequireDefault(require("./ReactModalAdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ReactLegacyModalAdapterBase = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(ReactLegacyModalAdapterBase, _ReactModalAdapterBas); + + var _super = _createSuper(ReactLegacyModalAdapterBase); + + function ReactLegacyModalAdapterBase() { + _classCallCheck(this, ReactLegacyModalAdapterBase); + + return _super.apply(this, arguments); + } + + _createClass(ReactLegacyModalAdapterBase, [{ + key: "get", + // Due to having same method in ReactModalAdapterBase + value: function get(callBackData) { + var that = this; + + if (this.getRemoteTable()) { + this.createTableServer(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + return; + } + + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + var filterJson = ''; + + if (this.getFilter() !== null) { + filterJson = JSON.stringify(this.getFilter()); + } + + var orderBy = ''; + + if (this.getOrderBy() !== null) { + orderBy = this.getOrderBy(); + } + + sourceMappingJson = this.fixJSON(sourceMappingJson); + filterJson = this.fixJSON(filterJson); + that.showLoader(); + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'get', + sm: sourceMappingJson, + ft: filterJson, + ob: orderBy + }, function (data) { + if (data.status === 'SUCCESS') { + that.getSuccessCallBack(callBackData, data.object); + } else { + that.getFailCallBack(callBackData, data.object); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + that.initFieldMasterData(); + this.trackEvent('get', this.tab, this.table); // var url = this.getDataUrl(); + // console.log(url); + } + }, { + key: "showFilters", + value: function showFilters(object) { + var formHtml = this.templates.filterTemplate; + var html = ''; + var fields = this.getFilters(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_filter")); + formHtml = formHtml.replace(/_fields_/g, html); + var randomFormId = this.generateRandom(14); + var $tempDomObj = $('
    '); + $tempDomObj.attr('id', randomFormId); + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); + tinymce.init({ + selector: "#".concat($tempDomObj.attr('id'), " .tinymce"), + height: '400' + }); + $tempDomObj.find('.simplemde').each(function () { + var simplemde = new SimpleMDE({ + element: $(this)[0] + }); + $(this).data('simplemde', simplemde); // simplemde.value($(this).val()); + }); // $tempDomObj.find('.select2Field').select2(); + + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + /* + $tempDomObj.find('.signatureField').each(function() { + $(this).data('signaturePad',new SignaturePad($(this))); + }); + */ + // var tHtml = $tempDomObj.wrap('
    ').parent().html(); + + this.showDomElement('Edit', $tempDomObj, null, null, true); + $('.filterBtn').off(); + $('.filterBtn').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + + try { + modJs.filterQuery(); + } catch (err) {// Do Nothing + } + + return false; + }); + + if (this.filter !== undefined && this.filter != null && this.filter !== '') { + this.fillForm(this.filter, "#".concat(this.getTableName(), "_filter"), this.getFilters()); + } + } + }, { + key: "resetFilters", + value: function resetFilters() { + this.filter = this.origFilter; + this.filtersAlreadySet = false; + $("#".concat(this.getTableName(), "_resetFilters")).hide(); + this.currentFilterString = ''; + this.get([]); + } + }]); + + return ReactLegacyModalAdapterBase; +}(_ReactModalAdapterBase["default"]); + +var _default = ReactLegacyModalAdapterBase; +exports["default"] = _default; + +},{"./ReactModalAdapterBase":65}],65:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _reactDom = _interopRequireDefault(require("react-dom")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +var _IceFormModal = _interopRequireDefault(require("../components/IceFormModal")); + +var _IceStepFromModal = _interopRequireDefault(require("../components/IceStepFromModal")); + +var _IceTable = _interopRequireDefault(require("../components/IceTable")); + +var _MasterDataReader = _interopRequireDefault(require("./MasterDataReader")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ReactModalAdapterBase = /*#__PURE__*/function (_AdapterBase) { + _inherits(ReactModalAdapterBase, _AdapterBase); + + var _super = _createSuper(ReactModalAdapterBase); + + _createClass(ReactModalAdapterBase, null, [{ + key: "MODAL_TYPE_NORMAL", + get: function get() { + return 'Normal'; + } + }, { + key: "MODAL_TYPE_STEPS", + get: function get() { + return 'Steps'; + } + }]); + + function ReactModalAdapterBase(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ReactModalAdapterBase); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.modalType = _this.MODAL_TYPE_NORMAL; + _this.dataPipe = null; + _this.formInitialized = false; + _this.tableInitialized = false; + _this.access = []; + _this.localStorageEnabled = false; + _this.isV2 = true; + _this.masterDataReader = new _MasterDataReader["default"](_assertThisInitialized(_this)); + return _this; + } + + _createClass(ReactModalAdapterBase, [{ + key: "enableLocalStorage", + value: function enableLocalStorage() { + this.localStorageEnabled = true; + } + }, { + key: "setModalType", + value: function setModalType(type) { + this.modalType = type; + } + }, { + key: "setDataPipe", + value: function setDataPipe(dataPipe) { + this.dataPipe = dataPipe; + } + }, { + key: "setAccess", + value: function setAccess(access) { + this.access = access; + } + }, { + key: "hasAccess", + value: function hasAccess(type) { + return this.access.indexOf(type) > 0; + } + }, { + key: "hasCustomButtons", + value: function hasCustomButtons() { + return false; + } + }, { + key: "initTable", + value: function initTable() { + var _this2 = this; + + if (this.tableInitialized) { + return false; + } + + var tableDom = document.getElementById("".concat(this.tab, "Table")); + + if (tableDom) { + this.tableContainer = _react["default"].createRef(); + var columns = this.getTableColumns(); + + if (this.hasAccess('save') || this.hasAccess('delete') || this.hasAccess('element') || this.hasCustomButtons()) { + columns.push({ + title: 'Actions', + key: 'actions', + render: this.getTableActionButtonJsx(this) + }); + } + + columns = columns.map(function (item) { + item.title = _this2.gt(item.title); + return item; + }); + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceTable["default"], { + ref: this.tableContainer, + reader: this.dataPipe, + columns: columns, + adapter: this + }, this.getTableChildComponents()), tableDom); + } + + this.tableInitialized = true; + return true; + } + }, { + key: "initForm", + value: function initForm() { + var _this3 = this; + + if (this.formInitialized) { + return false; + } + + this.formContainer = _react["default"].createRef(); + + if (this.modalType === this.MODAL_TYPE_NORMAL) { + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceFormModal["default"], { + ref: this.formContainer, + fields: this.getFormFields(), + adapter: this, + formReference: this.formReference + }), document.getElementById("".concat(this.tab, "Form"))); + } else { + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceStepFromModal["default"], { + ref: this.formContainer, + fields: this.getMappedFields(), + adapter: this, + formReference: this.formReference + }), document.getElementById("".concat(this.tab, "Form"))); + } + + var filterDom = document.getElementById("".concat(this.tab, "FilterForm")); + + if (filterDom && this.getFilters()) { + this.filtersContainer = _react["default"].createRef(); + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceFormModal["default"], { + ref: this.filtersContainer, + fields: this.getFilters(), + adapter: this, + saveCallback: function saveCallback(values, showError, closeModal) { + _this3.setFilter(values); + + _this3.filtersAlreadySet = true; + + _this3.get([]); + + _this3.tableContainer.current.setFilterData(values); + + closeModal(); + } + }), filterDom); + } + + this.formInitialized = true; + return true; + } + }, { + key: "getTableChildComponents", + value: function getTableChildComponents() { + return false; + } + }, { + key: "reloadCurrentElement", + value: function reloadCurrentElement() { + this.viewElement(this.currentId); + } + }, { + key: "getTableActionButtonJsx", + value: function getTableActionButtonJsx(adapter) { + return function (text, record) { + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: "middle" + }, adapter.hasAccess('save') && adapter.showEdit && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "green", + onClick: function onClick() { + return modJs.edit(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), " ".concat(adapter.gt('Edit'))), adapter.hasAccess('element') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + onClick: function onClick() { + return modJs.viewElement(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MonitorOutlined, null), " ".concat(adapter.gt('View'))), adapter.hasAccess('delete') && adapter.showDelete && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "volcano", + onClick: function onClick() { + return modJs.deleteRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " ".concat(adapter.gt('Delete'))), adapter.hasAccess('save') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "cyan", + onClick: function onClick() { + return modJs.copyRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.CopyOutlined, null), " ".concat(adapter.gt('Copy')))); + }; + } + }, { + key: "setTableLoading", + value: function setTableLoading(value) { + this.tableContainer.current.setLoading(value); + } + /** + * Show the view form for an item + * @method viewElement + * @param id {int} id of the item to view + */ + + }, { + key: "viewElement", + value: function viewElement(id) { + var _this4 = this; + + this.setTableLoading(true); + this.currentId = id; + this.getElement(id, { + noRender: true, + callBack: function callBack(element) { + _this4.showElement(element); + + _this4.setTableLoading(false); + } + }); + } + }, { + key: "showElement", + value: function showElement(element) { + this.renderForm(element, true); + } + /** + * Show the edit form for an item + * @method edit + * @param id {int} id of the item to edit + */ + + }, { + key: "edit", + value: function edit(id) { + this.setTableLoading(true); + this.currentId = id; + this.getElement(id, []); + } + }, { + key: "renderForm", + value: function renderForm() { + var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var viewOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (object == null) { + this.currentId = null; + this.currentElement = null; + } + + this.setTableLoading(false); + this.initForm(); + this.formContainer.current.setViewOnly(viewOnly); + this.formContainer.current.show(object); + } + }, { + key: "showFilters", + value: function showFilters() { + this.initForm(); + this.filtersContainer.current.show(this.filter); + } + }, { + key: "resetFilters", + value: function resetFilters() { + this.filter = this.origFilter; + this.filtersAlreadySet = false; + this.currentFilterString = ''; + this.get([]); + this.tableContainer.current.setFilterData(this.filter); + } + }, { + key: "get", + value: function get() { + var _this5 = this; + + if (this.tableContainer && this.tableContainer.current) { + this.tableContainer.current.setCurrentElement(null); + } + + this.initTable(); + this.masterDataReader.updateAllMasterData().then(function () { + _this5.tableContainer.current.reload(); + }); + this.trackEvent('get', this.tab, this.table); + } + }, { + key: "showLoader", + value: function showLoader() {// $('#iceloader').show(); + } + }, { + key: "addActualFieldsForStepModal", + value: function addActualFieldsForStepModal(steps, fields) { + return steps.map(function (item) { + item.fields = item.fields.reduce(function (acc, fieldName) { + var field = fields.find(function (_ref) { + var _ref2 = _slicedToArray(_ref, 1), + name = _ref2[0]; + + return name === fieldName; + }); + + if (field) { + acc.push(field); + } + + return acc; + }, []); + return item; + }); + } + }, { + key: "getFormOptions", + value: function getFormOptions() { + return { + width: 1024, + twoColumnLayout: false + }; + } + }]); + + return ReactModalAdapterBase; +}(_AdapterBase2["default"]); + +var _default = ReactModalAdapterBase; +exports["default"] = _default; + +},{"../components/IceFormModal":71,"../components/IceStepFromModal":76,"../components/IceTable":77,"./AdapterBase":52,"./MasterDataReader":61,"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react","react-dom":"react-dom"}],66:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * @class SubAdapterBase + * @param endPoint + * @param tab + * @param filter + * @param orderBy + * @returns + */ +var SubAdapterBase = /*#__PURE__*/function (_AdapterBase) { + _inherits(SubAdapterBase, _AdapterBase); + + var _super = _createSuper(SubAdapterBase); + + function SubAdapterBase() { + _classCallCheck(this, SubAdapterBase); + + return _super.apply(this, arguments); + } + + _createClass(SubAdapterBase, [{ + key: "deleteRow", + value: function deleteRow(id) { + this.deleteParams.id = id; + this.confirmDelete(); + } + }, { + key: "createTable", + value: function createTable(elementId) { + var item; + var itemHtml; + var itemDelete; + var itemEdit; + var data = this.getTableData(); + var deleteButton = ""); + var editButton = ""); + var table = $('
    '); // add Header + + var header = this.getSubHeader(); + table.append(header); + + if (data.length === 0) { + table.append("".concat(this.getNoDataMessage(), "")); + } else { + for (var i = 0; i < data.length; i++) { + item = data[i]; + itemDelete = deleteButton.replace(/_id_/g, item[0]); + itemEdit = editButton.replace(/_id_/g, item[0]); + itemHtml = this.getSubItemHtml(item, itemDelete, itemEdit); + table.append(itemHtml); + } + } + + $("#".concat(elementId)).html(''); + $("#".concat(elementId)).append(table); + $('#plainMessageModel').modal('hide'); + } + }, { + key: "getNoDataMessage", + value: function getNoDataMessage() { + return 'No data found'; + } + }, { + key: "getSubHeader", + value: function getSubHeader() { + var header = $("

    ".concat(this.getSubHeaderTitle(), "

    ")); + return header; + } + }]); + + return SubAdapterBase; +}(_AdapterBase2["default"]); + +var _default = SubAdapterBase; +exports["default"] = _default; + +},{"./AdapterBase":52}],67:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * TableEditAdapter + */ +var TableEditAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(TableEditAdapter, _AdapterBase); + + var _super = _createSuper(TableEditAdapter); + + function TableEditAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, TableEditAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.cellDataUpdates = {}; + _this.modulePath = ''; + _this.rowFieldName = ''; + _this.columnFieldName = ''; + _this.rowTable = ''; + _this.columnTable = ''; + _this.valueTable = ''; + _this.csvData = []; + _this.columnIDMap = {}; + return _this; + } + + _createClass(TableEditAdapter, [{ + key: "setModulePath", + value: function setModulePath(path) { + this.modulePath = path; + } + }, { + key: "setRowFieldName", + value: function setRowFieldName(name) { + this.rowFieldName = name; + } + }, { + key: "setTables", + value: function setTables(rowTable, columnTable, valueTable) { + this.rowTable = rowTable; + this.columnTable = columnTable; + this.valueTable = valueTable; + } + }, { + key: "setColumnFieldName", + value: function setColumnFieldName(name) { + this.columnFieldName = name; + } + }, { + key: "getDataMapping", + value: function getDataMapping() { + return []; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "get", + value: function get() { + this.getAllData(); + } + }, { + key: "getAllData", + value: function getAllData(save) { + var req = {}; + req.rowTable = this.rowTable; + req.columnTable = this.columnTable; + req.valueTable = this.valueTable; + req = this.addAdditionalRequestData('getAllData', req); + req.save = save === undefined || save == null || save === false ? 0 : 1; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getAllDataSuccessCallBack'; + callBackData.callBackFail = 'getAllDataFailCallBack'; + this.customAction('getAllData', this.modulePath, reqJson, callBackData); + } + }, { + key: "getDataItem", + value: function getDataItem(row, column, allData) { + var columnData = allData[1]; + var rowData = allData[0]; + var serverData = allData[2]; + + if (column === -1) { + return rowData[row].name; + } + + return this.getDataItemByKeyValues(this.rowFieldName, rowData[row].id, this.columnFieldName, columnData[column].id, serverData); + } + }, { + key: "getDataItemByKeyValues", + value: function getDataItemByKeyValues(rowKeyName, rowKeyVal, colKeyName, colKeyVal, data) { + for (var i = 0; i < data.length; i++) { + if (data[i][rowKeyName] === rowKeyVal && data[i][colKeyName] === colKeyVal) { + return data[i].amount !== undefined && data[i].amount != null ? data[i].amount : ''; + } + } + + return ''; + } + }, { + key: "getAllDataSuccessCallBack", + value: function getAllDataSuccessCallBack(allData) { + var serverData = allData[2]; + var columnData = allData[1]; + var rowData = allData[0]; + var data = []; + + for (var i = 0; i < rowData.length; i++) { + var row = []; + + for (var j = -1; j < columnData.length; j++) { + row[j + 1] = this.getDataItem(i, j, allData); + } + + data.push(this.preProcessTableData(row)); + } + + this.sourceData = serverData; + this.tableData = data; + this.setHeaders(columnData, rowData); + this.createTable(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + this.csvData = []; + var tmpRow = []; + + for (var _i = 0; _i < columnData.length; _i++) { + tmpRow.push(columnData[_i].name); + } + + tmpRow = this.modifyCSVHeader(tmpRow); + this.csvData.push(tmpRow); + + for (var _i2 = 0; _i2 < data.length; _i2++) { + this.csvData.push(data[_i2]); + } + } + }, { + key: "modifyCSVHeader", + value: function modifyCSVHeader(header) { + return header; + } + }, { + key: "getAllDataFailCallBack", + value: function getAllDataFailCallBack(callBackData, serverData) {} + }, { + key: "setHeaders", + value: function setHeaders(columns, rows) { + var headers = []; + headers.push({ + sTitle: '', + sWidth: '180px;' + }); + var sclass = ''; + this.columnIDMap = {}; + + for (var i = 0; i < columns.length; i++) { + this.columnIDMap[columns[i].id] = i; + + if (columns[i].editable === undefined || columns[i].editable == null || columns[i].editable === 'Yes') { + sclass = 'editcell'; + } else { + sclass = ''; + } + + headers.push({ + sTitle: columns[i].name, + sClass: sclass, + fnCreatedCell: function fnCreatedCell(nTd, sData, oData, iRow, iCol) { + $(nTd).data('colId', columns[iCol - 1].id); + $(nTd).data('rowId', rows[iRow].id); + } + }); + } + + this.headers = headers; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return this.headers; + } + }, { + key: "createTable", + value: function createTable(elementId) { + var data = this.getTableData(); + var headers = this.getHeaders(); + + if (this.showActionButtons()) { + headers.push({ + sTitle: '', + sClass: 'center' + }); + } + + if (this.showActionButtons()) { + for (var i = 0; i < data.length; i++) { + data[i].push(this.getActionButtonsHtml(data[i][0], data[i])); + } + } + + var html = ''; + html = "".concat(this.getTableTopButtonHtml(), "
    "); // Find current page + + var activePage = $("#".concat(elementId, " .dataTables_paginate .active a")).html(); + var start = 0; + + if (activePage !== undefined && activePage != null) { + start = parseInt(activePage, 10) * 15 - 15; + } + + $("#".concat(elementId)).html(html); + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + aaData: data, + aoColumns: headers, + bSort: false, + iDisplayLength: 15, + iDisplayStart: start + }; + var customTableParams = this.getCustomTableParams(); + $.extend(dataTableParams, customTableParams); + $("#".concat(elementId, " #grid")).dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); // $('.tableActionButton').tooltip(); + + $("#".concat(elementId, " #grid")).editableTableWidget(); + $("#".concat(elementId, " #grid .editcell")).on('validate', function (evt, newValue) { + return modJs.validateCellValue($(this), evt, newValue); + }); + this.afterCreateTable(elementId); + } + }, { + key: "afterCreateTable", + value: function afterCreateTable(elementId) {} + }, { + key: "addCellDataUpdate", + value: function addCellDataUpdate(colId, rowId, data) { + this.cellDataUpdates["".concat(colId, "=").concat(rowId)] = [colId, rowId, data]; + } + }, { + key: "addAdditionalRequestData", + value: function addAdditionalRequestData(type, req) { + return req; + } + }, { + key: "sendCellDataUpdates", + value: function sendCellDataUpdates() { + var req = this.cellDataUpdates; + req.rowTable = this.rowTable; + req.columnTable = this.columnTable; + req.valueTable = this.valueTable; + req = this.addAdditionalRequestData('updateData', req); + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'updateDataSuccessCallBack'; + callBackData.callBackFail = 'updateDataFailCallBack'; + this.showLoader(); + this.customAction('updateData', this.modulePath, reqJson, callBackData); + } + }, { + key: "updateDataSuccessCallBack", + value: function updateDataSuccessCallBack(callBackData, serverData) { + this.hideLoader(); + modJs.cellDataUpdates = {}; + modJs.get(); + } + }, { + key: "updateDataFailCallBack", + value: function updateDataFailCallBack(callBackData, serverData) { + this.hideLoader(); + } + }, { + key: "sendAllCellDataUpdates", + value: function sendAllCellDataUpdates() { + var req = this.cellDataUpdates; + req.rowTable = this.rowTable; + req.columnTable = this.columnTable; + req.valueTable = this.valueTable; + req = this.addAdditionalRequestData('updateAllData', req); + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'updateDataAllSuccessCallBack'; + callBackData.callBackFail = 'updateDataAllFailCallBack'; + this.showLoader(); + this.customAction('updateAllData', this.modulePath, reqJson, callBackData); + } + }, { + key: "updateDataAllSuccessCallBack", + value: function updateDataAllSuccessCallBack(callBackData, serverData) { + this.hideLoader(); + modJs.cellDataUpdates = {}; + modJs.getAllData(true); + } + }, { + key: "updateDataAllFailCallBack", + value: function updateDataAllFailCallBack(callBackData, serverData) { + this.hideLoader(); + } + }, { + key: "showActionButtons", + value: function showActionButtons() { + return false; + } + }]); + + return TableEditAdapter; +}(_AdapterBase2["default"]); + +var _default = TableEditAdapter; +exports["default"] = _default; + +},{"./AdapterBase":52}],68:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireWildcard(require("react")); + +var _reactColor = require("react-color"); + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function useComponentVisible(initialIsVisible) { + var _useState = (0, _react.useState)(initialIsVisible), + _useState2 = _slicedToArray(_useState, 2), + isComponentVisible = _useState2[0], + setIsComponentVisible = _useState2[1]; + + var ref = (0, _react.useRef)(null); + + var handleClickOutside = function handleClickOutside(event) { + if (ref.current && !ref.current.contains(event.target)) { + setIsComponentVisible(false); + } + }; + + (0, _react.useEffect)(function () { + document.addEventListener('click', handleClickOutside, true); + return function () { + document.removeEventListener('click', handleClickOutside, true); + }; + }); + return { + ref: ref, + isComponentVisible: isComponentVisible, + setIsComponentVisible: setIsComponentVisible + }; +} + +function IceColorPick(props) { + var value = props.value, + onChange = props.onChange, + readOnly = props.readOnly; + + var _useComponentVisible = useComponentVisible(true), + ref = _useComponentVisible.ref, + isComponentVisible = _useComponentVisible.isComponentVisible, + setIsComponentVisible = _useComponentVisible.setIsComponentVisible; + + var _useState3 = (0, _react.useState)(value || '#FFF'), + _useState4 = _slicedToArray(_useState3, 2), + color = _useState4[0], + setColor = _useState4[1]; + + var _useState5 = (0, _react.useState)(false), + _useState6 = _slicedToArray(_useState5, 2), + showPicker = _useState6[0], + setShowPicker = _useState6[1]; + + (0, _react.useEffect)(function () { + if (!isComponentVisible) { + setShowPicker(false); + } + }, [isComponentVisible]); + (0, _react.useEffect)(function () { + if (value) { + setColor(value); + } + }, [value]); + return /*#__PURE__*/_react["default"].createElement("div", { + className: "colorpicker-container" + }, /*#__PURE__*/_react["default"].createElement("div", { + className: "colorpicker-preview", + onClick: function onClick() { + if (!showPicker) { + setIsComponentVisible(true); + } + + setShowPicker(!showPicker); + }, + style: { + backgroundColor: color + } + }), /*#__PURE__*/_react["default"].createElement("div", { + ref: ref, + className: "colorpicker-component ".concat(readOnly || !showPicker ? 'hidden' : '') + }, /*#__PURE__*/_react["default"].createElement(_reactColor.SketchPicker, { + color: color, + disableAlpha: true, + presetColors: [], + onChangeComplete: function onChangeComplete(_ref) { + var hex = _ref.hex; + onChange(hex); + setColor(hex); + } + }))); +} + +var _default = IceColorPick; +exports["default"] = _default; + +},{"react":"react","react-color":354}],69:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceFormModal = _interopRequireDefault(require("./IceFormModal")); + +var _reactDom = _interopRequireDefault(require("react-dom")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Option = _antd.Select.Option; + +var IceDataGroup = /*#__PURE__*/function (_React$Component) { + _inherits(IceDataGroup, _React$Component); + + var _super = _createSuper(IceDataGroup); + + function IceDataGroup(props) { + var _this; + + _classCallCheck(this, IceDataGroup); + + _this = _super.call(this, props); + _this.state = {}; + _this.onChange = props.onChange; + _this.formReference = _react["default"].createRef(); + return _this; + } + + _createClass(IceDataGroup, [{ + key: "render", + value: function render() { + var _this2 = this; + + var _this$props = this.props, + field = _this$props.field, + adapter = _this$props.adapter; + var value = this.props.value; + value = this.parseValue(value); + value = value.map(function (item) { + return _objectSpread({}, item, { + key: item.id + }); + }); + var columns = JSON.parse(JSON.stringify(field[1].columns)); + + if (!this.props.readOnly) { + columns.push({ + title: 'Action', + key: 'action', + render: function render(text, record) { + return _this2.getDefaultButtons(record.id); + } + }); + } + + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !this.props.readOnly && /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: "horizontal" + }, /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + onClick: function onClick() { + _this2.createForm(field, adapter, {}); + } + }, "Add"), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + danger: true, + onClick: function onClick() { + _this2.resetDataGroup(); + } + }, "Reset")), /*#__PURE__*/_react["default"].createElement(_antd.Table, { + columns: columns, + dataSource: value + })); + } + }, { + key: "createForm", + value: function createForm(field, adapter, object) { + this.formContainer = _react["default"].createRef(); + var formFields = field[1].form; + formFields.unshift(['id', { + label: 'ID', + type: 'hidden' + }]); + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceFormModal["default"], { + ref: this.formContainer, + fields: formFields, + title: this.props.title, + adapter: adapter, + formReference: this.formReference, + saveCallback: this.save.bind(this), + cancelCallback: this.unmountForm.bind(this) + }), document.getElementById('dataGroup')); + + this.formContainer.current.show(object); + } + }, { + key: "unmountForm", + value: function unmountForm() { + _reactDom["default"].unmountComponentAtNode(document.getElementById('dataGroup')); + } + }, { + key: "show", + value: function show(data) { + var _this3 = this; + + if (!data) { + this.setState({ + visible: true + }); + this.updateFields(data); + } else { + this.setState({ + visible: true + }); + + if (this.formReference.current) { + this.updateFields(data); + } else { + this.waitForIt(function () { + return _this3.formReference.current != null; + }, function () { + _this3.updateFields(data); + }, 100); + } + } + } + }, { + key: "parseValue", + value: function parseValue(value) { + try { + value = JSON.parse(value); + } catch (e) { + value = []; + } + + if (value == null) { + value = []; + } + + return value; + } + }, { + key: "save", + value: function save(params, errorCallback, closeCallback) { + var _this$props2 = this.props, + field = _this$props2.field, + value = _this$props2.value; + + if (field[1]['custom-validate-function'] != null) { + var tempParams = field[1]['custom-validate-function'].apply(this, [params]); + + if (tempParams.valid) { + params = tempParams.params; + } else { + errorCallback(tempParams.message); + return false; + } + } + + var data = this.parseValue(value); + var newData = []; + + if (!params.id) { + params.id = "".concat(field[0], "_").concat(this.dataGroupGetNextAutoIncrementId(data)); + data.push(params); + newData = data; + } else { + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id !== params.id) { + newData.push(item); + } else { + newData.push(params); + } + } + } + + if (field[1]['sort-function'] != null) { + newData.sort(field[1]['sort-function']); + } + + var val = JSON.stringify(newData); + this.onChange(val); + this.unmountForm(); + } + }, { + key: "createCard", + value: function createCard(item) { + var field = this.props.field; + + if (field[1]['pre-format-function'] != null) { + item = field[1]['pre-format-function'].apply(this, [item]); + } + + var template = field[1].html; + var t = template.replace('#_delete_#', ''); + t = t.replace('#_edit_#', ''); + t = t.replace(/#_id_#/g, item.id); + + for (var key in item) { + var itemVal = item[key]; + + if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') { + itemVal = itemVal.replace(/(?:\r\n|\r|\n)/g, '
    '); + } + + t = t.replace("#_".concat(key, "_#"), itemVal); + } + + if (field[1].render !== undefined && field[1].render != null) { + t = t.replace('#_renderFunction_#', field[1].render(item)); + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Card, { + key: item.id, + title: "", + extra: this.getDefaultButtons(item.id) + }, /*#__PURE__*/_react["default"].createElement("div", { + dangerouslySetInnerHTML: { + __html: t + } + })); + } + }, { + key: "getDefaultButtons", + value: function getDefaultButtons(id) { + var _this4 = this; + + return /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement("a", { + href: "#", + onClick: function onClick() { + _this4.editDataGroupItem(id); + } + }, /*#__PURE__*/_react["default"].createElement("li", { + className: "fa fa-edit" + })), /*#__PURE__*/_react["default"].createElement("a", { + href: "#", + onClick: function onClick() { + _this4.deleteDataGroupItem(id); + } + }, /*#__PURE__*/_react["default"].createElement("li", { + className: "fa fa-times" + }))); + } + }, { + key: "deleteDataGroupItem", + value: function deleteDataGroupItem(id) { + var value = this.props.value; + var data = this.parseValue(value); + var newVal = []; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id !== id) { + newVal.push(item); + } + } + + var val = JSON.stringify(newVal); + this.onChange(val); + } + }, { + key: "editDataGroupItem", + value: function editDataGroupItem(id) { + var _this$props3 = this.props, + field = _this$props3.field, + adapter = _this$props3.adapter, + value = _this$props3.value; + var data = this.parseValue(value); + var editVal = {}; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === id) { + editVal = item; + } + } + + this.createForm(field, adapter, editVal); + } + }, { + key: "resetDataGroup", + value: function resetDataGroup() { + this.onChange('[]'); + } + }, { + key: "dataGroupGetNextAutoIncrementId", + value: function dataGroupGetNextAutoIncrementId(data) { + var autoId = 1; + var id; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === undefined || item.id == null) { + item.id = 1; + } + + id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length); + + if (id >= autoId) { + autoId = parseInt(id, 10) + 1; + } + } + + return autoId; + } + }]); + + return IceDataGroup; +}(_react["default"].Component); + +var _default = IceDataGroup; +exports["default"] = _default; + +},{"./IceFormModal":71,"antd":"antd","react":"react","react-dom":"react-dom"}],70:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _moment = _interopRequireDefault(require("moment")); + +var _IceUpload = _interopRequireDefault(require("./IceUpload")); + +var _IceDataGroup = _interopRequireDefault(require("./IceDataGroup")); + +var _IceSelect = _interopRequireDefault(require("./IceSelect")); + +var _IceLabel = _interopRequireDefault(require("./IceLabel")); + +var _IceColorPick = _interopRequireDefault(require("./IceColorPick")); + +var _IceSignature = _interopRequireDefault(require("./IceSignature")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ValidationRules = { + "float": function float(str) { + var floatstr = /^[-+]?[0-9]+(\.[0-9]+)?$/; + + if (str != null && str.match(floatstr)) { + return true; + } + + return false; + }, + number: function number(str) { + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + numberOrEmpty: function numberOrEmpty(str) { + if (str === '') { + return true; + } + + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + email: function email(str) { + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + emailOrEmpty: function emailOrEmpty(str) { + if (str === '') { + return true; + } + + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + username: function username(str) { + var username = /^[a-zA-Z0-9.-]+$/; + return str != null && username.test(str); + } +}; + +var IceForm = /*#__PURE__*/function (_React$Component) { + _inherits(IceForm, _React$Component); + + var _super = _createSuper(IceForm); + + function IceForm(props) { + var _this; + + _classCallCheck(this, IceForm); + + _this = _super.call(this, props); + _this.validationRules = {}; + _this.state = { + validations: {}, + errorMsg: false + }; + _this.formReference = _react["default"].createRef(); + return _this; + } + + _createClass(IceForm, [{ + key: "showError", + value: function showError(errorMsg) { + this.setState({ + errorMsg: errorMsg + }); + } + }, { + key: "hideError", + value: function hideError() { + this.setState({ + errorMsg: false + }); + } + }, { + key: "isReady", + value: function isReady() { + return this.formReference.current != null; + } + }, { + key: "validateFields", + value: function validateFields() { + return this.formReference.current.validateFields(); + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + fields = _this$props.fields, + twoColumnLayout = _this$props.twoColumnLayout, + adapter = _this$props.adapter; + var formInputs = []; + var formInputs1 = []; + var formInputs2 = []; + var columns = !twoColumnLayout ? 1 : 2; + + for (var i = 0; i < fields.length; i++) { + formInputs.push(adapter.beforeRenderFieldHook(fields[i][0], this.createFromField(fields[i], this.props.viewOnly), fields[i][1])); + } + + formInputs = formInputs.filter(function (input) { + return !!input; + }); + + for (var _i = 0; _i < formInputs.length; _i++) { + if (formInputs[_i] != null) { + if (columns === 1) { + formInputs1.push(formInputs[_i]); + } else if (_i % 2 === 0) { + formInputs1.push(formInputs[_i]); + } else { + formInputs2.push(formInputs[_i]); + } + } + } + + var onFormLayoutChange = function onFormLayoutChange() {}; + + return /*#__PURE__*/_react["default"].createElement(_antd.Form, { + ref: this.formReference, + labelCol: { + span: 6 + }, + wrapperCol: { + span: 16 + }, + layout: this.props.layout || 'horizontal', + initialValues: { + size: 'middle' + }, + onValuesChange: onFormLayoutChange, + size: "middle" + }, this.state.errorMsg && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Alert, { + message: this.state.errorMsg, + type: "error", + showIcon: true + }), /*#__PURE__*/_react["default"].createElement("br", null)), columns === 1 && formInputs1, columns === 2 && /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 16 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12 + }, formInputs1), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12 + }, formInputs2))); + } + }, { + key: "isValid", + value: function isValid() { + var _this2 = this; + + return Object.keys(this.validationRules).reduce(function (acc, fieldName) { + return acc && (_this2.state[fieldName] === 'success' || _this2.state[fieldName] == null); + }, true); + } + }, { + key: "validateOnChange", + value: function validateOnChange(event) { + var validationRule = this.validationRules[event.target.id]; + var validations = this.state.validations; + + if (validationRule) { + if (validationRule.rule(event.target.value)) { + this.state[event.target.id] = 'success'; + this.state["".concat(event.target.id, "_message")] = null; + } else { + this.state[event.target.id] = 'error'; + this.state["".concat(event.target.id, "_message")] = validationRule.message; + } + } + + this.setState({ + validations: validations + }); + } + }, { + key: "createFromField", + value: function createFromField(field) { + var viewOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var userId = 0; + var rules = []; + var requiredRule = { + required: true + }; + + var _field = _slicedToArray(field, 2), + name = _field[0], + data = _field[1]; + + var _this$props2 = this.props, + adapter = _this$props2.adapter, + layout = _this$props2.layout; + var validationRule = null; + data.label = adapter.gt(data.label); + var labelSpan = layout === 'vertical' ? { + span: 24 + } : { + span: 6 + }; + var tempSelectBoxes = ['select', 'select2', 'select2multi']; + + if (tempSelectBoxes.indexOf(data.type) >= 0 && data['allow-null'] === true) { + requiredRule.required = false; + } else if (data.validation === 'none' || data.validation === 'emailOrEmpty' || data.validation === 'numberOrEmpty') { + requiredRule.required = false; + } else { + requiredRule.required = true; + requiredRule.message = this.generateFieldMessage(data.label); + } + + rules.push(requiredRule); + + if (data.type === 'hidden') { + requiredRule.required = false; + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + style: { + display: 'none' + }, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.Input, null)); + } + + if (data.type === 'text') { + if (data.validation) { + data.validation = data.validation.replace('OrEmpty', ''); + validationRule = this.getValidationRule(data); + + if (validationRule) { + this.validationRules[name] = { + rule: validationRule, + message: "Invalid value for ".concat(data.label) + }; + } + } + + if (validationRule != null) { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules, + validateStatus: this.state[name], + help: this.state["".concat(name, "_message")] + }, viewOnly ? /*#__PURE__*/_react["default"].createElement(_IceLabel["default"], null) : /*#__PURE__*/_react["default"].createElement(_antd.Input, { + onChange: this.validateOnChange.bind(this) + })); + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, viewOnly ? /*#__PURE__*/_react["default"].createElement(_IceLabel["default"], null) : /*#__PURE__*/_react["default"].createElement(_antd.Input, null)); + } + + if (data.type === 'textarea') { + if (!data.rows) { + data.rows = 4; + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, viewOnly ? /*#__PURE__*/_react["default"].createElement(_IceLabel["default"], null) : /*#__PURE__*/_react["default"].createElement(_antd.Input.TextArea, { + rows: data.rows + })); + } + + if (data.type === 'date') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.DatePicker, { + disabled: viewOnly + })); + } + + if (data.type === 'datetime') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.DatePicker, { + format: "YYYY-MM-DD HH:mm:ss", + disabled: viewOnly + })); + } + + if (data.type === 'time') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.TimePicker, { + format: "HH:mm", + disabled: viewOnly + })); + } + + if (data.type === 'fileupload') { + var currentEmployee = adapter.getCurrentProfile(); + + if (currentEmployee != null) { + userId = currentEmployee.id; + } else { + userId = adapter.getUser().id * -1; + } + + if (data.filetypes == null) { + data.filetypes = '.doc,.docx,.xml,' + 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,' + 'image/*,' + '.pdf'; + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + name: name, + key: name, + label: data.label + }, /*#__PURE__*/_react["default"].createElement(_IceUpload["default"], { + user: userId, + fileGroup: adapter.tab, + fileName: name, + adapter: adapter, + accept: data.filetypes, + readOnly: viewOnly + })); + } + + if (data.type === 'datagroup') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + name: name, + key: name, + label: data.label + }, /*#__PURE__*/_react["default"].createElement(_IceDataGroup["default"], { + adapter: adapter, + field: field, + title: data.label, + readOnly: viewOnly + })); + } + + if (data.type === 'select2' || data.type === 'select' || data.type === 'select2multi') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_IceSelect["default"], { + adapter: adapter, + field: field, + readOnly: viewOnly + })); + } + + if (data.type === 'colorpick') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + name: name, + key: name, + label: data.label + }, /*#__PURE__*/_react["default"].createElement(_IceColorPick["default"], { + adapter: adapter, + field: field, + title: data.label, + readOnly: viewOnly + })); + } + + if (data.type === 'signature') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_IceSignature["default"], { + readOnly: viewOnly + })); + } + + return null; + } + }, { + key: "generateFieldMessage", + value: function generateFieldMessage(label) { + return "".concat(label, ": ").concat(this.props.adapter.gt('is required')); + } + }, { + key: "getValidationRule", + value: function getValidationRule(data) { + if (ValidationRules[data.validation] == null) { + return null; + } + + return ValidationRules[data.validation]; + } + }, { + key: "dataToFormFields", + value: function dataToFormFields(data, fields) { + for (var i = 0; i < fields.length; i++) { + var _fields$i = _slicedToArray(fields[i], 2), + key = _fields$i[0], + formInputData = _fields$i[1]; + + if (formInputData.type === 'date') { + data[key] = data[key] ? (0, _moment["default"])(data[key], 'YYYY-MM-DD') : null; + } else if (formInputData.type === 'datetime') { + data[key] = data[key] ? (0, _moment["default"])(data[key], 'YYYY-MM-DD HH:mm:ss') : null; + } else if (formInputData.type === 'time') { + data[key] = data[key] ? (0, _moment["default"])(data[key], 'HH:mm') : null; + } + } + + return data; + } + }, { + key: "formFieldsToData", + value: function formFieldsToData(params, fields) { + for (var i = 0; i < fields.length; i++) { + var _fields$i2 = _slicedToArray(fields[i], 2), + key = _fields$i2[0], + formInputData = _fields$i2[1]; + + if (formInputData.type === 'date') { + params[key] = params[key] ? params[key].format('YYYY-MM-DD') : 'NULL'; + } else if (formInputData.type === 'datetime') { + params[key] = params[key] ? params[key].format('YYYY-MM-DD HH:mm:ss') : 'NULL'; + } else if (formInputData.type === 'time') { + params[key] = params[key] ? params[key].format('HH:mm') : 'NULL'; + } else if ((formInputData.type === 'select' || formInputData.type === 'select2') && params[key] == null) { + params[key] = 'NULL'; + } + } + + return params; + } + }, { + key: "updateFields", + value: function updateFields(data) { + var fields = this.props.fields; + data = this.dataToFormFields(data, fields); + this.formReference.current.resetFields(); + + if (data == null) { + return; + } + + try { + this.formReference.current.setFieldsValue(data); + } catch (e) { + console.log(e); + } + } + }, { + key: "resetFields", + value: function resetFields() { + this.formReference.current.resetFields(); + } + }, { + key: "setFieldsValue", + value: function setFieldsValue(data) { + this.formReference.current.setFieldsValue(data); + } + }, { + key: "save", + value: function save(params, success) { + var _this3 = this; + + var _this$props3 = this.props, + adapter = _this$props3.adapter, + fields = _this$props3.fields; + var values = params; + values = adapter.forceInjectValuesBeforeSave(values); + var msg = adapter.doCustomValidation(values); + + if (msg !== null) { + this.showError(msg); + return; + } + + if (adapter.csrfRequired) { + values.csrf = $("#".concat(adapter.getTableName(), "Form")).data('csrf'); + } + + var id = adapter.currentElement != null ? adapter.currentElement.id : null; + + if (id != null && id !== '') { + values.id = id; + } + + values = this.formFieldsToData(values, fields); + adapter.add(values, [], function () { + return adapter.get([]); + }, function () { + _this3.formReference.current.resetFields(); + + _this3.showError(false); + + success(); + }); + } + }]); + + return IceForm; +}(_react["default"].Component); + +var _default = IceForm; +exports["default"] = _default; + +},{"./IceColorPick":68,"./IceDataGroup":69,"./IceLabel":72,"./IceSelect":73,"./IceSignature":74,"./IceUpload":78,"antd":"antd","moment":"moment","react":"react"}],71:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceForm = _interopRequireDefault(require("./IceForm")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceFormModal = /*#__PURE__*/function (_React$Component) { + _inherits(IceFormModal, _React$Component); + + var _super = _createSuper(IceFormModal); + + function IceFormModal(props) { + var _this; + + _classCallCheck(this, IceFormModal); + + _this = _super.call(this, props); + _this.state = { + visible: false, + viewOnly: false, + loading: false + }; + _this.iceFormReference = _react["default"].createRef(); + _this.width = 800; + return _this; + } + + _createClass(IceFormModal, [{ + key: "setViewOnly", + value: function setViewOnly(value) { + this.setState({ + viewOnly: value + }); + } + }, { + key: "show", + value: function show(data) { + var _this2 = this; + + this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : function (fieldName, field) { + return field; + }; + + if (!data) { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current) { + this.iceFormReference.current.resetFields(); + } + } else { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current && this.iceFormReference.current.isReady()) { + this.iceFormReference.current.updateFields(data); + } else { + this.waitForIt(function () { + return _this2.iceFormReference.current && _this2.iceFormReference.current.isReady(); + }, function () { + _this2.iceFormReference.current.updateFields(data); + }, 1000); + } + } + } + }, { + key: "waitForIt", + value: function waitForIt(condition, callback, time) { + var _this3 = this; + + setTimeout(function () { + if (condition()) { + callback(); + } else { + _this3.waitForIt(condition, callback, time); + } + }, time); + } + }, { + key: "hide", + value: function hide() { + this.setState({ + visible: false + }); + } + }, { + key: "save", + value: function save(params) { + var _this4 = this; + + this.iceFormReference.current.save(params, function () { + _this4.closeModal(); + }); + } + }, { + key: "closeModal", + value: function closeModal() { + this.hide(); + this.iceFormReference.current.showError(false); + } + }, { + key: "render", + value: function render() { + var _this5 = this; + + var _this$props = this.props, + fields = _this$props.fields, + adapter = _this$props.adapter, + saveCallback = _this$props.saveCallback, + cancelCallback = _this$props.cancelCallback; + var additionalProps = {}; + additionalProps.footer = /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 16 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: {} + }), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: { + textAlign: 'right' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: function onClick() { + if (cancelCallback) { + cancelCallback(); + } else { + _this5.closeModal(); + } + } + }, this.props.adapter.gt('Cancel')), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + loading: this.state.loading, + type: "primary", + onClick: function onClick() { + _this5.setState({ + loading: true + }); + + var iceFrom = _this5.iceFormReference.current; + iceFrom.validateFields().then(function (values) { + if (!iceFrom.isValid()) { + _this5.setState({ + loading: false + }); + + return; + } + + if (saveCallback) { + saveCallback(values, iceFrom.showError.bind(_this5), _this5.closeModal.bind(_this5)); + } else { + _this5.save(values); + } + + _this5.setState({ + loading: false + }); + })["catch"](function (info) { + _this5.setState({ + loading: false + }); + }); + } + }, this.state.viewOnly ? this.props.adapter.gt('Done') : this.props.adapter.gt('Save'))))); + + if (this.state.viewOnly) { + additionalProps.footer = null; + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Modal, _extends({ + visible: this.state.visible, + title: this.props.adapter.gt(this.props.title || adapter.objectTypeName), + maskClosable: false, + width: this.width, + onCancel: function onCancel() { + if (cancelCallback) { + cancelCallback(); + } else { + _this5.closeModal(); + } + } + }, additionalProps), /*#__PURE__*/_react["default"].createElement(_IceForm["default"], { + ref: this.iceFormReference, + adapter: adapter, + fields: fields, + viewOnly: this.state.viewOnly + })); + } + }]); + + return IceFormModal; +}(_react["default"].Component); + +var _default = IceFormModal; +exports["default"] = _default; + +},{"./IceForm":70,"antd":"antd","react":"react"}],72:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceLabel = /*#__PURE__*/function (_React$Component) { + _inherits(IceLabel, _React$Component); + + var _super = _createSuper(IceLabel); + + function IceLabel(props) { + _classCallCheck(this, IceLabel); + + return _super.call(this, props); + } + + _createClass(IceLabel, [{ + key: "render", + value: function render() { + var value = this.props.value; + return /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement("div", { + contentEditable: "true", + dangerouslySetInnerHTML: { + __html: this.nl2br(value || '') + } + })); + } + }, { + key: "nl2br", + value: function nl2br(str) { + return "".concat(str).replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '
    '); + } + }]); + + return IceLabel; +}(_react["default"].Component); + +var _default = IceLabel; +exports["default"] = _default; + +},{"antd":"antd","react":"react"}],73:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Option = _antd.Select.Option; + +var IceSelect = /*#__PURE__*/function (_React$Component) { + _inherits(IceSelect, _React$Component); + + var _super = _createSuper(IceSelect); + + function IceSelect(props) { + var _this; + + _classCallCheck(this, IceSelect); + + _this = _super.call(this, props); + _this.onChange = props.onChange; + return _this; + } + + _createClass(IceSelect, [{ + key: "render", + value: function render() { + var options; + var _this$props = this.props, + field = _this$props.field, + adapter = _this$props.adapter; + var value = this.props.value; + var data = field[1]; + + if (data['remote-source'] != null) { + var key = "".concat(data['remote-source'][0], "_").concat(data['remote-source'][1], "_").concat(data['remote-source'][2]); + + if (data['remote-source'].length === 4) { + key = "".concat(key, "_").concat(data['remote-source'][3]); + } + + options = adapter.fieldMasterData[key]; + } else { + options = data.source; + } + + var optionData = this.getFormSelectOptionsRemote(options, field, adapter); // value should be an array if multi-select + + if (data.type === 'select2multi') { + try { + value = JSON.parse(value); + + if (value == null) { + value = []; + } + + value = value.map(function (item) { + return "".concat(item); + }); + } catch (e) { + value = []; + } + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Select, { + mode: data.type === 'select2multi' ? 'multiple' : undefined, + showSearch: true, + placeholder: "Select ".concat(data.label), + optionFilterProp: "children", + filterOption: function filterOption(input, option) { + return input != null && option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0; + }, + value: value, + options: optionData, + allowClear: true, + onChange: this.handleChange.bind(this), + disabled: this.props.readOnly + }); + } + }, { + key: "handleChange", + value: function handleChange(value) { + var field = this.props.field; + var data = field[1]; + + if (data.type === 'select2multi') { + this.onChange(JSON.stringify(value)); + } else { + this.onChange(value); + } + } + }, { + key: "makeOption", + value: function makeOption(option) { + return /*#__PURE__*/_react["default"].createElement(Option, { + key: "".concat(option[0]), + value: "".concat(option[0]) + }, option[1]); + } + }, { + key: "getFormSelectOptionsRemote", + value: function getFormSelectOptionsRemote(options, field, adapter) { + var optionData = []; + + if (Array.isArray(options)) { + for (var i = 0; i < options.length; i++) { + optionData.push({ + label: options[i][1], + value: options[i][0] + }); + } + } else { + for (var key in options) { + optionData.push({ + label: options[key], + value: key + }); + } + } // if (field[1].sort === 'true') { + // tuples.sort((a, b) => { + // a = a[1]; + // b = b[1]; + // + // // eslint-disable-next-line no-nested-ternary + // return a < b ? -1 : (a > b ? 1 : 0); + // }); + // } + // for (let i = 0; i < tuples.length; i++) { + // const prop = tuples[i][0]; + // const value = tuples[i][1]; + // optionData.push([prop, adapter.gt(value)]); + // } + + + return optionData; + } + }]); + + return IceSelect; +}(_react["default"].Component); + +var _default = IceSelect; +exports["default"] = _default; + +},{"antd":"antd","react":"react"}],74:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _reactSignatureCanvas = _interopRequireDefault(require("react-signature-canvas")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceSignature = /*#__PURE__*/function (_React$Component) { + _inherits(IceSignature, _React$Component); + + var _super = _createSuper(IceSignature); + + function IceSignature(props) { + var _this; + + _classCallCheck(this, IceSignature); + + _this = _super.call(this, props); + _this.onChange = props.onChange; + _this.state = { + visible: false + }; + _this.signature = _react["default"].createRef(); + return _this; + } + + _createClass(IceSignature, [{ + key: "componentDidMount", + value: function componentDidMount() {} + }, { + key: "show", + value: function show() { + this.setState({ + visible: true + }); + } + }, { + key: "setSignature", + value: function setSignature(ref) { + if (ref == null) { + return; + } + + var value = this.props.value; + + if (value != null && value.length > 10) { + ref.fromDataURL(value); + } + } + }, { + key: "hide", + value: function hide() { + this.setState({ + visible: false + }); + } + }, { + key: "clear", + value: function clear() { + this.signature.clear(); + } + }, { + key: "save", + value: function save() { + var data = this.signature.toDataURL('image/png'); + this.onChange(data); + this.setState({ + visible: false + }); + } + }, { + key: "render", + value: function render() { + var _this2 = this; + + var readOnly = this.props.readOnly; + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Modal, { + visible: this.state.visible, + title: "Signature", + maskClosable: false, + centered: true, + width: 300, + onCancel: function onCancel() { + _this2.hide(); + }, + footer: [/*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "cancel", + onClick: function onClick() { + _this2.hide(); + } + }, "Cancel"), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "clear", + disabled: readOnly, + type: "dashed", + onClick: function onClick() { + if (!readOnly) { + _this2.clear(); + } + } + }, "Clear"), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "ok", + disabled: readOnly, + type: "primary", + onClick: function onClick() { + if (!readOnly) { + _this2.save(); + } + } + }, "Submit")] + }, /*#__PURE__*/_react["default"].createElement(_reactSignatureCanvas["default"], { + ref: function ref(_ref) { + _this2.signature = _ref; + + _this2.setSignature(_ref); + }, + canvasProps: _objectSpread({ + width: 250, + height: 200, + className: 'sigCanvas' + }, readOnly ? { + readOnly: readOnly + } : {}) + })), /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + style: { + cursor: 'pointer' + }, + onClick: function onClick() { + _this2.show(); + } + }, /*#__PURE__*/_react["default"].createElement(_icons.VerifiedOutlined, null), ' ', "Sign")); + } + }]); + + return IceSignature; +}(_react["default"].Component); + +var _default = IceSignature; +exports["default"] = _default; + +},{"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react","react-signature-canvas":358}],75:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceForm2 = _interopRequireDefault(require("./IceForm")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Step = _antd.Steps.Step; + +var IceStepForm = /*#__PURE__*/function (_IceForm) { + _inherits(IceStepForm, _IceForm); + + var _super = _createSuper(IceStepForm); + + function IceStepForm(props) { + var _this; + + _classCallCheck(this, IceStepForm); + + _this = _super.call(this, props); + _this.onChange = props.onChange; + + var steps = _this.props.fields.map(function (item) { + return _objectSpread({}, item, { + ref: _react["default"].createRef() + }); + }); + + steps = steps.map(function (item) { + var ref = item.ref, + fields = item.fields; + item.content = /*#__PURE__*/_react["default"].createElement(_IceForm2["default"], { + ref: ref, + adapter: props.adapter, + fields: fields, + twoColumnLayout: props.twoColumnLayout, + width: props.width, + layout: props.layout || 'horizontal' + }); + return item; + }); + _this.state = { + current: 0, + steps: steps, + loading: false + }; + return _this; + } + + _createClass(IceStepForm, [{ + key: "moveToStep", + value: function moveToStep(current) { + this.setState({ + current: current + }); + } + }, { + key: "next", + value: function next() { + if (this.validateFields(false) === false) { + return; + } + + this.showError(false); + var current = this.state.current + 1; + this.setState({ + current: current + }); + } + }, { + key: "prev", + value: function prev() { + var current = this.state.current - 1; + + if (current < 0) { + return; + } + + this.setState({ + current: current + }); + } + }, { + key: "render", + value: function render() { + var _this2 = this; + + var adapter = this.props.adapter; + var _this$state = this.state, + current = _this$state.current, + steps = _this$state.steps; + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Steps, { + current: current + }, steps.map(function (item, index) { + return /*#__PURE__*/_react["default"].createElement(Step, { + key: item.title, + title: item.title, + onClick: function onClick() { + return _this2.moveToStep(index); + } + }); + })), /*#__PURE__*/_react["default"].createElement(_antd.Divider, null), /*#__PURE__*/_react["default"].createElement("div", { + className: "steps-content" + }, steps.map(function (item, index) { + return /*#__PURE__*/_react["default"].createElement("div", { + style: { + display: index === current ? 'block' : 'none' + } + }, item.content); + })), /*#__PURE__*/_react["default"].createElement(_antd.Divider, null), /*#__PURE__*/_react["default"].createElement("div", { + className: "steps-action" + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 16 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: {} + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, current < steps.length - 1 && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "primary", + onClick: function onClick() { + return _this2.next(); + } + }, adapter.gt('Next')), current > 0 && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: function onClick() { + return _this2.prev(); + } + }, adapter.gt('Previous')))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: { + textAlign: 'right' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: function onClick() { + return _this2.props.closeModal(); + } + }, adapter.gt('Cancel')), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "primary", + loading: this.state.loading, + onClick: function onClick() { + return _this2.saveData(); + } + }, adapter.gt('Save'))))))); + } + }, { + key: "saveData", + value: function () { + var _saveData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _this3 = this; + + var data; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + this.setState({ + loading: true + }); + _context.next = 3; + return this.validateFields(true); + + case 3: + data = _context.sent; + + if (data) { + this.save(data, function () { + return _this3.props.closeModal(); + }); + } + + this.setState({ + loading: false + }); + + case 6: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function saveData() { + return _saveData.apply(this, arguments); + } + + return saveData; + }() + }, { + key: "save", + value: function save(params, success) { + var _this4 = this; + + var adapter = this.props.adapter; + adapter.add(params, [], function () { + return adapter.get([]); + }, function () { + _this4.resetFields(); + + _this4.showError(false); + + success(); + }); + } + }, { + key: "updateFields", + value: function updateFields(data) { + var _this5 = this; + + this.state.steps.forEach(function (item) { + var subData = {}; + item.fields.forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 1), + key = _ref2[0]; + + subData[key] = data[key]; + }); + + _this5.updateFieldsSubForm(item.ref, item.fields, subData); + }); + } + }, { + key: "updateFieldsSubForm", + value: function updateFieldsSubForm(ref, fields, data) { + data = this.dataToFormFields(data, fields); + ref.current.resetFields(); + + if (data == null) { + return; + } + + try { + ref.current.setFieldsValue(data); + } catch (e) { + console.log(e); + } + } + }, { + key: "validateFields", + value: function () { + var _validateFields = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(all) { + var adapter, steps, promiseList, allData, failedIndex, values, msg, id, fields; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + adapter = this.props.adapter; + steps = all ? this.state.steps : this.state.steps.slice(0, this.state.current + 1); + promiseList = steps.map(function (item) { + return item.ref.current.validateFields().then(function (values) { + if (!item.ref.current.isValid()) { + return false; + } + + return values; + })["catch"](function () { + return false; + }); + }); + _context2.next = 5; + return Promise.all(promiseList); + + case 5: + allData = _context2.sent; + failedIndex = allData.findIndex(function (item) { + return item === false; + }); + + if (!(failedIndex >= 0)) { + _context2.next = 10; + break; + } + + this.setState({ + current: failedIndex + }); + return _context2.abrupt("return", false); + + case 10: + values = Object.assign.apply(Object, [{}].concat(_toConsumableArray(allData))); + values = adapter.forceInjectValuesBeforeSave(values); + msg = adapter.doCustomValidation(values); + + if (!(msg !== null)) { + _context2.next = 16; + break; + } + + this.showError(msg); + return _context2.abrupt("return", false); + + case 16: + if (adapter.csrfRequired) { + values.csrf = $("#".concat(adapter.getTableName(), "Form")).data('csrf'); + } + + id = adapter.currentElement != null ? adapter.currentElement.id : null; + + if (id != null && id !== '') { + values.id = id; + } + + fields = [].concat.apply([], this.state.steps.map(function (item) { + return item.fields; + })); + return _context2.abrupt("return", this.formFieldsToData(values, fields)); + + case 21: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function validateFields(_x) { + return _validateFields.apply(this, arguments); + } + + return validateFields; + }() + }, { + key: "getSubFormData", + value: function getSubFormData(ref, fields, params) { + var adapter = this.props.adapter; + var values = params; + values = adapter.forceInjectValuesBeforeSave(values); + var msg = adapter.doCustomValidation(values); + + if (msg !== null) { + ref.current.showError(msg); + return; + } + + if (adapter.csrfRequired) { + values.csrf = $("#".concat(adapter.getTableName(), "Form")).data('csrf'); + } + + var id = adapter.currentElement != null ? adapter.currentElement.id : null; + + if (id != null && id !== '') { + values.id = id; + } + + return this.formFieldsToData(values, fields); + } + }, { + key: "showError", + value: function showError(errorMsg) { + this.state.steps.forEach(function (item) { + return item.ref.current.showError(errorMsg); + }); + } + }, { + key: "resetFields", + value: function resetFields() { + this.state.steps.forEach(function (item) { + return item.ref.current.resetFields(); + }); + } + }, { + key: "hideError", + value: function hideError() { + this.state.steps.forEach(function (item) { + return item.ref.current.hideError(); + }); + } + }, { + key: "isReady", + value: function isReady() { + return this.state.steps.reduce(function (acc, item) { + return acc && item.ref.current != null; + }, true); + } + }]); + + return IceStepForm; +}(_IceForm2["default"]); + +var _default = IceStepForm; +exports["default"] = _default; + +},{"./IceForm":70,"antd":"antd","react":"react"}],76:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceFormModal2 = _interopRequireDefault(require("./IceFormModal")); + +var _IceStepForm = _interopRequireDefault(require("./IceStepForm")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceStepFormModal = /*#__PURE__*/function (_IceFormModal) { + _inherits(IceStepFormModal, _IceFormModal); + + var _super = _createSuper(IceStepFormModal); + + function IceStepFormModal(props) { + var _this; + + _classCallCheck(this, IceStepFormModal); + + _this = _super.call(this, props); + _this.width = 850; + return _this; + } + + _createClass(IceStepFormModal, [{ + key: "show", + value: function show(data) { + var _this2 = this; + + this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : function (fieldName, field) { + return field; + }; + + if (!data) { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current) { + this.iceFormReference.current.resetFields(); + } + } else { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current && this.iceFormReference.current.isReady()) { + this.iceFormReference.current.moveToStep(0); + this.iceFormReference.current.updateFields(data); + } else { + this.waitForIt(function () { + return _this2.iceFormReference.current && _this2.iceFormReference.current.isReady(); + }, function () { + _this2.iceFormReference.current.updateFields(data); + + _this2.iceFormReference.current.moveToStep(0); + }, 1000); + } + } + } + }, { + key: "hide", + value: function hide() { + this.iceFormReference.current.moveToStep(0); + this.setState({ + visible: false + }); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + + var _this$props = this.props, + fields = _this$props.fields, + adapter = _this$props.adapter; + + var _this$props$adapter$g = this.props.adapter.getFormOptions(), + width = _this$props$adapter$g.width, + twoColumnLayout = _this$props$adapter$g.twoColumnLayout, + layout = _this$props$adapter$g.layout; + + return /*#__PURE__*/_react["default"].createElement(_antd.Modal, { + visible: this.state.visible, + title: this.props.adapter.gt(this.props.title || adapter.objectTypeName), + maskClosable: false, + width: width || this.width, + footer: [], + onCancel: function onCancel() { + _this3.closeModal(); + } + }, /*#__PURE__*/_react["default"].createElement(_IceStepForm["default"], { + ref: this.iceFormReference, + adapter: adapter, + fields: fields, + closeModal: function closeModal() { + _this3.closeModal(); + }, + twoColumnLayout: twoColumnLayout || false, + layout: layout + })); + } + }]); + + return IceStepFormModal; +}(_IceFormModal2["default"]); + +var _default = IceStepFormModal; +exports["default"] = _default; + +},{"./IceFormModal":71,"./IceStepForm":75,"antd":"antd","react":"react"}],77:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireWildcard(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Search = _antd.Input.Search; + +var IceTable = /*#__PURE__*/function (_React$Component) { + _inherits(IceTable, _React$Component); + + var _super = _createSuper(IceTable); + + function IceTable(props) { + var _this; + + _classCallCheck(this, IceTable); + + _this = _super.call(this, props); + _this.state = { + data: [], + pagination: {}, + loading: true, + fetchConfig: false, + //filter: null, + showLoading: true, + currentElement: null, + fetchCompleted: false + }; + + _this.handleTableChange = function (pagination, filters, sorter) { + var pager = _objectSpread({}, _this.state.pagination); + + var search = _this.state.search; + pager.current = pagination.current; + + _this.setState({ + pagination: pager + }); + + var fetchConfig = { + limit: pagination.pageSize, + page: pagination.current, + sortField: sorter.field, + sortOrder: sorter.order, + filters: JSON.stringify(filters), + search: search + }; + + _this.setState({ + fetchConfig: fetchConfig + }); + + _this.fetch(fetchConfig); + }; + + _this.reload = function () { + var fetchConfig = _this.state.fetchConfig; + + if (fetchConfig) { + _this.fetch(fetchConfig); + } + }; + + _this.search = function (value) { + _this.setState({ + search: value + }); + + var fetchConfig = _this.state.fetchConfig; + console.log(fetchConfig); + + if (fetchConfig) { + fetchConfig.search = value; + + _this.setState({ + fetchConfig: fetchConfig + }); + + _this.fetch(fetchConfig); + } + }; + + _this.addNew = function () { + _this.props.adapter.renderForm(); + }; + + _this.showFilters = function () { + _this.props.adapter.showFilters(); + }; + + _this.setFilterData = function (filter) { + _this.setState({ + filter: filter + }); + }; + + _this.setCurrentElement = function (currentElement) { + _this.setState({ + currentElement: currentElement + }); + }; + + _this.fetch = function () { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + //this.setState({ loading: this.state.showLoading }); + _this.setState({ + loading: true + }); //const hideMessage = message.loading({ content: 'Loading Latest Data ...', key: 'loadingTable', duration: 1}); + + + var pagination = _objectSpread({}, _this.state.pagination); + + if (_this.props.adapter.localStorageEnabled) { + try { + var cachedResponse = _this.props.reader.getCachedResponse(params); + + if (cachedResponse.items) { + _this.setState({ + loading: false, + data: cachedResponse.items, + pagination: pagination, + showLoading: false + }); + } else { + _this.props.reader.clearCachedResponse(params); + } + } catch (e) { + _this.props.reader.clearCachedResponse(params); + } + } + + _this.props.reader.get(params).then(function (data) { + // Read total count from server + // pagination.total = data.totalCount; + pagination.total = data.total; //hideMessage(); + // setTimeout( + // () => message.success({ content: 'Loading Completed!', key: 'loadingSuccess', duration: 1 }), + // 600 + // ); + + _this.setState({ + loading: false, + data: data.items, + pagination: pagination, + showLoading: false, + fetchCompleted: true + }); + }); + }; + + return _this; + } + + _createClass(IceTable, [{ + key: "componentDidMount", + value: function componentDidMount() { + var fetchConfig = { + page: 1 + }; + + _antd.message.config({ + top: 40 + }); + + this.setState({ + fetchConfig: fetchConfig, + //filter: this.props.adapter.filter, + pagination: { + 'pageSize': this.props.reader.pageSize + } + }); //this.fetch(fetchConfig); + } + }, { + key: "setLoading", + value: function setLoading(value) { + this.setState({ + loading: value + }); + } + }, { + key: "getChildrenWithProps", + value: function getChildrenWithProps(element) { + var _this2 = this; + + var childrenWithProps = _react["default"].Children.map(this.props.children, function (child) { + // checking isValidElement is the safe way and avoids a typescript error too + var props = { + element: element, + adapter: _this2.props.adapter, + loading: _this2.state.loading + }; + + if (_react["default"].isValidElement(child)) { + return _react["default"].cloneElement(child, props); + } + + return child; + }); + + return childrenWithProps; + } + }, { + key: "render", + value: function render() { + var _this3 = this; + + return /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%' + } + }, !this.state.currentElement && /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 18 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, this.props.adapter.hasAccess('save') && this.props.adapter.getShowAddNew() && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "primary", + onClick: this.addNew + }, /*#__PURE__*/_react["default"].createElement(_icons.PlusCircleOutlined, null), " Add New"), this.props.adapter.getFilters() && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: this.showFilters + }, /*#__PURE__*/_react["default"].createElement(_icons.FilterOutlined, null), " Filters"), this.state.fetchCompleted && this.props.adapter.getFilters() && this.props.adapter.filter != null && this.props.adapter.filter !== [] && this.props.adapter.filter !== '' && this.props.adapter.getFilterString(this.props.adapter.filter) !== '' && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + closable: true, + style: { + 'lineHeight': '30px' + }, + color: "blue", + onClose: function onClose() { + return _this3.props.adapter.resetFilters(); + }, + visible: this.props.adapter.filter != null && this.props.adapter.filter !== [] && this.props.adapter.filter !== '' + }, this.props.adapter.getFilterString(this.props.adapter.filter)))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Form, { + ref: function ref(formRef) { + return _this3.form = formRef; + }, + name: "advanced_search", + className: "ant-advanced-search-form" + }, /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + name: "searchTerm", + label: "", + rules: [{ + required: false + }] + }, /*#__PURE__*/_react["default"].createElement(Search, { + placeholder: "input search text", + enterButton: "Search", + onSearch: function onSearch(value) { + return _this3.search(value); + } + }))))), /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Table // bordered + , { + rowClassName: function rowClassName(record, index) { + return index % 2 === 0 ? 'table-row-light' : 'table-row-dark'; + }, + columns: this.props.columns, + rowKey: function rowKey(record) { + return record.id; + }, + dataSource: this.state.data, + pagination: this.state.pagination, + loading: this.state.loading, + onChange: this.handleTableChange, + reader: this.props.dataPipe + })))), this.state.currentElement && this.getChildrenWithProps(this.state.currentElement)); + } + }]); + + return IceTable; +}(_react["default"].Component); + +var _default = IceTable; +exports["default"] = _default; + +},{"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],78:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceUpload = /*#__PURE__*/function (_React$Component) { + _inherits(IceUpload, _React$Component); + + var _super = _createSuper(IceUpload); + + function IceUpload(props) { + var _this; + + _classCallCheck(this, IceUpload); + + _this = _super.call(this, props); + _this.state = { + fileList: [], + uploaded: false + }; + _this._isMounted = false; + + _this.handleDelete = function () { + _this.setState({ + fileList: [], + value: null, + uploaded: false + }); + + _this.onChange(null); + }; + + _this.handleView = function () { + var currentValue = _this.props.value; + + if (_this.state.value != null && _this.state.value !== '') { + currentValue = _this.state.value; + } + + if (currentValue == null || currentValue === '') { + _antd.message.error('File not found'); + + return; + } + + var adapter = _this.props.adapter; + adapter.getFile(currentValue).then(function (data) { + var file = { + key: data.uid, + uid: data.uid, + name: data.name, + status: data.status, + url: data.filename + }; + window.open(file.url); + })["catch"](function (e) {}); + }; + + _this.handleChange = function (info) { + var fileList = _toConsumableArray(info.fileList); + + if (fileList.length === 0) { + _this.setState({ + value: null + }); + + _this.onChange(null); + + _this.setState({ + fileList: [] + }); + + _this.setState({ + uploaded: false + }); + + return; + } + + fileList = fileList.slice(-1); + + if (fileList[0].response && fileList[0].response.status === 'error') { + _this.setState({ + value: null + }); + + _this.onChange(null); + + _this.setState({ + fileList: [] + }); + + _this.setState({ + uploaded: false + }); + + _antd.message.error("Error: ".concat(fileList[0].response.message)); + + return; + } + + fileList = fileList.map(function (file) { + if (file.response) { + // Component will show file.url as link + file.name = file.response.name; + file.url = file.response.url; + } + + return file; + }); + + _this.setState({ + fileList: fileList + }); + + _this.setState({ + value: _this.getFileName(fileList), + uploaded: true + }); + + _this.onChange(_this.getFileName(fileList)); + }; + + _this.onChange = props.onChange; + return _this; + } + + _createClass(IceUpload, [{ + key: "componentDidMount", + value: function componentDidMount() { + this._isMounted = true; + + _antd.message.config({ + top: 55, + duration: 2 + }); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this._isMounted = false; + } + }, { + key: "getFileName", + value: function getFileName(fileList) { + var file = null; + + if (fileList) { + file = fileList[0]; + } + + return file ? file.name : ''; + } + }, { + key: "generateRandom", + value: function generateRandom(length) { + var d = new Date(); + var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var result = ''; + + for (var i = length; i > 0; --i) { + result += chars[Math.round(Math.random() * (chars.length - 1))]; + } + + return result + d.getTime(); + } + }, { + key: "render", + value: function render() { + var fileName = this.generateRandom(14); + var props = { + action: "".concat(window.CLIENT_BASE_URL, "fileupload-new.php?user=").concat(this.props.user, "&file_group=").concat(this.props.fileGroup, "&file_name=").concat(fileName), + onChange: this.handleChange, + onRemove: this.handleDelete, + multiple: false, + listType: 'picture' + }; + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: 'vertical' + }, !this.props.readOnly && /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_antd.Upload, _extends({}, props, { + fileList: this.state.fileList + }), /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.UploadOutlined, null), ' ', "Upload"))), /*#__PURE__*/_react["default"].createElement(_antd.Space, null, (this.props.value != null && this.props.value !== '' || this.state.value != null && this.state.value !== '') && !this.state.uploaded && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + onClick: this.handleView + }, /*#__PURE__*/_react["default"].createElement(_icons.DownloadOutlined, null), " View File"), (this.props.value != null && this.props.value !== '' || this.state.value != null && this.state.value !== '') && !this.state.uploaded && !this.props.readOnly && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + danger: true, + onClick: this.handleDelete + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " Delete"))); + } + }]); + + return IceUpload; +}(_react["default"].Component); + +var _default = IceUpload; +exports["default"] = _default; + +},{"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],79:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var TagList = /*#__PURE__*/function (_React$Component) { + _inherits(TagList, _React$Component); + + var _super = _createSuper(TagList); + + function TagList(props) { + var _this; + + _classCallCheck(this, TagList); + + _this = _super.call(this, props); + _this.state = { + tags: [], + loading: true + }; + return _this; + } + + _createClass(TagList, [{ + key: "componentDidMount", + value: function componentDidMount() { + this.fetch(); + } + }, { + key: "fetch", + value: function fetch() { + var _this2 = this; + + this.setState({ + loading: true + }); + this.props.apiClient.get(this.props.url).then(function (response) { + var tags = response.data.data.map(_this2.props.extractTag); + + _this2.setState({ + tags: tags, + loading: false + }); + }); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + + return /*#__PURE__*/_react["default"].createElement("div", { + style: { + display: 'inline-block', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + overflow: 'hidden', + width: '100%' + } + }, this.state.loading && /*#__PURE__*/_react["default"].createElement(_antd.Skeleton, { + active: true + }), !this.state.loading && this.state.tags.map(function (tag, index) { + return _this3.props.render ? _this3.props.render(tag) : /*#__PURE__*/_react["default"].createElement("div", { + key: "p".concat(index) + }, /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: _this3.props.color, + key: index, + style: { + margin: '10px' + } + }, tag), /*#__PURE__*/_react["default"].createElement("br", null)); + })); + } + }]); + + return TagList; +}(_react["default"].Component); + +var _default = TagList; +exports["default"] = _default; + +},{"antd":"antd","react":"react"}],80:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Paragraph = _antd.Typography.Paragraph; + +var TaskList = /*#__PURE__*/function (_React$Component) { + _inherits(TaskList, _React$Component); + + var _super = _createSuper(TaskList); + + function TaskList(props) { + var _this; + + _classCallCheck(this, TaskList); + + _this = _super.call(this, props); + _this.state = { + tasks: [], + showAll: false + }; + _this.state.tasks = _this.props.tasks.map(function (item) { + return false; + }); + return _this; + } + + _createClass(TaskList, [{ + key: "render", + value: function render() { + return this.createTaskList(4); + } + }, { + key: "createTaskList", + value: function createTaskList(maxNumberOfTasks) { + var _this2 = this; + + var tasks = this.props.tasks.slice(0, maxNumberOfTasks); + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: "vertical", + size: "large", + style: { + width: '100%' + } + }, this.props.tasks && this.props.tasks.length > 0 && /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: "vertical", + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Timeline, { + style: { + width: '100%' + } + }, tasks.map(function (task, index) { + return _this2.createTask(task, index); + })), this.props.tasks.length > maxNumberOfTasks && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "primary", + onClick: function onClick() { + return _this2.showAllTasks(); + } + }, "View All", ' ', this.props.tasks.length, ' ', "Tasks")), this.props.tasks && this.props.tasks.length === 0 && /*#__PURE__*/_react["default"].createElement(_antd.Empty, { + description: "You're all caught up!" + })), /*#__PURE__*/_react["default"].createElement(_antd.Drawer, { + title: "Task List", + width: 470, + onClose: function onClose() { + return _this2.hideAllTasks(); + }, + visible: this.state.showAll, + bodyStyle: { + paddingBottom: 80 + }, + zIndex: 1200, + maskClosable: false + }, /*#__PURE__*/_react["default"].createElement(_antd.Timeline, { + style: { + width: '100%' + } + }, this.props.tasks.map(function (task, index) { + return _this2.createTask(task, index); + })))); + } + }, { + key: "visitLink", + value: function visitLink(link) { + setTimeout(function () { + window.open(link); + }, 100); + } + }, { + key: "handleTaskHover", + value: function handleTaskHover(index) { + this.setState({ + tasks: this.props.tasks.map(function (item, i) { + return index === i; + }) + }); + } + }, { + key: "createTask", + value: function createTask(task, index) { + var _this3 = this; + + if (task.priority === 100) { + return /*#__PURE__*/_react["default"].createElement(_antd.Timeline.Item, { + onMouseEnter: function onMouseEnter() { + return _this3.handleTaskHover(index); + }, + dot: /*#__PURE__*/_react["default"].createElement(_icons.ClockCircleOutlined, { + style: { + fontSize: '16px' + } + }), + color: "red" + }, this.getText(task), task.link && this.state.tasks[index] && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + onClick: function onClick() { + return _this3.visitLink(task.link); + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MedicineBoxOutlined, { + style: { + fontSize: '16px' + } + }), ' ', task.action)); + } + + if (task.priority === 50) { + return /*#__PURE__*/_react["default"].createElement(_antd.Timeline.Item, { + onMouseEnter: function onMouseEnter() { + return _this3.handleTaskHover(index); + }, + dot: /*#__PURE__*/_react["default"].createElement(_icons.InfoCircleOutlined, { + style: { + fontSize: '16px' + } + }), + color: "blue" + }, this.getText(task), task.link && this.state.tasks[index] && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + onClick: function onClick() { + return _this3.visitLink(task.link); + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MedicineBoxOutlined, { + style: { + fontSize: '16px' + } + }), ' ', task.action)); + } + + if (task.priority === 20) { + return /*#__PURE__*/_react["default"].createElement(_antd.Timeline.Item, { + onMouseEnter: function onMouseEnter() { + return _this3.handleTaskHover(index); + }, + dot: /*#__PURE__*/_react["default"].createElement(_icons.PlusCircleOutlined, { + style: { + fontSize: '16px' + } + }), + color: "blue" + }, this.getText(task), task.link && this.state.tasks[index] && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + onClick: function onClick() { + return _this3.visitLink(task.link); + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MedicineBoxOutlined, { + style: { + fontSize: '16px' + } + }), ' ', task.action)); + } + + if (task.priority === 10) { + return /*#__PURE__*/_react["default"].createElement(_antd.Timeline.Item, { + onMouseEnter: function onMouseEnter() { + return _this3.handleTaskHover(index); + }, + dot: /*#__PURE__*/_react["default"].createElement(_icons.PauseCircleOutlined, { + style: { + fontSize: '16px' + } + }), + color: "green" + }, this.getText(task), task.link && this.state.tasks[index] && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + onClick: function onClick() { + return _this3.visitLink(task.link); + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MedicineBoxOutlined, { + style: { + fontSize: '16px' + } + }), ' ', task.action)); + } + } + }, { + key: "getText", + value: function getText(task) { + if (!task.details) { + return /*#__PURE__*/_react["default"].createElement(Paragraph, { + ellipsis: { + rows: 1, + expandable: true + } + }, task.text); + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Popover, { + content: task.details + }, /*#__PURE__*/_react["default"].createElement(Paragraph, { + ellipsis: { + rows: 1, + expandable: true + } + }, task.text)); + } + }, { + key: "showAllTasks", + value: function showAllTasks() { + this.setState({ + showAll: true + }); + } + }, { + key: "hideAllTasks", + value: function hideAllTasks() { + this.setState({ + showAll: false + }); + } + }]); + + return TaskList; +}(_react["default"].Component); + +var _default = TaskList; +exports["default"] = _default; + +},{"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],81:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var DEFAULT_SIZE = 24; + +exports.default = function (_ref) { + var _ref$fill = _ref.fill, + fill = _ref$fill === undefined ? 'currentColor' : _ref$fill, + _ref$width = _ref.width, + width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width, + _ref$height = _ref.height, + height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height, + _ref$style = _ref.style, + style = _ref$style === undefined ? {} : _ref$style, + props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']); + + return _react2.default.createElement( + 'svg', + _extends({ + viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE, + style: _extends({ fill: fill, width: width, height: height }, style) + }, props), + _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' }) + ); +}; +},{"react":"react"}],82:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var DEFAULT_SIZE = 24; + +exports.default = function (_ref) { + var _ref$fill = _ref.fill, + fill = _ref$fill === undefined ? 'currentColor' : _ref$fill, + _ref$width = _ref.width, + width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width, + _ref$height = _ref.height, + height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height, + _ref$style = _ref.style, + style = _ref$style === undefined ? {} : _ref$style, + props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']); + + return _react2.default.createElement( + 'svg', + _extends({ + viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE, + style: _extends({ fill: fill, width: width, height: height }, style) + }, props), + _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' }) + ); +}; +},{"react":"react"}],83:[function(require,module,exports){ +module.exports = require('./lib/axios'); +},{"./lib/axios":85}],84:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var cookies = require('./../helpers/cookies'); +var buildURL = require('./../helpers/buildURL'); +var buildFullPath = require('../core/buildFullPath'); +var parseHeaders = require('./../helpers/parseHeaders'); +var isURLSameOrigin = require('./../helpers/isURLSameOrigin'); +var createError = require('../core/createError'); + +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + if ( + (utils.isBlob(requestData) || utils.isFile(requestData)) && + requestData.type + ) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = unescape(encodeURIComponent(config.auth.password)) || ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (!requestData) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); +}; + +},{"../core/buildFullPath":91,"../core/createError":92,"./../core/settle":96,"./../helpers/buildURL":100,"./../helpers/cookies":102,"./../helpers/isURLSameOrigin":104,"./../helpers/parseHeaders":106,"./../utils":108}],85:[function(require,module,exports){ +'use strict'; + +var utils = require('./utils'); +var bind = require('./helpers/bind'); +var Axios = require('./core/Axios'); +var mergeConfig = require('./core/mergeConfig'); +var defaults = require('./defaults'); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; +} + +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Factory for creating new instances +axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); +}; + +// Expose Cancel & CancelToken +axios.Cancel = require('./cancel/Cancel'); +axios.CancelToken = require('./cancel/CancelToken'); +axios.isCancel = require('./cancel/isCancel'); + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = require('./helpers/spread'); + +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; + +},{"./cancel/Cancel":86,"./cancel/CancelToken":87,"./cancel/isCancel":88,"./core/Axios":89,"./core/mergeConfig":95,"./defaults":98,"./helpers/bind":99,"./helpers/spread":107,"./utils":108}],86:[function(require,module,exports){ +'use strict'; + +/** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ +function Cancel(message) { + this.message = message; +} + +Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); +}; + +Cancel.prototype.__CANCEL__ = true; + +module.exports = Cancel; + +},{}],87:[function(require,module,exports){ +'use strict'; + +var Cancel = require('./Cancel'); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); +} + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } +}; + +/** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; + +module.exports = CancelToken; + +},{"./Cancel":86}],88:[function(require,module,exports){ +'use strict'; + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; + +},{}],89:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); +var buildURL = require('../helpers/buildURL'); +var InterceptorManager = require('./InterceptorManager'); +var dispatchRequest = require('./dispatchRequest'); +var mergeConfig = require('./mergeConfig'); + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; +} + +/** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ +Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; +}; + +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: data + })); + }; +}); + +module.exports = Axios; + +},{"../helpers/buildURL":100,"./../utils":108,"./InterceptorManager":90,"./dispatchRequest":93,"./mergeConfig":95}],90:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +function InterceptorManager() { + this.handlers = []; +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; +}; + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; + +module.exports = InterceptorManager; + +},{"./../utils":108}],91:[function(require,module,exports){ +'use strict'; + +var isAbsoluteURL = require('../helpers/isAbsoluteURL'); +var combineURLs = require('../helpers/combineURLs'); + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; + +},{"../helpers/combineURLs":101,"../helpers/isAbsoluteURL":103}],92:[function(require,module,exports){ +'use strict'; + +var enhanceError = require('./enhanceError'); + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ +module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); +}; + +},{"./enhanceError":94}],93:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); +var transformData = require('./transformData'); +var isCancel = require('../cancel/isCancel'); +var defaults = require('../defaults'); + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); +}; + +},{"../cancel/isCancel":88,"../defaults":98,"./../utils":108,"./transformData":97}],94:[function(require,module,exports){ +'use strict'; + +/** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ +module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; +}; + +},{}],95:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; + var defaultToConfig2Keys = [ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', + 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' + ]; + var directMergeKeys = ['validateStatus']; + + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + } + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } + }); + + utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + utils.forEach(directMergeKeys, function merge(prop) { + if (prop in config2) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys) + .concat(directMergeKeys); + + var otherKeys = Object + .keys(config1) + .concat(Object.keys(config2)) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, mergeDeepProperties); + + return config; +}; + +},{"../utils":108}],96:[function(require,module,exports){ +'use strict'; + +var createError = require('./createError'); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } +}; + +},{"./createError":92}],97:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; +}; + +},{"./../utils":108}],98:[function(require,module,exports){ +(function (process){ +'use strict'; + +var utils = require('./utils'); +var normalizeHeaderName = require('./helpers/normalizeHeaderName'); + +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; + +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} + +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = require('./adapters/xhr'); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = require('./adapters/http'); + } + return adapter; +} + +var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } +}; + +defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +module.exports = defaults; + +}).call(this,require('_process')) + +},{"./adapters/http":84,"./adapters/xhr":84,"./helpers/normalizeHeaderName":105,"./utils":108,"_process":1}],99:[function(require,module,exports){ +'use strict'; + +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; + +},{}],100:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +}; + +},{"./../utils":108}],101:[function(require,module,exports){ +'use strict'; + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +}; + +},{}],102:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() +); + +},{"./../utils":108}],103:[function(require,module,exports){ +'use strict'; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); +}; + +},{}],104:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() +); + +},{"./../utils":108}],105:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); + +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; + +},{"../utils":108}],106:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]; + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; +}; + +},{"./../utils":108}],107:[function(require,module,exports){ +'use strict'; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; + +},{}],108:[function(require,module,exports){ +'use strict'; + +var bind = require('./helpers/bind'); + +/*global toString:true*/ + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return toString.call(val) === '[object Array]'; +} + +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; +} + +/** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); +} + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} + +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; +} + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && typeof val === 'object'; +} + +/** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ +function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false; + } + + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; +} + +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +function isDate(val) { + return toString.call(val) === '[object Date]'; +} + +/** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +function isFile(val) { + return toString.call(val) === '[object File]'; +} + +/** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +function isBlob(val) { + return toString.call(val) === '[object Blob]'; +} + +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} + +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; +} + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); +} + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); +} + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } +} + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; +} + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM +}; + +},{"./helpers/bind":99}],109:[function(require,module,exports){ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")) + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod) + else // Plain browser env + mod(CodeMirror) +})(function(CodeMirror) { + "use strict" + + CodeMirror.defineOption("autoRefresh", false, function(cm, val) { + if (cm.state.autoRefresh) { + stopListening(cm, cm.state.autoRefresh) + cm.state.autoRefresh = null + } + if (val && cm.display.wrapper.offsetHeight == 0) + startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250}) + }) + + function startListening(cm, state) { + function check() { + if (cm.display.wrapper.offsetHeight) { + stopListening(cm, state) + if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight) + cm.refresh() + } else { + state.timeout = setTimeout(check, state.delay) + } + } + state.timeout = setTimeout(check, state.delay) + state.hurry = function() { + clearTimeout(state.timeout) + state.timeout = setTimeout(check, 50) + } + CodeMirror.on(window, "mouseup", state.hurry) + CodeMirror.on(window, "keyup", state.hurry) + } + + function stopListening(_cm, state) { + clearTimeout(state.timeout) + CodeMirror.off(window, "mouseup", state.hurry) + CodeMirror.off(window, "keyup", state.hurry) + } +}); + +},{"../../lib/codemirror":111}],110:[function(require,module,exports){ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { + var defaults = { + pairs: "()[]{}''\"\"", + closeBefore: ")]}'\":;>", + triples: "", + explode: "[]{}" + }; + + var Pos = CodeMirror.Pos; + + CodeMirror.defineOption("autoCloseBrackets", false, function(cm, val, old) { + if (old && old != CodeMirror.Init) { + cm.removeKeyMap(keyMap); + cm.state.closeBrackets = null; + } + if (val) { + ensureBound(getOption(val, "pairs")) + cm.state.closeBrackets = val; + cm.addKeyMap(keyMap); + } + }); + + function getOption(conf, name) { + if (name == "pairs" && typeof conf == "string") return conf; + if (typeof conf == "object" && conf[name] != null) return conf[name]; + return defaults[name]; + } + + var keyMap = {Backspace: handleBackspace, Enter: handleEnter}; + function ensureBound(chars) { + for (var i = 0; i < chars.length; i++) { + var ch = chars.charAt(i), key = "'" + ch + "'" + if (!keyMap[key]) keyMap[key] = handler(ch) + } + } + ensureBound(defaults.pairs + "`") + + function handler(ch) { + return function(cm) { return handleChar(cm, ch); }; + } + + function getConfig(cm) { + var deflt = cm.state.closeBrackets; + if (!deflt || deflt.override) return deflt; + var mode = cm.getModeAt(cm.getCursor()); + return mode.closeBrackets || deflt; + } + + function handleBackspace(cm) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || pairs.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + for (var i = ranges.length - 1; i >= 0; i--) { + var cur = ranges[i].head; + cm.replaceRange("", Pos(cur.line, cur.ch - 1), Pos(cur.line, cur.ch + 1), "+delete"); + } + } + + function handleEnter(cm) { + var conf = getConfig(cm); + var explode = conf && getOption(conf, "explode"); + if (!explode || cm.getOption("disableInput")) return CodeMirror.Pass; + + var ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) return CodeMirror.Pass; + var around = charsAround(cm, ranges[i].head); + if (!around || explode.indexOf(around) % 2 != 0) return CodeMirror.Pass; + } + cm.operation(function() { + var linesep = cm.lineSeparator() || "\n"; + cm.replaceSelection(linesep + linesep, null); + cm.execCommand("goCharLeft"); + ranges = cm.listSelections(); + for (var i = 0; i < ranges.length; i++) { + var line = ranges[i].head.line; + cm.indentLine(line, null, true); + cm.indentLine(line + 1, null, true); + } + }); + } + + function contractSelection(sel) { + var inverted = CodeMirror.cmpPos(sel.anchor, sel.head) > 0; + return {anchor: new Pos(sel.anchor.line, sel.anchor.ch + (inverted ? -1 : 1)), + head: new Pos(sel.head.line, sel.head.ch + (inverted ? 1 : -1))}; + } + + function handleChar(cm, ch) { + var conf = getConfig(cm); + if (!conf || cm.getOption("disableInput")) return CodeMirror.Pass; + + var pairs = getOption(conf, "pairs"); + var pos = pairs.indexOf(ch); + if (pos == -1) return CodeMirror.Pass; + + var closeBefore = getOption(conf,"closeBefore"); + + var triples = getOption(conf, "triples"); + + var identical = pairs.charAt(pos + 1) == ch; + var ranges = cm.listSelections(); + var opening = pos % 2 == 0; + + var type; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i], cur = range.head, curType; + var next = cm.getRange(cur, Pos(cur.line, cur.ch + 1)); + if (opening && !range.empty()) { + curType = "surround"; + } else if ((identical || !opening) && next == ch) { + if (identical && stringStartsAfter(cm, cur)) + curType = "both"; + else if (triples.indexOf(ch) >= 0 && cm.getRange(cur, Pos(cur.line, cur.ch + 3)) == ch + ch + ch) + curType = "skipThree"; + else + curType = "skip"; + } else if (identical && cur.ch > 1 && triples.indexOf(ch) >= 0 && + cm.getRange(Pos(cur.line, cur.ch - 2), cur) == ch + ch) { + if (cur.ch > 2 && /\bstring/.test(cm.getTokenTypeAt(Pos(cur.line, cur.ch - 2)))) return CodeMirror.Pass; + curType = "addFour"; + } else if (identical) { + var prev = cur.ch == 0 ? " " : cm.getRange(Pos(cur.line, cur.ch - 1), cur) + if (!CodeMirror.isWordChar(next) && prev != ch && !CodeMirror.isWordChar(prev)) curType = "both"; + else return CodeMirror.Pass; + } else if (opening && (next.length === 0 || /\s/.test(next) || closeBefore.indexOf(next) > -1)) { + curType = "both"; + } else { + return CodeMirror.Pass; + } + if (!type) type = curType; + else if (type != curType) return CodeMirror.Pass; + } + + var left = pos % 2 ? pairs.charAt(pos - 1) : ch; + var right = pos % 2 ? ch : pairs.charAt(pos + 1); + cm.operation(function() { + if (type == "skip") { + cm.execCommand("goCharRight"); + } else if (type == "skipThree") { + for (var i = 0; i < 3; i++) + cm.execCommand("goCharRight"); + } else if (type == "surround") { + var sels = cm.getSelections(); + for (var i = 0; i < sels.length; i++) + sels[i] = left + sels[i] + right; + cm.replaceSelections(sels, "around"); + sels = cm.listSelections().slice(); + for (var i = 0; i < sels.length; i++) + sels[i] = contractSelection(sels[i]); + cm.setSelections(sels); + } else if (type == "both") { + cm.replaceSelection(left + right, null); + cm.triggerElectric(left + right); + cm.execCommand("goCharLeft"); + } else if (type == "addFour") { + cm.replaceSelection(left + left + left + left, "before"); + cm.execCommand("goCharRight"); + } + }); + } + + function charsAround(cm, pos) { + var str = cm.getRange(Pos(pos.line, pos.ch - 1), + Pos(pos.line, pos.ch + 1)); + return str.length == 2 ? str : null; + } + + function stringStartsAfter(cm, pos) { + var token = cm.getTokenAt(Pos(pos.line, pos.ch + 1)) + return /\bstring/.test(token.type) && token.start == pos.ch && + (pos.ch == 0 || !/\bstring/.test(cm.getTokenTypeAt(pos))) + } +}); + +},{"../../lib/codemirror":111}],111:[function(require,module,exports){ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +// This is CodeMirror (https://codemirror.net), a code editor +// implemented in JavaScript on top of the browser's DOM. +// +// You can find some technical background for some of the code below +// at http://marijnhaverbeke.nl/blog/#cm-internals . + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.CodeMirror = factory()); +}(this, (function () { 'use strict'; + + // Kludges for bugs and behavior differences that can't be feature + // detected are enabled based on userAgent etc sniffing. + var userAgent = navigator.userAgent; + var platform = navigator.platform; + + var gecko = /gecko\/\d/i.test(userAgent); + var ie_upto10 = /MSIE \d/.test(userAgent); + var ie_11up = /Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(userAgent); + var edge = /Edge\/(\d+)/.exec(userAgent); + var ie = ie_upto10 || ie_11up || edge; + var ie_version = ie && (ie_upto10 ? document.documentMode || 6 : +(edge || ie_11up)[1]); + var webkit = !edge && /WebKit\//.test(userAgent); + var qtwebkit = webkit && /Qt\/\d+\.\d+/.test(userAgent); + var chrome = !edge && /Chrome\//.test(userAgent); + var presto = /Opera\//.test(userAgent); + var safari = /Apple Computer/.test(navigator.vendor); + var mac_geMountainLion = /Mac OS X 1\d\D([8-9]|\d\d)\D/.test(userAgent); + var phantom = /PhantomJS/.test(userAgent); + + var ios = !edge && /AppleWebKit/.test(userAgent) && /Mobile\/\w+/.test(userAgent); + var android = /Android/.test(userAgent); + // This is woefully incomplete. Suggestions for alternative methods welcome. + var mobile = ios || android || /webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent); + var mac = ios || /Mac/.test(platform); + var chromeOS = /\bCrOS\b/.test(userAgent); + var windows = /win/i.test(platform); + + var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/); + if (presto_version) { presto_version = Number(presto_version[1]); } + if (presto_version && presto_version >= 15) { presto = false; webkit = true; } + // Some browsers use the wrong event properties to signal cmd/ctrl on OS X + var flipCtrlCmd = mac && (qtwebkit || presto && (presto_version == null || presto_version < 12.11)); + var captureRightClick = gecko || (ie && ie_version >= 9); + + function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)\\s*") } + + var rmClass = function(node, cls) { + var current = node.className; + var match = classTest(cls).exec(current); + if (match) { + var after = current.slice(match.index + match[0].length); + node.className = current.slice(0, match.index) + (after ? match[1] + after : ""); + } + }; + + function removeChildren(e) { + for (var count = e.childNodes.length; count > 0; --count) + { e.removeChild(e.firstChild); } + return e + } + + function removeChildrenAndAdd(parent, e) { + return removeChildren(parent).appendChild(e) + } + + function elt(tag, content, className, style) { + var e = document.createElement(tag); + if (className) { e.className = className; } + if (style) { e.style.cssText = style; } + if (typeof content == "string") { e.appendChild(document.createTextNode(content)); } + else if (content) { for (var i = 0; i < content.length; ++i) { e.appendChild(content[i]); } } + return e + } + // wrapper for elt, which removes the elt from the accessibility tree + function eltP(tag, content, className, style) { + var e = elt(tag, content, className, style); + e.setAttribute("role", "presentation"); + return e + } + + var range; + if (document.createRange) { range = function(node, start, end, endNode) { + var r = document.createRange(); + r.setEnd(endNode || node, end); + r.setStart(node, start); + return r + }; } + else { range = function(node, start, end) { + var r = document.body.createTextRange(); + try { r.moveToElementText(node.parentNode); } + catch(e) { return r } + r.collapse(true); + r.moveEnd("character", end); + r.moveStart("character", start); + return r + }; } + + function contains(parent, child) { + if (child.nodeType == 3) // Android browser always returns false when child is a textnode + { child = child.parentNode; } + if (parent.contains) + { return parent.contains(child) } + do { + if (child.nodeType == 11) { child = child.host; } + if (child == parent) { return true } + } while (child = child.parentNode) + } + + function activeElt() { + // IE and Edge may throw an "Unspecified Error" when accessing document.activeElement. + // IE < 10 will throw when accessed while the page is loading or in an iframe. + // IE > 9 and Edge will throw when accessed in an iframe if document.body is unavailable. + var activeElement; + try { + activeElement = document.activeElement; + } catch(e) { + activeElement = document.body || null; + } + while (activeElement && activeElement.shadowRoot && activeElement.shadowRoot.activeElement) + { activeElement = activeElement.shadowRoot.activeElement; } + return activeElement + } + + function addClass(node, cls) { + var current = node.className; + if (!classTest(cls).test(current)) { node.className += (current ? " " : "") + cls; } + } + function joinClasses(a, b) { + var as = a.split(" "); + for (var i = 0; i < as.length; i++) + { if (as[i] && !classTest(as[i]).test(b)) { b += " " + as[i]; } } + return b + } + + var selectInput = function(node) { node.select(); }; + if (ios) // Mobile Safari apparently has a bug where select() is broken. + { selectInput = function(node) { node.selectionStart = 0; node.selectionEnd = node.value.length; }; } + else if (ie) // Suppress mysterious IE10 errors + { selectInput = function(node) { try { node.select(); } catch(_e) {} }; } + + function bind(f) { + var args = Array.prototype.slice.call(arguments, 1); + return function(){return f.apply(null, args)} + } + + function copyObj(obj, target, overwrite) { + if (!target) { target = {}; } + for (var prop in obj) + { if (obj.hasOwnProperty(prop) && (overwrite !== false || !target.hasOwnProperty(prop))) + { target[prop] = obj[prop]; } } + return target + } + + // Counts the column offset in a string, taking tabs into account. + // Used mostly to find indentation. + function countColumn(string, end, tabSize, startIndex, startValue) { + if (end == null) { + end = string.search(/[^\s\u00a0]/); + if (end == -1) { end = string.length; } + } + for (var i = startIndex || 0, n = startValue || 0;;) { + var nextTab = string.indexOf("\t", i); + if (nextTab < 0 || nextTab >= end) + { return n + (end - i) } + n += nextTab - i; + n += tabSize - (n % tabSize); + i = nextTab + 1; + } + } + + var Delayed = function() { + this.id = null; + this.f = null; + this.time = 0; + this.handler = bind(this.onTimeout, this); + }; + Delayed.prototype.onTimeout = function (self) { + self.id = 0; + if (self.time <= +new Date) { + self.f(); + } else { + setTimeout(self.handler, self.time - +new Date); + } + }; + Delayed.prototype.set = function (ms, f) { + this.f = f; + var time = +new Date + ms; + if (!this.id || time < this.time) { + clearTimeout(this.id); + this.id = setTimeout(this.handler, ms); + this.time = time; + } + }; + + function indexOf(array, elt) { + for (var i = 0; i < array.length; ++i) + { if (array[i] == elt) { return i } } + return -1 + } + + // Number of pixels added to scroller and sizer to hide scrollbar + var scrollerGap = 50; + + // Returned or thrown by various protocols to signal 'I'm not + // handling this'. + var Pass = {toString: function(){return "CodeMirror.Pass"}}; + + // Reused option objects for setSelection & friends + var sel_dontScroll = {scroll: false}, sel_mouse = {origin: "*mouse"}, sel_move = {origin: "+move"}; + + // The inverse of countColumn -- find the offset that corresponds to + // a particular column. + function findColumn(string, goal, tabSize) { + for (var pos = 0, col = 0;;) { + var nextTab = string.indexOf("\t", pos); + if (nextTab == -1) { nextTab = string.length; } + var skipped = nextTab - pos; + if (nextTab == string.length || col + skipped >= goal) + { return pos + Math.min(skipped, goal - col) } + col += nextTab - pos; + col += tabSize - (col % tabSize); + pos = nextTab + 1; + if (col >= goal) { return pos } + } + } + + var spaceStrs = [""]; + function spaceStr(n) { + while (spaceStrs.length <= n) + { spaceStrs.push(lst(spaceStrs) + " "); } + return spaceStrs[n] + } + + function lst(arr) { return arr[arr.length-1] } + + function map(array, f) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = f(array[i], i); } + return out + } + + function insertSorted(array, value, score) { + var pos = 0, priority = score(value); + while (pos < array.length && score(array[pos]) <= priority) { pos++; } + array.splice(pos, 0, value); + } + + function nothing() {} + + function createObj(base, props) { + var inst; + if (Object.create) { + inst = Object.create(base); + } else { + nothing.prototype = base; + inst = new nothing(); + } + if (props) { copyObj(props, inst); } + return inst + } + + var nonASCIISingleCaseWordChar = /[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/; + function isWordCharBasic(ch) { + return /\w/.test(ch) || ch > "\x80" && + (ch.toUpperCase() != ch.toLowerCase() || nonASCIISingleCaseWordChar.test(ch)) + } + function isWordChar(ch, helper) { + if (!helper) { return isWordCharBasic(ch) } + if (helper.source.indexOf("\\w") > -1 && isWordCharBasic(ch)) { return true } + return helper.test(ch) + } + + function isEmpty(obj) { + for (var n in obj) { if (obj.hasOwnProperty(n) && obj[n]) { return false } } + return true + } + + // Extending unicode characters. A series of a non-extending char + + // any number of extending chars is treated as a single unit as far + // as editing and measuring is concerned. This is not fully correct, + // since some scripts/fonts/browsers also treat other configurations + // of code points as a group. + var extendingChars = /[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/; + function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendingChars.test(ch) } + + // Returns a number from the range [`0`; `str.length`] unless `pos` is outside that range. + function skipExtendingChars(str, pos, dir) { + while ((dir < 0 ? pos > 0 : pos < str.length) && isExtendingChar(str.charAt(pos))) { pos += dir; } + return pos + } + + // Returns the value from the range [`from`; `to`] that satisfies + // `pred` and is closest to `from`. Assumes that at least `to` + // satisfies `pred`. Supports `from` being greater than `to`. + function findFirst(pred, from, to) { + // At any point we are certain `to` satisfies `pred`, don't know + // whether `from` does. + var dir = from > to ? -1 : 1; + for (;;) { + if (from == to) { return from } + var midF = (from + to) / 2, mid = dir < 0 ? Math.ceil(midF) : Math.floor(midF); + if (mid == from) { return pred(mid) ? from : to } + if (pred(mid)) { to = mid; } + else { from = mid + dir; } + } + } + + // BIDI HELPERS + + function iterateBidiSections(order, from, to, f) { + if (!order) { return f(from, to, "ltr", 0) } + var found = false; + for (var i = 0; i < order.length; ++i) { + var part = order[i]; + if (part.from < to && part.to > from || from == to && part.to == from) { + f(Math.max(part.from, from), Math.min(part.to, to), part.level == 1 ? "rtl" : "ltr", i); + found = true; + } + } + if (!found) { f(from, to, "ltr"); } + } + + var bidiOther = null; + function getBidiPartAt(order, ch, sticky) { + var found; + bidiOther = null; + for (var i = 0; i < order.length; ++i) { + var cur = order[i]; + if (cur.from < ch && cur.to > ch) { return i } + if (cur.to == ch) { + if (cur.from != cur.to && sticky == "before") { found = i; } + else { bidiOther = i; } + } + if (cur.from == ch) { + if (cur.from != cur.to && sticky != "before") { found = i; } + else { bidiOther = i; } + } + } + return found != null ? found : bidiOther + } + + // Bidirectional ordering algorithm + // See http://unicode.org/reports/tr9/tr9-13.html for the algorithm + // that this (partially) implements. + + // One-char codes used for character types: + // L (L): Left-to-Right + // R (R): Right-to-Left + // r (AL): Right-to-Left Arabic + // 1 (EN): European Number + // + (ES): European Number Separator + // % (ET): European Number Terminator + // n (AN): Arabic Number + // , (CS): Common Number Separator + // m (NSM): Non-Spacing Mark + // b (BN): Boundary Neutral + // s (B): Paragraph Separator + // t (S): Segment Separator + // w (WS): Whitespace + // N (ON): Other Neutrals + + // Returns null if characters are ordered as they appear + // (left-to-right), or an array of sections ({from, to, level} + // objects) in the order in which they occur visually. + var bidiOrdering = (function() { + // Character types for codepoints 0 to 0xff + var lowTypes = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN"; + // Character types for codepoints 0x600 to 0x6f9 + var arabicTypes = "nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111"; + function charType(code) { + if (code <= 0xf7) { return lowTypes.charAt(code) } + else if (0x590 <= code && code <= 0x5f4) { return "R" } + else if (0x600 <= code && code <= 0x6f9) { return arabicTypes.charAt(code - 0x600) } + else if (0x6ee <= code && code <= 0x8ac) { return "r" } + else if (0x2000 <= code && code <= 0x200b) { return "w" } + else if (code == 0x200c) { return "b" } + else { return "L" } + } + + var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/; + var isNeutral = /[stwN]/, isStrong = /[LRr]/, countsAsLeft = /[Lb1n]/, countsAsNum = /[1n]/; + + function BidiSpan(level, from, to) { + this.level = level; + this.from = from; this.to = to; + } + + return function(str, direction) { + var outerType = direction == "ltr" ? "L" : "R"; + + if (str.length == 0 || direction == "ltr" && !bidiRE.test(str)) { return false } + var len = str.length, types = []; + for (var i = 0; i < len; ++i) + { types.push(charType(str.charCodeAt(i))); } + + // W1. Examine each non-spacing mark (NSM) in the level run, and + // change the type of the NSM to the type of the previous + // character. If the NSM is at the start of the level run, it will + // get the type of sor. + for (var i$1 = 0, prev = outerType; i$1 < len; ++i$1) { + var type = types[i$1]; + if (type == "m") { types[i$1] = prev; } + else { prev = type; } + } + + // W2. Search backwards from each instance of a European number + // until the first strong type (R, L, AL, or sor) is found. If an + // AL is found, change the type of the European number to Arabic + // number. + // W3. Change all ALs to R. + for (var i$2 = 0, cur = outerType; i$2 < len; ++i$2) { + var type$1 = types[i$2]; + if (type$1 == "1" && cur == "r") { types[i$2] = "n"; } + else if (isStrong.test(type$1)) { cur = type$1; if (type$1 == "r") { types[i$2] = "R"; } } + } + + // W4. A single European separator between two European numbers + // changes to a European number. A single common separator between + // two numbers of the same type changes to that type. + for (var i$3 = 1, prev$1 = types[0]; i$3 < len - 1; ++i$3) { + var type$2 = types[i$3]; + if (type$2 == "+" && prev$1 == "1" && types[i$3+1] == "1") { types[i$3] = "1"; } + else if (type$2 == "," && prev$1 == types[i$3+1] && + (prev$1 == "1" || prev$1 == "n")) { types[i$3] = prev$1; } + prev$1 = type$2; + } + + // W5. A sequence of European terminators adjacent to European + // numbers changes to all European numbers. + // W6. Otherwise, separators and terminators change to Other + // Neutral. + for (var i$4 = 0; i$4 < len; ++i$4) { + var type$3 = types[i$4]; + if (type$3 == ",") { types[i$4] = "N"; } + else if (type$3 == "%") { + var end = (void 0); + for (end = i$4 + 1; end < len && types[end] == "%"; ++end) {} + var replace = (i$4 && types[i$4-1] == "!") || (end < len && types[end] == "1") ? "1" : "N"; + for (var j = i$4; j < end; ++j) { types[j] = replace; } + i$4 = end - 1; + } + } + + // W7. Search backwards from each instance of a European number + // until the first strong type (R, L, or sor) is found. If an L is + // found, then change the type of the European number to L. + for (var i$5 = 0, cur$1 = outerType; i$5 < len; ++i$5) { + var type$4 = types[i$5]; + if (cur$1 == "L" && type$4 == "1") { types[i$5] = "L"; } + else if (isStrong.test(type$4)) { cur$1 = type$4; } + } + + // N1. A sequence of neutrals takes the direction of the + // surrounding strong text if the text on both sides has the same + // direction. European and Arabic numbers act as if they were R in + // terms of their influence on neutrals. Start-of-level-run (sor) + // and end-of-level-run (eor) are used at level run boundaries. + // N2. Any remaining neutrals take the embedding direction. + for (var i$6 = 0; i$6 < len; ++i$6) { + if (isNeutral.test(types[i$6])) { + var end$1 = (void 0); + for (end$1 = i$6 + 1; end$1 < len && isNeutral.test(types[end$1]); ++end$1) {} + var before = (i$6 ? types[i$6-1] : outerType) == "L"; + var after = (end$1 < len ? types[end$1] : outerType) == "L"; + var replace$1 = before == after ? (before ? "L" : "R") : outerType; + for (var j$1 = i$6; j$1 < end$1; ++j$1) { types[j$1] = replace$1; } + i$6 = end$1 - 1; + } + } + + // Here we depart from the documented algorithm, in order to avoid + // building up an actual levels array. Since there are only three + // levels (0, 1, 2) in an implementation that doesn't take + // explicit embedding into account, we can build up the order on + // the fly, without following the level-based algorithm. + var order = [], m; + for (var i$7 = 0; i$7 < len;) { + if (countsAsLeft.test(types[i$7])) { + var start = i$7; + for (++i$7; i$7 < len && countsAsLeft.test(types[i$7]); ++i$7) {} + order.push(new BidiSpan(0, start, i$7)); + } else { + var pos = i$7, at = order.length, isRTL = direction == "rtl" ? 1 : 0; + for (++i$7; i$7 < len && types[i$7] != "L"; ++i$7) {} + for (var j$2 = pos; j$2 < i$7;) { + if (countsAsNum.test(types[j$2])) { + if (pos < j$2) { order.splice(at, 0, new BidiSpan(1, pos, j$2)); at += isRTL; } + var nstart = j$2; + for (++j$2; j$2 < i$7 && countsAsNum.test(types[j$2]); ++j$2) {} + order.splice(at, 0, new BidiSpan(2, nstart, j$2)); + at += isRTL; + pos = j$2; + } else { ++j$2; } + } + if (pos < i$7) { order.splice(at, 0, new BidiSpan(1, pos, i$7)); } + } + } + if (direction == "ltr") { + if (order[0].level == 1 && (m = str.match(/^\s+/))) { + order[0].from = m[0].length; + order.unshift(new BidiSpan(0, 0, m[0].length)); + } + if (lst(order).level == 1 && (m = str.match(/\s+$/))) { + lst(order).to -= m[0].length; + order.push(new BidiSpan(0, len - m[0].length, len)); + } + } + + return direction == "rtl" ? order.reverse() : order + } + })(); + + // Get the bidi ordering for the given line (and cache it). Returns + // false for lines that are fully left-to-right, and an array of + // BidiSpan objects otherwise. + function getOrder(line, direction) { + var order = line.order; + if (order == null) { order = line.order = bidiOrdering(line.text, direction); } + return order + } + + // EVENT HANDLING + + // Lightweight event framework. on/off also work on DOM nodes, + // registering native DOM handlers. + + var noHandlers = []; + + var on = function(emitter, type, f) { + if (emitter.addEventListener) { + emitter.addEventListener(type, f, false); + } else if (emitter.attachEvent) { + emitter.attachEvent("on" + type, f); + } else { + var map = emitter._handlers || (emitter._handlers = {}); + map[type] = (map[type] || noHandlers).concat(f); + } + }; + + function getHandlers(emitter, type) { + return emitter._handlers && emitter._handlers[type] || noHandlers + } + + function off(emitter, type, f) { + if (emitter.removeEventListener) { + emitter.removeEventListener(type, f, false); + } else if (emitter.detachEvent) { + emitter.detachEvent("on" + type, f); + } else { + var map = emitter._handlers, arr = map && map[type]; + if (arr) { + var index = indexOf(arr, f); + if (index > -1) + { map[type] = arr.slice(0, index).concat(arr.slice(index + 1)); } + } + } + } + + function signal(emitter, type /*, values...*/) { + var handlers = getHandlers(emitter, type); + if (!handlers.length) { return } + var args = Array.prototype.slice.call(arguments, 2); + for (var i = 0; i < handlers.length; ++i) { handlers[i].apply(null, args); } + } + + // The DOM events that CodeMirror handles can be overridden by + // registering a (non-DOM) handler on the editor for the event name, + // and preventDefault-ing the event in that handler. + function signalDOMEvent(cm, e, override) { + if (typeof e == "string") + { e = {type: e, preventDefault: function() { this.defaultPrevented = true; }}; } + signal(cm, override || e.type, cm, e); + return e_defaultPrevented(e) || e.codemirrorIgnore + } + + function signalCursorActivity(cm) { + var arr = cm._handlers && cm._handlers.cursorActivity; + if (!arr) { return } + var set = cm.curOp.cursorActivityHandlers || (cm.curOp.cursorActivityHandlers = []); + for (var i = 0; i < arr.length; ++i) { if (indexOf(set, arr[i]) == -1) + { set.push(arr[i]); } } + } + + function hasHandler(emitter, type) { + return getHandlers(emitter, type).length > 0 + } + + // Add on and off methods to a constructor's prototype, to make + // registering events on such objects more convenient. + function eventMixin(ctor) { + ctor.prototype.on = function(type, f) {on(this, type, f);}; + ctor.prototype.off = function(type, f) {off(this, type, f);}; + } + + // Due to the fact that we still support jurassic IE versions, some + // compatibility wrappers are needed. + + function e_preventDefault(e) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + function e_stopPropagation(e) { + if (e.stopPropagation) { e.stopPropagation(); } + else { e.cancelBubble = true; } + } + function e_defaultPrevented(e) { + return e.defaultPrevented != null ? e.defaultPrevented : e.returnValue == false + } + function e_stop(e) {e_preventDefault(e); e_stopPropagation(e);} + + function e_target(e) {return e.target || e.srcElement} + function e_button(e) { + var b = e.which; + if (b == null) { + if (e.button & 1) { b = 1; } + else if (e.button & 2) { b = 3; } + else if (e.button & 4) { b = 2; } + } + if (mac && e.ctrlKey && b == 1) { b = 3; } + return b + } + + // Detect drag-and-drop + var dragAndDrop = function() { + // There is *some* kind of drag-and-drop support in IE6-8, but I + // couldn't get it to work yet. + if (ie && ie_version < 9) { return false } + var div = elt('div'); + return "draggable" in div || "dragDrop" in div + }(); + + var zwspSupported; + function zeroWidthElement(measure) { + if (zwspSupported == null) { + var test = elt("span", "\u200b"); + removeChildrenAndAdd(measure, elt("span", [test, document.createTextNode("x")])); + if (measure.firstChild.offsetHeight != 0) + { zwspSupported = test.offsetWidth <= 1 && test.offsetHeight > 2 && !(ie && ie_version < 8); } + } + var node = zwspSupported ? elt("span", "\u200b") : + elt("span", "\u00a0", null, "display: inline-block; width: 1px; margin-right: -1px"); + node.setAttribute("cm-text", ""); + return node + } + + // Feature-detect IE's crummy client rect reporting for bidi text + var badBidiRects; + function hasBadBidiRects(measure) { + if (badBidiRects != null) { return badBidiRects } + var txt = removeChildrenAndAdd(measure, document.createTextNode("A\u062eA")); + var r0 = range(txt, 0, 1).getBoundingClientRect(); + var r1 = range(txt, 1, 2).getBoundingClientRect(); + removeChildren(measure); + if (!r0 || r0.left == r0.right) { return false } // Safari returns null in some cases (#2780) + return badBidiRects = (r1.right - r0.right < 3) + } + + // See if "".split is the broken IE version, if so, provide an + // alternative way to split lines. + var splitLinesAuto = "\n\nb".split(/\n/).length != 3 ? function (string) { + var pos = 0, result = [], l = string.length; + while (pos <= l) { + var nl = string.indexOf("\n", pos); + if (nl == -1) { nl = string.length; } + var line = string.slice(pos, string.charAt(nl - 1) == "\r" ? nl - 1 : nl); + var rt = line.indexOf("\r"); + if (rt != -1) { + result.push(line.slice(0, rt)); + pos += rt + 1; + } else { + result.push(line); + pos = nl + 1; + } + } + return result + } : function (string) { return string.split(/\r\n?|\n/); }; + + var hasSelection = window.getSelection ? function (te) { + try { return te.selectionStart != te.selectionEnd } + catch(e) { return false } + } : function (te) { + var range; + try {range = te.ownerDocument.selection.createRange();} + catch(e) {} + if (!range || range.parentElement() != te) { return false } + return range.compareEndPoints("StartToEnd", range) != 0 + }; + + var hasCopyEvent = (function () { + var e = elt("div"); + if ("oncopy" in e) { return true } + e.setAttribute("oncopy", "return;"); + return typeof e.oncopy == "function" + })(); + + var badZoomedRects = null; + function hasBadZoomedRects(measure) { + if (badZoomedRects != null) { return badZoomedRects } + var node = removeChildrenAndAdd(measure, elt("span", "x")); + var normal = node.getBoundingClientRect(); + var fromRange = range(node, 0, 1).getBoundingClientRect(); + return badZoomedRects = Math.abs(normal.left - fromRange.left) > 1 + } + + // Known modes, by name and by MIME + var modes = {}, mimeModes = {}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + function defineMode(name, mode) { + if (arguments.length > 2) + { mode.dependencies = Array.prototype.slice.call(arguments, 2); } + modes[name] = mode; + } + + function defineMIME(mime, spec) { + mimeModes[mime] = spec; + } + + // Given a MIME type, a {name, ...options} config object, or a name + // string, return a mode config object. + function resolveMode(spec) { + if (typeof spec == "string" && mimeModes.hasOwnProperty(spec)) { + spec = mimeModes[spec]; + } else if (spec && typeof spec.name == "string" && mimeModes.hasOwnProperty(spec.name)) { + var found = mimeModes[spec.name]; + if (typeof found == "string") { found = {name: found}; } + spec = createObj(found, spec); + spec.name = found.name; + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+xml$/.test(spec)) { + return resolveMode("application/xml") + } else if (typeof spec == "string" && /^[\w\-]+\/[\w\-]+\+json$/.test(spec)) { + return resolveMode("application/json") + } + if (typeof spec == "string") { return {name: spec} } + else { return spec || {name: "null"} } + } + + // Given a mode spec (anything that resolveMode accepts), find and + // initialize an actual mode object. + function getMode(options, spec) { + spec = resolveMode(spec); + var mfactory = modes[spec.name]; + if (!mfactory) { return getMode(options, "text/plain") } + var modeObj = mfactory(options, spec); + if (modeExtensions.hasOwnProperty(spec.name)) { + var exts = modeExtensions[spec.name]; + for (var prop in exts) { + if (!exts.hasOwnProperty(prop)) { continue } + if (modeObj.hasOwnProperty(prop)) { modeObj["_" + prop] = modeObj[prop]; } + modeObj[prop] = exts[prop]; + } + } + modeObj.name = spec.name; + if (spec.helperType) { modeObj.helperType = spec.helperType; } + if (spec.modeProps) { for (var prop$1 in spec.modeProps) + { modeObj[prop$1] = spec.modeProps[prop$1]; } } + + return modeObj + } + + // This can be used to attach properties to mode objects from + // outside the actual mode definition. + var modeExtensions = {}; + function extendMode(mode, properties) { + var exts = modeExtensions.hasOwnProperty(mode) ? modeExtensions[mode] : (modeExtensions[mode] = {}); + copyObj(properties, exts); + } + + function copyState(mode, state) { + if (state === true) { return state } + if (mode.copyState) { return mode.copyState(state) } + var nstate = {}; + for (var n in state) { + var val = state[n]; + if (val instanceof Array) { val = val.concat([]); } + nstate[n] = val; + } + return nstate + } + + // Given a mode and a state (for that mode), find the inner mode and + // state at the position that the state refers to. + function innerMode(mode, state) { + var info; + while (mode.innerMode) { + info = mode.innerMode(state); + if (!info || info.mode == mode) { break } + state = info.state; + mode = info.mode; + } + return info || {mode: mode, state: state} + } + + function startState(mode, a1, a2) { + return mode.startState ? mode.startState(a1, a2) : true + } + + // STRING STREAM + + // Fed to the mode parsers, provides helper functions to make + // parsers more succinct. + + var StringStream = function(string, tabSize, lineOracle) { + this.pos = this.start = 0; + this.string = string; + this.tabSize = tabSize || 8; + this.lastColumnPos = this.lastColumnValue = 0; + this.lineStart = 0; + this.lineOracle = lineOracle; + }; + + StringStream.prototype.eol = function () {return this.pos >= this.string.length}; + StringStream.prototype.sol = function () {return this.pos == this.lineStart}; + StringStream.prototype.peek = function () {return this.string.charAt(this.pos) || undefined}; + StringStream.prototype.next = function () { + if (this.pos < this.string.length) + { return this.string.charAt(this.pos++) } + }; + StringStream.prototype.eat = function (match) { + var ch = this.string.charAt(this.pos); + var ok; + if (typeof match == "string") { ok = ch == match; } + else { ok = ch && (match.test ? match.test(ch) : match(ch)); } + if (ok) {++this.pos; return ch} + }; + StringStream.prototype.eatWhile = function (match) { + var start = this.pos; + while (this.eat(match)){} + return this.pos > start + }; + StringStream.prototype.eatSpace = function () { + var start = this.pos; + while (/[\s\u00a0]/.test(this.string.charAt(this.pos))) { ++this.pos; } + return this.pos > start + }; + StringStream.prototype.skipToEnd = function () {this.pos = this.string.length;}; + StringStream.prototype.skipTo = function (ch) { + var found = this.string.indexOf(ch, this.pos); + if (found > -1) {this.pos = found; return true} + }; + StringStream.prototype.backUp = function (n) {this.pos -= n;}; + StringStream.prototype.column = function () { + if (this.lastColumnPos < this.start) { + this.lastColumnValue = countColumn(this.string, this.start, this.tabSize, this.lastColumnPos, this.lastColumnValue); + this.lastColumnPos = this.start; + } + return this.lastColumnValue - (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.indentation = function () { + return countColumn(this.string, null, this.tabSize) - + (this.lineStart ? countColumn(this.string, this.lineStart, this.tabSize) : 0) + }; + StringStream.prototype.match = function (pattern, consume, caseInsensitive) { + if (typeof pattern == "string") { + var cased = function (str) { return caseInsensitive ? str.toLowerCase() : str; }; + var substr = this.string.substr(this.pos, pattern.length); + if (cased(substr) == cased(pattern)) { + if (consume !== false) { this.pos += pattern.length; } + return true + } + } else { + var match = this.string.slice(this.pos).match(pattern); + if (match && match.index > 0) { return null } + if (match && consume !== false) { this.pos += match[0].length; } + return match + } + }; + StringStream.prototype.current = function (){return this.string.slice(this.start, this.pos)}; + StringStream.prototype.hideFirstChars = function (n, inner) { + this.lineStart += n; + try { return inner() } + finally { this.lineStart -= n; } + }; + StringStream.prototype.lookAhead = function (n) { + var oracle = this.lineOracle; + return oracle && oracle.lookAhead(n) + }; + StringStream.prototype.baseToken = function () { + var oracle = this.lineOracle; + return oracle && oracle.baseToken(this.pos) + }; + + // Find the line object corresponding to the given line number. + function getLine(doc, n) { + n -= doc.first; + if (n < 0 || n >= doc.size) { throw new Error("There is no line " + (n + doc.first) + " in the document.") } + var chunk = doc; + while (!chunk.lines) { + for (var i = 0;; ++i) { + var child = chunk.children[i], sz = child.chunkSize(); + if (n < sz) { chunk = child; break } + n -= sz; + } + } + return chunk.lines[n] + } + + // Get the part of a document between two positions, as an array of + // strings. + function getBetween(doc, start, end) { + var out = [], n = start.line; + doc.iter(start.line, end.line + 1, function (line) { + var text = line.text; + if (n == end.line) { text = text.slice(0, end.ch); } + if (n == start.line) { text = text.slice(start.ch); } + out.push(text); + ++n; + }); + return out + } + // Get the lines between from and to, as array of strings. + function getLines(doc, from, to) { + var out = []; + doc.iter(from, to, function (line) { out.push(line.text); }); // iter aborts when callback returns truthy value + return out + } + + // Update the height of a line, propagating the height change + // upwards to parent nodes. + function updateLineHeight(line, height) { + var diff = height - line.height; + if (diff) { for (var n = line; n; n = n.parent) { n.height += diff; } } + } + + // Given a line object, find its line number by walking up through + // its parent links. + function lineNo(line) { + if (line.parent == null) { return null } + var cur = line.parent, no = indexOf(cur.lines, line); + for (var chunk = cur.parent; chunk; cur = chunk, chunk = chunk.parent) { + for (var i = 0;; ++i) { + if (chunk.children[i] == cur) { break } + no += chunk.children[i].chunkSize(); + } + } + return no + cur.first + } + + // Find the line at the given vertical position, using the height + // information in the document tree. + function lineAtHeight(chunk, h) { + var n = chunk.first; + outer: do { + for (var i$1 = 0; i$1 < chunk.children.length; ++i$1) { + var child = chunk.children[i$1], ch = child.height; + if (h < ch) { chunk = child; continue outer } + h -= ch; + n += child.chunkSize(); + } + return n + } while (!chunk.lines) + var i = 0; + for (; i < chunk.lines.length; ++i) { + var line = chunk.lines[i], lh = line.height; + if (h < lh) { break } + h -= lh; + } + return n + i + } + + function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size} + + function lineNumberFor(options, i) { + return String(options.lineNumberFormatter(i + options.firstLineNumber)) + } + + // A Pos instance represents a position within the text. + function Pos(line, ch, sticky) { + if ( sticky === void 0 ) sticky = null; + + if (!(this instanceof Pos)) { return new Pos(line, ch, sticky) } + this.line = line; + this.ch = ch; + this.sticky = sticky; + } + + // Compare two positions, return 0 if they are the same, a negative + // number when a is less, and a positive number otherwise. + function cmp(a, b) { return a.line - b.line || a.ch - b.ch } + + function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b) == 0 } + + function copyPos(x) {return Pos(x.line, x.ch)} + function maxPos(a, b) { return cmp(a, b) < 0 ? b : a } + function minPos(a, b) { return cmp(a, b) < 0 ? a : b } + + // Most of the external API clips given positions to make sure they + // actually exist within the document. + function clipLine(doc, n) {return Math.max(doc.first, Math.min(n, doc.first + doc.size - 1))} + function clipPos(doc, pos) { + if (pos.line < doc.first) { return Pos(doc.first, 0) } + var last = doc.first + doc.size - 1; + if (pos.line > last) { return Pos(last, getLine(doc, last).text.length) } + return clipToLen(pos, getLine(doc, pos.line).text.length) + } + function clipToLen(pos, linelen) { + var ch = pos.ch; + if (ch == null || ch > linelen) { return Pos(pos.line, linelen) } + else if (ch < 0) { return Pos(pos.line, 0) } + else { return pos } + } + function clipPosArray(doc, array) { + var out = []; + for (var i = 0; i < array.length; i++) { out[i] = clipPos(doc, array[i]); } + return out + } + + var SavedContext = function(state, lookAhead) { + this.state = state; + this.lookAhead = lookAhead; + }; + + var Context = function(doc, state, line, lookAhead) { + this.state = state; + this.doc = doc; + this.line = line; + this.maxLookAhead = lookAhead || 0; + this.baseTokens = null; + this.baseTokenPos = 1; + }; + + Context.prototype.lookAhead = function (n) { + var line = this.doc.getLine(this.line + n); + if (line != null && n > this.maxLookAhead) { this.maxLookAhead = n; } + return line + }; + + Context.prototype.baseToken = function (n) { + if (!this.baseTokens) { return null } + while (this.baseTokens[this.baseTokenPos] <= n) + { this.baseTokenPos += 2; } + var type = this.baseTokens[this.baseTokenPos + 1]; + return {type: type && type.replace(/( |^)overlay .*/, ""), + size: this.baseTokens[this.baseTokenPos] - n} + }; + + Context.prototype.nextLine = function () { + this.line++; + if (this.maxLookAhead > 0) { this.maxLookAhead--; } + }; + + Context.fromSaved = function (doc, saved, line) { + if (saved instanceof SavedContext) + { return new Context(doc, copyState(doc.mode, saved.state), line, saved.lookAhead) } + else + { return new Context(doc, copyState(doc.mode, saved), line) } + }; + + Context.prototype.save = function (copy) { + var state = copy !== false ? copyState(this.doc.mode, this.state) : this.state; + return this.maxLookAhead > 0 ? new SavedContext(state, this.maxLookAhead) : state + }; + + + // Compute a style array (an array starting with a mode generation + // -- for invalidation -- followed by pairs of end positions and + // style strings), which is used to highlight the tokens on the + // line. + function highlightLine(cm, line, context, forceToEnd) { + // A styles array always starts with a number identifying the + // mode/overlays that it is based on (for easy invalidation). + var st = [cm.state.modeGen], lineClasses = {}; + // Compute the base array of styles + runMode(cm, line.text, cm.doc.mode, context, function (end, style) { return st.push(end, style); }, + lineClasses, forceToEnd); + var state = context.state; + + // Run overlays, adjust style array. + var loop = function ( o ) { + context.baseTokens = st; + var overlay = cm.state.overlays[o], i = 1, at = 0; + context.state = true; + runMode(cm, line.text, overlay.mode, context, function (end, style) { + var start = i; + // Ensure there's a token end at the current position, and that i points at it + while (at < end) { + var i_end = st[i]; + if (i_end > end) + { st.splice(i, 1, end, st[i+1], i_end); } + i += 2; + at = Math.min(end, i_end); + } + if (!style) { return } + if (overlay.opaque) { + st.splice(start, i - start, end, "overlay " + style); + i = start + 2; + } else { + for (; start < i; start += 2) { + var cur = st[start+1]; + st[start+1] = (cur ? cur + " " : "") + "overlay " + style; + } + } + }, lineClasses); + context.state = state; + context.baseTokens = null; + context.baseTokenPos = 1; + }; + + for (var o = 0; o < cm.state.overlays.length; ++o) loop( o ); + + return {styles: st, classes: lineClasses.bgClass || lineClasses.textClass ? lineClasses : null} + } + + function getLineStyles(cm, line, updateFrontier) { + if (!line.styles || line.styles[0] != cm.state.modeGen) { + var context = getContextBefore(cm, lineNo(line)); + var resetState = line.text.length > cm.options.maxHighlightLength && copyState(cm.doc.mode, context.state); + var result = highlightLine(cm, line, context); + if (resetState) { context.state = resetState; } + line.stateAfter = context.save(!resetState); + line.styles = result.styles; + if (result.classes) { line.styleClasses = result.classes; } + else if (line.styleClasses) { line.styleClasses = null; } + if (updateFrontier === cm.doc.highlightFrontier) + { cm.doc.modeFrontier = Math.max(cm.doc.modeFrontier, ++cm.doc.highlightFrontier); } + } + return line.styles + } + + function getContextBefore(cm, n, precise) { + var doc = cm.doc, display = cm.display; + if (!doc.mode.startState) { return new Context(doc, true, n) } + var start = findStartLine(cm, n, precise); + var saved = start > doc.first && getLine(doc, start - 1).stateAfter; + var context = saved ? Context.fromSaved(doc, saved, start) : new Context(doc, startState(doc.mode), start); + + doc.iter(start, n, function (line) { + processLine(cm, line.text, context); + var pos = context.line; + line.stateAfter = pos == n - 1 || pos % 5 == 0 || pos >= display.viewFrom && pos < display.viewTo ? context.save() : null; + context.nextLine(); + }); + if (precise) { doc.modeFrontier = context.line; } + return context + } + + // Lightweight form of highlight -- proceed over this line and + // update state, but don't save a style array. Used for lines that + // aren't currently visible. + function processLine(cm, text, context, startAt) { + var mode = cm.doc.mode; + var stream = new StringStream(text, cm.options.tabSize, context); + stream.start = stream.pos = startAt || 0; + if (text == "") { callBlankLine(mode, context.state); } + while (!stream.eol()) { + readToken(mode, stream, context.state); + stream.start = stream.pos; + } + } + + function callBlankLine(mode, state) { + if (mode.blankLine) { return mode.blankLine(state) } + if (!mode.innerMode) { return } + var inner = innerMode(mode, state); + if (inner.mode.blankLine) { return inner.mode.blankLine(inner.state) } + } + + function readToken(mode, stream, state, inner) { + for (var i = 0; i < 10; i++) { + if (inner) { inner[0] = innerMode(mode, state).mode; } + var style = mode.token(stream, state); + if (stream.pos > stream.start) { return style } + } + throw new Error("Mode " + mode.name + " failed to advance stream.") + } + + var Token = function(stream, type, state) { + this.start = stream.start; this.end = stream.pos; + this.string = stream.current(); + this.type = type || null; + this.state = state; + }; + + // Utility for getTokenAt and getLineTokens + function takeToken(cm, pos, precise, asArray) { + var doc = cm.doc, mode = doc.mode, style; + pos = clipPos(doc, pos); + var line = getLine(doc, pos.line), context = getContextBefore(cm, pos.line, precise); + var stream = new StringStream(line.text, cm.options.tabSize, context), tokens; + if (asArray) { tokens = []; } + while ((asArray || stream.pos < pos.ch) && !stream.eol()) { + stream.start = stream.pos; + style = readToken(mode, stream, context.state); + if (asArray) { tokens.push(new Token(stream, style, copyState(doc.mode, context.state))); } + } + return asArray ? tokens : new Token(stream, style, context.state) + } + + function extractLineClasses(type, output) { + if (type) { for (;;) { + var lineClass = type.match(/(?:^|\s+)line-(background-)?(\S+)/); + if (!lineClass) { break } + type = type.slice(0, lineClass.index) + type.slice(lineClass.index + lineClass[0].length); + var prop = lineClass[1] ? "bgClass" : "textClass"; + if (output[prop] == null) + { output[prop] = lineClass[2]; } + else if (!(new RegExp("(?:^|\\s)" + lineClass[2] + "(?:$|\\s)")).test(output[prop])) + { output[prop] += " " + lineClass[2]; } + } } + return type + } + + // Run the given mode's parser over a line, calling f for each token. + function runMode(cm, text, mode, context, f, lineClasses, forceToEnd) { + var flattenSpans = mode.flattenSpans; + if (flattenSpans == null) { flattenSpans = cm.options.flattenSpans; } + var curStart = 0, curStyle = null; + var stream = new StringStream(text, cm.options.tabSize, context), style; + var inner = cm.options.addModeClass && [null]; + if (text == "") { extractLineClasses(callBlankLine(mode, context.state), lineClasses); } + while (!stream.eol()) { + if (stream.pos > cm.options.maxHighlightLength) { + flattenSpans = false; + if (forceToEnd) { processLine(cm, text, context, stream.pos); } + stream.pos = text.length; + style = null; + } else { + style = extractLineClasses(readToken(mode, stream, context.state, inner), lineClasses); + } + if (inner) { + var mName = inner[0].name; + if (mName) { style = "m-" + (style ? mName + " " + style : mName); } + } + if (!flattenSpans || curStyle != style) { + while (curStart < stream.start) { + curStart = Math.min(stream.start, curStart + 5000); + f(curStart, curStyle); + } + curStyle = style; + } + stream.start = stream.pos; + } + while (curStart < stream.pos) { + // Webkit seems to refuse to render text nodes longer than 57444 + // characters, and returns inaccurate measurements in nodes + // starting around 5000 chars. + var pos = Math.min(stream.pos, curStart + 5000); + f(pos, curStyle); + curStart = pos; + } + } + + // Finds the line to start with when starting a parse. Tries to + // find a line with a stateAfter, so that it can start with a + // valid state. If that fails, it returns the line with the + // smallest indentation, which tends to need the least context to + // parse correctly. + function findStartLine(cm, n, precise) { + var minindent, minline, doc = cm.doc; + var lim = precise ? -1 : n - (cm.doc.mode.innerMode ? 1000 : 100); + for (var search = n; search > lim; --search) { + if (search <= doc.first) { return doc.first } + var line = getLine(doc, search - 1), after = line.stateAfter; + if (after && (!precise || search + (after instanceof SavedContext ? after.lookAhead : 0) <= doc.modeFrontier)) + { return search } + var indented = countColumn(line.text, null, cm.options.tabSize); + if (minline == null || minindent > indented) { + minline = search - 1; + minindent = indented; + } + } + return minline + } + + function retreatFrontier(doc, n) { + doc.modeFrontier = Math.min(doc.modeFrontier, n); + if (doc.highlightFrontier < n - 10) { return } + var start = doc.first; + for (var line = n - 1; line > start; line--) { + var saved = getLine(doc, line).stateAfter; + // change is on 3 + // state on line 1 looked ahead 2 -- so saw 3 + // test 1 + 2 < 3 should cover this + if (saved && (!(saved instanceof SavedContext) || line + saved.lookAhead < n)) { + start = line + 1; + break + } + } + doc.highlightFrontier = Math.min(doc.highlightFrontier, start); + } + + // Optimize some code when these features are not used. + var sawReadOnlySpans = false, sawCollapsedSpans = false; + + function seeReadOnlySpans() { + sawReadOnlySpans = true; + } + + function seeCollapsedSpans() { + sawCollapsedSpans = true; + } + + // TEXTMARKER SPANS + + function MarkedSpan(marker, from, to) { + this.marker = marker; + this.from = from; this.to = to; + } + + // Search an array of spans for a span matching the given marker. + function getMarkedSpanFor(spans, marker) { + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.marker == marker) { return span } + } } + } + // Remove a span from an array, returning undefined if no spans are + // left (we don't store arrays for lines without spans). + function removeMarkedSpan(spans, span) { + var r; + for (var i = 0; i < spans.length; ++i) + { if (spans[i] != span) { (r || (r = [])).push(spans[i]); } } + return r + } + // Add a span to a line. + function addMarkedSpan(line, span) { + line.markedSpans = line.markedSpans ? line.markedSpans.concat([span]) : [span]; + span.marker.attachLine(line); + } + + // Used for the algorithm that adjusts markers for a change in the + // document. These functions cut an array of spans at a given + // character position, returning an array of remaining chunks (or + // undefined if nothing remains). + function markedSpansBefore(old, startCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= startCh : span.from < startCh); + if (startsBefore || span.from == startCh && marker.type == "bookmark" && (!isInsert || !span.marker.insertLeft)) { + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= startCh : span.to > startCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, span.from, endsAfter ? null : span.to)); + } + } } + return nw + } + function markedSpansAfter(old, endCh, isInsert) { + var nw; + if (old) { for (var i = 0; i < old.length; ++i) { + var span = old[i], marker = span.marker; + var endsAfter = span.to == null || (marker.inclusiveRight ? span.to >= endCh : span.to > endCh); + if (endsAfter || span.from == endCh && marker.type == "bookmark" && (!isInsert || span.marker.insertLeft)) { + var startsBefore = span.from == null || (marker.inclusiveLeft ? span.from <= endCh : span.from < endCh) + ;(nw || (nw = [])).push(new MarkedSpan(marker, startsBefore ? null : span.from - endCh, + span.to == null ? null : span.to - endCh)); + } + } } + return nw + } + + // Given a change object, compute the new set of marker spans that + // cover the line in which the change took place. Removes spans + // entirely within the change, reconnects spans belonging to the + // same marker that appear on both sides of the change, and cuts off + // spans partially within the change. Returns an array of span + // arrays with one element for each line in (after) the change. + function stretchSpansOverChange(doc, change) { + if (change.full) { return null } + var oldFirst = isLine(doc, change.from.line) && getLine(doc, change.from.line).markedSpans; + var oldLast = isLine(doc, change.to.line) && getLine(doc, change.to.line).markedSpans; + if (!oldFirst && !oldLast) { return null } + + var startCh = change.from.ch, endCh = change.to.ch, isInsert = cmp(change.from, change.to) == 0; + // Get the spans that 'stick out' on both sides + var first = markedSpansBefore(oldFirst, startCh, isInsert); + var last = markedSpansAfter(oldLast, endCh, isInsert); + + // Next, merge those two ends + var sameLine = change.text.length == 1, offset = lst(change.text).length + (sameLine ? startCh : 0); + if (first) { + // Fix up .to properties of first + for (var i = 0; i < first.length; ++i) { + var span = first[i]; + if (span.to == null) { + var found = getMarkedSpanFor(last, span.marker); + if (!found) { span.to = startCh; } + else if (sameLine) { span.to = found.to == null ? null : found.to + offset; } + } + } + } + if (last) { + // Fix up .from in last (or move them into first in case of sameLine) + for (var i$1 = 0; i$1 < last.length; ++i$1) { + var span$1 = last[i$1]; + if (span$1.to != null) { span$1.to += offset; } + if (span$1.from == null) { + var found$1 = getMarkedSpanFor(first, span$1.marker); + if (!found$1) { + span$1.from = offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } else { + span$1.from += offset; + if (sameLine) { (first || (first = [])).push(span$1); } + } + } + } + // Make sure we didn't create any zero-length spans + if (first) { first = clearEmptySpans(first); } + if (last && last != first) { last = clearEmptySpans(last); } + + var newMarkers = [first]; + if (!sameLine) { + // Fill gap with whole-line-spans + var gap = change.text.length - 2, gapMarkers; + if (gap > 0 && first) + { for (var i$2 = 0; i$2 < first.length; ++i$2) + { if (first[i$2].to == null) + { (gapMarkers || (gapMarkers = [])).push(new MarkedSpan(first[i$2].marker, null, null)); } } } + for (var i$3 = 0; i$3 < gap; ++i$3) + { newMarkers.push(gapMarkers); } + newMarkers.push(last); + } + return newMarkers + } + + // Remove spans that are empty and don't have a clearWhenEmpty + // option of false. + function clearEmptySpans(spans) { + for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if (span.from != null && span.from == span.to && span.marker.clearWhenEmpty !== false) + { spans.splice(i--, 1); } + } + if (!spans.length) { return null } + return spans + } + + // Used to 'clip' out readOnly ranges when making a change. + function removeReadOnlyRanges(doc, from, to) { + var markers = null; + doc.iter(from.line, to.line + 1, function (line) { + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var mark = line.markedSpans[i].marker; + if (mark.readOnly && (!markers || indexOf(markers, mark) == -1)) + { (markers || (markers = [])).push(mark); } + } } + }); + if (!markers) { return null } + var parts = [{from: from, to: to}]; + for (var i = 0; i < markers.length; ++i) { + var mk = markers[i], m = mk.find(0); + for (var j = 0; j < parts.length; ++j) { + var p = parts[j]; + if (cmp(p.to, m.from) < 0 || cmp(p.from, m.to) > 0) { continue } + var newParts = [j, 1], dfrom = cmp(p.from, m.from), dto = cmp(p.to, m.to); + if (dfrom < 0 || !mk.inclusiveLeft && !dfrom) + { newParts.push({from: p.from, to: m.from}); } + if (dto > 0 || !mk.inclusiveRight && !dto) + { newParts.push({from: m.to, to: p.to}); } + parts.splice.apply(parts, newParts); + j += newParts.length - 3; + } + } + return parts + } + + // Connect or disconnect spans from a line. + function detachMarkedSpans(line) { + var spans = line.markedSpans; + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.detachLine(line); } + line.markedSpans = null; + } + function attachMarkedSpans(line, spans) { + if (!spans) { return } + for (var i = 0; i < spans.length; ++i) + { spans[i].marker.attachLine(line); } + line.markedSpans = spans; + } + + // Helpers used when computing which overlapping collapsed span + // counts as the larger one. + function extraLeft(marker) { return marker.inclusiveLeft ? -1 : 0 } + function extraRight(marker) { return marker.inclusiveRight ? 1 : 0 } + + // Returns a number indicating which of two overlapping collapsed + // spans is larger (and thus includes the other). Falls back to + // comparing ids when the spans cover exactly the same range. + function compareCollapsedMarkers(a, b) { + var lenDiff = a.lines.length - b.lines.length; + if (lenDiff != 0) { return lenDiff } + var aPos = a.find(), bPos = b.find(); + var fromCmp = cmp(aPos.from, bPos.from) || extraLeft(a) - extraLeft(b); + if (fromCmp) { return -fromCmp } + var toCmp = cmp(aPos.to, bPos.to) || extraRight(a) - extraRight(b); + if (toCmp) { return toCmp } + return b.id - a.id + } + + // Find out whether a line ends or starts in a collapsed span. If + // so, return the marker for that span. + function collapsedSpanAtSide(line, start) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (sp.marker.collapsed && (start ? sp.from : sp.to) == null && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) + { found = sp.marker; } + } } + return found + } + function collapsedSpanAtStart(line) { return collapsedSpanAtSide(line, true) } + function collapsedSpanAtEnd(line) { return collapsedSpanAtSide(line, false) } + + function collapsedSpanAround(line, ch) { + var sps = sawCollapsedSpans && line.markedSpans, found; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (sp.marker.collapsed && (sp.from == null || sp.from < ch) && (sp.to == null || sp.to > ch) && + (!found || compareCollapsedMarkers(found, sp.marker) < 0)) { found = sp.marker; } + } } + return found + } + + // Test whether there exists a collapsed span that partially + // overlaps (covers the start or end, but not both) of a new span. + // Such overlap is not allowed. + function conflictingCollapsedRange(doc, lineNo, from, to, marker) { + var line = getLine(doc, lineNo); + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) { + var sp = sps[i]; + if (!sp.marker.collapsed) { continue } + var found = sp.marker.find(0); + var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker); + var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker); + if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) { continue } + if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) || + fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0)) + { return true } + } } + } + + // A visual line is a line as drawn on the screen. Folding, for + // example, can cause multiple logical lines to appear on the same + // visual line. This finds the start of the visual line that the + // given line is part of (usually that is the line itself). + function visualLine(line) { + var merged; + while (merged = collapsedSpanAtStart(line)) + { line = merged.find(-1, true).line; } + return line + } + + function visualLineEnd(line) { + var merged; + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return line + } + + // Returns an array of logical lines that continue the visual line + // started by the argument, or undefined if there are no such lines. + function visualLineContinued(line) { + var merged, lines; + while (merged = collapsedSpanAtEnd(line)) { + line = merged.find(1, true).line + ;(lines || (lines = [])).push(line); + } + return lines + } + + // Get the line number of the start of the visual line that the + // given line number is part of. + function visualLineNo(doc, lineN) { + var line = getLine(doc, lineN), vis = visualLine(line); + if (line == vis) { return lineN } + return lineNo(vis) + } + + // Get the line number of the start of the next visual line after + // the given line. + function visualLineEndNo(doc, lineN) { + if (lineN > doc.lastLine()) { return lineN } + var line = getLine(doc, lineN), merged; + if (!lineIsHidden(doc, line)) { return lineN } + while (merged = collapsedSpanAtEnd(line)) + { line = merged.find(1, true).line; } + return lineNo(line) + 1 + } + + // Compute whether a line is hidden. Lines count as hidden when they + // are part of a visual line that starts with another line, or when + // they are entirely covered by collapsed, non-widget span. + function lineIsHidden(doc, line) { + var sps = sawCollapsedSpans && line.markedSpans; + if (sps) { for (var sp = (void 0), i = 0; i < sps.length; ++i) { + sp = sps[i]; + if (!sp.marker.collapsed) { continue } + if (sp.from == null) { return true } + if (sp.marker.widgetNode) { continue } + if (sp.from == 0 && sp.marker.inclusiveLeft && lineIsHiddenInner(doc, line, sp)) + { return true } + } } + } + function lineIsHiddenInner(doc, line, span) { + if (span.to == null) { + var end = span.marker.find(1, true); + return lineIsHiddenInner(doc, end.line, getMarkedSpanFor(end.line.markedSpans, span.marker)) + } + if (span.marker.inclusiveRight && span.to == line.text.length) + { return true } + for (var sp = (void 0), i = 0; i < line.markedSpans.length; ++i) { + sp = line.markedSpans[i]; + if (sp.marker.collapsed && !sp.marker.widgetNode && sp.from == span.to && + (sp.to == null || sp.to != span.from) && + (sp.marker.inclusiveLeft || span.marker.inclusiveRight) && + lineIsHiddenInner(doc, line, sp)) { return true } + } + } + + // Find the height above the given line. + function heightAtLine(lineObj) { + lineObj = visualLine(lineObj); + + var h = 0, chunk = lineObj.parent; + for (var i = 0; i < chunk.lines.length; ++i) { + var line = chunk.lines[i]; + if (line == lineObj) { break } + else { h += line.height; } + } + for (var p = chunk.parent; p; chunk = p, p = chunk.parent) { + for (var i$1 = 0; i$1 < p.children.length; ++i$1) { + var cur = p.children[i$1]; + if (cur == chunk) { break } + else { h += cur.height; } + } + } + return h + } + + // Compute the character length of a line, taking into account + // collapsed ranges (see markText) that might hide parts, and join + // other lines onto it. + function lineLength(line) { + if (line.height == 0) { return 0 } + var len = line.text.length, merged, cur = line; + while (merged = collapsedSpanAtStart(cur)) { + var found = merged.find(0, true); + cur = found.from.line; + len += found.from.ch - found.to.ch; + } + cur = line; + while (merged = collapsedSpanAtEnd(cur)) { + var found$1 = merged.find(0, true); + len -= cur.text.length - found$1.from.ch; + cur = found$1.to.line; + len += cur.text.length - found$1.to.ch; + } + return len + } + + // Find the longest line in the document. + function findMaxLine(cm) { + var d = cm.display, doc = cm.doc; + d.maxLine = getLine(doc, doc.first); + d.maxLineLength = lineLength(d.maxLine); + d.maxLineChanged = true; + doc.iter(function (line) { + var len = lineLength(line); + if (len > d.maxLineLength) { + d.maxLineLength = len; + d.maxLine = line; + } + }); + } + + // LINE DATA STRUCTURE + + // Line objects. These hold state related to a line, including + // highlighting info (the styles array). + var Line = function(text, markedSpans, estimateHeight) { + this.text = text; + attachMarkedSpans(this, markedSpans); + this.height = estimateHeight ? estimateHeight(this) : 1; + }; + + Line.prototype.lineNo = function () { return lineNo(this) }; + eventMixin(Line); + + // Change the content (text, markers) of a line. Automatically + // invalidates cached information and tries to re-estimate the + // line's height. + function updateLine(line, text, markedSpans, estimateHeight) { + line.text = text; + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + if (line.order != null) { line.order = null; } + detachMarkedSpans(line); + attachMarkedSpans(line, markedSpans); + var estHeight = estimateHeight ? estimateHeight(line) : 1; + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + } + + // Detach a line from the document tree and its markers. + function cleanUpLine(line) { + line.parent = null; + detachMarkedSpans(line); + } + + // Convert a style as returned by a mode (either null, or a string + // containing one or more styles) to a CSS style. This is cached, + // and also looks for line-wide styles. + var styleToClassCache = {}, styleToClassCacheWithMode = {}; + function interpretTokenStyle(style, options) { + if (!style || /^\s*$/.test(style)) { return null } + var cache = options.addModeClass ? styleToClassCacheWithMode : styleToClassCache; + return cache[style] || + (cache[style] = style.replace(/\S+/g, "cm-$&")) + } + + // Render the DOM representation of the text of a line. Also builds + // up a 'line map', which points at the DOM nodes that represent + // specific stretches of text, and is used by the measuring code. + // The returned object contains the DOM node, this map, and + // information about line-wide styles that were set by the mode. + function buildLineContent(cm, lineView) { + // The padding-right forces the element to have a 'border', which + // is needed on Webkit to be able to get line-level bounding + // rectangles for it (in measureChar). + var content = eltP("span", null, null, webkit ? "padding-right: .1px" : null); + var builder = {pre: eltP("pre", [content], "CodeMirror-line"), content: content, + col: 0, pos: 0, cm: cm, + trailingSpace: false, + splitSpaces: cm.getOption("lineWrapping")}; + lineView.measure = {}; + + // Iterate over the logical lines that make up this visual line. + for (var i = 0; i <= (lineView.rest ? lineView.rest.length : 0); i++) { + var line = i ? lineView.rest[i - 1] : lineView.line, order = (void 0); + builder.pos = 0; + builder.addToken = buildToken; + // Optionally wire in some hacks into the token-rendering + // algorithm, to deal with browser quirks. + if (hasBadBidiRects(cm.display.measure) && (order = getOrder(line, cm.doc.direction))) + { builder.addToken = buildTokenBadBidi(builder.addToken, order); } + builder.map = []; + var allowFrontierUpdate = lineView != cm.display.externalMeasured && lineNo(line); + insertLineContent(line, builder, getLineStyles(cm, line, allowFrontierUpdate)); + if (line.styleClasses) { + if (line.styleClasses.bgClass) + { builder.bgClass = joinClasses(line.styleClasses.bgClass, builder.bgClass || ""); } + if (line.styleClasses.textClass) + { builder.textClass = joinClasses(line.styleClasses.textClass, builder.textClass || ""); } + } + + // Ensure at least a single node is present, for measuring. + if (builder.map.length == 0) + { builder.map.push(0, 0, builder.content.appendChild(zeroWidthElement(cm.display.measure))); } + + // Store the map and a cache object for the current logical line + if (i == 0) { + lineView.measure.map = builder.map; + lineView.measure.cache = {}; + } else { + (lineView.measure.maps || (lineView.measure.maps = [])).push(builder.map) + ;(lineView.measure.caches || (lineView.measure.caches = [])).push({}); + } + } + + // See issue #2901 + if (webkit) { + var last = builder.content.lastChild; + if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab"))) + { builder.content.className = "cm-tab-wrap-hack"; } + } + + signal(cm, "renderLine", cm, lineView.line, builder.pre); + if (builder.pre.className) + { builder.textClass = joinClasses(builder.pre.className, builder.textClass || ""); } + + return builder + } + + function defaultSpecialCharPlaceholder(ch) { + var token = elt("span", "\u2022", "cm-invalidchar"); + token.title = "\\u" + ch.charCodeAt(0).toString(16); + token.setAttribute("aria-label", token.title); + return token + } + + // Build up the DOM representation for a single token, and add it to + // the line map. Takes care to render special characters separately. + function buildToken(builder, text, style, startStyle, endStyle, css, attributes) { + if (!text) { return } + var displayText = builder.splitSpaces ? splitSpaces(text, builder.trailingSpace) : text; + var special = builder.cm.state.specialChars, mustWrap = false; + var content; + if (!special.test(text)) { + builder.col += text.length; + content = document.createTextNode(displayText); + builder.map.push(builder.pos, builder.pos + text.length, content); + if (ie && ie_version < 9) { mustWrap = true; } + builder.pos += text.length; + } else { + content = document.createDocumentFragment(); + var pos = 0; + while (true) { + special.lastIndex = pos; + var m = special.exec(text); + var skipped = m ? m.index - pos : text.length - pos; + if (skipped) { + var txt = document.createTextNode(displayText.slice(pos, pos + skipped)); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt])); } + else { content.appendChild(txt); } + builder.map.push(builder.pos, builder.pos + skipped, txt); + builder.col += skipped; + builder.pos += skipped; + } + if (!m) { break } + pos += skipped + 1; + var txt$1 = (void 0); + if (m[0] == "\t") { + var tabSize = builder.cm.options.tabSize, tabWidth = tabSize - builder.col % tabSize; + txt$1 = content.appendChild(elt("span", spaceStr(tabWidth), "cm-tab")); + txt$1.setAttribute("role", "presentation"); + txt$1.setAttribute("cm-text", "\t"); + builder.col += tabWidth; + } else if (m[0] == "\r" || m[0] == "\n") { + txt$1 = content.appendChild(elt("span", m[0] == "\r" ? "\u240d" : "\u2424", "cm-invalidchar")); + txt$1.setAttribute("cm-text", m[0]); + builder.col += 1; + } else { + txt$1 = builder.cm.options.specialCharPlaceholder(m[0]); + txt$1.setAttribute("cm-text", m[0]); + if (ie && ie_version < 9) { content.appendChild(elt("span", [txt$1])); } + else { content.appendChild(txt$1); } + builder.col += 1; + } + builder.map.push(builder.pos, builder.pos + 1, txt$1); + builder.pos++; + } + } + builder.trailingSpace = displayText.charCodeAt(text.length - 1) == 32; + if (style || startStyle || endStyle || mustWrap || css || attributes) { + var fullStyle = style || ""; + if (startStyle) { fullStyle += startStyle; } + if (endStyle) { fullStyle += endStyle; } + var token = elt("span", [content], fullStyle, css); + if (attributes) { + for (var attr in attributes) { if (attributes.hasOwnProperty(attr) && attr != "style" && attr != "class") + { token.setAttribute(attr, attributes[attr]); } } + } + return builder.content.appendChild(token) + } + builder.content.appendChild(content); + } + + // Change some spaces to NBSP to prevent the browser from collapsing + // trailing spaces at the end of a line when rendering text (issue #1362). + function splitSpaces(text, trailingBefore) { + if (text.length > 1 && !/ /.test(text)) { return text } + var spaceBefore = trailingBefore, result = ""; + for (var i = 0; i < text.length; i++) { + var ch = text.charAt(i); + if (ch == " " && spaceBefore && (i == text.length - 1 || text.charCodeAt(i + 1) == 32)) + { ch = "\u00a0"; } + result += ch; + spaceBefore = ch == " "; + } + return result + } + + // Work around nonsense dimensions being reported for stretches of + // right-to-left text. + function buildTokenBadBidi(inner, order) { + return function (builder, text, style, startStyle, endStyle, css, attributes) { + style = style ? style + " cm-force-border" : "cm-force-border"; + var start = builder.pos, end = start + text.length; + for (;;) { + // Find the part that overlaps with the start of this text + var part = (void 0); + for (var i = 0; i < order.length; i++) { + part = order[i]; + if (part.to > start && part.from <= start) { break } + } + if (part.to >= end) { return inner(builder, text, style, startStyle, endStyle, css, attributes) } + inner(builder, text.slice(0, part.to - start), style, startStyle, null, css, attributes); + startStyle = null; + text = text.slice(part.to - start); + start = part.to; + } + } + } + + function buildCollapsedSpan(builder, size, marker, ignoreWidget) { + var widget = !ignoreWidget && marker.widgetNode; + if (widget) { builder.map.push(builder.pos, builder.pos + size, widget); } + if (!ignoreWidget && builder.cm.display.input.needsContentAttribute) { + if (!widget) + { widget = builder.content.appendChild(document.createElement("span")); } + widget.setAttribute("cm-marker", marker.id); + } + if (widget) { + builder.cm.display.input.setUneditable(widget); + builder.content.appendChild(widget); + } + builder.pos += size; + builder.trailingSpace = false; + } + + // Outputs a number of spans to make up a line, taking highlighting + // and marked text into account. + function insertLineContent(line, builder, styles) { + var spans = line.markedSpans, allText = line.text, at = 0; + if (!spans) { + for (var i$1 = 1; i$1 < styles.length; i$1+=2) + { builder.addToken(builder, allText.slice(at, at = styles[i$1]), interpretTokenStyle(styles[i$1+1], builder.cm.options)); } + return + } + + var len = allText.length, pos = 0, i = 1, text = "", style, css; + var nextChange = 0, spanStyle, spanEndStyle, spanStartStyle, collapsed, attributes; + for (;;) { + if (nextChange == pos) { // Update current marker set + spanStyle = spanEndStyle = spanStartStyle = css = ""; + attributes = null; + collapsed = null; nextChange = Infinity; + var foundBookmarks = [], endStyles = (void 0); + for (var j = 0; j < spans.length; ++j) { + var sp = spans[j], m = sp.marker; + if (m.type == "bookmark" && sp.from == pos && m.widgetNode) { + foundBookmarks.push(m); + } else if (sp.from <= pos && (sp.to == null || sp.to > pos || m.collapsed && sp.to == pos && sp.from == pos)) { + if (sp.to != null && sp.to != pos && nextChange > sp.to) { + nextChange = sp.to; + spanEndStyle = ""; + } + if (m.className) { spanStyle += " " + m.className; } + if (m.css) { css = (css ? css + ";" : "") + m.css; } + if (m.startStyle && sp.from == pos) { spanStartStyle += " " + m.startStyle; } + if (m.endStyle && sp.to == nextChange) { (endStyles || (endStyles = [])).push(m.endStyle, sp.to); } + // support for the old title property + // https://github.com/codemirror/CodeMirror/pull/5673 + if (m.title) { (attributes || (attributes = {})).title = m.title; } + if (m.attributes) { + for (var attr in m.attributes) + { (attributes || (attributes = {}))[attr] = m.attributes[attr]; } + } + if (m.collapsed && (!collapsed || compareCollapsedMarkers(collapsed.marker, m) < 0)) + { collapsed = sp; } + } else if (sp.from > pos && nextChange > sp.from) { + nextChange = sp.from; + } + } + if (endStyles) { for (var j$1 = 0; j$1 < endStyles.length; j$1 += 2) + { if (endStyles[j$1 + 1] == nextChange) { spanEndStyle += " " + endStyles[j$1]; } } } + + if (!collapsed || collapsed.from == pos) { for (var j$2 = 0; j$2 < foundBookmarks.length; ++j$2) + { buildCollapsedSpan(builder, 0, foundBookmarks[j$2]); } } + if (collapsed && (collapsed.from || 0) == pos) { + buildCollapsedSpan(builder, (collapsed.to == null ? len + 1 : collapsed.to) - pos, + collapsed.marker, collapsed.from == null); + if (collapsed.to == null) { return } + if (collapsed.to == pos) { collapsed = false; } + } + } + if (pos >= len) { break } + + var upto = Math.min(len, nextChange); + while (true) { + if (text) { + var end = pos + text.length; + if (!collapsed) { + var tokenText = end > upto ? text.slice(0, upto - pos) : text; + builder.addToken(builder, tokenText, style ? style + spanStyle : spanStyle, + spanStartStyle, pos + tokenText.length == nextChange ? spanEndStyle : "", css, attributes); + } + if (end >= upto) {text = text.slice(upto - pos); pos = upto; break} + pos = end; + spanStartStyle = ""; + } + text = allText.slice(at, at = styles[i++]); + style = interpretTokenStyle(styles[i++], builder.cm.options); + } + } + } + + + // These objects are used to represent the visible (currently drawn) + // part of the document. A LineView may correspond to multiple + // logical lines, if those are connected by collapsed ranges. + function LineView(doc, line, lineN) { + // The starting line + this.line = line; + // Continuing lines, if any + this.rest = visualLineContinued(line); + // Number of logical lines in this visual line + this.size = this.rest ? lineNo(lst(this.rest)) - lineN + 1 : 1; + this.node = this.text = null; + this.hidden = lineIsHidden(doc, line); + } + + // Create a range of LineView objects for the given lines. + function buildViewArray(cm, from, to) { + var array = [], nextPos; + for (var pos = from; pos < to; pos = nextPos) { + var view = new LineView(cm.doc, getLine(cm.doc, pos), pos); + nextPos = pos + view.size; + array.push(view); + } + return array + } + + var operationGroup = null; + + function pushOperation(op) { + if (operationGroup) { + operationGroup.ops.push(op); + } else { + op.ownsGroup = operationGroup = { + ops: [op], + delayedCallbacks: [] + }; + } + } + + function fireCallbacksForOps(group) { + // Calls delayed callbacks and cursorActivity handlers until no + // new ones appear + var callbacks = group.delayedCallbacks, i = 0; + do { + for (; i < callbacks.length; i++) + { callbacks[i].call(null); } + for (var j = 0; j < group.ops.length; j++) { + var op = group.ops[j]; + if (op.cursorActivityHandlers) + { while (op.cursorActivityCalled < op.cursorActivityHandlers.length) + { op.cursorActivityHandlers[op.cursorActivityCalled++].call(null, op.cm); } } + } + } while (i < callbacks.length) + } + + function finishOperation(op, endCb) { + var group = op.ownsGroup; + if (!group) { return } + + try { fireCallbacksForOps(group); } + finally { + operationGroup = null; + endCb(group); + } + } + + var orphanDelayedCallbacks = null; + + // Often, we want to signal events at a point where we are in the + // middle of some work, but don't want the handler to start calling + // other methods on the editor, which might be in an inconsistent + // state or simply not expect any other events to happen. + // signalLater looks whether there are any handlers, and schedules + // them to be executed when the last operation ends, or, if no + // operation is active, when a timeout fires. + function signalLater(emitter, type /*, values...*/) { + var arr = getHandlers(emitter, type); + if (!arr.length) { return } + var args = Array.prototype.slice.call(arguments, 2), list; + if (operationGroup) { + list = operationGroup.delayedCallbacks; + } else if (orphanDelayedCallbacks) { + list = orphanDelayedCallbacks; + } else { + list = orphanDelayedCallbacks = []; + setTimeout(fireOrphanDelayed, 0); + } + var loop = function ( i ) { + list.push(function () { return arr[i].apply(null, args); }); + }; + + for (var i = 0; i < arr.length; ++i) + loop( i ); + } + + function fireOrphanDelayed() { + var delayed = orphanDelayedCallbacks; + orphanDelayedCallbacks = null; + for (var i = 0; i < delayed.length; ++i) { delayed[i](); } + } + + // When an aspect of a line changes, a string is added to + // lineView.changes. This updates the relevant part of the line's + // DOM structure. + function updateLineForChanges(cm, lineView, lineN, dims) { + for (var j = 0; j < lineView.changes.length; j++) { + var type = lineView.changes[j]; + if (type == "text") { updateLineText(cm, lineView); } + else if (type == "gutter") { updateLineGutter(cm, lineView, lineN, dims); } + else if (type == "class") { updateLineClasses(cm, lineView); } + else if (type == "widget") { updateLineWidgets(cm, lineView, dims); } + } + lineView.changes = null; + } + + // Lines with gutter elements, widgets or a background class need to + // be wrapped, and have the extra elements added to the wrapper div + function ensureLineWrapped(lineView) { + if (lineView.node == lineView.text) { + lineView.node = elt("div", null, null, "position: relative"); + if (lineView.text.parentNode) + { lineView.text.parentNode.replaceChild(lineView.node, lineView.text); } + lineView.node.appendChild(lineView.text); + if (ie && ie_version < 8) { lineView.node.style.zIndex = 2; } + } + return lineView.node + } + + function updateLineBackground(cm, lineView) { + var cls = lineView.bgClass ? lineView.bgClass + " " + (lineView.line.bgClass || "") : lineView.line.bgClass; + if (cls) { cls += " CodeMirror-linebackground"; } + if (lineView.background) { + if (cls) { lineView.background.className = cls; } + else { lineView.background.parentNode.removeChild(lineView.background); lineView.background = null; } + } else if (cls) { + var wrap = ensureLineWrapped(lineView); + lineView.background = wrap.insertBefore(elt("div", null, cls), wrap.firstChild); + cm.display.input.setUneditable(lineView.background); + } + } + + // Wrapper around buildLineContent which will reuse the structure + // in display.externalMeasured when possible. + function getLineContent(cm, lineView) { + var ext = cm.display.externalMeasured; + if (ext && ext.line == lineView.line) { + cm.display.externalMeasured = null; + lineView.measure = ext.measure; + return ext.built + } + return buildLineContent(cm, lineView) + } + + // Redraw the line's text. Interacts with the background and text + // classes because the mode may output tokens that influence these + // classes. + function updateLineText(cm, lineView) { + var cls = lineView.text.className; + var built = getLineContent(cm, lineView); + if (lineView.text == lineView.node) { lineView.node = built.pre; } + lineView.text.parentNode.replaceChild(built.pre, lineView.text); + lineView.text = built.pre; + if (built.bgClass != lineView.bgClass || built.textClass != lineView.textClass) { + lineView.bgClass = built.bgClass; + lineView.textClass = built.textClass; + updateLineClasses(cm, lineView); + } else if (cls) { + lineView.text.className = cls; + } + } + + function updateLineClasses(cm, lineView) { + updateLineBackground(cm, lineView); + if (lineView.line.wrapClass) + { ensureLineWrapped(lineView).className = lineView.line.wrapClass; } + else if (lineView.node != lineView.text) + { lineView.node.className = ""; } + var textClass = lineView.textClass ? lineView.textClass + " " + (lineView.line.textClass || "") : lineView.line.textClass; + lineView.text.className = textClass || ""; + } + + function updateLineGutter(cm, lineView, lineN, dims) { + if (lineView.gutter) { + lineView.node.removeChild(lineView.gutter); + lineView.gutter = null; + } + if (lineView.gutterBackground) { + lineView.node.removeChild(lineView.gutterBackground); + lineView.gutterBackground = null; + } + if (lineView.line.gutterClass) { + var wrap = ensureLineWrapped(lineView); + lineView.gutterBackground = elt("div", null, "CodeMirror-gutter-background " + lineView.line.gutterClass, + ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px; width: " + (dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(lineView.gutterBackground); + wrap.insertBefore(lineView.gutterBackground, lineView.text); + } + var markers = lineView.line.gutterMarkers; + if (cm.options.lineNumbers || markers) { + var wrap$1 = ensureLineWrapped(lineView); + var gutterWrap = lineView.gutter = elt("div", null, "CodeMirror-gutter-wrapper", ("left: " + (cm.options.fixedGutter ? dims.fixedPos : -dims.gutterTotalWidth) + "px")); + cm.display.input.setUneditable(gutterWrap); + wrap$1.insertBefore(gutterWrap, lineView.text); + if (lineView.line.gutterClass) + { gutterWrap.className += " " + lineView.line.gutterClass; } + if (cm.options.lineNumbers && (!markers || !markers["CodeMirror-linenumbers"])) + { lineView.lineNumber = gutterWrap.appendChild( + elt("div", lineNumberFor(cm.options, lineN), + "CodeMirror-linenumber CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft["CodeMirror-linenumbers"]) + "px; width: " + (cm.display.lineNumInnerWidth) + "px"))); } + if (markers) { for (var k = 0; k < cm.display.gutterSpecs.length; ++k) { + var id = cm.display.gutterSpecs[k].className, found = markers.hasOwnProperty(id) && markers[id]; + if (found) + { gutterWrap.appendChild(elt("div", [found], "CodeMirror-gutter-elt", + ("left: " + (dims.gutterLeft[id]) + "px; width: " + (dims.gutterWidth[id]) + "px"))); } + } } + } + } + + function updateLineWidgets(cm, lineView, dims) { + if (lineView.alignable) { lineView.alignable = null; } + var isWidget = classTest("CodeMirror-linewidget"); + for (var node = lineView.node.firstChild, next = (void 0); node; node = next) { + next = node.nextSibling; + if (isWidget.test(node.className)) { lineView.node.removeChild(node); } + } + insertLineWidgets(cm, lineView, dims); + } + + // Build a line's DOM representation from scratch + function buildLineElement(cm, lineView, lineN, dims) { + var built = getLineContent(cm, lineView); + lineView.text = lineView.node = built.pre; + if (built.bgClass) { lineView.bgClass = built.bgClass; } + if (built.textClass) { lineView.textClass = built.textClass; } + + updateLineClasses(cm, lineView); + updateLineGutter(cm, lineView, lineN, dims); + insertLineWidgets(cm, lineView, dims); + return lineView.node + } + + // A lineView may contain multiple logical lines (when merged by + // collapsed spans). The widgets for all of them need to be drawn. + function insertLineWidgets(cm, lineView, dims) { + insertLineWidgetsFor(cm, lineView.line, lineView, dims, true); + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { insertLineWidgetsFor(cm, lineView.rest[i], lineView, dims, false); } } + } + + function insertLineWidgetsFor(cm, line, lineView, dims, allowAbove) { + if (!line.widgets) { return } + var wrap = ensureLineWrapped(lineView); + for (var i = 0, ws = line.widgets; i < ws.length; ++i) { + var widget = ws[i], node = elt("div", [widget.node], "CodeMirror-linewidget" + (widget.className ? " " + widget.className : "")); + if (!widget.handleMouseEvents) { node.setAttribute("cm-ignore-events", "true"); } + positionLineWidget(widget, node, lineView, dims); + cm.display.input.setUneditable(node); + if (allowAbove && widget.above) + { wrap.insertBefore(node, lineView.gutter || lineView.text); } + else + { wrap.appendChild(node); } + signalLater(widget, "redraw"); + } + } + + function positionLineWidget(widget, node, lineView, dims) { + if (widget.noHScroll) { + (lineView.alignable || (lineView.alignable = [])).push(node); + var width = dims.wrapperWidth; + node.style.left = dims.fixedPos + "px"; + if (!widget.coverGutter) { + width -= dims.gutterTotalWidth; + node.style.paddingLeft = dims.gutterTotalWidth + "px"; + } + node.style.width = width + "px"; + } + if (widget.coverGutter) { + node.style.zIndex = 5; + node.style.position = "relative"; + if (!widget.noHScroll) { node.style.marginLeft = -dims.gutterTotalWidth + "px"; } + } + } + + function widgetHeight(widget) { + if (widget.height != null) { return widget.height } + var cm = widget.doc.cm; + if (!cm) { return 0 } + if (!contains(document.body, widget.node)) { + var parentStyle = "position: relative;"; + if (widget.coverGutter) + { parentStyle += "margin-left: -" + cm.display.gutters.offsetWidth + "px;"; } + if (widget.noHScroll) + { parentStyle += "width: " + cm.display.wrapper.clientWidth + "px;"; } + removeChildrenAndAdd(cm.display.measure, elt("div", [widget.node], null, parentStyle)); + } + return widget.height = widget.node.parentNode.offsetHeight + } + + // Return true when the given mouse event happened in a widget + function eventInWidget(display, e) { + for (var n = e_target(e); n != display.wrapper; n = n.parentNode) { + if (!n || (n.nodeType == 1 && n.getAttribute("cm-ignore-events") == "true") || + (n.parentNode == display.sizer && n != display.mover)) + { return true } + } + } + + // POSITION MEASUREMENT + + function paddingTop(display) {return display.lineSpace.offsetTop} + function paddingVert(display) {return display.mover.offsetHeight - display.lineSpace.offsetHeight} + function paddingH(display) { + if (display.cachedPaddingH) { return display.cachedPaddingH } + var e = removeChildrenAndAdd(display.measure, elt("pre", "x", "CodeMirror-line-like")); + var style = window.getComputedStyle ? window.getComputedStyle(e) : e.currentStyle; + var data = {left: parseInt(style.paddingLeft), right: parseInt(style.paddingRight)}; + if (!isNaN(data.left) && !isNaN(data.right)) { display.cachedPaddingH = data; } + return data + } + + function scrollGap(cm) { return scrollerGap - cm.display.nativeBarWidth } + function displayWidth(cm) { + return cm.display.scroller.clientWidth - scrollGap(cm) - cm.display.barWidth + } + function displayHeight(cm) { + return cm.display.scroller.clientHeight - scrollGap(cm) - cm.display.barHeight + } + + // Ensure the lineView.wrapping.heights array is populated. This is + // an array of bottom offsets for the lines that make up a drawn + // line. When lineWrapping is on, there might be more than one + // height. + function ensureLineHeights(cm, lineView, rect) { + var wrapping = cm.options.lineWrapping; + var curWidth = wrapping && displayWidth(cm); + if (!lineView.measure.heights || wrapping && lineView.measure.width != curWidth) { + var heights = lineView.measure.heights = []; + if (wrapping) { + lineView.measure.width = curWidth; + var rects = lineView.text.firstChild.getClientRects(); + for (var i = 0; i < rects.length - 1; i++) { + var cur = rects[i], next = rects[i + 1]; + if (Math.abs(cur.bottom - next.bottom) > 2) + { heights.push((cur.bottom + next.top) / 2 - rect.top); } + } + } + heights.push(rect.bottom - rect.top); + } + } + + // Find a line map (mapping character offsets to text nodes) and a + // measurement cache for the given line number. (A line view might + // contain multiple lines when collapsed ranges are present.) + function mapFromLineView(lineView, line, lineN) { + if (lineView.line == line) + { return {map: lineView.measure.map, cache: lineView.measure.cache} } + for (var i = 0; i < lineView.rest.length; i++) + { if (lineView.rest[i] == line) + { return {map: lineView.measure.maps[i], cache: lineView.measure.caches[i]} } } + for (var i$1 = 0; i$1 < lineView.rest.length; i$1++) + { if (lineNo(lineView.rest[i$1]) > lineN) + { return {map: lineView.measure.maps[i$1], cache: lineView.measure.caches[i$1], before: true} } } + } + + // Render a line into the hidden node display.externalMeasured. Used + // when measurement is needed for a line that's not in the viewport. + function updateExternalMeasurement(cm, line) { + line = visualLine(line); + var lineN = lineNo(line); + var view = cm.display.externalMeasured = new LineView(cm.doc, line, lineN); + view.lineN = lineN; + var built = view.built = buildLineContent(cm, view); + view.text = built.pre; + removeChildrenAndAdd(cm.display.lineMeasure, built.pre); + return view + } + + // Get a {top, bottom, left, right} box (in line-local coordinates) + // for a given character. + function measureChar(cm, line, ch, bias) { + return measureCharPrepared(cm, prepareMeasureForLine(cm, line), ch, bias) + } + + // Find a line view that corresponds to the given line number. + function findViewForLine(cm, lineN) { + if (lineN >= cm.display.viewFrom && lineN < cm.display.viewTo) + { return cm.display.view[findViewIndex(cm, lineN)] } + var ext = cm.display.externalMeasured; + if (ext && lineN >= ext.lineN && lineN < ext.lineN + ext.size) + { return ext } + } + + // Measurement can be split in two steps, the set-up work that + // applies to the whole line, and the measurement of the actual + // character. Functions like coordsChar, that need to do a lot of + // measurements in a row, can thus ensure that the set-up work is + // only done once. + function prepareMeasureForLine(cm, line) { + var lineN = lineNo(line); + var view = findViewForLine(cm, lineN); + if (view && !view.text) { + view = null; + } else if (view && view.changes) { + updateLineForChanges(cm, view, lineN, getDimensions(cm)); + cm.curOp.forceUpdate = true; + } + if (!view) + { view = updateExternalMeasurement(cm, line); } + + var info = mapFromLineView(view, line, lineN); + return { + line: line, view: view, rect: null, + map: info.map, cache: info.cache, before: info.before, + hasHeights: false + } + } + + // Given a prepared measurement object, measures the position of an + // actual character (or fetches it from the cache). + function measureCharPrepared(cm, prepared, ch, bias, varHeight) { + if (prepared.before) { ch = -1; } + var key = ch + (bias || ""), found; + if (prepared.cache.hasOwnProperty(key)) { + found = prepared.cache[key]; + } else { + if (!prepared.rect) + { prepared.rect = prepared.view.text.getBoundingClientRect(); } + if (!prepared.hasHeights) { + ensureLineHeights(cm, prepared.view, prepared.rect); + prepared.hasHeights = true; + } + found = measureCharInner(cm, prepared, ch, bias); + if (!found.bogus) { prepared.cache[key] = found; } + } + return {left: found.left, right: found.right, + top: varHeight ? found.rtop : found.top, + bottom: varHeight ? found.rbottom : found.bottom} + } + + var nullRect = {left: 0, right: 0, top: 0, bottom: 0}; + + function nodeAndOffsetInLineMap(map, ch, bias) { + var node, start, end, collapse, mStart, mEnd; + // First, search the line map for the text node corresponding to, + // or closest to, the target character. + for (var i = 0; i < map.length; i += 3) { + mStart = map[i]; + mEnd = map[i + 1]; + if (ch < mStart) { + start = 0; end = 1; + collapse = "left"; + } else if (ch < mEnd) { + start = ch - mStart; + end = start + 1; + } else if (i == map.length - 3 || ch == mEnd && map[i + 3] > ch) { + end = mEnd - mStart; + start = end - 1; + if (ch >= mEnd) { collapse = "right"; } + } + if (start != null) { + node = map[i + 2]; + if (mStart == mEnd && bias == (node.insertLeft ? "left" : "right")) + { collapse = bias; } + if (bias == "left" && start == 0) + { while (i && map[i - 2] == map[i - 3] && map[i - 1].insertLeft) { + node = map[(i -= 3) + 2]; + collapse = "left"; + } } + if (bias == "right" && start == mEnd - mStart) + { while (i < map.length - 3 && map[i + 3] == map[i + 4] && !map[i + 5].insertLeft) { + node = map[(i += 3) + 2]; + collapse = "right"; + } } + break + } + } + return {node: node, start: start, end: end, collapse: collapse, coverStart: mStart, coverEnd: mEnd} + } + + function getUsefulRect(rects, bias) { + var rect = nullRect; + if (bias == "left") { for (var i = 0; i < rects.length; i++) { + if ((rect = rects[i]).left != rect.right) { break } + } } else { for (var i$1 = rects.length - 1; i$1 >= 0; i$1--) { + if ((rect = rects[i$1]).left != rect.right) { break } + } } + return rect + } + + function measureCharInner(cm, prepared, ch, bias) { + var place = nodeAndOffsetInLineMap(prepared.map, ch, bias); + var node = place.node, start = place.start, end = place.end, collapse = place.collapse; + + var rect; + if (node.nodeType == 3) { // If it is a text node, use a range to retrieve the coordinates. + for (var i$1 = 0; i$1 < 4; i$1++) { // Retry a maximum of 4 times when nonsense rectangles are returned + while (start && isExtendingChar(prepared.line.text.charAt(place.coverStart + start))) { --start; } + while (place.coverStart + end < place.coverEnd && isExtendingChar(prepared.line.text.charAt(place.coverStart + end))) { ++end; } + if (ie && ie_version < 9 && start == 0 && end == place.coverEnd - place.coverStart) + { rect = node.parentNode.getBoundingClientRect(); } + else + { rect = getUsefulRect(range(node, start, end).getClientRects(), bias); } + if (rect.left || rect.right || start == 0) { break } + end = start; + start = start - 1; + collapse = "right"; + } + if (ie && ie_version < 11) { rect = maybeUpdateRectForZooming(cm.display.measure, rect); } + } else { // If it is a widget, simply get the box for the whole widget. + if (start > 0) { collapse = bias = "right"; } + var rects; + if (cm.options.lineWrapping && (rects = node.getClientRects()).length > 1) + { rect = rects[bias == "right" ? rects.length - 1 : 0]; } + else + { rect = node.getBoundingClientRect(); } + } + if (ie && ie_version < 9 && !start && (!rect || !rect.left && !rect.right)) { + var rSpan = node.parentNode.getClientRects()[0]; + if (rSpan) + { rect = {left: rSpan.left, right: rSpan.left + charWidth(cm.display), top: rSpan.top, bottom: rSpan.bottom}; } + else + { rect = nullRect; } + } + + var rtop = rect.top - prepared.rect.top, rbot = rect.bottom - prepared.rect.top; + var mid = (rtop + rbot) / 2; + var heights = prepared.view.measure.heights; + var i = 0; + for (; i < heights.length - 1; i++) + { if (mid < heights[i]) { break } } + var top = i ? heights[i - 1] : 0, bot = heights[i]; + var result = {left: (collapse == "right" ? rect.right : rect.left) - prepared.rect.left, + right: (collapse == "left" ? rect.left : rect.right) - prepared.rect.left, + top: top, bottom: bot}; + if (!rect.left && !rect.right) { result.bogus = true; } + if (!cm.options.singleCursorHeightPerLine) { result.rtop = rtop; result.rbottom = rbot; } + + return result + } + + // Work around problem with bounding client rects on ranges being + // returned incorrectly when zoomed on IE10 and below. + function maybeUpdateRectForZooming(measure, rect) { + if (!window.screen || screen.logicalXDPI == null || + screen.logicalXDPI == screen.deviceXDPI || !hasBadZoomedRects(measure)) + { return rect } + var scaleX = screen.logicalXDPI / screen.deviceXDPI; + var scaleY = screen.logicalYDPI / screen.deviceYDPI; + return {left: rect.left * scaleX, right: rect.right * scaleX, + top: rect.top * scaleY, bottom: rect.bottom * scaleY} + } + + function clearLineMeasurementCacheFor(lineView) { + if (lineView.measure) { + lineView.measure.cache = {}; + lineView.measure.heights = null; + if (lineView.rest) { for (var i = 0; i < lineView.rest.length; i++) + { lineView.measure.caches[i] = {}; } } + } + } + + function clearLineMeasurementCache(cm) { + cm.display.externalMeasure = null; + removeChildren(cm.display.lineMeasure); + for (var i = 0; i < cm.display.view.length; i++) + { clearLineMeasurementCacheFor(cm.display.view[i]); } + } + + function clearCaches(cm) { + clearLineMeasurementCache(cm); + cm.display.cachedCharWidth = cm.display.cachedTextHeight = cm.display.cachedPaddingH = null; + if (!cm.options.lineWrapping) { cm.display.maxLineChanged = true; } + cm.display.lineNumChars = null; + } + + function pageScrollX() { + // Work around https://bugs.chromium.org/p/chromium/issues/detail?id=489206 + // which causes page_Offset and bounding client rects to use + // different reference viewports and invalidate our calculations. + if (chrome && android) { return -(document.body.getBoundingClientRect().left - parseInt(getComputedStyle(document.body).marginLeft)) } + return window.pageXOffset || (document.documentElement || document.body).scrollLeft + } + function pageScrollY() { + if (chrome && android) { return -(document.body.getBoundingClientRect().top - parseInt(getComputedStyle(document.body).marginTop)) } + return window.pageYOffset || (document.documentElement || document.body).scrollTop + } + + function widgetTopHeight(lineObj) { + var height = 0; + if (lineObj.widgets) { for (var i = 0; i < lineObj.widgets.length; ++i) { if (lineObj.widgets[i].above) + { height += widgetHeight(lineObj.widgets[i]); } } } + return height + } + + // Converts a {top, bottom, left, right} box from line-local + // coordinates into another coordinate system. Context may be one of + // "line", "div" (display.lineDiv), "local"./null (editor), "window", + // or "page". + function intoCoordSystem(cm, lineObj, rect, context, includeWidgets) { + if (!includeWidgets) { + var height = widgetTopHeight(lineObj); + rect.top += height; rect.bottom += height; + } + if (context == "line") { return rect } + if (!context) { context = "local"; } + var yOff = heightAtLine(lineObj); + if (context == "local") { yOff += paddingTop(cm.display); } + else { yOff -= cm.display.viewOffset; } + if (context == "page" || context == "window") { + var lOff = cm.display.lineSpace.getBoundingClientRect(); + yOff += lOff.top + (context == "window" ? 0 : pageScrollY()); + var xOff = lOff.left + (context == "window" ? 0 : pageScrollX()); + rect.left += xOff; rect.right += xOff; + } + rect.top += yOff; rect.bottom += yOff; + return rect + } + + // Coverts a box from "div" coords to another coordinate system. + // Context may be "window", "page", "div", or "local"./null. + function fromCoordSystem(cm, coords, context) { + if (context == "div") { return coords } + var left = coords.left, top = coords.top; + // First move into "page" coordinate system + if (context == "page") { + left -= pageScrollX(); + top -= pageScrollY(); + } else if (context == "local" || !context) { + var localBox = cm.display.sizer.getBoundingClientRect(); + left += localBox.left; + top += localBox.top; + } + + var lineSpaceBox = cm.display.lineSpace.getBoundingClientRect(); + return {left: left - lineSpaceBox.left, top: top - lineSpaceBox.top} + } + + function charCoords(cm, pos, context, lineObj, bias) { + if (!lineObj) { lineObj = getLine(cm.doc, pos.line); } + return intoCoordSystem(cm, lineObj, measureChar(cm, lineObj, pos.ch, bias), context) + } + + // Returns a box for a given cursor position, which may have an + // 'other' property containing the position of the secondary cursor + // on a bidi boundary. + // A cursor Pos(line, char, "before") is on the same visual line as `char - 1` + // and after `char - 1` in writing order of `char - 1` + // A cursor Pos(line, char, "after") is on the same visual line as `char` + // and before `char` in writing order of `char` + // Examples (upper-case letters are RTL, lower-case are LTR): + // Pos(0, 1, ...) + // before after + // ab a|b a|b + // aB a|B aB| + // Ab |Ab A|b + // AB B|A B|A + // Every position after the last character on a line is considered to stick + // to the last character on the line. + function cursorCoords(cm, pos, context, lineObj, preparedMeasure, varHeight) { + lineObj = lineObj || getLine(cm.doc, pos.line); + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + function get(ch, right) { + var m = measureCharPrepared(cm, preparedMeasure, ch, right ? "right" : "left", varHeight); + if (right) { m.left = m.right; } else { m.right = m.left; } + return intoCoordSystem(cm, lineObj, m, context) + } + var order = getOrder(lineObj, cm.doc.direction), ch = pos.ch, sticky = pos.sticky; + if (ch >= lineObj.text.length) { + ch = lineObj.text.length; + sticky = "before"; + } else if (ch <= 0) { + ch = 0; + sticky = "after"; + } + if (!order) { return get(sticky == "before" ? ch - 1 : ch, sticky == "before") } + + function getBidi(ch, partPos, invert) { + var part = order[partPos], right = part.level == 1; + return get(invert ? ch - 1 : ch, right != invert) + } + var partPos = getBidiPartAt(order, ch, sticky); + var other = bidiOther; + var val = getBidi(ch, partPos, sticky == "before"); + if (other != null) { val.other = getBidi(ch, other, sticky != "before"); } + return val + } + + // Used to cheaply estimate the coordinates for a position. Used for + // intermediate scroll updates. + function estimateCoords(cm, pos) { + var left = 0; + pos = clipPos(cm.doc, pos); + if (!cm.options.lineWrapping) { left = charWidth(cm.display) * pos.ch; } + var lineObj = getLine(cm.doc, pos.line); + var top = heightAtLine(lineObj) + paddingTop(cm.display); + return {left: left, right: left, top: top, bottom: top + lineObj.height} + } + + // Positions returned by coordsChar contain some extra information. + // xRel is the relative x position of the input coordinates compared + // to the found position (so xRel > 0 means the coordinates are to + // the right of the character position, for example). When outside + // is true, that means the coordinates lie outside the line's + // vertical range. + function PosWithInfo(line, ch, sticky, outside, xRel) { + var pos = Pos(line, ch, sticky); + pos.xRel = xRel; + if (outside) { pos.outside = outside; } + return pos + } + + // Compute the character position closest to the given coordinates. + // Input must be lineSpace-local ("div" coordinate system). + function coordsChar(cm, x, y) { + var doc = cm.doc; + y += cm.display.viewOffset; + if (y < 0) { return PosWithInfo(doc.first, 0, null, -1, -1) } + var lineN = lineAtHeight(doc, y), last = doc.first + doc.size - 1; + if (lineN > last) + { return PosWithInfo(doc.first + doc.size - 1, getLine(doc, last).text.length, null, 1, 1) } + if (x < 0) { x = 0; } + + var lineObj = getLine(doc, lineN); + for (;;) { + var found = coordsCharInner(cm, lineObj, lineN, x, y); + var collapsed = collapsedSpanAround(lineObj, found.ch + (found.xRel > 0 || found.outside > 0 ? 1 : 0)); + if (!collapsed) { return found } + var rangeEnd = collapsed.find(1); + if (rangeEnd.line == lineN) { return rangeEnd } + lineObj = getLine(doc, lineN = rangeEnd.line); + } + } + + function wrappedLineExtent(cm, lineObj, preparedMeasure, y) { + y -= widgetTopHeight(lineObj); + var end = lineObj.text.length; + var begin = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch - 1).bottom <= y; }, end, 0); + end = findFirst(function (ch) { return measureCharPrepared(cm, preparedMeasure, ch).top > y; }, begin, end); + return {begin: begin, end: end} + } + + function wrappedLineExtentChar(cm, lineObj, preparedMeasure, target) { + if (!preparedMeasure) { preparedMeasure = prepareMeasureForLine(cm, lineObj); } + var targetTop = intoCoordSystem(cm, lineObj, measureCharPrepared(cm, preparedMeasure, target), "line").top; + return wrappedLineExtent(cm, lineObj, preparedMeasure, targetTop) + } + + // Returns true if the given side of a box is after the given + // coordinates, in top-to-bottom, left-to-right order. + function boxIsAfter(box, x, y, left) { + return box.bottom <= y ? false : box.top > y ? true : (left ? box.left : box.right) > x + } + + function coordsCharInner(cm, lineObj, lineNo, x, y) { + // Move y into line-local coordinate space + y -= heightAtLine(lineObj); + var preparedMeasure = prepareMeasureForLine(cm, lineObj); + // When directly calling `measureCharPrepared`, we have to adjust + // for the widgets at this line. + var widgetHeight = widgetTopHeight(lineObj); + var begin = 0, end = lineObj.text.length, ltr = true; + + var order = getOrder(lineObj, cm.doc.direction); + // If the line isn't plain left-to-right text, first figure out + // which bidi section the coordinates fall into. + if (order) { + var part = (cm.options.lineWrapping ? coordsBidiPartWrapped : coordsBidiPart) + (cm, lineObj, lineNo, preparedMeasure, order, x, y); + ltr = part.level != 1; + // The awkward -1 offsets are needed because findFirst (called + // on these below) will treat its first bound as inclusive, + // second as exclusive, but we want to actually address the + // characters in the part's range + begin = ltr ? part.from : part.to - 1; + end = ltr ? part.to : part.from - 1; + } + + // A binary search to find the first character whose bounding box + // starts after the coordinates. If we run across any whose box wrap + // the coordinates, store that. + var chAround = null, boxAround = null; + var ch = findFirst(function (ch) { + var box = measureCharPrepared(cm, preparedMeasure, ch); + box.top += widgetHeight; box.bottom += widgetHeight; + if (!boxIsAfter(box, x, y, false)) { return false } + if (box.top <= y && box.left <= x) { + chAround = ch; + boxAround = box; + } + return true + }, begin, end); + + var baseX, sticky, outside = false; + // If a box around the coordinates was found, use that + if (boxAround) { + // Distinguish coordinates nearer to the left or right side of the box + var atLeft = x - boxAround.left < boxAround.right - x, atStart = atLeft == ltr; + ch = chAround + (atStart ? 0 : 1); + sticky = atStart ? "after" : "before"; + baseX = atLeft ? boxAround.left : boxAround.right; + } else { + // (Adjust for extended bound, if necessary.) + if (!ltr && (ch == end || ch == begin)) { ch++; } + // To determine which side to associate with, get the box to the + // left of the character and compare it's vertical position to the + // coordinates + sticky = ch == 0 ? "after" : ch == lineObj.text.length ? "before" : + (measureCharPrepared(cm, preparedMeasure, ch - (ltr ? 1 : 0)).bottom + widgetHeight <= y) == ltr ? + "after" : "before"; + // Now get accurate coordinates for this place, in order to get a + // base X position + var coords = cursorCoords(cm, Pos(lineNo, ch, sticky), "line", lineObj, preparedMeasure); + baseX = coords.left; + outside = y < coords.top ? -1 : y >= coords.bottom ? 1 : 0; + } + + ch = skipExtendingChars(lineObj.text, ch, 1); + return PosWithInfo(lineNo, ch, sticky, outside, x - baseX) + } + + function coordsBidiPart(cm, lineObj, lineNo, preparedMeasure, order, x, y) { + // Bidi parts are sorted left-to-right, and in a non-line-wrapping + // situation, we can take this ordering to correspond to the visual + // ordering. This finds the first part whose end is after the given + // coordinates. + var index = findFirst(function (i) { + var part = order[i], ltr = part.level != 1; + return boxIsAfter(cursorCoords(cm, Pos(lineNo, ltr ? part.to : part.from, ltr ? "before" : "after"), + "line", lineObj, preparedMeasure), x, y, true) + }, 0, order.length - 1); + var part = order[index]; + // If this isn't the first part, the part's start is also after + // the coordinates, and the coordinates aren't on the same line as + // that start, move one part back. + if (index > 0) { + var ltr = part.level != 1; + var start = cursorCoords(cm, Pos(lineNo, ltr ? part.from : part.to, ltr ? "after" : "before"), + "line", lineObj, preparedMeasure); + if (boxIsAfter(start, x, y, true) && start.top > y) + { part = order[index - 1]; } + } + return part + } + + function coordsBidiPartWrapped(cm, lineObj, _lineNo, preparedMeasure, order, x, y) { + // In a wrapped line, rtl text on wrapping boundaries can do things + // that don't correspond to the ordering in our `order` array at + // all, so a binary search doesn't work, and we want to return a + // part that only spans one line so that the binary search in + // coordsCharInner is safe. As such, we first find the extent of the + // wrapped line, and then do a flat search in which we discard any + // spans that aren't on the line. + var ref = wrappedLineExtent(cm, lineObj, preparedMeasure, y); + var begin = ref.begin; + var end = ref.end; + if (/\s/.test(lineObj.text.charAt(end - 1))) { end--; } + var part = null, closestDist = null; + for (var i = 0; i < order.length; i++) { + var p = order[i]; + if (p.from >= end || p.to <= begin) { continue } + var ltr = p.level != 1; + var endX = measureCharPrepared(cm, preparedMeasure, ltr ? Math.min(end, p.to) - 1 : Math.max(begin, p.from)).right; + // Weigh against spans ending before this, so that they are only + // picked if nothing ends after + var dist = endX < x ? x - endX + 1e9 : endX - x; + if (!part || closestDist > dist) { + part = p; + closestDist = dist; + } + } + if (!part) { part = order[order.length - 1]; } + // Clip the part to the wrapped line. + if (part.from < begin) { part = {from: begin, to: part.to, level: part.level}; } + if (part.to > end) { part = {from: part.from, to: end, level: part.level}; } + return part + } + + var measureText; + // Compute the default text height. + function textHeight(display) { + if (display.cachedTextHeight != null) { return display.cachedTextHeight } + if (measureText == null) { + measureText = elt("pre", null, "CodeMirror-line-like"); + // Measure a bunch of lines, for browsers that compute + // fractional heights. + for (var i = 0; i < 49; ++i) { + measureText.appendChild(document.createTextNode("x")); + measureText.appendChild(elt("br")); + } + measureText.appendChild(document.createTextNode("x")); + } + removeChildrenAndAdd(display.measure, measureText); + var height = measureText.offsetHeight / 50; + if (height > 3) { display.cachedTextHeight = height; } + removeChildren(display.measure); + return height || 1 + } + + // Compute the default character width. + function charWidth(display) { + if (display.cachedCharWidth != null) { return display.cachedCharWidth } + var anchor = elt("span", "xxxxxxxxxx"); + var pre = elt("pre", [anchor], "CodeMirror-line-like"); + removeChildrenAndAdd(display.measure, pre); + var rect = anchor.getBoundingClientRect(), width = (rect.right - rect.left) / 10; + if (width > 2) { display.cachedCharWidth = width; } + return width || 10 + } + + // Do a bulk-read of the DOM positions and sizes needed to draw the + // view, so that we don't interleave reading and writing to the DOM. + function getDimensions(cm) { + var d = cm.display, left = {}, width = {}; + var gutterLeft = d.gutters.clientLeft; + for (var n = d.gutters.firstChild, i = 0; n; n = n.nextSibling, ++i) { + var id = cm.display.gutterSpecs[i].className; + left[id] = n.offsetLeft + n.clientLeft + gutterLeft; + width[id] = n.clientWidth; + } + return {fixedPos: compensateForHScroll(d), + gutterTotalWidth: d.gutters.offsetWidth, + gutterLeft: left, + gutterWidth: width, + wrapperWidth: d.wrapper.clientWidth} + } + + // Computes display.scroller.scrollLeft + display.gutters.offsetWidth, + // but using getBoundingClientRect to get a sub-pixel-accurate + // result. + function compensateForHScroll(display) { + return display.scroller.getBoundingClientRect().left - display.sizer.getBoundingClientRect().left + } + + // Returns a function that estimates the height of a line, to use as + // first approximation until the line becomes visible (and is thus + // properly measurable). + function estimateHeight(cm) { + var th = textHeight(cm.display), wrapping = cm.options.lineWrapping; + var perLine = wrapping && Math.max(5, cm.display.scroller.clientWidth / charWidth(cm.display) - 3); + return function (line) { + if (lineIsHidden(cm.doc, line)) { return 0 } + + var widgetsHeight = 0; + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) { + if (line.widgets[i].height) { widgetsHeight += line.widgets[i].height; } + } } + + if (wrapping) + { return widgetsHeight + (Math.ceil(line.text.length / perLine) || 1) * th } + else + { return widgetsHeight + th } + } + } + + function estimateLineHeights(cm) { + var doc = cm.doc, est = estimateHeight(cm); + doc.iter(function (line) { + var estHeight = est(line); + if (estHeight != line.height) { updateLineHeight(line, estHeight); } + }); + } + + // Given a mouse event, find the corresponding position. If liberal + // is false, it checks whether a gutter or scrollbar was clicked, + // and returns null if it was. forRect is used by rectangular + // selections, and tries to estimate a character position even for + // coordinates beyond the right of the text. + function posFromMouse(cm, e, liberal, forRect) { + var display = cm.display; + if (!liberal && e_target(e).getAttribute("cm-not-content") == "true") { return null } + + var x, y, space = display.lineSpace.getBoundingClientRect(); + // Fails unpredictably on IE[67] when mouse is dragged around quickly. + try { x = e.clientX - space.left; y = e.clientY - space.top; } + catch (e$1) { return null } + var coords = coordsChar(cm, x, y), line; + if (forRect && coords.xRel > 0 && (line = getLine(cm.doc, coords.line).text).length == coords.ch) { + var colDiff = countColumn(line, line.length, cm.options.tabSize) - line.length; + coords = Pos(coords.line, Math.max(0, Math.round((x - paddingH(cm.display).left) / charWidth(cm.display)) - colDiff)); + } + return coords + } + + // Find the view element corresponding to a given line. Return null + // when the line isn't visible. + function findViewIndex(cm, n) { + if (n >= cm.display.viewTo) { return null } + n -= cm.display.viewFrom; + if (n < 0) { return null } + var view = cm.display.view; + for (var i = 0; i < view.length; i++) { + n -= view[i].size; + if (n < 0) { return i } + } + } + + // Updates the display.view data structure for a given change to the + // document. From and to are in pre-change coordinates. Lendiff is + // the amount of lines added or subtracted by the change. This is + // used for changes that span multiple lines, or change the way + // lines are divided into visual lines. regLineChange (below) + // registers single-line changes. + function regChange(cm, from, to, lendiff) { + if (from == null) { from = cm.doc.first; } + if (to == null) { to = cm.doc.first + cm.doc.size; } + if (!lendiff) { lendiff = 0; } + + var display = cm.display; + if (lendiff && to < display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers > from)) + { display.updateLineNumbers = from; } + + cm.curOp.viewChanged = true; + + if (from >= display.viewTo) { // Change after + if (sawCollapsedSpans && visualLineNo(cm.doc, from) < display.viewTo) + { resetView(cm); } + } else if (to <= display.viewFrom) { // Change before + if (sawCollapsedSpans && visualLineEndNo(cm.doc, to + lendiff) > display.viewFrom) { + resetView(cm); + } else { + display.viewFrom += lendiff; + display.viewTo += lendiff; + } + } else if (from <= display.viewFrom && to >= display.viewTo) { // Full overlap + resetView(cm); + } else if (from <= display.viewFrom) { // Top overlap + var cut = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cut) { + display.view = display.view.slice(cut.index); + display.viewFrom = cut.lineN; + display.viewTo += lendiff; + } else { + resetView(cm); + } + } else if (to >= display.viewTo) { // Bottom overlap + var cut$1 = viewCuttingPoint(cm, from, from, -1); + if (cut$1) { + display.view = display.view.slice(0, cut$1.index); + display.viewTo = cut$1.lineN; + } else { + resetView(cm); + } + } else { // Gap in the middle + var cutTop = viewCuttingPoint(cm, from, from, -1); + var cutBot = viewCuttingPoint(cm, to, to + lendiff, 1); + if (cutTop && cutBot) { + display.view = display.view.slice(0, cutTop.index) + .concat(buildViewArray(cm, cutTop.lineN, cutBot.lineN)) + .concat(display.view.slice(cutBot.index)); + display.viewTo += lendiff; + } else { + resetView(cm); + } + } + + var ext = display.externalMeasured; + if (ext) { + if (to < ext.lineN) + { ext.lineN += lendiff; } + else if (from < ext.lineN + ext.size) + { display.externalMeasured = null; } + } + } + + // Register a change to a single line. Type must be one of "text", + // "gutter", "class", "widget" + function regLineChange(cm, line, type) { + cm.curOp.viewChanged = true; + var display = cm.display, ext = cm.display.externalMeasured; + if (ext && line >= ext.lineN && line < ext.lineN + ext.size) + { display.externalMeasured = null; } + + if (line < display.viewFrom || line >= display.viewTo) { return } + var lineView = display.view[findViewIndex(cm, line)]; + if (lineView.node == null) { return } + var arr = lineView.changes || (lineView.changes = []); + if (indexOf(arr, type) == -1) { arr.push(type); } + } + + // Clear the view. + function resetView(cm) { + cm.display.viewFrom = cm.display.viewTo = cm.doc.first; + cm.display.view = []; + cm.display.viewOffset = 0; + } + + function viewCuttingPoint(cm, oldN, newN, dir) { + var index = findViewIndex(cm, oldN), diff, view = cm.display.view; + if (!sawCollapsedSpans || newN == cm.doc.first + cm.doc.size) + { return {index: index, lineN: newN} } + var n = cm.display.viewFrom; + for (var i = 0; i < index; i++) + { n += view[i].size; } + if (n != oldN) { + if (dir > 0) { + if (index == view.length - 1) { return null } + diff = (n + view[index].size) - oldN; + index++; + } else { + diff = n - oldN; + } + oldN += diff; newN += diff; + } + while (visualLineNo(cm.doc, newN) != newN) { + if (index == (dir < 0 ? 0 : view.length - 1)) { return null } + newN += dir * view[index - (dir < 0 ? 1 : 0)].size; + index += dir; + } + return {index: index, lineN: newN} + } + + // Force the view to cover a given range, adding empty view element + // or clipping off existing ones as needed. + function adjustView(cm, from, to) { + var display = cm.display, view = display.view; + if (view.length == 0 || from >= display.viewTo || to <= display.viewFrom) { + display.view = buildViewArray(cm, from, to); + display.viewFrom = from; + } else { + if (display.viewFrom > from) + { display.view = buildViewArray(cm, from, display.viewFrom).concat(display.view); } + else if (display.viewFrom < from) + { display.view = display.view.slice(findViewIndex(cm, from)); } + display.viewFrom = from; + if (display.viewTo < to) + { display.view = display.view.concat(buildViewArray(cm, display.viewTo, to)); } + else if (display.viewTo > to) + { display.view = display.view.slice(0, findViewIndex(cm, to)); } + } + display.viewTo = to; + } + + // Count the number of lines in the view whose DOM representation is + // out of date (or nonexistent). + function countDirtyView(cm) { + var view = cm.display.view, dirty = 0; + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (!lineView.hidden && (!lineView.node || lineView.changes)) { ++dirty; } + } + return dirty + } + + function updateSelection(cm) { + cm.display.input.showSelection(cm.display.input.prepareSelection()); + } + + function prepareSelection(cm, primary) { + if ( primary === void 0 ) primary = true; + + var doc = cm.doc, result = {}; + var curFragment = result.cursors = document.createDocumentFragment(); + var selFragment = result.selection = document.createDocumentFragment(); + + for (var i = 0; i < doc.sel.ranges.length; i++) { + if (!primary && i == doc.sel.primIndex) { continue } + var range = doc.sel.ranges[i]; + if (range.from().line >= cm.display.viewTo || range.to().line < cm.display.viewFrom) { continue } + var collapsed = range.empty(); + if (collapsed || cm.options.showCursorWhenSelecting) + { drawSelectionCursor(cm, range.head, curFragment); } + if (!collapsed) + { drawSelectionRange(cm, range, selFragment); } + } + return result + } + + // Draws a cursor for the given range + function drawSelectionCursor(cm, head, output) { + var pos = cursorCoords(cm, head, "div", null, null, !cm.options.singleCursorHeightPerLine); + + var cursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor")); + cursor.style.left = pos.left + "px"; + cursor.style.top = pos.top + "px"; + cursor.style.height = Math.max(0, pos.bottom - pos.top) * cm.options.cursorHeight + "px"; + + if (pos.other) { + // Secondary cursor, shown when on a 'jump' in bi-directional text + var otherCursor = output.appendChild(elt("div", "\u00a0", "CodeMirror-cursor CodeMirror-secondarycursor")); + otherCursor.style.display = ""; + otherCursor.style.left = pos.other.left + "px"; + otherCursor.style.top = pos.other.top + "px"; + otherCursor.style.height = (pos.other.bottom - pos.other.top) * .85 + "px"; + } + } + + function cmpCoords(a, b) { return a.top - b.top || a.left - b.left } + + // Draws the given range as a highlighted selection + function drawSelectionRange(cm, range, output) { + var display = cm.display, doc = cm.doc; + var fragment = document.createDocumentFragment(); + var padding = paddingH(cm.display), leftSide = padding.left; + var rightSide = Math.max(display.sizerWidth, displayWidth(cm) - display.sizer.offsetLeft) - padding.right; + var docLTR = doc.direction == "ltr"; + + function add(left, top, width, bottom) { + if (top < 0) { top = 0; } + top = Math.round(top); + bottom = Math.round(bottom); + fragment.appendChild(elt("div", null, "CodeMirror-selected", ("position: absolute; left: " + left + "px;\n top: " + top + "px; width: " + (width == null ? rightSide - left : width) + "px;\n height: " + (bottom - top) + "px"))); + } + + function drawForLine(line, fromArg, toArg) { + var lineObj = getLine(doc, line); + var lineLen = lineObj.text.length; + var start, end; + function coords(ch, bias) { + return charCoords(cm, Pos(line, ch), "div", lineObj, bias) + } + + function wrapX(pos, dir, side) { + var extent = wrappedLineExtentChar(cm, lineObj, null, pos); + var prop = (dir == "ltr") == (side == "after") ? "left" : "right"; + var ch = side == "after" ? extent.begin : extent.end - (/\s/.test(lineObj.text.charAt(extent.end - 1)) ? 2 : 1); + return coords(ch, prop)[prop] + } + + var order = getOrder(lineObj, doc.direction); + iterateBidiSections(order, fromArg || 0, toArg == null ? lineLen : toArg, function (from, to, dir, i) { + var ltr = dir == "ltr"; + var fromPos = coords(from, ltr ? "left" : "right"); + var toPos = coords(to - 1, ltr ? "right" : "left"); + + var openStart = fromArg == null && from == 0, openEnd = toArg == null && to == lineLen; + var first = i == 0, last = !order || i == order.length - 1; + if (toPos.top - fromPos.top <= 3) { // Single line + var openLeft = (docLTR ? openStart : openEnd) && first; + var openRight = (docLTR ? openEnd : openStart) && last; + var left = openLeft ? leftSide : (ltr ? fromPos : toPos).left; + var right = openRight ? rightSide : (ltr ? toPos : fromPos).right; + add(left, fromPos.top, right - left, fromPos.bottom); + } else { // Multiple lines + var topLeft, topRight, botLeft, botRight; + if (ltr) { + topLeft = docLTR && openStart && first ? leftSide : fromPos.left; + topRight = docLTR ? rightSide : wrapX(from, dir, "before"); + botLeft = docLTR ? leftSide : wrapX(to, dir, "after"); + botRight = docLTR && openEnd && last ? rightSide : toPos.right; + } else { + topLeft = !docLTR ? leftSide : wrapX(from, dir, "before"); + topRight = !docLTR && openStart && first ? rightSide : fromPos.right; + botLeft = !docLTR && openEnd && last ? leftSide : toPos.left; + botRight = !docLTR ? rightSide : wrapX(to, dir, "after"); + } + add(topLeft, fromPos.top, topRight - topLeft, fromPos.bottom); + if (fromPos.bottom < toPos.top) { add(leftSide, fromPos.bottom, null, toPos.top); } + add(botLeft, toPos.top, botRight - botLeft, toPos.bottom); + } + + if (!start || cmpCoords(fromPos, start) < 0) { start = fromPos; } + if (cmpCoords(toPos, start) < 0) { start = toPos; } + if (!end || cmpCoords(fromPos, end) < 0) { end = fromPos; } + if (cmpCoords(toPos, end) < 0) { end = toPos; } + }); + return {start: start, end: end} + } + + var sFrom = range.from(), sTo = range.to(); + if (sFrom.line == sTo.line) { + drawForLine(sFrom.line, sFrom.ch, sTo.ch); + } else { + var fromLine = getLine(doc, sFrom.line), toLine = getLine(doc, sTo.line); + var singleVLine = visualLine(fromLine) == visualLine(toLine); + var leftEnd = drawForLine(sFrom.line, sFrom.ch, singleVLine ? fromLine.text.length + 1 : null).end; + var rightStart = drawForLine(sTo.line, singleVLine ? 0 : null, sTo.ch).start; + if (singleVLine) { + if (leftEnd.top < rightStart.top - 2) { + add(leftEnd.right, leftEnd.top, null, leftEnd.bottom); + add(leftSide, rightStart.top, rightStart.left, rightStart.bottom); + } else { + add(leftEnd.right, leftEnd.top, rightStart.left - leftEnd.right, leftEnd.bottom); + } + } + if (leftEnd.bottom < rightStart.top) + { add(leftSide, leftEnd.bottom, null, rightStart.top); } + } + + output.appendChild(fragment); + } + + // Cursor-blinking + function restartBlink(cm) { + if (!cm.state.focused) { return } + var display = cm.display; + clearInterval(display.blinker); + var on = true; + display.cursorDiv.style.visibility = ""; + if (cm.options.cursorBlinkRate > 0) + { display.blinker = setInterval(function () { + if (!cm.hasFocus()) { onBlur(cm); } + display.cursorDiv.style.visibility = (on = !on) ? "" : "hidden"; + }, cm.options.cursorBlinkRate); } + else if (cm.options.cursorBlinkRate < 0) + { display.cursorDiv.style.visibility = "hidden"; } + } + + function ensureFocus(cm) { + if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); } + } + + function delayBlurEvent(cm) { + cm.state.delayingBlurEvent = true; + setTimeout(function () { if (cm.state.delayingBlurEvent) { + cm.state.delayingBlurEvent = false; + onBlur(cm); + } }, 100); + } + + function onFocus(cm, e) { + if (cm.state.delayingBlurEvent) { cm.state.delayingBlurEvent = false; } + + if (cm.options.readOnly == "nocursor") { return } + if (!cm.state.focused) { + signal(cm, "focus", cm, e); + cm.state.focused = true; + addClass(cm.display.wrapper, "CodeMirror-focused"); + // This test prevents this from firing when a context + // menu is closed (since the input reset would kill the + // select-all detection hack) + if (!cm.curOp && cm.display.selForContextMenu != cm.doc.sel) { + cm.display.input.reset(); + if (webkit) { setTimeout(function () { return cm.display.input.reset(true); }, 20); } // Issue #1730 + } + cm.display.input.receivedFocus(); + } + restartBlink(cm); + } + function onBlur(cm, e) { + if (cm.state.delayingBlurEvent) { return } + + if (cm.state.focused) { + signal(cm, "blur", cm, e); + cm.state.focused = false; + rmClass(cm.display.wrapper, "CodeMirror-focused"); + } + clearInterval(cm.display.blinker); + setTimeout(function () { if (!cm.state.focused) { cm.display.shift = false; } }, 150); + } + + // Read the actual heights of the rendered lines, and update their + // stored heights to match. + function updateHeightsInViewport(cm) { + var display = cm.display; + var prevBottom = display.lineDiv.offsetTop; + for (var i = 0; i < display.view.length; i++) { + var cur = display.view[i], wrapping = cm.options.lineWrapping; + var height = (void 0), width = 0; + if (cur.hidden) { continue } + if (ie && ie_version < 8) { + var bot = cur.node.offsetTop + cur.node.offsetHeight; + height = bot - prevBottom; + prevBottom = bot; + } else { + var box = cur.node.getBoundingClientRect(); + height = box.bottom - box.top; + // Check that lines don't extend past the right of the current + // editor width + if (!wrapping && cur.text.firstChild) + { width = cur.text.firstChild.getBoundingClientRect().right - box.left - 1; } + } + var diff = cur.line.height - height; + if (diff > .005 || diff < -.005) { + updateLineHeight(cur.line, height); + updateWidgetHeight(cur.line); + if (cur.rest) { for (var j = 0; j < cur.rest.length; j++) + { updateWidgetHeight(cur.rest[j]); } } + } + if (width > cm.display.sizerWidth) { + var chWidth = Math.ceil(width / charWidth(cm.display)); + if (chWidth > cm.display.maxLineLength) { + cm.display.maxLineLength = chWidth; + cm.display.maxLine = cur.line; + cm.display.maxLineChanged = true; + } + } + } + } + + // Read and store the height of line widgets associated with the + // given line. + function updateWidgetHeight(line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; ++i) { + var w = line.widgets[i], parent = w.node.parentNode; + if (parent) { w.height = parent.offsetHeight; } + } } + } + + // Compute the lines that are visible in a given viewport (defaults + // the the current scroll position). viewport may contain top, + // height, and ensure (see op.scrollToPos) properties. + function visibleLines(display, doc, viewport) { + var top = viewport && viewport.top != null ? Math.max(0, viewport.top) : display.scroller.scrollTop; + top = Math.floor(top - paddingTop(display)); + var bottom = viewport && viewport.bottom != null ? viewport.bottom : top + display.wrapper.clientHeight; + + var from = lineAtHeight(doc, top), to = lineAtHeight(doc, bottom); + // Ensure is a {from: {line, ch}, to: {line, ch}} object, and + // forces those lines into the viewport (if possible). + if (viewport && viewport.ensure) { + var ensureFrom = viewport.ensure.from.line, ensureTo = viewport.ensure.to.line; + if (ensureFrom < from) { + from = ensureFrom; + to = lineAtHeight(doc, heightAtLine(getLine(doc, ensureFrom)) + display.wrapper.clientHeight); + } else if (Math.min(ensureTo, doc.lastLine()) >= to) { + from = lineAtHeight(doc, heightAtLine(getLine(doc, ensureTo)) - display.wrapper.clientHeight); + to = ensureTo; + } + } + return {from: from, to: Math.max(to, from + 1)} + } + + // SCROLLING THINGS INTO VIEW + + // If an editor sits on the top or bottom of the window, partially + // scrolled out of view, this ensures that the cursor is visible. + function maybeScrollWindow(cm, rect) { + if (signalDOMEvent(cm, "scrollCursorIntoView")) { return } + + var display = cm.display, box = display.sizer.getBoundingClientRect(), doScroll = null; + if (rect.top + box.top < 0) { doScroll = true; } + else if (rect.bottom + box.top > (window.innerHeight || document.documentElement.clientHeight)) { doScroll = false; } + if (doScroll != null && !phantom) { + var scrollNode = elt("div", "\u200b", null, ("position: absolute;\n top: " + (rect.top - display.viewOffset - paddingTop(cm.display)) + "px;\n height: " + (rect.bottom - rect.top + scrollGap(cm) + display.barHeight) + "px;\n left: " + (rect.left) + "px; width: " + (Math.max(2, rect.right - rect.left)) + "px;")); + cm.display.lineSpace.appendChild(scrollNode); + scrollNode.scrollIntoView(doScroll); + cm.display.lineSpace.removeChild(scrollNode); + } + } + + // Scroll a given position into view (immediately), verifying that + // it actually became visible (as line heights are accurately + // measured, the position of something may 'drift' during drawing). + function scrollPosIntoView(cm, pos, end, margin) { + if (margin == null) { margin = 0; } + var rect; + if (!cm.options.lineWrapping && pos == end) { + // Set pos and end to the cursor positions around the character pos sticks to + // If pos.sticky == "before", that is around pos.ch - 1, otherwise around pos.ch + // If pos == Pos(_, 0, "before"), pos and end are unchanged + pos = pos.ch ? Pos(pos.line, pos.sticky == "before" ? pos.ch - 1 : pos.ch, "after") : pos; + end = pos.sticky == "before" ? Pos(pos.line, pos.ch + 1, "before") : pos; + } + for (var limit = 0; limit < 5; limit++) { + var changed = false; + var coords = cursorCoords(cm, pos); + var endCoords = !end || end == pos ? coords : cursorCoords(cm, end); + rect = {left: Math.min(coords.left, endCoords.left), + top: Math.min(coords.top, endCoords.top) - margin, + right: Math.max(coords.left, endCoords.left), + bottom: Math.max(coords.bottom, endCoords.bottom) + margin}; + var scrollPos = calculateScrollPos(cm, rect); + var startTop = cm.doc.scrollTop, startLeft = cm.doc.scrollLeft; + if (scrollPos.scrollTop != null) { + updateScrollTop(cm, scrollPos.scrollTop); + if (Math.abs(cm.doc.scrollTop - startTop) > 1) { changed = true; } + } + if (scrollPos.scrollLeft != null) { + setScrollLeft(cm, scrollPos.scrollLeft); + if (Math.abs(cm.doc.scrollLeft - startLeft) > 1) { changed = true; } + } + if (!changed) { break } + } + return rect + } + + // Scroll a given set of coordinates into view (immediately). + function scrollIntoView(cm, rect) { + var scrollPos = calculateScrollPos(cm, rect); + if (scrollPos.scrollTop != null) { updateScrollTop(cm, scrollPos.scrollTop); } + if (scrollPos.scrollLeft != null) { setScrollLeft(cm, scrollPos.scrollLeft); } + } + + // Calculate a new scroll position needed to scroll the given + // rectangle into view. Returns an object with scrollTop and + // scrollLeft properties. When these are undefined, the + // vertical/horizontal position does not need to be adjusted. + function calculateScrollPos(cm, rect) { + var display = cm.display, snapMargin = textHeight(cm.display); + if (rect.top < 0) { rect.top = 0; } + var screentop = cm.curOp && cm.curOp.scrollTop != null ? cm.curOp.scrollTop : display.scroller.scrollTop; + var screen = displayHeight(cm), result = {}; + if (rect.bottom - rect.top > screen) { rect.bottom = rect.top + screen; } + var docBottom = cm.doc.height + paddingVert(display); + var atTop = rect.top < snapMargin, atBottom = rect.bottom > docBottom - snapMargin; + if (rect.top < screentop) { + result.scrollTop = atTop ? 0 : rect.top; + } else if (rect.bottom > screentop + screen) { + var newTop = Math.min(rect.top, (atBottom ? docBottom : rect.bottom) - screen); + if (newTop != screentop) { result.scrollTop = newTop; } + } + + var screenleft = cm.curOp && cm.curOp.scrollLeft != null ? cm.curOp.scrollLeft : display.scroller.scrollLeft; + var screenw = displayWidth(cm) - (cm.options.fixedGutter ? display.gutters.offsetWidth : 0); + var tooWide = rect.right - rect.left > screenw; + if (tooWide) { rect.right = rect.left + screenw; } + if (rect.left < 10) + { result.scrollLeft = 0; } + else if (rect.left < screenleft) + { result.scrollLeft = Math.max(0, rect.left - (tooWide ? 0 : 10)); } + else if (rect.right > screenw + screenleft - 3) + { result.scrollLeft = rect.right + (tooWide ? 0 : 10) - screenw; } + return result + } + + // Store a relative adjustment to the scroll position in the current + // operation (to be applied when the operation finishes). + function addToScrollTop(cm, top) { + if (top == null) { return } + resolveScrollToPos(cm); + cm.curOp.scrollTop = (cm.curOp.scrollTop == null ? cm.doc.scrollTop : cm.curOp.scrollTop) + top; + } + + // Make sure that at the end of the operation the current cursor is + // shown. + function ensureCursorVisible(cm) { + resolveScrollToPos(cm); + var cur = cm.getCursor(); + cm.curOp.scrollToPos = {from: cur, to: cur, margin: cm.options.cursorScrollMargin}; + } + + function scrollToCoords(cm, x, y) { + if (x != null || y != null) { resolveScrollToPos(cm); } + if (x != null) { cm.curOp.scrollLeft = x; } + if (y != null) { cm.curOp.scrollTop = y; } + } + + function scrollToRange(cm, range) { + resolveScrollToPos(cm); + cm.curOp.scrollToPos = range; + } + + // When an operation has its scrollToPos property set, and another + // scroll action is applied before the end of the operation, this + // 'simulates' scrolling that position into view in a cheap way, so + // that the effect of intermediate scroll commands is not ignored. + function resolveScrollToPos(cm) { + var range = cm.curOp.scrollToPos; + if (range) { + cm.curOp.scrollToPos = null; + var from = estimateCoords(cm, range.from), to = estimateCoords(cm, range.to); + scrollToCoordsRange(cm, from, to, range.margin); + } + } + + function scrollToCoordsRange(cm, from, to, margin) { + var sPos = calculateScrollPos(cm, { + left: Math.min(from.left, to.left), + top: Math.min(from.top, to.top) - margin, + right: Math.max(from.right, to.right), + bottom: Math.max(from.bottom, to.bottom) + margin + }); + scrollToCoords(cm, sPos.scrollLeft, sPos.scrollTop); + } + + // Sync the scrollable area and scrollbars, ensure the viewport + // covers the visible area. + function updateScrollTop(cm, val) { + if (Math.abs(cm.doc.scrollTop - val) < 2) { return } + if (!gecko) { updateDisplaySimple(cm, {top: val}); } + setScrollTop(cm, val, true); + if (gecko) { updateDisplaySimple(cm); } + startWorker(cm, 100); + } + + function setScrollTop(cm, val, forceScroll) { + val = Math.max(0, Math.min(cm.display.scroller.scrollHeight - cm.display.scroller.clientHeight, val)); + if (cm.display.scroller.scrollTop == val && !forceScroll) { return } + cm.doc.scrollTop = val; + cm.display.scrollbars.setScrollTop(val); + if (cm.display.scroller.scrollTop != val) { cm.display.scroller.scrollTop = val; } + } + + // Sync scroller and scrollbar, ensure the gutter elements are + // aligned. + function setScrollLeft(cm, val, isScroller, forceScroll) { + val = Math.max(0, Math.min(val, cm.display.scroller.scrollWidth - cm.display.scroller.clientWidth)); + if ((isScroller ? val == cm.doc.scrollLeft : Math.abs(cm.doc.scrollLeft - val) < 2) && !forceScroll) { return } + cm.doc.scrollLeft = val; + alignHorizontally(cm); + if (cm.display.scroller.scrollLeft != val) { cm.display.scroller.scrollLeft = val; } + cm.display.scrollbars.setScrollLeft(val); + } + + // SCROLLBARS + + // Prepare DOM reads needed to update the scrollbars. Done in one + // shot to minimize update/measure roundtrips. + function measureForScrollbars(cm) { + var d = cm.display, gutterW = d.gutters.offsetWidth; + var docH = Math.round(cm.doc.height + paddingVert(cm.display)); + return { + clientHeight: d.scroller.clientHeight, + viewHeight: d.wrapper.clientHeight, + scrollWidth: d.scroller.scrollWidth, clientWidth: d.scroller.clientWidth, + viewWidth: d.wrapper.clientWidth, + barLeft: cm.options.fixedGutter ? gutterW : 0, + docHeight: docH, + scrollHeight: docH + scrollGap(cm) + d.barHeight, + nativeBarWidth: d.nativeBarWidth, + gutterWidth: gutterW + } + } + + var NativeScrollbars = function(place, scroll, cm) { + this.cm = cm; + var vert = this.vert = elt("div", [elt("div", null, null, "min-width: 1px")], "CodeMirror-vscrollbar"); + var horiz = this.horiz = elt("div", [elt("div", null, null, "height: 100%; min-height: 1px")], "CodeMirror-hscrollbar"); + vert.tabIndex = horiz.tabIndex = -1; + place(vert); place(horiz); + + on(vert, "scroll", function () { + if (vert.clientHeight) { scroll(vert.scrollTop, "vertical"); } + }); + on(horiz, "scroll", function () { + if (horiz.clientWidth) { scroll(horiz.scrollLeft, "horizontal"); } + }); + + this.checkedZeroWidth = false; + // Need to set a minimum width to see the scrollbar on IE7 (but must not set it on IE8). + if (ie && ie_version < 8) { this.horiz.style.minHeight = this.vert.style.minWidth = "18px"; } + }; + + NativeScrollbars.prototype.update = function (measure) { + var needsH = measure.scrollWidth > measure.clientWidth + 1; + var needsV = measure.scrollHeight > measure.clientHeight + 1; + var sWidth = measure.nativeBarWidth; + + if (needsV) { + this.vert.style.display = "block"; + this.vert.style.bottom = needsH ? sWidth + "px" : "0"; + var totalHeight = measure.viewHeight - (needsH ? sWidth : 0); + // A bug in IE8 can cause this value to be negative, so guard it. + this.vert.firstChild.style.height = + Math.max(0, measure.scrollHeight - measure.clientHeight + totalHeight) + "px"; + } else { + this.vert.style.display = ""; + this.vert.firstChild.style.height = "0"; + } + + if (needsH) { + this.horiz.style.display = "block"; + this.horiz.style.right = needsV ? sWidth + "px" : "0"; + this.horiz.style.left = measure.barLeft + "px"; + var totalWidth = measure.viewWidth - measure.barLeft - (needsV ? sWidth : 0); + this.horiz.firstChild.style.width = + Math.max(0, measure.scrollWidth - measure.clientWidth + totalWidth) + "px"; + } else { + this.horiz.style.display = ""; + this.horiz.firstChild.style.width = "0"; + } + + if (!this.checkedZeroWidth && measure.clientHeight > 0) { + if (sWidth == 0) { this.zeroWidthHack(); } + this.checkedZeroWidth = true; + } + + return {right: needsV ? sWidth : 0, bottom: needsH ? sWidth : 0} + }; + + NativeScrollbars.prototype.setScrollLeft = function (pos) { + if (this.horiz.scrollLeft != pos) { this.horiz.scrollLeft = pos; } + if (this.disableHoriz) { this.enableZeroWidthBar(this.horiz, this.disableHoriz, "horiz"); } + }; + + NativeScrollbars.prototype.setScrollTop = function (pos) { + if (this.vert.scrollTop != pos) { this.vert.scrollTop = pos; } + if (this.disableVert) { this.enableZeroWidthBar(this.vert, this.disableVert, "vert"); } + }; + + NativeScrollbars.prototype.zeroWidthHack = function () { + var w = mac && !mac_geMountainLion ? "12px" : "18px"; + this.horiz.style.height = this.vert.style.width = w; + this.horiz.style.pointerEvents = this.vert.style.pointerEvents = "none"; + this.disableHoriz = new Delayed; + this.disableVert = new Delayed; + }; + + NativeScrollbars.prototype.enableZeroWidthBar = function (bar, delay, type) { + bar.style.pointerEvents = "auto"; + function maybeDisable() { + // To find out whether the scrollbar is still visible, we + // check whether the element under the pixel in the bottom + // right corner of the scrollbar box is the scrollbar box + // itself (when the bar is still visible) or its filler child + // (when the bar is hidden). If it is still visible, we keep + // it enabled, if it's hidden, we disable pointer events. + var box = bar.getBoundingClientRect(); + var elt = type == "vert" ? document.elementFromPoint(box.right - 1, (box.top + box.bottom) / 2) + : document.elementFromPoint((box.right + box.left) / 2, box.bottom - 1); + if (elt != bar) { bar.style.pointerEvents = "none"; } + else { delay.set(1000, maybeDisable); } + } + delay.set(1000, maybeDisable); + }; + + NativeScrollbars.prototype.clear = function () { + var parent = this.horiz.parentNode; + parent.removeChild(this.horiz); + parent.removeChild(this.vert); + }; + + var NullScrollbars = function () {}; + + NullScrollbars.prototype.update = function () { return {bottom: 0, right: 0} }; + NullScrollbars.prototype.setScrollLeft = function () {}; + NullScrollbars.prototype.setScrollTop = function () {}; + NullScrollbars.prototype.clear = function () {}; + + function updateScrollbars(cm, measure) { + if (!measure) { measure = measureForScrollbars(cm); } + var startWidth = cm.display.barWidth, startHeight = cm.display.barHeight; + updateScrollbarsInner(cm, measure); + for (var i = 0; i < 4 && startWidth != cm.display.barWidth || startHeight != cm.display.barHeight; i++) { + if (startWidth != cm.display.barWidth && cm.options.lineWrapping) + { updateHeightsInViewport(cm); } + updateScrollbarsInner(cm, measureForScrollbars(cm)); + startWidth = cm.display.barWidth; startHeight = cm.display.barHeight; + } + } + + // Re-synchronize the fake scrollbars with the actual size of the + // content. + function updateScrollbarsInner(cm, measure) { + var d = cm.display; + var sizes = d.scrollbars.update(measure); + + d.sizer.style.paddingRight = (d.barWidth = sizes.right) + "px"; + d.sizer.style.paddingBottom = (d.barHeight = sizes.bottom) + "px"; + d.heightForcer.style.borderBottom = sizes.bottom + "px solid transparent"; + + if (sizes.right && sizes.bottom) { + d.scrollbarFiller.style.display = "block"; + d.scrollbarFiller.style.height = sizes.bottom + "px"; + d.scrollbarFiller.style.width = sizes.right + "px"; + } else { d.scrollbarFiller.style.display = ""; } + if (sizes.bottom && cm.options.coverGutterNextToScrollbar && cm.options.fixedGutter) { + d.gutterFiller.style.display = "block"; + d.gutterFiller.style.height = sizes.bottom + "px"; + d.gutterFiller.style.width = measure.gutterWidth + "px"; + } else { d.gutterFiller.style.display = ""; } + } + + var scrollbarModel = {"native": NativeScrollbars, "null": NullScrollbars}; + + function initScrollbars(cm) { + if (cm.display.scrollbars) { + cm.display.scrollbars.clear(); + if (cm.display.scrollbars.addClass) + { rmClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + cm.display.scrollbars = new scrollbarModel[cm.options.scrollbarStyle](function (node) { + cm.display.wrapper.insertBefore(node, cm.display.scrollbarFiller); + // Prevent clicks in the scrollbars from killing focus + on(node, "mousedown", function () { + if (cm.state.focused) { setTimeout(function () { return cm.display.input.focus(); }, 0); } + }); + node.setAttribute("cm-not-content", "true"); + }, function (pos, axis) { + if (axis == "horizontal") { setScrollLeft(cm, pos); } + else { updateScrollTop(cm, pos); } + }, cm); + if (cm.display.scrollbars.addClass) + { addClass(cm.display.wrapper, cm.display.scrollbars.addClass); } + } + + // Operations are used to wrap a series of changes to the editor + // state in such a way that each change won't have to update the + // cursor and display (which would be awkward, slow, and + // error-prone). Instead, display updates are batched and then all + // combined and executed at once. + + var nextOpId = 0; + // Start a new operation. + function startOperation(cm) { + cm.curOp = { + cm: cm, + viewChanged: false, // Flag that indicates that lines might need to be redrawn + startHeight: cm.doc.height, // Used to detect need to update scrollbar + forceUpdate: false, // Used to force a redraw + updateInput: 0, // Whether to reset the input textarea + typing: false, // Whether this reset should be careful to leave existing text (for compositing) + changeObjs: null, // Accumulated changes, for firing change events + cursorActivityHandlers: null, // Set of handlers to fire cursorActivity on + cursorActivityCalled: 0, // Tracks which cursorActivity handlers have been called already + selectionChanged: false, // Whether the selection needs to be redrawn + updateMaxLine: false, // Set when the widest line needs to be determined anew + scrollLeft: null, scrollTop: null, // Intermediate scroll position, not pushed to DOM yet + scrollToPos: null, // Used to scroll to a specific position + focus: false, + id: ++nextOpId // Unique ID + }; + pushOperation(cm.curOp); + } + + // Finish an operation, updating the display and signalling delayed events + function endOperation(cm) { + var op = cm.curOp; + if (op) { finishOperation(op, function (group) { + for (var i = 0; i < group.ops.length; i++) + { group.ops[i].cm.curOp = null; } + endOperations(group); + }); } + } + + // The DOM updates done when an operation finishes are batched so + // that the minimum number of relayouts are required. + function endOperations(group) { + var ops = group.ops; + for (var i = 0; i < ops.length; i++) // Read DOM + { endOperation_R1(ops[i]); } + for (var i$1 = 0; i$1 < ops.length; i$1++) // Write DOM (maybe) + { endOperation_W1(ops[i$1]); } + for (var i$2 = 0; i$2 < ops.length; i$2++) // Read DOM + { endOperation_R2(ops[i$2]); } + for (var i$3 = 0; i$3 < ops.length; i$3++) // Write DOM (maybe) + { endOperation_W2(ops[i$3]); } + for (var i$4 = 0; i$4 < ops.length; i$4++) // Read DOM + { endOperation_finish(ops[i$4]); } + } + + function endOperation_R1(op) { + var cm = op.cm, display = cm.display; + maybeClipScrollbars(cm); + if (op.updateMaxLine) { findMaxLine(cm); } + + op.mustUpdate = op.viewChanged || op.forceUpdate || op.scrollTop != null || + op.scrollToPos && (op.scrollToPos.from.line < display.viewFrom || + op.scrollToPos.to.line >= display.viewTo) || + display.maxLineChanged && cm.options.lineWrapping; + op.update = op.mustUpdate && + new DisplayUpdate(cm, op.mustUpdate && {top: op.scrollTop, ensure: op.scrollToPos}, op.forceUpdate); + } + + function endOperation_W1(op) { + op.updatedDisplay = op.mustUpdate && updateDisplayIfNeeded(op.cm, op.update); + } + + function endOperation_R2(op) { + var cm = op.cm, display = cm.display; + if (op.updatedDisplay) { updateHeightsInViewport(cm); } + + op.barMeasure = measureForScrollbars(cm); + + // If the max line changed since it was last measured, measure it, + // and ensure the document's width matches it. + // updateDisplay_W2 will use these properties to do the actual resizing + if (display.maxLineChanged && !cm.options.lineWrapping) { + op.adjustWidthTo = measureChar(cm, display.maxLine, display.maxLine.text.length).left + 3; + cm.display.sizerWidth = op.adjustWidthTo; + op.barMeasure.scrollWidth = + Math.max(display.scroller.clientWidth, display.sizer.offsetLeft + op.adjustWidthTo + scrollGap(cm) + cm.display.barWidth); + op.maxScrollLeft = Math.max(0, display.sizer.offsetLeft + op.adjustWidthTo - displayWidth(cm)); + } + + if (op.updatedDisplay || op.selectionChanged) + { op.preparedSelection = display.input.prepareSelection(); } + } + + function endOperation_W2(op) { + var cm = op.cm; + + if (op.adjustWidthTo != null) { + cm.display.sizer.style.minWidth = op.adjustWidthTo + "px"; + if (op.maxScrollLeft < cm.doc.scrollLeft) + { setScrollLeft(cm, Math.min(cm.display.scroller.scrollLeft, op.maxScrollLeft), true); } + cm.display.maxLineChanged = false; + } + + var takeFocus = op.focus && op.focus == activeElt(); + if (op.preparedSelection) + { cm.display.input.showSelection(op.preparedSelection, takeFocus); } + if (op.updatedDisplay || op.startHeight != cm.doc.height) + { updateScrollbars(cm, op.barMeasure); } + if (op.updatedDisplay) + { setDocumentHeight(cm, op.barMeasure); } + + if (op.selectionChanged) { restartBlink(cm); } + + if (cm.state.focused && op.updateInput) + { cm.display.input.reset(op.typing); } + if (takeFocus) { ensureFocus(op.cm); } + } + + function endOperation_finish(op) { + var cm = op.cm, display = cm.display, doc = cm.doc; + + if (op.updatedDisplay) { postUpdateDisplay(cm, op.update); } + + // Abort mouse wheel delta measurement, when scrolling explicitly + if (display.wheelStartX != null && (op.scrollTop != null || op.scrollLeft != null || op.scrollToPos)) + { display.wheelStartX = display.wheelStartY = null; } + + // Propagate the scroll position to the actual DOM scroller + if (op.scrollTop != null) { setScrollTop(cm, op.scrollTop, op.forceScroll); } + + if (op.scrollLeft != null) { setScrollLeft(cm, op.scrollLeft, true, true); } + // If we need to scroll a specific position into view, do so. + if (op.scrollToPos) { + var rect = scrollPosIntoView(cm, clipPos(doc, op.scrollToPos.from), + clipPos(doc, op.scrollToPos.to), op.scrollToPos.margin); + maybeScrollWindow(cm, rect); + } + + // Fire events for markers that are hidden/unidden by editing or + // undoing + var hidden = op.maybeHiddenMarkers, unhidden = op.maybeUnhiddenMarkers; + if (hidden) { for (var i = 0; i < hidden.length; ++i) + { if (!hidden[i].lines.length) { signal(hidden[i], "hide"); } } } + if (unhidden) { for (var i$1 = 0; i$1 < unhidden.length; ++i$1) + { if (unhidden[i$1].lines.length) { signal(unhidden[i$1], "unhide"); } } } + + if (display.wrapper.offsetHeight) + { doc.scrollTop = cm.display.scroller.scrollTop; } + + // Fire change events, and delayed event handlers + if (op.changeObjs) + { signal(cm, "changes", cm, op.changeObjs); } + if (op.update) + { op.update.finish(); } + } + + // Run the given function in an operation + function runInOp(cm, f) { + if (cm.curOp) { return f() } + startOperation(cm); + try { return f() } + finally { endOperation(cm); } + } + // Wraps a function in an operation. Returns the wrapped function. + function operation(cm, f) { + return function() { + if (cm.curOp) { return f.apply(cm, arguments) } + startOperation(cm); + try { return f.apply(cm, arguments) } + finally { endOperation(cm); } + } + } + // Used to add methods to editor and doc instances, wrapping them in + // operations. + function methodOp(f) { + return function() { + if (this.curOp) { return f.apply(this, arguments) } + startOperation(this); + try { return f.apply(this, arguments) } + finally { endOperation(this); } + } + } + function docMethodOp(f) { + return function() { + var cm = this.cm; + if (!cm || cm.curOp) { return f.apply(this, arguments) } + startOperation(cm); + try { return f.apply(this, arguments) } + finally { endOperation(cm); } + } + } + + // HIGHLIGHT WORKER + + function startWorker(cm, time) { + if (cm.doc.highlightFrontier < cm.display.viewTo) + { cm.state.highlight.set(time, bind(highlightWorker, cm)); } + } + + function highlightWorker(cm) { + var doc = cm.doc; + if (doc.highlightFrontier >= cm.display.viewTo) { return } + var end = +new Date + cm.options.workTime; + var context = getContextBefore(cm, doc.highlightFrontier); + var changedLines = []; + + doc.iter(context.line, Math.min(doc.first + doc.size, cm.display.viewTo + 500), function (line) { + if (context.line >= cm.display.viewFrom) { // Visible + var oldStyles = line.styles; + var resetState = line.text.length > cm.options.maxHighlightLength ? copyState(doc.mode, context.state) : null; + var highlighted = highlightLine(cm, line, context, true); + if (resetState) { context.state = resetState; } + line.styles = highlighted.styles; + var oldCls = line.styleClasses, newCls = highlighted.classes; + if (newCls) { line.styleClasses = newCls; } + else if (oldCls) { line.styleClasses = null; } + var ischange = !oldStyles || oldStyles.length != line.styles.length || + oldCls != newCls && (!oldCls || !newCls || oldCls.bgClass != newCls.bgClass || oldCls.textClass != newCls.textClass); + for (var i = 0; !ischange && i < oldStyles.length; ++i) { ischange = oldStyles[i] != line.styles[i]; } + if (ischange) { changedLines.push(context.line); } + line.stateAfter = context.save(); + context.nextLine(); + } else { + if (line.text.length <= cm.options.maxHighlightLength) + { processLine(cm, line.text, context); } + line.stateAfter = context.line % 5 == 0 ? context.save() : null; + context.nextLine(); + } + if (+new Date > end) { + startWorker(cm, cm.options.workDelay); + return true + } + }); + doc.highlightFrontier = context.line; + doc.modeFrontier = Math.max(doc.modeFrontier, context.line); + if (changedLines.length) { runInOp(cm, function () { + for (var i = 0; i < changedLines.length; i++) + { regLineChange(cm, changedLines[i], "text"); } + }); } + } + + // DISPLAY DRAWING + + var DisplayUpdate = function(cm, viewport, force) { + var display = cm.display; + + this.viewport = viewport; + // Store some values that we'll need later (but don't want to force a relayout for) + this.visible = visibleLines(display, cm.doc, viewport); + this.editorIsHidden = !display.wrapper.offsetWidth; + this.wrapperHeight = display.wrapper.clientHeight; + this.wrapperWidth = display.wrapper.clientWidth; + this.oldDisplayWidth = displayWidth(cm); + this.force = force; + this.dims = getDimensions(cm); + this.events = []; + }; + + DisplayUpdate.prototype.signal = function (emitter, type) { + if (hasHandler(emitter, type)) + { this.events.push(arguments); } + }; + DisplayUpdate.prototype.finish = function () { + for (var i = 0; i < this.events.length; i++) + { signal.apply(null, this.events[i]); } + }; + + function maybeClipScrollbars(cm) { + var display = cm.display; + if (!display.scrollbarsClipped && display.scroller.offsetWidth) { + display.nativeBarWidth = display.scroller.offsetWidth - display.scroller.clientWidth; + display.heightForcer.style.height = scrollGap(cm) + "px"; + display.sizer.style.marginBottom = -display.nativeBarWidth + "px"; + display.sizer.style.borderRightWidth = scrollGap(cm) + "px"; + display.scrollbarsClipped = true; + } + } + + function selectionSnapshot(cm) { + if (cm.hasFocus()) { return null } + var active = activeElt(); + if (!active || !contains(cm.display.lineDiv, active)) { return null } + var result = {activeElt: active}; + if (window.getSelection) { + var sel = window.getSelection(); + if (sel.anchorNode && sel.extend && contains(cm.display.lineDiv, sel.anchorNode)) { + result.anchorNode = sel.anchorNode; + result.anchorOffset = sel.anchorOffset; + result.focusNode = sel.focusNode; + result.focusOffset = sel.focusOffset; + } + } + return result + } + + function restoreSelection(snapshot) { + if (!snapshot || !snapshot.activeElt || snapshot.activeElt == activeElt()) { return } + snapshot.activeElt.focus(); + if (!/^(INPUT|TEXTAREA)$/.test(snapshot.activeElt.nodeName) && + snapshot.anchorNode && contains(document.body, snapshot.anchorNode) && contains(document.body, snapshot.focusNode)) { + var sel = window.getSelection(), range = document.createRange(); + range.setEnd(snapshot.anchorNode, snapshot.anchorOffset); + range.collapse(false); + sel.removeAllRanges(); + sel.addRange(range); + sel.extend(snapshot.focusNode, snapshot.focusOffset); + } + } + + // Does the actual updating of the line display. Bails out + // (returning false) when there is nothing to be done and forced is + // false. + function updateDisplayIfNeeded(cm, update) { + var display = cm.display, doc = cm.doc; + + if (update.editorIsHidden) { + resetView(cm); + return false + } + + // Bail out if the visible area is already rendered and nothing changed. + if (!update.force && + update.visible.from >= display.viewFrom && update.visible.to <= display.viewTo && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo) && + display.renderedView == display.view && countDirtyView(cm) == 0) + { return false } + + if (maybeUpdateLineNumberWidth(cm)) { + resetView(cm); + update.dims = getDimensions(cm); + } + + // Compute a suitable new viewport (from & to) + var end = doc.first + doc.size; + var from = Math.max(update.visible.from - cm.options.viewportMargin, doc.first); + var to = Math.min(end, update.visible.to + cm.options.viewportMargin); + if (display.viewFrom < from && from - display.viewFrom < 20) { from = Math.max(doc.first, display.viewFrom); } + if (display.viewTo > to && display.viewTo - to < 20) { to = Math.min(end, display.viewTo); } + if (sawCollapsedSpans) { + from = visualLineNo(cm.doc, from); + to = visualLineEndNo(cm.doc, to); + } + + var different = from != display.viewFrom || to != display.viewTo || + display.lastWrapHeight != update.wrapperHeight || display.lastWrapWidth != update.wrapperWidth; + adjustView(cm, from, to); + + display.viewOffset = heightAtLine(getLine(cm.doc, display.viewFrom)); + // Position the mover div to align with the current scroll position + cm.display.mover.style.top = display.viewOffset + "px"; + + var toUpdate = countDirtyView(cm); + if (!different && toUpdate == 0 && !update.force && display.renderedView == display.view && + (display.updateLineNumbers == null || display.updateLineNumbers >= display.viewTo)) + { return false } + + // For big changes, we hide the enclosing element during the + // update, since that speeds up the operations on most browsers. + var selSnapshot = selectionSnapshot(cm); + if (toUpdate > 4) { display.lineDiv.style.display = "none"; } + patchDisplay(cm, display.updateLineNumbers, update.dims); + if (toUpdate > 4) { display.lineDiv.style.display = ""; } + display.renderedView = display.view; + // There might have been a widget with a focused element that got + // hidden or updated, if so re-focus it. + restoreSelection(selSnapshot); + + // Prevent selection and cursors from interfering with the scroll + // width and height. + removeChildren(display.cursorDiv); + removeChildren(display.selectionDiv); + display.gutters.style.height = display.sizer.style.minHeight = 0; + + if (different) { + display.lastWrapHeight = update.wrapperHeight; + display.lastWrapWidth = update.wrapperWidth; + startWorker(cm, 400); + } + + display.updateLineNumbers = null; + + return true + } + + function postUpdateDisplay(cm, update) { + var viewport = update.viewport; + + for (var first = true;; first = false) { + if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) { + // Clip forced viewport to actual scrollable area. + if (viewport && viewport.top != null) + { viewport = {top: Math.min(cm.doc.height + paddingVert(cm.display) - displayHeight(cm), viewport.top)}; } + // Updated line heights might result in the drawn area not + // actually covering the viewport. Keep looping until it does. + update.visible = visibleLines(cm.display, cm.doc, viewport); + if (update.visible.from >= cm.display.viewFrom && update.visible.to <= cm.display.viewTo) + { break } + } else if (first) { + update.visible = visibleLines(cm.display, cm.doc, viewport); + } + if (!updateDisplayIfNeeded(cm, update)) { break } + updateHeightsInViewport(cm); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.force = false; + } + + update.signal(cm, "update", cm); + if (cm.display.viewFrom != cm.display.reportedViewFrom || cm.display.viewTo != cm.display.reportedViewTo) { + update.signal(cm, "viewportChange", cm, cm.display.viewFrom, cm.display.viewTo); + cm.display.reportedViewFrom = cm.display.viewFrom; cm.display.reportedViewTo = cm.display.viewTo; + } + } + + function updateDisplaySimple(cm, viewport) { + var update = new DisplayUpdate(cm, viewport); + if (updateDisplayIfNeeded(cm, update)) { + updateHeightsInViewport(cm); + postUpdateDisplay(cm, update); + var barMeasure = measureForScrollbars(cm); + updateSelection(cm); + updateScrollbars(cm, barMeasure); + setDocumentHeight(cm, barMeasure); + update.finish(); + } + } + + // Sync the actual display DOM structure with display.view, removing + // nodes for lines that are no longer in view, and creating the ones + // that are not there yet, and updating the ones that are out of + // date. + function patchDisplay(cm, updateNumbersFrom, dims) { + var display = cm.display, lineNumbers = cm.options.lineNumbers; + var container = display.lineDiv, cur = container.firstChild; + + function rm(node) { + var next = node.nextSibling; + // Works around a throw-scroll bug in OS X Webkit + if (webkit && mac && cm.display.currentWheelTarget == node) + { node.style.display = "none"; } + else + { node.parentNode.removeChild(node); } + return next + } + + var view = display.view, lineN = display.viewFrom; + // Loop over the elements in the view, syncing cur (the DOM nodes + // in display.lineDiv) with the view as we go. + for (var i = 0; i < view.length; i++) { + var lineView = view[i]; + if (lineView.hidden) ; else if (!lineView.node || lineView.node.parentNode != container) { // Not drawn yet + var node = buildLineElement(cm, lineView, lineN, dims); + container.insertBefore(node, cur); + } else { // Already drawn + while (cur != lineView.node) { cur = rm(cur); } + var updateNumber = lineNumbers && updateNumbersFrom != null && + updateNumbersFrom <= lineN && lineView.lineNumber; + if (lineView.changes) { + if (indexOf(lineView.changes, "gutter") > -1) { updateNumber = false; } + updateLineForChanges(cm, lineView, lineN, dims); + } + if (updateNumber) { + removeChildren(lineView.lineNumber); + lineView.lineNumber.appendChild(document.createTextNode(lineNumberFor(cm.options, lineN))); + } + cur = lineView.node.nextSibling; + } + lineN += lineView.size; + } + while (cur) { cur = rm(cur); } + } + + function updateGutterSpace(display) { + var width = display.gutters.offsetWidth; + display.sizer.style.marginLeft = width + "px"; + } + + function setDocumentHeight(cm, measure) { + cm.display.sizer.style.minHeight = measure.docHeight + "px"; + cm.display.heightForcer.style.top = measure.docHeight + "px"; + cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px"; + } + + // Re-align line numbers and gutter marks to compensate for + // horizontal scrolling. + function alignHorizontally(cm) { + var display = cm.display, view = display.view; + if (!display.alignWidgets && (!display.gutters.firstChild || !cm.options.fixedGutter)) { return } + var comp = compensateForHScroll(display) - display.scroller.scrollLeft + cm.doc.scrollLeft; + var gutterW = display.gutters.offsetWidth, left = comp + "px"; + for (var i = 0; i < view.length; i++) { if (!view[i].hidden) { + if (cm.options.fixedGutter) { + if (view[i].gutter) + { view[i].gutter.style.left = left; } + if (view[i].gutterBackground) + { view[i].gutterBackground.style.left = left; } + } + var align = view[i].alignable; + if (align) { for (var j = 0; j < align.length; j++) + { align[j].style.left = left; } } + } } + if (cm.options.fixedGutter) + { display.gutters.style.left = (comp + gutterW) + "px"; } + } + + // Used to ensure that the line number gutter is still the right + // size for the current document size. Returns true when an update + // is needed. + function maybeUpdateLineNumberWidth(cm) { + if (!cm.options.lineNumbers) { return false } + var doc = cm.doc, last = lineNumberFor(cm.options, doc.first + doc.size - 1), display = cm.display; + if (last.length != display.lineNumChars) { + var test = display.measure.appendChild(elt("div", [elt("div", last)], + "CodeMirror-linenumber CodeMirror-gutter-elt")); + var innerW = test.firstChild.offsetWidth, padding = test.offsetWidth - innerW; + display.lineGutter.style.width = ""; + display.lineNumInnerWidth = Math.max(innerW, display.lineGutter.offsetWidth - padding) + 1; + display.lineNumWidth = display.lineNumInnerWidth + padding; + display.lineNumChars = display.lineNumInnerWidth ? last.length : -1; + display.lineGutter.style.width = display.lineNumWidth + "px"; + updateGutterSpace(cm.display); + return true + } + return false + } + + function getGutters(gutters, lineNumbers) { + var result = [], sawLineNumbers = false; + for (var i = 0; i < gutters.length; i++) { + var name = gutters[i], style = null; + if (typeof name != "string") { style = name.style; name = name.className; } + if (name == "CodeMirror-linenumbers") { + if (!lineNumbers) { continue } + else { sawLineNumbers = true; } + } + result.push({className: name, style: style}); + } + if (lineNumbers && !sawLineNumbers) { result.push({className: "CodeMirror-linenumbers", style: null}); } + return result + } + + // Rebuild the gutter elements, ensure the margin to the left of the + // code matches their width. + function renderGutters(display) { + var gutters = display.gutters, specs = display.gutterSpecs; + removeChildren(gutters); + display.lineGutter = null; + for (var i = 0; i < specs.length; ++i) { + var ref = specs[i]; + var className = ref.className; + var style = ref.style; + var gElt = gutters.appendChild(elt("div", null, "CodeMirror-gutter " + className)); + if (style) { gElt.style.cssText = style; } + if (className == "CodeMirror-linenumbers") { + display.lineGutter = gElt; + gElt.style.width = (display.lineNumWidth || 1) + "px"; + } + } + gutters.style.display = specs.length ? "" : "none"; + updateGutterSpace(display); + } + + function updateGutters(cm) { + renderGutters(cm.display); + regChange(cm); + alignHorizontally(cm); + } + + // The display handles the DOM integration, both for input reading + // and content drawing. It holds references to DOM nodes and + // display-related state. + + function Display(place, doc, input, options) { + var d = this; + this.input = input; + + // Covers bottom-right square when both scrollbars are present. + d.scrollbarFiller = elt("div", null, "CodeMirror-scrollbar-filler"); + d.scrollbarFiller.setAttribute("cm-not-content", "true"); + // Covers bottom of gutter when coverGutterNextToScrollbar is on + // and h scrollbar is present. + d.gutterFiller = elt("div", null, "CodeMirror-gutter-filler"); + d.gutterFiller.setAttribute("cm-not-content", "true"); + // Will contain the actual code, positioned to cover the viewport. + d.lineDiv = eltP("div", null, "CodeMirror-code"); + // Elements are added to these to represent selection and cursors. + d.selectionDiv = elt("div", null, null, "position: relative; z-index: 1"); + d.cursorDiv = elt("div", null, "CodeMirror-cursors"); + // A visibility: hidden element used to find the size of things. + d.measure = elt("div", null, "CodeMirror-measure"); + // When lines outside of the viewport are measured, they are drawn in this. + d.lineMeasure = elt("div", null, "CodeMirror-measure"); + // Wraps everything that needs to exist inside the vertically-padded coordinate system + d.lineSpace = eltP("div", [d.measure, d.lineMeasure, d.selectionDiv, d.cursorDiv, d.lineDiv], + null, "position: relative; outline: none"); + var lines = eltP("div", [d.lineSpace], "CodeMirror-lines"); + // Moved around its parent to cover visible view. + d.mover = elt("div", [lines], null, "position: relative"); + // Set to the height of the document, allowing scrolling. + d.sizer = elt("div", [d.mover], "CodeMirror-sizer"); + d.sizerWidth = null; + // Behavior of elts with overflow: auto and padding is + // inconsistent across browsers. This is used to ensure the + // scrollable area is big enough. + d.heightForcer = elt("div", null, null, "position: absolute; height: " + scrollerGap + "px; width: 1px;"); + // Will contain the gutters, if any. + d.gutters = elt("div", null, "CodeMirror-gutters"); + d.lineGutter = null; + // Actual scrollable element. + d.scroller = elt("div", [d.sizer, d.heightForcer, d.gutters], "CodeMirror-scroll"); + d.scroller.setAttribute("tabIndex", "-1"); + // The element in which the editor lives. + d.wrapper = elt("div", [d.scrollbarFiller, d.gutterFiller, d.scroller], "CodeMirror"); + + // Work around IE7 z-index bug (not perfect, hence IE7 not really being supported) + if (ie && ie_version < 8) { d.gutters.style.zIndex = -1; d.scroller.style.paddingRight = 0; } + if (!webkit && !(gecko && mobile)) { d.scroller.draggable = true; } + + if (place) { + if (place.appendChild) { place.appendChild(d.wrapper); } + else { place(d.wrapper); } + } + + // Current rendered range (may be bigger than the view window). + d.viewFrom = d.viewTo = doc.first; + d.reportedViewFrom = d.reportedViewTo = doc.first; + // Information about the rendered lines. + d.view = []; + d.renderedView = null; + // Holds info about a single rendered line when it was rendered + // for measurement, while not in view. + d.externalMeasured = null; + // Empty space (in pixels) above the view + d.viewOffset = 0; + d.lastWrapHeight = d.lastWrapWidth = 0; + d.updateLineNumbers = null; + + d.nativeBarWidth = d.barHeight = d.barWidth = 0; + d.scrollbarsClipped = false; + + // Used to only resize the line number gutter when necessary (when + // the amount of lines crosses a boundary that makes its width change) + d.lineNumWidth = d.lineNumInnerWidth = d.lineNumChars = null; + // Set to true when a non-horizontal-scrolling line widget is + // added. As an optimization, line widget aligning is skipped when + // this is false. + d.alignWidgets = false; + + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + + // Tracks the maximum line length so that the horizontal scrollbar + // can be kept static when scrolling. + d.maxLine = null; + d.maxLineLength = 0; + d.maxLineChanged = false; + + // Used for measuring wheel scrolling granularity + d.wheelDX = d.wheelDY = d.wheelStartX = d.wheelStartY = null; + + // True when shift is held down. + d.shift = false; + + // Used to track whether anything happened since the context menu + // was opened. + d.selForContextMenu = null; + + d.activeTouch = null; + + d.gutterSpecs = getGutters(options.gutters, options.lineNumbers); + renderGutters(d); + + input.init(d); + } + + // Since the delta values reported on mouse wheel events are + // unstandardized between browsers and even browser versions, and + // generally horribly unpredictable, this code starts by measuring + // the scroll effect that the first few mouse wheel events have, + // and, from that, detects the way it can convert deltas to pixel + // offsets afterwards. + // + // The reason we want to know the amount a wheel event will scroll + // is that it gives us a chance to update the display before the + // actual scrolling happens, reducing flickering. + + var wheelSamples = 0, wheelPixelsPerUnit = null; + // Fill in a browser-detected starting value on browsers where we + // know one. These don't have to be accurate -- the result of them + // being wrong would just be a slight flicker on the first wheel + // scroll (if it is large enough). + if (ie) { wheelPixelsPerUnit = -.53; } + else if (gecko) { wheelPixelsPerUnit = 15; } + else if (chrome) { wheelPixelsPerUnit = -.7; } + else if (safari) { wheelPixelsPerUnit = -1/3; } + + function wheelEventDelta(e) { + var dx = e.wheelDeltaX, dy = e.wheelDeltaY; + if (dx == null && e.detail && e.axis == e.HORIZONTAL_AXIS) { dx = e.detail; } + if (dy == null && e.detail && e.axis == e.VERTICAL_AXIS) { dy = e.detail; } + else if (dy == null) { dy = e.wheelDelta; } + return {x: dx, y: dy} + } + function wheelEventPixels(e) { + var delta = wheelEventDelta(e); + delta.x *= wheelPixelsPerUnit; + delta.y *= wheelPixelsPerUnit; + return delta + } + + function onScrollWheel(cm, e) { + var delta = wheelEventDelta(e), dx = delta.x, dy = delta.y; + + var display = cm.display, scroll = display.scroller; + // Quit if there's nothing to scroll here + var canScrollX = scroll.scrollWidth > scroll.clientWidth; + var canScrollY = scroll.scrollHeight > scroll.clientHeight; + if (!(dx && canScrollX || dy && canScrollY)) { return } + + // Webkit browsers on OS X abort momentum scrolls when the target + // of the scroll event is removed from the scrollable element. + // This hack (see related code in patchDisplay) makes sure the + // element is kept around. + if (dy && mac && webkit) { + outer: for (var cur = e.target, view = display.view; cur != scroll; cur = cur.parentNode) { + for (var i = 0; i < view.length; i++) { + if (view[i].node == cur) { + cm.display.currentWheelTarget = cur; + break outer + } + } + } + } + + // On some browsers, horizontal scrolling will cause redraws to + // happen before the gutter has been realigned, causing it to + // wriggle around in a most unseemly way. When we have an + // estimated pixels/delta value, we just handle horizontal + // scrolling entirely here. It'll be slightly off from native, but + // better than glitching out. + if (dx && !gecko && !presto && wheelPixelsPerUnit != null) { + if (dy && canScrollY) + { updateScrollTop(cm, Math.max(0, scroll.scrollTop + dy * wheelPixelsPerUnit)); } + setScrollLeft(cm, Math.max(0, scroll.scrollLeft + dx * wheelPixelsPerUnit)); + // Only prevent default scrolling if vertical scrolling is + // actually possible. Otherwise, it causes vertical scroll + // jitter on OSX trackpads when deltaX is small and deltaY + // is large (issue #3579) + if (!dy || (dy && canScrollY)) + { e_preventDefault(e); } + display.wheelStartX = null; // Abort measurement, if in progress + return + } + + // 'Project' the visible viewport to cover the area that is being + // scrolled into view (if we know enough to estimate it). + if (dy && wheelPixelsPerUnit != null) { + var pixels = dy * wheelPixelsPerUnit; + var top = cm.doc.scrollTop, bot = top + display.wrapper.clientHeight; + if (pixels < 0) { top = Math.max(0, top + pixels - 50); } + else { bot = Math.min(cm.doc.height, bot + pixels + 50); } + updateDisplaySimple(cm, {top: top, bottom: bot}); + } + + if (wheelSamples < 20) { + if (display.wheelStartX == null) { + display.wheelStartX = scroll.scrollLeft; display.wheelStartY = scroll.scrollTop; + display.wheelDX = dx; display.wheelDY = dy; + setTimeout(function () { + if (display.wheelStartX == null) { return } + var movedX = scroll.scrollLeft - display.wheelStartX; + var movedY = scroll.scrollTop - display.wheelStartY; + var sample = (movedY && display.wheelDY && movedY / display.wheelDY) || + (movedX && display.wheelDX && movedX / display.wheelDX); + display.wheelStartX = display.wheelStartY = null; + if (!sample) { return } + wheelPixelsPerUnit = (wheelPixelsPerUnit * wheelSamples + sample) / (wheelSamples + 1); + ++wheelSamples; + }, 200); + } else { + display.wheelDX += dx; display.wheelDY += dy; + } + } + } + + // Selection objects are immutable. A new one is created every time + // the selection changes. A selection is one or more non-overlapping + // (and non-touching) ranges, sorted, and an integer that indicates + // which one is the primary selection (the one that's scrolled into + // view, that getCursor returns, etc). + var Selection = function(ranges, primIndex) { + this.ranges = ranges; + this.primIndex = primIndex; + }; + + Selection.prototype.primary = function () { return this.ranges[this.primIndex] }; + + Selection.prototype.equals = function (other) { + if (other == this) { return true } + if (other.primIndex != this.primIndex || other.ranges.length != this.ranges.length) { return false } + for (var i = 0; i < this.ranges.length; i++) { + var here = this.ranges[i], there = other.ranges[i]; + if (!equalCursorPos(here.anchor, there.anchor) || !equalCursorPos(here.head, there.head)) { return false } + } + return true + }; + + Selection.prototype.deepCopy = function () { + var out = []; + for (var i = 0; i < this.ranges.length; i++) + { out[i] = new Range(copyPos(this.ranges[i].anchor), copyPos(this.ranges[i].head)); } + return new Selection(out, this.primIndex) + }; + + Selection.prototype.somethingSelected = function () { + for (var i = 0; i < this.ranges.length; i++) + { if (!this.ranges[i].empty()) { return true } } + return false + }; + + Selection.prototype.contains = function (pos, end) { + if (!end) { end = pos; } + for (var i = 0; i < this.ranges.length; i++) { + var range = this.ranges[i]; + if (cmp(end, range.from()) >= 0 && cmp(pos, range.to()) <= 0) + { return i } + } + return -1 + }; + + var Range = function(anchor, head) { + this.anchor = anchor; this.head = head; + }; + + Range.prototype.from = function () { return minPos(this.anchor, this.head) }; + Range.prototype.to = function () { return maxPos(this.anchor, this.head) }; + Range.prototype.empty = function () { return this.head.line == this.anchor.line && this.head.ch == this.anchor.ch }; + + // Take an unsorted, potentially overlapping set of ranges, and + // build a selection out of it. 'Consumes' ranges array (modifying + // it). + function normalizeSelection(cm, ranges, primIndex) { + var mayTouch = cm && cm.options.selectionsMayTouch; + var prim = ranges[primIndex]; + ranges.sort(function (a, b) { return cmp(a.from(), b.from()); }); + primIndex = indexOf(ranges, prim); + for (var i = 1; i < ranges.length; i++) { + var cur = ranges[i], prev = ranges[i - 1]; + var diff = cmp(prev.to(), cur.from()); + if (mayTouch && !cur.empty() ? diff > 0 : diff >= 0) { + var from = minPos(prev.from(), cur.from()), to = maxPos(prev.to(), cur.to()); + var inv = prev.empty() ? cur.from() == cur.head : prev.from() == prev.head; + if (i <= primIndex) { --primIndex; } + ranges.splice(--i, 2, new Range(inv ? to : from, inv ? from : to)); + } + } + return new Selection(ranges, primIndex) + } + + function simpleSelection(anchor, head) { + return new Selection([new Range(anchor, head || anchor)], 0) + } + + // Compute the position of the end of a change (its 'to' property + // refers to the pre-change end). + function changeEnd(change) { + if (!change.text) { return change.to } + return Pos(change.from.line + change.text.length - 1, + lst(change.text).length + (change.text.length == 1 ? change.from.ch : 0)) + } + + // Adjust a position to refer to the post-change position of the + // same text, or the end of the change if the change covers it. + function adjustForChange(pos, change) { + if (cmp(pos, change.from) < 0) { return pos } + if (cmp(pos, change.to) <= 0) { return changeEnd(change) } + + var line = pos.line + change.text.length - (change.to.line - change.from.line) - 1, ch = pos.ch; + if (pos.line == change.to.line) { ch += changeEnd(change).ch - change.to.ch; } + return Pos(line, ch) + } + + function computeSelAfterChange(doc, change) { + var out = []; + for (var i = 0; i < doc.sel.ranges.length; i++) { + var range = doc.sel.ranges[i]; + out.push(new Range(adjustForChange(range.anchor, change), + adjustForChange(range.head, change))); + } + return normalizeSelection(doc.cm, out, doc.sel.primIndex) + } + + function offsetPos(pos, old, nw) { + if (pos.line == old.line) + { return Pos(nw.line, pos.ch - old.ch + nw.ch) } + else + { return Pos(nw.line + (pos.line - old.line), pos.ch) } + } + + // Used by replaceSelections to allow moving the selection to the + // start or around the replaced test. Hint may be "start" or "around". + function computeReplacedSel(doc, changes, hint) { + var out = []; + var oldPrev = Pos(doc.first, 0), newPrev = oldPrev; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + var from = offsetPos(change.from, oldPrev, newPrev); + var to = offsetPos(changeEnd(change), oldPrev, newPrev); + oldPrev = change.to; + newPrev = to; + if (hint == "around") { + var range = doc.sel.ranges[i], inv = cmp(range.head, range.anchor) < 0; + out[i] = new Range(inv ? to : from, inv ? from : to); + } else { + out[i] = new Range(from, from); + } + } + return new Selection(out, doc.sel.primIndex) + } + + // Used to get the editor into a consistent state again when options change. + + function loadMode(cm) { + cm.doc.mode = getMode(cm.options, cm.doc.modeOption); + resetModeState(cm); + } + + function resetModeState(cm) { + cm.doc.iter(function (line) { + if (line.stateAfter) { line.stateAfter = null; } + if (line.styles) { line.styles = null; } + }); + cm.doc.modeFrontier = cm.doc.highlightFrontier = cm.doc.first; + startWorker(cm, 100); + cm.state.modeGen++; + if (cm.curOp) { regChange(cm); } + } + + // DOCUMENT DATA STRUCTURE + + // By default, updates that start and end at the beginning of a line + // are treated specially, in order to make the association of line + // widgets and marker elements with the text behave more intuitive. + function isWholeLineUpdate(doc, change) { + return change.from.ch == 0 && change.to.ch == 0 && lst(change.text) == "" && + (!doc.cm || doc.cm.options.wholeLineUpdateBefore) + } + + // Perform a change on the document data structure. + function updateDoc(doc, change, markedSpans, estimateHeight) { + function spansFor(n) {return markedSpans ? markedSpans[n] : null} + function update(line, text, spans) { + updateLine(line, text, spans, estimateHeight); + signalLater(line, "change", line, change); + } + function linesFor(start, end) { + var result = []; + for (var i = start; i < end; ++i) + { result.push(new Line(text[i], spansFor(i), estimateHeight)); } + return result + } + + var from = change.from, to = change.to, text = change.text; + var firstLine = getLine(doc, from.line), lastLine = getLine(doc, to.line); + var lastText = lst(text), lastSpans = spansFor(text.length - 1), nlines = to.line - from.line; + + // Adjust the line structure + if (change.full) { + doc.insert(0, linesFor(0, text.length)); + doc.remove(text.length, doc.size - text.length); + } else if (isWholeLineUpdate(doc, change)) { + // This is a whole-line replace. Treated specially to make + // sure line objects move the way they are supposed to. + var added = linesFor(0, text.length - 1); + update(lastLine, lastLine.text, lastSpans); + if (nlines) { doc.remove(from.line, nlines); } + if (added.length) { doc.insert(from.line, added); } + } else if (firstLine == lastLine) { + if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + lastText + firstLine.text.slice(to.ch), lastSpans); + } else { + var added$1 = linesFor(1, text.length - 1); + added$1.push(new Line(lastText + firstLine.text.slice(to.ch), lastSpans, estimateHeight)); + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + doc.insert(from.line + 1, added$1); + } + } else if (text.length == 1) { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0] + lastLine.text.slice(to.ch), spansFor(0)); + doc.remove(from.line + 1, nlines); + } else { + update(firstLine, firstLine.text.slice(0, from.ch) + text[0], spansFor(0)); + update(lastLine, lastText + lastLine.text.slice(to.ch), lastSpans); + var added$2 = linesFor(1, text.length - 1); + if (nlines > 1) { doc.remove(from.line + 1, nlines - 1); } + doc.insert(from.line + 1, added$2); + } + + signalLater(doc, "change", doc, change); + } + + // Call f for all linked documents. + function linkedDocs(doc, f, sharedHistOnly) { + function propagate(doc, skip, sharedHist) { + if (doc.linked) { for (var i = 0; i < doc.linked.length; ++i) { + var rel = doc.linked[i]; + if (rel.doc == skip) { continue } + var shared = sharedHist && rel.sharedHist; + if (sharedHistOnly && !shared) { continue } + f(rel.doc, shared); + propagate(rel.doc, doc, shared); + } } + } + propagate(doc, null, true); + } + + // Attach a document to an editor. + function attachDoc(cm, doc) { + if (doc.cm) { throw new Error("This document is already in use.") } + cm.doc = doc; + doc.cm = cm; + estimateLineHeights(cm); + loadMode(cm); + setDirectionClass(cm); + if (!cm.options.lineWrapping) { findMaxLine(cm); } + cm.options.mode = doc.modeOption; + regChange(cm); + } + + function setDirectionClass(cm) { + (cm.doc.direction == "rtl" ? addClass : rmClass)(cm.display.lineDiv, "CodeMirror-rtl"); + } + + function directionChanged(cm) { + runInOp(cm, function () { + setDirectionClass(cm); + regChange(cm); + }); + } + + function History(startGen) { + // Arrays of change events and selections. Doing something adds an + // event to done and clears undo. Undoing moves events from done + // to undone, redoing moves them in the other direction. + this.done = []; this.undone = []; + this.undoDepth = Infinity; + // Used to track when changes can be merged into a single undo + // event + this.lastModTime = this.lastSelTime = 0; + this.lastOp = this.lastSelOp = null; + this.lastOrigin = this.lastSelOrigin = null; + // Used by the isClean() method + this.generation = this.maxGeneration = startGen || 1; + } + + // Create a history change event from an updateDoc-style change + // object. + function historyChangeFromChange(doc, change) { + var histChange = {from: copyPos(change.from), to: changeEnd(change), text: getBetween(doc, change.from, change.to)}; + attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); + linkedDocs(doc, function (doc) { return attachLocalSpans(doc, histChange, change.from.line, change.to.line + 1); }, true); + return histChange + } + + // Pop all selection events off the end of a history array. Stop at + // a change event. + function clearSelectionEvents(array) { + while (array.length) { + var last = lst(array); + if (last.ranges) { array.pop(); } + else { break } + } + } + + // Find the top change event in the history. Pop off selection + // events that are in the way. + function lastChangeEvent(hist, force) { + if (force) { + clearSelectionEvents(hist.done); + return lst(hist.done) + } else if (hist.done.length && !lst(hist.done).ranges) { + return lst(hist.done) + } else if (hist.done.length > 1 && !hist.done[hist.done.length - 2].ranges) { + hist.done.pop(); + return lst(hist.done) + } + } + + // Register a change in the history. Merges changes that are within + // a single operation, or are close together with an origin that + // allows merging (starting with "+") into a single event. + function addChangeToHistory(doc, change, selAfter, opId) { + var hist = doc.history; + hist.undone.length = 0; + var time = +new Date, cur; + var last; + + if ((hist.lastOp == opId || + hist.lastOrigin == change.origin && change.origin && + ((change.origin.charAt(0) == "+" && hist.lastModTime > time - (doc.cm ? doc.cm.options.historyEventDelay : 500)) || + change.origin.charAt(0) == "*")) && + (cur = lastChangeEvent(hist, hist.lastOp == opId))) { + // Merge this change into the last event + last = lst(cur.changes); + if (cmp(change.from, change.to) == 0 && cmp(change.from, last.to) == 0) { + // Optimized case for simple insertion -- don't want to add + // new changesets for every character typed + last.to = changeEnd(change); + } else { + // Add new sub-event + cur.changes.push(historyChangeFromChange(doc, change)); + } + } else { + // Can not be merged, start a new event. + var before = lst(hist.done); + if (!before || !before.ranges) + { pushSelectionToHistory(doc.sel, hist.done); } + cur = {changes: [historyChangeFromChange(doc, change)], + generation: hist.generation}; + hist.done.push(cur); + while (hist.done.length > hist.undoDepth) { + hist.done.shift(); + if (!hist.done[0].ranges) { hist.done.shift(); } + } + } + hist.done.push(selAfter); + hist.generation = ++hist.maxGeneration; + hist.lastModTime = hist.lastSelTime = time; + hist.lastOp = hist.lastSelOp = opId; + hist.lastOrigin = hist.lastSelOrigin = change.origin; + + if (!last) { signal(doc, "historyAdded"); } + } + + function selectionEventCanBeMerged(doc, origin, prev, sel) { + var ch = origin.charAt(0); + return ch == "*" || + ch == "+" && + prev.ranges.length == sel.ranges.length && + prev.somethingSelected() == sel.somethingSelected() && + new Date - doc.history.lastSelTime <= (doc.cm ? doc.cm.options.historyEventDelay : 500) + } + + // Called whenever the selection changes, sets the new selection as + // the pending selection in the history, and pushes the old pending + // selection into the 'done' array when it was significantly + // different (in number of selected ranges, emptiness, or time). + function addSelectionToHistory(doc, sel, opId, options) { + var hist = doc.history, origin = options && options.origin; + + // A new event is started when the previous origin does not match + // the current, or the origins don't allow matching. Origins + // starting with * are always merged, those starting with + are + // merged when similar and close together in time. + if (opId == hist.lastSelOp || + (origin && hist.lastSelOrigin == origin && + (hist.lastModTime == hist.lastSelTime && hist.lastOrigin == origin || + selectionEventCanBeMerged(doc, origin, lst(hist.done), sel)))) + { hist.done[hist.done.length - 1] = sel; } + else + { pushSelectionToHistory(sel, hist.done); } + + hist.lastSelTime = +new Date; + hist.lastSelOrigin = origin; + hist.lastSelOp = opId; + if (options && options.clearRedo !== false) + { clearSelectionEvents(hist.undone); } + } + + function pushSelectionToHistory(sel, dest) { + var top = lst(dest); + if (!(top && top.ranges && top.equals(sel))) + { dest.push(sel); } + } + + // Used to store marked span information in the history. + function attachLocalSpans(doc, change, from, to) { + var existing = change["spans_" + doc.id], n = 0; + doc.iter(Math.max(doc.first, from), Math.min(doc.first + doc.size, to), function (line) { + if (line.markedSpans) + { (existing || (existing = change["spans_" + doc.id] = {}))[n] = line.markedSpans; } + ++n; + }); + } + + // When un/re-doing restores text containing marked spans, those + // that have been explicitly cleared should not be restored. + function removeClearedSpans(spans) { + if (!spans) { return null } + var out; + for (var i = 0; i < spans.length; ++i) { + if (spans[i].marker.explicitlyCleared) { if (!out) { out = spans.slice(0, i); } } + else if (out) { out.push(spans[i]); } + } + return !out ? spans : out.length ? out : null + } + + // Retrieve and filter the old marked spans stored in a change event. + function getOldSpans(doc, change) { + var found = change["spans_" + doc.id]; + if (!found) { return null } + var nw = []; + for (var i = 0; i < change.text.length; ++i) + { nw.push(removeClearedSpans(found[i])); } + return nw + } + + // Used for un/re-doing changes from the history. Combines the + // result of computing the existing spans with the set of spans that + // existed in the history (so that deleting around a span and then + // undoing brings back the span). + function mergeOldSpans(doc, change) { + var old = getOldSpans(doc, change); + var stretched = stretchSpansOverChange(doc, change); + if (!old) { return stretched } + if (!stretched) { return old } + + for (var i = 0; i < old.length; ++i) { + var oldCur = old[i], stretchCur = stretched[i]; + if (oldCur && stretchCur) { + spans: for (var j = 0; j < stretchCur.length; ++j) { + var span = stretchCur[j]; + for (var k = 0; k < oldCur.length; ++k) + { if (oldCur[k].marker == span.marker) { continue spans } } + oldCur.push(span); + } + } else if (stretchCur) { + old[i] = stretchCur; + } + } + return old + } + + // Used both to provide a JSON-safe object in .getHistory, and, when + // detaching a document, to split the history in two + function copyHistoryArray(events, newGroup, instantiateSel) { + var copy = []; + for (var i = 0; i < events.length; ++i) { + var event = events[i]; + if (event.ranges) { + copy.push(instantiateSel ? Selection.prototype.deepCopy.call(event) : event); + continue + } + var changes = event.changes, newChanges = []; + copy.push({changes: newChanges}); + for (var j = 0; j < changes.length; ++j) { + var change = changes[j], m = (void 0); + newChanges.push({from: change.from, to: change.to, text: change.text}); + if (newGroup) { for (var prop in change) { if (m = prop.match(/^spans_(\d+)$/)) { + if (indexOf(newGroup, Number(m[1])) > -1) { + lst(newChanges)[prop] = change[prop]; + delete change[prop]; + } + } } } + } + } + return copy + } + + // The 'scroll' parameter given to many of these indicated whether + // the new cursor position should be scrolled into view after + // modifying the selection. + + // If shift is held or the extend flag is set, extends a range to + // include a given position (and optionally a second position). + // Otherwise, simply returns the range between the given positions. + // Used for cursor motion and such. + function extendRange(range, head, other, extend) { + if (extend) { + var anchor = range.anchor; + if (other) { + var posBefore = cmp(head, anchor) < 0; + if (posBefore != (cmp(other, anchor) < 0)) { + anchor = head; + head = other; + } else if (posBefore != (cmp(head, other) < 0)) { + head = other; + } + } + return new Range(anchor, head) + } else { + return new Range(other || head, head) + } + } + + // Extend the primary selection range, discard the rest. + function extendSelection(doc, head, other, options, extend) { + if (extend == null) { extend = doc.cm && (doc.cm.display.shift || doc.extend); } + setSelection(doc, new Selection([extendRange(doc.sel.primary(), head, other, extend)], 0), options); + } + + // Extend all selections (pos is an array of selections with length + // equal the number of selections) + function extendSelections(doc, heads, options) { + var out = []; + var extend = doc.cm && (doc.cm.display.shift || doc.extend); + for (var i = 0; i < doc.sel.ranges.length; i++) + { out[i] = extendRange(doc.sel.ranges[i], heads[i], null, extend); } + var newSel = normalizeSelection(doc.cm, out, doc.sel.primIndex); + setSelection(doc, newSel, options); + } + + // Updates a single range in the selection. + function replaceOneSelection(doc, i, range, options) { + var ranges = doc.sel.ranges.slice(0); + ranges[i] = range; + setSelection(doc, normalizeSelection(doc.cm, ranges, doc.sel.primIndex), options); + } + + // Reset the selection to a single range. + function setSimpleSelection(doc, anchor, head, options) { + setSelection(doc, simpleSelection(anchor, head), options); + } + + // Give beforeSelectionChange handlers a change to influence a + // selection update. + function filterSelectionChange(doc, sel, options) { + var obj = { + ranges: sel.ranges, + update: function(ranges) { + this.ranges = []; + for (var i = 0; i < ranges.length; i++) + { this.ranges[i] = new Range(clipPos(doc, ranges[i].anchor), + clipPos(doc, ranges[i].head)); } + }, + origin: options && options.origin + }; + signal(doc, "beforeSelectionChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeSelectionChange", doc.cm, obj); } + if (obj.ranges != sel.ranges) { return normalizeSelection(doc.cm, obj.ranges, obj.ranges.length - 1) } + else { return sel } + } + + function setSelectionReplaceHistory(doc, sel, options) { + var done = doc.history.done, last = lst(done); + if (last && last.ranges) { + done[done.length - 1] = sel; + setSelectionNoUndo(doc, sel, options); + } else { + setSelection(doc, sel, options); + } + } + + // Set a new selection. + function setSelection(doc, sel, options) { + setSelectionNoUndo(doc, sel, options); + addSelectionToHistory(doc, doc.sel, doc.cm ? doc.cm.curOp.id : NaN, options); + } + + function setSelectionNoUndo(doc, sel, options) { + if (hasHandler(doc, "beforeSelectionChange") || doc.cm && hasHandler(doc.cm, "beforeSelectionChange")) + { sel = filterSelectionChange(doc, sel, options); } + + var bias = options && options.bias || + (cmp(sel.primary().head, doc.sel.primary().head) < 0 ? -1 : 1); + setSelectionInner(doc, skipAtomicInSelection(doc, sel, bias, true)); + + if (!(options && options.scroll === false) && doc.cm) + { ensureCursorVisible(doc.cm); } + } + + function setSelectionInner(doc, sel) { + if (sel.equals(doc.sel)) { return } + + doc.sel = sel; + + if (doc.cm) { + doc.cm.curOp.updateInput = 1; + doc.cm.curOp.selectionChanged = true; + signalCursorActivity(doc.cm); + } + signalLater(doc, "cursorActivity", doc); + } + + // Verify that the selection does not partially select any atomic + // marked ranges. + function reCheckSelection(doc) { + setSelectionInner(doc, skipAtomicInSelection(doc, doc.sel, null, false)); + } + + // Return a selection that does not partially select any atomic + // ranges. + function skipAtomicInSelection(doc, sel, bias, mayClear) { + var out; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + var old = sel.ranges.length == doc.sel.ranges.length && doc.sel.ranges[i]; + var newAnchor = skipAtomic(doc, range.anchor, old && old.anchor, bias, mayClear); + var newHead = skipAtomic(doc, range.head, old && old.head, bias, mayClear); + if (out || newAnchor != range.anchor || newHead != range.head) { + if (!out) { out = sel.ranges.slice(0, i); } + out[i] = new Range(newAnchor, newHead); + } + } + return out ? normalizeSelection(doc.cm, out, sel.primIndex) : sel + } + + function skipAtomicInner(doc, pos, oldPos, dir, mayClear) { + var line = getLine(doc, pos.line); + if (line.markedSpans) { for (var i = 0; i < line.markedSpans.length; ++i) { + var sp = line.markedSpans[i], m = sp.marker; + + // Determine if we should prevent the cursor being placed to the left/right of an atomic marker + // Historically this was determined using the inclusiveLeft/Right option, but the new way to control it + // is with selectLeft/Right + var preventCursorLeft = ("selectLeft" in m) ? !m.selectLeft : m.inclusiveLeft; + var preventCursorRight = ("selectRight" in m) ? !m.selectRight : m.inclusiveRight; + + if ((sp.from == null || (preventCursorLeft ? sp.from <= pos.ch : sp.from < pos.ch)) && + (sp.to == null || (preventCursorRight ? sp.to >= pos.ch : sp.to > pos.ch))) { + if (mayClear) { + signal(m, "beforeCursorEnter"); + if (m.explicitlyCleared) { + if (!line.markedSpans) { break } + else {--i; continue} + } + } + if (!m.atomic) { continue } + + if (oldPos) { + var near = m.find(dir < 0 ? 1 : -1), diff = (void 0); + if (dir < 0 ? preventCursorRight : preventCursorLeft) + { near = movePos(doc, near, -dir, near && near.line == pos.line ? line : null); } + if (near && near.line == pos.line && (diff = cmp(near, oldPos)) && (dir < 0 ? diff < 0 : diff > 0)) + { return skipAtomicInner(doc, near, pos, dir, mayClear) } + } + + var far = m.find(dir < 0 ? -1 : 1); + if (dir < 0 ? preventCursorLeft : preventCursorRight) + { far = movePos(doc, far, dir, far.line == pos.line ? line : null); } + return far ? skipAtomicInner(doc, far, pos, dir, mayClear) : null + } + } } + return pos + } + + // Ensure a given position is not inside an atomic range. + function skipAtomic(doc, pos, oldPos, bias, mayClear) { + var dir = bias || 1; + var found = skipAtomicInner(doc, pos, oldPos, dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, dir, true)) || + skipAtomicInner(doc, pos, oldPos, -dir, mayClear) || + (!mayClear && skipAtomicInner(doc, pos, oldPos, -dir, true)); + if (!found) { + doc.cantEdit = true; + return Pos(doc.first, 0) + } + return found + } + + function movePos(doc, pos, dir, line) { + if (dir < 0 && pos.ch == 0) { + if (pos.line > doc.first) { return clipPos(doc, Pos(pos.line - 1)) } + else { return null } + } else if (dir > 0 && pos.ch == (line || getLine(doc, pos.line)).text.length) { + if (pos.line < doc.first + doc.size - 1) { return Pos(pos.line + 1, 0) } + else { return null } + } else { + return new Pos(pos.line, pos.ch + dir) + } + } + + function selectAll(cm) { + cm.setSelection(Pos(cm.firstLine(), 0), Pos(cm.lastLine()), sel_dontScroll); + } + + // UPDATING + + // Allow "beforeChange" event handlers to influence a change + function filterChange(doc, change, update) { + var obj = { + canceled: false, + from: change.from, + to: change.to, + text: change.text, + origin: change.origin, + cancel: function () { return obj.canceled = true; } + }; + if (update) { obj.update = function (from, to, text, origin) { + if (from) { obj.from = clipPos(doc, from); } + if (to) { obj.to = clipPos(doc, to); } + if (text) { obj.text = text; } + if (origin !== undefined) { obj.origin = origin; } + }; } + signal(doc, "beforeChange", doc, obj); + if (doc.cm) { signal(doc.cm, "beforeChange", doc.cm, obj); } + + if (obj.canceled) { + if (doc.cm) { doc.cm.curOp.updateInput = 2; } + return null + } + return {from: obj.from, to: obj.to, text: obj.text, origin: obj.origin} + } + + // Apply a change to a document, and add it to the document's + // history, and propagating it to all linked documents. + function makeChange(doc, change, ignoreReadOnly) { + if (doc.cm) { + if (!doc.cm.curOp) { return operation(doc.cm, makeChange)(doc, change, ignoreReadOnly) } + if (doc.cm.state.suppressEdits) { return } + } + + if (hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange")) { + change = filterChange(doc, change, true); + if (!change) { return } + } + + // Possibly split or suppress the update based on the presence + // of read-only spans in its range. + var split = sawReadOnlySpans && !ignoreReadOnly && removeReadOnlyRanges(doc, change.from, change.to); + if (split) { + for (var i = split.length - 1; i >= 0; --i) + { makeChangeInner(doc, {from: split[i].from, to: split[i].to, text: i ? [""] : change.text, origin: change.origin}); } + } else { + makeChangeInner(doc, change); + } + } + + function makeChangeInner(doc, change) { + if (change.text.length == 1 && change.text[0] == "" && cmp(change.from, change.to) == 0) { return } + var selAfter = computeSelAfterChange(doc, change); + addChangeToHistory(doc, change, selAfter, doc.cm ? doc.cm.curOp.id : NaN); + + makeChangeSingleDoc(doc, change, selAfter, stretchSpansOverChange(doc, change)); + var rebased = []; + + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, stretchSpansOverChange(doc, change)); + }); + } + + // Revert a change stored in a document's history. + function makeChangeFromHistory(doc, type, allowSelectionOnly) { + var suppress = doc.cm && doc.cm.state.suppressEdits; + if (suppress && !allowSelectionOnly) { return } + + var hist = doc.history, event, selAfter = doc.sel; + var source = type == "undo" ? hist.done : hist.undone, dest = type == "undo" ? hist.undone : hist.done; + + // Verify that there is a useable event (so that ctrl-z won't + // needlessly clear selection events) + var i = 0; + for (; i < source.length; i++) { + event = source[i]; + if (allowSelectionOnly ? event.ranges && !event.equals(doc.sel) : !event.ranges) + { break } + } + if (i == source.length) { return } + hist.lastOrigin = hist.lastSelOrigin = null; + + for (;;) { + event = source.pop(); + if (event.ranges) { + pushSelectionToHistory(event, dest); + if (allowSelectionOnly && !event.equals(doc.sel)) { + setSelection(doc, event, {clearRedo: false}); + return + } + selAfter = event; + } else if (suppress) { + source.push(event); + return + } else { break } + } + + // Build up a reverse change object to add to the opposite history + // stack (redo when undoing, and vice versa). + var antiChanges = []; + pushSelectionToHistory(selAfter, dest); + dest.push({changes: antiChanges, generation: hist.generation}); + hist.generation = event.generation || ++hist.maxGeneration; + + var filter = hasHandler(doc, "beforeChange") || doc.cm && hasHandler(doc.cm, "beforeChange"); + + var loop = function ( i ) { + var change = event.changes[i]; + change.origin = type; + if (filter && !filterChange(doc, change, false)) { + source.length = 0; + return {} + } + + antiChanges.push(historyChangeFromChange(doc, change)); + + var after = i ? computeSelAfterChange(doc, change) : lst(source); + makeChangeSingleDoc(doc, change, after, mergeOldSpans(doc, change)); + if (!i && doc.cm) { doc.cm.scrollIntoView({from: change.from, to: changeEnd(change)}); } + var rebased = []; + + // Propagate to the linked documents + linkedDocs(doc, function (doc, sharedHist) { + if (!sharedHist && indexOf(rebased, doc.history) == -1) { + rebaseHist(doc.history, change); + rebased.push(doc.history); + } + makeChangeSingleDoc(doc, change, null, mergeOldSpans(doc, change)); + }); + }; + + for (var i$1 = event.changes.length - 1; i$1 >= 0; --i$1) { + var returned = loop( i$1 ); + + if ( returned ) return returned.v; + } + } + + // Sub-views need their line numbers shifted when text is added + // above or below them in the parent document. + function shiftDoc(doc, distance) { + if (distance == 0) { return } + doc.first += distance; + doc.sel = new Selection(map(doc.sel.ranges, function (range) { return new Range( + Pos(range.anchor.line + distance, range.anchor.ch), + Pos(range.head.line + distance, range.head.ch) + ); }), doc.sel.primIndex); + if (doc.cm) { + regChange(doc.cm, doc.first, doc.first - distance, distance); + for (var d = doc.cm.display, l = d.viewFrom; l < d.viewTo; l++) + { regLineChange(doc.cm, l, "gutter"); } + } + } + + // More lower-level change function, handling only a single document + // (not linked ones). + function makeChangeSingleDoc(doc, change, selAfter, spans) { + if (doc.cm && !doc.cm.curOp) + { return operation(doc.cm, makeChangeSingleDoc)(doc, change, selAfter, spans) } + + if (change.to.line < doc.first) { + shiftDoc(doc, change.text.length - 1 - (change.to.line - change.from.line)); + return + } + if (change.from.line > doc.lastLine()) { return } + + // Clip the change to the size of this doc + if (change.from.line < doc.first) { + var shift = change.text.length - 1 - (doc.first - change.from.line); + shiftDoc(doc, shift); + change = {from: Pos(doc.first, 0), to: Pos(change.to.line + shift, change.to.ch), + text: [lst(change.text)], origin: change.origin}; + } + var last = doc.lastLine(); + if (change.to.line > last) { + change = {from: change.from, to: Pos(last, getLine(doc, last).text.length), + text: [change.text[0]], origin: change.origin}; + } + + change.removed = getBetween(doc, change.from, change.to); + + if (!selAfter) { selAfter = computeSelAfterChange(doc, change); } + if (doc.cm) { makeChangeSingleDocInEditor(doc.cm, change, spans); } + else { updateDoc(doc, change, spans); } + setSelectionNoUndo(doc, selAfter, sel_dontScroll); + + if (doc.cantEdit && skipAtomic(doc, Pos(doc.firstLine(), 0))) + { doc.cantEdit = false; } + } + + // Handle the interaction of a change to a document with the editor + // that this document is part of. + function makeChangeSingleDocInEditor(cm, change, spans) { + var doc = cm.doc, display = cm.display, from = change.from, to = change.to; + + var recomputeMaxLength = false, checkWidthStart = from.line; + if (!cm.options.lineWrapping) { + checkWidthStart = lineNo(visualLine(getLine(doc, from.line))); + doc.iter(checkWidthStart, to.line + 1, function (line) { + if (line == display.maxLine) { + recomputeMaxLength = true; + return true + } + }); + } + + if (doc.sel.contains(change.from, change.to) > -1) + { signalCursorActivity(cm); } + + updateDoc(doc, change, spans, estimateHeight(cm)); + + if (!cm.options.lineWrapping) { + doc.iter(checkWidthStart, from.line + change.text.length, function (line) { + var len = lineLength(line); + if (len > display.maxLineLength) { + display.maxLine = line; + display.maxLineLength = len; + display.maxLineChanged = true; + recomputeMaxLength = false; + } + }); + if (recomputeMaxLength) { cm.curOp.updateMaxLine = true; } + } + + retreatFrontier(doc, from.line); + startWorker(cm, 400); + + var lendiff = change.text.length - (to.line - from.line) - 1; + // Remember that these lines changed, for updating the display + if (change.full) + { regChange(cm); } + else if (from.line == to.line && change.text.length == 1 && !isWholeLineUpdate(cm.doc, change)) + { regLineChange(cm, from.line, "text"); } + else + { regChange(cm, from.line, to.line + 1, lendiff); } + + var changesHandler = hasHandler(cm, "changes"), changeHandler = hasHandler(cm, "change"); + if (changeHandler || changesHandler) { + var obj = { + from: from, to: to, + text: change.text, + removed: change.removed, + origin: change.origin + }; + if (changeHandler) { signalLater(cm, "change", cm, obj); } + if (changesHandler) { (cm.curOp.changeObjs || (cm.curOp.changeObjs = [])).push(obj); } + } + cm.display.selForContextMenu = null; + } + + function replaceRange(doc, code, from, to, origin) { + var assign; + + if (!to) { to = from; } + if (cmp(to, from) < 0) { (assign = [to, from], from = assign[0], to = assign[1]); } + if (typeof code == "string") { code = doc.splitLines(code); } + makeChange(doc, {from: from, to: to, text: code, origin: origin}); + } + + // Rebasing/resetting history to deal with externally-sourced changes + + function rebaseHistSelSingle(pos, from, to, diff) { + if (to < pos.line) { + pos.line += diff; + } else if (from < pos.line) { + pos.line = from; + pos.ch = 0; + } + } + + // Tries to rebase an array of history events given a change in the + // document. If the change touches the same lines as the event, the + // event, and everything 'behind' it, is discarded. If the change is + // before the event, the event's positions are updated. Uses a + // copy-on-write scheme for the positions, to avoid having to + // reallocate them all on every rebase, but also avoid problems with + // shared position objects being unsafely updated. + function rebaseHistArray(array, from, to, diff) { + for (var i = 0; i < array.length; ++i) { + var sub = array[i], ok = true; + if (sub.ranges) { + if (!sub.copied) { sub = array[i] = sub.deepCopy(); sub.copied = true; } + for (var j = 0; j < sub.ranges.length; j++) { + rebaseHistSelSingle(sub.ranges[j].anchor, from, to, diff); + rebaseHistSelSingle(sub.ranges[j].head, from, to, diff); + } + continue + } + for (var j$1 = 0; j$1 < sub.changes.length; ++j$1) { + var cur = sub.changes[j$1]; + if (to < cur.from.line) { + cur.from = Pos(cur.from.line + diff, cur.from.ch); + cur.to = Pos(cur.to.line + diff, cur.to.ch); + } else if (from <= cur.to.line) { + ok = false; + break + } + } + if (!ok) { + array.splice(0, i + 1); + i = 0; + } + } + } + + function rebaseHist(hist, change) { + var from = change.from.line, to = change.to.line, diff = change.text.length - (to - from) - 1; + rebaseHistArray(hist.done, from, to, diff); + rebaseHistArray(hist.undone, from, to, diff); + } + + // Utility for applying a change to a line by handle or number, + // returning the number and optionally registering the line as + // changed. + function changeLine(doc, handle, changeType, op) { + var no = handle, line = handle; + if (typeof handle == "number") { line = getLine(doc, clipLine(doc, handle)); } + else { no = lineNo(handle); } + if (no == null) { return null } + if (op(line, no) && doc.cm) { regLineChange(doc.cm, no, changeType); } + return line + } + + // The document is represented as a BTree consisting of leaves, with + // chunk of lines in them, and branches, with up to ten leaves or + // other branch nodes below them. The top node is always a branch + // node, and is the document object itself (meaning it has + // additional methods and properties). + // + // All nodes have parent links. The tree is used both to go from + // line numbers to line objects, and to go from objects to numbers. + // It also indexes by height, and is used to convert between height + // and line object, and to find the total height of the document. + // + // See also http://marijnhaverbeke.nl/blog/codemirror-line-tree.html + + function LeafChunk(lines) { + this.lines = lines; + this.parent = null; + var height = 0; + for (var i = 0; i < lines.length; ++i) { + lines[i].parent = this; + height += lines[i].height; + } + this.height = height; + } + + LeafChunk.prototype = { + chunkSize: function() { return this.lines.length }, + + // Remove the n lines at offset 'at'. + removeInner: function(at, n) { + for (var i = at, e = at + n; i < e; ++i) { + var line = this.lines[i]; + this.height -= line.height; + cleanUpLine(line); + signalLater(line, "delete"); + } + this.lines.splice(at, n); + }, + + // Helper used to collapse a small branch into a single leaf. + collapse: function(lines) { + lines.push.apply(lines, this.lines); + }, + + // Insert the given array of lines at offset 'at', count them as + // having the given height. + insertInner: function(at, lines, height) { + this.height += height; + this.lines = this.lines.slice(0, at).concat(lines).concat(this.lines.slice(at)); + for (var i = 0; i < lines.length; ++i) { lines[i].parent = this; } + }, + + // Used to iterate over a part of the tree. + iterN: function(at, n, op) { + for (var e = at + n; at < e; ++at) + { if (op(this.lines[at])) { return true } } + } + }; + + function BranchChunk(children) { + this.children = children; + var size = 0, height = 0; + for (var i = 0; i < children.length; ++i) { + var ch = children[i]; + size += ch.chunkSize(); height += ch.height; + ch.parent = this; + } + this.size = size; + this.height = height; + this.parent = null; + } + + BranchChunk.prototype = { + chunkSize: function() { return this.size }, + + removeInner: function(at, n) { + this.size -= n; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var rm = Math.min(n, sz - at), oldHeight = child.height; + child.removeInner(at, rm); + this.height -= oldHeight - child.height; + if (sz == rm) { this.children.splice(i--, 1); child.parent = null; } + if ((n -= rm) == 0) { break } + at = 0; + } else { at -= sz; } + } + // If the result is smaller than 25 lines, ensure that it is a + // single leaf node. + if (this.size - n < 25 && + (this.children.length > 1 || !(this.children[0] instanceof LeafChunk))) { + var lines = []; + this.collapse(lines); + this.children = [new LeafChunk(lines)]; + this.children[0].parent = this; + } + }, + + collapse: function(lines) { + for (var i = 0; i < this.children.length; ++i) { this.children[i].collapse(lines); } + }, + + insertInner: function(at, lines, height) { + this.size += lines.length; + this.height += height; + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at <= sz) { + child.insertInner(at, lines, height); + if (child.lines && child.lines.length > 50) { + // To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced. + // Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest. + var remaining = child.lines.length % 25 + 25; + for (var pos = remaining; pos < child.lines.length;) { + var leaf = new LeafChunk(child.lines.slice(pos, pos += 25)); + child.height -= leaf.height; + this.children.splice(++i, 0, leaf); + leaf.parent = this; + } + child.lines = child.lines.slice(0, remaining); + this.maybeSpill(); + } + break + } + at -= sz; + } + }, + + // When a node has grown, check whether it should be split. + maybeSpill: function() { + if (this.children.length <= 10) { return } + var me = this; + do { + var spilled = me.children.splice(me.children.length - 5, 5); + var sibling = new BranchChunk(spilled); + if (!me.parent) { // Become the parent node + var copy = new BranchChunk(me.children); + copy.parent = me; + me.children = [copy, sibling]; + me = copy; + } else { + me.size -= sibling.size; + me.height -= sibling.height; + var myIndex = indexOf(me.parent.children, me); + me.parent.children.splice(myIndex + 1, 0, sibling); + } + sibling.parent = me.parent; + } while (me.children.length > 10) + me.parent.maybeSpill(); + }, + + iterN: function(at, n, op) { + for (var i = 0; i < this.children.length; ++i) { + var child = this.children[i], sz = child.chunkSize(); + if (at < sz) { + var used = Math.min(n, sz - at); + if (child.iterN(at, used, op)) { return true } + if ((n -= used) == 0) { break } + at = 0; + } else { at -= sz; } + } + } + }; + + // Line widgets are block elements displayed above or below a line. + + var LineWidget = function(doc, node, options) { + if (options) { for (var opt in options) { if (options.hasOwnProperty(opt)) + { this[opt] = options[opt]; } } } + this.doc = doc; + this.node = node; + }; + + LineWidget.prototype.clear = function () { + var cm = this.doc.cm, ws = this.line.widgets, line = this.line, no = lineNo(line); + if (no == null || !ws) { return } + for (var i = 0; i < ws.length; ++i) { if (ws[i] == this) { ws.splice(i--, 1); } } + if (!ws.length) { line.widgets = null; } + var height = widgetHeight(this); + updateLineHeight(line, Math.max(0, line.height - height)); + if (cm) { + runInOp(cm, function () { + adjustScrollWhenAboveVisible(cm, line, -height); + regLineChange(cm, no, "widget"); + }); + signalLater(cm, "lineWidgetCleared", cm, this, no); + } + }; + + LineWidget.prototype.changed = function () { + var this$1 = this; + + var oldH = this.height, cm = this.doc.cm, line = this.line; + this.height = null; + var diff = widgetHeight(this) - oldH; + if (!diff) { return } + if (!lineIsHidden(this.doc, line)) { updateLineHeight(line, line.height + diff); } + if (cm) { + runInOp(cm, function () { + cm.curOp.forceUpdate = true; + adjustScrollWhenAboveVisible(cm, line, diff); + signalLater(cm, "lineWidgetChanged", cm, this$1, lineNo(line)); + }); + } + }; + eventMixin(LineWidget); + + function adjustScrollWhenAboveVisible(cm, line, diff) { + if (heightAtLine(line) < ((cm.curOp && cm.curOp.scrollTop) || cm.doc.scrollTop)) + { addToScrollTop(cm, diff); } + } + + function addLineWidget(doc, handle, node, options) { + var widget = new LineWidget(doc, node, options); + var cm = doc.cm; + if (cm && widget.noHScroll) { cm.display.alignWidgets = true; } + changeLine(doc, handle, "widget", function (line) { + var widgets = line.widgets || (line.widgets = []); + if (widget.insertAt == null) { widgets.push(widget); } + else { widgets.splice(Math.min(widgets.length - 1, Math.max(0, widget.insertAt)), 0, widget); } + widget.line = line; + if (cm && !lineIsHidden(doc, line)) { + var aboveVisible = heightAtLine(line) < doc.scrollTop; + updateLineHeight(line, line.height + widgetHeight(widget)); + if (aboveVisible) { addToScrollTop(cm, widget.height); } + cm.curOp.forceUpdate = true; + } + return true + }); + if (cm) { signalLater(cm, "lineWidgetAdded", cm, widget, typeof handle == "number" ? handle : lineNo(handle)); } + return widget + } + + // TEXTMARKERS + + // Created with markText and setBookmark methods. A TextMarker is a + // handle that can be used to clear or find a marked position in the + // document. Line objects hold arrays (markedSpans) containing + // {from, to, marker} object pointing to such marker objects, and + // indicating that such a marker is present on that line. Multiple + // lines may point to the same marker when it spans across lines. + // The spans will have null for their from/to properties when the + // marker continues beyond the start/end of the line. Markers have + // links back to the lines they currently touch. + + // Collapsed markers have unique ids, in order to be able to order + // them, which is needed for uniquely determining an outer marker + // when they overlap (they may nest, but not partially overlap). + var nextMarkerId = 0; + + var TextMarker = function(doc, type) { + this.lines = []; + this.type = type; + this.doc = doc; + this.id = ++nextMarkerId; + }; + + // Clear the marker. + TextMarker.prototype.clear = function () { + if (this.explicitlyCleared) { return } + var cm = this.doc.cm, withOp = cm && !cm.curOp; + if (withOp) { startOperation(cm); } + if (hasHandler(this, "clear")) { + var found = this.find(); + if (found) { signalLater(this, "clear", found.from, found.to); } + } + var min = null, max = null; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (cm && !this.collapsed) { regLineChange(cm, lineNo(line), "text"); } + else if (cm) { + if (span.to != null) { max = lineNo(line); } + if (span.from != null) { min = lineNo(line); } + } + line.markedSpans = removeMarkedSpan(line.markedSpans, span); + if (span.from == null && this.collapsed && !lineIsHidden(this.doc, line) && cm) + { updateLineHeight(line, textHeight(cm.display)); } + } + if (cm && this.collapsed && !cm.options.lineWrapping) { for (var i$1 = 0; i$1 < this.lines.length; ++i$1) { + var visual = visualLine(this.lines[i$1]), len = lineLength(visual); + if (len > cm.display.maxLineLength) { + cm.display.maxLine = visual; + cm.display.maxLineLength = len; + cm.display.maxLineChanged = true; + } + } } + + if (min != null && cm && this.collapsed) { regChange(cm, min, max + 1); } + this.lines.length = 0; + this.explicitlyCleared = true; + if (this.atomic && this.doc.cantEdit) { + this.doc.cantEdit = false; + if (cm) { reCheckSelection(cm.doc); } + } + if (cm) { signalLater(cm, "markerCleared", cm, this, min, max); } + if (withOp) { endOperation(cm); } + if (this.parent) { this.parent.clear(); } + }; + + // Find the position of the marker in the document. Returns a {from, + // to} object by default. Side can be passed to get a specific side + // -- 0 (both), -1 (left), or 1 (right). When lineObj is true, the + // Pos objects returned contain a line object, rather than a line + // number (used to prevent looking up the same line twice). + TextMarker.prototype.find = function (side, lineObj) { + if (side == null && this.type == "bookmark") { side = 1; } + var from, to; + for (var i = 0; i < this.lines.length; ++i) { + var line = this.lines[i]; + var span = getMarkedSpanFor(line.markedSpans, this); + if (span.from != null) { + from = Pos(lineObj ? line : lineNo(line), span.from); + if (side == -1) { return from } + } + if (span.to != null) { + to = Pos(lineObj ? line : lineNo(line), span.to); + if (side == 1) { return to } + } + } + return from && {from: from, to: to} + }; + + // Signals that the marker's widget changed, and surrounding layout + // should be recomputed. + TextMarker.prototype.changed = function () { + var this$1 = this; + + var pos = this.find(-1, true), widget = this, cm = this.doc.cm; + if (!pos || !cm) { return } + runInOp(cm, function () { + var line = pos.line, lineN = lineNo(pos.line); + var view = findViewForLine(cm, lineN); + if (view) { + clearLineMeasurementCacheFor(view); + cm.curOp.selectionChanged = cm.curOp.forceUpdate = true; + } + cm.curOp.updateMaxLine = true; + if (!lineIsHidden(widget.doc, line) && widget.height != null) { + var oldHeight = widget.height; + widget.height = null; + var dHeight = widgetHeight(widget) - oldHeight; + if (dHeight) + { updateLineHeight(line, line.height + dHeight); } + } + signalLater(cm, "markerChanged", cm, this$1); + }); + }; + + TextMarker.prototype.attachLine = function (line) { + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp; + if (!op.maybeHiddenMarkers || indexOf(op.maybeHiddenMarkers, this) == -1) + { (op.maybeUnhiddenMarkers || (op.maybeUnhiddenMarkers = [])).push(this); } + } + this.lines.push(line); + }; + + TextMarker.prototype.detachLine = function (line) { + this.lines.splice(indexOf(this.lines, line), 1); + if (!this.lines.length && this.doc.cm) { + var op = this.doc.cm.curOp + ;(op.maybeHiddenMarkers || (op.maybeHiddenMarkers = [])).push(this); + } + }; + eventMixin(TextMarker); + + // Create a marker, wire it up to the right lines, and + function markText(doc, from, to, options, type) { + // Shared markers (across linked documents) are handled separately + // (markTextShared will call out to this again, once per + // document). + if (options && options.shared) { return markTextShared(doc, from, to, options, type) } + // Ensure we are in an operation. + if (doc.cm && !doc.cm.curOp) { return operation(doc.cm, markText)(doc, from, to, options, type) } + + var marker = new TextMarker(doc, type), diff = cmp(from, to); + if (options) { copyObj(options, marker, false); } + // Don't connect empty markers unless clearWhenEmpty is false + if (diff > 0 || diff == 0 && marker.clearWhenEmpty !== false) + { return marker } + if (marker.replacedWith) { + // Showing up as a widget implies collapsed (widget replaces text) + marker.collapsed = true; + marker.widgetNode = eltP("span", [marker.replacedWith], "CodeMirror-widget"); + if (!options.handleMouseEvents) { marker.widgetNode.setAttribute("cm-ignore-events", "true"); } + if (options.insertLeft) { marker.widgetNode.insertLeft = true; } + } + if (marker.collapsed) { + if (conflictingCollapsedRange(doc, from.line, from, to, marker) || + from.line != to.line && conflictingCollapsedRange(doc, to.line, from, to, marker)) + { throw new Error("Inserting collapsed marker partially overlapping an existing one") } + seeCollapsedSpans(); + } + + if (marker.addToHistory) + { addChangeToHistory(doc, {from: from, to: to, origin: "markText"}, doc.sel, NaN); } + + var curLine = from.line, cm = doc.cm, updateMaxLine; + doc.iter(curLine, to.line + 1, function (line) { + if (cm && marker.collapsed && !cm.options.lineWrapping && visualLine(line) == cm.display.maxLine) + { updateMaxLine = true; } + if (marker.collapsed && curLine != from.line) { updateLineHeight(line, 0); } + addMarkedSpan(line, new MarkedSpan(marker, + curLine == from.line ? from.ch : null, + curLine == to.line ? to.ch : null)); + ++curLine; + }); + // lineIsHidden depends on the presence of the spans, so needs a second pass + if (marker.collapsed) { doc.iter(from.line, to.line + 1, function (line) { + if (lineIsHidden(doc, line)) { updateLineHeight(line, 0); } + }); } + + if (marker.clearOnEnter) { on(marker, "beforeCursorEnter", function () { return marker.clear(); }); } + + if (marker.readOnly) { + seeReadOnlySpans(); + if (doc.history.done.length || doc.history.undone.length) + { doc.clearHistory(); } + } + if (marker.collapsed) { + marker.id = ++nextMarkerId; + marker.atomic = true; + } + if (cm) { + // Sync editor state + if (updateMaxLine) { cm.curOp.updateMaxLine = true; } + if (marker.collapsed) + { regChange(cm, from.line, to.line + 1); } + else if (marker.className || marker.startStyle || marker.endStyle || marker.css || + marker.attributes || marker.title) + { for (var i = from.line; i <= to.line; i++) { regLineChange(cm, i, "text"); } } + if (marker.atomic) { reCheckSelection(cm.doc); } + signalLater(cm, "markerAdded", cm, marker); + } + return marker + } + + // SHARED TEXTMARKERS + + // A shared marker spans multiple linked documents. It is + // implemented as a meta-marker-object controlling multiple normal + // markers. + var SharedTextMarker = function(markers, primary) { + this.markers = markers; + this.primary = primary; + for (var i = 0; i < markers.length; ++i) + { markers[i].parent = this; } + }; + + SharedTextMarker.prototype.clear = function () { + if (this.explicitlyCleared) { return } + this.explicitlyCleared = true; + for (var i = 0; i < this.markers.length; ++i) + { this.markers[i].clear(); } + signalLater(this, "clear"); + }; + + SharedTextMarker.prototype.find = function (side, lineObj) { + return this.primary.find(side, lineObj) + }; + eventMixin(SharedTextMarker); + + function markTextShared(doc, from, to, options, type) { + options = copyObj(options); + options.shared = false; + var markers = [markText(doc, from, to, options, type)], primary = markers[0]; + var widget = options.widgetNode; + linkedDocs(doc, function (doc) { + if (widget) { options.widgetNode = widget.cloneNode(true); } + markers.push(markText(doc, clipPos(doc, from), clipPos(doc, to), options, type)); + for (var i = 0; i < doc.linked.length; ++i) + { if (doc.linked[i].isParent) { return } } + primary = lst(markers); + }); + return new SharedTextMarker(markers, primary) + } + + function findSharedMarkers(doc) { + return doc.findMarks(Pos(doc.first, 0), doc.clipPos(Pos(doc.lastLine())), function (m) { return m.parent; }) + } + + function copySharedMarkers(doc, markers) { + for (var i = 0; i < markers.length; i++) { + var marker = markers[i], pos = marker.find(); + var mFrom = doc.clipPos(pos.from), mTo = doc.clipPos(pos.to); + if (cmp(mFrom, mTo)) { + var subMark = markText(doc, mFrom, mTo, marker.primary, marker.primary.type); + marker.markers.push(subMark); + subMark.parent = marker; + } + } + } + + function detachSharedMarkers(markers) { + var loop = function ( i ) { + var marker = markers[i], linked = [marker.primary.doc]; + linkedDocs(marker.primary.doc, function (d) { return linked.push(d); }); + for (var j = 0; j < marker.markers.length; j++) { + var subMarker = marker.markers[j]; + if (indexOf(linked, subMarker.doc) == -1) { + subMarker.parent = null; + marker.markers.splice(j--, 1); + } + } + }; + + for (var i = 0; i < markers.length; i++) loop( i ); + } + + var nextDocId = 0; + var Doc = function(text, mode, firstLine, lineSep, direction) { + if (!(this instanceof Doc)) { return new Doc(text, mode, firstLine, lineSep, direction) } + if (firstLine == null) { firstLine = 0; } + + BranchChunk.call(this, [new LeafChunk([new Line("", null)])]); + this.first = firstLine; + this.scrollTop = this.scrollLeft = 0; + this.cantEdit = false; + this.cleanGeneration = 1; + this.modeFrontier = this.highlightFrontier = firstLine; + var start = Pos(firstLine, 0); + this.sel = simpleSelection(start); + this.history = new History(null); + this.id = ++nextDocId; + this.modeOption = mode; + this.lineSep = lineSep; + this.direction = (direction == "rtl") ? "rtl" : "ltr"; + this.extend = false; + + if (typeof text == "string") { text = this.splitLines(text); } + updateDoc(this, {from: start, to: start, text: text}); + setSelection(this, simpleSelection(start), sel_dontScroll); + }; + + Doc.prototype = createObj(BranchChunk.prototype, { + constructor: Doc, + // Iterate over the document. Supports two forms -- with only one + // argument, it calls that for each line in the document. With + // three, it iterates over the range given by the first two (with + // the second being non-inclusive). + iter: function(from, to, op) { + if (op) { this.iterN(from - this.first, to - from, op); } + else { this.iterN(this.first, this.first + this.size, from); } + }, + + // Non-public interface for adding and removing lines. + insert: function(at, lines) { + var height = 0; + for (var i = 0; i < lines.length; ++i) { height += lines[i].height; } + this.insertInner(at - this.first, lines, height); + }, + remove: function(at, n) { this.removeInner(at - this.first, n); }, + + // From here, the methods are part of the public interface. Most + // are also available from CodeMirror (editor) instances. + + getValue: function(lineSep) { + var lines = getLines(this, this.first, this.first + this.size); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + setValue: docMethodOp(function(code) { + var top = Pos(this.first, 0), last = this.first + this.size - 1; + makeChange(this, {from: top, to: Pos(last, getLine(this, last).text.length), + text: this.splitLines(code), origin: "setValue", full: true}, true); + if (this.cm) { scrollToCoords(this.cm, 0, 0); } + setSelection(this, simpleSelection(top), sel_dontScroll); + }), + replaceRange: function(code, from, to, origin) { + from = clipPos(this, from); + to = to ? clipPos(this, to) : from; + replaceRange(this, code, from, to, origin); + }, + getRange: function(from, to, lineSep) { + var lines = getBetween(this, clipPos(this, from), clipPos(this, to)); + if (lineSep === false) { return lines } + return lines.join(lineSep || this.lineSeparator()) + }, + + getLine: function(line) {var l = this.getLineHandle(line); return l && l.text}, + + getLineHandle: function(line) {if (isLine(this, line)) { return getLine(this, line) }}, + getLineNumber: function(line) {return lineNo(line)}, + + getLineHandleVisualStart: function(line) { + if (typeof line == "number") { line = getLine(this, line); } + return visualLine(line) + }, + + lineCount: function() {return this.size}, + firstLine: function() {return this.first}, + lastLine: function() {return this.first + this.size - 1}, + + clipPos: function(pos) {return clipPos(this, pos)}, + + getCursor: function(start) { + var range = this.sel.primary(), pos; + if (start == null || start == "head") { pos = range.head; } + else if (start == "anchor") { pos = range.anchor; } + else if (start == "end" || start == "to" || start === false) { pos = range.to(); } + else { pos = range.from(); } + return pos + }, + listSelections: function() { return this.sel.ranges }, + somethingSelected: function() {return this.sel.somethingSelected()}, + + setCursor: docMethodOp(function(line, ch, options) { + setSimpleSelection(this, clipPos(this, typeof line == "number" ? Pos(line, ch || 0) : line), null, options); + }), + setSelection: docMethodOp(function(anchor, head, options) { + setSimpleSelection(this, clipPos(this, anchor), clipPos(this, head || anchor), options); + }), + extendSelection: docMethodOp(function(head, other, options) { + extendSelection(this, clipPos(this, head), other && clipPos(this, other), options); + }), + extendSelections: docMethodOp(function(heads, options) { + extendSelections(this, clipPosArray(this, heads), options); + }), + extendSelectionsBy: docMethodOp(function(f, options) { + var heads = map(this.sel.ranges, f); + extendSelections(this, clipPosArray(this, heads), options); + }), + setSelections: docMethodOp(function(ranges, primary, options) { + if (!ranges.length) { return } + var out = []; + for (var i = 0; i < ranges.length; i++) + { out[i] = new Range(clipPos(this, ranges[i].anchor), + clipPos(this, ranges[i].head)); } + if (primary == null) { primary = Math.min(ranges.length - 1, this.sel.primIndex); } + setSelection(this, normalizeSelection(this.cm, out, primary), options); + }), + addSelection: docMethodOp(function(anchor, head, options) { + var ranges = this.sel.ranges.slice(0); + ranges.push(new Range(clipPos(this, anchor), clipPos(this, head || anchor))); + setSelection(this, normalizeSelection(this.cm, ranges, ranges.length - 1), options); + }), + + getSelection: function(lineSep) { + var ranges = this.sel.ranges, lines; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + lines = lines ? lines.concat(sel) : sel; + } + if (lineSep === false) { return lines } + else { return lines.join(lineSep || this.lineSeparator()) } + }, + getSelections: function(lineSep) { + var parts = [], ranges = this.sel.ranges; + for (var i = 0; i < ranges.length; i++) { + var sel = getBetween(this, ranges[i].from(), ranges[i].to()); + if (lineSep !== false) { sel = sel.join(lineSep || this.lineSeparator()); } + parts[i] = sel; + } + return parts + }, + replaceSelection: function(code, collapse, origin) { + var dup = []; + for (var i = 0; i < this.sel.ranges.length; i++) + { dup[i] = code; } + this.replaceSelections(dup, collapse, origin || "+input"); + }, + replaceSelections: docMethodOp(function(code, collapse, origin) { + var changes = [], sel = this.sel; + for (var i = 0; i < sel.ranges.length; i++) { + var range = sel.ranges[i]; + changes[i] = {from: range.from(), to: range.to(), text: this.splitLines(code[i]), origin: origin}; + } + var newSel = collapse && collapse != "end" && computeReplacedSel(this, changes, collapse); + for (var i$1 = changes.length - 1; i$1 >= 0; i$1--) + { makeChange(this, changes[i$1]); } + if (newSel) { setSelectionReplaceHistory(this, newSel); } + else if (this.cm) { ensureCursorVisible(this.cm); } + }), + undo: docMethodOp(function() {makeChangeFromHistory(this, "undo");}), + redo: docMethodOp(function() {makeChangeFromHistory(this, "redo");}), + undoSelection: docMethodOp(function() {makeChangeFromHistory(this, "undo", true);}), + redoSelection: docMethodOp(function() {makeChangeFromHistory(this, "redo", true);}), + + setExtending: function(val) {this.extend = val;}, + getExtending: function() {return this.extend}, + + historySize: function() { + var hist = this.history, done = 0, undone = 0; + for (var i = 0; i < hist.done.length; i++) { if (!hist.done[i].ranges) { ++done; } } + for (var i$1 = 0; i$1 < hist.undone.length; i$1++) { if (!hist.undone[i$1].ranges) { ++undone; } } + return {undo: done, redo: undone} + }, + clearHistory: function() { + var this$1 = this; + + this.history = new History(this.history.maxGeneration); + linkedDocs(this, function (doc) { return doc.history = this$1.history; }, true); + }, + + markClean: function() { + this.cleanGeneration = this.changeGeneration(true); + }, + changeGeneration: function(forceSplit) { + if (forceSplit) + { this.history.lastOp = this.history.lastSelOp = this.history.lastOrigin = null; } + return this.history.generation + }, + isClean: function (gen) { + return this.history.generation == (gen || this.cleanGeneration) + }, + + getHistory: function() { + return {done: copyHistoryArray(this.history.done), + undone: copyHistoryArray(this.history.undone)} + }, + setHistory: function(histData) { + var hist = this.history = new History(this.history.maxGeneration); + hist.done = copyHistoryArray(histData.done.slice(0), null, true); + hist.undone = copyHistoryArray(histData.undone.slice(0), null, true); + }, + + setGutterMarker: docMethodOp(function(line, gutterID, value) { + return changeLine(this, line, "gutter", function (line) { + var markers = line.gutterMarkers || (line.gutterMarkers = {}); + markers[gutterID] = value; + if (!value && isEmpty(markers)) { line.gutterMarkers = null; } + return true + }) + }), + + clearGutter: docMethodOp(function(gutterID) { + var this$1 = this; + + this.iter(function (line) { + if (line.gutterMarkers && line.gutterMarkers[gutterID]) { + changeLine(this$1, line, "gutter", function () { + line.gutterMarkers[gutterID] = null; + if (isEmpty(line.gutterMarkers)) { line.gutterMarkers = null; } + return true + }); + } + }); + }), + + lineInfo: function(line) { + var n; + if (typeof line == "number") { + if (!isLine(this, line)) { return null } + n = line; + line = getLine(this, line); + if (!line) { return null } + } else { + n = lineNo(line); + if (n == null) { return null } + } + return {line: n, handle: line, text: line.text, gutterMarkers: line.gutterMarkers, + textClass: line.textClass, bgClass: line.bgClass, wrapClass: line.wrapClass, + widgets: line.widgets} + }, + + addLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + if (!line[prop]) { line[prop] = cls; } + else if (classTest(cls).test(line[prop])) { return false } + else { line[prop] += " " + cls; } + return true + }) + }), + removeLineClass: docMethodOp(function(handle, where, cls) { + return changeLine(this, handle, where == "gutter" ? "gutter" : "class", function (line) { + var prop = where == "text" ? "textClass" + : where == "background" ? "bgClass" + : where == "gutter" ? "gutterClass" : "wrapClass"; + var cur = line[prop]; + if (!cur) { return false } + else if (cls == null) { line[prop] = null; } + else { + var found = cur.match(classTest(cls)); + if (!found) { return false } + var end = found.index + found[0].length; + line[prop] = cur.slice(0, found.index) + (!found.index || end == cur.length ? "" : " ") + cur.slice(end) || null; + } + return true + }) + }), + + addLineWidget: docMethodOp(function(handle, node, options) { + return addLineWidget(this, handle, node, options) + }), + removeLineWidget: function(widget) { widget.clear(); }, + + markText: function(from, to, options) { + return markText(this, clipPos(this, from), clipPos(this, to), options, options && options.type || "range") + }, + setBookmark: function(pos, options) { + var realOpts = {replacedWith: options && (options.nodeType == null ? options.widget : options), + insertLeft: options && options.insertLeft, + clearWhenEmpty: false, shared: options && options.shared, + handleMouseEvents: options && options.handleMouseEvents}; + pos = clipPos(this, pos); + return markText(this, pos, pos, realOpts, "bookmark") + }, + findMarksAt: function(pos) { + pos = clipPos(this, pos); + var markers = [], spans = getLine(this, pos.line).markedSpans; + if (spans) { for (var i = 0; i < spans.length; ++i) { + var span = spans[i]; + if ((span.from == null || span.from <= pos.ch) && + (span.to == null || span.to >= pos.ch)) + { markers.push(span.marker.parent || span.marker); } + } } + return markers + }, + findMarks: function(from, to, filter) { + from = clipPos(this, from); to = clipPos(this, to); + var found = [], lineNo = from.line; + this.iter(from.line, to.line + 1, function (line) { + var spans = line.markedSpans; + if (spans) { for (var i = 0; i < spans.length; i++) { + var span = spans[i]; + if (!(span.to != null && lineNo == from.line && from.ch >= span.to || + span.from == null && lineNo != from.line || + span.from != null && lineNo == to.line && span.from >= to.ch) && + (!filter || filter(span.marker))) + { found.push(span.marker.parent || span.marker); } + } } + ++lineNo; + }); + return found + }, + getAllMarks: function() { + var markers = []; + this.iter(function (line) { + var sps = line.markedSpans; + if (sps) { for (var i = 0; i < sps.length; ++i) + { if (sps[i].from != null) { markers.push(sps[i].marker); } } } + }); + return markers + }, + + posFromIndex: function(off) { + var ch, lineNo = this.first, sepSize = this.lineSeparator().length; + this.iter(function (line) { + var sz = line.text.length + sepSize; + if (sz > off) { ch = off; return true } + off -= sz; + ++lineNo; + }); + return clipPos(this, Pos(lineNo, ch)) + }, + indexFromPos: function (coords) { + coords = clipPos(this, coords); + var index = coords.ch; + if (coords.line < this.first || coords.ch < 0) { return 0 } + var sepSize = this.lineSeparator().length; + this.iter(this.first, coords.line, function (line) { // iter aborts when callback returns a truthy value + index += line.text.length + sepSize; + }); + return index + }, + + copy: function(copyHistory) { + var doc = new Doc(getLines(this, this.first, this.first + this.size), + this.modeOption, this.first, this.lineSep, this.direction); + doc.scrollTop = this.scrollTop; doc.scrollLeft = this.scrollLeft; + doc.sel = this.sel; + doc.extend = false; + if (copyHistory) { + doc.history.undoDepth = this.history.undoDepth; + doc.setHistory(this.getHistory()); + } + return doc + }, + + linkedDoc: function(options) { + if (!options) { options = {}; } + var from = this.first, to = this.first + this.size; + if (options.from != null && options.from > from) { from = options.from; } + if (options.to != null && options.to < to) { to = options.to; } + var copy = new Doc(getLines(this, from, to), options.mode || this.modeOption, from, this.lineSep, this.direction); + if (options.sharedHist) { copy.history = this.history + ; }(this.linked || (this.linked = [])).push({doc: copy, sharedHist: options.sharedHist}); + copy.linked = [{doc: this, isParent: true, sharedHist: options.sharedHist}]; + copySharedMarkers(copy, findSharedMarkers(this)); + return copy + }, + unlinkDoc: function(other) { + if (other instanceof CodeMirror) { other = other.doc; } + if (this.linked) { for (var i = 0; i < this.linked.length; ++i) { + var link = this.linked[i]; + if (link.doc != other) { continue } + this.linked.splice(i, 1); + other.unlinkDoc(this); + detachSharedMarkers(findSharedMarkers(this)); + break + } } + // If the histories were shared, split them again + if (other.history == this.history) { + var splitIds = [other.id]; + linkedDocs(other, function (doc) { return splitIds.push(doc.id); }, true); + other.history = new History(null); + other.history.done = copyHistoryArray(this.history.done, splitIds); + other.history.undone = copyHistoryArray(this.history.undone, splitIds); + } + }, + iterLinkedDocs: function(f) {linkedDocs(this, f);}, + + getMode: function() {return this.mode}, + getEditor: function() {return this.cm}, + + splitLines: function(str) { + if (this.lineSep) { return str.split(this.lineSep) } + return splitLinesAuto(str) + }, + lineSeparator: function() { return this.lineSep || "\n" }, + + setDirection: docMethodOp(function (dir) { + if (dir != "rtl") { dir = "ltr"; } + if (dir == this.direction) { return } + this.direction = dir; + this.iter(function (line) { return line.order = null; }); + if (this.cm) { directionChanged(this.cm); } + }) + }); + + // Public alias. + Doc.prototype.eachLine = Doc.prototype.iter; + + // Kludge to work around strange IE behavior where it'll sometimes + // re-fire a series of drag-related events right after the drop (#1551) + var lastDrop = 0; + + function onDrop(e) { + var cm = this; + clearDragCursor(cm); + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) + { return } + e_preventDefault(e); + if (ie) { lastDrop = +new Date; } + var pos = posFromMouse(cm, e, true), files = e.dataTransfer.files; + if (!pos || cm.isReadOnly()) { return } + // Might be a file drop, in which case we simply extract the text + // and insert it. + if (files && files.length && window.FileReader && window.File) { + var n = files.length, text = Array(n), read = 0; + var markAsReadAndPasteIfAllFilesAreRead = function () { + if (++read == n) { + operation(cm, function () { + pos = clipPos(cm.doc, pos); + var change = {from: pos, to: pos, + text: cm.doc.splitLines( + text.filter(function (t) { return t != null; }).join(cm.doc.lineSeparator())), + origin: "paste"}; + makeChange(cm.doc, change); + setSelectionReplaceHistory(cm.doc, simpleSelection(clipPos(cm.doc, pos), clipPos(cm.doc, changeEnd(change)))); + })(); + } + }; + var readTextFromFile = function (file, i) { + if (cm.options.allowDropFileTypes && + indexOf(cm.options.allowDropFileTypes, file.type) == -1) { + markAsReadAndPasteIfAllFilesAreRead(); + return + } + var reader = new FileReader; + reader.onerror = function () { return markAsReadAndPasteIfAllFilesAreRead(); }; + reader.onload = function () { + var content = reader.result; + if (/[\x00-\x08\x0e-\x1f]{2}/.test(content)) { + markAsReadAndPasteIfAllFilesAreRead(); + return + } + text[i] = content; + markAsReadAndPasteIfAllFilesAreRead(); + }; + reader.readAsText(file); + }; + for (var i = 0; i < files.length; i++) { readTextFromFile(files[i], i); } + } else { // Normal drop + // Don't do a replace if the drop happened inside of the selected text. + if (cm.state.draggingText && cm.doc.sel.contains(pos) > -1) { + cm.state.draggingText(e); + // Ensure the editor is re-focused + setTimeout(function () { return cm.display.input.focus(); }, 20); + return + } + try { + var text$1 = e.dataTransfer.getData("Text"); + if (text$1) { + var selected; + if (cm.state.draggingText && !cm.state.draggingText.copy) + { selected = cm.listSelections(); } + setSelectionNoUndo(cm.doc, simpleSelection(pos, pos)); + if (selected) { for (var i$1 = 0; i$1 < selected.length; ++i$1) + { replaceRange(cm.doc, "", selected[i$1].anchor, selected[i$1].head, "drag"); } } + cm.replaceSelection(text$1, "around", "paste"); + cm.display.input.focus(); + } + } + catch(e$1){} + } + } + + function onDragStart(cm, e) { + if (ie && (!cm.state.draggingText || +new Date - lastDrop < 100)) { e_stop(e); return } + if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) { return } + + e.dataTransfer.setData("Text", cm.getSelection()); + e.dataTransfer.effectAllowed = "copyMove"; + + // Use dummy image instead of default browsers image. + // Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there. + if (e.dataTransfer.setDragImage && !safari) { + var img = elt("img", null, null, "position: fixed; left: 0; top: 0;"); + img.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (presto) { + img.width = img.height = 1; + cm.display.wrapper.appendChild(img); + // Force a relayout, or Opera won't use our image for some obscure reason + img._top = img.offsetTop; + } + e.dataTransfer.setDragImage(img, 0, 0); + if (presto) { img.parentNode.removeChild(img); } + } + } + + function onDragOver(cm, e) { + var pos = posFromMouse(cm, e); + if (!pos) { return } + var frag = document.createDocumentFragment(); + drawSelectionCursor(cm, pos, frag); + if (!cm.display.dragCursor) { + cm.display.dragCursor = elt("div", null, "CodeMirror-cursors CodeMirror-dragcursors"); + cm.display.lineSpace.insertBefore(cm.display.dragCursor, cm.display.cursorDiv); + } + removeChildrenAndAdd(cm.display.dragCursor, frag); + } + + function clearDragCursor(cm) { + if (cm.display.dragCursor) { + cm.display.lineSpace.removeChild(cm.display.dragCursor); + cm.display.dragCursor = null; + } + } + + // These must be handled carefully, because naively registering a + // handler for each editor will cause the editors to never be + // garbage collected. + + function forEachCodeMirror(f) { + if (!document.getElementsByClassName) { return } + var byClass = document.getElementsByClassName("CodeMirror"), editors = []; + for (var i = 0; i < byClass.length; i++) { + var cm = byClass[i].CodeMirror; + if (cm) { editors.push(cm); } + } + if (editors.length) { editors[0].operation(function () { + for (var i = 0; i < editors.length; i++) { f(editors[i]); } + }); } + } + + var globalsRegistered = false; + function ensureGlobalHandlers() { + if (globalsRegistered) { return } + registerGlobalHandlers(); + globalsRegistered = true; + } + function registerGlobalHandlers() { + // When the window resizes, we need to refresh active editors. + var resizeTimer; + on(window, "resize", function () { + if (resizeTimer == null) { resizeTimer = setTimeout(function () { + resizeTimer = null; + forEachCodeMirror(onResize); + }, 100); } + }); + // When the window loses focus, we want to show the editor as blurred + on(window, "blur", function () { return forEachCodeMirror(onBlur); }); + } + // Called when the window resizes + function onResize(cm) { + var d = cm.display; + // Might be a text scaling operation, clear size caches. + d.cachedCharWidth = d.cachedTextHeight = d.cachedPaddingH = null; + d.scrollbarsClipped = false; + cm.setSize(); + } + + var keyNames = { + 3: "Pause", 8: "Backspace", 9: "Tab", 13: "Enter", 16: "Shift", 17: "Ctrl", 18: "Alt", + 19: "Pause", 20: "CapsLock", 27: "Esc", 32: "Space", 33: "PageUp", 34: "PageDown", 35: "End", + 36: "Home", 37: "Left", 38: "Up", 39: "Right", 40: "Down", 44: "PrintScrn", 45: "Insert", + 46: "Delete", 59: ";", 61: "=", 91: "Mod", 92: "Mod", 93: "Mod", + 106: "*", 107: "=", 109: "-", 110: ".", 111: "/", 145: "ScrollLock", + 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", + 221: "]", 222: "'", 224: "Mod", 63232: "Up", 63233: "Down", 63234: "Left", 63235: "Right", 63272: "Delete", + 63273: "Home", 63275: "End", 63276: "PageUp", 63277: "PageDown", 63302: "Insert" + }; + + // Number keys + for (var i = 0; i < 10; i++) { keyNames[i + 48] = keyNames[i + 96] = String(i); } + // Alphabetic keys + for (var i$1 = 65; i$1 <= 90; i$1++) { keyNames[i$1] = String.fromCharCode(i$1); } + // Function keys + for (var i$2 = 1; i$2 <= 12; i$2++) { keyNames[i$2 + 111] = keyNames[i$2 + 63235] = "F" + i$2; } + + var keyMap = {}; + + keyMap.basic = { + "Left": "goCharLeft", "Right": "goCharRight", "Up": "goLineUp", "Down": "goLineDown", + "End": "goLineEnd", "Home": "goLineStartSmart", "PageUp": "goPageUp", "PageDown": "goPageDown", + "Delete": "delCharAfter", "Backspace": "delCharBefore", "Shift-Backspace": "delCharBefore", + "Tab": "defaultTab", "Shift-Tab": "indentAuto", + "Enter": "newlineAndIndent", "Insert": "toggleOverwrite", + "Esc": "singleSelection" + }; + // Note that the save and find-related commands aren't defined by + // default. User code or addons can define them. Unknown commands + // are simply ignored. + keyMap.pcDefault = { + "Ctrl-A": "selectAll", "Ctrl-D": "deleteLine", "Ctrl-Z": "undo", "Shift-Ctrl-Z": "redo", "Ctrl-Y": "redo", + "Ctrl-Home": "goDocStart", "Ctrl-End": "goDocEnd", "Ctrl-Up": "goLineUp", "Ctrl-Down": "goLineDown", + "Ctrl-Left": "goGroupLeft", "Ctrl-Right": "goGroupRight", "Alt-Left": "goLineStart", "Alt-Right": "goLineEnd", + "Ctrl-Backspace": "delGroupBefore", "Ctrl-Delete": "delGroupAfter", "Ctrl-S": "save", "Ctrl-F": "find", + "Ctrl-G": "findNext", "Shift-Ctrl-G": "findPrev", "Shift-Ctrl-F": "replace", "Shift-Ctrl-R": "replaceAll", + "Ctrl-[": "indentLess", "Ctrl-]": "indentMore", + "Ctrl-U": "undoSelection", "Shift-Ctrl-U": "redoSelection", "Alt-U": "redoSelection", + "fallthrough": "basic" + }; + // Very basic readline/emacs-style bindings, which are standard on Mac. + keyMap.emacsy = { + "Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown", + "Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd", + "Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore", + "Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars", + "Ctrl-O": "openLine" + }; + keyMap.macDefault = { + "Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo", + "Cmd-Home": "goDocStart", "Cmd-Up": "goDocStart", "Cmd-End": "goDocEnd", "Cmd-Down": "goDocEnd", "Alt-Left": "goGroupLeft", + "Alt-Right": "goGroupRight", "Cmd-Left": "goLineLeft", "Cmd-Right": "goLineRight", "Alt-Backspace": "delGroupBefore", + "Ctrl-Alt-Backspace": "delGroupAfter", "Alt-Delete": "delGroupAfter", "Cmd-S": "save", "Cmd-F": "find", + "Cmd-G": "findNext", "Shift-Cmd-G": "findPrev", "Cmd-Alt-F": "replace", "Shift-Cmd-Alt-F": "replaceAll", + "Cmd-[": "indentLess", "Cmd-]": "indentMore", "Cmd-Backspace": "delWrappedLineLeft", "Cmd-Delete": "delWrappedLineRight", + "Cmd-U": "undoSelection", "Shift-Cmd-U": "redoSelection", "Ctrl-Up": "goDocStart", "Ctrl-Down": "goDocEnd", + "fallthrough": ["basic", "emacsy"] + }; + keyMap["default"] = mac ? keyMap.macDefault : keyMap.pcDefault; + + // KEYMAP DISPATCH + + function normalizeKeyName(name) { + var parts = name.split(/-(?!$)/); + name = parts[parts.length - 1]; + var alt, ctrl, shift, cmd; + for (var i = 0; i < parts.length - 1; i++) { + var mod = parts[i]; + if (/^(cmd|meta|m)$/i.test(mod)) { cmd = true; } + else if (/^a(lt)?$/i.test(mod)) { alt = true; } + else if (/^(c|ctrl|control)$/i.test(mod)) { ctrl = true; } + else if (/^s(hift)?$/i.test(mod)) { shift = true; } + else { throw new Error("Unrecognized modifier name: " + mod) } + } + if (alt) { name = "Alt-" + name; } + if (ctrl) { name = "Ctrl-" + name; } + if (cmd) { name = "Cmd-" + name; } + if (shift) { name = "Shift-" + name; } + return name + } + + // This is a kludge to keep keymaps mostly working as raw objects + // (backwards compatibility) while at the same time support features + // like normalization and multi-stroke key bindings. It compiles a + // new normalized keymap, and then updates the old object to reflect + // this. + function normalizeKeyMap(keymap) { + var copy = {}; + for (var keyname in keymap) { if (keymap.hasOwnProperty(keyname)) { + var value = keymap[keyname]; + if (/^(name|fallthrough|(de|at)tach)$/.test(keyname)) { continue } + if (value == "...") { delete keymap[keyname]; continue } + + var keys = map(keyname.split(" "), normalizeKeyName); + for (var i = 0; i < keys.length; i++) { + var val = (void 0), name = (void 0); + if (i == keys.length - 1) { + name = keys.join(" "); + val = value; + } else { + name = keys.slice(0, i + 1).join(" "); + val = "..."; + } + var prev = copy[name]; + if (!prev) { copy[name] = val; } + else if (prev != val) { throw new Error("Inconsistent bindings for " + name) } + } + delete keymap[keyname]; + } } + for (var prop in copy) { keymap[prop] = copy[prop]; } + return keymap + } + + function lookupKey(key, map, handle, context) { + map = getKeyMap(map); + var found = map.call ? map.call(key, context) : map[key]; + if (found === false) { return "nothing" } + if (found === "...") { return "multi" } + if (found != null && handle(found)) { return "handled" } + + if (map.fallthrough) { + if (Object.prototype.toString.call(map.fallthrough) != "[object Array]") + { return lookupKey(key, map.fallthrough, handle, context) } + for (var i = 0; i < map.fallthrough.length; i++) { + var result = lookupKey(key, map.fallthrough[i], handle, context); + if (result) { return result } + } + } + } + + // Modifier key presses don't count as 'real' key presses for the + // purpose of keymap fallthrough. + function isModifierKey(value) { + var name = typeof value == "string" ? value : keyNames[value.keyCode]; + return name == "Ctrl" || name == "Alt" || name == "Shift" || name == "Mod" + } + + function addModifierNames(name, event, noShift) { + var base = name; + if (event.altKey && base != "Alt") { name = "Alt-" + name; } + if ((flipCtrlCmd ? event.metaKey : event.ctrlKey) && base != "Ctrl") { name = "Ctrl-" + name; } + if ((flipCtrlCmd ? event.ctrlKey : event.metaKey) && base != "Mod") { name = "Cmd-" + name; } + if (!noShift && event.shiftKey && base != "Shift") { name = "Shift-" + name; } + return name + } + + // Look up the name of a key as indicated by an event object. + function keyName(event, noShift) { + if (presto && event.keyCode == 34 && event["char"]) { return false } + var name = keyNames[event.keyCode]; + if (name == null || event.altGraphKey) { return false } + // Ctrl-ScrollLock has keyCode 3, same as Ctrl-Pause, + // so we'll use event.code when available (Chrome 48+, FF 38+, Safari 10.1+) + if (event.keyCode == 3 && event.code) { name = event.code; } + return addModifierNames(name, event, noShift) + } + + function getKeyMap(val) { + return typeof val == "string" ? keyMap[val] : val + } + + // Helper for deleting text near the selection(s), used to implement + // backspace, delete, and similar functionality. + function deleteNearSelection(cm, compute) { + var ranges = cm.doc.sel.ranges, kill = []; + // Build up a set of ranges to kill first, merging overlapping + // ranges. + for (var i = 0; i < ranges.length; i++) { + var toKill = compute(ranges[i]); + while (kill.length && cmp(toKill.from, lst(kill).to) <= 0) { + var replaced = kill.pop(); + if (cmp(replaced.from, toKill.from) < 0) { + toKill.from = replaced.from; + break + } + } + kill.push(toKill); + } + // Next, remove those actual ranges. + runInOp(cm, function () { + for (var i = kill.length - 1; i >= 0; i--) + { replaceRange(cm.doc, "", kill[i].from, kill[i].to, "+delete"); } + ensureCursorVisible(cm); + }); + } + + function moveCharLogically(line, ch, dir) { + var target = skipExtendingChars(line.text, ch + dir, dir); + return target < 0 || target > line.text.length ? null : target + } + + function moveLogically(line, start, dir) { + var ch = moveCharLogically(line, start.ch, dir); + return ch == null ? null : new Pos(start.line, ch, dir < 0 ? "after" : "before") + } + + function endOfLine(visually, cm, lineObj, lineNo, dir) { + if (visually) { + if (cm.doc.direction == "rtl") { dir = -dir; } + var order = getOrder(lineObj, cm.doc.direction); + if (order) { + var part = dir < 0 ? lst(order) : order[0]; + var moveInStorageOrder = (dir < 0) == (part.level == 1); + var sticky = moveInStorageOrder ? "after" : "before"; + var ch; + // With a wrapped rtl chunk (possibly spanning multiple bidi parts), + // it could be that the last bidi part is not on the last visual line, + // since visual lines contain content order-consecutive chunks. + // Thus, in rtl, we are looking for the first (content-order) character + // in the rtl chunk that is on the last line (that is, the same line + // as the last (content-order) character). + if (part.level > 0 || cm.doc.direction == "rtl") { + var prep = prepareMeasureForLine(cm, lineObj); + ch = dir < 0 ? lineObj.text.length - 1 : 0; + var targetTop = measureCharPrepared(cm, prep, ch).top; + ch = findFirst(function (ch) { return measureCharPrepared(cm, prep, ch).top == targetTop; }, (dir < 0) == (part.level == 1) ? part.from : part.to - 1, ch); + if (sticky == "before") { ch = moveCharLogically(lineObj, ch, 1); } + } else { ch = dir < 0 ? part.to : part.from; } + return new Pos(lineNo, ch, sticky) + } + } + return new Pos(lineNo, dir < 0 ? lineObj.text.length : 0, dir < 0 ? "before" : "after") + } + + function moveVisually(cm, line, start, dir) { + var bidi = getOrder(line, cm.doc.direction); + if (!bidi) { return moveLogically(line, start, dir) } + if (start.ch >= line.text.length) { + start.ch = line.text.length; + start.sticky = "before"; + } else if (start.ch <= 0) { + start.ch = 0; + start.sticky = "after"; + } + var partPos = getBidiPartAt(bidi, start.ch, start.sticky), part = bidi[partPos]; + if (cm.doc.direction == "ltr" && part.level % 2 == 0 && (dir > 0 ? part.to > start.ch : part.from < start.ch)) { + // Case 1: We move within an ltr part in an ltr editor. Even with wrapped lines, + // nothing interesting happens. + return moveLogically(line, start, dir) + } + + var mv = function (pos, dir) { return moveCharLogically(line, pos instanceof Pos ? pos.ch : pos, dir); }; + var prep; + var getWrappedLineExtent = function (ch) { + if (!cm.options.lineWrapping) { return {begin: 0, end: line.text.length} } + prep = prep || prepareMeasureForLine(cm, line); + return wrappedLineExtentChar(cm, line, prep, ch) + }; + var wrappedLineExtent = getWrappedLineExtent(start.sticky == "before" ? mv(start, -1) : start.ch); + + if (cm.doc.direction == "rtl" || part.level == 1) { + var moveInStorageOrder = (part.level == 1) == (dir < 0); + var ch = mv(start, moveInStorageOrder ? 1 : -1); + if (ch != null && (!moveInStorageOrder ? ch >= part.from && ch >= wrappedLineExtent.begin : ch <= part.to && ch <= wrappedLineExtent.end)) { + // Case 2: We move within an rtl part or in an rtl editor on the same visual line + var sticky = moveInStorageOrder ? "before" : "after"; + return new Pos(start.line, ch, sticky) + } + } + + // Case 3: Could not move within this bidi part in this visual line, so leave + // the current bidi part + + var searchInVisualLine = function (partPos, dir, wrappedLineExtent) { + var getRes = function (ch, moveInStorageOrder) { return moveInStorageOrder + ? new Pos(start.line, mv(ch, 1), "before") + : new Pos(start.line, ch, "after"); }; + + for (; partPos >= 0 && partPos < bidi.length; partPos += dir) { + var part = bidi[partPos]; + var moveInStorageOrder = (dir > 0) == (part.level != 1); + var ch = moveInStorageOrder ? wrappedLineExtent.begin : mv(wrappedLineExtent.end, -1); + if (part.from <= ch && ch < part.to) { return getRes(ch, moveInStorageOrder) } + ch = moveInStorageOrder ? part.from : mv(part.to, -1); + if (wrappedLineExtent.begin <= ch && ch < wrappedLineExtent.end) { return getRes(ch, moveInStorageOrder) } + } + }; + + // Case 3a: Look for other bidi parts on the same visual line + var res = searchInVisualLine(partPos + dir, dir, wrappedLineExtent); + if (res) { return res } + + // Case 3b: Look for other bidi parts on the next visual line + var nextCh = dir > 0 ? wrappedLineExtent.end : mv(wrappedLineExtent.begin, -1); + if (nextCh != null && !(dir > 0 && nextCh == line.text.length)) { + res = searchInVisualLine(dir > 0 ? 0 : bidi.length - 1, dir, getWrappedLineExtent(nextCh)); + if (res) { return res } + } + + // Case 4: Nowhere to move + return null + } + + // Commands are parameter-less actions that can be performed on an + // editor, mostly used for keybindings. + var commands = { + selectAll: selectAll, + singleSelection: function (cm) { return cm.setSelection(cm.getCursor("anchor"), cm.getCursor("head"), sel_dontScroll); }, + killLine: function (cm) { return deleteNearSelection(cm, function (range) { + if (range.empty()) { + var len = getLine(cm.doc, range.head.line).text.length; + if (range.head.ch == len && range.head.line < cm.lastLine()) + { return {from: range.head, to: Pos(range.head.line + 1, 0)} } + else + { return {from: range.head, to: Pos(range.head.line, len)} } + } else { + return {from: range.from(), to: range.to()} + } + }); }, + deleteLine: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), + to: clipPos(cm.doc, Pos(range.to().line + 1, 0)) + }); }); }, + delLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { return ({ + from: Pos(range.from().line, 0), to: range.from() + }); }); }, + delWrappedLineLeft: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var leftPos = cm.coordsChar({left: 0, top: top}, "div"); + return {from: leftPos, to: range.from()} + }); }, + delWrappedLineRight: function (cm) { return deleteNearSelection(cm, function (range) { + var top = cm.charCoords(range.head, "div").top + 5; + var rightPos = cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div"); + return {from: range.from(), to: rightPos } + }); }, + undo: function (cm) { return cm.undo(); }, + redo: function (cm) { return cm.redo(); }, + undoSelection: function (cm) { return cm.undoSelection(); }, + redoSelection: function (cm) { return cm.redoSelection(); }, + goDocStart: function (cm) { return cm.extendSelection(Pos(cm.firstLine(), 0)); }, + goDocEnd: function (cm) { return cm.extendSelection(Pos(cm.lastLine())); }, + goLineStart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStart(cm, range.head.line); }, + {origin: "+move", bias: 1} + ); }, + goLineStartSmart: function (cm) { return cm.extendSelectionsBy(function (range) { return lineStartSmart(cm, range.head); }, + {origin: "+move", bias: 1} + ); }, + goLineEnd: function (cm) { return cm.extendSelectionsBy(function (range) { return lineEnd(cm, range.head.line); }, + {origin: "+move", bias: -1} + ); }, + goLineRight: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: cm.display.lineDiv.offsetWidth + 100, top: top}, "div") + }, sel_move); }, + goLineLeft: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + return cm.coordsChar({left: 0, top: top}, "div") + }, sel_move); }, + goLineLeftSmart: function (cm) { return cm.extendSelectionsBy(function (range) { + var top = cm.cursorCoords(range.head, "div").top + 5; + var pos = cm.coordsChar({left: 0, top: top}, "div"); + if (pos.ch < cm.getLine(pos.line).search(/\S/)) { return lineStartSmart(cm, range.head) } + return pos + }, sel_move); }, + goLineUp: function (cm) { return cm.moveV(-1, "line"); }, + goLineDown: function (cm) { return cm.moveV(1, "line"); }, + goPageUp: function (cm) { return cm.moveV(-1, "page"); }, + goPageDown: function (cm) { return cm.moveV(1, "page"); }, + goCharLeft: function (cm) { return cm.moveH(-1, "char"); }, + goCharRight: function (cm) { return cm.moveH(1, "char"); }, + goColumnLeft: function (cm) { return cm.moveH(-1, "column"); }, + goColumnRight: function (cm) { return cm.moveH(1, "column"); }, + goWordLeft: function (cm) { return cm.moveH(-1, "word"); }, + goGroupRight: function (cm) { return cm.moveH(1, "group"); }, + goGroupLeft: function (cm) { return cm.moveH(-1, "group"); }, + goWordRight: function (cm) { return cm.moveH(1, "word"); }, + delCharBefore: function (cm) { return cm.deleteH(-1, "codepoint"); }, + delCharAfter: function (cm) { return cm.deleteH(1, "char"); }, + delWordBefore: function (cm) { return cm.deleteH(-1, "word"); }, + delWordAfter: function (cm) { return cm.deleteH(1, "word"); }, + delGroupBefore: function (cm) { return cm.deleteH(-1, "group"); }, + delGroupAfter: function (cm) { return cm.deleteH(1, "group"); }, + indentAuto: function (cm) { return cm.indentSelection("smart"); }, + indentMore: function (cm) { return cm.indentSelection("add"); }, + indentLess: function (cm) { return cm.indentSelection("subtract"); }, + insertTab: function (cm) { return cm.replaceSelection("\t"); }, + insertSoftTab: function (cm) { + var spaces = [], ranges = cm.listSelections(), tabSize = cm.options.tabSize; + for (var i = 0; i < ranges.length; i++) { + var pos = ranges[i].from(); + var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize); + spaces.push(spaceStr(tabSize - col % tabSize)); + } + cm.replaceSelections(spaces); + }, + defaultTab: function (cm) { + if (cm.somethingSelected()) { cm.indentSelection("add"); } + else { cm.execCommand("insertTab"); } + }, + // Swap the two chars left and right of each selection's head. + // Move cursor behind the two swapped characters afterwards. + // + // Doesn't consider line feeds a character. + // Doesn't scan more than one line above to find a character. + // Doesn't do anything on an empty line. + // Doesn't do anything with non-empty selections. + transposeChars: function (cm) { return runInOp(cm, function () { + var ranges = cm.listSelections(), newSel = []; + for (var i = 0; i < ranges.length; i++) { + if (!ranges[i].empty()) { continue } + var cur = ranges[i].head, line = getLine(cm.doc, cur.line).text; + if (line) { + if (cur.ch == line.length) { cur = new Pos(cur.line, cur.ch - 1); } + if (cur.ch > 0) { + cur = new Pos(cur.line, cur.ch + 1); + cm.replaceRange(line.charAt(cur.ch - 1) + line.charAt(cur.ch - 2), + Pos(cur.line, cur.ch - 2), cur, "+transpose"); + } else if (cur.line > cm.doc.first) { + var prev = getLine(cm.doc, cur.line - 1).text; + if (prev) { + cur = new Pos(cur.line, 1); + cm.replaceRange(line.charAt(0) + cm.doc.lineSeparator() + + prev.charAt(prev.length - 1), + Pos(cur.line - 1, prev.length - 1), cur, "+transpose"); + } + } + } + newSel.push(new Range(cur, cur)); + } + cm.setSelections(newSel); + }); }, + newlineAndIndent: function (cm) { return runInOp(cm, function () { + var sels = cm.listSelections(); + for (var i = sels.length - 1; i >= 0; i--) + { cm.replaceRange(cm.doc.lineSeparator(), sels[i].anchor, sels[i].head, "+input"); } + sels = cm.listSelections(); + for (var i$1 = 0; i$1 < sels.length; i$1++) + { cm.indentLine(sels[i$1].from().line, null, true); } + ensureCursorVisible(cm); + }); }, + openLine: function (cm) { return cm.replaceSelection("\n", "start"); }, + toggleOverwrite: function (cm) { return cm.toggleOverwrite(); } + }; + + + function lineStart(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLine(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, visual, lineN, 1) + } + function lineEnd(cm, lineN) { + var line = getLine(cm.doc, lineN); + var visual = visualLineEnd(line); + if (visual != line) { lineN = lineNo(visual); } + return endOfLine(true, cm, line, lineN, -1) + } + function lineStartSmart(cm, pos) { + var start = lineStart(cm, pos.line); + var line = getLine(cm.doc, start.line); + var order = getOrder(line, cm.doc.direction); + if (!order || order[0].level == 0) { + var firstNonWS = Math.max(start.ch, line.text.search(/\S/)); + var inWS = pos.line == start.line && pos.ch <= firstNonWS && pos.ch; + return Pos(start.line, inWS ? 0 : firstNonWS, start.sticky) + } + return start + } + + // Run a handler that was bound to a key. + function doHandleBinding(cm, bound, dropShift) { + if (typeof bound == "string") { + bound = commands[bound]; + if (!bound) { return false } + } + // Ensure previous input has been read, so that the handler sees a + // consistent view of the document + cm.display.input.ensurePolled(); + var prevShift = cm.display.shift, done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + if (dropShift) { cm.display.shift = false; } + done = bound(cm) != Pass; + } finally { + cm.display.shift = prevShift; + cm.state.suppressEdits = false; + } + return done + } + + function lookupKeyForEditor(cm, name, handle) { + for (var i = 0; i < cm.state.keyMaps.length; i++) { + var result = lookupKey(name, cm.state.keyMaps[i], handle, cm); + if (result) { return result } + } + return (cm.options.extraKeys && lookupKey(name, cm.options.extraKeys, handle, cm)) + || lookupKey(name, cm.options.keyMap, handle, cm) + } + + // Note that, despite the name, this function is also used to check + // for bound mouse clicks. + + var stopSeq = new Delayed; + + function dispatchKey(cm, name, e, handle) { + var seq = cm.state.keySeq; + if (seq) { + if (isModifierKey(name)) { return "handled" } + if (/\'$/.test(name)) + { cm.state.keySeq = null; } + else + { stopSeq.set(50, function () { + if (cm.state.keySeq == seq) { + cm.state.keySeq = null; + cm.display.input.reset(); + } + }); } + if (dispatchKeyInner(cm, seq + " " + name, e, handle)) { return true } + } + return dispatchKeyInner(cm, name, e, handle) + } + + function dispatchKeyInner(cm, name, e, handle) { + var result = lookupKeyForEditor(cm, name, handle); + + if (result == "multi") + { cm.state.keySeq = name; } + if (result == "handled") + { signalLater(cm, "keyHandled", cm, name, e); } + + if (result == "handled" || result == "multi") { + e_preventDefault(e); + restartBlink(cm); + } + + return !!result + } + + // Handle a key from the keydown event. + function handleKeyBinding(cm, e) { + var name = keyName(e, true); + if (!name) { return false } + + if (e.shiftKey && !cm.state.keySeq) { + // First try to resolve full name (including 'Shift-'). Failing + // that, see if there is a cursor-motion command (starting with + // 'go') bound to the keyname without 'Shift-'. + return dispatchKey(cm, "Shift-" + name, e, function (b) { return doHandleBinding(cm, b, true); }) + || dispatchKey(cm, name, e, function (b) { + if (typeof b == "string" ? /^go[A-Z]/.test(b) : b.motion) + { return doHandleBinding(cm, b) } + }) + } else { + return dispatchKey(cm, name, e, function (b) { return doHandleBinding(cm, b); }) + } + } + + // Handle a key from the keypress event + function handleCharBinding(cm, e, ch) { + return dispatchKey(cm, "'" + ch + "'", e, function (b) { return doHandleBinding(cm, b, true); }) + } + + var lastStoppedKey = null; + function onKeyDown(e) { + var cm = this; + if (e.target && e.target != cm.display.input.getField()) { return } + cm.curOp.focus = activeElt(); + if (signalDOMEvent(cm, e)) { return } + // IE does strange things with escape. + if (ie && ie_version < 11 && e.keyCode == 27) { e.returnValue = false; } + var code = e.keyCode; + cm.display.shift = code == 16 || e.shiftKey; + var handled = handleKeyBinding(cm, e); + if (presto) { + lastStoppedKey = handled ? code : null; + // Opera has no cut event... we try to at least catch the key combo + if (!handled && code == 88 && !hasCopyEvent && (mac ? e.metaKey : e.ctrlKey)) + { cm.replaceSelection("", null, "cut"); } + } + if (gecko && !mac && !handled && code == 46 && e.shiftKey && !e.ctrlKey && document.execCommand) + { document.execCommand("cut"); } + + // Turn mouse into crosshair when Alt is held on Mac. + if (code == 18 && !/\bCodeMirror-crosshair\b/.test(cm.display.lineDiv.className)) + { showCrossHair(cm); } + } + + function showCrossHair(cm) { + var lineDiv = cm.display.lineDiv; + addClass(lineDiv, "CodeMirror-crosshair"); + + function up(e) { + if (e.keyCode == 18 || !e.altKey) { + rmClass(lineDiv, "CodeMirror-crosshair"); + off(document, "keyup", up); + off(document, "mouseover", up); + } + } + on(document, "keyup", up); + on(document, "mouseover", up); + } + + function onKeyUp(e) { + if (e.keyCode == 16) { this.doc.sel.shift = false; } + signalDOMEvent(this, e); + } + + function onKeyPress(e) { + var cm = this; + if (e.target && e.target != cm.display.input.getField()) { return } + if (eventInWidget(cm.display, e) || signalDOMEvent(cm, e) || e.ctrlKey && !e.altKey || mac && e.metaKey) { return } + var keyCode = e.keyCode, charCode = e.charCode; + if (presto && keyCode == lastStoppedKey) {lastStoppedKey = null; e_preventDefault(e); return} + if ((presto && (!e.which || e.which < 10)) && handleKeyBinding(cm, e)) { return } + var ch = String.fromCharCode(charCode == null ? keyCode : charCode); + // Some browsers fire keypress events for backspace + if (ch == "\x08") { return } + if (handleCharBinding(cm, e, ch)) { return } + cm.display.input.onKeyPress(e); + } + + var DOUBLECLICK_DELAY = 400; + + var PastClick = function(time, pos, button) { + this.time = time; + this.pos = pos; + this.button = button; + }; + + PastClick.prototype.compare = function (time, pos, button) { + return this.time + DOUBLECLICK_DELAY > time && + cmp(pos, this.pos) == 0 && button == this.button + }; + + var lastClick, lastDoubleClick; + function clickRepeat(pos, button) { + var now = +new Date; + if (lastDoubleClick && lastDoubleClick.compare(now, pos, button)) { + lastClick = lastDoubleClick = null; + return "triple" + } else if (lastClick && lastClick.compare(now, pos, button)) { + lastDoubleClick = new PastClick(now, pos, button); + lastClick = null; + return "double" + } else { + lastClick = new PastClick(now, pos, button); + lastDoubleClick = null; + return "single" + } + } + + // A mouse down can be a single click, double click, triple click, + // start of selection drag, start of text drag, new cursor + // (ctrl-click), rectangle drag (alt-drag), or xwin + // middle-click-paste. Or it might be a click on something we should + // not interfere with, such as a scrollbar or widget. + function onMouseDown(e) { + var cm = this, display = cm.display; + if (signalDOMEvent(cm, e) || display.activeTouch && display.input.supportsTouch()) { return } + display.input.ensurePolled(); + display.shift = e.shiftKey; + + if (eventInWidget(display, e)) { + if (!webkit) { + // Briefly turn off draggability, to allow widgets to do + // normal dragging things. + display.scroller.draggable = false; + setTimeout(function () { return display.scroller.draggable = true; }, 100); + } + return + } + if (clickInGutter(cm, e)) { return } + var pos = posFromMouse(cm, e), button = e_button(e), repeat = pos ? clickRepeat(pos, button) : "single"; + window.focus(); + + // #3261: make sure, that we're not starting a second selection + if (button == 1 && cm.state.selectingText) + { cm.state.selectingText(e); } + + if (pos && handleMappedButton(cm, button, pos, repeat, e)) { return } + + if (button == 1) { + if (pos) { leftButtonDown(cm, pos, repeat, e); } + else if (e_target(e) == display.scroller) { e_preventDefault(e); } + } else if (button == 2) { + if (pos) { extendSelection(cm.doc, pos); } + setTimeout(function () { return display.input.focus(); }, 20); + } else if (button == 3) { + if (captureRightClick) { cm.display.input.onContextMenu(e); } + else { delayBlurEvent(cm); } + } + } + + function handleMappedButton(cm, button, pos, repeat, event) { + var name = "Click"; + if (repeat == "double") { name = "Double" + name; } + else if (repeat == "triple") { name = "Triple" + name; } + name = (button == 1 ? "Left" : button == 2 ? "Middle" : "Right") + name; + + return dispatchKey(cm, addModifierNames(name, event), event, function (bound) { + if (typeof bound == "string") { bound = commands[bound]; } + if (!bound) { return false } + var done = false; + try { + if (cm.isReadOnly()) { cm.state.suppressEdits = true; } + done = bound(cm, pos) != Pass; + } finally { + cm.state.suppressEdits = false; + } + return done + }) + } + + function configureMouse(cm, repeat, event) { + var option = cm.getOption("configureMouse"); + var value = option ? option(cm, repeat, event) : {}; + if (value.unit == null) { + var rect = chromeOS ? event.shiftKey && event.metaKey : event.altKey; + value.unit = rect ? "rectangle" : repeat == "single" ? "char" : repeat == "double" ? "word" : "line"; + } + if (value.extend == null || cm.doc.extend) { value.extend = cm.doc.extend || event.shiftKey; } + if (value.addNew == null) { value.addNew = mac ? event.metaKey : event.ctrlKey; } + if (value.moveOnDrag == null) { value.moveOnDrag = !(mac ? event.altKey : event.ctrlKey); } + return value + } + + function leftButtonDown(cm, pos, repeat, event) { + if (ie) { setTimeout(bind(ensureFocus, cm), 0); } + else { cm.curOp.focus = activeElt(); } + + var behavior = configureMouse(cm, repeat, event); + + var sel = cm.doc.sel, contained; + if (cm.options.dragDrop && dragAndDrop && !cm.isReadOnly() && + repeat == "single" && (contained = sel.contains(pos)) > -1 && + (cmp((contained = sel.ranges[contained]).from(), pos) < 0 || pos.xRel > 0) && + (cmp(contained.to(), pos) > 0 || pos.xRel < 0)) + { leftButtonStartDrag(cm, event, pos, behavior); } + else + { leftButtonSelect(cm, event, pos, behavior); } + } + + // Start a text drag. When it ends, see if any dragging actually + // happen, and treat as a click if it didn't. + function leftButtonStartDrag(cm, event, pos, behavior) { + var display = cm.display, moved = false; + var dragEnd = operation(cm, function (e) { + if (webkit) { display.scroller.draggable = false; } + cm.state.draggingText = false; + off(display.wrapper.ownerDocument, "mouseup", dragEnd); + off(display.wrapper.ownerDocument, "mousemove", mouseMove); + off(display.scroller, "dragstart", dragStart); + off(display.scroller, "drop", dragEnd); + if (!moved) { + e_preventDefault(e); + if (!behavior.addNew) + { extendSelection(cm.doc, pos, null, null, behavior.extend); } + // Work around unexplainable focus problem in IE9 (#2127) and Chrome (#3081) + if ((webkit && !safari) || ie && ie_version == 9) + { setTimeout(function () {display.wrapper.ownerDocument.body.focus({preventScroll: true}); display.input.focus();}, 20); } + else + { display.input.focus(); } + } + }); + var mouseMove = function(e2) { + moved = moved || Math.abs(event.clientX - e2.clientX) + Math.abs(event.clientY - e2.clientY) >= 10; + }; + var dragStart = function () { return moved = true; }; + // Let the drag handler handle this. + if (webkit) { display.scroller.draggable = true; } + cm.state.draggingText = dragEnd; + dragEnd.copy = !behavior.moveOnDrag; + // IE's approach to draggable + if (display.scroller.dragDrop) { display.scroller.dragDrop(); } + on(display.wrapper.ownerDocument, "mouseup", dragEnd); + on(display.wrapper.ownerDocument, "mousemove", mouseMove); + on(display.scroller, "dragstart", dragStart); + on(display.scroller, "drop", dragEnd); + + delayBlurEvent(cm); + setTimeout(function () { return display.input.focus(); }, 20); + } + + function rangeForUnit(cm, pos, unit) { + if (unit == "char") { return new Range(pos, pos) } + if (unit == "word") { return cm.findWordAt(pos) } + if (unit == "line") { return new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))) } + var result = unit(cm, pos); + return new Range(result.from, result.to) + } + + // Normal selection, as opposed to text dragging. + function leftButtonSelect(cm, event, start, behavior) { + var display = cm.display, doc = cm.doc; + e_preventDefault(event); + + var ourRange, ourIndex, startSel = doc.sel, ranges = startSel.ranges; + if (behavior.addNew && !behavior.extend) { + ourIndex = doc.sel.contains(start); + if (ourIndex > -1) + { ourRange = ranges[ourIndex]; } + else + { ourRange = new Range(start, start); } + } else { + ourRange = doc.sel.primary(); + ourIndex = doc.sel.primIndex; + } + + if (behavior.unit == "rectangle") { + if (!behavior.addNew) { ourRange = new Range(start, start); } + start = posFromMouse(cm, event, true, true); + ourIndex = -1; + } else { + var range = rangeForUnit(cm, start, behavior.unit); + if (behavior.extend) + { ourRange = extendRange(ourRange, range.anchor, range.head, behavior.extend); } + else + { ourRange = range; } + } + + if (!behavior.addNew) { + ourIndex = 0; + setSelection(doc, new Selection([ourRange], 0), sel_mouse); + startSel = doc.sel; + } else if (ourIndex == -1) { + ourIndex = ranges.length; + setSelection(doc, normalizeSelection(cm, ranges.concat([ourRange]), ourIndex), + {scroll: false, origin: "*mouse"}); + } else if (ranges.length > 1 && ranges[ourIndex].empty() && behavior.unit == "char" && !behavior.extend) { + setSelection(doc, normalizeSelection(cm, ranges.slice(0, ourIndex).concat(ranges.slice(ourIndex + 1)), 0), + {scroll: false, origin: "*mouse"}); + startSel = doc.sel; + } else { + replaceOneSelection(doc, ourIndex, ourRange, sel_mouse); + } + + var lastPos = start; + function extendTo(pos) { + if (cmp(lastPos, pos) == 0) { return } + lastPos = pos; + + if (behavior.unit == "rectangle") { + var ranges = [], tabSize = cm.options.tabSize; + var startCol = countColumn(getLine(doc, start.line).text, start.ch, tabSize); + var posCol = countColumn(getLine(doc, pos.line).text, pos.ch, tabSize); + var left = Math.min(startCol, posCol), right = Math.max(startCol, posCol); + for (var line = Math.min(start.line, pos.line), end = Math.min(cm.lastLine(), Math.max(start.line, pos.line)); + line <= end; line++) { + var text = getLine(doc, line).text, leftPos = findColumn(text, left, tabSize); + if (left == right) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, leftPos))); } + else if (text.length > leftPos) + { ranges.push(new Range(Pos(line, leftPos), Pos(line, findColumn(text, right, tabSize)))); } + } + if (!ranges.length) { ranges.push(new Range(start, start)); } + setSelection(doc, normalizeSelection(cm, startSel.ranges.slice(0, ourIndex).concat(ranges), ourIndex), + {origin: "*mouse", scroll: false}); + cm.scrollIntoView(pos); + } else { + var oldRange = ourRange; + var range = rangeForUnit(cm, pos, behavior.unit); + var anchor = oldRange.anchor, head; + if (cmp(range.anchor, anchor) > 0) { + head = range.head; + anchor = minPos(oldRange.from(), range.anchor); + } else { + head = range.anchor; + anchor = maxPos(oldRange.to(), range.head); + } + var ranges$1 = startSel.ranges.slice(0); + ranges$1[ourIndex] = bidiSimplify(cm, new Range(clipPos(doc, anchor), head)); + setSelection(doc, normalizeSelection(cm, ranges$1, ourIndex), sel_mouse); + } + } + + var editorSize = display.wrapper.getBoundingClientRect(); + // Used to ensure timeout re-tries don't fire when another extend + // happened in the meantime (clearTimeout isn't reliable -- at + // least on Chrome, the timeouts still happen even when cleared, + // if the clear happens after their scheduled firing time). + var counter = 0; + + function extend(e) { + var curCount = ++counter; + var cur = posFromMouse(cm, e, true, behavior.unit == "rectangle"); + if (!cur) { return } + if (cmp(cur, lastPos) != 0) { + cm.curOp.focus = activeElt(); + extendTo(cur); + var visible = visibleLines(display, doc); + if (cur.line >= visible.to || cur.line < visible.from) + { setTimeout(operation(cm, function () {if (counter == curCount) { extend(e); }}), 150); } + } else { + var outside = e.clientY < editorSize.top ? -20 : e.clientY > editorSize.bottom ? 20 : 0; + if (outside) { setTimeout(operation(cm, function () { + if (counter != curCount) { return } + display.scroller.scrollTop += outside; + extend(e); + }), 50); } + } + } + + function done(e) { + cm.state.selectingText = false; + counter = Infinity; + // If e is null or undefined we interpret this as someone trying + // to explicitly cancel the selection rather than the user + // letting go of the mouse button. + if (e) { + e_preventDefault(e); + display.input.focus(); + } + off(display.wrapper.ownerDocument, "mousemove", move); + off(display.wrapper.ownerDocument, "mouseup", up); + doc.history.lastSelOrigin = null; + } + + var move = operation(cm, function (e) { + if (e.buttons === 0 || !e_button(e)) { done(e); } + else { extend(e); } + }); + var up = operation(cm, done); + cm.state.selectingText = up; + on(display.wrapper.ownerDocument, "mousemove", move); + on(display.wrapper.ownerDocument, "mouseup", up); + } + + // Used when mouse-selecting to adjust the anchor to the proper side + // of a bidi jump depending on the visual position of the head. + function bidiSimplify(cm, range) { + var anchor = range.anchor; + var head = range.head; + var anchorLine = getLine(cm.doc, anchor.line); + if (cmp(anchor, head) == 0 && anchor.sticky == head.sticky) { return range } + var order = getOrder(anchorLine); + if (!order) { return range } + var index = getBidiPartAt(order, anchor.ch, anchor.sticky), part = order[index]; + if (part.from != anchor.ch && part.to != anchor.ch) { return range } + var boundary = index + ((part.from == anchor.ch) == (part.level != 1) ? 0 : 1); + if (boundary == 0 || boundary == order.length) { return range } + + // Compute the relative visual position of the head compared to the + // anchor (<0 is to the left, >0 to the right) + var leftSide; + if (head.line != anchor.line) { + leftSide = (head.line - anchor.line) * (cm.doc.direction == "ltr" ? 1 : -1) > 0; + } else { + var headIndex = getBidiPartAt(order, head.ch, head.sticky); + var dir = headIndex - index || (head.ch - anchor.ch) * (part.level == 1 ? -1 : 1); + if (headIndex == boundary - 1 || headIndex == boundary) + { leftSide = dir < 0; } + else + { leftSide = dir > 0; } + } + + var usePart = order[boundary + (leftSide ? -1 : 0)]; + var from = leftSide == (usePart.level == 1); + var ch = from ? usePart.from : usePart.to, sticky = from ? "after" : "before"; + return anchor.ch == ch && anchor.sticky == sticky ? range : new Range(new Pos(anchor.line, ch, sticky), head) + } + + + // Determines whether an event happened in the gutter, and fires the + // handlers for the corresponding event. + function gutterEvent(cm, e, type, prevent) { + var mX, mY; + if (e.touches) { + mX = e.touches[0].clientX; + mY = e.touches[0].clientY; + } else { + try { mX = e.clientX; mY = e.clientY; } + catch(e$1) { return false } + } + if (mX >= Math.floor(cm.display.gutters.getBoundingClientRect().right)) { return false } + if (prevent) { e_preventDefault(e); } + + var display = cm.display; + var lineBox = display.lineDiv.getBoundingClientRect(); + + if (mY > lineBox.bottom || !hasHandler(cm, type)) { return e_defaultPrevented(e) } + mY -= lineBox.top - display.viewOffset; + + for (var i = 0; i < cm.display.gutterSpecs.length; ++i) { + var g = display.gutters.childNodes[i]; + if (g && g.getBoundingClientRect().right >= mX) { + var line = lineAtHeight(cm.doc, mY); + var gutter = cm.display.gutterSpecs[i]; + signal(cm, type, cm, line, gutter.className, e); + return e_defaultPrevented(e) + } + } + } + + function clickInGutter(cm, e) { + return gutterEvent(cm, e, "gutterClick", true) + } + + // CONTEXT MENU HANDLING + + // To make the context menu work, we need to briefly unhide the + // textarea (making it as unobtrusive as possible) to let the + // right-click take effect on it. + function onContextMenu(cm, e) { + if (eventInWidget(cm.display, e) || contextMenuInGutter(cm, e)) { return } + if (signalDOMEvent(cm, e, "contextmenu")) { return } + if (!captureRightClick) { cm.display.input.onContextMenu(e); } + } + + function contextMenuInGutter(cm, e) { + if (!hasHandler(cm, "gutterContextMenu")) { return false } + return gutterEvent(cm, e, "gutterContextMenu", false) + } + + function themeChanged(cm) { + cm.display.wrapper.className = cm.display.wrapper.className.replace(/\s*cm-s-\S+/g, "") + + cm.options.theme.replace(/(^|\s)\s*/g, " cm-s-"); + clearCaches(cm); + } + + var Init = {toString: function(){return "CodeMirror.Init"}}; + + var defaults = {}; + var optionHandlers = {}; + + function defineOptions(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + function option(name, deflt, handle, notOnInit) { + CodeMirror.defaults[name] = deflt; + if (handle) { optionHandlers[name] = + notOnInit ? function (cm, val, old) {if (old != Init) { handle(cm, val, old); }} : handle; } + } + + CodeMirror.defineOption = option; + + // Passed to option handlers when there is no old value. + CodeMirror.Init = Init; + + // These two are, on init, called from the constructor because they + // have to be initialized before the editor can start at all. + option("value", "", function (cm, val) { return cm.setValue(val); }, true); + option("mode", null, function (cm, val) { + cm.doc.modeOption = val; + loadMode(cm); + }, true); + + option("indentUnit", 2, loadMode, true); + option("indentWithTabs", false); + option("smartIndent", true); + option("tabSize", 4, function (cm) { + resetModeState(cm); + clearCaches(cm); + regChange(cm); + }, true); + + option("lineSeparator", null, function (cm, val) { + cm.doc.lineSep = val; + if (!val) { return } + var newBreaks = [], lineNo = cm.doc.first; + cm.doc.iter(function (line) { + for (var pos = 0;;) { + var found = line.text.indexOf(val, pos); + if (found == -1) { break } + pos = found + val.length; + newBreaks.push(Pos(lineNo, found)); + } + lineNo++; + }); + for (var i = newBreaks.length - 1; i >= 0; i--) + { replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length)); } + }); + option("specialChars", /[\u0000-\u001f\u007f-\u009f\u00ad\u061c\u200b-\u200c\u200e\u200f\u2028\u2029\ufeff\ufff9-\ufffc]/g, function (cm, val, old) { + cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g"); + if (old != Init) { cm.refresh(); } + }); + option("specialCharPlaceholder", defaultSpecialCharPlaceholder, function (cm) { return cm.refresh(); }, true); + option("electricChars", true); + option("inputStyle", mobile ? "contenteditable" : "textarea", function () { + throw new Error("inputStyle can not (yet) be changed in a running editor") // FIXME + }, true); + option("spellcheck", false, function (cm, val) { return cm.getInputField().spellcheck = val; }, true); + option("autocorrect", false, function (cm, val) { return cm.getInputField().autocorrect = val; }, true); + option("autocapitalize", false, function (cm, val) { return cm.getInputField().autocapitalize = val; }, true); + option("rtlMoveVisually", !windows); + option("wholeLineUpdateBefore", true); + + option("theme", "default", function (cm) { + themeChanged(cm); + updateGutters(cm); + }, true); + option("keyMap", "default", function (cm, val, old) { + var next = getKeyMap(val); + var prev = old != Init && getKeyMap(old); + if (prev && prev.detach) { prev.detach(cm, next); } + if (next.attach) { next.attach(cm, prev || null); } + }); + option("extraKeys", null); + option("configureMouse", null); + + option("lineWrapping", false, wrappingChanged, true); + option("gutters", [], function (cm, val) { + cm.display.gutterSpecs = getGutters(val, cm.options.lineNumbers); + updateGutters(cm); + }, true); + option("fixedGutter", true, function (cm, val) { + cm.display.gutters.style.left = val ? compensateForHScroll(cm.display) + "px" : "0"; + cm.refresh(); + }, true); + option("coverGutterNextToScrollbar", false, function (cm) { return updateScrollbars(cm); }, true); + option("scrollbarStyle", "native", function (cm) { + initScrollbars(cm); + updateScrollbars(cm); + cm.display.scrollbars.setScrollTop(cm.doc.scrollTop); + cm.display.scrollbars.setScrollLeft(cm.doc.scrollLeft); + }, true); + option("lineNumbers", false, function (cm, val) { + cm.display.gutterSpecs = getGutters(cm.options.gutters, val); + updateGutters(cm); + }, true); + option("firstLineNumber", 1, updateGutters, true); + option("lineNumberFormatter", function (integer) { return integer; }, updateGutters, true); + option("showCursorWhenSelecting", false, updateSelection, true); + + option("resetSelectionOnContextMenu", true); + option("lineWiseCopyCut", true); + option("pasteLinesPerSelection", true); + option("selectionsMayTouch", false); + + option("readOnly", false, function (cm, val) { + if (val == "nocursor") { + onBlur(cm); + cm.display.input.blur(); + } + cm.display.input.readOnlyChanged(val); + }); + + option("screenReaderLabel", null, function (cm, val) { + val = (val === '') ? null : val; + cm.display.input.screenReaderLabelChanged(val); + }); + + option("disableInput", false, function (cm, val) {if (!val) { cm.display.input.reset(); }}, true); + option("dragDrop", true, dragDropChanged); + option("allowDropFileTypes", null); + + option("cursorBlinkRate", 530); + option("cursorScrollMargin", 0); + option("cursorHeight", 1, updateSelection, true); + option("singleCursorHeightPerLine", true, updateSelection, true); + option("workTime", 100); + option("workDelay", 100); + option("flattenSpans", true, resetModeState, true); + option("addModeClass", false, resetModeState, true); + option("pollInterval", 100); + option("undoDepth", 200, function (cm, val) { return cm.doc.history.undoDepth = val; }); + option("historyEventDelay", 1250); + option("viewportMargin", 10, function (cm) { return cm.refresh(); }, true); + option("maxHighlightLength", 10000, resetModeState, true); + option("moveInputWithCursor", true, function (cm, val) { + if (!val) { cm.display.input.resetPosition(); } + }); + + option("tabindex", null, function (cm, val) { return cm.display.input.getField().tabIndex = val || ""; }); + option("autofocus", null); + option("direction", "ltr", function (cm, val) { return cm.doc.setDirection(val); }, true); + option("phrases", null); + } + + function dragDropChanged(cm, value, old) { + var wasOn = old && old != Init; + if (!value != !wasOn) { + var funcs = cm.display.dragFunctions; + var toggle = value ? on : off; + toggle(cm.display.scroller, "dragstart", funcs.start); + toggle(cm.display.scroller, "dragenter", funcs.enter); + toggle(cm.display.scroller, "dragover", funcs.over); + toggle(cm.display.scroller, "dragleave", funcs.leave); + toggle(cm.display.scroller, "drop", funcs.drop); + } + } + + function wrappingChanged(cm) { + if (cm.options.lineWrapping) { + addClass(cm.display.wrapper, "CodeMirror-wrap"); + cm.display.sizer.style.minWidth = ""; + cm.display.sizerWidth = null; + } else { + rmClass(cm.display.wrapper, "CodeMirror-wrap"); + findMaxLine(cm); + } + estimateLineHeights(cm); + regChange(cm); + clearCaches(cm); + setTimeout(function () { return updateScrollbars(cm); }, 100); + } + + // A CodeMirror instance represents an editor. This is the object + // that user code is usually dealing with. + + function CodeMirror(place, options) { + var this$1 = this; + + if (!(this instanceof CodeMirror)) { return new CodeMirror(place, options) } + + this.options = options = options ? copyObj(options) : {}; + // Determine effective options based on given values and defaults. + copyObj(defaults, options, false); + + var doc = options.value; + if (typeof doc == "string") { doc = new Doc(doc, options.mode, null, options.lineSeparator, options.direction); } + else if (options.mode) { doc.modeOption = options.mode; } + this.doc = doc; + + var input = new CodeMirror.inputStyles[options.inputStyle](this); + var display = this.display = new Display(place, doc, input, options); + display.wrapper.CodeMirror = this; + themeChanged(this); + if (options.lineWrapping) + { this.display.wrapper.className += " CodeMirror-wrap"; } + initScrollbars(this); + + this.state = { + keyMaps: [], // stores maps added by addKeyMap + overlays: [], // highlighting overlays, as added by addOverlay + modeGen: 0, // bumped when mode/overlay changes, used to invalidate highlighting info + overwrite: false, + delayingBlurEvent: false, + focused: false, + suppressEdits: false, // used to disable editing during key handlers when in readOnly mode + pasteIncoming: -1, cutIncoming: -1, // help recognize paste/cut edits in input.poll + selectingText: false, + draggingText: false, + highlight: new Delayed(), // stores highlight worker timeout + keySeq: null, // Unfinished key sequence + specialChars: null + }; + + if (options.autofocus && !mobile) { display.input.focus(); } + + // Override magic textarea content restore that IE sometimes does + // on our hidden textarea on reload + if (ie && ie_version < 11) { setTimeout(function () { return this$1.display.input.reset(true); }, 20); } + + registerEventHandlers(this); + ensureGlobalHandlers(); + + startOperation(this); + this.curOp.forceUpdate = true; + attachDoc(this, doc); + + if ((options.autofocus && !mobile) || this.hasFocus()) + { setTimeout(function () { + if (this$1.hasFocus() && !this$1.state.focused) { onFocus(this$1); } + }, 20); } + else + { onBlur(this); } + + for (var opt in optionHandlers) { if (optionHandlers.hasOwnProperty(opt)) + { optionHandlers[opt](this, options[opt], Init); } } + maybeUpdateLineNumberWidth(this); + if (options.finishInit) { options.finishInit(this); } + for (var i = 0; i < initHooks.length; ++i) { initHooks[i](this); } + endOperation(this); + // Suppress optimizelegibility in Webkit, since it breaks text + // measuring on line wrapping boundaries. + if (webkit && options.lineWrapping && + getComputedStyle(display.lineDiv).textRendering == "optimizelegibility") + { display.lineDiv.style.textRendering = "auto"; } + } + + // The default configuration options. + CodeMirror.defaults = defaults; + // Functions to run when options are changed. + CodeMirror.optionHandlers = optionHandlers; + + // Attach the necessary event handlers when initializing the editor + function registerEventHandlers(cm) { + var d = cm.display; + on(d.scroller, "mousedown", operation(cm, onMouseDown)); + // Older IE's will not fire a second mousedown for a double click + if (ie && ie_version < 11) + { on(d.scroller, "dblclick", operation(cm, function (e) { + if (signalDOMEvent(cm, e)) { return } + var pos = posFromMouse(cm, e); + if (!pos || clickInGutter(cm, e) || eventInWidget(cm.display, e)) { return } + e_preventDefault(e); + var word = cm.findWordAt(pos); + extendSelection(cm.doc, word.anchor, word.head); + })); } + else + { on(d.scroller, "dblclick", function (e) { return signalDOMEvent(cm, e) || e_preventDefault(e); }); } + // Some browsers fire contextmenu *after* opening the menu, at + // which point we can't mess with it anymore. Context menu is + // handled in onMouseDown for these browsers. + on(d.scroller, "contextmenu", function (e) { return onContextMenu(cm, e); }); + on(d.input.getField(), "contextmenu", function (e) { + if (!d.scroller.contains(e.target)) { onContextMenu(cm, e); } + }); + + // Used to suppress mouse event handling when a touch happens + var touchFinished, prevTouch = {end: 0}; + function finishTouch() { + if (d.activeTouch) { + touchFinished = setTimeout(function () { return d.activeTouch = null; }, 1000); + prevTouch = d.activeTouch; + prevTouch.end = +new Date; + } + } + function isMouseLikeTouchEvent(e) { + if (e.touches.length != 1) { return false } + var touch = e.touches[0]; + return touch.radiusX <= 1 && touch.radiusY <= 1 + } + function farAway(touch, other) { + if (other.left == null) { return true } + var dx = other.left - touch.left, dy = other.top - touch.top; + return dx * dx + dy * dy > 20 * 20 + } + on(d.scroller, "touchstart", function (e) { + if (!signalDOMEvent(cm, e) && !isMouseLikeTouchEvent(e) && !clickInGutter(cm, e)) { + d.input.ensurePolled(); + clearTimeout(touchFinished); + var now = +new Date; + d.activeTouch = {start: now, moved: false, + prev: now - prevTouch.end <= 300 ? prevTouch : null}; + if (e.touches.length == 1) { + d.activeTouch.left = e.touches[0].pageX; + d.activeTouch.top = e.touches[0].pageY; + } + } + }); + on(d.scroller, "touchmove", function () { + if (d.activeTouch) { d.activeTouch.moved = true; } + }); + on(d.scroller, "touchend", function (e) { + var touch = d.activeTouch; + if (touch && !eventInWidget(d, e) && touch.left != null && + !touch.moved && new Date - touch.start < 300) { + var pos = cm.coordsChar(d.activeTouch, "page"), range; + if (!touch.prev || farAway(touch, touch.prev)) // Single tap + { range = new Range(pos, pos); } + else if (!touch.prev.prev || farAway(touch, touch.prev.prev)) // Double tap + { range = cm.findWordAt(pos); } + else // Triple tap + { range = new Range(Pos(pos.line, 0), clipPos(cm.doc, Pos(pos.line + 1, 0))); } + cm.setSelection(range.anchor, range.head); + cm.focus(); + e_preventDefault(e); + } + finishTouch(); + }); + on(d.scroller, "touchcancel", finishTouch); + + // Sync scrolling between fake scrollbars and real scrollable + // area, ensure viewport is updated when scrolling. + on(d.scroller, "scroll", function () { + if (d.scroller.clientHeight) { + updateScrollTop(cm, d.scroller.scrollTop); + setScrollLeft(cm, d.scroller.scrollLeft, true); + signal(cm, "scroll", cm); + } + }); + + // Listen to wheel events in order to try and update the viewport on time. + on(d.scroller, "mousewheel", function (e) { return onScrollWheel(cm, e); }); + on(d.scroller, "DOMMouseScroll", function (e) { return onScrollWheel(cm, e); }); + + // Prevent wrapper from ever scrolling + on(d.wrapper, "scroll", function () { return d.wrapper.scrollTop = d.wrapper.scrollLeft = 0; }); + + d.dragFunctions = { + enter: function (e) {if (!signalDOMEvent(cm, e)) { e_stop(e); }}, + over: function (e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }}, + start: function (e) { return onDragStart(cm, e); }, + drop: operation(cm, onDrop), + leave: function (e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }} + }; + + var inp = d.input.getField(); + on(inp, "keyup", function (e) { return onKeyUp.call(cm, e); }); + on(inp, "keydown", operation(cm, onKeyDown)); + on(inp, "keypress", operation(cm, onKeyPress)); + on(inp, "focus", function (e) { return onFocus(cm, e); }); + on(inp, "blur", function (e) { return onBlur(cm, e); }); + } + + var initHooks = []; + CodeMirror.defineInitHook = function (f) { return initHooks.push(f); }; + + // Indent the given line. The how parameter can be "smart", + // "add"/null, "subtract", or "prev". When aggressive is false + // (typically set to true for forced single-line indents), empty + // lines are not indented, and places where the mode returns Pass + // are left alone. + function indentLine(cm, n, how, aggressive) { + var doc = cm.doc, state; + if (how == null) { how = "add"; } + if (how == "smart") { + // Fall back to "prev" when the mode doesn't have an indentation + // method. + if (!doc.mode.indent) { how = "prev"; } + else { state = getContextBefore(cm, n).state; } + } + + var tabSize = cm.options.tabSize; + var line = getLine(doc, n), curSpace = countColumn(line.text, null, tabSize); + if (line.stateAfter) { line.stateAfter = null; } + var curSpaceString = line.text.match(/^\s*/)[0], indentation; + if (!aggressive && !/\S/.test(line.text)) { + indentation = 0; + how = "not"; + } else if (how == "smart") { + indentation = doc.mode.indent(state, line.text.slice(curSpaceString.length), line.text); + if (indentation == Pass || indentation > 150) { + if (!aggressive) { return } + how = "prev"; + } + } + if (how == "prev") { + if (n > doc.first) { indentation = countColumn(getLine(doc, n-1).text, null, tabSize); } + else { indentation = 0; } + } else if (how == "add") { + indentation = curSpace + cm.options.indentUnit; + } else if (how == "subtract") { + indentation = curSpace - cm.options.indentUnit; + } else if (typeof how == "number") { + indentation = curSpace + how; + } + indentation = Math.max(0, indentation); + + var indentString = "", pos = 0; + if (cm.options.indentWithTabs) + { for (var i = Math.floor(indentation / tabSize); i; --i) {pos += tabSize; indentString += "\t";} } + if (pos < indentation) { indentString += spaceStr(indentation - pos); } + + if (indentString != curSpaceString) { + replaceRange(doc, indentString, Pos(n, 0), Pos(n, curSpaceString.length), "+input"); + line.stateAfter = null; + return true + } else { + // Ensure that, if the cursor was in the whitespace at the start + // of the line, it is moved to the end of that space. + for (var i$1 = 0; i$1 < doc.sel.ranges.length; i$1++) { + var range = doc.sel.ranges[i$1]; + if (range.head.line == n && range.head.ch < curSpaceString.length) { + var pos$1 = Pos(n, curSpaceString.length); + replaceOneSelection(doc, i$1, new Range(pos$1, pos$1)); + break + } + } + } + } + + // This will be set to a {lineWise: bool, text: [string]} object, so + // that, when pasting, we know what kind of selections the copied + // text was made out of. + var lastCopied = null; + + function setLastCopied(newLastCopied) { + lastCopied = newLastCopied; + } + + function applyTextInput(cm, inserted, deleted, sel, origin) { + var doc = cm.doc; + cm.display.shift = false; + if (!sel) { sel = doc.sel; } + + var recent = +new Date - 200; + var paste = origin == "paste" || cm.state.pasteIncoming > recent; + var textLines = splitLinesAuto(inserted), multiPaste = null; + // When pasting N lines into N selections, insert one line per selection + if (paste && sel.ranges.length > 1) { + if (lastCopied && lastCopied.text.join("\n") == inserted) { + if (sel.ranges.length % lastCopied.text.length == 0) { + multiPaste = []; + for (var i = 0; i < lastCopied.text.length; i++) + { multiPaste.push(doc.splitLines(lastCopied.text[i])); } + } + } else if (textLines.length == sel.ranges.length && cm.options.pasteLinesPerSelection) { + multiPaste = map(textLines, function (l) { return [l]; }); + } + } + + var updateInput = cm.curOp.updateInput; + // Normal behavior is to insert the new text into every selection + for (var i$1 = sel.ranges.length - 1; i$1 >= 0; i$1--) { + var range = sel.ranges[i$1]; + var from = range.from(), to = range.to(); + if (range.empty()) { + if (deleted && deleted > 0) // Handle deletion + { from = Pos(from.line, from.ch - deleted); } + else if (cm.state.overwrite && !paste) // Handle overwrite + { to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length)); } + else if (paste && lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == textLines.join("\n")) + { from = to = Pos(from.line, 0); } + } + var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i$1 % multiPaste.length] : textLines, + origin: origin || (paste ? "paste" : cm.state.cutIncoming > recent ? "cut" : "+input")}; + makeChange(cm.doc, changeEvent); + signalLater(cm, "inputRead", cm, changeEvent); + } + if (inserted && !paste) + { triggerElectric(cm, inserted); } + + ensureCursorVisible(cm); + if (cm.curOp.updateInput < 2) { cm.curOp.updateInput = updateInput; } + cm.curOp.typing = true; + cm.state.pasteIncoming = cm.state.cutIncoming = -1; + } + + function handlePaste(e, cm) { + var pasted = e.clipboardData && e.clipboardData.getData("Text"); + if (pasted) { + e.preventDefault(); + if (!cm.isReadOnly() && !cm.options.disableInput) + { runInOp(cm, function () { return applyTextInput(cm, pasted, 0, null, "paste"); }); } + return true + } + } + + function triggerElectric(cm, inserted) { + // When an 'electric' character is inserted, immediately trigger a reindent + if (!cm.options.electricChars || !cm.options.smartIndent) { return } + var sel = cm.doc.sel; + + for (var i = sel.ranges.length - 1; i >= 0; i--) { + var range = sel.ranges[i]; + if (range.head.ch > 100 || (i && sel.ranges[i - 1].head.line == range.head.line)) { continue } + var mode = cm.getModeAt(range.head); + var indented = false; + if (mode.electricChars) { + for (var j = 0; j < mode.electricChars.length; j++) + { if (inserted.indexOf(mode.electricChars.charAt(j)) > -1) { + indented = indentLine(cm, range.head.line, "smart"); + break + } } + } else if (mode.electricInput) { + if (mode.electricInput.test(getLine(cm.doc, range.head.line).text.slice(0, range.head.ch))) + { indented = indentLine(cm, range.head.line, "smart"); } + } + if (indented) { signalLater(cm, "electricInput", cm, range.head.line); } + } + } + + function copyableRanges(cm) { + var text = [], ranges = []; + for (var i = 0; i < cm.doc.sel.ranges.length; i++) { + var line = cm.doc.sel.ranges[i].head.line; + var lineRange = {anchor: Pos(line, 0), head: Pos(line + 1, 0)}; + ranges.push(lineRange); + text.push(cm.getRange(lineRange.anchor, lineRange.head)); + } + return {text: text, ranges: ranges} + } + + function disableBrowserMagic(field, spellcheck, autocorrect, autocapitalize) { + field.setAttribute("autocorrect", autocorrect ? "" : "off"); + field.setAttribute("autocapitalize", autocapitalize ? "" : "off"); + field.setAttribute("spellcheck", !!spellcheck); + } + + function hiddenTextarea() { + var te = elt("textarea", null, null, "position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none"); + var div = elt("div", [te], null, "overflow: hidden; position: relative; width: 3px; height: 0px;"); + // The textarea is kept positioned near the cursor to prevent the + // fact that it'll be scrolled into view on input from scrolling + // our fake cursor out of view. On webkit, when wrap=off, paste is + // very slow. So make the area wide instead. + if (webkit) { te.style.width = "1000px"; } + else { te.setAttribute("wrap", "off"); } + // If border: 0; -- iOS fails to open keyboard (issue #1287) + if (ios) { te.style.border = "1px solid black"; } + disableBrowserMagic(te); + return div + } + + // The publicly visible API. Note that methodOp(f) means + // 'wrap f in an operation, performed on its `this` parameter'. + + // This is not the complete set of editor methods. Most of the + // methods defined on the Doc type are also injected into + // CodeMirror.prototype, for backwards compatibility and + // convenience. + + function addEditorMethods(CodeMirror) { + var optionHandlers = CodeMirror.optionHandlers; + + var helpers = CodeMirror.helpers = {}; + + CodeMirror.prototype = { + constructor: CodeMirror, + focus: function(){window.focus(); this.display.input.focus();}, + + setOption: function(option, value) { + var options = this.options, old = options[option]; + if (options[option] == value && option != "mode") { return } + options[option] = value; + if (optionHandlers.hasOwnProperty(option)) + { operation(this, optionHandlers[option])(this, value, old); } + signal(this, "optionChange", this, option); + }, + + getOption: function(option) {return this.options[option]}, + getDoc: function() {return this.doc}, + + addKeyMap: function(map, bottom) { + this.state.keyMaps[bottom ? "push" : "unshift"](getKeyMap(map)); + }, + removeKeyMap: function(map) { + var maps = this.state.keyMaps; + for (var i = 0; i < maps.length; ++i) + { if (maps[i] == map || maps[i].name == map) { + maps.splice(i, 1); + return true + } } + }, + + addOverlay: methodOp(function(spec, options) { + var mode = spec.token ? spec : CodeMirror.getMode(this.options, spec); + if (mode.startState) { throw new Error("Overlays may not be stateful.") } + insertSorted(this.state.overlays, + {mode: mode, modeSpec: spec, opaque: options && options.opaque, + priority: (options && options.priority) || 0}, + function (overlay) { return overlay.priority; }); + this.state.modeGen++; + regChange(this); + }), + removeOverlay: methodOp(function(spec) { + var overlays = this.state.overlays; + for (var i = 0; i < overlays.length; ++i) { + var cur = overlays[i].modeSpec; + if (cur == spec || typeof spec == "string" && cur.name == spec) { + overlays.splice(i, 1); + this.state.modeGen++; + regChange(this); + return + } + } + }), + + indentLine: methodOp(function(n, dir, aggressive) { + if (typeof dir != "string" && typeof dir != "number") { + if (dir == null) { dir = this.options.smartIndent ? "smart" : "prev"; } + else { dir = dir ? "add" : "subtract"; } + } + if (isLine(this.doc, n)) { indentLine(this, n, dir, aggressive); } + }), + indentSelection: methodOp(function(how) { + var ranges = this.doc.sel.ranges, end = -1; + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (!range.empty()) { + var from = range.from(), to = range.to(); + var start = Math.max(end, from.line); + end = Math.min(this.lastLine(), to.line - (to.ch ? 0 : 1)) + 1; + for (var j = start; j < end; ++j) + { indentLine(this, j, how); } + var newRanges = this.doc.sel.ranges; + if (from.ch == 0 && ranges.length == newRanges.length && newRanges[i].from().ch > 0) + { replaceOneSelection(this.doc, i, new Range(from, newRanges[i].to()), sel_dontScroll); } + } else if (range.head.line > end) { + indentLine(this, range.head.line, how, true); + end = range.head.line; + if (i == this.doc.sel.primIndex) { ensureCursorVisible(this); } + } + } + }), + + // Fetch the parser token for a given character. Useful for hacks + // that want to inspect the mode state (say, for completion). + getTokenAt: function(pos, precise) { + return takeToken(this, pos, precise) + }, + + getLineTokens: function(line, precise) { + return takeToken(this, Pos(line), precise, true) + }, + + getTokenTypeAt: function(pos) { + pos = clipPos(this.doc, pos); + var styles = getLineStyles(this, getLine(this.doc, pos.line)); + var before = 0, after = (styles.length - 1) / 2, ch = pos.ch; + var type; + if (ch == 0) { type = styles[2]; } + else { for (;;) { + var mid = (before + after) >> 1; + if ((mid ? styles[mid * 2 - 1] : 0) >= ch) { after = mid; } + else if (styles[mid * 2 + 1] < ch) { before = mid + 1; } + else { type = styles[mid * 2 + 2]; break } + } } + var cut = type ? type.indexOf("overlay ") : -1; + return cut < 0 ? type : cut == 0 ? null : type.slice(0, cut - 1) + }, + + getModeAt: function(pos) { + var mode = this.doc.mode; + if (!mode.innerMode) { return mode } + return CodeMirror.innerMode(mode, this.getTokenAt(pos).state).mode + }, + + getHelper: function(pos, type) { + return this.getHelpers(pos, type)[0] + }, + + getHelpers: function(pos, type) { + var found = []; + if (!helpers.hasOwnProperty(type)) { return found } + var help = helpers[type], mode = this.getModeAt(pos); + if (typeof mode[type] == "string") { + if (help[mode[type]]) { found.push(help[mode[type]]); } + } else if (mode[type]) { + for (var i = 0; i < mode[type].length; i++) { + var val = help[mode[type][i]]; + if (val) { found.push(val); } + } + } else if (mode.helperType && help[mode.helperType]) { + found.push(help[mode.helperType]); + } else if (help[mode.name]) { + found.push(help[mode.name]); + } + for (var i$1 = 0; i$1 < help._global.length; i$1++) { + var cur = help._global[i$1]; + if (cur.pred(mode, this) && indexOf(found, cur.val) == -1) + { found.push(cur.val); } + } + return found + }, + + getStateAfter: function(line, precise) { + var doc = this.doc; + line = clipLine(doc, line == null ? doc.first + doc.size - 1: line); + return getContextBefore(this, line + 1, precise).state + }, + + cursorCoords: function(start, mode) { + var pos, range = this.doc.sel.primary(); + if (start == null) { pos = range.head; } + else if (typeof start == "object") { pos = clipPos(this.doc, start); } + else { pos = start ? range.from() : range.to(); } + return cursorCoords(this, pos, mode || "page") + }, + + charCoords: function(pos, mode) { + return charCoords(this, clipPos(this.doc, pos), mode || "page") + }, + + coordsChar: function(coords, mode) { + coords = fromCoordSystem(this, coords, mode || "page"); + return coordsChar(this, coords.left, coords.top) + }, + + lineAtHeight: function(height, mode) { + height = fromCoordSystem(this, {top: height, left: 0}, mode || "page").top; + return lineAtHeight(this.doc, height + this.display.viewOffset) + }, + heightAtLine: function(line, mode, includeWidgets) { + var end = false, lineObj; + if (typeof line == "number") { + var last = this.doc.first + this.doc.size - 1; + if (line < this.doc.first) { line = this.doc.first; } + else if (line > last) { line = last; end = true; } + lineObj = getLine(this.doc, line); + } else { + lineObj = line; + } + return intoCoordSystem(this, lineObj, {top: 0, left: 0}, mode || "page", includeWidgets || end).top + + (end ? this.doc.height - heightAtLine(lineObj) : 0) + }, + + defaultTextHeight: function() { return textHeight(this.display) }, + defaultCharWidth: function() { return charWidth(this.display) }, + + getViewport: function() { return {from: this.display.viewFrom, to: this.display.viewTo}}, + + addWidget: function(pos, node, scroll, vert, horiz) { + var display = this.display; + pos = cursorCoords(this, clipPos(this.doc, pos)); + var top = pos.bottom, left = pos.left; + node.style.position = "absolute"; + node.setAttribute("cm-ignore-events", "true"); + this.display.input.setUneditable(node); + display.sizer.appendChild(node); + if (vert == "over") { + top = pos.top; + } else if (vert == "above" || vert == "near") { + var vspace = Math.max(display.wrapper.clientHeight, this.doc.height), + hspace = Math.max(display.sizer.clientWidth, display.lineSpace.clientWidth); + // Default to positioning above (if specified and possible); otherwise default to positioning below + if ((vert == 'above' || pos.bottom + node.offsetHeight > vspace) && pos.top > node.offsetHeight) + { top = pos.top - node.offsetHeight; } + else if (pos.bottom + node.offsetHeight <= vspace) + { top = pos.bottom; } + if (left + node.offsetWidth > hspace) + { left = hspace - node.offsetWidth; } + } + node.style.top = top + "px"; + node.style.left = node.style.right = ""; + if (horiz == "right") { + left = display.sizer.clientWidth - node.offsetWidth; + node.style.right = "0px"; + } else { + if (horiz == "left") { left = 0; } + else if (horiz == "middle") { left = (display.sizer.clientWidth - node.offsetWidth) / 2; } + node.style.left = left + "px"; + } + if (scroll) + { scrollIntoView(this, {left: left, top: top, right: left + node.offsetWidth, bottom: top + node.offsetHeight}); } + }, + + triggerOnKeyDown: methodOp(onKeyDown), + triggerOnKeyPress: methodOp(onKeyPress), + triggerOnKeyUp: onKeyUp, + triggerOnMouseDown: methodOp(onMouseDown), + + execCommand: function(cmd) { + if (commands.hasOwnProperty(cmd)) + { return commands[cmd].call(null, this) } + }, + + triggerElectric: methodOp(function(text) { triggerElectric(this, text); }), + + findPosH: function(from, amount, unit, visually) { + var dir = 1; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + cur = findPosH(this.doc, cur, dir, unit, visually); + if (cur.hitSide) { break } + } + return cur + }, + + moveH: methodOp(function(dir, unit) { + var this$1 = this; + + this.extendSelectionsBy(function (range) { + if (this$1.display.shift || this$1.doc.extend || range.empty()) + { return findPosH(this$1.doc, range.head, dir, unit, this$1.options.rtlMoveVisually) } + else + { return dir < 0 ? range.from() : range.to() } + }, sel_move); + }), + + deleteH: methodOp(function(dir, unit) { + var sel = this.doc.sel, doc = this.doc; + if (sel.somethingSelected()) + { doc.replaceSelection("", null, "+delete"); } + else + { deleteNearSelection(this, function (range) { + var other = findPosH(doc, range.head, dir, unit, false); + return dir < 0 ? {from: other, to: range.head} : {from: range.head, to: other} + }); } + }), + + findPosV: function(from, amount, unit, goalColumn) { + var dir = 1, x = goalColumn; + if (amount < 0) { dir = -1; amount = -amount; } + var cur = clipPos(this.doc, from); + for (var i = 0; i < amount; ++i) { + var coords = cursorCoords(this, cur, "div"); + if (x == null) { x = coords.left; } + else { coords.left = x; } + cur = findPosV(this, coords, dir, unit); + if (cur.hitSide) { break } + } + return cur + }, + + moveV: methodOp(function(dir, unit) { + var this$1 = this; + + var doc = this.doc, goals = []; + var collapse = !this.display.shift && !doc.extend && doc.sel.somethingSelected(); + doc.extendSelectionsBy(function (range) { + if (collapse) + { return dir < 0 ? range.from() : range.to() } + var headPos = cursorCoords(this$1, range.head, "div"); + if (range.goalColumn != null) { headPos.left = range.goalColumn; } + goals.push(headPos.left); + var pos = findPosV(this$1, headPos, dir, unit); + if (unit == "page" && range == doc.sel.primary()) + { addToScrollTop(this$1, charCoords(this$1, pos, "div").top - headPos.top); } + return pos + }, sel_move); + if (goals.length) { for (var i = 0; i < doc.sel.ranges.length; i++) + { doc.sel.ranges[i].goalColumn = goals[i]; } } + }), + + // Find the word at the given position (as returned by coordsChar). + findWordAt: function(pos) { + var doc = this.doc, line = getLine(doc, pos.line).text; + var start = pos.ch, end = pos.ch; + if (line) { + var helper = this.getHelper(pos, "wordChars"); + if ((pos.sticky == "before" || end == line.length) && start) { --start; } else { ++end; } + var startChar = line.charAt(start); + var check = isWordChar(startChar, helper) + ? function (ch) { return isWordChar(ch, helper); } + : /\s/.test(startChar) ? function (ch) { return /\s/.test(ch); } + : function (ch) { return (!/\s/.test(ch) && !isWordChar(ch)); }; + while (start > 0 && check(line.charAt(start - 1))) { --start; } + while (end < line.length && check(line.charAt(end))) { ++end; } + } + return new Range(Pos(pos.line, start), Pos(pos.line, end)) + }, + + toggleOverwrite: function(value) { + if (value != null && value == this.state.overwrite) { return } + if (this.state.overwrite = !this.state.overwrite) + { addClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + else + { rmClass(this.display.cursorDiv, "CodeMirror-overwrite"); } + + signal(this, "overwriteToggle", this, this.state.overwrite); + }, + hasFocus: function() { return this.display.input.getField() == activeElt() }, + isReadOnly: function() { return !!(this.options.readOnly || this.doc.cantEdit) }, + + scrollTo: methodOp(function (x, y) { scrollToCoords(this, x, y); }), + getScrollInfo: function() { + var scroller = this.display.scroller; + return {left: scroller.scrollLeft, top: scroller.scrollTop, + height: scroller.scrollHeight - scrollGap(this) - this.display.barHeight, + width: scroller.scrollWidth - scrollGap(this) - this.display.barWidth, + clientHeight: displayHeight(this), clientWidth: displayWidth(this)} + }, + + scrollIntoView: methodOp(function(range, margin) { + if (range == null) { + range = {from: this.doc.sel.primary().head, to: null}; + if (margin == null) { margin = this.options.cursorScrollMargin; } + } else if (typeof range == "number") { + range = {from: Pos(range, 0), to: null}; + } else if (range.from == null) { + range = {from: range, to: null}; + } + if (!range.to) { range.to = range.from; } + range.margin = margin || 0; + + if (range.from.line != null) { + scrollToRange(this, range); + } else { + scrollToCoordsRange(this, range.from, range.to, range.margin); + } + }), + + setSize: methodOp(function(width, height) { + var this$1 = this; + + var interpret = function (val) { return typeof val == "number" || /^\d+$/.test(String(val)) ? val + "px" : val; }; + if (width != null) { this.display.wrapper.style.width = interpret(width); } + if (height != null) { this.display.wrapper.style.height = interpret(height); } + if (this.options.lineWrapping) { clearLineMeasurementCache(this); } + var lineNo = this.display.viewFrom; + this.doc.iter(lineNo, this.display.viewTo, function (line) { + if (line.widgets) { for (var i = 0; i < line.widgets.length; i++) + { if (line.widgets[i].noHScroll) { regLineChange(this$1, lineNo, "widget"); break } } } + ++lineNo; + }); + this.curOp.forceUpdate = true; + signal(this, "refresh", this); + }), + + operation: function(f){return runInOp(this, f)}, + startOperation: function(){return startOperation(this)}, + endOperation: function(){return endOperation(this)}, + + refresh: methodOp(function() { + var oldHeight = this.display.cachedTextHeight; + regChange(this); + this.curOp.forceUpdate = true; + clearCaches(this); + scrollToCoords(this, this.doc.scrollLeft, this.doc.scrollTop); + updateGutterSpace(this.display); + if (oldHeight == null || Math.abs(oldHeight - textHeight(this.display)) > .5 || this.options.lineWrapping) + { estimateLineHeights(this); } + signal(this, "refresh", this); + }), + + swapDoc: methodOp(function(doc) { + var old = this.doc; + old.cm = null; + // Cancel the current text selection if any (#5821) + if (this.state.selectingText) { this.state.selectingText(); } + attachDoc(this, doc); + clearCaches(this); + this.display.input.reset(); + scrollToCoords(this, doc.scrollLeft, doc.scrollTop); + this.curOp.forceScroll = true; + signalLater(this, "swapDoc", this, old); + return old + }), + + phrase: function(phraseText) { + var phrases = this.options.phrases; + return phrases && Object.prototype.hasOwnProperty.call(phrases, phraseText) ? phrases[phraseText] : phraseText + }, + + getInputField: function(){return this.display.input.getField()}, + getWrapperElement: function(){return this.display.wrapper}, + getScrollerElement: function(){return this.display.scroller}, + getGutterElement: function(){return this.display.gutters} + }; + eventMixin(CodeMirror); + + CodeMirror.registerHelper = function(type, name, value) { + if (!helpers.hasOwnProperty(type)) { helpers[type] = CodeMirror[type] = {_global: []}; } + helpers[type][name] = value; + }; + CodeMirror.registerGlobalHelper = function(type, name, predicate, value) { + CodeMirror.registerHelper(type, name, value); + helpers[type]._global.push({pred: predicate, val: value}); + }; + } + + // Used for horizontal relative motion. Dir is -1 or 1 (left or + // right), unit can be "codepoint", "char", "column" (like char, but + // doesn't cross line boundaries), "word" (across next word), or + // "group" (to the start of next group of word or + // non-word-non-whitespace chars). The visually param controls + // whether, in right-to-left text, direction 1 means to move towards + // the next index in the string, or towards the character to the right + // of the current position. The resulting position will have a + // hitSide=true property if it reached the end of the document. + function findPosH(doc, pos, dir, unit, visually) { + var oldPos = pos; + var origDir = dir; + var lineObj = getLine(doc, pos.line); + var lineDir = visually && doc.direction == "rtl" ? -dir : dir; + function findNextLine() { + var l = pos.line + lineDir; + if (l < doc.first || l >= doc.first + doc.size) { return false } + pos = new Pos(l, pos.ch, pos.sticky); + return lineObj = getLine(doc, l) + } + function moveOnce(boundToLine) { + var next; + if (unit == "codepoint") { + var ch = lineObj.text.charCodeAt(pos.ch + (unit > 0 ? 0 : -1)); + if (isNaN(ch)) { next = null; } + else { next = new Pos(pos.line, Math.max(0, Math.min(lineObj.text.length, pos.ch + dir * (ch >= 0xD800 && ch < 0xDC00 ? 2 : 1))), + -dir); } + } else if (visually) { + next = moveVisually(doc.cm, lineObj, pos, dir); + } else { + next = moveLogically(lineObj, pos, dir); + } + if (next == null) { + if (!boundToLine && findNextLine()) + { pos = endOfLine(visually, doc.cm, lineObj, pos.line, lineDir); } + else + { return false } + } else { + pos = next; + } + return true + } + + if (unit == "char" || unit == "codepoint") { + moveOnce(); + } else if (unit == "column") { + moveOnce(true); + } else if (unit == "word" || unit == "group") { + var sawType = null, group = unit == "group"; + var helper = doc.cm && doc.cm.getHelper(pos, "wordChars"); + for (var first = true;; first = false) { + if (dir < 0 && !moveOnce(!first)) { break } + var cur = lineObj.text.charAt(pos.ch) || "\n"; + var type = isWordChar(cur, helper) ? "w" + : group && cur == "\n" ? "n" + : !group || /\s/.test(cur) ? null + : "p"; + if (group && !first && !type) { type = "s"; } + if (sawType && sawType != type) { + if (dir < 0) {dir = 1; moveOnce(); pos.sticky = "after";} + break + } + + if (type) { sawType = type; } + if (dir > 0 && !moveOnce(!first)) { break } + } + } + var result = skipAtomic(doc, pos, oldPos, origDir, true); + if (equalCursorPos(oldPos, result)) { result.hitSide = true; } + return result + } + + // For relative vertical movement. Dir may be -1 or 1. Unit can be + // "page" or "line". The resulting position will have a hitSide=true + // property if it reached the end of the document. + function findPosV(cm, pos, dir, unit) { + var doc = cm.doc, x = pos.left, y; + if (unit == "page") { + var pageSize = Math.min(cm.display.wrapper.clientHeight, window.innerHeight || document.documentElement.clientHeight); + var moveAmount = Math.max(pageSize - .5 * textHeight(cm.display), 3); + y = (dir > 0 ? pos.bottom : pos.top) + dir * moveAmount; + + } else if (unit == "line") { + y = dir > 0 ? pos.bottom + 3 : pos.top - 3; + } + var target; + for (;;) { + target = coordsChar(cm, x, y); + if (!target.outside) { break } + if (dir < 0 ? y <= 0 : y >= doc.height) { target.hitSide = true; break } + y += dir * 5; + } + return target + } + + // CONTENTEDITABLE INPUT STYLE + + var ContentEditableInput = function(cm) { + this.cm = cm; + this.lastAnchorNode = this.lastAnchorOffset = this.lastFocusNode = this.lastFocusOffset = null; + this.polling = new Delayed(); + this.composing = null; + this.gracePeriod = false; + this.readDOMTimeout = null; + }; + + ContentEditableInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = input.cm; + var div = input.div = display.lineDiv; + disableBrowserMagic(div, cm.options.spellcheck, cm.options.autocorrect, cm.options.autocapitalize); + + function belongsToInput(e) { + for (var t = e.target; t; t = t.parentNode) { + if (t == div) { return true } + if (/\bCodeMirror-(?:line)?widget\b/.test(t.className)) { break } + } + return false + } + + on(div, "paste", function (e) { + if (!belongsToInput(e) || signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + // IE doesn't fire input events, so we schedule a read for the pasted content in this way + if (ie_version <= 11) { setTimeout(operation(cm, function () { return this$1.updateFromDOM(); }), 20); } + }); + + on(div, "compositionstart", function (e) { + this$1.composing = {data: e.data, done: false}; + }); + on(div, "compositionupdate", function (e) { + if (!this$1.composing) { this$1.composing = {data: e.data, done: false}; } + }); + on(div, "compositionend", function (e) { + if (this$1.composing) { + if (e.data != this$1.composing.data) { this$1.readFromDOMSoon(); } + this$1.composing.done = true; + } + }); + + on(div, "touchstart", function () { return input.forceCompositionEnd(); }); + + on(div, "input", function () { + if (!this$1.composing) { this$1.readFromDOMSoon(); } + }); + + function onCopyCut(e) { + if (!belongsToInput(e) || signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + if (e.type == "cut") { cm.replaceSelection("", null, "cut"); } + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.operation(function () { + cm.setSelections(ranges.ranges, 0, sel_dontScroll); + cm.replaceSelection("", null, "cut"); + }); + } + } + if (e.clipboardData) { + e.clipboardData.clearData(); + var content = lastCopied.text.join("\n"); + // iOS exposes the clipboard API, but seems to discard content inserted into it + e.clipboardData.setData("Text", content); + if (e.clipboardData.getData("Text") == content) { + e.preventDefault(); + return + } + } + // Old-fashioned briefly-focus-a-textarea hack + var kludge = hiddenTextarea(), te = kludge.firstChild; + cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild); + te.value = lastCopied.text.join("\n"); + var hadFocus = document.activeElement; + selectInput(te); + setTimeout(function () { + cm.display.lineSpace.removeChild(kludge); + hadFocus.focus(); + if (hadFocus == div) { input.showPrimarySelection(); } + }, 50); + } + on(div, "copy", onCopyCut); + on(div, "cut", onCopyCut); + }; + + ContentEditableInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.div.setAttribute('aria-label', label); + } else { + this.div.removeAttribute('aria-label'); + } + }; + + ContentEditableInput.prototype.prepareSelection = function () { + var result = prepareSelection(this.cm, false); + result.focus = document.activeElement == this.div; + return result + }; + + ContentEditableInput.prototype.showSelection = function (info, takeFocus) { + if (!info || !this.cm.display.view.length) { return } + if (info.focus || takeFocus) { this.showPrimarySelection(); } + this.showMultipleSelections(info); + }; + + ContentEditableInput.prototype.getSelection = function () { + return this.cm.display.wrapper.ownerDocument.getSelection() + }; + + ContentEditableInput.prototype.showPrimarySelection = function () { + var sel = this.getSelection(), cm = this.cm, prim = cm.doc.sel.primary(); + var from = prim.from(), to = prim.to(); + + if (cm.display.viewTo == cm.display.viewFrom || from.line >= cm.display.viewTo || to.line < cm.display.viewFrom) { + sel.removeAllRanges(); + return + } + + var curAnchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var curFocus = domToPos(cm, sel.focusNode, sel.focusOffset); + if (curAnchor && !curAnchor.bad && curFocus && !curFocus.bad && + cmp(minPos(curAnchor, curFocus), from) == 0 && + cmp(maxPos(curAnchor, curFocus), to) == 0) + { return } + + var view = cm.display.view; + var start = (from.line >= cm.display.viewFrom && posToDOM(cm, from)) || + {node: view[0].measure.map[2], offset: 0}; + var end = to.line < cm.display.viewTo && posToDOM(cm, to); + if (!end) { + var measure = view[view.length - 1].measure; + var map = measure.maps ? measure.maps[measure.maps.length - 1] : measure.map; + end = {node: map[map.length - 1], offset: map[map.length - 2] - map[map.length - 3]}; + } + + if (!start || !end) { + sel.removeAllRanges(); + return + } + + var old = sel.rangeCount && sel.getRangeAt(0), rng; + try { rng = range(start.node, start.offset, end.offset, end.node); } + catch(e) {} // Our model of the DOM might be outdated, in which case the range we try to set can be impossible + if (rng) { + if (!gecko && cm.state.focused) { + sel.collapse(start.node, start.offset); + if (!rng.collapsed) { + sel.removeAllRanges(); + sel.addRange(rng); + } + } else { + sel.removeAllRanges(); + sel.addRange(rng); + } + if (old && sel.anchorNode == null) { sel.addRange(old); } + else if (gecko) { this.startGracePeriod(); } + } + this.rememberSelection(); + }; + + ContentEditableInput.prototype.startGracePeriod = function () { + var this$1 = this; + + clearTimeout(this.gracePeriod); + this.gracePeriod = setTimeout(function () { + this$1.gracePeriod = false; + if (this$1.selectionChanged()) + { this$1.cm.operation(function () { return this$1.cm.curOp.selectionChanged = true; }); } + }, 20); + }; + + ContentEditableInput.prototype.showMultipleSelections = function (info) { + removeChildrenAndAdd(this.cm.display.cursorDiv, info.cursors); + removeChildrenAndAdd(this.cm.display.selectionDiv, info.selection); + }; + + ContentEditableInput.prototype.rememberSelection = function () { + var sel = this.getSelection(); + this.lastAnchorNode = sel.anchorNode; this.lastAnchorOffset = sel.anchorOffset; + this.lastFocusNode = sel.focusNode; this.lastFocusOffset = sel.focusOffset; + }; + + ContentEditableInput.prototype.selectionInEditor = function () { + var sel = this.getSelection(); + if (!sel.rangeCount) { return false } + var node = sel.getRangeAt(0).commonAncestorContainer; + return contains(this.div, node) + }; + + ContentEditableInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor") { + if (!this.selectionInEditor() || document.activeElement != this.div) + { this.showSelection(this.prepareSelection(), true); } + this.div.focus(); + } + }; + ContentEditableInput.prototype.blur = function () { this.div.blur(); }; + ContentEditableInput.prototype.getField = function () { return this.div }; + + ContentEditableInput.prototype.supportsTouch = function () { return true }; + + ContentEditableInput.prototype.receivedFocus = function () { + var input = this; + if (this.selectionInEditor()) + { this.pollSelection(); } + else + { runInOp(this.cm, function () { return input.cm.curOp.selectionChanged = true; }); } + + function poll() { + if (input.cm.state.focused) { + input.pollSelection(); + input.polling.set(input.cm.options.pollInterval, poll); + } + } + this.polling.set(this.cm.options.pollInterval, poll); + }; + + ContentEditableInput.prototype.selectionChanged = function () { + var sel = this.getSelection(); + return sel.anchorNode != this.lastAnchorNode || sel.anchorOffset != this.lastAnchorOffset || + sel.focusNode != this.lastFocusNode || sel.focusOffset != this.lastFocusOffset + }; + + ContentEditableInput.prototype.pollSelection = function () { + if (this.readDOMTimeout != null || this.gracePeriod || !this.selectionChanged()) { return } + var sel = this.getSelection(), cm = this.cm; + // On Android Chrome (version 56, at least), backspacing into an + // uneditable block element will put the cursor in that element, + // and then, because it's not editable, hide the virtual keyboard. + // Because Android doesn't allow us to actually detect backspace + // presses in a sane way, this code checks for when that happens + // and simulates a backspace press in this case. + if (android && chrome && this.cm.display.gutterSpecs.length && isInGutter(sel.anchorNode)) { + this.cm.triggerOnKeyDown({type: "keydown", keyCode: 8, preventDefault: Math.abs}); + this.blur(); + this.focus(); + return + } + if (this.composing) { return } + this.rememberSelection(); + var anchor = domToPos(cm, sel.anchorNode, sel.anchorOffset); + var head = domToPos(cm, sel.focusNode, sel.focusOffset); + if (anchor && head) { runInOp(cm, function () { + setSelection(cm.doc, simpleSelection(anchor, head), sel_dontScroll); + if (anchor.bad || head.bad) { cm.curOp.selectionChanged = true; } + }); } + }; + + ContentEditableInput.prototype.pollContent = function () { + if (this.readDOMTimeout != null) { + clearTimeout(this.readDOMTimeout); + this.readDOMTimeout = null; + } + + var cm = this.cm, display = cm.display, sel = cm.doc.sel.primary(); + var from = sel.from(), to = sel.to(); + if (from.ch == 0 && from.line > cm.firstLine()) + { from = Pos(from.line - 1, getLine(cm.doc, from.line - 1).length); } + if (to.ch == getLine(cm.doc, to.line).text.length && to.line < cm.lastLine()) + { to = Pos(to.line + 1, 0); } + if (from.line < display.viewFrom || to.line > display.viewTo - 1) { return false } + + var fromIndex, fromLine, fromNode; + if (from.line == display.viewFrom || (fromIndex = findViewIndex(cm, from.line)) == 0) { + fromLine = lineNo(display.view[0].line); + fromNode = display.view[0].node; + } else { + fromLine = lineNo(display.view[fromIndex].line); + fromNode = display.view[fromIndex - 1].node.nextSibling; + } + var toIndex = findViewIndex(cm, to.line); + var toLine, toNode; + if (toIndex == display.view.length - 1) { + toLine = display.viewTo - 1; + toNode = display.lineDiv.lastChild; + } else { + toLine = lineNo(display.view[toIndex + 1].line) - 1; + toNode = display.view[toIndex + 1].node.previousSibling; + } + + if (!fromNode) { return false } + var newText = cm.doc.splitLines(domTextBetween(cm, fromNode, toNode, fromLine, toLine)); + var oldText = getBetween(cm.doc, Pos(fromLine, 0), Pos(toLine, getLine(cm.doc, toLine).text.length)); + while (newText.length > 1 && oldText.length > 1) { + if (lst(newText) == lst(oldText)) { newText.pop(); oldText.pop(); toLine--; } + else if (newText[0] == oldText[0]) { newText.shift(); oldText.shift(); fromLine++; } + else { break } + } + + var cutFront = 0, cutEnd = 0; + var newTop = newText[0], oldTop = oldText[0], maxCutFront = Math.min(newTop.length, oldTop.length); + while (cutFront < maxCutFront && newTop.charCodeAt(cutFront) == oldTop.charCodeAt(cutFront)) + { ++cutFront; } + var newBot = lst(newText), oldBot = lst(oldText); + var maxCutEnd = Math.min(newBot.length - (newText.length == 1 ? cutFront : 0), + oldBot.length - (oldText.length == 1 ? cutFront : 0)); + while (cutEnd < maxCutEnd && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) + { ++cutEnd; } + // Try to move start of change to start of selection if ambiguous + if (newText.length == 1 && oldText.length == 1 && fromLine == from.line) { + while (cutFront && cutFront > from.ch && + newBot.charCodeAt(newBot.length - cutEnd - 1) == oldBot.charCodeAt(oldBot.length - cutEnd - 1)) { + cutFront--; + cutEnd++; + } + } + + newText[newText.length - 1] = newBot.slice(0, newBot.length - cutEnd).replace(/^\u200b+/, ""); + newText[0] = newText[0].slice(cutFront).replace(/\u200b+$/, ""); + + var chFrom = Pos(fromLine, cutFront); + var chTo = Pos(toLine, oldText.length ? lst(oldText).length - cutEnd : 0); + if (newText.length > 1 || newText[0] || cmp(chFrom, chTo)) { + replaceRange(cm.doc, newText, chFrom, chTo, "+input"); + return true + } + }; + + ContentEditableInput.prototype.ensurePolled = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.reset = function () { + this.forceCompositionEnd(); + }; + ContentEditableInput.prototype.forceCompositionEnd = function () { + if (!this.composing) { return } + clearTimeout(this.readDOMTimeout); + this.composing = null; + this.updateFromDOM(); + this.div.blur(); + this.div.focus(); + }; + ContentEditableInput.prototype.readFromDOMSoon = function () { + var this$1 = this; + + if (this.readDOMTimeout != null) { return } + this.readDOMTimeout = setTimeout(function () { + this$1.readDOMTimeout = null; + if (this$1.composing) { + if (this$1.composing.done) { this$1.composing = null; } + else { return } + } + this$1.updateFromDOM(); + }, 80); + }; + + ContentEditableInput.prototype.updateFromDOM = function () { + var this$1 = this; + + if (this.cm.isReadOnly() || !this.pollContent()) + { runInOp(this.cm, function () { return regChange(this$1.cm); }); } + }; + + ContentEditableInput.prototype.setUneditable = function (node) { + node.contentEditable = "false"; + }; + + ContentEditableInput.prototype.onKeyPress = function (e) { + if (e.charCode == 0 || this.composing) { return } + e.preventDefault(); + if (!this.cm.isReadOnly()) + { operation(this.cm, applyTextInput)(this.cm, String.fromCharCode(e.charCode == null ? e.keyCode : e.charCode), 0); } + }; + + ContentEditableInput.prototype.readOnlyChanged = function (val) { + this.div.contentEditable = String(val != "nocursor"); + }; + + ContentEditableInput.prototype.onContextMenu = function () {}; + ContentEditableInput.prototype.resetPosition = function () {}; + + ContentEditableInput.prototype.needsContentAttribute = true; + + function posToDOM(cm, pos) { + var view = findViewForLine(cm, pos.line); + if (!view || view.hidden) { return null } + var line = getLine(cm.doc, pos.line); + var info = mapFromLineView(view, line, pos.line); + + var order = getOrder(line, cm.doc.direction), side = "left"; + if (order) { + var partPos = getBidiPartAt(order, pos.ch); + side = partPos % 2 ? "right" : "left"; + } + var result = nodeAndOffsetInLineMap(info.map, pos.ch, side); + result.offset = result.collapse == "right" ? result.end : result.start; + return result + } + + function isInGutter(node) { + for (var scan = node; scan; scan = scan.parentNode) + { if (/CodeMirror-gutter-wrapper/.test(scan.className)) { return true } } + return false + } + + function badPos(pos, bad) { if (bad) { pos.bad = true; } return pos } + + function domTextBetween(cm, from, to, fromLine, toLine) { + var text = "", closing = false, lineSep = cm.doc.lineSeparator(), extraLinebreak = false; + function recognizeMarker(id) { return function (marker) { return marker.id == id; } } + function close() { + if (closing) { + text += lineSep; + if (extraLinebreak) { text += lineSep; } + closing = extraLinebreak = false; + } + } + function addText(str) { + if (str) { + close(); + text += str; + } + } + function walk(node) { + if (node.nodeType == 1) { + var cmText = node.getAttribute("cm-text"); + if (cmText) { + addText(cmText); + return + } + var markerID = node.getAttribute("cm-marker"), range; + if (markerID) { + var found = cm.findMarks(Pos(fromLine, 0), Pos(toLine + 1, 0), recognizeMarker(+markerID)); + if (found.length && (range = found[0].find(0))) + { addText(getBetween(cm.doc, range.from, range.to).join(lineSep)); } + return + } + if (node.getAttribute("contenteditable") == "false") { return } + var isBlock = /^(pre|div|p|li|table|br)$/i.test(node.nodeName); + if (!/^br$/i.test(node.nodeName) && node.textContent.length == 0) { return } + + if (isBlock) { close(); } + for (var i = 0; i < node.childNodes.length; i++) + { walk(node.childNodes[i]); } + + if (/^(pre|p)$/i.test(node.nodeName)) { extraLinebreak = true; } + if (isBlock) { closing = true; } + } else if (node.nodeType == 3) { + addText(node.nodeValue.replace(/\u200b/g, "").replace(/\u00a0/g, " ")); + } + } + for (;;) { + walk(from); + if (from == to) { break } + from = from.nextSibling; + extraLinebreak = false; + } + return text + } + + function domToPos(cm, node, offset) { + var lineNode; + if (node == cm.display.lineDiv) { + lineNode = cm.display.lineDiv.childNodes[offset]; + if (!lineNode) { return badPos(cm.clipPos(Pos(cm.display.viewTo - 1)), true) } + node = null; offset = 0; + } else { + for (lineNode = node;; lineNode = lineNode.parentNode) { + if (!lineNode || lineNode == cm.display.lineDiv) { return null } + if (lineNode.parentNode && lineNode.parentNode == cm.display.lineDiv) { break } + } + } + for (var i = 0; i < cm.display.view.length; i++) { + var lineView = cm.display.view[i]; + if (lineView.node == lineNode) + { return locateNodeInLineView(lineView, node, offset) } + } + } + + function locateNodeInLineView(lineView, node, offset) { + var wrapper = lineView.text.firstChild, bad = false; + if (!node || !contains(wrapper, node)) { return badPos(Pos(lineNo(lineView.line), 0), true) } + if (node == wrapper) { + bad = true; + node = wrapper.childNodes[offset]; + offset = 0; + if (!node) { + var line = lineView.rest ? lst(lineView.rest) : lineView.line; + return badPos(Pos(lineNo(line), line.text.length), bad) + } + } + + var textNode = node.nodeType == 3 ? node : null, topNode = node; + if (!textNode && node.childNodes.length == 1 && node.firstChild.nodeType == 3) { + textNode = node.firstChild; + if (offset) { offset = textNode.nodeValue.length; } + } + while (topNode.parentNode != wrapper) { topNode = topNode.parentNode; } + var measure = lineView.measure, maps = measure.maps; + + function find(textNode, topNode, offset) { + for (var i = -1; i < (maps ? maps.length : 0); i++) { + var map = i < 0 ? measure.map : maps[i]; + for (var j = 0; j < map.length; j += 3) { + var curNode = map[j + 2]; + if (curNode == textNode || curNode == topNode) { + var line = lineNo(i < 0 ? lineView.line : lineView.rest[i]); + var ch = map[j] + offset; + if (offset < 0 || curNode != textNode) { ch = map[j + (offset ? 1 : 0)]; } + return Pos(line, ch) + } + } + } + } + var found = find(textNode, topNode, offset); + if (found) { return badPos(found, bad) } + + // FIXME this is all really shaky. might handle the few cases it needs to handle, but likely to cause problems + for (var after = topNode.nextSibling, dist = textNode ? textNode.nodeValue.length - offset : 0; after; after = after.nextSibling) { + found = find(after, after.firstChild, 0); + if (found) + { return badPos(Pos(found.line, found.ch - dist), bad) } + else + { dist += after.textContent.length; } + } + for (var before = topNode.previousSibling, dist$1 = offset; before; before = before.previousSibling) { + found = find(before, before.firstChild, -1); + if (found) + { return badPos(Pos(found.line, found.ch + dist$1), bad) } + else + { dist$1 += before.textContent.length; } + } + } + + // TEXTAREA INPUT STYLE + + var TextareaInput = function(cm) { + this.cm = cm; + // See input.poll and input.reset + this.prevInput = ""; + + // Flag that indicates whether we expect input to appear real soon + // now (after some event like 'keypress' or 'input') and are + // polling intensively. + this.pollingFast = false; + // Self-resetting timeout for the poller + this.polling = new Delayed(); + // Used to work around IE issue with selection being forgotten when focus moves away from textarea + this.hasSelection = false; + this.composing = null; + }; + + TextareaInput.prototype.init = function (display) { + var this$1 = this; + + var input = this, cm = this.cm; + this.createField(display); + var te = this.textarea; + + display.wrapper.insertBefore(this.wrapper, display.wrapper.firstChild); + + // Needed to hide big blue blinking cursor on Mobile Safari (doesn't seem to work in iOS 8 anymore) + if (ios) { te.style.width = "0px"; } + + on(te, "input", function () { + if (ie && ie_version >= 9 && this$1.hasSelection) { this$1.hasSelection = null; } + input.poll(); + }); + + on(te, "paste", function (e) { + if (signalDOMEvent(cm, e) || handlePaste(e, cm)) { return } + + cm.state.pasteIncoming = +new Date; + input.fastPoll(); + }); + + function prepareCopyCut(e) { + if (signalDOMEvent(cm, e)) { return } + if (cm.somethingSelected()) { + setLastCopied({lineWise: false, text: cm.getSelections()}); + } else if (!cm.options.lineWiseCopyCut) { + return + } else { + var ranges = copyableRanges(cm); + setLastCopied({lineWise: true, text: ranges.text}); + if (e.type == "cut") { + cm.setSelections(ranges.ranges, null, sel_dontScroll); + } else { + input.prevInput = ""; + te.value = ranges.text.join("\n"); + selectInput(te); + } + } + if (e.type == "cut") { cm.state.cutIncoming = +new Date; } + } + on(te, "cut", prepareCopyCut); + on(te, "copy", prepareCopyCut); + + on(display.scroller, "paste", function (e) { + if (eventInWidget(display, e) || signalDOMEvent(cm, e)) { return } + if (!te.dispatchEvent) { + cm.state.pasteIncoming = +new Date; + input.focus(); + return + } + + // Pass the `paste` event to the textarea so it's handled by its event listener. + var event = new Event("paste"); + event.clipboardData = e.clipboardData; + te.dispatchEvent(event); + }); + + // Prevent normal selection in the editor (we handle our own) + on(display.lineSpace, "selectstart", function (e) { + if (!eventInWidget(display, e)) { e_preventDefault(e); } + }); + + on(te, "compositionstart", function () { + var start = cm.getCursor("from"); + if (input.composing) { input.composing.range.clear(); } + input.composing = { + start: start, + range: cm.markText(start, cm.getCursor("to"), {className: "CodeMirror-composing"}) + }; + }); + on(te, "compositionend", function () { + if (input.composing) { + input.poll(); + input.composing.range.clear(); + input.composing = null; + } + }); + }; + + TextareaInput.prototype.createField = function (_display) { + // Wraps and hides input textarea + this.wrapper = hiddenTextarea(); + // The semihidden textarea that is focused when the editor is + // focused, and receives input. + this.textarea = this.wrapper.firstChild; + }; + + TextareaInput.prototype.screenReaderLabelChanged = function (label) { + // Label for screenreaders, accessibility + if(label) { + this.textarea.setAttribute('aria-label', label); + } else { + this.textarea.removeAttribute('aria-label'); + } + }; + + TextareaInput.prototype.prepareSelection = function () { + // Redraw the selection and/or cursor + var cm = this.cm, display = cm.display, doc = cm.doc; + var result = prepareSelection(cm); + + // Move the hidden textarea near the cursor to prevent scrolling artifacts + if (cm.options.moveInputWithCursor) { + var headPos = cursorCoords(cm, doc.sel.primary().head, "div"); + var wrapOff = display.wrapper.getBoundingClientRect(), lineOff = display.lineDiv.getBoundingClientRect(); + result.teTop = Math.max(0, Math.min(display.wrapper.clientHeight - 10, + headPos.top + lineOff.top - wrapOff.top)); + result.teLeft = Math.max(0, Math.min(display.wrapper.clientWidth - 10, + headPos.left + lineOff.left - wrapOff.left)); + } + + return result + }; + + TextareaInput.prototype.showSelection = function (drawn) { + var cm = this.cm, display = cm.display; + removeChildrenAndAdd(display.cursorDiv, drawn.cursors); + removeChildrenAndAdd(display.selectionDiv, drawn.selection); + if (drawn.teTop != null) { + this.wrapper.style.top = drawn.teTop + "px"; + this.wrapper.style.left = drawn.teLeft + "px"; + } + }; + + // Reset the input to correspond to the selection (or to be empty, + // when not typing and nothing is selected) + TextareaInput.prototype.reset = function (typing) { + if (this.contextMenuPending || this.composing) { return } + var cm = this.cm; + if (cm.somethingSelected()) { + this.prevInput = ""; + var content = cm.getSelection(); + this.textarea.value = content; + if (cm.state.focused) { selectInput(this.textarea); } + if (ie && ie_version >= 9) { this.hasSelection = content; } + } else if (!typing) { + this.prevInput = this.textarea.value = ""; + if (ie && ie_version >= 9) { this.hasSelection = null; } + } + }; + + TextareaInput.prototype.getField = function () { return this.textarea }; + + TextareaInput.prototype.supportsTouch = function () { return false }; + + TextareaInput.prototype.focus = function () { + if (this.cm.options.readOnly != "nocursor" && (!mobile || activeElt() != this.textarea)) { + try { this.textarea.focus(); } + catch (e) {} // IE8 will throw if the textarea is display: none or not in DOM + } + }; + + TextareaInput.prototype.blur = function () { this.textarea.blur(); }; + + TextareaInput.prototype.resetPosition = function () { + this.wrapper.style.top = this.wrapper.style.left = 0; + }; + + TextareaInput.prototype.receivedFocus = function () { this.slowPoll(); }; + + // Poll for input changes, using the normal rate of polling. This + // runs as long as the editor is focused. + TextareaInput.prototype.slowPoll = function () { + var this$1 = this; + + if (this.pollingFast) { return } + this.polling.set(this.cm.options.pollInterval, function () { + this$1.poll(); + if (this$1.cm.state.focused) { this$1.slowPoll(); } + }); + }; + + // When an event has just come in that is likely to add or change + // something in the input textarea, we poll faster, to ensure that + // the change appears on the screen quickly. + TextareaInput.prototype.fastPoll = function () { + var missed = false, input = this; + input.pollingFast = true; + function p() { + var changed = input.poll(); + if (!changed && !missed) {missed = true; input.polling.set(60, p);} + else {input.pollingFast = false; input.slowPoll();} + } + input.polling.set(20, p); + }; + + // Read input from the textarea, and update the document to match. + // When something is selected, it is present in the textarea, and + // selected (unless it is huge, in which case a placeholder is + // used). When nothing is selected, the cursor sits after previously + // seen text (can be empty), which is stored in prevInput (we must + // not reset the textarea when typing, because that breaks IME). + TextareaInput.prototype.poll = function () { + var this$1 = this; + + var cm = this.cm, input = this.textarea, prevInput = this.prevInput; + // Since this is called a *lot*, try to bail out as cheaply as + // possible when it is clear that nothing happened. hasSelection + // will be the case when there is a lot of text in the textarea, + // in which case reading its value would be expensive. + if (this.contextMenuPending || !cm.state.focused || + (hasSelection(input) && !prevInput && !this.composing) || + cm.isReadOnly() || cm.options.disableInput || cm.state.keySeq) + { return false } + + var text = input.value; + // If nothing changed, bail. + if (text == prevInput && !cm.somethingSelected()) { return false } + // Work around nonsensical selection resetting in IE9/10, and + // inexplicable appearance of private area unicode characters on + // some key combos in Mac (#2689). + if (ie && ie_version >= 9 && this.hasSelection === text || + mac && /[\uf700-\uf7ff]/.test(text)) { + cm.display.input.reset(); + return false + } + + if (cm.doc.sel == cm.display.selForContextMenu) { + var first = text.charCodeAt(0); + if (first == 0x200b && !prevInput) { prevInput = "\u200b"; } + if (first == 0x21da) { this.reset(); return this.cm.execCommand("undo") } + } + // Find the part of the input that is actually new + var same = 0, l = Math.min(prevInput.length, text.length); + while (same < l && prevInput.charCodeAt(same) == text.charCodeAt(same)) { ++same; } + + runInOp(cm, function () { + applyTextInput(cm, text.slice(same), prevInput.length - same, + null, this$1.composing ? "*compose" : null); + + // Don't leave long text in the textarea, since it makes further polling slow + if (text.length > 1000 || text.indexOf("\n") > -1) { input.value = this$1.prevInput = ""; } + else { this$1.prevInput = text; } + + if (this$1.composing) { + this$1.composing.range.clear(); + this$1.composing.range = cm.markText(this$1.composing.start, cm.getCursor("to"), + {className: "CodeMirror-composing"}); + } + }); + return true + }; + + TextareaInput.prototype.ensurePolled = function () { + if (this.pollingFast && this.poll()) { this.pollingFast = false; } + }; + + TextareaInput.prototype.onKeyPress = function () { + if (ie && ie_version >= 9) { this.hasSelection = null; } + this.fastPoll(); + }; + + TextareaInput.prototype.onContextMenu = function (e) { + var input = this, cm = input.cm, display = cm.display, te = input.textarea; + if (input.contextMenuPending) { input.contextMenuPending(); } + var pos = posFromMouse(cm, e), scrollPos = display.scroller.scrollTop; + if (!pos || presto) { return } // Opera is difficult. + + // Reset the current text selection only if the click is done outside of the selection + // and 'resetSelectionOnContextMenu' option is true. + var reset = cm.options.resetSelectionOnContextMenu; + if (reset && cm.doc.sel.contains(pos) == -1) + { operation(cm, setSelection)(cm.doc, simpleSelection(pos), sel_dontScroll); } + + var oldCSS = te.style.cssText, oldWrapperCSS = input.wrapper.style.cssText; + var wrapperBox = input.wrapper.offsetParent.getBoundingClientRect(); + input.wrapper.style.cssText = "position: static"; + te.style.cssText = "position: absolute; width: 30px; height: 30px;\n top: " + (e.clientY - wrapperBox.top - 5) + "px; left: " + (e.clientX - wrapperBox.left - 5) + "px;\n z-index: 1000; background: " + (ie ? "rgba(255, 255, 255, .05)" : "transparent") + ";\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);"; + var oldScrollY; + if (webkit) { oldScrollY = window.scrollY; } // Work around Chrome issue (#2712) + display.input.focus(); + if (webkit) { window.scrollTo(null, oldScrollY); } + display.input.reset(); + // Adds "Select all" to context menu in FF + if (!cm.somethingSelected()) { te.value = input.prevInput = " "; } + input.contextMenuPending = rehide; + display.selForContextMenu = cm.doc.sel; + clearTimeout(display.detectingSelectAll); + + // Select-all will be greyed out if there's nothing to select, so + // this adds a zero-width space so that we can later check whether + // it got selected. + function prepareSelectAllHack() { + if (te.selectionStart != null) { + var selected = cm.somethingSelected(); + var extval = "\u200b" + (selected ? te.value : ""); + te.value = "\u21da"; // Used to catch context-menu undo + te.value = extval; + input.prevInput = selected ? "" : "\u200b"; + te.selectionStart = 1; te.selectionEnd = extval.length; + // Re-set this, in case some other handler touched the + // selection in the meantime. + display.selForContextMenu = cm.doc.sel; + } + } + function rehide() { + if (input.contextMenuPending != rehide) { return } + input.contextMenuPending = false; + input.wrapper.style.cssText = oldWrapperCSS; + te.style.cssText = oldCSS; + if (ie && ie_version < 9) { display.scrollbars.setScrollTop(display.scroller.scrollTop = scrollPos); } + + // Try to detect the user choosing select-all + if (te.selectionStart != null) { + if (!ie || (ie && ie_version < 9)) { prepareSelectAllHack(); } + var i = 0, poll = function () { + if (display.selForContextMenu == cm.doc.sel && te.selectionStart == 0 && + te.selectionEnd > 0 && input.prevInput == "\u200b") { + operation(cm, selectAll)(cm); + } else if (i++ < 10) { + display.detectingSelectAll = setTimeout(poll, 500); + } else { + display.selForContextMenu = null; + display.input.reset(); + } + }; + display.detectingSelectAll = setTimeout(poll, 200); + } + } + + if (ie && ie_version >= 9) { prepareSelectAllHack(); } + if (captureRightClick) { + e_stop(e); + var mouseup = function () { + off(window, "mouseup", mouseup); + setTimeout(rehide, 20); + }; + on(window, "mouseup", mouseup); + } else { + setTimeout(rehide, 50); + } + }; + + TextareaInput.prototype.readOnlyChanged = function (val) { + if (!val) { this.reset(); } + this.textarea.disabled = val == "nocursor"; + this.textarea.readOnly = !!val; + }; + + TextareaInput.prototype.setUneditable = function () {}; + + TextareaInput.prototype.needsContentAttribute = false; + + function fromTextArea(textarea, options) { + options = options ? copyObj(options) : {}; + options.value = textarea.value; + if (!options.tabindex && textarea.tabIndex) + { options.tabindex = textarea.tabIndex; } + if (!options.placeholder && textarea.placeholder) + { options.placeholder = textarea.placeholder; } + // Set autofocus to true if this textarea is focused, or if it has + // autofocus and no other element is focused. + if (options.autofocus == null) { + var hasFocus = activeElt(); + options.autofocus = hasFocus == textarea || + textarea.getAttribute("autofocus") != null && hasFocus == document.body; + } + + function save() {textarea.value = cm.getValue();} + + var realSubmit; + if (textarea.form) { + on(textarea.form, "submit", save); + // Deplorable hack to make the submit method do the right thing. + if (!options.leaveSubmitMethodAlone) { + var form = textarea.form; + realSubmit = form.submit; + try { + var wrappedSubmit = form.submit = function () { + save(); + form.submit = realSubmit; + form.submit(); + form.submit = wrappedSubmit; + }; + } catch(e) {} + } + } + + options.finishInit = function (cm) { + cm.save = save; + cm.getTextArea = function () { return textarea; }; + cm.toTextArea = function () { + cm.toTextArea = isNaN; // Prevent this from being ran twice + save(); + textarea.parentNode.removeChild(cm.getWrapperElement()); + textarea.style.display = ""; + if (textarea.form) { + off(textarea.form, "submit", save); + if (!options.leaveSubmitMethodAlone && typeof textarea.form.submit == "function") + { textarea.form.submit = realSubmit; } + } + }; + }; + + textarea.style.display = "none"; + var cm = CodeMirror(function (node) { return textarea.parentNode.insertBefore(node, textarea.nextSibling); }, + options); + return cm + } + + function addLegacyProps(CodeMirror) { + CodeMirror.off = off; + CodeMirror.on = on; + CodeMirror.wheelEventPixels = wheelEventPixels; + CodeMirror.Doc = Doc; + CodeMirror.splitLines = splitLinesAuto; + CodeMirror.countColumn = countColumn; + CodeMirror.findColumn = findColumn; + CodeMirror.isWordChar = isWordCharBasic; + CodeMirror.Pass = Pass; + CodeMirror.signal = signal; + CodeMirror.Line = Line; + CodeMirror.changeEnd = changeEnd; + CodeMirror.scrollbarModel = scrollbarModel; + CodeMirror.Pos = Pos; + CodeMirror.cmpPos = cmp; + CodeMirror.modes = modes; + CodeMirror.mimeModes = mimeModes; + CodeMirror.resolveMode = resolveMode; + CodeMirror.getMode = getMode; + CodeMirror.modeExtensions = modeExtensions; + CodeMirror.extendMode = extendMode; + CodeMirror.copyState = copyState; + CodeMirror.startState = startState; + CodeMirror.innerMode = innerMode; + CodeMirror.commands = commands; + CodeMirror.keyMap = keyMap; + CodeMirror.keyName = keyName; + CodeMirror.isModifierKey = isModifierKey; + CodeMirror.lookupKey = lookupKey; + CodeMirror.normalizeKeyMap = normalizeKeyMap; + CodeMirror.StringStream = StringStream; + CodeMirror.SharedTextMarker = SharedTextMarker; + CodeMirror.TextMarker = TextMarker; + CodeMirror.LineWidget = LineWidget; + CodeMirror.e_preventDefault = e_preventDefault; + CodeMirror.e_stopPropagation = e_stopPropagation; + CodeMirror.e_stop = e_stop; + CodeMirror.addClass = addClass; + CodeMirror.contains = contains; + CodeMirror.rmClass = rmClass; + CodeMirror.keyNames = keyNames; + } + + // EDITOR CONSTRUCTOR + + defineOptions(CodeMirror); + + addEditorMethods(CodeMirror); + + // Set up methods on CodeMirror's prototype to redirect to the editor's document. + var dontDelegate = "iter insert remove copy getEditor constructor".split(" "); + for (var prop in Doc.prototype) { if (Doc.prototype.hasOwnProperty(prop) && indexOf(dontDelegate, prop) < 0) + { CodeMirror.prototype[prop] = (function(method) { + return function() {return method.apply(this.doc, arguments)} + })(Doc.prototype[prop]); } } + + eventMixin(Doc); + CodeMirror.inputStyles = {"textarea": TextareaInput, "contenteditable": ContentEditableInput}; + + // Extra arguments are stored as the mode's dependencies, which is + // used by (legacy) mechanisms like loadmode.js to automatically + // load a mode. (Preferred mechanism is the require/define calls.) + CodeMirror.defineMode = function(name/*, mode, …*/) { + if (!CodeMirror.defaults.mode && name != "null") { CodeMirror.defaults.mode = name; } + defineMode.apply(this, arguments); + }; + + CodeMirror.defineMIME = defineMIME; + + // Minimal default mode. + CodeMirror.defineMode("null", function () { return ({token: function (stream) { return stream.skipToEnd(); }}); }); + CodeMirror.defineMIME("text/plain", "null"); + + // EXTENSIONS + + CodeMirror.defineExtension = function (name, func) { + CodeMirror.prototype[name] = func; + }; + CodeMirror.defineDocExtension = function (name, func) { + Doc.prototype[name] = func; + }; + + CodeMirror.fromTextArea = fromTextArea; + + addLegacyProps(CodeMirror); + + CodeMirror.version = "5.58.1"; + + return CodeMirror; + +}))); + +},{}],112:[function(require,module,exports){ +// CodeMirror, copyright (c) by Marijn Haverbeke and others +// Distributed under an MIT license: https://codemirror.net/LICENSE + +(function(mod) { + if (typeof exports == "object" && typeof module == "object") // CommonJS + mod(require("../../lib/codemirror")); + else if (typeof define == "function" && define.amd) // AMD + define(["../../lib/codemirror"], mod); + else // Plain browser env + mod(CodeMirror); +})(function(CodeMirror) { +"use strict"; + +CodeMirror.defineMode("javascript", function(config, parserConfig) { + var indentUnit = config.indentUnit; + var statementIndent = parserConfig.statementIndent; + var jsonldMode = parserConfig.jsonld; + var jsonMode = parserConfig.json || jsonldMode; + var isTS = parserConfig.typescript; + var wordRE = parserConfig.wordCharacters || /[\w$\xa1-\uffff]/; + + // Tokenizer + + var keywords = function(){ + function kw(type) {return {type: type, style: "keyword"};} + var A = kw("keyword a"), B = kw("keyword b"), C = kw("keyword c"), D = kw("keyword d"); + var operator = kw("operator"), atom = {type: "atom", style: "atom"}; + + return { + "if": kw("if"), "while": A, "with": A, "else": B, "do": B, "try": B, "finally": B, + "return": D, "break": D, "continue": D, "new": kw("new"), "delete": C, "void": C, "throw": C, + "debugger": kw("debugger"), "var": kw("var"), "const": kw("var"), "let": kw("var"), + "function": kw("function"), "catch": kw("catch"), + "for": kw("for"), "switch": kw("switch"), "case": kw("case"), "default": kw("default"), + "in": operator, "typeof": operator, "instanceof": operator, + "true": atom, "false": atom, "null": atom, "undefined": atom, "NaN": atom, "Infinity": atom, + "this": kw("this"), "class": kw("class"), "super": kw("atom"), + "yield": C, "export": kw("export"), "import": kw("import"), "extends": C, + "await": C + }; + }(); + + var isOperatorChar = /[+\-*&%=<>!?|~^@]/; + var isJsonldKeyword = /^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/; + + function readRegexp(stream) { + var escaped = false, next, inSet = false; + while ((next = stream.next()) != null) { + if (!escaped) { + if (next == "/" && !inSet) return; + if (next == "[") inSet = true; + else if (inSet && next == "]") inSet = false; + } + escaped = !escaped && next == "\\"; + } + } + + // Used as scratch variables to communicate multiple values without + // consing up tons of objects. + var type, content; + function ret(tp, style, cont) { + type = tp; content = cont; + return style; + } + function tokenBase(stream, state) { + var ch = stream.next(); + if (ch == '"' || ch == "'") { + state.tokenize = tokenString(ch); + return state.tokenize(stream, state); + } else if (ch == "." && stream.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/)) { + return ret("number", "number"); + } else if (ch == "." && stream.match("..")) { + return ret("spread", "meta"); + } else if (/[\[\]{}\(\),;\:\.]/.test(ch)) { + return ret(ch); + } else if (ch == "=" && stream.eat(">")) { + return ret("=>", "operator"); + } else if (ch == "0" && stream.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/)) { + return ret("number", "number"); + } else if (/\d/.test(ch)) { + stream.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/); + return ret("number", "number"); + } else if (ch == "/") { + if (stream.eat("*")) { + state.tokenize = tokenComment; + return tokenComment(stream, state); + } else if (stream.eat("/")) { + stream.skipToEnd(); + return ret("comment", "comment"); + } else if (expressionAllowed(stream, state, 1)) { + readRegexp(stream); + stream.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/); + return ret("regexp", "string-2"); + } else { + stream.eat("="); + return ret("operator", "operator", stream.current()); + } + } else if (ch == "`") { + state.tokenize = tokenQuasi; + return tokenQuasi(stream, state); + } else if (ch == "#" && stream.peek() == "!") { + stream.skipToEnd(); + return ret("meta", "meta"); + } else if (ch == "#" && stream.eatWhile(wordRE)) { + return ret("variable", "property") + } else if (ch == "<" && stream.match("!--") || + (ch == "-" && stream.match("->") && !/\S/.test(stream.string.slice(0, stream.start)))) { + stream.skipToEnd() + return ret("comment", "comment") + } else if (isOperatorChar.test(ch)) { + if (ch != ">" || !state.lexical || state.lexical.type != ">") { + if (stream.eat("=")) { + if (ch == "!" || ch == "=") stream.eat("=") + } else if (/[<>*+\-|&?]/.test(ch)) { + stream.eat(ch) + if (ch == ">") stream.eat(ch) + } + } + if (ch == "?" && stream.eat(".")) return ret(".") + return ret("operator", "operator", stream.current()); + } else if (wordRE.test(ch)) { + stream.eatWhile(wordRE); + var word = stream.current() + if (state.lastType != ".") { + if (keywords.propertyIsEnumerable(word)) { + var kw = keywords[word] + return ret(kw.type, kw.style, word) + } + if (word == "async" && stream.match(/^(\s|\/\*.*?\*\/)*[\[\(\w]/, false)) + return ret("async", "keyword", word) + } + return ret("variable", "variable", word) + } + } + + function tokenString(quote) { + return function(stream, state) { + var escaped = false, next; + if (jsonldMode && stream.peek() == "@" && stream.match(isJsonldKeyword)){ + state.tokenize = tokenBase; + return ret("jsonld-keyword", "meta"); + } + while ((next = stream.next()) != null) { + if (next == quote && !escaped) break; + escaped = !escaped && next == "\\"; + } + if (!escaped) state.tokenize = tokenBase; + return ret("string", "string"); + }; + } + + function tokenComment(stream, state) { + var maybeEnd = false, ch; + while (ch = stream.next()) { + if (ch == "/" && maybeEnd) { + state.tokenize = tokenBase; + break; + } + maybeEnd = (ch == "*"); + } + return ret("comment", "comment"); + } + + function tokenQuasi(stream, state) { + var escaped = false, next; + while ((next = stream.next()) != null) { + if (!escaped && (next == "`" || next == "$" && stream.eat("{"))) { + state.tokenize = tokenBase; + break; + } + escaped = !escaped && next == "\\"; + } + return ret("quasi", "string-2", stream.current()); + } + + var brackets = "([{}])"; + // This is a crude lookahead trick to try and notice that we're + // parsing the argument patterns for a fat-arrow function before we + // actually hit the arrow token. It only works if the arrow is on + // the same line as the arguments and there's no strange noise + // (comments) in between. Fallback is to only notice when we hit the + // arrow, and not declare the arguments as locals for the arrow + // body. + function findFatArrow(stream, state) { + if (state.fatArrowAt) state.fatArrowAt = null; + var arrow = stream.string.indexOf("=>", stream.start); + if (arrow < 0) return; + + if (isTS) { // Try to skip TypeScript return type declarations after the arguments + var m = /:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(stream.string.slice(stream.start, arrow)) + if (m) arrow = m.index + } + + var depth = 0, sawSomething = false; + for (var pos = arrow - 1; pos >= 0; --pos) { + var ch = stream.string.charAt(pos); + var bracket = brackets.indexOf(ch); + if (bracket >= 0 && bracket < 3) { + if (!depth) { ++pos; break; } + if (--depth == 0) { if (ch == "(") sawSomething = true; break; } + } else if (bracket >= 3 && bracket < 6) { + ++depth; + } else if (wordRE.test(ch)) { + sawSomething = true; + } else if (/["'\/`]/.test(ch)) { + for (;; --pos) { + if (pos == 0) return + var next = stream.string.charAt(pos - 1) + if (next == ch && stream.string.charAt(pos - 2) != "\\") { pos--; break } + } + } else if (sawSomething && !depth) { + ++pos; + break; + } + } + if (sawSomething && !depth) state.fatArrowAt = pos; + } + + // Parser + + var atomicTypes = {"atom": true, "number": true, "variable": true, "string": true, "regexp": true, "this": true, "jsonld-keyword": true}; + + function JSLexical(indented, column, type, align, prev, info) { + this.indented = indented; + this.column = column; + this.type = type; + this.prev = prev; + this.info = info; + if (align != null) this.align = align; + } + + function inScope(state, varname) { + for (var v = state.localVars; v; v = v.next) + if (v.name == varname) return true; + for (var cx = state.context; cx; cx = cx.prev) { + for (var v = cx.vars; v; v = v.next) + if (v.name == varname) return true; + } + } + + function parseJS(state, style, type, content, stream) { + var cc = state.cc; + // Communicate our context to the combinators. + // (Less wasteful than consing up a hundred closures on every call.) + cx.state = state; cx.stream = stream; cx.marked = null, cx.cc = cc; cx.style = style; + + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = true; + + while(true) { + var combinator = cc.length ? cc.pop() : jsonMode ? expression : statement; + if (combinator(type, content)) { + while(cc.length && cc[cc.length - 1].lex) + cc.pop()(); + if (cx.marked) return cx.marked; + if (type == "variable" && inScope(state, content)) return "variable-2"; + return style; + } + } + } + + // Combinator utils + + var cx = {state: null, column: null, marked: null, cc: null}; + function pass() { + for (var i = arguments.length - 1; i >= 0; i--) cx.cc.push(arguments[i]); + } + function cont() { + pass.apply(null, arguments); + return true; + } + function inList(name, list) { + for (var v = list; v; v = v.next) if (v.name == name) return true + return false; + } + function register(varname) { + var state = cx.state; + cx.marked = "def"; + if (state.context) { + if (state.lexical.info == "var" && state.context && state.context.block) { + // FIXME function decls are also not block scoped + var newContext = registerVarScoped(varname, state.context) + if (newContext != null) { + state.context = newContext + return + } + } else if (!inList(varname, state.localVars)) { + state.localVars = new Var(varname, state.localVars) + return + } + } + // Fall through means this is global + if (parserConfig.globalVars && !inList(varname, state.globalVars)) + state.globalVars = new Var(varname, state.globalVars) + } + function registerVarScoped(varname, context) { + if (!context) { + return null + } else if (context.block) { + var inner = registerVarScoped(varname, context.prev) + if (!inner) return null + if (inner == context.prev) return context + return new Context(inner, context.vars, true) + } else if (inList(varname, context.vars)) { + return context + } else { + return new Context(context.prev, new Var(varname, context.vars), false) + } + } + + function isModifier(name) { + return name == "public" || name == "private" || name == "protected" || name == "abstract" || name == "readonly" + } + + // Combinators + + function Context(prev, vars, block) { this.prev = prev; this.vars = vars; this.block = block } + function Var(name, next) { this.name = name; this.next = next } + + var defaultVars = new Var("this", new Var("arguments", null)) + function pushcontext() { + cx.state.context = new Context(cx.state.context, cx.state.localVars, false) + cx.state.localVars = defaultVars + } + function pushblockcontext() { + cx.state.context = new Context(cx.state.context, cx.state.localVars, true) + cx.state.localVars = null + } + function popcontext() { + cx.state.localVars = cx.state.context.vars + cx.state.context = cx.state.context.prev + } + popcontext.lex = true + function pushlex(type, info) { + var result = function() { + var state = cx.state, indent = state.indented; + if (state.lexical.type == "stat") indent = state.lexical.indented; + else for (var outer = state.lexical; outer && outer.type == ")" && outer.align; outer = outer.prev) + indent = outer.indented; + state.lexical = new JSLexical(indent, cx.stream.column(), type, null, state.lexical, info); + }; + result.lex = true; + return result; + } + function poplex() { + var state = cx.state; + if (state.lexical.prev) { + if (state.lexical.type == ")") + state.indented = state.lexical.indented; + state.lexical = state.lexical.prev; + } + } + poplex.lex = true; + + function expect(wanted) { + function exp(type) { + if (type == wanted) return cont(); + else if (wanted == ";" || type == "}" || type == ")" || type == "]") return pass(); + else return cont(exp); + }; + return exp; + } + + function statement(type, value) { + if (type == "var") return cont(pushlex("vardef", value), vardef, expect(";"), poplex); + if (type == "keyword a") return cont(pushlex("form"), parenExpr, statement, poplex); + if (type == "keyword b") return cont(pushlex("form"), statement, poplex); + if (type == "keyword d") return cx.stream.match(/^\s*$/, false) ? cont() : cont(pushlex("stat"), maybeexpression, expect(";"), poplex); + if (type == "debugger") return cont(expect(";")); + if (type == "{") return cont(pushlex("}"), pushblockcontext, block, poplex, popcontext); + if (type == ";") return cont(); + if (type == "if") { + if (cx.state.lexical.info == "else" && cx.state.cc[cx.state.cc.length - 1] == poplex) + cx.state.cc.pop()(); + return cont(pushlex("form"), parenExpr, statement, poplex, maybeelse); + } + if (type == "function") return cont(functiondef); + if (type == "for") return cont(pushlex("form"), forspec, statement, poplex); + if (type == "class" || (isTS && value == "interface")) { + cx.marked = "keyword" + return cont(pushlex("form", type == "class" ? type : value), className, poplex) + } + if (type == "variable") { + if (isTS && value == "declare") { + cx.marked = "keyword" + return cont(statement) + } else if (isTS && (value == "module" || value == "enum" || value == "type") && cx.stream.match(/^\s*\w/, false)) { + cx.marked = "keyword" + if (value == "enum") return cont(enumdef); + else if (value == "type") return cont(typename, expect("operator"), typeexpr, expect(";")); + else return cont(pushlex("form"), pattern, expect("{"), pushlex("}"), block, poplex, poplex) + } else if (isTS && value == "namespace") { + cx.marked = "keyword" + return cont(pushlex("form"), expression, statement, poplex) + } else if (isTS && value == "abstract") { + cx.marked = "keyword" + return cont(statement) + } else { + return cont(pushlex("stat"), maybelabel); + } + } + if (type == "switch") return cont(pushlex("form"), parenExpr, expect("{"), pushlex("}", "switch"), pushblockcontext, + block, poplex, poplex, popcontext); + if (type == "case") return cont(expression, expect(":")); + if (type == "default") return cont(expect(":")); + if (type == "catch") return cont(pushlex("form"), pushcontext, maybeCatchBinding, statement, poplex, popcontext); + if (type == "export") return cont(pushlex("stat"), afterExport, poplex); + if (type == "import") return cont(pushlex("stat"), afterImport, poplex); + if (type == "async") return cont(statement) + if (value == "@") return cont(expression, statement) + return pass(pushlex("stat"), expression, expect(";"), poplex); + } + function maybeCatchBinding(type) { + if (type == "(") return cont(funarg, expect(")")) + } + function expression(type, value) { + return expressionInner(type, value, false); + } + function expressionNoComma(type, value) { + return expressionInner(type, value, true); + } + function parenExpr(type) { + if (type != "(") return pass() + return cont(pushlex(")"), maybeexpression, expect(")"), poplex) + } + function expressionInner(type, value, noComma) { + if (cx.state.fatArrowAt == cx.stream.start) { + var body = noComma ? arrowBodyNoComma : arrowBody; + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, expect("=>"), body, popcontext); + else if (type == "variable") return pass(pushcontext, pattern, expect("=>"), body, popcontext); + } + + var maybeop = noComma ? maybeoperatorNoComma : maybeoperatorComma; + if (atomicTypes.hasOwnProperty(type)) return cont(maybeop); + if (type == "function") return cont(functiondef, maybeop); + if (type == "class" || (isTS && value == "interface")) { cx.marked = "keyword"; return cont(pushlex("form"), classExpression, poplex); } + if (type == "keyword c" || type == "async") return cont(noComma ? expressionNoComma : expression); + if (type == "(") return cont(pushlex(")"), maybeexpression, expect(")"), poplex, maybeop); + if (type == "operator" || type == "spread") return cont(noComma ? expressionNoComma : expression); + if (type == "[") return cont(pushlex("]"), arrayLiteral, poplex, maybeop); + if (type == "{") return contCommasep(objprop, "}", null, maybeop); + if (type == "quasi") return pass(quasi, maybeop); + if (type == "new") return cont(maybeTarget(noComma)); + if (type == "import") return cont(expression); + return cont(); + } + function maybeexpression(type) { + if (type.match(/[;\}\)\],]/)) return pass(); + return pass(expression); + } + + function maybeoperatorComma(type, value) { + if (type == ",") return cont(maybeexpression); + return maybeoperatorNoComma(type, value, false); + } + function maybeoperatorNoComma(type, value, noComma) { + var me = noComma == false ? maybeoperatorComma : maybeoperatorNoComma; + var expr = noComma == false ? expression : expressionNoComma; + if (type == "=>") return cont(pushcontext, noComma ? arrowBodyNoComma : arrowBody, popcontext); + if (type == "operator") { + if (/\+\+|--/.test(value) || isTS && value == "!") return cont(me); + if (isTS && value == "<" && cx.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/, false)) + return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, me); + if (value == "?") return cont(expression, expect(":"), expr); + return cont(expr); + } + if (type == "quasi") { return pass(quasi, me); } + if (type == ";") return; + if (type == "(") return contCommasep(expressionNoComma, ")", "call", me); + if (type == ".") return cont(property, me); + if (type == "[") return cont(pushlex("]"), maybeexpression, expect("]"), poplex, me); + if (isTS && value == "as") { cx.marked = "keyword"; return cont(typeexpr, me) } + if (type == "regexp") { + cx.state.lastType = cx.marked = "operator" + cx.stream.backUp(cx.stream.pos - cx.stream.start - 1) + return cont(expr) + } + } + function quasi(type, value) { + if (type != "quasi") return pass(); + if (value.slice(value.length - 2) != "${") return cont(quasi); + return cont(expression, continueQuasi); + } + function continueQuasi(type) { + if (type == "}") { + cx.marked = "string-2"; + cx.state.tokenize = tokenQuasi; + return cont(quasi); + } + } + function arrowBody(type) { + findFatArrow(cx.stream, cx.state); + return pass(type == "{" ? statement : expression); + } + function arrowBodyNoComma(type) { + findFatArrow(cx.stream, cx.state); + return pass(type == "{" ? statement : expressionNoComma); + } + function maybeTarget(noComma) { + return function(type) { + if (type == ".") return cont(noComma ? targetNoComma : target); + else if (type == "variable" && isTS) return cont(maybeTypeArgs, noComma ? maybeoperatorNoComma : maybeoperatorComma) + else return pass(noComma ? expressionNoComma : expression); + }; + } + function target(_, value) { + if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorComma); } + } + function targetNoComma(_, value) { + if (value == "target") { cx.marked = "keyword"; return cont(maybeoperatorNoComma); } + } + function maybelabel(type) { + if (type == ":") return cont(poplex, statement); + return pass(maybeoperatorComma, expect(";"), poplex); + } + function property(type) { + if (type == "variable") {cx.marked = "property"; return cont();} + } + function objprop(type, value) { + if (type == "async") { + cx.marked = "property"; + return cont(objprop); + } else if (type == "variable" || cx.style == "keyword") { + cx.marked = "property"; + if (value == "get" || value == "set") return cont(getterSetter); + var m // Work around fat-arrow-detection complication for detecting typescript typed arrow params + if (isTS && cx.state.fatArrowAt == cx.stream.start && (m = cx.stream.match(/^\s*:\s*/, false))) + cx.state.fatArrowAt = cx.stream.pos + m[0].length + return cont(afterprop); + } else if (type == "number" || type == "string") { + cx.marked = jsonldMode ? "property" : (cx.style + " property"); + return cont(afterprop); + } else if (type == "jsonld-keyword") { + return cont(afterprop); + } else if (isTS && isModifier(value)) { + cx.marked = "keyword" + return cont(objprop) + } else if (type == "[") { + return cont(expression, maybetype, expect("]"), afterprop); + } else if (type == "spread") { + return cont(expressionNoComma, afterprop); + } else if (value == "*") { + cx.marked = "keyword"; + return cont(objprop); + } else if (type == ":") { + return pass(afterprop) + } + } + function getterSetter(type) { + if (type != "variable") return pass(afterprop); + cx.marked = "property"; + return cont(functiondef); + } + function afterprop(type) { + if (type == ":") return cont(expressionNoComma); + if (type == "(") return pass(functiondef); + } + function commasep(what, end, sep) { + function proceed(type, value) { + if (sep ? sep.indexOf(type) > -1 : type == ",") { + var lex = cx.state.lexical; + if (lex.info == "call") lex.pos = (lex.pos || 0) + 1; + return cont(function(type, value) { + if (type == end || value == end) return pass() + return pass(what) + }, proceed); + } + if (type == end || value == end) return cont(); + if (sep && sep.indexOf(";") > -1) return pass(what) + return cont(expect(end)); + } + return function(type, value) { + if (type == end || value == end) return cont(); + return pass(what, proceed); + }; + } + function contCommasep(what, end, info) { + for (var i = 3; i < arguments.length; i++) + cx.cc.push(arguments[i]); + return cont(pushlex(end, info), commasep(what, end), poplex); + } + function block(type) { + if (type == "}") return cont(); + return pass(statement, block); + } + function maybetype(type, value) { + if (isTS) { + if (type == ":") return cont(typeexpr); + if (value == "?") return cont(maybetype); + } + } + function maybetypeOrIn(type, value) { + if (isTS && (type == ":" || value == "in")) return cont(typeexpr) + } + function mayberettype(type) { + if (isTS && type == ":") { + if (cx.stream.match(/^\s*\w+\s+is\b/, false)) return cont(expression, isKW, typeexpr) + else return cont(typeexpr) + } + } + function isKW(_, value) { + if (value == "is") { + cx.marked = "keyword" + return cont() + } + } + function typeexpr(type, value) { + if (value == "keyof" || value == "typeof" || value == "infer") { + cx.marked = "keyword" + return cont(value == "typeof" ? expressionNoComma : typeexpr) + } + if (type == "variable" || value == "void") { + cx.marked = "type" + return cont(afterType) + } + if (value == "|" || value == "&") return cont(typeexpr) + if (type == "string" || type == "number" || type == "atom") return cont(afterType); + if (type == "[") return cont(pushlex("]"), commasep(typeexpr, "]", ","), poplex, afterType) + if (type == "{") return cont(pushlex("}"), commasep(typeprop, "}", ",;"), poplex, afterType) + if (type == "(") return cont(commasep(typearg, ")"), maybeReturnType, afterType) + if (type == "<") return cont(commasep(typeexpr, ">"), typeexpr) + } + function maybeReturnType(type) { + if (type == "=>") return cont(typeexpr) + } + function typeprop(type, value) { + if (type == "variable" || cx.style == "keyword") { + cx.marked = "property" + return cont(typeprop) + } else if (value == "?" || type == "number" || type == "string") { + return cont(typeprop) + } else if (type == ":") { + return cont(typeexpr) + } else if (type == "[") { + return cont(expect("variable"), maybetypeOrIn, expect("]"), typeprop) + } else if (type == "(") { + return pass(functiondecl, typeprop) + } + } + function typearg(type, value) { + if (type == "variable" && cx.stream.match(/^\s*[?:]/, false) || value == "?") return cont(typearg) + if (type == ":") return cont(typeexpr) + if (type == "spread") return cont(typearg) + return pass(typeexpr) + } + function afterType(type, value) { + if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType) + if (value == "|" || type == "." || value == "&") return cont(typeexpr) + if (type == "[") return cont(typeexpr, expect("]"), afterType) + if (value == "extends" || value == "implements") { cx.marked = "keyword"; return cont(typeexpr) } + if (value == "?") return cont(typeexpr, expect(":"), typeexpr) + } + function maybeTypeArgs(_, value) { + if (value == "<") return cont(pushlex(">"), commasep(typeexpr, ">"), poplex, afterType) + } + function typeparam() { + return pass(typeexpr, maybeTypeDefault) + } + function maybeTypeDefault(_, value) { + if (value == "=") return cont(typeexpr) + } + function vardef(_, value) { + if (value == "enum") {cx.marked = "keyword"; return cont(enumdef)} + return pass(pattern, maybetype, maybeAssign, vardefCont); + } + function pattern(type, value) { + if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(pattern) } + if (type == "variable") { register(value); return cont(); } + if (type == "spread") return cont(pattern); + if (type == "[") return contCommasep(eltpattern, "]"); + if (type == "{") return contCommasep(proppattern, "}"); + } + function proppattern(type, value) { + if (type == "variable" && !cx.stream.match(/^\s*:/, false)) { + register(value); + return cont(maybeAssign); + } + if (type == "variable") cx.marked = "property"; + if (type == "spread") return cont(pattern); + if (type == "}") return pass(); + if (type == "[") return cont(expression, expect(']'), expect(':'), proppattern); + return cont(expect(":"), pattern, maybeAssign); + } + function eltpattern() { + return pass(pattern, maybeAssign) + } + function maybeAssign(_type, value) { + if (value == "=") return cont(expressionNoComma); + } + function vardefCont(type) { + if (type == ",") return cont(vardef); + } + function maybeelse(type, value) { + if (type == "keyword b" && value == "else") return cont(pushlex("form", "else"), statement, poplex); + } + function forspec(type, value) { + if (value == "await") return cont(forspec); + if (type == "(") return cont(pushlex(")"), forspec1, poplex); + } + function forspec1(type) { + if (type == "var") return cont(vardef, forspec2); + if (type == "variable") return cont(forspec2); + return pass(forspec2) + } + function forspec2(type, value) { + if (type == ")") return cont() + if (type == ";") return cont(forspec2) + if (value == "in" || value == "of") { cx.marked = "keyword"; return cont(expression, forspec2) } + return pass(expression, forspec2) + } + function functiondef(type, value) { + if (value == "*") {cx.marked = "keyword"; return cont(functiondef);} + if (type == "variable") {register(value); return cont(functiondef);} + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, statement, popcontext); + if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondef) + } + function functiondecl(type, value) { + if (value == "*") {cx.marked = "keyword"; return cont(functiondecl);} + if (type == "variable") {register(value); return cont(functiondecl);} + if (type == "(") return cont(pushcontext, pushlex(")"), commasep(funarg, ")"), poplex, mayberettype, popcontext); + if (isTS && value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, functiondecl) + } + function typename(type, value) { + if (type == "keyword" || type == "variable") { + cx.marked = "type" + return cont(typename) + } else if (value == "<") { + return cont(pushlex(">"), commasep(typeparam, ">"), poplex) + } + } + function funarg(type, value) { + if (value == "@") cont(expression, funarg) + if (type == "spread") return cont(funarg); + if (isTS && isModifier(value)) { cx.marked = "keyword"; return cont(funarg); } + if (isTS && type == "this") return cont(maybetype, maybeAssign) + return pass(pattern, maybetype, maybeAssign); + } + function classExpression(type, value) { + // Class expressions may have an optional name. + if (type == "variable") return className(type, value); + return classNameAfter(type, value); + } + function className(type, value) { + if (type == "variable") {register(value); return cont(classNameAfter);} + } + function classNameAfter(type, value) { + if (value == "<") return cont(pushlex(">"), commasep(typeparam, ">"), poplex, classNameAfter) + if (value == "extends" || value == "implements" || (isTS && type == ",")) { + if (value == "implements") cx.marked = "keyword"; + return cont(isTS ? typeexpr : expression, classNameAfter); + } + if (type == "{") return cont(pushlex("}"), classBody, poplex); + } + function classBody(type, value) { + if (type == "async" || + (type == "variable" && + (value == "static" || value == "get" || value == "set" || (isTS && isModifier(value))) && + cx.stream.match(/^\s+[\w$\xa1-\uffff]/, false))) { + cx.marked = "keyword"; + return cont(classBody); + } + if (type == "variable" || cx.style == "keyword") { + cx.marked = "property"; + return cont(classfield, classBody); + } + if (type == "number" || type == "string") return cont(classfield, classBody); + if (type == "[") + return cont(expression, maybetype, expect("]"), classfield, classBody) + if (value == "*") { + cx.marked = "keyword"; + return cont(classBody); + } + if (isTS && type == "(") return pass(functiondecl, classBody) + if (type == ";" || type == ",") return cont(classBody); + if (type == "}") return cont(); + if (value == "@") return cont(expression, classBody) + } + function classfield(type, value) { + if (value == "?") return cont(classfield) + if (type == ":") return cont(typeexpr, maybeAssign) + if (value == "=") return cont(expressionNoComma) + var context = cx.state.lexical.prev, isInterface = context && context.info == "interface" + return pass(isInterface ? functiondecl : functiondef) + } + function afterExport(type, value) { + if (value == "*") { cx.marked = "keyword"; return cont(maybeFrom, expect(";")); } + if (value == "default") { cx.marked = "keyword"; return cont(expression, expect(";")); } + if (type == "{") return cont(commasep(exportField, "}"), maybeFrom, expect(";")); + return pass(statement); + } + function exportField(type, value) { + if (value == "as") { cx.marked = "keyword"; return cont(expect("variable")); } + if (type == "variable") return pass(expressionNoComma, exportField); + } + function afterImport(type) { + if (type == "string") return cont(); + if (type == "(") return pass(expression); + return pass(importSpec, maybeMoreImports, maybeFrom); + } + function importSpec(type, value) { + if (type == "{") return contCommasep(importSpec, "}"); + if (type == "variable") register(value); + if (value == "*") cx.marked = "keyword"; + return cont(maybeAs); + } + function maybeMoreImports(type) { + if (type == ",") return cont(importSpec, maybeMoreImports) + } + function maybeAs(_type, value) { + if (value == "as") { cx.marked = "keyword"; return cont(importSpec); } + } + function maybeFrom(_type, value) { + if (value == "from") { cx.marked = "keyword"; return cont(expression); } + } + function arrayLiteral(type) { + if (type == "]") return cont(); + return pass(commasep(expressionNoComma, "]")); + } + function enumdef() { + return pass(pushlex("form"), pattern, expect("{"), pushlex("}"), commasep(enummember, "}"), poplex, poplex) + } + function enummember() { + return pass(pattern, maybeAssign); + } + + function isContinuedStatement(state, textAfter) { + return state.lastType == "operator" || state.lastType == "," || + isOperatorChar.test(textAfter.charAt(0)) || + /[,.]/.test(textAfter.charAt(0)); + } + + function expressionAllowed(stream, state, backUp) { + return state.tokenize == tokenBase && + /^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(state.lastType) || + (state.lastType == "quasi" && /\{\s*$/.test(stream.string.slice(0, stream.pos - (backUp || 0)))) + } + + // Interface + + return { + startState: function(basecolumn) { + var state = { + tokenize: tokenBase, + lastType: "sof", + cc: [], + lexical: new JSLexical((basecolumn || 0) - indentUnit, 0, "block", false), + localVars: parserConfig.localVars, + context: parserConfig.localVars && new Context(null, null, false), + indented: basecolumn || 0 + }; + if (parserConfig.globalVars && typeof parserConfig.globalVars == "object") + state.globalVars = parserConfig.globalVars; + return state; + }, + + token: function(stream, state) { + if (stream.sol()) { + if (!state.lexical.hasOwnProperty("align")) + state.lexical.align = false; + state.indented = stream.indentation(); + findFatArrow(stream, state); + } + if (state.tokenize != tokenComment && stream.eatSpace()) return null; + var style = state.tokenize(stream, state); + if (type == "comment") return style; + state.lastType = type == "operator" && (content == "++" || content == "--") ? "incdec" : type; + return parseJS(state, style, type, content, stream); + }, + + indent: function(state, textAfter) { + if (state.tokenize == tokenComment) return CodeMirror.Pass; + if (state.tokenize != tokenBase) return 0; + var firstChar = textAfter && textAfter.charAt(0), lexical = state.lexical, top + // Kludge to prevent 'maybelse' from blocking lexical scope pops + if (!/^\s*else\b/.test(textAfter)) for (var i = state.cc.length - 1; i >= 0; --i) { + var c = state.cc[i]; + if (c == poplex) lexical = lexical.prev; + else if (c != maybeelse) break; + } + while ((lexical.type == "stat" || lexical.type == "form") && + (firstChar == "}" || ((top = state.cc[state.cc.length - 1]) && + (top == maybeoperatorComma || top == maybeoperatorNoComma) && + !/^[,\.=+\-*:?[\(]/.test(textAfter)))) + lexical = lexical.prev; + if (statementIndent && lexical.type == ")" && lexical.prev.type == "stat") + lexical = lexical.prev; + var type = lexical.type, closing = firstChar == type; + + if (type == "vardef") return lexical.indented + (state.lastType == "operator" || state.lastType == "," ? lexical.info.length + 1 : 0); + else if (type == "form" && firstChar == "{") return lexical.indented; + else if (type == "form") return lexical.indented + indentUnit; + else if (type == "stat") + return lexical.indented + (isContinuedStatement(state, textAfter) ? statementIndent || indentUnit : 0); + else if (lexical.info == "switch" && !closing && parserConfig.doubleIndentSwitch != false) + return lexical.indented + (/^(?:case|default)\b/.test(textAfter) ? indentUnit : 2 * indentUnit); + else if (lexical.align) return lexical.column + (closing ? 0 : 1); + else return lexical.indented + (closing ? 0 : indentUnit); + }, + + electricInput: /^\s*(?:case .*?:|default:|\{|\})$/, + blockCommentStart: jsonMode ? null : "/*", + blockCommentEnd: jsonMode ? null : "*/", + blockCommentContinue: jsonMode ? null : " * ", + lineComment: jsonMode ? null : "//", + fold: "brace", + closeBrackets: "()[]{}''\"\"``", + + helperType: jsonMode ? "json" : "javascript", + jsonldMode: jsonldMode, + jsonMode: jsonMode, + + expressionAllowed: expressionAllowed, + + skipExpression: function(state) { + var top = state.cc[state.cc.length - 1] + if (top == expression || top == expressionNoComma) state.cc.pop() + } + }; +}); + +CodeMirror.registerHelper("wordChars", "javascript", /[\w$]/); + +CodeMirror.defineMIME("text/javascript", "javascript"); +CodeMirror.defineMIME("text/ecmascript", "javascript"); +CodeMirror.defineMIME("application/javascript", "javascript"); +CodeMirror.defineMIME("application/x-javascript", "javascript"); +CodeMirror.defineMIME("application/ecmascript", "javascript"); +CodeMirror.defineMIME("application/json", {name: "javascript", json: true}); +CodeMirror.defineMIME("application/x-json", {name: "javascript", json: true}); +CodeMirror.defineMIME("application/ld+json", {name: "javascript", jsonld: true}); +CodeMirror.defineMIME("text/typescript", { name: "javascript", typescript: true }); +CodeMirror.defineMIME("application/typescript", { name: "javascript", typescript: true }); + +}); + +},{"../../lib/codemirror":111}],113:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'); + +module.exports = DataView; + +},{"./_getNative":196,"./_root":239}],114:[function(require,module,exports){ +var hashClear = require('./_hashClear'), + hashDelete = require('./_hashDelete'), + hashGet = require('./_hashGet'), + hashHas = require('./_hashHas'), + hashSet = require('./_hashSet'); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; + +},{"./_hashClear":204,"./_hashDelete":205,"./_hashGet":206,"./_hashHas":207,"./_hashSet":208}],115:[function(require,module,exports){ +var listCacheClear = require('./_listCacheClear'), + listCacheDelete = require('./_listCacheDelete'), + listCacheGet = require('./_listCacheGet'), + listCacheHas = require('./_listCacheHas'), + listCacheSet = require('./_listCacheSet'); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + +},{"./_listCacheClear":219,"./_listCacheDelete":220,"./_listCacheGet":221,"./_listCacheHas":222,"./_listCacheSet":223}],116:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + +},{"./_getNative":196,"./_root":239}],117:[function(require,module,exports){ +var mapCacheClear = require('./_mapCacheClear'), + mapCacheDelete = require('./_mapCacheDelete'), + mapCacheGet = require('./_mapCacheGet'), + mapCacheHas = require('./_mapCacheHas'), + mapCacheSet = require('./_mapCacheSet'); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + +},{"./_mapCacheClear":224,"./_mapCacheDelete":225,"./_mapCacheGet":226,"./_mapCacheHas":227,"./_mapCacheSet":228}],118:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Promise = getNative(root, 'Promise'); + +module.exports = Promise; + +},{"./_getNative":196,"./_root":239}],119:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Set = getNative(root, 'Set'); + +module.exports = Set; + +},{"./_getNative":196,"./_root":239}],120:[function(require,module,exports){ +var MapCache = require('./_MapCache'), + setCacheAdd = require('./_setCacheAdd'), + setCacheHas = require('./_setCacheHas'); + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +module.exports = SetCache; + +},{"./_MapCache":117,"./_setCacheAdd":241,"./_setCacheHas":242}],121:[function(require,module,exports){ +var ListCache = require('./_ListCache'), + stackClear = require('./_stackClear'), + stackDelete = require('./_stackDelete'), + stackGet = require('./_stackGet'), + stackHas = require('./_stackHas'), + stackSet = require('./_stackSet'); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + +},{"./_ListCache":115,"./_stackClear":246,"./_stackDelete":247,"./_stackGet":248,"./_stackHas":249,"./_stackSet":250}],122:[function(require,module,exports){ +var root = require('./_root'); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + +},{"./_root":239}],123:[function(require,module,exports){ +var root = require('./_root'); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; + +},{"./_root":239}],124:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root, 'WeakMap'); + +module.exports = WeakMap; + +},{"./_getNative":196,"./_root":239}],125:[function(require,module,exports){ +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +module.exports = apply; + +},{}],126:[function(require,module,exports){ +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; + +},{}],127:[function(require,module,exports){ +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = arrayFilter; + +},{}],128:[function(require,module,exports){ +var baseTimes = require('./_baseTimes'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isIndex = require('./_isIndex'), + isTypedArray = require('./isTypedArray'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; + +},{"./_baseTimes":167,"./_isIndex":212,"./isArguments":264,"./isArray":265,"./isBuffer":268,"./isTypedArray":278}],129:[function(require,module,exports){ +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + +},{}],130:[function(require,module,exports){ +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; + +},{}],131:[function(require,module,exports){ +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + +},{}],132:[function(require,module,exports){ +var baseAssignValue = require('./_baseAssignValue'), + eq = require('./eq'); + +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignMergeValue; + +},{"./_baseAssignValue":137,"./eq":258}],133:[function(require,module,exports){ +var baseAssignValue = require('./_baseAssignValue'), + eq = require('./eq'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignValue; + +},{"./_baseAssignValue":137,"./eq":258}],134:[function(require,module,exports){ +var eq = require('./eq'); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + +},{"./eq":258}],135:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + keys = require('./keys'); + +/** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); +} + +module.exports = baseAssign; + +},{"./_copyObject":180,"./keys":280}],136:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + keysIn = require('./keysIn'); + +/** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); +} + +module.exports = baseAssignIn; + +},{"./_copyObject":180,"./keysIn":281}],137:[function(require,module,exports){ +var defineProperty = require('./_defineProperty'); + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +module.exports = baseAssignValue; + +},{"./_defineProperty":187}],138:[function(require,module,exports){ +var Stack = require('./_Stack'), + arrayEach = require('./_arrayEach'), + assignValue = require('./_assignValue'), + baseAssign = require('./_baseAssign'), + baseAssignIn = require('./_baseAssignIn'), + cloneBuffer = require('./_cloneBuffer'), + copyArray = require('./_copyArray'), + copySymbols = require('./_copySymbols'), + copySymbolsIn = require('./_copySymbolsIn'), + getAllKeys = require('./_getAllKeys'), + getAllKeysIn = require('./_getAllKeysIn'), + getTag = require('./_getTag'), + initCloneArray = require('./_initCloneArray'), + initCloneByTag = require('./_initCloneByTag'), + initCloneObject = require('./_initCloneObject'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isMap = require('./isMap'), + isObject = require('./isObject'), + isSet = require('./isSet'), + keys = require('./keys'), + keysIn = require('./keysIn'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG = 4; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values supported by `_.clone`. */ +var cloneableTags = {}; +cloneableTags[argsTag] = cloneableTags[arrayTag] = +cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = +cloneableTags[boolTag] = cloneableTags[dateTag] = +cloneableTags[float32Tag] = cloneableTags[float64Tag] = +cloneableTags[int8Tag] = cloneableTags[int16Tag] = +cloneableTags[int32Tag] = cloneableTags[mapTag] = +cloneableTags[numberTag] = cloneableTags[objectTag] = +cloneableTags[regexpTag] = cloneableTags[setTag] = +cloneableTags[stringTag] = cloneableTags[symbolTag] = +cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = +cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag] = cloneableTags[funcTag] = +cloneableTags[weakMapTag] = false; + +/** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ +function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG, + isFlat = bitmask & CLONE_FLAT_FLAG, + isFull = bitmask & CLONE_SYMBOLS_FLAG; + + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), + isFunc = tag == funcTag || tag == genTag; + + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + result = (isFlat || isFunc) ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat + ? copySymbolsIn(value, baseAssignIn(result, value)) + : copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + + if (isSet(value)) { + value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap(value)) { + value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + } + + var keysFunc = isFull + ? (isFlat ? getAllKeysIn : getAllKeys) + : (isFlat ? keysIn : keys); + + var props = isArr ? undefined : keysFunc(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; +} + +module.exports = baseClone; + +},{"./_Stack":121,"./_arrayEach":126,"./_assignValue":133,"./_baseAssign":135,"./_baseAssignIn":136,"./_cloneBuffer":174,"./_copyArray":179,"./_copySymbols":181,"./_copySymbolsIn":182,"./_getAllKeys":192,"./_getAllKeysIn":193,"./_getTag":201,"./_initCloneArray":209,"./_initCloneByTag":210,"./_initCloneObject":211,"./isArray":265,"./isBuffer":268,"./isMap":271,"./isObject":272,"./isSet":275,"./keys":280,"./keysIn":281}],139:[function(require,module,exports){ +var isObject = require('./isObject'); + +/** Built-in value references. */ +var objectCreate = Object.create; + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +module.exports = baseCreate; + +},{"./isObject":272}],140:[function(require,module,exports){ +var baseForOwn = require('./_baseForOwn'), + createBaseEach = require('./_createBaseEach'); + +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; + +},{"./_baseForOwn":142,"./_createBaseEach":185}],141:[function(require,module,exports){ +var createBaseFor = require('./_createBaseFor'); + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + +},{"./_createBaseFor":186}],142:[function(require,module,exports){ +var baseFor = require('./_baseFor'), + keys = require('./keys'); + +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; + +},{"./_baseFor":141,"./keys":280}],143:[function(require,module,exports){ +var castPath = require('./_castPath'), + toKey = require('./_toKey'); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + +},{"./_castPath":172,"./_toKey":252}],144:[function(require,module,exports){ +var arrayPush = require('./_arrayPush'), + isArray = require('./isArray'); + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +module.exports = baseGetAllKeys; + +},{"./_arrayPush":130,"./isArray":265}],145:[function(require,module,exports){ +var Symbol = require('./_Symbol'), + getRawTag = require('./_getRawTag'), + objectToString = require('./_objectToString'); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + +},{"./_Symbol":122,"./_getRawTag":198,"./_objectToString":236}],146:[function(require,module,exports){ +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + +},{}],147:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + +},{"./_baseGetTag":145,"./isObjectLike":273}],148:[function(require,module,exports){ +var baseIsEqualDeep = require('./_baseIsEqualDeep'), + isObjectLike = require('./isObjectLike'); + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +module.exports = baseIsEqual; + +},{"./_baseIsEqualDeep":149,"./isObjectLike":273}],149:[function(require,module,exports){ +var Stack = require('./_Stack'), + equalArrays = require('./_equalArrays'), + equalByTag = require('./_equalByTag'), + equalObjects = require('./_equalObjects'), + getTag = require('./_getTag'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isTypedArray = require('./isTypedArray'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +module.exports = baseIsEqualDeep; + +},{"./_Stack":121,"./_equalArrays":188,"./_equalByTag":189,"./_equalObjects":190,"./_getTag":201,"./isArray":265,"./isBuffer":268,"./isTypedArray":278}],150:[function(require,module,exports){ +var getTag = require('./_getTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]'; + +/** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ +function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; +} + +module.exports = baseIsMap; + +},{"./_getTag":201,"./isObjectLike":273}],151:[function(require,module,exports){ +var Stack = require('./_Stack'), + baseIsEqual = require('./_baseIsEqual'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + +},{"./_Stack":121,"./_baseIsEqual":148}],152:[function(require,module,exports){ +var isFunction = require('./isFunction'), + isMasked = require('./_isMasked'), + isObject = require('./isObject'), + toSource = require('./_toSource'); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; + +},{"./_isMasked":216,"./_toSource":253,"./isFunction":269,"./isObject":272}],153:[function(require,module,exports){ +var getTag = require('./_getTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var setTag = '[object Set]'; + +/** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ +function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; +} + +module.exports = baseIsSet; + +},{"./_getTag":201,"./isObjectLike":273}],154:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isLength = require('./isLength'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; + +},{"./_baseGetTag":145,"./isLength":270,"./isObjectLike":273}],155:[function(require,module,exports){ +var baseMatches = require('./_baseMatches'), + baseMatchesProperty = require('./_baseMatchesProperty'), + identity = require('./identity'), + isArray = require('./isArray'), + property = require('./property'); + +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); +} + +module.exports = baseIteratee; + +},{"./_baseMatches":159,"./_baseMatchesProperty":160,"./identity":263,"./isArray":265,"./property":286}],156:[function(require,module,exports){ +var isPrototype = require('./_isPrototype'), + nativeKeys = require('./_nativeKeys'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +module.exports = baseKeys; + +},{"./_isPrototype":217,"./_nativeKeys":233}],157:[function(require,module,exports){ +var isObject = require('./isObject'), + isPrototype = require('./_isPrototype'), + nativeKeysIn = require('./_nativeKeysIn'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = baseKeysIn; + +},{"./_isPrototype":217,"./_nativeKeysIn":234,"./isObject":272}],158:[function(require,module,exports){ +var baseEach = require('./_baseEach'), + isArrayLike = require('./isArrayLike'); + +/** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} + +module.exports = baseMap; + +},{"./_baseEach":140,"./isArrayLike":266}],159:[function(require,module,exports){ +var baseIsMatch = require('./_baseIsMatch'), + getMatchData = require('./_getMatchData'), + matchesStrictComparable = require('./_matchesStrictComparable'); + +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} + +module.exports = baseMatches; + +},{"./_baseIsMatch":151,"./_getMatchData":195,"./_matchesStrictComparable":230}],160:[function(require,module,exports){ +var baseIsEqual = require('./_baseIsEqual'), + get = require('./get'), + hasIn = require('./hasIn'), + isKey = require('./_isKey'), + isStrictComparable = require('./_isStrictComparable'), + matchesStrictComparable = require('./_matchesStrictComparable'), + toKey = require('./_toKey'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} + +module.exports = baseMatchesProperty; + +},{"./_baseIsEqual":148,"./_isKey":214,"./_isStrictComparable":218,"./_matchesStrictComparable":230,"./_toKey":252,"./get":261,"./hasIn":262}],161:[function(require,module,exports){ +var Stack = require('./_Stack'), + assignMergeValue = require('./_assignMergeValue'), + baseFor = require('./_baseFor'), + baseMergeDeep = require('./_baseMergeDeep'), + isObject = require('./isObject'), + keysIn = require('./keysIn'), + safeGet = require('./_safeGet'); + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} + +module.exports = baseMerge; + +},{"./_Stack":121,"./_assignMergeValue":132,"./_baseFor":141,"./_baseMergeDeep":162,"./_safeGet":240,"./isObject":272,"./keysIn":281}],162:[function(require,module,exports){ +var assignMergeValue = require('./_assignMergeValue'), + cloneBuffer = require('./_cloneBuffer'), + cloneTypedArray = require('./_cloneTypedArray'), + copyArray = require('./_copyArray'), + initCloneObject = require('./_initCloneObject'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isArrayLikeObject = require('./isArrayLikeObject'), + isBuffer = require('./isBuffer'), + isFunction = require('./isFunction'), + isObject = require('./isObject'), + isPlainObject = require('./isPlainObject'), + isTypedArray = require('./isTypedArray'), + safeGet = require('./_safeGet'), + toPlainObject = require('./toPlainObject'); + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); +} + +module.exports = baseMergeDeep; + +},{"./_assignMergeValue":132,"./_cloneBuffer":174,"./_cloneTypedArray":178,"./_copyArray":179,"./_initCloneObject":211,"./_safeGet":240,"./isArguments":264,"./isArray":265,"./isArrayLikeObject":267,"./isBuffer":268,"./isFunction":269,"./isObject":272,"./isPlainObject":274,"./isTypedArray":278,"./toPlainObject":291}],163:[function(require,module,exports){ +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = baseProperty; + +},{}],164:[function(require,module,exports){ +var baseGet = require('./_baseGet'); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} + +module.exports = basePropertyDeep; + +},{"./_baseGet":143}],165:[function(require,module,exports){ +var identity = require('./identity'), + overRest = require('./_overRest'), + setToString = require('./_setToString'); + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); +} + +module.exports = baseRest; + +},{"./_overRest":238,"./_setToString":244,"./identity":263}],166:[function(require,module,exports){ +var constant = require('./constant'), + defineProperty = require('./_defineProperty'), + identity = require('./identity'); + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +module.exports = baseSetToString; + +},{"./_defineProperty":187,"./constant":255,"./identity":263}],167:[function(require,module,exports){ +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; + +},{}],168:[function(require,module,exports){ +var Symbol = require('./_Symbol'), + arrayMap = require('./_arrayMap'), + isArray = require('./isArray'), + isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; + +},{"./_Symbol":122,"./_arrayMap":129,"./isArray":265,"./isSymbol":277}],169:[function(require,module,exports){ +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; + +},{}],170:[function(require,module,exports){ +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +module.exports = cacheHas; + +},{}],171:[function(require,module,exports){ +var identity = require('./identity'); + +/** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ +function castFunction(value) { + return typeof value == 'function' ? value : identity; +} + +module.exports = castFunction; + +},{"./identity":263}],172:[function(require,module,exports){ +var isArray = require('./isArray'), + isKey = require('./_isKey'), + stringToPath = require('./_stringToPath'), + toString = require('./toString'); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; + +},{"./_isKey":214,"./_stringToPath":251,"./isArray":265,"./toString":292}],173:[function(require,module,exports){ +var Uint8Array = require('./_Uint8Array'); + +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; +} + +module.exports = cloneArrayBuffer; + +},{"./_Uint8Array":123}],174:[function(require,module,exports){ +var root = require('./_root'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; + +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; +} + +module.exports = cloneBuffer; + +},{"./_root":239}],175:[function(require,module,exports){ +var cloneArrayBuffer = require('./_cloneArrayBuffer'); + +/** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ +function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); +} + +module.exports = cloneDataView; + +},{"./_cloneArrayBuffer":173}],176:[function(require,module,exports){ +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; + +/** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ +function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; +} + +module.exports = cloneRegExp; + +},{}],177:[function(require,module,exports){ +var Symbol = require('./_Symbol'); + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ +function cloneSymbol(symbol) { + return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; +} + +module.exports = cloneSymbol; + +},{"./_Symbol":122}],178:[function(require,module,exports){ +var cloneArrayBuffer = require('./_cloneArrayBuffer'); + +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} + +module.exports = cloneTypedArray; + +},{"./_cloneArrayBuffer":173}],179:[function(require,module,exports){ +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = copyArray; + +},{}],180:[function(require,module,exports){ +var assignValue = require('./_assignValue'), + baseAssignValue = require('./_baseAssignValue'); + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} + +module.exports = copyObject; + +},{"./_assignValue":133,"./_baseAssignValue":137}],181:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + getSymbols = require('./_getSymbols'); + +/** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); +} + +module.exports = copySymbols; + +},{"./_copyObject":180,"./_getSymbols":199}],182:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + getSymbolsIn = require('./_getSymbolsIn'); + +/** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); +} + +module.exports = copySymbolsIn; + +},{"./_copyObject":180,"./_getSymbolsIn":200}],183:[function(require,module,exports){ +var root = require('./_root'); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; + +},{"./_root":239}],184:[function(require,module,exports){ +var baseRest = require('./_baseRest'), + isIterateeCall = require('./_isIterateeCall'); + +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} + +module.exports = createAssigner; + +},{"./_baseRest":165,"./_isIterateeCall":213}],185:[function(require,module,exports){ +var isArrayLike = require('./isArrayLike'); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; + +},{"./isArrayLike":266}],186:[function(require,module,exports){ +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + +},{}],187:[function(require,module,exports){ +var getNative = require('./_getNative'); + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +module.exports = defineProperty; + +},{"./_getNative":196}],188:[function(require,module,exports){ +var SetCache = require('./_SetCache'), + arraySome = require('./_arraySome'), + cacheHas = require('./_cacheHas'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +module.exports = equalArrays; + +},{"./_SetCache":120,"./_arraySome":131,"./_cacheHas":170}],189:[function(require,module,exports){ +var Symbol = require('./_Symbol'), + Uint8Array = require('./_Uint8Array'), + eq = require('./eq'), + equalArrays = require('./_equalArrays'), + mapToArray = require('./_mapToArray'), + setToArray = require('./_setToArray'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +module.exports = equalByTag; + +},{"./_Symbol":122,"./_Uint8Array":123,"./_equalArrays":188,"./_mapToArray":229,"./_setToArray":243,"./eq":258}],190:[function(require,module,exports){ +var getAllKeys = require('./_getAllKeys'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +module.exports = equalObjects; + +},{"./_getAllKeys":192}],191:[function(require,module,exports){ +(function (global){ +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{}],192:[function(require,module,exports){ +var baseGetAllKeys = require('./_baseGetAllKeys'), + getSymbols = require('./_getSymbols'), + keys = require('./keys'); + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} + +module.exports = getAllKeys; + +},{"./_baseGetAllKeys":144,"./_getSymbols":199,"./keys":280}],193:[function(require,module,exports){ +var baseGetAllKeys = require('./_baseGetAllKeys'), + getSymbolsIn = require('./_getSymbolsIn'), + keysIn = require('./keysIn'); + +/** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); +} + +module.exports = getAllKeysIn; + +},{"./_baseGetAllKeys":144,"./_getSymbolsIn":200,"./keysIn":281}],194:[function(require,module,exports){ +var isKeyable = require('./_isKeyable'); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + +},{"./_isKeyable":215}],195:[function(require,module,exports){ +var isStrictComparable = require('./_isStrictComparable'), + keys = require('./keys'); + +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} + +module.exports = getMatchData; + +},{"./_isStrictComparable":218,"./keys":280}],196:[function(require,module,exports){ +var baseIsNative = require('./_baseIsNative'), + getValue = require('./_getValue'); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + +},{"./_baseIsNative":152,"./_getValue":202}],197:[function(require,module,exports){ +var overArg = require('./_overArg'); + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +module.exports = getPrototype; + +},{"./_overArg":237}],198:[function(require,module,exports){ +var Symbol = require('./_Symbol'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; + +},{"./_Symbol":122}],199:[function(require,module,exports){ +var arrayFilter = require('./_arrayFilter'), + stubArray = require('./stubArray'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +module.exports = getSymbols; + +},{"./_arrayFilter":127,"./stubArray":287}],200:[function(require,module,exports){ +var arrayPush = require('./_arrayPush'), + getPrototype = require('./_getPrototype'), + getSymbols = require('./_getSymbols'), + stubArray = require('./stubArray'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; +}; + +module.exports = getSymbolsIn; + +},{"./_arrayPush":130,"./_getPrototype":197,"./_getSymbols":199,"./stubArray":287}],201:[function(require,module,exports){ +var DataView = require('./_DataView'), + Map = require('./_Map'), + Promise = require('./_Promise'), + Set = require('./_Set'), + WeakMap = require('./_WeakMap'), + baseGetTag = require('./_baseGetTag'), + toSource = require('./_toSource'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + +var dataViewTag = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +module.exports = getTag; + +},{"./_DataView":113,"./_Map":116,"./_Promise":118,"./_Set":119,"./_WeakMap":124,"./_baseGetTag":145,"./_toSource":253}],202:[function(require,module,exports){ +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; + +},{}],203:[function(require,module,exports){ +var castPath = require('./_castPath'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isIndex = require('./_isIndex'), + isLength = require('./isLength'), + toKey = require('./_toKey'); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; + +},{"./_castPath":172,"./_isIndex":212,"./_toKey":252,"./isArguments":264,"./isArray":265,"./isLength":270}],204:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; + +},{"./_nativeCreate":232}],205:[function(require,module,exports){ +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; + +},{}],206:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; + +},{"./_nativeCreate":232}],207:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; + +},{"./_nativeCreate":232}],208:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; + +},{"./_nativeCreate":232}],209:[function(require,module,exports){ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ +function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; +} + +module.exports = initCloneArray; + +},{}],210:[function(require,module,exports){ +var cloneArrayBuffer = require('./_cloneArrayBuffer'), + cloneDataView = require('./_cloneDataView'), + cloneRegExp = require('./_cloneRegExp'), + cloneSymbol = require('./_cloneSymbol'), + cloneTypedArray = require('./_cloneTypedArray'); + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case dataViewTag: + return cloneDataView(object, isDeep); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + return cloneTypedArray(object, isDeep); + + case mapTag: + return new Ctor; + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + return cloneRegExp(object); + + case setTag: + return new Ctor; + + case symbolTag: + return cloneSymbol(object); + } +} + +module.exports = initCloneByTag; + +},{"./_cloneArrayBuffer":173,"./_cloneDataView":175,"./_cloneRegExp":176,"./_cloneSymbol":177,"./_cloneTypedArray":178}],211:[function(require,module,exports){ +var baseCreate = require('./_baseCreate'), + getPrototype = require('./_getPrototype'), + isPrototype = require('./_isPrototype'); + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; +} + +module.exports = initCloneObject; + +},{"./_baseCreate":139,"./_getPrototype":197,"./_isPrototype":217}],212:[function(require,module,exports){ +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + +},{}],213:[function(require,module,exports){ +var eq = require('./eq'), + isArrayLike = require('./isArrayLike'), + isIndex = require('./_isIndex'), + isObject = require('./isObject'); + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +module.exports = isIterateeCall; + +},{"./_isIndex":212,"./eq":258,"./isArrayLike":266,"./isObject":272}],214:[function(require,module,exports){ +var isArray = require('./isArray'), + isSymbol = require('./isSymbol'); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + +},{"./isArray":265,"./isSymbol":277}],215:[function(require,module,exports){ +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; + +},{}],216:[function(require,module,exports){ +var coreJsData = require('./_coreJsData'); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; + +},{"./_coreJsData":183}],217:[function(require,module,exports){ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; + +},{}],218:[function(require,module,exports){ +var isObject = require('./isObject'); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + +},{"./isObject":272}],219:[function(require,module,exports){ +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; + +},{}],220:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; + +},{"./_assocIndexOf":134}],221:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; + +},{"./_assocIndexOf":134}],222:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; + +},{"./_assocIndexOf":134}],223:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; + +},{"./_assocIndexOf":134}],224:[function(require,module,exports){ +var Hash = require('./_Hash'), + ListCache = require('./_ListCache'), + Map = require('./_Map'); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; + +},{"./_Hash":114,"./_ListCache":115,"./_Map":116}],225:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; + +},{"./_getMapData":194}],226:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; + +},{"./_getMapData":194}],227:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; + +},{"./_getMapData":194}],228:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; + +},{"./_getMapData":194}],229:[function(require,module,exports){ +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +module.exports = mapToArray; + +},{}],230:[function(require,module,exports){ +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; +} + +module.exports = matchesStrictComparable; + +},{}],231:[function(require,module,exports){ +var memoize = require('./memoize'); + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +module.exports = memoizeCapped; + +},{"./memoize":283}],232:[function(require,module,exports){ +var getNative = require('./_getNative'); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + +},{"./_getNative":196}],233:[function(require,module,exports){ +var overArg = require('./_overArg'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); + +module.exports = nativeKeys; + +},{"./_overArg":237}],234:[function(require,module,exports){ +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +module.exports = nativeKeysIn; + +},{}],235:[function(require,module,exports){ +var freeGlobal = require('./_freeGlobal'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; + +},{"./_freeGlobal":191}],236:[function(require,module,exports){ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; + +},{}],237:[function(require,module,exports){ +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; + +},{}],238:[function(require,module,exports){ +var apply = require('./_apply'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +module.exports = overRest; + +},{"./_apply":125}],239:[function(require,module,exports){ +var freeGlobal = require('./_freeGlobal'); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + +},{"./_freeGlobal":191}],240:[function(require,module,exports){ +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; + } + + if (key == '__proto__') { + return; + } + + return object[key]; +} + +module.exports = safeGet; + +},{}],241:[function(require,module,exports){ +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +module.exports = setCacheAdd; + +},{}],242:[function(require,module,exports){ +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +module.exports = setCacheHas; + +},{}],243:[function(require,module,exports){ +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +module.exports = setToArray; + +},{}],244:[function(require,module,exports){ +var baseSetToString = require('./_baseSetToString'), + shortOut = require('./_shortOut'); + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +module.exports = setToString; + +},{"./_baseSetToString":166,"./_shortOut":245}],245:[function(require,module,exports){ +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +module.exports = shortOut; + +},{}],246:[function(require,module,exports){ +var ListCache = require('./_ListCache'); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; + +},{"./_ListCache":115}],247:[function(require,module,exports){ +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; + +},{}],248:[function(require,module,exports){ +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; + +},{}],249:[function(require,module,exports){ +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; + +},{}],250:[function(require,module,exports){ +var ListCache = require('./_ListCache'), + Map = require('./_Map'), + MapCache = require('./_MapCache'); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; + +},{"./_ListCache":115,"./_Map":116,"./_MapCache":117}],251:[function(require,module,exports){ +var memoizeCapped = require('./_memoizeCapped'); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +module.exports = stringToPath; + +},{"./_memoizeCapped":231}],252:[function(require,module,exports){ +var isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + +},{"./isSymbol":277}],253:[function(require,module,exports){ +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; + +},{}],254:[function(require,module,exports){ +var baseClone = require('./_baseClone'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_SYMBOLS_FLAG = 4; + +/** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ +function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); +} + +module.exports = cloneDeep; + +},{"./_baseClone":138}],255:[function(require,module,exports){ +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +module.exports = constant; + +},{}],256:[function(require,module,exports){ +var isObject = require('./isObject'), + now = require('./now'), + toNumber = require('./toNumber'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} + +module.exports = debounce; + +},{"./isObject":272,"./now":285,"./toNumber":290}],257:[function(require,module,exports){ +module.exports = require('./forEach'); + +},{"./forEach":259}],258:[function(require,module,exports){ +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + +},{}],259:[function(require,module,exports){ +var arrayEach = require('./_arrayEach'), + baseEach = require('./_baseEach'), + castFunction = require('./_castFunction'), + isArray = require('./isArray'); + +/** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, castFunction(iteratee)); +} + +module.exports = forEach; + +},{"./_arrayEach":126,"./_baseEach":140,"./_castFunction":171,"./isArray":265}],260:[function(require,module,exports){ +var baseForOwn = require('./_baseForOwn'), + castFunction = require('./_castFunction'); + +/** + * Iterates over own enumerable string keyed properties of an object and + * invokes `iteratee` for each property. The iteratee is invoked with three + * arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwnRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forOwn(object, iteratee) { + return object && baseForOwn(object, castFunction(iteratee)); +} + +module.exports = forOwn; + +},{"./_baseForOwn":142,"./_castFunction":171}],261:[function(require,module,exports){ +var baseGet = require('./_baseGet'); + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; + +},{"./_baseGet":143}],262:[function(require,module,exports){ +var baseHasIn = require('./_baseHasIn'), + hasPath = require('./_hasPath'); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; + +},{"./_baseHasIn":146,"./_hasPath":203}],263:[function(require,module,exports){ +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + +},{}],264:[function(require,module,exports){ +var baseIsArguments = require('./_baseIsArguments'), + isObjectLike = require('./isObjectLike'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + +},{"./_baseIsArguments":147,"./isObjectLike":273}],265:[function(require,module,exports){ +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + +},{}],266:[function(require,module,exports){ +var isFunction = require('./isFunction'), + isLength = require('./isLength'); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + +},{"./isFunction":269,"./isLength":270}],267:[function(require,module,exports){ +var isArrayLike = require('./isArrayLike'), + isObjectLike = require('./isObjectLike'); + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +module.exports = isArrayLikeObject; + +},{"./isArrayLike":266,"./isObjectLike":273}],268:[function(require,module,exports){ +var root = require('./_root'), + stubFalse = require('./stubFalse'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; + +},{"./_root":239,"./stubFalse":288}],269:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isObject = require('./isObject'); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; + +},{"./_baseGetTag":145,"./isObject":272}],270:[function(require,module,exports){ +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + +},{}],271:[function(require,module,exports){ +var baseIsMap = require('./_baseIsMap'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsMap = nodeUtil && nodeUtil.isMap; + +/** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ +var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + +module.exports = isMap; + +},{"./_baseIsMap":150,"./_baseUnary":169,"./_nodeUtil":235}],272:[function(require,module,exports){ +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + +},{}],273:[function(require,module,exports){ +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + +},{}],274:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + getPrototype = require('./_getPrototype'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +module.exports = isPlainObject; + +},{"./_baseGetTag":145,"./_getPrototype":197,"./isObjectLike":273}],275:[function(require,module,exports){ +var baseIsSet = require('./_baseIsSet'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsSet = nodeUtil && nodeUtil.isSet; + +/** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ +var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + +module.exports = isSet; + +},{"./_baseIsSet":153,"./_baseUnary":169,"./_nodeUtil":235}],276:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isArray = require('./isArray'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); +} + +module.exports = isString; + +},{"./_baseGetTag":145,"./isArray":265,"./isObjectLike":273}],277:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + +},{"./_baseGetTag":145,"./isObjectLike":273}],278:[function(require,module,exports){ +var baseIsTypedArray = require('./_baseIsTypedArray'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; + +},{"./_baseIsTypedArray":154,"./_baseUnary":169,"./_nodeUtil":235}],279:[function(require,module,exports){ +/** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ +function isUndefined(value) { + return value === undefined; +} + +module.exports = isUndefined; + +},{}],280:[function(require,module,exports){ +var arrayLikeKeys = require('./_arrayLikeKeys'), + baseKeys = require('./_baseKeys'), + isArrayLike = require('./isArrayLike'); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +module.exports = keys; + +},{"./_arrayLikeKeys":128,"./_baseKeys":156,"./isArrayLike":266}],281:[function(require,module,exports){ +var arrayLikeKeys = require('./_arrayLikeKeys'), + baseKeysIn = require('./_baseKeysIn'), + isArrayLike = require('./isArrayLike'); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +module.exports = keysIn; + +},{"./_arrayLikeKeys":128,"./_baseKeysIn":157,"./isArrayLike":266}],282:[function(require,module,exports){ +var arrayMap = require('./_arrayMap'), + baseIteratee = require('./_baseIteratee'), + baseMap = require('./_baseMap'), + isArray = require('./isArray'); + +/** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ +function map(collection, iteratee) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, baseIteratee(iteratee, 3)); +} + +module.exports = map; + +},{"./_arrayMap":129,"./_baseIteratee":155,"./_baseMap":158,"./isArray":265}],283:[function(require,module,exports){ +var MapCache = require('./_MapCache'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; + +},{"./_MapCache":117}],284:[function(require,module,exports){ +var baseMerge = require('./_baseMerge'), + createAssigner = require('./_createAssigner'); + +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ +var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); +}); + +module.exports = merge; + +},{"./_baseMerge":161,"./_createAssigner":184}],285:[function(require,module,exports){ +var root = require('./_root'); + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function() { + return root.Date.now(); +}; + +module.exports = now; + +},{"./_root":239}],286:[function(require,module,exports){ +var baseProperty = require('./_baseProperty'), + basePropertyDeep = require('./_basePropertyDeep'), + isKey = require('./_isKey'), + toKey = require('./_toKey'); + +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); +} + +module.exports = property; + +},{"./_baseProperty":163,"./_basePropertyDeep":164,"./_isKey":214,"./_toKey":252}],287:[function(require,module,exports){ +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} + +module.exports = stubArray; + +},{}],288:[function(require,module,exports){ +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = stubFalse; + +},{}],289:[function(require,module,exports){ +var debounce = require('./debounce'), + isObject = require('./isObject'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ +function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + 'leading': leading, + 'maxWait': wait, + 'trailing': trailing + }); +} + +module.exports = throttle; + +},{"./debounce":256,"./isObject":272}],290:[function(require,module,exports){ +var isObject = require('./isObject'), + isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** Used to match leading and trailing whitespace. */ +var reTrim = /^\s+|\s+$/g; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +module.exports = toNumber; + +},{"./isObject":272,"./isSymbol":277}],291:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + keysIn = require('./keysIn'); + +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ +function toPlainObject(value) { + return copyObject(value, keysIn(value)); +} + +module.exports = toPlainObject; + +},{"./_copyObject":180,"./keysIn":281}],292:[function(require,module,exports){ +var baseToString = require('./_baseToString'); + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +module.exports = toString; + +},{"./_baseToString":168}],293:[function(require,module,exports){ +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + define([], factory); + } else if (typeof exports === 'object') { + module.exports = factory(); + } else { + root.materialColors = factory(); + } +})(this, function() { + return {"red":{"50":"#ffebee","100":"#ffcdd2","200":"#ef9a9a","300":"#e57373","400":"#ef5350","500":"#f44336","600":"#e53935","700":"#d32f2f","800":"#c62828","900":"#b71c1c","a100":"#ff8a80","a200":"#ff5252","a400":"#ff1744","a700":"#d50000"},"pink":{"50":"#fce4ec","100":"#f8bbd0","200":"#f48fb1","300":"#f06292","400":"#ec407a","500":"#e91e63","600":"#d81b60","700":"#c2185b","800":"#ad1457","900":"#880e4f","a100":"#ff80ab","a200":"#ff4081","a400":"#f50057","a700":"#c51162"},"purple":{"50":"#f3e5f5","100":"#e1bee7","200":"#ce93d8","300":"#ba68c8","400":"#ab47bc","500":"#9c27b0","600":"#8e24aa","700":"#7b1fa2","800":"#6a1b9a","900":"#4a148c","a100":"#ea80fc","a200":"#e040fb","a400":"#d500f9","a700":"#aa00ff"},"deepPurple":{"50":"#ede7f6","100":"#d1c4e9","200":"#b39ddb","300":"#9575cd","400":"#7e57c2","500":"#673ab7","600":"#5e35b1","700":"#512da8","800":"#4527a0","900":"#311b92","a100":"#b388ff","a200":"#7c4dff","a400":"#651fff","a700":"#6200ea"},"indigo":{"50":"#e8eaf6","100":"#c5cae9","200":"#9fa8da","300":"#7986cb","400":"#5c6bc0","500":"#3f51b5","600":"#3949ab","700":"#303f9f","800":"#283593","900":"#1a237e","a100":"#8c9eff","a200":"#536dfe","a400":"#3d5afe","a700":"#304ffe"},"blue":{"50":"#e3f2fd","100":"#bbdefb","200":"#90caf9","300":"#64b5f6","400":"#42a5f5","500":"#2196f3","600":"#1e88e5","700":"#1976d2","800":"#1565c0","900":"#0d47a1","a100":"#82b1ff","a200":"#448aff","a400":"#2979ff","a700":"#2962ff"},"lightBlue":{"50":"#e1f5fe","100":"#b3e5fc","200":"#81d4fa","300":"#4fc3f7","400":"#29b6f6","500":"#03a9f4","600":"#039be5","700":"#0288d1","800":"#0277bd","900":"#01579b","a100":"#80d8ff","a200":"#40c4ff","a400":"#00b0ff","a700":"#0091ea"},"cyan":{"50":"#e0f7fa","100":"#b2ebf2","200":"#80deea","300":"#4dd0e1","400":"#26c6da","500":"#00bcd4","600":"#00acc1","700":"#0097a7","800":"#00838f","900":"#006064","a100":"#84ffff","a200":"#18ffff","a400":"#00e5ff","a700":"#00b8d4"},"teal":{"50":"#e0f2f1","100":"#b2dfdb","200":"#80cbc4","300":"#4db6ac","400":"#26a69a","500":"#009688","600":"#00897b","700":"#00796b","800":"#00695c","900":"#004d40","a100":"#a7ffeb","a200":"#64ffda","a400":"#1de9b6","a700":"#00bfa5"},"green":{"50":"#e8f5e9","100":"#c8e6c9","200":"#a5d6a7","300":"#81c784","400":"#66bb6a","500":"#4caf50","600":"#43a047","700":"#388e3c","800":"#2e7d32","900":"#1b5e20","a100":"#b9f6ca","a200":"#69f0ae","a400":"#00e676","a700":"#00c853"},"lightGreen":{"50":"#f1f8e9","100":"#dcedc8","200":"#c5e1a5","300":"#aed581","400":"#9ccc65","500":"#8bc34a","600":"#7cb342","700":"#689f38","800":"#558b2f","900":"#33691e","a100":"#ccff90","a200":"#b2ff59","a400":"#76ff03","a700":"#64dd17"},"lime":{"50":"#f9fbe7","100":"#f0f4c3","200":"#e6ee9c","300":"#dce775","400":"#d4e157","500":"#cddc39","600":"#c0ca33","700":"#afb42b","800":"#9e9d24","900":"#827717","a100":"#f4ff81","a200":"#eeff41","a400":"#c6ff00","a700":"#aeea00"},"yellow":{"50":"#fffde7","100":"#fff9c4","200":"#fff59d","300":"#fff176","400":"#ffee58","500":"#ffeb3b","600":"#fdd835","700":"#fbc02d","800":"#f9a825","900":"#f57f17","a100":"#ffff8d","a200":"#ffff00","a400":"#ffea00","a700":"#ffd600"},"amber":{"50":"#fff8e1","100":"#ffecb3","200":"#ffe082","300":"#ffd54f","400":"#ffca28","500":"#ffc107","600":"#ffb300","700":"#ffa000","800":"#ff8f00","900":"#ff6f00","a100":"#ffe57f","a200":"#ffd740","a400":"#ffc400","a700":"#ffab00"},"orange":{"50":"#fff3e0","100":"#ffe0b2","200":"#ffcc80","300":"#ffb74d","400":"#ffa726","500":"#ff9800","600":"#fb8c00","700":"#f57c00","800":"#ef6c00","900":"#e65100","a100":"#ffd180","a200":"#ffab40","a400":"#ff9100","a700":"#ff6d00"},"deepOrange":{"50":"#fbe9e7","100":"#ffccbc","200":"#ffab91","300":"#ff8a65","400":"#ff7043","500":"#ff5722","600":"#f4511e","700":"#e64a19","800":"#d84315","900":"#bf360c","a100":"#ff9e80","a200":"#ff6e40","a400":"#ff3d00","a700":"#dd2c00"},"brown":{"50":"#efebe9","100":"#d7ccc8","200":"#bcaaa4","300":"#a1887f","400":"#8d6e63","500":"#795548","600":"#6d4c41","700":"#5d4037","800":"#4e342e","900":"#3e2723"},"grey":{"50":"#fafafa","100":"#f5f5f5","200":"#eeeeee","300":"#e0e0e0","400":"#bdbdbd","500":"#9e9e9e","600":"#757575","700":"#616161","800":"#424242","900":"#212121"},"blueGrey":{"50":"#eceff1","100":"#cfd8dc","200":"#b0bec5","300":"#90a4ae","400":"#78909c","500":"#607d8b","600":"#546e7a","700":"#455a64","800":"#37474f","900":"#263238"},"darkText":{"primary":"rgba(0, 0, 0, 0.87)","secondary":"rgba(0, 0, 0, 0.54)","disabled":"rgba(0, 0, 0, 0.38)","dividers":"rgba(0, 0, 0, 0.12)"},"lightText":{"primary":"rgba(255, 255, 255, 1)","secondary":"rgba(255, 255, 255, 0.7)","disabled":"rgba(255, 255, 255, 0.5)","dividers":"rgba(255, 255, 255, 0.12)"},"darkIcons":{"active":"rgba(0, 0, 0, 0.54)","inactive":"rgba(0, 0, 0, 0.38)"},"lightIcons":{"active":"rgba(255, 255, 255, 1)","inactive":"rgba(255, 255, 255, 0.5)"},"white":"#ffffff","black":"#000000"}; +}); + +},{}],294:[function(require,module,exports){ +/* object-assign (c) Sindre Sorhus @license MIT */ -'use strict';var _0x13c4e0=Object[_0x25cb3e('0x5e2')],_0x36daff=Object[_0x25cb3e('0xe02')][_0x25cb3e('0xe9c')],_0xa72e14=Object['prototype'][_0x25cb3e('0x166')];function _0x29f70c(_0x52a334){var _0x35c13f=_0x25cb3e;if(null==_0x52a334)throw new TypeError(_0x35c13f('0xf3f'));return Object(_0x52a334);}_0x6194ed[_0x25cb3e('0x64')]=function(){var _0x57d07e=_0x25cb3e;try{if(!Object['assign'])return!0x1;var _0x587f82=new String(_0x57d07e('0xc57'));if(_0x587f82[0x5]='de','5'===Object[_0x57d07e('0x14a')](_0x587f82)[0x0])return!0x1;for(var _0x36410d={},_0x1d95d7=0x0;_0x1d95d7<0xa;_0x1d95d7++)_0x36410d['_'+String[_0x57d07e('0x1006')](_0x1d95d7)]=_0x1d95d7;if(_0x57d07e('0x41e')!==Object[_0x57d07e('0x14a')](_0x36410d)[_0x57d07e('0xd8e')](function(_0x182254){return _0x36410d[_0x182254];})[_0x57d07e('0x2e2')](''))return!0x1;var _0xc78ca9={};return _0x57d07e('0x1b3')['split']('')[_0x57d07e('0xb77')](function(_0x242daf){_0xc78ca9[_0x242daf]=_0x242daf;}),_0x57d07e('0x1b3')===Object['keys'](Object['assign']({},_0xc78ca9))[_0x57d07e('0x2e2')]('');}catch(_0x860379){return!0x1;}}()?Object['assign']:function(_0x42ab68,_0x1ced37){var _0x600af4=_0x25cb3e;for(var _0x190682,_0x4bc7f5,_0x37f4de=_0x29f70c(_0x42ab68),_0x2187a9=0x1;_0x2187a9>';return new _0x17c7ca(_0x3f921a('0xf69')+_0x1f66d2+'\x20`'+_0x386b82+_0x3f921a('0xf15')+function(_0x5c20d2){var _0x1dea03=_0x3f921a;if(!_0x5c20d2[_0x1dea03('0xad1')]||!_0x5c20d2[_0x1dea03('0xad1')]['name'])return _0x1dea03('0x55b');return _0x5c20d2[_0x1dea03('0xad1')][_0x1dea03('0x3ea')];}(_0x4cb0a9[_0xa3dd62])+_0x3f921a('0x835')+_0x55cf8a+_0x3f921a('0xfc5')+_0x17a9b8+'`.');}return null;});},'node':_0x39a976(function(_0x3fdaac,_0x5353c3,_0x34bb9f,_0x50a27b,_0x336ba4){var _0x5c237b=_0x36be7f;return _0x50993b(_0x3fdaac[_0x5353c3])?null:new _0x17c7ca('Invalid\x20'+_0x50a27b+'\x20`'+_0x336ba4+_0x5c237b('0x835')+_0x34bb9f+_0x5c237b('0x16f'));}),'objectOf':function(_0x3067b7){return _0x39a976(function(_0x1662df,_0x34dda0,_0x5039cf,_0x2eb68a,_0x1026a6){var _0x4b7b17=_0x5376;if('function'!=typeof _0x3067b7)return new _0x17c7ca('Property\x20`'+_0x1026a6+_0x4b7b17('0x880')+_0x5039cf+_0x4b7b17('0xfee'));var _0x140166=_0x1662df[_0x34dda0],_0x541586=_0x474215(_0x140166);if('object'!==_0x541586)return new _0x17c7ca(_0x4b7b17('0xf69')+_0x2eb68a+'\x20`'+_0x1026a6+_0x4b7b17('0xf15')+_0x541586+_0x4b7b17('0x835')+_0x5039cf+'`,\x20expected\x20an\x20object.');for(var _0x1cb8f6 in _0x140166)if(_0x54b172(_0x140166,_0x1cb8f6)){var _0x5a1de9=_0x3067b7(_0x140166,_0x1cb8f6,_0x5039cf,_0x2eb68a,_0x1026a6+'.'+_0x1cb8f6,_0x41991a);if(_0x5a1de9 instanceof Error)return _0x5a1de9;}return null;});},'oneOf':function(_0xf6ebf3){var _0x5311c8=_0x36be7f;if(!Array[_0x5311c8('0xb66')](_0xf6ebf3))return _0x3d626e;function _0x522a85(_0x1fe31c,_0x498f85,_0x3f6eda,_0x48f36b,_0x360165){var _0x55acc5=_0x5311c8;for(var _0x6084e3=_0x1fe31c[_0x498f85],_0x5bbc98=0x0;_0x5bbc98<_0xf6ebf3['length'];_0x5bbc98++)if(_0x4c584a(_0x6084e3,_0xf6ebf3[_0x5bbc98]))return null;var _0x1e38fe=JSON['stringify'](_0xf6ebf3,function(_0x1bbc51,_0x49b810){return'symbol'===_0x3c1814(_0x49b810)?String(_0x49b810):_0x49b810;});return new _0x17c7ca('Invalid\x20'+_0x48f36b+'\x20`'+_0x360165+_0x55acc5('0x982')+String(_0x6084e3)+_0x55acc5('0x835')+_0x3f6eda+_0x55acc5('0x3ae')+_0x1e38fe+'.');}return _0x39a976(_0x522a85);},'oneOfType':function(_0x6599b2){var _0x5d4630=_0x36be7f;if(!Array[_0x5d4630('0xb66')](_0x6599b2))return _0x3d626e;for(var _0x9df60a=0x0;_0x9df60a<_0x6599b2[_0x5d4630('0x13')];_0x9df60a++){var _0x4401dc=_0x6599b2[_0x9df60a];if(_0x5d4630('0x106c')!=typeof _0x4401dc)return _0x247e46(_0x5d4630('0x4de')+_0x1fa5d5(_0x4401dc)+_0x5d4630('0x810')+_0x9df60a+'.'),_0x3d626e;}return _0x39a976(function(_0x2685fd,_0x1a79d0,_0x595de0,_0x1f3ae9,_0x110b08){var _0x2039bc=_0x5d4630;for(var _0x335d13=0x0;_0x335d13<_0x6599b2['length'];_0x335d13++){if(null==(0x0,_0x6599b2[_0x335d13])(_0x2685fd,_0x1a79d0,_0x595de0,_0x1f3ae9,_0x110b08,_0x41991a))return null;}return new _0x17c7ca(_0x2039bc('0xf69')+_0x1f3ae9+'\x20`'+_0x110b08+'`\x20supplied\x20to\x20`'+_0x595de0+'`.');});},'shape':function(_0x3c8759){return _0x39a976(function(_0x29ab08,_0x413f0f,_0x3ac473,_0x1caa1e,_0xac5fb8){var _0x269a17=_0x5376,_0x4352e1=_0x29ab08[_0x413f0f],_0xcc4398=_0x474215(_0x4352e1);if(_0x269a17('0xb3f')!==_0xcc4398)return new _0x17c7ca(_0x269a17('0xf69')+_0x1caa1e+'\x20`'+_0xac5fb8+_0x269a17('0xf15')+_0xcc4398+_0x269a17('0x835')+_0x3ac473+'`,\x20expected\x20`object`.');for(var _0x18a7db in _0x3c8759){var _0x7271ce=_0x3c8759[_0x18a7db];if(_0x7271ce){var _0x485745=_0x7271ce(_0x4352e1,_0x18a7db,_0x3ac473,_0x1caa1e,_0xac5fb8+'.'+_0x18a7db,_0x41991a);if(_0x485745)return _0x485745;}}return null;});},'exact':function(_0x4e3f6d){return _0x39a976(function(_0x507063,_0x203ffc,_0x3f22f2,_0x6bfeb0,_0x2568b4){var _0x1419f5=_0x5376,_0x4d8ac7=_0x507063[_0x203ffc],_0x31d8ef=_0x474215(_0x4d8ac7);if(_0x1419f5('0xb3f')!==_0x31d8ef)return new _0x17c7ca('Invalid\x20'+_0x6bfeb0+'\x20`'+_0x2568b4+_0x1419f5('0xf15')+_0x31d8ef+'`\x20supplied\x20to\x20`'+_0x3f22f2+_0x1419f5('0x997'));var _0x4f4187=_0x419a83({},_0x507063[_0x203ffc],_0x4e3f6d);for(var _0x48ad6c in _0x4f4187){var _0xbe018=_0x4e3f6d[_0x48ad6c];if(!_0xbe018)return new _0x17c7ca(_0x1419f5('0xf69')+_0x6bfeb0+'\x20`'+_0x2568b4+_0x1419f5('0x443')+_0x48ad6c+_0x1419f5('0x835')+_0x3f22f2+'`.\x0aBad\x20object:\x20'+JSON[_0x1419f5('0xf0b')](_0x507063[_0x203ffc],null,'\x20\x20')+_0x1419f5('0x914')+JSON[_0x1419f5('0xf0b')](Object[_0x1419f5('0x110e')](_0x4e3f6d),null,'\x20\x20'));var _0x68da09=_0xbe018(_0x4d8ac7,_0x48ad6c,_0x3f22f2,_0x6bfeb0,_0x2568b4+'.'+_0x48ad6c,_0x41991a);if(_0x68da09)return _0x68da09;}return null;});}};function _0x4c584a(_0x20c06b,_0x38ca30){return _0x20c06b===_0x38ca30?0x0!==_0x20c06b||0x1/_0x20c06b==0x1/_0x38ca30:_0x20c06b!=_0x20c06b&&_0x38ca30!=_0x38ca30;}function _0x17c7ca(_0x5c0771){var _0x1a9062=_0x36be7f;this[_0x1a9062('0x773')]=_0x5c0771,this[_0x1a9062('0xea4')]='';}function _0x39a976(_0x94cac1){var _0x29c86a=_0x36be7f;function _0x1dad8d(_0x294a30,_0x1a210f,_0x36b491,_0x5a54b8,_0x7789f1,_0x2713e1,_0x3522b6){var _0x2b96f1=_0x5376;if((_0x5a54b8=_0x5a54b8||_0x2b96f1('0x55b'),_0x2713e1=_0x2713e1||_0x36b491,_0x3522b6!==_0x41991a)&&_0x561984){var _0x2808b2=new Error(_0x2b96f1('0x112e'));throw _0x2808b2[_0x2b96f1('0x3ea')]=_0x2b96f1('0x9cb'),_0x2808b2;}return null==_0x1a210f[_0x36b491]?_0x294a30?null===_0x1a210f[_0x36b491]?new _0x17c7ca(_0x2b96f1('0xb4')+_0x7789f1+'\x20`'+_0x2713e1+_0x2b96f1('0x114d')+_0x5a54b8+_0x2b96f1('0x1077')):new _0x17c7ca(_0x2b96f1('0xb4')+_0x7789f1+'\x20`'+_0x2713e1+_0x2b96f1('0x114d')+_0x5a54b8+_0x2b96f1('0x8c8')):null:_0x94cac1(_0x1a210f,_0x36b491,_0x5a54b8,_0x7789f1,_0x2713e1);}var _0x1afd30=_0x1dad8d[_0x29c86a('0x91e')](null,!0x1);return _0x1afd30[_0x29c86a('0xa2a')]=_0x1dad8d[_0x29c86a('0x91e')](null,!0x0),_0x1afd30;}function _0x11b374(_0x27889f){return _0x39a976(function(_0x433144,_0x27bf85,_0x53e92d,_0x17e932,_0x5d7303,_0x53e616){var _0x578bb2=_0x5376,_0x4994e8=_0x433144[_0x27bf85];return _0x474215(_0x4994e8)!==_0x27889f?new _0x17c7ca(_0x578bb2('0xf69')+_0x17e932+'\x20`'+_0x5d7303+_0x578bb2('0xf15')+_0x3c1814(_0x4994e8)+_0x578bb2('0x835')+_0x53e92d+_0x578bb2('0xb82')+_0x27889f+'`.'):null;});}function _0x50993b(_0x58384e){var _0x56b49b=_0x36be7f;switch(typeof _0x58384e){case _0x56b49b('0x67b'):case _0x56b49b('0x2fd'):case _0x56b49b('0x449'):return!0x0;case _0x56b49b('0x3a4'):return!_0x58384e;case'object':if(Array[_0x56b49b('0xb66')](_0x58384e))return _0x58384e[_0x56b49b('0x1135')](_0x50993b);if(null===_0x58384e||_0x440cd7(_0x58384e))return!0x0;var _0x486a49=function(_0x26719d){var _0x4c924e=_0x56b49b,_0x12870d=_0x26719d&&(_0x3d9050&&_0x26719d[_0x3d9050]||_0x26719d[_0x4c924e('0xb8a')]);if(_0x4c924e('0x106c')==typeof _0x12870d)return _0x12870d;}(_0x58384e);if(!_0x486a49)return!0x1;var _0x5a0a77,_0x339156=_0x486a49[_0x56b49b('0xfd2')](_0x58384e);if(_0x486a49!==_0x58384e['entries'])for(;!(_0x5a0a77=_0x339156[_0x56b49b('0x165')]())[_0x56b49b('0x1126')];)if(!_0x50993b(_0x5a0a77[_0x56b49b('0x30')]))return!0x1;else for(;!(_0x5a0a77=_0x339156['next']())['done'];){var _0x1429fe=_0x5a0a77['value'];if(_0x1429fe&&!_0x50993b(_0x1429fe[0x1]))return!0x1;}return!0x0;default:return!0x1;}}function _0x474215(_0x2c232d){var _0x5bdca7=_0x36be7f,_0x404b08=typeof _0x2c232d;return Array[_0x5bdca7('0xb66')](_0x2c232d)?'array':_0x2c232d instanceof RegExp?_0x5bdca7('0xb3f'):function(_0x2e9349,_0x407e32){var _0x260efe=_0x5bdca7;return _0x260efe('0x43c')===_0x2e9349||!!_0x407e32&&(_0x260efe('0xbd2')===_0x407e32[_0x260efe('0x104b')]||_0x260efe('0x106c')==typeof Symbol&&_0x407e32 instanceof Symbol);}(_0x404b08,_0x2c232d)?_0x5bdca7('0x43c'):_0x404b08;}function _0x3c1814(_0x245f6e){var _0x4394b4=_0x36be7f;if(null==_0x245f6e)return''+_0x245f6e;var _0x40b0c8=_0x474215(_0x245f6e);if(_0x4394b4('0xb3f')===_0x40b0c8){if(_0x245f6e instanceof Date)return _0x4394b4('0x2a5');if(_0x245f6e instanceof RegExp)return'regexp';}return _0x40b0c8;}function _0x1fa5d5(_0x48446e){var _0x856886=_0x36be7f,_0x22bcbd=_0x3c1814(_0x48446e);switch(_0x22bcbd){case _0x856886('0x6c1'):case _0x856886('0xb3f'):return _0x856886('0xdec')+_0x22bcbd;case'boolean':case _0x856886('0x2a5'):case _0x856886('0x711'):return'a\x20'+_0x22bcbd;default:return _0x22bcbd;}}return _0x17c7ca[_0x36be7f('0xe02')]=Error['prototype'],_0x58556d[_0x36be7f('0xbd9')]=_0x28e1f0,_0x58556d[_0x36be7f('0x408')]=_0x28e1f0[_0x36be7f('0x408')],_0x58556d[_0x36be7f('0x393')]=_0x58556d,_0x58556d;};},{'./checkPropTypes':0x127,'./lib/ReactPropTypesSecret':0x12b,'object-assign':0x126,'react-is':0x165}],0x12a:[function(_0x4c1429,_0x286f3e,_0x111ed9){var _0x10c4e3=_0x548f48;_0x286f3e['exports']=_0x4c1429(_0x10c4e3('0x6f7'))();},{'./factoryWithThrowingShims':0x128,'./factoryWithTypeCheckers':0x129,'react-is':0x165}],0x12b:[function(_0x1a4ef6,_0x2fddcb,_0x2725ce){'use strict';_0x2fddcb['exports']='SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';},{}],0x12c:[function(_0x59a8a3,_0x400d00,_0x30c14d){var _0x4014ed=_0x548f48;'use strict';Object[_0x4014ed('0x9a5')](_0x30c14d,'__esModule',{'value':!0x0}),_0x30c14d['AlphaPicker']=void 0x0;var _0x279fda=Object[_0x4014ed('0x1060')]||function(_0x1c6ca6){var _0x535dfc=_0x4014ed;for(var _0x3a3a24=0x1;_0x3a3a240x1&&(_0x390b89['a']=0x1),_0x4ed440[_0x844564('0x1136')][_0x844564('0x3f9')]({'h':_0x4ed440[_0x844564('0x1136')][_0x844564('0xb23')]['h'],'s':_0x4ed440[_0x844564('0x1136')][_0x844564('0xb23')]['s'],'l':_0x4ed440['props'][_0x844564('0xb23')]['l'],'a':Math[_0x844564('0x9ee')](0x64*_0x390b89['a'])/0x64,'source':_0x844564('0xb56')},_0x16f73b)):(_0x390b89['h']||_0x390b89['s']||_0x390b89['l'])&&(_0x844564('0x2fd')==typeof _0x390b89['s']&&_0x390b89['s'][_0x844564('0x965')]('%')&&(_0x390b89['s']=_0x390b89['s']['replace']('%','')),'string'==typeof _0x390b89['l']&&_0x390b89['l'][_0x844564('0x965')]('%')&&(_0x390b89['l']=_0x390b89['l'][_0x844564('0xd06')]('%','')),0x1==_0x390b89['s']?_0x390b89['s']=0.01:0x1==_0x390b89['l']&&(_0x390b89['l']=0.01),_0x4ed440[_0x844564('0x1136')][_0x844564('0x3f9')]({'h':_0x390b89['h']||_0x4ed440['props'][_0x844564('0xb23')]['h'],'s':Number((0x0,_0x440faa[_0x844564('0xf5f')])(_0x390b89['s'])?_0x4ed440['props'][_0x844564('0xb23')]['s']:_0x390b89['s']),'l':Number((0x0,_0x440faa[_0x844564('0xf5f')])(_0x390b89['l'])?_0x4ed440[_0x844564('0x1136')]['hsl']['l']:_0x390b89['l']),'source':_0x844564('0xb23')},_0x16f73b));},_0x4ed440[_0x1500ac('0xb97')]=function(_0x3fa5f7){var _0xac8b3e=_0x1500ac;_0x3fa5f7['currentTarget'][_0xac8b3e('0xe81')]['background']=_0xac8b3e('0x4e0');},_0x4ed440[_0x1500ac('0x28f')]=function(_0x3352e9){var _0x36b0c6=_0x1500ac;_0x3352e9[_0x36b0c6('0x1d8')][_0x36b0c6('0xe81')]['background']=_0x36b0c6('0x671');},0x1!==_0xb92c99[_0x1500ac('0xb23')]['a']&&_0x1500ac('0xc10')===_0xb92c99[_0x1500ac('0x770')]?_0x4ed440[_0x1500ac('0x55d')]={'view':'rgb'}:_0x4ed440[_0x1500ac('0x55d')]={'view':_0xb92c99[_0x1500ac('0x770')]},_0x4ed440;}return function(_0xfa02e1,_0x357bd7){var _0x55ff95=_0x5376;if(_0x55ff95('0x106c')!=typeof _0x357bd7&&null!==_0x357bd7)throw new TypeError(_0x55ff95('0x131')+typeof _0x357bd7);_0xfa02e1[_0x55ff95('0xe02')]=Object[_0x55ff95('0xbd0')](_0x357bd7&&_0x357bd7[_0x55ff95('0xe02')],{'constructor':{'value':_0xfa02e1,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x357bd7&&(Object['setPrototypeOf']?Object['setPrototypeOf'](_0xfa02e1,_0x357bd7):_0xfa02e1[_0x55ff95('0x112c')]=_0x357bd7);}(_0x200de4,_0x1bc395),_0x52ce76(_0x200de4,[{'key':'render','value':function(){var _0x1158df=_0x5376,_0xbe0601=this,_0x2ca494=(0x0,_0x198787[_0x1158df('0xf5f')])({'default':{'wrap':{'paddingTop':_0x1158df('0x91'),'display':'flex'},'fields':{'flex':'1','display':_0x1158df('0x1118'),'marginLeft':_0x1158df('0xef2')},'field':{'paddingLeft':'6px','width':'100%'},'alpha':{'paddingLeft':_0x1158df('0x8a5'),'width':'100%'},'toggle':{'width':_0x1158df('0x108a'),'textAlign':_0x1158df('0x94b'),'position':_0x1158df('0xed4')},'icon':{'marginRight':'-4px','marginTop':_0x1158df('0x346'),'cursor':_0x1158df('0x3e1'),'position':'relative'},'iconHighlight':{'position':_0x1158df('0xee9'),'width':_0x1158df('0xe1d'),'height':_0x1158df('0x295'),'background':_0x1158df('0x4e0'),'borderRadius':_0x1158df('0x736'),'top':_0x1158df('0xd65'),'left':_0x1158df('0x346'),'display':_0x1158df('0xea1')},'input':{'fontSize':_0x1158df('0x634'),'color':_0x1158df('0x3f4'),'width':'100%','borderRadius':_0x1158df('0xcd3'),'border':_0x1158df('0xea1'),'boxShadow':_0x1158df('0x5d4'),'height':'21px','textAlign':'center'},'label':{'textTransform':_0x1158df('0x4a7'),'fontSize':'11px','lineHeight':_0x1158df('0x634'),'color':_0x1158df('0xa77'),'textAlign':_0x1158df('0x40c'),'display':'block','marginTop':'12px'},'svg':{'fill':'#333','width':'24px','height':'24px','border':_0x1158df('0x327'),'borderRadius':_0x1158df('0x111a')}},'disableAlpha':{'alpha':{'display':_0x1158df('0xea1')}}},this['props'],this['state']),_0x13b560=void 0x0;return _0x1158df('0xc10')===this[_0x1158df('0x55d')][_0x1158df('0x770')]?_0x13b560=_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494['fields'],'className':'flexbox-fix'},_0x562de1['default']['createElement'](_0x1158df('0x26c'),{'style':_0x2ca494['field']},_0x562de1[_0x1158df('0xf5f')]['createElement'](_0x13be08[_0x1158df('0x39c')],{'style':{'input':_0x2ca494[_0x1158df('0x2f8')],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'hex','value':this[_0x1158df('0x1136')][_0x1158df('0xc10')],'onChange':this[_0x1158df('0x25e')]}))):_0x1158df('0xb56')===this[_0x1158df('0x55d')][_0x1158df('0x770')]?_0x13b560=_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0x535')],'className':_0x1158df('0xc2b')},_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0xbaf')]},_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x13be08[_0x1158df('0x39c')],{'style':{'input':_0x2ca494[_0x1158df('0x2f8')],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'r','value':this[_0x1158df('0x1136')][_0x1158df('0xb56')]['r'],'onChange':this[_0x1158df('0x25e')]})),_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0xbaf')]},_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x13be08['EditableInput'],{'style':{'input':_0x2ca494['input'],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'g','value':this[_0x1158df('0x1136')][_0x1158df('0xb56')]['g'],'onChange':this[_0x1158df('0x25e')]})),_0x562de1['default']['createElement']('div',{'style':_0x2ca494[_0x1158df('0xbaf')]},_0x562de1[_0x1158df('0xf5f')]['createElement'](_0x13be08[_0x1158df('0x39c')],{'style':{'input':_0x2ca494[_0x1158df('0x2f8')],'label':_0x2ca494['label']},'label':'b','value':this[_0x1158df('0x1136')]['rgb']['b'],'onChange':this[_0x1158df('0x25e')]})),_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0x83e')]},_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x13be08['EditableInput'],{'style':{'input':_0x2ca494['input'],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'a','value':this[_0x1158df('0x1136')]['rgb']['a'],'arrowOffset':0.01,'onChange':this[_0x1158df('0x25e')]}))):_0x1158df('0xb23')===this['state'][_0x1158df('0x770')]&&(_0x13b560=_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0x535')],'className':_0x1158df('0xc2b')},_0x562de1['default'][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0xbaf')]},_0x562de1[_0x1158df('0xf5f')]['createElement'](_0x13be08['EditableInput'],{'style':{'input':_0x2ca494[_0x1158df('0x2f8')],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'h','value':Math['round'](this['props']['hsl']['h']),'onChange':this[_0x1158df('0x25e')]})),_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494['field']},_0x562de1['default'][_0x1158df('0xfa9')](_0x13be08[_0x1158df('0x39c')],{'style':{'input':_0x2ca494[_0x1158df('0x2f8')],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'s','value':Math[_0x1158df('0x9ee')](0x64*this['props'][_0x1158df('0xb23')]['s'])+'%','onChange':this['handleChange']})),_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0xbaf')]},_0x562de1['default']['createElement'](_0x13be08[_0x1158df('0x39c')],{'style':{'input':_0x2ca494[_0x1158df('0x2f8')],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'l','value':Math[_0x1158df('0x9ee')](0x64*this['props'][_0x1158df('0xb23')]['l'])+'%','onChange':this['handleChange']})),_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')]('div',{'style':_0x2ca494[_0x1158df('0x83e')]},_0x562de1['default'][_0x1158df('0xfa9')](_0x13be08['EditableInput'],{'style':{'input':_0x2ca494['input'],'label':_0x2ca494[_0x1158df('0xf3c')]},'label':'a','value':this[_0x1158df('0x1136')][_0x1158df('0xb23')]['a'],'arrowOffset':0.01,'onChange':this[_0x1158df('0x25e')]})))),_0x562de1[_0x1158df('0xf5f')]['createElement'](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0xd2d')],'className':_0x1158df('0xc2b')},_0x13b560,_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0x21d')]},_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x1158df('0x26c'),{'style':_0x2ca494[_0x1158df('0x73c')],'onClick':this[_0x1158df('0x46f')],'ref':function(_0x90b6c2){var _0x1d4f13=_0x1158df;return _0xbe0601[_0x1d4f13('0x73c')]=_0x90b6c2;}},_0x562de1[_0x1158df('0xf5f')][_0x1158df('0xfa9')](_0x215bb9[_0x1158df('0xf5f')],{'style':_0x2ca494[_0x1158df('0x557')],'onMouseOver':this[_0x1158df('0xb97')],'onMouseEnter':this[_0x1158df('0xb97')],'onMouseOut':this[_0x1158df('0x28f')]}))));}}],[{'key':'getDerivedStateFromProps','value':function(_0x2fa918,_0x4a97c2){var _0x427878=_0x5376;return 0x1!==_0x2fa918[_0x427878('0xb23')]['a']&&'hex'===_0x4a97c2[_0x427878('0x770')]?{'view':_0x427878('0xb56')}:null;}}]),_0x200de4;}(_0x562de1['default'][_0x340ced('0x42')]);_0x3d2ba9['defaultProps']={'view':_0x340ced('0xc10')},_0x22cdc3[_0x340ced('0xf5f')]=_0x3d2ba9;},{'../../helpers/color':0x15e,'../common':0x13e,'@icons/material/UnfoldMoreHorizontalIcon':0x52,'lodash/isUndefined':0x117,'react':'react','reactcss':0x16b}],0x132:[function(_0x3fffc2,_0x34f1b4,_0x184930){var _0x47a398=_0x548f48;'use strict';Object[_0x47a398('0x9a5')](_0x184930,'__esModule',{'value':!0x0}),_0x184930[_0x47a398('0x54d')]=void 0x0;var _0x3c67d6=_0x51c757(_0x3fffc2(_0x47a398('0xb11'))),_0x38ffc5=_0x51c757(_0x3fffc2(_0x47a398('0x63b')));function _0x51c757(_0x24f16c){var _0x406faf=_0x47a398;return _0x24f16c&&_0x24f16c[_0x406faf('0xce5')]?_0x24f16c:{'default':_0x24f16c};}var _0x5a55ff=_0x184930[_0x47a398('0x54d')]=function(){var _0x303c1d=_0x47a398,_0xfa1355=(0x0,_0x38ffc5[_0x303c1d('0xf5f')])({'default':{'picker':{'width':_0x303c1d('0x346'),'height':_0x303c1d('0x346'),'borderRadius':'6px','transform':_0x303c1d('0xe76'),'backgroundColor':_0x303c1d('0x12d'),'boxShadow':_0x303c1d('0x695')}}});return _0x3c67d6[_0x303c1d('0xf5f')][_0x303c1d('0xfa9')](_0x303c1d('0x26c'),{'style':_0xfa1355['picker']});};_0x184930[_0x47a398('0xf5f')]=_0x5a55ff;},{'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x133:[function(_0xe0cf8a,_0x1b0b09,_0x2a35ae){var _0x577745=_0x548f48;'use strict';Object[_0x577745('0x9a5')](_0x2a35ae,_0x577745('0xce5'),{'value':!0x0}),_0x2a35ae[_0x577745('0x1d9')]=void 0x0;var _0x3568a8=_0x7b10ef(_0xe0cf8a(_0x577745('0xb11'))),_0x2251ad=_0x7b10ef(_0xe0cf8a(_0x577745('0x63b')));function _0x7b10ef(_0x2f71c6){return _0x2f71c6&&_0x2f71c6['__esModule']?_0x2f71c6:{'default':_0x2f71c6};}var _0x52c347=_0x2a35ae[_0x577745('0x1d9')]=function(){var _0x3e7844=_0x577745,_0x5a86a5=(0x0,_0x2251ad[_0x3e7844('0xf5f')])({'default':{'picker':{'width':_0x3e7844('0x346'),'height':'12px','borderRadius':_0x3e7844('0x8a5'),'boxShadow':'inset\x200\x200\x200\x201px\x20#fff','transform':_0x3e7844('0x85c')}}});return _0x3568a8['default'][_0x3e7844('0xfa9')](_0x3e7844('0x26c'),{'style':_0x5a86a5[_0x3e7844('0xb01')]});};_0x2a35ae[_0x577745('0xf5f')]=_0x52c347;},{'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x134:[function(_0x3d6608,_0x37c5b9,_0x5b3dd6){var _0x23d686=_0x548f48;'use strict';Object[_0x23d686('0x9a5')](_0x5b3dd6,_0x23d686('0xce5'),{'value':!0x0}),_0x5b3dd6[_0x23d686('0xb9a')]=void 0x0;var _0x500b94=_0x23d9b7(_0x3d6608(_0x23d686('0xb11'))),_0x6e9347=_0x23d9b7(_0x3d6608(_0x23d686('0x187'))),_0x43b4b9=_0x23d9b7(_0x3d6608(_0x23d686('0x63b'))),_0x57a84f=_0x23d9b7(_0x3d6608(_0x23d686('0x3ab'))),_0x4e538b=_0x23d9b7(_0x3d6608(_0x23d686('0x808'))),_0x2c85c3=function(_0x13f8d1){var _0x783c71=_0x23d686;if(_0x13f8d1&&_0x13f8d1['__esModule'])return _0x13f8d1;var _0x566f42={};if(null!=_0x13f8d1)for(var _0x5d10c6 in _0x13f8d1)Object[_0x783c71('0xe02')][_0x783c71('0xe9c')][_0x783c71('0xfd2')](_0x13f8d1,_0x5d10c6)&&(_0x566f42[_0x5d10c6]=_0x13f8d1[_0x5d10c6]);return _0x566f42[_0x783c71('0xf5f')]=_0x13f8d1,_0x566f42;}(_0x3d6608(_0x23d686('0xd11'))),_0x333b2a=_0x3d6608(_0x23d686('0x22')),_0xf3312f=_0x23d9b7(_0x3d6608(_0x23d686('0x1034')));function _0x23d9b7(_0x3f18a8){var _0xb1ba85=_0x23d686;return _0x3f18a8&&_0x3f18a8[_0xb1ba85('0xce5')]?_0x3f18a8:{'default':_0x3f18a8};}var _0x5a1326=_0x5b3dd6[_0x23d686('0xb9a')]=function(_0x26c9a5){var _0x37fd6b=_0x23d686,_0x69d38=_0x26c9a5['width'],_0x16a46a=_0x26c9a5[_0x37fd6b('0x3f9')],_0x495405=_0x26c9a5[_0x37fd6b('0x243')],_0x37b155=_0x26c9a5['colors'],_0x3df899=_0x26c9a5[_0x37fd6b('0xc10')],_0xba1a72=_0x26c9a5['circleSize'],_0x34821e=_0x26c9a5[_0x37fd6b('0x10ad')],_0x372575=void 0x0===_0x34821e?{}:_0x34821e,_0x21c454=_0x26c9a5[_0x37fd6b('0x1063')],_0x5a8de5=_0x26c9a5['className'],_0x58ae72=void 0x0===_0x5a8de5?'':_0x5a8de5,_0x2e1851=(0x0,_0x43b4b9['default'])((0x0,_0x4e538b['default'])({'default':{'card':{'width':_0x69d38,'display':'flex','flexWrap':'wrap','marginRight':-_0x21c454,'marginBottom':-_0x21c454}}},_0x372575)),_0x5db114=function(_0x81054,_0x36fa68){var _0x54c851=_0x37fd6b;return _0x16a46a({'hex':_0x81054,'source':_0x54c851('0xc10')},_0x36fa68);};return _0x500b94['default'][_0x37fd6b('0xfa9')]('div',{'style':_0x2e1851[_0x37fd6b('0xc45')],'className':_0x37fd6b('0x97d')+_0x58ae72},(0x0,_0x57a84f['default'])(_0x37b155,function(_0x2f7880){var _0x348f36=_0x37fd6b;return _0x500b94[_0x348f36('0xf5f')][_0x348f36('0xfa9')](_0xf3312f['default'],{'key':_0x2f7880,'color':_0x2f7880,'onClick':_0x5db114,'onSwatchHover':_0x495405,'active':_0x3df899===_0x2f7880['toLowerCase'](),'circleSize':_0xba1a72,'circleSpacing':_0x21c454});}));};_0x5a1326[_0x23d686('0x104f')]={'width':_0x6e9347[_0x23d686('0xf5f')]['oneOfType']([_0x6e9347['default'][_0x23d686('0x2fd')],_0x6e9347[_0x23d686('0xf5f')][_0x23d686('0x67b')]]),'circleSize':_0x6e9347[_0x23d686('0xf5f')][_0x23d686('0x67b')],'circleSpacing':_0x6e9347[_0x23d686('0xf5f')][_0x23d686('0x67b')],'styles':_0x6e9347[_0x23d686('0xf5f')][_0x23d686('0xb3f')]},_0x5a1326[_0x23d686('0x7f5')]={'width':0xfc,'circleSize':0x1c,'circleSpacing':0xe,'colors':[_0x2c85c3['red'][0x1f4],_0x2c85c3['pink'][0x1f4],_0x2c85c3[_0x23d686('0x50')][0x1f4],_0x2c85c3[_0x23d686('0xc75')][0x1f4],_0x2c85c3[_0x23d686('0x885')][0x1f4],_0x2c85c3['blue'][0x1f4],_0x2c85c3['lightBlue'][0x1f4],_0x2c85c3[_0x23d686('0x10de')][0x1f4],_0x2c85c3['teal'][0x1f4],_0x2c85c3[_0x23d686('0x62c')][0x1f4],_0x2c85c3[_0x23d686('0x413')][0x1f4],_0x2c85c3[_0x23d686('0x245')][0x1f4],_0x2c85c3[_0x23d686('0x50f')][0x1f4],_0x2c85c3[_0x23d686('0x138')][0x1f4],_0x2c85c3[_0x23d686('0xd62')][0x1f4],_0x2c85c3[_0x23d686('0x169')][0x1f4],_0x2c85c3[_0x23d686('0xa17')][0x1f4],_0x2c85c3[_0x23d686('0x436')][0x1f4]],'styles':{}},_0x5b3dd6[_0x23d686('0xf5f')]=(0x0,_0x333b2a[_0x23d686('0x74a')])(_0x5a1326);},{'../common':0x13e,'./CircleSwatch':0x135,'lodash/map':0x11a,'lodash/merge':0x11c,'material-colors':0x125,'prop-types':0x12a,'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x135:[function(_0x12d1ff,_0x3672ac,_0x42906a){var _0xbecef6=_0x548f48;'use strict';Object[_0xbecef6('0x9a5')](_0x42906a,_0xbecef6('0xce5'),{'value':!0x0}),_0x42906a[_0xbecef6('0xdc7')]=void 0x0;var _0x93539f=_0x46857e(_0x12d1ff(_0xbecef6('0xb11'))),_0x233ffa=_0x12d1ff('reactcss'),_0x6d00af=_0x46857e(_0x233ffa),_0x39d68e=_0x12d1ff(_0xbecef6('0x22'));function _0x46857e(_0x3ff763){var _0x1c0503=_0xbecef6;return _0x3ff763&&_0x3ff763[_0x1c0503('0xce5')]?_0x3ff763:{'default':_0x3ff763};}var _0x32aa77=_0x42906a['CircleSwatch']=function(_0xc7cab){var _0x1f11f2=_0xbecef6,_0x185313=_0xc7cab['color'],_0x33674b=_0xc7cab[_0x1f11f2('0xca7')],_0x2f30a7=_0xc7cab[_0x1f11f2('0x243')],_0x469834=_0xc7cab[_0x1f11f2('0x7f7')],_0x5782ee=_0xc7cab['active'],_0x3d333a=_0xc7cab[_0x1f11f2('0x82d')],_0xf2f56e=_0xc7cab[_0x1f11f2('0x1063')],_0x2e7450=(0x0,_0x6d00af[_0x1f11f2('0xf5f')])({'default':{'swatch':{'width':_0x3d333a,'height':_0x3d333a,'marginRight':_0xf2f56e,'marginBottom':_0xf2f56e,'transform':_0x1f11f2('0x115f'),'transition':_0x1f11f2('0x12e')},'Swatch':{'borderRadius':_0x1f11f2('0x5df'),'background':_0x1f11f2('0x671'),'boxShadow':_0x1f11f2('0x21e')+(_0x3d333a/0x2+0x1)+_0x1f11f2('0x96')+_0x185313,'transition':_0x1f11f2('0xb74')}},'hover':{'swatch':{'transform':'scale(1.2)'}},'active':{'Swatch':{'boxShadow':_0x1f11f2('0x1100')+_0x185313}}},{'hover':_0x469834,'active':_0x5782ee});return _0x93539f[_0x1f11f2('0xf5f')][_0x1f11f2('0xfa9')](_0x1f11f2('0x26c'),{'style':_0x2e7450[_0x1f11f2('0x2cb')]},_0x93539f['default']['createElement'](_0x39d68e[_0x1f11f2('0x2aa')],{'style':_0x2e7450['Swatch'],'color':_0x185313,'onClick':_0x33674b,'onHover':_0x2f30a7,'focusStyle':{'boxShadow':_0x2e7450[_0x1f11f2('0x2aa')][_0x1f11f2('0x99f')]+_0x1f11f2('0x7c6')+_0x185313}}));};_0x32aa77[_0xbecef6('0x7f5')]={'circleSize':0x1c,'circleSpacing':0xe},_0x42906a[_0xbecef6('0xf5f')]=(0x0,_0x233ffa[_0xbecef6('0xa76')])(_0x32aa77);},{'../common':0x13e,'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x136:[function(_0x4a7adb,_0x2a0a05,_0x78ffde){var _0x2e5b36=_0x548f48;'use strict';Object[_0x2e5b36('0x9a5')](_0x78ffde,_0x2e5b36('0xce5'),{'value':!0x0}),_0x78ffde['Alpha']=void 0x0;var _0x454ecf=Object[_0x2e5b36('0x1060')]||function(_0x14c6f1){var _0x536c4e=_0x2e5b36;for(var _0x33dc86=0x1;_0x33dc86-0x1)){var _0x3afb64=_0x2beb9c[_0x1b4fe9('0xfbb')](),_0x42bca5=0x26===_0xeded1f[_0x1b4fe9('0xba8')]?_0x1ba762+_0x3afb64:_0x1ba762-_0x3afb64;_0x2beb9c[_0x1b4fe9('0x96b')](_0x42bca5,_0xeded1f);}},_0x2beb9c['handleDrag']=function(_0x2f9c9e){var _0xd6baf4=_0x3052c0;if(_0x2beb9c[_0xd6baf4('0x1136')][_0xd6baf4('0x1106')]){var _0x31c641=Math[_0xd6baf4('0x9ee')](_0x2beb9c['props'][_0xd6baf4('0x30')]+_0x2f9c9e[_0xd6baf4('0x10d3')]);_0x31c641>=0x0&&_0x31c641<=_0x2beb9c[_0xd6baf4('0x1136')][_0xd6baf4('0x4b4')]&&_0x2beb9c[_0xd6baf4('0x1136')][_0xd6baf4('0x3f9')]&&_0x2beb9c[_0xd6baf4('0x1136')][_0xd6baf4('0x3f9')](_0x2beb9c[_0xd6baf4('0xa6d')](_0x31c641),_0x2f9c9e);}},_0x2beb9c[_0x3052c0('0x87')]=function(_0x207a78){var _0x18e7f6=_0x3052c0;_0x2beb9c[_0x18e7f6('0x1136')][_0x18e7f6('0x1106')]&&(_0x207a78[_0x18e7f6('0x510')](),_0x2beb9c[_0x18e7f6('0x17e')](_0x207a78),window[_0x18e7f6('0x363')](_0x18e7f6('0x827'),_0x2beb9c['handleDrag']),window[_0x18e7f6('0x363')]('mouseup',_0x2beb9c['handleMouseUp']));},_0x2beb9c['handleMouseUp']=function(){_0x2beb9c['unbindEventListeners']();},_0x2beb9c[_0x3052c0('0xc07')]=function(){var _0x438dc9=_0x3052c0;window[_0x438dc9('0xb5a')](_0x438dc9('0x827'),_0x2beb9c[_0x438dc9('0x17e')]),window[_0x438dc9('0xb5a')](_0x438dc9('0x517'),_0x2beb9c['handleMouseUp']);},_0x2beb9c[_0x3052c0('0x55d')]={'value':String(_0x3987c3[_0x3052c0('0x30')])[_0x3052c0('0xa56')](),'blurValue':String(_0x3987c3[_0x3052c0('0x30')])[_0x3052c0('0xa56')]()},_0x2beb9c[_0x3052c0('0x7fb')]=_0x3052c0('0xb5e')+_0x396692++,_0x2beb9c;}return function(_0x580b4e,_0x43bd42){var _0x203371=_0x5376;if('function'!=typeof _0x43bd42&&null!==_0x43bd42)throw new TypeError(_0x203371('0x131')+typeof _0x43bd42);_0x580b4e[_0x203371('0xe02')]=Object[_0x203371('0xbd0')](_0x43bd42&&_0x43bd42['prototype'],{'constructor':{'value':_0x580b4e,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x43bd42&&(Object[_0x203371('0x3df')]?Object[_0x203371('0x3df')](_0x580b4e,_0x43bd42):_0x580b4e['__proto__']=_0x43bd42);}(_0x143f80,_0x3de9dc),_0x2916ea(_0x143f80,[{'key':_0x5399be('0xe87'),'value':function(_0x2624c4,_0x309b28){var _0x7c2c=_0x5399be;this['props']['value']===this[_0x7c2c('0x55d')][_0x7c2c('0x30')]||_0x2624c4['value']===this['props'][_0x7c2c('0x30')]&&_0x309b28['value']===this[_0x7c2c('0x55d')][_0x7c2c('0x30')]||(this['input']===document[_0x7c2c('0xbc9')]?this[_0x7c2c('0x1089')]({'blurValue':String(this[_0x7c2c('0x1136')][_0x7c2c('0x30')])[_0x7c2c('0xa56')]()}):this[_0x7c2c('0x1089')]({'value':String(this[_0x7c2c('0x1136')][_0x7c2c('0x30')])[_0x7c2c('0xa56')](),'blurValue':!this['state'][_0x7c2c('0xbc0')]&&String(this[_0x7c2c('0x1136')]['value'])['toUpperCase']()}));}},{'key':'componentWillUnmount','value':function(){this['unbindEventListeners']();}},{'key':_0x5399be('0xa6d'),'value':function(_0x46f93f){var _0x5d7c17=_0x5399be;return function(_0x19e0c5,_0xd5d567,_0x10be7e){var _0x4cdb02=_0x5376;return _0xd5d567 in _0x19e0c5?Object[_0x4cdb02('0x9a5')](_0x19e0c5,_0xd5d567,{'value':_0x10be7e,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):_0x19e0c5[_0xd5d567]=_0x10be7e,_0x19e0c5;}({},this[_0x5d7c17('0x1136')][_0x5d7c17('0xf3c')],_0x46f93f);}},{'key':_0x5399be('0xfbb'),'value':function(){var _0x4d8393=_0x5399be;return this['props'][_0x4d8393('0xe15')]||0x1;}},{'key':_0x5399be('0x96b'),'value':function(_0x113ff5,_0x4e2e3d){var _0x286754=_0x5399be,_0x311590=this[_0x286754('0x1136')][_0x286754('0xf3c')]?this[_0x286754('0xa6d')](_0x113ff5):_0x113ff5;this['props'][_0x286754('0x3f9')]&&this[_0x286754('0x1136')][_0x286754('0x3f9')](_0x311590,_0x4e2e3d),this[_0x286754('0x1089')]({'value':_0x113ff5});}},{'key':'render','value':function(){var _0x65fbfc=_0x5399be,_0x2dcee1=this,_0x53489c=(0x0,_0x4ec986[_0x65fbfc('0xf5f')])({'default':{'wrap':{'position':_0x65fbfc('0xed4')}},'user-override':{'wrap':this[_0x65fbfc('0x1136')][_0x65fbfc('0xe81')]&&this[_0x65fbfc('0x1136')]['style'][_0x65fbfc('0xd2d')]?this[_0x65fbfc('0x1136')]['style'][_0x65fbfc('0xd2d')]:{},'input':this[_0x65fbfc('0x1136')][_0x65fbfc('0xe81')]&&this[_0x65fbfc('0x1136')]['style'][_0x65fbfc('0x2f8')]?this[_0x65fbfc('0x1136')][_0x65fbfc('0xe81')][_0x65fbfc('0x2f8')]:{},'label':this[_0x65fbfc('0x1136')][_0x65fbfc('0xe81')]&&this[_0x65fbfc('0x1136')]['style']['label']?this['props'][_0x65fbfc('0xe81')]['label']:{}},'dragLabel-true':{'label':{'cursor':_0x65fbfc('0xe7f')}}},{'user-override':!0x0},this[_0x65fbfc('0x1136')]);return _0x5ce452[_0x65fbfc('0xf5f')][_0x65fbfc('0xfa9')]('div',{'style':_0x53489c[_0x65fbfc('0xd2d')]},_0x5ce452[_0x65fbfc('0xf5f')][_0x65fbfc('0xfa9')](_0x65fbfc('0x2f8'),{'id':this[_0x65fbfc('0x7fb')],'style':_0x53489c[_0x65fbfc('0x2f8')],'ref':function(_0x1ac608){return _0x2dcee1['input']=_0x1ac608;},'value':this[_0x65fbfc('0x55d')][_0x65fbfc('0x30')],'onKeyDown':this[_0x65fbfc('0xa83')],'onChange':this[_0x65fbfc('0x25e')],'onBlur':this[_0x65fbfc('0x6f2')],'placeholder':this[_0x65fbfc('0x1136')][_0x65fbfc('0xa49')],'spellCheck':_0x65fbfc('0x2e')}),this[_0x65fbfc('0x1136')]['label']&&!this['props'][_0x65fbfc('0x3fd')]?_0x5ce452[_0x65fbfc('0xf5f')][_0x65fbfc('0xfa9')](_0x65fbfc('0xf3c'),{'htmlFor':this[_0x65fbfc('0x7fb')],'style':_0x53489c[_0x65fbfc('0xf3c')],'onMouseDown':this[_0x65fbfc('0x87')]},this[_0x65fbfc('0x1136')][_0x65fbfc('0xf3c')]):null);}}]),_0x143f80;}(_0x1f15d0[_0x538192('0xb71')]||_0x1f15d0[_0x538192('0x42')]);_0x5a41b6[_0x538192('0xf5f')]=_0x30fb09;},{'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x13a:[function(_0x437dc4,_0x26c226,_0x273415){var _0xf97dbb=_0x548f48;'use strict';Object[_0xf97dbb('0x9a5')](_0x273415,_0xf97dbb('0xce5'),{'value':!0x0}),_0x273415[_0xf97dbb('0x2d')]=void 0x0;var _0x24ee10=function(){function _0x193450(_0xc9ed18,_0x67c93c){var _0x24bff7=_0x5376;for(var _0x547f05=0x0;_0x547f05<_0x67c93c[_0x24bff7('0x13')];_0x547f05++){var _0x40918c=_0x67c93c[_0x547f05];_0x40918c['enumerable']=_0x40918c[_0x24bff7('0x3bf')]||!0x1,_0x40918c['configurable']=!0x0,_0x24bff7('0x30')in _0x40918c&&(_0x40918c[_0x24bff7('0x820')]=!0x0),Object[_0x24bff7('0x9a5')](_0xc9ed18,_0x40918c[_0x24bff7('0x86f')],_0x40918c);}}return function(_0x1a7546,_0x1e82f4,_0x919ef4){return _0x1e82f4&&_0x193450(_0x1a7546['prototype'],_0x1e82f4),_0x919ef4&&_0x193450(_0x1a7546,_0x919ef4),_0x1a7546;};}(),_0x3b843e=_0x437dc4(_0xf97dbb('0xb11')),_0x11b153=_0x28fe96(_0x3b843e),_0x533fd9=_0x28fe96(_0x437dc4('reactcss')),_0xe2e82c=function(_0x3d468e){var _0x342338=_0xf97dbb;if(_0x3d468e&&_0x3d468e[_0x342338('0xce5')])return _0x3d468e;var _0x3537d9={};if(null!=_0x3d468e)for(var _0x124ea1 in _0x3d468e)Object[_0x342338('0xe02')][_0x342338('0xe9c')][_0x342338('0xfd2')](_0x3d468e,_0x124ea1)&&(_0x3537d9[_0x124ea1]=_0x3d468e[_0x124ea1]);return _0x3537d9['default']=_0x3d468e,_0x3537d9;}(_0x437dc4(_0xf97dbb('0x993')));function _0x28fe96(_0x413c03){return _0x413c03&&_0x413c03['__esModule']?_0x413c03:{'default':_0x413c03};}function _0x5ea461(_0xd85379,_0x4a18be){var _0x3ebe64=_0xf97dbb;if(!(_0xd85379 instanceof _0x4a18be))throw new TypeError(_0x3ebe64('0xf98'));}function _0x191eae(_0x5e6ccd,_0x16e9ab){var _0x188ca3=_0xf97dbb;if(!_0x5e6ccd)throw new ReferenceError(_0x188ca3('0xe0d'));return!_0x16e9ab||_0x188ca3('0xb3f')!=typeof _0x16e9ab&&_0x188ca3('0x106c')!=typeof _0x16e9ab?_0x5e6ccd:_0x16e9ab;}var _0x17f66d=_0x273415[_0xf97dbb('0x2d')]=function(_0x50e8aa){var _0x36b9a3=_0xf97dbb;function _0x1c1834(){var _0x52b9fb=_0x5376,_0x9bd78a,_0x26bd53,_0x30c686;_0x5ea461(this,_0x1c1834);for(var _0x467a6e=arguments[_0x52b9fb('0x13')],_0x3d4ee4=Array(_0x467a6e),_0xf54f60=0x0;_0xf54f60<_0x467a6e;_0xf54f60++)_0x3d4ee4[_0xf54f60]=arguments[_0xf54f60];return _0x26bd53=_0x30c686=_0x191eae(this,(_0x9bd78a=_0x1c1834[_0x52b9fb('0x112c')]||Object[_0x52b9fb('0x2d9')](_0x1c1834))['call']['apply'](_0x9bd78a,[this]['concat'](_0x3d4ee4))),_0x30c686[_0x52b9fb('0x25e')]=function(_0x4a6879){var _0x4d78b7=_0x52b9fb,_0x1f5165=_0xe2e82c['calculateChange'](_0x4a6879,_0x30c686[_0x4d78b7('0x1136')]['direction'],_0x30c686[_0x4d78b7('0x1136')]['hsl'],_0x30c686[_0x4d78b7('0x25c')]);_0x1f5165&&_0x4d78b7('0x106c')==typeof _0x30c686['props'][_0x4d78b7('0x3f9')]&&_0x30c686[_0x4d78b7('0x1136')][_0x4d78b7('0x3f9')](_0x1f5165,_0x4a6879);},_0x30c686[_0x52b9fb('0x87')]=function(_0x1b3071){var _0x377111=_0x52b9fb;_0x30c686[_0x377111('0x25e')](_0x1b3071),window[_0x377111('0x363')](_0x377111('0x827'),_0x30c686['handleChange']),window[_0x377111('0x363')]('mouseup',_0x30c686[_0x377111('0xc74')]);},_0x30c686[_0x52b9fb('0xc74')]=function(){var _0x31e3ef=_0x52b9fb;_0x30c686[_0x31e3ef('0xc07')]();},_0x191eae(_0x30c686,_0x26bd53);}return function(_0x238aaf,_0x21570f){var _0x172448=_0x5376;if(_0x172448('0x106c')!=typeof _0x21570f&&null!==_0x21570f)throw new TypeError(_0x172448('0x131')+typeof _0x21570f);_0x238aaf['prototype']=Object[_0x172448('0xbd0')](_0x21570f&&_0x21570f[_0x172448('0xe02')],{'constructor':{'value':_0x238aaf,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x21570f&&(Object[_0x172448('0x3df')]?Object[_0x172448('0x3df')](_0x238aaf,_0x21570f):_0x238aaf[_0x172448('0x112c')]=_0x21570f);}(_0x1c1834,_0x50e8aa),_0x24ee10(_0x1c1834,[{'key':_0x36b9a3('0x939'),'value':function(){var _0x347521=_0x36b9a3;this[_0x347521('0xc07')]();}},{'key':'unbindEventListeners','value':function(){var _0x2126a5=_0x36b9a3;window[_0x2126a5('0xb5a')](_0x2126a5('0x827'),this[_0x2126a5('0x25e')]),window['removeEventListener'](_0x2126a5('0x517'),this[_0x2126a5('0xc74')]);}},{'key':'render','value':function(){var _0x359808=_0x36b9a3,_0x52bcc6=this,_0x10828d=this[_0x359808('0x1136')][_0x359808('0x8de')],_0x4d8565=void 0x0===_0x10828d?'horizontal':_0x10828d,_0x55b4eb=(0x0,_0x533fd9[_0x359808('0xf5f')])({'default':{'hue':{'absolute':_0x359808('0x10b7'),'borderRadius':this[_0x359808('0x1136')][_0x359808('0xe06')],'boxShadow':this[_0x359808('0x1136')][_0x359808('0x836')]},'container':{'padding':_0x359808('0xc60'),'position':_0x359808('0xed4'),'height':_0x359808('0x51f'),'borderRadius':this[_0x359808('0x1136')][_0x359808('0xe06')]},'pointer':{'position':'absolute','left':0x64*this[_0x359808('0x1136')][_0x359808('0xb23')]['h']/0x168+'%'},'slider':{'marginTop':_0x359808('0x7eb'),'width':'4px','borderRadius':_0x359808('0x7eb'),'height':_0x359808('0x22e'),'boxShadow':_0x359808('0xc31'),'background':_0x359808('0x310'),'transform':_0x359808('0xe3f')}},'vertical':{'pointer':{'left':'0px','top':-0x64*this[_0x359808('0x1136')][_0x359808('0xb23')]['h']/0x168+0x64+'%'}}},{'vertical':_0x359808('0x952')===_0x4d8565});return _0x11b153[_0x359808('0xf5f')]['createElement']('div',{'style':_0x55b4eb['hue']},_0x11b153['default']['createElement'](_0x359808('0x26c'),{'className':_0x359808('0x4b5')+_0x4d8565,'style':_0x55b4eb[_0x359808('0x25c')],'ref':function(_0x887589){var _0x18aae5=_0x359808;return _0x52bcc6[_0x18aae5('0x25c')]=_0x887589;},'onMouseDown':this[_0x359808('0x87')],'onTouchMove':this[_0x359808('0x25e')],'onTouchStart':this['handleChange']},_0x11b153[_0x359808('0xf5f')][_0x359808('0xfa9')](_0x359808('0xe81'),null,_0x359808('0x14d')),_0x11b153[_0x359808('0xf5f')][_0x359808('0xfa9')](_0x359808('0x26c'),{'style':_0x55b4eb[_0x359808('0x3e1')]},this['props']['pointer']?_0x11b153[_0x359808('0xf5f')][_0x359808('0xfa9')](this[_0x359808('0x1136')][_0x359808('0x3e1')],this[_0x359808('0x1136')]):_0x11b153[_0x359808('0xf5f')][_0x359808('0xfa9')]('div',{'style':_0x55b4eb[_0x359808('0x9f0')]}))));}}]),_0x1c1834;}(_0x3b843e[_0xf97dbb('0xb71')]||_0x3b843e[_0xf97dbb('0x42')]);_0x273415[_0xf97dbb('0xf5f')]=_0x17f66d;},{'../../helpers/hue':0x15f,'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x13b:[function(_0xf4c729,_0x57df00,_0x57143b){var _0x52fd5c=_0x548f48;'use strict';Object[_0x52fd5c('0x9a5')](_0x57143b,_0x52fd5c('0xce5'),{'value':!0x0}),_0x57143b[_0x52fd5c('0x58c')]=void 0x0;var _0x12d21d=_0x13a6c8(_0xf4c729('react')),_0x5937e2=_0x13a6c8(_0xf4c729(_0x52fd5c('0x187'))),_0x2765b6=_0x13a6c8(_0xf4c729(_0x52fd5c('0x63b'))),_0x1d3ede=_0x13a6c8(_0xf4c729(_0x52fd5c('0x808')));function _0x13a6c8(_0x503720){var _0x44e9dc=_0x52fd5c;return _0x503720&&_0x503720[_0x44e9dc('0xce5')]?_0x503720:{'default':_0x503720};}var _0x485503=_0x57143b[_0x52fd5c('0x58c')]=function(_0x1253aa){var _0x2a716e=_0x52fd5c,_0x4196d0=_0x1253aa['zDepth'],_0x151749=_0x1253aa[_0x2a716e('0xe06')],_0x43ca04=_0x1253aa[_0x2a716e('0x23f')],_0x4c3c28=_0x1253aa[_0x2a716e('0x60c')],_0x53d0a9=_0x1253aa[_0x2a716e('0x10ad')],_0x4edbc2=void 0x0===_0x53d0a9?{}:_0x53d0a9,_0x3ad4b3=(0x0,_0x2765b6['default'])((0x0,_0x1d3ede[_0x2a716e('0xf5f')])({'default':{'wrap':{'position':_0x2a716e('0xed4'),'display':_0x2a716e('0x8f6')},'content':{'position':_0x2a716e('0xed4')},'bg':{'absolute':_0x2a716e('0x10b7'),'boxShadow':'0\x20'+_0x4196d0+_0x2a716e('0x96')+0x4*_0x4196d0+_0x2a716e('0xf72'),'borderRadius':_0x151749,'background':_0x43ca04}},'zDepth-0':{'bg':{'boxShadow':_0x2a716e('0xea1')}},'zDepth-1':{'bg':{'boxShadow':_0x2a716e('0x4a1')}},'zDepth-2':{'bg':{'boxShadow':_0x2a716e('0xda3')}},'zDepth-3':{'bg':{'boxShadow':'0\x2017px\x2050px\x20rgba(0,0,0,.19),\x200\x2012px\x2015px\x20rgba(0,0,0,.24)'}},'zDepth-4':{'bg':{'boxShadow':_0x2a716e('0x103b')}},'zDepth-5':{'bg':{'boxShadow':_0x2a716e('0xf36')}},'square':{'bg':{'borderRadius':'0'}},'circle':{'bg':{'borderRadius':_0x2a716e('0x5df')}}},_0x4edbc2),{'zDepth-1':0x1===_0x4196d0});return _0x12d21d[_0x2a716e('0xf5f')][_0x2a716e('0xfa9')]('div',{'style':_0x3ad4b3[_0x2a716e('0xd2d')]},_0x12d21d['default'][_0x2a716e('0xfa9')](_0x2a716e('0x26c'),{'style':_0x3ad4b3['bg']}),_0x12d21d['default']['createElement'](_0x2a716e('0x26c'),{'style':_0x3ad4b3[_0x2a716e('0x944')]},_0x4c3c28));};_0x485503[_0x52fd5c('0x104f')]={'background':_0x5937e2['default'][_0x52fd5c('0x2fd')],'zDepth':_0x5937e2[_0x52fd5c('0xf5f')][_0x52fd5c('0xbf3')]([0x0,0x1,0x2,0x3,0x4,0x5]),'radius':_0x5937e2[_0x52fd5c('0xf5f')][_0x52fd5c('0x67b')],'styles':_0x5937e2[_0x52fd5c('0xf5f')][_0x52fd5c('0xb3f')]},_0x485503[_0x52fd5c('0x7f5')]={'background':_0x52fd5c('0x310'),'zDepth':0x1,'radius':0x2,'styles':{}},_0x57143b[_0x52fd5c('0xf5f')]=_0x485503;},{'lodash/merge':0x11c,'prop-types':0x12a,'react':'react','reactcss':0x16b}],0x13c:[function(_0x2580d0,_0x22d2e3,_0x2f96fd){var _0x2d1bad=_0x548f48;'use strict';Object['defineProperty'](_0x2f96fd,_0x2d1bad('0xce5'),{'value':!0x0}),_0x2f96fd[_0x2d1bad('0xb2c')]=void 0x0;var _0x233a08=function(){function _0x334fb9(_0x3da3cb,_0x3af89c){var _0x3ca8e4=_0x5376;for(var _0x285613=0x0;_0x285613<_0x3af89c[_0x3ca8e4('0x13')];_0x285613++){var _0x5510ff=_0x3af89c[_0x285613];_0x5510ff['enumerable']=_0x5510ff[_0x3ca8e4('0x3bf')]||!0x1,_0x5510ff['configurable']=!0x0,_0x3ca8e4('0x30')in _0x5510ff&&(_0x5510ff[_0x3ca8e4('0x820')]=!0x0),Object['defineProperty'](_0x3da3cb,_0x5510ff[_0x3ca8e4('0x86f')],_0x5510ff);}}return function(_0x1fdf10,_0x13a6f2,_0x4dd908){var _0x6d5418=_0x5376;return _0x13a6f2&&_0x334fb9(_0x1fdf10[_0x6d5418('0xe02')],_0x13a6f2),_0x4dd908&&_0x334fb9(_0x1fdf10,_0x4dd908),_0x1fdf10;};}(),_0x1f81c4=_0x2580d0(_0x2d1bad('0xb11')),_0x440ede=_0x2c1713(_0x1f81c4),_0x3ff42d=_0x2c1713(_0x2580d0('reactcss')),_0x381964=_0x2c1713(_0x2580d0(_0x2d1bad('0x296'))),_0x1edffc=function(_0x57a639){var _0x3d3157=_0x2d1bad;if(_0x57a639&&_0x57a639[_0x3d3157('0xce5')])return _0x57a639;var _0x59eb11={};if(null!=_0x57a639)for(var _0x197686 in _0x57a639)Object[_0x3d3157('0xe02')][_0x3d3157('0xe9c')][_0x3d3157('0xfd2')](_0x57a639,_0x197686)&&(_0x59eb11[_0x197686]=_0x57a639[_0x197686]);return _0x59eb11[_0x3d3157('0xf5f')]=_0x57a639,_0x59eb11;}(_0x2580d0(_0x2d1bad('0xf9b')));function _0x2c1713(_0x4725a2){var _0x250af7=_0x2d1bad;return _0x4725a2&&_0x4725a2[_0x250af7('0xce5')]?_0x4725a2:{'default':_0x4725a2};}var _0x52b7eb=_0x2f96fd[_0x2d1bad('0xb2c')]=function(_0x46b99a){var _0x2e3646=_0x2d1bad;function _0xebd08f(_0x9f4001){var _0x47e42d=_0x5376;!function(_0x164cfb,_0x119b55){var _0x359bbd=_0x5376;if(!(_0x164cfb instanceof _0x119b55))throw new TypeError(_0x359bbd('0xf98'));}(this,_0xebd08f);var _0x14ec3f=function(_0x3ca24a,_0x59c6b1){var _0x1daabf=_0x5376;if(!_0x3ca24a)throw new ReferenceError(_0x1daabf('0xe0d'));return!_0x59c6b1||_0x1daabf('0xb3f')!=typeof _0x59c6b1&&_0x1daabf('0x106c')!=typeof _0x59c6b1?_0x3ca24a:_0x59c6b1;}(this,(_0xebd08f['__proto__']||Object['getPrototypeOf'](_0xebd08f))[_0x47e42d('0xfd2')](this,_0x9f4001));return _0x14ec3f['handleChange']=function(_0x5d9553){var _0x252b07=_0x47e42d;'function'==typeof _0x14ec3f[_0x252b07('0x1136')][_0x252b07('0x3f9')]&&_0x14ec3f[_0x252b07('0x98a')](_0x14ec3f[_0x252b07('0x1136')][_0x252b07('0x3f9')],_0x1edffc['calculateChange'](_0x5d9553,_0x14ec3f[_0x252b07('0x1136')][_0x252b07('0xb23')],_0x14ec3f[_0x252b07('0x25c')]),_0x5d9553);},_0x14ec3f[_0x47e42d('0x87')]=function(_0x57854b){var _0x17dfc5=_0x47e42d;_0x14ec3f[_0x17dfc5('0x25e')](_0x57854b);var _0x5cf286=_0x14ec3f[_0x17dfc5('0xad3')]();_0x5cf286[_0x17dfc5('0x363')](_0x17dfc5('0x827'),_0x14ec3f[_0x17dfc5('0x25e')]),_0x5cf286[_0x17dfc5('0x363')](_0x17dfc5('0x517'),_0x14ec3f[_0x17dfc5('0xc74')]);},_0x14ec3f['handleMouseUp']=function(){var _0x487a9e=_0x47e42d;_0x14ec3f[_0x487a9e('0xc07')]();},_0x14ec3f[_0x47e42d('0x98a')]=(0x0,_0x381964[_0x47e42d('0xf5f')])(function(_0x179a5a,_0x39550d,_0x2fb0b3){_0x179a5a(_0x39550d,_0x2fb0b3);},0x32),_0x14ec3f;}return function(_0x33ea42,_0x1e984a){var _0x281c5d=_0x5376;if(_0x281c5d('0x106c')!=typeof _0x1e984a&&null!==_0x1e984a)throw new TypeError(_0x281c5d('0x131')+typeof _0x1e984a);_0x33ea42['prototype']=Object[_0x281c5d('0xbd0')](_0x1e984a&&_0x1e984a[_0x281c5d('0xe02')],{'constructor':{'value':_0x33ea42,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x1e984a&&(Object['setPrototypeOf']?Object[_0x281c5d('0x3df')](_0x33ea42,_0x1e984a):_0x33ea42[_0x281c5d('0x112c')]=_0x1e984a);}(_0xebd08f,_0x46b99a),_0x233a08(_0xebd08f,[{'key':_0x2e3646('0x939'),'value':function(){var _0x558e15=_0x2e3646;this['throttle']['cancel'](),this[_0x558e15('0xc07')]();}},{'key':'getContainerRenderWindow','value':function(){var _0x378cc5=_0x2e3646;for(var _0xad1269=this['container'],_0x3c4403=window;!_0x3c4403[_0x378cc5('0x7bb')][_0x378cc5('0x4cc')](_0xad1269)&&_0x3c4403[_0x378cc5('0xb69')]!==_0x3c4403;)_0x3c4403=_0x3c4403[_0x378cc5('0xb69')];return _0x3c4403;}},{'key':_0x2e3646('0xc07'),'value':function(){var _0x4493c4=_0x2e3646,_0x3c225a=this[_0x4493c4('0xad3')]();_0x3c225a[_0x4493c4('0xb5a')]('mousemove',this[_0x4493c4('0x25e')]),_0x3c225a[_0x4493c4('0xb5a')](_0x4493c4('0x517'),this[_0x4493c4('0xc74')]);}},{'key':_0x2e3646('0xb9b'),'value':function(){var _0x39f448=_0x2e3646,_0x4f8ede=this,_0x10f716=this[_0x39f448('0x1136')][_0x39f448('0xe81')]||{},_0x46ced9=_0x10f716['color'],_0x4a78d9=_0x10f716['white'],_0x507139=_0x10f716[_0x39f448('0xef9')],_0x483f3e=_0x10f716[_0x39f448('0x3e1')],_0x1309e3=_0x10f716[_0x39f448('0xe66')],_0x1d1279=(0x0,_0x3ff42d[_0x39f448('0xf5f')])({'default':{'color':{'absolute':_0x39f448('0x10b7'),'background':'hsl('+this[_0x39f448('0x1136')]['hsl']['h']+',100%,\x2050%)','borderRadius':this[_0x39f448('0x1136')][_0x39f448('0xe06')]},'white':{'absolute':_0x39f448('0x10b7'),'borderRadius':this[_0x39f448('0x1136')][_0x39f448('0xe06')]},'black':{'absolute':'0px\x200px\x200px\x200px','boxShadow':this[_0x39f448('0x1136')][_0x39f448('0x836')],'borderRadius':this[_0x39f448('0x1136')][_0x39f448('0xe06')]},'pointer':{'position':_0x39f448('0xee9'),'top':-0x64*this[_0x39f448('0x1136')][_0x39f448('0xd71')]['v']+0x64+'%','left':0x64*this[_0x39f448('0x1136')][_0x39f448('0xd71')]['s']+'%','cursor':'default'},'circle':{'width':'4px','height':'4px','boxShadow':'0\x200\x200\x201.5px\x20#fff,\x20inset\x200\x200\x201px\x201px\x20rgba(0,0,0,.3),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200\x200\x201px\x202px\x20rgba(0,0,0,.4)','borderRadius':'50%','cursor':_0x39f448('0xd96'),'transform':_0x39f448('0xb27')}},'custom':{'color':_0x46ced9,'white':_0x4a78d9,'black':_0x507139,'pointer':_0x483f3e,'circle':_0x1309e3}},{'custom':!!this[_0x39f448('0x1136')][_0x39f448('0xe81')]});return _0x440ede[_0x39f448('0xf5f')][_0x39f448('0xfa9')]('div',{'style':_0x1d1279['color'],'ref':function(_0x35f20c){var _0x6f3249=_0x39f448;return _0x4f8ede[_0x6f3249('0x25c')]=_0x35f20c;},'onMouseDown':this[_0x39f448('0x87')],'onTouchMove':this[_0x39f448('0x25e')],'onTouchStart':this[_0x39f448('0x25e')]},_0x440ede[_0x39f448('0xf5f')]['createElement'](_0x39f448('0xe81'),null,'\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.saturation-white\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20-webkit-linear-gradient(to\x20right,\x20#fff,\x20rgba(255,255,255,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(to\x20right,\x20#fff,\x20rgba(255,255,255,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.saturation-black\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20-webkit-linear-gradient(to\x20top,\x20#000,\x20rgba(0,0,0,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(to\x20top,\x20#000,\x20rgba(0,0,0,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20'),_0x440ede['default']['createElement']('div',{'style':_0x1d1279[_0x39f448('0x866')],'className':'saturation-white'},_0x440ede[_0x39f448('0xf5f')]['createElement'](_0x39f448('0x26c'),{'style':_0x1d1279[_0x39f448('0xef9')],'className':'saturation-black'}),_0x440ede[_0x39f448('0xf5f')][_0x39f448('0xfa9')]('div',{'style':_0x1d1279['pointer']},this['props'][_0x39f448('0x3e1')]?_0x440ede[_0x39f448('0xf5f')]['createElement'](this[_0x39f448('0x1136')][_0x39f448('0x3e1')],this['props']):_0x440ede[_0x39f448('0xf5f')]['createElement'](_0x39f448('0x26c'),{'style':_0x1d1279[_0x39f448('0xe66')]}))));}}]),_0xebd08f;}(_0x1f81c4['PureComponent']||_0x1f81c4[_0x2d1bad('0x42')]);_0x2f96fd[_0x2d1bad('0xf5f')]=_0x52b7eb;},{'../../helpers/saturation':0x161,'lodash/throttle':0x121,'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x13d:[function(_0x5957ea,_0x102b90,_0x257f48){var _0x4d4b6f=_0x548f48;'use strict';Object[_0x4d4b6f('0x9a5')](_0x257f48,_0x4d4b6f('0xce5'),{'value':!0x0}),_0x257f48[_0x4d4b6f('0x2aa')]=void 0x0;var _0xd736f0=Object['assign']||function(_0x1af927){var _0x3085f2=_0x4d4b6f;for(var _0x31473f=0x1;_0x31473f0.5});return _0x52e586[_0x5748db('0xf5f')]['createElement'](_0x5748db('0x26c'),{'style':_0x59ed87[_0x5748db('0xb01')]});};_0x35e77e['default']=_0x413ba8;},{'react':'react','reactcss':0x16b}],0x150:[function(_0x20f11e,_0x5747f2,_0x3cb157){var _0x5a0e04=_0x548f48;'use strict';Object['defineProperty'](_0x3cb157,_0x5a0e04('0xce5'),{'value':!0x0}),_0x3cb157[_0x5a0e04('0x620')]=void 0x0;var _0x3b317e=_0x446043(_0x20f11e(_0x5a0e04('0xb11'))),_0x1f3770=_0x446043(_0x20f11e(_0x5a0e04('0x63b')));function _0x446043(_0x1b9b7c){var _0x227d89=_0x5a0e04;return _0x1b9b7c&&_0x1b9b7c[_0x227d89('0xce5')]?_0x1b9b7c:{'default':_0x1b9b7c};}var _0x51e911=_0x3cb157[_0x5a0e04('0x620')]=function(_0x1f6a48){var _0xb5d441=_0x5a0e04,_0x19905c=_0x1f6a48[_0xb5d441('0xb56')],_0x4ccad3=_0x1f6a48['currentColor'],_0x19c52f=(0x0,_0x1f3770[_0xb5d441('0xf5f')])({'default':{'swatches':{'border':'1px\x20solid\x20#B3B3B3','borderBottom':_0xb5d441('0xffa'),'marginBottom':_0xb5d441('0xcd3'),'marginTop':_0xb5d441('0x7eb')},'new':{'height':_0xb5d441('0xa26'),'background':'rgb('+_0x19905c['r']+','+_0x19905c['g']+',\x20'+_0x19905c['b']+')','boxShadow':_0xb5d441('0xa78')},'current':{'height':_0xb5d441('0xa26'),'background':_0x4ccad3,'boxShadow':'inset\x201px\x200\x200\x20#000,\x20inset\x20-1px\x200\x200\x20#000,\x20inset\x200\x20-1px\x200\x20#000'},'label':{'fontSize':'14px','color':'#000','textAlign':_0xb5d441('0x40c')}}});return _0x3b317e[_0xb5d441('0xf5f')][_0xb5d441('0xfa9')](_0xb5d441('0x26c'),null,_0x3b317e[_0xb5d441('0xf5f')][_0xb5d441('0xfa9')](_0xb5d441('0x26c'),{'style':_0x19c52f[_0xb5d441('0xf3c')]},_0xb5d441('0xccb')),_0x3b317e[_0xb5d441('0xf5f')][_0xb5d441('0xfa9')]('div',{'style':_0x19c52f[_0xb5d441('0xce2')]},_0x3b317e[_0xb5d441('0xf5f')][_0xb5d441('0xfa9')](_0xb5d441('0x26c'),{'style':_0x19c52f[_0xb5d441('0xccb')]}),_0x3b317e['default'][_0xb5d441('0xfa9')]('div',{'style':_0x19c52f['current']})),_0x3b317e[_0xb5d441('0xf5f')][_0xb5d441('0xfa9')](_0xb5d441('0x26c'),{'style':_0x19c52f[_0xb5d441('0xf3c')]},'current'));};_0x3cb157[_0x5a0e04('0xf5f')]=_0x51e911;},{'react':_0x548f48('0xb11'),'reactcss':0x16b}],0x151:[function(_0x3cc2d3,_0x30a822,_0x4678ec){var _0x3509a1=_0x548f48;'use strict';Object[_0x3509a1('0x9a5')](_0x4678ec,'__esModule',{'value':!0x0}),_0x4678ec[_0x3509a1('0x4ae')]=void 0x0;var _0x52abcd=Object[_0x3509a1('0x1060')]||function(_0x5d99a6){var _0x81d5b=_0x3509a1;for(var _0xc76847=0x1;_0xc768470x64&&(_0x247ec2['a']=0x64),_0x247ec2['a']/=0x64,_0x41aa73({'h':_0x54f1ff['h'],'s':_0x54f1ff['s'],'l':_0x54f1ff['l'],'a':_0x247ec2['a'],'source':_0x215443('0xb56')},_0x415fa9));};return _0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')]('div',{'style':_0x262ddc[_0x220e89('0x535')],'className':_0x220e89('0xc2b')},_0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')]('div',{'style':_0x262ddc[_0x220e89('0xf6b')]},_0x2d4928[_0x220e89('0xf5f')]['createElement'](_0x59f806[_0x220e89('0x39c')],{'style':{'input':_0x262ddc[_0x220e89('0x2f8')],'label':_0x262ddc[_0x220e89('0xf3c')]},'label':_0x220e89('0xc10'),'value':_0x5d2ce6['replace']('#',''),'onChange':_0x24b3d0})),_0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')](_0x220e89('0x26c'),{'style':_0x262ddc[_0x220e89('0x5d0')]},_0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')](_0x59f806[_0x220e89('0x39c')],{'style':{'input':_0x262ddc[_0x220e89('0x2f8')],'label':_0x262ddc['label']},'label':'r','value':_0x114734['r'],'onChange':_0x24b3d0,'dragLabel':_0x220e89('0x9ed'),'dragMax':_0x220e89('0xd39')})),_0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')](_0x220e89('0x26c'),{'style':_0x262ddc[_0x220e89('0x5d0')]},_0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')](_0x59f806[_0x220e89('0x39c')],{'style':{'input':_0x262ddc[_0x220e89('0x2f8')],'label':_0x262ddc['label']},'label':'g','value':_0x114734['g'],'onChange':_0x24b3d0,'dragLabel':'true','dragMax':_0x220e89('0xd39')})),_0x2d4928[_0x220e89('0xf5f')]['createElement'](_0x220e89('0x26c'),{'style':_0x262ddc[_0x220e89('0x5d0')]},_0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')](_0x59f806['EditableInput'],{'style':{'input':_0x262ddc[_0x220e89('0x2f8')],'label':_0x262ddc[_0x220e89('0xf3c')]},'label':'b','value':_0x114734['b'],'onChange':_0x24b3d0,'dragLabel':_0x220e89('0x9ed'),'dragMax':_0x220e89('0xd39')})),_0x2d4928[_0x220e89('0xf5f')][_0x220e89('0xfa9')](_0x220e89('0x26c'),{'style':_0x262ddc[_0x220e89('0x83e')]},_0x2d4928[_0x220e89('0xf5f')]['createElement'](_0x59f806[_0x220e89('0x39c')],{'style':{'input':_0x262ddc[_0x220e89('0x2f8')],'label':_0x262ddc[_0x220e89('0xf3c')]},'label':'a','value':Math[_0x220e89('0x9ee')](0x64*_0x114734['a']),'onChange':_0x24b3d0,'dragLabel':_0x220e89('0x9ed'),'dragMax':_0x220e89('0x235')})));};_0x1989b6[_0x42a212('0xf5f')]=_0x4d8a9c;},{'../../helpers/color':0x15e,'../common':0x13e,'react':'react','reactcss':0x16b}],0x153:[function(_0x77c512,_0x5a0f7f,_0x18383b){var _0x48081c=_0x548f48;'use strict';Object[_0x48081c('0x9a5')](_0x18383b,_0x48081c('0xce5'),{'value':!0x0}),_0x18383b[_0x48081c('0x81c')]=void 0x0;var _0x315b73=Object[_0x48081c('0x1060')]||function(_0x2de2bc){var _0x260065=_0x48081c;for(var _0x150d0d=0x1;_0x150d0d_0x23dcb9?0x1:Math['round'](0x64*_0x542152/_0x23dcb9)/0x64,_0x7a5894['a']!==_0x52e9ca)return{'h':_0x7a5894['h'],'s':_0x7a5894['s'],'l':_0x7a5894['l'],'a':_0x52e9ca,'source':_0x493793('0xb56')};}else{var _0x172369=void 0x0;if(_0x16b4b7!==(_0x172369=_0x3e5aad<0x0?0x0:_0x3e5aad>_0x33bf3f?0x1:Math['round'](0x64*_0x3e5aad/_0x33bf3f)/0x64))return{'h':_0x7a5894['h'],'s':_0x7a5894['s'],'l':_0x7a5894['l'],'a':_0x172369,'source':_0x493793('0xb56')};}return null;};},{}],0x15d:[function(_0x258e30,_0x5a448f,_0xd9ccd4){var _0xfc8e20=_0x548f48;'use strict';Object['defineProperty'](_0xd9ccd4,_0xfc8e20('0xce5'),{'value':!0x0});var _0x4dc066={},_0x1ee6ed=_0xd9ccd4[_0xfc8e20('0xb9b')]=function(_0x536fa9,_0x23d830,_0x21e202,_0x427edb){var _0x467e40=_0xfc8e20;if(_0x467e40('0x449')==typeof document&&!_0x427edb)return null;var _0x285a3b=_0x427edb?new _0x427edb():document[_0x467e40('0xfa9')](_0x467e40('0x879'));_0x285a3b[_0x467e40('0x115')]=0x2*_0x21e202,_0x285a3b[_0x467e40('0x27b')]=0x2*_0x21e202;var _0x5d2320=_0x285a3b[_0x467e40('0xeb8')]('2d');return _0x5d2320?(_0x5d2320[_0x467e40('0x15d')]=_0x536fa9,_0x5d2320['fillRect'](0x0,0x0,_0x285a3b['width'],_0x285a3b[_0x467e40('0x27b')]),_0x5d2320[_0x467e40('0x15d')]=_0x23d830,_0x5d2320[_0x467e40('0x10e4')](0x0,0x0,_0x21e202,_0x21e202),_0x5d2320[_0x467e40('0x216')](_0x21e202,_0x21e202),_0x5d2320['fillRect'](0x0,0x0,_0x21e202,_0x21e202),_0x285a3b['toDataURL']()):null;};_0xd9ccd4[_0xfc8e20('0xd12')]=function(_0x174435,_0xb4caf0,_0x265581,_0x40e616){var _0x5602a1=_0xfc8e20,_0x2af7b7=_0x174435+'-'+_0xb4caf0+'-'+_0x265581+(_0x40e616?_0x5602a1('0x4da'):'');if(_0x4dc066[_0x2af7b7])return _0x4dc066[_0x2af7b7];var _0x3c09f2=_0x1ee6ed(_0x174435,_0xb4caf0,_0x265581,_0x40e616);return _0x4dc066[_0x2af7b7]=_0x3c09f2,_0x3c09f2;};},{}],0x15e:[function(_0x3f7132,_0x27d0e7,_0x4c2e65){var _0x296bc5=_0x548f48;'use strict';Object['defineProperty'](_0x4c2e65,_0x296bc5('0xce5'),{'value':!0x0}),_0x4c2e65[_0x296bc5('0xc97')]=_0x4c2e65['red']=_0x4c2e65[_0x296bc5('0x52a')]=_0x4c2e65['isValidHex']=_0x4c2e65[_0x296bc5('0xae')]=_0x4c2e65['simpleCheckForValidColor']=void 0x0;var _0x3a7d93=_0x5c807e(_0x3f7132(_0x296bc5('0xd5'))),_0x38ab57=_0x5c807e(_0x3f7132('tinycolor2'));function _0x5c807e(_0xd31fa0){var _0x226c84=_0x296bc5;return _0xd31fa0&&_0xd31fa0[_0x226c84('0xce5')]?_0xd31fa0:{'default':_0xd31fa0};}_0x4c2e65[_0x296bc5('0xf24')]=function(_0x190aa9){var _0x4731f6=0x0,_0x4c707a=0x0;return(0x0,_0x3a7d93['default'])(['r','g','b','a','h','s','l','v'],function(_0x4fe9da){var _0x1a64f8=_0x5376;_0x190aa9[_0x4fe9da]&&(_0x4731f6+=0x1,isNaN(_0x190aa9[_0x4fe9da])||(_0x4c707a+=0x1),'s'===_0x4fe9da||'l'===_0x4fe9da)&&(/^\d+%$/[_0x1a64f8('0x2c3')](_0x190aa9[_0x4fe9da])&&(_0x4c707a+=0x1));}),_0x4731f6===_0x4c707a&&_0x190aa9;};var _0x43e193=_0x4c2e65[_0x296bc5('0xae')]=function(_0x20343f,_0x47af0c){var _0xcb0fd3=_0x296bc5,_0x64c671=_0x20343f[_0xcb0fd3('0xc10')]?(0x0,_0x38ab57[_0xcb0fd3('0xf5f')])(_0x20343f['hex']):(0x0,_0x38ab57[_0xcb0fd3('0xf5f')])(_0x20343f),_0x1e1b32=_0x64c671[_0xcb0fd3('0x99d')](),_0x481c71=_0x64c671['toHsv'](),_0xb09bbf=_0x64c671[_0xcb0fd3('0x8a3')](),_0x116270=_0x64c671[_0xcb0fd3('0xfe1')]();return 0x0===_0x1e1b32['s']&&(_0x1e1b32['h']=_0x47af0c||0x0,_0x481c71['h']=_0x47af0c||0x0),{'hsl':_0x1e1b32,'hex':_0xcb0fd3('0x77e')===_0x116270&&0x0===_0xb09bbf['a']?_0xcb0fd3('0x671'):'#'+_0x116270,'rgb':_0xb09bbf,'hsv':_0x481c71,'oldHue':_0x20343f['h']||_0x47af0c||_0x1e1b32['h'],'source':_0x20343f[_0xcb0fd3('0x5f3')]};};_0x4c2e65[_0x296bc5('0x6aa')]=function(_0x879c65){var _0x4897fd=_0x296bc5;if(_0x4897fd('0x671')===_0x879c65)return!0x0;var _0x4f56a0='#'===String(_0x879c65)['charAt'](0x0)?0x1:0x0;return _0x879c65[_0x4897fd('0x13')]!==0x4+_0x4f56a0&&_0x879c65[_0x4897fd('0x13')]<0x7+_0x4f56a0&&(0x0,_0x38ab57[_0x4897fd('0xf5f')])(_0x879c65)[_0x4897fd('0x226')]();},_0x4c2e65[_0x296bc5('0x52a')]=function(_0x2a9dde){var _0x3dd771=_0x296bc5;if(!_0x2a9dde)return'#fff';var _0x552049=_0x43e193(_0x2a9dde);return'transparent'===_0x552049[_0x3dd771('0xc10')]?_0x3dd771('0xc4b'):(0x12b*_0x552049[_0x3dd771('0xb56')]['r']+0x24b*_0x552049[_0x3dd771('0xb56')]['g']+0x72*_0x552049[_0x3dd771('0xb56')]['b'])/0x3e8>=0x80?_0x3dd771('0x122'):_0x3dd771('0x310');},_0x4c2e65[_0x296bc5('0xd50')]={'hsl':{'a':0x1,'h':0x0,'l':0.5,'s':0x1},'hex':_0x296bc5('0x38a'),'rgb':{'r':0xff,'g':0x0,'b':0x0,'a':0x1},'hsv':{'h':0x0,'s':0x1,'v':0x1,'a':0x1}},_0x4c2e65[_0x296bc5('0xc97')]=function(_0x269f5b,_0x6ae1c5){var _0x124469=_0x296bc5,_0x38bc7d=_0x269f5b[_0x124469('0xd06')]('°','');return(0x0,_0x38ab57[_0x124469('0xf5f')])(_0x6ae1c5+'\x20('+_0x38bc7d+')')[_0x124469('0x103d')];};},{'lodash/each':0x101,'tinycolor2':0x16f}],0x15f:[function(_0x33328f,_0x47c072,_0x39f42d){var _0x441a7f=_0x548f48;'use strict';Object[_0x441a7f('0x9a5')](_0x39f42d,_0x441a7f('0xce5'),{'value':!0x0}),_0x39f42d[_0x441a7f('0x8c6')]=function(_0x4ba3d7,_0x4444de,_0x31adaa,_0x1de87a){var _0x20c170=_0x441a7f,_0x1d370d=_0x1de87a[_0x20c170('0xddd')],_0x1531eb=_0x1de87a['clientHeight'],_0x34f35e=_0x20c170('0x67b')==typeof _0x4ba3d7[_0x20c170('0x8b5')]?_0x4ba3d7[_0x20c170('0x8b5')]:_0x4ba3d7['touches'][0x0][_0x20c170('0x8b5')],_0x4fe1ea=_0x20c170('0x67b')==typeof _0x4ba3d7[_0x20c170('0x1075')]?_0x4ba3d7[_0x20c170('0x1075')]:_0x4ba3d7['touches'][0x0]['pageY'],_0x38b67f=_0x34f35e-(_0x1de87a[_0x20c170('0x422')]()[_0x20c170('0x10fb')]+window[_0x20c170('0xbc1')]),_0x3ac9ab=_0x4fe1ea-(_0x1de87a['getBoundingClientRect']()['top']+window['pageYOffset']);if(_0x20c170('0x952')===_0x4444de){var _0xe78246=void 0x0;if(_0x3ac9ab<0x0)_0xe78246=0x167;else{if(_0x3ac9ab>_0x1531eb)_0xe78246=0x0;else _0xe78246=0x168*(-0x64*_0x3ac9ab/_0x1531eb+0x64)/0x64;}if(_0x31adaa['h']!==_0xe78246)return{'h':_0xe78246,'s':_0x31adaa['s'],'l':_0x31adaa['l'],'a':_0x31adaa['a'],'source':_0x20c170('0xb23')};}else{var _0x5b51a9=void 0x0;if(_0x38b67f<0x0)_0x5b51a9=0x0;else{if(_0x38b67f>_0x1d370d)_0x5b51a9=0x167;else _0x5b51a9=0x168*(0x64*_0x38b67f/_0x1d370d)/0x64;}if(_0x31adaa['h']!==_0x5b51a9)return{'h':_0x5b51a9,'s':_0x31adaa['s'],'l':_0x31adaa['l'],'a':_0x31adaa['a'],'source':_0x20c170('0xb23')};}return null;};},{}],0x160:[function(_0x17ba41,_0x23a38f,_0x11f4e6){var _0x3e5a17=_0x548f48;'use strict';Object[_0x3e5a17('0x9a5')](_0x11f4e6,_0x3e5a17('0xce5'),{'value':!0x0}),_0x11f4e6['handleFocus']=void 0x0;var _0x5b3296,_0x5f01c1=Object['assign']||function(_0x33a7af){var _0x2ab053=_0x3e5a17;for(var _0x4f0634=0x1;_0x4f06340x1&&void 0x0!==arguments[0x1]?arguments[0x1]:_0x3125eb('0x10c');return function(_0x35aaa6){var _0x10b20f=_0x3125eb;function _0x52aabf(){var _0x26b36e=_0x5376,_0x53ad37,_0x5eab77,_0x5c1cb8;_0x4d6af3(this,_0x52aabf);for(var _0x4a81ce=arguments['length'],_0x33740c=Array(_0x4a81ce),_0x170726=0x0;_0x170726<_0x4a81ce;_0x170726++)_0x33740c[_0x170726]=arguments[_0x170726];return _0x5eab77=_0x5c1cb8=_0x10b4c8(this,(_0x53ad37=_0x52aabf[_0x26b36e('0x112c')]||Object[_0x26b36e('0x2d9')](_0x52aabf))[_0x26b36e('0xfd2')][_0x26b36e('0x2be')](_0x53ad37,[this][_0x26b36e('0xda9')](_0x33740c))),_0x5c1cb8[_0x26b36e('0x55d')]={'focus':!0x1},_0x5c1cb8[_0x26b36e('0x448')]=function(){var _0x35d0d0=_0x26b36e;return _0x5c1cb8[_0x35d0d0('0x1089')]({'focus':!0x0});},_0x5c1cb8['handleBlur']=function(){var _0xb953ed=_0x26b36e;return _0x5c1cb8[_0xb953ed('0x1089')]({'focus':!0x1});},_0x10b4c8(_0x5c1cb8,_0x5eab77);}return _0x4af583(_0x52aabf,_0x35aaa6),_0xa7330(_0x52aabf,[{'key':_0x10b20f('0xb9b'),'value':function(){var _0xd5a728=_0x10b20f;return _0x466535[_0xd5a728('0xf5f')][_0xd5a728('0xfa9')](_0x104dfc,{'onFocus':this[_0xd5a728('0x448')],'onBlur':this[_0xd5a728('0x6f2')]},_0x466535[_0xd5a728('0xf5f')][_0xd5a728('0xfa9')](_0x19e0e5,_0x5f01c1({},this['props'],this[_0xd5a728('0x55d')])));}}]),_0x52aabf;}(_0x466535[_0x3125eb('0xf5f')][_0x3125eb('0x42')]);};},{'react':_0x548f48('0xb11')}],0x161:[function(_0x33b0a3,_0x441913,_0xdc2c44){var _0x3ec735=_0x548f48;'use strict';Object['defineProperty'](_0xdc2c44,'__esModule',{'value':!0x0}),_0xdc2c44[_0x3ec735('0x8c6')]=function(_0x5ee420,_0x3f27d2,_0x12da7d){var _0x498c65=_0x3ec735,_0xdcaae6=_0x12da7d[_0x498c65('0x422')](),_0x4c869e=_0xdcaae6['width'],_0xbcd009=_0xdcaae6[_0x498c65('0x27b')],_0x25005b=_0x498c65('0x67b')==typeof _0x5ee420[_0x498c65('0x8b5')]?_0x5ee420[_0x498c65('0x8b5')]:_0x5ee420['touches'][0x0][_0x498c65('0x8b5')],_0xd248e6=_0x498c65('0x67b')==typeof _0x5ee420[_0x498c65('0x1075')]?_0x5ee420[_0x498c65('0x1075')]:_0x5ee420[_0x498c65('0xda4')][0x0]['pageY'],_0x28ea53=_0x25005b-(_0x12da7d[_0x498c65('0x422')]()[_0x498c65('0x10fb')]+window[_0x498c65('0xbc1')]),_0x23f80d=_0xd248e6-(_0x12da7d[_0x498c65('0x422')]()[_0x498c65('0x5b')]+window[_0x498c65('0x909')]);_0x28ea53<0x0?_0x28ea53=0x0:_0x28ea53>_0x4c869e&&(_0x28ea53=_0x4c869e),_0x23f80d<0x0?_0x23f80d=0x0:_0x23f80d>_0xbcd009&&(_0x23f80d=_0xbcd009);var _0x472d90=_0x28ea53/_0x4c869e,_0x2a2876=0x1-_0x23f80d/_0xbcd009;return{'h':_0x3f27d2['h'],'s':_0x472d90,'v':_0x2a2876,'a':_0x3f27d2['a'],'source':_0x498c65('0xd71')};};},{}],0x162:[function(_0xfc367d,_0x34ae21,_0x229b47){var _0x2db97f=_0x548f48;'use strict';Object['defineProperty'](_0x229b47,_0x2db97f('0xce5'),{'value':!0x0}),_0x229b47[_0x2db97f('0xd26')]=_0x229b47[_0x2db97f('0x6fb')]=_0x229b47['TwitterPicker']=_0x229b47['SwatchesPicker']=_0x229b47[_0x2db97f('0xe47')]=_0x229b47[_0x2db97f('0x119')]=_0x229b47[_0x2db97f('0x2e8')]=_0x229b47[_0x2db97f('0x8ce')]=_0x229b47[_0x2db97f('0x464')]=_0x229b47[_0x2db97f('0x7f4')]=_0x229b47['CompactPicker']=_0x229b47[_0x2db97f('0x1097')]=_0x229b47[_0x2db97f('0xf5f')]=_0x229b47[_0x2db97f('0x8dc')]=_0x229b47['BlockPicker']=_0x229b47[_0x2db97f('0x22b')]=void 0x0;var _0x5433a2=_0xfc367d(_0x2db97f('0xd38'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0x22b'),{'enumerable':!0x0,'get':function(){var _0x3b6c8f=_0x2db97f;return _0x213586(_0x5433a2)[_0x3b6c8f('0xf5f')];}});var _0x21976c=_0xfc367d(_0x2db97f('0xf06'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0x59f'),{'enumerable':!0x0,'get':function(){return _0x213586(_0x21976c)['default'];}});var _0x40badc=_0xfc367d(_0x2db97f('0x1079'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0x8dc'),{'enumerable':!0x0,'get':function(){var _0x114641=_0x2db97f;return _0x213586(_0x40badc)[_0x114641('0xf5f')];}});var _0x43c5eb=_0xfc367d('./components/chrome/Chrome');Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0x1097'),{'enumerable':!0x0,'get':function(){var _0x1e8eac=_0x2db97f;return _0x213586(_0x43c5eb)[_0x1e8eac('0xf5f')];}});var _0x2dbaf4=_0xfc367d(_0x2db97f('0x79d'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0x1168'),{'enumerable':!0x0,'get':function(){return _0x213586(_0x2dbaf4)['default'];}});var _0x3207c3=_0xfc367d(_0x2db97f('0x9b4'));Object['defineProperty'](_0x229b47,_0x2db97f('0x7f4'),{'enumerable':!0x0,'get':function(){var _0x7ea46f=_0x2db97f;return _0x213586(_0x3207c3)[_0x7ea46f('0xf5f')];}});var _0x3edb6e=_0xfc367d('./components/hue/Hue');Object['defineProperty'](_0x229b47,_0x2db97f('0x464'),{'enumerable':!0x0,'get':function(){var _0x4e45dd=_0x2db97f;return _0x213586(_0x3edb6e)[_0x4e45dd('0xf5f')];}});var _0x9c515e=_0xfc367d('./components/material/Material');Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0x8ce'),{'enumerable':!0x0,'get':function(){var _0x37cc34=_0x2db97f;return _0x213586(_0x9c515e)[_0x37cc34('0xf5f')];}});var _0x2cf52d=_0xfc367d(_0x2db97f('0x576'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0x2e8'),{'enumerable':!0x0,'get':function(){var _0xf43707=_0x2db97f;return _0x213586(_0x2cf52d)[_0xf43707('0xf5f')];}});var _0x5b3b07=_0xfc367d(_0x2db97f('0x2a7'));Object['defineProperty'](_0x229b47,_0x2db97f('0x119'),{'enumerable':!0x0,'get':function(){var _0x5a9517=_0x2db97f;return _0x213586(_0x5b3b07)[_0x5a9517('0xf5f')];}});var _0x173a05=_0xfc367d(_0x2db97f('0xfdd'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0xe47'),{'enumerable':!0x0,'get':function(){var _0x41308d=_0x2db97f;return _0x213586(_0x173a05)[_0x41308d('0xf5f')];}});var _0x28f790=_0xfc367d(_0x2db97f('0xb2e'));Object[_0x2db97f('0x9a5')](_0x229b47,'SwatchesPicker',{'enumerable':!0x0,'get':function(){return _0x213586(_0x28f790)['default'];}});var _0x1b664e=_0xfc367d(_0x2db97f('0xb'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0xdb6'),{'enumerable':!0x0,'get':function(){var _0xf44e3d=_0x2db97f;return _0x213586(_0x1b664e)[_0xf44e3d('0xf5f')];}});var _0x302aa5=_0xfc367d(_0x2db97f('0xd1d'));Object['defineProperty'](_0x229b47,_0x2db97f('0x6fb'),{'enumerable':!0x0,'get':function(){var _0x4cd4b8=_0x2db97f;return _0x213586(_0x302aa5)[_0x4cd4b8('0xf5f')];}});var _0x498ce6=_0xfc367d(_0x2db97f('0xa1f'));Object[_0x2db97f('0x9a5')](_0x229b47,_0x2db97f('0xd26'),{'enumerable':!0x0,'get':function(){var _0x2b8c32=_0x2db97f;return _0x213586(_0x498ce6)[_0x2b8c32('0xf5f')];}});var _0x492b99=_0x213586(_0x43c5eb);function _0x213586(_0x233a71){var _0x22784b=_0x2db97f;return _0x233a71&&_0x233a71[_0x22784b('0xce5')]?_0x233a71:{'default':_0x233a71};}_0x229b47[_0x2db97f('0xf5f')]=_0x492b99['default'];},{'./components/alpha/Alpha':0x12c,'./components/block/Block':0x12e,'./components/chrome/Chrome':0x130,'./components/circle/Circle':0x134,'./components/common/ColorWrap':0x138,'./components/compact/Compact':0x13f,'./components/github/Github':0x142,'./components/google/Google':0x144,'./components/hue/Hue':0x148,'./components/material/Material':0x14a,'./components/photoshop/Photoshop':0x14b,'./components/sketch/Sketch':0x151,'./components/slider/Slider':0x154,'./components/swatches/Swatches':0x158,'./components/twitter/Twitter':0x15b}],0x163:[function(_0x2afa36,_0x552701,_0x1b0098){var _0x545c0c=_0x548f48;(function(_0x193ca5){var _0x4e4131=_0x5376;/** @license React v16.13.1 + +'use strict'; +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + +},{}],295:[function(require,module,exports){ +(function (process){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + var loggedTypeFailures = {}; + var has = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } +} + +/** + * Resets warning cache when testing. + * + * @private + */ +checkPropTypes.resetWarningCache = function() { + if (process.env.NODE_ENV !== 'production') { + loggedTypeFailures = {}; + } +} + +module.exports = checkPropTypes; + +}).call(this,require('_process')) + +},{"./lib/ReactPropTypesSecret":299,"_process":1}],296:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + +function emptyFunction() {} +function emptyFunctionWithReset() {} +emptyFunctionWithReset.resetWarningCache = emptyFunction; + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, + + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; + + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +},{"./lib/ReactPropTypesSecret":299}],297:[function(require,module,exports){ +(function (process){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactIs = require('react-is'); +var assign = require('object-assign'); + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); +var checkPropTypes = require('./checkPropTypes'); + +var has = Function.call.bind(Object.prototype.hasOwnProperty); +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +function emptyFunctionThatReturnsNull() { + return null; +} + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (process.env.NODE_ENV !== 'production') { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +}).call(this,require('_process')) + +},{"./checkPropTypes":295,"./lib/ReactPropTypesSecret":299,"_process":1,"object-assign":294,"react-is":357}],298:[function(require,module,exports){ +(function (process){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (process.env.NODE_ENV !== 'production') { + var ReactIs = require('react-is'); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = require('./factoryWithThrowingShims')(); +} + +}).call(this,require('_process')) + +},{"./factoryWithThrowingShims":296,"./factoryWithTypeCheckers":297,"_process":1,"react-is":357}],299:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + +},{}],300:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AlphaPicker = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +var _AlphaPointer = require('./AlphaPointer'); + +var _AlphaPointer2 = _interopRequireDefault(_AlphaPointer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AlphaPicker = exports.AlphaPicker = function AlphaPicker(_ref) { + var rgb = _ref.rgb, + hsl = _ref.hsl, + width = _ref.width, + height = _ref.height, + onChange = _ref.onChange, + direction = _ref.direction, + style = _ref.style, + renderers = _ref.renderers, + pointer = _ref.pointer, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + position: 'relative', + width: width, + height: height + }, + alpha: { + radius: '2px', + style: style + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'alpha-picker ' + className }, + _react2.default.createElement(_common.Alpha, _extends({}, styles.alpha, { + rgb: rgb, + hsl: hsl, + pointer: pointer, + renderers: renderers, + onChange: onChange, + direction: direction + })) + ); +}; + +AlphaPicker.defaultProps = { + width: '316px', + height: '16px', + direction: 'horizontal', + pointer: _AlphaPointer2.default +}; + +exports.default = (0, _common.ColorWrap)(AlphaPicker); +},{"../common":318,"./AlphaPointer":301,"react":"react","reactcss":363}],301:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AlphaPointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AlphaPointer = exports.AlphaPointer = function AlphaPointer(_ref) { + var direction = _ref.direction; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '18px', + height: '18px', + borderRadius: '50%', + transform: 'translate(-9px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + }, + 'vertical': { + picker: { + transform: 'translate(-3px, -9px)' + } + } + }, { vertical: direction === 'vertical' }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = AlphaPointer; +},{"react":"react","reactcss":363}],302:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Block = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +var _BlockSwatches = require('./BlockSwatches'); + +var _BlockSwatches2 = _interopRequireDefault(_BlockSwatches); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Block = exports.Block = function Block(_ref) { + var onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + hex = _ref.hex, + colors = _ref.colors, + width = _ref.width, + triangle = _ref.triangle, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var transparent = hex === 'transparent'; + var handleChange = function handleChange(hexCode, e) { + color.isValidHex(hexCode) && onChange({ + hex: hexCode, + source: 'hex' + }, e); + }; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + background: '#fff', + boxShadow: '0 1px rgba(0,0,0,.1)', + borderRadius: '6px', + position: 'relative' + }, + head: { + height: '110px', + background: hex, + borderRadius: '6px 6px 0 0', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + position: 'relative' + }, + body: { + padding: '10px' + }, + label: { + fontSize: '18px', + color: color.getContrastingColor(hex), + position: 'relative' + }, + triangle: { + width: '0px', + height: '0px', + borderStyle: 'solid', + borderWidth: '0 10px 10px 10px', + borderColor: 'transparent transparent ' + hex + ' transparent', + position: 'absolute', + top: '-10px', + left: '50%', + marginLeft: '-10px' + }, + input: { + width: '100%', + fontSize: '12px', + color: '#666', + border: '0px', + outline: 'none', + height: '22px', + boxShadow: 'inset 0 0 0 1px #ddd', + borderRadius: '4px', + padding: '0 7px', + boxSizing: 'border-box' + } + }, + 'hide-triangle': { + triangle: { + display: 'none' + } + } + }, passedStyles), { 'hide-triangle': triangle === 'hide' }); + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'block-picker ' + className }, + _react2.default.createElement('div', { style: styles.triangle }), + _react2.default.createElement( + 'div', + { style: styles.head }, + transparent && _react2.default.createElement(_common.Checkboard, { borderRadius: '6px 6px 0 0' }), + _react2.default.createElement( + 'div', + { style: styles.label }, + hex + ) + ), + _react2.default.createElement( + 'div', + { style: styles.body }, + _react2.default.createElement(_BlockSwatches2.default, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }), + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input }, + value: hex, + onChange: handleChange + }) + ) + ); +}; + +Block.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + triangle: _propTypes2.default.oneOf(['top', 'hide']), + styles: _propTypes2.default.object +}; + +Block.defaultProps = { + width: 170, + colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'], + triangle: 'top', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Block); +},{"../../helpers/color":350,"../common":318,"./BlockSwatches":303,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],303:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BlockSwatches = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var BlockSwatches = exports.BlockSwatches = function BlockSwatches(_ref) { + var colors = _ref.colors, + onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatches: { + marginRight: '-10px' + }, + swatch: { + width: '22px', + height: '22px', + float: 'left', + marginRight: '10px', + marginBottom: '10px', + borderRadius: '4px' + }, + clear: { + clear: 'both' + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.swatches }, + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_common.Swatch, { + key: c, + color: c, + style: styles.swatch, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { + boxShadow: '0 0 4px ' + c + } + }); + }), + _react2.default.createElement('div', { style: styles.clear }) + ); +}; + +exports.default = BlockSwatches; +},{"../common":318,"lodash/map":282,"react":"react","reactcss":363}],304:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Chrome = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _ChromeFields = require('./ChromeFields'); + +var _ChromeFields2 = _interopRequireDefault(_ChromeFields); + +var _ChromePointer = require('./ChromePointer'); + +var _ChromePointer2 = _interopRequireDefault(_ChromePointer); + +var _ChromePointerCircle = require('./ChromePointerCircle'); + +var _ChromePointerCircle2 = _interopRequireDefault(_ChromePointerCircle); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Chrome = exports.Chrome = function Chrome(_ref) { + var width = _ref.width, + onChange = _ref.onChange, + disableAlpha = _ref.disableAlpha, + rgb = _ref.rgb, + hsl = _ref.hsl, + hsv = _ref.hsv, + hex = _ref.hex, + renderers = _ref.renderers, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className, + defaultView = _ref.defaultView; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + width: width, + background: '#fff', + borderRadius: '2px', + boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)', + boxSizing: 'initial', + fontFamily: 'Menlo' + }, + saturation: { + width: '100%', + paddingBottom: '55%', + position: 'relative', + borderRadius: '2px 2px 0 0', + overflow: 'hidden' + }, + Saturation: { + radius: '2px 2px 0 0' + }, + body: { + padding: '16px 16px 12px' + }, + controls: { + display: 'flex' + }, + color: { + width: '32px' + }, + swatch: { + marginTop: '6px', + width: '16px', + height: '16px', + borderRadius: '8px', + position: 'relative', + overflow: 'hidden' + }, + active: { + absolute: '0px 0px 0px 0px', + borderRadius: '8px', + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)', + background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')', + zIndex: '2' + }, + toggles: { + flex: '1' + }, + hue: { + height: '10px', + position: 'relative', + marginBottom: '8px' + }, + Hue: { + radius: '2px' + }, + alpha: { + height: '10px', + position: 'relative' + }, + Alpha: { + radius: '2px' + } + }, + 'disableAlpha': { + color: { + width: '22px' + }, + alpha: { + display: 'none' + }, + hue: { + marginBottom: '0px' + }, + swatch: { + width: '10px', + height: '10px', + marginTop: '0px' + } + } + }, passedStyles), { disableAlpha: disableAlpha }); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'chrome-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + style: styles.Saturation, + hsl: hsl, + hsv: hsv, + pointer: _ChromePointerCircle2.default, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.body }, + _react2.default.createElement( + 'div', + { style: styles.controls, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.color }, + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement('div', { style: styles.active }), + _react2.default.createElement(_common.Checkboard, { renderers: renderers }) + ) + ), + _react2.default.createElement( + 'div', + { style: styles.toggles }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + pointer: _ChromePointer2.default, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.Alpha, { + style: styles.Alpha, + rgb: rgb, + hsl: hsl, + pointer: _ChromePointer2.default, + renderers: renderers, + onChange: onChange + }) + ) + ) + ), + _react2.default.createElement(_ChromeFields2.default, { + rgb: rgb, + hsl: hsl, + hex: hex, + view: defaultView, + onChange: onChange, + disableAlpha: disableAlpha + }) + ) + ); +}; + +Chrome.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + disableAlpha: _propTypes2.default.bool, + styles: _propTypes2.default.object, + defaultView: _propTypes2.default.oneOf(["hex", "rgb", "hsl"]) +}; + +Chrome.defaultProps = { + width: 225, + disableAlpha: false, + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Chrome); +},{"../common":318,"./ChromeFields":305,"./ChromePointer":306,"./ChromePointerCircle":307,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],305:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ChromeFields = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _isUndefined = require('lodash/isUndefined'); + +var _isUndefined2 = _interopRequireDefault(_isUndefined); + +var _common = require('../common'); + +var _UnfoldMoreHorizontalIcon = require('@icons/material/UnfoldMoreHorizontalIcon'); + +var _UnfoldMoreHorizontalIcon2 = _interopRequireDefault(_UnfoldMoreHorizontalIcon); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/no-did-mount-set-state, no-param-reassign */ + +var ChromeFields = exports.ChromeFields = function (_React$Component) { + _inherits(ChromeFields, _React$Component); + + function ChromeFields(props) { + _classCallCheck(this, ChromeFields); + + var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this)); + + _this.toggleViews = function () { + if (_this.state.view === 'hex') { + _this.setState({ view: 'rgb' }); + } else if (_this.state.view === 'rgb') { + _this.setState({ view: 'hsl' }); + } else if (_this.state.view === 'hsl') { + if (_this.props.hsl.a === 1) { + _this.setState({ view: 'hex' }); + } else { + _this.setState({ view: 'rgb' }); + } + } + }; + + _this.handleChange = function (data, e) { + if (data.hex) { + color.isValidHex(data.hex) && _this.props.onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + _this.props.onChange({ + r: data.r || _this.props.rgb.r, + g: data.g || _this.props.rgb.g, + b: data.b || _this.props.rgb.b, + source: 'rgb' + }, e); + } else if (data.a) { + if (data.a < 0) { + data.a = 0; + } else if (data.a > 1) { + data.a = 1; + } + + _this.props.onChange({ + h: _this.props.hsl.h, + s: _this.props.hsl.s, + l: _this.props.hsl.l, + a: Math.round(data.a * 100) / 100, + source: 'rgb' + }, e); + } else if (data.h || data.s || data.l) { + // Remove any occurances of '%'. + if (typeof data.s === 'string' && data.s.includes('%')) { + data.s = data.s.replace('%', ''); + } + if (typeof data.l === 'string' && data.l.includes('%')) { + data.l = data.l.replace('%', ''); + } + + // We store HSL as a unit interval so we need to override the 1 input to 0.01 + if (data.s == 1) { + data.s = 0.01; + } else if (data.l == 1) { + data.l = 0.01; + } + + _this.props.onChange({ + h: data.h || _this.props.hsl.h, + s: Number(!(0, _isUndefined2.default)(data.s) ? data.s : _this.props.hsl.s), + l: Number(!(0, _isUndefined2.default)(data.l) ? data.l : _this.props.hsl.l), + source: 'hsl' + }, e); + } + }; + + _this.showHighlight = function (e) { + e.currentTarget.style.background = '#eee'; + }; + + _this.hideHighlight = function (e) { + e.currentTarget.style.background = 'transparent'; + }; + + if (props.hsl.a !== 1 && props.view === "hex") { + _this.state = { + view: "rgb" + }; + } else { + _this.state = { + view: props.view + }; + } + return _this; + } + + _createClass(ChromeFields, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var styles = (0, _reactcss2.default)({ + 'default': { + wrap: { + paddingTop: '16px', + display: 'flex' + }, + fields: { + flex: '1', + display: 'flex', + marginLeft: '-6px' + }, + field: { + paddingLeft: '6px', + width: '100%' + }, + alpha: { + paddingLeft: '6px', + width: '100%' + }, + toggle: { + width: '32px', + textAlign: 'right', + position: 'relative' + }, + icon: { + marginRight: '-4px', + marginTop: '12px', + cursor: 'pointer', + position: 'relative' + }, + iconHighlight: { + position: 'absolute', + width: '24px', + height: '28px', + background: '#eee', + borderRadius: '4px', + top: '10px', + left: '12px', + display: 'none' + }, + input: { + fontSize: '11px', + color: '#333', + width: '100%', + borderRadius: '2px', + border: 'none', + boxShadow: 'inset 0 0 0 1px #dadada', + height: '21px', + textAlign: 'center' + }, + label: { + textTransform: 'uppercase', + fontSize: '11px', + lineHeight: '11px', + color: '#969696', + textAlign: 'center', + display: 'block', + marginTop: '12px' + }, + svg: { + fill: '#333', + width: '24px', + height: '24px', + border: '1px transparent solid', + borderRadius: '5px' + } + }, + 'disableAlpha': { + alpha: { + display: 'none' + } + } + }, this.props, this.state); + + var fields = void 0; + if (this.state.view === 'hex') { + fields = _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'hex', value: this.props.hex, + onChange: this.handleChange + }) + ) + ); + } else if (this.state.view === 'rgb') { + fields = _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'r', + value: this.props.rgb.r, + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'g', + value: this.props.rgb.g, + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'b', + value: this.props.rgb.b, + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'a', + value: this.props.rgb.a, + arrowOffset: 0.01, + onChange: this.handleChange + }) + ) + ); + } else if (this.state.view === 'hsl') { + fields = _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'h', + value: Math.round(this.props.hsl.h), + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 's', + value: Math.round(this.props.hsl.s * 100) + '%', + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'l', + value: Math.round(this.props.hsl.l * 100) + '%', + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'a', + value: this.props.hsl.a, + arrowOffset: 0.01, + onChange: this.handleChange + }) + ) + ); + } + + return _react2.default.createElement( + 'div', + { style: styles.wrap, className: 'flexbox-fix' }, + fields, + _react2.default.createElement( + 'div', + { style: styles.toggle }, + _react2.default.createElement( + 'div', + { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) { + return _this2.icon = icon; + } }, + _react2.default.createElement(_UnfoldMoreHorizontalIcon2.default, { + style: styles.svg, + onMouseOver: this.showHighlight, + onMouseEnter: this.showHighlight, + onMouseOut: this.hideHighlight + }) + ) + ) + ); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, state) { + if (nextProps.hsl.a !== 1 && state.view === 'hex') { + return { view: 'rgb' }; + } + return null; + } + }]); + + return ChromeFields; +}(_react2.default.Component); + +ChromeFields.defaultProps = { + view: "hex" +}; + +exports.default = ChromeFields; +},{"../../helpers/color":350,"../common":318,"@icons/material/UnfoldMoreHorizontalIcon":82,"lodash/isUndefined":279,"react":"react","reactcss":363}],306:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ChromePointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ChromePointer = exports.ChromePointer = function ChromePointer() { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '12px', + height: '12px', + borderRadius: '6px', + transform: 'translate(-6px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = ChromePointer; +},{"react":"react","reactcss":363}],307:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ChromePointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ChromePointerCircle = exports.ChromePointerCircle = function ChromePointerCircle() { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '12px', + height: '12px', + borderRadius: '6px', + boxShadow: 'inset 0 0 0 1px #fff', + transform: 'translate(-6px, -6px)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = ChromePointerCircle; +},{"react":"react","reactcss":363}],308:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Circle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _materialColors = require('material-colors'); + +var material = _interopRequireWildcard(_materialColors); + +var _common = require('../common'); + +var _CircleSwatch = require('./CircleSwatch'); + +var _CircleSwatch2 = _interopRequireDefault(_CircleSwatch); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Circle = exports.Circle = function Circle(_ref) { + var width = _ref.width, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + colors = _ref.colors, + hex = _ref.hex, + circleSize = _ref.circleSize, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + circleSpacing = _ref.circleSpacing, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + display: 'flex', + flexWrap: 'wrap', + marginRight: -circleSpacing, + marginBottom: -circleSpacing + } + } + }, passedStyles)); + + var handleChange = function handleChange(hexCode, e) { + return onChange({ hex: hexCode, source: 'hex' }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'circle-picker ' + className }, + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_CircleSwatch2.default, { + key: c, + color: c, + onClick: handleChange, + onSwatchHover: onSwatchHover, + active: hex === c.toLowerCase(), + circleSize: circleSize, + circleSpacing: circleSpacing + }); + }) + ); +}; + +Circle.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + circleSize: _propTypes2.default.number, + circleSpacing: _propTypes2.default.number, + styles: _propTypes2.default.object +}; + +Circle.defaultProps = { + width: 252, + circleSize: 28, + circleSpacing: 14, + colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']], + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Circle); +},{"../common":318,"./CircleSwatch":309,"lodash/map":282,"lodash/merge":284,"material-colors":293,"prop-types":298,"react":"react","reactcss":363}],309:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CircleSwatch = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var CircleSwatch = exports.CircleSwatch = function CircleSwatch(_ref) { + var color = _ref.color, + onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover, + hover = _ref.hover, + active = _ref.active, + circleSize = _ref.circleSize, + circleSpacing = _ref.circleSpacing; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatch: { + width: circleSize, + height: circleSize, + marginRight: circleSpacing, + marginBottom: circleSpacing, + transform: 'scale(1)', + transition: '100ms transform ease' + }, + Swatch: { + borderRadius: '50%', + background: 'transparent', + boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color, + transition: '100ms box-shadow ease' + } + }, + 'hover': { + swatch: { + transform: 'scale(1.2)' + } + }, + 'active': { + Swatch: { + boxShadow: 'inset 0 0 0 3px ' + color + } + } + }, { hover: hover, active: active }); + + return _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_common.Swatch, { + style: styles.Swatch, + color: color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color } + }) + ); +}; + +CircleSwatch.defaultProps = { + circleSize: 28, + circleSpacing: 14 +}; + +exports.default = (0, _reactcss.handleHover)(CircleSwatch); +},{"../common":318,"react":"react","reactcss":363}],310:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Alpha = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _alpha = require('../../helpers/alpha'); + +var alpha = _interopRequireWildcard(_alpha); + +var _Checkboard = require('./Checkboard'); + +var _Checkboard2 = _interopRequireDefault(_Checkboard); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Alpha = exports.Alpha = function (_ref) { + _inherits(Alpha, _ref); + + function Alpha() { + var _ref2; + + var _temp, _this, _ret; + + _classCallCheck(this, Alpha); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) { + var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container); + change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e); + }, _this.handleMouseDown = function (e) { + _this.handleChange(e); + window.addEventListener('mousemove', _this.handleChange); + window.addEventListener('mouseup', _this.handleMouseUp); + }, _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }, _this.unbindEventListeners = function () { + window.removeEventListener('mousemove', _this.handleChange); + window.removeEventListener('mouseup', _this.handleMouseUp); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Alpha, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.unbindEventListeners(); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var rgb = this.props.rgb; + var styles = (0, _reactcss2.default)({ + 'default': { + alpha: { + absolute: '0px 0px 0px 0px', + borderRadius: this.props.radius + }, + checkboard: { + absolute: '0px 0px 0px 0px', + overflow: 'hidden', + borderRadius: this.props.radius + }, + gradient: { + absolute: '0px 0px 0px 0px', + background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)', + boxShadow: this.props.shadow, + borderRadius: this.props.radius + }, + container: { + position: 'relative', + height: '100%', + margin: '0 3px' + }, + pointer: { + position: 'absolute', + left: rgb.a * 100 + '%' + }, + slider: { + width: '4px', + borderRadius: '1px', + height: '8px', + boxShadow: '0 0 2px rgba(0, 0, 0, .6)', + background: '#fff', + marginTop: '1px', + transform: 'translateX(-2px)' + } + }, + 'vertical': { + gradient: { + background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)' + }, + pointer: { + left: 0, + top: rgb.a * 100 + '%' + } + }, + 'overwrite': _extends({}, this.props.style) + }, { + vertical: this.props.direction === 'vertical', + overwrite: true + }); + + return _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement( + 'div', + { style: styles.checkboard }, + _react2.default.createElement(_Checkboard2.default, { renderers: this.props.renderers }) + ), + _react2.default.createElement('div', { style: styles.gradient }), + _react2.default.createElement( + 'div', + { + style: styles.container, + ref: function ref(container) { + return _this2.container = container; + }, + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange + }, + _react2.default.createElement( + 'div', + { style: styles.pointer }, + this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider }) + ) + ) + ); + } + }]); + + return Alpha; +}(_react.PureComponent || _react.Component); + +exports.default = Alpha; +},{"../../helpers/alpha":348,"./Checkboard":311,"react":"react","reactcss":363}],311:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Checkboard = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _checkboard = require('../../helpers/checkboard'); + +var checkboard = _interopRequireWildcard(_checkboard); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Checkboard = exports.Checkboard = function Checkboard(_ref) { + var white = _ref.white, + grey = _ref.grey, + size = _ref.size, + renderers = _ref.renderers, + borderRadius = _ref.borderRadius, + boxShadow = _ref.boxShadow, + children = _ref.children; + + var styles = (0, _reactcss2.default)({ + 'default': { + grid: { + borderRadius: borderRadius, + boxShadow: boxShadow, + absolute: '0px 0px 0px 0px', + background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left' + } + } + }); + return (0, _react.isValidElement)(children) ? _react2.default.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : _react2.default.createElement('div', { style: styles.grid }); +}; + +Checkboard.defaultProps = { + size: 8, + white: 'transparent', + grey: 'rgba(0,0,0,.08)', + renderers: {} +}; + +exports.default = Checkboard; +},{"../../helpers/checkboard":349,"react":"react","reactcss":363}],312:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ColorWrap = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _debounce = require('lodash/debounce'); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ColorWrap = exports.ColorWrap = function ColorWrap(Picker) { + var ColorPicker = function (_ref) { + _inherits(ColorPicker, _ref); + + function ColorPicker(props) { + _classCallCheck(this, ColorPicker); + + var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this)); + + _this.handleChange = function (data, event) { + var isValidColor = color.simpleCheckForValidColor(data); + if (isValidColor) { + var colors = color.toState(data, data.h || _this.state.oldHue); + _this.setState(colors); + _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event); + _this.props.onChange && _this.props.onChange(colors, event); + } + }; + + _this.handleSwatchHover = function (data, event) { + var isValidColor = color.simpleCheckForValidColor(data); + if (isValidColor) { + var colors = color.toState(data, data.h || _this.state.oldHue); + _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event); + } + }; + + _this.state = _extends({}, color.toState(props.color, 0)); + + _this.debounce = (0, _debounce2.default)(function (fn, data, event) { + fn(data, event); + }, 100); + return _this; + } + + _createClass(ColorPicker, [{ + key: 'render', + value: function render() { + var optionalEvents = {}; + if (this.props.onSwatchHover) { + optionalEvents.onSwatchHover = this.handleSwatchHover; + } + + return _react2.default.createElement(Picker, _extends({}, this.props, this.state, { + onChange: this.handleChange + }, optionalEvents)); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, state) { + return _extends({}, color.toState(nextProps.color, state.oldHue)); + } + }]); + + return ColorPicker; + }(_react.PureComponent || _react.Component); + + ColorPicker.propTypes = _extends({}, Picker.propTypes); + + ColorPicker.defaultProps = _extends({}, Picker.defaultProps, { + color: { + h: 250, + s: 0.50, + l: 0.20, + a: 1 + } + }); + + return ColorPicker; +}; + +exports.default = ColorWrap; +},{"../../helpers/color":350,"lodash/debounce":256,"react":"react"}],313:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.EditableInput = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var DEFAULT_ARROW_OFFSET = 1; + +var UP_KEY_CODE = 38; +var DOWN_KEY_CODE = 40; +var VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE]; +var isValidKeyCode = function isValidKeyCode(keyCode) { + return VALID_KEY_CODES.indexOf(keyCode) > -1; +}; +var getNumberValue = function getNumberValue(value) { + return Number(String(value).replace(/%/g, '')); +}; + +var idCounter = 1; + +var EditableInput = exports.EditableInput = function (_ref) { + _inherits(EditableInput, _ref); + + function EditableInput(props) { + _classCallCheck(this, EditableInput); + + var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this)); + + _this.handleBlur = function () { + if (_this.state.blurValue) { + _this.setState({ value: _this.state.blurValue, blurValue: null }); + } + }; + + _this.handleChange = function (e) { + _this.setUpdatedValue(e.target.value, e); + }; + + _this.handleKeyDown = function (e) { + // In case `e.target.value` is a percentage remove the `%` character + // and update accordingly with a percentage + // https://github.com/casesandberg/react-color/issues/383 + var value = getNumberValue(e.target.value); + if (!isNaN(value) && isValidKeyCode(e.keyCode)) { + var offset = _this.getArrowOffset(); + var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset; + + _this.setUpdatedValue(updatedValue, e); + } + }; + + _this.handleDrag = function (e) { + if (_this.props.dragLabel) { + var newValue = Math.round(_this.props.value + e.movementX); + if (newValue >= 0 && newValue <= _this.props.dragMax) { + _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e); + } + } + }; + + _this.handleMouseDown = function (e) { + if (_this.props.dragLabel) { + e.preventDefault(); + _this.handleDrag(e); + window.addEventListener('mousemove', _this.handleDrag); + window.addEventListener('mouseup', _this.handleMouseUp); + } + }; + + _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }; + + _this.unbindEventListeners = function () { + window.removeEventListener('mousemove', _this.handleDrag); + window.removeEventListener('mouseup', _this.handleMouseUp); + }; + + _this.state = { + value: String(props.value).toUpperCase(), + blurValue: String(props.value).toUpperCase() + }; + + _this.inputId = 'rc-editable-input-' + idCounter++; + return _this; + } + + _createClass(EditableInput, [{ + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps, prevState) { + if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) { + if (this.input === document.activeElement) { + this.setState({ blurValue: String(this.props.value).toUpperCase() }); + } else { + this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() }); + } + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.unbindEventListeners(); + } + }, { + key: 'getValueObjectWithLabel', + value: function getValueObjectWithLabel(value) { + return _defineProperty({}, this.props.label, value); + } + }, { + key: 'getArrowOffset', + value: function getArrowOffset() { + return this.props.arrowOffset || DEFAULT_ARROW_OFFSET; + } + }, { + key: 'setUpdatedValue', + value: function setUpdatedValue(value, e) { + var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value; + this.props.onChange && this.props.onChange(onChangeValue, e); + + this.setState({ value: value }); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var styles = (0, _reactcss2.default)({ + 'default': { + wrap: { + position: 'relative' + } + }, + 'user-override': { + wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {}, + input: this.props.style && this.props.style.input ? this.props.style.input : {}, + label: this.props.style && this.props.style.label ? this.props.style.label : {} + }, + 'dragLabel-true': { + label: { + cursor: 'ew-resize' + } + } + }, { + 'user-override': true + }, this.props); + + return _react2.default.createElement( + 'div', + { style: styles.wrap }, + _react2.default.createElement('input', { + id: this.inputId, + style: styles.input, + ref: function ref(input) { + return _this2.input = input; + }, + value: this.state.value, + onKeyDown: this.handleKeyDown, + onChange: this.handleChange, + onBlur: this.handleBlur, + placeholder: this.props.placeholder, + spellCheck: 'false' + }), + this.props.label && !this.props.hideLabel ? _react2.default.createElement( + 'label', + { + htmlFor: this.inputId, + style: styles.label, + onMouseDown: this.handleMouseDown + }, + this.props.label + ) : null + ); + } + }]); + + return EditableInput; +}(_react.PureComponent || _react.Component); + +exports.default = EditableInput; +},{"react":"react","reactcss":363}],314:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Hue = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _hue = require('../../helpers/hue'); + +var hue = _interopRequireWildcard(_hue); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Hue = exports.Hue = function (_ref) { + _inherits(Hue, _ref); + + function Hue() { + var _ref2; + + var _temp, _this, _ret; + + _classCallCheck(this, Hue); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) { + var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container); + change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e); + }, _this.handleMouseDown = function (e) { + _this.handleChange(e); + window.addEventListener('mousemove', _this.handleChange); + window.addEventListener('mouseup', _this.handleMouseUp); + }, _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Hue, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.unbindEventListeners(); + } + }, { + key: 'unbindEventListeners', + value: function unbindEventListeners() { + window.removeEventListener('mousemove', this.handleChange); + window.removeEventListener('mouseup', this.handleMouseUp); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props$direction = this.props.direction, + direction = _props$direction === undefined ? 'horizontal' : _props$direction; + + + var styles = (0, _reactcss2.default)({ + 'default': { + hue: { + absolute: '0px 0px 0px 0px', + borderRadius: this.props.radius, + boxShadow: this.props.shadow + }, + container: { + padding: '0 2px', + position: 'relative', + height: '100%', + borderRadius: this.props.radius + }, + pointer: { + position: 'absolute', + left: this.props.hsl.h * 100 / 360 + '%' + }, + slider: { + marginTop: '1px', + width: '4px', + borderRadius: '1px', + height: '8px', + boxShadow: '0 0 2px rgba(0, 0, 0, .6)', + background: '#fff', + transform: 'translateX(-2px)' + } + }, + 'vertical': { + pointer: { + left: '0px', + top: -(this.props.hsl.h * 100 / 360) + 100 + '%' + } + } + }, { vertical: direction === 'vertical' }); + + return _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement( + 'div', + { + className: 'hue-' + direction, + style: styles.container, + ref: function ref(container) { + return _this2.container = container; + }, + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange + }, + _react2.default.createElement( + 'style', + null, + '\n .hue-horizontal {\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n\n .hue-vertical {\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n ' + ), + _react2.default.createElement( + 'div', + { style: styles.pointer }, + this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider }) + ) + ) + ); + } + }]); + + return Hue; +}(_react.PureComponent || _react.Component); + +exports.default = Hue; +},{"../../helpers/hue":351,"react":"react","reactcss":363}],315:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Raised = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Raised = exports.Raised = function Raised(_ref) { + var zDepth = _ref.zDepth, + radius = _ref.radius, + background = _ref.background, + children = _ref.children, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + wrap: { + position: 'relative', + display: 'inline-block' + }, + content: { + position: 'relative' + }, + bg: { + absolute: '0px 0px 0px 0px', + boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)', + borderRadius: radius, + background: background + } + }, + 'zDepth-0': { + bg: { + boxShadow: 'none' + } + }, + + 'zDepth-1': { + bg: { + boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)' + } + }, + 'zDepth-2': { + bg: { + boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)' + } + }, + 'zDepth-3': { + bg: { + boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)' + } + }, + 'zDepth-4': { + bg: { + boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)' + } + }, + 'zDepth-5': { + bg: { + boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)' + } + }, + 'square': { + bg: { + borderRadius: '0' + } + }, + 'circle': { + bg: { + borderRadius: '50%' + } + } + }, passedStyles), { 'zDepth-1': zDepth === 1 }); + + return _react2.default.createElement( + 'div', + { style: styles.wrap }, + _react2.default.createElement('div', { style: styles.bg }), + _react2.default.createElement( + 'div', + { style: styles.content }, + children + ) + ); +}; + +Raised.propTypes = { + background: _propTypes2.default.string, + zDepth: _propTypes2.default.oneOf([0, 1, 2, 3, 4, 5]), + radius: _propTypes2.default.number, + styles: _propTypes2.default.object +}; + +Raised.defaultProps = { + background: '#fff', + zDepth: 1, + radius: 2, + styles: {} +}; + +exports.default = Raised; +},{"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],316:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Saturation = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _throttle = require('lodash/throttle'); + +var _throttle2 = _interopRequireDefault(_throttle); + +var _saturation = require('../../helpers/saturation'); + +var saturation = _interopRequireWildcard(_saturation); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Saturation = exports.Saturation = function (_ref) { + _inherits(Saturation, _ref); + + function Saturation(props) { + _classCallCheck(this, Saturation); + + var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props)); + + _this.handleChange = function (e) { + typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e); + }; + + _this.handleMouseDown = function (e) { + _this.handleChange(e); + var renderWindow = _this.getContainerRenderWindow(); + renderWindow.addEventListener('mousemove', _this.handleChange); + renderWindow.addEventListener('mouseup', _this.handleMouseUp); + }; + + _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }; + + _this.throttle = (0, _throttle2.default)(function (fn, data, e) { + fn(data, e); + }, 50); + return _this; + } + + _createClass(Saturation, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.throttle.cancel(); + this.unbindEventListeners(); + } + }, { + key: 'getContainerRenderWindow', + value: function getContainerRenderWindow() { + var container = this.container; + + var renderWindow = window; + while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) { + renderWindow = renderWindow.parent; + } + return renderWindow; + } + }, { + key: 'unbindEventListeners', + value: function unbindEventListeners() { + var renderWindow = this.getContainerRenderWindow(); + renderWindow.removeEventListener('mousemove', this.handleChange); + renderWindow.removeEventListener('mouseup', this.handleMouseUp); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _ref2 = this.props.style || {}, + color = _ref2.color, + white = _ref2.white, + black = _ref2.black, + pointer = _ref2.pointer, + circle = _ref2.circle; + + var styles = (0, _reactcss2.default)({ + 'default': { + color: { + absolute: '0px 0px 0px 0px', + background: 'hsl(' + this.props.hsl.h + ',100%, 50%)', + borderRadius: this.props.radius + }, + white: { + absolute: '0px 0px 0px 0px', + borderRadius: this.props.radius + }, + black: { + absolute: '0px 0px 0px 0px', + boxShadow: this.props.shadow, + borderRadius: this.props.radius + }, + pointer: { + position: 'absolute', + top: -(this.props.hsv.v * 100) + 100 + '%', + left: this.props.hsv.s * 100 + '%', + cursor: 'default' + }, + circle: { + width: '4px', + height: '4px', + boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\n 0 0 1px 2px rgba(0,0,0,.4)', + borderRadius: '50%', + cursor: 'hand', + transform: 'translate(-2px, -2px)' + } + }, + 'custom': { + color: color, + white: white, + black: black, + pointer: pointer, + circle: circle + } + }, { 'custom': !!this.props.style }); + + return _react2.default.createElement( + 'div', + { + style: styles.color, + ref: function ref(container) { + return _this2.container = container; + }, + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange + }, + _react2.default.createElement( + 'style', + null, + '\n .saturation-white {\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\n }\n .saturation-black {\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\n }\n ' + ), + _react2.default.createElement( + 'div', + { style: styles.white, className: 'saturation-white' }, + _react2.default.createElement('div', { style: styles.black, className: 'saturation-black' }), + _react2.default.createElement( + 'div', + { style: styles.pointer }, + this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.circle }) + ) + ) + ); + } + }]); + + return Saturation; +}(_react.PureComponent || _react.Component); + +exports.default = Saturation; +},{"../../helpers/saturation":353,"lodash/throttle":289,"react":"react","reactcss":363}],317:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Swatch = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _interaction = require('../../helpers/interaction'); + +var _Checkboard = require('./Checkboard'); + +var _Checkboard2 = _interopRequireDefault(_Checkboard); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ENTER = 13; + +var Swatch = exports.Swatch = function Swatch(_ref) { + var color = _ref.color, + style = _ref.style, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onHover = _ref.onHover, + _ref$title = _ref.title, + title = _ref$title === undefined ? color : _ref$title, + children = _ref.children, + focus = _ref.focus, + _ref$focusStyle = _ref.focusStyle, + focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle; + + var transparent = color === 'transparent'; + var styles = (0, _reactcss2.default)({ + default: { + swatch: _extends({ + background: color, + height: '100%', + width: '100%', + cursor: 'pointer', + position: 'relative', + outline: 'none' + }, style, focus ? focusStyle : {}) + } + }); + + var handleClick = function handleClick(e) { + return onClick(color, e); + }; + var handleKeyDown = function handleKeyDown(e) { + return e.keyCode === ENTER && onClick(color, e); + }; + var handleHover = function handleHover(e) { + return onHover(color, e); + }; + + var optionalEvents = {}; + if (onHover) { + optionalEvents.onMouseOver = handleHover; + } + + return _react2.default.createElement( + 'div', + _extends({ + style: styles.swatch, + onClick: handleClick, + title: title, + tabIndex: 0, + onKeyDown: handleKeyDown + }, optionalEvents), + children, + transparent && _react2.default.createElement(_Checkboard2.default, { + borderRadius: styles.swatch.borderRadius, + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)' + }) + ); +}; + +exports.default = (0, _interaction.handleFocus)(Swatch); +},{"../../helpers/interaction":352,"./Checkboard":311,"react":"react","reactcss":363}],318:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Alpha = require('./Alpha'); + +Object.defineProperty(exports, 'Alpha', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Alpha).default; + } +}); + +var _Checkboard = require('./Checkboard'); + +Object.defineProperty(exports, 'Checkboard', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Checkboard).default; + } +}); + +var _EditableInput = require('./EditableInput'); + +Object.defineProperty(exports, 'EditableInput', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_EditableInput).default; + } +}); + +var _Hue = require('./Hue'); + +Object.defineProperty(exports, 'Hue', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Hue).default; + } +}); + +var _Raised = require('./Raised'); + +Object.defineProperty(exports, 'Raised', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Raised).default; + } +}); + +var _Saturation = require('./Saturation'); + +Object.defineProperty(exports, 'Saturation', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Saturation).default; + } +}); + +var _ColorWrap = require('./ColorWrap'); + +Object.defineProperty(exports, 'ColorWrap', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ColorWrap).default; + } +}); + +var _Swatch = require('./Swatch'); + +Object.defineProperty(exports, 'Swatch', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Swatch).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +},{"./Alpha":310,"./Checkboard":311,"./ColorWrap":312,"./EditableInput":313,"./Hue":314,"./Raised":315,"./Saturation":316,"./Swatch":317}],319:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Compact = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +var _CompactColor = require('./CompactColor'); + +var _CompactColor2 = _interopRequireDefault(_CompactColor); + +var _CompactFields = require('./CompactFields'); + +var _CompactFields2 = _interopRequireDefault(_CompactFields); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Compact = exports.Compact = function Compact(_ref) { + var onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + colors = _ref.colors, + hex = _ref.hex, + rgb = _ref.rgb, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + Compact: { + background: '#f6f6f6', + radius: '4px' + }, + compact: { + paddingTop: '5px', + paddingLeft: '5px', + boxSizing: 'initial', + width: '240px' + }, + clear: { + clear: 'both' + } + } + }, passedStyles)); + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else { + onChange(data, e); + } + }; + + return _react2.default.createElement( + _common.Raised, + { style: styles.Compact, styles: passedStyles }, + _react2.default.createElement( + 'div', + { style: styles.compact, className: 'compact-picker ' + className }, + _react2.default.createElement( + 'div', + null, + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_CompactColor2.default, { + key: c, + color: c, + active: c.toLowerCase() === hex, + onClick: handleChange, + onSwatchHover: onSwatchHover + }); + }), + _react2.default.createElement('div', { style: styles.clear }) + ), + _react2.default.createElement(_CompactFields2.default, { hex: hex, rgb: rgb, onChange: handleChange }) + ) + ); +}; + +Compact.propTypes = { + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + styles: _propTypes2.default.object +}; + +Compact.defaultProps = { + colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'], + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Compact); +},{"../../helpers/color":350,"../common":318,"./CompactColor":320,"./CompactFields":321,"lodash/map":282,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],320:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CompactColor = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var colorUtils = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var CompactColor = exports.CompactColor = function CompactColor(_ref) { + var color = _ref.color, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onSwatchHover = _ref.onSwatchHover, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + color: { + background: color, + width: '15px', + height: '15px', + float: 'left', + marginRight: '5px', + marginBottom: '5px', + position: 'relative', + cursor: 'pointer' + }, + dot: { + absolute: '5px 5px 5px 5px', + background: colorUtils.getContrastingColor(color), + borderRadius: '50%', + opacity: '0' + } + }, + 'active': { + dot: { + opacity: '1' + } + }, + 'color-#FFFFFF': { + color: { + boxShadow: 'inset 0 0 0 1px #ddd' + }, + dot: { + background: '#000' + } + }, + 'transparent': { + dot: { + background: '#000' + } + } + }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' }); + + return _react2.default.createElement( + _common.Swatch, + { + style: styles.color, + color: color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { boxShadow: '0 0 4px ' + color } + }, + _react2.default.createElement('div', { style: styles.dot }) + ); +}; + +exports.default = CompactColor; +},{"../../helpers/color":350,"../common":318,"react":"react","reactcss":363}],321:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CompactFields = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var CompactFields = exports.CompactFields = function CompactFields(_ref) { + var hex = _ref.hex, + rgb = _ref.rgb, + onChange = _ref.onChange; + + var styles = (0, _reactcss2.default)({ + 'default': { + fields: { + display: 'flex', + paddingBottom: '6px', + paddingRight: '5px', + position: 'relative' + }, + active: { + position: 'absolute', + top: '6px', + left: '5px', + height: '9px', + width: '9px', + background: hex + }, + HEXwrap: { + flex: '6', + position: 'relative' + }, + HEXinput: { + width: '80%', + padding: '0px', + paddingLeft: '20%', + border: 'none', + outline: 'none', + background: 'none', + fontSize: '12px', + color: '#333', + height: '16px' + }, + HEXlabel: { + display: 'none' + }, + RGBwrap: { + flex: '3', + position: 'relative' + }, + RGBinput: { + width: '70%', + padding: '0px', + paddingLeft: '30%', + border: 'none', + outline: 'none', + background: 'none', + fontSize: '12px', + color: '#333', + height: '16px' + }, + RGBlabel: { + position: 'absolute', + top: '3px', + left: '0px', + lineHeight: '16px', + textTransform: 'uppercase', + fontSize: '12px', + color: '#999' + } + } + }); + + var handleChange = function handleChange(data, e) { + if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + source: 'rgb' + }, e); + } else { + onChange({ + hex: data.hex, + source: 'hex' + }, e); + } + }; + + return _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement('div', { style: styles.active }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel }, + label: 'hex', + value: hex, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'r', + value: rgb.r, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'g', + value: rgb.g, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'b', + value: rgb.b, + onChange: handleChange + }) + ); +}; + +exports.default = CompactFields; +},{"../common":318,"react":"react","reactcss":363}],322:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Github = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _GithubSwatch = require('./GithubSwatch'); + +var _GithubSwatch2 = _interopRequireDefault(_GithubSwatch); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Github = exports.Github = function Github(_ref) { + var width = _ref.width, + colors = _ref.colors, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + triangle = _ref.triangle, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + background: '#fff', + border: '1px solid rgba(0,0,0,0.2)', + boxShadow: '0 3px 12px rgba(0,0,0,0.15)', + borderRadius: '4px', + position: 'relative', + padding: '5px', + display: 'flex', + flexWrap: 'wrap' + }, + triangle: { + position: 'absolute', + border: '7px solid transparent', + borderBottomColor: '#fff' + }, + triangleShadow: { + position: 'absolute', + border: '8px solid transparent', + borderBottomColor: 'rgba(0,0,0,0.15)' + } + }, + 'hide-triangle': { + triangle: { + display: 'none' + }, + triangleShadow: { + display: 'none' + } + }, + 'top-left-triangle': { + triangle: { + top: '-14px', + left: '10px' + }, + triangleShadow: { + top: '-16px', + left: '9px' + } + }, + 'top-right-triangle': { + triangle: { + top: '-14px', + right: '10px' + }, + triangleShadow: { + top: '-16px', + right: '9px' + } + }, + 'bottom-left-triangle': { + triangle: { + top: '35px', + left: '10px', + transform: 'rotate(180deg)' + }, + triangleShadow: { + top: '37px', + left: '9px', + transform: 'rotate(180deg)' + } + }, + 'bottom-right-triangle': { + triangle: { + top: '35px', + right: '10px', + transform: 'rotate(180deg)' + }, + triangleShadow: { + top: '37px', + right: '9px', + transform: 'rotate(180deg)' + } + } + }, passedStyles), { + 'hide-triangle': triangle === 'hide', + 'top-left-triangle': triangle === 'top-left', + 'top-right-triangle': triangle === 'top-right', + 'bottom-left-triangle': triangle === 'bottom-left', + 'bottom-right-triangle': triangle === 'bottom-right' + }); + + var handleChange = function handleChange(hex, e) { + return onChange({ hex: hex, source: 'hex' }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'github-picker ' + className }, + _react2.default.createElement('div', { style: styles.triangleShadow }), + _react2.default.createElement('div', { style: styles.triangle }), + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_GithubSwatch2.default, { + color: c, + key: c, + onClick: handleChange, + onSwatchHover: onSwatchHover + }); + }) + ); +}; + +Github.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']), + styles: _propTypes2.default.object +}; + +Github.defaultProps = { + width: 200, + colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'], + triangle: 'top-left', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Github); +},{"../common":318,"./GithubSwatch":323,"lodash/map":282,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],323:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GithubSwatch = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GithubSwatch = exports.GithubSwatch = function GithubSwatch(_ref) { + var hover = _ref.hover, + color = _ref.color, + onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover; + + var hoverSwatch = { + position: 'relative', + zIndex: '2', + outline: '2px solid #fff', + boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)' + }; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatch: { + width: '25px', + height: '25px', + fontSize: '0' + } + }, + 'hover': { + swatch: hoverSwatch + } + }, { hover: hover }); + + return _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_common.Swatch, { + color: color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: hoverSwatch + }) + ); +}; + +exports.default = (0, _reactcss.handleHover)(GithubSwatch); +},{"../common":318,"react":"react","reactcss":363}],324:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Google = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _GooglePointerCircle = require('./GooglePointerCircle'); + +var _GooglePointerCircle2 = _interopRequireDefault(_GooglePointerCircle); + +var _GooglePointer = require('./GooglePointer'); + +var _GooglePointer2 = _interopRequireDefault(_GooglePointer); + +var _GoogleFields = require('./GoogleFields'); + +var _GoogleFields2 = _interopRequireDefault(_GoogleFields); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Google = exports.Google = function Google(_ref) { + var width = _ref.width, + onChange = _ref.onChange, + rgb = _ref.rgb, + hsl = _ref.hsl, + hsv = _ref.hsv, + hex = _ref.hex, + header = _ref.header, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + width: width, + background: '#fff', + border: '1px solid #dfe1e5', + boxSizing: 'initial', + display: 'flex', + flexWrap: 'wrap', + borderRadius: '8px 8px 0px 0px' + }, + head: { + height: '57px', + width: '100%', + paddingTop: '16px', + paddingBottom: '16px', + paddingLeft: '16px', + fontSize: '20px', + boxSizing: 'border-box', + fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif' + }, + saturation: { + width: '70%', + padding: '0px', + position: 'relative', + overflow: 'hidden' + }, + swatch: { + width: '30%', + height: '228px', + padding: '0px', + background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)', + position: 'relative', + overflow: 'hidden' + }, + body: { + margin: 'auto', + width: '95%' + }, + controls: { + display: 'flex', + boxSizing: 'border-box', + height: '52px', + paddingTop: '22px' + }, + color: { + width: '32px' + }, + hue: { + height: '8px', + position: 'relative', + margin: '0px 16px 0px 16px', + width: '100%' + }, + Hue: { + radius: '2px' + } + } + }, passedStyles)); + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'google-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.head }, + header + ), + _react2.default.createElement('div', { style: styles.swatch }), + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + hsl: hsl, + hsv: hsv, + pointer: _GooglePointerCircle2.default, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.body }, + _react2.default.createElement( + 'div', + { style: styles.controls, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + radius: '4px', + pointer: _GooglePointer2.default, + onChange: onChange + }) + ) + ), + _react2.default.createElement(_GoogleFields2.default, { + rgb: rgb, + hsl: hsl, + hex: hex, + hsv: hsv, + onChange: onChange + }) + ) + ); +}; + +Google.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + styles: _propTypes2.default.object, + header: _propTypes2.default.string + +}; + +Google.defaultProps = { + width: 652, + styles: {}, + header: 'Color picker' +}; + +exports.default = (0, _common.ColorWrap)(Google); +},{"../common":318,"./GoogleFields":325,"./GooglePointer":326,"./GooglePointerCircle":327,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],325:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GoogleFields = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GoogleFields = exports.GoogleFields = function GoogleFields(_ref) { + var onChange = _ref.onChange, + rgb = _ref.rgb, + hsl = _ref.hsl, + hex = _ref.hex, + hsv = _ref.hsv; + + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.rgb) { + var values = data.rgb.split(','); + color.isvalidColorString(data.rgb, 'rgb') && onChange({ + r: values[0], + g: values[1], + b: values[2], + a: 1, + source: 'rgb' + }, e); + } else if (data.hsv) { + var _values = data.hsv.split(','); + if (color.isvalidColorString(data.hsv, 'hsv')) { + _values[2] = _values[2].replace('%', ''); + _values[1] = _values[1].replace('%', ''); + _values[0] = _values[0].replace('°', ''); + if (_values[1] == 1) { + _values[1] = 0.01; + } else if (_values[2] == 1) { + _values[2] = 0.01; + } + onChange({ + h: Number(_values[0]), + s: Number(_values[1]), + v: Number(_values[2]), + source: 'hsv' + }, e); + } + } else if (data.hsl) { + var _values2 = data.hsl.split(','); + if (color.isvalidColorString(data.hsl, 'hsl')) { + _values2[2] = _values2[2].replace('%', ''); + _values2[1] = _values2[1].replace('%', ''); + _values2[0] = _values2[0].replace('°', ''); + if (hsvValue[1] == 1) { + hsvValue[1] = 0.01; + } else if (hsvValue[2] == 1) { + hsvValue[2] = 0.01; + } + onChange({ + h: Number(_values2[0]), + s: Number(_values2[1]), + v: Number(_values2[2]), + source: 'hsl' + }, e); + } + } + }; + + var styles = (0, _reactcss2.default)({ + 'default': { + wrap: { + display: 'flex', + height: '100px', + marginTop: '4px' + }, + fields: { + width: '100%' + }, + column: { + paddingTop: '10px', + display: 'flex', + justifyContent: 'space-between' + }, + double: { + padding: '0px 4.4px', + boxSizing: 'border-box' + }, + input: { + width: '100%', + height: '38px', + boxSizing: 'border-box', + padding: '4px 10% 3px', + textAlign: 'center', + border: '1px solid #dadce0', + fontSize: '11px', + textTransform: 'lowercase', + borderRadius: '5px', + outline: 'none', + fontFamily: 'Roboto,Arial,sans-serif' + }, + input2: { + height: '38px', + width: '100%', + border: '1px solid #dadce0', + boxSizing: 'border-box', + fontSize: '11px', + textTransform: 'lowercase', + borderRadius: '5px', + outline: 'none', + paddingLeft: '10px', + fontFamily: 'Roboto,Arial,sans-serif' + }, + label: { + textAlign: 'center', + fontSize: '12px', + background: '#fff', + position: 'absolute', + textTransform: 'uppercase', + color: '#3c4043', + width: '35px', + top: '-6px', + left: '0', + right: '0', + marginLeft: 'auto', + marginRight: 'auto', + fontFamily: 'Roboto,Arial,sans-serif' + }, + label2: { + left: '10px', + textAlign: 'center', + fontSize: '12px', + background: '#fff', + position: 'absolute', + textTransform: 'uppercase', + color: '#3c4043', + width: '32px', + top: '-6px', + fontFamily: 'Roboto,Arial,sans-serif' + }, + single: { + flexGrow: '1', + margin: '0px 4.4px' + } + } + }); + + var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b; + var hslValue = Math.round(hsl.h) + '\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%'; + var hsvValue = Math.round(hsv.h) + '\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%'; + + return _react2.default.createElement( + 'div', + { style: styles.wrap, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.fields }, + _react2.default.createElement( + 'div', + { style: styles.double }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'hex', + value: hex, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.column }, + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input2, label: styles.label2 }, + label: 'rgb', + value: rgbValue, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input2, label: styles.label2 }, + label: 'hsv', + value: hsvValue, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input2, label: styles.label2 }, + label: 'hsl', + value: hslValue, + onChange: handleChange + }) + ) + ) + ) + ); +}; + +exports.default = GoogleFields; +},{"../../helpers/color":350,"../common":318,"react":"react","reactcss":363}],326:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GooglePointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GooglePointer = exports.GooglePointer = function GooglePointer(props) { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '20px', + height: '20px', + borderRadius: '22px', + transform: 'translate(-10px, -7px)', + background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)', + border: '2px white solid' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +GooglePointer.propTypes = { + hsl: _propTypes2.default.shape({ + h: _propTypes2.default.number, + s: _propTypes2.default.number, + l: _propTypes2.default.number, + a: _propTypes2.default.number + }) +}; + +GooglePointer.defaultProps = { + hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 } +}; + +exports.default = GooglePointer; +},{"prop-types":298,"react":"react","reactcss":363}],327:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GooglePointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GooglePointerCircle = exports.GooglePointerCircle = function GooglePointerCircle(props) { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '20px', + height: '20px', + borderRadius: '22px', + border: '2px #fff solid', + transform: 'translate(-12px, -13px)', + background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +GooglePointerCircle.propTypes = { + hsl: _propTypes2.default.shape({ + h: _propTypes2.default.number, + s: _propTypes2.default.number, + l: _propTypes2.default.number, + a: _propTypes2.default.number + }) +}; + +GooglePointerCircle.defaultProps = { + hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 } +}; + +exports.default = GooglePointerCircle; +},{"prop-types":298,"react":"react","reactcss":363}],328:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.HuePicker = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _HuePointer = require('./HuePointer'); + +var _HuePointer2 = _interopRequireDefault(_HuePointer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var HuePicker = exports.HuePicker = function HuePicker(_ref) { + var width = _ref.width, + height = _ref.height, + onChange = _ref.onChange, + hsl = _ref.hsl, + direction = _ref.direction, + pointer = _ref.pointer, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + position: 'relative', + width: width, + height: height + }, + hue: { + radius: '2px' + } + } + }, passedStyles)); + + // Overwrite to provide pure hue color + var handleChange = function handleChange(data) { + return onChange({ a: 1, h: data.h, l: 0.5, s: 1 }); + }; + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'hue-picker ' + className }, + _react2.default.createElement(_common.Hue, _extends({}, styles.hue, { + hsl: hsl, + pointer: pointer, + onChange: handleChange, + direction: direction + })) + ); +}; + +HuePicker.propTypes = { + styles: _propTypes2.default.object +}; +HuePicker.defaultProps = { + width: '316px', + height: '16px', + direction: 'horizontal', + pointer: _HuePointer2.default, + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(HuePicker); +},{"../common":318,"./HuePointer":329,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],329:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderPointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderPointer = exports.SliderPointer = function SliderPointer(_ref) { + var direction = _ref.direction; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '18px', + height: '18px', + borderRadius: '50%', + transform: 'translate(-9px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + }, + 'vertical': { + picker: { + transform: 'translate(-3px, -9px)' + } + } + }, { vertical: direction === 'vertical' }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = SliderPointer; +},{"react":"react","reactcss":363}],330:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Material = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Material = exports.Material = function Material(_ref) { + var onChange = _ref.onChange, + hex = _ref.hex, + rgb = _ref.rgb, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + material: { + width: '98px', + height: '98px', + padding: '16px', + fontFamily: 'Roboto' + }, + HEXwrap: { + position: 'relative' + }, + HEXinput: { + width: '100%', + marginTop: '12px', + fontSize: '15px', + color: '#333', + padding: '0px', + border: '0px', + borderBottom: '2px solid ' + hex, + outline: 'none', + height: '30px' + }, + HEXlabel: { + position: 'absolute', + top: '0px', + left: '0px', + fontSize: '11px', + color: '#999999', + textTransform: 'capitalize' + }, + Hex: { + style: {} + }, + RGBwrap: { + position: 'relative' + }, + RGBinput: { + width: '100%', + marginTop: '12px', + fontSize: '15px', + color: '#333', + padding: '0px', + border: '0px', + borderBottom: '1px solid #eee', + outline: 'none', + height: '30px' + }, + RGBlabel: { + position: 'absolute', + top: '0px', + left: '0px', + fontSize: '11px', + color: '#999999', + textTransform: 'capitalize' + }, + split: { + display: 'flex', + marginRight: '-10px', + paddingTop: '11px' + }, + third: { + flex: '1', + paddingRight: '10px' + } + } + }, passedStyles)); + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + source: 'rgb' + }, e); + } + }; + + return _react2.default.createElement( + _common.Raised, + { styles: passedStyles }, + _react2.default.createElement( + 'div', + { style: styles.material, className: 'material-picker ' + className }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel }, + label: 'hex', + value: hex, + onChange: handleChange + }), + _react2.default.createElement( + 'div', + { style: styles.split, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.third }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'r', value: rgb.r, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.third }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'g', + value: rgb.g, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.third }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'b', + value: rgb.b, + onChange: handleChange + }) + ) + ) + ) + ); +}; + +exports.default = (0, _common.ColorWrap)(Material); +},{"../../helpers/color":350,"../common":318,"lodash/merge":284,"react":"react","reactcss":363}],331:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Photoshop = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _PhotoshopFields = require('./PhotoshopFields'); + +var _PhotoshopFields2 = _interopRequireDefault(_PhotoshopFields); + +var _PhotoshopPointerCircle = require('./PhotoshopPointerCircle'); + +var _PhotoshopPointerCircle2 = _interopRequireDefault(_PhotoshopPointerCircle); + +var _PhotoshopPointer = require('./PhotoshopPointer'); + +var _PhotoshopPointer2 = _interopRequireDefault(_PhotoshopPointer); + +var _PhotoshopButton = require('./PhotoshopButton'); + +var _PhotoshopButton2 = _interopRequireDefault(_PhotoshopButton); + +var _PhotoshopPreviews = require('./PhotoshopPreviews'); + +var _PhotoshopPreviews2 = _interopRequireDefault(_PhotoshopPreviews); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Photoshop = exports.Photoshop = function (_React$Component) { + _inherits(Photoshop, _React$Component); + + function Photoshop(props) { + _classCallCheck(this, Photoshop); + + var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this)); + + _this.state = { + currentColor: props.hex + }; + return _this; + } + + _createClass(Photoshop, [{ + key: 'render', + value: function render() { + var _props = this.props, + _props$styles = _props.styles, + passedStyles = _props$styles === undefined ? {} : _props$styles, + _props$className = _props.className, + className = _props$className === undefined ? '' : _props$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + background: '#DCDCDC', + borderRadius: '4px', + boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)', + boxSizing: 'initial', + width: '513px' + }, + head: { + backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)', + borderBottom: '1px solid #B1B1B1', + boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)', + height: '23px', + lineHeight: '24px', + borderRadius: '4px 4px 0 0', + fontSize: '13px', + color: '#4D4D4D', + textAlign: 'center' + }, + body: { + padding: '15px 15px 0', + display: 'flex' + }, + saturation: { + width: '256px', + height: '256px', + position: 'relative', + border: '2px solid #B3B3B3', + borderBottom: '2px solid #F0F0F0', + overflow: 'hidden' + }, + hue: { + position: 'relative', + height: '256px', + width: '19px', + marginLeft: '10px', + border: '2px solid #B3B3B3', + borderBottom: '2px solid #F0F0F0' + }, + controls: { + width: '180px', + marginLeft: '10px' + }, + top: { + display: 'flex' + }, + previews: { + width: '60px' + }, + actions: { + flex: '1', + marginLeft: '20px' + } + } + }, passedStyles)); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'photoshop-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.head }, + this.props.header + ), + _react2.default.createElement( + 'div', + { style: styles.body, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + hsl: this.props.hsl, + hsv: this.props.hsv, + pointer: _PhotoshopPointerCircle2.default, + onChange: this.props.onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + direction: 'vertical', + hsl: this.props.hsl, + pointer: _PhotoshopPointer2.default, + onChange: this.props.onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.controls }, + _react2.default.createElement( + 'div', + { style: styles.top, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.previews }, + _react2.default.createElement(_PhotoshopPreviews2.default, { + rgb: this.props.rgb, + currentColor: this.state.currentColor + }) + ), + _react2.default.createElement( + 'div', + { style: styles.actions }, + _react2.default.createElement(_PhotoshopButton2.default, { label: 'OK', onClick: this.props.onAccept, active: true }), + _react2.default.createElement(_PhotoshopButton2.default, { label: 'Cancel', onClick: this.props.onCancel }), + _react2.default.createElement(_PhotoshopFields2.default, { + onChange: this.props.onChange, + rgb: this.props.rgb, + hsv: this.props.hsv, + hex: this.props.hex + }) + ) + ) + ) + ) + ); + } + }]); + + return Photoshop; +}(_react2.default.Component); + +Photoshop.propTypes = { + header: _propTypes2.default.string, + styles: _propTypes2.default.object +}; + +Photoshop.defaultProps = { + header: 'Color Picker', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Photoshop); +},{"../common":318,"./PhotoshopButton":332,"./PhotoshopFields":333,"./PhotoshopPointer":334,"./PhotoshopPointerCircle":335,"./PhotoshopPreviews":336,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],332:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopButton = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopButton = exports.PhotoshopButton = function PhotoshopButton(_ref) { + var onClick = _ref.onClick, + label = _ref.label, + children = _ref.children, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + button: { + backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)', + border: '1px solid #878787', + borderRadius: '2px', + height: '20px', + boxShadow: '0 1px 0 0 #EAEAEA', + fontSize: '14px', + color: '#000', + lineHeight: '20px', + textAlign: 'center', + marginBottom: '10px', + cursor: 'pointer' + } + }, + 'active': { + button: { + boxShadow: '0 0 0 1px #878787' + } + } + }, { active: active }); + + return _react2.default.createElement( + 'div', + { style: styles.button, onClick: onClick }, + label || children + ); +}; + +exports.default = PhotoshopButton; +},{"react":"react","reactcss":363}],333:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPicker = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPicker = exports.PhotoshopPicker = function PhotoshopPicker(_ref) { + var onChange = _ref.onChange, + rgb = _ref.rgb, + hsv = _ref.hsv, + hex = _ref.hex; + + var styles = (0, _reactcss2.default)({ + 'default': { + fields: { + paddingTop: '5px', + paddingBottom: '9px', + width: '80px', + position: 'relative' + }, + divider: { + height: '5px' + }, + RGBwrap: { + position: 'relative' + }, + RGBinput: { + marginLeft: '40%', + width: '40%', + height: '18px', + border: '1px solid #888888', + boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC', + marginBottom: '5px', + fontSize: '13px', + paddingLeft: '3px', + marginRight: '10px' + }, + RGBlabel: { + left: '0px', + top: '0px', + width: '34px', + textTransform: 'uppercase', + fontSize: '13px', + height: '18px', + lineHeight: '22px', + position: 'absolute' + }, + HEXwrap: { + position: 'relative' + }, + HEXinput: { + marginLeft: '20%', + width: '80%', + height: '18px', + border: '1px solid #888888', + boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC', + marginBottom: '6px', + fontSize: '13px', + paddingLeft: '3px' + }, + HEXlabel: { + position: 'absolute', + top: '0px', + left: '0px', + width: '14px', + textTransform: 'uppercase', + fontSize: '13px', + height: '18px', + lineHeight: '22px' + }, + fieldSymbols: { + position: 'absolute', + top: '5px', + right: '-7px', + fontSize: '13px' + }, + symbol: { + height: '20px', + lineHeight: '22px', + paddingBottom: '7px' + } + } + }); + + var handleChange = function handleChange(data, e) { + if (data['#']) { + color.isValidHex(data['#']) && onChange({ + hex: data['#'], + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + source: 'rgb' + }, e); + } else if (data.h || data.s || data.v) { + onChange({ + h: data.h || hsv.h, + s: data.s || hsv.s, + v: data.v || hsv.v, + source: 'hsv' + }, e); + } + }; + + return _react2.default.createElement( + 'div', + { style: styles.fields }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'h', + value: Math.round(hsv.h), + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 's', + value: Math.round(hsv.s * 100), + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'v', + value: Math.round(hsv.v * 100), + onChange: handleChange + }), + _react2.default.createElement('div', { style: styles.divider }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'r', + value: rgb.r, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'g', + value: rgb.g, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'b', + value: rgb.b, + onChange: handleChange + }), + _react2.default.createElement('div', { style: styles.divider }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel }, + label: '#', + value: hex.replace('#', ''), + onChange: handleChange + }), + _react2.default.createElement( + 'div', + { style: styles.fieldSymbols }, + _react2.default.createElement( + 'div', + { style: styles.symbol }, + '\xB0' + ), + _react2.default.createElement( + 'div', + { style: styles.symbol }, + '%' + ), + _react2.default.createElement( + 'div', + { style: styles.symbol }, + '%' + ) + ) + ); +}; + +exports.default = PhotoshopPicker; +},{"../../helpers/color":350,"../common":318,"react":"react","reactcss":363}],334:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle() { + var styles = (0, _reactcss2.default)({ + 'default': { + triangle: { + width: 0, + height: 0, + borderStyle: 'solid', + borderWidth: '4px 0 4px 6px', + borderColor: 'transparent transparent transparent #fff', + position: 'absolute', + top: '1px', + left: '1px' + }, + triangleBorder: { + width: 0, + height: 0, + borderStyle: 'solid', + borderWidth: '5px 0 5px 8px', + borderColor: 'transparent transparent transparent #555' + }, + + left: { + Extend: 'triangleBorder', + transform: 'translate(-13px, -4px)' + }, + leftInside: { + Extend: 'triangle', + transform: 'translate(-8px, -5px)' + }, + + right: { + Extend: 'triangleBorder', + transform: 'translate(20px, -14px) rotate(180deg)' + }, + rightInside: { + Extend: 'triangle', + transform: 'translate(-8px, -5px)' + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.pointer }, + _react2.default.createElement( + 'div', + { style: styles.left }, + _react2.default.createElement('div', { style: styles.leftInside }) + ), + _react2.default.createElement( + 'div', + { style: styles.right }, + _react2.default.createElement('div', { style: styles.rightInside }) + ) + ); +}; + +exports.default = PhotoshopPointerCircle; +},{"react":"react","reactcss":363}],335:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) { + var hsl = _ref.hsl; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '12px', + height: '12px', + borderRadius: '6px', + boxShadow: 'inset 0 0 0 1px #fff', + transform: 'translate(-6px, -6px)' + } + }, + 'black-outline': { + picker: { + boxShadow: 'inset 0 0 0 1px #000' + } + } + }, { 'black-outline': hsl.l > 0.5 }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = PhotoshopPointerCircle; +},{"react":"react","reactcss":363}],336:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPreviews = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPreviews = exports.PhotoshopPreviews = function PhotoshopPreviews(_ref) { + var rgb = _ref.rgb, + currentColor = _ref.currentColor; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatches: { + border: '1px solid #B3B3B3', + borderBottom: '1px solid #F0F0F0', + marginBottom: '2px', + marginTop: '1px' + }, + new: { + height: '34px', + background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')', + boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000' + }, + current: { + height: '34px', + background: currentColor, + boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000' + }, + label: { + fontSize: '14px', + color: '#000', + textAlign: 'center' + } + } + }); + + return _react2.default.createElement( + 'div', + null, + _react2.default.createElement( + 'div', + { style: styles.label }, + 'new' + ), + _react2.default.createElement( + 'div', + { style: styles.swatches }, + _react2.default.createElement('div', { style: styles.new }), + _react2.default.createElement('div', { style: styles.current }) + ), + _react2.default.createElement( + 'div', + { style: styles.label }, + 'current' + ) + ); +}; + +exports.default = PhotoshopPreviews; +},{"react":"react","reactcss":363}],337:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Sketch = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _SketchFields = require('./SketchFields'); + +var _SketchFields2 = _interopRequireDefault(_SketchFields); + +var _SketchPresetColors = require('./SketchPresetColors'); + +var _SketchPresetColors2 = _interopRequireDefault(_SketchPresetColors); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Sketch = exports.Sketch = function Sketch(_ref) { + var width = _ref.width, + rgb = _ref.rgb, + hex = _ref.hex, + hsv = _ref.hsv, + hsl = _ref.hsl, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + disableAlpha = _ref.disableAlpha, + presetColors = _ref.presetColors, + renderers = _ref.renderers, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': _extends({ + picker: { + width: width, + padding: '10px 10px 0', + boxSizing: 'initial', + background: '#fff', + borderRadius: '4px', + boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)' + }, + saturation: { + width: '100%', + paddingBottom: '75%', + position: 'relative', + overflow: 'hidden' + }, + Saturation: { + radius: '3px', + shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + }, + controls: { + display: 'flex' + }, + sliders: { + padding: '4px 0', + flex: '1' + }, + color: { + width: '24px', + height: '24px', + position: 'relative', + marginTop: '4px', + marginLeft: '4px', + borderRadius: '3px' + }, + activeColor: { + absolute: '0px 0px 0px 0px', + borderRadius: '2px', + background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')', + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + }, + hue: { + position: 'relative', + height: '10px', + overflow: 'hidden' + }, + Hue: { + radius: '2px', + shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + }, + + alpha: { + position: 'relative', + height: '10px', + marginTop: '4px', + overflow: 'hidden' + }, + Alpha: { + radius: '2px', + shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + } + }, passedStyles), + 'disableAlpha': { + color: { + height: '10px' + }, + hue: { + height: '10px' + }, + alpha: { + display: 'none' + } + } + }, passedStyles), { disableAlpha: disableAlpha }); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'sketch-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + style: styles.Saturation, + hsl: hsl, + hsv: hsv, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.controls, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.sliders }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.Alpha, { + style: styles.Alpha, + rgb: rgb, + hsl: hsl, + renderers: renderers, + onChange: onChange + }) + ) + ), + _react2.default.createElement( + 'div', + { style: styles.color }, + _react2.default.createElement(_common.Checkboard, null), + _react2.default.createElement('div', { style: styles.activeColor }) + ) + ), + _react2.default.createElement(_SketchFields2.default, { + rgb: rgb, + hsl: hsl, + hex: hex, + onChange: onChange, + disableAlpha: disableAlpha + }), + _react2.default.createElement(_SketchPresetColors2.default, { + colors: presetColors, + onClick: onChange, + onSwatchHover: onSwatchHover + }) + ); +}; + +Sketch.propTypes = { + disableAlpha: _propTypes2.default.bool, + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + styles: _propTypes2.default.object +}; + +Sketch.defaultProps = { + disableAlpha: false, + width: 200, + styles: {}, + presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF'] +}; + +exports.default = (0, _common.ColorWrap)(Sketch); +},{"../common":318,"./SketchFields":338,"./SketchPresetColors":339,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],338:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SketchFields = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* eslint-disable no-param-reassign */ + +var SketchFields = exports.SketchFields = function SketchFields(_ref) { + var onChange = _ref.onChange, + rgb = _ref.rgb, + hsl = _ref.hsl, + hex = _ref.hex, + disableAlpha = _ref.disableAlpha; + + var styles = (0, _reactcss2.default)({ + 'default': { + fields: { + display: 'flex', + paddingTop: '4px' + }, + single: { + flex: '1', + paddingLeft: '6px' + }, + alpha: { + flex: '1', + paddingLeft: '6px' + }, + double: { + flex: '2' + }, + input: { + width: '80%', + padding: '4px 10% 3px', + border: 'none', + boxShadow: 'inset 0 0 0 1px #ccc', + fontSize: '11px' + }, + label: { + display: 'block', + textAlign: 'center', + fontSize: '11px', + color: '#222', + paddingTop: '3px', + paddingBottom: '4px', + textTransform: 'capitalize' + } + }, + 'disableAlpha': { + alpha: { + display: 'none' + } + } + }, { disableAlpha: disableAlpha }); + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + a: rgb.a, + source: 'rgb' + }, e); + } else if (data.a) { + if (data.a < 0) { + data.a = 0; + } else if (data.a > 100) { + data.a = 100; + } + + data.a /= 100; + onChange({ + h: hsl.h, + s: hsl.s, + l: hsl.l, + a: data.a, + source: 'rgb' + }, e); + } + }; + + return _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.double }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'hex', + value: hex.replace('#', ''), + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'r', + value: rgb.r, + onChange: handleChange, + dragLabel: 'true', + dragMax: '255' + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'g', + value: rgb.g, + onChange: handleChange, + dragLabel: 'true', + dragMax: '255' + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'b', + value: rgb.b, + onChange: handleChange, + dragLabel: 'true', + dragMax: '255' + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'a', + value: Math.round(rgb.a * 100), + onChange: handleChange, + dragLabel: 'true', + dragMax: '100' + }) + ) + ); +}; + +exports.default = SketchFields; +},{"../../helpers/color":350,"../common":318,"react":"react","reactcss":363}],339:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SketchPresetColors = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SketchPresetColors = exports.SketchPresetColors = function SketchPresetColors(_ref) { + var colors = _ref.colors, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onSwatchHover = _ref.onSwatchHover; + + var styles = (0, _reactcss2.default)({ + 'default': { + colors: { + margin: '0 -10px', + padding: '10px 0 0 10px', + borderTop: '1px solid #eee', + display: 'flex', + flexWrap: 'wrap', + position: 'relative' + }, + swatchWrap: { + width: '16px', + height: '16px', + margin: '0 10px 10px 0' + }, + swatch: { + borderRadius: '3px', + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)' + } + }, + 'no-presets': { + colors: { + display: 'none' + } + } + }, { + 'no-presets': !colors || !colors.length + }); + + var handleClick = function handleClick(hex, e) { + onClick({ + hex: hex, + source: 'hex' + }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.colors, className: 'flexbox-fix' }, + colors.map(function (colorObjOrString) { + var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString; + var key = '' + c.color + (c.title || ''); + return _react2.default.createElement( + 'div', + { key: key, style: styles.swatchWrap }, + _react2.default.createElement(_common.Swatch, _extends({}, c, { + style: styles.swatch, + onClick: handleClick, + onHover: onSwatchHover, + focusStyle: { + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color + } + })) + ); + }) + ); +}; + +SketchPresetColors.propTypes = { + colors: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({ + color: _propTypes2.default.string, + title: _propTypes2.default.string + })])).isRequired +}; + +exports.default = SketchPresetColors; +},{"../common":318,"prop-types":298,"react":"react","reactcss":363}],340:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Slider = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _SliderSwatches = require('./SliderSwatches'); + +var _SliderSwatches2 = _interopRequireDefault(_SliderSwatches); + +var _SliderPointer = require('./SliderPointer'); + +var _SliderPointer2 = _interopRequireDefault(_SliderPointer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Slider = exports.Slider = function Slider(_ref) { + var hsl = _ref.hsl, + onChange = _ref.onChange, + pointer = _ref.pointer, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + hue: { + height: '12px', + position: 'relative' + }, + Hue: { + radius: '2px' + } + } + }, passedStyles)); + + return _react2.default.createElement( + 'div', + { style: styles.wrap || {}, className: 'slider-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + pointer: pointer, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatches }, + _react2.default.createElement(_SliderSwatches2.default, { hsl: hsl, onClick: onChange }) + ) + ); +}; + +Slider.propTypes = { + styles: _propTypes2.default.object +}; +Slider.defaultProps = { + pointer: _SliderPointer2.default, + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Slider); +},{"../common":318,"./SliderPointer":341,"./SliderSwatches":343,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],341:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderPointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderPointer = exports.SliderPointer = function SliderPointer() { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '14px', + height: '14px', + borderRadius: '6px', + transform: 'translate(-7px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = SliderPointer; +},{"react":"react","reactcss":363}],342:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderSwatch = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderSwatch = exports.SliderSwatch = function SliderSwatch(_ref) { + var hsl = _ref.hsl, + offset = _ref.offset, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + active = _ref.active, + first = _ref.first, + last = _ref.last; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatch: { + height: '12px', + background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)', + cursor: 'pointer' + } + }, + 'first': { + swatch: { + borderRadius: '2px 0 0 2px' + } + }, + 'last': { + swatch: { + borderRadius: '0 2px 2px 0' + } + }, + 'active': { + swatch: { + transform: 'scaleY(1.8)', + borderRadius: '3.6px/2px' + } + } + }, { active: active, first: first, last: last }); + + var handleClick = function handleClick(e) { + return onClick({ + h: hsl.h, + s: 0.5, + l: offset, + source: 'hsl' + }, e); + }; + + return _react2.default.createElement('div', { style: styles.swatch, onClick: handleClick }); +}; + +exports.default = SliderSwatch; +},{"react":"react","reactcss":363}],343:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderSwatches = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _SliderSwatch = require('./SliderSwatch'); + +var _SliderSwatch2 = _interopRequireDefault(_SliderSwatch); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderSwatches = exports.SliderSwatches = function SliderSwatches(_ref) { + var onClick = _ref.onClick, + hsl = _ref.hsl; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatches: { + marginTop: '20px' + }, + swatch: { + boxSizing: 'border-box', + width: '20%', + paddingRight: '1px', + float: 'left' + }, + clear: { + clear: 'both' + } + } + }); + + // Acceptible difference in floating point equality + var epsilon = 0.1; + + return _react2.default.createElement( + 'div', + { style: styles.swatches }, + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.80', + active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick, + first: true + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.65', + active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.50', + active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.35', + active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.20', + active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick, + last: true + }) + ), + _react2.default.createElement('div', { style: styles.clear }) + ); +}; + +exports.default = SliderSwatches; +},{"./SliderSwatch":342,"react":"react","reactcss":363}],344:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Swatches = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _materialColors = require('material-colors'); + +var material = _interopRequireWildcard(_materialColors); + +var _common = require('../common'); + +var _SwatchesGroup = require('./SwatchesGroup'); + +var _SwatchesGroup2 = _interopRequireDefault(_SwatchesGroup); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Swatches = exports.Swatches = function Swatches(_ref) { + var width = _ref.width, + height = _ref.height, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + colors = _ref.colors, + hex = _ref.hex, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + width: width, + height: height + }, + overflow: { + height: height, + overflowY: 'scroll' + }, + body: { + padding: '16px 0 6px 16px' + }, + clear: { + clear: 'both' + } + } + }, passedStyles)); + + var handleChange = function handleChange(data, e) { + return onChange({ hex: data, source: 'hex' }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'swatches-picker ' + className }, + _react2.default.createElement( + _common.Raised, + null, + _react2.default.createElement( + 'div', + { style: styles.overflow }, + _react2.default.createElement( + 'div', + { style: styles.body }, + (0, _map2.default)(colors, function (group) { + return _react2.default.createElement(_SwatchesGroup2.default, { + key: group.toString(), + group: group, + active: hex, + onClick: handleChange, + onSwatchHover: onSwatchHover + }); + }), + _react2.default.createElement('div', { style: styles.clear }) + ) + ) + ) + ); +}; + +Swatches.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + colors: _propTypes2.default.arrayOf(_propTypes2.default.arrayOf(_propTypes2.default.string)), + styles: _propTypes2.default.object + + /* eslint-disable max-len */ +};Swatches.defaultProps = { + width: 320, + height: 240, + colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']], + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Swatches); +},{"../common":318,"./SwatchesGroup":346,"lodash/map":282,"lodash/merge":284,"material-colors":293,"prop-types":298,"react":"react","reactcss":363}],345:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SwatchesColor = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var colorUtils = _interopRequireWildcard(_color); + +var _common = require('../common'); + +var _CheckIcon = require('@icons/material/CheckIcon'); + +var _CheckIcon2 = _interopRequireDefault(_CheckIcon); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SwatchesColor = exports.SwatchesColor = function SwatchesColor(_ref) { + var color = _ref.color, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onSwatchHover = _ref.onSwatchHover, + first = _ref.first, + last = _ref.last, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + color: { + width: '40px', + height: '24px', + cursor: 'pointer', + background: color, + marginBottom: '1px' + }, + check: { + color: colorUtils.getContrastingColor(color), + marginLeft: '8px', + display: 'none' + } + }, + 'first': { + color: { + overflow: 'hidden', + borderRadius: '2px 2px 0 0' + } + }, + 'last': { + color: { + overflow: 'hidden', + borderRadius: '0 0 2px 2px' + } + }, + 'active': { + check: { + display: 'block' + } + }, + 'color-#FFFFFF': { + color: { + boxShadow: 'inset 0 0 0 1px #ddd' + }, + check: { + color: '#333' + } + }, + 'transparent': { + check: { + color: '#333' + } + } + }, { + first: first, + last: last, + active: active, + 'color-#FFFFFF': color === '#FFFFFF', + 'transparent': color === 'transparent' + }); + + return _react2.default.createElement( + _common.Swatch, + { + color: color, + style: styles.color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { boxShadow: '0 0 4px ' + color } + }, + _react2.default.createElement( + 'div', + { style: styles.check }, + _react2.default.createElement(_CheckIcon2.default, null) + ) + ); +}; + +exports.default = SwatchesColor; +},{"../../helpers/color":350,"../common":318,"@icons/material/CheckIcon":81,"react":"react","reactcss":363}],346:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SwatchesGroup = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _SwatchesColor = require('./SwatchesColor'); + +var _SwatchesColor2 = _interopRequireDefault(_SwatchesColor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SwatchesGroup = exports.SwatchesGroup = function SwatchesGroup(_ref) { + var onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover, + group = _ref.group, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + group: { + paddingBottom: '10px', + width: '40px', + float: 'left', + marginRight: '10px' + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.group }, + (0, _map2.default)(group, function (color, i) { + return _react2.default.createElement(_SwatchesColor2.default, { + key: color, + color: color, + active: color.toLowerCase() === active, + first: i === 0, + last: i === group.length - 1, + onClick: onClick, + onSwatchHover: onSwatchHover + }); + }) + ); +}; + +exports.default = SwatchesGroup; +},{"./SwatchesColor":345,"lodash/map":282,"react":"react","reactcss":363}],347:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Twitter = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Twitter = exports.Twitter = function Twitter(_ref) { + var onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + hex = _ref.hex, + colors = _ref.colors, + width = _ref.width, + triangle = _ref.triangle, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + background: '#fff', + border: '0 solid rgba(0,0,0,0.25)', + boxShadow: '0 1px 4px rgba(0,0,0,0.25)', + borderRadius: '4px', + position: 'relative' + }, + body: { + padding: '15px 9px 9px 15px' + }, + label: { + fontSize: '18px', + color: '#fff' + }, + triangle: { + width: '0px', + height: '0px', + borderStyle: 'solid', + borderWidth: '0 9px 10px 9px', + borderColor: 'transparent transparent #fff transparent', + position: 'absolute' + }, + triangleShadow: { + width: '0px', + height: '0px', + borderStyle: 'solid', + borderWidth: '0 9px 10px 9px', + borderColor: 'transparent transparent rgba(0,0,0,.1) transparent', + position: 'absolute' + }, + hash: { + background: '#F0F0F0', + height: '30px', + width: '30px', + borderRadius: '4px 0 0 4px', + float: 'left', + color: '#98A1A4', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }, + input: { + width: '100px', + fontSize: '14px', + color: '#666', + border: '0px', + outline: 'none', + height: '28px', + boxShadow: 'inset 0 0 0 1px #F0F0F0', + boxSizing: 'content-box', + borderRadius: '0 4px 4px 0', + float: 'left', + paddingLeft: '8px' + }, + swatch: { + width: '30px', + height: '30px', + float: 'left', + borderRadius: '4px', + margin: '0 6px 6px 0' + }, + clear: { + clear: 'both' + } + }, + 'hide-triangle': { + triangle: { + display: 'none' + }, + triangleShadow: { + display: 'none' + } + }, + 'top-left-triangle': { + triangle: { + top: '-10px', + left: '12px' + }, + triangleShadow: { + top: '-11px', + left: '12px' + } + }, + 'top-right-triangle': { + triangle: { + top: '-10px', + right: '12px' + }, + triangleShadow: { + top: '-11px', + right: '12px' + } + } + }, passedStyles), { + 'hide-triangle': triangle === 'hide', + 'top-left-triangle': triangle === 'top-left', + 'top-right-triangle': triangle === 'top-right' + }); + + var handleChange = function handleChange(hexcode, e) { + color.isValidHex(hexcode) && onChange({ + hex: hexcode, + source: 'hex' + }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'twitter-picker ' + className }, + _react2.default.createElement('div', { style: styles.triangleShadow }), + _react2.default.createElement('div', { style: styles.triangle }), + _react2.default.createElement( + 'div', + { style: styles.body }, + (0, _map2.default)(colors, function (c, i) { + return _react2.default.createElement(_common.Swatch, { + key: i, + color: c, + hex: c, + style: styles.swatch, + onClick: handleChange, + onHover: onSwatchHover, + focusStyle: { + boxShadow: '0 0 4px ' + c + } + }); + }), + _react2.default.createElement( + 'div', + { style: styles.hash }, + '#' + ), + _react2.default.createElement(_common.EditableInput, { + label: null, + style: { input: styles.input }, + value: hex.replace('#', ''), + onChange: handleChange + }), + _react2.default.createElement('div', { style: styles.clear }) + ) + ); +}; + +Twitter.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right']), + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + styles: _propTypes2.default.object +}; + +Twitter.defaultProps = { + width: 276, + colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'], + triangle: 'top-left', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Twitter); +},{"../../helpers/color":350,"../common":318,"lodash/map":282,"lodash/merge":284,"prop-types":298,"react":"react","reactcss":363}],348:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var calculateChange = exports.calculateChange = function calculateChange(e, hsl, direction, initialA, container) { + var containerWidth = container.clientWidth; + var containerHeight = container.clientHeight; + var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX; + var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY; + var left = x - (container.getBoundingClientRect().left + window.pageXOffset); + var top = y - (container.getBoundingClientRect().top + window.pageYOffset); + + if (direction === 'vertical') { + var a = void 0; + if (top < 0) { + a = 0; + } else if (top > containerHeight) { + a = 1; + } else { + a = Math.round(top * 100 / containerHeight) / 100; + } + + if (hsl.a !== a) { + return { + h: hsl.h, + s: hsl.s, + l: hsl.l, + a: a, + source: 'rgb' + }; + } + } else { + var _a = void 0; + if (left < 0) { + _a = 0; + } else if (left > containerWidth) { + _a = 1; + } else { + _a = Math.round(left * 100 / containerWidth) / 100; + } + + if (initialA !== _a) { + return { + h: hsl.h, + s: hsl.s, + l: hsl.l, + a: _a, + source: 'rgb' + }; + } + } + return null; +}; +},{}],349:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var checkboardCache = {}; + +var render = exports.render = function render(c1, c2, size, serverCanvas) { + if (typeof document === 'undefined' && !serverCanvas) { + return null; + } + var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas'); + canvas.width = size * 2; + canvas.height = size * 2; + var ctx = canvas.getContext('2d'); + if (!ctx) { + return null; + } // If no context can be found, return early. + ctx.fillStyle = c1; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.fillStyle = c2; + ctx.fillRect(0, 0, size, size); + ctx.translate(size, size); + ctx.fillRect(0, 0, size, size); + return canvas.toDataURL(); +}; + +var get = exports.get = function get(c1, c2, size, serverCanvas) { + var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : ''); + + if (checkboardCache[key]) { + return checkboardCache[key]; + } + + var checkboard = render(c1, c2, size, serverCanvas); + checkboardCache[key] = checkboard; + return checkboard; +}; +},{}],350:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isvalidColorString = exports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined; + +var _each = require('lodash/each'); + +var _each2 = _interopRequireDefault(_each); + +var _tinycolor = require('tinycolor2'); + +var _tinycolor2 = _interopRequireDefault(_tinycolor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) { + var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v']; + var checked = 0; + var passed = 0; + (0, _each2.default)(keysToCheck, function (letter) { + if (data[letter]) { + checked += 1; + if (!isNaN(data[letter])) { + passed += 1; + } + if (letter === 's' || letter === 'l') { + var percentPatt = /^\d+%$/; + if (percentPatt.test(data[letter])) { + passed += 1; + } + } + } + }); + return checked === passed ? data : false; +}; + +var toState = exports.toState = function toState(data, oldHue) { + var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data); + var hsl = color.toHsl(); + var hsv = color.toHsv(); + var rgb = color.toRgb(); + var hex = color.toHex(); + if (hsl.s === 0) { + hsl.h = oldHue || 0; + hsv.h = oldHue || 0; + } + var transparent = hex === '000000' && rgb.a === 0; + + return { + hsl: hsl, + hex: transparent ? 'transparent' : '#' + hex, + rgb: rgb, + hsv: hsv, + oldHue: data.h || oldHue || hsl.h, + source: data.source + }; +}; + +var isValidHex = exports.isValidHex = function isValidHex(hex) { + if (hex === 'transparent') { + return true; + } + // disable hex4 and hex8 + var lh = String(hex).charAt(0) === '#' ? 1 : 0; + return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid(); +}; + +var getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) { + if (!data) { + return '#fff'; + } + var col = toState(data); + if (col.hex === 'transparent') { + return 'rgba(0,0,0,0.4)'; + } + var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000; + return yiq >= 128 ? '#000' : '#fff'; +}; + +var red = exports.red = { + hsl: { a: 1, h: 0, l: 0.5, s: 1 }, + hex: '#ff0000', + rgb: { r: 255, g: 0, b: 0, a: 1 }, + hsv: { h: 0, s: 1, v: 1, a: 1 } +}; + +var isvalidColorString = exports.isvalidColorString = function isvalidColorString(string, type) { + var stringWithoutDegree = string.replace('°', ''); + return (0, _tinycolor2.default)(type + ' (' + stringWithoutDegree + ')')._ok; +}; +},{"lodash/each":257,"tinycolor2":367}],351:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var calculateChange = exports.calculateChange = function calculateChange(e, direction, hsl, container) { + var containerWidth = container.clientWidth; + var containerHeight = container.clientHeight; + var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX; + var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY; + var left = x - (container.getBoundingClientRect().left + window.pageXOffset); + var top = y - (container.getBoundingClientRect().top + window.pageYOffset); + + if (direction === 'vertical') { + var h = void 0; + if (top < 0) { + h = 359; + } else if (top > containerHeight) { + h = 0; + } else { + var percent = -(top * 100 / containerHeight) + 100; + h = 360 * percent / 100; + } + + if (hsl.h !== h) { + return { + h: h, + s: hsl.s, + l: hsl.l, + a: hsl.a, + source: 'hsl' + }; + } + } else { + var _h = void 0; + if (left < 0) { + _h = 0; + } else if (left > containerWidth) { + _h = 359; + } else { + var _percent = left * 100 / containerWidth; + _h = 360 * _percent / 100; + } + + if (hsl.h !== _h) { + return { + h: _h, + s: hsl.s, + l: hsl.l, + a: hsl.a, + source: 'hsl' + }; + } + } + return null; +}; +},{}],352:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.handleFocus = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-invalid-this */ + + +var handleFocus = exports.handleFocus = function handleFocus(Component) { + var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span'; + return function (_React$Component) { + _inherits(Focus, _React$Component); + + function Focus() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Focus); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () { + return _this.setState({ focus: true }); + }, _this.handleBlur = function () { + return _this.setState({ focus: false }); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Focus, [{ + key: 'render', + value: function render() { + return _react2.default.createElement( + Span, + { onFocus: this.handleFocus, onBlur: this.handleBlur }, + _react2.default.createElement(Component, _extends({}, this.props, this.state)) + ); + } + }]); + + return Focus; + }(_react2.default.Component); +}; +},{"react":"react"}],353:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var calculateChange = exports.calculateChange = function calculateChange(e, hsl, container) { + var _container$getBoundin = container.getBoundingClientRect(), + containerWidth = _container$getBoundin.width, + containerHeight = _container$getBoundin.height; + + var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX; + var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY; + var left = x - (container.getBoundingClientRect().left + window.pageXOffset); + var top = y - (container.getBoundingClientRect().top + window.pageYOffset); + + if (left < 0) { + left = 0; + } else if (left > containerWidth) { + left = containerWidth; + } + + if (top < 0) { + top = 0; + } else if (top > containerHeight) { + top = containerHeight; + } + + var saturation = left / containerWidth; + var bright = 1 - top / containerHeight; + + return { + h: hsl.h, + s: saturation, + v: bright, + a: hsl.a, + source: 'hsv' + }; +}; +},{}],354:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CustomPicker = exports.GooglePicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined; + +var _Alpha = require('./components/alpha/Alpha'); + +Object.defineProperty(exports, 'AlphaPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Alpha).default; + } +}); + +var _Block = require('./components/block/Block'); + +Object.defineProperty(exports, 'BlockPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Block).default; + } +}); + +var _Circle = require('./components/circle/Circle'); + +Object.defineProperty(exports, 'CirclePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Circle).default; + } +}); + +var _Chrome = require('./components/chrome/Chrome'); + +Object.defineProperty(exports, 'ChromePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Chrome).default; + } +}); + +var _Compact = require('./components/compact/Compact'); + +Object.defineProperty(exports, 'CompactPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Compact).default; + } +}); + +var _Github = require('./components/github/Github'); + +Object.defineProperty(exports, 'GithubPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Github).default; + } +}); + +var _Hue = require('./components/hue/Hue'); + +Object.defineProperty(exports, 'HuePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Hue).default; + } +}); + +var _Material = require('./components/material/Material'); + +Object.defineProperty(exports, 'MaterialPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Material).default; + } +}); + +var _Photoshop = require('./components/photoshop/Photoshop'); + +Object.defineProperty(exports, 'PhotoshopPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Photoshop).default; + } +}); + +var _Sketch = require('./components/sketch/Sketch'); + +Object.defineProperty(exports, 'SketchPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Sketch).default; + } +}); + +var _Slider = require('./components/slider/Slider'); + +Object.defineProperty(exports, 'SliderPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Slider).default; + } +}); + +var _Swatches = require('./components/swatches/Swatches'); + +Object.defineProperty(exports, 'SwatchesPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Swatches).default; + } +}); + +var _Twitter = require('./components/twitter/Twitter'); + +Object.defineProperty(exports, 'TwitterPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Twitter).default; + } +}); + +var _Google = require('./components/google/Google'); + +Object.defineProperty(exports, 'GooglePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Google).default; + } +}); + +var _ColorWrap = require('./components/common/ColorWrap'); + +Object.defineProperty(exports, 'CustomPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ColorWrap).default; + } +}); + +var _Chrome2 = _interopRequireDefault(_Chrome); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Chrome2.default; +},{"./components/alpha/Alpha":300,"./components/block/Block":302,"./components/chrome/Chrome":304,"./components/circle/Circle":308,"./components/common/ColorWrap":312,"./components/compact/Compact":319,"./components/github/Github":322,"./components/google/Google":324,"./components/hue/Hue":328,"./components/material/Material":330,"./components/photoshop/Photoshop":331,"./components/sketch/Sketch":337,"./components/slider/Slider":340,"./components/swatches/Swatches":344,"./components/twitter/Twitter":347}],355:[function(require,module,exports){ +(function (process){ +/** @license React v16.13.1 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -11,7 +44402,184 @@ object-assign * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -'use strict';_0x4e4131('0xcd8')!==_0x193ca5['env'][_0x4e4131('0xa8d')]&&function(){var _0x3a5777=_0x4e4131,_0x49875f=_0x3a5777('0x106c')==typeof Symbol&&Symbol[_0x3a5777('0x80e')],_0x332c65=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0x74f')):0xeac7,_0x37ca6c=_0x49875f?Symbol['for']('react.portal'):0xeaca,_0x1dd293=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0xb04')):0xeacb,_0x59c6b4=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0x7cb')):0xeacc,_0xab42f6=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0xbd3')):0xead2,_0x13c5c6=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0xdb1')):0xeacd,_0x32775b=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0x8b2')):0xeace,_0x3c9cfc=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0x84f')):0xeacf,_0x3f68f2=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0x2b8')):0xeacf,_0x31c925=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0x191')):0xead0,_0x16f4c2=_0x49875f?Symbol['for'](_0x3a5777('0x33')):0xead1,_0x35d026=_0x49875f?Symbol[_0x3a5777('0x80e')]('react.suspense_list'):0xead8,_0x7b45e8=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0xe93')):0xead3,_0xf9c1fa=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0xbbe')):0xead4,_0x2e57cd=_0x49875f?Symbol['for'](_0x3a5777('0x107')):0xead9,_0x2ff060=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0xc06')):0xead5,_0x50dcb9=_0x49875f?Symbol[_0x3a5777('0x80e')](_0x3a5777('0xd7b')):0xead6,_0xf39454=_0x49875f?Symbol['for']('react.scope'):0xead7;function _0x25e3d2(_0xace507){var _0x13a66c=_0x3a5777;if(_0x13a66c('0xb3f')==typeof _0xace507&&null!==_0xace507){var _0x5db670=_0xace507['$$typeof'];switch(_0x5db670){case _0x332c65:var _0x2add06=_0xace507[_0x13a66c('0x921')];switch(_0x2add06){case _0x3c9cfc:case _0x3f68f2:case _0x1dd293:case _0xab42f6:case _0x59c6b4:case _0x16f4c2:return _0x2add06;default:var _0xd03078=_0x2add06&&_0x2add06[_0x13a66c('0x1015')];switch(_0xd03078){case _0x32775b:case _0x31c925:case _0xf9c1fa:case _0x7b45e8:case _0x13c5c6:return _0xd03078;default:return _0x5db670;}}case _0x37ca6c:return _0x5db670;}}}var _0x1d2fce=_0x3c9cfc,_0x2a5436=_0x3f68f2,_0x35c4b6=_0x32775b,_0x37d03d=_0x13c5c6,_0x4b0d7f=_0x332c65,_0x49cc3d=_0x31c925,_0x1c375a=_0x1dd293,_0x46bbf7=_0xf9c1fa,_0x3a8c8e=_0x7b45e8,_0x4595a7=_0x37ca6c,_0x55738a=_0xab42f6,_0x14f728=_0x59c6b4,_0x23afca=_0x16f4c2,_0x26e5e1=!0x1;function _0x21189a(_0x945fcc){return _0x25e3d2(_0x945fcc)===_0x3f68f2;}_0x1b0098[_0x3a5777('0x4ac')]=_0x1d2fce,_0x1b0098[_0x3a5777('0xf8a')]=_0x2a5436,_0x1b0098[_0x3a5777('0x307')]=_0x35c4b6,_0x1b0098['ContextProvider']=_0x37d03d,_0x1b0098[_0x3a5777('0x5b0')]=_0x4b0d7f,_0x1b0098['ForwardRef']=_0x49cc3d,_0x1b0098['Fragment']=_0x1c375a,_0x1b0098[_0x3a5777('0x80b')]=_0x46bbf7,_0x1b0098[_0x3a5777('0x741')]=_0x3a8c8e,_0x1b0098[_0x3a5777('0x813')]=_0x4595a7,_0x1b0098['Profiler']=_0x55738a,_0x1b0098[_0x3a5777('0x10df')]=_0x14f728,_0x1b0098[_0x3a5777('0x114f')]=_0x23afca,_0x1b0098[_0x3a5777('0xa21')]=function(_0x28a1da){var _0x119afe=_0x3a5777;return _0x26e5e1||(_0x26e5e1=!0x0,console[_0x119afe('0x783')](_0x119afe('0x648'))),_0x21189a(_0x28a1da)||_0x25e3d2(_0x28a1da)===_0x3c9cfc;},_0x1b0098[_0x3a5777('0x39')]=_0x21189a,_0x1b0098[_0x3a5777('0x815')]=function(_0x28a019){return _0x25e3d2(_0x28a019)===_0x32775b;},_0x1b0098['isContextProvider']=function(_0x3d841f){return _0x25e3d2(_0x3d841f)===_0x13c5c6;},_0x1b0098[_0x3a5777('0xa95')]=function(_0x4c9008){var _0xc5ad9a=_0x3a5777;return _0xc5ad9a('0xb3f')==typeof _0x4c9008&&null!==_0x4c9008&&_0x4c9008[_0xc5ad9a('0x1015')]===_0x332c65;},_0x1b0098[_0x3a5777('0x193')]=function(_0x2ee539){return _0x25e3d2(_0x2ee539)===_0x31c925;},_0x1b0098[_0x3a5777('0x6d8')]=function(_0x5e2a02){return _0x25e3d2(_0x5e2a02)===_0x1dd293;},_0x1b0098['isLazy']=function(_0x24eabe){return _0x25e3d2(_0x24eabe)===_0xf9c1fa;},_0x1b0098[_0x3a5777('0x3b1')]=function(_0x4adf34){return _0x25e3d2(_0x4adf34)===_0x7b45e8;},_0x1b0098[_0x3a5777('0x9ea')]=function(_0x12e5c6){return _0x25e3d2(_0x12e5c6)===_0x37ca6c;},_0x1b0098[_0x3a5777('0xef')]=function(_0x20e2bb){return _0x25e3d2(_0x20e2bb)===_0xab42f6;},_0x1b0098[_0x3a5777('0xfb9')]=function(_0x139a04){return _0x25e3d2(_0x139a04)===_0x59c6b4;},_0x1b0098[_0x3a5777('0x89f')]=function(_0x1bb899){return _0x25e3d2(_0x1bb899)===_0x16f4c2;},_0x1b0098[_0x3a5777('0xf13')]=function(_0x554a3d){var _0x482918=_0x3a5777;return _0x482918('0x2fd')==typeof _0x554a3d||_0x482918('0x106c')==typeof _0x554a3d||_0x554a3d===_0x1dd293||_0x554a3d===_0x3f68f2||_0x554a3d===_0xab42f6||_0x554a3d===_0x59c6b4||_0x554a3d===_0x16f4c2||_0x554a3d===_0x35d026||_0x482918('0xb3f')==typeof _0x554a3d&&null!==_0x554a3d&&(_0x554a3d[_0x482918('0x1015')]===_0xf9c1fa||_0x554a3d[_0x482918('0x1015')]===_0x7b45e8||_0x554a3d[_0x482918('0x1015')]===_0x13c5c6||_0x554a3d[_0x482918('0x1015')]===_0x32775b||_0x554a3d['$$typeof']===_0x31c925||_0x554a3d[_0x482918('0x1015')]===_0x2ff060||_0x554a3d['$$typeof']===_0x50dcb9||_0x554a3d[_0x482918('0x1015')]===_0xf39454||_0x554a3d[_0x482918('0x1015')]===_0x2e57cd);},_0x1b0098[_0x3a5777('0x30c')]=_0x25e3d2;}();}[_0x545c0c('0xfd2')](this,_0x2afa36('_process')));},{'_process':0x1}],0x164:[function(_0x5c0b98,_0x1cb3b4,_0x52ca0f){var _0x5ee9dc=_0x548f48;/** @license React v16.13.1 + +'use strict'; + + + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary +// (unstable) APIs that have been removed. Can we remove the symbols? + +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); +} + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} // AsyncMode is deprecated along with isAsyncMode + +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; +exports.isValidElementType = isValidElementType; +exports.typeOf = typeOf; + })(); +} + +}).call(this,require('_process')) + +},{"_process":1}],356:[function(require,module,exports){ +/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -19,4 +44587,2244 @@ object-assign * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -'use strict';var _0x38a1a6=_0x5ee9dc('0x106c')==typeof Symbol&&Symbol[_0x5ee9dc('0x80e')],_0x1b74cf=_0x38a1a6?Symbol['for']('react.element'):0xeac7,_0x1f0aea=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0xe34')):0xeaca,_0x38ddf7=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0xb04')):0xeacb,_0x282002=_0x38a1a6?Symbol['for'](_0x5ee9dc('0x7cb')):0xeacc,_0xde6d68=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0xbd3')):0xead2,_0x499648=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0xdb1')):0xeacd,_0x1224c8=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0x8b2')):0xeace,_0x2d58ff=_0x38a1a6?Symbol['for']('react.async_mode'):0xeacf,_0x69f271=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0x2b8')):0xeacf,_0x2b24e7=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0x191')):0xead0,_0x2b91fb=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0x33')):0xead1,_0xb26cb=_0x38a1a6?Symbol['for'](_0x5ee9dc('0x92b')):0xead8,_0x5dea43=_0x38a1a6?Symbol['for'](_0x5ee9dc('0xe93')):0xead3,_0x2ad335=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0xbbe')):0xead4,_0x4c2a82=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0x107')):0xead9,_0x45b7e5=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')]('react.fundamental'):0xead5,_0x63aa0=_0x38a1a6?Symbol[_0x5ee9dc('0x80e')](_0x5ee9dc('0xd7b')):0xead6,_0xf97f29=_0x38a1a6?Symbol['for']('react.scope'):0xead7;function _0x23b89f(_0x1399ee){var _0x2569dc=_0x5ee9dc;if(_0x2569dc('0xb3f')==typeof _0x1399ee&&null!==_0x1399ee){var _0x3de5f2=_0x1399ee[_0x2569dc('0x1015')];switch(_0x3de5f2){case _0x1b74cf:switch(_0x1399ee=_0x1399ee[_0x2569dc('0x921')]){case _0x2d58ff:case _0x69f271:case _0x38ddf7:case _0xde6d68:case _0x282002:case _0x2b91fb:return _0x1399ee;default:switch(_0x1399ee=_0x1399ee&&_0x1399ee[_0x2569dc('0x1015')]){case _0x1224c8:case _0x2b24e7:case _0x2ad335:case _0x5dea43:case _0x499648:return _0x1399ee;default:return _0x3de5f2;}}case _0x1f0aea:return _0x3de5f2;}}}function _0x2c4eff(_0x361966){return _0x23b89f(_0x361966)===_0x69f271;}_0x52ca0f[_0x5ee9dc('0x4ac')]=_0x2d58ff,_0x52ca0f[_0x5ee9dc('0xf8a')]=_0x69f271,_0x52ca0f[_0x5ee9dc('0x307')]=_0x1224c8,_0x52ca0f['ContextProvider']=_0x499648,_0x52ca0f['Element']=_0x1b74cf,_0x52ca0f[_0x5ee9dc('0xb1a')]=_0x2b24e7,_0x52ca0f[_0x5ee9dc('0x18f')]=_0x38ddf7,_0x52ca0f[_0x5ee9dc('0x80b')]=_0x2ad335,_0x52ca0f[_0x5ee9dc('0x741')]=_0x5dea43,_0x52ca0f[_0x5ee9dc('0x813')]=_0x1f0aea,_0x52ca0f['Profiler']=_0xde6d68,_0x52ca0f['StrictMode']=_0x282002,_0x52ca0f['Suspense']=_0x2b91fb,_0x52ca0f['isAsyncMode']=function(_0xdaffb7){return _0x2c4eff(_0xdaffb7)||_0x23b89f(_0xdaffb7)===_0x2d58ff;},_0x52ca0f[_0x5ee9dc('0x39')]=_0x2c4eff,_0x52ca0f['isContextConsumer']=function(_0x6ded89){return _0x23b89f(_0x6ded89)===_0x1224c8;},_0x52ca0f[_0x5ee9dc('0xfe3')]=function(_0x5d89ea){return _0x23b89f(_0x5d89ea)===_0x499648;},_0x52ca0f[_0x5ee9dc('0xa95')]=function(_0x432089){var _0x27a550=_0x5ee9dc;return _0x27a550('0xb3f')==typeof _0x432089&&null!==_0x432089&&_0x432089['$$typeof']===_0x1b74cf;},_0x52ca0f['isForwardRef']=function(_0x3cb40f){return _0x23b89f(_0x3cb40f)===_0x2b24e7;},_0x52ca0f[_0x5ee9dc('0x6d8')]=function(_0x4dab45){return _0x23b89f(_0x4dab45)===_0x38ddf7;},_0x52ca0f['isLazy']=function(_0x4a2c19){return _0x23b89f(_0x4a2c19)===_0x2ad335;},_0x52ca0f[_0x5ee9dc('0x3b1')]=function(_0x983287){return _0x23b89f(_0x983287)===_0x5dea43;},_0x52ca0f[_0x5ee9dc('0x9ea')]=function(_0x12fe59){return _0x23b89f(_0x12fe59)===_0x1f0aea;},_0x52ca0f[_0x5ee9dc('0xef')]=function(_0x4b1f9a){return _0x23b89f(_0x4b1f9a)===_0xde6d68;},_0x52ca0f[_0x5ee9dc('0xfb9')]=function(_0x1ad003){return _0x23b89f(_0x1ad003)===_0x282002;},_0x52ca0f[_0x5ee9dc('0x89f')]=function(_0x5e7790){return _0x23b89f(_0x5e7790)===_0x2b91fb;},_0x52ca0f[_0x5ee9dc('0xf13')]=function(_0x301d02){var _0x179ba2=_0x5ee9dc;return'string'==typeof _0x301d02||_0x179ba2('0x106c')==typeof _0x301d02||_0x301d02===_0x38ddf7||_0x301d02===_0x69f271||_0x301d02===_0xde6d68||_0x301d02===_0x282002||_0x301d02===_0x2b91fb||_0x301d02===_0xb26cb||'object'==typeof _0x301d02&&null!==_0x301d02&&(_0x301d02[_0x179ba2('0x1015')]===_0x2ad335||_0x301d02[_0x179ba2('0x1015')]===_0x5dea43||_0x301d02[_0x179ba2('0x1015')]===_0x499648||_0x301d02[_0x179ba2('0x1015')]===_0x1224c8||_0x301d02['$$typeof']===_0x2b24e7||_0x301d02[_0x179ba2('0x1015')]===_0x45b7e5||_0x301d02[_0x179ba2('0x1015')]===_0x63aa0||_0x301d02[_0x179ba2('0x1015')]===_0xf97f29||_0x301d02[_0x179ba2('0x1015')]===_0x4c2a82);},_0x52ca0f['typeOf']=_0x23b89f;},{}],0x165:[function(_0x1058c6,_0x3e7675,_0x417bbf){var _0x50501d=_0x548f48;(function(_0x24a836){var _0x1d759b=_0x5376;'use strict';_0x1d759b('0xcd8')===_0x24a836[_0x1d759b('0xdcb')][_0x1d759b('0xa8d')]?_0x3e7675['exports']=_0x1058c6(_0x1d759b('0xcc8')):_0x3e7675[_0x1d759b('0x64')]=_0x1058c6(_0x1d759b('0x3eb'));}[_0x50501d('0xfd2')](this,_0x1058c6(_0x50501d('0x1c8'))));},{'./cjs/react-is.development.js':0x163,'./cjs/react-is.production.min.js':0x164,'_process':0x1}],0x166:[function(_0xac64b,_0x2483a3,_0xff152d){!function(_0x491b0b,_0x13ab1c){var _0x17d11d=_0x5376;'object'==typeof _0xff152d&&_0x17d11d('0xb3f')==typeof _0x2483a3?_0x2483a3['exports']=_0x13ab1c(_0xac64b(_0x17d11d('0x187')),_0xac64b(_0x17d11d('0xb11')),_0xac64b(_0x17d11d('0x1005')),_0xac64b('trim-canvas')):_0x17d11d('0x106c')==typeof define&&define[_0x17d11d('0xdf3')]?define([_0x17d11d('0x187'),_0x17d11d('0xb11'),_0x17d11d('0x1005'),'trim-canvas'],_0x13ab1c):'object'==typeof _0xff152d?_0xff152d['SignatureCanvas']=_0x13ab1c(_0xac64b('prop-types'),_0xac64b(_0x17d11d('0xb11')),_0xac64b('signature_pad'),_0xac64b(_0x17d11d('0x6ea'))):_0x491b0b[_0x17d11d('0xff4')]=_0x13ab1c(_0x491b0b['prop-types'],_0x491b0b['react'],_0x491b0b['signature_pad'],_0x491b0b[_0x17d11d('0x6ea')]);}(this,function(_0x4a2d97,_0x16de1e,_0xdfbe28,_0x29dd75){return function(_0x27424e){function _0x4827ae(_0x1af1b5){var _0x4c7e85=_0x5376;if(_0x3bcbfe[_0x1af1b5])return _0x3bcbfe[_0x1af1b5][_0x4c7e85('0x64')];var _0x329a9c=_0x3bcbfe[_0x1af1b5]={'exports':{},'id':_0x1af1b5,'loaded':!0x1};return _0x27424e[_0x1af1b5][_0x4c7e85('0xfd2')](_0x329a9c[_0x4c7e85('0x64')],_0x329a9c,_0x329a9c[_0x4c7e85('0x64')],_0x4827ae),_0x329a9c[_0x4c7e85('0x8ea')]=!0x0,_0x329a9c[_0x4c7e85('0x64')];}var _0x3bcbfe={};return _0x4827ae['m']=_0x27424e,_0x4827ae['c']=_0x3bcbfe,_0x4827ae['p']='',_0x4827ae(0x0);}([function(_0x503d87,_0x464547,_0x23cadb){var _0x358af2=_0x5376;'use strict';function _0x3a74c6(_0x81d079){return _0x81d079&&_0x81d079['__esModule']?_0x81d079:{'default':_0x81d079};}function _0x1e45b2(_0x15f80f,_0x511526){var _0x8fbab4=_0x5376,_0x26e06d={};for(var _0x19f307 in _0x15f80f)_0x511526[_0x8fbab4('0xf00')](_0x19f307)>=0x0||Object[_0x8fbab4('0xe02')][_0x8fbab4('0xe9c')][_0x8fbab4('0xfd2')](_0x15f80f,_0x19f307)&&(_0x26e06d[_0x19f307]=_0x15f80f[_0x19f307]);return _0x26e06d;}function _0x188b4a(_0x472b1b,_0x3f46cf){if(!(_0x472b1b instanceof _0x3f46cf))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x102fb0(_0x2cc428,_0x3fbefc){var _0x4b3675=_0x5376;if(!_0x2cc428)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return!_0x3fbefc||_0x4b3675('0xb3f')!=typeof _0x3fbefc&&'function'!=typeof _0x3fbefc?_0x2cc428:_0x3fbefc;}Object[_0x358af2('0x9a5')](_0x464547,'__esModule',{'value':!0x0});var _0x4d1c66=Object[_0x358af2('0x1060')]||function(_0x41ae35){var _0x25f308=_0x358af2;for(var _0x411097=0x1;_0x4110970x1&&void 0x0!==arguments[0x1]?arguments[0x1]:_0x1f4811('0x10c');return function(_0x3428a4){function _0x5adfdd(){var _0x42f13a=_0x5376,_0x1f6839,_0x518b9b,_0x288059;_0x54b47d(this,_0x5adfdd);for(var _0x47d8db=arguments[_0x42f13a('0x13')],_0x25393d=Array(_0x47d8db),_0x257b23=0x0;_0x257b23<_0x47d8db;_0x257b23++)_0x25393d[_0x257b23]=arguments[_0x257b23];return _0x518b9b=_0x288059=_0x58f5ce(this,(_0x1f6839=_0x5adfdd[_0x42f13a('0x112c')]||Object['getPrototypeOf'](_0x5adfdd))[_0x42f13a('0xfd2')][_0x42f13a('0x2be')](_0x1f6839,[this][_0x42f13a('0xda9')](_0x25393d))),_0x288059[_0x42f13a('0x55d')]={'active':!0x1},_0x288059[_0x42f13a('0x87')]=function(){var _0x1aaf14=_0x42f13a;return _0x288059[_0x1aaf14('0x1089')]({'active':!0x0});},_0x288059[_0x42f13a('0xc74')]=function(){var _0x49fa6f=_0x42f13a;return _0x288059[_0x49fa6f('0x1089')]({'active':!0x1});},_0x288059[_0x42f13a('0xb9b')]=function(){var _0x13a60a=_0x42f13a;return _0x212f02[_0x13a60a('0xf5f')][_0x13a60a('0xfa9')](_0x1ceca8,{'onMouseDown':_0x288059['handleMouseDown'],'onMouseUp':_0x288059[_0x13a60a('0xc74')]},_0x212f02[_0x13a60a('0xf5f')][_0x13a60a('0xfa9')](_0x133632,_0x104ac8({},_0x288059[_0x13a60a('0x1136')],_0x288059[_0x13a60a('0x55d')])));},_0x58f5ce(_0x288059,_0x518b9b);}return _0x1c0e15(_0x5adfdd,_0x3428a4),_0x5adfdd;}(_0x212f02['default'][_0x1f4811('0x42')]);};_0xf40a3c['default']=_0x2d0766;},{'react':_0x548f48('0xb11')}],0x169:[function(_0x1b20e9,_0x57d554,_0x872a2e){var _0x1860f0=_0x548f48;'use strict';Object[_0x1860f0('0x9a5')](_0x872a2e,'__esModule',{'value':!0x0}),_0x872a2e[_0x1860f0('0x7f7')]=void 0x0;var _0x1d2868,_0x5f2a34=Object[_0x1860f0('0x1060')]||function(_0x5af566){var _0x3bb85e=_0x1860f0;for(var _0x473004=0x1;_0x4730040x1&&void 0x0!==arguments[0x1]?arguments[0x1]:_0x3e0118('0x10c');return function(_0x5678fe){function _0x29b502(){var _0x1dd354=_0x5376,_0x227abe,_0x1bef83,_0x5b27e2;_0x3ad219(this,_0x29b502);for(var _0x348d0e=arguments[_0x1dd354('0x13')],_0x54919a=Array(_0x348d0e),_0x4aa568=0x0;_0x4aa568<_0x348d0e;_0x4aa568++)_0x54919a[_0x4aa568]=arguments[_0x4aa568];return _0x1bef83=_0x5b27e2=_0x3fd67e(this,(_0x227abe=_0x29b502[_0x1dd354('0x112c')]||Object[_0x1dd354('0x2d9')](_0x29b502))[_0x1dd354('0xfd2')][_0x1dd354('0x2be')](_0x227abe,[this]['concat'](_0x54919a))),_0x5b27e2['state']={'hover':!0x1},_0x5b27e2[_0x1dd354('0x8f0')]=function(){return _0x5b27e2['setState']({'hover':!0x0});},_0x5b27e2[_0x1dd354('0x6b0')]=function(){var _0x3a72aa=_0x1dd354;return _0x5b27e2[_0x3a72aa('0x1089')]({'hover':!0x1});},_0x5b27e2[_0x1dd354('0xb9b')]=function(){var _0x1ffb94=_0x1dd354;return _0x4e7999[_0x1ffb94('0xf5f')][_0x1ffb94('0xfa9')](_0x37c908,{'onMouseOver':_0x5b27e2[_0x1ffb94('0x8f0')],'onMouseOut':_0x5b27e2['handleMouseOut']},_0x4e7999[_0x1ffb94('0xf5f')][_0x1ffb94('0xfa9')](_0x469241,_0x5f2a34({},_0x5b27e2[_0x1ffb94('0x1136')],_0x5b27e2[_0x1ffb94('0x55d')])));},_0x3fd67e(_0x5b27e2,_0x1bef83);}return _0x499ccb(_0x29b502,_0x5678fe),_0x29b502;}(_0x4e7999['default']['Component']);};_0x872a2e[_0x1860f0('0xf5f')]=_0xc3943;},{'react':_0x548f48('0xb11')}],0x16a:[function(_0x47f32c,_0x45fe85,_0x38d244){var _0xbc4361=_0x548f48;'use strict';Object[_0xbc4361('0x9a5')](_0x38d244,'__esModule',{'value':!0x0}),_0x38d244['flattenNames']=void 0x0;var _0x121e61=_0x54d6d6(_0x47f32c(_0xbc4361('0x1039'))),_0x589201=_0x54d6d6(_0x47f32c('lodash/forOwn')),_0x53d284=_0x54d6d6(_0x47f32c(_0xbc4361('0x7a9'))),_0x2ab35c=_0x54d6d6(_0x47f32c(_0xbc4361('0x3ab')));function _0x54d6d6(_0x38bc24){var _0xcba4a8=_0xbc4361;return _0x38bc24&&_0x38bc24[_0xcba4a8('0xce5')]?_0x38bc24:{'default':_0x38bc24};}var _0x32b3c3=_0x38d244[_0xbc4361('0x93f')]=function _0x32bad7(){var _0x540682=arguments['length']>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:[],_0x405528=[];return(0x0,_0x2ab35c['default'])(_0x540682,function(_0x232418){var _0x44552a=_0x5376;Array['isArray'](_0x232418)?_0x32bad7(_0x232418)[_0x44552a('0xd8e')](function(_0x2271af){return _0x405528['push'](_0x2271af);}):(0x0,_0x53d284[_0x44552a('0xf5f')])(_0x232418)?(0x0,_0x589201[_0x44552a('0xf5f')])(_0x232418,function(_0x4e3913,_0x152c0d){var _0x3104b2=_0x44552a;!0x0===_0x4e3913&&_0x405528[_0x3104b2('0x91b')](_0x152c0d),_0x405528[_0x3104b2('0x91b')](_0x152c0d+'-'+_0x4e3913);}):(0x0,_0x121e61[_0x44552a('0xf5f')])(_0x232418)&&_0x405528[_0x44552a('0x91b')](_0x232418);}),_0x405528;};_0x38d244[_0xbc4361('0xf5f')]=_0x32b3c3;},{'lodash/forOwn':0x104,'lodash/isPlainObject':0x112,'lodash/isString':0x114,'lodash/map':0x11a}],0x16b:[function(_0x12f9c9,_0x2b406a,_0x2f114c){var _0x1a428b=_0x548f48;'use strict';Object[_0x1a428b('0x9a5')](_0x2f114c,'__esModule',{'value':!0x0}),_0x2f114c['ReactCSS']=_0x2f114c[_0x1a428b('0x13f')]=_0x2f114c[_0x1a428b('0x3b')]=_0x2f114c['handleHover']=_0x2f114c[_0x1a428b('0x7f7')]=void 0x0;var _0x4f41c3=_0x4f873d(_0x12f9c9(_0x1a428b('0xbea'))),_0x4ad6cb=_0x4f873d(_0x12f9c9(_0x1a428b('0x493'))),_0x2ff5f7=_0x4f873d(_0x12f9c9('./autoprefix')),_0x5c4e6f=_0x4f873d(_0x12f9c9(_0x1a428b('0xe73'))),_0x428266=_0x4f873d(_0x12f9c9(_0x1a428b('0x127'))),_0x3f8b03=_0x4f873d(_0x12f9c9('./loop'));function _0x4f873d(_0xafbf40){return _0xafbf40&&_0xafbf40['__esModule']?_0xafbf40:{'default':_0xafbf40};}_0x2f114c[_0x1a428b('0x7f7')]=_0x5c4e6f['default'],_0x2f114c[_0x1a428b('0xa76')]=_0x5c4e6f[_0x1a428b('0xf5f')],_0x2f114c[_0x1a428b('0x3b')]=_0x428266[_0x1a428b('0xf5f')],_0x2f114c[_0x1a428b('0x13f')]=_0x3f8b03[_0x1a428b('0xf5f')];var _0x5d721f=_0x2f114c['ReactCSS']=function(_0x36f657){var _0x4001dc=_0x1a428b;for(var _0x56c39e=arguments[_0x4001dc('0x13')],_0xadc795=Array(_0x56c39e>0x1?_0x56c39e-0x1:0x0),_0x4af8b7=0x1;_0x4af8b7<_0x56c39e;_0x4af8b7++)_0xadc795[_0x4af8b7-0x1]=arguments[_0x4af8b7];var _0x49b6fd=(0x0,_0x4f41c3['default'])(_0xadc795),_0x35dd24=(0x0,_0x4ad6cb[_0x4001dc('0xf5f')])(_0x36f657,_0x49b6fd);return(0x0,_0x2ff5f7[_0x4001dc('0xf5f')])(_0x35dd24);};_0x2f114c[_0x1a428b('0xf5f')]=_0x5d721f;},{'./autoprefix':0x167,'./components/active':0x168,'./components/hover':0x169,'./flattenNames':0x16a,'./loop':0x16c,'./mergeClasses':0x16d}],0x16c:[function(_0x579a52,_0x338630,_0x749d75){var _0x5bd0fe=_0x548f48;'use strict';Object[_0x5bd0fe('0x9a5')](_0x749d75,_0x5bd0fe('0xce5'),{'value':!0x0}),_0x749d75[_0x5bd0fe('0xf5f')]=function(_0x333908,_0x390585){var _0x255bcb=_0x5bd0fe,_0x261342={},_0x42886f=function(_0x26f988){var _0x51e01c=_0x5376,_0x1acfcc=!(arguments[_0x51e01c('0x13')]>0x1&&void 0x0!==arguments[0x1])||arguments[0x1];_0x261342[_0x26f988]=_0x1acfcc;};return 0x0===_0x333908&&_0x42886f(_0x255bcb('0xea8')),_0x333908===_0x390585-0x1&&_0x42886f(_0x255bcb('0xf51')),(0x0===_0x333908||_0x333908%0x2==0x0)&&_0x42886f(_0x255bcb('0xe83')),0x1===Math['abs'](_0x333908%0x2)&&_0x42886f(_0x255bcb('0x56f')),_0x42886f('nth-child',_0x333908),_0x261342;};},{}],0x16d:[function(_0x4c1670,_0x16170c,_0x3cf296){var _0x47416d=_0x548f48;'use strict';Object['defineProperty'](_0x3cf296,_0x47416d('0xce5'),{'value':!0x0}),_0x3cf296[_0x47416d('0xc4a')]=void 0x0;var _0x46059c=_0x177366(_0x4c1670(_0x47416d('0xca1'))),_0x10669e=_0x177366(_0x4c1670(_0x47416d('0x6b1'))),_0x270ffd=Object[_0x47416d('0x1060')]||function(_0x35e697){var _0x10bd9e=_0x47416d;for(var _0x2c760a=0x1;_0x2c760a0x1&&void 0x0!==arguments[0x1]?arguments[0x1]:[],_0x18300a=_0x22fc3a[_0x279a66('0xf5f')]&&(0x0,_0x10669e[_0x279a66('0xf5f')])(_0x22fc3a[_0x279a66('0xf5f')])||{};return _0x3bc787[_0x279a66('0xd8e')](function(_0x4be1f7){var _0x341f60=_0x279a66,_0x1ee8cf=_0x22fc3a[_0x4be1f7];return _0x1ee8cf&&(0x0,_0x46059c[_0x341f60('0xf5f')])(_0x1ee8cf,function(_0x10aa89,_0x20560c){_0x18300a[_0x20560c]||(_0x18300a[_0x20560c]={}),_0x18300a[_0x20560c]=_0x270ffd({},_0x18300a[_0x20560c],_0x1ee8cf[_0x20560c]);}),_0x4be1f7;}),_0x18300a;};_0x3cf296[_0x47416d('0xf5f')]=_0x1db626;},{'lodash/cloneDeep':0xfe,'lodash/forOwn':0x104}],0x16e:[function(_0x5a1408,_0xd8a364,_0x11f483){!function(_0x1d0f61,_0x8c80e6){var _0x552341=_0x5376;'object'==typeof _0x11f483&&void 0x0!==_0xd8a364?_0xd8a364[_0x552341('0x64')]=_0x8c80e6():_0x552341('0x106c')==typeof define&&define[_0x552341('0xdf3')]?define(_0x8c80e6):_0x1d0f61['SignaturePad']=_0x8c80e6();}(this,function(){var _0x3966c8=_0x5376;'use strict';function _0x1c204a(_0x5668fe,_0x5993af,_0x471720){var _0x588f19=_0x5376;this['x']=_0x5668fe,this['y']=_0x5993af,this[_0x588f19('0x23c')]=_0x471720||new Date()['getTime']();}function _0x51b975(_0x5ddbee,_0xaa5aad,_0x2a78dd,_0x2a9ce1){var _0x1becbd=_0x5376;this[_0x1becbd('0xb0e')]=_0x5ddbee,this[_0x1becbd('0x7f0')]=_0xaa5aad,this[_0x1becbd('0x110d')]=_0x2a78dd,this[_0x1becbd('0x155')]=_0x2a9ce1;}function _0x5e777f(_0x5c534f,_0x65e208){var _0x38d37a=_0x5376,_0x30d256=this,_0x5aae42=_0x65e208||{};this[_0x38d37a('0x2a0')]=_0x5aae42[_0x38d37a('0x2a0')]||0.7,this[_0x38d37a('0x106')]=_0x5aae42[_0x38d37a('0x106')]||0.5,this[_0x38d37a('0xe27')]=_0x5aae42[_0x38d37a('0xe27')]||2.5,this[_0x38d37a('0x98a')]=_0x38d37a('0x98a')in _0x5aae42?_0x5aae42[_0x38d37a('0x98a')]:0x10,this['minDistance']=_0x38d37a('0xcc7')in _0x5aae42?_0x5aae42['minDistance']:0x5,this[_0x38d37a('0x98a')]?this[_0x38d37a('0x702')]=function(_0x42df27,_0x19e95c,_0x219673){var _0xd7a068,_0xeb06bb,_0x625c46,_0x4f74e6=null,_0x1ccccc=0x0;_0x219673||(_0x219673={});var _0x404908=function(){var _0x11e987=_0x5376;_0x1ccccc=!0x1===_0x219673[_0x11e987('0x7cc')]?0x0:Date[_0x11e987('0x313')](),_0x4f74e6=null,_0x625c46=_0x42df27[_0x11e987('0x2be')](_0xd7a068,_0xeb06bb),_0x4f74e6||(_0xd7a068=_0xeb06bb=null);};return function(){var _0x6ee986=_0x5376,_0xf113de=Date[_0x6ee986('0x313')]();_0x1ccccc||!0x1!==_0x219673[_0x6ee986('0x7cc')]||(_0x1ccccc=_0xf113de);var _0x7cb55a=_0x19e95c-(_0xf113de-_0x1ccccc);return _0xd7a068=this,_0xeb06bb=arguments,_0x7cb55a<=0x0||_0x7cb55a>_0x19e95c?(_0x4f74e6&&(clearTimeout(_0x4f74e6),_0x4f74e6=null),_0x1ccccc=_0xf113de,_0x625c46=_0x42df27[_0x6ee986('0x2be')](_0xd7a068,_0xeb06bb),_0x4f74e6||(_0xd7a068=_0xeb06bb=null)):_0x4f74e6||!0x1===_0x219673[_0x6ee986('0x2b1')]||(_0x4f74e6=setTimeout(_0x404908,_0x7cb55a)),_0x625c46;};}(_0x5e777f[_0x38d37a('0xe02')][_0x38d37a('0xaa9')],this[_0x38d37a('0x98a')]):this[_0x38d37a('0x702')]=_0x5e777f[_0x38d37a('0xe02')][_0x38d37a('0xaa9')],this[_0x38d37a('0x1fc')]=_0x5aae42[_0x38d37a('0x1fc')]||function(){var _0x396e30=_0x38d37a;return(this['minWidth']+this[_0x396e30('0xe27')])/0x2;},this[_0x38d37a('0xee5')]=_0x5aae42[_0x38d37a('0xee5')]||_0x38d37a('0xef9'),this['backgroundColor']=_0x5aae42[_0x38d37a('0x97f')]||_0x38d37a('0xd47'),this[_0x38d37a('0x0')]=_0x5aae42[_0x38d37a('0x0')],this[_0x38d37a('0xd1e')]=_0x5aae42[_0x38d37a('0xd1e')],this[_0x38d37a('0xc16')]=_0x5c534f,this[_0x38d37a('0x1e8')]=_0x5c534f[_0x38d37a('0xeb8')]('2d'),this[_0x38d37a('0xb15')](),this['_handleMouseDown']=function(_0x3fae3f){var _0x5b9be9=_0x38d37a;0x1===_0x3fae3f[_0x5b9be9('0xd45')]&&(_0x30d256[_0x5b9be9('0x5d')]=!0x0,_0x30d256[_0x5b9be9('0x461')](_0x3fae3f));},this[_0x38d37a('0x9da')]=function(_0x23aac9){var _0x312616=_0x38d37a;_0x30d256[_0x312616('0x5d')]&&_0x30d256[_0x312616('0x702')](_0x23aac9);},this[_0x38d37a('0x300')]=function(_0x5a4d0f){var _0x1cc1b8=_0x38d37a;0x1===_0x5a4d0f[_0x1cc1b8('0xd45')]&&_0x30d256['_mouseButtonDown']&&(_0x30d256[_0x1cc1b8('0x5d')]=!0x1,_0x30d256[_0x1cc1b8('0x7b1')](_0x5a4d0f));},this['_handleTouchStart']=function(_0x748eb9){var _0x337f5c=_0x38d37a;if(0x1===_0x748eb9[_0x337f5c('0xdba')][_0x337f5c('0x13')]){var _0x286faf=_0x748eb9[_0x337f5c('0xb14')][0x0];_0x30d256[_0x337f5c('0x461')](_0x286faf);}},this[_0x38d37a('0x998')]=function(_0x2635a9){var _0x62f751=_0x38d37a;_0x2635a9[_0x62f751('0x510')]();var _0x560b7e=_0x2635a9[_0x62f751('0xdba')][0x0];_0x30d256[_0x62f751('0x702')](_0x560b7e);},this['_handleTouchEnd']=function(_0x388bea){var _0x4b82e2=_0x38d37a;_0x388bea[_0x4b82e2('0x1d7')]===_0x30d256[_0x4b82e2('0xc16')]&&(_0x388bea[_0x4b82e2('0x510')](),_0x30d256[_0x4b82e2('0x7b1')](_0x388bea));},this['on']();}return _0x1c204a[_0x3966c8('0xe02')]['velocityFrom']=function(_0x3150c8){var _0x1722dc=_0x3966c8;return this[_0x1722dc('0x23c')]!==_0x3150c8['time']?this['distanceTo'](_0x3150c8)/(this[_0x1722dc('0x23c')]-_0x3150c8[_0x1722dc('0x23c')]):0x1;},_0x1c204a[_0x3966c8('0xe02')]['distanceTo']=function(_0x5bfb9e){var _0x353b15=_0x3966c8;return Math['sqrt'](Math['pow'](this['x']-_0x5bfb9e['x'],0x2)+Math[_0x353b15('0x1017')](this['y']-_0x5bfb9e['y'],0x2));},_0x1c204a[_0x3966c8('0xe02')]['equals']=function(_0x433bb8){var _0x5fdf53=_0x3966c8;return this['x']===_0x433bb8['x']&&this['y']===_0x433bb8['y']&&this[_0x5fdf53('0x23c')]===_0x433bb8['time'];},_0x51b975[_0x3966c8('0xe02')][_0x3966c8('0x13')]=function(){var _0x2f16da=_0x3966c8;for(var _0x1186ce=0x0,_0x553cfa=void 0x0,_0x2a7449=void 0x0,_0x1c9c1a=0x0;_0x1c9c1a<=0xa;_0x1c9c1a+=0x1){var _0x1ea5a4=_0x1c9c1a/0xa,_0xaff474=this[_0x2f16da('0x364')](_0x1ea5a4,this['startPoint']['x'],this[_0x2f16da('0x7f0')]['x'],this['control2']['x'],this[_0x2f16da('0x155')]['x']),_0x25dd44=this['_point'](_0x1ea5a4,this[_0x2f16da('0xb0e')]['y'],this['control1']['y'],this[_0x2f16da('0x110d')]['y'],this['endPoint']['y']);if(_0x1c9c1a>0x0){var _0x3aef72=_0xaff474-_0x553cfa,_0x5d5564=_0x25dd44-_0x2a7449;_0x1186ce+=Math['sqrt'](_0x3aef72*_0x3aef72+_0x5d5564*_0x5d5564);}_0x553cfa=_0xaff474,_0x2a7449=_0x25dd44;}return _0x1186ce;},_0x51b975[_0x3966c8('0xe02')]['_point']=function(_0x2fcb86,_0x4fe713,_0x1b338c,_0x23f7f5,_0x5bc2ae){return _0x4fe713*(0x1-_0x2fcb86)*(0x1-_0x2fcb86)*(0x1-_0x2fcb86)+0x3*_0x1b338c*(0x1-_0x2fcb86)*(0x1-_0x2fcb86)*_0x2fcb86+0x3*_0x23f7f5*(0x1-_0x2fcb86)*_0x2fcb86*_0x2fcb86+_0x5bc2ae*_0x2fcb86*_0x2fcb86*_0x2fcb86;},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0xb15')]=function(){var _0x38905c=_0x3966c8,_0x3d2ce5=this['_ctx'],_0x425891=this['_canvas'];_0x3d2ce5[_0x38905c('0x15d')]=this[_0x38905c('0x97f')],_0x3d2ce5[_0x38905c('0xce')](0x0,0x0,_0x425891[_0x38905c('0x115')],_0x425891['height']),_0x3d2ce5[_0x38905c('0x10e4')](0x0,0x0,_0x425891[_0x38905c('0x115')],_0x425891['height']),this[_0x38905c('0x9fd')]=[],this[_0x38905c('0xea2')](),this['_isEmpty']=!0x0;},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x182')]=function(_0x1d1dc7){var _0x2fc243=_0x3966c8,_0x1c3fb3=this,_0x1602b4=arguments[_0x2fc243('0x13')]>0x1&&void 0x0!==arguments[0x1]?arguments[0x1]:{},_0x58f955=new Image(),_0x3aab8f=_0x1602b4['ratio']||window[_0x2fc243('0xe8d')]||0x1,_0x4b0d11=_0x1602b4[_0x2fc243('0x115')]||this[_0x2fc243('0xc16')][_0x2fc243('0x115')]/_0x3aab8f,_0x2b34fc=_0x1602b4[_0x2fc243('0x27b')]||this[_0x2fc243('0xc16')]['height']/_0x3aab8f;this[_0x2fc243('0xea2')](),_0x58f955[_0x2fc243('0xde7')]=_0x1d1dc7,_0x58f955[_0x2fc243('0x74c')]=function(){_0x1c3fb3['_ctx']['drawImage'](_0x58f955,0x0,0x0,_0x4b0d11,_0x2b34fc);},this[_0x2fc243('0xad7')]=!0x1;},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0xf1d')]=function(_0x2b1dea){var _0x1d2507=_0x3966c8,_0x143d48;switch(_0x2b1dea){case _0x1d2507('0xda'):return this[_0x1d2507('0x85a')]();default:for(var _0x4a9ef3=arguments['length'],_0x46c267=Array(_0x4a9ef3>0x1?_0x4a9ef3-0x1:0x0),_0x105d84=0x1;_0x105d84<_0x4a9ef3;_0x105d84++)_0x46c267[_0x105d84-0x1]=arguments[_0x105d84];return(_0x143d48=this[_0x1d2507('0xc16')])['toDataURL'][_0x1d2507('0x2be')](_0x143d48,[_0x2b1dea][_0x1d2507('0xda9')](_0x46c267));}},_0x5e777f[_0x3966c8('0xe02')]['on']=function(){var _0x28684d=_0x3966c8;this[_0x28684d('0xebe')](),this[_0x28684d('0x6c3')]();},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x78f')]=function(){var _0xca7f11=_0x3966c8;this[_0xca7f11('0xc16')][_0xca7f11('0xb5a')](_0xca7f11('0x1e'),this[_0xca7f11('0x68c')]),this[_0xca7f11('0xc16')][_0xca7f11('0xb5a')](_0xca7f11('0x827'),this[_0xca7f11('0x9da')]),document[_0xca7f11('0xb5a')](_0xca7f11('0x517'),this[_0xca7f11('0x300')]),this[_0xca7f11('0xc16')][_0xca7f11('0xb5a')](_0xca7f11('0x110b'),this[_0xca7f11('0xb10')]),this[_0xca7f11('0xc16')][_0xca7f11('0xb5a')](_0xca7f11('0x1085'),this[_0xca7f11('0x998')]),this[_0xca7f11('0xc16')][_0xca7f11('0xb5a')]('touchend',this['_handleTouchEnd']);},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x24')]=function(){var _0x419b00=_0x3966c8;return this[_0x419b00('0xad7')];},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x461')]=function(_0x5ef5b8){var _0x350e26=_0x3966c8;this[_0x350e26('0x9fd')][_0x350e26('0x91b')]([]),this['_reset'](),this[_0x350e26('0xaa9')](_0x5ef5b8),'function'==typeof this[_0x350e26('0x0')]&&this['onBegin'](_0x5ef5b8);},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0xaa9')]=function(_0x3657a2){var _0xefd17a=_0x3966c8,_0x3c39fb=_0x3657a2[_0xefd17a('0x693')],_0x6e3460=_0x3657a2['clientY'],_0x897c48=this[_0xefd17a('0x1a4')](_0x3c39fb,_0x6e3460),_0x103c49=this[_0xefd17a('0x9fd')][this[_0xefd17a('0x9fd')]['length']-0x1],_0x44a8e0=_0x103c49&&_0x103c49[_0x103c49[_0xefd17a('0x13')]-0x1],_0x22d957=_0x44a8e0&&_0x897c48[_0xefd17a('0xc30')](_0x44a8e0)0x2,_0x4aab65=this[_0x1e6e36('0x513')][0x0];if(!_0x310fec&&_0x4aab65&&this['_drawDot'](_0x4aab65),_0x4aab65){var _0x5d87c3=this[_0x1e6e36('0x9fd')][this[_0x1e6e36('0x9fd')][_0x1e6e36('0x13')]-0x1],_0xfd6ebe=_0x5d87c3[_0x5d87c3[_0x1e6e36('0x13')]-0x1];_0x4aab65[_0x1e6e36('0x208')](_0xfd6ebe)||_0x5d87c3['push']({'x':_0x4aab65['x'],'y':_0x4aab65['y'],'time':_0x4aab65[_0x1e6e36('0x23c')],'color':this[_0x1e6e36('0xee5')]});}_0x1e6e36('0x106c')==typeof this[_0x1e6e36('0xd1e')]&&this[_0x1e6e36('0xd1e')](_0x1e5440);},_0x5e777f[_0x3966c8('0xe02')]['_handleMouseEvents']=function(){var _0x4f51a5=_0x3966c8;this[_0x4f51a5('0x5d')]=!0x1,this[_0x4f51a5('0xc16')][_0x4f51a5('0x363')]('mousedown',this['_handleMouseDown']),this[_0x4f51a5('0xc16')][_0x4f51a5('0x363')](_0x4f51a5('0x827'),this[_0x4f51a5('0x9da')]),document[_0x4f51a5('0x363')](_0x4f51a5('0x517'),this[_0x4f51a5('0x300')]);},_0x5e777f['prototype']['_handleTouchEvents']=function(){var _0x4024ac=_0x3966c8;this['_canvas'][_0x4024ac('0xe81')]['msTouchAction']=_0x4024ac('0xea1'),this[_0x4024ac('0xc16')][_0x4024ac('0xe81')][_0x4024ac('0x27f')]=_0x4024ac('0xea1'),this[_0x4024ac('0xc16')]['addEventListener']('touchstart',this[_0x4024ac('0xb10')]),this[_0x4024ac('0xc16')][_0x4024ac('0x363')](_0x4024ac('0x1085'),this[_0x4024ac('0x998')]),this[_0x4024ac('0xc16')][_0x4024ac('0x363')](_0x4024ac('0x7e7'),this[_0x4024ac('0x90f')]);},_0x5e777f['prototype']['_reset']=function(){var _0x34b7f0=_0x3966c8;this['points']=[],this['_lastVelocity']=0x0,this['_lastWidth']=(this[_0x34b7f0('0x106')]+this['maxWidth'])/0x2,this[_0x34b7f0('0x1e8')]['fillStyle']=this[_0x34b7f0('0xee5')];},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x1a4')]=function(_0x45cf06,_0x331489,_0x20cbb7){var _0x493495=_0x3966c8,_0xa6552e=this[_0x493495('0xc16')][_0x493495('0x422')]();return new _0x1c204a(_0x45cf06-_0xa6552e[_0x493495('0x10fb')],_0x331489-_0xa6552e[_0x493495('0x5b')],_0x20cbb7||new Date()[_0x493495('0x4a2')]());},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x3fa')]=function(_0x18d479){var _0x130f99=_0x3966c8,_0x3997f6=this[_0x130f99('0x513')];if(_0x3997f6['push'](_0x18d479),_0x3997f6['length']>0x2){0x3===_0x3997f6[_0x130f99('0x13')]&&_0x3997f6[_0x130f99('0xff1')](_0x3997f6[0x0]);var _0x212686=this[_0x130f99('0x603')](_0x3997f6[0x0],_0x3997f6[0x1],_0x3997f6[0x2])['c2'],_0x1bf1de=this['_calculateCurveControlPoints'](_0x3997f6[0x1],_0x3997f6[0x2],_0x3997f6[0x3])['c1'],_0x11844c=new _0x51b975(_0x3997f6[0x1],_0x212686,_0x1bf1de,_0x3997f6[0x2]),_0x4ca0f5=this[_0x130f99('0x744')](_0x11844c);return _0x3997f6[_0x130f99('0xf30')](),{'curve':_0x11844c,'widths':_0x4ca0f5};}return{};},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x603')]=function(_0x3d16fb,_0x2a72ba,_0x48c40c){var _0x50d5f7=_0x3966c8,_0x57a183=_0x3d16fb['x']-_0x2a72ba['x'],_0x2474a6=_0x3d16fb['y']-_0x2a72ba['y'],_0x1c914e=_0x2a72ba['x']-_0x48c40c['x'],_0x3cc0f0=_0x2a72ba['y']-_0x48c40c['y'],_0x1d41e2=(_0x3d16fb['x']+_0x2a72ba['x'])/0x2,_0x27ee41=(_0x3d16fb['y']+_0x2a72ba['y'])/0x2,_0x3fe752=(_0x2a72ba['x']+_0x48c40c['x'])/0x2,_0x1ff978=(_0x2a72ba['y']+_0x48c40c['y'])/0x2,_0x2e630d=Math[_0x50d5f7('0xaeb')](_0x57a183*_0x57a183+_0x2474a6*_0x2474a6),_0x30124f=Math[_0x50d5f7('0xaeb')](_0x1c914e*_0x1c914e+_0x3cc0f0*_0x3cc0f0),_0x16a9af=_0x30124f/(_0x2e630d+_0x30124f),_0x2ba240=_0x3fe752+(_0x1d41e2-_0x3fe752)*_0x16a9af,_0x1c3dd6=_0x1ff978+(_0x27ee41-_0x1ff978)*_0x16a9af,_0x336866=_0x2a72ba['x']-_0x2ba240,_0x416c73=_0x2a72ba['y']-_0x1c3dd6;return{'c1':new _0x1c204a(_0x1d41e2+_0x336866,_0x27ee41+_0x416c73),'c2':new _0x1c204a(_0x3fe752+_0x336866,_0x1ff978+_0x416c73)};},_0x5e777f['prototype'][_0x3966c8('0x744')]=function(_0x219cb1){var _0xb9b2f2=_0x3966c8,_0x2709f1=_0x219cb1['startPoint'],_0x1f6f81=_0x219cb1[_0xb9b2f2('0x155')],_0x48fef6={'start':null,'end':null},_0x16ba60=this['velocityFilterWeight']*_0x1f6f81[_0xb9b2f2('0x8a4')](_0x2709f1)+(0x1-this[_0xb9b2f2('0x2a0')])*this['_lastVelocity'],_0x5b3fbb=this[_0xb9b2f2('0x44c')](_0x16ba60);return _0x48fef6[_0xb9b2f2('0xa7e')]=this[_0xb9b2f2('0xc46')],_0x48fef6[_0xb9b2f2('0xcad')]=_0x5b3fbb,this[_0xb9b2f2('0x1163')]=_0x16ba60,this[_0xb9b2f2('0xc46')]=_0x5b3fbb,_0x48fef6;},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0x44c')]=function(_0xcb3906){var _0x48fbc2=_0x3966c8;return Math[_0x48fbc2('0xa0d')](this[_0x48fbc2('0xe27')]/(_0xcb3906+0x1),this[_0x48fbc2('0x106')]);},_0x5e777f[_0x3966c8('0xe02')]['_drawPoint']=function(_0x328c5f,_0x22d96e,_0x599abf){var _0x5ec689=_0x3966c8,_0x5004fb=this[_0x5ec689('0x1e8')];_0x5004fb[_0x5ec689('0xf8f')](_0x328c5f,_0x22d96e),_0x5004fb['arc'](_0x328c5f,_0x22d96e,_0x599abf,0x0,0x2*Math['PI'],!0x1),this[_0x5ec689('0xad7')]=!0x1;},_0x5e777f['prototype']['_drawCurve']=function(_0x4776b9,_0x31bc3a,_0x121582){var _0x20065c=_0x3966c8,_0x4e6191=this[_0x20065c('0x1e8')],_0x3032b4=_0x121582-_0x31bc3a,_0x2d47f0=Math[_0x20065c('0x6e3')](_0x4776b9[_0x20065c('0x13')]());_0x4e6191[_0x20065c('0x3b8')]();for(var _0x4ab729=0x0;_0x4ab729<_0x2d47f0;_0x4ab729+=0x1){var _0x52c070=_0x4ab729/_0x2d47f0,_0x72122c=_0x52c070*_0x52c070,_0x10ed28=_0x72122c*_0x52c070,_0x33704f=0x1-_0x52c070,_0x1c1e0b=_0x33704f*_0x33704f,_0x21580e=_0x1c1e0b*_0x33704f,_0xce027b=_0x21580e*_0x4776b9['startPoint']['x'];_0xce027b+=0x3*_0x1c1e0b*_0x52c070*_0x4776b9[_0x20065c('0x7f0')]['x'],_0xce027b+=0x3*_0x33704f*_0x72122c*_0x4776b9[_0x20065c('0x110d')]['x'],_0xce027b+=_0x10ed28*_0x4776b9[_0x20065c('0x155')]['x'];var _0x1240c8=_0x21580e*_0x4776b9[_0x20065c('0xb0e')]['y'];_0x1240c8+=0x3*_0x1c1e0b*_0x52c070*_0x4776b9[_0x20065c('0x7f0')]['y'],_0x1240c8+=0x3*_0x33704f*_0x72122c*_0x4776b9[_0x20065c('0x110d')]['y'],_0x1240c8+=_0x10ed28*_0x4776b9[_0x20065c('0x155')]['y'];var _0x4be61f=_0x31bc3a+_0x10ed28*_0x3032b4;this['_drawPoint'](_0xce027b,_0x1240c8,_0x4be61f);}_0x4e6191[_0x20065c('0xab4')](),_0x4e6191[_0x20065c('0x348')]();},_0x5e777f[_0x3966c8('0xe02')]['_drawDot']=function(_0x3257a1){var _0x38bded=_0x3966c8,_0xd1cae1=this[_0x38bded('0x1e8')],_0x58ffa0=_0x38bded('0x106c')==typeof this[_0x38bded('0x1fc')]?this[_0x38bded('0x1fc')]():this[_0x38bded('0x1fc')];_0xd1cae1['beginPath'](),this[_0x38bded('0xc5c')](_0x3257a1['x'],_0x3257a1['y'],_0x58ffa0),_0xd1cae1[_0x38bded('0xab4')](),_0xd1cae1[_0x38bded('0x348')]();},_0x5e777f['prototype'][_0x3966c8('0xc3')]=function(_0x562b5c,_0x114761,_0x1eb1eb){var _0x490a46=_0x3966c8;for(var _0x3b6fd8=0x0;_0x3b6fd8<_0x562b5c[_0x490a46('0x13')];_0x3b6fd8+=0x1){var _0x5bd630=_0x562b5c[_0x3b6fd8];if(_0x5bd630[_0x490a46('0x13')]>0x1)for(var _0x502b7d=0x0;_0x502b7d<_0x5bd630[_0x490a46('0x13')];_0x502b7d+=0x1){var _0x3c3321=_0x5bd630[_0x502b7d],_0x514d23=new _0x1c204a(_0x3c3321['x'],_0x3c3321['y'],_0x3c3321[_0x490a46('0x23c')]),_0x16eb37=_0x3c3321[_0x490a46('0xbcf')];if(0x0===_0x502b7d)this['penColor']=_0x16eb37,this['_reset'](),this[_0x490a46('0x3fa')](_0x514d23);else{if(_0x502b7d!==_0x5bd630[_0x490a46('0x13')]-0x1){var _0x5ad9ec=this[_0x490a46('0x3fa')](_0x514d23),_0x29c8a8=_0x5ad9ec[_0x490a46('0x4d2')],_0x3b5e80=_0x5ad9ec['widths'];_0x29c8a8&&_0x3b5e80&&_0x114761(_0x29c8a8,_0x3b5e80,_0x16eb37);}}}else this[_0x490a46('0xea2')](),_0x1eb1eb(_0x5bd630[0x0]);}},_0x5e777f['prototype'][_0x3966c8('0x85a')]=function(){var _0x470693=_0x3966c8,_0x2ed451=this,_0x47ff40=this[_0x470693('0x9fd')],_0x58a83c=this[_0x470693('0xc16')],_0x1b16df=Math[_0x470693('0xa0d')](window[_0x470693('0xe8d')]||0x1,0x1),_0x53a230=_0x58a83c[_0x470693('0x115')]/_0x1b16df,_0x4f490b=_0x58a83c[_0x470693('0x27b')]/_0x1b16df,_0x358177=document[_0x470693('0x4f6')]('http://www.w3.org/2000/svg',_0x470693('0x557'));_0x358177[_0x470693('0x1067')](null,_0x470693('0x115'),_0x58a83c['width']),_0x358177[_0x470693('0x1067')](null,'height',_0x58a83c[_0x470693('0x27b')]),this[_0x470693('0xc3')](_0x47ff40,function(_0x588526,_0x3478e3,_0x1252fc){var _0x276f0f=_0x470693,_0x31748b=document[_0x276f0f('0xfa9')]('path');if(!(isNaN(_0x588526[_0x276f0f('0x7f0')]['x'])||isNaN(_0x588526[_0x276f0f('0x7f0')]['y'])||isNaN(_0x588526['control2']['x'])||isNaN(_0x588526['control2']['y']))){var _0x1f91d1='M\x20'+_0x588526[_0x276f0f('0xb0e')]['x'][_0x276f0f('0x961')](0x3)+','+_0x588526[_0x276f0f('0xb0e')]['y'][_0x276f0f('0x961')](0x3)+_0x276f0f('0xef8')+_0x588526['control1']['x'][_0x276f0f('0x961')](0x3)+','+_0x588526['control1']['y']['toFixed'](0x3)+'\x20'+_0x588526['control2']['x']['toFixed'](0x3)+','+_0x588526[_0x276f0f('0x110d')]['y']['toFixed'](0x3)+'\x20'+_0x588526[_0x276f0f('0x155')]['x'][_0x276f0f('0x961')](0x3)+','+_0x588526[_0x276f0f('0x155')]['y']['toFixed'](0x3);_0x31748b[_0x276f0f('0x451')]('d',_0x1f91d1),_0x31748b[_0x276f0f('0x451')]('stroke-width',(2.25*_0x3478e3[_0x276f0f('0xcad')])[_0x276f0f('0x961')](0x3)),_0x31748b[_0x276f0f('0x451')](_0x276f0f('0xdd6'),_0x1252fc),_0x31748b[_0x276f0f('0x451')](_0x276f0f('0x348'),_0x276f0f('0xea1')),_0x31748b['setAttribute']('stroke-linecap',_0x276f0f('0x9ee')),_0x358177[_0x276f0f('0x657')](_0x31748b);}},function(_0x6a423e){var _0x34f7ee=_0x470693,_0x34f8e0=document[_0x34f7ee('0xfa9')]('circle'),_0x5d11d2=_0x34f7ee('0x106c')==typeof _0x2ed451[_0x34f7ee('0x1fc')]?_0x2ed451[_0x34f7ee('0x1fc')]():_0x2ed451[_0x34f7ee('0x1fc')];_0x34f8e0[_0x34f7ee('0x451')]('r',_0x5d11d2),_0x34f8e0[_0x34f7ee('0x451')]('cx',_0x6a423e['x']),_0x34f8e0[_0x34f7ee('0x451')]('cy',_0x6a423e['y']),_0x34f8e0[_0x34f7ee('0x451')](_0x34f7ee('0x348'),_0x6a423e[_0x34f7ee('0xbcf')]),_0x358177[_0x34f7ee('0x657')](_0x34f8e0);});var _0x1a16f4='',_0x1ce1ba=_0x358177[_0x470693('0x5f5')];if(void 0x0===_0x1ce1ba){var _0x18158d=document['createElement'](_0x470693('0x52e')),_0x2ff89f=_0x358177[_0x470693('0x802')];_0x18158d[_0x470693('0x5f5')]='';for(var _0xc2a453=0x0;_0xc2a453<_0x2ff89f[_0x470693('0x13')];_0xc2a453+=0x1)_0x18158d[_0x470693('0x657')](_0x2ff89f[_0xc2a453]['cloneNode'](!0x0));_0x1ce1ba=_0x18158d[_0x470693('0x5f5')];}return _0x470693('0x7a3')+btoa(_0x1a16f4+_0x1ce1ba+_0x470693('0x9af'));},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0xf6c')]=function(_0x53bf6d){var _0x44e33b=_0x3966c8,_0x2d212e=this;this['clear'](),this['_fromData'](_0x53bf6d,function(_0x16447a,_0x41d9ca){var _0x5c92f9=_0x5376;return _0x2d212e[_0x5c92f9('0xa89')](_0x16447a,_0x41d9ca['start'],_0x41d9ca[_0x5c92f9('0xcad')]);},function(_0x1ae27c){return _0x2d212e['_drawDot'](_0x1ae27c);}),this[_0x44e33b('0x9fd')]=_0x53bf6d;},_0x5e777f[_0x3966c8('0xe02')][_0x3966c8('0xc88')]=function(){var _0x495bae=_0x3966c8;return this[_0x495bae('0x9fd')];},_0x5e777f;});},{}],0x16f:[function(_0x34453e,_0x43bf8a,_0x2da0c8){!function(_0x38bc63){var _0x697c7=_0x5376,_0xd8dbe9=/^\s+/,_0x15ffd2=/\s+$/,_0x2d23c9=0x0,_0x562e02=_0x38bc63[_0x697c7('0x9ee')],_0x2c49cf=_0x38bc63[_0x697c7('0xd3f')],_0x5d32d4=_0x38bc63[_0x697c7('0xa0d')],_0x49262d=_0x38bc63['random'];function _0x16568f(_0x38b1db,_0x330f79){var _0x277afd=_0x697c7;if(_0x330f79=_0x330f79||{},(_0x38b1db=_0x38b1db||'')instanceof _0x16568f)return _0x38b1db;if(!(this instanceof _0x16568f))return new _0x16568f(_0x38b1db,_0x330f79);var _0x44ce24=function(_0x1a45e1){var _0x5a6d15=_0x5376,_0x4410a2={'r':0x0,'g':0x0,'b':0x0},_0x4f52b4=0x1,_0x117ae2=null,_0x195167=null,_0x4d31e4=null,_0x4b29de=!0x1,_0x13ef37=!0x1;_0x5a6d15('0x2fd')==typeof _0x1a45e1&&(_0x1a45e1=function(_0x1fde21){var _0x399bc4=_0x5a6d15;_0x1fde21=_0x1fde21['replace'](_0xd8dbe9,'')['replace'](_0x15ffd2,'')[_0x399bc4('0x371')]();var _0x192f10,_0xe8761d=!0x1;if(_0x1d94cc[_0x1fde21])_0x1fde21=_0x1d94cc[_0x1fde21],_0xe8761d=!0x0;else{if('transparent'==_0x1fde21)return{'r':0x0,'g':0x0,'b':0x0,'a':0x0,'format':_0x399bc4('0x3ea')};}if(_0x192f10=_0x46fd7f[_0x399bc4('0xb56')][_0x399bc4('0x3f8')](_0x1fde21))return{'r':_0x192f10[0x1],'g':_0x192f10[0x2],'b':_0x192f10[0x3]};if(_0x192f10=_0x46fd7f[_0x399bc4('0xa6c')][_0x399bc4('0x3f8')](_0x1fde21))return{'r':_0x192f10[0x1],'g':_0x192f10[0x2],'b':_0x192f10[0x3],'a':_0x192f10[0x4]};if(_0x192f10=_0x46fd7f[_0x399bc4('0xb23')]['exec'](_0x1fde21))return{'h':_0x192f10[0x1],'s':_0x192f10[0x2],'l':_0x192f10[0x3]};if(_0x192f10=_0x46fd7f[_0x399bc4('0xf26')]['exec'](_0x1fde21))return{'h':_0x192f10[0x1],'s':_0x192f10[0x2],'l':_0x192f10[0x3],'a':_0x192f10[0x4]};if(_0x192f10=_0x46fd7f[_0x399bc4('0xd71')][_0x399bc4('0x3f8')](_0x1fde21))return{'h':_0x192f10[0x1],'s':_0x192f10[0x2],'v':_0x192f10[0x3]};if(_0x192f10=_0x46fd7f[_0x399bc4('0x797')][_0x399bc4('0x3f8')](_0x1fde21))return{'h':_0x192f10[0x1],'s':_0x192f10[0x2],'v':_0x192f10[0x3],'a':_0x192f10[0x4]};if(_0x192f10=_0x46fd7f[_0x399bc4('0x2ce')][_0x399bc4('0x3f8')](_0x1fde21))return{'r':_0x3772e0(_0x192f10[0x1]),'g':_0x3772e0(_0x192f10[0x2]),'b':_0x3772e0(_0x192f10[0x3]),'a':_0x3f8559(_0x192f10[0x4]),'format':_0xe8761d?_0x399bc4('0x3ea'):_0x399bc4('0x2ce')};if(_0x192f10=_0x46fd7f[_0x399bc4('0xd55')]['exec'](_0x1fde21))return{'r':_0x3772e0(_0x192f10[0x1]),'g':_0x3772e0(_0x192f10[0x2]),'b':_0x3772e0(_0x192f10[0x3]),'format':_0xe8761d?'name':'hex'};if(_0x192f10=_0x46fd7f[_0x399bc4('0x38d')][_0x399bc4('0x3f8')](_0x1fde21))return{'r':_0x3772e0(_0x192f10[0x1]+''+_0x192f10[0x1]),'g':_0x3772e0(_0x192f10[0x2]+''+_0x192f10[0x2]),'b':_0x3772e0(_0x192f10[0x3]+''+_0x192f10[0x3]),'a':_0x3f8559(_0x192f10[0x4]+''+_0x192f10[0x4]),'format':_0xe8761d?'name':_0x399bc4('0x2ce')};if(_0x192f10=_0x46fd7f[_0x399bc4('0xdd4')]['exec'](_0x1fde21))return{'r':_0x3772e0(_0x192f10[0x1]+''+_0x192f10[0x1]),'g':_0x3772e0(_0x192f10[0x2]+''+_0x192f10[0x2]),'b':_0x3772e0(_0x192f10[0x3]+''+_0x192f10[0x3]),'format':_0xe8761d?_0x399bc4('0x3ea'):_0x399bc4('0xc10')};return!0x1;}(_0x1a45e1)),'object'==typeof _0x1a45e1&&(_0x5ddb8b(_0x1a45e1['r'])&&_0x5ddb8b(_0x1a45e1['g'])&&_0x5ddb8b(_0x1a45e1['b'])?(_0x25b9f5=_0x1a45e1['r'],_0x100cb6=_0x1a45e1['g'],_0x2443da=_0x1a45e1['b'],_0x4410a2={'r':0xff*_0x35640d(_0x25b9f5,0xff),'g':0xff*_0x35640d(_0x100cb6,0xff),'b':0xff*_0x35640d(_0x2443da,0xff)},_0x4b29de=!0x0,_0x13ef37='%'===String(_0x1a45e1['r'])[_0x5a6d15('0x2d8')](-0x1)?_0x5a6d15('0x48c'):'rgb'):_0x5ddb8b(_0x1a45e1['h'])&&_0x5ddb8b(_0x1a45e1['s'])&&_0x5ddb8b(_0x1a45e1['v'])?(_0x117ae2=_0x512ef3(_0x1a45e1['s']),_0x195167=_0x512ef3(_0x1a45e1['v']),_0x4410a2=function(_0x32b732,_0x530517,_0xb1cb72){var _0x28e073=_0x5a6d15;_0x32b732=0x6*_0x35640d(_0x32b732,0x168),_0x530517=_0x35640d(_0x530517,0x64),_0xb1cb72=_0x35640d(_0xb1cb72,0x64);var _0x3e1442=_0x38bc63[_0x28e073('0x6e3')](_0x32b732),_0x4cae24=_0x32b732-_0x3e1442,_0x1f92dc=_0xb1cb72*(0x1-_0x530517),_0x4cc249=_0xb1cb72*(0x1-_0x4cae24*_0x530517),_0x44665d=_0xb1cb72*(0x1-(0x1-_0x4cae24)*_0x530517),_0x417446=_0x3e1442%0x6;return{'r':0xff*[_0xb1cb72,_0x4cc249,_0x1f92dc,_0x1f92dc,_0x44665d,_0xb1cb72][_0x417446],'g':0xff*[_0x44665d,_0xb1cb72,_0xb1cb72,_0x4cc249,_0x1f92dc,_0x1f92dc][_0x417446],'b':0xff*[_0x1f92dc,_0x1f92dc,_0x44665d,_0xb1cb72,_0xb1cb72,_0x4cc249][_0x417446]};}(_0x1a45e1['h'],_0x117ae2,_0x195167),_0x4b29de=!0x0,_0x13ef37=_0x5a6d15('0xd71')):_0x5ddb8b(_0x1a45e1['h'])&&_0x5ddb8b(_0x1a45e1['s'])&&_0x5ddb8b(_0x1a45e1['l'])&&(_0x117ae2=_0x512ef3(_0x1a45e1['s']),_0x4d31e4=_0x512ef3(_0x1a45e1['l']),_0x4410a2=function(_0x404d9f,_0x432a1a,_0x289548){var _0x216fec,_0x58c612,_0x31d83e;function _0x56a5e8(_0x2e1d5a,_0x7ff0a1,_0x4c87c1){return _0x4c87c1<0x0&&(_0x4c87c1+=0x1),_0x4c87c1>0x1&&(_0x4c87c1-=0x1),_0x4c87c1<0x1/0x6?_0x2e1d5a+0x6*(_0x7ff0a1-_0x2e1d5a)*_0x4c87c1:_0x4c87c1<0.5?_0x7ff0a1:_0x4c87c1<0x2/0x3?_0x2e1d5a+(_0x7ff0a1-_0x2e1d5a)*(0x2/0x3-_0x4c87c1)*0x6:_0x2e1d5a;}if(_0x404d9f=_0x35640d(_0x404d9f,0x168),_0x432a1a=_0x35640d(_0x432a1a,0x64),_0x289548=_0x35640d(_0x289548,0x64),0x0===_0x432a1a)_0x216fec=_0x58c612=_0x31d83e=_0x289548;else{var _0x409a1f=_0x289548<0.5?_0x289548*(0x1+_0x432a1a):_0x289548+_0x432a1a-_0x289548*_0x432a1a,_0x52ef32=0x2*_0x289548-_0x409a1f;_0x216fec=_0x56a5e8(_0x52ef32,_0x409a1f,_0x404d9f+0x1/0x3),_0x58c612=_0x56a5e8(_0x52ef32,_0x409a1f,_0x404d9f),_0x31d83e=_0x56a5e8(_0x52ef32,_0x409a1f,_0x404d9f-0x1/0x3);}return{'r':0xff*_0x216fec,'g':0xff*_0x58c612,'b':0xff*_0x31d83e};}(_0x1a45e1['h'],_0x117ae2,_0x4d31e4),_0x4b29de=!0x0,_0x13ef37=_0x5a6d15('0xb23')),_0x1a45e1[_0x5a6d15('0xe9c')]('a')&&(_0x4f52b4=_0x1a45e1['a']));var _0x25b9f5,_0x100cb6,_0x2443da;return _0x4f52b4=_0x910e67(_0x4f52b4),{'ok':_0x4b29de,'format':_0x1a45e1['format']||_0x13ef37,'r':_0x2c49cf(0xff,_0x5d32d4(_0x4410a2['r'],0x0)),'g':_0x2c49cf(0xff,_0x5d32d4(_0x4410a2['g'],0x0)),'b':_0x2c49cf(0xff,_0x5d32d4(_0x4410a2['b'],0x0)),'a':_0x4f52b4};}(_0x38b1db);this[_0x277afd('0xb9')]=_0x38b1db,this['_r']=_0x44ce24['r'],this['_g']=_0x44ce24['g'],this['_b']=_0x44ce24['b'],this['_a']=_0x44ce24['a'],this[_0x277afd('0x8f3')]=_0x562e02(0x64*this['_a'])/0x64,this['_format']=_0x330f79['format']||_0x44ce24[_0x277afd('0xa5c')],this[_0x277afd('0xbd1')]=_0x330f79[_0x277afd('0x958')],this['_r']<0x1&&(this['_r']=_0x562e02(this['_r'])),this['_g']<0x1&&(this['_g']=_0x562e02(this['_g'])),this['_b']<0x1&&(this['_b']=_0x562e02(this['_b'])),this[_0x277afd('0x103d')]=_0x44ce24['ok'],this[_0x277afd('0x985')]=_0x2d23c9++;}function _0x18da0d(_0x31cfe4,_0x15950d,_0x60089b){_0x31cfe4=_0x35640d(_0x31cfe4,0xff),_0x15950d=_0x35640d(_0x15950d,0xff),_0x60089b=_0x35640d(_0x60089b,0xff);var _0x37718e,_0x3fc56c,_0x17350c=_0x5d32d4(_0x31cfe4,_0x15950d,_0x60089b),_0x2dcff=_0x2c49cf(_0x31cfe4,_0x15950d,_0x60089b),_0x4e09aa=(_0x17350c+_0x2dcff)/0x2;if(_0x17350c==_0x2dcff)_0x37718e=_0x3fc56c=0x0;else{var _0x1cb4fa=_0x17350c-_0x2dcff;switch(_0x3fc56c=_0x4e09aa>0.5?_0x1cb4fa/(0x2-_0x17350c-_0x2dcff):_0x1cb4fa/(_0x17350c+_0x2dcff),_0x17350c){case _0x31cfe4:_0x37718e=(_0x15950d-_0x60089b)/_0x1cb4fa+(_0x15950d<_0x60089b?0x6:0x0);break;case _0x15950d:_0x37718e=(_0x60089b-_0x31cfe4)/_0x1cb4fa+0x2;break;case _0x60089b:_0x37718e=(_0x31cfe4-_0x15950d)/_0x1cb4fa+0x4;}_0x37718e/=0x6;}return{'h':_0x37718e,'s':_0x3fc56c,'l':_0x4e09aa};}function _0x3c5bd6(_0x1b6b41,_0x2bb4c3,_0x208a2d){_0x1b6b41=_0x35640d(_0x1b6b41,0xff),_0x2bb4c3=_0x35640d(_0x2bb4c3,0xff),_0x208a2d=_0x35640d(_0x208a2d,0xff);var _0xe4d21c,_0x53fc53,_0x212936=_0x5d32d4(_0x1b6b41,_0x2bb4c3,_0x208a2d),_0x5ea5a6=_0x2c49cf(_0x1b6b41,_0x2bb4c3,_0x208a2d),_0x49d475=_0x212936,_0x284594=_0x212936-_0x5ea5a6;if(_0x53fc53=0x0===_0x212936?0x0:_0x284594/_0x212936,_0x212936==_0x5ea5a6)_0xe4d21c=0x0;else{switch(_0x212936){case _0x1b6b41:_0xe4d21c=(_0x2bb4c3-_0x208a2d)/_0x284594+(_0x2bb4c3<_0x208a2d?0x6:0x0);break;case _0x2bb4c3:_0xe4d21c=(_0x208a2d-_0x1b6b41)/_0x284594+0x2;break;case _0x208a2d:_0xe4d21c=(_0x1b6b41-_0x2bb4c3)/_0x284594+0x4;}_0xe4d21c/=0x6;}return{'h':_0xe4d21c,'s':_0x53fc53,'v':_0x49d475};}function _0xab65f7(_0xf3b958,_0x55248d,_0x3ba129,_0x203b6e){var _0x2decbd=_0x697c7,_0x3cc901=[_0x249c1e(_0x562e02(_0xf3b958)['toString'](0x10)),_0x249c1e(_0x562e02(_0x55248d)[_0x2decbd('0xb6d')](0x10)),_0x249c1e(_0x562e02(_0x3ba129)[_0x2decbd('0xb6d')](0x10))];return _0x203b6e&&_0x3cc901[0x0][_0x2decbd('0xcaf')](0x0)==_0x3cc901[0x0][_0x2decbd('0xcaf')](0x1)&&_0x3cc901[0x1][_0x2decbd('0xcaf')](0x0)==_0x3cc901[0x1]['charAt'](0x1)&&_0x3cc901[0x2][_0x2decbd('0xcaf')](0x0)==_0x3cc901[0x2][_0x2decbd('0xcaf')](0x1)?_0x3cc901[0x0][_0x2decbd('0xcaf')](0x0)+_0x3cc901[0x1][_0x2decbd('0xcaf')](0x0)+_0x3cc901[0x2][_0x2decbd('0xcaf')](0x0):_0x3cc901[_0x2decbd('0x2e2')]('');}function _0x3bc2ce(_0xf111f8,_0x51579a,_0x227d97,_0x54eb5d){var _0x539ee7=_0x697c7;return[_0x249c1e(_0x589f2d(_0x54eb5d)),_0x249c1e(_0x562e02(_0xf111f8)[_0x539ee7('0xb6d')](0x10)),_0x249c1e(_0x562e02(_0x51579a)[_0x539ee7('0xb6d')](0x10)),_0x249c1e(_0x562e02(_0x227d97)[_0x539ee7('0xb6d')](0x10))]['join']('');}function _0x3085e0(_0x534a95,_0x535010){var _0x356069=_0x697c7;_0x535010=0x0===_0x535010?0x0:_0x535010||0xa;var _0x36def7=_0x16568f(_0x534a95)[_0x356069('0x99d')]();return _0x36def7['s']-=_0x535010/0x64,_0x36def7['s']=_0x2ba20e(_0x36def7['s']),_0x16568f(_0x36def7);}function _0xed9f40(_0x20e170,_0x50eaa2){var _0x55221a=_0x697c7;_0x50eaa2=0x0===_0x50eaa2?0x0:_0x50eaa2||0xa;var _0x357278=_0x16568f(_0x20e170)[_0x55221a('0x99d')]();return _0x357278['s']+=_0x50eaa2/0x64,_0x357278['s']=_0x2ba20e(_0x357278['s']),_0x16568f(_0x357278);}function _0x5f1ccf(_0xea857e){var _0x3f7f3f=_0x697c7;return _0x16568f(_0xea857e)[_0x3f7f3f('0x159')](0x64);}function _0x43728b(_0x564f76,_0xffc098){var _0x3a6d81=_0x697c7;_0xffc098=0x0===_0xffc098?0x0:_0xffc098||0xa;var _0x3b83c3=_0x16568f(_0x564f76)[_0x3a6d81('0x99d')]();return _0x3b83c3['l']+=_0xffc098/0x64,_0x3b83c3['l']=_0x2ba20e(_0x3b83c3['l']),_0x16568f(_0x3b83c3);}function _0x4909eb(_0x4d56a4,_0x4a7d00){_0x4a7d00=0x0===_0x4a7d00?0x0:_0x4a7d00||0xa;var _0x5c4bb2=_0x16568f(_0x4d56a4)['toRgb']();return _0x5c4bb2['r']=_0x5d32d4(0x0,_0x2c49cf(0xff,_0x5c4bb2['r']-_0x562e02(-_0x4a7d00/0x64*0xff))),_0x5c4bb2['g']=_0x5d32d4(0x0,_0x2c49cf(0xff,_0x5c4bb2['g']-_0x562e02(-_0x4a7d00/0x64*0xff))),_0x5c4bb2['b']=_0x5d32d4(0x0,_0x2c49cf(0xff,_0x5c4bb2['b']-_0x562e02(-_0x4a7d00/0x64*0xff))),_0x16568f(_0x5c4bb2);}function _0xe83384(_0x6b5a7a,_0x181db9){var _0x446e8c=_0x697c7;_0x181db9=0x0===_0x181db9?0x0:_0x181db9||0xa;var _0x42d45b=_0x16568f(_0x6b5a7a)[_0x446e8c('0x99d')]();return _0x42d45b['l']-=_0x181db9/0x64,_0x42d45b['l']=_0x2ba20e(_0x42d45b['l']),_0x16568f(_0x42d45b);}function _0x35dec0(_0x1ef6e1,_0x1fa56f){var _0x19b4c3=_0x697c7,_0x457ed5=_0x16568f(_0x1ef6e1)[_0x19b4c3('0x99d')](),_0x139353=(_0x457ed5['h']+_0x1fa56f)%0x168;return _0x457ed5['h']=_0x139353<0x0?0x168+_0x139353:_0x139353,_0x16568f(_0x457ed5);}function _0x52a0bb(_0x132c61){var _0x15f9d7=_0x16568f(_0x132c61)['toHsl']();return _0x15f9d7['h']=(_0x15f9d7['h']+0xb4)%0x168,_0x16568f(_0x15f9d7);}function _0x4054a8(_0x2eaab7){var _0x40d1be=_0x697c7,_0x228ad6=_0x16568f(_0x2eaab7)[_0x40d1be('0x99d')](),_0x5da07e=_0x228ad6['h'];return[_0x16568f(_0x2eaab7),_0x16568f({'h':(_0x5da07e+0x78)%0x168,'s':_0x228ad6['s'],'l':_0x228ad6['l']}),_0x16568f({'h':(_0x5da07e+0xf0)%0x168,'s':_0x228ad6['s'],'l':_0x228ad6['l']})];}function _0x1c014a(_0x60cdfe){var _0xd5cd0b=_0x697c7,_0x21786c=_0x16568f(_0x60cdfe)[_0xd5cd0b('0x99d')](),_0x214f7d=_0x21786c['h'];return[_0x16568f(_0x60cdfe),_0x16568f({'h':(_0x214f7d+0x5a)%0x168,'s':_0x21786c['s'],'l':_0x21786c['l']}),_0x16568f({'h':(_0x214f7d+0xb4)%0x168,'s':_0x21786c['s'],'l':_0x21786c['l']}),_0x16568f({'h':(_0x214f7d+0x10e)%0x168,'s':_0x21786c['s'],'l':_0x21786c['l']})];}function _0x55c75d(_0x502117){var _0x23b8c3=_0x697c7,_0x1f69dd=_0x16568f(_0x502117)[_0x23b8c3('0x99d')](),_0x17d10a=_0x1f69dd['h'];return[_0x16568f(_0x502117),_0x16568f({'h':(_0x17d10a+0x48)%0x168,'s':_0x1f69dd['s'],'l':_0x1f69dd['l']}),_0x16568f({'h':(_0x17d10a+0xd8)%0x168,'s':_0x1f69dd['s'],'l':_0x1f69dd['l']})];}function _0xa33d1c(_0xded447,_0xcc560a,_0x509f8d){_0xcc560a=_0xcc560a||0x6,_0x509f8d=_0x509f8d||0x1e;var _0x26de0d=_0x16568f(_0xded447)['toHsl'](),_0x47d560=0x168/_0x509f8d,_0x2df9cc=[_0x16568f(_0xded447)];for(_0x26de0d['h']=(_0x26de0d['h']-(_0x47d560*_0xcc560a>>0x1)+0x2d0)%0x168;--_0xcc560a;)_0x26de0d['h']=(_0x26de0d['h']+_0x47d560)%0x168,_0x2df9cc['push'](_0x16568f(_0x26de0d));return _0x2df9cc;}function _0xa57e48(_0x2d9f92,_0x45d502){var _0x220ad9=_0x697c7;_0x45d502=_0x45d502||0x6;for(var _0x10184d=_0x16568f(_0x2d9f92)[_0x220ad9('0xf95')](),_0x44ff48=_0x10184d['h'],_0x4caf47=_0x10184d['s'],_0xee4c5d=_0x10184d['v'],_0x2bcf8f=[],_0x57364a=0x1/_0x45d502;_0x45d502--;)_0x2bcf8f[_0x220ad9('0x91b')](_0x16568f({'h':_0x44ff48,'s':_0x4caf47,'v':_0xee4c5d})),_0xee4c5d=(_0xee4c5d+_0x57364a)%0x1;return _0x2bcf8f;}_0x16568f[_0x697c7('0xe02')]={'isDark':function(){return this['getBrightness']()<0x80;},'isLight':function(){return!this['isDark']();},'isValid':function(){var _0x51538d=_0x697c7;return this[_0x51538d('0x103d')];},'getOriginalInput':function(){return this['_originalInput'];},'getFormat':function(){var _0x12a857=_0x697c7;return this[_0x12a857('0x5e7')];},'getAlpha':function(){return this['_a'];},'getBrightness':function(){var _0x13b71a=_0x697c7,_0x3b8529=this[_0x13b71a('0x8a3')]();return(0x12b*_0x3b8529['r']+0x24b*_0x3b8529['g']+0x72*_0x3b8529['b'])/0x3e8;},'getLuminance':function(){var _0x55cce6=_0x697c7,_0x2af0a4,_0x10d733,_0x9dbd2c,_0x725528=this['toRgb']();return _0x2af0a4=_0x725528['r']/0xff,_0x10d733=_0x725528['g']/0xff,_0x9dbd2c=_0x725528['b']/0xff,0.2126*(_0x2af0a4<=0.03928?_0x2af0a4/12.92:_0x38bc63['pow']((_0x2af0a4+0.055)/1.055,2.4))+0.7152*(_0x10d733<=0.03928?_0x10d733/12.92:_0x38bc63[_0x55cce6('0x1017')]((_0x10d733+0.055)/1.055,2.4))+0.0722*(_0x9dbd2c<=0.03928?_0x9dbd2c/12.92:_0x38bc63[_0x55cce6('0x1017')]((_0x9dbd2c+0.055)/1.055,2.4));},'setAlpha':function(_0x2206c0){var _0x295a63=_0x697c7;return this['_a']=_0x910e67(_0x2206c0),this[_0x295a63('0x8f3')]=_0x562e02(0x64*this['_a'])/0x64,this;},'toHsv':function(){var _0x5bdfc1=_0x3c5bd6(this['_r'],this['_g'],this['_b']);return{'h':0x168*_0x5bdfc1['h'],'s':_0x5bdfc1['s'],'v':_0x5bdfc1['v'],'a':this['_a']};},'toHsvString':function(){var _0x39e19f=_0x697c7,_0x57b538=_0x3c5bd6(this['_r'],this['_g'],this['_b']),_0x794310=_0x562e02(0x168*_0x57b538['h']),_0x11fab3=_0x562e02(0x64*_0x57b538['s']),_0xe41dc7=_0x562e02(0x64*_0x57b538['v']);return 0x1==this['_a']?_0x39e19f('0xd81')+_0x794310+',\x20'+_0x11fab3+_0x39e19f('0x22f')+_0xe41dc7+'%)':_0x39e19f('0x1a5')+_0x794310+',\x20'+_0x11fab3+'%,\x20'+_0xe41dc7+_0x39e19f('0x22f')+this['_roundA']+')';},'toHsl':function(){var _0x301156=_0x18da0d(this['_r'],this['_g'],this['_b']);return{'h':0x168*_0x301156['h'],'s':_0x301156['s'],'l':_0x301156['l'],'a':this['_a']};},'toHslString':function(){var _0x356d56=_0x697c7,_0x2a4ba1=_0x18da0d(this['_r'],this['_g'],this['_b']),_0x3fde5=_0x562e02(0x168*_0x2a4ba1['h']),_0x51a75e=_0x562e02(0x64*_0x2a4ba1['s']),_0x365073=_0x562e02(0x64*_0x2a4ba1['l']);return 0x1==this['_a']?_0x356d56('0x559')+_0x3fde5+',\x20'+_0x51a75e+'%,\x20'+_0x365073+'%)':_0x356d56('0x210')+_0x3fde5+',\x20'+_0x51a75e+_0x356d56('0x22f')+_0x365073+_0x356d56('0x22f')+this[_0x356d56('0x8f3')]+')';},'toHex':function(_0x49a827){return _0xab65f7(this['_r'],this['_g'],this['_b'],_0x49a827);},'toHexString':function(_0x3a6116){var _0x5760b4=_0x697c7;return'#'+this[_0x5760b4('0xfe1')](_0x3a6116);},'toHex8':function(_0x1932aa){return function(_0x4fbcaa,_0xe204db,_0x6137db,_0x46b575,_0x324950){var _0x3c683c=_0x5376,_0xe4282e=[_0x249c1e(_0x562e02(_0x4fbcaa)['toString'](0x10)),_0x249c1e(_0x562e02(_0xe204db)['toString'](0x10)),_0x249c1e(_0x562e02(_0x6137db)[_0x3c683c('0xb6d')](0x10)),_0x249c1e(_0x589f2d(_0x46b575))];if(_0x324950&&_0xe4282e[0x0][_0x3c683c('0xcaf')](0x0)==_0xe4282e[0x0][_0x3c683c('0xcaf')](0x1)&&_0xe4282e[0x1]['charAt'](0x0)==_0xe4282e[0x1][_0x3c683c('0xcaf')](0x1)&&_0xe4282e[0x2][_0x3c683c('0xcaf')](0x0)==_0xe4282e[0x2][_0x3c683c('0xcaf')](0x1)&&_0xe4282e[0x3][_0x3c683c('0xcaf')](0x0)==_0xe4282e[0x3][_0x3c683c('0xcaf')](0x1))return _0xe4282e[0x0][_0x3c683c('0xcaf')](0x0)+_0xe4282e[0x1][_0x3c683c('0xcaf')](0x0)+_0xe4282e[0x2]['charAt'](0x0)+_0xe4282e[0x3][_0x3c683c('0xcaf')](0x0);return _0xe4282e['join']('');}(this['_r'],this['_g'],this['_b'],this['_a'],_0x1932aa);},'toHex8String':function(_0x1cd1f2){var _0x4782e6=_0x697c7;return'#'+this[_0x4782e6('0x551')](_0x1cd1f2);},'toRgb':function(){return{'r':_0x562e02(this['_r']),'g':_0x562e02(this['_g']),'b':_0x562e02(this['_b']),'a':this['_a']};},'toRgbString':function(){var _0x5c8b00=_0x697c7;return 0x1==this['_a']?_0x5c8b00('0x207')+_0x562e02(this['_r'])+',\x20'+_0x562e02(this['_g'])+',\x20'+_0x562e02(this['_b'])+')':_0x5c8b00('0x94a')+_0x562e02(this['_r'])+',\x20'+_0x562e02(this['_g'])+',\x20'+_0x562e02(this['_b'])+',\x20'+this['_roundA']+')';},'toPercentageRgb':function(){return{'r':_0x562e02(0x64*_0x35640d(this['_r'],0xff))+'%','g':_0x562e02(0x64*_0x35640d(this['_g'],0xff))+'%','b':_0x562e02(0x64*_0x35640d(this['_b'],0xff))+'%','a':this['_a']};},'toPercentageRgbString':function(){var _0x5c61c2=_0x697c7;return 0x1==this['_a']?'rgb('+_0x562e02(0x64*_0x35640d(this['_r'],0xff))+_0x5c61c2('0x22f')+_0x562e02(0x64*_0x35640d(this['_g'],0xff))+_0x5c61c2('0x22f')+_0x562e02(0x64*_0x35640d(this['_b'],0xff))+'%)':_0x5c61c2('0x94a')+_0x562e02(0x64*_0x35640d(this['_r'],0xff))+'%,\x20'+_0x562e02(0x64*_0x35640d(this['_g'],0xff))+_0x5c61c2('0x22f')+_0x562e02(0x64*_0x35640d(this['_b'],0xff))+_0x5c61c2('0x22f')+this[_0x5c61c2('0x8f3')]+')';},'toName':function(){var _0x43c33e=_0x697c7;return 0x0===this['_a']?_0x43c33e('0x671'):!(this['_a']<0x1)&&(_0x2426ac[_0xab65f7(this['_r'],this['_g'],this['_b'],!0x0)]||!0x1);},'toFilter':function(_0x4c6198){var _0x29fd12=_0x697c7,_0x1842f9='#'+_0x3bc2ce(this['_r'],this['_g'],this['_b'],this['_a']),_0x64fa32=_0x1842f9,_0x11686d=this[_0x29fd12('0xbd1')]?'GradientType\x20=\x201,\x20':'';if(_0x4c6198){var _0x5d7764=_0x16568f(_0x4c6198);_0x64fa32='#'+_0x3bc2ce(_0x5d7764['_r'],_0x5d7764['_g'],_0x5d7764['_b'],_0x5d7764['_a']);}return _0x29fd12('0x404')+_0x11686d+_0x29fd12('0x176')+_0x1842f9+_0x29fd12('0x9aa')+_0x64fa32+')';},'toString':function(_0xf3e76){var _0x31ea3c=_0x697c7,_0x87f9d5=!!_0xf3e76;_0xf3e76=_0xf3e76||this[_0x31ea3c('0x5e7')];var _0x40be46=!0x1,_0x1ffe0d=this['_a']<0x1&&this['_a']>=0x0;return _0x87f9d5||!_0x1ffe0d||_0x31ea3c('0xc10')!==_0xf3e76&&'hex6'!==_0xf3e76&&'hex3'!==_0xf3e76&&_0x31ea3c('0x38d')!==_0xf3e76&&'hex8'!==_0xf3e76&&'name'!==_0xf3e76?(_0x31ea3c('0xb56')===_0xf3e76&&(_0x40be46=this['toRgbString']()),'prgb'===_0xf3e76&&(_0x40be46=this['toPercentageRgbString']()),_0x31ea3c('0xc10')!==_0xf3e76&&_0x31ea3c('0xd55')!==_0xf3e76||(_0x40be46=this[_0x31ea3c('0x69')]()),'hex3'===_0xf3e76&&(_0x40be46=this['toHexString'](!0x0)),_0x31ea3c('0x38d')===_0xf3e76&&(_0x40be46=this[_0x31ea3c('0xd16')](!0x0)),_0x31ea3c('0x2ce')===_0xf3e76&&(_0x40be46=this[_0x31ea3c('0xd16')]()),_0x31ea3c('0x3ea')===_0xf3e76&&(_0x40be46=this[_0x31ea3c('0xbfd')]()),'hsl'===_0xf3e76&&(_0x40be46=this[_0x31ea3c('0xceb')]()),_0x31ea3c('0xd71')===_0xf3e76&&(_0x40be46=this[_0x31ea3c('0x48f')]()),_0x40be46||this[_0x31ea3c('0x69')]()):_0x31ea3c('0x3ea')===_0xf3e76&&0x0===this['_a']?this[_0x31ea3c('0xbfd')]():this[_0x31ea3c('0x31c')]();},'clone':function(){var _0x3f34f4=_0x697c7;return _0x16568f(this[_0x3f34f4('0xb6d')]());},'_applyModification':function(_0x7d66b,_0x48244d){var _0x28ff2f=_0x697c7,_0x165165=_0x7d66b[_0x28ff2f('0x2be')](null,[this][_0x28ff2f('0xda9')]([]['slice'][_0x28ff2f('0xfd2')](_0x48244d)));return this['_r']=_0x165165['_r'],this['_g']=_0x165165['_g'],this['_b']=_0x165165['_b'],this['setAlpha'](_0x165165['_a']),this;},'lighten':function(){var _0x4d33ed=_0x697c7;return this[_0x4d33ed('0xd67')](_0x43728b,arguments);},'brighten':function(){var _0x435b44=_0x697c7;return this[_0x435b44('0xd67')](_0x4909eb,arguments);},'darken':function(){var _0x44d181=_0x697c7;return this[_0x44d181('0xd67')](_0xe83384,arguments);},'desaturate':function(){return this['_applyModification'](_0x3085e0,arguments);},'saturate':function(){var _0x368ab0=_0x697c7;return this[_0x368ab0('0xd67')](_0xed9f40,arguments);},'greyscale':function(){var _0x4636ad=_0x697c7;return this[_0x4636ad('0xd67')](_0x5f1ccf,arguments);},'spin':function(){var _0x33af8c=_0x697c7;return this[_0x33af8c('0xd67')](_0x35dec0,arguments);},'_applyCombination':function(_0xe32bc6,_0x5ce986){var _0x45ce2b=_0x697c7;return _0xe32bc6[_0x45ce2b('0x2be')](null,[this][_0x45ce2b('0xda9')]([][_0x45ce2b('0xdf1')]['call'](_0x5ce986)));},'analogous':function(){return this['_applyCombination'](_0xa33d1c,arguments);},'complement':function(){return this['_applyCombination'](_0x52a0bb,arguments);},'monochromatic':function(){var _0x252873=_0x697c7;return this[_0x252873('0x4')](_0xa57e48,arguments);},'splitcomplement':function(){var _0x428c51=_0x697c7;return this[_0x428c51('0x4')](_0x55c75d,arguments);},'triad':function(){var _0x44a87f=_0x697c7;return this[_0x44a87f('0x4')](_0x4054a8,arguments);},'tetrad':function(){return this['_applyCombination'](_0x1c014a,arguments);}},_0x16568f[_0x697c7('0x372')]=function(_0x4cbc92,_0xefacde){var _0x5ccf28=_0x697c7;if(_0x5ccf28('0xb3f')==typeof _0x4cbc92){var _0x21defc={};for(var _0x4d3900 in _0x4cbc92)_0x4cbc92[_0x5ccf28('0xe9c')](_0x4d3900)&&(_0x21defc[_0x4d3900]='a'===_0x4d3900?_0x4cbc92[_0x4d3900]:_0x512ef3(_0x4cbc92[_0x4d3900]));_0x4cbc92=_0x21defc;}return _0x16568f(_0x4cbc92,_0xefacde);},_0x16568f['equals']=function(_0xc125d8,_0x59572a){var _0x5a8d8e=_0x697c7;return!(!_0xc125d8||!_0x59572a)&&_0x16568f(_0xc125d8)[_0x5a8d8e('0x31c')]()==_0x16568f(_0x59572a)[_0x5a8d8e('0x31c')]();},_0x16568f[_0x697c7('0xa72')]=function(){var _0x102a78=_0x697c7;return _0x16568f[_0x102a78('0x372')]({'r':_0x49262d(),'g':_0x49262d(),'b':_0x49262d()});},_0x16568f[_0x697c7('0xc6c')]=function(_0x5cab1a,_0x45281f,_0x2fcee0){var _0x43e426=_0x697c7;_0x2fcee0=0x0===_0x2fcee0?0x0:_0x2fcee0||0x32;var _0x13fc79=_0x16568f(_0x5cab1a)[_0x43e426('0x8a3')](),_0x16827a=_0x16568f(_0x45281f)[_0x43e426('0x8a3')](),_0x586b1d=_0x2fcee0/0x64;return _0x16568f({'r':(_0x16827a['r']-_0x13fc79['r'])*_0x586b1d+_0x13fc79['r'],'g':(_0x16827a['g']-_0x13fc79['g'])*_0x586b1d+_0x13fc79['g'],'b':(_0x16827a['b']-_0x13fc79['b'])*_0x586b1d+_0x13fc79['b'],'a':(_0x16827a['a']-_0x13fc79['a'])*_0x586b1d+_0x13fc79['a']});},_0x16568f['readability']=function(_0x13e9a2,_0x3fded1){var _0x4cbd95=_0x697c7,_0x3d3897=_0x16568f(_0x13e9a2),_0x3c0482=_0x16568f(_0x3fded1);return(_0x38bc63[_0x4cbd95('0xa0d')](_0x3d3897[_0x4cbd95('0x116e')](),_0x3c0482[_0x4cbd95('0x116e')]())+0.05)/(_0x38bc63['min'](_0x3d3897[_0x4cbd95('0x116e')](),_0x3c0482[_0x4cbd95('0x116e')]())+0.05);},_0x16568f[_0x697c7('0xa39')]=function(_0x5deae8,_0x4c8619,_0x39aeb9){var _0x26d1a8=_0x697c7,_0x2196a5,_0x70aea5,_0x96d849=_0x16568f[_0x26d1a8('0xa4a')](_0x5deae8,_0x4c8619);switch(_0x70aea5=!0x1,(_0x2196a5=function(_0x1bf386){var _0x2be8e2=_0x26d1a8,_0x161cb3,_0x1786d4;return _0x161cb3=((_0x1bf386=_0x1bf386||{'level':'AA','size':_0x2be8e2('0x89')})[_0x2be8e2('0x555')]||'AA')[_0x2be8e2('0xa56')](),_0x1786d4=(_0x1bf386[_0x2be8e2('0x10a2')]||_0x2be8e2('0x89'))[_0x2be8e2('0x371')](),'AA'!==_0x161cb3&&'AAA'!==_0x161cb3&&(_0x161cb3='AA'),_0x2be8e2('0x89')!==_0x1786d4&&'large'!==_0x1786d4&&(_0x1786d4=_0x2be8e2('0x89')),{'level':_0x161cb3,'size':_0x1786d4};}(_0x39aeb9))['level']+_0x2196a5['size']){case _0x26d1a8('0x8fd'):case _0x26d1a8('0x110a'):_0x70aea5=_0x96d849>=4.5;break;case'AAlarge':_0x70aea5=_0x96d849>=0x3;break;case _0x26d1a8('0xdca'):_0x70aea5=_0x96d849>=0x7;}return _0x70aea5;},_0x16568f[_0x697c7('0x69a')]=function(_0x62052f,_0x154d8a,_0xecde88){var _0x411255=_0x697c7,_0x15fe5b,_0x58e812,_0x1b6855,_0x3484b7,_0x439406=null,_0x10a348=0x0;_0x58e812=(_0xecde88=_0xecde88||{})[_0x411255('0xfe2')],_0x1b6855=_0xecde88['level'],_0x3484b7=_0xecde88[_0x411255('0x10a2')];for(var _0x35be64=0x0;_0x35be64<_0x154d8a[_0x411255('0x13')];_0x35be64++)(_0x15fe5b=_0x16568f[_0x411255('0xa4a')](_0x62052f,_0x154d8a[_0x35be64]))>_0x10a348&&(_0x10a348=_0x15fe5b,_0x439406=_0x16568f(_0x154d8a[_0x35be64]));return _0x16568f['isReadable'](_0x62052f,_0x439406,{'level':_0x1b6855,'size':_0x3484b7})||!_0x58e812?_0x439406:(_0xecde88[_0x411255('0xfe2')]=!0x1,_0x16568f['mostReadable'](_0x62052f,[_0x411255('0x310'),'#000'],_0xecde88));};var _0x1d94cc=_0x16568f['names']={'aliceblue':_0x697c7('0x501'),'antiquewhite':'faebd7','aqua':'0ff','aquamarine':_0x697c7('0xc7f'),'azure':'f0ffff','beige':'f5f5dc','bisque':'ffe4c4','black':_0x697c7('0x192'),'blanchedalmond':_0x697c7('0x76f'),'blue':_0x697c7('0xc6e'),'blueviolet':'8a2be2','brown':_0x697c7('0x2ad'),'burlywood':'deb887','burntsienna':_0x697c7('0x1116'),'cadetblue':'5f9ea0','chartreuse':'7fff00','chocolate':'d2691e','coral':_0x697c7('0x7aa'),'cornflowerblue':'6495ed','cornsilk':_0x697c7('0xe2b'),'crimson':_0x697c7('0xbf6'),'cyan':_0x697c7('0x27'),'darkblue':'00008b','darkcyan':_0x697c7('0x10f8'),'darkgoldenrod':_0x697c7('0x751'),'darkgray':'a9a9a9','darkgreen':_0x697c7('0xaab'),'darkgrey':_0x697c7('0x722'),'darkkhaki':_0x697c7('0x62'),'darkmagenta':_0x697c7('0x986'),'darkolivegreen':_0x697c7('0x1170'),'darkorange':_0x697c7('0xbcc'),'darkorchid':_0x697c7('0xea9'),'darkred':_0x697c7('0xa55'),'darksalmon':_0x697c7('0x781'),'darkseagreen':_0x697c7('0x136'),'darkslateblue':_0x697c7('0x367'),'darkslategray':'2f4f4f','darkslategrey':_0x697c7('0x10c7'),'darkturquoise':'00ced1','darkviolet':_0x697c7('0xc7a'),'deeppink':'ff1493','deepskyblue':_0x697c7('0xc89'),'dimgray':_0x697c7('0x900'),'dimgrey':_0x697c7('0x900'),'dodgerblue':_0x697c7('0x24c'),'firebrick':'b22222','floralwhite':'fffaf0','forestgreen':_0x697c7('0xd4f'),'fuchsia':_0x697c7('0x92f'),'gainsboro':_0x697c7('0x390'),'ghostwhite':'f8f8ff','gold':_0x697c7('0x249'),'goldenrod':_0x697c7('0x1001'),'gray':_0x697c7('0x1055'),'green':_0x697c7('0x697'),'greenyellow':_0x697c7('0x68d'),'grey':'808080','honeydew':'f0fff0','hotpink':_0x697c7('0xf1f'),'indianred':_0x697c7('0x406'),'indigo':_0x697c7('0x258'),'ivory':_0x697c7('0x221'),'khaki':_0x697c7('0x915'),'lavender':'e6e6fa','lavenderblush':_0x697c7('0xccd'),'lawngreen':_0x697c7('0x37d'),'lemonchiffon':_0x697c7('0x4af'),'lightblue':_0x697c7('0xe4b'),'lightcoral':'f08080','lightcyan':_0x697c7('0xabe'),'lightgoldenrodyellow':_0x697c7('0x57f'),'lightgray':'d3d3d3','lightgreen':'90ee90','lightgrey':_0x697c7('0x26e'),'lightpink':'ffb6c1','lightsalmon':'ffa07a','lightseagreen':'20b2aa','lightskyblue':_0x697c7('0x1f8'),'lightslategray':_0x697c7('0xdb0'),'lightslategrey':_0x697c7('0xdb0'),'lightsteelblue':'b0c4de','lightyellow':_0x697c7('0x992'),'lime':_0x697c7('0x152'),'limegreen':_0x697c7('0x789'),'linen':_0x697c7('0x2f4'),'magenta':_0x697c7('0x92f'),'maroon':_0x697c7('0xfd5'),'mediumaquamarine':_0x697c7('0x565'),'mediumblue':_0x697c7('0xc84'),'mediumorchid':_0x697c7('0xcc'),'mediumpurple':_0x697c7('0x8c3'),'mediumseagreen':_0x697c7('0xbb9'),'mediumslateblue':_0x697c7('0x1a7'),'mediumspringgreen':_0x697c7('0x6d4'),'mediumturquoise':_0x697c7('0x474'),'mediumvioletred':_0x697c7('0x34d'),'midnightblue':_0x697c7('0xe67'),'mintcream':'f5fffa','mistyrose':_0x697c7('0x6ab'),'moccasin':_0x697c7('0x506'),'navajowhite':_0x697c7('0x1090'),'navy':'000080','oldlace':_0x697c7('0xa32'),'olive':_0x697c7('0xb33'),'olivedrab':_0x697c7('0xf0f'),'orange':_0x697c7('0x685'),'orangered':_0x697c7('0x6df'),'orchid':_0x697c7('0x84'),'palegoldenrod':'eee8aa','palegreen':_0x697c7('0x10a9'),'paleturquoise':_0x697c7('0x194'),'palevioletred':_0x697c7('0x8d9'),'papayawhip':_0x697c7('0xca0'),'peachpuff':'ffdab9','peru':_0x697c7('0xd04'),'pink':_0x697c7('0x4c6'),'plum':_0x697c7('0x988'),'powderblue':'b0e0e6','purple':'800080','rebeccapurple':'663399','red':'f00','rosybrown':_0x697c7('0xe07'),'royalblue':'4169e1','saddlebrown':_0x697c7('0xe14'),'salmon':'fa8072','sandybrown':_0x697c7('0x175'),'seagreen':'2e8b57','seashell':'fff5ee','sienna':_0x697c7('0x4cd'),'silver':_0x697c7('0x10b5'),'skyblue':_0x697c7('0x68'),'slateblue':_0x697c7('0x847'),'slategray':_0x697c7('0x678'),'slategrey':_0x697c7('0x678'),'snow':_0x697c7('0xc99'),'springgreen':_0x697c7('0x4dd'),'steelblue':_0x697c7('0x5d3'),'tan':_0x697c7('0x4f7'),'teal':'008080','thistle':_0x697c7('0xe43'),'tomato':'ff6347','turquoise':_0x697c7('0xaf6'),'violet':_0x697c7('0xe65'),'wheat':_0x697c7('0x6c8'),'white':_0x697c7('0x945'),'whitesmoke':_0x697c7('0x518'),'yellow':_0x697c7('0x7d9'),'yellowgreen':'9acd32'},_0x2426ac=_0x16568f[_0x697c7('0xf45')]=function(_0x5af1c7){var _0x4f4433=_0x697c7,_0x212016={};for(var _0x4506e0 in _0x5af1c7)_0x5af1c7[_0x4f4433('0xe9c')](_0x4506e0)&&(_0x212016[_0x5af1c7[_0x4506e0]]=_0x4506e0);return _0x212016;}(_0x1d94cc);function _0x910e67(_0x49a4f8){return _0x49a4f8=parseFloat(_0x49a4f8),(isNaN(_0x49a4f8)||_0x49a4f8<0x0||_0x49a4f8>0x1)&&(_0x49a4f8=0x1),_0x49a4f8;}function _0x35640d(_0x284ffe,_0xd220e2){var _0xa76828=_0x697c7;(function(_0x4e4cec){var _0x2f316a=_0x5376;return _0x2f316a('0x2fd')==typeof _0x4e4cec&&-0x1!=_0x4e4cec['indexOf']('.')&&0x1===parseFloat(_0x4e4cec);}(_0x284ffe)&&(_0x284ffe=_0xa76828('0x51f')));var _0xee58a5=function(_0x22141a){var _0x69c790=_0xa76828;return _0x69c790('0x2fd')==typeof _0x22141a&&-0x1!=_0x22141a[_0x69c790('0xf00')]('%');}(_0x284ffe);return _0x284ffe=_0x2c49cf(_0xd220e2,_0x5d32d4(0x0,parseFloat(_0x284ffe))),_0xee58a5&&(_0x284ffe=parseInt(_0x284ffe*_0xd220e2,0xa)/0x64),_0x38bc63[_0xa76828('0x415')](_0x284ffe-_0xd220e2)<0.000001?0x1:_0x284ffe%_0xd220e2/parseFloat(_0xd220e2);}function _0x2ba20e(_0x126688){return _0x2c49cf(0x1,_0x5d32d4(0x0,_0x126688));}function _0x3772e0(_0x297dec){return parseInt(_0x297dec,0x10);}function _0x249c1e(_0x3e0b6d){var _0x1d946a=_0x697c7;return 0x1==_0x3e0b6d[_0x1d946a('0x13')]?'0'+_0x3e0b6d:''+_0x3e0b6d;}function _0x512ef3(_0xf1ea82){return _0xf1ea82<=0x1&&(_0xf1ea82=0x64*_0xf1ea82+'%'),_0xf1ea82;}function _0x589f2d(_0x1c6ffe){var _0x35f810=_0x697c7;return _0x38bc63[_0x35f810('0x9ee')](0xff*parseFloat(_0x1c6ffe))[_0x35f810('0xb6d')](0x10);}function _0x3f8559(_0x34af79){return _0x3772e0(_0x34af79)/0xff;}var _0x3f9f30,_0x4589df,_0x589908,_0x46fd7f=(_0x4589df=_0x697c7('0x1fb')+(_0x3f9f30=_0x697c7('0xd75'))+')[,|\x5cs]+('+_0x3f9f30+_0x697c7('0xb37')+_0x3f9f30+_0x697c7('0x39e'),_0x589908=_0x697c7('0x1fb')+_0x3f9f30+_0x697c7('0xb37')+_0x3f9f30+')[,|\x5cs]+('+_0x3f9f30+')[,|\x5cs]+('+_0x3f9f30+')\x5cs*\x5c)?',{'CSS_UNIT':new RegExp(_0x3f9f30),'rgb':new RegExp('rgb'+_0x4589df),'rgba':new RegExp(_0x697c7('0xa6c')+_0x589908),'hsl':new RegExp('hsl'+_0x4589df),'hsla':new RegExp('hsla'+_0x589908),'hsv':new RegExp(_0x697c7('0xd71')+_0x4589df),'hsva':new RegExp(_0x697c7('0x797')+_0x589908),'hex3':/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,'hex6':/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,'hex4':/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,'hex8':/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function _0x5ddb8b(_0x22b0f0){var _0x5c0529=_0x697c7;return!!_0x46fd7f[_0x5c0529('0x426')]['exec'](_0x22b0f0);}void 0x0!==_0x43bf8a&&_0x43bf8a[_0x697c7('0x64')]?_0x43bf8a[_0x697c7('0x64')]=_0x16568f:_0x697c7('0x106c')==typeof define&&define[_0x697c7('0xdf3')]?define(function(){return _0x16568f;}):window[_0x697c7('0x3a7')]=_0x16568f;}(Math);},{}],0x170:[function(_0x4b175d,_0x290246,_0x2feb53){var _0x2b3a2d=_0x548f48,_0x5d7a2c,_0x35b39f;_0x5d7a2c=this,_0x35b39f=function(){return function(_0x4180ec){function _0x1cf366(_0x2b56a6){var _0x77eeaa=_0x5376;if(_0x1431a8[_0x2b56a6])return _0x1431a8[_0x2b56a6][_0x77eeaa('0x64')];var _0x9145ef=_0x1431a8[_0x2b56a6]={'exports':{},'id':_0x2b56a6,'loaded':!0x1};return _0x4180ec[_0x2b56a6][_0x77eeaa('0xfd2')](_0x9145ef[_0x77eeaa('0x64')],_0x9145ef,_0x9145ef[_0x77eeaa('0x64')],_0x1cf366),_0x9145ef[_0x77eeaa('0x8ea')]=!0x0,_0x9145ef['exports'];}var _0x1431a8={};return _0x1cf366['m']=_0x4180ec,_0x1cf366['c']=_0x1431a8,_0x1cf366['p']='',_0x1cf366(0x0);}([function(_0x2ecdb5,_0x36f1a8){var _0x199b6f=_0x5376;'use strict';function _0x3116db(_0x11a488,_0x5e70aa,_0x525520,_0x28cda2){var _0x1e019c=_0x5376;return function(_0x45c429,_0x5085d9,_0x4f9292,_0x4fd2c0){return{'red':_0x4fd2c0[0x4*(_0x4f9292*_0x5085d9+_0x45c429)],'green':_0x4fd2c0[0x4*(_0x4f9292*_0x5085d9+_0x45c429)+0x1],'blue':_0x4fd2c0[0x4*(_0x4f9292*_0x5085d9+_0x45c429)+0x2],'alpha':_0x4fd2c0[0x4*(_0x4f9292*_0x5085d9+_0x45c429)+0x3]};}(_0x11a488,_0x5e70aa,_0x525520,_0x28cda2)[_0x1e019c('0x83e')];}function _0x31e155(_0xbc2d43,_0x347569,_0x1db986,_0x2525d0){for(var _0x402960=_0xbc2d43?0x1:-0x1,_0x2d4ae3=_0xbc2d43?0x0:_0x1db986-0x1;_0xbc2d43?_0x2d4ae3<_0x1db986:_0x2d4ae3>-0x1;_0x2d4ae3+=_0x402960)for(var _0x280ee0=0x0;_0x280ee0<_0x347569;_0x280ee0++)if(_0x3116db(_0x280ee0,_0x2d4ae3,_0x347569,_0x2525d0))return _0x2d4ae3;return null;}function _0x5964e0(_0xc90d5a,_0x5f0009,_0x8f75e4,_0x484d36){for(var _0x2280df=_0xc90d5a?0x1:-0x1,_0x4a0c24=_0xc90d5a?0x0:_0x5f0009-0x1;_0xc90d5a?_0x4a0c24<_0x5f0009:_0x4a0c24>-0x1;_0x4a0c24+=_0x2280df)for(var _0x448a71=0x0;_0x448a71<_0x8f75e4;_0x448a71++)if(_0x3116db(_0x4a0c24,_0x448a71,_0x5f0009,_0x484d36))return _0x4a0c24;return null;}Object[_0x199b6f('0x9a5')](_0x36f1a8,_0x199b6f('0xce5'),{'value':!0x0}),_0x36f1a8[_0x199b6f('0xf5f')]=function(_0x3f8a88){var _0xf6ee31=_0x199b6f,_0x19dfb4=_0x3f8a88[_0xf6ee31('0xeb8')]('2d'),_0x2103e4=_0x3f8a88[_0xf6ee31('0x115')],_0x1efe11=_0x3f8a88[_0xf6ee31('0x27b')],_0x6a6b1e=_0x19dfb4[_0xf6ee31('0x1ff')](0x0,0x0,_0x2103e4,_0x1efe11)[_0xf6ee31('0x1016')],_0xebf18d=_0x31e155(!0x0,_0x2103e4,_0x1efe11,_0x6a6b1e),_0x3f76c5=_0x31e155(!0x1,_0x2103e4,_0x1efe11,_0x6a6b1e),_0x1fbe3b=_0x5964e0(!0x0,_0x2103e4,_0x1efe11,_0x6a6b1e),_0xf812f2=_0x5964e0(!0x1,_0x2103e4,_0x1efe11,_0x6a6b1e)-_0x1fbe3b+0x1,_0x7033e4=_0x3f76c5-_0xebf18d+0x1,_0x466a3f=_0x19dfb4[_0xf6ee31('0x1ff')](_0x1fbe3b,_0xebf18d,_0xf812f2,_0x7033e4);return _0x3f8a88['width']=_0xf812f2,_0x3f8a88['height']=_0x7033e4,_0x19dfb4['clearRect'](0x0,0x0,_0xf812f2,_0x7033e4),_0x19dfb4['putImageData'](_0x466a3f,0x0,0x0),_0x3f8a88;};}]);},'object'==typeof _0x2feb53&&_0x2b3a2d('0xb3f')==typeof _0x290246?_0x290246['exports']=_0x35b39f():_0x2b3a2d('0x106c')==typeof define&&define[_0x2b3a2d('0xdf3')]?define([],_0x35b39f):_0x2b3a2d('0xb3f')==typeof _0x2feb53?_0x2feb53[_0x2b3a2d('0x32b')]=_0x35b39f():_0x5d7a2c[_0x2b3a2d('0x32b')]=_0x35b39f();},{}]},{},[0x2,0x8,0xa,0x6,0x4,0xc,0xe,0x10,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23,0x25,0x27,0x29,0x2b,0x2d,0x2f,0x31]); \ No newline at end of file + +'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b? +Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119; +function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d; +exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t}; +exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p}; +exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z; + +},{}],357:[function(require,module,exports){ +(function (process){ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-is.production.min.js'); +} else { + module.exports = require('./cjs/react-is.development.js'); +} + +}).call(this,require('_process')) + +},{"./cjs/react-is.development.js":355,"./cjs/react-is.production.min.js":356,"_process":1}],358:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("prop-types"),require("react"),require("signature_pad"),require("trim-canvas")):"function"==typeof define&&define.amd?define(["prop-types","react","signature_pad","trim-canvas"],t):"object"==typeof exports?exports.SignatureCanvas=t(require("prop-types"),require("react"),require("signature_pad"),require("trim-canvas")):e.SignatureCanvas=t(e["prop-types"],e.react,e.signature_pad,e["trim-canvas"])}(this,function(e,t,n,r){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t 1 && arguments[1] !== undefined ? arguments[1] : 'span'; + + return function (_React$Component) { + _inherits(Active, _React$Component); + + function Active() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Active); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () { + return _this.setState({ active: true }); + }, _this.handleMouseUp = function () { + return _this.setState({ active: false }); + }, _this.render = function () { + return _react2.default.createElement( + Span, + { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp }, + _react2.default.createElement(Component, _extends({}, _this.props, _this.state)) + ); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + return Active; + }(_react2.default.Component); +}; + +exports.default = active; +},{"react":"react"}],361:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.hover = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var hover = exports.hover = function hover(Component) { + var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span'; + + return function (_React$Component) { + _inherits(Hover, _React$Component); + + function Hover() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Hover); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () { + return _this.setState({ hover: true }); + }, _this.handleMouseOut = function () { + return _this.setState({ hover: false }); + }, _this.render = function () { + return _react2.default.createElement( + Span, + { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut }, + _react2.default.createElement(Component, _extends({}, _this.props, _this.state)) + ); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + return Hover; + }(_react2.default.Component); +}; + +exports.default = hover; +},{"react":"react"}],362:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.flattenNames = undefined; + +var _isString2 = require('lodash/isString'); + +var _isString3 = _interopRequireDefault(_isString2); + +var _forOwn2 = require('lodash/forOwn'); + +var _forOwn3 = _interopRequireDefault(_forOwn2); + +var _isPlainObject2 = require('lodash/isPlainObject'); + +var _isPlainObject3 = _interopRequireDefault(_isPlainObject2); + +var _map2 = require('lodash/map'); + +var _map3 = _interopRequireDefault(_map2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var flattenNames = exports.flattenNames = function flattenNames() { + var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + + var names = []; + + (0, _map3.default)(things, function (thing) { + if (Array.isArray(thing)) { + flattenNames(thing).map(function (name) { + return names.push(name); + }); + } else if ((0, _isPlainObject3.default)(thing)) { + (0, _forOwn3.default)(thing, function (value, key) { + value === true && names.push(key); + names.push(key + '-' + value); + }); + } else if ((0, _isString3.default)(thing)) { + names.push(thing); + } + }); + + return names; +}; + +exports.default = flattenNames; +},{"lodash/forOwn":260,"lodash/isPlainObject":274,"lodash/isString":276,"lodash/map":282}],363:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined; + +var _flattenNames = require('./flattenNames'); + +var _flattenNames2 = _interopRequireDefault(_flattenNames); + +var _mergeClasses = require('./mergeClasses'); + +var _mergeClasses2 = _interopRequireDefault(_mergeClasses); + +var _autoprefix = require('./autoprefix'); + +var _autoprefix2 = _interopRequireDefault(_autoprefix); + +var _hover2 = require('./components/hover'); + +var _hover3 = _interopRequireDefault(_hover2); + +var _active = require('./components/active'); + +var _active2 = _interopRequireDefault(_active); + +var _loop2 = require('./loop'); + +var _loop3 = _interopRequireDefault(_loop2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.hover = _hover3.default; +exports.handleHover = _hover3.default; +exports.handleActive = _active2.default; +exports.loop = _loop3.default; +var ReactCSS = exports.ReactCSS = function ReactCSS(classes) { + for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + activations[_key - 1] = arguments[_key]; + } + + var activeNames = (0, _flattenNames2.default)(activations); + var merged = (0, _mergeClasses2.default)(classes, activeNames); + return (0, _autoprefix2.default)(merged); +}; + +exports.default = ReactCSS; +},{"./autoprefix":359,"./components/active":360,"./components/hover":361,"./flattenNames":362,"./loop":364,"./mergeClasses":365}],364:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var loopable = function loopable(i, length) { + var props = {}; + var setProp = function setProp(name) { + var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + props[name] = value; + }; + + i === 0 && setProp('first-child'); + i === length - 1 && setProp('last-child'); + (i === 0 || i % 2 === 0) && setProp('even'); + Math.abs(i % 2) === 1 && setProp('odd'); + setProp('nth-child', i); + + return props; +}; + +exports.default = loopable; +},{}],365:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.mergeClasses = undefined; + +var _forOwn2 = require('lodash/forOwn'); + +var _forOwn3 = _interopRequireDefault(_forOwn2); + +var _cloneDeep2 = require('lodash/cloneDeep'); + +var _cloneDeep3 = _interopRequireDefault(_cloneDeep2); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mergeClasses = exports.mergeClasses = function mergeClasses(classes) { + var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + + var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {}; + activeNames.map(function (name) { + var toMerge = classes[name]; + if (toMerge) { + (0, _forOwn3.default)(toMerge, function (value, key) { + if (!styles[key]) { + styles[key] = {}; + } + + styles[key] = _extends({}, styles[key], toMerge[key]); + }); + } + + return name; + }); + return styles; +}; + +exports.default = mergeClasses; +},{"lodash/cloneDeep":254,"lodash/forOwn":260}],366:[function(require,module,exports){ +/*! + * Signature Pad v2.3.2 + * https://github.com/szimek/signature_pad + * + * Copyright 2017 Szymon Nowak + * Released under the MIT license + * + * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from: + * http://corner.squareup.com/2012/07/smoother-signatures.html + * + * Implementation of interpolation using cubic Bézier curves is taken from: + * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript + * + * Algorithm for approximated length of a Bézier curve is taken from: + * http://www.lemoda.net/maths/bezier-length/index.html + * + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.SignaturePad = factory()); +}(this, (function () { 'use strict'; + +function Point(x, y, time) { + this.x = x; + this.y = y; + this.time = time || new Date().getTime(); +} + +Point.prototype.velocityFrom = function (start) { + return this.time !== start.time ? this.distanceTo(start) / (this.time - start.time) : 1; +}; + +Point.prototype.distanceTo = function (start) { + return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2)); +}; + +Point.prototype.equals = function (other) { + return this.x === other.x && this.y === other.y && this.time === other.time; +}; + +function Bezier(startPoint, control1, control2, endPoint) { + this.startPoint = startPoint; + this.control1 = control1; + this.control2 = control2; + this.endPoint = endPoint; +} + +// Returns approximated length. +Bezier.prototype.length = function () { + var steps = 10; + var length = 0; + var px = void 0; + var py = void 0; + + for (var i = 0; i <= steps; i += 1) { + var t = i / steps; + var cx = this._point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x); + var cy = this._point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y); + if (i > 0) { + var xdiff = cx - px; + var ydiff = cy - py; + length += Math.sqrt(xdiff * xdiff + ydiff * ydiff); + } + px = cx; + py = cy; + } + + return length; +}; + +/* eslint-disable no-multi-spaces, space-in-parens */ +Bezier.prototype._point = function (t, start, c1, c2, end) { + return start * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * c1 * (1.0 - t) * (1.0 - t) * t + 3.0 * c2 * (1.0 - t) * t * t + end * t * t * t; +}; + +/* eslint-disable */ + +// http://stackoverflow.com/a/27078401/815507 +function throttle(func, wait, options) { + var context, args, result; + var timeout = null; + var previous = 0; + if (!options) options = {}; + var later = function later() { + previous = options.leading === false ? 0 : Date.now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + return function () { + var now = Date.now(); + if (!previous && options.leading === false) previous = now; + var remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; +} + +function SignaturePad(canvas, options) { + var self = this; + var opts = options || {}; + + this.velocityFilterWeight = opts.velocityFilterWeight || 0.7; + this.minWidth = opts.minWidth || 0.5; + this.maxWidth = opts.maxWidth || 2.5; + this.throttle = 'throttle' in opts ? opts.throttle : 16; // in miliseconds + this.minDistance = 'minDistance' in opts ? opts.minDistance : 5; + + if (this.throttle) { + this._strokeMoveUpdate = throttle(SignaturePad.prototype._strokeUpdate, this.throttle); + } else { + this._strokeMoveUpdate = SignaturePad.prototype._strokeUpdate; + } + + this.dotSize = opts.dotSize || function () { + return (this.minWidth + this.maxWidth) / 2; + }; + this.penColor = opts.penColor || 'black'; + this.backgroundColor = opts.backgroundColor || 'rgba(0,0,0,0)'; + this.onBegin = opts.onBegin; + this.onEnd = opts.onEnd; + + this._canvas = canvas; + this._ctx = canvas.getContext('2d'); + this.clear(); + + // We need add these inline so they are available to unbind while still having + // access to 'self' we could use _.bind but it's not worth adding a dependency. + this._handleMouseDown = function (event) { + if (event.which === 1) { + self._mouseButtonDown = true; + self._strokeBegin(event); + } + }; + + this._handleMouseMove = function (event) { + if (self._mouseButtonDown) { + self._strokeMoveUpdate(event); + } + }; + + this._handleMouseUp = function (event) { + if (event.which === 1 && self._mouseButtonDown) { + self._mouseButtonDown = false; + self._strokeEnd(event); + } + }; + + this._handleTouchStart = function (event) { + if (event.targetTouches.length === 1) { + var touch = event.changedTouches[0]; + self._strokeBegin(touch); + } + }; + + this._handleTouchMove = function (event) { + // Prevent scrolling. + event.preventDefault(); + + var touch = event.targetTouches[0]; + self._strokeMoveUpdate(touch); + }; + + this._handleTouchEnd = function (event) { + var wasCanvasTouched = event.target === self._canvas; + if (wasCanvasTouched) { + event.preventDefault(); + self._strokeEnd(event); + } + }; + + // Enable mouse and touch event handlers + this.on(); +} + +// Public methods +SignaturePad.prototype.clear = function () { + var ctx = this._ctx; + var canvas = this._canvas; + + ctx.fillStyle = this.backgroundColor; + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.fillRect(0, 0, canvas.width, canvas.height); + + this._data = []; + this._reset(); + this._isEmpty = true; +}; + +SignaturePad.prototype.fromDataURL = function (dataUrl) { + var _this = this; + + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var image = new Image(); + var ratio = options.ratio || window.devicePixelRatio || 1; + var width = options.width || this._canvas.width / ratio; + var height = options.height || this._canvas.height / ratio; + + this._reset(); + image.src = dataUrl; + image.onload = function () { + _this._ctx.drawImage(image, 0, 0, width, height); + }; + this._isEmpty = false; +}; + +SignaturePad.prototype.toDataURL = function (type) { + var _canvas; + + switch (type) { + case 'image/svg+xml': + return this._toSVG(); + default: + for (var _len = arguments.length, options = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + options[_key - 1] = arguments[_key]; + } + + return (_canvas = this._canvas).toDataURL.apply(_canvas, [type].concat(options)); + } +}; + +SignaturePad.prototype.on = function () { + this._handleMouseEvents(); + this._handleTouchEvents(); +}; + +SignaturePad.prototype.off = function () { + this._canvas.removeEventListener('mousedown', this._handleMouseDown); + this._canvas.removeEventListener('mousemove', this._handleMouseMove); + document.removeEventListener('mouseup', this._handleMouseUp); + + this._canvas.removeEventListener('touchstart', this._handleTouchStart); + this._canvas.removeEventListener('touchmove', this._handleTouchMove); + this._canvas.removeEventListener('touchend', this._handleTouchEnd); +}; + +SignaturePad.prototype.isEmpty = function () { + return this._isEmpty; +}; + +// Private methods +SignaturePad.prototype._strokeBegin = function (event) { + this._data.push([]); + this._reset(); + this._strokeUpdate(event); + + if (typeof this.onBegin === 'function') { + this.onBegin(event); + } +}; + +SignaturePad.prototype._strokeUpdate = function (event) { + var x = event.clientX; + var y = event.clientY; + + var point = this._createPoint(x, y); + var lastPointGroup = this._data[this._data.length - 1]; + var lastPoint = lastPointGroup && lastPointGroup[lastPointGroup.length - 1]; + var isLastPointTooClose = lastPoint && point.distanceTo(lastPoint) < this.minDistance; + + // Skip this point if it's too close to the previous one + if (!(lastPoint && isLastPointTooClose)) { + var _addPoint = this._addPoint(point), + curve = _addPoint.curve, + widths = _addPoint.widths; + + if (curve && widths) { + this._drawCurve(curve, widths.start, widths.end); + } + + this._data[this._data.length - 1].push({ + x: point.x, + y: point.y, + time: point.time, + color: this.penColor + }); + } +}; + +SignaturePad.prototype._strokeEnd = function (event) { + var canDrawCurve = this.points.length > 2; + var point = this.points[0]; // Point instance + + if (!canDrawCurve && point) { + this._drawDot(point); + } + + if (point) { + var lastPointGroup = this._data[this._data.length - 1]; + var lastPoint = lastPointGroup[lastPointGroup.length - 1]; // plain object + + // When drawing a dot, there's only one point in a group, so without this check + // such group would end up with exactly the same 2 points. + if (!point.equals(lastPoint)) { + lastPointGroup.push({ + x: point.x, + y: point.y, + time: point.time, + color: this.penColor + }); + } + } + + if (typeof this.onEnd === 'function') { + this.onEnd(event); + } +}; + +SignaturePad.prototype._handleMouseEvents = function () { + this._mouseButtonDown = false; + + this._canvas.addEventListener('mousedown', this._handleMouseDown); + this._canvas.addEventListener('mousemove', this._handleMouseMove); + document.addEventListener('mouseup', this._handleMouseUp); +}; + +SignaturePad.prototype._handleTouchEvents = function () { + // Pass touch events to canvas element on mobile IE11 and Edge. + this._canvas.style.msTouchAction = 'none'; + this._canvas.style.touchAction = 'none'; + + this._canvas.addEventListener('touchstart', this._handleTouchStart); + this._canvas.addEventListener('touchmove', this._handleTouchMove); + this._canvas.addEventListener('touchend', this._handleTouchEnd); +}; + +SignaturePad.prototype._reset = function () { + this.points = []; + this._lastVelocity = 0; + this._lastWidth = (this.minWidth + this.maxWidth) / 2; + this._ctx.fillStyle = this.penColor; +}; + +SignaturePad.prototype._createPoint = function (x, y, time) { + var rect = this._canvas.getBoundingClientRect(); + + return new Point(x - rect.left, y - rect.top, time || new Date().getTime()); +}; + +SignaturePad.prototype._addPoint = function (point) { + var points = this.points; + var tmp = void 0; + + points.push(point); + + if (points.length > 2) { + // To reduce the initial lag make it work with 3 points + // by copying the first point to the beginning. + if (points.length === 3) points.unshift(points[0]); + + tmp = this._calculateCurveControlPoints(points[0], points[1], points[2]); + var c2 = tmp.c2; + tmp = this._calculateCurveControlPoints(points[1], points[2], points[3]); + var c3 = tmp.c1; + var curve = new Bezier(points[1], c2, c3, points[2]); + var widths = this._calculateCurveWidths(curve); + + // Remove the first element from the list, + // so that we always have no more than 4 points in points array. + points.shift(); + + return { curve: curve, widths: widths }; + } + + return {}; +}; + +SignaturePad.prototype._calculateCurveControlPoints = function (s1, s2, s3) { + var dx1 = s1.x - s2.x; + var dy1 = s1.y - s2.y; + var dx2 = s2.x - s3.x; + var dy2 = s2.y - s3.y; + + var m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 }; + var m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 }; + + var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1); + var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2); + + var dxm = m1.x - m2.x; + var dym = m1.y - m2.y; + + var k = l2 / (l1 + l2); + var cm = { x: m2.x + dxm * k, y: m2.y + dym * k }; + + var tx = s2.x - cm.x; + var ty = s2.y - cm.y; + + return { + c1: new Point(m1.x + tx, m1.y + ty), + c2: new Point(m2.x + tx, m2.y + ty) + }; +}; + +SignaturePad.prototype._calculateCurveWidths = function (curve) { + var startPoint = curve.startPoint; + var endPoint = curve.endPoint; + var widths = { start: null, end: null }; + + var velocity = this.velocityFilterWeight * endPoint.velocityFrom(startPoint) + (1 - this.velocityFilterWeight) * this._lastVelocity; + + var newWidth = this._strokeWidth(velocity); + + widths.start = this._lastWidth; + widths.end = newWidth; + + this._lastVelocity = velocity; + this._lastWidth = newWidth; + + return widths; +}; + +SignaturePad.prototype._strokeWidth = function (velocity) { + return Math.max(this.maxWidth / (velocity + 1), this.minWidth); +}; + +SignaturePad.prototype._drawPoint = function (x, y, size) { + var ctx = this._ctx; + + ctx.moveTo(x, y); + ctx.arc(x, y, size, 0, 2 * Math.PI, false); + this._isEmpty = false; +}; + +SignaturePad.prototype._drawCurve = function (curve, startWidth, endWidth) { + var ctx = this._ctx; + var widthDelta = endWidth - startWidth; + var drawSteps = Math.floor(curve.length()); + + ctx.beginPath(); + + for (var i = 0; i < drawSteps; i += 1) { + // Calculate the Bezier (x, y) coordinate for this step. + var t = i / drawSteps; + var tt = t * t; + var ttt = tt * t; + var u = 1 - t; + var uu = u * u; + var uuu = uu * u; + + var x = uuu * curve.startPoint.x; + x += 3 * uu * t * curve.control1.x; + x += 3 * u * tt * curve.control2.x; + x += ttt * curve.endPoint.x; + + var y = uuu * curve.startPoint.y; + y += 3 * uu * t * curve.control1.y; + y += 3 * u * tt * curve.control2.y; + y += ttt * curve.endPoint.y; + + var width = startWidth + ttt * widthDelta; + this._drawPoint(x, y, width); + } + + ctx.closePath(); + ctx.fill(); +}; + +SignaturePad.prototype._drawDot = function (point) { + var ctx = this._ctx; + var width = typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize; + + ctx.beginPath(); + this._drawPoint(point.x, point.y, width); + ctx.closePath(); + ctx.fill(); +}; + +SignaturePad.prototype._fromData = function (pointGroups, drawCurve, drawDot) { + for (var i = 0; i < pointGroups.length; i += 1) { + var group = pointGroups[i]; + + if (group.length > 1) { + for (var j = 0; j < group.length; j += 1) { + var rawPoint = group[j]; + var point = new Point(rawPoint.x, rawPoint.y, rawPoint.time); + var color = rawPoint.color; + + if (j === 0) { + // First point in a group. Nothing to draw yet. + + // All points in the group have the same color, so it's enough to set + // penColor just at the beginning. + this.penColor = color; + this._reset(); + + this._addPoint(point); + } else if (j !== group.length - 1) { + // Middle point in a group. + var _addPoint2 = this._addPoint(point), + curve = _addPoint2.curve, + widths = _addPoint2.widths; + + if (curve && widths) { + drawCurve(curve, widths, color); + } + } else { + // Last point in a group. Do nothing. + } + } + } else { + this._reset(); + var _rawPoint = group[0]; + drawDot(_rawPoint); + } + } +}; + +SignaturePad.prototype._toSVG = function () { + var _this2 = this; + + var pointGroups = this._data; + var canvas = this._canvas; + var ratio = Math.max(window.devicePixelRatio || 1, 1); + var minX = 0; + var minY = 0; + var maxX = canvas.width / ratio; + var maxY = canvas.height / ratio; + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + + svg.setAttributeNS(null, 'width', canvas.width); + svg.setAttributeNS(null, 'height', canvas.height); + + this._fromData(pointGroups, function (curve, widths, color) { + var path = document.createElement('path'); + + // Need to check curve for NaN values, these pop up when drawing + // lines on the canvas that are not continuous. E.g. Sharp corners + // or stopping mid-stroke and than continuing without lifting mouse. + if (!isNaN(curve.control1.x) && !isNaN(curve.control1.y) && !isNaN(curve.control2.x) && !isNaN(curve.control2.y)) { + var attr = 'M ' + curve.startPoint.x.toFixed(3) + ',' + curve.startPoint.y.toFixed(3) + ' ' + ('C ' + curve.control1.x.toFixed(3) + ',' + curve.control1.y.toFixed(3) + ' ') + (curve.control2.x.toFixed(3) + ',' + curve.control2.y.toFixed(3) + ' ') + (curve.endPoint.x.toFixed(3) + ',' + curve.endPoint.y.toFixed(3)); + + path.setAttribute('d', attr); + path.setAttribute('stroke-width', (widths.end * 2.25).toFixed(3)); + path.setAttribute('stroke', color); + path.setAttribute('fill', 'none'); + path.setAttribute('stroke-linecap', 'round'); + + svg.appendChild(path); + } + }, function (rawPoint) { + var circle = document.createElement('circle'); + var dotSize = typeof _this2.dotSize === 'function' ? _this2.dotSize() : _this2.dotSize; + circle.setAttribute('r', dotSize); + circle.setAttribute('cx', rawPoint.x); + circle.setAttribute('cy', rawPoint.y); + circle.setAttribute('fill', rawPoint.color); + + svg.appendChild(circle); + }); + + var prefix = 'data:image/svg+xml;base64,'; + var header = ''; + var body = svg.innerHTML; + + // IE hack for missing innerHTML property on SVGElement + if (body === undefined) { + var dummy = document.createElement('dummy'); + var nodes = svg.childNodes; + dummy.innerHTML = ''; + + for (var i = 0; i < nodes.length; i += 1) { + dummy.appendChild(nodes[i].cloneNode(true)); + } + + body = dummy.innerHTML; + } + + var footer = ''; + var data = header + body + footer; + + return prefix + btoa(data); +}; + +SignaturePad.prototype.fromData = function (pointGroups) { + var _this3 = this; + + this.clear(); + + this._fromData(pointGroups, function (curve, widths) { + return _this3._drawCurve(curve, widths.start, widths.end); + }, function (rawPoint) { + return _this3._drawDot(rawPoint); + }); + + this._data = pointGroups; +}; + +SignaturePad.prototype.toData = function () { + return this._data; +}; + +return SignaturePad; + +}))); + +},{}],367:[function(require,module,exports){ +// TinyColor v1.4.2 +// https://github.com/bgrins/TinyColor +// Brian Grinstead, MIT License + +(function(Math) { + +var trimLeft = /^\s+/, + trimRight = /\s+$/, + tinyCounter = 0, + mathRound = Math.round, + mathMin = Math.min, + mathMax = Math.max, + mathRandom = Math.random; + +function tinycolor (color, opts) { + + color = (color) ? color : ''; + opts = opts || { }; + + // If input is already a tinycolor, return itself + if (color instanceof tinycolor) { + return color; + } + // If we are called as a function, call using new instead + if (!(this instanceof tinycolor)) { + return new tinycolor(color, opts); + } + + var rgb = inputToRGB(color); + this._originalInput = color, + this._r = rgb.r, + this._g = rgb.g, + this._b = rgb.b, + this._a = rgb.a, + this._roundA = mathRound(100*this._a) / 100, + this._format = opts.format || rgb.format; + this._gradientType = opts.gradientType; + + // Don't let the range of [0,255] come back in [0,1]. + // Potentially lose a little bit of precision here, but will fix issues where + // .5 gets interpreted as half of the total, instead of half of 1 + // If it was supposed to be 128, this was already taken care of by `inputToRgb` + if (this._r < 1) { this._r = mathRound(this._r); } + if (this._g < 1) { this._g = mathRound(this._g); } + if (this._b < 1) { this._b = mathRound(this._b); } + + this._ok = rgb.ok; + this._tc_id = tinyCounter++; +} + +tinycolor.prototype = { + isDark: function() { + return this.getBrightness() < 128; + }, + isLight: function() { + return !this.isDark(); + }, + isValid: function() { + return this._ok; + }, + getOriginalInput: function() { + return this._originalInput; + }, + getFormat: function() { + return this._format; + }, + getAlpha: function() { + return this._a; + }, + getBrightness: function() { + //http://www.w3.org/TR/AERT#color-contrast + var rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; + }, + getLuminance: function() { + //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef + var rgb = this.toRgb(); + var RsRGB, GsRGB, BsRGB, R, G, B; + RsRGB = rgb.r/255; + GsRGB = rgb.g/255; + BsRGB = rgb.b/255; + + if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);} + if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);} + if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);} + return (0.2126 * R) + (0.7152 * G) + (0.0722 * B); + }, + setAlpha: function(value) { + this._a = boundAlpha(value); + this._roundA = mathRound(100*this._a) / 100; + return this; + }, + toHsv: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; + }, + toHsvString: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); + return (this._a == 1) ? + "hsv(" + h + ", " + s + "%, " + v + "%)" : + "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")"; + }, + toHsl: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; + }, + toHslString: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); + return (this._a == 1) ? + "hsl(" + h + ", " + s + "%, " + l + "%)" : + "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")"; + }, + toHex: function(allow3Char) { + return rgbToHex(this._r, this._g, this._b, allow3Char); + }, + toHexString: function(allow3Char) { + return '#' + this.toHex(allow3Char); + }, + toHex8: function(allow4Char) { + return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); + }, + toHex8String: function(allow4Char) { + return '#' + this.toHex8(allow4Char); + }, + toRgb: function() { + return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; + }, + toRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : + "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; + }, + toPercentageRgb: function() { + return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; + }, + toPercentageRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : + "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; + }, + toName: function() { + if (this._a === 0) { + return "transparent"; + } + + if (this._a < 1) { + return false; + } + + return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; + }, + toFilter: function(secondColor) { + var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a); + var secondHex8String = hex8String; + var gradientType = this._gradientType ? "GradientType = 1, " : ""; + + if (secondColor) { + var s = tinycolor(secondColor); + secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a); + } + + return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; + }, + toString: function(format) { + var formatSet = !!format; + format = format || this._format; + + var formattedString = false; + var hasAlpha = this._a < 1 && this._a >= 0; + var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name"); + + if (needsAlphaFormat) { + // Special case for "transparent", all other non-alpha formats + // will return rgba when there is transparency. + if (format === "name" && this._a === 0) { + return this.toName(); + } + return this.toRgbString(); + } + if (format === "rgb") { + formattedString = this.toRgbString(); + } + if (format === "prgb") { + formattedString = this.toPercentageRgbString(); + } + if (format === "hex" || format === "hex6") { + formattedString = this.toHexString(); + } + if (format === "hex3") { + formattedString = this.toHexString(true); + } + if (format === "hex4") { + formattedString = this.toHex8String(true); + } + if (format === "hex8") { + formattedString = this.toHex8String(); + } + if (format === "name") { + formattedString = this.toName(); + } + if (format === "hsl") { + formattedString = this.toHslString(); + } + if (format === "hsv") { + formattedString = this.toHsvString(); + } + + return formattedString || this.toHexString(); + }, + clone: function() { + return tinycolor(this.toString()); + }, + + _applyModification: function(fn, args) { + var color = fn.apply(null, [this].concat([].slice.call(args))); + this._r = color._r; + this._g = color._g; + this._b = color._b; + this.setAlpha(color._a); + return this; + }, + lighten: function() { + return this._applyModification(lighten, arguments); + }, + brighten: function() { + return this._applyModification(brighten, arguments); + }, + darken: function() { + return this._applyModification(darken, arguments); + }, + desaturate: function() { + return this._applyModification(desaturate, arguments); + }, + saturate: function() { + return this._applyModification(saturate, arguments); + }, + greyscale: function() { + return this._applyModification(greyscale, arguments); + }, + spin: function() { + return this._applyModification(spin, arguments); + }, + + _applyCombination: function(fn, args) { + return fn.apply(null, [this].concat([].slice.call(args))); + }, + analogous: function() { + return this._applyCombination(analogous, arguments); + }, + complement: function() { + return this._applyCombination(complement, arguments); + }, + monochromatic: function() { + return this._applyCombination(monochromatic, arguments); + }, + splitcomplement: function() { + return this._applyCombination(splitcomplement, arguments); + }, + triad: function() { + return this._applyCombination(triad, arguments); + }, + tetrad: function() { + return this._applyCombination(tetrad, arguments); + } +}; + +// If input is an object, force 1 into "1.0" to handle ratios properly +// String input requires "1.0" as input, so 1 will be treated as 1 +tinycolor.fromRatio = function(color, opts) { + if (typeof color == "object") { + var newColor = {}; + for (var i in color) { + if (color.hasOwnProperty(i)) { + if (i === "a") { + newColor[i] = color[i]; + } + else { + newColor[i] = convertToPercentage(color[i]); + } + } + } + color = newColor; + } + + return tinycolor(color, opts); +}; + +// Given a string or object, convert that input to RGB +// Possible string inputs: +// +// "red" +// "#f00" or "f00" +// "#ff0000" or "ff0000" +// "#ff000000" or "ff000000" +// "rgb 255 0 0" or "rgb (255, 0, 0)" +// "rgb 1.0 0 0" or "rgb (1, 0, 0)" +// "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" +// "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" +// "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" +// "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" +// "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" +// +function inputToRGB(color) { + + var rgb = { r: 0, g: 0, b: 0 }; + var a = 1; + var s = null; + var v = null; + var l = null; + var ok = false; + var format = false; + + if (typeof color == "string") { + color = stringInputToObject(color); + } + + if (typeof color == "object") { + if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { + s = convertToPercentage(color.s); + v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, s, v); + ok = true; + format = "hsv"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { + s = convertToPercentage(color.s); + l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, s, l); + ok = true; + format = "hsl"; + } + + if (color.hasOwnProperty("a")) { + a = color.a; + } + } + + a = boundAlpha(a); + + return { + ok: ok, + format: color.format || format, + r: mathMin(255, mathMax(rgb.r, 0)), + g: mathMin(255, mathMax(rgb.g, 0)), + b: mathMin(255, mathMax(rgb.b, 0)), + a: a + }; +} + + +// Conversion Functions +// -------------------- + +// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: +// + +// `rgbToRgb` +// Handle bounds / percentage checking to conform to CSS color spec +// +// *Assumes:* r, g, b in [0, 255] or [0, 1] +// *Returns:* { r, g, b } in [0, 255] +function rgbToRgb(r, g, b){ + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; +} + +// `rgbToHsl` +// Converts an RGB color value to HSL. +// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] +// *Returns:* { h, s, l } in [0,1] +function rgbToHsl(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, l = (max + min) / 2; + + if(max == min) { + h = s = 0; // achromatic + } + else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + + h /= 6; + } + + return { h: h, s: s, l: l }; +} + +// `hslToRgb` +// Converts an HSL color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] +function hslToRgb(h, s, l) { + var r, g, b; + + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + + function hue2rgb(p, q, t) { + if(t < 0) t += 1; + if(t > 1) t -= 1; + if(t < 1/6) return p + (q - p) * 6 * t; + if(t < 1/2) return q; + if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; + return p; + } + + if(s === 0) { + r = g = b = l; // achromatic + } + else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1/3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1/3); + } + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// `rgbToHsv` +// Converts an RGB color value to HSV +// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] +// *Returns:* { h, s, v } in [0,1] +function rgbToHsv(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, v = max; + + var d = max - min; + s = max === 0 ? 0 : d / max; + + if(max == min) { + h = 0; // achromatic + } + else { + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + return { h: h, s: s, v: v }; +} + +// `hsvToRgb` +// Converts an HSV color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] + function hsvToRgb(h, s, v) { + + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + + var i = Math.floor(h), + f = h - i, + p = v * (1 - s), + q = v * (1 - f * s), + t = v * (1 - (1 - f) * s), + mod = i % 6, + r = [v, q, p, p, t, v][mod], + g = [t, v, v, q, p, p][mod], + b = [p, p, t, v, v, q][mod]; + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// `rgbToHex` +// Converts an RGB color to hex +// Assumes r, g, and b are contained in the set [0, 255] +// Returns a 3 or 6 character hex +function rgbToHex(r, g, b, allow3Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + // Return a 3 character hex if possible + if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + } + + return hex.join(""); +} + +// `rgbaToHex` +// Converts an RGBA color plus alpha transparency to hex +// Assumes r, g, b are contained in the set [0, 255] and +// a in [0, 1]. Returns a 4 or 8 character rgba hex +function rgbaToHex(r, g, b, a, allow4Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)), + pad2(convertDecimalToHex(a)) + ]; + + // Return a 4 character hex if possible + if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); + } + + return hex.join(""); +} + +// `rgbaToArgbHex` +// Converts an RGBA color to an ARGB Hex8 string +// Rarely used, but required for "toFilter()" +function rgbaToArgbHex(r, g, b, a) { + + var hex = [ + pad2(convertDecimalToHex(a)), + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + return hex.join(""); +} + +// `equals` +// Can be called with any tinycolor input +tinycolor.equals = function (color1, color2) { + if (!color1 || !color2) { return false; } + return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); +}; + +tinycolor.random = function() { + return tinycolor.fromRatio({ + r: mathRandom(), + g: mathRandom(), + b: mathRandom() + }); +}; + + +// Modification Functions +// ---------------------- +// Thanks to less.js for some of the basics here +// + +function desaturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function saturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function greyscale(color) { + return tinycolor(color).desaturate(100); +} + +function lighten (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +function brighten(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var rgb = tinycolor(color).toRgb(); + rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100)))); + rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100)))); + rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100)))); + return tinycolor(rgb); +} + +function darken (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. +// Values outside of this range will be wrapped into this range. +function spin(color, amount) { + var hsl = tinycolor(color).toHsl(); + var hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return tinycolor(hsl); +} + +// Combination Functions +// --------------------- +// Thanks to jQuery xColor for some of the ideas behind these +// + +function complement(color) { + var hsl = tinycolor(color).toHsl(); + hsl.h = (hsl.h + 180) % 360; + return tinycolor(hsl); +} + +function triad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function tetrad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function splitcomplement(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), + tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) + ]; +} + +function analogous(color, results, slices) { + results = results || 6; + slices = slices || 30; + + var hsl = tinycolor(color).toHsl(); + var part = 360 / slices; + var ret = [tinycolor(color)]; + + for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { + hsl.h = (hsl.h + part) % 360; + ret.push(tinycolor(hsl)); + } + return ret; +} + +function monochromatic(color, results) { + results = results || 6; + var hsv = tinycolor(color).toHsv(); + var h = hsv.h, s = hsv.s, v = hsv.v; + var ret = []; + var modification = 1 / results; + + while (results--) { + ret.push(tinycolor({ h: h, s: s, v: v})); + v = (v + modification) % 1; + } + + return ret; +} + +// Utility Functions +// --------------------- + +tinycolor.mix = function(color1, color2, amount) { + amount = (amount === 0) ? 0 : (amount || 50); + + var rgb1 = tinycolor(color1).toRgb(); + var rgb2 = tinycolor(color2).toRgb(); + + var p = amount / 100; + + var rgba = { + r: ((rgb2.r - rgb1.r) * p) + rgb1.r, + g: ((rgb2.g - rgb1.g) * p) + rgb1.g, + b: ((rgb2.b - rgb1.b) * p) + rgb1.b, + a: ((rgb2.a - rgb1.a) * p) + rgb1.a + }; + + return tinycolor(rgba); +}; + + +// Readability Functions +// --------------------- +// false +// tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false +tinycolor.isReadable = function(color1, color2, wcag2) { + var readability = tinycolor.readability(color1, color2); + var wcag2Parms, out; + + out = false; + + wcag2Parms = validateWCAG2Parms(wcag2); + switch (wcag2Parms.level + wcag2Parms.size) { + case "AAsmall": + case "AAAlarge": + out = readability >= 4.5; + break; + case "AAlarge": + out = readability >= 3; + break; + case "AAAsmall": + out = readability >= 7; + break; + } + return out; + +}; + +// `mostReadable` +// Given a base color and a list of possible foreground or background +// colors for that base, returns the most readable color. +// Optionally returns Black or White if the most readable color is unreadable. +// *Example* +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff" +tinycolor.mostReadable = function(baseColor, colorList, args) { + var bestColor = null; + var bestScore = 0; + var readability; + var includeFallbackColors, level, size ; + args = args || {}; + includeFallbackColors = args.includeFallbackColors ; + level = args.level; + size = args.size; + + for (var i= 0; i < colorList.length ; i++) { + readability = tinycolor.readability(baseColor, colorList[i]); + if (readability > bestScore) { + bestScore = readability; + bestColor = tinycolor(colorList[i]); + } + } + + if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) { + return bestColor; + } + else { + args.includeFallbackColors=false; + return tinycolor.mostReadable(baseColor,["#fff", "#000"],args); + } +}; + + +// Big List of Colors +// ------------------ +// +var names = tinycolor.names = { + aliceblue: "f0f8ff", + antiquewhite: "faebd7", + aqua: "0ff", + aquamarine: "7fffd4", + azure: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "000", + blanchedalmond: "ffebcd", + blue: "00f", + blueviolet: "8a2be2", + brown: "a52a2a", + burlywood: "deb887", + burntsienna: "ea7e5d", + cadetblue: "5f9ea0", + chartreuse: "7fff00", + chocolate: "d2691e", + coral: "ff7f50", + cornflowerblue: "6495ed", + cornsilk: "fff8dc", + crimson: "dc143c", + cyan: "0ff", + darkblue: "00008b", + darkcyan: "008b8b", + darkgoldenrod: "b8860b", + darkgray: "a9a9a9", + darkgreen: "006400", + darkgrey: "a9a9a9", + darkkhaki: "bdb76b", + darkmagenta: "8b008b", + darkolivegreen: "556b2f", + darkorange: "ff8c00", + darkorchid: "9932cc", + darkred: "8b0000", + darksalmon: "e9967a", + darkseagreen: "8fbc8f", + darkslateblue: "483d8b", + darkslategray: "2f4f4f", + darkslategrey: "2f4f4f", + darkturquoise: "00ced1", + darkviolet: "9400d3", + deeppink: "ff1493", + deepskyblue: "00bfff", + dimgray: "696969", + dimgrey: "696969", + dodgerblue: "1e90ff", + firebrick: "b22222", + floralwhite: "fffaf0", + forestgreen: "228b22", + fuchsia: "f0f", + gainsboro: "dcdcdc", + ghostwhite: "f8f8ff", + gold: "ffd700", + goldenrod: "daa520", + gray: "808080", + green: "008000", + greenyellow: "adff2f", + grey: "808080", + honeydew: "f0fff0", + hotpink: "ff69b4", + indianred: "cd5c5c", + indigo: "4b0082", + ivory: "fffff0", + khaki: "f0e68c", + lavender: "e6e6fa", + lavenderblush: "fff0f5", + lawngreen: "7cfc00", + lemonchiffon: "fffacd", + lightblue: "add8e6", + lightcoral: "f08080", + lightcyan: "e0ffff", + lightgoldenrodyellow: "fafad2", + lightgray: "d3d3d3", + lightgreen: "90ee90", + lightgrey: "d3d3d3", + lightpink: "ffb6c1", + lightsalmon: "ffa07a", + lightseagreen: "20b2aa", + lightskyblue: "87cefa", + lightslategray: "789", + lightslategrey: "789", + lightsteelblue: "b0c4de", + lightyellow: "ffffe0", + lime: "0f0", + limegreen: "32cd32", + linen: "faf0e6", + magenta: "f0f", + maroon: "800000", + mediumaquamarine: "66cdaa", + mediumblue: "0000cd", + mediumorchid: "ba55d3", + mediumpurple: "9370db", + mediumseagreen: "3cb371", + mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", + mediumturquoise: "48d1cc", + mediumvioletred: "c71585", + midnightblue: "191970", + mintcream: "f5fffa", + mistyrose: "ffe4e1", + moccasin: "ffe4b5", + navajowhite: "ffdead", + navy: "000080", + oldlace: "fdf5e6", + olive: "808000", + olivedrab: "6b8e23", + orange: "ffa500", + orangered: "ff4500", + orchid: "da70d6", + palegoldenrod: "eee8aa", + palegreen: "98fb98", + paleturquoise: "afeeee", + palevioletred: "db7093", + papayawhip: "ffefd5", + peachpuff: "ffdab9", + peru: "cd853f", + pink: "ffc0cb", + plum: "dda0dd", + powderblue: "b0e0e6", + purple: "800080", + rebeccapurple: "663399", + red: "f00", + rosybrown: "bc8f8f", + royalblue: "4169e1", + saddlebrown: "8b4513", + salmon: "fa8072", + sandybrown: "f4a460", + seagreen: "2e8b57", + seashell: "fff5ee", + sienna: "a0522d", + silver: "c0c0c0", + skyblue: "87ceeb", + slateblue: "6a5acd", + slategray: "708090", + slategrey: "708090", + snow: "fffafa", + springgreen: "00ff7f", + steelblue: "4682b4", + tan: "d2b48c", + teal: "008080", + thistle: "d8bfd8", + tomato: "ff6347", + turquoise: "40e0d0", + violet: "ee82ee", + wheat: "f5deb3", + white: "fff", + whitesmoke: "f5f5f5", + yellow: "ff0", + yellowgreen: "9acd32" +}; + +// Make it easy to access colors via `hexNames[hex]` +var hexNames = tinycolor.hexNames = flip(names); + + +// Utilities +// --------- + +// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` +function flip(o) { + var flipped = { }; + for (var i in o) { + if (o.hasOwnProperty(i)) { + flipped[o[i]] = i; + } + } + return flipped; +} + +// Return a valid alpha value [0,1] with all invalid values being set to 1 +function boundAlpha(a) { + a = parseFloat(a); + + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + + return a; +} + +// Take input from [0, n] and return it as [0, 1] +function bound01(n, max) { + if (isOnePointZero(n)) { n = "100%"; } + + var processPercent = isPercentage(n); + n = mathMin(max, mathMax(0, parseFloat(n))); + + // Automatically convert percentage into number + if (processPercent) { + n = parseInt(n * max, 10) / 100; + } + + // Handle floating point rounding errors + if ((Math.abs(n - max) < 0.000001)) { + return 1; + } + + // Convert into [0, 1] range if it isn't already + return (n % max) / parseFloat(max); +} + +// Force a number between 0 and 1 +function clamp01(val) { + return mathMin(1, mathMax(0, val)); +} + +// Parse a base-16 hex value into a base-10 integer +function parseIntFromHex(val) { + return parseInt(val, 16); +} + +// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 +// +function isOnePointZero(n) { + return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; +} + +// Check to see if string passed in is a percentage +function isPercentage(n) { + return typeof n === "string" && n.indexOf('%') != -1; +} + +// Force a hex value to have 2 characters +function pad2(c) { + return c.length == 1 ? '0' + c : '' + c; +} + +// Replace a decimal with it's percentage value +function convertToPercentage(n) { + if (n <= 1) { + n = (n * 100) + "%"; + } + + return n; +} + +// Converts a decimal to a hex value +function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); +} +// Converts a hex value to a decimal +function convertHexToDecimal(h) { + return (parseIntFromHex(h) / 255); +} + +var matchers = (function() { + + // + var CSS_INTEGER = "[-\\+]?\\d+%?"; + + // + var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; + + // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. + var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; + + // Actual matching. + // Parentheses and commas are optional, but not required. + // Whitespace can take the place of commas or opening paren + var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + + return { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + }; +})(); + +// `isValidCSSUnit` +// Take in a single string / number and check to see if it looks like a CSS unit +// (see `matchers` above for definition). +function isValidCSSUnit(color) { + return !!matchers.CSS_UNIT.exec(color); +} + +// `stringInputToObject` +// Permissive string parsing. Take in a number of formats, and output an object +// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` +function stringInputToObject(color) { + + color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase(); + var named = false; + if (names[color]) { + color = names[color]; + named = true; + } + else if (color == 'transparent') { + return { r: 0, g: 0, b: 0, a: 0, format: "name" }; + } + + // Try to match string input using regular expressions. + // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] + // Just return an object and let the conversion functions handle that. + // This way the result will be the same whether the tinycolor is initialized with string or object. + var match; + if ((match = matchers.rgb.exec(color))) { + return { r: match[1], g: match[2], b: match[3] }; + } + if ((match = matchers.rgba.exec(color))) { + return { r: match[1], g: match[2], b: match[3], a: match[4] }; + } + if ((match = matchers.hsl.exec(color))) { + return { h: match[1], s: match[2], l: match[3] }; + } + if ((match = matchers.hsla.exec(color))) { + return { h: match[1], s: match[2], l: match[3], a: match[4] }; + } + if ((match = matchers.hsv.exec(color))) { + return { h: match[1], s: match[2], v: match[3] }; + } + if ((match = matchers.hsva.exec(color))) { + return { h: match[1], s: match[2], v: match[3], a: match[4] }; + } + if ((match = matchers.hex8.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex6.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + } + if ((match = matchers.hex4.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + a: convertHexToDecimal(match[4] + '' + match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex3.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + format: named ? "name" : "hex" + }; + } + + return false; +} + +function validateWCAG2Parms(parms) { + // return valid WCAG2 parms for isReadable. + // If input parms are invalid, return {"level":"AA", "size":"small"} + var level, size; + parms = parms || {"level":"AA", "size":"small"}; + level = (parms.level || "AA").toUpperCase(); + size = (parms.size || "small").toLowerCase(); + if (level !== "AA" && level !== "AAA") { + level = "AA"; + } + if (size !== "small" && size !== "large") { + size = "small"; + } + return {"level":level, "size":size}; +} + +// Node: Export function +if (typeof module !== "undefined" && module.exports) { + module.exports = tinycolor; +} +// AMD/requirejs: Define the module +else if (typeof define === 'function' && define.amd) { + define(function () {return tinycolor;}); +} +// Browser: Expose to window +else { + window.tinycolor = tinycolor; +} + +})(Math); + +},{}],368:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.trimCanvas=t():e.trimCanvas=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t){"use strict";function r(e){var t=e.getContext("2d"),r=e.width,n=e.height,o=t.getImageData(0,0,r,n).data,f=a(!0,r,n,o),i=a(!1,r,n,o),c=u(!0,r,n,o),d=u(!1,r,n,o),p=d-c+1,l=i-f+1,s=t.getImageData(c,f,p,l);return e.width=p,e.height=l,t.clearRect(0,0,p,l),t.putImageData(s,0,0),e}function n(e,t,r,n){return{red:n[4*(r*t+e)],green:n[4*(r*t+e)+1],blue:n[4*(r*t+e)+2],alpha:n[4*(r*t+e)+3]}}function o(e,t,r,o){return n(e,t,r,o).alpha}function a(e,t,r,n){for(var a=e?1:-1,u=e?0:r-1,f=u;e?f-1;f+=a)for(var i=0;i-1;f+=a)for(var i=0;i','\x20new\x20notifications','url','css','getTimezoneOffset','#_time_#',',left=','.notificationTime','May','./RequestCache','remove','February','notification','round','width','getFullYear','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','https://www.facebook.com/sharer/sharer.php?u=','key','open','July','timeUtils','getKey','#_fromName_#','substring','clearPendingNotifications','length','abs','configurable','templates','split','getMinutes',',top=','title','find','April','function','100%','parse','getUTCFullYear','html','setupTimeUtils',',height=','getHours','./Notifications','status','data','invalidateTable','#_url_#','width=550,height=260,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=200,top=200','#_notifications_#','__esModule','&url=','slimscroll','You\x20have\x20no\x20new\x20notifications','each','attr','\x20new\x20notification','defineProperty','Share\x20on\x20Google','message'];(function(_0x5a6e1d,_0x1b3c1d){var _0x2aa244=function(_0xfa9021){while(--_0xfa9021){_0x5a6e1d['push'](_0x5a6e1d['shift']());}};_0x2aa244(++_0x1b3c1d);}(_0x1b3c,0xd9));var _0x2aa2=function(_0x5a6e1d,_0x1b3c1d){_0x5a6e1d=_0x5a6e1d-0x0;var _0x2aa244=_0x1b3c[_0x5a6e1d];return _0x2aa244;};!function e(_0xfa9021,_0x1950c3,_0x66929){var _0x47797d=_0x2aa2;function _0x4bb56c(_0x1e09bc,_0x5b559b){var _0x37fad9=_0x2aa2;if(!_0x1950c3[_0x1e09bc]){if(!_0xfa9021[_0x1e09bc]){var _0x170eeb=_0x37fad9('0xc')==typeof require&&require;if(!_0x5b559b&&_0x170eeb)return _0x170eeb(_0x1e09bc,!0x0);if(_0x3db400)return _0x3db400(_0x1e09bc,!0x0);var _0x13c1a6=new Error('Cannot\x20find\x20module\x20\x27'+_0x1e09bc+'\x27');throw _0x13c1a6['code']='MODULE_NOT_FOUND',_0x13c1a6;}var _0x35818c=_0x1950c3[_0x1e09bc]={'exports':{}};_0xfa9021[_0x1e09bc][0x0][_0x37fad9('0x63')](_0x35818c[_0x37fad9('0x36')],function(_0x399d3b){return _0x4bb56c(_0xfa9021[_0x1e09bc][0x1][_0x399d3b]||_0x399d3b);},_0x35818c,_0x35818c[_0x37fad9('0x36')],e,_0xfa9021,_0x1950c3,_0x66929);}return _0x1950c3[_0x1e09bc]['exports'];}for(var _0x3db400=_0x47797d('0xc')==typeof require&&require,_0x1b17e6=0x0;_0x1b17e6<_0x66929[_0x47797d('0x2')];_0x1b17e6++)_0x4bb56c(_0x66929[_0x1b17e6]);return _0x4bb56c;}({0x1:[function(_0x3225ab,_0x3bcc87,_0x5baf6f){var _0x208e2b=_0x2aa2;'use strict';function _0x1440d4(_0x2a16b9,_0x2c0b16){var _0x439bbf=_0x2aa2;for(var _0x139877=0x0;_0x139877<_0x2c0b16[_0x439bbf('0x2')];_0x139877++){var _0x3a287d=_0x2c0b16[_0x139877];_0x3a287d[_0x439bbf('0x5f')]=_0x3a287d[_0x439bbf('0x5f')]||!0x1,_0x3a287d[_0x439bbf('0x4')]=!0x0,_0x439bbf('0x48')in _0x3a287d&&(_0x3a287d[_0x439bbf('0x50')]=!0x0),Object[_0x439bbf('0x22')](_0x2a16b9,_0x3a287d[_0x439bbf('0x79')],_0x3a287d);}}Object[_0x208e2b('0x22')](_0x5baf6f,'__esModule',{'value':!0x0}),_0x5baf6f[_0x208e2b('0x47')]=void 0x0;var _0x36849f=function(){var _0x5bac5e=_0x208e2b;function _0x3e687e(){var _0x257670=_0x2aa2;!function(_0x1fe4dc,_0x1a5b6d){var _0x21e598=_0x2aa2;if(!(_0x1fe4dc instanceof _0x1a5b6d))throw new TypeError(_0x21e598('0x77'));}(this,_0x3e687e),this[_0x257670('0x2b')]='',this['templates']={};}var _0x485acd,_0x49c71d,_0xf8bea1;return _0x485acd=_0x3e687e,(_0x49c71d=[{'key':'setBaseUrl','value':function(_0x4cef8e){var _0x17ec69=_0x2aa2;this[_0x17ec69('0x2b')]=_0x4cef8e;}},{'key':_0x5bac5e('0x3a'),'value':function(_0x4ba35e){var _0xd51a27=_0x5bac5e;this[_0xd51a27('0x5')]=_0x4ba35e;}},{'key':_0x5bac5e('0x3b'),'value':function(_0x3b9f76){var _0xc56532=_0x5bac5e;this[_0xc56532('0x7c')]=_0x3b9f76;}},{'key':'getNotifications','value':function(_0x48a29b,_0xf4fe6a){var _0x140d0c=_0x5bac5e,_0x269e46=this;$[_0x140d0c('0x59')](this[_0x140d0c('0x2b')],{'a':'getNotifications'},function(_0x3ccaf5){var _0x2e5b21=_0x140d0c;_0x2e5b21('0x49')===_0x3ccaf5[_0x2e5b21('0x15')]&&_0x269e46[_0x2e5b21('0x2e')](_0x3ccaf5[_0x2e5b21('0x16')][0x1],_0x3ccaf5['data'][0x0]);});}},{'key':_0x5bac5e('0x1'),'value':function(_0x57c47c,_0x35855e){var _0x1a8609=_0x5bac5e;$[_0x1a8609('0x59')](this[_0x1a8609('0x2b')],{'a':'clearNotifications'},function(_0x369024){});}},{'key':'renderNotifications','value':function(_0x554b43,_0x4cb094){var _0x5e5452=_0x5bac5e;if(0x0!==_0x554b43['length']){var _0xa2b52d=this[_0x5e5452('0x5')]['notifications'];_0x4cb094>0x0?(_0xa2b52d=_0xa2b52d['replace'](_0x5e5452('0x2a'),_0x4cb094),_0xa2b52d=_0x4cb094>0x1?_0xa2b52d['replace'](_0x5e5452('0x34'),'You\x20have\x20'['concat'](_0x4cb094,_0x5e5452('0x68'))):_0xa2b52d[_0x5e5452('0x43')](_0x5e5452('0x34'),'You\x20have\x20'[_0x5e5452('0x51')](_0x4cb094,_0x5e5452('0x21')))):_0xa2b52d=(_0xa2b52d=_0xa2b52d['replace'](_0x5e5452('0x2a'),''))[_0x5e5452('0x43')](_0x5e5452('0x34'),_0x5e5452('0x1e'));var _0x2f434b='';for(var _0x4dacf1 in _0x554b43)_0x2f434b+=this[_0x5e5452('0x2c')](_0x554b43[_0x4dacf1]);_0xa2b52d=_0xa2b52d[_0x5e5452('0x43')](_0x5e5452('0x1a'),_0x2f434b);var _0x3eea4f=$(_0xa2b52d);0x0===_0x4cb094&&_0x3eea4f[_0x5e5452('0xa')](_0x5e5452('0x61'))[_0x5e5452('0x71')](),_0x3eea4f[_0x5e5452('0x20')]('id',_0x5e5452('0x5a')),$(_0x5e5452('0x41'))['replaceWith'](_0x3eea4f),$(_0x5e5452('0x46'))[_0x5e5452('0x1d')]({'height':_0x5e5452('0x62'),'alwaysVisible':!0x1,'size':_0x5e5452('0x45')})[_0x5e5452('0x6a')]('width',_0x5e5452('0xd')),this['timeUtils'][_0x5e5452('0x2f')]($(_0x5e5452('0x6e')));}}},{'key':_0x5bac5e('0x2c'),'value':function(_0x33cdc3){var _0x4cd06b=_0x5bac5e,_0x1066b5=this['templates'][_0x4cd06b('0x73')];_0x1066b5=_0x1066b5[_0x4cd06b('0x43')](_0x4cd06b('0x32'),_0x33cdc3[_0x4cd06b('0x53')]);try{var _0x5dfcb8=JSON[_0x4cd06b('0xe')](_0x33cdc3[_0x4cd06b('0x58')]);_0x1066b5=_0x1066b5[_0x4cd06b('0x43')]('#_url_#',this[_0x4cd06b('0x2b')][_0x4cd06b('0x43')](_0x4cd06b('0x4a'),'?')+_0x5dfcb8[_0x4cd06b('0x69')]);}catch(_0x16f180){_0x1066b5=_0x1066b5[_0x4cd06b('0x43')](_0x4cd06b('0x18'),'');}return _0x1066b5=(_0x1066b5=(_0x1066b5=_0x1066b5[_0x4cd06b('0x43')](_0x4cd06b('0x6c'),_0x33cdc3['time']))[_0x4cd06b('0x43')](_0x4cd06b('0x7e'),_0x33cdc3[_0x4cd06b('0x3c')]))[_0x4cd06b('0x43')](_0x4cd06b('0x4c'),this[_0x4cd06b('0x2d')](_0x33cdc3[_0x4cd06b('0x24')],0x1b));}},{'key':_0x5bac5e('0x2d'),'value':function(_0x2ebc9d,_0x183620){var _0xc01513=_0x5bac5e,_0x171854='';try{for(var _0x6dc3db=_0x2ebc9d[_0xc01513('0x6')]('\x20'),_0x273b76=0x0,_0x96df98=0x0;_0x96df98<_0x6dc3db[_0xc01513('0x2')];_0x96df98++)(_0x273b76+=_0x6dc3db[_0x96df98][_0xc01513('0x2')]+0x1)>_0x183620?(_0x171854+=''['concat'](_0x6dc3db[_0x96df98],_0xc01513('0x67')),_0x273b76=0x0):_0x171854+=''['concat'](_0x6dc3db[_0x96df98],'\x20');}catch(_0x34ed6b){}return _0x171854;}}])&&_0x1440d4(_0x485acd[_0x5bac5e('0x38')],_0x49c71d),_0xf8bea1&&_0x1440d4(_0x485acd,_0xf8bea1),_0x3e687e;}();_0x5baf6f[_0x208e2b('0x47')]=_0x36849f;},{}],0x2:[function(_0x41587f,_0x300be4,_0x5eb6c2){var _0x3c3bd9=_0x2aa2;'use strict';function _0x55bb0b(_0x2c8ea2,_0x4efab0){if(!(_0x2c8ea2 instanceof _0x4efab0))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x3c8d87(_0xd790d1,_0x4d6903){var _0x3d5a30=_0x2aa2;for(var _0x5a0ddc=0x0;_0x5a0ddc<_0x4d6903[_0x3d5a30('0x2')];_0x5a0ddc++){var _0x1af13e=_0x4d6903[_0x5a0ddc];_0x1af13e[_0x3d5a30('0x5f')]=_0x1af13e[_0x3d5a30('0x5f')]||!0x1,_0x1af13e[_0x3d5a30('0x4')]=!0x0,_0x3d5a30('0x48')in _0x1af13e&&(_0x1af13e['writable']=!0x0),Object[_0x3d5a30('0x22')](_0xd790d1,_0x1af13e[_0x3d5a30('0x79')],_0x1af13e);}}function _0x310d88(_0x42437c,_0x4eb40f,_0x2485ec){return _0x4eb40f&&_0x3c8d87(_0x42437c['prototype'],_0x4eb40f),_0x2485ec&&_0x3c8d87(_0x42437c,_0x2485ec),_0x42437c;}Object[_0x3c3bd9('0x22')](_0x5eb6c2,'__esModule',{'value':!0x0}),_0x5eb6c2[_0x3c3bd9('0x47')]=void 0x0;var _0x3e0fff=function(){var _0xc39ce8=_0x3c3bd9;function _0xc97896(){var _0x364aad=_0x2aa2;_0x55bb0b(this,_0xc97896),this[_0x364aad('0x16')]={};}return _0x310d88(_0xc97896,[{'key':_0xc39ce8('0x54'),'value':function(_0x5b861d){var _0x321c36=_0xc39ce8;return this[_0x321c36('0x16')][_0x5b861d];}},{'key':'setItem','value':function(_0x47261e,_0x5aff84){var _0x44b1f8=_0xc39ce8;this[_0x44b1f8('0x16')][_0x47261e]=_0x5aff84;}},{'key':_0xc39ce8('0x26'),'value':function(_0x46bf5b){var _0x25b479=_0xc39ce8;for(var _0x206a75=Object['keys'](this[_0x25b479('0x16')]),_0x105f98=0x0;_0x105f98<_0x206a75[_0x25b479('0x2')];_0x105f98++)_0x206a75[_0x105f98][_0x25b479('0x55')](_0x46bf5b)>0x0&&delete this[_0x25b479('0x16')][_0x206a75[_0x105f98]];}}]),_0xc97896;}(),_0x1d8bc9=function(){var _0x3ea639=_0x3c3bd9;function _0xde75ce(_0x2a84e1){var _0x4e3cd0=_0x2aa2;_0x55bb0b(this,_0xde75ce),this[_0x4e3cd0('0x64')]=_0x2a84e1||new _0x3e0fff();}return _0x310d88(_0xde75ce,[{'key':_0x3ea639('0x7d'),'value':function(_0x1c42fb,_0x408960){var _0x3437d6=_0x3ea639,_0x50aca4=''[_0x3437d6('0x51')](_0x1c42fb,'|');for(var _0x103947 in _0x408960)_0x50aca4+=''['concat'](_0x103947,'=')[_0x3437d6('0x51')](_0x408960[_0x103947],'|');return _0x50aca4;}},{'key':_0x3ea639('0x17'),'value':function(_0x1e6a6a){var _0x1db7d0=_0x3ea639;this['storage'][_0x1db7d0('0x26')]('t='[_0x1db7d0('0x51')](_0x1e6a6a));}},{'key':_0x3ea639('0x27'),'value':function(_0x384df6){var _0x283826=_0x3ea639,_0xe433dc=this[_0x283826('0x64')][_0x283826('0x54')](_0x384df6);return _0xe433dc||null;}},{'key':_0x3ea639('0x33'),'value':function(_0x2c646e,_0x2605a7){var _0x2c5539=_0x3ea639;return void 0x0!==_0x2605a7['status']&&null!=_0x2605a7[_0x2c5539('0x15')]&&_0x2c5539('0x49')!==_0x2605a7[_0x2c5539('0x15')]?null:(this[_0x2c5539('0x64')][_0x2c5539('0x44')](_0x2c646e,_0x2605a7),_0x2605a7);}}]),_0xde75ce;}();_0x5eb6c2[_0x3c3bd9('0x47')]=_0x1d8bc9;},{}],0x3:[function(_0x6fe47b,_0x124402,_0x5b70ac){var _0xae27af=_0x2aa2;'use strict';Object[_0xae27af('0x22')](_0x5b70ac,_0xae27af('0x1b'),{'value':!0x0}),_0x5b70ac[_0xae27af('0x47')]=void 0x0;var _0x3b6e3d={'facebook':function(_0x1ae85f){var _0x38679f=_0xae27af,_0x4cd121=screen[_0x38679f('0x75')]/0x2-0x15e,_0x5ae8fa=screen[_0x38679f('0x56')]/0x2-0xfa;return _0x1ae85f=_0x38679f('0x78')[_0x38679f('0x51')](encodeURIComponent(_0x1ae85f)),window[_0x38679f('0x7a')](_0x1ae85f,'Share\x20on\x20Facebook',_0x38679f('0x4d')[_0x38679f('0x51')](0x2bc,_0x38679f('0x12'))[_0x38679f('0x51')](0x1f4,',left=')[_0x38679f('0x51')](_0x4cd121,_0x38679f('0x8'))[_0x38679f('0x51')](_0x5ae8fa)),!0x1;},'google':function(_0x51db99){var _0x47fc14=_0xae27af,_0xd64bd0=screen[_0x47fc14('0x75')]/0x2-0xfa,_0x38ac37=screen[_0x47fc14('0x56')]/0x2-0xfa;return _0x51db99='https://plus.google.com/share?url='[_0x47fc14('0x51')](encodeURIComponent(_0x51db99)),window[_0x47fc14('0x7a')](_0x51db99,_0x47fc14('0x23'),'width='[_0x47fc14('0x51')](0x1f4,_0x47fc14('0x12'))[_0x47fc14('0x51')](0x1f4,_0x47fc14('0x6d'))['concat'](_0xd64bd0,',top=')[_0x47fc14('0x51')](_0x38ac37)),!0x1;},'linkedin':function(_0x1297fb){var _0x153e93=_0xae27af,_0xec7f99=screen[_0x153e93('0x75')]/0x2-0xfa,_0x5593da=screen[_0x153e93('0x56')]/0x2-0xfa;return _0x1297fb=_0x153e93('0x3f')['concat'](encodeURIComponent(_0x1297fb)),window[_0x153e93('0x7a')](_0x1297fb,_0x153e93('0x60'),'width='[_0x153e93('0x51')](0x1f4,',height=')[_0x153e93('0x51')](0x1f4,',left=')[_0x153e93('0x51')](_0xec7f99,_0x153e93('0x8'))[_0x153e93('0x51')](_0x5593da)),!0x1;},'twitter':function(_0x305b1f,_0x263347){var _0x136265=_0xae27af;return window[_0x136265('0x7a')]('http://twitter.com/share?text='['concat'](escape(_0x263347),_0x136265('0x1c'))['concat'](escape(_0x305b1f)),_0x136265('0x39'),_0x136265('0x19')),!0x1;}};_0x5b70ac[_0xae27af('0x47')]=_0x3b6e3d;},{}],0x4:[function(_0x12e1c1,_0x430e2f,_0x15c14f){var _0xe6764c=_0x2aa2;'use strict';function _0x4e3531(_0x51a26b,_0x4d02e8){var _0x181e64=_0x2aa2;for(var _0x2c3d4d=0x0;_0x2c3d4d<_0x4d02e8[_0x181e64('0x2')];_0x2c3d4d++){var _0x1202c3=_0x4d02e8[_0x2c3d4d];_0x1202c3[_0x181e64('0x5f')]=_0x1202c3['enumerable']||!0x1,_0x1202c3[_0x181e64('0x4')]=!0x0,_0x181e64('0x48')in _0x1202c3&&(_0x1202c3[_0x181e64('0x50')]=!0x0),Object['defineProperty'](_0x51a26b,_0x1202c3['key'],_0x1202c3);}}Object[_0xe6764c('0x22')](_0x15c14f,_0xe6764c('0x1b'),{'value':!0x0}),_0x15c14f['default']=void 0x0;var _0x535fd8=function(){var _0x59ab63=_0xe6764c;function _0xca9eb4(){!function(_0x480876,_0x3a6986){if(!(_0x480876 instanceof _0x3a6986))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0xca9eb4);}var _0x32b5b8,_0x257f20,_0x4c76dc;return _0x32b5b8=_0xca9eb4,(_0x257f20=[{'key':_0x59ab63('0x4e'),'value':function(_0x1522d4){var _0x1951c6=_0x59ab63;this[_0x1951c6('0x3d')]=_0x1522d4;}},{'key':'getMySQLFormatDate','value':function(_0x4301dd){var _0x4b0e68=_0x59ab63,_0x3fa709=function(_0x1f4605){return _0x1f4605<0xa?'0'['concat'](_0x1f4605):_0x1f4605;};return''['concat'](_0x4301dd[_0x4b0e68('0xf')](),'-')[_0x4b0e68('0x51')](_0x3fa709(_0x4301dd[_0x4b0e68('0x31')]()+0x1),'-')[_0x4b0e68('0x51')](_0x3fa709(_0x4301dd[_0x4b0e68('0x4b')]()));}},{'key':'convertToRelativeTime','value':function(_0x5a5392){var _0x30ce01=_0x59ab63,_0x5a325e=function(_0x3261e0,_0x116c72){var _0x1431e0=_0x2aa2,_0x5832b2='am',_0x24134c=_0x3261e0;_0x24134c>=0xc&&(_0x5832b2='pm',_0x24134c>0xc&&(_0x24134c-=0xc));var _0x417f0c='';_0x116c72<0xa&&(_0x417f0c='0');var _0x4478f5='';return 0x0===_0x3261e0&&(_0x4478f5='0'),'\x20at\x20'['concat'](_0x4478f5)[_0x1431e0('0x51')](_0x24134c,':')['concat'](_0x417f0c)[_0x1431e0('0x51')](_0x116c72)[_0x1431e0('0x51')](_0x5832b2);},_0x56f0b0=new Date(),_0x369db8=['January',_0x30ce01('0x72'),_0x30ce01('0x52'),_0x30ce01('0xb'),_0x30ce01('0x6f'),'June',_0x30ce01('0x7b'),_0x30ce01('0x29'),_0x30ce01('0x5c'),'October','November',_0x30ce01('0x4f')],_0x2a71d5=[_0x30ce01('0x5b'),_0x30ce01('0x65'),_0x30ce01('0x5e'),_0x30ce01('0x57'),'Thursday',_0x30ce01('0x28'),_0x30ce01('0x5d')],_0x24baeb=0x3c*(this[_0x30ce01('0x3d')]- -new Date()[_0x30ce01('0x6b')]()/0x3c)*0x3c*0x3e8;_0x5a5392[_0x30ce01('0x1f')](function(){var _0x558e47=_0x30ce01;try{var _0x406ed4=$(this)[_0x558e47('0x10')]()[_0x558e47('0x6')]('\x20'),_0x553340=_0x406ed4[0x0],_0x5ed685=_0x406ed4[0x1],_0x3cf41f=_0x553340['split']('-'),_0xb414cb=_0x3cf41f[0x0],_0x405672=_0x3cf41f[0x1]-0x1,_0x5a32e4=_0x3cf41f[0x2],_0x42d9ae=_0x5ed685[_0x558e47('0x6')](':'),_0x44a967=_0x42d9ae[0x0],_0x1b3608=_0x42d9ae[0x1],_0x3d6026=_0x42d9ae[0x2],_0x1c3d4d=new Date(_0xb414cb,_0x405672,_0x5a32e4,_0x44a967,_0x1b3608,_0x3d6026)['getTime'](),_0x57439b=new Date(_0x1c3d4d-_0x24baeb),_0x1f9721=_0x57439b[_0x558e47('0x42')]('d'),_0x10a0ca=_0x57439b[_0x558e47('0x76')](),_0x288a66=_0x57439b[_0x558e47('0x13')](),_0x2300d1=_0x57439b[_0x558e47('0x7')](),_0x244d06=''[_0x558e47('0x51')](_0x2a71d5[_0x57439b[_0x558e47('0x37')]()],',\x20')['concat'](_0x369db8[_0x57439b[_0x558e47('0x25')]()],'\x20')[_0x558e47('0x51')](_0x1f9721,',\x20')[_0x558e47('0x51')](_0x10a0ca)[_0x558e47('0x51')](_0x5a325e(_0x288a66,_0x2300d1)),_0x58b058=(_0x56f0b0['getTime']()-_0x57439b['getTime']())/0x3e8,_0x1db130=Math[_0x558e47('0x3')](_0x58b058/0x3c),_0xc0c74d=Math[_0x558e47('0x3')](_0x58b058/0xe10),_0xffa665=Math[_0x558e47('0x3')](_0x58b058/0x15180),_0x4583dd=Math[_0x558e47('0x3')](_0x58b058/0x1e13380),_0x57bfa2='';if(_0xffa665>0x1)_0x57bfa2=''['concat'](_0x1f9721,'\x20')['concat'](_0x369db8[_0x57439b[_0x558e47('0x25')]()][_0x558e47('0x0')](0x0,0x3)),_0x4583dd>0x1&&(_0x57bfa2=''[_0x558e47('0x51')](_0x57bfa2,'\x20')[_0x558e47('0x51')](_0xb414cb)),_0x57bfa2+=_0x5a325e(_0x288a66,_0x2300d1);else{if(_0xc0c74d>=0x1){var _0x605f9d=Math['round'](_0xc0c74d);_0x57bfa2=0x1===_0x605f9d?_0x558e47('0x35'):''[_0x558e47('0x51')](_0x605f9d,'\x20hours\x20ago');}else{if(_0x1db130>=0x1){var _0x2c8137=Math[_0x558e47('0x74')](_0x1db130);_0x57bfa2=0x1===_0x2c8137?'about\x20a\x20minute\x20ago':''[_0x558e47('0x51')](_0x2c8137,'\x20minutes\x20ago');}else _0x1db130<0x1&&(_0x57bfa2=_0x558e47('0x3e'));}}$(this)[_0x558e47('0x10')](_0x57bfa2),$(this)[_0x558e47('0x20')](_0x558e47('0x9'),_0x244d06);}catch(_0x42eb30){}});}}])&&_0x4e3531(_0x32b5b8[_0x59ab63('0x38')],_0x257f20),_0x4c76dc&&_0x4e3531(_0x32b5b8,_0x4c76dc),_0xca9eb4;}();_0x15c14f[_0xe6764c('0x47')]=_0x535fd8;},{}],0x5:[function(_0x29e9cf,_0x19233d,_0x3afd2c){var _0x496982=_0x2aa2;'use strict';var _0x523933=_0x21909e(_0x29e9cf(_0x496982('0x14'))),_0xb401c6=_0x21909e(_0x29e9cf('./TimeUtils')),_0x551fb6=_0x21909e(_0x29e9cf(_0x496982('0x70'))),_0x112b30=_0x21909e(_0x29e9cf('./SocialShare'));function _0x21909e(_0x426339){var _0x1e7a96=_0x496982;return _0x426339&&_0x426339[_0x1e7a96('0x1b')]?_0x426339:{'default':_0x426339};}window['RequestCache']=_0x551fb6[_0x496982('0x47')],window[_0x496982('0x66')]=_0x112b30[_0x496982('0x47')],window[_0x496982('0x11')]=function(_0x199b6c){var _0x4d16e1=_0x496982,_0x2515fb=new _0xb401c6[(_0x4d16e1('0x47'))]();return _0x2515fb[_0x4d16e1('0x4e')](_0x199b6c),_0x2515fb;},window[_0x496982('0x30')]=function(_0x3a87ef){var _0x24103f=_0x496982,_0x5602a7=new _0x523933[(_0x24103f('0x47'))]();return _0x5602a7[_0x24103f('0x40')](_0x3a87ef),_0x5602a7[_0x24103f('0x3b')](timeUtils),_0x5602a7;};},{'./Notifications':0x1,'./RequestCache':0x2,'./SocialShare':0x3,'./TimeUtils':0x4}]},{},[0x5]); \ No newline at end of file +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0) { + t = t.replace('#_count_#', unreadCount); + + if (unreadCount > 1) { + t = t.replace('#_header_#', "You have ".concat(unreadCount, " new notifications")); + } else { + t = t.replace('#_header_#', "You have ".concat(unreadCount, " new notification")); + } + } else { + t = t.replace('#_count_#', ''); + t = t.replace('#_header_#', 'You have no new notifications'); + } + + var notificationStr = ''; + + for (var index in notifications) { + notificationStr += this.renderNotification(notifications[index]); + } + + t = t.replace('#_notifications_#', notificationStr); + var $obj = $(t); + + if (unreadCount === 0) { + $obj.find('.label-danger').remove(); + } + + $obj.attr('id', 'notifications'); + var k = $('#notifications'); + k.replaceWith($obj); + $('.navbar .menu').slimscroll({ + height: '320px', + alwaysVisible: false, + size: '3px' + }).css('width', '100%'); + this.timeUtils.convertToRelativeTime($('.notificationTime')); + } + }, { + key: "renderNotification", + value: function renderNotification(notification) { + var t = this.templates.notification; + t = t.replace('#_image_#', notification.image); + + try { + var json = JSON.parse(notification.action); + t = t.replace('#_url_#', this.baseUrl.replace('service.php', '?') + json.url); + } catch (e) { + t = t.replace('#_url_#', ''); + } + + t = t.replace('#_time_#', notification.time); + t = t.replace('#_fromName_#', notification.type); + t = t.replace('#_message_#', this.getLineBreakString(notification.message, 27)); + return t; + } + }, { + key: "getLineBreakString", + value: function getLineBreakString(str, len) { + var t = ''; + + try { + var arr = str.split(' '); + var count = 0; + + for (var i = 0; i < arr.length; i++) { + count += arr[i].length + 1; + + if (count > len) { + t += "".concat(arr[i], "
    "); + count = 0; + } else { + t += "".concat(arr[i], " "); + } + } + } catch (e) {// Do nothing + } + + return t; + } + }]); + + return NotificationManager; +}(); + +var _default = NotificationManager; +exports["default"] = _default; + +},{}],2:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ + +/** + * RequestCache + */ +var MemoryStorage = /*#__PURE__*/function () { + function MemoryStorage() { + _classCallCheck(this, MemoryStorage); + + this.data = {}; + } + + _createClass(MemoryStorage, [{ + key: "getItem", + value: function getItem(key) { + return this.data[key]; + } + }, { + key: "setItem", + value: function setItem(key, data) { + this.data[key] = data; + } + }, { + key: "removeAllByPrefix", + value: function removeAllByPrefix(prefix) { + var keys = Object.keys(this.data); + + for (var i = 0; i < keys.length; i++) { + if (keys[i].indexOf(prefix) > 0) { + delete this.data[keys[i]]; + } + } + } + }]); + + return MemoryStorage; +}(); + +var RequestCache = /*#__PURE__*/function () { + function RequestCache(storage) { + _classCallCheck(this, RequestCache); + + if (!storage) { + this.storage = new MemoryStorage(); + } else { + this.storage = storage; + } + } + + _createClass(RequestCache, [{ + key: "getKey", + value: function getKey(url, params) { + var key = "".concat(url, "|"); + + for (var index in params) { + key += "".concat(index, "=").concat(params[index], "|"); + } + + return key; + } + /* + invalidateTable(table) { + let key; + for (let i = 0; i < this.storage.length; i++) { + key = this.storage.key(i); + if (key.indexOf(`t=${table}`) > 0) { + this.storage.removeItem(key); + } + } + } + */ + + }, { + key: "invalidateTable", + value: function invalidateTable(table) { + this.storage.removeAllByPrefix("t=".concat(table)); + } + }, { + key: "getData", + value: function getData(key) { + var data = this.storage.getItem(key); + + if (!data) { + return null; + } + + return data; + } + }, { + key: "setData", + value: function setData(key, data) { + if (data.status !== undefined && data.status != null && data.status !== 'SUCCESS') { + return null; + } + + this.storage.setItem(key, data); + return data; + } + }]); + + return RequestCache; +}(); + +var _default = RequestCache; +exports["default"] = _default; + +},{}],3:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +/* eslint-disable no-restricted-globals */ + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ +var SocialShare = { + facebook: function facebook(url) { + var w = 700; + var h = 500; + var left = screen.width / 2 - w / 2; + var top = screen.height / 2 - h / 2; + url = "https://www.facebook.com/sharer/sharer.php?u=".concat(encodeURIComponent(url)); + window.open(url, 'Share on Facebook', "width=".concat(w, ",height=").concat(h, ",left=").concat(left, ",top=").concat(top)); + return false; + }, + google: function google(url) { + var w = 500; + var h = 500; + var left = screen.width / 2 - w / 2; + var top = screen.height / 2 - h / 2; + url = "https://plus.google.com/share?url=".concat(encodeURIComponent(url)); + window.open(url, 'Share on Google', "width=".concat(w, ",height=").concat(h, ",left=").concat(left, ",top=").concat(top)); + return false; + }, + linkedin: function linkedin(url) { + var w = 500; + var h = 500; + var left = screen.width / 2 - w / 2; + var top = screen.height / 2 - h / 2; + url = "https://www.linkedin.com/cws/share?url=".concat(encodeURIComponent(url)); + window.open(url, 'Share on Linked in', "width=".concat(w, ",height=").concat(h, ",left=").concat(left, ",top=").concat(top)); + return false; + }, + twitter: function twitter(url, msg) { + window.open("http://twitter.com/share?text=".concat(escape(msg), "&url=").concat(escape(url)), 'popup', 'width=550,height=260,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=200,top=200'); + return false; + } +}; +var _default = SocialShare; +exports["default"] = _default; + +},{}],4:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/* eslint-disable camelcase,brace-style */ + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ +var TimeUtils = /*#__PURE__*/function () { + function TimeUtils() { + _classCallCheck(this, TimeUtils); + } + + _createClass(TimeUtils, [{ + key: "setServerGMToffset", + value: function setServerGMToffset(serverGMToffset) { + this.serverGMToffset = serverGMToffset; + } + }, { + key: "getMySQLFormatDate", + value: function getMySQLFormatDate(date) { + var format = function format(val) { + if (val < 10) { + return "0".concat(val); + } + + return val; + }; + + return "".concat(date.getUTCFullYear(), "-").concat(format(date.getUTCMonth() + 1), "-").concat(format(date.getUTCDate())); + } + }, { + key: "convertToRelativeTime", + value: function convertToRelativeTime(selector) { + var that = this; + + var getAmPmTime = function getAmPmTime(curHour, curMin) { + var amPm = 'am'; + var amPmHour = curHour; + + if (amPmHour >= 12) { + amPm = 'pm'; + + if (amPmHour > 12) { + amPmHour -= 12; + } + } + + var prefixCurMin = ''; + + if (curMin < 10) { + prefixCurMin = '0'; + } + + var prefixCurHour = ''; + + if (curHour === 0) { + prefixCurHour = '0'; + } + + return " at ".concat(prefixCurHour).concat(amPmHour, ":").concat(prefixCurMin).concat(curMin).concat(amPm); + }; + + var getBrowserTimeZone = function getBrowserTimeZone() { + var current_date = new Date(); + var gmt_offset = current_date.getTimezoneOffset() / 60; + return -gmt_offset; + }; + + var curDate = new Date(); + var months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; + var days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + var timezoneDiff = this.serverGMToffset - getBrowserTimeZone(); + var timezoneTimeDiff = timezoneDiff * 60 * 60 * 1000; + selector.each(function () { + try { + var thisValue = $(this).html(); // Split value into date and time + + var thisValueArray = thisValue.split(' '); + var thisValueDate = thisValueArray[0]; + var thisValueTime = thisValueArray[1]; // Split date into components + + var thisValueDateArray = thisValueDate.split('-'); + var curYear = thisValueDateArray[0]; + var curMonth = thisValueDateArray[1] - 1; + var curDay = thisValueDateArray[2]; // Split time into components + + var thisValueTimeArray = thisValueTime.split(':'); + var curHour = thisValueTimeArray[0]; + var curMin = thisValueTimeArray[1]; + var curSec = thisValueTimeArray[2]; // Create this date + + var thisDate = new Date(curYear, curMonth, curDay, curHour, curMin, curSec); + var thisTime = thisDate.getTime(); + var tzDate = new Date(thisTime - timezoneTimeDiff); // var tzDay = tzDate.getDay();//getDay will return the day of the week not the month + // var tzDay = tzDate.getUTCDate(); //getUTCDate will return the day of the month + + var tzDay = tzDate.toString('d'); // + + var tzYear = tzDate.getFullYear(); + var tzHour = tzDate.getHours(); + var tzMin = tzDate.getMinutes(); // Create the full date + // var fullDate = days[tzDate.getDay()] + ", " + months[tzDate.getMonth()] + " " + tzDay + ", " + tzYear + getAmPmTime(tzHour, tzMin); + + var fullDate = "".concat(days[tzDate.getDay()], ", ").concat(months[tzDate.getMonth()], " ").concat(tzDay, ", ").concat(tzYear).concat(getAmPmTime(tzHour, tzMin)); // Get the time different + + var timeDiff = (curDate.getTime() - tzDate.getTime()) / 1000; + var minDiff = Math.abs(timeDiff / 60); + var hourDiff = Math.abs(timeDiff / (60 * 60)); + var dayDiff = Math.abs(timeDiff / (60 * 60 * 24)); + var yearDiff = Math.abs(timeDiff / (60 * 60 * 24 * 365)); // If more than a day old, display the month, day and time (and year, if applicable) + + var fbDate = ''; + + if (dayDiff > 1) { + // fbDate = curDay + " " + months[tzDate.getMonth()].substring(0,3); + fbDate = "".concat(tzDay, " ").concat(months[tzDate.getMonth()].substring(0, 3)); // Add the year, if applicable + + if (yearDiff > 1) { + fbDate = "".concat(fbDate, " ").concat(curYear); + } // Add the time + + + fbDate += getAmPmTime(tzHour, tzMin); + } // Less than a day old, and more than an hour old + else if (hourDiff >= 1) { + var roundedHour = Math.round(hourDiff); + if (roundedHour === 1) fbDate = 'about an hour ago';else fbDate = "".concat(roundedHour, " hours ago"); + } // Less than an hour, and more than a minute + else if (minDiff >= 1) { + var roundedMin = Math.round(minDiff); + if (roundedMin === 1) fbDate = 'about a minute ago';else fbDate = "".concat(roundedMin, " minutes ago"); + } // Less than a minute + else if (minDiff < 1) { + fbDate = 'less than a minute ago'; + } // Update this element + + + $(this).html(fbDate); + $(this).attr('title', fullDate); + } catch (e) {// Do nothing + } + }); + } + }]); + + return TimeUtils; +}(); + +var _default = TimeUtils; +exports["default"] = _default; + +},{}],5:[function(require,module,exports){ +"use strict"; + +var _Notifications = _interopRequireDefault(require("./Notifications")); + +var _TimeUtils = _interopRequireDefault(require("./TimeUtils")); + +var _RequestCache = _interopRequireDefault(require("./RequestCache")); + +var _SocialShare = _interopRequireDefault(require("./SocialShare")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +/* global timeUtils */ + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ +window.RequestCache = _RequestCache["default"]; +window.SocialShare = _SocialShare["default"]; + +window.setupTimeUtils = function (diffHoursBetweenServerTimezoneWithGMT) { + var timeUtils = new _TimeUtils["default"](); + timeUtils.setServerGMToffset(diffHoursBetweenServerTimezoneWithGMT); + return timeUtils; +}; + +window.setupNotifications = function (baseUrl) { + var notificationManager = new _Notifications["default"](); + notificationManager.setBaseUrl(baseUrl); + notificationManager.setTimeUtils(timeUtils); + return notificationManager; +}; + +},{"./Notifications":1,"./RequestCache":2,"./SocialShare":3,"./TimeUtils":4}]},{},[5]) + +//# sourceMappingURL=common.js.map diff --git a/web/dist/login.js b/web/dist/login.js index 14b0df45..8d9969a9 100644 --- a/web/dist/login.js +++ b/web/dist/login.js @@ -1,4 +1,1773 @@ -!function e(t,n,i){function r(s,a){if(!n[s]){if(!t[s]){var l="function"==typeof require&&require;if(!a&&l)return l(s,!0);if(o)return o(s,!0);var u=new Error("Cannot find module '"+s+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[s]={exports:{}};t[s][0].call(c.exports,(function(e){return r(t[s][1][e]||e)}),c,c.exports,e,t,n,i)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;s7))return $("#newPasswordFormAlert").show(),void $("#newPasswordFormAlert").html("Password should be longer than 7 characters");$.post("service.php",{a:"rsp",key:e,pwd:t,now:"1"},(function(e){"SUCCESS"==e.status?top.location.href="login.php?c=1":($("#newPasswordFormAlert").show(),$("#newPasswordFormAlert").html(e.message))}),"json")},window.submitLogin=function(){var e=$("#username").val(),t=$("#password").val();if(""===e||""===t)return!1;try{localStorage.clear()}catch(e){}$("#loginForm").submit()},window.authGoogle=function(){window.location.href="".concat(window.location.href.split("login.php")[0],"login.php?google=1")}},{}],2:[function(e,t,n){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}!function(e){e((function(){var t;e.support.transition=(t=function(){var e,t=document.createElement("bootstrap"),n={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(e in n)if(void 0!==t.style[e])return n[e]}())&&{end:t}}))}(window.jQuery),function(e){var t='[data-dismiss="alert"]',n=function(n){e(n).on("click",t,this.close)};n.prototype.close=function(t){var n,i=e(this),r=i.attr("data-target");function o(){n.trigger("closed").remove()}r||(r=(r=i.attr("href"))&&r.replace(/.*(?=#[^\s]*$)/,"")),n=e(r),t&&t.preventDefault(),n.length||(n=i.hasClass("alert")?i:i.parent()),n.trigger(t=e.Event("close")),t.isDefaultPrevented()||(n.removeClass("in"),e.support.transition&&n.hasClass("fade")?n.on(e.support.transition.end,o):o())},e.fn.alert=function(t){return this.each((function(){var i=e(this),r=i.data("alert");r||i.data("alert",r=new n(this)),"string"==typeof t&&r[t].call(i)}))},e.fn.alert.Constructor=n,e((function(){e("body").on("click.alert.data-api",t,n.prototype.close)}))}(window.jQuery),function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.button.defaults,n)};t.prototype.setState=function(e){var t="disabled",n=this.$element,i=n.data(),r=n.is("input")?"val":"html";e+="Text",i.resetText||n.data("resetText",n[r]()),n[r](i[e]||this.options[e]),setTimeout((function(){"loadingText"==e?n.addClass(t).attr(t,t):n.removeClass(t).removeAttr(t)}),0)},t.prototype.toggle=function(){var e=this.$element.closest('[data-toggle="buttons-radio"]');e&&e.find(".active").removeClass("active"),this.$element.toggleClass("active")},e.fn.button=function(n){return this.each((function(){var r=e(this),o=r.data("button"),s="object"==i(n)&&n;o||r.data("button",o=new t(this,s)),"toggle"==n?o.toggle():n&&o.setState(n)}))},e.fn.button.defaults={loadingText:"loading..."},e.fn.button.Constructor=t,e((function(){e("body").on("click.button.data-api","[data-toggle^=button]",(function(t){var n=e(t.target);n.hasClass("btn")||(n=n.closest(".btn")),n.button("toggle")}))}))}(window.jQuery),function(e){var t=function(t,n){this.$element=e(t),this.options=n,this.options.slide&&this.slide(this.options.slide),"hover"==this.options.pause&&this.$element.on("mouseenter",e.proxy(this.pause,this)).on("mouseleave",e.proxy(this.cycle,this))};t.prototype={cycle:function(t){return t||(this.paused=!1),this.options.interval&&!this.paused&&(this.interval=setInterval(e.proxy(this.next,this),this.options.interval)),this},to:function(t){var n=this.$element.find(".item.active"),i=n.parent().children(),r=i.index(n),o=this;if(!(t>i.length-1||t<0))return this.sliding?this.$element.one("slid",(function(){o.to(t)})):r==t?this.pause().cycle():this.slide(t>r?"next":"prev",e(i[t]))},pause:function(t){return t||(this.paused=!0),this.$element.find(".next, .prev").length&&e.support.transition.end&&(this.$element.trigger(e.support.transition.end),this.cycle()),clearInterval(this.interval),this.interval=null,this},next:function(){if(!this.sliding)return this.slide("next")},prev:function(){if(!this.sliding)return this.slide("prev")},slide:function(t,n){var i=this.$element.find(".item.active"),r=n||i[t](),o=this.interval,s="next"==t?"left":"right",a="next"==t?"first":"last",l=this,u=e.Event("slide",{relatedTarget:r[0]});if(this.sliding=!0,o&&this.pause(),!(r=r.length?r:this.$element.find(".item")[a]()).hasClass("active")){if(e.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(u),u.isDefaultPrevented())return;r.addClass(t),r[0].offsetWidth,i.addClass(s),r.addClass(s),this.$element.one(e.support.transition.end,(function(){r.removeClass([t,s].join(" ")).addClass("active"),i.removeClass(["active",s].join(" ")),l.sliding=!1,setTimeout((function(){l.$element.trigger("slid")}),0)}))}else{if(this.$element.trigger(u),u.isDefaultPrevented())return;i.removeClass("active"),r.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return o&&this.cycle(),this}}},e.fn.carousel=function(n){return this.each((function(){var r=e(this),o=r.data("carousel"),s=e.extend({},e.fn.carousel.defaults,"object"==i(n)&&n),a="string"==typeof n?n:s.slide;o||r.data("carousel",o=new t(this,s)),"number"==typeof n?o.to(n):a?o[a]():s.interval&&o.cycle()}))},e.fn.carousel.defaults={interval:5e3,pause:"hover"},e.fn.carousel.Constructor=t,e((function(){e("body").on("click.carousel.data-api","[data-slide]",(function(t){var n,i=e(this),r=e(i.attr("data-target")||(n=i.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,"")),o=!r.data("modal")&&e.extend({},r.data(),i.data());r.carousel(o),t.preventDefault()}))}))}(window.jQuery),function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.collapse.defaults,n),this.options.parent&&(this.$parent=e(this.options.parent)),this.options.toggle&&this.toggle()};t.prototype={constructor:t,dimension:function(){return this.$element.hasClass("width")?"width":"height"},show:function(){var t,n,i,r;if(!this.transitioning){if(t=this.dimension(),n=e.camelCase(["scroll",t].join("-")),(i=this.$parent&&this.$parent.find("> .accordion-group > .in"))&&i.length){if((r=i.data("collapse"))&&r.transitioning)return;i.collapse("hide"),r||i.data("collapse",null)}this.$element[t](0),this.transition("addClass",e.Event("show"),"shown"),e.support.transition&&this.$element[t](this.$element[0][n])}},hide:function(){var t;this.transitioning||(t=this.dimension(),this.reset(this.$element[t]()),this.transition("removeClass",e.Event("hide"),"hidden"),this.$element[t](0))},reset:function(e){var t=this.dimension();return this.$element.removeClass("collapse")[t](e||"auto")[0].offsetWidth,this.$element[null!==e?"addClass":"removeClass"]("collapse"),this},transition:function(t,n,i){var r=this,o=function(){"show"==n.type&&r.reset(),r.transitioning=0,r.$element.trigger(i)};this.$element.trigger(n),n.isDefaultPrevented()||(this.transitioning=1,this.$element[t]("in"),e.support.transition&&this.$element.hasClass("collapse")?this.$element.one(e.support.transition.end,o):o())},toggle:function(){this[this.$element.hasClass("in")?"hide":"show"]()}},e.fn.collapse=function(n){return this.each((function(){var r=e(this),o=r.data("collapse"),s="object"==i(n)&&n;o||r.data("collapse",o=new t(this,s)),"string"==typeof n&&o[n]()}))},e.fn.collapse.defaults={toggle:!0},e.fn.collapse.Constructor=t,e((function(){e("body").on("click.collapse.data-api","[data-toggle=collapse]",(function(t){var n,i=e(this),r=i.attr("data-target")||t.preventDefault()||(n=i.attr("href"))&&n.replace(/.*(?=#[^\s]+$)/,""),o=e(r).data("collapse")?"toggle":i.data();i[e(r).hasClass("in")?"addClass":"removeClass"]("collapsed"),e(r).collapse(o)}))}))}(window.jQuery),function(e){var t="[data-toggle=dropdown]",n=function(t){var n=e(t).on("click.dropdown.data-api",this.toggle);e("html").on("click.dropdown.data-api",(function(){n.parent().removeClass("open")}))};function i(){r(e(t)).removeClass("open")}function r(t){var n,i=t.attr("data-target");return i||(i=(i=t.attr("href"))&&/#/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,"")),(n=e(i)).length||(n=t.parent()),n}n.prototype={constructor:n,toggle:function(t){var n,o,s=e(this);if(!s.is(".disabled, :disabled"))return o=(n=r(s)).hasClass("open"),i(),o||(n.toggleClass("open"),s.focus()),!1},keydown:function(t){var n,i,o,s,a;if(/(38|40|27)/.test(t.keyCode)&&(n=e(this),t.preventDefault(),t.stopPropagation(),!n.is(".disabled, :disabled"))){if(!(s=(o=r(n)).hasClass("open"))||s&&27==t.keyCode)return n.click();(i=e("[role=menu] li:not(.divider) a",o)).length&&(a=i.index(i.filter(":focus")),38==t.keyCode&&a>0&&a--,40==t.keyCode&&a').appendTo(document.body),"static"!=this.options.backdrop&&this.$backdrop.click(e.proxy(this.hide,this)),i&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),i?this.$backdrop.one(e.support.transition.end,t):t()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),e.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(e.support.transition.end,e.proxy(this.removeBackdrop,this)):this.removeBackdrop()):t&&t()}},e.fn.modal=function(n){return this.each((function(){var r=e(this),o=r.data("modal"),s=e.extend({},e.fn.modal.defaults,r.data(),"object"==i(n)&&n);o||r.data("modal",o=new t(this,s)),"string"==typeof n?o[n]():s.show&&o.show()}))},e.fn.modal.defaults={backdrop:!0,keyboard:!0,show:!0},e.fn.modal.Constructor=t,e((function(){e("body").on("click.modal.data-api",'[data-toggle="modal"]',(function(t){var n=e(this),i=n.attr("href"),r=e(n.attr("data-target")||i&&i.replace(/.*(?=#[^\s]+$)/,"")),o=r.data("modal")?"toggle":e.extend({remote:!/#/.test(i)&&i},r.data(),n.data());t.preventDefault(),r.modal(o).one("hide",(function(){n.focus()}))}))}))}(window.jQuery),function(e){var t=function(e,t){this.init("tooltip",e,t)};t.prototype={constructor:t,init:function(t,n,i){var r,o;this.type=t,this.$element=e(n),this.options=this.getOptions(i),this.enabled=!0,"click"==this.options.trigger?this.$element.on("click."+this.type,this.options.selector,e.proxy(this.toggle,this)):"manual"!=this.options.trigger&&(r="hover"==this.options.trigger?"mouseenter":"focus",o="hover"==this.options.trigger?"mouseleave":"blur",this.$element.on(r+"."+this.type,this.options.selector,e.proxy(this.enter,this)),this.$element.on(o+"."+this.type,this.options.selector,e.proxy(this.leave,this))),this.options.selector?this._options=e.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(t){return(t=e.extend({},e.fn[this.type].defaults,t,this.$element.data())).delay&&"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),t},enter:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(!n.options.delay||!n.options.delay.show)return n.show();clearTimeout(this.timeout),n.hoverState="in",this.timeout=setTimeout((function(){"in"==n.hoverState&&n.show()}),n.options.delay.show)},leave:function(t){var n=e(t.currentTarget)[this.type](this._options).data(this.type);if(this.timeout&&clearTimeout(this.timeout),!n.options.delay||!n.options.delay.hide)return n.hide();n.hoverState="out",this.timeout=setTimeout((function(){"out"==n.hoverState&&n.hide()}),n.options.delay.hide)},show:function(){var e,t,n,i,r,o,s;if(this.hasContent()&&this.enabled){switch(e=this.tip(),this.setContent(),this.options.animation&&e.addClass("fade"),o="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,t=/in/.test(o),e.remove().css({top:0,left:0,display:"block"}).appendTo(t?this.$element:document.body),n=this.getPosition(t),i=e[0].offsetWidth,r=e[0].offsetHeight,t?o.split(" ")[1]:o){case"bottom":s={top:n.top+n.height,left:n.left+n.width/2-i/2};break;case"top":s={top:n.top-r,left:n.left+n.width/2-i/2};break;case"left":s={top:n.top+n.height/2-r/2,left:n.left-i};break;case"right":s={top:n.top+n.height/2-r/2,left:n.left+n.width}}e.css(s).addClass(o).addClass("in")}},setContent:function(){var e=this.tip(),t=this.getTitle();e.find(".tooltip-inner")[this.options.html?"html":"text"](t),e.removeClass("fade in top bottom left right")},hide:function(){var t,n=this.tip();return n.removeClass("in"),e.support.transition&&this.$tip.hasClass("fade")?(t=setTimeout((function(){n.off(e.support.transition.end).remove()}),500),n.one(e.support.transition.end,(function(){clearTimeout(t),n.remove()}))):n.remove(),this},fixTitle:function(){var e=this.$element;(e.attr("title")||"string"!=typeof e.attr("data-original-title"))&&e.attr("data-original-title",e.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(t){return e.extend({},t?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var e=this.$element,t=this.options;return e.attr("data-original-title")||("function"==typeof t.title?t.title.call(e[0]):t.title)},tip:function(){return this.$tip=this.$tip||e(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(){this[this.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},e.fn.tooltip=function(n){return this.each((function(){var r=e(this),o=r.data("tooltip"),s="object"==i(n)&&n;o||r.data("tooltip",o=new t(this,s)),"string"==typeof n&&o[n]()}))},e.fn.tooltip.Constructor=t,e.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover",title:"",delay:0,html:!0}}(window.jQuery),function(e){var t=function(e,t){this.init("popover",e,t)};t.prototype=e.extend({},e.fn.tooltip.Constructor.prototype,{constructor:t,setContent:function(){var e=this.tip(),t=this.getTitle(),n=this.getContent();e.find(".popover-title")[this.options.html?"html":"text"](t),e.find(".popover-content > *")[this.options.html?"html":"text"](n),e.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var e=this.$element,t=this.options;return e.attr("data-content")||("function"==typeof t.content?t.content.call(e[0]):t.content)},tip:function(){return this.$tip||(this.$tip=e(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),e.fn.popover=function(n){return this.each((function(){var r=e(this),o=r.data("popover"),s="object"==i(n)&&n;o||r.data("popover",o=new t(this,s)),"string"==typeof n&&o[n]()}))},e.fn.popover.Constructor=t,e.fn.popover.defaults=e.extend({},e.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

    '})}(window.jQuery),function(e){function t(t,n){var i,r=e.proxy(this.process,this),o=e(t).is("body")?e(window):e(t);this.options=e.extend({},e.fn.scrollspy.defaults,n),this.$scrollElement=o.on("scroll.scroll-spy.data-api",r),this.selector=(this.options.target||(i=e(t).attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.$body=e("body"),this.refresh(),this.process()}t.prototype={constructor:t,refresh:function(){var t=this;this.offsets=e([]),this.targets=e([]),this.$body.find(this.selector).map((function(){var t=e(this),n=t.data("target")||t.attr("href"),i=/^#\w/.test(n)&&e(n);return i&&i.length&&[[i.position().top,n]]||null})).sort((function(e,t){return e[0]-t[0]})).each((function(){t.offsets.push(this[0]),t.targets.push(this[1])}))},process:function(){var e,t=this.$scrollElement.scrollTop()+this.options.offset,n=(this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight)-this.$scrollElement.height(),i=this.offsets,r=this.targets,o=this.activeTarget;if(t>=n)return o!=(e=r.last()[0])&&this.activate(e);for(e=i.length;e--;)o!=r[e]&&t>=i[e]&&(!i[e+1]||t<=i[e+1])&&this.activate(r[e])},activate:function(t){var n,i;this.activeTarget=t,e(this.selector).parent(".active").removeClass("active"),i=this.selector+'[data-target="'+t+'"],'+this.selector+'[href="'+t+'"]',(n=e(i).parent("li").addClass("active")).parent(".dropdown-menu").length&&(n=n.closest("li.dropdown").addClass("active")),n.trigger("activate")}},e.fn.scrollspy=function(n){return this.each((function(){var r=e(this),o=r.data("scrollspy"),s="object"==i(n)&&n;o||r.data("scrollspy",o=new t(this,s)),"string"==typeof n&&o[n]()}))},e.fn.scrollspy.Constructor=t,e.fn.scrollspy.defaults={offset:10},e(window).on("load",(function(){e('[data-spy="scroll"]').each((function(){var t=e(this);t.scrollspy(t.data())}))}))}(window.jQuery),function(e){var t=function(t){this.element=e(t)};t.prototype={constructor:t,show:function(){var t,n,i,r=this.element,o=r.closest("ul:not(.dropdown-menu)"),s=r.attr("data-target");s||(s=(s=r.attr("href"))&&s.replace(/.*(?=#[^\s]*$)/,"")),r.parent("li").hasClass("active")||(t=o.find(".active a").last()[0],i=e.Event("show",{relatedTarget:t}),r.trigger(i),i.isDefaultPrevented()||(n=e(s),this.activate(r.parent("li"),o),this.activate(n,n.parent(),(function(){r.trigger({type:"shown",relatedTarget:t})}))))},activate:function(t,n,i){var r=n.find("> .active"),o=i&&e.support.transition&&r.hasClass("fade");function s(){r.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),t.addClass("active"),o?(t[0].offsetWidth,t.addClass("in")):t.removeClass("fade"),t.parent(".dropdown-menu")&&t.closest("li.dropdown").addClass("active"),i&&i()}o?r.one(e.support.transition.end,s):s(),r.removeClass("in")}},e.fn.tab=function(n){return this.each((function(){var i=e(this),r=i.data("tab");r||i.data("tab",r=new t(this)),"string"==typeof n&&r[n]()}))},e.fn.tab.Constructor=t,e((function(){e("body").on("click.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',(function(t){t.preventDefault(),e(this).tab("show")}))}))}(window.jQuery),function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.typeahead.defaults,n),this.matcher=this.options.matcher||this.matcher,this.sorter=this.options.sorter||this.sorter,this.highlighter=this.options.highlighter||this.highlighter,this.updater=this.options.updater||this.updater,this.$menu=e(this.options.menu).appendTo("body"),this.source=this.options.source,this.shown=!1,this.listen()};t.prototype={constructor:t,select:function(){var e=this.$menu.find(".active").attr("data-value");return this.$element.val(this.updater(e)).change(),this.hide()},updater:function(e){return e},show:function(){var t=e.extend({},this.$element.offset(),{height:this.$element[0].offsetHeight});return this.$menu.css({top:t.top+t.height,left:t.left}),this.$menu.show(),this.shown=!0,this},hide:function(){return this.$menu.hide(),this.shown=!1,this},lookup:function(t){var n;return this.query=this.$element.val(),!this.query||this.query.length"+t+"
    "}))},render:function(t){var n=this;return(t=e(t).map((function(t,i){return(t=e(n.options.item).attr("data-value",i)).find("a").html(n.highlighter(i)),t[0]}))).first().addClass("active"),this.$menu.html(t),this},next:function(t){var n=this.$menu.find(".active").removeClass("active").next();n.length||(n=e(this.$menu.find("li")[0])),n.addClass("active")},prev:function(e){var t=this.$menu.find(".active").removeClass("active").prev();t.length||(t=this.$menu.find("li").last()),t.addClass("active")},listen:function(){this.$element.on("blur",e.proxy(this.blur,this)).on("keypress",e.proxy(this.keypress,this)).on("keyup",e.proxy(this.keyup,this)),(e.browser.chrome||e.browser.webkit||e.browser.msie)&&this.$element.on("keydown",e.proxy(this.keydown,this)),this.$menu.on("click",e.proxy(this.click,this)).on("mouseenter","li",e.proxy(this.mouseenter,this))},move:function(e){if(this.shown){switch(e.keyCode){case 9:case 13:case 27:e.preventDefault();break;case 38:e.preventDefault(),this.prev();break;case 40:e.preventDefault(),this.next()}e.stopPropagation()}},keydown:function(t){this.suppressKeyPressRepeat=!~e.inArray(t.keyCode,[40,38,9,13,27]),this.move(t)},keypress:function(e){this.suppressKeyPressRepeat||this.move(e)},keyup:function(e){switch(e.keyCode){case 40:case 38:break;case 9:case 13:if(!this.shown)return;this.select();break;case 27:if(!this.shown)return;this.hide();break;default:this.lookup()}e.stopPropagation(),e.preventDefault()},blur:function(e){var t=this;setTimeout((function(){t.hide()}),150)},click:function(e){e.stopPropagation(),e.preventDefault(),this.select()},mouseenter:function(t){this.$menu.find(".active").removeClass("active"),e(t.currentTarget).addClass("active")}},e.fn.typeahead=function(n){return this.each((function(){var r=e(this),o=r.data("typeahead"),s="object"==i(n)&&n;o||r.data("typeahead",o=new t(this,s)),"string"==typeof n&&o[n]()}))},e.fn.typeahead.defaults={source:[],items:8,menu:'',item:'
  • ',minLength:1},e.fn.typeahead.Constructor=t,e((function(){e("body").on("focus.typeahead.data-api",'[data-provide="typeahead"]',(function(t){var n=e(this);n.data("typeahead")||(t.preventDefault(),n.typeahead(n.data()))}))}))}(window.jQuery),function(e){var t=function(t,n){this.options=e.extend({},e.fn.affix.defaults,n),this.$window=e(window).on("scroll.affix.data-api",e.proxy(this.checkPosition,this)),this.$element=e(t),this.checkPosition()};t.prototype.checkPosition=function(){if(this.$element.is(":visible")){var t,n=e(document).height(),r=this.$window.scrollTop(),o=this.$element.offset(),s=this.options.offset,a=s.bottom,l=s.top;"object"!=i(s)&&(a=l=s),"function"==typeof l&&(l=s.top()),"function"==typeof a&&(a=s.bottom()),t=!(null!=this.unpin&&r+this.unpin<=o.top)&&(null!=a&&o.top+this.$element.height()>=n-a?"bottom":null!=l&&r<=l&&"top"),this.affixed!==t&&(this.affixed=t,this.unpin="bottom"==t?o.top-r:null,this.$element.removeClass("affix affix-top affix-bottom").addClass("affix"+(t?"-"+t:"")))}},e.fn.affix=function(n){return this.each((function(){var r=e(this),o=r.data("affix"),s="object"==i(n)&&n;o||r.data("affix",o=new t(this,s)),"string"==typeof n&&o[n]()}))},e.fn.affix.Constructor=t,e.fn.affix.defaults={offset:0},e(window).on("load",(function(){e('[data-spy="affix"]').each((function(){var t=e(this),n=t.data();n.offset=n.offset||{},n.offsetBottom&&(n.offset.bottom=n.offsetBottom),n.offsetTop&&(n.offset.top=n.offsetTop),t.affix(n)}))}))}(window.jQuery)},{}],3:[function(e,t,n){"use strict";function i(e){return(i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)} +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 7; + }; + + if (!passwordValidation(password)) { + $('#newPasswordFormAlert').show(); + $('#newPasswordFormAlert').html('Password should be longer than 7 characters'); + return; + } + + $.post('service.php', { + a: 'rsp', + key: key, + pwd: password, + now: '1' + }, function (data) { + if (data.status == 'SUCCESS') { + top.location.href = 'login.php?c=1'; + } else { + $('#newPasswordFormAlert').show(); + $('#newPasswordFormAlert').html(data.message); + } + }, 'json'); +}; + +window.submitLogin = function () { + var username = $('#username').val(); + var password = $('#password').val(); + + if (username === '' || password === '') { + return false; + } + + try { + localStorage.clear(); + } catch (e) {} + + $('#loginForm').submit(); +}; + +window.authGoogle = function () { + window.location.href = "".concat(window.location.href.split('login.php')[0], "login.php?google=1"); +}; + +},{}],2:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +/* =================================================== + * bootstrap-transition.js v2.1.1 + * http://twitter.github.com/bootstrap/javascript.html#transitions + * =================================================== + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================== */ +!function ($) { + $(function () { + "use strict"; // jshint ;_; + + /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) + * ======================================================= */ + + $.support.transition = function () { + var transitionEnd = function () { + var el = document.createElement('bootstrap'), + transEndEventNames = { + 'WebkitTransition': 'webkitTransitionEnd', + 'MozTransition': 'transitionend', + 'OTransition': 'oTransitionEnd otransitionend', + 'transition': 'transitionend' + }, + name; + + for (name in transEndEventNames) { + if (el.style[name] !== undefined) { + return transEndEventNames[name]; + } + } + }(); + + return transitionEnd && { + end: transitionEnd + }; + }(); + }); +}(window.jQuery); +/* ========================================================== +* bootstrap-alert.js v2.1.1 +* http://twitter.github.com/bootstrap/javascript.html#alerts +* ========================================================== +* Copyright 2012 Twitter, Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ========================================================== */ + +!function ($) { + "use strict"; // jshint ;_; + + /* ALERT CLASS DEFINITION + * ====================== */ + + var dismiss = '[data-dismiss="alert"]', + Alert = function Alert(el) { + $(el).on('click', dismiss, this.close); + }; + + Alert.prototype.close = function (e) { + var $this = $(this), + selector = $this.attr('data-target'), + $parent; + + if (!selector) { + selector = $this.attr('href'); + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, ''); //strip for ie7 + } + + $parent = $(selector); + e && e.preventDefault(); + $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()); + $parent.trigger(e = $.Event('close')); + if (e.isDefaultPrevented()) return; + $parent.removeClass('in'); + + function removeElement() { + $parent.trigger('closed').remove(); + } + + $.support.transition && $parent.hasClass('fade') ? $parent.on($.support.transition.end, removeElement) : removeElement(); + }; + /* ALERT PLUGIN DEFINITION + * ======================= */ + + + $.fn.alert = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data('alert'); + if (!data) $this.data('alert', data = new Alert(this)); + if (typeof option == 'string') data[option].call($this); + }); + }; + + $.fn.alert.Constructor = Alert; + /* ALERT DATA-API + * ============== */ + + $(function () { + $('body').on('click.alert.data-api', dismiss, Alert.prototype.close); + }); +}(window.jQuery); +/* ============================================================ +* bootstrap-button.js v2.1.1 +* http://twitter.github.com/bootstrap/javascript.html#buttons +* ============================================================ +* Copyright 2012 Twitter, Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ============================================================ */ + +!function ($) { + "use strict"; // jshint ;_; + + /* BUTTON PUBLIC CLASS DEFINITION + * ============================== */ + + var Button = function Button(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.button.defaults, options); + }; + + Button.prototype.setState = function (state) { + var d = 'disabled', + $el = this.$element, + data = $el.data(), + val = $el.is('input') ? 'val' : 'html'; + state = state + 'Text'; + data.resetText || $el.data('resetText', $el[val]()); + $el[val](data[state] || this.options[state]); // push to event loop to allow forms to submit + + setTimeout(function () { + state == 'loadingText' ? $el.addClass(d).attr(d, d) : $el.removeClass(d).removeAttr(d); + }, 0); + }; + + Button.prototype.toggle = function () { + var $parent = this.$element.closest('[data-toggle="buttons-radio"]'); + $parent && $parent.find('.active').removeClass('active'); + this.$element.toggleClass('active'); + }; + /* BUTTON PLUGIN DEFINITION + * ======================== */ + + + $.fn.button = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data('button'), + options = _typeof(option) == 'object' && option; + if (!data) $this.data('button', data = new Button(this, options)); + if (option == 'toggle') data.toggle();else if (option) data.setState(option); + }); + }; + + $.fn.button.defaults = { + loadingText: 'loading...' + }; + $.fn.button.Constructor = Button; + /* BUTTON DATA-API + * =============== */ + + $(function () { + $('body').on('click.button.data-api', '[data-toggle^=button]', function (e) { + var $btn = $(e.target); + if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn'); + $btn.button('toggle'); + }); + }); +}(window.jQuery); +/* ========================================================== +* bootstrap-carousel.js v2.1.1 +* http://twitter.github.com/bootstrap/javascript.html#carousel +* ========================================================== +* Copyright 2012 Twitter, Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ========================================================== */ + +!function ($) { + "use strict"; // jshint ;_; + + /* CAROUSEL CLASS DEFINITION + * ========================= */ + + var Carousel = function Carousel(element, options) { + this.$element = $(element); + this.options = options; + this.options.slide && this.slide(this.options.slide); + this.options.pause == 'hover' && this.$element.on('mouseenter', $.proxy(this.pause, this)).on('mouseleave', $.proxy(this.cycle, this)); + }; + + Carousel.prototype = { + cycle: function cycle(e) { + if (!e) this.paused = false; + this.options.interval && !this.paused && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)); + return this; + }, + to: function to(pos) { + var $active = this.$element.find('.item.active'), + children = $active.parent().children(), + activePos = children.index($active), + that = this; + if (pos > children.length - 1 || pos < 0) return; + + if (this.sliding) { + return this.$element.one('slid', function () { + that.to(pos); + }); + } + + if (activePos == pos) { + return this.pause().cycle(); + } + + return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])); + }, + pause: function pause(e) { + if (!e) this.paused = true; + + if (this.$element.find('.next, .prev').length && $.support.transition.end) { + this.$element.trigger($.support.transition.end); + this.cycle(); + } + + clearInterval(this.interval); + this.interval = null; + return this; + }, + next: function next() { + if (this.sliding) return; + return this.slide('next'); + }, + prev: function prev() { + if (this.sliding) return; + return this.slide('prev'); + }, + slide: function slide(type, next) { + var $active = this.$element.find('.item.active'), + $next = next || $active[type](), + isCycling = this.interval, + direction = type == 'next' ? 'left' : 'right', + fallback = type == 'next' ? 'first' : 'last', + that = this, + e = $.Event('slide', { + relatedTarget: $next[0] + }); + this.sliding = true; + isCycling && this.pause(); + $next = $next.length ? $next : this.$element.find('.item')[fallback](); + if ($next.hasClass('active')) return; + + if ($.support.transition && this.$element.hasClass('slide')) { + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + $next.addClass(type); + $next[0].offsetWidth; // force reflow + + $active.addClass(direction); + $next.addClass(direction); + this.$element.one($.support.transition.end, function () { + $next.removeClass([type, direction].join(' ')).addClass('active'); + $active.removeClass(['active', direction].join(' ')); + that.sliding = false; + setTimeout(function () { + that.$element.trigger('slid'); + }, 0); + }); + } else { + this.$element.trigger(e); + if (e.isDefaultPrevented()) return; + $active.removeClass('active'); + $next.addClass('active'); + this.sliding = false; + this.$element.trigger('slid'); + } + + isCycling && this.cycle(); + return this; + } + }; + /* CAROUSEL PLUGIN DEFINITION + * ========================== */ + + $.fn.carousel = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data('carousel'), + options = $.extend({}, $.fn.carousel.defaults, _typeof(option) == 'object' && option), + action = typeof option == 'string' ? option : options.slide; + if (!data) $this.data('carousel', data = new Carousel(this, options)); + if (typeof option == 'number') data.to(option);else if (action) data[action]();else if (options.interval) data.cycle(); + }); + }; + + $.fn.carousel.defaults = { + interval: 5000, + pause: 'hover' + }; + $.fn.carousel.Constructor = Carousel; + /* CAROUSEL DATA-API + * ================= */ + + $(function () { + $('body').on('click.carousel.data-api', '[data-slide]', function (e) { + var $this = $(this), + href, + $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 + , + options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()); + $target.carousel(options); + e.preventDefault(); + }); + }); +}(window.jQuery); +/* ============================================================= +* bootstrap-collapse.js v2.1.1 +* http://twitter.github.com/bootstrap/javascript.html#collapse +* ============================================================= +* Copyright 2012 Twitter, Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ============================================================ */ + +!function ($) { + "use strict"; // jshint ;_; + + /* COLLAPSE PUBLIC CLASS DEFINITION + * ================================ */ + + var Collapse = function Collapse(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.collapse.defaults, options); + + if (this.options.parent) { + this.$parent = $(this.options.parent); + } + + this.options.toggle && this.toggle(); + }; + + Collapse.prototype = { + constructor: Collapse, + dimension: function dimension() { + var hasWidth = this.$element.hasClass('width'); + return hasWidth ? 'width' : 'height'; + }, + show: function show() { + var dimension, scroll, actives, hasData; + if (this.transitioning) return; + dimension = this.dimension(); + scroll = $.camelCase(['scroll', dimension].join('-')); + actives = this.$parent && this.$parent.find('> .accordion-group > .in'); + + if (actives && actives.length) { + hasData = actives.data('collapse'); + if (hasData && hasData.transitioning) return; + actives.collapse('hide'); + hasData || actives.data('collapse', null); + } + + this.$element[dimension](0); + this.transition('addClass', $.Event('show'), 'shown'); + $.support.transition && this.$element[dimension](this.$element[0][scroll]); + }, + hide: function hide() { + var dimension; + if (this.transitioning) return; + dimension = this.dimension(); + this.reset(this.$element[dimension]()); + this.transition('removeClass', $.Event('hide'), 'hidden'); + this.$element[dimension](0); + }, + reset: function reset(size) { + var dimension = this.dimension(); + this.$element.removeClass('collapse')[dimension](size || 'auto')[0].offsetWidth; + this.$element[size !== null ? 'addClass' : 'removeClass']('collapse'); + return this; + }, + transition: function transition(method, startEvent, completeEvent) { + var that = this, + complete = function complete() { + if (startEvent.type == 'show') that.reset(); + that.transitioning = 0; + that.$element.trigger(completeEvent); + }; + + this.$element.trigger(startEvent); + if (startEvent.isDefaultPrevented()) return; + this.transitioning = 1; + this.$element[method]('in'); + $.support.transition && this.$element.hasClass('collapse') ? this.$element.one($.support.transition.end, complete) : complete(); + }, + toggle: function toggle() { + this[this.$element.hasClass('in') ? 'hide' : 'show'](); + } + }; + /* COLLAPSIBLE PLUGIN DEFINITION + * ============================== */ + + $.fn.collapse = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data('collapse'), + options = _typeof(option) == 'object' && option; + if (!data) $this.data('collapse', data = new Collapse(this, options)); + if (typeof option == 'string') data[option](); + }); + }; + + $.fn.collapse.defaults = { + toggle: true + }; + $.fn.collapse.Constructor = Collapse; + /* COLLAPSIBLE DATA-API + * ==================== */ + + $(function () { + $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function (e) { + var $this = $(this), + href, + target = $this.attr('data-target') || e.preventDefault() || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 + , + option = $(target).data('collapse') ? 'toggle' : $this.data(); + $this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed'); + $(target).collapse(option); + }); + }); +}(window.jQuery); +/* ============================================================ +* bootstrap-dropdown.js v2.1.1 +* http://twitter.github.com/bootstrap/javascript.html#dropdowns +* ============================================================ +* Copyright 2012 Twitter, Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ============================================================ */ + +!function ($) { + "use strict"; // jshint ;_; + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle=dropdown]', + Dropdown = function Dropdown(element) { + var $el = $(element).on('click.dropdown.data-api', this.toggle); + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open'); + }); + }; + + Dropdown.prototype = { + constructor: Dropdown, + toggle: function toggle(e) { + var $this = $(this), + $parent, + isActive; + if ($this.is('.disabled, :disabled')) return; + $parent = getParent($this); + isActive = $parent.hasClass('open'); + clearMenus(); + + if (!isActive) { + $parent.toggleClass('open'); + $this.focus(); + } + + return false; + }, + keydown: function keydown(e) { + var $this, $items, $active, $parent, isActive, index; + if (!/(38|40|27)/.test(e.keyCode)) return; + $this = $(this); + e.preventDefault(); + e.stopPropagation(); + if ($this.is('.disabled, :disabled')) return; + $parent = getParent($this); + isActive = $parent.hasClass('open'); + if (!isActive || isActive && e.keyCode == 27) return $this.click(); + $items = $('[role=menu] li:not(.divider) a', $parent); + if (!$items.length) return; + index = $items.index($items.filter(':focus')); + if (e.keyCode == 38 && index > 0) index--; // up + + if (e.keyCode == 40 && index < $items.length - 1) index++; // down + + if (!~index) index = 0; + $items.eq(index).focus(); + } + }; + + function clearMenus() { + getParent($(toggle)).removeClass('open'); + } + + function getParent($this) { + var selector = $this.attr('data-target'), + $parent; + + if (!selector) { + selector = $this.attr('href'); + selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, ''); //strip for ie7 + } + + $parent = $(selector); + $parent.length || ($parent = $this.parent()); + return $parent; + } + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + + $.fn.dropdown = function (option) { + return this.each(function () { + var $this = $(this), + data = $this.data('dropdown'); + if (!data) $this.data('dropdown', data = new Dropdown(this)); + if (typeof option == 'string') data[option].call($this); + }); + }; + + $.fn.dropdown.Constructor = Dropdown; + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-Api touchstart.dropdown.data-Api', clearMenus); + $('body').on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { + e.stopPropagation(); + }).on('click.dropdown.data-Api touchstart.dropdown.data-Api', toggle, Dropdown.prototype.toggle).on('keydown.dropdown.data-Api touchstart.dropdown.data-Api', toggle + ', [role=menu]', Dropdown.prototype.keydown); + }); +}(window.jQuery); +/* ========================================================= +* bootstrap-modal.js v2.1.1 +* http://twitter.github.com/bootstrap/javascript.html#modals +* ========================================================= +* Copyright 2012 Twitter, Inc. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* ========================================================= */ + +!function ($) { + "use strict"; // jshint ;_; + + /* MODAL CLASS DEFINITION + * ====================== */ + + var Modal = function Modal(element, options) { + this.options = options; + this.$element = $(element).delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)); + this.options.remote && this.$element.find('.modal-body').load(this.options.remote); + }; + + Modal.prototype = { + constructor: Modal, + toggle: function toggle() { + return this[!this.isShown ? 'show' : 'hide'](); + }, + show: function show() { + var that = this, + e = $.Event('show'); + this.$element.trigger(e); + if (this.isShown || e.isDefaultPrevented()) return; + $('body').addClass('modal-open'); + this.isShown = true; + this.escape(); + this.backdrop(function () { + var transition = $.support.transition && that.$element.hasClass('fade'); + + if (!that.$element.parent().length) { + that.$element.appendTo(document.body); //don't move modals dom position + } + + that.$element.show(); + + if (transition) { + that.$element[0].offsetWidth; // force reflow + } + + that.$element.addClass('in').attr('aria-hidden', false).focus(); + that.enforceFocus(); + transition ? that.$element.one($.support.transition.end, function () { + that.$element.trigger('shown'); + }) : that.$element.trigger('shown'); + }); + }, + hide: function hide(e) { + e && e.preventDefault(); + var that = this; + e = $.Event('hide'); + this.$element.trigger(e); + if (!this.isShown || e.isDefaultPrevented()) return; + this.isShown = false; + $('body').removeClass('modal-open'); + this.escape(); + $(document).off('focusin.modal'); + this.$element.removeClass('in').attr('aria-hidden', true); + $.support.transition && this.$element.hasClass('fade') ? this.hideWithTransition() : this.hideModal(); + }, + enforceFocus: function enforceFocus() { + var that = this; + $(document).on('focusin.modal', function (e) { + if (that.$element[0] !== e.target && !that.$element.has(e.target).length) { + that.$element.focus(); + } + }); + }, + escape: function escape() { + var that = this; + + if (this.isShown && this.options.keyboard) { + this.$element.on('keyup.dismiss.modal', function (e) { + e.which == 27 && that.hide(); + }); + } else if (!this.isShown) { + this.$element.off('keyup.dismiss.modal'); + } + }, + hideWithTransition: function hideWithTransition() { + var that = this, + timeout = setTimeout(function () { + that.$element.off($.support.transition.end); + that.hideModal(); + }, 500); + this.$element.one($.support.transition.end, function () { + clearTimeout(timeout); + that.hideModal(); + }); + }, + hideModal: function hideModal(that) { + this.$element.hide().trigger('hidden'); + this.backdrop(); + }, + removeBackdrop: function removeBackdrop() { + this.$backdrop.remove(); + this.$backdrop = null; + }, + backdrop: function backdrop(callback) { + var that = this, + animate = this.$element.hasClass('fade') ? 'fade' : ''; + + if (this.isShown && this.options.backdrop) { + var doAnimate = $.support.transition && animate; + this.$backdrop = $('"]),g.fn.extend({text:function(e){return g.access(this,(function(e){return void 0===e?g.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))}),null,e,arguments.length)},wrapAll:function(e){if(g.isFunction(e))return this.each((function(t){g(this).wrapAll(e.call(this,t))}));if(this[0]){var t=g(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map((function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e})).append(this)}return this},wrapInner:function(e){return g.isFunction(e)?this.each((function(t){g(this).wrapInner(e.call(this,t))})):this.each((function(){var t=g(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)}))},wrap:function(e){var t=g.isFunction(e);return this.each((function(n){g(this).wrapAll(t?e.call(this,n):e)}))},unwrap:function(){return this.parent().each((function(){g.nodeName(this,"body")||g(this).replaceWith(this.childNodes)})).end()},append:function(){return this.domManip(arguments,!0,(function(e){1!==this.nodeType&&11!==this.nodeType||this.appendChild(e)}))},prepend:function(){return this.domManip(arguments,!0,(function(e){1!==this.nodeType&&11!==this.nodeType||this.insertBefore(e,this.firstChild)}))},before:function(){if(!ae(this[0]))return this.domManip(arguments,!1,(function(e){this.parentNode.insertBefore(e,this)}));if(arguments.length){var e=g.clean(arguments);return this.pushStack(g.merge(e,this),"before",this.selector)}},after:function(){if(!ae(this[0]))return this.domManip(arguments,!1,(function(e){this.parentNode.insertBefore(e,this.nextSibling)}));if(arguments.length){var e=g.clean(arguments);return this.pushStack(g.merge(this,e),"after",this.selector)}},remove:function(e,t){for(var n,i=0;null!=(n=this[i]);i++)e&&!g.filter(e,[n]).length||(t||1!==n.nodeType||(g.cleanData(n.getElementsByTagName("*")),g.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)for(1===e.nodeType&&g.cleanData(e.getElementsByTagName("*"));e.firstChild;)e.removeChild(e.firstChild);return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map((function(){return g.clone(this,e,t)}))},html:function(e){return g.access(this,(function(e){var t=this[0]||{},n=0,i=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(he,""):void 0;if("string"==typeof e&&!xe.test(e)&&(g.support.htmlSerialize||!Ce.test(e))&&(g.support.leadingWhitespace||!me.test(e))&&!$e[(ve.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(ge,"<$1>");try{for(;n1&&"string"==typeof c&&ke.test(c))return this.each((function(){g(this).domManip(e,t,n)}));if(g.isFunction(c))return this.each((function(i){var r=g(this);e[0]=c.call(this,i,t?r.html():void 0),r.domManip(e,t,n)}));if(this[0]){if(r=(o=(i=g.buildFragment(e,this,d)).fragment).firstChild,1===o.childNodes.length&&(o=r),r)for(t=t&&g.nodeName(r,"tr"),s=i.cacheable||f-1;u0?this.clone(!0):this).get(),g(s[r])[t](i),o=o.concat(i);return this.pushStack(o,e,s.selector)}})),g.extend({clone:function(e,t,n){var i,r,o,s;if(g.support.html5Clone||g.isXMLDoc(e)||!Ce.test("<"+e.nodeName+">")?s=e.cloneNode(!0):(Ae.innerHTML=e.outerHTML,Ae.removeChild(s=Ae.firstChild)),!(g.support.noCloneEvent&&g.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||g.isXMLDoc(e)))for(De(e,s),i=Le(e),r=Le(s),o=0;i[o];++o)r[o]&&De(i[o],r[o]);if(t&&(je(e,s),n))for(i=Le(e),r=Le(s),o=0;i[o];++o)je(i[o],r[o]);return i=r=null,s},clean:function(e,t,n,i){var r,s,a,l,u,c,d,f,p,h,m,v=t===o&&Se,y=[];for(t&&void 0!==t.createDocumentFragment||(t=o),r=0;null!=(a=e[r]);r++)if("number"==typeof a&&(a+=""),a){if("string"==typeof a)if(be.test(a)){for(v=v||ce(t),d=t.createElement("div"),v.appendChild(d),a=a.replace(ge,"<$1>"),l=(ve.exec(a)||["",""])[1].toLowerCase(),c=(u=$e[l]||$e._default)[0],d.innerHTML=u[1]+a+u[2];c--;)d=d.lastChild;if(!g.support.tbody)for(f=ye.test(a),s=(p="table"!==l||f?""!==u[1]||f?[]:d.childNodes:d.firstChild&&d.firstChild.childNodes).length-1;s>=0;--s)g.nodeName(p[s],"tbody")&&!p[s].childNodes.length&&p[s].parentNode.removeChild(p[s]);!g.support.leadingWhitespace&&me.test(a)&&d.insertBefore(t.createTextNode(me.exec(a)[0]),d.firstChild),a=d.childNodes,d.parentNode.removeChild(d)}else a=t.createTextNode(a);a.nodeType?y.push(a):g.merge(y,a)}if(d&&(a=d=v=null),!g.support.appendChecked)for(r=0;null!=(a=y[r]);r++)g.nodeName(a,"input")?He(a):void 0!==a.getElementsByTagName&&g.grep(a.getElementsByTagName("input"),He);if(n)for(h=function(e){if(!e.type||Ne.test(e.type))return i?i.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)},r=0;null!=(a=y[r]);r++)g.nodeName(a,"script")&&h(a)||(n.appendChild(a),void 0!==a.getElementsByTagName&&(m=g.grep(g.merge([],a.getElementsByTagName("script")),h),y.splice.apply(y,[r+1,0].concat(m)),r+=m.length));return y},cleanData:function(e,t){for(var n,i,r,o,s=0,a=g.expando,l=g.cache,u=g.support.deleteExpando,c=g.event.special;null!=(r=e[s]);s++)if((t||g.acceptData(r))&&(n=(i=r[a])&&l[i])){if(n.events)for(o in n.events)c[o]?g.event.remove(r,o):g.removeEvent(r,o,n.handle);l[i]&&(delete l[i],u?delete r[a]:r.removeAttribute?r.removeAttribute(a):r[a]=null,g.deletedIds.push(i))}}}),g.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},fe={},(de=g.uaMatch(a.userAgent)).browser&&(fe[de.browser]=!0,fe.version=de.version),fe.chrome?fe.webkit=!0:fe.webkit&&(fe.safari=!0),g.browser=fe,g.sub=function(){function e(t,n){return new e.fn.init(t,n)}g.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,i){return i&&i instanceof g&&!(i instanceof e)&&(i=e(i)),g.fn.init.call(this,n,i,t)},e.fn.init.prototype=e.fn;var t=e(o);return e};var Fe,qe,Me,Pe=/alpha\([^)]*\)/i,Oe=/opacity=([^)]*)/,_e=/^(top|right|bottom|left)$/,Be=/^(none|table(?!-c[ea]).+)/,We=/^margin/,Re=new RegExp("^("+v+")(.*)$","i"),Ie=new RegExp("^("+v+")(?!px)[a-z%]+$","i"),ze=new RegExp("^([-+])=("+v+")","i"),Xe={},Ue={position:"absolute",visibility:"hidden",display:"block"},Qe={letterSpacing:0,fontWeight:400},Ye=["Top","Right","Bottom","Left"],Ge=["Webkit","O","Moz","ms"],Je=g.fn.toggle;function Ve(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),i=t,r=Ge.length;r--;)if((t=Ge[r]+n)in e)return t;return i}function Ke(e,t){return"none"===g.css(e=t||e,"display")||!g.contains(e.ownerDocument,e)}function Ze(e,t){for(var n,i,r=[],o=0,s=e.length;o").appendTo(o.body),n=t.css("display");return t.remove(),"none"!==n&&""!==n||(qe=o.body.appendChild(qe||g.extend(o.createElement("iframe"),{frameBorder:0,width:0,height:0})),Me&&qe.createElement||((Me=(qe.contentWindow||qe.contentDocument).document).write(""),Me.close()),t=Me.body.appendChild(Me.createElement(e)),n=Fe(t,"display"),o.body.removeChild(qe)),Xe[e]=n,n}g.fn.extend({css:function(e,t){return g.access(this,(function(e,t,n){return void 0!==n?g.style(e,t,n):g.css(e,t)}),e,t,arguments.length>1)},show:function(){return Ze(this,!0)},hide:function(){return Ze(this)},toggle:function(e,t){var n="boolean"==typeof e;return g.isFunction(e)&&g.isFunction(t)?Je.apply(this,arguments):this.each((function(){(n?e:Ke(this))?g(this).show():g(this).hide()}))}}),g.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{float:g.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,s,a,l=g.camelCase(t),u=e.style;if(t=g.cssProps[l]||(g.cssProps[l]=Ve(u,l)),a=g.cssHooks[t]||g.cssHooks[l],void 0===n)return a&&"get"in a&&void 0!==(o=a.get(e,!1,r))?o:u[t];if(!("string"===(s=i(n))&&(o=ze.exec(n))&&(n=(o[1]+1)*o[2]+parseFloat(g.css(e,t)),s="number"),null==n||"number"===s&&isNaN(n)||("number"!==s||g.cssNumber[l]||(n+="px"),a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(e){}}},css:function(e,t,n,i){var r,o,s,a=g.camelCase(t);return t=g.cssProps[a]||(g.cssProps[a]=Ve(e.style,a)),(s=g.cssHooks[t]||g.cssHooks[a])&&"get"in s&&(r=s.get(e,!0,i)),void 0===r&&(r=Fe(e,t)),"normal"===r&&t in Qe&&(r=Qe[t]),n||void 0!==i?(o=parseFloat(r),n||g.isNumeric(o)?o||0:r):r},swap:function(e,t,n){var i,r,o={};for(r in t)o[r]=e.style[r],e.style[r]=t[r];for(r in i=n.call(e),t)e.style[r]=o[r];return i}}),e.getComputedStyle?Fe=function(t,n){var i,r,o,s,a=e.getComputedStyle(t,null),l=t.style;return a&&(""!==(i=a[n])||g.contains(t.ownerDocument,t)||(i=g.style(t,n)),Ie.test(i)&&We.test(n)&&(r=l.width,o=l.minWidth,s=l.maxWidth,l.minWidth=l.maxWidth=l.width=i,i=a.width,l.width=r,l.minWidth=o,l.maxWidth=s)),i}:o.documentElement.currentStyle&&(Fe=function(e,t){var n,i,r=e.currentStyle&&e.currentStyle[t],o=e.style;return null==r&&o&&o[t]&&(r=o[t]),Ie.test(r)&&!_e.test(t)&&(n=o.left,(i=e.runtimeStyle&&e.runtimeStyle.left)&&(e.runtimeStyle.left=e.currentStyle.left),o.left="fontSize"===t?"1em":r,r=o.pixelLeft+"px",o.left=n,i&&(e.runtimeStyle.left=i)),""===r?"auto":r}),g.each(["height","width"],(function(e,t){g.cssHooks[t]={get:function(e,n,i){if(n)return 0===e.offsetWidth&&Be.test(Fe(e,"display"))?g.swap(e,Ue,(function(){return nt(e,t,i)})):nt(e,t,i)},set:function(e,n,i){return et(0,n,i?tt(e,t,i,g.support.boxSizing&&"border-box"===g.css(e,"boxSizing")):0)}}})),g.support.opacity||(g.cssHooks.opacity={get:function(e,t){return Oe.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,i=e.currentStyle,r=g.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=i&&i.filter||n.filter||"";n.zoom=1,t>=1&&""===g.trim(o.replace(Pe,""))&&n.removeAttribute&&(n.removeAttribute("filter"),i&&!i.filter)||(n.filter=Pe.test(o)?o.replace(Pe,r):o+" "+r)}}),g((function(){g.support.reliableMarginRight||(g.cssHooks.marginRight={get:function(e,t){return g.swap(e,{display:"inline-block"},(function(){if(t)return Fe(e,"marginRight")}))}}),!g.support.pixelPosition&&g.fn.position&&g.each(["top","left"],(function(e,t){g.cssHooks[t]={get:function(e,n){if(n){var i=Fe(e,t);return Ie.test(i)?g(e).position()[t]+"px":i}}}}))})),g.expr&&g.expr.filters&&(g.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!g.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||Fe(e,"display"))},g.expr.filters.visible=function(e){return!g.expr.filters.hidden(e)}),g.each({margin:"",padding:"",border:"Width"},(function(e,t){g.cssHooks[e+t]={expand:function(n){var i,r="string"==typeof n?n.split(" "):[n],o={};for(i=0;i<4;i++)o[e+Ye[i]+t]=r[i]||r[i-2]||r[0];return o}},We.test(e)||(g.cssHooks[e+t].set=et)}));var rt=/%20/g,ot=/\[\]$/,st=/\r?\n/g,at=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,lt=/^(?:select|textarea)/i;function ut(e,t,n,r){var o;if(g.isArray(t))g.each(t,(function(t,o){n||ot.test(e)?r(e,o):ut(e+"["+("object"===i(o)?t:"")+"]",o,n,r)}));else if(n||"object"!==g.type(t))r(e,t);else for(o in t)ut(e+"["+o+"]",t[o],n,r)}g.fn.extend({serialize:function(){return g.param(this.serializeArray())},serializeArray:function(){return this.map((function(){return this.elements?g.makeArray(this.elements):this})).filter((function(){return this.name&&!this.disabled&&(this.checked||lt.test(this.nodeName)||at.test(this.type))})).map((function(e,t){var n=g(this).val();return null==n?null:g.isArray(n)?g.map(n,(function(e,n){return{name:t.name,value:e.replace(st,"\r\n")}})):{name:t.name,value:n.replace(st,"\r\n")}})).get()}}),g.param=function(e,t){var n,i=[],r=function(e,t){t=g.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=g.ajaxSettings&&g.ajaxSettings.traditional),g.isArray(e)||e.jquery&&!g.isPlainObject(e))g.each(e,(function(){r(this.name,this.value)}));else for(n in e)ut(n,e[n],t,r);return i.join("&").replace(rt,"+")};var ct,dt,ft=/#.*$/,pt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,ht=/^(?:GET|HEAD)$/,mt=/^\/\//,gt=/\?/,vt=/)<[^<]*)*<\/script>/gi,yt=/([?&])_=[^&]*/,bt=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,xt=g.fn.load,wt={},Ct={},Tt=["*/"]+["*"];try{ct=s.href}catch(e){(ct=o.createElement("a")).href="",ct=ct.href}function kt(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var i,r,o=t.toLowerCase().split(b),s=0,a=o.length;if(g.isFunction(n))for(;s=0&&(r=e.slice(l,e.length),e=e.slice(0,l)),g.isFunction(t)?(n=t,t=void 0):t&&"object"===i(t)&&(o="POST"),g.ajax({url:e,type:o,dataType:"html",data:t,complete:function(e,t){n&&a.each(n,s||[e.responseText,t,e])}}).done((function(e){s=arguments,a.html(r?g("
    ").append(e.replace(vt,"")).find(r):e)})),this},g.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),(function(e,t){g.fn[t]=function(e){return this.on(t,e)}})),g.each(["get","post"],(function(e,t){g[t]=function(e,n,i,r){return g.isFunction(n)&&(r=r||i,i=n,n=void 0),g.ajax({type:t,url:e,data:n,success:i,dataType:r})}})),g.extend({getScript:function(e,t){return g.get(e,void 0,t,"script")},getJSON:function(e,t,n){return g.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Et(e,g.ajaxSettings):(t=e,e=g.ajaxSettings),Et(e,t),e},ajaxSettings:{url:ct,isLocal:/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/.test(dt[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tt},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":g.parseJSON,"text xml":g.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:kt(wt),ajaxTransport:kt(Ct),ajax:function(e,t){"object"===i(e)&&(t=e,e=void 0);var n,r,o,s,a,l,u,c,d=g.ajaxSetup({},t=t||{}),f=d.context||d,p=f!==d&&(f.nodeType||f instanceof g)?g(f):g.event,h=g.Deferred(),m=g.Callbacks("once memory"),v=d.statusCode||{},y={},x={},w=0,C="canceled",T={readyState:0,setRequestHeader:function(e,t){if(!w){var n=e.toLowerCase();e=x[n]=x[n]||e,y[e]=t}return this},getAllResponseHeaders:function(){return 2===w?r:null},getResponseHeader:function(e){var t;if(2===w){if(!o)for(o={};t=pt.exec(r);)o[t[1].toLowerCase()]=t[2];t=o[e.toLowerCase()]}return void 0===t?null:t},overrideMimeType:function(e){return w||(d.mimeType=e),this},abort:function(e){return e=e||C,s&&s.abort(e),k(0,e),this}};function k(e,t,i,o){var l,c,y,b,x,C=t;2!==w&&(w=2,a&&clearTimeout(a),s=void 0,r=o||"",T.readyState=e>0?4:0,i&&(b=function(e,t,n){var i,r,o,s,a=e.contents,l=e.dataTypes,u=e.responseFields;for(r in u)r in n&&(t[u[r]]=n[r]);for(;"*"===l[0];)l.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("content-type"));if(i)for(r in a)if(a[r]&&a[r].test(i)){l.unshift(r);break}if(l[0]in n)o=l[0];else{for(r in n){if(!l[0]||e.converters[r+" "+l[0]]){o=r;break}s||(s=r)}o=o||s}if(o)return o!==l[0]&&l.unshift(o),n[o]}(d,T,i)),e>=200&&e<300||304===e?(d.ifModified&&((x=T.getResponseHeader("Last-Modified"))&&(g.lastModified[n]=x),(x=T.getResponseHeader("Etag"))&&(g.etag[n]=x)),304===e?(C="notmodified",l=!0):(C=(l=function(e,t){var n,i,r,o,s=e.dataTypes.slice(),a=s[0],l={},u=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(s[1])for(n in e.converters)l[n.toLowerCase()]=e.converters[n];for(;r=s[++u];)if("*"!==r){if("*"!==a&&a!==r){if(!(n=l[a+" "+r]||l["* "+r]))for(i in l)if((o=i.split(" "))[1]===r&&(n=l[a+" "+o[0]]||l["* "+o[0]])){!0===n?n=l[i]:!0!==l[i]&&(r=o[0],s.splice(u--,0,r));break}if(!0!==n)if(n&&e.throws)t=n(t);else try{t=n(t)}catch(e){return{state:"parsererror",error:n?e:"No conversion from "+a+" to "+r}}}a=r}return{state:"success",data:t}}(d,b)).state,c=l.data,l=!(y=l.error))):(y=C,C&&!e||(C="error",e<0&&(e=0))),T.status=e,T.statusText=""+(t||C),l?h.resolveWith(f,[c,C,T]):h.rejectWith(f,[T,C,y]),T.statusCode(v),v=void 0,u&&p.trigger("ajax"+(l?"Success":"Error"),[T,d,l?c:y]),m.fireWith(f,[T,C]),u&&(p.trigger("ajaxComplete",[T,d]),--g.active||g.event.trigger("ajaxStop")))}if(h.promise(T),T.success=T.done,T.error=T.fail,T.complete=m.add,T.statusCode=function(e){var t;if(e)if(w<2)for(t in e)v[t]=[v[t],e[t]];else t=e[T.status],T.always(t);return this},d.url=((e||d.url)+"").replace(ft,"").replace(mt,dt[1]+"//"),d.dataTypes=g.trim(d.dataType||"*").toLowerCase().split(b),null==d.crossDomain&&(l=bt.exec(d.url.toLowerCase()),d.crossDomain=!(!l||l[1]==dt[1]&&l[2]==dt[2]&&(l[3]||("http:"===l[1]?80:443))==(dt[3]||("http:"===dt[1]?80:443)))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=g.param(d.data,d.traditional)),Nt(wt,d,t,T),2===w)return T;if(u=d.global,d.type=d.type.toUpperCase(),d.hasContent=!ht.test(d.type),u&&0==g.active++&&g.event.trigger("ajaxStart"),!d.hasContent&&(d.data&&(d.url+=(gt.test(d.url)?"&":"?")+d.data,delete d.data),n=d.url,!1===d.cache)){var N=g.now(),E=d.url.replace(yt,"$1_="+N);d.url=E+(E===d.url?(gt.test(d.url)?"&":"?")+"_="+N:"")}for(c in(d.data&&d.hasContent&&!1!==d.contentType||t.contentType)&&T.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(n=n||d.url,g.lastModified[n]&&T.setRequestHeader("If-Modified-Since",g.lastModified[n]),g.etag[n]&&T.setRequestHeader("If-None-Match",g.etag[n])),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Tt+"; q=0.01":""):d.accepts["*"]),d.headers)T.setRequestHeader(c,d.headers[c]);if(d.beforeSend&&(!1===d.beforeSend.call(f,T,d)||2===w))return T.abort();for(c in C="abort",{success:1,error:1,complete:1})T[c](d[c]);if(s=Nt(Ct,d,t,T)){T.readyState=1,u&&p.trigger("ajaxSend",[T,d]),d.async&&d.timeout>0&&(a=setTimeout((function(){T.abort("timeout")}),d.timeout));try{w=1,s.send(y,k)}catch(e){if(!(w<2))throw e;k(-1,e)}}else k(-1,"No Transport");return T},active:0,lastModified:{},etag:{}});var $t=[],St=/\?/,At=/(=)\?(?=&|$)|\?\?/,jt=g.now();g.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=$t.pop()||g.expando+"_"+jt++;return this[e]=!0,e}}),g.ajaxPrefilter("json jsonp",(function(t,n,i){var r,o,s,a=t.data,l=t.url,u=!1!==t.jsonp,c=u&&At.test(l),d=u&&!c&&"string"==typeof a&&!(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&At.test(a);if("jsonp"===t.dataTypes[0]||c||d)return r=t.jsonpCallback=g.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,o=e[r],c?t.url=l.replace(At,"$1"+r):d?t.data=a.replace(At,"$1"+r):u&&(t.url+=(St.test(l)?"&":"?")+t.jsonp+"="+r),t.converters["script json"]=function(){return s||g.error(r+" was not called"),s[0]},t.dataTypes[0]="json",e[r]=function(){s=arguments},i.always((function(){e[r]=o,t[r]&&(t.jsonpCallback=n.jsonpCallback,$t.push(r)),s&&g.isFunction(o)&&o(s[0]),s=o=void 0})),"script"})),g.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return g.globalEval(e),e}}}),g.ajaxPrefilter("script",(function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)})),g.ajaxTransport("script",(function(e){if(e.crossDomain){var t,n=o.head||o.getElementsByTagName("head")[0]||o.documentElement;return{send:function(i,r){(t=o.createElement("script")).async="async",e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,i){(i||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,n&&t.parentNode&&n.removeChild(t),t=void 0,i||r(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(0,1)}}}}));var Dt,Lt,Ht=!!e.ActiveXObject&&function(){for(var e in Dt)Dt[e](0,1)},Ft=0;function qt(){try{return new e.XMLHttpRequest}catch(e){}}g.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&qt()||function(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}()}:qt,Lt=g.ajaxSettings.xhr(),g.extend(g.support,{ajax:!!Lt,cors:!!Lt&&"withCredentials"in Lt}),g.support.ajax&&g.ajaxTransport((function(t){var n;if(!t.crossDomain||g.support.cors)return{send:function(i,r){var o,s,a=t.xhr();if(t.username?a.open(t.type,t.url,t.async,t.username,t.password):a.open(t.type,t.url,t.async),t.xhrFields)for(s in t.xhrFields)a[s]=t.xhrFields[s];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)a.setRequestHeader(s,i[s])}catch(e){}a.send(t.hasContent&&t.data||null),n=function(e,i){var s,l,u,c,d;try{if(n&&(i||4===a.readyState))if(n=void 0,o&&(a.onreadystatechange=g.noop,Ht&&delete Dt[o]),i)4!==a.readyState&&a.abort();else{s=a.status,u=a.getAllResponseHeaders(),c={},(d=a.responseXML)&&d.documentElement&&(c.xml=d);try{c.text=a.responseText}catch(e){}try{l=a.statusText}catch(e){l=""}s||!t.isLocal||t.crossDomain?1223===s&&(s=204):s=c.text?200:404}}catch(e){i||r(-1,e)}c&&r(s,l,c,u)},t.async?4===a.readyState?setTimeout(n,0):(o=++Ft,Ht&&(Dt||(Dt={},g(e).unload(Ht)),Dt[o]=n),a.onreadystatechange=n):n()},abort:function(){n&&n(0,1)}}}));var Mt,Pt,Ot=/^(?:toggle|show|hide)$/,_t=new RegExp("^(?:([-+])=|)("+v+")([a-z%]*)$","i"),Bt=/queueHooks$/,Wt=[function(e,t,n){var i,r,o,s,a,l,u,c,d=this,f=e.style,p={},h=[],m=e.nodeType&&Ke(e);n.queue||(null==(u=g._queueHooks(e,"fx")).unqueued&&(u.unqueued=0,c=u.empty.fire,u.empty.fire=function(){u.unqueued||c()}),u.unqueued++,d.always((function(){d.always((function(){u.unqueued--,g.queue(e,"fx").length||u.empty.fire()}))})));1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[f.overflow,f.overflowX,f.overflowY],"inline"===g.css(e,"display")&&"none"===g.css(e,"float")&&(g.support.inlineBlockNeedsLayout&&"inline"!==it(e.nodeName)?f.zoom=1:f.display="inline-block"));n.overflow&&(f.overflow="hidden",g.support.shrinkWrapBlocks||d.done((function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]})));for(i in t)if(o=t[i],Ot.exec(o)){if(delete t[i],o===(m?"hide":"show"))continue;h.push(i)}if(s=h.length)for(a=g._data(e,"fxshow")||g._data(e,"fxshow",{}),m?g(e).show():d.done((function(){g(e).hide()})),d.done((function(){var t;for(t in g.removeData(e,"fxshow",!0),p)g.style(e,t,p[t])})),i=0;i-1?(r=(d=s.position()).top,o=d.left):(r=parseFloat(l)||0,o=parseFloat(u)||0),g.isFunction(t)&&(t=t.call(e,n,a)),null!=t.top&&(c.top=t.top-a.top+r),null!=t.left&&(c.left=t.left-a.left+o),"using"in t?t.using.call(e,c):s.css(c)}},g.fn.extend({position:function(){if(this[0]){var e=this[0],t=this.offsetParent(),n=this.offset(),i=Qt.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(g.css(e,"marginTop"))||0,n.left-=parseFloat(g.css(e,"marginLeft"))||0,i.top+=parseFloat(g.css(t[0],"borderTopWidth"))||0,i.left+=parseFloat(g.css(t[0],"borderLeftWidth"))||0,{top:n.top-i.top,left:n.left-i.left}}},offsetParent:function(){return this.map((function(){for(var e=this.offsetParent||o.body;e&&!Qt.test(e.nodeName)&&"static"===g.css(e,"position");)e=e.offsetParent;return e||o.body}))}}),g.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},(function(e,t){var n=/Y/.test(t);g.fn[e]=function(i){return g.access(this,(function(e,i,r){var o=Yt(e);if(void 0===r)return o?t in o?o[t]:o.document.documentElement[i]:e[i];o?o.scrollTo(n?g(o).scrollLeft():r,n?r:g(o).scrollTop()):e[i]=r}),e,i,arguments.length,null)}})),g.each({Height:"height",Width:"width"},(function(e,t){g.each({padding:"inner"+e,content:t,"":"outer"+e},(function(n,i){g.fn[i]=function(i,r){var o=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===r?"margin":"border");return g.access(this,(function(t,n,i){var r;return g.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===i?g.css(t,n,i,s):g.style(t,n,i,s)}),t,o?i:void 0,o,null)}}))})),e.jQuery=e.$=g,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],(function(){return g}))}(window)},{}]},{},[3,2,1]); \ No newline at end of file + + (function (window, undefined) { + var dirruns, + cachedruns, + assertGetIdNotName, + Expr, + getText, + isXML, + contains, + compile, + sortOrder, + hasDuplicate, + baseHasDuplicate = true, + strundefined = "undefined", + expando = ("sizcache" + Math.random()).replace(".", ""), + document = window.document, + docElem = document.documentElement, + done = 0, + slice = [].slice, + push = [].push, + // Augment a function for special use by Sizzle + markFunction = function markFunction(fn, value) { + fn[expando] = value || true; + return fn; + }, + createCache = function createCache() { + var cache = {}, + keys = []; + return markFunction(function (key, value) { + // Only keep the most recent entries + if (keys.push(key) > Expr.cacheLength) { + delete cache[keys.shift()]; + } + + return cache[key] = value; + }, cache); + }, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + // Regex + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+", + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier (http://www.w3.org/TR/css3-selectors/#attribute-selectors) + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace("w", "w#"), + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + operators = "([*^$|!~]?=)", + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + // Prefer arguments not in parens/brackets, + // then attribute selectors and non-pseudos (denoted by :), + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:" + attributes + ")|[^:]|\\\\.)*|.*))\\)|)", + // For matchExpr.POS and matchExpr.needsContext + pos = ":(nth|eq|gt|lt|first|last|even|odd)(?:\\(((?:-\\d)?\\d*)\\)|)(?=[^-]|$)", + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp("^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g"), + rcomma = new RegExp("^" + whitespace + "*," + whitespace + "*"), + rcombinators = new RegExp("^" + whitespace + "*([\\x20\\t\\r\\n\\f>+~])" + whitespace + "*"), + rpseudo = new RegExp(pseudos), + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/, + rnot = /^:not/, + rsibling = /[\x20\t\r\n\f]*[+~]/, + rendsWithNot = /:not\($/, + rheader = /h\d/i, + rinputs = /input|select|textarea|button/i, + rbackslash = /\\(?!\\)/g, + matchExpr = { + "ID": new RegExp("^#(" + characterEncoding + ")"), + "CLASS": new RegExp("^\\.(" + characterEncoding + ")"), + "NAME": new RegExp("^\\[name=['\"]?(" + characterEncoding + ")['\"]?\\]"), + "TAG": new RegExp("^(" + characterEncoding.replace("w", "w*") + ")"), + "ATTR": new RegExp("^" + attributes), + "PSEUDO": new RegExp("^" + pseudos), + "CHILD": new RegExp("^:(only|nth|last|first)-child(?:\\(" + whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i"), + "POS": new RegExp(pos, "ig"), + // For use in libraries implementing .is() + "needsContext": new RegExp("^" + whitespace + "*[>+~]|" + pos, "i") + }, + // Support + // Used for testing something on an element + assert = function assert(fn) { + var div = document.createElement("div"); + + try { + return fn(div); + } catch (e) { + return false; + } finally { + // release memory in IE + div = null; + } + }, + // Check if getElementsByTagName("*") returns only elements + assertTagNameNoComments = assert(function (div) { + div.appendChild(document.createComment("")); + return !div.getElementsByTagName("*").length; + }), + // Check if getAttribute returns normalized href attributes + assertHrefNotNormalized = assert(function (div) { + div.innerHTML = ""; + return div.firstChild && _typeof(div.firstChild.getAttribute) !== strundefined && div.firstChild.getAttribute("href") === "#"; + }), + // Check if attributes should be retrieved by attribute nodes + assertAttributes = assert(function (div) { + div.innerHTML = ""; + + var type = _typeof(div.lastChild.getAttribute("multiple")); // IE8 returns a string for some attributes even when not present + + + return type !== "boolean" && type !== "string"; + }), + // Check if getElementsByClassName can be trusted + assertUsableClassName = assert(function (div) { + // Opera can't find a second classname (in 9.6) + div.innerHTML = ""; + + if (!div.getElementsByClassName || !div.getElementsByClassName("e").length) { + return false; + } // Safari 3.2 caches class attributes and doesn't catch changes + + + div.lastChild.className = "e"; + return div.getElementsByClassName("e").length === 2; + }), + // Check if getElementById returns elements by name + // Check if getElementsByName privileges form controls or returns elements by ID + assertUsableName = assert(function (div) { + // Inject content + div.id = expando + 0; + div.innerHTML = "
    "; + docElem.insertBefore(div, docElem.firstChild); // Test + + var pass = document.getElementsByName && // buggy browsers will return fewer than the correct 2 + document.getElementsByName(expando).length === 2 + // buggy browsers will return more than the correct 0 + document.getElementsByName(expando + 0).length; + assertGetIdNotName = !document.getElementById(expando); // Cleanup + + docElem.removeChild(div); + return pass; + }); // If slice is not available, provide a backup + + + try { + slice.call(docElem.childNodes, 0)[0].nodeType; + } catch (e) { + slice = function slice(i) { + var elem, + results = []; + + for (; elem = this[i]; i++) { + results.push(elem); + } + + return results; + }; + } + + function Sizzle(selector, context, results, seed) { + results = results || []; + context = context || document; + var match, + elem, + xml, + m, + nodeType = context.nodeType; + + if (nodeType !== 1 && nodeType !== 9) { + return []; + } + + if (!selector || typeof selector !== "string") { + return results; + } + + xml = isXML(context); + + if (!xml && !seed) { + if (match = rquickExpr.exec(selector)) { + // Speed-up: Sizzle("#ID") + if (m = match[1]) { + if (nodeType === 9) { + elem = context.getElementById(m); // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + + if (elem && elem.parentNode) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if (elem.id === m) { + results.push(elem); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if (context.ownerDocument && (elem = context.ownerDocument.getElementById(m)) && contains(context, elem) && elem.id === m) { + results.push(elem); + return results; + } + } // Speed-up: Sizzle("TAG") + + } else if (match[2]) { + push.apply(results, slice.call(context.getElementsByTagName(selector), 0)); + return results; // Speed-up: Sizzle(".CLASS") + } else if ((m = match[3]) && assertUsableClassName && context.getElementsByClassName) { + push.apply(results, slice.call(context.getElementsByClassName(m), 0)); + return results; + } + } + } // All others + + + return select(selector, context, results, seed, xml); + } + + Sizzle.matches = function (expr, elements) { + return Sizzle(expr, null, null, elements); + }; + + Sizzle.matchesSelector = function (elem, expr) { + return Sizzle(expr, null, null, [elem]).length > 0; + }; // Returns a function to use in pseudos for input types + + + function createInputPseudo(type) { + return function (elem) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; + } // Returns a function to use in pseudos for buttons + + + function createButtonPseudo(type) { + return function (elem) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; + } + /** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ + + + getText = Sizzle.getText = function (elem) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if (nodeType) { + if (nodeType === 1 || nodeType === 9 || nodeType === 11) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if (typeof elem.textContent === "string") { + return elem.textContent; + } else { + // Traverse its children + for (elem = elem.firstChild; elem; elem = elem.nextSibling) { + ret += getText(elem); + } + } + } else if (nodeType === 3 || nodeType === 4) { + return elem.nodeValue; + } // Do not include comment or processing instruction nodes + + } else { + // If no nodeType, this is expected to be an array + for (; node = elem[i]; i++) { + // Do not traverse comment nodes + ret += getText(node); + } + } + + return ret; + }; + + isXML = Sizzle.isXML = function isXML(elem) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; + }; // Element contains another + + + contains = Sizzle.contains = docElem.contains ? function (a, b) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!(bup && bup.nodeType === 1 && adown.contains && adown.contains(bup)); + } : docElem.compareDocumentPosition ? function (a, b) { + return b && !!(a.compareDocumentPosition(b) & 16); + } : function (a, b) { + while (b = b.parentNode) { + if (b === a) { + return true; + } + } + + return false; + }; + + Sizzle.attr = function (elem, name) { + var attr, + xml = isXML(elem); + + if (!xml) { + name = name.toLowerCase(); + } + + if (Expr.attrHandle[name]) { + return Expr.attrHandle[name](elem); + } + + if (assertAttributes || xml) { + return elem.getAttribute(name); + } + + attr = elem.getAttributeNode(name); + return attr ? typeof elem[name] === "boolean" ? elem[name] ? name : null : attr.specified ? attr.value : null : null; + }; + + Expr = Sizzle.selectors = { + // Can be adjusted by the user + cacheLength: 50, + createPseudo: markFunction, + match: matchExpr, + order: new RegExp("ID|TAG" + (assertUsableName ? "|NAME" : "") + (assertUsableClassName ? "|CLASS" : "")), + // IE6/7 return a modified href + attrHandle: assertHrefNotNormalized ? {} : { + "href": function href(elem) { + return elem.getAttribute("href", 2); + }, + "type": function type(elem) { + return elem.getAttribute("type"); + } + }, + find: { + "ID": assertGetIdNotName ? function (id, context, xml) { + if (_typeof(context.getElementById) !== strundefined && !xml) { + var m = context.getElementById(id); // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + + return m && m.parentNode ? [m] : []; + } + } : function (id, context, xml) { + if (_typeof(context.getElementById) !== strundefined && !xml) { + var m = context.getElementById(id); + return m ? m.id === id || _typeof(m.getAttributeNode) !== strundefined && m.getAttributeNode("id").value === id ? [m] : undefined : []; + } + }, + "TAG": assertTagNameNoComments ? function (tag, context) { + if (_typeof(context.getElementsByTagName) !== strundefined) { + return context.getElementsByTagName(tag); + } + } : function (tag, context) { + var results = context.getElementsByTagName(tag); // Filter out possible comments + + if (tag === "*") { + var elem, + tmp = [], + i = 0; + + for (; elem = results[i]; i++) { + if (elem.nodeType === 1) { + tmp.push(elem); + } + } + + return tmp; + } + + return results; + }, + "NAME": function NAME(tag, context) { + if (_typeof(context.getElementsByName) !== strundefined) { + return context.getElementsByName(name); + } + }, + "CLASS": function CLASS(className, context, xml) { + if (_typeof(context.getElementsByClassName) !== strundefined && !xml) { + return context.getElementsByClassName(className); + } + } + }, + relative: { + ">": { + dir: "parentNode", + first: true + }, + " ": { + dir: "parentNode" + }, + "+": { + dir: "previousSibling", + first: true + }, + "~": { + dir: "previousSibling" + } + }, + preFilter: { + "ATTR": function ATTR(match) { + match[1] = match[1].replace(rbackslash, ""); // Move the given value to match[3] whether quoted or unquoted + + match[3] = (match[4] || match[5] || "").replace(rbackslash, ""); + + if (match[2] === "~=") { + match[3] = " " + match[3] + " "; + } + + return match.slice(0, 4); + }, + "CHILD": function CHILD(match) { + /* matches from matchExpr.CHILD + 1 type (only|nth|...) + 2 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 3 xn-component of xn+y argument ([+-]?\d*n|) + 4 sign of xn-component + 5 x of xn-component + 6 sign of y-component + 7 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if (match[1] === "nth") { + // nth-child requires argument + if (!match[2]) { + Sizzle.error(match[0]); + } // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + + + match[3] = +(match[3] ? match[4] + (match[5] || 1) : 2 * (match[2] === "even" || match[2] === "odd")); + match[4] = +(match[6] + match[7] || match[2] === "odd"); // other types prohibit arguments + } else if (match[2]) { + Sizzle.error(match[0]); + } + + return match; + }, + "PSEUDO": function PSEUDO(match, context, xml) { + var unquoted, excess; + + if (matchExpr["CHILD"].test(match[0])) { + return null; + } + + if (match[3]) { + match[2] = match[3]; + } else if (unquoted = match[4]) { + // Only check arguments that contain a pseudo + if (rpseudo.test(unquoted) && ( // Get excess from tokenize (recursively) + excess = tokenize(unquoted, context, xml, true)) && ( // advance to the next closing parenthesis + excess = unquoted.indexOf(")", unquoted.length - excess) - unquoted.length)) { + // excess is a negative index + unquoted = unquoted.slice(0, excess); + match[0] = match[0].slice(0, excess); + } + + match[2] = unquoted; + } // Return only captures needed by the pseudo filter method (type and argument) + + + return match.slice(0, 3); + } + }, + filter: { + "ID": assertGetIdNotName ? function (id) { + id = id.replace(rbackslash, ""); + return function (elem) { + return elem.getAttribute("id") === id; + }; + } : function (id) { + id = id.replace(rbackslash, ""); + return function (elem) { + var node = _typeof(elem.getAttributeNode) !== strundefined && elem.getAttributeNode("id"); + return node && node.value === id; + }; + }, + "TAG": function TAG(nodeName) { + if (nodeName === "*") { + return function () { + return true; + }; + } + + nodeName = nodeName.replace(rbackslash, "").toLowerCase(); + return function (elem) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + "CLASS": function CLASS(className) { + var pattern = classCache[expando][className]; + + if (!pattern) { + pattern = classCache(className, new RegExp("(^|" + whitespace + ")" + className + "(" + whitespace + "|$)")); + } + + return function (elem) { + return pattern.test(elem.className || _typeof(elem.getAttribute) !== strundefined && elem.getAttribute("class") || ""); + }; + }, + "ATTR": function ATTR(name, operator, check) { + if (!operator) { + return function (elem) { + return Sizzle.attr(elem, name) != null; + }; + } + + return function (elem) { + var result = Sizzle.attr(elem, name), + value = result + ""; + + if (result == null) { + return operator === "!="; + } + + switch (operator) { + case "=": + return value === check; + + case "!=": + return value !== check; + + case "^=": + return check && value.indexOf(check) === 0; + + case "*=": + return check && value.indexOf(check) > -1; + + case "$=": + return check && value.substr(value.length - check.length) === check; + + case "~=": + return (" " + value + " ").indexOf(check) > -1; + + case "|=": + return value === check || value.substr(0, check.length + 1) === check + "-"; + } + }; + }, + "CHILD": function CHILD(type, argument, first, last) { + if (type === "nth") { + var doneName = done++; + return function (elem) { + var parent, + diff, + count = 0, + node = elem; + + if (first === 1 && last === 0) { + return true; + } + + parent = elem.parentNode; + + if (parent && (parent[expando] !== doneName || !elem.sizset)) { + for (node = parent.firstChild; node; node = node.nextSibling) { + if (node.nodeType === 1) { + node.sizset = ++count; + + if (node === elem) { + break; + } + } + } + + parent[expando] = doneName; + } + + diff = elem.sizset - last; + + if (first === 0) { + return diff === 0; + } else { + return diff % first === 0 && diff / first >= 0; + } + }; + } + + return function (elem) { + var node = elem; + + switch (type) { + case "only": + case "first": + while (node = node.previousSibling) { + if (node.nodeType === 1) { + return false; + } + } + + if (type === "first") { + return true; + } + + node = elem; + + /* falls through */ + + case "last": + while (node = node.nextSibling) { + if (node.nodeType === 1) { + return false; + } + } + + return true; + } + }; + }, + "PSEUDO": function PSEUDO(pseudo, argument, context, xml) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + var args, + fn = Expr.pseudos[pseudo] || Expr.pseudos[pseudo.toLowerCase()]; + + if (!fn) { + Sizzle.error("unsupported pseudo: " + pseudo); + } // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + + + if (!fn[expando]) { + if (fn.length > 1) { + args = [pseudo, pseudo, "", argument]; + return function (elem) { + return fn(elem, 0, args); + }; + } + + return fn; + } + + return fn(argument, context, xml); + } + }, + pseudos: { + "not": markFunction(function (selector, context, xml) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var matcher = compile(selector.replace(rtrim, "$1"), context, xml); + return function (elem) { + return !matcher(elem); + }; + }), + "enabled": function enabled(elem) { + return elem.disabled === false; + }, + "disabled": function disabled(elem) { + return elem.disabled === true; + }, + "checked": function checked(elem) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return nodeName === "input" && !!elem.checked || nodeName === "option" && !!elem.selected; + }, + "selected": function selected(elem) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if (elem.parentNode) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + "parent": function parent(elem) { + return !Expr.pseudos["empty"](elem); + }, + "empty": function empty(elem) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + var nodeType; + elem = elem.firstChild; + + while (elem) { + if (elem.nodeName > "@" || (nodeType = elem.nodeType) === 3 || nodeType === 4) { + return false; + } + + elem = elem.nextSibling; + } + + return true; + }, + "contains": markFunction(function (text) { + return function (elem) { + return (elem.textContent || elem.innerText || getText(elem)).indexOf(text) > -1; + }; + }), + "has": markFunction(function (selector) { + return function (elem) { + return Sizzle(selector, elem).length > 0; + }; + }), + "header": function header(elem) { + return rheader.test(elem.nodeName); + }, + "text": function text(elem) { + var type, attr; // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + + return elem.nodeName.toLowerCase() === "input" && (type = elem.type) === "text" && ((attr = elem.getAttribute("type")) == null || attr.toLowerCase() === type); + }, + // Input types + "radio": createInputPseudo("radio"), + "checkbox": createInputPseudo("checkbox"), + "file": createInputPseudo("file"), + "password": createInputPseudo("password"), + "image": createInputPseudo("image"), + "submit": createButtonPseudo("submit"), + "reset": createButtonPseudo("reset"), + "button": function button(elem) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + "input": function input(elem) { + return rinputs.test(elem.nodeName); + }, + "focus": function focus(elem) { + var doc = elem.ownerDocument; + return elem === doc.activeElement && (!doc.hasFocus || doc.hasFocus()) && !!(elem.type || elem.href); + }, + "active": function active(elem) { + return elem === elem.ownerDocument.activeElement; + } + }, + setFilters: { + "first": function first(elements, argument, not) { + return not ? elements.slice(1) : [elements[0]]; + }, + "last": function last(elements, argument, not) { + var elem = elements.pop(); + return not ? elements : [elem]; + }, + "even": function even(elements, argument, not) { + var results = [], + i = not ? 1 : 0, + len = elements.length; + + for (; i < len; i = i + 2) { + results.push(elements[i]); + } + + return results; + }, + "odd": function odd(elements, argument, not) { + var results = [], + i = not ? 0 : 1, + len = elements.length; + + for (; i < len; i = i + 2) { + results.push(elements[i]); + } + + return results; + }, + "lt": function lt(elements, argument, not) { + return not ? elements.slice(+argument) : elements.slice(0, +argument); + }, + "gt": function gt(elements, argument, not) { + return not ? elements.slice(0, +argument + 1) : elements.slice(+argument + 1); + }, + "eq": function eq(elements, argument, not) { + var elem = elements.splice(+argument, 1); + return not ? elements : elem; + } + } + }; + + function siblingCheck(a, b, ret) { + if (a === b) { + return ret; + } + + var cur = a.nextSibling; + + while (cur) { + if (cur === b) { + return -1; + } + + cur = cur.nextSibling; + } + + return 1; + } + + sortOrder = docElem.compareDocumentPosition ? function (a, b) { + if (a === b) { + hasDuplicate = true; + return 0; + } + + return (!a.compareDocumentPosition || !b.compareDocumentPosition ? a.compareDocumentPosition : a.compareDocumentPosition(b) & 4) ? -1 : 1; + } : function (a, b) { + // The nodes are identical, we can exit early + if (a === b) { + hasDuplicate = true; + return 0; // Fallback to using sourceIndex (in IE) if it's available on both nodes + } else if (a.sourceIndex && b.sourceIndex) { + return a.sourceIndex - b.sourceIndex; + } + + var al, + bl, + ap = [], + bp = [], + aup = a.parentNode, + bup = b.parentNode, + cur = aup; // If the nodes are siblings (or identical) we can do a quick check + + if (aup === bup) { + return siblingCheck(a, b); // If no parents were found then the nodes are disconnected + } else if (!aup) { + return -1; + } else if (!bup) { + return 1; + } // Otherwise they're somewhere else in the tree so we need + // to build up a full list of the parentNodes for comparison + + + while (cur) { + ap.unshift(cur); + cur = cur.parentNode; + } + + cur = bup; + + while (cur) { + bp.unshift(cur); + cur = cur.parentNode; + } + + al = ap.length; + bl = bp.length; // Start walking down the tree looking for a discrepancy + + for (var i = 0; i < al && i < bl; i++) { + if (ap[i] !== bp[i]) { + return siblingCheck(ap[i], bp[i]); + } + } // We ended someplace up the tree so do a sibling check + + + return i === al ? siblingCheck(a, bp[i], -1) : siblingCheck(ap[i], b, 1); + }; // Always assume the presence of duplicates if sort doesn't + // pass them to our comparison function (as in Google Chrome). + + [0, 0].sort(sortOrder); + baseHasDuplicate = !hasDuplicate; // Document sorting and removing duplicates + + Sizzle.uniqueSort = function (results) { + var elem, + i = 1; + hasDuplicate = baseHasDuplicate; + results.sort(sortOrder); + + if (hasDuplicate) { + for (; elem = results[i]; i++) { + if (elem === results[i - 1]) { + results.splice(i--, 1); + } + } + } + + return results; + }; + + Sizzle.error = function (msg) { + throw new Error("Syntax error, unrecognized expression: " + msg); + }; + + function tokenize(selector, context, xml, parseOnly) { + var matched, + match, + tokens, + type, + soFar, + groups, + group, + i, + preFilters, + filters, + checkContext = !xml && context !== document, + // Token cache should maintain spaces + key = (checkContext ? "" : "") + selector.replace(rtrim, "$1"), + cached = tokenCache[expando][key]; + + if (cached) { + return parseOnly ? 0 : slice.call(cached, 0); + } + + soFar = selector; + groups = []; + i = 0; + preFilters = Expr.preFilter; + filters = Expr.filter; + + while (soFar) { + // Comma and first run + if (!matched || (match = rcomma.exec(soFar))) { + if (match) { + soFar = soFar.slice(match[0].length); + tokens.selector = group; + } + + groups.push(tokens = []); + group = ""; // Need to make sure we're within a narrower context if necessary + // Adding a descendant combinator will generate what is needed + + if (checkContext) { + soFar = " " + soFar; + } + } + + matched = false; // Combinators + + if (match = rcombinators.exec(soFar)) { + group += match[0]; + soFar = soFar.slice(match[0].length); // Cast descendant combinators to space + + matched = tokens.push({ + part: match.pop().replace(rtrim, " "), + string: match[0], + captures: match + }); + } // Filters + + + for (type in filters) { + if ((match = matchExpr[type].exec(soFar)) && (!preFilters[type] || (match = preFilters[type](match, context, xml)))) { + group += match[0]; + soFar = soFar.slice(match[0].length); + matched = tokens.push({ + part: type, + string: match.shift(), + captures: match + }); + } + } + + if (!matched) { + break; + } + } // Attach the full group as a selector + + + if (group) { + tokens.selector = group; + } // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + + + return parseOnly ? soFar.length : soFar ? Sizzle.error(selector) : // Cache the tokens + slice.call(tokenCache(key, groups), 0); + } + + function addCombinator(matcher, combinator, context, xml) { + var dir = combinator.dir, + doneName = done++; + + if (!matcher) { + // If there is no matcher to check, check against the context + matcher = function matcher(elem) { + return elem === context; + }; + } + + return combinator.first ? function (elem) { + while (elem = elem[dir]) { + if (elem.nodeType === 1) { + return matcher(elem) && elem; + } + } + } : xml ? function (elem) { + while (elem = elem[dir]) { + if (elem.nodeType === 1) { + if (matcher(elem)) { + return elem; + } + } + } + } : function (elem) { + var cache, + dirkey = doneName + "." + dirruns, + cachedkey = dirkey + "." + cachedruns; + + while (elem = elem[dir]) { + if (elem.nodeType === 1) { + if ((cache = elem[expando]) === cachedkey) { + return elem.sizset; + } else if (typeof cache === "string" && cache.indexOf(dirkey) === 0) { + if (elem.sizset) { + return elem; + } + } else { + elem[expando] = cachedkey; + + if (matcher(elem)) { + elem.sizset = true; + return elem; + } + + elem.sizset = false; + } + } + } + }; + } + + function addMatcher(higher, deeper) { + return higher ? function (elem) { + var result = deeper(elem); + return result && higher(result === true ? elem : result); + } : deeper; + } // ["TAG", ">", "ID", " ", "CLASS"] + + + function matcherFromTokens(tokens, context, xml) { + var token, + matcher, + i = 0; + + for (; token = tokens[i]; i++) { + if (Expr.relative[token.part]) { + matcher = addCombinator(matcher, Expr.relative[token.part], context, xml); + } else { + matcher = addMatcher(matcher, Expr.filter[token.part].apply(null, token.captures.concat(context, xml))); + } + } + + return matcher; + } + + function matcherFromGroupMatchers(matchers) { + return function (elem) { + var matcher, + j = 0; + + for (; matcher = matchers[j]; j++) { + if (matcher(elem)) { + return true; + } + } + + return false; + }; + } + + compile = Sizzle.compile = function (selector, context, xml) { + var group, + i, + len, + cached = compilerCache[expando][selector]; // Return a cached group function if already generated (context dependent) + + if (cached && cached.context === context) { + return cached; + } // Generate a function of recursive functions that can be used to check each element + + + group = tokenize(selector, context, xml); + + for (i = 0, len = group.length; i < len; i++) { + group[i] = matcherFromTokens(group[i], context, xml); + } // Cache the compiled function + + + cached = compilerCache(selector, matcherFromGroupMatchers(group)); + cached.context = context; + cached.runs = cached.dirruns = 0; + return cached; + }; + + function multipleContexts(selector, contexts, results, seed) { + var i = 0, + len = contexts.length; + + for (; i < len; i++) { + Sizzle(selector, contexts[i], results, seed); + } + } + + function handlePOSGroup(selector, posfilter, argument, contexts, seed, not) { + var results, + fn = Expr.setFilters[posfilter.toLowerCase()]; + + if (!fn) { + Sizzle.error(posfilter); + } + + if (selector || !(results = seed)) { + multipleContexts(selector || "*", contexts, results = [], seed); + } + + return results.length > 0 ? fn(results, argument, not) : []; + } + + function handlePOS(groups, context, results, seed) { + var group, + part, + j, + groupLen, + token, + selector, + anchor, + elements, + match, + matched, + lastIndex, + currentContexts, + not, + i = 0, + len = groups.length, + rpos = matchExpr["POS"], + // This is generated here in case matchExpr["POS"] is extended + rposgroups = new RegExp("^" + rpos.source + "(?!" + whitespace + ")", "i"), + // This is for making sure non-participating + // matching groups are represented cross-browser (IE6-8) + setUndefined = function setUndefined() { + var i = 1, + len = arguments.length - 2; + + for (; i < len; i++) { + if (arguments[i] === undefined) { + match[i] = undefined; + } + } + }; + + for (; i < len; i++) { + group = groups[i]; + part = ""; + elements = seed; + + for (j = 0, groupLen = group.length; j < groupLen; j++) { + token = group[j]; + selector = token.string; + + if (token.part === "PSEUDO") { + // Reset regex index to 0 + rpos.exec(""); + anchor = 0; + + while (match = rpos.exec(selector)) { + matched = true; + lastIndex = rpos.lastIndex = match.index + match[0].length; + + if (lastIndex > anchor) { + part += selector.slice(anchor, match.index); + anchor = lastIndex; + currentContexts = [context]; + + if (rcombinators.test(part)) { + if (elements) { + currentContexts = elements; + } + + elements = seed; + } + + if (not = rendsWithNot.test(part)) { + part = part.slice(0, -5).replace(rcombinators, "$&*"); + anchor++; + } + + if (match.length > 1) { + match[0].replace(rposgroups, setUndefined); + } + + elements = handlePOSGroup(part, match[1], match[2], currentContexts, elements, not); + } + + part = ""; + } + } + + if (!matched) { + part += selector; + } + + matched = false; + } + + if (part) { + if (rcombinators.test(part)) { + multipleContexts(part, elements || [context], results, seed); + } else { + Sizzle(part, context, results, seed ? seed.concat(elements) : elements); + } + } else { + push.apply(results, elements); + } + } // Do not sort if this is a single filter + + + return len === 1 ? results : Sizzle.uniqueSort(results); + } + + function select(selector, context, results, seed, xml) { + // Remove excessive whitespace + selector = selector.replace(rtrim, "$1"); + var elements, + matcher, + cached, + elem, + i, + tokens, + token, + lastToken, + findContext, + type, + match = tokenize(selector, context, xml), + contextNodeType = context.nodeType; // POS handling + + if (matchExpr["POS"].test(selector)) { + return handlePOS(match, context, results, seed); + } + + if (seed) { + elements = slice.call(seed, 0); // To maintain document order, only narrow the + // set if there is one group + } else if (match.length === 1) { + // Take a shortcut and set the context if the root selector is an ID + if ((tokens = slice.call(match[0], 0)).length > 2 && (token = tokens[0]).part === "ID" && contextNodeType === 9 && !xml && Expr.relative[tokens[1].part]) { + context = Expr.find["ID"](token.captures[0].replace(rbackslash, ""), context, xml)[0]; + + if (!context) { + return results; + } + + selector = selector.slice(tokens.shift().string.length); + } + + findContext = (match = rsibling.exec(tokens[0].string)) && !match.index && context.parentNode || context; // Reduce the set if possible + + lastToken = ""; + + for (i = tokens.length - 1; i >= 0; i--) { + token = tokens[i]; + type = token.part; + lastToken = token.string + lastToken; + + if (Expr.relative[type]) { + break; + } + + if (Expr.order.test(type)) { + elements = Expr.find[type](token.captures[0].replace(rbackslash, ""), findContext, xml); + + if (elements == null) { + continue; + } else { + selector = selector.slice(0, selector.length - lastToken.length) + lastToken.replace(matchExpr[type], ""); + + if (!selector) { + push.apply(results, slice.call(elements, 0)); + } + + break; + } + } + } + } // Only loop over the given elements once + + + if (selector) { + matcher = compile(selector, context, xml); + dirruns = matcher.dirruns++; + + if (elements == null) { + elements = Expr.find["TAG"]("*", rsibling.test(selector) && context.parentNode || context); + } + + for (i = 0; elem = elements[i]; i++) { + cachedruns = matcher.runs++; + + if (matcher(elem)) { + results.push(elem); + } + } + } + + return results; + } + + if (document.querySelectorAll) { + (function () { + var disconnectedMatch, + oldSelect = select, + rescape = /'|\\/g, + rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, + rbuggyQSA = [], + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + // A support test would require too much code (would include document ready) + // just skip matchesSelector for :active + rbuggyMatches = [":active"], + matches = docElem.matchesSelector || docElem.mozMatchesSelector || docElem.webkitMatchesSelector || docElem.oMatchesSelector || docElem.msMatchesSelector; // Build QSA regex + // Regex strategy adopted from Diego Perini + + assert(function (div) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explictly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; // IE8 - Some boolean attributes are not treated correctly + + if (!div.querySelectorAll("[selected]").length) { + rbuggyQSA.push("\\[" + whitespace + "*(?:checked|disabled|ismap|multiple|readonly|selected|value)"); + } // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here (do not put tests after this one) + + + if (!div.querySelectorAll(":checked").length) { + rbuggyQSA.push(":checked"); + } + }); + assert(function (div) { + // Opera 10-12/IE9 - ^= $= *= and empty values + // Should not select anything + div.innerHTML = "

    "; + + if (div.querySelectorAll("[test^='']").length) { + rbuggyQSA.push("[*^$]=" + whitespace + "*(?:\"\"|'')"); + } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here (do not put tests after this one) + + + div.innerHTML = ""; + + if (!div.querySelectorAll(":enabled").length) { + rbuggyQSA.push(":enabled", ":disabled"); + } + }); + rbuggyQSA = rbuggyQSA.length && new RegExp(rbuggyQSA.join("|")); + + select = function select(selector, context, results, seed, xml) { + // Only use querySelectorAll when not filtering, + // when this is not xml, + // and when no QSA bugs apply + if (!seed && !xml && (!rbuggyQSA || !rbuggyQSA.test(selector))) { + if (context.nodeType === 9) { + try { + push.apply(results, slice.call(context.querySelectorAll(selector), 0)); + return results; + } catch (qsaError) {} // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + + } else if (context.nodeType === 1 && context.nodeName.toLowerCase() !== "object") { + var groups, + i, + len, + old = context.getAttribute("id"), + nid = old || expando, + newContext = rsibling.test(selector) && context.parentNode || context; + + if (old) { + nid = nid.replace(rescape, "\\$&"); + } else { + context.setAttribute("id", nid); + } + + groups = tokenize(selector, context, xml); // Trailing space is unnecessary + // There is always a context check + + nid = "[id='" + nid + "']"; + + for (i = 0, len = groups.length; i < len; i++) { + groups[i] = nid + groups[i].selector; + } + + try { + push.apply(results, slice.call(newContext.querySelectorAll(groups.join(",")), 0)); + return results; + } catch (qsaError) {} finally { + if (!old) { + context.removeAttribute("id"); + } + } + } + } + + return oldSelect(selector, context, results, seed, xml); + }; + + if (matches) { + assert(function (div) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + disconnectedMatch = matches.call(div, "div"); // This should fail with an exception + // Gecko does not error, returns false instead + + try { + matches.call(div, "[test!='']:sizzle"); + rbuggyMatches.push(matchExpr["PSEUDO"].source, matchExpr["POS"].source, "!="); + } catch (e) {} + }); // rbuggyMatches always contains :active, so no need for a length check + + rbuggyMatches = + /* rbuggyMatches.length && */ + new RegExp(rbuggyMatches.join("|")); + + Sizzle.matchesSelector = function (elem, expr) { + // Make sure that attribute selectors are quoted + expr = expr.replace(rattributeQuotes, "='$1']"); // rbuggyMatches always contains :active, so no need for an existence check + + if (!isXML(elem) && !rbuggyMatches.test(expr) && (!rbuggyQSA || !rbuggyQSA.test(expr))) { + try { + var ret = matches.call(elem, expr); // IE 9's matchesSelector returns false on disconnected nodes + + if (ret || disconnectedMatch || // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11) { + return ret; + } + } catch (e) {} + } + + return Sizzle(expr, null, null, [elem]).length > 0; + }; + } + })(); + } // Deprecated + + + Expr.setFilters["nth"] = Expr.setFilters["eq"]; // Back-compat + + Expr.filters = Expr.pseudos; // Override sizzle attribute retrieval + + Sizzle.attr = jQuery.attr; + jQuery.find = Sizzle; + jQuery.expr = Sizzle.selectors; + jQuery.expr[":"] = jQuery.expr.pseudos; + jQuery.unique = Sizzle.uniqueSort; + jQuery.text = Sizzle.getText; + jQuery.isXMLDoc = Sizzle.isXML; + jQuery.contains = Sizzle.contains; + })(window); + + var runtil = /Until$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + isSimple = /^.[^:#\[\.,]*$/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + jQuery.fn.extend({ + find: function find(selector) { + var i, + l, + length, + n, + r, + ret, + self = this; + + if (typeof selector !== "string") { + return jQuery(selector).filter(function () { + for (i = 0, l = self.length; i < l; i++) { + if (jQuery.contains(self[i], this)) { + return true; + } + } + }); + } + + ret = this.pushStack("", "find", selector); + + for (i = 0, l = this.length; i < l; i++) { + length = ret.length; + jQuery.find(selector, this[i], ret); + + if (i > 0) { + // Make sure that the results are unique + for (n = length; n < ret.length; n++) { + for (r = 0; r < length; r++) { + if (ret[r] === ret[n]) { + ret.splice(n--, 1); + break; + } + } + } + } + } + + return ret; + }, + has: function has(target) { + var i, + targets = jQuery(target, this), + len = targets.length; + return this.filter(function () { + for (i = 0; i < len; i++) { + if (jQuery.contains(this, targets[i])) { + return true; + } + } + }); + }, + not: function not(selector) { + return this.pushStack(winnow(this, selector, false), "not", selector); + }, + filter: function filter(selector) { + return this.pushStack(winnow(this, selector, true), "filter", selector); + }, + is: function is(selector) { + return !!selector && (typeof selector === "string" ? // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + rneedsContext.test(selector) ? jQuery(selector, this.context).index(this[0]) >= 0 : jQuery.filter(selector, this).length > 0 : this.filter(selector).length > 0); + }, + closest: function closest(selectors, context) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test(selectors) || typeof selectors !== "string" ? jQuery(selectors, context || this.context) : 0; + + for (; i < l; i++) { + cur = this[i]; + + while (cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11) { + if (pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors)) { + ret.push(cur); + break; + } + + cur = cur.parentNode; + } + } + + ret = ret.length > 1 ? jQuery.unique(ret) : ret; + return this.pushStack(ret, "closest", selectors); + }, + // Determine the position of an element within + // the matched set of elements + index: function index(elem) { + // No argument, return index in parent + if (!elem) { + return this[0] && this[0].parentNode ? this.prevAll().length : -1; + } // index in selector + + + if (typeof elem === "string") { + return jQuery.inArray(this[0], jQuery(elem)); + } // Locate the position of the desired element + + + return jQuery.inArray( // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this); + }, + add: function add(selector, context) { + var set = typeof selector === "string" ? jQuery(selector, context) : jQuery.makeArray(selector && selector.nodeType ? [selector] : selector), + all = jQuery.merge(this.get(), set); + return this.pushStack(isDisconnected(set[0]) || isDisconnected(all[0]) ? all : jQuery.unique(all)); + }, + addBack: function addBack(selector) { + return this.add(selector == null ? this.prevObject : this.prevObject.filter(selector)); + } + }); + jQuery.fn.andSelf = jQuery.fn.addBack; // A painfully simple check to see if an element is disconnected + // from a document (should be improved, where feasible). + + function isDisconnected(node) { + return !node || !node.parentNode || node.parentNode.nodeType === 11; + } + + function sibling(cur, dir) { + do { + cur = cur[dir]; + } while (cur && cur.nodeType !== 1); + + return cur; + } + + jQuery.each({ + parent: function parent(elem) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function parents(elem) { + return jQuery.dir(elem, "parentNode"); + }, + parentsUntil: function parentsUntil(elem, i, until) { + return jQuery.dir(elem, "parentNode", until); + }, + next: function next(elem) { + return sibling(elem, "nextSibling"); + }, + prev: function prev(elem) { + return sibling(elem, "previousSibling"); + }, + nextAll: function nextAll(elem) { + return jQuery.dir(elem, "nextSibling"); + }, + prevAll: function prevAll(elem) { + return jQuery.dir(elem, "previousSibling"); + }, + nextUntil: function nextUntil(elem, i, until) { + return jQuery.dir(elem, "nextSibling", until); + }, + prevUntil: function prevUntil(elem, i, until) { + return jQuery.dir(elem, "previousSibling", until); + }, + siblings: function siblings(elem) { + return jQuery.sibling((elem.parentNode || {}).firstChild, elem); + }, + children: function children(elem) { + return jQuery.sibling(elem.firstChild); + }, + contents: function contents(elem) { + return jQuery.nodeName(elem, "iframe") ? elem.contentDocument || elem.contentWindow.document : jQuery.merge([], elem.childNodes); + } + }, function (name, fn) { + jQuery.fn[name] = function (until, selector) { + var ret = jQuery.map(this, fn, until); + + if (!runtil.test(name)) { + selector = until; + } + + if (selector && typeof selector === "string") { + ret = jQuery.filter(selector, ret); + } + + ret = this.length > 1 && !guaranteedUnique[name] ? jQuery.unique(ret) : ret; + + if (this.length > 1 && rparentsprev.test(name)) { + ret = ret.reverse(); + } + + return this.pushStack(ret, name, core_slice.call(arguments).join(",")); + }; + }); + jQuery.extend({ + filter: function filter(expr, elems, not) { + if (not) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 ? jQuery.find.matchesSelector(elems[0], expr) ? [elems[0]] : [] : jQuery.find.matches(expr, elems); + }, + dir: function dir(elem, _dir, until) { + var matched = [], + cur = elem[_dir]; + + while (cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery(cur).is(until))) { + if (cur.nodeType === 1) { + matched.push(cur); + } + + cur = cur[_dir]; + } + + return matched; + }, + sibling: function sibling(n, elem) { + var r = []; + + for (; n; n = n.nextSibling) { + if (n.nodeType === 1 && n !== elem) { + r.push(n); + } + } + + return r; + } + }); // Implement the identical functionality for filter and not + + function winnow(elements, qualifier, keep) { + // Can't pass null or undefined to indexOf in Firefox 4 + // Set to 0 to skip string check + qualifier = qualifier || 0; + + if (jQuery.isFunction(qualifier)) { + return jQuery.grep(elements, function (elem, i) { + var retVal = !!qualifier.call(elem, i, elem); + return retVal === keep; + }); + } else if (qualifier.nodeType) { + return jQuery.grep(elements, function (elem, i) { + return elem === qualifier === keep; + }); + } else if (typeof qualifier === "string") { + var filtered = jQuery.grep(elements, function (elem) { + return elem.nodeType === 1; + }); + + if (isSimple.test(qualifier)) { + return jQuery.filter(qualifier, filtered, !keep); + } else { + qualifier = jQuery.filter(qualifier, filtered); + } + } + + return jQuery.grep(elements, function (elem, i) { + return jQuery.inArray(elem, qualifier) >= 0 === keep; + }); + } + + function createSafeFragment(document) { + var list = nodeNames.split("|"), + safeFrag = document.createDocumentFragment(); + + if (safeFrag.createElement) { + while (list.length) { + safeFrag.createElement(list.pop()); + } + } + + return safeFrag; + } + + var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /
    ]", "i"), + rcheckableType = /^(?:checkbox|radio)$/, + // checked="checked" or checked + rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i, + rscriptType = /\/(java|ecma)script/i, + rcleanScript = /^\s*\s*$/g, + wrapMap = { + option: [1, ""], + legend: [1, "
    ", "
    "], + thead: [1, "
    ", "
    "], + tr: [2, "", "
    "], + td: [3, "", "
    "], + col: [2, "", "
    "], + area: [1, "", ""], + _default: [0, "", ""] + }, + safeFragment = createSafeFragment(document), + fragmentDiv = safeFragment.appendChild(document.createElement("div")); + wrapMap.optgroup = wrapMap.option; + wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; + wrapMap.th = wrapMap.td; // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + + if (!jQuery.support.htmlSerialize) { + wrapMap._default = [1, "X
    ", "
    "]; + } + + jQuery.fn.extend({ + text: function text(value) { + return jQuery.access(this, function (value) { + return value === undefined ? jQuery.text(this) : this.empty().append((this[0] && this[0].ownerDocument || document).createTextNode(value)); + }, null, value, arguments.length); + }, + wrapAll: function wrapAll(html) { + if (jQuery.isFunction(html)) { + return this.each(function (i) { + jQuery(this).wrapAll(html.call(this, i)); + }); + } + + if (this[0]) { + // The elements to wrap the target around + var wrap = jQuery(html, this[0].ownerDocument).eq(0).clone(true); + + if (this[0].parentNode) { + wrap.insertBefore(this[0]); + } + + wrap.map(function () { + var elem = this; + + while (elem.firstChild && elem.firstChild.nodeType === 1) { + elem = elem.firstChild; + } + + return elem; + }).append(this); + } + + return this; + }, + wrapInner: function wrapInner(html) { + if (jQuery.isFunction(html)) { + return this.each(function (i) { + jQuery(this).wrapInner(html.call(this, i)); + }); + } + + return this.each(function () { + var self = jQuery(this), + contents = self.contents(); + + if (contents.length) { + contents.wrapAll(html); + } else { + self.append(html); + } + }); + }, + wrap: function wrap(html) { + var isFunction = jQuery.isFunction(html); + return this.each(function (i) { + jQuery(this).wrapAll(isFunction ? html.call(this, i) : html); + }); + }, + unwrap: function unwrap() { + return this.parent().each(function () { + if (!jQuery.nodeName(this, "body")) { + jQuery(this).replaceWith(this.childNodes); + } + }).end(); + }, + append: function append() { + return this.domManip(arguments, true, function (elem) { + if (this.nodeType === 1 || this.nodeType === 11) { + this.appendChild(elem); + } + }); + }, + prepend: function prepend() { + return this.domManip(arguments, true, function (elem) { + if (this.nodeType === 1 || this.nodeType === 11) { + this.insertBefore(elem, this.firstChild); + } + }); + }, + before: function before() { + if (!isDisconnected(this[0])) { + return this.domManip(arguments, false, function (elem) { + this.parentNode.insertBefore(elem, this); + }); + } + + if (arguments.length) { + var set = jQuery.clean(arguments); + return this.pushStack(jQuery.merge(set, this), "before", this.selector); + } + }, + after: function after() { + if (!isDisconnected(this[0])) { + return this.domManip(arguments, false, function (elem) { + this.parentNode.insertBefore(elem, this.nextSibling); + }); + } + + if (arguments.length) { + var set = jQuery.clean(arguments); + return this.pushStack(jQuery.merge(this, set), "after", this.selector); + } + }, + // keepData is for internal use only--do not document + remove: function remove(selector, keepData) { + var elem, + i = 0; + + for (; (elem = this[i]) != null; i++) { + if (!selector || jQuery.filter(selector, [elem]).length) { + if (!keepData && elem.nodeType === 1) { + jQuery.cleanData(elem.getElementsByTagName("*")); + jQuery.cleanData([elem]); + } + + if (elem.parentNode) { + elem.parentNode.removeChild(elem); + } + } + } + + return this; + }, + empty: function empty() { + var elem, + i = 0; + + for (; (elem = this[i]) != null; i++) { + // Remove element nodes and prevent memory leaks + if (elem.nodeType === 1) { + jQuery.cleanData(elem.getElementsByTagName("*")); + } // Remove any remaining nodes + + + while (elem.firstChild) { + elem.removeChild(elem.firstChild); + } + } + + return this; + }, + clone: function clone(dataAndEvents, deepDataAndEvents) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + return this.map(function () { + return jQuery.clone(this, dataAndEvents, deepDataAndEvents); + }); + }, + html: function html(value) { + return jQuery.access(this, function (value) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if (value === undefined) { + return elem.nodeType === 1 ? elem.innerHTML.replace(rinlinejQuery, "") : undefined; + } // See if we can take a shortcut and just use innerHTML + + + if (typeof value === "string" && !rnoInnerhtml.test(value) && (jQuery.support.htmlSerialize || !rnoshimcache.test(value)) && (jQuery.support.leadingWhitespace || !rleadingWhitespace.test(value)) && !wrapMap[(rtagName.exec(value) || ["", ""])[1].toLowerCase()]) { + value = value.replace(rxhtmlTag, "<$1>"); + + try { + for (; i < l; i++) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + + if (elem.nodeType === 1) { + jQuery.cleanData(elem.getElementsByTagName("*")); + elem.innerHTML = value; + } + } + + elem = 0; // If using innerHTML throws an exception, use the fallback method + } catch (e) {} + } + + if (elem) { + this.empty().append(value); + } + }, null, value, arguments.length); + }, + replaceWith: function replaceWith(value) { + if (!isDisconnected(this[0])) { + // Make sure that the elements are removed from the DOM before they are inserted + // this can help fix replacing a parent with child elements + if (jQuery.isFunction(value)) { + return this.each(function (i) { + var self = jQuery(this), + old = self.html(); + self.replaceWith(value.call(this, i, old)); + }); + } + + if (typeof value !== "string") { + value = jQuery(value).detach(); + } + + return this.each(function () { + var next = this.nextSibling, + parent = this.parentNode; + jQuery(this).remove(); + + if (next) { + jQuery(next).before(value); + } else { + jQuery(parent).append(value); + } + }); + } + + return this.length ? this.pushStack(jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value) : this; + }, + detach: function detach(selector) { + return this.remove(selector, true); + }, + domManip: function domManip(args, table, callback) { + // Flatten any nested arrays + args = [].concat.apply([], args); + var results, + first, + fragment, + iNoClone, + i = 0, + value = args[0], + scripts = [], + l = this.length; // We can't cloneNode fragments that contain checked, in WebKit + + if (!jQuery.support.checkClone && l > 1 && typeof value === "string" && rchecked.test(value)) { + return this.each(function () { + jQuery(this).domManip(args, table, callback); + }); + } + + if (jQuery.isFunction(value)) { + return this.each(function (i) { + var self = jQuery(this); + args[0] = value.call(this, i, table ? self.html() : undefined); + self.domManip(args, table, callback); + }); + } + + if (this[0]) { + results = jQuery.buildFragment(args, this, scripts); + fragment = results.fragment; + first = fragment.firstChild; + + if (fragment.childNodes.length === 1) { + fragment = first; + } + + if (first) { + table = table && jQuery.nodeName(first, "tr"); // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + // Fragments from the fragment cache must always be cloned and never used in place. + + for (iNoClone = results.cacheable || l - 1; i < l; i++) { + callback.call(table && jQuery.nodeName(this[i], "table") ? findOrAppend(this[i], "tbody") : this[i], i === iNoClone ? fragment : jQuery.clone(fragment, true, true)); + } + } // Fix #11809: Avoid leaking memory + + + fragment = first = null; + + if (scripts.length) { + jQuery.each(scripts, function (i, elem) { + if (elem.src) { + if (jQuery.ajax) { + jQuery.ajax({ + url: elem.src, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } else { + jQuery.error("no ajax"); + } + } else { + jQuery.globalEval((elem.text || elem.textContent || elem.innerHTML || "").replace(rcleanScript, "")); + } + + if (elem.parentNode) { + elem.parentNode.removeChild(elem); + } + }); + } + } + + return this; + } + }); + + function findOrAppend(elem, tag) { + return elem.getElementsByTagName(tag)[0] || elem.appendChild(elem.ownerDocument.createElement(tag)); + } + + function cloneCopyEvent(src, dest) { + if (dest.nodeType !== 1 || !jQuery.hasData(src)) { + return; + } + + var type, + i, + l, + oldData = jQuery._data(src), + curData = jQuery._data(dest, oldData), + events = oldData.events; + + if (events) { + delete curData.handle; + curData.events = {}; + + for (type in events) { + for (i = 0, l = events[type].length; i < l; i++) { + jQuery.event.add(dest, type, events[type][i]); + } + } + } // make the cloned public data object a copy from the original + + + if (curData.data) { + curData.data = jQuery.extend({}, curData.data); + } + } + + function cloneFixAttributes(src, dest) { + var nodeName; // We do not need to do anything for non-Elements + + if (dest.nodeType !== 1) { + return; + } // clearAttributes removes the attributes, which we don't want, + // but also removes the attachEvent events, which we *do* want + + + if (dest.clearAttributes) { + dest.clearAttributes(); + } // mergeAttributes, in contrast, only merges back on the + // original attributes, not the events + + + if (dest.mergeAttributes) { + dest.mergeAttributes(src); + } + + nodeName = dest.nodeName.toLowerCase(); + + if (nodeName === "object") { + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + if (dest.parentNode) { + dest.outerHTML = src.outerHTML; + } // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + + + if (jQuery.support.html5Clone && src.innerHTML && !jQuery.trim(dest.innerHTML)) { + dest.innerHTML = src.innerHTML; + } + } else if (nodeName === "input" && rcheckableType.test(src.type)) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + dest.defaultChecked = dest.checked = src.checked; // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + + if (dest.value !== src.value) { + dest.value = src.value; + } // IE6-8 fails to return the selected option to the default selected + // state when cloning options + + } else if (nodeName === "option") { + dest.selected = src.defaultSelected; // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if (nodeName === "input" || nodeName === "textarea") { + dest.defaultValue = src.defaultValue; // IE blanks contents when cloning scripts + } else if (nodeName === "script" && dest.text !== src.text) { + dest.text = src.text; + } // Event data gets referenced instead of copied if the expando + // gets copied too + + + dest.removeAttribute(jQuery.expando); + } + + jQuery.buildFragment = function (args, context, scripts) { + var fragment, + cacheable, + cachehit, + first = args[0]; // Set context from what may come in as undefined or a jQuery collection or a node + // Updated to fix #12266 where accessing context[0] could throw an exception in IE9/10 & + // also doubles as fix for #8950 where plain objects caused createDocumentFragment exception + + context = context || document; + context = !context.nodeType && context[0] || context; + context = context.ownerDocument || context; // Only cache "small" (1/2 KB) HTML strings that are associated with the main document + // Cloning options loses the selected state, so don't cache them + // IE 6 doesn't like it when you put or elements in a fragment + // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache + // Lastly, IE6,7,8 will not correctly reuse cached fragments that were created from unknown elems #10501 + + if (args.length === 1 && typeof first === "string" && first.length < 512 && context === document && first.charAt(0) === "<" && !rnocache.test(first) && (jQuery.support.checkClone || !rchecked.test(first)) && (jQuery.support.html5Clone || !rnoshimcache.test(first))) { + // Mark cacheable and look for a hit + cacheable = true; + fragment = jQuery.fragments[first]; + cachehit = fragment !== undefined; + } + + if (!fragment) { + fragment = context.createDocumentFragment(); + jQuery.clean(args, context, fragment, scripts); // Update the cache, but only store false + // unless this is a second parsing of the same content + + if (cacheable) { + jQuery.fragments[first] = cachehit && fragment; + } + } + + return { + fragment: fragment, + cacheable: cacheable + }; + }; + + jQuery.fragments = {}; + jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function (name, original) { + jQuery.fn[name] = function (selector) { + var elems, + i = 0, + ret = [], + insert = jQuery(selector), + l = insert.length, + parent = this.length === 1 && this[0].parentNode; + + if ((parent == null || parent && parent.nodeType === 11 && parent.childNodes.length === 1) && l === 1) { + insert[original](this[0]); + return this; + } else { + for (; i < l; i++) { + elems = (i > 0 ? this.clone(true) : this).get(); + jQuery(insert[i])[original](elems); + ret = ret.concat(elems); + } + + return this.pushStack(ret, name, insert.selector); + } + }; + }); + + function getAll(elem) { + if (typeof elem.getElementsByTagName !== "undefined") { + return elem.getElementsByTagName("*"); + } else if (typeof elem.querySelectorAll !== "undefined") { + return elem.querySelectorAll("*"); + } else { + return []; + } + } // Used in clean, fixes the defaultChecked property + + + function fixDefaultChecked(elem) { + if (rcheckableType.test(elem.type)) { + elem.defaultChecked = elem.checked; + } + } + + jQuery.extend({ + clone: function clone(elem, dataAndEvents, deepDataAndEvents) { + var srcElements, destElements, i, clone; + + if (jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test("<" + elem.nodeName + ">")) { + clone = elem.cloneNode(true); // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild(clone = fragmentDiv.firstChild); + } + + if ((!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem)) { + // IE copies events bound via attachEvent when using cloneNode. + // Calling detachEvent on the clone will also remove the events + // from the original. In order to get around this, we use some + // proprietary methods to clear the events. Thanks to MooTools + // guys for this hotness. + cloneFixAttributes(elem, clone); // Using Sizzle here is crazy slow, so we use getElementsByTagName instead + + srcElements = getAll(elem); + destElements = getAll(clone); // Weird iteration because IE will replace the length property + // with an element if you are cloning the body and one of the + // elements on the page has a name or id of "length" + + for (i = 0; srcElements[i]; ++i) { + // Ensure that the destination node is not null; Fixes #9587 + if (destElements[i]) { + cloneFixAttributes(srcElements[i], destElements[i]); + } + } + } // Copy the events from the original to the clone + + + if (dataAndEvents) { + cloneCopyEvent(elem, clone); + + if (deepDataAndEvents) { + srcElements = getAll(elem); + destElements = getAll(clone); + + for (i = 0; srcElements[i]; ++i) { + cloneCopyEvent(srcElements[i], destElements[i]); + } + } + } + + srcElements = destElements = null; // Return the cloned set + + return clone; + }, + clean: function clean(elems, context, fragment, scripts) { + var i, + j, + elem, + tag, + wrap, + depth, + div, + hasBody, + tbody, + len, + handleScript, + jsTags, + safe = context === document && safeFragment, + ret = []; // Ensure that context is a document + + if (!context || typeof context.createDocumentFragment === "undefined") { + context = document; + } // Use the already-created safe fragment if context permits + + + for (i = 0; (elem = elems[i]) != null; i++) { + if (typeof elem === "number") { + elem += ""; + } + + if (!elem) { + continue; + } // Convert html string into DOM nodes + + + if (typeof elem === "string") { + if (!rhtml.test(elem)) { + elem = context.createTextNode(elem); + } else { + // Ensure a safe container in which to render the html + safe = safe || createSafeFragment(context); + div = context.createElement("div"); + safe.appendChild(div); // Fix "XHTML"-style tags in all browsers + + elem = elem.replace(rxhtmlTag, "<$1>"); // Go to html and back, then peel off extra wrappers + + tag = (rtagName.exec(elem) || ["", ""])[1].toLowerCase(); + wrap = wrapMap[tag] || wrapMap._default; + depth = wrap[0]; + div.innerHTML = wrap[1] + elem + wrap[2]; // Move to the right depth + + while (depth--) { + div = div.lastChild; + } // Remove IE's autoinserted from table fragments + + + if (!jQuery.support.tbody) { + // String was a , *may* have spurious + hasBody = rtbody.test(elem); + tbody = tag === "table" && !hasBody ? div.firstChild && div.firstChild.childNodes : // String was a bare or + wrap[1] === "
    " && !hasBody ? div.childNodes : []; + + for (j = tbody.length - 1; j >= 0; --j) { + if (jQuery.nodeName(tbody[j], "tbody") && !tbody[j].childNodes.length) { + tbody[j].parentNode.removeChild(tbody[j]); + } + } + } // IE completely kills leading whitespace when innerHTML is used + + + if (!jQuery.support.leadingWhitespace && rleadingWhitespace.test(elem)) { + div.insertBefore(context.createTextNode(rleadingWhitespace.exec(elem)[0]), div.firstChild); + } + + elem = div.childNodes; // Take out of fragment container (we need a fresh div each time) + + div.parentNode.removeChild(div); + } + } + + if (elem.nodeType) { + ret.push(elem); + } else { + jQuery.merge(ret, elem); + } + } // Fix #11356: Clear elements from safeFragment + + + if (div) { + elem = div = safe = null; + } // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + + + if (!jQuery.support.appendChecked) { + for (i = 0; (elem = ret[i]) != null; i++) { + if (jQuery.nodeName(elem, "input")) { + fixDefaultChecked(elem); + } else if (typeof elem.getElementsByTagName !== "undefined") { + jQuery.grep(elem.getElementsByTagName("input"), fixDefaultChecked); + } + } + } // Append elements to a provided document fragment + + + if (fragment) { + // Special handling of each script element + handleScript = function handleScript(elem) { + // Check if we consider it executable + if (!elem.type || rscriptType.test(elem.type)) { + // Detach the script and store it in the scripts array (if provided) or the fragment + // Return truthy to indicate that it has been handled + return scripts ? scripts.push(elem.parentNode ? elem.parentNode.removeChild(elem) : elem) : fragment.appendChild(elem); + } + }; + + for (i = 0; (elem = ret[i]) != null; i++) { + // Check if we're done after handling an executable script + if (!(jQuery.nodeName(elem, "script") && handleScript(elem))) { + // Append to fragment and handle embedded scripts + fragment.appendChild(elem); + + if (typeof elem.getElementsByTagName !== "undefined") { + // handleScript alters the DOM, so use jQuery.merge to ensure snapshot iteration + jsTags = jQuery.grep(jQuery.merge([], elem.getElementsByTagName("script")), handleScript); // Splice the scripts into ret after their former ancestor and advance our index beyond them + + ret.splice.apply(ret, [i + 1, 0].concat(jsTags)); + i += jsTags.length; + } + } + } + } + + return ret; + }, + cleanData: function cleanData(elems, + /* internal */ + acceptData) { + var data, + id, + elem, + type, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for (; (elem = elems[i]) != null; i++) { + if (acceptData || jQuery.acceptData(elem)) { + id = elem[internalKey]; + data = id && cache[id]; + + if (data) { + if (data.events) { + for (type in data.events) { + if (special[type]) { + jQuery.event.remove(elem, type); // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent(elem, type, data.handle); + } + } + } // Remove cache only if it was not already removed by jQuery.event.remove + + + if (cache[id]) { + delete cache[id]; // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + + if (deleteExpando) { + delete elem[internalKey]; + } else if (elem.removeAttribute) { + elem.removeAttribute(internalKey); + } else { + elem[internalKey] = null; + } + + jQuery.deletedIds.push(id); + } + } + } + } + } + }); // Limit scope pollution from any deprecated API + + (function () { + var matched, browser; // Use of jQuery.browser is frowned upon. + // More details: http://api.jquery.com/jQuery.browser + // jQuery.uaMatch maintained for back-compat + + jQuery.uaMatch = function (ua) { + ua = ua.toLowerCase(); + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || /(webkit)[ \/]([\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || /(msie) ([\w.]+)/.exec(ua) || ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || []; + return { + browser: match[1] || "", + version: match[2] || "0" + }; + }; + + matched = jQuery.uaMatch(navigator.userAgent); + browser = {}; + + if (matched.browser) { + browser[matched.browser] = true; + browser.version = matched.version; + } // Chrome is Webkit, but Webkit is also Safari. + + + if (browser.chrome) { + browser.webkit = true; + } else if (browser.webkit) { + browser.safari = true; + } + + jQuery.browser = browser; + + jQuery.sub = function () { + function jQuerySub(selector, context) { + return new jQuerySub.fn.init(selector, context); + } + + jQuery.extend(true, jQuerySub, this); + jQuerySub.superclass = this; + jQuerySub.fn = jQuerySub.prototype = this(); + jQuerySub.fn.constructor = jQuerySub; + jQuerySub.sub = this.sub; + + jQuerySub.fn.init = function init(selector, context) { + if (context && context instanceof jQuery && !(context instanceof jQuerySub)) { + context = jQuerySub(context); + } + + return jQuery.fn.init.call(this, selector, context, rootjQuerySub); + }; + + jQuerySub.fn.init.prototype = jQuerySub.fn; + var rootjQuerySub = jQuerySub(document); + return jQuerySub; + }; + })(); + + var curCSS, + iframe, + iframeDoc, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity=([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp("^(" + core_pnum + ")(.*)$", "i"), + rnumnonpx = new RegExp("^(" + core_pnum + ")(?!px)[a-z%]+$", "i"), + rrelNum = new RegExp("^([-+])=(" + core_pnum + ")", "i"), + elemdisplay = {}, + cssShow = { + position: "absolute", + visibility: "hidden", + display: "block" + }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + cssExpand = ["Top", "Right", "Bottom", "Left"], + cssPrefixes = ["Webkit", "O", "Moz", "ms"], + eventsToggle = jQuery.fn.toggle; // return a css property mapped to a potentially vendor prefixed property + + function vendorPropName(style, name) { + // shortcut for names that are not vendor prefixed + if (name in style) { + return name; + } // check for vendor prefixed names + + + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while (i--) { + name = cssPrefixes[i] + capName; + + if (name in style) { + return name; + } + } + + return origName; + } + + function isHidden(elem, el) { + elem = el || elem; + return jQuery.css(elem, "display") === "none" || !jQuery.contains(elem.ownerDocument, elem); + } + + function showHide(elements, show) { + var elem, + display, + values = [], + index = 0, + length = elements.length; + + for (; index < length; index++) { + elem = elements[index]; + + if (!elem.style) { + continue; + } + + values[index] = jQuery._data(elem, "olddisplay"); + + if (show) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if (!values[index] && elem.style.display === "none") { + elem.style.display = ""; + } // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + + + if (elem.style.display === "" && isHidden(elem)) { + values[index] = jQuery._data(elem, "olddisplay", css_defaultDisplay(elem.nodeName)); + } + } else { + display = curCSS(elem, "display"); + + if (!values[index] && display !== "none") { + jQuery._data(elem, "olddisplay", display); + } + } + } // Set the display of most of the elements in a second loop + // to avoid the constant reflow + + + for (index = 0; index < length; index++) { + elem = elements[index]; + + if (!elem.style) { + continue; + } + + if (!show || elem.style.display === "none" || elem.style.display === "") { + elem.style.display = show ? values[index] || "" : "none"; + } + } + + return elements; + } + + jQuery.fn.extend({ + css: function css(name, value) { + return jQuery.access(this, function (elem, name, value) { + return value !== undefined ? jQuery.style(elem, name, value) : jQuery.css(elem, name); + }, name, value, arguments.length > 1); + }, + show: function show() { + return showHide(this, true); + }, + hide: function hide() { + return showHide(this); + }, + toggle: function toggle(state, fn2) { + var bool = typeof state === "boolean"; + + if (jQuery.isFunction(state) && jQuery.isFunction(fn2)) { + return eventsToggle.apply(this, arguments); + } + + return this.each(function () { + if (bool ? state : isHidden(this)) { + jQuery(this).show(); + } else { + jQuery(this).hide(); + } + }); + } + }); + jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function get(elem, computed) { + if (computed) { + // We should always get a number back from opacity + var ret = curCSS(elem, "opacity"); + return ret === "" ? "1" : ret; + } + } + } + }, + // Exclude the following css properties to add px + cssNumber: { + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + // Get and set the style property on a DOM Node + style: function style(elem, name, value, extra) { + // Don't set styles on text and comment nodes + if (!elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style) { + return; + } // Make sure that we're working with the right name + + + var ret, + type, + hooks, + origName = jQuery.camelCase(name), + style = elem.style; + name = jQuery.cssProps[origName] || (jQuery.cssProps[origName] = vendorPropName(style, origName)); // gets hook for the prefixed version + // followed by the unprefixed version + + hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // Check if we're setting a value + + if (value !== undefined) { + type = _typeof(value); // convert relative number strings (+= or -=) to relative numbers. #7345 + + if (type === "string" && (ret = rrelNum.exec(value))) { + value = (ret[1] + 1) * ret[2] + parseFloat(jQuery.css(elem, name)); // Fixes bug #9237 + + type = "number"; + } // Make sure that NaN and null values aren't set. See: #7116 + + + if (value == null || type === "number" && isNaN(value)) { + return; + } // If a number was passed in, add 'px' to the (except for certain CSS properties) + + + if (type === "number" && !jQuery.cssNumber[origName]) { + value += "px"; + } // If a hook was provided, use that value, otherwise just set the specified value + + + if (!hooks || !("set" in hooks) || (value = hooks.set(elem, value, extra)) !== undefined) { + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[name] = value; + } catch (e) {} + } + } else { + // If a hook was provided get the non-computed value from there + if (hooks && "get" in hooks && (ret = hooks.get(elem, false, extra)) !== undefined) { + return ret; + } // Otherwise just get the value from the style object + + + return style[name]; + } + }, + css: function css(elem, name, numeric, extra) { + var val, + num, + hooks, + origName = jQuery.camelCase(name); // Make sure that we're working with the right name + + name = jQuery.cssProps[origName] || (jQuery.cssProps[origName] = vendorPropName(elem.style, origName)); // gets hook for the prefixed version + // followed by the unprefixed version + + hooks = jQuery.cssHooks[name] || jQuery.cssHooks[origName]; // If a hook was provided get the computed value from there + + if (hooks && "get" in hooks) { + val = hooks.get(elem, true, extra); + } // Otherwise, if a way to get the computed value exists, use that + + + if (val === undefined) { + val = curCSS(elem, name); + } //convert "normal" to computed value + + + if (val === "normal" && name in cssNormalTransform) { + val = cssNormalTransform[name]; + } // Return, converting to number if forced or a qualifier was provided and val looks numeric + + + if (numeric || extra !== undefined) { + num = parseFloat(val); + return numeric || jQuery.isNumeric(num) ? num || 0 : val; + } + + return val; + }, + // A method for quickly swapping in/out CSS properties to get correct calculations + swap: function swap(elem, options, callback) { + var ret, + name, + old = {}; // Remember the old values, and insert the new ones + + for (name in options) { + old[name] = elem.style[name]; + elem.style[name] = options[name]; + } + + ret = callback.call(elem); // Revert the old values + + for (name in options) { + elem.style[name] = old[name]; + } + + return ret; + } + }); // NOTE: To any future maintainer, we've window.getComputedStyle + // because jsdom on node.js will break without it. + + if (window.getComputedStyle) { + curCSS = function curCSS(elem, name) { + var ret, + width, + minWidth, + maxWidth, + computed = window.getComputedStyle(elem, null), + style = elem.style; + + if (computed) { + ret = computed[name]; + + if (ret === "" && !jQuery.contains(elem.ownerDocument, elem)) { + ret = jQuery.style(elem, name); + } // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + + + if (rnumnonpx.test(ret) && rmargin.test(name)) { + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; + } else if (document.documentElement.currentStyle) { + curCSS = function curCSS(elem, name) { + var left, + rsLeft, + ret = elem.currentStyle && elem.currentStyle[name], + style = elem.style; // Avoid setting ret to empty string here + // so we don't default to auto + + if (ret == null && style && style[name]) { + ret = style[name]; + } // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + + + if (rnumnonpx.test(ret) && !rposition.test(name)) { + // Remember the original values + left = style.left; + rsLeft = elem.runtimeStyle && elem.runtimeStyle.left; // Put in the new values to get a computed value out + + if (rsLeft) { + elem.runtimeStyle.left = elem.currentStyle.left; + } + + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; // Revert the changed values + + style.left = left; + + if (rsLeft) { + elem.runtimeStyle.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; + } + + function setPositiveNumber(elem, value, subtract) { + var matches = rnumsplit.exec(value); + return matches ? Math.max(0, matches[1] - (subtract || 0)) + (matches[2] || "px") : value; + } + + function augmentWidthOrHeight(elem, name, extra, isBorderBox) { + var i = extra === (isBorderBox ? "border" : "content") ? // If we already have the right measurement, avoid augmentation + 4 : // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + val = 0; + + for (; i < 4; i += 2) { + // both box models exclude margin, so add it if we want it + if (extra === "margin") { + // we use jQuery.css instead of curCSS here + // because of the reliableMarginRight CSS hook! + val += jQuery.css(elem, extra + cssExpand[i], true); + } // From this point on we use curCSS for maximum performance (relevant in animations) + + + if (isBorderBox) { + // border-box includes padding, so remove it if we want content + if (extra === "content") { + val -= parseFloat(curCSS(elem, "padding" + cssExpand[i])) || 0; + } // at this point, extra isn't border nor margin, so remove border + + + if (extra !== "margin") { + val -= parseFloat(curCSS(elem, "border" + cssExpand[i] + "Width")) || 0; + } + } else { + // at this point, extra isn't content, so add padding + val += parseFloat(curCSS(elem, "padding" + cssExpand[i])) || 0; // at this point, extra isn't content nor padding, so add border + + if (extra !== "padding") { + val += parseFloat(curCSS(elem, "border" + cssExpand[i] + "Width")) || 0; + } + } + } + + return val; + } + + function getWidthOrHeight(elem, name, extra) { + // Start with offset property, which is equivalent to the border-box value + var val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + valueIsBorderBox = true, + isBorderBox = jQuery.support.boxSizing && jQuery.css(elem, "boxSizing") === "border-box"; // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + + if (val <= 0 || val == null) { + // Fall back to computed then uncomputed css if necessary + val = curCSS(elem, name); + + if (val < 0 || val == null) { + val = elem.style[name]; + } // Computed unit is not pixels. Stop here and return. + + + if (rnumnonpx.test(val)) { + return val; + } // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + + + valueIsBorderBox = isBorderBox && (jQuery.support.boxSizingReliable || val === elem.style[name]); // Normalize "", auto, and prepare for extra + + val = parseFloat(val) || 0; + } // use the active box-sizing model to add/subtract irrelevant styles + + + return val + augmentWidthOrHeight(elem, name, extra || (isBorderBox ? "border" : "content"), valueIsBorderBox) + "px"; + } // Try to determine the default display value of an element + + + function css_defaultDisplay(nodeName) { + if (elemdisplay[nodeName]) { + return elemdisplay[nodeName]; + } + + var elem = jQuery("<" + nodeName + ">").appendTo(document.body), + display = elem.css("display"); + elem.remove(); // If the simple way fails, + // get element's real default display by attaching it to a temp iframe + + if (display === "none" || display === "") { + // Use the already-created iframe if possible + iframe = document.body.appendChild(iframe || jQuery.extend(document.createElement("iframe"), { + frameBorder: 0, + width: 0, + height: 0 + })); // Create a cacheable copy of the iframe document on first call. + // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML + // document to it; WebKit & Firefox won't allow reusing the iframe document. + + if (!iframeDoc || !iframe.createElement) { + iframeDoc = (iframe.contentWindow || iframe.contentDocument).document; + iframeDoc.write(""); + iframeDoc.close(); + } + + elem = iframeDoc.body.appendChild(iframeDoc.createElement(nodeName)); + display = curCSS(elem, "display"); + document.body.removeChild(iframe); + } // Store the correct default display + + + elemdisplay[nodeName] = display; + return display; + } + + jQuery.each(["height", "width"], function (i, name) { + jQuery.cssHooks[name] = { + get: function get(elem, computed, extra) { + if (computed) { + // certain elements can have dimension info if we invisibly show them + // however, it must have a current display style that would benefit from this + if (elem.offsetWidth === 0 && rdisplayswap.test(curCSS(elem, "display"))) { + return jQuery.swap(elem, cssShow, function () { + return getWidthOrHeight(elem, name, extra); + }); + } else { + return getWidthOrHeight(elem, name, extra); + } + } + }, + set: function set(elem, value, extra) { + return setPositiveNumber(elem, value, extra ? augmentWidthOrHeight(elem, name, extra, jQuery.support.boxSizing && jQuery.css(elem, "boxSizing") === "border-box") : 0); + } + }; + }); + + if (!jQuery.support.opacity) { + jQuery.cssHooks.opacity = { + get: function get(elem, computed) { + // IE uses filters for opacity + return ropacity.test((computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "") ? 0.01 * parseFloat(RegExp.$1) + "" : computed ? "1" : ""; + }, + set: function set(elem, value) { + var style = elem.style, + currentStyle = elem.currentStyle, + opacity = jQuery.isNumeric(value) ? "alpha(opacity=" + value * 100 + ")" : "", + filter = currentStyle && currentStyle.filter || style.filter || ""; // IE has trouble with opacity if it does not have layout + // Force it by setting the zoom level + + style.zoom = 1; // if setting opacity to 1, and no other filters exist - attempt to remove filter attribute #6652 + + if (value >= 1 && jQuery.trim(filter.replace(ralpha, "")) === "" && style.removeAttribute) { + // Setting style.filter to null, "" & " " still leave "filter:" in the cssText + // if "filter:" is present at all, clearType is disabled, we want to avoid this + // style.removeAttribute is IE Only, but so apparently is this code path... + style.removeAttribute("filter"); // if there there is no filter style applied in a css rule, we are done + + if (currentStyle && !currentStyle.filter) { + return; + } + } // otherwise, set new filter values + + + style.filter = ralpha.test(filter) ? filter.replace(ralpha, opacity) : filter + " " + opacity; + } + }; + } // These hooks cannot be added until DOM ready because the support test + // for it is not run until after DOM ready + + + jQuery(function () { + if (!jQuery.support.reliableMarginRight) { + jQuery.cssHooks.marginRight = { + get: function get(elem, computed) { + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + // Work around by temporarily setting element display to inline-block + return jQuery.swap(elem, { + "display": "inline-block" + }, function () { + if (computed) { + return curCSS(elem, "marginRight"); + } + }); + } + }; + } // Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084 + // getComputedStyle returns percent when specified for top/left/bottom/right + // rather than make the css module depend on the offset module, we just check for it here + + + if (!jQuery.support.pixelPosition && jQuery.fn.position) { + jQuery.each(["top", "left"], function (i, prop) { + jQuery.cssHooks[prop] = { + get: function get(elem, computed) { + if (computed) { + var ret = curCSS(elem, prop); // if curCSS returns percentage, fallback to offset + + return rnumnonpx.test(ret) ? jQuery(elem).position()[prop] + "px" : ret; + } + } + }; + }); + } + }); + + if (jQuery.expr && jQuery.expr.filters) { + jQuery.expr.filters.hidden = function (elem) { + return elem.offsetWidth === 0 && elem.offsetHeight === 0 || !jQuery.support.reliableHiddenOffsets && (elem.style && elem.style.display || curCSS(elem, "display")) === "none"; + }; + + jQuery.expr.filters.visible = function (elem) { + return !jQuery.expr.filters.hidden(elem); + }; + } // These hooks are used by animate to expand properties + + + jQuery.each({ + margin: "", + padding: "", + border: "Width" + }, function (prefix, suffix) { + jQuery.cssHooks[prefix + suffix] = { + expand: function expand(value) { + var i, + // assumes a single number if not a string + parts = typeof value === "string" ? value.split(" ") : [value], + expanded = {}; + + for (i = 0; i < 4; i++) { + expanded[prefix + cssExpand[i] + suffix] = parts[i] || parts[i - 2] || parts[0]; + } + + return expanded; + } + }; + + if (!rmargin.test(prefix)) { + jQuery.cssHooks[prefix + suffix].set = setPositiveNumber; + } + }); + var r20 = /%20/g, + rbracket = /\[\]$/, + rCRLF = /\r?\n/g, + rinput = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i, + rselectTextarea = /^(?:select|textarea)/i; + jQuery.fn.extend({ + serialize: function serialize() { + return jQuery.param(this.serializeArray()); + }, + serializeArray: function serializeArray() { + return this.map(function () { + return this.elements ? jQuery.makeArray(this.elements) : this; + }).filter(function () { + return this.name && !this.disabled && (this.checked || rselectTextarea.test(this.nodeName) || rinput.test(this.type)); + }).map(function (i, elem) { + var val = jQuery(this).val(); + return val == null ? null : jQuery.isArray(val) ? jQuery.map(val, function (val, i) { + return { + name: elem.name, + value: val.replace(rCRLF, "\r\n") + }; + }) : { + name: elem.name, + value: val.replace(rCRLF, "\r\n") + }; + }).get(); + } + }); //Serialize an array of form elements or a set of + //key/values into a query string + + jQuery.param = function (a, traditional) { + var prefix, + s = [], + add = function add(key, value) { + // If value is a function, invoke it and return its value + value = jQuery.isFunction(value) ? value() : value == null ? "" : value; + s[s.length] = encodeURIComponent(key) + "=" + encodeURIComponent(value); + }; // Set traditional to true for jQuery <= 1.3.2 behavior. + + + if (traditional === undefined) { + traditional = jQuery.ajaxSettings && jQuery.ajaxSettings.traditional; + } // If an array was passed in, assume that it is an array of form elements. + + + if (jQuery.isArray(a) || a.jquery && !jQuery.isPlainObject(a)) { + // Serialize the form elements + jQuery.each(a, function () { + add(this.name, this.value); + }); + } else { + // If traditional, encode the "old" way (the way 1.3.2 or older + // did it), otherwise encode params recursively. + for (prefix in a) { + buildParams(prefix, a[prefix], traditional, add); + } + } // Return the resulting serialization + + + return s.join("&").replace(r20, "+"); + }; + + function buildParams(prefix, obj, traditional, add) { + var name; + + if (jQuery.isArray(obj)) { + // Serialize array item. + jQuery.each(obj, function (i, v) { + if (traditional || rbracket.test(prefix)) { + // Treat each array item as a scalar. + add(prefix, v); + } else { + // If array item is non-scalar (array or object), encode its + // numeric index to resolve deserialization ambiguity issues. + // Note that rack (as of 1.0.0) can't currently deserialize + // nested arrays properly, and attempting to do so may cause + // a server error. Possible fixes are to modify rack's + // deserialization algorithm or to provide an option or flag + // to force array serialization to be shallow. + buildParams(prefix + "[" + (_typeof(v) === "object" ? i : "") + "]", v, traditional, add); + } + }); + } else if (!traditional && jQuery.type(obj) === "object") { + // Serialize object item. + for (name in obj) { + buildParams(prefix + "[" + name + "]", obj[name], traditional, add); + } + } else { + // Serialize scalar item. + add(prefix, obj); + } + } + + var // Document location + ajaxLocation, + // Document location segments + ajaxLocParts, + rhash = /#.*$/, + rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, + // IE leaves an \r character at EOL + // #7653, #8125, #8152: local protocol detection + rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/, + rnoContent = /^(?:GET|HEAD)$/, + rprotocol = /^\/\//, + rquery = /\?/, + rscript = /)<[^<]*)*<\/script>/gi, + rts = /([?&])_=[^&]*/, + rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/, + // Keep a copy of the old load method + _load = jQuery.fn.load, + + /* Prefilters + * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) + * 2) These are called: + * - BEFORE asking for a transport + * - AFTER param serialization (s.data is a string if s.processData is true) + * 3) key is the dataType + * 4) the catchall symbol "*" can be used + * 5) execution will start with transport dataType and THEN continue down to "*" if needed + */ + prefilters = {}, + + /* Transports bindings + * 1) key is the dataType + * 2) the catchall symbol "*" can be used + * 3) selection will start with transport dataType and THEN go to "*" if needed + */ + transports = {}, + // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression + allTypes = ["*/"] + ["*"]; // #8138, IE may throw an exception when accessing + // a field from window.location if document.domain has been set + + try { + ajaxLocation = location.href; + } catch (e) { + // Use the href attribute of an A element + // since IE will modify it given document.location + ajaxLocation = document.createElement("a"); + ajaxLocation.href = ""; + ajaxLocation = ajaxLocation.href; + } // Segment location into parts + + + ajaxLocParts = rurl.exec(ajaxLocation.toLowerCase()) || []; // Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport + + function addToPrefiltersOrTransports(structure) { + // dataTypeExpression is optional and defaults to "*" + return function (dataTypeExpression, func) { + if (typeof dataTypeExpression !== "string") { + func = dataTypeExpression; + dataTypeExpression = "*"; + } + + var dataType, + list, + placeBefore, + dataTypes = dataTypeExpression.toLowerCase().split(core_rspace), + i = 0, + length = dataTypes.length; + + if (jQuery.isFunction(func)) { + // For each dataType in the dataTypeExpression + for (; i < length; i++) { + dataType = dataTypes[i]; // We control if we're asked to add before + // any existing element + + placeBefore = /^\+/.test(dataType); + + if (placeBefore) { + dataType = dataType.substr(1) || "*"; + } + + list = structure[dataType] = structure[dataType] || []; // then we add to the structure accordingly + + list[placeBefore ? "unshift" : "push"](func); + } + } + }; + } // Base inspection function for prefilters and transports + + + function inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR, dataType + /* internal */ + , inspected + /* internal */ + ) { + dataType = dataType || options.dataTypes[0]; + inspected = inspected || {}; + inspected[dataType] = true; + var selection, + list = structure[dataType], + i = 0, + length = list ? list.length : 0, + executeOnly = structure === prefilters; + + for (; i < length && (executeOnly || !selection); i++) { + selection = list[i](options, originalOptions, jqXHR); // If we got redirected to another dataType + // we try there if executing only and not done already + + if (typeof selection === "string") { + if (!executeOnly || inspected[selection]) { + selection = undefined; + } else { + options.dataTypes.unshift(selection); + selection = inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR, selection, inspected); + } + } + } // If we're only executing or nothing was selected + // we try the catchall dataType if not done already + + + if ((executeOnly || !selection) && !inspected["*"]) { + selection = inspectPrefiltersOrTransports(structure, options, originalOptions, jqXHR, "*", inspected); + } // unnecessary when only executing (prefilters) + // but it'll be ignored by the caller in that case + + + return selection; + } // A special extend for ajax options + // that takes "flat" options (not to be deep extended) + // Fixes #9887 + + + function ajaxExtend(target, src) { + var key, + deep, + flatOptions = jQuery.ajaxSettings.flatOptions || {}; + + for (key in src) { + if (src[key] !== undefined) { + (flatOptions[key] ? target : deep || (deep = {}))[key] = src[key]; + } + } + + if (deep) { + jQuery.extend(true, target, deep); + } + } + + jQuery.fn.load = function (url, params, callback) { + if (typeof url !== "string" && _load) { + return _load.apply(this, arguments); + } // Don't do a request if no elements are being requested + + + if (!this.length) { + return this; + } + + var selector, + type, + response, + self = this, + off = url.indexOf(" "); + + if (off >= 0) { + selector = url.slice(off, url.length); + url = url.slice(0, off); + } // If it's a function + + + if (jQuery.isFunction(params)) { + // We assume that it's the callback + callback = params; + params = undefined; // Otherwise, build a param string + } else if (params && _typeof(params) === "object") { + type = "POST"; + } // Request the remote document + + + jQuery.ajax({ + url: url, + // if "type" variable is undefined, then "GET" method will be used + type: type, + dataType: "html", + data: params, + complete: function complete(jqXHR, status) { + if (callback) { + self.each(callback, response || [jqXHR.responseText, status, jqXHR]); + } + } + }).done(function (responseText) { + // Save response for use in complete callback + response = arguments; // See if a selector was specified + + self.html(selector ? // Create a dummy div to hold the results + jQuery("
    ") // inject the contents of the document in, removing the scripts + // to avoid any 'Permission Denied' errors in IE + .append(responseText.replace(rscript, "")) // Locate the specified elements + .find(selector) : // If not, just inject the full result + responseText); + }); + return this; + }; // Attach a bunch of functions for handling common AJAX events + + + jQuery.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), function (i, o) { + jQuery.fn[o] = function (f) { + return this.on(o, f); + }; + }); + jQuery.each(["get", "post"], function (i, method) { + jQuery[method] = function (url, data, callback, type) { + // shift arguments if data argument was omitted + if (jQuery.isFunction(data)) { + type = type || callback; + callback = data; + data = undefined; + } + + return jQuery.ajax({ + type: method, + url: url, + data: data, + success: callback, + dataType: type + }); + }; + }); + jQuery.extend({ + getScript: function getScript(url, callback) { + return jQuery.get(url, undefined, callback, "script"); + }, + getJSON: function getJSON(url, data, callback) { + return jQuery.get(url, data, callback, "json"); + }, + // Creates a full fledged settings object into target + // with both ajaxSettings and settings fields. + // If target is omitted, writes into ajaxSettings. + ajaxSetup: function ajaxSetup(target, settings) { + if (settings) { + // Building a settings object + ajaxExtend(target, jQuery.ajaxSettings); + } else { + // Extending ajaxSettings + settings = target; + target = jQuery.ajaxSettings; + } + + ajaxExtend(target, settings); + return target; + }, + ajaxSettings: { + url: ajaxLocation, + isLocal: rlocalProtocol.test(ajaxLocParts[1]), + global: true, + type: "GET", + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + processData: true, + async: true, + + /* + timeout: 0, + data: null, + dataType: null, + username: null, + password: null, + cache: null, + throws: false, + traditional: false, + headers: {}, + */ + accepts: { + xml: "application/xml, text/xml", + html: "text/html", + text: "text/plain", + json: "application/json, text/javascript", + "*": allTypes + }, + contents: { + xml: /xml/, + html: /html/, + json: /json/ + }, + responseFields: { + xml: "responseXML", + text: "responseText" + }, + // List of data converters + // 1) key format is "source_type destination_type" (a single space in-between) + // 2) the catchall symbol "*" can be used for source_type + converters: { + // Convert anything to text + "* text": window.String, + // Text to html (true = no transformation) + "text html": true, + // Evaluate text as a json expression + "text json": jQuery.parseJSON, + // Parse text as xml + "text xml": jQuery.parseXML + }, + // For options that shouldn't be deep extended: + // you can add your own custom options here if + // and when you create one that shouldn't be + // deep extended (see ajaxExtend) + flatOptions: { + context: true, + url: true + } + }, + ajaxPrefilter: addToPrefiltersOrTransports(prefilters), + ajaxTransport: addToPrefiltersOrTransports(transports), + // Main method + ajax: function ajax(url, options) { + // If url is an object, simulate pre-1.5 signature + if (_typeof(url) === "object") { + options = url; + url = undefined; + } // Force options to be an object + + + options = options || {}; + var // ifModified key + ifModifiedKey, + // Response headers + responseHeadersString, + responseHeaders, + // transport + transport, + // timeout handle + timeoutTimer, + // Cross-domain detection vars + parts, + // To know if global events are to be dispatched + fireGlobals, + // Loop variable + i, + // Create the final options object + s = jQuery.ajaxSetup({}, options), + // Callbacks context + callbackContext = s.context || s, + // Context for global events + // It's the callbackContext if one was provided in the options + // and if it's a DOM node or a jQuery collection + globalEventContext = callbackContext !== s && (callbackContext.nodeType || callbackContext instanceof jQuery) ? jQuery(callbackContext) : jQuery.event, + // Deferreds + deferred = jQuery.Deferred(), + completeDeferred = jQuery.Callbacks("once memory"), + // Status-dependent callbacks + statusCode = s.statusCode || {}, + // Headers (they are sent all at once) + requestHeaders = {}, + requestHeadersNames = {}, + // The jqXHR state + state = 0, + // Default abort message + strAbort = "canceled", + // Fake xhr + jqXHR = { + readyState: 0, + // Caches the header + setRequestHeader: function setRequestHeader(name, value) { + if (!state) { + var lname = name.toLowerCase(); + name = requestHeadersNames[lname] = requestHeadersNames[lname] || name; + requestHeaders[name] = value; + } + + return this; + }, + // Raw string + getAllResponseHeaders: function getAllResponseHeaders() { + return state === 2 ? responseHeadersString : null; + }, + // Builds headers hashtable if needed + getResponseHeader: function getResponseHeader(key) { + var match; + + if (state === 2) { + if (!responseHeaders) { + responseHeaders = {}; + + while (match = rheaders.exec(responseHeadersString)) { + responseHeaders[match[1].toLowerCase()] = match[2]; + } + } + + match = responseHeaders[key.toLowerCase()]; + } + + return match === undefined ? null : match; + }, + // Overrides response content-type header + overrideMimeType: function overrideMimeType(type) { + if (!state) { + s.mimeType = type; + } + + return this; + }, + // Cancel the request + abort: function abort(statusText) { + statusText = statusText || strAbort; + + if (transport) { + transport.abort(statusText); + } + + done(0, statusText); + return this; + } + }; // Callback for when everything is done + // It is defined here because jslint complains if it is declared + // at the end of the function (which would be more logical and readable) + + function done(status, nativeStatusText, responses, headers) { + var isSuccess, + success, + error, + response, + modified, + statusText = nativeStatusText; // Called once + + if (state === 2) { + return; + } // State is "done" now + + + state = 2; // Clear timeout if it exists + + if (timeoutTimer) { + clearTimeout(timeoutTimer); + } // Dereference transport for early garbage collection + // (no matter how long the jqXHR object will be used) + + + transport = undefined; // Cache response headers + + responseHeadersString = headers || ""; // Set readyState + + jqXHR.readyState = status > 0 ? 4 : 0; // Get response data + + if (responses) { + response = ajaxHandleResponses(s, jqXHR, responses); + } // If successful, handle type chaining + + + if (status >= 200 && status < 300 || status === 304) { + // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + if (s.ifModified) { + modified = jqXHR.getResponseHeader("Last-Modified"); + + if (modified) { + jQuery.lastModified[ifModifiedKey] = modified; + } + + modified = jqXHR.getResponseHeader("Etag"); + + if (modified) { + jQuery.etag[ifModifiedKey] = modified; + } + } // If not modified + + + if (status === 304) { + statusText = "notmodified"; + isSuccess = true; // If we have data + } else { + isSuccess = ajaxConvert(s, response); + statusText = isSuccess.state; + success = isSuccess.data; + error = isSuccess.error; + isSuccess = !error; + } + } else { + // We extract error from statusText + // then normalize statusText and status for non-aborts + error = statusText; + + if (!statusText || status) { + statusText = "error"; + + if (status < 0) { + status = 0; + } + } + } // Set data for the fake xhr object + + + jqXHR.status = status; + jqXHR.statusText = "" + (nativeStatusText || statusText); // Success/Error + + if (isSuccess) { + deferred.resolveWith(callbackContext, [success, statusText, jqXHR]); + } else { + deferred.rejectWith(callbackContext, [jqXHR, statusText, error]); + } // Status-dependent callbacks + + + jqXHR.statusCode(statusCode); + statusCode = undefined; + + if (fireGlobals) { + globalEventContext.trigger("ajax" + (isSuccess ? "Success" : "Error"), [jqXHR, s, isSuccess ? success : error]); + } // Complete + + + completeDeferred.fireWith(callbackContext, [jqXHR, statusText]); + + if (fireGlobals) { + globalEventContext.trigger("ajaxComplete", [jqXHR, s]); // Handle the global AJAX counter + + if (! --jQuery.active) { + jQuery.event.trigger("ajaxStop"); + } + } + } // Attach deferreds + + + deferred.promise(jqXHR); + jqXHR.success = jqXHR.done; + jqXHR.error = jqXHR.fail; + jqXHR.complete = completeDeferred.add; // Status-dependent callbacks + + jqXHR.statusCode = function (map) { + if (map) { + var tmp; + + if (state < 2) { + for (tmp in map) { + statusCode[tmp] = [statusCode[tmp], map[tmp]]; + } + } else { + tmp = map[jqXHR.status]; + jqXHR.always(tmp); + } + } + + return this; + }; // Remove hash character (#7531: and string promotion) + // Add protocol if not provided (#5866: IE7 issue with protocol-less urls) + // We also use the url parameter if available + + + s.url = ((url || s.url) + "").replace(rhash, "").replace(rprotocol, ajaxLocParts[1] + "//"); // Extract dataTypes list + + s.dataTypes = jQuery.trim(s.dataType || "*").toLowerCase().split(core_rspace); // Determine if a cross-domain request is in order + + if (s.crossDomain == null) { + parts = rurl.exec(s.url.toLowerCase()); + s.crossDomain = !!(parts && (parts[1] != ajaxLocParts[1] || parts[2] != ajaxLocParts[2] || (parts[3] || (parts[1] === "http:" ? 80 : 443)) != (ajaxLocParts[3] || (ajaxLocParts[1] === "http:" ? 80 : 443)))); + } // Convert data if not already a string + + + if (s.data && s.processData && typeof s.data !== "string") { + s.data = jQuery.param(s.data, s.traditional); + } // Apply prefilters + + + inspectPrefiltersOrTransports(prefilters, s, options, jqXHR); // If request was aborted inside a prefilter, stop there + + if (state === 2) { + return jqXHR; + } // We can fire global events as of now if asked to + + + fireGlobals = s.global; // Uppercase the type + + s.type = s.type.toUpperCase(); // Determine if request has content + + s.hasContent = !rnoContent.test(s.type); // Watch for a new set of requests + + if (fireGlobals && jQuery.active++ === 0) { + jQuery.event.trigger("ajaxStart"); + } // More options handling for requests with no content + + + if (!s.hasContent) { + // If data is available, append data to url + if (s.data) { + s.url += (rquery.test(s.url) ? "&" : "?") + s.data; // #9682: remove data so that it's not used in an eventual retry + + delete s.data; + } // Get ifModifiedKey before adding the anti-cache parameter + + + ifModifiedKey = s.url; // Add anti-cache in url if needed + + if (s.cache === false) { + var ts = jQuery.now(), + // try replacing _= if it is there + ret = s.url.replace(rts, "$1_=" + ts); // if nothing was replaced, add timestamp to the end + + s.url = ret + (ret === s.url ? (rquery.test(s.url) ? "&" : "?") + "_=" + ts : ""); + } + } // Set the correct header, if data is being sent + + + if (s.data && s.hasContent && s.contentType !== false || options.contentType) { + jqXHR.setRequestHeader("Content-Type", s.contentType); + } // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. + + + if (s.ifModified) { + ifModifiedKey = ifModifiedKey || s.url; + + if (jQuery.lastModified[ifModifiedKey]) { + jqXHR.setRequestHeader("If-Modified-Since", jQuery.lastModified[ifModifiedKey]); + } + + if (jQuery.etag[ifModifiedKey]) { + jqXHR.setRequestHeader("If-None-Match", jQuery.etag[ifModifiedKey]); + } + } // Set the Accepts header for the server, depending on the dataType + + + jqXHR.setRequestHeader("Accept", s.dataTypes[0] && s.accepts[s.dataTypes[0]] ? s.accepts[s.dataTypes[0]] + (s.dataTypes[0] !== "*" ? ", " + allTypes + "; q=0.01" : "") : s.accepts["*"]); // Check for headers option + + for (i in s.headers) { + jqXHR.setRequestHeader(i, s.headers[i]); + } // Allow custom headers/mimetypes and early abort + + + if (s.beforeSend && (s.beforeSend.call(callbackContext, jqXHR, s) === false || state === 2)) { + // Abort if not done already and return + return jqXHR.abort(); + } // aborting is no longer a cancellation + + + strAbort = "abort"; // Install callbacks on deferreds + + for (i in { + success: 1, + error: 1, + complete: 1 + }) { + jqXHR[i](s[i]); + } // Get transport + + + transport = inspectPrefiltersOrTransports(transports, s, options, jqXHR); // If no transport, we auto-abort + + if (!transport) { + done(-1, "No Transport"); + } else { + jqXHR.readyState = 1; // Send global event + + if (fireGlobals) { + globalEventContext.trigger("ajaxSend", [jqXHR, s]); + } // Timeout + + + if (s.async && s.timeout > 0) { + timeoutTimer = setTimeout(function () { + jqXHR.abort("timeout"); + }, s.timeout); + } + + try { + state = 1; + transport.send(requestHeaders, done); + } catch (e) { + // Propagate exception as error if not done + if (state < 2) { + done(-1, e); // Simply rethrow otherwise + } else { + throw e; + } + } + } + + return jqXHR; + }, + // Counter for holding the number of active queries + active: 0, + // Last-Modified header cache for next request + lastModified: {}, + etag: {} + }); + /* Handles responses to an ajax request: + * - sets all responseXXX fields accordingly + * - finds the right dataType (mediates between content-type and expected dataType) + * - returns the corresponding response + */ + + function ajaxHandleResponses(s, jqXHR, responses) { + var ct, + type, + finalDataType, + firstDataType, + contents = s.contents, + dataTypes = s.dataTypes, + responseFields = s.responseFields; // Fill responseXXX fields + + for (type in responseFields) { + if (type in responses) { + jqXHR[responseFields[type]] = responses[type]; + } + } // Remove auto dataType and get content-type in the process + + + while (dataTypes[0] === "*") { + dataTypes.shift(); + + if (ct === undefined) { + ct = s.mimeType || jqXHR.getResponseHeader("content-type"); + } + } // Check if we're dealing with a known content-type + + + if (ct) { + for (type in contents) { + if (contents[type] && contents[type].test(ct)) { + dataTypes.unshift(type); + break; + } + } + } // Check to see if we have a response for the expected dataType + + + if (dataTypes[0] in responses) { + finalDataType = dataTypes[0]; + } else { + // Try convertible dataTypes + for (type in responses) { + if (!dataTypes[0] || s.converters[type + " " + dataTypes[0]]) { + finalDataType = type; + break; + } + + if (!firstDataType) { + firstDataType = type; + } + } // Or just use first one + + + finalDataType = finalDataType || firstDataType; + } // If we found a dataType + // We add the dataType to the list if needed + // and return the corresponding response + + + if (finalDataType) { + if (finalDataType !== dataTypes[0]) { + dataTypes.unshift(finalDataType); + } + + return responses[finalDataType]; + } + } // Chain conversions given the request and the original response + + + function ajaxConvert(s, response) { + var conv, + conv2, + current, + tmp, + // Work with a copy of dataTypes in case we need to modify it for conversion + dataTypes = s.dataTypes.slice(), + prev = dataTypes[0], + converters = {}, + i = 0; // Apply the dataFilter if provided + + if (s.dataFilter) { + response = s.dataFilter(response, s.dataType); + } // Create converters map with lowercased keys + + + if (dataTypes[1]) { + for (conv in s.converters) { + converters[conv.toLowerCase()] = s.converters[conv]; + } + } // Convert to each sequential dataType, tolerating list modification + + + for (; current = dataTypes[++i];) { + // There's only work to do if current dataType is non-auto + if (current !== "*") { + // Convert response if prev dataType is non-auto and differs from current + if (prev !== "*" && prev !== current) { + // Seek a direct converter + conv = converters[prev + " " + current] || converters["* " + current]; // If none found, seek a pair + + if (!conv) { + for (conv2 in converters) { + // If conv2 outputs current + tmp = conv2.split(" "); + + if (tmp[1] === current) { + // If prev can be converted to accepted input + conv = converters[prev + " " + tmp[0]] || converters["* " + tmp[0]]; + + if (conv) { + // Condense equivalence converters + if (conv === true) { + conv = converters[conv2]; // Otherwise, insert the intermediate dataType + } else if (converters[conv2] !== true) { + current = tmp[0]; + dataTypes.splice(i--, 0, current); + } + + break; + } + } + } + } // Apply converter (if not an equivalence) + + + if (conv !== true) { + // Unless errors are allowed to bubble, catch and return them + if (conv && s["throws"]) { + response = conv(response); + } else { + try { + response = conv(response); + } catch (e) { + return { + state: "parsererror", + error: conv ? e : "No conversion from " + prev + " to " + current + }; + } + } + } + } // Update prev for next iteration + + + prev = current; + } + } + + return { + state: "success", + data: response + }; + } + + var oldCallbacks = [], + rquestion = /\?/, + rjsonp = /(=)\?(?=&|$)|\?\?/, + nonce = jQuery.now(); // Default jsonp settings + + jQuery.ajaxSetup({ + jsonp: "callback", + jsonpCallback: function jsonpCallback() { + var callback = oldCallbacks.pop() || jQuery.expando + "_" + nonce++; + this[callback] = true; + return callback; + } + }); // Detect, normalize options and install callbacks for jsonp requests + + jQuery.ajaxPrefilter("json jsonp", function (s, originalSettings, jqXHR) { + var callbackName, + overwritten, + responseContainer, + data = s.data, + url = s.url, + hasCallback = s.jsonp !== false, + replaceInUrl = hasCallback && rjsonp.test(url), + replaceInData = hasCallback && !replaceInUrl && typeof data === "string" && !(s.contentType || "").indexOf("application/x-www-form-urlencoded") && rjsonp.test(data); // Handle iff the expected data type is "jsonp" or we have a parameter to set + + if (s.dataTypes[0] === "jsonp" || replaceInUrl || replaceInData) { + // Get callback name, remembering preexisting value associated with it + callbackName = s.jsonpCallback = jQuery.isFunction(s.jsonpCallback) ? s.jsonpCallback() : s.jsonpCallback; + overwritten = window[callbackName]; // Insert callback into url or form data + + if (replaceInUrl) { + s.url = url.replace(rjsonp, "$1" + callbackName); + } else if (replaceInData) { + s.data = data.replace(rjsonp, "$1" + callbackName); + } else if (hasCallback) { + s.url += (rquestion.test(url) ? "&" : "?") + s.jsonp + "=" + callbackName; + } // Use data converter to retrieve json after script execution + + + s.converters["script json"] = function () { + if (!responseContainer) { + jQuery.error(callbackName + " was not called"); + } + + return responseContainer[0]; + }; // force json dataType + + + s.dataTypes[0] = "json"; // Install callback + + window[callbackName] = function () { + responseContainer = arguments; + }; // Clean-up function (fires after converters) + + + jqXHR.always(function () { + // Restore preexisting value + window[callbackName] = overwritten; // Save back as free + + if (s[callbackName]) { + // make sure that re-using the options doesn't screw things around + s.jsonpCallback = originalSettings.jsonpCallback; // save the callback name for future use + + oldCallbacks.push(callbackName); + } // Call if it was a function and we have a response + + + if (responseContainer && jQuery.isFunction(overwritten)) { + overwritten(responseContainer[0]); + } + + responseContainer = overwritten = undefined; + }); // Delegate to script + + return "script"; + } + }); // Install script dataType + + jQuery.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" + }, + contents: { + script: /javascript|ecmascript/ + }, + converters: { + "text script": function textScript(text) { + jQuery.globalEval(text); + return text; + } + } + }); // Handle cache's special case and global + + jQuery.ajaxPrefilter("script", function (s) { + if (s.cache === undefined) { + s.cache = false; + } + + if (s.crossDomain) { + s.type = "GET"; + s.global = false; + } + }); // Bind script tag hack transport + + jQuery.ajaxTransport("script", function (s) { + // This transport only deals with cross domain requests + if (s.crossDomain) { + var script, + head = document.head || document.getElementsByTagName("head")[0] || document.documentElement; + return { + send: function send(_, callback) { + script = document.createElement("script"); + script.async = "async"; + + if (s.scriptCharset) { + script.charset = s.scriptCharset; + } + + script.src = s.url; // Attach handlers for all browsers + + script.onload = script.onreadystatechange = function (_, isAbort) { + if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) { + // Handle memory leak in IE + script.onload = script.onreadystatechange = null; // Remove the script + + if (head && script.parentNode) { + head.removeChild(script); + } // Dereference the script + + + script = undefined; // Callback if not abort + + if (!isAbort) { + callback(200, "success"); + } + } + }; // Use insertBefore instead of appendChild to circumvent an IE6 bug. + // This arises when a base node is used (#2709 and #4378). + + + head.insertBefore(script, head.firstChild); + }, + abort: function abort() { + if (script) { + script.onload(0, 1); + } + } + }; + } + }); + var xhrCallbacks, + // #5280: Internet Explorer will keep connections alive if we don't abort on unload + xhrOnUnloadAbort = window.ActiveXObject ? function () { + // Abort all pending requests + for (var key in xhrCallbacks) { + xhrCallbacks[key](0, 1); + } + } : false, + xhrId = 0; // Functions to create xhrs + + function createStandardXHR() { + try { + return new window.XMLHttpRequest(); + } catch (e) {} + } + + function createActiveXHR() { + try { + return new window.ActiveXObject("Microsoft.XMLHTTP"); + } catch (e) {} + } // Create the request object + // (This is still attached to ajaxSettings for backward compatibility) + + + jQuery.ajaxSettings.xhr = window.ActiveXObject ? + /* Microsoft failed to properly + * implement the XMLHttpRequest in IE7 (can't request local files), + * so we use the ActiveXObject when it is available + * Additionally XMLHttpRequest can be disabled in IE7/IE8 so + * we need a fallback. + */ + function () { + return !this.isLocal && createStandardXHR() || createActiveXHR(); + } : // For all other browsers, use the standard XMLHttpRequest object + createStandardXHR; // Determine support properties + + (function (xhr) { + jQuery.extend(jQuery.support, { + ajax: !!xhr, + cors: !!xhr && "withCredentials" in xhr + }); + })(jQuery.ajaxSettings.xhr()); // Create transport if the browser can provide an xhr + + + if (jQuery.support.ajax) { + jQuery.ajaxTransport(function (s) { + // Cross domain only allowed if supported through XMLHttpRequest + if (!s.crossDomain || jQuery.support.cors) { + var _callback; + + return { + send: function send(headers, complete) { + // Get a new xhr + var handle, + i, + xhr = s.xhr(); // Open the socket + // Passing null username, generates a login popup on Opera (#2865) + + if (s.username) { + xhr.open(s.type, s.url, s.async, s.username, s.password); + } else { + xhr.open(s.type, s.url, s.async); + } // Apply custom fields if provided + + + if (s.xhrFields) { + for (i in s.xhrFields) { + xhr[i] = s.xhrFields[i]; + } + } // Override mime type if needed + + + if (s.mimeType && xhr.overrideMimeType) { + xhr.overrideMimeType(s.mimeType); + } // X-Requested-With header + // For cross-domain requests, seeing as conditions for a preflight are + // akin to a jigsaw puzzle, we simply never set it to be sure. + // (it can always be set on a per-request basis or even using ajaxSetup) + // For same-domain requests, won't change header if already provided. + + + if (!s.crossDomain && !headers["X-Requested-With"]) { + headers["X-Requested-With"] = "XMLHttpRequest"; + } // Need an extra try/catch for cross domain requests in Firefox 3 + + + try { + for (i in headers) { + xhr.setRequestHeader(i, headers[i]); + } + } catch (_) {} // Do send the request + // This may raise an exception which is actually + // handled in jQuery.ajax (so no try/catch here) + + + xhr.send(s.hasContent && s.data || null); // Listener + + _callback = function callback(_, isAbort) { + var status, statusText, responseHeaders, responses, xml; // Firefox throws exceptions when accessing properties + // of an xhr when a network error occurred + // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) + + try { + // Was never called and is aborted or complete + if (_callback && (isAbort || xhr.readyState === 4)) { + // Only called once + _callback = undefined; // Do not keep as active anymore + + if (handle) { + xhr.onreadystatechange = jQuery.noop; + + if (xhrOnUnloadAbort) { + delete xhrCallbacks[handle]; + } + } // If it's an abort + + + if (isAbort) { + // Abort it manually if needed + if (xhr.readyState !== 4) { + xhr.abort(); + } + } else { + status = xhr.status; + responseHeaders = xhr.getAllResponseHeaders(); + responses = {}; + xml = xhr.responseXML; // Construct response list + + if (xml && xml.documentElement + /* #4958 */ + ) { + responses.xml = xml; + } // When requesting binary data, IE6-9 will throw an exception + // on any attempt to access responseText (#11426) + + + try { + responses.text = xhr.responseText; + } catch (_) {} // Firefox throws an exception when accessing + // statusText for faulty cross-domain requests + + + try { + statusText = xhr.statusText; + } catch (e) { + // We normalize with Webkit giving an empty statusText + statusText = ""; + } // Filter status for non standard behaviors + // If the request is local and we have data: assume a success + // (success with no data won't get notified, that's the best we + // can do given current implementations) + + + if (!status && s.isLocal && !s.crossDomain) { + status = responses.text ? 200 : 404; // IE - #1450: sometimes returns 1223 when it should be 204 + } else if (status === 1223) { + status = 204; + } + } + } + } catch (firefoxAccessException) { + if (!isAbort) { + complete(-1, firefoxAccessException); + } + } // Call complete if needed + + + if (responses) { + complete(status, statusText, responses, responseHeaders); + } + }; + + if (!s.async) { + // if we're in sync mode we fire the callback + _callback(); + } else if (xhr.readyState === 4) { + // (IE6 & IE7) if it's in cache and has been + // retrieved directly we need to fire the callback + setTimeout(_callback, 0); + } else { + handle = ++xhrId; + + if (xhrOnUnloadAbort) { + // Create the active xhrs callbacks list if needed + // and attach the unload handler + if (!xhrCallbacks) { + xhrCallbacks = {}; + jQuery(window).unload(xhrOnUnloadAbort); + } // Add to list of active xhrs callbacks + + + xhrCallbacks[handle] = _callback; + } + + xhr.onreadystatechange = _callback; + } + }, + abort: function abort() { + if (_callback) { + _callback(0, 1); + } + } + }; + } + }); + } + + var fxNow, + timerId, + rfxtypes = /^(?:toggle|show|hide)$/, + rfxnum = new RegExp("^(?:([-+])=|)(" + core_pnum + ")([a-z%]*)$", "i"), + rrun = /queueHooks$/, + animationPrefilters = [defaultPrefilter], + tweeners = { + "*": [function (prop, value) { + var end, + unit, + prevScale, + tween = this.createTween(prop, value), + parts = rfxnum.exec(value), + target = tween.cur(), + start = +target || 0, + scale = 1; + + if (parts) { + end = +parts[2]; + unit = parts[3] || (jQuery.cssNumber[prop] ? "" : "px"); // We need to compute starting value + + if (unit !== "px" && start) { + // Iteratively approximate from a nonzero starting point + // Prefer the current property, because this process will be trivial if it uses the same units + // Fallback to end or a simple constant + start = jQuery.css(tween.elem, prop, true) || end || 1; + + do { + // If previous iteration zeroed out, double until we get *something* + // Use a string for doubling factor so we don't accidentally see scale as unchanged below + prevScale = scale = scale || ".5"; // Adjust and apply + + start = start / scale; + jQuery.style(tween.elem, prop, start + unit); // Update scale, tolerating zeroes from tween.cur() + + scale = tween.cur() / target; // Stop looping if we've hit the mark or scale is unchanged + } while (scale !== 1 && scale !== prevScale); + } + + tween.unit = unit; + tween.start = start; // If a +=/-= token was provided, we're doing a relative animation + + tween.end = parts[1] ? start + (parts[1] + 1) * end : end; + } + + return tween; + }] + }; // Animations created synchronously will run synchronously + + function createFxNow() { + setTimeout(function () { + fxNow = undefined; + }, 0); + return fxNow = jQuery.now(); + } + + function createTweens(animation, props) { + jQuery.each(props, function (prop, value) { + var collection = (tweeners[prop] || []).concat(tweeners["*"]), + index = 0, + length = collection.length; + + for (; index < length; index++) { + if (collection[index].call(animation, prop, value)) { + // we're done with this property + return; + } + } + }); + } + + function Animation(elem, properties, options) { + var result, + index = 0, + tweenerIndex = 0, + length = animationPrefilters.length, + deferred = jQuery.Deferred().always(function () { + // don't match elem in the :animated selector + delete tick.elem; + }), + tick = function tick() { + var currentTime = fxNow || createFxNow(), + remaining = Math.max(0, animation.startTime + animation.duration - currentTime), + percent = 1 - (remaining / animation.duration || 0), + index = 0, + length = animation.tweens.length; + + for (; index < length; index++) { + animation.tweens[index].run(percent); + } + + deferred.notifyWith(elem, [animation, percent, remaining]); + + if (percent < 1 && length) { + return remaining; + } else { + deferred.resolveWith(elem, [animation]); + return false; + } + }, + animation = deferred.promise({ + elem: elem, + props: jQuery.extend({}, properties), + opts: jQuery.extend(true, { + specialEasing: {} + }, options), + originalProperties: properties, + originalOptions: options, + startTime: fxNow || createFxNow(), + duration: options.duration, + tweens: [], + createTween: function createTween(prop, end, easing) { + var tween = jQuery.Tween(elem, animation.opts, prop, end, animation.opts.specialEasing[prop] || animation.opts.easing); + animation.tweens.push(tween); + return tween; + }, + stop: function stop(gotoEnd) { + var index = 0, + // if we are going to the end, we want to run all the tweens + // otherwise we skip this part + length = gotoEnd ? animation.tweens.length : 0; + + for (; index < length; index++) { + animation.tweens[index].run(1); + } // resolve when we played the last frame + // otherwise, reject + + + if (gotoEnd) { + deferred.resolveWith(elem, [animation, gotoEnd]); + } else { + deferred.rejectWith(elem, [animation, gotoEnd]); + } + + return this; + } + }), + props = animation.props; + + propFilter(props, animation.opts.specialEasing); + + for (; index < length; index++) { + result = animationPrefilters[index].call(animation, elem, props, animation.opts); + + if (result) { + return result; + } + } + + createTweens(animation, props); + + if (jQuery.isFunction(animation.opts.start)) { + animation.opts.start.call(elem, animation); + } + + jQuery.fx.timer(jQuery.extend(tick, { + anim: animation, + queue: animation.opts.queue, + elem: elem + })); // attach callbacks from options + + return animation.progress(animation.opts.progress).done(animation.opts.done, animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always); + } + + function propFilter(props, specialEasing) { + var index, name, easing, value, hooks; // camelCase, specialEasing and expand cssHook pass + + for (index in props) { + name = jQuery.camelCase(index); + easing = specialEasing[name]; + value = props[index]; + + if (jQuery.isArray(value)) { + easing = value[1]; + value = props[index] = value[0]; + } + + if (index !== name) { + props[name] = value; + delete props[index]; + } + + hooks = jQuery.cssHooks[name]; + + if (hooks && "expand" in hooks) { + value = hooks.expand(value); + delete props[name]; // not quite $.extend, this wont overwrite keys already present. + // also - reusing 'index' from above because we have the correct "name" + + for (index in value) { + if (!(index in props)) { + props[index] = value[index]; + specialEasing[index] = easing; + } + } + } else { + specialEasing[name] = easing; + } + } + } + + jQuery.Animation = jQuery.extend(Animation, { + tweener: function tweener(props, callback) { + if (jQuery.isFunction(props)) { + callback = props; + props = ["*"]; + } else { + props = props.split(" "); + } + + var prop, + index = 0, + length = props.length; + + for (; index < length; index++) { + prop = props[index]; + tweeners[prop] = tweeners[prop] || []; + tweeners[prop].unshift(callback); + } + }, + prefilter: function prefilter(callback, prepend) { + if (prepend) { + animationPrefilters.unshift(callback); + } else { + animationPrefilters.push(callback); + } + } + }); + + function defaultPrefilter(elem, props, opts) { + var index, + prop, + value, + length, + dataShow, + tween, + hooks, + oldfire, + anim = this, + style = elem.style, + orig = {}, + handled = [], + hidden = elem.nodeType && isHidden(elem); // handle queue: false promises + + if (!opts.queue) { + hooks = jQuery._queueHooks(elem, "fx"); + + if (hooks.unqueued == null) { + hooks.unqueued = 0; + oldfire = hooks.empty.fire; + + hooks.empty.fire = function () { + if (!hooks.unqueued) { + oldfire(); + } + }; + } + + hooks.unqueued++; + anim.always(function () { + // doing this makes sure that the complete handler will be called + // before this completes + anim.always(function () { + hooks.unqueued--; + + if (!jQuery.queue(elem, "fx").length) { + hooks.empty.fire(); + } + }); + }); + } // height/width overflow pass + + + if (elem.nodeType === 1 && ("height" in props || "width" in props)) { + // Make sure that nothing sneaks out + // Record all 3 overflow attributes because IE does not + // change the overflow attribute when overflowX and + // overflowY are set to the same value + opts.overflow = [style.overflow, style.overflowX, style.overflowY]; // Set display property to inline-block for height/width + // animations on inline elements that are having width/height animated + + if (jQuery.css(elem, "display") === "inline" && jQuery.css(elem, "float") === "none") { + // inline-level elements accept inline-block; + // block-level elements need to be inline with layout + if (!jQuery.support.inlineBlockNeedsLayout || css_defaultDisplay(elem.nodeName) === "inline") { + style.display = "inline-block"; + } else { + style.zoom = 1; + } + } + } + + if (opts.overflow) { + style.overflow = "hidden"; + + if (!jQuery.support.shrinkWrapBlocks) { + anim.done(function () { + style.overflow = opts.overflow[0]; + style.overflowX = opts.overflow[1]; + style.overflowY = opts.overflow[2]; + }); + } + } // show/hide pass + + + for (index in props) { + value = props[index]; + + if (rfxtypes.exec(value)) { + delete props[index]; + + if (value === (hidden ? "hide" : "show")) { + continue; + } + + handled.push(index); + } + } + + length = handled.length; + + if (length) { + dataShow = jQuery._data(elem, "fxshow") || jQuery._data(elem, "fxshow", {}); + + if (hidden) { + jQuery(elem).show(); + } else { + anim.done(function () { + jQuery(elem).hide(); + }); + } + + anim.done(function () { + var prop; + jQuery.removeData(elem, "fxshow", true); + + for (prop in orig) { + jQuery.style(elem, prop, orig[prop]); + } + }); + + for (index = 0; index < length; index++) { + prop = handled[index]; + tween = anim.createTween(prop, hidden ? dataShow[prop] : 0); + orig[prop] = dataShow[prop] || jQuery.style(elem, prop); + + if (!(prop in dataShow)) { + dataShow[prop] = tween.start; + + if (hidden) { + tween.end = tween.start; + tween.start = prop === "width" || prop === "height" ? 1 : 0; + } + } + } + } + } + + function Tween(elem, options, prop, end, easing) { + return new Tween.prototype.init(elem, options, prop, end, easing); + } + + jQuery.Tween = Tween; + Tween.prototype = { + constructor: Tween, + init: function init(elem, options, prop, end, easing, unit) { + this.elem = elem; + this.prop = prop; + this.easing = easing || "swing"; + this.options = options; + this.start = this.now = this.cur(); + this.end = end; + this.unit = unit || (jQuery.cssNumber[prop] ? "" : "px"); + }, + cur: function cur() { + var hooks = Tween.propHooks[this.prop]; + return hooks && hooks.get ? hooks.get(this) : Tween.propHooks._default.get(this); + }, + run: function run(percent) { + var eased, + hooks = Tween.propHooks[this.prop]; + + if (this.options.duration) { + this.pos = eased = jQuery.easing[this.easing](percent, this.options.duration * percent, 0, 1, this.options.duration); + } else { + this.pos = eased = percent; + } + + this.now = (this.end - this.start) * eased + this.start; + + if (this.options.step) { + this.options.step.call(this.elem, this.now, this); + } + + if (hooks && hooks.set) { + hooks.set(this); + } else { + Tween.propHooks._default.set(this); + } + + return this; + } + }; + Tween.prototype.init.prototype = Tween.prototype; + Tween.propHooks = { + _default: { + get: function get(tween) { + var result; + + if (tween.elem[tween.prop] != null && (!tween.elem.style || tween.elem.style[tween.prop] == null)) { + return tween.elem[tween.prop]; + } // passing any value as a 4th parameter to .css will automatically + // attempt a parseFloat and fallback to a string if the parse fails + // so, simple values such as "10px" are parsed to Float. + // complex values such as "rotate(1rad)" are returned as is. + + + result = jQuery.css(tween.elem, tween.prop, false, ""); // Empty strings, null, undefined and "auto" are converted to 0. + + return !result || result === "auto" ? 0 : result; + }, + set: function set(tween) { + // use step hook for back compat - use cssHook if its there - use .style if its + // available and use plain properties where available + if (jQuery.fx.step[tween.prop]) { + jQuery.fx.step[tween.prop](tween); + } else if (tween.elem.style && (tween.elem.style[jQuery.cssProps[tween.prop]] != null || jQuery.cssHooks[tween.prop])) { + jQuery.style(tween.elem, tween.prop, tween.now + tween.unit); + } else { + tween.elem[tween.prop] = tween.now; + } + } + } + }; // Remove in 2.0 - this supports IE8's panic based approach + // to setting things on disconnected nodes + + Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { + set: function set(tween) { + if (tween.elem.nodeType && tween.elem.parentNode) { + tween.elem[tween.prop] = tween.now; + } + } + }; + jQuery.each(["toggle", "show", "hide"], function (i, name) { + var cssFn = jQuery.fn[name]; + + jQuery.fn[name] = function (speed, easing, callback) { + return speed == null || typeof speed === "boolean" || // special check for .toggle( handler, handler, ... ) + !i && jQuery.isFunction(speed) && jQuery.isFunction(easing) ? cssFn.apply(this, arguments) : this.animate(genFx(name, true), speed, easing, callback); + }; + }); + jQuery.fn.extend({ + fadeTo: function fadeTo(speed, to, easing, callback) { + // show any hidden elements after setting opacity to 0 + return this.filter(isHidden).css("opacity", 0).show() // animate to the value specified + .end().animate({ + opacity: to + }, speed, easing, callback); + }, + animate: function animate(prop, speed, easing, callback) { + var empty = jQuery.isEmptyObject(prop), + optall = jQuery.speed(speed, easing, callback), + doAnimation = function doAnimation() { + // Operate on a copy of prop so per-property easing won't be lost + var anim = Animation(this, jQuery.extend({}, prop), optall); // Empty animations resolve immediately + + if (empty) { + anim.stop(true); + } + }; + + return empty || optall.queue === false ? this.each(doAnimation) : this.queue(optall.queue, doAnimation); + }, + stop: function stop(type, clearQueue, gotoEnd) { + var stopQueue = function stopQueue(hooks) { + var stop = hooks.stop; + delete hooks.stop; + stop(gotoEnd); + }; + + if (typeof type !== "string") { + gotoEnd = clearQueue; + clearQueue = type; + type = undefined; + } + + if (clearQueue && type !== false) { + this.queue(type || "fx", []); + } + + return this.each(function () { + var dequeue = true, + index = type != null && type + "queueHooks", + timers = jQuery.timers, + data = jQuery._data(this); + + if (index) { + if (data[index] && data[index].stop) { + stopQueue(data[index]); + } + } else { + for (index in data) { + if (data[index] && data[index].stop && rrun.test(index)) { + stopQueue(data[index]); + } + } + } + + for (index = timers.length; index--;) { + if (timers[index].elem === this && (type == null || timers[index].queue === type)) { + timers[index].anim.stop(gotoEnd); + dequeue = false; + timers.splice(index, 1); + } + } // start the next in the queue if the last step wasn't forced + // timers currently will call their complete callbacks, which will dequeue + // but only if they were gotoEnd + + + if (dequeue || !gotoEnd) { + jQuery.dequeue(this, type); + } + }); + } + }); // Generate parameters to create a standard animation + + function genFx(type, includeWidth) { + var which, + attrs = { + height: type + }, + i = 0; // if we include width, step value is 1 to do all cssExpand values, + // if we don't include width, step value is 2 to skip over Left and Right + + includeWidth = includeWidth ? 1 : 0; + + for (; i < 4; i += 2 - includeWidth) { + which = cssExpand[i]; + attrs["margin" + which] = attrs["padding" + which] = type; + } + + if (includeWidth) { + attrs.opacity = attrs.width = type; + } + + return attrs; + } // Generate shortcuts for custom animations + + + jQuery.each({ + slideDown: genFx("show"), + slideUp: genFx("hide"), + slideToggle: genFx("toggle"), + fadeIn: { + opacity: "show" + }, + fadeOut: { + opacity: "hide" + }, + fadeToggle: { + opacity: "toggle" + } + }, function (name, props) { + jQuery.fn[name] = function (speed, easing, callback) { + return this.animate(props, speed, easing, callback); + }; + }); + + jQuery.speed = function (speed, easing, fn) { + var opt = speed && _typeof(speed) === "object" ? jQuery.extend({}, speed) : { + complete: fn || !fn && easing || jQuery.isFunction(speed) && speed, + duration: speed, + easing: fn && easing || easing && !jQuery.isFunction(easing) && easing + }; + opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration : opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default; // normalize opt.queue - true/undefined/null -> "fx" + + if (opt.queue == null || opt.queue === true) { + opt.queue = "fx"; + } // Queueing + + + opt.old = opt.complete; + + opt.complete = function () { + if (jQuery.isFunction(opt.old)) { + opt.old.call(this); + } + + if (opt.queue) { + jQuery.dequeue(this, opt.queue); + } + }; + + return opt; + }; + + jQuery.easing = { + linear: function linear(p) { + return p; + }, + swing: function swing(p) { + return 0.5 - Math.cos(p * Math.PI) / 2; + } + }; + jQuery.timers = []; + jQuery.fx = Tween.prototype.init; + + jQuery.fx.tick = function () { + var timer, + timers = jQuery.timers, + i = 0; + + for (; i < timers.length; i++) { + timer = timers[i]; // Checks the timer has not already been removed + + if (!timer() && timers[i] === timer) { + timers.splice(i--, 1); + } + } + + if (!timers.length) { + jQuery.fx.stop(); + } + }; + + jQuery.fx.timer = function (timer) { + if (timer() && jQuery.timers.push(timer) && !timerId) { + timerId = setInterval(jQuery.fx.tick, jQuery.fx.interval); + } + }; + + jQuery.fx.interval = 13; + + jQuery.fx.stop = function () { + clearInterval(timerId); + timerId = null; + }; + + jQuery.fx.speeds = { + slow: 600, + fast: 200, + // Default speed + _default: 400 + }; // Back Compat <1.8 extension point + + jQuery.fx.step = {}; + + if (jQuery.expr && jQuery.expr.filters) { + jQuery.expr.filters.animated = function (elem) { + return jQuery.grep(jQuery.timers, function (fn) { + return elem === fn.elem; + }).length; + }; + } + + var rroot = /^(?:body|html)$/i; + + jQuery.fn.offset = function (options) { + if (arguments.length) { + return options === undefined ? this : this.each(function (i) { + jQuery.offset.setOffset(this, options, i); + }); + } + + var box, + docElem, + body, + win, + clientTop, + clientLeft, + scrollTop, + scrollLeft, + top, + left, + elem = this[0], + doc = elem && elem.ownerDocument; + + if (!doc) { + return; + } + + if ((body = doc.body) === elem) { + return jQuery.offset.bodyOffset(elem); + } + + docElem = doc.documentElement; // Make sure we're not dealing with a disconnected DOM node + + if (!jQuery.contains(docElem, elem)) { + return { + top: 0, + left: 0 + }; + } + + box = elem.getBoundingClientRect(); + win = getWindow(doc); + clientTop = docElem.clientTop || body.clientTop || 0; + clientLeft = docElem.clientLeft || body.clientLeft || 0; + scrollTop = win.pageYOffset || docElem.scrollTop; + scrollLeft = win.pageXOffset || docElem.scrollLeft; + top = box.top + scrollTop - clientTop; + left = box.left + scrollLeft - clientLeft; + return { + top: top, + left: left + }; + }; + + jQuery.offset = { + bodyOffset: function bodyOffset(body) { + var top = body.offsetTop, + left = body.offsetLeft; + + if (jQuery.support.doesNotIncludeMarginInBodyOffset) { + top += parseFloat(jQuery.css(body, "marginTop")) || 0; + left += parseFloat(jQuery.css(body, "marginLeft")) || 0; + } + + return { + top: top, + left: left + }; + }, + setOffset: function setOffset(elem, options, i) { + var position = jQuery.css(elem, "position"); // set position first, in-case top/left are set even on static elem + + if (position === "static") { + elem.style.position = "relative"; + } + + var curElem = jQuery(elem), + curOffset = curElem.offset(), + curCSSTop = jQuery.css(elem, "top"), + curCSSLeft = jQuery.css(elem, "left"), + calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1, + props = {}, + curPosition = {}, + curTop, + curLeft; // need to be able to calculate position if either top or left is auto and position is either absolute or fixed + + if (calculatePosition) { + curPosition = curElem.position(); + curTop = curPosition.top; + curLeft = curPosition.left; + } else { + curTop = parseFloat(curCSSTop) || 0; + curLeft = parseFloat(curCSSLeft) || 0; + } + + if (jQuery.isFunction(options)) { + options = options.call(elem, i, curOffset); + } + + if (options.top != null) { + props.top = options.top - curOffset.top + curTop; + } + + if (options.left != null) { + props.left = options.left - curOffset.left + curLeft; + } + + if ("using" in options) { + options.using.call(elem, props); + } else { + curElem.css(props); + } + } + }; + jQuery.fn.extend({ + position: function position() { + if (!this[0]) { + return; + } + + var elem = this[0], + // Get *real* offsetParent + offsetParent = this.offsetParent(), + // Get correct offsets + offset = this.offset(), + parentOffset = rroot.test(offsetParent[0].nodeName) ? { + top: 0, + left: 0 + } : offsetParent.offset(); // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + + offset.top -= parseFloat(jQuery.css(elem, "marginTop")) || 0; + offset.left -= parseFloat(jQuery.css(elem, "marginLeft")) || 0; // Add offsetParent borders + + parentOffset.top += parseFloat(jQuery.css(offsetParent[0], "borderTopWidth")) || 0; + parentOffset.left += parseFloat(jQuery.css(offsetParent[0], "borderLeftWidth")) || 0; // Subtract the two offsets + + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + }; + }, + offsetParent: function offsetParent() { + return this.map(function () { + var offsetParent = this.offsetParent || document.body; + + while (offsetParent && !rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") { + offsetParent = offsetParent.offsetParent; + } + + return offsetParent || document.body; + }); + } + }); // Create scrollLeft and scrollTop methods + + jQuery.each({ + scrollLeft: "pageXOffset", + scrollTop: "pageYOffset" + }, function (method, prop) { + var top = /Y/.test(prop); + + jQuery.fn[method] = function (val) { + return jQuery.access(this, function (elem, method, val) { + var win = getWindow(elem); + + if (val === undefined) { + return win ? prop in win ? win[prop] : win.document.documentElement[method] : elem[method]; + } + + if (win) { + win.scrollTo(!top ? val : jQuery(win).scrollLeft(), top ? val : jQuery(win).scrollTop()); + } else { + elem[method] = val; + } + }, method, val, arguments.length, null); + }; + }); + + function getWindow(elem) { + return jQuery.isWindow(elem) ? elem : elem.nodeType === 9 ? elem.defaultView || elem.parentWindow : false; + } // Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods + + + jQuery.each({ + Height: "height", + Width: "width" + }, function (name, type) { + jQuery.each({ + padding: "inner" + name, + content: type, + "": "outer" + name + }, function (defaultExtra, funcName) { + // margin is only for outerHeight, outerWidth + jQuery.fn[funcName] = function (margin, value) { + var chainable = arguments.length && (defaultExtra || typeof margin !== "boolean"), + extra = defaultExtra || (margin === true || value === true ? "margin" : "border"); + return jQuery.access(this, function (elem, type, value) { + var doc; + + if (jQuery.isWindow(elem)) { + // As of 5/8/2012 this will yield incorrect results for Mobile Safari, but there + // isn't a whole lot we can do. See pull request at this URL for discussion: + // https://github.com/jquery/jquery/pull/764 + return elem.document.documentElement["client" + name]; + } // Get document width or height + + + if (elem.nodeType === 9) { + doc = elem.documentElement; // Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height], whichever is greatest + // unfortunately, this causes bug #3838 in IE6/8 only, but there is currently no good, small way to fix it. + + return Math.max(elem.body["scroll" + name], doc["scroll" + name], elem.body["offset" + name], doc["offset" + name], doc["client" + name]); + } + + return value === undefined ? // Get width or height on the element, requesting but not forcing parseFloat + jQuery.css(elem, type, value, extra) : // Set width or height on the element + jQuery.style(elem, type, value, extra); + }, type, chainable ? margin : undefined, chainable, null); + }; + }); + }); // Expose jQuery to the global object + + window.jQuery = window.$ = jQuery; // Expose jQuery as an AMD module, but only for AMD loaders that + // understand the issues with loading multiple versions of jQuery + // in a page that all might call define(). The loader will indicate + // they have special allowances for multiple jQuery versions by + // specifying define.amd.jQuery = true. Register as a named module, + // since jQuery can be concatenated with other files that may use define, + // but not use a proper concatenation script that understands anonymous + // AMD modules. A named AMD is safest and most robust way to register. + // Lowercase jquery is used because AMD module names are derived from + // file names, and jQuery is normally delivered in a lowercase file name. + // Do this after creating the global so that if an AMD module wants to call + // noConflict to hide this version of jQuery, it will work. + + if (typeof define === "function" && define.amd && define.amd.jQuery) { + define("jquery", [], function () { + return jQuery; + }); + } +})(window); + +},{}]},{},[3,2,1]) +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCJ3ZWIvYXBpLWNvbW1vbi9sb2dpbi5qcyIsIndlYi9ib290c3RyYXAvanMvYm9vdHN0cmFwLmpzIiwid2ViL2pzL2pxdWVyeS0xLjguMS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0FDQUEsQ0FBQyxDQUFDLFFBQUQsQ0FBRCxDQUFZLEtBQVosQ0FBa0IsWUFBTTtBQUN0QixFQUFBLENBQUMsQ0FBQyxNQUFELENBQUQsQ0FBVSxPQUFWLENBQWtCLFVBQUMsS0FBRCxFQUFXO0FBQzNCLFFBQUksS0FBSyxDQUFDLE9BQU4sSUFBaUIsRUFBckIsRUFBeUI7QUFDdkIsTUFBQSxLQUFLLENBQUMsY0FBTjtBQUNBLGFBQU8sS0FBUDtBQUNEO0FBQ0YsR0FMRDtBQU9BLEVBQUEsQ0FBQyxDQUFDLFdBQUQsQ0FBRCxDQUFlLE9BQWYsQ0FBdUIsVUFBQyxLQUFELEVBQVc7QUFDaEMsUUFBSSxLQUFLLENBQUMsT0FBTixJQUFpQixFQUFyQixFQUF5QjtBQUN2QixNQUFBLFdBQVc7QUFDWCxhQUFPLEtBQVA7QUFDRDtBQUNGLEdBTEQ7QUFNRCxDQWREOztBQWdCQSxNQUFNLENBQUMsa0JBQVAsR0FBNEIsWUFBTTtBQUNoQyxFQUFBLENBQUMsQ0FBQyxZQUFELENBQUQsQ0FBZ0IsSUFBaEI7QUFDQSxFQUFBLENBQUMsQ0FBQyw0QkFBRCxDQUFELENBQWdDLElBQWhDO0FBQ0QsQ0FIRDs7QUFLQSxNQUFNLENBQUMscUJBQVAsR0FBK0IsWUFBTTtBQUNuQyxFQUFBLENBQUMsQ0FBQyxpQ0FBRCxDQUFELENBQXFDLElBQXJDO0FBQ0EsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDLGlCQUFELENBQUQsQ0FBcUIsR0FBckIsRUFBWDs7QUFDQSxNQUFJLEVBQUUsS0FBSyxFQUFYLEVBQWU7QUFDYixXQUFPLEtBQVA7QUFDRDs7QUFDRCxFQUFBLENBQUMsQ0FBQyxJQUFGLENBQU8sYUFBUCxF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SUE3QkksRUE2QkUsU0FBUyxHQUFHLE1BQUgsR0FBWSxTQTdCdkIsRUE2QmtDLFNBN0JsQyxFQTZCNkMsSUE3QjdDLENBQVA7QUE4QkEsT0FsQ0Q7QUFtQ0EsS0FyQ0Q7QUFzQ0EsR0F2Q0QsRUE1Z1MrQixDQW9qUy9COztBQUNBLEVBQUEsTUFBTSxDQUFDLE1BQVAsR0FBZ0IsTUFBTSxDQUFDLENBQVAsR0FBVyxNQUEzQixDQXJqUytCLENBdWpTL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE1BQUssT0FBTyxNQUFQLEtBQWtCLFVBQWxCLElBQWdDLE1BQU0sQ0FBQyxHQUF2QyxJQUE4QyxNQUFNLENBQUMsR0FBUCxDQUFXLE1BQTlELEVBQXVFO0FBQ3RFLElBQUEsTUFBTSxDQUFFLFFBQUYsRUFBWSxFQUFaLEVBQWdCLFlBQVk7QUFBRSxhQUFPLE1BQVA7QUFBZ0IsS0FBOUMsQ0FBTjtBQUNBO0FBRUEsQ0F2a1NELEVBdWtTSSxNQXZrU0oiLCJmaWxlIjoiZ2VuZXJhdGVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSxuLHQpe2Z1bmN0aW9uIG8oaSxmKXtpZighbltpXSl7aWYoIWVbaV0pe3ZhciBjPVwiZnVuY3Rpb25cIj09dHlwZW9mIHJlcXVpcmUmJnJlcXVpcmU7aWYoIWYmJmMpcmV0dXJuIGMoaSwhMCk7aWYodSlyZXR1cm4gdShpLCEwKTt2YXIgYT1uZXcgRXJyb3IoXCJDYW5ub3QgZmluZCBtb2R1bGUgJ1wiK2krXCInXCIpO3Rocm93IGEuY29kZT1cIk1PRFVMRV9OT1RfRk9VTkRcIixhfXZhciBwPW5baV09e2V4cG9ydHM6e319O2VbaV1bMF0uY2FsbChwLmV4cG9ydHMsZnVuY3Rpb24ocil7dmFyIG49ZVtpXVsxXVtyXTtyZXR1cm4gbyhufHxyKX0scCxwLmV4cG9ydHMscixlLG4sdCl9cmV0dXJuIG5baV0uZXhwb3J0c31mb3IodmFyIHU9XCJmdW5jdGlvblwiPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxpPTA7aTx0Lmxlbmd0aDtpKyspbyh0W2ldKTtyZXR1cm4gb31yZXR1cm4gcn0pKCkiLCIkKGRvY3VtZW50KS5yZWFkeSgoKSA9PiB7XHJcbiAgJCh3aW5kb3cpLmtleWRvd24oKGV2ZW50KSA9PiB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAxMykge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gICQoJyNwYXNzd29yZCcpLmtleWRvd24oKGV2ZW50KSA9PiB7XHJcbiAgICBpZiAoZXZlbnQua2V5Q29kZSA9PSAxMykge1xyXG4gICAgICBzdWJtaXRMb2dpbigpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfSk7XHJcbn0pO1xyXG5cclxud2luZG93LnNob3dGb3Jnb3RQYXNzd29yZCA9ICgpID0+IHtcclxuICAkKCcjbG9naW5Gb3JtJykuaGlkZSgpO1xyXG4gICQoJyNyZXF1ZXN0UGFzc3dvcmRDaGFuZ2VGb3JtJykuc2hvdygpO1xyXG59O1xyXG5cclxud2luZG93LnJlcXVlc3RQYXNzd29yZENoYW5nZSA9ICgpID0+IHtcclxuICAkKCcjcmVxdWVzdFBhc3N3b3JkQ2hhbmdlRm9ybUFsZXJ0JykuaGlkZSgpO1xyXG4gIGNvbnN0IGlkID0gJCgnI3VzZXJuYW1lQ2hhbmdlJykudmFsKCk7XHJcbiAgaWYgKGlkID09PSAnJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICAkLnBvc3QoJ3NlcnZpY2UucGhwJywgeyBhOiAncnBjJywgaWQgfSwgKGRhdGEpID0+IHtcclxuICAgIGlmIChkYXRhLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgJCgnI3JlcXVlc3RQYXNzd29yZENoYW5nZUZvcm1BbGVydCcpLnNob3coKTtcclxuICAgICAgJCgnI3JlcXVlc3RQYXNzd29yZENoYW5nZUZvcm1BbGVydCcpLmh0bWwoZGF0YS5tZXNzYWdlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgICQoJyNyZXF1ZXN0UGFzc3dvcmRDaGFuZ2VGb3JtQWxlcnQnKS5zaG93KCk7XHJcbiAgICAgICQoJyNyZXF1ZXN0UGFzc3dvcmRDaGFuZ2VGb3JtQWxlcnQnKS5odG1sKGRhdGEubWVzc2FnZSk7XHJcbiAgICB9XHJcbiAgfSwgJ2pzb24nKTtcclxufTtcclxuXHJcbndpbmRvdy5jaGFuZ2VQYXNzd29yZCA9IChrZXkpID0+IHtcclxuICAkKCcjbmV3UGFzc3dvcmRGb3JtQWxlcnQnKS5oaWRlKCk7XHJcbiAgY29uc3QgcGFzc3dvcmQgPSAkKCcjcGFzc3dvcmQnKS52YWwoKTtcclxuXHJcbiAgY29uc3QgcGFzc3dvcmRWYWxpZGF0aW9uID0gZnVuY3Rpb24gKHN0cikge1xyXG4gICAgcmV0dXJuIHN0ci5sZW5ndGggPiA3O1xyXG4gIH07XHJcblxyXG5cclxuICBpZiAoIXBhc3N3b3JkVmFsaWRhdGlvbihwYXNzd29yZCkpIHtcclxuICAgICQoJyNuZXdQYXNzd29yZEZvcm1BbGVydCcpLnNob3coKTtcclxuICAgICQoJyNuZXdQYXNzd29yZEZvcm1BbGVydCcpLmh0bWwoJ1Bhc3N3b3JkIHNob3VsZCBiZSBsb25nZXIgdGhhbiA3IGNoYXJhY3RlcnMnKTtcclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG5cclxuICAkLnBvc3QoJ3NlcnZpY2UucGhwJywge1xyXG4gICAgYTogJ3JzcCcsIGtleSwgcHdkOiBwYXNzd29yZCwgbm93OiAnMScsXHJcbiAgfSwgKGRhdGEpID0+IHtcclxuICAgIGlmIChkYXRhLnN0YXR1cyA9PSAnU1VDQ0VTUycpIHtcclxuICAgICAgdG9wLmxvY2F0aW9uLmhyZWYgPSAnbG9naW4ucGhwP2M9MSc7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAkKCcjbmV3UGFzc3dvcmRGb3JtQWxlcnQnKS5zaG93KCk7XHJcbiAgICAgICQoJyNuZXdQYXNzd29yZEZvcm1BbGVydCcpLmh0bWwoZGF0YS5tZXNzYWdlKTtcclxuICAgIH1cclxuICB9LCAnanNvbicpO1xyXG59O1xyXG5cclxud2luZG93LnN1Ym1pdExvZ2luID0gKCkgPT4ge1xyXG4gIGNvbnN0IHVzZXJuYW1lID0gJCgnI3VzZXJuYW1lJykudmFsKCk7XHJcbiAgY29uc3QgcGFzc3dvcmQgPSAkKCcjcGFzc3dvcmQnKS52YWwoKTtcclxuICBpZiAodXNlcm5hbWUgPT09ICcnIHx8IHBhc3N3b3JkID09PSAnJykge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuICB0cnkge1xyXG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgfSBjYXRjaCAoZSkge31cclxuICAkKCcjbG9naW5Gb3JtJykuc3VibWl0KCk7XHJcbn07XHJcblxyXG53aW5kb3cuYXV0aEdvb2dsZSA9ICgpID0+IHtcclxuICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IGAke3dpbmRvdy5sb2NhdGlvbi5ocmVmLnNwbGl0KCdsb2dpbi5waHAnKVswXX1sb2dpbi5waHA/Z29vZ2xlPTFgO1xyXG59O1xyXG4iLCIvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogYm9vdHN0cmFwLXRyYW5zaXRpb24uanMgdjIuMS4xXHJcbiAqIGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5jb20vYm9vdHN0cmFwL2phdmFzY3JpcHQuaHRtbCN0cmFuc2l0aW9uc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuIWZ1bmN0aW9uICgkKSB7XHJcblxyXG4gICQoZnVuY3Rpb24gKCkge1xyXG5cclxuICAgIFwidXNlIHN0cmljdFwiOyAvLyBqc2hpbnQgO187XHJcblxyXG5cclxuICAgIC8qIENTUyBUUkFOU0lUSU9OIFNVUFBPUlQgKGh0dHA6Ly93d3cubW9kZXJuaXpyLmNvbS8pXHJcbiAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICAgJC5zdXBwb3J0LnRyYW5zaXRpb24gPSAoZnVuY3Rpb24gKCkge1xyXG5cclxuICAgICAgdmFyIHRyYW5zaXRpb25FbmQgPSAoZnVuY3Rpb24gKCkge1xyXG5cclxuICAgICAgICB2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdib290c3RyYXAnKVxyXG4gICAgICAgICAgLCB0cmFuc0VuZEV2ZW50TmFtZXMgPSB7XHJcbiAgICAgICAgICAgICAgICdXZWJraXRUcmFuc2l0aW9uJyA6ICd3ZWJraXRUcmFuc2l0aW9uRW5kJ1xyXG4gICAgICAgICAgICAsICAnTW96VHJhbnNpdGlvbicgICAgOiAndHJhbnNpdGlvbmVuZCdcclxuICAgICAgICAgICAgLCAgJ09UcmFuc2l0aW9uJyAgICAgIDogJ29UcmFuc2l0aW9uRW5kIG90cmFuc2l0aW9uZW5kJ1xyXG4gICAgICAgICAgICAsICAndHJhbnNpdGlvbicgICAgICAgOiAndHJhbnNpdGlvbmVuZCdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgLCBuYW1lXHJcblxyXG4gICAgICAgIGZvciAobmFtZSBpbiB0cmFuc0VuZEV2ZW50TmFtZXMpe1xyXG4gICAgICAgICAgaWYgKGVsLnN0eWxlW25hbWVdICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRyYW5zRW5kRXZlbnROYW1lc1tuYW1lXVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH0oKSlcclxuXHJcbiAgICAgIHJldHVybiB0cmFuc2l0aW9uRW5kICYmIHtcclxuICAgICAgICBlbmQ6IHRyYW5zaXRpb25FbmRcclxuICAgICAgfVxyXG5cclxuICAgIH0pKClcclxuXHJcbiAgfSlcclxuXHJcbn0od2luZG93LmpRdWVyeSk7LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBib290c3RyYXAtYWxlcnQuanMgdjIuMS4xXHJcbiAqIGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5jb20vYm9vdHN0cmFwL2phdmFzY3JpcHQuaHRtbCNhbGVydHNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBDb3B5cmlnaHQgMjAxMiBUd2l0dGVyLCBJbmMuXHJcbiAqXHJcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XHJcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cclxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XHJcbiAqXHJcbiAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxyXG4gKlxyXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXHJcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcclxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXHJcbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcclxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4hZnVuY3Rpb24gKCQpIHtcclxuXHJcbiAgXCJ1c2Ugc3RyaWN0XCI7IC8vIGpzaGludCA7XztcclxuXHJcblxyXG4gLyogQUxFUlQgQ0xBU1MgREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICB2YXIgZGlzbWlzcyA9ICdbZGF0YS1kaXNtaXNzPVwiYWxlcnRcIl0nXHJcbiAgICAsIEFsZXJ0ID0gZnVuY3Rpb24gKGVsKSB7XHJcbiAgICAgICAgJChlbCkub24oJ2NsaWNrJywgZGlzbWlzcywgdGhpcy5jbG9zZSlcclxuICAgICAgfVxyXG5cclxuICBBbGVydC5wcm90b3R5cGUuY2xvc2UgPSBmdW5jdGlvbiAoZSkge1xyXG4gICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG4gICAgICAsIHNlbGVjdG9yID0gJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKVxyXG4gICAgICAsICRwYXJlbnRcclxuXHJcbiAgICBpZiAoIXNlbGVjdG9yKSB7XHJcbiAgICAgIHNlbGVjdG9yID0gJHRoaXMuYXR0cignaHJlZicpXHJcbiAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3IgJiYgc2VsZWN0b3IucmVwbGFjZSgvLiooPz0jW15cXHNdKiQpLywgJycpIC8vc3RyaXAgZm9yIGllN1xyXG4gICAgfVxyXG5cclxuICAgICRwYXJlbnQgPSAkKHNlbGVjdG9yKVxyXG5cclxuICAgIGUgJiYgZS5wcmV2ZW50RGVmYXVsdCgpXHJcblxyXG4gICAgJHBhcmVudC5sZW5ndGggfHwgKCRwYXJlbnQgPSAkdGhpcy5oYXNDbGFzcygnYWxlcnQnKSA/ICR0aGlzIDogJHRoaXMucGFyZW50KCkpXHJcblxyXG4gICAgJHBhcmVudC50cmlnZ2VyKGUgPSAkLkV2ZW50KCdjbG9zZScpKVxyXG5cclxuICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuXHJcbiAgICAkcGFyZW50LnJlbW92ZUNsYXNzKCdpbicpXHJcblxyXG4gICAgZnVuY3Rpb24gcmVtb3ZlRWxlbWVudCgpIHtcclxuICAgICAgJHBhcmVudFxyXG4gICAgICAgIC50cmlnZ2VyKCdjbG9zZWQnKVxyXG4gICAgICAgIC5yZW1vdmUoKVxyXG4gICAgfVxyXG5cclxuICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmICRwYXJlbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/XHJcbiAgICAgICRwYXJlbnQub24oJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLCByZW1vdmVFbGVtZW50KSA6XHJcbiAgICAgIHJlbW92ZUVsZW1lbnQoKVxyXG4gIH1cclxuXHJcblxyXG4gLyogQUxFUlQgUExVR0lOIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQuZm4uYWxlcnQgPSBmdW5jdGlvbiAob3B0aW9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG4gICAgICAgICwgZGF0YSA9ICR0aGlzLmRhdGEoJ2FsZXJ0JylcclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCdhbGVydCcsIChkYXRhID0gbmV3IEFsZXJ0KHRoaXMpKSlcclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT0gJ3N0cmluZycpIGRhdGFbb3B0aW9uXS5jYWxsKCR0aGlzKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gICQuZm4uYWxlcnQuQ29uc3RydWN0b3IgPSBBbGVydFxyXG5cclxuXHJcbiAvKiBBTEVSVCBEQVRBLUFQSVxyXG4gICogPT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgJChmdW5jdGlvbiAoKSB7XHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrLmFsZXJ0LmRhdGEtYXBpJywgZGlzbWlzcywgQWxlcnQucHJvdG90eXBlLmNsb3NlKVxyXG4gIH0pXHJcblxyXG59KHdpbmRvdy5qUXVlcnkpOy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBib290c3RyYXAtYnV0dG9uLmpzIHYyLjEuMVxyXG4gKiBodHRwOi8vdHdpdHRlci5naXRodWIuY29tL2Jvb3RzdHJhcC9qYXZhc2NyaXB0Lmh0bWwjYnV0dG9uc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4hZnVuY3Rpb24gKCQpIHtcclxuXHJcbiAgXCJ1c2Ugc3RyaWN0XCI7IC8vIGpzaGludCA7XztcclxuXHJcblxyXG4gLyogQlVUVE9OIFBVQkxJQyBDTEFTUyBERUZJTklUSU9OXHJcbiAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgdmFyIEJ1dHRvbiA9IGZ1bmN0aW9uIChlbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KVxyXG4gICAgdGhpcy5vcHRpb25zID0gJC5leHRlbmQoe30sICQuZm4uYnV0dG9uLmRlZmF1bHRzLCBvcHRpb25zKVxyXG4gIH1cclxuXHJcbiAgQnV0dG9uLnByb3RvdHlwZS5zZXRTdGF0ZSA9IGZ1bmN0aW9uIChzdGF0ZSkge1xyXG4gICAgdmFyIGQgPSAnZGlzYWJsZWQnXHJcbiAgICAgICwgJGVsID0gdGhpcy4kZWxlbWVudFxyXG4gICAgICAsIGRhdGEgPSAkZWwuZGF0YSgpXHJcbiAgICAgICwgdmFsID0gJGVsLmlzKCdpbnB1dCcpID8gJ3ZhbCcgOiAnaHRtbCdcclxuXHJcbiAgICBzdGF0ZSA9IHN0YXRlICsgJ1RleHQnXHJcbiAgICBkYXRhLnJlc2V0VGV4dCB8fCAkZWwuZGF0YSgncmVzZXRUZXh0JywgJGVsW3ZhbF0oKSlcclxuXHJcbiAgICAkZWxbdmFsXShkYXRhW3N0YXRlXSB8fCB0aGlzLm9wdGlvbnNbc3RhdGVdKVxyXG5cclxuICAgIC8vIHB1c2ggdG8gZXZlbnQgbG9vcCB0byBhbGxvdyBmb3JtcyB0byBzdWJtaXRcclxuICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICBzdGF0ZSA9PSAnbG9hZGluZ1RleHQnID9cclxuICAgICAgICAkZWwuYWRkQ2xhc3MoZCkuYXR0cihkLCBkKSA6XHJcbiAgICAgICAgJGVsLnJlbW92ZUNsYXNzKGQpLnJlbW92ZUF0dHIoZClcclxuICAgIH0sIDApXHJcbiAgfVxyXG5cclxuICBCdXR0b24ucHJvdG90eXBlLnRvZ2dsZSA9IGZ1bmN0aW9uICgpIHtcclxuICAgIHZhciAkcGFyZW50ID0gdGhpcy4kZWxlbWVudC5jbG9zZXN0KCdbZGF0YS10b2dnbGU9XCJidXR0b25zLXJhZGlvXCJdJylcclxuXHJcbiAgICAkcGFyZW50ICYmICRwYXJlbnRcclxuICAgICAgLmZpbmQoJy5hY3RpdmUnKVxyXG4gICAgICAucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpXHJcblxyXG4gICAgdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygnYWN0aXZlJylcclxuICB9XHJcblxyXG5cclxuIC8qIEJVVFRPTiBQTFVHSU4gREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQuZm4uYnV0dG9uID0gZnVuY3Rpb24gKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsIGRhdGEgPSAkdGhpcy5kYXRhKCdidXR0b24nKVxyXG4gICAgICAgICwgb3B0aW9ucyA9IHR5cGVvZiBvcHRpb24gPT0gJ29iamVjdCcgJiYgb3B0aW9uXHJcbiAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnYnV0dG9uJywgKGRhdGEgPSBuZXcgQnV0dG9uKHRoaXMsIG9wdGlvbnMpKSlcclxuICAgICAgaWYgKG9wdGlvbiA9PSAndG9nZ2xlJykgZGF0YS50b2dnbGUoKVxyXG4gICAgICBlbHNlIGlmIChvcHRpb24pIGRhdGEuc2V0U3RhdGUob3B0aW9uKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gICQuZm4uYnV0dG9uLmRlZmF1bHRzID0ge1xyXG4gICAgbG9hZGluZ1RleHQ6ICdsb2FkaW5nLi4uJ1xyXG4gIH1cclxuXHJcbiAgJC5mbi5idXR0b24uQ29uc3RydWN0b3IgPSBCdXR0b25cclxuXHJcblxyXG4gLyogQlVUVE9OIERBVEEtQVBJXHJcbiAgKiA9PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgJChmdW5jdGlvbiAoKSB7XHJcbiAgICAkKCdib2R5Jykub24oJ2NsaWNrLmJ1dHRvbi5kYXRhLWFwaScsICdbZGF0YS10b2dnbGVePWJ1dHRvbl0nLCBmdW5jdGlvbiAoIGUgKSB7XHJcbiAgICAgIHZhciAkYnRuID0gJChlLnRhcmdldClcclxuICAgICAgaWYgKCEkYnRuLmhhc0NsYXNzKCdidG4nKSkgJGJ0biA9ICRidG4uY2xvc2VzdCgnLmJ0bicpXHJcbiAgICAgICRidG4uYnV0dG9uKCd0b2dnbGUnKVxyXG4gICAgfSlcclxuICB9KVxyXG5cclxufSh3aW5kb3cualF1ZXJ5KTsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIGJvb3RzdHJhcC1jYXJvdXNlbC5qcyB2Mi4xLjFcclxuICogaHR0cDovL3R3aXR0ZXIuZ2l0aHViLmNvbS9ib290c3RyYXAvamF2YXNjcmlwdC5odG1sI2Nhcm91c2VsXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuIWZ1bmN0aW9uICgkKSB7XHJcblxyXG4gIFwidXNlIHN0cmljdFwiOyAvLyBqc2hpbnQgO187XHJcblxyXG5cclxuIC8qIENBUk9VU0VMIENMQVNTIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgdmFyIENhcm91c2VsID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMuJGVsZW1lbnQgPSAkKGVsZW1lbnQpXHJcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zXHJcbiAgICB0aGlzLm9wdGlvbnMuc2xpZGUgJiYgdGhpcy5zbGlkZSh0aGlzLm9wdGlvbnMuc2xpZGUpXHJcbiAgICB0aGlzLm9wdGlvbnMucGF1c2UgPT0gJ2hvdmVyJyAmJiB0aGlzLiRlbGVtZW50XHJcbiAgICAgIC5vbignbW91c2VlbnRlcicsICQucHJveHkodGhpcy5wYXVzZSwgdGhpcykpXHJcbiAgICAgIC5vbignbW91c2VsZWF2ZScsICQucHJveHkodGhpcy5jeWNsZSwgdGhpcykpXHJcbiAgfVxyXG5cclxuICBDYXJvdXNlbC5wcm90b3R5cGUgPSB7XHJcblxyXG4gICAgY3ljbGU6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIGlmICghZSkgdGhpcy5wYXVzZWQgPSBmYWxzZVxyXG4gICAgICB0aGlzLm9wdGlvbnMuaW50ZXJ2YWxcclxuICAgICAgICAmJiAhdGhpcy5wYXVzZWRcclxuICAgICAgICAmJiAodGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKCQucHJveHkodGhpcy5uZXh0LCB0aGlzKSwgdGhpcy5vcHRpb25zLmludGVydmFsKSlcclxuICAgICAgcmV0dXJuIHRoaXNcclxuICAgIH1cclxuXHJcbiAgLCB0bzogZnVuY3Rpb24gKHBvcykge1xyXG4gICAgICB2YXIgJGFjdGl2ZSA9IHRoaXMuJGVsZW1lbnQuZmluZCgnLml0ZW0uYWN0aXZlJylcclxuICAgICAgICAsIGNoaWxkcmVuID0gJGFjdGl2ZS5wYXJlbnQoKS5jaGlsZHJlbigpXHJcbiAgICAgICAgLCBhY3RpdmVQb3MgPSBjaGlsZHJlbi5pbmRleCgkYWN0aXZlKVxyXG4gICAgICAgICwgdGhhdCA9IHRoaXNcclxuXHJcbiAgICAgIGlmIChwb3MgPiAoY2hpbGRyZW4ubGVuZ3RoIC0gMSkgfHwgcG9zIDwgMCkgcmV0dXJuXHJcblxyXG4gICAgICBpZiAodGhpcy5zbGlkaW5nKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuJGVsZW1lbnQub25lKCdzbGlkJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgdGhhdC50byhwb3MpXHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGFjdGl2ZVBvcyA9PSBwb3MpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXVzZSgpLmN5Y2xlKClcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXMuc2xpZGUocG9zID4gYWN0aXZlUG9zID8gJ25leHQnIDogJ3ByZXYnLCAkKGNoaWxkcmVuW3Bvc10pKVxyXG4gICAgfVxyXG5cclxuICAsIHBhdXNlOiBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBpZiAoIWUpIHRoaXMucGF1c2VkID0gdHJ1ZVxyXG4gICAgICBpZiAodGhpcy4kZWxlbWVudC5maW5kKCcubmV4dCwgLnByZXYnKS5sZW5ndGggJiYgJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKSB7XHJcbiAgICAgICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKCQuc3VwcG9ydC50cmFuc2l0aW9uLmVuZClcclxuICAgICAgICB0aGlzLmN5Y2xlKClcclxuICAgICAgfVxyXG4gICAgICBjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpXHJcbiAgICAgIHRoaXMuaW50ZXJ2YWwgPSBudWxsXHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcblxyXG4gICwgbmV4dDogZnVuY3Rpb24gKCkge1xyXG4gICAgICBpZiAodGhpcy5zbGlkaW5nKSByZXR1cm5cclxuICAgICAgcmV0dXJuIHRoaXMuc2xpZGUoJ25leHQnKVxyXG4gICAgfVxyXG5cclxuICAsIHByZXY6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKHRoaXMuc2xpZGluZykgcmV0dXJuXHJcbiAgICAgIHJldHVybiB0aGlzLnNsaWRlKCdwcmV2JylcclxuICAgIH1cclxuXHJcbiAgLCBzbGlkZTogZnVuY3Rpb24gKHR5cGUsIG5leHQpIHtcclxuICAgICAgdmFyICRhY3RpdmUgPSB0aGlzLiRlbGVtZW50LmZpbmQoJy5pdGVtLmFjdGl2ZScpXHJcbiAgICAgICAgLCAkbmV4dCA9IG5leHQgfHwgJGFjdGl2ZVt0eXBlXSgpXHJcbiAgICAgICAgLCBpc0N5Y2xpbmcgPSB0aGlzLmludGVydmFsXHJcbiAgICAgICAgLCBkaXJlY3Rpb24gPSB0eXBlID09ICduZXh0JyA/ICdsZWZ0JyA6ICdyaWdodCdcclxuICAgICAgICAsIGZhbGxiYWNrICA9IHR5cGUgPT0gJ25leHQnID8gJ2ZpcnN0JyA6ICdsYXN0J1xyXG4gICAgICAgICwgdGhhdCA9IHRoaXNcclxuICAgICAgICAsIGUgPSAkLkV2ZW50KCdzbGlkZScsIHtcclxuICAgICAgICAgICAgcmVsYXRlZFRhcmdldDogJG5leHRbMF1cclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICB0aGlzLnNsaWRpbmcgPSB0cnVlXHJcblxyXG4gICAgICBpc0N5Y2xpbmcgJiYgdGhpcy5wYXVzZSgpXHJcblxyXG4gICAgICAkbmV4dCA9ICRuZXh0Lmxlbmd0aCA/ICRuZXh0IDogdGhpcy4kZWxlbWVudC5maW5kKCcuaXRlbScpW2ZhbGxiYWNrXSgpXHJcblxyXG4gICAgICBpZiAoJG5leHQuaGFzQ2xhc3MoJ2FjdGl2ZScpKSByZXR1cm5cclxuXHJcbiAgICAgIGlmICgkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdzbGlkZScpKSB7XHJcbiAgICAgICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpXHJcbiAgICAgICAgaWYgKGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG4gICAgICAgICRuZXh0LmFkZENsYXNzKHR5cGUpXHJcbiAgICAgICAgJG5leHRbMF0ub2Zmc2V0V2lkdGggLy8gZm9yY2UgcmVmbG93XHJcbiAgICAgICAgJGFjdGl2ZS5hZGRDbGFzcyhkaXJlY3Rpb24pXHJcbiAgICAgICAgJG5leHQuYWRkQ2xhc3MoZGlyZWN0aW9uKVxyXG4gICAgICAgIHRoaXMuJGVsZW1lbnQub25lKCQuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgJG5leHQucmVtb3ZlQ2xhc3MoW3R5cGUsIGRpcmVjdGlvbl0uam9pbignICcpKS5hZGRDbGFzcygnYWN0aXZlJylcclxuICAgICAgICAgICRhY3RpdmUucmVtb3ZlQ2xhc3MoWydhY3RpdmUnLCBkaXJlY3Rpb25dLmpvaW4oJyAnKSlcclxuICAgICAgICAgIHRoYXQuc2xpZGluZyA9IGZhbHNlXHJcbiAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdzbGlkJykgfSwgMClcclxuICAgICAgICB9KVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihlKVxyXG4gICAgICAgIGlmIChlLmlzRGVmYXVsdFByZXZlbnRlZCgpKSByZXR1cm5cclxuICAgICAgICAkYWN0aXZlLnJlbW92ZUNsYXNzKCdhY3RpdmUnKVxyXG4gICAgICAgICRuZXh0LmFkZENsYXNzKCdhY3RpdmUnKVxyXG4gICAgICAgIHRoaXMuc2xpZGluZyA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKCdzbGlkJylcclxuICAgICAgfVxyXG5cclxuICAgICAgaXNDeWNsaW5nICYmIHRoaXMuY3ljbGUoKVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXNcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAvKiBDQVJPVVNFTCBQTFVHSU4gREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgJC5mbi5jYXJvdXNlbCA9IGZ1bmN0aW9uIChvcHRpb24pIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcbiAgICAgICAgLCBkYXRhID0gJHRoaXMuZGF0YSgnY2Fyb3VzZWwnKVxyXG4gICAgICAgICwgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuLmNhcm91c2VsLmRlZmF1bHRzLCB0eXBlb2Ygb3B0aW9uID09ICdvYmplY3QnICYmIG9wdGlvbilcclxuICAgICAgICAsIGFjdGlvbiA9IHR5cGVvZiBvcHRpb24gPT0gJ3N0cmluZycgPyBvcHRpb24gOiBvcHRpb25zLnNsaWRlXHJcbiAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnY2Fyb3VzZWwnLCAoZGF0YSA9IG5ldyBDYXJvdXNlbCh0aGlzLCBvcHRpb25zKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdudW1iZXInKSBkYXRhLnRvKG9wdGlvbilcclxuICAgICAgZWxzZSBpZiAoYWN0aW9uKSBkYXRhW2FjdGlvbl0oKVxyXG4gICAgICBlbHNlIGlmIChvcHRpb25zLmludGVydmFsKSBkYXRhLmN5Y2xlKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAkLmZuLmNhcm91c2VsLmRlZmF1bHRzID0ge1xyXG4gICAgaW50ZXJ2YWw6IDUwMDBcclxuICAsIHBhdXNlOiAnaG92ZXInXHJcbiAgfVxyXG5cclxuICAkLmZuLmNhcm91c2VsLkNvbnN0cnVjdG9yID0gQ2Fyb3VzZWxcclxuXHJcblxyXG4gLyogQ0FST1VTRUwgREFUQS1BUElcclxuICAqID09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQoZnVuY3Rpb24gKCkge1xyXG4gICAgJCgnYm9keScpLm9uKCdjbGljay5jYXJvdXNlbC5kYXRhLWFwaScsICdbZGF0YS1zbGlkZV0nLCBmdW5jdGlvbiAoIGUgKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcyksIGhyZWZcclxuICAgICAgICAsICR0YXJnZXQgPSAkKCR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JykgfHwgKGhyZWYgPSAkdGhpcy5hdHRyKCdocmVmJykpICYmIGhyZWYucmVwbGFjZSgvLiooPz0jW15cXHNdKyQpLywgJycpKSAvL3N0cmlwIGZvciBpZTdcclxuICAgICAgICAsIG9wdGlvbnMgPSAhJHRhcmdldC5kYXRhKCdtb2RhbCcpICYmICQuZXh0ZW5kKHt9LCAkdGFyZ2V0LmRhdGEoKSwgJHRoaXMuZGF0YSgpKVxyXG4gICAgICAkdGFyZ2V0LmNhcm91c2VsKG9wdGlvbnMpXHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxyXG4gICAgfSlcclxuICB9KVxyXG5cclxufSh3aW5kb3cualF1ZXJ5KTsvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIGJvb3RzdHJhcC1jb2xsYXBzZS5qcyB2Mi4xLjFcclxuICogaHR0cDovL3R3aXR0ZXIuZ2l0aHViLmNvbS9ib290c3RyYXAvamF2YXNjcmlwdC5odG1sI2NvbGxhcHNlXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4hZnVuY3Rpb24gKCQpIHtcclxuXHJcbiAgXCJ1c2Ugc3RyaWN0XCI7IC8vIGpzaGludCA7XztcclxuXHJcblxyXG4gLyogQ09MTEFQU0UgUFVCTElDIENMQVNTIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIHZhciBDb2xsYXBzZSA9IGZ1bmN0aW9uIChlbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KVxyXG4gICAgdGhpcy5vcHRpb25zID0gJC5leHRlbmQoe30sICQuZm4uY29sbGFwc2UuZGVmYXVsdHMsIG9wdGlvbnMpXHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5wYXJlbnQpIHtcclxuICAgICAgdGhpcy4kcGFyZW50ID0gJCh0aGlzLm9wdGlvbnMucGFyZW50KVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub3B0aW9ucy50b2dnbGUgJiYgdGhpcy50b2dnbGUoKVxyXG4gIH1cclxuXHJcbiAgQ29sbGFwc2UucHJvdG90eXBlID0ge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yOiBDb2xsYXBzZVxyXG5cclxuICAsIGRpbWVuc2lvbjogZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgaGFzV2lkdGggPSB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCd3aWR0aCcpXHJcbiAgICAgIHJldHVybiBoYXNXaWR0aCA/ICd3aWR0aCcgOiAnaGVpZ2h0J1xyXG4gICAgfVxyXG5cclxuICAsIHNob3c6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIGRpbWVuc2lvblxyXG4gICAgICAgICwgc2Nyb2xsXHJcbiAgICAgICAgLCBhY3RpdmVzXHJcbiAgICAgICAgLCBoYXNEYXRhXHJcblxyXG4gICAgICBpZiAodGhpcy50cmFuc2l0aW9uaW5nKSByZXR1cm5cclxuXHJcbiAgICAgIGRpbWVuc2lvbiA9IHRoaXMuZGltZW5zaW9uKClcclxuICAgICAgc2Nyb2xsID0gJC5jYW1lbENhc2UoWydzY3JvbGwnLCBkaW1lbnNpb25dLmpvaW4oJy0nKSlcclxuICAgICAgYWN0aXZlcyA9IHRoaXMuJHBhcmVudCAmJiB0aGlzLiRwYXJlbnQuZmluZCgnPiAuYWNjb3JkaW9uLWdyb3VwID4gLmluJylcclxuXHJcbiAgICAgIGlmIChhY3RpdmVzICYmIGFjdGl2ZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgaGFzRGF0YSA9IGFjdGl2ZXMuZGF0YSgnY29sbGFwc2UnKVxyXG4gICAgICAgIGlmIChoYXNEYXRhICYmIGhhc0RhdGEudHJhbnNpdGlvbmluZykgcmV0dXJuXHJcbiAgICAgICAgYWN0aXZlcy5jb2xsYXBzZSgnaGlkZScpXHJcbiAgICAgICAgaGFzRGF0YSB8fCBhY3RpdmVzLmRhdGEoJ2NvbGxhcHNlJywgbnVsbClcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKDApXHJcbiAgICAgIHRoaXMudHJhbnNpdGlvbignYWRkQ2xhc3MnLCAkLkV2ZW50KCdzaG93JyksICdzaG93bicpXHJcbiAgICAgICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoaXMuJGVsZW1lbnRbZGltZW5zaW9uXSh0aGlzLiRlbGVtZW50WzBdW3Njcm9sbF0pXHJcbiAgICB9XHJcblxyXG4gICwgaGlkZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgZGltZW5zaW9uXHJcbiAgICAgIGlmICh0aGlzLnRyYW5zaXRpb25pbmcpIHJldHVyblxyXG4gICAgICBkaW1lbnNpb24gPSB0aGlzLmRpbWVuc2lvbigpXHJcbiAgICAgIHRoaXMucmVzZXQodGhpcy4kZWxlbWVudFtkaW1lbnNpb25dKCkpXHJcbiAgICAgIHRoaXMudHJhbnNpdGlvbigncmVtb3ZlQ2xhc3MnLCAkLkV2ZW50KCdoaWRlJyksICdoaWRkZW4nKVxyXG4gICAgICB0aGlzLiRlbGVtZW50W2RpbWVuc2lvbl0oMClcclxuICAgIH1cclxuXHJcbiAgLCByZXNldDogZnVuY3Rpb24gKHNpemUpIHtcclxuICAgICAgdmFyIGRpbWVuc2lvbiA9IHRoaXMuZGltZW5zaW9uKClcclxuXHJcbiAgICAgIHRoaXMuJGVsZW1lbnRcclxuICAgICAgICAucmVtb3ZlQ2xhc3MoJ2NvbGxhcHNlJylcclxuICAgICAgICBbZGltZW5zaW9uXShzaXplIHx8ICdhdXRvJylcclxuICAgICAgICBbMF0ub2Zmc2V0V2lkdGhcclxuXHJcbiAgICAgIHRoaXMuJGVsZW1lbnRbc2l6ZSAhPT0gbnVsbCA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXSgnY29sbGFwc2UnKVxyXG5cclxuICAgICAgcmV0dXJuIHRoaXNcclxuICAgIH1cclxuXHJcbiAgLCB0cmFuc2l0aW9uOiBmdW5jdGlvbiAobWV0aG9kLCBzdGFydEV2ZW50LCBjb21wbGV0ZUV2ZW50KSB7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpc1xyXG4gICAgICAgICwgY29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIGlmIChzdGFydEV2ZW50LnR5cGUgPT0gJ3Nob3cnKSB0aGF0LnJlc2V0KClcclxuICAgICAgICAgICAgdGhhdC50cmFuc2l0aW9uaW5nID0gMFxyXG4gICAgICAgICAgICB0aGF0LiRlbGVtZW50LnRyaWdnZXIoY29tcGxldGVFdmVudClcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihzdGFydEV2ZW50KVxyXG5cclxuICAgICAgaWYgKHN0YXJ0RXZlbnQuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgICAgdGhpcy50cmFuc2l0aW9uaW5nID0gMVxyXG5cclxuICAgICAgdGhpcy4kZWxlbWVudFttZXRob2RdKCdpbicpXHJcblxyXG4gICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdjb2xsYXBzZScpID9cclxuICAgICAgICB0aGlzLiRlbGVtZW50Lm9uZSgkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsIGNvbXBsZXRlKSA6XHJcbiAgICAgICAgY29tcGxldGUoKVxyXG4gICAgfVxyXG5cclxuICAsIHRvZ2dsZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2luJykgPyAnaGlkZScgOiAnc2hvdyddKClcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAvKiBDT0xMQVBTSUJMRSBQTFVHSU4gREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQuZm4uY29sbGFwc2UgPSBmdW5jdGlvbiAob3B0aW9uKSB7XHJcbiAgICByZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKVxyXG4gICAgICAgICwgZGF0YSA9ICR0aGlzLmRhdGEoJ2NvbGxhcHNlJylcclxuICAgICAgICAsIG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9uID09ICdvYmplY3QnICYmIG9wdGlvblxyXG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ2NvbGxhcHNlJywgKGRhdGEgPSBuZXcgQ29sbGFwc2UodGhpcywgb3B0aW9ucykpKVxyXG4gICAgICBpZiAodHlwZW9mIG9wdGlvbiA9PSAnc3RyaW5nJykgZGF0YVtvcHRpb25dKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAkLmZuLmNvbGxhcHNlLmRlZmF1bHRzID0ge1xyXG4gICAgdG9nZ2xlOiB0cnVlXHJcbiAgfVxyXG5cclxuICAkLmZuLmNvbGxhcHNlLkNvbnN0cnVjdG9yID0gQ29sbGFwc2VcclxuXHJcblxyXG4gLyogQ09MTEFQU0lCTEUgREFUQS1BUElcclxuICAqID09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQoZnVuY3Rpb24gKCkge1xyXG4gICAgJCgnYm9keScpLm9uKCdjbGljay5jb2xsYXBzZS5kYXRhLWFwaScsICdbZGF0YS10b2dnbGU9Y29sbGFwc2VdJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgdmFyICR0aGlzID0gJCh0aGlzKSwgaHJlZlxyXG4gICAgICAgICwgdGFyZ2V0ID0gJHRoaXMuYXR0cignZGF0YS10YXJnZXQnKVxyXG4gICAgICAgICAgfHwgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICB8fCAoaHJlZiA9ICR0aGlzLmF0dHIoJ2hyZWYnKSkgJiYgaHJlZi5yZXBsYWNlKC8uKig/PSNbXlxcc10rJCkvLCAnJykgLy9zdHJpcCBmb3IgaWU3XHJcbiAgICAgICAgLCBvcHRpb24gPSAkKHRhcmdldCkuZGF0YSgnY29sbGFwc2UnKSA/ICd0b2dnbGUnIDogJHRoaXMuZGF0YSgpXHJcbiAgICAgICR0aGlzWyQodGFyZ2V0KS5oYXNDbGFzcygnaW4nKSA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXSgnY29sbGFwc2VkJylcclxuICAgICAgJCh0YXJnZXQpLmNvbGxhcHNlKG9wdGlvbilcclxuICAgIH0pXHJcbiAgfSlcclxuXHJcbn0od2luZG93LmpRdWVyeSk7LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIGJvb3RzdHJhcC1kcm9wZG93bi5qcyB2Mi4xLjFcclxuICogaHR0cDovL3R3aXR0ZXIuZ2l0aHViLmNvbS9ib290c3RyYXAvamF2YXNjcmlwdC5odG1sI2Ryb3Bkb3duc1xyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4hZnVuY3Rpb24gKCQpIHtcclxuXHJcbiAgXCJ1c2Ugc3RyaWN0XCI7IC8vIGpzaGludCA7XztcclxuXHJcblxyXG4gLyogRFJPUERPV04gQ0xBU1MgREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICB2YXIgdG9nZ2xlID0gJ1tkYXRhLXRvZ2dsZT1kcm9wZG93bl0nXHJcbiAgICAsIERyb3Bkb3duID0gZnVuY3Rpb24gKGVsZW1lbnQpIHtcclxuICAgICAgICB2YXIgJGVsID0gJChlbGVtZW50KS5vbignY2xpY2suZHJvcGRvd24uZGF0YS1hcGknLCB0aGlzLnRvZ2dsZSlcclxuICAgICAgICAkKCdodG1sJykub24oJ2NsaWNrLmRyb3Bkb3duLmRhdGEtYXBpJywgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgJGVsLnBhcmVudCgpLnJlbW92ZUNsYXNzKCdvcGVuJylcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcblxyXG4gIERyb3Bkb3duLnByb3RvdHlwZSA9IHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcjogRHJvcGRvd25cclxuXHJcbiAgLCB0b2dnbGU6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsICRwYXJlbnRcclxuICAgICAgICAsIGlzQWN0aXZlXHJcblxyXG4gICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHJldHVyblxyXG5cclxuICAgICAgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcylcclxuXHJcbiAgICAgIGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpXHJcblxyXG4gICAgICBjbGVhck1lbnVzKClcclxuXHJcbiAgICAgIGlmICghaXNBY3RpdmUpIHtcclxuICAgICAgICAkcGFyZW50LnRvZ2dsZUNsYXNzKCdvcGVuJylcclxuICAgICAgICAkdGhpcy5mb2N1cygpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiBmYWxzZVxyXG4gICAgfVxyXG5cclxuICAsIGtleWRvd246IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIHZhciAkdGhpc1xyXG4gICAgICAgICwgJGl0ZW1zXHJcbiAgICAgICAgLCAkYWN0aXZlXHJcbiAgICAgICAgLCAkcGFyZW50XHJcbiAgICAgICAgLCBpc0FjdGl2ZVxyXG4gICAgICAgICwgaW5kZXhcclxuXHJcbiAgICAgIGlmICghLygzOHw0MHwyNykvLnRlc3QoZS5rZXlDb2RlKSkgcmV0dXJuXHJcblxyXG4gICAgICAkdGhpcyA9ICQodGhpcylcclxuXHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxyXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXHJcblxyXG4gICAgICBpZiAoJHRoaXMuaXMoJy5kaXNhYmxlZCwgOmRpc2FibGVkJykpIHJldHVyblxyXG5cclxuICAgICAgJHBhcmVudCA9IGdldFBhcmVudCgkdGhpcylcclxuXHJcbiAgICAgIGlzQWN0aXZlID0gJHBhcmVudC5oYXNDbGFzcygnb3BlbicpXHJcblxyXG4gICAgICBpZiAoIWlzQWN0aXZlIHx8IChpc0FjdGl2ZSAmJiBlLmtleUNvZGUgPT0gMjcpKSByZXR1cm4gJHRoaXMuY2xpY2soKVxyXG5cclxuICAgICAgJGl0ZW1zID0gJCgnW3JvbGU9bWVudV0gbGk6bm90KC5kaXZpZGVyKSBhJywgJHBhcmVudClcclxuXHJcbiAgICAgIGlmICghJGl0ZW1zLmxlbmd0aCkgcmV0dXJuXHJcblxyXG4gICAgICBpbmRleCA9ICRpdGVtcy5pbmRleCgkaXRlbXMuZmlsdGVyKCc6Zm9jdXMnKSlcclxuXHJcbiAgICAgIGlmIChlLmtleUNvZGUgPT0gMzggJiYgaW5kZXggPiAwKSBpbmRleC0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVwXHJcbiAgICAgIGlmIChlLmtleUNvZGUgPT0gNDAgJiYgaW5kZXggPCAkaXRlbXMubGVuZ3RoIC0gMSkgaW5kZXgrKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRvd25cclxuICAgICAgaWYgKCF+aW5kZXgpIGluZGV4ID0gMFxyXG5cclxuICAgICAgJGl0ZW1zXHJcbiAgICAgICAgLmVxKGluZGV4KVxyXG4gICAgICAgIC5mb2N1cygpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZnVuY3Rpb24gY2xlYXJNZW51cygpIHtcclxuICAgIGdldFBhcmVudCgkKHRvZ2dsZSkpXHJcbiAgICAgIC5yZW1vdmVDbGFzcygnb3BlbicpXHJcbiAgfVxyXG5cclxuICBmdW5jdGlvbiBnZXRQYXJlbnQoJHRoaXMpIHtcclxuICAgIHZhciBzZWxlY3RvciA9ICR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JylcclxuICAgICAgLCAkcGFyZW50XHJcblxyXG4gICAgaWYgKCFzZWxlY3Rvcikge1xyXG4gICAgICBzZWxlY3RvciA9ICR0aGlzLmF0dHIoJ2hyZWYnKVxyXG4gICAgICBzZWxlY3RvciA9IHNlbGVjdG9yICYmIC8jLy50ZXN0KHNlbGVjdG9yKSAmJiBzZWxlY3Rvci5yZXBsYWNlKC8uKig/PSNbXlxcc10qJCkvLCAnJykgLy9zdHJpcCBmb3IgaWU3XHJcbiAgICB9XHJcblxyXG4gICAgJHBhcmVudCA9ICQoc2VsZWN0b3IpXHJcbiAgICAkcGFyZW50Lmxlbmd0aCB8fCAoJHBhcmVudCA9ICR0aGlzLnBhcmVudCgpKVxyXG5cclxuICAgIHJldHVybiAkcGFyZW50XHJcbiAgfVxyXG5cclxuXHJcbiAgLyogRFJPUERPV04gUExVR0lOIERFRklOSVRJT05cclxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkLmZuLmRyb3Bkb3duID0gZnVuY3Rpb24gKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsIGRhdGEgPSAkdGhpcy5kYXRhKCdkcm9wZG93bicpXHJcbiAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnZHJvcGRvd24nLCAoZGF0YSA9IG5ldyBEcm9wZG93bih0aGlzKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0uY2FsbCgkdGhpcylcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICAkLmZuLmRyb3Bkb3duLkNvbnN0cnVjdG9yID0gRHJvcGRvd25cclxuXHJcblxyXG4gIC8qIEFQUExZIFRPIFNUQU5EQVJEIERST1BET1dOIEVMRU1FTlRTXHJcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgJChmdW5jdGlvbiAoKSB7XHJcbiAgICAkKCdodG1sJylcclxuICAgICAgLm9uKCdjbGljay5kcm9wZG93bi5kYXRhLUFwaSB0b3VjaHN0YXJ0LmRyb3Bkb3duLmRhdGEtQXBpJywgY2xlYXJNZW51cylcclxuICAgICQoJ2JvZHknKVxyXG4gICAgICAub24oJ2NsaWNrLmRyb3Bkb3duIHRvdWNoc3RhcnQuZHJvcGRvd24uZGF0YS1hcGknLCAnLmRyb3Bkb3duIGZvcm0nLCBmdW5jdGlvbiAoZSkgeyBlLnN0b3BQcm9wYWdhdGlvbigpIH0pXHJcbiAgICAgIC5vbignY2xpY2suZHJvcGRvd24uZGF0YS1BcGkgdG91Y2hzdGFydC5kcm9wZG93bi5kYXRhLUFwaScgICwgdG9nZ2xlLCBEcm9wZG93bi5wcm90b3R5cGUudG9nZ2xlKVxyXG4gICAgICAub24oJ2tleWRvd24uZHJvcGRvd24uZGF0YS1BcGkgdG91Y2hzdGFydC5kcm9wZG93bi5kYXRhLUFwaScsIHRvZ2dsZSArICcsIFtyb2xlPW1lbnVdJyAsIERyb3Bkb3duLnByb3RvdHlwZS5rZXlkb3duKVxyXG4gIH0pXHJcblxyXG59KHdpbmRvdy5qUXVlcnkpOy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBib290c3RyYXAtbW9kYWwuanMgdjIuMS4xXHJcbiAqIGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5jb20vYm9vdHN0cmFwL2phdmFzY3JpcHQuaHRtbCNtb2RhbHNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIENvcHlyaWdodCAyMDEyIFR3aXR0ZXIsIEluYy5cclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuIWZ1bmN0aW9uICgkKSB7XHJcblxyXG4gIFwidXNlIHN0cmljdFwiOyAvLyBqc2hpbnQgO187XHJcblxyXG5cclxuIC8qIE1PREFMIENMQVNTIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgdmFyIE1vZGFsID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcclxuICAgIHRoaXMuJGVsZW1lbnQgPSAkKGVsZW1lbnQpXHJcbiAgICAgIC5kZWxlZ2F0ZSgnW2RhdGEtZGlzbWlzcz1cIm1vZGFsXCJdJywgJ2NsaWNrLmRpc21pc3MubW9kYWwnLCAkLnByb3h5KHRoaXMuaGlkZSwgdGhpcykpXHJcbiAgICB0aGlzLm9wdGlvbnMucmVtb3RlICYmIHRoaXMuJGVsZW1lbnQuZmluZCgnLm1vZGFsLWJvZHknKS5sb2FkKHRoaXMub3B0aW9ucy5yZW1vdGUpXHJcbiAgfVxyXG5cclxuICBNb2RhbC5wcm90b3R5cGUgPSB7XHJcblxyXG4gICAgICBjb25zdHJ1Y3RvcjogTW9kYWxcclxuXHJcbiAgICAsIHRvZ2dsZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzWyF0aGlzLmlzU2hvd24gPyAnc2hvdycgOiAnaGlkZSddKClcclxuICAgICAgfVxyXG5cclxuICAgICwgc2hvdzogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHZhciB0aGF0ID0gdGhpc1xyXG4gICAgICAgICAgLCBlID0gJC5FdmVudCgnc2hvdycpXHJcblxyXG4gICAgICAgIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihlKVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1Nob3duIHx8IGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgICAgICAkKCdib2R5JykuYWRkQ2xhc3MoJ21vZGFsLW9wZW4nKVxyXG5cclxuICAgICAgICB0aGlzLmlzU2hvd24gPSB0cnVlXHJcblxyXG4gICAgICAgIHRoaXMuZXNjYXBlKClcclxuXHJcbiAgICAgICAgdGhpcy5iYWNrZHJvcChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICB2YXIgdHJhbnNpdGlvbiA9ICQuc3VwcG9ydC50cmFuc2l0aW9uICYmIHRoYXQuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKVxyXG5cclxuICAgICAgICAgIGlmICghdGhhdC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhhdC4kZWxlbWVudC5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KSAvL2Rvbid0IG1vdmUgbW9kYWxzIGRvbSBwb3NpdGlvblxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoYXQuJGVsZW1lbnRcclxuICAgICAgICAgICAgLnNob3coKVxyXG5cclxuICAgICAgICAgIGlmICh0cmFuc2l0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoYXQuJGVsZW1lbnRbMF0ub2Zmc2V0V2lkdGggLy8gZm9yY2UgcmVmbG93XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhhdC4kZWxlbWVudFxyXG4gICAgICAgICAgICAuYWRkQ2xhc3MoJ2luJylcclxuICAgICAgICAgICAgLmF0dHIoJ2FyaWEtaGlkZGVuJywgZmFsc2UpXHJcbiAgICAgICAgICAgIC5mb2N1cygpXHJcblxyXG4gICAgICAgICAgdGhhdC5lbmZvcmNlRm9jdXMoKVxyXG5cclxuICAgICAgICAgIHRyYW5zaXRpb24gP1xyXG4gICAgICAgICAgICB0aGF0LiRlbGVtZW50Lm9uZSgkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsIGZ1bmN0aW9uICgpIHsgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdzaG93bicpIH0pIDpcclxuICAgICAgICAgICAgdGhhdC4kZWxlbWVudC50cmlnZ2VyKCdzaG93bicpXHJcblxyXG4gICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAsIGhpZGU6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgZSAmJiBlLnByZXZlbnREZWZhdWx0KClcclxuXHJcbiAgICAgICAgdmFyIHRoYXQgPSB0aGlzXHJcblxyXG4gICAgICAgIGUgPSAkLkV2ZW50KCdoaWRlJylcclxuXHJcbiAgICAgICAgdGhpcy4kZWxlbWVudC50cmlnZ2VyKGUpXHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc1Nob3duIHx8IGUuaXNEZWZhdWx0UHJldmVudGVkKCkpIHJldHVyblxyXG5cclxuICAgICAgICB0aGlzLmlzU2hvd24gPSBmYWxzZVxyXG5cclxuICAgICAgICAkKCdib2R5JykucmVtb3ZlQ2xhc3MoJ21vZGFsLW9wZW4nKVxyXG5cclxuICAgICAgICB0aGlzLmVzY2FwZSgpXHJcblxyXG4gICAgICAgICQoZG9jdW1lbnQpLm9mZignZm9jdXNpbi5tb2RhbCcpXHJcblxyXG4gICAgICAgIHRoaXMuJGVsZW1lbnRcclxuICAgICAgICAgIC5yZW1vdmVDbGFzcygnaW4nKVxyXG4gICAgICAgICAgLmF0dHIoJ2FyaWEtaGlkZGVuJywgdHJ1ZSlcclxuXHJcbiAgICAgICAgJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgdGhpcy4kZWxlbWVudC5oYXNDbGFzcygnZmFkZScpID9cclxuICAgICAgICAgIHRoaXMuaGlkZVdpdGhUcmFuc2l0aW9uKCkgOlxyXG4gICAgICAgICAgdGhpcy5oaWRlTW9kYWwoKVxyXG4gICAgICB9XHJcblxyXG4gICAgLCBlbmZvcmNlRm9jdXM6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgICAgICAkKGRvY3VtZW50KS5vbignZm9jdXNpbi5tb2RhbCcsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgICBpZiAodGhhdC4kZWxlbWVudFswXSAhPT0gZS50YXJnZXQgJiYgIXRoYXQuJGVsZW1lbnQuaGFzKGUudGFyZ2V0KS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhhdC4kZWxlbWVudC5mb2N1cygpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG5cclxuICAgICwgZXNjYXBlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICAgICAgaWYgKHRoaXMuaXNTaG93biAmJiB0aGlzLm9wdGlvbnMua2V5Ym9hcmQpIHtcclxuICAgICAgICAgIHRoaXMuJGVsZW1lbnQub24oJ2tleXVwLmRpc21pc3MubW9kYWwnLCBmdW5jdGlvbiAoIGUgKSB7XHJcbiAgICAgICAgICAgIGUud2hpY2ggPT0gMjcgJiYgdGhhdC5oaWRlKClcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgfSBlbHNlIGlmICghdGhpcy5pc1Nob3duKSB7XHJcbiAgICAgICAgICB0aGlzLiRlbGVtZW50Lm9mZigna2V5dXAuZGlzbWlzcy5tb2RhbCcpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgLCBoaWRlV2l0aFRyYW5zaXRpb246IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgICAgICAgICwgdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgICAgIHRoYXQuJGVsZW1lbnQub2ZmKCQuc3VwcG9ydC50cmFuc2l0aW9uLmVuZClcclxuICAgICAgICAgICAgICB0aGF0LmhpZGVNb2RhbCgpXHJcbiAgICAgICAgICAgIH0sIDUwMClcclxuXHJcbiAgICAgICAgdGhpcy4kZWxlbWVudC5vbmUoJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dClcclxuICAgICAgICAgIHRoYXQuaGlkZU1vZGFsKClcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcblxyXG4gICAgLCBoaWRlTW9kYWw6IGZ1bmN0aW9uICh0aGF0KSB7XHJcbiAgICAgICAgdGhpcy4kZWxlbWVudFxyXG4gICAgICAgICAgLmhpZGUoKVxyXG4gICAgICAgICAgLnRyaWdnZXIoJ2hpZGRlbicpXHJcblxyXG4gICAgICAgIHRoaXMuYmFja2Ryb3AoKVxyXG4gICAgICB9XHJcblxyXG4gICAgLCByZW1vdmVCYWNrZHJvcDogZnVuY3Rpb24gKCkge1xyXG4gICAgICAgIHRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpXHJcbiAgICAgICAgdGhpcy4kYmFja2Ryb3AgPSBudWxsXHJcbiAgICAgIH1cclxuXHJcbiAgICAsIGJhY2tkcm9wOiBmdW5jdGlvbiAoY2FsbGJhY2spIHtcclxuICAgICAgICB2YXIgdGhhdCA9IHRoaXNcclxuICAgICAgICAgICwgYW5pbWF0ZSA9IHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoJ2ZhZGUnKSA/ICdmYWRlJyA6ICcnXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzU2hvd24gJiYgdGhpcy5vcHRpb25zLmJhY2tkcm9wKSB7XHJcbiAgICAgICAgICB2YXIgZG9BbmltYXRlID0gJC5zdXBwb3J0LnRyYW5zaXRpb24gJiYgYW5pbWF0ZVxyXG5cclxuICAgICAgICAgIHRoaXMuJGJhY2tkcm9wID0gJCgnPGRpdiBjbGFzcz1cIm1vZGFsLWJhY2tkcm9wICcgKyBhbmltYXRlICsgJ1wiIC8+JylcclxuICAgICAgICAgICAgLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpXHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5iYWNrZHJvcCAhPSAnc3RhdGljJykge1xyXG4gICAgICAgICAgICB0aGlzLiRiYWNrZHJvcC5jbGljaygkLnByb3h5KHRoaXMuaGlkZSwgdGhpcykpXHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgaWYgKGRvQW5pbWF0ZSkgdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGggLy8gZm9yY2UgcmVmbG93XHJcblxyXG4gICAgICAgICAgdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgICAgICBkb0FuaW1hdGUgP1xyXG4gICAgICAgICAgICB0aGlzLiRiYWNrZHJvcC5vbmUoJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLCBjYWxsYmFjaykgOlxyXG4gICAgICAgICAgICBjYWxsYmFjaygpXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuaXNTaG93biAmJiB0aGlzLiRiYWNrZHJvcCkge1xyXG4gICAgICAgICAgdGhpcy4kYmFja2Ryb3AucmVtb3ZlQ2xhc3MoJ2luJylcclxuXHJcbiAgICAgICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCdmYWRlJyk/XHJcbiAgICAgICAgICAgIHRoaXMuJGJhY2tkcm9wLm9uZSgkLnN1cHBvcnQudHJhbnNpdGlvbi5lbmQsICQucHJveHkodGhpcy5yZW1vdmVCYWNrZHJvcCwgdGhpcykpIDpcclxuICAgICAgICAgICAgdGhpcy5yZW1vdmVCYWNrZHJvcCgpXHJcblxyXG4gICAgICAgIH0gZWxzZSBpZiAoY2FsbGJhY2spIHtcclxuICAgICAgICAgIGNhbGxiYWNrKClcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICB9XHJcblxyXG5cclxuIC8qIE1PREFMIFBMVUdJTiBERUZJTklUSU9OXHJcbiAgKiA9PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkLmZuLm1vZGFsID0gZnVuY3Rpb24gKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsIGRhdGEgPSAkdGhpcy5kYXRhKCdtb2RhbCcpXHJcbiAgICAgICAgLCBvcHRpb25zID0gJC5leHRlbmQoe30sICQuZm4ubW9kYWwuZGVmYXVsdHMsICR0aGlzLmRhdGEoKSwgdHlwZW9mIG9wdGlvbiA9PSAnb2JqZWN0JyAmJiBvcHRpb24pXHJcbiAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgnbW9kYWwnLCAoZGF0YSA9IG5ldyBNb2RhbCh0aGlzLCBvcHRpb25zKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oKVxyXG4gICAgICBlbHNlIGlmIChvcHRpb25zLnNob3cpIGRhdGEuc2hvdygpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgJC5mbi5tb2RhbC5kZWZhdWx0cyA9IHtcclxuICAgICAgYmFja2Ryb3A6IHRydWVcclxuICAgICwga2V5Ym9hcmQ6IHRydWVcclxuICAgICwgc2hvdzogdHJ1ZVxyXG4gIH1cclxuXHJcbiAgJC5mbi5tb2RhbC5Db25zdHJ1Y3RvciA9IE1vZGFsXHJcblxyXG5cclxuIC8qIE1PREFMIERBVEEtQVBJXHJcbiAgKiA9PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkKGZ1bmN0aW9uICgpIHtcclxuICAgICQoJ2JvZHknKS5vbignY2xpY2subW9kYWwuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwibW9kYWxcIl0nLCBmdW5jdGlvbiAoIGUgKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsIGhyZWYgPSAkdGhpcy5hdHRyKCdocmVmJylcclxuICAgICAgICAsICR0YXJnZXQgPSAkKCR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JykgfHwgKGhyZWYgJiYgaHJlZi5yZXBsYWNlKC8uKig/PSNbXlxcc10rJCkvLCAnJykpKSAvL3N0cmlwIGZvciBpZTdcclxuICAgICAgICAsIG9wdGlvbiA9ICR0YXJnZXQuZGF0YSgnbW9kYWwnKSA/ICd0b2dnbGUnIDogJC5leHRlbmQoeyByZW1vdGU6ICEvIy8udGVzdChocmVmKSAmJiBocmVmIH0sICR0YXJnZXQuZGF0YSgpLCAkdGhpcy5kYXRhKCkpXHJcblxyXG4gICAgICBlLnByZXZlbnREZWZhdWx0KClcclxuXHJcbiAgICAgICR0YXJnZXRcclxuICAgICAgICAubW9kYWwob3B0aW9uKVxyXG4gICAgICAgIC5vbmUoJ2hpZGUnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAkdGhpcy5mb2N1cygpXHJcbiAgICAgICAgfSlcclxuICAgIH0pXHJcbiAgfSlcclxuXHJcbn0od2luZG93LmpRdWVyeSk7LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogYm9vdHN0cmFwLXRvb2x0aXAuanMgdjIuMS4xXHJcbiAqIGh0dHA6Ly90d2l0dGVyLmdpdGh1Yi5jb20vYm9vdHN0cmFwL2phdmFzY3JpcHQuaHRtbCN0b29sdGlwc1xyXG4gKiBJbnNwaXJlZCBieSB0aGUgb3JpZ2luYWwgalF1ZXJ5LnRpcHN5IGJ5IEphc29uIEZyYW1lXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIENvcHlyaWdodCAyMDEyIFR3aXR0ZXIsIEluYy5cclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbiFmdW5jdGlvbiAoJCkge1xyXG5cclxuICBcInVzZSBzdHJpY3RcIjsgLy8ganNoaW50IDtfO1xyXG5cclxuXHJcbiAvKiBUT09MVElQIFBVQkxJQyBDTEFTUyBERUZJTklUSU9OXHJcbiAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIHZhciBUb29sdGlwID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMuaW5pdCgndG9vbHRpcCcsIGVsZW1lbnQsIG9wdGlvbnMpXHJcbiAgfVxyXG5cclxuICBUb29sdGlwLnByb3RvdHlwZSA9IHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcjogVG9vbHRpcFxyXG5cclxuICAsIGluaXQ6IGZ1bmN0aW9uICh0eXBlLCBlbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICAgIHZhciBldmVudEluXHJcbiAgICAgICAgLCBldmVudE91dFxyXG5cclxuICAgICAgdGhpcy50eXBlID0gdHlwZVxyXG4gICAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KVxyXG4gICAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmdldE9wdGlvbnMob3B0aW9ucylcclxuICAgICAgdGhpcy5lbmFibGVkID0gdHJ1ZVxyXG5cclxuICAgICAgaWYgKHRoaXMub3B0aW9ucy50cmlnZ2VyID09ICdjbGljaycpIHtcclxuICAgICAgICB0aGlzLiRlbGVtZW50Lm9uKCdjbGljay4nICsgdGhpcy50eXBlLCB0aGlzLm9wdGlvbnMuc2VsZWN0b3IsICQucHJveHkodGhpcy50b2dnbGUsIHRoaXMpKVxyXG4gICAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy50cmlnZ2VyICE9ICdtYW51YWwnKSB7XHJcbiAgICAgICAgZXZlbnRJbiA9IHRoaXMub3B0aW9ucy50cmlnZ2VyID09ICdob3ZlcicgPyAnbW91c2VlbnRlcicgOiAnZm9jdXMnXHJcbiAgICAgICAgZXZlbnRPdXQgPSB0aGlzLm9wdGlvbnMudHJpZ2dlciA9PSAnaG92ZXInID8gJ21vdXNlbGVhdmUnIDogJ2JsdXInXHJcbiAgICAgICAgdGhpcy4kZWxlbWVudC5vbihldmVudEluICsgJy4nICsgdGhpcy50eXBlLCB0aGlzLm9wdGlvbnMuc2VsZWN0b3IsICQucHJveHkodGhpcy5lbnRlciwgdGhpcykpXHJcbiAgICAgICAgdGhpcy4kZWxlbWVudC5vbihldmVudE91dCArICcuJyArIHRoaXMudHlwZSwgdGhpcy5vcHRpb25zLnNlbGVjdG9yLCAkLnByb3h5KHRoaXMubGVhdmUsIHRoaXMpKVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLm9wdGlvbnMuc2VsZWN0b3IgP1xyXG4gICAgICAgICh0aGlzLl9vcHRpb25zID0gJC5leHRlbmQoe30sIHRoaXMub3B0aW9ucywgeyB0cmlnZ2VyOiAnbWFudWFsJywgc2VsZWN0b3I6ICcnIH0pKSA6XHJcbiAgICAgICAgdGhpcy5maXhUaXRsZSgpXHJcbiAgICB9XHJcblxyXG4gICwgZ2V0T3B0aW9uczogZnVuY3Rpb24gKG9wdGlvbnMpIHtcclxuICAgICAgb3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuW3RoaXMudHlwZV0uZGVmYXVsdHMsIG9wdGlvbnMsIHRoaXMuJGVsZW1lbnQuZGF0YSgpKVxyXG5cclxuICAgICAgaWYgKG9wdGlvbnMuZGVsYXkgJiYgdHlwZW9mIG9wdGlvbnMuZGVsYXkgPT0gJ251bWJlcicpIHtcclxuICAgICAgICBvcHRpb25zLmRlbGF5ID0ge1xyXG4gICAgICAgICAgc2hvdzogb3B0aW9ucy5kZWxheVxyXG4gICAgICAgICwgaGlkZTogb3B0aW9ucy5kZWxheVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIG9wdGlvbnNcclxuICAgIH1cclxuXHJcbiAgLCBlbnRlcjogZnVuY3Rpb24gKGUpIHtcclxuICAgICAgdmFyIHNlbGYgPSAkKGUuY3VycmVudFRhcmdldClbdGhpcy50eXBlXSh0aGlzLl9vcHRpb25zKS5kYXRhKHRoaXMudHlwZSlcclxuXHJcbiAgICAgIGlmICghc2VsZi5vcHRpb25zLmRlbGF5IHx8ICFzZWxmLm9wdGlvbnMuZGVsYXkuc2hvdykgcmV0dXJuIHNlbGYuc2hvdygpXHJcblxyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lb3V0KVxyXG4gICAgICBzZWxmLmhvdmVyU3RhdGUgPSAnaW4nXHJcbiAgICAgIHRoaXMudGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgaWYgKHNlbGYuaG92ZXJTdGF0ZSA9PSAnaW4nKSBzZWxmLnNob3coKVxyXG4gICAgICB9LCBzZWxmLm9wdGlvbnMuZGVsYXkuc2hvdylcclxuICAgIH1cclxuXHJcbiAgLCBsZWF2ZTogZnVuY3Rpb24gKGUpIHtcclxuICAgICAgdmFyIHNlbGYgPSAkKGUuY3VycmVudFRhcmdldClbdGhpcy50eXBlXSh0aGlzLl9vcHRpb25zKS5kYXRhKHRoaXMudHlwZSlcclxuXHJcbiAgICAgIGlmICh0aGlzLnRpbWVvdXQpIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpXHJcbiAgICAgIGlmICghc2VsZi5vcHRpb25zLmRlbGF5IHx8ICFzZWxmLm9wdGlvbnMuZGVsYXkuaGlkZSkgcmV0dXJuIHNlbGYuaGlkZSgpXHJcblxyXG4gICAgICBzZWxmLmhvdmVyU3RhdGUgPSAnb3V0J1xyXG4gICAgICB0aGlzLnRpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgIGlmIChzZWxmLmhvdmVyU3RhdGUgPT0gJ291dCcpIHNlbGYuaGlkZSgpXHJcbiAgICAgIH0sIHNlbGYub3B0aW9ucy5kZWxheS5oaWRlKVxyXG4gICAgfVxyXG5cclxuICAsIHNob3c6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aXBcclxuICAgICAgICAsIGluc2lkZVxyXG4gICAgICAgICwgcG9zXHJcbiAgICAgICAgLCBhY3R1YWxXaWR0aFxyXG4gICAgICAgICwgYWN0dWFsSGVpZ2h0XHJcbiAgICAgICAgLCBwbGFjZW1lbnRcclxuICAgICAgICAsIHRwXHJcblxyXG4gICAgICBpZiAodGhpcy5oYXNDb250ZW50KCkgJiYgdGhpcy5lbmFibGVkKSB7XHJcbiAgICAgICAgJHRpcCA9IHRoaXMudGlwKClcclxuICAgICAgICB0aGlzLnNldENvbnRlbnQoKVxyXG5cclxuICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFuaW1hdGlvbikge1xyXG4gICAgICAgICAgJHRpcC5hZGRDbGFzcygnZmFkZScpXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBwbGFjZW1lbnQgPSB0eXBlb2YgdGhpcy5vcHRpb25zLnBsYWNlbWVudCA9PSAnZnVuY3Rpb24nID9cclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLCAkdGlwWzBdLCB0aGlzLiRlbGVtZW50WzBdKSA6XHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGxhY2VtZW50XHJcblxyXG4gICAgICAgIGluc2lkZSA9IC9pbi8udGVzdChwbGFjZW1lbnQpXHJcblxyXG4gICAgICAgICR0aXBcclxuICAgICAgICAgIC5yZW1vdmUoKVxyXG4gICAgICAgICAgLmNzcyh7IHRvcDogMCwgbGVmdDogMCwgZGlzcGxheTogJ2Jsb2NrJyB9KVxyXG4gICAgICAgICAgLmFwcGVuZFRvKGluc2lkZSA/IHRoaXMuJGVsZW1lbnQgOiBkb2N1bWVudC5ib2R5KVxyXG5cclxuICAgICAgICBwb3MgPSB0aGlzLmdldFBvc2l0aW9uKGluc2lkZSlcclxuXHJcbiAgICAgICAgYWN0dWFsV2lkdGggPSAkdGlwWzBdLm9mZnNldFdpZHRoXHJcbiAgICAgICAgYWN0dWFsSGVpZ2h0ID0gJHRpcFswXS5vZmZzZXRIZWlnaHRcclxuXHJcbiAgICAgICAgc3dpdGNoIChpbnNpZGUgPyBwbGFjZW1lbnQuc3BsaXQoJyAnKVsxXSA6IHBsYWNlbWVudCkge1xyXG4gICAgICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICAgICAgdHAgPSB7dG9wOiBwb3MudG9wICsgcG9zLmhlaWdodCwgbGVmdDogcG9zLmxlZnQgKyBwb3Mud2lkdGggLyAyIC0gYWN0dWFsV2lkdGggLyAyfVxyXG4gICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICAgICAgdHAgPSB7dG9wOiBwb3MudG9wIC0gYWN0dWFsSGVpZ2h0LCBsZWZ0OiBwb3MubGVmdCArIHBvcy53aWR0aCAvIDIgLSBhY3R1YWxXaWR0aCAvIDJ9XHJcbiAgICAgICAgICAgIGJyZWFrXHJcbiAgICAgICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICAgICAgdHAgPSB7dG9wOiBwb3MudG9wICsgcG9zLmhlaWdodCAvIDIgLSBhY3R1YWxIZWlnaHQgLyAyLCBsZWZ0OiBwb3MubGVmdCAtIGFjdHVhbFdpZHRofVxyXG4gICAgICAgICAgICBicmVha1xyXG4gICAgICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgICAgICB0cCA9IHt0b3A6IHBvcy50b3AgKyBwb3MuaGVpZ2h0IC8gMiAtIGFjdHVhbEhlaWdodCAvIDIsIGxlZnQ6IHBvcy5sZWZ0ICsgcG9zLndpZHRofVxyXG4gICAgICAgICAgICBicmVha1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJHRpcFxyXG4gICAgICAgICAgLmNzcyh0cClcclxuICAgICAgICAgIC5hZGRDbGFzcyhwbGFjZW1lbnQpXHJcbiAgICAgICAgICAuYWRkQ2xhc3MoJ2luJylcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAsIHNldENvbnRlbnQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aXAgPSB0aGlzLnRpcCgpXHJcbiAgICAgICAgLCB0aXRsZSA9IHRoaXMuZ2V0VGl0bGUoKVxyXG5cclxuICAgICAgJHRpcC5maW5kKCcudG9vbHRpcC1pbm5lcicpW3RoaXMub3B0aW9ucy5odG1sID8gJ2h0bWwnIDogJ3RleHQnXSh0aXRsZSlcclxuICAgICAgJHRpcC5yZW1vdmVDbGFzcygnZmFkZSBpbiB0b3AgYm90dG9tIGxlZnQgcmlnaHQnKVxyXG4gICAgfVxyXG5cclxuICAsIGhpZGU6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIHRoYXQgPSB0aGlzXHJcbiAgICAgICAgLCAkdGlwID0gdGhpcy50aXAoKVxyXG5cclxuICAgICAgJHRpcC5yZW1vdmVDbGFzcygnaW4nKVxyXG5cclxuICAgICAgZnVuY3Rpb24gcmVtb3ZlV2l0aEFuaW1hdGlvbigpIHtcclxuICAgICAgICB2YXIgdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICAgJHRpcC5vZmYoJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kKS5yZW1vdmUoKVxyXG4gICAgICAgIH0sIDUwMClcclxuXHJcbiAgICAgICAgJHRpcC5vbmUoJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dClcclxuICAgICAgICAgICR0aXAucmVtb3ZlKClcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcblxyXG4gICAgICAkLnN1cHBvcnQudHJhbnNpdGlvbiAmJiB0aGlzLiR0aXAuaGFzQ2xhc3MoJ2ZhZGUnKSA/XHJcbiAgICAgICAgcmVtb3ZlV2l0aEFuaW1hdGlvbigpIDpcclxuICAgICAgICAkdGlwLnJlbW92ZSgpXHJcblxyXG4gICAgICByZXR1cm4gdGhpc1xyXG4gICAgfVxyXG5cclxuICAsIGZpeFRpdGxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkZSA9IHRoaXMuJGVsZW1lbnRcclxuICAgICAgaWYgKCRlLmF0dHIoJ3RpdGxlJykgfHwgdHlwZW9mKCRlLmF0dHIoJ2RhdGEtb3JpZ2luYWwtdGl0bGUnKSkgIT0gJ3N0cmluZycpIHtcclxuICAgICAgICAkZS5hdHRyKCdkYXRhLW9yaWdpbmFsLXRpdGxlJywgJGUuYXR0cigndGl0bGUnKSB8fCAnJykucmVtb3ZlQXR0cigndGl0bGUnKVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICwgaGFzQ29udGVudDogZnVuY3Rpb24gKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRUaXRsZSgpXHJcbiAgICB9XHJcblxyXG4gICwgZ2V0UG9zaXRpb246IGZ1bmN0aW9uIChpbnNpZGUpIHtcclxuICAgICAgcmV0dXJuICQuZXh0ZW5kKHt9LCAoaW5zaWRlID8ge3RvcDogMCwgbGVmdDogMH0gOiB0aGlzLiRlbGVtZW50Lm9mZnNldCgpKSwge1xyXG4gICAgICAgIHdpZHRoOiB0aGlzLiRlbGVtZW50WzBdLm9mZnNldFdpZHRoXHJcbiAgICAgICwgaGVpZ2h0OiB0aGlzLiRlbGVtZW50WzBdLm9mZnNldEhlaWdodFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAsIGdldFRpdGxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciB0aXRsZVxyXG4gICAgICAgICwgJGUgPSB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLCBvID0gdGhpcy5vcHRpb25zXHJcblxyXG4gICAgICB0aXRsZSA9ICRlLmF0dHIoJ2RhdGEtb3JpZ2luYWwtdGl0bGUnKVxyXG4gICAgICAgIHx8ICh0eXBlb2Ygby50aXRsZSA9PSAnZnVuY3Rpb24nID8gby50aXRsZS5jYWxsKCRlWzBdKSA6ICBvLnRpdGxlKVxyXG5cclxuICAgICAgcmV0dXJuIHRpdGxlXHJcbiAgICB9XHJcblxyXG4gICwgdGlwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLiR0aXAgPSB0aGlzLiR0aXAgfHwgJCh0aGlzLm9wdGlvbnMudGVtcGxhdGUpXHJcbiAgICB9XHJcblxyXG4gICwgdmFsaWRhdGU6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgaWYgKCF0aGlzLiRlbGVtZW50WzBdLnBhcmVudE5vZGUpIHtcclxuICAgICAgICB0aGlzLmhpZGUoKVxyXG4gICAgICAgIHRoaXMuJGVsZW1lbnQgPSBudWxsXHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gbnVsbFxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICwgZW5hYmxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlZCA9IHRydWVcclxuICAgIH1cclxuXHJcbiAgLCBkaXNhYmxlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlZCA9IGZhbHNlXHJcbiAgICB9XHJcblxyXG4gICwgdG9nZ2xlRW5hYmxlZDogZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGlzLmVuYWJsZWQgPSAhdGhpcy5lbmFibGVkXHJcbiAgICB9XHJcblxyXG4gICwgdG9nZ2xlOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHRoaXNbdGhpcy50aXAoKS5oYXNDbGFzcygnaW4nKSA/ICdoaWRlJyA6ICdzaG93J10oKVxyXG4gICAgfVxyXG5cclxuICAsIGRlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdGhpcy5oaWRlKCkuJGVsZW1lbnQub2ZmKCcuJyArIHRoaXMudHlwZSkucmVtb3ZlRGF0YSh0aGlzLnR5cGUpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcblxyXG4gLyogVE9PTFRJUCBQTFVHSU4gREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkLmZuLnRvb2x0aXAgPSBmdW5jdGlvbiAoIG9wdGlvbiApIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcbiAgICAgICAgLCBkYXRhID0gJHRoaXMuZGF0YSgndG9vbHRpcCcpXHJcbiAgICAgICAgLCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbiA9PSAnb2JqZWN0JyAmJiBvcHRpb25cclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCd0b29sdGlwJywgKGRhdGEgPSBuZXcgVG9vbHRpcCh0aGlzLCBvcHRpb25zKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gICQuZm4udG9vbHRpcC5Db25zdHJ1Y3RvciA9IFRvb2x0aXBcclxuXHJcbiAgJC5mbi50b29sdGlwLmRlZmF1bHRzID0ge1xyXG4gICAgYW5pbWF0aW9uOiB0cnVlXHJcbiAgLCBwbGFjZW1lbnQ6ICd0b3AnXHJcbiAgLCBzZWxlY3RvcjogZmFsc2VcclxuICAsIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz1cInRvb2x0aXBcIj48ZGl2IGNsYXNzPVwidG9vbHRpcC1hcnJvd1wiPjwvZGl2PjxkaXYgY2xhc3M9XCJ0b29sdGlwLWlubmVyXCI+PC9kaXY+PC9kaXY+J1xyXG4gICwgdHJpZ2dlcjogJ2hvdmVyJ1xyXG4gICwgdGl0bGU6ICcnXHJcbiAgLCBkZWxheTogMFxyXG4gICwgaHRtbDogdHJ1ZVxyXG4gIH1cclxuXHJcbn0od2luZG93LmpRdWVyeSk7XHJcbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIGJvb3RzdHJhcC1wb3BvdmVyLmpzIHYyLjEuMVxyXG4gKiBodHRwOi8vdHdpdHRlci5naXRodWIuY29tL2Jvb3RzdHJhcC9qYXZhc2NyaXB0Lmh0bWwjcG9wb3ZlcnNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbiFmdW5jdGlvbiAoJCkge1xyXG5cclxuICBcInVzZSBzdHJpY3RcIjsgLy8ganNoaW50IDtfO1xyXG5cclxuXHJcbiAvKiBQT1BPVkVSIFBVQkxJQyBDTEFTUyBERUZJTklUSU9OXHJcbiAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIHZhciBQb3BvdmVyID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMuaW5pdCgncG9wb3ZlcicsIGVsZW1lbnQsIG9wdGlvbnMpXHJcbiAgfVxyXG5cclxuXHJcbiAgLyogTk9URTogUE9QT1ZFUiBFWFRFTkRTIEJPT1RTVFJBUC1UT09MVElQLmpzXHJcbiAgICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIFBvcG92ZXIucHJvdG90eXBlID0gJC5leHRlbmQoe30sICQuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5wcm90b3R5cGUsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcjogUG9wb3ZlclxyXG5cclxuICAsIHNldENvbnRlbnQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyICR0aXAgPSB0aGlzLnRpcCgpXHJcbiAgICAgICAgLCB0aXRsZSA9IHRoaXMuZ2V0VGl0bGUoKVxyXG4gICAgICAgICwgY29udGVudCA9IHRoaXMuZ2V0Q29udGVudCgpXHJcblxyXG4gICAgICAkdGlwLmZpbmQoJy5wb3BvdmVyLXRpdGxlJylbdGhpcy5vcHRpb25zLmh0bWwgPyAnaHRtbCcgOiAndGV4dCddKHRpdGxlKVxyXG4gICAgICAkdGlwLmZpbmQoJy5wb3BvdmVyLWNvbnRlbnQgPiAqJylbdGhpcy5vcHRpb25zLmh0bWwgPyAnaHRtbCcgOiAndGV4dCddKGNvbnRlbnQpXHJcblxyXG4gICAgICAkdGlwLnJlbW92ZUNsYXNzKCdmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbicpXHJcbiAgICB9XHJcblxyXG4gICwgaGFzQ29udGVudDogZnVuY3Rpb24gKCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRUaXRsZSgpIHx8IHRoaXMuZ2V0Q29udGVudCgpXHJcbiAgICB9XHJcblxyXG4gICwgZ2V0Q29udGVudDogZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgY29udGVudFxyXG4gICAgICAgICwgJGUgPSB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLCBvID0gdGhpcy5vcHRpb25zXHJcblxyXG4gICAgICBjb250ZW50ID0gJGUuYXR0cignZGF0YS1jb250ZW50JylcclxuICAgICAgICB8fCAodHlwZW9mIG8uY29udGVudCA9PSAnZnVuY3Rpb24nID8gby5jb250ZW50LmNhbGwoJGVbMF0pIDogIG8uY29udGVudClcclxuXHJcbiAgICAgIHJldHVybiBjb250ZW50XHJcbiAgICB9XHJcblxyXG4gICwgdGlwOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIGlmICghdGhpcy4kdGlwKSB7XHJcbiAgICAgICAgdGhpcy4kdGlwID0gJCh0aGlzLm9wdGlvbnMudGVtcGxhdGUpXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuJHRpcFxyXG4gICAgfVxyXG5cclxuICAsIGRlc3Ryb3k6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdGhpcy5oaWRlKCkuJGVsZW1lbnQub2ZmKCcuJyArIHRoaXMudHlwZSkucmVtb3ZlRGF0YSh0aGlzLnR5cGUpXHJcbiAgICB9XHJcblxyXG4gIH0pXHJcblxyXG5cclxuIC8qIFBPUE9WRVIgUExVR0lOIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQuZm4ucG9wb3ZlciA9IGZ1bmN0aW9uIChvcHRpb24pIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcbiAgICAgICAgLCBkYXRhID0gJHRoaXMuZGF0YSgncG9wb3ZlcicpXHJcbiAgICAgICAgLCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbiA9PSAnb2JqZWN0JyAmJiBvcHRpb25cclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCdwb3BvdmVyJywgKGRhdGEgPSBuZXcgUG9wb3Zlcih0aGlzLCBvcHRpb25zKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gICQuZm4ucG9wb3Zlci5Db25zdHJ1Y3RvciA9IFBvcG92ZXJcclxuXHJcbiAgJC5mbi5wb3BvdmVyLmRlZmF1bHRzID0gJC5leHRlbmQoe30gLCAkLmZuLnRvb2x0aXAuZGVmYXVsdHMsIHtcclxuICAgIHBsYWNlbWVudDogJ3JpZ2h0J1xyXG4gICwgdHJpZ2dlcjogJ2NsaWNrJ1xyXG4gICwgY29udGVudDogJydcclxuICAsIHRlbXBsYXRlOiAnPGRpdiBjbGFzcz1cInBvcG92ZXJcIj48ZGl2IGNsYXNzPVwiYXJyb3dcIj48L2Rpdj48ZGl2IGNsYXNzPVwicG9wb3Zlci1pbm5lclwiPjxoMyBjbGFzcz1cInBvcG92ZXItdGl0bGVcIj48L2gzPjxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnRcIj48cD48L3A+PC9kaXY+PC9kaXY+PC9kaXY+J1xyXG4gIH0pXHJcblxyXG59KHdpbmRvdy5qUXVlcnkpOy8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogYm9vdHN0cmFwLXNjcm9sbHNweS5qcyB2Mi4xLjFcclxuICogaHR0cDovL3R3aXR0ZXIuZ2l0aHViLmNvbS9ib290c3RyYXAvamF2YXNjcmlwdC5odG1sI3Njcm9sbHNweVxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIENvcHlyaWdodCAyMDEyIFR3aXR0ZXIsIEluYy5cclxuICpcclxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcclxuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxyXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcclxuICpcclxuICogaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXHJcbiAqXHJcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcclxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxyXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cclxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxyXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4hZnVuY3Rpb24gKCQpIHtcclxuXHJcbiAgXCJ1c2Ugc3RyaWN0XCI7IC8vIGpzaGludCA7XztcclxuXHJcblxyXG4gLyogU0NST0xMU1BZIENMQVNTIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIGZ1bmN0aW9uIFNjcm9sbFNweShlbGVtZW50LCBvcHRpb25zKSB7XHJcbiAgICB2YXIgcHJvY2VzcyA9ICQucHJveHkodGhpcy5wcm9jZXNzLCB0aGlzKVxyXG4gICAgICAsICRlbGVtZW50ID0gJChlbGVtZW50KS5pcygnYm9keScpID8gJCh3aW5kb3cpIDogJChlbGVtZW50KVxyXG4gICAgICAsIGhyZWZcclxuICAgIHRoaXMub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuLnNjcm9sbHNweS5kZWZhdWx0cywgb3B0aW9ucylcclxuICAgIHRoaXMuJHNjcm9sbEVsZW1lbnQgPSAkZWxlbWVudC5vbignc2Nyb2xsLnNjcm9sbC1zcHkuZGF0YS1hcGknLCBwcm9jZXNzKVxyXG4gICAgdGhpcy5zZWxlY3RvciA9ICh0aGlzLm9wdGlvbnMudGFyZ2V0XHJcbiAgICAgIHx8ICgoaHJlZiA9ICQoZWxlbWVudCkuYXR0cignaHJlZicpKSAmJiBocmVmLnJlcGxhY2UoLy4qKD89I1teXFxzXSskKS8sICcnKSkgLy9zdHJpcCBmb3IgaWU3XHJcbiAgICAgIHx8ICcnKSArICcgLm5hdiBsaSA+IGEnXHJcbiAgICB0aGlzLiRib2R5ID0gJCgnYm9keScpXHJcbiAgICB0aGlzLnJlZnJlc2goKVxyXG4gICAgdGhpcy5wcm9jZXNzKClcclxuICB9XHJcblxyXG4gIFNjcm9sbFNweS5wcm90b3R5cGUgPSB7XHJcblxyXG4gICAgICBjb25zdHJ1Y3RvcjogU2Nyb2xsU3B5XHJcblxyXG4gICAgLCByZWZyZXNoOiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgdmFyIHNlbGYgPSB0aGlzXHJcbiAgICAgICAgICAsICR0YXJnZXRzXHJcblxyXG4gICAgICAgIHRoaXMub2Zmc2V0cyA9ICQoW10pXHJcbiAgICAgICAgdGhpcy50YXJnZXRzID0gJChbXSlcclxuXHJcbiAgICAgICAgJHRhcmdldHMgPSB0aGlzLiRib2R5XHJcbiAgICAgICAgICAuZmluZCh0aGlzLnNlbGVjdG9yKVxyXG4gICAgICAgICAgLm1hcChmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHZhciAkZWwgPSAkKHRoaXMpXHJcbiAgICAgICAgICAgICAgLCBocmVmID0gJGVsLmRhdGEoJ3RhcmdldCcpIHx8ICRlbC5hdHRyKCdocmVmJylcclxuICAgICAgICAgICAgICAsICRocmVmID0gL14jXFx3Ly50ZXN0KGhyZWYpICYmICQoaHJlZilcclxuICAgICAgICAgICAgcmV0dXJuICggJGhyZWZcclxuICAgICAgICAgICAgICAmJiAkaHJlZi5sZW5ndGhcclxuICAgICAgICAgICAgICAmJiBbWyAkaHJlZi5wb3NpdGlvbigpLnRvcCwgaHJlZiBdXSApIHx8IG51bGxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuc29ydChmdW5jdGlvbiAoYSwgYikgeyByZXR1cm4gYVswXSAtIGJbMF0gfSlcclxuICAgICAgICAgIC5lYWNoKGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgc2VsZi5vZmZzZXRzLnB1c2godGhpc1swXSlcclxuICAgICAgICAgICAgc2VsZi50YXJnZXRzLnB1c2godGhpc1sxXSlcclxuICAgICAgICAgIH0pXHJcbiAgICAgIH1cclxuXHJcbiAgICAsIHByb2Nlc3M6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICB2YXIgc2Nyb2xsVG9wID0gdGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSArIHRoaXMub3B0aW9ucy5vZmZzZXRcclxuICAgICAgICAgICwgc2Nyb2xsSGVpZ2h0ID0gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHQgfHwgdGhpcy4kYm9keVswXS5zY3JvbGxIZWlnaHRcclxuICAgICAgICAgICwgbWF4U2Nyb2xsID0gc2Nyb2xsSGVpZ2h0IC0gdGhpcy4kc2Nyb2xsRWxlbWVudC5oZWlnaHQoKVxyXG4gICAgICAgICAgLCBvZmZzZXRzID0gdGhpcy5vZmZzZXRzXHJcbiAgICAgICAgICAsIHRhcmdldHMgPSB0aGlzLnRhcmdldHNcclxuICAgICAgICAgICwgYWN0aXZlVGFyZ2V0ID0gdGhpcy5hY3RpdmVUYXJnZXRcclxuICAgICAgICAgICwgaVxyXG5cclxuICAgICAgICBpZiAoc2Nyb2xsVG9wID49IG1heFNjcm9sbCkge1xyXG4gICAgICAgICAgcmV0dXJuIGFjdGl2ZVRhcmdldCAhPSAoaSA9IHRhcmdldHMubGFzdCgpWzBdKVxyXG4gICAgICAgICAgICAmJiB0aGlzLmFjdGl2YXRlICggaSApXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBmb3IgKGkgPSBvZmZzZXRzLmxlbmd0aDsgaS0tOykge1xyXG4gICAgICAgICAgYWN0aXZlVGFyZ2V0ICE9IHRhcmdldHNbaV1cclxuICAgICAgICAgICAgJiYgc2Nyb2xsVG9wID49IG9mZnNldHNbaV1cclxuICAgICAgICAgICAgJiYgKCFvZmZzZXRzW2kgKyAxXSB8fCBzY3JvbGxUb3AgPD0gb2Zmc2V0c1tpICsgMV0pXHJcbiAgICAgICAgICAgICYmIHRoaXMuYWN0aXZhdGUoIHRhcmdldHNbaV0gKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICwgYWN0aXZhdGU6IGZ1bmN0aW9uICh0YXJnZXQpIHtcclxuICAgICAgICB2YXIgYWN0aXZlXHJcbiAgICAgICAgICAsIHNlbGVjdG9yXHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZlVGFyZ2V0ID0gdGFyZ2V0XHJcblxyXG4gICAgICAgICQodGhpcy5zZWxlY3RvcilcclxuICAgICAgICAgIC5wYXJlbnQoJy5hY3RpdmUnKVxyXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKCdhY3RpdmUnKVxyXG5cclxuICAgICAgICBzZWxlY3RvciA9IHRoaXMuc2VsZWN0b3JcclxuICAgICAgICAgICsgJ1tkYXRhLXRhcmdldD1cIicgKyB0YXJnZXQgKyAnXCJdLCdcclxuICAgICAgICAgICsgdGhpcy5zZWxlY3RvciArICdbaHJlZj1cIicgKyB0YXJnZXQgKyAnXCJdJ1xyXG5cclxuICAgICAgICBhY3RpdmUgPSAkKHNlbGVjdG9yKVxyXG4gICAgICAgICAgLnBhcmVudCgnbGknKVxyXG4gICAgICAgICAgLmFkZENsYXNzKCdhY3RpdmUnKVxyXG5cclxuICAgICAgICBpZiAoYWN0aXZlLnBhcmVudCgnLmRyb3Bkb3duLW1lbnUnKS5sZW5ndGgpICB7XHJcbiAgICAgICAgICBhY3RpdmUgPSBhY3RpdmUuY2xvc2VzdCgnbGkuZHJvcGRvd24nKS5hZGRDbGFzcygnYWN0aXZlJylcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGFjdGl2ZS50cmlnZ2VyKCdhY3RpdmF0ZScpXHJcbiAgICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAvKiBTQ1JPTExTUFkgUExVR0lOIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkLmZuLnNjcm9sbHNweSA9IGZ1bmN0aW9uIChvcHRpb24pIHtcclxuICAgIHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHRoaXMgPSAkKHRoaXMpXHJcbiAgICAgICAgLCBkYXRhID0gJHRoaXMuZGF0YSgnc2Nyb2xsc3B5JylcclxuICAgICAgICAsIG9wdGlvbnMgPSB0eXBlb2Ygb3B0aW9uID09ICdvYmplY3QnICYmIG9wdGlvblxyXG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3Njcm9sbHNweScsIChkYXRhID0gbmV3IFNjcm9sbFNweSh0aGlzLCBvcHRpb25zKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gICQuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yID0gU2Nyb2xsU3B5XHJcblxyXG4gICQuZm4uc2Nyb2xsc3B5LmRlZmF1bHRzID0ge1xyXG4gICAgb2Zmc2V0OiAxMFxyXG4gIH1cclxuXHJcblxyXG4gLyogU0NST0xMU1BZIERBVEEtQVBJXHJcbiAgKiA9PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgJCh3aW5kb3cpLm9uKCdsb2FkJywgZnVuY3Rpb24gKCkge1xyXG4gICAgJCgnW2RhdGEtc3B5PVwic2Nyb2xsXCJdJykuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkc3B5ID0gJCh0aGlzKVxyXG4gICAgICAkc3B5LnNjcm9sbHNweSgkc3B5LmRhdGEoKSlcclxuICAgIH0pXHJcbiAgfSlcclxuXHJcbn0od2luZG93LmpRdWVyeSk7LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogYm9vdHN0cmFwLXRhYi5qcyB2Mi4xLjFcclxuICogaHR0cDovL3R3aXR0ZXIuZ2l0aHViLmNvbS9ib290c3RyYXAvamF2YXNjcmlwdC5odG1sI3RhYnNcclxuICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuXHJcbiFmdW5jdGlvbiAoJCkge1xyXG5cclxuICBcInVzZSBzdHJpY3RcIjsgLy8ganNoaW50IDtfO1xyXG5cclxuXHJcbiAvKiBUQUIgQ0xBU1MgREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgdmFyIFRhYiA9IGZ1bmN0aW9uIChlbGVtZW50KSB7XHJcbiAgICB0aGlzLmVsZW1lbnQgPSAkKGVsZW1lbnQpXHJcbiAgfVxyXG5cclxuICBUYWIucHJvdG90eXBlID0ge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yOiBUYWJcclxuXHJcbiAgLCBzaG93OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9IHRoaXMuZWxlbWVudFxyXG4gICAgICAgICwgJHVsID0gJHRoaXMuY2xvc2VzdCgndWw6bm90KC5kcm9wZG93bi1tZW51KScpXHJcbiAgICAgICAgLCBzZWxlY3RvciA9ICR0aGlzLmF0dHIoJ2RhdGEtdGFyZ2V0JylcclxuICAgICAgICAsIHByZXZpb3VzXHJcbiAgICAgICAgLCAkdGFyZ2V0XHJcbiAgICAgICAgLCBlXHJcblxyXG4gICAgICBpZiAoIXNlbGVjdG9yKSB7XHJcbiAgICAgICAgc2VsZWN0b3IgPSAkdGhpcy5hdHRyKCdocmVmJylcclxuICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9yICYmIHNlbGVjdG9yLnJlcGxhY2UoLy4qKD89I1teXFxzXSokKS8sICcnKSAvL3N0cmlwIGZvciBpZTdcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKCAkdGhpcy5wYXJlbnQoJ2xpJykuaGFzQ2xhc3MoJ2FjdGl2ZScpICkgcmV0dXJuXHJcblxyXG4gICAgICBwcmV2aW91cyA9ICR1bC5maW5kKCcuYWN0aXZlIGEnKS5sYXN0KClbMF1cclxuXHJcbiAgICAgIGUgPSAkLkV2ZW50KCdzaG93Jywge1xyXG4gICAgICAgIHJlbGF0ZWRUYXJnZXQ6IHByZXZpb3VzXHJcbiAgICAgIH0pXHJcblxyXG4gICAgICAkdGhpcy50cmlnZ2VyKGUpXHJcblxyXG4gICAgICBpZiAoZS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSkgcmV0dXJuXHJcblxyXG4gICAgICAkdGFyZ2V0ID0gJChzZWxlY3RvcilcclxuXHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoJHRoaXMucGFyZW50KCdsaScpLCAkdWwpXHJcbiAgICAgIHRoaXMuYWN0aXZhdGUoJHRhcmdldCwgJHRhcmdldC5wYXJlbnQoKSwgZnVuY3Rpb24gKCkge1xyXG4gICAgICAgICR0aGlzLnRyaWdnZXIoe1xyXG4gICAgICAgICAgdHlwZTogJ3Nob3duJ1xyXG4gICAgICAgICwgcmVsYXRlZFRhcmdldDogcHJldmlvdXNcclxuICAgICAgICB9KVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAsIGFjdGl2YXRlOiBmdW5jdGlvbiAoIGVsZW1lbnQsIGNvbnRhaW5lciwgY2FsbGJhY2spIHtcclxuICAgICAgdmFyICRhY3RpdmUgPSBjb250YWluZXIuZmluZCgnPiAuYWN0aXZlJylcclxuICAgICAgICAsIHRyYW5zaXRpb24gPSBjYWxsYmFja1xyXG4gICAgICAgICAgICAmJiAkLnN1cHBvcnQudHJhbnNpdGlvblxyXG4gICAgICAgICAgICAmJiAkYWN0aXZlLmhhc0NsYXNzKCdmYWRlJylcclxuXHJcbiAgICAgIGZ1bmN0aW9uIG5leHQoKSB7XHJcbiAgICAgICAgJGFjdGl2ZVxyXG4gICAgICAgICAgLnJlbW92ZUNsYXNzKCdhY3RpdmUnKVxyXG4gICAgICAgICAgLmZpbmQoJz4gLmRyb3Bkb3duLW1lbnUgPiAuYWN0aXZlJylcclxuICAgICAgICAgIC5yZW1vdmVDbGFzcygnYWN0aXZlJylcclxuXHJcbiAgICAgICAgZWxlbWVudC5hZGRDbGFzcygnYWN0aXZlJylcclxuXHJcbiAgICAgICAgaWYgKHRyYW5zaXRpb24pIHtcclxuICAgICAgICAgIGVsZW1lbnRbMF0ub2Zmc2V0V2lkdGggLy8gcmVmbG93IGZvciB0cmFuc2l0aW9uXHJcbiAgICAgICAgICBlbGVtZW50LmFkZENsYXNzKCdpbicpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQ2xhc3MoJ2ZhZGUnKVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCBlbGVtZW50LnBhcmVudCgnLmRyb3Bkb3duLW1lbnUnKSApIHtcclxuICAgICAgICAgIGVsZW1lbnQuY2xvc2VzdCgnbGkuZHJvcGRvd24nKS5hZGRDbGFzcygnYWN0aXZlJylcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKClcclxuICAgICAgfVxyXG5cclxuICAgICAgdHJhbnNpdGlvbiA/XHJcbiAgICAgICAgJGFjdGl2ZS5vbmUoJC5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLCBuZXh0KSA6XHJcbiAgICAgICAgbmV4dCgpXHJcblxyXG4gICAgICAkYWN0aXZlLnJlbW92ZUNsYXNzKCdpbicpXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAvKiBUQUIgUExVR0lOIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkLmZuLnRhYiA9IGZ1bmN0aW9uICggb3B0aW9uICkge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsIGRhdGEgPSAkdGhpcy5kYXRhKCd0YWInKVxyXG4gICAgICBpZiAoIWRhdGEpICR0aGlzLmRhdGEoJ3RhYicsIChkYXRhID0gbmV3IFRhYih0aGlzKSkpXHJcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09ICdzdHJpbmcnKSBkYXRhW29wdGlvbl0oKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gICQuZm4udGFiLkNvbnN0cnVjdG9yID0gVGFiXHJcblxyXG5cclxuIC8qIFRBQiBEQVRBLUFQSVxyXG4gICogPT09PT09PT09PT09ICovXHJcblxyXG4gICQoZnVuY3Rpb24gKCkge1xyXG4gICAgJCgnYm9keScpLm9uKCdjbGljay50YWIuZGF0YS1hcGknLCAnW2RhdGEtdG9nZ2xlPVwidGFiXCJdLCBbZGF0YS10b2dnbGU9XCJwaWxsXCJdJywgZnVuY3Rpb24gKGUpIHtcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICQodGhpcykudGFiKCdzaG93JylcclxuICAgIH0pXHJcbiAgfSlcclxuXHJcbn0od2luZG93LmpRdWVyeSk7LyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG4gKiBib290c3RyYXAtdHlwZWFoZWFkLmpzIHYyLjEuMVxyXG4gKiBodHRwOi8vdHdpdHRlci5naXRodWIuY29tL2Jvb3RzdHJhcC9qYXZhc2NyaXB0Lmh0bWwjdHlwZWFoZWFkXHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcblxyXG4hZnVuY3Rpb24oJCl7XHJcblxyXG4gIFwidXNlIHN0cmljdFwiOyAvLyBqc2hpbnQgO187XHJcblxyXG5cclxuIC8qIFRZUEVBSEVBRCBQVUJMSUMgQ0xBU1MgREVGSU5JVElPTlxyXG4gICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gIHZhciBUeXBlYWhlYWQgPSBmdW5jdGlvbiAoZWxlbWVudCwgb3B0aW9ucykge1xyXG4gICAgdGhpcy4kZWxlbWVudCA9ICQoZWxlbWVudClcclxuICAgIHRoaXMub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuLnR5cGVhaGVhZC5kZWZhdWx0cywgb3B0aW9ucylcclxuICAgIHRoaXMubWF0Y2hlciA9IHRoaXMub3B0aW9ucy5tYXRjaGVyIHx8IHRoaXMubWF0Y2hlclxyXG4gICAgdGhpcy5zb3J0ZXIgPSB0aGlzLm9wdGlvbnMuc29ydGVyIHx8IHRoaXMuc29ydGVyXHJcbiAgICB0aGlzLmhpZ2hsaWdodGVyID0gdGhpcy5vcHRpb25zLmhpZ2hsaWdodGVyIHx8IHRoaXMuaGlnaGxpZ2h0ZXJcclxuICAgIHRoaXMudXBkYXRlciA9IHRoaXMub3B0aW9ucy51cGRhdGVyIHx8IHRoaXMudXBkYXRlclxyXG4gICAgdGhpcy4kbWVudSA9ICQodGhpcy5vcHRpb25zLm1lbnUpLmFwcGVuZFRvKCdib2R5JylcclxuICAgIHRoaXMuc291cmNlID0gdGhpcy5vcHRpb25zLnNvdXJjZVxyXG4gICAgdGhpcy5zaG93biA9IGZhbHNlXHJcbiAgICB0aGlzLmxpc3RlbigpXHJcbiAgfVxyXG5cclxuICBUeXBlYWhlYWQucHJvdG90eXBlID0ge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yOiBUeXBlYWhlYWRcclxuXHJcbiAgLCBzZWxlY3Q6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgdmFyIHZhbCA9IHRoaXMuJG1lbnUuZmluZCgnLmFjdGl2ZScpLmF0dHIoJ2RhdGEtdmFsdWUnKVxyXG4gICAgICB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLnZhbCh0aGlzLnVwZGF0ZXIodmFsKSlcclxuICAgICAgICAuY2hhbmdlKClcclxuICAgICAgcmV0dXJuIHRoaXMuaGlkZSgpXHJcbiAgICB9XHJcblxyXG4gICwgdXBkYXRlcjogZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgcmV0dXJuIGl0ZW1cclxuICAgIH1cclxuXHJcbiAgLCBzaG93OiBmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciBwb3MgPSAkLmV4dGVuZCh7fSwgdGhpcy4kZWxlbWVudC5vZmZzZXQoKSwge1xyXG4gICAgICAgIGhlaWdodDogdGhpcy4kZWxlbWVudFswXS5vZmZzZXRIZWlnaHRcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHRoaXMuJG1lbnUuY3NzKHtcclxuICAgICAgICB0b3A6IHBvcy50b3AgKyBwb3MuaGVpZ2h0XHJcbiAgICAgICwgbGVmdDogcG9zLmxlZnRcclxuICAgICAgfSlcclxuXHJcbiAgICAgIHRoaXMuJG1lbnUuc2hvdygpXHJcbiAgICAgIHRoaXMuc2hvd24gPSB0cnVlXHJcbiAgICAgIHJldHVybiB0aGlzXHJcbiAgICB9XHJcblxyXG4gICwgaGlkZTogZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGlzLiRtZW51LmhpZGUoKVxyXG4gICAgICB0aGlzLnNob3duID0gZmFsc2VcclxuICAgICAgcmV0dXJuIHRoaXNcclxuICAgIH1cclxuXHJcbiAgLCBsb29rdXA6IGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgICB2YXIgaXRlbXNcclxuXHJcbiAgICAgIHRoaXMucXVlcnkgPSB0aGlzLiRlbGVtZW50LnZhbCgpXHJcblxyXG4gICAgICBpZiAoIXRoaXMucXVlcnkgfHwgdGhpcy5xdWVyeS5sZW5ndGggPCB0aGlzLm9wdGlvbnMubWluTGVuZ3RoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvd24gPyB0aGlzLmhpZGUoKSA6IHRoaXNcclxuICAgICAgfVxyXG5cclxuICAgICAgaXRlbXMgPSAkLmlzRnVuY3Rpb24odGhpcy5zb3VyY2UpID8gdGhpcy5zb3VyY2UodGhpcy5xdWVyeSwgJC5wcm94eSh0aGlzLnByb2Nlc3MsIHRoaXMpKSA6IHRoaXMuc291cmNlXHJcblxyXG4gICAgICByZXR1cm4gaXRlbXMgPyB0aGlzLnByb2Nlc3MoaXRlbXMpIDogdGhpc1xyXG4gICAgfVxyXG5cclxuICAsIHByb2Nlc3M6IGZ1bmN0aW9uIChpdGVtcykge1xyXG4gICAgICB2YXIgdGhhdCA9IHRoaXNcclxuXHJcbiAgICAgIGl0ZW1zID0gJC5ncmVwKGl0ZW1zLCBmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICAgIHJldHVybiB0aGF0Lm1hdGNoZXIoaXRlbSlcclxuICAgICAgfSlcclxuXHJcbiAgICAgIGl0ZW1zID0gdGhpcy5zb3J0ZXIoaXRlbXMpXHJcblxyXG4gICAgICBpZiAoIWl0ZW1zLmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNob3duID8gdGhpcy5oaWRlKCkgOiB0aGlzXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLnJlbmRlcihpdGVtcy5zbGljZSgwLCB0aGlzLm9wdGlvbnMuaXRlbXMpKS5zaG93KClcclxuICAgIH1cclxuXHJcbiAgLCBtYXRjaGVyOiBmdW5jdGlvbiAoaXRlbSkge1xyXG4gICAgICByZXR1cm4gfml0ZW0udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMucXVlcnkudG9Mb3dlckNhc2UoKSlcclxuICAgIH1cclxuXHJcbiAgLCBzb3J0ZXI6IGZ1bmN0aW9uIChpdGVtcykge1xyXG4gICAgICB2YXIgYmVnaW5zd2l0aCA9IFtdXHJcbiAgICAgICAgLCBjYXNlU2Vuc2l0aXZlID0gW11cclxuICAgICAgICAsIGNhc2VJbnNlbnNpdGl2ZSA9IFtdXHJcbiAgICAgICAgLCBpdGVtXHJcblxyXG4gICAgICB3aGlsZSAoaXRlbSA9IGl0ZW1zLnNoaWZ0KCkpIHtcclxuICAgICAgICBpZiAoIWl0ZW0udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMucXVlcnkudG9Mb3dlckNhc2UoKSkpIGJlZ2luc3dpdGgucHVzaChpdGVtKVxyXG4gICAgICAgIGVsc2UgaWYgKH5pdGVtLmluZGV4T2YodGhpcy5xdWVyeSkpIGNhc2VTZW5zaXRpdmUucHVzaChpdGVtKVxyXG4gICAgICAgIGVsc2UgY2FzZUluc2Vuc2l0aXZlLnB1c2goaXRlbSlcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIGJlZ2luc3dpdGguY29uY2F0KGNhc2VTZW5zaXRpdmUsIGNhc2VJbnNlbnNpdGl2ZSlcclxuICAgIH1cclxuXHJcbiAgLCBoaWdobGlnaHRlcjogZnVuY3Rpb24gKGl0ZW0pIHtcclxuICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5xdWVyeS5yZXBsYWNlKC9bXFwtXFxbXFxde30oKSorPy4sXFxcXFxcXiR8I1xcc10vZywgJ1xcXFwkJicpXHJcbiAgICAgIHJldHVybiBpdGVtLnJlcGxhY2UobmV3IFJlZ0V4cCgnKCcgKyBxdWVyeSArICcpJywgJ2lnJyksIGZ1bmN0aW9uICgkMSwgbWF0Y2gpIHtcclxuICAgICAgICByZXR1cm4gJzxzdHJvbmc+JyArIG1hdGNoICsgJzwvc3Ryb25nPidcclxuICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgLCByZW5kZXI6IGZ1bmN0aW9uIChpdGVtcykge1xyXG4gICAgICB2YXIgdGhhdCA9IHRoaXNcclxuXHJcbiAgICAgIGl0ZW1zID0gJChpdGVtcykubWFwKGZ1bmN0aW9uIChpLCBpdGVtKSB7XHJcbiAgICAgICAgaSA9ICQodGhhdC5vcHRpb25zLml0ZW0pLmF0dHIoJ2RhdGEtdmFsdWUnLCBpdGVtKVxyXG4gICAgICAgIGkuZmluZCgnYScpLmh0bWwodGhhdC5oaWdobGlnaHRlcihpdGVtKSlcclxuICAgICAgICByZXR1cm4gaVswXVxyXG4gICAgICB9KVxyXG5cclxuICAgICAgaXRlbXMuZmlyc3QoKS5hZGRDbGFzcygnYWN0aXZlJylcclxuICAgICAgdGhpcy4kbWVudS5odG1sKGl0ZW1zKVxyXG4gICAgICByZXR1cm4gdGhpc1xyXG4gICAgfVxyXG5cclxuICAsIG5leHQ6IGZ1bmN0aW9uIChldmVudCkge1xyXG4gICAgICB2YXIgYWN0aXZlID0gdGhpcy4kbWVudS5maW5kKCcuYWN0aXZlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpXHJcbiAgICAgICAgLCBuZXh0ID0gYWN0aXZlLm5leHQoKVxyXG5cclxuICAgICAgaWYgKCFuZXh0Lmxlbmd0aCkge1xyXG4gICAgICAgIG5leHQgPSAkKHRoaXMuJG1lbnUuZmluZCgnbGknKVswXSlcclxuICAgICAgfVxyXG5cclxuICAgICAgbmV4dC5hZGRDbGFzcygnYWN0aXZlJylcclxuICAgIH1cclxuXHJcbiAgLCBwcmV2OiBmdW5jdGlvbiAoZXZlbnQpIHtcclxuICAgICAgdmFyIGFjdGl2ZSA9IHRoaXMuJG1lbnUuZmluZCgnLmFjdGl2ZScpLnJlbW92ZUNsYXNzKCdhY3RpdmUnKVxyXG4gICAgICAgICwgcHJldiA9IGFjdGl2ZS5wcmV2KClcclxuXHJcbiAgICAgIGlmICghcHJldi5sZW5ndGgpIHtcclxuICAgICAgICBwcmV2ID0gdGhpcy4kbWVudS5maW5kKCdsaScpLmxhc3QoKVxyXG4gICAgICB9XHJcblxyXG4gICAgICBwcmV2LmFkZENsYXNzKCdhY3RpdmUnKVxyXG4gICAgfVxyXG5cclxuICAsIGxpc3RlbjogZnVuY3Rpb24gKCkge1xyXG4gICAgICB0aGlzLiRlbGVtZW50XHJcbiAgICAgICAgLm9uKCdibHVyJywgICAgICQucHJveHkodGhpcy5ibHVyLCB0aGlzKSlcclxuICAgICAgICAub24oJ2tleXByZXNzJywgJC5wcm94eSh0aGlzLmtleXByZXNzLCB0aGlzKSlcclxuICAgICAgICAub24oJ2tleXVwJywgICAgJC5wcm94eSh0aGlzLmtleXVwLCB0aGlzKSlcclxuXHJcbiAgICAgIGlmICgkLmJyb3dzZXIuY2hyb21lIHx8ICQuYnJvd3Nlci53ZWJraXQgfHwgJC5icm93c2VyLm1zaWUpIHtcclxuICAgICAgICB0aGlzLiRlbGVtZW50Lm9uKCdrZXlkb3duJywgJC5wcm94eSh0aGlzLmtleWRvd24sIHRoaXMpKVxyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLiRtZW51XHJcbiAgICAgICAgLm9uKCdjbGljaycsICQucHJveHkodGhpcy5jbGljaywgdGhpcykpXHJcbiAgICAgICAgLm9uKCdtb3VzZWVudGVyJywgJ2xpJywgJC5wcm94eSh0aGlzLm1vdXNlZW50ZXIsIHRoaXMpKVxyXG4gICAgfVxyXG5cclxuICAsIG1vdmU6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIGlmICghdGhpcy5zaG93bikgcmV0dXJuXHJcblxyXG4gICAgICBzd2l0Y2goZS5rZXlDb2RlKSB7XHJcbiAgICAgICAgY2FzZSA5OiAvLyB0YWJcclxuICAgICAgICBjYXNlIDEzOiAvLyBlbnRlclxyXG4gICAgICAgIGNhc2UgMjc6IC8vIGVzY2FwZVxyXG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICBicmVha1xyXG5cclxuICAgICAgICBjYXNlIDM4OiAvLyB1cCBhcnJvd1xyXG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICB0aGlzLnByZXYoKVxyXG4gICAgICAgICAgYnJlYWtcclxuXHJcbiAgICAgICAgY2FzZSA0MDogLy8gZG93biBhcnJvd1xyXG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICAgICB0aGlzLm5leHQoKVxyXG4gICAgICAgICAgYnJlYWtcclxuICAgICAgfVxyXG5cclxuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxyXG4gICAgfVxyXG5cclxuICAsIGtleWRvd246IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIHRoaXMuc3VwcHJlc3NLZXlQcmVzc1JlcGVhdCA9ICF+JC5pbkFycmF5KGUua2V5Q29kZSwgWzQwLDM4LDksMTMsMjddKVxyXG4gICAgICB0aGlzLm1vdmUoZSlcclxuICAgIH1cclxuXHJcbiAgLCBrZXlwcmVzczogZnVuY3Rpb24gKGUpIHtcclxuICAgICAgaWYgKHRoaXMuc3VwcHJlc3NLZXlQcmVzc1JlcGVhdCkgcmV0dXJuXHJcbiAgICAgIHRoaXMubW92ZShlKVxyXG4gICAgfVxyXG5cclxuICAsIGtleXVwOiBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBzd2l0Y2goZS5rZXlDb2RlKSB7XHJcbiAgICAgICAgY2FzZSA0MDogLy8gZG93biBhcnJvd1xyXG4gICAgICAgIGNhc2UgMzg6IC8vIHVwIGFycm93XHJcbiAgICAgICAgICBicmVha1xyXG5cclxuICAgICAgICBjYXNlIDk6IC8vIHRhYlxyXG4gICAgICAgIGNhc2UgMTM6IC8vIGVudGVyXHJcbiAgICAgICAgICBpZiAoIXRoaXMuc2hvd24pIHJldHVyblxyXG4gICAgICAgICAgdGhpcy5zZWxlY3QoKVxyXG4gICAgICAgICAgYnJlYWtcclxuXHJcbiAgICAgICAgY2FzZSAyNzogLy8gZXNjYXBlXHJcbiAgICAgICAgICBpZiAoIXRoaXMuc2hvd24pIHJldHVyblxyXG4gICAgICAgICAgdGhpcy5oaWRlKClcclxuICAgICAgICAgIGJyZWFrXHJcblxyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICB0aGlzLmxvb2t1cCgpXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgfVxyXG5cclxuICAsIGJsdXI6IGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIHZhciB0aGF0ID0gdGhpc1xyXG4gICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsgdGhhdC5oaWRlKCkgfSwgMTUwKVxyXG4gICAgfVxyXG5cclxuICAsIGNsaWNrOiBmdW5jdGlvbiAoZSkge1xyXG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXHJcbiAgICAgIGUucHJldmVudERlZmF1bHQoKVxyXG4gICAgICB0aGlzLnNlbGVjdCgpXHJcbiAgICB9XHJcblxyXG4gICwgbW91c2VlbnRlcjogZnVuY3Rpb24gKGUpIHtcclxuICAgICAgdGhpcy4kbWVudS5maW5kKCcuYWN0aXZlJykucmVtb3ZlQ2xhc3MoJ2FjdGl2ZScpXHJcbiAgICAgICQoZS5jdXJyZW50VGFyZ2V0KS5hZGRDbGFzcygnYWN0aXZlJylcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgLyogVFlQRUFIRUFEIFBMVUdJTiBERUZJTklUSU9OXHJcbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQuZm4udHlwZWFoZWFkID0gZnVuY3Rpb24gKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsIGRhdGEgPSAkdGhpcy5kYXRhKCd0eXBlYWhlYWQnKVxyXG4gICAgICAgICwgb3B0aW9ucyA9IHR5cGVvZiBvcHRpb24gPT0gJ29iamVjdCcgJiYgb3B0aW9uXHJcbiAgICAgIGlmICghZGF0YSkgJHRoaXMuZGF0YSgndHlwZWFoZWFkJywgKGRhdGEgPSBuZXcgVHlwZWFoZWFkKHRoaXMsIG9wdGlvbnMpKSlcclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT0gJ3N0cmluZycpIGRhdGFbb3B0aW9uXSgpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgJC5mbi50eXBlYWhlYWQuZGVmYXVsdHMgPSB7XHJcbiAgICBzb3VyY2U6IFtdXHJcbiAgLCBpdGVtczogOFxyXG4gICwgbWVudTogJzx1bCBjbGFzcz1cInR5cGVhaGVhZCBkcm9wZG93bi1tZW51XCI+PC91bD4nXHJcbiAgLCBpdGVtOiAnPGxpPjxhIGhyZWY9XCIjXCI+PC9hPjwvbGk+J1xyXG4gICwgbWluTGVuZ3RoOiAxXHJcbiAgfVxyXG5cclxuICAkLmZuLnR5cGVhaGVhZC5Db25zdHJ1Y3RvciA9IFR5cGVhaGVhZFxyXG5cclxuXHJcbiAvKiAgIFRZUEVBSEVBRCBEQVRBLUFQSVxyXG4gICogPT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4gICQoZnVuY3Rpb24gKCkge1xyXG4gICAgJCgnYm9keScpLm9uKCdmb2N1cy50eXBlYWhlYWQuZGF0YS1hcGknLCAnW2RhdGEtcHJvdmlkZT1cInR5cGVhaGVhZFwiXScsIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgaWYgKCR0aGlzLmRhdGEoJ3R5cGVhaGVhZCcpKSByZXR1cm5cclxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXHJcbiAgICAgICR0aGlzLnR5cGVhaGVhZCgkdGhpcy5kYXRhKCkpXHJcbiAgICB9KVxyXG4gIH0pXHJcblxyXG59KHdpbmRvdy5qUXVlcnkpO1xyXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcbiAqIGJvb3RzdHJhcC1hZmZpeC5qcyB2Mi4xLjFcclxuICogaHR0cDovL3R3aXR0ZXIuZ2l0aHViLmNvbS9ib290c3RyYXAvamF2YXNjcmlwdC5odG1sI2FmZml4XHJcbiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuICogQ29weXJpZ2h0IDIwMTIgVHdpdHRlciwgSW5jLlxyXG4gKlxyXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xyXG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXHJcbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxyXG4gKlxyXG4gKiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcclxuICpcclxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxyXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXHJcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxyXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXHJcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxyXG4gKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG5cclxuIWZ1bmN0aW9uICgkKSB7XHJcblxyXG4gIFwidXNlIHN0cmljdFwiOyAvLyBqc2hpbnQgO187XHJcblxyXG5cclxuIC8qIEFGRklYIENMQVNTIERFRklOSVRJT05cclxuICAqID09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbiAgdmFyIEFmZml4ID0gZnVuY3Rpb24gKGVsZW1lbnQsIG9wdGlvbnMpIHtcclxuICAgIHRoaXMub3B0aW9ucyA9ICQuZXh0ZW5kKHt9LCAkLmZuLmFmZml4LmRlZmF1bHRzLCBvcHRpb25zKVxyXG4gICAgdGhpcy4kd2luZG93ID0gJCh3aW5kb3cpLm9uKCdzY3JvbGwuYWZmaXguZGF0YS1hcGknLCAkLnByb3h5KHRoaXMuY2hlY2tQb3NpdGlvbiwgdGhpcykpXHJcbiAgICB0aGlzLiRlbGVtZW50ID0gJChlbGVtZW50KVxyXG4gICAgdGhpcy5jaGVja1Bvc2l0aW9uKClcclxuICB9XHJcblxyXG4gIEFmZml4LnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uID0gZnVuY3Rpb24gKCkge1xyXG4gICAgaWYgKCF0aGlzLiRlbGVtZW50LmlzKCc6dmlzaWJsZScpKSByZXR1cm5cclxuXHJcbiAgICB2YXIgc2Nyb2xsSGVpZ2h0ID0gJChkb2N1bWVudCkuaGVpZ2h0KClcclxuICAgICAgLCBzY3JvbGxUb3AgPSB0aGlzLiR3aW5kb3cuc2Nyb2xsVG9wKClcclxuICAgICAgLCBwb3NpdGlvbiA9IHRoaXMuJGVsZW1lbnQub2Zmc2V0KClcclxuICAgICAgLCBvZmZzZXQgPSB0aGlzLm9wdGlvbnMub2Zmc2V0XHJcbiAgICAgICwgb2Zmc2V0Qm90dG9tID0gb2Zmc2V0LmJvdHRvbVxyXG4gICAgICAsIG9mZnNldFRvcCA9IG9mZnNldC50b3BcclxuICAgICAgLCByZXNldCA9ICdhZmZpeCBhZmZpeC10b3AgYWZmaXgtYm90dG9tJ1xyXG4gICAgICAsIGFmZml4XHJcblxyXG4gICAgaWYgKHR5cGVvZiBvZmZzZXQgIT0gJ29iamVjdCcpIG9mZnNldEJvdHRvbSA9IG9mZnNldFRvcCA9IG9mZnNldFxyXG4gICAgaWYgKHR5cGVvZiBvZmZzZXRUb3AgPT0gJ2Z1bmN0aW9uJykgb2Zmc2V0VG9wID0gb2Zmc2V0LnRvcCgpXHJcbiAgICBpZiAodHlwZW9mIG9mZnNldEJvdHRvbSA9PSAnZnVuY3Rpb24nKSBvZmZzZXRCb3R0b20gPSBvZmZzZXQuYm90dG9tKClcclxuXHJcbiAgICBhZmZpeCA9IHRoaXMudW5waW4gIT0gbnVsbCAmJiAoc2Nyb2xsVG9wICsgdGhpcy51bnBpbiA8PSBwb3NpdGlvbi50b3ApID9cclxuICAgICAgZmFsc2UgICAgOiBvZmZzZXRCb3R0b20gIT0gbnVsbCAmJiAocG9zaXRpb24udG9wICsgdGhpcy4kZWxlbWVudC5oZWlnaHQoKSA+PSBzY3JvbGxIZWlnaHQgLSBvZmZzZXRCb3R0b20pID9cclxuICAgICAgJ2JvdHRvbScgOiBvZmZzZXRUb3AgIT0gbnVsbCAmJiBzY3JvbGxUb3AgPD0gb2Zmc2V0VG9wID9cclxuICAgICAgJ3RvcCcgICAgOiBmYWxzZVxyXG5cclxuICAgIGlmICh0aGlzLmFmZml4ZWQgPT09IGFmZml4KSByZXR1cm5cclxuXHJcbiAgICB0aGlzLmFmZml4ZWQgPSBhZmZpeFxyXG4gICAgdGhpcy51bnBpbiA9IGFmZml4ID09ICdib3R0b20nID8gcG9zaXRpb24udG9wIC0gc2Nyb2xsVG9wIDogbnVsbFxyXG5cclxuICAgIHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MocmVzZXQpLmFkZENsYXNzKCdhZmZpeCcgKyAoYWZmaXggPyAnLScgKyBhZmZpeCA6ICcnKSlcclxuICB9XHJcblxyXG5cclxuIC8qIEFGRklYIFBMVUdJTiBERUZJTklUSU9OXHJcbiAgKiA9PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkLmZuLmFmZml4ID0gZnVuY3Rpb24gKG9wdGlvbikge1xyXG4gICAgcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiAoKSB7XHJcbiAgICAgIHZhciAkdGhpcyA9ICQodGhpcylcclxuICAgICAgICAsIGRhdGEgPSAkdGhpcy5kYXRhKCdhZmZpeCcpXHJcbiAgICAgICAgLCBvcHRpb25zID0gdHlwZW9mIG9wdGlvbiA9PSAnb2JqZWN0JyAmJiBvcHRpb25cclxuICAgICAgaWYgKCFkYXRhKSAkdGhpcy5kYXRhKCdhZmZpeCcsIChkYXRhID0gbmV3IEFmZml4KHRoaXMsIG9wdGlvbnMpKSlcclxuICAgICAgaWYgKHR5cGVvZiBvcHRpb24gPT0gJ3N0cmluZycpIGRhdGFbb3B0aW9uXSgpXHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgJC5mbi5hZmZpeC5Db25zdHJ1Y3RvciA9IEFmZml4XHJcblxyXG4gICQuZm4uYWZmaXguZGVmYXVsdHMgPSB7XHJcbiAgICBvZmZzZXQ6IDBcclxuICB9XHJcblxyXG5cclxuIC8qIEFGRklYIERBVEEtQVBJXHJcbiAgKiA9PT09PT09PT09PT09PSAqL1xyXG5cclxuICAkKHdpbmRvdykub24oJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XHJcbiAgICAkKCdbZGF0YS1zcHk9XCJhZmZpeFwiXScpLmVhY2goZnVuY3Rpb24gKCkge1xyXG4gICAgICB2YXIgJHNweSA9ICQodGhpcylcclxuICAgICAgICAsIGRhdGEgPSAkc3B5LmRhdGEoKVxyXG5cclxuICAgICAgZGF0YS5vZmZzZXQgPSBkYXRhLm9mZnNldCB8fCB7fVxyXG5cclxuICAgICAgZGF0YS5vZmZzZXRCb3R0b20gJiYgKGRhdGEub2Zmc2V0LmJvdHRvbSA9IGRhdGEub2Zmc2V0Qm90dG9tKVxyXG4gICAgICBkYXRhLm9mZnNldFRvcCAmJiAoZGF0YS5vZmZzZXQudG9wID0gZGF0YS5vZmZzZXRUb3ApXHJcblxyXG4gICAgICAkc3B5LmFmZml4KGRhdGEpXHJcbiAgICB9KVxyXG4gIH0pXHJcblxyXG5cclxufSh3aW5kb3cualF1ZXJ5KTtcclxuIiwiLyohXHJcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjEuOC4xXHJcbiAqIGh0dHA6Ly9qcXVlcnkuY29tL1xyXG4gKlxyXG4gKiBJbmNsdWRlcyBTaXp6bGUuanNcclxuICogaHR0cDovL3NpenpsZWpzLmNvbS9cclxuICpcclxuICogQ29weXJpZ2h0IDIwMTIgalF1ZXJ5IEZvdW5kYXRpb24gYW5kIG90aGVyIGNvbnRyaWJ1dG9yc1xyXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcclxuICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZVxyXG4gKlxyXG4gKiBEYXRlOiBUaHUgQXVnIDMwIDIwMTIgMTc6MTc6MjIgR01ULTA0MDAgKEVhc3Rlcm4gRGF5bGlnaHQgVGltZSlcclxuICovXHJcbihmdW5jdGlvbiggd2luZG93LCB1bmRlZmluZWQgKSB7XHJcbnZhclxyXG5cdC8vIEEgY2VudHJhbCByZWZlcmVuY2UgdG8gdGhlIHJvb3QgalF1ZXJ5KGRvY3VtZW50KVxyXG5cdHJvb3RqUXVlcnksXHJcblxyXG5cdC8vIFRoZSBkZWZlcnJlZCB1c2VkIG9uIERPTSByZWFkeVxyXG5cdHJlYWR5TGlzdCxcclxuXHJcblx0Ly8gVXNlIHRoZSBjb3JyZWN0IGRvY3VtZW50IGFjY29yZGluZ2x5IHdpdGggd2luZG93IGFyZ3VtZW50IChzYW5kYm94KVxyXG5cdGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50LFxyXG5cdGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLFxyXG5cdG5hdmlnYXRvciA9IHdpbmRvdy5uYXZpZ2F0b3IsXHJcblxyXG5cdC8vIE1hcCBvdmVyIGpRdWVyeSBpbiBjYXNlIG9mIG92ZXJ3cml0ZVxyXG5cdF9qUXVlcnkgPSB3aW5kb3cualF1ZXJ5LFxyXG5cclxuXHQvLyBNYXAgb3ZlciB0aGUgJCBpbiBjYXNlIG9mIG92ZXJ3cml0ZVxyXG5cdF8kID0gd2luZG93LiQsXHJcblxyXG5cdC8vIFNhdmUgYSByZWZlcmVuY2UgdG8gc29tZSBjb3JlIG1ldGhvZHNcclxuXHRjb3JlX3B1c2ggPSBBcnJheS5wcm90b3R5cGUucHVzaCxcclxuXHRjb3JlX3NsaWNlID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLFxyXG5cdGNvcmVfaW5kZXhPZiA9IEFycmF5LnByb3RvdHlwZS5pbmRleE9mLFxyXG5cdGNvcmVfdG9TdHJpbmcgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLFxyXG5cdGNvcmVfaGFzT3duID0gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSxcclxuXHRjb3JlX3RyaW0gPSBTdHJpbmcucHJvdG90eXBlLnRyaW0sXHJcblxyXG5cdC8vIERlZmluZSBhIGxvY2FsIGNvcHkgb2YgalF1ZXJ5XHJcblx0alF1ZXJ5ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkge1xyXG5cdFx0Ly8gVGhlIGpRdWVyeSBvYmplY3QgaXMgYWN0dWFsbHkganVzdCB0aGUgaW5pdCBjb25zdHJ1Y3RvciAnZW5oYW5jZWQnXHJcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5mbi5pbml0KCBzZWxlY3RvciwgY29udGV4dCwgcm9vdGpRdWVyeSApO1xyXG5cdH0sXHJcblxyXG5cdC8vIFVzZWQgZm9yIG1hdGNoaW5nIG51bWJlcnNcclxuXHRjb3JlX3BudW0gPSAvW1xcLStdPyg/OlxcZCpcXC58KVxcZCsoPzpbZUVdW1xcLStdP1xcZCt8KS8uc291cmNlLFxyXG5cclxuXHQvLyBVc2VkIGZvciBkZXRlY3RpbmcgYW5kIHRyaW1taW5nIHdoaXRlc3BhY2VcclxuXHRjb3JlX3Jub3R3aGl0ZSA9IC9cXFMvLFxyXG5cdGNvcmVfcnNwYWNlID0gL1xccysvLFxyXG5cclxuXHQvLyBNYWtlIHN1cmUgd2UgdHJpbSBCT00gYW5kIE5CU1AgKGhlcmUncyBsb29raW5nIGF0IHlvdSwgU2FmYXJpIDUuMCBhbmQgSUUpXHJcblx0cnRyaW0gPSAvXltcXHNcXHVGRUZGXFx4QTBdK3xbXFxzXFx1RkVGRlxceEEwXSskL2csXHJcblxyXG5cdC8vIEEgc2ltcGxlIHdheSB0byBjaGVjayBmb3IgSFRNTCBzdHJpbmdzXHJcblx0Ly8gUHJpb3JpdGl6ZSAjaWQgb3ZlciA8dGFnPiB0byBhdm9pZCBYU1MgdmlhIGxvY2F0aW9uLmhhc2ggKCM5NTIxKVxyXG5cdHJxdWlja0V4cHIgPSAvXig/OlteIzxdKig8W1xcd1xcV10rPilbXj5dKiR8IyhbXFx3XFwtXSopJCkvLFxyXG5cclxuXHQvLyBNYXRjaCBhIHN0YW5kYWxvbmUgdGFnXHJcblx0cnNpbmdsZVRhZyA9IC9ePChcXHcrKVxccypcXC8/Pig/OjxcXC9cXDE+fCkkLyxcclxuXHJcblx0Ly8gSlNPTiBSZWdFeHBcclxuXHRydmFsaWRjaGFycyA9IC9eW1xcXSw6e31cXHNdKiQvLFxyXG5cdHJ2YWxpZGJyYWNlcyA9IC8oPzpefDp8LCkoPzpcXHMqXFxbKSsvZyxcclxuXHRydmFsaWRlc2NhcGUgPSAvXFxcXCg/OltcIlxcXFxcXC9iZm5ydF18dVtcXGRhLWZBLUZdezR9KS9nLFxyXG5cdHJ2YWxpZHRva2VucyA9IC9cIlteXCJcXFxcXFxyXFxuXSpcInx0cnVlfGZhbHNlfG51bGx8LT8oPzpcXGRcXGQqXFwufClcXGQrKD86W2VFXVtcXC0rXT9cXGQrfCkvZyxcclxuXHJcblx0Ly8gTWF0Y2hlcyBkYXNoZWQgc3RyaW5nIGZvciBjYW1lbGl6aW5nXHJcblx0cm1zUHJlZml4ID0gL14tbXMtLyxcclxuXHRyZGFzaEFscGhhID0gLy0oW1xcZGEtel0pL2dpLFxyXG5cclxuXHQvLyBVc2VkIGJ5IGpRdWVyeS5jYW1lbENhc2UgYXMgY2FsbGJhY2sgdG8gcmVwbGFjZSgpXHJcblx0ZmNhbWVsQ2FzZSA9IGZ1bmN0aW9uKCBhbGwsIGxldHRlciApIHtcclxuXHRcdHJldHVybiAoIGxldHRlciArIFwiXCIgKS50b1VwcGVyQ2FzZSgpO1xyXG5cdH0sXHJcblxyXG5cdC8vIFRoZSByZWFkeSBldmVudCBoYW5kbGVyIGFuZCBzZWxmIGNsZWFudXAgbWV0aG9kXHJcblx0RE9NQ29udGVudExvYWRlZCA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkge1xyXG5cdFx0XHRkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCBcIkRPTUNvbnRlbnRMb2FkZWRcIiwgRE9NQ29udGVudExvYWRlZCwgZmFsc2UgKTtcclxuXHRcdFx0alF1ZXJ5LnJlYWR5KCk7XHJcblx0XHR9IGVsc2UgaWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSBcImNvbXBsZXRlXCIgKSB7XHJcblx0XHRcdC8vIHdlJ3JlIGhlcmUgYmVjYXVzZSByZWFkeVN0YXRlID09PSBcImNvbXBsZXRlXCIgaW4gb2xkSUVcclxuXHRcdFx0Ly8gd2hpY2ggaXMgZ29vZCBlbm91Z2ggZm9yIHVzIHRvIGNhbGwgdGhlIGRvbSByZWFkeSFcclxuXHRcdFx0ZG9jdW1lbnQuZGV0YWNoRXZlbnQoIFwib25yZWFkeXN0YXRlY2hhbmdlXCIsIERPTUNvbnRlbnRMb2FkZWQgKTtcclxuXHRcdFx0alF1ZXJ5LnJlYWR5KCk7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Ly8gW1tDbGFzc11dIC0+IHR5cGUgcGFpcnNcclxuXHRjbGFzczJ0eXBlID0ge307XHJcblxyXG5qUXVlcnkuZm4gPSBqUXVlcnkucHJvdG90eXBlID0ge1xyXG5cdGNvbnN0cnVjdG9yOiBqUXVlcnksXHJcblx0aW5pdDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByb290alF1ZXJ5ICkge1xyXG5cdFx0dmFyIG1hdGNoLCBlbGVtLCByZXQsIGRvYztcclxuXHJcblx0XHQvLyBIYW5kbGUgJChcIlwiKSwgJChudWxsKSwgJCh1bmRlZmluZWQpLCAkKGZhbHNlKVxyXG5cdFx0aWYgKCAhc2VsZWN0b3IgKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEhhbmRsZSAkKERPTUVsZW1lbnQpXHJcblx0XHRpZiAoIHNlbGVjdG9yLm5vZGVUeXBlICkge1xyXG5cdFx0XHR0aGlzLmNvbnRleHQgPSB0aGlzWzBdID0gc2VsZWN0b3I7XHJcblx0XHRcdHRoaXMubGVuZ3RoID0gMTtcclxuXHRcdFx0cmV0dXJuIHRoaXM7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gSGFuZGxlIEhUTUwgc3RyaW5nc1xyXG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XHJcblx0XHRcdGlmICggc2VsZWN0b3IuY2hhckF0KDApID09PSBcIjxcIiAmJiBzZWxlY3Rvci5jaGFyQXQoIHNlbGVjdG9yLmxlbmd0aCAtIDEgKSA9PT0gXCI+XCIgJiYgc2VsZWN0b3IubGVuZ3RoID49IDMgKSB7XHJcblx0XHRcdFx0Ly8gQXNzdW1lIHRoYXQgc3RyaW5ncyB0aGF0IHN0YXJ0IGFuZCBlbmQgd2l0aCA8PiBhcmUgSFRNTCBhbmQgc2tpcCB0aGUgcmVnZXggY2hlY2tcclxuXHRcdFx0XHRtYXRjaCA9IFsgbnVsbCwgc2VsZWN0b3IsIG51bGwgXTtcclxuXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0bWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIE1hdGNoIGh0bWwgb3IgbWFrZSBzdXJlIG5vIGNvbnRleHQgaXMgc3BlY2lmaWVkIGZvciAjaWRcclxuXHRcdFx0aWYgKCBtYXRjaCAmJiAobWF0Y2hbMV0gfHwgIWNvbnRleHQpICkge1xyXG5cclxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoaHRtbCkgLT4gJChhcnJheSlcclxuXHRcdFx0XHRpZiAoIG1hdGNoWzFdICkge1xyXG5cdFx0XHRcdFx0Y29udGV4dCA9IGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgPyBjb250ZXh0WzBdIDogY29udGV4dDtcclxuXHRcdFx0XHRcdGRvYyA9ICggY29udGV4dCAmJiBjb250ZXh0Lm5vZGVUeXBlID8gY29udGV4dC5vd25lckRvY3VtZW50IHx8IGNvbnRleHQgOiBkb2N1bWVudCApO1xyXG5cclxuXHRcdFx0XHRcdC8vIHNjcmlwdHMgaXMgdHJ1ZSBmb3IgYmFjay1jb21wYXRcclxuXHRcdFx0XHRcdHNlbGVjdG9yID0galF1ZXJ5LnBhcnNlSFRNTCggbWF0Y2hbMV0sIGRvYywgdHJ1ZSApO1xyXG5cdFx0XHRcdFx0aWYgKCByc2luZ2xlVGFnLnRlc3QoIG1hdGNoWzFdICkgJiYgalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQgKSApIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5hdHRyLmNhbGwoIHNlbGVjdG9yLCBjb250ZXh0LCB0cnVlICk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0cmV0dXJuIGpRdWVyeS5tZXJnZSggdGhpcywgc2VsZWN0b3IgKTtcclxuXHJcblx0XHRcdFx0Ly8gSEFORExFOiAkKCNpZClcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0ZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsyXSApO1xyXG5cclxuXHRcdFx0XHRcdC8vIENoZWNrIHBhcmVudE5vZGUgdG8gY2F0Y2ggd2hlbiBCbGFja2JlcnJ5IDQuNiByZXR1cm5zXHJcblx0XHRcdFx0XHQvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzXHJcblx0XHRcdFx0XHRpZiAoIGVsZW0gJiYgZWxlbS5wYXJlbnROb2RlICkge1xyXG5cdFx0XHRcdFx0XHQvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgSUUgYW5kIE9wZXJhIHJldHVybiBpdGVtc1xyXG5cdFx0XHRcdFx0XHQvLyBieSBuYW1lIGluc3RlYWQgb2YgSURcclxuXHRcdFx0XHRcdFx0aWYgKCBlbGVtLmlkICE9PSBtYXRjaFsyXSApIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcm9vdGpRdWVyeS5maW5kKCBzZWxlY3RvciApO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBPdGhlcndpc2UsIHdlIGluamVjdCB0aGUgZWxlbWVudCBkaXJlY3RseSBpbnRvIHRoZSBqUXVlcnkgb2JqZWN0XHJcblx0XHRcdFx0XHRcdHRoaXMubGVuZ3RoID0gMTtcclxuXHRcdFx0XHRcdFx0dGhpc1swXSA9IGVsZW07XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0dGhpcy5jb250ZXh0ID0gZG9jdW1lbnQ7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdG9yID0gc2VsZWN0b3I7XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBIQU5ETEU6ICQoZXhwciwgJCguLi4pKVxyXG5cdFx0XHR9IGVsc2UgaWYgKCAhY29udGV4dCB8fCBjb250ZXh0LmpxdWVyeSApIHtcclxuXHRcdFx0XHRyZXR1cm4gKCBjb250ZXh0IHx8IHJvb3RqUXVlcnkgKS5maW5kKCBzZWxlY3RvciApO1xyXG5cclxuXHRcdFx0Ly8gSEFORExFOiAkKGV4cHIsIGNvbnRleHQpXHJcblx0XHRcdC8vICh3aGljaCBpcyBqdXN0IGVxdWl2YWxlbnQgdG86ICQoY29udGV4dCkuZmluZChleHByKVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHJldHVybiB0aGlzLmNvbnN0cnVjdG9yKCBjb250ZXh0ICkuZmluZCggc2VsZWN0b3IgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdC8vIEhBTkRMRTogJChmdW5jdGlvbilcclxuXHRcdC8vIFNob3J0Y3V0IGZvciBkb2N1bWVudCByZWFkeVxyXG5cdFx0fSBlbHNlIGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHNlbGVjdG9yICkgKSB7XHJcblx0XHRcdHJldHVybiByb290alF1ZXJ5LnJlYWR5KCBzZWxlY3RvciApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggc2VsZWN0b3Iuc2VsZWN0b3IgIT09IHVuZGVmaW5lZCApIHtcclxuXHRcdFx0dGhpcy5zZWxlY3RvciA9IHNlbGVjdG9yLnNlbGVjdG9yO1xyXG5cdFx0XHR0aGlzLmNvbnRleHQgPSBzZWxlY3Rvci5jb250ZXh0O1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBqUXVlcnkubWFrZUFycmF5KCBzZWxlY3RvciwgdGhpcyApO1xyXG5cdH0sXHJcblxyXG5cdC8vIFN0YXJ0IHdpdGggYW4gZW1wdHkgc2VsZWN0b3JcclxuXHRzZWxlY3RvcjogXCJcIixcclxuXHJcblx0Ly8gVGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBqUXVlcnkgYmVpbmcgdXNlZFxyXG5cdGpxdWVyeTogXCIxLjguMVwiLFxyXG5cclxuXHQvLyBUaGUgZGVmYXVsdCBsZW5ndGggb2YgYSBqUXVlcnkgb2JqZWN0IGlzIDBcclxuXHRsZW5ndGg6IDAsXHJcblxyXG5cdC8vIFRoZSBudW1iZXIgb2YgZWxlbWVudHMgY29udGFpbmVkIGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0XHJcblx0c2l6ZTogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5sZW5ndGg7XHJcblx0fSxcclxuXHJcblx0dG9BcnJheTogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gY29yZV9zbGljZS5jYWxsKCB0aGlzICk7XHJcblx0fSxcclxuXHJcblx0Ly8gR2V0IHRoZSBOdGggZWxlbWVudCBpbiB0aGUgbWF0Y2hlZCBlbGVtZW50IHNldCBPUlxyXG5cdC8vIEdldCB0aGUgd2hvbGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5XHJcblx0Z2V0OiBmdW5jdGlvbiggbnVtICkge1xyXG5cdFx0cmV0dXJuIG51bSA9PSBudWxsID9cclxuXHJcblx0XHRcdC8vIFJldHVybiBhICdjbGVhbicgYXJyYXlcclxuXHRcdFx0dGhpcy50b0FycmF5KCkgOlxyXG5cclxuXHRcdFx0Ly8gUmV0dXJuIGp1c3QgdGhlIG9iamVjdFxyXG5cdFx0XHQoIG51bSA8IDAgPyB0aGlzWyB0aGlzLmxlbmd0aCArIG51bSBdIDogdGhpc1sgbnVtIF0gKTtcclxuXHR9LFxyXG5cclxuXHQvLyBUYWtlIGFuIGFycmF5IG9mIGVsZW1lbnRzIGFuZCBwdXNoIGl0IG9udG8gdGhlIHN0YWNrXHJcblx0Ly8gKHJldHVybmluZyB0aGUgbmV3IG1hdGNoZWQgZWxlbWVudCBzZXQpXHJcblx0cHVzaFN0YWNrOiBmdW5jdGlvbiggZWxlbXMsIG5hbWUsIHNlbGVjdG9yICkge1xyXG5cclxuXHRcdC8vIEJ1aWxkIGEgbmV3IGpRdWVyeSBtYXRjaGVkIGVsZW1lbnQgc2V0XHJcblx0XHR2YXIgcmV0ID0galF1ZXJ5Lm1lcmdlKCB0aGlzLmNvbnN0cnVjdG9yKCksIGVsZW1zICk7XHJcblxyXG5cdFx0Ly8gQWRkIHRoZSBvbGQgb2JqZWN0IG9udG8gdGhlIHN0YWNrIChhcyBhIHJlZmVyZW5jZSlcclxuXHRcdHJldC5wcmV2T2JqZWN0ID0gdGhpcztcclxuXHJcblx0XHRyZXQuY29udGV4dCA9IHRoaXMuY29udGV4dDtcclxuXHJcblx0XHRpZiAoIG5hbWUgPT09IFwiZmluZFwiICkge1xyXG5cdFx0XHRyZXQuc2VsZWN0b3IgPSB0aGlzLnNlbGVjdG9yICsgKCB0aGlzLnNlbGVjdG9yID8gXCIgXCIgOiBcIlwiICkgKyBzZWxlY3RvcjtcclxuXHRcdH0gZWxzZSBpZiAoIG5hbWUgKSB7XHJcblx0XHRcdHJldC5zZWxlY3RvciA9IHRoaXMuc2VsZWN0b3IgKyBcIi5cIiArIG5hbWUgKyBcIihcIiArIHNlbGVjdG9yICsgXCIpXCI7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUmV0dXJuIHRoZSBuZXdseS1mb3JtZWQgZWxlbWVudCBzZXRcclxuXHRcdHJldHVybiByZXQ7XHJcblx0fSxcclxuXHJcblx0Ly8gRXhlY3V0ZSBhIGNhbGxiYWNrIGZvciBldmVyeSBlbGVtZW50IGluIHRoZSBtYXRjaGVkIHNldC5cclxuXHQvLyAoWW91IGNhbiBzZWVkIHRoZSBhcmd1bWVudHMgd2l0aCBhbiBhcnJheSBvZiBhcmdzLCBidXQgdGhpcyBpc1xyXG5cdC8vIG9ubHkgdXNlZCBpbnRlcm5hbGx5LilcclxuXHRlYWNoOiBmdW5jdGlvbiggY2FsbGJhY2ssIGFyZ3MgKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LmVhY2goIHRoaXMsIGNhbGxiYWNrLCBhcmdzICk7XHJcblx0fSxcclxuXHJcblx0cmVhZHk6IGZ1bmN0aW9uKCBmbiApIHtcclxuXHRcdC8vIEFkZCB0aGUgY2FsbGJhY2tcclxuXHRcdGpRdWVyeS5yZWFkeS5wcm9taXNlKCkuZG9uZSggZm4gKTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcztcclxuXHR9LFxyXG5cclxuXHRlcTogZnVuY3Rpb24oIGkgKSB7XHJcblx0XHRpID0gK2k7XHJcblx0XHRyZXR1cm4gaSA9PT0gLTEgP1xyXG5cdFx0XHR0aGlzLnNsaWNlKCBpICkgOlxyXG5cdFx0XHR0aGlzLnNsaWNlKCBpLCBpICsgMSApO1xyXG5cdH0sXHJcblxyXG5cdGZpcnN0OiBmdW5jdGlvbigpIHtcclxuXHRcdHJldHVybiB0aGlzLmVxKCAwICk7XHJcblx0fSxcclxuXHJcblx0bGFzdDogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5lcSggLTEgKTtcclxuXHR9LFxyXG5cclxuXHRzbGljZTogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGNvcmVfc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApLFxyXG5cdFx0XHRcInNsaWNlXCIsIGNvcmVfc2xpY2UuY2FsbChhcmd1bWVudHMpLmpvaW4oXCIsXCIpICk7XHJcblx0fSxcclxuXHJcblx0bWFwOiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5tYXAodGhpcywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XHJcblx0XHRcdHJldHVybiBjYWxsYmFjay5jYWxsKCBlbGVtLCBpLCBlbGVtICk7XHJcblx0XHR9KSk7XHJcblx0fSxcclxuXHJcblx0ZW5kOiBmdW5jdGlvbigpIHtcclxuXHRcdHJldHVybiB0aGlzLnByZXZPYmplY3QgfHwgdGhpcy5jb25zdHJ1Y3RvcihudWxsKTtcclxuXHR9LFxyXG5cclxuXHQvLyBGb3IgaW50ZXJuYWwgdXNlIG9ubHkuXHJcblx0Ly8gQmVoYXZlcyBsaWtlIGFuIEFycmF5J3MgbWV0aG9kLCBub3QgbGlrZSBhIGpRdWVyeSBtZXRob2QuXHJcblx0cHVzaDogY29yZV9wdXNoLFxyXG5cdHNvcnQ6IFtdLnNvcnQsXHJcblx0c3BsaWNlOiBbXS5zcGxpY2VcclxufTtcclxuXHJcbi8vIEdpdmUgdGhlIGluaXQgZnVuY3Rpb24gdGhlIGpRdWVyeSBwcm90b3R5cGUgZm9yIGxhdGVyIGluc3RhbnRpYXRpb25cclxualF1ZXJ5LmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5LmZuO1xyXG5cclxualF1ZXJ5LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHtcclxuXHR2YXIgb3B0aW9ucywgbmFtZSwgc3JjLCBjb3B5LCBjb3B5SXNBcnJheSwgY2xvbmUsXHJcblx0XHR0YXJnZXQgPSBhcmd1bWVudHNbMF0gfHwge30sXHJcblx0XHRpID0gMSxcclxuXHRcdGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXHJcblx0XHRkZWVwID0gZmFsc2U7XHJcblxyXG5cdC8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb25cclxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgPT09IFwiYm9vbGVhblwiICkge1xyXG5cdFx0ZGVlcCA9IHRhcmdldDtcclxuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sxXSB8fCB7fTtcclxuXHRcdC8vIHNraXAgdGhlIGJvb2xlYW4gYW5kIHRoZSB0YXJnZXRcclxuXHRcdGkgPSAyO1xyXG5cdH1cclxuXHJcblx0Ly8gSGFuZGxlIGNhc2Ugd2hlbiB0YXJnZXQgaXMgYSBzdHJpbmcgb3Igc29tZXRoaW5nIChwb3NzaWJsZSBpbiBkZWVwIGNvcHkpXHJcblx0aWYgKCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiICYmICFqUXVlcnkuaXNGdW5jdGlvbih0YXJnZXQpICkge1xyXG5cdFx0dGFyZ2V0ID0ge307XHJcblx0fVxyXG5cclxuXHQvLyBleHRlbmQgalF1ZXJ5IGl0c2VsZiBpZiBvbmx5IG9uZSBhcmd1bWVudCBpcyBwYXNzZWRcclxuXHRpZiAoIGxlbmd0aCA9PT0gaSApIHtcclxuXHRcdHRhcmdldCA9IHRoaXM7XHJcblx0XHQtLWk7XHJcblx0fVxyXG5cclxuXHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcclxuXHRcdC8vIE9ubHkgZGVhbCB3aXRoIG5vbi1udWxsL3VuZGVmaW5lZCB2YWx1ZXNcclxuXHRcdGlmICggKG9wdGlvbnMgPSBhcmd1bWVudHNbIGkgXSkgIT0gbnVsbCApIHtcclxuXHRcdFx0Ly8gRXh0ZW5kIHRoZSBiYXNlIG9iamVjdFxyXG5cdFx0XHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XHJcblx0XHRcdFx0c3JjID0gdGFyZ2V0WyBuYW1lIF07XHJcblx0XHRcdFx0Y29weSA9IG9wdGlvbnNbIG5hbWUgXTtcclxuXHJcblx0XHRcdFx0Ly8gUHJldmVudCBuZXZlci1lbmRpbmcgbG9vcFxyXG5cdFx0XHRcdGlmICggdGFyZ2V0ID09PSBjb3B5ICkge1xyXG5cdFx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBSZWN1cnNlIGlmIHdlJ3JlIG1lcmdpbmcgcGxhaW4gb2JqZWN0cyBvciBhcnJheXNcclxuXHRcdFx0XHRpZiAoIGRlZXAgJiYgY29weSAmJiAoIGpRdWVyeS5pc1BsYWluT2JqZWN0KGNvcHkpIHx8IChjb3B5SXNBcnJheSA9IGpRdWVyeS5pc0FycmF5KGNvcHkpKSApICkge1xyXG5cdFx0XHRcdFx0aWYgKCBjb3B5SXNBcnJheSApIHtcclxuXHRcdFx0XHRcdFx0Y29weUlzQXJyYXkgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmMgJiYgalF1ZXJ5LmlzQXJyYXkoc3JjKSA/IHNyYyA6IFtdO1xyXG5cclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGNsb25lID0gc3JjICYmIGpRdWVyeS5pc1BsYWluT2JqZWN0KHNyYykgPyBzcmMgOiB7fTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBOZXZlciBtb3ZlIG9yaWdpbmFsIG9iamVjdHMsIGNsb25lIHRoZW1cclxuXHRcdFx0XHRcdHRhcmdldFsgbmFtZSBdID0galF1ZXJ5LmV4dGVuZCggZGVlcCwgY2xvbmUsIGNvcHkgKTtcclxuXHJcblx0XHRcdFx0Ly8gRG9uJ3QgYnJpbmcgaW4gdW5kZWZpbmVkIHZhbHVlc1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIGNvcHkgIT09IHVuZGVmaW5lZCApIHtcclxuXHRcdFx0XHRcdHRhcmdldFsgbmFtZSBdID0gY29weTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqZWN0XHJcblx0cmV0dXJuIHRhcmdldDtcclxufTtcclxuXHJcbmpRdWVyeS5leHRlbmQoe1xyXG5cdG5vQ29uZmxpY3Q6IGZ1bmN0aW9uKCBkZWVwICkge1xyXG5cdFx0aWYgKCB3aW5kb3cuJCA9PT0galF1ZXJ5ICkge1xyXG5cdFx0XHR3aW5kb3cuJCA9IF8kO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggZGVlcCAmJiB3aW5kb3cualF1ZXJ5ID09PSBqUXVlcnkgKSB7XHJcblx0XHRcdHdpbmRvdy5qUXVlcnkgPSBfalF1ZXJ5O1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBqUXVlcnk7XHJcblx0fSxcclxuXHJcblx0Ly8gSXMgdGhlIERPTSByZWFkeSB0byBiZSB1c2VkPyBTZXQgdG8gdHJ1ZSBvbmNlIGl0IG9jY3Vycy5cclxuXHRpc1JlYWR5OiBmYWxzZSxcclxuXHJcblx0Ly8gQSBjb3VudGVyIHRvIHRyYWNrIGhvdyBtYW55IGl0ZW1zIHRvIHdhaXQgZm9yIGJlZm9yZVxyXG5cdC8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxXHJcblx0cmVhZHlXYWl0OiAxLFxyXG5cclxuXHQvLyBIb2xkIChvciByZWxlYXNlKSB0aGUgcmVhZHkgZXZlbnRcclxuXHRob2xkUmVhZHk6IGZ1bmN0aW9uKCBob2xkICkge1xyXG5cdFx0aWYgKCBob2xkICkge1xyXG5cdFx0XHRqUXVlcnkucmVhZHlXYWl0Kys7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRqUXVlcnkucmVhZHkoIHRydWUgKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHQvLyBIYW5kbGUgd2hlbiB0aGUgRE9NIGlzIHJlYWR5XHJcblx0cmVhZHk6IGZ1bmN0aW9uKCB3YWl0ICkge1xyXG5cclxuXHRcdC8vIEFib3J0IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvbGRzIG9yIHdlJ3JlIGFscmVhZHkgcmVhZHlcclxuXHRcdGlmICggd2FpdCA9PT0gdHJ1ZSA/IC0talF1ZXJ5LnJlYWR5V2FpdCA6IGpRdWVyeS5pc1JlYWR5ICkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gTWFrZSBzdXJlIGJvZHkgZXhpc3RzLCBhdCBsZWFzdCwgaW4gY2FzZSBJRSBnZXRzIGEgbGl0dGxlIG92ZXJ6ZWFsb3VzICh0aWNrZXQgIzU0NDMpLlxyXG5cdFx0aWYgKCAhZG9jdW1lbnQuYm9keSApIHtcclxuXHRcdFx0cmV0dXJuIHNldFRpbWVvdXQoIGpRdWVyeS5yZWFkeSwgMSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFJlbWVtYmVyIHRoYXQgdGhlIERPTSBpcyByZWFkeVxyXG5cdFx0alF1ZXJ5LmlzUmVhZHkgPSB0cnVlO1xyXG5cclxuXHRcdC8vIElmIGEgbm9ybWFsIERPTSBSZWFkeSBldmVudCBmaXJlZCwgZGVjcmVtZW50LCBhbmQgd2FpdCBpZiBuZWVkIGJlXHJcblx0XHRpZiAoIHdhaXQgIT09IHRydWUgJiYgLS1qUXVlcnkucmVhZHlXYWl0ID4gMCApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4ZWN1dGVcclxuXHRcdHJlYWR5TGlzdC5yZXNvbHZlV2l0aCggZG9jdW1lbnQsIFsgalF1ZXJ5IF0gKTtcclxuXHJcblx0XHQvLyBUcmlnZ2VyIGFueSBib3VuZCByZWFkeSBldmVudHNcclxuXHRcdGlmICggalF1ZXJ5LmZuLnRyaWdnZXIgKSB7XHJcblx0XHRcdGpRdWVyeSggZG9jdW1lbnQgKS50cmlnZ2VyKFwicmVhZHlcIikub2ZmKFwicmVhZHlcIik7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Ly8gU2VlIHRlc3QvdW5pdC9jb3JlLmpzIGZvciBkZXRhaWxzIGNvbmNlcm5pbmcgaXNGdW5jdGlvbi5cclxuXHQvLyBTaW5jZSB2ZXJzaW9uIDEuMywgRE9NIG1ldGhvZHMgYW5kIGZ1bmN0aW9ucyBsaWtlIGFsZXJ0XHJcblx0Ly8gYXJlbid0IHN1cHBvcnRlZC4gVGhleSByZXR1cm4gZmFsc2Ugb24gSUUgKCMyOTY4KS5cclxuXHRpc0Z1bmN0aW9uOiBmdW5jdGlvbiggb2JqICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS50eXBlKG9iaikgPT09IFwiZnVuY3Rpb25cIjtcclxuXHR9LFxyXG5cclxuXHRpc0FycmF5OiBBcnJheS5pc0FycmF5IHx8IGZ1bmN0aW9uKCBvYmogKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LnR5cGUob2JqKSA9PT0gXCJhcnJheVwiO1xyXG5cdH0sXHJcblxyXG5cdGlzV2luZG93OiBmdW5jdGlvbiggb2JqICkge1xyXG5cdFx0cmV0dXJuIG9iaiAhPSBudWxsICYmIG9iaiA9PSBvYmoud2luZG93O1xyXG5cdH0sXHJcblxyXG5cdGlzTnVtZXJpYzogZnVuY3Rpb24oIG9iaiApIHtcclxuXHRcdHJldHVybiAhaXNOYU4oIHBhcnNlRmxvYXQob2JqKSApICYmIGlzRmluaXRlKCBvYmogKTtcclxuXHR9LFxyXG5cclxuXHR0eXBlOiBmdW5jdGlvbiggb2JqICkge1xyXG5cdFx0cmV0dXJuIG9iaiA9PSBudWxsID9cclxuXHRcdFx0U3RyaW5nKCBvYmogKSA6XHJcblx0XHRcdGNsYXNzMnR5cGVbIGNvcmVfdG9TdHJpbmcuY2FsbChvYmopIF0gfHwgXCJvYmplY3RcIjtcclxuXHR9LFxyXG5cclxuXHRpc1BsYWluT2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xyXG5cdFx0Ly8gTXVzdCBiZSBhbiBPYmplY3QuXHJcblx0XHQvLyBCZWNhdXNlIG9mIElFLCB3ZSBhbHNvIGhhdmUgdG8gY2hlY2sgdGhlIHByZXNlbmNlIG9mIHRoZSBjb25zdHJ1Y3RvciBwcm9wZXJ0eS5cclxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IERPTSBub2RlcyBhbmQgd2luZG93IG9iamVjdHMgZG9uJ3QgcGFzcyB0aHJvdWdoLCBhcyB3ZWxsXHJcblx0XHRpZiAoICFvYmogfHwgalF1ZXJ5LnR5cGUob2JqKSAhPT0gXCJvYmplY3RcIiB8fCBvYmoubm9kZVR5cGUgfHwgalF1ZXJ5LmlzV2luZG93KCBvYmogKSApIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRyeSB7XHJcblx0XHRcdC8vIE5vdCBvd24gY29uc3RydWN0b3IgcHJvcGVydHkgbXVzdCBiZSBPYmplY3RcclxuXHRcdFx0aWYgKCBvYmouY29uc3RydWN0b3IgJiZcclxuXHRcdFx0XHQhY29yZV9oYXNPd24uY2FsbChvYmosIFwiY29uc3RydWN0b3JcIikgJiZcclxuXHRcdFx0XHQhY29yZV9oYXNPd24uY2FsbChvYmouY29uc3RydWN0b3IucHJvdG90eXBlLCBcImlzUHJvdG90eXBlT2ZcIikgKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0XHR9XHJcblx0XHR9IGNhdGNoICggZSApIHtcclxuXHRcdFx0Ly8gSUU4LDkgV2lsbCB0aHJvdyBleGNlcHRpb25zIG9uIGNlcnRhaW4gaG9zdCBvYmplY3RzICM5ODk3XHJcblx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBPd24gcHJvcGVydGllcyBhcmUgZW51bWVyYXRlZCBmaXJzdGx5LCBzbyB0byBzcGVlZCB1cCxcclxuXHRcdC8vIGlmIGxhc3Qgb25lIGlzIG93biwgdGhlbiBhbGwgcHJvcGVydGllcyBhcmUgb3duLlxyXG5cclxuXHRcdHZhciBrZXk7XHJcblx0XHRmb3IgKCBrZXkgaW4gb2JqICkge31cclxuXHJcblx0XHRyZXR1cm4ga2V5ID09PSB1bmRlZmluZWQgfHwgY29yZV9oYXNPd24uY2FsbCggb2JqLCBrZXkgKTtcclxuXHR9LFxyXG5cclxuXHRpc0VtcHR5T2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xyXG5cdFx0dmFyIG5hbWU7XHJcblx0XHRmb3IgKCBuYW1lIGluIG9iaiApIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHRydWU7XHJcblx0fSxcclxuXHJcblx0ZXJyb3I6IGZ1bmN0aW9uKCBtc2cgKSB7XHJcblx0XHR0aHJvdyBuZXcgRXJyb3IoIG1zZyApO1xyXG5cdH0sXHJcblxyXG5cdC8vIGRhdGE6IHN0cmluZyBvZiBodG1sXHJcblx0Ly8gY29udGV4dCAob3B0aW9uYWwpOiBJZiBzcGVjaWZpZWQsIHRoZSBmcmFnbWVudCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhpcyBjb250ZXh0LCBkZWZhdWx0cyB0byBkb2N1bWVudFxyXG5cdC8vIHNjcmlwdHMgKG9wdGlvbmFsKTogSWYgdHJ1ZSwgd2lsbCBpbmNsdWRlIHNjcmlwdHMgcGFzc2VkIGluIHRoZSBodG1sIHN0cmluZ1xyXG5cdHBhcnNlSFRNTDogZnVuY3Rpb24oIGRhdGEsIGNvbnRleHQsIHNjcmlwdHMgKSB7XHJcblx0XHR2YXIgcGFyc2VkO1xyXG5cdFx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0XHRpZiAoIHR5cGVvZiBjb250ZXh0ID09PSBcImJvb2xlYW5cIiApIHtcclxuXHRcdFx0c2NyaXB0cyA9IGNvbnRleHQ7XHJcblx0XHRcdGNvbnRleHQgPSAwO1xyXG5cdFx0fVxyXG5cdFx0Y29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7XHJcblxyXG5cdFx0Ly8gU2luZ2xlIHRhZ1xyXG5cdFx0aWYgKCAocGFyc2VkID0gcnNpbmdsZVRhZy5leGVjKCBkYXRhICkpICkge1xyXG5cdFx0XHRyZXR1cm4gWyBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoIHBhcnNlZFsxXSApIF07XHJcblx0XHR9XHJcblxyXG5cdFx0cGFyc2VkID0galF1ZXJ5LmJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBjb250ZXh0LCBzY3JpcHRzID8gbnVsbCA6IFtdICk7XHJcblx0XHRyZXR1cm4galF1ZXJ5Lm1lcmdlKCBbXSxcclxuXHRcdFx0KHBhcnNlZC5jYWNoZWFibGUgPyBqUXVlcnkuY2xvbmUoIHBhcnNlZC5mcmFnbWVudCApIDogcGFyc2VkLmZyYWdtZW50KS5jaGlsZE5vZGVzICk7XHJcblx0fSxcclxuXHJcblx0cGFyc2VKU09OOiBmdW5jdGlvbiggZGF0YSApIHtcclxuXHRcdGlmICggIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09IFwic3RyaW5nXCIpIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gTWFrZSBzdXJlIGxlYWRpbmcvdHJhaWxpbmcgd2hpdGVzcGFjZSBpcyByZW1vdmVkIChJRSBjYW4ndCBoYW5kbGUgaXQpXHJcblx0XHRkYXRhID0galF1ZXJ5LnRyaW0oIGRhdGEgKTtcclxuXHJcblx0XHQvLyBBdHRlbXB0IHRvIHBhcnNlIHVzaW5nIHRoZSBuYXRpdmUgSlNPTiBwYXJzZXIgZmlyc3RcclxuXHRcdGlmICggd2luZG93LkpTT04gJiYgd2luZG93LkpTT04ucGFyc2UgKSB7XHJcblx0XHRcdHJldHVybiB3aW5kb3cuSlNPTi5wYXJzZSggZGF0YSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE1ha2Ugc3VyZSB0aGUgaW5jb21pbmcgZGF0YSBpcyBhY3R1YWwgSlNPTlxyXG5cdFx0Ly8gTG9naWMgYm9ycm93ZWQgZnJvbSBodHRwOi8vanNvbi5vcmcvanNvbjIuanNcclxuXHRcdGlmICggcnZhbGlkY2hhcnMudGVzdCggZGF0YS5yZXBsYWNlKCBydmFsaWRlc2NhcGUsIFwiQFwiIClcclxuXHRcdFx0LnJlcGxhY2UoIHJ2YWxpZHRva2VucywgXCJdXCIgKVxyXG5cdFx0XHQucmVwbGFjZSggcnZhbGlkYnJhY2VzLCBcIlwiKSkgKSB7XHJcblxyXG5cdFx0XHRyZXR1cm4gKCBuZXcgRnVuY3Rpb24oIFwicmV0dXJuIFwiICsgZGF0YSApICkoKTtcclxuXHJcblx0XHR9XHJcblx0XHRqUXVlcnkuZXJyb3IoIFwiSW52YWxpZCBKU09OOiBcIiArIGRhdGEgKTtcclxuXHR9LFxyXG5cclxuXHQvLyBDcm9zcy1icm93c2VyIHhtbCBwYXJzaW5nXHJcblx0cGFyc2VYTUw6IGZ1bmN0aW9uKCBkYXRhICkge1xyXG5cdFx0dmFyIHhtbCwgdG1wO1xyXG5cdFx0aWYgKCAhZGF0YSB8fCB0eXBlb2YgZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0cmV0dXJuIG51bGw7XHJcblx0XHR9XHJcblx0XHR0cnkge1xyXG5cdFx0XHRpZiAoIHdpbmRvdy5ET01QYXJzZXIgKSB7IC8vIFN0YW5kYXJkXHJcblx0XHRcdFx0dG1wID0gbmV3IERPTVBhcnNlcigpO1xyXG5cdFx0XHRcdHhtbCA9IHRtcC5wYXJzZUZyb21TdHJpbmcoIGRhdGEgLCBcInRleHQveG1sXCIgKTtcclxuXHRcdFx0fSBlbHNlIHsgLy8gSUVcclxuXHRcdFx0XHR4bWwgPSBuZXcgQWN0aXZlWE9iamVjdCggXCJNaWNyb3NvZnQuWE1MRE9NXCIgKTtcclxuXHRcdFx0XHR4bWwuYXN5bmMgPSBcImZhbHNlXCI7XHJcblx0XHRcdFx0eG1sLmxvYWRYTUwoIGRhdGEgKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBjYXRjaCggZSApIHtcclxuXHRcdFx0eG1sID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCAheG1sIHx8ICF4bWwuZG9jdW1lbnRFbGVtZW50IHx8IHhtbC5nZXRFbGVtZW50c0J5VGFnTmFtZSggXCJwYXJzZXJlcnJvclwiICkubGVuZ3RoICkge1xyXG5cdFx0XHRqUXVlcnkuZXJyb3IoIFwiSW52YWxpZCBYTUw6IFwiICsgZGF0YSApO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHhtbDtcclxuXHR9LFxyXG5cclxuXHRub29wOiBmdW5jdGlvbigpIHt9LFxyXG5cclxuXHQvLyBFdmFsdWF0ZXMgYSBzY3JpcHQgaW4gYSBnbG9iYWwgY29udGV4dFxyXG5cdC8vIFdvcmthcm91bmRzIGJhc2VkIG9uIGZpbmRpbmdzIGJ5IEppbSBEcmlzY29sbFxyXG5cdC8vIGh0dHA6Ly93ZWJsb2dzLmphdmEubmV0L2Jsb2cvZHJpc2NvbGwvYXJjaGl2ZS8yMDA5LzA5LzA4L2V2YWwtamF2YXNjcmlwdC1nbG9iYWwtY29udGV4dFxyXG5cdGdsb2JhbEV2YWw6IGZ1bmN0aW9uKCBkYXRhICkge1xyXG5cdFx0aWYgKCBkYXRhICYmIGNvcmVfcm5vdHdoaXRlLnRlc3QoIGRhdGEgKSApIHtcclxuXHRcdFx0Ly8gV2UgdXNlIGV4ZWNTY3JpcHQgb24gSW50ZXJuZXQgRXhwbG9yZXJcclxuXHRcdFx0Ly8gV2UgdXNlIGFuIGFub255bW91cyBmdW5jdGlvbiBzbyB0aGF0IGNvbnRleHQgaXMgd2luZG93XHJcblx0XHRcdC8vIHJhdGhlciB0aGFuIGpRdWVyeSBpbiBGaXJlZm94XHJcblx0XHRcdCggd2luZG93LmV4ZWNTY3JpcHQgfHwgZnVuY3Rpb24oIGRhdGEgKSB7XHJcblx0XHRcdFx0d2luZG93WyBcImV2YWxcIiBdLmNhbGwoIHdpbmRvdywgZGF0YSApO1xyXG5cdFx0XHR9ICkoIGRhdGEgKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHQvLyBDb252ZXJ0IGRhc2hlZCB0byBjYW1lbENhc2U7IHVzZWQgYnkgdGhlIGNzcyBhbmQgZGF0YSBtb2R1bGVzXHJcblx0Ly8gTWljcm9zb2Z0IGZvcmdvdCB0byBodW1wIHRoZWlyIHZlbmRvciBwcmVmaXggKCM5NTcyKVxyXG5cdGNhbWVsQ2FzZTogZnVuY3Rpb24oIHN0cmluZyApIHtcclxuXHRcdHJldHVybiBzdHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCBcIm1zLVwiICkucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApO1xyXG5cdH0sXHJcblxyXG5cdG5vZGVOYW1lOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcclxuXHRcdHJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9VcHBlckNhc2UoKSA9PT0gbmFtZS50b1VwcGVyQ2FzZSgpO1xyXG5cdH0sXHJcblxyXG5cdC8vIGFyZ3MgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcclxuXHRlYWNoOiBmdW5jdGlvbiggb2JqLCBjYWxsYmFjaywgYXJncyApIHtcclxuXHRcdHZhciBuYW1lLFxyXG5cdFx0XHRpID0gMCxcclxuXHRcdFx0bGVuZ3RoID0gb2JqLmxlbmd0aCxcclxuXHRcdFx0aXNPYmogPSBsZW5ndGggPT09IHVuZGVmaW5lZCB8fCBqUXVlcnkuaXNGdW5jdGlvbiggb2JqICk7XHJcblxyXG5cdFx0aWYgKCBhcmdzICkge1xyXG5cdFx0XHRpZiAoIGlzT2JqICkge1xyXG5cdFx0XHRcdGZvciAoIG5hbWUgaW4gb2JqICkge1xyXG5cdFx0XHRcdFx0aWYgKCBjYWxsYmFjay5hcHBseSggb2JqWyBuYW1lIF0sIGFyZ3MgKSA9PT0gZmFsc2UgKSB7XHJcblx0XHRcdFx0XHRcdGJyZWFrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7ICkge1xyXG5cdFx0XHRcdFx0aWYgKCBjYWxsYmFjay5hcHBseSggb2JqWyBpKysgXSwgYXJncyApID09PSBmYWxzZSApIHtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0Ly8gQSBzcGVjaWFsLCBmYXN0LCBjYXNlIGZvciB0aGUgbW9zdCBjb21tb24gdXNlIG9mIGVhY2hcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGlmICggaXNPYmogKSB7XHJcblx0XHRcdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XHJcblx0XHRcdFx0XHRpZiAoIGNhbGxiYWNrLmNhbGwoIG9ialsgbmFtZSBdLCBuYW1lLCBvYmpbIG5hbWUgXSApID09PSBmYWxzZSApIHtcclxuXHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgKSB7XHJcblx0XHRcdFx0XHRpZiAoIGNhbGxiYWNrLmNhbGwoIG9ialsgaSBdLCBpLCBvYmpbIGkrKyBdICkgPT09IGZhbHNlICkge1xyXG5cdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gb2JqO1xyXG5cdH0sXHJcblxyXG5cdC8vIFVzZSBuYXRpdmUgU3RyaW5nLnRyaW0gZnVuY3Rpb24gd2hlcmV2ZXIgcG9zc2libGVcclxuXHR0cmltOiBjb3JlX3RyaW0gJiYgIWNvcmVfdHJpbS5jYWxsKFwiXFx1RkVGRlxceEEwXCIpID9cclxuXHRcdGZ1bmN0aW9uKCB0ZXh0ICkge1xyXG5cdFx0XHRyZXR1cm4gdGV4dCA9PSBudWxsID9cclxuXHRcdFx0XHRcIlwiIDpcclxuXHRcdFx0XHRjb3JlX3RyaW0uY2FsbCggdGV4dCApO1xyXG5cdFx0fSA6XHJcblxyXG5cdFx0Ly8gT3RoZXJ3aXNlIHVzZSBvdXIgb3duIHRyaW1taW5nIGZ1bmN0aW9uYWxpdHlcclxuXHRcdGZ1bmN0aW9uKCB0ZXh0ICkge1xyXG5cdFx0XHRyZXR1cm4gdGV4dCA9PSBudWxsID9cclxuXHRcdFx0XHRcIlwiIDpcclxuXHRcdFx0XHR0ZXh0LnRvU3RyaW5nKCkucmVwbGFjZSggcnRyaW0sIFwiXCIgKTtcclxuXHRcdH0sXHJcblxyXG5cdC8vIHJlc3VsdHMgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcclxuXHRtYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnIsIHJlc3VsdHMgKSB7XHJcblx0XHR2YXIgdHlwZSxcclxuXHRcdFx0cmV0ID0gcmVzdWx0cyB8fCBbXTtcclxuXHJcblx0XHRpZiAoIGFyciAhPSBudWxsICkge1xyXG5cdFx0XHQvLyBUaGUgd2luZG93LCBzdHJpbmdzIChhbmQgZnVuY3Rpb25zKSBhbHNvIGhhdmUgJ2xlbmd0aCdcclxuXHRcdFx0Ly8gVHdlYWtlZCBsb2dpYyBzbGlnaHRseSB0byBoYW5kbGUgQmxhY2tiZXJyeSA0LjcgUmVnRXhwIGlzc3VlcyAjNjkzMFxyXG5cdFx0XHR0eXBlID0galF1ZXJ5LnR5cGUoIGFyciApO1xyXG5cclxuXHRcdFx0aWYgKCBhcnIubGVuZ3RoID09IG51bGwgfHwgdHlwZSA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlID09PSBcImZ1bmN0aW9uXCIgfHwgdHlwZSA9PT0gXCJyZWdleHBcIiB8fCBqUXVlcnkuaXNXaW5kb3coIGFyciApICkge1xyXG5cdFx0XHRcdGNvcmVfcHVzaC5jYWxsKCByZXQsIGFyciApO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggcmV0LCBhcnIgKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXQ7XHJcblx0fSxcclxuXHJcblx0aW5BcnJheTogZnVuY3Rpb24oIGVsZW0sIGFyciwgaSApIHtcclxuXHRcdHZhciBsZW47XHJcblxyXG5cdFx0aWYgKCBhcnIgKSB7XHJcblx0XHRcdGlmICggY29yZV9pbmRleE9mICkge1xyXG5cdFx0XHRcdHJldHVybiBjb3JlX2luZGV4T2YuY2FsbCggYXJyLCBlbGVtLCBpICk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGxlbiA9IGFyci5sZW5ndGg7XHJcblx0XHRcdGkgPSBpID8gaSA8IDAgPyBNYXRoLm1heCggMCwgbGVuICsgaSApIDogaSA6IDA7XHJcblxyXG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcclxuXHRcdFx0XHQvLyBTa2lwIGFjY2Vzc2luZyBpbiBzcGFyc2UgYXJyYXlzXHJcblx0XHRcdFx0aWYgKCBpIGluIGFyciAmJiBhcnJbIGkgXSA9PT0gZWxlbSApIHtcclxuXHRcdFx0XHRcdHJldHVybiBpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiAtMTtcclxuXHR9LFxyXG5cclxuXHRtZXJnZTogZnVuY3Rpb24oIGZpcnN0LCBzZWNvbmQgKSB7XHJcblx0XHR2YXIgbCA9IHNlY29uZC5sZW5ndGgsXHJcblx0XHRcdGkgPSBmaXJzdC5sZW5ndGgsXHJcblx0XHRcdGogPSAwO1xyXG5cclxuXHRcdGlmICggdHlwZW9mIGwgPT09IFwibnVtYmVyXCIgKSB7XHJcblx0XHRcdGZvciAoIDsgaiA8IGw7IGorKyApIHtcclxuXHRcdFx0XHRmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHdoaWxlICggc2Vjb25kW2pdICE9PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdFx0Zmlyc3RbIGkrKyBdID0gc2Vjb25kWyBqKysgXTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdGZpcnN0Lmxlbmd0aCA9IGk7XHJcblxyXG5cdFx0cmV0dXJuIGZpcnN0O1xyXG5cdH0sXHJcblxyXG5cdGdyZXA6IGZ1bmN0aW9uKCBlbGVtcywgY2FsbGJhY2ssIGludiApIHtcclxuXHRcdHZhciByZXRWYWwsXHJcblx0XHRcdHJldCA9IFtdLFxyXG5cdFx0XHRpID0gMCxcclxuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoO1xyXG5cdFx0aW52ID0gISFpbnY7XHJcblxyXG5cdFx0Ly8gR28gdGhyb3VnaCB0aGUgYXJyYXksIG9ubHkgc2F2aW5nIHRoZSBpdGVtc1xyXG5cdFx0Ly8gdGhhdCBwYXNzIHRoZSB2YWxpZGF0b3IgZnVuY3Rpb25cclxuXHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xyXG5cdFx0XHRyZXRWYWwgPSAhIWNhbGxiYWNrKCBlbGVtc1sgaSBdLCBpICk7XHJcblx0XHRcdGlmICggaW52ICE9PSByZXRWYWwgKSB7XHJcblx0XHRcdFx0cmV0LnB1c2goIGVsZW1zWyBpIF0gKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXQ7XHJcblx0fSxcclxuXHJcblx0Ly8gYXJnIGlzIGZvciBpbnRlcm5hbCB1c2FnZSBvbmx5XHJcblx0bWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7XHJcblx0XHR2YXIgdmFsdWUsIGtleSxcclxuXHRcdFx0cmV0ID0gW10sXHJcblx0XHRcdGkgPSAwLFxyXG5cdFx0XHRsZW5ndGggPSBlbGVtcy5sZW5ndGgsXHJcblx0XHRcdC8vIGpxdWVyeSBvYmplY3RzIGFyZSB0cmVhdGVkIGFzIGFycmF5c1xyXG5cdFx0XHRpc0FycmF5ID0gZWxlbXMgaW5zdGFuY2VvZiBqUXVlcnkgfHwgbGVuZ3RoICE9PSB1bmRlZmluZWQgJiYgdHlwZW9mIGxlbmd0aCA9PT0gXCJudW1iZXJcIiAmJiAoICggbGVuZ3RoID4gMCAmJiBlbGVtc1sgMCBdICYmIGVsZW1zWyBsZW5ndGggLTEgXSApIHx8IGxlbmd0aCA9PT0gMCB8fCBqUXVlcnkuaXNBcnJheSggZWxlbXMgKSApIDtcclxuXHJcblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgdHJhbnNsYXRpbmcgZWFjaCBvZiB0aGUgaXRlbXMgdG8gdGhlaXJcclxuXHRcdGlmICggaXNBcnJheSApIHtcclxuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XHJcblx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjayggZWxlbXNbIGkgXSwgaSwgYXJnICk7XHJcblxyXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcclxuXHRcdFx0XHRcdHJldFsgcmV0Lmxlbmd0aCBdID0gdmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0Ly8gR28gdGhyb3VnaCBldmVyeSBrZXkgb24gdGhlIG9iamVjdCxcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGZvciAoIGtleSBpbiBlbGVtcyApIHtcclxuXHRcdFx0XHR2YWx1ZSA9IGNhbGxiYWNrKCBlbGVtc1sga2V5IF0sIGtleSwgYXJnICk7XHJcblxyXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcclxuXHRcdFx0XHRcdHJldFsgcmV0Lmxlbmd0aCBdID0gdmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xyXG5cdFx0cmV0dXJuIHJldC5jb25jYXQuYXBwbHkoIFtdLCByZXQgKTtcclxuXHR9LFxyXG5cclxuXHQvLyBBIGdsb2JhbCBHVUlEIGNvdW50ZXIgZm9yIG9iamVjdHNcclxuXHRndWlkOiAxLFxyXG5cclxuXHQvLyBCaW5kIGEgZnVuY3Rpb24gdG8gYSBjb250ZXh0LCBvcHRpb25hbGx5IHBhcnRpYWxseSBhcHBseWluZyBhbnlcclxuXHQvLyBhcmd1bWVudHMuXHJcblx0cHJveHk6IGZ1bmN0aW9uKCBmbiwgY29udGV4dCApIHtcclxuXHRcdHZhciB0bXAsIGFyZ3MsIHByb3h5O1xyXG5cclxuXHRcdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwic3RyaW5nXCIgKSB7XHJcblx0XHRcdHRtcCA9IGZuWyBjb250ZXh0IF07XHJcblx0XHRcdGNvbnRleHQgPSBmbjtcclxuXHRcdFx0Zm4gPSB0bXA7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUXVpY2sgY2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRhcmdldCBpcyBjYWxsYWJsZSwgaW4gdGhlIHNwZWNcclxuXHRcdC8vIHRoaXMgdGhyb3dzIGEgVHlwZUVycm9yLCBidXQgd2Ugd2lsbCBqdXN0IHJldHVybiB1bmRlZmluZWQuXHJcblx0XHRpZiAoICFqUXVlcnkuaXNGdW5jdGlvbiggZm4gKSApIHtcclxuXHRcdFx0cmV0dXJuIHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBTaW11bGF0ZWQgYmluZFxyXG5cdFx0YXJncyA9IGNvcmVfc2xpY2UuY2FsbCggYXJndW1lbnRzLCAyICk7XHJcblx0XHRwcm94eSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRyZXR1cm4gZm4uYXBwbHkoIGNvbnRleHQsIGFyZ3MuY29uY2F0KCBjb3JlX3NsaWNlLmNhbGwoIGFyZ3VtZW50cyApICkgKTtcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gU2V0IHRoZSBndWlkIG9mIHVuaXF1ZSBoYW5kbGVyIHRvIHRoZSBzYW1lIG9mIG9yaWdpbmFsIGhhbmRsZXIsIHNvIGl0IGNhbiBiZSByZW1vdmVkXHJcblx0XHRwcm94eS5ndWlkID0gZm4uZ3VpZCA9IGZuLmd1aWQgfHwgcHJveHkuZ3VpZCB8fCBqUXVlcnkuZ3VpZCsrO1xyXG5cclxuXHRcdHJldHVybiBwcm94eTtcclxuXHR9LFxyXG5cclxuXHQvLyBNdWx0aWZ1bmN0aW9uYWwgbWV0aG9kIHRvIGdldCBhbmQgc2V0IHZhbHVlcyBvZiBhIGNvbGxlY3Rpb25cclxuXHQvLyBUaGUgdmFsdWUvcyBjYW4gb3B0aW9uYWxseSBiZSBleGVjdXRlZCBpZiBpdCdzIGEgZnVuY3Rpb25cclxuXHRhY2Nlc3M6IGZ1bmN0aW9uKCBlbGVtcywgZm4sIGtleSwgdmFsdWUsIGNoYWluYWJsZSwgZW1wdHlHZXQsIHBhc3MgKSB7XHJcblx0XHR2YXIgZXhlYyxcclxuXHRcdFx0YnVsayA9IGtleSA9PSBudWxsLFxyXG5cdFx0XHRpID0gMCxcclxuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoO1xyXG5cclxuXHRcdC8vIFNldHMgbWFueSB2YWx1ZXNcclxuXHRcdGlmICgga2V5ICYmIHR5cGVvZiBrZXkgPT09IFwib2JqZWN0XCIgKSB7XHJcblx0XHRcdGZvciAoIGkgaW4ga2V5ICkge1xyXG5cdFx0XHRcdGpRdWVyeS5hY2Nlc3MoIGVsZW1zLCBmbiwgaSwga2V5W2ldLCAxLCBlbXB0eUdldCwgdmFsdWUgKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjaGFpbmFibGUgPSAxO1xyXG5cclxuXHRcdC8vIFNldHMgb25lIHZhbHVlXHJcblx0XHR9IGVsc2UgaWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHQvLyBPcHRpb25hbGx5LCBmdW5jdGlvbiB2YWx1ZXMgZ2V0IGV4ZWN1dGVkIGlmIGV4ZWMgaXMgdHJ1ZVxyXG5cdFx0XHRleGVjID0gcGFzcyA9PT0gdW5kZWZpbmVkICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCB2YWx1ZSApO1xyXG5cclxuXHRcdFx0aWYgKCBidWxrICkge1xyXG5cdFx0XHRcdC8vIEJ1bGsgb3BlcmF0aW9ucyBvbmx5IGl0ZXJhdGUgd2hlbiBleGVjdXRpbmcgZnVuY3Rpb24gdmFsdWVzXHJcblx0XHRcdFx0aWYgKCBleGVjICkge1xyXG5cdFx0XHRcdFx0ZXhlYyA9IGZuO1xyXG5cdFx0XHRcdFx0Zm4gPSBmdW5jdGlvbiggZWxlbSwga2V5LCB2YWx1ZSApIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGV4ZWMuY2FsbCggalF1ZXJ5KCBlbGVtICksIHZhbHVlICk7XHJcblx0XHRcdFx0XHR9O1xyXG5cclxuXHRcdFx0XHQvLyBPdGhlcndpc2UgdGhleSBydW4gYWdhaW5zdCB0aGUgZW50aXJlIHNldFxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRmbi5jYWxsKCBlbGVtcywgdmFsdWUgKTtcclxuXHRcdFx0XHRcdGZuID0gbnVsbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICggZm4gKSB7XHJcblx0XHRcdFx0Zm9yICg7IGkgPCBsZW5ndGg7IGkrKyApIHtcclxuXHRcdFx0XHRcdGZuKCBlbGVtc1tpXSwga2V5LCBleGVjID8gdmFsdWUuY2FsbCggZWxlbXNbaV0sIGksIGZuKCBlbGVtc1tpXSwga2V5ICkgKSA6IHZhbHVlLCBwYXNzICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjaGFpbmFibGUgPSAxO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBjaGFpbmFibGUgP1xyXG5cdFx0XHRlbGVtcyA6XHJcblxyXG5cdFx0XHQvLyBHZXRzXHJcblx0XHRcdGJ1bGsgP1xyXG5cdFx0XHRcdGZuLmNhbGwoIGVsZW1zICkgOlxyXG5cdFx0XHRcdGxlbmd0aCA/IGZuKCBlbGVtc1swXSwga2V5ICkgOiBlbXB0eUdldDtcclxuXHR9LFxyXG5cclxuXHRub3c6IGZ1bmN0aW9uKCkge1xyXG5cdFx0cmV0dXJuICggbmV3IERhdGUoKSApLmdldFRpbWUoKTtcclxuXHR9XHJcbn0pO1xyXG5cclxualF1ZXJ5LnJlYWR5LnByb21pc2UgPSBmdW5jdGlvbiggb2JqICkge1xyXG5cdGlmICggIXJlYWR5TGlzdCApIHtcclxuXHJcblx0XHRyZWFkeUxpc3QgPSBqUXVlcnkuRGVmZXJyZWQoKTtcclxuXHJcblx0XHQvLyBDYXRjaCBjYXNlcyB3aGVyZSAkKGRvY3VtZW50KS5yZWFkeSgpIGlzIGNhbGxlZCBhZnRlciB0aGUgYnJvd3NlciBldmVudCBoYXMgYWxyZWFkeSBvY2N1cnJlZC5cclxuXHRcdC8vIHdlIG9uY2UgdHJpZWQgdG8gdXNlIHJlYWR5U3RhdGUgXCJpbnRlcmFjdGl2ZVwiIGhlcmUsIGJ1dCBpdCBjYXVzZWQgaXNzdWVzIGxpa2UgdGhlIG9uZVxyXG5cdFx0Ly8gZGlzY292ZXJlZCBieSBDaHJpc1MgaGVyZTogaHR0cDovL2J1Z3MuanF1ZXJ5LmNvbS90aWNrZXQvMTIyODIjY29tbWVudDoxNVxyXG5cdFx0aWYgKCBkb2N1bWVudC5yZWFkeVN0YXRlID09PSBcImNvbXBsZXRlXCIgKSB7XHJcblx0XHRcdC8vIEhhbmRsZSBpdCBhc3luY2hyb25vdXNseSB0byBhbGxvdyBzY3JpcHRzIHRoZSBvcHBvcnR1bml0eSB0byBkZWxheSByZWFkeVxyXG5cdFx0XHRzZXRUaW1lb3V0KCBqUXVlcnkucmVhZHksIDEgKTtcclxuXHJcblx0XHQvLyBTdGFuZGFyZHMtYmFzZWQgYnJvd3NlcnMgc3VwcG9ydCBET01Db250ZW50TG9hZGVkXHJcblx0XHR9IGVsc2UgaWYgKCBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyICkge1xyXG5cdFx0XHQvLyBVc2UgdGhlIGhhbmR5IGV2ZW50IGNhbGxiYWNrXHJcblx0XHRcdGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIFwiRE9NQ29udGVudExvYWRlZFwiLCBET01Db250ZW50TG9hZGVkLCBmYWxzZSApO1xyXG5cclxuXHRcdFx0Ly8gQSBmYWxsYmFjayB0byB3aW5kb3cub25sb2FkLCB0aGF0IHdpbGwgYWx3YXlzIHdvcmtcclxuXHRcdFx0d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIFwibG9hZFwiLCBqUXVlcnkucmVhZHksIGZhbHNlICk7XHJcblxyXG5cdFx0Ly8gSWYgSUUgZXZlbnQgbW9kZWwgaXMgdXNlZFxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gRW5zdXJlIGZpcmluZyBiZWZvcmUgb25sb2FkLCBtYXliZSBsYXRlIGJ1dCBzYWZlIGFsc28gZm9yIGlmcmFtZXNcclxuXHRcdFx0ZG9jdW1lbnQuYXR0YWNoRXZlbnQoIFwib25yZWFkeXN0YXRlY2hhbmdlXCIsIERPTUNvbnRlbnRMb2FkZWQgKTtcclxuXHJcblx0XHRcdC8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrXHJcblx0XHRcdHdpbmRvdy5hdHRhY2hFdmVudCggXCJvbmxvYWRcIiwgalF1ZXJ5LnJlYWR5ICk7XHJcblxyXG5cdFx0XHQvLyBJZiBJRSBhbmQgbm90IGEgZnJhbWVcclxuXHRcdFx0Ly8gY29udGludWFsbHkgY2hlY2sgdG8gc2VlIGlmIHRoZSBkb2N1bWVudCBpcyByZWFkeVxyXG5cdFx0XHR2YXIgdG9wID0gZmFsc2U7XHJcblxyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHRvcCA9IHdpbmRvdy5mcmFtZUVsZW1lbnQgPT0gbnVsbCAmJiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcblx0XHRcdH0gY2F0Y2goZSkge31cclxuXHJcblx0XHRcdGlmICggdG9wICYmIHRvcC5kb1Njcm9sbCApIHtcclxuXHRcdFx0XHQoZnVuY3Rpb24gZG9TY3JvbGxDaGVjaygpIHtcclxuXHRcdFx0XHRcdGlmICggIWpRdWVyeS5pc1JlYWR5ICkge1xyXG5cclxuXHRcdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0XHQvLyBVc2UgdGhlIHRyaWNrIGJ5IERpZWdvIFBlcmluaVxyXG5cdFx0XHRcdFx0XHRcdC8vIGh0dHA6Ly9qYXZhc2NyaXB0Lm53Ym94LmNvbS9JRUNvbnRlbnRMb2FkZWQvXHJcblx0XHRcdFx0XHRcdFx0dG9wLmRvU2Nyb2xsKFwibGVmdFwiKTtcclxuXHRcdFx0XHRcdFx0fSBjYXRjaChlKSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHNldFRpbWVvdXQoIGRvU2Nyb2xsQ2hlY2ssIDUwICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIGFuZCBleGVjdXRlIGFueSB3YWl0aW5nIGZ1bmN0aW9uc1xyXG5cdFx0XHRcdFx0XHRqUXVlcnkucmVhZHkoKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9KSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdHJldHVybiByZWFkeUxpc3QucHJvbWlzZSggb2JqICk7XHJcbn07XHJcblxyXG4vLyBQb3B1bGF0ZSB0aGUgY2xhc3MydHlwZSBtYXBcclxualF1ZXJ5LmVhY2goXCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0XCIuc3BsaXQoXCIgXCIpLCBmdW5jdGlvbihpLCBuYW1lKSB7XHJcblx0Y2xhc3MydHlwZVsgXCJbb2JqZWN0IFwiICsgbmFtZSArIFwiXVwiIF0gPSBuYW1lLnRvTG93ZXJDYXNlKCk7XHJcbn0pO1xyXG5cclxuLy8gQWxsIGpRdWVyeSBvYmplY3RzIHNob3VsZCBwb2ludCBiYWNrIHRvIHRoZXNlXHJcbnJvb3RqUXVlcnkgPSBqUXVlcnkoZG9jdW1lbnQpO1xyXG4vLyBTdHJpbmcgdG8gT2JqZWN0IG9wdGlvbnMgZm9ybWF0IGNhY2hlXHJcbnZhciBvcHRpb25zQ2FjaGUgPSB7fTtcclxuXHJcbi8vIENvbnZlcnQgU3RyaW5nLWZvcm1hdHRlZCBvcHRpb25zIGludG8gT2JqZWN0LWZvcm1hdHRlZCBvbmVzIGFuZCBzdG9yZSBpbiBjYWNoZVxyXG5mdW5jdGlvbiBjcmVhdGVPcHRpb25zKCBvcHRpb25zICkge1xyXG5cdHZhciBvYmplY3QgPSBvcHRpb25zQ2FjaGVbIG9wdGlvbnMgXSA9IHt9O1xyXG5cdGpRdWVyeS5lYWNoKCBvcHRpb25zLnNwbGl0KCBjb3JlX3JzcGFjZSApLCBmdW5jdGlvbiggXywgZmxhZyApIHtcclxuXHRcdG9iamVjdFsgZmxhZyBdID0gdHJ1ZTtcclxuXHR9KTtcclxuXHRyZXR1cm4gb2JqZWN0O1xyXG59XHJcblxyXG4vKlxyXG4gKiBDcmVhdGUgYSBjYWxsYmFjayBsaXN0IHVzaW5nIHRoZSBmb2xsb3dpbmcgcGFyYW1ldGVyczpcclxuICpcclxuICpcdG9wdGlvbnM6IGFuIG9wdGlvbmFsIGxpc3Qgb2Ygc3BhY2Utc2VwYXJhdGVkIG9wdGlvbnMgdGhhdCB3aWxsIGNoYW5nZSBob3dcclxuICpcdFx0XHR0aGUgY2FsbGJhY2sgbGlzdCBiZWhhdmVzIG9yIGEgbW9yZSB0cmFkaXRpb25hbCBvcHRpb24gb2JqZWN0XHJcbiAqXHJcbiAqIEJ5IGRlZmF1bHQgYSBjYWxsYmFjayBsaXN0IHdpbGwgYWN0IGxpa2UgYW4gZXZlbnQgY2FsbGJhY2sgbGlzdCBhbmQgY2FuIGJlXHJcbiAqIFwiZmlyZWRcIiBtdWx0aXBsZSB0aW1lcy5cclxuICpcclxuICogUG9zc2libGUgb3B0aW9uczpcclxuICpcclxuICpcdG9uY2U6XHRcdFx0d2lsbCBlbnN1cmUgdGhlIGNhbGxiYWNrIGxpc3QgY2FuIG9ubHkgYmUgZmlyZWQgb25jZSAobGlrZSBhIERlZmVycmVkKVxyXG4gKlxyXG4gKlx0bWVtb3J5Olx0XHRcdHdpbGwga2VlcCB0cmFjayBvZiBwcmV2aW91cyB2YWx1ZXMgYW5kIHdpbGwgY2FsbCBhbnkgY2FsbGJhY2sgYWRkZWRcclxuICpcdFx0XHRcdFx0YWZ0ZXIgdGhlIGxpc3QgaGFzIGJlZW4gZmlyZWQgcmlnaHQgYXdheSB3aXRoIHRoZSBsYXRlc3QgXCJtZW1vcml6ZWRcIlxyXG4gKlx0XHRcdFx0XHR2YWx1ZXMgKGxpa2UgYSBEZWZlcnJlZClcclxuICpcclxuICpcdHVuaXF1ZTpcdFx0XHR3aWxsIGVuc3VyZSBhIGNhbGxiYWNrIGNhbiBvbmx5IGJlIGFkZGVkIG9uY2UgKG5vIGR1cGxpY2F0ZSBpbiB0aGUgbGlzdClcclxuICpcclxuICpcdHN0b3BPbkZhbHNlOlx0aW50ZXJydXB0IGNhbGxpbmdzIHdoZW4gYSBjYWxsYmFjayByZXR1cm5zIGZhbHNlXHJcbiAqXHJcbiAqL1xyXG5qUXVlcnkuQ2FsbGJhY2tzID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7XHJcblxyXG5cdC8vIENvbnZlcnQgb3B0aW9ucyBmcm9tIFN0cmluZy1mb3JtYXR0ZWQgdG8gT2JqZWN0LWZvcm1hdHRlZCBpZiBuZWVkZWRcclxuXHQvLyAod2UgY2hlY2sgaW4gY2FjaGUgZmlyc3QpXHJcblx0b3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiID9cclxuXHRcdCggb3B0aW9uc0NhY2hlWyBvcHRpb25zIF0gfHwgY3JlYXRlT3B0aW9ucyggb3B0aW9ucyApICkgOlxyXG5cdFx0alF1ZXJ5LmV4dGVuZCgge30sIG9wdGlvbnMgKTtcclxuXHJcblx0dmFyIC8vIExhc3QgZmlyZSB2YWx1ZSAoZm9yIG5vbi1mb3JnZXR0YWJsZSBsaXN0cylcclxuXHRcdG1lbW9yeSxcclxuXHRcdC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IHdhcyBhbHJlYWR5IGZpcmVkXHJcblx0XHRmaXJlZCxcclxuXHRcdC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IGlzIGN1cnJlbnRseSBmaXJpbmdcclxuXHRcdGZpcmluZyxcclxuXHRcdC8vIEZpcnN0IGNhbGxiYWNrIHRvIGZpcmUgKHVzZWQgaW50ZXJuYWxseSBieSBhZGQgYW5kIGZpcmVXaXRoKVxyXG5cdFx0ZmlyaW5nU3RhcnQsXHJcblx0XHQvLyBFbmQgb2YgdGhlIGxvb3Agd2hlbiBmaXJpbmdcclxuXHRcdGZpcmluZ0xlbmd0aCxcclxuXHRcdC8vIEluZGV4IG9mIGN1cnJlbnRseSBmaXJpbmcgY2FsbGJhY2sgKG1vZGlmaWVkIGJ5IHJlbW92ZSBpZiBuZWVkZWQpXHJcblx0XHRmaXJpbmdJbmRleCxcclxuXHRcdC8vIEFjdHVhbCBjYWxsYmFjayBsaXN0XHJcblx0XHRsaXN0ID0gW10sXHJcblx0XHQvLyBTdGFjayBvZiBmaXJlIGNhbGxzIGZvciByZXBlYXRhYmxlIGxpc3RzXHJcblx0XHRzdGFjayA9ICFvcHRpb25zLm9uY2UgJiYgW10sXHJcblx0XHQvLyBGaXJlIGNhbGxiYWNrc1xyXG5cdFx0ZmlyZSA9IGZ1bmN0aW9uKCBkYXRhICkge1xyXG5cdFx0XHRtZW1vcnkgPSBvcHRpb25zLm1lbW9yeSAmJiBkYXRhO1xyXG5cdFx0XHRmaXJlZCA9IHRydWU7XHJcblx0XHRcdGZpcmluZ0luZGV4ID0gZmlyaW5nU3RhcnQgfHwgMDtcclxuXHRcdFx0ZmlyaW5nU3RhcnQgPSAwO1xyXG5cdFx0XHRmaXJpbmdMZW5ndGggPSBsaXN0Lmxlbmd0aDtcclxuXHRcdFx0ZmlyaW5nID0gdHJ1ZTtcclxuXHRcdFx0Zm9yICggOyBsaXN0ICYmIGZpcmluZ0luZGV4IDwgZmlyaW5nTGVuZ3RoOyBmaXJpbmdJbmRleCsrICkge1xyXG5cdFx0XHRcdGlmICggbGlzdFsgZmlyaW5nSW5kZXggXS5hcHBseSggZGF0YVsgMCBdLCBkYXRhWyAxIF0gKSA9PT0gZmFsc2UgJiYgb3B0aW9ucy5zdG9wT25GYWxzZSApIHtcclxuXHRcdFx0XHRcdG1lbW9yeSA9IGZhbHNlOyAvLyBUbyBwcmV2ZW50IGZ1cnRoZXIgY2FsbHMgdXNpbmcgYWRkXHJcblx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0ZmlyaW5nID0gZmFsc2U7XHJcblx0XHRcdGlmICggbGlzdCApIHtcclxuXHRcdFx0XHRpZiAoIHN0YWNrICkge1xyXG5cdFx0XHRcdFx0aWYgKCBzdGFjay5sZW5ndGggKSB7XHJcblx0XHRcdFx0XHRcdGZpcmUoIHN0YWNrLnNoaWZ0KCkgKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBtZW1vcnkgKSB7XHJcblx0XHRcdFx0XHRsaXN0ID0gW107XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHNlbGYuZGlzYWJsZSgpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdC8vIEFjdHVhbCBDYWxsYmFja3Mgb2JqZWN0XHJcblx0XHRzZWxmID0ge1xyXG5cdFx0XHQvLyBBZGQgYSBjYWxsYmFjayBvciBhIGNvbGxlY3Rpb24gb2YgY2FsbGJhY2tzIHRvIHRoZSBsaXN0XHJcblx0XHRcdGFkZDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xyXG5cdFx0XHRcdFx0Ly8gRmlyc3QsIHdlIHNhdmUgdGhlIGN1cnJlbnQgbGVuZ3RoXHJcblx0XHRcdFx0XHR2YXIgc3RhcnQgPSBsaXN0Lmxlbmd0aDtcclxuXHRcdFx0XHRcdChmdW5jdGlvbiBhZGQoIGFyZ3MgKSB7XHJcblx0XHRcdFx0XHRcdGpRdWVyeS5lYWNoKCBhcmdzLCBmdW5jdGlvbiggXywgYXJnICkge1xyXG5cdFx0XHRcdFx0XHRcdHZhciB0eXBlID0galF1ZXJ5LnR5cGUoIGFyZyApO1xyXG5cdFx0XHRcdFx0XHRcdGlmICggdHlwZSA9PT0gXCJmdW5jdGlvblwiICYmICggIW9wdGlvbnMudW5pcXVlIHx8ICFzZWxmLmhhcyggYXJnICkgKSApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGxpc3QucHVzaCggYXJnICk7XHJcblx0XHRcdFx0XHRcdFx0fSBlbHNlIGlmICggYXJnICYmIGFyZy5sZW5ndGggJiYgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0XHRcdFx0XHRcdC8vIEluc3BlY3QgcmVjdXJzaXZlbHlcclxuXHRcdFx0XHRcdFx0XHRcdGFkZCggYXJnICk7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdH0pKCBhcmd1bWVudHMgKTtcclxuXHRcdFx0XHRcdC8vIERvIHdlIG5lZWQgdG8gYWRkIHRoZSBjYWxsYmFja3MgdG8gdGhlXHJcblx0XHRcdFx0XHQvLyBjdXJyZW50IGZpcmluZyBiYXRjaD9cclxuXHRcdFx0XHRcdGlmICggZmlyaW5nICkge1xyXG5cdFx0XHRcdFx0XHRmaXJpbmdMZW5ndGggPSBsaXN0Lmxlbmd0aDtcclxuXHRcdFx0XHRcdC8vIFdpdGggbWVtb3J5LCBpZiB3ZSdyZSBub3QgZmlyaW5nIHRoZW5cclxuXHRcdFx0XHRcdC8vIHdlIHNob3VsZCBjYWxsIHJpZ2h0IGF3YXlcclxuXHRcdFx0XHRcdH0gZWxzZSBpZiAoIG1lbW9yeSApIHtcclxuXHRcdFx0XHRcdFx0ZmlyaW5nU3RhcnQgPSBzdGFydDtcclxuXHRcdFx0XHRcdFx0ZmlyZSggbWVtb3J5ICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyBSZW1vdmUgYSBjYWxsYmFjayBmcm9tIHRoZSBsaXN0XHJcblx0XHRcdHJlbW92ZTogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0aWYgKCBsaXN0ICkge1xyXG5cdFx0XHRcdFx0alF1ZXJ5LmVhY2goIGFyZ3VtZW50cywgZnVuY3Rpb24oIF8sIGFyZyApIHtcclxuXHRcdFx0XHRcdFx0dmFyIGluZGV4O1xyXG5cdFx0XHRcdFx0XHR3aGlsZSggKCBpbmRleCA9IGpRdWVyeS5pbkFycmF5KCBhcmcsIGxpc3QsIGluZGV4ICkgKSA+IC0xICkge1xyXG5cdFx0XHRcdFx0XHRcdGxpc3Quc3BsaWNlKCBpbmRleCwgMSApO1xyXG5cdFx0XHRcdFx0XHRcdC8vIEhhbmRsZSBmaXJpbmcgaW5kZXhlc1xyXG5cdFx0XHRcdFx0XHRcdGlmICggZmlyaW5nICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBpbmRleCA8PSBmaXJpbmdMZW5ndGggKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGZpcmluZ0xlbmd0aC0tO1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBpbmRleCA8PSBmaXJpbmdJbmRleCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZmlyaW5nSW5kZXgtLTtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gQ29udHJvbCBpZiBhIGdpdmVuIGNhbGxiYWNrIGlzIGluIHRoZSBsaXN0XHJcblx0XHRcdGhhczogZnVuY3Rpb24oIGZuICkge1xyXG5cdFx0XHRcdHJldHVybiBqUXVlcnkuaW5BcnJheSggZm4sIGxpc3QgKSA+IC0xO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyBSZW1vdmUgYWxsIGNhbGxiYWNrcyBmcm9tIHRoZSBsaXN0XHJcblx0XHRcdGVtcHR5OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRsaXN0ID0gW107XHJcblx0XHRcdFx0cmV0dXJuIHRoaXM7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIEhhdmUgdGhlIGxpc3QgZG8gbm90aGluZyBhbnltb3JlXHJcblx0XHRcdGRpc2FibGU6IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGxpc3QgPSBzdGFjayA9IG1lbW9yeSA9IHVuZGVmaW5lZDtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gSXMgaXQgZGlzYWJsZWQ/XHJcblx0XHRcdGRpc2FibGVkOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gIWxpc3Q7XHJcblx0XHRcdH0sXHJcblx0XHRcdC8vIExvY2sgdGhlIGxpc3QgaW4gaXRzIGN1cnJlbnQgc3RhdGVcclxuXHRcdFx0bG9jazogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0c3RhY2sgPSB1bmRlZmluZWQ7XHJcblx0XHRcdFx0aWYgKCAhbWVtb3J5ICkge1xyXG5cdFx0XHRcdFx0c2VsZi5kaXNhYmxlKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyBJcyBpdCBsb2NrZWQ/XHJcblx0XHRcdGxvY2tlZDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0cmV0dXJuICFzdGFjaztcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gQ2FsbCBhbGwgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGNvbnRleHQgYW5kIGFyZ3VtZW50c1xyXG5cdFx0XHRmaXJlV2l0aDogZnVuY3Rpb24oIGNvbnRleHQsIGFyZ3MgKSB7XHJcblx0XHRcdFx0YXJncyA9IGFyZ3MgfHwgW107XHJcblx0XHRcdFx0YXJncyA9IFsgY29udGV4dCwgYXJncy5zbGljZSA/IGFyZ3Muc2xpY2UoKSA6IGFyZ3MgXTtcclxuXHRcdFx0XHRpZiAoIGxpc3QgJiYgKCAhZmlyZWQgfHwgc3RhY2sgKSApIHtcclxuXHRcdFx0XHRcdGlmICggZmlyaW5nICkge1xyXG5cdFx0XHRcdFx0XHRzdGFjay5wdXNoKCBhcmdzICk7XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRmaXJlKCBhcmdzICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHQvLyBDYWxsIGFsbCB0aGUgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50c1xyXG5cdFx0XHRmaXJlOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRzZWxmLmZpcmVXaXRoKCB0aGlzLCBhcmd1bWVudHMgKTtcclxuXHRcdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdFx0fSxcclxuXHRcdFx0Ly8gVG8ga25vdyBpZiB0aGUgY2FsbGJhY2tzIGhhdmUgYWxyZWFkeSBiZWVuIGNhbGxlZCBhdCBsZWFzdCBvbmNlXHJcblx0XHRcdGZpcmVkOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRyZXR1cm4gISFmaXJlZDtcclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0cmV0dXJuIHNlbGY7XHJcbn07XHJcbmpRdWVyeS5leHRlbmQoe1xyXG5cclxuXHREZWZlcnJlZDogZnVuY3Rpb24oIGZ1bmMgKSB7XHJcblx0XHR2YXIgdHVwbGVzID0gW1xyXG5cdFx0XHRcdC8vIGFjdGlvbiwgYWRkIGxpc3RlbmVyLCBsaXN0ZW5lciBsaXN0LCBmaW5hbCBzdGF0ZVxyXG5cdFx0XHRcdFsgXCJyZXNvbHZlXCIsIFwiZG9uZVwiLCBqUXVlcnkuQ2FsbGJhY2tzKFwib25jZSBtZW1vcnlcIiksIFwicmVzb2x2ZWRcIiBdLFxyXG5cdFx0XHRcdFsgXCJyZWplY3RcIiwgXCJmYWlsXCIsIGpRdWVyeS5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKSwgXCJyZWplY3RlZFwiIF0sXHJcblx0XHRcdFx0WyBcIm5vdGlmeVwiLCBcInByb2dyZXNzXCIsIGpRdWVyeS5DYWxsYmFja3MoXCJtZW1vcnlcIikgXVxyXG5cdFx0XHRdLFxyXG5cdFx0XHRzdGF0ZSA9IFwicGVuZGluZ1wiLFxyXG5cdFx0XHRwcm9taXNlID0ge1xyXG5cdFx0XHRcdHN0YXRlOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdHJldHVybiBzdGF0ZTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdGFsd2F5czogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRkZWZlcnJlZC5kb25lKCBhcmd1bWVudHMgKS5mYWlsKCBhcmd1bWVudHMgKTtcclxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0dGhlbjogZnVuY3Rpb24oIC8qIGZuRG9uZSwgZm5GYWlsLCBmblByb2dyZXNzICovICkge1xyXG5cdFx0XHRcdFx0dmFyIGZucyA9IGFyZ3VtZW50cztcclxuXHRcdFx0XHRcdHJldHVybiBqUXVlcnkuRGVmZXJyZWQoZnVuY3Rpb24oIG5ld0RlZmVyICkge1xyXG5cdFx0XHRcdFx0XHRqUXVlcnkuZWFjaCggdHVwbGVzLCBmdW5jdGlvbiggaSwgdHVwbGUgKSB7XHJcblx0XHRcdFx0XHRcdFx0dmFyIGFjdGlvbiA9IHR1cGxlWyAwIF0sXHJcblx0XHRcdFx0XHRcdFx0XHRmbiA9IGZuc1sgaSBdO1xyXG5cdFx0XHRcdFx0XHRcdC8vIGRlZmVycmVkWyBkb25lIHwgZmFpbCB8IHByb2dyZXNzIF0gZm9yIGZvcndhcmRpbmcgYWN0aW9ucyB0byBuZXdEZWZlclxyXG5cdFx0XHRcdFx0XHRcdGRlZmVycmVkWyB0dXBsZVsxXSBdKCBqUXVlcnkuaXNGdW5jdGlvbiggZm4gKSA/XHJcblx0XHRcdFx0XHRcdFx0XHRmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkID0gZm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIHJldHVybmVkICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCByZXR1cm5lZC5wcm9taXNlICkgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQucHJvbWlzZSgpXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQuZG9uZSggbmV3RGVmZXIucmVzb2x2ZSApXHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQuZmFpbCggbmV3RGVmZXIucmVqZWN0IClcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC5wcm9ncmVzcyggbmV3RGVmZXIubm90aWZ5ICk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXJbIGFjdGlvbiArIFwiV2l0aFwiIF0oIHRoaXMgPT09IGRlZmVycmVkID8gbmV3RGVmZXIgOiB0aGlzLCBbIHJldHVybmVkIF0gKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fSA6XHJcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlclsgYWN0aW9uIF1cclxuXHRcdFx0XHRcdFx0XHQpO1xyXG5cdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0Zm5zID0gbnVsbDtcclxuXHRcdFx0XHRcdH0pLnByb21pc2UoKTtcclxuXHRcdFx0XHR9LFxyXG5cdFx0XHRcdC8vIEdldCBhIHByb21pc2UgZm9yIHRoaXMgZGVmZXJyZWRcclxuXHRcdFx0XHQvLyBJZiBvYmogaXMgcHJvdmlkZWQsIHRoZSBwcm9taXNlIGFzcGVjdCBpcyBhZGRlZCB0byB0aGUgb2JqZWN0XHJcblx0XHRcdFx0cHJvbWlzZTogZnVuY3Rpb24oIG9iaiApIHtcclxuXHRcdFx0XHRcdHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiID8galF1ZXJ5LmV4dGVuZCggb2JqLCBwcm9taXNlICkgOiBwcm9taXNlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0ZGVmZXJyZWQgPSB7fTtcclxuXHJcblx0XHQvLyBLZWVwIHBpcGUgZm9yIGJhY2stY29tcGF0XHJcblx0XHRwcm9taXNlLnBpcGUgPSBwcm9taXNlLnRoZW47XHJcblxyXG5cdFx0Ly8gQWRkIGxpc3Qtc3BlY2lmaWMgbWV0aG9kc1xyXG5cdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIGksIHR1cGxlICkge1xyXG5cdFx0XHR2YXIgbGlzdCA9IHR1cGxlWyAyIF0sXHJcblx0XHRcdFx0c3RhdGVTdHJpbmcgPSB0dXBsZVsgMyBdO1xyXG5cclxuXHRcdFx0Ly8gcHJvbWlzZVsgZG9uZSB8IGZhaWwgfCBwcm9ncmVzcyBdID0gbGlzdC5hZGRcclxuXHRcdFx0cHJvbWlzZVsgdHVwbGVbMV0gXSA9IGxpc3QuYWRkO1xyXG5cclxuXHRcdFx0Ly8gSGFuZGxlIHN0YXRlXHJcblx0XHRcdGlmICggc3RhdGVTdHJpbmcgKSB7XHJcblx0XHRcdFx0bGlzdC5hZGQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHQvLyBzdGF0ZSA9IFsgcmVzb2x2ZWQgfCByZWplY3RlZCBdXHJcblx0XHRcdFx0XHRzdGF0ZSA9IHN0YXRlU3RyaW5nO1xyXG5cclxuXHRcdFx0XHQvLyBbIHJlamVjdF9saXN0IHwgcmVzb2x2ZV9saXN0IF0uZGlzYWJsZTsgcHJvZ3Jlc3NfbGlzdC5sb2NrXHJcblx0XHRcdFx0fSwgdHVwbGVzWyBpIF4gMSBdWyAyIF0uZGlzYWJsZSwgdHVwbGVzWyAyIF1bIDIgXS5sb2NrICk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIGRlZmVycmVkWyByZXNvbHZlIHwgcmVqZWN0IHwgbm90aWZ5IF0gPSBsaXN0LmZpcmVcclxuXHRcdFx0ZGVmZXJyZWRbIHR1cGxlWzBdIF0gPSBsaXN0LmZpcmU7XHJcblx0XHRcdGRlZmVycmVkWyB0dXBsZVswXSArIFwiV2l0aFwiIF0gPSBsaXN0LmZpcmVXaXRoO1xyXG5cdFx0fSk7XHJcblxyXG5cdFx0Ly8gTWFrZSB0aGUgZGVmZXJyZWQgYSBwcm9taXNlXHJcblx0XHRwcm9taXNlLnByb21pc2UoIGRlZmVycmVkICk7XHJcblxyXG5cdFx0Ly8gQ2FsbCBnaXZlbiBmdW5jIGlmIGFueVxyXG5cdFx0aWYgKCBmdW5jICkge1xyXG5cdFx0XHRmdW5jLmNhbGwoIGRlZmVycmVkLCBkZWZlcnJlZCApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEFsbCBkb25lIVxyXG5cdFx0cmV0dXJuIGRlZmVycmVkO1xyXG5cdH0sXHJcblxyXG5cdC8vIERlZmVycmVkIGhlbHBlclxyXG5cdHdoZW46IGZ1bmN0aW9uKCBzdWJvcmRpbmF0ZSAvKiAsIC4uLiwgc3Vib3JkaW5hdGVOICovICkge1xyXG5cdFx0dmFyIGkgPSAwLFxyXG5cdFx0XHRyZXNvbHZlVmFsdWVzID0gY29yZV9zbGljZS5jYWxsKCBhcmd1bWVudHMgKSxcclxuXHRcdFx0bGVuZ3RoID0gcmVzb2x2ZVZhbHVlcy5sZW5ndGgsXHJcblxyXG5cdFx0XHQvLyB0aGUgY291bnQgb2YgdW5jb21wbGV0ZWQgc3Vib3JkaW5hdGVzXHJcblx0XHRcdHJlbWFpbmluZyA9IGxlbmd0aCAhPT0gMSB8fCAoIHN1Ym9yZGluYXRlICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBzdWJvcmRpbmF0ZS5wcm9taXNlICkgKSA/IGxlbmd0aCA6IDAsXHJcblxyXG5cdFx0XHQvLyB0aGUgbWFzdGVyIERlZmVycmVkLiBJZiByZXNvbHZlVmFsdWVzIGNvbnNpc3Qgb2Ygb25seSBhIHNpbmdsZSBEZWZlcnJlZCwganVzdCB1c2UgdGhhdC5cclxuXHRcdFx0ZGVmZXJyZWQgPSByZW1haW5pbmcgPT09IDEgPyBzdWJvcmRpbmF0ZSA6IGpRdWVyeS5EZWZlcnJlZCgpLFxyXG5cclxuXHRcdFx0Ly8gVXBkYXRlIGZ1bmN0aW9uIGZvciBib3RoIHJlc29sdmUgYW5kIHByb2dyZXNzIHZhbHVlc1xyXG5cdFx0XHR1cGRhdGVGdW5jID0gZnVuY3Rpb24oIGksIGNvbnRleHRzLCB2YWx1ZXMgKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCB2YWx1ZSApIHtcclxuXHRcdFx0XHRcdGNvbnRleHRzWyBpIF0gPSB0aGlzO1xyXG5cdFx0XHRcdFx0dmFsdWVzWyBpIF0gPSBhcmd1bWVudHMubGVuZ3RoID4gMSA/IGNvcmVfc2xpY2UuY2FsbCggYXJndW1lbnRzICkgOiB2YWx1ZTtcclxuXHRcdFx0XHRcdGlmKCB2YWx1ZXMgPT09IHByb2dyZXNzVmFsdWVzICkge1xyXG5cdFx0XHRcdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBjb250ZXh0cywgdmFsdWVzICk7XHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKCAhKCAtLXJlbWFpbmluZyApICkge1xyXG5cdFx0XHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggY29udGV4dHMsIHZhbHVlcyApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH07XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRwcm9ncmVzc1ZhbHVlcywgcHJvZ3Jlc3NDb250ZXh0cywgcmVzb2x2ZUNvbnRleHRzO1xyXG5cclxuXHRcdC8vIGFkZCBsaXN0ZW5lcnMgdG8gRGVmZXJyZWQgc3Vib3JkaW5hdGVzOyB0cmVhdCBvdGhlcnMgYXMgcmVzb2x2ZWRcclxuXHRcdGlmICggbGVuZ3RoID4gMSApIHtcclxuXHRcdFx0cHJvZ3Jlc3NWYWx1ZXMgPSBuZXcgQXJyYXkoIGxlbmd0aCApO1xyXG5cdFx0XHRwcm9ncmVzc0NvbnRleHRzID0gbmV3IEFycmF5KCBsZW5ndGggKTtcclxuXHRcdFx0cmVzb2x2ZUNvbnRleHRzID0gbmV3IEFycmF5KCBsZW5ndGggKTtcclxuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XHJcblx0XHRcdFx0aWYgKCByZXNvbHZlVmFsdWVzWyBpIF0gJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIHJlc29sdmVWYWx1ZXNbIGkgXS5wcm9taXNlICkgKSB7XHJcblx0XHRcdFx0XHRyZXNvbHZlVmFsdWVzWyBpIF0ucHJvbWlzZSgpXHJcblx0XHRcdFx0XHRcdC5kb25lKCB1cGRhdGVGdW5jKCBpLCByZXNvbHZlQ29udGV4dHMsIHJlc29sdmVWYWx1ZXMgKSApXHJcblx0XHRcdFx0XHRcdC5mYWlsKCBkZWZlcnJlZC5yZWplY3QgKVxyXG5cdFx0XHRcdFx0XHQucHJvZ3Jlc3MoIHVwZGF0ZUZ1bmMoIGksIHByb2dyZXNzQ29udGV4dHMsIHByb2dyZXNzVmFsdWVzICkgKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0LS1yZW1haW5pbmc7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gaWYgd2UncmUgbm90IHdhaXRpbmcgb24gYW55dGhpbmcsIHJlc29sdmUgdGhlIG1hc3RlclxyXG5cdFx0aWYgKCAhcmVtYWluaW5nICkge1xyXG5cdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggcmVzb2x2ZUNvbnRleHRzLCByZXNvbHZlVmFsdWVzICk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGRlZmVycmVkLnByb21pc2UoKTtcclxuXHR9XHJcbn0pO1xyXG5qUXVlcnkuc3VwcG9ydCA9IChmdW5jdGlvbigpIHtcclxuXHJcblx0dmFyIHN1cHBvcnQsXHJcblx0XHRhbGwsXHJcblx0XHRhLFxyXG5cdFx0c2VsZWN0LFxyXG5cdFx0b3B0LFxyXG5cdFx0aW5wdXQsXHJcblx0XHRmcmFnbWVudCxcclxuXHRcdGV2ZW50TmFtZSxcclxuXHRcdGksXHJcblx0XHRpc1N1cHBvcnRlZCxcclxuXHRcdGNsaWNrRm4sXHJcblx0XHRkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5cclxuXHQvLyBQcmVsaW1pbmFyeSB0ZXN0c1xyXG5cdGRpdi5zZXRBdHRyaWJ1dGUoIFwiY2xhc3NOYW1lXCIsIFwidFwiICk7XHJcblx0ZGl2LmlubmVySFRNTCA9IFwiICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0nL2EnPmE8L2E+PGlucHV0IHR5cGU9J2NoZWNrYm94Jy8+XCI7XHJcblxyXG5cdGFsbCA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZShcIipcIik7XHJcblx0YSA9IGRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZShcImFcIilbIDAgXTtcclxuXHRhLnN0eWxlLmNzc1RleHQgPSBcInRvcDoxcHg7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41XCI7XHJcblxyXG5cdC8vIENhbid0IGdldCBiYXNpYyB0ZXN0IHN1cHBvcnRcclxuXHRpZiAoICFhbGwgfHwgIWFsbC5sZW5ndGggfHwgIWEgKSB7XHJcblx0XHRyZXR1cm4ge307XHJcblx0fVxyXG5cclxuXHQvLyBGaXJzdCBiYXRjaCBvZiBzdXBwb3J0cyB0ZXN0c1xyXG5cdHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJzZWxlY3RcIik7XHJcblx0b3B0ID0gc2VsZWN0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwib3B0aW9uXCIpICk7XHJcblx0aW5wdXQgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpbnB1dFwiKVsgMCBdO1xyXG5cclxuXHRzdXBwb3J0ID0ge1xyXG5cdFx0Ly8gSUUgc3RyaXBzIGxlYWRpbmcgd2hpdGVzcGFjZSB3aGVuIC5pbm5lckhUTUwgaXMgdXNlZFxyXG5cdFx0bGVhZGluZ1doaXRlc3BhY2U6ICggZGl2LmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDMgKSxcclxuXHJcblx0XHQvLyBNYWtlIHN1cmUgdGhhdCB0Ym9keSBlbGVtZW50cyBhcmVuJ3QgYXV0b21hdGljYWxseSBpbnNlcnRlZFxyXG5cdFx0Ly8gSUUgd2lsbCBpbnNlcnQgdGhlbSBpbnRvIGVtcHR5IHRhYmxlc1xyXG5cdFx0dGJvZHk6ICFkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJ0Ym9keVwiKS5sZW5ndGgsXHJcblxyXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbGluayBlbGVtZW50cyBnZXQgc2VyaWFsaXplZCBjb3JyZWN0bHkgYnkgaW5uZXJIVE1MXHJcblx0XHQvLyBUaGlzIHJlcXVpcmVzIGEgd3JhcHBlciBlbGVtZW50IGluIElFXHJcblx0XHRodG1sU2VyaWFsaXplOiAhIWRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZShcImxpbmtcIikubGVuZ3RoLFxyXG5cclxuXHRcdC8vIEdldCB0aGUgc3R5bGUgaW5mb3JtYXRpb24gZnJvbSBnZXRBdHRyaWJ1dGVcclxuXHRcdC8vIChJRSB1c2VzIC5jc3NUZXh0IGluc3RlYWQpXHJcblx0XHRzdHlsZTogL3RvcC8udGVzdCggYS5nZXRBdHRyaWJ1dGUoXCJzdHlsZVwiKSApLFxyXG5cclxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IFVSTHMgYXJlbid0IG1hbmlwdWxhdGVkXHJcblx0XHQvLyAoSUUgbm9ybWFsaXplcyBpdCBieSBkZWZhdWx0KVxyXG5cdFx0aHJlZk5vcm1hbGl6ZWQ6ICggYS5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpID09PSBcIi9hXCIgKSxcclxuXHJcblx0XHQvLyBNYWtlIHN1cmUgdGhhdCBlbGVtZW50IG9wYWNpdHkgZXhpc3RzXHJcblx0XHQvLyAoSUUgdXNlcyBmaWx0ZXIgaW5zdGVhZClcclxuXHRcdC8vIFVzZSBhIHJlZ2V4IHRvIHdvcmsgYXJvdW5kIGEgV2ViS2l0IGlzc3VlLiBTZWUgIzUxNDVcclxuXHRcdG9wYWNpdHk6IC9eMC41Ly50ZXN0KCBhLnN0eWxlLm9wYWNpdHkgKSxcclxuXHJcblx0XHQvLyBWZXJpZnkgc3R5bGUgZmxvYXQgZXhpc3RlbmNlXHJcblx0XHQvLyAoSUUgdXNlcyBzdHlsZUZsb2F0IGluc3RlYWQgb2YgY3NzRmxvYXQpXHJcblx0XHRjc3NGbG9hdDogISFhLnN0eWxlLmNzc0Zsb2F0LFxyXG5cclxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IGlmIG5vIHZhbHVlIGlzIHNwZWNpZmllZCBmb3IgYSBjaGVja2JveFxyXG5cdFx0Ly8gdGhhdCBpdCBkZWZhdWx0cyB0byBcIm9uXCIuXHJcblx0XHQvLyAoV2ViS2l0IGRlZmF1bHRzIHRvIFwiXCIgaW5zdGVhZClcclxuXHRcdGNoZWNrT246ICggaW5wdXQudmFsdWUgPT09IFwib25cIiApLFxyXG5cclxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IGEgc2VsZWN0ZWQtYnktZGVmYXVsdCBvcHRpb24gaGFzIGEgd29ya2luZyBzZWxlY3RlZCBwcm9wZXJ0eS5cclxuXHRcdC8vIChXZWJLaXQgZGVmYXVsdHMgdG8gZmFsc2UgaW5zdGVhZCBvZiB0cnVlLCBJRSB0b28sIGlmIGl0J3MgaW4gYW4gb3B0Z3JvdXApXHJcblx0XHRvcHRTZWxlY3RlZDogb3B0LnNlbGVjdGVkLFxyXG5cclxuXHRcdC8vIFRlc3Qgc2V0QXR0cmlidXRlIG9uIGNhbWVsQ2FzZSBjbGFzcy4gSWYgaXQgd29ya3MsIHdlIG5lZWQgYXR0ckZpeGVzIHdoZW4gZG9pbmcgZ2V0L3NldEF0dHJpYnV0ZSAoaWU2LzcpXHJcblx0XHRnZXRTZXRBdHRyaWJ1dGU6IGRpdi5jbGFzc05hbWUgIT09IFwidFwiLFxyXG5cclxuXHRcdC8vIFRlc3RzIGZvciBlbmN0eXBlIHN1cHBvcnQgb24gYSBmb3JtKCM2NzQzKVxyXG5cdFx0ZW5jdHlwZTogISFkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZm9ybVwiKS5lbmN0eXBlLFxyXG5cclxuXHRcdC8vIE1ha2VzIHN1cmUgY2xvbmluZyBhbiBodG1sNSBlbGVtZW50IGRvZXMgbm90IGNhdXNlIHByb2JsZW1zXHJcblx0XHQvLyBXaGVyZSBvdXRlckhUTUwgaXMgdW5kZWZpbmVkLCB0aGlzIHN0aWxsIHdvcmtzXHJcblx0XHRodG1sNUNsb25lOiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibmF2XCIpLmNsb25lTm9kZSggdHJ1ZSApLm91dGVySFRNTCAhPT0gXCI8Om5hdj48LzpuYXY+XCIsXHJcblxyXG5cdFx0Ly8galF1ZXJ5LnN1cHBvcnQuYm94TW9kZWwgREVQUkVDQVRFRCBpbiAxLjggc2luY2Ugd2UgZG9uJ3Qgc3VwcG9ydCBRdWlya3MgTW9kZVxyXG5cdFx0Ym94TW9kZWw6ICggZG9jdW1lbnQuY29tcGF0TW9kZSA9PT0gXCJDU1MxQ29tcGF0XCIgKSxcclxuXHJcblx0XHQvLyBXaWxsIGJlIGRlZmluZWQgbGF0ZXJcclxuXHRcdHN1Ym1pdEJ1YmJsZXM6IHRydWUsXHJcblx0XHRjaGFuZ2VCdWJibGVzOiB0cnVlLFxyXG5cdFx0Zm9jdXNpbkJ1YmJsZXM6IGZhbHNlLFxyXG5cdFx0ZGVsZXRlRXhwYW5kbzogdHJ1ZSxcclxuXHRcdG5vQ2xvbmVFdmVudDogdHJ1ZSxcclxuXHRcdGlubGluZUJsb2NrTmVlZHNMYXlvdXQ6IGZhbHNlLFxyXG5cdFx0c2hyaW5rV3JhcEJsb2NrczogZmFsc2UsXHJcblx0XHRyZWxpYWJsZU1hcmdpblJpZ2h0OiB0cnVlLFxyXG5cdFx0Ym94U2l6aW5nUmVsaWFibGU6IHRydWUsXHJcblx0XHRwaXhlbFBvc2l0aW9uOiBmYWxzZVxyXG5cdH07XHJcblxyXG5cdC8vIE1ha2Ugc3VyZSBjaGVja2VkIHN0YXR1cyBpcyBwcm9wZXJseSBjbG9uZWRcclxuXHRpbnB1dC5jaGVja2VkID0gdHJ1ZTtcclxuXHRzdXBwb3J0Lm5vQ2xvbmVDaGVja2VkID0gaW5wdXQuY2xvbmVOb2RlKCB0cnVlICkuY2hlY2tlZDtcclxuXHJcblx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIG9wdGlvbnMgaW5zaWRlIGRpc2FibGVkIHNlbGVjdHMgYXJlbid0IG1hcmtlZCBhcyBkaXNhYmxlZFxyXG5cdC8vIChXZWJLaXQgbWFya3MgdGhlbSBhcyBkaXNhYmxlZClcclxuXHRzZWxlY3QuZGlzYWJsZWQgPSB0cnVlO1xyXG5cdHN1cHBvcnQub3B0RGlzYWJsZWQgPSAhb3B0LmRpc2FibGVkO1xyXG5cclxuXHQvLyBUZXN0IHRvIHNlZSBpZiBpdCdzIHBvc3NpYmxlIHRvIGRlbGV0ZSBhbiBleHBhbmRvIGZyb20gYW4gZWxlbWVudFxyXG5cdC8vIEZhaWxzIGluIEludGVybmV0IEV4cGxvcmVyXHJcblx0dHJ5IHtcclxuXHRcdGRlbGV0ZSBkaXYudGVzdDtcclxuXHR9IGNhdGNoKCBlICkge1xyXG5cdFx0c3VwcG9ydC5kZWxldGVFeHBhbmRvID0gZmFsc2U7XHJcblx0fVxyXG5cclxuXHRpZiAoICFkaXYuYWRkRXZlbnRMaXN0ZW5lciAmJiBkaXYuYXR0YWNoRXZlbnQgJiYgZGl2LmZpcmVFdmVudCApIHtcclxuXHRcdGRpdi5hdHRhY2hFdmVudCggXCJvbmNsaWNrXCIsIGNsaWNrRm4gPSBmdW5jdGlvbigpIHtcclxuXHRcdFx0Ly8gQ2xvbmluZyBhIG5vZGUgc2hvdWxkbid0IGNvcHkgb3ZlciBhbnlcclxuXHRcdFx0Ly8gYm91bmQgZXZlbnQgaGFuZGxlcnMgKElFIGRvZXMgdGhpcylcclxuXHRcdFx0c3VwcG9ydC5ub0Nsb25lRXZlbnQgPSBmYWxzZTtcclxuXHRcdH0pO1xyXG5cdFx0ZGl2LmNsb25lTm9kZSggdHJ1ZSApLmZpcmVFdmVudChcIm9uY2xpY2tcIik7XHJcblx0XHRkaXYuZGV0YWNoRXZlbnQoIFwib25jbGlja1wiLCBjbGlja0ZuICk7XHJcblx0fVxyXG5cclxuXHQvLyBDaGVjayBpZiBhIHJhZGlvIG1haW50YWlucyBpdHMgdmFsdWVcclxuXHQvLyBhZnRlciBiZWluZyBhcHBlbmRlZCB0byB0aGUgRE9NXHJcblx0aW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaW5wdXRcIik7XHJcblx0aW5wdXQudmFsdWUgPSBcInRcIjtcclxuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCBcInJhZGlvXCIgKTtcclxuXHRzdXBwb3J0LnJhZGlvVmFsdWUgPSBpbnB1dC52YWx1ZSA9PT0gXCJ0XCI7XHJcblxyXG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJjaGVja2VkXCIsIFwiY2hlY2tlZFwiICk7XHJcblxyXG5cdC8vICMxMTIxNyAtIFdlYktpdCBsb3NlcyBjaGVjayB3aGVuIHRoZSBuYW1lIGlzIGFmdGVyIHRoZSBjaGVja2VkIGF0dHJpYnV0ZVxyXG5cdGlucHV0LnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwidFwiICk7XHJcblxyXG5cdGRpdi5hcHBlbmRDaGlsZCggaW5wdXQgKTtcclxuXHRmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtcclxuXHRmcmFnbWVudC5hcHBlbmRDaGlsZCggZGl2Lmxhc3RDaGlsZCApO1xyXG5cclxuXHQvLyBXZWJLaXQgZG9lc24ndCBjbG9uZSBjaGVja2VkIHN0YXRlIGNvcnJlY3RseSBpbiBmcmFnbWVudHNcclxuXHRzdXBwb3J0LmNoZWNrQ2xvbmUgPSBmcmFnbWVudC5jbG9uZU5vZGUoIHRydWUgKS5jbG9uZU5vZGUoIHRydWUgKS5sYXN0Q2hpbGQuY2hlY2tlZDtcclxuXHJcblx0Ly8gQ2hlY2sgaWYgYSBkaXNjb25uZWN0ZWQgY2hlY2tib3ggd2lsbCByZXRhaW4gaXRzIGNoZWNrZWRcclxuXHQvLyB2YWx1ZSBvZiB0cnVlIGFmdGVyIGFwcGVuZGVkIHRvIHRoZSBET00gKElFNi83KVxyXG5cdHN1cHBvcnQuYXBwZW5kQ2hlY2tlZCA9IGlucHV0LmNoZWNrZWQ7XHJcblxyXG5cdGZyYWdtZW50LnJlbW92ZUNoaWxkKCBpbnB1dCApO1xyXG5cdGZyYWdtZW50LmFwcGVuZENoaWxkKCBkaXYgKTtcclxuXHJcblx0Ly8gVGVjaG5pcXVlIGZyb20gSnVyaXkgWmF5dHNldlxyXG5cdC8vIGh0dHA6Ly9wZXJmZWN0aW9ua2lsbHMuY29tL2RldGVjdGluZy1ldmVudC1zdXBwb3J0LXdpdGhvdXQtYnJvd3Nlci1zbmlmZmluZy9cclxuXHQvLyBXZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGNhc2Ugd2hlcmUgbm9uLXN0YW5kYXJkIGV2ZW50IHN5c3RlbXNcclxuXHQvLyBhcmUgdXNlZCwgbmFtZWx5IGluIElFLiBTaG9ydC1jaXJjdWl0aW5nIGhlcmUgaGVscHMgdXMgdG9cclxuXHQvLyBhdm9pZCBhbiBldmFsIGNhbGwgKGluIHNldEF0dHJpYnV0ZSkgd2hpY2ggY2FuIGNhdXNlIENTUFxyXG5cdC8vIHRvIGdvIGhheXdpcmUuIFNlZTogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4vU2VjdXJpdHkvQ1NQXHJcblx0aWYgKCBkaXYuYXR0YWNoRXZlbnQgKSB7XHJcblx0XHRmb3IgKCBpIGluIHtcclxuXHRcdFx0c3VibWl0OiB0cnVlLFxyXG5cdFx0XHRjaGFuZ2U6IHRydWUsXHJcblx0XHRcdGZvY3VzaW46IHRydWVcclxuXHRcdH0pIHtcclxuXHRcdFx0ZXZlbnROYW1lID0gXCJvblwiICsgaTtcclxuXHRcdFx0aXNTdXBwb3J0ZWQgPSAoIGV2ZW50TmFtZSBpbiBkaXYgKTtcclxuXHRcdFx0aWYgKCAhaXNTdXBwb3J0ZWQgKSB7XHJcblx0XHRcdFx0ZGl2LnNldEF0dHJpYnV0ZSggZXZlbnROYW1lLCBcInJldHVybjtcIiApO1xyXG5cdFx0XHRcdGlzU3VwcG9ydGVkID0gKCB0eXBlb2YgZGl2WyBldmVudE5hbWUgXSA9PT0gXCJmdW5jdGlvblwiICk7XHJcblx0XHRcdH1cclxuXHRcdFx0c3VwcG9ydFsgaSArIFwiQnViYmxlc1wiIF0gPSBpc1N1cHBvcnRlZDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIFJ1biB0ZXN0cyB0aGF0IG5lZWQgYSBib2R5IGF0IGRvYyByZWFkeVxyXG5cdGpRdWVyeShmdW5jdGlvbigpIHtcclxuXHRcdHZhciBjb250YWluZXIsIGRpdiwgdGRzLCBtYXJnaW5EaXYsXHJcblx0XHRcdGRpdlJlc2V0ID0gXCJwYWRkaW5nOjA7bWFyZ2luOjA7Ym9yZGVyOjA7ZGlzcGxheTpibG9jaztvdmVyZmxvdzpoaWRkZW47XCIsXHJcblx0XHRcdGJvZHkgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZShcImJvZHlcIilbMF07XHJcblxyXG5cdFx0aWYgKCAhYm9keSApIHtcclxuXHRcdFx0Ly8gUmV0dXJuIGZvciBmcmFtZXNldCBkb2NzIHRoYXQgZG9uJ3QgaGF2ZSBhIGJvZHlcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcblx0XHRjb250YWluZXIuc3R5bGUuY3NzVGV4dCA9IFwidmlzaWJpbGl0eTpoaWRkZW47Ym9yZGVyOjA7d2lkdGg6MDtoZWlnaHQ6MDtwb3NpdGlvbjpzdGF0aWM7dG9wOjA7bWFyZ2luLXRvcDoxcHhcIjtcclxuXHRcdGJvZHkuaW5zZXJ0QmVmb3JlKCBjb250YWluZXIsIGJvZHkuZmlyc3RDaGlsZCApO1xyXG5cclxuXHRcdC8vIENvbnN0cnVjdCB0aGUgdGVzdCBlbGVtZW50XHJcblx0XHRkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5cdFx0Y29udGFpbmVyLmFwcGVuZENoaWxkKCBkaXYgKTtcclxuXHJcblx0XHQvLyBDaGVjayBpZiB0YWJsZSBjZWxscyBzdGlsbCBoYXZlIG9mZnNldFdpZHRoL0hlaWdodCB3aGVuIHRoZXkgYXJlIHNldFxyXG5cdFx0Ly8gdG8gZGlzcGxheTpub25lIGFuZCB0aGVyZSBhcmUgc3RpbGwgb3RoZXIgdmlzaWJsZSB0YWJsZSBjZWxscyBpbiBhXHJcblx0XHQvLyB0YWJsZSByb3c7IGlmIHNvLCBvZmZzZXRXaWR0aC9IZWlnaHQgYXJlIG5vdCByZWxpYWJsZSBmb3IgdXNlIHdoZW5cclxuXHRcdC8vIGRldGVybWluaW5nIGlmIGFuIGVsZW1lbnQgaGFzIGJlZW4gaGlkZGVuIGRpcmVjdGx5IHVzaW5nXHJcblx0XHQvLyBkaXNwbGF5Om5vbmUgKGl0IGlzIHN0aWxsIHNhZmUgdG8gdXNlIG9mZnNldHMgaWYgYSBwYXJlbnQgZWxlbWVudCBpc1xyXG5cdFx0Ly8gaGlkZGVuOyBkb24gc2FmZXR5IGdvZ2dsZXMgYW5kIHNlZSBidWcgIzQ1MTIgZm9yIG1vcmUgaW5mb3JtYXRpb24pLlxyXG5cdFx0Ly8gKG9ubHkgSUUgOCBmYWlscyB0aGlzIHRlc3QpXHJcblx0XHRkaXYuaW5uZXJIVE1MID0gXCI8dGFibGU+PHRyPjx0ZD48L3RkPjx0ZD50PC90ZD48L3RyPjwvdGFibGU+XCI7XHJcblx0XHR0ZHMgPSBkaXYuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJ0ZFwiKTtcclxuXHRcdHRkc1sgMCBdLnN0eWxlLmNzc1RleHQgPSBcInBhZGRpbmc6MDttYXJnaW46MDtib3JkZXI6MDtkaXNwbGF5Om5vbmVcIjtcclxuXHRcdGlzU3VwcG9ydGVkID0gKCB0ZHNbIDAgXS5vZmZzZXRIZWlnaHQgPT09IDAgKTtcclxuXHJcblx0XHR0ZHNbIDAgXS5zdHlsZS5kaXNwbGF5ID0gXCJcIjtcclxuXHRcdHRkc1sgMSBdLnN0eWxlLmRpc3BsYXkgPSBcIm5vbmVcIjtcclxuXHJcblx0XHQvLyBDaGVjayBpZiBlbXB0eSB0YWJsZSBjZWxscyBzdGlsbCBoYXZlIG9mZnNldFdpZHRoL0hlaWdodFxyXG5cdFx0Ly8gKElFIDw9IDggZmFpbCB0aGlzIHRlc3QpXHJcblx0XHRzdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyA9IGlzU3VwcG9ydGVkICYmICggdGRzWyAwIF0ub2Zmc2V0SGVpZ2h0ID09PSAwICk7XHJcblxyXG5cdFx0Ly8gQ2hlY2sgYm94LXNpemluZyBhbmQgbWFyZ2luIGJlaGF2aW9yXHJcblx0XHRkaXYuaW5uZXJIVE1MID0gXCJcIjtcclxuXHRcdGRpdi5zdHlsZS5jc3NUZXh0ID0gXCJib3gtc2l6aW5nOmJvcmRlci1ib3g7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7cGFkZGluZzoxcHg7Ym9yZGVyOjFweDtkaXNwbGF5OmJsb2NrO3dpZHRoOjRweDttYXJnaW4tdG9wOjElO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxJTtcIjtcclxuXHRcdHN1cHBvcnQuYm94U2l6aW5nID0gKCBkaXYub2Zmc2V0V2lkdGggPT09IDQgKTtcclxuXHRcdHN1cHBvcnQuZG9lc05vdEluY2x1ZGVNYXJnaW5JbkJvZHlPZmZzZXQgPSAoIGJvZHkub2Zmc2V0VG9wICE9PSAxICk7XHJcblxyXG5cdFx0Ly8gTk9URTogVG8gYW55IGZ1dHVyZSBtYWludGFpbmVyLCB3ZSd2ZSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZVxyXG5cdFx0Ly8gYmVjYXVzZSBqc2RvbSBvbiBub2RlLmpzIHdpbGwgYnJlYWsgd2l0aG91dCBpdC5cclxuXHRcdGlmICggd2luZG93LmdldENvbXB1dGVkU3R5bGUgKSB7XHJcblx0XHRcdHN1cHBvcnQucGl4ZWxQb3NpdGlvbiA9ICggd2luZG93LmdldENvbXB1dGVkU3R5bGUoIGRpdiwgbnVsbCApIHx8IHt9ICkudG9wICE9PSBcIjElXCI7XHJcblx0XHRcdHN1cHBvcnQuYm94U2l6aW5nUmVsaWFibGUgPSAoIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBkaXYsIG51bGwgKSB8fCB7IHdpZHRoOiBcIjRweFwiIH0gKS53aWR0aCA9PT0gXCI0cHhcIjtcclxuXHJcblx0XHRcdC8vIENoZWNrIGlmIGRpdiB3aXRoIGV4cGxpY2l0IHdpZHRoIGFuZCBubyBtYXJnaW4tcmlnaHQgaW5jb3JyZWN0bHlcclxuXHRcdFx0Ly8gZ2V0cyBjb21wdXRlZCBtYXJnaW4tcmlnaHQgYmFzZWQgb24gd2lkdGggb2YgY29udGFpbmVyLiBGb3IgbW9yZVxyXG5cdFx0XHQvLyBpbmZvIHNlZSBidWcgIzMzMzNcclxuXHRcdFx0Ly8gRmFpbHMgaW4gV2ViS2l0IGJlZm9yZSBGZWIgMjAxMSBuaWdodGxpZXNcclxuXHRcdFx0Ly8gV2ViS2l0IEJ1ZyAxMzM0MyAtIGdldENvbXB1dGVkU3R5bGUgcmV0dXJucyB3cm9uZyB2YWx1ZSBmb3IgbWFyZ2luLXJpZ2h0XHJcblx0XHRcdG1hcmdpbkRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcblx0XHRcdG1hcmdpbkRpdi5zdHlsZS5jc3NUZXh0ID0gZGl2LnN0eWxlLmNzc1RleHQgPSBkaXZSZXNldDtcclxuXHRcdFx0bWFyZ2luRGl2LnN0eWxlLm1hcmdpblJpZ2h0ID0gbWFyZ2luRGl2LnN0eWxlLndpZHRoID0gXCIwXCI7XHJcblx0XHRcdGRpdi5zdHlsZS53aWR0aCA9IFwiMXB4XCI7XHJcblx0XHRcdGRpdi5hcHBlbmRDaGlsZCggbWFyZ2luRGl2ICk7XHJcblx0XHRcdHN1cHBvcnQucmVsaWFibGVNYXJnaW5SaWdodCA9XHJcblx0XHRcdFx0IXBhcnNlRmxvYXQoICggd2luZG93LmdldENvbXB1dGVkU3R5bGUoIG1hcmdpbkRpdiwgbnVsbCApIHx8IHt9ICkubWFyZ2luUmlnaHQgKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIHR5cGVvZiBkaXYuc3R5bGUuem9vbSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcclxuXHRcdFx0Ly8gQ2hlY2sgaWYgbmF0aXZlbHkgYmxvY2stbGV2ZWwgZWxlbWVudHMgYWN0IGxpa2UgaW5saW5lLWJsb2NrXHJcblx0XHRcdC8vIGVsZW1lbnRzIHdoZW4gc2V0dGluZyB0aGVpciBkaXNwbGF5IHRvICdpbmxpbmUnIGFuZCBnaXZpbmdcclxuXHRcdFx0Ly8gdGhlbSBsYXlvdXRcclxuXHRcdFx0Ly8gKElFIDwgOCBkb2VzIHRoaXMpXHJcblx0XHRcdGRpdi5pbm5lckhUTUwgPSBcIlwiO1xyXG5cdFx0XHRkaXYuc3R5bGUuY3NzVGV4dCA9IGRpdlJlc2V0ICsgXCJ3aWR0aDoxcHg7cGFkZGluZzoxcHg7ZGlzcGxheTppbmxpbmU7em9vbToxXCI7XHJcblx0XHRcdHN1cHBvcnQuaW5saW5lQmxvY2tOZWVkc0xheW91dCA9ICggZGl2Lm9mZnNldFdpZHRoID09PSAzICk7XHJcblxyXG5cdFx0XHQvLyBDaGVjayBpZiBlbGVtZW50cyB3aXRoIGxheW91dCBzaHJpbmstd3JhcCB0aGVpciBjaGlsZHJlblxyXG5cdFx0XHQvLyAoSUUgNiBkb2VzIHRoaXMpXHJcblx0XHRcdGRpdi5zdHlsZS5kaXNwbGF5ID0gXCJibG9ja1wiO1xyXG5cdFx0XHRkaXYuc3R5bGUub3ZlcmZsb3cgPSBcInZpc2libGVcIjtcclxuXHRcdFx0ZGl2LmlubmVySFRNTCA9IFwiPGRpdj48L2Rpdj5cIjtcclxuXHRcdFx0ZGl2LmZpcnN0Q2hpbGQuc3R5bGUud2lkdGggPSBcIjVweFwiO1xyXG5cdFx0XHRzdXBwb3J0LnNocmlua1dyYXBCbG9ja3MgPSAoIGRpdi5vZmZzZXRXaWR0aCAhPT0gMyApO1xyXG5cclxuXHRcdFx0Y29udGFpbmVyLnN0eWxlLnpvb20gPSAxO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE51bGwgZWxlbWVudHMgdG8gYXZvaWQgbGVha3MgaW4gSUVcclxuXHRcdGJvZHkucmVtb3ZlQ2hpbGQoIGNvbnRhaW5lciApO1xyXG5cdFx0Y29udGFpbmVyID0gZGl2ID0gdGRzID0gbWFyZ2luRGl2ID0gbnVsbDtcclxuXHR9KTtcclxuXHJcblx0Ly8gTnVsbCBlbGVtZW50cyB0byBhdm9pZCBsZWFrcyBpbiBJRVxyXG5cdGZyYWdtZW50LnJlbW92ZUNoaWxkKCBkaXYgKTtcclxuXHRhbGwgPSBhID0gc2VsZWN0ID0gb3B0ID0gaW5wdXQgPSBmcmFnbWVudCA9IGRpdiA9IG51bGw7XHJcblxyXG5cdHJldHVybiBzdXBwb3J0O1xyXG59KSgpO1xyXG52YXIgcmJyYWNlID0gLyg/Olxce1tcXHNcXFNdKlxcfXxcXFtbXFxzXFxTXSpcXF0pJC8sXHJcblx0cm11bHRpRGFzaCA9IC8oW0EtWl0pL2c7XHJcblxyXG5qUXVlcnkuZXh0ZW5kKHtcclxuXHRjYWNoZToge30sXHJcblxyXG5cdGRlbGV0ZWRJZHM6IFtdLFxyXG5cclxuXHQvLyBQbGVhc2UgdXNlIHdpdGggY2F1dGlvblxyXG5cdHV1aWQ6IDAsXHJcblxyXG5cdC8vIFVuaXF1ZSBmb3IgZWFjaCBjb3B5IG9mIGpRdWVyeSBvbiB0aGUgcGFnZVxyXG5cdC8vIE5vbi1kaWdpdHMgcmVtb3ZlZCB0byBtYXRjaCByaW5saW5lalF1ZXJ5XHJcblx0ZXhwYW5kbzogXCJqUXVlcnlcIiArICggalF1ZXJ5LmZuLmpxdWVyeSArIE1hdGgucmFuZG9tKCkgKS5yZXBsYWNlKCAvXFxEL2csIFwiXCIgKSxcclxuXHJcblx0Ly8gVGhlIGZvbGxvd2luZyBlbGVtZW50cyB0aHJvdyB1bmNhdGNoYWJsZSBleGNlcHRpb25zIGlmIHlvdVxyXG5cdC8vIGF0dGVtcHQgdG8gYWRkIGV4cGFuZG8gcHJvcGVydGllcyB0byB0aGVtLlxyXG5cdG5vRGF0YToge1xyXG5cdFx0XCJlbWJlZFwiOiB0cnVlLFxyXG5cdFx0Ly8gQmFuIGFsbCBvYmplY3RzIGV4Y2VwdCBmb3IgRmxhc2ggKHdoaWNoIGhhbmRsZSBleHBhbmRvcylcclxuXHRcdFwib2JqZWN0XCI6IFwiY2xzaWQ6RDI3Q0RCNkUtQUU2RC0xMWNmLTk2QjgtNDQ0NTUzNTQwMDAwXCIsXHJcblx0XHRcImFwcGxldFwiOiB0cnVlXHJcblx0fSxcclxuXHJcblx0aGFzRGF0YTogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRlbGVtID0gZWxlbS5ub2RlVHlwZSA/IGpRdWVyeS5jYWNoZVsgZWxlbVtqUXVlcnkuZXhwYW5kb10gXSA6IGVsZW1bIGpRdWVyeS5leHBhbmRvIF07XHJcblx0XHRyZXR1cm4gISFlbGVtICYmICFpc0VtcHR5RGF0YU9iamVjdCggZWxlbSApO1xyXG5cdH0sXHJcblxyXG5cdGRhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBkYXRhLCBwdnQgLyogSW50ZXJuYWwgVXNlIE9ubHkgKi8gKSB7XHJcblx0XHRpZiAoICFqUXVlcnkuYWNjZXB0RGF0YSggZWxlbSApICkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIHRoaXNDYWNoZSwgcmV0LFxyXG5cdFx0XHRpbnRlcm5hbEtleSA9IGpRdWVyeS5leHBhbmRvLFxyXG5cdFx0XHRnZXRCeU5hbWUgPSB0eXBlb2YgbmFtZSA9PT0gXCJzdHJpbmdcIixcclxuXHJcblx0XHRcdC8vIFdlIGhhdmUgdG8gaGFuZGxlIERPTSBub2RlcyBhbmQgSlMgb2JqZWN0cyBkaWZmZXJlbnRseSBiZWNhdXNlIElFNi03XHJcblx0XHRcdC8vIGNhbid0IEdDIG9iamVjdCByZWZlcmVuY2VzIHByb3Blcmx5IGFjcm9zcyB0aGUgRE9NLUpTIGJvdW5kYXJ5XHJcblx0XHRcdGlzTm9kZSA9IGVsZW0ubm9kZVR5cGUsXHJcblxyXG5cdFx0XHQvLyBPbmx5IERPTSBub2RlcyBuZWVkIHRoZSBnbG9iYWwgalF1ZXJ5IGNhY2hlOyBKUyBvYmplY3QgZGF0YSBpc1xyXG5cdFx0XHQvLyBhdHRhY2hlZCBkaXJlY3RseSB0byB0aGUgb2JqZWN0IHNvIEdDIGNhbiBvY2N1ciBhdXRvbWF0aWNhbGx5XHJcblx0XHRcdGNhY2hlID0gaXNOb2RlID8galF1ZXJ5LmNhY2hlIDogZWxlbSxcclxuXHJcblx0XHRcdC8vIE9ubHkgZGVmaW5pbmcgYW4gSUQgZm9yIEpTIG9iamVjdHMgaWYgaXRzIGNhY2hlIGFscmVhZHkgZXhpc3RzIGFsbG93c1xyXG5cdFx0XHQvLyB0aGUgY29kZSB0byBzaG9ydGN1dCBvbiB0aGUgc2FtZSBwYXRoIGFzIGEgRE9NIG5vZGUgd2l0aCBubyBjYWNoZVxyXG5cdFx0XHRpZCA9IGlzTm9kZSA/IGVsZW1bIGludGVybmFsS2V5IF0gOiBlbGVtWyBpbnRlcm5hbEtleSBdICYmIGludGVybmFsS2V5O1xyXG5cclxuXHRcdC8vIEF2b2lkIGRvaW5nIGFueSBtb3JlIHdvcmsgdGhhbiB3ZSBuZWVkIHRvIHdoZW4gdHJ5aW5nIHRvIGdldCBkYXRhIG9uIGFuXHJcblx0XHQvLyBvYmplY3QgdGhhdCBoYXMgbm8gZGF0YSBhdCBhbGxcclxuXHRcdGlmICggKCFpZCB8fCAhY2FjaGVbaWRdIHx8ICghcHZ0ICYmICFjYWNoZVtpZF0uZGF0YSkpICYmIGdldEJ5TmFtZSAmJiBkYXRhID09PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoICFpZCApIHtcclxuXHRcdFx0Ly8gT25seSBET00gbm9kZXMgbmVlZCBhIG5ldyB1bmlxdWUgSUQgZm9yIGVhY2ggZWxlbWVudCBzaW5jZSB0aGVpciBkYXRhXHJcblx0XHRcdC8vIGVuZHMgdXAgaW4gdGhlIGdsb2JhbCBjYWNoZVxyXG5cdFx0XHRpZiAoIGlzTm9kZSApIHtcclxuXHRcdFx0XHRlbGVtWyBpbnRlcm5hbEtleSBdID0gaWQgPSBqUXVlcnkuZGVsZXRlZElkcy5wb3AoKSB8fCArK2pRdWVyeS51dWlkO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGlkID0gaW50ZXJuYWxLZXk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpZiAoICFjYWNoZVsgaWQgXSApIHtcclxuXHRcdFx0Y2FjaGVbIGlkIF0gPSB7fTtcclxuXHJcblx0XHRcdC8vIEF2b2lkcyBleHBvc2luZyBqUXVlcnkgbWV0YWRhdGEgb24gcGxhaW4gSlMgb2JqZWN0cyB3aGVuIHRoZSBvYmplY3RcclxuXHRcdFx0Ly8gaXMgc2VyaWFsaXplZCB1c2luZyBKU09OLnN0cmluZ2lmeVxyXG5cdFx0XHRpZiAoICFpc05vZGUgKSB7XHJcblx0XHRcdFx0Y2FjaGVbIGlkIF0udG9KU09OID0galF1ZXJ5Lm5vb3A7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBBbiBvYmplY3QgY2FuIGJlIHBhc3NlZCB0byBqUXVlcnkuZGF0YSBpbnN0ZWFkIG9mIGEga2V5L3ZhbHVlIHBhaXI7IHRoaXMgZ2V0c1xyXG5cdFx0Ly8gc2hhbGxvdyBjb3BpZWQgb3ZlciBvbnRvIHRoZSBleGlzdGluZyBjYWNoZVxyXG5cdFx0aWYgKCB0eXBlb2YgbmFtZSA9PT0gXCJvYmplY3RcIiB8fCB0eXBlb2YgbmFtZSA9PT0gXCJmdW5jdGlvblwiICkge1xyXG5cdFx0XHRpZiAoIHB2dCApIHtcclxuXHRcdFx0XHRjYWNoZVsgaWQgXSA9IGpRdWVyeS5leHRlbmQoIGNhY2hlWyBpZCBdLCBuYW1lICk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Y2FjaGVbIGlkIF0uZGF0YSA9IGpRdWVyeS5leHRlbmQoIGNhY2hlWyBpZCBdLmRhdGEsIG5hbWUgKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXNDYWNoZSA9IGNhY2hlWyBpZCBdO1xyXG5cclxuXHRcdC8vIGpRdWVyeSBkYXRhKCkgaXMgc3RvcmVkIGluIGEgc2VwYXJhdGUgb2JqZWN0IGluc2lkZSB0aGUgb2JqZWN0J3MgaW50ZXJuYWwgZGF0YVxyXG5cdFx0Ly8gY2FjaGUgaW4gb3JkZXIgdG8gYXZvaWQga2V5IGNvbGxpc2lvbnMgYmV0d2VlbiBpbnRlcm5hbCBkYXRhIGFuZCB1c2VyLWRlZmluZWRcclxuXHRcdC8vIGRhdGEuXHJcblx0XHRpZiAoICFwdnQgKSB7XHJcblx0XHRcdGlmICggIXRoaXNDYWNoZS5kYXRhICkge1xyXG5cdFx0XHRcdHRoaXNDYWNoZS5kYXRhID0ge307XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHRoaXNDYWNoZSA9IHRoaXNDYWNoZS5kYXRhO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHR0aGlzQ2FjaGVbIGpRdWVyeS5jYW1lbENhc2UoIG5hbWUgKSBdID0gZGF0YTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBDaGVjayBmb3IgYm90aCBjb252ZXJ0ZWQtdG8tY2FtZWwgYW5kIG5vbi1jb252ZXJ0ZWQgZGF0YSBwcm9wZXJ0eSBuYW1lc1xyXG5cdFx0Ly8gSWYgYSBkYXRhIHByb3BlcnR5IHdhcyBzcGVjaWZpZWRcclxuXHRcdGlmICggZ2V0QnlOYW1lICkge1xyXG5cclxuXHRcdFx0Ly8gRmlyc3QgVHJ5IHRvIGZpbmQgYXMtaXMgcHJvcGVydHkgZGF0YVxyXG5cdFx0XHRyZXQgPSB0aGlzQ2FjaGVbIG5hbWUgXTtcclxuXHJcblx0XHRcdC8vIFRlc3QgZm9yIG51bGx8dW5kZWZpbmVkIHByb3BlcnR5IGRhdGFcclxuXHRcdFx0aWYgKCByZXQgPT0gbnVsbCApIHtcclxuXHJcblx0XHRcdFx0Ly8gVHJ5IHRvIGZpbmQgdGhlIGNhbWVsQ2FzZWQgcHJvcGVydHlcclxuXHRcdFx0XHRyZXQgPSB0aGlzQ2FjaGVbIGpRdWVyeS5jYW1lbENhc2UoIG5hbWUgKSBdO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRyZXQgPSB0aGlzQ2FjaGU7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJldDtcclxuXHR9LFxyXG5cclxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgcHZ0IC8qIEludGVybmFsIFVzZSBPbmx5ICovICkge1xyXG5cdFx0aWYgKCAhalF1ZXJ5LmFjY2VwdERhdGEoIGVsZW0gKSApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciB0aGlzQ2FjaGUsIGksIGwsXHJcblxyXG5cdFx0XHRpc05vZGUgPSBlbGVtLm5vZGVUeXBlLFxyXG5cclxuXHRcdFx0Ly8gU2VlIGpRdWVyeS5kYXRhIGZvciBtb3JlIGluZm9ybWF0aW9uXHJcblx0XHRcdGNhY2hlID0gaXNOb2RlID8galF1ZXJ5LmNhY2hlIDogZWxlbSxcclxuXHRcdFx0aWQgPSBpc05vZGUgPyBlbGVtWyBqUXVlcnkuZXhwYW5kbyBdIDogalF1ZXJ5LmV4cGFuZG87XHJcblxyXG5cdFx0Ly8gSWYgdGhlcmUgaXMgYWxyZWFkeSBubyBjYWNoZSBlbnRyeSBmb3IgdGhpcyBvYmplY3QsIHRoZXJlIGlzIG5vXHJcblx0XHQvLyBwdXJwb3NlIGluIGNvbnRpbnVpbmdcclxuXHRcdGlmICggIWNhY2hlWyBpZCBdICkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCBuYW1lICkge1xyXG5cclxuXHRcdFx0dGhpc0NhY2hlID0gcHZ0ID8gY2FjaGVbIGlkIF0gOiBjYWNoZVsgaWQgXS5kYXRhO1xyXG5cclxuXHRcdFx0aWYgKCB0aGlzQ2FjaGUgKSB7XHJcblxyXG5cdFx0XHRcdC8vIFN1cHBvcnQgYXJyYXkgb3Igc3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBuYW1lcyBmb3IgZGF0YSBrZXlzXHJcblx0XHRcdFx0aWYgKCAhalF1ZXJ5LmlzQXJyYXkoIG5hbWUgKSApIHtcclxuXHJcblx0XHRcdFx0XHQvLyB0cnkgdGhlIHN0cmluZyBhcyBhIGtleSBiZWZvcmUgYW55IG1hbmlwdWxhdGlvblxyXG5cdFx0XHRcdFx0aWYgKCBuYW1lIGluIHRoaXNDYWNoZSApIHtcclxuXHRcdFx0XHRcdFx0bmFtZSA9IFsgbmFtZSBdO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdFx0XHRcdC8vIHNwbGl0IHRoZSBjYW1lbCBjYXNlZCB2ZXJzaW9uIGJ5IHNwYWNlcyB1bmxlc3MgYSBrZXkgd2l0aCB0aGUgc3BhY2VzIGV4aXN0c1xyXG5cdFx0XHRcdFx0XHRuYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApO1xyXG5cdFx0XHRcdFx0XHRpZiAoIG5hbWUgaW4gdGhpc0NhY2hlICkge1xyXG5cdFx0XHRcdFx0XHRcdG5hbWUgPSBbIG5hbWUgXTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRuYW1lID0gbmFtZS5zcGxpdChcIiBcIik7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gbmFtZS5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XHJcblx0XHRcdFx0XHRkZWxldGUgdGhpc0NhY2hlWyBuYW1lW2ldIF07XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBJZiB0aGVyZSBpcyBubyBkYXRhIGxlZnQgaW4gdGhlIGNhY2hlLCB3ZSB3YW50IHRvIGNvbnRpbnVlXHJcblx0XHRcdFx0Ly8gYW5kIGxldCB0aGUgY2FjaGUgb2JqZWN0IGl0c2VsZiBnZXQgZGVzdHJveWVkXHJcblx0XHRcdFx0aWYgKCAhKCBwdnQgPyBpc0VtcHR5RGF0YU9iamVjdCA6IGpRdWVyeS5pc0VtcHR5T2JqZWN0ICkoIHRoaXNDYWNoZSApICkge1xyXG5cdFx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFNlZSBqUXVlcnkuZGF0YSBmb3IgbW9yZSBpbmZvcm1hdGlvblxyXG5cdFx0aWYgKCAhcHZ0ICkge1xyXG5cdFx0XHRkZWxldGUgY2FjaGVbIGlkIF0uZGF0YTtcclxuXHJcblx0XHRcdC8vIERvbid0IGRlc3Ryb3kgdGhlIHBhcmVudCBjYWNoZSB1bmxlc3MgdGhlIGludGVybmFsIGRhdGEgb2JqZWN0XHJcblx0XHRcdC8vIGhhZCBiZWVuIHRoZSBvbmx5IHRoaW5nIGxlZnQgaW4gaXRcclxuXHRcdFx0aWYgKCAhaXNFbXB0eURhdGFPYmplY3QoIGNhY2hlWyBpZCBdICkgKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRGVzdHJveSB0aGUgY2FjaGVcclxuXHRcdGlmICggaXNOb2RlICkge1xyXG5cdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBbIGVsZW0gXSwgdHJ1ZSApO1xyXG5cclxuXHRcdC8vIFVzZSBkZWxldGUgd2hlbiBzdXBwb3J0ZWQgZm9yIGV4cGFuZG9zIG9yIGBjYWNoZWAgaXMgbm90IGEgd2luZG93IHBlciBpc1dpbmRvdyAoIzEwMDgwKVxyXG5cdFx0fSBlbHNlIGlmICggalF1ZXJ5LnN1cHBvcnQuZGVsZXRlRXhwYW5kbyB8fCBjYWNoZSAhPSBjYWNoZS53aW5kb3cgKSB7XHJcblx0XHRcdGRlbGV0ZSBjYWNoZVsgaWQgXTtcclxuXHJcblx0XHQvLyBXaGVuIGFsbCBlbHNlIGZhaWxzLCBudWxsXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRjYWNoZVsgaWQgXSA9IG51bGw7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Ly8gRm9yIGludGVybmFsIHVzZSBvbmx5LlxyXG5cdF9kYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZGF0YSApIHtcclxuXHRcdHJldHVybiBqUXVlcnkuZGF0YSggZWxlbSwgbmFtZSwgZGF0YSwgdHJ1ZSApO1xyXG5cdH0sXHJcblxyXG5cdC8vIEEgbWV0aG9kIGZvciBkZXRlcm1pbmluZyBpZiBhIERPTSBub2RlIGNhbiBoYW5kbGUgdGhlIGRhdGEgZXhwYW5kb1xyXG5cdGFjY2VwdERhdGE6IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0dmFyIG5vRGF0YSA9IGVsZW0ubm9kZU5hbWUgJiYgalF1ZXJ5Lm5vRGF0YVsgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XHJcblxyXG5cdFx0Ly8gbm9kZXMgYWNjZXB0IGRhdGEgdW5sZXNzIG90aGVyd2lzZSBzcGVjaWZpZWQ7IHJlamVjdGlvbiBjYW4gYmUgY29uZGl0aW9uYWxcclxuXHRcdHJldHVybiAhbm9EYXRhIHx8IG5vRGF0YSAhPT0gdHJ1ZSAmJiBlbGVtLmdldEF0dHJpYnV0ZShcImNsYXNzaWRcIikgPT09IG5vRGF0YTtcclxuXHR9XHJcbn0pO1xyXG5cclxualF1ZXJ5LmZuLmV4dGVuZCh7XHJcblx0ZGF0YTogZnVuY3Rpb24oIGtleSwgdmFsdWUgKSB7XHJcblx0XHR2YXIgcGFydHMsIHBhcnQsIGF0dHIsIG5hbWUsIGwsXHJcblx0XHRcdGVsZW0gPSB0aGlzWzBdLFxyXG5cdFx0XHRpID0gMCxcclxuXHRcdFx0ZGF0YSA9IG51bGw7XHJcblxyXG5cdFx0Ly8gR2V0cyBhbGwgdmFsdWVzXHJcblx0XHRpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHRpZiAoIHRoaXMubGVuZ3RoICkge1xyXG5cdFx0XHRcdGRhdGEgPSBqUXVlcnkuZGF0YSggZWxlbSApO1xyXG5cclxuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgIWpRdWVyeS5fZGF0YSggZWxlbSwgXCJwYXJzZWRBdHRyc1wiICkgKSB7XHJcblx0XHRcdFx0XHRhdHRyID0gZWxlbS5hdHRyaWJ1dGVzO1xyXG5cdFx0XHRcdFx0Zm9yICggbCA9IGF0dHIubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xyXG5cdFx0XHRcdFx0XHRuYW1lID0gYXR0cltpXS5uYW1lO1xyXG5cclxuXHRcdFx0XHRcdFx0aWYgKCBuYW1lLmluZGV4T2YoIFwiZGF0YS1cIiApID09PSAwICkge1xyXG5cdFx0XHRcdFx0XHRcdG5hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lLnN1YnN0cmluZyg1KSApO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRkYXRhQXR0ciggZWxlbSwgbmFtZSwgZGF0YVsgbmFtZSBdICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGpRdWVyeS5fZGF0YSggZWxlbSwgXCJwYXJzZWRBdHRyc1wiLCB0cnVlICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZGF0YTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBTZXRzIG11bHRpcGxlIHZhbHVlc1xyXG5cdFx0aWYgKCB0eXBlb2Yga2V5ID09PSBcIm9iamVjdFwiICkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGpRdWVyeS5kYXRhKCB0aGlzLCBrZXkgKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cGFydHMgPSBrZXkuc3BsaXQoIFwiLlwiLCAyICk7XHJcblx0XHRwYXJ0c1sxXSA9IHBhcnRzWzFdID8gXCIuXCIgKyBwYXJ0c1sxXSA6IFwiXCI7XHJcblx0XHRwYXJ0ID0gcGFydHNbMV0gKyBcIiFcIjtcclxuXHJcblx0XHRyZXR1cm4galF1ZXJ5LmFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xyXG5cclxuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHRcdGRhdGEgPSB0aGlzLnRyaWdnZXJIYW5kbGVyKCBcImdldERhdGFcIiArIHBhcnQsIFsgcGFydHNbMF0gXSApO1xyXG5cclxuXHRcdFx0XHQvLyBUcnkgdG8gZmV0Y2ggYW55IGludGVybmFsbHkgc3RvcmVkIGRhdGEgZmlyc3RcclxuXHRcdFx0XHRpZiAoIGRhdGEgPT09IHVuZGVmaW5lZCAmJiBlbGVtICkge1xyXG5cdFx0XHRcdFx0ZGF0YSA9IGpRdWVyeS5kYXRhKCBlbGVtLCBrZXkgKTtcclxuXHRcdFx0XHRcdGRhdGEgPSBkYXRhQXR0ciggZWxlbSwga2V5LCBkYXRhICk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRyZXR1cm4gZGF0YSA9PT0gdW5kZWZpbmVkICYmIHBhcnRzWzFdID9cclxuXHRcdFx0XHRcdHRoaXMuZGF0YSggcGFydHNbMF0gKSA6XHJcblx0XHRcdFx0XHRkYXRhO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRwYXJ0c1sxXSA9IHZhbHVlO1xyXG5cdFx0XHR0aGlzLmVhY2goZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0dmFyIHNlbGYgPSBqUXVlcnkoIHRoaXMgKTtcclxuXHJcblx0XHRcdFx0c2VsZi50cmlnZ2VySGFuZGxlciggXCJzZXREYXRhXCIgKyBwYXJ0LCBwYXJ0cyApO1xyXG5cdFx0XHRcdGpRdWVyeS5kYXRhKCB0aGlzLCBrZXksIHZhbHVlICk7XHJcblx0XHRcdFx0c2VsZi50cmlnZ2VySGFuZGxlciggXCJjaGFuZ2VEYXRhXCIgKyBwYXJ0LCBwYXJ0cyApO1xyXG5cdFx0XHR9KTtcclxuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSwgbnVsbCwgZmFsc2UgKTtcclxuXHR9LFxyXG5cclxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcclxuXHRcdFx0alF1ZXJ5LnJlbW92ZURhdGEoIHRoaXMsIGtleSApO1xyXG5cdFx0fSk7XHJcblx0fVxyXG59KTtcclxuXHJcbmZ1bmN0aW9uIGRhdGFBdHRyKCBlbGVtLCBrZXksIGRhdGEgKSB7XHJcblx0Ly8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueVxyXG5cdC8vIGRhdGEgZnJvbSB0aGUgSFRNTDUgZGF0YS0qIGF0dHJpYnV0ZVxyXG5cdGlmICggZGF0YSA9PT0gdW5kZWZpbmVkICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XHJcblxyXG5cdFx0dmFyIG5hbWUgPSBcImRhdGEtXCIgKyBrZXkucmVwbGFjZSggcm11bHRpRGFzaCwgXCItJDFcIiApLnRvTG93ZXJDYXNlKCk7XHJcblxyXG5cdFx0ZGF0YSA9IGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICk7XHJcblxyXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRkYXRhID0gZGF0YSA9PT0gXCJ0cnVlXCIgPyB0cnVlIDpcclxuXHRcdFx0XHRkYXRhID09PSBcImZhbHNlXCIgPyBmYWxzZSA6XHJcblx0XHRcdFx0ZGF0YSA9PT0gXCJudWxsXCIgPyBudWxsIDpcclxuXHRcdFx0XHQvLyBPbmx5IGNvbnZlcnQgdG8gYSBudW1iZXIgaWYgaXQgZG9lc24ndCBjaGFuZ2UgdGhlIHN0cmluZ1xyXG5cdFx0XHRcdCtkYXRhICsgXCJcIiA9PT0gZGF0YSA/ICtkYXRhIDpcclxuXHRcdFx0XHRyYnJhY2UudGVzdCggZGF0YSApID8galF1ZXJ5LnBhcnNlSlNPTiggZGF0YSApIDpcclxuXHRcdFx0XHRcdGRhdGE7XHJcblx0XHRcdH0gY2F0Y2goIGUgKSB7fVxyXG5cclxuXHRcdFx0Ly8gTWFrZSBzdXJlIHdlIHNldCB0aGUgZGF0YSBzbyBpdCBpc24ndCBjaGFuZ2VkIGxhdGVyXHJcblx0XHRcdGpRdWVyeS5kYXRhKCBlbGVtLCBrZXksIGRhdGEgKTtcclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIGRhdGE7XHJcbn1cclxuXHJcbi8vIGNoZWNrcyBhIGNhY2hlIG9iamVjdCBmb3IgZW1wdGluZXNzXHJcbmZ1bmN0aW9uIGlzRW1wdHlEYXRhT2JqZWN0KCBvYmogKSB7XHJcblx0dmFyIG5hbWU7XHJcblx0Zm9yICggbmFtZSBpbiBvYmogKSB7XHJcblxyXG5cdFx0Ly8gaWYgdGhlIHB1YmxpYyBkYXRhIG9iamVjdCBpcyBlbXB0eSwgdGhlIHByaXZhdGUgaXMgc3RpbGwgZW1wdHlcclxuXHRcdGlmICggbmFtZSA9PT0gXCJkYXRhXCIgJiYgalF1ZXJ5LmlzRW1wdHlPYmplY3QoIG9ialtuYW1lXSApICkge1xyXG5cdFx0XHRjb250aW51ZTtcclxuXHRcdH1cclxuXHRcdGlmICggbmFtZSAhPT0gXCJ0b0pTT05cIiApIHtcclxuXHRcdFx0cmV0dXJuIGZhbHNlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHRydWU7XHJcbn1cclxualF1ZXJ5LmV4dGVuZCh7XHJcblx0cXVldWU6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBkYXRhICkge1xyXG5cdFx0dmFyIHF1ZXVlO1xyXG5cclxuXHRcdGlmICggZWxlbSApIHtcclxuXHRcdFx0dHlwZSA9ICggdHlwZSB8fCBcImZ4XCIgKSArIFwicXVldWVcIjtcclxuXHRcdFx0cXVldWUgPSBqUXVlcnkuX2RhdGEoIGVsZW0sIHR5cGUgKTtcclxuXHJcblx0XHRcdC8vIFNwZWVkIHVwIGRlcXVldWUgYnkgZ2V0dGluZyBvdXQgcXVpY2tseSBpZiB0aGlzIGlzIGp1c3QgYSBsb29rdXBcclxuXHRcdFx0aWYgKCBkYXRhICkge1xyXG5cdFx0XHRcdGlmICggIXF1ZXVlIHx8IGpRdWVyeS5pc0FycmF5KGRhdGEpICkge1xyXG5cdFx0XHRcdFx0cXVldWUgPSBqUXVlcnkuX2RhdGEoIGVsZW0sIHR5cGUsIGpRdWVyeS5tYWtlQXJyYXkoZGF0YSkgKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cXVldWUucHVzaCggZGF0YSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gcXVldWUgfHwgW107XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0ZGVxdWV1ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGUgKSB7XHJcblx0XHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XHJcblxyXG5cdFx0dmFyIHF1ZXVlID0galF1ZXJ5LnF1ZXVlKCBlbGVtLCB0eXBlICksXHJcblx0XHRcdHN0YXJ0TGVuZ3RoID0gcXVldWUubGVuZ3RoLFxyXG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCksXHJcblx0XHRcdGhvb2tzID0galF1ZXJ5Ll9xdWV1ZUhvb2tzKCBlbGVtLCB0eXBlICksXHJcblx0XHRcdG5leHQgPSBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggZWxlbSwgdHlwZSApO1xyXG5cdFx0XHR9O1xyXG5cclxuXHRcdC8vIElmIHRoZSBmeCBxdWV1ZSBpcyBkZXF1ZXVlZCwgYWx3YXlzIHJlbW92ZSB0aGUgcHJvZ3Jlc3Mgc2VudGluZWxcclxuXHRcdGlmICggZm4gPT09IFwiaW5wcm9ncmVzc1wiICkge1xyXG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCk7XHJcblx0XHRcdHN0YXJ0TGVuZ3RoLS07XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCBmbiApIHtcclxuXHJcblx0XHRcdC8vIEFkZCBhIHByb2dyZXNzIHNlbnRpbmVsIHRvIHByZXZlbnQgdGhlIGZ4IHF1ZXVlIGZyb20gYmVpbmdcclxuXHRcdFx0Ly8gYXV0b21hdGljYWxseSBkZXF1ZXVlZFxyXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwiZnhcIiApIHtcclxuXHRcdFx0XHRxdWV1ZS51bnNoaWZ0KCBcImlucHJvZ3Jlc3NcIiApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBjbGVhciB1cCB0aGUgbGFzdCBxdWV1ZSBzdG9wIGZ1bmN0aW9uXHJcblx0XHRcdGRlbGV0ZSBob29rcy5zdG9wO1xyXG5cdFx0XHRmbi5jYWxsKCBlbGVtLCBuZXh0LCBob29rcyApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggIXN0YXJ0TGVuZ3RoICYmIGhvb2tzICkge1xyXG5cdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Ly8gbm90IGludGVuZGVkIGZvciBwdWJsaWMgY29uc3VtcHRpb24gLSBnZW5lcmF0ZXMgYSBxdWV1ZUhvb2tzIG9iamVjdCwgb3IgcmV0dXJucyB0aGUgY3VycmVudCBvbmVcclxuXHRfcXVldWVIb29rczogZnVuY3Rpb24oIGVsZW0sIHR5cGUgKSB7XHJcblx0XHR2YXIga2V5ID0gdHlwZSArIFwicXVldWVIb29rc1wiO1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5fZGF0YSggZWxlbSwga2V5ICkgfHwgalF1ZXJ5Ll9kYXRhKCBlbGVtLCBrZXksIHtcclxuXHRcdFx0ZW1wdHk6IGpRdWVyeS5DYWxsYmFja3MoXCJvbmNlIG1lbW9yeVwiKS5hZGQoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0alF1ZXJ5LnJlbW92ZURhdGEoIGVsZW0sIHR5cGUgKyBcInF1ZXVlXCIsIHRydWUgKTtcclxuXHRcdFx0XHRqUXVlcnkucmVtb3ZlRGF0YSggZWxlbSwga2V5LCB0cnVlICk7XHJcblx0XHRcdH0pXHJcblx0XHR9KTtcclxuXHR9XHJcbn0pO1xyXG5cclxualF1ZXJ5LmZuLmV4dGVuZCh7XHJcblx0cXVldWU6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xyXG5cdFx0dmFyIHNldHRlciA9IDI7XHJcblxyXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0ZGF0YSA9IHR5cGU7XHJcblx0XHRcdHR5cGUgPSBcImZ4XCI7XHJcblx0XHRcdHNldHRlci0tO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCA8IHNldHRlciApIHtcclxuXHRcdFx0cmV0dXJuIGpRdWVyeS5xdWV1ZSggdGhpc1swXSwgdHlwZSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBkYXRhID09PSB1bmRlZmluZWQgP1xyXG5cdFx0XHR0aGlzIDpcclxuXHRcdFx0dGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApO1xyXG5cclxuXHRcdFx0XHQvLyBlbnN1cmUgYSBob29rcyBmb3IgdGhpcyBxdWV1ZVxyXG5cdFx0XHRcdGpRdWVyeS5fcXVldWVIb29rcyggdGhpcywgdHlwZSApO1xyXG5cclxuXHRcdFx0XHRpZiAoIHR5cGUgPT09IFwiZnhcIiAmJiBxdWV1ZVswXSAhPT0gXCJpbnByb2dyZXNzXCIgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0fSxcclxuXHRkZXF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcclxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XHJcblx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cdC8vIEJhc2VkIG9mZiBvZiB0aGUgcGx1Z2luIGJ5IENsaW50IEhlbGZlcnMsIHdpdGggcGVybWlzc2lvbi5cclxuXHQvLyBodHRwOi8vYmxpbmRzaWduYWxzLmNvbS9pbmRleC5waHAvMjAwOS8wNy9qcXVlcnktZGVsYXkvXHJcblx0ZGVsYXk6IGZ1bmN0aW9uKCB0aW1lLCB0eXBlICkge1xyXG5cdFx0dGltZSA9IGpRdWVyeS5meCA/IGpRdWVyeS5meC5zcGVlZHNbIHRpbWUgXSB8fCB0aW1lIDogdGltZTtcclxuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSwgZnVuY3Rpb24oIG5leHQsIGhvb2tzICkge1xyXG5cdFx0XHR2YXIgdGltZW91dCA9IHNldFRpbWVvdXQoIG5leHQsIHRpbWUgKTtcclxuXHRcdFx0aG9va3Muc3RvcCA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGNsZWFyVGltZW91dCggdGltZW91dCApO1xyXG5cdFx0XHR9O1xyXG5cdFx0fSk7XHJcblx0fSxcclxuXHRjbGVhclF1ZXVlOiBmdW5jdGlvbiggdHlwZSApIHtcclxuXHRcdHJldHVybiB0aGlzLnF1ZXVlKCB0eXBlIHx8IFwiZnhcIiwgW10gKTtcclxuXHR9LFxyXG5cdC8vIEdldCBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiBxdWV1ZXMgb2YgYSBjZXJ0YWluIHR5cGVcclxuXHQvLyBhcmUgZW1wdGllZCAoZnggaXMgdGhlIHR5cGUgYnkgZGVmYXVsdClcclxuXHRwcm9taXNlOiBmdW5jdGlvbiggdHlwZSwgb2JqICkge1xyXG5cdFx0dmFyIHRtcCxcclxuXHRcdFx0Y291bnQgPSAxLFxyXG5cdFx0XHRkZWZlciA9IGpRdWVyeS5EZWZlcnJlZCgpLFxyXG5cdFx0XHRlbGVtZW50cyA9IHRoaXMsXHJcblx0XHRcdGkgPSB0aGlzLmxlbmd0aCxcclxuXHRcdFx0cmVzb2x2ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGlmICggISggLS1jb3VudCApICkge1xyXG5cdFx0XHRcdFx0ZGVmZXIucmVzb2x2ZVdpdGgoIGVsZW1lbnRzLCBbIGVsZW1lbnRzIF0gKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH07XHJcblxyXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0b2JqID0gdHlwZTtcclxuXHRcdFx0dHlwZSA9IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcclxuXHJcblx0XHR3aGlsZSggaS0tICkge1xyXG5cdFx0XHR0bXAgPSBqUXVlcnkuX2RhdGEoIGVsZW1lbnRzWyBpIF0sIHR5cGUgKyBcInF1ZXVlSG9va3NcIiApO1xyXG5cdFx0XHRpZiAoIHRtcCAmJiB0bXAuZW1wdHkgKSB7XHJcblx0XHRcdFx0Y291bnQrKztcclxuXHRcdFx0XHR0bXAuZW1wdHkuYWRkKCByZXNvbHZlICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJlc29sdmUoKTtcclxuXHRcdHJldHVybiBkZWZlci5wcm9taXNlKCBvYmogKTtcclxuXHR9XHJcbn0pO1xyXG52YXIgbm9kZUhvb2ssIGJvb2xIb29rLCBmaXhTcGVjaWZpZWQsXHJcblx0cmNsYXNzID0gL1tcXHRcXHJcXG5dL2csXHJcblx0cnJldHVybiA9IC9cXHIvZyxcclxuXHRydHlwZSA9IC9eKD86YnV0dG9ufGlucHV0KSQvaSxcclxuXHRyZm9jdXNhYmxlID0gL14oPzpidXR0b258aW5wdXR8b2JqZWN0fHNlbGVjdHx0ZXh0YXJlYSkkL2ksXHJcblx0cmNsaWNrYWJsZSA9IC9eYSg/OnJlYXwpJC9pLFxyXG5cdHJib29sZWFuID0gL14oPzphdXRvZm9jdXN8YXV0b3BsYXl8YXN5bmN8Y2hlY2tlZHxjb250cm9sc3xkZWZlcnxkaXNhYmxlZHxoaWRkZW58bG9vcHxtdWx0aXBsZXxvcGVufHJlYWRvbmx5fHJlcXVpcmVkfHNjb3BlZHxzZWxlY3RlZCkkL2ksXHJcblx0Z2V0U2V0QXR0cmlidXRlID0galF1ZXJ5LnN1cHBvcnQuZ2V0U2V0QXR0cmlidXRlO1xyXG5cclxualF1ZXJ5LmZuLmV4dGVuZCh7XHJcblx0YXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIGpRdWVyeS5hdHRyLCBuYW1lLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgKTtcclxuXHR9LFxyXG5cclxuXHRyZW1vdmVBdHRyOiBmdW5jdGlvbiggbmFtZSApIHtcclxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XHJcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCB0aGlzLCBuYW1lICk7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cclxuXHRwcm9wOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LmFjY2VzcyggdGhpcywgalF1ZXJ5LnByb3AsIG5hbWUsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSApO1xyXG5cdH0sXHJcblxyXG5cdHJlbW92ZVByb3A6IGZ1bmN0aW9uKCBuYW1lICkge1xyXG5cdFx0bmFtZSA9IGpRdWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZTtcclxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XHJcblx0XHRcdC8vIHRyeS9jYXRjaCBoYW5kbGVzIGNhc2VzIHdoZXJlIElFIGJhbGtzIChzdWNoIGFzIHJlbW92aW5nIGEgcHJvcGVydHkgb24gd2luZG93KVxyXG5cdFx0XHR0cnkge1xyXG5cdFx0XHRcdHRoaXNbIG5hbWUgXSA9IHVuZGVmaW5lZDtcclxuXHRcdFx0XHRkZWxldGUgdGhpc1sgbmFtZSBdO1xyXG5cdFx0XHR9IGNhdGNoKCBlICkge31cclxuXHRcdH0pO1xyXG5cdH0sXHJcblxyXG5cdGFkZENsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XHJcblx0XHR2YXIgY2xhc3NOYW1lcywgaSwgbCwgZWxlbSxcclxuXHRcdFx0c2V0Q2xhc3MsIGMsIGNsO1xyXG5cclxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oIGogKSB7XHJcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkuYWRkQ2xhc3MoIHZhbHVlLmNhbGwodGhpcywgaiwgdGhpcy5jbGFzc05hbWUpICk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggdmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICkge1xyXG5cdFx0XHRjbGFzc05hbWVzID0gdmFsdWUuc3BsaXQoIGNvcmVfcnNwYWNlICk7XHJcblxyXG5cdFx0XHRmb3IgKCBpID0gMCwgbCA9IHRoaXMubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xyXG5cdFx0XHRcdGVsZW0gPSB0aGlzWyBpIF07XHJcblxyXG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcclxuXHRcdFx0XHRcdGlmICggIWVsZW0uY2xhc3NOYW1lICYmIGNsYXNzTmFtZXMubGVuZ3RoID09PSAxICkge1xyXG5cdFx0XHRcdFx0XHRlbGVtLmNsYXNzTmFtZSA9IHZhbHVlO1xyXG5cclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHNldENsYXNzID0gXCIgXCIgKyBlbGVtLmNsYXNzTmFtZSArIFwiIFwiO1xyXG5cclxuXHRcdFx0XHRcdFx0Zm9yICggYyA9IDAsIGNsID0gY2xhc3NOYW1lcy5sZW5ndGg7IGMgPCBjbDsgYysrICkge1xyXG5cdFx0XHRcdFx0XHRcdGlmICggIX5zZXRDbGFzcy5pbmRleE9mKCBcIiBcIiArIGNsYXNzTmFtZXNbIGMgXSArIFwiIFwiICkgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRzZXRDbGFzcyArPSBjbGFzc05hbWVzWyBjIF0gKyBcIiBcIjtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0ZWxlbS5jbGFzc05hbWUgPSBqUXVlcnkudHJpbSggc2V0Q2xhc3MgKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcztcclxuXHR9LFxyXG5cclxuXHRyZW1vdmVDbGFzczogZnVuY3Rpb24oIHZhbHVlICkge1xyXG5cdFx0dmFyIHJlbW92ZXMsIGNsYXNzTmFtZSwgZWxlbSwgYywgY2wsIGksIGw7XHJcblxyXG5cdFx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaiApIHtcclxuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5yZW1vdmVDbGFzcyggdmFsdWUuY2FsbCh0aGlzLCBqLCB0aGlzLmNsYXNzTmFtZSkgKTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0XHRpZiAoICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIpIHx8IHZhbHVlID09PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdHJlbW92ZXMgPSAoIHZhbHVlIHx8IFwiXCIgKS5zcGxpdCggY29yZV9yc3BhY2UgKTtcclxuXHJcblx0XHRcdGZvciAoIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XHJcblx0XHRcdFx0ZWxlbSA9IHRoaXNbIGkgXTtcclxuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgZWxlbS5jbGFzc05hbWUgKSB7XHJcblxyXG5cdFx0XHRcdFx0Y2xhc3NOYW1lID0gKFwiIFwiICsgZWxlbS5jbGFzc05hbWUgKyBcIiBcIikucmVwbGFjZSggcmNsYXNzLCBcIiBcIiApO1xyXG5cclxuXHRcdFx0XHRcdC8vIGxvb3Agb3ZlciBlYWNoIGl0ZW0gaW4gdGhlIHJlbW92YWwgbGlzdFxyXG5cdFx0XHRcdFx0Zm9yICggYyA9IDAsIGNsID0gcmVtb3Zlcy5sZW5ndGg7IGMgPCBjbDsgYysrICkge1xyXG5cdFx0XHRcdFx0XHQvLyBSZW1vdmUgdW50aWwgdGhlcmUgaXMgbm90aGluZyB0byByZW1vdmUsXHJcblx0XHRcdFx0XHRcdHdoaWxlICggY2xhc3NOYW1lLmluZGV4T2YoXCIgXCIgKyByZW1vdmVzWyBjIF0gKyBcIiBcIikgPiAtMSApIHtcclxuXHRcdFx0XHRcdFx0XHRjbGFzc05hbWUgPSBjbGFzc05hbWUucmVwbGFjZSggXCIgXCIgKyByZW1vdmVzWyBjIF0gKyBcIiBcIiAsIFwiIFwiICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsZW0uY2xhc3NOYW1lID0gdmFsdWUgPyBqUXVlcnkudHJpbSggY2xhc3NOYW1lICkgOiBcIlwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH0sXHJcblxyXG5cdHRvZ2dsZUNsYXNzOiBmdW5jdGlvbiggdmFsdWUsIHN0YXRlVmFsICkge1xyXG5cdFx0dmFyIHR5cGUgPSB0eXBlb2YgdmFsdWUsXHJcblx0XHRcdGlzQm9vbCA9IHR5cGVvZiBzdGF0ZVZhbCA9PT0gXCJib29sZWFuXCI7XHJcblxyXG5cdFx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKSApIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbiggaSApIHtcclxuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS50b2dnbGVDbGFzcyggdmFsdWUuY2FsbCh0aGlzLCBpLCB0aGlzLmNsYXNzTmFtZSwgc3RhdGVWYWwpLCBzdGF0ZVZhbCApO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwic3RyaW5nXCIgKSB7XHJcblx0XHRcdFx0Ly8gdG9nZ2xlIGluZGl2aWR1YWwgY2xhc3MgbmFtZXNcclxuXHRcdFx0XHR2YXIgY2xhc3NOYW1lLFxyXG5cdFx0XHRcdFx0aSA9IDAsXHJcblx0XHRcdFx0XHRzZWxmID0galF1ZXJ5KCB0aGlzICksXHJcblx0XHRcdFx0XHRzdGF0ZSA9IHN0YXRlVmFsLFxyXG5cdFx0XHRcdFx0Y2xhc3NOYW1lcyA9IHZhbHVlLnNwbGl0KCBjb3JlX3JzcGFjZSApO1xyXG5cclxuXHRcdFx0XHR3aGlsZSAoIChjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSkgKSB7XHJcblx0XHRcdFx0XHQvLyBjaGVjayBlYWNoIGNsYXNzTmFtZSBnaXZlbiwgc3BhY2Ugc2VwYXJhdGVkIGxpc3RcclxuXHRcdFx0XHRcdHN0YXRlID0gaXNCb29sID8gc3RhdGUgOiAhc2VsZi5oYXNDbGFzcyggY2xhc3NOYW1lICk7XHJcblx0XHRcdFx0XHRzZWxmWyBzdGF0ZSA/IFwiYWRkQ2xhc3NcIiA6IFwicmVtb3ZlQ2xhc3NcIiBdKCBjbGFzc05hbWUgKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHR9IGVsc2UgaWYgKCB0eXBlID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGUgPT09IFwiYm9vbGVhblwiICkge1xyXG5cdFx0XHRcdGlmICggdGhpcy5jbGFzc05hbWUgKSB7XHJcblx0XHRcdFx0XHQvLyBzdG9yZSBjbGFzc05hbWUgaWYgc2V0XHJcblx0XHRcdFx0XHRqUXVlcnkuX2RhdGEoIHRoaXMsIFwiX19jbGFzc05hbWVfX1wiLCB0aGlzLmNsYXNzTmFtZSApO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gdG9nZ2xlIHdob2xlIGNsYXNzTmFtZVxyXG5cdFx0XHRcdHRoaXMuY2xhc3NOYW1lID0gdGhpcy5jbGFzc05hbWUgfHwgdmFsdWUgPT09IGZhbHNlID8gXCJcIiA6IGpRdWVyeS5fZGF0YSggdGhpcywgXCJfX2NsYXNzTmFtZV9fXCIgKSB8fCBcIlwiO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cclxuXHRoYXNDbGFzczogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xyXG5cdFx0dmFyIGNsYXNzTmFtZSA9IFwiIFwiICsgc2VsZWN0b3IgKyBcIiBcIixcclxuXHRcdFx0aSA9IDAsXHJcblx0XHRcdGwgPSB0aGlzLmxlbmd0aDtcclxuXHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcclxuXHRcdFx0aWYgKCB0aGlzW2ldLm5vZGVUeXBlID09PSAxICYmIChcIiBcIiArIHRoaXNbaV0uY2xhc3NOYW1lICsgXCIgXCIpLnJlcGxhY2UocmNsYXNzLCBcIiBcIikuaW5kZXhPZiggY2xhc3NOYW1lICkgPiAtMSApIHtcclxuXHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9LFxyXG5cclxuXHR2YWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcclxuXHRcdHZhciBob29rcywgcmV0LCBpc0Z1bmN0aW9uLFxyXG5cdFx0XHRlbGVtID0gdGhpc1swXTtcclxuXHJcblx0XHRpZiAoICFhcmd1bWVudHMubGVuZ3RoICkge1xyXG5cdFx0XHRpZiAoIGVsZW0gKSB7XHJcblx0XHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIGVsZW0udHlwZSBdIHx8IGpRdWVyeS52YWxIb29rc1sgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XHJcblxyXG5cdFx0XHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJiAocmV0ID0gaG9va3MuZ2V0KCBlbGVtLCBcInZhbHVlXCIgKSkgIT09IHVuZGVmaW5lZCApIHtcclxuXHRcdFx0XHRcdHJldHVybiByZXQ7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRyZXQgPSBlbGVtLnZhbHVlO1xyXG5cclxuXHRcdFx0XHRyZXR1cm4gdHlwZW9mIHJldCA9PT0gXCJzdHJpbmdcIiA/XHJcblx0XHRcdFx0XHQvLyBoYW5kbGUgbW9zdCBjb21tb24gc3RyaW5nIGNhc2VzXHJcblx0XHRcdFx0XHRyZXQucmVwbGFjZShycmV0dXJuLCBcIlwiKSA6XHJcblx0XHRcdFx0XHQvLyBoYW5kbGUgY2FzZXMgd2hlcmUgdmFsdWUgaXMgbnVsbC91bmRlZiBvciBudW1iZXJcclxuXHRcdFx0XHRcdHJldCA9PSBudWxsID8gXCJcIiA6IHJldDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlzRnVuY3Rpb24gPSBqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCBpICkge1xyXG5cdFx0XHR2YXIgdmFsLFxyXG5cdFx0XHRcdHNlbGYgPSBqUXVlcnkodGhpcyk7XHJcblxyXG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoIGlzRnVuY3Rpb24gKSB7XHJcblx0XHRcdFx0dmFsID0gdmFsdWUuY2FsbCggdGhpcywgaSwgc2VsZi52YWwoKSApO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHZhbCA9IHZhbHVlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBUcmVhdCBudWxsL3VuZGVmaW5lZCBhcyBcIlwiOyBjb252ZXJ0IG51bWJlcnMgdG8gc3RyaW5nXHJcblx0XHRcdGlmICggdmFsID09IG51bGwgKSB7XHJcblx0XHRcdFx0dmFsID0gXCJcIjtcclxuXHRcdFx0fSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiApIHtcclxuXHRcdFx0XHR2YWwgKz0gXCJcIjtcclxuXHRcdFx0fSBlbHNlIGlmICggalF1ZXJ5LmlzQXJyYXkoIHZhbCApICkge1xyXG5cdFx0XHRcdHZhbCA9IGpRdWVyeS5tYXAodmFsLCBmdW5jdGlvbiAoIHZhbHVlICkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKyBcIlwiO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRob29rcyA9IGpRdWVyeS52YWxIb29rc1sgdGhpcy50eXBlIF0gfHwgalF1ZXJ5LnZhbEhvb2tzWyB0aGlzLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgXTtcclxuXHJcblx0XHRcdC8vIElmIHNldCByZXR1cm5zIHVuZGVmaW5lZCwgZmFsbCBiYWNrIHRvIG5vcm1hbCBzZXR0aW5nXHJcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoXCJzZXRcIiBpbiBob29rcykgfHwgaG9va3Muc2V0KCB0aGlzLCB2YWwsIFwidmFsdWVcIiApID09PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdFx0dGhpcy52YWx1ZSA9IHZhbDtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG59KTtcclxuXHJcbmpRdWVyeS5leHRlbmQoe1xyXG5cdHZhbEhvb2tzOiB7XHJcblx0XHRvcHRpb246IHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHQvLyBhdHRyaWJ1dGVzLnZhbHVlIGlzIHVuZGVmaW5lZCBpbiBCbGFja2JlcnJ5IDQuNyBidXRcclxuXHRcdFx0XHQvLyB1c2VzIC52YWx1ZS4gU2VlICM2OTMyXHJcblx0XHRcdFx0dmFyIHZhbCA9IGVsZW0uYXR0cmlidXRlcy52YWx1ZTtcclxuXHRcdFx0XHRyZXR1cm4gIXZhbCB8fCB2YWwuc3BlY2lmaWVkID8gZWxlbS52YWx1ZSA6IGVsZW0udGV4dDtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdHNlbGVjdDoge1xyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRcdHZhciB2YWx1ZSwgaSwgbWF4LCBvcHRpb24sXHJcblx0XHRcdFx0XHRpbmRleCA9IGVsZW0uc2VsZWN0ZWRJbmRleCxcclxuXHRcdFx0XHRcdHZhbHVlcyA9IFtdLFxyXG5cdFx0XHRcdFx0b3B0aW9ucyA9IGVsZW0ub3B0aW9ucyxcclxuXHRcdFx0XHRcdG9uZSA9IGVsZW0udHlwZSA9PT0gXCJzZWxlY3Qtb25lXCI7XHJcblxyXG5cdFx0XHRcdC8vIE5vdGhpbmcgd2FzIHNlbGVjdGVkXHJcblx0XHRcdFx0aWYgKCBpbmRleCA8IDAgKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIHNlbGVjdGVkIG9wdGlvbnNcclxuXHRcdFx0XHRpID0gb25lID8gaW5kZXggOiAwO1xyXG5cdFx0XHRcdG1heCA9IG9uZSA/IGluZGV4ICsgMSA6IG9wdGlvbnMubGVuZ3RoO1xyXG5cdFx0XHRcdGZvciAoIDsgaSA8IG1heDsgaSsrICkge1xyXG5cdFx0XHRcdFx0b3B0aW9uID0gb3B0aW9uc1sgaSBdO1xyXG5cclxuXHRcdFx0XHRcdC8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXBcclxuXHRcdFx0XHRcdGlmICggb3B0aW9uLnNlbGVjdGVkICYmIChqUXVlcnkuc3VwcG9ydC5vcHREaXNhYmxlZCA/ICFvcHRpb24uZGlzYWJsZWQgOiBvcHRpb24uZ2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIikgPT09IG51bGwpICYmXHJcblx0XHRcdFx0XHRcdFx0KCFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fCAhalF1ZXJ5Lm5vZGVOYW1lKCBvcHRpb24ucGFyZW50Tm9kZSwgXCJvcHRncm91cFwiICkpICkge1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gR2V0IHRoZSBzcGVjaWZpYyB2YWx1ZSBmb3IgdGhlIG9wdGlvblxyXG5cdFx0XHRcdFx0XHR2YWx1ZSA9IGpRdWVyeSggb3B0aW9uICkudmFsKCk7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBXZSBkb24ndCBuZWVkIGFuIGFycmF5IGZvciBvbmUgc2VsZWN0c1xyXG5cdFx0XHRcdFx0XHRpZiAoIG9uZSApIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIE11bHRpLVNlbGVjdHMgcmV0dXJuIGFuIGFycmF5XHJcblx0XHRcdFx0XHRcdHZhbHVlcy5wdXNoKCB2YWx1ZSApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gRml4ZXMgQnVnICMyNTUxIC0tIHNlbGVjdC52YWwoKSBicm9rZW4gaW4gSUUgYWZ0ZXIgZm9ybS5yZXNldCgpXHJcblx0XHRcdFx0aWYgKCBvbmUgJiYgIXZhbHVlcy5sZW5ndGggJiYgb3B0aW9ucy5sZW5ndGggKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4galF1ZXJ5KCBvcHRpb25zWyBpbmRleCBdICkudmFsKCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XHJcblx0XHRcdFx0dmFyIHZhbHVlcyA9IGpRdWVyeS5tYWtlQXJyYXkoIHZhbHVlICk7XHJcblxyXG5cdFx0XHRcdGpRdWVyeShlbGVtKS5maW5kKFwib3B0aW9uXCIpLmVhY2goZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHR0aGlzLnNlbGVjdGVkID0galF1ZXJ5LmluQXJyYXkoIGpRdWVyeSh0aGlzKS52YWwoKSwgdmFsdWVzICkgPj0gMDtcclxuXHRcdFx0XHR9KTtcclxuXHJcblx0XHRcdFx0aWYgKCAhdmFsdWVzLmxlbmd0aCApIHtcclxuXHRcdFx0XHRcdGVsZW0uc2VsZWN0ZWRJbmRleCA9IC0xO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Ly8gVW51c2VkIGluIDEuOCwgbGVmdCBpbiBzbyBhdHRyRm4tc3RhYmJlcnMgd29uJ3QgZGllOyByZW1vdmUgaW4gMS45XHJcblx0YXR0ckZuOiB7fSxcclxuXHJcblx0YXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlLCBwYXNzICkge1xyXG5cdFx0dmFyIHJldCwgaG9va3MsIG5vdHhtbCxcclxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xyXG5cclxuXHRcdC8vIGRvbid0IGdldC9zZXQgYXR0cmlidXRlcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcclxuXHRcdGlmICggIWVsZW0gfHwgblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIHBhc3MgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIGpRdWVyeS5mblsgbmFtZSBdICkgKSB7XHJcblx0XHRcdHJldHVybiBqUXVlcnkoIGVsZW0gKVsgbmFtZSBdKCB2YWx1ZSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEZhbGxiYWNrIHRvIHByb3Agd2hlbiBhdHRyaWJ1dGVzIGFyZSBub3Qgc3VwcG9ydGVkXHJcblx0XHRpZiAoIHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcclxuXHRcdFx0cmV0dXJuIGpRdWVyeS5wcm9wKCBlbGVtLCBuYW1lLCB2YWx1ZSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdG5vdHhtbCA9IG5UeXBlICE9PSAxIHx8ICFqUXVlcnkuaXNYTUxEb2MoIGVsZW0gKTtcclxuXHJcblx0XHQvLyBBbGwgYXR0cmlidXRlcyBhcmUgbG93ZXJjYXNlXHJcblx0XHQvLyBHcmFiIG5lY2Vzc2FyeSBob29rIGlmIG9uZSBpcyBkZWZpbmVkXHJcblx0XHRpZiAoIG5vdHhtbCApIHtcclxuXHRcdFx0bmFtZSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcclxuXHRcdFx0aG9va3MgPSBqUXVlcnkuYXR0ckhvb2tzWyBuYW1lIF0gfHwgKCByYm9vbGVhbi50ZXN0KCBuYW1lICkgPyBib29sSG9vayA6IG5vZGVIb29rICk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xyXG5cclxuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gbnVsbCApIHtcclxuXHRcdFx0XHRqUXVlcnkucmVtb3ZlQXR0ciggZWxlbSwgbmFtZSApO1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHJcblx0XHRcdH0gZWxzZSBpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiYgbm90eG1sICYmIChyZXQgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBuYW1lICkpICE9PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdFx0cmV0dXJuIHJldDtcclxuXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIFwiXCIgKyB2YWx1ZSApO1xyXG5cdFx0XHRcdHJldHVybiB2YWx1ZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdH0gZWxzZSBpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgJiYgbm90eG1sICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSkgIT09IG51bGwgKSB7XHJcblx0XHRcdHJldHVybiByZXQ7XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHJcblx0XHRcdHJldCA9IGVsZW0uZ2V0QXR0cmlidXRlKCBuYW1lICk7XHJcblxyXG5cdFx0XHQvLyBOb24tZXhpc3RlbnQgYXR0cmlidXRlcyByZXR1cm4gbnVsbCwgd2Ugbm9ybWFsaXplIHRvIHVuZGVmaW5lZFxyXG5cdFx0XHRyZXR1cm4gcmV0ID09PSBudWxsID9cclxuXHRcdFx0XHR1bmRlZmluZWQgOlxyXG5cdFx0XHRcdHJldDtcclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHRyZW1vdmVBdHRyOiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XHJcblx0XHR2YXIgcHJvcE5hbWUsIGF0dHJOYW1lcywgbmFtZSwgaXNCb29sLFxyXG5cdFx0XHRpID0gMDtcclxuXHJcblx0XHRpZiAoIHZhbHVlICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XHJcblxyXG5cdFx0XHRhdHRyTmFtZXMgPSB2YWx1ZS5zcGxpdCggY29yZV9yc3BhY2UgKTtcclxuXHJcblx0XHRcdGZvciAoIDsgaSA8IGF0dHJOYW1lcy5sZW5ndGg7IGkrKyApIHtcclxuXHRcdFx0XHRuYW1lID0gYXR0ck5hbWVzWyBpIF07XHJcblxyXG5cdFx0XHRcdGlmICggbmFtZSApIHtcclxuXHRcdFx0XHRcdHByb3BOYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lO1xyXG5cdFx0XHRcdFx0aXNCb29sID0gcmJvb2xlYW4udGVzdCggbmFtZSApO1xyXG5cclxuXHRcdFx0XHRcdC8vIFNlZSAjOTY5OSBmb3IgZXhwbGFuYXRpb24gb2YgdGhpcyBhcHByb2FjaCAoc2V0dGluZyBmaXJzdCwgdGhlbiByZW1vdmFsKVxyXG5cdFx0XHRcdFx0Ly8gRG8gbm90IGRvIHRoaXMgZm9yIGJvb2xlYW4gYXR0cmlidXRlcyAoc2VlICMxMDg3MClcclxuXHRcdFx0XHRcdGlmICggIWlzQm9vbCApIHtcclxuXHRcdFx0XHRcdFx0alF1ZXJ5LmF0dHIoIGVsZW0sIG5hbWUsIFwiXCIgKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKCBnZXRTZXRBdHRyaWJ1dGUgPyBuYW1lIDogcHJvcE5hbWUgKTtcclxuXHJcblx0XHRcdFx0XHQvLyBTZXQgY29ycmVzcG9uZGluZyBwcm9wZXJ0eSB0byBmYWxzZSBmb3IgYm9vbGVhbiBhdHRyaWJ1dGVzXHJcblx0XHRcdFx0XHRpZiAoIGlzQm9vbCAmJiBwcm9wTmFtZSBpbiBlbGVtICkge1xyXG5cdFx0XHRcdFx0XHRlbGVtWyBwcm9wTmFtZSBdID0gZmFsc2U7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0YXR0ckhvb2tzOiB7XHJcblx0XHR0eXBlOiB7XHJcblx0XHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xyXG5cdFx0XHRcdC8vIFdlIGNhbid0IGFsbG93IHRoZSB0eXBlIHByb3BlcnR5IHRvIGJlIGNoYW5nZWQgKHNpbmNlIGl0IGNhdXNlcyBwcm9ibGVtcyBpbiBJRSlcclxuXHRcdFx0XHRpZiAoIHJ0eXBlLnRlc3QoIGVsZW0ubm9kZU5hbWUgKSAmJiBlbGVtLnBhcmVudE5vZGUgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkuZXJyb3IoIFwidHlwZSBwcm9wZXJ0eSBjYW4ndCBiZSBjaGFuZ2VkXCIgKTtcclxuXHRcdFx0XHR9IGVsc2UgaWYgKCAhalF1ZXJ5LnN1cHBvcnQucmFkaW9WYWx1ZSAmJiB2YWx1ZSA9PT0gXCJyYWRpb1wiICYmIGpRdWVyeS5ub2RlTmFtZShlbGVtLCBcImlucHV0XCIpICkge1xyXG5cdFx0XHRcdFx0Ly8gU2V0dGluZyB0aGUgdHlwZSBvbiBhIHJhZGlvIGJ1dHRvbiBhZnRlciB0aGUgdmFsdWUgcmVzZXRzIHRoZSB2YWx1ZSBpbiBJRTYtOVxyXG5cdFx0XHRcdFx0Ly8gUmVzZXQgdmFsdWUgdG8gaXQncyBkZWZhdWx0IGluIGNhc2UgdHlwZSBpcyBzZXQgYWZ0ZXIgdmFsdWVcclxuXHRcdFx0XHRcdC8vIFRoaXMgaXMgZm9yIGVsZW1lbnQgY3JlYXRpb25cclxuXHRcdFx0XHRcdHZhciB2YWwgPSBlbGVtLnZhbHVlO1xyXG5cdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCB2YWx1ZSApO1xyXG5cdFx0XHRcdFx0aWYgKCB2YWwgKSB7XHJcblx0XHRcdFx0XHRcdGVsZW0udmFsdWUgPSB2YWw7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cdFx0Ly8gVXNlIHRoZSB2YWx1ZSBwcm9wZXJ0eSBmb3IgYmFjayBjb21wYXRcclxuXHRcdC8vIFVzZSB0aGUgbm9kZUhvb2sgZm9yIGJ1dHRvbiBlbGVtZW50cyBpbiBJRTYvNyAoIzE5NTQpXHJcblx0XHR2YWx1ZToge1xyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xyXG5cdFx0XHRcdGlmICggbm9kZUhvb2sgJiYgalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCBcImJ1dHRvblwiICkgKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gbm9kZUhvb2suZ2V0KCBlbGVtLCBuYW1lICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdHJldHVybiBuYW1lIGluIGVsZW0gP1xyXG5cdFx0XHRcdFx0ZWxlbS52YWx1ZSA6XHJcblx0XHRcdFx0XHRudWxsO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgbmFtZSApIHtcclxuXHRcdFx0XHRpZiAoIG5vZGVIb29rICYmIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJidXR0b25cIiApICkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG5vZGVIb29rLnNldCggZWxlbSwgdmFsdWUsIG5hbWUgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Ly8gRG9lcyBub3QgcmV0dXJuIHNvIHRoYXQgc2V0QXR0cmlidXRlIGlzIGFsc28gdXNlZFxyXG5cdFx0XHRcdGVsZW0udmFsdWUgPSB2YWx1ZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdHByb3BGaXg6IHtcclxuXHRcdHRhYmluZGV4OiBcInRhYkluZGV4XCIsXHJcblx0XHRyZWFkb25seTogXCJyZWFkT25seVwiLFxyXG5cdFx0XCJmb3JcIjogXCJodG1sRm9yXCIsXHJcblx0XHRcImNsYXNzXCI6IFwiY2xhc3NOYW1lXCIsXHJcblx0XHRtYXhsZW5ndGg6IFwibWF4TGVuZ3RoXCIsXHJcblx0XHRjZWxsc3BhY2luZzogXCJjZWxsU3BhY2luZ1wiLFxyXG5cdFx0Y2VsbHBhZGRpbmc6IFwiY2VsbFBhZGRpbmdcIixcclxuXHRcdHJvd3NwYW46IFwicm93U3BhblwiLFxyXG5cdFx0Y29sc3BhbjogXCJjb2xTcGFuXCIsXHJcblx0XHR1c2VtYXA6IFwidXNlTWFwXCIsXHJcblx0XHRmcmFtZWJvcmRlcjogXCJmcmFtZUJvcmRlclwiLFxyXG5cdFx0Y29udGVudGVkaXRhYmxlOiBcImNvbnRlbnRFZGl0YWJsZVwiXHJcblx0fSxcclxuXHJcblx0cHJvcDogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xyXG5cdFx0dmFyIHJldCwgaG9va3MsIG5vdHhtbCxcclxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xyXG5cclxuXHRcdC8vIGRvbid0IGdldC9zZXQgcHJvcGVydGllcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcclxuXHRcdGlmICggIWVsZW0gfHwgblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRub3R4bWwgPSBuVHlwZSAhPT0gMSB8fCAhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICk7XHJcblxyXG5cdFx0aWYgKCBub3R4bWwgKSB7XHJcblx0XHRcdC8vIEZpeCBuYW1lIGFuZCBhdHRhY2ggaG9va3NcclxuXHRcdFx0bmFtZSA9IGpRdWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZTtcclxuXHRcdFx0aG9va3MgPSBqUXVlcnkucHJvcEhvb2tzWyBuYW1lIF07XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHRpZiAoIGhvb2tzICYmIFwic2V0XCIgaW4gaG9va3MgJiYgKHJldCA9IGhvb2tzLnNldCggZWxlbSwgdmFsdWUsIG5hbWUgKSkgIT09IHVuZGVmaW5lZCApIHtcclxuXHRcdFx0XHRyZXR1cm4gcmV0O1xyXG5cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRyZXR1cm4gKCBlbGVtWyBuYW1lIF0gPSB2YWx1ZSApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSkgIT09IG51bGwgKSB7XHJcblx0XHRcdFx0cmV0dXJuIHJldDtcclxuXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0cmV0dXJuIGVsZW1bIG5hbWUgXTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdHByb3BIb29rczoge1xyXG5cdFx0dGFiSW5kZXg6IHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHQvLyBlbGVtLnRhYkluZGV4IGRvZXNuJ3QgYWx3YXlzIHJldHVybiB0aGUgY29ycmVjdCB2YWx1ZSB3aGVuIGl0IGhhc24ndCBiZWVuIGV4cGxpY2l0bHkgc2V0XHJcblx0XHRcdFx0Ly8gaHR0cDovL2ZsdWlkcHJvamVjdC5vcmcvYmxvZy8yMDA4LzAxLzA5L2dldHRpbmctc2V0dGluZy1hbmQtcmVtb3ZpbmctdGFiaW5kZXgtdmFsdWVzLXdpdGgtamF2YXNjcmlwdC9cclxuXHRcdFx0XHR2YXIgYXR0cmlidXRlTm9kZSA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZShcInRhYmluZGV4XCIpO1xyXG5cclxuXHRcdFx0XHRyZXR1cm4gYXR0cmlidXRlTm9kZSAmJiBhdHRyaWJ1dGVOb2RlLnNwZWNpZmllZCA/XHJcblx0XHRcdFx0XHRwYXJzZUludCggYXR0cmlidXRlTm9kZS52YWx1ZSwgMTAgKSA6XHJcblx0XHRcdFx0XHRyZm9jdXNhYmxlLnRlc3QoIGVsZW0ubm9kZU5hbWUgKSB8fCByY2xpY2thYmxlLnRlc3QoIGVsZW0ubm9kZU5hbWUgKSAmJiBlbGVtLmhyZWYgP1xyXG5cdFx0XHRcdFx0XHQwIDpcclxuXHRcdFx0XHRcdFx0dW5kZWZpbmVkO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59KTtcclxuXHJcbi8vIEhvb2sgZm9yIGJvb2xlYW4gYXR0cmlidXRlc1xyXG5ib29sSG9vayA9IHtcclxuXHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xyXG5cdFx0Ly8gQWxpZ24gYm9vbGVhbiBhdHRyaWJ1dGVzIHdpdGggY29ycmVzcG9uZGluZyBwcm9wZXJ0aWVzXHJcblx0XHQvLyBGYWxsIGJhY2sgdG8gYXR0cmlidXRlIHByZXNlbmNlIHdoZXJlIHNvbWUgYm9vbGVhbnMgYXJlIG5vdCBzdXBwb3J0ZWRcclxuXHRcdHZhciBhdHRyTm9kZSxcclxuXHRcdFx0cHJvcGVydHkgPSBqUXVlcnkucHJvcCggZWxlbSwgbmFtZSApO1xyXG5cdFx0cmV0dXJuIHByb3BlcnR5ID09PSB0cnVlIHx8IHR5cGVvZiBwcm9wZXJ0eSAhPT0gXCJib29sZWFuXCIgJiYgKCBhdHRyTm9kZSA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZShuYW1lKSApICYmIGF0dHJOb2RlLm5vZGVWYWx1ZSAhPT0gZmFsc2UgP1xyXG5cdFx0XHRuYW1lLnRvTG93ZXJDYXNlKCkgOlxyXG5cdFx0XHR1bmRlZmluZWQ7XHJcblx0fSxcclxuXHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgbmFtZSApIHtcclxuXHRcdHZhciBwcm9wTmFtZTtcclxuXHRcdGlmICggdmFsdWUgPT09IGZhbHNlICkge1xyXG5cdFx0XHQvLyBSZW1vdmUgYm9vbGVhbiBhdHRyaWJ1dGVzIHdoZW4gc2V0IHRvIGZhbHNlXHJcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCBlbGVtLCBuYW1lICk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyB2YWx1ZSBpcyB0cnVlIHNpbmNlIHdlIGtub3cgYXQgdGhpcyBwb2ludCBpdCdzIHR5cGUgYm9vbGVhbiBhbmQgbm90IGZhbHNlXHJcblx0XHRcdC8vIFNldCBib29sZWFuIGF0dHJpYnV0ZXMgdG8gdGhlIHNhbWUgbmFtZSBhbmQgc2V0IHRoZSBET00gcHJvcGVydHlcclxuXHRcdFx0cHJvcE5hbWUgPSBqUXVlcnkucHJvcEZpeFsgbmFtZSBdIHx8IG5hbWU7XHJcblx0XHRcdGlmICggcHJvcE5hbWUgaW4gZWxlbSApIHtcclxuXHRcdFx0XHQvLyBPbmx5IHNldCB0aGUgSURMIHNwZWNpZmljYWxseSBpZiBpdCBhbHJlYWR5IGV4aXN0cyBvbiB0aGUgZWxlbWVudFxyXG5cdFx0XHRcdGVsZW1bIHByb3BOYW1lIF0gPSB0cnVlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRlbGVtLnNldEF0dHJpYnV0ZSggbmFtZSwgbmFtZS50b0xvd2VyQ2FzZSgpICk7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gbmFtZTtcclxuXHR9XHJcbn07XHJcblxyXG4vLyBJRTYvNyBkbyBub3Qgc3VwcG9ydCBnZXR0aW5nL3NldHRpbmcgc29tZSBhdHRyaWJ1dGVzIHdpdGggZ2V0L3NldEF0dHJpYnV0ZVxyXG5pZiAoICFnZXRTZXRBdHRyaWJ1dGUgKSB7XHJcblxyXG5cdGZpeFNwZWNpZmllZCA9IHtcclxuXHRcdG5hbWU6IHRydWUsXHJcblx0XHRpZDogdHJ1ZSxcclxuXHRcdGNvb3JkczogdHJ1ZVxyXG5cdH07XHJcblxyXG5cdC8vIFVzZSB0aGlzIGZvciBhbnkgYXR0cmlidXRlIGluIElFNi83XHJcblx0Ly8gVGhpcyBmaXhlcyBhbG1vc3QgZXZlcnkgSUU2LzcgaXNzdWVcclxuXHRub2RlSG9vayA9IGpRdWVyeS52YWxIb29rcy5idXR0b24gPSB7XHJcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xyXG5cdFx0XHR2YXIgcmV0O1xyXG5cdFx0XHRyZXQgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIG5hbWUgKTtcclxuXHRcdFx0cmV0dXJuIHJldCAmJiAoIGZpeFNwZWNpZmllZFsgbmFtZSBdID8gcmV0LnZhbHVlICE9PSBcIlwiIDogcmV0LnNwZWNpZmllZCApID9cclxuXHRcdFx0XHRyZXQudmFsdWUgOlxyXG5cdFx0XHRcdHVuZGVmaW5lZDtcclxuXHRcdH0sXHJcblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgbmFtZSApIHtcclxuXHRcdFx0Ly8gU2V0IHRoZSBleGlzdGluZyBvciBjcmVhdGUgYSBuZXcgYXR0cmlidXRlIG5vZGVcclxuXHRcdFx0dmFyIHJldCA9IGVsZW0uZ2V0QXR0cmlidXRlTm9kZSggbmFtZSApO1xyXG5cdFx0XHRpZiAoICFyZXQgKSB7XHJcblx0XHRcdFx0cmV0ID0gZG9jdW1lbnQuY3JlYXRlQXR0cmlidXRlKCBuYW1lICk7XHJcblx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGVOb2RlKCByZXQgKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gKCByZXQudmFsdWUgPSB2YWx1ZSArIFwiXCIgKTtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHQvLyBTZXQgd2lkdGggYW5kIGhlaWdodCB0byBhdXRvIGluc3RlYWQgb2YgMCBvbiBlbXB0eSBzdHJpbmcoIEJ1ZyAjODE1MCApXHJcblx0Ly8gVGhpcyBpcyBmb3IgcmVtb3ZhbHNcclxuXHRqUXVlcnkuZWFjaChbIFwid2lkdGhcIiwgXCJoZWlnaHRcIiBdLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcclxuXHRcdGpRdWVyeS5hdHRySG9va3NbIG5hbWUgXSA9IGpRdWVyeS5leHRlbmQoIGpRdWVyeS5hdHRySG9va3NbIG5hbWUgXSwge1xyXG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcclxuXHRcdFx0XHRpZiAoIHZhbHVlID09PSBcIlwiICkge1xyXG5cdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIFwiYXV0b1wiICk7XHJcblx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9KTtcclxuXHJcblx0Ly8gU2V0IGNvbnRlbnRlZGl0YWJsZSB0byBmYWxzZSBvbiByZW1vdmFscygjMTA0MjkpXHJcblx0Ly8gU2V0dGluZyB0byBlbXB0eSBzdHJpbmcgdGhyb3dzIGFuIGVycm9yIGFzIGFuIGludmFsaWQgdmFsdWVcclxuXHRqUXVlcnkuYXR0ckhvb2tzLmNvbnRlbnRlZGl0YWJsZSA9IHtcclxuXHRcdGdldDogbm9kZUhvb2suZ2V0LFxyXG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUsIG5hbWUgKSB7XHJcblx0XHRcdGlmICggdmFsdWUgPT09IFwiXCIgKSB7XHJcblx0XHRcdFx0dmFsdWUgPSBcImZhbHNlXCI7XHJcblx0XHRcdH1cclxuXHRcdFx0bm9kZUhvb2suc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApO1xyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuXHJcblxyXG4vLyBTb21lIGF0dHJpYnV0ZXMgcmVxdWlyZSBhIHNwZWNpYWwgY2FsbCBvbiBJRVxyXG5pZiAoICFqUXVlcnkuc3VwcG9ydC5ocmVmTm9ybWFsaXplZCApIHtcclxuXHRqUXVlcnkuZWFjaChbIFwiaHJlZlwiLCBcInNyY1wiLCBcIndpZHRoXCIsIFwiaGVpZ2h0XCIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7XHJcblx0XHRqUXVlcnkuYXR0ckhvb2tzWyBuYW1lIF0gPSBqUXVlcnkuZXh0ZW5kKCBqUXVlcnkuYXR0ckhvb2tzWyBuYW1lIF0sIHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHR2YXIgcmV0ID0gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIDIgKTtcclxuXHRcdFx0XHRyZXR1cm4gcmV0ID09PSBudWxsID8gdW5kZWZpbmVkIDogcmV0O1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9KTtcclxufVxyXG5cclxuaWYgKCAhalF1ZXJ5LnN1cHBvcnQuc3R5bGUgKSB7XHJcblx0alF1ZXJ5LmF0dHJIb29rcy5zdHlsZSA9IHtcclxuXHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdC8vIFJldHVybiB1bmRlZmluZWQgaW4gdGhlIGNhc2Ugb2YgZW1wdHkgc3RyaW5nXHJcblx0XHRcdC8vIE5vcm1hbGl6ZSB0byBsb3dlcmNhc2Ugc2luY2UgSUUgdXBwZXJjYXNlcyBjc3MgcHJvcGVydHkgbmFtZXNcclxuXHRcdFx0cmV0dXJuIGVsZW0uc3R5bGUuY3NzVGV4dC50b0xvd2VyQ2FzZSgpIHx8IHVuZGVmaW5lZDtcclxuXHRcdH0sXHJcblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcclxuXHRcdFx0cmV0dXJuICggZWxlbS5zdHlsZS5jc3NUZXh0ID0gXCJcIiArIHZhbHVlICk7XHJcblx0XHR9XHJcblx0fTtcclxufVxyXG5cclxuLy8gU2FmYXJpIG1pcy1yZXBvcnRzIHRoZSBkZWZhdWx0IHNlbGVjdGVkIHByb3BlcnR5IG9mIGFuIG9wdGlvblxyXG4vLyBBY2Nlc3NpbmcgdGhlIHBhcmVudCdzIHNlbGVjdGVkSW5kZXggcHJvcGVydHkgZml4ZXMgaXRcclxuaWYgKCAhalF1ZXJ5LnN1cHBvcnQub3B0U2VsZWN0ZWQgKSB7XHJcblx0alF1ZXJ5LnByb3BIb29rcy5zZWxlY3RlZCA9IGpRdWVyeS5leHRlbmQoIGpRdWVyeS5wcm9wSG9va3Muc2VsZWN0ZWQsIHtcclxuXHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XHJcblxyXG5cdFx0XHRpZiAoIHBhcmVudCApIHtcclxuXHRcdFx0XHRwYXJlbnQuc2VsZWN0ZWRJbmRleDtcclxuXHJcblx0XHRcdFx0Ly8gTWFrZSBzdXJlIHRoYXQgaXQgYWxzbyB3b3JrcyB3aXRoIG9wdGdyb3Vwcywgc2VlICM1NzAxXHJcblx0XHRcdFx0aWYgKCBwYXJlbnQucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0XHRcdHBhcmVudC5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0fVxyXG5cdH0pO1xyXG59XHJcblxyXG4vLyBJRTYvNyBjYWxsIGVuY3R5cGUgZW5jb2RpbmdcclxuaWYgKCAhalF1ZXJ5LnN1cHBvcnQuZW5jdHlwZSApIHtcclxuXHRqUXVlcnkucHJvcEZpeC5lbmN0eXBlID0gXCJlbmNvZGluZ1wiO1xyXG59XHJcblxyXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgZ2V0dGVyL3NldHRlclxyXG5pZiAoICFqUXVlcnkuc3VwcG9ydC5jaGVja09uICkge1xyXG5cdGpRdWVyeS5lYWNoKFsgXCJyYWRpb1wiLCBcImNoZWNrYm94XCIgXSwgZnVuY3Rpb24oKSB7XHJcblx0XHRqUXVlcnkudmFsSG9va3NbIHRoaXMgXSA9IHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHQvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgaW4gV2Via2l0IFwiXCIgaXMgcmV0dXJuZWQgaW5zdGVhZCBvZiBcIm9uXCIgaWYgYSB2YWx1ZSBpc24ndCBzcGVjaWZpZWRcclxuXHRcdFx0XHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoXCJ2YWx1ZVwiKSA9PT0gbnVsbCA/IFwib25cIiA6IGVsZW0udmFsdWU7XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0fSk7XHJcbn1cclxualF1ZXJ5LmVhY2goWyBcInJhZGlvXCIsIFwiY2hlY2tib3hcIiBdLCBmdW5jdGlvbigpIHtcclxuXHRqUXVlcnkudmFsSG9va3NbIHRoaXMgXSA9IGpRdWVyeS5leHRlbmQoIGpRdWVyeS52YWxIb29rc1sgdGhpcyBdLCB7XHJcblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcclxuXHRcdFx0aWYgKCBqUXVlcnkuaXNBcnJheSggdmFsdWUgKSApIHtcclxuXHRcdFx0XHRyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KGVsZW0pLnZhbCgpLCB2YWx1ZSApID49IDAgKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0pO1xyXG59KTtcclxudmFyIHJmb3JtRWxlbXMgPSAvXig/OnRleHRhcmVhfGlucHV0fHNlbGVjdCkkL2ksXHJcblx0cnR5cGVuYW1lc3BhY2UgPSAvXihbXlxcLl0qfCkoPzpcXC4oLispfCkkLyxcclxuXHRyaG92ZXJIYWNrID0gLyg/Ol58XFxzKWhvdmVyKFxcLlxcUyt8KVxcYi8sXHJcblx0cmtleUV2ZW50ID0gL15rZXkvLFxyXG5cdHJtb3VzZUV2ZW50ID0gL14oPzptb3VzZXxjb250ZXh0bWVudSl8Y2xpY2svLFxyXG5cdHJmb2N1c01vcnBoID0gL14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLFxyXG5cdGhvdmVySGFjayA9IGZ1bmN0aW9uKCBldmVudHMgKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LmV2ZW50LnNwZWNpYWwuaG92ZXIgPyBldmVudHMgOiBldmVudHMucmVwbGFjZSggcmhvdmVySGFjaywgXCJtb3VzZWVudGVyJDEgbW91c2VsZWF2ZSQxXCIgKTtcclxuXHR9O1xyXG5cclxuLypcclxuICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgbWFuYWdpbmcgZXZlbnRzIC0tIG5vdCBwYXJ0IG9mIHRoZSBwdWJsaWMgaW50ZXJmYWNlLlxyXG4gKiBQcm9wcyB0byBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkgZm9yIG1hbnkgb2YgdGhlIGlkZWFzLlxyXG4gKi9cclxualF1ZXJ5LmV2ZW50ID0ge1xyXG5cclxuXHRhZGQ6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgZGF0YSwgc2VsZWN0b3IgKSB7XHJcblxyXG5cdFx0dmFyIGVsZW1EYXRhLCBldmVudEhhbmRsZSwgZXZlbnRzLFxyXG5cdFx0XHR0LCB0bnMsIHR5cGUsIG5hbWVzcGFjZXMsIGhhbmRsZU9iaixcclxuXHRcdFx0aGFuZGxlT2JqSW4sIGhhbmRsZXJzLCBzcGVjaWFsO1xyXG5cclxuXHRcdC8vIERvbid0IGF0dGFjaCBldmVudHMgdG8gbm9EYXRhIG9yIHRleHQvY29tbWVudCBub2RlcyAoYWxsb3cgcGxhaW4gb2JqZWN0cyB0aG8pXHJcblx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCAhdHlwZXMgfHwgIWhhbmRsZXIgfHwgIShlbGVtRGF0YSA9IGpRdWVyeS5fZGF0YSggZWxlbSApKSApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIENhbGxlciBjYW4gcGFzcyBpbiBhbiBvYmplY3Qgb2YgY3VzdG9tIGRhdGEgaW4gbGlldSBvZiB0aGUgaGFuZGxlclxyXG5cdFx0aWYgKCBoYW5kbGVyLmhhbmRsZXIgKSB7XHJcblx0XHRcdGhhbmRsZU9iakluID0gaGFuZGxlcjtcclxuXHRcdFx0aGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7XHJcblx0XHRcdHNlbGVjdG9yID0gaGFuZGxlT2JqSW4uc2VsZWN0b3I7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVlIElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyXHJcblx0XHRpZiAoICFoYW5kbGVyLmd1aWQgKSB7XHJcblx0XHRcdGhhbmRsZXIuZ3VpZCA9IGpRdWVyeS5ndWlkKys7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gSW5pdCB0aGUgZWxlbWVudCdzIGV2ZW50IHN0cnVjdHVyZSBhbmQgbWFpbiBoYW5kbGVyLCBpZiB0aGlzIGlzIHRoZSBmaXJzdFxyXG5cdFx0ZXZlbnRzID0gZWxlbURhdGEuZXZlbnRzO1xyXG5cdFx0aWYgKCAhZXZlbnRzICkge1xyXG5cdFx0XHRlbGVtRGF0YS5ldmVudHMgPSBldmVudHMgPSB7fTtcclxuXHRcdH1cclxuXHRcdGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlO1xyXG5cdFx0aWYgKCAhZXZlbnRIYW5kbGUgKSB7XHJcblx0XHRcdGVsZW1EYXRhLmhhbmRsZSA9IGV2ZW50SGFuZGxlID0gZnVuY3Rpb24oIGUgKSB7XHJcblx0XHRcdFx0Ly8gRGlzY2FyZCB0aGUgc2Vjb25kIGV2ZW50IG9mIGEgalF1ZXJ5LmV2ZW50LnRyaWdnZXIoKSBhbmRcclxuXHRcdFx0XHQvLyB3aGVuIGFuIGV2ZW50IGlzIGNhbGxlZCBhZnRlciBhIHBhZ2UgaGFzIHVubG9hZGVkXHJcblx0XHRcdFx0cmV0dXJuIHR5cGVvZiBqUXVlcnkgIT09IFwidW5kZWZpbmVkXCIgJiYgKCFlIHx8IGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgIT09IGUudHlwZSkgP1xyXG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmRpc3BhdGNoLmFwcGx5KCBldmVudEhhbmRsZS5lbGVtLCBhcmd1bWVudHMgKSA6XHJcblx0XHRcdFx0XHR1bmRlZmluZWQ7XHJcblx0XHRcdH07XHJcblx0XHRcdC8vIEFkZCBlbGVtIGFzIGEgcHJvcGVydHkgb2YgdGhlIGhhbmRsZSBmbiB0byBwcmV2ZW50IGEgbWVtb3J5IGxlYWsgd2l0aCBJRSBub24tbmF0aXZlIGV2ZW50c1xyXG5cdFx0XHRldmVudEhhbmRsZS5lbGVtID0gZWxlbTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBIYW5kbGUgbXVsdGlwbGUgZXZlbnRzIHNlcGFyYXRlZCBieSBhIHNwYWNlXHJcblx0XHQvLyBqUXVlcnkoLi4uKS5iaW5kKFwibW91c2VvdmVyIG1vdXNlb3V0XCIsIGZuKTtcclxuXHRcdHR5cGVzID0galF1ZXJ5LnRyaW0oIGhvdmVySGFjayh0eXBlcykgKS5zcGxpdCggXCIgXCIgKTtcclxuXHRcdGZvciAoIHQgPSAwOyB0IDwgdHlwZXMubGVuZ3RoOyB0KysgKSB7XHJcblxyXG5cdFx0XHR0bnMgPSBydHlwZW5hbWVzcGFjZS5leGVjKCB0eXBlc1t0XSApIHx8IFtdO1xyXG5cdFx0XHR0eXBlID0gdG5zWzFdO1xyXG5cdFx0XHRuYW1lc3BhY2VzID0gKCB0bnNbMl0gfHwgXCJcIiApLnNwbGl0KCBcIi5cIiApLnNvcnQoKTtcclxuXHJcblx0XHRcdC8vIElmIGV2ZW50IGNoYW5nZXMgaXRzIHR5cGUsIHVzZSB0aGUgc3BlY2lhbCBldmVudCBoYW5kbGVycyBmb3IgdGhlIGNoYW5nZWQgdHlwZVxyXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcclxuXHJcblx0XHRcdC8vIElmIHNlbGVjdG9yIGRlZmluZWQsIGRldGVybWluZSBzcGVjaWFsIGV2ZW50IGFwaSB0eXBlLCBvdGhlcndpc2UgZ2l2ZW4gdHlwZVxyXG5cdFx0XHR0eXBlID0gKCBzZWxlY3RvciA/IHNwZWNpYWwuZGVsZWdhdGVUeXBlIDogc3BlY2lhbC5iaW5kVHlwZSApIHx8IHR5cGU7XHJcblxyXG5cdFx0XHQvLyBVcGRhdGUgc3BlY2lhbCBiYXNlZCBvbiBuZXdseSByZXNldCB0eXBlXHJcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xyXG5cclxuXHRcdFx0Ly8gaGFuZGxlT2JqIGlzIHBhc3NlZCB0byBhbGwgZXZlbnQgaGFuZGxlcnNcclxuXHRcdFx0aGFuZGxlT2JqID0galF1ZXJ5LmV4dGVuZCh7XHJcblx0XHRcdFx0dHlwZTogdHlwZSxcclxuXHRcdFx0XHRvcmlnVHlwZTogdG5zWzFdLFxyXG5cdFx0XHRcdGRhdGE6IGRhdGEsXHJcblx0XHRcdFx0aGFuZGxlcjogaGFuZGxlcixcclxuXHRcdFx0XHRndWlkOiBoYW5kbGVyLmd1aWQsXHJcblx0XHRcdFx0c2VsZWN0b3I6IHNlbGVjdG9yLFxyXG5cdFx0XHRcdG5hbWVzcGFjZTogbmFtZXNwYWNlcy5qb2luKFwiLlwiKVxyXG5cdFx0XHR9LCBoYW5kbGVPYmpJbiApO1xyXG5cclxuXHRcdFx0Ly8gSW5pdCB0aGUgZXZlbnQgaGFuZGxlciBxdWV1ZSBpZiB3ZSdyZSB0aGUgZmlyc3RcclxuXHRcdFx0aGFuZGxlcnMgPSBldmVudHNbIHR5cGUgXTtcclxuXHRcdFx0aWYgKCAhaGFuZGxlcnMgKSB7XHJcblx0XHRcdFx0aGFuZGxlcnMgPSBldmVudHNbIHR5cGUgXSA9IFtdO1xyXG5cdFx0XHRcdGhhbmRsZXJzLmRlbGVnYXRlQ291bnQgPSAwO1xyXG5cclxuXHRcdFx0XHQvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyL2F0dGFjaEV2ZW50IGlmIHRoZSBzcGVjaWFsIGV2ZW50cyBoYW5kbGVyIHJldHVybnMgZmFsc2VcclxuXHRcdFx0XHRpZiAoICFzcGVjaWFsLnNldHVwIHx8IHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7XHJcblx0XHRcdFx0XHQvLyBCaW5kIHRoZSBnbG9iYWwgZXZlbnQgaGFuZGxlciB0byB0aGUgZWxlbWVudFxyXG5cdFx0XHRcdFx0aWYgKCBlbGVtLmFkZEV2ZW50TGlzdGVuZXIgKSB7XHJcblx0XHRcdFx0XHRcdGVsZW0uYWRkRXZlbnRMaXN0ZW5lciggdHlwZSwgZXZlbnRIYW5kbGUsIGZhbHNlICk7XHJcblxyXG5cdFx0XHRcdFx0fSBlbHNlIGlmICggZWxlbS5hdHRhY2hFdmVudCApIHtcclxuXHRcdFx0XHRcdFx0ZWxlbS5hdHRhY2hFdmVudCggXCJvblwiICsgdHlwZSwgZXZlbnRIYW5kbGUgKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICggc3BlY2lhbC5hZGQgKSB7XHJcblx0XHRcdFx0c3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7XHJcblxyXG5cdFx0XHRcdGlmICggIWhhbmRsZU9iai5oYW5kbGVyLmd1aWQgKSB7XHJcblx0XHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlci5ndWlkID0gaGFuZGxlci5ndWlkO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gQWRkIHRvIHRoZSBlbGVtZW50J3MgaGFuZGxlciBsaXN0LCBkZWxlZ2F0ZXMgaW4gZnJvbnRcclxuXHRcdFx0aWYgKCBzZWxlY3RvciApIHtcclxuXHRcdFx0XHRoYW5kbGVycy5zcGxpY2UoIGhhbmRsZXJzLmRlbGVnYXRlQ291bnQrKywgMCwgaGFuZGxlT2JqICk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0aGFuZGxlcnMucHVzaCggaGFuZGxlT2JqICk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEtlZXAgdHJhY2sgb2Ygd2hpY2ggZXZlbnRzIGhhdmUgZXZlciBiZWVuIHVzZWQsIGZvciBldmVudCBvcHRpbWl6YXRpb25cclxuXHRcdFx0alF1ZXJ5LmV2ZW50Lmdsb2JhbFsgdHlwZSBdID0gdHJ1ZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBOdWxsaWZ5IGVsZW0gdG8gcHJldmVudCBtZW1vcnkgbGVha3MgaW4gSUVcclxuXHRcdGVsZW0gPSBudWxsO1xyXG5cdH0sXHJcblxyXG5cdGdsb2JhbDoge30sXHJcblxyXG5cdC8vIERldGFjaCBhbiBldmVudCBvciBzZXQgb2YgZXZlbnRzIGZyb20gYW4gZWxlbWVudFxyXG5cdHJlbW92ZTogZnVuY3Rpb24oIGVsZW0sIHR5cGVzLCBoYW5kbGVyLCBzZWxlY3RvciwgbWFwcGVkVHlwZXMgKSB7XHJcblxyXG5cdFx0dmFyIHQsIHRucywgdHlwZSwgb3JpZ1R5cGUsIG5hbWVzcGFjZXMsIG9yaWdDb3VudCxcclxuXHRcdFx0aiwgZXZlbnRzLCBzcGVjaWFsLCBldmVudFR5cGUsIGhhbmRsZU9iaixcclxuXHRcdFx0ZWxlbURhdGEgPSBqUXVlcnkuaGFzRGF0YSggZWxlbSApICYmIGpRdWVyeS5fZGF0YSggZWxlbSApO1xyXG5cclxuXHRcdGlmICggIWVsZW1EYXRhIHx8ICEoZXZlbnRzID0gZWxlbURhdGEuZXZlbnRzKSApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE9uY2UgZm9yIGVhY2ggdHlwZS5uYW1lc3BhY2UgaW4gdHlwZXM7IHR5cGUgbWF5IGJlIG9taXR0ZWRcclxuXHRcdHR5cGVzID0galF1ZXJ5LnRyaW0oIGhvdmVySGFjayggdHlwZXMgfHwgXCJcIiApICkuc3BsaXQoXCIgXCIpO1xyXG5cdFx0Zm9yICggdCA9IDA7IHQgPCB0eXBlcy5sZW5ndGg7IHQrKyApIHtcclxuXHRcdFx0dG5zID0gcnR5cGVuYW1lc3BhY2UuZXhlYyggdHlwZXNbdF0gKSB8fCBbXTtcclxuXHRcdFx0dHlwZSA9IG9yaWdUeXBlID0gdG5zWzFdO1xyXG5cdFx0XHRuYW1lc3BhY2VzID0gdG5zWzJdO1xyXG5cclxuXHRcdFx0Ly8gVW5iaW5kIGFsbCBldmVudHMgKG9uIHRoaXMgbmFtZXNwYWNlLCBpZiBwcm92aWRlZCkgZm9yIHRoZSBlbGVtZW50XHJcblx0XHRcdGlmICggIXR5cGUgKSB7XHJcblx0XHRcdFx0Zm9yICggdHlwZSBpbiBldmVudHMgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCBlbGVtLCB0eXBlICsgdHlwZXNbIHQgXSwgaGFuZGxlciwgc2VsZWN0b3IsIHRydWUgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xyXG5cdFx0XHR0eXBlID0gKCBzZWxlY3Rvcj8gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgOiBzcGVjaWFsLmJpbmRUeXBlICkgfHwgdHlwZTtcclxuXHRcdFx0ZXZlbnRUeXBlID0gZXZlbnRzWyB0eXBlIF0gfHwgW107XHJcblx0XHRcdG9yaWdDb3VudCA9IGV2ZW50VHlwZS5sZW5ndGg7XHJcblx0XHRcdG5hbWVzcGFjZXMgPSBuYW1lc3BhY2VzID8gbmV3IFJlZ0V4cChcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5zcGxpdChcIi5cIikuc29ydCgpLmpvaW4oXCJcXFxcLig/Oi4qXFxcXC58KVwiKSArIFwiKFxcXFwufCQpXCIpIDogbnVsbDtcclxuXHJcblx0XHRcdC8vIFJlbW92ZSBtYXRjaGluZyBldmVudHNcclxuXHRcdFx0Zm9yICggaiA9IDA7IGogPCBldmVudFR5cGUubGVuZ3RoOyBqKysgKSB7XHJcblx0XHRcdFx0aGFuZGxlT2JqID0gZXZlbnRUeXBlWyBqIF07XHJcblxyXG5cdFx0XHRcdGlmICggKCBtYXBwZWRUeXBlcyB8fCBvcmlnVHlwZSA9PT0gaGFuZGxlT2JqLm9yaWdUeXBlICkgJiZcclxuXHRcdFx0XHRcdCAoICFoYW5kbGVyIHx8IGhhbmRsZXIuZ3VpZCA9PT0gaGFuZGxlT2JqLmd1aWQgKSAmJlxyXG5cdFx0XHRcdFx0ICggIW5hbWVzcGFjZXMgfHwgbmFtZXNwYWNlcy50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSAmJlxyXG5cdFx0XHRcdFx0ICggIXNlbGVjdG9yIHx8IHNlbGVjdG9yID09PSBoYW5kbGVPYmouc2VsZWN0b3IgfHwgc2VsZWN0b3IgPT09IFwiKipcIiAmJiBoYW5kbGVPYmouc2VsZWN0b3IgKSApIHtcclxuXHRcdFx0XHRcdGV2ZW50VHlwZS5zcGxpY2UoIGotLSwgMSApO1xyXG5cclxuXHRcdFx0XHRcdGlmICggaGFuZGxlT2JqLnNlbGVjdG9yICkge1xyXG5cdFx0XHRcdFx0XHRldmVudFR5cGUuZGVsZWdhdGVDb3VudC0tO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKCBzcGVjaWFsLnJlbW92ZSApIHtcclxuXHRcdFx0XHRcdFx0c3BlY2lhbC5yZW1vdmUuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBSZW1vdmUgZ2VuZXJpYyBldmVudCBoYW5kbGVyIGlmIHdlIHJlbW92ZWQgc29tZXRoaW5nIGFuZCBubyBtb3JlIGhhbmRsZXJzIGV4aXN0XHJcblx0XHRcdC8vIChhdm9pZHMgcG90ZW50aWFsIGZvciBlbmRsZXNzIHJlY3Vyc2lvbiBkdXJpbmcgcmVtb3ZhbCBvZiBzcGVjaWFsIGV2ZW50IGhhbmRsZXJzKVxyXG5cdFx0XHRpZiAoIGV2ZW50VHlwZS5sZW5ndGggPT09IDAgJiYgb3JpZ0NvdW50ICE9PSBldmVudFR5cGUubGVuZ3RoICkge1xyXG5cdFx0XHRcdGlmICggIXNwZWNpYWwudGVhcmRvd24gfHwgc3BlY2lhbC50ZWFyZG93bi5jYWxsKCBlbGVtLCBuYW1lc3BhY2VzLCBlbGVtRGF0YS5oYW5kbGUgKSA9PT0gZmFsc2UgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkucmVtb3ZlRXZlbnQoIGVsZW0sIHR5cGUsIGVsZW1EYXRhLmhhbmRsZSApO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0ZGVsZXRlIGV2ZW50c1sgdHlwZSBdO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWRcclxuXHRcdGlmICggalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGV2ZW50cyApICkge1xyXG5cdFx0XHRkZWxldGUgZWxlbURhdGEuaGFuZGxlO1xyXG5cclxuXHRcdFx0Ly8gcmVtb3ZlRGF0YSBhbHNvIGNoZWNrcyBmb3IgZW1wdGluZXNzIGFuZCBjbGVhcnMgdGhlIGV4cGFuZG8gaWYgZW1wdHlcclxuXHRcdFx0Ly8gc28gdXNlIGl0IGluc3RlYWQgb2YgZGVsZXRlXHJcblx0XHRcdGpRdWVyeS5yZW1vdmVEYXRhKCBlbGVtLCBcImV2ZW50c1wiLCB0cnVlICk7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Ly8gRXZlbnRzIHRoYXQgYXJlIHNhZmUgdG8gc2hvcnQtY2lyY3VpdCBpZiBubyBoYW5kbGVycyBhcmUgYXR0YWNoZWQuXHJcblx0Ly8gTmF0aXZlIERPTSBldmVudHMgc2hvdWxkIG5vdCBiZSBhZGRlZCwgdGhleSBtYXkgaGF2ZSBpbmxpbmUgaGFuZGxlcnMuXHJcblx0Y3VzdG9tRXZlbnQ6IHtcclxuXHRcdFwiZ2V0RGF0YVwiOiB0cnVlLFxyXG5cdFx0XCJzZXREYXRhXCI6IHRydWUsXHJcblx0XHRcImNoYW5nZURhdGFcIjogdHJ1ZVxyXG5cdH0sXHJcblxyXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCBldmVudCwgZGF0YSwgZWxlbSwgb25seUhhbmRsZXJzICkge1xyXG5cdFx0Ly8gRG9uJ3QgZG8gZXZlbnRzIG9uIHRleHQgYW5kIGNvbW1lbnQgbm9kZXNcclxuXHRcdGlmICggZWxlbSAmJiAoZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4KSApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEV2ZW50IG9iamVjdCBvciBldmVudCB0eXBlXHJcblx0XHR2YXIgY2FjaGUsIGV4Y2x1c2l2ZSwgaSwgY3VyLCBvbGQsIG9udHlwZSwgc3BlY2lhbCwgaGFuZGxlLCBldmVudFBhdGgsIGJ1YmJsZVR5cGUsXHJcblx0XHRcdHR5cGUgPSBldmVudC50eXBlIHx8IGV2ZW50LFxyXG5cdFx0XHRuYW1lc3BhY2VzID0gW107XHJcblxyXG5cdFx0Ly8gZm9jdXMvYmx1ciBtb3JwaHMgdG8gZm9jdXNpbi9vdXQ7IGVuc3VyZSB3ZSdyZSBub3QgZmlyaW5nIHRoZW0gcmlnaHQgbm93XHJcblx0XHRpZiAoIHJmb2N1c01vcnBoLnRlc3QoIHR5cGUgKyBqUXVlcnkuZXZlbnQudHJpZ2dlcmVkICkgKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIHR5cGUuaW5kZXhPZiggXCIhXCIgKSA+PSAwICkge1xyXG5cdFx0XHQvLyBFeGNsdXNpdmUgZXZlbnRzIHRyaWdnZXIgb25seSBmb3IgdGhlIGV4YWN0IGV2ZW50IChubyBuYW1lc3BhY2VzKVxyXG5cdFx0XHR0eXBlID0gdHlwZS5zbGljZSgwLCAtMSk7XHJcblx0XHRcdGV4Y2x1c2l2ZSA9IHRydWU7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCB0eXBlLmluZGV4T2YoIFwiLlwiICkgPj0gMCApIHtcclxuXHRcdFx0Ly8gTmFtZXNwYWNlZCB0cmlnZ2VyOyBjcmVhdGUgYSByZWdleHAgdG8gbWF0Y2ggZXZlbnQgdHlwZSBpbiBoYW5kbGUoKVxyXG5cdFx0XHRuYW1lc3BhY2VzID0gdHlwZS5zcGxpdChcIi5cIik7XHJcblx0XHRcdHR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7XHJcblx0XHRcdG5hbWVzcGFjZXMuc29ydCgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggKCFlbGVtIHx8IGpRdWVyeS5ldmVudC5jdXN0b21FdmVudFsgdHlwZSBdKSAmJiAhalF1ZXJ5LmV2ZW50Lmdsb2JhbFsgdHlwZSBdICkge1xyXG5cdFx0XHQvLyBObyBqUXVlcnkgaGFuZGxlcnMgZm9yIHRoaXMgZXZlbnQgdHlwZSwgYW5kIGl0IGNhbid0IGhhdmUgaW5saW5lIGhhbmRsZXJzXHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBDYWxsZXIgY2FuIHBhc3MgaW4gYW4gRXZlbnQsIE9iamVjdCwgb3IganVzdCBhbiBldmVudCB0eXBlIHN0cmluZ1xyXG5cdFx0ZXZlbnQgPSB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgP1xyXG5cdFx0XHQvLyBqUXVlcnkuRXZlbnQgb2JqZWN0XHJcblx0XHRcdGV2ZW50WyBqUXVlcnkuZXhwYW5kbyBdID8gZXZlbnQgOlxyXG5cdFx0XHQvLyBPYmplY3QgbGl0ZXJhbFxyXG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCB0eXBlLCBldmVudCApIDpcclxuXHRcdFx0Ly8gSnVzdCB0aGUgZXZlbnQgdHlwZSAoc3RyaW5nKVxyXG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCB0eXBlICk7XHJcblxyXG5cdFx0ZXZlbnQudHlwZSA9IHR5cGU7XHJcblx0XHRldmVudC5pc1RyaWdnZXIgPSB0cnVlO1xyXG5cdFx0ZXZlbnQuZXhjbHVzaXZlID0gZXhjbHVzaXZlO1xyXG5cdFx0ZXZlbnQubmFtZXNwYWNlID0gbmFtZXNwYWNlcy5qb2luKCBcIi5cIiApO1xyXG5cdFx0ZXZlbnQubmFtZXNwYWNlX3JlID0gZXZlbnQubmFtZXNwYWNlPyBuZXcgUmVnRXhwKFwiKF58XFxcXC4pXCIgKyBuYW1lc3BhY2VzLmpvaW4oXCJcXFxcLig/Oi4qXFxcXC58KVwiKSArIFwiKFxcXFwufCQpXCIpIDogbnVsbDtcclxuXHRcdG9udHlwZSA9IHR5cGUuaW5kZXhPZiggXCI6XCIgKSA8IDAgPyBcIm9uXCIgKyB0eXBlIDogXCJcIjtcclxuXHJcblx0XHQvLyBIYW5kbGUgYSBnbG9iYWwgdHJpZ2dlclxyXG5cdFx0aWYgKCAhZWxlbSApIHtcclxuXHJcblx0XHRcdC8vIFRPRE86IFN0b3AgdGF1bnRpbmcgdGhlIGRhdGEgY2FjaGU7IHJlbW92ZSBnbG9iYWwgZXZlbnRzIGFuZCBhbHdheXMgYXR0YWNoIHRvIGRvY3VtZW50XHJcblx0XHRcdGNhY2hlID0galF1ZXJ5LmNhY2hlO1xyXG5cdFx0XHRmb3IgKCBpIGluIGNhY2hlICkge1xyXG5cdFx0XHRcdGlmICggY2FjaGVbIGkgXS5ldmVudHMgJiYgY2FjaGVbIGkgXS5ldmVudHNbIHR5cGUgXSApIHtcclxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBldmVudCwgZGF0YSwgY2FjaGVbIGkgXS5oYW5kbGUuZWxlbSwgdHJ1ZSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ2xlYW4gdXAgdGhlIGV2ZW50IGluIGNhc2UgaXQgaXMgYmVpbmcgcmV1c2VkXHJcblx0XHRldmVudC5yZXN1bHQgPSB1bmRlZmluZWQ7XHJcblx0XHRpZiAoICFldmVudC50YXJnZXQgKSB7XHJcblx0XHRcdGV2ZW50LnRhcmdldCA9IGVsZW07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ2xvbmUgYW55IGluY29taW5nIGRhdGEgYW5kIHByZXBlbmQgdGhlIGV2ZW50LCBjcmVhdGluZyB0aGUgaGFuZGxlciBhcmcgbGlzdFxyXG5cdFx0ZGF0YSA9IGRhdGEgIT0gbnVsbCA/IGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKSA6IFtdO1xyXG5cdFx0ZGF0YS51bnNoaWZ0KCBldmVudCApO1xyXG5cclxuXHRcdC8vIEFsbG93IHNwZWNpYWwgZXZlbnRzIHRvIGRyYXcgb3V0c2lkZSB0aGUgbGluZXNcclxuXHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xyXG5cdFx0aWYgKCBzcGVjaWFsLnRyaWdnZXIgJiYgc3BlY2lhbC50cmlnZ2VyLmFwcGx5KCBlbGVtLCBkYXRhICkgPT09IGZhbHNlICkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRGV0ZXJtaW5lIGV2ZW50IHByb3BhZ2F0aW9uIHBhdGggaW4gYWR2YW5jZSwgcGVyIFczQyBldmVudHMgc3BlYyAoIzk5NTEpXHJcblx0XHQvLyBCdWJibGUgdXAgdG8gZG9jdW1lbnQsIHRoZW4gdG8gd2luZG93OyB3YXRjaCBmb3IgYSBnbG9iYWwgb3duZXJEb2N1bWVudCB2YXIgKCM5NzI0KVxyXG5cdFx0ZXZlbnRQYXRoID0gW1sgZWxlbSwgc3BlY2lhbC5iaW5kVHlwZSB8fCB0eXBlIF1dO1xyXG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmICFzcGVjaWFsLm5vQnViYmxlICYmICFqUXVlcnkuaXNXaW5kb3coIGVsZW0gKSApIHtcclxuXHJcblx0XHRcdGJ1YmJsZVR5cGUgPSBzcGVjaWFsLmRlbGVnYXRlVHlwZSB8fCB0eXBlO1xyXG5cdFx0XHRjdXIgPSByZm9jdXNNb3JwaC50ZXN0KCBidWJibGVUeXBlICsgdHlwZSApID8gZWxlbSA6IGVsZW0ucGFyZW50Tm9kZTtcclxuXHRcdFx0Zm9yICggb2xkID0gZWxlbTsgY3VyOyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0XHRldmVudFBhdGgucHVzaChbIGN1ciwgYnViYmxlVHlwZSBdKTtcclxuXHRcdFx0XHRvbGQgPSBjdXI7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIE9ubHkgYWRkIHdpbmRvdyBpZiB3ZSBnb3QgdG8gZG9jdW1lbnQgKGUuZy4sIG5vdCBwbGFpbiBvYmogb3IgZGV0YWNoZWQgRE9NKVxyXG5cdFx0XHRpZiAoIG9sZCA9PT0gKGVsZW0ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudCkgKSB7XHJcblx0XHRcdFx0ZXZlbnRQYXRoLnB1c2goWyBvbGQuZGVmYXVsdFZpZXcgfHwgb2xkLnBhcmVudFdpbmRvdyB8fCB3aW5kb3csIGJ1YmJsZVR5cGUgXSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBGaXJlIGhhbmRsZXJzIG9uIHRoZSBldmVudCBwYXRoXHJcblx0XHRmb3IgKCBpID0gMDsgaSA8IGV2ZW50UGF0aC5sZW5ndGggJiYgIWV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7IGkrKyApIHtcclxuXHJcblx0XHRcdGN1ciA9IGV2ZW50UGF0aFtpXVswXTtcclxuXHRcdFx0ZXZlbnQudHlwZSA9IGV2ZW50UGF0aFtpXVsxXTtcclxuXHJcblx0XHRcdGhhbmRsZSA9ICggalF1ZXJ5Ll9kYXRhKCBjdXIsIFwiZXZlbnRzXCIgKSB8fCB7fSApWyBldmVudC50eXBlIF0gJiYgalF1ZXJ5Ll9kYXRhKCBjdXIsIFwiaGFuZGxlXCIgKTtcclxuXHRcdFx0aWYgKCBoYW5kbGUgKSB7XHJcblx0XHRcdFx0aGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKTtcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBOb3RlIHRoYXQgdGhpcyBpcyBhIGJhcmUgSlMgZnVuY3Rpb24gYW5kIG5vdCBhIGpRdWVyeSBoYW5kbGVyXHJcblx0XHRcdGhhbmRsZSA9IG9udHlwZSAmJiBjdXJbIG9udHlwZSBdO1xyXG5cdFx0XHRpZiAoIGhhbmRsZSAmJiBqUXVlcnkuYWNjZXB0RGF0YSggY3VyICkgJiYgaGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKSA9PT0gZmFsc2UgKSB7XHJcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0ZXZlbnQudHlwZSA9IHR5cGU7XHJcblxyXG5cdFx0Ly8gSWYgbm9ib2R5IHByZXZlbnRlZCB0aGUgZGVmYXVsdCBhY3Rpb24sIGRvIGl0IG5vd1xyXG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmICFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSApIHtcclxuXHJcblx0XHRcdGlmICggKCFzcGVjaWFsLl9kZWZhdWx0IHx8IHNwZWNpYWwuX2RlZmF1bHQuYXBwbHkoIGVsZW0ub3duZXJEb2N1bWVudCwgZGF0YSApID09PSBmYWxzZSkgJiZcclxuXHRcdFx0XHQhKHR5cGUgPT09IFwiY2xpY2tcIiAmJiBqUXVlcnkubm9kZU5hbWUoIGVsZW0sIFwiYVwiICkpICYmIGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkgKSB7XHJcblxyXG5cdFx0XHRcdC8vIENhbGwgYSBuYXRpdmUgRE9NIG1ldGhvZCBvbiB0aGUgdGFyZ2V0IHdpdGggdGhlIHNhbWUgbmFtZSBuYW1lIGFzIHRoZSBldmVudC5cclxuXHRcdFx0XHQvLyBDYW4ndCB1c2UgYW4gLmlzRnVuY3Rpb24oKSBjaGVjayBoZXJlIGJlY2F1c2UgSUU2LzcgZmFpbHMgdGhhdCB0ZXN0LlxyXG5cdFx0XHRcdC8vIERvbid0IGRvIGRlZmF1bHQgYWN0aW9ucyBvbiB3aW5kb3csIHRoYXQncyB3aGVyZSBnbG9iYWwgdmFyaWFibGVzIGJlICgjNjE3MClcclxuXHRcdFx0XHQvLyBJRTw5IGRpZXMgb24gZm9jdXMvYmx1ciB0byBoaWRkZW4gZWxlbWVudCAoIzE0ODYpXHJcblx0XHRcdFx0aWYgKCBvbnR5cGUgJiYgZWxlbVsgdHlwZSBdICYmICgodHlwZSAhPT0gXCJmb2N1c1wiICYmIHR5cGUgIT09IFwiYmx1clwiKSB8fCBldmVudC50YXJnZXQub2Zmc2V0V2lkdGggIT09IDApICYmICFqUXVlcnkuaXNXaW5kb3coIGVsZW0gKSApIHtcclxuXHJcblx0XHRcdFx0XHQvLyBEb24ndCByZS10cmlnZ2VyIGFuIG9uRk9PIGV2ZW50IHdoZW4gd2UgY2FsbCBpdHMgRk9PKCkgbWV0aG9kXHJcblx0XHRcdFx0XHRvbGQgPSBlbGVtWyBvbnR5cGUgXTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIG9sZCApIHtcclxuXHRcdFx0XHRcdFx0ZWxlbVsgb250eXBlIF0gPSBudWxsO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIFByZXZlbnQgcmUtdHJpZ2dlcmluZyBvZiB0aGUgc2FtZSBldmVudCwgc2luY2Ugd2UgYWxyZWFkeSBidWJibGVkIGl0IGFib3ZlXHJcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlcmVkID0gdHlwZTtcclxuXHRcdFx0XHRcdGVsZW1bIHR5cGUgXSgpO1xyXG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCA9IHVuZGVmaW5lZDtcclxuXHJcblx0XHRcdFx0XHRpZiAoIG9sZCApIHtcclxuXHRcdFx0XHRcdFx0ZWxlbVsgb250eXBlIF0gPSBvbGQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGV2ZW50LnJlc3VsdDtcclxuXHR9LFxyXG5cclxuXHRkaXNwYXRjaDogZnVuY3Rpb24oIGV2ZW50ICkge1xyXG5cclxuXHRcdC8vIE1ha2UgYSB3cml0YWJsZSBqUXVlcnkuRXZlbnQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50IG9iamVjdFxyXG5cdFx0ZXZlbnQgPSBqUXVlcnkuZXZlbnQuZml4KCBldmVudCB8fCB3aW5kb3cuZXZlbnQgKTtcclxuXHJcblx0XHR2YXIgaSwgaiwgY3VyLCByZXQsIHNlbE1hdGNoLCBtYXRjaGVkLCBtYXRjaGVzLCBoYW5kbGVPYmosIHNlbCwgcmVsYXRlZCxcclxuXHRcdFx0aGFuZGxlcnMgPSAoIChqUXVlcnkuX2RhdGEoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCB7fSApWyBldmVudC50eXBlIF0gfHwgW10pLFxyXG5cdFx0XHRkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCxcclxuXHRcdFx0YXJncyA9IFtdLnNsaWNlLmNhbGwoIGFyZ3VtZW50cyApLFxyXG5cdFx0XHRydW5fYWxsID0gIWV2ZW50LmV4Y2x1c2l2ZSAmJiAhZXZlbnQubmFtZXNwYWNlLFxyXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGV2ZW50LnR5cGUgXSB8fCB7fSxcclxuXHRcdFx0aGFuZGxlclF1ZXVlID0gW107XHJcblxyXG5cdFx0Ly8gVXNlIHRoZSBmaXgtZWQgalF1ZXJ5LkV2ZW50IHJhdGhlciB0aGFuIHRoZSAocmVhZC1vbmx5KSBuYXRpdmUgZXZlbnRcclxuXHRcdGFyZ3NbMF0gPSBldmVudDtcclxuXHRcdGV2ZW50LmRlbGVnYXRlVGFyZ2V0ID0gdGhpcztcclxuXHJcblx0XHQvLyBDYWxsIHRoZSBwcmVEaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGUsIGFuZCBsZXQgaXQgYmFpbCBpZiBkZXNpcmVkXHJcblx0XHRpZiAoIHNwZWNpYWwucHJlRGlzcGF0Y2ggJiYgc3BlY2lhbC5wcmVEaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApID09PSBmYWxzZSApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIERldGVybWluZSBoYW5kbGVycyB0aGF0IHNob3VsZCBydW4gaWYgdGhlcmUgYXJlIGRlbGVnYXRlZCBldmVudHNcclxuXHRcdC8vIEF2b2lkIG5vbi1sZWZ0LWNsaWNrIGJ1YmJsaW5nIGluIEZpcmVmb3ggKCMzODYxKVxyXG5cdFx0aWYgKCBkZWxlZ2F0ZUNvdW50ICYmICEoZXZlbnQuYnV0dG9uICYmIGV2ZW50LnR5cGUgPT09IFwiY2xpY2tcIikgKSB7XHJcblxyXG5cdFx0XHRmb3IgKCBjdXIgPSBldmVudC50YXJnZXQ7IGN1ciAhPSB0aGlzOyBjdXIgPSBjdXIucGFyZW50Tm9kZSB8fCB0aGlzICkge1xyXG5cclxuXHRcdFx0XHQvLyBEb24ndCBwcm9jZXNzIGNsaWNrcyAoT05MWSkgb24gZGlzYWJsZWQgZWxlbWVudHMgKCM2OTExLCAjODE2NSwgIzExMzgyLCAjMTE3NjQpXHJcblx0XHRcdFx0aWYgKCBjdXIuZGlzYWJsZWQgIT09IHRydWUgfHwgZXZlbnQudHlwZSAhPT0gXCJjbGlja1wiICkge1xyXG5cdFx0XHRcdFx0c2VsTWF0Y2ggPSB7fTtcclxuXHRcdFx0XHRcdG1hdGNoZXMgPSBbXTtcclxuXHRcdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgZGVsZWdhdGVDb3VudDsgaSsrICkge1xyXG5cdFx0XHRcdFx0XHRoYW5kbGVPYmogPSBoYW5kbGVyc1sgaSBdO1xyXG5cdFx0XHRcdFx0XHRzZWwgPSBoYW5kbGVPYmouc2VsZWN0b3I7XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoIHNlbE1hdGNoWyBzZWwgXSA9PT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHRcdFx0XHRcdHNlbE1hdGNoWyBzZWwgXSA9IGpRdWVyeSggc2VsLCB0aGlzICkuaW5kZXgoIGN1ciApID49IDA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0aWYgKCBzZWxNYXRjaFsgc2VsIF0gKSB7XHJcblx0XHRcdFx0XHRcdFx0bWF0Y2hlcy5wdXNoKCBoYW5kbGVPYmogKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0aWYgKCBtYXRjaGVzLmxlbmd0aCApIHtcclxuXHRcdFx0XHRcdFx0aGFuZGxlclF1ZXVlLnB1c2goeyBlbGVtOiBjdXIsIG1hdGNoZXM6IG1hdGNoZXMgfSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQWRkIHRoZSByZW1haW5pbmcgKGRpcmVjdGx5LWJvdW5kKSBoYW5kbGVyc1xyXG5cdFx0aWYgKCBoYW5kbGVycy5sZW5ndGggPiBkZWxlZ2F0ZUNvdW50ICkge1xyXG5cdFx0XHRoYW5kbGVyUXVldWUucHVzaCh7IGVsZW06IHRoaXMsIG1hdGNoZXM6IGhhbmRsZXJzLnNsaWNlKCBkZWxlZ2F0ZUNvdW50ICkgfSk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUnVuIGRlbGVnYXRlcyBmaXJzdDsgdGhleSBtYXkgd2FudCB0byBzdG9wIHByb3BhZ2F0aW9uIGJlbmVhdGggdXNcclxuXHRcdGZvciAoIGkgPSAwOyBpIDwgaGFuZGxlclF1ZXVlLmxlbmd0aCAmJiAhZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTsgaSsrICkge1xyXG5cdFx0XHRtYXRjaGVkID0gaGFuZGxlclF1ZXVlWyBpIF07XHJcblx0XHRcdGV2ZW50LmN1cnJlbnRUYXJnZXQgPSBtYXRjaGVkLmVsZW07XHJcblxyXG5cdFx0XHRmb3IgKCBqID0gMDsgaiA8IG1hdGNoZWQubWF0Y2hlcy5sZW5ndGggJiYgIWV2ZW50LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCk7IGorKyApIHtcclxuXHRcdFx0XHRoYW5kbGVPYmogPSBtYXRjaGVkLm1hdGNoZXNbIGogXTtcclxuXHJcblx0XHRcdFx0Ly8gVHJpZ2dlcmVkIGV2ZW50IG11c3QgZWl0aGVyIDEpIGJlIG5vbi1leGNsdXNpdmUgYW5kIGhhdmUgbm8gbmFtZXNwYWNlLCBvclxyXG5cdFx0XHRcdC8vIDIpIGhhdmUgbmFtZXNwYWNlKHMpIGEgc3Vic2V0IG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBib3VuZCBldmVudCAoYm90aCBjYW4gaGF2ZSBubyBuYW1lc3BhY2UpLlxyXG5cdFx0XHRcdGlmICggcnVuX2FsbCB8fCAoIWV2ZW50Lm5hbWVzcGFjZSAmJiAhaGFuZGxlT2JqLm5hbWVzcGFjZSkgfHwgZXZlbnQubmFtZXNwYWNlX3JlICYmIGV2ZW50Lm5hbWVzcGFjZV9yZS50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSB7XHJcblxyXG5cdFx0XHRcdFx0ZXZlbnQuZGF0YSA9IGhhbmRsZU9iai5kYXRhO1xyXG5cdFx0XHRcdFx0ZXZlbnQuaGFuZGxlT2JqID0gaGFuZGxlT2JqO1xyXG5cclxuXHRcdFx0XHRcdHJldCA9ICggKGpRdWVyeS5ldmVudC5zcGVjaWFsWyBoYW5kbGVPYmoub3JpZ1R5cGUgXSB8fCB7fSkuaGFuZGxlIHx8IGhhbmRsZU9iai5oYW5kbGVyIClcclxuXHRcdFx0XHRcdFx0XHQuYXBwbHkoIG1hdGNoZWQuZWxlbSwgYXJncyApO1xyXG5cclxuXHRcdFx0XHRcdGlmICggcmV0ICE9PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdFx0XHRcdGV2ZW50LnJlc3VsdCA9IHJldDtcclxuXHRcdFx0XHRcdFx0aWYgKCByZXQgPT09IGZhbHNlICkge1xyXG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcblx0XHRcdFx0XHRcdFx0ZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBDYWxsIHRoZSBwb3N0RGlzcGF0Y2ggaG9vayBmb3IgdGhlIG1hcHBlZCB0eXBlXHJcblx0XHRpZiAoIHNwZWNpYWwucG9zdERpc3BhdGNoICkge1xyXG5cdFx0XHRzcGVjaWFsLnBvc3REaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XHJcblx0fSxcclxuXHJcblx0Ly8gSW5jbHVkZXMgc29tZSBldmVudCBwcm9wcyBzaGFyZWQgYnkgS2V5RXZlbnQgYW5kIE1vdXNlRXZlbnRcclxuXHQvLyAqKiogYXR0ckNoYW5nZSBhdHRyTmFtZSByZWxhdGVkTm9kZSBzcmNFbGVtZW50ICBhcmUgbm90IG5vcm1hbGl6ZWQsIG5vbi1XM0MsIGRlcHJlY2F0ZWQsIHdpbGwgYmUgcmVtb3ZlZCBpbiAxLjggKioqXHJcblx0cHJvcHM6IFwiYXR0ckNoYW5nZSBhdHRyTmFtZSByZWxhdGVkTm9kZSBzcmNFbGVtZW50IGFsdEtleSBidWJibGVzIGNhbmNlbGFibGUgY3RybEtleSBjdXJyZW50VGFyZ2V0IGV2ZW50UGhhc2UgbWV0YUtleSByZWxhdGVkVGFyZ2V0IHNoaWZ0S2V5IHRhcmdldCB0aW1lU3RhbXAgdmlldyB3aGljaFwiLnNwbGl0KFwiIFwiKSxcclxuXHJcblx0Zml4SG9va3M6IHt9LFxyXG5cclxuXHRrZXlIb29rczoge1xyXG5cdFx0cHJvcHM6IFwiY2hhciBjaGFyQ29kZSBrZXkga2V5Q29kZVwiLnNwbGl0KFwiIFwiKSxcclxuXHRcdGZpbHRlcjogZnVuY3Rpb24oIGV2ZW50LCBvcmlnaW5hbCApIHtcclxuXHJcblx0XHRcdC8vIEFkZCB3aGljaCBmb3Iga2V5IGV2ZW50c1xyXG5cdFx0XHRpZiAoIGV2ZW50LndoaWNoID09IG51bGwgKSB7XHJcblx0XHRcdFx0ZXZlbnQud2hpY2ggPSBvcmlnaW5hbC5jaGFyQ29kZSAhPSBudWxsID8gb3JpZ2luYWwuY2hhckNvZGUgOiBvcmlnaW5hbC5rZXlDb2RlO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZXZlbnQ7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0bW91c2VIb29rczoge1xyXG5cdFx0cHJvcHM6IFwiYnV0dG9uIGJ1dHRvbnMgY2xpZW50WCBjbGllbnRZIGZyb21FbGVtZW50IG9mZnNldFggb2Zmc2V0WSBwYWdlWCBwYWdlWSBzY3JlZW5YIHNjcmVlblkgdG9FbGVtZW50XCIuc3BsaXQoXCIgXCIpLFxyXG5cdFx0ZmlsdGVyOiBmdW5jdGlvbiggZXZlbnQsIG9yaWdpbmFsICkge1xyXG5cdFx0XHR2YXIgZXZlbnREb2MsIGRvYywgYm9keSxcclxuXHRcdFx0XHRidXR0b24gPSBvcmlnaW5hbC5idXR0b24sXHJcblx0XHRcdFx0ZnJvbUVsZW1lbnQgPSBvcmlnaW5hbC5mcm9tRWxlbWVudDtcclxuXHJcblx0XHRcdC8vIENhbGN1bGF0ZSBwYWdlWC9ZIGlmIG1pc3NpbmcgYW5kIGNsaWVudFgvWSBhdmFpbGFibGVcclxuXHRcdFx0aWYgKCBldmVudC5wYWdlWCA9PSBudWxsICYmIG9yaWdpbmFsLmNsaWVudFggIT0gbnVsbCApIHtcclxuXHRcdFx0XHRldmVudERvYyA9IGV2ZW50LnRhcmdldC5vd25lckRvY3VtZW50IHx8IGRvY3VtZW50O1xyXG5cdFx0XHRcdGRvYyA9IGV2ZW50RG9jLmRvY3VtZW50RWxlbWVudDtcclxuXHRcdFx0XHRib2R5ID0gZXZlbnREb2MuYm9keTtcclxuXHJcblx0XHRcdFx0ZXZlbnQucGFnZVggPSBvcmlnaW5hbC5jbGllbnRYICsgKCBkb2MgJiYgZG9jLnNjcm9sbExlZnQgfHwgYm9keSAmJiBib2R5LnNjcm9sbExlZnQgfHwgMCApIC0gKCBkb2MgJiYgZG9jLmNsaWVudExlZnQgfHwgYm9keSAmJiBib2R5LmNsaWVudExlZnQgfHwgMCApO1xyXG5cdFx0XHRcdGV2ZW50LnBhZ2VZID0gb3JpZ2luYWwuY2xpZW50WSArICggZG9jICYmIGRvYy5zY3JvbGxUb3AgIHx8IGJvZHkgJiYgYm9keS5zY3JvbGxUb3AgIHx8IDAgKSAtICggZG9jICYmIGRvYy5jbGllbnRUb3AgIHx8IGJvZHkgJiYgYm9keS5jbGllbnRUb3AgIHx8IDAgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gQWRkIHJlbGF0ZWRUYXJnZXQsIGlmIG5lY2Vzc2FyeVxyXG5cdFx0XHRpZiAoICFldmVudC5yZWxhdGVkVGFyZ2V0ICYmIGZyb21FbGVtZW50ICkge1xyXG5cdFx0XHRcdGV2ZW50LnJlbGF0ZWRUYXJnZXQgPSBmcm9tRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0ID8gb3JpZ2luYWwudG9FbGVtZW50IDogZnJvbUVsZW1lbnQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEFkZCB3aGljaCBmb3IgY2xpY2s6IDEgPT09IGxlZnQ7IDIgPT09IG1pZGRsZTsgMyA9PT0gcmlnaHRcclxuXHRcdFx0Ly8gTm90ZTogYnV0dG9uIGlzIG5vdCBub3JtYWxpemVkLCBzbyBkb24ndCB1c2UgaXRcclxuXHRcdFx0aWYgKCAhZXZlbnQud2hpY2ggJiYgYnV0dG9uICE9PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdFx0ZXZlbnQud2hpY2ggPSAoIGJ1dHRvbiAmIDEgPyAxIDogKCBidXR0b24gJiAyID8gMyA6ICggYnV0dG9uICYgNCA/IDIgOiAwICkgKSApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZXZlbnQ7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Zml4OiBmdW5jdGlvbiggZXZlbnQgKSB7XHJcblx0XHRpZiAoIGV2ZW50WyBqUXVlcnkuZXhwYW5kbyBdICkge1xyXG5cdFx0XHRyZXR1cm4gZXZlbnQ7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ3JlYXRlIGEgd3JpdGFibGUgY29weSBvZiB0aGUgZXZlbnQgb2JqZWN0IGFuZCBub3JtYWxpemUgc29tZSBwcm9wZXJ0aWVzXHJcblx0XHR2YXIgaSwgcHJvcCxcclxuXHRcdFx0b3JpZ2luYWxFdmVudCA9IGV2ZW50LFxyXG5cdFx0XHRmaXhIb29rID0galF1ZXJ5LmV2ZW50LmZpeEhvb2tzWyBldmVudC50eXBlIF0gfHwge30sXHJcblx0XHRcdGNvcHkgPSBmaXhIb29rLnByb3BzID8gdGhpcy5wcm9wcy5jb25jYXQoIGZpeEhvb2sucHJvcHMgKSA6IHRoaXMucHJvcHM7XHJcblxyXG5cdFx0ZXZlbnQgPSBqUXVlcnkuRXZlbnQoIG9yaWdpbmFsRXZlbnQgKTtcclxuXHJcblx0XHRmb3IgKCBpID0gY29weS5sZW5ndGg7IGk7ICkge1xyXG5cdFx0XHRwcm9wID0gY29weVsgLS1pIF07XHJcblx0XHRcdGV2ZW50WyBwcm9wIF0gPSBvcmlnaW5hbEV2ZW50WyBwcm9wIF07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gRml4IHRhcmdldCBwcm9wZXJ0eSwgaWYgbmVjZXNzYXJ5ICgjMTkyNSwgSUUgNi83LzggJiBTYWZhcmkyKVxyXG5cdFx0aWYgKCAhZXZlbnQudGFyZ2V0ICkge1xyXG5cdFx0XHRldmVudC50YXJnZXQgPSBvcmlnaW5hbEV2ZW50LnNyY0VsZW1lbnQgfHwgZG9jdW1lbnQ7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gVGFyZ2V0IHNob3VsZCBub3QgYmUgYSB0ZXh0IG5vZGUgKCM1MDQsIFNhZmFyaSlcclxuXHRcdGlmICggZXZlbnQudGFyZ2V0Lm5vZGVUeXBlID09PSAzICkge1xyXG5cdFx0XHRldmVudC50YXJnZXQgPSBldmVudC50YXJnZXQucGFyZW50Tm9kZTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGb3IgbW91c2Uva2V5IGV2ZW50cywgbWV0YUtleT09ZmFsc2UgaWYgaXQncyB1bmRlZmluZWQgKCMzMzY4LCAjMTEzMjg7IElFNi83LzgpXHJcblx0XHRldmVudC5tZXRhS2V5ID0gISFldmVudC5tZXRhS2V5O1xyXG5cclxuXHRcdHJldHVybiBmaXhIb29rLmZpbHRlcj8gZml4SG9vay5maWx0ZXIoIGV2ZW50LCBvcmlnaW5hbEV2ZW50ICkgOiBldmVudDtcclxuXHR9LFxyXG5cclxuXHRzcGVjaWFsOiB7XHJcblx0XHRsb2FkOiB7XHJcblx0XHRcdC8vIFByZXZlbnQgdHJpZ2dlcmVkIGltYWdlLmxvYWQgZXZlbnRzIGZyb20gYnViYmxpbmcgdG8gd2luZG93LmxvYWRcclxuXHRcdFx0bm9CdWJibGU6IHRydWVcclxuXHRcdH0sXHJcblxyXG5cdFx0Zm9jdXM6IHtcclxuXHRcdFx0ZGVsZWdhdGVUeXBlOiBcImZvY3VzaW5cIlxyXG5cdFx0fSxcclxuXHRcdGJsdXI6IHtcclxuXHRcdFx0ZGVsZWdhdGVUeXBlOiBcImZvY3Vzb3V0XCJcclxuXHRcdH0sXHJcblxyXG5cdFx0YmVmb3JldW5sb2FkOiB7XHJcblx0XHRcdHNldHVwOiBmdW5jdGlvbiggZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSB7XHJcblx0XHRcdFx0Ly8gV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgc3BlY2lhbCBjYXNlIG9uIHdpbmRvd3NcclxuXHRcdFx0XHRpZiAoIGpRdWVyeS5pc1dpbmRvdyggdGhpcyApICkge1xyXG5cdFx0XHRcdFx0dGhpcy5vbmJlZm9yZXVubG9hZCA9IGV2ZW50SGFuZGxlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHJcblx0XHRcdHRlYXJkb3duOiBmdW5jdGlvbiggbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSB7XHJcblx0XHRcdFx0aWYgKCB0aGlzLm9uYmVmb3JldW5sb2FkID09PSBldmVudEhhbmRsZSApIHtcclxuXHRcdFx0XHRcdHRoaXMub25iZWZvcmV1bmxvYWQgPSBudWxsO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdHNpbXVsYXRlOiBmdW5jdGlvbiggdHlwZSwgZWxlbSwgZXZlbnQsIGJ1YmJsZSApIHtcclxuXHRcdC8vIFBpZ2d5YmFjayBvbiBhIGRvbm9yIGV2ZW50IHRvIHNpbXVsYXRlIGEgZGlmZmVyZW50IG9uZS5cclxuXHRcdC8vIEZha2Ugb3JpZ2luYWxFdmVudCB0byBhdm9pZCBkb25vcidzIHN0b3BQcm9wYWdhdGlvbiwgYnV0IGlmIHRoZVxyXG5cdFx0Ly8gc2ltdWxhdGVkIGV2ZW50IHByZXZlbnRzIGRlZmF1bHQgdGhlbiB3ZSBkbyB0aGUgc2FtZSBvbiB0aGUgZG9ub3IuXHJcblx0XHR2YXIgZSA9IGpRdWVyeS5leHRlbmQoXHJcblx0XHRcdG5ldyBqUXVlcnkuRXZlbnQoKSxcclxuXHRcdFx0ZXZlbnQsXHJcblx0XHRcdHsgdHlwZTogdHlwZSxcclxuXHRcdFx0XHRpc1NpbXVsYXRlZDogdHJ1ZSxcclxuXHRcdFx0XHRvcmlnaW5hbEV2ZW50OiB7fVxyXG5cdFx0XHR9XHJcblx0XHQpO1xyXG5cdFx0aWYgKCBidWJibGUgKSB7XHJcblx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBlLCBudWxsLCBlbGVtICk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRqUXVlcnkuZXZlbnQuZGlzcGF0Y2guY2FsbCggZWxlbSwgZSApO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBlLmlzRGVmYXVsdFByZXZlbnRlZCgpICkge1xyXG5cdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxufTtcclxuXHJcbi8vIFNvbWUgcGx1Z2lucyBhcmUgdXNpbmcsIGJ1dCBpdCdzIHVuZG9jdW1lbnRlZC9kZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQuXHJcbi8vIFRoZSAxLjcgc3BlY2lhbCBldmVudCBpbnRlcmZhY2Ugc2hvdWxkIHByb3ZpZGUgYWxsIHRoZSBob29rcyBuZWVkZWQgbm93LlxyXG5qUXVlcnkuZXZlbnQuaGFuZGxlID0galF1ZXJ5LmV2ZW50LmRpc3BhdGNoO1xyXG5cclxualF1ZXJ5LnJlbW92ZUV2ZW50ID0gZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciA/XHJcblx0ZnVuY3Rpb24oIGVsZW0sIHR5cGUsIGhhbmRsZSApIHtcclxuXHRcdGlmICggZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyICkge1xyXG5cdFx0XHRlbGVtLnJlbW92ZUV2ZW50TGlzdGVuZXIoIHR5cGUsIGhhbmRsZSwgZmFsc2UgKTtcclxuXHRcdH1cclxuXHR9IDpcclxuXHRmdW5jdGlvbiggZWxlbSwgdHlwZSwgaGFuZGxlICkge1xyXG5cdFx0dmFyIG5hbWUgPSBcIm9uXCIgKyB0eXBlO1xyXG5cclxuXHRcdGlmICggZWxlbS5kZXRhY2hFdmVudCApIHtcclxuXHJcblx0XHRcdC8vICM4NTQ1LCAjNzA1NCwgcHJldmVudGluZyBtZW1vcnkgbGVha3MgZm9yIGN1c3RvbSBldmVudHMgaW4gSUU2LTgg4oCTXHJcblx0XHRcdC8vIGRldGFjaEV2ZW50IG5lZWRlZCBwcm9wZXJ0eSBvbiBlbGVtZW50LCBieSBuYW1lIG9mIHRoYXQgZXZlbnQsIHRvIHByb3Blcmx5IGV4cG9zZSBpdCB0byBHQ1xyXG5cdFx0XHRpZiAoIHR5cGVvZiBlbGVtWyBuYW1lIF0gPT09IFwidW5kZWZpbmVkXCIgKSB7XHJcblx0XHRcdFx0ZWxlbVsgbmFtZSBdID0gbnVsbDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0ZWxlbS5kZXRhY2hFdmVudCggbmFtZSwgaGFuZGxlICk7XHJcblx0XHR9XHJcblx0fTtcclxuXHJcbmpRdWVyeS5FdmVudCA9IGZ1bmN0aW9uKCBzcmMsIHByb3BzICkge1xyXG5cdC8vIEFsbG93IGluc3RhbnRpYXRpb24gd2l0aG91dCB0aGUgJ25ldycga2V5d29yZFxyXG5cdGlmICggISh0aGlzIGluc3RhbmNlb2YgalF1ZXJ5LkV2ZW50KSApIHtcclxuXHRcdHJldHVybiBuZXcgalF1ZXJ5LkV2ZW50KCBzcmMsIHByb3BzICk7XHJcblx0fVxyXG5cclxuXHQvLyBFdmVudCBvYmplY3RcclxuXHRpZiAoIHNyYyAmJiBzcmMudHlwZSApIHtcclxuXHRcdHRoaXMub3JpZ2luYWxFdmVudCA9IHNyYztcclxuXHRcdHRoaXMudHlwZSA9IHNyYy50eXBlO1xyXG5cclxuXHRcdC8vIEV2ZW50cyBidWJibGluZyB1cCB0aGUgZG9jdW1lbnQgbWF5IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHJldmVudGVkXHJcblx0XHQvLyBieSBhIGhhbmRsZXIgbG93ZXIgZG93biB0aGUgdHJlZTsgcmVmbGVjdCB0aGUgY29ycmVjdCB2YWx1ZS5cclxuXHRcdHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gKCBzcmMuZGVmYXVsdFByZXZlbnRlZCB8fCBzcmMucmV0dXJuVmFsdWUgPT09IGZhbHNlIHx8XHJcblx0XHRcdHNyYy5nZXRQcmV2ZW50RGVmYXVsdCAmJiBzcmMuZ2V0UHJldmVudERlZmF1bHQoKSApID8gcmV0dXJuVHJ1ZSA6IHJldHVybkZhbHNlO1xyXG5cclxuXHQvLyBFdmVudCB0eXBlXHJcblx0fSBlbHNlIHtcclxuXHRcdHRoaXMudHlwZSA9IHNyYztcclxuXHR9XHJcblxyXG5cdC8vIFB1dCBleHBsaWNpdGx5IHByb3ZpZGVkIHByb3BlcnRpZXMgb250byB0aGUgZXZlbnQgb2JqZWN0XHJcblx0aWYgKCBwcm9wcyApIHtcclxuXHRcdGpRdWVyeS5leHRlbmQoIHRoaXMsIHByb3BzICk7XHJcblx0fVxyXG5cclxuXHQvLyBDcmVhdGUgYSB0aW1lc3RhbXAgaWYgaW5jb21pbmcgZXZlbnQgZG9lc24ndCBoYXZlIG9uZVxyXG5cdHRoaXMudGltZVN0YW1wID0gc3JjICYmIHNyYy50aW1lU3RhbXAgfHwgalF1ZXJ5Lm5vdygpO1xyXG5cclxuXHQvLyBNYXJrIGl0IGFzIGZpeGVkXHJcblx0dGhpc1sgalF1ZXJ5LmV4cGFuZG8gXSA9IHRydWU7XHJcbn07XHJcblxyXG5mdW5jdGlvbiByZXR1cm5GYWxzZSgpIHtcclxuXHRyZXR1cm4gZmFsc2U7XHJcbn1cclxuZnVuY3Rpb24gcmV0dXJuVHJ1ZSgpIHtcclxuXHRyZXR1cm4gdHJ1ZTtcclxufVxyXG5cclxuLy8galF1ZXJ5LkV2ZW50IGlzIGJhc2VkIG9uIERPTTMgRXZlbnRzIGFzIHNwZWNpZmllZCBieSB0aGUgRUNNQVNjcmlwdCBMYW5ndWFnZSBCaW5kaW5nXHJcbi8vIGh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbFxyXG5qUXVlcnkuRXZlbnQucHJvdG90eXBlID0ge1xyXG5cdHByZXZlbnREZWZhdWx0OiBmdW5jdGlvbigpIHtcclxuXHRcdHRoaXMuaXNEZWZhdWx0UHJldmVudGVkID0gcmV0dXJuVHJ1ZTtcclxuXHJcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcclxuXHRcdGlmICggIWUgKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBpZiBwcmV2ZW50RGVmYXVsdCBleGlzdHMgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVudFxyXG5cdFx0aWYgKCBlLnByZXZlbnREZWZhdWx0ICkge1xyXG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XHJcblxyXG5cdFx0Ly8gb3RoZXJ3aXNlIHNldCB0aGUgcmV0dXJuVmFsdWUgcHJvcGVydHkgb2YgdGhlIG9yaWdpbmFsIGV2ZW50IHRvIGZhbHNlIChJRSlcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGUucmV0dXJuVmFsdWUgPSBmYWxzZTtcclxuXHRcdH1cclxuXHR9LFxyXG5cdHN0b3BQcm9wYWdhdGlvbjogZnVuY3Rpb24oKSB7XHJcblx0XHR0aGlzLmlzUHJvcGFnYXRpb25TdG9wcGVkID0gcmV0dXJuVHJ1ZTtcclxuXHJcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcclxuXHRcdGlmICggIWUgKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHRcdC8vIGlmIHN0b3BQcm9wYWdhdGlvbiBleGlzdHMgcnVuIGl0IG9uIHRoZSBvcmlnaW5hbCBldmVudFxyXG5cdFx0aWYgKCBlLnN0b3BQcm9wYWdhdGlvbiApIHtcclxuXHRcdFx0ZS5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHRcdH1cclxuXHRcdC8vIG90aGVyd2lzZSBzZXQgdGhlIGNhbmNlbEJ1YmJsZSBwcm9wZXJ0eSBvZiB0aGUgb3JpZ2luYWwgZXZlbnQgdG8gdHJ1ZSAoSUUpXHJcblx0XHRlLmNhbmNlbEJ1YmJsZSA9IHRydWU7XHJcblx0fSxcclxuXHRzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xyXG5cdFx0dGhpcy5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XHJcblx0XHR0aGlzLnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdH0sXHJcblx0aXNEZWZhdWx0UHJldmVudGVkOiByZXR1cm5GYWxzZSxcclxuXHRpc1Byb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXHJcblx0aXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlXHJcbn07XHJcblxyXG4vLyBDcmVhdGUgbW91c2VlbnRlci9sZWF2ZSBldmVudHMgdXNpbmcgbW91c2VvdmVyL291dCBhbmQgZXZlbnQtdGltZSBjaGVja3NcclxualF1ZXJ5LmVhY2goe1xyXG5cdG1vdXNlZW50ZXI6IFwibW91c2VvdmVyXCIsXHJcblx0bW91c2VsZWF2ZTogXCJtb3VzZW91dFwiXHJcbn0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7XHJcblx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHtcclxuXHRcdGRlbGVnYXRlVHlwZTogZml4LFxyXG5cdFx0YmluZFR5cGU6IGZpeCxcclxuXHJcblx0XHRoYW5kbGU6IGZ1bmN0aW9uKCBldmVudCApIHtcclxuXHRcdFx0dmFyIHJldCxcclxuXHRcdFx0XHR0YXJnZXQgPSB0aGlzLFxyXG5cdFx0XHRcdHJlbGF0ZWQgPSBldmVudC5yZWxhdGVkVGFyZ2V0LFxyXG5cdFx0XHRcdGhhbmRsZU9iaiA9IGV2ZW50LmhhbmRsZU9iaixcclxuXHRcdFx0XHRzZWxlY3RvciA9IGhhbmRsZU9iai5zZWxlY3RvcjtcclxuXHJcblx0XHRcdC8vIEZvciBtb3VzZW50ZXIvbGVhdmUgY2FsbCB0aGUgaGFuZGxlciBpZiByZWxhdGVkIGlzIG91dHNpZGUgdGhlIHRhcmdldC5cclxuXHRcdFx0Ly8gTkI6IE5vIHJlbGF0ZWRUYXJnZXQgaWYgdGhlIG1vdXNlIGxlZnQvZW50ZXJlZCB0aGUgYnJvd3NlciB3aW5kb3dcclxuXHRcdFx0aWYgKCAhcmVsYXRlZCB8fCAocmVsYXRlZCAhPT0gdGFyZ2V0ICYmICFqUXVlcnkuY29udGFpbnMoIHRhcmdldCwgcmVsYXRlZCApKSApIHtcclxuXHRcdFx0XHRldmVudC50eXBlID0gaGFuZGxlT2JqLm9yaWdUeXBlO1xyXG5cdFx0XHRcdHJldCA9IGhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcclxuXHRcdFx0XHRldmVudC50eXBlID0gZml4O1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiByZXQ7XHJcblx0XHR9XHJcblx0fTtcclxufSk7XHJcblxyXG4vLyBJRSBzdWJtaXQgZGVsZWdhdGlvblxyXG5pZiAoICFqUXVlcnkuc3VwcG9ydC5zdWJtaXRCdWJibGVzICkge1xyXG5cclxuXHRqUXVlcnkuZXZlbnQuc3BlY2lhbC5zdWJtaXQgPSB7XHJcblx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdC8vIE9ubHkgbmVlZCB0aGlzIGZvciBkZWxlZ2F0ZWQgZm9ybSBzdWJtaXQgZXZlbnRzXHJcblx0XHRcdGlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0aGlzLCBcImZvcm1cIiApICkge1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gTGF6eS1hZGQgYSBzdWJtaXQgaGFuZGxlciB3aGVuIGEgZGVzY2VuZGFudCBmb3JtIG1heSBwb3RlbnRpYWxseSBiZSBzdWJtaXR0ZWRcclxuXHRcdFx0alF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgXCJjbGljay5fc3VibWl0IGtleXByZXNzLl9zdWJtaXRcIiwgZnVuY3Rpb24oIGUgKSB7XHJcblx0XHRcdFx0Ly8gTm9kZSBuYW1lIGNoZWNrIGF2b2lkcyBhIFZNTC1yZWxhdGVkIGNyYXNoIGluIElFICgjOTgwNylcclxuXHRcdFx0XHR2YXIgZWxlbSA9IGUudGFyZ2V0LFxyXG5cdFx0XHRcdFx0Zm9ybSA9IGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgfHwgalF1ZXJ5Lm5vZGVOYW1lKCBlbGVtLCBcImJ1dHRvblwiICkgPyBlbGVtLmZvcm0gOiB1bmRlZmluZWQ7XHJcblx0XHRcdFx0aWYgKCBmb3JtICYmICFqUXVlcnkuX2RhdGEoIGZvcm0sIFwiX3N1Ym1pdF9hdHRhY2hlZFwiICkgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCBmb3JtLCBcInN1Ym1pdC5fc3VibWl0XCIsIGZ1bmN0aW9uKCBldmVudCApIHtcclxuXHRcdFx0XHRcdFx0ZXZlbnQuX3N1Ym1pdF9idWJibGUgPSB0cnVlO1xyXG5cdFx0XHRcdFx0fSk7XHJcblx0XHRcdFx0XHRqUXVlcnkuX2RhdGEoIGZvcm0sIFwiX3N1Ym1pdF9hdHRhY2hlZFwiLCB0cnVlICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdFx0Ly8gcmV0dXJuIHVuZGVmaW5lZCBzaW5jZSB3ZSBkb24ndCBuZWVkIGFuIGV2ZW50IGxpc3RlbmVyXHJcblx0XHR9LFxyXG5cclxuXHRcdHBvc3REaXNwYXRjaDogZnVuY3Rpb24oIGV2ZW50ICkge1xyXG5cdFx0XHQvLyBJZiBmb3JtIHdhcyBzdWJtaXR0ZWQgYnkgdGhlIHVzZXIsIGJ1YmJsZSB0aGUgZXZlbnQgdXAgdGhlIHRyZWVcclxuXHRcdFx0aWYgKCBldmVudC5fc3VibWl0X2J1YmJsZSApIHtcclxuXHRcdFx0XHRkZWxldGUgZXZlbnQuX3N1Ym1pdF9idWJibGU7XHJcblx0XHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgJiYgIWV2ZW50LmlzVHJpZ2dlciApIHtcclxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggXCJzdWJtaXRcIiwgdGhpcy5wYXJlbnROb2RlLCBldmVudCwgdHJ1ZSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHJcblx0XHR0ZWFyZG93bjogZnVuY3Rpb24oKSB7XHJcblx0XHRcdC8vIE9ubHkgbmVlZCB0aGlzIGZvciBkZWxlZ2F0ZWQgZm9ybSBzdWJtaXQgZXZlbnRzXHJcblx0XHRcdGlmICggalF1ZXJ5Lm5vZGVOYW1lKCB0aGlzLCBcImZvcm1cIiApICkge1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gUmVtb3ZlIGRlbGVnYXRlZCBoYW5kbGVyczsgY2xlYW5EYXRhIGV2ZW50dWFsbHkgcmVhcHMgc3VibWl0IGhhbmRsZXJzIGF0dGFjaGVkIGFib3ZlXHJcblx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsIFwiLl9zdWJtaXRcIiApO1xyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuXHJcbi8vIElFIGNoYW5nZSBkZWxlZ2F0aW9uIGFuZCBjaGVja2JveC9yYWRpbyBmaXhcclxuaWYgKCAhalF1ZXJ5LnN1cHBvcnQuY2hhbmdlQnViYmxlcyApIHtcclxuXHJcblx0alF1ZXJ5LmV2ZW50LnNwZWNpYWwuY2hhbmdlID0ge1xyXG5cclxuXHRcdHNldHVwOiBmdW5jdGlvbigpIHtcclxuXHJcblx0XHRcdGlmICggcmZvcm1FbGVtcy50ZXN0KCB0aGlzLm5vZGVOYW1lICkgKSB7XHJcblx0XHRcdFx0Ly8gSUUgZG9lc24ndCBmaXJlIGNoYW5nZSBvbiBhIGNoZWNrL3JhZGlvIHVudGlsIGJsdXI7IHRyaWdnZXIgaXQgb24gY2xpY2tcclxuXHRcdFx0XHQvLyBhZnRlciBhIHByb3BlcnR5Y2hhbmdlLiBFYXQgdGhlIGJsdXItY2hhbmdlIGluIHNwZWNpYWwuY2hhbmdlLmhhbmRsZS5cclxuXHRcdFx0XHQvLyBUaGlzIHN0aWxsIGZpcmVzIG9uY2hhbmdlIGEgc2Vjb25kIHRpbWUgZm9yIGNoZWNrL3JhZGlvIGFmdGVyIGJsdXIuXHJcblx0XHRcdFx0aWYgKCB0aGlzLnR5cGUgPT09IFwiY2hlY2tib3hcIiB8fCB0aGlzLnR5cGUgPT09IFwicmFkaW9cIiApIHtcclxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIFwicHJvcGVydHljaGFuZ2UuX2NoYW5nZVwiLCBmdW5jdGlvbiggZXZlbnQgKSB7XHJcblx0XHRcdFx0XHRcdGlmICggZXZlbnQub3JpZ2luYWxFdmVudC5wcm9wZXJ0eU5hbWUgPT09IFwiY2hlY2tlZFwiICkge1xyXG5cdFx0XHRcdFx0XHRcdHRoaXMuX2p1c3RfY2hhbmdlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgXCJjbGljay5fY2hhbmdlXCIsIGZ1bmN0aW9uKCBldmVudCApIHtcclxuXHRcdFx0XHRcdFx0aWYgKCB0aGlzLl9qdXN0X2NoYW5nZWQgJiYgIWV2ZW50LmlzVHJpZ2dlciApIHtcclxuXHRcdFx0XHRcdFx0XHR0aGlzLl9qdXN0X2NoYW5nZWQgPSBmYWxzZTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHQvLyBBbGxvdyB0cmlnZ2VyZWQsIHNpbXVsYXRlZCBjaGFuZ2UgZXZlbnRzICgjMTE1MDApXHJcblx0XHRcdFx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggXCJjaGFuZ2VcIiwgdGhpcywgZXZlbnQsIHRydWUgKTtcclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdH1cclxuXHRcdFx0Ly8gRGVsZWdhdGVkIGV2ZW50OyBsYXp5LWFkZCBhIGNoYW5nZSBoYW5kbGVyIG9uIGRlc2NlbmRhbnQgaW5wdXRzXHJcblx0XHRcdGpRdWVyeS5ldmVudC5hZGQoIHRoaXMsIFwiYmVmb3JlYWN0aXZhdGUuX2NoYW5nZVwiLCBmdW5jdGlvbiggZSApIHtcclxuXHRcdFx0XHR2YXIgZWxlbSA9IGUudGFyZ2V0O1xyXG5cclxuXHRcdFx0XHRpZiAoIHJmb3JtRWxlbXMudGVzdCggZWxlbS5ub2RlTmFtZSApICYmICFqUXVlcnkuX2RhdGEoIGVsZW0sIFwiX2NoYW5nZV9hdHRhY2hlZFwiICkgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCBlbGVtLCBcImNoYW5nZS5fY2hhbmdlXCIsIGZ1bmN0aW9uKCBldmVudCApIHtcclxuXHRcdFx0XHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgJiYgIWV2ZW50LmlzU2ltdWxhdGVkICYmICFldmVudC5pc1RyaWdnZXIgKSB7XHJcblx0XHRcdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnNpbXVsYXRlKCBcImNoYW5nZVwiLCB0aGlzLnBhcmVudE5vZGUsIGV2ZW50LCB0cnVlICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH0pO1xyXG5cdFx0XHRcdFx0alF1ZXJ5Ll9kYXRhKCBlbGVtLCBcIl9jaGFuZ2VfYXR0YWNoZWRcIiwgdHJ1ZSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9LFxyXG5cclxuXHRcdGhhbmRsZTogZnVuY3Rpb24oIGV2ZW50ICkge1xyXG5cdFx0XHR2YXIgZWxlbSA9IGV2ZW50LnRhcmdldDtcclxuXHJcblx0XHRcdC8vIFN3YWxsb3cgbmF0aXZlIGNoYW5nZSBldmVudHMgZnJvbSBjaGVja2JveC9yYWRpbywgd2UgYWxyZWFkeSB0cmlnZ2VyZWQgdGhlbSBhYm92ZVxyXG5cdFx0XHRpZiAoIHRoaXMgIT09IGVsZW0gfHwgZXZlbnQuaXNTaW11bGF0ZWQgfHwgZXZlbnQuaXNUcmlnZ2VyIHx8IChlbGVtLnR5cGUgIT09IFwicmFkaW9cIiAmJiBlbGVtLnR5cGUgIT09IFwiY2hlY2tib3hcIikgKSB7XHJcblx0XHRcdFx0cmV0dXJuIGV2ZW50LmhhbmRsZU9iai5oYW5kbGVyLmFwcGx5KCB0aGlzLCBhcmd1bWVudHMgKTtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHJcblx0XHR0ZWFyZG93bjogZnVuY3Rpb24oKSB7XHJcblx0XHRcdGpRdWVyeS5ldmVudC5yZW1vdmUoIHRoaXMsIFwiLl9jaGFuZ2VcIiApO1xyXG5cclxuXHRcdFx0cmV0dXJuICFyZm9ybUVsZW1zLnRlc3QoIHRoaXMubm9kZU5hbWUgKTtcclxuXHRcdH1cclxuXHR9O1xyXG59XHJcblxyXG4vLyBDcmVhdGUgXCJidWJibGluZ1wiIGZvY3VzIGFuZCBibHVyIGV2ZW50c1xyXG5pZiAoICFqUXVlcnkuc3VwcG9ydC5mb2N1c2luQnViYmxlcyApIHtcclxuXHRqUXVlcnkuZWFjaCh7IGZvY3VzOiBcImZvY3VzaW5cIiwgYmx1cjogXCJmb2N1c291dFwiIH0sIGZ1bmN0aW9uKCBvcmlnLCBmaXggKSB7XHJcblxyXG5cdFx0Ly8gQXR0YWNoIGEgc2luZ2xlIGNhcHR1cmluZyBoYW5kbGVyIHdoaWxlIHNvbWVvbmUgd2FudHMgZm9jdXNpbi9mb2N1c291dFxyXG5cdFx0dmFyIGF0dGFjaGVzID0gMCxcclxuXHRcdFx0aGFuZGxlciA9IGZ1bmN0aW9uKCBldmVudCApIHtcclxuXHRcdFx0XHRqUXVlcnkuZXZlbnQuc2ltdWxhdGUoIGZpeCwgZXZlbnQudGFyZ2V0LCBqUXVlcnkuZXZlbnQuZml4KCBldmVudCApLCB0cnVlICk7XHJcblx0XHRcdH07XHJcblxyXG5cdFx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0ge1xyXG5cdFx0XHRzZXR1cDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0aWYgKCBhdHRhY2hlcysrID09PSAwICkge1xyXG5cdFx0XHRcdFx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggb3JpZywgaGFuZGxlciwgdHJ1ZSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSxcclxuXHRcdFx0dGVhcmRvd246IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGlmICggLS1hdHRhY2hlcyA9PT0gMCApIHtcclxuXHRcdFx0XHRcdGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0fSk7XHJcbn1cclxuXHJcbmpRdWVyeS5mbi5leHRlbmQoe1xyXG5cclxuXHRvbjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIC8qSU5URVJOQUwqLyBvbmUgKSB7XHJcblx0XHR2YXIgb3JpZ0ZuLCB0eXBlO1xyXG5cclxuXHRcdC8vIFR5cGVzIGNhbiBiZSBhIG1hcCBvZiB0eXBlcy9oYW5kbGVyc1xyXG5cdFx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XHJcblx0XHRcdC8vICggdHlwZXMtT2JqZWN0LCBzZWxlY3RvciwgZGF0YSApXHJcblx0XHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkgeyAvLyAmJiBzZWxlY3RvciAhPSBudWxsXHJcblx0XHRcdFx0Ly8gKCB0eXBlcy1PYmplY3QsIGRhdGEgKVxyXG5cdFx0XHRcdGRhdGEgPSBkYXRhIHx8IHNlbGVjdG9yO1xyXG5cdFx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xyXG5cdFx0XHR9XHJcblx0XHRcdGZvciAoIHR5cGUgaW4gdHlwZXMgKSB7XHJcblx0XHRcdFx0dGhpcy5vbiggdHlwZSwgc2VsZWN0b3IsIGRhdGEsIHR5cGVzWyB0eXBlIF0sIG9uZSApO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggZGF0YSA9PSBudWxsICYmIGZuID09IG51bGwgKSB7XHJcblx0XHRcdC8vICggdHlwZXMsIGZuIClcclxuXHRcdFx0Zm4gPSBzZWxlY3RvcjtcclxuXHRcdFx0ZGF0YSA9IHNlbGVjdG9yID0gdW5kZWZpbmVkO1xyXG5cdFx0fSBlbHNlIGlmICggZm4gPT0gbnVsbCApIHtcclxuXHRcdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XHJcblx0XHRcdFx0Ly8gKCB0eXBlcywgc2VsZWN0b3IsIGZuIClcclxuXHRcdFx0XHRmbiA9IGRhdGE7XHJcblx0XHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHQvLyAoIHR5cGVzLCBkYXRhLCBmbiApXHJcblx0XHRcdFx0Zm4gPSBkYXRhO1xyXG5cdFx0XHRcdGRhdGEgPSBzZWxlY3RvcjtcclxuXHRcdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XHJcblx0XHRcdGZuID0gcmV0dXJuRmFsc2U7XHJcblx0XHR9IGVsc2UgaWYgKCAhZm4gKSB7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggb25lID09PSAxICkge1xyXG5cdFx0XHRvcmlnRm4gPSBmbjtcclxuXHRcdFx0Zm4gPSBmdW5jdGlvbiggZXZlbnQgKSB7XHJcblx0XHRcdFx0Ly8gQ2FuIHVzZSBhbiBlbXB0eSBzZXQsIHNpbmNlIGV2ZW50IGNvbnRhaW5zIHRoZSBpbmZvXHJcblx0XHRcdFx0alF1ZXJ5KCkub2ZmKCBldmVudCApO1xyXG5cdFx0XHRcdHJldHVybiBvcmlnRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xyXG5cdFx0XHR9O1xyXG5cdFx0XHQvLyBVc2Ugc2FtZSBndWlkIHNvIGNhbGxlciBjYW4gcmVtb3ZlIHVzaW5nIG9yaWdGblxyXG5cdFx0XHRmbi5ndWlkID0gb3JpZ0ZuLmd1aWQgfHwgKCBvcmlnRm4uZ3VpZCA9IGpRdWVyeS5ndWlkKysgKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCB0aGlzLCB0eXBlcywgZm4sIGRhdGEsIHNlbGVjdG9yICk7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cdG9uZTogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiwgMSApO1xyXG5cdH0sXHJcblx0b2ZmOiBmdW5jdGlvbiggdHlwZXMsIHNlbGVjdG9yLCBmbiApIHtcclxuXHRcdHZhciBoYW5kbGVPYmosIHR5cGU7XHJcblx0XHRpZiAoIHR5cGVzICYmIHR5cGVzLnByZXZlbnREZWZhdWx0ICYmIHR5cGVzLmhhbmRsZU9iaiApIHtcclxuXHRcdFx0Ly8gKCBldmVudCApICBkaXNwYXRjaGVkIGpRdWVyeS5FdmVudFxyXG5cdFx0XHRoYW5kbGVPYmogPSB0eXBlcy5oYW5kbGVPYmo7XHJcblx0XHRcdGpRdWVyeSggdHlwZXMuZGVsZWdhdGVUYXJnZXQgKS5vZmYoXHJcblx0XHRcdFx0aGFuZGxlT2JqLm5hbWVzcGFjZSA/IGhhbmRsZU9iai5vcmlnVHlwZSArIFwiLlwiICsgaGFuZGxlT2JqLm5hbWVzcGFjZSA6IGhhbmRsZU9iai5vcmlnVHlwZSxcclxuXHRcdFx0XHRoYW5kbGVPYmouc2VsZWN0b3IsXHJcblx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXJcclxuXHRcdFx0KTtcclxuXHRcdFx0cmV0dXJuIHRoaXM7XHJcblx0XHR9XHJcblx0XHRpZiAoIHR5cGVvZiB0eXBlcyA9PT0gXCJvYmplY3RcIiApIHtcclxuXHRcdFx0Ly8gKCB0eXBlcy1vYmplY3QgWywgc2VsZWN0b3JdIClcclxuXHRcdFx0Zm9yICggdHlwZSBpbiB0eXBlcyApIHtcclxuXHRcdFx0XHR0aGlzLm9mZiggdHlwZSwgc2VsZWN0b3IsIHR5cGVzWyB0eXBlIF0gKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdH1cclxuXHRcdGlmICggc2VsZWN0b3IgPT09IGZhbHNlIHx8IHR5cGVvZiBzZWxlY3RvciA9PT0gXCJmdW5jdGlvblwiICkge1xyXG5cdFx0XHQvLyAoIHR5cGVzIFssIGZuXSApXHJcblx0XHRcdGZuID0gc2VsZWN0b3I7XHJcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XHJcblx0XHRcdGZuID0gcmV0dXJuRmFsc2U7XHJcblx0XHR9XHJcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCB0aGlzLCB0eXBlcywgZm4sIHNlbGVjdG9yICk7XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cclxuXHRiaW5kOiBmdW5jdGlvbiggdHlwZXMsIGRhdGEsIGZuICkge1xyXG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApO1xyXG5cdH0sXHJcblx0dW5iaW5kOiBmdW5jdGlvbiggdHlwZXMsIGZuICkge1xyXG5cdFx0cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTtcclxuXHR9LFxyXG5cclxuXHRsaXZlOiBmdW5jdGlvbiggdHlwZXMsIGRhdGEsIGZuICkge1xyXG5cdFx0alF1ZXJ5KCB0aGlzLmNvbnRleHQgKS5vbiggdHlwZXMsIHRoaXMuc2VsZWN0b3IsIGRhdGEsIGZuICk7XHJcblx0XHRyZXR1cm4gdGhpcztcclxuXHR9LFxyXG5cdGRpZTogZnVuY3Rpb24oIHR5cGVzLCBmbiApIHtcclxuXHRcdGpRdWVyeSggdGhpcy5jb250ZXh0ICkub2ZmKCB0eXBlcywgdGhpcy5zZWxlY3RvciB8fCBcIioqXCIsIGZuICk7XHJcblx0XHRyZXR1cm4gdGhpcztcclxuXHR9LFxyXG5cclxuXHRkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0YSwgZm4gKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZXMsIHNlbGVjdG9yLCBkYXRhLCBmbiApO1xyXG5cdH0sXHJcblx0dW5kZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZm4gKSB7XHJcblx0XHQvLyAoIG5hbWVzcGFjZSApIG9yICggc2VsZWN0b3IsIHR5cGVzIFssIGZuXSApXHJcblx0XHRyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA9PSAxPyB0aGlzLm9mZiggc2VsZWN0b3IsIFwiKipcIiApIDogdGhpcy5vZmYoIHR5cGVzLCBzZWxlY3RvciB8fCBcIioqXCIsIGZuICk7XHJcblx0fSxcclxuXHJcblx0dHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgdGhpcyApO1xyXG5cdFx0fSk7XHJcblx0fSxcclxuXHR0cmlnZ2VySGFuZGxlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XHJcblx0XHRpZiAoIHRoaXNbMF0gKSB7XHJcblx0XHRcdHJldHVybiBqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgdGhpc1swXSwgdHJ1ZSApO1xyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdHRvZ2dsZTogZnVuY3Rpb24oIGZuICkge1xyXG5cdFx0Ly8gU2F2ZSByZWZlcmVuY2UgdG8gYXJndW1lbnRzIGZvciBhY2Nlc3MgaW4gY2xvc3VyZVxyXG5cdFx0dmFyIGFyZ3MgPSBhcmd1bWVudHMsXHJcblx0XHRcdGd1aWQgPSBmbi5ndWlkIHx8IGpRdWVyeS5ndWlkKyssXHJcblx0XHRcdGkgPSAwLFxyXG5cdFx0XHR0b2dnbGVyID0gZnVuY3Rpb24oIGV2ZW50ICkge1xyXG5cdFx0XHRcdC8vIEZpZ3VyZSBvdXQgd2hpY2ggZnVuY3Rpb24gdG8gZXhlY3V0ZVxyXG5cdFx0XHRcdHZhciBsYXN0VG9nZ2xlID0gKCBqUXVlcnkuX2RhdGEoIHRoaXMsIFwibGFzdFRvZ2dsZVwiICsgZm4uZ3VpZCApIHx8IDAgKSAlIGk7XHJcblx0XHRcdFx0alF1ZXJ5Ll9kYXRhKCB0aGlzLCBcImxhc3RUb2dnbGVcIiArIGZuLmd1aWQsIGxhc3RUb2dnbGUgKyAxICk7XHJcblxyXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IGNsaWNrcyBzdG9wXHJcblx0XHRcdFx0ZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHJcblx0XHRcdFx0Ly8gYW5kIGV4ZWN1dGUgdGhlIGZ1bmN0aW9uXHJcblx0XHRcdFx0cmV0dXJuIGFyZ3NbIGxhc3RUb2dnbGUgXS5hcHBseSggdGhpcywgYXJndW1lbnRzICkgfHwgZmFsc2U7XHJcblx0XHRcdH07XHJcblxyXG5cdFx0Ly8gbGluayBhbGwgdGhlIGZ1bmN0aW9ucywgc28gYW55IG9mIHRoZW0gY2FuIHVuYmluZCB0aGlzIGNsaWNrIGhhbmRsZXJcclxuXHRcdHRvZ2dsZXIuZ3VpZCA9IGd1aWQ7XHJcblx0XHR3aGlsZSAoIGkgPCBhcmdzLmxlbmd0aCApIHtcclxuXHRcdFx0YXJnc1sgaSsrIF0uZ3VpZCA9IGd1aWQ7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuY2xpY2soIHRvZ2dsZXIgKTtcclxuXHR9LFxyXG5cclxuXHRob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5tb3VzZWVudGVyKCBmbk92ZXIgKS5tb3VzZWxlYXZlKCBmbk91dCB8fCBmbk92ZXIgKTtcclxuXHR9XHJcbn0pO1xyXG5cclxualF1ZXJ5LmVhY2goIChcImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCBsb2FkIHJlc2l6ZSBzY3JvbGwgdW5sb2FkIGNsaWNrIGRibGNsaWNrIFwiICtcclxuXHRcIm1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIFwiICtcclxuXHRcImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgZXJyb3IgY29udGV4dG1lbnVcIikuc3BsaXQoXCIgXCIpLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcclxuXHJcblx0Ly8gSGFuZGxlIGV2ZW50IGJpbmRpbmdcclxuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBkYXRhLCBmbiApIHtcclxuXHRcdGlmICggZm4gPT0gbnVsbCApIHtcclxuXHRcdFx0Zm4gPSBkYXRhO1xyXG5cdFx0XHRkYXRhID0gbnVsbDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA+IDAgP1xyXG5cdFx0XHR0aGlzLm9uKCBuYW1lLCBudWxsLCBkYXRhLCBmbiApIDpcclxuXHRcdFx0dGhpcy50cmlnZ2VyKCBuYW1lICk7XHJcblx0fTtcclxuXHJcblx0aWYgKCBya2V5RXZlbnQudGVzdCggbmFtZSApICkge1xyXG5cdFx0alF1ZXJ5LmV2ZW50LmZpeEhvb2tzWyBuYW1lIF0gPSBqUXVlcnkuZXZlbnQua2V5SG9va3M7XHJcblx0fVxyXG5cclxuXHRpZiAoIHJtb3VzZUV2ZW50LnRlc3QoIG5hbWUgKSApIHtcclxuXHRcdGpRdWVyeS5ldmVudC5maXhIb29rc1sgbmFtZSBdID0galF1ZXJ5LmV2ZW50Lm1vdXNlSG9va3M7XHJcblx0fVxyXG59KTtcclxuLyohXHJcbiAqIFNpenpsZSBDU1MgU2VsZWN0b3IgRW5naW5lXHJcbiAqICBDb3B5cmlnaHQgMjAxMiBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXHJcbiAqICBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcclxuICogIGh0dHA6Ly9zaXp6bGVqcy5jb20vXHJcbiAqL1xyXG4oZnVuY3Rpb24oIHdpbmRvdywgdW5kZWZpbmVkICkge1xyXG5cclxudmFyIGRpcnJ1bnMsXHJcblx0Y2FjaGVkcnVucyxcclxuXHRhc3NlcnRHZXRJZE5vdE5hbWUsXHJcblx0RXhwcixcclxuXHRnZXRUZXh0LFxyXG5cdGlzWE1MLFxyXG5cdGNvbnRhaW5zLFxyXG5cdGNvbXBpbGUsXHJcblx0c29ydE9yZGVyLFxyXG5cdGhhc0R1cGxpY2F0ZSxcclxuXHJcblx0YmFzZUhhc0R1cGxpY2F0ZSA9IHRydWUsXHJcblx0c3RydW5kZWZpbmVkID0gXCJ1bmRlZmluZWRcIixcclxuXHJcblx0ZXhwYW5kbyA9ICggXCJzaXpjYWNoZVwiICsgTWF0aC5yYW5kb20oKSApLnJlcGxhY2UoIFwiLlwiLCBcIlwiICksXHJcblxyXG5cdGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50LFxyXG5cdGRvY0VsZW0gPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsXHJcblx0ZG9uZSA9IDAsXHJcblx0c2xpY2UgPSBbXS5zbGljZSxcclxuXHRwdXNoID0gW10ucHVzaCxcclxuXHJcblx0Ly8gQXVnbWVudCBhIGZ1bmN0aW9uIGZvciBzcGVjaWFsIHVzZSBieSBTaXp6bGVcclxuXHRtYXJrRnVuY3Rpb24gPSBmdW5jdGlvbiggZm4sIHZhbHVlICkge1xyXG5cdFx0Zm5bIGV4cGFuZG8gXSA9IHZhbHVlIHx8IHRydWU7XHJcblx0XHRyZXR1cm4gZm47XHJcblx0fSxcclxuXHJcblx0Y3JlYXRlQ2FjaGUgPSBmdW5jdGlvbigpIHtcclxuXHRcdHZhciBjYWNoZSA9IHt9LFxyXG5cdFx0XHRrZXlzID0gW107XHJcblxyXG5cdFx0cmV0dXJuIG1hcmtGdW5jdGlvbihmdW5jdGlvbigga2V5LCB2YWx1ZSApIHtcclxuXHRcdFx0Ly8gT25seSBrZWVwIHRoZSBtb3N0IHJlY2VudCBlbnRyaWVzXHJcblx0XHRcdGlmICgga2V5cy5wdXNoKCBrZXkgKSA+IEV4cHIuY2FjaGVMZW5ndGggKSB7XHJcblx0XHRcdFx0ZGVsZXRlIGNhY2hlWyBrZXlzLnNoaWZ0KCkgXTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIChjYWNoZVsga2V5IF0gPSB2YWx1ZSk7XHJcblx0XHR9LCBjYWNoZSApO1xyXG5cdH0sXHJcblxyXG5cdGNsYXNzQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxyXG5cdHRva2VuQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxyXG5cdGNvbXBpbGVyQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxyXG5cclxuXHQvLyBSZWdleFxyXG5cclxuXHQvLyBXaGl0ZXNwYWNlIGNoYXJhY3RlcnMgaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1zZWxlY3RvcnMvI3doaXRlc3BhY2VcclxuXHR3aGl0ZXNwYWNlID0gXCJbXFxcXHgyMFxcXFx0XFxcXHJcXFxcblxcXFxmXVwiLFxyXG5cdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtc3ludGF4LyNjaGFyYWN0ZXJzXHJcblx0Y2hhcmFjdGVyRW5jb2RpbmcgPSBcIig/OlxcXFxcXFxcLnxbLVxcXFx3XXxbXlxcXFx4MDAtXFxcXHhhMF0pK1wiLFxyXG5cclxuXHQvLyBMb29zZWx5IG1vZGVsZWQgb24gQ1NTIGlkZW50aWZpZXIgY2hhcmFjdGVyc1xyXG5cdC8vIEFuIHVucXVvdGVkIHZhbHVlIHNob3VsZCBiZSBhIENTUyBpZGVudGlmaWVyIChodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLXNlbGVjdG9ycy8jYXR0cmlidXRlLXNlbGVjdG9ycylcclxuXHQvLyBQcm9wZXIgc3ludGF4OiBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9zeW5kYXRhLmh0bWwjdmFsdWUtZGVmLWlkZW50aWZpZXJcclxuXHRpZGVudGlmaWVyID0gY2hhcmFjdGVyRW5jb2RpbmcucmVwbGFjZSggXCJ3XCIsIFwidyNcIiApLFxyXG5cclxuXHQvLyBBY2NlcHRhYmxlIG9wZXJhdG9ycyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2F0dHJpYnV0ZS1zZWxlY3RvcnNcclxuXHRvcGVyYXRvcnMgPSBcIihbKl4kfCF+XT89KVwiLFxyXG5cdGF0dHJpYnV0ZXMgPSBcIlxcXFxbXCIgKyB3aGl0ZXNwYWNlICsgXCIqKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcgKyBcIilcIiArIHdoaXRlc3BhY2UgK1xyXG5cdFx0XCIqKD86XCIgKyBvcGVyYXRvcnMgKyB3aGl0ZXNwYWNlICsgXCIqKD86KFsnXFxcIl0pKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcXSkqPylcXFxcM3woXCIgKyBpZGVudGlmaWVyICsgXCIpfCl8KVwiICsgd2hpdGVzcGFjZSArIFwiKlxcXFxdXCIsXHJcblxyXG5cdC8vIFByZWZlciBhcmd1bWVudHMgbm90IGluIHBhcmVucy9icmFja2V0cyxcclxuXHQvLyAgIHRoZW4gYXR0cmlidXRlIHNlbGVjdG9ycyBhbmQgbm9uLXBzZXVkb3MgKGRlbm90ZWQgYnkgOiksXHJcblx0Ly8gICB0aGVuIGFueXRoaW5nIGVsc2VcclxuXHQvLyBUaGVzZSBwcmVmZXJlbmNlcyBhcmUgaGVyZSB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBzZWxlY3RvcnNcclxuXHQvLyAgIG5lZWRpbmcgdG9rZW5pemUgaW4gdGhlIFBTRVVETyBwcmVGaWx0ZXJcclxuXHRwc2V1ZG9zID0gXCI6KFwiICsgY2hhcmFjdGVyRW5jb2RpbmcgKyBcIikoPzpcXFxcKCg/OihbJ1xcXCJdKSgoPzpcXFxcXFxcXC58W15cXFxcXFxcXF0pKj8pXFxcXDJ8KFteKClbXFxcXF1dKnwoPzooPzpcIiArIGF0dHJpYnV0ZXMgKyBcIil8W146XXxcXFxcXFxcXC4pKnwuKikpXFxcXCl8KVwiLFxyXG5cclxuXHQvLyBGb3IgbWF0Y2hFeHByLlBPUyBhbmQgbWF0Y2hFeHByLm5lZWRzQ29udGV4dFxyXG5cdHBvcyA9IFwiOihudGh8ZXF8Z3R8bHR8Zmlyc3R8bGFzdHxldmVufG9kZCkoPzpcXFxcKCgoPzotXFxcXGQpP1xcXFxkKilcXFxcKXwpKD89W14tXXwkKVwiLFxyXG5cclxuXHQvLyBMZWFkaW5nIGFuZCBub24tZXNjYXBlZCB0cmFpbGluZyB3aGl0ZXNwYWNlLCBjYXB0dXJpbmcgc29tZSBub24td2hpdGVzcGFjZSBjaGFyYWN0ZXJzIHByZWNlZGluZyB0aGUgbGF0dGVyXHJcblx0cnRyaW0gPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIit8KCg/Ol58W15cXFxcXFxcXF0pKD86XFxcXFxcXFwuKSopXCIgKyB3aGl0ZXNwYWNlICsgXCIrJFwiLCBcImdcIiApLFxyXG5cclxuXHRyY29tbWEgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiosXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcclxuXHRyY29tYmluYXRvcnMgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiooW1xcXFx4MjBcXFxcdFxcXFxyXFxcXG5cXFxcZj4rfl0pXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcclxuXHRycHNldWRvID0gbmV3IFJlZ0V4cCggcHNldWRvcyApLFxyXG5cclxuXHQvLyBFYXNpbHktcGFyc2VhYmxlL3JldHJpZXZhYmxlIElEIG9yIFRBRyBvciBDTEFTUyBzZWxlY3RvcnNcclxuXHRycXVpY2tFeHByID0gL14oPzojKFtcXHdcXC1dKyl8KFxcdyspfFxcLihbXFx3XFwtXSspKSQvLFxyXG5cclxuXHRybm90ID0gL146bm90LyxcclxuXHRyc2libGluZyA9IC9bXFx4MjBcXHRcXHJcXG5cXGZdKlsrfl0vLFxyXG5cdHJlbmRzV2l0aE5vdCA9IC86bm90XFwoJC8sXHJcblxyXG5cdHJoZWFkZXIgPSAvaFxcZC9pLFxyXG5cdHJpbnB1dHMgPSAvaW5wdXR8c2VsZWN0fHRleHRhcmVhfGJ1dHRvbi9pLFxyXG5cclxuXHRyYmFja3NsYXNoID0gL1xcXFwoPyFcXFxcKS9nLFxyXG5cclxuXHRtYXRjaEV4cHIgPSB7XHJcblx0XHRcIklEXCI6IG5ldyBSZWdFeHAoIFwiXiMoXCIgKyBjaGFyYWN0ZXJFbmNvZGluZyArIFwiKVwiICksXHJcblx0XHRcIkNMQVNTXCI6IG5ldyBSZWdFeHAoIFwiXlxcXFwuKFwiICsgY2hhcmFjdGVyRW5jb2RpbmcgKyBcIilcIiApLFxyXG5cdFx0XCJOQU1FXCI6IG5ldyBSZWdFeHAoIFwiXlxcXFxbbmFtZT1bJ1xcXCJdPyhcIiArIGNoYXJhY3RlckVuY29kaW5nICsgXCIpWydcXFwiXT9cXFxcXVwiICksXHJcblx0XHRcIlRBR1wiOiBuZXcgUmVnRXhwKCBcIl4oXCIgKyBjaGFyYWN0ZXJFbmNvZGluZy5yZXBsYWNlKCBcIndcIiwgXCJ3KlwiICkgKyBcIilcIiApLFxyXG5cdFx0XCJBVFRSXCI6IG5ldyBSZWdFeHAoIFwiXlwiICsgYXR0cmlidXRlcyApLFxyXG5cdFx0XCJQU0VVRE9cIjogbmV3IFJlZ0V4cCggXCJeXCIgKyBwc2V1ZG9zICksXHJcblx0XHRcIkNISUxEXCI6IG5ldyBSZWdFeHAoIFwiXjoob25seXxudGh8bGFzdHxmaXJzdCktY2hpbGQoPzpcXFxcKFwiICsgd2hpdGVzcGFjZSArXHJcblx0XHRcdFwiKihldmVufG9kZHwoKFsrLV18KShcXFxcZCopbnwpXCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86KFsrLV18KVwiICsgd2hpdGVzcGFjZSArXHJcblx0XHRcdFwiKihcXFxcZCspfCkpXCIgKyB3aGl0ZXNwYWNlICsgXCIqXFxcXCl8KVwiLCBcImlcIiApLFxyXG5cdFx0XCJQT1NcIjogbmV3IFJlZ0V4cCggcG9zLCBcImlnXCIgKSxcclxuXHRcdC8vIEZvciB1c2UgaW4gbGlicmFyaWVzIGltcGxlbWVudGluZyAuaXMoKVxyXG5cdFx0XCJuZWVkc0NvbnRleHRcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIqWz4rfl18XCIgKyBwb3MsIFwiaVwiIClcclxuXHR9LFxyXG5cclxuXHQvLyBTdXBwb3J0XHJcblxyXG5cdC8vIFVzZWQgZm9yIHRlc3Rpbmcgc29tZXRoaW5nIG9uIGFuIGVsZW1lbnRcclxuXHRhc3NlcnQgPSBmdW5jdGlvbiggZm4gKSB7XHJcblx0XHR2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcclxuXHJcblx0XHR0cnkge1xyXG5cdFx0XHRyZXR1cm4gZm4oIGRpdiApO1xyXG5cdFx0fSBjYXRjaCAoZSkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9IGZpbmFsbHkge1xyXG5cdFx0XHQvLyByZWxlYXNlIG1lbW9yeSBpbiBJRVxyXG5cdFx0XHRkaXYgPSBudWxsO1xyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdC8vIENoZWNrIGlmIGdldEVsZW1lbnRzQnlUYWdOYW1lKFwiKlwiKSByZXR1cm5zIG9ubHkgZWxlbWVudHNcclxuXHRhc3NlcnRUYWdOYW1lTm9Db21tZW50cyA9IGFzc2VydChmdW5jdGlvbiggZGl2ICkge1xyXG5cdFx0ZGl2LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVDb21tZW50KFwiXCIpICk7XHJcblx0XHRyZXR1cm4gIWRpdi5nZXRFbGVtZW50c0J5VGFnTmFtZShcIipcIikubGVuZ3RoO1xyXG5cdH0pLFxyXG5cclxuXHQvLyBDaGVjayBpZiBnZXRBdHRyaWJ1dGUgcmV0dXJucyBub3JtYWxpemVkIGhyZWYgYXR0cmlidXRlc1xyXG5cdGFzc2VydEhyZWZOb3ROb3JtYWxpemVkID0gYXNzZXJ0KGZ1bmN0aW9uKCBkaXYgKSB7XHJcblx0XHRkaXYuaW5uZXJIVE1MID0gXCI8YSBocmVmPScjJz48L2E+XCI7XHJcblx0XHRyZXR1cm4gZGl2LmZpcnN0Q2hpbGQgJiYgdHlwZW9mIGRpdi5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSAhPT0gc3RydW5kZWZpbmVkICYmXHJcblx0XHRcdGRpdi5maXJzdENoaWxkLmdldEF0dHJpYnV0ZShcImhyZWZcIikgPT09IFwiI1wiO1xyXG5cdH0pLFxyXG5cclxuXHQvLyBDaGVjayBpZiBhdHRyaWJ1dGVzIHNob3VsZCBiZSByZXRyaWV2ZWQgYnkgYXR0cmlidXRlIG5vZGVzXHJcblx0YXNzZXJ0QXR0cmlidXRlcyA9IGFzc2VydChmdW5jdGlvbiggZGl2ICkge1xyXG5cdFx0ZGl2LmlubmVySFRNTCA9IFwiPHNlbGVjdD48L3NlbGVjdD5cIjtcclxuXHRcdHZhciB0eXBlID0gdHlwZW9mIGRpdi5sYXN0Q2hpbGQuZ2V0QXR0cmlidXRlKFwibXVsdGlwbGVcIik7XHJcblx0XHQvLyBJRTggcmV0dXJucyBhIHN0cmluZyBmb3Igc29tZSBhdHRyaWJ1dGVzIGV2ZW4gd2hlbiBub3QgcHJlc2VudFxyXG5cdFx0cmV0dXJuIHR5cGUgIT09IFwiYm9vbGVhblwiICYmIHR5cGUgIT09IFwic3RyaW5nXCI7XHJcblx0fSksXHJcblxyXG5cdC8vIENoZWNrIGlmIGdldEVsZW1lbnRzQnlDbGFzc05hbWUgY2FuIGJlIHRydXN0ZWRcclxuXHRhc3NlcnRVc2FibGVDbGFzc05hbWUgPSBhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcclxuXHRcdC8vIE9wZXJhIGNhbid0IGZpbmQgYSBzZWNvbmQgY2xhc3NuYW1lIChpbiA5LjYpXHJcblx0XHRkaXYuaW5uZXJIVE1MID0gXCI8ZGl2IGNsYXNzPSdoaWRkZW4gZSc+PC9kaXY+PGRpdiBjbGFzcz0naGlkZGVuJz48L2Rpdj5cIjtcclxuXHRcdGlmICggIWRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIHx8ICFkaXYuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZShcImVcIikubGVuZ3RoICkge1xyXG5cdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gU2FmYXJpIDMuMiBjYWNoZXMgY2xhc3MgYXR0cmlidXRlcyBhbmQgZG9lc24ndCBjYXRjaCBjaGFuZ2VzXHJcblx0XHRkaXYubGFzdENoaWxkLmNsYXNzTmFtZSA9IFwiZVwiO1xyXG5cdFx0cmV0dXJuIGRpdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiZVwiKS5sZW5ndGggPT09IDI7XHJcblx0fSksXHJcblxyXG5cdC8vIENoZWNrIGlmIGdldEVsZW1lbnRCeUlkIHJldHVybnMgZWxlbWVudHMgYnkgbmFtZVxyXG5cdC8vIENoZWNrIGlmIGdldEVsZW1lbnRzQnlOYW1lIHByaXZpbGVnZXMgZm9ybSBjb250cm9scyBvciByZXR1cm5zIGVsZW1lbnRzIGJ5IElEXHJcblx0YXNzZXJ0VXNhYmxlTmFtZSA9IGFzc2VydChmdW5jdGlvbiggZGl2ICkge1xyXG5cdFx0Ly8gSW5qZWN0IGNvbnRlbnRcclxuXHRcdGRpdi5pZCA9IGV4cGFuZG8gKyAwO1xyXG5cdFx0ZGl2LmlubmVySFRNTCA9IFwiPGEgbmFtZT0nXCIgKyBleHBhbmRvICsgXCInPjwvYT48ZGl2IG5hbWU9J1wiICsgZXhwYW5kbyArIFwiJz48L2Rpdj5cIjtcclxuXHRcdGRvY0VsZW0uaW5zZXJ0QmVmb3JlKCBkaXYsIGRvY0VsZW0uZmlyc3RDaGlsZCApO1xyXG5cclxuXHRcdC8vIFRlc3RcclxuXHRcdHZhciBwYXNzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUgJiZcclxuXHRcdFx0Ly8gYnVnZ3kgYnJvd3NlcnMgd2lsbCByZXR1cm4gZmV3ZXIgdGhhbiB0aGUgY29ycmVjdCAyXHJcblx0XHRcdGRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lKCBleHBhbmRvICkubGVuZ3RoID09PSAyICtcclxuXHRcdFx0Ly8gYnVnZ3kgYnJvd3NlcnMgd2lsbCByZXR1cm4gbW9yZSB0aGFuIHRoZSBjb3JyZWN0IDBcclxuXHRcdFx0ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUoIGV4cGFuZG8gKyAwICkubGVuZ3RoO1xyXG5cdFx0YXNzZXJ0R2V0SWROb3ROYW1lID0gIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBleHBhbmRvICk7XHJcblxyXG5cdFx0Ly8gQ2xlYW51cFxyXG5cdFx0ZG9jRWxlbS5yZW1vdmVDaGlsZCggZGl2ICk7XHJcblxyXG5cdFx0cmV0dXJuIHBhc3M7XHJcblx0fSk7XHJcblxyXG4vLyBJZiBzbGljZSBpcyBub3QgYXZhaWxhYmxlLCBwcm92aWRlIGEgYmFja3VwXHJcbnRyeSB7XHJcblx0c2xpY2UuY2FsbCggZG9jRWxlbS5jaGlsZE5vZGVzLCAwIClbMF0ubm9kZVR5cGU7XHJcbn0gY2F0Y2ggKCBlICkge1xyXG5cdHNsaWNlID0gZnVuY3Rpb24oIGkgKSB7XHJcblx0XHR2YXIgZWxlbSwgcmVzdWx0cyA9IFtdO1xyXG5cdFx0Zm9yICggOyAoZWxlbSA9IHRoaXNbaV0pOyBpKysgKSB7XHJcblx0XHRcdHJlc3VsdHMucHVzaCggZWxlbSApO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHJlc3VsdHM7XHJcblx0fTtcclxufVxyXG5cclxuZnVuY3Rpb24gU2l6emxlKCBzZWxlY3RvciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApIHtcclxuXHRyZXN1bHRzID0gcmVzdWx0cyB8fCBbXTtcclxuXHRjb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDtcclxuXHR2YXIgbWF0Y2gsIGVsZW0sIHhtbCwgbSxcclxuXHRcdG5vZGVUeXBlID0gY29udGV4dC5ub2RlVHlwZTtcclxuXHJcblx0aWYgKCBub2RlVHlwZSAhPT0gMSAmJiBub2RlVHlwZSAhPT0gOSApIHtcclxuXHRcdHJldHVybiBbXTtcclxuXHR9XHJcblxyXG5cdGlmICggIXNlbGVjdG9yIHx8IHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdHJldHVybiByZXN1bHRzO1xyXG5cdH1cclxuXHJcblx0eG1sID0gaXNYTUwoIGNvbnRleHQgKTtcclxuXHJcblx0aWYgKCAheG1sICYmICFzZWVkICkge1xyXG5cdFx0aWYgKCAobWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICkpICkge1xyXG5cdFx0XHQvLyBTcGVlZC11cDogU2l6emxlKFwiI0lEXCIpXHJcblx0XHRcdGlmICggKG0gPSBtYXRjaFsxXSkgKSB7XHJcblx0XHRcdFx0aWYgKCBub2RlVHlwZSA9PT0gOSApIHtcclxuXHRcdFx0XHRcdGVsZW0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBtICk7XHJcblx0XHRcdFx0XHQvLyBDaGVjayBwYXJlbnROb2RlIHRvIGNhdGNoIHdoZW4gQmxhY2tiZXJyeSA0LjYgcmV0dXJuc1xyXG5cdFx0XHRcdFx0Ly8gbm9kZXMgdGhhdCBhcmUgbm8gbG9uZ2VyIGluIHRoZSBkb2N1bWVudCAjNjk2M1xyXG5cdFx0XHRcdFx0aWYgKCBlbGVtICYmIGVsZW0ucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0XHRcdFx0Ly8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIElFLCBPcGVyYSwgYW5kIFdlYmtpdCByZXR1cm4gaXRlbXNcclxuXHRcdFx0XHRcdFx0Ly8gYnkgbmFtZSBpbnN0ZWFkIG9mIElEXHJcblx0XHRcdFx0XHRcdGlmICggZWxlbS5pZCA9PT0gbSApIHtcclxuXHRcdFx0XHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdC8vIENvbnRleHQgaXMgbm90IGEgZG9jdW1lbnRcclxuXHRcdFx0XHRcdGlmICggY29udGV4dC5vd25lckRvY3VtZW50ICYmIChlbGVtID0gY29udGV4dC5vd25lckRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtICkpICYmXHJcblx0XHRcdFx0XHRcdGNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICkgJiYgZWxlbS5pZCA9PT0gbSApIHtcclxuXHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XHJcblx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFNwZWVkLXVwOiBTaXp6bGUoXCJUQUdcIilcclxuXHRcdFx0fSBlbHNlIGlmICggbWF0Y2hbMl0gKSB7XHJcblx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2xpY2UuY2FsbChjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCBzZWxlY3RvciApLCAwKSApO1xyXG5cdFx0XHRcdHJldHVybiByZXN1bHRzO1xyXG5cclxuXHRcdFx0Ly8gU3BlZWQtdXA6IFNpenpsZShcIi5DTEFTU1wiKVxyXG5cdFx0XHR9IGVsc2UgaWYgKCAobSA9IG1hdGNoWzNdKSAmJiBhc3NlcnRVc2FibGVDbGFzc05hbWUgJiYgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICkge1xyXG5cdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIHNsaWNlLmNhbGwoY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCBtICksIDApICk7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIEFsbCBvdGhlcnNcclxuXHRyZXR1cm4gc2VsZWN0KCBzZWxlY3RvciwgY29udGV4dCwgcmVzdWx0cywgc2VlZCwgeG1sICk7XHJcbn1cclxuXHJcblNpenpsZS5tYXRjaGVzID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1lbnRzICkge1xyXG5cdHJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIGVsZW1lbnRzICk7XHJcbn07XHJcblxyXG5TaXp6bGUubWF0Y2hlc1NlbGVjdG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7XHJcblx0cmV0dXJuIFNpenpsZSggZXhwciwgbnVsbCwgbnVsbCwgWyBlbGVtIF0gKS5sZW5ndGggPiAwO1xyXG59O1xyXG5cclxuLy8gUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBpbnB1dCB0eXBlc1xyXG5mdW5jdGlvbiBjcmVhdGVJbnB1dFBzZXVkbyggdHlwZSApIHtcclxuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcclxuXHRcdHJldHVybiBuYW1lID09PSBcImlucHV0XCIgJiYgZWxlbS50eXBlID09PSB0eXBlO1xyXG5cdH07XHJcbn1cclxuXHJcbi8vIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgYnV0dG9uc1xyXG5mdW5jdGlvbiBjcmVhdGVCdXR0b25Qc2V1ZG8oIHR5cGUgKSB7XHJcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XHJcblx0XHRyZXR1cm4gKG5hbWUgPT09IFwiaW5wdXRcIiB8fCBuYW1lID09PSBcImJ1dHRvblwiKSAmJiBlbGVtLnR5cGUgPT09IHR5cGU7XHJcblx0fTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFV0aWxpdHkgZnVuY3Rpb24gZm9yIHJldHJpZXZpbmcgdGhlIHRleHQgdmFsdWUgb2YgYW4gYXJyYXkgb2YgRE9NIG5vZGVzXHJcbiAqIEBwYXJhbSB7QXJyYXl8RWxlbWVudH0gZWxlbVxyXG4gKi9cclxuZ2V0VGV4dCA9IFNpenpsZS5nZXRUZXh0ID0gZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0dmFyIG5vZGUsXHJcblx0XHRyZXQgPSBcIlwiLFxyXG5cdFx0aSA9IDAsXHJcblx0XHRub2RlVHlwZSA9IGVsZW0ubm9kZVR5cGU7XHJcblxyXG5cdGlmICggbm9kZVR5cGUgKSB7XHJcblx0XHRpZiAoIG5vZGVUeXBlID09PSAxIHx8IG5vZGVUeXBlID09PSA5IHx8IG5vZGVUeXBlID09PSAxMSApIHtcclxuXHRcdFx0Ly8gVXNlIHRleHRDb250ZW50IGZvciBlbGVtZW50c1xyXG5cdFx0XHQvLyBpbm5lclRleHQgdXNhZ2UgcmVtb3ZlZCBmb3IgY29uc2lzdGVuY3kgb2YgbmV3IGxpbmVzIChzZWUgIzExMTUzKVxyXG5cdFx0XHRpZiAoIHR5cGVvZiBlbGVtLnRleHRDb250ZW50ID09PSBcInN0cmluZ1wiICkge1xyXG5cdFx0XHRcdHJldHVybiBlbGVtLnRleHRDb250ZW50O1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdC8vIFRyYXZlcnNlIGl0cyBjaGlsZHJlblxyXG5cdFx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xyXG5cdFx0XHRcdFx0cmV0ICs9IGdldFRleHQoIGVsZW0gKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSBpZiAoIG5vZGVUeXBlID09PSAzIHx8IG5vZGVUeXBlID09PSA0ICkge1xyXG5cdFx0XHRyZXR1cm4gZWxlbS5ub2RlVmFsdWU7XHJcblx0XHR9XHJcblx0XHQvLyBEbyBub3QgaW5jbHVkZSBjb21tZW50IG9yIHByb2Nlc3NpbmcgaW5zdHJ1Y3Rpb24gbm9kZXNcclxuXHR9IGVsc2Uge1xyXG5cclxuXHRcdC8vIElmIG5vIG5vZGVUeXBlLCB0aGlzIGlzIGV4cGVjdGVkIHRvIGJlIGFuIGFycmF5XHJcblx0XHRmb3IgKCA7IChub2RlID0gZWxlbVtpXSk7IGkrKyApIHtcclxuXHRcdFx0Ly8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXNcclxuXHRcdFx0cmV0ICs9IGdldFRleHQoIG5vZGUgKTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIHJldDtcclxufTtcclxuXHJcbmlzWE1MID0gU2l6emxlLmlzWE1MID0gZnVuY3Rpb24gaXNYTUwoIGVsZW0gKSB7XHJcblx0Ly8gZG9jdW1lbnRFbGVtZW50IGlzIHZlcmlmaWVkIGZvciBjYXNlcyB3aGVyZSBpdCBkb2Vzbid0IHlldCBleGlzdFxyXG5cdC8vIChzdWNoIGFzIGxvYWRpbmcgaWZyYW1lcyBpbiBJRSAtICM0ODMzKVxyXG5cdHZhciBkb2N1bWVudEVsZW1lbnQgPSBlbGVtICYmIChlbGVtLm93bmVyRG9jdW1lbnQgfHwgZWxlbSkuZG9jdW1lbnRFbGVtZW50O1xyXG5cdHJldHVybiBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQubm9kZU5hbWUgIT09IFwiSFRNTFwiIDogZmFsc2U7XHJcbn07XHJcblxyXG4vLyBFbGVtZW50IGNvbnRhaW5zIGFub3RoZXJcclxuY29udGFpbnMgPSBTaXp6bGUuY29udGFpbnMgPSBkb2NFbGVtLmNvbnRhaW5zID9cclxuXHRmdW5jdGlvbiggYSwgYiApIHtcclxuXHRcdHZhciBhZG93biA9IGEubm9kZVR5cGUgPT09IDkgPyBhLmRvY3VtZW50RWxlbWVudCA6IGEsXHJcblx0XHRcdGJ1cCA9IGIgJiYgYi5wYXJlbnROb2RlO1xyXG5cdFx0cmV0dXJuIGEgPT09IGJ1cCB8fCAhISggYnVwICYmIGJ1cC5ub2RlVHlwZSA9PT0gMSAmJiBhZG93bi5jb250YWlucyAmJiBhZG93bi5jb250YWlucyhidXApICk7XHJcblx0fSA6XHJcblx0ZG9jRWxlbS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiA/XHJcblx0ZnVuY3Rpb24oIGEsIGIgKSB7XHJcblx0XHRyZXR1cm4gYiAmJiAhISggYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggYiApICYgMTYgKTtcclxuXHR9IDpcclxuXHRmdW5jdGlvbiggYSwgYiApIHtcclxuXHRcdHdoaWxlICggKGIgPSBiLnBhcmVudE5vZGUpICkge1xyXG5cdFx0XHRpZiAoIGIgPT09IGEgKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9O1xyXG5cclxuU2l6emxlLmF0dHIgPSBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcclxuXHR2YXIgYXR0cixcclxuXHRcdHhtbCA9IGlzWE1MKCBlbGVtICk7XHJcblxyXG5cdGlmICggIXhtbCApIHtcclxuXHRcdG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XHJcblx0fVxyXG5cdGlmICggRXhwci5hdHRySGFuZGxlWyBuYW1lIF0gKSB7XHJcblx0XHRyZXR1cm4gRXhwci5hdHRySGFuZGxlWyBuYW1lIF0oIGVsZW0gKTtcclxuXHR9XHJcblx0aWYgKCBhc3NlcnRBdHRyaWJ1dGVzIHx8IHhtbCApIHtcclxuXHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApO1xyXG5cdH1cclxuXHRhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKCBuYW1lICk7XHJcblx0cmV0dXJuIGF0dHIgP1xyXG5cdFx0dHlwZW9mIGVsZW1bIG5hbWUgXSA9PT0gXCJib29sZWFuXCIgP1xyXG5cdFx0XHRlbGVtWyBuYW1lIF0gPyBuYW1lIDogbnVsbCA6XHJcblx0XHRcdGF0dHIuc3BlY2lmaWVkID8gYXR0ci52YWx1ZSA6IG51bGwgOlxyXG5cdFx0bnVsbDtcclxufTtcclxuXHJcbkV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzID0ge1xyXG5cclxuXHQvLyBDYW4gYmUgYWRqdXN0ZWQgYnkgdGhlIHVzZXJcclxuXHRjYWNoZUxlbmd0aDogNTAsXHJcblxyXG5cdGNyZWF0ZVBzZXVkbzogbWFya0Z1bmN0aW9uLFxyXG5cclxuXHRtYXRjaDogbWF0Y2hFeHByLFxyXG5cclxuXHRvcmRlcjogbmV3IFJlZ0V4cCggXCJJRHxUQUdcIiArXHJcblx0XHQoYXNzZXJ0VXNhYmxlTmFtZSA/IFwifE5BTUVcIiA6IFwiXCIpICtcclxuXHRcdChhc3NlcnRVc2FibGVDbGFzc05hbWUgPyBcInxDTEFTU1wiIDogXCJcIilcclxuXHQpLFxyXG5cclxuXHQvLyBJRTYvNyByZXR1cm4gYSBtb2RpZmllZCBocmVmXHJcblx0YXR0ckhhbmRsZTogYXNzZXJ0SHJlZk5vdE5vcm1hbGl6ZWQgP1xyXG5cdFx0e30gOlxyXG5cdFx0e1xyXG5cdFx0XHRcImhyZWZcIjogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCBcImhyZWZcIiwgMiApO1xyXG5cdFx0XHR9LFxyXG5cdFx0XHRcInR5cGVcIjogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKFwidHlwZVwiKTtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHJcblx0ZmluZDoge1xyXG5cdFx0XCJJRFwiOiBhc3NlcnRHZXRJZE5vdE5hbWUgP1xyXG5cdFx0XHRmdW5jdGlvbiggaWQsIGNvbnRleHQsIHhtbCApIHtcclxuXHRcdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSBzdHJ1bmRlZmluZWQgJiYgIXhtbCApIHtcclxuXHRcdFx0XHRcdHZhciBtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggaWQgKTtcclxuXHRcdFx0XHRcdC8vIENoZWNrIHBhcmVudE5vZGUgdG8gY2F0Y2ggd2hlbiBCbGFja2JlcnJ5IDQuNiByZXR1cm5zXHJcblx0XHRcdFx0XHQvLyBub2RlcyB0aGF0IGFyZSBubyBsb25nZXIgaW4gdGhlIGRvY3VtZW50ICM2OTYzXHJcblx0XHRcdFx0XHRyZXR1cm4gbSAmJiBtLnBhcmVudE5vZGUgPyBbbV0gOiBbXTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0gOlxyXG5cdFx0XHRmdW5jdGlvbiggaWQsIGNvbnRleHQsIHhtbCApIHtcclxuXHRcdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSBzdHJ1bmRlZmluZWQgJiYgIXhtbCApIHtcclxuXHRcdFx0XHRcdHZhciBtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggaWQgKTtcclxuXHJcblx0XHRcdFx0XHRyZXR1cm4gbSA/XHJcblx0XHRcdFx0XHRcdG0uaWQgPT09IGlkIHx8IHR5cGVvZiBtLmdldEF0dHJpYnV0ZU5vZGUgIT09IHN0cnVuZGVmaW5lZCAmJiBtLmdldEF0dHJpYnV0ZU5vZGUoXCJpZFwiKS52YWx1ZSA9PT0gaWQgP1xyXG5cdFx0XHRcdFx0XHRcdFttXSA6XHJcblx0XHRcdFx0XHRcdFx0dW5kZWZpbmVkIDpcclxuXHRcdFx0XHRcdFx0W107XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9LFxyXG5cclxuXHRcdFwiVEFHXCI6IGFzc2VydFRhZ05hbWVOb0NvbW1lbnRzID9cclxuXHRcdFx0ZnVuY3Rpb24oIHRhZywgY29udGV4dCApIHtcclxuXHRcdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBzdHJ1bmRlZmluZWQgKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IDpcclxuXHRcdFx0ZnVuY3Rpb24oIHRhZywgY29udGV4dCApIHtcclxuXHRcdFx0XHR2YXIgcmVzdWx0cyA9IGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRhZyApO1xyXG5cclxuXHRcdFx0XHQvLyBGaWx0ZXIgb3V0IHBvc3NpYmxlIGNvbW1lbnRzXHJcblx0XHRcdFx0aWYgKCB0YWcgPT09IFwiKlwiICkge1xyXG5cdFx0XHRcdFx0dmFyIGVsZW0sXHJcblx0XHRcdFx0XHRcdHRtcCA9IFtdLFxyXG5cdFx0XHRcdFx0XHRpID0gMDtcclxuXHJcblx0XHRcdFx0XHRmb3IgKCA7IChlbGVtID0gcmVzdWx0c1tpXSk7IGkrKyApIHtcclxuXHRcdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xyXG5cdFx0XHRcdFx0XHRcdHRtcC5wdXNoKCBlbGVtICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRyZXR1cm4gdG1wO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcIk5BTUVcIjogZnVuY3Rpb24oIHRhZywgY29udGV4dCApIHtcclxuXHRcdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5TmFtZSAhPT0gc3RydW5kZWZpbmVkICkge1xyXG5cdFx0XHRcdHJldHVybiBjb250ZXh0LmdldEVsZW1lbnRzQnlOYW1lKCBuYW1lICk7XHJcblx0XHRcdH1cclxuXHRcdH0sXHJcblxyXG5cdFx0XCJDTEFTU1wiOiBmdW5jdGlvbiggY2xhc3NOYW1lLCBjb250ZXh0LCB4bWwgKSB7XHJcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSAhPT0gc3RydW5kZWZpbmVkICYmICF4bWwgKSB7XHJcblx0XHRcdFx0cmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggY2xhc3NOYW1lICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHRyZWxhdGl2ZToge1xyXG5cdFx0XCI+XCI6IHsgZGlyOiBcInBhcmVudE5vZGVcIiwgZmlyc3Q6IHRydWUgfSxcclxuXHRcdFwiIFwiOiB7IGRpcjogXCJwYXJlbnROb2RlXCIgfSxcclxuXHRcdFwiK1wiOiB7IGRpcjogXCJwcmV2aW91c1NpYmxpbmdcIiwgZmlyc3Q6IHRydWUgfSxcclxuXHRcdFwiflwiOiB7IGRpcjogXCJwcmV2aW91c1NpYmxpbmdcIiB9XHJcblx0fSxcclxuXHJcblx0cHJlRmlsdGVyOiB7XHJcblx0XHRcIkFUVFJcIjogZnVuY3Rpb24oIG1hdGNoICkge1xyXG5cdFx0XHRtYXRjaFsxXSA9IG1hdGNoWzFdLnJlcGxhY2UoIHJiYWNrc2xhc2gsIFwiXCIgKTtcclxuXHJcblx0XHRcdC8vIE1vdmUgdGhlIGdpdmVuIHZhbHVlIHRvIG1hdGNoWzNdIHdoZXRoZXIgcXVvdGVkIG9yIHVucXVvdGVkXHJcblx0XHRcdG1hdGNoWzNdID0gKCBtYXRjaFs0XSB8fCBtYXRjaFs1XSB8fCBcIlwiICkucmVwbGFjZSggcmJhY2tzbGFzaCwgXCJcIiApO1xyXG5cclxuXHRcdFx0aWYgKCBtYXRjaFsyXSA9PT0gXCJ+PVwiICkge1xyXG5cdFx0XHRcdG1hdGNoWzNdID0gXCIgXCIgKyBtYXRjaFszXSArIFwiIFwiO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDQgKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0XCJDSElMRFwiOiBmdW5jdGlvbiggbWF0Y2ggKSB7XHJcblx0XHRcdC8qIG1hdGNoZXMgZnJvbSBtYXRjaEV4cHIuQ0hJTERcclxuXHRcdFx0XHQxIHR5cGUgKG9ubHl8bnRofC4uLilcclxuXHRcdFx0XHQyIGFyZ3VtZW50IChldmVufG9kZHxcXGQqfFxcZCpuKFsrLV1cXGQrKT98Li4uKVxyXG5cdFx0XHRcdDMgeG4tY29tcG9uZW50IG9mIHhuK3kgYXJndW1lbnQgKFsrLV0/XFxkKm58KVxyXG5cdFx0XHRcdDQgc2lnbiBvZiB4bi1jb21wb25lbnRcclxuXHRcdFx0XHQ1IHggb2YgeG4tY29tcG9uZW50XHJcblx0XHRcdFx0NiBzaWduIG9mIHktY29tcG9uZW50XHJcblx0XHRcdFx0NyB5IG9mIHktY29tcG9uZW50XHJcblx0XHRcdCovXHJcblx0XHRcdG1hdGNoWzFdID0gbWF0Y2hbMV0udG9Mb3dlckNhc2UoKTtcclxuXHJcblx0XHRcdGlmICggbWF0Y2hbMV0gPT09IFwibnRoXCIgKSB7XHJcblx0XHRcdFx0Ly8gbnRoLWNoaWxkIHJlcXVpcmVzIGFyZ3VtZW50XHJcblx0XHRcdFx0aWYgKCAhbWF0Y2hbMl0gKSB7XHJcblx0XHRcdFx0XHRTaXp6bGUuZXJyb3IoIG1hdGNoWzBdICk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBudW1lcmljIHggYW5kIHkgcGFyYW1ldGVycyBmb3IgRXhwci5maWx0ZXIuQ0hJTERcclxuXHRcdFx0XHQvLyByZW1lbWJlciB0aGF0IGZhbHNlL3RydWUgY2FzdCByZXNwZWN0aXZlbHkgdG8gMC8xXHJcblx0XHRcdFx0bWF0Y2hbM10gPSArKCBtYXRjaFszXSA/IG1hdGNoWzRdICsgKG1hdGNoWzVdIHx8IDEpIDogMiAqICggbWF0Y2hbMl0gPT09IFwiZXZlblwiIHx8IG1hdGNoWzJdID09PSBcIm9kZFwiICkgKTtcclxuXHRcdFx0XHRtYXRjaFs0XSA9ICsoICggbWF0Y2hbNl0gKyBtYXRjaFs3XSApIHx8IG1hdGNoWzJdID09PSBcIm9kZFwiICk7XHJcblxyXG5cdFx0XHQvLyBvdGhlciB0eXBlcyBwcm9oaWJpdCBhcmd1bWVudHNcclxuXHRcdFx0fSBlbHNlIGlmICggbWF0Y2hbMl0gKSB7XHJcblx0XHRcdFx0U2l6emxlLmVycm9yKCBtYXRjaFswXSApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gbWF0Y2g7XHJcblx0XHR9LFxyXG5cclxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBtYXRjaCwgY29udGV4dCwgeG1sICkge1xyXG5cdFx0XHR2YXIgdW5xdW90ZWQsIGV4Y2VzcztcclxuXHRcdFx0aWYgKCBtYXRjaEV4cHJbXCJDSElMRFwiXS50ZXN0KCBtYXRjaFswXSApICkge1xyXG5cdFx0XHRcdHJldHVybiBudWxsO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoIG1hdGNoWzNdICkge1xyXG5cdFx0XHRcdG1hdGNoWzJdID0gbWF0Y2hbM107XHJcblx0XHRcdH0gZWxzZSBpZiAoICh1bnF1b3RlZCA9IG1hdGNoWzRdKSApIHtcclxuXHRcdFx0XHQvLyBPbmx5IGNoZWNrIGFyZ3VtZW50cyB0aGF0IGNvbnRhaW4gYSBwc2V1ZG9cclxuXHRcdFx0XHRpZiAoIHJwc2V1ZG8udGVzdCh1bnF1b3RlZCkgJiZcclxuXHRcdFx0XHRcdC8vIEdldCBleGNlc3MgZnJvbSB0b2tlbml6ZSAocmVjdXJzaXZlbHkpXHJcblx0XHRcdFx0XHQoZXhjZXNzID0gdG9rZW5pemUoIHVucXVvdGVkLCBjb250ZXh0LCB4bWwsIHRydWUgKSkgJiZcclxuXHRcdFx0XHRcdC8vIGFkdmFuY2UgdG8gdGhlIG5leHQgY2xvc2luZyBwYXJlbnRoZXNpc1xyXG5cdFx0XHRcdFx0KGV4Y2VzcyA9IHVucXVvdGVkLmluZGV4T2YoIFwiKVwiLCB1bnF1b3RlZC5sZW5ndGggLSBleGNlc3MgKSAtIHVucXVvdGVkLmxlbmd0aCkgKSB7XHJcblxyXG5cdFx0XHRcdFx0Ly8gZXhjZXNzIGlzIGEgbmVnYXRpdmUgaW5kZXhcclxuXHRcdFx0XHRcdHVucXVvdGVkID0gdW5xdW90ZWQuc2xpY2UoIDAsIGV4Y2VzcyApO1xyXG5cdFx0XHRcdFx0bWF0Y2hbMF0gPSBtYXRjaFswXS5zbGljZSggMCwgZXhjZXNzICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdG1hdGNoWzJdID0gdW5xdW90ZWQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFJldHVybiBvbmx5IGNhcHR1cmVzIG5lZWRlZCBieSB0aGUgcHNldWRvIGZpbHRlciBtZXRob2QgKHR5cGUgYW5kIGFyZ3VtZW50KVxyXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDMgKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHRmaWx0ZXI6IHtcclxuXHRcdFwiSURcIjogYXNzZXJ0R2V0SWROb3ROYW1lID9cclxuXHRcdFx0ZnVuY3Rpb24oIGlkICkge1xyXG5cdFx0XHRcdGlkID0gaWQucmVwbGFjZSggcmJhY2tzbGFzaCwgXCJcIiApO1xyXG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHRcdHJldHVybiBlbGVtLmdldEF0dHJpYnV0ZShcImlkXCIpID09PSBpZDtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9IDpcclxuXHRcdFx0ZnVuY3Rpb24oIGlkICkge1xyXG5cdFx0XHRcdGlkID0gaWQucmVwbGFjZSggcmJhY2tzbGFzaCwgXCJcIiApO1xyXG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHRcdHZhciBub2RlID0gdHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlTm9kZSAhPT0gc3RydW5kZWZpbmVkICYmIGVsZW0uZ2V0QXR0cmlidXRlTm9kZShcImlkXCIpO1xyXG5cdFx0XHRcdFx0cmV0dXJuIG5vZGUgJiYgbm9kZS52YWx1ZSA9PT0gaWQ7XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0fSxcclxuXHJcblx0XHRcIlRBR1wiOiBmdW5jdGlvbiggbm9kZU5hbWUgKSB7XHJcblx0XHRcdGlmICggbm9kZU5hbWUgPT09IFwiKlwiICkge1xyXG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHsgcmV0dXJuIHRydWU7IH07XHJcblx0XHRcdH1cclxuXHRcdFx0bm9kZU5hbWUgPSBub2RlTmFtZS5yZXBsYWNlKCByYmFja3NsYXNoLCBcIlwiICkudG9Mb3dlckNhc2UoKTtcclxuXHJcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHRyZXR1cm4gZWxlbS5ub2RlTmFtZSAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5vZGVOYW1lO1xyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHJcblx0XHRcIkNMQVNTXCI6IGZ1bmN0aW9uKCBjbGFzc05hbWUgKSB7XHJcblx0XHRcdHZhciBwYXR0ZXJuID0gY2xhc3NDYWNoZVsgZXhwYW5kbyBdWyBjbGFzc05hbWUgXTtcclxuXHRcdFx0aWYgKCAhcGF0dGVybiApIHtcclxuXHRcdFx0XHRwYXR0ZXJuID0gY2xhc3NDYWNoZSggY2xhc3NOYW1lLCBuZXcgUmVnRXhwKFwiKF58XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyBjbGFzc05hbWUgKyBcIihcIiArIHdoaXRlc3BhY2UgKyBcInwkKVwiKSApO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHRyZXR1cm4gcGF0dGVybi50ZXN0KCBlbGVtLmNsYXNzTmFtZSB8fCAodHlwZW9mIGVsZW0uZ2V0QXR0cmlidXRlICE9PSBzdHJ1bmRlZmluZWQgJiYgZWxlbS5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKSkgfHwgXCJcIiApO1xyXG5cdFx0XHR9O1xyXG5cdFx0fSxcclxuXHJcblx0XHRcIkFUVFJcIjogZnVuY3Rpb24oIG5hbWUsIG9wZXJhdG9yLCBjaGVjayApIHtcclxuXHRcdFx0aWYgKCAhb3BlcmF0b3IgKSB7XHJcblx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIFNpenpsZS5hdHRyKCBlbGVtLCBuYW1lICkgIT0gbnVsbDtcclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdFx0dmFyIHJlc3VsdCA9IFNpenpsZS5hdHRyKCBlbGVtLCBuYW1lICksXHJcblx0XHRcdFx0XHR2YWx1ZSA9IHJlc3VsdCArIFwiXCI7XHJcblxyXG5cdFx0XHRcdGlmICggcmVzdWx0ID09IG51bGwgKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gb3BlcmF0b3IgPT09IFwiIT1cIjtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdHN3aXRjaCAoIG9wZXJhdG9yICkge1xyXG5cdFx0XHRcdFx0Y2FzZSBcIj1cIjpcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHZhbHVlID09PSBjaGVjaztcclxuXHRcdFx0XHRcdGNhc2UgXCIhPVwiOlxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWUgIT09IGNoZWNrO1xyXG5cdFx0XHRcdFx0Y2FzZSBcIl49XCI6XHJcblx0XHRcdFx0XHRcdHJldHVybiBjaGVjayAmJiB2YWx1ZS5pbmRleE9mKCBjaGVjayApID09PSAwO1xyXG5cdFx0XHRcdFx0Y2FzZSBcIio9XCI6XHJcblx0XHRcdFx0XHRcdHJldHVybiBjaGVjayAmJiB2YWx1ZS5pbmRleE9mKCBjaGVjayApID4gLTE7XHJcblx0XHRcdFx0XHRjYXNlIFwiJD1cIjpcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGNoZWNrICYmIHZhbHVlLnN1YnN0ciggdmFsdWUubGVuZ3RoIC0gY2hlY2subGVuZ3RoICkgPT09IGNoZWNrO1xyXG5cdFx0XHRcdFx0Y2FzZSBcIn49XCI6XHJcblx0XHRcdFx0XHRcdHJldHVybiAoIFwiIFwiICsgdmFsdWUgKyBcIiBcIiApLmluZGV4T2YoIGNoZWNrICkgPiAtMTtcclxuXHRcdFx0XHRcdGNhc2UgXCJ8PVwiOlxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWUgPT09IGNoZWNrIHx8IHZhbHVlLnN1YnN0ciggMCwgY2hlY2subGVuZ3RoICsgMSApID09PSBjaGVjayArIFwiLVwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fTtcclxuXHRcdH0sXHJcblxyXG5cdFx0XCJDSElMRFwiOiBmdW5jdGlvbiggdHlwZSwgYXJndW1lbnQsIGZpcnN0LCBsYXN0ICkge1xyXG5cclxuXHRcdFx0aWYgKCB0eXBlID09PSBcIm50aFwiICkge1xyXG5cdFx0XHRcdHZhciBkb25lTmFtZSA9IGRvbmUrKztcclxuXHJcblx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRcdFx0dmFyIHBhcmVudCwgZGlmZixcclxuXHRcdFx0XHRcdFx0Y291bnQgPSAwLFxyXG5cdFx0XHRcdFx0XHRub2RlID0gZWxlbTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIGZpcnN0ID09PSAxICYmIGxhc3QgPT09IDAgKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcclxuXHJcblx0XHRcdFx0XHRpZiAoIHBhcmVudCAmJiAocGFyZW50WyBleHBhbmRvIF0gIT09IGRvbmVOYW1lIHx8ICFlbGVtLnNpenNldCkgKSB7XHJcblx0XHRcdFx0XHRcdGZvciAoIG5vZGUgPSBwYXJlbnQuZmlyc3RDaGlsZDsgbm9kZTsgbm9kZSA9IG5vZGUubmV4dFNpYmxpbmcgKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCBub2RlLm5vZGVUeXBlID09PSAxICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0bm9kZS5zaXpzZXQgPSArK2NvdW50O1xyXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBub2RlID09PSBlbGVtICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdHBhcmVudFsgZXhwYW5kbyBdID0gZG9uZU5hbWU7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0ZGlmZiA9IGVsZW0uc2l6c2V0IC0gbGFzdDtcclxuXHJcblx0XHRcdFx0XHRpZiAoIGZpcnN0ID09PSAwICkge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gZGlmZiA9PT0gMDtcclxuXHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRyZXR1cm4gKCBkaWZmICUgZmlyc3QgPT09IDAgJiYgZGlmZiAvIGZpcnN0ID49IDAgKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9O1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdFx0dmFyIG5vZGUgPSBlbGVtO1xyXG5cclxuXHRcdFx0XHRzd2l0Y2ggKCB0eXBlICkge1xyXG5cdFx0XHRcdFx0Y2FzZSBcIm9ubHlcIjpcclxuXHRcdFx0XHRcdGNhc2UgXCJmaXJzdFwiOlxyXG5cdFx0XHRcdFx0XHR3aGlsZSAoIChub2RlID0gbm9kZS5wcmV2aW91c1NpYmxpbmcpICkge1xyXG5cdFx0XHRcdFx0XHRcdGlmICggbm9kZS5ub2RlVHlwZSA9PT0gMSApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmICggdHlwZSA9PT0gXCJmaXJzdFwiICkge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRub2RlID0gZWxlbTtcclxuXHJcblx0XHRcdFx0XHRcdC8qIGZhbGxzIHRocm91Z2ggKi9cclxuXHRcdFx0XHRcdGNhc2UgXCJsYXN0XCI6XHJcblx0XHRcdFx0XHRcdHdoaWxlICggKG5vZGUgPSBub2RlLm5leHRTaWJsaW5nKSApIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIG5vZGUubm9kZVR5cGUgPT09IDEgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gZmFsc2U7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH07XHJcblx0XHR9LFxyXG5cclxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBwc2V1ZG8sIGFyZ3VtZW50LCBjb250ZXh0LCB4bWwgKSB7XHJcblx0XHRcdC8vIHBzZXVkby1jbGFzcyBuYW1lcyBhcmUgY2FzZS1pbnNlbnNpdGl2ZVxyXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI3BzZXVkby1jbGFzc2VzXHJcblx0XHRcdC8vIFByaW9yaXRpemUgYnkgY2FzZSBzZW5zaXRpdml0eSBpbiBjYXNlIGN1c3RvbSBwc2V1ZG9zIGFyZSBhZGRlZCB3aXRoIHVwcGVyY2FzZSBsZXR0ZXJzXHJcblx0XHRcdHZhciBhcmdzLFxyXG5cdFx0XHRcdGZuID0gRXhwci5wc2V1ZG9zWyBwc2V1ZG8gXSB8fCBFeHByLnBzZXVkb3NbIHBzZXVkby50b0xvd2VyQ2FzZSgpIF07XHJcblxyXG5cdFx0XHRpZiAoICFmbiApIHtcclxuXHRcdFx0XHRTaXp6bGUuZXJyb3IoIFwidW5zdXBwb3J0ZWQgcHNldWRvOiBcIiArIHBzZXVkbyApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBUaGUgdXNlciBtYXkgdXNlIGNyZWF0ZVBzZXVkbyB0byBpbmRpY2F0ZSB0aGF0XHJcblx0XHRcdC8vIGFyZ3VtZW50cyBhcmUgbmVlZGVkIHRvIGNyZWF0ZSB0aGUgZmlsdGVyIGZ1bmN0aW9uXHJcblx0XHRcdC8vIGp1c3QgYXMgU2l6emxlIGRvZXNcclxuXHRcdFx0aWYgKCAhZm5bIGV4cGFuZG8gXSApIHtcclxuXHRcdFx0XHRpZiAoIGZuLmxlbmd0aCA+IDEgKSB7XHJcblx0XHRcdFx0XHRhcmdzID0gWyBwc2V1ZG8sIHBzZXVkbywgXCJcIiwgYXJndW1lbnQgXTtcclxuXHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGZuKCBlbGVtLCAwLCBhcmdzICk7XHJcblx0XHRcdFx0XHR9O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gZm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiBmbiggYXJndW1lbnQsIGNvbnRleHQsIHhtbCApO1xyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdHBzZXVkb3M6IHtcclxuXHRcdFwibm90XCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQsIHhtbCApIHtcclxuXHRcdFx0Ly8gVHJpbSB0aGUgc2VsZWN0b3IgcGFzc2VkIHRvIGNvbXBpbGVcclxuXHRcdFx0Ly8gdG8gYXZvaWQgdHJlYXRpbmcgbGVhZGluZyBhbmQgdHJhaWxpbmdcclxuXHRcdFx0Ly8gc3BhY2VzIGFzIGNvbWJpbmF0b3JzXHJcblx0XHRcdHZhciBtYXRjaGVyID0gY29tcGlsZSggc2VsZWN0b3IucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApLCBjb250ZXh0LCB4bWwgKTtcclxuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRcdHJldHVybiAhbWF0Y2hlciggZWxlbSApO1xyXG5cdFx0XHR9O1xyXG5cdFx0fSksXHJcblxyXG5cdFx0XCJlbmFibGVkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZmFsc2U7XHJcblx0XHR9LFxyXG5cclxuXHRcdFwiZGlzYWJsZWRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdHJldHVybiBlbGVtLmRpc2FibGVkID09PSB0cnVlO1xyXG5cdFx0fSxcclxuXHJcblx0XHRcImNoZWNrZWRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdC8vIEluIENTUzMsIDpjaGVja2VkIHNob3VsZCByZXR1cm4gYm90aCBjaGVja2VkIGFuZCBzZWxlY3RlZCBlbGVtZW50c1xyXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDExL1JFQy1jc3MzLXNlbGVjdG9ycy0yMDExMDkyOS8jY2hlY2tlZFxyXG5cdFx0XHR2YXIgbm9kZU5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XHJcblx0XHRcdHJldHVybiAobm9kZU5hbWUgPT09IFwiaW5wdXRcIiAmJiAhIWVsZW0uY2hlY2tlZCkgfHwgKG5vZGVOYW1lID09PSBcIm9wdGlvblwiICYmICEhZWxlbS5zZWxlY3RlZCk7XHJcblx0XHR9LFxyXG5cclxuXHRcdFwic2VsZWN0ZWRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdC8vIEFjY2Vzc2luZyB0aGlzIHByb3BlcnR5IG1ha2VzIHNlbGVjdGVkLWJ5LWRlZmF1bHRcclxuXHRcdFx0Ly8gb3B0aW9ucyBpbiBTYWZhcmkgd29yayBwcm9wZXJseVxyXG5cdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0XHRlbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7XHJcblx0XHR9LFxyXG5cclxuXHRcdFwicGFyZW50XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRyZXR1cm4gIUV4cHIucHNldWRvc1tcImVtcHR5XCJdKCBlbGVtICk7XHJcblx0XHR9LFxyXG5cclxuXHRcdFwiZW1wdHlcIjogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jZW1wdHktcHNldWRvXHJcblx0XHRcdC8vIDplbXB0eSBpcyBvbmx5IGFmZmVjdGVkIGJ5IGVsZW1lbnQgbm9kZXMgYW5kIGNvbnRlbnQgbm9kZXMoaW5jbHVkaW5nIHRleHQoMyksIGNkYXRhKDQpKSxcclxuXHRcdFx0Ly8gICBub3QgY29tbWVudCwgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbnMsIG9yIG90aGVyc1xyXG5cdFx0XHQvLyBUaGFua3MgdG8gRGllZ28gUGVyaW5pIGZvciB0aGUgbm9kZU5hbWUgc2hvcnRjdXRcclxuXHRcdFx0Ly8gICBHcmVhdGVyIHRoYW4gXCJAXCIgbWVhbnMgYWxwaGEgY2hhcmFjdGVycyAoc3BlY2lmaWNhbGx5IG5vdCBzdGFydGluZyB3aXRoIFwiI1wiIG9yIFwiP1wiKVxyXG5cdFx0XHR2YXIgbm9kZVR5cGU7XHJcblx0XHRcdGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7XHJcblx0XHRcdHdoaWxlICggZWxlbSApIHtcclxuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZU5hbWUgPiBcIkBcIiB8fCAobm9kZVR5cGUgPSBlbGVtLm5vZGVUeXBlKSA9PT0gMyB8fCBub2RlVHlwZSA9PT0gNCApIHtcclxuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0ZWxlbSA9IGVsZW0ubmV4dFNpYmxpbmc7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHR9LFxyXG5cclxuXHRcdFwiY29udGFpbnNcIjogbWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCB0ZXh0ICkge1xyXG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdFx0cmV0dXJuICggZWxlbS50ZXh0Q29udGVudCB8fCBlbGVtLmlubmVyVGV4dCB8fCBnZXRUZXh0KCBlbGVtICkgKS5pbmRleE9mKCB0ZXh0ICkgPiAtMTtcclxuXHRcdFx0fTtcclxuXHRcdH0pLFxyXG5cclxuXHRcdFwiaGFzXCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VsZWN0b3IgKSB7XHJcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHRyZXR1cm4gU2l6emxlKCBzZWxlY3RvciwgZWxlbSApLmxlbmd0aCA+IDA7XHJcblx0XHRcdH07XHJcblx0XHR9KSxcclxuXHJcblx0XHRcImhlYWRlclwiOiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0cmV0dXJuIHJoZWFkZXIudGVzdCggZWxlbS5ub2RlTmFtZSApO1xyXG5cdFx0fSxcclxuXHJcblx0XHRcInRleHRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdHZhciB0eXBlLCBhdHRyO1xyXG5cdFx0XHQvLyBJRTYgYW5kIDcgd2lsbCBtYXAgZWxlbS50eXBlIHRvICd0ZXh0JyBmb3IgbmV3IEhUTUw1IHR5cGVzIChzZWFyY2gsIGV0YylcclxuXHRcdFx0Ly8gdXNlIGdldEF0dHJpYnV0ZSBpbnN0ZWFkIHRvIHRlc3QgdGhpcyBjYXNlXHJcblx0XHRcdHJldHVybiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiAmJlxyXG5cdFx0XHRcdCh0eXBlID0gZWxlbS50eXBlKSA9PT0gXCJ0ZXh0XCIgJiZcclxuXHRcdFx0XHQoIChhdHRyID0gZWxlbS5nZXRBdHRyaWJ1dGUoXCJ0eXBlXCIpKSA9PSBudWxsIHx8IGF0dHIudG9Mb3dlckNhc2UoKSA9PT0gdHlwZSApO1xyXG5cdFx0fSxcclxuXHJcblx0XHQvLyBJbnB1dCB0eXBlc1xyXG5cdFx0XCJyYWRpb1wiOiBjcmVhdGVJbnB1dFBzZXVkbyhcInJhZGlvXCIpLFxyXG5cdFx0XCJjaGVja2JveFwiOiBjcmVhdGVJbnB1dFBzZXVkbyhcImNoZWNrYm94XCIpLFxyXG5cdFx0XCJmaWxlXCI6IGNyZWF0ZUlucHV0UHNldWRvKFwiZmlsZVwiKSxcclxuXHRcdFwicGFzc3dvcmRcIjogY3JlYXRlSW5wdXRQc2V1ZG8oXCJwYXNzd29yZFwiKSxcclxuXHRcdFwiaW1hZ2VcIjogY3JlYXRlSW5wdXRQc2V1ZG8oXCJpbWFnZVwiKSxcclxuXHJcblx0XHRcInN1Ym1pdFwiOiBjcmVhdGVCdXR0b25Qc2V1ZG8oXCJzdWJtaXRcIiksXHJcblx0XHRcInJlc2V0XCI6IGNyZWF0ZUJ1dHRvblBzZXVkbyhcInJlc2V0XCIpLFxyXG5cclxuXHRcdFwiYnV0dG9uXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcclxuXHRcdFx0cmV0dXJuIG5hbWUgPT09IFwiaW5wdXRcIiAmJiBlbGVtLnR5cGUgPT09IFwiYnV0dG9uXCIgfHwgbmFtZSA9PT0gXCJidXR0b25cIjtcclxuXHRcdH0sXHJcblxyXG5cdFx0XCJpbnB1dFwiOiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0cmV0dXJuIHJpbnB1dHMudGVzdCggZWxlbS5ub2RlTmFtZSApO1xyXG5cdFx0fSxcclxuXHJcblx0XHRcImZvY3VzXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHR2YXIgZG9jID0gZWxlbS5vd25lckRvY3VtZW50O1xyXG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gZG9jLmFjdGl2ZUVsZW1lbnQgJiYgKCFkb2MuaGFzRm9jdXMgfHwgZG9jLmhhc0ZvY3VzKCkpICYmICEhKGVsZW0udHlwZSB8fCBlbGVtLmhyZWYpO1xyXG5cdFx0fSxcclxuXHJcblx0XHRcImFjdGl2ZVwiOiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGVsZW0ub3duZXJEb2N1bWVudC5hY3RpdmVFbGVtZW50O1xyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdHNldEZpbHRlcnM6IHtcclxuXHRcdFwiZmlyc3RcIjogZnVuY3Rpb24oIGVsZW1lbnRzLCBhcmd1bWVudCwgbm90ICkge1xyXG5cdFx0XHRyZXR1cm4gbm90ID8gZWxlbWVudHMuc2xpY2UoIDEgKSA6IFsgZWxlbWVudHNbMF0gXTtcclxuXHRcdH0sXHJcblxyXG5cdFx0XCJsYXN0XCI6IGZ1bmN0aW9uKCBlbGVtZW50cywgYXJndW1lbnQsIG5vdCApIHtcclxuXHRcdFx0dmFyIGVsZW0gPSBlbGVtZW50cy5wb3AoKTtcclxuXHRcdFx0cmV0dXJuIG5vdCA/IGVsZW1lbnRzIDogWyBlbGVtIF07XHJcblx0XHR9LFxyXG5cclxuXHRcdFwiZXZlblwiOiBmdW5jdGlvbiggZWxlbWVudHMsIGFyZ3VtZW50LCBub3QgKSB7XHJcblx0XHRcdHZhciByZXN1bHRzID0gW10sXHJcblx0XHRcdFx0aSA9IG5vdCA/IDEgOiAwLFxyXG5cdFx0XHRcdGxlbiA9IGVsZW1lbnRzLmxlbmd0aDtcclxuXHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpID0gaSArIDIgKSB7XHJcblx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtZW50c1tpXSApO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiByZXN1bHRzO1xyXG5cdFx0fSxcclxuXHJcblx0XHRcIm9kZFwiOiBmdW5jdGlvbiggZWxlbWVudHMsIGFyZ3VtZW50LCBub3QgKSB7XHJcblx0XHRcdHZhciByZXN1bHRzID0gW10sXHJcblx0XHRcdFx0aSA9IG5vdCA/IDAgOiAxLFxyXG5cdFx0XHRcdGxlbiA9IGVsZW1lbnRzLmxlbmd0aDtcclxuXHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpID0gaSArIDIgKSB7XHJcblx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtZW50c1tpXSApO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiByZXN1bHRzO1xyXG5cdFx0fSxcclxuXHJcblx0XHRcImx0XCI6IGZ1bmN0aW9uKCBlbGVtZW50cywgYXJndW1lbnQsIG5vdCApIHtcclxuXHRcdFx0cmV0dXJuIG5vdCA/IGVsZW1lbnRzLnNsaWNlKCArYXJndW1lbnQgKSA6IGVsZW1lbnRzLnNsaWNlKCAwLCArYXJndW1lbnQgKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0XCJndFwiOiBmdW5jdGlvbiggZWxlbWVudHMsIGFyZ3VtZW50LCBub3QgKSB7XHJcblx0XHRcdHJldHVybiBub3QgPyBlbGVtZW50cy5zbGljZSggMCwgK2FyZ3VtZW50ICsgMSApIDogZWxlbWVudHMuc2xpY2UoICthcmd1bWVudCArIDEgKTtcclxuXHRcdH0sXHJcblxyXG5cdFx0XCJlcVwiOiBmdW5jdGlvbiggZWxlbWVudHMsIGFyZ3VtZW50LCBub3QgKSB7XHJcblx0XHRcdHZhciBlbGVtID0gZWxlbWVudHMuc3BsaWNlKCArYXJndW1lbnQsIDEgKTtcclxuXHRcdFx0cmV0dXJuIG5vdCA/IGVsZW1lbnRzIDogZWxlbTtcclxuXHRcdH1cclxuXHR9XHJcbn07XHJcblxyXG5mdW5jdGlvbiBzaWJsaW5nQ2hlY2soIGEsIGIsIHJldCApIHtcclxuXHRpZiAoIGEgPT09IGIgKSB7XHJcblx0XHRyZXR1cm4gcmV0O1xyXG5cdH1cclxuXHJcblx0dmFyIGN1ciA9IGEubmV4dFNpYmxpbmc7XHJcblxyXG5cdHdoaWxlICggY3VyICkge1xyXG5cdFx0aWYgKCBjdXIgPT09IGIgKSB7XHJcblx0XHRcdHJldHVybiAtMTtcclxuXHRcdH1cclxuXHJcblx0XHRjdXIgPSBjdXIubmV4dFNpYmxpbmc7XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gMTtcclxufVxyXG5cclxuc29ydE9yZGVyID0gZG9jRWxlbS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiA/XHJcblx0ZnVuY3Rpb24oIGEsIGIgKSB7XHJcblx0XHRpZiAoIGEgPT09IGIgKSB7XHJcblx0XHRcdGhhc0R1cGxpY2F0ZSA9IHRydWU7XHJcblx0XHRcdHJldHVybiAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiAoICFhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHx8ICFiLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uID9cclxuXHRcdFx0YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiA6XHJcblx0XHRcdGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikgJiA0XHJcblx0XHQpID8gLTEgOiAxO1xyXG5cdH0gOlxyXG5cdGZ1bmN0aW9uKCBhLCBiICkge1xyXG5cdFx0Ly8gVGhlIG5vZGVzIGFyZSBpZGVudGljYWwsIHdlIGNhbiBleGl0IGVhcmx5XHJcblx0XHRpZiAoIGEgPT09IGIgKSB7XHJcblx0XHRcdGhhc0R1cGxpY2F0ZSA9IHRydWU7XHJcblx0XHRcdHJldHVybiAwO1xyXG5cclxuXHRcdC8vIEZhbGxiYWNrIHRvIHVzaW5nIHNvdXJjZUluZGV4IChpbiBJRSkgaWYgaXQncyBhdmFpbGFibGUgb24gYm90aCBub2Rlc1xyXG5cdFx0fSBlbHNlIGlmICggYS5zb3VyY2VJbmRleCAmJiBiLnNvdXJjZUluZGV4ICkge1xyXG5cdFx0XHRyZXR1cm4gYS5zb3VyY2VJbmRleCAtIGIuc291cmNlSW5kZXg7XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIGFsLCBibCxcclxuXHRcdFx0YXAgPSBbXSxcclxuXHRcdFx0YnAgPSBbXSxcclxuXHRcdFx0YXVwID0gYS5wYXJlbnROb2RlLFxyXG5cdFx0XHRidXAgPSBiLnBhcmVudE5vZGUsXHJcblx0XHRcdGN1ciA9IGF1cDtcclxuXHJcblx0XHQvLyBJZiB0aGUgbm9kZXMgYXJlIHNpYmxpbmdzIChvciBpZGVudGljYWwpIHdlIGNhbiBkbyBhIHF1aWNrIGNoZWNrXHJcblx0XHRpZiAoIGF1cCA9PT0gYnVwICkge1xyXG5cdFx0XHRyZXR1cm4gc2libGluZ0NoZWNrKCBhLCBiICk7XHJcblxyXG5cdFx0Ly8gSWYgbm8gcGFyZW50cyB3ZXJlIGZvdW5kIHRoZW4gdGhlIG5vZGVzIGFyZSBkaXNjb25uZWN0ZWRcclxuXHRcdH0gZWxzZSBpZiAoICFhdXAgKSB7XHJcblx0XHRcdHJldHVybiAtMTtcclxuXHJcblx0XHR9IGVsc2UgaWYgKCAhYnVwICkge1xyXG5cdFx0XHRyZXR1cm4gMTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBPdGhlcndpc2UgdGhleSdyZSBzb21ld2hlcmUgZWxzZSBpbiB0aGUgdHJlZSBzbyB3ZSBuZWVkXHJcblx0XHQvLyB0byBidWlsZCB1cCBhIGZ1bGwgbGlzdCBvZiB0aGUgcGFyZW50Tm9kZXMgZm9yIGNvbXBhcmlzb25cclxuXHRcdHdoaWxlICggY3VyICkge1xyXG5cdFx0XHRhcC51bnNoaWZ0KCBjdXIgKTtcclxuXHRcdFx0Y3VyID0gY3VyLnBhcmVudE5vZGU7XHJcblx0XHR9XHJcblxyXG5cdFx0Y3VyID0gYnVwO1xyXG5cclxuXHRcdHdoaWxlICggY3VyICkge1xyXG5cdFx0XHRicC51bnNoaWZ0KCBjdXIgKTtcclxuXHRcdFx0Y3VyID0gY3VyLnBhcmVudE5vZGU7XHJcblx0XHR9XHJcblxyXG5cdFx0YWwgPSBhcC5sZW5ndGg7XHJcblx0XHRibCA9IGJwLmxlbmd0aDtcclxuXHJcblx0XHQvLyBTdGFydCB3YWxraW5nIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeVxyXG5cdFx0Zm9yICggdmFyIGkgPSAwOyBpIDwgYWwgJiYgaSA8IGJsOyBpKysgKSB7XHJcblx0XHRcdGlmICggYXBbaV0gIT09IGJwW2ldICkge1xyXG5cdFx0XHRcdHJldHVybiBzaWJsaW5nQ2hlY2soIGFwW2ldLCBicFtpXSApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gV2UgZW5kZWQgc29tZXBsYWNlIHVwIHRoZSB0cmVlIHNvIGRvIGEgc2libGluZyBjaGVja1xyXG5cdFx0cmV0dXJuIGkgPT09IGFsID9cclxuXHRcdFx0c2libGluZ0NoZWNrKCBhLCBicFtpXSwgLTEgKSA6XHJcblx0XHRcdHNpYmxpbmdDaGVjayggYXBbaV0sIGIsIDEgKTtcclxuXHR9O1xyXG5cclxuLy8gQWx3YXlzIGFzc3VtZSB0aGUgcHJlc2VuY2Ugb2YgZHVwbGljYXRlcyBpZiBzb3J0IGRvZXNuJ3RcclxuLy8gcGFzcyB0aGVtIHRvIG91ciBjb21wYXJpc29uIGZ1bmN0aW9uIChhcyBpbiBHb29nbGUgQ2hyb21lKS5cclxuWzAsIDBdLnNvcnQoIHNvcnRPcmRlciApO1xyXG5iYXNlSGFzRHVwbGljYXRlID0gIWhhc0R1cGxpY2F0ZTtcclxuXHJcbi8vIERvY3VtZW50IHNvcnRpbmcgYW5kIHJlbW92aW5nIGR1cGxpY2F0ZXNcclxuU2l6emxlLnVuaXF1ZVNvcnQgPSBmdW5jdGlvbiggcmVzdWx0cyApIHtcclxuXHR2YXIgZWxlbSxcclxuXHRcdGkgPSAxO1xyXG5cclxuXHRoYXNEdXBsaWNhdGUgPSBiYXNlSGFzRHVwbGljYXRlO1xyXG5cdHJlc3VsdHMuc29ydCggc29ydE9yZGVyICk7XHJcblxyXG5cdGlmICggaGFzRHVwbGljYXRlICkge1xyXG5cdFx0Zm9yICggOyAoZWxlbSA9IHJlc3VsdHNbaV0pOyBpKysgKSB7XHJcblx0XHRcdGlmICggZWxlbSA9PT0gcmVzdWx0c1sgaSAtIDEgXSApIHtcclxuXHRcdFx0XHRyZXN1bHRzLnNwbGljZSggaS0tLCAxICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiByZXN1bHRzO1xyXG59O1xyXG5cclxuU2l6emxlLmVycm9yID0gZnVuY3Rpb24oIG1zZyApIHtcclxuXHR0aHJvdyBuZXcgRXJyb3IoIFwiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogXCIgKyBtc2cgKTtcclxufTtcclxuXHJcbmZ1bmN0aW9uIHRva2VuaXplKCBzZWxlY3RvciwgY29udGV4dCwgeG1sLCBwYXJzZU9ubHkgKSB7XHJcblx0dmFyIG1hdGNoZWQsIG1hdGNoLCB0b2tlbnMsIHR5cGUsXHJcblx0XHRzb0ZhciwgZ3JvdXBzLCBncm91cCwgaSxcclxuXHRcdHByZUZpbHRlcnMsIGZpbHRlcnMsXHJcblx0XHRjaGVja0NvbnRleHQgPSAheG1sICYmIGNvbnRleHQgIT09IGRvY3VtZW50LFxyXG5cdFx0Ly8gVG9rZW4gY2FjaGUgc2hvdWxkIG1haW50YWluIHNwYWNlc1xyXG5cdFx0a2V5ID0gKCBjaGVja0NvbnRleHQgPyBcIjxzPlwiIDogXCJcIiApICsgc2VsZWN0b3IucmVwbGFjZSggcnRyaW0sIFwiJDE8cz5cIiApLFxyXG5cdFx0Y2FjaGVkID0gdG9rZW5DYWNoZVsgZXhwYW5kbyBdWyBrZXkgXTtcclxuXHJcblx0aWYgKCBjYWNoZWQgKSB7XHJcblx0XHRyZXR1cm4gcGFyc2VPbmx5ID8gMCA6IHNsaWNlLmNhbGwoIGNhY2hlZCwgMCApO1xyXG5cdH1cclxuXHJcblx0c29GYXIgPSBzZWxlY3RvcjtcclxuXHRncm91cHMgPSBbXTtcclxuXHRpID0gMDtcclxuXHRwcmVGaWx0ZXJzID0gRXhwci5wcmVGaWx0ZXI7XHJcblx0ZmlsdGVycyA9IEV4cHIuZmlsdGVyO1xyXG5cclxuXHR3aGlsZSAoIHNvRmFyICkge1xyXG5cclxuXHRcdC8vIENvbW1hIGFuZCBmaXJzdCBydW5cclxuXHRcdGlmICggIW1hdGNoZWQgfHwgKG1hdGNoID0gcmNvbW1hLmV4ZWMoIHNvRmFyICkpICkge1xyXG5cdFx0XHRpZiAoIG1hdGNoICkge1xyXG5cdFx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoWzBdLmxlbmd0aCApO1xyXG5cdFx0XHRcdHRva2Vucy5zZWxlY3RvciA9IGdyb3VwO1xyXG5cdFx0XHR9XHJcblx0XHRcdGdyb3Vwcy5wdXNoKCB0b2tlbnMgPSBbXSApO1xyXG5cdFx0XHRncm91cCA9IFwiXCI7XHJcblxyXG5cdFx0XHQvLyBOZWVkIHRvIG1ha2Ugc3VyZSB3ZSdyZSB3aXRoaW4gYSBuYXJyb3dlciBjb250ZXh0IGlmIG5lY2Vzc2FyeVxyXG5cdFx0XHQvLyBBZGRpbmcgYSBkZXNjZW5kYW50IGNvbWJpbmF0b3Igd2lsbCBnZW5lcmF0ZSB3aGF0IGlzIG5lZWRlZFxyXG5cdFx0XHRpZiAoIGNoZWNrQ29udGV4dCApIHtcclxuXHRcdFx0XHRzb0ZhciA9IFwiIFwiICsgc29GYXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRtYXRjaGVkID0gZmFsc2U7XHJcblxyXG5cdFx0Ly8gQ29tYmluYXRvcnNcclxuXHRcdGlmICggKG1hdGNoID0gcmNvbWJpbmF0b3JzLmV4ZWMoIHNvRmFyICkpICkge1xyXG5cdFx0XHRncm91cCArPSBtYXRjaFswXTtcclxuXHRcdFx0c29GYXIgPSBzb0Zhci5zbGljZSggbWF0Y2hbMF0ubGVuZ3RoICk7XHJcblxyXG5cdFx0XHQvLyBDYXN0IGRlc2NlbmRhbnQgY29tYmluYXRvcnMgdG8gc3BhY2VcclxuXHRcdFx0bWF0Y2hlZCA9IHRva2Vucy5wdXNoKHtcclxuXHRcdFx0XHRwYXJ0OiBtYXRjaC5wb3AoKS5yZXBsYWNlKCBydHJpbSwgXCIgXCIgKSxcclxuXHRcdFx0XHRzdHJpbmc6IG1hdGNoWzBdLFxyXG5cdFx0XHRcdGNhcHR1cmVzOiBtYXRjaFxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGaWx0ZXJzXHJcblx0XHRmb3IgKCB0eXBlIGluIGZpbHRlcnMgKSB7XHJcblx0XHRcdGlmICggKG1hdGNoID0gbWF0Y2hFeHByWyB0eXBlIF0uZXhlYyggc29GYXIgKSkgJiYgKCFwcmVGaWx0ZXJzWyB0eXBlIF0gfHxcclxuXHRcdFx0XHQoIG1hdGNoID0gcHJlRmlsdGVyc1sgdHlwZSBdKG1hdGNoLCBjb250ZXh0LCB4bWwpICkpICkge1xyXG5cclxuXHRcdFx0XHRncm91cCArPSBtYXRjaFswXTtcclxuXHRcdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaFswXS5sZW5ndGggKTtcclxuXHRcdFx0XHRtYXRjaGVkID0gdG9rZW5zLnB1c2goe1xyXG5cdFx0XHRcdFx0cGFydDogdHlwZSxcclxuXHRcdFx0XHRcdHN0cmluZzogbWF0Y2guc2hpZnQoKSxcclxuXHRcdFx0XHRcdGNhcHR1cmVzOiBtYXRjaFxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCAhbWF0Y2hlZCApIHtcclxuXHRcdFx0YnJlYWs7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBBdHRhY2ggdGhlIGZ1bGwgZ3JvdXAgYXMgYSBzZWxlY3RvclxyXG5cdGlmICggZ3JvdXAgKSB7XHJcblx0XHR0b2tlbnMuc2VsZWN0b3IgPSBncm91cDtcclxuXHR9XHJcblxyXG5cdC8vIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBpbnZhbGlkIGV4Y2Vzc1xyXG5cdC8vIGlmIHdlJ3JlIGp1c3QgcGFyc2luZ1xyXG5cdC8vIE90aGVyd2lzZSwgdGhyb3cgYW4gZXJyb3Igb3IgcmV0dXJuIHRva2Vuc1xyXG5cdHJldHVybiBwYXJzZU9ubHkgP1xyXG5cdFx0c29GYXIubGVuZ3RoIDpcclxuXHRcdHNvRmFyID9cclxuXHRcdFx0U2l6emxlLmVycm9yKCBzZWxlY3RvciApIDpcclxuXHRcdFx0Ly8gQ2FjaGUgdGhlIHRva2Vuc1xyXG5cdFx0XHRzbGljZS5jYWxsKCB0b2tlbkNhY2hlKGtleSwgZ3JvdXBzKSwgMCApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBhZGRDb21iaW5hdG9yKCBtYXRjaGVyLCBjb21iaW5hdG9yLCBjb250ZXh0LCB4bWwgKSB7XHJcblx0dmFyIGRpciA9IGNvbWJpbmF0b3IuZGlyLFxyXG5cdFx0ZG9uZU5hbWUgPSBkb25lKys7XHJcblxyXG5cdGlmICggIW1hdGNoZXIgKSB7XHJcblx0XHQvLyBJZiB0aGVyZSBpcyBubyBtYXRjaGVyIHRvIGNoZWNrLCBjaGVjayBhZ2FpbnN0IHRoZSBjb250ZXh0XHJcblx0XHRtYXRjaGVyID0gZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdHJldHVybiBlbGVtID09PSBjb250ZXh0O1xyXG5cdFx0fTtcclxuXHR9XHJcblx0cmV0dXJuIGNvbWJpbmF0b3IuZmlyc3QgP1xyXG5cdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdHdoaWxlICggKGVsZW0gPSBlbGVtWyBkaXIgXSkgKSB7XHJcblx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIG1hdGNoZXIoIGVsZW0gKSAmJiBlbGVtO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fSA6XHJcblx0XHR4bWwgP1xyXG5cdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHR3aGlsZSAoIChlbGVtID0gZWxlbVsgZGlyIF0pICkge1xyXG5cdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xyXG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZXIoIGVsZW0gKSApIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZWxlbTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSA6XHJcblx0XHRcdGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRcdHZhciBjYWNoZSxcclxuXHRcdFx0XHRcdGRpcmtleSA9IGRvbmVOYW1lICsgXCIuXCIgKyBkaXJydW5zLFxyXG5cdFx0XHRcdFx0Y2FjaGVka2V5ID0gZGlya2V5ICsgXCIuXCIgKyBjYWNoZWRydW5zO1xyXG5cdFx0XHRcdHdoaWxlICggKGVsZW0gPSBlbGVtWyBkaXIgXSkgKSB7XHJcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XHJcblx0XHRcdFx0XHRcdGlmICggKGNhY2hlID0gZWxlbVsgZXhwYW5kbyBdKSA9PT0gY2FjaGVka2V5ICkge1xyXG5cdFx0XHRcdFx0XHRcdHJldHVybiBlbGVtLnNpenNldDtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIGlmICggdHlwZW9mIGNhY2hlID09PSBcInN0cmluZ1wiICYmIGNhY2hlLmluZGV4T2YoZGlya2V5KSA9PT0gMCApIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIGVsZW0uc2l6c2V0ICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIGVsZW07XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdGVsZW1bIGV4cGFuZG8gXSA9IGNhY2hlZGtleTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIG1hdGNoZXIoIGVsZW0gKSApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGVsZW0uc2l6c2V0ID0gdHJ1ZTtcclxuXHRcdFx0XHRcdFx0XHRcdHJldHVybiBlbGVtO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRlbGVtLnNpenNldCA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9O1xyXG59XHJcblxyXG5mdW5jdGlvbiBhZGRNYXRjaGVyKCBoaWdoZXIsIGRlZXBlciApIHtcclxuXHRyZXR1cm4gaGlnaGVyID9cclxuXHRcdGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHR2YXIgcmVzdWx0ID0gZGVlcGVyKCBlbGVtICk7XHJcblx0XHRcdHJldHVybiByZXN1bHQgJiYgaGlnaGVyKCByZXN1bHQgPT09IHRydWUgPyBlbGVtIDogcmVzdWx0ICk7XHJcblx0XHR9IDpcclxuXHRcdGRlZXBlcjtcclxufVxyXG5cclxuLy8gW1wiVEFHXCIsIFwiPlwiLCBcIklEXCIsIFwiIFwiLCBcIkNMQVNTXCJdXHJcbmZ1bmN0aW9uIG1hdGNoZXJGcm9tVG9rZW5zKCB0b2tlbnMsIGNvbnRleHQsIHhtbCApIHtcclxuXHR2YXIgdG9rZW4sIG1hdGNoZXIsXHJcblx0XHRpID0gMDtcclxuXHJcblx0Zm9yICggOyAodG9rZW4gPSB0b2tlbnNbaV0pOyBpKysgKSB7XHJcblx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHRva2VuLnBhcnQgXSApIHtcclxuXHRcdFx0bWF0Y2hlciA9IGFkZENvbWJpbmF0b3IoIG1hdGNoZXIsIEV4cHIucmVsYXRpdmVbIHRva2VuLnBhcnQgXSwgY29udGV4dCwgeG1sICk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRtYXRjaGVyID0gYWRkTWF0Y2hlciggbWF0Y2hlciwgRXhwci5maWx0ZXJbIHRva2VuLnBhcnQgXS5hcHBseShudWxsLCB0b2tlbi5jYXB0dXJlcy5jb25jYXQoIGNvbnRleHQsIHhtbCApKSApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIG1hdGNoZXI7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggbWF0Y2hlcnMgKSB7XHJcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0dmFyIG1hdGNoZXIsXHJcblx0XHRcdGogPSAwO1xyXG5cdFx0Zm9yICggOyAobWF0Y2hlciA9IG1hdGNoZXJzW2pdKTsgaisrICkge1xyXG5cdFx0XHRpZiAoIG1hdGNoZXIoZWxlbSkgKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRydWU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdHJldHVybiBmYWxzZTtcclxuXHR9O1xyXG59XHJcblxyXG5jb21waWxlID0gU2l6emxlLmNvbXBpbGUgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQsIHhtbCApIHtcclxuXHR2YXIgZ3JvdXAsIGksIGxlbixcclxuXHRcdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGVbIGV4cGFuZG8gXVsgc2VsZWN0b3IgXTtcclxuXHJcblx0Ly8gUmV0dXJuIGEgY2FjaGVkIGdyb3VwIGZ1bmN0aW9uIGlmIGFscmVhZHkgZ2VuZXJhdGVkIChjb250ZXh0IGRlcGVuZGVudClcclxuXHRpZiAoIGNhY2hlZCAmJiBjYWNoZWQuY29udGV4dCA9PT0gY29udGV4dCApIHtcclxuXHRcdHJldHVybiBjYWNoZWQ7XHJcblx0fVxyXG5cclxuXHQvLyBHZW5lcmF0ZSBhIGZ1bmN0aW9uIG9mIHJlY3Vyc2l2ZSBmdW5jdGlvbnMgdGhhdCBjYW4gYmUgdXNlZCB0byBjaGVjayBlYWNoIGVsZW1lbnRcclxuXHRncm91cCA9IHRva2VuaXplKCBzZWxlY3RvciwgY29udGV4dCwgeG1sICk7XHJcblx0Zm9yICggaSA9IDAsIGxlbiA9IGdyb3VwLmxlbmd0aDsgaSA8IGxlbjsgaSsrICkge1xyXG5cdFx0Z3JvdXBbaV0gPSBtYXRjaGVyRnJvbVRva2Vucyhncm91cFtpXSwgY29udGV4dCwgeG1sKTtcclxuXHR9XHJcblxyXG5cdC8vIENhY2hlIHRoZSBjb21waWxlZCBmdW5jdGlvblxyXG5cdGNhY2hlZCA9IGNvbXBpbGVyQ2FjaGUoIHNlbGVjdG9yLCBtYXRjaGVyRnJvbUdyb3VwTWF0Y2hlcnMoZ3JvdXApICk7XHJcblx0Y2FjaGVkLmNvbnRleHQgPSBjb250ZXh0O1xyXG5cdGNhY2hlZC5ydW5zID0gY2FjaGVkLmRpcnJ1bnMgPSAwO1xyXG5cdHJldHVybiBjYWNoZWQ7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBtdWx0aXBsZUNvbnRleHRzKCBzZWxlY3RvciwgY29udGV4dHMsIHJlc3VsdHMsIHNlZWQgKSB7XHJcblx0dmFyIGkgPSAwLFxyXG5cdFx0bGVuID0gY29udGV4dHMubGVuZ3RoO1xyXG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xyXG5cdFx0U2l6emxlKCBzZWxlY3RvciwgY29udGV4dHNbaV0sIHJlc3VsdHMsIHNlZWQgKTtcclxuXHR9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhbmRsZVBPU0dyb3VwKCBzZWxlY3RvciwgcG9zZmlsdGVyLCBhcmd1bWVudCwgY29udGV4dHMsIHNlZWQsIG5vdCApIHtcclxuXHR2YXIgcmVzdWx0cyxcclxuXHRcdGZuID0gRXhwci5zZXRGaWx0ZXJzWyBwb3NmaWx0ZXIudG9Mb3dlckNhc2UoKSBdO1xyXG5cclxuXHRpZiAoICFmbiApIHtcclxuXHRcdFNpenpsZS5lcnJvciggcG9zZmlsdGVyICk7XHJcblx0fVxyXG5cclxuXHRpZiAoIHNlbGVjdG9yIHx8ICEocmVzdWx0cyA9IHNlZWQpICkge1xyXG5cdFx0bXVsdGlwbGVDb250ZXh0cyggc2VsZWN0b3IgfHwgXCIqXCIsIGNvbnRleHRzLCAocmVzdWx0cyA9IFtdKSwgc2VlZCApO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIHJlc3VsdHMubGVuZ3RoID4gMCA/IGZuKCByZXN1bHRzLCBhcmd1bWVudCwgbm90ICkgOiBbXTtcclxufVxyXG5cclxuZnVuY3Rpb24gaGFuZGxlUE9TKCBncm91cHMsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XHJcblx0dmFyIGdyb3VwLCBwYXJ0LCBqLCBncm91cExlbiwgdG9rZW4sIHNlbGVjdG9yLFxyXG5cdFx0YW5jaG9yLCBlbGVtZW50cywgbWF0Y2gsIG1hdGNoZWQsXHJcblx0XHRsYXN0SW5kZXgsIGN1cnJlbnRDb250ZXh0cywgbm90LFxyXG5cdFx0aSA9IDAsXHJcblx0XHRsZW4gPSBncm91cHMubGVuZ3RoLFxyXG5cdFx0cnBvcyA9IG1hdGNoRXhwcltcIlBPU1wiXSxcclxuXHRcdC8vIFRoaXMgaXMgZ2VuZXJhdGVkIGhlcmUgaW4gY2FzZSBtYXRjaEV4cHJbXCJQT1NcIl0gaXMgZXh0ZW5kZWRcclxuXHRcdHJwb3Nncm91cHMgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHJwb3Muc291cmNlICsgXCIoPyFcIiArIHdoaXRlc3BhY2UgKyBcIilcIiwgXCJpXCIgKSxcclxuXHRcdC8vIFRoaXMgaXMgZm9yIG1ha2luZyBzdXJlIG5vbi1wYXJ0aWNpcGF0aW5nXHJcblx0XHQvLyBtYXRjaGluZyBncm91cHMgYXJlIHJlcHJlc2VudGVkIGNyb3NzLWJyb3dzZXIgKElFNi04KVxyXG5cdFx0c2V0VW5kZWZpbmVkID0gZnVuY3Rpb24oKSB7XHJcblx0XHRcdHZhciBpID0gMSxcclxuXHRcdFx0XHRsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMjtcclxuXHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XHJcblx0XHRcdFx0aWYgKCBhcmd1bWVudHNbaV0gPT09IHVuZGVmaW5lZCApIHtcclxuXHRcdFx0XHRcdG1hdGNoW2ldID0gdW5kZWZpbmVkO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fTtcclxuXHJcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XHJcblx0XHRncm91cCA9IGdyb3Vwc1tpXTtcclxuXHRcdHBhcnQgPSBcIlwiO1xyXG5cdFx0ZWxlbWVudHMgPSBzZWVkO1xyXG5cdFx0Zm9yICggaiA9IDAsIGdyb3VwTGVuID0gZ3JvdXAubGVuZ3RoOyBqIDwgZ3JvdXBMZW47IGorKyApIHtcclxuXHRcdFx0dG9rZW4gPSBncm91cFtqXTtcclxuXHRcdFx0c2VsZWN0b3IgPSB0b2tlbi5zdHJpbmc7XHJcblx0XHRcdGlmICggdG9rZW4ucGFydCA9PT0gXCJQU0VVRE9cIiApIHtcclxuXHRcdFx0XHQvLyBSZXNldCByZWdleCBpbmRleCB0byAwXHJcblx0XHRcdFx0cnBvcy5leGVjKFwiXCIpO1xyXG5cdFx0XHRcdGFuY2hvciA9IDA7XHJcblx0XHRcdFx0d2hpbGUgKCAobWF0Y2ggPSBycG9zLmV4ZWMoIHNlbGVjdG9yICkpICkge1xyXG5cdFx0XHRcdFx0bWF0Y2hlZCA9IHRydWU7XHJcblx0XHRcdFx0XHRsYXN0SW5kZXggPSBycG9zLmxhc3RJbmRleCA9IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoO1xyXG5cdFx0XHRcdFx0aWYgKCBsYXN0SW5kZXggPiBhbmNob3IgKSB7XHJcblx0XHRcdFx0XHRcdHBhcnQgKz0gc2VsZWN0b3Iuc2xpY2UoIGFuY2hvciwgbWF0Y2guaW5kZXggKTtcclxuXHRcdFx0XHRcdFx0YW5jaG9yID0gbGFzdEluZGV4O1xyXG5cdFx0XHRcdFx0XHRjdXJyZW50Q29udGV4dHMgPSBbIGNvbnRleHQgXTtcclxuXHJcblx0XHRcdFx0XHRcdGlmICggcmNvbWJpbmF0b3JzLnRlc3QocGFydCkgKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCBlbGVtZW50cyApIHtcclxuXHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRDb250ZXh0cyA9IGVsZW1lbnRzO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRlbGVtZW50cyA9IHNlZWQ7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGlmICggKG5vdCA9IHJlbmRzV2l0aE5vdC50ZXN0KCBwYXJ0ICkpICkge1xyXG5cdFx0XHRcdFx0XHRcdHBhcnQgPSBwYXJ0LnNsaWNlKCAwLCAtNSApLnJlcGxhY2UoIHJjb21iaW5hdG9ycywgXCIkJipcIiApO1xyXG5cdFx0XHRcdFx0XHRcdGFuY2hvcisrO1xyXG5cdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoLmxlbmd0aCA+IDEgKSB7XHJcblx0XHRcdFx0XHRcdFx0bWF0Y2hbMF0ucmVwbGFjZSggcnBvc2dyb3Vwcywgc2V0VW5kZWZpbmVkICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0ZWxlbWVudHMgPSBoYW5kbGVQT1NHcm91cCggcGFydCwgbWF0Y2hbMV0sIG1hdGNoWzJdLCBjdXJyZW50Q29udGV4dHMsIGVsZW1lbnRzLCBub3QgKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdHBhcnQgPSBcIlwiO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICggIW1hdGNoZWQgKSB7XHJcblx0XHRcdFx0cGFydCArPSBzZWxlY3RvcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRtYXRjaGVkID0gZmFsc2U7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCBwYXJ0ICkge1xyXG5cdFx0XHRpZiAoIHJjb21iaW5hdG9ycy50ZXN0KHBhcnQpICkge1xyXG5cdFx0XHRcdG11bHRpcGxlQ29udGV4dHMoIHBhcnQsIGVsZW1lbnRzIHx8IFsgY29udGV4dCBdLCByZXN1bHRzLCBzZWVkICk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0U2l6emxlKCBwYXJ0LCBjb250ZXh0LCByZXN1bHRzLCBzZWVkID8gc2VlZC5jb25jYXQoZWxlbWVudHMpIDogZWxlbWVudHMgKTtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgZWxlbWVudHMgKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIERvIG5vdCBzb3J0IGlmIHRoaXMgaXMgYSBzaW5nbGUgZmlsdGVyXHJcblx0cmV0dXJuIGxlbiA9PT0gMSA/IHJlc3VsdHMgOiBTaXp6bGUudW5pcXVlU29ydCggcmVzdWx0cyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3QoIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkLCB4bWwgKSB7XHJcblx0Ly8gUmVtb3ZlIGV4Y2Vzc2l2ZSB3aGl0ZXNwYWNlXHJcblx0c2VsZWN0b3IgPSBzZWxlY3Rvci5yZXBsYWNlKCBydHJpbSwgXCIkMVwiICk7XHJcblx0dmFyIGVsZW1lbnRzLCBtYXRjaGVyLCBjYWNoZWQsIGVsZW0sXHJcblx0XHRpLCB0b2tlbnMsIHRva2VuLCBsYXN0VG9rZW4sIGZpbmRDb250ZXh0LCB0eXBlLFxyXG5cdFx0bWF0Y2ggPSB0b2tlbml6ZSggc2VsZWN0b3IsIGNvbnRleHQsIHhtbCApLFxyXG5cdFx0Y29udGV4dE5vZGVUeXBlID0gY29udGV4dC5ub2RlVHlwZTtcclxuXHJcblx0Ly8gUE9TIGhhbmRsaW5nXHJcblx0aWYgKCBtYXRjaEV4cHJbXCJQT1NcIl0udGVzdChzZWxlY3RvcikgKSB7XHJcblx0XHRyZXR1cm4gaGFuZGxlUE9TKCBtYXRjaCwgY29udGV4dCwgcmVzdWx0cywgc2VlZCApO1xyXG5cdH1cclxuXHJcblx0aWYgKCBzZWVkICkge1xyXG5cdFx0ZWxlbWVudHMgPSBzbGljZS5jYWxsKCBzZWVkLCAwICk7XHJcblxyXG5cdC8vIFRvIG1haW50YWluIGRvY3VtZW50IG9yZGVyLCBvbmx5IG5hcnJvdyB0aGVcclxuXHQvLyBzZXQgaWYgdGhlcmUgaXMgb25lIGdyb3VwXHJcblx0fSBlbHNlIGlmICggbWF0Y2gubGVuZ3RoID09PSAxICkge1xyXG5cclxuXHRcdC8vIFRha2UgYSBzaG9ydGN1dCBhbmQgc2V0IHRoZSBjb250ZXh0IGlmIHRoZSByb290IHNlbGVjdG9yIGlzIGFuIElEXHJcblx0XHRpZiAoICh0b2tlbnMgPSBzbGljZS5jYWxsKCBtYXRjaFswXSwgMCApKS5sZW5ndGggPiAyICYmXHJcblx0XHRcdFx0KHRva2VuID0gdG9rZW5zWzBdKS5wYXJ0ID09PSBcIklEXCIgJiZcclxuXHRcdFx0XHRjb250ZXh0Tm9kZVR5cGUgPT09IDkgJiYgIXhtbCAmJlxyXG5cdFx0XHRcdEV4cHIucmVsYXRpdmVbIHRva2Vuc1sxXS5wYXJ0IF0gKSB7XHJcblxyXG5cdFx0XHRjb250ZXh0ID0gRXhwci5maW5kW1wiSURcIl0oIHRva2VuLmNhcHR1cmVzWzBdLnJlcGxhY2UoIHJiYWNrc2xhc2gsIFwiXCIgKSwgY29udGV4dCwgeG1sIClbMF07XHJcblx0XHRcdGlmICggIWNvbnRleHQgKSB7XHJcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHNlbGVjdG9yID0gc2VsZWN0b3Iuc2xpY2UoIHRva2Vucy5zaGlmdCgpLnN0cmluZy5sZW5ndGggKTtcclxuXHRcdH1cclxuXHJcblx0XHRmaW5kQ29udGV4dCA9ICggKG1hdGNoID0gcnNpYmxpbmcuZXhlYyggdG9rZW5zWzBdLnN0cmluZyApKSAmJiAhbWF0Y2guaW5kZXggJiYgY29udGV4dC5wYXJlbnROb2RlICkgfHwgY29udGV4dDtcclxuXHJcblx0XHQvLyBSZWR1Y2UgdGhlIHNldCBpZiBwb3NzaWJsZVxyXG5cdFx0bGFzdFRva2VuID0gXCJcIjtcclxuXHRcdGZvciAoIGkgPSB0b2tlbnMubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0gKSB7XHJcblx0XHRcdHRva2VuID0gdG9rZW5zW2ldO1xyXG5cdFx0XHR0eXBlID0gdG9rZW4ucGFydDtcclxuXHRcdFx0bGFzdFRva2VuID0gdG9rZW4uc3RyaW5nICsgbGFzdFRva2VuO1xyXG5cdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHR5cGUgXSApIHtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoIEV4cHIub3JkZXIudGVzdCh0eXBlKSApIHtcclxuXHRcdFx0XHRlbGVtZW50cyA9IEV4cHIuZmluZFsgdHlwZSBdKCB0b2tlbi5jYXB0dXJlc1swXS5yZXBsYWNlKCByYmFja3NsYXNoLCBcIlwiICksIGZpbmRDb250ZXh0LCB4bWwgKTtcclxuXHRcdFx0XHRpZiAoIGVsZW1lbnRzID09IG51bGwgKSB7XHJcblx0XHRcdFx0XHRjb250aW51ZTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0c2VsZWN0b3IgPSBzZWxlY3Rvci5zbGljZSggMCwgc2VsZWN0b3IubGVuZ3RoIC0gbGFzdFRva2VuLmxlbmd0aCApICtcclxuXHRcdFx0XHRcdFx0bGFzdFRva2VuLnJlcGxhY2UoIG1hdGNoRXhwclsgdHlwZSBdLCBcIlwiICk7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCAhc2VsZWN0b3IgKSB7XHJcblx0XHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIHNsaWNlLmNhbGwoZWxlbWVudHMsIDApICk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBPbmx5IGxvb3Agb3ZlciB0aGUgZ2l2ZW4gZWxlbWVudHMgb25jZVxyXG5cdGlmICggc2VsZWN0b3IgKSB7XHJcblx0XHRtYXRjaGVyID0gY29tcGlsZSggc2VsZWN0b3IsIGNvbnRleHQsIHhtbCApO1xyXG5cdFx0ZGlycnVucyA9IG1hdGNoZXIuZGlycnVucysrO1xyXG5cdFx0aWYgKCBlbGVtZW50cyA9PSBudWxsICkge1xyXG5cdFx0XHRlbGVtZW50cyA9IEV4cHIuZmluZFtcIlRBR1wiXSggXCIqXCIsIChyc2libGluZy50ZXN0KCBzZWxlY3RvciApICYmIGNvbnRleHQucGFyZW50Tm9kZSkgfHwgY29udGV4dCApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGZvciAoIGkgPSAwOyAoZWxlbSA9IGVsZW1lbnRzW2ldKTsgaSsrICkge1xyXG5cdFx0XHRjYWNoZWRydW5zID0gbWF0Y2hlci5ydW5zKys7XHJcblx0XHRcdGlmICggbWF0Y2hlcihlbGVtKSApIHtcclxuXHRcdFx0XHRyZXN1bHRzLnB1c2goIGVsZW0gKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHJlc3VsdHM7XHJcbn1cclxuXHJcbmlmICggZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCApIHtcclxuXHQoZnVuY3Rpb24oKSB7XHJcblx0XHR2YXIgZGlzY29ubmVjdGVkTWF0Y2gsXHJcblx0XHRcdG9sZFNlbGVjdCA9IHNlbGVjdCxcclxuXHRcdFx0cmVzY2FwZSA9IC8nfFxcXFwvZyxcclxuXHRcdFx0cmF0dHJpYnV0ZVF1b3RlcyA9IC9cXD1bXFx4MjBcXHRcXHJcXG5cXGZdKihbXidcIlxcXV0qKVtcXHgyMFxcdFxcclxcblxcZl0qXFxdL2csXHJcblx0XHRcdHJidWdneVFTQSA9IFtdLFxyXG5cdFx0XHQvLyBtYXRjaGVzU2VsZWN0b3IoOmFjdGl2ZSkgcmVwb3J0cyBmYWxzZSB3aGVuIHRydWUgKElFOS9PcGVyYSAxMS41KVxyXG5cdFx0XHQvLyBBIHN1cHBvcnQgdGVzdCB3b3VsZCByZXF1aXJlIHRvbyBtdWNoIGNvZGUgKHdvdWxkIGluY2x1ZGUgZG9jdW1lbnQgcmVhZHkpXHJcblx0XHRcdC8vIGp1c3Qgc2tpcCBtYXRjaGVzU2VsZWN0b3IgZm9yIDphY3RpdmVcclxuXHRcdFx0cmJ1Z2d5TWF0Y2hlcyA9IFtcIjphY3RpdmVcIl0sXHJcblx0XHRcdG1hdGNoZXMgPSBkb2NFbGVtLm1hdGNoZXNTZWxlY3RvciB8fFxyXG5cdFx0XHRcdGRvY0VsZW0ubW96TWF0Y2hlc1NlbGVjdG9yIHx8XHJcblx0XHRcdFx0ZG9jRWxlbS53ZWJraXRNYXRjaGVzU2VsZWN0b3IgfHxcclxuXHRcdFx0XHRkb2NFbGVtLm9NYXRjaGVzU2VsZWN0b3IgfHxcclxuXHRcdFx0XHRkb2NFbGVtLm1zTWF0Y2hlc1NlbGVjdG9yO1xyXG5cclxuXHRcdC8vIEJ1aWxkIFFTQSByZWdleFxyXG5cdFx0Ly8gUmVnZXggc3RyYXRlZ3kgYWRvcHRlZCBmcm9tIERpZWdvIFBlcmluaVxyXG5cdFx0YXNzZXJ0KGZ1bmN0aW9uKCBkaXYgKSB7XHJcblx0XHRcdC8vIFNlbGVjdCBpcyBzZXQgdG8gZW1wdHkgc3RyaW5nIG9uIHB1cnBvc2VcclxuXHRcdFx0Ly8gVGhpcyBpcyB0byB0ZXN0IElFJ3MgdHJlYXRtZW50IG9mIG5vdCBleHBsaWN0bHlcclxuXHRcdFx0Ly8gc2V0dGluZyBhIGJvb2xlYW4gY29udGVudCBhdHRyaWJ1dGUsXHJcblx0XHRcdC8vIHNpbmNlIGl0cyBwcmVzZW5jZSBzaG91bGQgYmUgZW5vdWdoXHJcblx0XHRcdC8vIGh0dHA6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEyMzU5XHJcblx0XHRcdGRpdi5pbm5lckhUTUwgPSBcIjxzZWxlY3Q+PG9wdGlvbiBzZWxlY3RlZD0nJz48L29wdGlvbj48L3NlbGVjdD5cIjtcclxuXHJcblx0XHRcdC8vIElFOCAtIFNvbWUgYm9vbGVhbiBhdHRyaWJ1dGVzIGFyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHlcclxuXHRcdFx0aWYgKCAhZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoXCJbc2VsZWN0ZWRdXCIpLmxlbmd0aCApIHtcclxuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJcXFxcW1wiICsgd2hpdGVzcGFjZSArIFwiKig/OmNoZWNrZWR8ZGlzYWJsZWR8aXNtYXB8bXVsdGlwbGV8cmVhZG9ubHl8c2VsZWN0ZWR8dmFsdWUpXCIgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gV2Via2l0L09wZXJhIC0gOmNoZWNrZWQgc2hvdWxkIHJldHVybiBzZWxlY3RlZCBvcHRpb24gZWxlbWVudHNcclxuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcclxuXHRcdFx0Ly8gSUU4IHRocm93cyBlcnJvciBoZXJlIChkbyBub3QgcHV0IHRlc3RzIGFmdGVyIHRoaXMgb25lKVxyXG5cdFx0XHRpZiAoICFkaXYucXVlcnlTZWxlY3RvckFsbChcIjpjaGVja2VkXCIpLmxlbmd0aCApIHtcclxuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaChcIjpjaGVja2VkXCIpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHJcblx0XHRhc3NlcnQoZnVuY3Rpb24oIGRpdiApIHtcclxuXHJcblx0XHRcdC8vIE9wZXJhIDEwLTEyL0lFOSAtIF49ICQ9ICo9IGFuZCBlbXB0eSB2YWx1ZXNcclxuXHRcdFx0Ly8gU2hvdWxkIG5vdCBzZWxlY3QgYW55dGhpbmdcclxuXHRcdFx0ZGl2LmlubmVySFRNTCA9IFwiPHAgdGVzdD0nJz48L3A+XCI7XHJcblx0XHRcdGlmICggZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoXCJbdGVzdF49JyddXCIpLmxlbmd0aCApIHtcclxuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJbKl4kXT1cIiArIHdoaXRlc3BhY2UgKyBcIiooPzpcXFwiXFxcInwnJylcIiApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBGRiAzLjUgLSA6ZW5hYmxlZC86ZGlzYWJsZWQgYW5kIGhpZGRlbiBlbGVtZW50cyAoaGlkZGVuIGVsZW1lbnRzIGFyZSBzdGlsbCBlbmFibGVkKVxyXG5cdFx0XHQvLyBJRTggdGhyb3dzIGVycm9yIGhlcmUgKGRvIG5vdCBwdXQgdGVzdHMgYWZ0ZXIgdGhpcyBvbmUpXHJcblx0XHRcdGRpdi5pbm5lckhUTUwgPSBcIjxpbnB1dCB0eXBlPSdoaWRkZW4nLz5cIjtcclxuXHRcdFx0aWYgKCAhZGl2LnF1ZXJ5U2VsZWN0b3JBbGwoXCI6ZW5hYmxlZFwiKS5sZW5ndGggKSB7XHJcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goXCI6ZW5hYmxlZFwiLCBcIjpkaXNhYmxlZFwiKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdFx0cmJ1Z2d5UVNBID0gcmJ1Z2d5UVNBLmxlbmd0aCAmJiBuZXcgUmVnRXhwKCByYnVnZ3lRU0Euam9pbihcInxcIikgKTtcclxuXHJcblx0XHRzZWxlY3QgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQsIHhtbCApIHtcclxuXHRcdFx0Ly8gT25seSB1c2UgcXVlcnlTZWxlY3RvckFsbCB3aGVuIG5vdCBmaWx0ZXJpbmcsXHJcblx0XHRcdC8vIHdoZW4gdGhpcyBpcyBub3QgeG1sLFxyXG5cdFx0XHQvLyBhbmQgd2hlbiBubyBRU0EgYnVncyBhcHBseVxyXG5cdFx0XHRpZiAoICFzZWVkICYmICF4bWwgJiYgKCFyYnVnZ3lRU0EgfHwgIXJidWdneVFTQS50ZXN0KCBzZWxlY3RvciApKSApIHtcclxuXHRcdFx0XHRpZiAoIGNvbnRleHQubm9kZVR5cGUgPT09IDkgKSB7XHJcblx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBzbGljZS5jYWxsKGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCggc2VsZWN0b3IgKSwgMCkgKTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XHJcblx0XHRcdFx0XHR9IGNhdGNoKHFzYUVycm9yKSB7fVxyXG5cdFx0XHRcdC8vIHFTQSB3b3JrcyBzdHJhbmdlbHkgb24gRWxlbWVudC1yb290ZWQgcXVlcmllc1xyXG5cdFx0XHRcdC8vIFdlIGNhbiB3b3JrIGFyb3VuZCB0aGlzIGJ5IHNwZWNpZnlpbmcgYW4gZXh0cmEgSUQgb24gdGhlIHJvb3RcclxuXHRcdFx0XHQvLyBhbmQgd29ya2luZyB1cCBmcm9tIHRoZXJlIChUaGFua3MgdG8gQW5kcmV3IER1cG9udCBmb3IgdGhlIHRlY2huaXF1ZSlcclxuXHRcdFx0XHQvLyBJRSA4IGRvZXNuJ3Qgd29yayBvbiBvYmplY3QgZWxlbWVudHNcclxuXHRcdFx0XHR9IGVsc2UgaWYgKCBjb250ZXh0Lm5vZGVUeXBlID09PSAxICYmIGNvbnRleHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gXCJvYmplY3RcIiApIHtcclxuXHRcdFx0XHRcdHZhciBncm91cHMsIGksIGxlbixcclxuXHRcdFx0XHRcdFx0b2xkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoXCJpZFwiKSxcclxuXHRcdFx0XHRcdFx0bmlkID0gb2xkIHx8IGV4cGFuZG8sXHJcblx0XHRcdFx0XHRcdG5ld0NvbnRleHQgPSByc2libGluZy50ZXN0KCBzZWxlY3RvciApICYmIGNvbnRleHQucGFyZW50Tm9kZSB8fCBjb250ZXh0O1xyXG5cclxuXHRcdFx0XHRcdGlmICggb2xkICkge1xyXG5cdFx0XHRcdFx0XHRuaWQgPSBuaWQucmVwbGFjZSggcmVzY2FwZSwgXCJcXFxcJCZcIiApO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0Y29udGV4dC5zZXRBdHRyaWJ1dGUoIFwiaWRcIiwgbmlkICk7XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0Z3JvdXBzID0gdG9rZW5pemUoc2VsZWN0b3IsIGNvbnRleHQsIHhtbCk7XHJcblx0XHRcdFx0XHQvLyBUcmFpbGluZyBzcGFjZSBpcyB1bm5lY2Vzc2FyeVxyXG5cdFx0XHRcdFx0Ly8gVGhlcmUgaXMgYWx3YXlzIGEgY29udGV4dCBjaGVja1xyXG5cdFx0XHRcdFx0bmlkID0gXCJbaWQ9J1wiICsgbmlkICsgXCInXVwiO1xyXG5cdFx0XHRcdFx0Zm9yICggaSA9IDAsIGxlbiA9IGdyb3Vwcy5sZW5ndGg7IGkgPCBsZW47IGkrKyApIHtcclxuXHRcdFx0XHRcdFx0Z3JvdXBzW2ldID0gbmlkICsgZ3JvdXBzW2ldLnNlbGVjdG9yO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cywgc2xpY2UuY2FsbCggbmV3Q29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKFxyXG5cdFx0XHRcdFx0XHRcdGdyb3Vwcy5qb2luKFwiLFwiKVxyXG5cdFx0XHRcdFx0XHQpLCAwICkgKTtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XHJcblx0XHRcdFx0XHR9IGNhdGNoKHFzYUVycm9yKSB7XHJcblx0XHRcdFx0XHR9IGZpbmFsbHkge1xyXG5cdFx0XHRcdFx0XHRpZiAoICFvbGQgKSB7XHJcblx0XHRcdFx0XHRcdFx0Y29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoXCJpZFwiKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIG9sZFNlbGVjdCggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQsIHhtbCApO1xyXG5cdFx0fTtcclxuXHJcblx0XHRpZiAoIG1hdGNoZXMgKSB7XHJcblx0XHRcdGFzc2VydChmdW5jdGlvbiggZGl2ICkge1xyXG5cdFx0XHRcdC8vIENoZWNrIHRvIHNlZSBpZiBpdCdzIHBvc3NpYmxlIHRvIGRvIG1hdGNoZXNTZWxlY3RvclxyXG5cdFx0XHRcdC8vIG9uIGEgZGlzY29ubmVjdGVkIG5vZGUgKElFIDkpXHJcblx0XHRcdFx0ZGlzY29ubmVjdGVkTWF0Y2ggPSBtYXRjaGVzLmNhbGwoIGRpdiwgXCJkaXZcIiApO1xyXG5cclxuXHRcdFx0XHQvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9uXHJcblx0XHRcdFx0Ly8gR2Vja28gZG9lcyBub3QgZXJyb3IsIHJldHVybnMgZmFsc2UgaW5zdGVhZFxyXG5cdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRtYXRjaGVzLmNhbGwoIGRpdiwgXCJbdGVzdCE9JyddOnNpenpsZVwiICk7XHJcblx0XHRcdFx0XHRyYnVnZ3lNYXRjaGVzLnB1c2goIG1hdGNoRXhwcltcIlBTRVVET1wiXS5zb3VyY2UsIG1hdGNoRXhwcltcIlBPU1wiXS5zb3VyY2UsIFwiIT1cIiApO1xyXG5cdFx0XHRcdH0gY2F0Y2ggKCBlICkge31cclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0XHQvLyByYnVnZ3lNYXRjaGVzIGFsd2F5cyBjb250YWlucyA6YWN0aXZlLCBzbyBubyBuZWVkIGZvciBhIGxlbmd0aCBjaGVja1xyXG5cdFx0XHRyYnVnZ3lNYXRjaGVzID0gLyogcmJ1Z2d5TWF0Y2hlcy5sZW5ndGggJiYgKi8gbmV3IFJlZ0V4cCggcmJ1Z2d5TWF0Y2hlcy5qb2luKFwifFwiKSApO1xyXG5cclxuXHRcdFx0U2l6emxlLm1hdGNoZXNTZWxlY3RvciA9IGZ1bmN0aW9uKCBlbGVtLCBleHByICkge1xyXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IGF0dHJpYnV0ZSBzZWxlY3RvcnMgYXJlIHF1b3RlZFxyXG5cdFx0XHRcdGV4cHIgPSBleHByLnJlcGxhY2UoIHJhdHRyaWJ1dGVRdW90ZXMsIFwiPSckMSddXCIgKTtcclxuXHJcblx0XHRcdFx0Ly8gcmJ1Z2d5TWF0Y2hlcyBhbHdheXMgY29udGFpbnMgOmFjdGl2ZSwgc28gbm8gbmVlZCBmb3IgYW4gZXhpc3RlbmNlIGNoZWNrXHJcblx0XHRcdFx0aWYgKCAhaXNYTUwoIGVsZW0gKSAmJiAhcmJ1Z2d5TWF0Y2hlcy50ZXN0KCBleHByICkgJiYgKCFyYnVnZ3lRU0EgfHwgIXJidWdneVFTQS50ZXN0KCBleHByICkpICkge1xyXG5cdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0dmFyIHJldCA9IG1hdGNoZXMuY2FsbCggZWxlbSwgZXhwciApO1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gSUUgOSdzIG1hdGNoZXNTZWxlY3RvciByZXR1cm5zIGZhbHNlIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xyXG5cdFx0XHRcdFx0XHRpZiAoIHJldCB8fCBkaXNjb25uZWN0ZWRNYXRjaCB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnRcclxuXHRcdFx0XHRcdFx0XHRcdC8vIGZyYWdtZW50IGluIElFIDlcclxuXHRcdFx0XHRcdFx0XHRcdGVsZW0uZG9jdW1lbnQgJiYgZWxlbS5kb2N1bWVudC5ub2RlVHlwZSAhPT0gMTEgKSB7XHJcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHJldDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSBjYXRjaChlKSB7fVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmV0dXJuIFNpenpsZSggZXhwciwgbnVsbCwgbnVsbCwgWyBlbGVtIF0gKS5sZW5ndGggPiAwO1xyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH0pKCk7XHJcbn1cclxuXHJcbi8vIERlcHJlY2F0ZWRcclxuRXhwci5zZXRGaWx0ZXJzW1wibnRoXCJdID0gRXhwci5zZXRGaWx0ZXJzW1wiZXFcIl07XHJcblxyXG4vLyBCYWNrLWNvbXBhdFxyXG5FeHByLmZpbHRlcnMgPSBFeHByLnBzZXVkb3M7XHJcblxyXG4vLyBPdmVycmlkZSBzaXp6bGUgYXR0cmlidXRlIHJldHJpZXZhbFxyXG5TaXp6bGUuYXR0ciA9IGpRdWVyeS5hdHRyO1xyXG5qUXVlcnkuZmluZCA9IFNpenpsZTtcclxualF1ZXJ5LmV4cHIgPSBTaXp6bGUuc2VsZWN0b3JzO1xyXG5qUXVlcnkuZXhwcltcIjpcIl0gPSBqUXVlcnkuZXhwci5wc2V1ZG9zO1xyXG5qUXVlcnkudW5pcXVlID0gU2l6emxlLnVuaXF1ZVNvcnQ7XHJcbmpRdWVyeS50ZXh0ID0gU2l6emxlLmdldFRleHQ7XHJcbmpRdWVyeS5pc1hNTERvYyA9IFNpenpsZS5pc1hNTDtcclxualF1ZXJ5LmNvbnRhaW5zID0gU2l6emxlLmNvbnRhaW5zO1xyXG5cclxuXHJcbn0pKCB3aW5kb3cgKTtcclxudmFyIHJ1bnRpbCA9IC9VbnRpbCQvLFxyXG5cdHJwYXJlbnRzcHJldiA9IC9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLFxyXG5cdGlzU2ltcGxlID0gL14uW146I1xcW1xcLixdKiQvLFxyXG5cdHJuZWVkc0NvbnRleHQgPSBqUXVlcnkuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQsXHJcblx0Ly8gbWV0aG9kcyBndWFyYW50ZWVkIHRvIHByb2R1Y2UgYSB1bmlxdWUgc2V0IHdoZW4gc3RhcnRpbmcgZnJvbSBhIHVuaXF1ZSBzZXRcclxuXHRndWFyYW50ZWVkVW5pcXVlID0ge1xyXG5cdFx0Y2hpbGRyZW46IHRydWUsXHJcblx0XHRjb250ZW50czogdHJ1ZSxcclxuXHRcdG5leHQ6IHRydWUsXHJcblx0XHRwcmV2OiB0cnVlXHJcblx0fTtcclxuXHJcbmpRdWVyeS5mbi5leHRlbmQoe1xyXG5cdGZpbmQ6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcclxuXHRcdHZhciBpLCBsLCBsZW5ndGgsIG4sIHIsIHJldCxcclxuXHRcdFx0c2VsZiA9IHRoaXM7XHJcblxyXG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgIT09IFwic3RyaW5nXCIgKSB7XHJcblx0XHRcdHJldHVybiBqUXVlcnkoIHNlbGVjdG9yICkuZmlsdGVyKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gc2VsZi5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XHJcblx0XHRcdFx0XHRpZiAoIGpRdWVyeS5jb250YWlucyggc2VsZlsgaSBdLCB0aGlzICkgKSB7XHJcblx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0ID0gdGhpcy5wdXNoU3RhY2soIFwiXCIsIFwiZmluZFwiLCBzZWxlY3RvciApO1xyXG5cclxuXHRcdGZvciAoIGkgPSAwLCBsID0gdGhpcy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XHJcblx0XHRcdGxlbmd0aCA9IHJldC5sZW5ndGg7XHJcblx0XHRcdGpRdWVyeS5maW5kKCBzZWxlY3RvciwgdGhpc1tpXSwgcmV0ICk7XHJcblxyXG5cdFx0XHRpZiAoIGkgPiAwICkge1xyXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSByZXN1bHRzIGFyZSB1bmlxdWVcclxuXHRcdFx0XHRmb3IgKCBuID0gbGVuZ3RoOyBuIDwgcmV0Lmxlbmd0aDsgbisrICkge1xyXG5cdFx0XHRcdFx0Zm9yICggciA9IDA7IHIgPCBsZW5ndGg7IHIrKyApIHtcclxuXHRcdFx0XHRcdFx0aWYgKCByZXRbcl0gPT09IHJldFtuXSApIHtcclxuXHRcdFx0XHRcdFx0XHRyZXQuc3BsaWNlKG4tLSwgMSk7XHJcblx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmV0O1xyXG5cdH0sXHJcblxyXG5cdGhhczogZnVuY3Rpb24oIHRhcmdldCApIHtcclxuXHRcdHZhciBpLFxyXG5cdFx0XHR0YXJnZXRzID0galF1ZXJ5KCB0YXJnZXQsIHRoaXMgKSxcclxuXHRcdFx0bGVuID0gdGFyZ2V0cy5sZW5ndGg7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRmb3IgKCBpID0gMDsgaSA8IGxlbjsgaSsrICkge1xyXG5cdFx0XHRcdGlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRzW2ldICkgKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH0sXHJcblxyXG5cdG5vdDogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xyXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIGZhbHNlKSwgXCJub3RcIiwgc2VsZWN0b3IpO1xyXG5cdH0sXHJcblxyXG5cdGZpbHRlcjogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xyXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCB3aW5ub3codGhpcywgc2VsZWN0b3IsIHRydWUpLCBcImZpbHRlclwiLCBzZWxlY3RvciApO1xyXG5cdH0sXHJcblxyXG5cdGlzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XHJcblx0XHRyZXR1cm4gISFzZWxlY3RvciAmJiAoXHJcblx0XHRcdHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiA/XHJcblx0XHRcdFx0Ly8gSWYgdGhpcyBpcyBhIHBvc2l0aW9uYWwvcmVsYXRpdmUgc2VsZWN0b3IsIGNoZWNrIG1lbWJlcnNoaXAgaW4gdGhlIHJldHVybmVkIHNldFxyXG5cdFx0XHRcdC8vIHNvICQoXCJwOmZpcnN0XCIpLmlzKFwicDpsYXN0XCIpIHdvbid0IHJldHVybiB0cnVlIGZvciBhIGRvYyB3aXRoIHR3byBcInBcIi5cclxuXHRcdFx0XHRybmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9yICkgP1xyXG5cdFx0XHRcdFx0alF1ZXJ5KCBzZWxlY3RvciwgdGhpcy5jb250ZXh0ICkuaW5kZXgoIHRoaXNbMF0gKSA+PSAwIDpcclxuXHRcdFx0XHRcdGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCB0aGlzICkubGVuZ3RoID4gMCA6XHJcblx0XHRcdFx0dGhpcy5maWx0ZXIoIHNlbGVjdG9yICkubGVuZ3RoID4gMCApO1xyXG5cdH0sXHJcblxyXG5cdGNsb3Nlc3Q6IGZ1bmN0aW9uKCBzZWxlY3RvcnMsIGNvbnRleHQgKSB7XHJcblx0XHR2YXIgY3VyLFxyXG5cdFx0XHRpID0gMCxcclxuXHRcdFx0bCA9IHRoaXMubGVuZ3RoLFxyXG5cdFx0XHRyZXQgPSBbXSxcclxuXHRcdFx0cG9zID0gcm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3RvcnMgKSB8fCB0eXBlb2Ygc2VsZWN0b3JzICE9PSBcInN0cmluZ1wiID9cclxuXHRcdFx0XHRqUXVlcnkoIHNlbGVjdG9ycywgY29udGV4dCB8fCB0aGlzLmNvbnRleHQgKSA6XHJcblx0XHRcdFx0MDtcclxuXHJcblx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XHJcblx0XHRcdGN1ciA9IHRoaXNbaV07XHJcblxyXG5cdFx0XHR3aGlsZSAoIGN1ciAmJiBjdXIub3duZXJEb2N1bWVudCAmJiBjdXIgIT09IGNvbnRleHQgJiYgY3VyLm5vZGVUeXBlICE9PSAxMSApIHtcclxuXHRcdFx0XHRpZiAoIHBvcyA/IHBvcy5pbmRleChjdXIpID4gLTEgOiBqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoY3VyLCBzZWxlY3RvcnMpICkge1xyXG5cdFx0XHRcdFx0cmV0LnB1c2goIGN1ciApO1xyXG5cdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdGN1ciA9IGN1ci5wYXJlbnROb2RlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0ID0gcmV0Lmxlbmd0aCA+IDEgPyBqUXVlcnkudW5pcXVlKCByZXQgKSA6IHJldDtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgXCJjbG9zZXN0XCIsIHNlbGVjdG9ycyApO1xyXG5cdH0sXHJcblxyXG5cdC8vIERldGVybWluZSB0aGUgcG9zaXRpb24gb2YgYW4gZWxlbWVudCB3aXRoaW5cclxuXHQvLyB0aGUgbWF0Y2hlZCBzZXQgb2YgZWxlbWVudHNcclxuXHRpbmRleDogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblxyXG5cdFx0Ly8gTm8gYXJndW1lbnQsIHJldHVybiBpbmRleCBpbiBwYXJlbnRcclxuXHRcdGlmICggIWVsZW0gKSB7XHJcblx0XHRcdHJldHVybiAoIHRoaXNbMF0gJiYgdGhpc1swXS5wYXJlbnROb2RlICkgPyB0aGlzLnByZXZBbGwoKS5sZW5ndGggOiAtMTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBpbmRleCBpbiBzZWxlY3RvclxyXG5cdFx0aWYgKCB0eXBlb2YgZWxlbSA9PT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0cmV0dXJuIGpRdWVyeS5pbkFycmF5KCB0aGlzWzBdLCBqUXVlcnkoIGVsZW0gKSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIExvY2F0ZSB0aGUgcG9zaXRpb24gb2YgdGhlIGRlc2lyZWQgZWxlbWVudFxyXG5cdFx0cmV0dXJuIGpRdWVyeS5pbkFycmF5KFxyXG5cdFx0XHQvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWRcclxuXHRcdFx0ZWxlbS5qcXVlcnkgPyBlbGVtWzBdIDogZWxlbSwgdGhpcyApO1xyXG5cdH0sXHJcblxyXG5cdGFkZDogZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0ICkge1xyXG5cdFx0dmFyIHNldCA9IHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiA/XHJcblx0XHRcdFx0alF1ZXJ5KCBzZWxlY3RvciwgY29udGV4dCApIDpcclxuXHRcdFx0XHRqUXVlcnkubWFrZUFycmF5KCBzZWxlY3RvciAmJiBzZWxlY3Rvci5ub2RlVHlwZSA/IFsgc2VsZWN0b3IgXSA6IHNlbGVjdG9yICksXHJcblx0XHRcdGFsbCA9IGpRdWVyeS5tZXJnZSggdGhpcy5nZXQoKSwgc2V0ICk7XHJcblxyXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBpc0Rpc2Nvbm5lY3RlZCggc2V0WzBdICkgfHwgaXNEaXNjb25uZWN0ZWQoIGFsbFswXSApID9cclxuXHRcdFx0YWxsIDpcclxuXHRcdFx0alF1ZXJ5LnVuaXF1ZSggYWxsICkgKTtcclxuXHR9LFxyXG5cclxuXHRhZGRCYWNrOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgP1xyXG5cdFx0XHR0aGlzLnByZXZPYmplY3QgOiB0aGlzLnByZXZPYmplY3QuZmlsdGVyKHNlbGVjdG9yKVxyXG5cdFx0KTtcclxuXHR9XHJcbn0pO1xyXG5cclxualF1ZXJ5LmZuLmFuZFNlbGYgPSBqUXVlcnkuZm4uYWRkQmFjaztcclxuXHJcbi8vIEEgcGFpbmZ1bGx5IHNpbXBsZSBjaGVjayB0byBzZWUgaWYgYW4gZWxlbWVudCBpcyBkaXNjb25uZWN0ZWRcclxuLy8gZnJvbSBhIGRvY3VtZW50IChzaG91bGQgYmUgaW1wcm92ZWQsIHdoZXJlIGZlYXNpYmxlKS5cclxuZnVuY3Rpb24gaXNEaXNjb25uZWN0ZWQoIG5vZGUgKSB7XHJcblx0cmV0dXJuICFub2RlIHx8ICFub2RlLnBhcmVudE5vZGUgfHwgbm9kZS5wYXJlbnROb2RlLm5vZGVUeXBlID09PSAxMTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2libGluZyggY3VyLCBkaXIgKSB7XHJcblx0ZG8ge1xyXG5cdFx0Y3VyID0gY3VyWyBkaXIgXTtcclxuXHR9IHdoaWxlICggY3VyICYmIGN1ci5ub2RlVHlwZSAhPT0gMSApO1xyXG5cclxuXHRyZXR1cm4gY3VyO1xyXG59XHJcblxyXG5qUXVlcnkuZWFjaCh7XHJcblx0cGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XHJcblx0XHRyZXR1cm4gcGFyZW50ICYmIHBhcmVudC5ub2RlVHlwZSAhPT0gMTEgPyBwYXJlbnQgOiBudWxsO1xyXG5cdH0sXHJcblx0cGFyZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LmRpciggZWxlbSwgXCJwYXJlbnROb2RlXCIgKTtcclxuXHR9LFxyXG5cdHBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiLCB1bnRpbCApO1xyXG5cdH0sXHJcblx0bmV4dDogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJuZXh0U2libGluZ1wiICk7XHJcblx0fSxcclxuXHRwcmV2OiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdHJldHVybiBzaWJsaW5nKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiICk7XHJcblx0fSxcclxuXHRuZXh0QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdHJldHVybiBqUXVlcnkuZGlyKCBlbGVtLCBcIm5leHRTaWJsaW5nXCIgKTtcclxuXHR9LFxyXG5cdHByZXZBbGw6IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sIFwicHJldmlvdXNTaWJsaW5nXCIgKTtcclxuXHR9LFxyXG5cdG5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiwgdW50aWwgKTtcclxuXHR9LFxyXG5cdHByZXZVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5kaXIoIGVsZW0sIFwicHJldmlvdXNTaWJsaW5nXCIsIHVudGlsICk7XHJcblx0fSxcclxuXHRzaWJsaW5nczogZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LnNpYmxpbmcoICggZWxlbS5wYXJlbnROb2RlIHx8IHt9ICkuZmlyc3RDaGlsZCwgZWxlbSApO1xyXG5cdH0sXHJcblx0Y2hpbGRyZW46IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5zaWJsaW5nKCBlbGVtLmZpcnN0Q2hpbGQgKTtcclxuXHR9LFxyXG5cdGNvbnRlbnRzOiBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdHJldHVybiBqUXVlcnkubm9kZU5hbWUoIGVsZW0sIFwiaWZyYW1lXCIgKSA/XHJcblx0XHRcdGVsZW0uY29udGVudERvY3VtZW50IHx8IGVsZW0uY29udGVudFdpbmRvdy5kb2N1bWVudCA6XHJcblx0XHRcdGpRdWVyeS5tZXJnZSggW10sIGVsZW0uY2hpbGROb2RlcyApO1xyXG5cdH1cclxufSwgZnVuY3Rpb24oIG5hbWUsIGZuICkge1xyXG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHVudGlsLCBzZWxlY3RvciApIHtcclxuXHRcdHZhciByZXQgPSBqUXVlcnkubWFwKCB0aGlzLCBmbiwgdW50aWwgKTtcclxuXHJcblx0XHRpZiAoICFydW50aWwudGVzdCggbmFtZSApICkge1xyXG5cdFx0XHRzZWxlY3RvciA9IHVudGlsO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggc2VsZWN0b3IgJiYgdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xyXG5cdFx0XHRyZXQgPSBqUXVlcnkuZmlsdGVyKCBzZWxlY3RvciwgcmV0ICk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0ID0gdGhpcy5sZW5ndGggPiAxICYmICFndWFyYW50ZWVkVW5pcXVlWyBuYW1lIF0gPyBqUXVlcnkudW5pcXVlKCByZXQgKSA6IHJldDtcclxuXHJcblx0XHRpZiAoIHRoaXMubGVuZ3RoID4gMSAmJiBycGFyZW50c3ByZXYudGVzdCggbmFtZSApICkge1xyXG5cdFx0XHRyZXQgPSByZXQucmV2ZXJzZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggcmV0LCBuYW1lLCBjb3JlX3NsaWNlLmNhbGwoIGFyZ3VtZW50cyApLmpvaW4oXCIsXCIpICk7XHJcblx0fTtcclxufSk7XHJcblxyXG5qUXVlcnkuZXh0ZW5kKHtcclxuXHRmaWx0ZXI6IGZ1bmN0aW9uKCBleHByLCBlbGVtcywgbm90ICkge1xyXG5cdFx0aWYgKCBub3QgKSB7XHJcblx0XHRcdGV4cHIgPSBcIjpub3QoXCIgKyBleHByICsgXCIpXCI7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIGVsZW1zLmxlbmd0aCA9PT0gMSA/XHJcblx0XHRcdGpRdWVyeS5maW5kLm1hdGNoZXNTZWxlY3RvcihlbGVtc1swXSwgZXhwcikgPyBbIGVsZW1zWzBdIF0gOiBbXSA6XHJcblx0XHRcdGpRdWVyeS5maW5kLm1hdGNoZXMoZXhwciwgZWxlbXMpO1xyXG5cdH0sXHJcblxyXG5cdGRpcjogZnVuY3Rpb24oIGVsZW0sIGRpciwgdW50aWwgKSB7XHJcblx0XHR2YXIgbWF0Y2hlZCA9IFtdLFxyXG5cdFx0XHRjdXIgPSBlbGVtWyBkaXIgXTtcclxuXHJcblx0XHR3aGlsZSAoIGN1ciAmJiBjdXIubm9kZVR5cGUgIT09IDkgJiYgKHVudGlsID09PSB1bmRlZmluZWQgfHwgY3VyLm5vZGVUeXBlICE9PSAxIHx8ICFqUXVlcnkoIGN1ciApLmlzKCB1bnRpbCApKSApIHtcclxuXHRcdFx0aWYgKCBjdXIubm9kZVR5cGUgPT09IDEgKSB7XHJcblx0XHRcdFx0bWF0Y2hlZC5wdXNoKCBjdXIgKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRjdXIgPSBjdXJbZGlyXTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBtYXRjaGVkO1xyXG5cdH0sXHJcblxyXG5cdHNpYmxpbmc6IGZ1bmN0aW9uKCBuLCBlbGVtICkge1xyXG5cdFx0dmFyIHIgPSBbXTtcclxuXHJcblx0XHRmb3IgKCA7IG47IG4gPSBuLm5leHRTaWJsaW5nICkge1xyXG5cdFx0XHRpZiAoIG4ubm9kZVR5cGUgPT09IDEgJiYgbiAhPT0gZWxlbSApIHtcclxuXHRcdFx0XHRyLnB1c2goIG4gKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByO1xyXG5cdH1cclxufSk7XHJcblxyXG4vLyBJbXBsZW1lbnQgdGhlIGlkZW50aWNhbCBmdW5jdGlvbmFsaXR5IGZvciBmaWx0ZXIgYW5kIG5vdFxyXG5mdW5jdGlvbiB3aW5ub3coIGVsZW1lbnRzLCBxdWFsaWZpZXIsIGtlZXAgKSB7XHJcblxyXG5cdC8vIENhbid0IHBhc3MgbnVsbCBvciB1bmRlZmluZWQgdG8gaW5kZXhPZiBpbiBGaXJlZm94IDRcclxuXHQvLyBTZXQgdG8gMCB0byBza2lwIHN0cmluZyBjaGVja1xyXG5cdHF1YWxpZmllciA9IHF1YWxpZmllciB8fCAwO1xyXG5cclxuXHRpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBxdWFsaWZpZXIgKSApIHtcclxuXHRcdHJldHVybiBqUXVlcnkuZ3JlcChlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XHJcblx0XHRcdHZhciByZXRWYWwgPSAhIXF1YWxpZmllci5jYWxsKCBlbGVtLCBpLCBlbGVtICk7XHJcblx0XHRcdHJldHVybiByZXRWYWwgPT09IGtlZXA7XHJcblx0XHR9KTtcclxuXHJcblx0fSBlbHNlIGlmICggcXVhbGlmaWVyLm5vZGVUeXBlICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSwgaSApIHtcclxuXHRcdFx0cmV0dXJuICggZWxlbSA9PT0gcXVhbGlmaWVyICkgPT09IGtlZXA7XHJcblx0XHR9KTtcclxuXHJcblx0fSBlbHNlIGlmICggdHlwZW9mIHF1YWxpZmllciA9PT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdHZhciBmaWx0ZXJlZCA9IGpRdWVyeS5ncmVwKGVsZW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0cmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7XHJcblx0XHR9KTtcclxuXHJcblx0XHRpZiAoIGlzU2ltcGxlLnRlc3QoIHF1YWxpZmllciApICkge1xyXG5cdFx0XHRyZXR1cm4galF1ZXJ5LmZpbHRlcihxdWFsaWZpZXIsIGZpbHRlcmVkLCAha2VlcCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRxdWFsaWZpZXIgPSBqUXVlcnkuZmlsdGVyKCBxdWFsaWZpZXIsIGZpbHRlcmVkICk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4galF1ZXJ5LmdyZXAoZWxlbWVudHMsIGZ1bmN0aW9uKCBlbGVtLCBpICkge1xyXG5cdFx0cmV0dXJuICggalF1ZXJ5LmluQXJyYXkoIGVsZW0sIHF1YWxpZmllciApID49IDAgKSA9PT0ga2VlcDtcclxuXHR9KTtcclxufVxyXG5mdW5jdGlvbiBjcmVhdGVTYWZlRnJhZ21lbnQoIGRvY3VtZW50ICkge1xyXG5cdHZhciBsaXN0ID0gbm9kZU5hbWVzLnNwbGl0KCBcInxcIiApLFxyXG5cdHNhZmVGcmFnID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO1xyXG5cclxuXHRpZiAoIHNhZmVGcmFnLmNyZWF0ZUVsZW1lbnQgKSB7XHJcblx0XHR3aGlsZSAoIGxpc3QubGVuZ3RoICkge1xyXG5cdFx0XHRzYWZlRnJhZy5jcmVhdGVFbGVtZW50KFxyXG5cdFx0XHRcdGxpc3QucG9wKClcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHR9XHJcblx0cmV0dXJuIHNhZmVGcmFnO1xyXG59XHJcblxyXG52YXIgbm9kZU5hbWVzID0gXCJhYmJyfGFydGljbGV8YXNpZGV8YXVkaW98YmRpfGNhbnZhc3xkYXRhfGRhdGFsaXN0fGRldGFpbHN8ZmlnY2FwdGlvbnxmaWd1cmV8Zm9vdGVyfFwiICtcclxuXHRcdFwiaGVhZGVyfGhncm91cHxtYXJrfG1ldGVyfG5hdnxvdXRwdXR8cHJvZ3Jlc3N8c2VjdGlvbnxzdW1tYXJ5fHRpbWV8dmlkZW9cIixcclxuXHRyaW5saW5lalF1ZXJ5ID0gLyBqUXVlcnlcXGQrPVwiKD86bnVsbHxcXGQrKVwiL2csXHJcblx0cmxlYWRpbmdXaGl0ZXNwYWNlID0gL15cXHMrLyxcclxuXHRyeGh0bWxUYWcgPSAvPCg/IWFyZWF8YnJ8Y29sfGVtYmVkfGhyfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW0pKChbXFx3Ol0rKVtePl0qKVxcLz4vZ2ksXHJcblx0cnRhZ05hbWUgPSAvPChbXFx3Ol0rKS8sXHJcblx0cnRib2R5ID0gLzx0Ym9keS9pLFxyXG5cdHJodG1sID0gLzx8JiM/XFx3KzsvLFxyXG5cdHJub0lubmVyaHRtbCA9IC88KD86c2NyaXB0fHN0eWxlfGxpbmspL2ksXHJcblx0cm5vY2FjaGUgPSAvPCg/OnNjcmlwdHxvYmplY3R8ZW1iZWR8b3B0aW9ufHN0eWxlKS9pLFxyXG5cdHJub3NoaW1jYWNoZSA9IG5ldyBSZWdFeHAoXCI8KD86XCIgKyBub2RlTmFtZXMgKyBcIilbXFxcXHMvPl1cIiwgXCJpXCIpLFxyXG5cdHJjaGVja2FibGVUeXBlID0gL14oPzpjaGVja2JveHxyYWRpbykkLyxcclxuXHQvLyBjaGVja2VkPVwiY2hlY2tlZFwiIG9yIGNoZWNrZWRcclxuXHRyY2hlY2tlZCA9IC9jaGVja2VkXFxzKig/OltePV18PVxccyouY2hlY2tlZC4pL2ksXHJcblx0cnNjcmlwdFR5cGUgPSAvXFwvKGphdmF8ZWNtYSlzY3JpcHQvaSxcclxuXHRyY2xlYW5TY3JpcHQgPSAvXlxccyo8ISg/OlxcW0NEQVRBXFxbfFxcLVxcLSl8W1xcXVxcLV17Mn0+XFxzKiQvZyxcclxuXHR3cmFwTWFwID0ge1xyXG5cdFx0b3B0aW9uOiBbIDEsIFwiPHNlbGVjdCBtdWx0aXBsZT0nbXVsdGlwbGUnPlwiLCBcIjwvc2VsZWN0PlwiIF0sXHJcblx0XHRsZWdlbmQ6IFsgMSwgXCI8ZmllbGRzZXQ+XCIsIFwiPC9maWVsZHNldD5cIiBdLFxyXG5cdFx0dGhlYWQ6IFsgMSwgXCI8dGFibGU+XCIsIFwiPC90YWJsZT5cIiBdLFxyXG5cdFx0dHI6IFsgMiwgXCI8dGFibGU+PHRib2R5PlwiLCBcIjwvdGJvZHk+PC90YWJsZT5cIiBdLFxyXG5cdFx0dGQ6IFsgMywgXCI8dGFibGU+PHRib2R5Pjx0cj5cIiwgXCI8L3RyPjwvdGJvZHk+PC90YWJsZT5cIiBdLFxyXG5cdFx0Y29sOiBbIDIsIFwiPHRhYmxlPjx0Ym9keT48L3Rib2R5Pjxjb2xncm91cD5cIiwgXCI8L2NvbGdyb3VwPjwvdGFibGU+XCIgXSxcclxuXHRcdGFyZWE6IFsgMSwgXCI8bWFwPlwiLCBcIjwvbWFwPlwiIF0sXHJcblx0XHRfZGVmYXVsdDogWyAwLCBcIlwiLCBcIlwiIF1cclxuXHR9LFxyXG5cdHNhZmVGcmFnbWVudCA9IGNyZWF0ZVNhZmVGcmFnbWVudCggZG9jdW1lbnQgKSxcclxuXHRmcmFnbWVudERpdiA9IHNhZmVGcmFnbWVudC5hcHBlbmRDaGlsZCggZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKSApO1xyXG5cclxud3JhcE1hcC5vcHRncm91cCA9IHdyYXBNYXAub3B0aW9uO1xyXG53cmFwTWFwLnRib2R5ID0gd3JhcE1hcC50Zm9vdCA9IHdyYXBNYXAuY29sZ3JvdXAgPSB3cmFwTWFwLmNhcHRpb24gPSB3cmFwTWFwLnRoZWFkO1xyXG53cmFwTWFwLnRoID0gd3JhcE1hcC50ZDtcclxuXHJcbi8vIElFNi04IGNhbid0IHNlcmlhbGl6ZSBsaW5rLCBzY3JpcHQsIHN0eWxlLCBvciBhbnkgaHRtbDUgKE5vU2NvcGUpIHRhZ3MsXHJcbi8vIHVubGVzcyB3cmFwcGVkIGluIGEgZGl2IHdpdGggbm9uLWJyZWFraW5nIGNoYXJhY3RlcnMgaW4gZnJvbnQgb2YgaXQuXHJcbmlmICggIWpRdWVyeS5zdXBwb3J0Lmh0bWxTZXJpYWxpemUgKSB7XHJcblx0d3JhcE1hcC5fZGVmYXVsdCA9IFsgMSwgXCJYPGRpdj5cIiwgXCI8L2Rpdj5cIiBdO1xyXG59XHJcblxyXG5qUXVlcnkuZm4uZXh0ZW5kKHtcclxuXHR0ZXh0OiBmdW5jdGlvbiggdmFsdWUgKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LmFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xyXG5cdFx0XHRyZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/XHJcblx0XHRcdFx0alF1ZXJ5LnRleHQoIHRoaXMgKSA6XHJcblx0XHRcdFx0dGhpcy5lbXB0eSgpLmFwcGVuZCggKCB0aGlzWzBdICYmIHRoaXNbMF0ub3duZXJEb2N1bWVudCB8fCBkb2N1bWVudCApLmNyZWF0ZVRleHROb2RlKCB2YWx1ZSApICk7XHJcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xyXG5cdH0sXHJcblxyXG5cdHdyYXBBbGw6IGZ1bmN0aW9uKCBodG1sICkge1xyXG5cdFx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggaHRtbCApICkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHtcclxuXHRcdFx0XHRqUXVlcnkodGhpcykud3JhcEFsbCggaHRtbC5jYWxsKHRoaXMsIGkpICk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggdGhpc1swXSApIHtcclxuXHRcdFx0Ly8gVGhlIGVsZW1lbnRzIHRvIHdyYXAgdGhlIHRhcmdldCBhcm91bmRcclxuXHRcdFx0dmFyIHdyYXAgPSBqUXVlcnkoIGh0bWwsIHRoaXNbMF0ub3duZXJEb2N1bWVudCApLmVxKDApLmNsb25lKHRydWUpO1xyXG5cclxuXHRcdFx0aWYgKCB0aGlzWzBdLnBhcmVudE5vZGUgKSB7XHJcblx0XHRcdFx0d3JhcC5pbnNlcnRCZWZvcmUoIHRoaXNbMF0gKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0d3JhcC5tYXAoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0dmFyIGVsZW0gPSB0aGlzO1xyXG5cclxuXHRcdFx0XHR3aGlsZSAoIGVsZW0uZmlyc3RDaGlsZCAmJiBlbGVtLmZpcnN0Q2hpbGQubm9kZVR5cGUgPT09IDEgKSB7XHJcblx0XHRcdFx0XHRlbGVtID0gZWxlbS5maXJzdENoaWxkO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmV0dXJuIGVsZW07XHJcblx0XHRcdH0pLmFwcGVuZCggdGhpcyApO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH0sXHJcblxyXG5cdHdyYXBJbm5lcjogZnVuY3Rpb24oIGh0bWwgKSB7XHJcblx0XHRpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBodG1sICkgKSB7XHJcblx0XHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oaSkge1xyXG5cdFx0XHRcdGpRdWVyeSh0aGlzKS53cmFwSW5uZXIoIGh0bWwuY2FsbCh0aGlzLCBpKSApO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHR2YXIgc2VsZiA9IGpRdWVyeSggdGhpcyApLFxyXG5cdFx0XHRcdGNvbnRlbnRzID0gc2VsZi5jb250ZW50cygpO1xyXG5cclxuXHRcdFx0aWYgKCBjb250ZW50cy5sZW5ndGggKSB7XHJcblx0XHRcdFx0Y29udGVudHMud3JhcEFsbCggaHRtbCApO1xyXG5cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRzZWxmLmFwcGVuZCggaHRtbCApO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cclxuXHR3cmFwOiBmdW5jdGlvbiggaHRtbCApIHtcclxuXHRcdHZhciBpc0Z1bmN0aW9uID0galF1ZXJ5LmlzRnVuY3Rpb24oIGh0bWwgKTtcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHtcclxuXHRcdFx0alF1ZXJ5KCB0aGlzICkud3JhcEFsbCggaXNGdW5jdGlvbiA/IGh0bWwuY2FsbCh0aGlzLCBpKSA6IGh0bWwgKTtcclxuXHRcdH0pO1xyXG5cdH0sXHJcblxyXG5cdHVud3JhcDogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5wYXJlbnQoKS5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRpZiAoICFqUXVlcnkubm9kZU5hbWUoIHRoaXMsIFwiYm9keVwiICkgKSB7XHJcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkucmVwbGFjZVdpdGgoIHRoaXMuY2hpbGROb2RlcyApO1xyXG5cdFx0XHR9XHJcblx0XHR9KS5lbmQoKTtcclxuXHR9LFxyXG5cclxuXHRhcHBlbmQ6IGZ1bmN0aW9uKCkge1xyXG5cdFx0cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCB0cnVlLCBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExICkge1xyXG5cdFx0XHRcdHRoaXMuYXBwZW5kQ2hpbGQoIGVsZW0gKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fSxcclxuXHJcblx0cHJlcGVuZDogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIHRydWUsIGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgKSB7XHJcblx0XHRcdFx0dGhpcy5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMuZmlyc3RDaGlsZCApO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9LFxyXG5cclxuXHRiZWZvcmU6IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKCAhaXNEaXNjb25uZWN0ZWQoIHRoaXNbMF0gKSApIHtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZG9tTWFuaXAoYXJndW1lbnRzLCBmYWxzZSwgZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRcdFx0dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZSggZWxlbSwgdGhpcyApO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIGFyZ3VtZW50cy5sZW5ndGggKSB7XHJcblx0XHRcdHZhciBzZXQgPSBqUXVlcnkuY2xlYW4oIGFyZ3VtZW50cyApO1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIGpRdWVyeS5tZXJnZSggc2V0LCB0aGlzICksIFwiYmVmb3JlXCIsIHRoaXMuc2VsZWN0b3IgKTtcclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHRhZnRlcjogZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAoICFpc0Rpc2Nvbm5lY3RlZCggdGhpc1swXSApICkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsIGZhbHNlLCBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdFx0XHR0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzLm5leHRTaWJsaW5nICk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCApIHtcclxuXHRcdFx0dmFyIHNldCA9IGpRdWVyeS5jbGVhbiggYXJndW1lbnRzICk7XHJcblx0XHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5Lm1lcmdlKCB0aGlzLCBzZXQgKSwgXCJhZnRlclwiLCB0aGlzLnNlbGVjdG9yICk7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0Ly8ga2VlcERhdGEgaXMgZm9yIGludGVybmFsIHVzZSBvbmx5LS1kbyBub3QgZG9jdW1lbnRcclxuXHRyZW1vdmU6IGZ1bmN0aW9uKCBzZWxlY3Rvciwga2VlcERhdGEgKSB7XHJcblx0XHR2YXIgZWxlbSxcclxuXHRcdFx0aSA9IDA7XHJcblxyXG5cdFx0Zm9yICggOyAoZWxlbSA9IHRoaXNbaV0pICE9IG51bGw7IGkrKyApIHtcclxuXHRcdFx0aWYgKCAhc2VsZWN0b3IgfHwgalF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIFsgZWxlbSBdICkubGVuZ3RoICkge1xyXG5cdFx0XHRcdGlmICggIWtlZXBEYXRhICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiKlwiKSApO1xyXG5cdFx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggWyBlbGVtIF0gKTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdGlmICggZWxlbS5wYXJlbnROb2RlICkge1xyXG5cdFx0XHRcdFx0ZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fSxcclxuXHJcblx0ZW1wdHk6IGZ1bmN0aW9uKCkge1xyXG5cdFx0dmFyIGVsZW0sXHJcblx0XHRcdGkgPSAwO1xyXG5cclxuXHRcdGZvciAoIDsgKGVsZW0gPSB0aGlzW2ldKSAhPSBudWxsOyBpKysgKSB7XHJcblx0XHRcdC8vIFJlbW92ZSBlbGVtZW50IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrc1xyXG5cdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XHJcblx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZShcIipcIikgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gUmVtb3ZlIGFueSByZW1haW5pbmcgbm9kZXNcclxuXHRcdFx0d2hpbGUgKCBlbGVtLmZpcnN0Q2hpbGQgKSB7XHJcblx0XHRcdFx0ZWxlbS5yZW1vdmVDaGlsZCggZWxlbS5maXJzdENoaWxkICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcztcclxuXHR9LFxyXG5cclxuXHRjbG9uZTogZnVuY3Rpb24oIGRhdGFBbmRFdmVudHMsIGRlZXBEYXRhQW5kRXZlbnRzICkge1xyXG5cdFx0ZGF0YUFuZEV2ZW50cyA9IGRhdGFBbmRFdmVudHMgPT0gbnVsbCA/IGZhbHNlIDogZGF0YUFuZEV2ZW50cztcclxuXHRcdGRlZXBEYXRhQW5kRXZlbnRzID0gZGVlcERhdGFBbmRFdmVudHMgPT0gbnVsbCA/IGRhdGFBbmRFdmVudHMgOiBkZWVwRGF0YUFuZEV2ZW50cztcclxuXHJcblx0XHRyZXR1cm4gdGhpcy5tYXAoIGZ1bmN0aW9uICgpIHtcclxuXHRcdFx0cmV0dXJuIGpRdWVyeS5jbG9uZSggdGhpcywgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKTtcclxuXHRcdH0pO1xyXG5cdH0sXHJcblxyXG5cdGh0bWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcclxuXHRcdHJldHVybiBqUXVlcnkuYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XHJcblx0XHRcdHZhciBlbGVtID0gdGhpc1swXSB8fCB7fSxcclxuXHRcdFx0XHRpID0gMCxcclxuXHRcdFx0XHRsID0gdGhpcy5sZW5ndGg7XHJcblxyXG5cdFx0XHRpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdFx0cmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDEgP1xyXG5cdFx0XHRcdFx0ZWxlbS5pbm5lckhUTUwucmVwbGFjZSggcmlubGluZWpRdWVyeSwgXCJcIiApIDpcclxuXHRcdFx0XHRcdHVuZGVmaW5lZDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gU2VlIGlmIHdlIGNhbiB0YWtlIGEgc2hvcnRjdXQgYW5kIGp1c3QgdXNlIGlubmVySFRNTFxyXG5cdFx0XHRpZiAoIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiAhcm5vSW5uZXJodG1sLnRlc3QoIHZhbHVlICkgJiZcclxuXHRcdFx0XHQoIGpRdWVyeS5zdXBwb3J0Lmh0bWxTZXJpYWxpemUgfHwgIXJub3NoaW1jYWNoZS50ZXN0KCB2YWx1ZSApICApICYmXHJcblx0XHRcdFx0KCBqUXVlcnkuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSB8fCAhcmxlYWRpbmdXaGl0ZXNwYWNlLnRlc3QoIHZhbHVlICkgKSAmJlxyXG5cdFx0XHRcdCF3cmFwTWFwWyAoIHJ0YWdOYW1lLmV4ZWMoIHZhbHVlICkgfHwgW1wiXCIsIFwiXCJdIClbMV0udG9Mb3dlckNhc2UoKSBdICkge1xyXG5cclxuXHRcdFx0XHR2YWx1ZSA9IHZhbHVlLnJlcGxhY2UoIHJ4aHRtbFRhZywgXCI8JDE+PC8kMj5cIiApO1xyXG5cclxuXHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0Zm9yICg7IGkgPCBsOyBpKysgKSB7XHJcblx0XHRcdFx0XHRcdC8vIFJlbW92ZSBlbGVtZW50IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrc1xyXG5cdFx0XHRcdFx0XHRlbGVtID0gdGhpc1tpXSB8fCB7fTtcclxuXHRcdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xyXG5cdFx0XHRcdFx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIFwiKlwiICkgKTtcclxuXHRcdFx0XHRcdFx0XHRlbGVtLmlubmVySFRNTCA9IHZhbHVlO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0ZWxlbSA9IDA7XHJcblxyXG5cdFx0XHRcdC8vIElmIHVzaW5nIGlubmVySFRNTCB0aHJvd3MgYW4gZXhjZXB0aW9uLCB1c2UgdGhlIGZhbGxiYWNrIG1ldGhvZFxyXG5cdFx0XHRcdH0gY2F0Y2goZSkge31cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCBlbGVtICkge1xyXG5cdFx0XHRcdHRoaXMuZW1wdHkoKS5hcHBlbmQoIHZhbHVlICk7XHJcblx0XHRcdH1cclxuXHRcdH0sIG51bGwsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoICk7XHJcblx0fSxcclxuXHJcblx0cmVwbGFjZVdpdGg6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcclxuXHRcdGlmICggIWlzRGlzY29ubmVjdGVkKCB0aGlzWzBdICkgKSB7XHJcblx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBlbGVtZW50cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBET00gYmVmb3JlIHRoZXkgYXJlIGluc2VydGVkXHJcblx0XHRcdC8vIHRoaXMgY2FuIGhlbHAgZml4IHJlcGxhY2luZyBhIHBhcmVudCB3aXRoIGNoaWxkIGVsZW1lbnRzXHJcblx0XHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XHJcblx0XHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihpKSB7XHJcblx0XHRcdFx0XHR2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKSwgb2xkID0gc2VsZi5odG1sKCk7XHJcblx0XHRcdFx0XHRzZWxmLnJlcGxhY2VXaXRoKCB2YWx1ZS5jYWxsKCB0aGlzLCBpLCBvbGQgKSApO1xyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoIHR5cGVvZiB2YWx1ZSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0XHR2YWx1ZSA9IGpRdWVyeSggdmFsdWUgKS5kZXRhY2goKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpIHtcclxuXHRcdFx0XHR2YXIgbmV4dCA9IHRoaXMubmV4dFNpYmxpbmcsXHJcblx0XHRcdFx0XHRwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XHJcblxyXG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnJlbW92ZSgpO1xyXG5cclxuXHRcdFx0XHRpZiAoIG5leHQgKSB7XHJcblx0XHRcdFx0XHRqUXVlcnkobmV4dCkuYmVmb3JlKCB2YWx1ZSApO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRqUXVlcnkocGFyZW50KS5hcHBlbmQoIHZhbHVlICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5sZW5ndGggP1xyXG5cdFx0XHR0aGlzLnB1c2hTdGFjayggalF1ZXJ5KGpRdWVyeS5pc0Z1bmN0aW9uKHZhbHVlKSA/IHZhbHVlKCkgOiB2YWx1ZSksIFwicmVwbGFjZVdpdGhcIiwgdmFsdWUgKSA6XHJcblx0XHRcdHRoaXM7XHJcblx0fSxcclxuXHJcblx0ZGV0YWNoOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5yZW1vdmUoIHNlbGVjdG9yLCB0cnVlICk7XHJcblx0fSxcclxuXHJcblx0ZG9tTWFuaXA6IGZ1bmN0aW9uKCBhcmdzLCB0YWJsZSwgY2FsbGJhY2sgKSB7XHJcblxyXG5cdFx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xyXG5cdFx0YXJncyA9IFtdLmNvbmNhdC5hcHBseSggW10sIGFyZ3MgKTtcclxuXHJcblx0XHR2YXIgcmVzdWx0cywgZmlyc3QsIGZyYWdtZW50LCBpTm9DbG9uZSxcclxuXHRcdFx0aSA9IDAsXHJcblx0XHRcdHZhbHVlID0gYXJnc1swXSxcclxuXHRcdFx0c2NyaXB0cyA9IFtdLFxyXG5cdFx0XHRsID0gdGhpcy5sZW5ndGg7XHJcblxyXG5cdFx0Ly8gV2UgY2FuJ3QgY2xvbmVOb2RlIGZyYWdtZW50cyB0aGF0IGNvbnRhaW4gY2hlY2tlZCwgaW4gV2ViS2l0XHJcblx0XHRpZiAoICFqUXVlcnkuc3VwcG9ydC5jaGVja0Nsb25lICYmIGwgPiAxICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJiByY2hlY2tlZC50ZXN0KCB2YWx1ZSApICkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGpRdWVyeSh0aGlzKS5kb21NYW5pcCggYXJncywgdGFibGUsIGNhbGxiYWNrICk7XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24odmFsdWUpICkge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGkpIHtcclxuXHRcdFx0XHR2YXIgc2VsZiA9IGpRdWVyeSh0aGlzKTtcclxuXHRcdFx0XHRhcmdzWzBdID0gdmFsdWUuY2FsbCggdGhpcywgaSwgdGFibGUgPyBzZWxmLmh0bWwoKSA6IHVuZGVmaW5lZCApO1xyXG5cdFx0XHRcdHNlbGYuZG9tTWFuaXAoIGFyZ3MsIHRhYmxlLCBjYWxsYmFjayApO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIHRoaXNbMF0gKSB7XHJcblx0XHRcdHJlc3VsdHMgPSBqUXVlcnkuYnVpbGRGcmFnbWVudCggYXJncywgdGhpcywgc2NyaXB0cyApO1xyXG5cdFx0XHRmcmFnbWVudCA9IHJlc3VsdHMuZnJhZ21lbnQ7XHJcblx0XHRcdGZpcnN0ID0gZnJhZ21lbnQuZmlyc3RDaGlsZDtcclxuXHJcblx0XHRcdGlmICggZnJhZ21lbnQuY2hpbGROb2Rlcy5sZW5ndGggPT09IDEgKSB7XHJcblx0XHRcdFx0ZnJhZ21lbnQgPSBmaXJzdDtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCBmaXJzdCApIHtcclxuXHRcdFx0XHR0YWJsZSA9IHRhYmxlICYmIGpRdWVyeS5ub2RlTmFtZSggZmlyc3QsIFwidHJcIiApO1xyXG5cclxuXHRcdFx0XHQvLyBVc2UgdGhlIG9yaWdpbmFsIGZyYWdtZW50IGZvciB0aGUgbGFzdCBpdGVtIGluc3RlYWQgb2YgdGhlIGZpcnN0IGJlY2F1c2UgaXQgY2FuIGVuZCB1cFxyXG5cdFx0XHRcdC8vIGJlaW5nIGVtcHRpZWQgaW5jb3JyZWN0bHkgaW4gY2VydGFpbiBzaXR1YXRpb25zICgjODA3MCkuXHJcblx0XHRcdFx0Ly8gRnJhZ21lbnRzIGZyb20gdGhlIGZyYWdtZW50IGNhY2hlIG11c3QgYWx3YXlzIGJlIGNsb25lZCBhbmQgbmV2ZXIgdXNlZCBpbiBwbGFjZS5cclxuXHRcdFx0XHRmb3IgKCBpTm9DbG9uZSA9IHJlc3VsdHMuY2FjaGVhYmxlIHx8IGwgLSAxOyBpIDwgbDsgaSsrICkge1xyXG5cdFx0XHRcdFx0Y2FsbGJhY2suY2FsbChcclxuXHRcdFx0XHRcdFx0dGFibGUgJiYgalF1ZXJ5Lm5vZGVOYW1lKCB0aGlzW2ldLCBcInRhYmxlXCIgKSA/XHJcblx0XHRcdFx0XHRcdFx0ZmluZE9yQXBwZW5kKCB0aGlzW2ldLCBcInRib2R5XCIgKSA6XHJcblx0XHRcdFx0XHRcdFx0dGhpc1tpXSxcclxuXHRcdFx0XHRcdFx0aSA9PT0gaU5vQ2xvbmUgP1xyXG5cdFx0XHRcdFx0XHRcdGZyYWdtZW50IDpcclxuXHRcdFx0XHRcdFx0XHRqUXVlcnkuY2xvbmUoIGZyYWdtZW50LCB0cnVlLCB0cnVlIClcclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBGaXggIzExODA5OiBBdm9pZCBsZWFraW5nIG1lbW9yeVxyXG5cdFx0XHRmcmFnbWVudCA9IGZpcnN0ID0gbnVsbDtcclxuXHJcblx0XHRcdGlmICggc2NyaXB0cy5sZW5ndGggKSB7XHJcblx0XHRcdFx0alF1ZXJ5LmVhY2goIHNjcmlwdHMsIGZ1bmN0aW9uKCBpLCBlbGVtICkge1xyXG5cdFx0XHRcdFx0aWYgKCBlbGVtLnNyYyApIHtcclxuXHRcdFx0XHRcdFx0aWYgKCBqUXVlcnkuYWpheCApIHtcclxuXHRcdFx0XHRcdFx0XHRqUXVlcnkuYWpheCh7XHJcblx0XHRcdFx0XHRcdFx0XHR1cmw6IGVsZW0uc3JjLFxyXG5cdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJHRVRcIixcclxuXHRcdFx0XHRcdFx0XHRcdGRhdGFUeXBlOiBcInNjcmlwdFwiLFxyXG5cdFx0XHRcdFx0XHRcdFx0YXN5bmM6IGZhbHNlLFxyXG5cdFx0XHRcdFx0XHRcdFx0Z2xvYmFsOiBmYWxzZSxcclxuXHRcdFx0XHRcdFx0XHRcdFwidGhyb3dzXCI6IHRydWVcclxuXHRcdFx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0XHRqUXVlcnkuZXJyb3IoXCJubyBhamF4XCIpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggKCBlbGVtLnRleHQgfHwgZWxlbS50ZXh0Q29udGVudCB8fCBlbGVtLmlubmVySFRNTCB8fCBcIlwiICkucmVwbGFjZSggcmNsZWFuU2NyaXB0LCBcIlwiICkgKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0XHRcdFx0ZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcztcclxuXHR9XHJcbn0pO1xyXG5cclxuZnVuY3Rpb24gZmluZE9yQXBwZW5kKCBlbGVtLCB0YWcgKSB7XHJcblx0cmV0dXJuIGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRhZyApWzBdIHx8IGVsZW0uYXBwZW5kQ2hpbGQoIGVsZW0ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCB0YWcgKSApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjbG9uZUNvcHlFdmVudCggc3JjLCBkZXN0ICkge1xyXG5cclxuXHRpZiAoIGRlc3Qubm9kZVR5cGUgIT09IDEgfHwgIWpRdWVyeS5oYXNEYXRhKCBzcmMgKSApIHtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblxyXG5cdHZhciB0eXBlLCBpLCBsLFxyXG5cdFx0b2xkRGF0YSA9IGpRdWVyeS5fZGF0YSggc3JjICksXHJcblx0XHRjdXJEYXRhID0galF1ZXJ5Ll9kYXRhKCBkZXN0LCBvbGREYXRhICksXHJcblx0XHRldmVudHMgPSBvbGREYXRhLmV2ZW50cztcclxuXHJcblx0aWYgKCBldmVudHMgKSB7XHJcblx0XHRkZWxldGUgY3VyRGF0YS5oYW5kbGU7XHJcblx0XHRjdXJEYXRhLmV2ZW50cyA9IHt9O1xyXG5cclxuXHRcdGZvciAoIHR5cGUgaW4gZXZlbnRzICkge1xyXG5cdFx0XHRmb3IgKCBpID0gMCwgbCA9IGV2ZW50c1sgdHlwZSBdLmxlbmd0aDsgaSA8IGw7IGkrKyApIHtcclxuXHRcdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCBkZXN0LCB0eXBlLCBldmVudHNbIHR5cGUgXVsgaSBdICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIG1ha2UgdGhlIGNsb25lZCBwdWJsaWMgZGF0YSBvYmplY3QgYSBjb3B5IGZyb20gdGhlIG9yaWdpbmFsXHJcblx0aWYgKCBjdXJEYXRhLmRhdGEgKSB7XHJcblx0XHRjdXJEYXRhLmRhdGEgPSBqUXVlcnkuZXh0ZW5kKCB7fSwgY3VyRGF0YS5kYXRhICk7XHJcblx0fVxyXG59XHJcblxyXG5mdW5jdGlvbiBjbG9uZUZpeEF0dHJpYnV0ZXMoIHNyYywgZGVzdCApIHtcclxuXHR2YXIgbm9kZU5hbWU7XHJcblxyXG5cdC8vIFdlIGRvIG5vdCBuZWVkIHRvIGRvIGFueXRoaW5nIGZvciBub24tRWxlbWVudHNcclxuXHRpZiAoIGRlc3Qubm9kZVR5cGUgIT09IDEgKSB7XHJcblx0XHRyZXR1cm47XHJcblx0fVxyXG5cclxuXHQvLyBjbGVhckF0dHJpYnV0ZXMgcmVtb3ZlcyB0aGUgYXR0cmlidXRlcywgd2hpY2ggd2UgZG9uJ3Qgd2FudCxcclxuXHQvLyBidXQgYWxzbyByZW1vdmVzIHRoZSBhdHRhY2hFdmVudCBldmVudHMsIHdoaWNoIHdlICpkbyogd2FudFxyXG5cdGlmICggZGVzdC5jbGVhckF0dHJpYnV0ZXMgKSB7XHJcblx0XHRkZXN0LmNsZWFyQXR0cmlidXRlcygpO1xyXG5cdH1cclxuXHJcblx0Ly8gbWVyZ2VBdHRyaWJ1dGVzLCBpbiBjb250cmFzdCwgb25seSBtZXJnZXMgYmFjayBvbiB0aGVcclxuXHQvLyBvcmlnaW5hbCBhdHRyaWJ1dGVzLCBub3QgdGhlIGV2ZW50c1xyXG5cdGlmICggZGVzdC5tZXJnZUF0dHJpYnV0ZXMgKSB7XHJcblx0XHRkZXN0Lm1lcmdlQXR0cmlidXRlcyggc3JjICk7XHJcblx0fVxyXG5cclxuXHRub2RlTmFtZSA9IGRlc3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcclxuXHJcblx0aWYgKCBub2RlTmFtZSA9PT0gXCJvYmplY3RcIiApIHtcclxuXHRcdC8vIElFNi0xMCBpbXByb3Blcmx5IGNsb25lcyBjaGlsZHJlbiBvZiBvYmplY3QgZWxlbWVudHMgdXNpbmcgY2xhc3NpZC5cclxuXHRcdC8vIElFMTAgdGhyb3dzIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yIGlmIHBhcmVudCBpcyBudWxsLCAjMTIxMzIuXHJcblx0XHRpZiAoIGRlc3QucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0ZGVzdC5vdXRlckhUTUwgPSBzcmMub3V0ZXJIVE1MO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFRoaXMgcGF0aCBhcHBlYXJzIHVuYXZvaWRhYmxlIGZvciBJRTkuIFdoZW4gY2xvbmluZyBhbiBvYmplY3RcclxuXHRcdC8vIGVsZW1lbnQgaW4gSUU5LCB0aGUgb3V0ZXJIVE1MIHN0cmF0ZWd5IGFib3ZlIGlzIG5vdCBzdWZmaWNpZW50LlxyXG5cdFx0Ly8gSWYgdGhlIHNyYyBoYXMgaW5uZXJIVE1MIGFuZCB0aGUgZGVzdGluYXRpb24gZG9lcyBub3QsXHJcblx0XHQvLyBjb3B5IHRoZSBzcmMuaW5uZXJIVE1MIGludG8gdGhlIGRlc3QuaW5uZXJIVE1MLiAjMTAzMjRcclxuXHRcdGlmICggalF1ZXJ5LnN1cHBvcnQuaHRtbDVDbG9uZSAmJiAoc3JjLmlubmVySFRNTCAmJiAhalF1ZXJ5LnRyaW0oZGVzdC5pbm5lckhUTUwpKSApIHtcclxuXHRcdFx0ZGVzdC5pbm5lckhUTUwgPSBzcmMuaW5uZXJIVE1MO1xyXG5cdFx0fVxyXG5cclxuXHR9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmIHJjaGVja2FibGVUeXBlLnRlc3QoIHNyYy50eXBlICkgKSB7XHJcblx0XHQvLyBJRTYtOCBmYWlscyB0byBwZXJzaXN0IHRoZSBjaGVja2VkIHN0YXRlIG9mIGEgY2xvbmVkIGNoZWNrYm94XHJcblx0XHQvLyBvciByYWRpbyBidXR0b24uIFdvcnNlLCBJRTYtNyBmYWlsIHRvIGdpdmUgdGhlIGNsb25lZCBlbGVtZW50XHJcblx0XHQvLyBhIGNoZWNrZWQgYXBwZWFyYW5jZSBpZiB0aGUgZGVmYXVsdENoZWNrZWQgdmFsdWUgaXNuJ3QgYWxzbyBzZXRcclxuXHJcblx0XHRkZXN0LmRlZmF1bHRDaGVja2VkID0gZGVzdC5jaGVja2VkID0gc3JjLmNoZWNrZWQ7XHJcblxyXG5cdFx0Ly8gSUU2LTcgZ2V0IGNvbmZ1c2VkIGFuZCBlbmQgdXAgc2V0dGluZyB0aGUgdmFsdWUgb2YgYSBjbG9uZWRcclxuXHRcdC8vIGNoZWNrYm94L3JhZGlvIGJ1dHRvbiB0byBhbiBlbXB0eSBzdHJpbmcgaW5zdGVhZCBvZiBcIm9uXCJcclxuXHRcdGlmICggZGVzdC52YWx1ZSAhPT0gc3JjLnZhbHVlICkge1xyXG5cdFx0XHRkZXN0LnZhbHVlID0gc3JjLnZhbHVlO1xyXG5cdFx0fVxyXG5cclxuXHQvLyBJRTYtOCBmYWlscyB0byByZXR1cm4gdGhlIHNlbGVjdGVkIG9wdGlvbiB0byB0aGUgZGVmYXVsdCBzZWxlY3RlZFxyXG5cdC8vIHN0YXRlIHdoZW4gY2xvbmluZyBvcHRpb25zXHJcblx0fSBlbHNlIGlmICggbm9kZU5hbWUgPT09IFwib3B0aW9uXCIgKSB7XHJcblx0XHRkZXN0LnNlbGVjdGVkID0gc3JjLmRlZmF1bHRTZWxlY3RlZDtcclxuXHJcblx0Ly8gSUU2LTggZmFpbHMgdG8gc2V0IHRoZSBkZWZhdWx0VmFsdWUgdG8gdGhlIGNvcnJlY3QgdmFsdWUgd2hlblxyXG5cdC8vIGNsb25pbmcgb3RoZXIgdHlwZXMgb2YgaW5wdXQgZmllbGRzXHJcblx0fSBlbHNlIGlmICggbm9kZU5hbWUgPT09IFwiaW5wdXRcIiB8fCBub2RlTmFtZSA9PT0gXCJ0ZXh0YXJlYVwiICkge1xyXG5cdFx0ZGVzdC5kZWZhdWx0VmFsdWUgPSBzcmMuZGVmYXVsdFZhbHVlO1xyXG5cclxuXHQvLyBJRSBibGFua3MgY29udGVudHMgd2hlbiBjbG9uaW5nIHNjcmlwdHNcclxuXHR9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gXCJzY3JpcHRcIiAmJiBkZXN0LnRleHQgIT09IHNyYy50ZXh0ICkge1xyXG5cdFx0ZGVzdC50ZXh0ID0gc3JjLnRleHQ7XHJcblx0fVxyXG5cclxuXHQvLyBFdmVudCBkYXRhIGdldHMgcmVmZXJlbmNlZCBpbnN0ZWFkIG9mIGNvcGllZCBpZiB0aGUgZXhwYW5kb1xyXG5cdC8vIGdldHMgY29waWVkIHRvb1xyXG5cdGRlc3QucmVtb3ZlQXR0cmlidXRlKCBqUXVlcnkuZXhwYW5kbyApO1xyXG59XHJcblxyXG5qUXVlcnkuYnVpbGRGcmFnbWVudCA9IGZ1bmN0aW9uKCBhcmdzLCBjb250ZXh0LCBzY3JpcHRzICkge1xyXG5cdHZhciBmcmFnbWVudCwgY2FjaGVhYmxlLCBjYWNoZWhpdCxcclxuXHRcdGZpcnN0ID0gYXJnc1sgMCBdO1xyXG5cclxuXHQvLyBTZXQgY29udGV4dCBmcm9tIHdoYXQgbWF5IGNvbWUgaW4gYXMgdW5kZWZpbmVkIG9yIGEgalF1ZXJ5IGNvbGxlY3Rpb24gb3IgYSBub2RlXHJcblx0Ly8gVXBkYXRlZCB0byBmaXggIzEyMjY2IHdoZXJlIGFjY2Vzc2luZyBjb250ZXh0WzBdIGNvdWxkIHRocm93IGFuIGV4Y2VwdGlvbiBpbiBJRTkvMTAgJlxyXG5cdC8vIGFsc28gZG91YmxlcyBhcyBmaXggZm9yICM4OTUwIHdoZXJlIHBsYWluIG9iamVjdHMgY2F1c2VkIGNyZWF0ZURvY3VtZW50RnJhZ21lbnQgZXhjZXB0aW9uXHJcblx0Y29udGV4dCA9IGNvbnRleHQgfHwgZG9jdW1lbnQ7XHJcblx0Y29udGV4dCA9ICFjb250ZXh0Lm5vZGVUeXBlICYmIGNvbnRleHRbMF0gfHwgY29udGV4dDtcclxuXHRjb250ZXh0ID0gY29udGV4dC5vd25lckRvY3VtZW50IHx8IGNvbnRleHQ7XHJcblxyXG5cdC8vIE9ubHkgY2FjaGUgXCJzbWFsbFwiICgxLzIgS0IpIEhUTUwgc3RyaW5ncyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlIG1haW4gZG9jdW1lbnRcclxuXHQvLyBDbG9uaW5nIG9wdGlvbnMgbG9zZXMgdGhlIHNlbGVjdGVkIHN0YXRlLCBzbyBkb24ndCBjYWNoZSB0aGVtXHJcblx0Ly8gSUUgNiBkb2Vzbid0IGxpa2UgaXQgd2hlbiB5b3UgcHV0IDxvYmplY3Q+IG9yIDxlbWJlZD4gZWxlbWVudHMgaW4gYSBmcmFnbWVudFxyXG5cdC8vIEFsc28sIFdlYktpdCBkb2VzIG5vdCBjbG9uZSAnY2hlY2tlZCcgYXR0cmlidXRlcyBvbiBjbG9uZU5vZGUsIHNvIGRvbid0IGNhY2hlXHJcblx0Ly8gTGFzdGx5LCBJRTYsNyw4IHdpbGwgbm90IGNvcnJlY3RseSByZXVzZSBjYWNoZWQgZnJhZ21lbnRzIHRoYXQgd2VyZSBjcmVhdGVkIGZyb20gdW5rbm93biBlbGVtcyAjMTA1MDFcclxuXHRpZiAoIGFyZ3MubGVuZ3RoID09PSAxICYmIHR5cGVvZiBmaXJzdCA9PT0gXCJzdHJpbmdcIiAmJiBmaXJzdC5sZW5ndGggPCA1MTIgJiYgY29udGV4dCA9PT0gZG9jdW1lbnQgJiZcclxuXHRcdGZpcnN0LmNoYXJBdCgwKSA9PT0gXCI8XCIgJiYgIXJub2NhY2hlLnRlc3QoIGZpcnN0ICkgJiZcclxuXHRcdChqUXVlcnkuc3VwcG9ydC5jaGVja0Nsb25lIHx8ICFyY2hlY2tlZC50ZXN0KCBmaXJzdCApKSAmJlxyXG5cdFx0KGpRdWVyeS5zdXBwb3J0Lmh0bWw1Q2xvbmUgfHwgIXJub3NoaW1jYWNoZS50ZXN0KCBmaXJzdCApKSApIHtcclxuXHJcblx0XHQvLyBNYXJrIGNhY2hlYWJsZSBhbmQgbG9vayBmb3IgYSBoaXRcclxuXHRcdGNhY2hlYWJsZSA9IHRydWU7XHJcblx0XHRmcmFnbWVudCA9IGpRdWVyeS5mcmFnbWVudHNbIGZpcnN0IF07XHJcblx0XHRjYWNoZWhpdCA9IGZyYWdtZW50ICE9PSB1bmRlZmluZWQ7XHJcblx0fVxyXG5cclxuXHRpZiAoICFmcmFnbWVudCApIHtcclxuXHRcdGZyYWdtZW50ID0gY29udGV4dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XHJcblx0XHRqUXVlcnkuY2xlYW4oIGFyZ3MsIGNvbnRleHQsIGZyYWdtZW50LCBzY3JpcHRzICk7XHJcblxyXG5cdFx0Ly8gVXBkYXRlIHRoZSBjYWNoZSwgYnV0IG9ubHkgc3RvcmUgZmFsc2VcclxuXHRcdC8vIHVubGVzcyB0aGlzIGlzIGEgc2Vjb25kIHBhcnNpbmcgb2YgdGhlIHNhbWUgY29udGVudFxyXG5cdFx0aWYgKCBjYWNoZWFibGUgKSB7XHJcblx0XHRcdGpRdWVyeS5mcmFnbWVudHNbIGZpcnN0IF0gPSBjYWNoZWhpdCAmJiBmcmFnbWVudDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiB7IGZyYWdtZW50OiBmcmFnbWVudCwgY2FjaGVhYmxlOiBjYWNoZWFibGUgfTtcclxufTtcclxuXHJcbmpRdWVyeS5mcmFnbWVudHMgPSB7fTtcclxuXHJcbmpRdWVyeS5lYWNoKHtcclxuXHRhcHBlbmRUbzogXCJhcHBlbmRcIixcclxuXHRwcmVwZW5kVG86IFwicHJlcGVuZFwiLFxyXG5cdGluc2VydEJlZm9yZTogXCJiZWZvcmVcIixcclxuXHRpbnNlcnRBZnRlcjogXCJhZnRlclwiLFxyXG5cdHJlcGxhY2VBbGw6IFwicmVwbGFjZVdpdGhcIlxyXG59LCBmdW5jdGlvbiggbmFtZSwgb3JpZ2luYWwgKSB7XHJcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XHJcblx0XHR2YXIgZWxlbXMsXHJcblx0XHRcdGkgPSAwLFxyXG5cdFx0XHRyZXQgPSBbXSxcclxuXHRcdFx0aW5zZXJ0ID0galF1ZXJ5KCBzZWxlY3RvciApLFxyXG5cdFx0XHRsID0gaW5zZXJ0Lmxlbmd0aCxcclxuXHRcdFx0cGFyZW50ID0gdGhpcy5sZW5ndGggPT09IDEgJiYgdGhpc1swXS5wYXJlbnROb2RlO1xyXG5cclxuXHRcdGlmICggKHBhcmVudCA9PSBudWxsIHx8IHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgPT09IDExICYmIHBhcmVudC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMSkgJiYgbCA9PT0gMSApIHtcclxuXHRcdFx0aW5zZXJ0WyBvcmlnaW5hbCBdKCB0aGlzWzBdICk7XHJcblx0XHRcdHJldHVybiB0aGlzO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xyXG5cdFx0XHRcdGVsZW1zID0gKCBpID4gMCA/IHRoaXMuY2xvbmUodHJ1ZSkgOiB0aGlzICkuZ2V0KCk7XHJcblx0XHRcdFx0alF1ZXJ5KCBpbnNlcnRbaV0gKVsgb3JpZ2luYWwgXSggZWxlbXMgKTtcclxuXHRcdFx0XHRyZXQgPSByZXQuY29uY2F0KCBlbGVtcyApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCwgbmFtZSwgaW5zZXJ0LnNlbGVjdG9yICk7XHJcblx0XHR9XHJcblx0fTtcclxufSk7XHJcblxyXG5mdW5jdGlvbiBnZXRBbGwoIGVsZW0gKSB7XHJcblx0aWYgKCB0eXBlb2YgZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcclxuXHRcdHJldHVybiBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcIipcIiApO1xyXG5cclxuXHR9IGVsc2UgaWYgKCB0eXBlb2YgZWxlbS5xdWVyeVNlbGVjdG9yQWxsICE9PSBcInVuZGVmaW5lZFwiICkge1xyXG5cdFx0cmV0dXJuIGVsZW0ucXVlcnlTZWxlY3RvckFsbCggXCIqXCIgKTtcclxuXHJcblx0fSBlbHNlIHtcclxuXHRcdHJldHVybiBbXTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIFVzZWQgaW4gY2xlYW4sIGZpeGVzIHRoZSBkZWZhdWx0Q2hlY2tlZCBwcm9wZXJ0eVxyXG5mdW5jdGlvbiBmaXhEZWZhdWx0Q2hlY2tlZCggZWxlbSApIHtcclxuXHRpZiAoIHJjaGVja2FibGVUeXBlLnRlc3QoIGVsZW0udHlwZSApICkge1xyXG5cdFx0ZWxlbS5kZWZhdWx0Q2hlY2tlZCA9IGVsZW0uY2hlY2tlZDtcclxuXHR9XHJcbn1cclxuXHJcbmpRdWVyeS5leHRlbmQoe1xyXG5cdGNsb25lOiBmdW5jdGlvbiggZWxlbSwgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKSB7XHJcblx0XHR2YXIgc3JjRWxlbWVudHMsXHJcblx0XHRcdGRlc3RFbGVtZW50cyxcclxuXHRcdFx0aSxcclxuXHRcdFx0Y2xvbmU7XHJcblxyXG5cdFx0aWYgKCBqUXVlcnkuc3VwcG9ydC5odG1sNUNsb25lIHx8IGpRdWVyeS5pc1hNTERvYyhlbGVtKSB8fCAhcm5vc2hpbWNhY2hlLnRlc3QoIFwiPFwiICsgZWxlbS5ub2RlTmFtZSArIFwiPlwiICkgKSB7XHJcblx0XHRcdGNsb25lID0gZWxlbS5jbG9uZU5vZGUoIHRydWUgKTtcclxuXHJcblx0XHQvLyBJRTw9OCBkb2VzIG5vdCBwcm9wZXJseSBjbG9uZSBkZXRhY2hlZCwgdW5rbm93biBlbGVtZW50IG5vZGVzXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRmcmFnbWVudERpdi5pbm5lckhUTUwgPSBlbGVtLm91dGVySFRNTDtcclxuXHRcdFx0ZnJhZ21lbnREaXYucmVtb3ZlQ2hpbGQoIGNsb25lID0gZnJhZ21lbnREaXYuZmlyc3RDaGlsZCApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggKCFqUXVlcnkuc3VwcG9ydC5ub0Nsb25lRXZlbnQgfHwgIWpRdWVyeS5zdXBwb3J0Lm5vQ2xvbmVDaGVja2VkKSAmJlxyXG5cdFx0XHRcdChlbGVtLm5vZGVUeXBlID09PSAxIHx8IGVsZW0ubm9kZVR5cGUgPT09IDExKSAmJiAhalF1ZXJ5LmlzWE1MRG9jKGVsZW0pICkge1xyXG5cdFx0XHQvLyBJRSBjb3BpZXMgZXZlbnRzIGJvdW5kIHZpYSBhdHRhY2hFdmVudCB3aGVuIHVzaW5nIGNsb25lTm9kZS5cclxuXHRcdFx0Ly8gQ2FsbGluZyBkZXRhY2hFdmVudCBvbiB0aGUgY2xvbmUgd2lsbCBhbHNvIHJlbW92ZSB0aGUgZXZlbnRzXHJcblx0XHRcdC8vIGZyb20gdGhlIG9yaWdpbmFsLiBJbiBvcmRlciB0byBnZXQgYXJvdW5kIHRoaXMsIHdlIHVzZSBzb21lXHJcblx0XHRcdC8vIHByb3ByaWV0YXJ5IG1ldGhvZHMgdG8gY2xlYXIgdGhlIGV2ZW50cy4gVGhhbmtzIHRvIE1vb1Rvb2xzXHJcblx0XHRcdC8vIGd1eXMgZm9yIHRoaXMgaG90bmVzcy5cclxuXHJcblx0XHRcdGNsb25lRml4QXR0cmlidXRlcyggZWxlbSwgY2xvbmUgKTtcclxuXHJcblx0XHRcdC8vIFVzaW5nIFNpenpsZSBoZXJlIGlzIGNyYXp5IHNsb3csIHNvIHdlIHVzZSBnZXRFbGVtZW50c0J5VGFnTmFtZSBpbnN0ZWFkXHJcblx0XHRcdHNyY0VsZW1lbnRzID0gZ2V0QWxsKCBlbGVtICk7XHJcblx0XHRcdGRlc3RFbGVtZW50cyA9IGdldEFsbCggY2xvbmUgKTtcclxuXHJcblx0XHRcdC8vIFdlaXJkIGl0ZXJhdGlvbiBiZWNhdXNlIElFIHdpbGwgcmVwbGFjZSB0aGUgbGVuZ3RoIHByb3BlcnR5XHJcblx0XHRcdC8vIHdpdGggYW4gZWxlbWVudCBpZiB5b3UgYXJlIGNsb25pbmcgdGhlIGJvZHkgYW5kIG9uZSBvZiB0aGVcclxuXHRcdFx0Ly8gZWxlbWVudHMgb24gdGhlIHBhZ2UgaGFzIGEgbmFtZSBvciBpZCBvZiBcImxlbmd0aFwiXHJcblx0XHRcdGZvciAoIGkgPSAwOyBzcmNFbGVtZW50c1tpXTsgKytpICkge1xyXG5cdFx0XHRcdC8vIEVuc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBub2RlIGlzIG5vdCBudWxsOyBGaXhlcyAjOTU4N1xyXG5cdFx0XHRcdGlmICggZGVzdEVsZW1lbnRzW2ldICkge1xyXG5cdFx0XHRcdFx0Y2xvbmVGaXhBdHRyaWJ1dGVzKCBzcmNFbGVtZW50c1tpXSwgZGVzdEVsZW1lbnRzW2ldICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gQ29weSB0aGUgZXZlbnRzIGZyb20gdGhlIG9yaWdpbmFsIHRvIHRoZSBjbG9uZVxyXG5cdFx0aWYgKCBkYXRhQW5kRXZlbnRzICkge1xyXG5cdFx0XHRjbG9uZUNvcHlFdmVudCggZWxlbSwgY2xvbmUgKTtcclxuXHJcblx0XHRcdGlmICggZGVlcERhdGFBbmRFdmVudHMgKSB7XHJcblx0XHRcdFx0c3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTtcclxuXHRcdFx0XHRkZXN0RWxlbWVudHMgPSBnZXRBbGwoIGNsb25lICk7XHJcblxyXG5cdFx0XHRcdGZvciAoIGkgPSAwOyBzcmNFbGVtZW50c1tpXTsgKytpICkge1xyXG5cdFx0XHRcdFx0Y2xvbmVDb3B5RXZlbnQoIHNyY0VsZW1lbnRzW2ldLCBkZXN0RWxlbWVudHNbaV0gKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRzcmNFbGVtZW50cyA9IGRlc3RFbGVtZW50cyA9IG51bGw7XHJcblxyXG5cdFx0Ly8gUmV0dXJuIHRoZSBjbG9uZWQgc2V0XHJcblx0XHRyZXR1cm4gY2xvbmU7XHJcblx0fSxcclxuXHJcblx0Y2xlYW46IGZ1bmN0aW9uKCBlbGVtcywgY29udGV4dCwgZnJhZ21lbnQsIHNjcmlwdHMgKSB7XHJcblx0XHR2YXIgaSwgaiwgZWxlbSwgdGFnLCB3cmFwLCBkZXB0aCwgZGl2LCBoYXNCb2R5LCB0Ym9keSwgbGVuLCBoYW5kbGVTY3JpcHQsIGpzVGFncyxcclxuXHRcdFx0c2FmZSA9IGNvbnRleHQgPT09IGRvY3VtZW50ICYmIHNhZmVGcmFnbWVudCxcclxuXHRcdFx0cmV0ID0gW107XHJcblxyXG5cdFx0Ly8gRW5zdXJlIHRoYXQgY29udGV4dCBpcyBhIGRvY3VtZW50XHJcblx0XHRpZiAoICFjb250ZXh0IHx8IHR5cGVvZiBjb250ZXh0LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQgPT09IFwidW5kZWZpbmVkXCIgKSB7XHJcblx0XHRcdGNvbnRleHQgPSBkb2N1bWVudDtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBVc2UgdGhlIGFscmVhZHktY3JlYXRlZCBzYWZlIGZyYWdtZW50IGlmIGNvbnRleHQgcGVybWl0c1xyXG5cdFx0Zm9yICggaSA9IDA7IChlbGVtID0gZWxlbXNbaV0pICE9IG51bGw7IGkrKyApIHtcclxuXHRcdFx0aWYgKCB0eXBlb2YgZWxlbSA9PT0gXCJudW1iZXJcIiApIHtcclxuXHRcdFx0XHRlbGVtICs9IFwiXCI7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdGlmICggIWVsZW0gKSB7XHJcblx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIENvbnZlcnQgaHRtbCBzdHJpbmcgaW50byBET00gbm9kZXNcclxuXHRcdFx0aWYgKCB0eXBlb2YgZWxlbSA9PT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0XHRpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7XHJcblx0XHRcdFx0XHRlbGVtID0gY29udGV4dC5jcmVhdGVUZXh0Tm9kZSggZWxlbSApO1xyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHQvLyBFbnN1cmUgYSBzYWZlIGNvbnRhaW5lciBpbiB3aGljaCB0byByZW5kZXIgdGhlIGh0bWxcclxuXHRcdFx0XHRcdHNhZmUgPSBzYWZlIHx8IGNyZWF0ZVNhZmVGcmFnbWVudCggY29udGV4dCApO1xyXG5cdFx0XHRcdFx0ZGl2ID0gY29udGV4dC5jcmVhdGVFbGVtZW50KFwiZGl2XCIpO1xyXG5cdFx0XHRcdFx0c2FmZS5hcHBlbmRDaGlsZCggZGl2ICk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gRml4IFwiWEhUTUxcIi1zdHlsZSB0YWdzIGluIGFsbCBicm93c2Vyc1xyXG5cdFx0XHRcdFx0ZWxlbSA9IGVsZW0ucmVwbGFjZShyeGh0bWxUYWcsIFwiPCQxPjwvJDI+XCIpO1xyXG5cclxuXHRcdFx0XHRcdC8vIEdvIHRvIGh0bWwgYW5kIGJhY2ssIHRoZW4gcGVlbCBvZmYgZXh0cmEgd3JhcHBlcnNcclxuXHRcdFx0XHRcdHRhZyA9ICggcnRhZ05hbWUuZXhlYyggZWxlbSApIHx8IFtcIlwiLCBcIlwiXSApWzFdLnRvTG93ZXJDYXNlKCk7XHJcblx0XHRcdFx0XHR3cmFwID0gd3JhcE1hcFsgdGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDtcclxuXHRcdFx0XHRcdGRlcHRoID0gd3JhcFswXTtcclxuXHRcdFx0XHRcdGRpdi5pbm5lckhUTUwgPSB3cmFwWzFdICsgZWxlbSArIHdyYXBbMl07XHJcblxyXG5cdFx0XHRcdFx0Ly8gTW92ZSB0byB0aGUgcmlnaHQgZGVwdGhcclxuXHRcdFx0XHRcdHdoaWxlICggZGVwdGgtLSApIHtcclxuXHRcdFx0XHRcdFx0ZGl2ID0gZGl2Lmxhc3RDaGlsZDtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBSZW1vdmUgSUUncyBhdXRvaW5zZXJ0ZWQgPHRib2R5PiBmcm9tIHRhYmxlIGZyYWdtZW50c1xyXG5cdFx0XHRcdFx0aWYgKCAhalF1ZXJ5LnN1cHBvcnQudGJvZHkgKSB7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBTdHJpbmcgd2FzIGEgPHRhYmxlPiwgKm1heSogaGF2ZSBzcHVyaW91cyA8dGJvZHk+XHJcblx0XHRcdFx0XHRcdGhhc0JvZHkgPSBydGJvZHkudGVzdChlbGVtKTtcclxuXHRcdFx0XHRcdFx0XHR0Ym9keSA9IHRhZyA9PT0gXCJ0YWJsZVwiICYmICFoYXNCb2R5ID9cclxuXHRcdFx0XHRcdFx0XHRcdGRpdi5maXJzdENoaWxkICYmIGRpdi5maXJzdENoaWxkLmNoaWxkTm9kZXMgOlxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdC8vIFN0cmluZyB3YXMgYSBiYXJlIDx0aGVhZD4gb3IgPHRmb290PlxyXG5cdFx0XHRcdFx0XHRcdFx0d3JhcFsxXSA9PT0gXCI8dGFibGU+XCIgJiYgIWhhc0JvZHkgP1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRkaXYuY2hpbGROb2RlcyA6XHJcblx0XHRcdFx0XHRcdFx0XHRcdFtdO1xyXG5cclxuXHRcdFx0XHRcdFx0Zm9yICggaiA9IHRib2R5Lmxlbmd0aCAtIDE7IGogPj0gMCA7IC0taiApIHtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5ub2RlTmFtZSggdGJvZHlbIGogXSwgXCJ0Ym9keVwiICkgJiYgIXRib2R5WyBqIF0uY2hpbGROb2Rlcy5sZW5ndGggKSB7XHJcblx0XHRcdFx0XHRcdFx0XHR0Ym9keVsgaiBdLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIHRib2R5WyBqIF0gKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBJRSBjb21wbGV0ZWx5IGtpbGxzIGxlYWRpbmcgd2hpdGVzcGFjZSB3aGVuIGlubmVySFRNTCBpcyB1c2VkXHJcblx0XHRcdFx0XHRpZiAoICFqUXVlcnkuc3VwcG9ydC5sZWFkaW5nV2hpdGVzcGFjZSAmJiBybGVhZGluZ1doaXRlc3BhY2UudGVzdCggZWxlbSApICkge1xyXG5cdFx0XHRcdFx0XHRkaXYuaW5zZXJ0QmVmb3JlKCBjb250ZXh0LmNyZWF0ZVRleHROb2RlKCBybGVhZGluZ1doaXRlc3BhY2UuZXhlYyhlbGVtKVswXSApLCBkaXYuZmlyc3RDaGlsZCApO1xyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdGVsZW0gPSBkaXYuY2hpbGROb2RlcztcclxuXHJcblx0XHRcdFx0XHQvLyBUYWtlIG91dCBvZiBmcmFnbWVudCBjb250YWluZXIgKHdlIG5lZWQgYSBmcmVzaCBkaXYgZWFjaCB0aW1lKVxyXG5cdFx0XHRcdFx0ZGl2LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoIGRpdiApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlICkge1xyXG5cdFx0XHRcdHJldC5wdXNoKCBlbGVtICk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCByZXQsIGVsZW0gKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEZpeCAjMTEzNTY6IENsZWFyIGVsZW1lbnRzIGZyb20gc2FmZUZyYWdtZW50XHJcblx0XHRpZiAoIGRpdiApIHtcclxuXHRcdFx0ZWxlbSA9IGRpdiA9IHNhZmUgPSBudWxsO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFJlc2V0IGRlZmF1bHRDaGVja2VkIGZvciBhbnkgcmFkaW9zIGFuZCBjaGVja2JveGVzXHJcblx0XHQvLyBhYm91dCB0byBiZSBhcHBlbmRlZCB0byB0aGUgRE9NIGluIElFIDYvNyAoIzgwNjApXHJcblx0XHRpZiAoICFqUXVlcnkuc3VwcG9ydC5hcHBlbmRDaGVja2VkICkge1xyXG5cdFx0XHRmb3IgKCBpID0gMDsgKGVsZW0gPSByZXRbaV0pICE9IG51bGw7IGkrKyApIHtcclxuXHRcdFx0XHRpZiAoIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgKSB7XHJcblx0XHRcdFx0XHRmaXhEZWZhdWx0Q2hlY2tlZCggZWxlbSApO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoIHR5cGVvZiBlbGVtLmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICkge1xyXG5cdFx0XHRcdFx0alF1ZXJ5LmdyZXAoIGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJpbnB1dFwiKSwgZml4RGVmYXVsdENoZWNrZWQgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBBcHBlbmQgZWxlbWVudHMgdG8gYSBwcm92aWRlZCBkb2N1bWVudCBmcmFnbWVudFxyXG5cdFx0aWYgKCBmcmFnbWVudCApIHtcclxuXHRcdFx0Ly8gU3BlY2lhbCBoYW5kbGluZyBvZiBlYWNoIHNjcmlwdCBlbGVtZW50XHJcblx0XHRcdGhhbmRsZVNjcmlwdCA9IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0XHRcdC8vIENoZWNrIGlmIHdlIGNvbnNpZGVyIGl0IGV4ZWN1dGFibGVcclxuXHRcdFx0XHRpZiAoICFlbGVtLnR5cGUgfHwgcnNjcmlwdFR5cGUudGVzdCggZWxlbS50eXBlICkgKSB7XHJcblx0XHRcdFx0XHQvLyBEZXRhY2ggdGhlIHNjcmlwdCBhbmQgc3RvcmUgaXQgaW4gdGhlIHNjcmlwdHMgYXJyYXkgKGlmIHByb3ZpZGVkKSBvciB0aGUgZnJhZ21lbnRcclxuXHRcdFx0XHRcdC8vIFJldHVybiB0cnV0aHkgdG8gaW5kaWNhdGUgdGhhdCBpdCBoYXMgYmVlbiBoYW5kbGVkXHJcblx0XHRcdFx0XHRyZXR1cm4gc2NyaXB0cyA/XHJcblx0XHRcdFx0XHRcdHNjcmlwdHMucHVzaCggZWxlbS5wYXJlbnROb2RlID8gZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbGVtICkgOiBlbGVtICkgOlxyXG5cdFx0XHRcdFx0XHRmcmFnbWVudC5hcHBlbmRDaGlsZCggZWxlbSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fTtcclxuXHJcblx0XHRcdGZvciAoIGkgPSAwOyAoZWxlbSA9IHJldFtpXSkgIT0gbnVsbDsgaSsrICkge1xyXG5cdFx0XHRcdC8vIENoZWNrIGlmIHdlJ3JlIGRvbmUgYWZ0ZXIgaGFuZGxpbmcgYW4gZXhlY3V0YWJsZSBzY3JpcHRcclxuXHRcdFx0XHRpZiAoICEoIGpRdWVyeS5ub2RlTmFtZSggZWxlbSwgXCJzY3JpcHRcIiApICYmIGhhbmRsZVNjcmlwdCggZWxlbSApICkgKSB7XHJcblx0XHRcdFx0XHQvLyBBcHBlbmQgdG8gZnJhZ21lbnQgYW5kIGhhbmRsZSBlbWJlZGRlZCBzY3JpcHRzXHJcblx0XHRcdFx0XHRmcmFnbWVudC5hcHBlbmRDaGlsZCggZWxlbSApO1xyXG5cdFx0XHRcdFx0aWYgKCB0eXBlb2YgZWxlbS5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcclxuXHRcdFx0XHRcdFx0Ly8gaGFuZGxlU2NyaXB0IGFsdGVycyB0aGUgRE9NLCBzbyB1c2UgalF1ZXJ5Lm1lcmdlIHRvIGVuc3VyZSBzbmFwc2hvdCBpdGVyYXRpb25cclxuXHRcdFx0XHRcdFx0anNUYWdzID0galF1ZXJ5LmdyZXAoIGpRdWVyeS5tZXJnZSggW10sIGVsZW0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzY3JpcHRcIikgKSwgaGFuZGxlU2NyaXB0ICk7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBTcGxpY2UgdGhlIHNjcmlwdHMgaW50byByZXQgYWZ0ZXIgdGhlaXIgZm9ybWVyIGFuY2VzdG9yIGFuZCBhZHZhbmNlIG91ciBpbmRleCBiZXlvbmQgdGhlbVxyXG5cdFx0XHRcdFx0XHRyZXQuc3BsaWNlLmFwcGx5KCByZXQsIFtpICsgMSwgMF0uY29uY2F0KCBqc1RhZ3MgKSApO1xyXG5cdFx0XHRcdFx0XHRpICs9IGpzVGFncy5sZW5ndGg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJldDtcclxuXHR9LFxyXG5cclxuXHRjbGVhbkRhdGE6IGZ1bmN0aW9uKCBlbGVtcywgLyogaW50ZXJuYWwgKi8gYWNjZXB0RGF0YSApIHtcclxuXHRcdHZhciBkYXRhLCBpZCwgZWxlbSwgdHlwZSxcclxuXHRcdFx0aSA9IDAsXHJcblx0XHRcdGludGVybmFsS2V5ID0galF1ZXJ5LmV4cGFuZG8sXHJcblx0XHRcdGNhY2hlID0galF1ZXJ5LmNhY2hlLFxyXG5cdFx0XHRkZWxldGVFeHBhbmRvID0galF1ZXJ5LnN1cHBvcnQuZGVsZXRlRXhwYW5kbyxcclxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsO1xyXG5cclxuXHRcdGZvciAoIDsgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkge1xyXG5cclxuXHRcdFx0aWYgKCBhY2NlcHREYXRhIHx8IGpRdWVyeS5hY2NlcHREYXRhKCBlbGVtICkgKSB7XHJcblxyXG5cdFx0XHRcdGlkID0gZWxlbVsgaW50ZXJuYWxLZXkgXTtcclxuXHRcdFx0XHRkYXRhID0gaWQgJiYgY2FjaGVbIGlkIF07XHJcblxyXG5cdFx0XHRcdGlmICggZGF0YSApIHtcclxuXHRcdFx0XHRcdGlmICggZGF0YS5ldmVudHMgKSB7XHJcblx0XHRcdFx0XHRcdGZvciAoIHR5cGUgaW4gZGF0YS5ldmVudHMgKSB7XHJcblx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsWyB0eXBlIF0gKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCBlbGVtLCB0eXBlICk7XHJcblxyXG5cdFx0XHRcdFx0XHRcdC8vIFRoaXMgaXMgYSBzaG9ydGN1dCB0byBhdm9pZCBqUXVlcnkuZXZlbnQucmVtb3ZlJ3Mgb3ZlcmhlYWRcclxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0XHRcdFx0alF1ZXJ5LnJlbW92ZUV2ZW50KCBlbGVtLCB0eXBlLCBkYXRhLmhhbmRsZSApO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIFJlbW92ZSBjYWNoZSBvbmx5IGlmIGl0IHdhcyBub3QgYWxyZWFkeSByZW1vdmVkIGJ5IGpRdWVyeS5ldmVudC5yZW1vdmVcclxuXHRcdFx0XHRcdGlmICggY2FjaGVbIGlkIF0gKSB7XHJcblxyXG5cdFx0XHRcdFx0XHRkZWxldGUgY2FjaGVbIGlkIF07XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBJRSBkb2VzIG5vdCBhbGxvdyB1cyB0byBkZWxldGUgZXhwYW5kbyBwcm9wZXJ0aWVzIGZyb20gbm9kZXMsXHJcblx0XHRcdFx0XHRcdC8vIG5vciBkb2VzIGl0IGhhdmUgYSByZW1vdmVBdHRyaWJ1dGUgZnVuY3Rpb24gb24gRG9jdW1lbnQgbm9kZXM7XHJcblx0XHRcdFx0XHRcdC8vIHdlIG11c3QgaGFuZGxlIGFsbCBvZiB0aGVzZSBjYXNlc1xyXG5cdFx0XHRcdFx0XHRpZiAoIGRlbGV0ZUV4cGFuZG8gKSB7XHJcblx0XHRcdFx0XHRcdFx0ZGVsZXRlIGVsZW1bIGludGVybmFsS2V5IF07XHJcblxyXG5cdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCBlbGVtLnJlbW92ZUF0dHJpYnV0ZSApIHtcclxuXHRcdFx0XHRcdFx0XHRlbGVtLnJlbW92ZUF0dHJpYnV0ZSggaW50ZXJuYWxLZXkgKTtcclxuXHJcblx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0ZWxlbVsgaW50ZXJuYWxLZXkgXSA9IG51bGw7XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdGpRdWVyeS5kZWxldGVkSWRzLnB1c2goIGlkICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59KTtcclxuLy8gTGltaXQgc2NvcGUgcG9sbHV0aW9uIGZyb20gYW55IGRlcHJlY2F0ZWQgQVBJXHJcbihmdW5jdGlvbigpIHtcclxuXHJcbnZhciBtYXRjaGVkLCBicm93c2VyO1xyXG5cclxuLy8gVXNlIG9mIGpRdWVyeS5icm93c2VyIGlzIGZyb3duZWQgdXBvbi5cclxuLy8gTW9yZSBkZXRhaWxzOiBodHRwOi8vYXBpLmpxdWVyeS5jb20valF1ZXJ5LmJyb3dzZXJcclxuLy8galF1ZXJ5LnVhTWF0Y2ggbWFpbnRhaW5lZCBmb3IgYmFjay1jb21wYXRcclxualF1ZXJ5LnVhTWF0Y2ggPSBmdW5jdGlvbiggdWEgKSB7XHJcblx0dWEgPSB1YS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuXHR2YXIgbWF0Y2ggPSAvKGNocm9tZSlbIFxcL10oW1xcdy5dKykvLmV4ZWMoIHVhICkgfHxcclxuXHRcdC8od2Via2l0KVsgXFwvXShbXFx3Ll0rKS8uZXhlYyggdWEgKSB8fFxyXG5cdFx0LyhvcGVyYSkoPzouKnZlcnNpb258KVsgXFwvXShbXFx3Ll0rKS8uZXhlYyggdWEgKSB8fFxyXG5cdFx0Lyhtc2llKSAoW1xcdy5dKykvLmV4ZWMoIHVhICkgfHxcclxuXHRcdHVhLmluZGV4T2YoXCJjb21wYXRpYmxlXCIpIDwgMCAmJiAvKG1vemlsbGEpKD86Lio/IHJ2OihbXFx3Ll0rKXwpLy5leGVjKCB1YSApIHx8XHJcblx0XHRbXTtcclxuXHJcblx0cmV0dXJuIHtcclxuXHRcdGJyb3dzZXI6IG1hdGNoWyAxIF0gfHwgXCJcIixcclxuXHRcdHZlcnNpb246IG1hdGNoWyAyIF0gfHwgXCIwXCJcclxuXHR9O1xyXG59O1xyXG5cclxubWF0Y2hlZCA9IGpRdWVyeS51YU1hdGNoKCBuYXZpZ2F0b3IudXNlckFnZW50ICk7XHJcbmJyb3dzZXIgPSB7fTtcclxuXHJcbmlmICggbWF0Y2hlZC5icm93c2VyICkge1xyXG5cdGJyb3dzZXJbIG1hdGNoZWQuYnJvd3NlciBdID0gdHJ1ZTtcclxuXHRicm93c2VyLnZlcnNpb24gPSBtYXRjaGVkLnZlcnNpb247XHJcbn1cclxuXHJcbi8vIENocm9tZSBpcyBXZWJraXQsIGJ1dCBXZWJraXQgaXMgYWxzbyBTYWZhcmkuXHJcbmlmICggYnJvd3Nlci5jaHJvbWUgKSB7XHJcblx0YnJvd3Nlci53ZWJraXQgPSB0cnVlO1xyXG59IGVsc2UgaWYgKCBicm93c2VyLndlYmtpdCApIHtcclxuXHRicm93c2VyLnNhZmFyaSA9IHRydWU7XHJcbn1cclxuXHJcbmpRdWVyeS5icm93c2VyID0gYnJvd3NlcjtcclxuXHJcbmpRdWVyeS5zdWIgPSBmdW5jdGlvbigpIHtcclxuXHRmdW5jdGlvbiBqUXVlcnlTdWIoIHNlbGVjdG9yLCBjb250ZXh0ICkge1xyXG5cdFx0cmV0dXJuIG5ldyBqUXVlcnlTdWIuZm4uaW5pdCggc2VsZWN0b3IsIGNvbnRleHQgKTtcclxuXHR9XHJcblx0alF1ZXJ5LmV4dGVuZCggdHJ1ZSwgalF1ZXJ5U3ViLCB0aGlzICk7XHJcblx0alF1ZXJ5U3ViLnN1cGVyY2xhc3MgPSB0aGlzO1xyXG5cdGpRdWVyeVN1Yi5mbiA9IGpRdWVyeVN1Yi5wcm90b3R5cGUgPSB0aGlzKCk7XHJcblx0alF1ZXJ5U3ViLmZuLmNvbnN0cnVjdG9yID0galF1ZXJ5U3ViO1xyXG5cdGpRdWVyeVN1Yi5zdWIgPSB0aGlzLnN1YjtcclxuXHRqUXVlcnlTdWIuZm4uaW5pdCA9IGZ1bmN0aW9uIGluaXQoIHNlbGVjdG9yLCBjb250ZXh0ICkge1xyXG5cdFx0aWYgKCBjb250ZXh0ICYmIGNvbnRleHQgaW5zdGFuY2VvZiBqUXVlcnkgJiYgIShjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5U3ViKSApIHtcclxuXHRcdFx0Y29udGV4dCA9IGpRdWVyeVN1YiggY29udGV4dCApO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBqUXVlcnkuZm4uaW5pdC5jYWxsKCB0aGlzLCBzZWxlY3RvciwgY29udGV4dCwgcm9vdGpRdWVyeVN1YiApO1xyXG5cdH07XHJcblx0alF1ZXJ5U3ViLmZuLmluaXQucHJvdG90eXBlID0galF1ZXJ5U3ViLmZuO1xyXG5cdHZhciByb290alF1ZXJ5U3ViID0galF1ZXJ5U3ViKGRvY3VtZW50KTtcclxuXHRyZXR1cm4galF1ZXJ5U3ViO1xyXG59O1xyXG5cclxufSkoKTtcclxudmFyIGN1ckNTUywgaWZyYW1lLCBpZnJhbWVEb2MsXHJcblx0cmFscGhhID0gL2FscGhhXFwoW14pXSpcXCkvaSxcclxuXHRyb3BhY2l0eSA9IC9vcGFjaXR5PShbXildKikvLFxyXG5cdHJwb3NpdGlvbiA9IC9eKHRvcHxyaWdodHxib3R0b218bGVmdCkkLyxcclxuXHQvLyBzd2FwcGFibGUgaWYgZGlzcGxheSBpcyBub25lIG9yIHN0YXJ0cyB3aXRoIHRhYmxlIGV4Y2VwdCBcInRhYmxlXCIsIFwidGFibGUtY2VsbFwiLCBvciBcInRhYmxlLWNhcHRpb25cIlxyXG5cdC8vIHNlZSBoZXJlIGZvciBkaXNwbGF5IHZhbHVlczogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9DU1MvZGlzcGxheVxyXG5cdHJkaXNwbGF5c3dhcCA9IC9eKG5vbmV8dGFibGUoPyEtY1tlYV0pLispLyxcclxuXHRybWFyZ2luID0gL15tYXJnaW4vLFxyXG5cdHJudW1zcGxpdCA9IG5ldyBSZWdFeHAoIFwiXihcIiArIGNvcmVfcG51bSArIFwiKSguKikkXCIsIFwiaVwiICksXHJcblx0cm51bW5vbnB4ID0gbmV3IFJlZ0V4cCggXCJeKFwiICsgY29yZV9wbnVtICsgXCIpKD8hcHgpW2EteiVdKyRcIiwgXCJpXCIgKSxcclxuXHRycmVsTnVtID0gbmV3IFJlZ0V4cCggXCJeKFstK10pPShcIiArIGNvcmVfcG51bSArIFwiKVwiLCBcImlcIiApLFxyXG5cdGVsZW1kaXNwbGF5ID0ge30sXHJcblxyXG5cdGNzc1Nob3cgPSB7IHBvc2l0aW9uOiBcImFic29sdXRlXCIsIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsIGRpc3BsYXk6IFwiYmxvY2tcIiB9LFxyXG5cdGNzc05vcm1hbFRyYW5zZm9ybSA9IHtcclxuXHRcdGxldHRlclNwYWNpbmc6IDAsXHJcblx0XHRmb250V2VpZ2h0OiA0MDBcclxuXHR9LFxyXG5cclxuXHRjc3NFeHBhbmQgPSBbIFwiVG9wXCIsIFwiUmlnaHRcIiwgXCJCb3R0b21cIiwgXCJMZWZ0XCIgXSxcclxuXHRjc3NQcmVmaXhlcyA9IFsgXCJXZWJraXRcIiwgXCJPXCIsIFwiTW96XCIsIFwibXNcIiBdLFxyXG5cclxuXHRldmVudHNUb2dnbGUgPSBqUXVlcnkuZm4udG9nZ2xlO1xyXG5cclxuLy8gcmV0dXJuIGEgY3NzIHByb3BlcnR5IG1hcHBlZCB0byBhIHBvdGVudGlhbGx5IHZlbmRvciBwcmVmaXhlZCBwcm9wZXJ0eVxyXG5mdW5jdGlvbiB2ZW5kb3JQcm9wTmFtZSggc3R5bGUsIG5hbWUgKSB7XHJcblxyXG5cdC8vIHNob3J0Y3V0IGZvciBuYW1lcyB0aGF0IGFyZSBub3QgdmVuZG9yIHByZWZpeGVkXHJcblx0aWYgKCBuYW1lIGluIHN0eWxlICkge1xyXG5cdFx0cmV0dXJuIG5hbWU7XHJcblx0fVxyXG5cclxuXHQvLyBjaGVjayBmb3IgdmVuZG9yIHByZWZpeGVkIG5hbWVzXHJcblx0dmFyIGNhcE5hbWUgPSBuYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbmFtZS5zbGljZSgxKSxcclxuXHRcdG9yaWdOYW1lID0gbmFtZSxcclxuXHRcdGkgPSBjc3NQcmVmaXhlcy5sZW5ndGg7XHJcblxyXG5cdHdoaWxlICggaS0tICkge1xyXG5cdFx0bmFtZSA9IGNzc1ByZWZpeGVzWyBpIF0gKyBjYXBOYW1lO1xyXG5cdFx0aWYgKCBuYW1lIGluIHN0eWxlICkge1xyXG5cdFx0XHRyZXR1cm4gbmFtZTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHJldHVybiBvcmlnTmFtZTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNIaWRkZW4oIGVsZW0sIGVsICkge1xyXG5cdGVsZW0gPSBlbCB8fCBlbGVtO1xyXG5cdHJldHVybiBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApID09PSBcIm5vbmVcIiB8fCAhalF1ZXJ5LmNvbnRhaW5zKCBlbGVtLm93bmVyRG9jdW1lbnQsIGVsZW0gKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2hvd0hpZGUoIGVsZW1lbnRzLCBzaG93ICkge1xyXG5cdHZhciBlbGVtLCBkaXNwbGF5LFxyXG5cdFx0dmFsdWVzID0gW10sXHJcblx0XHRpbmRleCA9IDAsXHJcblx0XHRsZW5ndGggPSBlbGVtZW50cy5sZW5ndGg7XHJcblxyXG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XHJcblx0XHRlbGVtID0gZWxlbWVudHNbIGluZGV4IF07XHJcblx0XHRpZiAoICFlbGVtLnN0eWxlICkge1xyXG5cdFx0XHRjb250aW51ZTtcclxuXHRcdH1cclxuXHRcdHZhbHVlc1sgaW5kZXggXSA9IGpRdWVyeS5fZGF0YSggZWxlbSwgXCJvbGRkaXNwbGF5XCIgKTtcclxuXHRcdGlmICggc2hvdyApIHtcclxuXHRcdFx0Ly8gUmVzZXQgdGhlIGlubGluZSBkaXNwbGF5IG9mIHRoaXMgZWxlbWVudCB0byBsZWFybiBpZiBpdCBpc1xyXG5cdFx0XHQvLyBiZWluZyBoaWRkZW4gYnkgY2FzY2FkZWQgcnVsZXMgb3Igbm90XHJcblx0XHRcdGlmICggIXZhbHVlc1sgaW5kZXggXSAmJiBlbGVtLnN0eWxlLmRpc3BsYXkgPT09IFwibm9uZVwiICkge1xyXG5cdFx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9IFwiXCI7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFNldCBlbGVtZW50cyB3aGljaCBoYXZlIGJlZW4gb3ZlcnJpZGRlbiB3aXRoIGRpc3BsYXk6IG5vbmVcclxuXHRcdFx0Ly8gaW4gYSBzdHlsZXNoZWV0IHRvIHdoYXRldmVyIHRoZSBkZWZhdWx0IGJyb3dzZXIgc3R5bGUgaXNcclxuXHRcdFx0Ly8gZm9yIHN1Y2ggYW4gZWxlbWVudFxyXG5cdFx0XHRpZiAoIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJiBpc0hpZGRlbiggZWxlbSApICkge1xyXG5cdFx0XHRcdHZhbHVlc1sgaW5kZXggXSA9IGpRdWVyeS5fZGF0YSggZWxlbSwgXCJvbGRkaXNwbGF5XCIsIGNzc19kZWZhdWx0RGlzcGxheShlbGVtLm5vZGVOYW1lKSApO1xyXG5cdFx0XHR9XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRkaXNwbGF5ID0gY3VyQ1NTKCBlbGVtLCBcImRpc3BsYXlcIiApO1xyXG5cclxuXHRcdFx0aWYgKCAhdmFsdWVzWyBpbmRleCBdICYmIGRpc3BsYXkgIT09IFwibm9uZVwiICkge1xyXG5cdFx0XHRcdGpRdWVyeS5fZGF0YSggZWxlbSwgXCJvbGRkaXNwbGF5XCIsIGRpc3BsYXkgKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gU2V0IHRoZSBkaXNwbGF5IG9mIG1vc3Qgb2YgdGhlIGVsZW1lbnRzIGluIGEgc2Vjb25kIGxvb3BcclxuXHQvLyB0byBhdm9pZCB0aGUgY29uc3RhbnQgcmVmbG93XHJcblx0Zm9yICggaW5kZXggPSAwOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcclxuXHRcdGVsZW0gPSBlbGVtZW50c1sgaW5kZXggXTtcclxuXHRcdGlmICggIWVsZW0uc3R5bGUgKSB7XHJcblx0XHRcdGNvbnRpbnVlO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCAhc2hvdyB8fCBlbGVtLnN0eWxlLmRpc3BsYXkgPT09IFwibm9uZVwiIHx8IGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiApIHtcclxuXHRcdFx0ZWxlbS5zdHlsZS5kaXNwbGF5ID0gc2hvdyA/IHZhbHVlc1sgaW5kZXggXSB8fCBcIlwiIDogXCJub25lXCI7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gZWxlbWVudHM7XHJcbn1cclxuXHJcbmpRdWVyeS5mbi5leHRlbmQoe1xyXG5cdGNzczogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcclxuXHRcdFx0cmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgP1xyXG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgbmFtZSwgdmFsdWUgKSA6XHJcblx0XHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgbmFtZSApO1xyXG5cdFx0fSwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XHJcblx0fSxcclxuXHRzaG93OiBmdW5jdGlvbigpIHtcclxuXHRcdHJldHVybiBzaG93SGlkZSggdGhpcywgdHJ1ZSApO1xyXG5cdH0sXHJcblx0aGlkZTogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gc2hvd0hpZGUoIHRoaXMgKTtcclxuXHR9LFxyXG5cdHRvZ2dsZTogZnVuY3Rpb24oIHN0YXRlLCBmbjIgKSB7XHJcblx0XHR2YXIgYm9vbCA9IHR5cGVvZiBzdGF0ZSA9PT0gXCJib29sZWFuXCI7XHJcblxyXG5cdFx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggc3RhdGUgKSAmJiBqUXVlcnkuaXNGdW5jdGlvbiggZm4yICkgKSB7XHJcblx0XHRcdHJldHVybiBldmVudHNUb2dnbGUuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKSB7XHJcblx0XHRcdGlmICggYm9vbCA/IHN0YXRlIDogaXNIaWRkZW4oIHRoaXMgKSApIHtcclxuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5zaG93KCk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkuaGlkZSgpO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn0pO1xyXG5cclxualF1ZXJ5LmV4dGVuZCh7XHJcblx0Ly8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XHJcblx0Ly8gYmVoYXZpb3Igb2YgZ2V0dGluZyBhbmQgc2V0dGluZyBhIHN0eWxlIHByb3BlcnR5XHJcblx0Y3NzSG9va3M6IHtcclxuXHRcdG9wYWNpdHk6IHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XHJcblx0XHRcdFx0aWYgKCBjb21wdXRlZCApIHtcclxuXHRcdFx0XHRcdC8vIFdlIHNob3VsZCBhbHdheXMgZ2V0IGEgbnVtYmVyIGJhY2sgZnJvbSBvcGFjaXR5XHJcblx0XHRcdFx0XHR2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCBcIm9wYWNpdHlcIiApO1xyXG5cdFx0XHRcdFx0cmV0dXJuIHJldCA9PT0gXCJcIiA/IFwiMVwiIDogcmV0O1xyXG5cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHQvLyBFeGNsdWRlIHRoZSBmb2xsb3dpbmcgY3NzIHByb3BlcnRpZXMgdG8gYWRkIHB4XHJcblx0Y3NzTnVtYmVyOiB7XHJcblx0XHRcImZpbGxPcGFjaXR5XCI6IHRydWUsXHJcblx0XHRcImZvbnRXZWlnaHRcIjogdHJ1ZSxcclxuXHRcdFwibGluZUhlaWdodFwiOiB0cnVlLFxyXG5cdFx0XCJvcGFjaXR5XCI6IHRydWUsXHJcblx0XHRcIm9ycGhhbnNcIjogdHJ1ZSxcclxuXHRcdFwid2lkb3dzXCI6IHRydWUsXHJcblx0XHRcInpJbmRleFwiOiB0cnVlLFxyXG5cdFx0XCJ6b29tXCI6IHRydWVcclxuXHR9LFxyXG5cclxuXHQvLyBBZGQgaW4gcHJvcGVydGllcyB3aG9zZSBuYW1lcyB5b3Ugd2lzaCB0byBmaXggYmVmb3JlXHJcblx0Ly8gc2V0dGluZyBvciBnZXR0aW5nIHRoZSB2YWx1ZVxyXG5cdGNzc1Byb3BzOiB7XHJcblx0XHQvLyBub3JtYWxpemUgZmxvYXQgY3NzIHByb3BlcnR5XHJcblx0XHRcImZsb2F0XCI6IGpRdWVyeS5zdXBwb3J0LmNzc0Zsb2F0ID8gXCJjc3NGbG9hdFwiIDogXCJzdHlsZUZsb2F0XCJcclxuXHR9LFxyXG5cclxuXHQvLyBHZXQgYW5kIHNldCB0aGUgc3R5bGUgcHJvcGVydHkgb24gYSBET00gTm9kZVxyXG5cdHN0eWxlOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgdmFsdWUsIGV4dHJhICkge1xyXG5cdFx0Ly8gRG9uJ3Qgc2V0IHN0eWxlcyBvbiB0ZXh0IGFuZCBjb21tZW50IG5vZGVzXHJcblx0XHRpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCAhZWxlbS5zdHlsZSApIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZVxyXG5cdFx0dmFyIHJldCwgdHlwZSwgaG9va3MsXHJcblx0XHRcdG9yaWdOYW1lID0galF1ZXJ5LmNhbWVsQ2FzZSggbmFtZSApLFxyXG5cdFx0XHRzdHlsZSA9IGVsZW0uc3R5bGU7XHJcblxyXG5cdFx0bmFtZSA9IGpRdWVyeS5jc3NQcm9wc1sgb3JpZ05hbWUgXSB8fCAoIGpRdWVyeS5jc3NQcm9wc1sgb3JpZ05hbWUgXSA9IHZlbmRvclByb3BOYW1lKCBzdHlsZSwgb3JpZ05hbWUgKSApO1xyXG5cclxuXHRcdC8vIGdldHMgaG9vayBmb3IgdGhlIHByZWZpeGVkIHZlcnNpb25cclxuXHRcdC8vIGZvbGxvd2VkIGJ5IHRoZSB1bnByZWZpeGVkIHZlcnNpb25cclxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gfHwgalF1ZXJ5LmNzc0hvb2tzWyBvcmlnTmFtZSBdO1xyXG5cclxuXHRcdC8vIENoZWNrIGlmIHdlJ3JlIHNldHRpbmcgYSB2YWx1ZVxyXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHR0eXBlID0gdHlwZW9mIHZhbHVlO1xyXG5cclxuXHRcdFx0Ly8gY29udmVydCByZWxhdGl2ZSBudW1iZXIgc3RyaW5ncyAoKz0gb3IgLT0pIHRvIHJlbGF0aXZlIG51bWJlcnMuICM3MzQ1XHJcblx0XHRcdGlmICggdHlwZSA9PT0gXCJzdHJpbmdcIiAmJiAocmV0ID0gcnJlbE51bS5leGVjKCB2YWx1ZSApKSApIHtcclxuXHRcdFx0XHR2YWx1ZSA9ICggcmV0WzFdICsgMSApICogcmV0WzJdICsgcGFyc2VGbG9hdCggalF1ZXJ5LmNzcyggZWxlbSwgbmFtZSApICk7XHJcblx0XHRcdFx0Ly8gRml4ZXMgYnVnICM5MjM3XHJcblx0XHRcdFx0dHlwZSA9IFwibnVtYmVyXCI7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IE5hTiBhbmQgbnVsbCB2YWx1ZXMgYXJlbid0IHNldC4gU2VlOiAjNzExNlxyXG5cdFx0XHRpZiAoIHZhbHVlID09IG51bGwgfHwgdHlwZSA9PT0gXCJudW1iZXJcIiAmJiBpc05hTiggdmFsdWUgKSApIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIElmIGEgbnVtYmVyIHdhcyBwYXNzZWQgaW4sIGFkZCAncHgnIHRvIHRoZSAoZXhjZXB0IGZvciBjZXJ0YWluIENTUyBwcm9wZXJ0aWVzKVxyXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwibnVtYmVyXCIgJiYgIWpRdWVyeS5jc3NOdW1iZXJbIG9yaWdOYW1lIF0gKSB7XHJcblx0XHRcdFx0dmFsdWUgKz0gXCJweFwiO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkLCB1c2UgdGhhdCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3Qgc2V0IHRoZSBzcGVjaWZpZWQgdmFsdWVcclxuXHRcdFx0aWYgKCAhaG9va3MgfHwgIShcInNldFwiIGluIGhvb2tzKSB8fCAodmFsdWUgPSBob29rcy5zZXQoIGVsZW0sIHZhbHVlLCBleHRyYSApKSAhPT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHRcdC8vIFdyYXBwZWQgdG8gcHJldmVudCBJRSBmcm9tIHRocm93aW5nIGVycm9ycyB3aGVuICdpbnZhbGlkJyB2YWx1ZXMgYXJlIHByb3ZpZGVkXHJcblx0XHRcdFx0Ly8gRml4ZXMgYnVnICM1NTA5XHJcblx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdHN0eWxlWyBuYW1lIF0gPSB2YWx1ZTtcclxuXHRcdFx0XHR9IGNhdGNoKGUpIHt9XHJcblx0XHRcdH1cclxuXHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmVcclxuXHRcdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICYmIChyZXQgPSBob29rcy5nZXQoIGVsZW0sIGZhbHNlLCBleHRyYSApKSAhPT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHRcdHJldHVybiByZXQ7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0XHJcblx0XHRcdHJldHVybiBzdHlsZVsgbmFtZSBdO1xyXG5cdFx0fVxyXG5cdH0sXHJcblxyXG5cdGNzczogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIG51bWVyaWMsIGV4dHJhICkge1xyXG5cdFx0dmFyIHZhbCwgbnVtLCBob29rcyxcclxuXHRcdFx0b3JpZ05hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBuYW1lICk7XHJcblxyXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgd2UncmUgd29ya2luZyB3aXRoIHRoZSByaWdodCBuYW1lXHJcblx0XHRuYW1lID0galF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdIHx8ICggalF1ZXJ5LmNzc1Byb3BzWyBvcmlnTmFtZSBdID0gdmVuZG9yUHJvcE5hbWUoIGVsZW0uc3R5bGUsIG9yaWdOYW1lICkgKTtcclxuXHJcblx0XHQvLyBnZXRzIGhvb2sgZm9yIHRoZSBwcmVmaXhlZCB2ZXJzaW9uXHJcblx0XHQvLyBmb2xsb3dlZCBieSB0aGUgdW5wcmVmaXhlZCB2ZXJzaW9uXHJcblx0XHRob29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdIHx8IGpRdWVyeS5jc3NIb29rc1sgb3JpZ05hbWUgXTtcclxuXHJcblx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgY29tcHV0ZWQgdmFsdWUgZnJvbSB0aGVyZVxyXG5cdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICkge1xyXG5cdFx0XHR2YWwgPSBob29rcy5nZXQoIGVsZW0sIHRydWUsIGV4dHJhICk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gT3RoZXJ3aXNlLCBpZiBhIHdheSB0byBnZXQgdGhlIGNvbXB1dGVkIHZhbHVlIGV4aXN0cywgdXNlIHRoYXRcclxuXHRcdGlmICggdmFsID09PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgbmFtZSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vY29udmVydCBcIm5vcm1hbFwiIHRvIGNvbXB1dGVkIHZhbHVlXHJcblx0XHRpZiAoIHZhbCA9PT0gXCJub3JtYWxcIiAmJiBuYW1lIGluIGNzc05vcm1hbFRyYW5zZm9ybSApIHtcclxuXHRcdFx0dmFsID0gY3NzTm9ybWFsVHJhbnNmb3JtWyBuYW1lIF07XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gUmV0dXJuLCBjb252ZXJ0aW5nIHRvIG51bWJlciBpZiBmb3JjZWQgb3IgYSBxdWFsaWZpZXIgd2FzIHByb3ZpZGVkIGFuZCB2YWwgbG9va3MgbnVtZXJpY1xyXG5cdFx0aWYgKCBudW1lcmljIHx8IGV4dHJhICE9PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdG51bSA9IHBhcnNlRmxvYXQoIHZhbCApO1xyXG5cdFx0XHRyZXR1cm4gbnVtZXJpYyB8fCBqUXVlcnkuaXNOdW1lcmljKCBudW0gKSA/IG51bSB8fCAwIDogdmFsO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIHZhbDtcclxuXHR9LFxyXG5cclxuXHQvLyBBIG1ldGhvZCBmb3IgcXVpY2tseSBzd2FwcGluZyBpbi9vdXQgQ1NTIHByb3BlcnRpZXMgdG8gZ2V0IGNvcnJlY3QgY2FsY3VsYXRpb25zXHJcblx0c3dhcDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGNhbGxiYWNrICkge1xyXG5cdFx0dmFyIHJldCwgbmFtZSxcclxuXHRcdFx0b2xkID0ge307XHJcblxyXG5cdFx0Ly8gUmVtZW1iZXIgdGhlIG9sZCB2YWx1ZXMsIGFuZCBpbnNlcnQgdGhlIG5ldyBvbmVzXHJcblx0XHRmb3IgKCBuYW1lIGluIG9wdGlvbnMgKSB7XHJcblx0XHRcdG9sZFsgbmFtZSBdID0gZWxlbS5zdHlsZVsgbmFtZSBdO1xyXG5cdFx0XHRlbGVtLnN0eWxlWyBuYW1lIF0gPSBvcHRpb25zWyBuYW1lIF07XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0ID0gY2FsbGJhY2suY2FsbCggZWxlbSApO1xyXG5cclxuXHRcdC8vIFJldmVydCB0aGUgb2xkIHZhbHVlc1xyXG5cdFx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xyXG5cdFx0XHRlbGVtLnN0eWxlWyBuYW1lIF0gPSBvbGRbIG5hbWUgXTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmV0O1xyXG5cdH1cclxufSk7XHJcblxyXG4vLyBOT1RFOiBUbyBhbnkgZnV0dXJlIG1haW50YWluZXIsIHdlJ3ZlIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlXHJcbi8vIGJlY2F1c2UganNkb20gb24gbm9kZS5qcyB3aWxsIGJyZWFrIHdpdGhvdXQgaXQuXHJcbmlmICggd2luZG93LmdldENvbXB1dGVkU3R5bGUgKSB7XHJcblx0Y3VyQ1NTID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XHJcblx0XHR2YXIgcmV0LCB3aWR0aCwgbWluV2lkdGgsIG1heFdpZHRoLFxyXG5cdFx0XHRjb21wdXRlZCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBlbGVtLCBudWxsICksXHJcblx0XHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcclxuXHJcblx0XHRpZiAoIGNvbXB1dGVkICkge1xyXG5cclxuXHRcdFx0cmV0ID0gY29tcHV0ZWRbIG5hbWUgXTtcclxuXHRcdFx0aWYgKCByZXQgPT09IFwiXCIgJiYgIWpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICkgKSB7XHJcblx0XHRcdFx0cmV0ID0galF1ZXJ5LnN0eWxlKCBlbGVtLCBuYW1lICk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEEgdHJpYnV0ZSB0byB0aGUgXCJhd2Vzb21lIGhhY2sgYnkgRGVhbiBFZHdhcmRzXCJcclxuXHRcdFx0Ly8gQ2hyb21lIDwgMTcgYW5kIFNhZmFyaSA1LjAgdXNlcyBcImNvbXB1dGVkIHZhbHVlXCIgaW5zdGVhZCBvZiBcInVzZWQgdmFsdWVcIiBmb3IgbWFyZ2luLXJpZ2h0XHJcblx0XHRcdC8vIFNhZmFyaSA1LjEuNyAoYXQgbGVhc3QpIHJldHVybnMgcGVyY2VudGFnZSBmb3IgYSBsYXJnZXIgc2V0IG9mIHZhbHVlcywgYnV0IHdpZHRoIHNlZW1zIHRvIGJlIHJlbGlhYmx5IHBpeGVsc1xyXG5cdFx0XHQvLyB0aGlzIGlzIGFnYWluc3QgdGhlIENTU09NIGRyYWZ0IHNwZWM6IGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nzc29tLyNyZXNvbHZlZC12YWx1ZXNcclxuXHRcdFx0aWYgKCBybnVtbm9ucHgudGVzdCggcmV0ICkgJiYgcm1hcmdpbi50ZXN0KCBuYW1lICkgKSB7XHJcblx0XHRcdFx0d2lkdGggPSBzdHlsZS53aWR0aDtcclxuXHRcdFx0XHRtaW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoO1xyXG5cdFx0XHRcdG1heFdpZHRoID0gc3R5bGUubWF4V2lkdGg7XHJcblxyXG5cdFx0XHRcdHN0eWxlLm1pbldpZHRoID0gc3R5bGUubWF4V2lkdGggPSBzdHlsZS53aWR0aCA9IHJldDtcclxuXHRcdFx0XHRyZXQgPSBjb21wdXRlZC53aWR0aDtcclxuXHJcblx0XHRcdFx0c3R5bGUud2lkdGggPSB3aWR0aDtcclxuXHRcdFx0XHRzdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoO1xyXG5cdFx0XHRcdHN0eWxlLm1heFdpZHRoID0gbWF4V2lkdGg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmV0O1xyXG5cdH07XHJcbn0gZWxzZSBpZiAoIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jdXJyZW50U3R5bGUgKSB7XHJcblx0Y3VyQ1NTID0gZnVuY3Rpb24oIGVsZW0sIG5hbWUgKSB7XHJcblx0XHR2YXIgbGVmdCwgcnNMZWZ0LFxyXG5cdFx0XHRyZXQgPSBlbGVtLmN1cnJlbnRTdHlsZSAmJiBlbGVtLmN1cnJlbnRTdHlsZVsgbmFtZSBdLFxyXG5cdFx0XHRzdHlsZSA9IGVsZW0uc3R5bGU7XHJcblxyXG5cdFx0Ly8gQXZvaWQgc2V0dGluZyByZXQgdG8gZW1wdHkgc3RyaW5nIGhlcmVcclxuXHRcdC8vIHNvIHdlIGRvbid0IGRlZmF1bHQgdG8gYXV0b1xyXG5cdFx0aWYgKCByZXQgPT0gbnVsbCAmJiBzdHlsZSAmJiBzdHlsZVsgbmFtZSBdICkge1xyXG5cdFx0XHRyZXQgPSBzdHlsZVsgbmFtZSBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEZyb20gdGhlIGF3ZXNvbWUgaGFjayBieSBEZWFuIEVkd2FyZHNcclxuXHRcdC8vIGh0dHA6Ly9lcmlrLmVhZS5uZXQvYXJjaGl2ZXMvMjAwNy8wNy8yNy8xOC41NC4xNS8jY29tbWVudC0xMDIyOTFcclxuXHJcblx0XHQvLyBJZiB3ZSdyZSBub3QgZGVhbGluZyB3aXRoIGEgcmVndWxhciBwaXhlbCBudW1iZXJcclxuXHRcdC8vIGJ1dCBhIG51bWJlciB0aGF0IGhhcyBhIHdlaXJkIGVuZGluZywgd2UgbmVlZCB0byBjb252ZXJ0IGl0IHRvIHBpeGVsc1xyXG5cdFx0Ly8gYnV0IG5vdCBwb3NpdGlvbiBjc3MgYXR0cmlidXRlcywgYXMgdGhvc2UgYXJlIHByb3BvcnRpb25hbCB0byB0aGUgcGFyZW50IGVsZW1lbnQgaW5zdGVhZFxyXG5cdFx0Ly8gYW5kIHdlIGNhbid0IG1lYXN1cmUgdGhlIHBhcmVudCBpbnN0ZWFkIGJlY2F1c2UgaXQgbWlnaHQgdHJpZ2dlciBhIFwic3RhY2tpbmcgZG9sbHNcIiBwcm9ibGVtXHJcblx0XHRpZiAoIHJudW1ub25weC50ZXN0KCByZXQgKSAmJiAhcnBvc2l0aW9uLnRlc3QoIG5hbWUgKSApIHtcclxuXHJcblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCB2YWx1ZXNcclxuXHRcdFx0bGVmdCA9IHN0eWxlLmxlZnQ7XHJcblx0XHRcdHJzTGVmdCA9IGVsZW0ucnVudGltZVN0eWxlICYmIGVsZW0ucnVudGltZVN0eWxlLmxlZnQ7XHJcblxyXG5cdFx0XHQvLyBQdXQgaW4gdGhlIG5ldyB2YWx1ZXMgdG8gZ2V0IGEgY29tcHV0ZWQgdmFsdWUgb3V0XHJcblx0XHRcdGlmICggcnNMZWZ0ICkge1xyXG5cdFx0XHRcdGVsZW0ucnVudGltZVN0eWxlLmxlZnQgPSBlbGVtLmN1cnJlbnRTdHlsZS5sZWZ0O1xyXG5cdFx0XHR9XHJcblx0XHRcdHN0eWxlLmxlZnQgPSBuYW1lID09PSBcImZvbnRTaXplXCIgPyBcIjFlbVwiIDogcmV0O1xyXG5cdFx0XHRyZXQgPSBzdHlsZS5waXhlbExlZnQgKyBcInB4XCI7XHJcblxyXG5cdFx0XHQvLyBSZXZlcnQgdGhlIGNoYW5nZWQgdmFsdWVzXHJcblx0XHRcdHN0eWxlLmxlZnQgPSBsZWZ0O1xyXG5cdFx0XHRpZiAoIHJzTGVmdCApIHtcclxuXHRcdFx0XHRlbGVtLnJ1bnRpbWVTdHlsZS5sZWZ0ID0gcnNMZWZ0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJldCA9PT0gXCJcIiA/IFwiYXV0b1wiIDogcmV0O1xyXG5cdH07XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNldFBvc2l0aXZlTnVtYmVyKCBlbGVtLCB2YWx1ZSwgc3VidHJhY3QgKSB7XHJcblx0dmFyIG1hdGNoZXMgPSBybnVtc3BsaXQuZXhlYyggdmFsdWUgKTtcclxuXHRyZXR1cm4gbWF0Y2hlcyA/XHJcblx0XHRcdE1hdGgubWF4KCAwLCBtYXRjaGVzWyAxIF0gLSAoIHN1YnRyYWN0IHx8IDAgKSApICsgKCBtYXRjaGVzWyAyIF0gfHwgXCJweFwiICkgOlxyXG5cdFx0XHR2YWx1ZTtcclxufVxyXG5cclxuZnVuY3Rpb24gYXVnbWVudFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhLCBpc0JvcmRlckJveCApIHtcclxuXHR2YXIgaSA9IGV4dHJhID09PSAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICkgP1xyXG5cdFx0Ly8gSWYgd2UgYWxyZWFkeSBoYXZlIHRoZSByaWdodCBtZWFzdXJlbWVudCwgYXZvaWQgYXVnbWVudGF0aW9uXHJcblx0XHQ0IDpcclxuXHRcdC8vIE90aGVyd2lzZSBpbml0aWFsaXplIGZvciBob3Jpem9udGFsIG9yIHZlcnRpY2FsIHByb3BlcnRpZXNcclxuXHRcdG5hbWUgPT09IFwid2lkdGhcIiA/IDEgOiAwLFxyXG5cclxuXHRcdHZhbCA9IDA7XHJcblxyXG5cdGZvciAoIDsgaSA8IDQ7IGkgKz0gMiApIHtcclxuXHRcdC8vIGJvdGggYm94IG1vZGVscyBleGNsdWRlIG1hcmdpbiwgc28gYWRkIGl0IGlmIHdlIHdhbnQgaXRcclxuXHRcdGlmICggZXh0cmEgPT09IFwibWFyZ2luXCIgKSB7XHJcblx0XHRcdC8vIHdlIHVzZSBqUXVlcnkuY3NzIGluc3RlYWQgb2YgY3VyQ1NTIGhlcmVcclxuXHRcdFx0Ly8gYmVjYXVzZSBvZiB0aGUgcmVsaWFibGVNYXJnaW5SaWdodCBDU1MgaG9vayFcclxuXHRcdFx0dmFsICs9IGpRdWVyeS5jc3MoIGVsZW0sIGV4dHJhICsgY3NzRXhwYW5kWyBpIF0sIHRydWUgKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGcm9tIHRoaXMgcG9pbnQgb24gd2UgdXNlIGN1ckNTUyBmb3IgbWF4aW11bSBwZXJmb3JtYW5jZSAocmVsZXZhbnQgaW4gYW5pbWF0aW9ucylcclxuXHRcdGlmICggaXNCb3JkZXJCb3ggKSB7XHJcblx0XHRcdC8vIGJvcmRlci1ib3ggaW5jbHVkZXMgcGFkZGluZywgc28gcmVtb3ZlIGl0IGlmIHdlIHdhbnQgY29udGVudFxyXG5cdFx0XHRpZiAoIGV4dHJhID09PSBcImNvbnRlbnRcIiApIHtcclxuXHRcdFx0XHR2YWwgLT0gcGFyc2VGbG9hdCggY3VyQ1NTKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdICkgKSB8fCAwO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBhdCB0aGlzIHBvaW50LCBleHRyYSBpc24ndCBib3JkZXIgbm9yIG1hcmdpbiwgc28gcmVtb3ZlIGJvcmRlclxyXG5cdFx0XHRpZiAoIGV4dHJhICE9PSBcIm1hcmdpblwiICkge1xyXG5cdFx0XHRcdHZhbCAtPSBwYXJzZUZsb2F0KCBjdXJDU1MoIGVsZW0sIFwiYm9yZGVyXCIgKyBjc3NFeHBhbmRbIGkgXSArIFwiV2lkdGhcIiApICkgfHwgMDtcclxuXHRcdFx0fVxyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Ly8gYXQgdGhpcyBwb2ludCwgZXh0cmEgaXNuJ3QgY29udGVudCwgc28gYWRkIHBhZGRpbmdcclxuXHRcdFx0dmFsICs9IHBhcnNlRmxvYXQoIGN1ckNTUyggZWxlbSwgXCJwYWRkaW5nXCIgKyBjc3NFeHBhbmRbIGkgXSApICkgfHwgMDtcclxuXHJcblx0XHRcdC8vIGF0IHRoaXMgcG9pbnQsIGV4dHJhIGlzbid0IGNvbnRlbnQgbm9yIHBhZGRpbmcsIHNvIGFkZCBib3JkZXJcclxuXHRcdFx0aWYgKCBleHRyYSAhPT0gXCJwYWRkaW5nXCIgKSB7XHJcblx0XHRcdFx0dmFsICs9IHBhcnNlRmxvYXQoIGN1ckNTUyggZWxlbSwgXCJib3JkZXJcIiArIGNzc0V4cGFuZFsgaSBdICsgXCJXaWR0aFwiICkgKSB8fCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRyZXR1cm4gdmFsO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBuYW1lLCBleHRyYSApIHtcclxuXHJcblx0Ly8gU3RhcnQgd2l0aCBvZmZzZXQgcHJvcGVydHksIHdoaWNoIGlzIGVxdWl2YWxlbnQgdG8gdGhlIGJvcmRlci1ib3ggdmFsdWVcclxuXHR2YXIgdmFsID0gbmFtZSA9PT0gXCJ3aWR0aFwiID8gZWxlbS5vZmZzZXRXaWR0aCA6IGVsZW0ub2Zmc2V0SGVpZ2h0LFxyXG5cdFx0dmFsdWVJc0JvcmRlckJveCA9IHRydWUsXHJcblx0XHRpc0JvcmRlckJveCA9IGpRdWVyeS5zdXBwb3J0LmJveFNpemluZyAmJiBqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiICkgPT09IFwiYm9yZGVyLWJveFwiO1xyXG5cclxuXHQvLyBzb21lIG5vbi1odG1sIGVsZW1lbnRzIHJldHVybiB1bmRlZmluZWQgZm9yIG9mZnNldFdpZHRoLCBzbyBjaGVjayBmb3IgbnVsbC91bmRlZmluZWRcclxuXHQvLyBzdmcgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02NDkyODVcclxuXHQvLyBNYXRoTUwgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD00OTE2NjhcclxuXHRpZiAoIHZhbCA8PSAwIHx8IHZhbCA9PSBudWxsICkge1xyXG5cdFx0Ly8gRmFsbCBiYWNrIHRvIGNvbXB1dGVkIHRoZW4gdW5jb21wdXRlZCBjc3MgaWYgbmVjZXNzYXJ5XHJcblx0XHR2YWwgPSBjdXJDU1MoIGVsZW0sIG5hbWUgKTtcclxuXHRcdGlmICggdmFsIDwgMCB8fCB2YWwgPT0gbnVsbCApIHtcclxuXHRcdFx0dmFsID0gZWxlbS5zdHlsZVsgbmFtZSBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIENvbXB1dGVkIHVuaXQgaXMgbm90IHBpeGVscy4gU3RvcCBoZXJlIGFuZCByZXR1cm4uXHJcblx0XHRpZiAoIHJudW1ub25weC50ZXN0KHZhbCkgKSB7XHJcblx0XHRcdHJldHVybiB2YWw7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gd2UgbmVlZCB0aGUgY2hlY2sgZm9yIHN0eWxlIGluIGNhc2UgYSBicm93c2VyIHdoaWNoIHJldHVybnMgdW5yZWxpYWJsZSB2YWx1ZXNcclxuXHRcdC8vIGZvciBnZXRDb21wdXRlZFN0eWxlIHNpbGVudGx5IGZhbGxzIGJhY2sgdG8gdGhlIHJlbGlhYmxlIGVsZW0uc3R5bGVcclxuXHRcdHZhbHVlSXNCb3JkZXJCb3ggPSBpc0JvcmRlckJveCAmJiAoIGpRdWVyeS5zdXBwb3J0LmJveFNpemluZ1JlbGlhYmxlIHx8IHZhbCA9PT0gZWxlbS5zdHlsZVsgbmFtZSBdICk7XHJcblxyXG5cdFx0Ly8gTm9ybWFsaXplIFwiXCIsIGF1dG8sIGFuZCBwcmVwYXJlIGZvciBleHRyYVxyXG5cdFx0dmFsID0gcGFyc2VGbG9hdCggdmFsICkgfHwgMDtcclxuXHR9XHJcblxyXG5cdC8vIHVzZSB0aGUgYWN0aXZlIGJveC1zaXppbmcgbW9kZWwgdG8gYWRkL3N1YnRyYWN0IGlycmVsZXZhbnQgc3R5bGVzXHJcblx0cmV0dXJuICggdmFsICtcclxuXHRcdGF1Z21lbnRXaWR0aE9ySGVpZ2h0KFxyXG5cdFx0XHRlbGVtLFxyXG5cdFx0XHRuYW1lLFxyXG5cdFx0XHRleHRyYSB8fCAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICksXHJcblx0XHRcdHZhbHVlSXNCb3JkZXJCb3hcclxuXHRcdClcclxuXHQpICsgXCJweFwiO1xyXG59XHJcblxyXG5cclxuLy8gVHJ5IHRvIGRldGVybWluZSB0aGUgZGVmYXVsdCBkaXNwbGF5IHZhbHVlIG9mIGFuIGVsZW1lbnRcclxuZnVuY3Rpb24gY3NzX2RlZmF1bHREaXNwbGF5KCBub2RlTmFtZSApIHtcclxuXHRpZiAoIGVsZW1kaXNwbGF5WyBub2RlTmFtZSBdICkge1xyXG5cdFx0cmV0dXJuIGVsZW1kaXNwbGF5WyBub2RlTmFtZSBdO1xyXG5cdH1cclxuXHJcblx0dmFyIGVsZW0gPSBqUXVlcnkoIFwiPFwiICsgbm9kZU5hbWUgKyBcIj5cIiApLmFwcGVuZFRvKCBkb2N1bWVudC5ib2R5ICksXHJcblx0XHRkaXNwbGF5ID0gZWxlbS5jc3MoXCJkaXNwbGF5XCIpO1xyXG5cdGVsZW0ucmVtb3ZlKCk7XHJcblxyXG5cdC8vIElmIHRoZSBzaW1wbGUgd2F5IGZhaWxzLFxyXG5cdC8vIGdldCBlbGVtZW50J3MgcmVhbCBkZWZhdWx0IGRpc3BsYXkgYnkgYXR0YWNoaW5nIGl0IHRvIGEgdGVtcCBpZnJhbWVcclxuXHRpZiAoIGRpc3BsYXkgPT09IFwibm9uZVwiIHx8IGRpc3BsYXkgPT09IFwiXCIgKSB7XHJcblx0XHQvLyBVc2UgdGhlIGFscmVhZHktY3JlYXRlZCBpZnJhbWUgaWYgcG9zc2libGVcclxuXHRcdGlmcmFtZSA9IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoXHJcblx0XHRcdGlmcmFtZSB8fCBqUXVlcnkuZXh0ZW5kKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiaWZyYW1lXCIpLCB7XHJcblx0XHRcdFx0ZnJhbWVCb3JkZXI6IDAsXHJcblx0XHRcdFx0d2lkdGg6IDAsXHJcblx0XHRcdFx0aGVpZ2h0OiAwXHJcblx0XHRcdH0pXHJcblx0XHQpO1xyXG5cclxuXHRcdC8vIENyZWF0ZSBhIGNhY2hlYWJsZSBjb3B5IG9mIHRoZSBpZnJhbWUgZG9jdW1lbnQgb24gZmlyc3QgY2FsbC5cclxuXHRcdC8vIElFIGFuZCBPcGVyYSB3aWxsIGFsbG93IHVzIHRvIHJldXNlIHRoZSBpZnJhbWVEb2Mgd2l0aG91dCByZS13cml0aW5nIHRoZSBmYWtlIEhUTUxcclxuXHRcdC8vIGRvY3VtZW50IHRvIGl0OyBXZWJLaXQgJiBGaXJlZm94IHdvbid0IGFsbG93IHJldXNpbmcgdGhlIGlmcmFtZSBkb2N1bWVudC5cclxuXHRcdGlmICggIWlmcmFtZURvYyB8fCAhaWZyYW1lLmNyZWF0ZUVsZW1lbnQgKSB7XHJcblx0XHRcdGlmcmFtZURvYyA9ICggaWZyYW1lLmNvbnRlbnRXaW5kb3cgfHwgaWZyYW1lLmNvbnRlbnREb2N1bWVudCApLmRvY3VtZW50O1xyXG5cdFx0XHRpZnJhbWVEb2Mud3JpdGUoXCI8IWRvY3R5cGUgaHRtbD48aHRtbD48Ym9keT5cIik7XHJcblx0XHRcdGlmcmFtZURvYy5jbG9zZSgpO1xyXG5cdFx0fVxyXG5cclxuXHRcdGVsZW0gPSBpZnJhbWVEb2MuYm9keS5hcHBlbmRDaGlsZCggaWZyYW1lRG9jLmNyZWF0ZUVsZW1lbnQobm9kZU5hbWUpICk7XHJcblxyXG5cdFx0ZGlzcGxheSA9IGN1ckNTUyggZWxlbSwgXCJkaXNwbGF5XCIgKTtcclxuXHRcdGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoIGlmcmFtZSApO1xyXG5cdH1cclxuXHJcblx0Ly8gU3RvcmUgdGhlIGNvcnJlY3QgZGVmYXVsdCBkaXNwbGF5XHJcblx0ZWxlbWRpc3BsYXlbIG5vZGVOYW1lIF0gPSBkaXNwbGF5O1xyXG5cclxuXHRyZXR1cm4gZGlzcGxheTtcclxufVxyXG5cclxualF1ZXJ5LmVhY2goWyBcImhlaWdodFwiLCBcIndpZHRoXCIgXSwgZnVuY3Rpb24oIGksIG5hbWUgKSB7XHJcblx0alF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF0gPSB7XHJcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCwgZXh0cmEgKSB7XHJcblx0XHRcdGlmICggY29tcHV0ZWQgKSB7XHJcblx0XHRcdFx0Ly8gY2VydGFpbiBlbGVtZW50cyBjYW4gaGF2ZSBkaW1lbnNpb24gaW5mbyBpZiB3ZSBpbnZpc2libHkgc2hvdyB0aGVtXHJcblx0XHRcdFx0Ly8gaG93ZXZlciwgaXQgbXVzdCBoYXZlIGEgY3VycmVudCBkaXNwbGF5IHN0eWxlIHRoYXQgd291bGQgYmVuZWZpdCBmcm9tIHRoaXNcclxuXHRcdFx0XHRpZiAoIGVsZW0ub2Zmc2V0V2lkdGggPT09IDAgJiYgcmRpc3BsYXlzd2FwLnRlc3QoIGN1ckNTUyggZWxlbSwgXCJkaXNwbGF5XCIgKSApICkge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGpRdWVyeS5zd2FwKCBlbGVtLCBjc3NTaG93LCBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICk7XHJcblx0XHRcdFx0XHR9KTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIG5hbWUsIGV4dHJhICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9LFxyXG5cclxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlLCBleHRyYSApIHtcclxuXHRcdFx0cmV0dXJuIHNldFBvc2l0aXZlTnVtYmVyKCBlbGVtLCB2YWx1ZSwgZXh0cmEgP1xyXG5cdFx0XHRcdGF1Z21lbnRXaWR0aE9ySGVpZ2h0KFxyXG5cdFx0XHRcdFx0ZWxlbSxcclxuXHRcdFx0XHRcdG5hbWUsXHJcblx0XHRcdFx0XHRleHRyYSxcclxuXHRcdFx0XHRcdGpRdWVyeS5zdXBwb3J0LmJveFNpemluZyAmJiBqUXVlcnkuY3NzKCBlbGVtLCBcImJveFNpemluZ1wiICkgPT09IFwiYm9yZGVyLWJveFwiXHJcblx0XHRcdFx0KSA6IDBcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHR9O1xyXG59KTtcclxuXHJcbmlmICggIWpRdWVyeS5zdXBwb3J0Lm9wYWNpdHkgKSB7XHJcblx0alF1ZXJ5LmNzc0hvb2tzLm9wYWNpdHkgPSB7XHJcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcclxuXHRcdFx0Ly8gSUUgdXNlcyBmaWx0ZXJzIGZvciBvcGFjaXR5XHJcblx0XHRcdHJldHVybiByb3BhY2l0eS50ZXN0KCAoY29tcHV0ZWQgJiYgZWxlbS5jdXJyZW50U3R5bGUgPyBlbGVtLmN1cnJlbnRTdHlsZS5maWx0ZXIgOiBlbGVtLnN0eWxlLmZpbHRlcikgfHwgXCJcIiApID9cclxuXHRcdFx0XHQoIDAuMDEgKiBwYXJzZUZsb2F0KCBSZWdFeHAuJDEgKSApICsgXCJcIiA6XHJcblx0XHRcdFx0Y29tcHV0ZWQgPyBcIjFcIiA6IFwiXCI7XHJcblx0XHR9LFxyXG5cclxuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xyXG5cdFx0XHR2YXIgc3R5bGUgPSBlbGVtLnN0eWxlLFxyXG5cdFx0XHRcdGN1cnJlbnRTdHlsZSA9IGVsZW0uY3VycmVudFN0eWxlLFxyXG5cdFx0XHRcdG9wYWNpdHkgPSBqUXVlcnkuaXNOdW1lcmljKCB2YWx1ZSApID8gXCJhbHBoYShvcGFjaXR5PVwiICsgdmFsdWUgKiAxMDAgKyBcIilcIiA6IFwiXCIsXHJcblx0XHRcdFx0ZmlsdGVyID0gY3VycmVudFN0eWxlICYmIGN1cnJlbnRTdHlsZS5maWx0ZXIgfHwgc3R5bGUuZmlsdGVyIHx8IFwiXCI7XHJcblxyXG5cdFx0XHQvLyBJRSBoYXMgdHJvdWJsZSB3aXRoIG9wYWNpdHkgaWYgaXQgZG9lcyBub3QgaGF2ZSBsYXlvdXRcclxuXHRcdFx0Ly8gRm9yY2UgaXQgYnkgc2V0dGluZyB0aGUgem9vbSBsZXZlbFxyXG5cdFx0XHRzdHlsZS56b29tID0gMTtcclxuXHJcblx0XHRcdC8vIGlmIHNldHRpbmcgb3BhY2l0eSB0byAxLCBhbmQgbm8gb3RoZXIgZmlsdGVycyBleGlzdCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGZpbHRlciBhdHRyaWJ1dGUgIzY2NTJcclxuXHRcdFx0aWYgKCB2YWx1ZSA+PSAxICYmIGpRdWVyeS50cmltKCBmaWx0ZXIucmVwbGFjZSggcmFscGhhLCBcIlwiICkgKSA9PT0gXCJcIiAmJlxyXG5cdFx0XHRcdHN0eWxlLnJlbW92ZUF0dHJpYnV0ZSApIHtcclxuXHJcblx0XHRcdFx0Ly8gU2V0dGluZyBzdHlsZS5maWx0ZXIgdG8gbnVsbCwgXCJcIiAmIFwiIFwiIHN0aWxsIGxlYXZlIFwiZmlsdGVyOlwiIGluIHRoZSBjc3NUZXh0XHJcblx0XHRcdFx0Ly8gaWYgXCJmaWx0ZXI6XCIgaXMgcHJlc2VudCBhdCBhbGwsIGNsZWFyVHlwZSBpcyBkaXNhYmxlZCwgd2Ugd2FudCB0byBhdm9pZCB0aGlzXHJcblx0XHRcdFx0Ly8gc3R5bGUucmVtb3ZlQXR0cmlidXRlIGlzIElFIE9ubHksIGJ1dCBzbyBhcHBhcmVudGx5IGlzIHRoaXMgY29kZSBwYXRoLi4uXHJcblx0XHRcdFx0c3R5bGUucmVtb3ZlQXR0cmlidXRlKCBcImZpbHRlclwiICk7XHJcblxyXG5cdFx0XHRcdC8vIGlmIHRoZXJlIHRoZXJlIGlzIG5vIGZpbHRlciBzdHlsZSBhcHBsaWVkIGluIGEgY3NzIHJ1bGUsIHdlIGFyZSBkb25lXHJcblx0XHRcdFx0aWYgKCBjdXJyZW50U3R5bGUgJiYgIWN1cnJlbnRTdHlsZS5maWx0ZXIgKSB7XHJcblx0XHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBvdGhlcndpc2UsIHNldCBuZXcgZmlsdGVyIHZhbHVlc1xyXG5cdFx0XHRzdHlsZS5maWx0ZXIgPSByYWxwaGEudGVzdCggZmlsdGVyICkgP1xyXG5cdFx0XHRcdGZpbHRlci5yZXBsYWNlKCByYWxwaGEsIG9wYWNpdHkgKSA6XHJcblx0XHRcdFx0ZmlsdGVyICsgXCIgXCIgKyBvcGFjaXR5O1xyXG5cdFx0fVxyXG5cdH07XHJcbn1cclxuXHJcbi8vIFRoZXNlIGhvb2tzIGNhbm5vdCBiZSBhZGRlZCB1bnRpbCBET00gcmVhZHkgYmVjYXVzZSB0aGUgc3VwcG9ydCB0ZXN0XHJcbi8vIGZvciBpdCBpcyBub3QgcnVuIHVudGlsIGFmdGVyIERPTSByZWFkeVxyXG5qUXVlcnkoZnVuY3Rpb24oKSB7XHJcblx0aWYgKCAhalF1ZXJ5LnN1cHBvcnQucmVsaWFibGVNYXJnaW5SaWdodCApIHtcclxuXHRcdGpRdWVyeS5jc3NIb29rcy5tYXJnaW5SaWdodCA9IHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbiggZWxlbSwgY29tcHV0ZWQgKSB7XHJcblx0XHRcdFx0Ly8gV2ViS2l0IEJ1ZyAxMzM0MyAtIGdldENvbXB1dGVkU3R5bGUgcmV0dXJucyB3cm9uZyB2YWx1ZSBmb3IgbWFyZ2luLXJpZ2h0XHJcblx0XHRcdFx0Ly8gV29yayBhcm91bmQgYnkgdGVtcG9yYXJpbHkgc2V0dGluZyBlbGVtZW50IGRpc3BsYXkgdG8gaW5saW5lLWJsb2NrXHJcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5zd2FwKCBlbGVtLCB7IFwiZGlzcGxheVwiOiBcImlubGluZS1ibG9ja1wiIH0sIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdFx0aWYgKCBjb21wdXRlZCApIHtcclxuXHRcdFx0XHRcdFx0cmV0dXJuIGN1ckNTUyggZWxlbSwgXCJtYXJnaW5SaWdodFwiICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSk7XHJcblx0XHRcdH1cclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHQvLyBXZWJraXQgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkwODRcclxuXHQvLyBnZXRDb21wdXRlZFN0eWxlIHJldHVybnMgcGVyY2VudCB3aGVuIHNwZWNpZmllZCBmb3IgdG9wL2xlZnQvYm90dG9tL3JpZ2h0XHJcblx0Ly8gcmF0aGVyIHRoYW4gbWFrZSB0aGUgY3NzIG1vZHVsZSBkZXBlbmQgb24gdGhlIG9mZnNldCBtb2R1bGUsIHdlIGp1c3QgY2hlY2sgZm9yIGl0IGhlcmVcclxuXHRpZiAoICFqUXVlcnkuc3VwcG9ydC5waXhlbFBvc2l0aW9uICYmIGpRdWVyeS5mbi5wb3NpdGlvbiApIHtcclxuXHRcdGpRdWVyeS5lYWNoKCBbIFwidG9wXCIsIFwibGVmdFwiIF0sIGZ1bmN0aW9uKCBpLCBwcm9wICkge1xyXG5cdFx0XHRqUXVlcnkuY3NzSG9va3NbIHByb3AgXSA9IHtcclxuXHRcdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCApIHtcclxuXHRcdFx0XHRcdGlmICggY29tcHV0ZWQgKSB7XHJcblx0XHRcdFx0XHRcdHZhciByZXQgPSBjdXJDU1MoIGVsZW0sIHByb3AgKTtcclxuXHRcdFx0XHRcdFx0Ly8gaWYgY3VyQ1NTIHJldHVybnMgcGVyY2VudGFnZSwgZmFsbGJhY2sgdG8gb2Zmc2V0XHJcblx0XHRcdFx0XHRcdHJldHVybiBybnVtbm9ucHgudGVzdCggcmV0ICkgPyBqUXVlcnkoIGVsZW0gKS5wb3NpdGlvbigpWyBwcm9wIF0gKyBcInB4XCIgOiByZXQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9O1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxufSk7XHJcblxyXG5pZiAoIGpRdWVyeS5leHByICYmIGpRdWVyeS5leHByLmZpbHRlcnMgKSB7XHJcblx0alF1ZXJ5LmV4cHIuZmlsdGVycy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHtcclxuXHRcdHJldHVybiAoIGVsZW0ub2Zmc2V0V2lkdGggPT09IDAgJiYgZWxlbS5vZmZzZXRIZWlnaHQgPT09IDAgKSB8fCAoIWpRdWVyeS5zdXBwb3J0LnJlbGlhYmxlSGlkZGVuT2Zmc2V0cyAmJiAoKGVsZW0uc3R5bGUgJiYgZWxlbS5zdHlsZS5kaXNwbGF5KSB8fCBjdXJDU1MoIGVsZW0sIFwiZGlzcGxheVwiICkpID09PSBcIm5vbmVcIik7XHJcblx0fTtcclxuXHJcblx0alF1ZXJ5LmV4cHIuZmlsdGVycy52aXNpYmxlID0gZnVuY3Rpb24oIGVsZW0gKSB7XHJcblx0XHRyZXR1cm4gIWpRdWVyeS5leHByLmZpbHRlcnMuaGlkZGVuKCBlbGVtICk7XHJcblx0fTtcclxufVxyXG5cclxuLy8gVGhlc2UgaG9va3MgYXJlIHVzZWQgYnkgYW5pbWF0ZSB0byBleHBhbmQgcHJvcGVydGllc1xyXG5qUXVlcnkuZWFjaCh7XHJcblx0bWFyZ2luOiBcIlwiLFxyXG5cdHBhZGRpbmc6IFwiXCIsXHJcblx0Ym9yZGVyOiBcIldpZHRoXCJcclxufSwgZnVuY3Rpb24oIHByZWZpeCwgc3VmZml4ICkge1xyXG5cdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0gPSB7XHJcblx0XHRleHBhbmQ6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcclxuXHRcdFx0dmFyIGksXHJcblxyXG5cdFx0XHRcdC8vIGFzc3VtZXMgYSBzaW5nbGUgbnVtYmVyIGlmIG5vdCBhIHN0cmluZ1xyXG5cdFx0XHRcdHBhcnRzID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUuc3BsaXQoXCIgXCIpIDogWyB2YWx1ZSBdLFxyXG5cdFx0XHRcdGV4cGFuZGVkID0ge307XHJcblxyXG5cdFx0XHRmb3IgKCBpID0gMDsgaSA8IDQ7IGkrKyApIHtcclxuXHRcdFx0XHRleHBhbmRlZFsgcHJlZml4ICsgY3NzRXhwYW5kWyBpIF0gKyBzdWZmaXggXSA9XHJcblx0XHRcdFx0XHRwYXJ0c1sgaSBdIHx8IHBhcnRzWyBpIC0gMiBdIHx8IHBhcnRzWyAwIF07XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdHJldHVybiBleHBhbmRlZDtcclxuXHRcdH1cclxuXHR9O1xyXG5cclxuXHRpZiAoICFybWFyZ2luLnRlc3QoIHByZWZpeCApICkge1xyXG5cdFx0alF1ZXJ5LmNzc0hvb2tzWyBwcmVmaXggKyBzdWZmaXggXS5zZXQgPSBzZXRQb3NpdGl2ZU51bWJlcjtcclxuXHR9XHJcbn0pO1xyXG52YXIgcjIwID0gLyUyMC9nLFxyXG5cdHJicmFja2V0ID0gL1xcW1xcXSQvLFxyXG5cdHJDUkxGID0gL1xccj9cXG4vZyxcclxuXHRyaW5wdXQgPSAvXig/OmNvbG9yfGRhdGV8ZGF0ZXRpbWV8ZGF0ZXRpbWUtbG9jYWx8ZW1haWx8aGlkZGVufG1vbnRofG51bWJlcnxwYXNzd29yZHxyYW5nZXxzZWFyY2h8dGVsfHRleHR8dGltZXx1cmx8d2VlaykkL2ksXHJcblx0cnNlbGVjdFRleHRhcmVhID0gL14oPzpzZWxlY3R8dGV4dGFyZWEpL2k7XHJcblxyXG5qUXVlcnkuZm4uZXh0ZW5kKHtcclxuXHRzZXJpYWxpemU6IGZ1bmN0aW9uKCkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5wYXJhbSggdGhpcy5zZXJpYWxpemVBcnJheSgpICk7XHJcblx0fSxcclxuXHRzZXJpYWxpemVBcnJheTogZnVuY3Rpb24oKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtcclxuXHRcdFx0cmV0dXJuIHRoaXMuZWxlbWVudHMgPyBqUXVlcnkubWFrZUFycmF5KCB0aGlzLmVsZW1lbnRzICkgOiB0aGlzO1xyXG5cdFx0fSlcclxuXHRcdC5maWx0ZXIoZnVuY3Rpb24oKXtcclxuXHRcdFx0cmV0dXJuIHRoaXMubmFtZSAmJiAhdGhpcy5kaXNhYmxlZCAmJlxyXG5cdFx0XHRcdCggdGhpcy5jaGVja2VkIHx8IHJzZWxlY3RUZXh0YXJlYS50ZXN0KCB0aGlzLm5vZGVOYW1lICkgfHxcclxuXHRcdFx0XHRcdHJpbnB1dC50ZXN0KCB0aGlzLnR5cGUgKSApO1xyXG5cdFx0fSlcclxuXHRcdC5tYXAoZnVuY3Rpb24oIGksIGVsZW0gKXtcclxuXHRcdFx0dmFyIHZhbCA9IGpRdWVyeSggdGhpcyApLnZhbCgpO1xyXG5cclxuXHRcdFx0cmV0dXJuIHZhbCA9PSBudWxsID9cclxuXHRcdFx0XHRudWxsIDpcclxuXHRcdFx0XHRqUXVlcnkuaXNBcnJheSggdmFsICkgP1xyXG5cdFx0XHRcdFx0alF1ZXJ5Lm1hcCggdmFsLCBmdW5jdGlvbiggdmFsLCBpICl7XHJcblx0XHRcdFx0XHRcdHJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XHJcblx0XHRcdFx0XHR9KSA6XHJcblx0XHRcdFx0XHR7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XHJcblx0XHR9KS5nZXQoKTtcclxuXHR9XHJcbn0pO1xyXG5cclxuLy9TZXJpYWxpemUgYW4gYXJyYXkgb2YgZm9ybSBlbGVtZW50cyBvciBhIHNldCBvZlxyXG4vL2tleS92YWx1ZXMgaW50byBhIHF1ZXJ5IHN0cmluZ1xyXG5qUXVlcnkucGFyYW0gPSBmdW5jdGlvbiggYSwgdHJhZGl0aW9uYWwgKSB7XHJcblx0dmFyIHByZWZpeCxcclxuXHRcdHMgPSBbXSxcclxuXHRcdGFkZCA9IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkge1xyXG5cdFx0XHQvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHJldHVybiBpdHMgdmFsdWVcclxuXHRcdFx0dmFsdWUgPSBqUXVlcnkuaXNGdW5jdGlvbiggdmFsdWUgKSA/IHZhbHVlKCkgOiAoIHZhbHVlID09IG51bGwgPyBcIlwiIDogdmFsdWUgKTtcclxuXHRcdFx0c1sgcy5sZW5ndGggXSA9IGVuY29kZVVSSUNvbXBvbmVudCgga2V5ICkgKyBcIj1cIiArIGVuY29kZVVSSUNvbXBvbmVudCggdmFsdWUgKTtcclxuXHRcdH07XHJcblxyXG5cdC8vIFNldCB0cmFkaXRpb25hbCB0byB0cnVlIGZvciBqUXVlcnkgPD0gMS4zLjIgYmVoYXZpb3IuXHJcblx0aWYgKCB0cmFkaXRpb25hbCA9PT0gdW5kZWZpbmVkICkge1xyXG5cdFx0dHJhZGl0aW9uYWwgPSBqUXVlcnkuYWpheFNldHRpbmdzICYmIGpRdWVyeS5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWw7XHJcblx0fVxyXG5cclxuXHQvLyBJZiBhbiBhcnJheSB3YXMgcGFzc2VkIGluLCBhc3N1bWUgdGhhdCBpdCBpcyBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzLlxyXG5cdGlmICggalF1ZXJ5LmlzQXJyYXkoIGEgKSB8fCAoIGEuanF1ZXJ5ICYmICFqUXVlcnkuaXNQbGFpbk9iamVjdCggYSApICkgKSB7XHJcblx0XHQvLyBTZXJpYWxpemUgdGhlIGZvcm0gZWxlbWVudHNcclxuXHRcdGpRdWVyeS5lYWNoKCBhLCBmdW5jdGlvbigpIHtcclxuXHRcdFx0YWRkKCB0aGlzLm5hbWUsIHRoaXMudmFsdWUgKTtcclxuXHRcdH0pO1xyXG5cclxuXHR9IGVsc2Uge1xyXG5cdFx0Ly8gSWYgdHJhZGl0aW9uYWwsIGVuY29kZSB0aGUgXCJvbGRcIiB3YXkgKHRoZSB3YXkgMS4zLjIgb3Igb2xkZXJcclxuXHRcdC8vIGRpZCBpdCksIG90aGVyd2lzZSBlbmNvZGUgcGFyYW1zIHJlY3Vyc2l2ZWx5LlxyXG5cdFx0Zm9yICggcHJlZml4IGluIGEgKSB7XHJcblx0XHRcdGJ1aWxkUGFyYW1zKCBwcmVmaXgsIGFbIHByZWZpeCBdLCB0cmFkaXRpb25hbCwgYWRkICk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvLyBSZXR1cm4gdGhlIHJlc3VsdGluZyBzZXJpYWxpemF0aW9uXHJcblx0cmV0dXJuIHMuam9pbiggXCImXCIgKS5yZXBsYWNlKCByMjAsIFwiK1wiICk7XHJcbn07XHJcblxyXG5mdW5jdGlvbiBidWlsZFBhcmFtcyggcHJlZml4LCBvYmosIHRyYWRpdGlvbmFsLCBhZGQgKSB7XHJcblx0dmFyIG5hbWU7XHJcblxyXG5cdGlmICggalF1ZXJ5LmlzQXJyYXkoIG9iaiApICkge1xyXG5cdFx0Ly8gU2VyaWFsaXplIGFycmF5IGl0ZW0uXHJcblx0XHRqUXVlcnkuZWFjaCggb2JqLCBmdW5jdGlvbiggaSwgdiApIHtcclxuXHRcdFx0aWYgKCB0cmFkaXRpb25hbCB8fCByYnJhY2tldC50ZXN0KCBwcmVmaXggKSApIHtcclxuXHRcdFx0XHQvLyBUcmVhdCBlYWNoIGFycmF5IGl0ZW0gYXMgYSBzY2FsYXIuXHJcblx0XHRcdFx0YWRkKCBwcmVmaXgsIHYgKTtcclxuXHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0Ly8gSWYgYXJyYXkgaXRlbSBpcyBub24tc2NhbGFyIChhcnJheSBvciBvYmplY3QpLCBlbmNvZGUgaXRzXHJcblx0XHRcdFx0Ly8gbnVtZXJpYyBpbmRleCB0byByZXNvbHZlIGRlc2VyaWFsaXphdGlvbiBhbWJpZ3VpdHkgaXNzdWVzLlxyXG5cdFx0XHRcdC8vIE5vdGUgdGhhdCByYWNrIChhcyBvZiAxLjAuMCkgY2FuJ3QgY3VycmVudGx5IGRlc2VyaWFsaXplXHJcblx0XHRcdFx0Ly8gbmVzdGVkIGFycmF5cyBwcm9wZXJseSwgYW5kIGF0dGVtcHRpbmcgdG8gZG8gc28gbWF5IGNhdXNlXHJcblx0XHRcdFx0Ly8gYSBzZXJ2ZXIgZXJyb3IuIFBvc3NpYmxlIGZpeGVzIGFyZSB0byBtb2RpZnkgcmFjaydzXHJcblx0XHRcdFx0Ly8gZGVzZXJpYWxpemF0aW9uIGFsZ29yaXRobSBvciB0byBwcm92aWRlIGFuIG9wdGlvbiBvciBmbGFnXHJcblx0XHRcdFx0Ly8gdG8gZm9yY2UgYXJyYXkgc2VyaWFsaXphdGlvbiB0byBiZSBzaGFsbG93LlxyXG5cdFx0XHRcdGJ1aWxkUGFyYW1zKCBwcmVmaXggKyBcIltcIiArICggdHlwZW9mIHYgPT09IFwib2JqZWN0XCIgPyBpIDogXCJcIiApICsgXCJdXCIsIHYsIHRyYWRpdGlvbmFsLCBhZGQgKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblxyXG5cdH0gZWxzZSBpZiAoICF0cmFkaXRpb25hbCAmJiBqUXVlcnkudHlwZSggb2JqICkgPT09IFwib2JqZWN0XCIgKSB7XHJcblx0XHQvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uXHJcblx0XHRmb3IgKCBuYW1lIGluIG9iaiApIHtcclxuXHRcdFx0YnVpbGRQYXJhbXMoIHByZWZpeCArIFwiW1wiICsgbmFtZSArIFwiXVwiLCBvYmpbIG5hbWUgXSwgdHJhZGl0aW9uYWwsIGFkZCApO1xyXG5cdFx0fVxyXG5cclxuXHR9IGVsc2Uge1xyXG5cdFx0Ly8gU2VyaWFsaXplIHNjYWxhciBpdGVtLlxyXG5cdFx0YWRkKCBwcmVmaXgsIG9iaiApO1xyXG5cdH1cclxufVxyXG52YXIgLy8gRG9jdW1lbnQgbG9jYXRpb25cclxuXHRhamF4TG9jYXRpb24sXHJcblx0Ly8gRG9jdW1lbnQgbG9jYXRpb24gc2VnbWVudHNcclxuXHRhamF4TG9jUGFydHMsXHJcblxyXG5cdHJoYXNoID0gLyMuKiQvLFxyXG5cdHJoZWFkZXJzID0gL14oLio/KTpbIFxcdF0qKFteXFxyXFxuXSopXFxyPyQvbWcsIC8vIElFIGxlYXZlcyBhbiBcXHIgY2hhcmFjdGVyIGF0IEVPTFxyXG5cdC8vICM3NjUzLCAjODEyNSwgIzgxNTI6IGxvY2FsIHByb3RvY29sIGRldGVjdGlvblxyXG5cdHJsb2NhbFByb3RvY29sID0gL14oPzphYm91dHxhcHB8YXBwXFwtc3RvcmFnZXwuK1xcLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLFxyXG5cdHJub0NvbnRlbnQgPSAvXig/OkdFVHxIRUFEKSQvLFxyXG5cdHJwcm90b2NvbCA9IC9eXFwvXFwvLyxcclxuXHRycXVlcnkgPSAvXFw/LyxcclxuXHRyc2NyaXB0ID0gLzxzY3JpcHRcXGJbXjxdKig/Oig/ITxcXC9zY3JpcHQ+KTxbXjxdKikqPFxcL3NjcmlwdD4vZ2ksXHJcblx0cnRzID0gLyhbPyZdKV89W14mXSovLFxyXG5cdHJ1cmwgPSAvXihbXFx3XFwrXFwuXFwtXSs6KSg/OlxcL1xcLyhbXlxcLz8jOl0qKSg/OjooXFxkKyl8KXwpLyxcclxuXHJcblx0Ly8gS2VlcCBhIGNvcHkgb2YgdGhlIG9sZCBsb2FkIG1ldGhvZFxyXG5cdF9sb2FkID0galF1ZXJ5LmZuLmxvYWQsXHJcblxyXG5cdC8qIFByZWZpbHRlcnNcclxuXHQgKiAxKSBUaGV5IGFyZSB1c2VmdWwgdG8gaW50cm9kdWNlIGN1c3RvbSBkYXRhVHlwZXMgKHNlZSBhamF4L2pzb25wLmpzIGZvciBhbiBleGFtcGxlKVxyXG5cdCAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6XHJcblx0ICogICAgLSBCRUZPUkUgYXNraW5nIGZvciBhIHRyYW5zcG9ydFxyXG5cdCAqICAgIC0gQUZURVIgcGFyYW0gc2VyaWFsaXphdGlvbiAocy5kYXRhIGlzIGEgc3RyaW5nIGlmIHMucHJvY2Vzc0RhdGEgaXMgdHJ1ZSlcclxuXHQgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlXHJcblx0ICogNCkgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxyXG5cdCAqIDUpIGV4ZWN1dGlvbiB3aWxsIHN0YXJ0IHdpdGggdHJhbnNwb3J0IGRhdGFUeXBlIGFuZCBUSEVOIGNvbnRpbnVlIGRvd24gdG8gXCIqXCIgaWYgbmVlZGVkXHJcblx0ICovXHJcblx0cHJlZmlsdGVycyA9IHt9LFxyXG5cclxuXHQvKiBUcmFuc3BvcnRzIGJpbmRpbmdzXHJcblx0ICogMSkga2V5IGlzIHRoZSBkYXRhVHlwZVxyXG5cdCAqIDIpIHRoZSBjYXRjaGFsbCBzeW1ib2wgXCIqXCIgY2FuIGJlIHVzZWRcclxuXHQgKiAzKSBzZWxlY3Rpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBnbyB0byBcIipcIiBpZiBuZWVkZWRcclxuXHQgKi9cclxuXHR0cmFuc3BvcnRzID0ge30sXHJcblxyXG5cdC8vIEF2b2lkIGNvbW1lbnQtcHJvbG9nIGNoYXIgc2VxdWVuY2UgKCMxMDA5OCk7IG11c3QgYXBwZWFzZSBsaW50IGFuZCBldmFkZSBjb21wcmVzc2lvblxyXG5cdGFsbFR5cGVzID0gW1wiKi9cIl0gKyBbXCIqXCJdO1xyXG5cclxuLy8gIzgxMzgsIElFIG1heSB0aHJvdyBhbiBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmdcclxuLy8gYSBmaWVsZCBmcm9tIHdpbmRvdy5sb2NhdGlvbiBpZiBkb2N1bWVudC5kb21haW4gaGFzIGJlZW4gc2V0XHJcbnRyeSB7XHJcblx0YWpheExvY2F0aW9uID0gbG9jYXRpb24uaHJlZjtcclxufSBjYXRjaCggZSApIHtcclxuXHQvLyBVc2UgdGhlIGhyZWYgYXR0cmlidXRlIG9mIGFuIEEgZWxlbWVudFxyXG5cdC8vIHNpbmNlIElFIHdpbGwgbW9kaWZ5IGl0IGdpdmVuIGRvY3VtZW50LmxvY2F0aW9uXHJcblx0YWpheExvY2F0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJhXCIgKTtcclxuXHRhamF4TG9jYXRpb24uaHJlZiA9IFwiXCI7XHJcblx0YWpheExvY2F0aW9uID0gYWpheExvY2F0aW9uLmhyZWY7XHJcbn1cclxuXHJcbi8vIFNlZ21lbnQgbG9jYXRpb24gaW50byBwYXJ0c1xyXG5hamF4TG9jUGFydHMgPSBydXJsLmV4ZWMoIGFqYXhMb2NhdGlvbi50b0xvd2VyQ2FzZSgpICkgfHwgW107XHJcblxyXG4vLyBCYXNlIFwiY29uc3RydWN0b3JcIiBmb3IgalF1ZXJ5LmFqYXhQcmVmaWx0ZXIgYW5kIGpRdWVyeS5hamF4VHJhbnNwb3J0XHJcbmZ1bmN0aW9uIGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlICkge1xyXG5cclxuXHQvLyBkYXRhVHlwZUV4cHJlc3Npb24gaXMgb3B0aW9uYWwgYW5kIGRlZmF1bHRzIHRvIFwiKlwiXHJcblx0cmV0dXJuIGZ1bmN0aW9uKCBkYXRhVHlwZUV4cHJlc3Npb24sIGZ1bmMgKSB7XHJcblxyXG5cdFx0aWYgKCB0eXBlb2YgZGF0YVR5cGVFeHByZXNzaW9uICE9PSBcInN0cmluZ1wiICkge1xyXG5cdFx0XHRmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uO1xyXG5cdFx0XHRkYXRhVHlwZUV4cHJlc3Npb24gPSBcIipcIjtcclxuXHRcdH1cclxuXHJcblx0XHR2YXIgZGF0YVR5cGUsIGxpc3QsIHBsYWNlQmVmb3JlLFxyXG5cdFx0XHRkYXRhVHlwZXMgPSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5zcGxpdCggY29yZV9yc3BhY2UgKSxcclxuXHRcdFx0aSA9IDAsXHJcblx0XHRcdGxlbmd0aCA9IGRhdGFUeXBlcy5sZW5ndGg7XHJcblxyXG5cdFx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggZnVuYyApICkge1xyXG5cdFx0XHQvLyBGb3IgZWFjaCBkYXRhVHlwZSBpbiB0aGUgZGF0YVR5cGVFeHByZXNzaW9uXHJcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xyXG5cdFx0XHRcdGRhdGFUeXBlID0gZGF0YVR5cGVzWyBpIF07XHJcblx0XHRcdFx0Ly8gV2UgY29udHJvbCBpZiB3ZSdyZSBhc2tlZCB0byBhZGQgYmVmb3JlXHJcblx0XHRcdFx0Ly8gYW55IGV4aXN0aW5nIGVsZW1lbnRcclxuXHRcdFx0XHRwbGFjZUJlZm9yZSA9IC9eXFwrLy50ZXN0KCBkYXRhVHlwZSApO1xyXG5cdFx0XHRcdGlmICggcGxhY2VCZWZvcmUgKSB7XHJcblx0XHRcdFx0XHRkYXRhVHlwZSA9IGRhdGFUeXBlLnN1YnN0ciggMSApIHx8IFwiKlwiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRsaXN0ID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdID0gc3RydWN0dXJlWyBkYXRhVHlwZSBdIHx8IFtdO1xyXG5cdFx0XHRcdC8vIHRoZW4gd2UgYWRkIHRvIHRoZSBzdHJ1Y3R1cmUgYWNjb3JkaW5nbHlcclxuXHRcdFx0XHRsaXN0WyBwbGFjZUJlZm9yZSA/IFwidW5zaGlmdFwiIDogXCJwdXNoXCIgXSggZnVuYyApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fTtcclxufVxyXG5cclxuLy8gQmFzZSBpbnNwZWN0aW9uIGZ1bmN0aW9uIGZvciBwcmVmaWx0ZXJzIGFuZCB0cmFuc3BvcnRzXHJcbmZ1bmN0aW9uIGluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzKCBzdHJ1Y3R1cmUsIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIsXHJcblx0XHRkYXRhVHlwZSAvKiBpbnRlcm5hbCAqLywgaW5zcGVjdGVkIC8qIGludGVybmFsICovICkge1xyXG5cclxuXHRkYXRhVHlwZSA9IGRhdGFUeXBlIHx8IG9wdGlvbnMuZGF0YVR5cGVzWyAwIF07XHJcblx0aW5zcGVjdGVkID0gaW5zcGVjdGVkIHx8IHt9O1xyXG5cclxuXHRpbnNwZWN0ZWRbIGRhdGFUeXBlIF0gPSB0cnVlO1xyXG5cclxuXHR2YXIgc2VsZWN0aW9uLFxyXG5cdFx0bGlzdCA9IHN0cnVjdHVyZVsgZGF0YVR5cGUgXSxcclxuXHRcdGkgPSAwLFxyXG5cdFx0bGVuZ3RoID0gbGlzdCA/IGxpc3QubGVuZ3RoIDogMCxcclxuXHRcdGV4ZWN1dGVPbmx5ID0gKCBzdHJ1Y3R1cmUgPT09IHByZWZpbHRlcnMgKTtcclxuXHJcblx0Zm9yICggOyBpIDwgbGVuZ3RoICYmICggZXhlY3V0ZU9ubHkgfHwgIXNlbGVjdGlvbiApOyBpKysgKSB7XHJcblx0XHRzZWxlY3Rpb24gPSBsaXN0WyBpIF0oIG9wdGlvbnMsIG9yaWdpbmFsT3B0aW9ucywganFYSFIgKTtcclxuXHRcdC8vIElmIHdlIGdvdCByZWRpcmVjdGVkIHRvIGFub3RoZXIgZGF0YVR5cGVcclxuXHRcdC8vIHdlIHRyeSB0aGVyZSBpZiBleGVjdXRpbmcgb25seSBhbmQgbm90IGRvbmUgYWxyZWFkeVxyXG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0aW9uID09PSBcInN0cmluZ1wiICkge1xyXG5cdFx0XHRpZiAoICFleGVjdXRlT25seSB8fCBpbnNwZWN0ZWRbIHNlbGVjdGlvbiBdICkge1xyXG5cdFx0XHRcdHNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRvcHRpb25zLmRhdGFUeXBlcy51bnNoaWZ0KCBzZWxlY3Rpb24gKTtcclxuXHRcdFx0XHRzZWxlY3Rpb24gPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyhcclxuXHRcdFx0XHRcdFx0c3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSLCBzZWxlY3Rpb24sIGluc3BlY3RlZCApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdC8vIElmIHdlJ3JlIG9ubHkgZXhlY3V0aW5nIG9yIG5vdGhpbmcgd2FzIHNlbGVjdGVkXHJcblx0Ly8gd2UgdHJ5IHRoZSBjYXRjaGFsbCBkYXRhVHlwZSBpZiBub3QgZG9uZSBhbHJlYWR5XHJcblx0aWYgKCAoIGV4ZWN1dGVPbmx5IHx8ICFzZWxlY3Rpb24gKSAmJiAhaW5zcGVjdGVkWyBcIipcIiBdICkge1xyXG5cdFx0c2VsZWN0aW9uID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoXHJcblx0XHRcdFx0c3RydWN0dXJlLCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSLCBcIipcIiwgaW5zcGVjdGVkICk7XHJcblx0fVxyXG5cdC8vIHVubmVjZXNzYXJ5IHdoZW4gb25seSBleGVjdXRpbmcgKHByZWZpbHRlcnMpXHJcblx0Ly8gYnV0IGl0J2xsIGJlIGlnbm9yZWQgYnkgdGhlIGNhbGxlciBpbiB0aGF0IGNhc2VcclxuXHRyZXR1cm4gc2VsZWN0aW9uO1xyXG59XHJcblxyXG4vLyBBIHNwZWNpYWwgZXh0ZW5kIGZvciBhamF4IG9wdGlvbnNcclxuLy8gdGhhdCB0YWtlcyBcImZsYXRcIiBvcHRpb25zIChub3QgdG8gYmUgZGVlcCBleHRlbmRlZClcclxuLy8gRml4ZXMgIzk4ODdcclxuZnVuY3Rpb24gYWpheEV4dGVuZCggdGFyZ2V0LCBzcmMgKSB7XHJcblx0dmFyIGtleSwgZGVlcCxcclxuXHRcdGZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9ucyB8fCB7fTtcclxuXHRmb3IgKCBrZXkgaW4gc3JjICkge1xyXG5cdFx0aWYgKCBzcmNbIGtleSBdICE9PSB1bmRlZmluZWQgKSB7XHJcblx0XHRcdCggZmxhdE9wdGlvbnNbIGtleSBdID8gdGFyZ2V0IDogKCBkZWVwIHx8ICggZGVlcCA9IHt9ICkgKSApWyBrZXkgXSA9IHNyY1sga2V5IF07XHJcblx0XHR9XHJcblx0fVxyXG5cdGlmICggZGVlcCApIHtcclxuXHRcdGpRdWVyeS5leHRlbmQoIHRydWUsIHRhcmdldCwgZGVlcCApO1xyXG5cdH1cclxufVxyXG5cclxualF1ZXJ5LmZuLmxvYWQgPSBmdW5jdGlvbiggdXJsLCBwYXJhbXMsIGNhbGxiYWNrICkge1xyXG5cdGlmICggdHlwZW9mIHVybCAhPT0gXCJzdHJpbmdcIiAmJiBfbG9hZCApIHtcclxuXHRcdHJldHVybiBfbG9hZC5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XHJcblx0fVxyXG5cclxuXHQvLyBEb24ndCBkbyBhIHJlcXVlc3QgaWYgbm8gZWxlbWVudHMgYXJlIGJlaW5nIHJlcXVlc3RlZFxyXG5cdGlmICggIXRoaXMubGVuZ3RoICkge1xyXG5cdFx0cmV0dXJuIHRoaXM7XHJcblx0fVxyXG5cclxuXHR2YXIgc2VsZWN0b3IsIHR5cGUsIHJlc3BvbnNlLFxyXG5cdFx0c2VsZiA9IHRoaXMsXHJcblx0XHRvZmYgPSB1cmwuaW5kZXhPZihcIiBcIik7XHJcblxyXG5cdGlmICggb2ZmID49IDAgKSB7XHJcblx0XHRzZWxlY3RvciA9IHVybC5zbGljZSggb2ZmLCB1cmwubGVuZ3RoICk7XHJcblx0XHR1cmwgPSB1cmwuc2xpY2UoIDAsIG9mZiApO1xyXG5cdH1cclxuXHJcblx0Ly8gSWYgaXQncyBhIGZ1bmN0aW9uXHJcblx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7XHJcblxyXG5cdFx0Ly8gV2UgYXNzdW1lIHRoYXQgaXQncyB0aGUgY2FsbGJhY2tcclxuXHRcdGNhbGxiYWNrID0gcGFyYW1zO1xyXG5cdFx0cGFyYW1zID0gdW5kZWZpbmVkO1xyXG5cclxuXHQvLyBPdGhlcndpc2UsIGJ1aWxkIGEgcGFyYW0gc3RyaW5nXHJcblx0fSBlbHNlIGlmICggcGFyYW1zICYmIHR5cGVvZiBwYXJhbXMgPT09IFwib2JqZWN0XCIgKSB7XHJcblx0XHR0eXBlID0gXCJQT1NUXCI7XHJcblx0fVxyXG5cclxuXHQvLyBSZXF1ZXN0IHRoZSByZW1vdGUgZG9jdW1lbnRcclxuXHRqUXVlcnkuYWpheCh7XHJcblx0XHR1cmw6IHVybCxcclxuXHJcblx0XHQvLyBpZiBcInR5cGVcIiB2YXJpYWJsZSBpcyB1bmRlZmluZWQsIHRoZW4gXCJHRVRcIiBtZXRob2Qgd2lsbCBiZSB1c2VkXHJcblx0XHR0eXBlOiB0eXBlLFxyXG5cdFx0ZGF0YVR5cGU6IFwiaHRtbFwiLFxyXG5cdFx0ZGF0YTogcGFyYW1zLFxyXG5cdFx0Y29tcGxldGU6IGZ1bmN0aW9uKCBqcVhIUiwgc3RhdHVzICkge1xyXG5cdFx0XHRpZiAoIGNhbGxiYWNrICkge1xyXG5cdFx0XHRcdHNlbGYuZWFjaCggY2FsbGJhY2ssIHJlc3BvbnNlIHx8IFsganFYSFIucmVzcG9uc2VUZXh0LCBzdGF0dXMsIGpxWEhSIF0gKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH0pLmRvbmUoZnVuY3Rpb24oIHJlc3BvbnNlVGV4dCApIHtcclxuXHJcblx0XHQvLyBTYXZlIHJlc3BvbnNlIGZvciB1c2UgaW4gY29tcGxldGUgY2FsbGJhY2tcclxuXHRcdHJlc3BvbnNlID0gYXJndW1lbnRzO1xyXG5cclxuXHRcdC8vIFNlZSBpZiBhIHNlbGVjdG9yIHdhcyBzcGVjaWZpZWRcclxuXHRcdHNlbGYuaHRtbCggc2VsZWN0b3IgP1xyXG5cclxuXHRcdFx0Ly8gQ3JlYXRlIGEgZHVtbXkgZGl2IHRvIGhvbGQgdGhlIHJlc3VsdHNcclxuXHRcdFx0alF1ZXJ5KFwiPGRpdj5cIilcclxuXHJcblx0XHRcdFx0Ly8gaW5qZWN0IHRoZSBjb250ZW50cyBvZiB0aGUgZG9jdW1lbnQgaW4sIHJlbW92aW5nIHRoZSBzY3JpcHRzXHJcblx0XHRcdFx0Ly8gdG8gYXZvaWQgYW55ICdQZXJtaXNzaW9uIERlbmllZCcgZXJyb3JzIGluIElFXHJcblx0XHRcdFx0LmFwcGVuZCggcmVzcG9uc2VUZXh0LnJlcGxhY2UoIHJzY3JpcHQsIFwiXCIgKSApXHJcblxyXG5cdFx0XHRcdC8vIExvY2F0ZSB0aGUgc3BlY2lmaWVkIGVsZW1lbnRzXHJcblx0XHRcdFx0LmZpbmQoIHNlbGVjdG9yICkgOlxyXG5cclxuXHRcdFx0Ly8gSWYgbm90LCBqdXN0IGluamVjdCB0aGUgZnVsbCByZXN1bHRcclxuXHRcdFx0cmVzcG9uc2VUZXh0ICk7XHJcblxyXG5cdH0pO1xyXG5cclxuXHRyZXR1cm4gdGhpcztcclxufTtcclxuXHJcbi8vIEF0dGFjaCBhIGJ1bmNoIG9mIGZ1bmN0aW9ucyBmb3IgaGFuZGxpbmcgY29tbW9uIEFKQVggZXZlbnRzXHJcbmpRdWVyeS5lYWNoKCBcImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kXCIuc3BsaXQoIFwiIFwiICksIGZ1bmN0aW9uKCBpLCBvICl7XHJcblx0alF1ZXJ5LmZuWyBvIF0gPSBmdW5jdGlvbiggZiApe1xyXG5cdFx0cmV0dXJuIHRoaXMub24oIG8sIGYgKTtcclxuXHR9O1xyXG59KTtcclxuXHJcbmpRdWVyeS5lYWNoKCBbIFwiZ2V0XCIsIFwicG9zdFwiIF0sIGZ1bmN0aW9uKCBpLCBtZXRob2QgKSB7XHJcblx0alF1ZXJ5WyBtZXRob2QgXSA9IGZ1bmN0aW9uKCB1cmwsIGRhdGEsIGNhbGxiYWNrLCB0eXBlICkge1xyXG5cdFx0Ly8gc2hpZnQgYXJndW1lbnRzIGlmIGRhdGEgYXJndW1lbnQgd2FzIG9taXR0ZWRcclxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIGRhdGEgKSApIHtcclxuXHRcdFx0dHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7XHJcblx0XHRcdGNhbGxiYWNrID0gZGF0YTtcclxuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4galF1ZXJ5LmFqYXgoe1xyXG5cdFx0XHR0eXBlOiBtZXRob2QsXHJcblx0XHRcdHVybDogdXJsLFxyXG5cdFx0XHRkYXRhOiBkYXRhLFxyXG5cdFx0XHRzdWNjZXNzOiBjYWxsYmFjayxcclxuXHRcdFx0ZGF0YVR5cGU6IHR5cGVcclxuXHRcdH0pO1xyXG5cdH07XHJcbn0pO1xyXG5cclxualF1ZXJ5LmV4dGVuZCh7XHJcblxyXG5cdGdldFNjcmlwdDogZnVuY3Rpb24oIHVybCwgY2FsbGJhY2sgKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LmdldCggdXJsLCB1bmRlZmluZWQsIGNhbGxiYWNrLCBcInNjcmlwdFwiICk7XHJcblx0fSxcclxuXHJcblx0Z2V0SlNPTjogZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2sgKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgXCJqc29uXCIgKTtcclxuXHR9LFxyXG5cclxuXHQvLyBDcmVhdGVzIGEgZnVsbCBmbGVkZ2VkIHNldHRpbmdzIG9iamVjdCBpbnRvIHRhcmdldFxyXG5cdC8vIHdpdGggYm90aCBhamF4U2V0dGluZ3MgYW5kIHNldHRpbmdzIGZpZWxkcy5cclxuXHQvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLlxyXG5cdGFqYXhTZXR1cDogZnVuY3Rpb24oIHRhcmdldCwgc2V0dGluZ3MgKSB7XHJcblx0XHRpZiAoIHNldHRpbmdzICkge1xyXG5cdFx0XHQvLyBCdWlsZGluZyBhIHNldHRpbmdzIG9iamVjdFxyXG5cdFx0XHRhamF4RXh0ZW5kKCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MgKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdC8vIEV4dGVuZGluZyBhamF4U2V0dGluZ3NcclxuXHRcdFx0c2V0dGluZ3MgPSB0YXJnZXQ7XHJcblx0XHRcdHRhcmdldCA9IGpRdWVyeS5hamF4U2V0dGluZ3M7XHJcblx0XHR9XHJcblx0XHRhamF4RXh0ZW5kKCB0YXJnZXQsIHNldHRpbmdzICk7XHJcblx0XHRyZXR1cm4gdGFyZ2V0O1xyXG5cdH0sXHJcblxyXG5cdGFqYXhTZXR0aW5nczoge1xyXG5cdFx0dXJsOiBhamF4TG9jYXRpb24sXHJcblx0XHRpc0xvY2FsOiBybG9jYWxQcm90b2NvbC50ZXN0KCBhamF4TG9jUGFydHNbIDEgXSApLFxyXG5cdFx0Z2xvYmFsOiB0cnVlLFxyXG5cdFx0dHlwZTogXCJHRVRcIixcclxuXHRcdGNvbnRlbnRUeXBlOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsgY2hhcnNldD1VVEYtOFwiLFxyXG5cdFx0cHJvY2Vzc0RhdGE6IHRydWUsXHJcblx0XHRhc3luYzogdHJ1ZSxcclxuXHRcdC8qXHJcblx0XHR0aW1lb3V0OiAwLFxyXG5cdFx0ZGF0YTogbnVsbCxcclxuXHRcdGRhdGFUeXBlOiBudWxsLFxyXG5cdFx0dXNlcm5hbWU6IG51bGwsXHJcblx0XHRwYXNzd29yZDogbnVsbCxcclxuXHRcdGNhY2hlOiBudWxsLFxyXG5cdFx0dGhyb3dzOiBmYWxzZSxcclxuXHRcdHRyYWRpdGlvbmFsOiBmYWxzZSxcclxuXHRcdGhlYWRlcnM6IHt9LFxyXG5cdFx0Ki9cclxuXHJcblx0XHRhY2NlcHRzOiB7XHJcblx0XHRcdHhtbDogXCJhcHBsaWNhdGlvbi94bWwsIHRleHQveG1sXCIsXHJcblx0XHRcdGh0bWw6IFwidGV4dC9odG1sXCIsXHJcblx0XHRcdHRleHQ6IFwidGV4dC9wbGFpblwiLFxyXG5cdFx0XHRqc29uOiBcImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdFwiLFxyXG5cdFx0XHRcIipcIjogYWxsVHlwZXNcclxuXHRcdH0sXHJcblxyXG5cdFx0Y29udGVudHM6IHtcclxuXHRcdFx0eG1sOiAveG1sLyxcclxuXHRcdFx0aHRtbDogL2h0bWwvLFxyXG5cdFx0XHRqc29uOiAvanNvbi9cclxuXHRcdH0sXHJcblxyXG5cdFx0cmVzcG9uc2VGaWVsZHM6IHtcclxuXHRcdFx0eG1sOiBcInJlc3BvbnNlWE1MXCIsXHJcblx0XHRcdHRleHQ6IFwicmVzcG9uc2VUZXh0XCJcclxuXHRcdH0sXHJcblxyXG5cdFx0Ly8gTGlzdCBvZiBkYXRhIGNvbnZlcnRlcnNcclxuXHRcdC8vIDEpIGtleSBmb3JtYXQgaXMgXCJzb3VyY2VfdHlwZSBkZXN0aW5hdGlvbl90eXBlXCIgKGEgc2luZ2xlIHNwYWNlIGluLWJldHdlZW4pXHJcblx0XHQvLyAyKSB0aGUgY2F0Y2hhbGwgc3ltYm9sIFwiKlwiIGNhbiBiZSB1c2VkIGZvciBzb3VyY2VfdHlwZVxyXG5cdFx0Y29udmVydGVyczoge1xyXG5cclxuXHRcdFx0Ly8gQ29udmVydCBhbnl0aGluZyB0byB0ZXh0XHJcblx0XHRcdFwiKiB0ZXh0XCI6IHdpbmRvdy5TdHJpbmcsXHJcblxyXG5cdFx0XHQvLyBUZXh0IHRvIGh0bWwgKHRydWUgPSBubyB0cmFuc2Zvcm1hdGlvbilcclxuXHRcdFx0XCJ0ZXh0IGh0bWxcIjogdHJ1ZSxcclxuXHJcblx0XHRcdC8vIEV2YWx1YXRlIHRleHQgYXMgYSBqc29uIGV4cHJlc3Npb25cclxuXHRcdFx0XCJ0ZXh0IGpzb25cIjogalF1ZXJ5LnBhcnNlSlNPTixcclxuXHJcblx0XHRcdC8vIFBhcnNlIHRleHQgYXMgeG1sXHJcblx0XHRcdFwidGV4dCB4bWxcIjogalF1ZXJ5LnBhcnNlWE1MXHJcblx0XHR9LFxyXG5cclxuXHRcdC8vIEZvciBvcHRpb25zIHRoYXQgc2hvdWxkbid0IGJlIGRlZXAgZXh0ZW5kZWQ6XHJcblx0XHQvLyB5b3UgY2FuIGFkZCB5b3VyIG93biBjdXN0b20gb3B0aW9ucyBoZXJlIGlmXHJcblx0XHQvLyBhbmQgd2hlbiB5b3UgY3JlYXRlIG9uZSB0aGF0IHNob3VsZG4ndCBiZVxyXG5cdFx0Ly8gZGVlcCBleHRlbmRlZCAoc2VlIGFqYXhFeHRlbmQpXHJcblx0XHRmbGF0T3B0aW9uczoge1xyXG5cdFx0XHRjb250ZXh0OiB0cnVlLFxyXG5cdFx0XHR1cmw6IHRydWVcclxuXHRcdH1cclxuXHR9LFxyXG5cclxuXHRhamF4UHJlZmlsdGVyOiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMgKSxcclxuXHRhamF4VHJhbnNwb3J0OiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHRyYW5zcG9ydHMgKSxcclxuXHJcblx0Ly8gTWFpbiBtZXRob2RcclxuXHRhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkge1xyXG5cclxuXHRcdC8vIElmIHVybCBpcyBhbiBvYmplY3QsIHNpbXVsYXRlIHByZS0xLjUgc2lnbmF0dXJlXHJcblx0XHRpZiAoIHR5cGVvZiB1cmwgPT09IFwib2JqZWN0XCIgKSB7XHJcblx0XHRcdG9wdGlvbnMgPSB1cmw7XHJcblx0XHRcdHVybCA9IHVuZGVmaW5lZDtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBGb3JjZSBvcHRpb25zIHRvIGJlIGFuIG9iamVjdFxyXG5cdFx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XHJcblxyXG5cdFx0dmFyIC8vIGlmTW9kaWZpZWQga2V5XHJcblx0XHRcdGlmTW9kaWZpZWRLZXksXHJcblx0XHRcdC8vIFJlc3BvbnNlIGhlYWRlcnNcclxuXHRcdFx0cmVzcG9uc2VIZWFkZXJzU3RyaW5nLFxyXG5cdFx0XHRyZXNwb25zZUhlYWRlcnMsXHJcblx0XHRcdC8vIHRyYW5zcG9ydFxyXG5cdFx0XHR0cmFuc3BvcnQsXHJcblx0XHRcdC8vIHRpbWVvdXQgaGFuZGxlXHJcblx0XHRcdHRpbWVvdXRUaW1lcixcclxuXHRcdFx0Ly8gQ3Jvc3MtZG9tYWluIGRldGVjdGlvbiB2YXJzXHJcblx0XHRcdHBhcnRzLFxyXG5cdFx0XHQvLyBUbyBrbm93IGlmIGdsb2JhbCBldmVudHMgYXJlIHRvIGJlIGRpc3BhdGNoZWRcclxuXHRcdFx0ZmlyZUdsb2JhbHMsXHJcblx0XHRcdC8vIExvb3AgdmFyaWFibGVcclxuXHRcdFx0aSxcclxuXHRcdFx0Ly8gQ3JlYXRlIHRoZSBmaW5hbCBvcHRpb25zIG9iamVjdFxyXG5cdFx0XHRzID0galF1ZXJ5LmFqYXhTZXR1cCgge30sIG9wdGlvbnMgKSxcclxuXHRcdFx0Ly8gQ2FsbGJhY2tzIGNvbnRleHRcclxuXHRcdFx0Y2FsbGJhY2tDb250ZXh0ID0gcy5jb250ZXh0IHx8IHMsXHJcblx0XHRcdC8vIENvbnRleHQgZm9yIGdsb2JhbCBldmVudHNcclxuXHRcdFx0Ly8gSXQncyB0aGUgY2FsbGJhY2tDb250ZXh0IGlmIG9uZSB3YXMgcHJvdmlkZWQgaW4gdGhlIG9wdGlvbnNcclxuXHRcdFx0Ly8gYW5kIGlmIGl0J3MgYSBET00gbm9kZSBvciBhIGpRdWVyeSBjb2xsZWN0aW9uXHJcblx0XHRcdGdsb2JhbEV2ZW50Q29udGV4dCA9IGNhbGxiYWNrQ29udGV4dCAhPT0gcyAmJlxyXG5cdFx0XHRcdCggY2FsbGJhY2tDb250ZXh0Lm5vZGVUeXBlIHx8IGNhbGxiYWNrQ29udGV4dCBpbnN0YW5jZW9mIGpRdWVyeSApID9cclxuXHRcdFx0XHRcdFx0alF1ZXJ5KCBjYWxsYmFja0NvbnRleHQgKSA6IGpRdWVyeS5ldmVudCxcclxuXHRcdFx0Ly8gRGVmZXJyZWRzXHJcblx0XHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCksXHJcblx0XHRcdGNvbXBsZXRlRGVmZXJyZWQgPSBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSxcclxuXHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3NcclxuXHRcdFx0c3RhdHVzQ29kZSA9IHMuc3RhdHVzQ29kZSB8fCB7fSxcclxuXHRcdFx0Ly8gSGVhZGVycyAodGhleSBhcmUgc2VudCBhbGwgYXQgb25jZSlcclxuXHRcdFx0cmVxdWVzdEhlYWRlcnMgPSB7fSxcclxuXHRcdFx0cmVxdWVzdEhlYWRlcnNOYW1lcyA9IHt9LFxyXG5cdFx0XHQvLyBUaGUganFYSFIgc3RhdGVcclxuXHRcdFx0c3RhdGUgPSAwLFxyXG5cdFx0XHQvLyBEZWZhdWx0IGFib3J0IG1lc3NhZ2VcclxuXHRcdFx0c3RyQWJvcnQgPSBcImNhbmNlbGVkXCIsXHJcblx0XHRcdC8vIEZha2UgeGhyXHJcblx0XHRcdGpxWEhSID0ge1xyXG5cclxuXHRcdFx0XHRyZWFkeVN0YXRlOiAwLFxyXG5cclxuXHRcdFx0XHQvLyBDYWNoZXMgdGhlIGhlYWRlclxyXG5cdFx0XHRcdHNldFJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcclxuXHRcdFx0XHRcdGlmICggIXN0YXRlICkge1xyXG5cdFx0XHRcdFx0XHR2YXIgbG5hbWUgPSBuYW1lLnRvTG93ZXJDYXNlKCk7XHJcblx0XHRcdFx0XHRcdG5hbWUgPSByZXF1ZXN0SGVhZGVyc05hbWVzWyBsbmFtZSBdID0gcmVxdWVzdEhlYWRlcnNOYW1lc1sgbG5hbWUgXSB8fCBuYW1lO1xyXG5cdFx0XHRcdFx0XHRyZXF1ZXN0SGVhZGVyc1sgbmFtZSBdID0gdmFsdWU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHQvLyBSYXcgc3RyaW5nXHJcblx0XHRcdFx0Z2V0QWxsUmVzcG9uc2VIZWFkZXJzOiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdHJldHVybiBzdGF0ZSA9PT0gMiA/IHJlc3BvbnNlSGVhZGVyc1N0cmluZyA6IG51bGw7XHJcblx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0Ly8gQnVpbGRzIGhlYWRlcnMgaGFzaHRhYmxlIGlmIG5lZWRlZFxyXG5cdFx0XHRcdGdldFJlc3BvbnNlSGVhZGVyOiBmdW5jdGlvbigga2V5ICkge1xyXG5cdFx0XHRcdFx0dmFyIG1hdGNoO1xyXG5cdFx0XHRcdFx0aWYgKCBzdGF0ZSA9PT0gMiApIHtcclxuXHRcdFx0XHRcdFx0aWYgKCAhcmVzcG9uc2VIZWFkZXJzICkge1xyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlSGVhZGVycyA9IHt9O1xyXG5cdFx0XHRcdFx0XHRcdHdoaWxlKCAoIG1hdGNoID0gcmhlYWRlcnMuZXhlYyggcmVzcG9uc2VIZWFkZXJzU3RyaW5nICkgKSApIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJlc3BvbnNlSGVhZGVyc1sgbWF0Y2hbMV0udG9Mb3dlckNhc2UoKSBdID0gbWF0Y2hbIDIgXTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0bWF0Y2ggPSByZXNwb25zZUhlYWRlcnNbIGtleS50b0xvd2VyQ2FzZSgpIF07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRyZXR1cm4gbWF0Y2ggPT09IHVuZGVmaW5lZCA/IG51bGwgOiBtYXRjaDtcclxuXHRcdFx0XHR9LFxyXG5cclxuXHRcdFx0XHQvLyBPdmVycmlkZXMgcmVzcG9uc2UgY29udGVudC10eXBlIGhlYWRlclxyXG5cdFx0XHRcdG92ZXJyaWRlTWltZVR5cGU6IGZ1bmN0aW9uKCB0eXBlICkge1xyXG5cdFx0XHRcdFx0aWYgKCAhc3RhdGUgKSB7XHJcblx0XHRcdFx0XHRcdHMubWltZVR5cGUgPSB0eXBlO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XHJcblx0XHRcdFx0fSxcclxuXHJcblx0XHRcdFx0Ly8gQ2FuY2VsIHRoZSByZXF1ZXN0XHJcblx0XHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCBzdGF0dXNUZXh0ICkge1xyXG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IHN0YXR1c1RleHQgfHwgc3RyQWJvcnQ7XHJcblx0XHRcdFx0XHRpZiAoIHRyYW5zcG9ydCApIHtcclxuXHRcdFx0XHRcdFx0dHJhbnNwb3J0LmFib3J0KCBzdGF0dXNUZXh0ICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRkb25lKCAwLCBzdGF0dXNUZXh0ICk7XHJcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH07XHJcblxyXG5cdFx0Ly8gQ2FsbGJhY2sgZm9yIHdoZW4gZXZlcnl0aGluZyBpcyBkb25lXHJcblx0XHQvLyBJdCBpcyBkZWZpbmVkIGhlcmUgYmVjYXVzZSBqc2xpbnQgY29tcGxhaW5zIGlmIGl0IGlzIGRlY2xhcmVkXHJcblx0XHQvLyBhdCB0aGUgZW5kIG9mIHRoZSBmdW5jdGlvbiAod2hpY2ggd291bGQgYmUgbW9yZSBsb2dpY2FsIGFuZCByZWFkYWJsZSlcclxuXHRcdGZ1bmN0aW9uIGRvbmUoIHN0YXR1cywgbmF0aXZlU3RhdHVzVGV4dCwgcmVzcG9uc2VzLCBoZWFkZXJzICkge1xyXG5cdFx0XHR2YXIgaXNTdWNjZXNzLCBzdWNjZXNzLCBlcnJvciwgcmVzcG9uc2UsIG1vZGlmaWVkLFxyXG5cdFx0XHRcdHN0YXR1c1RleHQgPSBuYXRpdmVTdGF0dXNUZXh0O1xyXG5cclxuXHRcdFx0Ly8gQ2FsbGVkIG9uY2VcclxuXHRcdFx0aWYgKCBzdGF0ZSA9PT0gMiApIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFN0YXRlIGlzIFwiZG9uZVwiIG5vd1xyXG5cdFx0XHRzdGF0ZSA9IDI7XHJcblxyXG5cdFx0XHQvLyBDbGVhciB0aW1lb3V0IGlmIGl0IGV4aXN0c1xyXG5cdFx0XHRpZiAoIHRpbWVvdXRUaW1lciApIHtcclxuXHRcdFx0XHRjbGVhclRpbWVvdXQoIHRpbWVvdXRUaW1lciApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBEZXJlZmVyZW5jZSB0cmFuc3BvcnQgZm9yIGVhcmx5IGdhcmJhZ2UgY29sbGVjdGlvblxyXG5cdFx0XHQvLyAobm8gbWF0dGVyIGhvdyBsb25nIHRoZSBqcVhIUiBvYmplY3Qgd2lsbCBiZSB1c2VkKVxyXG5cdFx0XHR0cmFuc3BvcnQgPSB1bmRlZmluZWQ7XHJcblxyXG5cdFx0XHQvLyBDYWNoZSByZXNwb25zZSBoZWFkZXJzXHJcblx0XHRcdHJlc3BvbnNlSGVhZGVyc1N0cmluZyA9IGhlYWRlcnMgfHwgXCJcIjtcclxuXHJcblx0XHRcdC8vIFNldCByZWFkeVN0YXRlXHJcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7XHJcblxyXG5cdFx0XHQvLyBHZXQgcmVzcG9uc2UgZGF0YVxyXG5cdFx0XHRpZiAoIHJlc3BvbnNlcyApIHtcclxuXHRcdFx0XHRyZXNwb25zZSA9IGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gSWYgc3VjY2Vzc2Z1bCwgaGFuZGxlIHR5cGUgY2hhaW5pbmdcclxuXHRcdFx0aWYgKCBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCB8fCBzdGF0dXMgPT09IDMwNCApIHtcclxuXHJcblx0XHRcdFx0Ly8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS5cclxuXHRcdFx0XHRpZiAoIHMuaWZNb2RpZmllZCApIHtcclxuXHJcblx0XHRcdFx0XHRtb2RpZmllZCA9IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKFwiTGFzdC1Nb2RpZmllZFwiKTtcclxuXHRcdFx0XHRcdGlmICggbW9kaWZpZWQgKSB7XHJcblx0XHRcdFx0XHRcdGpRdWVyeS5sYXN0TW9kaWZpZWRbIGlmTW9kaWZpZWRLZXkgXSA9IG1vZGlmaWVkO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0bW9kaWZpZWQgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlcihcIkV0YWdcIik7XHJcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xyXG5cdFx0XHRcdFx0XHRqUXVlcnkuZXRhZ1sgaWZNb2RpZmllZEtleSBdID0gbW9kaWZpZWQ7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBJZiBub3QgbW9kaWZpZWRcclxuXHRcdFx0XHRpZiAoIHN0YXR1cyA9PT0gMzA0ICkge1xyXG5cclxuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcIm5vdG1vZGlmaWVkXCI7XHJcblx0XHRcdFx0XHRpc1N1Y2Nlc3MgPSB0cnVlO1xyXG5cclxuXHRcdFx0XHQvLyBJZiB3ZSBoYXZlIGRhdGFcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cclxuXHRcdFx0XHRcdGlzU3VjY2VzcyA9IGFqYXhDb252ZXJ0KCBzLCByZXNwb25zZSApO1xyXG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IGlzU3VjY2Vzcy5zdGF0ZTtcclxuXHRcdFx0XHRcdHN1Y2Nlc3MgPSBpc1N1Y2Nlc3MuZGF0YTtcclxuXHRcdFx0XHRcdGVycm9yID0gaXNTdWNjZXNzLmVycm9yO1xyXG5cdFx0XHRcdFx0aXNTdWNjZXNzID0gIWVycm9yO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHQvLyBXZSBleHRyYWN0IGVycm9yIGZyb20gc3RhdHVzVGV4dFxyXG5cdFx0XHRcdC8vIHRoZW4gbm9ybWFsaXplIHN0YXR1c1RleHQgYW5kIHN0YXR1cyBmb3Igbm9uLWFib3J0c1xyXG5cdFx0XHRcdGVycm9yID0gc3RhdHVzVGV4dDtcclxuXHRcdFx0XHRpZiAoICFzdGF0dXNUZXh0IHx8IHN0YXR1cyApIHtcclxuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcImVycm9yXCI7XHJcblx0XHRcdFx0XHRpZiAoIHN0YXR1cyA8IDAgKSB7XHJcblx0XHRcdFx0XHRcdHN0YXR1cyA9IDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBTZXQgZGF0YSBmb3IgdGhlIGZha2UgeGhyIG9iamVjdFxyXG5cdFx0XHRqcVhIUi5zdGF0dXMgPSBzdGF0dXM7XHJcblx0XHRcdGpxWEhSLnN0YXR1c1RleHQgPSBcIlwiICsgKCBuYXRpdmVTdGF0dXNUZXh0IHx8IHN0YXR1c1RleHQgKTtcclxuXHJcblx0XHRcdC8vIFN1Y2Nlc3MvRXJyb3JcclxuXHRcdFx0aWYgKCBpc1N1Y2Nlc3MgKSB7XHJcblx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGNhbGxiYWNrQ29udGV4dCwgWyBzdWNjZXNzLCBzdGF0dXNUZXh0LCBqcVhIUiBdICk7XHJcblx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXHJcblx0XHRcdGpxWEhSLnN0YXR1c0NvZGUoIHN0YXR1c0NvZGUgKTtcclxuXHRcdFx0c3RhdHVzQ29kZSA9IHVuZGVmaW5lZDtcclxuXHJcblx0XHRcdGlmICggZmlyZUdsb2JhbHMgKSB7XHJcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFwiICsgKCBpc1N1Y2Nlc3MgPyBcIlN1Y2Nlc3NcIiA6IFwiRXJyb3JcIiApLFxyXG5cdFx0XHRcdFx0XHRbIGpxWEhSLCBzLCBpc1N1Y2Nlc3MgPyBzdWNjZXNzIDogZXJyb3IgXSApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBDb21wbGV0ZVxyXG5cdFx0XHRjb21wbGV0ZURlZmVycmVkLmZpcmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsganFYSFIsIHN0YXR1c1RleHQgXSApO1xyXG5cclxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcclxuXHRcdFx0XHRnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggXCJhamF4Q29tcGxldGVcIiwgWyBqcVhIUiwgcyBdICk7XHJcblx0XHRcdFx0Ly8gSGFuZGxlIHRoZSBnbG9iYWwgQUpBWCBjb3VudGVyXHJcblx0XHRcdFx0aWYgKCAhKCAtLWpRdWVyeS5hY3RpdmUgKSApIHtcclxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBcImFqYXhTdG9wXCIgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBBdHRhY2ggZGVmZXJyZWRzXHJcblx0XHRkZWZlcnJlZC5wcm9taXNlKCBqcVhIUiApO1xyXG5cdFx0anFYSFIuc3VjY2VzcyA9IGpxWEhSLmRvbmU7XHJcblx0XHRqcVhIUi5lcnJvciA9IGpxWEhSLmZhaWw7XHJcblx0XHRqcVhIUi5jb21wbGV0ZSA9IGNvbXBsZXRlRGVmZXJyZWQuYWRkO1xyXG5cclxuXHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXHJcblx0XHRqcVhIUi5zdGF0dXNDb2RlID0gZnVuY3Rpb24oIG1hcCApIHtcclxuXHRcdFx0aWYgKCBtYXAgKSB7XHJcblx0XHRcdFx0dmFyIHRtcDtcclxuXHRcdFx0XHRpZiAoIHN0YXRlIDwgMiApIHtcclxuXHRcdFx0XHRcdGZvciAoIHRtcCBpbiBtYXAgKSB7XHJcblx0XHRcdFx0XHRcdHN0YXR1c0NvZGVbIHRtcCBdID0gWyBzdGF0dXNDb2RlW3RtcF0sIG1hcFt0bXBdIF07XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdHRtcCA9IG1hcFsganFYSFIuc3RhdHVzIF07XHJcblx0XHRcdFx0XHRqcVhIUi5hbHdheXMoIHRtcCApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdH07XHJcblxyXG5cdFx0Ly8gUmVtb3ZlIGhhc2ggY2hhcmFjdGVyICgjNzUzMTogYW5kIHN0cmluZyBwcm9tb3Rpb24pXHJcblx0XHQvLyBBZGQgcHJvdG9jb2wgaWYgbm90IHByb3ZpZGVkICgjNTg2NjogSUU3IGlzc3VlIHdpdGggcHJvdG9jb2wtbGVzcyB1cmxzKVxyXG5cdFx0Ly8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlXHJcblx0XHRzLnVybCA9ICggKCB1cmwgfHwgcy51cmwgKSArIFwiXCIgKS5yZXBsYWNlKCByaGFzaCwgXCJcIiApLnJlcGxhY2UoIHJwcm90b2NvbCwgYWpheExvY1BhcnRzWyAxIF0gKyBcIi8vXCIgKTtcclxuXHJcblx0XHQvLyBFeHRyYWN0IGRhdGFUeXBlcyBsaXN0XHJcblx0XHRzLmRhdGFUeXBlcyA9IGpRdWVyeS50cmltKCBzLmRhdGFUeXBlIHx8IFwiKlwiICkudG9Mb3dlckNhc2UoKS5zcGxpdCggY29yZV9yc3BhY2UgKTtcclxuXHJcblx0XHQvLyBEZXRlcm1pbmUgaWYgYSBjcm9zcy1kb21haW4gcmVxdWVzdCBpcyBpbiBvcmRlclxyXG5cdFx0aWYgKCBzLmNyb3NzRG9tYWluID09IG51bGwgKSB7XHJcblx0XHRcdHBhcnRzID0gcnVybC5leGVjKCBzLnVybC50b0xvd2VyQ2FzZSgpICk7XHJcblx0XHRcdHMuY3Jvc3NEb21haW4gPSAhISggcGFydHMgJiZcclxuXHRcdFx0XHQoIHBhcnRzWyAxIF0gIT0gYWpheExvY1BhcnRzWyAxIF0gfHwgcGFydHNbIDIgXSAhPSBhamF4TG9jUGFydHNbIDIgXSB8fFxyXG5cdFx0XHRcdFx0KCBwYXJ0c1sgMyBdIHx8ICggcGFydHNbIDEgXSA9PT0gXCJodHRwOlwiID8gODAgOiA0NDMgKSApICE9XHJcblx0XHRcdFx0XHRcdCggYWpheExvY1BhcnRzWyAzIF0gfHwgKCBhamF4TG9jUGFydHNbIDEgXSA9PT0gXCJodHRwOlwiID8gODAgOiA0NDMgKSApIClcclxuXHRcdFx0KTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBDb252ZXJ0IGRhdGEgaWYgbm90IGFscmVhZHkgYSBzdHJpbmdcclxuXHRcdGlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiYgdHlwZW9mIHMuZGF0YSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0cy5kYXRhID0galF1ZXJ5LnBhcmFtKCBzLmRhdGEsIHMudHJhZGl0aW9uYWwgKTtcclxuXHRcdH1cclxuXHJcblx0XHQvLyBBcHBseSBwcmVmaWx0ZXJzXHJcblx0XHRpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggcHJlZmlsdGVycywgcywgb3B0aW9ucywganFYSFIgKTtcclxuXHJcblx0XHQvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbHRlciwgc3RvcCB0aGVyZVxyXG5cdFx0aWYgKCBzdGF0ZSA9PT0gMiApIHtcclxuXHRcdFx0cmV0dXJuIGpxWEhSO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFdlIGNhbiBmaXJlIGdsb2JhbCBldmVudHMgYXMgb2Ygbm93IGlmIGFza2VkIHRvXHJcblx0XHRmaXJlR2xvYmFscyA9IHMuZ2xvYmFsO1xyXG5cclxuXHRcdC8vIFVwcGVyY2FzZSB0aGUgdHlwZVxyXG5cdFx0cy50eXBlID0gcy50eXBlLnRvVXBwZXJDYXNlKCk7XHJcblxyXG5cdFx0Ly8gRGV0ZXJtaW5lIGlmIHJlcXVlc3QgaGFzIGNvbnRlbnRcclxuXHRcdHMuaGFzQ29udGVudCA9ICFybm9Db250ZW50LnRlc3QoIHMudHlwZSApO1xyXG5cclxuXHRcdC8vIFdhdGNoIGZvciBhIG5ldyBzZXQgb2YgcmVxdWVzdHNcclxuXHRcdGlmICggZmlyZUdsb2JhbHMgJiYgalF1ZXJ5LmFjdGl2ZSsrID09PSAwICkge1xyXG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggXCJhamF4U3RhcnRcIiApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50XHJcblx0XHRpZiAoICFzLmhhc0NvbnRlbnQgKSB7XHJcblxyXG5cdFx0XHQvLyBJZiBkYXRhIGlzIGF2YWlsYWJsZSwgYXBwZW5kIGRhdGEgdG8gdXJsXHJcblx0XHRcdGlmICggcy5kYXRhICkge1xyXG5cdFx0XHRcdHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmRhdGE7XHJcblx0XHRcdFx0Ly8gIzk2ODI6IHJlbW92ZSBkYXRhIHNvIHRoYXQgaXQncyBub3QgdXNlZCBpbiBhbiBldmVudHVhbCByZXRyeVxyXG5cdFx0XHRcdGRlbGV0ZSBzLmRhdGE7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIEdldCBpZk1vZGlmaWVkS2V5IGJlZm9yZSBhZGRpbmcgdGhlIGFudGktY2FjaGUgcGFyYW1ldGVyXHJcblx0XHRcdGlmTW9kaWZpZWRLZXkgPSBzLnVybDtcclxuXHJcblx0XHRcdC8vIEFkZCBhbnRpLWNhY2hlIGluIHVybCBpZiBuZWVkZWRcclxuXHRcdFx0aWYgKCBzLmNhY2hlID09PSBmYWxzZSApIHtcclxuXHJcblx0XHRcdFx0dmFyIHRzID0galF1ZXJ5Lm5vdygpLFxyXG5cdFx0XHRcdFx0Ly8gdHJ5IHJlcGxhY2luZyBfPSBpZiBpdCBpcyB0aGVyZVxyXG5cdFx0XHRcdFx0cmV0ID0gcy51cmwucmVwbGFjZSggcnRzLCBcIiQxXz1cIiArIHRzICk7XHJcblxyXG5cdFx0XHRcdC8vIGlmIG5vdGhpbmcgd2FzIHJlcGxhY2VkLCBhZGQgdGltZXN0YW1wIHRvIHRoZSBlbmRcclxuXHRcdFx0XHRzLnVybCA9IHJldCArICggKCByZXQgPT09IHMudXJsICkgPyAoIHJxdWVyeS50ZXN0KCBzLnVybCApID8gXCImXCIgOiBcIj9cIiApICsgXCJfPVwiICsgdHMgOiBcIlwiICk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvLyBTZXQgdGhlIGNvcnJlY3QgaGVhZGVyLCBpZiBkYXRhIGlzIGJlaW5nIHNlbnRcclxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xyXG5cdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIkNvbnRlbnQtVHlwZVwiLCBzLmNvbnRlbnRUeXBlICk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gU2V0IHRoZSBJZi1Nb2RpZmllZC1TaW5jZSBhbmQvb3IgSWYtTm9uZS1NYXRjaCBoZWFkZXIsIGlmIGluIGlmTW9kaWZpZWQgbW9kZS5cclxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xyXG5cdFx0XHRpZk1vZGlmaWVkS2V5ID0gaWZNb2RpZmllZEtleSB8fCBzLnVybDtcclxuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlmaWVkS2V5IF0gKSB7XHJcblx0XHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJJZi1Nb2RpZmllZC1TaW5jZVwiLCBqUXVlcnkubGFzdE1vZGlmaWVkWyBpZk1vZGlmaWVkS2V5IF0gKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoIGpRdWVyeS5ldGFnWyBpZk1vZGlmaWVkS2V5IF0gKSB7XHJcblx0XHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJJZi1Ob25lLU1hdGNoXCIsIGpRdWVyeS5ldGFnWyBpZk1vZGlmaWVkS2V5IF0gKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcclxuXHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoXHJcblx0XHRcdFwiQWNjZXB0XCIsXHJcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1swXSBdID9cclxuXHRcdFx0XHRzLmFjY2VwdHNbIHMuZGF0YVR5cGVzWzBdIF0gKyAoIHMuZGF0YVR5cGVzWyAwIF0gIT09IFwiKlwiID8gXCIsIFwiICsgYWxsVHlwZXMgKyBcIjsgcT0wLjAxXCIgOiBcIlwiICkgOlxyXG5cdFx0XHRcdHMuYWNjZXB0c1sgXCIqXCIgXVxyXG5cdFx0KTtcclxuXHJcblx0XHQvLyBDaGVjayBmb3IgaGVhZGVycyBvcHRpb25cclxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xyXG5cdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBpLCBzLmhlYWRlcnNbIGkgXSApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC8vIEFsbG93IGN1c3RvbSBoZWFkZXJzL21pbWV0eXBlcyBhbmQgZWFybHkgYWJvcnRcclxuXHRcdGlmICggcy5iZWZvcmVTZW5kICYmICggcy5iZWZvcmVTZW5kLmNhbGwoIGNhbGxiYWNrQ29udGV4dCwganFYSFIsIHMgKSA9PT0gZmFsc2UgfHwgc3RhdGUgPT09IDIgKSApIHtcclxuXHRcdFx0XHQvLyBBYm9ydCBpZiBub3QgZG9uZSBhbHJlYWR5IGFuZCByZXR1cm5cclxuXHRcdFx0XHRyZXR1cm4ganFYSFIuYWJvcnQoKTtcclxuXHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gYWJvcnRpbmcgaXMgbm8gbG9uZ2VyIGEgY2FuY2VsbGF0aW9uXHJcblx0XHRzdHJBYm9ydCA9IFwiYWJvcnRcIjtcclxuXHJcblx0XHQvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHNcclxuXHRcdGZvciAoIGkgaW4geyBzdWNjZXNzOiAxLCBlcnJvcjogMSwgY29tcGxldGU6IDEgfSApIHtcclxuXHRcdFx0anFYSFJbIGkgXSggc1sgaSBdICk7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gR2V0IHRyYW5zcG9ydFxyXG5cdFx0dHJhbnNwb3J0ID0gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHRyYW5zcG9ydHMsIHMsIG9wdGlvbnMsIGpxWEhSICk7XHJcblxyXG5cdFx0Ly8gSWYgbm8gdHJhbnNwb3J0LCB3ZSBhdXRvLWFib3J0XHJcblx0XHRpZiAoICF0cmFuc3BvcnQgKSB7XHJcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRqcVhIUi5yZWFkeVN0YXRlID0gMTtcclxuXHRcdFx0Ly8gU2VuZCBnbG9iYWwgZXZlbnRcclxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcclxuXHRcdFx0XHRnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggXCJhamF4U2VuZFwiLCBbIGpxWEhSLCBzIF0gKTtcclxuXHRcdFx0fVxyXG5cdFx0XHQvLyBUaW1lb3V0XHJcblx0XHRcdGlmICggcy5hc3luYyAmJiBzLnRpbWVvdXQgPiAwICkge1xyXG5cdFx0XHRcdHRpbWVvdXRUaW1lciA9IHNldFRpbWVvdXQoIGZ1bmN0aW9uKCl7XHJcblx0XHRcdFx0XHRqcVhIUi5hYm9ydCggXCJ0aW1lb3V0XCIgKTtcclxuXHRcdFx0XHR9LCBzLnRpbWVvdXQgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRzdGF0ZSA9IDE7XHJcblx0XHRcdFx0dHJhbnNwb3J0LnNlbmQoIHJlcXVlc3RIZWFkZXJzLCBkb25lICk7XHJcblx0XHRcdH0gY2F0Y2ggKGUpIHtcclxuXHRcdFx0XHQvLyBQcm9wYWdhdGUgZXhjZXB0aW9uIGFzIGVycm9yIGlmIG5vdCBkb25lXHJcblx0XHRcdFx0aWYgKCBzdGF0ZSA8IDIgKSB7XHJcblx0XHRcdFx0XHRkb25lKCAtMSwgZSApO1xyXG5cdFx0XHRcdC8vIFNpbXBseSByZXRocm93IG90aGVyd2lzZVxyXG5cdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHR0aHJvdyBlO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiBqcVhIUjtcclxuXHR9LFxyXG5cclxuXHQvLyBDb3VudGVyIGZvciBob2xkaW5nIHRoZSBudW1iZXIgb2YgYWN0aXZlIHF1ZXJpZXNcclxuXHRhY3RpdmU6IDAsXHJcblxyXG5cdC8vIExhc3QtTW9kaWZpZWQgaGVhZGVyIGNhY2hlIGZvciBuZXh0IHJlcXVlc3RcclxuXHRsYXN0TW9kaWZpZWQ6IHt9LFxyXG5cdGV0YWc6IHt9XHJcblxyXG59KTtcclxuXHJcbi8qIEhhbmRsZXMgcmVzcG9uc2VzIHRvIGFuIGFqYXggcmVxdWVzdDpcclxuICogLSBzZXRzIGFsbCByZXNwb25zZVhYWCBmaWVsZHMgYWNjb3JkaW5nbHlcclxuICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSlcclxuICogLSByZXR1cm5zIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlXHJcbiAqL1xyXG5mdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkge1xyXG5cclxuXHR2YXIgY3QsIHR5cGUsIGZpbmFsRGF0YVR5cGUsIGZpcnN0RGF0YVR5cGUsXHJcblx0XHRjb250ZW50cyA9IHMuY29udGVudHMsXHJcblx0XHRkYXRhVHlwZXMgPSBzLmRhdGFUeXBlcyxcclxuXHRcdHJlc3BvbnNlRmllbGRzID0gcy5yZXNwb25zZUZpZWxkcztcclxuXHJcblx0Ly8gRmlsbCByZXNwb25zZVhYWCBmaWVsZHNcclxuXHRmb3IgKCB0eXBlIGluIHJlc3BvbnNlRmllbGRzICkge1xyXG5cdFx0aWYgKCB0eXBlIGluIHJlc3BvbnNlcyApIHtcclxuXHRcdFx0anFYSFJbIHJlc3BvbnNlRmllbGRzW3R5cGVdIF0gPSByZXNwb25zZXNbIHR5cGUgXTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIFJlbW92ZSBhdXRvIGRhdGFUeXBlIGFuZCBnZXQgY29udGVudC10eXBlIGluIHRoZSBwcm9jZXNzXHJcblx0d2hpbGUoIGRhdGFUeXBlc1sgMCBdID09PSBcIipcIiApIHtcclxuXHRcdGRhdGFUeXBlcy5zaGlmdCgpO1xyXG5cdFx0aWYgKCBjdCA9PT0gdW5kZWZpbmVkICkge1xyXG5cdFx0XHRjdCA9IHMubWltZVR5cGUgfHwganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoIFwiY29udGVudC10eXBlXCIgKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIENoZWNrIGlmIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIGtub3duIGNvbnRlbnQtdHlwZVxyXG5cdGlmICggY3QgKSB7XHJcblx0XHRmb3IgKCB0eXBlIGluIGNvbnRlbnRzICkge1xyXG5cdFx0XHRpZiAoIGNvbnRlbnRzWyB0eXBlIF0gJiYgY29udGVudHNbIHR5cGUgXS50ZXN0KCBjdCApICkge1xyXG5cdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7XHJcblx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIGEgcmVzcG9uc2UgZm9yIHRoZSBleHBlY3RlZCBkYXRhVHlwZVxyXG5cdGlmICggZGF0YVR5cGVzWyAwIF0gaW4gcmVzcG9uc2VzICkge1xyXG5cdFx0ZmluYWxEYXRhVHlwZSA9IGRhdGFUeXBlc1sgMCBdO1xyXG5cdH0gZWxzZSB7XHJcblx0XHQvLyBUcnkgY29udmVydGlibGUgZGF0YVR5cGVzXHJcblx0XHRmb3IgKCB0eXBlIGluIHJlc3BvbnNlcyApIHtcclxuXHRcdFx0aWYgKCAhZGF0YVR5cGVzWyAwIF0gfHwgcy5jb252ZXJ0ZXJzWyB0eXBlICsgXCIgXCIgKyBkYXRhVHlwZXNbMF0gXSApIHtcclxuXHRcdFx0XHRmaW5hbERhdGFUeXBlID0gdHlwZTtcclxuXHRcdFx0XHRicmVhaztcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAoICFmaXJzdERhdGFUeXBlICkge1xyXG5cdFx0XHRcdGZpcnN0RGF0YVR5cGUgPSB0eXBlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHQvLyBPciBqdXN0IHVzZSBmaXJzdCBvbmVcclxuXHRcdGZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7XHJcblx0fVxyXG5cclxuXHQvLyBJZiB3ZSBmb3VuZCBhIGRhdGFUeXBlXHJcblx0Ly8gV2UgYWRkIHRoZSBkYXRhVHlwZSB0byB0aGUgbGlzdCBpZiBuZWVkZWRcclxuXHQvLyBhbmQgcmV0dXJuIHRoZSBjb3JyZXNwb25kaW5nIHJlc3BvbnNlXHJcblx0aWYgKCBmaW5hbERhdGFUeXBlICkge1xyXG5cdFx0aWYgKCBmaW5hbERhdGFUeXBlICE9PSBkYXRhVHlwZXNbIDAgXSApIHtcclxuXHRcdFx0ZGF0YVR5cGVzLnVuc2hpZnQoIGZpbmFsRGF0YVR5cGUgKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiByZXNwb25zZXNbIGZpbmFsRGF0YVR5cGUgXTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIENoYWluIGNvbnZlcnNpb25zIGdpdmVuIHRoZSByZXF1ZXN0IGFuZCB0aGUgb3JpZ2luYWwgcmVzcG9uc2VcclxuZnVuY3Rpb24gYWpheENvbnZlcnQoIHMsIHJlc3BvbnNlICkge1xyXG5cclxuXHR2YXIgY29udiwgY29udjIsIGN1cnJlbnQsIHRtcCxcclxuXHRcdC8vIFdvcmsgd2l0aCBhIGNvcHkgb2YgZGF0YVR5cGVzIGluIGNhc2Ugd2UgbmVlZCB0byBtb2RpZnkgaXQgZm9yIGNvbnZlcnNpb25cclxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzLnNsaWNlKCksXHJcblx0XHRwcmV2ID0gZGF0YVR5cGVzWyAwIF0sXHJcblx0XHRjb252ZXJ0ZXJzID0ge30sXHJcblx0XHRpID0gMDtcclxuXHJcblx0Ly8gQXBwbHkgdGhlIGRhdGFGaWx0ZXIgaWYgcHJvdmlkZWRcclxuXHRpZiAoIHMuZGF0YUZpbHRlciApIHtcclxuXHRcdHJlc3BvbnNlID0gcy5kYXRhRmlsdGVyKCByZXNwb25zZSwgcy5kYXRhVHlwZSApO1xyXG5cdH1cclxuXHJcblx0Ly8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwIHdpdGggbG93ZXJjYXNlZCBrZXlzXHJcblx0aWYgKCBkYXRhVHlwZXNbIDEgXSApIHtcclxuXHRcdGZvciAoIGNvbnYgaW4gcy5jb252ZXJ0ZXJzICkge1xyXG5cdFx0XHRjb252ZXJ0ZXJzWyBjb252LnRvTG93ZXJDYXNlKCkgXSA9IHMuY29udmVydGVyc1sgY29udiBdO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0Ly8gQ29udmVydCB0byBlYWNoIHNlcXVlbnRpYWwgZGF0YVR5cGUsIHRvbGVyYXRpbmcgbGlzdCBtb2RpZmljYXRpb25cclxuXHRmb3IgKCA7IChjdXJyZW50ID0gZGF0YVR5cGVzWysraV0pOyApIHtcclxuXHJcblx0XHQvLyBUaGVyZSdzIG9ubHkgd29yayB0byBkbyBpZiBjdXJyZW50IGRhdGFUeXBlIGlzIG5vbi1hdXRvXHJcblx0XHRpZiAoIGN1cnJlbnQgIT09IFwiKlwiICkge1xyXG5cclxuXHRcdFx0Ly8gQ29udmVydCByZXNwb25zZSBpZiBwcmV2IGRhdGFUeXBlIGlzIG5vbi1hdXRvIGFuZCBkaWZmZXJzIGZyb20gY3VycmVudFxyXG5cdFx0XHRpZiAoIHByZXYgIT09IFwiKlwiICYmIHByZXYgIT09IGN1cnJlbnQgKSB7XHJcblxyXG5cdFx0XHRcdC8vIFNlZWsgYSBkaXJlY3QgY29udmVydGVyXHJcblx0XHRcdFx0Y29udiA9IGNvbnZlcnRlcnNbIHByZXYgKyBcIiBcIiArIGN1cnJlbnQgXSB8fCBjb252ZXJ0ZXJzWyBcIiogXCIgKyBjdXJyZW50IF07XHJcblxyXG5cdFx0XHRcdC8vIElmIG5vbmUgZm91bmQsIHNlZWsgYSBwYWlyXHJcblx0XHRcdFx0aWYgKCAhY29udiApIHtcclxuXHRcdFx0XHRcdGZvciAoIGNvbnYyIGluIGNvbnZlcnRlcnMgKSB7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBJZiBjb252MiBvdXRwdXRzIGN1cnJlbnRcclxuXHRcdFx0XHRcdFx0dG1wID0gY29udjIuc3BsaXQoXCIgXCIpO1xyXG5cdFx0XHRcdFx0XHRpZiAoIHRtcFsgMSBdID09PSBjdXJyZW50ICkge1xyXG5cclxuXHRcdFx0XHRcdFx0XHQvLyBJZiBwcmV2IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYWNjZXB0ZWQgaW5wdXRcclxuXHRcdFx0XHRcdFx0XHRjb252ID0gY29udmVydGVyc1sgcHJldiArIFwiIFwiICsgdG1wWyAwIF0gXSB8fFxyXG5cdFx0XHRcdFx0XHRcdFx0Y29udmVydGVyc1sgXCIqIFwiICsgdG1wWyAwIF0gXTtcclxuXHRcdFx0XHRcdFx0XHRpZiAoIGNvbnYgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHQvLyBDb25kZW5zZSBlcXVpdmFsZW5jZSBjb252ZXJ0ZXJzXHJcblx0XHRcdFx0XHRcdFx0XHRpZiAoIGNvbnYgPT09IHRydWUgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBjb252MiBdO1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdC8vIE90aGVyd2lzZSwgaW5zZXJ0IHRoZSBpbnRlcm1lZGlhdGUgZGF0YVR5cGVcclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGNvbnZlcnRlcnNbIGNvbnYyIF0gIT09IHRydWUgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnQgPSB0bXBbIDAgXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0ZGF0YVR5cGVzLnNwbGljZSggaS0tLCAwLCBjdXJyZW50ICk7XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHQvLyBBcHBseSBjb252ZXJ0ZXIgKGlmIG5vdCBhbiBlcXVpdmFsZW5jZSlcclxuXHRcdFx0XHRpZiAoIGNvbnYgIT09IHRydWUgKSB7XHJcblxyXG5cdFx0XHRcdFx0Ly8gVW5sZXNzIGVycm9ycyBhcmUgYWxsb3dlZCB0byBidWJibGUsIGNhdGNoIGFuZCByZXR1cm4gdGhlbVxyXG5cdFx0XHRcdFx0aWYgKCBjb252ICYmIHNbXCJ0aHJvd3NcIl0gKSB7XHJcblx0XHRcdFx0XHRcdHJlc3BvbnNlID0gY29udiggcmVzcG9uc2UgKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xyXG5cdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcclxuXHRcdFx0XHRcdFx0XHRyZXR1cm4geyBzdGF0ZTogXCJwYXJzZXJlcnJvclwiLCBlcnJvcjogY29udiA/IGUgOiBcIk5vIGNvbnZlcnNpb24gZnJvbSBcIiArIHByZXYgKyBcIiB0byBcIiArIGN1cnJlbnQgfTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gVXBkYXRlIHByZXYgZm9yIG5leHQgaXRlcmF0aW9uXHJcblx0XHRcdHByZXYgPSBjdXJyZW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0cmV0dXJuIHsgc3RhdGU6IFwic3VjY2Vzc1wiLCBkYXRhOiByZXNwb25zZSB9O1xyXG59XHJcbnZhciBvbGRDYWxsYmFja3MgPSBbXSxcclxuXHRycXVlc3Rpb24gPSAvXFw/LyxcclxuXHRyanNvbnAgPSAvKD0pXFw/KD89JnwkKXxcXD9cXD8vLFxyXG5cdG5vbmNlID0galF1ZXJ5Lm5vdygpO1xyXG5cclxuLy8gRGVmYXVsdCBqc29ucCBzZXR0aW5nc1xyXG5qUXVlcnkuYWpheFNldHVwKHtcclxuXHRqc29ucDogXCJjYWxsYmFja1wiLFxyXG5cdGpzb25wQ2FsbGJhY2s6IGZ1bmN0aW9uKCkge1xyXG5cdFx0dmFyIGNhbGxiYWNrID0gb2xkQ2FsbGJhY2tzLnBvcCgpIHx8ICggalF1ZXJ5LmV4cGFuZG8gKyBcIl9cIiArICggbm9uY2UrKyApICk7XHJcblx0XHR0aGlzWyBjYWxsYmFjayBdID0gdHJ1ZTtcclxuXHRcdHJldHVybiBjYWxsYmFjaztcclxuXHR9XHJcbn0pO1xyXG5cclxuLy8gRGV0ZWN0LCBub3JtYWxpemUgb3B0aW9ucyBhbmQgaW5zdGFsbCBjYWxsYmFja3MgZm9yIGpzb25wIHJlcXVlc3RzXHJcbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcImpzb24ganNvbnBcIiwgZnVuY3Rpb24oIHMsIG9yaWdpbmFsU2V0dGluZ3MsIGpxWEhSICkge1xyXG5cclxuXHR2YXIgY2FsbGJhY2tOYW1lLCBvdmVyd3JpdHRlbiwgcmVzcG9uc2VDb250YWluZXIsXHJcblx0XHRkYXRhID0gcy5kYXRhLFxyXG5cdFx0dXJsID0gcy51cmwsXHJcblx0XHRoYXNDYWxsYmFjayA9IHMuanNvbnAgIT09IGZhbHNlLFxyXG5cdFx0cmVwbGFjZUluVXJsID0gaGFzQ2FsbGJhY2sgJiYgcmpzb25wLnRlc3QoIHVybCApLFxyXG5cdFx0cmVwbGFjZUluRGF0YSA9IGhhc0NhbGxiYWNrICYmICFyZXBsYWNlSW5VcmwgJiYgdHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIgJiZcclxuXHRcdFx0ISggcy5jb250ZW50VHlwZSB8fCBcIlwiICkuaW5kZXhPZihcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiKSAmJlxyXG5cdFx0XHRyanNvbnAudGVzdCggZGF0YSApO1xyXG5cclxuXHQvLyBIYW5kbGUgaWZmIHRoZSBleHBlY3RlZCBkYXRhIHR5cGUgaXMgXCJqc29ucFwiIG9yIHdlIGhhdmUgYSBwYXJhbWV0ZXIgdG8gc2V0XHJcblx0aWYgKCBzLmRhdGFUeXBlc1sgMCBdID09PSBcImpzb25wXCIgfHwgcmVwbGFjZUluVXJsIHx8IHJlcGxhY2VJbkRhdGEgKSB7XHJcblxyXG5cdFx0Ly8gR2V0IGNhbGxiYWNrIG5hbWUsIHJlbWVtYmVyaW5nIHByZWV4aXN0aW5nIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBpdFxyXG5cdFx0Y2FsbGJhY2tOYW1lID0gcy5qc29ucENhbGxiYWNrID0galF1ZXJ5LmlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID9cclxuXHRcdFx0cy5qc29ucENhbGxiYWNrKCkgOlxyXG5cdFx0XHRzLmpzb25wQ2FsbGJhY2s7XHJcblx0XHRvdmVyd3JpdHRlbiA9IHdpbmRvd1sgY2FsbGJhY2tOYW1lIF07XHJcblxyXG5cdFx0Ly8gSW5zZXJ0IGNhbGxiYWNrIGludG8gdXJsIG9yIGZvcm0gZGF0YVxyXG5cdFx0aWYgKCByZXBsYWNlSW5VcmwgKSB7XHJcblx0XHRcdHMudXJsID0gdXJsLnJlcGxhY2UoIHJqc29ucCwgXCIkMVwiICsgY2FsbGJhY2tOYW1lICk7XHJcblx0XHR9IGVsc2UgaWYgKCByZXBsYWNlSW5EYXRhICkge1xyXG5cdFx0XHRzLmRhdGEgPSBkYXRhLnJlcGxhY2UoIHJqc29ucCwgXCIkMVwiICsgY2FsbGJhY2tOYW1lICk7XHJcblx0XHR9IGVsc2UgaWYgKCBoYXNDYWxsYmFjayApIHtcclxuXHRcdFx0cy51cmwgKz0gKCBycXVlc3Rpb24udGVzdCggdXJsICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmpzb25wICsgXCI9XCIgKyBjYWxsYmFja05hbWU7XHJcblx0XHR9XHJcblxyXG5cdFx0Ly8gVXNlIGRhdGEgY29udmVydGVyIHRvIHJldHJpZXZlIGpzb24gYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvblxyXG5cdFx0cy5jb252ZXJ0ZXJzW1wic2NyaXB0IGpzb25cIl0gPSBmdW5jdGlvbigpIHtcclxuXHRcdFx0aWYgKCAhcmVzcG9uc2VDb250YWluZXIgKSB7XHJcblx0XHRcdFx0alF1ZXJ5LmVycm9yKCBjYWxsYmFja05hbWUgKyBcIiB3YXMgbm90IGNhbGxlZFwiICk7XHJcblx0XHRcdH1cclxuXHRcdFx0cmV0dXJuIHJlc3BvbnNlQ29udGFpbmVyWyAwIF07XHJcblx0XHR9O1xyXG5cclxuXHRcdC8vIGZvcmNlIGpzb24gZGF0YVR5cGVcclxuXHRcdHMuZGF0YVR5cGVzWyAwIF0gPSBcImpzb25cIjtcclxuXHJcblx0XHQvLyBJbnN0YWxsIGNhbGxiYWNrXHJcblx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7XHJcblx0XHRcdHJlc3BvbnNlQ29udGFpbmVyID0gYXJndW1lbnRzO1xyXG5cdFx0fTtcclxuXHJcblx0XHQvLyBDbGVhbi11cCBmdW5jdGlvbiAoZmlyZXMgYWZ0ZXIgY29udmVydGVycylcclxuXHRcdGpxWEhSLmFsd2F5cyhmdW5jdGlvbigpIHtcclxuXHRcdFx0Ly8gUmVzdG9yZSBwcmVleGlzdGluZyB2YWx1ZVxyXG5cdFx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gb3ZlcndyaXR0ZW47XHJcblxyXG5cdFx0XHQvLyBTYXZlIGJhY2sgYXMgZnJlZVxyXG5cdFx0XHRpZiAoIHNbIGNhbGxiYWNrTmFtZSBdICkge1xyXG5cdFx0XHRcdC8vIG1ha2Ugc3VyZSB0aGF0IHJlLXVzaW5nIHRoZSBvcHRpb25zIGRvZXNuJ3Qgc2NyZXcgdGhpbmdzIGFyb3VuZFxyXG5cdFx0XHRcdHMuanNvbnBDYWxsYmFjayA9IG9yaWdpbmFsU2V0dGluZ3MuanNvbnBDYWxsYmFjaztcclxuXHJcblx0XHRcdFx0Ly8gc2F2ZSB0aGUgY2FsbGJhY2sgbmFtZSBmb3IgZnV0dXJlIHVzZVxyXG5cdFx0XHRcdG9sZENhbGxiYWNrcy5wdXNoKCBjYWxsYmFja05hbWUgKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0Ly8gQ2FsbCBpZiBpdCB3YXMgYSBmdW5jdGlvbiBhbmQgd2UgaGF2ZSBhIHJlc3BvbnNlXHJcblx0XHRcdGlmICggcmVzcG9uc2VDb250YWluZXIgJiYgalF1ZXJ5LmlzRnVuY3Rpb24oIG92ZXJ3cml0dGVuICkgKSB7XHJcblx0XHRcdFx0b3ZlcndyaXR0ZW4oIHJlc3BvbnNlQ29udGFpbmVyWyAwIF0gKTtcclxuXHRcdFx0fVxyXG5cclxuXHRcdFx0cmVzcG9uc2VDb250YWluZXIgPSBvdmVyd3JpdHRlbiA9IHVuZGVmaW5lZDtcclxuXHRcdH0pO1xyXG5cclxuXHRcdC8vIERlbGVnYXRlIHRvIHNjcmlwdFxyXG5cdFx0cmV0dXJuIFwic2NyaXB0XCI7XHJcblx0fVxyXG59KTtcclxuLy8gSW5zdGFsbCBzY3JpcHQgZGF0YVR5cGVcclxualF1ZXJ5LmFqYXhTZXR1cCh7XHJcblx0YWNjZXB0czoge1xyXG5cdFx0c2NyaXB0OiBcInRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCwgYXBwbGljYXRpb24vZWNtYXNjcmlwdCwgYXBwbGljYXRpb24veC1lY21hc2NyaXB0XCJcclxuXHR9LFxyXG5cdGNvbnRlbnRzOiB7XHJcblx0XHRzY3JpcHQ6IC9qYXZhc2NyaXB0fGVjbWFzY3JpcHQvXHJcblx0fSxcclxuXHRjb252ZXJ0ZXJzOiB7XHJcblx0XHRcInRleHQgc2NyaXB0XCI6IGZ1bmN0aW9uKCB0ZXh0ICkge1xyXG5cdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggdGV4dCApO1xyXG5cdFx0XHRyZXR1cm4gdGV4dDtcclxuXHRcdH1cclxuXHR9XHJcbn0pO1xyXG5cclxuLy8gSGFuZGxlIGNhY2hlJ3Mgc3BlY2lhbCBjYXNlIGFuZCBnbG9iYWxcclxualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwic2NyaXB0XCIsIGZ1bmN0aW9uKCBzICkge1xyXG5cdGlmICggcy5jYWNoZSA9PT0gdW5kZWZpbmVkICkge1xyXG5cdFx0cy5jYWNoZSA9IGZhbHNlO1xyXG5cdH1cclxuXHRpZiAoIHMuY3Jvc3NEb21haW4gKSB7XHJcblx0XHRzLnR5cGUgPSBcIkdFVFwiO1xyXG5cdFx0cy5nbG9iYWwgPSBmYWxzZTtcclxuXHR9XHJcbn0pO1xyXG5cclxuLy8gQmluZCBzY3JpcHQgdGFnIGhhY2sgdHJhbnNwb3J0XHJcbmpRdWVyeS5hamF4VHJhbnNwb3J0KCBcInNjcmlwdFwiLCBmdW5jdGlvbihzKSB7XHJcblxyXG5cdC8vIFRoaXMgdHJhbnNwb3J0IG9ubHkgZGVhbHMgd2l0aCBjcm9zcyBkb21haW4gcmVxdWVzdHNcclxuXHRpZiAoIHMuY3Jvc3NEb21haW4gKSB7XHJcblxyXG5cdFx0dmFyIHNjcmlwdCxcclxuXHRcdFx0aGVhZCA9IGRvY3VtZW50LmhlYWQgfHwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIFwiaGVhZFwiIClbMF0gfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG5cclxuXHRcdHJldHVybiB7XHJcblxyXG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggXywgY2FsbGJhY2sgKSB7XHJcblxyXG5cdFx0XHRcdHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwic2NyaXB0XCIgKTtcclxuXHJcblx0XHRcdFx0c2NyaXB0LmFzeW5jID0gXCJhc3luY1wiO1xyXG5cclxuXHRcdFx0XHRpZiAoIHMuc2NyaXB0Q2hhcnNldCApIHtcclxuXHRcdFx0XHRcdHNjcmlwdC5jaGFyc2V0ID0gcy5zY3JpcHRDaGFyc2V0O1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0c2NyaXB0LnNyYyA9IHMudXJsO1xyXG5cclxuXHRcdFx0XHQvLyBBdHRhY2ggaGFuZGxlcnMgZm9yIGFsbCBicm93c2Vyc1xyXG5cdFx0XHRcdHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQgKSB7XHJcblxyXG5cdFx0XHRcdFx0aWYgKCBpc0Fib3J0IHx8ICFzY3JpcHQucmVhZHlTdGF0ZSB8fCAvbG9hZGVkfGNvbXBsZXRlLy50ZXN0KCBzY3JpcHQucmVhZHlTdGF0ZSApICkge1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gSGFuZGxlIG1lbW9yeSBsZWFrIGluIElFXHJcblx0XHRcdFx0XHRcdHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtcclxuXHJcblx0XHRcdFx0XHRcdC8vIFJlbW92ZSB0aGUgc2NyaXB0XHJcblx0XHRcdFx0XHRcdGlmICggaGVhZCAmJiBzY3JpcHQucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0XHRcdFx0XHRoZWFkLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0Ly8gRGVyZWZlcmVuY2UgdGhlIHNjcmlwdFxyXG5cdFx0XHRcdFx0XHRzY3JpcHQgPSB1bmRlZmluZWQ7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBDYWxsYmFjayBpZiBub3QgYWJvcnRcclxuXHRcdFx0XHRcdFx0aWYgKCAhaXNBYm9ydCApIHtcclxuXHRcdFx0XHRcdFx0XHRjYWxsYmFjayggMjAwLCBcInN1Y2Nlc3NcIiApO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fTtcclxuXHRcdFx0XHQvLyBVc2UgaW5zZXJ0QmVmb3JlIGluc3RlYWQgb2YgYXBwZW5kQ2hpbGQgIHRvIGNpcmN1bXZlbnQgYW4gSUU2IGJ1Zy5cclxuXHRcdFx0XHQvLyBUaGlzIGFyaXNlcyB3aGVuIGEgYmFzZSBub2RlIGlzIHVzZWQgKCMyNzA5IGFuZCAjNDM3OCkuXHJcblx0XHRcdFx0aGVhZC5pbnNlcnRCZWZvcmUoIHNjcmlwdCwgaGVhZC5maXJzdENoaWxkICk7XHJcblx0XHRcdH0sXHJcblxyXG5cdFx0XHRhYm9ydDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0aWYgKCBzY3JpcHQgKSB7XHJcblx0XHRcdFx0XHRzY3JpcHQub25sb2FkKCAwLCAxICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9O1xyXG5cdH1cclxufSk7XHJcbnZhciB4aHJDYWxsYmFja3MsXHJcblx0Ly8gIzUyODA6IEludGVybmV0IEV4cGxvcmVyIHdpbGwga2VlcCBjb25uZWN0aW9ucyBhbGl2ZSBpZiB3ZSBkb24ndCBhYm9ydCBvbiB1bmxvYWRcclxuXHR4aHJPblVubG9hZEFib3J0ID0gd2luZG93LkFjdGl2ZVhPYmplY3QgPyBmdW5jdGlvbigpIHtcclxuXHRcdC8vIEFib3J0IGFsbCBwZW5kaW5nIHJlcXVlc3RzXHJcblx0XHRmb3IgKCB2YXIga2V5IGluIHhockNhbGxiYWNrcyApIHtcclxuXHRcdFx0eGhyQ2FsbGJhY2tzWyBrZXkgXSggMCwgMSApO1xyXG5cdFx0fVxyXG5cdH0gOiBmYWxzZSxcclxuXHR4aHJJZCA9IDA7XHJcblxyXG4vLyBGdW5jdGlvbnMgdG8gY3JlYXRlIHhocnNcclxuZnVuY3Rpb24gY3JlYXRlU3RhbmRhcmRYSFIoKSB7XHJcblx0dHJ5IHtcclxuXHRcdHJldHVybiBuZXcgd2luZG93LlhNTEh0dHBSZXF1ZXN0KCk7XHJcblx0fSBjYXRjaCggZSApIHt9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGNyZWF0ZUFjdGl2ZVhIUigpIHtcclxuXHR0cnkge1xyXG5cdFx0cmV0dXJuIG5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCggXCJNaWNyb3NvZnQuWE1MSFRUUFwiICk7XHJcblx0fSBjYXRjaCggZSApIHt9XHJcbn1cclxuXHJcbi8vIENyZWF0ZSB0aGUgcmVxdWVzdCBvYmplY3RcclxuLy8gKFRoaXMgaXMgc3RpbGwgYXR0YWNoZWQgdG8gYWpheFNldHRpbmdzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5KVxyXG5qUXVlcnkuYWpheFNldHRpbmdzLnhociA9IHdpbmRvdy5BY3RpdmVYT2JqZWN0ID9cclxuXHQvKiBNaWNyb3NvZnQgZmFpbGVkIHRvIHByb3Blcmx5XHJcblx0ICogaW1wbGVtZW50IHRoZSBYTUxIdHRwUmVxdWVzdCBpbiBJRTcgKGNhbid0IHJlcXVlc3QgbG9jYWwgZmlsZXMpLFxyXG5cdCAqIHNvIHdlIHVzZSB0aGUgQWN0aXZlWE9iamVjdCB3aGVuIGl0IGlzIGF2YWlsYWJsZVxyXG5cdCAqIEFkZGl0aW9uYWxseSBYTUxIdHRwUmVxdWVzdCBjYW4gYmUgZGlzYWJsZWQgaW4gSUU3L0lFOCBzb1xyXG5cdCAqIHdlIG5lZWQgYSBmYWxsYmFjay5cclxuXHQgKi9cclxuXHRmdW5jdGlvbigpIHtcclxuXHRcdHJldHVybiAhdGhpcy5pc0xvY2FsICYmIGNyZWF0ZVN0YW5kYXJkWEhSKCkgfHwgY3JlYXRlQWN0aXZlWEhSKCk7XHJcblx0fSA6XHJcblx0Ly8gRm9yIGFsbCBvdGhlciBicm93c2VycywgdXNlIHRoZSBzdGFuZGFyZCBYTUxIdHRwUmVxdWVzdCBvYmplY3RcclxuXHRjcmVhdGVTdGFuZGFyZFhIUjtcclxuXHJcbi8vIERldGVybWluZSBzdXBwb3J0IHByb3BlcnRpZXNcclxuKGZ1bmN0aW9uKCB4aHIgKSB7XHJcblx0alF1ZXJ5LmV4dGVuZCggalF1ZXJ5LnN1cHBvcnQsIHtcclxuXHRcdGFqYXg6ICEheGhyLFxyXG5cdFx0Y29yczogISF4aHIgJiYgKCBcIndpdGhDcmVkZW50aWFsc1wiIGluIHhociApXHJcblx0fSk7XHJcbn0pKCBqUXVlcnkuYWpheFNldHRpbmdzLnhocigpICk7XHJcblxyXG4vLyBDcmVhdGUgdHJhbnNwb3J0IGlmIHRoZSBicm93c2VyIGNhbiBwcm92aWRlIGFuIHhoclxyXG5pZiAoIGpRdWVyeS5zdXBwb3J0LmFqYXggKSB7XHJcblxyXG5cdGpRdWVyeS5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKCBzICkge1xyXG5cdFx0Ly8gQ3Jvc3MgZG9tYWluIG9ubHkgYWxsb3dlZCBpZiBzdXBwb3J0ZWQgdGhyb3VnaCBYTUxIdHRwUmVxdWVzdFxyXG5cdFx0aWYgKCAhcy5jcm9zc0RvbWFpbiB8fCBqUXVlcnkuc3VwcG9ydC5jb3JzICkge1xyXG5cclxuXHRcdFx0dmFyIGNhbGxiYWNrO1xyXG5cclxuXHRcdFx0cmV0dXJuIHtcclxuXHRcdFx0XHRzZW5kOiBmdW5jdGlvbiggaGVhZGVycywgY29tcGxldGUgKSB7XHJcblxyXG5cdFx0XHRcdFx0Ly8gR2V0IGEgbmV3IHhoclxyXG5cdFx0XHRcdFx0dmFyIGhhbmRsZSwgaSxcclxuXHRcdFx0XHRcdFx0eGhyID0gcy54aHIoKTtcclxuXHJcblx0XHRcdFx0XHQvLyBPcGVuIHRoZSBzb2NrZXRcclxuXHRcdFx0XHRcdC8vIFBhc3NpbmcgbnVsbCB1c2VybmFtZSwgZ2VuZXJhdGVzIGEgbG9naW4gcG9wdXAgb24gT3BlcmEgKCMyODY1KVxyXG5cdFx0XHRcdFx0aWYgKCBzLnVzZXJuYW1lICkge1xyXG5cdFx0XHRcdFx0XHR4aHIub3Blbiggcy50eXBlLCBzLnVybCwgcy5hc3luYywgcy51c2VybmFtZSwgcy5wYXNzd29yZCApO1xyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0eGhyLm9wZW4oIHMudHlwZSwgcy51cmwsIHMuYXN5bmMgKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBBcHBseSBjdXN0b20gZmllbGRzIGlmIHByb3ZpZGVkXHJcblx0XHRcdFx0XHRpZiAoIHMueGhyRmllbGRzICkge1xyXG5cdFx0XHRcdFx0XHRmb3IgKCBpIGluIHMueGhyRmllbGRzICkge1xyXG5cdFx0XHRcdFx0XHRcdHhoclsgaSBdID0gcy54aHJGaWVsZHNbIGkgXTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdC8vIE92ZXJyaWRlIG1pbWUgdHlwZSBpZiBuZWVkZWRcclxuXHRcdFx0XHRcdGlmICggcy5taW1lVHlwZSAmJiB4aHIub3ZlcnJpZGVNaW1lVHlwZSApIHtcclxuXHRcdFx0XHRcdFx0eGhyLm92ZXJyaWRlTWltZVR5cGUoIHMubWltZVR5cGUgKTtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBYLVJlcXVlc3RlZC1XaXRoIGhlYWRlclxyXG5cdFx0XHRcdFx0Ly8gRm9yIGNyb3NzLWRvbWFpbiByZXF1ZXN0cywgc2VlaW5nIGFzIGNvbmRpdGlvbnMgZm9yIGEgcHJlZmxpZ2h0IGFyZVxyXG5cdFx0XHRcdFx0Ly8gYWtpbiB0byBhIGppZ3NhdyBwdXp6bGUsIHdlIHNpbXBseSBuZXZlciBzZXQgaXQgdG8gYmUgc3VyZS5cclxuXHRcdFx0XHRcdC8vIChpdCBjYW4gYWx3YXlzIGJlIHNldCBvbiBhIHBlci1yZXF1ZXN0IGJhc2lzIG9yIGV2ZW4gdXNpbmcgYWpheFNldHVwKVxyXG5cdFx0XHRcdFx0Ly8gRm9yIHNhbWUtZG9tYWluIHJlcXVlc3RzLCB3b24ndCBjaGFuZ2UgaGVhZGVyIGlmIGFscmVhZHkgcHJvdmlkZWQuXHJcblx0XHRcdFx0XHRpZiAoICFzLmNyb3NzRG9tYWluICYmICFoZWFkZXJzW1wiWC1SZXF1ZXN0ZWQtV2l0aFwiXSApIHtcclxuXHRcdFx0XHRcdFx0aGVhZGVyc1sgXCJYLVJlcXVlc3RlZC1XaXRoXCIgXSA9IFwiWE1MSHR0cFJlcXVlc3RcIjtcclxuXHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHQvLyBOZWVkIGFuIGV4dHJhIHRyeS9jYXRjaCBmb3IgY3Jvc3MgZG9tYWluIHJlcXVlc3RzIGluIEZpcmVmb3ggM1xyXG5cdFx0XHRcdFx0dHJ5IHtcclxuXHRcdFx0XHRcdFx0Zm9yICggaSBpbiBoZWFkZXJzICkge1xyXG5cdFx0XHRcdFx0XHRcdHhoci5zZXRSZXF1ZXN0SGVhZGVyKCBpLCBoZWFkZXJzWyBpIF0gKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fSBjYXRjaCggXyApIHt9XHJcblxyXG5cdFx0XHRcdFx0Ly8gRG8gc2VuZCB0aGUgcmVxdWVzdFxyXG5cdFx0XHRcdFx0Ly8gVGhpcyBtYXkgcmFpc2UgYW4gZXhjZXB0aW9uIHdoaWNoIGlzIGFjdHVhbGx5XHJcblx0XHRcdFx0XHQvLyBoYW5kbGVkIGluIGpRdWVyeS5hamF4IChzbyBubyB0cnkvY2F0Y2ggaGVyZSlcclxuXHRcdFx0XHRcdHhoci5zZW5kKCAoIHMuaGFzQ29udGVudCAmJiBzLmRhdGEgKSB8fCBudWxsICk7XHJcblxyXG5cdFx0XHRcdFx0Ly8gTGlzdGVuZXJcclxuXHRcdFx0XHRcdGNhbGxiYWNrID0gZnVuY3Rpb24oIF8sIGlzQWJvcnQgKSB7XHJcblxyXG5cdFx0XHRcdFx0XHR2YXIgc3RhdHVzLFxyXG5cdFx0XHRcdFx0XHRcdHN0YXR1c1RleHQsXHJcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2VIZWFkZXJzLFxyXG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlcyxcclxuXHRcdFx0XHRcdFx0XHR4bWw7XHJcblxyXG5cdFx0XHRcdFx0XHQvLyBGaXJlZm94IHRocm93cyBleGNlcHRpb25zIHdoZW4gYWNjZXNzaW5nIHByb3BlcnRpZXNcclxuXHRcdFx0XHRcdFx0Ly8gb2YgYW4geGhyIHdoZW4gYSBuZXR3b3JrIGVycm9yIG9jY3VycmVkXHJcblx0XHRcdFx0XHRcdC8vIGh0dHA6Ly9oZWxwZnVsLmtub2JzLWRpYWxzLmNvbS9pbmRleC5waHAvQ29tcG9uZW50X3JldHVybmVkX2ZhaWx1cmVfY29kZTpfMHg4MDA0MDExMV8oTlNfRVJST1JfTk9UX0FWQUlMQUJMRSlcclxuXHRcdFx0XHRcdFx0dHJ5IHtcclxuXHJcblx0XHRcdFx0XHRcdFx0Ly8gV2FzIG5ldmVyIGNhbGxlZCBhbmQgaXMgYWJvcnRlZCBvciBjb21wbGV0ZVxyXG5cdFx0XHRcdFx0XHRcdGlmICggY2FsbGJhY2sgJiYgKCBpc0Fib3J0IHx8IHhoci5yZWFkeVN0YXRlID09PSA0ICkgKSB7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gT25seSBjYWxsZWQgb25jZVxyXG5cdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2sgPSB1bmRlZmluZWQ7XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0Ly8gRG8gbm90IGtlZXAgYXMgYWN0aXZlIGFueW1vcmVcclxuXHRcdFx0XHRcdFx0XHRcdGlmICggaGFuZGxlICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR4aHIub25yZWFkeXN0YXRlY2hhbmdlID0galF1ZXJ5Lm5vb3A7XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggeGhyT25VbmxvYWRBYm9ydCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRkZWxldGUgeGhyQ2FsbGJhY2tzWyBoYW5kbGUgXTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdC8vIElmIGl0J3MgYW4gYWJvcnRcclxuXHRcdFx0XHRcdFx0XHRcdGlmICggaXNBYm9ydCApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gQWJvcnQgaXQgbWFudWFsbHkgaWYgbmVlZGVkXHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggeGhyLnJlYWR5U3RhdGUgIT09IDQgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0eGhyLmFib3J0KCk7XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHN0YXR1cyA9IHhoci5zdGF0dXM7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHJlc3BvbnNlSGVhZGVycyA9IHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKTtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VzID0ge307XHJcblx0XHRcdFx0XHRcdFx0XHRcdHhtbCA9IHhoci5yZXNwb25zZVhNTDtcclxuXHJcblx0XHRcdFx0XHRcdFx0XHRcdC8vIENvbnN0cnVjdCByZXNwb25zZSBsaXN0XHJcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggeG1sICYmIHhtbC5kb2N1bWVudEVsZW1lbnQgLyogIzQ5NTggKi8gKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VzLnhtbCA9IHhtbDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gV2hlbiByZXF1ZXN0aW5nIGJpbmFyeSBkYXRhLCBJRTYtOSB3aWxsIHRocm93IGFuIGV4Y2VwdGlvblxyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBvbiBhbnkgYXR0ZW1wdCB0byBhY2Nlc3MgcmVzcG9uc2VUZXh0ICgjMTE0MjYpXHJcblx0XHRcdFx0XHRcdFx0XHRcdHRyeSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzcG9uc2VzLnRleHQgPSB4aHIucmVzcG9uc2VUZXh0O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoKCBfICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBGaXJlZm94IHRocm93cyBhbiBleGNlcHRpb24gd2hlbiBhY2Nlc3NpbmdcclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gc3RhdHVzVGV4dCBmb3IgZmF1bHR5IGNyb3NzLWRvbWFpbiByZXF1ZXN0c1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR0cnkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN0YXR1c1RleHQgPSB4aHIuc3RhdHVzVGV4dDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCggZSApIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBXZSBub3JtYWxpemUgd2l0aCBXZWJraXQgZ2l2aW5nIGFuIGVtcHR5IHN0YXR1c1RleHRcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJcIjtcclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gRmlsdGVyIHN0YXR1cyBmb3Igbm9uIHN0YW5kYXJkIGJlaGF2aW9yc1xyXG5cclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSWYgdGhlIHJlcXVlc3QgaXMgbG9jYWwgYW5kIHdlIGhhdmUgZGF0YTogYXNzdW1lIGEgc3VjY2Vzc1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyAoc3VjY2VzcyB3aXRoIG5vIGRhdGEgd29uJ3QgZ2V0IG5vdGlmaWVkLCB0aGF0J3MgdGhlIGJlc3Qgd2VcclxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gY2FuIGRvIGdpdmVuIGN1cnJlbnQgaW1wbGVtZW50YXRpb25zKVxyXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoICFzdGF0dXMgJiYgcy5pc0xvY2FsICYmICFzLmNyb3NzRG9tYWluICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHN0YXR1cyA9IHJlc3BvbnNlcy50ZXh0ID8gMjAwIDogNDA0O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBJRSAtICMxNDUwOiBzb21ldGltZXMgcmV0dXJucyAxMjIzIHdoZW4gaXQgc2hvdWxkIGJlIDIwNFxyXG5cdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCBzdGF0dXMgPT09IDEyMjMgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0c3RhdHVzID0gMjA0O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9IGNhdGNoKCBmaXJlZm94QWNjZXNzRXhjZXB0aW9uICkge1xyXG5cdFx0XHRcdFx0XHRcdGlmICggIWlzQWJvcnQgKSB7XHJcblx0XHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggLTEsIGZpcmVmb3hBY2Nlc3NFeGNlcHRpb24gKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0XHRcdC8vIENhbGwgY29tcGxldGUgaWYgbmVlZGVkXHJcblx0XHRcdFx0XHRcdGlmICggcmVzcG9uc2VzICkge1xyXG5cdFx0XHRcdFx0XHRcdGNvbXBsZXRlKCBzdGF0dXMsIHN0YXR1c1RleHQsIHJlc3BvbnNlcywgcmVzcG9uc2VIZWFkZXJzICk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH07XHJcblxyXG5cdFx0XHRcdFx0aWYgKCAhcy5hc3luYyApIHtcclxuXHRcdFx0XHRcdFx0Ly8gaWYgd2UncmUgaW4gc3luYyBtb2RlIHdlIGZpcmUgdGhlIGNhbGxiYWNrXHJcblx0XHRcdFx0XHRcdGNhbGxiYWNrKCk7XHJcblx0XHRcdFx0XHR9IGVsc2UgaWYgKCB4aHIucmVhZHlTdGF0ZSA9PT0gNCApIHtcclxuXHRcdFx0XHRcdFx0Ly8gKElFNiAmIElFNykgaWYgaXQncyBpbiBjYWNoZSBhbmQgaGFzIGJlZW5cclxuXHRcdFx0XHRcdFx0Ly8gcmV0cmlldmVkIGRpcmVjdGx5IHdlIG5lZWQgdG8gZmlyZSB0aGUgY2FsbGJhY2tcclxuXHRcdFx0XHRcdFx0c2V0VGltZW91dCggY2FsbGJhY2ssIDAgKTtcclxuXHRcdFx0XHRcdH0gZWxzZSB7XHJcblx0XHRcdFx0XHRcdGhhbmRsZSA9ICsreGhySWQ7XHJcblx0XHRcdFx0XHRcdGlmICggeGhyT25VbmxvYWRBYm9ydCApIHtcclxuXHRcdFx0XHRcdFx0XHQvLyBDcmVhdGUgdGhlIGFjdGl2ZSB4aHJzIGNhbGxiYWNrcyBsaXN0IGlmIG5lZWRlZFxyXG5cdFx0XHRcdFx0XHRcdC8vIGFuZCBhdHRhY2ggdGhlIHVubG9hZCBoYW5kbGVyXHJcblx0XHRcdFx0XHRcdFx0aWYgKCAheGhyQ2FsbGJhY2tzICkge1xyXG5cdFx0XHRcdFx0XHRcdFx0eGhyQ2FsbGJhY2tzID0ge307XHJcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkoIHdpbmRvdyApLnVubG9hZCggeGhyT25VbmxvYWRBYm9ydCApO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHQvLyBBZGQgdG8gbGlzdCBvZiBhY3RpdmUgeGhycyBjYWxsYmFja3NcclxuXHRcdFx0XHRcdFx0XHR4aHJDYWxsYmFja3NbIGhhbmRsZSBdID0gY2FsbGJhY2s7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGNhbGxiYWNrO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0sXHJcblxyXG5cdFx0XHRcdGFib3J0OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XHJcblx0XHRcdFx0XHRcdGNhbGxiYWNrKDAsMSk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdH0pO1xyXG59XHJcbnZhciBmeE5vdywgdGltZXJJZCxcclxuXHRyZnh0eXBlcyA9IC9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxcclxuXHRyZnhudW0gPSBuZXcgUmVnRXhwKCBcIl4oPzooWy0rXSk9fCkoXCIgKyBjb3JlX3BudW0gKyBcIikoW2EteiVdKikkXCIsIFwiaVwiICksXHJcblx0cnJ1biA9IC9xdWV1ZUhvb2tzJC8sXHJcblx0YW5pbWF0aW9uUHJlZmlsdGVycyA9IFsgZGVmYXVsdFByZWZpbHRlciBdLFxyXG5cdHR3ZWVuZXJzID0ge1xyXG5cdFx0XCIqXCI6IFtmdW5jdGlvbiggcHJvcCwgdmFsdWUgKSB7XHJcblx0XHRcdHZhciBlbmQsIHVuaXQsIHByZXZTY2FsZSxcclxuXHRcdFx0XHR0d2VlbiA9IHRoaXMuY3JlYXRlVHdlZW4oIHByb3AsIHZhbHVlICksXHJcblx0XHRcdFx0cGFydHMgPSByZnhudW0uZXhlYyggdmFsdWUgKSxcclxuXHRcdFx0XHR0YXJnZXQgPSB0d2Vlbi5jdXIoKSxcclxuXHRcdFx0XHRzdGFydCA9ICt0YXJnZXQgfHwgMCxcclxuXHRcdFx0XHRzY2FsZSA9IDE7XHJcblxyXG5cdFx0XHRpZiAoIHBhcnRzICkge1xyXG5cdFx0XHRcdGVuZCA9ICtwYXJ0c1syXTtcclxuXHRcdFx0XHR1bml0ID0gcGFydHNbM10gfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBwcm9wIF0gPyBcIlwiIDogXCJweFwiICk7XHJcblxyXG5cdFx0XHRcdC8vIFdlIG5lZWQgdG8gY29tcHV0ZSBzdGFydGluZyB2YWx1ZVxyXG5cdFx0XHRcdGlmICggdW5pdCAhPT0gXCJweFwiICYmIHN0YXJ0ICkge1xyXG5cdFx0XHRcdFx0Ly8gSXRlcmF0aXZlbHkgYXBwcm94aW1hdGUgZnJvbSBhIG5vbnplcm8gc3RhcnRpbmcgcG9pbnRcclxuXHRcdFx0XHRcdC8vIFByZWZlciB0aGUgY3VycmVudCBwcm9wZXJ0eSwgYmVjYXVzZSB0aGlzIHByb2Nlc3Mgd2lsbCBiZSB0cml2aWFsIGlmIGl0IHVzZXMgdGhlIHNhbWUgdW5pdHNcclxuXHRcdFx0XHRcdC8vIEZhbGxiYWNrIHRvIGVuZCBvciBhIHNpbXBsZSBjb25zdGFudFxyXG5cdFx0XHRcdFx0c3RhcnQgPSBqUXVlcnkuY3NzKCB0d2Vlbi5lbGVtLCBwcm9wLCB0cnVlICkgfHwgZW5kIHx8IDE7XHJcblxyXG5cdFx0XHRcdFx0ZG8ge1xyXG5cdFx0XHRcdFx0XHQvLyBJZiBwcmV2aW91cyBpdGVyYXRpb24gemVyb2VkIG91dCwgZG91YmxlIHVudGlsIHdlIGdldCAqc29tZXRoaW5nKlxyXG5cdFx0XHRcdFx0XHQvLyBVc2UgYSBzdHJpbmcgZm9yIGRvdWJsaW5nIGZhY3RvciBzbyB3ZSBkb24ndCBhY2NpZGVudGFsbHkgc2VlIHNjYWxlIGFzIHVuY2hhbmdlZCBiZWxvd1xyXG5cdFx0XHRcdFx0XHRwcmV2U2NhbGUgPSBzY2FsZSA9IHNjYWxlIHx8IFwiLjVcIjtcclxuXHJcblx0XHRcdFx0XHRcdC8vIEFkanVzdCBhbmQgYXBwbHlcclxuXHRcdFx0XHRcdFx0c3RhcnQgPSBzdGFydCAvIHNjYWxlO1xyXG5cdFx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIHR3ZWVuLmVsZW0sIHByb3AsIHN0YXJ0ICsgdW5pdCApO1xyXG5cclxuXHRcdFx0XHRcdFx0Ly8gVXBkYXRlIHNjYWxlLCB0b2xlcmF0aW5nIHplcm9lcyBmcm9tIHR3ZWVuLmN1cigpXHJcblx0XHRcdFx0XHRcdHNjYWxlID0gdHdlZW4uY3VyKCkgLyB0YXJnZXQ7XHJcblxyXG5cdFx0XHRcdFx0Ly8gU3RvcCBsb29waW5nIGlmIHdlJ3ZlIGhpdCB0aGUgbWFyayBvciBzY2FsZSBpcyB1bmNoYW5nZWRcclxuXHRcdFx0XHRcdH0gd2hpbGUgKCBzY2FsZSAhPT0gMSAmJiBzY2FsZSAhPT0gcHJldlNjYWxlICk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHR0d2Vlbi51bml0ID0gdW5pdDtcclxuXHRcdFx0XHR0d2Vlbi5zdGFydCA9IHN0YXJ0O1xyXG5cdFx0XHRcdC8vIElmIGEgKz0vLT0gdG9rZW4gd2FzIHByb3ZpZGVkLCB3ZSdyZSBkb2luZyBhIHJlbGF0aXZlIGFuaW1hdGlvblxyXG5cdFx0XHRcdHR3ZWVuLmVuZCA9IHBhcnRzWzFdID8gc3RhcnQgKyAoIHBhcnRzWzFdICsgMSApICogZW5kIDogZW5kO1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiB0d2VlbjtcclxuXHRcdH1dXHJcblx0fTtcclxuXHJcbi8vIEFuaW1hdGlvbnMgY3JlYXRlZCBzeW5jaHJvbm91c2x5IHdpbGwgcnVuIHN5bmNocm9ub3VzbHlcclxuZnVuY3Rpb24gY3JlYXRlRnhOb3coKSB7XHJcblx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcclxuXHRcdGZ4Tm93ID0gdW5kZWZpbmVkO1xyXG5cdH0sIDAgKTtcclxuXHRyZXR1cm4gKCBmeE5vdyA9IGpRdWVyeS5ub3coKSApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBjcmVhdGVUd2VlbnMoIGFuaW1hdGlvbiwgcHJvcHMgKSB7XHJcblx0alF1ZXJ5LmVhY2goIHByb3BzLCBmdW5jdGlvbiggcHJvcCwgdmFsdWUgKSB7XHJcblx0XHR2YXIgY29sbGVjdGlvbiA9ICggdHdlZW5lcnNbIHByb3AgXSB8fCBbXSApLmNvbmNhdCggdHdlZW5lcnNbIFwiKlwiIF0gKSxcclxuXHRcdFx0aW5kZXggPSAwLFxyXG5cdFx0XHRsZW5ndGggPSBjb2xsZWN0aW9uLmxlbmd0aDtcclxuXHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XHJcblx0XHRcdGlmICggY29sbGVjdGlvblsgaW5kZXggXS5jYWxsKCBhbmltYXRpb24sIHByb3AsIHZhbHVlICkgKSB7XHJcblxyXG5cdFx0XHRcdC8vIHdlJ3JlIGRvbmUgd2l0aCB0aGlzIHByb3BlcnR5XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIEFuaW1hdGlvbiggZWxlbSwgcHJvcGVydGllcywgb3B0aW9ucyApIHtcclxuXHR2YXIgcmVzdWx0LFxyXG5cdFx0aW5kZXggPSAwLFxyXG5cdFx0dHdlZW5lckluZGV4ID0gMCxcclxuXHRcdGxlbmd0aCA9IGFuaW1hdGlvblByZWZpbHRlcnMubGVuZ3RoLFxyXG5cdFx0ZGVmZXJyZWQgPSBqUXVlcnkuRGVmZXJyZWQoKS5hbHdheXMoIGZ1bmN0aW9uKCkge1xyXG5cdFx0XHQvLyBkb24ndCBtYXRjaCBlbGVtIGluIHRoZSA6YW5pbWF0ZWQgc2VsZWN0b3JcclxuXHRcdFx0ZGVsZXRlIHRpY2suZWxlbTtcclxuXHRcdH0pLFxyXG5cdFx0dGljayA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0XHR2YXIgY3VycmVudFRpbWUgPSBmeE5vdyB8fCBjcmVhdGVGeE5vdygpLFxyXG5cdFx0XHRcdHJlbWFpbmluZyA9IE1hdGgubWF4KCAwLCBhbmltYXRpb24uc3RhcnRUaW1lICsgYW5pbWF0aW9uLmR1cmF0aW9uIC0gY3VycmVudFRpbWUgKSxcclxuXHRcdFx0XHRwZXJjZW50ID0gMSAtICggcmVtYWluaW5nIC8gYW5pbWF0aW9uLmR1cmF0aW9uIHx8IDAgKSxcclxuXHRcdFx0XHRpbmRleCA9IDAsXHJcblx0XHRcdFx0bGVuZ3RoID0gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGg7XHJcblxyXG5cdFx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoIDsgaW5kZXgrKyApIHtcclxuXHRcdFx0XHRhbmltYXRpb24udHdlZW5zWyBpbmRleCBdLnJ1biggcGVyY2VudCApO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRkZWZlcnJlZC5ub3RpZnlXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgcGVyY2VudCwgcmVtYWluaW5nIF0pO1xyXG5cclxuXHRcdFx0aWYgKCBwZXJjZW50IDwgMSAmJiBsZW5ndGggKSB7XHJcblx0XHRcdFx0cmV0dXJuIHJlbWFpbmluZztcclxuXHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRkZWZlcnJlZC5yZXNvbHZlV2l0aCggZWxlbSwgWyBhbmltYXRpb24gXSApO1xyXG5cdFx0XHRcdHJldHVybiBmYWxzZTtcclxuXHRcdFx0fVxyXG5cdFx0fSxcclxuXHRcdGFuaW1hdGlvbiA9IGRlZmVycmVkLnByb21pc2Uoe1xyXG5cdFx0XHRlbGVtOiBlbGVtLFxyXG5cdFx0XHRwcm9wczogalF1ZXJ5LmV4dGVuZCgge30sIHByb3BlcnRpZXMgKSxcclxuXHRcdFx0b3B0czogalF1ZXJ5LmV4dGVuZCggdHJ1ZSwgeyBzcGVjaWFsRWFzaW5nOiB7fSB9LCBvcHRpb25zICksXHJcblx0XHRcdG9yaWdpbmFsUHJvcGVydGllczogcHJvcGVydGllcyxcclxuXHRcdFx0b3JpZ2luYWxPcHRpb25zOiBvcHRpb25zLFxyXG5cdFx0XHRzdGFydFRpbWU6IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXHJcblx0XHRcdGR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLFxyXG5cdFx0XHR0d2VlbnM6IFtdLFxyXG5cdFx0XHRjcmVhdGVUd2VlbjogZnVuY3Rpb24oIHByb3AsIGVuZCwgZWFzaW5nICkge1xyXG5cdFx0XHRcdHZhciB0d2VlbiA9IGpRdWVyeS5Ud2VlbiggZWxlbSwgYW5pbWF0aW9uLm9wdHMsIHByb3AsIGVuZCxcclxuXHRcdFx0XHRcdFx0YW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZ1sgcHJvcCBdIHx8IGFuaW1hdGlvbi5vcHRzLmVhc2luZyApO1xyXG5cdFx0XHRcdGFuaW1hdGlvbi50d2VlbnMucHVzaCggdHdlZW4gKTtcclxuXHRcdFx0XHRyZXR1cm4gdHdlZW47XHJcblx0XHRcdH0sXHJcblx0XHRcdHN0b3A6IGZ1bmN0aW9uKCBnb3RvRW5kICkge1xyXG5cdFx0XHRcdHZhciBpbmRleCA9IDAsXHJcblx0XHRcdFx0XHQvLyBpZiB3ZSBhcmUgZ29pbmcgdG8gdGhlIGVuZCwgd2Ugd2FudCB0byBydW4gYWxsIHRoZSB0d2VlbnNcclxuXHRcdFx0XHRcdC8vIG90aGVyd2lzZSB3ZSBza2lwIHRoaXMgcGFydFxyXG5cdFx0XHRcdFx0bGVuZ3RoID0gZ290b0VuZCA/IGFuaW1hdGlvbi50d2VlbnMubGVuZ3RoIDogMDtcclxuXHJcblx0XHRcdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aCA7IGluZGV4KysgKSB7XHJcblx0XHRcdFx0XHRhbmltYXRpb24udHdlZW5zWyBpbmRleCBdLnJ1biggMSApO1xyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0Ly8gcmVzb2x2ZSB3aGVuIHdlIHBsYXllZCB0aGUgbGFzdCBmcmFtZVxyXG5cdFx0XHRcdC8vIG90aGVyd2lzZSwgcmVqZWN0XHJcblx0XHRcdFx0aWYgKCBnb3RvRW5kICkge1xyXG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVzb2x2ZVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBnb3RvRW5kIF0gKTtcclxuXHRcdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIGdvdG9FbmQgXSApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRyZXR1cm4gdGhpcztcclxuXHRcdFx0fVxyXG5cdFx0fSksXHJcblx0XHRwcm9wcyA9IGFuaW1hdGlvbi5wcm9wcztcclxuXHJcblx0cHJvcEZpbHRlciggcHJvcHMsIGFuaW1hdGlvbi5vcHRzLnNwZWNpYWxFYXNpbmcgKTtcclxuXHJcblx0Zm9yICggOyBpbmRleCA8IGxlbmd0aCA7IGluZGV4KysgKSB7XHJcblx0XHRyZXN1bHQgPSBhbmltYXRpb25QcmVmaWx0ZXJzWyBpbmRleCBdLmNhbGwoIGFuaW1hdGlvbiwgZWxlbSwgcHJvcHMsIGFuaW1hdGlvbi5vcHRzICk7XHJcblx0XHRpZiAoIHJlc3VsdCApIHtcclxuXHRcdFx0cmV0dXJuIHJlc3VsdDtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdGNyZWF0ZVR3ZWVucyggYW5pbWF0aW9uLCBwcm9wcyApO1xyXG5cclxuXHRpZiAoIGpRdWVyeS5pc0Z1bmN0aW9uKCBhbmltYXRpb24ub3B0cy5zdGFydCApICkge1xyXG5cdFx0YW5pbWF0aW9uLm9wdHMuc3RhcnQuY2FsbCggZWxlbSwgYW5pbWF0aW9uICk7XHJcblx0fVxyXG5cclxuXHRqUXVlcnkuZngudGltZXIoXHJcblx0XHRqUXVlcnkuZXh0ZW5kKCB0aWNrLCB7XHJcblx0XHRcdGFuaW06IGFuaW1hdGlvbixcclxuXHRcdFx0cXVldWU6IGFuaW1hdGlvbi5vcHRzLnF1ZXVlLFxyXG5cdFx0XHRlbGVtOiBlbGVtXHJcblx0XHR9KVxyXG5cdCk7XHJcblxyXG5cdC8vIGF0dGFjaCBjYWxsYmFja3MgZnJvbSBvcHRpb25zXHJcblx0cmV0dXJuIGFuaW1hdGlvbi5wcm9ncmVzcyggYW5pbWF0aW9uLm9wdHMucHJvZ3Jlc3MgKVxyXG5cdFx0LmRvbmUoIGFuaW1hdGlvbi5vcHRzLmRvbmUsIGFuaW1hdGlvbi5vcHRzLmNvbXBsZXRlIClcclxuXHRcdC5mYWlsKCBhbmltYXRpb24ub3B0cy5mYWlsIClcclxuXHRcdC5hbHdheXMoIGFuaW1hdGlvbi5vcHRzLmFsd2F5cyApO1xyXG59XHJcblxyXG5mdW5jdGlvbiBwcm9wRmlsdGVyKCBwcm9wcywgc3BlY2lhbEVhc2luZyApIHtcclxuXHR2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywgdmFsdWUsIGhvb2tzO1xyXG5cclxuXHQvLyBjYW1lbENhc2UsIHNwZWNpYWxFYXNpbmcgYW5kIGV4cGFuZCBjc3NIb29rIHBhc3NcclxuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcclxuXHRcdG5hbWUgPSBqUXVlcnkuY2FtZWxDYXNlKCBpbmRleCApO1xyXG5cdFx0ZWFzaW5nID0gc3BlY2lhbEVhc2luZ1sgbmFtZSBdO1xyXG5cdFx0dmFsdWUgPSBwcm9wc1sgaW5kZXggXTtcclxuXHRcdGlmICggalF1ZXJ5LmlzQXJyYXkoIHZhbHVlICkgKSB7XHJcblx0XHRcdGVhc2luZyA9IHZhbHVlWyAxIF07XHJcblx0XHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF0gPSB2YWx1ZVsgMCBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggaW5kZXggIT09IG5hbWUgKSB7XHJcblx0XHRcdHByb3BzWyBuYW1lIF0gPSB2YWx1ZTtcclxuXHRcdFx0ZGVsZXRlIHByb3BzWyBpbmRleCBdO1xyXG5cdFx0fVxyXG5cclxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF07XHJcblx0XHRpZiAoIGhvb2tzICYmIFwiZXhwYW5kXCIgaW4gaG9va3MgKSB7XHJcblx0XHRcdHZhbHVlID0gaG9va3MuZXhwYW5kKCB2YWx1ZSApO1xyXG5cdFx0XHRkZWxldGUgcHJvcHNbIG5hbWUgXTtcclxuXHJcblx0XHRcdC8vIG5vdCBxdWl0ZSAkLmV4dGVuZCwgdGhpcyB3b250IG92ZXJ3cml0ZSBrZXlzIGFscmVhZHkgcHJlc2VudC5cclxuXHRcdFx0Ly8gYWxzbyAtIHJldXNpbmcgJ2luZGV4JyBmcm9tIGFib3ZlIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgY29ycmVjdCBcIm5hbWVcIlxyXG5cdFx0XHRmb3IgKCBpbmRleCBpbiB2YWx1ZSApIHtcclxuXHRcdFx0XHRpZiAoICEoIGluZGV4IGluIHByb3BzICkgKSB7XHJcblx0XHRcdFx0XHRwcm9wc1sgaW5kZXggXSA9IHZhbHVlWyBpbmRleCBdO1xyXG5cdFx0XHRcdFx0c3BlY2lhbEVhc2luZ1sgaW5kZXggXSA9IGVhc2luZztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdHNwZWNpYWxFYXNpbmdbIG5hbWUgXSA9IGVhc2luZztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbmpRdWVyeS5BbmltYXRpb24gPSBqUXVlcnkuZXh0ZW5kKCBBbmltYXRpb24sIHtcclxuXHJcblx0dHdlZW5lcjogZnVuY3Rpb24oIHByb3BzLCBjYWxsYmFjayApIHtcclxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIHByb3BzICkgKSB7XHJcblx0XHRcdGNhbGxiYWNrID0gcHJvcHM7XHJcblx0XHRcdHByb3BzID0gWyBcIipcIiBdO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0cHJvcHMgPSBwcm9wcy5zcGxpdChcIiBcIik7XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIHByb3AsXHJcblx0XHRcdGluZGV4ID0gMCxcclxuXHRcdFx0bGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xyXG5cclxuXHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGggOyBpbmRleCsrICkge1xyXG5cdFx0XHRwcm9wID0gcHJvcHNbIGluZGV4IF07XHJcblx0XHRcdHR3ZWVuZXJzWyBwcm9wIF0gPSB0d2VlbmVyc1sgcHJvcCBdIHx8IFtdO1xyXG5cdFx0XHR0d2VlbmVyc1sgcHJvcCBdLnVuc2hpZnQoIGNhbGxiYWNrICk7XHJcblx0XHR9XHJcblx0fSxcclxuXHJcblx0cHJlZmlsdGVyOiBmdW5jdGlvbiggY2FsbGJhY2ssIHByZXBlbmQgKSB7XHJcblx0XHRpZiAoIHByZXBlbmQgKSB7XHJcblx0XHRcdGFuaW1hdGlvblByZWZpbHRlcnMudW5zaGlmdCggY2FsbGJhY2sgKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdGFuaW1hdGlvblByZWZpbHRlcnMucHVzaCggY2FsbGJhY2sgKTtcclxuXHRcdH1cclxuXHR9XHJcbn0pO1xyXG5cclxuZnVuY3Rpb24gZGVmYXVsdFByZWZpbHRlciggZWxlbSwgcHJvcHMsIG9wdHMgKSB7XHJcblx0dmFyIGluZGV4LCBwcm9wLCB2YWx1ZSwgbGVuZ3RoLCBkYXRhU2hvdywgdHdlZW4sIGhvb2tzLCBvbGRmaXJlLFxyXG5cdFx0YW5pbSA9IHRoaXMsXHJcblx0XHRzdHlsZSA9IGVsZW0uc3R5bGUsXHJcblx0XHRvcmlnID0ge30sXHJcblx0XHRoYW5kbGVkID0gW10sXHJcblx0XHRoaWRkZW4gPSBlbGVtLm5vZGVUeXBlICYmIGlzSGlkZGVuKCBlbGVtICk7XHJcblxyXG5cdC8vIGhhbmRsZSBxdWV1ZTogZmFsc2UgcHJvbWlzZXNcclxuXHRpZiAoICFvcHRzLnF1ZXVlICkge1xyXG5cdFx0aG9va3MgPSBqUXVlcnkuX3F1ZXVlSG9va3MoIGVsZW0sIFwiZnhcIiApO1xyXG5cdFx0aWYgKCBob29rcy51bnF1ZXVlZCA9PSBudWxsICkge1xyXG5cdFx0XHRob29rcy51bnF1ZXVlZCA9IDA7XHJcblx0XHRcdG9sZGZpcmUgPSBob29rcy5lbXB0eS5maXJlO1xyXG5cdFx0XHRob29rcy5lbXB0eS5maXJlID0gZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0aWYgKCAhaG9va3MudW5xdWV1ZWQgKSB7XHJcblx0XHRcdFx0XHRvbGRmaXJlKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9O1xyXG5cdFx0fVxyXG5cdFx0aG9va3MudW5xdWV1ZWQrKztcclxuXHJcblx0XHRhbmltLmFsd2F5cyhmdW5jdGlvbigpIHtcclxuXHRcdFx0Ly8gZG9pbmcgdGhpcyBtYWtlcyBzdXJlIHRoYXQgdGhlIGNvbXBsZXRlIGhhbmRsZXIgd2lsbCBiZSBjYWxsZWRcclxuXHRcdFx0Ly8gYmVmb3JlIHRoaXMgY29tcGxldGVzXHJcblx0XHRcdGFuaW0uYWx3YXlzKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHRcdGhvb2tzLnVucXVldWVkLS07XHJcblx0XHRcdFx0aWYgKCAhalF1ZXJ5LnF1ZXVlKCBlbGVtLCBcImZ4XCIgKS5sZW5ndGggKSB7XHJcblx0XHRcdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0Ly8gaGVpZ2h0L3dpZHRoIG92ZXJmbG93IHBhc3NcclxuXHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgKCBcImhlaWdodFwiIGluIHByb3BzIHx8IFwid2lkdGhcIiBpbiBwcm9wcyApICkge1xyXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbm90aGluZyBzbmVha3Mgb3V0XHJcblx0XHQvLyBSZWNvcmQgYWxsIDMgb3ZlcmZsb3cgYXR0cmlidXRlcyBiZWNhdXNlIElFIGRvZXMgbm90XHJcblx0XHQvLyBjaGFuZ2UgdGhlIG92ZXJmbG93IGF0dHJpYnV0ZSB3aGVuIG92ZXJmbG93WCBhbmRcclxuXHRcdC8vIG92ZXJmbG93WSBhcmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlXHJcblx0XHRvcHRzLm92ZXJmbG93ID0gWyBzdHlsZS5vdmVyZmxvdywgc3R5bGUub3ZlcmZsb3dYLCBzdHlsZS5vdmVyZmxvd1kgXTtcclxuXHJcblx0XHQvLyBTZXQgZGlzcGxheSBwcm9wZXJ0eSB0byBpbmxpbmUtYmxvY2sgZm9yIGhlaWdodC93aWR0aFxyXG5cdFx0Ly8gYW5pbWF0aW9ucyBvbiBpbmxpbmUgZWxlbWVudHMgdGhhdCBhcmUgaGF2aW5nIHdpZHRoL2hlaWdodCBhbmltYXRlZFxyXG5cdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApID09PSBcImlubGluZVwiICYmXHJcblx0XHRcdFx0alF1ZXJ5LmNzcyggZWxlbSwgXCJmbG9hdFwiICkgPT09IFwibm9uZVwiICkge1xyXG5cclxuXHRcdFx0Ly8gaW5saW5lLWxldmVsIGVsZW1lbnRzIGFjY2VwdCBpbmxpbmUtYmxvY2s7XHJcblx0XHRcdC8vIGJsb2NrLWxldmVsIGVsZW1lbnRzIG5lZWQgdG8gYmUgaW5saW5lIHdpdGggbGF5b3V0XHJcblx0XHRcdGlmICggIWpRdWVyeS5zdXBwb3J0LmlubGluZUJsb2NrTmVlZHNMYXlvdXQgfHwgY3NzX2RlZmF1bHREaXNwbGF5KCBlbGVtLm5vZGVOYW1lICkgPT09IFwiaW5saW5lXCIgKSB7XHJcblx0XHRcdFx0c3R5bGUuZGlzcGxheSA9IFwiaW5saW5lLWJsb2NrXCI7XHJcblxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHN0eWxlLnpvb20gPSAxO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpZiAoIG9wdHMub3ZlcmZsb3cgKSB7XHJcblx0XHRzdHlsZS5vdmVyZmxvdyA9IFwiaGlkZGVuXCI7XHJcblx0XHRpZiAoICFqUXVlcnkuc3VwcG9ydC5zaHJpbmtXcmFwQmxvY2tzICkge1xyXG5cdFx0XHRhbmltLmRvbmUoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0c3R5bGUub3ZlcmZsb3cgPSBvcHRzLm92ZXJmbG93WyAwIF07XHJcblx0XHRcdFx0c3R5bGUub3ZlcmZsb3dYID0gb3B0cy5vdmVyZmxvd1sgMSBdO1xyXG5cdFx0XHRcdHN0eWxlLm92ZXJmbG93WSA9IG9wdHMub3ZlcmZsb3dbIDIgXTtcclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHJcblx0Ly8gc2hvdy9oaWRlIHBhc3NcclxuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcclxuXHRcdHZhbHVlID0gcHJvcHNbIGluZGV4IF07XHJcblx0XHRpZiAoIHJmeHR5cGVzLmV4ZWMoIHZhbHVlICkgKSB7XHJcblx0XHRcdGRlbGV0ZSBwcm9wc1sgaW5kZXggXTtcclxuXHRcdFx0aWYgKCB2YWx1ZSA9PT0gKCBoaWRkZW4gPyBcImhpZGVcIiA6IFwic2hvd1wiICkgKSB7XHJcblx0XHRcdFx0Y29udGludWU7XHJcblx0XHRcdH1cclxuXHRcdFx0aGFuZGxlZC5wdXNoKCBpbmRleCApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bGVuZ3RoID0gaGFuZGxlZC5sZW5ndGg7XHJcblx0aWYgKCBsZW5ndGggKSB7XHJcblx0XHRkYXRhU2hvdyA9IGpRdWVyeS5fZGF0YSggZWxlbSwgXCJmeHNob3dcIiApIHx8IGpRdWVyeS5fZGF0YSggZWxlbSwgXCJmeHNob3dcIiwge30gKTtcclxuXHRcdGlmICggaGlkZGVuICkge1xyXG5cdFx0XHRqUXVlcnkoIGVsZW0gKS5zaG93KCk7XHJcblx0XHR9IGVsc2Uge1xyXG5cdFx0XHRhbmltLmRvbmUoZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0alF1ZXJ5KCBlbGVtICkuaGlkZSgpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdGFuaW0uZG9uZShmdW5jdGlvbigpIHtcclxuXHRcdFx0dmFyIHByb3A7XHJcblx0XHRcdGpRdWVyeS5yZW1vdmVEYXRhKCBlbGVtLCBcImZ4c2hvd1wiLCB0cnVlICk7XHJcblx0XHRcdGZvciAoIHByb3AgaW4gb3JpZyApIHtcclxuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIG9yaWdbIHByb3AgXSApO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHRcdGZvciAoIGluZGV4ID0gMCA7IGluZGV4IDwgbGVuZ3RoIDsgaW5kZXgrKyApIHtcclxuXHRcdFx0cHJvcCA9IGhhbmRsZWRbIGluZGV4IF07XHJcblx0XHRcdHR3ZWVuID0gYW5pbS5jcmVhdGVUd2VlbiggcHJvcCwgaGlkZGVuID8gZGF0YVNob3dbIHByb3AgXSA6IDAgKTtcclxuXHRcdFx0b3JpZ1sgcHJvcCBdID0gZGF0YVNob3dbIHByb3AgXSB8fCBqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AgKTtcclxuXHJcblx0XHRcdGlmICggISggcHJvcCBpbiBkYXRhU2hvdyApICkge1xyXG5cdFx0XHRcdGRhdGFTaG93WyBwcm9wIF0gPSB0d2Vlbi5zdGFydDtcclxuXHRcdFx0XHRpZiAoIGhpZGRlbiApIHtcclxuXHRcdFx0XHRcdHR3ZWVuLmVuZCA9IHR3ZWVuLnN0YXJ0O1xyXG5cdFx0XHRcdFx0dHdlZW4uc3RhcnQgPSBwcm9wID09PSBcIndpZHRoXCIgfHwgcHJvcCA9PT0gXCJoZWlnaHRcIiA/IDEgOiAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuZnVuY3Rpb24gVHdlZW4oIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICkge1xyXG5cdHJldHVybiBuZXcgVHdlZW4ucHJvdG90eXBlLmluaXQoIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICk7XHJcbn1cclxualF1ZXJ5LlR3ZWVuID0gVHdlZW47XHJcblxyXG5Ud2Vlbi5wcm90b3R5cGUgPSB7XHJcblx0Y29uc3RydWN0b3I6IFR3ZWVuLFxyXG5cdGluaXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZywgdW5pdCApIHtcclxuXHRcdHRoaXMuZWxlbSA9IGVsZW07XHJcblx0XHR0aGlzLnByb3AgPSBwcm9wO1xyXG5cdFx0dGhpcy5lYXNpbmcgPSBlYXNpbmcgfHwgXCJzd2luZ1wiO1xyXG5cdFx0dGhpcy5vcHRpb25zID0gb3B0aW9ucztcclxuXHRcdHRoaXMuc3RhcnQgPSB0aGlzLm5vdyA9IHRoaXMuY3VyKCk7XHJcblx0XHR0aGlzLmVuZCA9IGVuZDtcclxuXHRcdHRoaXMudW5pdCA9IHVuaXQgfHwgKCBqUXVlcnkuY3NzTnVtYmVyWyBwcm9wIF0gPyBcIlwiIDogXCJweFwiICk7XHJcblx0fSxcclxuXHRjdXI6IGZ1bmN0aW9uKCkge1xyXG5cdFx0dmFyIGhvb2tzID0gVHdlZW4ucHJvcEhvb2tzWyB0aGlzLnByb3AgXTtcclxuXHJcblx0XHRyZXR1cm4gaG9va3MgJiYgaG9va3MuZ2V0ID9cclxuXHRcdFx0aG9va3MuZ2V0KCB0aGlzICkgOlxyXG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KCB0aGlzICk7XHJcblx0fSxcclxuXHRydW46IGZ1bmN0aW9uKCBwZXJjZW50ICkge1xyXG5cdFx0dmFyIGVhc2VkLFxyXG5cdFx0XHRob29rcyA9IFR3ZWVuLnByb3BIb29rc1sgdGhpcy5wcm9wIF07XHJcblxyXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7XHJcblx0XHRcdHRoaXMucG9zID0gZWFzZWQgPSBqUXVlcnkuZWFzaW5nWyB0aGlzLmVhc2luZyBdKFxyXG5cdFx0XHRcdHBlcmNlbnQsIHRoaXMub3B0aW9ucy5kdXJhdGlvbiAqIHBlcmNlbnQsIDAsIDEsIHRoaXMub3B0aW9ucy5kdXJhdGlvblxyXG5cdFx0XHQpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5wb3MgPSBlYXNlZCA9IHBlcmNlbnQ7XHJcblx0XHR9XHJcblx0XHR0aGlzLm5vdyA9ICggdGhpcy5lbmQgLSB0aGlzLnN0YXJ0ICkgKiBlYXNlZCArIHRoaXMuc3RhcnQ7XHJcblxyXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHtcclxuXHRcdFx0dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCggdGhpcy5lbGVtLCB0aGlzLm5vdywgdGhpcyApO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggaG9va3MgJiYgaG9va3Muc2V0ICkge1xyXG5cdFx0XHRob29rcy5zZXQoIHRoaXMgKTtcclxuXHRcdH0gZWxzZSB7XHJcblx0XHRcdFR3ZWVuLnByb3BIb29rcy5fZGVmYXVsdC5zZXQoIHRoaXMgKTtcclxuXHRcdH1cclxuXHRcdHJldHVybiB0aGlzO1xyXG5cdH1cclxufTtcclxuXHJcblR3ZWVuLnByb3RvdHlwZS5pbml0LnByb3RvdHlwZSA9IFR3ZWVuLnByb3RvdHlwZTtcclxuXHJcblR3ZWVuLnByb3BIb29rcyA9IHtcclxuXHRfZGVmYXVsdDoge1xyXG5cdFx0Z2V0OiBmdW5jdGlvbiggdHdlZW4gKSB7XHJcblx0XHRcdHZhciByZXN1bHQ7XHJcblxyXG5cdFx0XHRpZiAoIHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSAhPSBudWxsICYmXHJcblx0XHRcdFx0KCF0d2Vlbi5lbGVtLnN0eWxlIHx8IHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsKSApIHtcclxuXHRcdFx0XHRyZXR1cm4gdHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHQvLyBwYXNzaW5nIGFueSB2YWx1ZSBhcyBhIDR0aCBwYXJhbWV0ZXIgdG8gLmNzcyB3aWxsIGF1dG9tYXRpY2FsbHlcclxuXHRcdFx0Ly8gYXR0ZW1wdCBhIHBhcnNlRmxvYXQgYW5kIGZhbGxiYWNrIHRvIGEgc3RyaW5nIGlmIHRoZSBwYXJzZSBmYWlsc1xyXG5cdFx0XHQvLyBzbywgc2ltcGxlIHZhbHVlcyBzdWNoIGFzIFwiMTBweFwiIGFyZSBwYXJzZWQgdG8gRmxvYXQuXHJcblx0XHRcdC8vIGNvbXBsZXggdmFsdWVzIHN1Y2ggYXMgXCJyb3RhdGUoMXJhZClcIiBhcmUgcmV0dXJuZWQgYXMgaXMuXHJcblx0XHRcdHJlc3VsdCA9IGpRdWVyeS5jc3MoIHR3ZWVuLmVsZW0sIHR3ZWVuLnByb3AsIGZhbHNlLCBcIlwiICk7XHJcblx0XHRcdC8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgXCJhdXRvXCIgYXJlIGNvbnZlcnRlZCB0byAwLlxyXG5cdFx0XHRyZXR1cm4gIXJlc3VsdCB8fCByZXN1bHQgPT09IFwiYXV0b1wiID8gMCA6IHJlc3VsdDtcclxuXHRcdH0sXHJcblx0XHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcclxuXHRcdFx0Ly8gdXNlIHN0ZXAgaG9vayBmb3IgYmFjayBjb21wYXQgLSB1c2UgY3NzSG9vayBpZiBpdHMgdGhlcmUgLSB1c2UgLnN0eWxlIGlmIGl0c1xyXG5cdFx0XHQvLyBhdmFpbGFibGUgYW5kIHVzZSBwbGFpbiBwcm9wZXJ0aWVzIHdoZXJlIGF2YWlsYWJsZVxyXG5cdFx0XHRpZiAoIGpRdWVyeS5meC5zdGVwWyB0d2Vlbi5wcm9wIF0gKSB7XHJcblx0XHRcdFx0alF1ZXJ5LmZ4LnN0ZXBbIHR3ZWVuLnByb3AgXSggdHdlZW4gKTtcclxuXHRcdFx0fSBlbHNlIGlmICggdHdlZW4uZWxlbS5zdHlsZSAmJiAoIHR3ZWVuLmVsZW0uc3R5bGVbIGpRdWVyeS5jc3NQcm9wc1sgdHdlZW4ucHJvcCBdIF0gIT0gbnVsbCB8fCBqUXVlcnkuY3NzSG9va3NbIHR3ZWVuLnByb3AgXSApICkge1xyXG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgdHdlZW4ubm93ICsgdHdlZW4udW5pdCApO1xyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSA9IHR3ZWVuLm5vdztcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufTtcclxuXHJcbi8vIFJlbW92ZSBpbiAyLjAgLSB0aGlzIHN1cHBvcnRzIElFOCdzIHBhbmljIGJhc2VkIGFwcHJvYWNoXHJcbi8vIHRvIHNldHRpbmcgdGhpbmdzIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xyXG5cclxuVHdlZW4ucHJvcEhvb2tzLnNjcm9sbFRvcCA9IFR3ZWVuLnByb3BIb29rcy5zY3JvbGxMZWZ0ID0ge1xyXG5cdHNldDogZnVuY3Rpb24oIHR3ZWVuICkge1xyXG5cdFx0aWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlICYmIHR3ZWVuLmVsZW0ucGFyZW50Tm9kZSApIHtcclxuXHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xyXG5cdFx0fVxyXG5cdH1cclxufTtcclxuXHJcbmpRdWVyeS5lYWNoKFsgXCJ0b2dnbGVcIiwgXCJzaG93XCIsIFwiaGlkZVwiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkge1xyXG5cdHZhciBjc3NGbiA9IGpRdWVyeS5mblsgbmFtZSBdO1xyXG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xyXG5cdFx0cmV0dXJuIHNwZWVkID09IG51bGwgfHwgdHlwZW9mIHNwZWVkID09PSBcImJvb2xlYW5cIiB8fFxyXG5cdFx0XHQvLyBzcGVjaWFsIGNoZWNrIGZvciAudG9nZ2xlKCBoYW5kbGVyLCBoYW5kbGVyLCAuLi4gKVxyXG5cdFx0XHQoICFpICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBzcGVlZCApICYmIGpRdWVyeS5pc0Z1bmN0aW9uKCBlYXNpbmcgKSApID9cclxuXHRcdFx0Y3NzRm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApIDpcclxuXHRcdFx0dGhpcy5hbmltYXRlKCBnZW5GeCggbmFtZSwgdHJ1ZSApLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xyXG5cdH07XHJcbn0pO1xyXG5cclxualF1ZXJ5LmZuLmV4dGVuZCh7XHJcblx0ZmFkZVRvOiBmdW5jdGlvbiggc3BlZWQsIHRvLCBlYXNpbmcsIGNhbGxiYWNrICkge1xyXG5cclxuXHRcdC8vIHNob3cgYW55IGhpZGRlbiBlbGVtZW50cyBhZnRlciBzZXR0aW5nIG9wYWNpdHkgdG8gMFxyXG5cdFx0cmV0dXJuIHRoaXMuZmlsdGVyKCBpc0hpZGRlbiApLmNzcyggXCJvcGFjaXR5XCIsIDAgKS5zaG93KClcclxuXHJcblx0XHRcdC8vIGFuaW1hdGUgdG8gdGhlIHZhbHVlIHNwZWNpZmllZFxyXG5cdFx0XHQuZW5kKCkuYW5pbWF0ZSh7IG9wYWNpdHk6IHRvIH0sIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICk7XHJcblx0fSxcclxuXHRhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XHJcblx0XHR2YXIgZW1wdHkgPSBqUXVlcnkuaXNFbXB0eU9iamVjdCggcHJvcCApLFxyXG5cdFx0XHRvcHRhbGwgPSBqUXVlcnkuc3BlZWQoIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICksXHJcblx0XHRcdGRvQW5pbWF0aW9uID0gZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0Ly8gT3BlcmF0ZSBvbiBhIGNvcHkgb2YgcHJvcCBzbyBwZXItcHJvcGVydHkgZWFzaW5nIHdvbid0IGJlIGxvc3RcclxuXHRcdFx0XHR2YXIgYW5pbSA9IEFuaW1hdGlvbiggdGhpcywgalF1ZXJ5LmV4dGVuZCgge30sIHByb3AgKSwgb3B0YWxsICk7XHJcblxyXG5cdFx0XHRcdC8vIEVtcHR5IGFuaW1hdGlvbnMgcmVzb2x2ZSBpbW1lZGlhdGVseVxyXG5cdFx0XHRcdGlmICggZW1wdHkgKSB7XHJcblx0XHRcdFx0XHRhbmltLnN0b3AoIHRydWUgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH07XHJcblxyXG5cdFx0cmV0dXJuIGVtcHR5IHx8IG9wdGFsbC5xdWV1ZSA9PT0gZmFsc2UgP1xyXG5cdFx0XHR0aGlzLmVhY2goIGRvQW5pbWF0aW9uICkgOlxyXG5cdFx0XHR0aGlzLnF1ZXVlKCBvcHRhbGwucXVldWUsIGRvQW5pbWF0aW9uICk7XHJcblx0fSxcclxuXHRzdG9wOiBmdW5jdGlvbiggdHlwZSwgY2xlYXJRdWV1ZSwgZ290b0VuZCApIHtcclxuXHRcdHZhciBzdG9wUXVldWUgPSBmdW5jdGlvbiggaG9va3MgKSB7XHJcblx0XHRcdHZhciBzdG9wID0gaG9va3Muc3RvcDtcclxuXHRcdFx0ZGVsZXRlIGhvb2tzLnN0b3A7XHJcblx0XHRcdHN0b3AoIGdvdG9FbmQgKTtcclxuXHRcdH07XHJcblxyXG5cdFx0aWYgKCB0eXBlb2YgdHlwZSAhPT0gXCJzdHJpbmdcIiApIHtcclxuXHRcdFx0Z290b0VuZCA9IGNsZWFyUXVldWU7XHJcblx0XHRcdGNsZWFyUXVldWUgPSB0eXBlO1xyXG5cdFx0XHR0eXBlID0gdW5kZWZpbmVkO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBjbGVhclF1ZXVlICYmIHR5cGUgIT09IGZhbHNlICkge1xyXG5cdFx0XHR0aGlzLnF1ZXVlKCB0eXBlIHx8IFwiZnhcIiwgW10gKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCkge1xyXG5cdFx0XHR2YXIgZGVxdWV1ZSA9IHRydWUsXHJcblx0XHRcdFx0aW5kZXggPSB0eXBlICE9IG51bGwgJiYgdHlwZSArIFwicXVldWVIb29rc1wiLFxyXG5cdFx0XHRcdHRpbWVycyA9IGpRdWVyeS50aW1lcnMsXHJcblx0XHRcdFx0ZGF0YSA9IGpRdWVyeS5fZGF0YSggdGhpcyApO1xyXG5cclxuXHRcdFx0aWYgKCBpbmRleCApIHtcclxuXHRcdFx0XHRpZiAoIGRhdGFbIGluZGV4IF0gJiYgZGF0YVsgaW5kZXggXS5zdG9wICkge1xyXG5cdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGZvciAoIGluZGV4IGluIGRhdGEgKSB7XHJcblx0XHRcdFx0XHRpZiAoIGRhdGFbIGluZGV4IF0gJiYgZGF0YVsgaW5kZXggXS5zdG9wICYmIHJydW4udGVzdCggaW5kZXggKSApIHtcclxuXHRcdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRmb3IgKCBpbmRleCA9IHRpbWVycy5sZW5ndGg7IGluZGV4LS07ICkge1xyXG5cdFx0XHRcdGlmICggdGltZXJzWyBpbmRleCBdLmVsZW0gPT09IHRoaXMgJiYgKHR5cGUgPT0gbnVsbCB8fCB0aW1lcnNbIGluZGV4IF0ucXVldWUgPT09IHR5cGUpICkge1xyXG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggZ290b0VuZCApO1xyXG5cdFx0XHRcdFx0ZGVxdWV1ZSA9IGZhbHNlO1xyXG5cdFx0XHRcdFx0dGltZXJzLnNwbGljZSggaW5kZXgsIDEgKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdC8vIHN0YXJ0IHRoZSBuZXh0IGluIHRoZSBxdWV1ZSBpZiB0aGUgbGFzdCBzdGVwIHdhc24ndCBmb3JjZWRcclxuXHRcdFx0Ly8gdGltZXJzIGN1cnJlbnRseSB3aWxsIGNhbGwgdGhlaXIgY29tcGxldGUgY2FsbGJhY2tzLCB3aGljaCB3aWxsIGRlcXVldWVcclxuXHRcdFx0Ly8gYnV0IG9ubHkgaWYgdGhleSB3ZXJlIGdvdG9FbmRcclxuXHRcdFx0aWYgKCBkZXF1ZXVlIHx8ICFnb3RvRW5kICkge1xyXG5cdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufSk7XHJcblxyXG4vLyBHZW5lcmF0ZSBwYXJhbWV0ZXJzIHRvIGNyZWF0ZSBhIHN0YW5kYXJkIGFuaW1hdGlvblxyXG5mdW5jdGlvbiBnZW5GeCggdHlwZSwgaW5jbHVkZVdpZHRoICkge1xyXG5cdHZhciB3aGljaCxcclxuXHRcdGF0dHJzID0geyBoZWlnaHQ6IHR5cGUgfSxcclxuXHRcdGkgPSAwO1xyXG5cclxuXHQvLyBpZiB3ZSBpbmNsdWRlIHdpZHRoLCBzdGVwIHZhbHVlIGlzIDEgdG8gZG8gYWxsIGNzc0V4cGFuZCB2YWx1ZXMsXHJcblx0Ly8gaWYgd2UgZG9uJ3QgaW5jbHVkZSB3aWR0aCwgc3RlcCB2YWx1ZSBpcyAyIHRvIHNraXAgb3ZlciBMZWZ0IGFuZCBSaWdodFxyXG5cdGluY2x1ZGVXaWR0aCA9IGluY2x1ZGVXaWR0aD8gMSA6IDA7XHJcblx0Zm9yKCA7IGkgPCA0IDsgaSArPSAyIC0gaW5jbHVkZVdpZHRoICkge1xyXG5cdFx0d2hpY2ggPSBjc3NFeHBhbmRbIGkgXTtcclxuXHRcdGF0dHJzWyBcIm1hcmdpblwiICsgd2hpY2ggXSA9IGF0dHJzWyBcInBhZGRpbmdcIiArIHdoaWNoIF0gPSB0eXBlO1xyXG5cdH1cclxuXHJcblx0aWYgKCBpbmNsdWRlV2lkdGggKSB7XHJcblx0XHRhdHRycy5vcGFjaXR5ID0gYXR0cnMud2lkdGggPSB0eXBlO1xyXG5cdH1cclxuXHJcblx0cmV0dXJuIGF0dHJzO1xyXG59XHJcblxyXG4vLyBHZW5lcmF0ZSBzaG9ydGN1dHMgZm9yIGN1c3RvbSBhbmltYXRpb25zXHJcbmpRdWVyeS5lYWNoKHtcclxuXHRzbGlkZURvd246IGdlbkZ4KFwic2hvd1wiKSxcclxuXHRzbGlkZVVwOiBnZW5GeChcImhpZGVcIiksXHJcblx0c2xpZGVUb2dnbGU6IGdlbkZ4KFwidG9nZ2xlXCIpLFxyXG5cdGZhZGVJbjogeyBvcGFjaXR5OiBcInNob3dcIiB9LFxyXG5cdGZhZGVPdXQ6IHsgb3BhY2l0eTogXCJoaWRlXCIgfSxcclxuXHRmYWRlVG9nZ2xlOiB7IG9wYWNpdHk6IFwidG9nZ2xlXCIgfVxyXG59LCBmdW5jdGlvbiggbmFtZSwgcHJvcHMgKSB7XHJcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XHJcblx0XHRyZXR1cm4gdGhpcy5hbmltYXRlKCBwcm9wcywgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKTtcclxuXHR9O1xyXG59KTtcclxuXHJcbmpRdWVyeS5zcGVlZCA9IGZ1bmN0aW9uKCBzcGVlZCwgZWFzaW5nLCBmbiApIHtcclxuXHR2YXIgb3B0ID0gc3BlZWQgJiYgdHlwZW9mIHNwZWVkID09PSBcIm9iamVjdFwiID8galF1ZXJ5LmV4dGVuZCgge30sIHNwZWVkICkgOiB7XHJcblx0XHRjb21wbGV0ZTogZm4gfHwgIWZuICYmIGVhc2luZyB8fFxyXG5cdFx0XHRqUXVlcnkuaXNGdW5jdGlvbiggc3BlZWQgKSAmJiBzcGVlZCxcclxuXHRcdGR1cmF0aW9uOiBzcGVlZCxcclxuXHRcdGVhc2luZzogZm4gJiYgZWFzaW5nIHx8IGVhc2luZyAmJiAhalF1ZXJ5LmlzRnVuY3Rpb24oIGVhc2luZyApICYmIGVhc2luZ1xyXG5cdH07XHJcblxyXG5cdG9wdC5kdXJhdGlvbiA9IGpRdWVyeS5meC5vZmYgPyAwIDogdHlwZW9mIG9wdC5kdXJhdGlvbiA9PT0gXCJudW1iZXJcIiA/IG9wdC5kdXJhdGlvbiA6XHJcblx0XHRvcHQuZHVyYXRpb24gaW4galF1ZXJ5LmZ4LnNwZWVkcyA/IGpRdWVyeS5meC5zcGVlZHNbIG9wdC5kdXJhdGlvbiBdIDogalF1ZXJ5LmZ4LnNwZWVkcy5fZGVmYXVsdDtcclxuXHJcblx0Ly8gbm9ybWFsaXplIG9wdC5xdWV1ZSAtIHRydWUvdW5kZWZpbmVkL251bGwgLT4gXCJmeFwiXHJcblx0aWYgKCBvcHQucXVldWUgPT0gbnVsbCB8fCBvcHQucXVldWUgPT09IHRydWUgKSB7XHJcblx0XHRvcHQucXVldWUgPSBcImZ4XCI7XHJcblx0fVxyXG5cclxuXHQvLyBRdWV1ZWluZ1xyXG5cdG9wdC5vbGQgPSBvcHQuY29tcGxldGU7XHJcblxyXG5cdG9wdC5jb21wbGV0ZSA9IGZ1bmN0aW9uKCkge1xyXG5cdFx0aWYgKCBqUXVlcnkuaXNGdW5jdGlvbiggb3B0Lm9sZCApICkge1xyXG5cdFx0XHRvcHQub2xkLmNhbGwoIHRoaXMgKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoIG9wdC5xdWV1ZSApIHtcclxuXHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIG9wdC5xdWV1ZSApO1xyXG5cdFx0fVxyXG5cdH07XHJcblxyXG5cdHJldHVybiBvcHQ7XHJcbn07XHJcblxyXG5qUXVlcnkuZWFzaW5nID0ge1xyXG5cdGxpbmVhcjogZnVuY3Rpb24oIHAgKSB7XHJcblx0XHRyZXR1cm4gcDtcclxuXHR9LFxyXG5cdHN3aW5nOiBmdW5jdGlvbiggcCApIHtcclxuXHRcdHJldHVybiAwLjUgLSBNYXRoLmNvcyggcCpNYXRoLlBJICkgLyAyO1xyXG5cdH1cclxufTtcclxuXHJcbmpRdWVyeS50aW1lcnMgPSBbXTtcclxualF1ZXJ5LmZ4ID0gVHdlZW4ucHJvdG90eXBlLmluaXQ7XHJcbmpRdWVyeS5meC50aWNrID0gZnVuY3Rpb24oKSB7XHJcblx0dmFyIHRpbWVyLFxyXG5cdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycyxcclxuXHRcdGkgPSAwO1xyXG5cclxuXHRmb3IgKCA7IGkgPCB0aW1lcnMubGVuZ3RoOyBpKysgKSB7XHJcblx0XHR0aW1lciA9IHRpbWVyc1sgaSBdO1xyXG5cdFx0Ly8gQ2hlY2tzIHRoZSB0aW1lciBoYXMgbm90IGFscmVhZHkgYmVlbiByZW1vdmVkXHJcblx0XHRpZiAoICF0aW1lcigpICYmIHRpbWVyc1sgaSBdID09PSB0aW1lciApIHtcclxuXHRcdFx0dGltZXJzLnNwbGljZSggaS0tLCAxICk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRpZiAoICF0aW1lcnMubGVuZ3RoICkge1xyXG5cdFx0alF1ZXJ5LmZ4LnN0b3AoKTtcclxuXHR9XHJcbn07XHJcblxyXG5qUXVlcnkuZngudGltZXIgPSBmdW5jdGlvbiggdGltZXIgKSB7XHJcblx0aWYgKCB0aW1lcigpICYmIGpRdWVyeS50aW1lcnMucHVzaCggdGltZXIgKSAmJiAhdGltZXJJZCApIHtcclxuXHRcdHRpbWVySWQgPSBzZXRJbnRlcnZhbCggalF1ZXJ5LmZ4LnRpY2ssIGpRdWVyeS5meC5pbnRlcnZhbCApO1xyXG5cdH1cclxufTtcclxuXHJcbmpRdWVyeS5meC5pbnRlcnZhbCA9IDEzO1xyXG5cclxualF1ZXJ5LmZ4LnN0b3AgPSBmdW5jdGlvbigpIHtcclxuXHRjbGVhckludGVydmFsKCB0aW1lcklkICk7XHJcblx0dGltZXJJZCA9IG51bGw7XHJcbn07XHJcblxyXG5qUXVlcnkuZnguc3BlZWRzID0ge1xyXG5cdHNsb3c6IDYwMCxcclxuXHRmYXN0OiAyMDAsXHJcblx0Ly8gRGVmYXVsdCBzcGVlZFxyXG5cdF9kZWZhdWx0OiA0MDBcclxufTtcclxuXHJcbi8vIEJhY2sgQ29tcGF0IDwxLjggZXh0ZW5zaW9uIHBvaW50XHJcbmpRdWVyeS5meC5zdGVwID0ge307XHJcblxyXG5pZiAoIGpRdWVyeS5leHByICYmIGpRdWVyeS5leHByLmZpbHRlcnMgKSB7XHJcblx0alF1ZXJ5LmV4cHIuZmlsdGVycy5hbmltYXRlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHtcclxuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGZuLmVsZW07XHJcblx0XHR9KS5sZW5ndGg7XHJcblx0fTtcclxufVxyXG52YXIgcnJvb3QgPSAvXig/OmJvZHl8aHRtbCkkL2k7XHJcblxyXG5qUXVlcnkuZm4ub2Zmc2V0ID0gZnVuY3Rpb24oIG9wdGlvbnMgKSB7XHJcblx0aWYgKCBhcmd1bWVudHMubGVuZ3RoICkge1xyXG5cdFx0cmV0dXJuIG9wdGlvbnMgPT09IHVuZGVmaW5lZCA/XHJcblx0XHRcdHRoaXMgOlxyXG5cdFx0XHR0aGlzLmVhY2goZnVuY3Rpb24oIGkgKSB7XHJcblx0XHRcdFx0alF1ZXJ5Lm9mZnNldC5zZXRPZmZzZXQoIHRoaXMsIG9wdGlvbnMsIGkgKTtcclxuXHRcdFx0fSk7XHJcblx0fVxyXG5cclxuXHR2YXIgYm94LCBkb2NFbGVtLCBib2R5LCB3aW4sIGNsaWVudFRvcCwgY2xpZW50TGVmdCwgc2Nyb2xsVG9wLCBzY3JvbGxMZWZ0LCB0b3AsIGxlZnQsXHJcblx0XHRlbGVtID0gdGhpc1sgMCBdLFxyXG5cdFx0ZG9jID0gZWxlbSAmJiBlbGVtLm93bmVyRG9jdW1lbnQ7XHJcblxyXG5cdGlmICggIWRvYyApIHtcclxuXHRcdHJldHVybjtcclxuXHR9XHJcblxyXG5cdGlmICggKGJvZHkgPSBkb2MuYm9keSkgPT09IGVsZW0gKSB7XHJcblx0XHRyZXR1cm4galF1ZXJ5Lm9mZnNldC5ib2R5T2Zmc2V0KCBlbGVtICk7XHJcblx0fVxyXG5cclxuXHRkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDtcclxuXHJcblx0Ly8gTWFrZSBzdXJlIHdlJ3JlIG5vdCBkZWFsaW5nIHdpdGggYSBkaXNjb25uZWN0ZWQgRE9NIG5vZGVcclxuXHRpZiAoICFqUXVlcnkuY29udGFpbnMoIGRvY0VsZW0sIGVsZW0gKSApIHtcclxuXHRcdHJldHVybiB7IHRvcDogMCwgbGVmdDogMCB9O1xyXG5cdH1cclxuXHJcblx0Ym94ID0gZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHR3aW4gPSBnZXRXaW5kb3coIGRvYyApO1xyXG5cdGNsaWVudFRvcCAgPSBkb2NFbGVtLmNsaWVudFRvcCAgfHwgYm9keS5jbGllbnRUb3AgIHx8IDA7XHJcblx0Y2xpZW50TGVmdCA9IGRvY0VsZW0uY2xpZW50TGVmdCB8fCBib2R5LmNsaWVudExlZnQgfHwgMDtcclxuXHRzY3JvbGxUb3AgID0gd2luLnBhZ2VZT2Zmc2V0IHx8IGRvY0VsZW0uc2Nyb2xsVG9wO1xyXG5cdHNjcm9sbExlZnQgPSB3aW4ucGFnZVhPZmZzZXQgfHwgZG9jRWxlbS5zY3JvbGxMZWZ0O1xyXG5cdHRvcCAgPSBib3gudG9wICArIHNjcm9sbFRvcCAgLSBjbGllbnRUb3A7XHJcblx0bGVmdCA9IGJveC5sZWZ0ICsgc2Nyb2xsTGVmdCAtIGNsaWVudExlZnQ7XHJcblxyXG5cdHJldHVybiB7IHRvcDogdG9wLCBsZWZ0OiBsZWZ0IH07XHJcbn07XHJcblxyXG5qUXVlcnkub2Zmc2V0ID0ge1xyXG5cclxuXHRib2R5T2Zmc2V0OiBmdW5jdGlvbiggYm9keSApIHtcclxuXHRcdHZhciB0b3AgPSBib2R5Lm9mZnNldFRvcCxcclxuXHRcdFx0bGVmdCA9IGJvZHkub2Zmc2V0TGVmdDtcclxuXHJcblx0XHRpZiAoIGpRdWVyeS5zdXBwb3J0LmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0ICkge1xyXG5cdFx0XHR0b3AgICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoYm9keSwgXCJtYXJnaW5Ub3BcIikgKSB8fCAwO1xyXG5cdFx0XHRsZWZ0ICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoYm9keSwgXCJtYXJnaW5MZWZ0XCIpICkgfHwgMDtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4geyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9O1xyXG5cdH0sXHJcblxyXG5cdHNldE9mZnNldDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGkgKSB7XHJcblx0XHR2YXIgcG9zaXRpb24gPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBvc2l0aW9uXCIgKTtcclxuXHJcblx0XHQvLyBzZXQgcG9zaXRpb24gZmlyc3QsIGluLWNhc2UgdG9wL2xlZnQgYXJlIHNldCBldmVuIG9uIHN0YXRpYyBlbGVtXHJcblx0XHRpZiAoIHBvc2l0aW9uID09PSBcInN0YXRpY1wiICkge1xyXG5cdFx0XHRlbGVtLnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xyXG5cdFx0fVxyXG5cclxuXHRcdHZhciBjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksXHJcblx0XHRcdGN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCksXHJcblx0XHRcdGN1ckNTU1RvcCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwidG9wXCIgKSxcclxuXHRcdFx0Y3VyQ1NTTGVmdCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwibGVmdFwiICksXHJcblx0XHRcdGNhbGN1bGF0ZVBvc2l0aW9uID0gKCBwb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiIHx8IHBvc2l0aW9uID09PSBcImZpeGVkXCIgKSAmJiBqUXVlcnkuaW5BcnJheShcImF1dG9cIiwgW2N1ckNTU1RvcCwgY3VyQ1NTTGVmdF0pID4gLTEsXHJcblx0XHRcdHByb3BzID0ge30sIGN1clBvc2l0aW9uID0ge30sIGN1clRvcCwgY3VyTGVmdDtcclxuXHJcblx0XHQvLyBuZWVkIHRvIGJlIGFibGUgdG8gY2FsY3VsYXRlIHBvc2l0aW9uIGlmIGVpdGhlciB0b3Agb3IgbGVmdCBpcyBhdXRvIGFuZCBwb3NpdGlvbiBpcyBlaXRoZXIgYWJzb2x1dGUgb3IgZml4ZWRcclxuXHRcdGlmICggY2FsY3VsYXRlUG9zaXRpb24gKSB7XHJcblx0XHRcdGN1clBvc2l0aW9uID0gY3VyRWxlbS5wb3NpdGlvbigpO1xyXG5cdFx0XHRjdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7XHJcblx0XHRcdGN1ckxlZnQgPSBjdXJQb3NpdGlvbi5sZWZ0O1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y3VyVG9wID0gcGFyc2VGbG9hdCggY3VyQ1NTVG9wICkgfHwgMDtcclxuXHRcdFx0Y3VyTGVmdCA9IHBhcnNlRmxvYXQoIGN1ckNTU0xlZnQgKSB8fCAwO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmICggalF1ZXJ5LmlzRnVuY3Rpb24oIG9wdGlvbnMgKSApIHtcclxuXHRcdFx0b3B0aW9ucyA9IG9wdGlvbnMuY2FsbCggZWxlbSwgaSwgY3VyT2Zmc2V0ICk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCBvcHRpb25zLnRvcCAhPSBudWxsICkge1xyXG5cdFx0XHRwcm9wcy50b3AgPSAoIG9wdGlvbnMudG9wIC0gY3VyT2Zmc2V0LnRvcCApICsgY3VyVG9wO1xyXG5cdFx0fVxyXG5cdFx0aWYgKCBvcHRpb25zLmxlZnQgIT0gbnVsbCApIHtcclxuXHRcdFx0cHJvcHMubGVmdCA9ICggb3B0aW9ucy5sZWZ0IC0gY3VyT2Zmc2V0LmxlZnQgKSArIGN1ckxlZnQ7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKCBcInVzaW5nXCIgaW4gb3B0aW9ucyApIHtcclxuXHRcdFx0b3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0Y3VyRWxlbS5jc3MoIHByb3BzICk7XHJcblx0XHR9XHJcblx0fVxyXG59O1xyXG5cclxuXHJcbmpRdWVyeS5mbi5leHRlbmQoe1xyXG5cclxuXHRwb3NpdGlvbjogZnVuY3Rpb24oKSB7XHJcblx0XHRpZiAoICF0aGlzWzBdICkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dmFyIGVsZW0gPSB0aGlzWzBdLFxyXG5cclxuXHRcdC8vIEdldCAqcmVhbCogb2Zmc2V0UGFyZW50XHJcblx0XHRvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudCgpLFxyXG5cclxuXHRcdC8vIEdldCBjb3JyZWN0IG9mZnNldHNcclxuXHRcdG9mZnNldCAgICAgICA9IHRoaXMub2Zmc2V0KCksXHJcblx0XHRwYXJlbnRPZmZzZXQgPSBycm9vdC50ZXN0KG9mZnNldFBhcmVudFswXS5ub2RlTmFtZSkgPyB7IHRvcDogMCwgbGVmdDogMCB9IDogb2Zmc2V0UGFyZW50Lm9mZnNldCgpO1xyXG5cclxuXHRcdC8vIFN1YnRyYWN0IGVsZW1lbnQgbWFyZ2luc1xyXG5cdFx0Ly8gbm90ZTogd2hlbiBhbiBlbGVtZW50IGhhcyBtYXJnaW46IGF1dG8gdGhlIG9mZnNldExlZnQgYW5kIG1hcmdpbkxlZnRcclxuXHRcdC8vIGFyZSB0aGUgc2FtZSBpbiBTYWZhcmkgY2F1c2luZyBvZmZzZXQubGVmdCB0byBpbmNvcnJlY3RseSBiZSAwXHJcblx0XHRvZmZzZXQudG9wICAtPSBwYXJzZUZsb2F0KCBqUXVlcnkuY3NzKGVsZW0sIFwibWFyZ2luVG9wXCIpICkgfHwgMDtcclxuXHRcdG9mZnNldC5sZWZ0IC09IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3MoZWxlbSwgXCJtYXJnaW5MZWZ0XCIpICkgfHwgMDtcclxuXHJcblx0XHQvLyBBZGQgb2Zmc2V0UGFyZW50IGJvcmRlcnNcclxuXHRcdHBhcmVudE9mZnNldC50b3AgICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50WzBdLCBcImJvcmRlclRvcFdpZHRoXCIpICkgfHwgMDtcclxuXHRcdHBhcmVudE9mZnNldC5sZWZ0ICs9IHBhcnNlRmxvYXQoIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50WzBdLCBcImJvcmRlckxlZnRXaWR0aFwiKSApIHx8IDA7XHJcblxyXG5cdFx0Ly8gU3VidHJhY3QgdGhlIHR3byBvZmZzZXRzXHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHR0b3A6ICBvZmZzZXQudG9wICAtIHBhcmVudE9mZnNldC50b3AsXHJcblx0XHRcdGxlZnQ6IG9mZnNldC5sZWZ0IC0gcGFyZW50T2Zmc2V0LmxlZnRcclxuXHRcdH07XHJcblx0fSxcclxuXHJcblx0b2Zmc2V0UGFyZW50OiBmdW5jdGlvbigpIHtcclxuXHRcdHJldHVybiB0aGlzLm1hcChmdW5jdGlvbigpIHtcclxuXHRcdFx0dmFyIG9mZnNldFBhcmVudCA9IHRoaXMub2Zmc2V0UGFyZW50IHx8IGRvY3VtZW50LmJvZHk7XHJcblx0XHRcdHdoaWxlICggb2Zmc2V0UGFyZW50ICYmICghcnJvb3QudGVzdChvZmZzZXRQYXJlbnQubm9kZU5hbWUpICYmIGpRdWVyeS5jc3Mob2Zmc2V0UGFyZW50LCBcInBvc2l0aW9uXCIpID09PSBcInN0YXRpY1wiKSApIHtcclxuXHRcdFx0XHRvZmZzZXRQYXJlbnQgPSBvZmZzZXRQYXJlbnQub2Zmc2V0UGFyZW50O1xyXG5cdFx0XHR9XHJcblx0XHRcdHJldHVybiBvZmZzZXRQYXJlbnQgfHwgZG9jdW1lbnQuYm9keTtcclxuXHRcdH0pO1xyXG5cdH1cclxufSk7XHJcblxyXG5cclxuLy8gQ3JlYXRlIHNjcm9sbExlZnQgYW5kIHNjcm9sbFRvcCBtZXRob2RzXHJcbmpRdWVyeS5lYWNoKCB7c2Nyb2xsTGVmdDogXCJwYWdlWE9mZnNldFwiLCBzY3JvbGxUb3A6IFwicGFnZVlPZmZzZXRcIn0sIGZ1bmN0aW9uKCBtZXRob2QsIHByb3AgKSB7XHJcblx0dmFyIHRvcCA9IC9ZLy50ZXN0KCBwcm9wICk7XHJcblxyXG5cdGpRdWVyeS5mblsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdmFsICkge1xyXG5cdFx0cmV0dXJuIGpRdWVyeS5hY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBtZXRob2QsIHZhbCApIHtcclxuXHRcdFx0dmFyIHdpbiA9IGdldFdpbmRvdyggZWxlbSApO1xyXG5cclxuXHRcdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcclxuXHRcdFx0XHRyZXR1cm4gd2luID8gKHByb3AgaW4gd2luKSA/IHdpblsgcHJvcCBdIDpcclxuXHRcdFx0XHRcdHdpbi5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbIG1ldGhvZCBdIDpcclxuXHRcdFx0XHRcdGVsZW1bIG1ldGhvZCBdO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRpZiAoIHdpbiApIHtcclxuXHRcdFx0XHR3aW4uc2Nyb2xsVG8oXHJcblx0XHRcdFx0XHQhdG9wID8gdmFsIDogalF1ZXJ5KCB3aW4gKS5zY3JvbGxMZWZ0KCksXHJcblx0XHRcdFx0XHQgdG9wID8gdmFsIDogalF1ZXJ5KCB3aW4gKS5zY3JvbGxUb3AoKVxyXG5cdFx0XHRcdCk7XHJcblxyXG5cdFx0XHR9IGVsc2Uge1xyXG5cdFx0XHRcdGVsZW1bIG1ldGhvZCBdID0gdmFsO1xyXG5cdFx0XHR9XHJcblx0XHR9LCBtZXRob2QsIHZhbCwgYXJndW1lbnRzLmxlbmd0aCwgbnVsbCApO1xyXG5cdH07XHJcbn0pO1xyXG5cclxuZnVuY3Rpb24gZ2V0V2luZG93KCBlbGVtICkge1xyXG5cdHJldHVybiBqUXVlcnkuaXNXaW5kb3coIGVsZW0gKSA/XHJcblx0XHRlbGVtIDpcclxuXHRcdGVsZW0ubm9kZVR5cGUgPT09IDkgP1xyXG5cdFx0XHRlbGVtLmRlZmF1bHRWaWV3IHx8IGVsZW0ucGFyZW50V2luZG93IDpcclxuXHRcdFx0ZmFsc2U7XHJcbn1cclxuLy8gQ3JlYXRlIGlubmVySGVpZ2h0LCBpbm5lcldpZHRoLCBoZWlnaHQsIHdpZHRoLCBvdXRlckhlaWdodCBhbmQgb3V0ZXJXaWR0aCBtZXRob2RzXHJcbmpRdWVyeS5lYWNoKCB7IEhlaWdodDogXCJoZWlnaHRcIiwgV2lkdGg6IFwid2lkdGhcIiB9LCBmdW5jdGlvbiggbmFtZSwgdHlwZSApIHtcclxuXHRqUXVlcnkuZWFjaCggeyBwYWRkaW5nOiBcImlubmVyXCIgKyBuYW1lLCBjb250ZW50OiB0eXBlLCBcIlwiOiBcIm91dGVyXCIgKyBuYW1lIH0sIGZ1bmN0aW9uKCBkZWZhdWx0RXh0cmEsIGZ1bmNOYW1lICkge1xyXG5cdFx0Ly8gbWFyZ2luIGlzIG9ubHkgZm9yIG91dGVySGVpZ2h0LCBvdXRlcldpZHRoXHJcblx0XHRqUXVlcnkuZm5bIGZ1bmNOYW1lIF0gPSBmdW5jdGlvbiggbWFyZ2luLCB2YWx1ZSApIHtcclxuXHRcdFx0dmFyIGNoYWluYWJsZSA9IGFyZ3VtZW50cy5sZW5ndGggJiYgKCBkZWZhdWx0RXh0cmEgfHwgdHlwZW9mIG1hcmdpbiAhPT0gXCJib29sZWFuXCIgKSxcclxuXHRcdFx0XHRleHRyYSA9IGRlZmF1bHRFeHRyYSB8fCAoIG1hcmdpbiA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gdHJ1ZSA/IFwibWFyZ2luXCIgOiBcImJvcmRlclwiICk7XHJcblxyXG5cdFx0XHRyZXR1cm4galF1ZXJ5LmFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIHR5cGUsIHZhbHVlICkge1xyXG5cdFx0XHRcdHZhciBkb2M7XHJcblxyXG5cdFx0XHRcdGlmICggalF1ZXJ5LmlzV2luZG93KCBlbGVtICkgKSB7XHJcblx0XHRcdFx0XHQvLyBBcyBvZiA1LzgvMjAxMiB0aGlzIHdpbGwgeWllbGQgaW5jb3JyZWN0IHJlc3VsdHMgZm9yIE1vYmlsZSBTYWZhcmksIGJ1dCB0aGVyZVxyXG5cdFx0XHRcdFx0Ly8gaXNuJ3QgYSB3aG9sZSBsb3Qgd2UgY2FuIGRvLiBTZWUgcHVsbCByZXF1ZXN0IGF0IHRoaXMgVVJMIGZvciBkaXNjdXNzaW9uOlxyXG5cdFx0XHRcdFx0Ly8gaHR0cHM6Ly9naXRodWIuY29tL2pxdWVyeS9qcXVlcnkvcHVsbC83NjRcclxuXHRcdFx0XHRcdHJldHVybiBlbGVtLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudFsgXCJjbGllbnRcIiArIG5hbWUgXTtcclxuXHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdC8vIEdldCBkb2N1bWVudCB3aWR0aCBvciBoZWlnaHRcclxuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDkgKSB7XHJcblx0XHRcdFx0XHRkb2MgPSBlbGVtLmRvY3VtZW50RWxlbWVudDtcclxuXHJcblx0XHRcdFx0XHQvLyBFaXRoZXIgc2Nyb2xsW1dpZHRoL0hlaWdodF0gb3Igb2Zmc2V0W1dpZHRoL0hlaWdodF0gb3IgY2xpZW50W1dpZHRoL0hlaWdodF0sIHdoaWNoZXZlciBpcyBncmVhdGVzdFxyXG5cdFx0XHRcdFx0Ly8gdW5mb3J0dW5hdGVseSwgdGhpcyBjYXVzZXMgYnVnICMzODM4IGluIElFNi84IG9ubHksIGJ1dCB0aGVyZSBpcyBjdXJyZW50bHkgbm8gZ29vZCwgc21hbGwgd2F5IHRvIGZpeCBpdC5cclxuXHRcdFx0XHRcdHJldHVybiBNYXRoLm1heChcclxuXHRcdFx0XHRcdFx0ZWxlbS5ib2R5WyBcInNjcm9sbFwiICsgbmFtZSBdLCBkb2NbIFwic2Nyb2xsXCIgKyBuYW1lIF0sXHJcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJvZmZzZXRcIiArIG5hbWUgXSwgZG9jWyBcIm9mZnNldFwiICsgbmFtZSBdLFxyXG5cdFx0XHRcdFx0XHRkb2NbIFwiY2xpZW50XCIgKyBuYW1lIF1cclxuXHRcdFx0XHRcdCk7XHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRyZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/XHJcblx0XHRcdFx0XHQvLyBHZXQgd2lkdGggb3IgaGVpZ2h0IG9uIHRoZSBlbGVtZW50LCByZXF1ZXN0aW5nIGJ1dCBub3QgZm9yY2luZyBwYXJzZUZsb2F0XHJcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCB2YWx1ZSwgZXh0cmEgKSA6XHJcblxyXG5cdFx0XHRcdFx0Ly8gU2V0IHdpZHRoIG9yIGhlaWdodCBvbiB0aGUgZWxlbWVudFxyXG5cdFx0XHRcdFx0alF1ZXJ5LnN0eWxlKCBlbGVtLCB0eXBlLCB2YWx1ZSwgZXh0cmEgKTtcclxuXHRcdFx0fSwgdHlwZSwgY2hhaW5hYmxlID8gbWFyZ2luIDogdW5kZWZpbmVkLCBjaGFpbmFibGUsIG51bGwgKTtcclxuXHRcdH07XHJcblx0fSk7XHJcbn0pO1xyXG4vLyBFeHBvc2UgalF1ZXJ5IHRvIHRoZSBnbG9iYWwgb2JqZWN0XHJcbndpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9IGpRdWVyeTtcclxuXHJcbi8vIEV4cG9zZSBqUXVlcnkgYXMgYW4gQU1EIG1vZHVsZSwgYnV0IG9ubHkgZm9yIEFNRCBsb2FkZXJzIHRoYXRcclxuLy8gdW5kZXJzdGFuZCB0aGUgaXNzdWVzIHdpdGggbG9hZGluZyBtdWx0aXBsZSB2ZXJzaW9ucyBvZiBqUXVlcnlcclxuLy8gaW4gYSBwYWdlIHRoYXQgYWxsIG1pZ2h0IGNhbGwgZGVmaW5lKCkuIFRoZSBsb2FkZXIgd2lsbCBpbmRpY2F0ZVxyXG4vLyB0aGV5IGhhdmUgc3BlY2lhbCBhbGxvd2FuY2VzIGZvciBtdWx0aXBsZSBqUXVlcnkgdmVyc2lvbnMgYnlcclxuLy8gc3BlY2lmeWluZyBkZWZpbmUuYW1kLmpRdWVyeSA9IHRydWUuIFJlZ2lzdGVyIGFzIGEgbmFtZWQgbW9kdWxlLFxyXG4vLyBzaW5jZSBqUXVlcnkgY2FuIGJlIGNvbmNhdGVuYXRlZCB3aXRoIG90aGVyIGZpbGVzIHRoYXQgbWF5IHVzZSBkZWZpbmUsXHJcbi8vIGJ1dCBub3QgdXNlIGEgcHJvcGVyIGNvbmNhdGVuYXRpb24gc2NyaXB0IHRoYXQgdW5kZXJzdGFuZHMgYW5vbnltb3VzXHJcbi8vIEFNRCBtb2R1bGVzLiBBIG5hbWVkIEFNRCBpcyBzYWZlc3QgYW5kIG1vc3Qgcm9idXN0IHdheSB0byByZWdpc3Rlci5cclxuLy8gTG93ZXJjYXNlIGpxdWVyeSBpcyB1c2VkIGJlY2F1c2UgQU1EIG1vZHVsZSBuYW1lcyBhcmUgZGVyaXZlZCBmcm9tXHJcbi8vIGZpbGUgbmFtZXMsIGFuZCBqUXVlcnkgaXMgbm9ybWFsbHkgZGVsaXZlcmVkIGluIGEgbG93ZXJjYXNlIGZpbGUgbmFtZS5cclxuLy8gRG8gdGhpcyBhZnRlciBjcmVhdGluZyB0aGUgZ2xvYmFsIHNvIHRoYXQgaWYgYW4gQU1EIG1vZHVsZSB3YW50cyB0byBjYWxsXHJcbi8vIG5vQ29uZmxpY3QgdG8gaGlkZSB0aGlzIHZlcnNpb24gb2YgalF1ZXJ5LCBpdCB3aWxsIHdvcmsuXHJcbmlmICggdHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQgJiYgZGVmaW5lLmFtZC5qUXVlcnkgKSB7XHJcblx0ZGVmaW5lKCBcImpxdWVyeVwiLCBbXSwgZnVuY3Rpb24gKCkgeyByZXR1cm4galF1ZXJ5OyB9ICk7XHJcbn1cclxuXHJcbn0pKCB3aW5kb3cgKTtcclxuIl19 diff --git a/web/dist/modules-bundle.js b/web/dist/modules-bundle.js index 4145cbb6..0750ae93 100644 --- a/web/dist/modules-bundle.js +++ b/web/dist/modules-bundle.js @@ -1,15 +1,35058 @@ -var _0x46c7=['clientY','html','pageY','flexbox-fix','travel_to','CSS_UNIT','#cont_','Details','','52px','writeInt8','#37474f','getFailCallBack','_roundA','4px\x200\x204px\x206px','./_shortOut','°,\x20','stopPropagation','#c8e6c9','Param\x20is\x20not\x20a\x20string','#aed581','&cl=','time','StrictMode','points','Promise','#004d40','[object\x20process]','itemName','socketPath','#eeff41','../../../api/CustomFieldAdapter','#757575','toCanvas','solid','testKanji','toHsvString','green','isStream','PhotoshopPreviews','Upload','#f1f8e9','4169e1','admin=',')\x5cs*\x5c)?','Hours\x20(','callBackFail','','','hideLabel','./bit-buffer','id_number','get','#ffffff','Error\x20editing\x20data\x20group:\x20','./_hashHas','#numberOfCandidates','setUseServerTime','utf8','adapter','Twitter','Document','24px','.20','BlockPicker','./../helpers/cookies','change','[object\x20Uint8ClampedArray]','extractTag','objectTypeName','advanced_search','linear-gradient(to\x20right,\x20rgba(','Invalid\x20data','order','#QtsheetHeader','\x20#subordinates','1px\x20solid\x20rgba(0,0,0,0.2)','./_assignMergeValue','Notes','./_cloneBuffer','enumerable','\x20Request\x20status\x20changed\x20successfully','updateFields','select2','dummy','react.async_mode','Time-In','stroke-width','_isBuffer','domain=','#Attendance','dashed','#f48fb1','getTrimmedCanvas','./Swatch','previousView','#37D67A','./components/compact/Compact','./_isMasked','getValueObjectWithLabel','Travel\x20Date','dataTable','poolSize','Work\x20Station\x20Id','Password\x20must\x20include\x20at\x20least\x20one\x20uppercase\x20letter','Select','_edit__delete__clone_
    ','8b4513','\x22version\x22\x20should\x20be\x20in\x20range\x20from\x201\x20to\x2040','#ff9e80','react-color','send','_createPoint','#e91e63','reactcss','readInt32LE','__wrapped__','mod','Color\x20should\x20be\x20defined\x20as\x20hex\x20string','#fb8c00','react-signature-canvas','transparent','hex4','Compact','control1','react-dom','_handleTouchStart','_filterBtn','hideLoadError','[object\x20String]','','requestCache','.select2Field','initAdapter','notes','path=','isKanjiModeEnabled','\x20|\x20','handleHover','Buffer\x20size\x20must\x20be\x20a\x20multiple\x20of\x2064-bits','Reason','./numeric-data','./_getTag','data:text/plain;charset=utf-8,','#b71c1c','#d1c4e9','(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+','isBuffer','#d7ccc8','filtersContainer','#ffd600','#f4ff81','M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z','min-height','EmployeeTimeSheetAdapter','display_section','proxy-authorization','getObjectHTML','single_source_shortest_paths','Component','inset\x200\x200\x200\x201px\x20rgba(0,0,0,.15)','form','6px','datagroup','./components/circle/Circle','simplemde','closeDataMessage','unshift','#1e88e5','f08080','_upload','data','#c5e1a5','currentId','#50E3C2','TextArea','modEmployeeGetFailCallBack','height','getContent','fffaf0','2f4f4f','./_nativeKeysIn','PhotoshopPicker','ee82ee','clear','translateX(-2px)','0\x2017px\x2050px\x20rgba(0,0,0,.19),\x200\x2012px\x2015px\x20rgba(0,0,0,.24)','desaturate','versions','Country','isArrayBuffer','_edit_','./_baseHasIn','\x20#grid','setEmployeeProjects','Edit\x20Country','triangle','remove','rgba(0,0,0,0.4)','_status_','startColorstr=','0\x200\x2024\x2024','#ff5252','\x20failed','#loadingBlock','#ffe0b2','.80','split','required','getCurrentProfile','getActiveSubordinateEmployees','#e0f7fa','_renderForm','status_to','Date\x20of\x20Birth','Axios','./cjs/react-is.development.js','EPF/CPF/SS\x20No','floor','description','#c0ca33','#e57373','writeUIntBE','./_isIndex','__val__','rgba(255,\x20255,\x20255,\x201)','Driving\x20License\x20No','Upload/Delete\x20Profile\x20Image','touchstart','content','e6e6fa','hideError','createPreviousAttendnacesheet','click','custom-validate-function','#ad1457','100ms\x20box-shadow\x20ease','text-anchor','updateDataSuccessCallBack','validationRules','sendCellDataUpdates','fetch','search','SketchPicker','#00bcd4','extend','[object\x20Float64Array]','.dataTables_paginate\x20ul','Invalid\x20hex\x20color:\x20','helper','20%','modules','activeElement','','AAsmall','modifyCSVHeader','Total\x20Funding\x20Proposed','#697689','Middle\x20Name','data/','0\x202px','renderObject','fun','catch','days','#004DCF','putImageData','formReference','hue','display_order','isFile','small','inputmask','./isTypedArray','#ffeb3b','rawSplit','triangleBorder','StaffDirectoryAdapter','','2px\x20white\x20solid','showFilters','','linear-gradient(-180deg,\x20#FFFFFF\x200%,\x20#E6E6E6\x20100%)','keyCode','drawImage','element','DashboardAdapter','./_equalArrays','5px','#ffcdd2','Buffer\x20size\x20must\x20be\x20a\x20multiple\x20of\x2016-bits','toHslString','0\x201px\x20rgba(0,0,0,.1)','./_arrayMap','handlers','Form\x20.datetimefield','disableAlpha','Widowed','[object\x20WeakMap]','convertToTree','updateDataFailCallBack','renderForm','errorMsg','useEffect','File\x20not\x20found','_MENU_\x20records\x20per\x20page','view','CircleSwatch','isArray','remoteFieldsExists','#00c853','changeTimeSheetStatusSuccessCallBack','confirmationHasError','PATTERN000','content-box','inspect','customTemplates','access','ellipsis','defaults','gradient','shadow','Password\x20too\x20long','8b008b','unbind','HuePicker','0000-00-00\x2000:00:00','every','isConcurrentMode','getContext','tags','toHexString','onreadystatechange','.timesheet_end','228px','validateAll','Cancelled','find','\x20Filters','[object\x20Boolean]','This\x20browser\x20lacks\x20typed\x20array\x20(Uint8Array)\x20support\x20which\x20is\x20required\x20by\x20`buffer`\x20v5.x.\x20Use\x20`buffer`\x20v4.x\x20if\x20you\x20require\x20old\x20browser\x20support.','_handleMouseUp','moveToTop','#b39ddb','off','Active','`,\x20expected\x20a\x20single\x20ReactElement\x20type.','execute','method','6px\x206px\x200\x200','./_baseForOwn','Date\x20Added','\x27offset\x27\x20is\x20out\x20of\x20bounds','008000','modules=attendance','dot','9{0,10}.99','_process','#fafafa','20b2aa','travel_from','passwordState','#B80000','mobile_phone','binary','./_baseIsSet','getCustomActionUrl','#e040fb','then','Joined\x20Date','[mask]','./_hasPath','setOrderBy','select-one','NativeScript','#e65100','\x20C\x20','callFunction','reduce','Work\x20related\x20details','./components/photoshop/Photoshop','createPreviousTimesheet','charCodeAt','#F47373','data:image/svg+xml;base64,','substring','#C4DEF6','EmployeeTravelRecordAdapter','showSave','onClick','saveCallback','Skill','toSJISFunc','Show','_ctx','testAlphanumeric','mostReadable','#b2ff59','scrollToTop','hiddenFields','2e8b57','fileupload-new.php?user=','__data__','@icons/material/UnfoldMoreHorizontalIcon','templates','800080','#1976d2','end_time','middle','setFieldTemplates','getDefaultButtons','./_arrayFilter','Item\x20Added','696969','funding','Cancel','\x0aValid\x20keys:\x20','EmploymentStatus','#ff4081','\x0aMake\x20sure\x20your\x20charset\x20is\x20UTF-8','employee_id','.timefield','closeDialog','M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z','INSPECT_MAX_BYTES','steps','reader','skill_id','timeoutErrorMessage','./defaults','closePlainMessage','pipe','abcdefghijklmnopqrst','.deleteBtnWorkSchedule','Punch-out\x20','orange','b8860b','_submit\x20#id','fa\x20fa-file-text-o','FilterOutlined','1px\x20solid\x20#eee','H0z\x22/>','.timesheet_start','readability','Head\x20Office','./_baseIsMatch','getRowColCoords','yellow','type','25px','save','valid','fulfilled','authorization','Travel\x20From','#5d4037','sort','./factoryWithThrowingShims','construct','translations','Pending','defaultView','Punched\x20In','Symbol','viewBox=\x220\x200\x20','currentFilterString','putBit','./components/hover','You\x20need\x20to\x20specify\x20a\x20canvas\x20element','svg','which','setApiUrl','setContainer','getSuccessCallBack','#f06292','EmployeeProjectAdapter','getCustomUrl','hasOwnProperty','LabelErrorClass','#448aff','Row','once','Unknown\x20mode:\x20','0px\x200px\x200px\x200px','Plane','getValidationRule','country_Name','_toSVG','Monthly\x20Installment','ff0','(^|;\x5cs*)(','setFieldsValue','base64','level','./core/qrcode','#ff6f00','513px','NULL','./_copySymbols','use','saveSuccessCallback','tableContainer','require','./forEach','swap16','project','columnIDMap','renderFormField','Elementary\x20Proficiency','OvertimeRequest','handleMouseUp','photoAttendance','6b8e23','Completed\x20On','low','./_assignValue','#tabPageCompanyGraph','Document\x20Id','#9fa8da','[object\x20Array]','#283593','<>','address','resolve',',\x2050%,\x20','merge','@@iterator','valid_until','BlockSwatches','./_isKey','../core/buildFullPath','Index\x20out\x20of\x20range','getTableActionButtonJsx','./_baseIsEqual','./_MapCache','service.php','generateRandom','#F78DA7','./_hashSet','fffff0','presetColors','location','getColorByRandomString','','setShowSave','#employeeUploadProfileImage','__filterString__\x20','translate(-12px,\x20-13px)','80px','getUserMedia','autoprefix','updatePasswordState','isLazy','ReportAdapter','./_copyArray','MonitorOutlined','profile_image_','hasMoreData','_handleMouseMove','Form\x20.timefield','_children','fa\x20fa-edit','./helpers/spread','1e90ff','./checkPropTypes','#F5A623','fail','addActualFieldsForStepModal','./adapters/xhr','other_id','#yesnoModel','dc143c','currentReport','Form\x20.select2Field','_strokeMoveUpdate','./_stackDelete','./_getAllKeys','CirclePicker','handleMouseDown','\x20#profile_image_','./isSet','setValue','ShowPopup','details','Password\x20Change','Female','#f9a825','getElementFailCallBack','slider-picker\x20','number','progid:DXImageTransform.Microsoft.gradient(','modulePath','diagonal','`,\x20expected\x20an\x20array.','#attendnacesheet_end','\x22version\x22\x20cannot\x20be\x20null\x20or\x20undefined','document','path.link','changePunchButtonSuccessCallBack','deleteRow','\x20to\x20','SwatchesColor','8px','./Raised','code','Purpose\x20of\x20Travel','city','[object\x20Proxy]','.dataTables_filter\x20input','source','props','monthly_installment','parse','_div_inner\x22>','#D0021B','#00b0ff','Table\x20and\x20Form','./_baseClone','clientX','regexp','max-forwards','center','bottom-left','','config','tinymce','joined_date','EmployeeTimeEntryAdapter','No\x20input\x20text','a9a9a9','NUMERIC','setUpdatedValue','getTableName','[object\x20Map]','0\x200\x205px\x202px\x20rgba(0,0,0,0.25)','_drawCurve','AlphaPointer','isAllLoaded','addCellDataUpdate','index','SwatchesGroup','#B0BC00','lowercase','fileupload','Compulsory','','SlowBuffer','&file_group=','react.scope','linear-gradient(-180deg,\x20#F0F0F0\x200%,\x20#D4D4D4\x20100%)','inset\x200\x200\x200\x201px\x20#ddd','End\x20Date','\x22size\x22\x20argument\x20must\x20be\x20of\x20type\x20number','duration','currentElement','256px','modJsList[\x27tabEmployeeTimeEntry\x27]','isString','./hasIn','#f5f5f5','./IceApiClient','SliderSwatches','','[object\x20Number]','isReserved','Languages','#ffff8d','\x20Active','#ffb74d','\x22\x20height=\x22','#81d4fa','SubordinateEmployeeTravelRecordAdapter','_resizeCanvas','.datetimefield','stack','tinycolor','field_label','translate(-8px,\x20-5px)','./_baseMerge','0\x209px\x2010px\x209px','./_setToString','interceptors','Calling\x20PropTypes\x20validators\x20directly\x20is\x20not\x20supported\x20by\x20the\x20`prop-types`\x20package.\x20Use\x20`PropTypes.checkPropTypes()`\x20to\x20call\x20them.\x20Read\x20more\x20at\x20http://fb.me/use-check-prop-types','#b2dfdb','rgba(0,\x200,\x200,\x200.54)','Employee\x20Profile','sTitle','disabled','[object\x20DataView]','#616161','department','employment_status','isvalidColorString','getUser','colorpicker','#_label_#','\x20tr\x20td:nth-child(','allocUnsafe','render','./_hashGet','readInt8','cd853f','SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED','util','Return\x20Date','deleteSuccessCallBack','#b9f6ca','fields','inset\x200\x201px\x201px\x20rgba(0,0,0,.1),\x200\x201px\x200\x200\x20#ECECEC','AttendanceAdapter','\x22offset\x22\x20is\x20outside\x20of\x20buffer\x20bounds','apply','getLogs','./ChromePointer','Company','password','setTableLoading','?a=ca&sa=getEmployeeTimeEntries&t=','Rejected','./_baseGetTag','setAdminEmp','#FCB900','httpAgent','PriorityQueue','ucs2','select2Field','./_baseFor','Job\x20Details','Password\x20must\x20include\x20at\x20least\x20one\x20number','Nationality','codeMirror','currentColor','Gender','steps-content','getCachedResponse','getTableData','isValidElementType','filename','applyMask','','1px\x20solid\x20#888888','#adminUsersChangePwd\x20#conpwd','Steps','fromCharCode','marital_status','Display\x20Section','getActionButtonsHtml','./_Set','fieldNameMap','noRender','handleMouseOut','inset\x200\x200\x200\x201px\x20rgba(0,0,0,.15),\x20inset\x200\x200\x204px\x20rgba(0,0,0,.25)','currentTarget','Text\x20Area','getRemoteSourceKey','#666','\x27s\x20parent\x20structure\x20set\x20to\x20','getBestModeForData','JSON','cancelRequest','curve','mouseup','?_url=1','mode','rgba(255,\x20255,\x20255,\x200.5)','offset','translate(-6px,\x20-6px)','isMemo','BitMatrix\x20size\x20must\x20be\x20defined\x20and\x20greater\x20than\x200','both','Start\x20Time','13px','StaffDirectoryObjectAdapter','#ffab91','min','.csv','translate(-6px,\x20-1px)','./alignment-pattern','time_entry_form.html','#bcaaa4','\x22\x20is\x20invalid\x20for\x20option\x20\x22size\x22','fa8072','resetDataGroup','setIsComponentVisible','getItem','Regional\x20Office','0\x200\x200\x201.5px\x20#fff,\x20inset\x200\x200\x201px\x201px\x20rgba(0,0,0,.3),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x200\x200\x201px\x202px\x20rgba(0,0,0,.4)','#212121','./_stackSet','Project','common','createFromField','LN2','Children','./components/material/Material','#ffa726','key','getImageUrlFromName','rejected','#ffca28','clearDeleteParams','instanceId','RGBlabel','#00bfa5',')\x20center\x20left','_error','translate(20px,\x20-14px)\x20rotate(180deg)','writing','#e8f5e9','url(','currentTimesheetId','processing','nationality','Field\x20Label','trailing','renderFormNew','2px\x200\x200\x202px','./version-check','appendChild','[^A-Z0-9\x20$%*+\x5c-./:]+','Error\x20occured\x20while\x20changing\x20Timesheet\x20status','thirdPartyPopup','parameters','baseURL','fetchMasterData','nextTick','#bdbdbd','Certifications','trackEvent','ff69b4','./_getSymbolsIn','#90a4ae','SwatchesPicker','quickEdit','Raised','loadMoreButton','create','datepicker','translate','#7ED321','executor\x20must\x20be\x20a\x20function.','Select\x20','isStandardBrowserEnv','renderYesNoModel','00ced1','validateCellValue','getUri','#fff176','projection','userAgent','file:','GithubSwatch','CompactPicker','#d81b60','now','_initLocalFormFields','_div_inner\x20[fieldid=\x27','#969696','activeColor','\x27length\x27\x20is\x20out\x20of\x20bounds','block','Password','Error','string','#006B76','_strokeWidth','
    ','setLoading','promise','fa\x20fa-file-image-o','AAAlarge','_isEmpty','#3c4043','Request\x20failed\x20with\x20status\x20code\x20','log(','fromRatio','handleFocus','Total\x20Time','cellDataUpdates','./_baseGetAllKeys','from','./_DataView','travel','handleSwatchHover','Label','#fff3e0','react.profiler','fieldMasterDataCallback','#e1bee7','All\x20Departments','#ff9100','processFormFieldsWithObject','Item','field_options','\x22\x20target=\x22_blank\x22\x20style=\x22font-size:14px;font-weight:bold;\x22>Download\x20Report\x20\x20','#f44336','decompress','createPreviousTimesheetSuccessCallBack','event','showView','setAdminProfile','./_Stack','getArrowOffset','cost','[object\x20Int32Array]','showDomElement','#80cbc4','expires=','16px\x2016px\x2012px','isValid','./_SetCache','array','e0ffff','image/svg+xml','onEnd','`\x20has\x20invalid\x20PropType\x20notation\x20inside\x20objectOf.','Numeric','getDataMapping','./GooglePointer','#f6f6f6','employment_status_Name','Swatch','5f9ea0','rgba(0,0,0,0.15)','exit','setFieldNameMap','toSJIS','update','pow','Required','Understanding','isStrictMode','mousedown','getFullYear','exp','getHeaders','editableTableWidget','hsva(','pre-format-function','useServerTime','start_date','./_listCacheHas','fixCyclicParent','user','initFieldMasterData','#00e5ff','onAccept','0f0','Divorced','#sortable-ul-selector-id','MailTwoTone','configureEvents','dragLabel','_format','.35','SubEmployeeTimeSheetAll','#827717','fieldMasterDataCallbackData','orderDataGroup','MMM\x20d\x20\x20HH:mm','changeTimeSheetStatusWithId','filtersAlreadySet','sham','_clone_','show','bottom-right','createPreviousAttendnacesheetSuccessCallBack','setRemoteTable','./_baseEach','oldHue','&ob=','ucs-2','viewOnly','inset\x201px\x200\x200\x20#000,\x20inset\x20-1px\x200\x200\x20#000,\x20inset\x200\x201px\x200\x20#000','#000','noJSONRequests','./isPlainObject','fileGroup','setPageSize','maxWait','checkValues','./CompactFields','Authorization','./SwatchesColor','fa\x20fa-times','sortingStarted','copy','./format-info','CustomPicker','certification_id','From','writeInt16LE','#64b5f6','validation=\x22','currentUserId','readonly','Bearer\x20','xor','\x20#name','protocol','Map','#e0e0e0','fromDataURL','setPrototypeOf','cdate','datetime','body','configurable','\x20#help_','throttle','grey','toByteArray','insert','github-picker\x20','componentDidMount','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.saturation-white\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20-webkit-linear-gradient(to\x20right,\x20#fff,\x20rgba(255,255,255,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(to\x20right,\x20#fff,\x20rgba(255,255,255,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.saturation-black\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20-webkit-linear-gradient(to\x20top,\x20#000,\x20rgba(0,0,0,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background:\x20linear-gradient(to\x20top,\x20#000,\x20rgba(0,0,0,0));\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20','getThemeColors','filterQuery','isDate','Alert\x20If\x20Not\x20Found','start','travelrequest','','#808900','translate(-9px,\x20-1px)','toState','YYYY-MM-DD\x20HH:mm:ss','#adminUsersChangePwd\x20#newpwd','callBackSuccess','MODAL_TYPE_STEPS','rgb(248,\x20248,\x20248)','alert_before_day_number','swatches','savePunch','#5e35b1','signatureField','Access\x20Forbidden','#f4511e','purple','#f0f4c3','iterator','0\x200\x200\x201px\x20#878787','#ede7f6','getTemplate','Please\x20select\x20','?t=','high','#388e3c','swatch','808000','yyyy/mm/dd','#a5d6a7','Saturation','./isArguments','mix','_handleTouchMove','#76ff03','Callback\x20required\x20as\x20last\x20argument','-16px','#16A5A5','concat','process','byteLength','tabEmployeeTimeEntry','#4A90E2','ffefd5','#aeea00','#punchButton','put','plainMessage','select2multi','headers','./_stackGet','attachment1','#fffde7','language_id','getScale','getFormParameters','initMasterDataReader','isSet','quality','product','changeStatus','showLoader','&sm=','Parent\x20Structure','hasAccess','rgb','setCSRFRequired','onerror','Valid\x20Until','setState','timeoutMessage','getFormOptions','HH:mm','\x20#grid\x20.editcell','closeModal','#e0f2f1','swatchWrap','\x20#project','lastIndexOf','.submit_sheet','handleActive','tooltip','Access\x20violation','#b0bec5','employees/','-14px','activeProjects','\x0a','nodeType','note','supervisor_Name','rightInside','_edit__logs__delete_','ascii','preProcessTableData','lightGreen','react.concurrent_mode','SliderPointer','_search','append','PATTERN110','prev','rowId','isSuspense','nodes','8b0000','0\x200\x202px\x202px','12px','numeric','#e6ee9c','Element','circle','BYTE_KANJI','./_baseMatchesProperty','abrupt','single','select','parseValue','Text','getTableTopButtonHtml','_colorpick','time_start','fromString','getRemoteSourceFields','#222','customFields','middle_name','Checkboard','AAA','Body','#FDA1FF','getKey','saveSuccessItemCallback','EmployeeCompanyLoanAdapter','fa\x20fa\x20fa-file-code-o','match','gotoDate','status','./can-promise','rotate(180deg)','#ff1744','getStatusFieldPosition','Submit','double','CompanyStructure','#3d5afe','Child','forceInjectValuesBeforeSave','label','TimeSheet\x20Start\x20Date','amount','punch','qrcode','Chrome','cancel','#80deea','[datemask]','prototype','./isArray','Github','dataGroup','#fbc02d','#1565c0','tableInitialized','html,\x20body','hex3','Invalid\x20attempt\x20to\x20spread\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','QtsheetAdapter','9acd32','updateAllMasterData','nl2br','canvasProps','./_cloneTypedArray','./constant','Paid','\x20d=\x22M0\x200h','olive','Col','showPasswordResetModal','pageX','./_createAssigner','argv','getTimeEntries','inset\x200\x200\x200\x20','Upload\x20Profile\x20Image','input','','End\x20Time','react.context','#4fc3f7','`,\x20expected\x20`object`.','_edit__delete__status__logs_','xsrfHeaderName','beforeRenderFieldHook','\x20#date_select','table-row-light','changePasswordConfirm','./components/EmployeeProfile','changeTimeSheetStatusFailCallBack','2px\x20solid\x20#F0F0F0','devicePixelRatio','./cancel/Cancel','Calling\x20PropTypes\x20validators\x20directly\x20is\x20not\x20supported\x20by\x20the\x20`prop-types`\x20package.\x20Use\x20PropTypes.checkPropTypes()\x20to\x20call\x20them.\x20Read\x20more\x20at\x20http://fb.me/use-check-prop-types','22px','arrayOf','#cccccc','getElementById','lodash/throttle','setAttributeNS','currentView','success','PATTERN111','hsl','#81c784','fromData','validation','[object\x20Date]','Overtime','Buffer','inset\x200\x200\x200\x201px\x20#dadada','lodash/isUndefined','backgroundColor','[object\x20Function]','./_baseMatches','CompactColor','#c62828','reload','isContextProvider','prgb','background','component','job_title','allProjectsAllowed','#e3f2fd','findParent','./renderer/svg-tag.js','30px','supervisor','getTimeEntriesSuccessCallBack','Social\x20Security\x20Number','Cache','#aa00ff','&iDisplayLength=','_excludeOurProps','png','./_nativeCreate','createRef','setModulePath','./InterceptorManager','createTable','Address\x20Line\x202','relative','fill-opacity','borderRadius','#e53935','getDataUrl','5px\x200\x205px\x208px','clearError','.signatureField','amber','EmployeeDependentAdapter','loan','b0c4de','employeetravelrecord','className','addFailCallBack','Skills','EmployeeEducationAdapter','.controls','../../helpers/color','numberOfCandidates','Address','../../../api/ReactModalAdapterBase','lastIndex','b0e0e6','production','Travel\x20Type','CompactFields','Personal','cwd','select-multi','y-1-2','format','rgba(0,\x200,\x200,\x200.87)','flex','jpeg','lodash/debounce','.attendnaceSnap','getAllDataFailCallBack','#numberOfJobs','date_select','placeholder=\x22','$$typeof','./PhotoshopButton','ForwardRef','pay_grade','Divider','Job\x20Title','80%','#D9E3F0','#efebe9','./_hashClear','Google','Roboto,Arial,sans-serif','#ffea00','compare','30%','handleBlur','[object\x20Error]','sliders','blue','deleteDataGroupItem','./_cacheHas','reloadCurrentElement','./toPlainObject','clearFileElement','Expected\x20a\x20function','updateAllData','play','#customFieldsCont','_message','move','termination_date','raw','#FCCB00','Alpha','./keysIn','mark','[object\x20ArrayBuffer]','#607d8b','clearCachedResponse','100','#3f51b5','pink','./SketchPresetColors','process.binding\x20is\x20not\x20supported','blueGrey','CancelToken','#546e7a','prependOnceListener','adff2f','tableData','#DCDCDC','return\x20this','getClientDate','getLengthInBits','#adminUsersChangePwd_error','showLoadError','__text__','width','Memo','./bit-matrix','contains','gutter-row','slice','ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/','inset\x200\x200\x200\x201px\x20#F0F0F0','Object.assign\x20cannot\x20be\x20called\x20with\x20null\x20or\x20undefined','depth','propertyIsEnumerable','volcano','Employment\x20Status','Invalid\x20argument\x20supplied\x20to\x20oneOfType.\x20Expected\x20an\x20array\x20of\x20check\x20functions,\x20but\x20received\x20','touchend','AAlarge','reading','../../../api/FormValidation','birthday','readUInt32LE','\x27]:checked','Attachment','space-between','updateDataAllSuccessCallBack','\x20Add\x20New','#8c9eff','deleteProfileImage','Submitted','00fa9a','modules=attendnace','__lodash_hash_undefined__','#d32f2f','New\x20Password','callBackData','toJSON','#ba68c8','updateFieldsSubForm','addToLangTerms','.timesheet_entries_table_body','./_initCloneByTag','rgba(0,0,0,.08)','#ff80ab','Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.','./mergeConfig','setDefaultValues','Additional\x20details','showEdit','setShowDelete','Confirm\x20Deletion','readUIntLE','Item\x20Removed','#999999','radius','75%','fffafa','./dispatchRequest','#timesheet_status','first-child','
    ','#0288d1','nic_num','fa\x20fa-file-o','CompanyLoan','translate(-2px,\x20-2px)','#ab47bc','layout','Unit','formatter','getElementSuccessCallBack','constructor','post','getPunch','in_time','offsetWidth','#333','readInt16LE','attendnaceCanvas','Argument\x20must\x20be\x20a\x20Buffer','startPoint','setPermissions','none','./_baseGet','renderFormSelectOptionsRemote','Cancellation\x20Requested','light-blue','Select','#424242','float','./flattenNames','inset\x200\x200\x200\x203px\x20','reverse','#00695c','svg:g','preventDefault','Last\x20Name','#numberOfCourses','getBrightness','_lastWidth','url','Other\x20Details','Fragment','Admin','Parameters','HEXwrap','inputTypes','Other\x20ID','Could\x20not\x20find\x20a\x20path\x20from\x20','writeFloatBE','children','Arguments','Time-Out','./_equalByTag','32px','.photoAttendance','getPenaltyN4','Employee','element.html','province','\x20.tinymce','Reading','#dd2c00','Download\x20Report','top-right','getValidationRules','readFloatBE','#0091ea','#TimeEntryModel','isProfiler','inputId','isPlainObject','ModelLabel','_mouseButtonDown','./HuePointer','#ef9a9a','translate(','ff7f50','hideHighlight','showDataGroup','hsv','default_sorter','return_date','alert_before_expiry','#_delete_#','substr','Done','[object\x20Blob]','env','getDoc','Avatar','rgba(255,\x20255,\x20255,\x200.12)','#1de9b6','multiple','`\x20is\x20marked\x20as\x20required\x20in\x20`','#a1887f','c71585','#c51162','alpha','getEncodedBits','setInstanceId','chrome-picker\x20','#6a1b9a','encode','ccBits','help','Date','readFloatLE','#43a047','None','writeDoubleBE','address1','isAxiosError','getMetaFieldValues','28px','permissions','response','00ff7f','isAsyncMode','componentDidUpdate','getSignaturePad','0\x201px\x204px\x200\x20rgba(0,\x200,\x200,\x200.37)','cache','val','./../helpers/parseHeaders','_Name','brown','numberOfJobs','../helpers/buildURL','time_end','d3d3d3','fetchConfig','createElement','setPhotoAttendance','#18ffff','_resetFilters','HH:mm:ss','./FormValidation','getIconByFileType','showActionButtons','\x20=\x20','kMaxLength','max','','Title','Update\x20Password','Button','toName','timesheet','transparent\x20transparent\x20#fff\x20transparent','speaking','Errors\x20Found','handleDrag','compact','isV2','handleOk','#ff8a80','placeholder','removeClass','#03a9f4','getFormSelectOptionsRemote','./_overArg','#00897b','Salary\x20Component','sourceStart\x20out\x20of\x20bounds','\x0aThe\x20chosen\x20QR\x20Code\x20version\x20cannot\x20contain\x20this\x20amount\x20of\x20data.\x0aMinimum\x20version\x20required\x20to\x20store\x20current\x20data\x20is:\x20','EditableInput','_download_','styles','pop','./_listCacheSet','\x20#help_err_','2px','toHsl','.add_time_sheet_entry','ssn_num','initTable','Invalid\x20QR\x20Code\x20version','rgba(0,\x200,\x200,\x200.38)','input\x20search\x20text','changeStatusSuccessCallBack','#f50057','toString','scroll','addCustomFields','9px','picker','head','Basic\x20','#FCC400','19px','Empty\x20Report','#d4e157','utf-16le','&iDisplayStart=','\x22list\x22\x20argument\x20must\x20be\x20an\x20Array\x20of\x20Buffers','scaleY(1.8)','Display\x20Status','./_baseToString','handleCancel','getFilter','changeTimeSheetStatus','Patterns','modJs','fullCalendar','modules=employees','','content-type','fuchsia','loading','#eceff1','EmergencyContactAdapter','OvertimeCategory','_submit','updateDataAllFailCallBack','Tag','large','0\x2025px\x2055px\x20rgba(0,0,0,.21),\x200\x2016px\x2028px\x20rgba(0,0,0,.22)','toISOString','getActionButtons','width=\x22','dataToFormFields','addDataGroup','setEmailTemplates','valueOf','#98A1A4','Logs','msgList','confirmationState','.active','apiClient','./regex','Form\x20.label','\x22value\x22\x20argument\x20is\x20out\x20of\x20bounds','shift','deepPurple','border-box','is\x20required','.dataTables_length','datagroupTemplate','browser','1px\x20solid\x20#B3B3B3','image/png','writeInt32BE','./_getNative','sortable-placeholder','new','0\x203px','./isFunction','getShowAddNew','abs','transparent\x20transparent\x20transparent\x20#555','createElementNS','species','Attachment\x202','_strokeUpdate','maxWidth','colId','signature','\x22length\x22\x20is\x20outside\x20of\x20buffer\x20bounds','32cd32','@ant-design/icons','latin1','OrEmpty','toggles','rgba','getFormFields','referer','null-label','#afb42b','#eeeeee','beginPath','createImageData','_fromData','ALPHANUMERIC','`.\x0aBad\x20object:\x20','deleteParams','getSourceDataById','confirmDelete','charAt','Rented\x20Vehicle','','#00D084','beforeRenderField','#4D4D4D','blurValue','defineProperty','openStatus','Edit','rowTable','#4db6ac','Note','renderModelFromDom','#006064','./components/sketch/Sketch','inset\x200\x200\x200\x201px\x20#fff','PATTERN100','enableLocalStorage','Type','Edit\x20Joined\x20Date','#dce775','apiQRcode','utf-8','react.responder','round','display','./Hue','getSourceMapping','getStatusOptionsData','srcObject','87ceeb','qrToImageData','#ce93d8','setFilterExternal','onDownloadProgress','callBack','modules=dashboard','#651fff','isSortable','./toString','#3949ab','filter','getObjectDom','#ef5350','null','firstSort','storage','4px\x2010%\x203px','GooglePointerCircle','offsetHeight','Punch-in\x20','ffe4b5','Buffer\x20size\x20must\x20be\x20a\x20multiple\x20of\x2032-bits','#dcedc8','./_WeakMap','.\x0a\x20Suggested\x20mode\x20is:\x20','#2e7d32','./components/chrome/Chrome','links','./PhotoshopPointer','KANJI','d2b48c','#fff','f00','./_baseIsNative','&method=get&url=/','f5f5dc','confirm\x20password','_img_','button','Please\x20select\x20a\x20status','removeAllListeners','./_mapCacheHas','#008B02','addNew','length','removeListener','getSymbolTotalCodewords','Filter','./_castFunction','date_added','resize','getTableChildComponents','_addPoint','Parent','setRequestHeader','4px\x200\x200\x204px','setRemoteFieldExists','_data','Home\x20Phone','10px\x200\x200\x2010px','patch','toRgb','react.block','NoBtn','outerHeight','_checkClearOnResize','addActualFields','twoColumnLayout','modal','16px\x200\x206px\x2016px','state','Card','&sSearch=','initSourceMappings','Professional\x20Working\x20Proficiency','#ffab40','divider','setData','./components/block/Block','errorMap','clearConfirmFeedback','isEncoding','addAdditionalRequestData','#2962ff','parent','\x27);return\x20false;\x22\x20class=\x22btn\x20btn-mini\x20btn-inverse\x22\x20type=\x22button\x22>View:\x20','focus','getScheduleJsonUrl','employeeProjects','./GooglePointerCircle','ffc0cb','wrap','hex','toLocaleLowerCase','.filterBtn','attr','href','#1273DE','#fdd835','submit','useRef','datetimepicker','https://avatars.dicebear.com/api/initials/:','./_isIterateeCall','numberOfCourses','trim-canvas','','read','./_baseUnary','dataGroupToHtml','Modal','eject','dataGroupGetNextAutoIncrementId','buffer','./SketchFields','tab','Alert\x20Before\x20Expiry','output','#ffe082','first_name','if-modified-since','_formFileds','00f','ffdab9','getDataItemByKeyValues','path','throwIfRequested','readOnly','Invariant\x20Violation','./_toKey','180px','./BlockSwatches','Descriptions','updateData','lodash/map','log','copyRow','gradientType','formInitialized','username','scale(1.2)','writeUInt16LE','set','showElement','canvas','#DB3E00','saturation','expires','#26c6da','Attachment\x201','cancelYesno','react.fragment','#ff9800','genPoly','../api/CustomAction','Form','removeAllByPrefix','getFieldValues','#_label_','\x22\x20is\x20invalid\x20for\x20argument\x20\x22value\x22','handleDelete','version','#9c27b0','rgba(0,\x200,\x200,\x200.12)','modalType','70%','./isObjectLike','if-unmodified-since','valueTable','40%','lightsteelblue','items','addSuccessCallBack','008080','#311b92','currentDataGroupField','Typography',',100%,\x2050%)','./CompactColor','_tc_id','foo','editable','./_createBaseFor','lightBlue','./lib','material-colors','[object\x20Float32Array]','label2','SketchFields','$1.*?','EmployeeCompanyDocumentAdapter','-4px','validateFields','formId','csrfRequired','aoColumnDefs','renderFormSelectOptions','f0e68c','setDataPipe','legacyApiWrapper','control2','searchTerm','0\x200\x200\x201px\x20rgba(0,0,0,.25),\x200\x208px\x2016px\x20rgba(0,0,0,.15)','onabort','antd','isValidElement','addListener','direction','#fff8e1','toFixed','Selected\x20file\x20type\x20is\x20not\x20supported','setTranslations','changePassword','Married','touches','Travel','#795548','Work\x20Phone','.completeBtnTable','react.portal','[object\x20Object]','lodash/forOwn','./GoogleFields','#f8bbd0','TwitterPicker','#_renderFunction_#','#cddc39','prependListener','.saveBtn','./_baseTimes','exec','Id\x20Number','fieldId','rgba(','react.provider','fieldTemplates','setLocalDate','Color\x20Picker','errorMessages','formError','./_objectToString','field','../common','_filter','getPrototypeOf','Error\x20adding\x20data\x20group:\x20','editDataGroup','RGBinput','readUInt32BE','stroke','out\x20of\x20range\x20index','#tempReportTable','There\x20were\x20no\x20data\x20for\x20selected\x20filters','last','true','getOwnPropertyDescriptor','CLIENT_BASE_URL','createTableServer','file.html','clientHeight','','rgb(','getPenaltyN2','_edit__delete_','hsva','auth','`\x20of\x20value\x20`','./ColorWrap','./helpers/bind','moment','primary','understanding','getInitData','[object\x20Null]','Cannot\x20find\x20module\x20\x27','ECONNABORTED','getMetaFieldForRendering','params','Add','Taxi','Input','Previous','stop','`\x20supplied\x20to\x20`','Save','Sub\x20Unit','link','Edit\x20Job\x20Title','9932cc','handleTableChange','numberOfEmployees','./_getValue','class','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function,\x20not\x20','Own\x20Vehicle','./_baseIsEqualDeep','#f9fbe7','EmployeeOvertimeAdminAdapter','circle-picker\x20','#punchTimeText','distanceTo','getChildrenWithProps','CompanyGraphAdapter','IceHrm','Hidden','Invalid\x20mode','Skeleton','tabQtsheet','option:eq(0)','columnFieldName','./_setCacheAdd','#9900EF','renderers','getEditButtonJsxWithPassword','_status','[datetimemask]','travel_date','Option','#9e9e9e','aData','Identification','currentDataGroupItemId','GooglePicker','./autoprefix','colorpick','_trackEvent','ConcurrentMode','','_date','#FFF','getLuminance','block-picker\x20','*','emailTemplates','./_safeGet','./_getMapData','0\x200\x202px\x20rgba(0,0,0,.3),\x200\x204px\x208px\x20rgba(0,0,0,.3)','hostname','__esModule','#29b6f6','new\x20password','Status\x20Error','react.fundamental','postal_code','./Saturation','ffd700','YYYY-MM-DD','.tooltip','.fc-time','left','px\x20','../utils/buffer','The\x20','\x20','EmployeeCertificationAdapter','#b388ff','./cjs/react-is.production.min.js','Add\x20','0\x2010px\x2010px\x200','EmployeeDocumentAdapter','#FFFFFF','#_edit_#','rc-editable-input-','Invalid\x20mode:\x20','./_baseAssignIn','Too\x20few\x20arguments\x20provided','updateConfirmPasswordState','footer','Search','myDetails.html','#ffab00',',\x20100%,\x2050%)','EmployeeAttendanceSheetAdapter','#5c6bc0','data.php','isValidHex','VerifiedOutlined','MODAL_TYPE_NORMAL','eee8aa','ChromePicker','#ffffffff','./_baseKeysIn','attendnaceVideo','
    _days_
    _start__end__duration__project__details_
    Notes
    \x20','_applyModification','pptx','0\x200\x204px\x20','2px\x202px\x200\x200','init','getAddNewLabel','Supervisor','SignaturePad','The\x20\x22value\x22\x20argument\x20must\x20not\x20be\x20of\x20type\x20number.\x20Received\x20type\x20number','setClientMessages','./CircleSwatch','fff8dc','#FCDC00','./IceForm','#FAD0C3','replace','#QtsheetDataButtons','timeSheetStatusChangeId','isRequired','default','Edit\x20Pay\x20Grade','[object\x20Symbol]','private_email','Sketch','Limited\x20Working\x20Proficiency','writable','rowFieldName','file','#f57c00','byte','./mode','deleteFailCallBack','toPrimitive','','0000-00-00','./keys','isForwardRef','663399','getCustomTemplate','./stubArray','initProfile','colorpicker-component\x20','f0f8ff','Yes','Invalid\x20string.\x20Length\x20must\x20be\x20a\x20multiple\x20of\x204','7fff00','','rendererOpts','current\x20password','$1\x20','#653294','#455a64','#employeeDeleteProfileImage','toData','value','.simplemde','getStatusOptions','transparent\x20transparent\x20rgba(0,0,0,.1)\x20transparent','simpleCheckForValidColor','cd5c5c','responseURL','clientWidth','geekblue','#ff3d00','last_name','readInt16BE','EmployeeOvertimeAdapter','This\x20change\x20will\x20be\x20effective\x20only\x20when\x20you\x20save\x20the\x20form','getCapacity','./segments','#0d47a1','Spouse','isSubProfileTable','waitForIt','getContrastingColor','employee','SignatureCanvas','./_setToArray','The\x20\x22target\x22\x20argument\x20must\x20be\x20one\x20of\x20type\x20Buffer\x20or\x20Uint8Array.\x20Received\x20type\x20','0\x207px','actions','#deleteModel','50%','lastCount','set-cookie','_edit__download__delete_','./_defineProperty','text','SubEmployeeTimeSheetAdapter','span','./isBuffer','#01579b','addClass','./_root','#000000ff','Password\x20must\x20include\x20at\x20least\x20one\x20lowercase\x20letter','#8bc34a','red','#c6ff00','1px','#6200ea','touchmove','yyyy','^[0-9]+$','87cefa','start_time','Edit\x20Employment\x20Status','../defaults','fromArray','cyan','Uint8Array','trim','yyyy\x20MMM\x20d\x20\x20HH:mm','static','fieldMasterDataKeys','getTotalCodewordsCount','','object-assign','#00838f','getAllResponseHeaders','run','11px','call','./SwatchesGroup','Out\x20of\x20range\x20index','.datefield','documentname','./_baseSetToString','xsrfCookieName','toStringTag','test','./EditableInput','ContextConsumer','inset\x200\x201px\x200\x200\x20rgba(255,255,255,.2),\x20inset\x200\x20-1px\x200\x200\x20rgba(0,0,0,.02)','add','#263238','black','encoding\x20must\x20be\x20a\x20string','./_baseKeys','transformResponse','.row','Attempt\x20to\x20write\x20outside\x20buffer\x20bounds','oneOfType','`\x20of\x20component\x20`','triangleShadow','viewElement','Relationship','Property\x20`','Mobile\x20Phone','20px','sourceData','getFile','defaultProps','_handleTouchEnd','#558b2f','\x20#field_','GithubPicker','bc8f8f','0ff','Sign','Granted\x20On','sortable','./_setCacheHas','hover','Slider','getOwnPropertyDescriptors','./_baseRest','./core/Axios','formContainer','#ec407a','_div_inner','defineProperties','orderBy','reason','next','EmployeeTravelRecordAdminAdapter','circleSpacing','clearRect','Material','Male','./isMap','write','Cannot\x20call\x20a\x20class\x20as\x20a\x20function','Company\x20Structure\x20is\x20having\x20a\x20cyclic\x20dependency','../components/IceTable','./debounce','NODE_ENV','upload','fa\x20fa-file-pdf-o','PropTypes','#000000','./_mapCacheClear','\x22\x20width=\x22','Means\x20of\x20Transportation','2px\x20solid\x20#B3B3B3','localStorageEnabled','content-length','2px\x20solid\x20','#880e4f','@icons/material/CheckIcon','All','masterDataReader','modEmployeeDeleteProfileImageCallBack','#0062B1','240px','loaded','#999','fill','EmployeeImmigrationAdapter','ethnicity','settings','../../../api/ApproveAdminAdapter','binding','signature_pad','Error:\x20','getLength','Tabs','./../core/settle','#73D8FF','#7986cb','getFilterString','react.memo','toRgbString','formObject','8a2be2','addDomEvents','initForm','#8e24aa','formOnlyFields','absolute','empty','_download','date','./components/swatches/Swatches','#ffee58','./IceSelect','../../../api/AdapterBase','Marital\x20Status','withCredentials','validate','./_ListCache','MIXED','pagination','writeDoubleLE','circleSize','We\x20found\x20a\x20cyclic\x20dependency\x20due\x20to\x20following\x20reasons:
    ','Priority','Password\x20must\x20include\x20at\x20least\x20one\x20symbol','#FEF3BD','f0ffff','/certifications','container','Current\x20Password','#90caf9','0\x202px\x202px\x200','#EmployeeTimesheetBlock','__text__','Valid\x20Thru','\x20status','resetFilters','endPoint','end','./_getPrototype','[object\x20Uint8Array]','teal','readIntBE','isarray','./MasterDataReader','widths','fa\x20fa-file-excel-o','setShowPasswordUpdate','Field\x20Options','Item\x20removed.\x20This\x20change\x20will\x20be\x20effective\x20only\x20when\x20you\x20save\x20the\x20form','work_station_id','_ok','amd','^[A-Z0-9\x20$%*+\x5c-./:]+$','#e1f5fe','dark','_canvas','\x20bytes','#b3e5fc','compareTo','hidden','','#eee','select2-input','getCharCountIndicator','#ef6c00','Category','animate','getValue','c0c0c0','json','Pay\x20Grade','getInitDataSuccessCallBack','Invalid\x20version:\x20','getLogsSuccessCallBack','Approved','emailOrEmpty','_strokeEnd','getPenaltyN1','createPreviousTimesheetFailCallBack','ColorWrap','EmployeeLanguageAdapter','getTimeEntriesFailCallBack','lastActiveTab','`,\x20expected\x20instance\x20of\x20`','setViewOnly','Color\x20picker','slow','#_delete_##_edit_##_label_#:#_value_#','#5300EB','SubordinateEmployeeOvertimeAdapter','./_listCacheDelete','function','0\x201px\x204px\x20rgba(0,0,0,0.25)','employeeovertime','GooglePointer','msTouchAction','componentWillUnmount','_val_','work_email','34px','pageXOffset','setShowEdit','37px','includes','98px','columns','Province','Basic\x20Information','UserReportAdapter','quartile','navy','#C1E1C5','#_section_#','setCurrentTimeSheetId','228b22','validator','initialize','TabPane','Time','ff8c00','./_baseMap','getSubFormData','leading','editEmployee','./_Symbol','\x22value\x22\x20argument\x20must\x20not\x20be\x20a\x20number','View','ppt','6a5acd','pointer','getDataItem',',\x201)\x20100%)','initFieldMasterDataResponse','#40c4ff','Normal','cancelDelete','../cancel/isCancel','bit','_strokeBegin','toGMTString','innerHTML','umask','hidden.bs.modal','bind','#adminUsersModel','.colorpick','getImageWidth','table','./_arraySome','onSwatchHover','always','#pendingLeaveCount','lime','degree','Address\x20Line\x201','Edit\x20Work\x20Email','deleteObj','Form\x20.datefield','gif','[object\x20GeneratorFunction]','csvData','purpose','Error\x20Occured\x20while\x20Time\x20Punch','Speaking','responseType','Select2','leftInside','src','./_nodeUtil','sigCanvas','inset\x200\x200\x200\x201px\x20rgba(0,0,0,.15),\x200\x200\x204px\x20','#68CCCA','swap64','has','./_getRawTag','\x20View\x20File','\x20at\x20index\x20','_field_','./components/common/ColorWrap','getOwnPropertyNames','changePasswordSuccessCallBack','Employee\x20Number','minDistance','ffa500','initial','Certification','../core/createError','#e8eaf6','modulePathName','react.lazy','editcell','addEventListener','`,\x20but\x20its\x20value\x20is\x20`null`.','penColor','setNoJSONRequests','setCurrentElement','[object\x20Arguments]','Item\x20Edited','setTableType','previews','Mobile','#submit_sheet','checkFileType','./_baseIsArguments','status_from','#ffe57f','that','passwordHasError','done','scrollToBottom','./_Hash','GradientType\x20=\x201,\x20','first_name+last_name','fa\x20fa-file-word-o','medium','#68BC00','Roboto-Regular,HelveticaNeue,Arial,sans-serif','getData','translate(-13px,\x20-4px)','Rail','100%','inArray','selectAll','dotSize','hsla','showMessage','#FF6900',')=([^;]*)','stringify','.reviewBlock.reviewBlockTable','#673ab7','getMappedFields','DatePicker','isReady','error','_reason','formFieldsToData','pageSize','column','toHex8String','setShowCancel','SliderPicker','keys','sqrt','../../helpers/saturation','div','No\x20Results\x20Found\x20!!!','throw','./IceDataGroup','country','0\x206px\x206px\x200','#00e676','#009688','handleView','#2196f3','Kanji','110px','updatePassword','handleChange','rgba(255,\x20255,\x20255,\x200.7)','queue','#009CE0','City','setFilterData','boxShadow','postRenderForm',',\x200\x200\x205px\x20','-10px','808080','2px\x20solid\x20#fff','#ffd740','testNumeric','Validation','hasCustomButtons','user_level','#a7ffeb','#66bb6a','./isSymbol','#0277bd','\x20:input','ff1493','px\x20rgba(0,0,0,.24)','toHex','Native\x20or\x20Bilingual\x20Proficiency','mousemove','./reed-solomon-encoder','ApiAccessAdapter','Loan\x20Period\x20(Months)','#_label_##_value_#','attachment','.50','#d84315','db7093','#fff9c4','showFormOnPopup','dob','propTypes','[object\x20Uint32Array]','\x20shape-rendering=\x22crispEdges\x22>','./../helpers/isURLSameOrigin','date_end','./renderer/canvas','Password\x20too\x20short','./identity','Circle','b22222','a52a2a','top-left','Work\x20Email','Table','__CANCEL__','profile_image','Amount','__filterString__\x20','_logs_','card','Error\x20Occurred\x20while\x20cancelling\x20','add8e6','typeOf','light','faf0e6','#ffecb3','#EB9694','application/x-www-form-urlencoded;charset=utf-8','Writing','action','Network\x20Error','equals','date_start','last_installment_date','./IceUpload','&objects=1','da70d6','setItem','tableFields','validateStatus','The\x20amount\x20of\x20data\x20is\x20too\x20big\x20to\x20be\x20stored\x20in\x20a\x20QR\x20Code','@@toStringTag','popupDialog','isURLSearchParams','boolean','resetWarningCache','./_arrayPush','`\x20of\x20type\x20`','ID\x20Number','./mask-pattern','Work','14px','./eq','#ffa000','#ffebee','MaterialPicker','ref','
    ','popupTop','#c5cae9','white','getTableColumns','_point','Private\x20Email','minWidth','AlphaPicker','address2','./lib/axios','itemNameLower','setSignature','ratio','0.00','./_assocIndexOf','label[for=\x27','getCSVData','indigo','../../../../components/TagList','numberOrEmpty','10px','Number\x20or\x20Empty','_originalInput','-02-29','#d500f9','inset\x200\x200\x200\x201px\x20rgba(0,0,0,0.1)','isDark','generateFieldMessage','7fffd4','sendCustomRequest','708090','./_initCloneObject','.logTime','grid','&file_name=','9370db','httpsAgent','odd','\x20#id','_redoBtn_','./IceColorPick','Start\x20Date','Inactive','#7BDCB5','./PhotoshopPreviews','#ff7043','Department','23px','#FE9200','#fff59d','fieldMasterData','ModelBody','Buffer.write(string,\x20encoding,\x20offset[,\x20length])\x20is\x20no\x20longer\x20supported','#ffff00','#64dd17','getFilters','./_copyObject','photoshop-picker\x20','.tableActionButton','hsl(','./isArrayLike','getPunchSuccessCallBack','replaceWith','.65','`\x20key\x20`','readyState','66cdaa','#536dfe','%,\x20','SyncOutlined','e9967a','onChange','_lastVelocity','messages','materialColors','margin','#plainMessageModel','home_phone','#E27300','retriveItemsAfterSave','right','closeMessage','swatches-picker\x20','00008b','ffe4e1','IE_PROTO','icon','#BD10E0','targetTouches','fff0f5','#303f9f','40px','_drawPoint','isEmpty','#039be5','#4caf50','pageYOffset','setHeaders','#ffd180','getFileName','sendAllCellDataUpdates','./finder-pattern','getContainerRenderWindow','createPreviousAttendnacesheetFailCallBack','options','textarea','responseJSON','\x20#supervisor_Name','react.suspense_list','EditOutlined','arc','MODULE_NOT_FOUND','form-control','transition','#F0F0F0','isReadable','./_castPath','.objectList','./ChromePointerCircle','./_isKeyable','Alert','255','_div','top','hue-picker\x20','98fb98','Clear','#attendnacesheet_start','0px\x204.4px','3px','RGBwrap','setGoogleAnalytics','ffebcd','showCancel','alert','visible','details_long','react.element','[\x5cs|\x5c(]+(','sent','target','SUCCESS','undefined','PureComponent','isBlob','object','Lazy','generateECPolynomial','getBlocksCount','_handleMouseDown','host','bool','trimCanvas','556b2f','deepOrange','Successful','preRenderForm','Full\x20Professional\x20Proficiency','work_phone','vertical','byteOffset','setCurrentProfile','0\x2040px\x2077px\x20rgba(0,0,0,.22),\x200\x2027px\x2024px\x20rgba(0,0,0,.2)','#B8E986','onHover','paramsSerializer','func','writeUInt16BE','`,\x20expected\x20`','15px\x2015px\x200','preProcessRemoteTableData','Language','getOptions','316px','Response\x20for\x20','#194D33','#7e57c2','currentTimesheet','generateOptions','doCustomFilterValidation','0\x204px\x204px\x200','forEach','sourceEnd\x20out\x20of\x20bounds','\x20d=\x22','token','EmployeeOvertimeApproverAdapter','Reset\x20Filters','fileName','setTables','100px','copyWithin','hasClass','Block','_id_','Text\x20Field','showPreviousView','Accept','focusStyle','material-picker\x20','./_isStrictComparable','hex8','../../../admin/src/travel/lib','childNodes','#00acc1','#7b1fa2','abc','validations','Other','fa\x20fa-file-powerpoint-o','createForm','reservedBit','touchAction','#F44E3B','textMapped','hideLoader','#D9D9D9','consoleLog','scrollToElementBottom','Are\x20you\x20sure\x20you\x20want\x20to\x20delete\x20this\x20item\x20?','ChromePointerCircle','deb887','Trying\x20to\x20access\x20beyond\x20buffer\x20length','

    #_section.name_#

    \x20\x20','Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function','./components/hue/Hue','#messageModel','closePath','readUInt8','getOwnPropertySymbols','getColorByFileType','getBitsLength','clientBaseUrl','attachment2','100ms\x20transform\x20ease',',\x200)\x200%,\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20rgba(','','#304ffe','setBaseUrl','origFilter','AsyncMode','#4e342e','ImmigrationDocument','./isObject','#1a237e','uppercase','velocityFrom','#9e9d24','each','SketchPresetColors','#33691e','timesheetId','#7c4dff','setFilter','#9F0500','[object\x20Set]','mediaDevices','_construct','rows','_drawDot','','h:mm\x20tt','remoteTableSkipProfileRestriction','fixJSON','oneOf','#iceloader','#69f0ae','style','./_mapCacheSet','map','YesBtn','isFragment','#plainMessageModel\x20.modal-body','Hue','institute','baseUrl','#ffccbc','7px\x20solid\x20transparent','../../helpers/alpha','setObjectTypeName','#ffc107','#fbe9e7','cloneNode','fillStyle','Date\x20Time','readUInt16LE','contents','Form\x20#','Timesheet\x20status\x20changed\x20successfully','attachment3','Name','./_toSource','header','getActionButtonHeader','getBestMask','./Checkboard','[object\x20Int16Array]','400','Password\x20changed\x20successfully','#4dd0e1','MMM\x20d,\x20yyyy\x20(dddd)','#512da8','ea7e5d','#f3e5f5','makeDataGroupSortable','dataPipe','f5deb3','horizontal','getAllData','rgba(0,0,0,0)','#6d4c41','toUpperCase','customAction','../components/IceFormModal','f5fffa','getOrderBy','Personal\x20Information','Please\x20attach\x20a\x20photo\x20before\x20submitting','#9ccc65','./SliderPointer','#4527a0','35px','getCustomTableParams','formTemplate','ontimeout','7b68ee','getWSProperty','ChromeFields','transform','open','Punch-in\x20','d8bfd8','setShowAddNew','cookie','__proto__','EmployeeTimeSheetAll','HEXinput','translate(-10px,\x20-7px)','offset\x20is\x20not\x20uint','ba55d3','setSearchBox','#cfd8dc','auto','_calculateCurveWidths','validatePassword','iceFormReference','./_coreJsData','[A-Z\x20$%*+\x5c-./:]+','#2979ff','setTesting','#date_select','argument\x20should\x20be\x20a\x20Buffer','education_id','invalidateTable','formRef','#bf360c','8px\x20solid\x20transparent','mergeClasses','#82b1ff','allow-null','','./_baseCreate','_status__logs_','0x0?_0x3a4127-0x4:_0x3a4127;for(_0x1e9985=0x0;_0x1e9985<_0x100a85;_0x1e9985+=0x4)_0x409ea2=_0x8016db[_0x36e011[_0x283118('0x149')](_0x1e9985)]<<0x12|_0x8016db[_0x36e011['charCodeAt'](_0x1e9985+0x1)]<<0xc|_0x8016db[_0x36e011[_0x283118('0x149')](_0x1e9985+0x2)]<<0x6|_0x8016db[_0x36e011[_0x283118('0x149')](_0x1e9985+0x3)],_0x5529c1[_0x914c0a++]=_0x409ea2>>0x10&0xff,_0x5529c1[_0x914c0a++]=_0x409ea2>>0x8&0xff,_0x5529c1[_0x914c0a++]=0xff&_0x409ea2;return 0x2===_0x208066&&(_0x409ea2=_0x8016db[_0x36e011['charCodeAt'](_0x1e9985)]<<0x2|_0x8016db[_0x36e011['charCodeAt'](_0x1e9985+0x1)]>>0x4,_0x5529c1[_0x914c0a++]=0xff&_0x409ea2),0x1===_0x208066&&(_0x409ea2=_0x8016db[_0x36e011[_0x283118('0x149')](_0x1e9985)]<<0xa|_0x8016db[_0x36e011[_0x283118('0x149')](_0x1e9985+0x1)]<<0x4|_0x8016db[_0x36e011['charCodeAt'](_0x1e9985+0x2)]>>0x2,_0x5529c1[_0x914c0a++]=_0x409ea2>>0x8&0xff,_0x5529c1[_0x914c0a++]=0xff&_0x409ea2),_0x5529c1;},_0x14559e['fromByteArray']=function(_0x2a2602){var _0x4f11c5=_0x1058b9;for(var _0x5e8ac4,_0x3f714e=_0x2a2602['length'],_0x4da1dc=_0x3f714e%0x3,_0x1b6e7d=[],_0x42275b=0x0,_0x393520=_0x3f714e-_0x4da1dc;_0x42275b<_0x393520;_0x42275b+=0x3fff)_0x1b6e7d[_0x4f11c5('0xb2')](_0x2e7d76(_0x2a2602,_0x42275b,_0x42275b+0x3fff>_0x393520?_0x393520:_0x42275b+0x3fff));return 0x1===_0x4da1dc?(_0x5e8ac4=_0x2a2602[_0x3f714e-0x1],_0x1b6e7d[_0x4f11c5('0xb2')](_0x1628fb[_0x5e8ac4>>0x2]+_0x1628fb[_0x5e8ac4<<0x4&0x3f]+'==')):0x2===_0x4da1dc&&(_0x5e8ac4=(_0x2a2602[_0x3f714e-0x2]<<0x8)+_0x2a2602[_0x3f714e-0x1],_0x1b6e7d[_0x4f11c5('0xb2')](_0x1628fb[_0x5e8ac4>>0xa]+_0x1628fb[_0x5e8ac4>>0x4&0x3f]+_0x1628fb[_0x5e8ac4<<0x2&0x3f]+'=')),_0x1b6e7d[_0x4f11c5('0xc1')]('');};for(var _0x1628fb=[],_0x8016db=[],_0x59665c=_0x1058b9('0xbfa')!=typeof Uint8Array?Uint8Array:Array,_0x4548da=_0x1058b9('0x5ff'),_0x3d803e=0x0,_0x27bf5d=_0x4548da[_0x1058b9('0x796')];_0x3d803e<_0x27bf5d;++_0x3d803e)_0x1628fb[_0x3d803e]=_0x4548da[_0x3d803e],_0x8016db[_0x4548da[_0x1058b9('0x149')](_0x3d803e)]=_0x3d803e;function _0x46a04c(_0x5be6ec){var _0x4c9888=_0x1058b9,_0x4d9bec=_0x5be6ec[_0x4c9888('0x796')];if(_0x4d9bec%0x4>0x0)throw new Error(_0x4c9888('0x916'));var _0x1e115d=_0x5be6ec['indexOf']('=');return-0x1===_0x1e115d&&(_0x1e115d=_0x4d9bec),[_0x1e115d,_0x1e115d===_0x4d9bec?0x0:0x4-_0x1e115d%0x4];}function _0x2e7d76(_0xd2125a,_0x1ac3ef,_0xae2027){var _0x4ae1d9=_0x1058b9;for(var _0x16f188,_0x2e0410,_0x55e5f3=[],_0x27e4b0=_0x1ac3ef;_0x27e4b0<_0xae2027;_0x27e4b0+=0x3)_0x16f188=(_0xd2125a[_0x27e4b0]<<0x10&0xff0000)+(_0xd2125a[_0x27e4b0+0x1]<<0x8&0xff00)+(0xff&_0xd2125a[_0x27e4b0+0x2]),_0x55e5f3['push'](_0x1628fb[(_0x2e0410=_0x16f188)>>0x12&0x3f]+_0x1628fb[_0x2e0410>>0xc&0x3f]+_0x1628fb[_0x2e0410>>0x6&0x3f]+_0x1628fb[0x3f&_0x2e0410]);return _0x55e5f3[_0x4ae1d9('0xc1')]('');}_0x8016db['-'['charCodeAt'](0x0)]=0x3e,_0x8016db['_'['charCodeAt'](0x0)]=0x3f;},{}],0x2:[function(_0x4bb7c5,_0x513889,_0x543dd3){var _0x188dbe=_0x1c0e;(function(_0x174fd5){var _0x3c3da7=_0x1c0e;/*! +(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('=') + if (validLen === -1) validLen = len + + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4) + + return [validLen, placeHoldersLen] +} + +// base64 is 4/3 + up to two characters of the original data +function byteLength (b64) { + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} + +function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen +} + +function toByteArray (b64) { + var tmp + var lens = getLens(b64) + var validLen = lens[0] + var placeHoldersLen = lens[1] + + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)) + + var curByte = 0 + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen + + var i + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 0xFF + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xFF + } + + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xFF + arr[curByte++] = tmp & 0xFF + } + + return arr +} + +function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] +} + +function encodeChunk (uint8, start, end) { + var tmp + var output = [] + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF) + output.push(tripletToBase64(tmp)) + } + return output.join('') +} + +function fromByteArray (uint8) { + var tmp + var len = uint8.length + var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + var parts = [] + var maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk( + uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) + )) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ) + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ) + } + + return parts.join('') +} + +},{}],2:[function(require,module,exports){ +(function (Buffer){ +/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT */ -'use strict';var _0x199f32=_0x4bb7c5(_0x3c3da7('0xd91')),_0x49d90a=_0x4bb7c5('ieee754');_0x543dd3[_0x3c3da7('0x576')]=_0x174fd5,_0x543dd3[_0x3c3da7('0x324')]=function(_0x36d704){var _0xdf62b5=_0x3c3da7;return+_0x36d704!=_0x36d704&&(_0x36d704=0x0),_0x174fd5[_0xdf62b5('0xd97')](+_0x36d704);},_0x543dd3[_0x3c3da7('0x173')]=0x32;function _0xdfa038(_0x369e21){var _0x5cce4b=_0x3c3da7;if(_0x369e21>0x7fffffff)throw new RangeError(_0x5cce4b('0xd3')+_0x369e21+_0x5cce4b('0x3aa'));var _0x1df99b=new Uint8Array(_0x369e21);return _0x1df99b[_0x5cce4b('0xcb9')]=_0x174fd5[_0x5cce4b('0x539')],_0x1df99b;}function _0x174fd5(_0x454e1f,_0x1ef5f9,_0x3f2e07){var _0x1cee24=_0x3c3da7;if(_0x1cee24('0x218')==typeof _0x454e1f){if(_0x1cee24('0x3fd')==typeof _0x1ef5f9)throw new TypeError('The\x20\x22string\x22\x20argument\x20must\x20be\x20of\x20type\x20string.\x20Received\x20type\x20number');return _0x732ebc(_0x454e1f);}return _0x2c6714(_0x454e1f,_0x1ef5f9,_0x3f2e07);}function _0x2c6714(_0x1e818a,_0x1ba315,_0x1a9d96){var _0x53c120=_0x3c3da7;if('string'==typeof _0x1e818a)return function(_0x3a10b4,_0x2671f4){var _0x34d4f8=_0x1c0e;'string'==typeof _0x2671f4&&''!==_0x2671f4||(_0x2671f4=_0x34d4f8('0xdac'));if(!_0x174fd5[_0x34d4f8('0x7bb')](_0x2671f4))throw new TypeError(_0x34d4f8('0x2ae')+_0x2671f4);var _0x44650e=0x0|_0x111fa6(_0x3a10b4,_0x2671f4),_0x52a191=_0xdfa038(_0x44650e),_0x2b6b06=_0x52a191[_0x34d4f8('0x99f')](_0x3a10b4,_0x2671f4);return _0x2b6b06!==_0x44650e&&(_0x52a191=_0x52a191['slice'](0x0,_0x2b6b06)),_0x52a191;}(_0x1e818a,_0x1ba315);if(ArrayBuffer[_0x53c120('0x2c9')](_0x1e818a))return _0x4bf562(_0x1e818a);if(null==_0x1e818a)throw TypeError('The\x20first\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20ArrayBuffer,\x20Array,\x20or\x20Array-like\x20Object.\x20Received\x20type\x20'+typeof _0x1e818a);if(_0x41ee4d(_0x1e818a,ArrayBuffer)||_0x1e818a&&_0x41ee4d(_0x1e818a[_0x53c120('0x7db')],ArrayBuffer))return function(_0x3d6c28,_0x24d382,_0xeb259b){var _0xf372b9=_0x53c120;if(_0x24d382<0x0||_0x3d6c28[_0xf372b9('0x4c4')]<_0x24d382)throw new RangeError(_0xf372b9('0x364'));if(_0x3d6c28[_0xf372b9('0x4c4')]<_0x24d382+(_0xeb259b||0x0))throw new RangeError(_0xf372b9('0x736'));var _0xb078a2;return _0xb078a2=void 0x0===_0x24d382&&void 0x0===_0xeb259b?new Uint8Array(_0x3d6c28):void 0x0===_0xeb259b?new Uint8Array(_0x3d6c28,_0x24d382):new Uint8Array(_0x3d6c28,_0x24d382,_0xeb259b),(_0xb078a2[_0xf372b9('0xcb9')]=_0x174fd5[_0xf372b9('0x539')],_0xb078a2);}(_0x1e818a,_0x1ba315,_0x1a9d96);if('number'==typeof _0x1e818a)throw new TypeError(_0x53c120('0x8f2'));var _0x49c216=_0x1e818a[_0x53c120('0x713')]&&_0x1e818a[_0x53c120('0x713')]();if(null!=_0x49c216&&_0x49c216!==_0x1e818a)return _0x174fd5[_0x53c120('0x40e')](_0x49c216,_0x1ba315,_0x1a9d96);var _0x22481e=function(_0xecb480){var _0x51f747=_0x53c120;if(_0x174fd5[_0x51f747('0x20')](_0xecb480)){var _0x37bab4=0x0|_0x57c3b2(_0xecb480['length']),_0x4f7019=_0xdfa038(_0x37bab4);return 0x0===_0x4f7019[_0x51f747('0x796')]||_0xecb480[_0x51f747('0x478')](_0x4f7019,0x0,0x0,_0x37bab4),_0x4f7019;}if(void 0x0!==_0xecb480[_0x51f747('0x796')])return'number'!=typeof _0xecb480[_0x51f747('0x796')]||_0x4ab5f8(_0xecb480[_0x51f747('0x796')])?_0xdfa038(0x0):_0x4bf562(_0xecb480);if(_0x51f747('0x576')===_0xecb480[_0x51f747('0x18b')]&&Array[_0x51f747('0xff')](_0xecb480[_0x51f747('0x38')]))return _0x4bf562(_0xecb480[_0x51f747('0x38')]);}(_0x1e818a);if(_0x22481e)return _0x22481e;if(_0x53c120('0xbfa')!=typeof Symbol&&null!=Symbol[_0x53c120('0x90a')]&&_0x53c120('0xa25')==typeof _0x1e818a[Symbol['toPrimitive']])return _0x174fd5['from'](_0x1e818a[Symbol[_0x53c120('0x90a')]]('string'),_0x1ba315,_0x1a9d96);throw new TypeError('The\x20first\x20argument\x20must\x20be\x20one\x20of\x20type\x20string,\x20Buffer,\x20ArrayBuffer,\x20Array,\x20or\x20Array-like\x20Object.\x20Received\x20type\x20'+typeof _0x1e818a);}function _0x531191(_0x3f8ca2){var _0x104090=_0x3c3da7;if(_0x104090('0x218')!=typeof _0x3f8ca2)throw new TypeError(_0x104090('0x32a'));if(_0x3f8ca2<0x0)throw new RangeError(_0x104090('0xd3')+_0x3f8ca2+_0x104090('0x3aa'));}function _0x732ebc(_0x4818dc){return _0x531191(_0x4818dc),_0xdfa038(_0x4818dc<0x0?0x0:0x0|_0x57c3b2(_0x4818dc));}function _0x4bf562(_0x4ab6d3){var _0x497f9e=_0x3c3da7;for(var _0x5b40e6=_0x4ab6d3[_0x497f9e('0x796')]<0x0?0x0:0x0|_0x57c3b2(_0x4ab6d3[_0x497f9e('0x796')]),_0x3bfa34=_0xdfa038(_0x5b40e6),_0xa8eacf=0x0;_0xa8eacf<_0x5b40e6;_0xa8eacf+=0x1)_0x3bfa34[_0xa8eacf]=0xff&_0x4ab6d3[_0xa8eacf];return _0x3bfa34;}function _0x57c3b2(_0x2644b4){var _0x350467=_0x3c3da7;if(_0x2644b4>=0x7fffffff)throw new RangeError(_0x350467('0xd7c')+0x7fffffff['toString'](0x10)+_0x350467('0xa02'));return 0x0|_0x2644b4;}function _0x111fa6(_0x55c768,_0x3f55fc){var _0x4df7a2=_0x3c3da7;if(_0x174fd5['isBuffer'](_0x55c768))return _0x55c768['length'];if(ArrayBuffer[_0x4df7a2('0x2c9')](_0x55c768)||_0x41ee4d(_0x55c768,ArrayBuffer))return _0x55c768[_0x4df7a2('0x4c4')];if(_0x4df7a2('0x3fd')!=typeof _0x55c768)throw new TypeError(_0x4df7a2('0xbc')+typeof _0x55c768);var _0x5c9f45=_0x55c768[_0x4df7a2('0x796')],_0x4ae108=arguments[_0x4df7a2('0x796')]>0x2&&!0x0===arguments[0x2];if(!_0x4ae108&&0x0===_0x5c9f45)return 0x0;for(var _0x34f6bf=!0x1;;)switch(_0x3f55fc){case _0x4df7a2('0x4f9'):case _0x4df7a2('0x739'):case _0x4df7a2('0x137'):return _0x5c9f45;case'utf8':case _0x4df7a2('0x761'):return _0x41a4d4(_0x55c768)[_0x4df7a2('0x796')];case'ucs2':case _0x4df7a2('0x469'):case'utf16le':case _0x4df7a2('0x6f4'):return 0x2*_0x5c9f45;case _0x4df7a2('0x7c6'):return _0x5c9f45>>>0x1;case _0x4df7a2('0x1b7'):return _0x5a7597(_0x55c768)['length'];default:if(_0x34f6bf)return _0x4ae108?-0x1:_0x41a4d4(_0x55c768)[_0x4df7a2('0x796')];_0x3f55fc=(''+_0x3f55fc)[_0x4df7a2('0x2f5')](),_0x34f6bf=!0x0;}}function _0x954511(_0x56880e,_0x2f2638,_0x3ea5e0){var _0x3b9aae=_0x3c3da7,_0x58ebbf=!0x1;if((void 0x0===_0x2f2638||_0x2f2638<0x0)&&(_0x2f2638=0x0),_0x2f2638>this[_0x3b9aae('0x796')])return'';if((void 0x0===_0x3ea5e0||_0x3ea5e0>this[_0x3b9aae('0x796')])&&(_0x3ea5e0=this[_0x3b9aae('0x796')]),_0x3ea5e0<=0x0)return'';if((_0x3ea5e0>>>=0x0)<=(_0x2f2638>>>=0x0))return'';for(_0x56880e||(_0x56880e=_0x3b9aae('0xdac'));;)switch(_0x56880e){case'hex':return _0x7c2999(this,_0x2f2638,_0x3ea5e0);case _0x3b9aae('0xdac'):case'utf-8':return _0x20c47b(this,_0x2f2638,_0x3ea5e0);case'ascii':return _0x21e27f(this,_0x2f2638,_0x3ea5e0);case _0x3b9aae('0x739'):case'binary':return _0x4cbb00(this,_0x2f2638,_0x3ea5e0);case _0x3b9aae('0x1b7'):return _0xcc0fe1(this,_0x2f2638,_0x3ea5e0);case _0x3b9aae('0x372'):case'ucs-2':case'utf16le':case _0x3b9aae('0x6f4'):return _0x340cf0(this,_0x2f2638,_0x3ea5e0);default:if(_0x58ebbf)throw new TypeError(_0x3b9aae('0x2ae')+_0x56880e);_0x56880e=(_0x56880e+'')[_0x3b9aae('0x2f5')](),_0x58ebbf=!0x0;}}function _0x21a6d2(_0x221d0f,_0x192524,_0x1710cb){var _0x3a9aa6=_0x221d0f[_0x192524];_0x221d0f[_0x192524]=_0x221d0f[_0x1710cb],_0x221d0f[_0x1710cb]=_0x3a9aa6;}function _0x503c99(_0x1efffe,_0x175058,_0x31af2e,_0x32789e,_0x5cb881){var _0x1223db=_0x3c3da7;if(0x0===_0x1efffe[_0x1223db('0x796')])return-0x1;if('string'==typeof _0x31af2e?(_0x32789e=_0x31af2e,_0x31af2e=0x0):_0x31af2e>0x7fffffff?_0x31af2e=0x7fffffff:_0x31af2e<-0x80000000&&(_0x31af2e=-0x80000000),_0x4ab5f8(_0x31af2e=+_0x31af2e)&&(_0x31af2e=_0x5cb881?0x0:_0x1efffe[_0x1223db('0x796')]-0x1),_0x31af2e<0x0&&(_0x31af2e=_0x1efffe[_0x1223db('0x796')]+_0x31af2e),_0x31af2e>=_0x1efffe[_0x1223db('0x796')]){if(_0x5cb881)return-0x1;_0x31af2e=_0x1efffe[_0x1223db('0x796')]-0x1;}else{if(_0x31af2e<0x0){if(!_0x5cb881)return-0x1;_0x31af2e=0x0;}}if(_0x1223db('0x3fd')==typeof _0x175058&&(_0x175058=_0x174fd5[_0x1223db('0x40e')](_0x175058,_0x32789e)),_0x174fd5[_0x1223db('0x20')](_0x175058))return 0x0===_0x175058[_0x1223db('0x796')]?-0x1:_0x5ad121(_0x1efffe,_0x175058,_0x31af2e,_0x32789e,_0x5cb881);if(_0x1223db('0x218')==typeof _0x175058)return _0x175058&=0xff,_0x1223db('0xa25')==typeof Uint8Array[_0x1223db('0x539')]['indexOf']?_0x5cb881?Uint8Array['prototype'][_0x1223db('0xcd8')]['call'](_0x1efffe,_0x175058,_0x31af2e):Uint8Array[_0x1223db('0x539')][_0x1223db('0x4ea')][_0x1223db('0x964')](_0x1efffe,_0x175058,_0x31af2e):_0x5ad121(_0x1efffe,[_0x175058],_0x31af2e,_0x32789e,_0x5cb881);throw new TypeError(_0x1223db('0x263'));}function _0x5ad121(_0x2fc917,_0x24a184,_0x31715a,_0x1a5969,_0x195234){var _0x2a1fed=_0x3c3da7,_0x3d45ef,_0x5a87ca=0x1,_0x153ca4=_0x2fc917[_0x2a1fed('0x796')],_0x162877=_0x24a184[_0x2a1fed('0x796')];if(void 0x0!==_0x1a5969&&(_0x2a1fed('0x372')===(_0x1a5969=String(_0x1a5969)['toLowerCase']())||_0x2a1fed('0x469')===_0x1a5969||_0x2a1fed('0x29c')===_0x1a5969||_0x2a1fed('0x6f4')===_0x1a5969)){if(_0x2fc917['length']<0x2||_0x24a184[_0x2a1fed('0x796')]<0x2)return-0x1;_0x5a87ca=0x2,_0x153ca4/=0x2,_0x162877/=0x2,_0x31715a/=0x2;}function _0x3bbe9e(_0x18b335,_0x4097b3){return 0x1===_0x5a87ca?_0x18b335[_0x4097b3]:_0x18b335['readUInt16BE'](_0x4097b3*_0x5a87ca);}if(_0x195234){var _0x356979=-0x1;for(_0x3d45ef=_0x31715a;_0x3d45ef<_0x153ca4;_0x3d45ef++)if(_0x3bbe9e(_0x2fc917,_0x3d45ef)===_0x3bbe9e(_0x24a184,-0x1===_0x356979?0x0:_0x3d45ef-_0x356979)){if(-0x1===_0x356979&&(_0x356979=_0x3d45ef),_0x3d45ef-_0x356979+0x1===_0x162877)return _0x356979*_0x5a87ca;}else-0x1!==_0x356979&&(_0x3d45ef-=_0x3d45ef-_0x356979),_0x356979=-0x1;}else for(_0x31715a+_0x162877>_0x153ca4&&(_0x31715a=_0x153ca4-_0x162877),_0x3d45ef=_0x31715a;_0x3d45ef>=0x0;_0x3d45ef--){for(var _0x21c8a9=!0x0,_0x298fe6=0x0;_0x298fe6<_0x162877;_0x298fe6++)if(_0x3bbe9e(_0x2fc917,_0x3d45ef+_0x298fe6)!==_0x3bbe9e(_0x24a184,_0x298fe6)){_0x21c8a9=!0x1;break;}if(_0x21c8a9)return _0x3d45ef;}return-0x1;}function _0xf6d6bb(_0x1b8c49,_0x4eb185,_0x45ccda,_0x3eb21a){var _0x18594d=_0x3c3da7;_0x45ccda=Number(_0x45ccda)||0x0;var _0x573add=_0x1b8c49[_0x18594d('0x796')]-_0x45ccda;_0x3eb21a?(_0x3eb21a=Number(_0x3eb21a))>_0x573add&&(_0x3eb21a=_0x573add):_0x3eb21a=_0x573add;var _0xc7d9ce=_0x4eb185['length'];_0x3eb21a>_0xc7d9ce/0x2&&(_0x3eb21a=_0xc7d9ce/0x2);for(var _0x538909=0x0;_0x538909<_0x3eb21a;++_0x538909){var _0x4eeb02=parseInt(_0x4eb185[_0x18594d('0x688')](0x2*_0x538909,0x2),0x10);if(_0x4ab5f8(_0x4eeb02))return _0x538909;_0x1b8c49[_0x45ccda+_0x538909]=_0x4eeb02;}return _0x538909;}function _0x22f7ae(_0x5da5fb,_0x49d1ab,_0x59fe03,_0x496b40){var _0x316016=_0x3c3da7;return _0x43fdaf(_0x41a4d4(_0x49d1ab,_0x5da5fb[_0x316016('0x796')]-_0x59fe03),_0x5da5fb,_0x59fe03,_0x496b40);}function _0x51fcdf(_0xb03ccf,_0x37d617,_0x285e67,_0x1d4a38){return _0x43fdaf(function(_0x45dadb){var _0x5d43ba=_0x1c0e;for(var _0x556f28=[],_0x4a7917=0x0;_0x4a7917<_0x45dadb[_0x5d43ba('0x796')];++_0x4a7917)_0x556f28[_0x5d43ba('0xb2')](0xff&_0x45dadb[_0x5d43ba('0x149')](_0x4a7917));return _0x556f28;}(_0x37d617),_0xb03ccf,_0x285e67,_0x1d4a38);}function _0x47643a(_0x3585b4,_0x4dd2ff,_0x4c118e,_0x4bf130){return _0x51fcdf(_0x3585b4,_0x4dd2ff,_0x4c118e,_0x4bf130);}function _0x3286f9(_0x5c86b6,_0xc35050,_0xddc416,_0x5e6948){return _0x43fdaf(_0x5a7597(_0xc35050),_0x5c86b6,_0xddc416,_0x5e6948);}function _0x295fec(_0x1ece25,_0x3577fa,_0x2dcf42,_0x5d7ad3){var _0x3075b0=_0x3c3da7;return _0x43fdaf(function(_0x3d97de,_0x53b87e){var _0x103872=_0x1c0e;for(var _0x1098fb,_0x4ed318,_0x108187,_0x397ff4=[],_0x6ee69b=0x0;_0x6ee69b<_0x3d97de[_0x103872('0x796')]&&!((_0x53b87e-=0x2)<0x0);++_0x6ee69b)_0x1098fb=_0x3d97de[_0x103872('0x149')](_0x6ee69b),_0x4ed318=_0x1098fb>>0x8,_0x108187=_0x1098fb%0x100,_0x397ff4[_0x103872('0xb2')](_0x108187),_0x397ff4[_0x103872('0xb2')](_0x4ed318);return _0x397ff4;}(_0x3577fa,_0x1ece25[_0x3075b0('0x796')]-_0x2dcf42),_0x1ece25,_0x2dcf42,_0x5d7ad3);}function _0xcc0fe1(_0xcbfcb5,_0x3a8e0c,_0x30ab4e){var _0x7acb0a=_0x3c3da7;return 0x0===_0x3a8e0c&&_0x30ab4e===_0xcbfcb5['length']?_0x199f32[_0x7acb0a('0xb00')](_0xcbfcb5):_0x199f32[_0x7acb0a('0xb00')](_0xcbfcb5[_0x7acb0a('0x5fe')](_0x3a8e0c,_0x30ab4e));}function _0x20c47b(_0x221f29,_0x17d4a5,_0x15656b){var _0x30b27c=_0x3c3da7;_0x15656b=Math['min'](_0x221f29[_0x30b27c('0x796')],_0x15656b);for(var _0x128b6f=[],_0x1fc526=_0x17d4a5;_0x1fc526<_0x15656b;){var _0x209c86,_0xa0b252,_0x4a538a,_0x1afb29,_0x465c45=_0x221f29[_0x1fc526],_0x2f63ea=null,_0x5024cc=_0x465c45>0xef?0x4:_0x465c45>0xdf?0x3:_0x465c45>0xbf?0x2:0x1;if(_0x1fc526+_0x5024cc<=_0x15656b)switch(_0x5024cc){case 0x1:_0x465c45<0x80&&(_0x2f63ea=_0x465c45);break;case 0x2:0x80==(0xc0&(_0x209c86=_0x221f29[_0x1fc526+0x1]))&&(_0x1afb29=(0x1f&_0x465c45)<<0x6|0x3f&_0x209c86)>0x7f&&(_0x2f63ea=_0x1afb29);break;case 0x3:_0x209c86=_0x221f29[_0x1fc526+0x1],_0xa0b252=_0x221f29[_0x1fc526+0x2],0x80==(0xc0&_0x209c86)&&0x80==(0xc0&_0xa0b252)&&(_0x1afb29=(0xf&_0x465c45)<<0xc|(0x3f&_0x209c86)<<0x6|0x3f&_0xa0b252)>0x7ff&&(_0x1afb29<0xd800||_0x1afb29>0xdfff)&&(_0x2f63ea=_0x1afb29);break;case 0x4:_0x209c86=_0x221f29[_0x1fc526+0x1],_0xa0b252=_0x221f29[_0x1fc526+0x2],_0x4a538a=_0x221f29[_0x1fc526+0x3],0x80==(0xc0&_0x209c86)&&0x80==(0xc0&_0xa0b252)&&0x80==(0xc0&_0x4a538a)&&(_0x1afb29=(0xf&_0x465c45)<<0x12|(0x3f&_0x209c86)<<0xc|(0x3f&_0xa0b252)<<0x6|0x3f&_0x4a538a)>0xffff&&_0x1afb29<0x110000&&(_0x2f63ea=_0x1afb29);}null===_0x2f63ea?(_0x2f63ea=0xfffd,_0x5024cc=0x1):_0x2f63ea>0xffff&&(_0x2f63ea-=0x10000,_0x128b6f['push'](_0x2f63ea>>>0xa&0x3ff|0xd800),_0x2f63ea=0xdc00|0x3ff&_0x2f63ea),_0x128b6f[_0x30b27c('0xb2')](_0x2f63ea),_0x1fc526+=_0x5024cc;}return function(_0x2f792c){var _0x1d6450=_0x30b27c,_0x4bdef3=_0x2f792c[_0x1d6450('0x796')];if(_0x4bdef3<=0x1000)return String['fromCharCode']['apply'](String,_0x2f792c);var _0xc188fe='',_0x280c1d=0x0;for(;_0x280c1d<_0x4bdef3;)_0xc188fe+=String[_0x1d6450('0x385')][_0x1d6450('0x365')](String,_0x2f792c['slice'](_0x280c1d,_0x280c1d+=0x1000));return _0xc188fe;}(_0x128b6f);}_0x543dd3[_0x3c3da7('0x6c0')]=0x7fffffff,_0x174fd5[_0x3c3da7('0xd0e')]=function(){var _0x4bb41e=_0x3c3da7;try{var _0x29efc4=new Uint8Array(0x1);return _0x29efc4['__proto__']={'__proto__':Uint8Array['prototype'],'foo':function(){return 0x2a;}},0x2a===_0x29efc4[_0x4bb41e('0x81e')]();}catch(_0x4e18ca){return!0x1;}}(),_0x174fd5[_0x3c3da7('0xd0e')]||_0x3c3da7('0xbfa')==typeof console||_0x3c3da7('0xa25')!=typeof console[_0x3c3da7('0xab4')]||console[_0x3c3da7('0xab4')](_0x3c3da7('0x11f')),Object['defineProperty'](_0x174fd5[_0x3c3da7('0x539')],'parent',{'enumerable':!0x0,'get':function(){var _0x46c7cb=_0x3c3da7;if(_0x174fd5[_0x46c7cb('0x20')](this))return this[_0x46c7cb('0x7db')];}}),Object[_0x3c3da7('0x751')](_0x174fd5[_0x3c3da7('0x539')],_0x3c3da7('0x39b'),{'enumerable':!0x0,'get':function(){var _0x1db565=_0x3c3da7;if(_0x174fd5[_0x1db565('0x20')](this))return this[_0x1db565('0xc0c')];}}),_0x3c3da7('0xbfa')!=typeof Symbol&&null!=Symbol['species']&&_0x174fd5[Symbol['species']]===_0x174fd5&&Object[_0x3c3da7('0x751')](_0x174fd5,Symbol['species'],{'value':null,'configurable':!0x0,'enumerable':!0x1,'writable':!0x1}),_0x174fd5[_0x3c3da7('0xdd8')]=0x2000,_0x174fd5[_0x3c3da7('0x40e')]=function(_0x2820d1,_0x362ac5,_0x35afc6){return _0x2c6714(_0x2820d1,_0x362ac5,_0x35afc6);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xcb9')]=Uint8Array[_0x3c3da7('0x539')],_0x174fd5[_0x3c3da7('0xcb9')]=Uint8Array,_0x174fd5[_0x3c3da7('0xd97')]=function(_0x4a2f84,_0x44cfd2,_0x21d682){return function(_0x2b7d8a,_0x4790a8,_0x35d867){var _0x1253b5=_0x1c0e;return _0x531191(_0x2b7d8a),_0x2b7d8a<=0x0?_0xdfa038(_0x2b7d8a):void 0x0!==_0x4790a8?_0x1253b5('0x3fd')==typeof _0x35d867?_0xdfa038(_0x2b7d8a)[_0x1253b5('0x9b9')](_0x4790a8,_0x35d867):_0xdfa038(_0x2b7d8a)['fill'](_0x4790a8):_0xdfa038(_0x2b7d8a);}(_0x4a2f84,_0x44cfd2,_0x21d682);},_0x174fd5[_0x3c3da7('0x357')]=function(_0x1b569b){return _0x732ebc(_0x1b569b);},_0x174fd5['allocUnsafeSlow']=function(_0x453b91){return _0x732ebc(_0x453b91);},_0x174fd5[_0x3c3da7('0x20')]=function(_0x3bb8dc){var _0x531096=_0x3c3da7;return null!=_0x3bb8dc&&!0x0===_0x3bb8dc['_isBuffer']&&_0x3bb8dc!==_0x174fd5[_0x531096('0x539')];},_0x174fd5[_0x3c3da7('0x5cd')]=function(_0x19f088,_0x3245ae){var _0x1d40dc=_0x3c3da7;if(_0x41ee4d(_0x19f088,Uint8Array)&&(_0x19f088=_0x174fd5[_0x1d40dc('0x40e')](_0x19f088,_0x19f088[_0x1d40dc('0x39b')],_0x19f088[_0x1d40dc('0x4c4')])),_0x41ee4d(_0x3245ae,Uint8Array)&&(_0x3245ae=_0x174fd5[_0x1d40dc('0x40e')](_0x3245ae,_0x3245ae[_0x1d40dc('0x39b')],_0x3245ae[_0x1d40dc('0x4c4')])),!_0x174fd5[_0x1d40dc('0x20')](_0x19f088)||!_0x174fd5[_0x1d40dc('0x20')](_0x3245ae))throw new TypeError('The\x20\x22buf1\x22,\x20\x22buf2\x22\x20arguments\x20must\x20be\x20one\x20of\x20type\x20Buffer\x20or\x20Uint8Array');if(_0x19f088===_0x3245ae)return 0x0;for(var _0x463f1f=_0x19f088[_0x1d40dc('0x796')],_0x226763=_0x3245ae[_0x1d40dc('0x796')],_0x25b30d=0x0,_0x4536fb=Math[_0x1d40dc('0x3a4')](_0x463f1f,_0x226763);_0x25b30d<_0x4536fb;++_0x25b30d)if(_0x19f088[_0x25b30d]!==_0x3245ae[_0x25b30d]){_0x463f1f=_0x19f088[_0x25b30d],_0x226763=_0x3245ae[_0x25b30d];break;}return _0x463f1f<_0x226763?-0x1:_0x226763<_0x463f1f?0x1:0x0;},_0x174fd5[_0x3c3da7('0x7bb')]=function(_0x385413){var _0x10fb4e=_0x3c3da7;switch(String(_0x385413)[_0x10fb4e('0x2f5')]()){case _0x10fb4e('0x7c6'):case'utf8':case _0x10fb4e('0x761'):case _0x10fb4e('0x4f9'):case'latin1':case _0x10fb4e('0x137'):case _0x10fb4e('0x1b7'):case _0x10fb4e('0x372'):case _0x10fb4e('0x469'):case _0x10fb4e('0x29c'):case _0x10fb4e('0x6f4'):return!0x0;default:return!0x1;}},_0x174fd5[_0x3c3da7('0x4c2')]=function(_0x31b9ad,_0x420711){var _0x4d4ec2=_0x3c3da7;if(!Array[_0x4d4ec2('0xff')](_0x31b9ad))throw new TypeError(_0x4d4ec2('0x6f6'));if(0x0===_0x31b9ad[_0x4d4ec2('0x796')])return _0x174fd5[_0x4d4ec2('0xd97')](0x0);var _0x2f4553;if(void 0x0===_0x420711)for(_0x420711=0x0,_0x2f4553=0x0;_0x2f4553<_0x31b9ad['length'];++_0x2f4553)_0x420711+=_0x31b9ad[_0x2f4553][_0x4d4ec2('0x796')];var _0x30d4ed=_0x174fd5[_0x4d4ec2('0x357')](_0x420711),_0x181c18=0x0;for(_0x2f4553=0x0;_0x2f4553<_0x31b9ad['length'];++_0x2f4553){var _0x24b5e2=_0x31b9ad[_0x2f4553];if(_0x41ee4d(_0x24b5e2,Uint8Array)&&(_0x24b5e2=_0x174fd5[_0x4d4ec2('0x40e')](_0x24b5e2)),!_0x174fd5[_0x4d4ec2('0x20')](_0x24b5e2))throw new TypeError(_0x4d4ec2('0x6f6'));_0x24b5e2[_0x4d4ec2('0x478')](_0x30d4ed,_0x181c18),_0x181c18+=_0x24b5e2[_0x4d4ec2('0x796')];}return _0x30d4ed;},_0x174fd5[_0x3c3da7('0x4c4')]=_0x111fa6,_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xdca')]=!0x0,_0x174fd5['prototype'][_0x3c3da7('0x1c3')]=function(){var _0xbb1a16=_0x3c3da7,_0x3033d9=this['length'];if(_0x3033d9%0x2!=0x0)throw new RangeError(_0xbb1a16('0xed'));for(var _0x4270eb=0x0;_0x4270eb<_0x3033d9;_0x4270eb+=0x2)_0x21a6d2(this,_0x4270eb,_0x4270eb+0x1);return this;},_0x174fd5['prototype']['swap32']=function(){var _0x312a6f=_0x3c3da7,_0x2f8440=this['length'];if(_0x2f8440%0x4!=0x0)throw new RangeError(_0x312a6f('0x77f'));for(var _0x1ce8a2=0x0;_0x1ce8a2<_0x2f8440;_0x1ce8a2+=0x4)_0x21a6d2(this,_0x1ce8a2,_0x1ce8a2+0x3),_0x21a6d2(this,_0x1ce8a2+0x1,_0x1ce8a2+0x2);return this;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xa76')]=function(){var _0x26379e=_0x3c3da7,_0x2111c5=this[_0x26379e('0x796')];if(_0x2111c5%0x8!=0x0)throw new RangeError(_0x26379e('0x18'));for(var _0x307fa6=0x0;_0x307fa6<_0x2111c5;_0x307fa6+=0x8)_0x21a6d2(this,_0x307fa6,_0x307fa6+0x7),_0x21a6d2(this,_0x307fa6+0x1,_0x307fa6+0x6),_0x21a6d2(this,_0x307fa6+0x2,_0x307fa6+0x5),_0x21a6d2(this,_0x307fa6+0x3,_0x307fa6+0x4);return this;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x6e9')]=function(){var _0x2579b6=_0x3c3da7,_0x5a3b0e=this['length'];return 0x0===_0x5a3b0e?'':0x0===arguments['length']?_0x20c47b(this,0x0,_0x5a3b0e):_0x954511[_0x2579b6('0x365')](this,arguments);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x245')]=_0x174fd5['prototype']['toString'],_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xb51')]=function(_0x21decf){var _0x32135b=_0x3c3da7;if(!_0x174fd5[_0x32135b('0x20')](_0x21decf))throw new TypeError(_0x32135b('0x646'));return this===_0x21decf||0x0===_0x174fd5[_0x32135b('0x5cd')](this,_0x21decf);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x106')]=function(){var _0x40b65b=_0x3c3da7,_0x57ac6e='',_0x2cbc51=_0x543dd3[_0x40b65b('0x173')];return _0x57ac6e=this['toString'](_0x40b65b('0x7c6'),0x0,_0x2cbc51)[_0x40b65b('0x8f9')](/(.{2})/g,_0x40b65b('0x91b'))['trim'](),this[_0x40b65b('0x796')]>_0x2cbc51&&(_0x57ac6e+='\x20...\x20'),_0x40b65b('0xd62')+_0x57ac6e+'>';},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x5cd')]=function(_0x427944,_0x3a01d1,_0x1ddc18,_0x2ba7c8,_0x2e4dc7){var _0x5c38e4=_0x3c3da7;if(_0x41ee4d(_0x427944,Uint8Array)&&(_0x427944=_0x174fd5[_0x5c38e4('0x40e')](_0x427944,_0x427944[_0x5c38e4('0x39b')],_0x427944['byteLength'])),!_0x174fd5['isBuffer'](_0x427944))throw new TypeError(_0x5c38e4('0x938')+typeof _0x427944);if(void 0x0===_0x3a01d1&&(_0x3a01d1=0x0),void 0x0===_0x1ddc18&&(_0x1ddc18=_0x427944?_0x427944[_0x5c38e4('0x796')]:0x0),void 0x0===_0x2ba7c8&&(_0x2ba7c8=0x0),void 0x0===_0x2e4dc7&&(_0x2e4dc7=this[_0x5c38e4('0x796')]),_0x3a01d1<0x0||_0x1ddc18>_0x427944[_0x5c38e4('0x796')]||_0x2ba7c8<0x0||_0x2e4dc7>this['length'])throw new RangeError(_0x5c38e4('0x864'));if(_0x2ba7c8>=_0x2e4dc7&&_0x3a01d1>=_0x1ddc18)return 0x0;if(_0x2ba7c8>=_0x2e4dc7)return-0x1;if(_0x3a01d1>=_0x1ddc18)return 0x1;if(this===_0x427944)return 0x0;for(var _0x36ddf1=(_0x2e4dc7>>>=0x0)-(_0x2ba7c8>>>=0x0),_0x2d53ca=(_0x1ddc18>>>=0x0)-(_0x3a01d1>>>=0x0),_0x2782c0=Math[_0x5c38e4('0x3a4')](_0x36ddf1,_0x2d53ca),_0x3c6fe8=this[_0x5c38e4('0x5fe')](_0x2ba7c8,_0x2e4dc7),_0x1c828a=_0x427944[_0x5c38e4('0x5fe')](_0x3a01d1,_0x1ddc18),_0x53b6b8=0x0;_0x53b6b8<_0x2782c0;++_0x53b6b8)if(_0x3c6fe8[_0x53b6b8]!==_0x1c828a[_0x53b6b8]){_0x36ddf1=_0x3c6fe8[_0x53b6b8],_0x2d53ca=_0x1c828a[_0x53b6b8];break;}return _0x36ddf1<_0x2d53ca?-0x1:_0x2d53ca<_0x36ddf1?0x1:0x0;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xa31')]=function(_0x478905,_0x2a1a1d,_0x3a679e){var _0x4bd029=_0x3c3da7;return-0x1!==this[_0x4bd029('0xcd8')](_0x478905,_0x2a1a1d,_0x3a679e);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xcd8')]=function(_0x4afdef,_0x1ac142,_0x36ab2f){return _0x503c99(this,_0x4afdef,_0x1ac142,_0x36ab2f,!0x0);},_0x174fd5['prototype']['lastIndexOf']=function(_0x289b46,_0x2a5d28,_0x713a89){return _0x503c99(this,_0x289b46,_0x2a5d28,_0x713a89,!0x1);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x99f')]=function(_0x599f38,_0x2ef062,_0x57cb21,_0x2c5cf6){var _0x4757ab=_0x3c3da7;if(void 0x0===_0x2ef062)_0x2c5cf6=_0x4757ab('0xdac'),_0x57cb21=this['length'],_0x2ef062=0x0;else{if(void 0x0===_0x57cb21&&_0x4757ab('0x3fd')==typeof _0x2ef062)_0x2c5cf6=_0x2ef062,_0x57cb21=this[_0x4757ab('0x796')],_0x2ef062=0x0;else{if(!isFinite(_0x2ef062))throw new Error(_0x4757ab('0xba0'));_0x2ef062>>>=0x0,isFinite(_0x57cb21)?(_0x57cb21>>>=0x0,void 0x0===_0x2c5cf6&&(_0x2c5cf6=_0x4757ab('0xdac'))):(_0x2c5cf6=_0x57cb21,_0x57cb21=void 0x0);}}var _0x4cf4e0=this[_0x4757ab('0x796')]-_0x2ef062;if((void 0x0===_0x57cb21||_0x57cb21>_0x4cf4e0)&&(_0x57cb21=_0x4cf4e0),_0x599f38[_0x4757ab('0x796')]>0x0&&(_0x57cb21<0x0||_0x2ef062<0x0)||_0x2ef062>this['length'])throw new RangeError(_0x4757ab('0x977'));_0x2c5cf6||(_0x2c5cf6='utf8');for(var _0x1c1435=!0x1;;)switch(_0x2c5cf6){case _0x4757ab('0x7c6'):return _0xf6d6bb(this,_0x599f38,_0x2ef062,_0x57cb21);case _0x4757ab('0xdac'):case _0x4757ab('0x761'):return _0x22f7ae(this,_0x599f38,_0x2ef062,_0x57cb21);case _0x4757ab('0x4f9'):return _0x51fcdf(this,_0x599f38,_0x2ef062,_0x57cb21);case _0x4757ab('0x739'):case'binary':return _0x47643a(this,_0x599f38,_0x2ef062,_0x57cb21);case'base64':return _0x3286f9(this,_0x599f38,_0x2ef062,_0x57cb21);case _0x4757ab('0x372'):case _0x4757ab('0x469'):case _0x4757ab('0x29c'):case _0x4757ab('0x6f4'):return _0x295fec(this,_0x599f38,_0x2ef062,_0x57cb21);default:if(_0x1c1435)throw new TypeError(_0x4757ab('0x2ae')+_0x2c5cf6);_0x2c5cf6=(''+_0x2c5cf6)[_0x4757ab('0x2f5')](),_0x1c1435=!0x0;}},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x61b')]=function(){var _0x1548f9=_0x3c3da7;return{'type':'Buffer','data':Array['prototype'][_0x1548f9('0x5fe')][_0x1548f9('0x964')](this['_arr']||this,0x0)};};function _0x21e27f(_0x220c58,_0x3d7408,_0x324f1c){var _0x585754=_0x3c3da7,_0x172a4c='';_0x324f1c=Math[_0x585754('0x3a4')](_0x220c58[_0x585754('0x796')],_0x324f1c);for(var _0x569c8d=_0x3d7408;_0x569c8d<_0x324f1c;++_0x569c8d)_0x172a4c+=String['fromCharCode'](0x7f&_0x220c58[_0x569c8d]);return _0x172a4c;}function _0x4cbb00(_0x581c31,_0x3f7a61,_0x1601dc){var _0xc995c7=_0x3c3da7,_0x377f77='';_0x1601dc=Math['min'](_0x581c31['length'],_0x1601dc);for(var _0x28b2cd=_0x3f7a61;_0x28b2cd<_0x1601dc;++_0x28b2cd)_0x377f77+=String[_0xc995c7('0x385')](_0x581c31[_0x28b2cd]);return _0x377f77;}function _0x7c2999(_0x1fd92f,_0x2d2354,_0x41f4c3){var _0x4e146a=_0x3c3da7,_0x463e55=_0x1fd92f[_0x4e146a('0x796')];(!_0x2d2354||_0x2d2354<0x0)&&(_0x2d2354=0x0),(!_0x41f4c3||_0x41f4c3<0x0||_0x41f4c3>_0x463e55)&&(_0x41f4c3=_0x463e55);for(var _0x171a0c='',_0x941184=_0x2d2354;_0x941184<_0x41f4c3;++_0x941184)_0x171a0c+=_0x297317(_0x1fd92f[_0x941184]);return _0x171a0c;}function _0x340cf0(_0xdbc644,_0x2e3c1b,_0x18ec84){var _0x61dab7=_0x3c3da7;for(var _0x4e5d19=_0xdbc644[_0x61dab7('0x5fe')](_0x2e3c1b,_0x18ec84),_0xcf53f='',_0x4b72d8=0x0;_0x4b72d8<_0x4e5d19['length'];_0x4b72d8+=0x2)_0xcf53f+=String[_0x61dab7('0x385')](_0x4e5d19[_0x4b72d8]+0x100*_0x4e5d19[_0x4b72d8+0x1]);return _0xcf53f;}function _0x4cb274(_0x14294d,_0x241382,_0xf8ec7f){var _0x4c233d=_0x3c3da7;if(_0x14294d%0x1!=0x0||_0x14294d<0x0)throw new RangeError(_0x4c233d('0xcbd'));if(_0x14294d+_0x241382>_0xf8ec7f)throw new RangeError(_0x4c233d('0xc49'));}function _0x4e5850(_0x37e092,_0x56546c,_0x515926,_0x23ad17,_0x59da5f,_0x2fa613){var _0x1e4ffa=_0x3c3da7;if(!_0x174fd5[_0x1e4ffa('0x20')](_0x37e092))throw new TypeError(_0x1e4ffa('0x26e'));if(_0x56546c>_0x59da5f||_0x56546c<_0x2fa613)throw new RangeError(_0x1e4ffa('0x71c'));if(_0x515926+_0x23ad17>_0x37e092[_0x1e4ffa('0x796')])throw new RangeError(_0x1e4ffa('0x1de'));}function _0x2d9e36(_0x35904b,_0xf1e01,_0x4fc525,_0x4696ca,_0x516298,_0x3b6410){var _0x514080=_0x3c3da7;if(_0x4fc525+_0x4696ca>_0x35904b['length'])throw new RangeError(_0x514080('0x1de'));if(_0x4fc525<0x0)throw new RangeError('Index\x20out\x20of\x20range');}function _0x594039(_0x6a4f59,_0x4a136e,_0x1f990d,_0x2a5221,_0x4b16c0){var _0x264318=_0x3c3da7;return _0x4a136e=+_0x4a136e,_0x1f990d>>>=0x0,_0x4b16c0||_0x2d9e36(_0x6a4f59,0x0,_0x1f990d,0x4),_0x49d90a[_0x264318('0x99f')](_0x6a4f59,_0x4a136e,_0x1f990d,_0x2a5221,0x17,0x4),_0x1f990d+0x4;}function _0x5e03a5(_0x3bdd00,_0x414716,_0x2b3435,_0x2a5c0b,_0x4ca927){return _0x414716=+_0x414716,_0x2b3435>>>=0x0,_0x4ca927||_0x2d9e36(_0x3bdd00,0x0,_0x2b3435,0x8),_0x49d90a['write'](_0x3bdd00,_0x414716,_0x2b3435,_0x2a5c0b,0x34,0x8),_0x2b3435+0x8;}_0x174fd5['prototype'][_0x3c3da7('0x5fe')]=function(_0x4a0bc2,_0x222404){var _0x16e4c9=_0x3c3da7,_0x26f452=this['length'];(_0x4a0bc2=~~_0x4a0bc2)<0x0?(_0x4a0bc2+=_0x26f452)<0x0&&(_0x4a0bc2=0x0):_0x4a0bc2>_0x26f452&&(_0x4a0bc2=_0x26f452),(_0x222404=void 0x0===_0x222404?_0x26f452:~~_0x222404)<0x0?(_0x222404+=_0x26f452)<0x0&&(_0x222404=0x0):_0x222404>_0x26f452&&(_0x222404=_0x26f452),_0x222404<_0x4a0bc2&&(_0x222404=_0x4a0bc2);var _0x3eb910=this['subarray'](_0x4a0bc2,_0x222404);return _0x3eb910['__proto__']=_0x174fd5[_0x16e4c9('0x539')],_0x3eb910;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x62a')]=function(_0x4c036a,_0x4c2249,_0x2bf435){_0x4c036a>>>=0x0,_0x4c2249>>>=0x0,_0x2bf435||_0x4cb274(_0x4c036a,_0x4c2249,this['length']);for(var _0x23d255=this[_0x4c036a],_0x4fd059=0x1,_0x5def2d=0x0;++_0x5def2d<_0x4c2249&&(_0x4fd059*=0x100);)_0x23d255+=this[_0x4c036a+_0x5def2d]*_0x4fd059;return _0x23d255;},_0x174fd5[_0x3c3da7('0x539')]['readUIntBE']=function(_0x3493d1,_0x161298,_0x340378){_0x3493d1>>>=0x0,_0x161298>>>=0x0,_0x340378||_0x4cb274(_0x3493d1,_0x161298,this['length']);for(var _0x149869=this[_0x3493d1+--_0x161298],_0x2b13b4=0x1;_0x161298>0x0&&(_0x2b13b4*=0x100);)_0x149869+=this[_0x3493d1+--_0x161298]*_0x2b13b4;return _0x149869;},_0x174fd5['prototype'][_0x3c3da7('0xc4f')]=function(_0x4e019d,_0x3e43df){var _0xfc6348=_0x3c3da7;return _0x4e019d>>>=0x0,_0x3e43df||_0x4cb274(_0x4e019d,0x1,this[_0xfc6348('0x796')]),this[_0x4e019d];},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xc88')]=function(_0x4eacdd,_0x4f7f20){return _0x4eacdd>>>=0x0,_0x4f7f20||_0x4cb274(_0x4eacdd,0x2,this['length']),this[_0x4eacdd]|this[_0x4eacdd+0x1]<<0x8;},_0x174fd5[_0x3c3da7('0x539')]['readUInt16BE']=function(_0x10abef,_0x18cc0d){var _0xcf52db=_0x3c3da7;return _0x10abef>>>=0x0,_0x18cc0d||_0x4cb274(_0x10abef,0x2,this[_0xcf52db('0x796')]),this[_0x10abef]<<0x8|this[_0x10abef+0x1];},_0x174fd5['prototype'][_0x3c3da7('0x60c')]=function(_0x505d3d,_0x598c17){var _0x37fc66=_0x3c3da7;return _0x505d3d>>>=0x0,_0x598c17||_0x4cb274(_0x505d3d,0x4,this[_0x37fc66('0x796')]),(this[_0x505d3d]|this[_0x505d3d+0x1]<<0x8|this[_0x505d3d+0x2]<<0x10)+0x1000000*this[_0x505d3d+0x3];},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x862')]=function(_0x34058f,_0x48bbd7){var _0x273567=_0x3c3da7;return _0x34058f>>>=0x0,_0x48bbd7||_0x4cb274(_0x34058f,0x4,this[_0x273567('0x796')]),0x1000000*this[_0x34058f]+(this[_0x34058f+0x1]<<0x10|this[_0x34058f+0x2]<<0x8|this[_0x34058f+0x3]);},_0x174fd5[_0x3c3da7('0x539')]['readIntLE']=function(_0x223772,_0x351859,_0x184928){var _0x39fe7b=_0x3c3da7;_0x223772>>>=0x0,_0x351859>>>=0x0,_0x184928||_0x4cb274(_0x223772,_0x351859,this[_0x39fe7b('0x796')]);for(var _0x188217=this[_0x223772],_0x393afe=0x1,_0x2c1e5d=0x0;++_0x2c1e5d<_0x351859&&(_0x393afe*=0x100);)_0x188217+=this[_0x223772+_0x2c1e5d]*_0x393afe;return _0x188217>=(_0x393afe*=0x80)&&(_0x188217-=Math['pow'](0x2,0x8*_0x351859)),_0x188217;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x9f3')]=function(_0x3ed9bd,_0x50b423,_0x40a7ca){var _0x448b13=_0x3c3da7;_0x3ed9bd>>>=0x0,_0x50b423>>>=0x0,_0x40a7ca||_0x4cb274(_0x3ed9bd,_0x50b423,this['length']);for(var _0x50cca6=_0x50b423,_0x3db3fb=0x1,_0x2e0de9=this[_0x3ed9bd+--_0x50cca6];_0x50cca6>0x0&&(_0x3db3fb*=0x100);)_0x2e0de9+=this[_0x3ed9bd+--_0x50cca6]*_0x3db3fb;return _0x2e0de9>=(_0x3db3fb*=0x80)&&(_0x2e0de9-=Math[_0x448b13('0x43e')](0x2,0x8*_0x50b423)),_0x2e0de9;},_0x174fd5['prototype'][_0x3c3da7('0x35a')]=function(_0x30ff31,_0x54d66d){var _0x2726eb=_0x3c3da7;return _0x30ff31>>>=0x0,_0x54d66d||_0x4cb274(_0x30ff31,0x1,this[_0x2726eb('0x796')]),0x80&this[_0x30ff31]?-0x1*(0xff-this[_0x30ff31]+0x1):this[_0x30ff31];},_0x174fd5['prototype'][_0x3c3da7('0x644')]=function(_0x298079,_0x2bc490){var _0x3e208b=_0x3c3da7;_0x298079>>>=0x0,_0x2bc490||_0x4cb274(_0x298079,0x2,this[_0x3e208b('0x796')]);var _0x286917=this[_0x298079]|this[_0x298079+0x1]<<0x8;return 0x8000&_0x286917?0xffff0000|_0x286917:_0x286917;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x92b')]=function(_0xf7e55e,_0x58320f){var _0x2df320=_0x3c3da7;_0xf7e55e>>>=0x0,_0x58320f||_0x4cb274(_0xf7e55e,0x2,this[_0x2df320('0x796')]);var _0x4a4e9d=this[_0xf7e55e+0x1]|this[_0xf7e55e]<<0x8;return 0x8000&_0x4a4e9d?0xffff0000|_0x4a4e9d:_0x4a4e9d;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x0')]=function(_0x3603c9,_0x50befb){var _0x93dea=_0x3c3da7;return _0x3603c9>>>=0x0,_0x50befb||_0x4cb274(_0x3603c9,0x4,this[_0x93dea('0x796')]),this[_0x3603c9]|this[_0x3603c9+0x1]<<0x8|this[_0x3603c9+0x2]<<0x10|this[_0x3603c9+0x3]<<0x18;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xcdd')]=function(_0x2f7b30,_0x467231){var _0x3d9bc3=_0x3c3da7;return _0x2f7b30>>>=0x0,_0x467231||_0x4cb274(_0x2f7b30,0x4,this[_0x3d9bc3('0x796')]),this[_0x2f7b30]<<0x18|this[_0x2f7b30+0x1]<<0x10|this[_0x2f7b30+0x2]<<0x8|this[_0x2f7b30+0x3];},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x69e')]=function(_0x562518,_0x50eb0d){var _0x563111=_0x3c3da7;return _0x562518>>>=0x0,_0x50eb0d||_0x4cb274(_0x562518,0x4,this[_0x563111('0x796')]),_0x49d90a[_0x563111('0x7d5')](this,_0x562518,!0x0,0x17,0x4);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x675')]=function(_0x9b495f,_0x4d724c){var _0x2f4bea=_0x3c3da7;return _0x9b495f>>>=0x0,_0x4d724c||_0x4cb274(_0x9b495f,0x4,this[_0x2f4bea('0x796')]),_0x49d90a['read'](this,_0x9b495f,!0x1,0x17,0x4);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x23d')]=function(_0x1a833a,_0x344caf){var _0x481ca7=_0x3c3da7;return _0x1a833a>>>=0x0,_0x344caf||_0x4cb274(_0x1a833a,0x8,this['length']),_0x49d90a[_0x481ca7('0x7d5')](this,_0x1a833a,!0x0,0x34,0x8);},_0x174fd5[_0x3c3da7('0x539')]['readDoubleBE']=function(_0x32a146,_0x52f741){var _0x34a7f2=_0x3c3da7;return _0x32a146>>>=0x0,_0x52f741||_0x4cb274(_0x32a146,0x8,this[_0x34a7f2('0x796')]),_0x49d90a[_0x34a7f2('0x7d5')](this,_0x32a146,!0x1,0x34,0x8);},_0x174fd5[_0x3c3da7('0x539')]['writeUIntLE']=function(_0x5aef49,_0x4bb00c,_0x3075d2,_0x86294a){var _0x1207d4=_0x3c3da7;(_0x5aef49=+_0x5aef49,_0x4bb00c>>>=0x0,_0x3075d2>>>=0x0,_0x86294a)||_0x4e5850(this,_0x5aef49,_0x4bb00c,_0x3075d2,Math[_0x1207d4('0x43e')](0x2,0x8*_0x3075d2)-0x1,0x0);var _0x37c429=0x1,_0x109819=0x0;for(this[_0x4bb00c]=0xff&_0x5aef49;++_0x109819<_0x3075d2&&(_0x37c429*=0x100);)this[_0x4bb00c+_0x109819]=_0x5aef49/_0x37c429&0xff;return _0x4bb00c+_0x3075d2;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x6b')]=function(_0xb83f77,_0x4a76c1,_0x12363a,_0x37c7fa){(_0xb83f77=+_0xb83f77,_0x4a76c1>>>=0x0,_0x12363a>>>=0x0,_0x37c7fa)||_0x4e5850(this,_0xb83f77,_0x4a76c1,_0x12363a,Math['pow'](0x2,0x8*_0x12363a)-0x1,0x0);var _0x46e0ac=_0x12363a-0x1,_0x4b350f=0x1;for(this[_0x4a76c1+_0x46e0ac]=0xff&_0xb83f77;--_0x46e0ac>=0x0&&(_0x4b350f*=0x100);)this[_0x4a76c1+_0x46e0ac]=_0xb83f77/_0x4b350f&0xff;return _0x4a76c1+_0x12363a;},_0x174fd5[_0x3c3da7('0x539')]['writeUInt8']=function(_0x72151e,_0x49d38c,_0x5be638){return _0x72151e=+_0x72151e,_0x49d38c>>>=0x0,_0x5be638||_0x4e5850(this,_0x72151e,_0x49d38c,0x1,0xff,0x0),this[_0x49d38c]=0xff&_0x72151e,_0x49d38c+0x1;},_0x174fd5['prototype'][_0x3c3da7('0x7f7')]=function(_0x47b27c,_0x17c7ef,_0x33b8e0){return _0x47b27c=+_0x47b27c,_0x17c7ef>>>=0x0,_0x33b8e0||_0x4e5850(this,_0x47b27c,_0x17c7ef,0x2,0xffff,0x0),this[_0x17c7ef]=0xff&_0x47b27c,this[_0x17c7ef+0x1]=_0x47b27c>>>0x8,_0x17c7ef+0x2;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xc13')]=function(_0x4b32cd,_0x5489ea,_0x17b876){return _0x4b32cd=+_0x4b32cd,_0x5489ea>>>=0x0,_0x17b876||_0x4e5850(this,_0x4b32cd,_0x5489ea,0x2,0xffff,0x0),this[_0x5489ea]=_0x4b32cd>>>0x8,this[_0x5489ea+0x1]=0xff&_0x4b32cd,_0x5489ea+0x2;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xb1f')]=function(_0x48051e,_0x52d867,_0x491efb){return _0x48051e=+_0x48051e,_0x52d867>>>=0x0,_0x491efb||_0x4e5850(this,_0x48051e,_0x52d867,0x4,0xffffffff,0x0),this[_0x52d867+0x3]=_0x48051e>>>0x18,this[_0x52d867+0x2]=_0x48051e>>>0x10,this[_0x52d867+0x1]=_0x48051e>>>0x8,this[_0x52d867]=0xff&_0x48051e,_0x52d867+0x4;},_0x174fd5[_0x3c3da7('0x539')]['writeUInt32BE']=function(_0x1735c1,_0x5e7b29,_0x385a30){return _0x1735c1=+_0x1735c1,_0x5e7b29>>>=0x0,_0x385a30||_0x4e5850(this,_0x1735c1,_0x5e7b29,0x4,0xffffffff,0x0),this[_0x5e7b29]=_0x1735c1>>>0x18,this[_0x5e7b29+0x1]=_0x1735c1>>>0x10,this[_0x5e7b29+0x2]=_0x1735c1>>>0x8,this[_0x5e7b29+0x3]=0xff&_0x1735c1,_0x5e7b29+0x4;},_0x174fd5[_0x3c3da7('0x539')]['writeIntLE']=function(_0x47689e,_0x473d6e,_0x286fcb,_0x2ff4a1){if(_0x47689e=+_0x47689e,_0x473d6e>>>=0x0,!_0x2ff4a1){var _0x368cf3=Math['pow'](0x2,0x8*_0x286fcb-0x1);_0x4e5850(this,_0x47689e,_0x473d6e,_0x286fcb,_0x368cf3-0x1,-_0x368cf3);}var _0x5c2b96=0x0,_0x1f4588=0x1,_0x690d16=0x0;for(this[_0x473d6e]=0xff&_0x47689e;++_0x5c2b96<_0x286fcb&&(_0x1f4588*=0x100);)_0x47689e<0x0&&0x0===_0x690d16&&0x0!==this[_0x473d6e+_0x5c2b96-0x1]&&(_0x690d16=0x1),this[_0x473d6e+_0x5c2b96]=(_0x47689e/_0x1f4588>>0x0)-_0x690d16&0xff;return _0x473d6e+_0x286fcb;},_0x174fd5[_0x3c3da7('0x539')]['writeIntBE']=function(_0x17b5c5,_0x41f576,_0x3c0eeb,_0x313c36){var _0x1d9fcf=_0x3c3da7;if(_0x17b5c5=+_0x17b5c5,_0x41f576>>>=0x0,!_0x313c36){var _0x4b8b40=Math[_0x1d9fcf('0x43e')](0x2,0x8*_0x3c0eeb-0x1);_0x4e5850(this,_0x17b5c5,_0x41f576,_0x3c0eeb,_0x4b8b40-0x1,-_0x4b8b40);}var _0x5df945=_0x3c0eeb-0x1,_0x397898=0x1,_0x1550bb=0x0;for(this[_0x41f576+_0x5df945]=0xff&_0x17b5c5;--_0x5df945>=0x0&&(_0x397898*=0x100);)_0x17b5c5<0x0&&0x0===_0x1550bb&&0x0!==this[_0x41f576+_0x5df945+0x1]&&(_0x1550bb=0x1),this[_0x41f576+_0x5df945]=(_0x17b5c5/_0x397898>>0x0)-_0x1550bb&0xff;return _0x41f576+_0x3c0eeb;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0xd3d')]=function(_0x3ef0b2,_0xb11257,_0x28cda8){return _0x3ef0b2=+_0x3ef0b2,_0xb11257>>>=0x0,_0x28cda8||_0x4e5850(this,_0x3ef0b2,_0xb11257,0x1,0x7f,-0x80),_0x3ef0b2<0x0&&(_0x3ef0b2=0xff+_0x3ef0b2+0x1),this[_0xb11257]=0xff&_0x3ef0b2,_0xb11257+0x1;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x47d')]=function(_0x1f664e,_0x4a65f8,_0x2e860e){return _0x1f664e=+_0x1f664e,_0x4a65f8>>>=0x0,_0x2e860e||_0x4e5850(this,_0x1f664e,_0x4a65f8,0x2,0x7fff,-0x8000),this[_0x4a65f8]=0xff&_0x1f664e,this[_0x4a65f8+0x1]=_0x1f664e>>>0x8,_0x4a65f8+0x2;},_0x174fd5['prototype']['writeInt16BE']=function(_0x128f16,_0x36c90f,_0x45a1f9){return _0x128f16=+_0x128f16,_0x36c90f>>>=0x0,_0x45a1f9||_0x4e5850(this,_0x128f16,_0x36c90f,0x2,0x7fff,-0x8000),this[_0x36c90f]=_0x128f16>>>0x8,this[_0x36c90f+0x1]=0xff&_0x128f16,_0x36c90f+0x2;},_0x174fd5[_0x3c3da7('0x539')]['writeInt32LE']=function(_0xac509f,_0x1e5ba6,_0x1ef732){return _0xac509f=+_0xac509f,_0x1e5ba6>>>=0x0,_0x1ef732||_0x4e5850(this,_0xac509f,_0x1e5ba6,0x4,0x7fffffff,-0x80000000),this[_0x1e5ba6]=0xff&_0xac509f,this[_0x1e5ba6+0x1]=_0xac509f>>>0x8,this[_0x1e5ba6+0x2]=_0xac509f>>>0x10,this[_0x1e5ba6+0x3]=_0xac509f>>>0x18,_0x1e5ba6+0x4;},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x726')]=function(_0x149e2d,_0x1f6fce,_0x10af20){return _0x149e2d=+_0x149e2d,_0x1f6fce>>>=0x0,_0x10af20||_0x4e5850(this,_0x149e2d,_0x1f6fce,0x4,0x7fffffff,-0x80000000),_0x149e2d<0x0&&(_0x149e2d=0xffffffff+_0x149e2d+0x1),this[_0x1f6fce]=_0x149e2d>>>0x18,this[_0x1f6fce+0x1]=_0x149e2d>>>0x10,this[_0x1f6fce+0x2]=_0x149e2d>>>0x8,this[_0x1f6fce+0x3]=0xff&_0x149e2d,_0x1f6fce+0x4;},_0x174fd5[_0x3c3da7('0x539')]['writeFloatLE']=function(_0x1d94d7,_0x325761,_0x2f9e25){return _0x594039(this,_0x1d94d7,_0x325761,!0x0,_0x2f9e25);},_0x174fd5['prototype'][_0x3c3da7('0x664')]=function(_0x4c7853,_0x5f0b16,_0x551c94){return _0x594039(this,_0x4c7853,_0x5f0b16,!0x1,_0x551c94);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x9dd')]=function(_0x4c0812,_0x997b4e,_0x49921a){return _0x5e03a5(this,_0x4c0812,_0x997b4e,!0x0,_0x49921a);},_0x174fd5[_0x3c3da7('0x539')][_0x3c3da7('0x6a1')]=function(_0x291ab4,_0x3a7d8c,_0x1cd469){return _0x5e03a5(this,_0x291ab4,_0x3a7d8c,!0x1,_0x1cd469);},_0x174fd5['prototype'][_0x3c3da7('0x478')]=function(_0x2ddd00,_0x5b95d5,_0x2158af,_0x3ae233){var _0x327401=_0x3c3da7;if(!_0x174fd5[_0x327401('0x20')](_0x2ddd00))throw new TypeError(_0x327401('0xcca'));if(_0x2158af||(_0x2158af=0x0),_0x3ae233||0x0===_0x3ae233||(_0x3ae233=this[_0x327401('0x796')]),_0x5b95d5>=_0x2ddd00[_0x327401('0x796')]&&(_0x5b95d5=_0x2ddd00[_0x327401('0x796')]),_0x5b95d5||(_0x5b95d5=0x0),_0x3ae233>0x0&&_0x3ae233<_0x2158af&&(_0x3ae233=_0x2158af),_0x3ae233===_0x2158af)return 0x0;if(0x0===_0x2ddd00[_0x327401('0x796')]||0x0===this[_0x327401('0x796')])return 0x0;if(_0x5b95d5<0x0)throw new RangeError('targetStart\x20out\x20of\x20bounds');if(_0x2158af<0x0||_0x2158af>=this[_0x327401('0x796')])throw new RangeError(_0x327401('0x1de'));if(_0x3ae233<0x0)throw new RangeError(_0x327401('0xc22'));_0x3ae233>this[_0x327401('0x796')]&&(_0x3ae233=this[_0x327401('0x796')]),_0x2ddd00[_0x327401('0x796')]-_0x5b95d5<_0x3ae233-_0x2158af&&(_0x3ae233=_0x2ddd00[_0x327401('0x796')]-_0x5b95d5+_0x2158af);var _0x3d90c3=_0x3ae233-_0x2158af;if(this===_0x2ddd00&&_0x327401('0xa25')==typeof Uint8Array[_0x327401('0x539')][_0x327401('0xc2a')])this[_0x327401('0xc2a')](_0x5b95d5,_0x2158af,_0x3ae233);else{if(this===_0x2ddd00&&_0x2158af<_0x5b95d5&&_0x5b95d5<_0x3ae233)for(var _0xe240e4=_0x3d90c3-0x1;_0xe240e4>=0x0;--_0xe240e4)_0x2ddd00[_0xe240e4+_0x5b95d5]=this[_0xe240e4+_0x2158af];else Uint8Array[_0x327401('0x539')]['set'][_0x327401('0x964')](_0x2ddd00,this[_0x327401('0xd74')](_0x2158af,_0x3ae233),_0x5b95d5);}return _0x3d90c3;},_0x174fd5[_0x3c3da7('0x539')]['fill']=function(_0x399117,_0x3ca8e8,_0x30a0be,_0x48dcc9){var _0x522774=_0x3c3da7;if('string'==typeof _0x399117){if(_0x522774('0x3fd')==typeof _0x3ca8e8?(_0x48dcc9=_0x3ca8e8,_0x3ca8e8=0x0,_0x30a0be=this[_0x522774('0x796')]):_0x522774('0x3fd')==typeof _0x30a0be&&(_0x48dcc9=_0x30a0be,_0x30a0be=this[_0x522774('0x796')]),void 0x0!==_0x48dcc9&&'string'!=typeof _0x48dcc9)throw new TypeError(_0x522774('0x973'));if(_0x522774('0x3fd')==typeof _0x48dcc9&&!_0x174fd5[_0x522774('0x7bb')](_0x48dcc9))throw new TypeError(_0x522774('0x2ae')+_0x48dcc9);if(0x1===_0x399117['length']){var _0x3776b0=_0x399117[_0x522774('0x149')](0x0);(_0x522774('0xdac')===_0x48dcc9&&_0x3776b0<0x80||_0x522774('0x739')===_0x48dcc9)&&(_0x399117=_0x3776b0);}}else'number'==typeof _0x399117&&(_0x399117&=0xff);if(_0x3ca8e8<0x0||this[_0x522774('0x796')]<_0x3ca8e8||this[_0x522774('0x796')]<_0x30a0be)throw new RangeError(_0x522774('0x966'));if(_0x30a0be<=_0x3ca8e8)return this;var _0x333e02;if(_0x3ca8e8>>>=0x0,_0x30a0be=void 0x0===_0x30a0be?this[_0x522774('0x796')]:_0x30a0be>>>0x0,_0x399117||(_0x399117=0x0),_0x522774('0x218')==typeof _0x399117)for(_0x333e02=_0x3ca8e8;_0x333e02<_0x30a0be;++_0x333e02)this[_0x333e02]=_0x399117;else{var _0x1e6eb1=_0x174fd5[_0x522774('0x20')](_0x399117)?_0x399117:_0x174fd5['from'](_0x399117,_0x48dcc9),_0x496d56=_0x1e6eb1[_0x522774('0x796')];if(0x0===_0x496d56)throw new TypeError(_0x522774('0xd3')+_0x399117+_0x522774('0x809'));for(_0x333e02=0x0;_0x333e02<_0x30a0be-_0x3ca8e8;++_0x333e02)this[_0x333e02+_0x3ca8e8]=_0x1e6eb1[_0x333e02%_0x496d56];}return this;};var _0x45c7e5=/[^+/0-9A-Za-z-_]/g;function _0x297317(_0xf0626b){var _0x7fe315=_0x3c3da7;return _0xf0626b<0x10?'0'+_0xf0626b[_0x7fe315('0x6e9')](0x10):_0xf0626b['toString'](0x10);}function _0x41a4d4(_0x354712,_0x4430a1){var _0x4d012d=_0x3c3da7,_0x22aaba;_0x4430a1=_0x4430a1||0x1/0x0;for(var _0x11bd3f=_0x354712[_0x4d012d('0x796')],_0x4d0bca=null,_0x158216=[],_0xd75c56=0x0;_0xd75c56<_0x11bd3f;++_0xd75c56){if((_0x22aaba=_0x354712['charCodeAt'](_0xd75c56))>0xd7ff&&_0x22aaba<0xe000){if(!_0x4d0bca){if(_0x22aaba>0xdbff){(_0x4430a1-=0x3)>-0x1&&_0x158216[_0x4d012d('0xb2')](0xef,0xbf,0xbd);continue;}if(_0xd75c56+0x1===_0x11bd3f){(_0x4430a1-=0x3)>-0x1&&_0x158216[_0x4d012d('0xb2')](0xef,0xbf,0xbd);continue;}_0x4d0bca=_0x22aaba;continue;}if(_0x22aaba<0xdc00){(_0x4430a1-=0x3)>-0x1&&_0x158216[_0x4d012d('0xb2')](0xef,0xbf,0xbd),_0x4d0bca=_0x22aaba;continue;}_0x22aaba=0x10000+(_0x4d0bca-0xd800<<0xa|_0x22aaba-0xdc00);}else _0x4d0bca&&(_0x4430a1-=0x3)>-0x1&&_0x158216[_0x4d012d('0xb2')](0xef,0xbf,0xbd);if(_0x4d0bca=null,_0x22aaba<0x80){if((_0x4430a1-=0x1)<0x0)break;_0x158216[_0x4d012d('0xb2')](_0x22aaba);}else{if(_0x22aaba<0x800){if((_0x4430a1-=0x2)<0x0)break;_0x158216[_0x4d012d('0xb2')](_0x22aaba>>0x6|0xc0,0x3f&_0x22aaba|0x80);}else{if(_0x22aaba<0x10000){if((_0x4430a1-=0x3)<0x0)break;_0x158216[_0x4d012d('0xb2')](_0x22aaba>>0xc|0xe0,_0x22aaba>>0x6&0x3f|0x80,0x3f&_0x22aaba|0x80);}else{if(!(_0x22aaba<0x110000))throw new Error('Invalid\x20code\x20point');if((_0x4430a1-=0x4)<0x0)break;_0x158216[_0x4d012d('0xb2')](_0x22aaba>>0x12|0xf0,_0x22aaba>>0xc&0x3f|0x80,_0x22aaba>>0x6&0x3f|0x80,0x3f&_0x22aaba|0x80);}}}}return _0x158216;}function _0x5a7597(_0x167b22){var _0x3787cb=_0x3c3da7;return _0x199f32[_0x3787cb('0x491')](function(_0x1dad29){var _0x362555=_0x3787cb;if((_0x1dad29=(_0x1dad29=_0x1dad29[_0x362555('0x5c')]('=')[0x0])[_0x362555('0x959')]()['replace'](_0x45c7e5,''))[_0x362555('0x796')]<0x2)return'';for(;_0x1dad29[_0x362555('0x796')]%0x4!=0x0;)_0x1dad29+='=';return _0x1dad29;}(_0x167b22));}function _0x43fdaf(_0x30d7af,_0x2c0a83,_0x54af86,_0x269ad5){var _0x3f9d9d=_0x3c3da7;for(var _0x400923=0x0;_0x400923<_0x269ad5&&!(_0x400923+_0x54af86>=_0x2c0a83['length']||_0x400923>=_0x30d7af[_0x3f9d9d('0x796')]);++_0x400923)_0x2c0a83[_0x400923+_0x54af86]=_0x30d7af[_0x400923];return _0x400923;}function _0x41ee4d(_0x324c6f,_0x2e83a1){var _0x176545=_0x3c3da7;return _0x324c6f instanceof _0x2e83a1||null!=_0x324c6f&&null!=_0x324c6f[_0x176545('0x63e')]&&null!=_0x324c6f[_0x176545('0x63e')][_0x176545('0xce')]&&_0x324c6f[_0x176545('0x63e')]['name']===_0x2e83a1[_0x176545('0xce')];}function _0x4ab5f8(_0x61309b){return _0x61309b!=_0x61309b;}}[_0x188dbe('0x964')](this,_0x4bb7c5(_0x188dbe('0x7db'))[_0x188dbe('0x576')]));},{'base64-js':0x1,'buffer':0x2,'ieee754':0x4}],0x3:[function(_0x45ff77,_0x401924,_0x327731){var _0x56197d=_0x1c0e;'use strict';var _0x355a0a={'single_source_shortest_paths':function(_0x5b762c,_0x23e135,_0x4529a8){var _0x4c1297=_0x1c0e,_0x2c9aad={},_0xd8a37c={};_0xd8a37c[_0x23e135]=0x0;var _0x181064,_0xbe5e5f,_0x56b2f4,_0x1b90ce,_0x2b6f6e,_0x51755d,_0x4a8e56,_0x34c1f4=_0x355a0a[_0x4c1297('0x371')]['make']();for(_0x34c1f4[_0x4c1297('0xb2')](_0x23e135,0x0);!_0x34c1f4[_0x4c1297('0x9d0')]();)for(_0x56b2f4 in(_0xbe5e5f=(_0x181064=_0x34c1f4[_0x4c1297('0x6dc')]())[_0x4c1297('0x920')],_0x1b90ce=_0x181064[_0x4c1297('0x425')],_0x2b6f6e=_0x5b762c[_0xbe5e5f]||{}))_0x2b6f6e[_0x4c1297('0x1a8')](_0x56b2f4)&&(_0x51755d=_0x1b90ce+_0x2b6f6e[_0x56b2f4],_0x4a8e56=_0xd8a37c[_0x56b2f4],(void 0x0===_0xd8a37c[_0x56b2f4]||_0x4a8e56>_0x51755d)&&(_0xd8a37c[_0x56b2f4]=_0x51755d,_0x34c1f4[_0x4c1297('0xb2')](_0x56b2f4,_0x51755d),_0x2c9aad[_0x56b2f4]=_0xbe5e5f));if(void 0x0!==_0x4529a8&&void 0x0===_0xd8a37c[_0x4529a8]){var _0x5aee7c=[_0x4c1297('0x663'),_0x23e135,_0x4c1297('0x223'),_0x4529a8,'.'][_0x4c1297('0xc1')]('');throw new Error(_0x5aee7c);}return _0x2c9aad;},'extract_shortest_path_from_predecessor_list':function(_0x3ed9c5,_0x451c44){var _0x31e094=_0x1c0e;for(var _0x5892db=[],_0x1e05cc=_0x451c44;_0x1e05cc;)_0x5892db[_0x31e094('0xb2')](_0x1e05cc),_0x3ed9c5[_0x1e05cc],_0x1e05cc=_0x3ed9c5[_0x1e05cc];return _0x5892db[_0x31e094('0x653')](),_0x5892db;},'find_path':function(_0x568bf7,_0x2d4fa7,_0x4af870){var _0x4ca73f=_0x1c0e,_0xb35151=_0x355a0a[_0x4ca73f('0x2b')](_0x568bf7,_0x2d4fa7,_0x4af870);return _0x355a0a['extract_shortest_path_from_predecessor_list'](_0xb35151,_0x4af870);},'PriorityQueue':{'make':function(_0x39f55e){var _0x49c1ef=_0x1c0e,_0x24b8be,_0x224409=_0x355a0a[_0x49c1ef('0x371')],_0x55fc13={};for(_0x24b8be in(_0x39f55e=_0x39f55e||{},_0x224409))_0x224409[_0x49c1ef('0x1a8')](_0x24b8be)&&(_0x55fc13[_0x24b8be]=_0x224409[_0x24b8be]);return _0x55fc13[_0x49c1ef('0xace')]=[],_0x55fc13['sorter']=_0x39f55e[_0x49c1ef('0xcf3')]||_0x224409[_0x49c1ef('0x684')],_0x55fc13;},'default_sorter':function(_0x584dba,_0x5ecf4f){var _0x38da0e=_0x1c0e;return _0x584dba['cost']-_0x5ecf4f[_0x38da0e('0x425')];},'push':function(_0xeedb46,_0x2ce91d){var _0x16fd9b=_0x1c0e,_0x1e0b6a={'value':_0xeedb46,'cost':_0x2ce91d};this['queue'][_0x16fd9b('0xb2')](_0x1e0b6a),this[_0x16fd9b('0xace')][_0x16fd9b('0x193')](this[_0x16fd9b('0xcf3')]);},'pop':function(){var _0x5565b4=_0x1c0e;return this[_0x5565b4('0xace')][_0x5565b4('0x71d')]();},'empty':function(){var _0x4a2e67=_0x1c0e;return 0x0===this[_0x4a2e67('0xace')][_0x4a2e67('0x796')];}}};void 0x0!==_0x401924&&(_0x401924[_0x56197d('0xd7')]=_0x355a0a);},{}],0x4:[function(_0x108450,_0x1b0d3a,_0x2454fc){var _0x42e6d7=_0x1c0e;_0x2454fc[_0x42e6d7('0x7d5')]=function(_0x371b56,_0x38631f,_0x5731fc,_0x4dcdb3,_0x128a30){var _0x7335c3=_0x42e6d7,_0x59935c,_0x2f6244,_0x2ee68d=0x8*_0x128a30-_0x4dcdb3-0x1,_0x3ebed0=(0x1<<_0x2ee68d)-0x1,_0x224d43=_0x3ebed0>>0x1,_0x318f65=-0x7,_0x5ea7f2=_0x5731fc?_0x128a30-0x1:0x0,_0x3f303e=_0x5731fc?-0x1:0x1,_0x34fb9f=_0x371b56[_0x38631f+_0x5ea7f2];for(_0x5ea7f2+=_0x3f303e,_0x59935c=_0x34fb9f&(0x1<<-_0x318f65)-0x1,_0x34fb9f>>=-_0x318f65,_0x318f65+=_0x2ee68d;_0x318f65>0x0;_0x59935c=0x100*_0x59935c+_0x371b56[_0x38631f+_0x5ea7f2],_0x5ea7f2+=_0x3f303e,_0x318f65-=0x8);for(_0x2f6244=_0x59935c&(0x1<<-_0x318f65)-0x1,_0x59935c>>=-_0x318f65,_0x318f65+=_0x4dcdb3;_0x318f65>0x0;_0x2f6244=0x100*_0x2f6244+_0x371b56[_0x38631f+_0x5ea7f2],_0x5ea7f2+=_0x3f303e,_0x318f65-=0x8);if(0x0===_0x59935c)_0x59935c=0x1-_0x224d43;else{if(_0x59935c===_0x3ebed0)return _0x2f6244?NaN:0x1/0x0*(_0x34fb9f?-0x1:0x1);_0x2f6244+=Math[_0x7335c3('0x43e')](0x2,_0x4dcdb3),_0x59935c-=_0x224d43;}return(_0x34fb9f?-0x1:0x1)*_0x2f6244*Math[_0x7335c3('0x43e')](0x2,_0x59935c-_0x4dcdb3);},_0x2454fc[_0x42e6d7('0x99f')]=function(_0x4cb77f,_0xdb611a,_0x15e350,_0x9c2b4f,_0x2c2346,_0x1eb988){var _0x31eb56=_0x42e6d7,_0xf12ca5,_0x360ef9,_0x4db19e,_0x28634f=0x8*_0x1eb988-_0x2c2346-0x1,_0x1cb9b4=(0x1<<_0x28634f)-0x1,_0x5c9e78=_0x1cb9b4>>0x1,_0x468415=0x17===_0x2c2346?Math[_0x31eb56('0x43e')](0x2,-0x18)-Math[_0x31eb56('0x43e')](0x2,-0x4d):0x0,_0x16a920=_0x9c2b4f?0x0:_0x1eb988-0x1,_0x4ee7ad=_0x9c2b4f?0x1:-0x1,_0x42d1d9=_0xdb611a<0x0||0x0===_0xdb611a&&0x1/_0xdb611a<0x0?0x1:0x0;for(_0xdb611a=Math[_0x31eb56('0x72d')](_0xdb611a),isNaN(_0xdb611a)||_0xdb611a===0x1/0x0?(_0x360ef9=isNaN(_0xdb611a)?0x1:0x0,_0xf12ca5=_0x1cb9b4):(_0xf12ca5=Math[_0x31eb56('0x67')](Math[_0x31eb56('0x7f1')](_0xdb611a)/Math[_0x31eb56('0x3b6')]),_0xdb611a*(_0x4db19e=Math[_0x31eb56('0x43e')](0x2,-_0xf12ca5))<0x1&&(_0xf12ca5--,_0x4db19e*=0x2),(_0xdb611a+=_0xf12ca5+_0x5c9e78>=0x1?_0x468415/_0x4db19e:_0x468415*Math[_0x31eb56('0x43e')](0x2,0x1-_0x5c9e78))*_0x4db19e>=0x2&&(_0xf12ca5++,_0x4db19e/=0x2),_0xf12ca5+_0x5c9e78>=_0x1cb9b4?(_0x360ef9=0x0,_0xf12ca5=_0x1cb9b4):_0xf12ca5+_0x5c9e78>=0x1?(_0x360ef9=(_0xdb611a*_0x4db19e-0x1)*Math[_0x31eb56('0x43e')](0x2,_0x2c2346),_0xf12ca5+=_0x5c9e78):(_0x360ef9=_0xdb611a*Math['pow'](0x2,_0x5c9e78-0x1)*Math[_0x31eb56('0x43e')](0x2,_0x2c2346),_0xf12ca5=0x0));_0x2c2346>=0x8;_0x4cb77f[_0x15e350+_0x16a920]=0xff&_0x360ef9,_0x16a920+=_0x4ee7ad,_0x360ef9/=0x100,_0x2c2346-=0x8);for(_0xf12ca5=_0xf12ca5<<_0x2c2346|_0x360ef9,_0x28634f+=_0x2c2346;_0x28634f>0x0;_0x4cb77f[_0x15e350+_0x16a920]=0xff&_0xf12ca5,_0x16a920+=_0x4ee7ad,_0xf12ca5/=0x100,_0x28634f-=0x8);_0x4cb77f[_0x15e350+_0x16a920-_0x4ee7ad]|=0x80*_0x42d1d9;};},{}],0x5:[function(_0x4e6f75,_0x5aec02,_0x1f51f1){var _0x5df3fc=_0x1c0e,_0x78a5b8={}[_0x5df3fc('0x6e9')];_0x5aec02[_0x5df3fc('0xd7')]=Array['isArray']||function(_0x17a097){var _0x53e933=_0x5df3fc;return'[object\x20Array]'==_0x78a5b8[_0x53e933('0x964')](_0x17a097);};},{}],0x6:[function(_0x2af4ff,_0x24a2fd,_0x50d55){var _0x5e48a9=_0x1c0e,_0x1e08ff,_0x562d0d,_0x159fef=_0x24a2fd[_0x5e48a9('0xd7')]={};function _0x3a2f4e(){var _0x5dd6f1=_0x5e48a9;throw new Error(_0x5dd6f1('0x294'));}function _0x413ff1(){throw new Error('clearTimeout\x20has\x20not\x20been\x20defined');}function _0x2316f0(_0x177169){var _0x3f2390=_0x5e48a9;if(_0x1e08ff===setTimeout)return setTimeout(_0x177169,0x0);if((_0x1e08ff===_0x3a2f4e||!_0x1e08ff)&&setTimeout)return _0x1e08ff=setTimeout,setTimeout(_0x177169,0x0);try{return _0x1e08ff(_0x177169,0x0);}catch(_0x405a42){try{return _0x1e08ff['call'](null,_0x177169,0x0);}catch(_0x53ddd8){return _0x1e08ff[_0x3f2390('0x964')](this,_0x177169,0x0);}}}!function(){var _0x51585e=_0x5e48a9;try{_0x1e08ff=_0x51585e('0xa25')==typeof setTimeout?setTimeout:_0x3a2f4e;}catch(_0x4230ab){_0x1e08ff=_0x3a2f4e;}try{_0x562d0d=_0x51585e('0xa25')==typeof clearTimeout?clearTimeout:_0x413ff1;}catch(_0x5861a1){_0x562d0d=_0x413ff1;}}();var _0x2a1ce2,_0x389972=[],_0x4e5329=!0x1,_0x2a5e08=-0x1;function _0x12ac77(){var _0x5a3e21=_0x5e48a9;_0x4e5329&&_0x2a1ce2&&(_0x4e5329=!0x1,_0x2a1ce2[_0x5a3e21('0x796')]?_0x389972=_0x2a1ce2[_0x5a3e21('0x4c2')](_0x389972):_0x2a5e08=-0x1,_0x389972[_0x5a3e21('0x796')]&&_0x18d7ed());}function _0x18d7ed(){var _0x12e26e=_0x5e48a9;if(!_0x4e5329){var _0x189f72=_0x2316f0(_0x12ac77);_0x4e5329=!0x0;for(var _0x26c202=_0x389972[_0x12e26e('0x796')];_0x26c202;){for(_0x2a1ce2=_0x389972,_0x389972=[];++_0x2a5e08<_0x26c202;)_0x2a1ce2&&_0x2a1ce2[_0x2a5e08][_0x12e26e('0x962')]();_0x2a5e08=-0x1,_0x26c202=_0x389972[_0x12e26e('0x796')];}_0x2a1ce2=null,_0x4e5329=!0x1,function(_0x5e6b5f){var _0x3ae0f8=_0x12e26e;if(_0x562d0d===clearTimeout)return clearTimeout(_0x5e6b5f);if((_0x562d0d===_0x413ff1||!_0x562d0d)&&clearTimeout)return _0x562d0d=clearTimeout,clearTimeout(_0x5e6b5f);try{_0x562d0d(_0x5e6b5f);}catch(_0x3b6332){try{return _0x562d0d[_0x3ae0f8('0x964')](null,_0x5e6b5f);}catch(_0x3ade88){return _0x562d0d[_0x3ae0f8('0x964')](this,_0x5e6b5f);}}}(_0x189f72);}}function _0x4bbec7(_0x543460,_0xcdbd3c){var _0x14932a=_0x5e48a9;this[_0x14932a('0x93')]=_0x543460,this[_0x14932a('0x42d')]=_0xcdbd3c;}function _0x6a6cc(){}_0x159fef[_0x5e48a9('0x3d7')]=function(_0x4ecadf){var _0xb4e347=_0x5e48a9,_0x461d83=new Array(arguments[_0xb4e347('0x796')]-0x1);if(arguments[_0xb4e347('0x796')]>0x1)for(var _0x4b8479=0x1;_0x4b8479>>0x7-_0x771389%0x8&0x1);},'put':function(_0x542e00,_0x3b3d9e){var _0x283c52=_0x1c0e;for(var _0x5cbcb3=0x0;_0x5cbcb3<_0x3b3d9e;_0x5cbcb3++)this[_0x283c52('0x19d')](0x1==(_0x542e00>>>_0x3b3d9e-_0x5cbcb3-0x1&0x1));},'getLengthInBits':function(){var _0x2ef00a=_0x1c0e;return this[_0x2ef00a('0x796')];},'putBit':function(_0x51a239){var _0x213caa=_0x1c0e,_0xdb863=Math[_0x213caa('0x67')](this[_0x213caa('0x796')]/0x8);this[_0x213caa('0x7db')][_0x213caa('0x796')]<=_0xdb863&&this[_0x213caa('0x7db')][_0x213caa('0xb2')](0x0),_0x51a239&&(this[_0x213caa('0x7db')][_0xdb863]|=0x80>>>this[_0x213caa('0x796')]%0x8),this[_0x213caa('0x796')]++;}},_0x2b9fa7[_0x4c3e2e('0xd7')]=_0x4782ba;},{}],0xc:[function(_0x1762de,_0x50c07e,_0x5830df){var _0x1a45c7=_0x1c0e,_0x3d2467=_0x1762de(_0x1a45c7('0x8c9'));function _0x558b9f(_0x1bb6e8){var _0x150fb8=_0x1a45c7;if(!_0x1bb6e8||_0x1bb6e8<0x1)throw new Error(_0x150fb8('0x39e'));this[_0x150fb8('0x2f9')]=_0x1bb6e8,this['data']=_0x3d2467['alloc'](_0x1bb6e8*_0x1bb6e8),this[_0x150fb8('0xc3e')]=_0x3d2467[_0x150fb8('0xd97')](_0x1bb6e8*_0x1bb6e8);}_0x558b9f[_0x1a45c7('0x539')][_0x1a45c7('0x7f8')]=function(_0xa2f5ff,_0x1d1e65,_0x56c0dd,_0x2e6592){var _0x540fcf=_0x1a45c7,_0x403236=_0xa2f5ff*this[_0x540fcf('0x2f9')]+_0x1d1e65;this[_0x540fcf('0x38')][_0x403236]=_0x56c0dd,_0x2e6592&&(this[_0x540fcf('0xc3e')][_0x403236]=!0x0);},_0x558b9f[_0x1a45c7('0x539')][_0x1a45c7('0xda6')]=function(_0x5eec6f,_0x1fd500){var _0x48d818=_0x1a45c7;return this['data'][_0x5eec6f*this[_0x48d818('0x2f9')]+_0x1fd500];},_0x558b9f[_0x1a45c7('0x539')][_0x1a45c7('0x483')]=function(_0x3d730b,_0x13eec8,_0x31de98){var _0x2b424b=_0x1a45c7;this[_0x2b424b('0x38')][_0x3d730b*this['size']+_0x13eec8]^=_0x31de98;},_0x558b9f[_0x1a45c7('0x539')][_0x1a45c7('0x336')]=function(_0x147f58,_0x270224){var _0x1e71f0=_0x1a45c7;return this['reservedBit'][_0x147f58*this[_0x1e71f0('0x2f9')]+_0x270224];},_0x50c07e[_0x1a45c7('0xd7')]=_0x558b9f;},{'../utils/buffer':0x22}],0xd:[function(_0x427de7,_0x39e838,_0x1c43ea){var _0x312c1e=_0x1c0e,_0x2131a8=_0x427de7('../utils/buffer'),_0x15cc12=_0x427de7('./mode');function _0x5c87ea(_0x3e4930){var _0x1ae693=_0x1c0e;this[_0x1ae693('0x399')]=_0x15cc12[_0x1ae693('0x2b9')],this[_0x1ae693('0x38')]=_0x2131a8[_0x1ae693('0x40e')](_0x3e4930);}_0x5c87ea['getBitsLength']=function(_0x458dba){return 0x8*_0x458dba;},_0x5c87ea['prototype']['getLength']=function(){var _0x32cda5=_0x1c0e;return this[_0x32cda5('0x38')][_0x32cda5('0x796')];},_0x5c87ea['prototype'][_0x312c1e('0xc52')]=function(){var _0x360d34=_0x312c1e;return _0x5c87ea[_0x360d34('0xc52')](this[_0x360d34('0x38')][_0x360d34('0x796')]);},_0x5c87ea[_0x312c1e('0x539')][_0x312c1e('0x99f')]=function(_0x5594a6){for(var _0x3d1a03=0x0,_0x1dc32d=this['data']['length'];_0x3d1a03<_0x1dc32d;_0x3d1a03++)_0x5594a6['put'](this['data'][_0x3d1a03],0x8);},_0x39e838[_0x312c1e('0xd7')]=_0x5c87ea;},{'../utils/buffer':0x22,'./mode':0x15}],0xe:[function(_0x987b11,_0x2e78c8,_0x209642){var _0x216f15=_0x1c0e,_0x215f7c=_0x987b11(_0x216f15('0xb0c')),_0x48547e=[0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x1,0x2,0x2,0x1,0x2,0x2,0x4,0x1,0x2,0x4,0x4,0x2,0x4,0x4,0x4,0x2,0x4,0x6,0x5,0x2,0x4,0x6,0x6,0x2,0x5,0x8,0x8,0x4,0x5,0x8,0x8,0x4,0x5,0x8,0xb,0x4,0x8,0xa,0xb,0x4,0x9,0xc,0x10,0x4,0x9,0x10,0x10,0x6,0xa,0xc,0x12,0x6,0xa,0x11,0x10,0x6,0xb,0x10,0x13,0x6,0xd,0x12,0x15,0x7,0xe,0x15,0x19,0x8,0x10,0x14,0x19,0x8,0x11,0x17,0x19,0x9,0x11,0x17,0x22,0x9,0x12,0x19,0x1e,0xa,0x14,0x1b,0x20,0xc,0x15,0x1d,0x23,0xc,0x17,0x22,0x25,0xc,0x19,0x22,0x28,0xd,0x1a,0x23,0x2a,0xe,0x1c,0x26,0x2d,0xf,0x1d,0x28,0x30,0x10,0x1f,0x2b,0x33,0x11,0x21,0x2d,0x36,0x12,0x23,0x30,0x39,0x13,0x25,0x33,0x3c,0x13,0x26,0x35,0x3f,0x14,0x28,0x38,0x42,0x15,0x2b,0x3b,0x46,0x16,0x2d,0x3e,0x4a,0x18,0x2f,0x41,0x4d,0x19,0x31,0x44,0x51],_0x147cc9=[0x7,0xa,0xd,0x11,0xa,0x10,0x16,0x1c,0xf,0x1a,0x24,0x2c,0x14,0x24,0x34,0x40,0x1a,0x30,0x48,0x58,0x24,0x40,0x60,0x70,0x28,0x48,0x6c,0x82,0x30,0x58,0x84,0x9c,0x3c,0x6e,0xa0,0xc0,0x48,0x82,0xc0,0xe0,0x50,0x96,0xe0,0x108,0x60,0xb0,0x104,0x134,0x68,0xc6,0x120,0x160,0x78,0xd8,0x140,0x180,0x84,0xf0,0x168,0x1b0,0x90,0x118,0x198,0x1e0,0xa8,0x134,0x1c0,0x214,0xb4,0x152,0x1f8,0x24c,0xc4,0x16c,0x222,0x28a,0xe0,0x1a0,0x258,0x2bc,0xe0,0x1ba,0x284,0x2ee,0xfc,0x1dc,0x2b2,0x330,0x10e,0x1f8,0x2ee,0x384,0x12c,0x230,0x32a,0x3c0,0x138,0x24c,0x366,0x41a,0x150,0x284,0x3b8,0x456,0x168,0x2bc,0x3fc,0x4b0,0x186,0x2d8,0x41a,0x4ec,0x1a4,0x310,0x474,0x546,0x1c2,0x32c,0x4b0,0x5a0,0x1e0,0x364,0x50a,0x5fa,0x1fe,0x39c,0x546,0x654,0x21c,0x3d4,0x5a0,0x6ae,0x23a,0x40c,0x5fa,0x708,0x23a,0x428,0x636,0x762,0x258,0x460,0x690,0x7bc,0x276,0x4b4,0x6ea,0x834,0x294,0x4ec,0x744,0x8ac,0x2d0,0x524,0x79e,0x906,0x2ee,0x55c,0x7f8,0x97e];_0x209642[_0x216f15('0xc00')]=function(_0x3e29c4,_0x4feebf){switch(_0x4feebf){case _0x215f7c['L']:return _0x48547e[0x4*(_0x3e29c4-0x1)+0x0];case _0x215f7c['M']:return _0x48547e[0x4*(_0x3e29c4-0x1)+0x1];case _0x215f7c['Q']:return _0x48547e[0x4*(_0x3e29c4-0x1)+0x2];case _0x215f7c['H']:return _0x48547e[0x4*(_0x3e29c4-0x1)+0x3];default:return;}},_0x209642[_0x216f15('0x95d')]=function(_0x20d81c,_0x43842a){switch(_0x43842a){case _0x215f7c['L']:return _0x147cc9[0x4*(_0x20d81c-0x1)+0x0];case _0x215f7c['M']:return _0x147cc9[0x4*(_0x20d81c-0x1)+0x1];case _0x215f7c['Q']:return _0x147cc9[0x4*(_0x20d81c-0x1)+0x2];case _0x215f7c['H']:return _0x147cc9[0x4*(_0x20d81c-0x1)+0x3];default:return;}};},{'./error-correction-level':0xf}],0xf:[function(_0x1cb640,_0x542e83,_0x42fabf){var _0x222742=_0x1c0e;_0x42fabf['L']={'bit':0x1},_0x42fabf['M']={'bit':0x0},_0x42fabf['Q']={'bit':0x3},_0x42fabf['H']={'bit':0x2},_0x42fabf[_0x222742('0x42b')]=function(_0x3d6487){var _0x360fad=_0x222742;return _0x3d6487&&void 0x0!==_0x3d6487[_0x360fad('0xa53')]&&_0x3d6487[_0x360fad('0xa53')]>=0x0&&_0x3d6487['bit']<0x4;},_0x42fabf[_0x222742('0x40e')]=function(_0x554266,_0x8dfaac){var _0x38b12e=_0x222742;if(_0x42fabf[_0x38b12e('0x42b')](_0x554266))return _0x554266;try{return function(_0x21e38b){var _0x35d368=_0x38b12e;if(_0x35d368('0x3fd')!=typeof _0x21e38b)throw new Error(_0x35d368('0xd46'));switch(_0x21e38b[_0x35d368('0x2f5')]()){case'l':case _0x35d368('0x1cd'):return _0x42fabf['L'];case'm':case _0x35d368('0xaa0'):return _0x42fabf['M'];case'q':case _0x35d368('0xa37'):return _0x42fabf['Q'];case'h':case _0x35d368('0x4b4'):return _0x42fabf['H'];default:throw new Error(_0x35d368('0x30a')+_0x21e38b);}}(_0x554266);}catch(_0x354878){return _0x8dfaac;}};},{}],0x10:[function(_0x3cce7c,_0x1b5991,_0x1350b2){var _0x1c3f7b=_0x1c0e,_0x35e87e=_0x3cce7c(_0x1c3f7b('0x25c'))[_0x1c3f7b('0xd21')];_0x1350b2[_0x1c3f7b('0x286')]=function(_0x20c6ae){var _0x318194=_0x35e87e(_0x20c6ae);return[[0x0,0x0],[_0x318194-0x7,0x0],[0x0,_0x318194-0x7]];};},{'./utils':0x1c}],0x11:[function(_0x53ad61,_0x59f3a6,_0x4cbc7e){var _0x3e20e3=_0x1c0e,_0xc786f6=_0x53ad61(_0x3e20e3('0x25c')),_0x501709=_0xc786f6[_0x3e20e3('0xa9')](0x537);_0x4cbc7e['getEncodedBits']=function(_0x727fd4,_0x59d098){var _0x574ba5=_0x3e20e3;for(var _0x432a91=_0x727fd4['bit']<<0x3|_0x59d098,_0x395c68=_0x432a91<<0xa;_0xc786f6['getBCHDigit'](_0x395c68)-_0x501709>=0x0;)_0x395c68^=0x537<<_0xc786f6[_0x574ba5('0xa9')](_0x395c68)-_0x501709;return 0x5412^(_0x432a91<<0xa|_0x395c68);};},{'./utils':0x1c}],0x12:[function(_0x22817f,_0x2cbcef,_0x1fcc8f){var _0x39ebd3=_0x1c0e,_0x11f69d=_0x22817f(_0x39ebd3('0x8c9')),_0x1edec7=_0x11f69d[_0x39ebd3('0xd97')](0x200),_0x382387=_0x11f69d[_0x39ebd3('0xd97')](0x100);!function(){for(var _0x5dc41c=0x1,_0x208860=0x0;_0x208860<0xff;_0x208860++)_0x1edec7[_0x208860]=_0x5dc41c,_0x382387[_0x5dc41c]=_0x208860,0x100&(_0x5dc41c<<=0x1)&&(_0x5dc41c^=0x11d);for(_0x208860=0xff;_0x208860<0x200;_0x208860++)_0x1edec7[_0x208860]=_0x1edec7[_0x208860-0xff];}(),_0x1fcc8f[_0x39ebd3('0x7f1')]=function(_0x41bbb6){var _0x517b3e=_0x39ebd3;if(_0x41bbb6<0x1)throw new Error(_0x517b3e('0x408')+_0x41bbb6+')');return _0x382387[_0x41bbb6];},_0x1fcc8f[_0x39ebd3('0x444')]=function(_0x5ade88){return _0x1edec7[_0x5ade88];},_0x1fcc8f[_0x39ebd3('0x2fe')]=function(_0x3e1c26,_0x16d5c6){return 0x0===_0x3e1c26||0x0===_0x16d5c6?0x0:_0x1edec7[_0x382387[_0x3e1c26]+_0x382387[_0x16d5c6]];};},{'../utils/buffer':0x22}],0x13:[function(_0x544992,_0x32a8e1,_0x1dd4f2){var _0x1a58b4=_0x1c0e,_0x4bc937=_0x544992(_0x1a58b4('0x908')),_0x5c5a05=_0x544992(_0x1a58b4('0x25c'));function _0x18bb06(_0x3ec81e){var _0x4cf3c9=_0x1a58b4;this[_0x4cf3c9('0x399')]=_0x4bc937[_0x4cf3c9('0x787')],this[_0x4cf3c9('0x38')]=_0x3ec81e;}_0x18bb06['getBitsLength']=function(_0x5c5820){return 0xd*_0x5c5820;},_0x18bb06['prototype'][_0x1a58b4('0x9c1')]=function(){var _0x25f7b9=_0x1a58b4;return this[_0x25f7b9('0x38')]['length'];},_0x18bb06[_0x1a58b4('0x539')][_0x1a58b4('0xc52')]=function(){var _0x4a4a09=_0x1a58b4;return _0x18bb06[_0x4a4a09('0xc52')](this[_0x4a4a09('0x38')]['length']);},_0x18bb06[_0x1a58b4('0x539')][_0x1a58b4('0x99f')]=function(_0x3a930f){var _0x793d6b=_0x1a58b4,_0x3b85b6;for(_0x3b85b6=0x0;_0x3b85b6=0x8140&&_0x4e75df<=0x9ffc)_0x4e75df-=0x8140;else{if(!(_0x4e75df>=0xe040&&_0x4e75df<=0xebbf))throw new Error('Invalid\x20SJIS\x20character:\x20'+this[_0x793d6b('0x38')][_0x3b85b6]+_0x793d6b('0x16e'));_0x4e75df-=0xc140;}_0x4e75df=0xc0*(_0x4e75df>>>0x8&0xff)+(0xff&_0x4e75df),_0x3a930f[_0x793d6b('0x4ca')](_0x4e75df,0xd);}},_0x32a8e1[_0x1a58b4('0xd7')]=_0x18bb06;},{'./mode':0x15,'./utils':0x1c}],0x14:[function(_0x35dbb5,_0xf69103,_0x36cf7a){var _0x4d57be=_0x1c0e;_0x36cf7a[_0x4d57be('0x6fd')]={'PATTERN000':0x0,'PATTERN001':0x1,'PATTERN010':0x2,'PATTERN011':0x3,'PATTERN100':0x4,'PATTERN101':0x5,'PATTERN110':0x6,'PATTERN111':0x7};var _0x246a7d=0x3,_0x4adfbd=0x3,_0x559d3e=0x28,_0x2bbee6=0xa;function _0x271157(_0x4f137b,_0x563fd2,_0x271ce3){var _0x329fad=_0x4d57be;switch(_0x4f137b){case _0x36cf7a[_0x329fad('0x6fd')][_0x329fad('0x104')]:return(_0x563fd2+_0x271ce3)%0x2==0x0;case _0x36cf7a[_0x329fad('0x6fd')]['PATTERN001']:return _0x563fd2%0x2==0x0;case _0x36cf7a[_0x329fad('0x6fd')][_0x329fad('0xd0a')]:return _0x271ce3%0x3==0x0;case _0x36cf7a['Patterns']['PATTERN011']:return(_0x563fd2+_0x271ce3)%0x3==0x0;case _0x36cf7a[_0x329fad('0x6fd')][_0x329fad('0x75b')]:return(Math[_0x329fad('0x67')](_0x563fd2/0x2)+Math[_0x329fad('0x67')](_0x271ce3/0x3))%0x2==0x0;case _0x36cf7a['Patterns']['PATTERN101']:return _0x563fd2*_0x271ce3%0x2+_0x563fd2*_0x271ce3%0x3==0x0;case _0x36cf7a[_0x329fad('0x6fd')][_0x329fad('0x500')]:return(_0x563fd2*_0x271ce3%0x2+_0x563fd2*_0x271ce3%0x3)%0x2==0x0;case _0x36cf7a[_0x329fad('0x6fd')][_0x329fad('0x56f')]:return(_0x563fd2*_0x271ce3%0x3+(_0x563fd2+_0x271ce3)%0x2)%0x2==0x0;default:throw new Error('bad\x20maskPattern:'+_0x4f137b);}}_0x36cf7a['isValid']=function(_0x5b94d3){return null!=_0x5b94d3&&''!==_0x5b94d3&&!isNaN(_0x5b94d3)&&_0x5b94d3>=0x0&&_0x5b94d3<=0x7;},_0x36cf7a[_0x4d57be('0x40e')]=function(_0x479d44){var _0x5c28b1=_0x4d57be;return _0x36cf7a[_0x5c28b1('0x42b')](_0x479d44)?parseInt(_0x479d44,0xa):void 0x0;},_0x36cf7a[_0x4d57be('0xa17')]=function(_0x47fa35){var _0x57aa0f=_0x4d57be;for(var _0x29efbc=_0x47fa35[_0x57aa0f('0x2f9')],_0x38cde2=0x0,_0x51f7ce=0x0,_0x49a08e=0x0,_0x488883=null,_0x50a08c=null,_0x109cc7=0x0;_0x109cc7<_0x29efbc;_0x109cc7++){_0x51f7ce=_0x49a08e=0x0,_0x488883=_0x50a08c=null;for(var _0x4accff=0x0;_0x4accff<_0x29efbc;_0x4accff++){var _0x134b11=_0x47fa35[_0x57aa0f('0xda6')](_0x109cc7,_0x4accff);_0x134b11===_0x488883?_0x51f7ce++:(_0x51f7ce>=0x5&&(_0x38cde2+=_0x246a7d+(_0x51f7ce-0x5)),_0x488883=_0x134b11,_0x51f7ce=0x1),(_0x134b11=_0x47fa35[_0x57aa0f('0xda6')](_0x4accff,_0x109cc7))===_0x50a08c?_0x49a08e++:(_0x49a08e>=0x5&&(_0x38cde2+=_0x246a7d+(_0x49a08e-0x5)),_0x50a08c=_0x134b11,_0x49a08e=0x1);}_0x51f7ce>=0x5&&(_0x38cde2+=_0x246a7d+(_0x51f7ce-0x5)),_0x49a08e>=0x5&&(_0x38cde2+=_0x246a7d+(_0x49a08e-0x5));}return _0x38cde2;},_0x36cf7a['getPenaltyN2']=function(_0x916f25){var _0x776077=_0x4d57be;for(var _0x5610fd=_0x916f25[_0x776077('0x2f9')],_0x5545ba=0x0,_0x17ecd9=0x0;_0x17ecd9<_0x5610fd-0x1;_0x17ecd9++)for(var _0x2fb41d=0x0;_0x2fb41d<_0x5610fd-0x1;_0x2fb41d++){var _0x16917e=_0x916f25[_0x776077('0xda6')](_0x17ecd9,_0x2fb41d)+_0x916f25[_0x776077('0xda6')](_0x17ecd9,_0x2fb41d+0x1)+_0x916f25['get'](_0x17ecd9+0x1,_0x2fb41d)+_0x916f25[_0x776077('0xda6')](_0x17ecd9+0x1,_0x2fb41d+0x1);0x4!==_0x16917e&&0x0!==_0x16917e||_0x5545ba++;}return _0x5545ba*_0x4adfbd;},_0x36cf7a['getPenaltyN3']=function(_0x1578e0){var _0xa95b61=_0x4d57be;for(var _0x5b86f8=_0x1578e0['size'],_0x1d5669=0x0,_0xb73d9b=0x0,_0x7e8b27=0x0,_0x3f1e29=0x0;_0x3f1e29<_0x5b86f8;_0x3f1e29++){_0xb73d9b=_0x7e8b27=0x0;for(var _0x5b7562=0x0;_0x5b7562<_0x5b86f8;_0x5b7562++)_0xb73d9b=_0xb73d9b<<0x1&0x7ff|_0x1578e0['get'](_0x3f1e29,_0x5b7562),_0x5b7562>=0xa&&(0x5d0===_0xb73d9b||0x5d===_0xb73d9b)&&_0x1d5669++,_0x7e8b27=_0x7e8b27<<0x1&0x7ff|_0x1578e0[_0xa95b61('0xda6')](_0x5b7562,_0x3f1e29),_0x5b7562>=0xa&&(0x5d0===_0x7e8b27||0x5d===_0x7e8b27)&&_0x1d5669++;}return _0x1d5669*_0x559d3e;},_0x36cf7a[_0x4d57be('0x66b')]=function(_0x4b5d3d){var _0x2e50c2=_0x4d57be;for(var _0x1bcc15=0x0,_0x46718a=_0x4b5d3d[_0x2e50c2('0x38')][_0x2e50c2('0x796')],_0x2a6222=0x0;_0x2a6222<_0x46718a;_0x2a6222++)_0x1bcc15+=_0x4b5d3d[_0x2e50c2('0x38')][_0x2a6222];return Math['abs'](Math['ceil'](0x64*_0x1bcc15/_0x46718a/0x5)-0xa)*_0x2bbee6;},_0x36cf7a[_0x4d57be('0x380')]=function(_0x313d03,_0x3cbb91){var _0x1788c1=_0x4d57be;for(var _0x6d40a0=_0x3cbb91[_0x1788c1('0x2f9')],_0xec0479=0x0;_0xec0479<_0x6d40a0;_0xec0479++)for(var _0x2a60e5=0x0;_0x2a60e5<_0x6d40a0;_0x2a60e5++)_0x3cbb91['isReserved'](_0x2a60e5,_0xec0479)||_0x3cbb91[_0x1788c1('0x483')](_0x2a60e5,_0xec0479,_0x271157(_0x313d03,_0x2a60e5,_0xec0479));},_0x36cf7a['getBestMask']=function(_0x5c966d,_0x32348d){var _0x44e817=_0x4d57be;for(var _0x46536d=Object[_0x44e817('0xabc')](_0x36cf7a[_0x44e817('0x6fd')])[_0x44e817('0x796')],_0xd33279=0x0,_0x3a0256=0x1/0x0,_0x5962e6=0x0;_0x5962e6<_0x46536d;_0x5962e6++){_0x32348d(_0x5962e6),_0x36cf7a[_0x44e817('0x380')](_0x5962e6,_0x5c966d);var _0x203983=_0x36cf7a['getPenaltyN1'](_0x5c966d)+_0x36cf7a[_0x44e817('0x870')](_0x5c966d)+_0x36cf7a['getPenaltyN3'](_0x5c966d)+_0x36cf7a['getPenaltyN4'](_0x5c966d);_0x36cf7a[_0x44e817('0x380')](_0x5962e6,_0x5c966d),_0x203983<_0x3a0256&&(_0x3a0256=_0x203983,_0xd33279=_0x5962e6);}return _0xd33279;};},{}],0x15:[function(_0x3491cb,_0x2d5390,_0x2ee157){var _0x309e77=_0x1c0e,_0x3a0084=_0x3491cb('./version-check'),_0x52efee=_0x3491cb(_0x309e77('0x71a'));_0x2ee157[_0x309e77('0x314')]={'id':_0x309e77('0x432'),'bit':0x1,'ccBits':[0xa,0xc,0xe]},_0x2ee157[_0x309e77('0x745')]={'id':'Alphanumeric','bit':0x2,'ccBits':[0x9,0xb,0xd]},_0x2ee157['BYTE']={'id':_0x309e77('0x258'),'bit':0x4,'ccBits':[0x8,0x10,0x10]},_0x2ee157[_0x309e77('0x787')]={'id':_0x309e77('0xac9'),'bit':0x8,'ccBits':[0x8,0xa,0xc]},_0x2ee157[_0x309e77('0x9db')]={'bit':-0x1},_0x2ee157[_0x309e77('0xa09')]=function(_0x183df1,_0x53d057){var _0x54bf2c=_0x309e77;if(!_0x183df1[_0x54bf2c('0x69b')])throw new Error(_0x54bf2c('0x8d5')+_0x183df1);if(!_0x3a0084[_0x54bf2c('0x42b')](_0x53d057))throw new Error(_0x54bf2c('0xa12')+_0x53d057);return _0x53d057>=0x1&&_0x53d057<0xa?_0x183df1[_0x54bf2c('0x69b')][0x0]:_0x53d057<0x1b?_0x183df1['ccBits'][0x1]:_0x183df1[_0x54bf2c('0x69b')][0x2];},_0x2ee157[_0x309e77('0x393')]=function(_0x3742dd){var _0x538632=_0x309e77;return _0x52efee[_0x538632('0xad9')](_0x3742dd)?_0x2ee157[_0x538632('0x314')]:_0x52efee[_0x538632('0x156')](_0x3742dd)?_0x2ee157[_0x538632('0x745')]:_0x52efee[_0x538632('0xd56')](_0x3742dd)?_0x2ee157[_0x538632('0x787')]:_0x2ee157[_0x538632('0x2b9')];},_0x2ee157['toString']=function(_0x4e0397){var _0x13a629=_0x309e77;if(_0x4e0397&&_0x4e0397['id'])return _0x4e0397['id'];throw new Error(_0x13a629('0x89b'));},_0x2ee157[_0x309e77('0x42b')]=function(_0x3e3e7a){var _0x1e01f9=_0x309e77;return _0x3e3e7a&&_0x3e3e7a['bit']&&_0x3e3e7a[_0x1e01f9('0x69b')];},_0x2ee157[_0x309e77('0x40e')]=function(_0x252ec9,_0x3c6b40){var _0x312905=_0x309e77;if(_0x2ee157[_0x312905('0x42b')](_0x252ec9))return _0x252ec9;try{return function(_0x5564ca){var _0x5d52c9=_0x312905;if(_0x5d52c9('0x3fd')!=typeof _0x5564ca)throw new Error('Param\x20is\x20not\x20a\x20string');switch(_0x5564ca[_0x5d52c9('0x2f5')]()){case _0x5d52c9('0x508'):return _0x2ee157[_0x5d52c9('0x314')];case'alphanumeric':return _0x2ee157['ALPHANUMERIC'];case _0x5d52c9('0x2e3'):return _0x2ee157['KANJI'];case _0x5d52c9('0x907'):return _0x2ee157['BYTE'];default:throw new Error(_0x5d52c9('0x1ad')+_0x5564ca);}}(_0x252ec9);}catch(_0x3aceba){return _0x3c6b40;}};},{'./regex':0x1a,'./version-check':0x1d}],0x16:[function(_0x307416,_0x2b96eb,_0x5bc7b2){var _0x537558=_0x1c0e,_0x14593c=_0x307416(_0x537558('0x908'));function _0x591e63(_0x354848){var _0x33936b=_0x537558;this[_0x33936b('0x399')]=_0x14593c[_0x33936b('0x314')],this[_0x33936b('0x38')]=_0x354848[_0x33936b('0x6e9')]();}_0x591e63[_0x537558('0xc52')]=function(_0x3a86bf){var _0x4139fa=_0x537558;return 0xa*Math[_0x4139fa('0x67')](_0x3a86bf/0x3)+(_0x3a86bf%0x3?_0x3a86bf%0x3*0x3+0x1:0x0);},_0x591e63[_0x537558('0x539')][_0x537558('0x9c1')]=function(){var _0x162a81=_0x537558;return this[_0x162a81('0x38')][_0x162a81('0x796')];},_0x591e63[_0x537558('0x539')][_0x537558('0xc52')]=function(){var _0x118c9b=_0x537558;return _0x591e63[_0x118c9b('0xc52')](this[_0x118c9b('0x38')][_0x118c9b('0x796')]);},_0x591e63[_0x537558('0x539')][_0x537558('0x99f')]=function(_0x27bb7b){var _0x32ea38=_0x537558,_0xe930a1,_0x51c57a,_0x3d2dd1;for(_0xe930a1=0x0;_0xe930a1+0x3<=this['data'][_0x32ea38('0x796')];_0xe930a1+=0x3)_0x51c57a=this[_0x32ea38('0x38')][_0x32ea38('0x688')](_0xe930a1,0x3),_0x3d2dd1=parseInt(_0x51c57a,0xa),_0x27bb7b[_0x32ea38('0x4ca')](_0x3d2dd1,0xa);var _0x169bdd=this[_0x32ea38('0x38')][_0x32ea38('0x796')]-_0xe930a1;_0x169bdd>0x0&&(_0x51c57a=this['data'][_0x32ea38('0x688')](_0xe930a1),_0x3d2dd1=parseInt(_0x51c57a,0xa),_0x27bb7b['put'](_0x3d2dd1,0x3*_0x169bdd+0x1));},_0x2b96eb[_0x537558('0xd7')]=_0x591e63;},{'./mode':0x15}],0x17:[function(_0x38216c,_0x1fed70,_0x5b9840){var _0x4e08ea=_0x1c0e,_0x24f5ea=_0x38216c(_0x4e08ea('0x8c9')),_0x6a4ee3=_0x38216c('./galois-field');_0x5b9840[_0x4e08ea('0x2fe')]=function(_0x2f6ae3,_0x356717){var _0x21843d=_0x4e08ea;for(var _0x1bbd54=_0x24f5ea[_0x21843d('0xd97')](_0x2f6ae3[_0x21843d('0x796')]+_0x356717[_0x21843d('0x796')]-0x1),_0x5d25d6=0x0;_0x5d25d6<_0x2f6ae3[_0x21843d('0x796')];_0x5d25d6++)for(var _0x245aee=0x0;_0x245aee<_0x356717['length'];_0x245aee++)_0x1bbd54[_0x5d25d6+_0x245aee]^=_0x6a4ee3[_0x21843d('0x2fe')](_0x2f6ae3[_0x5d25d6],_0x356717[_0x245aee]);return _0x1bbd54;},_0x5b9840[_0x4e08ea('0x2')]=function(_0x432287,_0x994662){var _0x3fdc65=_0x4e08ea;for(var _0x12492d=_0x24f5ea['from'](_0x432287);_0x12492d[_0x3fdc65('0x796')]-_0x994662[_0x3fdc65('0x796')]>=0x0;){for(var _0x31905c=_0x12492d[0x0],_0x51aecb=0x0;_0x51aecb<_0x994662[_0x3fdc65('0x796')];_0x51aecb++)_0x12492d[_0x51aecb]^=_0x6a4ee3[_0x3fdc65('0x2fe')](_0x994662[_0x51aecb],_0x31905c);for(var _0x333a68=0x0;_0x333a68<_0x12492d[_0x3fdc65('0x796')]&&0x0===_0x12492d[_0x333a68];)_0x333a68++;_0x12492d=_0x12492d[_0x3fdc65('0x5fe')](_0x333a68);}return _0x12492d;},_0x5b9840[_0x4e08ea('0xbff')]=function(_0x4c7217){var _0x33d587=_0x4e08ea;for(var _0x37bb78=_0x24f5ea['from']([0x1]),_0x3ddb6e=0x0;_0x3ddb6e<_0x4c7217;_0x3ddb6e++)_0x37bb78=_0x5b9840['mul'](_0x37bb78,[0x1,_0x6a4ee3[_0x33d587('0x444')](_0x3ddb6e)]);return _0x37bb78;};},{'../utils/buffer':0x22,'./galois-field':0x12}],0x18:[function(_0x4a14cd,_0x5b67a7,_0x303cb9){var _0x28db91=_0x1c0e,_0x15b572=_0x4a14cd('../utils/buffer'),_0x168fca=_0x4a14cd(_0x28db91('0x25c')),_0x172b95=_0x4a14cd(_0x28db91('0xb0c')),_0x3659ef=_0x4a14cd(_0x28db91('0xda4')),_0x30022c=_0x4a14cd(_0x28db91('0x5fb')),_0x1fa5b4=_0x4a14cd(_0x28db91('0x3a7')),_0x3d2c20=_0x4a14cd(_0x28db91('0xbd1')),_0x3c36f5=_0x4a14cd(_0x28db91('0xb63')),_0x577e72=_0x4a14cd(_0x28db91('0xaf7')),_0x6a3694=_0x4a14cd(_0x28db91('0xae7')),_0x37bb7b=_0x4a14cd('./version'),_0x1dbb5d=_0x4a14cd(_0x28db91('0x479')),_0x189df7=_0x4a14cd('./mode'),_0x2e81df=_0x4a14cd(_0x28db91('0x92f')),_0x1e9f2b=_0x4a14cd(_0x28db91('0x9f4'));function _0x535176(_0x171950,_0x5396d4,_0x5d380c){var _0x1cad42=_0x28db91,_0x4ce6aa,_0x329d20,_0xb4cc41=_0x171950[_0x1cad42('0x2f9')],_0xaab7df=_0x1dbb5d[_0x1cad42('0x696')](_0x5396d4,_0x5d380c);for(_0x4ce6aa=0x0;_0x4ce6aa<0xf;_0x4ce6aa++)_0x329d20=0x1==(_0xaab7df>>_0x4ce6aa&0x1),_0x4ce6aa<0x6?_0x171950[_0x1cad42('0x7f8')](_0x4ce6aa,0x8,_0x329d20,!0x0):_0x4ce6aa<0x8?_0x171950[_0x1cad42('0x7f8')](_0x4ce6aa+0x1,0x8,_0x329d20,!0x0):_0x171950[_0x1cad42('0x7f8')](_0xb4cc41-0xf+_0x4ce6aa,0x8,_0x329d20,!0x0),_0x4ce6aa<0x8?_0x171950['set'](0x8,_0xb4cc41-_0x4ce6aa-0x1,_0x329d20,!0x0):_0x4ce6aa<0x9?_0x171950[_0x1cad42('0x7f8')](0x8,0xf-_0x4ce6aa-0x1+0x1,_0x329d20,!0x0):_0x171950[_0x1cad42('0x7f8')](0x8,0xf-_0x4ce6aa-0x1,_0x329d20,!0x0);_0x171950[_0x1cad42('0x7f8')](_0xb4cc41-0x8,0x8,0x1,!0x0);}function _0x30c824(_0x59bcde,_0x3404c3,_0x132bd1){var _0x6ac8d9=_0x28db91,_0x428e5c=new _0x3659ef();_0x132bd1[_0x6ac8d9('0xc21')](function(_0x4151ae){var _0x135e12=_0x6ac8d9;_0x428e5c[_0x135e12('0x4ca')](_0x4151ae[_0x135e12('0x399')][_0x135e12('0xa53')],0x4),_0x428e5c[_0x135e12('0x4ca')](_0x4151ae[_0x135e12('0x9c1')](),_0x189df7[_0x135e12('0xa09')](_0x4151ae[_0x135e12('0x399')],_0x59bcde)),_0x4151ae['write'](_0x428e5c);});var _0x484278=0x8*(_0x168fca['getSymbolTotalCodewords'](_0x59bcde)-_0x577e72[_0x6ac8d9('0x95d')](_0x59bcde,_0x3404c3));for(_0x428e5c[_0x6ac8d9('0x5f5')]()+0x4<=_0x484278&&_0x428e5c[_0x6ac8d9('0x4ca')](0x0,0x4);_0x428e5c[_0x6ac8d9('0x5f5')]()%0x8!=0x0;)_0x428e5c[_0x6ac8d9('0x19d')](0x0);for(var _0x40b855=(_0x484278-_0x428e5c['getLengthInBits']())/0x8,_0x5f2cca=0x0;_0x5f2cca<_0x40b855;_0x5f2cca++)_0x428e5c[_0x6ac8d9('0x4ca')](_0x5f2cca%0x2?0x11:0xec,0x8);return function(_0x5709eb,_0x5a0143,_0x571d1a){var _0x7fcd87=_0x6ac8d9;for(var _0x3cce2e=_0x168fca[_0x7fcd87('0x798')](_0x5a0143),_0x225502=_0x577e72[_0x7fcd87('0x95d')](_0x5a0143,_0x571d1a),_0x337508=_0x3cce2e-_0x225502,_0x4d3ffe=_0x577e72[_0x7fcd87('0xc00')](_0x5a0143,_0x571d1a),_0x4da4a2=_0x4d3ffe-_0x3cce2e%_0x4d3ffe,_0x1085ae=Math['floor'](_0x3cce2e/_0x4d3ffe),_0x11f0f7=Math[_0x7fcd87('0x67')](_0x337508/_0x4d3ffe),_0x42faad=_0x11f0f7+0x1,_0x51a010=_0x1085ae-_0x11f0f7,_0x112e48=new _0x6a3694(_0x51a010),_0x21f8b6=0x0,_0x373a1d=new Array(_0x4d3ffe),_0x4caf0a=new Array(_0x4d3ffe),_0x4eb0c8=0x0,_0x869994=_0x15b572['from'](_0x5709eb[_0x7fcd87('0x7db')]),_0x5949bb=0x0;_0x5949bb<_0x4d3ffe;_0x5949bb++){var _0x4accc6=_0x5949bb<_0x4da4a2?_0x11f0f7:_0x42faad;_0x373a1d[_0x5949bb]=_0x869994[_0x7fcd87('0x5fe')](_0x21f8b6,_0x21f8b6+_0x4accc6),_0x4caf0a[_0x5949bb]=_0x112e48[_0x7fcd87('0x69a')](_0x373a1d[_0x5949bb]),_0x21f8b6+=_0x4accc6,_0x4eb0c8=Math[_0x7fcd87('0x6c1')](_0x4eb0c8,_0x4accc6);}var _0x2464b8,_0x3fb635,_0x9a1700=_0x15b572[_0x7fcd87('0xd97')](_0x3cce2e),_0x38a1c6=0x0;for(_0x2464b8=0x0;_0x2464b8<_0x4eb0c8;_0x2464b8++)for(_0x3fb635=0x0;_0x3fb635<_0x4d3ffe;_0x3fb635++)_0x2464b8<_0x373a1d[_0x3fb635][_0x7fcd87('0x796')]&&(_0x9a1700[_0x38a1c6++]=_0x373a1d[_0x3fb635][_0x2464b8]);for(_0x2464b8=0x0;_0x2464b8<_0x51a010;_0x2464b8++)for(_0x3fb635=0x0;_0x3fb635<_0x4d3ffe;_0x3fb635++)_0x9a1700[_0x38a1c6++]=_0x4caf0a[_0x3fb635][_0x2464b8];return _0x9a1700;}(_0x428e5c,_0x59bcde,_0x3404c3);}function _0x512895(_0x1d7d56,_0x93a504,_0x2ea9c3,_0x317dcc){var _0x3b9cd8=_0x28db91,_0x4a68ac;if(_0x1e9f2b(_0x1d7d56))_0x4a68ac=_0x2e81df[_0x3b9cd8('0x956')](_0x1d7d56);else{if(_0x3b9cd8('0x3fd')!=typeof _0x1d7d56)throw new Error(_0x3b9cd8('0xdba'));var _0x150a7b=_0x93a504;if(!_0x150a7b){var _0x4ad1a2=_0x2e81df[_0x3b9cd8('0xa0')](_0x1d7d56);_0x150a7b=_0x37bb7b[_0x3b9cd8('0x265')](_0x4ad1a2,_0x2ea9c3);}_0x4a68ac=_0x2e81df[_0x3b9cd8('0x516')](_0x1d7d56,_0x150a7b||0x28);}var _0x137e6f=_0x37bb7b[_0x3b9cd8('0x265')](_0x4a68ac,_0x2ea9c3);if(!_0x137e6f)throw new Error(_0x3b9cd8('0xb5a'));if(_0x93a504){if(_0x93a504<_0x137e6f)throw new Error(_0x3b9cd8('0x6d8')+_0x137e6f+'.\x0a');}else _0x93a504=_0x137e6f;var _0x495061=_0x30c824(_0x93a504,_0x2ea9c3,_0x4a68ac),_0x34d547=_0x168fca[_0x3b9cd8('0xd21')](_0x93a504),_0x44ae60=new _0x30022c(_0x34d547);return function(_0x271668,_0xf5d28){var _0x584622=_0x3b9cd8;for(var _0x53006c=_0x271668[_0x584622('0x2f9')],_0x56f64f=_0x3d2c20[_0x584622('0x286')](_0xf5d28),_0x13a04d=0x0;_0x13a04d<_0x56f64f[_0x584622('0x796')];_0x13a04d++)for(var _0x20ca2b=_0x56f64f[_0x13a04d][0x0],_0x346b09=_0x56f64f[_0x13a04d][0x1],_0xc0000=-0x1;_0xc0000<=0x7;_0xc0000++)if(!(_0x20ca2b+_0xc0000<=-0x1||_0x53006c<=_0x20ca2b+_0xc0000))for(var _0x3c8ea6=-0x1;_0x3c8ea6<=0x7;_0x3c8ea6++)_0x346b09+_0x3c8ea6<=-0x1||_0x53006c<=_0x346b09+_0x3c8ea6||(_0xc0000>=0x0&&_0xc0000<=0x6&&(0x0===_0x3c8ea6||0x6===_0x3c8ea6)||_0x3c8ea6>=0x0&&_0x3c8ea6<=0x6&&(0x0===_0xc0000||0x6===_0xc0000)||_0xc0000>=0x2&&_0xc0000<=0x4&&_0x3c8ea6>=0x2&&_0x3c8ea6<=0x4?_0x271668[_0x584622('0x7f8')](_0x20ca2b+_0xc0000,_0x346b09+_0x3c8ea6,!0x0,!0x0):_0x271668[_0x584622('0x7f8')](_0x20ca2b+_0xc0000,_0x346b09+_0x3c8ea6,!0x1,!0x0));}(_0x44ae60,_0x93a504),function(_0xddcec0){var _0x3d6224=_0x3b9cd8;for(var _0x3ac50b=_0xddcec0[_0x3d6224('0x2f9')],_0x27974c=0x8;_0x27974c<_0x3ac50b-0x8;_0x27974c++){var _0x2f7d3f=_0x27974c%0x2==0x0;_0xddcec0['set'](_0x27974c,0x6,_0x2f7d3f,!0x0),_0xddcec0[_0x3d6224('0x7f8')](0x6,_0x27974c,_0x2f7d3f,!0x0);}}(_0x44ae60),function(_0x40a408,_0x1d00ce){var _0x319327=_0x3b9cd8;for(var _0x240fc7=_0x1fa5b4[_0x319327('0x286')](_0x1d00ce),_0x472f0a=0x0;_0x472f0a<_0x240fc7[_0x319327('0x796')];_0x472f0a++)for(var _0x15b532=_0x240fc7[_0x472f0a][0x0],_0x3da80d=_0x240fc7[_0x472f0a][0x1],_0x5e6a5a=-0x2;_0x5e6a5a<=0x2;_0x5e6a5a++)for(var _0x305b8a=-0x2;_0x305b8a<=0x2;_0x305b8a++)-0x2===_0x5e6a5a||0x2===_0x5e6a5a||-0x2===_0x305b8a||0x2===_0x305b8a||0x0===_0x5e6a5a&&0x0===_0x305b8a?_0x40a408[_0x319327('0x7f8')](_0x15b532+_0x5e6a5a,_0x3da80d+_0x305b8a,!0x0,!0x0):_0x40a408[_0x319327('0x7f8')](_0x15b532+_0x5e6a5a,_0x3da80d+_0x305b8a,!0x1,!0x0);}(_0x44ae60,_0x93a504),_0x535176(_0x44ae60,_0x2ea9c3,0x0),_0x93a504>=0x7&&function(_0x3ef639,_0x57886c){var _0x34f0f9=_0x3b9cd8;for(var _0x17cf54,_0x313a82,_0x17d88d,_0x21a482=_0x3ef639[_0x34f0f9('0x2f9')],_0x474a53=_0x37bb7b['getEncodedBits'](_0x57886c),_0x46d31b=0x0;_0x46d31b<0x12;_0x46d31b++)_0x17cf54=Math[_0x34f0f9('0x67')](_0x46d31b/0x3),_0x313a82=_0x46d31b%0x3+_0x21a482-0x8-0x3,_0x17d88d=0x1==(_0x474a53>>_0x46d31b&0x1),_0x3ef639['set'](_0x17cf54,_0x313a82,_0x17d88d,!0x0),_0x3ef639[_0x34f0f9('0x7f8')](_0x313a82,_0x17cf54,_0x17d88d,!0x0);}(_0x44ae60,_0x93a504),function(_0x70966,_0x445589){var _0x22ca4c=_0x3b9cd8;for(var _0x386bfe=_0x70966[_0x22ca4c('0x2f9')],_0x69322a=-0x1,_0x453a2a=_0x386bfe-0x1,_0x2c4b93=0x7,_0x1e187e=0x0,_0x2b0391=_0x386bfe-0x1;_0x2b0391>0x0;_0x2b0391-=0x2)for(0x6===_0x2b0391&&_0x2b0391--;;){for(var _0x512f04=0x0;_0x512f04<0x2;_0x512f04++)if(!_0x70966[_0x22ca4c('0x336')](_0x453a2a,_0x2b0391-_0x512f04)){var _0x1f1b30=!0x1;_0x1e187e<_0x445589['length']&&(_0x1f1b30=0x1==(_0x445589[_0x1e187e]>>>_0x2c4b93&0x1)),_0x70966['set'](_0x453a2a,_0x2b0391-_0x512f04,_0x1f1b30),-0x1===--_0x2c4b93&&(_0x1e187e++,_0x2c4b93=0x7);}if((_0x453a2a+=_0x69322a)<0x0||_0x386bfe<=_0x453a2a){_0x453a2a-=_0x69322a,_0x69322a=-_0x69322a;break;}}}(_0x44ae60,_0x495061),isNaN(_0x317dcc)&&(_0x317dcc=_0x3c36f5[_0x3b9cd8('0xc91')](_0x44ae60,_0x535176[_0x3b9cd8('0xa59')](null,_0x44ae60,_0x2ea9c3))),_0x3c36f5['applyMask'](_0x317dcc,_0x44ae60),_0x535176(_0x44ae60,_0x2ea9c3,_0x317dcc),{'modules':_0x44ae60,'version':_0x93a504,'errorCorrectionLevel':_0x2ea9c3,'maskPattern':_0x317dcc,'segments':_0x4a68ac};}_0x303cb9['create']=function(_0x944956,_0x390dd0){var _0x3790da=_0x28db91;if(void 0x0===_0x944956||''===_0x944956)throw new Error(_0x3790da('0x312'));var _0x1039f8,_0x1ceeb9,_0x53aebd=_0x172b95['M'];return void 0x0!==_0x390dd0&&(_0x53aebd=_0x172b95[_0x3790da('0x40e')](_0x390dd0[_0x3790da('0xaa')],_0x172b95['M']),_0x1039f8=_0x37bb7b['from'](_0x390dd0[_0x3790da('0x80b')]),_0x1ceeb9=_0x3c36f5['from'](_0x390dd0['maskPattern']),_0x390dd0[_0x3790da('0x153')]&&_0x168fca['setToSJISFunction'](_0x390dd0[_0x3790da('0x153')])),_0x512895(_0x944956,_0x1039f8,_0x53aebd,_0x1ceeb9);};},{'../utils/buffer':0x22,'./alignment-pattern':0x9,'./bit-buffer':0xb,'./bit-matrix':0xc,'./error-correction-code':0xe,'./error-correction-level':0xf,'./finder-pattern':0x10,'./format-info':0x11,'./mask-pattern':0x14,'./mode':0x15,'./reed-solomon-encoder':0x19,'./segments':0x1b,'./utils':0x1c,'./version':0x1e,'isarray':0x5}],0x19:[function(_0x380614,_0x1cc094,_0x53d40d){var _0x2e3dfc=_0x1c0e,_0x28cc41=_0x380614('../utils/buffer'),_0x5bcdf7=_0x380614(_0x2e3dfc('0xd83')),_0x1da9fc=_0x380614('buffer')['Buffer'];function _0x1e71f4(_0xbce32f){var _0x1ecb4f=_0x2e3dfc;this[_0x1ecb4f('0x803')]=void 0x0,this['degree']=_0xbce32f,this[_0x1ecb4f('0xa63')]&&this[_0x1ecb4f('0xa3e')](this[_0x1ecb4f('0xa63')]);}_0x1e71f4[_0x2e3dfc('0x539')][_0x2e3dfc('0xa3e')]=function(_0x24f64f){var _0x546b5d=_0x2e3dfc;this[_0x546b5d('0xa63')]=_0x24f64f,this['genPoly']=_0x5bcdf7['generateECPolynomial'](this[_0x546b5d('0xa63')]);},_0x1e71f4[_0x2e3dfc('0x539')]['encode']=function(_0x5bc69f){var _0x263122=_0x2e3dfc;if(!this[_0x263122('0x803')])throw new Error('Encoder\x20not\x20initialized');var _0x4a2a84=_0x28cc41[_0x263122('0xd97')](this[_0x263122('0xa63')]),_0x511d5f=_0x1da9fc['concat']([_0x5bc69f,_0x4a2a84],_0x5bc69f[_0x263122('0x796')]+this[_0x263122('0xa63')]),_0x1a8e01=_0x5bcdf7['mod'](_0x511d5f,this[_0x263122('0x803')]),_0x761d47=this[_0x263122('0xa63')]-_0x1a8e01[_0x263122('0x796')];if(_0x761d47>0x0){var _0x899643=_0x28cc41['alloc'](this[_0x263122('0xa63')]);return _0x1a8e01[_0x263122('0x478')](_0x899643,_0x761d47),_0x899643;}return _0x1a8e01;},_0x1cc094[_0x2e3dfc('0xd7')]=_0x1e71f4;},{'../utils/buffer':0x22,'./polynomial':0x17,'buffer':0x2}],0x1a:[function(_0x199bc7,_0x3065e4,_0x2f8cc9){var _0x2ce7d3=_0x1c0e,_0x3b6714=_0x2ce7d3('0x1f'),_0x547de5='(?:(?![A-Z0-9\x20$%*+\x5c-./:]|'+(_0x3b6714=_0x3b6714[_0x2ce7d3('0x8f9')](/u/g,'\x5cu'))+')(?:.|[\x0d\x0a]))+';_0x2f8cc9[_0x2ce7d3('0x787')]=new RegExp(_0x3b6714,'g'),_0x2f8cc9[_0x2ce7d3('0x50c')]=new RegExp(_0x2ce7d3('0x3d1'),'g'),_0x2f8cc9['BYTE']=new RegExp(_0x547de5,'g'),_0x2f8cc9['NUMERIC']=new RegExp('[0-9]+','g'),_0x2f8cc9[_0x2ce7d3('0x745')]=new RegExp(_0x2ce7d3('0xcc6'),'g');var _0x469307=new RegExp('^'+_0x3b6714+'$'),_0x5d8109=new RegExp(_0x2ce7d3('0x951')),_0xde972e=new RegExp(_0x2ce7d3('0x9fe'));_0x2f8cc9['testKanji']=function(_0x58a9b8){var _0x439ab6=_0x2ce7d3;return _0x469307[_0x439ab6('0x96c')](_0x58a9b8);},_0x2f8cc9[_0x2ce7d3('0xad9')]=function(_0x5d43bd){var _0x13f0e4=_0x2ce7d3;return _0x5d8109[_0x13f0e4('0x96c')](_0x5d43bd);},_0x2f8cc9[_0x2ce7d3('0x156')]=function(_0x94ba5b){var _0x117f5b=_0x2ce7d3;return _0xde972e[_0x117f5b('0x96c')](_0x94ba5b);};},{}],0x1b:[function(_0x418c43,_0x398d7a,_0x2d8f0a){var _0x121787=_0x1c0e,_0x84af09=_0x418c43(_0x121787('0x908')),_0x44571e=_0x418c43(_0x121787('0x1a')),_0x2a080c=_0x418c43('./alphanumeric-data'),_0x22985c=_0x418c43(_0x121787('0x2ec')),_0x1849dd=_0x418c43('./kanji-data'),_0x12c983=_0x418c43(_0x121787('0x71a')),_0x2cebc3=_0x418c43(_0x121787('0x25c')),_0x274e77=_0x418c43(_0x121787('0x266'));function _0x5d9b25(_0x2e2c58){return unescape(encodeURIComponent(_0x2e2c58))['length'];}function _0x2bfbaf(_0x2175e0,_0x431019,_0x3b687f){var _0x55b3c6=_0x121787;for(var _0x2693d2,_0x18e7c4=[];null!==(_0x2693d2=_0x2175e0[_0x55b3c6('0x850')](_0x3b687f));)_0x18e7c4[_0x55b3c6('0xb2')]({'data':_0x2693d2[0x0],'index':_0x2693d2[_0x55b3c6('0x31d')],'mode':_0x431019,'length':_0x2693d2[0x0]['length']});return _0x18e7c4;}function _0x4529f6(_0xbbcfab){var _0x5ac366=_0x121787,_0x563fe0,_0x13cec5,_0x5783d3=_0x2bfbaf(_0x12c983[_0x5ac366('0x314')],_0x84af09[_0x5ac366('0x314')],_0xbbcfab),_0x26449e=_0x2bfbaf(_0x12c983[_0x5ac366('0x745')],_0x84af09['ALPHANUMERIC'],_0xbbcfab);return _0x2cebc3[_0x5ac366('0x15')]()?(_0x563fe0=_0x2bfbaf(_0x12c983[_0x5ac366('0x2b9')],_0x84af09[_0x5ac366('0x2b9')],_0xbbcfab),_0x13cec5=_0x2bfbaf(_0x12c983[_0x5ac366('0x787')],_0x84af09[_0x5ac366('0x787')],_0xbbcfab)):(_0x563fe0=_0x2bfbaf(_0x12c983[_0x5ac366('0x50c')],_0x84af09[_0x5ac366('0x2b9')],_0xbbcfab),_0x13cec5=[]),_0x5783d3[_0x5ac366('0x4c2')](_0x26449e,_0x563fe0,_0x13cec5)['sort'](function(_0x1d9e45,_0x3658f3){var _0x56830a=_0x5ac366;return _0x1d9e45['index']-_0x3658f3[_0x56830a('0x31d')];})[_0x5ac366('0xc78')](function(_0x1f27bf){var _0x2f5b73=_0x5ac366;return{'data':_0x1f27bf[_0x2f5b73('0x38')],'mode':_0x1f27bf[_0x2f5b73('0x399')],'length':_0x1f27bf[_0x2f5b73('0x796')]};});}function _0x25c94d(_0x1ab26c,_0x516047){var _0x330f6=_0x121787;switch(_0x516047){case _0x84af09[_0x330f6('0x314')]:return _0x44571e[_0x330f6('0xc52')](_0x1ab26c);case _0x84af09[_0x330f6('0x745')]:return _0x2a080c[_0x330f6('0xc52')](_0x1ab26c);case _0x84af09[_0x330f6('0x787')]:return _0x1849dd[_0x330f6('0xc52')](_0x1ab26c);case _0x84af09[_0x330f6('0x2b9')]:return _0x22985c[_0x330f6('0xc52')](_0x1ab26c);}}function _0x3b7462(_0x38d6ce,_0x61ef79){var _0x4b57ad=_0x121787,_0x479d0a,_0x2f7436=_0x84af09[_0x4b57ad('0x393')](_0x38d6ce);if((_0x479d0a=_0x84af09[_0x4b57ad('0x40e')](_0x61ef79,_0x2f7436))!==_0x84af09[_0x4b57ad('0x2b9')]&&_0x479d0a[_0x4b57ad('0xa53')]<_0x2f7436[_0x4b57ad('0xa53')])throw new Error('\x22'+_0x38d6ce+_0x4b57ad('0x29e')+_0x84af09[_0x4b57ad('0x6e9')](_0x479d0a)+_0x4b57ad('0x782')+_0x84af09[_0x4b57ad('0x6e9')](_0x2f7436));switch(_0x479d0a!==_0x84af09[_0x4b57ad('0x787')]||_0x2cebc3['isKanjiModeEnabled']()||(_0x479d0a=_0x84af09['BYTE']),_0x479d0a){case _0x84af09[_0x4b57ad('0x314')]:return new _0x44571e(_0x38d6ce);case _0x84af09[_0x4b57ad('0x745')]:return new _0x2a080c(_0x38d6ce);case _0x84af09[_0x4b57ad('0x787')]:return new _0x1849dd(_0x38d6ce);case _0x84af09[_0x4b57ad('0x2b9')]:return new _0x22985c(_0x38d6ce);}}_0x2d8f0a[_0x121787('0x956')]=function(_0x532846){var _0x4f4045=_0x121787;return _0x532846[_0x4f4045('0x145')](function(_0x498c46,_0x550340){var _0x3340ef=_0x4f4045;return'string'==typeof _0x550340?_0x498c46['push'](_0x3b7462(_0x550340,null)):_0x550340[_0x3340ef('0x38')]&&_0x498c46[_0x3340ef('0xb2')](_0x3b7462(_0x550340['data'],_0x550340[_0x3340ef('0x399')])),_0x498c46;},[]);},_0x2d8f0a[_0x121787('0x516')]=function(_0x2cb89c,_0x244695){var _0x39d0a8=_0x121787;for(var _0x46282f=function(_0x4d0b69,_0x895d8a){var _0x4d6883=_0x1c0e;for(var _0x49d21d={},_0x566664={'start':{}},_0x1e1581=[_0x4d6883('0x49a')],_0x13a59e=0x0;_0x13a59e<_0x4d0b69[_0x4d6883('0x796')];_0x13a59e++){for(var _0xfe9056=_0x4d0b69[_0x13a59e],_0x5bd642=[],_0xae52b2=0x0;_0xae52b2<_0xfe9056[_0x4d6883('0x796')];_0xae52b2++){var _0x49a333=_0xfe9056[_0xae52b2],_0x538edb=''+_0x13a59e+_0xae52b2;_0x5bd642['push'](_0x538edb),_0x49d21d[_0x538edb]={'node':_0x49a333,'lastCount':0x0},_0x566664[_0x538edb]={};for(var _0x202e8d=0x0;_0x202e8d<_0x1e1581[_0x4d6883('0x796')];_0x202e8d++){var _0x1a6121=_0x1e1581[_0x202e8d];_0x49d21d[_0x1a6121]&&_0x49d21d[_0x1a6121]['node'][_0x4d6883('0x399')]===_0x49a333['mode']?(_0x566664[_0x1a6121][_0x538edb]=_0x25c94d(_0x49d21d[_0x1a6121]['lastCount']+_0x49a333['length'],_0x49a333['mode'])-_0x25c94d(_0x49d21d[_0x1a6121][_0x4d6883('0x93d')],_0x49a333[_0x4d6883('0x399')]),_0x49d21d[_0x1a6121][_0x4d6883('0x93d')]+=_0x49a333[_0x4d6883('0x796')]):(_0x49d21d[_0x1a6121]&&(_0x49d21d[_0x1a6121][_0x4d6883('0x93d')]=_0x49a333[_0x4d6883('0x796')]),_0x566664[_0x1a6121][_0x538edb]=_0x25c94d(_0x49a333[_0x4d6883('0x796')],_0x49a333['mode'])+0x4+_0x84af09['getCharCountIndicator'](_0x49a333[_0x4d6883('0x399')],_0x895d8a));}}_0x1e1581=_0x5bd642;}for(_0x202e8d=0x0;_0x202e8d<_0x1e1581[_0x4d6883('0x796')];_0x202e8d++)_0x566664[_0x1e1581[_0x202e8d]][_0x4d6883('0x9ef')]=0x0;return{'map':_0x566664,'table':_0x49d21d};}(function(_0x16b61b){var _0x360180=_0x1c0e;for(var _0x1ffd78=[],_0xc7dcfe=0x0;_0xc7dcfe<_0x16b61b[_0x360180('0x796')];_0xc7dcfe++){var _0x237a65=_0x16b61b[_0xc7dcfe];switch(_0x237a65[_0x360180('0x399')]){case _0x84af09['NUMERIC']:_0x1ffd78[_0x360180('0xb2')]([_0x237a65,{'data':_0x237a65['data'],'mode':_0x84af09[_0x360180('0x745')],'length':_0x237a65[_0x360180('0x796')]},{'data':_0x237a65[_0x360180('0x38')],'mode':_0x84af09[_0x360180('0x2b9')],'length':_0x237a65[_0x360180('0x796')]}]);break;case _0x84af09['ALPHANUMERIC']:_0x1ffd78['push']([_0x237a65,{'data':_0x237a65['data'],'mode':_0x84af09[_0x360180('0x2b9')],'length':_0x237a65[_0x360180('0x796')]}]);break;case _0x84af09[_0x360180('0x787')]:_0x1ffd78[_0x360180('0xb2')]([_0x237a65,{'data':_0x237a65[_0x360180('0x38')],'mode':_0x84af09['BYTE'],'length':_0x5d9b25(_0x237a65['data'])}]);break;case _0x84af09[_0x360180('0x2b9')]:_0x1ffd78['push']([{'data':_0x237a65[_0x360180('0x38')],'mode':_0x84af09[_0x360180('0x2b9')],'length':_0x5d9b25(_0x237a65[_0x360180('0x38')])}]);}}return _0x1ffd78;}(_0x4529f6(_0x2cb89c,_0x2cebc3['isKanjiModeEnabled']())),_0x244695),_0x48512d=_0x274e77[_0x39d0a8('0xd75')](_0x46282f['map'],'start',_0x39d0a8('0x9ef')),_0xf77433=[],_0x4f1ad2=0x1;_0x4f1ad2<_0x48512d[_0x39d0a8('0x796')]-0x1;_0x4f1ad2++)_0xf77433[_0x39d0a8('0xb2')](_0x46282f[_0x39d0a8('0xa5d')][_0x48512d[_0x4f1ad2]]['node']);return _0x2d8f0a[_0x39d0a8('0x956')](function(_0x551e1f){var _0x34fc4c=_0x39d0a8;return _0x551e1f[_0x34fc4c('0x145')](function(_0x3f3a8b,_0x13d32d){var _0x5c9225=_0x34fc4c,_0x5632e1=_0x3f3a8b[_0x5c9225('0x796')]-0x1>=0x0?_0x3f3a8b[_0x3f3a8b[_0x5c9225('0x796')]-0x1]:null;return _0x5632e1&&_0x5632e1[_0x5c9225('0x399')]===_0x13d32d[_0x5c9225('0x399')]?(_0x3f3a8b[_0x3f3a8b['length']-0x1][_0x5c9225('0x38')]+=_0x13d32d[_0x5c9225('0x38')],_0x3f3a8b):(_0x3f3a8b[_0x5c9225('0xb2')](_0x13d32d),_0x3f3a8b);},[]);}(_0xf77433));},_0x2d8f0a[_0x121787('0xa0')]=function(_0x54fcd7){return _0x2d8f0a['fromArray'](_0x4529f6(_0x54fcd7,_0x2cebc3['isKanjiModeEnabled']()));};},{'./alphanumeric-data':0xa,'./byte-data':0xd,'./kanji-data':0x13,'./mode':0x15,'./numeric-data':0x16,'./regex':0x1a,'./utils':0x1c,'dijkstrajs':0x3}],0x1c:[function(_0x140c2d,_0x10c40d,_0x51c474){var _0x1fd9c3=_0x1c0e,_0x39e8da,_0x178c17=[0x0,0x1a,0x2c,0x46,0x64,0x86,0xac,0xc4,0xf2,0x124,0x15a,0x194,0x1d2,0x214,0x245,0x28f,0x2dd,0x32f,0x385,0x3df,0x43d,0x484,0x4ea,0x554,0x5c2,0x634,0x6aa,0x724,0x781,0x803,0x889,0x913,0x9a1,0xa33,0xac9,0xb3c,0xbda,0xc7c,0xd22,0xdcc,0xe7a];_0x51c474[_0x1fd9c3('0xd21')]=function(_0x231963){var _0xfb45ce=_0x1fd9c3;if(!_0x231963)throw new Error(_0xfb45ce('0x21e'));if(_0x231963<0x1||_0x231963>0x28)throw new Error(_0xfb45ce('0xdde'));return 0x4*_0x231963+0x11;},_0x51c474[_0x1fd9c3('0x798')]=function(_0x39416a){return _0x178c17[_0x39416a];},_0x51c474[_0x1fd9c3('0xa9')]=function(_0x5fbd27){for(var _0x45b291=0x0;0x0!==_0x5fbd27;)_0x45b291++,_0x5fbd27>>>=0x1;return _0x45b291;},_0x51c474['setToSJISFunction']=function(_0x100094){if('function'!=typeof _0x100094)throw new Error('\x22toSJISFunc\x22\x20is\x20not\x20a\x20valid\x20function.');_0x39e8da=_0x100094;},_0x51c474[_0x1fd9c3('0x15')]=function(){return void 0x0!==_0x39e8da;},_0x51c474[_0x1fd9c3('0x43c')]=function(_0x2db34b){return _0x39e8da(_0x2db34b);};},{}],0x1d:[function(_0x492eea,_0xf83879,_0x20280c){var _0x3016f7=_0x1c0e;_0x20280c[_0x3016f7('0x42b')]=function(_0x3789f4){return!isNaN(_0x3789f4)&&_0x3789f4>=0x1&&_0x3789f4<=0x28;};},{}],0x1e:[function(_0x31ea3c,_0x2cd33c,_0x55458e){var _0x2a7fc6=_0x1c0e,_0x53f028=_0x31ea3c(_0x2a7fc6('0x25c')),_0x2acffb=_0x31ea3c(_0x2a7fc6('0xaf7')),_0x58d62a=_0x31ea3c(_0x2a7fc6('0xb0c')),_0x231cee=_0x31ea3c('./mode'),_0x2b37d2=_0x31ea3c(_0x2a7fc6('0x3cf')),_0x572210=_0x31ea3c('isarray'),_0x2aea7b=_0x53f028['getBCHDigit'](0x1f25);function _0x3e7005(_0x700045,_0x5db2eb){return _0x231cee['getCharCountIndicator'](_0x700045,_0x5db2eb)+0x4;}function _0x3f261b(_0x1d1762,_0x57c489){var _0x4b626f=_0x2a7fc6,_0x10e78e=0x0;return _0x1d1762[_0x4b626f('0xc21')](function(_0xf1987d){var _0x6db168=_0x4b626f,_0x14019d=_0x3e7005(_0xf1987d['mode'],_0x57c489);_0x10e78e+=_0x14019d+_0xf1987d[_0x6db168('0xc52')]();}),_0x10e78e;}_0x55458e[_0x2a7fc6('0x40e')]=function(_0x4c84d0,_0x56bc00){var _0xd2cdcd=_0x2a7fc6;return _0x2b37d2[_0xd2cdcd('0x42b')](_0x4c84d0)?parseInt(_0x4c84d0,0xa):_0x56bc00;},_0x55458e[_0x2a7fc6('0x92e')]=function(_0x4e7741,_0x5c6276,_0x51d48f){var _0x5f00c4=_0x2a7fc6;if(!_0x2b37d2[_0x5f00c4('0x42b')](_0x4e7741))throw new Error(_0x5f00c4('0x6e4'));void 0x0===_0x51d48f&&(_0x51d48f=_0x231cee[_0x5f00c4('0x2b9')]);var _0x53373e=0x8*(_0x53f028[_0x5f00c4('0x798')](_0x4e7741)-_0x2acffb[_0x5f00c4('0x95d')](_0x4e7741,_0x5c6276));if(_0x51d48f===_0x231cee['MIXED'])return _0x53373e;var _0x2fcfd4=_0x53373e-_0x3e7005(_0x51d48f,_0x4e7741);switch(_0x51d48f){case _0x231cee[_0x5f00c4('0x314')]:return Math[_0x5f00c4('0x67')](_0x2fcfd4/0xa*0x3);case _0x231cee[_0x5f00c4('0x745')]:return Math['floor'](_0x2fcfd4/0xb*0x2);case _0x231cee[_0x5f00c4('0x787')]:return Math[_0x5f00c4('0x67')](_0x2fcfd4/0xd);case _0x231cee['BYTE']:default:return Math[_0x5f00c4('0x67')](_0x2fcfd4/0x8);}},_0x55458e[_0x2a7fc6('0x265')]=function(_0x364694,_0x357535){var _0x2888a2=_0x2a7fc6,_0x4e3742,_0xdc0af1=_0x58d62a[_0x2888a2('0x40e')](_0x357535,_0x58d62a['M']);if(_0x572210(_0x364694)){if(_0x364694[_0x2888a2('0x796')]>0x1)return function(_0x1d9a13,_0x1e14d1){var _0x4131b3=_0x2888a2;for(var _0x32f84d=0x1;_0x32f84d<=0x28;_0x32f84d++){if(_0x3f261b(_0x1d9a13,_0x32f84d)<=_0x55458e['getCapacity'](_0x32f84d,_0x1e14d1,_0x231cee[_0x4131b3('0x9db')]))return _0x32f84d;}}(_0x364694,_0xdc0af1);if(0x0===_0x364694['length'])return 0x1;_0x4e3742=_0x364694[0x0];}else _0x4e3742=_0x364694;return function(_0xca85a2,_0x57d06d,_0x58a201){for(var _0xefb796=0x1;_0xefb796<=0x28;_0xefb796++)if(_0x57d06d<=_0x55458e['getCapacity'](_0xefb796,_0x58a201,_0xca85a2))return _0xefb796;}(_0x4e3742[_0x2888a2('0x399')],_0x4e3742[_0x2888a2('0x9c1')](),_0xdc0af1);},_0x55458e[_0x2a7fc6('0x696')]=function(_0x4a9a9d){var _0x409540=_0x2a7fc6;if(!_0x2b37d2[_0x409540('0x42b')](_0x4a9a9d)||_0x4a9a9d<0x7)throw new Error(_0x409540('0x6e4'));for(var _0x22a150=_0x4a9a9d<<0xc;_0x53f028[_0x409540('0xa9')](_0x22a150)-_0x2aea7b>=0x0;)_0x22a150^=0x1f25<<_0x53f028[_0x409540('0xa9')](_0x22a150)-_0x2aea7b;return _0x4a9a9d<<0xc|_0x22a150;};},{'./error-correction-code':0xe,'./error-correction-level':0xf,'./mode':0x15,'./utils':0x1c,'./version-check':0x1d,'isarray':0x5}],0x1f:[function(_0x396bd4,_0x1c88b5,_0x598170){var _0x2c649a=_0x1c0e,_0x39abe4=_0x396bd4(_0x2c649a('0x25c'));_0x598170['render']=function(_0x3ebec2,_0x500cb2,_0x4afcd0){var _0x7fd134=_0x2c649a,_0x4776b6=_0x4afcd0,_0x419a1b=_0x500cb2;void 0x0!==_0x4776b6||_0x500cb2&&_0x500cb2[_0x7fd134('0x114')]||(_0x4776b6=_0x500cb2,_0x500cb2=void 0x0),_0x500cb2||(_0x419a1b=function(){var _0x2be8df=_0x7fd134;try{return document[_0x2be8df('0x6b7')]('canvas');}catch(_0x57b76d){throw new Error(_0x2be8df('0x19f'));}}()),_0x4776b6=_0x39abe4[_0x7fd134('0xc18')](_0x4776b6);var _0x566b89=_0x39abe4[_0x7fd134('0xa5c')](_0x3ebec2[_0x7fd134('0x88')][_0x7fd134('0x2f9')],_0x4776b6),_0x482cb0=_0x419a1b[_0x7fd134('0x114')]('2d'),_0x4d90d5=_0x482cb0[_0x7fd134('0x743')](_0x566b89,_0x566b89);return _0x39abe4[_0x7fd134('0x76a')](_0x4d90d5[_0x7fd134('0x38')],_0x3ebec2,_0x4776b6),function(_0x41c793,_0x501584,_0x40257c){var _0x24f5c6=_0x7fd134;_0x41c793[_0x24f5c6('0x99b')](0x0,0x0,_0x501584['width'],_0x501584[_0x24f5c6('0x3e')]),_0x501584[_0x24f5c6('0xc76')]||(_0x501584['style']={}),_0x501584[_0x24f5c6('0x3e')]=_0x40257c,_0x501584['width']=_0x40257c,_0x501584[_0x24f5c6('0xc76')][_0x24f5c6('0x3e')]=_0x40257c+'px',_0x501584[_0x24f5c6('0xc76')][_0x24f5c6('0x5f9')]=_0x40257c+'px';}(_0x482cb0,_0x419a1b,_0x566b89),_0x482cb0['putImageData'](_0x4d90d5,0x0,0x0),_0x419a1b;},_0x598170[_0x2c649a('0xcdb')]=function(_0x3cfa69,_0x1ff150,_0x36a947){var _0x33fecb=_0x2c649a,_0x1820c1=_0x36a947;void 0x0!==_0x1820c1||_0x1ff150&&_0x1ff150[_0x33fecb('0x114')]||(_0x1820c1=_0x1ff150,_0x1ff150=void 0x0),_0x1820c1||(_0x1820c1={});var _0x3b8492=_0x598170[_0x33fecb('0x358')](_0x3cfa69,_0x1ff150,_0x1820c1),_0x2f7b60=_0x1820c1[_0x33fecb('0x18b')]||_0x33fecb('0x725'),_0x5f1768=_0x1820c1['rendererOpts']||{};return _0x3b8492['toDataURL'](_0x2f7b60,_0x5f1768[_0x33fecb('0x4d6')]);};},{'./utils':0x21}],0x20:[function(_0x3a5994,_0x488139,_0x59f6ec){var _0x1e0276=_0x1c0e,_0x1eff23=_0x3a5994(_0x1e0276('0x25c'));function _0x3559dd(_0x4798d6,_0x7f750a){var _0x29b742=_0x1e0276,_0x20e6a2=_0x4798d6['a']/0xff,_0x3275f3=_0x7f750a+'=\x22'+_0x4798d6['hex']+'\x22';return _0x20e6a2<0x1?_0x3275f3+'\x20'+_0x7f750a+_0x29b742('0xd81')+_0x20e6a2['toFixed'](0x2)[_0x29b742('0x5fe')](0x1)+'\x22':_0x3275f3;}function _0x922ff8(_0x103410,_0x8083ce,_0xb61d50){var _0x5e9fe2=_0x103410+_0x8083ce;return void 0x0!==_0xb61d50&&(_0x5e9fe2+='\x20'+_0xb61d50),_0x5e9fe2;}_0x59f6ec[_0x1e0276('0x358')]=function(_0x5babf9,_0xdaf4e3,_0x30466c){var _0x3c144d=_0x1e0276,_0x4a05ea=_0x1eff23[_0x3c144d('0xc18')](_0xdaf4e3),_0x10eadf=_0x5babf9[_0x3c144d('0x88')][_0x3c144d('0x2f9')],_0x321f9d=_0x5babf9['modules']['data'],_0x5093dc=_0x10eadf+0x2*_0x4a05ea[_0x3c144d('0xbb7')],_0x5abeb2=_0x4a05ea[_0x3c144d('0xd24')][_0x3c144d('0xb49')]['a']?'0x0&&_0x150a7d>0x0&&_0x52b815[_0x2eac61-0x1]||(_0x53c8bf+=_0xc314d0?_0x922ff8('M',_0x150a7d+_0x585a80,0.5+_0x556d13+_0x585a80):_0x922ff8('m',_0x1ff6fc,0x0),_0x1ff6fc=0x0,_0xc314d0=!0x1),_0x150a7d+0x1<_0x4d09b3&&_0x52b815[_0x2eac61+0x1]||(_0x53c8bf+=_0x922ff8('h',_0x78f888),_0x78f888=0x0)):_0x1ff6fc++;}return _0x53c8bf;}(_0x321f9d,_0x10eadf,_0x4a05ea[_0x3c144d('0xbb7')])+'\x22/>',_0xada4d1=_0x3c144d('0x19b')+_0x5093dc+'\x20'+_0x5093dc+'\x22',_0x55289e='0x8)throw new Error(_0x3d7e84('0x85')+_0x312d76);0x3!==_0x1061d6[_0x3d7e84('0x796')]&&0x4!==_0x1061d6[_0x3d7e84('0x796')]||(_0x1061d6=Array[_0x3d7e84('0x539')][_0x3d7e84('0x4c2')][_0x3d7e84('0x365')]([],_0x1061d6[_0x3d7e84('0xc78')](function(_0x382d9c){return[_0x382d9c,_0x382d9c];}))),0x6===_0x1061d6['length']&&_0x1061d6[_0x3d7e84('0xb2')]('F','F');var _0x10cbf5=parseInt(_0x1061d6[_0x3d7e84('0xc1')](''),0x10);return{'r':_0x10cbf5>>0x18&0xff,'g':_0x10cbf5>>0x10&0xff,'b':_0x10cbf5>>0x8&0xff,'a':0xff&_0x10cbf5,'hex':'#'+_0x1061d6[_0x3d7e84('0x5fe')](0x0,0x6)[_0x3d7e84('0xc1')]('')};}_0x91827d[_0x5f21ac('0xc18')]=function(_0xa68dfb){var _0x49e0ee=_0x5f21ac;_0xa68dfb||(_0xa68dfb={}),_0xa68dfb[_0x49e0ee('0xd24')]||(_0xa68dfb[_0x49e0ee('0xd24')]={});var _0x4d4491=void 0x0===_0xa68dfb[_0x49e0ee('0xbb7')]||null===_0xa68dfb[_0x49e0ee('0xbb7')]||_0xa68dfb[_0x49e0ee('0xbb7')]<0x0?0x4:_0xa68dfb['margin'],_0x20b1d1=_0xa68dfb['width']&&_0xa68dfb['width']>=0x15?_0xa68dfb['width']:void 0x0,_0x452e89=_0xa68dfb[_0x49e0ee('0x253')]||0x4;return{'width':_0x20b1d1,'scale':_0x20b1d1?0x4:_0x452e89,'margin':_0x4d4491,'color':{'dark':_0x5d719d(_0xa68dfb[_0x49e0ee('0xd24')][_0x49e0ee('0xa00')]||_0x49e0ee('0x948')),'light':_0x5d719d(_0xa68dfb['color'][_0x49e0ee('0xb49')]||_0x49e0ee('0x8e6'))},'type':_0xa68dfb[_0x49e0ee('0x18b')],'rendererOpts':_0xa68dfb[_0x49e0ee('0x919')]||{}};},_0x91827d[_0x5f21ac('0x4d2')]=function(_0x2eb793,_0x25cb07){var _0x403f2c=_0x5f21ac;return _0x25cb07[_0x403f2c('0x5f9')]&&_0x25cb07['width']>=_0x2eb793+0x2*_0x25cb07['margin']?_0x25cb07[_0x403f2c('0x5f9')]/(_0x2eb793+0x2*_0x25cb07[_0x403f2c('0xbb7')]):_0x25cb07[_0x403f2c('0x253')];},_0x91827d[_0x5f21ac('0xa5c')]=function(_0x2e69b2,_0x5101ef){var _0x30bad5=_0x5f21ac,_0x47b5f5=_0x91827d['getScale'](_0x2e69b2,_0x5101ef);return Math['floor']((_0x2e69b2+0x2*_0x5101ef[_0x30bad5('0xbb7')])*_0x47b5f5);},_0x91827d[_0x5f21ac('0x76a')]=function(_0x31481c,_0x43ff2b,_0xa57d12){var _0x16c1a6=_0x5f21ac;for(var _0x209853=_0x43ff2b[_0x16c1a6('0x88')]['size'],_0x54d06f=_0x43ff2b[_0x16c1a6('0x88')][_0x16c1a6('0x38')],_0x917f41=_0x91827d[_0x16c1a6('0x4d2')](_0x209853,_0xa57d12),_0x2fa455=Math[_0x16c1a6('0x67')]((_0x209853+0x2*_0xa57d12[_0x16c1a6('0xbb7')])*_0x917f41),_0x8dab07=_0xa57d12[_0x16c1a6('0xbb7')]*_0x917f41,_0x4dab0a=[_0xa57d12[_0x16c1a6('0xd24')]['light'],_0xa57d12['color'][_0x16c1a6('0xa00')]],_0x1d9fef=0x0;_0x1d9fef<_0x2fa455;_0x1d9fef++)for(var _0x109942=0x0;_0x109942<_0x2fa455;_0x109942++){var _0xe498cb=0x4*(_0x1d9fef*_0x2fa455+_0x109942),_0x142552=_0xa57d12[_0x16c1a6('0xd24')][_0x16c1a6('0xb49')];if(_0x1d9fef>=_0x8dab07&&_0x109942>=_0x8dab07&&_0x1d9fef<_0x2fa455-_0x8dab07&&_0x109942<_0x2fa455-_0x8dab07)_0x142552=_0x4dab0a[_0x54d06f[Math[_0x16c1a6('0x67')]((_0x1d9fef-_0x8dab07)/_0x917f41)*_0x209853+Math[_0x16c1a6('0x67')]((_0x109942-_0x8dab07)/_0x917f41)]?0x1:0x0];_0x31481c[_0xe498cb++]=_0x142552['r'],_0x31481c[_0xe498cb++]=_0x142552['g'],_0x31481c[_0xe498cb++]=_0x142552['b'],_0x31481c[_0xe498cb]=_0x142552['a'];}};},{}],0x22:[function(_0x38b309,_0x2daa30,_0xaec31a){var _0x346f49=_0x1c0e;(function(_0x159e78){var _0x4f60f8=_0x1c0e;'use strict';var _0x554439=_0x38b309(_0x4f60f8('0x9f4'));_0x159e78[_0x4f60f8('0xd0e')]=function(){var _0x103c87=_0x4f60f8;try{var _0x365d68=new Uint8Array(0x1);return _0x365d68[_0x103c87('0xcb9')]={'__proto__':Uint8Array[_0x103c87('0x539')],'foo':function(){return 0x2a;}},0x2a===_0x365d68[_0x103c87('0x81e')]();}catch(_0x5c9850){return!0x1;}}();var _0x24350b=_0x159e78[_0x4f60f8('0xd0e')]?0x7fffffff:0x3fffffff;function _0x159e78(_0x3ec252,_0x55a894,_0x4b5631){var _0x2c70f9=_0x4f60f8;return _0x159e78[_0x2c70f9('0xd0e')]||this instanceof _0x159e78?_0x2c70f9('0x218')==typeof _0x3ec252?_0x33e609(this,_0x3ec252):function(_0xb6a3d1,_0x4d004b,_0x398b7f,_0x512976){var _0x3c645b=_0x2c70f9;if(_0x3c645b('0x218')==typeof _0x4d004b)throw new TypeError(_0x3c645b('0xa47'));if(_0x3c645b('0xbfa')!=typeof ArrayBuffer&&_0x4d004b instanceof ArrayBuffer)return function(_0x24e7dc,_0x5881bb,_0x37851b,_0x4c0cc5){var _0x462147=_0x3c645b;if(_0x37851b<0x0||_0x5881bb[_0x462147('0x4c4')]<_0x37851b)throw new RangeError(_0x462147('0x12b'));if(_0x5881bb[_0x462147('0x4c4')]<_0x37851b+(_0x4c0cc5||0x0))throw new RangeError(_0x462147('0x3f9'));var _0x1ebb1e;return _0x1ebb1e=void 0x0===_0x37851b&&void 0x0===_0x4c0cc5?new Uint8Array(_0x5881bb):void 0x0===_0x4c0cc5?new Uint8Array(_0x5881bb,_0x37851b):new Uint8Array(_0x5881bb,_0x37851b,_0x4c0cc5),_0x159e78[_0x462147('0xd0e')]?_0x1ebb1e[_0x462147('0xcb9')]=_0x159e78[_0x462147('0x539')]:_0x1ebb1e=_0x47c7ac(_0x24e7dc,_0x1ebb1e),_0x1ebb1e;}(_0xb6a3d1,_0x4d004b,_0x398b7f,_0x512976);if(_0x3c645b('0x3fd')==typeof _0x4d004b)return function(_0x346763,_0x10edf0){var _0xab070b=_0x3c645b,_0x227893=0x0|_0xb13f23(_0x10edf0),_0x5d7734=_0x385d6a(_0x346763,_0x227893),_0x4cebd8=_0x5d7734[_0xab070b('0x99f')](_0x10edf0);return _0x4cebd8!==_0x227893&&(_0x5d7734=_0x5d7734[_0xab070b('0x5fe')](0x0,_0x4cebd8)),_0x5d7734;}(_0xb6a3d1,_0x4d004b);return function(_0x521167,_0x5f2746){var _0x2b65af=_0x3c645b;if(_0x159e78['isBuffer'](_0x5f2746)){var _0x18966b=0x0|_0x587ffa(_0x5f2746[_0x2b65af('0x796')]),_0x4742ef=_0x385d6a(_0x521167,_0x18966b);return 0x0===_0x4742ef['length']||_0x5f2746[_0x2b65af('0x478')](_0x4742ef,0x0,0x0,_0x18966b),_0x4742ef;}if(_0x5f2746){if(_0x2b65af('0xbfa')!=typeof ArrayBuffer&&_0x5f2746[_0x2b65af('0x7db')]instanceof ArrayBuffer||'length'in _0x5f2746)return _0x2b65af('0x218')!=typeof _0x5f2746[_0x2b65af('0x796')]||(_0x22b959=_0x5f2746[_0x2b65af('0x796')])!=_0x22b959?_0x385d6a(_0x521167,0x0):_0x47c7ac(_0x521167,_0x5f2746);if(_0x2b65af('0x576')===_0x5f2746['type']&&Array[_0x2b65af('0xff')](_0x5f2746[_0x2b65af('0x38')]))return _0x47c7ac(_0x521167,_0x5f2746[_0x2b65af('0x38')]);}var _0x22b959;throw new TypeError('First\x20argument\x20must\x20be\x20a\x20string,\x20Buffer,\x20ArrayBuffer,\x20Array,\x20or\x20array-like\x20object.');}(_0xb6a3d1,_0x4d004b);}(this,_0x3ec252,_0x55a894,_0x4b5631):new _0x159e78(_0x3ec252,_0x55a894,_0x4b5631);}function _0x587ffa(_0x3e0909){var _0x3769e9=_0x4f60f8;if(_0x3e0909>=_0x24350b)throw new RangeError(_0x3769e9('0xd7c')+_0x24350b[_0x3769e9('0x6e9')](0x10)+_0x3769e9('0xa02'));return 0x0|_0x3e0909;}function _0x385d6a(_0x314698,_0x44ff44){var _0x3e4758=_0x4f60f8,_0x2b032a;return _0x159e78['TYPED_ARRAY_SUPPORT']?(_0x2b032a=new Uint8Array(_0x44ff44))[_0x3e4758('0xcb9')]=_0x159e78['prototype']:(null===(_0x2b032a=_0x314698)&&(_0x2b032a=new _0x159e78(_0x44ff44)),_0x2b032a[_0x3e4758('0x796')]=_0x44ff44),_0x2b032a;}function _0x33e609(_0x247448,_0x138a7b){var _0x3ad81a=_0x4f60f8,_0x4650e5=_0x385d6a(_0x247448,_0x138a7b<0x0?0x0:0x0|_0x587ffa(_0x138a7b));if(!_0x159e78[_0x3ad81a('0xd0e')])for(var _0x42a93f=0x0;_0x42a93f<_0x138a7b;++_0x42a93f)_0x4650e5[_0x42a93f]=0x0;return _0x4650e5;}function _0x47c7ac(_0x52b597,_0x337352){var _0x212872=_0x4f60f8;for(var _0x106d69=_0x337352[_0x212872('0x796')]<0x0?0x0:0x0|_0x587ffa(_0x337352[_0x212872('0x796')]),_0x22faeb=_0x385d6a(_0x52b597,_0x106d69),_0x4e58bb=0x0;_0x4e58bb<_0x106d69;_0x4e58bb+=0x1)_0x22faeb[_0x4e58bb]=0xff&_0x337352[_0x4e58bb];return _0x22faeb;}function _0x4a6476(_0x222760,_0x48080a){var _0x43960a=_0x4f60f8,_0x531584;_0x48080a=_0x48080a||0x1/0x0;for(var _0x2f4f25=_0x222760[_0x43960a('0x796')],_0x44312e=null,_0x4ad2c=[],_0x5508a8=0x0;_0x5508a8<_0x2f4f25;++_0x5508a8){if((_0x531584=_0x222760[_0x43960a('0x149')](_0x5508a8))>0xd7ff&&_0x531584<0xe000){if(!_0x44312e){if(_0x531584>0xdbff){(_0x48080a-=0x3)>-0x1&&_0x4ad2c[_0x43960a('0xb2')](0xef,0xbf,0xbd);continue;}if(_0x5508a8+0x1===_0x2f4f25){(_0x48080a-=0x3)>-0x1&&_0x4ad2c[_0x43960a('0xb2')](0xef,0xbf,0xbd);continue;}_0x44312e=_0x531584;continue;}if(_0x531584<0xdc00){(_0x48080a-=0x3)>-0x1&&_0x4ad2c[_0x43960a('0xb2')](0xef,0xbf,0xbd),_0x44312e=_0x531584;continue;}_0x531584=0x10000+(_0x44312e-0xd800<<0xa|_0x531584-0xdc00);}else _0x44312e&&(_0x48080a-=0x3)>-0x1&&_0x4ad2c[_0x43960a('0xb2')](0xef,0xbf,0xbd);if(_0x44312e=null,_0x531584<0x80){if((_0x48080a-=0x1)<0x0)break;_0x4ad2c[_0x43960a('0xb2')](_0x531584);}else{if(_0x531584<0x800){if((_0x48080a-=0x2)<0x0)break;_0x4ad2c[_0x43960a('0xb2')](_0x531584>>0x6|0xc0,0x3f&_0x531584|0x80);}else{if(_0x531584<0x10000){if((_0x48080a-=0x3)<0x0)break;_0x4ad2c[_0x43960a('0xb2')](_0x531584>>0xc|0xe0,_0x531584>>0x6&0x3f|0x80,0x3f&_0x531584|0x80);}else{if(!(_0x531584<0x110000))throw new Error('Invalid\x20code\x20point');if((_0x48080a-=0x4)<0x0)break;_0x4ad2c[_0x43960a('0xb2')](_0x531584>>0x12|0xf0,_0x531584>>0xc&0x3f|0x80,_0x531584>>0x6&0x3f|0x80,0x3f&_0x531584|0x80);}}}}return _0x4ad2c;}function _0xb13f23(_0x324009){var _0x2db3d7=_0x4f60f8;return _0x159e78['isBuffer'](_0x324009)?_0x324009[_0x2db3d7('0x796')]:_0x2db3d7('0xbfa')!=typeof ArrayBuffer&&_0x2db3d7('0xa25')==typeof ArrayBuffer['isView']&&(ArrayBuffer[_0x2db3d7('0x2c9')](_0x324009)||_0x324009 instanceof ArrayBuffer)?_0x324009['byteLength']:('string'!=typeof _0x324009&&(_0x324009=''+_0x324009),0x0===_0x324009[_0x2db3d7('0x796')]?0x0:_0x4a6476(_0x324009)[_0x2db3d7('0x796')]);}_0x159e78[_0x4f60f8('0xd0e')]&&(_0x159e78[_0x4f60f8('0x539')]['__proto__']=Uint8Array[_0x4f60f8('0x539')],_0x159e78[_0x4f60f8('0xcb9')]=Uint8Array,_0x4f60f8('0xbfa')!=typeof Symbol&&Symbol['species']&&_0x159e78[Symbol[_0x4f60f8('0x730')]]===_0x159e78&&Object[_0x4f60f8('0x751')](_0x159e78,Symbol['species'],{'value':null,'configurable':!0x0,'enumerable':!0x1,'writable':!0x1})),_0x159e78['prototype'][_0x4f60f8('0x99f')]=function(_0x4f281e,_0x518989,_0x45925d){var _0x16bc4a=_0x4f60f8;void 0x0===_0x518989||void 0x0===_0x45925d&&_0x16bc4a('0x3fd')==typeof _0x518989?(_0x45925d=this[_0x16bc4a('0x796')],_0x518989=0x0):isFinite(_0x518989)&&(_0x518989|=0x0,isFinite(_0x45925d)?_0x45925d|=0x0:_0x45925d=void 0x0);var _0x4d300c=this['length']-_0x518989;if((void 0x0===_0x45925d||_0x45925d>_0x4d300c)&&(_0x45925d=_0x4d300c),_0x4f281e['length']>0x0&&(_0x45925d<0x0||_0x518989<0x0)||_0x518989>this[_0x16bc4a('0x796')])throw new RangeError(_0x16bc4a('0x977'));return function(_0x305e56,_0x30bf47,_0x533351,_0x4c9257){var _0x5e4e39=_0x16bc4a;return function(_0x1f7f3a,_0x472d57,_0x2f55ae,_0xbfbde9){var _0x20fef7=_0x1c0e;for(var _0x35dd2c=0x0;_0x35dd2c<_0xbfbde9&&!(_0x35dd2c+_0x2f55ae>=_0x472d57[_0x20fef7('0x796')]||_0x35dd2c>=_0x1f7f3a[_0x20fef7('0x796')]);++_0x35dd2c)_0x472d57[_0x35dd2c+_0x2f55ae]=_0x1f7f3a[_0x35dd2c];return _0x35dd2c;}(_0x4a6476(_0x30bf47,_0x305e56[_0x5e4e39('0x796')]-_0x533351),_0x305e56,_0x533351,_0x4c9257);}(this,_0x4f281e,_0x518989,_0x45925d);},_0x159e78['prototype'][_0x4f60f8('0x5fe')]=function(_0x49511b,_0x4fa2c7){var _0x215461=_0x4f60f8,_0x3ef748,_0x484158=this[_0x215461('0x796')];if((_0x49511b=~~_0x49511b)<0x0?(_0x49511b+=_0x484158)<0x0&&(_0x49511b=0x0):_0x49511b>_0x484158&&(_0x49511b=_0x484158),(_0x4fa2c7=void 0x0===_0x4fa2c7?_0x484158:~~_0x4fa2c7)<0x0?(_0x4fa2c7+=_0x484158)<0x0&&(_0x4fa2c7=0x0):_0x4fa2c7>_0x484158&&(_0x4fa2c7=_0x484158),_0x4fa2c7<_0x49511b&&(_0x4fa2c7=_0x49511b),_0x159e78[_0x215461('0xd0e')])(_0x3ef748=this[_0x215461('0xd74')](_0x49511b,_0x4fa2c7))[_0x215461('0xcb9')]=_0x159e78[_0x215461('0x539')];else{var _0x2544bc=_0x4fa2c7-_0x49511b;_0x3ef748=new _0x159e78(_0x2544bc,void 0x0);for(var _0x512c46=0x0;_0x512c46<_0x2544bc;++_0x512c46)_0x3ef748[_0x512c46]=this[_0x512c46+_0x49511b];}return _0x3ef748;},_0x159e78[_0x4f60f8('0x539')][_0x4f60f8('0x478')]=function(_0x45d7e4,_0x49da9e,_0x277e59,_0x4b91ad){var _0x46a9e9=_0x4f60f8;if(_0x277e59||(_0x277e59=0x0),_0x4b91ad||0x0===_0x4b91ad||(_0x4b91ad=this[_0x46a9e9('0x796')]),_0x49da9e>=_0x45d7e4[_0x46a9e9('0x796')]&&(_0x49da9e=_0x45d7e4['length']),_0x49da9e||(_0x49da9e=0x0),_0x4b91ad>0x0&&_0x4b91ad<_0x277e59&&(_0x4b91ad=_0x277e59),_0x4b91ad===_0x277e59)return 0x0;if(0x0===_0x45d7e4[_0x46a9e9('0x796')]||0x0===this['length'])return 0x0;if(_0x49da9e<0x0)throw new RangeError('targetStart\x20out\x20of\x20bounds');if(_0x277e59<0x0||_0x277e59>=this[_0x46a9e9('0x796')])throw new RangeError(_0x46a9e9('0x6d7'));if(_0x4b91ad<0x0)throw new RangeError(_0x46a9e9('0xc22'));_0x4b91ad>this['length']&&(_0x4b91ad=this[_0x46a9e9('0x796')]),_0x45d7e4[_0x46a9e9('0x796')]-_0x49da9e<_0x4b91ad-_0x277e59&&(_0x4b91ad=_0x45d7e4[_0x46a9e9('0x796')]-_0x49da9e+_0x277e59);var _0x2389a4,_0xd2ddbe=_0x4b91ad-_0x277e59;if(this===_0x45d7e4&&_0x277e59<_0x49da9e&&_0x49da9e<_0x4b91ad)for(_0x2389a4=_0xd2ddbe-0x1;_0x2389a4>=0x0;--_0x2389a4)_0x45d7e4[_0x2389a4+_0x49da9e]=this[_0x2389a4+_0x277e59];else{if(_0xd2ddbe<0x3e8||!_0x159e78[_0x46a9e9('0xd0e')])for(_0x2389a4=0x0;_0x2389a4<_0xd2ddbe;++_0x2389a4)_0x45d7e4[_0x2389a4+_0x49da9e]=this[_0x2389a4+_0x277e59];else Uint8Array['prototype'][_0x46a9e9('0x7f8')][_0x46a9e9('0x964')](_0x45d7e4,this['subarray'](_0x277e59,_0x277e59+_0xd2ddbe),_0x49da9e);}return _0xd2ddbe;},_0x159e78[_0x4f60f8('0x539')]['fill']=function(_0x94a06a,_0x281286,_0x58047d){var _0x444780=_0x4f60f8;if(_0x444780('0x3fd')==typeof _0x94a06a){if(_0x444780('0x3fd')==typeof _0x281286?(_0x281286=0x0,_0x58047d=this[_0x444780('0x796')]):'string'==typeof _0x58047d&&(_0x58047d=this[_0x444780('0x796')]),0x1===_0x94a06a[_0x444780('0x796')]){var _0x3e8ac7=_0x94a06a[_0x444780('0x149')](0x0);_0x3e8ac7<0x100&&(_0x94a06a=_0x3e8ac7);}}else _0x444780('0x218')==typeof _0x94a06a&&(_0x94a06a&=0xff);if(_0x281286<0x0||this[_0x444780('0x796')]<_0x281286||this[_0x444780('0x796')]<_0x58047d)throw new RangeError(_0x444780('0x966'));if(_0x58047d<=_0x281286)return this;var _0xbe3463;if(_0x281286>>>=0x0,_0x58047d=void 0x0===_0x58047d?this[_0x444780('0x796')]:_0x58047d>>>0x0,_0x94a06a||(_0x94a06a=0x0),_0x444780('0x218')==typeof _0x94a06a)for(_0xbe3463=_0x281286;_0xbe3463<_0x58047d;++_0xbe3463)this[_0xbe3463]=_0x94a06a;else{var _0x2cfb93=_0x159e78[_0x444780('0x20')](_0x94a06a)?_0x94a06a:new _0x159e78(_0x94a06a),_0xeaa047=_0x2cfb93[_0x444780('0x796')];for(_0xbe3463=0x0;_0xbe3463<_0x58047d-_0x281286;++_0xbe3463)this[_0xbe3463+_0x281286]=_0x2cfb93[_0xbe3463%_0xeaa047];}return this;},_0x159e78[_0x4f60f8('0x4c2')]=function(_0x1566c9,_0x281182){var _0x5ae11e=_0x4f60f8;if(!_0x554439(_0x1566c9))throw new TypeError(_0x5ae11e('0x6f6'));if(0x0===_0x1566c9['length'])return _0x385d6a(null,0x0);var _0x429d1b;if(void 0x0===_0x281182)for(_0x281182=0x0,_0x429d1b=0x0;_0x429d1b<_0x1566c9['length'];++_0x429d1b)_0x281182+=_0x1566c9[_0x429d1b][_0x5ae11e('0x796')];var _0x16d9b9=_0x33e609(null,_0x281182),_0xc13ec3=0x0;for(_0x429d1b=0x0;_0x429d1b<_0x1566c9[_0x5ae11e('0x796')];++_0x429d1b){var _0x3d28ca=_0x1566c9[_0x429d1b];if(!_0x159e78[_0x5ae11e('0x20')](_0x3d28ca))throw new TypeError('\x22list\x22\x20argument\x20must\x20be\x20an\x20Array\x20of\x20Buffers');_0x3d28ca['copy'](_0x16d9b9,_0xc13ec3),_0xc13ec3+=_0x3d28ca[_0x5ae11e('0x796')];}return _0x16d9b9;},_0x159e78[_0x4f60f8('0x4c4')]=_0xb13f23,_0x159e78[_0x4f60f8('0x539')][_0x4f60f8('0xdca')]=!0x0,_0x159e78[_0x4f60f8('0x20')]=function(_0x11fa09){return!(null==_0x11fa09||!_0x11fa09['_isBuffer']);},_0x2daa30[_0x4f60f8('0xd7')][_0x4f60f8('0xd97')]=function(_0xa0d3d){var _0x55dee3=_0x4f60f8,_0x59c4ef=new _0x159e78(_0xa0d3d);return _0x59c4ef[_0x55dee3('0x9b9')](0x0),_0x59c4ef;},_0x2daa30[_0x4f60f8('0xd7')][_0x4f60f8('0x40e')]=function(_0x4d5cf7){return new _0x159e78(_0x4d5cf7);};}[_0x346f49('0x964')](this,_0x38b309(_0x346f49('0x7db'))[_0x346f49('0x576')]));},{'buffer':0x2,'isarray':0x5}],0x23:[function(_0x388353,_0x1ec806,_0x628bca){var _0x347f1a=_0x1c0e;'use strict';var _0x55ae07=_0x360dbb(_0x388353(_0x347f1a('0x9d6'))),_0x522350=_0x360dbb(_0x388353(_0x347f1a('0x9bd')));function _0x360dbb(_0x2b5523){return _0x2b5523&&_0x2b5523['__esModule']?_0x2b5523:{'default':_0x2b5523};}function _0x26508a(_0x1e2037){var _0x53a6b6=_0x347f1a;return(_0x26508a=_0x53a6b6('0xa25')==typeof Symbol&&_0x53a6b6('0xb5')==typeof Symbol[_0x53a6b6('0x4ae')]?function(_0x1123db){return typeof _0x1123db;}:function(_0x30a152){var _0xd22ae=_0x53a6b6;return _0x30a152&&_0xd22ae('0xa25')==typeof Symbol&&_0x30a152[_0xd22ae('0x63e')]===Symbol&&_0x30a152!==Symbol[_0xd22ae('0x539')]?'symbol':typeof _0x30a152;})(_0x1e2037);}function _0x2dfdb1(_0x143e9b,_0x888835){var _0x3cd2e4=_0x347f1a;if(!(_0x143e9b instanceof _0x888835))throw new TypeError(_0x3cd2e4('0x9a0'));}function _0x2018d9(_0x59843d,_0x25389e){var _0x38e402=_0x347f1a;for(var _0x9ebbb6=0x0;_0x9ebbb6<_0x25389e[_0x38e402('0x796')];_0x9ebbb6++){var _0x2f46e4=_0x25389e[_0x9ebbb6];_0x2f46e4[_0x38e402('0xdc2')]=_0x2f46e4[_0x38e402('0xdc2')]||!0x1,_0x2f46e4[_0x38e402('0x48d')]=!0x0,_0x38e402('0x920')in _0x2f46e4&&(_0x2f46e4[_0x38e402('0x903')]=!0x0),Object[_0x38e402('0x751')](_0x59843d,_0x2f46e4[_0x38e402('0x3ba')],_0x2f46e4);}}function _0x30f3ec(_0x43516d,_0xc0f2e2,_0x5dfe61){var _0x214531=_0x347f1a;return _0xc0f2e2&&_0x2018d9(_0x43516d[_0x214531('0x539')],_0xc0f2e2),_0x5dfe61&&_0x2018d9(_0x43516d,_0x5dfe61),_0x43516d;}function _0x152d42(_0xc2045c){return function(){var _0xaf81ed=_0x1c0e,_0x26ca1d,_0xf504b6=_0x2ba091(_0xc2045c);if(_0x126310()){var _0x460c2a=_0x2ba091(this)[_0xaf81ed('0x63e')];_0x26ca1d=Reflect[_0xaf81ed('0x195')](_0xf504b6,arguments,_0x460c2a);}else _0x26ca1d=_0xf504b6[_0xaf81ed('0x365')](this,arguments);return _0x55229d(this,_0x26ca1d);};}function _0x55229d(_0x2dd701,_0x3f5867){var _0x9278db=_0x347f1a;return!_0x3f5867||_0x9278db('0xbfd')!==_0x26508a(_0x3f5867)&&_0x9278db('0xa25')!=typeof _0x3f5867?function(_0x7f7454){var _0x1c2b7e=_0x9278db;if(void 0x0===_0x7f7454)throw new ReferenceError(_0x1c2b7e('0xcf6'));return _0x7f7454;}(_0x2dd701):_0x3f5867;}function _0x126310(){var _0x16ba36=_0x347f1a;if(_0x16ba36('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x16ba36('0x195')][_0x16ba36('0x460')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date[_0x16ba36('0x539')][_0x16ba36('0x6e9')][_0x16ba36('0x964')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0xf73397){return!0x1;}}function _0x2ba091(_0x1bc252){var _0x4f56ac=_0x347f1a;return(_0x2ba091=Object[_0x4f56ac('0x489')]?Object[_0x4f56ac('0x85e')]:function(_0x81dfa0){var _0xfe38d5=_0x4f56ac;return _0x81dfa0['__proto__']||Object[_0xfe38d5('0x85e')](_0x81dfa0);})(_0x1bc252);}function _0x39da97(_0xde1f8b,_0x435138){var _0x4ff339=_0x347f1a;if('function'!=typeof _0x435138&&null!==_0x435138)throw new TypeError(_0x4ff339('0xc4b'));_0xde1f8b['prototype']=Object['create'](_0x435138&&_0x435138[_0x4ff339('0x539')],{'constructor':{'value':_0xde1f8b,'writable':!0x0,'configurable':!0x0}}),_0x435138&&_0x4f7261(_0xde1f8b,_0x435138);}function _0x4f7261(_0x250d52,_0x33f7ce){var _0x5e0f9d=_0x347f1a;return(_0x4f7261=Object[_0x5e0f9d('0x489')]||function(_0x5dbc49,_0x3113a3){var _0x17f639=_0x5e0f9d;return _0x5dbc49[_0x17f639('0xcb9')]=_0x3113a3,_0x5dbc49;})(_0x250d52,_0x33f7ce);}var _0x47eabf=function(_0x67a0a7){var _0x41c107=_0x347f1a;_0x39da97(_0x2e50ad,_0x67a0a7);var _0xf4affc=_0x152d42(_0x2e50ad);function _0x2e50ad(){var _0x565fe7=_0x1c0e;return _0x2dfdb1(this,_0x2e50ad),_0xf4affc[_0x565fe7('0x365')](this,arguments);}return _0x30f3ec(_0x2e50ad,[{'key':_0x41c107('0x433'),'value':function(){return['id','name'];}},{'key':_0x41c107('0x445'),'value':function(){return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'}];}},{'key':'getFormFields','value':function(){var _0x517c5e=_0x41c107;return[['id',{'label':'ID','type':_0x517c5e('0xa05')}],[_0x517c5e('0xce'),{'label':_0x517c5e('0xc8d'),'type':_0x517c5e('0x941'),'validation':''}]];}}]),_0x2e50ad;}(_0x55ae07[_0x347f1a('0x8fd')]),_0x9615d1=function(_0x40c0d3){var _0xf07919=_0x347f1a;_0x39da97(_0x488273,_0x40c0d3);var _0x352013=_0x152d42(_0x488273);function _0x488273(_0x182491,_0x346b5e,_0x5a29e7,_0x5d5113){var _0x4a5711=_0x1c0e,_0x2a7b26;return _0x2dfdb1(this,_0x488273),(_0x2a7b26=_0x352013[_0x4a5711('0x964')](this,_0x182491,_0x346b5e,_0x5a29e7,_0x5d5113))[_0x4a5711('0xd4f')]=_0x4a5711('0x1c8'),_0x2a7b26[_0x4a5711('0xb76')]='overtimerequest',_0x2a7b26[_0x4a5711('0xa86')]='overtime',_0x2a7b26;}return _0x30f3ec(_0x488273,[{'key':_0xf07919('0x433'),'value':function(){var _0x31e49f=_0xf07919;return['id',_0x31e49f('0x935'),_0x31e49f('0x2df'),_0x31e49f('0x953'),_0x31e49f('0x162'),'project',_0x31e49f('0x525')];}},{'key':'getHeaders','value':function(){var _0x29ae94=_0xf07919;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x29ae94('0x66c')},{'sTitle':_0x29ae94('0xa0b')},{'sTitle':_0x29ae94('0x3a0')},{'sTitle':_0x29ae94('0x557')},{'sTitle':'Project'},{'sTitle':_0x29ae94('0x2ff')}];}},{'key':_0xf07919('0x73d'),'value':function(){var _0x5c51eb=_0xf07919;return[['id',{'label':'ID','type':_0x5c51eb('0xa05')}],[_0x5c51eb('0x935'),{'label':_0x5c51eb('0x66c'),'type':_0x5c51eb('0xdc5'),'sort':_0x5c51eb('0x649'),'allow-null':!0x1,'remote-source':[_0x5c51eb('0x66c'),'id',_0x5c51eb('0xa9e'),_0x5c51eb('0x5f')]}],[_0x5c51eb('0x2df'),{'label':_0x5c51eb('0xa0b'),'type':'select2','allow-null':!0x1,'remote-source':[_0x5c51eb('0x707'),'id','name']}],['start_time',{'label':'Start\x20Time','type':_0x5c51eb('0x48b'),'validation':''}],['end_time',{'label':_0x5c51eb('0x557'),'type':_0x5c51eb('0x48b'),'validation':''}],['project',{'label':'Project','type':'select2','allow-null':!0x0,'null=label':_0x5c51eb('0x649'),'remote-source':[_0x5c51eb('0x3b3'),'id',_0x5c51eb('0xce')]}],['notes',{'label':'Notes','type':'textarea','validation':'none'}]];}}]),_0x488273;}(_0x522350[_0x347f1a('0x8fd')]);_0x1ec806[_0x347f1a('0xd7')]={'OvertimeCategoryAdapter':_0x47eabf,'EmployeeOvertimeAdminAdapter':_0x9615d1};},{'../../../api/AdapterBase':0x27,'../../../api/ApproveAdminAdapter':0x28}],0x24:[function(_0xcafa3f,_0x451148,_0x54772a){var _0x1d8438=_0x1c0e;'use strict';var _0x433511,_0x37c597=(_0x433511=_0xcafa3f(_0x1d8438('0x9d6')))&&_0x433511['__esModule']?_0x433511:{'default':_0x433511};function _0x1f503e(_0x5e43a7){var _0x1f635a=_0x1d8438;return(_0x1f503e=_0x1f635a('0xa25')==typeof Symbol&&_0x1f635a('0xb5')==typeof Symbol[_0x1f635a('0x4ae')]?function(_0x4eae17){return typeof _0x4eae17;}:function(_0x6d46f8){var _0x4a1202=_0x1f635a;return _0x6d46f8&&_0x4a1202('0xa25')==typeof Symbol&&_0x6d46f8[_0x4a1202('0x63e')]===Symbol&&_0x6d46f8!==Symbol[_0x4a1202('0x539')]?_0x4a1202('0xb5'):typeof _0x6d46f8;})(_0x5e43a7);}function _0x5e795c(_0x5aa171,_0x50297e){var _0x5f1687=_0x1d8438;if(!(_0x5aa171 instanceof _0x50297e))throw new TypeError(_0x5f1687('0x9a0'));}function _0x39086f(_0x369605,_0x28afd4){var _0x465a62=_0x1d8438;for(var _0x105130=0x0;_0x105130<_0x28afd4[_0x465a62('0x796')];_0x105130++){var _0x2caa85=_0x28afd4[_0x105130];_0x2caa85[_0x465a62('0xdc2')]=_0x2caa85[_0x465a62('0xdc2')]||!0x1,_0x2caa85[_0x465a62('0x48d')]=!0x0,'value'in _0x2caa85&&(_0x2caa85['writable']=!0x0),Object[_0x465a62('0x751')](_0x369605,_0x2caa85['key'],_0x2caa85);}}function _0x56a517(_0x5c404f,_0x3ff05b,_0x4ae035){var _0x4b215e=_0x1d8438;return _0x3ff05b&&_0x39086f(_0x5c404f[_0x4b215e('0x539')],_0x3ff05b),_0x4ae035&&_0x39086f(_0x5c404f,_0x4ae035),_0x5c404f;}function _0x252575(_0x27e453){return function(){var _0x1eb9cb=_0x1c0e,_0x560092,_0x1b81ff=_0x40e174(_0x27e453);if(_0x283cad()){var _0x8e7186=_0x40e174(this)[_0x1eb9cb('0x63e')];_0x560092=Reflect['construct'](_0x1b81ff,arguments,_0x8e7186);}else _0x560092=_0x1b81ff[_0x1eb9cb('0x365')](this,arguments);return _0x5d1c93(this,_0x560092);};}function _0x5d1c93(_0x5a0a9f,_0x1ef99c){var _0x3c1ab6=_0x1d8438;return!_0x1ef99c||_0x3c1ab6('0xbfd')!==_0x1f503e(_0x1ef99c)&&_0x3c1ab6('0xa25')!=typeof _0x1ef99c?function(_0x42cc3e){var _0x10c783=_0x3c1ab6;if(void 0x0===_0x42cc3e)throw new ReferenceError(_0x10c783('0xcf6'));return _0x42cc3e;}(_0x5a0a9f):_0x1ef99c;}function _0x283cad(){var _0x35406d=_0x1d8438;if(_0x35406d('0xbfa')==typeof Reflect||!Reflect[_0x35406d('0x195')])return!0x1;if(Reflect[_0x35406d('0x195')][_0x35406d('0x460')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date[_0x35406d('0x539')][_0x35406d('0x6e9')]['call'](Reflect[_0x35406d('0x195')](Date,[],function(){})),!0x0;}catch(_0xe845d6){return!0x1;}}function _0x40e174(_0x2d8bef){var _0x69fd1c=_0x1d8438;return(_0x40e174=Object[_0x69fd1c('0x489')]?Object[_0x69fd1c('0x85e')]:function(_0x3232fe){var _0x52574b=_0x69fd1c;return _0x3232fe[_0x52574b('0xcb9')]||Object['getPrototypeOf'](_0x3232fe);})(_0x2d8bef);}function _0x21a712(_0x40656e,_0x286f92){var _0x3cf34d=_0x1d8438;if(_0x3cf34d('0xa25')!=typeof _0x286f92&&null!==_0x286f92)throw new TypeError(_0x3cf34d('0xc4b'));_0x40656e[_0x3cf34d('0x539')]=Object['create'](_0x286f92&&_0x286f92['prototype'],{'constructor':{'value':_0x40656e,'writable':!0x0,'configurable':!0x0}}),_0x286f92&&_0x599a49(_0x40656e,_0x286f92);}function _0x599a49(_0x1b52e0,_0x76a7b3){var _0x49d3c2=_0x1d8438;return(_0x599a49=Object[_0x49d3c2('0x489')]||function(_0x18571d,_0x60a189){var _0x9914b7=_0x49d3c2;return _0x18571d[_0x9914b7('0xcb9')]=_0x60a189,_0x18571d;})(_0x1b52e0,_0x76a7b3);}var _0x14fe8b=function(_0x38986c){var _0x262e9e=_0x1d8438;_0x21a712(_0x17ad42,_0x38986c);var _0x2f7f47=_0x252575(_0x17ad42);function _0x17ad42(_0x138217,_0x476c27,_0x10d40a,_0x94024f){var _0x33a9a2=_0x1c0e,_0xf16642;return _0x5e795c(this,_0x17ad42),(_0xf16642=_0x2f7f47[_0x33a9a2('0x964')](this,_0x138217,_0x476c27,_0x10d40a,_0x94024f))['_construct'](),_0xf16642;}return _0x56a517(_0x17ad42,[{'key':_0x262e9e('0xc6c'),'value':function(){var _0x4115d4=_0x262e9e;this['_formFileds']=[['id',{'label':'ID','type':'hidden'}],['name',{'label':_0x4115d4('0xc8d'),'type':_0x4115d4('0x530'),'validation':''}],['parameters',{'label':_0x4115d4('0x65f'),'type':_0x4115d4('0x2a9'),'validation':_0x4115d4('0x649')}]],this[_0x4115d4('0x100')]=!0x1;}},{'key':'_initLocalFormFields','value':function(){var _0x98ee74=_0x262e9e;this[_0x98ee74('0x7e3')]=[['id',{'label':'ID','type':'hidden'}],[_0x98ee74('0xce'),{'label':'Name','type':_0x98ee74('0x530'),'validation':''}],[_0x98ee74('0x3d4'),{'label':'Parameters','type':_0x98ee74('0x2a9'),'validation':_0x98ee74('0x649')}]];}},{'key':_0x262e9e('0x7a2'),'value':function(_0x4cd713){this['remoteFieldsExists']=_0x4cd713;}},{'key':'getDataMapping','value':function(){var _0x4b312b=_0x262e9e;return['id',_0x4b312b('0xbc2'),_0x4b312b('0xce'),_0x4b312b('0x212'),_0x4b312b('0x3d4')];}},{'key':'getHeaders','value':function(){var _0x1e3d66=_0x262e9e;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'','bSortable':!0x1,'sWidth':'22px'},{'sTitle':_0x1e3d66('0xc8d'),'sWidth':_0x1e3d66('0x5ce')},{'sTitle':_0x1e3d66('0xd3a')},{'sTitle':'Parameters','bVisible':!0x1}];}},{'key':_0x262e9e('0x73d'),'value':function(){return this['_formFileds'];}},{'key':_0x262e9e('0x419'),'value':function(_0x1d5fc0){var _0x548d7c=_0x262e9e,_0x1c2630=this;this[_0x548d7c('0x3f5')]();var _0x5cc016=this['_formFileds'][_0x548d7c('0x796')],_0x3b4f92=[];this[_0x548d7c('0x100')]=!0x1;for(var _0x39e5fd=0x0;_0x39e5fd<_0x5cc016;_0x39e5fd++)if(_0x548d7c('0x2a9')===this['_formFileds'][_0x39e5fd][0x1][_0x548d7c('0x18b')]){var _0x3a1c29=JSON[_0x548d7c('0x22f')](_0x1d5fc0[this[_0x548d7c('0x7e3')][_0x39e5fd][0x0]]);_0x3b4f92[_0x548d7c('0xb2')](this['_formFileds'][_0x39e5fd][0x0]),_0x3a1c29[_0x548d7c('0xc21')](function(_0x1b9662){var _0x56ead9=_0x548d7c;_0x1c2630[_0x56ead9('0x7e3')][_0x56ead9('0xb2')](_0x1b9662),void 0x0!==_0x1b9662[0x1][_0x56ead9('0x26d')]&&null!=_0x1b9662[0x1][_0x56ead9('0x26d')]&&(_0x1c2630[_0x56ead9('0x100')]=!0x0);});}var _0x254793=[];_0x1c2630[_0x548d7c('0x7e3')][_0x548d7c('0xc21')](function(_0x1c6e85){var _0x3512bf=_0x548d7c;jQuery[_0x3512bf('0xaa7')](_0x1c6e85[0x0],_0x3b4f92)<0x0&&_0x254793[_0x3512bf('0xb2')](_0x1c6e85);}),_0x1c2630[_0x548d7c('0x7e3')]=_0x254793;}},{'key':_0x262e9e('0xf8'),'value':function(_0x3da0a0){var _0x1f4f50=_0x262e9e,_0x3c449c=this;if(this[_0x1f4f50('0x419')](_0x3da0a0),this[_0x1f4f50('0x100')])this[_0x1f4f50('0x44e')](function(){var _0x52b91e=_0x1f4f50;_0x3c449c[_0x52b91e('0x3cd')](_0x3da0a0);});else this[_0x1f4f50('0x44e')](),_0x3c449c['renderFormNew'](_0x3da0a0);this['currentReport']=_0x3da0a0;}},{'key':_0x262e9e('0x3cd'),'value':function(_0x4568d7){var _0x55d8e3=_0x262e9e,_0x4453d1=[];null!=_0x4568d7&&void 0x0!==_0x4568d7||(this['currentId']=null),this[_0x55d8e3('0xc08')](_0x4568d7);for(var _0xeee4c,_0x4d0b6f=this[_0x55d8e3('0x15f')][_0x55d8e3('0xcae')],_0x4ead31='',_0x1aa220=this[_0x55d8e3('0x73d')](),_0x56b611=0x0;_0x56b611<_0x1aa220['length'];_0x56b611++){var _0x900b6e=this[_0x55d8e3('0x87e')](_0x1aa220[_0x56b611][0x0]);if(''===_0x900b6e||void 0x0===_0x900b6e)_0x4ead31+=this[_0x55d8e3('0x1c6')](_0x1aa220[_0x56b611]);else{var _0x4015d9=_0x4568d7[_0x900b6e];''!==_0x4015d9&&null!=_0x4015d9&&void 0x0!==_0x4015d9&&''!==_0x4015d9[_0x55d8e3('0x959')]()?_0x4ead31+=this[_0x55d8e3('0x1c6')](JSON['parse'](_0x4015d9)):_0x4ead31+=this['renderFormField'](_0x1aa220[_0x56b611]);}}_0x4d0b6f=(_0x4d0b6f=_0x4d0b6f[_0x55d8e3('0x8f9')](/_id_/g,''[_0x55d8e3('0x4c2')](this[_0x55d8e3('0x316')](),_0x55d8e3('0x708'))))[_0x55d8e3('0x8f9')](/_fields_/g,_0x4ead31);var _0x5dfd61=this[_0x55d8e3('0x1e3')](0xe);this['showFormOnPopup']?(_0xeee4c=$(_0x55d8e3('0xe4')))[_0x55d8e3('0x7c9')]('id',_0x5dfd61):_0xeee4c=$('#'['concat'](this['getTableName'](),_0x55d8e3('0x805'))),_0xeee4c[_0x55d8e3('0xd34')](_0x4d0b6f),_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0x967'))[_0x55d8e3('0x3e3')]({'viewMode':0x2}),_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0x170'))[_0x55d8e3('0x7cf')]({'language':'en','pickDate':!0x1}),_0xeee4c[_0x55d8e3('0x11c')]('.datetimefield')['datetimepicker']({'language':'en'}),_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0xa5b'))[_0x55d8e3('0x354')](),_0xeee4c['find'](_0x55d8e3('0x11'))['each'](function(){var _0x5d9f42=_0x55d8e3;$(this)[_0x5d9f42('0xdc5')]()['select2'](_0x5d9f42('0x6ae'),$(this)[_0x5d9f42('0x11c')]('option:eq(0)')['val']());}),_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0xbd'))[_0x55d8e3('0xc63')](function(){var _0x3690be=_0x55d8e3;$(this)[_0x3690be('0xdc5')]()['on'](_0x3690be('0xdb4'),function(_0x4dd219){var _0x5c3210=_0x3690be,_0xa39944=$(this)[_0x5c3210('0xd2a')](_0x5c3210('0x976')),_0x2d9b10=_0xa39944['find'](_0x5c3210('0xafc'))['height']();_0xa39944[_0x5c3210('0x3e')](parseInt(_0x2d9b10,0xa));});}),_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0x59e'))['each'](function(){var _0x34372a=_0x55d8e3;_0x4453d1[_0x34372a('0xb2')]($(this)[_0x34372a('0x7c9')]('id'));});for(var _0x4f7762=0x0;_0x4f7762<_0x1aa220[_0x55d8e3('0x796')];_0x4f7762++)'datagroup'===_0x1aa220[_0x4f7762][0x1][_0x55d8e3('0x18b')]&&_0xeee4c['find']('#'[_0x55d8e3('0x4c2')](_0x1aa220[_0x4f7762][0x0]))[_0x55d8e3('0x38')](_0x55d8e3('0x85b'),_0x1aa220[_0x4f7762]);if(!0x1===this[_0x55d8e3('0x14f')]?_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0x84e'))[_0x55d8e3('0x52')]():(_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0x84e'))[_0x55d8e3('0x123')](),_0xeee4c['find']('.saveBtn')[_0x55d8e3('0x38')]('modJs',this),_0xeee4c['find'](_0x55d8e3('0x84e'))['on']('click',function(){var _0x29ff1a=_0x55d8e3;return null!=$(this)[_0x29ff1a('0x38')](_0x29ff1a('0x6fe'))[_0x29ff1a('0x520')]&&void 0x0!==$(this)[_0x29ff1a('0x38')](_0x29ff1a('0x6fe'))[_0x29ff1a('0x520')]?$(this)['data'](_0x29ff1a('0x6fe'))[_0x29ff1a('0x18d')]($(this)['data'](_0x29ff1a('0x6fe'))[_0x29ff1a('0xbbb')](),$(this)[_0x29ff1a('0x38')]('modJs')[_0x29ff1a('0x520')]):$(this)[_0x29ff1a('0x38')]('modJs')[_0x29ff1a('0x18d')](),!0x1;})),!0x1===this['showCancel']?_0xeee4c[_0x55d8e3('0x11c')]('.cancelBtn')[_0x55d8e3('0x52')]():(_0xeee4c['find'](_0x55d8e3('0xd98'))['off'](),_0xeee4c[_0x55d8e3('0x11c')]('.cancelBtn')['data']('modJs',this),_0xeee4c[_0x55d8e3('0x11c')](_0x55d8e3('0xd98'))['on'](_0x55d8e3('0x76'),function(){var _0x2c6078=_0x55d8e3;return $(this)['data'](_0x2c6078('0x6fe'))[_0x2c6078('0x536')](),!0x1;})),this[_0x55d8e3('0xb30')]){this[_0x55d8e3('0xaab')]('Edit','',null,null,!0x0),$(_0x55d8e3('0xc7b'))['html'](''),$(_0x55d8e3('0xc7b'))['append'](_0xeee4c);for(var _0x416a18=0x0;_0x416a18<_0x4453d1[_0x55d8e3('0x796')];_0x416a18++)$('#'['concat'](_0x4453d1[_0x416a18]))[_0x55d8e3('0x38')](_0x55d8e3('0xbe'),new SignaturePad(document[_0x55d8e3('0x56a')](_0x4453d1[_0x416a18])));void 0x0!==_0x4568d7&&null!=_0x4568d7&&this['fillForm'](_0x4568d7,'#'[_0x55d8e3('0x4c2')](_0x5dfd61));}else{$('#'[_0x55d8e3('0x4c2')](this['getTableName'](),_0x55d8e3('0x805')))[_0x55d8e3('0x462')](),$('#'['concat'](this[_0x55d8e3('0x316')]()))[_0x55d8e3('0xafe')]();for(var _0x492664=0x0;_0x492664<_0x4453d1[_0x55d8e3('0x796')];_0x492664++)$('#'['concat'](_0x4453d1[_0x492664]))['data'](_0x55d8e3('0xbe'),new SignaturePad(document[_0x55d8e3('0x56a')](_0x4453d1[_0x492664])));void 0x0!==_0x4568d7&&null!=_0x4568d7&&this[_0x55d8e3('0x27d')](_0x4568d7);}this[_0x55d8e3('0xad3')](_0x4568d7,_0xeee4c);}},{'key':_0x262e9e('0x388'),'value':function(_0x2a8ccc,_0x2020a2){var _0x421ac4=_0x262e9e,_0x5f1950=_0x421ac4('0x381');return _0x5f1950=(_0x5f1950=_0x5f1950[_0x421ac4('0x8f9')](/_id_/g,_0x2a8ccc))[_0x421ac4('0x8f9')](/_BASE_/g,this[_0x421ac4('0xc7e')]);}},{'key':_0x262e9e('0x816'),'value':function(_0x4766f2,_0xcc2fc3){var _0x192320=_0x262e9e,_0x383ebf,_0x13b9cd=_0xcc2fc3[0x0];if(_0x383ebf=(_0x383ebf=0x0===_0x13b9cd[_0x192320('0xcd8')](_0x192320('0xb9'))?_0x192320('0xd17')['concat'](_0x13b9cd,'\x22\x20target=\x22_blank\x22\x20style=\x22font-size:14px;font-weight:bold;\x22>Download\x20Report\x20\x20'):_0x192320('0xd17')[_0x192320('0x4c2')](modJs[_0x192320('0x139')](_0x192320('0x269'),{'file':_0x13b9cd}),_0x192320('0x41c')))['replace'](/_BASE_/g,this[_0x192320('0xc7e')]),_0x192320('0xd1e')===this['currentReport'][_0x192320('0x7df')]||_0x192320('0x394')===this['currentReport'][_0x192320('0x7df')])this[_0x192320('0xaab')](_0x192320('0x672'),_0x383ebf);else{if(0x0===_0xcc2fc3[0x1]['length'])return void this[_0x192320('0xaab')](_0x192320('0x6f2'),_0x192320('0x866'));var _0x483222=''[_0x192320('0x4c2')](_0x383ebf,'

    ');$(_0x192320('0x865'))[_0x192320('0x52')](),$('#'[_0x192320('0x4c2')](this[_0x192320('0xa5d')]))[_0x192320('0xd34')](_0x483222),$('#'[_0x192320('0x4c2')](this[_0x192320('0xa5d')]))['show'](),$('#'[_0x192320('0x4c2')](this[_0x192320('0xa5d')],'Form'))['hide']();var _0x25b662=[];for(var _0x1a1939 in _0xcc2fc3[0x1])_0x25b662['push']({'sTitle':_0xcc2fc3[0x1][_0x1a1939]});var _0xb9f235={'oLanguage':{'sLengthMenu':_0x192320('0xfc')},'aaData':_0xcc2fc3[0x2],'aoColumns':_0x25b662,'bSort':!0x1,'iDisplayLength':0xf,'iDisplayStart':0x0};$('#tempReportTable')[_0x192320('0xdd7')](_0xb9f235),$(_0x192320('0x84'))[_0x192320('0x946')](_0x192320('0x9dc')),$('.dataTables_length')[_0x192320('0xafe')](),$(_0x192320('0x22b'))[_0x192320('0x946')](_0x192320('0xbdc')),$('.dataTables_filter\x20input')[_0x192320('0x7c9')](_0x192320('0x6d0'),'Search'),$(_0x192320('0xd02'))['contents']()['filter'](function(){var _0x1c9afa=_0x192320;return 0x3===this[_0x1c9afa('0x4f4')];})[_0x192320('0x52')](),$(_0x192320('0xba6'))[_0x192320('0x4ed')]();}}},{'key':_0x262e9e('0x27d'),'value':function(_0x3cb234){var _0x2d9c74=_0x262e9e;for(var _0x4b149a=this[_0x2d9c74('0x73d')](),_0x1c682b=0x0;_0x1c682b<_0x4b149a[_0x2d9c74('0x796')];_0x1c682b++)_0x2d9c74('0x530')===_0x4b149a[_0x1c682b][0x1][_0x2d9c74('0x18b')]?$('#'[_0x2d9c74('0x4c2')](this['getTableName'](),_0x2d9c74('0xc8a'))[_0x2d9c74('0x4c2')](_0x4b149a[_0x1c682b][0x0]))[_0x2d9c74('0xd34')](_0x3cb234[_0x4b149a[_0x1c682b][0x0]]):$('#'['concat'](this[_0x2d9c74('0x316')](),_0x2d9c74('0xc8a'))['concat'](_0x4b149a[_0x1c682b][0x0]))[_0x2d9c74('0x6ae')](_0x3cb234[_0x4b149a[_0x1c682b][0x0]]);}}]),_0x17ad42;}(_0x37c597[_0x1d8438('0x8fd')]),_0x4286cc=function(_0xddf09e){var _0x56a031=_0x1d8438;_0x21a712(_0x5e2243,_0xddf09e);var _0xfe174a=_0x252575(_0x5e2243);function _0x5e2243(){var _0xcc9985=_0x1c0e;return _0x5e795c(this,_0x5e2243),_0xfe174a[_0xcc9985('0x365')](this,arguments);}return _0x56a517(_0x5e2243,[{'key':_0x56a031('0x433'),'value':function(){var _0x122ced=_0x56a031;return['id',_0x122ced('0xce')];}},{'key':_0x56a031('0x445'),'value':function(){return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'}];}},{'key':_0x56a031('0x73d'),'value':function(){return[];}},{'key':_0x56a031('0x388'),'value':function(_0x491636,_0x4ae80e){var _0x155339=_0x56a031,_0x40befc=_0x155339('0x334');return _0x40befc=(_0x40befc=(_0x40befc=_0x40befc['replace'](/_id_/g,_0x491636))['replace'](/_name_/g,_0x4ae80e[0x1]))[_0x155339('0x8f9')](/_BASE_/g,this[_0x155339('0xc7e')]);}}]),_0x5e2243;}(_0x37c597['default']);_0x451148[_0x1d8438('0xd7')]={'ReportAdapter':_0x14fe8b,'ReportGenAdapter':_0x4286cc};},{'../../../api/AdapterBase':0x27}],0x25:[function(_0x320973,_0x5b5450,_0xa017e3){var _0x3d2885=_0x1c0e;'use strict';var _0x81ad0c=_0x55e478(_0x320973(_0x3d2885('0x9d6'))),_0x4f7865=_0x55e478(_0x320973(_0x3d2885('0xd52'))),_0x3c18a1=_0x55e478(_0x320973(_0x3d2885('0x9bd')));function _0x55e478(_0x5be01e){var _0x22e02f=_0x3d2885;return _0x5be01e&&_0x5be01e[_0x22e02f('0x8bc')]?_0x5be01e:{'default':_0x5be01e};}function _0x5e7ba4(_0x376f47){var _0x6e66f5=_0x3d2885;return(_0x5e7ba4=_0x6e66f5('0xa25')==typeof Symbol&&_0x6e66f5('0xb5')==typeof Symbol[_0x6e66f5('0x4ae')]?function(_0xfeb2b0){return typeof _0xfeb2b0;}:function(_0x2c35c2){var _0x594837=_0x6e66f5;return _0x2c35c2&&'function'==typeof Symbol&&_0x2c35c2['constructor']===Symbol&&_0x2c35c2!==Symbol[_0x594837('0x539')]?'symbol':typeof _0x2c35c2;})(_0x376f47);}function _0x5308ec(_0x62800a,_0x67e8e0){if(!(_0x62800a instanceof _0x67e8e0))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x31702f(_0x497563,_0x1ef74f){var _0x46c772=_0x3d2885;for(var _0x266d91=0x0;_0x266d91<_0x1ef74f[_0x46c772('0x796')];_0x266d91++){var _0x42c93c=_0x1ef74f[_0x266d91];_0x42c93c[_0x46c772('0xdc2')]=_0x42c93c['enumerable']||!0x1,_0x42c93c['configurable']=!0x0,_0x46c772('0x920')in _0x42c93c&&(_0x42c93c[_0x46c772('0x903')]=!0x0),Object[_0x46c772('0x751')](_0x497563,_0x42c93c[_0x46c772('0x3ba')],_0x42c93c);}}function _0x32439d(_0x285dc5,_0x38169b,_0x10fc70){var _0x3b77af=_0x3d2885;return _0x38169b&&_0x31702f(_0x285dc5[_0x3b77af('0x539')],_0x38169b),_0x10fc70&&_0x31702f(_0x285dc5,_0x10fc70),_0x285dc5;}function _0x1595bd(_0x416c81){return function(){var _0x268bcc=_0x1c0e,_0x39393f,_0x52ebbb=_0x34aacd(_0x416c81);if(_0x2d6348()){var _0x3cae87=_0x34aacd(this)[_0x268bcc('0x63e')];_0x39393f=Reflect[_0x268bcc('0x195')](_0x52ebbb,arguments,_0x3cae87);}else _0x39393f=_0x52ebbb[_0x268bcc('0x365')](this,arguments);return _0x4e3c22(this,_0x39393f);};}function _0x4e3c22(_0x52017a,_0x49f1c8){var _0x170dc5=_0x3d2885;return!_0x49f1c8||_0x170dc5('0xbfd')!==_0x5e7ba4(_0x49f1c8)&&_0x170dc5('0xa25')!=typeof _0x49f1c8?function(_0x29f385){var _0xd1cd22=_0x170dc5;if(void 0x0===_0x29f385)throw new ReferenceError(_0xd1cd22('0xcf6'));return _0x29f385;}(_0x52017a):_0x49f1c8;}function _0x2d6348(){var _0x408e1b=_0x3d2885;if(_0x408e1b('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x408e1b('0x195')]['sham'])return!0x1;if(_0x408e1b('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x408e1b('0x539')][_0x408e1b('0x6e9')][_0x408e1b('0x964')](Reflect[_0x408e1b('0x195')](Date,[],function(){})),!0x0;}catch(_0x131d79){return!0x1;}}function _0x34aacd(_0x43dfb2){var _0x306a64=_0x3d2885;return(_0x34aacd=Object[_0x306a64('0x489')]?Object[_0x306a64('0x85e')]:function(_0x4db2ac){var _0x390242=_0x306a64;return _0x4db2ac[_0x390242('0xcb9')]||Object[_0x390242('0x85e')](_0x4db2ac);})(_0x43dfb2);}function _0x393f32(_0xdbadbb,_0xff6b0c){var _0x3d0dde=_0x3d2885;if('function'!=typeof _0xff6b0c&&null!==_0xff6b0c)throw new TypeError(_0x3d0dde('0xc4b'));_0xdbadbb[_0x3d0dde('0x539')]=Object['create'](_0xff6b0c&&_0xff6b0c[_0x3d0dde('0x539')],{'constructor':{'value':_0xdbadbb,'writable':!0x0,'configurable':!0x0}}),_0xff6b0c&&_0x4dac80(_0xdbadbb,_0xff6b0c);}function _0x4dac80(_0x316b80,_0xfd481f){return(_0x4dac80=Object['setPrototypeOf']||function(_0x571452,_0x1ce4e3){var _0x5c5b2f=_0x1c0e;return _0x571452[_0x5c5b2f('0xcb9')]=_0x1ce4e3,_0x571452;})(_0x316b80,_0xfd481f);}var _0x20ffc3=function(_0x4225c7){var _0x42ff86=_0x3d2885;_0x393f32(_0x17a044,_0x4225c7);var _0x137533=_0x1595bd(_0x17a044);function _0x17a044(){var _0xd1be63=_0x1c0e;return _0x5308ec(this,_0x17a044),_0x137533[_0xd1be63('0x365')](this,arguments);}return _0x32439d(_0x17a044,[{'key':_0x42ff86('0x433'),'value':function(){var _0x3b0e4f=_0x42ff86;return['id','name',_0x3b0e4f('0x212'),'required',_0x3b0e4f('0x2a1'),_0x3b0e4f('0x686')];}},{'key':_0x42ff86('0x445'),'value':function(){var _0x3501c4=_0x42ff86;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x3501c4('0xc8d')},{'sTitle':_0x3501c4('0xd3a')},{'sTitle':_0x3501c4('0x322')},{'sTitle':_0x3501c4('0x499')},{'sTitle':'Alert\x20Before\x20Expiry'}];}},{'key':_0x42ff86('0x73d'),'value':function(){var _0x30b248=_0x42ff86;for(var _0x10ae03=[['id',{'label':'ID','type':_0x30b248('0xa05')}],['name',{'label':'Name','type':_0x30b248('0x941'),'validation':''}],['details',{'label':'Details','type':_0x30b248('0xbd5'),'validation':_0x30b248('0x649')}],['required',{'label':_0x30b248('0x322'),'type':_0x30b248('0x510'),'source':[['No','No'],[_0x30b248('0x915'),_0x30b248('0x915')]]}],[_0x30b248('0x2a1'),{'label':_0x30b248('0x499'),'type':_0x30b248('0x510'),'source':[['No','No'],[_0x30b248('0x915'),_0x30b248('0x915')]]}],[_0x30b248('0x686'),{'label':_0x30b248('0x7de'),'type':_0x30b248('0x510'),'source':[['No','No'],[_0x30b248('0x915'),_0x30b248('0x915')]]}],[_0x30b248('0x4a5'),{'label':'Days\x20for\x20Expiry\x20Alert','type':_0x30b248('0x941'),'validation':''}]],_0x53b595=0x0;_0x53b5950x0&&delete this[_0x249918('0x38')][_0x15a1e5[_0x3fe17e]];}}]),_0x1b8142;}(),_0x470aec=function(){var _0xfb2e57=_0x373fcb;function _0xc19e95(_0x59b670){_0x36ec73(this,_0xc19e95),this['storage']=_0x59b670||new _0xac7440();}return _0x6bea9c(_0xc19e95,[{'key':_0xfb2e57('0x51f'),'value':function(_0x582be2,_0x57b84a){var _0x35ec10=_0xfb2e57,_0x472de5=''[_0x35ec10('0x4c2')](_0x582be2,'|');for(var _0x298dc5 in _0x57b84a)_0x472de5+=''[_0x35ec10('0x4c2')](_0x298dc5,'=')[_0x35ec10('0x4c2')](_0x57b84a[_0x298dc5],'|');return _0x472de5;}},{'key':_0xfb2e57('0xccc'),'value':function(_0x4c2a4a){var _0x31f22e=_0xfb2e57;this[_0x31f22e('0x779')][_0x31f22e('0x806')]('t='[_0x31f22e('0x4c2')](_0x4c2a4a));}},{'key':_0xfb2e57('0xaa3'),'value':function(_0x36748b){var _0x52ab33=_0xfb2e57,_0x1c6e8d=this[_0x52ab33('0x779')][_0x52ab33('0x3ae')](_0x36748b);return _0x1c6e8d||null;}},{'key':_0xfb2e57('0x7b7'),'value':function(_0x14b7f1,_0xa05ff4){var _0x1b9df0=_0xfb2e57;return void 0x0!==_0xa05ff4[_0x1b9df0('0x525')]&&null!=_0xa05ff4[_0x1b9df0('0x525')]&&_0x1b9df0('0xbf9')!==_0xa05ff4['status']?null:(this['storage'][_0x1b9df0('0xb57')](_0x14b7f1,_0xa05ff4),_0xa05ff4);}}]),_0xc19e95;}();_0x10fa1d[_0x373fcb('0x8fd')]=_0x470aec;},{}],0x27:[function(_0x22676a,_0x59f5ea,_0x30f3ac){var _0x4a1849=_0x1c0e;'use strict';Object['defineProperty'](_0x30f3ac,_0x4a1849('0x8bc'),{'value':!0x0}),_0x30f3ac[_0x4a1849('0x8fd')]=void 0x0;var _0x53facd=_0x1fa0cc(_0x22676a(_0x4a1849('0x332'))),_0x3bee00=_0x1fa0cc(_0x22676a('./ModuleBase')),_0x565472=_0x1fa0cc(_0x22676a('../api-common/RequestCache')),_0x35bddf=_0x1fa0cc(_0x22676a(_0x4a1849('0x9f5')));function _0x1fa0cc(_0x114e36){var _0x19d6b8=_0x4a1849;return _0x114e36&&_0x114e36[_0x19d6b8('0x8bc')]?_0x114e36:{'default':_0x114e36};}function _0x5717ff(_0x272a50){var _0x5eed72=_0x4a1849;return(_0x5717ff=_0x5eed72('0xa25')==typeof Symbol&&'symbol'==typeof Symbol[_0x5eed72('0x4ae')]?function(_0x1873e2){return typeof _0x1873e2;}:function(_0x2156f6){var _0x58451e=_0x5eed72;return _0x2156f6&&_0x58451e('0xa25')==typeof Symbol&&_0x2156f6['constructor']===Symbol&&_0x2156f6!==Symbol[_0x58451e('0x539')]?_0x58451e('0xb5'):typeof _0x2156f6;})(_0x272a50);}function _0x3ada1f(_0xa35682,_0xc705e8){var _0x3bd2de=_0x4a1849;for(var _0x5ee480=0x0;_0x5ee480<_0xc705e8[_0x3bd2de('0x796')];_0x5ee480++){var _0x479cdf=_0xc705e8[_0x5ee480];_0x479cdf[_0x3bd2de('0xdc2')]=_0x479cdf[_0x3bd2de('0xdc2')]||!0x1,_0x479cdf[_0x3bd2de('0x48d')]=!0x0,_0x3bd2de('0x920')in _0x479cdf&&(_0x479cdf[_0x3bd2de('0x903')]=!0x0),Object[_0x3bd2de('0x751')](_0xa35682,_0x479cdf['key'],_0x479cdf);}}function _0x339f67(_0x451ea0,_0x4e550d){var _0x3da6a=_0x4a1849;return!_0x4e550d||_0x3da6a('0xbfd')!==_0x5717ff(_0x4e550d)&&'function'!=typeof _0x4e550d?function(_0x45f3e7){if(void 0x0===_0x45f3e7)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x45f3e7;}(_0x451ea0):_0x4e550d;}function _0x21a3c7(){var _0xa3da22=_0x4a1849;if(_0xa3da22('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0xa3da22('0x195')][_0xa3da22('0x460')])return!0x1;if(_0xa3da22('0xa25')==typeof Proxy)return!0x0;try{return Date[_0xa3da22('0x539')][_0xa3da22('0x6e9')]['call'](Reflect[_0xa3da22('0x195')](Date,[],function(){})),!0x0;}catch(_0x55457c){return!0x1;}}function _0x3fae71(_0x8d5ed0){var _0x5ef263=_0x4a1849;return(_0x3fae71=Object[_0x5ef263('0x489')]?Object[_0x5ef263('0x85e')]:function(_0x3303ce){var _0x17da27=_0x5ef263;return _0x3303ce[_0x17da27('0xcb9')]||Object[_0x17da27('0x85e')](_0x3303ce);})(_0x8d5ed0);}function _0x57ba8d(_0x5df24d,_0x21631f){var _0x4513e9=_0x4a1849;return(_0x57ba8d=Object[_0x4513e9('0x489')]||function(_0x20b318,_0xb96b86){return _0x20b318['__proto__']=_0xb96b86,_0x20b318;})(_0x5df24d,_0x21631f);}var _0x508fb8=function(_0x1a38d4){var _0x171381=_0x4a1849;!function(_0x413e4c,_0x133ed2){var _0x1ce3f8=_0x1c0e;if('function'!=typeof _0x133ed2&&null!==_0x133ed2)throw new TypeError(_0x1ce3f8('0xc4b'));_0x413e4c['prototype']=Object[_0x1ce3f8('0x3e2')](_0x133ed2&&_0x133ed2[_0x1ce3f8('0x539')],{'constructor':{'value':_0x413e4c,'writable':!0x0,'configurable':!0x0}}),_0x133ed2&&_0x57ba8d(_0x413e4c,_0x133ed2);}(_0xec59ee,_0x1a38d4);var _0x2d3b5b,_0x1cbaff,_0x2c7bb9,_0x10bcdc,_0x12a130=(_0x2d3b5b=_0xec59ee,function(){var _0x585f55=_0x1c0e,_0x103c27,_0x18afd6=_0x3fae71(_0x2d3b5b);if(_0x21a3c7()){var _0x59711a=_0x3fae71(this)['constructor'];_0x103c27=Reflect[_0x585f55('0x195')](_0x18afd6,arguments,_0x59711a);}else _0x103c27=_0x18afd6[_0x585f55('0x365')](this,arguments);return _0x339f67(this,_0x103c27);});function _0xec59ee(_0x1abe9e,_0x3b4918,_0x45353f,_0x5857d9){var _0x18f645=_0x1c0e,_0x1dba54;return function(_0x126ac1,_0x17e2c1){if(!(_0x126ac1 instanceof _0x17e2c1))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0xec59ee),(_0x1dba54=_0x12a130['call'](this))[_0x18f645('0x2ba')]=null,_0x1dba54[_0x18f645('0x5f1')]=[],_0x1dba54['sourceData']=[],_0x1dba54[_0x18f645('0x774')]=null,_0x1dba54[_0x18f645('0xc5a')]=null,_0x1dba54['orderBy']=null,_0x1dba54[_0x18f645('0x32c')]=null,_0x1dba54['initAdapter'](_0x1abe9e,_0x3b4918,_0x45353f,_0x5857d9),_0x1dba54;}return _0x1cbaff=_0xec59ee,(_0x2c7bb9=[{'key':_0x171381('0x12'),'value':function(_0x9b44d4,_0x332722,_0x7a2a1c,_0x3b0b0f){var _0x155db2=_0x171381;this[_0x155db2('0x2ba')]=baseUrl,this[_0x155db2('0xa5d')]=_0x9b44d4,this[_0x155db2('0x7dd')]=null==_0x332722?_0x9b44d4:_0x332722,this[_0x155db2('0x774')]=null==_0x7a2a1c?null:_0x7a2a1c,this[_0x155db2('0xc5a')]=this['filter'],this[_0x155db2('0x996')]=null==_0x3b0b0f?null:_0x3b0b0f,this[_0x155db2('0x3da')](_0x155db2('0x12'),_0x332722),this['requestCache']=new _0x565472[(_0x155db2('0x8fd'))]();}},{'key':_0x171381('0x4d4'),'value':function(){var _0x1a546a=_0x171381;this['masterDataReader']=new _0x35bddf[(_0x1a546a('0x8fd'))](this);}},{'key':'setupApiClient','value':function(_0x39d151){var _0x27c6=_0x171381;this['apiClient']=new _0x53facd[(_0x27c6('0x8fd'))](this[_0x27c6('0xd03')],_0x39d151,window[_0x27c6('0x86a')],!0x0);}},{'key':_0x171381('0x1a2'),'value':function(_0x575555){var _0x239bf5=_0x171381;this[_0x239bf5('0xd03')]=_0x575555;}},{'key':_0x171381('0xc68'),'value':function(_0x58093b){var _0x4a69ad=_0x171381;this[_0x4a69ad('0x774')]=_0x58093b;}},{'key':'preSetFilterExternal','value':function(_0x3e6e3d){this['initialFilter']=_0x3e6e3d;}},{'key':_0x171381('0x76c'),'value':function(_0x37ac3e){var _0x3268e8=_0x171381,_0x2d8923=_0x37ac3e;null==_0x2d8923&&(_0x2d8923=this['initialFilter']),null!=_0x2d8923&&(this['setFilter'](_0x2d8923),this[_0x3268e8('0x45f')]=!0x0,$('#'[_0x3268e8('0x4c2')](this['getTableName'](),'_resetFilters'))['show'](),this['currentFilterString']=this[_0x3268e8('0x9c6')](_0x2d8923));}},{'key':'getFilter','value':function(){return this['filter'];}},{'key':_0x171381('0x13f'),'value':function(_0x512cc0){var _0x4987bd=_0x171381;this[_0x4987bd('0x996')]=_0x512cc0;}},{'key':'getOrderBy','value':function(){return this['orderBy'];}},{'key':_0x171381('0x981'),'value':function(_0x12d4a9){var _0x7ec458=_0x171381,_0x2ba1b8=this;return this[_0x7ec458('0x3da')](_0x7ec458('0x905'),_0x12d4a9),new Promise(function(_0x2a69c3,_0x11b9b6){var _0x26eb0e=_0x7ec458;$['getJSON'](_0x2ba1b8['moduleRelativeURL'],{'a':_0x26eb0e('0x905'),'name':_0x12d4a9},function(_0x4ca823){var _0x4a55cf=_0x26eb0e;_0x4a55cf('0xbf9')===_0x4ca823[_0x4a55cf('0x525')]?_0x2a69c3(_0x4ca823['data']):_0x11b9b6();})[_0x26eb0e('0x201')](function(){return _0x11b9b6();});});}},{'key':'add','value':function(_0x5d24f8,_0x175456,_0x4b23e1,_0x5d4e53){var _0x22a4b5=_0x171381,_0x29cf6f=this;null==_0x4b23e1&&(_0x4b23e1=!0x0),$(_0x5d24f8)[_0x22a4b5('0x7c9')]('a',_0x22a4b5('0x970')),$(_0x5d24f8)[_0x22a4b5('0x7c9')]('t',this['table']),_0x29cf6f[_0x22a4b5('0x4d9')](),this['requestCache'][_0x22a4b5('0xccc')](this[_0x22a4b5('0xa5d')]),$['post'](this[_0x22a4b5('0x2ba')],_0x5d24f8,function(_0x5974ab){var _0x44a38a=_0x22a4b5;'SUCCESS'===_0x5974ab['status']?_0x29cf6f[_0x44a38a('0x816')](_0x175456,_0x5974ab[_0x44a38a('0xbfd')],_0x4b23e1,_0x5d4e53,_0x29cf6f):_0x29cf6f[_0x44a38a('0x5a5')](_0x175456,_0x5974ab[_0x44a38a('0xbfd')]);},_0x22a4b5('0xa0f'))[_0x22a4b5('0x201')](function(_0x2a4433){var _0x373d4a=_0x22a4b5;0x193===_0x2a4433[_0x373d4a('0x525')]&&_0x29cf6f[_0x373d4a('0xaab')](_0x373d4a('0x4aa'),_0x2a4433[_0x373d4a('0xbd6')][_0x373d4a('0xb0a')]);})[_0x22a4b5('0xa60')](function(){var _0x3d7e7e=_0x22a4b5;_0x29cf6f[_0x3d7e7e('0xc42')]();}),this[_0x22a4b5('0x3da')](_0x22a4b5('0x970'),this['tab'],this[_0x22a4b5('0xa5d')]);}},{'key':'addSuccessCallBack','value':function(_0x4829d7,_0x372269,_0xa3f4e8,_0xb6f1ab,_0x5978a4){var _0x4d5dfd=_0x171381;_0xa3f4e8&&this[_0x4d5dfd('0xda6')](_0x4829d7),this['initFieldMasterData'](),null!=_0xb6f1ab&&_0xb6f1ab[_0x4d5dfd('0x365')](_0x5978a4,[_0x372269]),this[_0x4d5dfd('0x3da')]('addSuccess',this[_0x4d5dfd('0x7dd')],this[_0x4d5dfd('0xa5d')]);}},{'key':_0x171381('0x5a5'),'value':function(_0x111138,_0x13e4e5){var _0x347259=_0x171381;try{this[_0x347259('0x179')]();}catch(_0x21412c){}this['showMessage']('Error\x20saving',_0x13e4e5),this['trackEvent']('addFailed',this[_0x347259('0x7dd')],this[_0x347259('0xa5d')]);}},{'key':_0x171381('0xa66'),'value':function(_0x2dd063,_0x55eeaf){var _0x3a26c2=_0x171381,_0x51d52c=this;_0x51d52c[_0x3a26c2('0x4d9')](),this['requestCache'][_0x3a26c2('0xccc')](this[_0x3a26c2('0xa5d')]),$['post'](this[_0x3a26c2('0x2ba')],{'t':this['table'],'a':_0x3a26c2('0xcf1'),'id':_0x2dd063},function(_0x479218){var _0x1a55a5=_0x3a26c2;_0x1a55a5('0xbf9')===_0x479218[_0x1a55a5('0x525')]?_0x51d52c[_0x1a55a5('0x35f')](_0x55eeaf,_0x479218[_0x1a55a5('0xbfd')]):_0x51d52c[_0x1a55a5('0x909')](_0x55eeaf,_0x479218[_0x1a55a5('0xbfd')]);},'json')['fail'](function(_0x335a64){var _0x306427=_0x3a26c2;0x193===_0x335a64[_0x306427('0x525')]&&_0x51d52c['showMessage'](_0x306427('0x4aa'),_0x335a64[_0x306427('0xbd6')][_0x306427('0xb0a')]);})[_0x3a26c2('0xa60')](function(){var _0x21d5c9=_0x3a26c2;_0x51d52c[_0x21d5c9('0xc42')]();}),this[_0x3a26c2('0x3da')]('delete',this['tab'],this[_0x3a26c2('0xa5d')]);}},{'key':_0x171381('0x35f'),'value':function(_0x41beb9,_0x257c0e){this['get'](_0x41beb9),this['clearDeleteParams']();}},{'key':_0x171381('0x909'),'value':function(_0x1f734d,_0x1c8eb7){var _0x3aa638=_0x171381;this[_0x3aa638('0x3be')](),this[_0x3aa638('0xaab')]('Error\x20Occurred\x20while\x20Deleting\x20Item',_0x1c8eb7);}},{'key':_0x171381('0xda6'),'value':function(_0x4db81b){var _0x429737=_0x171381,_0x4156b6=this;if(this[_0x429737('0xac')]())return this[_0x429737('0x86b')](this[_0x429737('0x316')]()),$('#'[_0x429737('0x4c2')](this[_0x429737('0x316')](),_0x429737('0x805')))[_0x429737('0xafe')](),void $('#'[_0x429737('0x4c2')](this[_0x429737('0x316')]()))['show']();var _0x116ecc=JSON[_0x429737('0xaae')](this[_0x429737('0x766')]()),_0x1eb5fa='';null!==this[_0x429737('0x6fb')]()&&(_0x1eb5fa=JSON[_0x429737('0xaae')](this['getFilter']()));var _0x4b9cba='';null!==this[_0x429737('0xca6')]()&&(_0x4b9cba=this[_0x429737('0xca6')]()),_0x116ecc=this[_0x429737('0xc72')](_0x116ecc),_0x1eb5fa=this['fixJSON'](_0x1eb5fa),_0x4156b6[_0x429737('0x4d9')](),$[_0x429737('0x63f')](this[_0x429737('0x2ba')],{'t':this[_0x429737('0xa5d')],'a':_0x429737('0xda6'),'sm':_0x116ecc,'ft':_0x1eb5fa,'ob':_0x4b9cba},function(_0x3ef38a){var _0x401fc6=_0x429737;_0x401fc6('0xbf9')===_0x3ef38a[_0x401fc6('0x525')]?_0x4156b6[_0x401fc6('0x1a4')](_0x4db81b,_0x3ef38a['object']):_0x4156b6[_0x401fc6('0xd3f')](_0x4db81b,_0x3ef38a[_0x401fc6('0xbfd')]);},_0x429737('0xa0f'))[_0x429737('0x201')](function(_0x5e4e32){var _0x60ebc2=_0x429737;0x193===_0x5e4e32[_0x60ebc2('0x525')]&&_0x4156b6[_0x60ebc2('0xaab')](_0x60ebc2('0x4aa'),_0x5e4e32[_0x60ebc2('0xbd6')]['message']);})[_0x429737('0xa60')](function(){_0x4156b6['hideLoader']();}),_0x4156b6[_0x429737('0x44e')](),this['trackEvent'](_0x429737('0xda6'),this[_0x429737('0x7dd')],this['table']);}},{'key':_0x171381('0x59b'),'value':function(_0x467b3d){var _0x214eb7=_0x171381,_0x518b4a=JSON[_0x214eb7('0xaae')](this[_0x214eb7('0x766')]()),_0x5982bc=JSON[_0x214eb7('0xaae')](_0x467b3d),_0x47e05e='';null!==this[_0x214eb7('0x6fb')]()&&(_0x47e05e=JSON[_0x214eb7('0xaae')](this[_0x214eb7('0x6fb')]()));var _0x238458='';null!==this[_0x214eb7('0xca6')]()&&(_0x238458=this['getOrderBy']());var _0x1c2077=this[_0x214eb7('0x2ba')][_0x214eb7('0x8f9')](_0x214eb7('0x1e2'),_0x214eb7('0x8e0'));return _0x1c2077=''['concat'](_0x1c2077,_0x214eb7('0x4b3'))['concat'](this[_0x214eb7('0xa5d')]),_0x1c2077=''[_0x214eb7('0x4c2')](_0x1c2077,_0x214eb7('0x4da'))['concat'](this[_0x214eb7('0xc72')](_0x518b4a)),_0x1c2077=''[_0x214eb7('0x4c2')](_0x1c2077,_0x214eb7('0xd48'))['concat'](this['fixJSON'](_0x5982bc)),_0x1c2077=''[_0x214eb7('0x4c2')](_0x1c2077,'&ft=')[_0x214eb7('0x4c2')](this['fixJSON'](_0x47e05e)),_0x1c2077=''[_0x214eb7('0x4c2')](_0x1c2077,_0x214eb7('0x468'))[_0x214eb7('0x4c2')](_0x238458),this[_0x214eb7('0x932')]()&&(_0x1c2077=''[_0x214eb7('0x4c2')](_0x1c2077,_0x214eb7('0x24b'))),this[_0x214eb7('0xc71')]()&&(_0x1c2077=''[_0x214eb7('0x4c2')](_0x1c2077,_0x214eb7('0x2c0'))),_0x1c2077;}},{'key':_0x171381('0x932'),'value':function(){return!0x1;}},{'key':'remoteTableSkipProfileRestriction','value':function(){return!0x1;}},{'key':'preProcessTableData','value':function(_0x439a91){return _0x439a91;}},{'key':'getSuccessCallBack','value':function(_0x5d60ef,_0x13afcf){var _0x473b5f=_0x171381;for(var _0x2f5ee4=[],_0x4a9686=this[_0x473b5f('0x433')](),_0x47e07c=0x0;_0x47e07c<_0x13afcf[_0x473b5f('0x796')];_0x47e07c++){for(var _0x420bae=[],_0x140aa6=0x0;_0x140aa6<_0x4a9686[_0x473b5f('0x796')];_0x140aa6++)_0x420bae[_0x140aa6]=_0x13afcf[_0x47e07c][_0x4a9686[_0x140aa6]];_0x2f5ee4[_0x473b5f('0xb2')](this[_0x473b5f('0x4fa')](_0x420bae));}this[_0x473b5f('0x980')]=_0x13afcf,void 0x0!==_0x5d60ef[_0x473b5f('0x76e')]&&null!==_0x5d60ef[_0x473b5f('0x76e')]&&(void 0x0!==_0x5d60ef[_0x473b5f('0x61a')]&&null!==_0x5d60ef[_0x473b5f('0x61a')]||(_0x5d60ef['callBackData']=[]),_0x5d60ef[_0x473b5f('0x61a')][_0x473b5f('0xb2')](_0x13afcf),_0x5d60ef[_0x473b5f('0x61a')][_0x473b5f('0xb2')](_0x2f5ee4),this['callFunction'](_0x5d60ef[_0x473b5f('0x76e')],_0x5d60ef[_0x473b5f('0x61a')])),this['tableData']=_0x2f5ee4,void 0x0!==_0x5d60ef[_0x473b5f('0x38b')]&&null!==_0x5d60ef[_0x473b5f('0x38b')]&&!0x0===_0x5d60ef[_0x473b5f('0x38b')]||(this[_0x473b5f('0x595')](this['getTableName']()),$('#'[_0x473b5f('0x4c2')](this['getTableName'](),'Form'))[_0x473b5f('0xafe')](),$('#'[_0x473b5f('0x4c2')](this[_0x473b5f('0x316')]()))['show']());}},{'key':'getFailCallBack','value':function(_0x5e6076,_0x46c68f){}},{'key':_0x171381('0xd2e'),'value':function(_0x6cb1a8,_0x48e706,_0x341ec9){var _0x1ec1ff=_0x171381,_0x587584=this,_0x21a82d=JSON[_0x1ec1ff('0xaae')](this[_0x1ec1ff('0x766')]());_0x21a82d=this['fixJSON'](_0x21a82d),_0x587584[_0x1ec1ff('0x4d9')](),$[_0x1ec1ff('0x63f')](this[_0x1ec1ff('0x2ba')],{'t':this[_0x1ec1ff('0xa5d')],'a':_0x1ec1ff('0xd2e'),'id':_0x6cb1a8,'sm':_0x21a82d},function(_0x55d7c3){var _0x71b03d=_0x1ec1ff;_0x71b03d('0xbf9')===_0x55d7c3[_0x71b03d('0x525')]?(_0x341ec9&&delete _0x55d7c3[_0x71b03d('0xbfd')]['id'],this[_0x71b03d('0x32c')]=_0x55d7c3['object'],_0x587584[_0x71b03d('0x63d')]['apply'](_0x587584,[_0x48e706,_0x55d7c3[_0x71b03d('0xbfd')]])):_0x587584[_0x71b03d('0x216')][_0x71b03d('0x365')](_0x587584,[_0x48e706,_0x55d7c3[_0x71b03d('0xbfd')]]);},'json')[_0x1ec1ff('0x201')](function(_0x90d17d){var _0x2959a6=_0x1ec1ff;0x193===_0x90d17d['status']&&_0x587584['showMessage'](_0x2959a6('0x4aa'),_0x90d17d['responseJSON']['message']);})[_0x1ec1ff('0xa60')](function(){var _0x4b985a=_0x1ec1ff;_0x587584[_0x4b985a('0xc42')]();}),this[_0x1ec1ff('0x3da')](_0x1ec1ff('0xd2e'),this[_0x1ec1ff('0x7dd')],this['table']);}},{'key':_0x171381('0x63d'),'value':function(_0x582cf8,_0x5e9961){var _0x2057c7=_0x171381;void 0x0!==_0x582cf8[_0x2057c7('0x76e')]&&null!==_0x582cf8[_0x2057c7('0x76e')]&&(void 0x0!==_0x582cf8[_0x2057c7('0x61a')]&&null!==_0x582cf8[_0x2057c7('0x61a')]||(_0x582cf8[_0x2057c7('0x61a')]=[]),_0x582cf8[_0x2057c7('0x61a')][_0x2057c7('0xb2')](_0x5e9961),this['callFunction'](_0x582cf8['callBack'],_0x582cf8[_0x2057c7('0x61a')],this)),this[_0x2057c7('0x32c')]=_0x5e9961,void 0x0!==_0x582cf8[_0x2057c7('0x38b')]&&null!==_0x582cf8['noRender']&&!0x0===_0x582cf8[_0x2057c7('0x38b')]||this['renderForm'](_0x5e9961);}},{'key':_0x171381('0x216'),'value':function(_0x5387a6,_0x2130f4){}},{'key':'getTableData','value':function(){var _0x5b1bcf=_0x171381;return this[_0x5b1bcf('0x5f1')];}},{'key':_0x171381('0x316'),'value':function(){var _0x1f08f2=_0x171381;return this[_0x1f08f2('0x7dd')];}},{'key':'getFieldValues','value':function(_0x212a6b,_0x531bd2){var _0x5175d3=_0x171381,_0x41e861=this,_0x35d7c9='',_0x308661='';void 0x0!==_0x212a6b[0x3]&&null!==_0x212a6b[0x3]&&(_0x35d7c9=_0x212a6b[0x3]),void 0x0!==_0x212a6b[0x4]&&null!==_0x212a6b[0x4]&&(_0x308661=JSON[_0x5175d3('0xaae')](_0x212a6b[0x4]));var _0x5ccf41=this[_0x5175d3('0x10')][_0x5175d3('0x51f')](this[_0x5175d3('0x2ba')],{'t':_0x212a6b[0x0],'key':_0x212a6b[0x1],'value':_0x212a6b[0x2],'method':_0x35d7c9,'methodParams':_0x308661,'a':_0x5175d3('0x807')}),_0xef35a0=this[_0x5175d3('0x10')][_0x5175d3('0xaa3')](_0x5ccf41);if(null!=_0xef35a0)_0x5175d3('0xbf9')===_0xef35a0[_0x5175d3('0x525')]&&(_0x531bd2[_0x5175d3('0x61a')]['push'](_0xef35a0[_0x5175d3('0x38')]),null!==_0x531bd2[_0x5175d3('0x4a2')]&&void 0x0!==_0x531bd2[_0x5175d3('0x4a2')]&&_0x531bd2[_0x5175d3('0x61a')][_0x5175d3('0xb2')](_0x531bd2['callBackSuccess']),_0x41e861[_0x5175d3('0x144')](_0x531bd2[_0x5175d3('0x76e')],_0x531bd2[_0x5175d3('0x61a')]));else{var _0x343c11=function _0x12ebf7(_0x571da2){var _0x274b95=_0x5175d3;if('SUCCESS'===_0x571da2[_0x274b95('0x525')]){_0x41e861[_0x274b95('0x10')][_0x274b95('0x7b7')](this['success'][_0x274b95('0x3ba')],_0x571da2);var _0x7ba52e=_0x531bd2;_0x7ba52e['callBackData']=[_0x531bd2[_0x274b95('0x61a')][0x0]],_0x7ba52e['callBackData'][_0x274b95('0xb2')](_0x571da2[_0x274b95('0x38')]),null!==_0x7ba52e[_0x274b95('0x4a2')]&&void 0x0!==_0x7ba52e['callBackSuccess']&&_0x7ba52e[_0x274b95('0x61a')]['push'](_0x531bd2[_0x274b95('0x4a2')]),_0x41e861[_0x274b95('0x144')](_0x7ba52e[_0x274b95('0x76e')],_0x7ba52e[_0x274b95('0x61a')]);}else _0x274b95('0x4ee')===_0x571da2[_0x274b95('0xb0a')]&&alert(_0x274b95('0x2b5')['concat'](_0x12ebf7[_0x274b95('0xa5d')],'\x20')[_0x274b95('0x4c2')](_0x571da2[_0x274b95('0xb0a')]));};_0x343c11['key']=_0x5ccf41,_0x343c11['table']=_0x212a6b[0x0],$[_0x5175d3('0x63f')](this['moduleRelativeURL'],{'t':_0x212a6b[0x0],'key':_0x212a6b[0x1],'value':_0x212a6b[0x2],'method':_0x35d7c9,'methodParams':_0x308661,'a':_0x5175d3('0x807')},_0x343c11,_0x5175d3('0xa0f'));}}},{'key':_0x171381('0x422'),'value':function(_0x1710db){var _0x541d98=_0x171381;try{localStorage[_0x541d98('0x45')]();}catch(_0x6b0be1){}$[_0x541d98('0x63f')](this[_0x541d98('0x2ba')],{'a':_0x541d98('0x36e'),'empid':_0x1710db},function(){var _0x304d81=_0x541d98;top[_0x304d81('0x1e8')][_0x304d81('0x7ca')]=clientUrl;},_0x541d98('0xa0f'));}},{'key':_0x171381('0xca3'),'value':function(_0x3809ab,_0x549159,_0x2362e4,_0x362fff,_0x4e1890){var _0x18bed8=_0x171381,_0xa91ea4=this;_0x2362e4=this[_0x18bed8('0xc72')](_0x2362e4),_0x4e1890?$[_0x18bed8('0x63f')](this[_0x18bed8('0x2ba')],{'t':this[_0x18bed8('0xa5d')],'a':'ca','sa':_0x3809ab,'mod':_0x549159,'req':_0x2362e4},function(_0x5865d0){var _0x1d5a88=_0x18bed8;_0x1d5a88('0xbf9')===_0x5865d0[_0x1d5a88('0x525')]?(_0x362fff[_0x1d5a88('0x61a')][_0x1d5a88('0xb2')](_0x5865d0[_0x1d5a88('0x38')]),_0xa91ea4[_0x1d5a88('0x144')](_0x362fff[_0x1d5a88('0x4a2')],_0x362fff[_0x1d5a88('0x61a')])):(_0x362fff['callBackData']['push'](_0x5865d0['data']),_0xa91ea4['callFunction'](_0x362fff[_0x1d5a88('0xd61')],_0x362fff['callBackData']));},_0x18bed8('0xa0f')):$['getJSON'](this['moduleRelativeURL'],{'t':this['table'],'a':'ca','sa':_0x3809ab,'mod':_0x549159,'req':_0x2362e4},function(_0x5bc5ff){var _0x47ce2b=_0x18bed8;_0x47ce2b('0xbf9')===_0x5bc5ff[_0x47ce2b('0x525')]?(_0x362fff[_0x47ce2b('0x61a')][_0x47ce2b('0xb2')](_0x5bc5ff['data']),_0xa91ea4[_0x47ce2b('0x144')](_0x362fff[_0x47ce2b('0x4a2')],_0x362fff[_0x47ce2b('0x61a')])):(_0x362fff[_0x47ce2b('0x61a')]['push'](_0x5bc5ff[_0x47ce2b('0x38')]),_0xa91ea4[_0x47ce2b('0x144')](_0x362fff[_0x47ce2b('0xd61')],_0x362fff[_0x47ce2b('0x61a')]));});}},{'key':_0x171381('0xb89'),'value':function(_0x55758d,_0x2269fa,_0x3e5e00,_0x28b4a4){var _0x158356=_0x171381;_0x2269fa['a']=_0x55758d,$[_0x158356('0x63f')](this[_0x158356('0x2ba')],_0x2269fa,function(_0x17ef27){var _0x4516ee=_0x158356;_0x4516ee('0xbf9')===_0x17ef27[_0x4516ee('0x525')]?_0x3e5e00(_0x17ef27['data']):_0x28b4a4(_0x17ef27[_0x4516ee('0x38')]);},_0x158356('0xa0f'));}},{'key':_0x171381('0x139'),'value':function(_0x59cb11,_0x360c9d){var _0x390ba1=_0x171381;_0x360c9d['a']=_0x59cb11;var _0x48de51='';for(var _0x411c13 in _0x360c9d)_0x360c9d[_0x390ba1('0x1a8')](_0x411c13)&&(''!==_0x48de51&&(_0x48de51+='&'),_0x48de51+=''['concat'](_0x411c13,'=')[_0x390ba1('0x4c2')](_0x360c9d[_0x411c13]));return''['concat'](this[_0x390ba1('0x2ba')],'?')[_0x390ba1('0x4c2')](_0x48de51);}},{'key':'getClientDataUrl','value':function(){var _0x1f56e2=_0x171381;return''[_0x1f56e2('0x4c2')](this[_0x1f56e2('0x2ba')]['replace'](_0x1f56e2('0x1e2'),''),_0x1f56e2('0x90'));}},{'key':_0x171381('0x1a7'),'value':function(_0x5c7780){var _0x50b3cc=_0x171381;return this['moduleRelativeURL']['replace'](_0x50b3cc('0x1e2'),_0x5c7780);}}])&&_0x3ada1f(_0x1cbaff[_0x171381('0x539')],_0x2c7bb9),_0x10bcdc&&_0x3ada1f(_0x1cbaff,_0x10bcdc),_0xec59ee;}(_0x3bee00[_0x4a1849('0x8fd')]);_0x30f3ac[_0x4a1849('0x8fd')]=_0x508fb8;},{'../api-common/RequestCache':0x26,'./IceApiClient':0x2d,'./MasterDataReader':0x2f,'./ModuleBase':0x30}],0x28:[function(_0x21fb98,_0x6a9f38,_0x51f255){var _0x550764=_0x1c0e;'use strict';var _0x2150ea;function _0x1a51d3(_0x13850d){var _0x43d58f=_0x1c0e;return(_0x1a51d3=_0x43d58f('0xa25')==typeof Symbol&&_0x43d58f('0xb5')==typeof Symbol['iterator']?function(_0xd224a7){return typeof _0xd224a7;}:function(_0x1f28bb){var _0x5d6386=_0x43d58f;return _0x1f28bb&&'function'==typeof Symbol&&_0x1f28bb[_0x5d6386('0x63e')]===Symbol&&_0x1f28bb!==Symbol['prototype']?_0x5d6386('0xb5'):typeof _0x1f28bb;})(_0x13850d);}function _0x4592d1(_0xa36975,_0x4cc175){var _0x17af91=_0x1c0e;for(var _0x321631=0x0;_0x321631<_0x4cc175['length'];_0x321631++){var _0x540f30=_0x4cc175[_0x321631];_0x540f30['enumerable']=_0x540f30[_0x17af91('0xdc2')]||!0x1,_0x540f30[_0x17af91('0x48d')]=!0x0,_0x17af91('0x920')in _0x540f30&&(_0x540f30['writable']=!0x0),Object[_0x17af91('0x751')](_0xa36975,_0x540f30['key'],_0x540f30);}}function _0x39e5d4(_0x34c5f4,_0x5ac59b){var _0x38f87d=_0x1c0e;return!_0x5ac59b||_0x38f87d('0xbfd')!==_0x1a51d3(_0x5ac59b)&&'function'!=typeof _0x5ac59b?function(_0x4e2d54){var _0x22f4c7=_0x38f87d;if(void 0x0===_0x4e2d54)throw new ReferenceError(_0x22f4c7('0xcf6'));return _0x4e2d54;}(_0x34c5f4):_0x5ac59b;}function _0x2ce65e(){var _0x27b81f=_0x1c0e;if(_0x27b81f('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x27b81f('0x460')])return!0x1;if(_0x27b81f('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x27b81f('0x539')][_0x27b81f('0x6e9')][_0x27b81f('0x964')](Reflect[_0x27b81f('0x195')](Date,[],function(){})),!0x0;}catch(_0x464f1e){return!0x1;}}function _0x36b375(_0x1435e1){var _0x290fb8=_0x1c0e;return(_0x36b375=Object[_0x290fb8('0x489')]?Object[_0x290fb8('0x85e')]:function(_0x2f3d57){var _0x13c324=_0x290fb8;return _0x2f3d57['__proto__']||Object[_0x13c324('0x85e')](_0x2f3d57);})(_0x1435e1);}function _0x432136(_0x99401f,_0x5ea999){return(_0x432136=Object['setPrototypeOf']||function(_0x5ed407,_0x2767a3){var _0x488465=_0x1c0e;return _0x5ed407[_0x488465('0xcb9')]=_0x2767a3,_0x5ed407;})(_0x99401f,_0x5ea999);}Object[_0x550764('0x751')](_0x51f255,_0x550764('0x8bc'),{'value':!0x0}),_0x51f255['default']=void 0x0;var _0x568c17=function(_0x43903c){var _0x1d82a7=_0x550764;!function(_0x3b6860,_0x22c76b){var _0x570569=_0x1c0e;if('function'!=typeof _0x22c76b&&null!==_0x22c76b)throw new TypeError(_0x570569('0xc4b'));_0x3b6860['prototype']=Object[_0x570569('0x3e2')](_0x22c76b&&_0x22c76b[_0x570569('0x539')],{'constructor':{'value':_0x3b6860,'writable':!0x0,'configurable':!0x0}}),_0x22c76b&&_0x432136(_0x3b6860,_0x22c76b);}(_0x496de3,_0x43903c);var _0x3da948,_0x3d2420,_0xb3a1b0,_0x1d537f,_0x2c6a27=(_0x3da948=_0x496de3,function(){var _0xdc6a19=_0x1c0e,_0x3fac2c,_0x56652b=_0x36b375(_0x3da948);if(_0x2ce65e()){var _0x14931e=_0x36b375(this)[_0xdc6a19('0x63e')];_0x3fac2c=Reflect[_0xdc6a19('0x195')](_0x56652b,arguments,_0x14931e);}else _0x3fac2c=_0x56652b[_0xdc6a19('0x365')](this,arguments);return _0x39e5d4(this,_0x3fac2c);});function _0x496de3(_0x52245e,_0x5e05c0,_0x5c2124,_0x4ef01d){var _0x4d7e42=_0x1c0e;return function(_0x8293ca,_0x4e46fe){var _0x3cf8a2=_0x1c0e;if(!(_0x8293ca instanceof _0x4e46fe))throw new TypeError(_0x3cf8a2('0x9a0'));}(this,_0x496de3),_0x2c6a27[_0x4d7e42('0x964')](this,_0x52245e,_0x5e05c0,_0x5c2124,_0x4ef01d);}return _0x3d2420=_0x496de3,(_0xb3a1b0=[{'key':_0x1d82a7('0x529'),'value':function(){var _0x327702=_0x1d82a7;return this[_0x327702('0x433')]()[_0x327702('0x796')]-0x1;}},{'key':_0x1d82a7('0x752'),'value':function(_0x54e456,_0x320b3c){var _0x17c11e=_0x1d82a7;$('#'[_0x17c11e('0x4c2')](this['itemNameLower'],'StatusModel'))['modal'](_0x17c11e('0x462')),$('#'['concat'](this['itemNameLower'],_0x17c11e('0x8a4')))[_0x17c11e('0xd34')](this[_0x17c11e('0x922')](_0x320b3c)),$('#'[_0x17c11e('0x4c2')](this[_0x17c11e('0xb76')],_0x17c11e('0x8a4')))['val'](_0x320b3c),this[_0x17c11e('0x2b4')]=_0x54e456;}},{'key':_0x1d82a7('0x171'),'value':function(){var _0x18168e=_0x1d82a7;$('#'[_0x18168e('0x4c2')](this[_0x18168e('0xb76')],_0x18168e('0x278')))['modal'](_0x18168e('0xafe'));}},{'key':_0x1d82a7('0x4d8'),'value':function(){var _0x43b07c=_0x1d82a7,_0x34c03b=$('#'[_0x43b07c('0x4c2')](this[_0x43b07c('0xb76')],_0x43b07c('0x8a4')))[_0x43b07c('0x6ae')](),_0x3ca79b=$('#'[_0x43b07c('0x4c2')](this['itemNameLower'],_0x43b07c('0xab5')))[_0x43b07c('0x6ae')]();if(null!=_0x34c03b&&null!=_0x34c03b&&''!=_0x34c03b){var _0x3e5572={'id':this['statusChangeId'],'status':_0x34c03b,'reason':_0x3ca79b},_0x37ae57=JSON[_0x43b07c('0xaae')](_0x3e5572),_0x4f5a1c=[];_0x4f5a1c[_0x43b07c('0x61a')]=[],_0x4f5a1c['callBackSuccess']=_0x43b07c('0x6e7'),_0x4f5a1c[_0x43b07c('0xd61')]='changeStatusFailCallBack',this[_0x43b07c('0xca3')](_0x43b07c('0x4d8'),_0x43b07c('0xd5e')[_0x43b07c('0x4c2')](this[_0x43b07c('0xa86')]),_0x37ae57,_0x4f5a1c),this['closeDialog'](),this[_0x43b07c('0x2b4')]=null;}else this['showMessage'](_0x43b07c('0x3fc'),_0x43b07c('0x4b2')[_0x43b07c('0x4c2')](this[_0x43b07c('0xb76')],_0x43b07c('0x9ec')));}},{'key':'changeStatusSuccessCallBack','value':function(_0x4ecd1a){var _0x4d05d=_0x1d82a7;this[_0x4d05d('0xaab')](_0x4d05d('0xc07'),''[_0x4d05d('0x4c2')](this[_0x4d05d('0xd4f')],_0x4d05d('0xdc3'))),this[_0x4d05d('0xda6')]([]);}},{'key':'changeStatusFailCallBack','value':function(_0x122594){var _0x20ff3a=_0x1d82a7;this['showMessage'](_0x20ff3a('0x3fc'),'Error\x20occurred\x20while\x20changing\x20'[_0x20ff3a('0x4c2')](this[_0x20ff3a('0xd4f')],_0x20ff3a('0x2ac')));}},{'key':'getActionButtonsHtml','value':function(_0x485f54,_0x59e5f9){var _0x4e5cb8=_0x1d82a7,_0x301100=_0x4e5cb8('0x55b'),_0x3de050=this[_0x4e5cb8('0x767')](_0x59e5f9[this[_0x4e5cb8('0x529')]()]);return _0x301100=(_0x301100=Object[_0x4e5cb8('0xabc')](_0x3de050)[_0x4e5cb8('0x796')]>0x0?_0x301100[_0x4e5cb8('0x8f9')](_0x4e5cb8('0x54'),_0x4e5cb8('0x7d4')):_0x301100[_0x4e5cb8('0x8f9')](_0x4e5cb8('0x54'),''))['replace'](_0x4e5cb8('0xb44'),''),_0x301100=this[_0x4e5cb8('0xb1e')]?_0x301100[_0x4e5cb8('0x8f9')]('_delete_',_0x4e5cb8('0x95e')):_0x301100['replace']('_delete_',''),_0x301100=(_0x301100=(_0x301100=(_0x301100=this[_0x4e5cb8('0x627')]?_0x301100[_0x4e5cb8('0x8f9')]('_edit_',_0x4e5cb8('0x1ea')):_0x301100['replace'](_0x4e5cb8('0x4c'),''))[_0x4e5cb8('0x8f9')](/_id_/g,_0x485f54))['replace'](/_BASE_/g,this[_0x4e5cb8('0xc7e')]))[_0x4e5cb8('0x8f9')](/_cstatus_/g,_0x59e5f9[this['getStatusFieldPosition']()]);}},{'key':_0x1d82a7('0x932'),'value':function(){var _0x1b5b86=_0x1d82a7;return _0x1b5b86('0x65e')!==this[_0x1b5b86('0x44d')]['user_level']&&_0x1b5b86('0x2fb')!==this['user'][_0x1b5b86('0xadc')];}},{'key':'getStatusOptionsData','value':function(_0x1aa6f3){var _0x1bdd9c=_0x1d82a7,_0x56e247={};return'Approved'===_0x1aa6f3||(_0x1bdd9c('0x197')===_0x1aa6f3?(_0x56e247[_0x1bdd9c('0xa14')]=_0x1bdd9c('0xa14'),_0x56e247[_0x1bdd9c('0x36c')]=_0x1bdd9c('0x36c')):_0x1bdd9c('0x36c')===_0x1aa6f3||_0x1bdd9c('0x11b')===_0x1aa6f3||'Processing'===_0x1aa6f3||(_0x56e247[_0x1bdd9c('0x64c')]=_0x1bdd9c('0x64c'),_0x56e247['Cancelled']=_0x1bdd9c('0x11b'))),_0x56e247;}},{'key':_0x1d82a7('0x922'),'value':function(_0x46f4e8){var _0x37d1c9=_0x1d82a7;return this[_0x37d1c9('0xc1e')](this[_0x37d1c9('0x767')](_0x46f4e8));}}])&&_0x4592d1(_0x3d2420[_0x1d82a7('0x539')],_0xb3a1b0),_0x1d537f&&_0x4592d1(_0x3d2420,_0x1d537f),_0x496de3;}(((_0x2150ea=_0x21fb98(_0x550764('0x2de')))&&_0x2150ea[_0x550764('0x8bc')]?_0x2150ea:{'default':_0x2150ea})[_0x550764('0x8fd')]);_0x51f255['default']=_0x568c17;},{'./LogViewAdapter':0x2e}],0x29:[function(_0x300ccd,_0x1fc6d8,_0x5433c8){var _0x4a9c6a=_0x1c0e;'use strict';var _0x5581;function _0x218177(_0x3619bb){var _0x511b85=_0x1c0e;return(_0x218177=_0x511b85('0xa25')==typeof Symbol&&_0x511b85('0xb5')==typeof Symbol[_0x511b85('0x4ae')]?function(_0x5aaaeb){return typeof _0x5aaaeb;}:function(_0x39895c){var _0x2c336b=_0x511b85;return _0x39895c&&_0x2c336b('0xa25')==typeof Symbol&&_0x39895c['constructor']===Symbol&&_0x39895c!==Symbol[_0x2c336b('0x539')]?_0x2c336b('0xb5'):typeof _0x39895c;})(_0x3619bb);}function _0x4dc94c(_0x2d71c4,_0x2f754c){if(!(_0x2d71c4 instanceof _0x2f754c))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x312620(_0x357fb0,_0x37a513){var _0x1bc9c4=_0x1c0e;for(var _0x56cad5=0x0;_0x56cad5<_0x37a513[_0x1bc9c4('0x796')];_0x56cad5++){var _0x3119d1=_0x37a513[_0x56cad5];_0x3119d1[_0x1bc9c4('0xdc2')]=_0x3119d1[_0x1bc9c4('0xdc2')]||!0x1,_0x3119d1['configurable']=!0x0,_0x1bc9c4('0x920')in _0x3119d1&&(_0x3119d1['writable']=!0x0),Object[_0x1bc9c4('0x751')](_0x357fb0,_0x3119d1[_0x1bc9c4('0x3ba')],_0x3119d1);}}function _0x93abfa(_0x5abea9,_0x36bf92){var _0x342adb=_0x1c0e;return!_0x36bf92||_0x342adb('0xbfd')!==_0x218177(_0x36bf92)&&_0x342adb('0xa25')!=typeof _0x36bf92?function(_0x541766){var _0x19fc12=_0x342adb;if(void 0x0===_0x541766)throw new ReferenceError(_0x19fc12('0xcf6'));return _0x541766;}(_0x5abea9):_0x36bf92;}function _0x2cf121(){var _0xf20f01=_0x1c0e;if(_0xf20f01('0xbfa')==typeof Reflect||!Reflect[_0xf20f01('0x195')])return!0x1;if(Reflect[_0xf20f01('0x195')][_0xf20f01('0x460')])return!0x1;if(_0xf20f01('0xa25')==typeof Proxy)return!0x0;try{return Date[_0xf20f01('0x539')]['toString'][_0xf20f01('0x964')](Reflect[_0xf20f01('0x195')](Date,[],function(){})),!0x0;}catch(_0x359621){return!0x1;}}function _0x43750a(_0x216159){var _0x3c2d43=_0x1c0e;return(_0x43750a=Object[_0x3c2d43('0x489')]?Object['getPrototypeOf']:function(_0x3b825e){return _0x3b825e['__proto__']||Object['getPrototypeOf'](_0x3b825e);})(_0x216159);}function _0x1c5f8d(_0x2e1187,_0x2caf5b){var _0x52db4a=_0x1c0e;return(_0x1c5f8d=Object[_0x52db4a('0x489')]||function(_0x2209bb,_0x579740){return _0x2209bb['__proto__']=_0x579740,_0x2209bb;})(_0x2e1187,_0x2caf5b);}Object[_0x4a9c6a('0x751')](_0x5433c8,_0x4a9c6a('0x8bc'),{'value':!0x0}),_0x5433c8[_0x4a9c6a('0x8fd')]=void 0x0;var _0x562f39=function(_0x4a0161){var _0x5690e6=_0x4a9c6a;!function(_0x5243f3,_0x297ab1){var _0x56abee=_0x1c0e;if(_0x56abee('0xa25')!=typeof _0x297ab1&&null!==_0x297ab1)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x5243f3[_0x56abee('0x539')]=Object[_0x56abee('0x3e2')](_0x297ab1&&_0x297ab1[_0x56abee('0x539')],{'constructor':{'value':_0x5243f3,'writable':!0x0,'configurable':!0x0}}),_0x297ab1&&_0x1c5f8d(_0x5243f3,_0x297ab1);}(_0x9cb682,_0x4a0161);var _0x4a9fcb,_0x694f75,_0x1798ab,_0x588f85,_0x337483=(_0x4a9fcb=_0x9cb682,function(){var _0x4af4d1=_0x1c0e,_0x15ad2b,_0x22f2c8=_0x43750a(_0x4a9fcb);if(_0x2cf121()){var _0x2f8c3a=_0x43750a(this)[_0x4af4d1('0x63e')];_0x15ad2b=Reflect[_0x4af4d1('0x195')](_0x22f2c8,arguments,_0x2f8c3a);}else _0x15ad2b=_0x22f2c8['apply'](this,arguments);return _0x93abfa(this,_0x15ad2b);});function _0x9cb682(){return _0x4dc94c(this,_0x9cb682),_0x337483['apply'](this,arguments);}return _0x694f75=_0x9cb682,(_0x1798ab=[{'key':_0x5690e6('0x395'),'value':function(_0x585d59){var _0x4b05df=_0x5690e6,_0x422309={};_0x422309['id']=_0x585d59;var _0xc91ee7=JSON['stringify'](_0x422309),_0x4601bc=[];_0x4601bc['callBackData']=[],_0x4601bc[_0x4b05df('0x4a2')]=_0x4b05df('0xb4'),_0x4601bc[_0x4b05df('0xd61')]='cancelFailCallBack',this[_0x4b05df('0xca3')]('cancel','modules='[_0x4b05df('0x4c2')](this['modulePathName']),_0xc91ee7,_0x4601bc);}},{'key':_0x5690e6('0xb4'),'value':function(_0x10921c){var _0x318b4e=_0x5690e6;this[_0x318b4e('0xaab')](_0x318b4e('0xc07'),''[_0x318b4e('0x4c2')](this[_0x318b4e('0xd4f')],_0x318b4e('0x25b'))),this[_0x318b4e('0xda6')]([]);}},{'key':_0x5690e6('0xd01'),'value':function(_0x28414f){var _0x1171a7=_0x5690e6;this[_0x1171a7('0xaab')](_0x1171a7('0xb46')[_0x1171a7('0x4c2')](this['itemName']),_0x28414f);}},{'key':_0x5690e6('0x388'),'value':function(_0x375a4f,_0xb3978){var _0x1d8732=_0x5690e6,_0x1b9629=''):_0x549891[_0x1d8732('0x8f9')](_0x1d8732('0x4c'),''))[_0x1d8732('0x8f9')](/_id_/g,_0x375a4f))[_0x1d8732('0x8f9')](/_BASE_/g,this[_0x1d8732('0xc7e')]);}}])&&_0x312620(_0x694f75['prototype'],_0x1798ab),_0x588f85&&_0x312620(_0x694f75,_0x588f85),_0x9cb682;}(((_0x5581=_0x300ccd(_0x4a9c6a('0x2de')))&&_0x5581[_0x4a9c6a('0x8bc')]?_0x5581:{'default':_0x5581})[_0x4a9c6a('0x8fd')]);_0x5433c8[_0x4a9c6a('0x8fd')]=_0x562f39;},{'./LogViewAdapter':0x2e}],0x2a:[function(_0x1ed45b,_0x359f2a,_0x2a51ed){var _0x1f8e68=_0x1c0e;'use strict';function _0x188b96(_0x5d83c1,_0x154088){var _0x22bf6f=_0x1c0e;for(var _0x3d5afc=0x0;_0x3d5afc<_0x154088[_0x22bf6f('0x796')];_0x3d5afc++){var _0x4b1bc9=_0x154088[_0x3d5afc];_0x4b1bc9['enumerable']=_0x4b1bc9['enumerable']||!0x1,_0x4b1bc9[_0x22bf6f('0x48d')]=!0x0,_0x22bf6f('0x920')in _0x4b1bc9&&(_0x4b1bc9['writable']=!0x0),Object['defineProperty'](_0x5d83c1,_0x4b1bc9['key'],_0x4b1bc9);}}Object[_0x1f8e68('0x751')](_0x2a51ed,_0x1f8e68('0x8bc'),{'value':!0x0}),_0x2a51ed[_0x1f8e68('0x8fd')]=void 0x0;var _0x17b7f9=_0x1ed45b(_0x1f8e68('0xb1c')),_0x5ec3a5=function(){var _0x303334=_0x1f8e68;function _0x5b100d(_0x47776c){!function(_0x49c9a3,_0x9ed9d1){var _0x1c940c=_0x1c0e;if(!(_0x49c9a3 instanceof _0x9ed9d1))throw new TypeError(_0x1c940c('0x9a0'));}(this,_0x5b100d),this['adapter']=_0x47776c;}var _0x13fcd8,_0x4196da,_0x160829;return _0x13fcd8=_0x5b100d,(_0x4196da=[{'key':_0x303334('0x126'),'value':function(_0x43f335,_0x24ef31,_0x38c77f,_0x19cd43){var _0x1418aa=_0x303334;return _0x19cd43?_0x17b7f9[_0x1418aa('0x63f')](this['moduleRelativeURL'],{'t':this[_0x1418aa('0xdad')][_0x1418aa('0xa5d')],'a':'ca','sa':_0x43f335,'mod':_0x24ef31,'req':_0x38c77f}):_0x17b7f9['get'](this['adapter'][_0x1418aa('0x2ba')],{'params':{'t':this['adapter'][_0x1418aa('0xa5d')],'a':'ca','sa':_0x43f335,'mod':_0x24ef31,'req':_0x38c77f}});}}])&&_0x188b96(_0x13fcd8[_0x303334('0x539')],_0x4196da),_0x160829&&_0x188b96(_0x13fcd8,_0x160829),_0x5b100d;}();_0x2a51ed[_0x1f8e68('0x8fd')]=_0x5ec3a5;},{'axios':0x62}],0x2b:[function(_0x48b7c4,_0x4f6d3a,_0x105f96){var _0x544b87=_0x1c0e;'use strict';var _0x187024;function _0x2b60e4(_0x129581){var _0x1361c6=_0x1c0e;return(_0x2b60e4=_0x1361c6('0xa25')==typeof Symbol&&'symbol'==typeof Symbol[_0x1361c6('0x4ae')]?function(_0x1abb6b){return typeof _0x1abb6b;}:function(_0x529d9c){var _0x5d0f38=_0x1361c6;return _0x529d9c&&_0x5d0f38('0xa25')==typeof Symbol&&_0x529d9c[_0x5d0f38('0x63e')]===Symbol&&_0x529d9c!==Symbol[_0x5d0f38('0x539')]?'symbol':typeof _0x529d9c;})(_0x129581);}function _0x4ce806(_0x35c0c6,_0x1ec6d9){var _0x1af12f=_0x1c0e;for(var _0x5abd25=0x0;_0x5abd25<_0x1ec6d9['length'];_0x5abd25++){var _0x46bb94=_0x1ec6d9[_0x5abd25];_0x46bb94['enumerable']=_0x46bb94[_0x1af12f('0xdc2')]||!0x1,_0x46bb94[_0x1af12f('0x48d')]=!0x0,_0x1af12f('0x920')in _0x46bb94&&(_0x46bb94[_0x1af12f('0x903')]=!0x0),Object[_0x1af12f('0x751')](_0x35c0c6,_0x46bb94[_0x1af12f('0x3ba')],_0x46bb94);}}function _0x1449f5(_0x2944a2,_0x107cf5){var _0x2c47f5=_0x1c0e;return!_0x107cf5||_0x2c47f5('0xbfd')!==_0x2b60e4(_0x107cf5)&&_0x2c47f5('0xa25')!=typeof _0x107cf5?function(_0x2ef53d){var _0x39ba8b=_0x2c47f5;if(void 0x0===_0x2ef53d)throw new ReferenceError(_0x39ba8b('0xcf6'));return _0x2ef53d;}(_0x2944a2):_0x107cf5;}function _0x31c597(){var _0x392c55=_0x1c0e;if(_0x392c55('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x392c55('0x195')][_0x392c55('0x460')])return!0x1;if(_0x392c55('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x392c55('0x539')][_0x392c55('0x6e9')]['call'](Reflect[_0x392c55('0x195')](Date,[],function(){})),!0x0;}catch(_0x1a4fe9){return!0x1;}}function _0x3c3295(_0x160a43){var _0x3fb3a9=_0x1c0e;return(_0x3c3295=Object['setPrototypeOf']?Object[_0x3fb3a9('0x85e')]:function(_0x45ec68){var _0x1f58b9=_0x3fb3a9;return _0x45ec68[_0x1f58b9('0xcb9')]||Object[_0x1f58b9('0x85e')](_0x45ec68);})(_0x160a43);}function _0xd37bf0(_0x199024,_0x3986d0){var _0x275f09=_0x1c0e;return(_0xd37bf0=Object[_0x275f09('0x489')]||function(_0xe20f53,_0x17ba24){return _0xe20f53['__proto__']=_0x17ba24,_0xe20f53;})(_0x199024,_0x3986d0);}Object[_0x544b87('0x751')](_0x105f96,_0x544b87('0x8bc'),{'value':!0x0}),_0x105f96[_0x544b87('0x8fd')]=void 0x0;var _0x1a182d=function(_0x4de627){var _0x12a0b1=_0x544b87;!function(_0x55e598,_0x1bb92b){var _0x2fd0b4=_0x1c0e;if(_0x2fd0b4('0xa25')!=typeof _0x1bb92b&&null!==_0x1bb92b)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x55e598[_0x2fd0b4('0x539')]=Object[_0x2fd0b4('0x3e2')](_0x1bb92b&&_0x1bb92b['prototype'],{'constructor':{'value':_0x55e598,'writable':!0x0,'configurable':!0x0}}),_0x1bb92b&&_0xd37bf0(_0x55e598,_0x1bb92b);}(_0x32dc95,_0x4de627);var _0x40e149,_0x1b1e2a,_0x122165,_0x4d153d,_0x48d5a7=(_0x40e149=_0x32dc95,function(){var _0x1f87b3=_0x1c0e,_0x34f6ce,_0x41bc2f=_0x3c3295(_0x40e149);if(_0x31c597()){var _0x81f949=_0x3c3295(this)[_0x1f87b3('0x63e')];_0x34f6ce=Reflect[_0x1f87b3('0x195')](_0x41bc2f,arguments,_0x81f949);}else _0x34f6ce=_0x41bc2f[_0x1f87b3('0x365')](this,arguments);return _0x1449f5(this,_0x34f6ce);});function _0x32dc95(_0x34991c,_0x516870,_0x51365e,_0x5448a9){var _0x4e8c34=_0x1c0e,_0x162ab4;return function(_0x4495d7,_0x14bdae){if(!(_0x4495d7 instanceof _0x14bdae))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0x32dc95),(_0x162ab4=_0x48d5a7[_0x4e8c34('0x964')](this,_0x34991c,_0x516870,_0x51365e,_0x5448a9))[_0x4e8c34('0xd99')]='',_0x162ab4;}return _0x1b1e2a=_0x32dc95,(_0x122165=[{'key':'getDataMapping','value':function(){var _0x2564c7=_0x1c0e;return['id',_0x2564c7('0xce'),'display',_0x2564c7('0x9a')];}},{'key':'getHeaders','value':function(){var _0x684ffe=_0x1c0e;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x684ffe('0xc8d')},{'sTitle':'Display\x20Status'},{'sTitle':'Priority'}];}},{'key':_0x12a0b1('0x73d'),'value':function(){var _0x790c3d=_0x12a0b1;return[['id',{'label':'ID','type':_0x790c3d('0xa05')}],[_0x790c3d('0xce'),{'label':_0x790c3d('0xc8d'),'type':_0x790c3d('0x941'),'validation':''}],[_0x790c3d('0x764'),{'label':_0x790c3d('0x6f8'),'type':_0x790c3d('0x510'),'source':[[_0x790c3d('0x805'),_0x790c3d('0x154')],[_0x790c3d('0x89a'),_0x790c3d('0x89a')]]}],[_0x790c3d('0x247'),{'label':'Field\x20Type','type':_0x790c3d('0x510'),'source':[[_0x790c3d('0x941'),_0x790c3d('0xc2e')],['textarea',_0x790c3d('0x38f')],[_0x790c3d('0x510'),_0x790c3d('0x64e')],[_0x790c3d('0xdc5'),_0x790c3d('0xa6f')],[_0x790c3d('0x4cc'),'Multi\x20Select'],['fileupload','File\x20Upload'],['date',_0x790c3d('0x69d')],['datetime',_0x790c3d('0xc87')],[_0x790c3d('0xd49'),_0x790c3d('0xa40')],['signature',_0x790c3d('0xb7')]]}],[_0x790c3d('0x342'),{'label':_0x790c3d('0x3cb'),'type':_0x790c3d('0x941'),'validation':''}],[_0x790c3d('0x2c4'),{'label':_0x790c3d('0xada'),'type':_0x790c3d('0xdc5'),'validation':'none','sort':_0x790c3d('0x649'),'null-label':_0x790c3d('0x43f'),'allow-null':!0x0,'source':[['none','None'],[_0x790c3d('0x218'),'Number'],[_0x790c3d('0xb7f'),_0x790c3d('0xb81')],['float',_0x790c3d('0xcd')],[_0x790c3d('0xd20'),'Email'],['emailOrEmpty',_0x790c3d('0x270')]]}],[_0x790c3d('0x41b'),{'label':_0x790c3d('0x9f9'),'type':'datagroup','form':[['label',{'label':'Label','type':_0x790c3d('0x941'),'validation':''}],['value',{'label':_0x790c3d('0x292'),'type':_0x790c3d('0x941'),'validation':'none'}]],'html':_0x790c3d('0xa21'),'validation':_0x790c3d('0x649')}],[_0x790c3d('0x9a'),{'label':_0x790c3d('0x9e0'),'type':_0x790c3d('0x941'),'validation':_0x790c3d('0x218')}],[_0x790c3d('0x28'),{'label':_0x790c3d('0x387'),'type':_0x790c3d('0x941'),'validation':_0x790c3d('0x649')}]];}},{'key':_0x12a0b1('0xa90'),'value':function(_0x2be76c){var _0x313470=_0x12a0b1;this[_0x313470('0xd99')]=_0x2be76c;}},{'key':_0x12a0b1('0xd0f'),'value':function(_0x12d976){var _0x1aed20;return null!=(_0x1aed20=_0x12d976['name'])&&/^[a-z][a-z0-9._]+$/['test'](_0x1aed20)?null:'Invalid\x20name\x20for\x20custom\x20field';}},{'key':_0x12a0b1('0x52f'),'value':function(_0x4e19a){var _0x3d0040=_0x12a0b1,_0xb8e2f5,_0x3dd233=[_0x4e19a[_0x3d0040('0xce')]],_0xb5abf7=[];if(_0x3dd233['push']({}),_0x3dd233[0x1][_0x3d0040('0x530')]=_0x4e19a[_0x3d0040('0x342')],_0x3dd233[0x1][_0x3d0040('0x18b')]=_0x4e19a[_0x3d0040('0x247')],_0x3dd233[0x1][_0x3d0040('0x573')]=_0x4e19a[_0x3d0040('0x2c4')],[_0x3d0040('0x510'),_0x3d0040('0xdc5'),_0x3d0040('0x4cc')]['indexOf'](_0x4e19a[_0x3d0040('0x247')])>=0x0){for(var _0x646cf3 in _0xb8e2f5=''===_0x4e19a[_0x3d0040('0x41b')]||void 0x0===_0x4e19a[_0x3d0040('0x41b')]?[]:JSON[_0x3d0040('0x22f')](_0x4e19a[_0x3d0040('0x41b')]))_0xb5abf7['push']([_0xb8e2f5[_0x646cf3][_0x3d0040('0x920')],_0xb8e2f5[_0x646cf3][_0x3d0040('0x530')]]);_0x3dd233[0x1][_0x3d0040('0x22c')]=_0xb5abf7;}return null!=_0x4e19a[_0x3d0040('0x2c4')]&&void 0x0!==_0x4e19a['field_validation']||(_0x4e19a[_0x3d0040('0x2c4')]=''),_0x4e19a[_0x3d0040('0x38')]=JSON[_0x3d0040('0xaae')](_0x3dd233),_0x4e19a[_0x3d0040('0x18b')]=this['tableType'],_0x4e19a;}}])&&_0x4ce806(_0x1b1e2a[_0x12a0b1('0x539')],_0x122165),_0x4d153d&&_0x4ce806(_0x1b1e2a,_0x4d153d),_0x32dc95;}(((_0x187024=_0x48b7c4(_0x544b87('0xd85')))&&_0x187024[_0x544b87('0x8bc')]?_0x187024:{'default':_0x187024})[_0x544b87('0x8fd')]);_0x105f96[_0x544b87('0x8fd')]=_0x1a182d;},{'./AdapterBase':0x27}],0x2c:[function(_0x3fbe8d,_0x5032db,_0x5bee43){var _0x41498a=_0x1c0e;'use strict';function _0x433a01(_0x1fc66c,_0x3565d0){var _0x1cf926=_0x1c0e;for(var _0x53e64a=0x0;_0x53e64a<_0x3565d0[_0x1cf926('0x796')];_0x53e64a++){var _0x2d54e9=_0x3565d0[_0x53e64a];_0x2d54e9['enumerable']=_0x2d54e9[_0x1cf926('0xdc2')]||!0x1,_0x2d54e9[_0x1cf926('0x48d')]=!0x0,_0x1cf926('0x920')in _0x2d54e9&&(_0x2d54e9[_0x1cf926('0x903')]=!0x0),Object[_0x1cf926('0x751')](_0x1fc66c,_0x2d54e9[_0x1cf926('0x3ba')],_0x2d54e9);}}Object['defineProperty'](_0x5bee43,_0x41498a('0x8bc'),{'value':!0x0}),_0x5bee43[_0x41498a('0x8fd')]=void 0x0;var _0x115a96={'float':function(_0x534657){var _0x5a396d=_0x41498a;return!(null==_0x534657||!_0x534657[_0x5a396d('0x523')](/^[-+]?[0-9]+(\.[0-9]+)?$/));},'number':function(_0x3f56c3){var _0x4bf099=_0x41498a;return!(null==_0x3f56c3||!_0x3f56c3[_0x4bf099('0x523')](/^[0-9]+$/));},'numberOrEmpty':function(_0x3e169f){var _0x4d47c9=_0x41498a;if(''===_0x3e169f)return!0x0;return!(null==_0x3e169f||!_0x3e169f[_0x4d47c9('0x523')](/^[0-9]+$/));},'email':function(_0x502350){var _0x54f5fd=_0x41498a;return null!=_0x502350&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/[_0x54f5fd('0x96c')](_0x502350);},'emailOrEmpty':function(_0x4a73b2){var _0x2ed371=_0x41498a;if(''===_0x4a73b2)return!0x0;return null!=_0x4a73b2&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/[_0x2ed371('0x96c')](_0x4a73b2);},'username':function(_0xe856ee){return null!=_0xe856ee&&/^[a-zA-Z0-9.-]+$/['test'](_0xe856ee);},'input':function(_0x35486e){var _0x17fdf7=_0x41498a;return null!=_0x35486e&&_0x35486e[_0x17fdf7('0x796')]>0x0;}},_0x2c36d2=function(){var _0x2b3fd4=_0x41498a;function _0x1df7d0(_0x13c45b,_0x4b1cb3,_0x3e5370){var _0x246771=_0x1c0e;!function(_0x493d3f,_0x12eca8){var _0xa3e523=_0x1c0e;if(!(_0x493d3f instanceof _0x12eca8))throw new TypeError(_0xa3e523('0x9a0'));}(this,_0x1df7d0),this[_0x246771('0xd12')]={},this[_0x246771('0x82b')]=_0x13c45b,this[_0x246771('0x859')]=!0x1,this['formObject']=null,this[_0x246771('0x858')]='',this[_0x246771('0xb5c')]=null,this[_0x246771('0x11a')]=_0x4b1cb3,this[_0x246771('0x7b9')]=[],this[_0x246771('0x9bc')]={'thirdPartyPopup':null,'LabelErrorClass':!0x1,'ShowPopup':!0x0},this[_0x246771('0x9bc')]=jQuery['extend'](this[_0x246771('0x9bc')],_0x3e5370),this['inputTypes']=['text',_0x246771('0xda0'),_0x246771('0x251'),_0x246771('0x905'),_0x246771('0x369'),_0x246771('0x140'),_0x246771('0x5b4'),_0x246771('0xbd5'),_0x246771('0x321'),'signature'],this[_0x246771('0xa3d')]=_0x115a96;}var _0x3017b4,_0x4bd342,_0x8c8320;return _0x3017b4=_0x1df7d0,_0x4bd342=[{'key':_0x2b3fd4('0x59d'),'value':function(_0x111d04,_0x1be26b){var _0x4db4de=_0x2b3fd4,_0x35d6b5=_0x111d04[_0x4db4de('0x7c9')]('id');$('#'['concat'](this['formId'],_0x4db4de('0x985'))['concat'](_0x35d6b5))[_0x4db4de('0x6d1')](_0x4db4de('0xab4')),$('#'[_0x4db4de('0x4c2')](this[_0x4db4de('0x82b')],_0x4db4de('0x48e'))['concat'](_0x35d6b5))['html']('');}},{'key':'addError','value':function(_0x58a402,_0x2f3a47){var _0x8fbd54=_0x2b3fd4;this[_0x8fbd54('0x859')]=!0x0,null!=_0x58a402[_0x8fbd54('0x7c9')](_0x8fbd54('0xb0a'))?(this[_0x8fbd54('0x858')]+=''['concat'](_0x58a402[_0x8fbd54('0x7c9')](_0x8fbd54('0xb0a')),'\x0a'),this[_0x8fbd54('0x7b9')][_0x58a402[_0x8fbd54('0x7c9')](_0x8fbd54('0xce'))]=_0x58a402['attr']('message')):this[_0x8fbd54('0x7b9')][_0x58a402[_0x8fbd54('0x7c9')](_0x8fbd54('0xce'))]='';var _0x3325ad=_0x58a402[_0x8fbd54('0x7c9')]('id'),_0x53936b=_0x58a402['attr']('validation'),_0x176da5=_0x58a402[_0x8fbd54('0x7c9')](_0x8fbd54('0x573'));$('#'['concat'](this['formId'],_0x8fbd54('0x985'))[_0x8fbd54('0x4c2')](_0x3325ad))['addClass'](_0x8fbd54('0xab4')),void 0x0===_0x176da5||null==_0x176da5||''===_0x176da5?$('#'[_0x8fbd54('0x4c2')](this[_0x8fbd54('0x82b')],_0x8fbd54('0x6de'))['concat'](_0x3325ad))['html'](_0x176da5):void 0x0===_0x53936b||null==_0x53936b||''===_0x53936b?$('#'[_0x8fbd54('0x4c2')](this['formId'],_0x8fbd54('0x6de'))[_0x8fbd54('0x4c2')](_0x3325ad))[_0x8fbd54('0xd34')](_0x8fbd54('0x43f')):_0x8fbd54('0x650')===_0x53936b||_0x8fbd54('0x218')===_0x53936b?$('#'[_0x8fbd54('0x4c2')](this[_0x8fbd54('0x82b')],_0x8fbd54('0x6de'))['concat'](_0x3325ad))['html']('Number\x20required'):_0x8fbd54('0xd20')===_0x53936b?$('#'['concat'](this[_0x8fbd54('0x82b')],_0x8fbd54('0x6de'))[_0x8fbd54('0x4c2')](_0x3325ad))[_0x8fbd54('0xd34')]('Email\x20required'):$('#'[_0x8fbd54('0x4c2')](this['formId'],'\x20#help_err_')[_0x8fbd54('0x4c2')](_0x3325ad))[_0x8fbd54('0xd34')](_0x8fbd54('0x43f'));}},{'key':_0x2b3fd4('0x272'),'value':function(){var _0x3e5033=_0x2b3fd4;this[_0x3e5033('0x859')]&&(void 0x0!==this[_0x3e5033('0x9bc')][_0x3e5033('0x3d3')]&&null!=this['settings']['thirdPartyPopup']?this['settings'][_0x3e5033('0x3d3')]['alert']():!0x0===this['settings'][_0x3e5033('0x211')]&&(void 0x0!==this['tempOptions']['popupTop']&&null!=this[_0x3e5033('0xd12')][_0x3e5033('0xb6c')]?this[_0x3e5033('0xbf2')](_0x3e5033('0x6ca'),this[_0x3e5033('0x858')],this[_0x3e5033('0xd12')][_0x3e5033('0xb6c')]):this['alert'](_0x3e5033('0x6ca'),this[_0x3e5033('0x858')],-0x1)));}},{'key':_0x2b3fd4('0x472'),'value':function(_0xc0c585){var _0x41d32d=_0x2b3fd4;this[_0x41d32d('0xd12')]=_0xc0c585;var _0x8beb05=this;this['formError']=!0x1,this[_0x41d32d('0x858')]='',this[_0x41d32d('0x9c9')]={};var _0x37a95a=function(_0x124def){var _0x31b2a1=_0x41d32d,_0x33371d=null,_0x2be114=_0x124def[_0x31b2a1('0x7c9')]('name');!0x1!==_0x8beb05[_0x31b2a1('0x9bc')][_0x31b2a1('0x1a9')]&&$(_0x31b2a1('0xb7b')[_0x31b2a1('0x4c2')](_0x2be114,'\x27]'))[_0x31b2a1('0x6d1')](_0x8beb05['settings']['LabelErrorClass']);var _0x4a15e7=_0x124def[_0x31b2a1('0x7c9')]('id'),_0x1e4528=_0x124def[_0x31b2a1('0x7c9')](_0x31b2a1('0x18b'));if(_0x124def[_0x31b2a1('0xc2b')]('select2-focusser')||_0x124def['hasClass'](_0x31b2a1('0xa08')))return!0x0;if(jQuery[_0x31b2a1('0xaa7')](_0x1e4528,_0x8beb05[_0x31b2a1('0x661')])>=0x0){if(_0x124def[_0x31b2a1('0xc2b')]('uploadInput'))_0x33371d=_0x124def[_0x31b2a1('0x7c9')](_0x31b2a1('0x6ae'));else{if(_0x31b2a1('0xda0')===_0x1e4528||_0x31b2a1('0x251')===_0x1e4528)_0x33371d=$('input[name=\x27'['concat'](_0x2be114,_0x31b2a1('0x60d')))[_0x31b2a1('0x6ae')]();else{if(_0x124def[_0x31b2a1('0xc2b')](_0x31b2a1('0x373')))_0x33371d=null!=$('#'[_0x31b2a1('0x4c2')](_0x8beb05[_0x31b2a1('0x82b')],'\x20#')[_0x31b2a1('0x4c2')](_0x4a15e7))[_0x31b2a1('0xdc5')](_0x31b2a1('0x38'))&&void 0x0!==$('#'[_0x31b2a1('0x4c2')](_0x8beb05['formId'],'\x20#')[_0x31b2a1('0x4c2')](_0x4a15e7))[_0x31b2a1('0xdc5')](_0x31b2a1('0x38'))?$('#'[_0x31b2a1('0x4c2')](_0x8beb05['formId'],'\x20#')[_0x31b2a1('0x4c2')](_0x4a15e7))[_0x31b2a1('0xdc5')]('data')['id']:'';else{if(_0x124def[_0x31b2a1('0xc2b')]('select2Multi')){if(null!=$('#'[_0x31b2a1('0x4c2')](_0x8beb05[_0x31b2a1('0x82b')],'\x20#')[_0x31b2a1('0x4c2')](_0x4a15e7))['select2'](_0x31b2a1('0x38'))&&void 0x0!==$('#'[_0x31b2a1('0x4c2')](_0x8beb05[_0x31b2a1('0x82b')],'\x20#')[_0x31b2a1('0x4c2')](_0x4a15e7))[_0x31b2a1('0xdc5')](_0x31b2a1('0x38'))){var _0x9bc507=$('#'[_0x31b2a1('0x4c2')](_0x8beb05[_0x31b2a1('0x82b')],'\x20#')[_0x31b2a1('0x4c2')](_0x4a15e7))[_0x31b2a1('0xdc5')](_0x31b2a1('0x38'));_0x33371d=[];for(var _0x2b3ff1=0x0;_0x2b3ff1<_0x9bc507['length'];_0x2b3ff1++)_0x33371d['push'](_0x9bc507[_0x2b3ff1]['id']);_0x33371d=JSON[_0x31b2a1('0xaae')](_0x33371d);}else _0x33371d='';}else _0x33371d=_0x124def['hasClass'](_0x31b2a1('0x4a9'))?$('#'[_0x31b2a1('0x4c2')](_0x8beb05[_0x31b2a1('0x82b')],'\x20#')['concat'](_0x4a15e7))['data'](_0x31b2a1('0xbe'))[_0x31b2a1('0xbc9')]()?'':$('#'[_0x31b2a1('0x4c2')](_0x4a15e7))['data'](_0x31b2a1('0xbe'))[_0x31b2a1('0x27f')]():_0x124def['hasClass']('simplemde')?$('#'[_0x31b2a1('0x4c2')](_0x8beb05['formId'],'\x20#')['concat'](_0x4a15e7))[_0x31b2a1('0x38')](_0x31b2a1('0x32'))[_0x31b2a1('0x920')]():_0x124def[_0x31b2a1('0xc2b')](_0x31b2a1('0x227'))?$('#'[_0x31b2a1('0x4c2')](_0x8beb05[_0x31b2a1('0x82b')],'\x20#')[_0x31b2a1('0x4c2')](_0x4a15e7))['data'](_0x31b2a1('0x2f6'))[_0x31b2a1('0xa0d')]():_0x124def['hasClass'](_0x31b2a1('0x30f'))?tinyMCE[_0x31b2a1('0xda6')](_0x4a15e7)[_0x31b2a1('0x3f')]({'format':_0x31b2a1('0x5df')}):_0x124def[_0x31b2a1('0x6ae')]();}}}var _0x8268d9=_0x124def[_0x31b2a1('0x7c9')]('validation'),_0x5498ea=!0x1;void 0x0!==_0x8268d9&&null!=_0x8268d9&&void 0x0!==_0x8beb05[_0x31b2a1('0xa3d')][_0x8268d9]&&null!=_0x8beb05[_0x31b2a1('0xa3d')][_0x8268d9]?_0x5498ea=_0x8beb05['validator'][_0x8268d9](_0x33371d):(_0x5498ea=!_0x8beb05[_0x31b2a1('0x11a')]||void 0x0!==_0x8268d9&&null!=_0x8268d9&&_0x31b2a1('0x649')===_0x8268d9||_0x8beb05[_0x31b2a1('0xa3d')][_0x31b2a1('0x555')](_0x33371d),_0x8beb05[_0x31b2a1('0x9c9')][_0x4a15e7]=_0x33371d),_0x5498ea?(_0x8beb05[_0x31b2a1('0x59d')](_0x124def,null),_0x8beb05[_0x31b2a1('0x9c9')][_0x4a15e7]=_0x33371d):_0x8beb05[_0x31b2a1('0x2bc')](_0x124def,null);}},_0x4dbc60=$('#'[_0x41d32d('0x4c2')](this[_0x41d32d('0x82b')],_0x41d32d('0xae1')));return _0x4dbc60[_0x41d32d('0xc63')](function(){_0x37a95a($(this));}),(_0x4dbc60=$('#'[_0x41d32d('0x4c2')](this['formId'],_0x41d32d('0xdb'))))['each'](function(){_0x37a95a($(this));}),this[_0x41d32d('0x272')](),this['tempOptions']={},!this[_0x41d32d('0x859')];}},{'key':_0x2b3fd4('0x4d3'),'value':function(){var _0x4b87cd=_0x2b3fd4;return this[_0x4b87cd('0x9c9')];}},{'key':_0x2b3fd4('0xbf2'),'value':function(_0x5ceb09){var _0x3cef79=_0x2b3fd4;function _0x32edf7(_0x48ac7,_0x5ef717){var _0x30d47e=_0x1c0e;return _0x5ceb09[_0x30d47e('0x365')](this,arguments);}return _0x32edf7[_0x3cef79('0x6e9')]=function(){var _0x55c26b=_0x3cef79;return _0x5ceb09[_0x55c26b('0x6e9')]();},_0x32edf7;}(function(_0x547fa2,_0x36b888){alert(_0x36b888);})}],_0x8c8320=[{'key':_0x2b3fd4('0x674'),'value':function(){return _0x115a96;}}],_0x4bd342&&_0x433a01(_0x3017b4[_0x2b3fd4('0x539')],_0x4bd342),_0x8c8320&&_0x433a01(_0x3017b4,_0x8c8320),_0x1df7d0;}();_0x5bee43[_0x41498a('0x8fd')]=_0x2c36d2;},{}],0x2d:[function(_0xc21fc4,_0x3aec32,_0x2aa787){var _0x1a213a=_0x1c0e;'use strict';function _0x282564(_0x32a70f,_0x518f25){var _0x4a2dd8=_0x1c0e;if(!(_0x32a70f instanceof _0x518f25))throw new TypeError(_0x4a2dd8('0x9a0'));}function _0xacdb36(_0x4ac6fa,_0x489522){var _0x2671e9=_0x1c0e;for(var _0xb7670c=0x0;_0xb7670c<_0x489522[_0x2671e9('0x796')];_0xb7670c++){var _0x5b9b6b=_0x489522[_0xb7670c];_0x5b9b6b['enumerable']=_0x5b9b6b[_0x2671e9('0xdc2')]||!0x1,_0x5b9b6b[_0x2671e9('0x48d')]=!0x0,_0x2671e9('0x920')in _0x5b9b6b&&(_0x5b9b6b[_0x2671e9('0x903')]=!0x0),Object[_0x2671e9('0x751')](_0x4ac6fa,_0x5b9b6b[_0x2671e9('0x3ba')],_0x5b9b6b);}}Object[_0x1a213a('0x751')](_0x2aa787,_0x1a213a('0x8bc'),{'value':!0x0}),_0x2aa787[_0x1a213a('0x8fd')]=void 0x0;var _0x46dfe8=_0xc21fc4(_0x1a213a('0xb1c')),_0x46d75f=function(){var _0x2fbc65=_0x1a213a;function _0x4c13f2(_0x1d0a3b,_0x51f0f7,_0x2dae78){var _0x8f406=_0x1c0e,_0x1cd9b4=!(arguments['length']>0x3&&void 0x0!==arguments[0x3])||arguments[0x3];_0x282564(this,_0x4c13f2),this[_0x8f406('0xc7e')]=_0x1d0a3b,this[_0x8f406('0xc24')]=_0x51f0f7,this[_0x8f406('0xc53')]=_0x2dae78,this['legacyApiWrapper']=_0x1cd9b4;}var _0x2269ef,_0x136ed8,_0xd06170;return _0x2269ef=_0x4c13f2,(_0x136ed8=[{'key':_0x2fbc65('0xda6'),'value':function(_0x4c2952){var _0x2c7a6e=_0x2fbc65;if(this[_0x2c7a6e('0x831')]){var _0xb047f9=''[_0x2c7a6e('0x4c2')](this[_0x2c7a6e('0xc53')],'api/index.php?token=')[_0x2c7a6e('0x4c2')](this[_0x2c7a6e('0xc24')],_0x2c7a6e('0x78c'))[_0x2c7a6e('0x4c2')](_0x4c2952);return _0x46dfe8[_0x2c7a6e('0xda6')](_0xb047f9);}return _0x46dfe8[_0x2c7a6e('0xda6')](this[_0x2c7a6e('0xc7e')]+_0x4c2952,{'headers':{'Authorization':_0x2c7a6e('0x482')['concat'](this['token'])}});}}])&&_0xacdb36(_0x2269ef[_0x2fbc65('0x539')],_0x136ed8),_0xd06170&&_0xacdb36(_0x2269ef,_0xd06170),_0x4c13f2;}();_0x2aa787[_0x1a213a('0x8fd')]=_0x46d75f;},{'axios':0x62}],0x2e:[function(_0x1b2771,_0xde1960,_0x457289){var _0x7b2c20=_0x1c0e;'use strict';var _0x44bbd7;function _0x116b12(_0x3b1980){var _0x27a061=_0x1c0e;return(_0x116b12='function'==typeof Symbol&&_0x27a061('0xb5')==typeof Symbol['iterator']?function(_0x310d59){return typeof _0x310d59;}:function(_0x2b0d0d){var _0x36458c=_0x27a061;return _0x2b0d0d&&'function'==typeof Symbol&&_0x2b0d0d['constructor']===Symbol&&_0x2b0d0d!==Symbol[_0x36458c('0x539')]?_0x36458c('0xb5'):typeof _0x2b0d0d;})(_0x3b1980);}function _0x3fc61e(_0x5c332a,_0x134920){var _0x4555a5=_0x1c0e;if(!(_0x5c332a instanceof _0x134920))throw new TypeError(_0x4555a5('0x9a0'));}function _0x437fb1(_0x524137,_0x4e22a3){var _0x392528=_0x1c0e;for(var _0x280469=0x0;_0x280469<_0x4e22a3[_0x392528('0x796')];_0x280469++){var _0x40da61=_0x4e22a3[_0x280469];_0x40da61['enumerable']=_0x40da61[_0x392528('0xdc2')]||!0x1,_0x40da61[_0x392528('0x48d')]=!0x0,'value'in _0x40da61&&(_0x40da61['writable']=!0x0),Object[_0x392528('0x751')](_0x524137,_0x40da61[_0x392528('0x3ba')],_0x40da61);}}function _0x9cb6e8(_0x13fbb6,_0x4ed138){var _0x5e9f7a=_0x1c0e;return!_0x4ed138||_0x5e9f7a('0xbfd')!==_0x116b12(_0x4ed138)&&_0x5e9f7a('0xa25')!=typeof _0x4ed138?function(_0xbbe949){var _0x1a553b=_0x5e9f7a;if(void 0x0===_0xbbe949)throw new ReferenceError(_0x1a553b('0xcf6'));return _0xbbe949;}(_0x13fbb6):_0x4ed138;}function _0xde9783(){var _0x2b8f79=_0x1c0e;if('undefined'==typeof Reflect||!Reflect[_0x2b8f79('0x195')])return!0x1;if(Reflect[_0x2b8f79('0x195')][_0x2b8f79('0x460')])return!0x1;if(_0x2b8f79('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x2b8f79('0x539')]['toString']['call'](Reflect[_0x2b8f79('0x195')](Date,[],function(){})),!0x0;}catch(_0x283c79){return!0x1;}}function _0x6a1d17(_0x56a831){var _0x3b3aea=_0x1c0e;return(_0x6a1d17=Object[_0x3b3aea('0x489')]?Object[_0x3b3aea('0x85e')]:function(_0x5e5c0b){var _0x28a2be=_0x3b3aea;return _0x5e5c0b[_0x28a2be('0xcb9')]||Object[_0x28a2be('0x85e')](_0x5e5c0b);})(_0x56a831);}function _0xcfdc4e(_0xff6eb1,_0x2ffd34){var _0x57ce0d=_0x1c0e;return(_0xcfdc4e=Object[_0x57ce0d('0x489')]||function(_0x409a31,_0x245533){return _0x409a31['__proto__']=_0x245533,_0x409a31;})(_0xff6eb1,_0x2ffd34);}Object['defineProperty'](_0x457289,_0x7b2c20('0x8bc'),{'value':!0x0}),_0x457289[_0x7b2c20('0x8fd')]=void 0x0;var _0x1aacb4=function(_0x1c738e){var _0x3c3743=_0x7b2c20;!function(_0x5c276e,_0x2c20cf){var _0x335993=_0x1c0e;if(_0x335993('0xa25')!=typeof _0x2c20cf&&null!==_0x2c20cf)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x5c276e[_0x335993('0x539')]=Object[_0x335993('0x3e2')](_0x2c20cf&&_0x2c20cf[_0x335993('0x539')],{'constructor':{'value':_0x5c276e,'writable':!0x0,'configurable':!0x0}}),_0x2c20cf&&_0xcfdc4e(_0x5c276e,_0x2c20cf);}(_0x3a128e,_0x1c738e);var _0x3e0158,_0x293ef8,_0x471e56,_0x359ee0,_0x55f82b=(_0x3e0158=_0x3a128e,function(){var _0x4fb93f=_0x1c0e,_0x28e8ba,_0x1ddbe9=_0x6a1d17(_0x3e0158);if(_0xde9783()){var _0x4c1637=_0x6a1d17(this)[_0x4fb93f('0x63e')];_0x28e8ba=Reflect[_0x4fb93f('0x195')](_0x1ddbe9,arguments,_0x4c1637);}else _0x28e8ba=_0x1ddbe9['apply'](this,arguments);return _0x9cb6e8(this,_0x28e8ba);});function _0x3a128e(){var _0x498233=_0x1c0e;return _0x3fc61e(this,_0x3a128e),_0x55f82b[_0x498233('0x365')](this,arguments);}return _0x293ef8=_0x3a128e,(_0x471e56=[{'key':_0x3c3743('0x366'),'value':function(_0x1a519a){var _0x368867=_0x3c3743,_0x5d5318={'id':_0x1a519a},_0x52b906=JSON[_0x368867('0xaae')](_0x5d5318),_0x1d823a=[];_0x1d823a['callBackData']=[],_0x1d823a[_0x368867('0x4a2')]=_0x368867('0xa13'),_0x1d823a[_0x368867('0xd61')]='getLogsFailCallBack',this[_0x368867('0xca3')](_0x368867('0x366'),_0x368867('0xd5e')['concat'](this[_0x368867('0xa86')]),_0x52b906,_0x1d823a);}},{'key':'getLogsSuccessCallBack','value':function(_0x335066){var _0x29f5e3=_0x3c3743;for(var _0x364e35=_0x29f5e3('0x8e9'),_0x141066=_0x335066['data'],_0x100876='',_0x42eb10='',_0x241c5c=0x0;_0x241c5c<_0x141066[_0x29f5e3('0x796')];_0x241c5c++){var _0x256c87='_date_  _status_
    _note_';_0x42eb10+=_0x256c87=(_0x256c87=(_0x256c87=_0x256c87[_0x29f5e3('0x8f9')](/_date_/g,_0x141066[_0x241c5c]['time']))[_0x29f5e3('0x8f9')](/_status_/g,''[_0x29f5e3('0x4c2')](_0x141066[_0x241c5c][_0x29f5e3('0xa96')],'\x20->\x20')[_0x29f5e3('0x4c2')](_0x141066[_0x241c5c][_0x29f5e3('0x62')])))[_0x29f5e3('0x8f9')](/_note_/g,_0x141066[_0x241c5c]['note']);}''!==_0x42eb10&&(_0x100876+=_0x364e35=_0x364e35[_0x29f5e3('0x8f9')]('_days_',_0x42eb10)),this[_0x29f5e3('0xaab')](_0x29f5e3('0x715'),_0x100876),timeUtils[_0x29f5e3('0x2a7')]($(_0x29f5e3('0xb8c')));}},{'key':'getLogsFailCallBack','value':function(_0x584677){var _0x2448d7=_0x3c3743;this[_0x2448d7('0xaab')](_0x2448d7('0x3fc'),_0x2448d7('0xaf9'));}}])&&_0x437fb1(_0x293ef8[_0x3c3743('0x539')],_0x471e56),_0x359ee0&&_0x437fb1(_0x293ef8,_0x359ee0),_0x3a128e;}(((_0x44bbd7=_0x1b2771('./AdapterBase'))&&_0x44bbd7[_0x7b2c20('0x8bc')]?_0x44bbd7:{'default':_0x44bbd7})['default']);_0x457289['default']=_0x1aacb4;},{'./AdapterBase':0x27}],0x2f:[function(_0x5627c2,_0x3aa32b,_0x3497f5){var _0x3e5420=_0x1c0e;'use strict';function _0x13c549(_0xd8e126,_0x3bed75){var _0x2a9633=_0x1c0e;for(var _0x476739=0x0;_0x476739<_0x3bed75['length'];_0x476739++){var _0x2875a9=_0x3bed75[_0x476739];_0x2875a9['enumerable']=_0x2875a9['enumerable']||!0x1,_0x2875a9[_0x2a9633('0x48d')]=!0x0,'value'in _0x2875a9&&(_0x2875a9[_0x2a9633('0x903')]=!0x0),Object[_0x2a9633('0x751')](_0xd8e126,_0x2875a9[_0x2a9633('0x3ba')],_0x2875a9);}}Object['defineProperty'](_0x3497f5,'__esModule',{'value':!0x0}),_0x3497f5['default']=void 0x0;var _0x5db14f=_0x5627c2(_0x3e5420('0xb1c')),_0x4bbaef=function(){var _0x8ab257=_0x3e5420;function _0x3c65f5(_0x139286){var _0x4b9804=_0x1c0e;!function(_0x377a2b,_0xd23058){var _0x15547d=_0x1c0e;if(!(_0x377a2b instanceof _0xd23058))throw new TypeError(_0x15547d('0x9a0'));}(this,_0x3c65f5),this['adapter']=_0x139286,this[_0x4b9804('0x10')]=this[_0x4b9804('0xdad')][_0x4b9804('0x10')];}var _0x274277,_0x169eed,_0x42b9f8;return _0x274277=_0x3c65f5,(_0x169eed=[{'key':_0x8ab257('0x3d6'),'value':function(_0x27002c){var _0xdec014=_0x8ab257,_0x28d9dd=this,_0x350bc5='',_0x5b13fe='';null!=_0x27002c[0x3]&&(_0x350bc5=_0x27002c[0x3]),null!=_0x27002c[0x4]&&(_0x5b13fe=JSON['stringify'](_0x27002c[0x4]));var _0xdc8c48=this['requestCache'][_0xdec014('0x51f')](this[_0xdec014('0xdad')][_0xdec014('0x2ba')],{'t':_0x27002c[0x0],'key':_0x27002c[0x1],'value':_0x27002c[0x2],'method':_0x350bc5,'methodParams':_0x5b13fe,'a':_0xdec014('0x807')}),_0x52fc25=this['requestCache'][_0xdec014('0xaa3')](_0xdc8c48);if(null!=_0x52fc25&&_0xdec014('0xbf9')===_0x52fc25[_0xdec014('0x525')])return new Promise(function(_0x4cf70d,_0x8e28a3){var _0x4b2b1f=_0xdec014;return _0x4cf70d(_0x52fc25[_0x4b2b1f('0x38')]);});var _0x564125={'t':_0x27002c[0x0],'key':_0x27002c[0x1],'value':_0x27002c[0x2],'method':_0x350bc5,'methodParams':_0x5b13fe,'a':_0xdec014('0x807')},_0x2b39d0=''[_0xdec014('0x4c2')](this[_0xdec014('0xdad')][_0xdec014('0x2ba')],_0xdec014('0x398'));for(var _0x5a91d8 in _0x564125)_0x2b39d0=''[_0xdec014('0x4c2')](_0x2b39d0,'&')['concat'](_0x5a91d8,'=')[_0xdec014('0x4c2')](encodeURIComponent(_0x564125[_0x5a91d8]));return _0x5db14f[_0xdec014('0x63f')](_0x2b39d0,{})[_0xdec014('0x13b')](function(_0x538a33){var _0x31ac36=_0xdec014;if(_0x31ac36('0xbf9')!==_0x538a33[_0x31ac36('0x38')][_0x31ac36('0x525')])throw Error(_0x31ac36('0xc1a')['concat'](_0xdc8c48,_0x31ac36('0x58')));return _0x28d9dd[_0x31ac36('0x10')]['setData'](_0xdc8c48,_0x538a33['data']),_0x538a33[_0x31ac36('0x38')][_0x31ac36('0x38')];});}},{'key':_0x8ab257('0x545'),'value':function(){var _0x21da37=_0x8ab257;for(var _0x4c44a4=this,_0x5874bf=this[_0x21da37('0xdad')][_0x21da37('0x517')](),_0x3285c5=[],_0x5c9c12=0x0;_0x5c9c12<_0x5874bf[_0x21da37('0x796')];_0x5c9c12++){var _0x574db5=_0x5874bf[_0x5c9c12];void 0x0!==_0x574db5[0x1][_0x21da37('0x26d')]&&null!=_0x574db5[0x1][_0x21da37('0x26d')]&&function(){var _0x1ba686=_0x21da37,_0x1c2dfe=''['concat'](_0x574db5[0x1][_0x1ba686('0x26d')][0x0],'_')[_0x1ba686('0x4c2')](_0x574db5[0x1][_0x1ba686('0x26d')][0x1],'_')['concat'](_0x574db5[0x1][_0x1ba686('0x26d')][0x2]);0x4===_0x574db5[0x1]['remote-source'][_0x1ba686('0x796')]&&(_0x1c2dfe=''[_0x1ba686('0x4c2')](_0x1c2dfe,'_')['concat'](_0x574db5[0x1][_0x1ba686('0x26d')][0x3]));var _0x3c7173=_0x4c44a4[_0x1ba686('0x3d6')](_0x574db5[0x1][_0x1ba686('0x26d')])[_0x1ba686('0x13b')](function(_0x10fb20){_0x4c44a4['adapter']['fieldMasterData'][_0x1c2dfe]=_0x10fb20;});_0x3285c5[_0x1ba686('0xb2')](_0x3c7173);}();}return Promise[_0x21da37('0xb27')](_0x3285c5);}}])&&_0x13c549(_0x274277['prototype'],_0x169eed),_0x42b9f8&&_0x13c549(_0x274277,_0x42b9f8),_0x3c65f5;}();_0x3497f5[_0x3e5420('0x8fd')]=_0x4bbaef;},{'axios':0x62}],0x30:[function(_0xdf9035,_0x15b832,_0x2080c9){var _0x32887d=_0x1c0e;'use strict';Object[_0x32887d('0x751')](_0x2080c9,_0x32887d('0x8bc'),{'value':!0x0}),_0x2080c9[_0x32887d('0x8fd')]=void 0x0;var _0x500914,_0x372cf0=(_0x500914=_0xdf9035(_0x32887d('0x6bc')))&&_0x500914[_0x32887d('0x8bc')]?_0x500914:{'default':_0x500914};function _0x9d1346(_0x500e5c,_0x1fda74){var _0x56167e=_0x32887d;for(var _0x22dbbc=0x0;_0x22dbbc<_0x1fda74[_0x56167e('0x796')];_0x22dbbc++){var _0x5babc2=_0x1fda74[_0x22dbbc];_0x5babc2[_0x56167e('0xdc2')]=_0x5babc2[_0x56167e('0xdc2')]||!0x1,_0x5babc2[_0x56167e('0x48d')]=!0x0,_0x56167e('0x920')in _0x5babc2&&(_0x5babc2[_0x56167e('0x903')]=!0x0),Object['defineProperty'](_0x500e5c,_0x5babc2[_0x56167e('0x3ba')],_0x5babc2);}}var _0x32a03b=function(){var _0x322766=_0x32887d;function _0x23b1fd(){var _0x4c89d2=_0x1c0e;!function(_0x448fc0,_0x4d20e0){if(!(_0x448fc0 instanceof _0x4d20e0))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0x23b1fd),this['deleteParams']={},this['createRemoteTable']=!0x1,this[_0x4c89d2('0x3bf')]='None',this['ga']=[],this[_0x4c89d2('0xb03')]=!0x0,this['showEdit']=!0x0,this[_0x4c89d2('0xb1e')]=!0x0,this[_0x4c89d2('0x14f')]=!0x0,this[_0x4c89d2('0xbf1')]=!0x0,this['showFormOnPopup']=!0x1,this[_0x4c89d2('0x45f')]=!0x1,this[_0x4c89d2('0x19c')]='',this[_0x4c89d2('0xae')]=0x0,this[_0x4c89d2('0x9bc')]={},this[_0x4c89d2('0x196')]={},this[_0x4c89d2('0x519')]=[],this[_0x4c89d2('0x82c')]=!0x1,this['fieldTemplates']=null,this[_0x4c89d2('0x15f')]=null,this['customTemplates']=null,this[_0x4c89d2('0x8b7')]=null,this[_0x4c89d2('0xb9e')]={},this['fieldMasterDataKeys']={},this[_0x4c89d2('0x415')]=null,this['sourceMapping']=null,this[_0x4c89d2('0x3a')]=null,this[_0x4c89d2('0x32c')]=null,this[_0x4c89d2('0x44d')]=null,this[_0x4c89d2('0x2ea')]=null,this[_0x4c89d2('0x6a6')]={},this[_0x4c89d2('0xc7e')]=null,this[_0x4c89d2('0xa98')]=this;}var _0xac976,_0x4d1325,_0x520229;return _0xac976=_0x23b1fd,(_0x4d1325=[{'key':_0x322766('0x8ee'),'value':function(_0x2c580f,_0x2a8dd5,_0x39c6e4,_0x1991d5){}},{'key':'initForm','value':function(){}},{'key':_0x322766('0xc82'),'value':function(_0x59239f){var _0x224163=_0x322766;this[_0x224163('0xdb7')]=_0x59239f;}},{'key':_0x322766('0xa8c'),'value':function(_0x112e98){var _0x2e2645=_0x322766;this[_0x2e2645('0x46d')]=_0x112e98;}},{'key':_0x322766('0x648'),'value':function(_0x19d173){var _0x3dd2bc=_0x322766;this[_0x3dd2bc('0x6a6')]=_0x19d173;}},{'key':_0x322766('0x477'),'value':function(_0x9170c7){var _0x43c7de=_0x322766;this[_0x43c7de('0xae')]=_0x9170c7;}},{'key':_0x322766('0x2ee'),'value':function(_0x156fb9){var _0x24d3e9=_0x322766;return void 0x0===this[_0x24d3e9('0x6a6')][_0x156fb9]||null==this[_0x24d3e9('0x6a6')][_0x156fb9]||_0x24d3e9('0x915')===this[_0x24d3e9('0x6a6')][_0x156fb9]?'Yes':this['permissions'][_0x156fb9];}},{'key':_0x322766('0xc59'),'value':function(_0x468861){var _0x59d148=_0x322766;this[_0x59d148('0xc7e')]=_0x468861;}},{'key':'setUser','value':function(_0x47ec77){this['user']=_0x47ec77;}},{'key':'getUser','value':function(){var _0x5a8643=_0x322766;return this[_0x5a8643('0x44d')];}},{'key':_0x322766('0x697'),'value':function(_0x95b054){this['instanceId']=_0x95b054;}},{'key':_0x322766('0x4de'),'value':function(_0x5afca7){var _0xa5f327=_0x322766;this[_0xa5f327('0x82c')]=_0x5afca7;}},{'key':_0x322766('0x159'),'value':function(){var _0x244340=_0x322766;$(_0x244340('0x540'))['animate']({'scrollTop':0x0},_0x244340('0x2f1'));}},{'key':_0x322766('0xa9b'),'value':function(){var _0x42e140=_0x322766;$(_0x42e140('0x540'))[_0x42e140('0xa0c')]({'scrollTop':$(document)[_0x42e140('0x3e')]()},'slow');}},{'key':'scrollToElement','value':function(_0x33e4a8){var _0xd3d096=_0x322766;$(window)[_0xd3d096('0x3e')]()<=_0x33e4a8[_0xd3d096('0x39b')]()[_0xd3d096('0xbe7')]&&$('html,\x20body')['animate']({'scrollTop':_0x33e4a8[_0xd3d096('0x39b')]()['top']},'slow');}},{'key':_0x322766('0xc45'),'value':function(_0x4b950d){var _0x1b35ea=_0x322766;$(window)[_0x1b35ea('0x3e')]()<=_0x4b950d[_0x1b35ea('0x39b')]()['top']+_0x4b950d[_0x1b35ea('0x3e')]()&&$(_0x1b35ea('0x540'))['animate']({'scrollTop':_0x4b950d['offset']()[_0x1b35ea('0xbe7')]+_0x4b950d[_0x1b35ea('0x3e')]()},_0x1b35ea('0xa20'));}},{'key':_0x322766('0x83d'),'value':function(_0x463a57){var _0x4a5038=_0x322766;this['translations']=_0x463a57[_0x4a5038('0xbb5')][''];}},{'key':'setTranslationsSubModules','value':function(_0x3242e3){var _0x3e0fbc=_0x322766;this[_0x3e0fbc('0x196')]=_0x3242e3;}},{'key':'gt','value':function(_0x2a87a6){var _0x17d52a=_0x322766;return void 0x0===this['translations'][_0x2a87a6]||null===this[_0x17d52a('0x196')][_0x2a87a6]?(console['log']('Tr:'+_0x2a87a6),_0x2a87a6):this[_0x17d52a('0x196')][_0x2a87a6][0x0];}},{'key':_0x322766('0x61e'),'value':function(_0x236de9){var _0x3deff9=_0x322766,_0x32ffa4,_0x5792a4=localStorage[_0x3deff9('0x3ae')](_0x3deff9('0xd04'));if(void 0x0===_0x5792a4)_0x32ffa4={};else try{_0x32ffa4=JSON[_0x3deff9('0x22f')](_0x5792a4);}catch(_0x22eab7){_0x32ffa4={};}void 0x0===this['translations'][_0x236de9]&&(_0x32ffa4[_0x236de9]=_0x236de9,localStorage[_0x3deff9('0xb57')](_0x3deff9('0xd04'),JSON['stringify'](_0x32ffa4)));}},{'key':_0x322766('0x6be'),'value':function(){return!0x0;}},{'key':_0x322766('0x3da'),'value':function(_0x49f882,_0x464bed,_0xb68fb2){var _0xfb9f16=_0x322766;try{void 0x0===_0x464bed||null==_0x464bed?this['ga'][_0xfb9f16('0xb2')]([_0xfb9f16('0x8af'),this[_0xfb9f16('0x3bf')],_0x49f882]):void 0x0===_0xb68fb2||null==_0xb68fb2?this['ga']['push']([_0xfb9f16('0x8af'),this['instanceId'],_0x49f882,_0x464bed]):this['ga']['push']([_0xfb9f16('0x8af'),this['instanceId'],_0x49f882,_0x464bed,_0xb68fb2]);}catch(_0x81dc85){}}},{'key':_0x322766('0xc0d'),'value':function(_0x232517){var _0x2f5d0f=_0x322766;this[_0x2f5d0f('0x2ea')]=_0x232517;}},{'key':_0x322766('0x5e'),'value':function(){return this['currentProfile'];}},{'key':_0x322766('0x44e'),'value':function(_0x467008,_0x1d91dd,_0x3f9444){var _0x3ce177=_0x322766;this[_0x3ce177('0xb9e')]={},this['fieldMasterDataKeys']={},this[_0x3ce177('0x415')]=_0x1d91dd,this[_0x3ce177('0x45b')]=_0x3f9444;for(var _0x2e2e22=this[_0x3ce177('0x517')](),_0x52ebdf=0x0;_0x52ebdf<_0x2e2e22[_0x3ce177('0x796')];_0x52ebdf++){var _0x3a9088=_0x2e2e22[_0x52ebdf];if(void 0x0!==_0x3a9088[0x1][_0x3ce177('0x26d')]&&null!=_0x3a9088[0x1][_0x3ce177('0x26d')]){var _0x36df3b=this[_0x3ce177('0x390')](_0x3a9088);this['fieldMasterDataKeys'][_0x36df3b]=!0x1;var _0x499ff1={'callBack':_0x3ce177('0xa4e')};_0x499ff1[_0x3ce177('0x61a')]=[_0x36df3b],null!=_0x467008&&(_0x499ff1['callBackSuccess']=_0x467008),this[_0x3ce177('0x807')](_0x3a9088[0x1]['remote-source'],_0x499ff1);}}}},{'key':_0x322766('0x7b3'),'value':function(){var _0x3840b4=_0x322766;this[_0x3840b4('0x2aa')]={};for(var _0x18f191=this[_0x3840b4('0x517')](),_0x4f5eca=0x0;_0x4f5eca<_0x18f191[_0x3840b4('0x796')];_0x4f5eca++){var _0xf9be13=_0x18f191[_0x4f5eca];void 0x0!==_0xf9be13[0x1][_0x3840b4('0x26d')]&&null!=_0xf9be13[0x1][_0x3840b4('0x26d')]&&(this['sourceMapping'][_0xf9be13[0x0]]=_0xf9be13[0x1]['remote-source']);}}},{'key':_0x322766('0x390'),'value':function(_0x22bc7e){var _0x5b9a70=_0x322766,_0x1f9bbd=''[_0x5b9a70('0x4c2')](_0x22bc7e[0x1]['remote-source'][0x0],'_')[_0x5b9a70('0x4c2')](_0x22bc7e[0x1]['remote-source'][0x1],'_')[_0x5b9a70('0x4c2')](_0x22bc7e[0x1][_0x5b9a70('0x26d')][0x2]);return _0x22bc7e[0x1]['remote-source']['length']>0x3&&(_0x1f9bbd=''['concat'](_0x1f9bbd,'_')[_0x5b9a70('0x4c2')](_0x22bc7e[0x1][_0x5b9a70('0x26d')][0x3])),_0x1f9bbd;}},{'key':_0x322766('0x517'),'value':function(){var _0xaeb261=_0x322766,_0x428969,_0x53fef1=this[_0xaeb261('0x73d')](),_0x4200f4=this[_0xaeb261('0xba3')]();if(null!=_0x4200f4)for(var _0x157ad7=0x0;_0x157ad7<_0x4200f4[_0xaeb261('0x796')];_0x157ad7++)(null==(_0x428969=this[_0xaeb261('0x6a4')](_0x4200f4[_0x157ad7][0x0],_0x53fef1))||'select'!==_0x428969['type']&&_0xaeb261('0xdc5')!==_0x428969[_0xaeb261('0x18b')]&&_0xaeb261('0x4cc')!==_0x428969['type'])&&_0x53fef1[_0xaeb261('0xb2')](_0x4200f4[_0x157ad7]);for(var _0x1d1128=[],_0x3c01ff=[],_0x1c1e74=null,_0x3b7ce6=null,_0x3df9d8=0x0;_0x3df9d8<_0x53fef1[_0xaeb261('0x796')];_0x3df9d8++)if(void 0x0!==(_0x1c1e74=_0x53fef1[_0x3df9d8])[0x1][_0xaeb261('0x26d')]&&null!==_0x1c1e74[0x1][_0xaeb261('0x26d')]){var _0x34b597=this[_0xaeb261('0x390')](_0x1c1e74);_0x3c01ff[_0xaeb261('0xcd8')](_0x34b597)<0x0&&(_0x1d1128[_0xaeb261('0xb2')](_0x1c1e74),_0x3c01ff[_0xaeb261('0xb2')](_0x34b597));}else{if(void 0x0!==_0x1c1e74[0x1][_0xaeb261('0x2e')]&&null!==_0x1c1e74[0x1][_0xaeb261('0x2e')])for(var _0x508512=0x0;_0x508512<_0x1c1e74[0x1][_0xaeb261('0x2e')][_0xaeb261('0x796')];_0x508512++)if(void 0x0!==(_0x3b7ce6=_0x1c1e74[0x1]['form'][_0x508512])[0x1][_0xaeb261('0x26d')]&&null!==_0x3b7ce6[0x1][_0xaeb261('0x26d')]){var _0xc66406=this['getRemoteSourceKey'](_0x3b7ce6);_0x3c01ff[_0xaeb261('0xcd8')](_0xc66406)<0x0&&(_0x1d1128[_0xaeb261('0xb2')](_0x3b7ce6),_0x3c01ff[_0xaeb261('0xb2')](_0xc66406));}}return _0x1d1128;}},{'key':_0x322766('0x252'),'value':function(_0x43f7f2){this['showFormOnPopup']=_0x43f7f2;}},{'key':_0x322766('0x465'),'value':function(_0x190f23){this['createRemoteTable']=_0x190f23;}},{'key':'setSettings','value':function(_0x508bfd){var _0x474164=_0x322766;this[_0x474164('0x9bc')]=_0x508bfd;}},{'key':_0x322766('0xac'),'value':function(){var _0x2c8f67=_0x322766;return this[_0x2c8f67('0x306')];}},{'key':'isAllLoaded','value':function(_0x195bb7){for(var _0xc163d5 in _0x195bb7)if(!0x1===_0x195bb7[_0xc163d5])return!0x1;return!0x0;}},{'key':'initFieldMasterDataResponse','value':function(_0x42667e,_0x4fe4c6,_0x4e2014,_0x1eb71e){var _0x32b8d8=_0x322766;this[_0x32b8d8('0xb9e')][_0x42667e]=_0x4fe4c6,this[_0x32b8d8('0x95c')][_0x42667e]=!0x0,null!=_0x4e2014&&_0x4e2014(),null!==this['fieldMasterDataCallback']&&void 0x0!==this[_0x32b8d8('0x415')]&&this[_0x32b8d8('0x31b')](this['fieldMasterDataKeys'])&&null!==this[_0x32b8d8('0x45b')]&&void 0x0!==this[_0x32b8d8('0x45b')]?this[_0x32b8d8('0x415')](this['fieldMasterDataCallbackData']):null!==this[_0x32b8d8('0x415')]&&void 0x0!==this[_0x32b8d8('0x415')]&&this[_0x32b8d8('0x31b')](this[_0x32b8d8('0x95c')])&&this[_0x32b8d8('0x415')]();}},{'key':_0x322766('0x6a4'),'value':function(_0x3c31a3,_0x2eac0e){var _0x27c164=_0x322766;for(var _0x227c97=0x0;_0x227c97<_0x2eac0e[_0x27c164('0x796')];_0x227c97++)if(_0x3c31a3===_0x2eac0e[_0x227c97][0x0])return _0x2eac0e[_0x227c97][0x1];return null;}},{'key':_0x322766('0x496'),'value':function(){var _0x40af03=_0x322766;return[_0x40af03('0x94b'),'yellow','aqua','blue',_0x40af03('0x64d'),'green',_0x40af03('0xa38'),_0x40af03('0x9f2'),_0x40af03('0x54c'),'orange',_0x40af03('0x703'),_0x40af03('0x4ac')];}},{'key':_0x322766('0x1e9'),'value':function(_0x4deb41){var _0x57ed16=_0x322766,_0x4b170a=this['getThemeColors']();return _0x4b170a[_0x4deb41[_0x57ed16('0x149')](0x0)%_0x4b170a[_0x57ed16('0x796')]];}},{'key':'getColorByFileType','value':function(_0x5edb38){var _0x1d5d80=_0x322766;_0x5edb38=_0x5edb38[_0x1d5d80('0x2f5')]();var _0x107ab3={'pdf':'red','csv':_0x1d5d80('0x18a'),'xls':_0x1d5d80('0xd58'),'xlsx':_0x1d5d80('0xd58'),'doc':_0x1d5d80('0x64d'),'docx':'light-blue'};return _0x107ab3[_0x1d5d80('0x244')]='blue',_0x107ab3[_0x1d5d80('0xa49')]=_0x1d5d80('0x17e'),_0x107ab3[_0x1d5d80('0x8eb')]=_0x1d5d80('0x17e'),_0x107ab3['jpg']=_0x1d5d80('0x9f2'),_0x107ab3[_0x1d5d80('0x5b9')]=_0x1d5d80('0x9f2'),_0x107ab3[_0x1d5d80('0xa68')]=_0x1d5d80('0xd58'),_0x107ab3[_0x1d5d80('0x590')]=_0x1d5d80('0x18a'),_0x107ab3[_0x1d5d80('0xde')]=_0x1d5d80('0x703'),void 0x0!==_0x107ab3[_0x5edb38]||null!=_0x107ab3[_0x5edb38]?_0x107ab3[_0x5edb38]:this[_0x1d5d80('0x1e9')](_0x5edb38);}},{'key':_0x322766('0x6bd'),'value':function(_0x539a14){var _0x534910=_0x322766,_0x2938cf={'pdf':_0x534910('0x9a6'),'csv':_0x534910('0x522'),'xls':_0x534910('0x9f7'),'xlsx':_0x534910('0x9f7'),'doc':_0x534910('0xa9f'),'docx':_0x534910('0xa9f'),'ppt':_0x534910('0xc3c'),'pptx':'fa\x20fa-file-powerpoint-o','jpg':_0x534910('0x403'),'jpeg':_0x534910('0x403'),'gif':_0x534910('0x403'),'png':_0x534910('0x403'),'bmp':'fa\x20fa-file-image-o','txt':_0x534910('0x181'),'rtf':_0x534910('0x181')};return void 0x0!==_0x2938cf[_0x539a14=_0x539a14[_0x534910('0x2f5')]()]||null!=_0x2938cf[_0x539a14]?_0x2938cf[_0x539a14]:_0x534910('0x636');}},{'key':_0x322766('0x766'),'value':function(){var _0xa3729e=_0x322766;return this[_0xa3729e('0x2aa')];}},{'key':_0x322766('0xcc8'),'value':function(_0xc4b373){this['testing']=_0xc4b373;}},{'key':_0x322766('0xc44'),'value':function(_0x1759e2){var _0xdd092f=_0x322766;this[_0xdd092f('0xd6d')]&&console['log'](_0x1759e2);}},{'key':_0x322766('0x8f3'),'value':function(_0x13ece5){var _0xef06a5=_0x322766;this[_0xef06a5('0x716')]=_0x13ece5;}},{'key':'setTemplates','value':function(_0x524352){this['templates']=_0x524352;}},{'key':'getWSProperty','value':function(_0x5b4172,_0x3b0a01){var _0x38989a=_0x322766;return _0x5b4172[_0x38989a('0x1a8')](_0x3b0a01)?_0x5b4172[_0x3b0a01]:null;}},{'key':_0x322766('0x2b7'),'value':function(_0xb05e9e){var _0x3c6611=_0x322766;return this[_0x3c6611('0xcb1')](this[_0x3c6611('0x716')],_0xb05e9e);}},{'key':_0x322766('0x4b1'),'value':function(_0x1af68b){var _0x140001=_0x322766;return this[_0x140001('0xcb1')](this[_0x140001('0x15f')],_0x1af68b);}},{'key':_0x322766('0xbef'),'value':function(_0x5c8426){this['gaq']=_0x5c8426;}},{'key':_0x322766('0x421'),'value':function(_0x36bc33){var _0x4a405e=_0x322766;null!=this[_0x4a405e('0x56d')]&&(this[_0x4a405e('0xdd1')]=this['currentView'],$('#'[_0x4a405e('0x4c2')](this[_0x4a405e('0x56d')]))['hide']()),$('#'[_0x4a405e('0x4c2')](_0x36bc33))['show'](),this['currentView']=_0x36bc33,this[_0x4a405e('0x121')]();}},{'key':_0x322766('0xc2f'),'value':function(){var _0x142a9c=_0x322766;this['showView'](this[_0x142a9c('0xdd1')]);}},{'key':_0x322766('0x121'),'value':function(){}},{'key':_0x322766('0x144'),'value':function(_0x1c01c4,_0x56c3cf,_0x4ece3a){var _0x33b53d=_0x322766;if($[_0x33b53d('0x27c')](_0x1c01c4))try{null==_0x4ece3a?_0x1c01c4['apply'](document,_0x56c3cf):_0x1c01c4[_0x33b53d('0x365')](_0x4ece3a,_0x56c3cf);}catch(_0x76e2cf){console[_0x33b53d('0x7f1')](_0x76e2cf[_0x33b53d('0xb0a')]);}else{var _0x50857e=this[_0x1c01c4];if($['isFunction'](_0x50857e))try{_0x50857e[_0x33b53d('0x365')](this,_0x56c3cf);}catch(_0x52e1c5){console['log'](_0x52e1c5[_0x33b53d('0xb0a')]);}}}},{'key':_0x322766('0x513'),'value':function(){var _0x27ee1d=_0x322766,_0x479e2d='';return this[_0x27ee1d('0x72c')]()&&(_0x479e2d=_0x27ee1d('0x556')[_0x27ee1d('0x4c2')](this['gt'](this['getAddNewLabel']()),_0x27ee1d('0x8cb'))),null!=this['getFilters']()&&(''!==_0x479e2d&&(_0x479e2d+='  '),_0x479e2d+=''['concat'](this['gt'](_0x27ee1d('0x799')),'\x20'),_0x479e2d+='  ',this[_0x27ee1d('0x45f')]?_0x479e2d+=_0x27ee1d('0x1ed'):_0x479e2d+=_0x27ee1d('0xb43')),_0x479e2d=_0x479e2d['replace'](/__id__/g,this['getTableName']()),''!==(_0x479e2d=''!==this[_0x27ee1d('0x19c')]&&null!=this[_0x27ee1d('0x19c')]?_0x479e2d[_0x27ee1d('0x8f9')](/__filterString__/g,this[_0x27ee1d('0x19c')]):_0x479e2d['replace'](/__filterString__/g,'Reset\x20Filters'))&&(_0x479e2d=_0x27ee1d('0x701')[_0x27ee1d('0x4c2')](_0x479e2d,'')),_0x479e2d;}},{'key':'getActionButtonHeader','value':function(){return{'sTitle':'','sClass':'center'};}},{'key':_0x322766('0x2a2'),'value':function(){var _0x4d1e52=_0x322766;return _0x4d1e52('0xcd3');}},{'key':_0x322766('0x771'),'value':function(){return!0x0;}},{'key':_0x322766('0x595'),'value':function(_0x999627){var _0x510f2f=_0x322766;if(this[_0x510f2f('0xac')]())this[_0x510f2f('0x86b')](_0x999627);else{var _0x116c8a=this['getHeaders']();for(var _0x5b437f in _0x116c8a)_0x116c8a[_0x5b437f][_0x510f2f('0x34c')]=this['gt'](_0x116c8a[_0x5b437f][_0x510f2f('0x34c')]);var _0xcff4aa,_0x3cb37c=this[_0x510f2f('0x37d')]();if(this[_0x510f2f('0x6be')]()&&_0x116c8a['push'](this[_0x510f2f('0xc90')]()),this[_0x510f2f('0x6be')]())for(var _0x54bae7=0x0;_0x54bae7<_0x3cb37c[_0x510f2f('0x796')];_0x54bae7++)_0x3cb37c[_0x54bae7][_0x510f2f('0xb2')](this[_0x510f2f('0x388')](_0x3cb37c[_0x54bae7][0x0],_0x3cb37c[_0x54bae7]));_0xcff4aa=this['getTableTopButtonHtml']()+this[_0x510f2f('0x2a2')]();var _0x36f84f=$('#'[_0x510f2f('0x4c2')](_0x999627,'\x20.dataTables_paginate\x20.active\x20a'))[_0x510f2f('0xd34')](),_0x5d9778=0x0;void 0x0!==_0x36f84f&&null!=_0x36f84f&&(_0x5d9778=0xf*parseInt(_0x36f84f,0xa)-0xf),$('#'[_0x510f2f('0x4c2')](_0x999627))[_0x510f2f('0xd34')](_0xcff4aa);var _0x427269={'oLanguage':{'sLengthMenu':'_MENU_\x20records\x20per\x20page'},'aaData':_0x3cb37c,'aoColumns':_0x116c8a,'bSort':this[_0x510f2f('0x771')](),'iDisplayLength':0xf,'iDisplayStart':_0x5d9778},_0x3ddf91=this[_0x510f2f('0xcad')]();$[_0x510f2f('0x82')](_0x427269,_0x3ddf91),$('#'[_0x510f2f('0x4c2')](_0x999627,_0x510f2f('0x4e')))['dataTable'](_0x427269),$(_0x510f2f('0x84'))['addClass'](_0x510f2f('0x9dc')),$(_0x510f2f('0x721'))[_0x510f2f('0xafe')](),$('.dataTables_filter\x20input')[_0x510f2f('0x946')](_0x510f2f('0xbdc')),$(_0x510f2f('0x22b'))['attr'](_0x510f2f('0x6d0'),_0x510f2f('0x8da')),$(_0x510f2f('0xd02'))['contents']()[_0x510f2f('0x774')](function(){var _0x5e0c7a=_0x510f2f;return 0x3===this[_0x5e0c7a('0x4f4')];})[_0x510f2f('0x52')](),$(_0x510f2f('0xba6'))[_0x510f2f('0x4ed')]();}}},{'key':_0x322766('0x86b'),'value':function(_0x3d6049){var _0x39e5a6=_0x322766,_0x4c0d7f,_0x368473=this[_0x39e5a6('0x445')]();for(var _0x231ef8 in(_0x368473[_0x39e5a6('0xb2')]({'sTitle':'','sClass':_0x39e5a6('0x238')}),_0x368473))_0x368473[_0x231ef8][_0x39e5a6('0x34c')]=this['gt'](_0x368473[_0x231ef8][_0x39e5a6('0x34c')]);_0x4c0d7f=this[_0x39e5a6('0x513')]()+this[_0x39e5a6('0x2a2')]();var _0x203399=$('#'[_0x39e5a6('0x4c2')](_0x3d6049,_0x39e5a6('0xcfe')))[_0x39e5a6('0xd34')](),_0x2ab96a=0x0;void 0x0!==_0x203399&&null!=_0x203399&&(_0x2ab96a=0xf*parseInt(_0x203399,0xa)-0xf),$('#'[_0x39e5a6('0x4c2')](_0x3d6049))[_0x39e5a6('0xd34')](_0x4c0d7f);var _0x18b924={'oLanguage':{'sLengthMenu':_0x39e5a6('0xfc')},'bProcessing':!0x0,'bServerSide':!0x0,'sAjaxSource':this[_0x39e5a6('0x59b')](this['getDataMapping']()),'aoColumns':_0x368473,'bSort':this[_0x39e5a6('0x771')](),'parent':this,'iDisplayLength':0xf,'iDisplayStart':_0x2ab96a};this[_0x39e5a6('0x6be')]()&&(_0x18b924[_0x39e5a6('0x82d')]=[{'fnRender':this[_0x39e5a6('0x70e')],'aTargets':[this[_0x39e5a6('0x433')]()[_0x39e5a6('0x796')]]}]);var _0x1c3f2e=this['getCustomTableParams']();$['extend'](_0x18b924,_0x1c3f2e),$('#'['concat'](_0x3d6049,_0x39e5a6('0x4e')))['dataTable'](_0x18b924),$(_0x39e5a6('0x84'))[_0x39e5a6('0x946')](_0x39e5a6('0x9dc')),$(_0x39e5a6('0x721'))[_0x39e5a6('0xafe')](),$(_0x39e5a6('0x22b'))[_0x39e5a6('0x946')](_0x39e5a6('0xbdc')),$(_0x39e5a6('0x22b'))[_0x39e5a6('0x7c9')]('placeholder',_0x39e5a6('0x8da')),$('.dataTables_filter\x20label')[_0x39e5a6('0xc89')]()['filter'](function(){var _0x29574f=_0x39e5a6;return 0x3===this[_0x29574f('0x4f4')];})[_0x39e5a6('0x52')](),$(_0x39e5a6('0xba6'))['tooltip']();}},{'key':'getHeaders','value':function(){}},{'key':_0x322766('0x433'),'value':function(){}},{'key':_0x322766('0x73d'),'value':function(){}},{'key':'getTableColumns','value':function(){return[];}},{'key':_0x322766('0x37d'),'value':function(){}},{'key':_0x322766('0xba3'),'value':function(){return null;}},{'key':_0x322766('0xaf0'),'value':function(_0x1aa020){var _0x1a6518=_0x322766;this[_0x1a6518('0x3a')]=_0x1aa020,this[_0x1a6518('0xd2e')](_0x1aa020,[]);}},{'key':_0x322766('0x7f2'),'value':function(_0x57dcef){this['getElement'](_0x57dcef,[],!0x0);}},{'key':'renderModel','value':function(_0x4a7855,_0x4dd821,_0x14efc5){var _0x4d7f91=_0x322766;$('#'[_0x4d7f91('0x4c2')](_0x4a7855,_0x4d7f91('0xb9f')))[_0x4d7f91('0xd34')](''),void 0x0!==_0x14efc5&&null!=_0x14efc5||(_0x14efc5=''),$('#'[_0x4d7f91('0x4c2')](_0x4a7855,_0x4d7f91('0x67b')))['html'](_0x4dd821),$('#'[_0x4d7f91('0x4c2')](_0x4a7855,_0x4d7f91('0xb9f')))['html'](_0x14efc5);}},{'key':_0x322766('0x3e9'),'value':function(_0x12b443,_0x1bad18,_0x57f2f7,_0x2caa3d,_0x517bf0,_0x2ede04){var _0x33ff2b=_0x322766,_0x4b6aa5=this,_0xaf01ef=_0x33ff2b('0x205');void 0x0!==_0x1bad18&&null!=_0x1bad18||(_0x1bad18=''),$(''[_0x33ff2b('0x4c2')](_0xaf01ef,_0x33ff2b('0x412')))[_0x33ff2b('0xd34')](_0x12b443),$(''[_0x33ff2b('0x4c2')](_0xaf01ef,_0x33ff2b('0x51d')))[_0x33ff2b('0xd34')](_0x1bad18),null!=_0x57f2f7&&$(''[_0x33ff2b('0x4c2')](_0xaf01ef,_0x33ff2b('0xc79')))[_0x33ff2b('0xd34')](_0x57f2f7),null!=_0x2caa3d&&$(''[_0x33ff2b('0x4c2')](_0xaf01ef,_0x33ff2b('0x7a9')))[_0x33ff2b('0xd34')](_0x2caa3d),$(''[_0x33ff2b('0x4c2')](_0xaf01ef,_0x33ff2b('0xc79')))['off']()['on'](_0x33ff2b('0x76'),function(){var _0x447724=_0x33ff2b;void 0x0!==_0x517bf0&&null!=_0x517bf0&&(_0x517bf0[_0x447724('0x365')](_0x4b6aa5,_0x2ede04),_0x4b6aa5[_0x447724('0x800')]());}),$(_0xaf01ef)['modal']({'backdrop':_0x33ff2b('0x95b')});}},{'key':_0x322766('0x757'),'value':function(_0x6dbeca,_0x5373d0,_0x44da9e){var _0x4984ed=_0x322766;$('#'[_0x4984ed('0x4c2')](_0x6dbeca,'ModelBody'))[_0x4984ed('0xd34')](''),void 0x0!==_0x44da9e&&null!=_0x44da9e||(_0x44da9e=$(_0x4984ed('0x633'))),$('#'[_0x4984ed('0x4c2')](_0x6dbeca,'ModelLabel'))[_0x4984ed('0xd34')](_0x5373d0),$('#'[_0x4984ed('0x4c2')](_0x6dbeca,_0x4984ed('0xb9f')))['html'](''),$('#'[_0x4984ed('0x4c2')](_0x6dbeca,_0x4984ed('0xb9f')))['append'](_0x44da9e);}},{'key':_0x322766('0x222'),'value':function(_0x1b4918){var _0x49c373=_0x322766;this[_0x49c373('0x747')]['id']=_0x1b4918,this['renderModel'](_0x49c373('0xcf1'),_0x49c373('0x629'),_0x49c373('0xc46')),$(_0x49c373('0x93b'))[_0x49c373('0x7ae')](_0x49c373('0x462'));}},{'key':'showMessage','value':function(_0x1deeb9,_0x51288a){var _0x3c57c5=_0x322766,_0x5ce6d2=arguments['length']>0x2&&void 0x0!==arguments[0x2]?arguments[0x2]:null,_0x33772d=arguments[_0x3c57c5('0x796')]>0x3&&void 0x0!==arguments[0x3]?arguments[0x3]:null,_0x1ddb2f=arguments[_0x3c57c5('0x796')]>0x4&&void 0x0!==arguments[0x4]&&arguments[0x4],_0x2c63c9=this,_0x389814='';_0x389814=_0x1ddb2f?'#plainMessageModel':_0x3c57c5('0xc4d'),$(_0x389814)[_0x3c57c5('0x123')](),_0x1ddb2f?this[_0x3c57c5('0x2fd')](_0x3c57c5('0x4cb'),_0x1deeb9,_0x51288a):this[_0x3c57c5('0x2fd')](_0x3c57c5('0xb0a'),_0x1deeb9,_0x51288a),null!=_0x5ce6d2?($(_0x389814)[_0x3c57c5('0x7ae')]({'show':!0x0}),$(_0x389814)['on'](_0x3c57c5('0xa58'),function(){var _0x10250d=_0x3c57c5;_0x5ce6d2[_0x10250d('0x365')](_0x2c63c9,_0x33772d),$('.modal-backdrop')[_0x10250d('0x52')]();})):$(_0x389814)[_0x3c57c5('0x7ae')]({'backdrop':'static'});}},{'key':_0x322766('0x427'),'value':function(_0x21f3fa,_0x3b5f10,_0x32ccb9,_0x1462f4,_0x4b1091){var _0x3f62d2=_0x322766,_0x709dad=this,_0x5664fb='';_0x5664fb=_0x4b1091?_0x3f62d2('0x2e4'):'#messageModel',$(_0x5664fb)[_0x3f62d2('0x10f')]('hide'),_0x4b1091?this[_0x3f62d2('0x757')]('dataMessage',_0x21f3fa,_0x3b5f10):this[_0x3f62d2('0x757')]('message',_0x21f3fa,_0x3b5f10),null!=_0x32ccb9?($(_0x5664fb)[_0x3f62d2('0x7ae')]({'show':!0x0}),$(_0x5664fb)['on'](_0x3f62d2('0xa58'),function(){var _0x29e6b9=_0x3f62d2;_0x32ccb9['apply'](_0x709dad,_0x1462f4),$('.modal-backdrop')[_0x29e6b9('0x52')]();})):$(_0x5664fb)[_0x3f62d2('0x7ae')]({'backdrop':_0x3f62d2('0x95b')});}},{'key':_0x322766('0x749'),'value':function(){var _0x3f52f3=_0x322766;void 0x0===this[_0x3f52f3('0x747')]['id']&&null==this[_0x3f52f3('0x747')]['id']||this['deleteObj'](this[_0x3f52f3('0x747')]['id'],[]),$(_0x3f52f3('0x93b'))['modal'](_0x3f52f3('0xafe'));}},{'key':_0x322766('0xa51'),'value':function(){var _0x1ad5e7=_0x322766;$(_0x1ad5e7('0x93b'))[_0x1ad5e7('0x7ae')](_0x1ad5e7('0xafe')),this['deleteParams']['id']=null;}},{'key':_0x322766('0xbbd'),'value':function(){var _0x54d0c3=_0x322766;$(_0x54d0c3('0xc4d'))[_0x54d0c3('0x7ae')](_0x54d0c3('0xafe'));}},{'key':_0x322766('0x800'),'value':function(){var _0x2352b6=_0x322766;$(_0x2352b6('0x205'))[_0x2352b6('0x7ae')](_0x2352b6('0xafe'));}},{'key':_0x322766('0x179'),'value':function(){var _0x2f52fa=_0x322766;$(_0x2f52fa('0xbb8'))[_0x2f52fa('0x7ae')](_0x2f52fa('0xafe')),$(_0x2f52fa('0x2e4'))['modal'](_0x2f52fa('0xafe'));}},{'key':_0x322766('0x33'),'value':function(){$('#dataMessageModel')['modal']('hide');}},{'key':'save','value':function(_0x5a8166,_0x3e04e2){var _0x176fd4=_0x322766,_0x1f72d0=new _0x372cf0[(_0x176fd4('0x8fd'))](''['concat'](this[_0x176fd4('0x316')](),_0x176fd4('0x708')),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':_0x176fd4('0xab4')});if(_0x1f72d0[_0x176fd4('0x472')]()){var _0x583f66=_0x1f72d0[_0x176fd4('0x4d3')]();_0x583f66=this[_0x176fd4('0x52f')](_0x583f66);var _0x18c01a=this[_0x176fd4('0xd0f')](_0x583f66);if(null==_0x18c01a){this[_0x176fd4('0x82c')]&&(_0x583f66[_0x176fd4('0xcda')]=$('#'[_0x176fd4('0x4c2')](this[_0x176fd4('0x316')](),_0x176fd4('0x805')))[_0x176fd4('0x38')](_0x176fd4('0xcda')));var _0x136819=$('#'[_0x176fd4('0x4c2')](this['getTableName'](),_0x176fd4('0x180')))['val']();null!=_0x136819&&void 0x0!==_0x136819&&''!==_0x136819&&(_0x583f66['id']=_0x136819),_0x583f66=this['makeEmptyDateFieldsNull'](_0x583f66),this['add'](_0x583f66,[],_0x5a8166,_0x3e04e2);}else $('#'[_0x176fd4('0x4c2')](this[_0x176fd4('0x316')](),'Form\x20.label'))[_0x176fd4('0xd34')](_0x18c01a),$('#'['concat'](this['getTableName'](),'Form\x20.label'))['show'](),this[_0x176fd4('0x159')]();}}},{'key':'makeEmptyDateFieldsNull','value':function(_0xe565e7){var _0x1be14a=_0x322766;return this[_0x1be14a('0x73d')]()['forEach'](function(_0x543bbe){var _0x1d13ca=_0x1be14a;_0x1d13ca('0x9d2')!==_0x543bbe[0x1][_0x1d13ca('0x18b')]&&_0x1d13ca('0x48b')!==_0x543bbe[0x1][_0x1d13ca('0x18b')]||''!==_0xe565e7[_0x543bbe[0x0]]&&_0x1d13ca('0x90c')!==_0xe565e7[_0x543bbe[0x0]]&&_0x1d13ca('0x111')!==_0xe565e7[_0x543bbe[0x0]]||(_0x1d13ca('0x649')===_0x543bbe[0x1][_0x1d13ca('0x573')]?_0xe565e7[_0x543bbe[0x0]]=_0x1d13ca('0x1bc'):delete _0xe565e7[_0x543bbe[0x0]]);}),_0xe565e7;}},{'key':'validatePassword','value':function(_0x34d79d){var _0x2f58ea=_0x322766;return _0x34d79d[_0x2f58ea('0x796')]<0x8?this['gt'](_0x2f58ea('0xb38')):_0x34d79d[_0x2f58ea('0x796')]>0x1e?this['gt'](_0x2f58ea('0x10d')):_0x34d79d['match'](/.*[0-9]+.*$/)?_0x34d79d['match'](/.*[a-z]+.*$/)?_0x34d79d[_0x2f58ea('0x523')](/.*[A-Z]+.*$/)?_0x34d79d[_0x2f58ea('0x523')](/.*[\W]+.*$/)?null:this['gt'](_0x2f58ea('0x9e1')):this['gt'](_0x2f58ea('0xdda')):this['gt'](_0x2f58ea('0x949')):this['gt'](_0x2f58ea('0x376'));}},{'key':_0x322766('0x52f'),'value':function(_0x34b3c5){return _0x34b3c5;}},{'key':'doCustomValidation','value':function(_0x402433){return null;}},{'key':_0x322766('0x497'),'value':function(){var _0x2a0f80=_0x322766,_0x9f9bcd=new _0x372cf0[(_0x2a0f80('0x8fd'))](''[_0x2a0f80('0x4c2')](this[_0x2a0f80('0x316')](),_0x2a0f80('0x85d')),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':_0x2a0f80('0xab4')});if(_0x9f9bcd['checkValues']()){var _0x2047fd=_0x9f9bcd[_0x2a0f80('0x4d3')]();if(this[_0x2a0f80('0xc1f')](_0x2047fd)){for(var _0x3736bd in _0x2047fd)_0x2047fd[_0x2a0f80('0x1a8')](_0x3736bd)&&_0x2a0f80('0x1bc')===_0x2047fd[_0x3736bd]&&delete _0x2047fd[_0x3736bd];this[_0x2a0f80('0xc68')](_0x2047fd),this[_0x2a0f80('0x45f')]=!0x0,$('#'[_0x2a0f80('0x4c2')](this['getTableName'](),_0x2a0f80('0x6ba')))['show'](),this[_0x2a0f80('0x19c')]=this[_0x2a0f80('0x9c6')](_0x2047fd),this[_0x2a0f80('0xda6')]([]),this[_0x2a0f80('0x179')]();}}}},{'key':_0x322766('0x9c6'),'value':function(_0x87c400){var _0x2b5fe8=_0x322766,_0xfae600,_0x412658,_0x1393fb,_0x5da5d,_0x370654,_0x1ecef2,_0x2f6e86='',_0x7fe7be=this['getFilters']();for(var _0x4dc241 in(null==_0x1393fb&&(_0x1393fb=[]),_0x87c400))if(_0x87c400[_0x2b5fe8('0x1a8')](_0x4dc241)){if(!(_0x1393fb=this[_0x2b5fe8('0x6a4')](_0x4dc241,_0x7fe7be)))continue;if(_0x370654='',_0x1ecef2=null,_0x2b5fe8('0x510')===_0x1393fb['type']||'select2'===_0x1393fb[_0x2b5fe8('0x18b')]){if(void 0x0!==_0x1393fb[_0x2b5fe8('0x26d')]&&null!=_0x1393fb[_0x2b5fe8('0x26d')]){if(_0xfae600=_0x1393fb[_0x2b5fe8('0x26d')],'NULL'===_0x87c400[_0x4dc241])_0x370654=void 0x0!==_0x1393fb['null-label']&&null!=_0x1393fb[_0x2b5fe8('0x73f')]?_0x1393fb[_0x2b5fe8('0x73f')]:_0x2b5fe8('0xce1');else{var _0x1abb1d=''[_0x2b5fe8('0x4c2')](_0xfae600[0x0],'_')[_0x2b5fe8('0x4c2')](_0xfae600[0x1],'_')['concat'](_0xfae600[0x2]);_0xfae600['length']>0x3&&(_0x1abb1d=''['concat'](_0x1abb1d,'_')[_0x2b5fe8('0x4c2')](_0xfae600[0x3])),_0x1ecef2=_0x370654=this[_0x2b5fe8('0xb9e')][_0x1abb1d][_0x87c400[_0x4dc241]];}}else{if(_0x412658=_0x1393fb[_0x2b5fe8('0x22c')][0x0],_0x2b5fe8('0x1bc')===_0x87c400[_0x4dc241])_0x370654=void 0x0!==_0x1393fb[_0x2b5fe8('0x73f')]&&null!=_0x1393fb['null-label']?_0x1393fb[_0x2b5fe8('0x73f')]:_0x2b5fe8('0xce1');else for(var _0x30ccf2=0x0;_0x30ccf2<_0x412658[_0x2b5fe8('0x796')];_0x30ccf2++)if(_0x87c400[_0x4dc241]===_0x1393fb[_0x2b5fe8('0x22c')][_0x30ccf2][0x0]){_0x1ecef2=_0x370654=_0x1393fb[_0x2b5fe8('0x22c')][_0x30ccf2][0x1];break;}}}else{if('select2multi'===_0x1393fb['type']){_0x5da5d=[];try{_0x5da5d=JSON[_0x2b5fe8('0x22f')](_0x87c400[_0x4dc241]);}catch(_0x4f755b){}''!==(_0x370654=_0x5da5d[_0x2b5fe8('0xc1')](','))&&(_0x1ecef2=_0x370654);}else''!==(_0x370654=_0x87c400[_0x4dc241])&&(_0x1ecef2=_0x370654);}null!=_0x1ecef2&&(''!==_0x2f6e86&&(_0x2f6e86+=_0x2b5fe8('0x16')),_0x2f6e86+=''['concat'](_0x1393fb['label'],_0x2b5fe8('0x6bf'))[_0x2b5fe8('0x4c2')](_0x370654));}return _0x2f6e86;}},{'key':_0x322766('0xc1f'),'value':function(_0x3c78b7){return!0x0;}},{'key':_0x322766('0x9ed'),'value':function(){var _0x276173=_0x322766;this['filter']=this[_0x276173('0xc5a')],this[_0x276173('0x45f')]=!0x1,$('#'[_0x276173('0x4c2')](this['getTableName'](),_0x276173('0x6ba')))['hide'](),this[_0x276173('0x19c')]='',this[_0x276173('0xda6')]([]);}},{'key':_0x322766('0xe3'),'value':function(_0x3bdee9){var _0x44e574=_0x322766;for(var _0x33ab77=this[_0x44e574('0x15f')][_0x44e574('0xcde')],_0x986bbd='',_0x5717c1=this[_0x44e574('0xba3')](),_0x102219=0x0;_0x102219<_0x5717c1[_0x44e574('0x796')];_0x102219++){var _0x21764a=this[_0x44e574('0x87e')](_0x5717c1[_0x102219][0x0]);if(''===_0x21764a||void 0x0===_0x21764a)_0x986bbd+=this[_0x44e574('0x1c6')](_0x5717c1[_0x102219]);else{var _0x1d95dc=_0x3bdee9[_0x21764a];''!==_0x1d95dc&&null!=_0x1d95dc&&void 0x0!==_0x1d95dc&&''!==_0x1d95dc[_0x44e574('0x959')]()?_0x986bbd+=this['renderFormField'](JSON[_0x44e574('0x22f')](_0x1d95dc)):_0x986bbd+=this[_0x44e574('0x1c6')](_0x5717c1[_0x102219]);}}_0x33ab77=(_0x33ab77=_0x33ab77[_0x44e574('0x8f9')](/_id_/g,''[_0x44e574('0x4c2')](this[_0x44e574('0x316')](),_0x44e574('0x85d'))))[_0x44e574('0x8f9')](/_fields_/g,_0x986bbd);var _0x47fc05=this[_0x44e574('0x1e3')](0xe),_0x50dff6=$('');_0x50dff6[_0x44e574('0x7c9')]('id',_0x47fc05),_0x50dff6['html'](_0x33ab77),_0x50dff6['find']('.datefield')[_0x44e574('0x3e3')]({'viewMode':0x2}),_0x50dff6[_0x44e574('0x11c')](_0x44e574('0x170'))[_0x44e574('0x7cf')]({'language':'en','pickDate':!0x1}),_0x50dff6['find'](_0x44e574('0x33f'))[_0x44e574('0x7cf')]({'language':'en'}),_0x50dff6['find']('.colorpick')[_0x44e574('0x354')](),tinymce[_0x44e574('0x8ee')]({'selector':'#'[_0x44e574('0x4c2')](_0x50dff6['attr']('id'),'\x20.tinymce'),'height':_0x44e574('0xc94')}),_0x50dff6[_0x44e574('0x11c')](_0x44e574('0x921'))[_0x44e574('0xc63')](function(){var _0x5b1e8e=_0x44e574,_0x292706=new SimpleMDE({'element':$(this)[0x0]});$(this)[_0x5b1e8e('0x38')](_0x5b1e8e('0x32'),_0x292706);}),_0x50dff6[_0x44e574('0x11c')]('.select2Field')['each'](function(){var _0x5b10bc=_0x44e574;$(this)['select2']()['select2']('val',$(this)['find'](_0x5b10bc('0x89e'))['val']());}),_0x50dff6[_0x44e574('0x11c')](_0x44e574('0xbd'))['each'](function(){$(this)['select2']()['on']('change',function(_0x2df712){var _0x2e4bbf=_0x1c0e,_0x27cf67=$(this)[_0x2e4bbf('0xd2a')](_0x2e4bbf('0x976')),_0x47ea1b=_0x27cf67['find'](_0x2e4bbf('0xafc'))[_0x2e4bbf('0x3e')]();_0x27cf67[_0x2e4bbf('0x3e')](parseInt(_0x47ea1b,0xa));});}),this[_0x44e574('0x427')](_0x44e574('0x753'),_0x50dff6,null,null,!0x0),$(_0x44e574('0x7c8'))[_0x44e574('0x123')](),$(_0x44e574('0x7c8'))['on'](_0x44e574('0x76'),function(_0x35553e){var _0x37ea6e=_0x44e574;_0x35553e[_0x37ea6e('0x656')](),_0x35553e[_0x37ea6e('0xd44')]();try{modJs['filterQuery']();}catch(_0x5240ea){console[_0x37ea6e('0x7f1')](_0x5240ea),console[_0x37ea6e('0x7f1')](_0x5240ea[_0x37ea6e('0xb0a')]);}return!0x1;}),void 0x0!==this['filter']&&null!=this[_0x44e574('0x774')]&&''!==this[_0x44e574('0x774')]&&this[_0x44e574('0x27d')](this[_0x44e574('0x774')],'#'[_0x44e574('0x4c2')](this['getTableName'](),'_filter'),this[_0x44e574('0xba3')]());}},{'key':_0x322766('0xc08'),'value':function(_0x3eb87f){}},{'key':_0x322766('0xf8'),'value':function(_0x262de0){var _0x2d6000=_0x322766,_0x23b70b=[];null!=_0x262de0&&void 0x0!==_0x262de0||(this[_0x2d6000('0x3a')]=null),this[_0x2d6000('0xc08')](_0x262de0);for(var _0x3344bc,_0x4ebfb1=this[_0x2d6000('0x15f')][_0x2d6000('0xcae')],_0x39a912='',_0x4415cf=this[_0x2d6000('0x73d')](),_0x2be478=0x0;_0x2be478<_0x4415cf[_0x2d6000('0x796')];_0x2be478++){var _0x9beb4b=this['getMetaFieldForRendering'](_0x4415cf[_0x2be478][0x0]);if(''===_0x9beb4b||void 0x0===_0x9beb4b)_0x39a912+=this[_0x2d6000('0x1c6')](_0x4415cf[_0x2be478]);else{var _0x578f6f=_0x262de0[_0x9beb4b];''!==_0x578f6f&&null!=_0x578f6f&&void 0x0!==_0x578f6f&&''!==_0x578f6f[_0x2d6000('0x959')]()?_0x39a912+=this[_0x2d6000('0x1c6')](JSON[_0x2d6000('0x22f')](_0x578f6f)):_0x39a912+=this[_0x2d6000('0x1c6')](_0x4415cf[_0x2be478]);}}_0x4ebfb1=(_0x4ebfb1=_0x4ebfb1[_0x2d6000('0x8f9')](/_id_/g,''[_0x2d6000('0x4c2')](this[_0x2d6000('0x316')](),_0x2d6000('0x708'))))[_0x2d6000('0x8f9')](/_fields_/g,_0x39a912);var _0x87e0c1=this[_0x2d6000('0x1e3')](0xe);this['showFormOnPopup']?(_0x3344bc=$(_0x2d6000('0xe4')))[_0x2d6000('0x7c9')]('id',_0x87e0c1):_0x3344bc=$('#'['concat'](this[_0x2d6000('0x316')](),_0x2d6000('0x805'))),_0x3344bc[_0x2d6000('0xd34')](_0x4ebfb1),_0x3344bc[_0x2d6000('0x11c')]('.datefield')['datepicker']({'viewMode':0x2}),_0x3344bc[_0x2d6000('0x11c')]('.timefield')[_0x2d6000('0x7cf')]({'language':'en','pickDate':!0x1}),_0x3344bc[_0x2d6000('0x11c')](_0x2d6000('0x33f'))['datetimepicker']({'language':'en'}),_0x3344bc[_0x2d6000('0x11c')](_0x2d6000('0xa5b'))[_0x2d6000('0x354')](),tinymce[_0x2d6000('0x8ee')]({'selector':'#'[_0x2d6000('0x4c2')](_0x3344bc[_0x2d6000('0x7c9')]('id'),_0x2d6000('0x66f')),'height':'400'}),_0x3344bc[_0x2d6000('0x11c')](_0x2d6000('0x921'))[_0x2d6000('0xc63')](function(){var _0x4363d5=_0x2d6000,_0x1005de=new SimpleMDE({'element':$(this)[0x0]});$(this)[_0x4363d5('0x38')](_0x4363d5('0x32'),_0x1005de);});var _0x49c07c=this[_0x2d6000('0x378')];_0x49c07c&&_0x3344bc[_0x2d6000('0x11c')]('.code')[_0x2d6000('0xc63')](function(){var _0x3340ba=_0x2d6000,_0x4acdbf=_0x49c07c['fromTextArea']($(this)[0x0],{'lineNumbers':!0x1,'matchBrackets':!0x0,'continueComments':'Enter','extraKeys':{'Ctrl-Q':'toggleComment'}});$(this)[_0x3340ba('0x38')](_0x3340ba('0x2f6'),_0x4acdbf);}),_0x3344bc['find'](_0x2d6000('0x11'))[_0x2d6000('0xc63')](function(){var _0x5656f2=_0x2d6000;$(this)['select2']()[_0x5656f2('0xdc5')](_0x5656f2('0x6ae'),$(this)[_0x5656f2('0x11c')]('option:eq(0)')[_0x5656f2('0x6ae')]());}),_0x3344bc[_0x2d6000('0x11c')]('.select2Multi')['each'](function(){$(this)['select2']()['on']('change',function(_0x41758c){var _0x1217d1=_0x1c0e,_0x4bfbcd=$(this)[_0x1217d1('0xd2a')](_0x1217d1('0x976')),_0x5786bb=_0x4bfbcd[_0x1217d1('0x11c')]('.select2-choices')[_0x1217d1('0x3e')]();_0x4bfbcd['height'](parseInt(_0x5786bb,0xa));});}),_0x3344bc[_0x2d6000('0x11c')](_0x2d6000('0x59e'))[_0x2d6000('0xc63')](function(){var _0x31371b=_0x2d6000;_0x23b70b['push']($(this)[_0x31371b('0x7c9')]('id'));});for(var _0x49e44d=0x0;_0x49e44d<_0x4415cf[_0x2d6000('0x796')];_0x49e44d++)_0x2d6000('0x30')===_0x4415cf[_0x49e44d][0x1][_0x2d6000('0x18b')]&&_0x3344bc[_0x2d6000('0x11c')]('#'[_0x2d6000('0x4c2')](_0x4415cf[_0x49e44d][0x0]))[_0x2d6000('0x38')](_0x2d6000('0x85b'),_0x4415cf[_0x49e44d]);if(!0x1===this[_0x2d6000('0x14f')]?_0x3344bc['find'](_0x2d6000('0x84e'))[_0x2d6000('0x52')]():(_0x3344bc['find'](_0x2d6000('0x84e'))[_0x2d6000('0x123')](),_0x3344bc[_0x2d6000('0x11c')]('.saveBtn')[_0x2d6000('0x38')](_0x2d6000('0x6fe'),this),_0x3344bc[_0x2d6000('0x11c')](_0x2d6000('0x84e'))['on']('click',function(){var _0x32a3a7=_0x2d6000;return null!=$(this)[_0x32a3a7('0x38')](_0x32a3a7('0x6fe'))['saveSuccessItemCallback']&&void 0x0!==$(this)[_0x32a3a7('0x38')](_0x32a3a7('0x6fe'))[_0x32a3a7('0x520')]?$(this)[_0x32a3a7('0x38')](_0x32a3a7('0x6fe'))[_0x32a3a7('0x18d')]($(this)['data'](_0x32a3a7('0x6fe'))['retriveItemsAfterSave'](),$(this)[_0x32a3a7('0x38')]('modJs')[_0x32a3a7('0x520')]):$(this)[_0x32a3a7('0x38')](_0x32a3a7('0x6fe'))[_0x32a3a7('0x18d')](),!0x1;})),!0x1===this[_0x2d6000('0xbf1')]?_0x3344bc['find'](_0x2d6000('0xd98'))[_0x2d6000('0x52')]():(_0x3344bc[_0x2d6000('0x11c')]('.cancelBtn')[_0x2d6000('0x123')](),_0x3344bc['find'](_0x2d6000('0xd98'))[_0x2d6000('0x38')]('modJs',this),_0x3344bc['find'](_0x2d6000('0xd98'))['on'](_0x2d6000('0x76'),function(){var _0xc7ae87=_0x2d6000;return $(this)[_0xc7ae87('0x38')](_0xc7ae87('0x6fe'))[_0xc7ae87('0x536')](),!0x1;})),_0x3344bc[_0x2d6000('0x11c')](_0x2d6000('0x13d'))[_0x2d6000('0xc63')](function(){var _0x4f522d=_0x2d6000;$(this)[_0x4f522d('0x9d')]($(this)[_0x4f522d('0x7c9')](_0x4f522d('0xb20')));}),_0x3344bc[_0x2d6000('0x11c')](_0x2d6000('0x538'))[_0x2d6000('0xc63')](function(){var _0x1693ca=_0x2d6000;$(this)[_0x1693ca('0x9d')]({'mask':_0x1693ca('0x5b5'),'placeholder':_0x1693ca('0x8c4'),'leapday':_0x1693ca('0xb83'),'separator':'-','alias':_0x1693ca('0x4b8')});}),_0x3344bc['find'](_0x2d6000('0x8a5'))['each'](function(){var _0x10e239=_0x2d6000;$(this)[_0x10e239('0x9d')]('datetime',{'mask':'y-2-1\x20h:s:00','placeholder':'YYYY-MM-DD\x20hh:mm:ss','leapday':_0x10e239('0xb83'),'separator':'-','alias':_0x10e239('0x4b8')});}),this['showFormOnPopup']){this[_0x2d6000('0xaab')](_0x2d6000('0x753'),'',null,null,!0x0),$(_0x2d6000('0xc7b'))['html'](''),$(_0x2d6000('0xc7b'))[_0x2d6000('0x4ff')](_0x3344bc);for(var _0xbcb2a4=0x0;_0xbcb2a4<_0x23b70b[_0x2d6000('0x796')];_0xbcb2a4++)$('#'[_0x2d6000('0x4c2')](_0x23b70b[_0xbcb2a4]))[_0x2d6000('0x38')]('signaturePad',new SignaturePad(document[_0x2d6000('0x56a')](_0x23b70b[_0xbcb2a4])));void 0x0!==_0x262de0&&null!=_0x262de0?this[_0x2d6000('0x27d')](_0x262de0,'#'[_0x2d6000('0x4c2')](_0x87e0c1)):this[_0x2d6000('0x625')]('#'[_0x2d6000('0x4c2')](_0x87e0c1));}else{$('#'[_0x2d6000('0x4c2')](this['getTableName'](),_0x2d6000('0x805')))[_0x2d6000('0x462')](),$('#'[_0x2d6000('0x4c2')](this['getTableName']()))[_0x2d6000('0xafe')]();for(var _0x55954d=0x0;_0x55954d<_0x23b70b[_0x2d6000('0x796')];_0x55954d++)$('#'[_0x2d6000('0x4c2')](_0x23b70b[_0x55954d]))[_0x2d6000('0x38')](_0x2d6000('0xbe'),new SignaturePad(document[_0x2d6000('0x56a')](_0x23b70b[_0x55954d])));void 0x0!==_0x262de0&&null!=_0x262de0?this[_0x2d6000('0x27d')](_0x262de0):this['setDefaultValues'](),this[_0x2d6000('0x159')]();}this[_0x2d6000('0xad3')](_0x262de0,_0x3344bc);}},{'key':_0x322766('0x625'),'value':function(_0x2ca8e9,_0x4d9bd9){var _0x78c2b=_0x322766;null!=_0x4d9bd9&&void 0x0!==_0x4d9bd9||(_0x4d9bd9=this[_0x78c2b('0x73d')]()),null!=_0x2ca8e9&&void 0x0!==_0x2ca8e9&&''!==_0x2ca8e9||(_0x2ca8e9='#'[_0x78c2b('0x4c2')](this[_0x78c2b('0x316')](),_0x78c2b('0x805')));for(var _0x4c1550=0x0;_0x4c1550<_0x4d9bd9[_0x78c2b('0x796')];_0x4c1550++)_0x78c2b('0x941')!==_0x4d9bd9[_0x4c1550][0x1][_0x78c2b('0x18b')]&&_0x78c2b('0xbd5')!==_0x4d9bd9[_0x4c1550][0x1][_0x78c2b('0x18b')]||void 0x0!==_0x4d9bd9[_0x4c1550][0x1]['default']&&null!==_0x4d9bd9[_0x4c1550][0x1][_0x78c2b('0x8fd')]&&$(''['concat'](_0x2ca8e9,'\x20#')['concat'](_0x4d9bd9[_0x4c1550][0x0]))[_0x78c2b('0x6ae')](_0x4d9bd9[_0x4c1550][0x1][_0x78c2b('0x8fd')]);}},{'key':_0x322766('0xbbb'),'value':function(){return!0x0;}},{'key':'postRenderForm','value':function(_0x314681,_0xb9c870){}},{'key':_0x322766('0x7d7'),'value':function(_0x19b55e,_0x53d238){var _0x2403a2=_0x322766,_0xa3a840,_0x244a23,_0x53148d,_0x46441d,_0x40a7ea=JSON[_0x2403a2('0x22f')](_0x19b55e),_0x337ba1=_0x53d238[0x1][_0x2403a2('0xd34')];null!=_0x40a7ea&&void 0x0!==_0x40a7ea&&void 0x0!==_0x53d238[0x1][_0x2403a2('0x299')]&&null!=_0x53d238[0x1][_0x2403a2('0x299')]&&_0x40a7ea[_0x2403a2('0x193')](_0x53d238[0x1]['sort-function']);for(var _0x2af557=$(_0x2403a2('0xcd6')[_0x2403a2('0x4c2')](_0x53d238[0x0],_0x2403a2('0x230'))),_0x305856=0x0;_0x305856<_0x40a7ea['length'];_0x305856++){for(var _0x509940 in(_0x244a23=_0x40a7ea[_0x305856],void 0x0!==_0x53d238[0x1][_0x2403a2('0x448')]&&null!=_0x53d238[0x1][_0x2403a2('0x448')]&&(_0x244a23=_0x53d238[0x1][_0x2403a2('0x448')][_0x2403a2('0x365')](this,[_0x244a23])),_0xa3a840=(_0xa3a840=(_0xa3a840=(_0xa3a840=_0x337ba1)[_0x2403a2('0x8f9')]('#_delete_#',_0x2403a2('0xc57')))['replace'](_0x2403a2('0x8d3'),_0x2403a2('0xd3b')))[_0x2403a2('0x8f9')](/#_id_#/g,_0x244a23['id']),_0x244a23))void 0x0!==(_0x46441d=_0x244a23[_0x509940])&&null!=_0x46441d&&_0x2403a2('0x3fd')==typeof _0x46441d&&(_0x46441d=_0x46441d['replace'](/(?:\r\n|\r|\n)/g,_0x2403a2('0x918'))),_0xa3a840=_0xa3a840[_0x2403a2('0x8f9')]('#_'[_0x2403a2('0x4c2')](_0x509940,'_#'),_0x46441d);void 0x0!==_0x53d238[0x1][_0x2403a2('0x358')]&&null!=_0x53d238[0x1][_0x2403a2('0x358')]&&(_0xa3a840=_0xa3a840[_0x2403a2('0x8f9')](_0x2403a2('0x84b'),_0x53d238[0x1][_0x2403a2('0x358')](_0x244a23))),(_0x53148d=$(_0xa3a840))[_0x2403a2('0x7c9')](_0x2403a2('0x852'),''['concat'](_0x53d238[0x0],_0x2403a2('0xbe6'))),_0x2af557['append'](_0x53148d);}return _0x2af557;}},{'key':_0x322766('0x3ac'),'value':function(_0x556187){var _0x147b32=_0x322766;$('#'[_0x147b32('0x4c2')](_0x556187[0x0]))[_0x147b32('0x6ae')](''),$('#'[_0x147b32('0x4c2')](_0x556187[0x0],_0x147b32('0xbe6')))[_0x147b32('0xd34')]('');}},{'key':_0x322766('0x682'),'value':function(_0x4a5e01,_0x553bda,_0x36d4b5){var _0x2096e0=_0x322766,_0x3adaf2=this[_0x2096e0('0x15f')][_0x2096e0('0x722')],_0x2da544='',_0x5a208a=_0x4a5e01[0x1][_0x2096e0('0x2e')];void 0x0!==_0x553bda&&null!=_0x553bda&&void 0x0!==_0x553bda['id']?this[_0x2096e0('0x8ab')]=_0x553bda['id']:this[_0x2096e0('0x8ab')]=null;for(var _0x35c380=0x0;_0x35c380<_0x5a208a[_0x2096e0('0x796')];_0x35c380++)_0x2da544+=this[_0x2096e0('0x1c6')](_0x5a208a[_0x35c380]);_0x3adaf2=(_0x3adaf2=_0x3adaf2[_0x2096e0('0x8f9')](/_id_/g,''[_0x2096e0('0x4c2')](this[_0x2096e0('0x316')](),_0x2096e0('0xa7b'))['concat'](_0x4a5e01[0x0])))['replace'](/_fields_/g,_0x2da544);var _0x1cdc15=this[_0x2096e0('0x1e3')](0xe),_0x114336=$('');_0x114336['attr']('id',_0x1cdc15),_0x114336[_0x2096e0('0xd34')](_0x3adaf2),_0x114336['find']('.datefield')[_0x2096e0('0x3e3')]({'viewMode':0x2}),_0x114336[_0x2096e0('0x11c')](_0x2096e0('0x170'))[_0x2096e0('0x7cf')]({'language':'en','pickDate':!0x1}),_0x114336[_0x2096e0('0x11c')](_0x2096e0('0x33f'))['datetimepicker']({'language':'en'}),_0x114336['find'](_0x2096e0('0xa5b'))[_0x2096e0('0x354')](),tinymce[_0x2096e0('0x8ee')]({'selector':'#'[_0x2096e0('0x4c2')](_0x114336[_0x2096e0('0x7c9')]('id'),'\x20.tinymce'),'height':_0x2096e0('0xc94')}),_0x114336[_0x2096e0('0x11c')](_0x2096e0('0x921'))['each'](function(){var _0x44a996=_0x2096e0,_0x20ab11=new SimpleMDE({'element':$(this)[0x0]});$(this)[_0x44a996('0x38')]('simplemde',_0x20ab11);}),_0x114336[_0x2096e0('0x11c')](_0x2096e0('0x11'))[_0x2096e0('0xc63')](function(){var _0x19635d=_0x2096e0;$(this)['select2']()['select2']('val',$(this)[_0x19635d('0x11c')](_0x19635d('0x89e'))[_0x19635d('0x6ae')]());}),_0x114336['find'](_0x2096e0('0xbd'))[_0x2096e0('0xc63')](function(){var _0x46c2b5=_0x2096e0;$(this)[_0x46c2b5('0xdc5')]()['on'](_0x46c2b5('0xdb4'),function(_0x1a8a84){var _0x351274=_0x46c2b5,_0x359054=$(this)['parents'](_0x351274('0x976')),_0x28d74e=_0x359054[_0x351274('0x11c')]('.select2-choices')[_0x351274('0x3e')]();_0x359054[_0x351274('0x3e')](parseInt(_0x28d74e,0xa));});}),this['currentDataGroupField']=_0x4a5e01,this['showDomElement'](_0x2096e0('0x8cf')['concat'](_0x4a5e01[0x1]['label']),_0x114336,null,null,!0x0),void 0x0!==_0x553bda&&null!=_0x553bda?this[_0x2096e0('0x27d')](_0x553bda,'#'[_0x2096e0('0x4c2')](this[_0x2096e0('0x316')](),_0x2096e0('0xa7b'))[_0x2096e0('0x4c2')](_0x4a5e01[0x0]),_0x4a5e01[0x1]['form']):this[_0x2096e0('0x625')]('#'[_0x2096e0('0x4c2')](this[_0x2096e0('0x316')](),_0x2096e0('0xa7b'))[_0x2096e0('0x4c2')](_0x4a5e01[0x0]),_0x4a5e01[0x1][_0x2096e0('0x2e')]),$(_0x2096e0('0x2a0'))[_0x2096e0('0x123')](),void 0x0!==_0x553bda&&null!=_0x553bda&&void 0x0!==_0x553bda['id']?$(_0x2096e0('0x2a0'))['on'](_0x2096e0('0x76'),function(_0x427774){var _0x4e2416=_0x2096e0;_0x427774['preventDefault'](),_0x427774[_0x4e2416('0xd44')]();try{modJs['editDataGroup'](_0x36d4b5);}catch(_0xe5211c){console['log'](_0x4e2416('0xda8')['concat'](_0xe5211c[_0x4e2416('0xb0a')]));}return!0x1;}):$(_0x2096e0('0x2a0'))['on']('click',function(_0x2f2316){var _0xa5c651=_0x2096e0;_0x2f2316[_0xa5c651('0x656')](),_0x2f2316[_0xa5c651('0xd44')]();try{modJs[_0xa5c651('0x711')](_0x36d4b5);}catch(_0x39ca7d){console[_0xa5c651('0x7f1')](_0xa5c651('0x85f')[_0xa5c651('0x4c2')](_0x39ca7d[_0xa5c651('0xb0a')]));}return!0x1;});}},{'key':_0x322766('0x711'),'value':function(_0x434e0a,_0x64a79c){var _0x33acdc=_0x322766,_0x5c2aac,_0x456019=this[_0x33acdc('0x819')];$('#'[_0x33acdc('0x4c2')](this['getTableName'](),_0x33acdc('0xa7b'))[_0x33acdc('0x4c2')](_0x456019[0x0],'_error'))[_0x33acdc('0xd34')](''),$('#'[_0x33acdc('0x4c2')](this['getTableName'](),_0x33acdc('0xa7b'))['concat'](_0x456019[0x0],'_error'))[_0x33acdc('0xafe')]();var _0x2a0aca=new _0x372cf0[(_0x33acdc('0x8fd'))](''['concat'](this['getTableName'](),_0x33acdc('0xa7b'))['concat'](_0x456019[0x0]),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':'error'});if(_0x2a0aca[_0x33acdc('0x472')]()){var _0x1302ae=_0x2a0aca['getFormParameters']();if(void 0x0!==_0x456019[0x1][_0x33acdc('0x77')]&&null!=_0x456019[0x1][_0x33acdc('0x77')]){if(!(_0x5c2aac=_0x456019[0x1][_0x33acdc('0x77')][_0x33acdc('0x365')](this,[_0x1302ae]))[_0x33acdc('0x18e')])return $('#'[_0x33acdc('0x4c2')](this[_0x33acdc('0x316')](),'_field_')[_0x33acdc('0x4c2')](_0x456019[0x0],_0x33acdc('0x3c3')))[_0x33acdc('0xd34')](_0x5c2aac[_0x33acdc('0xb0a')]),$('#'[_0x33acdc('0x4c2')](this['getTableName'](),'_field_')['concat'](_0x456019[0x0],_0x33acdc('0x3c3')))[_0x33acdc('0x462')](),!0x1;_0x1302ae=_0x5c2aac[_0x33acdc('0x87f')];}var _0x201945='[]';_0x64a79c?_0x201945=_0x64a79c:''!==(_0x201945=$('#'['concat'](_0x456019[0x0]))[_0x33acdc('0x6ae')]())&&null!=_0x201945||(_0x201945='[]');var _0x1b398b=JSON[_0x33acdc('0x22f')](_0x201945);_0x1302ae['id']=''[_0x33acdc('0x4c2')](_0x456019[0x0],'_')[_0x33acdc('0x4c2')](this[_0x33acdc('0x7da')](_0x1b398b)),_0x1b398b[_0x33acdc('0xb2')](_0x1302ae),void 0x0!==_0x456019[0x1][_0x33acdc('0x299')]&&null!=_0x456019[0x1][_0x33acdc('0x299')]&&_0x1b398b[_0x33acdc('0x193')](_0x456019[0x1]['sort-function']),_0x201945=JSON[_0x33acdc('0xaae')](_0x1b398b);var _0x8dc4c2=this['dataGroupToHtml'](_0x201945,_0x456019);_0x434e0a&&_0x434e0a(_0x201945),$('#'[_0x33acdc('0x4c2')](_0x456019[0x0],_0x33acdc('0xbe6')))['html'](''),$('#'['concat'](_0x456019[0x0],'_div'))['append'](_0x8dc4c2),this[_0x33acdc('0xc9b')](_0x456019,$('#'[_0x33acdc('0x4c2')](_0x456019[0x0],'_div_inner'))),$('#'[_0x33acdc('0x4c2')](_0x456019[0x0]))[_0x33acdc('0x6ae')](_0x201945),this[_0x33acdc('0x45c')](_0x456019),this[_0x33acdc('0x33')](),this[_0x33acdc('0xaab')](_0x33acdc('0x167'),'This\x20change\x20will\x20be\x20effective\x20only\x20when\x20you\x20save\x20the\x20form');}return!0x0;}},{'key':_0x322766('0x546'),'value':function(_0x24b6b,_0x543be1){var _0x316e6c=_0x322766,_0x4b8796='';try{for(var _0x45f65e=_0x24b6b[_0x316e6c('0x5c')]('\x20'),_0x5516a2=0x0,_0x2487d2=0x0;_0x2487d2<_0x45f65e[_0x316e6c('0x796')];_0x2487d2++)(_0x5516a2+=_0x45f65e[_0x2487d2]['length']+0x1)>_0x543be1?(_0x4b8796+=''['concat'](_0x45f65e[_0x2487d2],_0x316e6c('0xb6b')),_0x5516a2=0x0):_0x4b8796+=''[_0x316e6c('0x4c2')](_0x45f65e[_0x2487d2],'\x20');}catch(_0xcf64c8){}return _0x4b8796;}},{'key':_0x322766('0xc9b'),'value':function(_0x292161,_0x2d4ff5){var _0x29ec01=_0x322766;_0x2d4ff5[_0x29ec01('0x38')](_0x29ec01('0x85b'),_0x292161),_0x2d4ff5[_0x29ec01('0x38')](_0x29ec01('0x778'),!0x0),_0x2d4ff5[_0x29ec01('0x98b')]({'create':function(){var _0x114c73=_0x29ec01;$(this)['height']($(this)[_0x114c73('0x3e')]());},'ui-floating':!0x1,'start':function(_0x55ae5b,_0x3ce632){var _0x21282f=_0x29ec01;$(_0x21282f('0x453'))[_0x21282f('0x98b')]({'sort':function(_0x5a048a,_0x3384ec){var _0x494a71=_0x21282f,_0x2aeca3=$(_0x5a048a[_0x494a71('0xbf8')]);if(!/html|body/i[_0x494a71('0x96c')](_0x2aeca3['offsetParent']()[0x0]['tagName'])){var _0x3a9124=_0x5a048a[_0x494a71('0xd35')]-_0x2aeca3['offsetParent']()[_0x494a71('0x39b')]()[_0x494a71('0xbe7')]-_0x3384ec['helper'][_0x494a71('0x7aa')](!0x0)/0x2;_0x3384ec[_0x494a71('0x86')][_0x494a71('0x2a8')]({'top':''[_0x494a71('0x4c2')](_0x3a9124,'px')});}}});},'revert':!0x0,'stop':function(){var _0x38cbfc=_0x29ec01;modJs[_0x38cbfc('0x45c')]($(this)[_0x38cbfc('0x38')]('field'));},'axis':'y','scroll':!0x1,'placeholder':_0x29ec01('0x728'),'cursor':_0x29ec01('0x5dd')});}},{'key':_0x322766('0x45c'),'value':function(_0x2f93c4,_0x84193e){var _0x59b31d=_0x322766,_0x1b862b,_0x2d7c5c=[],_0x4f8b82=$('#'[_0x59b31d('0x4c2')](_0x2f93c4[0x0],_0x59b31d('0x3f6'))['concat'](_0x2f93c4[0x0],'_div\x27]')),_0x31339f=$('#'[_0x59b31d('0x4c2')](_0x2f93c4[0x0]))[_0x59b31d('0x6ae')]();''!==_0x31339f&&null!=_0x31339f||(_0x31339f='[]');var _0x363cf=JSON[_0x59b31d('0x22f')](_0x31339f);_0x4f8b82[_0x59b31d('0xc63')](function(){var _0x5828e9=_0x59b31d;for(var _0x51f64b in(_0x1b862b=$(this)[_0x5828e9('0x7c9')]('id'),_0x363cf))if(_0x363cf[_0x51f64b]['id']===_0x1b862b){_0x2d7c5c[_0x5828e9('0xb2')](_0x363cf[_0x51f64b]);break;}}),$('#'[_0x59b31d('0x4c2')](_0x2f93c4[0x0]))[_0x59b31d('0x6ae')](JSON[_0x59b31d('0xaae')](_0x2d7c5c)),null!=_0x84193e&&_0x84193e(_0x2d7c5c);}},{'key':_0x322766('0x860'),'value':function(_0x31bdbd,_0x153f7c){var _0x4c6fba=_0x322766,_0x446212=this[_0x4c6fba('0x819')],_0x11fc3a=this[_0x4c6fba('0x8ab')],_0x3b1dfe=new _0x372cf0[(_0x4c6fba('0x8fd'))](''['concat'](this['getTableName'](),'_field_')[_0x4c6fba('0x4c2')](_0x446212[0x0]),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':'error'});if(_0x3b1dfe[_0x4c6fba('0x472')]()){var _0x4da239=_0x3b1dfe[_0x4c6fba('0x4d3')]();if(void 0x0!==_0x446212[0x1][_0x4c6fba('0x77')]&&null!=_0x446212[0x1][_0x4c6fba('0x77')]){var _0x288997=_0x446212[0x1][_0x4c6fba('0x77')][_0x4c6fba('0x365')](this,[_0x4da239]);if(!_0x288997[_0x4c6fba('0x18e')])return $('#'[_0x4c6fba('0x4c2')](this[_0x4c6fba('0x316')](),_0x4c6fba('0xa7b'))['concat'](_0x446212[0x0],_0x4c6fba('0x3c3')))[_0x4c6fba('0xd34')](_0x288997[_0x4c6fba('0xb0a')]),$('#'[_0x4c6fba('0x4c2')](this[_0x4c6fba('0x316')](),'_field_')[_0x4c6fba('0x4c2')](_0x446212[0x0],'_error'))['show'](),!0x1;_0x4da239=_0x288997[_0x4c6fba('0x87f')];}if(this[_0x4c6fba('0xc1f')](_0x4da239)){var _0x5e1f32='[]';_0x153f7c?_0x5e1f32=_0x153f7c:''!==(_0x5e1f32=$('#'[_0x4c6fba('0x4c2')](_0x446212[0x0]))[_0x4c6fba('0x6ae')]())&&null!=_0x5e1f32||(_0x5e1f32='[]');for(var _0xd3ff39=JSON[_0x4c6fba('0x22f')](_0x5e1f32),_0x3cd928={},_0x3b0e0f=-0x1,_0x289ef4=[],_0x199b96=0x0;_0x199b96<_0xd3ff39[_0x4c6fba('0x796')];_0x199b96++){var _0x5b2885=_0xd3ff39[_0x199b96];_0x5b2885['id']===_0x11fc3a&&(_0x3cd928=_0x5b2885,_0x3b0e0f=_0x199b96),_0x289ef4['push'](_0x5b2885);}_0x4da239['id']=_0x3cd928['id'],_0x289ef4[_0x3b0e0f]=_0x4da239,void 0x0!==_0x446212[0x1]['sort-function']&&null!=_0x446212[0x1]['sort-function']&&_0x289ef4[_0x4c6fba('0x193')](_0x446212[0x1]['sort-function']),_0x5e1f32=JSON[_0x4c6fba('0xaae')](_0x289ef4),$('#'['concat'](_0x446212[0x0]))[_0x4c6fba('0x6ae')](_0x5e1f32);var _0x4999a3=this['dataGroupToHtml'](_0x5e1f32,_0x446212);_0x31bdbd&&_0x31bdbd(_0x289ef4),this[_0x4c6fba('0x45c')](_0x446212),$('#'[_0x4c6fba('0x4c2')](_0x446212[0x0],_0x4c6fba('0xbe6')))[_0x4c6fba('0xd34')](''),$('#'[_0x4c6fba('0x4c2')](_0x446212[0x0],_0x4c6fba('0xbe6')))[_0x4c6fba('0x4ff')](_0x4999a3),this[_0x4c6fba('0xc9b')](_0x446212,$('#'[_0x4c6fba('0x4c2')](_0x446212[0x0],_0x4c6fba('0x994')))),this[_0x4c6fba('0x33')](),this['showMessage'](_0x4c6fba('0xa8f'),_0x4c6fba('0x92d'));}}return!0x0;}},{'key':_0x322766('0xd6f'),'value':function(_0x3e9deb,_0x32b474,_0x5bd8e9){var _0x1f1f4c=_0x322766,_0x48b407,_0x329033=_0x3e9deb['substring'](0x0,_0x3e9deb[_0x1f1f4c('0x4ea')]('_'));_0x48b407=_0x32b474?decodeURI(_0x32b474):$('#'[_0x1f1f4c('0x4c2')](_0x329033))[_0x1f1f4c('0x6ae')]();for(var _0x2eae91=JSON[_0x1f1f4c('0x22f')](_0x48b407),_0x43a394={},_0x3445b3=0x0;_0x3445b3<_0x2eae91[_0x1f1f4c('0x796')];_0x3445b3++){var _0x2e838c=_0x2eae91[_0x3445b3];_0x2e838c['id']===_0x3e9deb&&(_0x43a394=_0x2e838c);}_0x5bd8e9=_0x5bd8e9?JSON[_0x1f1f4c('0x22f')](decodeURI(_0x5bd8e9)):$('#'['concat'](_0x329033))[_0x1f1f4c('0x38')]('field'),this[_0x1f1f4c('0x682')](_0x5bd8e9,_0x43a394);}},{'key':_0x322766('0x7da'),'value':function(_0x53fc9d){var _0x40452b=_0x322766;for(var _0x399556,_0x2d3710=0x1,_0x371e15=0x0;_0x371e15<_0x53fc9d[_0x40452b('0x796')];_0x371e15++){var _0xa7fec=_0x53fc9d[_0x371e15];void 0x0!==_0xa7fec['id']&&null!=_0xa7fec['id']||(_0xa7fec['id']=0x1),(_0x399556=_0xa7fec['id'][_0x40452b('0x14c')](_0xa7fec['id'][_0x40452b('0x4ea')]('_')+0x1,_0xa7fec['id'][_0x40452b('0x796')]))>=_0x2d3710&&(_0x2d3710=parseInt(_0x399556,0xa)+0x1);}return _0x2d3710;}},{'key':_0x322766('0x5d3'),'value':function(_0x35d786,_0x424c87){var _0x411164=_0x322766,_0x689858,_0x48471c=_0x35d786[_0x411164('0x14c')](0x0,_0x35d786[_0x411164('0x4ea')]('_'));_0x689858=_0x424c87?decodeURI(_0x424c87):$('#'[_0x411164('0x4c2')](_0x48471c))[_0x411164('0x6ae')]();for(var _0x2c2a18=JSON[_0x411164('0x22f')](_0x689858),_0x4543cc=[],_0x4268c6=0x0;_0x4268c6<_0x2c2a18[_0x411164('0x796')];_0x4268c6++){var _0x3d7fa3=_0x2c2a18[_0x4268c6];_0x3d7fa3['id']!==_0x35d786&&_0x4543cc[_0x411164('0xb2')](_0x3d7fa3);}$('#'[_0x411164('0x4c2')](_0x48471c))[_0x411164('0x6ae')](JSON[_0x411164('0xaae')](_0x4543cc)),$('#'[_0x411164('0x4c2')](_0x35d786))[_0x411164('0x52')](),this[_0x411164('0xaab')](_0x411164('0x62b'),_0x411164('0x9fa'));}},{'key':_0x322766('0x27d'),'value':function(_0x1e6c58,_0x340ddd,_0x5c43f3){var _0x21fb0b=_0x322766,_0x1e813b;null!=_0x5c43f3&&void 0x0!==_0x5c43f3||(_0x5c43f3=this['getFormFields']()),null!=_0x340ddd&&void 0x0!==_0x340ddd&&''!==_0x340ddd||(_0x340ddd='#'[_0x21fb0b('0x4c2')](this[_0x21fb0b('0x316')](),_0x21fb0b('0x805')));for(var _0x2a0378=0x0;_0x2a0378<_0x5c43f3['length'];_0x2a0378++)if(_0x21fb0b('0x9d2')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')])_0x21fb0b('0x90c')!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&''!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0],_0x21fb0b('0x8b2')))[_0x21fb0b('0x3e3')](_0x21fb0b('0x210'),_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);else{if('colorpick'===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')])null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&($(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0],_0x21fb0b('0x514')))['colorpicker']('setValue',_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]),$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x6ae')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]));else{if(_0x21fb0b('0x48b')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')]||_0x21fb0b('0xd49')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')]){if(_0x21fb0b('0x111')!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&''!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]){var _0x40174e=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]['split']('\x20'),_0x949b0f=_0x40174e[0x0]['split']('-'),_0x460596=_0x40174e[0x1][_0x21fb0b('0x5c')](':');$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0],'_datetime'))[_0x21fb0b('0x38')]('datetimepicker')[_0x21fb0b('0x856')](new Date(_0x949b0f[0x0],parseInt(_0x949b0f[0x1],0xa)-0x1,_0x949b0f[0x2],_0x460596[0x0],_0x460596[0x1],_0x460596[0x2]));}}else{if(_0x21fb0b('0x530')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')])$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0xd34')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);else{if('placeholder'===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')]){if(void 0x0!==_0x5c43f3[_0x2a0378][0x1]['remote-source']&&null!=_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x26d')]){var _0x3dd46e=this[_0x21fb0b('0x390')](_0x5c43f3[_0x2a0378]);_0x1e813b=this[_0x21fb0b('0xb9e')][_0x3dd46e][_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]];}else _0x1e813b=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]];if(void 0x0===_0x1e813b||null==_0x1e813b)_0x1e813b='';else try{_0x1e813b=_0x1e813b[_0x21fb0b('0x8f9')](/(?:\r\n|\r|\n)/g,_0x21fb0b('0x918'));}catch(_0x3b1eca){}if(void 0x0!==_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x63c')]&&_0x5c43f3[_0x2a0378][0x1]['formatter']&&$[_0x21fb0b('0x27c')](_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x63c')]))try{_0x1e813b=_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x63c')](_0x1e813b);}catch(_0x2bc3d2){}$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0xd34')](_0x1e813b);}else{if(_0x21fb0b('0x321')===_0x5c43f3[_0x2a0378][0x1]['type'])null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&''!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&($(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))['html'](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]),$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0]))['attr'](_0x21fb0b('0x6ae'),_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]),$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x462')](),$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0],_0x21fb0b('0x9d1')))[_0x21fb0b('0x462')](),$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0],'_remove'))[_0x21fb0b('0x462')]()),!0x0===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x481')]&&$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0],_0x21fb0b('0x37')))[_0x21fb0b('0x52')]();else{if(_0x21fb0b('0x510')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')])void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&''!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]||(_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]=_0x21fb0b('0x1bc')),$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x6ae')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);else{if(_0x21fb0b('0xdc5')===_0x5c43f3[_0x2a0378][0x1]['type'])void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&''!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]||(_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]=_0x21fb0b('0x1bc')),$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0xdc5')](_0x21fb0b('0x6ae'),_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);else{if(_0x21fb0b('0x4cc')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')]){void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&''!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]||(_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]=_0x21fb0b('0x1bc'));var _0x62f19=[];if(void 0x0!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&null!=_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&''!==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]])try{_0x62f19=JSON[_0x21fb0b('0x22f')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);}catch(_0x40bdb3){}$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0xdc5')](_0x21fb0b('0x6ae'),_0x62f19);var _0x57b726=$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x11c')](_0x21fb0b('0xafc'))['height']();$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x11c')](_0x21fb0b('0x5a8'))[_0x21fb0b('0x2a8')](_0x21fb0b('0x26'),''[_0x21fb0b('0x4c2')](_0x57b726,'px')),$(''['concat'](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x2a8')](_0x21fb0b('0x26'),''[_0x21fb0b('0x4c2')](_0x57b726,'px'));}else{if(_0x21fb0b('0x30')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')])try{var _0x1fc9d3=this[_0x21fb0b('0x7d7')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]],_0x5c43f3[_0x2a0378]);$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x6ae')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]),$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0],_0x21fb0b('0xbe6')))[_0x21fb0b('0xd34')](''),$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0],_0x21fb0b('0xbe6')))[_0x21fb0b('0x4ff')](_0x1fc9d3),this[_0x21fb0b('0xc9b')](_0x5c43f3[_0x2a0378],$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0],_0x21fb0b('0x994'))));}catch(_0x17b4de){}else{if(_0x21fb0b('0x735')===_0x5c43f3[_0x2a0378][0x1]['type'])''===_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&void 0x0===_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]&&null==_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]||$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0]))['data'](_0x21fb0b('0xbe'))['fromDataURL'](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);else{if(_0x21fb0b('0x32')===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')])$(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')['concat'](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x38')](_0x21fb0b('0x32'))[_0x21fb0b('0x920')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);else{if('code'===_0x5c43f3[_0x2a0378][0x1][_0x21fb0b('0x18b')]){var _0x442465=$(''['concat'](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))['data'](_0x21fb0b('0x2f6'));_0x442465&&_0x442465[_0x21fb0b('0x68c')]()[_0x21fb0b('0x210')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);}else $(''[_0x21fb0b('0x4c2')](_0x340ddd,'\x20#')[_0x21fb0b('0x4c2')](_0x5c43f3[_0x2a0378][0x0]))[_0x21fb0b('0x6ae')](_0x1e6c58[_0x5c43f3[_0x2a0378][0x0]]);}}}}}}}}}}}}}},{'key':'cancel','value':function(){var _0x2ca9f6=_0x322766;$('#'[_0x2ca9f6('0x4c2')](this[_0x2ca9f6('0x316')](),'Form'))[_0x2ca9f6('0xafe')](),$('#'[_0x2ca9f6('0x4c2')](this[_0x2ca9f6('0x316')]()))[_0x2ca9f6('0x462')]();}},{'key':_0x322766('0x1c6'),'value':function(_0x24a40e){var _0x34efdc=_0x322766,_0x27624e=0x0;if(void 0x0===this[_0x34efdc('0x855')][_0x24a40e[0x1][_0x34efdc('0x18b')]]||null==this[_0x34efdc('0x855')][_0x24a40e[0x1][_0x34efdc('0x18b')]])return'';var _0x510112=this['fieldTemplates'][_0x24a40e[0x1]['type']];if(_0x24a40e[0x1]['label']=this['gt'](_0x24a40e[0x1][_0x34efdc('0x530')]),_0x34efdc('0x649')!==_0x24a40e[0x1][_0x34efdc('0x573')]&&'emailOrEmpty'!==_0x24a40e[0x1][_0x34efdc('0x573')]&&_0x34efdc('0xb7f')!==_0x24a40e[0x1][_0x34efdc('0x573')]&&_0x34efdc('0x6d0')!==_0x24a40e[0x1]['type']&&_0x24a40e[0x1][_0x34efdc('0x530')][_0x34efdc('0xcd8')]('*')<0x0&&([_0x34efdc('0x510'),_0x34efdc('0xdc5')][_0x34efdc('0xcd8')](_0x24a40e[0x1]['type'])>=0x0&&!0x0===_0x24a40e[0x1][_0x34efdc('0xcd2')]||(_0x24a40e[0x1][_0x34efdc('0x530')]=''[_0x34efdc('0x4c2')](_0x24a40e[0x1]['label'],_0x34efdc('0x8b6')))),_0x34efdc('0x510')===_0x24a40e[0x1]['type']||'select2'===_0x24a40e[0x1][_0x34efdc('0x18b')]||_0x34efdc('0x4cc')===_0x24a40e[0x1]['type']){if(_0x510112=(_0x510112=_0x510112[_0x34efdc('0x8f9')](/_id_/g,_0x24a40e[0x0]))[_0x34efdc('0x8f9')](/_label_/g,_0x24a40e[0x1][_0x34efdc('0x530')]),void 0x0!==_0x24a40e[0x1]['source']&&null!=_0x24a40e[0x1][_0x34efdc('0x22c')])_0x510112=_0x510112['replace']('_options_',this['renderFormSelectOptions'](_0x24a40e[0x1][_0x34efdc('0x22c')],_0x24a40e));else{if(void 0x0!==_0x24a40e[0x1][_0x34efdc('0x26d')]&&null!=_0x24a40e[0x1][_0x34efdc('0x26d')]){var _0x515c0e=this[_0x34efdc('0x390')](_0x24a40e);_0x510112=_0x510112[_0x34efdc('0x8f9')](_0x34efdc('0x2d1'),this[_0x34efdc('0x64b')](this[_0x34efdc('0xb9e')][_0x515c0e],_0x24a40e));}}}else{if(_0x34efdc('0x8ae')===_0x24a40e[0x1][_0x34efdc('0x18b')])_0x510112=(_0x510112=_0x510112['replace'](/_id_/g,_0x24a40e[0x0]))[_0x34efdc('0x8f9')](/_label_/g,_0x24a40e[0x1][_0x34efdc('0x530')]);else{if(_0x34efdc('0x9d2')===_0x24a40e[0x1][_0x34efdc('0x18b')])_0x510112=(_0x510112=_0x510112[_0x34efdc('0x8f9')](/_id_/g,_0x24a40e[0x0]))['replace'](/_label_/g,_0x24a40e[0x1][_0x34efdc('0x530')]);else{if(_0x34efdc('0x48b')===_0x24a40e[0x1]['type'])_0x510112=(_0x510112=_0x510112['replace'](/_id_/g,_0x24a40e[0x0]))['replace'](/_label_/g,_0x24a40e[0x1][_0x34efdc('0x530')]);else{if(_0x34efdc('0xd49')===_0x24a40e[0x1][_0x34efdc('0x18b')])_0x510112=(_0x510112=_0x510112[_0x34efdc('0x8f9')](/_id_/g,_0x24a40e[0x0]))[_0x34efdc('0x8f9')](/_label_/g,_0x24a40e[0x1][_0x34efdc('0x530')]);else{if(_0x34efdc('0x321')===_0x24a40e[0x1][_0x34efdc('0x18b')]){_0x510112=(_0x510112=_0x510112[_0x34efdc('0x8f9')](/_id_/g,_0x24a40e[0x0]))[_0x34efdc('0x8f9')](/_label_/g,_0x24a40e[0x1]['label']);var _0xf3e248=this[_0x34efdc('0x5e')]();_0x27624e=null!=_0xf3e248&&void 0x0!==_0xf3e248?_0xf3e248['id']:-0x1*this[_0x34efdc('0x353')]()['id'],_0x510112=(_0x510112=_0x510112['replace'](/_userId_/g,_0x27624e))[_0x34efdc('0x8f9')](/_group_/g,this[_0x34efdc('0x7dd')]),_0x510112=(_0x510112=void 0x0!==_0x24a40e[0x1][_0x34efdc('0x289')]&&null!=_0x24a40e[0x1][_0x34efdc('0x289')]?_0x510112[_0x34efdc('0x8f9')](/_filetypes_/g,_0x24a40e[0x1]['filetypes']):_0x510112['replace'](/_filetypes_/g,_0x34efdc('0xb27')))['replace'](/_rand_/g,this['generateRandom'](0xe));}else _0x34efdc('0x30')===_0x24a40e[0x1][_0x34efdc('0x18b')]||_0x34efdc('0x735')===_0x24a40e[0x1][_0x34efdc('0x18b')]||_0x34efdc('0x30f')===_0x24a40e[0x1][_0x34efdc('0x18b')]||_0x24a40e[0x1][_0x34efdc('0x18b')],_0x510112=(_0x510112=_0x510112['replace'](/_id_/g,_0x24a40e[0x0]))[_0x34efdc('0x8f9')](/_label_/g,_0x24a40e[0x1][_0x34efdc('0x530')]);}}}}}return _0x510112=void 0x0!==_0x24a40e[0x1][_0x34efdc('0x573')]&&null!=_0x24a40e[0x1]['validation']&&''!==_0x24a40e[0x1][_0x34efdc('0x573')]?_0x510112[_0x34efdc('0x8f9')](/_validation_/g,_0x34efdc('0x47f')[_0x34efdc('0x4c2')](_0x24a40e[0x1][_0x34efdc('0x573')],'\x22')):_0x510112[_0x34efdc('0x8f9')](/_validation_/g,''),_0x510112=void 0x0!==_0x24a40e[0x1][_0x34efdc('0x69c')]&&null!==_0x24a40e[0x1][_0x34efdc('0x69c')]?(_0x510112=_0x510112['replace'](/_helpline_/g,_0x24a40e[0x1][_0x34efdc('0x69c')]))[_0x34efdc('0x8f9')](/_hidden_class_help_/g,''):(_0x510112=_0x510112[_0x34efdc('0x8f9')](/_helpline_/g,''))['replace'](/_hidden_class_help_/g,_0x34efdc('0xafe')),_0x510112=void 0x0!==_0x24a40e[0x1][_0x34efdc('0x6d0')]&&null!==_0x24a40e[0x1][_0x34efdc('0x6d0')]?_0x510112[_0x34efdc('0x8f9')](/_placeholder_/g,_0x34efdc('0x5bf')['concat'](_0x24a40e[0x1][_0x34efdc('0x6d0')],'\x22')):_0x510112[_0x34efdc('0x8f9')](/_placeholder_/g,''),_0x510112=void 0x0!==_0x24a40e[0x1][_0x34efdc('0xb20')]&&null!==_0x24a40e[0x1][_0x34efdc('0xb20')]?_0x510112['replace'](/_mask_/g,'mask=\x22'[_0x34efdc('0x4c2')](_0x24a40e[0x1][_0x34efdc('0xb20')],'\x22')):_0x510112['replace'](/_mask_/g,'');}},{'key':_0x322766('0x82e'),'value':function(_0x32fa30,_0x287d4f){var _0x236b25=_0x322766,_0x478fe4='';null!=_0x287d4f&&void 0x0!==_0x287d4f&&!0x0===_0x287d4f[0x1][_0x236b25('0xcd2')]&&(void 0x0!==_0x287d4f[0x1]['null-label']&&null!=_0x287d4f[0x1][_0x236b25('0x73f')]?_0x478fe4+=_0x236b25('0xc6f')[_0x236b25('0x4c2')](this['gt'](_0x287d4f[0x1][_0x236b25('0x73f')]),_0x236b25('0xd7f')):_0x478fe4+=_0x236b25('0xddb'));var _0xc09292=[];for(var _0x1c672f in _0x32fa30)_0xc09292[_0x236b25('0xb2')](_0x32fa30[_0x1c672f]);!0x0===_0x287d4f[0x1]['sort']&&_0xc09292['sort'](function(_0x594277,_0x19c752){return(_0x594277=_0x594277[0x1])<(_0x19c752=_0x19c752[0x1])?-0x1:_0x594277>_0x19c752?0x1:0x0;});for(var _0x37537e=0x0;_0x37537e<_0xc09292[_0x236b25('0x796')];_0x37537e++){var _0x1f646b=_0xc09292[_0x37537e][0x0],_0x40788f=_0xc09292[_0x37537e][0x1],_0x2943ec=_0x236b25('0xa2b');_0x478fe4+=_0x2943ec=(_0x2943ec=_0x2943ec[_0x236b25('0x8f9')](_0x236b25('0xc2d'),_0x1f646b))[_0x236b25('0x8f9')]('_val_',this['gt'](_0x40788f));}return _0x478fe4;}},{'key':'renderFormSelectOptionsRemote','value':function(_0x58b0e3,_0x5ecfb1){var _0x18d375=_0x322766,_0x4aaa1f='';!0x0===_0x5ecfb1[0x1][_0x18d375('0xcd2')]&&(void 0x0!==_0x5ecfb1[0x1][_0x18d375('0x73f')]&&null!=_0x5ecfb1[0x1]['null-label']?_0x4aaa1f+=_0x18d375('0xc6f')[_0x18d375('0x4c2')](this['gt'](_0x5ecfb1[0x1]['null-label']),_0x18d375('0xd7f')):_0x4aaa1f+=_0x18d375('0xddb'));var _0xe72916=[];for(var _0xd49596 in _0x58b0e3)_0xe72916[_0x18d375('0xb2')]([_0xd49596,_0x58b0e3[_0xd49596]]);_0x18d375('0x868')===_0x5ecfb1[0x1][_0x18d375('0x193')]&&_0xe72916['sort'](function(_0x2b9597,_0xfbf091){return(_0x2b9597=_0x2b9597[0x1])<(_0xfbf091=_0xfbf091[0x1])?-0x1:_0x2b9597>_0xfbf091?0x1:0x0;});for(var _0x458de8=0x0;_0x458de8<_0xe72916[_0x18d375('0x796')];_0x458de8++){var _0x7a65d=_0xe72916[_0x458de8][0x0],_0xa73b37=_0xe72916[_0x458de8][0x1],_0x6fc359='_val_';_0x4aaa1f+=_0x6fc359=(_0x6fc359=_0x6fc359[_0x18d375('0x8f9')](_0x18d375('0xc2d'),_0x7a65d))[_0x18d375('0x8f9')]('_val_',this['gt'](_0xa73b37));}return _0x4aaa1f;}},{'key':'setCustomTemplates','value':function(_0xc2d946){var _0x4997ef=_0x322766;this[_0x4997ef('0x107')]=_0xc2d946;}},{'key':_0x322766('0x712'),'value':function(_0x10e023){var _0x2176f6=_0x322766;this[_0x2176f6('0x8b7')]=_0x10e023;}},{'key':_0x322766('0x910'),'value':function(_0x1ec6b8){var _0x36e9e1=_0x322766;return this[_0x36e9e1('0x107')][_0x1ec6b8];}},{'key':_0x322766('0x164'),'value':function(_0x3cc7be){this['fieldTemplates']=_0x3cc7be;}},{'key':_0x322766('0x87e'),'value':function(_0x61a659){return'';}},{'key':_0x322766('0x3be'),'value':function(){var _0x4044cc=_0x322766;this[_0x4044cc('0x747')]={};}},{'key':_0x322766('0x72c'),'value':function(){var _0x230abb=_0x322766;return this[_0x230abb('0xb03')];}},{'key':_0x322766('0x8ef'),'value':function(){return'Add\x20New';}},{'key':_0x322766('0xcb7'),'value':function(_0x338c13){var _0x5dfc4c=_0x322766;this[_0x5dfc4c('0xb03')]=_0x338c13;}},{'key':_0x322766('0x628'),'value':function(_0x5c75ee){var _0x252aa7=_0x322766;this[_0x252aa7('0xb1e')]=_0x5c75ee;}},{'key':_0x322766('0xa2f'),'value':function(_0x41920c){var _0x3a83be=_0x322766;this[_0x3a83be('0x627')]=_0x41920c;}},{'key':_0x322766('0x1eb'),'value':function(_0x1fcca4){this['showSave']=_0x1fcca4;}},{'key':_0x322766('0xaba'),'value':function(_0x5330ea){var _0x3b8c06=_0x322766;this[_0x3b8c06('0xbf1')]=_0x5330ea;}},{'key':_0x322766('0xcad'),'value':function(){return{};}},{'key':_0x322766('0x70e'),'value':function(_0x1d24cd){var _0x334d72=_0x322766;return modJs['getActionButtonsHtml'](_0x1d24cd['aData'][0x0],_0x1d24cd[_0x334d72('0x8a9')]);}},{'key':_0x322766('0x388'),'value':function(_0xc34de4,_0x5d47b6){var _0x18f113=_0x322766,_0x45c22d=_0x18f113('0xddc');return _0x45c22d=this[_0x18f113('0xb03')]?_0x45c22d[_0x18f113('0x8f9')](_0x18f113('0x461'),_0x18f113('0x8b1')):_0x45c22d['replace'](_0x18f113('0x461'),''),_0x45c22d=this[_0x18f113('0xb1e')]?_0x45c22d['replace'](_0x18f113('0xd63'),_0x18f113('0x95e')):_0x45c22d[_0x18f113('0x8f9')](_0x18f113('0xd63'),''),_0x45c22d=(_0x45c22d=(_0x45c22d=this[_0x18f113('0x627')]?_0x45c22d[_0x18f113('0x8f9')](_0x18f113('0x4c'),''):_0x45c22d['replace']('_edit_',''))[_0x18f113('0x8f9')](/_id_/g,_0xc34de4))[_0x18f113('0x8f9')](/_BASE_/g,this[_0x18f113('0xc7e')]);}},{'key':_0x322766('0x1e3'),'value':function(_0x48fcb1){var _0xf8c685=_0x322766;for(var _0x391e6b=new Date(),_0x4c47ee='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',_0x130b20='',_0x5c24dd=_0x48fcb1;_0x5c24dd>0x0;--_0x5c24dd)_0x130b20+=_0x4c47ee[Math[_0xf8c685('0x763')](Math[_0xf8c685('0xd1d')]()*(_0x4c47ee[_0xf8c685('0x796')]-0x1))];return _0x130b20+_0x391e6b[_0xf8c685('0x2f4')]();}},{'key':_0x322766('0xa94'),'value':function(_0x283071,_0x4807bd){var _0x3a18fc=_0x322766,_0x4a92ac=document['getElementById'](_0x283071),_0x9b103d='';return _0x4a92ac[_0x3a18fc('0x920')][_0x3a18fc('0x4ea')]('.')>0x0&&(_0x9b103d=_0x4a92ac['value'][_0x3a18fc('0x14c')](_0x4a92ac[_0x3a18fc('0x920')][_0x3a18fc('0x4ea')]('.')+0x1,_0x4a92ac['value'][_0x3a18fc('0x796')])),_0x9b103d=_0x9b103d[_0x3a18fc('0x2f5')](),!(_0x4807bd[_0x3a18fc('0x5c')](',')[_0x3a18fc('0xcd8')](_0x9b103d)<0x0&&(_0x4a92ac[_0x3a18fc('0x920')]='',this[_0x3a18fc('0xaab')]('File\x20Type\x20Error',_0x3a18fc('0x83c')),this[_0x3a18fc('0x5d7')](_0x283071),0x1));}},{'key':_0x322766('0x5d7'),'value':function(_0x5c1ace){var _0x1f1fad=_0x322766,_0x2eb874=$('#'[_0x1f1fad('0x4c2')](_0x5c1ace));_0x2eb874[_0x1f1fad('0xbaa')](_0x2eb874=_0x2eb874['val']('')[_0x1f1fad('0xd2c')](!0x0));}},{'key':_0x322766('0xc72'),'value':function(_0x25043d){var _0x191ca5=_0x322766;return'1'===this[_0x191ca5('0x46d')]&&(_0x25043d=window['btoa'](_0x25043d)),_0x25043d;}},{'key':'getClientDate','value':function(_0x2a9540){var _0x56fb86=_0x322766,_0x28a348=this[_0x56fb86('0x2e1')]();return _0x2a9540[_0x56fb86('0x2d2')](0x3c*_0x28a348);}},{'key':_0x322766('0x2e1'),'value':function(){var _0x27f86e=_0x322766,_0x2eae35=new Date(),_0x188e44=new Date(_0x2eae35[_0x27f86e('0x443')](),0x0,0x1,0x0,0x0,0x0,0x0),_0x27802c=_0x188e44['toGMTString']();return(_0x188e44-new Date(_0x27802c[_0x27f86e('0x14c')](0x0,_0x27802c[_0x27f86e('0x4ea')]('\x20')-0x1)))/0x36ee80;}},{'key':_0x322766('0x2d6'),'value':function(){return null;}},{'key':'showLoader','value':function(){var _0x1d70e4=_0x322766;$(_0x1d70e4('0xc74'))['show']();}},{'key':'hideLoader','value':function(){var _0x4ad66e=_0x322766;$(_0x4ad66e('0xc74'))['hide']();}},{'key':_0x322766('0xc1e'),'value':function(_0x551c04){var _0x116e02=_0x322766,_0x341c55='';for(var _0x4f78f5 in _0x551c04)_0x341c55+=_0x116e02('0x9ea')['replace'](_0x116e02('0x6d'),_0x4f78f5)[_0x116e02('0x8f9')](_0x116e02('0x5f8'),_0x551c04[_0x4f78f5]);return _0x341c55;}},{'key':'isModuleInstalled','value':function(_0x52e23b,_0x125d28){var _0x1a234b=_0x322766;return void 0x0!==modulesInstalled&&null!==modulesInstalled&&0x1===modulesInstalled[''[_0x1a234b('0x4c2')](_0x52e23b,'_')['concat'](_0x125d28)];}},{'key':'setCustomFields','value':function(_0x1ef092){var _0x181d11=_0x322766;for(var _0x1b8a5a,_0x4a4e36,_0x113ddd=0x0;_0x113ddd<_0x1ef092[_0x181d11('0x796')];_0x113ddd++)if(_0x181d11('0x89a')!==(_0x1b8a5a=_0x1ef092[_0x113ddd])[_0x181d11('0x764')]&&''!==_0x1b8a5a[_0x181d11('0x38')]&&void 0x0!==_0x1b8a5a[_0x181d11('0x38')])try{if(void 0x0===(_0x4a4e36=JSON[_0x181d11('0x22f')](_0x1b8a5a[_0x181d11('0x38')]))||null==_0x4a4e36)continue;if(0x2!==_0x4a4e36[_0x181d11('0x796')])continue;if(void 0x0===_0x4a4e36[0x1][_0x181d11('0x18b')]||null==_0x4a4e36[0x1][_0x181d11('0x18b')])continue;this[_0x181d11('0x519')][_0x181d11('0xb2')](_0x4a4e36);}catch(_0x5b75e8){}}},{'key':_0x322766('0x6eb'),'value':function(_0x1fed75){var _0x228e79=_0x322766;for(var _0x16c4f2=0x0;_0x16c4f20x0?_0x13f7b1+=_0x48cc4c[_0x58fb22('0x14c')](_0x48cc4c['length']-0x1,0x1):_0x13f7b1+=_0x2f17bf[_0x58fb22('0x14c')](0x0,0x1),_0x13f7b1+=''[_0x58fb22('0x4c2')](_0x48cc4c)[_0x58fb22('0x4c2')](_0x2f17bf)[_0x58fb22('0x5c')]('')[_0x58fb22('0x145')](function(_0x1c8a92,_0x2829fe){var _0x2b057e=_0x58fb22;return parseInt(_0x2829fe[_0x2b057e('0x149')](0x0),0xa)+_0x1c8a92;},0x0),_0x58fb22('0x7d0')[_0x58fb22('0x4c2')](_0x13f7b1,_0x58fb22('0xcf7'));}}])&&_0x9d1346(_0xac976[_0x322766('0x539')],_0x4d1325),_0x520229&&_0x9d1346(_0xac976,_0x520229),_0x23b1fd;}();_0x2080c9['default']=_0x32a03b;},{'./FormValidation':0x2c}],0x31:[function(_0x409589,_0x1f73b4,_0x18e132){var _0x1d461b=_0x1c0e;'use strict';var _0x447d63;function _0x179ac8(_0x34dfa7){var _0x1fed33=_0x1c0e;return(_0x179ac8=_0x1fed33('0xa25')==typeof Symbol&&_0x1fed33('0xb5')==typeof Symbol[_0x1fed33('0x4ae')]?function(_0x2a60dd){return typeof _0x2a60dd;}:function(_0x3d0a0c){var _0xcb5110=_0x1fed33;return _0x3d0a0c&&_0xcb5110('0xa25')==typeof Symbol&&_0x3d0a0c[_0xcb5110('0x63e')]===Symbol&&_0x3d0a0c!==Symbol['prototype']?_0xcb5110('0xb5'):typeof _0x3d0a0c;})(_0x34dfa7);}function _0x3b867a(_0x10cfc0,_0x1602a0){var _0x17b4e6=_0x1c0e;for(var _0x41179b=0x0;_0x41179b<_0x1602a0[_0x17b4e6('0x796')];_0x41179b++){var _0x23027b=_0x1602a0[_0x41179b];_0x23027b[_0x17b4e6('0xdc2')]=_0x23027b['enumerable']||!0x1,_0x23027b[_0x17b4e6('0x48d')]=!0x0,_0x17b4e6('0x920')in _0x23027b&&(_0x23027b[_0x17b4e6('0x903')]=!0x0),Object[_0x17b4e6('0x751')](_0x10cfc0,_0x23027b['key'],_0x23027b);}}function _0x5b3e2e(_0x391344,_0x5ead8a){var _0x5c00f9=_0x1c0e;return!_0x5ead8a||_0x5c00f9('0xbfd')!==_0x179ac8(_0x5ead8a)&&_0x5c00f9('0xa25')!=typeof _0x5ead8a?function(_0x1810c0){var _0x4f7999=_0x5c00f9;if(void 0x0===_0x1810c0)throw new ReferenceError(_0x4f7999('0xcf6'));return _0x1810c0;}(_0x391344):_0x5ead8a;}function _0x32cbcd(){var _0x474912=_0x1c0e;if(_0x474912('0xbfa')==typeof Reflect||!Reflect[_0x474912('0x195')])return!0x1;if(Reflect['construct'][_0x474912('0x460')])return!0x1;if(_0x474912('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x474912('0x539')][_0x474912('0x6e9')]['call'](Reflect[_0x474912('0x195')](Date,[],function(){})),!0x0;}catch(_0x9438cb){return!0x1;}}function _0x30c9f7(_0x5259e3){var _0x113189=_0x1c0e;return(_0x30c9f7=Object[_0x113189('0x489')]?Object[_0x113189('0x85e')]:function(_0x23a261){var _0x40d582=_0x113189;return _0x23a261[_0x40d582('0xcb9')]||Object[_0x40d582('0x85e')](_0x23a261);})(_0x5259e3);}function _0x5b47eb(_0x3e4301,_0x1eea4f){var _0x50f79a=_0x1c0e;return(_0x5b47eb=Object[_0x50f79a('0x489')]||function(_0x382535,_0xac1a53){var _0x311af2=_0x50f79a;return _0x382535[_0x311af2('0xcb9')]=_0xac1a53,_0x382535;})(_0x3e4301,_0x1eea4f);}Object[_0x1d461b('0x751')](_0x18e132,_0x1d461b('0x8bc'),{'value':!0x0}),_0x18e132['default']=void 0x0;var _0x5bc431=function(_0x671c75){var _0x2fbbcf=_0x1d461b;!function(_0x481f6e,_0x54c4ac){var _0x1ce164=_0x1c0e;if('function'!=typeof _0x54c4ac&&null!==_0x54c4ac)throw new TypeError(_0x1ce164('0xc4b'));_0x481f6e[_0x1ce164('0x539')]=Object[_0x1ce164('0x3e2')](_0x54c4ac&&_0x54c4ac['prototype'],{'constructor':{'value':_0x481f6e,'writable':!0x0,'configurable':!0x0}}),_0x54c4ac&&_0x5b47eb(_0x481f6e,_0x54c4ac);}(_0x1bc81b,_0x671c75);var _0x4a9c09,_0x5c20ef,_0xad2ed6,_0x51d7ec,_0xb6a278=(_0x4a9c09=_0x1bc81b,function(){var _0x2c5b1f=_0x1c0e,_0x543354,_0x301cc5=_0x30c9f7(_0x4a9c09);if(_0x32cbcd()){var _0x46c028=_0x30c9f7(this)[_0x2c5b1f('0x63e')];_0x543354=Reflect['construct'](_0x301cc5,arguments,_0x46c028);}else _0x543354=_0x301cc5[_0x2c5b1f('0x365')](this,arguments);return _0x5b3e2e(this,_0x543354);});function _0x1bc81b(_0x3ba4a4,_0x2359f8,_0x12edd5,_0x16ec74){var _0x2cecc1=_0x1c0e,_0x264892;return function(_0x70f8dd,_0x1364cb){if(!(_0x70f8dd instanceof _0x1364cb))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0x1bc81b),(_0x264892=_0xb6a278['call'](this,_0x3ba4a4,_0x2359f8,_0x12edd5,_0x16ec74))[_0x2cecc1('0x9e5')]=null,_0x264892['loadMoreButton']=null,_0x264892['start']=0x0,_0x264892[_0x2cecc1('0xab7')]=0x6,_0x264892[_0x2cecc1('0xd92')]=0x1,_0x264892[_0x2cecc1('0x1f8')]=!0x0,_0x264892[_0x2cecc1('0x833')]='',_0x264892[_0x2cecc1('0xd9a')]=null,_0x264892;}return _0x5c20ef=_0x1bc81b,(_0xad2ed6=[{'key':_0x2fbbcf('0x2a'),'value':function(_0x310933){var _0x3b3ba3=_0x2fbbcf,_0x30cc35=this['getCustomTemplate'](this[_0x3b3ba3('0xb15')]());for(var _0x8602bd in _0x310933)_0x30cc35=_0x30cc35[_0x3b3ba3('0x8f9')](new RegExp('#_'[_0x3b3ba3('0x4c2')](_0x8602bd,'_#'),'g'),_0x310933[_0x8602bd]);return _0x30cc35;}},{'key':_0x2fbbcf('0x470'),'value':function(_0x68deb0){this['pageSize']=_0x68deb0;}},{'key':_0x2fbbcf('0x9cb'),'value':function(_0x23f51a){}},{'key':_0x2fbbcf('0xb15'),'value':function(){return'';}},{'key':_0x2fbbcf('0x92'),'value':function(_0xb4ee51){var _0x118db9=_0x2fbbcf,_0x34d769=this[_0x118db9('0x775')](_0xb4ee51['id']),_0x56622b=this[_0x118db9('0x2a')](_0xb4ee51),_0x3c92a0=$(_0x56622b);void 0x0!==_0x34d769&&null!=_0x34d769?_0x34d769[_0x118db9('0x8f9')](_0x3c92a0):this[_0x118db9('0x9e5')][_0x118db9('0x4ff')](_0x3c92a0),this[_0x118db9('0x9cb')](_0x3c92a0);}},{'key':_0x2fbbcf('0x1a3'),'value':function(_0x2325a8){var _0x2339df=_0x2fbbcf;this[_0x2339df('0x9e5')]=_0x2325a8;}},{'key':'setLoadMoreButton','value':function(_0x46b1ec){var _0x15fa32=_0x2fbbcf,_0x1413f8=this;this[_0x15fa32('0x3e1')]=_0x46b1ec,this[_0x15fa32('0x3e1')][_0x15fa32('0x123')]()['on'](_0x15fa32('0x76'),function(){var _0x4faa8b=_0x15fa32;_0x1413f8[_0x4faa8b('0x3e1')][_0x4faa8b('0x7c9')](_0x4faa8b('0x34d'),_0x4faa8b('0x34d')),_0x1413f8['loadMore']([]);});}},{'key':_0x2fbbcf('0x5f7'),'value':function(_0x3ea2c4){var _0x1e2c86=_0x2fbbcf;$('#'[_0x1e2c86('0x4c2')](this[_0x1e2c86('0x316')](),_0x1e2c86('0x3c3')))[_0x1e2c86('0xd34')](_0x3ea2c4),$('#'[_0x1e2c86('0x4c2')](this[_0x1e2c86('0x316')](),_0x1e2c86('0x3c3')))[_0x1e2c86('0x462')]();}},{'key':_0x2fbbcf('0xd'),'value':function(){var _0x2dc8bc=_0x2fbbcf;$('#'[_0x2dc8bc('0x4c2')](this[_0x2dc8bc('0x316')](),_0x2dc8bc('0x3c3')))[_0x2dc8bc('0xafe')]();}},{'key':_0x2fbbcf('0xcbf'),'value':function(_0xd701e4){var _0x29b036=_0x2fbbcf,_0x104315=this;this[_0x29b036('0xd9a')]=_0xd701e4,this[_0x29b036('0xd9a')][_0x29b036('0x123')](),this[_0x29b036('0xd9a')]['keydown'](function(_0x1b3217){var _0x80f83b=_0x29b036,_0x539ba2=$(this)['val']();0xd===_0x1b3217[_0x80f83b('0x1a1')]?(_0x1b3217['preventDefault'](),_0x104315['search']([])):0x8!==_0x1b3217['which']&&0x2e!==_0x1b3217[_0x80f83b('0x1a1')]||0x1!==_0x539ba2['length']||''===_0x104315[_0x80f83b('0x833')]||_0x104315[_0x80f83b('0x7f')]([]);});}},{'key':'getObjectDom','value':function(_0x3905c0){var _0xa7cbc4=_0x2fbbcf,_0x569978=this[_0xa7cbc4('0x9e5')][_0xa7cbc4('0x11c')](_0xa7cbc4('0x26c')['concat'](_0x3905c0));return _0x569978[_0xa7cbc4('0x796')]?_0x569978:null;}},{'key':'loadMore','value':function(_0x37b18e){var _0xb92c9=_0x2fbbcf;this['hasMoreData']&&(this[_0xb92c9('0xd92')]++,this['get'](_0x37b18e,!0x0));}},{'key':_0x2fbbcf('0xda6'),'value':function(_0x5764ec,_0x3bba53){var _0x3c6cac=_0x2fbbcf,_0x17231d=this;this[_0x3c6cac('0xd')](),_0x3bba53||(this['currentPage']=0x1,null!=this['container']&&this[_0x3c6cac('0x9e5')][_0x3c6cac('0xd34')](''),this[_0x3c6cac('0x1f8')]=!0x0,this[_0x3c6cac('0x5f1')]=[]),this[_0x3c6cac('0x49a')]=(this['currentPage']-0x1)*this['pageSize'],this[_0x3c6cac('0x9e5')]=$('#'[_0x3c6cac('0x4c2')](this[_0x3c6cac('0x316')]()))[_0x3c6cac('0x11c')](_0x3c6cac('0xbe1')),_0x17231d[_0x3c6cac('0x4d9')]();var _0x3e1205=''[_0x3c6cac('0x4c2')](this[_0x3c6cac('0x59b')](_0x17231d['getDataMapping']()),_0x3c6cac('0x6f5'))[_0x3c6cac('0x4c2')](this['start'],_0x3c6cac('0x58e'))[_0x3c6cac('0x4c2')](this[_0x3c6cac('0xab7')],_0x3c6cac('0xb55'));''!==this[_0x3c6cac('0x833')]&&void 0x0!==this[_0x3c6cac('0x833')]&&null!=this['searchTerm']&&(_0x3e1205+=_0x3c6cac('0x7b2')[_0x3c6cac('0x4c2')](this[_0x3c6cac('0x833')])),$[_0x3c6cac('0x63f')](_0x3e1205,function(_0x3cb3e0){var _0x2aee21=_0x3c6cac;_0x17231d[_0x2aee21('0x1a4')](_0x5764ec,_0x3cb3e0);},'json')[_0x3c6cac('0xa60')](function(){var _0x28b7c8=_0x3c6cac;_0x17231d[_0x28b7c8('0xc42')]();}),_0x17231d[_0x3c6cac('0x44e')](),this[_0x3c6cac('0x3da')](_0x3c6cac('0xda6'),this[_0x3c6cac('0x7dd')],this['table']);}},{'key':_0x2fbbcf('0x7f'),'value':function(_0xf39674){var _0x26c04b=_0x2fbbcf;this[_0x26c04b('0x833')]=$('#'[_0x26c04b('0x4c2')](this[_0x26c04b('0x316')](),_0x26c04b('0x4fe')))[_0x26c04b('0x6ae')](),this[_0x26c04b('0xda6')](_0xf39674);}},{'key':_0x2fbbcf('0x1a4'),'value':function(_0x1e3d3a,_0x532db7){var _0x145623=_0x2fbbcf,_0x57191e=[];if(0x0!==_0x532db7['length']||''!==this['container'][_0x145623('0xd34')]()){try{null==this[_0x145623('0xba3')]()?($('#'['concat'](this[_0x145623('0x316')](),_0x145623('0xc')))[_0x145623('0xafe')](),$('#'[_0x145623('0x4c2')](this[_0x145623('0x316')](),_0x145623('0x6ba')))[_0x145623('0xafe')]()):($('#'[_0x145623('0x4c2')](this[_0x145623('0x316')](),_0x145623('0xc')))[_0x145623('0x462')](),$('#'['concat'](this[_0x145623('0x316')](),'_resetFilters'))[_0x145623('0x462')](),''!==this[_0x145623('0x19c')]&&null!=this['currentFilterString']?$('#'[_0x145623('0x4c2')](this[_0x145623('0x316')](),_0x145623('0x6ba')))[_0x145623('0xd34')](''[_0x145623('0x4c2')](this[_0x145623('0x19c')],_0x145623('0x8a'))):($('#'[_0x145623('0x4c2')](this[_0x145623('0x316')](),'_resetFilters'))[_0x145623('0xd34')](_0x145623('0xc26')),$('#'[_0x145623('0x4c2')](this[_0x145623('0x316')](),_0x145623('0x6ba')))[_0x145623('0xafe')]()));}catch(_0x2c2443){}$('#'[_0x145623('0x4c2')](this[_0x145623('0x316')]()))[_0x145623('0x11c')](_0x145623('0xc9'))[_0x145623('0x462')](),_0x532db7[_0x145623('0x796')]>this[_0x145623('0xab7')]?(this[_0x145623('0x1f8')]=!0x0,_0x532db7[_0x145623('0x6dc')](),null!==this[_0x145623('0x3e1')]&&(this[_0x145623('0x3e1')]['removeAttr']('disabled'),this[_0x145623('0x3e1')]['show']())):(this[_0x145623('0x1f8')]=!0x1,null!==this[_0x145623('0x3e1')]&&this[_0x145623('0x3e1')]['hide']()),this[_0x145623('0xc45')](this[_0x145623('0x9e5')]);for(var _0x171d5e=0x0;_0x171d5e<_0x532db7[_0x145623('0x796')];_0x171d5e++)_0x57191e[_0x145623('0xb2')](this[_0x145623('0x4fa')](_0x532db7[_0x171d5e]));if(this[_0x145623('0x980')]=_0x532db7,void 0x0!==_0x1e3d3a[_0x145623('0x76e')]&&null!=_0x1e3d3a['callBack']&&(void 0x0!==_0x1e3d3a['callBackData']&&null!=_0x1e3d3a['callBackData']||(_0x1e3d3a[_0x145623('0x61a')]=[]),_0x1e3d3a[_0x145623('0x61a')]['push'](_0x532db7),_0x1e3d3a['callBackData']['push'](_0x57191e),this[_0x145623('0x144')](_0x1e3d3a['callBack'],_0x1e3d3a[_0x145623('0x61a')])),this[_0x145623('0x5f1')]=_0x57191e,void 0x0===_0x1e3d3a[_0x145623('0x38b')]||null==_0x1e3d3a[_0x145623('0x38b')]||!0x0!==_0x1e3d3a['noRender'])for(var _0x4adfd3=0x0;_0x4adfd3<_0x57191e[_0x145623('0x796')];_0x4adfd3++)this[_0x145623('0x92')](_0x57191e[_0x4adfd3]);}else this[_0x145623('0x5f7')](_0x145623('0xac0'));}}])&&_0x3b867a(_0x5c20ef[_0x2fbbcf('0x539')],_0xad2ed6),_0x51d7ec&&_0x3b867a(_0x5c20ef,_0x51d7ec),_0x1bc81b;}(((_0x447d63=_0x409589(_0x1d461b('0xd85')))&&_0x447d63[_0x1d461b('0x8bc')]?_0x447d63:{'default':_0x447d63})[_0x1d461b('0x8fd')]);_0x18e132[_0x1d461b('0x8fd')]=_0x5bc431;},{'./AdapterBase':0x27}],0x32:[function(_0x33b79e,_0x2d1840,_0x4dd499){var _0x314377=_0x1c0e;'use strict';Object['defineProperty'](_0x4dd499,_0x314377('0x8bc'),{'value':!0x0}),_0x4dd499[_0x314377('0x8fd')]=void 0x0;var _0x427bb3=_0x4b161b(_0x33b79e(_0x314377('0x2cd'))),_0x5cb656=_0x4b161b(_0x33b79e('react-dom')),_0x2ccdfe=_0x33b79e(_0x314377('0x836')),_0x24af49=_0x33b79e(_0x314377('0x738')),_0x50afcb=_0x4b161b(_0x33b79e(_0x314377('0xd85'))),_0x526d01=_0x4b161b(_0x33b79e(_0x314377('0xca4'))),_0x1919d3=_0x4b161b(_0x33b79e('../components/IceStepFromModal')),_0xf8d1c0=_0x4b161b(_0x33b79e(_0x314377('0x9a2'))),_0x24e037=_0x4b161b(_0x33b79e('./MasterDataReader'));function _0x4b161b(_0x12d42a){var _0x38c6db=_0x314377;return _0x12d42a&&_0x12d42a[_0x38c6db('0x8bc')]?_0x12d42a:{'default':_0x12d42a};}function _0x1134f6(_0x18208d){var _0xff0c1c=_0x314377;return(_0x1134f6='function'==typeof Symbol&&_0xff0c1c('0xb5')==typeof Symbol[_0xff0c1c('0x4ae')]?function(_0x42008e){return typeof _0x42008e;}:function(_0x53571a){var _0x4a6260=_0xff0c1c;return _0x53571a&&'function'==typeof Symbol&&_0x53571a['constructor']===Symbol&&_0x53571a!==Symbol['prototype']?_0x4a6260('0xb5'):typeof _0x53571a;})(_0x18208d);}function _0x1a11ad(_0x4b98a3,_0x2a503a){return function(_0xb54861){var _0x4e917b=_0x1c0e;if(Array[_0x4e917b('0xff')](_0xb54861))return _0xb54861;}(_0x4b98a3)||function(_0x28b3c2,_0x37a746){var _0x5d501c=_0x1c0e;if(_0x5d501c('0xbfa')==typeof Symbol||!(Symbol[_0x5d501c('0x4ae')]in Object(_0x28b3c2)))return;var _0x1f8445=[],_0x3049df=!0x0,_0x504205=!0x1,_0x278141=void 0x0;try{for(var _0x184d0e,_0x17b2cd=_0x28b3c2[Symbol['iterator']]();!(_0x3049df=(_0x184d0e=_0x17b2cd[_0x5d501c('0x998')]())[_0x5d501c('0xa9a')])&&(_0x1f8445[_0x5d501c('0xb2')](_0x184d0e[_0x5d501c('0x920')]),!_0x37a746||_0x1f8445[_0x5d501c('0x796')]!==_0x37a746);_0x3049df=!0x0);}catch(_0x534e61){_0x504205=!0x0,_0x278141=_0x534e61;}finally{try{_0x3049df||null==_0x17b2cd[_0x5d501c('0xd9e')]||_0x17b2cd[_0x5d501c('0xd9e')]();}finally{if(_0x504205)throw _0x278141;}}return _0x1f8445;}(_0x4b98a3,_0x2a503a)||function(_0x32a0c7,_0x534324){var _0x49b732=_0x1c0e;if(!_0x32a0c7)return;if('string'==typeof _0x32a0c7)return _0x16d67d(_0x32a0c7,_0x534324);var _0x23711e=Object['prototype'][_0x49b732('0x6e9')]['call'](_0x32a0c7)[_0x49b732('0x5fe')](0x8,-0x1);'Object'===_0x23711e&&_0x32a0c7[_0x49b732('0x63e')]&&(_0x23711e=_0x32a0c7['constructor'][_0x49b732('0xce')]);if('Map'===_0x23711e||'Set'===_0x23711e)return Array[_0x49b732('0x40e')](_0x23711e);if(_0x49b732('0x666')===_0x23711e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/['test'](_0x23711e))return _0x16d67d(_0x32a0c7,_0x534324);}(_0x4b98a3,_0x2a503a)||function(){var _0x39f444=_0x1c0e;throw new TypeError(_0x39f444('0x623'));}();}function _0x16d67d(_0xec1742,_0x34a7ba){(null==_0x34a7ba||_0x34a7ba>_0xec1742['length'])&&(_0x34a7ba=_0xec1742['length']);for(var _0x20e6c2=0x0,_0x5f3492=new Array(_0x34a7ba);_0x20e6c2<_0x34a7ba;_0x20e6c2++)_0x5f3492[_0x20e6c2]=_0xec1742[_0x20e6c2];return _0x5f3492;}function _0x1634c4(_0x5a8963,_0x4bf5e7){var _0xb669=_0x314377;for(var _0x7d0a5c=0x0;_0x7d0a5c<_0x4bf5e7[_0xb669('0x796')];_0x7d0a5c++){var _0x1ce5c5=_0x4bf5e7[_0x7d0a5c];_0x1ce5c5[_0xb669('0xdc2')]=_0x1ce5c5[_0xb669('0xdc2')]||!0x1,_0x1ce5c5[_0xb669('0x48d')]=!0x0,_0xb669('0x920')in _0x1ce5c5&&(_0x1ce5c5['writable']=!0x0),Object[_0xb669('0x751')](_0x5a8963,_0x1ce5c5['key'],_0x1ce5c5);}}function _0x3bc41d(_0x1b8239,_0x2fdec2,_0x710a0){var _0x1a0e97=_0x314377;return _0x2fdec2&&_0x1634c4(_0x1b8239[_0x1a0e97('0x539')],_0x2fdec2),_0x710a0&&_0x1634c4(_0x1b8239,_0x710a0),_0x1b8239;}function _0x50132c(_0x504f6d,_0x591401){var _0x56f3fb=_0x314377;return!_0x591401||'object'!==_0x1134f6(_0x591401)&&_0x56f3fb('0xa25')!=typeof _0x591401?_0x1676c7(_0x504f6d):_0x591401;}function _0x1676c7(_0x5ee8fd){var _0x31b229=_0x314377;if(void 0x0===_0x5ee8fd)throw new ReferenceError(_0x31b229('0xcf6'));return _0x5ee8fd;}function _0x3eeadc(){var _0x529eaf=_0x314377;if(_0x529eaf('0xbfa')==typeof Reflect||!Reflect[_0x529eaf('0x195')])return!0x1;if(Reflect[_0x529eaf('0x195')][_0x529eaf('0x460')])return!0x1;if(_0x529eaf('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x529eaf('0x539')]['toString']['call'](Reflect[_0x529eaf('0x195')](Date,[],function(){})),!0x0;}catch(_0x42ebc7){return!0x1;}}function _0x956b65(_0x1ae65b){var _0x3625f8=_0x314377;return(_0x956b65=Object['setPrototypeOf']?Object[_0x3625f8('0x85e')]:function(_0x357b73){var _0x4e968e=_0x3625f8;return _0x357b73[_0x4e968e('0xcb9')]||Object['getPrototypeOf'](_0x357b73);})(_0x1ae65b);}function _0x2d4dce(_0x2731ce,_0x4e8bd4){var _0x349ed4=_0x314377;return(_0x2d4dce=Object[_0x349ed4('0x489')]||function(_0x1b3efc,_0x3a81c4){var _0x42fa03=_0x349ed4;return _0x1b3efc[_0x42fa03('0xcb9')]=_0x3a81c4,_0x1b3efc;})(_0x2731ce,_0x4e8bd4);}var _0x237d91=function(_0x587726){var _0x4877ca=_0x314377;!function(_0x444be1,_0x3614d7){var _0x373c35=_0x1c0e;if(_0x373c35('0xa25')!=typeof _0x3614d7&&null!==_0x3614d7)throw new TypeError(_0x373c35('0xc4b'));_0x444be1['prototype']=Object['create'](_0x3614d7&&_0x3614d7[_0x373c35('0x539')],{'constructor':{'value':_0x444be1,'writable':!0x0,'configurable':!0x0}}),_0x3614d7&&_0x2d4dce(_0x444be1,_0x3614d7);}(_0x21a354,_0x587726);var _0x32ea05,_0x278f58=(_0x32ea05=_0x21a354,function(){var _0x432a72=_0x1c0e,_0x11eb0b,_0x21a0c9=_0x956b65(_0x32ea05);if(_0x3eeadc()){var _0x46c830=_0x956b65(this)[_0x432a72('0x63e')];_0x11eb0b=Reflect[_0x432a72('0x195')](_0x21a0c9,arguments,_0x46c830);}else _0x11eb0b=_0x21a0c9['apply'](this,arguments);return _0x50132c(this,_0x11eb0b);});function _0x21a354(_0x577ab4,_0x2b03fb,_0x1f9104,_0x4c2b0e){var _0x5d47c6=_0x1c0e,_0x17d122;return function(_0xff12da,_0x57f457){var _0xdf995=_0x1c0e;if(!(_0xff12da instanceof _0x57f457))throw new TypeError(_0xdf995('0x9a0'));}(this,_0x21a354),(_0x17d122=_0x278f58[_0x5d47c6('0x964')](this,_0x577ab4,_0x2b03fb,_0x1f9104,_0x4c2b0e))['modalType']=_0x17d122['MODAL_TYPE_NORMAL'],_0x17d122[_0x5d47c6('0xc9c')]=null,_0x17d122['formInitialized']=!0x1,_0x17d122[_0x5d47c6('0x53f')]=!0x1,_0x17d122['access']=[],_0x17d122[_0x5d47c6('0x9ad')]=!0x1,_0x17d122[_0x5d47c6('0x6cd')]=!0x0,_0x17d122[_0x5d47c6('0x9b3')]=new _0x24e037['default'](_0x1676c7(_0x17d122)),_0x17d122;}return _0x3bc41d(_0x21a354,null,[{'key':'MODAL_TYPE_NORMAL','get':function(){var _0x544ed3=_0x1c0e;return _0x544ed3('0xa50');}},{'key':_0x4877ca('0x4a3'),'get':function(){var _0x23ae9c=_0x4877ca;return _0x23ae9c('0x384');}}]),_0x3bc41d(_0x21a354,[{'key':_0x4877ca('0x75c'),'value':function(){var _0x4b9af2=_0x4877ca;this[_0x4b9af2('0x9ad')]=!0x0;}},{'key':'setModalType','value':function(_0x6027c1){this['modalType']=_0x6027c1;}},{'key':_0x4877ca('0x830'),'value':function(_0x3be2a5){this['dataPipe']=_0x3be2a5;}},{'key':_0x4877ca('0x2bd'),'value':function(_0x546279){this['access']=_0x546279;}},{'key':_0x4877ca('0x4dc'),'value':function(_0x503c94){var _0x2f644f=_0x4877ca;return this[_0x2f644f('0x108')][_0x2f644f('0xcd8')](_0x503c94)>0x0;}},{'key':'hasCustomButtons','value':function(){return!0x1;}},{'key':_0x4877ca('0x6e3'),'value':function(){var _0x51010f=_0x4877ca,_0x25e7a7=this;if(this[_0x51010f('0x53f')])return!0x1;var _0x10b942=document[_0x51010f('0x56a')](''['concat'](this[_0x51010f('0x7dd')],_0x51010f('0xb3f')));if(_0x10b942){this['tableContainer']=_0x427bb3[_0x51010f('0x8fd')]['createRef']();var _0x20eafe=this[_0x51010f('0xb6f')]();(this[_0x51010f('0x4dc')]('save')||this['hasAccess'](_0x51010f('0xcf1'))||this[_0x51010f('0x4dc')](_0x51010f('0xe8'))||this[_0x51010f('0xadb')]())&&_0x20eafe[_0x51010f('0xb2')]({'title':_0x51010f('0xb12'),'key':_0x51010f('0x93a'),'render':this['getTableActionButtonJsx'](this)}),_0x20eafe=_0x20eafe[_0x51010f('0xc78')](function(_0xb4af9d){var _0x25f467=_0x51010f;return _0xb4af9d['title']=_0x25e7a7['gt'](_0xb4af9d[_0x25f467('0xd93')]),_0xb4af9d;}),_0x5cb656[_0x51010f('0x8fd')]['render'](_0x427bb3[_0x51010f('0x8fd')][_0x51010f('0x6b7')](_0xf8d1c0[_0x51010f('0x8fd')],{'ref':this[_0x51010f('0x1c0')],'reader':this['dataPipe'],'columns':_0x20eafe,'adapter':this},this[_0x51010f('0x79d')]()),_0x10b942);}return this[_0x51010f('0x53f')]=!0x0,!0x0;}},{'key':_0x4877ca('0x9cc'),'value':function(){var _0x2004fc=_0x4877ca,_0x1c46a2=this;if(this[_0x2004fc('0x7f4')])return!0x1;this[_0x2004fc('0x992')]=_0x427bb3[_0x2004fc('0x8fd')]['createRef'](),this[_0x2004fc('0x80e')]===this[_0x2004fc('0x8e3')]?_0x5cb656[_0x2004fc('0x8fd')]['render'](_0x427bb3[_0x2004fc('0x8fd')]['createElement'](_0x526d01[_0x2004fc('0x8fd')],{'ref':this[_0x2004fc('0x992')],'fields':this[_0x2004fc('0x73d')](),'adapter':this,'formReference':this[_0x2004fc('0x98')]}),document[_0x2004fc('0x56a')](''[_0x2004fc('0x4c2')](this[_0x2004fc('0x7dd')],'Form'))):_0x5cb656[_0x2004fc('0x8fd')][_0x2004fc('0x358')](_0x427bb3[_0x2004fc('0x8fd')][_0x2004fc('0x6b7')](_0x1919d3['default'],{'ref':this[_0x2004fc('0x992')],'fields':this[_0x2004fc('0xab1')](),'adapter':this,'formReference':this['formReference']}),document[_0x2004fc('0x56a')](''[_0x2004fc('0x4c2')](this[_0x2004fc('0x7dd')],_0x2004fc('0x805'))));var _0x16f38b=document[_0x2004fc('0x56a')](''['concat'](this[_0x2004fc('0x7dd')],'FilterForm'));return _0x16f38b&&this[_0x2004fc('0xba3')]()&&(this['filtersContainer']=_0x427bb3[_0x2004fc('0x8fd')]['createRef'](),_0x5cb656[_0x2004fc('0x8fd')]['render'](_0x427bb3[_0x2004fc('0x8fd')][_0x2004fc('0x6b7')](_0x526d01[_0x2004fc('0x8fd')],{'ref':this[_0x2004fc('0x22')],'fields':this[_0x2004fc('0xba3')](),'adapter':this,'saveCallback':function(_0x4ead51,_0x41c3b1,_0x4d223b){var _0x199ff3=_0x2004fc;_0x1c46a2[_0x199ff3('0xc68')](_0x4ead51),_0x1c46a2['filtersAlreadySet']=!0x0,_0x1c46a2[_0x199ff3('0xda6')]([]),_0x1c46a2['tableContainer'][_0x199ff3('0xaf8')]['setFilterData'](_0x4ead51),_0x4d223b();}}),_0x16f38b)),this[_0x2004fc('0x7f4')]=!0x0,!0x0;}},{'key':_0x4877ca('0x79d'),'value':function(){return!0x1;}},{'key':_0x4877ca('0x5d5'),'value':function(){this['viewElement'](this['currentId']);}},{'key':_0x4877ca('0x1df'),'value':function(_0x3af02a){return function(_0xbeda5c,_0x355857){var _0x2037d3=_0x1c0e;return _0x427bb3[_0x2037d3('0x8fd')][_0x2037d3('0x6b7')](_0x2ccdfe['Space'],{'size':_0x2037d3('0x163')},_0x3af02a[_0x2037d3('0x4dc')](_0x2037d3('0x18d'))&&_0x3af02a[_0x2037d3('0x627')]&&_0x427bb3[_0x2037d3('0x8fd')][_0x2037d3('0x6b7')](_0x2ccdfe[_0x2037d3('0x70a')],{'color':'green','onClick':function(){return modJs['edit'](_0x355857['id']);},'style':{'cursor':_0x2037d3('0xa4b')}},_0x427bb3[_0x2037d3('0x8fd')][_0x2037d3('0x6b7')](_0x24af49[_0x2037d3('0xbd9')],null),'\x20'[_0x2037d3('0x4c2')](_0x3af02a['gt'](_0x2037d3('0x753')))),_0x3af02a[_0x2037d3('0x4dc')](_0x2037d3('0xe8'))&&_0x427bb3[_0x2037d3('0x8fd')]['createElement'](_0x2ccdfe[_0x2037d3('0x70a')],{'color':'blue','onClick':function(){var _0x57498e=_0x2037d3;return modJs[_0x57498e('0x97b')](_0x355857['id']);},'style':{'cursor':'pointer'}},_0x427bb3['default']['createElement'](_0x24af49[_0x2037d3('0x1f6')],null),'\x20'['concat'](_0x3af02a['gt'](_0x2037d3('0xa48')))),_0x3af02a[_0x2037d3('0x4dc')](_0x2037d3('0xcf1'))&&_0x3af02a[_0x2037d3('0xb1e')]&&_0x427bb3['default'][_0x2037d3('0x6b7')](_0x2ccdfe[_0x2037d3('0x70a')],{'color':_0x2037d3('0x604'),'onClick':function(){return modJs['deleteRow'](_0x355857['id']);},'style':{'cursor':_0x2037d3('0xa4b')}},_0x427bb3[_0x2037d3('0x8fd')][_0x2037d3('0x6b7')](_0x24af49['DeleteOutlined'],null),'\x20'[_0x2037d3('0x4c2')](_0x3af02a['gt']('Delete'))),_0x3af02a[_0x2037d3('0x4dc')](_0x2037d3('0x18d'))&&_0x427bb3[_0x2037d3('0x8fd')][_0x2037d3('0x6b7')](_0x2ccdfe['Tag'],{'color':_0x2037d3('0x957'),'onClick':function(){var _0x25f974=_0x2037d3;return modJs[_0x25f974('0x7f2')](_0x355857['id']);},'style':{'cursor':_0x2037d3('0xa4b')}},_0x427bb3[_0x2037d3('0x8fd')][_0x2037d3('0x6b7')](_0x24af49['CopyOutlined'],null),'\x20'['concat'](_0x3af02a['gt']('Copy'))));};}},{'key':_0x4877ca('0x36a'),'value':function(_0x332d41){var _0x5671c0=_0x4877ca;this[_0x5671c0('0x1c0')]['current'][_0x5671c0('0x401')](_0x332d41);}},{'key':'viewElement','value':function(_0x55b0b2){var _0x41cff1=_0x4877ca,_0x4d3bfd=this;this['setTableLoading'](!0x0),this[_0x41cff1('0x3a')]=_0x55b0b2,this[_0x41cff1('0xd2e')](_0x55b0b2,{'noRender':!0x0,'callBack':function(_0x2db125){var _0x1cee6d=_0x41cff1;_0x4d3bfd[_0x1cee6d('0x7f9')](_0x2db125),_0x4d3bfd[_0x1cee6d('0x36a')](!0x1);}});}},{'key':_0x4877ca('0x7f9'),'value':function(_0x3e1752){var _0x41890b=_0x4877ca;this[_0x41890b('0xf8')](_0x3e1752,!0x0);}},{'key':_0x4877ca('0xaf0'),'value':function(_0x899903){var _0x3e5eb3=_0x4877ca;this[_0x3e5eb3('0x36a')](!0x0),this[_0x3e5eb3('0x3a')]=_0x899903,this[_0x3e5eb3('0xd2e')](_0x899903,[]);}},{'key':_0x4877ca('0xf8'),'value':function(){var _0x238f99=_0x4877ca,_0x52874d=arguments['length']>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:null,_0x1c99d=arguments[_0x238f99('0x796')]>0x1&&void 0x0!==arguments[0x1]&&arguments[0x1];null==_0x52874d&&(this[_0x238f99('0x3a')]=null,this[_0x238f99('0x32c')]=null),this[_0x238f99('0x36a')](!0x1),this[_0x238f99('0x9cc')](),this['formContainer']['current'][_0x238f99('0xa1e')](_0x1c99d),this['formContainer'][_0x238f99('0xaf8')]['show'](_0x52874d);}},{'key':_0x4877ca('0xe3'),'value':function(){var _0x11e02e=_0x4877ca;this['initForm'](),this['filtersContainer'][_0x11e02e('0xaf8')]['show'](this[_0x11e02e('0x774')]);}},{'key':'resetFilters','value':function(){var _0xebc2b6=_0x4877ca;this[_0xebc2b6('0x774')]=this[_0xebc2b6('0xc5a')],this[_0xebc2b6('0x45f')]=!0x1,this['currentFilterString']='',this[_0xebc2b6('0xda6')]([]),this[_0xebc2b6('0x1c0')][_0xebc2b6('0xaf8')][_0xebc2b6('0xad1')](this[_0xebc2b6('0x774')]);}},{'key':_0x4877ca('0xda6'),'value':function(){var _0x23f52b=_0x4877ca,_0x56964e=this;this[_0x23f52b('0x1c0')]&&this[_0x23f52b('0x1c0')]['current']&&this['tableContainer'][_0x23f52b('0xaf8')][_0x23f52b('0xa8d')](null),this[_0x23f52b('0x6e3')](),this[_0x23f52b('0x9b3')]['updateAllMasterData']()[_0x23f52b('0x13b')](function(){var _0x45682f=_0x23f52b;_0x56964e[_0x45682f('0x1c0')][_0x45682f('0xaf8')][_0x45682f('0x57e')]();}),this[_0x23f52b('0x3da')]('get',this['tab'],this[_0x23f52b('0xa5d')]);}},{'key':_0x4877ca('0x4d9'),'value':function(){}},{'key':_0x4877ca('0x202'),'value':function(_0x49a426,_0x10bb26){var _0x8b406=_0x4877ca;return _0x49a426[_0x8b406('0xc78')](function(_0x943b5a){return _0x943b5a['fields']=_0x943b5a['fields']['reduce'](function(_0x1aaa10,_0x4798ae){var _0x2a8e37=_0x1c0e,_0xc0eac1=_0x10bb26[_0x2a8e37('0x11c')](function(_0x588c25){return _0x1a11ad(_0x588c25,0x1)[0x0]===_0x4798ae;});return _0xc0eac1&&_0x1aaa10[_0x2a8e37('0xb2')](_0xc0eac1),_0x1aaa10;},[]),_0x943b5a;});}},{'key':_0x4877ca('0x4e3'),'value':function(){return{'width':0x400,'twoColumnLayout':!0x1};}}]),_0x21a354;}(_0x50afcb[_0x314377('0x8fd')]);_0x4dd499[_0x314377('0x8fd')]=_0x237d91;},{'../components/IceFormModal':0x37,'../components/IceStepFromModal':0x3c,'../components/IceTable':0x3d,'./AdapterBase':0x27,'./MasterDataReader':0x2f,'@ant-design/icons':_0x38d28e('0x738'),'antd':'antd','react':_0x38d28e('0x2cd'),'react-dom':_0x38d28e('0xa')}],0x33:[function(_0x203750,_0x160757,_0x194bc1){var _0x4ec623=_0x38d28e;'use strict';var _0x11dfaa;function _0x207a64(_0x4169e6){var _0x3fc456=_0x1c0e;return(_0x207a64=_0x3fc456('0xa25')==typeof Symbol&&_0x3fc456('0xb5')==typeof Symbol['iterator']?function(_0x49db68){return typeof _0x49db68;}:function(_0x34fbe3){var _0x247f99=_0x3fc456;return _0x34fbe3&&'function'==typeof Symbol&&_0x34fbe3[_0x247f99('0x63e')]===Symbol&&_0x34fbe3!==Symbol[_0x247f99('0x539')]?_0x247f99('0xb5'):typeof _0x34fbe3;})(_0x4169e6);}function _0x103b5b(_0xbc2f5a,_0x2e0fd4){var _0x3c04c3=_0x1c0e;for(var _0x1a4a44=0x0;_0x1a4a44<_0x2e0fd4[_0x3c04c3('0x796')];_0x1a4a44++){var _0x3cee07=_0x2e0fd4[_0x1a4a44];_0x3cee07[_0x3c04c3('0xdc2')]=_0x3cee07[_0x3c04c3('0xdc2')]||!0x1,_0x3cee07[_0x3c04c3('0x48d')]=!0x0,'value'in _0x3cee07&&(_0x3cee07[_0x3c04c3('0x903')]=!0x0),Object['defineProperty'](_0xbc2f5a,_0x3cee07[_0x3c04c3('0x3ba')],_0x3cee07);}}function _0x2e4bd4(_0x3e3f0f,_0x396cc9){var _0x45ed9c=_0x1c0e;return!_0x396cc9||_0x45ed9c('0xbfd')!==_0x207a64(_0x396cc9)&&_0x45ed9c('0xa25')!=typeof _0x396cc9?function(_0x3e9f89){var _0x37deea=_0x45ed9c;if(void 0x0===_0x3e9f89)throw new ReferenceError(_0x37deea('0xcf6'));return _0x3e9f89;}(_0x3e3f0f):_0x396cc9;}function _0x26e437(){var _0x4ea606=_0x1c0e;if(_0x4ea606('0xbfa')==typeof Reflect||!Reflect[_0x4ea606('0x195')])return!0x1;if(Reflect['construct'][_0x4ea606('0x460')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date[_0x4ea606('0x539')][_0x4ea606('0x6e9')][_0x4ea606('0x964')](Reflect[_0x4ea606('0x195')](Date,[],function(){})),!0x0;}catch(_0x29f12f){return!0x1;}}function _0x18e31f(_0x1bf36c){var _0x478e61=_0x1c0e;return(_0x18e31f=Object[_0x478e61('0x489')]?Object[_0x478e61('0x85e')]:function(_0x8291d0){var _0x5b53da=_0x478e61;return _0x8291d0[_0x5b53da('0xcb9')]||Object[_0x5b53da('0x85e')](_0x8291d0);})(_0x1bf36c);}function _0x586148(_0x5a352d,_0x5b2654){var _0x41e2ac=_0x1c0e;return(_0x586148=Object[_0x41e2ac('0x489')]||function(_0x555638,_0x4cbf6b){var _0x187ce1=_0x41e2ac;return _0x555638[_0x187ce1('0xcb9')]=_0x4cbf6b,_0x555638;})(_0x5a352d,_0x5b2654);}Object['defineProperty'](_0x194bc1,'__esModule',{'value':!0x0}),_0x194bc1[_0x4ec623('0x8fd')]=void 0x0;var _0x4576e1=function(_0x39a790){var _0x19cabc=_0x4ec623;!function(_0xa4bb7e,_0x414f4a){var _0x352272=_0x1c0e;if('function'!=typeof _0x414f4a&&null!==_0x414f4a)throw new TypeError(_0x352272('0xc4b'));_0xa4bb7e[_0x352272('0x539')]=Object[_0x352272('0x3e2')](_0x414f4a&&_0x414f4a[_0x352272('0x539')],{'constructor':{'value':_0xa4bb7e,'writable':!0x0,'configurable':!0x0}}),_0x414f4a&&_0x586148(_0xa4bb7e,_0x414f4a);}(_0x11cbe6,_0x39a790);var _0x336463,_0x1fdc61,_0x5ab7a9,_0x31d093,_0x31f994=(_0x336463=_0x11cbe6,function(){var _0x298885=_0x1c0e,_0x56f4c1,_0x39327e=_0x18e31f(_0x336463);if(_0x26e437()){var _0x33a3ef=_0x18e31f(this)['constructor'];_0x56f4c1=Reflect['construct'](_0x39327e,arguments,_0x33a3ef);}else _0x56f4c1=_0x39327e[_0x298885('0x365')](this,arguments);return _0x2e4bd4(this,_0x56f4c1);});function _0x11cbe6(_0x1f92d7,_0x35405f,_0xb3598a,_0x2ac274){var _0x32df66=_0x1c0e,_0x2ce14c;return function(_0x1e54f1,_0x48da5b){var _0x57be00=_0x1c0e;if(!(_0x1e54f1 instanceof _0x48da5b))throw new TypeError(_0x57be00('0x9a0'));}(this,_0x11cbe6),(_0x2ce14c=_0x31f994[_0x32df66('0x964')](this,_0x1f92d7,_0x35405f,_0xb3598a,_0x2ac274))['cellDataUpdates']={},_0x2ce14c[_0x32df66('0x21a')]='',_0x2ce14c['rowFieldName']='',_0x2ce14c['columnFieldName']='',_0x2ce14c[_0x32df66('0x754')]='',_0x2ce14c[_0x32df66('0xd89')]='',_0x2ce14c[_0x32df66('0x812')]='',_0x2ce14c[_0x32df66('0xa6a')]=[],_0x2ce14c[_0x32df66('0x1c5')]={},_0x2ce14c;}return _0x1fdc61=_0x11cbe6,(_0x5ab7a9=[{'key':_0x19cabc('0x593'),'value':function(_0x5b6d43){var _0x5f0e90=_0x19cabc;this[_0x5f0e90('0x21a')]=_0x5b6d43;}},{'key':'setRowFieldName','value':function(_0xcdb0ed){var _0x13790b=_0x19cabc;this[_0x13790b('0x904')]=_0xcdb0ed;}},{'key':_0x19cabc('0xc28'),'value':function(_0x5bf836,_0x15aba0,_0x32267e){var _0x5d8f63=_0x19cabc;this[_0x5d8f63('0x754')]=_0x5bf836,this[_0x5d8f63('0xd89')]=_0x15aba0,this[_0x5d8f63('0x812')]=_0x32267e;}},{'key':'setColumnFieldName','value':function(_0x56cb64){var _0x4f9fd6=_0x19cabc;this[_0x4f9fd6('0x89f')]=_0x56cb64;}},{'key':_0x19cabc('0x433'),'value':function(){return[];}},{'key':_0x19cabc('0x73d'),'value':function(){return[];}},{'key':'get','value':function(){var _0x5c8147=_0x19cabc;this[_0x5c8147('0xc9f')]();}},{'key':_0x19cabc('0xc9f'),'value':function(_0x27607e){var _0xd0a22c=_0x19cabc,_0x220939={};_0x220939[_0xd0a22c('0x754')]=this[_0xd0a22c('0x754')],_0x220939['columnTable']=this[_0xd0a22c('0xd89')],_0x220939[_0xd0a22c('0x812')]=this['valueTable'],(_0x220939=this[_0xd0a22c('0x7bc')](_0xd0a22c('0xc9f'),_0x220939))[_0xd0a22c('0x18d')]=void 0x0===_0x27607e||null==_0x27607e||!0x1===_0x27607e?0x0:0x1;var _0x517cf6=JSON[_0xd0a22c('0xaae')](_0x220939),_0x29f243=[];_0x29f243[_0xd0a22c('0x61a')]=[],_0x29f243['callBackSuccess']='getAllDataSuccessCallBack',_0x29f243[_0xd0a22c('0xd61')]=_0xd0a22c('0x5bc'),this[_0xd0a22c('0xca3')](_0xd0a22c('0xc9f'),this['modulePath'],_0x517cf6,_0x29f243);}},{'key':'getDataItem','value':function(_0x36fc4b,_0x336271,_0x3b57c4){var _0xada069=_0x19cabc,_0x59c0d7=_0x3b57c4[0x1],_0x434c3d=_0x3b57c4[0x0],_0x509fd8=_0x3b57c4[0x2];return-0x1===_0x336271?_0x434c3d[_0x36fc4b][_0xada069('0xce')]:this[_0xada069('0x7e6')](this[_0xada069('0x904')],_0x434c3d[_0x36fc4b]['id'],this[_0xada069('0x89f')],_0x59c0d7[_0x336271]['id'],_0x509fd8);}},{'key':_0x19cabc('0x7e6'),'value':function(_0x4f7450,_0x244317,_0x1e60bf,_0x1850c1,_0x5ec765){var _0x1d740f=_0x19cabc;for(var _0x7323b9=0x0;_0x7323b9<_0x5ec765[_0x1d740f('0x796')];_0x7323b9++)if(_0x5ec765[_0x7323b9][_0x4f7450]===_0x244317&&_0x5ec765[_0x7323b9][_0x1e60bf]===_0x1850c1)return void 0x0!==_0x5ec765[_0x7323b9][_0x1d740f('0x532')]&&null!=_0x5ec765[_0x7323b9][_0x1d740f('0x532')]?_0x5ec765[_0x7323b9][_0x1d740f('0x532')]:'';return'';}},{'key':'getAllDataSuccessCallBack','value':function(_0x27c1c9){var _0x1bebfe=_0x19cabc;for(var _0x55c7df=_0x27c1c9[0x2],_0x1d4de0=_0x27c1c9[0x1],_0x44a3e4=_0x27c1c9[0x0],_0x4bd020=[],_0x7f5e3f=0x0;_0x7f5e3f<_0x44a3e4[_0x1bebfe('0x796')];_0x7f5e3f++){for(var _0x24a9b4=[],_0x521401=-0x1;_0x521401<_0x1d4de0['length'];_0x521401++)_0x24a9b4[_0x521401+0x1]=this[_0x1bebfe('0xa4c')](_0x7f5e3f,_0x521401,_0x27c1c9);_0x4bd020[_0x1bebfe('0xb2')](this[_0x1bebfe('0x4fa')](_0x24a9b4));}this['sourceData']=_0x55c7df,this['tableData']=_0x4bd020,this[_0x1bebfe('0xbcd')](_0x1d4de0,_0x44a3e4),this[_0x1bebfe('0x595')](this[_0x1bebfe('0x316')]()),$('#'[_0x1bebfe('0x4c2')](this[_0x1bebfe('0x316')](),_0x1bebfe('0x805')))[_0x1bebfe('0xafe')](),$('#'[_0x1bebfe('0x4c2')](this['getTableName']()))[_0x1bebfe('0x462')](),this[_0x1bebfe('0xa6a')]=[];for(var _0x3a11b0=[],_0x4b9671=0x0;_0x4b9671<_0x1d4de0[_0x1bebfe('0x796')];_0x4b9671++)_0x3a11b0[_0x1bebfe('0xb2')](_0x1d4de0[_0x4b9671]['name']);_0x3a11b0=this[_0x1bebfe('0x8c')](_0x3a11b0),this[_0x1bebfe('0xa6a')][_0x1bebfe('0xb2')](_0x3a11b0);for(var _0x4e79c7=0x0;_0x4e79c7<_0x4bd020[_0x1bebfe('0x796')];_0x4e79c7++)this[_0x1bebfe('0xa6a')][_0x1bebfe('0xb2')](_0x4bd020[_0x4e79c7]);}},{'key':_0x19cabc('0x8c'),'value':function(_0x4f5694){return _0x4f5694;}},{'key':'getAllDataFailCallBack','value':function(_0x36b407,_0x575d1a){}},{'key':'setHeaders','value':function(_0x1d2407,_0x14a14c){var _0x485e83=_0x19cabc,_0x11f38e=[];_0x11f38e[_0x485e83('0xb2')]({'sTitle':'','sWidth':'180px;'});var _0x4d8c9a='';this['columnIDMap']={};for(var _0x45b8fe=0x0;_0x45b8fe<_0x1d2407[_0x485e83('0x796')];_0x45b8fe++)this[_0x485e83('0x1c5')][_0x1d2407[_0x45b8fe]['id']]=_0x45b8fe,_0x4d8c9a=void 0x0===_0x1d2407[_0x45b8fe]['editable']||null==_0x1d2407[_0x45b8fe]['editable']||_0x485e83('0x915')===_0x1d2407[_0x45b8fe][_0x485e83('0x81f')]?'editcell':'',_0x11f38e[_0x485e83('0xb2')]({'sTitle':_0x1d2407[_0x45b8fe][_0x485e83('0xce')],'sClass':_0x4d8c9a,'fnCreatedCell':function(_0x429f76,_0x56c416,_0x9777c2,_0x1edc76,_0x379fde){var _0x981525=_0x485e83;$(_0x429f76)[_0x981525('0x38')](_0x981525('0x734'),_0x1d2407[_0x379fde-0x1]['id']),$(_0x429f76)[_0x981525('0x38')](_0x981525('0x502'),_0x14a14c[_0x1edc76]['id']);}});this[_0x485e83('0x4cd')]=_0x11f38e;}},{'key':_0x19cabc('0x445'),'value':function(){return this['headers'];}},{'key':_0x19cabc('0x595'),'value':function(_0x3943ac){var _0x1d905a=_0x19cabc,_0x3b40af,_0x3c83f4=this[_0x1d905a('0x37d')](),_0x10b382=this[_0x1d905a('0x445')]();if(this[_0x1d905a('0x6be')]()&&_0x10b382[_0x1d905a('0xb2')]({'sTitle':'','sClass':_0x1d905a('0x238')}),this['showActionButtons']())for(var _0x5f318d=0x0;_0x5f318d<_0x3c83f4[_0x1d905a('0x796')];_0x5f318d++)_0x3c83f4[_0x5f318d][_0x1d905a('0xb2')](this[_0x1d905a('0x388')](_0x3c83f4[_0x5f318d][0x0],_0x3c83f4[_0x5f318d]));_0x3b40af=''['concat'](this[_0x1d905a('0x513')](),_0x1d905a('0xcd3'));var _0x17e95e=$('#'[_0x1d905a('0x4c2')](_0x3943ac,_0x1d905a('0xcfe')))[_0x1d905a('0xd34')](),_0x1720bd=0x0;void 0x0!==_0x17e95e&&null!=_0x17e95e&&(_0x1720bd=0xf*parseInt(_0x17e95e,0xa)-0xf),$('#'[_0x1d905a('0x4c2')](_0x3943ac))[_0x1d905a('0xd34')](_0x3b40af);var _0x2b0cdd={'oLanguage':{'sLengthMenu':'_MENU_\x20records\x20per\x20page'},'aaData':_0x3c83f4,'aoColumns':_0x10b382,'bSort':!0x1,'iDisplayLength':0xf,'iDisplayStart':_0x1720bd},_0x4fc663=this[_0x1d905a('0xcad')]();$['extend'](_0x2b0cdd,_0x4fc663),$('#'[_0x1d905a('0x4c2')](_0x3943ac,_0x1d905a('0x4e')))[_0x1d905a('0xdd7')](_0x2b0cdd),$(_0x1d905a('0x84'))[_0x1d905a('0x946')]('pagination'),$(_0x1d905a('0x721'))[_0x1d905a('0xafe')](),$('.dataTables_filter\x20input')[_0x1d905a('0x946')]('form-control'),$('.dataTables_filter\x20input')[_0x1d905a('0x7c9')](_0x1d905a('0x6d0'),_0x1d905a('0x8da')),$('.dataTables_filter\x20label')[_0x1d905a('0xc89')]()[_0x1d905a('0x774')](function(){var _0x379a17=_0x1d905a;return 0x3===this[_0x379a17('0x4f4')];})[_0x1d905a('0x52')](),$('#'['concat'](_0x3943ac,_0x1d905a('0x4e')))[_0x1d905a('0x446')](),$('#'['concat'](_0x3943ac,_0x1d905a('0x4e5')))['on'](_0x1d905a('0x9d9'),function(_0x238dc6,_0x1bd358){var _0x304692=_0x1d905a;return modJs[_0x304692('0x3eb')]($(this),_0x238dc6,_0x1bd358);}),this[_0x1d905a('0xcef')](_0x3943ac);}},{'key':'afterCreateTable','value':function(_0x4129b9){}},{'key':_0x19cabc('0x31c'),'value':function(_0x3da5ed,_0x331278,_0x53ce47){var _0xd84654=_0x19cabc;this['cellDataUpdates'][''['concat'](_0x3da5ed,'=')[_0xd84654('0x4c2')](_0x331278)]=[_0x3da5ed,_0x331278,_0x53ce47];}},{'key':_0x19cabc('0x7bc'),'value':function(_0xbd75a,_0x134499){return _0x134499;}},{'key':_0x19cabc('0x7d'),'value':function(){var _0x5bd121=_0x19cabc,_0x10a122=this[_0x5bd121('0x40c')];_0x10a122[_0x5bd121('0x754')]=this[_0x5bd121('0x754')],_0x10a122[_0x5bd121('0xd89')]=this[_0x5bd121('0xd89')],_0x10a122[_0x5bd121('0x812')]=this[_0x5bd121('0x812')],_0x10a122=this[_0x5bd121('0x7bc')](_0x5bd121('0x7ef'),_0x10a122);var _0x507e4a=JSON[_0x5bd121('0xaae')](_0x10a122),_0x20e5df=[];_0x20e5df[_0x5bd121('0x61a')]=[],_0x20e5df['callBackSuccess']=_0x5bd121('0x7b'),_0x20e5df[_0x5bd121('0xd61')]=_0x5bd121('0xf7'),this[_0x5bd121('0x4d9')](),this['customAction']('updateData',this[_0x5bd121('0x21a')],_0x507e4a,_0x20e5df);}},{'key':'updateDataSuccessCallBack','value':function(_0x228030,_0x389528){var _0x3fec81=_0x19cabc;this[_0x3fec81('0xc42')](),modJs[_0x3fec81('0x40c')]={},modJs[_0x3fec81('0xda6')]();}},{'key':_0x19cabc('0xf7'),'value':function(_0x9bf89f,_0x3c6d20){var _0x358429=_0x19cabc;this[_0x358429('0xc42')]();}},{'key':_0x19cabc('0xbd0'),'value':function(){var _0x14e494=_0x19cabc,_0x21126d=this[_0x14e494('0x40c')];_0x21126d[_0x14e494('0x754')]=this['rowTable'],_0x21126d[_0x14e494('0xd89')]=this['columnTable'],_0x21126d['valueTable']=this[_0x14e494('0x812')],_0x21126d=this[_0x14e494('0x7bc')]('updateAllData',_0x21126d);var _0x13e83d=JSON[_0x14e494('0xaae')](_0x21126d),_0x518169=[];_0x518169[_0x14e494('0x61a')]=[],_0x518169['callBackSuccess']='updateDataAllSuccessCallBack',_0x518169[_0x14e494('0xd61')]='updateDataAllFailCallBack',this[_0x14e494('0x4d9')](),this[_0x14e494('0xca3')](_0x14e494('0x5d9'),this['modulePath'],_0x13e83d,_0x518169);}},{'key':_0x19cabc('0x610'),'value':function(_0x5c5a23,_0x2d1224){var _0x5db5df=_0x19cabc;this['hideLoader'](),modJs[_0x5db5df('0x40c')]={},modJs['getAllData'](!0x0);}},{'key':_0x19cabc('0x709'),'value':function(_0xce38f0,_0x36a014){var _0x2fc423=_0x19cabc;this[_0x2fc423('0xc42')]();}},{'key':'showActionButtons','value':function(){return!0x1;}}])&&_0x103b5b(_0x1fdc61[_0x19cabc('0x539')],_0x5ab7a9),_0x31d093&&_0x103b5b(_0x1fdc61,_0x31d093),_0x11cbe6;}(((_0x11dfaa=_0x203750(_0x4ec623('0xd85')))&&_0x11dfaa[_0x4ec623('0x8bc')]?_0x11dfaa:{'default':_0x11dfaa})[_0x4ec623('0x8fd')]);_0x194bc1[_0x4ec623('0x8fd')]=_0x4576e1;},{'./AdapterBase':0x27}],0x34:[function(_0x50a9c2,_0x3eb327,_0x25eabc){var _0x50e8f6=_0x38d28e;'use strict';function _0x45fb2c(_0x9358e4){var _0x200ad9=_0x1c0e;return(_0x45fb2c=_0x200ad9('0xa25')==typeof Symbol&&_0x200ad9('0xb5')==typeof Symbol['iterator']?function(_0x1c9c77){return typeof _0x1c9c77;}:function(_0x14ba53){var _0x1a1894=_0x200ad9;return _0x14ba53&&'function'==typeof Symbol&&_0x14ba53[_0x1a1894('0x63e')]===Symbol&&_0x14ba53!==Symbol['prototype']?_0x1a1894('0xb5'):typeof _0x14ba53;})(_0x9358e4);}Object[_0x50e8f6('0x751')](_0x25eabc,'__esModule',{'value':!0x0}),_0x25eabc[_0x50e8f6('0x8fd')]=void 0x0;var _0x25bcb7=function(_0x31db92){var _0x2d4682=_0x50e8f6;if(_0x31db92&&_0x31db92[_0x2d4682('0x8bc')])return _0x31db92;if(null===_0x31db92||'object'!==_0x45fb2c(_0x31db92)&&_0x2d4682('0xa25')!=typeof _0x31db92)return{'default':_0x31db92};var _0x260bc3=_0x19c222();if(_0x260bc3&&_0x260bc3[_0x2d4682('0xa77')](_0x31db92))return _0x260bc3[_0x2d4682('0xda6')](_0x31db92);var _0x9df002={},_0x130f4e=Object['defineProperty']&&Object[_0x2d4682('0x869')];for(var _0x51a7c6 in _0x31db92)if(Object[_0x2d4682('0x539')][_0x2d4682('0x1a8')]['call'](_0x31db92,_0x51a7c6)){var _0x10bf9e=_0x130f4e?Object['getOwnPropertyDescriptor'](_0x31db92,_0x51a7c6):null;_0x10bf9e&&(_0x10bf9e[_0x2d4682('0xda6')]||_0x10bf9e[_0x2d4682('0x7f8')])?Object[_0x2d4682('0x751')](_0x9df002,_0x51a7c6,_0x10bf9e):_0x9df002[_0x51a7c6]=_0x31db92[_0x51a7c6];}return _0x9df002['default']=_0x31db92,_0x260bc3&&_0x260bc3[_0x2d4682('0x7f8')](_0x31db92,_0x9df002),_0x9df002;}(_0x50a9c2(_0x50e8f6('0x2cd'))),_0x2bcdb0=_0x50a9c2(_0x50e8f6('0xde0'));function _0x19c222(){var _0x57fb6c=_0x50e8f6;if(_0x57fb6c('0xa25')!=typeof WeakMap)return null;var _0x430ddc=new WeakMap();return _0x19c222=function(){return _0x430ddc;},_0x430ddc;}function _0x138c37(_0x3f6082,_0x39c02c){return function(_0x7c6ba3){var _0x579099=_0x1c0e;if(Array[_0x579099('0xff')](_0x7c6ba3))return _0x7c6ba3;}(_0x3f6082)||function(_0x21088c,_0x4168cc){var _0x32667c=_0x1c0e;if(_0x32667c('0xbfa')==typeof Symbol||!(Symbol[_0x32667c('0x4ae')]in Object(_0x21088c)))return;var _0x3db342=[],_0x538aaf=!0x0,_0x1f6f68=!0x1,_0x23d5b2=void 0x0;try{for(var _0x2fc92e,_0x45a74d=_0x21088c[Symbol['iterator']]();!(_0x538aaf=(_0x2fc92e=_0x45a74d['next']())[_0x32667c('0xa9a')])&&(_0x3db342[_0x32667c('0xb2')](_0x2fc92e['value']),!_0x4168cc||_0x3db342['length']!==_0x4168cc);_0x538aaf=!0x0);}catch(_0x513ca2){_0x1f6f68=!0x0,_0x23d5b2=_0x513ca2;}finally{try{_0x538aaf||null==_0x45a74d[_0x32667c('0xd9e')]||_0x45a74d[_0x32667c('0xd9e')]();}finally{if(_0x1f6f68)throw _0x23d5b2;}}return _0x3db342;}(_0x3f6082,_0x39c02c)||function(_0x368fec,_0x13dec0){var _0x2ac47f=_0x1c0e;if(!_0x368fec)return;if(_0x2ac47f('0x3fd')==typeof _0x368fec)return _0x26973d(_0x368fec,_0x13dec0);var _0x342bfa=Object['prototype'][_0x2ac47f('0x6e9')][_0x2ac47f('0x964')](_0x368fec)['slice'](0x8,-0x1);_0x2ac47f('0xc5')===_0x342bfa&&_0x368fec[_0x2ac47f('0x63e')]&&(_0x342bfa=_0x368fec[_0x2ac47f('0x63e')][_0x2ac47f('0xce')]);if(_0x2ac47f('0x486')===_0x342bfa||_0x2ac47f('0xce3')===_0x342bfa)return Array[_0x2ac47f('0x40e')](_0x342bfa);if(_0x2ac47f('0x666')===_0x342bfa||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x2ac47f('0x96c')](_0x342bfa))return _0x26973d(_0x368fec,_0x13dec0);}(_0x3f6082,_0x39c02c)||function(){var _0x132860=_0x1c0e;throw new TypeError(_0x132860('0x623'));}();}function _0x26973d(_0x9205fd,_0x5c6e16){var _0x4466a8=_0x50e8f6;(null==_0x5c6e16||_0x5c6e16>_0x9205fd['length'])&&(_0x5c6e16=_0x9205fd[_0x4466a8('0x796')]);for(var _0x65363f=0x0,_0x10aa5c=new Array(_0x5c6e16);_0x65363f<_0x5c6e16;_0x65363f++)_0x10aa5c[_0x65363f]=_0x9205fd[_0x65363f];return _0x10aa5c;}var _0x3afc37=function(_0x2432fb){var _0x149330=_0x50e8f6,_0x41c480=_0x2432fb[_0x149330('0x920')],_0x45c524=_0x2432fb['onChange'],_0x36cb92=_0x2432fb['readOnly'],_0x2f24e6=function(_0x1f1b0c){var _0x5453ee=_0x149330,_0x402290=_0x138c37((0x0,_0x25bcb7['useState'])(_0x1f1b0c),0x2),_0x167802=_0x402290[0x0],_0x3a10c6=_0x402290[0x1],_0x2a56a4=(0x0,_0x25bcb7[_0x5453ee('0x7ce')])(null),_0x6252ce=function(_0x478af1){var _0x229095=_0x5453ee;_0x2a56a4[_0x229095('0xaf8')]&&!_0x2a56a4['current']['contains'](_0x478af1['target'])&&_0x3a10c6(!0x1);};return(0x0,_0x25bcb7[_0x5453ee('0xfa')])(function(){var _0x41cd11=_0x5453ee;return document[_0x41cd11('0xa89')](_0x41cd11('0x76'),_0x6252ce,!0x0),function(){var _0x3f6bf8=_0x41cd11;document['removeEventListener'](_0x3f6bf8('0x76'),_0x6252ce,!0x0);};}),{'ref':_0x2a56a4,'isComponentVisible':_0x167802,'setIsComponentVisible':_0x3a10c6};}(!0x0),_0x97ccfc=_0x2f24e6[_0x149330('0xb6a')],_0x1a4287=_0x2f24e6['isComponentVisible'],_0x429a52=_0x2f24e6[_0x149330('0x3ad')],_0x4e5d82=_0x138c37((0x0,_0x25bcb7['useState'])(_0x41c480||_0x149330('0x8b3')),0x2),_0x11cfe9=_0x4e5d82[0x0],_0x31bdf4=_0x4e5d82[0x1],_0x154bcf=_0x138c37((0x0,_0x25bcb7['useState'])(!0x1),0x2),_0x54743b=_0x154bcf[0x0],_0xfa6ee=_0x154bcf[0x1];return(0x0,_0x25bcb7[_0x149330('0xfa')])(function(){_0x1a4287||_0xfa6ee(!0x1);},[_0x1a4287]),(0x0,_0x25bcb7[_0x149330('0xfa')])(function(){_0x41c480&&_0x31bdf4(_0x41c480);},[_0x41c480]),_0x25bcb7[_0x149330('0x8fd')]['createElement'](_0x149330('0xabf'),{'className':_0x149330('0xcf4')},_0x25bcb7['default'][_0x149330('0x6b7')](_0x149330('0xabf'),{'className':'colorpicker-preview','onClick':function(){_0x54743b||_0x429a52(!0x0),_0xfa6ee(!_0x54743b);},'style':{'backgroundColor':_0x11cfe9}}),_0x25bcb7['default'][_0x149330('0x6b7')](_0x149330('0xabf'),{'ref':_0x97ccfc,'className':_0x149330('0x913')[_0x149330('0x4c2')](_0x36cb92||!_0x54743b?'hidden':'')},_0x25bcb7[_0x149330('0x8fd')][_0x149330('0x6b7')](_0x2bcdb0[_0x149330('0x80')],{'color':_0x11cfe9,'disableAlpha':!0x0,'presetColors':[],'onChangeComplete':function(_0x3392ff){var _0x34219a=_0x149330,_0x2ccb2c=_0x3392ff[_0x34219a('0x7c6')];_0x45c524(_0x2ccb2c),_0x31bdf4(_0x2ccb2c);}})));};_0x25eabc[_0x50e8f6('0x8fd')]=_0x3afc37;},{'react':_0x38d28e('0x2cd'),'react-color':0x16d}],0x35:[function(_0x463479,_0x377460,_0x4378a4){var _0x31d2fe=_0x38d28e;'use strict';Object['defineProperty'](_0x4378a4,_0x31d2fe('0x8bc'),{'value':!0x0}),_0x4378a4[_0x31d2fe('0x8fd')]=void 0x0;var _0x16bb89=_0x1edd16(_0x463479(_0x31d2fe('0x2cd'))),_0xf1770=_0x463479(_0x31d2fe('0x836')),_0x10589c=_0x1edd16(_0x463479('./IceFormModal')),_0xe751be=_0x1edd16(_0x463479(_0x31d2fe('0xa')));function _0x1edd16(_0xba2349){return _0xba2349&&_0xba2349['__esModule']?_0xba2349:{'default':_0xba2349};}function _0x5522d2(_0x394e9c){var _0x459b0c=_0x31d2fe;return(_0x5522d2='function'==typeof Symbol&&_0x459b0c('0xb5')==typeof Symbol[_0x459b0c('0x4ae')]?function(_0x5b20e9){return typeof _0x5b20e9;}:function(_0x40b47d){var _0x24d3c3=_0x459b0c;return _0x40b47d&&_0x24d3c3('0xa25')==typeof Symbol&&_0x40b47d['constructor']===Symbol&&_0x40b47d!==Symbol[_0x24d3c3('0x539')]?_0x24d3c3('0xb5'):typeof _0x40b47d;})(_0x394e9c);}function _0x288a2c(_0x758369,_0x14e316){var _0x1e163e=_0x31d2fe,_0x424afe=Object['keys'](_0x758369);if(Object[_0x1e163e('0xc50')]){var _0x31c178=Object['getOwnPropertySymbols'](_0x758369);_0x14e316&&(_0x31c178=_0x31c178[_0x1e163e('0x774')](function(_0x474891){var _0x3d19c2=_0x1e163e;return Object[_0x3d19c2('0x869')](_0x758369,_0x474891)[_0x3d19c2('0xdc2')];})),_0x424afe[_0x1e163e('0xb2')][_0x1e163e('0x365')](_0x424afe,_0x31c178);}return _0x424afe;}function _0x134458(_0x233267,_0x2ac9eb,_0x24b7fc){var _0x31bd11=_0x31d2fe;return _0x2ac9eb in _0x233267?Object[_0x31bd11('0x751')](_0x233267,_0x2ac9eb,{'value':_0x24b7fc,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):_0x233267[_0x2ac9eb]=_0x24b7fc,_0x233267;}function _0x41ba3e(_0x497586,_0x5b2246){var _0x4d4f2a=_0x31d2fe;for(var _0x1ab212=0x0;_0x1ab212<_0x5b2246[_0x4d4f2a('0x796')];_0x1ab212++){var _0x53ec92=_0x5b2246[_0x1ab212];_0x53ec92[_0x4d4f2a('0xdc2')]=_0x53ec92[_0x4d4f2a('0xdc2')]||!0x1,_0x53ec92[_0x4d4f2a('0x48d')]=!0x0,_0x4d4f2a('0x920')in _0x53ec92&&(_0x53ec92[_0x4d4f2a('0x903')]=!0x0),Object[_0x4d4f2a('0x751')](_0x497586,_0x53ec92[_0x4d4f2a('0x3ba')],_0x53ec92);}}function _0x1291b2(_0x720ae9,_0x3d9059){var _0xf1e444=_0x31d2fe;return!_0x3d9059||_0xf1e444('0xbfd')!==_0x5522d2(_0x3d9059)&&_0xf1e444('0xa25')!=typeof _0x3d9059?function(_0x1d5b08){var _0xfc5646=_0xf1e444;if(void 0x0===_0x1d5b08)throw new ReferenceError(_0xfc5646('0xcf6'));return _0x1d5b08;}(_0x720ae9):_0x3d9059;}function _0x4061e2(){var _0x1291ce=_0x31d2fe;if(_0x1291ce('0xbfa')==typeof Reflect||!Reflect[_0x1291ce('0x195')])return!0x1;if(Reflect[_0x1291ce('0x195')][_0x1291ce('0x460')])return!0x1;if(_0x1291ce('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x1291ce('0x6e9')][_0x1291ce('0x964')](Reflect[_0x1291ce('0x195')](Date,[],function(){})),!0x0;}catch(_0x11e808){return!0x1;}}function _0x3174e3(_0x3f6f48){var _0x170e83=_0x31d2fe;return(_0x3174e3=Object[_0x170e83('0x489')]?Object[_0x170e83('0x85e')]:function(_0x4e008d){var _0x384c15=_0x170e83;return _0x4e008d[_0x384c15('0xcb9')]||Object[_0x384c15('0x85e')](_0x4e008d);})(_0x3f6f48);}function _0x371835(_0x3a23a9,_0x4697b3){return(_0x371835=Object['setPrototypeOf']||function(_0x4c66d3,_0x492e6d){var _0x1d9b4e=_0x1c0e;return _0x4c66d3[_0x1d9b4e('0xcb9')]=_0x492e6d,_0x4c66d3;})(_0x3a23a9,_0x4697b3);}_0xf1770[_0x31d2fe('0x64e')]['Option'];var _0xef5568=function(_0x1fa83e){var _0x433350=_0x31d2fe;!function(_0x381e91,_0xac0378){var _0x5d0065=_0x1c0e;if(_0x5d0065('0xa25')!=typeof _0xac0378&&null!==_0xac0378)throw new TypeError(_0x5d0065('0xc4b'));_0x381e91['prototype']=Object[_0x5d0065('0x3e2')](_0xac0378&&_0xac0378['prototype'],{'constructor':{'value':_0x381e91,'writable':!0x0,'configurable':!0x0}}),_0xac0378&&_0x371835(_0x381e91,_0xac0378);}(_0x24abc0,_0x1fa83e);var _0x359cec,_0x318799,_0x1fb6cf,_0x2e762a,_0x46a612=(_0x359cec=_0x24abc0,function(){var _0x53b159=_0x1c0e,_0x3b122a,_0x1c4c41=_0x3174e3(_0x359cec);if(_0x4061e2()){var _0x18e1d8=_0x3174e3(this)[_0x53b159('0x63e')];_0x3b122a=Reflect['construct'](_0x1c4c41,arguments,_0x18e1d8);}else _0x3b122a=_0x1c4c41['apply'](this,arguments);return _0x1291b2(this,_0x3b122a);});function _0x24abc0(_0x27d330){var _0x1eb6c1=_0x1c0e,_0x53a06e;return function(_0x51e007,_0x3a2866){var _0x71cafc=_0x1c0e;if(!(_0x51e007 instanceof _0x3a2866))throw new TypeError(_0x71cafc('0x9a0'));}(this,_0x24abc0),(_0x53a06e=_0x46a612[_0x1eb6c1('0x964')](this,_0x27d330))[_0x1eb6c1('0x7b0')]={},_0x53a06e[_0x1eb6c1('0xbb3')]=_0x27d330[_0x1eb6c1('0xbb3')],_0x53a06e[_0x1eb6c1('0x98')]=_0x16bb89[_0x1eb6c1('0x8fd')][_0x1eb6c1('0x592')](),_0x53a06e;}return _0x318799=_0x24abc0,(_0x1fb6cf=[{'key':_0x433350('0x358'),'value':function(){var _0x483efe=_0x433350,_0x1e4311=this,_0x550075=this[_0x483efe('0x22d')],_0x27328f=_0x550075[_0x483efe('0x85b')],_0x4d6384=_0x550075['adapter'],_0x63c421=this[_0x483efe('0x22d')][_0x483efe('0x920')];_0x63c421=(_0x63c421=this[_0x483efe('0x511')](_0x63c421))[_0x483efe('0xc78')](function(_0x2b498f){return function(_0x32371f){var _0x5df5e6=_0x1c0e;for(var _0x561be4=0x1;_0x561be4=_0x2a5685&&(_0x2a5685=parseInt(_0x5725f7,0xa)+0x1);}return _0x2a5685;}}])&&_0x41ba3e(_0x318799['prototype'],_0x1fb6cf),_0x2e762a&&_0x41ba3e(_0x318799,_0x2e762a),_0x24abc0;}(_0x16bb89['default'][_0x31d2fe('0x2c')]);_0x4378a4['default']=_0xef5568;},{'./IceFormModal':0x37,'antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd'),'react-dom':_0x38d28e('0xa')}],0x36:[function(_0x44eee0,_0xa22b35,_0x5b768e){var _0xd6b036=_0x38d28e;'use strict';Object[_0xd6b036('0x751')](_0x5b768e,_0xd6b036('0x8bc'),{'value':!0x0}),_0x5b768e[_0xd6b036('0x8fd')]=void 0x0;var _0xd2c26=_0xdef5ef(_0x44eee0(_0xd6b036('0x2cd'))),_0x101e70=_0x44eee0(_0xd6b036('0x836')),_0x4a67cd=_0xdef5ef(_0x44eee0(_0xd6b036('0x877'))),_0x5b0c1b=_0xdef5ef(_0x44eee0(_0xd6b036('0xb54'))),_0x4655b0=_0xdef5ef(_0x44eee0(_0xd6b036('0xac2'))),_0xe3c687=_0xdef5ef(_0x44eee0(_0xd6b036('0x9d5'))),_0x5b6e3d=_0xdef5ef(_0x44eee0('./IceLabel')),_0xd9c4f1=_0xdef5ef(_0x44eee0(_0xd6b036('0xb94'))),_0x3536c9=_0xdef5ef(_0x44eee0('./IceSignature'));function _0xdef5ef(_0x2091b9){var _0x4c85c2=_0xd6b036;return _0x2091b9&&_0x2091b9[_0x4c85c2('0x8bc')]?_0x2091b9:{'default':_0x2091b9};}function _0x32194c(_0x540f75){var _0x405a4d=_0xd6b036;return(_0x32194c=_0x405a4d('0xa25')==typeof Symbol&&_0x405a4d('0xb5')==typeof Symbol[_0x405a4d('0x4ae')]?function(_0x2ed76f){return typeof _0x2ed76f;}:function(_0x3f118e){var _0x3a5a89=_0x405a4d;return _0x3f118e&&_0x3a5a89('0xa25')==typeof Symbol&&_0x3f118e[_0x3a5a89('0x63e')]===Symbol&&_0x3f118e!==Symbol[_0x3a5a89('0x539')]?_0x3a5a89('0xb5'):typeof _0x3f118e;})(_0x540f75);}function _0x4862f0(_0x3d0e69,_0x17c360){return function(_0x4a983d){if(Array['isArray'](_0x4a983d))return _0x4a983d;}(_0x3d0e69)||function(_0x2f3ca5,_0x23bdea){var _0x5e8c1a=_0x1c0e;if(_0x5e8c1a('0xbfa')==typeof Symbol||!(Symbol[_0x5e8c1a('0x4ae')]in Object(_0x2f3ca5)))return;var _0xbf1e7e=[],_0x453ad2=!0x0,_0x256edf=!0x1,_0x4a1dfc=void 0x0;try{for(var _0x246014,_0xb22bad=_0x2f3ca5[Symbol['iterator']]();!(_0x453ad2=(_0x246014=_0xb22bad[_0x5e8c1a('0x998')]())['done'])&&(_0xbf1e7e[_0x5e8c1a('0xb2')](_0x246014['value']),!_0x23bdea||_0xbf1e7e[_0x5e8c1a('0x796')]!==_0x23bdea);_0x453ad2=!0x0);}catch(_0x36224c){_0x256edf=!0x0,_0x4a1dfc=_0x36224c;}finally{try{_0x453ad2||null==_0xb22bad[_0x5e8c1a('0xd9e')]||_0xb22bad[_0x5e8c1a('0xd9e')]();}finally{if(_0x256edf)throw _0x4a1dfc;}}return _0xbf1e7e;}(_0x3d0e69,_0x17c360)||function(_0x56e5f6,_0x3ec6cb){var _0x11df5b=_0x1c0e;if(!_0x56e5f6)return;if(_0x11df5b('0x3fd')==typeof _0x56e5f6)return _0x38155c(_0x56e5f6,_0x3ec6cb);var _0x5a3b88=Object[_0x11df5b('0x539')]['toString'][_0x11df5b('0x964')](_0x56e5f6)[_0x11df5b('0x5fe')](0x8,-0x1);_0x11df5b('0xc5')===_0x5a3b88&&_0x56e5f6[_0x11df5b('0x63e')]&&(_0x5a3b88=_0x56e5f6[_0x11df5b('0x63e')][_0x11df5b('0xce')]);if(_0x11df5b('0x486')===_0x5a3b88||_0x11df5b('0xce3')===_0x5a3b88)return Array[_0x11df5b('0x40e')](_0x5a3b88);if(_0x11df5b('0x666')===_0x5a3b88||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x11df5b('0x96c')](_0x5a3b88))return _0x38155c(_0x56e5f6,_0x3ec6cb);}(_0x3d0e69,_0x17c360)||function(){throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance.\x0aIn\x20order\x20to\x20be\x20iterable,\x20non-array\x20objects\x20must\x20have\x20a\x20[Symbol.iterator]()\x20method.');}();}function _0x38155c(_0x209a7f,_0x4922fe){var _0x532996=_0xd6b036;(null==_0x4922fe||_0x4922fe>_0x209a7f[_0x532996('0x796')])&&(_0x4922fe=_0x209a7f[_0x532996('0x796')]);for(var _0x33e523=0x0,_0x5c281c=new Array(_0x4922fe);_0x33e523<_0x4922fe;_0x33e523++)_0x5c281c[_0x33e523]=_0x209a7f[_0x33e523];return _0x5c281c;}function _0x330674(_0x109654,_0x33cc01){var _0x523b22=_0xd6b036;for(var _0x5978cc=0x0;_0x5978cc<_0x33cc01[_0x523b22('0x796')];_0x5978cc++){var _0x3dfc7e=_0x33cc01[_0x5978cc];_0x3dfc7e[_0x523b22('0xdc2')]=_0x3dfc7e[_0x523b22('0xdc2')]||!0x1,_0x3dfc7e[_0x523b22('0x48d')]=!0x0,_0x523b22('0x920')in _0x3dfc7e&&(_0x3dfc7e[_0x523b22('0x903')]=!0x0),Object[_0x523b22('0x751')](_0x109654,_0x3dfc7e[_0x523b22('0x3ba')],_0x3dfc7e);}}function _0x139dd8(_0x95fefd,_0x3c4b1f){var _0x5f56ea=_0xd6b036;return!_0x3c4b1f||_0x5f56ea('0xbfd')!==_0x32194c(_0x3c4b1f)&&'function'!=typeof _0x3c4b1f?function(_0x4d9817){var _0x5dae29=_0x5f56ea;if(void 0x0===_0x4d9817)throw new ReferenceError(_0x5dae29('0xcf6'));return _0x4d9817;}(_0x95fefd):_0x3c4b1f;}function _0x202704(){var _0x2a4b43=_0xd6b036;if('undefined'==typeof Reflect||!Reflect[_0x2a4b43('0x195')])return!0x1;if(Reflect[_0x2a4b43('0x195')][_0x2a4b43('0x460')])return!0x1;if(_0x2a4b43('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x2a4b43('0x539')][_0x2a4b43('0x6e9')][_0x2a4b43('0x964')](Reflect[_0x2a4b43('0x195')](Date,[],function(){})),!0x0;}catch(_0x51339d){return!0x1;}}function _0x2eeb8c(_0x23cbd1){var _0x36c8dc=_0xd6b036;return(_0x2eeb8c=Object[_0x36c8dc('0x489')]?Object[_0x36c8dc('0x85e')]:function(_0x5cfa4c){var _0x2802d7=_0x36c8dc;return _0x5cfa4c[_0x2802d7('0xcb9')]||Object[_0x2802d7('0x85e')](_0x5cfa4c);})(_0x23cbd1);}function _0x52c84d(_0x181ae1,_0x3e82c2){var _0x7318c5=_0xd6b036;return(_0x52c84d=Object[_0x7318c5('0x489')]||function(_0x327b0b,_0x4458c1){var _0x4a8afe=_0x7318c5;return _0x327b0b[_0x4a8afe('0xcb9')]=_0x4458c1,_0x327b0b;})(_0x181ae1,_0x3e82c2);}var _0x355e6b={'float':function(_0x4916ba){var _0x208b4b=_0xd6b036;return!(null==_0x4916ba||!_0x4916ba[_0x208b4b('0x523')](/^[-+]?[0-9]+(\.[0-9]+)?$/));},'number':function(_0x2974ef){var _0x4de198=_0xd6b036;return!(null==_0x2974ef||!_0x2974ef[_0x4de198('0x523')](/^[0-9]+$/));},'numberOrEmpty':function(_0x536478){var _0x2a946b=_0xd6b036;if(''===_0x536478)return!0x0;return!(null==_0x536478||!_0x536478[_0x2a946b('0x523')](/^[0-9]+$/));},'email':function(_0x55f81c){var _0x486242=_0xd6b036;return null!=_0x55f81c&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/[_0x486242('0x96c')](_0x55f81c);},'emailOrEmpty':function(_0x7c76f4){if(''===_0x7c76f4)return!0x0;return null!=_0x7c76f4&&/^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/['test'](_0x7c76f4);},'username':function(_0x19837b){return null!=_0x19837b&&/^[a-zA-Z0-9.-]+$/['test'](_0x19837b);}},_0x22b881=function(_0x123bb){var _0x35a591=_0xd6b036;!function(_0x563fc5,_0x4866ea){var _0x327b2a=_0x1c0e;if('function'!=typeof _0x4866ea&&null!==_0x4866ea)throw new TypeError(_0x327b2a('0xc4b'));_0x563fc5[_0x327b2a('0x539')]=Object[_0x327b2a('0x3e2')](_0x4866ea&&_0x4866ea[_0x327b2a('0x539')],{'constructor':{'value':_0x563fc5,'writable':!0x0,'configurable':!0x0}}),_0x4866ea&&_0x52c84d(_0x563fc5,_0x4866ea);}(_0x4a9333,_0x123bb);var _0x41c0e4,_0x278c49,_0x326af4,_0x18f305,_0x375ea8=(_0x41c0e4=_0x4a9333,function(){var _0x48dd4d=_0x1c0e,_0x9d86bb,_0x36ad84=_0x2eeb8c(_0x41c0e4);if(_0x202704()){var _0xaf20f3=_0x2eeb8c(this)[_0x48dd4d('0x63e')];_0x9d86bb=Reflect[_0x48dd4d('0x195')](_0x36ad84,arguments,_0xaf20f3);}else _0x9d86bb=_0x36ad84[_0x48dd4d('0x365')](this,arguments);return _0x139dd8(this,_0x9d86bb);});function _0x4a9333(_0x3c0449){var _0x3df8dc=_0x1c0e,_0x4d787f;return function(_0x5e53d2,_0x392d49){var _0x38d074=_0x1c0e;if(!(_0x5e53d2 instanceof _0x392d49))throw new TypeError(_0x38d074('0x9a0'));}(this,_0x4a9333),(_0x4d787f=_0x375ea8[_0x3df8dc('0x964')](this,_0x3c0449))[_0x3df8dc('0x7c')]={},_0x4d787f['state']={'validations':{},'errorMsg':!0x1},_0x4d787f[_0x3df8dc('0x98')]=_0xd2c26[_0x3df8dc('0x8fd')][_0x3df8dc('0x592')](),_0x4d787f;}return _0x278c49=_0x4a9333,(_0x326af4=[{'key':'showError','value':function(_0x5c2496){var _0x1016ed=_0x1c0e;this[_0x1016ed('0x4e1')]({'errorMsg':_0x5c2496});}},{'key':_0x35a591('0x74'),'value':function(){var _0x3b93b3=_0x35a591;this[_0x3b93b3('0x4e1')]({'errorMsg':!0x1});}},{'key':_0x35a591('0xab3'),'value':function(){var _0x3a09b6=_0x35a591;return null!=this[_0x3a09b6('0x98')][_0x3a09b6('0xaf8')];}},{'key':_0x35a591('0x82a'),'value':function(){var _0x3cba28=_0x35a591;return this[_0x3cba28('0x98')][_0x3cba28('0xaf8')][_0x3cba28('0x82a')]();}},{'key':_0x35a591('0x358'),'value':function(){var _0x3f10ce=_0x35a591;for(var _0x703f55=this[_0x3f10ce('0x22d')],_0x85934b=_0x703f55['fields'],_0x51e456=_0x703f55['twoColumnLayout'],_0x3f4988=_0x703f55[_0x3f10ce('0xdad')],_0x4d9a91=[],_0x34d4d8=[],_0x381420=[],_0x54ca8a=_0x51e456?0x2:0x1,_0x502bf4=0x0;_0x502bf4<_0x85934b[_0x3f10ce('0x796')];_0x502bf4++)_0x4d9a91['push'](_0x3f4988['beforeRenderFieldHook'](_0x85934b[_0x502bf4][0x0],this['createFromField'](_0x85934b[_0x502bf4],this['props'][_0x3f10ce('0x46a')]),_0x85934b[_0x502bf4][0x1]));_0x4d9a91=_0x4d9a91['filter'](function(_0x52b315){return!!_0x52b315;});for(var _0xfcabb6=0x0;_0xfcabb6<_0x4d9a91[_0x3f10ce('0x796')];_0xfcabb6++)null!=_0x4d9a91[_0xfcabb6]&&(0x1===_0x54ca8a||_0xfcabb6%0x2==0x0?_0x34d4d8[_0x3f10ce('0xb2')](_0x4d9a91[_0xfcabb6]):_0x381420[_0x3f10ce('0xb2')](_0x4d9a91[_0xfcabb6]));return _0xd2c26[_0x3f10ce('0x8fd')][_0x3f10ce('0x6b7')](_0x101e70[_0x3f10ce('0x805')],{'ref':this[_0x3f10ce('0x98')],'labelCol':{'span':0x6},'wrapperCol':{'span':0x10},'layout':this[_0x3f10ce('0x22d')][_0x3f10ce('0x63a')]||_0x3f10ce('0xc9e'),'initialValues':{'size':_0x3f10ce('0x163')},'onValuesChange':function(){},'size':_0x3f10ce('0x163')},this[_0x3f10ce('0x7b0')][_0x3f10ce('0xf9')]&&_0xd2c26[_0x3f10ce('0x8fd')][_0x3f10ce('0x6b7')](_0xd2c26[_0x3f10ce('0x8fd')]['Fragment'],null,_0xd2c26[_0x3f10ce('0x8fd')][_0x3f10ce('0x6b7')](_0x101e70[_0x3f10ce('0xbe4')],{'message':this[_0x3f10ce('0x7b0')][_0x3f10ce('0xf9')],'type':'error','showIcon':!0x0}),_0xd2c26[_0x3f10ce('0x8fd')][_0x3f10ce('0x6b7')]('br',null)),0x1===_0x54ca8a&&_0x34d4d8,0x2===_0x54ca8a&&_0xd2c26[_0x3f10ce('0x8fd')][_0x3f10ce('0x6b7')](_0x101e70[_0x3f10ce('0x1ab')],{'gutter':0x10},_0xd2c26[_0x3f10ce('0x8fd')][_0x3f10ce('0x6b7')](_0x101e70[_0x3f10ce('0x54d')],{'className':_0x3f10ce('0x5fd'),'span':0xc},_0x34d4d8),_0xd2c26[_0x3f10ce('0x8fd')][_0x3f10ce('0x6b7')](_0x101e70[_0x3f10ce('0x54d')],{'className':_0x3f10ce('0x5fd'),'span':0xc},_0x381420)));}},{'key':'isValid','value':function(){var _0x375ada=_0x35a591,_0x28cd43=this;return Object['keys'](this['validationRules'])[_0x375ada('0x145')](function(_0x31b891,_0x11c272){var _0x5e794f=_0x375ada;return _0x31b891&&(_0x5e794f('0x56e')===_0x28cd43[_0x5e794f('0x7b0')][_0x11c272]||null==_0x28cd43[_0x5e794f('0x7b0')][_0x11c272]);},!0x0);}},{'key':_0x35a591('0x260'),'value':function(_0x230b10){var _0x57faf7=_0x35a591,_0x1b54e0=this['validationRules'][_0x230b10[_0x57faf7('0xbf8')]['id']],_0x5a6dd0=this[_0x57faf7('0x7b0')][_0x57faf7('0xc3a')];_0x1b54e0&&(_0x1b54e0[_0x57faf7('0xaf3')](_0x230b10[_0x57faf7('0xbf8')][_0x57faf7('0x920')])?(this[_0x57faf7('0x7b0')][_0x230b10[_0x57faf7('0xbf8')]['id']]='success',this['state'][''[_0x57faf7('0x4c2')](_0x230b10['target']['id'],_0x57faf7('0x5dc'))]=null):(this[_0x57faf7('0x7b0')][_0x230b10['target']['id']]=_0x57faf7('0xab4'),this['state'][''[_0x57faf7('0x4c2')](_0x230b10[_0x57faf7('0xbf8')]['id'],_0x57faf7('0x5dc'))]=_0x1b54e0[_0x57faf7('0xb0a')])),this[_0x57faf7('0x4e1')]({'validations':_0x5a6dd0});}},{'key':_0x35a591('0x3b5'),'value':function(_0x44ac68){var _0x4ff176=_0x35a591,_0x4eeeb5=arguments['length']>0x1&&void 0x0!==arguments[0x1]&&arguments[0x1],_0xcc39b3=0x0,_0x194e84=[],_0x46c904={'required':!0x0},_0x41fcf2=_0x4862f0(_0x44ac68,0x2),_0x10a9b8=_0x41fcf2[0x0],_0x2bb966=_0x41fcf2[0x1],_0x4bb75e=this[_0x4ff176('0x22d')],_0x1a2cb8=_0x4bb75e[_0x4ff176('0xdad')],_0x11aeb6=_0x4bb75e[_0x4ff176('0x63a')],_0x14405c=null;_0x2bb966['label']=_0x1a2cb8['gt'](_0x2bb966[_0x4ff176('0x530')]);var _0xeb8c07='vertical'===_0x11aeb6?{'span':0x18}:{'span':0x6},_0x122aad=[_0x4ff176('0x510'),'select2',_0x4ff176('0x4cc')];if(_0x122aad[_0x4ff176('0xcd8')](_0x2bb966[_0x4ff176('0x18b')])>=0x0&&!0x0===_0x2bb966[_0x4ff176('0xcd2')]||'none'===_0x2bb966[_0x4ff176('0x573')]||_0x4ff176('0xa15')===_0x2bb966[_0x4ff176('0x573')]||_0x4ff176('0xb7f')===_0x2bb966['validation']?_0x46c904[_0x4ff176('0x5d')]=!0x1:(_0x46c904['required']=!0x0,_0x46c904[_0x4ff176('0xb0a')]=this['generateFieldMessage'](_0x2bb966[_0x4ff176('0x530')])),_0x194e84[_0x4ff176('0xb2')](_0x46c904),_0x4ff176('0xa05')===_0x2bb966['type'])return _0x46c904[_0x4ff176('0x5d')]=!0x1,_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0x805')]['Item'],{'labelCol':_0xeb8c07,'style':{'display':_0x4ff176('0x649')},'label':_0x2bb966['label'],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70['Input'],null));if('text'===_0x2bb966['type'])return _0x2bb966['validation']&&(_0x2bb966[_0x4ff176('0x573')]=_0x2bb966[_0x4ff176('0x573')]['replace'](_0x4ff176('0x73a'),''),(_0x14405c=this[_0x4ff176('0x1b0')](_0x2bb966))&&(this[_0x4ff176('0x7c')][_0x10a9b8]={'rule':_0x14405c,'message':'Invalid\x20value\x20for\x20'['concat'](_0x2bb966[_0x4ff176('0x530')])})),null!=_0x14405c?_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'label':_0x2bb966[_0x4ff176('0x530')],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84,'validateStatus':this[_0x4ff176('0x7b0')][_0x10a9b8],'help':this[_0x4ff176('0x7b0')][''[_0x4ff176('0x4c2')](_0x10a9b8,_0x4ff176('0x5dc'))]},_0x4eeeb5?_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x5b6e3d[_0x4ff176('0x8fd')],null):_0xd2c26['default']['createElement'](_0x101e70[_0x4ff176('0x882')],{'onChange':this[_0x4ff176('0x260')]['bind'](this)})):_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'label':_0x2bb966['label'],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0x4eeeb5?_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0x5b6e3d[_0x4ff176('0x8fd')],null):_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0x882')],null));if(_0x4ff176('0xbd5')===_0x2bb966[_0x4ff176('0x18b')])return _0x2bb966[_0x4ff176('0xc6d')]||(_0x2bb966[_0x4ff176('0xc6d')]=0x4),_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'label':_0x2bb966['label'],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0x4eeeb5?_0xd2c26['default'][_0x4ff176('0x6b7')](_0x5b6e3d[_0x4ff176('0x8fd')],null):_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70['Input'][_0x4ff176('0x3c')],{'rows':_0x2bb966[_0x4ff176('0xc6d')]}));if(_0x4ff176('0x9d2')===_0x2bb966[_0x4ff176('0x18b')])return _0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'label':_0x2bb966[_0x4ff176('0x530')],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0x101e70[_0x4ff176('0xab2')],{'disabled':_0x4eeeb5}));if(_0x4ff176('0x48b')===_0x2bb966['type'])return _0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0x805')]['Item'],{'labelCol':_0xeb8c07,'label':_0x2bb966['label'],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0xab2')],{'format':_0x4ff176('0x4a0'),'disabled':_0x4eeeb5}));if(_0x4ff176('0xd49')===_0x2bb966['type'])return _0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'label':_0x2bb966[_0x4ff176('0x530')],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x101e70['TimePicker'],{'format':_0x4ff176('0x4e4'),'disabled':_0x4eeeb5}));if(_0x4ff176('0x321')===_0x2bb966[_0x4ff176('0x18b')]){var _0xea68d4=_0x1a2cb8[_0x4ff176('0x5e')]();return _0xcc39b3=null!=_0xea68d4?_0xea68d4['id']:-0x1*_0x1a2cb8[_0x4ff176('0x353')]()['id'],null==_0x2bb966[_0x4ff176('0x289')]&&(_0x2bb966[_0x4ff176('0x289')]='.doc,.docx,.xml,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,image/*,.pdf'),_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'name':_0x10a9b8,'key':_0x10a9b8,'label':_0x2bb966[_0x4ff176('0x530')]},_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0x5b0c1b[_0x4ff176('0x8fd')],{'user':_0xcc39b3,'fileGroup':_0x1a2cb8[_0x4ff176('0x7dd')],'fileName':_0x10a9b8,'adapter':_0x1a2cb8,'accept':_0x2bb966['filetypes'],'readOnly':_0x4eeeb5}));}return _0x4ff176('0x30')===_0x2bb966[_0x4ff176('0x18b')]?_0xd2c26['default'][_0x4ff176('0x6b7')](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'name':_0x10a9b8,'key':_0x10a9b8,'label':_0x2bb966[_0x4ff176('0x530')]},_0xd2c26['default'][_0x4ff176('0x6b7')](_0x4655b0[_0x4ff176('0x8fd')],{'adapter':_0x1a2cb8,'field':_0x44ac68,'title':_0x2bb966[_0x4ff176('0x530')],'readOnly':_0x4eeeb5})):'select2'===_0x2bb966[_0x4ff176('0x18b')]||'select'===_0x2bb966[_0x4ff176('0x18b')]||_0x4ff176('0x4cc')===_0x2bb966[_0x4ff176('0x18b')]?_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'label':_0x2bb966[_0x4ff176('0x530')],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0xe3c687['default'],{'adapter':_0x1a2cb8,'field':_0x44ac68,'readOnly':_0x4eeeb5})):'colorpick'===_0x2bb966[_0x4ff176('0x18b')]?_0xd2c26['default'][_0x4ff176('0x6b7')](_0x101e70['Form'][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'name':_0x10a9b8,'key':_0x10a9b8,'label':_0x2bb966[_0x4ff176('0x530')]},_0xd2c26[_0x4ff176('0x8fd')][_0x4ff176('0x6b7')](_0xd9c4f1[_0x4ff176('0x8fd')],{'adapter':_0x1a2cb8,'field':_0x44ac68,'title':_0x2bb966[_0x4ff176('0x530')],'readOnly':_0x4eeeb5})):_0x4ff176('0x735')===_0x2bb966['type']?_0xd2c26['default']['createElement'](_0x101e70[_0x4ff176('0x805')][_0x4ff176('0x41a')],{'labelCol':_0xeb8c07,'label':_0x2bb966[_0x4ff176('0x530')],'key':_0x10a9b8,'name':_0x10a9b8,'rules':_0x194e84},_0xd2c26[_0x4ff176('0x8fd')]['createElement'](_0x3536c9[_0x4ff176('0x8fd')],{'readOnly':_0x4eeeb5})):null;}},{'key':_0x35a591('0xb87'),'value':function(_0xdbd6b4){var _0x3100b7=_0x35a591;return''[_0x3100b7('0x4c2')](_0xdbd6b4,':\x20')[_0x3100b7('0x4c2')](this['props'][_0x3100b7('0xdad')]['gt'](_0x3100b7('0x720')));}},{'key':_0x35a591('0x1b0'),'value':function(_0x153dc7){var _0x56367c=_0x35a591;return null==_0x355e6b[_0x153dc7[_0x56367c('0x573')]]?null:_0x355e6b[_0x153dc7[_0x56367c('0x573')]];}},{'key':_0x35a591('0x710'),'value':function(_0x47add4,_0x309aa5){var _0x370385=_0x35a591;for(var _0x380fb7=0x0;_0x380fb7<_0x309aa5['length'];_0x380fb7++){var _0x4d468e=_0x4862f0(_0x309aa5[_0x380fb7],0x2),_0x471b24=_0x4d468e[0x0],_0x92ca6b=_0x4d468e[0x1];_0x370385('0x9d2')===_0x92ca6b[_0x370385('0x18b')]?_0x47add4[_0x471b24]=_0x47add4[_0x471b24]?(0x0,_0x4a67cd['default'])(_0x47add4[_0x471b24],'YYYY-MM-DD'):null:_0x370385('0x48b')===_0x92ca6b[_0x370385('0x18b')]?_0x47add4[_0x471b24]=_0x47add4[_0x471b24]?(0x0,_0x4a67cd[_0x370385('0x8fd')])(_0x47add4[_0x471b24],_0x370385('0x4a0')):null:_0x370385('0xd49')===_0x92ca6b['type']&&(_0x47add4[_0x471b24]=_0x47add4[_0x471b24]?(0x0,_0x4a67cd['default'])(_0x47add4[_0x471b24],_0x370385('0x4e4')):null);}return _0x47add4;}},{'key':_0x35a591('0xab6'),'value':function(_0x19cfc3,_0xd0489){var _0x3c3984=_0x35a591;for(var _0x64f172=0x0;_0x64f172<_0xd0489[_0x3c3984('0x796')];_0x64f172++){var _0x55d1f4=_0x4862f0(_0xd0489[_0x64f172],0x2),_0x1edc80=_0x55d1f4[0x0],_0x53ca85=_0x55d1f4[0x1];'date'===_0x53ca85['type']?_0x19cfc3[_0x1edc80]=_0x19cfc3[_0x1edc80]?_0x19cfc3[_0x1edc80][_0x3c3984('0x5b6')]('YYYY-MM-DD'):'NULL':_0x3c3984('0x48b')===_0x53ca85[_0x3c3984('0x18b')]?_0x19cfc3[_0x1edc80]=_0x19cfc3[_0x1edc80]?_0x19cfc3[_0x1edc80][_0x3c3984('0x5b6')]('YYYY-MM-DD\x20HH:mm:ss'):'NULL':_0x3c3984('0xd49')===_0x53ca85[_0x3c3984('0x18b')]?_0x19cfc3[_0x1edc80]=_0x19cfc3[_0x1edc80]?_0x19cfc3[_0x1edc80][_0x3c3984('0x5b6')](_0x3c3984('0x4e4')):_0x3c3984('0x1bc'):_0x3c3984('0x510')!==_0x53ca85['type']&&_0x3c3984('0xdc5')!==_0x53ca85[_0x3c3984('0x18b')]||null!=_0x19cfc3[_0x1edc80]||(_0x19cfc3[_0x1edc80]=_0x3c3984('0x1bc'));}return _0x19cfc3;}},{'key':_0x35a591('0xdc4'),'value':function(_0x4f393d){var _0x38845e=_0x35a591,_0x1e3ff5=this['props']['fields'];if(_0x4f393d=this[_0x38845e('0x710')](_0x4f393d,_0x1e3ff5),this['formReference']['current'][_0x38845e('0x2b2')](),null!=_0x4f393d)try{this[_0x38845e('0x98')][_0x38845e('0xaf8')][_0x38845e('0x1b6')](_0x4f393d);}catch(_0x1e82f4){console[_0x38845e('0x7f1')](_0x1e82f4);}}},{'key':_0x35a591('0x2b2'),'value':function(){var _0x631ed=_0x35a591;this[_0x631ed('0x98')][_0x631ed('0xaf8')][_0x631ed('0x2b2')]();}},{'key':'setFieldsValue','value':function(_0xc878a6){var _0x57208a=_0x35a591;this['formReference'][_0x57208a('0xaf8')][_0x57208a('0x1b6')](_0xc878a6);}},{'key':_0x35a591('0x18d'),'value':function(_0x2fe62d,_0x2d1c6c){var _0x4ccf1f=_0x35a591,_0x7a9ed5=this,_0x45359e=this[_0x4ccf1f('0x22d')],_0x1adeff=_0x45359e[_0x4ccf1f('0xdad')],_0x64700=_0x45359e['fields'],_0x35e78c=_0x2fe62d;_0x35e78c=_0x1adeff[_0x4ccf1f('0x52f')](_0x35e78c);var _0x25ef74=_0x1adeff[_0x4ccf1f('0xd0f')](_0x35e78c);if(null===_0x25ef74){_0x1adeff[_0x4ccf1f('0x82c')]&&(_0x35e78c[_0x4ccf1f('0xcda')]=$('#'[_0x4ccf1f('0x4c2')](_0x1adeff[_0x4ccf1f('0x316')](),'Form'))[_0x4ccf1f('0x38')]('csrf'));var _0x166ff2=null!=_0x1adeff['currentElement']?_0x1adeff['currentElement']['id']:null;null!=_0x166ff2&&''!==_0x166ff2&&(_0x35e78c['id']=_0x166ff2),_0x35e78c=this[_0x4ccf1f('0xab6')](_0x35e78c,_0x64700),_0x1adeff['add'](_0x35e78c,[],function(){var _0x24e7a4=_0x4ccf1f;return _0x1adeff[_0x24e7a4('0xda6')]([]);},function(){var _0xae3fe5=_0x4ccf1f;_0x7a9ed5['formReference'][_0xae3fe5('0xaf8')][_0xae3fe5('0x2b2')](),_0x7a9ed5[_0xae3fe5('0xb24')](!0x1),_0x2d1c6c();});}else this[_0x4ccf1f('0xb24')](_0x25ef74);}}])&&_0x330674(_0x278c49[_0x35a591('0x539')],_0x326af4),_0x18f305&&_0x330674(_0x278c49,_0x18f305),_0x4a9333;}(_0xd2c26[_0xd6b036('0x8fd')]['Component']);_0x5b768e[_0xd6b036('0x8fd')]=_0x22b881;},{'./IceColorPick':0x34,'./IceDataGroup':0x35,'./IceLabel':0x38,'./IceSelect':0x39,'./IceSignature':0x3a,'./IceUpload':0x3e,'antd':_0x38d28e('0x836'),'moment':_0x38d28e('0x877'),'react':_0x38d28e('0x2cd')}],0x37:[function(_0x283cc6,_0x599f16,_0x5e101c){var _0x5b857d=_0x38d28e;'use strict';Object[_0x5b857d('0x751')](_0x5e101c,_0x5b857d('0x8bc'),{'value':!0x0}),_0x5e101c[_0x5b857d('0x8fd')]=void 0x0;var _0x170bf2=_0x5771e8(_0x283cc6('react')),_0x50e9de=_0x283cc6(_0x5b857d('0x836')),_0x317f6c=_0x5771e8(_0x283cc6(_0x5b857d('0x8f7')));function _0x5771e8(_0xdad4d9){var _0x1e6f87=_0x5b857d;return _0xdad4d9&&_0xdad4d9[_0x1e6f87('0x8bc')]?_0xdad4d9:{'default':_0xdad4d9};}function _0x4a36ca(_0x2baaea){var _0x3088eb=_0x5b857d;return(_0x4a36ca='function'==typeof Symbol&&_0x3088eb('0xb5')==typeof Symbol['iterator']?function(_0x561950){return typeof _0x561950;}:function(_0x51b9a4){var _0xa1fa8c=_0x3088eb;return _0x51b9a4&&_0xa1fa8c('0xa25')==typeof Symbol&&_0x51b9a4[_0xa1fa8c('0x63e')]===Symbol&&_0x51b9a4!==Symbol['prototype']?'symbol':typeof _0x51b9a4;})(_0x2baaea);}function _0x19ff2a(){var _0x173158=_0x5b857d;return(_0x19ff2a=Object[_0x173158('0xd71')]||function(_0x4c7e08){var _0xe96df7=_0x173158;for(var _0x519fb7=0x1;_0x519fb7\r\n]?)(\r\n|\n\r|\r|\n)/g,_0x181f4c('0x918'));}}])&&_0x95027a(_0x58071d[_0x785ea1('0x539')],_0x20aa39),_0x1551a0&&_0x95027a(_0x58071d,_0x1551a0),_0x729641;}(_0x5f5a36[_0x513f3f('0x8fd')]['Component']);_0x1f1b6f[_0x513f3f('0x8fd')]=_0x395269;},{'antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd')}],0x39:[function(_0x267304,_0x2c6851,_0x21e899){var _0x4b1c21=_0x38d28e;'use strict';Object[_0x4b1c21('0x751')](_0x21e899,_0x4b1c21('0x8bc'),{'value':!0x0}),_0x21e899['default']=void 0x0;var _0x138aba,_0xa0f7c2=(_0x138aba=_0x267304(_0x4b1c21('0x2cd')))&&_0x138aba[_0x4b1c21('0x8bc')]?_0x138aba:{'default':_0x138aba},_0x4e3f5b=_0x267304(_0x4b1c21('0x836'));function _0xad95a3(_0x1aed80){var _0x251373=_0x4b1c21;return(_0xad95a3=_0x251373('0xa25')==typeof Symbol&&_0x251373('0xb5')==typeof Symbol[_0x251373('0x4ae')]?function(_0x3aad39){return typeof _0x3aad39;}:function(_0x17a493){var _0x541af9=_0x251373;return _0x17a493&&_0x541af9('0xa25')==typeof Symbol&&_0x17a493[_0x541af9('0x63e')]===Symbol&&_0x17a493!==Symbol[_0x541af9('0x539')]?_0x541af9('0xb5'):typeof _0x17a493;})(_0x1aed80);}function _0x2c6459(_0x492e00,_0x537c8c){var _0x417eac=_0x4b1c21;for(var _0xe79dca=0x0;_0xe79dca<_0x537c8c[_0x417eac('0x796')];_0xe79dca++){var _0x55b1ba=_0x537c8c[_0xe79dca];_0x55b1ba['enumerable']=_0x55b1ba[_0x417eac('0xdc2')]||!0x1,_0x55b1ba[_0x417eac('0x48d')]=!0x0,_0x417eac('0x920')in _0x55b1ba&&(_0x55b1ba[_0x417eac('0x903')]=!0x0),Object[_0x417eac('0x751')](_0x492e00,_0x55b1ba['key'],_0x55b1ba);}}function _0x747493(_0x125b9e,_0x5ec67c){var _0x197df6=_0x4b1c21;return!_0x5ec67c||_0x197df6('0xbfd')!==_0xad95a3(_0x5ec67c)&&'function'!=typeof _0x5ec67c?function(_0x5220ac){if(void 0x0===_0x5220ac)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x5220ac;}(_0x125b9e):_0x5ec67c;}function _0x3e4212(){var _0x1d1014=_0x4b1c21;if('undefined'==typeof Reflect||!Reflect[_0x1d1014('0x195')])return!0x1;if(Reflect[_0x1d1014('0x195')][_0x1d1014('0x460')])return!0x1;if(_0x1d1014('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x1d1014('0x6e9')][_0x1d1014('0x964')](Reflect[_0x1d1014('0x195')](Date,[],function(){})),!0x0;}catch(_0x2463dc){return!0x1;}}function _0x34f728(_0x3a92c2){var _0x58ec83=_0x4b1c21;return(_0x34f728=Object[_0x58ec83('0x489')]?Object[_0x58ec83('0x85e')]:function(_0x24e1df){var _0x54ae7b=_0x58ec83;return _0x24e1df['__proto__']||Object[_0x54ae7b('0x85e')](_0x24e1df);})(_0x3a92c2);}function _0x5a5eb4(_0x34b9b7,_0x48fbc4){var _0x59a6e4=_0x4b1c21;return(_0x5a5eb4=Object[_0x59a6e4('0x489')]||function(_0x52a1f5,_0x242cee){var _0x3e1631=_0x59a6e4;return _0x52a1f5[_0x3e1631('0xcb9')]=_0x242cee,_0x52a1f5;})(_0x34b9b7,_0x48fbc4);}var _0x1976f8=_0x4e3f5b[_0x4b1c21('0x64e')][_0x4b1c21('0x8a7')],_0x276b26=function(_0x8b8577){var _0x7f5b2f=_0x4b1c21;!function(_0x323977,_0x2d1ba4){var _0x37e642=_0x1c0e;if(_0x37e642('0xa25')!=typeof _0x2d1ba4&&null!==_0x2d1ba4)throw new TypeError(_0x37e642('0xc4b'));_0x323977[_0x37e642('0x539')]=Object['create'](_0x2d1ba4&&_0x2d1ba4[_0x37e642('0x539')],{'constructor':{'value':_0x323977,'writable':!0x0,'configurable':!0x0}}),_0x2d1ba4&&_0x5a5eb4(_0x323977,_0x2d1ba4);}(_0x3e2576,_0x8b8577);var _0x5447f0,_0x2ec003,_0x5324f4,_0x3ec0c0,_0x1edc32=(_0x5447f0=_0x3e2576,function(){var _0x3b1778=_0x1c0e,_0x21f344,_0xd0e9da=_0x34f728(_0x5447f0);if(_0x3e4212()){var _0x1d8a48=_0x34f728(this)[_0x3b1778('0x63e')];_0x21f344=Reflect[_0x3b1778('0x195')](_0xd0e9da,arguments,_0x1d8a48);}else _0x21f344=_0xd0e9da[_0x3b1778('0x365')](this,arguments);return _0x747493(this,_0x21f344);});function _0x3e2576(_0x2c4468){var _0x172ac5=_0x1c0e,_0x2bf3b3;return function(_0x3f3796,_0x9cb99e){var _0x571b32=_0x1c0e;if(!(_0x3f3796 instanceof _0x9cb99e))throw new TypeError(_0x571b32('0x9a0'));}(this,_0x3e2576),(_0x2bf3b3=_0x1edc32[_0x172ac5('0x964')](this,_0x2c4468))[_0x172ac5('0xbb3')]=_0x2c4468[_0x172ac5('0xbb3')],_0x2bf3b3;}return _0x2ec003=_0x3e2576,(_0x5324f4=[{'key':_0x7f5b2f('0x358'),'value':function(){var _0x44aca3=_0x7f5b2f,_0x4edf0f,_0xd2385a=this[_0x44aca3('0x22d')],_0x23b45d=_0xd2385a['field'],_0x4caa2=_0xd2385a['adapter'],_0x26a9b7=this[_0x44aca3('0x22d')][_0x44aca3('0x920')],_0x792de4=_0x23b45d[0x1];if(null!=_0x792de4[_0x44aca3('0x26d')]){var _0x4d4a34=''[_0x44aca3('0x4c2')](_0x792de4[_0x44aca3('0x26d')][0x0],'_')[_0x44aca3('0x4c2')](_0x792de4['remote-source'][0x1],'_')[_0x44aca3('0x4c2')](_0x792de4['remote-source'][0x2]);0x4===_0x792de4['remote-source'][_0x44aca3('0x796')]&&(_0x4d4a34=''[_0x44aca3('0x4c2')](_0x4d4a34,'_')['concat'](_0x792de4[_0x44aca3('0x26d')][0x3])),_0x4edf0f=_0x4caa2[_0x44aca3('0xb9e')][_0x4d4a34];}else _0x4edf0f=_0x792de4['source'];var _0x30465b=this[_0x44aca3('0x6d3')](_0x4edf0f,_0x23b45d,_0x4caa2);if(_0x44aca3('0x4cc')===_0x792de4[_0x44aca3('0x18b')])try{null==(_0x26a9b7=JSON[_0x44aca3('0x22f')](_0x26a9b7))&&(_0x26a9b7=[]),_0x26a9b7=_0x26a9b7[_0x44aca3('0xc78')](function(_0x515315){var _0x4e8133=_0x44aca3;return''[_0x4e8133('0x4c2')](_0x515315);});}catch(_0x4fb86e){_0x26a9b7=[];}return _0xa0f7c2[_0x44aca3('0x8fd')]['createElement'](_0x4e3f5b[_0x44aca3('0x64e')],{'mode':_0x44aca3('0x4cc')===_0x792de4[_0x44aca3('0x18b')]?_0x44aca3('0x690'):void 0x0,'showSearch':!0x0,'placeholder':_0x44aca3('0x3e7')['concat'](_0x792de4[_0x44aca3('0x530')]),'optionFilterProp':_0x44aca3('0x665'),'filterOption':function(_0x3858f5,_0x2ef8da){var _0x100bee=_0x44aca3;return null!=_0x3858f5&&_0x2ef8da['label'][_0x100bee('0x2f5')]()[_0x100bee('0xcd8')](_0x3858f5[_0x100bee('0x2f5')]())>=0x0;},'value':_0x26a9b7,'options':_0x30465b,'allowClear':!0x0,'onChange':this['handleChange'][_0x44aca3('0xa59')](this),'disabled':this[_0x44aca3('0x22d')][_0x44aca3('0x7e9')]});}},{'key':_0x7f5b2f('0xacc'),'value':function(_0x1f0b29){var _0x3ed349=_0x7f5b2f;_0x3ed349('0x4cc')===this['props'][_0x3ed349('0x85b')][0x1]['type']?this['onChange'](JSON[_0x3ed349('0xaae')](_0x1f0b29)):this['onChange'](_0x1f0b29);}},{'key':'makeOption','value':function(_0x3fd603){var _0x1d7e39=_0x7f5b2f;return _0xa0f7c2[_0x1d7e39('0x8fd')]['createElement'](_0x1976f8,{'key':''[_0x1d7e39('0x4c2')](_0x3fd603[0x0]),'value':''[_0x1d7e39('0x4c2')](_0x3fd603[0x0])},_0x3fd603[0x1]);}},{'key':'getFormSelectOptionsRemote','value':function(_0x49d526,_0x41797d,_0x4f11c1){var _0x553e7c=_0x7f5b2f,_0x36657d=[];if(Array[_0x553e7c('0xff')](_0x49d526))for(var _0x199a85=0x0;_0x199a85<_0x49d526['length'];_0x199a85++)_0x36657d[_0x553e7c('0xb2')]({'label':_0x49d526[_0x199a85][0x1],'value':_0x49d526[_0x199a85][0x0]});else for(var _0x5366cf in _0x49d526)_0x36657d[_0x553e7c('0xb2')]({'label':_0x49d526[_0x5366cf],'value':_0x5366cf});return _0x36657d;}}])&&_0x2c6459(_0x2ec003[_0x7f5b2f('0x539')],_0x5324f4),_0x3ec0c0&&_0x2c6459(_0x2ec003,_0x3ec0c0),_0x3e2576;}(_0xa0f7c2['default']['Component']);_0x21e899[_0x4b1c21('0x8fd')]=_0x276b26;},{'antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd')}],0x3a:[function(_0x4e726b,_0x22543c,_0x1a4c91){var _0x4fff4f=_0x38d28e;'use strict';Object[_0x4fff4f('0x751')](_0x1a4c91,'__esModule',{'value':!0x0}),_0x1a4c91[_0x4fff4f('0x8fd')]=void 0x0;var _0x660e16=_0x1a57ad(_0x4e726b(_0x4fff4f('0x2cd'))),_0x34614f=_0x1a57ad(_0x4e726b(_0x4fff4f('0x5'))),_0x8b00be=_0x4e726b(_0x4fff4f('0x836')),_0x2feec9=_0x4e726b(_0x4fff4f('0x738'));function _0x1a57ad(_0x73b1da){var _0x2bbfb4=_0x4fff4f;return _0x73b1da&&_0x73b1da[_0x2bbfb4('0x8bc')]?_0x73b1da:{'default':_0x73b1da};}function _0x90e838(_0xe6dcae){var _0x2bde83=_0x4fff4f;return(_0x90e838=_0x2bde83('0xa25')==typeof Symbol&&'symbol'==typeof Symbol[_0x2bde83('0x4ae')]?function(_0x5e017c){return typeof _0x5e017c;}:function(_0x546607){var _0x1f94d1=_0x2bde83;return _0x546607&&_0x1f94d1('0xa25')==typeof Symbol&&_0x546607[_0x1f94d1('0x63e')]===Symbol&&_0x546607!==Symbol[_0x1f94d1('0x539')]?'symbol':typeof _0x546607;})(_0xe6dcae);}function _0x5e90ba(_0x2dcf15,_0x2bb900){var _0x125912=_0x4fff4f,_0x352c29=Object[_0x125912('0xabc')](_0x2dcf15);if(Object[_0x125912('0xc50')]){var _0x1f2c1c=Object['getOwnPropertySymbols'](_0x2dcf15);_0x2bb900&&(_0x1f2c1c=_0x1f2c1c['filter'](function(_0x1ae336){var _0x57b39a=_0x125912;return Object[_0x57b39a('0x869')](_0x2dcf15,_0x1ae336)[_0x57b39a('0xdc2')];})),_0x352c29['push'][_0x125912('0x365')](_0x352c29,_0x1f2c1c);}return _0x352c29;}function _0x1f7908(_0x478a9c){var _0x3b3f86=_0x4fff4f;for(var _0x497a3a=0x1;_0x497a3a0xa&&_0x3e0b41[_0x580c78('0x488')](_0x52f6d6);}}},{'key':'hide','value':function(){var _0x95e0da=_0x57c770;this[_0x95e0da('0x4e1')]({'visible':!0x1});}},{'key':_0x57c770('0x45'),'value':function(){this['signature']['clear']();}},{'key':_0x57c770('0x18d'),'value':function(){var _0x5a8a8e=_0x57c770,_0x15d3a7=this['signature'][_0x5a8a8e('0x27f')]('image/png');this['onChange'](_0x15d3a7),this['setState']({'visible':!0x1});}},{'key':'render','value':function(){var _0x340112=_0x57c770,_0x1c0961=this,_0x32de05=this[_0x340112('0x22d')][_0x340112('0x7e9')];return _0x660e16['default'][_0x340112('0x6b7')](_0x660e16[_0x340112('0x8fd')][_0x340112('0x65d')],null,_0x660e16['default'][_0x340112('0x6b7')](_0x8b00be['Modal'],{'visible':this[_0x340112('0x7b0')][_0x340112('0xbf3')],'title':_0x340112('0xb7'),'maskClosable':!0x1,'centered':!0x0,'width':0x12c,'onCancel':function(){var _0x406a46=_0x340112;_0x1c0961[_0x406a46('0xafe')]();},'footer':[_0x660e16['default'][_0x340112('0x6b7')](_0x8b00be['Button'],{'key':_0x340112('0x536'),'onClick':function(){var _0x3022d0=_0x340112;_0x1c0961[_0x3022d0('0xafe')]();}},_0x340112('0x16a')),_0x660e16['default'][_0x340112('0x6b7')](_0x8b00be[_0x340112('0x6c5')],{'key':'clear','disabled':_0x32de05,'type':_0x340112('0xdcd'),'onClick':function(){var _0xf19a2c=_0x340112;_0x32de05||_0x1c0961[_0xf19a2c('0x45')]();}},_0x340112('0xbea')),_0x660e16['default'][_0x340112('0x6b7')](_0x8b00be[_0x340112('0x6c5')],{'key':'ok','disabled':_0x32de05,'type':_0x340112('0x878'),'onClick':function(){var _0xa130b4=_0x340112;_0x32de05||_0x1c0961[_0xa130b4('0x18d')]();}},_0x340112('0x52a'))]},_0x660e16[_0x340112('0x8fd')][_0x340112('0x6b7')](_0x34614f[_0x340112('0x8fd')],{'ref':function(_0x1f2ac2){var _0x263efb=_0x340112;_0x1c0961[_0x263efb('0x735')]=_0x1f2ac2,_0x1c0961['setSignature'](_0x1f2ac2);},'canvasProps':_0x1f7908({'width':0xfa,'height':0xc8,'className':_0x340112('0xa73')},_0x32de05?{'readOnly':_0x32de05}:{})})),_0x660e16[_0x340112('0x8fd')][_0x340112('0x6b7')](_0x8b00be[_0x340112('0x70a')],{'color':_0x340112('0x5d2'),'style':{'cursor':_0x340112('0xa4b')},'onClick':function(){var _0x1e3d2d=_0x340112;_0x1c0961[_0x1e3d2d('0x462')]();}},_0x660e16['default']['createElement'](_0x2feec9[_0x340112('0x8e2')],null),'\x20',_0x340112('0x989')));}}])&&_0x13a664(_0x5e3f2d[_0x57c770('0x539')],_0x7bfddf),_0x414f87&&_0x13a664(_0x5e3f2d,_0x414f87),_0x3abbf4;}(_0x660e16[_0x4fff4f('0x8fd')]['Component']);_0x1a4c91[_0x4fff4f('0x8fd')]=_0x1dd382;},{'@ant-design/icons':_0x38d28e('0x738'),'antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd'),'react-signature-canvas':0x171}],0x3b:[function(_0x521cee,_0x42f767,_0x727158){var _0x2c627d=_0x38d28e;'use strict';Object[_0x2c627d('0x751')](_0x727158,_0x2c627d('0x8bc'),{'value':!0x0}),_0x727158[_0x2c627d('0x8fd')]=void 0x0;var _0x14486b=_0xafa9ad(_0x521cee(_0x2c627d('0x2cd'))),_0x111908=_0x521cee(_0x2c627d('0x836')),_0x45cfbc=_0xafa9ad(_0x521cee(_0x2c627d('0x8f7')));function _0xafa9ad(_0x1e850d){var _0x32ac38=_0x2c627d;return _0x1e850d&&_0x1e850d[_0x32ac38('0x8bc')]?_0x1e850d:{'default':_0x1e850d};}function _0x231bbc(_0x51a0fe){var _0x5550b2=_0x2c627d;return(_0x231bbc=_0x5550b2('0xa25')==typeof Symbol&&_0x5550b2('0xb5')==typeof Symbol['iterator']?function(_0x44921b){return typeof _0x44921b;}:function(_0x2af7a9){var _0x28f68d=_0x5550b2;return _0x2af7a9&&_0x28f68d('0xa25')==typeof Symbol&&_0x2af7a9['constructor']===Symbol&&_0x2af7a9!==Symbol[_0x28f68d('0x539')]?_0x28f68d('0xb5'):typeof _0x2af7a9;})(_0x51a0fe);}function _0x3f68b9(_0x411d20){return function(_0xf887aa){var _0x5d905e=_0x1c0e;if(Array[_0x5d905e('0xff')](_0xf887aa))return _0x262de1(_0xf887aa);}(_0x411d20)||function(_0x16b62f){var _0x44ab10=_0x1c0e;if(_0x44ab10('0xbfa')!=typeof Symbol&&Symbol['iterator']in Object(_0x16b62f))return Array[_0x44ab10('0x40e')](_0x16b62f);}(_0x411d20)||_0x344cc3(_0x411d20)||function(){var _0x54e26b=_0x1c0e;throw new TypeError(_0x54e26b('0x542'));}();}function _0x40b2f4(_0x442bcb,_0x40de59){return function(_0x7e772b){if(Array['isArray'](_0x7e772b))return _0x7e772b;}(_0x442bcb)||function(_0x1c69a8,_0x4aba39){var _0x23744d=_0x1c0e;if(_0x23744d('0xbfa')==typeof Symbol||!(Symbol[_0x23744d('0x4ae')]in Object(_0x1c69a8)))return;var _0x3a36ca=[],_0x946d76=!0x0,_0x5d646b=!0x1,_0x4cade3=void 0x0;try{for(var _0x3d11bd,_0x45fd28=_0x1c69a8[Symbol[_0x23744d('0x4ae')]]();!(_0x946d76=(_0x3d11bd=_0x45fd28[_0x23744d('0x998')]())[_0x23744d('0xa9a')])&&(_0x3a36ca[_0x23744d('0xb2')](_0x3d11bd[_0x23744d('0x920')]),!_0x4aba39||_0x3a36ca[_0x23744d('0x796')]!==_0x4aba39);_0x946d76=!0x0);}catch(_0x41686e){_0x5d646b=!0x0,_0x4cade3=_0x41686e;}finally{try{_0x946d76||null==_0x45fd28['return']||_0x45fd28[_0x23744d('0xd9e')]();}finally{if(_0x5d646b)throw _0x4cade3;}}return _0x3a36ca;}(_0x442bcb,_0x40de59)||_0x344cc3(_0x442bcb,_0x40de59)||function(){var _0x1eef9c=_0x1c0e;throw new TypeError(_0x1eef9c('0x623'));}();}function _0x344cc3(_0x68bb5b,_0x28034a){var _0x539654=_0x2c627d;if(_0x68bb5b){if(_0x539654('0x3fd')==typeof _0x68bb5b)return _0x262de1(_0x68bb5b,_0x28034a);var _0x2bc0b2=Object[_0x539654('0x539')][_0x539654('0x6e9')]['call'](_0x68bb5b)[_0x539654('0x5fe')](0x8,-0x1);return _0x539654('0xc5')===_0x2bc0b2&&_0x68bb5b[_0x539654('0x63e')]&&(_0x2bc0b2=_0x68bb5b[_0x539654('0x63e')][_0x539654('0xce')]),_0x539654('0x486')===_0x2bc0b2||'Set'===_0x2bc0b2?Array[_0x539654('0x40e')](_0x2bc0b2):'Arguments'===_0x2bc0b2||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x539654('0x96c')](_0x2bc0b2)?_0x262de1(_0x68bb5b,_0x28034a):void 0x0;}}function _0x262de1(_0x48223c,_0x156162){var _0x3d1929=_0x2c627d;(null==_0x156162||_0x156162>_0x48223c[_0x3d1929('0x796')])&&(_0x156162=_0x48223c['length']);for(var _0x3b4ca3=0x0,_0x38c5b2=new Array(_0x156162);_0x3b4ca3<_0x156162;_0x3b4ca3++)_0x38c5b2[_0x3b4ca3]=_0x48223c[_0x3b4ca3];return _0x38c5b2;}function _0x2262eb(_0x4066f5,_0x515b81,_0x48556b,_0x3e0c29,_0x391cbb,_0x247700,_0x2c2511){var _0x4d13de=_0x2c627d;try{var _0x42be54=_0x4066f5[_0x247700](_0x2c2511),_0x2b241c=_0x42be54['value'];}catch(_0x24801e){return void _0x48556b(_0x24801e);}_0x42be54[_0x4d13de('0xa9a')]?_0x515b81(_0x2b241c):Promise[_0x4d13de('0x1d6')](_0x2b241c)[_0x4d13de('0x13b')](_0x3e0c29,_0x391cbb);}function _0x29ec3a(_0xe88f09){return function(){var _0xf3f519=this,_0x4672f6=arguments;return new Promise(function(_0x25a04d,_0x90f32){var _0x43e741=_0x1c0e,_0x582141=_0xe88f09[_0x43e741('0x365')](_0xf3f519,_0x4672f6);function _0xb563bb(_0x3fc95e){var _0x288c44=_0x43e741;_0x2262eb(_0x582141,_0x25a04d,_0x90f32,_0xb563bb,_0x360918,_0x288c44('0x998'),_0x3fc95e);}function _0x360918(_0x3d49d0){var _0x48f69e=_0x43e741;_0x2262eb(_0x582141,_0x25a04d,_0x90f32,_0xb563bb,_0x360918,_0x48f69e('0xac1'),_0x3d49d0);}_0xb563bb(void 0x0);});};}function _0x119c0a(_0x5bf73c,_0x1bed5c){var _0x5b3242=_0x2c627d,_0x3a1c3d=Object[_0x5b3242('0xabc')](_0x5bf73c);if(Object[_0x5b3242('0xc50')]){var _0xffa9e1=Object[_0x5b3242('0xc50')](_0x5bf73c);_0x1bed5c&&(_0xffa9e1=_0xffa9e1[_0x5b3242('0x774')](function(_0x53318d){var _0x1c444e=_0x5b3242;return Object['getOwnPropertyDescriptor'](_0x5bf73c,_0x53318d)[_0x1c444e('0xdc2')];})),_0x3a1c3d[_0x5b3242('0xb2')]['apply'](_0x3a1c3d,_0xffa9e1);}return _0x3a1c3d;}function _0x5d99e6(_0xbeacc4,_0xf86cf4,_0xa27fe){var _0x55a5d1=_0x2c627d;return _0xf86cf4 in _0xbeacc4?Object[_0x55a5d1('0x751')](_0xbeacc4,_0xf86cf4,{'value':_0xa27fe,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):_0xbeacc4[_0xf86cf4]=_0xa27fe,_0xbeacc4;}function _0x3ed097(_0x48d2c6,_0x587613){var _0x3bcd5b=_0x2c627d;for(var _0x1c543a=0x0;_0x1c543a<_0x587613[_0x3bcd5b('0x796')];_0x1c543a++){var _0x2e739a=_0x587613[_0x1c543a];_0x2e739a[_0x3bcd5b('0xdc2')]=_0x2e739a[_0x3bcd5b('0xdc2')]||!0x1,_0x2e739a[_0x3bcd5b('0x48d')]=!0x0,_0x3bcd5b('0x920')in _0x2e739a&&(_0x2e739a[_0x3bcd5b('0x903')]=!0x0),Object[_0x3bcd5b('0x751')](_0x48d2c6,_0x2e739a[_0x3bcd5b('0x3ba')],_0x2e739a);}}function _0x5287bf(_0x5754c0,_0x588d33){var _0x59ed13=_0x2c627d;return!_0x588d33||'object'!==_0x231bbc(_0x588d33)&&_0x59ed13('0xa25')!=typeof _0x588d33?function(_0x3fae52){if(void 0x0===_0x3fae52)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x3fae52;}(_0x5754c0):_0x588d33;}function _0x506571(){var _0x3fde8e=_0x2c627d;if(_0x3fde8e('0xbfa')==typeof Reflect||!Reflect[_0x3fde8e('0x195')])return!0x1;if(Reflect[_0x3fde8e('0x195')][_0x3fde8e('0x460')])return!0x1;if(_0x3fde8e('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x3fde8e('0x539')][_0x3fde8e('0x6e9')][_0x3fde8e('0x964')](Reflect[_0x3fde8e('0x195')](Date,[],function(){})),!0x0;}catch(_0x107384){return!0x1;}}function _0x4e74a3(_0x427dfd){var _0x3a774a=_0x2c627d;return(_0x4e74a3=Object[_0x3a774a('0x489')]?Object[_0x3a774a('0x85e')]:function(_0x2b8eae){var _0x20b654=_0x3a774a;return _0x2b8eae[_0x20b654('0xcb9')]||Object[_0x20b654('0x85e')](_0x2b8eae);})(_0x427dfd);}function _0x2ce844(_0x4c79c0,_0x4e8555){var _0x4a91c0=_0x2c627d;return(_0x2ce844=Object[_0x4a91c0('0x489')]||function(_0x3d818e,_0x236834){var _0xf0a604=_0x4a91c0;return _0x3d818e[_0xf0a604('0xcb9')]=_0x236834,_0x3d818e;})(_0x4c79c0,_0x4e8555);}var _0x71e4ee=_0x111908[_0x2c627d('0x384')][_0x2c627d('0xd1b')],_0x7fda42=function(_0x2186bc){var _0x2bc3f5=_0x2c627d;!function(_0x42ac67,_0x2760ac){var _0x77c35=_0x1c0e;if(_0x77c35('0xa25')!=typeof _0x2760ac&&null!==_0x2760ac)throw new TypeError(_0x77c35('0xc4b'));_0x42ac67[_0x77c35('0x539')]=Object[_0x77c35('0x3e2')](_0x2760ac&&_0x2760ac[_0x77c35('0x539')],{'constructor':{'value':_0x42ac67,'writable':!0x0,'configurable':!0x0}}),_0x2760ac&&_0x2ce844(_0x42ac67,_0x2760ac);}(_0x430389,_0x2186bc);var _0x4b6321,_0x175922,_0xd655bd,_0x287598,_0x288d94,_0xdebe03,_0x1d6beb=(_0x4b6321=_0x430389,function(){var _0x2c2d20=_0x1c0e,_0x3fb19e,_0x1a42f1=_0x4e74a3(_0x4b6321);if(_0x506571()){var _0x3680a6=_0x4e74a3(this)[_0x2c2d20('0x63e')];_0x3fb19e=Reflect[_0x2c2d20('0x195')](_0x1a42f1,arguments,_0x3680a6);}else _0x3fb19e=_0x1a42f1[_0x2c2d20('0x365')](this,arguments);return _0x5287bf(this,_0x3fb19e);});function _0x430389(_0x257046){var _0xe7deab=_0x1c0e,_0x1e2d0d;!function(_0x56e2c2,_0x132a7d){var _0x583fba=_0x1c0e;if(!(_0x56e2c2 instanceof _0x132a7d))throw new TypeError(_0x583fba('0x9a0'));}(this,_0x430389),(_0x1e2d0d=_0x1d6beb[_0xe7deab('0x964')](this,_0x257046))[_0xe7deab('0xbb3')]=_0x257046[_0xe7deab('0xbb3')];var _0x283060=_0x1e2d0d[_0xe7deab('0x22d')][_0xe7deab('0x361')][_0xe7deab('0xc78')](function(_0x5619cb){var _0x3d8a83=_0xe7deab;return function(_0x460e5e){var _0x75f77b=_0x1c0e;for(var _0x3f4dc9=0x1;_0x3f4dc90x0&&_0x14486b[_0x17d203('0x8fd')]['createElement'](_0x111908[_0x17d203('0x6c5')],{'onClick':function(){var _0x964c74=_0x17d203;return _0x6792c7[_0x964c74('0x501')]();}},_0xe85db0['gt'](_0x17d203('0x883'))))),_0x14486b[_0x17d203('0x8fd')][_0x17d203('0x6b7')](_0x111908[_0x17d203('0x54d')],{'className':'gutter-row','span':0xc,'style':{'textAlign':_0x17d203('0xbbc')}},_0x14486b[_0x17d203('0x8fd')]['createElement'](_0x111908[_0x17d203('0xaef')],null,_0x14486b[_0x17d203('0x8fd')][_0x17d203('0x6b7')](_0x111908[_0x17d203('0x6c5')],{'onClick':function(){var _0x387db5=_0x17d203;return _0x6792c7['props'][_0x387db5('0x4e6')]();}},_0xe85db0['gt'](_0x17d203('0x16a'))),_0x14486b[_0x17d203('0x8fd')][_0x17d203('0x6b7')](_0x111908['Button'],{'type':'primary','loading':this[_0x17d203('0x7b0')][_0x17d203('0x704')],'onClick':function(){return _0x6792c7['saveData']();}},_0xe85db0['gt'](_0x17d203('0x886'))))))));}},{'key':'saveData','value':(_0xdebe03=_0x29ec3a(regeneratorRuntime[_0x2bc3f5('0x5e3')](function _0x1def5e(){var _0x27d484=_0x2bc3f5,_0x2e1daf,_0x3da3d7=this;return regeneratorRuntime[_0x27d484('0x7c5')](function(_0x44a675){var _0x14671d=_0x27d484;for(;;)switch(_0x44a675[_0x14671d('0x501')]=_0x44a675[_0x14671d('0x998')]){case 0x0:return this[_0x14671d('0x4e1')]({'loading':!0x0}),_0x44a675[_0x14671d('0x998')]=0x3,this[_0x14671d('0x82a')](!0x0);case 0x3:(_0x2e1daf=_0x44a675[_0x14671d('0xbf7')])&&this[_0x14671d('0x18d')](_0x2e1daf,function(){var _0x1c9670=_0x14671d;return _0x3da3d7[_0x1c9670('0x22d')][_0x1c9670('0x4e6')]();}),this[_0x14671d('0x4e1')]({'loading':!0x1});case 0x6:case _0x14671d('0x9ef'):return _0x44a675[_0x14671d('0x884')]();}},_0x1def5e,this);})),function(){return _0xdebe03['apply'](this,arguments);})},{'key':'save','value':function(_0x30456a,_0x387347){var _0x541938=_0x2bc3f5,_0x493725=this,_0x3d3092=this['props'][_0x541938('0xdad')];_0x3d3092[_0x541938('0x970')](_0x30456a,[],function(){var _0x50ab6f=_0x541938;return _0x3d3092[_0x50ab6f('0xda6')]([]);},function(){var _0x41b1b3=_0x541938;_0x493725['resetFields'](),_0x493725[_0x41b1b3('0xb24')](!0x1),_0x387347();});}},{'key':_0x2bc3f5('0xdc4'),'value':function(_0x22b0ca){var _0x447fc8=_0x2bc3f5,_0x54c9c0=this;this['state'][_0x447fc8('0x174')]['forEach'](function(_0x5874a5){var _0x35acb5=_0x447fc8,_0x1ed2cb={};_0x5874a5[_0x35acb5('0x361')][_0x35acb5('0xc21')](function(_0x822496){var _0x109926=_0x40b2f4(_0x822496,0x1)[0x0];_0x1ed2cb[_0x109926]=_0x22b0ca[_0x109926];}),_0x54c9c0[_0x35acb5('0x61d')](_0x5874a5[_0x35acb5('0xb6a')],_0x5874a5['fields'],_0x1ed2cb);});}},{'key':_0x2bc3f5('0x61d'),'value':function(_0x1f965b,_0x417b9e,_0x139ea6){var _0xfbdd3a=_0x2bc3f5;if(_0x139ea6=this['dataToFormFields'](_0x139ea6,_0x417b9e),_0x1f965b['current'][_0xfbdd3a('0x2b2')](),null!=_0x139ea6)try{_0x1f965b[_0xfbdd3a('0xaf8')][_0xfbdd3a('0x1b6')](_0x139ea6);}catch(_0x47f0c2){console[_0xfbdd3a('0x7f1')](_0x47f0c2);}}},{'key':_0x2bc3f5('0x82a'),'value':(_0x288d94=_0x29ec3a(regeneratorRuntime[_0x2bc3f5('0x5e3')](function _0x4fc7f3(_0x2d52ba){var _0x23355f=_0x2bc3f5,_0x537e5b,_0xa79f58,_0x45625a,_0x5610ce,_0x2b0685,_0x37d87b,_0x318915,_0x4f7aa3,_0x2b4462;return regeneratorRuntime[_0x23355f('0x7c5')](function(_0x1efd41){var _0x50cc5d=_0x23355f;for(;;)switch(_0x1efd41['prev']=_0x1efd41[_0x50cc5d('0x998')]){case 0x0:return _0x537e5b=this['props'][_0x50cc5d('0xdad')],_0xa79f58=_0x2d52ba?this['state']['steps']:this[_0x50cc5d('0x7b0')][_0x50cc5d('0x174')][_0x50cc5d('0x5fe')](0x0,this['state']['current']+0x1),_0x45625a=_0xa79f58[_0x50cc5d('0xc78')](function(_0xe89687){var _0x2ae688=_0x50cc5d;return _0xe89687[_0x2ae688('0xb6a')][_0x2ae688('0xaf8')][_0x2ae688('0x82a')]()[_0x2ae688('0x13b')](function(_0x1da8c1){var _0x584e14=_0x2ae688;return!!_0xe89687['ref']['current'][_0x584e14('0x42b')]()&&_0x1da8c1;})[_0x2ae688('0x94')](function(){return!0x1;});}),_0x1efd41[_0x50cc5d('0x998')]=0x5,Promise['all'](_0x45625a);case 0x5:if(_0x5610ce=_0x1efd41[_0x50cc5d('0xbf7')],!((_0x2b0685=_0x5610ce['findIndex'](function(_0x326c05){return!0x1===_0x326c05;}))>=0x0)){_0x1efd41[_0x50cc5d('0x998')]=0xa;break;}return this['setState']({'current':_0x2b0685}),_0x1efd41[_0x50cc5d('0x50e')](_0x50cc5d('0xd9e'),!0x1);case 0xa:if(_0x37d87b=Object[_0x50cc5d('0xd71')][_0x50cc5d('0x365')](Object,[{}]['concat'](_0x3f68b9(_0x5610ce))),_0x37d87b=_0x537e5b[_0x50cc5d('0x52f')](_0x37d87b),null===(_0x318915=_0x537e5b[_0x50cc5d('0xd0f')](_0x37d87b))){_0x1efd41[_0x50cc5d('0x998')]=0x10;break;}return this[_0x50cc5d('0xb24')](_0x318915),_0x1efd41['abrupt']('return',!0x1);case 0x10:return _0x537e5b[_0x50cc5d('0x82c')]&&(_0x37d87b[_0x50cc5d('0xcda')]=$('#'[_0x50cc5d('0x4c2')](_0x537e5b[_0x50cc5d('0x316')](),'Form'))[_0x50cc5d('0x38')](_0x50cc5d('0xcda'))),null!=(_0x4f7aa3=null!=_0x537e5b['currentElement']?_0x537e5b[_0x50cc5d('0x32c')]['id']:null)&&''!==_0x4f7aa3&&(_0x37d87b['id']=_0x4f7aa3),_0x2b4462=[][_0x50cc5d('0x4c2')][_0x50cc5d('0x365')]([],this[_0x50cc5d('0x7b0')]['steps'][_0x50cc5d('0xc78')](function(_0x1c37e8){var _0xb31132=_0x50cc5d;return _0x1c37e8[_0xb31132('0x361')];})),_0x1efd41[_0x50cc5d('0x50e')]('return',this[_0x50cc5d('0xab6')](_0x37d87b,_0x2b4462));case 0x15:case _0x50cc5d('0x9ef'):return _0x1efd41[_0x50cc5d('0x884')]();}},_0x4fc7f3,this);})),function(_0x1a9ce9){var _0x21735d=_0x2bc3f5;return _0x288d94[_0x21735d('0x365')](this,arguments);})},{'key':_0x2bc3f5('0xa43'),'value':function(_0x530d13,_0xb15894,_0x34fb2d){var _0x2ef414=_0x2bc3f5,_0x5dc5ce=this['props'][_0x2ef414('0xdad')],_0x3a4e65=_0x34fb2d;_0x3a4e65=_0x5dc5ce[_0x2ef414('0x52f')](_0x3a4e65);var _0x456334=_0x5dc5ce[_0x2ef414('0xd0f')](_0x3a4e65);if(null===_0x456334){_0x5dc5ce['csrfRequired']&&(_0x3a4e65[_0x2ef414('0xcda')]=$('#'[_0x2ef414('0x4c2')](_0x5dc5ce[_0x2ef414('0x316')](),_0x2ef414('0x805')))[_0x2ef414('0x38')](_0x2ef414('0xcda')));var _0x19ecca=null!=_0x5dc5ce[_0x2ef414('0x32c')]?_0x5dc5ce['currentElement']['id']:null;return null!=_0x19ecca&&''!==_0x19ecca&&(_0x3a4e65['id']=_0x19ecca),this['formFieldsToData'](_0x3a4e65,_0xb15894);}_0x530d13[_0x2ef414('0xaf8')][_0x2ef414('0xb24')](_0x456334);}},{'key':_0x2bc3f5('0xb24'),'value':function(_0x813df9){var _0x53a95e=_0x2bc3f5;this['state']['steps'][_0x53a95e('0xc21')](function(_0x59d086){var _0x44f84e=_0x53a95e;return _0x59d086[_0x44f84e('0xb6a')][_0x44f84e('0xaf8')][_0x44f84e('0xb24')](_0x813df9);});}},{'key':'resetFields','value':function(){var _0x38a590=_0x2bc3f5;this['state'][_0x38a590('0x174')][_0x38a590('0xc21')](function(_0xa5494d){var _0x29b8f2=_0x38a590;return _0xa5494d[_0x29b8f2('0xb6a')][_0x29b8f2('0xaf8')][_0x29b8f2('0x2b2')]();});}},{'key':_0x2bc3f5('0x74'),'value':function(){this['state']['steps']['forEach'](function(_0x2a79c2){var _0x1ff635=_0x1c0e;return _0x2a79c2[_0x1ff635('0xb6a')][_0x1ff635('0xaf8')]['hideError']();});}},{'key':_0x2bc3f5('0xab3'),'value':function(){var _0xa32420=_0x2bc3f5;return this[_0xa32420('0x7b0')][_0xa32420('0x174')][_0xa32420('0x145')](function(_0x5722bc,_0x263dfc){var _0x59081b=_0xa32420;return _0x5722bc&&null!=_0x263dfc['ref'][_0x59081b('0xaf8')];},!0x0);}}])&&_0x3ed097(_0x175922[_0x2bc3f5('0x539')],_0xd655bd),_0x287598&&_0x3ed097(_0x175922,_0x287598),_0x430389;}(_0x45cfbc[_0x2c627d('0x8fd')]);_0x727158[_0x2c627d('0x8fd')]=_0x7fda42;},{'./IceForm':0x36,'antd':_0x38d28e('0x836'),'react':'react'}],0x3c:[function(_0x53f7ab,_0x2a2240,_0x5bc7e7){var _0x14478b=_0x38d28e;'use strict';Object[_0x14478b('0x751')](_0x5bc7e7,'__esModule',{'value':!0x0}),_0x5bc7e7[_0x14478b('0x8fd')]=void 0x0;var _0x31ad79=_0x3598e6(_0x53f7ab(_0x14478b('0x2cd'))),_0xfa829f=_0x53f7ab(_0x14478b('0x836')),_0x252c07=_0x3598e6(_0x53f7ab(_0x14478b('0xd84'))),_0x36f0ae=_0x3598e6(_0x53f7ab('./IceStepForm'));function _0x3598e6(_0x12deea){var _0x1de686=_0x14478b;return _0x12deea&&_0x12deea[_0x1de686('0x8bc')]?_0x12deea:{'default':_0x12deea};}function _0x9a3eef(_0x5ea8ab){var _0x3f1bc6=_0x14478b;return(_0x9a3eef=_0x3f1bc6('0xa25')==typeof Symbol&&_0x3f1bc6('0xb5')==typeof Symbol[_0x3f1bc6('0x4ae')]?function(_0x15729a){return typeof _0x15729a;}:function(_0x76aa65){var _0x1a7e1d=_0x3f1bc6;return _0x76aa65&&'function'==typeof Symbol&&_0x76aa65['constructor']===Symbol&&_0x76aa65!==Symbol[_0x1a7e1d('0x539')]?'symbol':typeof _0x76aa65;})(_0x5ea8ab);}function _0x191772(_0x570111,_0x45ded7){var _0x3429bb=_0x14478b;for(var _0x1e777d=0x0;_0x1e777d<_0x45ded7['length'];_0x1e777d++){var _0x31c6b5=_0x45ded7[_0x1e777d];_0x31c6b5[_0x3429bb('0xdc2')]=_0x31c6b5[_0x3429bb('0xdc2')]||!0x1,_0x31c6b5[_0x3429bb('0x48d')]=!0x0,_0x3429bb('0x920')in _0x31c6b5&&(_0x31c6b5[_0x3429bb('0x903')]=!0x0),Object[_0x3429bb('0x751')](_0x570111,_0x31c6b5['key'],_0x31c6b5);}}function _0x51e468(_0x49079d,_0x14a2b1){var _0x3a0a26=_0x14478b;return!_0x14a2b1||_0x3a0a26('0xbfd')!==_0x9a3eef(_0x14a2b1)&&'function'!=typeof _0x14a2b1?function(_0x404748){var _0x3ee0fa=_0x3a0a26;if(void 0x0===_0x404748)throw new ReferenceError(_0x3ee0fa('0xcf6'));return _0x404748;}(_0x49079d):_0x14a2b1;}function _0x2d51fe(){var _0x2426a4=_0x14478b;if(_0x2426a4('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x2426a4('0x195')][_0x2426a4('0x460')])return!0x1;if(_0x2426a4('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype']['toString'][_0x2426a4('0x964')](Reflect[_0x2426a4('0x195')](Date,[],function(){})),!0x0;}catch(_0x4b528e){return!0x1;}}function _0x5e6c19(_0x4c4386){var _0x2bddc7=_0x14478b;return(_0x5e6c19=Object['setPrototypeOf']?Object[_0x2bddc7('0x85e')]:function(_0x32914b){var _0x24c092=_0x2bddc7;return _0x32914b['__proto__']||Object[_0x24c092('0x85e')](_0x32914b);})(_0x4c4386);}function _0x151e35(_0x166841,_0x41f124){var _0x154e00=_0x14478b;return(_0x151e35=Object[_0x154e00('0x489')]||function(_0x184916,_0x5b0467){var _0x183c72=_0x154e00;return _0x184916[_0x183c72('0xcb9')]=_0x5b0467,_0x184916;})(_0x166841,_0x41f124);}var _0x205011=function(_0x15b52c){var _0x6350fa=_0x14478b;!function(_0x14378a,_0x2a187a){var _0x213869=_0x1c0e;if(_0x213869('0xa25')!=typeof _0x2a187a&&null!==_0x2a187a)throw new TypeError(_0x213869('0xc4b'));_0x14378a['prototype']=Object[_0x213869('0x3e2')](_0x2a187a&&_0x2a187a[_0x213869('0x539')],{'constructor':{'value':_0x14378a,'writable':!0x0,'configurable':!0x0}}),_0x2a187a&&_0x151e35(_0x14378a,_0x2a187a);}(_0x4de4fc,_0x15b52c);var _0x5ee49c,_0x4b343e,_0x47e7b5,_0x55f981,_0x258cf3=(_0x5ee49c=_0x4de4fc,function(){var _0xd7493d=_0x1c0e,_0x1de600,_0x457a36=_0x5e6c19(_0x5ee49c);if(_0x2d51fe()){var _0x15af8a=_0x5e6c19(this)[_0xd7493d('0x63e')];_0x1de600=Reflect['construct'](_0x457a36,arguments,_0x15af8a);}else _0x1de600=_0x457a36[_0xd7493d('0x365')](this,arguments);return _0x51e468(this,_0x1de600);});function _0x4de4fc(_0x49dd43){var _0x1d6ff4=_0x1c0e,_0x3a1478;return function(_0x1206ab,_0x576fab){var _0xb1db5c=_0x1c0e;if(!(_0x1206ab instanceof _0x576fab))throw new TypeError(_0xb1db5c('0x9a0'));}(this,_0x4de4fc),(_0x3a1478=_0x258cf3['call'](this,_0x49dd43))[_0x1d6ff4('0x5f9')]=0x352,_0x3a1478;}return _0x4b343e=_0x4de4fc,(_0x47e7b5=[{'key':_0x6350fa('0x462'),'value':function(_0x37749b){var _0x300b71=_0x6350fa,_0x35de8a=this;this[_0x300b71('0x22d')]['adapter'][_0x300b71('0x55d')]=this['props'][_0x300b71('0xdad')][_0x300b71('0x74e')]?this[_0x300b71('0x22d')]['adapter'][_0x300b71('0x74e')](_0x37749b):function(_0x251fa9,_0x2b209d){return _0x2b209d;},_0x37749b?(this[_0x300b71('0x4e1')]({'visible':!0x0}),this[_0x300b71('0xcc4')][_0x300b71('0xaf8')]&&this[_0x300b71('0xcc4')]['current'][_0x300b71('0xab3')]()?(this['iceFormReference'][_0x300b71('0xaf8')][_0x300b71('0xb10')](0x0),this[_0x300b71('0xcc4')]['current']['updateFields'](_0x37749b)):this[_0x300b71('0x933')](function(){var _0x25b244=_0x300b71;return _0x35de8a[_0x25b244('0xcc4')][_0x25b244('0xaf8')]&&_0x35de8a[_0x25b244('0xcc4')][_0x25b244('0xaf8')][_0x25b244('0xab3')]();},function(){var _0x3c2612=_0x300b71;_0x35de8a[_0x3c2612('0xcc4')][_0x3c2612('0xaf8')][_0x3c2612('0xdc4')](_0x37749b),_0x35de8a[_0x3c2612('0xcc4')][_0x3c2612('0xaf8')]['moveToStep'](0x0);},0x3e8)):(this[_0x300b71('0x4e1')]({'visible':!0x0}),this[_0x300b71('0xcc4')]['current']&&this['iceFormReference'][_0x300b71('0xaf8')][_0x300b71('0x2b2')]());}},{'key':_0x6350fa('0xafe'),'value':function(){var _0x24470a=_0x6350fa;this[_0x24470a('0xcc4')][_0x24470a('0xaf8')][_0x24470a('0xb10')](0x0),this[_0x24470a('0x4e1')]({'visible':!0x1});}},{'key':_0x6350fa('0x358'),'value':function(){var _0x2a01e9=_0x6350fa,_0x23eefb=this,_0x49adb0=this['props'],_0x4f09fc=_0x49adb0[_0x2a01e9('0x361')],_0x2ff29f=_0x49adb0[_0x2a01e9('0xdad')],_0x141fb3=this[_0x2a01e9('0x22d')][_0x2a01e9('0xdad')]['getFormOptions'](),_0x514969=_0x141fb3[_0x2a01e9('0x5f9')],_0x268829=_0x141fb3[_0x2a01e9('0x7ad')],_0x10b355=_0x141fb3[_0x2a01e9('0x63a')];return _0x31ad79[_0x2a01e9('0x8fd')][_0x2a01e9('0x6b7')](_0xfa829f['Modal'],{'visible':this[_0x2a01e9('0x7b0')][_0x2a01e9('0xbf3')],'title':this[_0x2a01e9('0x22d')][_0x2a01e9('0xdad')]['gt'](this[_0x2a01e9('0x22d')][_0x2a01e9('0xd93')]||_0x2ff29f['objectTypeName']),'maskClosable':!0x1,'width':_0x514969||this[_0x2a01e9('0x5f9')],'footer':[],'onCancel':function(){var _0x27c949=_0x2a01e9;_0x23eefb[_0x27c949('0x4e6')]();}},_0x31ad79[_0x2a01e9('0x8fd')][_0x2a01e9('0x6b7')](_0x36f0ae[_0x2a01e9('0x8fd')],{'ref':this['iceFormReference'],'adapter':_0x2ff29f,'fields':_0x4f09fc,'closeModal':function(){var _0x2471dd=_0x2a01e9;_0x23eefb[_0x2471dd('0x4e6')]();},'twoColumnLayout':_0x268829||!0x1,'layout':_0x10b355}));}}])&&_0x191772(_0x4b343e['prototype'],_0x47e7b5),_0x55f981&&_0x191772(_0x4b343e,_0x55f981),_0x4de4fc;}(_0x252c07['default']);_0x5bc7e7['default']=_0x205011;},{'./IceFormModal':0x37,'./IceStepForm':0x3b,'antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd')}],0x3d:[function(_0x189674,_0x4ecb95,_0x324b1c){var _0x109ecd=_0x38d28e;'use strict';Object['defineProperty'](_0x324b1c,_0x109ecd('0x8bc'),{'value':!0x0}),_0x324b1c[_0x109ecd('0x8fd')]=void 0x0;var _0x36272b=function(_0x2b2a40){var _0x82ceb4=_0x109ecd;if(_0x2b2a40&&_0x2b2a40[_0x82ceb4('0x8bc')])return _0x2b2a40;if(null===_0x2b2a40||_0x82ceb4('0xbfd')!==_0x10ba9a(_0x2b2a40)&&'function'!=typeof _0x2b2a40)return{'default':_0x2b2a40};var _0x5a4458=_0x221275();if(_0x5a4458&&_0x5a4458['has'](_0x2b2a40))return _0x5a4458[_0x82ceb4('0xda6')](_0x2b2a40);var _0x5310e8={},_0x5de465=Object[_0x82ceb4('0x751')]&&Object['getOwnPropertyDescriptor'];for(var _0x188749 in _0x2b2a40)if(Object['prototype'][_0x82ceb4('0x1a8')][_0x82ceb4('0x964')](_0x2b2a40,_0x188749)){var _0x111017=_0x5de465?Object['getOwnPropertyDescriptor'](_0x2b2a40,_0x188749):null;_0x111017&&(_0x111017[_0x82ceb4('0xda6')]||_0x111017[_0x82ceb4('0x7f8')])?Object['defineProperty'](_0x5310e8,_0x188749,_0x111017):_0x5310e8[_0x188749]=_0x2b2a40[_0x188749];}return _0x5310e8[_0x82ceb4('0x8fd')]=_0x2b2a40,_0x5a4458&&_0x5a4458['set'](_0x2b2a40,_0x5310e8),_0x5310e8;}(_0x189674(_0x109ecd('0x2cd'))),_0x4bd070=_0x189674(_0x109ecd('0x836')),_0x19cceb=_0x189674('@ant-design/icons');function _0x221275(){var _0x34ab30=_0x109ecd;if(_0x34ab30('0xa25')!=typeof WeakMap)return null;var _0x318636=new WeakMap();return _0x221275=function(){return _0x318636;},_0x318636;}function _0x10ba9a(_0x4a2da6){var _0x5a565a=_0x109ecd;return(_0x10ba9a=_0x5a565a('0xa25')==typeof Symbol&&_0x5a565a('0xb5')==typeof Symbol[_0x5a565a('0x4ae')]?function(_0x4bbb62){return typeof _0x4bbb62;}:function(_0x17e7df){var _0xe8198d=_0x5a565a;return _0x17e7df&&_0xe8198d('0xa25')==typeof Symbol&&_0x17e7df[_0xe8198d('0x63e')]===Symbol&&_0x17e7df!==Symbol[_0xe8198d('0x539')]?_0xe8198d('0xb5'):typeof _0x17e7df;})(_0x4a2da6);}function _0x437e84(_0x1a73bd,_0x1ab2df){var _0xb70680=_0x109ecd,_0x473868=Object[_0xb70680('0xabc')](_0x1a73bd);if(Object[_0xb70680('0xc50')]){var _0x4b343b=Object[_0xb70680('0xc50')](_0x1a73bd);_0x1ab2df&&(_0x4b343b=_0x4b343b['filter'](function(_0x1d54d6){var _0x2dbbe8=_0xb70680;return Object[_0x2dbbe8('0x869')](_0x1a73bd,_0x1d54d6)[_0x2dbbe8('0xdc2')];})),_0x473868[_0xb70680('0xb2')][_0xb70680('0x365')](_0x473868,_0x4b343b);}return _0x473868;}function _0x432f35(_0x203696){var _0x3a170b=_0x109ecd;for(var _0x46ef3c=0x1;_0x46ef3c0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:{};_0x3bfb95['setState']({'loading':!0x0});var _0x3d572d=_0x432f35({},_0x3bfb95[_0x1bb474('0x7b0')][_0x1bb474('0x9dc')]);if(_0x3bfb95[_0x1bb474('0x22d')][_0x1bb474('0xdad')][_0x1bb474('0x9ad')])try{var _0x5d92c7=_0x3bfb95['props']['reader'][_0x1bb474('0x37c')](_0x538870);_0x5d92c7[_0x1bb474('0x815')]?_0x3bfb95[_0x1bb474('0x4e1')]({'loading':!0x1,'data':_0x5d92c7['items'],'pagination':_0x3d572d,'showLoading':!0x1}):_0x3bfb95[_0x1bb474('0x22d')][_0x1bb474('0x175')]['clearCachedResponse'](_0x538870);}catch(_0x2a567b){_0x3bfb95['props'][_0x1bb474('0x175')][_0x1bb474('0x5e6')](_0x538870);}_0x3bfb95[_0x1bb474('0x22d')][_0x1bb474('0x175')][_0x1bb474('0xda6')](_0x538870)[_0x1bb474('0x13b')](function(_0xbfe318){var _0x4c5633=_0x1bb474;_0x3d572d[_0x4c5633('0xd10')]=_0xbfe318[_0x4c5633('0xd10')],_0x3bfb95[_0x4c5633('0x4e1')]({'loading':!0x1,'data':_0xbfe318[_0x4c5633('0x815')],'pagination':_0x3d572d,'showLoading':!0x1,'fetchCompleted':!0x0});});},_0x3bfb95;}return _0x28b95b=_0x4c03d9,(_0x1cbe0f=[{'key':_0x1591a5('0x494'),'value':function(){var _0x592442=_0x1591a5;_0x4bd070['message'][_0x592442('0x30e')]({'top':0x28}),this[_0x592442('0x4e1')]({'fetchConfig':{'page':0x1},'pagination':{'pageSize':this[_0x592442('0x22d')][_0x592442('0x175')]['pageSize']}});}},{'key':_0x1591a5('0x401'),'value':function(_0x22959f){this['setState']({'loading':_0x22959f});}},{'key':_0x1591a5('0x897'),'value':function(_0x2c84b9){var _0x5dc223=_0x1591a5,_0x2e25e5=this;return _0x36272b[_0x5dc223('0x8fd')][_0x5dc223('0x3b7')][_0x5dc223('0xc78')](this['props'][_0x5dc223('0x665')],function(_0x1392dd){var _0x21778e=_0x5dc223,_0x357d20={'element':_0x2c84b9,'adapter':_0x2e25e5[_0x21778e('0x22d')][_0x21778e('0xdad')],'loading':_0x2e25e5['state'][_0x21778e('0x704')]};return _0x36272b[_0x21778e('0x8fd')][_0x21778e('0x837')](_0x1392dd)?_0x36272b[_0x21778e('0x8fd')][_0x21778e('0xd82')](_0x1392dd,_0x357d20):_0x1392dd;});}},{'key':'render','value':function(){var _0x3f8052=_0x1591a5,_0x3ecdd4=this;return _0x36272b['default']['createElement'](_0x4bd070[_0x3f8052('0x1ab')],{'direction':'vertical','style':{'width':_0x3f8052('0xaa6')}},!this[_0x3f8052('0x7b0')][_0x3f8052('0x32c')]&&_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0x54d')],{'span':0x18},_0x36272b['default']['createElement'](_0x4bd070[_0x3f8052('0x1ab')],{'gutter':0x18},_0x36272b['default'][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0x54d')],{'span':0x12},_0x36272b['default'][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0xaef')],null,this[_0x3f8052('0x22d')]['adapter'][_0x3f8052('0x4dc')](_0x3f8052('0x18d'))&&this[_0x3f8052('0x22d')]['adapter']['getShowAddNew']()&&_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0x6c5')],{'type':_0x3f8052('0x878'),'onClick':this[_0x3f8052('0x795')]},_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x19cceb['PlusCircleOutlined'],null),_0x3f8052('0x611')),this[_0x3f8052('0x22d')][_0x3f8052('0xdad')][_0x3f8052('0xba3')]()&&_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0x6c5')],{'onClick':this['showFilters']},_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x19cceb[_0x3f8052('0x182')],null),_0x3f8052('0x11d')),this[_0x3f8052('0x7b0')][_0x3f8052('0x29b')]&&this[_0x3f8052('0x22d')][_0x3f8052('0xdad')][_0x3f8052('0xba3')]()&&null!=this[_0x3f8052('0x22d')][_0x3f8052('0xdad')]['filter']&&this[_0x3f8052('0x22d')][_0x3f8052('0xdad')][_0x3f8052('0x774')]!==[]&&''!==this[_0x3f8052('0x22d')][_0x3f8052('0xdad')][_0x3f8052('0x774')]&&''!==this[_0x3f8052('0x22d')][_0x3f8052('0xdad')][_0x3f8052('0x9c6')](this[_0x3f8052('0x22d')][_0x3f8052('0xdad')][_0x3f8052('0x774')])&&_0x36272b['default'][_0x3f8052('0x6b7')](_0x4bd070['Tag'],{'closable':!0x0,'style':{'lineHeight':'30px'},'color':_0x3f8052('0x5d2'),'onClose':function(){var _0x7148c8=_0x3f8052;return _0x3ecdd4[_0x7148c8('0x22d')][_0x7148c8('0xdad')][_0x7148c8('0x9ed')]();},'visible':null!=this['props'][_0x3f8052('0xdad')][_0x3f8052('0x774')]&&this['props']['adapter']['filter']!==[]&&''!==this[_0x3f8052('0x22d')][_0x3f8052('0xdad')][_0x3f8052('0x774')]},this['props'][_0x3f8052('0xdad')][_0x3f8052('0x9c6')](this[_0x3f8052('0x22d')]['adapter'][_0x3f8052('0x774')])))),_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070['Col'],{'span':0x6},_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0x805')],{'ref':function(_0x41174c){var _0x1e5273=_0x3f8052;return _0x3ecdd4[_0x1e5273('0x2e')]=_0x41174c;},'name':_0x3f8052('0xdb8'),'className':'ant-advanced-search-form'},_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0x805')][_0x3f8052('0x41a')],{'name':'searchTerm','label':'','rules':[{'required':!0x1}]},_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4c1078,{'placeholder':_0x3f8052('0x6e6'),'enterButton':_0x3f8052('0x8da'),'onSearch':function(_0x46c38f){var _0x27da7f=_0x3f8052;return _0x3ecdd4[_0x27da7f('0x7f')](_0x46c38f);}}))))),_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070[_0x3f8052('0x1ab')],{'gutter':0x18},_0x36272b[_0x3f8052('0x8fd')][_0x3f8052('0x6b7')](_0x4bd070['Col'],{'span':0x18},_0x36272b[_0x3f8052('0x8fd')]['createElement'](_0x4bd070[_0x3f8052('0xb3f')],{'rowClassName':function(_0x1c02c4,_0x1085bc){var _0x3dfebc=_0x3f8052;return _0x1085bc%0x2==0x0?_0x3dfebc('0x55f'):'table-row-dark';},'columns':this['props'][_0x3f8052('0xa33')],'rowKey':function(_0x1bc114){return _0x1bc114['id'];},'dataSource':this['state'][_0x3f8052('0x38')],'pagination':this['state']['pagination'],'loading':this[_0x3f8052('0x7b0')][_0x3f8052('0x704')],'onChange':this[_0x3f8052('0x88b')],'reader':this['props'][_0x3f8052('0xc9c')]})))),this['state'][_0x3f8052('0x32c')]&&this['getChildrenWithProps'](this['state'][_0x3f8052('0x32c')]));}}])&&_0x1ae496(_0x28b95b['prototype'],_0x1cbe0f),_0xc20dee&&_0x1ae496(_0x28b95b,_0xc20dee),_0x4c03d9;}(_0x36272b['default'][_0x109ecd('0x2c')]);_0x324b1c['default']=_0x4b0a1e;},{'@ant-design/icons':'@ant-design/icons','antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd')}],0x3e:[function(_0x3d4c05,_0x5a8fe1,_0x361de4){var _0x31e55c=_0x38d28e;'use strict';Object['defineProperty'](_0x361de4,_0x31e55c('0x8bc'),{'value':!0x0}),_0x361de4[_0x31e55c('0x8fd')]=void 0x0;var _0x43cbeb,_0x49b18e=(_0x43cbeb=_0x3d4c05('react'))&&_0x43cbeb[_0x31e55c('0x8bc')]?_0x43cbeb:{'default':_0x43cbeb},_0x1f3890=_0x3d4c05(_0x31e55c('0x836')),_0x492f58=_0x3d4c05(_0x31e55c('0x738'));function _0x40ee06(_0x96b83){var _0x380361=_0x31e55c;return(_0x40ee06=_0x380361('0xa25')==typeof Symbol&&'symbol'==typeof Symbol[_0x380361('0x4ae')]?function(_0x14fb88){return typeof _0x14fb88;}:function(_0x12062b){var _0x7198bb=_0x380361;return _0x12062b&&'function'==typeof Symbol&&_0x12062b[_0x7198bb('0x63e')]===Symbol&&_0x12062b!==Symbol[_0x7198bb('0x539')]?_0x7198bb('0xb5'):typeof _0x12062b;})(_0x96b83);}function _0x5b310a(){var _0x2d9c00=_0x31e55c;return(_0x5b310a=Object[_0x2d9c00('0xd71')]||function(_0x2a820c){var _0x12c233=_0x2d9c00;for(var _0x272a7c=0x1;_0x272a7c_0x1d1701[_0x1dc005('0x796')])&&(_0x2e3962=_0x1d1701['length']);for(var _0xe30c6e=0x0,_0x3de78d=new Array(_0x2e3962);_0xe30c6e<_0x2e3962;_0xe30c6e++)_0x3de78d[_0xe30c6e]=_0x1d1701[_0xe30c6e];return _0x3de78d;}function _0xc723d4(_0x3fdc44,_0x4fa933){var _0xf1c919=_0x31e55c;for(var _0x5552e8=0x0;_0x5552e8<_0x4fa933['length'];_0x5552e8++){var _0x4e7358=_0x4fa933[_0x5552e8];_0x4e7358[_0xf1c919('0xdc2')]=_0x4e7358[_0xf1c919('0xdc2')]||!0x1,_0x4e7358[_0xf1c919('0x48d')]=!0x0,_0xf1c919('0x920')in _0x4e7358&&(_0x4e7358[_0xf1c919('0x903')]=!0x0),Object[_0xf1c919('0x751')](_0x3fdc44,_0x4e7358['key'],_0x4e7358);}}function _0x47b01a(_0x4c4666,_0x4384cf){return!_0x4384cf||'object'!==_0x40ee06(_0x4384cf)&&'function'!=typeof _0x4384cf?function(_0x5a333a){var _0x1eaf0c=_0x1c0e;if(void 0x0===_0x5a333a)throw new ReferenceError(_0x1eaf0c('0xcf6'));return _0x5a333a;}(_0x4c4666):_0x4384cf;}function _0x174f5e(){var _0x2a9528=_0x31e55c;if(_0x2a9528('0xbfa')==typeof Reflect||!Reflect[_0x2a9528('0x195')])return!0x1;if(Reflect[_0x2a9528('0x195')]['sham'])return!0x1;if(_0x2a9528('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x2a9528('0x6e9')]['call'](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0xf847ee){return!0x1;}}function _0x2f16b0(_0x1b4ae8){return(_0x2f16b0=Object['setPrototypeOf']?Object['getPrototypeOf']:function(_0x1255bf){var _0x558337=_0x1c0e;return _0x1255bf[_0x558337('0xcb9')]||Object[_0x558337('0x85e')](_0x1255bf);})(_0x1b4ae8);}function _0x540f5b(_0x51133c,_0xc963e8){return(_0x540f5b=Object['setPrototypeOf']||function(_0x271024,_0x1346b2){return _0x271024['__proto__']=_0x1346b2,_0x271024;})(_0x51133c,_0xc963e8);}var _0x911bce=function(_0x41e872){var _0x14ca1e=_0x31e55c;!function(_0x1bc009,_0x1cb982){var _0x544436=_0x1c0e;if('function'!=typeof _0x1cb982&&null!==_0x1cb982)throw new TypeError(_0x544436('0xc4b'));_0x1bc009['prototype']=Object[_0x544436('0x3e2')](_0x1cb982&&_0x1cb982[_0x544436('0x539')],{'constructor':{'value':_0x1bc009,'writable':!0x0,'configurable':!0x0}}),_0x1cb982&&_0x540f5b(_0x1bc009,_0x1cb982);}(_0x1c5ce4,_0x41e872);var _0x10ce3c,_0xea65bb,_0x146f16,_0x1851ed,_0x25670c=(_0x10ce3c=_0x1c5ce4,function(){var _0x21feb9=_0x1c0e,_0x2dbdd6,_0x588b0c=_0x2f16b0(_0x10ce3c);if(_0x174f5e()){var _0x5e1022=_0x2f16b0(this)[_0x21feb9('0x63e')];_0x2dbdd6=Reflect[_0x21feb9('0x195')](_0x588b0c,arguments,_0x5e1022);}else _0x2dbdd6=_0x588b0c['apply'](this,arguments);return _0x47b01a(this,_0x2dbdd6);});function _0x1c5ce4(_0x14d46a){var _0x429bf3=_0x1c0e,_0xafa58b;return function(_0x2211e5,_0x476f7c){var _0x415bab=_0x1c0e;if(!(_0x2211e5 instanceof _0x476f7c))throw new TypeError(_0x415bab('0x9a0'));}(this,_0x1c5ce4),(_0xafa58b=_0x25670c['call'](this,_0x14d46a))[_0x429bf3('0x7b0')]={'fileList':[],'uploaded':!0x1},_0xafa58b[_0x429bf3('0x259')]=!0x1,_0xafa58b['handleDelete']=function(){var _0x356a7d=_0x429bf3;_0xafa58b[_0x356a7d('0x4e1')]({'fileList':[],'value':null,'uploaded':!0x1}),_0xafa58b['onChange'](null);},_0xafa58b['handleView']=function(){var _0x445222=_0x429bf3,_0x3430a4=_0xafa58b[_0x445222('0x22d')]['value'];(null!=_0xafa58b[_0x445222('0x7b0')][_0x445222('0x920')]&&''!==_0xafa58b[_0x445222('0x7b0')]['value']&&(_0x3430a4=_0xafa58b[_0x445222('0x7b0')][_0x445222('0x920')]),null!=_0x3430a4&&''!==_0x3430a4)?_0xafa58b['props'][_0x445222('0xdad')]['getFile'](_0x3430a4)[_0x445222('0x13b')](function(_0x4524f4){var _0x5128ba=_0x445222,_0x20e662={'key':_0x4524f4[_0x5128ba('0x2c2')],'uid':_0x4524f4[_0x5128ba('0x2c2')],'name':_0x4524f4[_0x5128ba('0xce')],'status':_0x4524f4['status'],'url':_0x4524f4[_0x5128ba('0x37f')]};window[_0x5128ba('0xcb4')](_0x20e662['url']);})[_0x445222('0x94')](function(_0x2b3fc7){}):_0x1f3890[_0x445222('0xb0a')][_0x445222('0xab4')](_0x445222('0xfb'));},_0xafa58b[_0x429bf3('0xacc')]=function(_0x191de1){var _0x4b7306=_0x429bf3,_0x191d59=_0x5d759c(_0x191de1[_0x4b7306('0x2f2')]);return 0x0===_0x191d59[_0x4b7306('0x796')]?(_0xafa58b[_0x4b7306('0x4e1')]({'value':null}),_0xafa58b['onChange'](null),_0xafa58b[_0x4b7306('0x4e1')]({'fileList':[]}),void _0xafa58b[_0x4b7306('0x4e1')]({'uploaded':!0x1})):(_0x191d59=_0x191d59[_0x4b7306('0x5fe')](-0x1))[0x0][_0x4b7306('0x6a7')]&&_0x4b7306('0xab4')===_0x191d59[0x0][_0x4b7306('0x6a7')][_0x4b7306('0x525')]?(_0xafa58b['setState']({'value':null}),_0xafa58b[_0x4b7306('0xbb3')](null),_0xafa58b[_0x4b7306('0x4e1')]({'fileList':[]}),_0xafa58b['setState']({'uploaded':!0x1}),void _0x1f3890[_0x4b7306('0xb0a')][_0x4b7306('0xab4')](_0x4b7306('0x9c0')[_0x4b7306('0x4c2')](_0x191d59[0x0][_0x4b7306('0x6a7')][_0x4b7306('0xb0a')]))):(_0x191d59=_0x191d59['map'](function(_0x46eebc){var _0x4e44bb=_0x4b7306;return _0x46eebc[_0x4e44bb('0x6a7')]&&(_0x46eebc[_0x4e44bb('0xce')]=_0x46eebc[_0x4e44bb('0x6a7')][_0x4e44bb('0xce')],_0x46eebc[_0x4e44bb('0x65b')]=_0x46eebc['response'][_0x4e44bb('0x65b')]),_0x46eebc;}),_0xafa58b[_0x4b7306('0x4e1')]({'fileList':_0x191d59}),_0xafa58b['setState']({'value':_0xafa58b[_0x4b7306('0xbcf')](_0x191d59),'uploaded':!0x0}),void _0xafa58b[_0x4b7306('0xbb3')](_0xafa58b['getFileName'](_0x191d59)));},_0xafa58b[_0x429bf3('0xbb3')]=_0x14d46a[_0x429bf3('0xbb3')],_0xafa58b;}return _0xea65bb=_0x1c5ce4,(_0x146f16=[{'key':_0x14ca1e('0x494'),'value':function(){var _0x3ac57a=_0x14ca1e;this[_0x3ac57a('0x259')]=!0x0,_0x1f3890[_0x3ac57a('0xb0a')][_0x3ac57a('0x30e')]({'top':0x37,'duration':0x2});}},{'key':_0x14ca1e('0xa2a'),'value':function(){var _0x430ad7=_0x14ca1e;this[_0x430ad7('0x259')]=!0x1;}},{'key':_0x14ca1e('0xbcf'),'value':function(_0x1f33be){var _0x52ac06=null;return _0x1f33be&&(_0x52ac06=_0x1f33be[0x0]),_0x52ac06?_0x52ac06['name']:'';}},{'key':_0x14ca1e('0x1e3'),'value':function(_0x3b03b6){var _0x50ba58=_0x14ca1e;for(var _0x17c9f4=new Date(),_0x32a6c7='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',_0x43fadc='',_0x2100a9=_0x3b03b6;_0x2100a9>0x0;--_0x2100a9)_0x43fadc+=_0x32a6c7[Math[_0x50ba58('0x763')](Math[_0x50ba58('0xd1d')]()*(_0x32a6c7[_0x50ba58('0x796')]-0x1))];return _0x43fadc+_0x17c9f4[_0x50ba58('0x2f4')]();}},{'key':'render','value':function(){var _0x2b53d0=_0x14ca1e,_0x5cb2a6=this[_0x2b53d0('0x1e3')](0xe),_0x546714={'action':''[_0x2b53d0('0x4c2')](window['CLIENT_BASE_URL'],_0x2b53d0('0x15c'))[_0x2b53d0('0x4c2')](this['props']['user'],_0x2b53d0('0x325'))[_0x2b53d0('0x4c2')](this[_0x2b53d0('0x22d')][_0x2b53d0('0x46f')],_0x2b53d0('0xb8e'))[_0x2b53d0('0x4c2')](_0x5cb2a6),'onChange':this[_0x2b53d0('0xacc')],'onRemove':this[_0x2b53d0('0x80a')],'multiple':!0x1,'listType':'picture'};return _0x49b18e[_0x2b53d0('0x8fd')][_0x2b53d0('0x6b7')](_0x1f3890['Space'],{'direction':_0x2b53d0('0xc0b')},!this[_0x2b53d0('0x22d')][_0x2b53d0('0x7e9')]&&_0x49b18e['default']['createElement'](_0x1f3890[_0x2b53d0('0xaef')],null,_0x49b18e[_0x2b53d0('0x8fd')][_0x2b53d0('0x6b7')](_0x1f3890[_0x2b53d0('0xd5b')],_0x5b310a({},_0x546714,{'fileList':this[_0x2b53d0('0x7b0')][_0x2b53d0('0x2f2')]}),_0x49b18e['default'][_0x2b53d0('0x6b7')](_0x1f3890[_0x2b53d0('0x70a')],{'color':_0x2b53d0('0x5d2'),'style':{'cursor':'pointer'}},_0x49b18e[_0x2b53d0('0x8fd')][_0x2b53d0('0x6b7')](_0x492f58['UploadOutlined'],null),'\x20','Upload'))),_0x49b18e[_0x2b53d0('0x8fd')][_0x2b53d0('0x6b7')](_0x1f3890[_0x2b53d0('0xaef')],null,(null!=this[_0x2b53d0('0x22d')][_0x2b53d0('0x920')]&&''!==this['props']['value']||null!=this[_0x2b53d0('0x7b0')][_0x2b53d0('0x920')]&&''!==this[_0x2b53d0('0x7b0')][_0x2b53d0('0x920')])&&!this['state'][_0x2b53d0('0xd05')]&&_0x49b18e[_0x2b53d0('0x8fd')]['createElement'](_0x1f3890['Button'],{'type':_0x2b53d0('0x888'),'htmlType':'button','onClick':this[_0x2b53d0('0xac7')]},_0x49b18e[_0x2b53d0('0x8fd')]['createElement'](_0x492f58['DownloadOutlined'],null),_0x2b53d0('0xa79')),(null!=this[_0x2b53d0('0x22d')][_0x2b53d0('0x920')]&&''!==this[_0x2b53d0('0x22d')][_0x2b53d0('0x920')]||null!=this[_0x2b53d0('0x7b0')]['value']&&''!==this[_0x2b53d0('0x7b0')][_0x2b53d0('0x920')])&&!this[_0x2b53d0('0x7b0')][_0x2b53d0('0xd05')]&&!this['props'][_0x2b53d0('0x7e9')]&&_0x49b18e[_0x2b53d0('0x8fd')][_0x2b53d0('0x6b7')](_0x1f3890[_0x2b53d0('0x6c5')],{'type':_0x2b53d0('0x888'),'htmlType':_0x2b53d0('0x790'),'danger':!0x0,'onClick':this['handleDelete']},_0x49b18e[_0x2b53d0('0x8fd')][_0x2b53d0('0x6b7')](_0x492f58['DeleteOutlined'],null),'\x20Delete')));}}])&&_0xc723d4(_0xea65bb[_0x14ca1e('0x539')],_0x146f16),_0x1851ed&&_0xc723d4(_0xea65bb,_0x1851ed),_0x1c5ce4;}(_0x49b18e[_0x31e55c('0x8fd')][_0x31e55c('0x2c')]);_0x361de4[_0x31e55c('0x8fd')]=_0x911bce;},{'@ant-design/icons':'@ant-design/icons','antd':_0x38d28e('0x836'),'react':'react'}],0x3f:[function(_0x5709cb,_0x232e17,_0x5b477f){var _0x50e68f=_0x38d28e;'use strict';Object['defineProperty'](_0x5b477f,_0x50e68f('0x8bc'),{'value':!0x0}),_0x5b477f[_0x50e68f('0x8fd')]=void 0x0;var _0x126fbb,_0x2b3147=(_0x126fbb=_0x5709cb(_0x50e68f('0x2cd')))&&_0x126fbb['__esModule']?_0x126fbb:{'default':_0x126fbb},_0x531fc1=_0x5709cb('antd');function _0x185632(_0x175fc3){var _0x804b46=_0x50e68f;return(_0x185632=_0x804b46('0xa25')==typeof Symbol&&_0x804b46('0xb5')==typeof Symbol[_0x804b46('0x4ae')]?function(_0x206dd4){return typeof _0x206dd4;}:function(_0x52128a){var _0x5c09c6=_0x804b46;return _0x52128a&&'function'==typeof Symbol&&_0x52128a[_0x5c09c6('0x63e')]===Symbol&&_0x52128a!==Symbol[_0x5c09c6('0x539')]?_0x5c09c6('0xb5'):typeof _0x52128a;})(_0x175fc3);}function _0xa91f8f(_0x4a78cb,_0x445d74){var _0x57925d=_0x50e68f;for(var _0x3237d7=0x0;_0x3237d7<_0x445d74[_0x57925d('0x796')];_0x3237d7++){var _0x1c7519=_0x445d74[_0x3237d7];_0x1c7519[_0x57925d('0xdc2')]=_0x1c7519[_0x57925d('0xdc2')]||!0x1,_0x1c7519[_0x57925d('0x48d')]=!0x0,_0x57925d('0x920')in _0x1c7519&&(_0x1c7519['writable']=!0x0),Object[_0x57925d('0x751')](_0x4a78cb,_0x1c7519[_0x57925d('0x3ba')],_0x1c7519);}}function _0x159b5b(_0x14baaa,_0x21768f){return!_0x21768f||'object'!==_0x185632(_0x21768f)&&'function'!=typeof _0x21768f?function(_0x4195c8){var _0x589632=_0x1c0e;if(void 0x0===_0x4195c8)throw new ReferenceError(_0x589632('0xcf6'));return _0x4195c8;}(_0x14baaa):_0x21768f;}function _0x39dd97(){var _0x1674b8=_0x50e68f;if(_0x1674b8('0xbfa')==typeof Reflect||!Reflect[_0x1674b8('0x195')])return!0x1;if(Reflect[_0x1674b8('0x195')]['sham'])return!0x1;if(_0x1674b8('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x1674b8('0x6e9')][_0x1674b8('0x964')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0xfe965d){return!0x1;}}function _0xf4d6e9(_0x24904b){var _0x4cc730=_0x50e68f;return(_0xf4d6e9=Object[_0x4cc730('0x489')]?Object['getPrototypeOf']:function(_0x1a24ef){var _0x51197=_0x4cc730;return _0x1a24ef[_0x51197('0xcb9')]||Object[_0x51197('0x85e')](_0x1a24ef);})(_0x24904b);}function _0x433f5e(_0x553fe4,_0x3a0d3e){var _0x1e3cf6=_0x50e68f;return(_0x433f5e=Object[_0x1e3cf6('0x489')]||function(_0x1d320e,_0x58da6a){var _0x318394=_0x1e3cf6;return _0x1d320e[_0x318394('0xcb9')]=_0x58da6a,_0x1d320e;})(_0x553fe4,_0x3a0d3e);}var _0x27c311=function(_0x254297){var _0xd0e5d3=_0x50e68f;!function(_0x6cdd58,_0x5a9f2){var _0x3f1acc=_0x1c0e;if(_0x3f1acc('0xa25')!=typeof _0x5a9f2&&null!==_0x5a9f2)throw new TypeError(_0x3f1acc('0xc4b'));_0x6cdd58[_0x3f1acc('0x539')]=Object['create'](_0x5a9f2&&_0x5a9f2['prototype'],{'constructor':{'value':_0x6cdd58,'writable':!0x0,'configurable':!0x0}}),_0x5a9f2&&_0x433f5e(_0x6cdd58,_0x5a9f2);}(_0x43a82b,_0x254297);var _0x214879,_0x306f2f,_0x43ead1,_0x1938e9,_0x473d55=(_0x214879=_0x43a82b,function(){var _0x21a30e=_0x1c0e,_0x224e95,_0xa2df15=_0xf4d6e9(_0x214879);if(_0x39dd97()){var _0x5176b3=_0xf4d6e9(this)[_0x21a30e('0x63e')];_0x224e95=Reflect[_0x21a30e('0x195')](_0xa2df15,arguments,_0x5176b3);}else _0x224e95=_0xa2df15['apply'](this,arguments);return _0x159b5b(this,_0x224e95);});function _0x43a82b(_0x1239f6){var _0x10557e=_0x1c0e,_0x251857;return function(_0x335e98,_0x57736f){var _0x145942=_0x1c0e;if(!(_0x335e98 instanceof _0x57736f))throw new TypeError(_0x145942('0x9a0'));}(this,_0x43a82b),(_0x251857=_0x473d55[_0x10557e('0x964')](this,_0x1239f6))[_0x10557e('0x7b0')]={'tags':[],'loading':!0x0},_0x251857;}return _0x306f2f=_0x43a82b,(_0x43ead1=[{'key':'componentDidMount','value':function(){var _0x6a75a3=_0x1c0e;this[_0x6a75a3('0x7e')]();}},{'key':_0xd0e5d3('0x7e'),'value':function(){var _0x5d972d=_0xd0e5d3,_0x3867e0=this;this['setState']({'loading':!0x0}),this[_0x5d972d('0x22d')][_0x5d972d('0x719')][_0x5d972d('0xda6')](this['props'][_0x5d972d('0x65b')])[_0x5d972d('0x13b')](function(_0x4def6a){var _0x16ab0d=_0x5d972d,_0x275c96=_0x4def6a[_0x16ab0d('0x38')][_0x16ab0d('0x38')][_0x16ab0d('0xc78')](_0x3867e0[_0x16ab0d('0x22d')][_0x16ab0d('0xdb6')]);_0x3867e0[_0x16ab0d('0x4e1')]({'tags':_0x275c96,'loading':!0x1});});}},{'key':_0xd0e5d3('0x358'),'value':function(){var _0x1812e0=_0xd0e5d3,_0x376bee=this;return _0x2b3147[_0x1812e0('0x8fd')][_0x1812e0('0x6b7')](_0x1812e0('0xabf'),{'style':{'display':_0x1812e0('0xc7'),'textOverflow':_0x1812e0('0x109'),'whiteSpace':'nowrap','overflow':_0x1812e0('0xa05'),'width':_0x1812e0('0xaa6')}},this['state'][_0x1812e0('0x704')]&&_0x2b3147[_0x1812e0('0x8fd')]['createElement'](_0x531fc1[_0x1812e0('0x89c')],{'active':!0x0}),!this[_0x1812e0('0x7b0')]['loading']&&this[_0x1812e0('0x7b0')][_0x1812e0('0x115')]['map'](function(_0x2ac1fa,_0x5de6b0){var _0x34a177=_0x1812e0;return _0x376bee[_0x34a177('0x22d')]['render']?_0x376bee[_0x34a177('0x22d')][_0x34a177('0x358')](_0x2ac1fa):_0x2b3147['default'][_0x34a177('0x6b7')](_0x34a177('0xabf'),{'key':'p'[_0x34a177('0x4c2')](_0x5de6b0)},_0x2b3147[_0x34a177('0x8fd')][_0x34a177('0x6b7')](_0x531fc1[_0x34a177('0x70a')],{'color':_0x376bee[_0x34a177('0x22d')][_0x34a177('0xd24')],'key':_0x5de6b0,'style':{'margin':_0x34a177('0xb80')}},_0x2ac1fa),_0x2b3147[_0x34a177('0x8fd')][_0x34a177('0x6b7')]('br',null));}));}}])&&_0xa91f8f(_0x306f2f[_0xd0e5d3('0x539')],_0x43ead1),_0x1938e9&&_0xa91f8f(_0x306f2f,_0x1938e9),_0x43a82b;}(_0x2b3147[_0x50e68f('0x8fd')][_0x50e68f('0x2c')]);_0x5b477f[_0x50e68f('0x8fd')]=_0x27c311;},{'antd':_0x38d28e('0x836'),'react':'react'}],0x40:[function(_0x1430cb,_0x7f344a,_0x4ddf4b){var _0xd67ac4=_0x38d28e;'use strict';Object[_0xd67ac4('0x751')](_0x4ddf4b,_0xd67ac4('0x8bc'),{'value':!0x0}),_0x4ddf4b['default']=void 0x0;var _0x2faf4f,_0x41ecc3=function(_0x5506e2){var _0x52c85e=_0xd67ac4;if(_0x5506e2&&_0x5506e2[_0x52c85e('0x8bc')])return _0x5506e2;if(null===_0x5506e2||_0x52c85e('0xbfd')!==_0x541dfa(_0x5506e2)&&_0x52c85e('0xa25')!=typeof _0x5506e2)return{'default':_0x5506e2};var _0x1aad5f=_0x429180();if(_0x1aad5f&&_0x1aad5f['has'](_0x5506e2))return _0x1aad5f[_0x52c85e('0xda6')](_0x5506e2);var _0x2163da={},_0x24bcd6=Object[_0x52c85e('0x751')]&&Object[_0x52c85e('0x869')];for(var _0xe0aab8 in _0x5506e2)if(Object[_0x52c85e('0x539')]['hasOwnProperty'][_0x52c85e('0x964')](_0x5506e2,_0xe0aab8)){var _0x48a5bf=_0x24bcd6?Object[_0x52c85e('0x869')](_0x5506e2,_0xe0aab8):null;_0x48a5bf&&(_0x48a5bf[_0x52c85e('0xda6')]||_0x48a5bf['set'])?Object[_0x52c85e('0x751')](_0x2163da,_0xe0aab8,_0x48a5bf):_0x2163da[_0xe0aab8]=_0x5506e2[_0xe0aab8];}return _0x2163da['default']=_0x5506e2,_0x1aad5f&&_0x1aad5f[_0x52c85e('0x7f8')](_0x5506e2,_0x2163da),_0x2163da;}(_0x1430cb(_0xd67ac4('0x2cd'))),_0xc9ca5=_0x1430cb(_0xd67ac4('0x836')),_0x5188be=(_0x2faf4f=_0x1430cb(_0xd67ac4('0x804')))&&_0x2faf4f['__esModule']?_0x2faf4f:{'default':_0x2faf4f};function _0x429180(){var _0x163424=_0xd67ac4;if(_0x163424('0xa25')!=typeof WeakMap)return null;var _0x5cd37e=new WeakMap();return _0x429180=function(){return _0x5cd37e;},_0x5cd37e;}function _0x541dfa(_0x46c5ed){var _0x4da7c4=_0xd67ac4;return(_0x541dfa=_0x4da7c4('0xa25')==typeof Symbol&&_0x4da7c4('0xb5')==typeof Symbol[_0x4da7c4('0x4ae')]?function(_0xc26aa2){return typeof _0xc26aa2;}:function(_0x29076e){var _0x53823f=_0x4da7c4;return _0x29076e&&_0x53823f('0xa25')==typeof Symbol&&_0x29076e['constructor']===Symbol&&_0x29076e!==Symbol[_0x53823f('0x539')]?_0x53823f('0xb5'):typeof _0x29076e;})(_0x46c5ed);}function _0x57d503(){var _0x563772=_0xd67ac4;return(_0x57d503=Object[_0x563772('0xd71')]||function(_0x13b30e){var _0x3afab6=_0x563772;for(var _0x5c3168=0x1;_0x5c31680x1e)return _0x518bb9[_0x5764c8('0x22d')][_0x5764c8('0xdad')]['gt'](_0x5764c8('0x10d'));if(!_0x26d1d5[_0x5764c8('0x523')](/.*[0-9]+.*$/))return _0x518bb9['props']['adapter']['gt'](_0x5764c8('0x376'));if(!_0x26d1d5['match'](/.*[a-z]+.*$/))return _0x518bb9[_0x5764c8('0x22d')][_0x5764c8('0xdad')]['gt']('Password\x20must\x20include\x20at\x20least\x20one\x20lowercase\x20letter');if(!_0x26d1d5[_0x5764c8('0x523')](/.*[A-Z]+.*$/))return _0x518bb9[_0x5764c8('0x22d')]['adapter']['gt']('Password\x20must\x20include\x20at\x20least\x20one\x20uppercase\x20letter');return _0x26d1d5[_0x5764c8('0x523')](/.*[\W]+.*$/)?null:_0x518bb9[_0x5764c8('0x22d')]['adapter']['gt'](_0x5764c8('0x9e1'));},_0x518bb9[_0x835043('0xccd')]=_0x41ecc3['default'][_0x835043('0x592')](),_0x518bb9[_0x835043('0xca3')]=new _0x5188be[(_0x835043('0x8fd'))](_0x518bb9['props'][_0x835043('0xdad')]),_0x518bb9;}return _0x2be7ab=_0x16e50b,(_0x41f1ee=[{'key':'componentDidMount','value':function(){var _0x12c67b=_0x1c0e;_0xc9ca5[_0x12c67b('0xb0a')]['config']({'top':0x28});}},{'key':_0x3a0a79('0x1f2'),'value':function(_0x8432f1){var _0x5413fc=_0x3a0a79,_0x54425b=this[_0x5413fc('0xcc3')](_0x8432f1);return null!==_0x54425b?(this[_0x5413fc('0x4e1')]({'passwordHasError':!0x0}),this[_0x5413fc('0x4e1')]({'passwordState':{'hasFeedback':!0x0,'validateStatus':_0x5413fc('0xab4'),'help':_0x54425b}}),!0x1):(this[_0x5413fc('0x4e1')]({'passwordHasError':!0x1}),this[_0x5413fc('0x4e1')]({'passwordState':{'hasFeedback':!0x0,'validateStatus':_0x5413fc('0x56e'),'help':''}}),!0x0);}},{'key':_0x3a0a79('0x8d8'),'value':function(_0x3d3188){var _0x3bbf0e=_0x3a0a79;return _0x3d3188['confirm']!==_0x3d3188[_0x3bbf0e('0x729')]?(this['setState']({'confirmationHasError':!0x0}),this[_0x3bbf0e('0x4e1')]({'confirmationState':{'hasFeedback':!0x0,'validateStatus':_0x3bbf0e('0xab4'),'help':_0x3bbf0e('0x255')}}),!0x1):(this['setState']({'confirmationHasError':!0x1}),this['setState']({'confirmationState':{'hasFeedback':!0x1,'validateStatus':'','help':''}}),!0x0);}},{'key':_0x3a0a79('0x358'),'value':function(){var _0xe902db=_0x3a0a79,_0x1cb948=this;return _0x41ecc3[_0xe902db('0x8fd')][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x7d8')],{'visible':this[_0xe902db('0x22d')][_0xe902db('0xbf3')],'title':_0xe902db('0x6c4'),'onOk':this[_0xe902db('0x6ce')],'onCancel':this[_0xe902db('0x6fa')],'footer':[_0x41ecc3['default'][_0xe902db('0x6b7')](_0xc9ca5['Button'],{'key':'back','onClick':this[_0xe902db('0x6fa')]},this[_0xe902db('0x22d')]['adapter']['gt']('Cancel')),_0x41ecc3['default'][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x6c5')],{'key':_0xe902db('0x7cd'),'type':_0xe902db('0x878'),'loading':this[_0xe902db('0x7b0')][_0xe902db('0x704')],'onClick':this[_0xe902db('0x6ce')]},this['props']['adapter']['gt']('Update'))]},_0x41ecc3[_0xe902db('0x8fd')]['createElement'](_0xc9ca5['Form'],_0x57d503({},{'labelCol':{'span':0x8},'wrapperCol':{'span':0x10}},{'ref':this[_0xe902db('0xccd')]}),_0x41ecc3['default'][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x805')][_0xe902db('0x41a')],{'label':_0xe902db('0x9e6'),'key':_0xe902db('0xaf8'),'name':_0xe902db('0xaf8')},_0x41ecc3[_0xe902db('0x8fd')]['createElement'](_0xc9ca5['Input'][_0xe902db('0x3fb')],{'placeholder':_0xe902db('0x91a')})),this['state'][_0xe902db('0xa99')]&&_0x41ecc3[_0xe902db('0x8fd')][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x805')][_0xe902db('0x41a')],_0x57d503({'label':_0xe902db('0x619'),'key':_0xe902db('0x729'),'name':_0xe902db('0x729')},this[_0xe902db('0x7b0')][_0xe902db('0x134')]),_0x41ecc3[_0xe902db('0x8fd')]['createElement'](_0xc9ca5[_0xe902db('0x882')][_0xe902db('0x3fb')],{'placeholder':_0xe902db('0x8be'),'onChange':function(_0x316708){var _0x4dc966=_0xe902db;return _0x1cb948[_0x4dc966('0x1f2')](_0x316708[_0x4dc966('0xbf8')][_0x4dc966('0x920')]);}})),!this['state'][_0xe902db('0xa99')]&&_0x41ecc3[_0xe902db('0x8fd')]['createElement'](_0xc9ca5[_0xe902db('0x805')][_0xe902db('0x41a')],_0x57d503({'label':_0xe902db('0x619'),'key':_0xe902db('0x729'),'name':_0xe902db('0x729')},this[_0xe902db('0x7b0')][_0xe902db('0x134')]),_0x41ecc3[_0xe902db('0x8fd')][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x882')]['Password'],{'placeholder':_0xe902db('0x8be'),'onChange':function(_0x5e8496){var _0x2853b0=_0xe902db;return _0x1cb948[_0x2853b0('0x1f2')](_0x5e8496[_0x2853b0('0xbf8')][_0x2853b0('0x920')]);}})),this[_0xe902db('0x7b0')][_0xe902db('0x103')]&&_0x41ecc3[_0xe902db('0x8fd')][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x805')][_0xe902db('0x41a')],_0x57d503({'label':_0xe902db('0x2e2'),'key':_0xe902db('0x24a'),'name':_0xe902db('0x24a')},this[_0xe902db('0x7b0')][_0xe902db('0x717')]),_0x41ecc3[_0xe902db('0x8fd')][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x882')][_0xe902db('0x3fb')],{'placeholder':_0xe902db('0x78e'),'onChange':function(_0x42cd3d){var _0x38a68b=_0xe902db;return _0x1cb948[_0x38a68b('0x7ba')]();}})),!this[_0xe902db('0x7b0')]['confirmationHasError']&&_0x41ecc3[_0xe902db('0x8fd')][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x805')][_0xe902db('0x41a')],{'label':_0xe902db('0x2e2'),'key':'confirm','name':_0xe902db('0x24a')},_0x41ecc3[_0xe902db('0x8fd')][_0xe902db('0x6b7')](_0xc9ca5[_0xe902db('0x882')][_0xe902db('0x3fb')],{'placeholder':_0xe902db('0x78e'),'onChange':function(_0x1eff67){var _0x3ac917=_0xe902db;return _0x1cb948[_0x3ac917('0x7ba')]();}}))));}}])&&_0xa819a4(_0x2be7ab[_0x3a0a79('0x539')],_0x41f1ee),_0x39b096&&_0xa819a4(_0x2be7ab,_0x39b096),_0x16e50b;}(_0x41ecc3[_0xd67ac4('0x8fd')]['Component']);_0x4ddf4b[_0xd67ac4('0x8fd')]=_0x199f1f;},{'../api/CustomAction':0x2a,'antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd')}],0x41:[function(_0x4e6875,_0x41156b,_0x1e6581){var _0x186892=_0x38d28e;'use strict';var _0x5e174e=_0x4e6875(_0x186892('0x822'));window[_0x186892('0x363')]=_0x5e174e[_0x186892('0x363')],window[_0x186892('0x8de')]=_0x5e174e[_0x186892('0x8de')];},{'./lib':0x42}],0x42:[function(_0x4d65a5,_0x4ffb55,_0x3f1cd2){var _0x44c460=_0x38d28e;'use strict';var _0x7e766a=_0x2bce3d(_0x4d65a5('../../../api/AdapterBase')),_0x397990=_0x2bce3d(_0x4d65a5(_0x44c460('0x60a')));function _0x2bce3d(_0xd85902){var _0x2d1026=_0x44c460;return _0xd85902&&_0xd85902[_0x2d1026('0x8bc')]?_0xd85902:{'default':_0xd85902};}function _0x285ce7(_0x5583cc){var _0x3c467a=_0x44c460;return(_0x285ce7='function'==typeof Symbol&&_0x3c467a('0xb5')==typeof Symbol[_0x3c467a('0x4ae')]?function(_0x22808e){return typeof _0x22808e;}:function(_0x4c7713){var _0x32c9ab=_0x3c467a;return _0x4c7713&&_0x32c9ab('0xa25')==typeof Symbol&&_0x4c7713[_0x32c9ab('0x63e')]===Symbol&&_0x4c7713!==Symbol[_0x32c9ab('0x539')]?_0x32c9ab('0xb5'):typeof _0x4c7713;})(_0x5583cc);}function _0x24ee85(_0x3e6562,_0x37a412){if(!(_0x3e6562 instanceof _0x37a412))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x151ede(_0x4cbec9,_0x3f1df2){var _0x401f54=_0x44c460;for(var _0x4f02f0=0x0;_0x4f02f0<_0x3f1df2[_0x401f54('0x796')];_0x4f02f0++){var _0x54a98e=_0x3f1df2[_0x4f02f0];_0x54a98e[_0x401f54('0xdc2')]=_0x54a98e[_0x401f54('0xdc2')]||!0x1,_0x54a98e[_0x401f54('0x48d')]=!0x0,_0x401f54('0x920')in _0x54a98e&&(_0x54a98e['writable']=!0x0),Object[_0x401f54('0x751')](_0x4cbec9,_0x54a98e[_0x401f54('0x3ba')],_0x54a98e);}}function _0x19470f(_0x19b5fe,_0x213809,_0x5d6b04){var _0x420383=_0x44c460;return _0x213809&&_0x151ede(_0x19b5fe[_0x420383('0x539')],_0x213809),_0x5d6b04&&_0x151ede(_0x19b5fe,_0x5d6b04),_0x19b5fe;}function _0x5416c7(_0x20a825){return function(){var _0x15acea=_0x1c0e,_0x1b1447,_0x2d7d81=_0x1e1388(_0x20a825);if(_0x1ebab1()){var _0x4c62c8=_0x1e1388(this)['constructor'];_0x1b1447=Reflect[_0x15acea('0x195')](_0x2d7d81,arguments,_0x4c62c8);}else _0x1b1447=_0x2d7d81[_0x15acea('0x365')](this,arguments);return _0xf21ef7(this,_0x1b1447);};}function _0xf21ef7(_0x115514,_0x2f26f1){var _0x228173=_0x44c460;return!_0x2f26f1||_0x228173('0xbfd')!==_0x285ce7(_0x2f26f1)&&_0x228173('0xa25')!=typeof _0x2f26f1?function(_0x586335){var _0x12b58f=_0x228173;if(void 0x0===_0x586335)throw new ReferenceError(_0x12b58f('0xcf6'));return _0x586335;}(_0x115514):_0x2f26f1;}function _0x1ebab1(){var _0x283364=_0x44c460;if(_0x283364('0xbfa')==typeof Reflect||!Reflect[_0x283364('0x195')])return!0x1;if(Reflect['construct'][_0x283364('0x460')])return!0x1;if(_0x283364('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x283364('0x539')][_0x283364('0x6e9')][_0x283364('0x964')](Reflect[_0x283364('0x195')](Date,[],function(){})),!0x0;}catch(_0x49841c){return!0x1;}}function _0x1e1388(_0x45af2f){var _0x4f9a72=_0x44c460;return(_0x1e1388=Object[_0x4f9a72('0x489')]?Object[_0x4f9a72('0x85e')]:function(_0x41016e){return _0x41016e['__proto__']||Object['getPrototypeOf'](_0x41016e);})(_0x45af2f);}function _0x17ae02(_0x217086,_0x23e8b3){var _0x2853ef=_0x44c460;if(_0x2853ef('0xa25')!=typeof _0x23e8b3&&null!==_0x23e8b3)throw new TypeError(_0x2853ef('0xc4b'));_0x217086[_0x2853ef('0x539')]=Object['create'](_0x23e8b3&&_0x23e8b3[_0x2853ef('0x539')],{'constructor':{'value':_0x217086,'writable':!0x0,'configurable':!0x0}}),_0x23e8b3&&_0x57d368(_0x217086,_0x23e8b3);}function _0x57d368(_0x51bda7,_0xd9cef4){var _0x31a0d8=_0x44c460;return(_0x57d368=Object[_0x31a0d8('0x489')]||function(_0x4e1246,_0x172891){var _0x212c6c=_0x31a0d8;return _0x4e1246[_0x212c6c('0xcb9')]=_0x172891,_0x4e1246;})(_0x51bda7,_0xd9cef4);}var _0x307ad6=function(_0x1616ff){var _0x22975e=_0x44c460;_0x17ae02(_0x536b18,_0x1616ff);var _0x415428=_0x5416c7(_0x536b18);function _0x536b18(_0x9f8e45,_0x548be8,_0x18c48c,_0x5bb2a3){var _0x384873=_0x1c0e,_0x15e9fd;return _0x24ee85(this,_0x536b18),(_0x15e9fd=_0x415428[_0x384873('0x964')](this,_0x9f8e45,_0x548be8,_0x18c48c,_0x5bb2a3))[_0x384873('0x533')]=null,_0x15e9fd[_0x384873('0x449')]=0x0,_0x15e9fd['photoTaken']=0x0,_0x15e9fd[_0x384873('0x1ca')]=0x0,_0x15e9fd;}return _0x19470f(_0x536b18,[{'key':'updatePunchButton','value':function(){var _0x2a7a74=_0x1c0e;this[_0x2a7a74('0x640')]('changePunchButtonSuccessCallBack');}},{'key':_0x22975e('0xdab'),'value':function(_0x108f2d){this['useServerTime']=_0x108f2d;}},{'key':_0x22975e('0x6b8'),'value':function(_0x16f776){var _0xb59bb4=_0x22975e;this[_0xb59bb4('0x1ca')]=parseInt(_0x16f776,0xa);}},{'key':_0x22975e('0x433'),'value':function(){var _0x467c7c=_0x22975e;return['id',_0x467c7c('0x641'),_0x467c7c('0xdd'),_0x467c7c('0x4f5')];}},{'key':'getHeaders','value':function(){var _0x45fa1d=_0x22975e;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x45fa1d('0xdc8')},{'sTitle':_0x45fa1d('0x667')},{'sTitle':_0x45fa1d('0x756')}];}},{'key':_0x22975e('0x73d'),'value':function(){var _0x18eb4e=_0x22975e;return 0x0===this[_0x18eb4e('0x449')]?[['id',{'label':'ID','type':_0x18eb4e('0xa05')}],[_0x18eb4e('0xd49'),{'label':_0x18eb4e('0xa40'),'type':_0x18eb4e('0x48b')}],[_0x18eb4e('0x4f5'),{'label':'Note','type':'textarea','validation':_0x18eb4e('0x649')}]]:[['id',{'label':'ID','type':_0x18eb4e('0xa05')}],[_0x18eb4e('0x4f5'),{'label':_0x18eb4e('0x756'),'type':'textarea','validation':_0x18eb4e('0x649')}]];}},{'key':_0x22975e('0xcad'),'value':function(){var _0x47512d=_0x22975e,_0x42eabd=this;return{'aoColumnDefs':[{'fnRender':function(_0x3fd0db,_0x34cfa6){var _0x1bb791=_0x1c0e;return _0x42eabd[_0x1bb791('0xc16')](_0x3fd0db,_0x34cfa6,0x1);},'aTargets':[0x1]},{'fnRender':function(_0x3d3c73,_0x4878ae){var _0x564d2a=_0x1c0e;return _0x42eabd[_0x564d2a('0xc16')](_0x3d3c73,_0x4878ae,0x2);},'aTargets':[0x2]},{'fnRender':function(_0x3a0e56,_0x4ed9da){var _0x38b0ca=_0x1c0e;return _0x42eabd[_0x38b0ca('0xc16')](_0x3a0e56,_0x4ed9da,0x3);},'aTargets':[0x3]},{'fnRender':_0x42eabd[_0x47512d('0x70e')],'aTargets':[_0x42eabd[_0x47512d('0x433')]()['length']]}]};}},{'key':_0x22975e('0xc16'),'value':function(_0x16efba,_0x223e85,_0x1519e2){var _0x341e08=_0x22975e;return 0x1===_0x1519e2?_0x341e08('0x111')===_0x223e85||''===_0x223e85||null==_0x223e85?'':Date['parse'](_0x223e85)[_0x341e08('0x6e9')](_0x341e08('0x95a')):0x2===_0x1519e2?'0000-00-00\x2000:00:00'===_0x223e85||''===_0x223e85||null==_0x223e85?'':Date['parse'](_0x223e85)['toString'](_0x341e08('0x45d')):0x3===_0x1519e2&&null!=_0x223e85&&_0x223e85[_0x341e08('0x796')]>0x14?''['concat'](_0x223e85[_0x341e08('0x14c')](0x0,0x14),'..'):_0x223e85;}},{'key':_0x22975e('0x388'),'value':function(_0x3556cc,_0x812d62){return'';}},{'key':_0x22975e('0x513'),'value':function(){var _0x12b27c=_0x22975e;return null===this[_0x12b27c('0x533')]||void 0x0===this[_0x12b27c('0x533')]?_0x12b27c('0x77d'):_0x12b27c('0x17d');}},{'key':'save','value':function(){var _0x203dd5=_0x22975e,_0x37ae13=new _0x397990[(_0x203dd5('0x8fd'))](''[_0x203dd5('0x4c2')](this[_0x203dd5('0x316')](),_0x203dd5('0x708')),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':'error'});if(_0x37ae13[_0x203dd5('0x472')]()){var _0x4f22c3=this[_0x203dd5('0xd0f')]();if(null==_0x4f22c3){var _0x59f563=_0x37ae13[_0x203dd5('0x4d3')]();(_0x59f563=this[_0x203dd5('0x52f')](_0x59f563))[_0x203dd5('0x48a')]=this[_0x203dd5('0x5f4')](new Date())['toISOString']()[_0x203dd5('0x5fe')](0x0,0x13)['replace']('T','\x20');var _0x5d713a=JSON[_0x203dd5('0xaae')](_0x59f563),_0x12f760=[];_0x12f760['callBackData']=[],_0x12f760['callBackSuccess']=_0x203dd5('0x1bf'),_0x12f760[_0x203dd5('0xd61')]=_0x203dd5('0xd90'),this['customAction'](_0x203dd5('0x4a7'),_0x203dd5('0x12d'),_0x5d713a,_0x12f760,!0x0);}else $('#'['concat'](this[_0x203dd5('0x316')](),_0x203dd5('0x71b')))[_0x203dd5('0xd34')](_0x4f22c3),$('#'[_0x203dd5('0x4c2')](this[_0x203dd5('0x316')](),_0x203dd5('0x71b')))[_0x203dd5('0x462')]();}}},{'key':_0x22975e('0x1bf'),'value':function(_0x2d3bb7){var _0x29b549=_0x22975e;this['punch']=_0x2d3bb7,this[_0x29b549('0x640')]('changePunchButtonSuccessCallBack'),$('#PunchModel')['modal'](_0x29b549('0xafe')),this[_0x29b549('0xda6')]([]);}},{'key':_0x22975e('0x536'),'value':function(){var _0x41c2f5=_0x22975e;$(_0x41c2f5('0xd78'))['modal']('hide');}},{'key':'showPunchDialog','value':function(){var _0x55725b=_0x22975e;this[_0x55725b('0x640')]('showPunchDialogShowPunchSuccessCallBack');}},{'key':_0x22975e('0x640'),'value':function(_0x225fa8){var _0x392ebb=_0x22975e,_0x409571={};_0x409571[_0x392ebb('0x9d2')]=this[_0x392ebb('0x5f4')](new Date())['toISOString']()['slice'](0x0,0x13)[_0x392ebb('0x8f9')]('T','\x20'),_0x409571['offset']=this[_0x392ebb('0x2e1')]();var _0x42523d=JSON[_0x392ebb('0xaae')](_0x409571),_0x2a9bb8=[];_0x2a9bb8[_0x392ebb('0x61a')]=[],_0x2a9bb8[_0x392ebb('0x4a2')]=_0x225fa8,_0x2a9bb8[_0x392ebb('0xd61')]=_0x392ebb('0xd90'),this[_0x392ebb('0xca3')](_0x392ebb('0x640'),_0x392ebb('0x12d'),_0x42523d,_0x2a9bb8);}},{'key':'showPunchDialogShowPunchSuccessCallBack','value':function(_0x8dcd74){var _0x17ec70=_0x22975e;this[_0x17ec70('0x533')]=_0x8dcd74,$(_0x17ec70('0xd78'))[_0x17ec70('0x7ae')](_0x17ec70('0x462')),null===this['punch']?($(_0x17ec70('0xd78'))[_0x17ec70('0x11c')]('h3')[_0x17ec70('0xd34')]('Punch\x20Time-in'),modJs['renderForm']()):($(_0x17ec70('0xd78'))[_0x17ec70('0x11c')]('h3')[_0x17ec70('0xd34')]('Punch\x20Time-out'),modJs[_0x17ec70('0xf8')](this[_0x17ec70('0x533')])),$(_0x17ec70('0xdcc'))[_0x17ec70('0x462')](),$('#time_datetime')[_0x17ec70('0x38')](_0x17ec70('0x7cf'))[_0x17ec70('0x856')](new Date());}},{'key':_0x22975e('0x221'),'value':function(_0x2d4de4){var _0x491d34=_0x22975e;this[_0x491d34('0x533')]=_0x2d4de4,null===this[_0x491d34('0x533')]?$(_0x491d34('0x4c9'))[_0x491d34('0xd34')](_0x491d34('0xcb5')):$('#punchButton')[_0x491d34('0xd34')](_0x491d34('0x30d'));}},{'key':_0x22975e('0xd90'),'value':function(_0x12f7f4){var _0x1a4edd=_0x22975e;this[_0x1a4edd('0xaab')](_0x1a4edd('0xa6c'),_0x12f7f4);}},{'key':_0x22975e('0x5f4'),'value':function(_0x542743){var _0x55979a=_0x22975e,_0x3a770c=this[_0x55979a('0x2e1')]();return _0x542743[_0x55979a('0x2d2')](0x3c*_0x3a770c);}},{'key':_0x22975e('0x2e1'),'value':function(){var _0x3cc892=_0x22975e,_0x160f18=new Date(),_0x28c7a9=new Date(_0x160f18['getFullYear'](),0x0,0x1,0x0,0x0,0x0,0x0),_0x371702=_0x28c7a9[_0x3cc892('0xa55')]();return(_0x28c7a9-new Date(_0x371702[_0x3cc892('0x14c')](0x0,_0x371702[_0x3cc892('0x4ea')]('\x20')-0x1)))/0x36ee80;}},{'key':'doCustomValidation','value':function(_0x58eb53){var _0x528b9c=_0x22975e;return 0x1!==this[_0x528b9c('0x1ca')]||this[_0x528b9c('0xb3')]?null:_0x528b9c('0xca8');}},{'key':_0x22975e('0x52f'),'value':function(_0x1f5d94){var _0x328fdc=_0x22975e;if(0x1===this[_0x328fdc('0x1ca')]){var _0x5d38fd=document['getElementById'](_0x328fdc('0x645'));_0x1f5d94['image']=_0x5d38fd[_0x328fdc('0x27f')]();}return _0x1f5d94;}},{'key':'postRenderForm','value':function(){var _0x4bfc09=_0x22975e;if(0x1===this[_0x4bfc09('0x1ca')]){$(_0x4bfc09('0x66a'))[_0x4bfc09('0x462')]();var _0xa947a4=document['getElementById'](_0x4bfc09('0x8e8'));navigator[_0x4bfc09('0xc6b')]&&navigator['mediaDevices'][_0x4bfc09('0x1f0')]&&navigator[_0x4bfc09('0xc6b')][_0x4bfc09('0x1f0')]({'video':!0x0})[_0x4bfc09('0x13b')](function(_0x321905){var _0x2cc504=_0x4bfc09;_0xa947a4[_0x2cc504('0x768')]=_0x321905,_0xa947a4[_0x2cc504('0x5da')]();}),this[_0x4bfc09('0xb3')]=!0x1,this[_0x4bfc09('0x455')]();}else $(_0x4bfc09('0x66a'))[_0x4bfc09('0x52')]();}},{'key':_0x22975e('0x455'),'value':function(){var _0x49df11=_0x22975e,_0x321889=this,_0x2bc25a=document[_0x49df11('0x56a')](_0x49df11('0x645'))[_0x49df11('0x114')]('2d'),_0x31e4cd=document[_0x49df11('0x56a')](_0x49df11('0x8e8'));$(_0x49df11('0x5bb'))[_0x49df11('0x76')](function(){var _0x180d26=_0x49df11;return _0x2bc25a[_0x180d26('0xe7')](_0x31e4cd,0x0,0x0,0xd0,0x9c),_0x321889[_0x180d26('0xb3')]=!0x0,!0x1;});}}]),_0x536b18;}(_0x7e766a['default']),_0x517f8f=function(_0x2417d5){var _0x39ba6c=_0x44c460;_0x17ae02(_0x24eb52,_0x2417d5);var _0x15a462=_0x5416c7(_0x24eb52);function _0x24eb52(_0x4f0a3d,_0x421d83,_0x50e8cf,_0x37818e){var _0x54689c=_0x1c0e,_0x318d00;return _0x24ee85(this,_0x24eb52),(_0x318d00=_0x15a462[_0x54689c('0x964')](this,_0x4f0a3d,_0x421d83,_0x50e8cf,_0x37818e))[_0x54689c('0x3c8')]=null,_0x318d00[_0x54689c('0xc1d')]=null,_0x318d00;}return _0x19470f(_0x24eb52,[{'key':_0x39ba6c('0x433'),'value':function(){var _0x3f0a9c=_0x39ba6c;return['id','date_start',_0x3f0a9c('0xb36'),'total_time',_0x3f0a9c('0x525')];}},{'key':_0x39ba6c('0x445'),'value':function(){var _0x2242ab=_0x39ba6c;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Start\x20Date'},{'sTitle':'End\x20Date'},{'sTitle':_0x2242ab('0x40b')},{'sTitle':_0x2242ab('0x2ff')}];}},{'key':_0x39ba6c('0x73d'),'value':function(){var _0x26ff51=_0x39ba6c;return[['id',{'label':'ID','type':_0x26ff51('0xa05')}],['date_start',{'label':'TimeSheet\x20Start\x20Date','type':_0x26ff51('0x9d2'),'validation':''}],[_0x26ff51('0xb36'),{'label':_0x26ff51('0x281'),'type':_0x26ff51('0x9d2'),'validation':''}],['details',{'label':'Reason','type':_0x26ff51('0xbd5'),'validation':'none'}]];}},{'key':_0x39ba6c('0x4fa'),'value':function(_0xaa241a){var _0x544f09=_0x39ba6c;return _0xaa241a[0x1]=Date[_0x544f09('0x22f')](_0xaa241a[0x1])[_0x544f09('0x6e9')](_0x544f09('0xc97')),_0xaa241a[0x2]=Date[_0x544f09('0x22f')](_0xaa241a[0x2])[_0x544f09('0x6e9')]('MMM\x20d,\x20yyyy\x20(dddd)'),_0xaa241a;}},{'key':'renderForm','value':function(_0x58d995){var _0x313c9=_0x39ba6c,_0x153af8=this[_0x313c9('0x15f')][_0x313c9('0xcae')];$('#'[_0x313c9('0x4c2')](this[_0x313c9('0x316')](),'Form'))[_0x313c9('0xd34')](_0x153af8),$('#'['concat'](this[_0x313c9('0x316')](),_0x313c9('0x805')))['show'](),$('#'[_0x313c9('0x4c2')](this[_0x313c9('0x316')]()))[_0x313c9('0xafe')](),$(_0x313c9('0xbeb'))[_0x313c9('0xd34')](Date[_0x313c9('0x22f')](_0x58d995['date_start'])[_0x313c9('0x6e9')]('MMM\x20d,\x20yyyy\x20(dddd)')),$(_0x313c9('0x21d'))['html'](Date['parse'](_0x58d995['date_end'])[_0x313c9('0x6e9')]('MMM\x20d,\x20yyyy\x20(dddd)')),this[_0x313c9('0xc1d')]=_0x58d995,this[_0x313c9('0x552')]();}},{'key':_0x39ba6c('0x552'),'value':function(){var _0x9241d9=_0x39ba6c,_0x38378a=this[_0x9241d9('0x3a')],_0x337bb1=JSON[_0x9241d9('0xaae')](modJsList[_0x9241d9('0x4c5')]['getSourceMapping']()),_0x35df4b=JSON[_0x9241d9('0xaae')]({'id':_0x38378a,'sm':_0x337bb1}),_0x5b1357=[];_0x5b1357['callBackData']=[],_0x5b1357['callBackSuccess']=_0x9241d9('0x58a'),_0x5b1357['callBackFail']='getTimeEntriesFailCallBack',this[_0x9241d9('0xca3')](_0x9241d9('0x552'),'modules=time_sheets',_0x35df4b,_0x5b1357);}},{'key':_0x39ba6c('0x58a'),'value':function(_0x4c8d0a){var _0x396c0a=_0x39ba6c;for(var _0x19b6a7=_0x4c8d0a,_0x180911='',_0x1f7e09=0x0;_0x1f7e09<_0x19b6a7[_0x396c0a('0x796')];_0x1f7e09++)try{var _0x50e310=_0x396c0a('0x400');_0x50e310=(_0x50e310=_0x50e310[_0x396c0a('0x8f9')](/_start_/g,Date[_0x396c0a('0x22f')](_0x19b6a7[_0x1f7e09]['date_start'])[_0x396c0a('0x6e9')]('MMM\x20d,\x20yyyy\x20[hh:mm\x20tt]')))[_0x396c0a('0x8f9')](/_end_/g,Date['parse'](_0x19b6a7[_0x1f7e09]['date_end'])[_0x396c0a('0x6e9')](_0x396c0a('0xb13')));var _0x2ce426=Date[_0x396c0a('0x22f')](_0x19b6a7[_0x1f7e09]['date_end'])-Date[_0x396c0a('0x22f')](_0x19b6a7[_0x1f7e09]['date_start']),_0x3b1b3b=Math[_0x396c0a('0x763')](_0x2ce426/0xea60),_0x1ad9a7=_0x3b1b3b%0x3c,_0x12c9e9=(_0x3b1b3b-_0x1ad9a7)/0x3c;_0x50e310=_0x50e310['replace'](/_duration_/g,_0x396c0a('0xd60')[_0x396c0a('0x4c2')](_0x12c9e9,')\x20-\x20Min\x20(')[_0x396c0a('0x4c2')](_0x1ad9a7,')')),_0x180911+=_0x50e310=(_0x50e310=(_0x50e310=(_0x50e310=(_0x50e310=_0x396c0a('0x777')===_0x19b6a7[_0x1f7e09][_0x396c0a('0x1c4')]||null===_0x19b6a7[_0x1f7e09][_0x396c0a('0x1c4')]||void 0x0===_0x19b6a7[_0x1f7e09][_0x396c0a('0x1c4')]?_0x50e310['replace'](/_project_/g,_0x396c0a('0x6a0')):_0x50e310[_0x396c0a('0x8f9')](/_project_/g,_0x19b6a7[_0x1f7e09][_0x396c0a('0x1c4')]))[_0x396c0a('0x8f9')](/_project_/g,_0x19b6a7[_0x1f7e09]['project']))[_0x396c0a('0x8f9')](/_details_/g,_0x19b6a7[_0x1f7e09]['details']))['replace'](/_id_/g,_0x19b6a7[_0x1f7e09]['id']))[_0x396c0a('0x8f9')](/_BASE_/g,this['baseUrl']);}catch(_0x60070a){}$(_0x396c0a('0x61f'))[_0x396c0a('0xd34')](_0x180911),_0x396c0a('0x459')===modJs['getTableName']()||_0x396c0a('0xa14')===this['currentElement'][_0x396c0a('0x525')]?($(_0x396c0a('0xa93'))[_0x396c0a('0xafe')](),$(_0x396c0a('0xd67'))[_0x396c0a('0xafe')]()):($('#submit_sheet')['show'](),$(_0x396c0a('0xd67'))['show']());}},{'key':'getTimeEntriesFailCallBack','value':function(_0x1be8d7){var _0x5d93a0=_0x39ba6c;this[_0x5d93a0('0xaab')]('Error','Error\x20occured\x20while\x20getting\x20timesheet\x20entries');}},{'key':_0x39ba6c('0x75'),'value':function(_0x4c5d77){var _0x3f2024=_0x39ba6c,_0x2b0e6a=JSON[_0x3f2024('0xaae')]({'id':_0x4c5d77}),_0x208cf7=[];_0x208cf7[_0x3f2024('0x61a')]=[],_0x208cf7[_0x3f2024('0x4a2')]=_0x3f2024('0x464'),_0x208cf7['callBackFail']=_0x3f2024('0xbd3'),this['customAction']('createPreviousAttendnaceSheet',_0x3f2024('0x616'),_0x2b0e6a,_0x208cf7);}},{'key':'createPreviousAttendnacesheetSuccessCallBack','value':function(_0x1fbc39){var _0x58cb4c=_0x39ba6c;$(_0x58cb4c('0x8c5'))['css'](_0x58cb4c('0x764'),_0x58cb4c('0x649')),$(_0x58cb4c('0x8c5'))[_0x58cb4c('0x52')](),this['get']([]);}},{'key':_0x39ba6c('0xbd3'),'value':function(_0x4567cf){var _0x352e8b=_0x39ba6c;this[_0x352e8b('0xaab')](_0x352e8b('0x3fc'),_0x4567cf);}},{'key':_0x39ba6c('0x388'),'value':function(_0x391c5f,_0x36eb66){var _0x5d9ff4=_0x39ba6c;return(_0x5d9ff4('0xcba')===this[_0x5d9ff4('0x316')]()?_0x5d9ff4('0x86e'):_0x5d9ff4('0x74c'))[_0x5d9ff4('0x8f9')](/_id_/g,_0x391c5f)[_0x5d9ff4('0x8f9')](/_BASE_/g,this[_0x5d9ff4('0xc7e')]);}},{'key':_0x39ba6c('0xcad'),'value':function(){var _0x2b019a=_0x39ba6c,_0x462ae3=this;return{'aoColumnDefs':[{'fnRender':function(_0x5587b4,_0x4b3632){var _0x56b70d=_0x1c0e;return _0x462ae3[_0x56b70d('0xc16')](_0x5587b4,_0x4b3632,0x1);},'aTargets':[0x1]},{'fnRender':function(_0x2f4657,_0x32589a){return _0x462ae3['preProcessRemoteTableData'](_0x2f4657,_0x32589a,0x2);},'aTargets':[0x2]},{'fnRender':_0x462ae3[_0x2b019a('0x70e')],'aTargets':[_0x462ae3[_0x2b019a('0x433')]()['length']]}]};}},{'key':_0x39ba6c('0xc16'),'value':function(_0xe2a584,_0x2c486b,_0x132091){var _0x4c98e7=_0x39ba6c;return Date[_0x4c98e7('0x22f')](_0x2c486b)[_0x4c98e7('0x6e9')](_0x4c98e7('0xc97'));}}]),_0x24eb52;}(_0x7e766a[_0x44c460('0x8fd')]);_0x4ffb55[_0x44c460('0xd7')]={'AttendanceAdapter':_0x307ad6,'EmployeeAttendanceSheetAdapter':_0x517f8f};},{'../../../api/AdapterBase':0x27,'../../../api/FormValidation':0x2c}],0x43:[function(_0x3dd463,_0x4ac805,_0x10fd86){var _0x4a0c9a=_0x38d28e;'use strict';var _0x5108ae=_0x3dd463('./lib');window[_0x4a0c9a('0xe9')]=_0x5108ae[_0x4a0c9a('0xe9')];},{'./lib':0x44}],0x44:[function(_0x3052d9,_0x53a078,_0x284c22){var _0x1e6fda=_0x38d28e;'use strict';var _0x1afabc;function _0xa2e8f8(_0x1298dd){var _0x365965=_0x1c0e;return(_0xa2e8f8=_0x365965('0xa25')==typeof Symbol&&_0x365965('0xb5')==typeof Symbol['iterator']?function(_0x1883ad){return typeof _0x1883ad;}:function(_0x53c8d9){var _0x2d16c0=_0x365965;return _0x53c8d9&&_0x2d16c0('0xa25')==typeof Symbol&&_0x53c8d9[_0x2d16c0('0x63e')]===Symbol&&_0x53c8d9!==Symbol[_0x2d16c0('0x539')]?_0x2d16c0('0xb5'):typeof _0x53c8d9;})(_0x1298dd);}function _0x2881b6(_0x1db84f,_0x577cc1){var _0x4c9550=_0x1c0e;if(!(_0x1db84f instanceof _0x577cc1))throw new TypeError(_0x4c9550('0x9a0'));}function _0x69bfcc(_0x5e3082,_0x24d403){var _0x5a725b=_0x1c0e;for(var _0x1ab642=0x0;_0x1ab642<_0x24d403[_0x5a725b('0x796')];_0x1ab642++){var _0x4a456a=_0x24d403[_0x1ab642];_0x4a456a[_0x5a725b('0xdc2')]=_0x4a456a[_0x5a725b('0xdc2')]||!0x1,_0x4a456a[_0x5a725b('0x48d')]=!0x0,'value'in _0x4a456a&&(_0x4a456a[_0x5a725b('0x903')]=!0x0),Object[_0x5a725b('0x751')](_0x5e3082,_0x4a456a[_0x5a725b('0x3ba')],_0x4a456a);}}function _0x58e6bf(_0x4af469,_0x58e304){var _0x50e3dc=_0x1c0e;return!_0x58e304||_0x50e3dc('0xbfd')!==_0xa2e8f8(_0x58e304)&&_0x50e3dc('0xa25')!=typeof _0x58e304?function(_0x1dc0e0){if(void 0x0===_0x1dc0e0)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x1dc0e0;}(_0x4af469):_0x58e304;}function _0x4eced4(){var _0xeda1bb=_0x1c0e;if(_0xeda1bb('0xbfa')==typeof Reflect||!Reflect[_0xeda1bb('0x195')])return!0x1;if(Reflect[_0xeda1bb('0x195')][_0xeda1bb('0x460')])return!0x1;if(_0xeda1bb('0xa25')==typeof Proxy)return!0x0;try{return Date[_0xeda1bb('0x539')][_0xeda1bb('0x6e9')][_0xeda1bb('0x964')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x455250){return!0x1;}}function _0x25ee12(_0x4b52ef){var _0x1d551e=_0x1c0e;return(_0x25ee12=Object[_0x1d551e('0x489')]?Object[_0x1d551e('0x85e')]:function(_0x3dffcc){var _0x26cb90=_0x1d551e;return _0x3dffcc['__proto__']||Object[_0x26cb90('0x85e')](_0x3dffcc);})(_0x4b52ef);}function _0x345477(_0x58d115,_0x3d4cd1){var _0x15e321=_0x1c0e;return(_0x345477=Object[_0x15e321('0x489')]||function(_0x333ac0,_0x2c0285){return _0x333ac0['__proto__']=_0x2c0285,_0x333ac0;})(_0x58d115,_0x3d4cd1);}var _0x46d512=function(_0x2ade6a){var _0x2b24b4=_0x1c0e;!function(_0x4a167d,_0x5205f2){var _0x5cd00a=_0x1c0e;if(_0x5cd00a('0xa25')!=typeof _0x5205f2&&null!==_0x5205f2)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x4a167d[_0x5cd00a('0x539')]=Object[_0x5cd00a('0x3e2')](_0x5205f2&&_0x5205f2[_0x5cd00a('0x539')],{'constructor':{'value':_0x4a167d,'writable':!0x0,'configurable':!0x0}}),_0x5205f2&&_0x345477(_0x4a167d,_0x5205f2);}(_0x154fe3,_0x2ade6a);var _0x36f9a7,_0x121c0d,_0xcb9f3b,_0x4a8e69,_0x151597=(_0x36f9a7=_0x154fe3,function(){var _0x3d16a7,_0x42e39e=_0x25ee12(_0x36f9a7);if(_0x4eced4()){var _0x538a3c=_0x25ee12(this)['constructor'];_0x3d16a7=Reflect['construct'](_0x42e39e,arguments,_0x538a3c);}else _0x3d16a7=_0x42e39e['apply'](this,arguments);return _0x58e6bf(this,_0x3d16a7);});function _0x154fe3(){var _0x394f0e=_0x1c0e;return _0x2881b6(this,_0x154fe3),_0x151597[_0x394f0e('0x365')](this,arguments);}return _0x121c0d=_0x154fe3,(_0xcb9f3b=[{'key':_0x2b24b4('0x433'),'value':function(){return[];}},{'key':'getHeaders','value':function(){return[];}},{'key':_0x2b24b4('0x73d'),'value':function(){return[];}},{'key':'get','value':function(_0x30e71a){}},{'key':_0x2b24b4('0x640'),'value':function(){var _0x517a44=_0x2b24b4,_0x46d7c8={};_0x46d7c8[_0x517a44('0x9d2')]=this[_0x517a44('0x5f4')](new Date())[_0x517a44('0x70d')]()[_0x517a44('0x5fe')](0x0,0x13)['replace']('T','\x20'),_0x46d7c8[_0x517a44('0x39b')]=this[_0x517a44('0x2e1')]();var _0x3d86d4=JSON['stringify'](_0x46d7c8),_0x1ae10c=[];_0x1ae10c[_0x517a44('0x61a')]=[],_0x1ae10c[_0x517a44('0x4a2')]='getPunchSuccessCallBack',_0x1ae10c['callBackFail']=_0x517a44('0xd90'),this[_0x517a44('0xca3')](_0x517a44('0x640'),'modules=attendance',_0x3d86d4,_0x1ae10c);}},{'key':_0x2b24b4('0xba9'),'value':function(_0x2f430d){var _0x2473b6=_0x2b24b4,_0x371f5c=_0x2f430d;null==_0x371f5c?($(_0x2473b6('0xb14'))['html']('Not'),$('#punchTimeText')[_0x2473b6('0xd34')]('Punched\x20In')):($(_0x2473b6('0xb14'))[_0x2473b6('0xd34')](Date['parse'](_0x371f5c['in_time'])[_0x2473b6('0x6e9')](_0x2473b6('0xc70'))),$(_0x2473b6('0x895'))[_0x2473b6('0xd34')](_0x2473b6('0x199')));}},{'key':_0x2b24b4('0xd90'),'value':function(_0x4e5758){}},{'key':_0x2b24b4('0x87a'),'value':function(){var _0x50584b=_0x2b24b4,_0x330aed=JSON[_0x50584b('0xaae')]({}),_0x584af9=[];_0x584af9[_0x50584b('0x61a')]=[],_0x584af9[_0x50584b('0x4a2')]=_0x50584b('0xa11'),_0x584af9[_0x50584b('0xd61')]=_0x50584b('0x23e'),this['customAction'](_0x50584b('0x87a'),_0x50584b('0x76f'),_0x330aed,_0x584af9);}},{'key':'getInitDataSuccessCallBack','value':function(_0x30e5d9){var _0x5bd102=_0x2b24b4;$(_0x5bd102('0x2a4'))['html'](_0x30e5d9['lastTimeSheetHours']),$(_0x5bd102('0x295'))[_0x5bd102('0xd34')](_0x30e5d9[_0x5bd102('0x4f2')]),$(_0x5bd102('0xa61'))[_0x5bd102('0xd34')](_0x30e5d9['pendingLeaves']),$(_0x5bd102('0xb22'))[_0x5bd102('0xd34')](''[_0x5bd102('0x4c2')](_0x30e5d9[_0x5bd102('0x88c')],'\x20Subordinates')),$(_0x5bd102('0xdaa'))['html'](''[_0x5bd102('0x4c2')](_0x30e5d9[_0x5bd102('0x5aa')],'\x20Candidates')),$(_0x5bd102('0x5bd'))[_0x5bd102('0xd34')](''['concat'](_0x30e5d9[_0x5bd102('0x6b2')],_0x5bd102('0x339'))),$(_0x5bd102('0x658'))[_0x5bd102('0xd34')](''['concat'](_0x30e5d9[_0x5bd102('0x7d2')],_0x5bd102('0x339')));}},{'key':_0x2b24b4('0x23e'),'value':function(_0x239387){}},{'key':_0x2b24b4('0x5f4'),'value':function(_0x2ba867){var _0x1ee6ed=_0x2b24b4,_0x33f4f1=this['getClientGMTOffset']();return _0x2ba867[_0x1ee6ed('0x2d2')](0x3c*_0x33f4f1);}},{'key':_0x2b24b4('0x2e1'),'value':function(){var _0x2c34b4=_0x2b24b4,_0x1705f4=new Date(),_0x1ea0f8=new Date(_0x1705f4[_0x2c34b4('0x443')](),0x0,0x1,0x0,0x0,0x0,0x0),_0xf40dbd=_0x1ea0f8[_0x2c34b4('0xa55')]();return(_0x1ea0f8-new Date(_0xf40dbd['substring'](0x0,_0xf40dbd[_0x2c34b4('0x4ea')]('\x20')-0x1)))/0x36ee80;}}])&&_0x69bfcc(_0x121c0d['prototype'],_0xcb9f3b),_0x4a8e69&&_0x69bfcc(_0x121c0d,_0x4a8e69),_0x154fe3;}(((_0x1afabc=_0x3052d9(_0x1e6fda('0x9d6')))&&_0x1afabc[_0x1e6fda('0x8bc')]?_0x1afabc:{'default':_0x1afabc})[_0x1e6fda('0x8fd')]);_0x53a078['exports']={'DashboardAdapter':_0x46d512};},{'../../../api/AdapterBase':0x27}],0x45:[function(_0x4801ee,_0xdab1db,_0x2534d5){var _0x2bd5fb=_0x38d28e;'use strict';var _0x381d8c=_0x4801ee('./lib');window[_0x2bd5fb('0x5a0')]=_0x381d8c['EmployeeDependentAdapter'];},{'./lib':0x46}],0x46:[function(_0x5ea7e6,_0x104a0c,_0x4e373c){var _0x4d4dbf=_0x38d28e;'use strict';var _0x3a93b9;function _0x542bf3(_0x16a426){var _0x3eea64=_0x1c0e;return(_0x542bf3=_0x3eea64('0xa25')==typeof Symbol&&_0x3eea64('0xb5')==typeof Symbol[_0x3eea64('0x4ae')]?function(_0xc345d2){return typeof _0xc345d2;}:function(_0x13927a){var _0x511476=_0x3eea64;return _0x13927a&&_0x511476('0xa25')==typeof Symbol&&_0x13927a['constructor']===Symbol&&_0x13927a!==Symbol['prototype']?_0x511476('0xb5'):typeof _0x13927a;})(_0x16a426);}function _0x228ecc(_0x4fb679,_0x552b35){var _0x5954c8=_0x1c0e;if(!(_0x4fb679 instanceof _0x552b35))throw new TypeError(_0x5954c8('0x9a0'));}function _0x79e314(_0x413f04,_0xc691e8){var _0x155a2b=_0x1c0e;for(var _0x1c87b4=0x0;_0x1c87b4<_0xc691e8['length'];_0x1c87b4++){var _0x216603=_0xc691e8[_0x1c87b4];_0x216603[_0x155a2b('0xdc2')]=_0x216603['enumerable']||!0x1,_0x216603[_0x155a2b('0x48d')]=!0x0,_0x155a2b('0x920')in _0x216603&&(_0x216603[_0x155a2b('0x903')]=!0x0),Object['defineProperty'](_0x413f04,_0x216603[_0x155a2b('0x3ba')],_0x216603);}}function _0x5a74e5(_0x56451d,_0x164849){var _0x8694fb=_0x1c0e;return!_0x164849||_0x8694fb('0xbfd')!==_0x542bf3(_0x164849)&&'function'!=typeof _0x164849?function(_0x114033){var _0x7d7c4e=_0x8694fb;if(void 0x0===_0x114033)throw new ReferenceError(_0x7d7c4e('0xcf6'));return _0x114033;}(_0x56451d):_0x164849;}function _0x31b383(){var _0x179db9=_0x1c0e;if(_0x179db9('0xbfa')==typeof Reflect||!Reflect[_0x179db9('0x195')])return!0x1;if(Reflect[_0x179db9('0x195')][_0x179db9('0x460')])return!0x1;if(_0x179db9('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x179db9('0x539')]['toString'][_0x179db9('0x964')](Reflect[_0x179db9('0x195')](Date,[],function(){})),!0x0;}catch(_0x1f7ae3){return!0x1;}}function _0x5960f0(_0x256859){var _0x340814=_0x1c0e;return(_0x5960f0=Object[_0x340814('0x489')]?Object['getPrototypeOf']:function(_0x17d00f){var _0x3a40b7=_0x340814;return _0x17d00f[_0x3a40b7('0xcb9')]||Object[_0x3a40b7('0x85e')](_0x17d00f);})(_0x256859);}function _0x44c5ef(_0x2e0dcd,_0x130932){var _0x7b878=_0x1c0e;return(_0x44c5ef=Object[_0x7b878('0x489')]||function(_0x551e15,_0x16fe2a){var _0x354298=_0x7b878;return _0x551e15[_0x354298('0xcb9')]=_0x16fe2a,_0x551e15;})(_0x2e0dcd,_0x130932);}var _0x2c9036=function(_0x4c979a){var _0x45aa6d=_0x1c0e;!function(_0x1369c5,_0x3d7e9d){var _0x3b17a0=_0x1c0e;if(_0x3b17a0('0xa25')!=typeof _0x3d7e9d&&null!==_0x3d7e9d)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x1369c5['prototype']=Object[_0x3b17a0('0x3e2')](_0x3d7e9d&&_0x3d7e9d[_0x3b17a0('0x539')],{'constructor':{'value':_0x1369c5,'writable':!0x0,'configurable':!0x0}}),_0x3d7e9d&&_0x44c5ef(_0x1369c5,_0x3d7e9d);}(_0x31c6ee,_0x4c979a);var _0x340e8f,_0x1580d6,_0x97c665,_0x6270b7,_0xe05738=(_0x340e8f=_0x31c6ee,function(){var _0x38297f=_0x1c0e,_0x1baece,_0x16d15f=_0x5960f0(_0x340e8f);if(_0x31b383()){var _0x42359e=_0x5960f0(this)[_0x38297f('0x63e')];_0x1baece=Reflect['construct'](_0x16d15f,arguments,_0x42359e);}else _0x1baece=_0x16d15f[_0x38297f('0x365')](this,arguments);return _0x5a74e5(this,_0x1baece);});function _0x31c6ee(){return _0x228ecc(this,_0x31c6ee),_0xe05738['apply'](this,arguments);}return _0x1580d6=_0x31c6ee,(_0x97c665=[{'key':_0x45aa6d('0x433'),'value':function(){var _0x98f18d=_0x45aa6d;return['id','name',_0x98f18d('0x303'),_0x98f18d('0xb31'),_0x98f18d('0xda5')];}},{'key':_0x45aa6d('0x445'),'value':function(){var _0x4f179a=_0x45aa6d;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x4f179a('0xc8d')},{'sTitle':_0x4f179a('0x97c')},{'sTitle':_0x4f179a('0x63')},{'sTitle':_0x4f179a('0x851')}];}},{'key':_0x45aa6d('0x73d'),'value':function(){var _0x3d76ad=_0x45aa6d;return[['id',{'label':'ID','type':_0x3d76ad('0xa05')}],[_0x3d76ad('0xce'),{'label':_0x3d76ad('0xc8d'),'type':_0x3d76ad('0x941'),'validation':''}],[_0x3d76ad('0x303'),{'label':'Relationship','type':_0x3d76ad('0x510'),'source':[[_0x3d76ad('0x52e'),_0x3d76ad('0x52e')],[_0x3d76ad('0x931'),_0x3d76ad('0x931')],[_0x3d76ad('0x79f'),_0x3d76ad('0x79f')],[_0x3d76ad('0xc3b'),_0x3d76ad('0xc3b')]]}],['dob',{'label':_0x3d76ad('0x63'),'type':'date','validation':''}],[_0x3d76ad('0xda5'),{'label':_0x3d76ad('0x851'),'type':_0x3d76ad('0x941'),'validation':'none'}]];}}])&&_0x79e314(_0x1580d6['prototype'],_0x97c665),_0x6270b7&&_0x79e314(_0x1580d6,_0x6270b7),_0x31c6ee;}(((_0x3a93b9=_0x5ea7e6(_0x4d4dbf('0x9d6')))&&_0x3a93b9['__esModule']?_0x3a93b9:{'default':_0x3a93b9})[_0x4d4dbf('0x8fd')]);_0x104a0c['exports']={'EmployeeDependentAdapter':_0x2c9036};},{'../../../api/AdapterBase':0x27}],0x47:[function(_0x48b459,_0x40694b,_0x17c1df){var _0x2af4cb=_0x38d28e;'use strict';var _0x1e6e3a=_0x48b459('./lib');window[_0x2af4cb('0x8d1')]=_0x1e6e3a[_0x2af4cb('0x8d1')],window[_0x2af4cb('0x828')]=_0x1e6e3a[_0x2af4cb('0x828')];},{'./lib':0x48}],0x48:[function(_0x2d5a63,_0x51bd9d,_0x2b345c){var _0x384292=_0x38d28e;'use strict';var _0x91cb63=_0x548bda(_0x2d5a63(_0x384292('0x9d6'))),_0x4427aa=_0x548bda(_0x2d5a63('../../../api/ObjectAdapter'));function _0x548bda(_0x380369){var _0x58bca2=_0x384292;return _0x380369&&_0x380369[_0x58bca2('0x8bc')]?_0x380369:{'default':_0x380369};}function _0x39bfc6(_0x31c396){var _0x2a2bc9=_0x384292;return(_0x39bfc6=_0x2a2bc9('0xa25')==typeof Symbol&&_0x2a2bc9('0xb5')==typeof Symbol[_0x2a2bc9('0x4ae')]?function(_0x21103c){return typeof _0x21103c;}:function(_0x1d62ae){var _0x427ee9=_0x2a2bc9;return _0x1d62ae&&'function'==typeof Symbol&&_0x1d62ae[_0x427ee9('0x63e')]===Symbol&&_0x1d62ae!==Symbol[_0x427ee9('0x539')]?_0x427ee9('0xb5'):typeof _0x1d62ae;})(_0x31c396);}function _0x227470(_0x559477,_0x13956d){if(!(_0x559477 instanceof _0x13956d))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x217c7b(_0x3bc472,_0x5e5993){var _0x3c573c=_0x384292;for(var _0x20551e=0x0;_0x20551e<_0x5e5993[_0x3c573c('0x796')];_0x20551e++){var _0x250491=_0x5e5993[_0x20551e];_0x250491['enumerable']=_0x250491[_0x3c573c('0xdc2')]||!0x1,_0x250491[_0x3c573c('0x48d')]=!0x0,'value'in _0x250491&&(_0x250491['writable']=!0x0),Object['defineProperty'](_0x3bc472,_0x250491[_0x3c573c('0x3ba')],_0x250491);}}function _0x45a362(_0x53acf0,_0x4313fe,_0x56b2d4){var _0x1f1c51=_0x384292;return _0x4313fe&&_0x217c7b(_0x53acf0[_0x1f1c51('0x539')],_0x4313fe),_0x56b2d4&&_0x217c7b(_0x53acf0,_0x56b2d4),_0x53acf0;}function _0x2502e2(_0x1fa8c6){return function(){var _0xb1c5bc=_0x1c0e,_0x321c5d,_0xf68040=_0x139496(_0x1fa8c6);if(_0x2512a7()){var _0x27cc62=_0x139496(this)[_0xb1c5bc('0x63e')];_0x321c5d=Reflect[_0xb1c5bc('0x195')](_0xf68040,arguments,_0x27cc62);}else _0x321c5d=_0xf68040[_0xb1c5bc('0x365')](this,arguments);return _0x27d897(this,_0x321c5d);};}function _0x27d897(_0x57cbe4,_0x4e7d6d){var _0x52a4e9=_0x384292;return!_0x4e7d6d||_0x52a4e9('0xbfd')!==_0x39bfc6(_0x4e7d6d)&&_0x52a4e9('0xa25')!=typeof _0x4e7d6d?function(_0xb60cb9){var _0xe0ca63=_0x52a4e9;if(void 0x0===_0xb60cb9)throw new ReferenceError(_0xe0ca63('0xcf6'));return _0xb60cb9;}(_0x57cbe4):_0x4e7d6d;}function _0x2512a7(){var _0x454c88=_0x384292;if(_0x454c88('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect[_0x454c88('0x195')][_0x454c88('0x460')])return!0x1;if(_0x454c88('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x454c88('0x539')][_0x454c88('0x6e9')][_0x454c88('0x964')](Reflect[_0x454c88('0x195')](Date,[],function(){})),!0x0;}catch(_0x3b6e28){return!0x1;}}function _0x139496(_0x4afcf0){var _0x1b994f=_0x384292;return(_0x139496=Object[_0x1b994f('0x489')]?Object[_0x1b994f('0x85e')]:function(_0x39cb3a){var _0x496142=_0x1b994f;return _0x39cb3a[_0x496142('0xcb9')]||Object[_0x496142('0x85e')](_0x39cb3a);})(_0x4afcf0);}function _0x30803d(_0x1ba14c,_0x5e2a34){var _0x5f3aae=_0x384292;if('function'!=typeof _0x5e2a34&&null!==_0x5e2a34)throw new TypeError(_0x5f3aae('0xc4b'));_0x1ba14c['prototype']=Object[_0x5f3aae('0x3e2')](_0x5e2a34&&_0x5e2a34['prototype'],{'constructor':{'value':_0x1ba14c,'writable':!0x0,'configurable':!0x0}}),_0x5e2a34&&_0x384b62(_0x1ba14c,_0x5e2a34);}function _0x384b62(_0x14bbd7,_0x52f2ae){var _0x2d8826=_0x384292;return(_0x384b62=Object[_0x2d8826('0x489')]||function(_0x415e4d,_0x3d90eb){var _0x4c1878=_0x2d8826;return _0x415e4d[_0x4c1878('0xcb9')]=_0x3d90eb,_0x415e4d;})(_0x14bbd7,_0x52f2ae);}var _0x1e4638=function(_0x44c05c){var _0x482b45=_0x384292;_0x30803d(_0x42ad6b,_0x44c05c);var _0x1b89cf=_0x2502e2(_0x42ad6b);function _0x42ad6b(){var _0x3eaadf=_0x1c0e;return _0x227470(this,_0x42ad6b),_0x1b89cf[_0x3eaadf('0x365')](this,arguments);}return _0x45a362(_0x42ad6b,[{'key':'getDataMapping','value':function(){var _0xd38301=_0x1c0e;return['id',_0xd38301('0x21f'),_0xd38301('0x212'),_0xd38301('0x79b'),_0xd38301('0x525'),'attachment'];}},{'key':_0x482b45('0x445'),'value':function(){var _0xd3fd17=_0x482b45;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Document'},{'sTitle':_0xd3fd17('0xd3a')},{'sTitle':_0xd3fd17('0x12a')},{'sTitle':'Status'},{'sTitle':_0xd3fd17('0x60e'),'bVisible':!0x1}];}},{'key':_0x482b45('0x73d'),'value':function(){var _0x29aa77=_0x482b45;return[['id',{'label':'ID','type':_0x29aa77('0xa05')}],[_0x29aa77('0x21f'),{'label':'Document','type':_0x29aa77('0xdc5'),'remote-source':[_0x29aa77('0xdaf'),'id',_0x29aa77('0xce'),'getDocumentTypesForUser']}],[_0x29aa77('0x1da'),{'label':'Valid\x20Until','type':'date','validation':_0x29aa77('0x649')}],[_0x29aa77('0x525'),{'label':'Status','type':_0x29aa77('0x510'),'source':[[_0x29aa77('0x124'),'Active'],[_0x29aa77('0xb96'),_0x29aa77('0xb96')],[_0x29aa77('0xd23'),'Draft']]}],[_0x29aa77('0x212'),{'label':'Details','type':'textarea','validation':_0x29aa77('0x649')}],['attachment',{'label':_0x29aa77('0x60e'),'type':_0x29aa77('0x321'),'validation':''}]];}},{'key':'getActionButtonsHtml','value':function(_0x46b193,_0x22de1c){var _0x291072=_0x482b45,_0x4221a0=_0x291072('0x93f');return _0x4221a0=_0x4221a0['replace'](_0x291072('0x6da'),''),_0x4221a0=this['showDelete']?_0x4221a0[_0x291072('0x8f9')](_0x291072('0xd63'),_0x291072('0x95e')):_0x4221a0[_0x291072('0x8f9')](_0x291072('0xd63'),''),_0x4221a0=(_0x4221a0=(_0x4221a0=(_0x4221a0=this['showEdit']?_0x4221a0['replace'](_0x291072('0x4c'),_0x291072('0x1ea')):_0x4221a0['replace']('_edit_',''))[_0x291072('0x8f9')](/_id_/g,_0x46b193))[_0x291072('0x8f9')](/_attachment_/g,_0x22de1c[0x5]))[_0x291072('0x8f9')](/_BASE_/g,this[_0x291072('0xc7e')]);}}]),_0x42ad6b;}(_0x91cb63[_0x384292('0x8fd')]),_0x14eca9=function(_0x2ffc09){var _0x3135da=_0x384292;_0x30803d(_0x37e852,_0x2ffc09);var _0x1e21a6=_0x2502e2(_0x37e852);function _0x37e852(){var _0x554d70=_0x1c0e;return _0x227470(this,_0x37e852),_0x1e21a6[_0x554d70('0x365')](this,arguments);}return _0x45a362(_0x37e852,[{'key':_0x3135da('0x433'),'value':function(){var _0x13aaeb=_0x3135da;return['id',_0x13aaeb('0xce'),_0x13aaeb('0x212')];}},{'key':_0x3135da('0x445'),'value':function(){var _0x47a236=_0x3135da;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Name'},{'sTitle':_0x47a236('0xd3a')}];}},{'key':_0x3135da('0x73d'),'value':function(){var _0x148440=_0x3135da;return[['id',{'label':'ID','type':_0x148440('0xa05')}],[_0x148440('0xce'),{'label':_0x148440('0xc8d'),'type':_0x148440('0x6d0'),'validation':''}],[_0x148440('0x212'),{'label':'Details','type':'placeholder','validation':_0x148440('0x649')}],[_0x148440('0xb2b'),{'label':_0x148440('0x60e'),'type':_0x148440('0x6d0'),'validation':'none'}]];}},{'key':_0x3135da('0x9cb'),'value':function(_0x5b4243){}},{'key':_0x3135da('0xb15'),'value':function(){var _0x2bdabd=_0x3135da;return _0x2bdabd('0x86c');}},{'key':_0x3135da('0x4fa'),'value':function(_0x5b5171){var _0x3ff2b2=_0x3135da;return _0x5b5171[_0x3ff2b2('0xd24')]=this[_0x3ff2b2('0xc51')](_0x5b5171[_0x3ff2b2('0x18b')]),_0x5b5171[_0x3ff2b2('0xbc2')]=this[_0x3ff2b2('0x6bd')](_0x5b5171[_0x3ff2b2('0x18b')]),_0x5b5171[_0x3ff2b2('0xbf4')]=this[_0x3ff2b2('0x546')](_0x5b5171[_0x3ff2b2('0x212')]),_0x5b5171[_0x3ff2b2('0x212')][_0x3ff2b2('0x796')]>0x1e&&(_0x5b5171[_0x3ff2b2('0x212')]=_0x5b5171[_0x3ff2b2('0x212')][_0x3ff2b2('0x14c')](0x0,0x1e)),void 0x0!==_0x5b5171[_0x3ff2b2('0x2f9')]&&null!=_0x5b5171[_0x3ff2b2('0x2f9')]||(_0x5b5171[_0x3ff2b2('0x2f9')]=''),_0x5b5171;}}]),_0x37e852;}(_0x4427aa['default']);_0x51bd9d['exports']={'EmployeeDocumentAdapter':_0x1e4638,'EmployeeCompanyDocumentAdapter':_0x14eca9};},{'../../../api/AdapterBase':0x27,'../../../api/ObjectAdapter':0x31}],0x49:[function(_0x5ab0b4,_0x1af7a8,_0xa7fe9e){var _0x13d70f=_0x38d28e;'use strict';var _0x1ee49d=_0x5ab0b4(_0x13d70f('0x822'));window['EmergencyContactAdapter']=_0x1ee49d[_0x13d70f('0x706')];},{'./lib':0x4a}],0x4a:[function(_0x5d7785,_0x395341,_0x3e4c0b){var _0x89c302=_0x38d28e;'use strict';var _0x5189e9;function _0x1c7b3a(_0x8adc56){var _0x520558=_0x1c0e;return(_0x1c7b3a='function'==typeof Symbol&&_0x520558('0xb5')==typeof Symbol[_0x520558('0x4ae')]?function(_0x5ca475){return typeof _0x5ca475;}:function(_0x196bed){var _0xe5049f=_0x520558;return _0x196bed&&_0xe5049f('0xa25')==typeof Symbol&&_0x196bed[_0xe5049f('0x63e')]===Symbol&&_0x196bed!==Symbol['prototype']?_0xe5049f('0xb5'):typeof _0x196bed;})(_0x8adc56);}function _0xb6fe67(_0x5149cb,_0x195fea){var _0x163d74=_0x1c0e;if(!(_0x5149cb instanceof _0x195fea))throw new TypeError(_0x163d74('0x9a0'));}function _0x36c827(_0x30a936,_0x24a9de){var _0x42e85b=_0x1c0e;for(var _0x51cc65=0x0;_0x51cc65<_0x24a9de['length'];_0x51cc65++){var _0x653796=_0x24a9de[_0x51cc65];_0x653796[_0x42e85b('0xdc2')]=_0x653796[_0x42e85b('0xdc2')]||!0x1,_0x653796[_0x42e85b('0x48d')]=!0x0,_0x42e85b('0x920')in _0x653796&&(_0x653796[_0x42e85b('0x903')]=!0x0),Object[_0x42e85b('0x751')](_0x30a936,_0x653796['key'],_0x653796);}}function _0x501d1f(_0x34bcc3,_0x2763e5){var _0x561462=_0x1c0e;return!_0x2763e5||_0x561462('0xbfd')!==_0x1c7b3a(_0x2763e5)&&'function'!=typeof _0x2763e5?function(_0x1c972d){var _0x4d4583=_0x561462;if(void 0x0===_0x1c972d)throw new ReferenceError(_0x4d4583('0xcf6'));return _0x1c972d;}(_0x34bcc3):_0x2763e5;}function _0x44ad48(){var _0x7b664e=_0x1c0e;if(_0x7b664e('0xbfa')==typeof Reflect||!Reflect[_0x7b664e('0x195')])return!0x1;if(Reflect['construct'][_0x7b664e('0x460')])return!0x1;if(_0x7b664e('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x7b664e('0x539')][_0x7b664e('0x6e9')]['call'](Reflect[_0x7b664e('0x195')](Date,[],function(){})),!0x0;}catch(_0x16f662){return!0x1;}}function _0x3ff032(_0x40b26c){var _0x5c386e=_0x1c0e;return(_0x3ff032=Object['setPrototypeOf']?Object[_0x5c386e('0x85e')]:function(_0x1beaec){var _0x6891ae=_0x5c386e;return _0x1beaec[_0x6891ae('0xcb9')]||Object[_0x6891ae('0x85e')](_0x1beaec);})(_0x40b26c);}function _0x57dd0c(_0x18dc40,_0x64fcb7){var _0x2c9227=_0x1c0e;return(_0x57dd0c=Object[_0x2c9227('0x489')]||function(_0x19dff8,_0x529b6b){var _0x6cbeed=_0x2c9227;return _0x19dff8[_0x6cbeed('0xcb9')]=_0x529b6b,_0x19dff8;})(_0x18dc40,_0x64fcb7);}var _0x31521c=function(_0x2256fd){var _0x5f3ff6=_0x1c0e;!function(_0x42388f,_0x12abf2){var _0x3da7ba=_0x1c0e;if(_0x3da7ba('0xa25')!=typeof _0x12abf2&&null!==_0x12abf2)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x42388f[_0x3da7ba('0x539')]=Object[_0x3da7ba('0x3e2')](_0x12abf2&&_0x12abf2[_0x3da7ba('0x539')],{'constructor':{'value':_0x42388f,'writable':!0x0,'configurable':!0x0}}),_0x12abf2&&_0x57dd0c(_0x42388f,_0x12abf2);}(_0x558893,_0x2256fd);var _0x2770bc,_0x4090b6,_0xcfda1a,_0x3cdc6b,_0x53b52d=(_0x2770bc=_0x558893,function(){var _0x9d0d3a=_0x1c0e,_0x21a772,_0x533891=_0x3ff032(_0x2770bc);if(_0x44ad48()){var _0x5eb614=_0x3ff032(this)[_0x9d0d3a('0x63e')];_0x21a772=Reflect[_0x9d0d3a('0x195')](_0x533891,arguments,_0x5eb614);}else _0x21a772=_0x533891[_0x9d0d3a('0x365')](this,arguments);return _0x501d1f(this,_0x21a772);});function _0x558893(){return _0xb6fe67(this,_0x558893),_0x53b52d['apply'](this,arguments);}return _0x4090b6=_0x558893,(_0xcfda1a=[{'key':_0x5f3ff6('0x433'),'value':function(){var _0x3151e6=_0x5f3ff6;return['id',_0x3151e6('0xce'),'relationship',_0x3151e6('0xbb9'),_0x3151e6('0xc0a'),_0x3151e6('0x136')];}},{'key':_0x5f3ff6('0x445'),'value':function(){var _0xdd6d3a=_0x5f3ff6;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0xdd6d3a('0xc8d')},{'sTitle':'Relationship'},{'sTitle':_0xdd6d3a('0x7a4')},{'sTitle':_0xdd6d3a('0x843')},{'sTitle':_0xdd6d3a('0x97e')}];}},{'key':_0x5f3ff6('0x73d'),'value':function(){var _0x375dfd=_0x5f3ff6;return[['id',{'label':'ID','type':_0x375dfd('0xa05')}],[_0x375dfd('0xce'),{'label':'Name','type':'text','validation':''}],['relationship',{'label':_0x375dfd('0x97c'),'type':_0x375dfd('0x941'),'validation':_0x375dfd('0x649')}],[_0x375dfd('0xbb9'),{'label':_0x375dfd('0x7a4'),'type':_0x375dfd('0x941'),'validation':'none'}],['work_phone',{'label':'Work\x20Phone','type':_0x375dfd('0x941'),'validation':_0x375dfd('0x649')}],[_0x375dfd('0x136'),{'label':'Mobile\x20Phone','type':_0x375dfd('0x941'),'validation':'none'}]];}}])&&_0x36c827(_0x4090b6[_0x5f3ff6('0x539')],_0xcfda1a),_0x3cdc6b&&_0x36c827(_0x4090b6,_0x3cdc6b),_0x558893;}(((_0x5189e9=_0x5d7785('../../../api/AdapterBase'))&&_0x5189e9[_0x89c302('0x8bc')]?_0x5189e9:{'default':_0x5189e9})[_0x89c302('0x8fd')]);_0x395341[_0x89c302('0xd7')]={'EmergencyContactAdapter':_0x31521c};},{'../../../api/AdapterBase':0x27}],0x4b:[function(_0x475f5c,_0x286f5a,_0x343153){var _0x45f298=_0x38d28e;'use strict';Object[_0x45f298('0x751')](_0x343153,_0x45f298('0x8bc'),{'value':!0x0}),_0x343153[_0x45f298('0x8fd')]=void 0x0;var _0x286839=_0x5915f0(_0x475f5c('react')),_0x409d30=_0x475f5c('antd'),_0x371c82=_0x475f5c('@ant-design/icons'),_0x4f4522=_0x5915f0(_0x475f5c(_0x45f298('0xb7e'))),_0xafa02a=_0x5915f0(_0x475f5c('../../../../components/UpdatePasswordModal'));function _0x5915f0(_0x90f8ea){var _0xa95d60=_0x45f298;return _0x90f8ea&&_0x90f8ea[_0xa95d60('0x8bc')]?_0x90f8ea:{'default':_0x90f8ea};}function _0x2cbbcf(_0xe8fd11){var _0x3ddc5d=_0x45f298;return(_0x2cbbcf=_0x3ddc5d('0xa25')==typeof Symbol&&_0x3ddc5d('0xb5')==typeof Symbol[_0x3ddc5d('0x4ae')]?function(_0x1e698d){return typeof _0x1e698d;}:function(_0x562717){var _0x7efb16=_0x3ddc5d;return _0x562717&&_0x7efb16('0xa25')==typeof Symbol&&_0x562717[_0x7efb16('0x63e')]===Symbol&&_0x562717!==Symbol[_0x7efb16('0x539')]?_0x7efb16('0xb5'):typeof _0x562717;})(_0xe8fd11);}function _0x50cfc5(_0x57bf21,_0x5c1cc2){var _0x2cc7b9=_0x45f298;for(var _0xbb6f29=0x0;_0xbb6f29<_0x5c1cc2[_0x2cc7b9('0x796')];_0xbb6f29++){var _0x19d6da=_0x5c1cc2[_0xbb6f29];_0x19d6da['enumerable']=_0x19d6da[_0x2cc7b9('0xdc2')]||!0x1,_0x19d6da[_0x2cc7b9('0x48d')]=!0x0,_0x2cc7b9('0x920')in _0x19d6da&&(_0x19d6da['writable']=!0x0),Object[_0x2cc7b9('0x751')](_0x57bf21,_0x19d6da['key'],_0x19d6da);}}function _0x3b3f72(_0x50c7af,_0x2c8b7e){var _0x45d6da=_0x45f298;return!_0x2c8b7e||'object'!==_0x2cbbcf(_0x2c8b7e)&&_0x45d6da('0xa25')!=typeof _0x2c8b7e?function(_0x3df55a){var _0x5292de=_0x45d6da;if(void 0x0===_0x3df55a)throw new ReferenceError(_0x5292de('0xcf6'));return _0x3df55a;}(_0x50c7af):_0x2c8b7e;}function _0x160b4e(){var _0x4d54b2=_0x45f298;if(_0x4d54b2('0xbfa')==typeof Reflect||!Reflect[_0x4d54b2('0x195')])return!0x1;if(Reflect['construct'][_0x4d54b2('0x460')])return!0x1;if(_0x4d54b2('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x4d54b2('0x539')]['toString'][_0x4d54b2('0x964')](Reflect[_0x4d54b2('0x195')](Date,[],function(){})),!0x0;}catch(_0x27d64c){return!0x1;}}function _0x3ca3f1(_0x3ef7db){var _0x196962=_0x45f298;return(_0x3ca3f1=Object['setPrototypeOf']?Object[_0x196962('0x85e')]:function(_0x2c4afe){var _0x3dd4f8=_0x196962;return _0x2c4afe[_0x3dd4f8('0xcb9')]||Object[_0x3dd4f8('0x85e')](_0x2c4afe);})(_0x3ef7db);}function _0x9eb767(_0x574cc7,_0x349f36){var _0x446b8e=_0x45f298;return(_0x9eb767=Object[_0x446b8e('0x489')]||function(_0xa7e97d,_0x2d0ec3){return _0xa7e97d['__proto__']=_0x2d0ec3,_0xa7e97d;})(_0x574cc7,_0x349f36);}var _0x12d9ad=_0x409d30[_0x45f298('0x81a')][_0x45f298('0x6c3')],_0x79d248=_0x409d30[_0x45f298('0x81a')][_0x45f298('0x512')],_0x59b38b=_0x409d30[_0x45f298('0x9c2')][_0x45f298('0xa3f')],_0x218438=function(_0x16a72d){var _0x288c7a=_0x45f298;!function(_0x1e26d9,_0x41bdcf){var _0x1266e5=_0x1c0e;if(_0x1266e5('0xa25')!=typeof _0x41bdcf&&null!==_0x41bdcf)throw new TypeError(_0x1266e5('0xc4b'));_0x1e26d9[_0x1266e5('0x539')]=Object[_0x1266e5('0x3e2')](_0x41bdcf&&_0x41bdcf[_0x1266e5('0x539')],{'constructor':{'value':_0x1e26d9,'writable':!0x0,'configurable':!0x0}}),_0x41bdcf&&_0x9eb767(_0x1e26d9,_0x41bdcf);}(_0x2de9ce,_0x16a72d);var _0x380cd0,_0x215c53,_0x43d530,_0x5c4785,_0x4ec1dd=(_0x380cd0=_0x2de9ce,function(){var _0x5ba128=_0x1c0e,_0x5c1b96,_0x5ec2cb=_0x3ca3f1(_0x380cd0);if(_0x160b4e()){var _0x307c6e=_0x3ca3f1(this)[_0x5ba128('0x63e')];_0x5c1b96=Reflect[_0x5ba128('0x195')](_0x5ec2cb,arguments,_0x307c6e);}else _0x5c1b96=_0x5ec2cb[_0x5ba128('0x365')](this,arguments);return _0x3b3f72(this,_0x5c1b96);});function _0x2de9ce(_0x3adafa){var _0x59605e=_0x1c0e,_0xd7f2b8;return function(_0x4057a0,_0x564559){var _0x313044=_0x1c0e;if(!(_0x4057a0 instanceof _0x564559))throw new TypeError(_0x313044('0x9a0'));}(this,_0x2de9ce),(_0xd7f2b8=_0x4ec1dd[_0x59605e('0x964')](this,_0x3adafa))[_0x59605e('0x7b0')]={'loading':!0x0,'showPasswordResetModal':!0x1},_0xd7f2b8;}return _0x215c53=_0x2de9ce,(_0x43d530=[{'key':_0x288c7a('0x401'),'value':function(_0x986796){this['setState']({'loading':_0x986796});}},{'key':_0x288c7a('0x9f8'),'value':function(_0x1e640e){var _0x10a288=_0x288c7a;this[_0x10a288('0x4e1')]({'showPasswordResetModal':_0x1e640e});}},{'key':'updateProfileImage','value':function(){var _0x3d907a=_0x288c7a;showUploadDialog(_0x3d907a('0x1f7')[_0x3d907a('0x4c2')](this['props'][_0x3d907a('0xe8')]['id'],'_')[_0x3d907a('0x4c2')](new Date()[_0x3d907a('0x2f4')]()),_0x3d907a('0x554'),_0x3d907a('0xb41'),this[_0x3d907a('0x22d')][_0x3d907a('0xe8')]['id'],_0x3d907a('0x1f7')[_0x3d907a('0x4c2')](this[_0x3d907a('0x22d')][_0x3d907a('0xe8')]['id']),_0x3d907a('0xa25'),_0x3d907a('0x5d5'),_0x3d907a('0xcf0'));}},{'key':_0x288c7a('0x261'),'value':function(){var _0xdcf15f=_0x288c7a,_0x1828c9=this;return _0x286839[_0xdcf15f('0x8fd')][_0xdcf15f('0x6b7')](_0x286839[_0xdcf15f('0x8fd')][_0xdcf15f('0x65d')],null,this[_0xdcf15f('0x7b0')][_0xdcf15f('0x704')]&&_0x286839['default'][_0xdcf15f('0x6b7')](_0x409d30[_0xdcf15f('0x70a')],{'icon':_0x286839[_0xdcf15f('0x8fd')][_0xdcf15f('0x6b7')](_0x371c82[_0xdcf15f('0xbb1')],{'spin':!0x0}),'color':_0xdcf15f('0x3c9')},this[_0xdcf15f('0x22d')][_0xdcf15f('0xdad')]['gt'](_0xdcf15f('0x753'))),!this[_0xdcf15f('0x7b0')][_0xdcf15f('0x704')]&&_0x286839['default'][_0xdcf15f('0x6b7')](_0x409d30[_0xdcf15f('0x70a')],{'icon':_0x286839[_0xdcf15f('0x8fd')][_0xdcf15f('0x6b7')](_0x371c82['EditOutlined'],null),'color':'processing','onClick':function(){var _0xc51beb=_0xdcf15f;return modJs['edit'](_0x1828c9[_0xc51beb('0x22d')][_0xc51beb('0xe8')]['id']);}},this[_0xdcf15f('0x22d')][_0xdcf15f('0xdad')]['gt']('Edit')));}},{'key':_0x288c7a('0x8a3'),'value':function(){var _0xd900ba=_0x288c7a,_0x4189c3=this;return _0x286839[_0xd900ba('0x8fd')][_0xd900ba('0x6b7')](_0x286839[_0xd900ba('0x8fd')]['Fragment'],null,this[_0xd900ba('0x7b0')][_0xd900ba('0x704')]&&_0x286839[_0xd900ba('0x8fd')][_0xd900ba('0x6b7')](_0x409d30[_0xd900ba('0x70a')],{'icon':_0x286839[_0xd900ba('0x8fd')][_0xd900ba('0x6b7')](_0x371c82[_0xd900ba('0xbb1')],{'spin':!0x0}),'color':_0xd900ba('0x3c9')},this[_0xd900ba('0x22d')][_0xd900ba('0xdad')]['gt'](_0xd900ba('0x753'))),!this[_0xd900ba('0x7b0')][_0xd900ba('0x704')]&&_0x286839[_0xd900ba('0x8fd')]['createElement'](_0x409d30['Tag'],{'icon':_0x286839[_0xd900ba('0x8fd')][_0xd900ba('0x6b7')](_0x371c82['EditOutlined'],null),'color':'processing','onClick':function(){var _0xdcffd1=_0xd900ba;return modJs[_0xdcffd1('0xaf0')](_0x4189c3[_0xdcffd1('0x22d')]['element']['id']);}},this[_0xd900ba('0x22d')][_0xd900ba('0xdad')]['gt'](_0xd900ba('0x753'))),_0x286839[_0xd900ba('0x8fd')][_0xd900ba('0x6b7')](_0x409d30[_0xd900ba('0x70a')],{'icon':_0x286839[_0xd900ba('0x8fd')]['createElement'](_0x371c82[_0xd900ba('0xa7')],null),'color':'volcano','onClick':function(){var _0x20f7e0=_0xd900ba;return _0x4189c3[_0x20f7e0('0x9f8')](!0x0);}},this[_0xd900ba('0x22d')]['adapter']['gt'](_0xd900ba('0x6c4'))));}},{'key':_0x288c7a('0xd14'),'value':function(){var _0x30e9f4=_0x288c7a;return _0x286839[_0x30e9f4('0x8fd')]['createElement'](_0x286839[_0x30e9f4('0x8fd')]['Fragment'],null,_0x286839[_0x30e9f4('0x8fd')][_0x30e9f4('0x6b7')](_0x409d30['Tag'],{'icon':_0x286839[_0x30e9f4('0x8fd')][_0x30e9f4('0x6b7')](_0x371c82['SyncOutlined'],{'spin':!0x0}),'color':_0x30e9f4('0x3c9')},this[_0x30e9f4('0x22d')][_0x30e9f4('0xdad')]['gt']('Update\x20Password')));}},{'key':_0x288c7a('0xb17'),'value':function(_0xc9ca9a){var _0x213c2a=_0x288c7a,_0x8c866f=this;return _0x286839['default']['createElement'](_0x409d30[_0x213c2a('0x70a')],{'icon':_0x286839[_0x213c2a('0x8fd')][_0x213c2a('0x6b7')](_0x371c82[_0x213c2a('0xbd9')],null),'color':'processing','onClick':function(){var _0x425c46=_0x213c2a;switchTab(_0xc9ca9a,{'employee':_0x8c866f[_0x425c46('0x22d')]['element']['id']});}},this[_0x213c2a('0x22d')][_0x213c2a('0xdad')]['gt'](_0x213c2a('0x753')));}},{'key':_0x288c7a('0x358'),'value':function(){var _0x2e10ee=_0x288c7a,_0x3bd2a3=this;return this['state'][_0x2e10ee('0x704')]||!this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]?_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x2e10ee('0xabf'),{'style':{'padding':_0x2e10ee('0x97f')}},_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30['Skeleton'],{'active':!0x0})):_0x286839['default']['createElement'](_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x65d')],null,_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0xafa02a[_0x2e10ee('0x8fd')],{'visible':this[_0x2e10ee('0x7b0')][_0x2e10ee('0x54e')],'closeModal':function(){var _0x4944de=_0x2e10ee;_0x3bd2a3[_0x4944de('0x4e1')]({'showPasswordResetModal':!0x1});},'adapter':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]}),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x1ab')],{'direction':'vertical','style':{'width':'100%','padding':_0x2e10ee('0xb80')},'gutter':0x18},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x54d')],{'span':0x18},_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30['Card'],{'title':this['props']['adapter']['gt'](_0x2e10ee('0x34b')),'extra':this[_0x2e10ee('0x8a3')](),'style':{'width':_0x2e10ee('0xaa6')}},_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30['Space'],{'size':_0x2e10ee('0x70b')},_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x68d')],{'size':0x8c,'src':this['props'][_0x2e10ee('0xe8')]['image'],'onClick':function(){return _0x3bd2a3['updateProfileImage']();}}),_0x286839['default']['createElement'](_0x409d30[_0x2e10ee('0xaef')],{'direction':_0x2e10ee('0xc0b')},_0x286839['default'][_0x2e10ee('0x6b7')](_0x12d9ad,{'level':0x4},''[_0x2e10ee('0x4c2')](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x7e1')],'\x20')[_0x2e10ee('0x4c2')](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['last_name'])),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0xaef')],null,_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x371c82[_0x2e10ee('0xd08')],null),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x79d248,{'copyable':!0x0},'\x20'[_0x2e10ee('0x4c2')](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x136')]||''))),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0xaef')],null,_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x371c82[_0x2e10ee('0x454')],null),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x79d248,{'copyable':!0x0},'\x20'[_0x2e10ee('0x4c2')](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0xa2c')]||'')))),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')],{'title':'','bordered':!0x0,'style':{'width':'100%','padding':_0x2e10ee('0xb80')}},_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt']('Employee\x20Number'),'span':0x3},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['employee_id']),_0x286839['default']['createElement'](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')]['adapter']['gt'](_0x2e10ee('0xb62')),'span':0x3},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x635')]),this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x6e2')]&&''!==this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['ssn_num']&&_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x58b')),'span':0x3},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x6e2')])))))),_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x1ab')],{'direction':_0x2e10ee('0xc0b'),'style':{'width':_0x2e10ee('0xaa6'),'padding':'10px'},'gutter':0x18},_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30['Tabs'],{'type':_0x2e10ee('0xb45'),'style':{'width':'100%'}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x59b38b,{'tab':_0x2e10ee('0xa35'),'key':'1','style':{'width':_0x2e10ee('0xaa6')}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30['Row'],{'direction':_0x2e10ee('0xc0b'),'style':{'width':_0x2e10ee('0xaa6'),'padding':_0x2e10ee('0xb80')},'gutter':0x18},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x54d')],{'span':0x18},_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7b1')],{'title':this['props'][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0xca7')),'extra':this[_0x2e10ee('0x261')](),'style':{'width':_0x2e10ee('0xaa6')}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')],{'title':'','bordered':!0x0},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this['props'][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x63'))},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['birthday']||''),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7ee')]['Item'],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x37a'))},this[_0x2e10ee('0x22d')]['element'][_0x2e10ee('0x2a5')]),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x377'))},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0xb1b')]),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x9d7'))},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x386')]),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30['Descriptions'][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x13c'))},this['props'][_0x2e10ee('0xe8')][_0x2e10ee('0x310')]),_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')]['Item'],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x6f'))},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['driving_license']||''),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30['Descriptions']['Item'],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x662'))},this[_0x2e10ee('0x22d')]['element'][_0x2e10ee('0x204')]||'')))),_0x286839['default']['createElement'](_0x409d30[_0x2e10ee('0x54d')],{'span':0x18},_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7b1')],{'title':this['props']['adapter']['gt']('Contact\x20Information'),'extra':this['getEditButtonJsx'](),'style':{'width':'100%'}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30['Descriptions'],{'title':'','bordered':!0x0},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30['Descriptions']['Item'],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x5ab')),'span':0x3},''[_0x2e10ee('0x4c2')](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['address1'],',\x20')['concat'](this[_0x2e10ee('0x22d')]['element']['address2']||'')),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt']('City')},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x229')]),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30['Descriptions'][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x4a'))},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x1b1')]),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')]['Item'],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt']('Postal/Zip\x20Code')},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x8c1')]),_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')]['Item'],{'label':this[_0x2e10ee('0x22d')]['adapter']['gt'](_0x2e10ee('0x7a4')),'span':0x2},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0xaef')],null,_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x371c82[_0x2e10ee('0xd08')],null),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x79d248,{'copyable':!0x0},'\x20'['concat'](this[_0x2e10ee('0x22d')]['element'][_0x2e10ee('0xbb9')]||'')))),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this['props']['adapter']['gt']('Work\x20Phone'),'span':0x2},_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30['Space'],null,_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x371c82['PhoneTwoTone'],null),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x79d248,{'copyable':!0x0},'\x20'['concat'](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0xc0a')]||'')))),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0xb71')),'span':0x2},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0xaef')],null,_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x371c82[_0x2e10ee('0x454')],null),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x79d248,{'copyable':!0x0},'\x20'[_0x2e10ee('0x4c2')](this[_0x2e10ee('0x22d')]['element']['private_email']||''))))))),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x54d')],{'span':0x18},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7b1')],{'title':this[_0x2e10ee('0x22d')]['adapter']['gt'](_0x2e10ee('0x375')),'extra':this[_0x2e10ee('0x261')](),'style':{'width':_0x2e10ee('0xaa6')}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30['Descriptions'],{'title':'','bordered':!0x0},_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt']('Job\x20Title'),'span':0x2},this['props'][_0x2e10ee('0xe8')]['job_title_Name']),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7ee')]['Item'],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt']('Employment\x20Status')},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x436')]),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')]['adapter']['gt'](_0x2e10ee('0xb9a'))},this['props'][_0x2e10ee('0xe8')]['department_Name']),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x7ee')][_0x2e10ee('0x41a')],{'label':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x8f0'))},this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')][_0x2e10ee('0x4f6')])))))),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x59b38b,{'tab':this[_0x2e10ee('0x22d')]['adapter']['gt']('Qualifications'),'key':'2','style':{'width':'100%'}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x1ab')],{'style':{'width':_0x2e10ee('0xaa6'),'padding':_0x2e10ee('0xb80')},'gutter':0x18},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30['Col'],{'span':0x6},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7b1')],{'title':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x5a6')),'style':{'width':_0x2e10ee('0xaa6')}},_0x286839['default']['createElement'](_0x4f4522[_0x2e10ee('0x8fd')],{'color':_0x2e10ee('0x928'),'apiClient':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['apiClient'],'url':'employees/'[_0x2e10ee('0x4c2')](this['props'][_0x2e10ee('0xe8')]['id'],'/skills'),'extractTag':function(_0x4b6908){var _0x4a886b=_0x2e10ee;return _0x4b6908[_0x4a886b('0x176')][_0x4a886b('0x764')];}}))),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x54d')],{'span':0x6},_0x286839['default'][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7b1')],{'title':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt']('Education'),'style':{'width':'100%'}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x4f4522[_0x2e10ee('0x8fd')],{'color':_0x2e10ee('0x957'),'apiClient':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['apiClient'],'url':_0x2e10ee('0x4f0')[_0x2e10ee('0x4c2')](this['props'][_0x2e10ee('0xe8')]['id'],'/educations'),'extractTag':function(_0x4f178e){var _0x3d5e6c=_0x2e10ee;return _0x4f178e[_0x3d5e6c('0xccb')][_0x3d5e6c('0x764')];}}))),_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x54d')],{'span':0x6},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7b1')],{'title':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x3d9')),'style':{'width':_0x2e10ee('0xaa6')}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x4f4522['default'],{'color':'volcano','apiClient':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')][_0x2e10ee('0x719')],'url':_0x2e10ee('0x4f0')[_0x2e10ee('0x4c2')](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['id'],_0x2e10ee('0x9e4')),'extractTag':function(_0x745380){var _0x4d0187=_0x2e10ee;return _0x745380[_0x4d0187('0x47b')]['display'];}}))),_0x286839[_0x2e10ee('0x8fd')]['createElement'](_0x409d30[_0x2e10ee('0x54d')],{'span':0x6},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x409d30[_0x2e10ee('0x7b1')],{'title':this[_0x2e10ee('0x22d')][_0x2e10ee('0xdad')]['gt'](_0x2e10ee('0x337')),'style':{'width':'100%'}},_0x286839[_0x2e10ee('0x8fd')][_0x2e10ee('0x6b7')](_0x4f4522['default'],{'color':_0x2e10ee('0x17e'),'apiClient':this['props'][_0x2e10ee('0xdad')][_0x2e10ee('0x719')],'url':_0x2e10ee('0x4f0')['concat'](this[_0x2e10ee('0x22d')][_0x2e10ee('0xe8')]['id'],'/languages'),'extractTag':function(_0x18e4cf){var _0x477b33=_0x2e10ee;return _0x18e4cf[_0x477b33('0x4d1')][_0x477b33('0x764')];}}))))))));}}])&&_0x50cfc5(_0x215c53['prototype'],_0x43d530),_0x5c4785&&_0x50cfc5(_0x215c53,_0x5c4785),_0x2de9ce;}(_0x286839['default'][_0x45f298('0x2c')]);_0x343153['default']=_0x218438;},{'../../../../components/TagList':0x3f,'../../../../components/UpdatePasswordModal':0x40,'@ant-design/icons':_0x38d28e('0x738'),'antd':_0x38d28e('0x836'),'react':_0x38d28e('0x2cd')}],0x4c:[function(_0x257570,_0x20f8ea,_0xb067c5){var _0xb4b1c3=_0x38d28e;'use strict';var _0x522f97=_0x257570(_0xb4b1c3('0x822'));window[_0xb4b1c3('0xafa')]=_0x522f97[_0xb4b1c3('0xafa')],window[_0xb4b1c3('0x898')]=_0x522f97[_0xb4b1c3('0x898')],window['ApiAccessAdapter']=_0x522f97[_0xb4b1c3('0xae8')];},{'./lib':0x4d}],0x4d:[function(_0x33e4d6,_0x405123,_0x2656d2){var _0x300980=_0x38d28e;'use strict';var _0x24fe6b=_0x1d0ad1(_0x33e4d6(_0x300980('0x2cd'))),_0x565fb4=_0x1d0ad1(_0x33e4d6(_0x300980('0xa'))),_0x12c9b0=_0x1d0ad1(_0x33e4d6(_0x300980('0x534'))),_0x448294=_0x1d0ad1(_0x33e4d6(_0x300980('0x9d6'))),_0x5e157e=_0x1d0ad1(_0x33e4d6(_0x300980('0x5ac'))),_0x4a8259=_0x1d0ad1(_0x33e4d6(_0x300980('0x561')));function _0x1d0ad1(_0x352bd4){var _0x3ccac5=_0x300980;return _0x352bd4&&_0x352bd4[_0x3ccac5('0x8bc')]?_0x352bd4:{'default':_0x352bd4};}function _0x57299f(_0x197174){var _0x176a4f=_0x300980;return(_0x57299f=_0x176a4f('0xa25')==typeof Symbol&&_0x176a4f('0xb5')==typeof Symbol[_0x176a4f('0x4ae')]?function(_0x218605){return typeof _0x218605;}:function(_0x8b0048){var _0x18df50=_0x176a4f;return _0x8b0048&&'function'==typeof Symbol&&_0x8b0048[_0x18df50('0x63e')]===Symbol&&_0x8b0048!==Symbol[_0x18df50('0x539')]?_0x18df50('0xb5'):typeof _0x8b0048;})(_0x197174);}function _0x2454b0(_0x3cd94d,_0x934b30){return function(_0x59e85a){if(Array['isArray'](_0x59e85a))return _0x59e85a;}(_0x3cd94d)||function(_0x19d63c,_0x370578){var _0x3c867b=_0x1c0e;if(_0x3c867b('0xbfa')==typeof Symbol||!(Symbol[_0x3c867b('0x4ae')]in Object(_0x19d63c)))return;var _0x5e8dea=[],_0x3360ca=!0x0,_0x3cb2d3=!0x1,_0x29eb05=void 0x0;try{for(var _0x5d671a,_0x3a1e38=_0x19d63c[Symbol['iterator']]();!(_0x3360ca=(_0x5d671a=_0x3a1e38[_0x3c867b('0x998')]())[_0x3c867b('0xa9a')])&&(_0x5e8dea[_0x3c867b('0xb2')](_0x5d671a[_0x3c867b('0x920')]),!_0x370578||_0x5e8dea['length']!==_0x370578);_0x3360ca=!0x0);}catch(_0x12df70){_0x3cb2d3=!0x0,_0x29eb05=_0x12df70;}finally{try{_0x3360ca||null==_0x3a1e38['return']||_0x3a1e38[_0x3c867b('0xd9e')]();}finally{if(_0x3cb2d3)throw _0x29eb05;}}return _0x5e8dea;}(_0x3cd94d,_0x934b30)||function(_0x23b3d8,_0x2ecf17){var _0x3c5a9e=_0x1c0e;if(!_0x23b3d8)return;if(_0x3c5a9e('0x3fd')==typeof _0x23b3d8)return _0x4b0cfc(_0x23b3d8,_0x2ecf17);var _0x16dcf5=Object[_0x3c5a9e('0x539')]['toString']['call'](_0x23b3d8)[_0x3c5a9e('0x5fe')](0x8,-0x1);_0x3c5a9e('0xc5')===_0x16dcf5&&_0x23b3d8[_0x3c5a9e('0x63e')]&&(_0x16dcf5=_0x23b3d8[_0x3c5a9e('0x63e')][_0x3c5a9e('0xce')]);if(_0x3c5a9e('0x486')===_0x16dcf5||_0x3c5a9e('0xce3')===_0x16dcf5)return Array[_0x3c5a9e('0x40e')](_0x16dcf5);if(_0x3c5a9e('0x666')===_0x16dcf5||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/[_0x3c5a9e('0x96c')](_0x16dcf5))return _0x4b0cfc(_0x23b3d8,_0x2ecf17);}(_0x3cd94d,_0x934b30)||function(){var _0x221c92=_0x1c0e;throw new TypeError(_0x221c92('0x623'));}();}function _0x4b0cfc(_0x1f95aa,_0x54590b){var _0x4d8ff3=_0x300980;(null==_0x54590b||_0x54590b>_0x1f95aa[_0x4d8ff3('0x796')])&&(_0x54590b=_0x1f95aa[_0x4d8ff3('0x796')]);for(var _0x5c507c=0x0,_0x2a3722=new Array(_0x54590b);_0x5c507c<_0x54590b;_0x5c507c++)_0x2a3722[_0x5c507c]=_0x1f95aa[_0x5c507c];return _0x2a3722;}function _0x1befe3(_0x3a97f5,_0x19aa78){if(!(_0x3a97f5 instanceof _0x19aa78))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x2390d6(_0x19c2bb,_0x456637){var _0x1073c7=_0x300980;for(var _0xc63c3f=0x0;_0xc63c3f<_0x456637[_0x1073c7('0x796')];_0xc63c3f++){var _0x1979dc=_0x456637[_0xc63c3f];_0x1979dc[_0x1073c7('0xdc2')]=_0x1979dc[_0x1073c7('0xdc2')]||!0x1,_0x1979dc[_0x1073c7('0x48d')]=!0x0,_0x1073c7('0x920')in _0x1979dc&&(_0x1979dc[_0x1073c7('0x903')]=!0x0),Object['defineProperty'](_0x19c2bb,_0x1979dc[_0x1073c7('0x3ba')],_0x1979dc);}}function _0x13593b(_0xd38190,_0x3f52fd,_0x195bca){return _0x3f52fd&&_0x2390d6(_0xd38190['prototype'],_0x3f52fd),_0x195bca&&_0x2390d6(_0xd38190,_0x195bca),_0xd38190;}function _0x3fad71(_0x529e66){return function(){var _0x5c46a8=_0x1c0e,_0x1b9433,_0x1c32bc=_0x3d35f2(_0x529e66);if(_0x3f17e8()){var _0x448cdb=_0x3d35f2(this)['constructor'];_0x1b9433=Reflect['construct'](_0x1c32bc,arguments,_0x448cdb);}else _0x1b9433=_0x1c32bc[_0x5c46a8('0x365')](this,arguments);return _0x2f15e9(this,_0x1b9433);};}function _0x2f15e9(_0x35d940,_0xc639ea){var _0x4203cb=_0x300980;return!_0xc639ea||_0x4203cb('0xbfd')!==_0x57299f(_0xc639ea)&&_0x4203cb('0xa25')!=typeof _0xc639ea?function(_0x19662e){if(void 0x0===_0x19662e)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x19662e;}(_0x35d940):_0xc639ea;}function _0x3f17e8(){var _0xcee30b=_0x300980;if(_0xcee30b('0xbfa')==typeof Reflect||!Reflect[_0xcee30b('0x195')])return!0x1;if(Reflect[_0xcee30b('0x195')]['sham'])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date[_0xcee30b('0x539')][_0xcee30b('0x6e9')]['call'](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x300fab){return!0x1;}}function _0x3d35f2(_0x2375f3){var _0x20cc5e=_0x300980;return(_0x3d35f2=Object['setPrototypeOf']?Object[_0x20cc5e('0x85e')]:function(_0x7cc202){var _0x5d3790=_0x20cc5e;return _0x7cc202[_0x5d3790('0xcb9')]||Object[_0x5d3790('0x85e')](_0x7cc202);})(_0x2375f3);}function _0x304d34(_0x4385f1,_0xf381a0){var _0x5e23e2=_0x300980;if(_0x5e23e2('0xa25')!=typeof _0xf381a0&&null!==_0xf381a0)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x4385f1[_0x5e23e2('0x539')]=Object[_0x5e23e2('0x3e2')](_0xf381a0&&_0xf381a0[_0x5e23e2('0x539')],{'constructor':{'value':_0x4385f1,'writable':!0x0,'configurable':!0x0}}),_0xf381a0&&_0x397f49(_0x4385f1,_0xf381a0);}function _0x397f49(_0x48a648,_0x1de02c){var _0x43bd7a=_0x300980;return(_0x397f49=Object[_0x43bd7a('0x489')]||function(_0x3d9aab,_0x4836ae){var _0x27f605=_0x43bd7a;return _0x3d9aab[_0x27f605('0xcb9')]=_0x4836ae,_0x3d9aab;})(_0x48a648,_0x1de02c);}var _0x3501ca=function(_0x187d34){var _0x378e36=_0x300980;_0x304d34(_0x4a7212,_0x187d34);var _0x465436=_0x3fad71(_0x4a7212);function _0x4a7212(_0x50042a,_0x112137,_0x1ed4b8,_0x3e049c){var _0x305604=_0x1c0e,_0x271e74;return _0x1befe3(this,_0x4a7212),(_0x271e74=_0x465436[_0x305604('0x964')](this,_0x50042a,_0x112137,_0x1ed4b8,_0x3e049c))[_0x305604('0x38a')]={},_0x271e74['hiddenFields']={},_0x271e74['tableFields']={},_0x271e74['formOnlyFields']={},_0x271e74[_0x305604('0x480')]=null,_0x271e74;}return _0x13593b(_0x4a7212,[{'key':_0x378e36('0x43b'),'value':function(_0x34a5a5){var _0x441e8e=_0x378e36;for(var _0xfd1966,_0x7cef60=0x0;_0x7cef60<_0x34a5a5[_0x441e8e('0x796')];_0x7cef60++)_0xfd1966=_0x34a5a5[_0x7cef60],this['fieldNameMap'][_0xfd1966[_0x441e8e('0xce')]]=_0xfd1966,_0x441e8e('0x89a')===_0xfd1966['display']?this['hiddenFields'][_0xfd1966[_0x441e8e('0xce')]]=_0xfd1966:_0x441e8e('0x233')===_0xfd1966[_0x441e8e('0x764')]?this[_0x441e8e('0xb58')][_0xfd1966[_0x441e8e('0xce')]]=_0xfd1966:this[_0x441e8e('0x9ce')][_0xfd1966['name']]=_0xfd1966;}},{'key':'getDataMapping','value':function(){var _0x526e4d=_0x378e36;return['id',_0x526e4d('0x16f'),'first_name',_0x526e4d('0x92a'),_0x526e4d('0x136'),_0x526e4d('0x350'),'gender','supervisor'];}},{'key':_0x378e36('0x445'),'value':function(){var _0x19f50c=_0x378e36;return[{'sTitle':'ID'},{'sTitle':_0x19f50c('0xa7f')},{'sTitle':_0x19f50c('0xaec')},{'sTitle':_0x19f50c('0x657')},{'sTitle':_0x19f50c('0xa92')},{'sTitle':'Department'},{'sTitle':_0x19f50c('0x37a')},{'sTitle':'Supervisor'}];}},{'key':_0x378e36('0x6e3'),'value':function(){var _0x39fdf5=_0x378e36;this[_0x39fdf5('0x912')]();}},{'key':_0x378e36('0x912'),'value':function(_0xaa76e){var _0x2515fe=_0x378e36,_0xb68b26=document[_0x2515fe('0x56a')](''['concat'](this[_0x2515fe('0x7dd')]));this[_0x2515fe('0x1c0')]=_0x24fe6b[_0x2515fe('0x8fd')][_0x2515fe('0x592')](),_0x565fb4[_0x2515fe('0x8fd')][_0x2515fe('0x358')](_0x24fe6b[_0x2515fe('0x8fd')]['createElement'](_0x4a8259[_0x2515fe('0x8fd')],{'ref':this[_0x2515fe('0x1c0')],'adapter':this,'element':_0xaa76e}),_0xb68b26),this[_0x2515fe('0x1c0')][_0x2515fe('0xaf8')][_0x2515fe('0x401')](!_0xaa76e);}},{'key':_0x378e36('0xda6'),'value':function(){var _0x384d37=_0x378e36,_0x1ad19b=this;this['initTable'](),this[_0x384d37('0x9b3')]['updateAllMasterData']()[_0x384d37('0x13b')](function(){var _0x506ca7=_0x384d37;_0x1ad19b[_0x506ca7('0x97b')]();}),this[_0x384d37('0x3da')](_0x384d37('0xda6'),this[_0x384d37('0x7dd')],this[_0x384d37('0xa5d')]);}},{'key':_0x378e36('0xaf0'),'value':function(_0x427200){var _0x3ecff5=_0x378e36;this[_0x3ecff5('0x36a')](!0x0),this[_0x3ecff5('0x3a')]=_0x427200,this[_0x3ecff5('0xd2e')](_0x427200,[]);}},{'key':_0x378e36('0x4e3'),'value':function(){return{'width':0x400,'twoColumnLayout':!0x1};}},{'key':_0x378e36('0x73d'),'value':function(){var _0x3a25ba=_0x378e36,_0x238bd0,_0x4a0d1d,_0x45e06b,_0x44b5ee,_0x4042b6,_0x34ed49,_0x375a27,_0x40b9eb,_0x1d3fa4=[];_0x238bd0=_0x3a25ba('0x915')===this['checkPermission'](_0x3a25ba('0xcc'))?[_0x3a25ba('0x16f'),{'label':_0x3a25ba('0xa7f'),'type':'text','validation':''}]:[_0x3a25ba('0x16f'),{'label':_0x3a25ba('0xa7f'),'type':'placeholder','validation':''}],_0x4a0d1d='Yes'===this['checkPermission']('Edit\x20EPF/CPF\x20Number')?['ssn_num',{'label':_0x3a25ba('0x66'),'type':_0x3a25ba('0x941'),'validation':'none'}]:[_0x3a25ba('0x6e2'),{'label':_0x3a25ba('0x66'),'type':_0x3a25ba('0x6d0'),'validation':_0x3a25ba('0x649')}],_0x45e06b='Yes'===this[_0x3a25ba('0x2ee')](_0x3a25ba('0x954'))?[_0x3a25ba('0x351'),{'label':_0x3a25ba('0x605'),'type':_0x3a25ba('0xdc5'),'remote-source':['EmploymentStatus','id',_0x3a25ba('0xce')]}]:[_0x3a25ba('0x351'),{'label':_0x3a25ba('0x605'),'type':_0x3a25ba('0x6d0'),'remote-source':[_0x3a25ba('0x16c'),'id','name']}],_0x44b5ee='Yes'===this[_0x3a25ba('0x2ee')](_0x3a25ba('0x889'))?[_0x3a25ba('0x583'),{'label':_0x3a25ba('0x5c5'),'type':_0x3a25ba('0xdc5'),'remote-source':[_0x3a25ba('0x2e0'),'id',_0x3a25ba('0xce')]}]:[_0x3a25ba('0x583'),{'label':'Job\x20Title','type':_0x3a25ba('0x6d0'),'remote-source':[_0x3a25ba('0x2e0'),'id',_0x3a25ba('0xce')]}],_0x4042b6=_0x3a25ba('0x915')===this[_0x3a25ba('0x2ee')](_0x3a25ba('0x8fe'))?[_0x3a25ba('0x5c3'),{'label':_0x3a25ba('0xa10'),'type':_0x3a25ba('0xdc5'),'allow-null':!0x0,'remote-source':[_0x3a25ba('0xd6a'),'id',_0x3a25ba('0xce')]}]:[_0x3a25ba('0x5c3'),{'label':_0x3a25ba('0xa10'),'type':_0x3a25ba('0x6d0'),'allow-null':!0x0,'remote-source':[_0x3a25ba('0xd6a'),'id','name']}],_0x34ed49=_0x3a25ba('0x915')===this['checkPermission'](_0x3a25ba('0x75e'))?[_0x3a25ba('0x310'),{'label':_0x3a25ba('0x13c'),'type':_0x3a25ba('0x9d2'),'validation':''}]:[_0x3a25ba('0x310'),{'label':_0x3a25ba('0x13c'),'type':_0x3a25ba('0x6d0'),'validation':''}],_0x375a27=_0x3a25ba('0x915')===this[_0x3a25ba('0x2ee')](_0x3a25ba('0xb19'))?['department',{'label':_0x3a25ba('0xb9a'),'type':_0x3a25ba('0xdc5'),'remote-source':[_0x3a25ba('0x52c'),'id',_0x3a25ba('0xd93')]}]:['department',{'label':_0x3a25ba('0xb9a'),'type':_0x3a25ba('0x6d0'),'remote-source':[_0x3a25ba('0x52c'),'id',_0x3a25ba('0xd93')]}],_0x40b9eb=_0x3a25ba('0x915')===this[_0x3a25ba('0x2ee')](_0x3a25ba('0xa65'))?[_0x3a25ba('0xa2c'),{'label':_0x3a25ba('0xb3e'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0xd20')}]:[_0x3a25ba('0xa2c'),{'label':_0x3a25ba('0xb3e'),'type':_0x3a25ba('0x6d0'),'validation':_0x3a25ba('0xa15')}];for(var _0x3cbeb2=[['id',{'label':'ID','type':_0x3a25ba('0xa05'),'validation':''}],_0x238bd0,[_0x3a25ba('0x7e1'),{'label':_0x3a25ba('0xaec'),'type':_0x3a25ba('0x941'),'validation':''}],[_0x3a25ba('0x51a'),{'label':_0x3a25ba('0x8f'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],[_0x3a25ba('0x92a'),{'label':'Last\x20Name','type':'text','validation':''}],[_0x3a25ba('0x3ca'),{'label':'Nationality','type':'select2','remote-source':['Nationality','id',_0x3a25ba('0xce')]}],[_0x3a25ba('0x60b'),{'label':_0x3a25ba('0x63'),'type':_0x3a25ba('0x9d2'),'validation':''}],[_0x3a25ba('0x2a5'),{'label':_0x3a25ba('0x37a'),'type':_0x3a25ba('0x510'),'source':[[_0x3a25ba('0x99d'),'Male'],[_0x3a25ba('0x214'),'Female'],[_0x3a25ba('0xc3b'),_0x3a25ba('0xc3b')]]}],[_0x3a25ba('0x386'),{'label':_0x3a25ba('0x9d7'),'type':_0x3a25ba('0x510'),'source':[[_0x3a25ba('0x83f'),_0x3a25ba('0x83f')],['Single',_0x3a25ba('0xb1d')],[_0x3a25ba('0x452'),_0x3a25ba('0x452')],[_0x3a25ba('0xf4'),_0x3a25ba('0xf4')],[_0x3a25ba('0xc3b'),_0x3a25ba('0xc3b')]]}],_0x4a0d1d,[_0x3a25ba('0x635'),{'label':'NIC','type':_0x3a25ba('0x941'),'validation':'none'}],[_0x3a25ba('0x204'),{'label':'Other\x20ID','type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],[_0x3a25ba('0xd77'),{'label':_0x3a25ba('0x6f'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],_0x45e06b,_0x44b5ee,_0x4042b6,[_0x3a25ba('0x9fb'),{'label':_0x3a25ba('0xdd9'),'type':_0x3a25ba('0x941'),'validation':'none'}],[_0x3a25ba('0x6a2'),{'label':_0x3a25ba('0xa64'),'type':'text','validation':'none'}],[_0x3a25ba('0xb74'),{'label':_0x3a25ba('0x596'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],[_0x3a25ba('0x229'),{'label':_0x3a25ba('0xad0'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],_0x3a25ba('0x915')===this[_0x3a25ba('0x2ee')](_0x3a25ba('0x50'))?['country',{'label':_0x3a25ba('0x4a'),'type':_0x3a25ba('0xdc5'),'remote-source':[_0x3a25ba('0x4a'),'code',_0x3a25ba('0xce')]}]:['country',{'label':_0x3a25ba('0x4a'),'type':_0x3a25ba('0x6d0'),'remote-source':[_0x3a25ba('0x4a'),'code',_0x3a25ba('0xce')]}],['province',{'label':_0x3a25ba('0xa34'),'type':_0x3a25ba('0xdc5'),'allow-null':!0x0,'remote-source':['Province','id',_0x3a25ba('0xce')]}],[_0x3a25ba('0x8c1'),{'label':'Postal/Zip\x20Code','type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],[_0x3a25ba('0xbb9'),{'label':_0x3a25ba('0x7a4'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],['mobile_phone',{'label':_0x3a25ba('0x97e'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0x649')}],[_0x3a25ba('0xc0a'),{'label':_0x3a25ba('0x843'),'type':'text','validation':_0x3a25ba('0x649')}],_0x40b9eb,['private_email',{'label':_0x3a25ba('0xb71'),'type':_0x3a25ba('0x941'),'validation':_0x3a25ba('0xa15')}],_0x34ed49,_0x375a27],_0x1a8213=0x0;_0x1a82130x0&&_0x3b155b[_0x51a10b('0xb2')]({'title':this['gt'](_0x51a10b('0xc3b')),'description':this['gt'](_0x51a10b('0x626')),'fields':this[_0x51a10b('0x519')][_0x51a10b('0xc78')](function(_0x1e5717){return _0x1e5717[0x0];})}),this[_0x51a10b('0x7ac')](_0x3b155b,_0x2cabc0);}},{'key':'addActualFields','value':function(_0x32f71d,_0x2eae75){var _0x54f9e2=_0x378e36;return _0x32f71d[_0x54f9e2('0xc78')](function(_0x41fa12){var _0x1fc979=_0x54f9e2;return _0x41fa12[_0x1fc979('0x361')]=_0x41fa12['fields'][_0x1fc979('0x145')](function(_0x5ef108,_0x382baa){var _0x3b6f03=_0x1fc979,_0x3148cd=_0x2eae75['find'](function(_0x29ed3f){return _0x2454b0(_0x29ed3f,0x1)[0x0]===_0x382baa;});return _0x3148cd&&_0x5ef108[_0x3b6f03('0xb2')](_0x3148cd),_0x5ef108;},[]),_0x41fa12;});}},{'key':_0x378e36('0x766'),'value':function(){var _0x5e8a10=_0x378e36,_0x23f824=this[_0x5e8a10('0x2aa')];return _0x23f824[_0x5e8a10('0x589')]=[_0x5e8a10('0x66c'),'id',_0x5e8a10('0xa9e')],_0x23f824;}},{'key':_0x378e36('0x97b'),'value':function(_0x191067){var _0x1a3ef4=_0x378e36,_0x43222d={'map':JSON[_0x1a3ef4('0xaae')](this[_0x1a3ef4('0x766')]())},_0x14f7c0=JSON[_0x1a3ef4('0xaae')](_0x43222d),_0x2e958b=[];_0x2e958b[_0x1a3ef4('0x61a')]=[],_0x2e958b[_0x1a3ef4('0x4a2')]='modEmployeeGetSuccessCallBack',_0x2e958b[_0x1a3ef4('0xd61')]=_0x1a3ef4('0x3d'),this[_0x1a3ef4('0xca3')]('get','modules=employees',_0x14f7c0,_0x2e958b);}},{'key':_0x378e36('0x613'),'value':function(_0x1b1993){var _0x41a8c4=_0x378e36,_0x147362={'id':_0x1b1993},_0x45de62=JSON['stringify'](_0x147362),_0x5c9a5c=[];_0x5c9a5c[_0x41a8c4('0x61a')]=[],_0x5c9a5c[_0x41a8c4('0x4a2')]=_0x41a8c4('0x9b4'),_0x5c9a5c[_0x41a8c4('0xd61')]=_0x41a8c4('0x9b4'),this['customAction'](_0x41a8c4('0x613'),_0x41a8c4('0x700'),_0x45de62,_0x5c9a5c);}},{'key':'modEmployeeDeleteProfileImageCallBack','value':function(_0xc6f071){var _0x50b116=_0x378e36;top[_0x50b116('0x1e8')][_0x50b116('0x7ca')]=top[_0x50b116('0x1e8')][_0x50b116('0x7ca')];}},{'key':'modEmployeeGetSuccessCallBack','value':function(_0x1e4360){var _0x4f4404=_0x378e36;_0x1e4360[0x1],_0x1e4360[0x2];var _0x240c78=_0x2454b0(_0x1e4360,0x1)[0x0];this[_0x4f4404('0x912')](_0x240c78);}},{'key':'modEmployeeGetSuccessCallBack1','value':function(_0x1c6eff){var _0x4f660d=_0x378e36,_0x14d82e=this['getFormFields'](),_0x2ba525=_0x1c6eff[0x1],_0x5926db=_0x1c6eff[0x2];_0x1c6eff=_0x2454b0(_0x1c6eff,0x1)[0x0];for(var _0x576332=this[_0x4f660d('0x910')](_0x4f660d('0x8db')),_0x4af89d=0x0;_0x4af89d<_0x14d82e['length'];_0x4af89d++)if(void 0x0!==this[_0x4f660d('0x38a')][_0x14d82e[_0x4af89d][0x0]]&&null!==this[_0x4f660d('0x38a')][_0x14d82e[_0x4af89d][0x0]]){var _0x5a5c49=this[_0x4f660d('0x38a')][_0x14d82e[_0x4af89d][0x0]][_0x4f660d('0xc41')];_0x576332=_0x576332[_0x4f660d('0x8f9')](_0x4f660d('0x808')[_0x4f660d('0x4c2')](_0x14d82e[_0x4af89d][0x0],'_#'),this['gt'](_0x5a5c49));}_0x576332=(_0x576332=_0x576332['replace'](/#_.+_#/gi,''))[_0x4f660d('0x8f9')](/_id_/g,_0x1c6eff['id']),$('#'[_0x4f660d('0x4c2')](this[_0x4f660d('0x316')]()))['html'](_0x576332);for(var _0x18195a=0x0;_0x18195a<_0x14d82e['length'];_0x18195a++)$('#'[_0x4f660d('0x4c2')](this[_0x4f660d('0x316')](),'\x20#')[_0x4f660d('0x4c2')](_0x14d82e[_0x18195a][0x0]))[_0x4f660d('0xd34')](_0x1c6eff[_0x14d82e[_0x18195a][0x0]]),$('#'['concat'](this[_0x4f660d('0x316')](),'\x20#')[_0x4f660d('0x4c2')](_0x14d82e[_0x18195a][0x0],_0x4f660d('0x6b0')))[_0x4f660d('0xd34')](_0x1c6eff[''[_0x4f660d('0x4c2')](_0x14d82e[_0x18195a][0x0],_0x4f660d('0x6b0'))]);$('#'[_0x4f660d('0x4c2')](this[_0x4f660d('0x316')](),_0x4f660d('0xbd7')))[_0x4f660d('0xd34')](_0x1c6eff['supervisor_Name']);for(var _0x280789='',_0x48bd82=0x0;_0x48bd82<_0x1c6eff[_0x4f660d('0x302')][_0x4f660d('0x796')];_0x48bd82++)void 0x0!==_0x1c6eff[_0x4f660d('0x302')][_0x48bd82]['first_name']&&null!==_0x1c6eff[_0x4f660d('0x302')][_0x48bd82]['first_name']&&(_0x280789+=''[_0x4f660d('0x4c2')](_0x1c6eff[_0x4f660d('0x302')][_0x48bd82]['first_name'],'\x20')),void 0x0!==_0x1c6eff[_0x4f660d('0x302')][_0x48bd82][_0x4f660d('0x51a')]&&null!==_0x1c6eff[_0x4f660d('0x302')][_0x48bd82][_0x4f660d('0x51a')]&&''!==_0x1c6eff[_0x4f660d('0x302')][_0x48bd82]['middle_name']&&(_0x280789+=''[_0x4f660d('0x4c2')](_0x1c6eff[_0x4f660d('0x302')][_0x48bd82][_0x4f660d('0x51a')],'\x20')),void 0x0!==_0x1c6eff['subordinates'][_0x48bd82]['last_name']&&null!==_0x1c6eff[_0x4f660d('0x302')][_0x48bd82][_0x4f660d('0x92a')]&&''!==_0x1c6eff[_0x4f660d('0x302')][_0x48bd82][_0x4f660d('0x92a')]&&(_0x280789+=_0x1c6eff[_0x4f660d('0x302')][_0x48bd82][_0x4f660d('0x92a')]),_0x280789+=_0x4f660d('0xb6b');if(void 0x0!==_0x1c6eff[_0x4f660d('0x519')]&&null!==_0x1c6eff[_0x4f660d('0x519')]&&Object[_0x4f660d('0xabc')](_0x1c6eff['customFields'])[_0x4f660d('0x796')]>0x0){var _0x3c1d1e;for(var _0x3ad81e in _0x1c6eff['customFields']){_0x1c6eff[_0x4f660d('0x519')][_0x3ad81e][0x1]||(_0x1c6eff[_0x4f660d('0x519')][_0x3ad81e][0x1]=this['gt'](_0x4f660d('0x65c')));var _0x1bfcc8=_0x1c6eff[_0x4f660d('0x519')][_0x3ad81e][0x1][_0x4f660d('0x7c7')]();if(_0x1bfcc8=_0x1bfcc8[_0x4f660d('0x8f9')]('\x20','_'),$(_0x4f660d('0xd39')[_0x4f660d('0x4c2')](_0x1bfcc8))[_0x4f660d('0x796')]<=0x0){var _0x1011fa=_0x4f660d('0xc4a');_0x1011fa=(_0x1011fa=_0x1011fa[_0x4f660d('0x8f9')](_0x4f660d('0xa3a'),_0x1bfcc8))[_0x4f660d('0x8f9')]('#_section.name_#',_0x1c6eff[_0x4f660d('0x519')][_0x3ad81e][0x1]),$(_0x4f660d('0x5db'))[_0x4f660d('0x4ff')]($(_0x1011fa));}_0x3c1d1e=(_0x3c1d1e=_0x4f660d('0xb2a'))[_0x4f660d('0x8f9')](_0x4f660d('0x355'),_0x3ad81e),_0x3c1d1e='fileupload'===_0x1c6eff[_0x4f660d('0x519')][_0x3ad81e][0x2]?_0x3c1d1e[_0x4f660d('0x8f9')]('#_value_#',_0x4f660d('0xd80')[_0x4f660d('0x4c2')](_0x1c6eff['customFields'][_0x3ad81e][0x0],_0x4f660d('0x7bf'))[_0x4f660d('0x4c2')](_0x3ad81e,_0x4f660d('0x90b'))):_0x3c1d1e['replace']('#_value_#',_0x1c6eff[_0x4f660d('0x519')][_0x3ad81e][0x0]),$(_0x4f660d('0xd39')[_0x4f660d('0x4c2')](_0x1bfcc8))[_0x4f660d('0x4ff')]($(_0x3c1d1e));}}else $(_0x4f660d('0x5db'))[_0x4f660d('0x52')]();$('#'[_0x4f660d('0x4c2')](this[_0x4f660d('0x316')](),_0x4f660d('0xdbd')))[_0x4f660d('0xd34')](_0x280789),$('#'[_0x4f660d('0x4c2')](this['getTableName'](),_0x4f660d('0x484')))[_0x4f660d('0xd34')](''[_0x4f660d('0x4c2')](_0x1c6eff[_0x4f660d('0x7e1')],'\x20')[_0x4f660d('0x4c2')](_0x1c6eff[_0x4f660d('0x92a')])),this['currentUserId']=_0x1c6eff['id'],$('#'[_0x4f660d('0x4c2')](this['getTableName'](),_0x4f660d('0x20e'))[_0x4f660d('0x4c2')](_0x1c6eff['id']))[_0x4f660d('0x7c9')]('src',_0x1c6eff[_0x4f660d('0xcf0')]),'No'===this[_0x4f660d('0x2ee')](_0x4f660d('0x70'))&&($(_0x4f660d('0x1ec'))['remove'](),$(_0x4f660d('0x91e'))[_0x4f660d('0x52')]()),'No'===this['checkPermission']('Edit\x20Employee\x20Details')&&$('#employeeProfileEditInfo')[_0x4f660d('0x52')](),_0x2ba525!==_0x5926db&&$(_0x4f660d('0xa5'))[_0x4f660d('0x52')](),this['cancel']();}},{'key':_0x378e36('0x3d'),'value':function(_0x5dc9bc){}},{'key':_0x378e36('0xa45'),'value':function(){var _0x2fe935=_0x378e36;this[_0x2fe935('0xaf0')](this['currentUserId']);}},{'key':_0x378e36('0x83e'),'value':function(){var _0x558732=_0x378e36;$(_0x558732('0xa5a'))[_0x558732('0x7ae')](_0x558732('0x462')),$(_0x558732('0x4a1'))[_0x558732('0x6ae')](''),$(_0x558732('0x383'))[_0x558732('0x6ae')](''),$('#adminUsersChangePwd_error')[_0x558732('0xafe')]();}},{'key':_0x378e36('0x560'),'value':function(){var _0x5bcf9f=_0x378e36;$('#adminUsersChangePwd_error')['hide']();var _0xc94fd5=$(_0x5bcf9f('0x4a1'))[_0x5bcf9f('0x6ae')](),_0x4f04e3=$(_0x5bcf9f('0x383'))[_0x5bcf9f('0x6ae')]();if(_0x4f04e3!==_0xc94fd5)return $(_0x5bcf9f('0x5f6'))[_0x5bcf9f('0xd34')]('Passwords\x20don\x27t\x20match'),void $(_0x5bcf9f('0x5f6'))[_0x5bcf9f('0x462')]();var _0x419079=this[_0x5bcf9f('0xcc3')](_0xc94fd5);if(null!=_0x419079)return $(_0x5bcf9f('0x5f6'))[_0x5bcf9f('0xd34')](_0x419079),void $(_0x5bcf9f('0x5f6'))[_0x5bcf9f('0x462')]();var _0x155348={'pwd':_0x4f04e3},_0x55e6c5=JSON[_0x5bcf9f('0xaae')](_0x155348),_0x543e93=[];_0x543e93[_0x5bcf9f('0x61a')]=[],_0x543e93[_0x5bcf9f('0x4a2')]='changePasswordSuccessCallBack',_0x543e93[_0x5bcf9f('0xd61')]=_0x5bcf9f('0x24f'),this['customAction']('changePassword',_0x5bcf9f('0x700'),_0x55e6c5,_0x543e93);}},{'key':'closeChangePassword','value':function(){var _0x336e58=_0x378e36;$(_0x336e58('0xa5a'))[_0x336e58('0x7ae')](_0x336e58('0xafe'));}},{'key':_0x378e36('0xa7e'),'value':function(_0x495b95,_0x404a99){var _0x9ec530=_0x378e36;this[_0x9ec530('0x29f')](),this['showMessage'](_0x9ec530('0x213'),_0x9ec530('0xc95'));}},{'key':_0x378e36('0x24f'),'value':function(_0x54019d,_0x27efd5){var _0x431517=_0x378e36;this[_0x431517('0x29f')](),this['showMessage']('Error',_0x54019d);}}]),_0x4a7212;}(_0x5e157e[_0x300980('0x8fd')]),_0x1c8645=function(_0x49288f){var _0x4fddf0=_0x300980;_0x304d34(_0x2e4831,_0x49288f);var _0x547bb7=_0x3fad71(_0x2e4831);function _0x2e4831(_0x8d79eb,_0x146c8c,_0x51d7d1,_0x4bbfa7){var _0x17fedd=_0x1c0e,_0x4ad47a;return _0x1befe3(this,_0x2e4831),(_0x4ad47a=_0x547bb7[_0x17fedd('0x964')](this,_0x8d79eb,_0x146c8c,_0x51d7d1,_0x4bbfa7))['nodeIdCounter']=0x0,_0x4ad47a;}return _0x13593b(_0x2e4831,[{'key':_0x4fddf0('0xf6'),'value':function(_0x2b934f){var _0x19148d=_0x4fddf0;for(var _0x1d3660={'id':-0x1,'title':'','name':'','children':[]},_0x50112c=null,_0x11dfc1=0x0;_0x11dfc1<_0x2b934f[_0x19148d('0x796')];_0x11dfc1++)_0x2b934f[_0x11dfc1][_0x19148d('0xce')]=_0x2b934f[_0x11dfc1][_0x19148d('0xd93')],null!==_0x2b934f[_0x11dfc1][_0x19148d('0x7be')]&&void 0x0!==_0x2b934f[_0x11dfc1][_0x19148d('0x7be')]&&null!==(_0x50112c=this[_0x19148d('0x586')](_0x2b934f,_0x2b934f[_0x11dfc1][_0x19148d('0x7be')]))&&(void 0x0!==_0x50112c['children']&&null!==_0x50112c[_0x19148d('0x665')]||(_0x50112c[_0x19148d('0x665')]=[]),_0x50112c[_0x19148d('0x665')][_0x19148d('0xb2')](_0x2b934f[_0x11dfc1]));for(var _0x485810=0x0;_0x485810<_0x2b934f[_0x19148d('0x796')];_0x485810++)null!==_0x2b934f[_0x485810][_0x19148d('0x7be')]&&void 0x0!==_0x2b934f[_0x485810][_0x19148d('0x7be')]||_0x1d3660[_0x19148d('0x665')][_0x19148d('0xb2')](_0x2b934f[_0x485810]);return _0x1d3660;}},{'key':_0x4fddf0('0x586'),'value':function(_0xf9d000,_0x5e75ca){var _0x43e8f8=_0x4fddf0;for(var _0x59ffcc=0x0;_0x59ffcc<_0xf9d000['length'];_0x59ffcc++)if(_0xf9d000[_0x59ffcc][_0x43e8f8('0xd93')]===_0x5e75ca||_0xf9d000[_0x59ffcc]['title']===_0x5e75ca)return _0xf9d000[_0x59ffcc];return null;}},{'key':'createTable','value':function(_0x129aaf){var _0x19b858=_0x4fddf0;$('#tabPageCompanyGraph')[_0x19b858('0xd34')]('');var _0x31ee5e=this[_0x19b858('0x980')],_0x32b248=this[_0x19b858('0xf6')](_0x31ee5e),_0x1ec340=[0x14,0x78,0x14,0x78],_0x2019d5=0x1388-_0x1ec340[0x1]-_0x1ec340[0x3],_0x20098e=0x3e8-_0x1ec340[0x0]-_0x1ec340[0x2],_0x2573e0=d3[_0x19b858('0x63a')]['tree']()['size']([_0x20098e,_0x2019d5]);this[_0x19b858('0x21b')]=d3[_0x19b858('0x1a0')][_0x19b858('0x21b')]()[_0x19b858('0x3ee')](function(_0x1d2f23){return[_0x1d2f23['y'],_0x1d2f23['x']];}),this[_0x19b858('0xd0d')]=d3[_0x19b858('0x510')](_0x19b858('0x1cf'))[_0x19b858('0x4ff')]('svg:svg')[_0x19b858('0x7c9')]('width',_0x2019d5+_0x1ec340[0x1]+_0x1ec340[0x3])[_0x19b858('0x7c9')](_0x19b858('0x3e'),_0x20098e+_0x1ec340[0x0]+_0x1ec340[0x2])[_0x19b858('0x4ff')]('svg:g')[_0x19b858('0x7c9')](_0x19b858('0xcb3'),'translate('[_0x19b858('0x4c2')](_0x1ec340[0x3],',')[_0x19b858('0x4c2')](_0x1ec340[0x0],')'));var _0x1ca66f=_0x32b248;_0x1ca66f['x0']=_0x20098e/0x2,_0x1ca66f['y0']=0x0,this[_0x19b858('0x43d')](_0x1ca66f,_0x2573e0,_0x1ca66f);}},{'key':'update','value':function(_0x91a52b,_0x4fe134,_0x2b9e12){var _0x362bc2=_0x4fddf0,_0x489087=this,_0xc02e86=d3[_0x362bc2('0x420')]&&d3[_0x362bc2('0x420')][_0x362bc2('0xd5')]?0x1388:0x1f4,_0x5d5070=_0x4fe134[_0x362bc2('0x504')](_0x2b9e12)[_0x362bc2('0x653')]();_0x5d5070[_0x362bc2('0xc21')](function(_0x47964c){var _0x3682f1=_0x362bc2;_0x47964c['y']=0xb4*_0x47964c[_0x3682f1('0x602')];});var _0x54459e=_0x489087['vis'][_0x362bc2('0xaa8')]('g.node')['data'](_0x5d5070,function(_0x236934){var _0x56c128=_0x362bc2;return _0x236934['id']||(_0x236934['id']=++_0x489087[_0x56c128('0xb01')]);}),_0x37830d=_0x54459e[_0x362bc2('0x304')]()[_0x362bc2('0x4ff')](_0x362bc2('0x655'))[_0x362bc2('0x7c9')](_0x362bc2('0x88e'),_0x362bc2('0xd2d'))[_0x362bc2('0x7c9')]('transform',function(_0xd90fcd){var _0x3db0d2=_0x362bc2;return _0x3db0d2('0x67f')[_0x3db0d2('0x4c2')](_0x91a52b['y0'],',')[_0x3db0d2('0x4c2')](_0x91a52b['x0'],')');})['on']('click',function(_0x536e05){var _0x11cb39=_0x362bc2;_0x489087['toggle'](_0x536e05),_0x489087[_0x11cb39('0x43d')](_0x536e05,_0x4fe134,_0x2b9e12);});_0x37830d[_0x362bc2('0x4ff')]('svg:circle')[_0x362bc2('0x7c9')]('r',0.000001)[_0x362bc2('0xc76')](_0x362bc2('0x9b9'),function(_0x328fe3){var _0x3e0519=_0x362bc2;return _0x328fe3[_0x3e0519('0x1fb')]?_0x3e0519('0x814'):_0x3e0519('0x789');}),_0x37830d[_0x362bc2('0x4ff')](_0x362bc2('0x309'))['attr']('x',function(_0x40bcf1){var _0x3847b7=_0x362bc2;return _0x40bcf1['children']||_0x40bcf1[_0x3847b7('0x1fb')]?-0xa:0xa;})[_0x362bc2('0x7c9')]('dy',_0x362bc2('0xafb'))[_0x362bc2('0x7c9')](_0x362bc2('0x7a'),function(_0x492ea9){var _0x3ba177=_0x362bc2;return _0x492ea9[_0x3ba177('0x665')]||_0x492ea9[_0x3ba177('0x1fb')]?_0x3ba177('0x9ef'):'start';})['text'](function(_0x57a004){return _0x57a004['name'];})[_0x362bc2('0xc76')](_0x362bc2('0x598'),0.000001);var _0x1ba204=_0x54459e[_0x362bc2('0xbdd')]()[_0x362bc2('0x32b')](_0xc02e86)[_0x362bc2('0x7c9')](_0x362bc2('0xcb3'),function(_0x36c614){var _0x48f9ea=_0x362bc2;return _0x48f9ea('0x67f')[_0x48f9ea('0x4c2')](_0x36c614['y'],',')[_0x48f9ea('0x4c2')](_0x36c614['x'],')');});_0x1ba204[_0x362bc2('0x510')]('circle')['attr']('r',4.5)[_0x362bc2('0xc76')](_0x362bc2('0x9b9'),function(_0x26853e){var _0x55d985=_0x362bc2;return _0x26853e[_0x55d985('0x1fb')]?'lightsteelblue':_0x55d985('0x789');}),_0x1ba204['select']('text')[_0x362bc2('0xc76')](_0x362bc2('0x598'),0x1);var _0x20e422=_0x54459e[_0x362bc2('0x43a')]()[_0x362bc2('0xbdd')]()[_0x362bc2('0x32b')](_0xc02e86)[_0x362bc2('0x7c9')]('transform',function(_0x29b645){var _0x14ec56=_0x362bc2;return _0x14ec56('0x67f')['concat'](_0x91a52b['y'],',')[_0x14ec56('0x4c2')](_0x91a52b['x'],')');})[_0x362bc2('0x52')]();_0x20e422[_0x362bc2('0x510')](_0x362bc2('0x50b'))[_0x362bc2('0x7c9')]('r',0.000001),_0x20e422['select'](_0x362bc2('0x941'))['style']('fill-opacity',0.000001);var _0x261aed=_0x489087[_0x362bc2('0xd0d')][_0x362bc2('0xaa8')](_0x362bc2('0x220'))[_0x362bc2('0x38')](_0x4fe134[_0x362bc2('0x785')](_0x5d5070),function(_0x12dff3){var _0x5797b0=_0x362bc2;return _0x12dff3[_0x5797b0('0xbf8')]['id'];});_0x261aed[_0x362bc2('0x304')]()[_0x362bc2('0x492')]('svg:path','g')[_0x362bc2('0x7c9')](_0x362bc2('0x88e'),_0x362bc2('0x888'))[_0x362bc2('0x7c9')]('d',function(_0x30917e){var _0x569b9e=_0x362bc2,_0x5180d9={'x':_0x91a52b['x0'],'y':_0x91a52b['y0']};return _0x489087[_0x569b9e('0x21b')]({'source':_0x5180d9,'target':_0x5180d9});})[_0x362bc2('0xbdd')]()[_0x362bc2('0x32b')](_0xc02e86)['attr']('d',_0x489087[_0x362bc2('0x21b')]),_0x261aed['transition']()[_0x362bc2('0x32b')](_0xc02e86)[_0x362bc2('0x7c9')]('d',_0x489087[_0x362bc2('0x21b')]),_0x261aed[_0x362bc2('0x43a')]()['transition']()['duration'](_0xc02e86)[_0x362bc2('0x7c9')]('d',function(_0x2b76b8){var _0x43177c={'x':_0x91a52b['x'],'y':_0x91a52b['y']};return _0x489087['diagonal']({'source':_0x43177c,'target':_0x43177c});})['remove'](),_0x5d5070[_0x362bc2('0xc21')](function(_0x25b961){_0x25b961['x0']=_0x25b961['x'],_0x25b961['y0']=_0x25b961['y'];});}},{'key':_0x4fddf0('0x2a6'),'value':function(_0x53de09){var _0x2e1887=_0x4fddf0;_0x53de09['children']?(_0x53de09[_0x2e1887('0x1fb')]=_0x53de09[_0x2e1887('0x665')],_0x53de09[_0x2e1887('0x665')]=null):(_0x53de09['children']=_0x53de09['_children'],_0x53de09[_0x2e1887('0x1fb')]=null);}},{'key':_0x4fddf0('0x748'),'value':function(_0x5ca55f){var _0x19ba50=_0x4fddf0;for(var _0xc49b17=0x0;_0xc49b17'):_0x462346[_0x401ea6('0x8f9')]('_delete_',''),_0x462346=(_0x462346=(_0x462346=this['showEdit']?_0x462346[_0x401ea6('0x8f9')](_0x401ea6('0x4c'),_0x401ea6('0xf')):_0x462346[_0x401ea6('0x8f9')](_0x401ea6('0x4c'),''))[_0x401ea6('0x8f9')](/_id_/g,_0x3f73af))[_0x401ea6('0x8f9')](/_BASE_/g,this[_0x401ea6('0xc7e')]);}}])&&_0x9b2c36(_0x306411[_0x59a5fb('0x539')],_0xfc639e),_0x492b9c&&_0x9b2c36(_0x306411,_0x492b9c),_0x113bc9;}(((_0x2ebf16=_0x3fbef0(_0x1dc0b6('0x9d6')))&&_0x2ebf16['__esModule']?_0x2ebf16:{'default':_0x2ebf16})[_0x1dc0b6('0x8fd')]);_0x40c5a9[_0x1dc0b6('0xd7')]={'EmployeeCompanyLoanAdapter':_0x466f3d};},{'../../../api/AdapterBase':0x27}],0x50:[function(_0x3697e1,_0x277343,_0x1adc0a){var _0x11d491=_0x38d28e;'use strict';var _0x7e399=_0x3697e1(_0x11d491('0x822'));window[_0x11d491('0x92c')]=_0x7e399[_0x11d491('0x92c')],window[_0x11d491('0xc25')]=_0x7e399[_0x11d491('0xc25')],window[_0x11d491('0xa23')]=_0x7e399['SubordinateEmployeeOvertimeAdapter'];},{'./lib':0x51}],0x51:[function(_0x159cb1,_0x17043b,_0x18c980){var _0x31fd13=_0x38d28e;'use strict';var _0x34d261,_0x57147e=(_0x34d261=_0x159cb1(_0x31fd13('0xaf6')))&&_0x34d261[_0x31fd13('0x8bc')]?_0x34d261:{'default':_0x34d261},_0x1e32bc=_0x159cb1('../../../admin/src/overtime/lib');function _0x27d58c(_0x139e1b){var _0x1de0f9=_0x31fd13;return(_0x27d58c=_0x1de0f9('0xa25')==typeof Symbol&&_0x1de0f9('0xb5')==typeof Symbol[_0x1de0f9('0x4ae')]?function(_0x49fc37){return typeof _0x49fc37;}:function(_0x3968c9){var _0x22dbe1=_0x1de0f9;return _0x3968c9&&'function'==typeof Symbol&&_0x3968c9['constructor']===Symbol&&_0x3968c9!==Symbol[_0x22dbe1('0x539')]?_0x22dbe1('0xb5'):typeof _0x3968c9;})(_0x139e1b);}function _0x1c4798(_0x31a5f2,_0x26f47c){var _0x4ada6f=_0x31fd13;if(!(_0x31a5f2 instanceof _0x26f47c))throw new TypeError(_0x4ada6f('0x9a0'));}function _0x41f4a7(_0x2d1fb4,_0x49f31c){var _0xcb3ffe=_0x31fd13;for(var _0x24eb7f=0x0;_0x24eb7f<_0x49f31c[_0xcb3ffe('0x796')];_0x24eb7f++){var _0x1f36b4=_0x49f31c[_0x24eb7f];_0x1f36b4['enumerable']=_0x1f36b4[_0xcb3ffe('0xdc2')]||!0x1,_0x1f36b4['configurable']=!0x0,'value'in _0x1f36b4&&(_0x1f36b4[_0xcb3ffe('0x903')]=!0x0),Object[_0xcb3ffe('0x751')](_0x2d1fb4,_0x1f36b4['key'],_0x1f36b4);}}function _0x4ade1d(_0x19a5e6,_0x28eb6d,_0x48188c){var _0x118642=_0x31fd13;return _0x28eb6d&&_0x41f4a7(_0x19a5e6[_0x118642('0x539')],_0x28eb6d),_0x48188c&&_0x41f4a7(_0x19a5e6,_0x48188c),_0x19a5e6;}function _0x56e301(_0x41114b){return function(){var _0x40e9be=_0x1c0e,_0x4e4363,_0x127c52=_0x3011bb(_0x41114b);if(_0x43f148()){var _0x7fe2e6=_0x3011bb(this)[_0x40e9be('0x63e')];_0x4e4363=Reflect[_0x40e9be('0x195')](_0x127c52,arguments,_0x7fe2e6);}else _0x4e4363=_0x127c52[_0x40e9be('0x365')](this,arguments);return _0x450a10(this,_0x4e4363);};}function _0x450a10(_0x7a4c93,_0x18c2dd){var _0xd668c3=_0x31fd13;return!_0x18c2dd||_0xd668c3('0xbfd')!==_0x27d58c(_0x18c2dd)&&_0xd668c3('0xa25')!=typeof _0x18c2dd?function(_0x4572c8){if(void 0x0===_0x4572c8)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x4572c8;}(_0x7a4c93):_0x18c2dd;}function _0x43f148(){var _0x3f7be9=_0x31fd13;if(_0x3f7be9('0xbfa')==typeof Reflect||!Reflect[_0x3f7be9('0x195')])return!0x1;if(Reflect[_0x3f7be9('0x195')][_0x3f7be9('0x460')])return!0x1;if(_0x3f7be9('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype']['toString'][_0x3f7be9('0x964')](Reflect[_0x3f7be9('0x195')](Date,[],function(){})),!0x0;}catch(_0x2ff3bd){return!0x1;}}function _0x3011bb(_0x566813){var _0x43e209=_0x31fd13;return(_0x3011bb=Object[_0x43e209('0x489')]?Object[_0x43e209('0x85e')]:function(_0x17cd4c){var _0x28095c=_0x43e209;return _0x17cd4c[_0x28095c('0xcb9')]||Object[_0x28095c('0x85e')](_0x17cd4c);})(_0x566813);}function _0x3e3c51(_0xd4b081,_0x3b6e94){var _0x2cbc1f=_0x31fd13;if(_0x2cbc1f('0xa25')!=typeof _0x3b6e94&&null!==_0x3b6e94)throw new TypeError(_0x2cbc1f('0xc4b'));_0xd4b081[_0x2cbc1f('0x539')]=Object[_0x2cbc1f('0x3e2')](_0x3b6e94&&_0x3b6e94[_0x2cbc1f('0x539')],{'constructor':{'value':_0xd4b081,'writable':!0x0,'configurable':!0x0}}),_0x3b6e94&&_0x1d18f3(_0xd4b081,_0x3b6e94);}function _0x1d18f3(_0xf7d670,_0x172e5b){return(_0x1d18f3=Object['setPrototypeOf']||function(_0x55cce3,_0x38b96f){var _0x354013=_0x1c0e;return _0x55cce3[_0x354013('0xcb9')]=_0x38b96f,_0x55cce3;})(_0xf7d670,_0x172e5b);}var _0x4568cc=function(_0x5463e0){var _0xaa7880=_0x31fd13;_0x3e3c51(_0x317432,_0x5463e0);var _0x2a9c5f=_0x56e301(_0x317432);function _0x317432(_0x2ddf3e,_0x20fdcb,_0x11661c,_0x11752f){var _0x29f84f=_0x1c0e,_0x1b2419;return _0x1c4798(this,_0x317432),(_0x1b2419=_0x2a9c5f['call'](this,_0x2ddf3e,_0x20fdcb,_0x11661c,_0x11752f))[_0x29f84f('0xd4f')]='Overtime',_0x1b2419[_0x29f84f('0xb76')]=_0x29f84f('0xa27'),_0x1b2419[_0x29f84f('0xa86')]=_0x29f84f('0xc6'),_0x1b2419;}return _0x4ade1d(_0x317432,[{'key':_0xaa7880('0x433'),'value':function(){var _0x114c9c=_0xaa7880;return['id','category','start_time',_0x114c9c('0x162'),_0x114c9c('0x1c4'),_0x114c9c('0x525')];}},{'key':_0xaa7880('0x445'),'value':function(){var _0x14c4fe=_0xaa7880;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x14c4fe('0xa0b')},{'sTitle':'Start\x20Time'},{'sTitle':_0x14c4fe('0x557')},{'sTitle':_0x14c4fe('0x3b3')},{'sTitle':_0x14c4fe('0x2ff')}];}},{'key':_0xaa7880('0x73d'),'value':function(){var _0x4313df=_0xaa7880;return[['id',{'label':'ID','type':_0x4313df('0xa05')}],[_0x4313df('0x2df'),{'label':_0x4313df('0xa0b'),'type':_0x4313df('0xdc5'),'allow-null':!0x1,'remote-source':[_0x4313df('0x707'),'id','name']}],[_0x4313df('0x953'),{'label':_0x4313df('0x3a0'),'type':'datetime','validation':''}],[_0x4313df('0x162'),{'label':_0x4313df('0x557'),'type':'datetime','validation':''}],[_0x4313df('0x1c4'),{'label':_0x4313df('0x3b3'),'type':_0x4313df('0xdc5'),'allow-null':!0x0,'null=label':_0x4313df('0x649'),'remote-source':['Project','id','name']}],[_0x4313df('0x13'),{'label':_0x4313df('0xdc0'),'type':_0x4313df('0xbd5'),'validation':_0x4313df('0x649')}]];}}]),_0x317432;}(_0x57147e['default']),_0x1a0e2f=function(_0x200fce){var _0x3f2093=_0x31fd13;_0x3e3c51(_0x3c28b7,_0x200fce);var _0x1d5849=_0x56e301(_0x3c28b7);function _0x3c28b7(_0xd64a11,_0x5840fc,_0x1a71b8,_0x105b54){var _0x5aa023=_0x1c0e,_0x42f110;return _0x1c4798(this,_0x3c28b7),(_0x42f110=_0x1d5849[_0x5aa023('0x964')](this,_0xd64a11,_0x5840fc,_0x1a71b8,_0x105b54))[_0x5aa023('0xd4f')]='Overtime',_0x42f110['itemNameLower']=_0x5aa023('0xa27'),_0x42f110[_0x5aa023('0xa86')]=_0x5aa023('0xc6'),_0x42f110;}return _0x4ade1d(_0x3c28b7,[{'key':'getActionButtonsHtml','value':function(_0x2a61d3,_0x45751f){var _0x32f4f4=_0x1c0e,_0x50c6da=_0x32f4f4('0xcd5');return _0x50c6da=_0x50c6da['replace']('_logs_',_0x32f4f4('0xa06')),_0x50c6da=(_0x50c6da=(_0x50c6da=(_0x50c6da=_0x32f4f4('0xd79')===_0x45751f[this[_0x32f4f4('0x529')]()]?_0x50c6da[_0x32f4f4('0x8f9')]('_status_',''):_0x50c6da['replace']('_status_',''))['replace'](/_id_/g,_0x2a61d3))[_0x32f4f4('0x8f9')](/_BASE_/g,this[_0x32f4f4('0xc7e')]))[_0x32f4f4('0x8f9')](/_cstatus_/g,_0x45751f[this[_0x32f4f4('0x529')]()]);}},{'key':_0x3f2093('0x767'),'value':function(_0x565372){var _0x5b25dd=_0x3f2093,_0x2b57d4={};return'Processing'===_0x565372&&(_0x2b57d4[_0x5b25dd('0xa14')]=_0x5b25dd('0xa14'),_0x2b57d4[_0x5b25dd('0x36c')]=_0x5b25dd('0x36c')),_0x2b57d4;}},{'key':'getStatusOptions','value':function(_0x4b064e){var _0x552292=_0x3f2093;return this[_0x552292('0xc1e')](this['getStatusOptionsData'](_0x4b064e));}}]),_0x3c28b7;}(_0x1e32bc[_0x31fd13('0x893')]),_0x64f4ee=function(_0x2c03e3){_0x3e3c51(_0x1836df,_0x2c03e3);var _0x552f6d=_0x56e301(_0x1836df);function _0x1836df(_0x341354,_0x323483,_0x26eeff,_0x5ae0c3){var _0x2827a7=_0x1c0e,_0x2f49bf;return _0x1c4798(this,_0x1836df),(_0x2f49bf=_0x552f6d[_0x2827a7('0x964')](this,_0x341354,_0x323483,_0x26eeff,_0x5ae0c3))['itemName']=_0x2827a7('0x575'),_0x2f49bf[_0x2827a7('0xb76')]=_0x2827a7('0xa27'),_0x2f49bf[_0x2827a7('0xa86')]=_0x2827a7('0xc6'),_0x2f49bf;}return _0x1836df;}(_0x1e32bc[_0x31fd13('0x893')]);_0x17043b['exports']={'EmployeeOvertimeAdapter':_0x4568cc,'EmployeeOvertimeApproverAdapter':_0x1a0e2f,'SubordinateEmployeeOvertimeAdapter':_0x64f4ee};},{'../../../admin/src/overtime/lib':0x23,'../../../api/ApproveModuleAdapter':0x29}],0x52:[function(_0x1a4453,_0x290128,_0x2ecf7a){var _0x957c9f=_0x38d28e;'use strict';var _0x10da7e=_0x1a4453(_0x957c9f('0x822'));window[_0x957c9f('0x1a6')]=_0x10da7e[_0x957c9f('0x1a6')];},{'./lib':0x53}],0x53:[function(_0x103cd6,_0x483606,_0xfe130b){var _0x3a0ae3=_0x38d28e;'use strict';var _0x2c8734;function _0x371235(_0x188315){var _0x415628=_0x1c0e;return(_0x371235=_0x415628('0xa25')==typeof Symbol&&_0x415628('0xb5')==typeof Symbol[_0x415628('0x4ae')]?function(_0xdcb607){return typeof _0xdcb607;}:function(_0xd92675){var _0x349c60=_0x415628;return _0xd92675&&_0x349c60('0xa25')==typeof Symbol&&_0xd92675[_0x349c60('0x63e')]===Symbol&&_0xd92675!==Symbol[_0x349c60('0x539')]?'symbol':typeof _0xd92675;})(_0x188315);}function _0xf2e147(_0x11a9f1,_0x213d5e){var _0x189038=_0x1c0e;if(!(_0x11a9f1 instanceof _0x213d5e))throw new TypeError(_0x189038('0x9a0'));}function _0x282e5e(_0x2b25f2,_0x2defac){var _0x12c04d=_0x1c0e;for(var _0x4e2e0d=0x0;_0x4e2e0d<_0x2defac[_0x12c04d('0x796')];_0x4e2e0d++){var _0x44e3d8=_0x2defac[_0x4e2e0d];_0x44e3d8[_0x12c04d('0xdc2')]=_0x44e3d8['enumerable']||!0x1,_0x44e3d8['configurable']=!0x0,'value'in _0x44e3d8&&(_0x44e3d8[_0x12c04d('0x903')]=!0x0),Object['defineProperty'](_0x2b25f2,_0x44e3d8[_0x12c04d('0x3ba')],_0x44e3d8);}}function _0x1b8626(_0x5b1c27,_0x4be786){var _0x40829c=_0x1c0e;return!_0x4be786||_0x40829c('0xbfd')!==_0x371235(_0x4be786)&&_0x40829c('0xa25')!=typeof _0x4be786?function(_0x410908){var _0x406cc7=_0x40829c;if(void 0x0===_0x410908)throw new ReferenceError(_0x406cc7('0xcf6'));return _0x410908;}(_0x5b1c27):_0x4be786;}function _0x3fa7a5(){var _0x118db8=_0x1c0e;if(_0x118db8('0xbfa')==typeof Reflect||!Reflect[_0x118db8('0x195')])return!0x1;if(Reflect['construct'][_0x118db8('0x460')])return!0x1;if(_0x118db8('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x118db8('0x6e9')][_0x118db8('0x964')](Reflect[_0x118db8('0x195')](Date,[],function(){})),!0x0;}catch(_0x292c4a){return!0x1;}}function _0x273758(_0x58aad0){var _0x56484f=_0x1c0e;return(_0x273758=Object[_0x56484f('0x489')]?Object['getPrototypeOf']:function(_0x46aebf){var _0x215e49=_0x56484f;return _0x46aebf['__proto__']||Object[_0x215e49('0x85e')](_0x46aebf);})(_0x58aad0);}function _0x42a6f2(_0x2e6716,_0x414fe2){return(_0x42a6f2=Object['setPrototypeOf']||function(_0x5fa1b2,_0x1dbf38){return _0x5fa1b2['__proto__']=_0x1dbf38,_0x5fa1b2;})(_0x2e6716,_0x414fe2);}var _0x445af8=function(_0x562c2b){var _0x98d141=_0x1c0e;!function(_0x49e6be,_0x4263af){var _0x5881dd=_0x1c0e;if(_0x5881dd('0xa25')!=typeof _0x4263af&&null!==_0x4263af)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function');_0x49e6be[_0x5881dd('0x539')]=Object[_0x5881dd('0x3e2')](_0x4263af&&_0x4263af[_0x5881dd('0x539')],{'constructor':{'value':_0x49e6be,'writable':!0x0,'configurable':!0x0}}),_0x4263af&&_0x42a6f2(_0x49e6be,_0x4263af);}(_0x186e72,_0x562c2b);var _0x4bc2ad,_0xfaf245,_0x2becb9,_0x43dec7,_0x4108a7=(_0x4bc2ad=_0x186e72,function(){var _0x47dea5=_0x1c0e,_0x1da212,_0x4b67fd=_0x273758(_0x4bc2ad);if(_0x3fa7a5()){var _0x322412=_0x273758(this)[_0x47dea5('0x63e')];_0x1da212=Reflect['construct'](_0x4b67fd,arguments,_0x322412);}else _0x1da212=_0x4b67fd[_0x47dea5('0x365')](this,arguments);return _0x1b8626(this,_0x1da212);});function _0x186e72(){var _0x530160=_0x1c0e;return _0xf2e147(this,_0x186e72),_0x4108a7[_0x530160('0x365')](this,arguments);}return _0xfaf245=_0x186e72,(_0x2becb9=[{'key':'getDataMapping','value':function(){var _0x20ba9c=_0x1c0e;return['id',_0x20ba9c('0x1c4')];}},{'key':_0x98d141('0x445'),'value':function(){return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Project'}];}},{'key':'getFormFields','value':function(){var _0xf2d58c=_0x98d141;return[['id',{'label':'ID','type':_0xf2d58c('0xa05')}],['project',{'label':_0xf2d58c('0x3b3'),'type':_0xf2d58c('0xdc5'),'remote-source':[_0xf2d58c('0x3b3'),'id',_0xf2d58c('0xce')]}],[_0xf2d58c('0x212'),{'label':_0xf2d58c('0xd3a'),'type':_0xf2d58c('0xbd5'),'validation':'none'}]];}}])&&_0x282e5e(_0xfaf245['prototype'],_0x2becb9),_0x43dec7&&_0x282e5e(_0xfaf245,_0x43dec7),_0x186e72;}(((_0x2c8734=_0x103cd6('../../../api/AdapterBase'))&&_0x2c8734['__esModule']?_0x2c8734:{'default':_0x2c8734})[_0x3a0ae3('0x8fd')]);_0x483606[_0x3a0ae3('0xd7')]={'EmployeeProjectAdapter':_0x445af8};},{'../../../api/AdapterBase':0x27}],0x54:[function(_0x2389a2,_0x440b24,_0x254b87){var _0x57bfb7=_0x38d28e;'use strict';var _0x5944b5=_0x2389a2(_0x57bfb7('0x822'));window[_0x57bfb7('0x2d8')]=_0x5944b5[_0x57bfb7('0x2d8')],window[_0x57bfb7('0x5a7')]=_0x5944b5[_0x57bfb7('0x5a7')],window['EmployeeCertificationAdapter']=_0x5944b5[_0x57bfb7('0x8cc')],window[_0x57bfb7('0xa1a')]=_0x5944b5[_0x57bfb7('0xa1a')];},{'./lib':0x55}],0x55:[function(_0xd22e60,_0x574d0b,_0x8ed92a){var _0x344a07=_0x38d28e;'use strict';var _0x5c671a,_0x59613a=(_0x5c671a=_0xd22e60('../../../api/AdapterBase'))&&_0x5c671a[_0x344a07('0x8bc')]?_0x5c671a:{'default':_0x5c671a};function _0x576d72(_0x3d385f){var _0x4eff74=_0x344a07;return(_0x576d72=_0x4eff74('0xa25')==typeof Symbol&&_0x4eff74('0xb5')==typeof Symbol[_0x4eff74('0x4ae')]?function(_0x10fe6a){return typeof _0x10fe6a;}:function(_0x472f8a){var _0x57218a=_0x4eff74;return _0x472f8a&&_0x57218a('0xa25')==typeof Symbol&&_0x472f8a[_0x57218a('0x63e')]===Symbol&&_0x472f8a!==Symbol['prototype']?_0x57218a('0xb5'):typeof _0x472f8a;})(_0x3d385f);}function _0x3a5c44(_0x30c7ab,_0x3f05bd){var _0x41d364=_0x344a07;if(!(_0x30c7ab instanceof _0x3f05bd))throw new TypeError(_0x41d364('0x9a0'));}function _0x4e00ec(_0xee3c49,_0xa82806){var _0x37b5fc=_0x344a07;for(var _0x32a5e9=0x0;_0x32a5e9<_0xa82806[_0x37b5fc('0x796')];_0x32a5e9++){var _0x2299dc=_0xa82806[_0x32a5e9];_0x2299dc['enumerable']=_0x2299dc[_0x37b5fc('0xdc2')]||!0x1,_0x2299dc[_0x37b5fc('0x48d')]=!0x0,'value'in _0x2299dc&&(_0x2299dc[_0x37b5fc('0x903')]=!0x0),Object['defineProperty'](_0xee3c49,_0x2299dc[_0x37b5fc('0x3ba')],_0x2299dc);}}function _0x359950(_0x250070,_0x4dfc65,_0x3e0d58){var _0x6312a4=_0x344a07;return _0x4dfc65&&_0x4e00ec(_0x250070[_0x6312a4('0x539')],_0x4dfc65),_0x3e0d58&&_0x4e00ec(_0x250070,_0x3e0d58),_0x250070;}function _0x9821d(_0x406229){return function(){var _0x53555e=_0x1c0e,_0x112fb7,_0x163d05=_0x4d1a5b(_0x406229);if(_0x5be7ab()){var _0x3df02b=_0x4d1a5b(this)[_0x53555e('0x63e')];_0x112fb7=Reflect['construct'](_0x163d05,arguments,_0x3df02b);}else _0x112fb7=_0x163d05[_0x53555e('0x365')](this,arguments);return _0x26a129(this,_0x112fb7);};}function _0x26a129(_0x10376c,_0x293765){var _0x581197=_0x344a07;return!_0x293765||_0x581197('0xbfd')!==_0x576d72(_0x293765)&&'function'!=typeof _0x293765?function(_0x4232a5){if(void 0x0===_0x4232a5)throw new ReferenceError('this\x20hasn\x27t\x20been\x20initialised\x20-\x20super()\x20hasn\x27t\x20been\x20called');return _0x4232a5;}(_0x10376c):_0x293765;}function _0x5be7ab(){var _0x249458=_0x344a07;if(_0x249458('0xbfa')==typeof Reflect||!Reflect[_0x249458('0x195')])return!0x1;if(Reflect[_0x249458('0x195')]['sham'])return!0x1;if(_0x249458('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x249458('0x539')][_0x249458('0x6e9')][_0x249458('0x964')](Reflect[_0x249458('0x195')](Date,[],function(){})),!0x0;}catch(_0x1a8efc){return!0x1;}}function _0x4d1a5b(_0x2b7a6b){var _0x44fb3e=_0x344a07;return(_0x4d1a5b=Object[_0x44fb3e('0x489')]?Object[_0x44fb3e('0x85e')]:function(_0x111b0c){var _0x4912e5=_0x44fb3e;return _0x111b0c[_0x4912e5('0xcb9')]||Object[_0x4912e5('0x85e')](_0x111b0c);})(_0x2b7a6b);}function _0x5a06ba(_0x84afe7,_0x2edad3){var _0x18e601=_0x344a07;if(_0x18e601('0xa25')!=typeof _0x2edad3&&null!==_0x2edad3)throw new TypeError(_0x18e601('0xc4b'));_0x84afe7[_0x18e601('0x539')]=Object[_0x18e601('0x3e2')](_0x2edad3&&_0x2edad3[_0x18e601('0x539')],{'constructor':{'value':_0x84afe7,'writable':!0x0,'configurable':!0x0}}),_0x2edad3&&_0x44aaf8(_0x84afe7,_0x2edad3);}function _0x44aaf8(_0x27ff5b,_0x4bc7b8){var _0x3def27=_0x344a07;return(_0x44aaf8=Object[_0x3def27('0x489')]||function(_0x249264,_0x21c444){return _0x249264['__proto__']=_0x21c444,_0x249264;})(_0x27ff5b,_0x4bc7b8);}var _0x418722=function(_0x50ad03){var _0x494f50=_0x344a07;_0x5a06ba(_0x2a2919,_0x50ad03);var _0x63a7be=_0x9821d(_0x2a2919);function _0x2a2919(){var _0x4a23ab=_0x1c0e;return _0x3a5c44(this,_0x2a2919),_0x63a7be[_0x4a23ab('0x365')](this,arguments);}return _0x359950(_0x2a2919,[{'key':'getDataMapping','value':function(){var _0x2ade4b=_0x1c0e;return['id',_0x2ade4b('0x176'),_0x2ade4b('0x212')];}},{'key':_0x494f50('0x445'),'value':function(){var _0x2a13ff=_0x494f50;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x2a13ff('0x152')},{'sTitle':_0x2a13ff('0xd3a')}];}},{'key':_0x494f50('0x73d'),'value':function(){var _0x4de3e9=_0x494f50;return[['id',{'label':'ID','type':_0x4de3e9('0xa05')}],['skill_id',{'label':_0x4de3e9('0x152'),'type':_0x4de3e9('0xdc5'),'allow-null':!0x0,'remote-source':[_0x4de3e9('0x152'),'id','name']}],[_0x4de3e9('0x212'),{'label':_0x4de3e9('0xd3a'),'type':'textarea','validation':''}]];}}]),_0x2a2919;}(_0x59613a[_0x344a07('0x8fd')]),_0x5f349b=function(_0x520202){var _0x334ed3=_0x344a07;_0x5a06ba(_0x2151c8,_0x520202);var _0x9e2a34=_0x9821d(_0x2151c8);function _0x2151c8(){var _0x115d09=_0x1c0e;return _0x3a5c44(this,_0x2151c8),_0x9e2a34[_0x115d09('0x365')](this,arguments);}return _0x359950(_0x2151c8,[{'key':'getDataMapping','value':function(){var _0x31589c=_0x1c0e;return['id',_0x31589c('0xccb'),_0x31589c('0xc7d'),_0x31589c('0xb52'),_0x31589c('0xb36')];}},{'key':_0x334ed3('0x445'),'value':function(){var _0x37deda=_0x334ed3;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Qualification'},{'sTitle':_0x37deda('0xc8')},{'sTitle':_0x37deda('0xb95')},{'sTitle':_0x37deda('0x1cc')}];}},{'key':_0x334ed3('0x73d'),'value':function(){var _0xd15205=_0x334ed3;return[['id',{'label':'ID','type':_0xd15205('0xa05')}],[_0xd15205('0xccb'),{'label':'Qualification','type':'select2','allow-null':!0x1,'remote-source':['Education','id',_0xd15205('0xce')]}],[_0xd15205('0xc7d'),{'label':_0xd15205('0xc8'),'type':_0xd15205('0x941'),'validation':''}],['date_start',{'label':'Start\x20Date','type':_0xd15205('0x9d2'),'validation':_0xd15205('0x649')}],[_0xd15205('0xb36'),{'label':'Completed\x20On','type':_0xd15205('0x9d2'),'validation':_0xd15205('0x649')}]];}}]),_0x2151c8;}(_0x59613a[_0x344a07('0x8fd')]),_0x2f7fb4=function(_0x273ef2){var _0x48d2bb=_0x344a07;_0x5a06ba(_0x221a3a,_0x273ef2);var _0xacc4c3=_0x9821d(_0x221a3a);function _0x221a3a(){var _0x3ba8a5=_0x1c0e;return _0x3a5c44(this,_0x221a3a),_0xacc4c3[_0x3ba8a5('0x365')](this,arguments);}return _0x359950(_0x221a3a,[{'key':_0x48d2bb('0x433'),'value':function(){var _0x5438e7=_0x48d2bb;return['id','certification_id',_0x5438e7('0xc7d'),_0x5438e7('0xb52'),'date_start'];}},{'key':_0x48d2bb('0x445'),'value':function(){var _0x426db6=_0x48d2bb;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x426db6('0xa83')},{'sTitle':_0x426db6('0xc8')},{'sTitle':_0x426db6('0x98a')},{'sTitle':'Valid\x20Thru'}];}},{'key':'getFormFields','value':function(){var _0x1b4d2a=_0x48d2bb;return[['id',{'label':'ID','type':_0x1b4d2a('0xa05')}],[_0x1b4d2a('0x47b'),{'label':_0x1b4d2a('0xa83'),'type':_0x1b4d2a('0xdc5'),'allow-null':!0x1,'remote-source':[_0x1b4d2a('0xa83'),'id',_0x1b4d2a('0xce')]}],[_0x1b4d2a('0xc7d'),{'label':_0x1b4d2a('0xc8'),'type':_0x1b4d2a('0x941'),'validation':''}],[_0x1b4d2a('0xb52'),{'label':'Granted\x20On','type':_0x1b4d2a('0x9d2'),'validation':_0x1b4d2a('0x649')}],['date_end',{'label':_0x1b4d2a('0x9eb'),'type':_0x1b4d2a('0x9d2'),'validation':_0x1b4d2a('0x649')}]];}}]),_0x221a3a;}(_0x59613a['default']),_0x53cb25=function(_0x179cc6){var _0x1c6871=_0x344a07;_0x5a06ba(_0x54dc01,_0x179cc6);var _0x54782a=_0x9821d(_0x54dc01);function _0x54dc01(){var _0x16190c=_0x1c0e;return _0x3a5c44(this,_0x54dc01),_0x54782a[_0x16190c('0x365')](this,arguments);}return _0x359950(_0x54dc01,[{'key':_0x1c6871('0x433'),'value':function(){var _0x2c1927=_0x1c6871;return['id',_0x2c1927('0x4d1'),_0x2c1927('0x609'),'speaking','writing','understanding'];}},{'key':_0x1c6871('0x445'),'value':function(){var _0x2889e2=_0x1c6871;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Language'},{'sTitle':'Reading'},{'sTitle':_0x2889e2('0xa6d')},{'sTitle':_0x2889e2('0xb4e')},{'sTitle':_0x2889e2('0x440')}];}},{'key':_0x1c6871('0x73d'),'value':function(){var _0x7e09e=_0x1c6871,_0x54d9dd=[[_0x7e09e('0x1c7'),'Elementary\x20Proficiency'],[_0x7e09e('0x902'),_0x7e09e('0x902')],[_0x7e09e('0x7b4'),_0x7e09e('0x7b4')],[_0x7e09e('0xc09'),'Full\x20Professional\x20Proficiency'],[_0x7e09e('0xae5'),'Native\x20or\x20Bilingual\x20Proficiency']];return[['id',{'label':'ID','type':_0x7e09e('0xa05')}],[_0x7e09e('0x4d1'),{'label':_0x7e09e('0xc17'),'type':'select2','allow-null':!0x1,'remote-source':[_0x7e09e('0xc17'),'id','description']}],[_0x7e09e('0x609'),{'label':_0x7e09e('0x670'),'type':_0x7e09e('0x510'),'source':_0x54d9dd}],[_0x7e09e('0x6c9'),{'label':_0x7e09e('0xa6d'),'type':_0x7e09e('0x510'),'source':_0x54d9dd}],[_0x7e09e('0x3c5'),{'label':_0x7e09e('0xb4e'),'type':_0x7e09e('0x510'),'source':_0x54d9dd}],[_0x7e09e('0x879'),{'label':_0x7e09e('0x440'),'type':'select','source':_0x54d9dd}]];}}]),_0x54dc01;}(_0x59613a[_0x344a07('0x8fd')]);_0x574d0b['exports']={'EmployeeSkillAdapter':_0x418722,'EmployeeEducationAdapter':_0x5f349b,'EmployeeCertificationAdapter':_0x2f7fb4,'EmployeeLanguageAdapter':_0x53cb25};},{'../../../api/AdapterBase':0x27}],0x56:[function(_0x263e42,_0x47b340,_0x4e44d0){var _0x248655=_0x38d28e;'use strict';var _0x30bd8b=_0x263e42(_0x248655('0x822'));window[_0x248655('0xa36')]=_0x30bd8b[_0x248655('0xa36')];},{'./lib':0x57}],0x57:[function(_0x544e83,_0x1cbfd0,_0x32ec54){var _0x49c80e=_0x38d28e;'use strict';function _0x163c72(_0x57e59c){var _0x59fe6b=_0x1c0e;return(_0x163c72=_0x59fe6b('0xa25')==typeof Symbol&&_0x59fe6b('0xb5')==typeof Symbol[_0x59fe6b('0x4ae')]?function(_0x13540a){return typeof _0x13540a;}:function(_0x2aabad){var _0xb2e148=_0x59fe6b;return _0x2aabad&&_0xb2e148('0xa25')==typeof Symbol&&_0x2aabad[_0xb2e148('0x63e')]===Symbol&&_0x2aabad!==Symbol[_0xb2e148('0x539')]?'symbol':typeof _0x2aabad;})(_0x57e59c);}function _0x23d75b(_0x5edb51,_0x2b939c){var _0x250dab=_0x1c0e;if(!(_0x5edb51 instanceof _0x2b939c))throw new TypeError(_0x250dab('0x9a0'));}function _0xb98ba8(_0x2da055,_0x6e0104){var _0x344900=_0x1c0e;for(var _0x2c169e=0x0;_0x2c169e<_0x6e0104[_0x344900('0x796')];_0x2c169e++){var _0xf99578=_0x6e0104[_0x2c169e];_0xf99578[_0x344900('0xdc2')]=_0xf99578[_0x344900('0xdc2')]||!0x1,_0xf99578['configurable']=!0x0,'value'in _0xf99578&&(_0xf99578[_0x344900('0x903')]=!0x0),Object[_0x344900('0x751')](_0x2da055,_0xf99578[_0x344900('0x3ba')],_0xf99578);}}function _0x42cea1(_0x34d4a0,_0x232728){var _0x2cf57f=_0x1c0e;return!_0x232728||_0x2cf57f('0xbfd')!==_0x163c72(_0x232728)&&_0x2cf57f('0xa25')!=typeof _0x232728?function(_0x47a3db){var _0x119ef6=_0x2cf57f;if(void 0x0===_0x47a3db)throw new ReferenceError(_0x119ef6('0xcf6'));return _0x47a3db;}(_0x34d4a0):_0x232728;}function _0x671492(){var _0x4d2895=_0x1c0e;if('undefined'==typeof Reflect||!Reflect[_0x4d2895('0x195')])return!0x1;if(Reflect[_0x4d2895('0x195')]['sham'])return!0x1;if(_0x4d2895('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x4d2895('0x539')][_0x4d2895('0x6e9')][_0x4d2895('0x964')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x1493c8){return!0x1;}}function _0x290350(_0x22b9ef){var _0x177db7=_0x1c0e;return(_0x290350=Object[_0x177db7('0x489')]?Object[_0x177db7('0x85e')]:function(_0xabd137){var _0x5296e9=_0x177db7;return _0xabd137[_0x5296e9('0xcb9')]||Object[_0x5296e9('0x85e')](_0xabd137);})(_0x22b9ef);}function _0x478dfc(_0x46cd6a,_0x1d614c){var _0x6aaf95=_0x1c0e;return(_0x478dfc=Object[_0x6aaf95('0x489')]||function(_0x2de65e,_0x45f8bd){return _0x2de65e['__proto__']=_0x45f8bd,_0x2de65e;})(_0x46cd6a,_0x1d614c);}var _0x43892a=function(_0x4dbdb7){var _0x3196b8=_0x1c0e;!function(_0x3ffa14,_0x1c49ad){var _0x7dd3fd=_0x1c0e;if('function'!=typeof _0x1c49ad&&null!==_0x1c49ad)throw new TypeError(_0x7dd3fd('0xc4b'));_0x3ffa14['prototype']=Object[_0x7dd3fd('0x3e2')](_0x1c49ad&&_0x1c49ad['prototype'],{'constructor':{'value':_0x3ffa14,'writable':!0x0,'configurable':!0x0}}),_0x1c49ad&&_0x478dfc(_0x3ffa14,_0x1c49ad);}(_0x3e3cf4,_0x4dbdb7);var _0x301ea9,_0x2ad8fb,_0x4615aa,_0x1411fd,_0x28f93c=(_0x301ea9=_0x3e3cf4,function(){var _0x5c4b7d=_0x1c0e,_0x28c369,_0x2f0ecc=_0x290350(_0x301ea9);if(_0x671492()){var _0x491605=_0x290350(this)[_0x5c4b7d('0x63e')];_0x28c369=Reflect['construct'](_0x2f0ecc,arguments,_0x491605);}else _0x28c369=_0x2f0ecc['apply'](this,arguments);return _0x42cea1(this,_0x28c369);});function _0x3e3cf4(){return _0x23d75b(this,_0x3e3cf4),_0x28f93c['apply'](this,arguments);}return _0x2ad8fb=_0x3e3cf4,(_0x4615aa=[{'key':_0x3196b8('0xf8'),'value':function(_0x416408){var _0x308bcd=_0x3196b8,_0xd719c8=this;this[_0x308bcd('0x419')](_0x416408),this[_0x308bcd('0x100')]?this[_0x308bcd('0x44e')](function(){var _0x5e009b=_0x308bcd;_0xd719c8[_0x5e009b('0x3cd')](_0x416408);}):(this[_0x308bcd('0x44e')](),_0xd719c8['renderFormNew'](_0x416408)),this[_0x308bcd('0x207')]=_0x416408;}}])&&_0xb98ba8(_0x2ad8fb[_0x3196b8('0x539')],_0x4615aa),_0x1411fd&&_0xb98ba8(_0x2ad8fb,_0x1411fd),_0x3e3cf4;}(_0x544e83('../../../admin/src/reports/lib')[_0x49c80e('0x1f4')]);_0x1cbfd0[_0x49c80e('0xd7')]={'UserReportAdapter':_0x43892a};},{'../../../admin/src/reports/lib':0x24}],0x58:[function(_0x1dae97,_0x26a21c,_0x350e37){var _0x5c5b7c=_0x38d28e;'use strict';var _0x502ac9=_0x1dae97(_0x5c5b7c('0x822'));window['EmployeeSalaryAdapter']=_0x502ac9['EmployeeSalaryAdapter'];},{'./lib':0x59}],0x59:[function(_0xf4f08b,_0x39488f,_0x18bb13){var _0x14168b=_0x38d28e;'use strict';var _0x33b601;function _0x419e1d(_0x5316a4){var _0x3e271f=_0x1c0e;return(_0x419e1d=_0x3e271f('0xa25')==typeof Symbol&&_0x3e271f('0xb5')==typeof Symbol['iterator']?function(_0x313e41){return typeof _0x313e41;}:function(_0x41d004){var _0x55b2ca=_0x3e271f;return _0x41d004&&_0x55b2ca('0xa25')==typeof Symbol&&_0x41d004[_0x55b2ca('0x63e')]===Symbol&&_0x41d004!==Symbol[_0x55b2ca('0x539')]?_0x55b2ca('0xb5'):typeof _0x41d004;})(_0x5316a4);}function _0x5c7b90(_0xf23da1,_0x28df88){if(!(_0xf23da1 instanceof _0x28df88))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x393418(_0x1ef68f,_0x5ea9c5){var _0x1a8919=_0x1c0e;for(var _0x19e9d5=0x0;_0x19e9d5<_0x5ea9c5[_0x1a8919('0x796')];_0x19e9d5++){var _0x42fd78=_0x5ea9c5[_0x19e9d5];_0x42fd78[_0x1a8919('0xdc2')]=_0x42fd78[_0x1a8919('0xdc2')]||!0x1,_0x42fd78['configurable']=!0x0,_0x1a8919('0x920')in _0x42fd78&&(_0x42fd78['writable']=!0x0),Object[_0x1a8919('0x751')](_0x1ef68f,_0x42fd78[_0x1a8919('0x3ba')],_0x42fd78);}}function _0x122166(_0x46dfc6,_0x216bfd){var _0x2f854b=_0x1c0e;return!_0x216bfd||_0x2f854b('0xbfd')!==_0x419e1d(_0x216bfd)&&_0x2f854b('0xa25')!=typeof _0x216bfd?function(_0x434dfa){var _0x146295=_0x2f854b;if(void 0x0===_0x434dfa)throw new ReferenceError(_0x146295('0xcf6'));return _0x434dfa;}(_0x46dfc6):_0x216bfd;}function _0x156154(){var _0x33c139=_0x1c0e;if(_0x33c139('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x33c139('0x460')])return!0x1;if(_0x33c139('0xa25')==typeof Proxy)return!0x0;try{return Date['prototype'][_0x33c139('0x6e9')]['call'](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x3969f5){return!0x1;}}function _0x3f16fa(_0x2ace53){var _0xf71ca0=_0x1c0e;return(_0x3f16fa=Object[_0xf71ca0('0x489')]?Object['getPrototypeOf']:function(_0x5616a4){var _0x12e461=_0xf71ca0;return _0x5616a4['__proto__']||Object[_0x12e461('0x85e')](_0x5616a4);})(_0x2ace53);}function _0x3843e0(_0x22886f,_0x2b5f8e){var _0x12b4a9=_0x1c0e;return(_0x3843e0=Object[_0x12b4a9('0x489')]||function(_0x35d0a5,_0x9fdbdf){var _0x456254=_0x12b4a9;return _0x35d0a5[_0x456254('0xcb9')]=_0x9fdbdf,_0x35d0a5;})(_0x22886f,_0x2b5f8e);}var _0x11a9aa=function(_0x4e4551){var _0x18d9bd=_0x1c0e;!function(_0x335bac,_0x2abb7d){var _0x2bd1f1=_0x1c0e;if(_0x2bd1f1('0xa25')!=typeof _0x2abb7d&&null!==_0x2abb7d)throw new TypeError(_0x2bd1f1('0xc4b'));_0x335bac[_0x2bd1f1('0x539')]=Object[_0x2bd1f1('0x3e2')](_0x2abb7d&&_0x2abb7d['prototype'],{'constructor':{'value':_0x335bac,'writable':!0x0,'configurable':!0x0}}),_0x2abb7d&&_0x3843e0(_0x335bac,_0x2abb7d);}(_0x339767,_0x4e4551);var _0x30cc74,_0x58a2b5,_0x23787f,_0x3d3495,_0x1302fa=(_0x30cc74=_0x339767,function(){var _0x5ab800=_0x1c0e,_0x958d96,_0x43663c=_0x3f16fa(_0x30cc74);if(_0x156154()){var _0x1a217c=_0x3f16fa(this)['constructor'];_0x958d96=Reflect[_0x5ab800('0x195')](_0x43663c,arguments,_0x1a217c);}else _0x958d96=_0x43663c[_0x5ab800('0x365')](this,arguments);return _0x122166(this,_0x958d96);});function _0x339767(){return _0x5c7b90(this,_0x339767),_0x1302fa['apply'](this,arguments);}return _0x58a2b5=_0x339767,(_0x23787f=[{'key':_0x18d9bd('0x433'),'value':function(){var _0x412de3=_0x18d9bd;return['id',_0x412de3('0x582'),_0x412de3('0x532'),_0x412de3('0x212')];}},{'key':'getHeaders','value':function(){var _0xaeb83e=_0x18d9bd;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0xaeb83e('0x6d6')},{'sTitle':_0xaeb83e('0xb42')},{'sTitle':_0xaeb83e('0xd3a')}];}},{'key':_0x18d9bd('0x73d'),'value':function(){var _0x227995=_0x18d9bd;return[['id',{'label':'ID','type':'hidden'}],[_0x227995('0x582'),{'label':'Salary\x20Component','type':_0x227995('0xdc5'),'remote-source':['SalaryComponent','id',_0x227995('0xce')]}],['amount',{'label':_0x227995('0xb42'),'type':_0x227995('0x941'),'validation':_0x227995('0x650')}],['details',{'label':'Details','type':_0x227995('0xbd5'),'validation':'none'}]];}}])&&_0x393418(_0x58a2b5[_0x18d9bd('0x539')],_0x23787f),_0x3d3495&&_0x393418(_0x58a2b5,_0x3d3495),_0x339767;}(((_0x33b601=_0xf4f08b(_0x14168b('0x9d6')))&&_0x33b601[_0x14168b('0x8bc')]?_0x33b601:{'default':_0x33b601})[_0x14168b('0x8fd')]);_0x39488f['exports']={'EmployeeSalaryAdapter':_0x11a9aa};},{'../../../api/AdapterBase':0x27}],0x5a:[function(_0x493009,_0x3e80f6,_0x3f4cc3){var _0x486b49=_0x38d28e;'use strict';var _0x1c36ef=_0x493009(_0x486b49('0x822'));window['StaffDirectoryAdapter']=_0x1c36ef[_0x486b49('0xa2')],window[_0x486b49('0x3a2')]=_0x1c36ef[_0x486b49('0x3a2')];},{'./lib':0x5b}],0x5b:[function(_0x58ff3c,_0x1e7cbd,_0x824eeb){'use strict';var _0x2a5c5a=_0x2424ab(_0x58ff3c('../../../api/AdapterBase')),_0x10c809=_0x2424ab(_0x58ff3c('../../../api/ObjectAdapter'));function _0x2424ab(_0x16a639){var _0x1d915c=_0x1c0e;return _0x16a639&&_0x16a639[_0x1d915c('0x8bc')]?_0x16a639:{'default':_0x16a639};}function _0x590f62(_0x1f8c50){var _0xbbe227=_0x1c0e;return(_0x590f62=_0xbbe227('0xa25')==typeof Symbol&&_0xbbe227('0xb5')==typeof Symbol[_0xbbe227('0x4ae')]?function(_0x6bfc12){return typeof _0x6bfc12;}:function(_0x2e6eee){var _0x158b15=_0xbbe227;return _0x2e6eee&&'function'==typeof Symbol&&_0x2e6eee['constructor']===Symbol&&_0x2e6eee!==Symbol['prototype']?_0x158b15('0xb5'):typeof _0x2e6eee;})(_0x1f8c50);}function _0x5b8fea(_0x53ad7d,_0x247c5){var _0x13736b=_0x1c0e;if(!(_0x53ad7d instanceof _0x247c5))throw new TypeError(_0x13736b('0x9a0'));}function _0x5b9f25(_0x595b90,_0x200bdd){var _0x35cfd5=_0x1c0e;for(var _0x22ec10=0x0;_0x22ec10<_0x200bdd[_0x35cfd5('0x796')];_0x22ec10++){var _0x4f5353=_0x200bdd[_0x22ec10];_0x4f5353[_0x35cfd5('0xdc2')]=_0x4f5353[_0x35cfd5('0xdc2')]||!0x1,_0x4f5353['configurable']=!0x0,_0x35cfd5('0x920')in _0x4f5353&&(_0x4f5353['writable']=!0x0),Object[_0x35cfd5('0x751')](_0x595b90,_0x4f5353[_0x35cfd5('0x3ba')],_0x4f5353);}}function _0x11b1ff(_0x5ae9c3,_0x180a9f,_0x28c029){var _0x41ae31=_0x1c0e;return _0x180a9f&&_0x5b9f25(_0x5ae9c3[_0x41ae31('0x539')],_0x180a9f),_0x28c029&&_0x5b9f25(_0x5ae9c3,_0x28c029),_0x5ae9c3;}function _0x503b92(_0x3bd290){return function(){var _0x35e110=_0x1c0e,_0x11d602,_0x3172e1=_0x7b28c3(_0x3bd290);if(_0x2a6bde()){var _0x163d29=_0x7b28c3(this)[_0x35e110('0x63e')];_0x11d602=Reflect['construct'](_0x3172e1,arguments,_0x163d29);}else _0x11d602=_0x3172e1[_0x35e110('0x365')](this,arguments);return _0x5d2796(this,_0x11d602);};}function _0x5d2796(_0x2fde3d,_0x1dc588){var _0xc6bddf=_0x1c0e;return!_0x1dc588||_0xc6bddf('0xbfd')!==_0x590f62(_0x1dc588)&&_0xc6bddf('0xa25')!=typeof _0x1dc588?function(_0x31362e){var _0x7151f2=_0xc6bddf;if(void 0x0===_0x31362e)throw new ReferenceError(_0x7151f2('0xcf6'));return _0x31362e;}(_0x2fde3d):_0x1dc588;}function _0x2a6bde(){var _0x337a27=_0x1c0e;if('undefined'==typeof Reflect||!Reflect[_0x337a27('0x195')])return!0x1;if(Reflect[_0x337a27('0x195')][_0x337a27('0x460')])return!0x1;if('function'==typeof Proxy)return!0x0;try{return Date[_0x337a27('0x539')][_0x337a27('0x6e9')][_0x337a27('0x964')](Reflect['construct'](Date,[],function(){})),!0x0;}catch(_0x1e67bf){return!0x1;}}function _0x7b28c3(_0x127aab){var _0x129e81=_0x1c0e;return(_0x7b28c3=Object[_0x129e81('0x489')]?Object[_0x129e81('0x85e')]:function(_0x29385a){return _0x29385a['__proto__']||Object['getPrototypeOf'](_0x29385a);})(_0x127aab);}function _0x574d2(_0x12879a,_0x2adcbf){var _0x43678d=_0x1c0e;if(_0x43678d('0xa25')!=typeof _0x2adcbf&&null!==_0x2adcbf)throw new TypeError(_0x43678d('0xc4b'));_0x12879a[_0x43678d('0x539')]=Object['create'](_0x2adcbf&&_0x2adcbf[_0x43678d('0x539')],{'constructor':{'value':_0x12879a,'writable':!0x0,'configurable':!0x0}}),_0x2adcbf&&_0x520151(_0x12879a,_0x2adcbf);}function _0x520151(_0x5663d0,_0x2a91af){var _0x2a15c9=_0x1c0e;return(_0x520151=Object[_0x2a15c9('0x489')]||function(_0x48299f,_0x2bad4a){var _0x1d1438=_0x2a15c9;return _0x48299f[_0x1d1438('0xcb9')]=_0x2bad4a,_0x48299f;})(_0x5663d0,_0x2a91af);}var _0x26ea83=function(_0x2e6e9b){var _0x1f9690=_0x1c0e;_0x574d2(_0x4a0324,_0x2e6e9b);var _0x37dbc8=_0x503b92(_0x4a0324);function _0x4a0324(){var _0x5e8d62=_0x1c0e;return _0x5b8fea(this,_0x4a0324),_0x37dbc8[_0x5e8d62('0x365')](this,arguments);}return _0x11b1ff(_0x4a0324,[{'key':_0x1f9690('0x433'),'value':function(){var _0xa1378d=_0x1f9690;return['id','image',_0xa1378d('0x7e1'),_0xa1378d('0x92a'),_0xa1378d('0x583'),_0xa1378d('0x350'),_0xa1378d('0xc0a'),_0xa1378d('0xa2c'),'joined_date'];}},{'key':_0x1f9690('0x445'),'value':function(){var _0x1d4120=_0x1f9690;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':''},{'sTitle':_0x1d4120('0xaec')},{'sTitle':_0x1d4120('0x657')},{'sTitle':_0x1d4120('0x5c5')},{'sTitle':_0x1d4120('0xb9a')},{'sTitle':_0x1d4120('0x843')},{'sTitle':_0x1d4120('0xb3e')},{'sTitle':_0x1d4120('0x13c')}];}},{'key':_0x1f9690('0x73d'),'value':function(){var _0x518d90=_0x1f9690;return[['id',{'label':'ID','type':_0x518d90('0xa05'),'validation':''}],['first_name',{'label':_0x518d90('0xaec'),'type':'text','validation':''}],[_0x518d90('0x92a'),{'label':_0x518d90('0x657'),'type':'text','validation':''}],[_0x518d90('0x583'),{'label':_0x518d90('0x5c5'),'type':_0x518d90('0xdc5'),'remote-source':['JobTitle','id',_0x518d90('0xce')]}],[_0x518d90('0x350'),{'label':'Department','type':_0x518d90('0xdc5'),'remote-source':[_0x518d90('0x52c'),'id',_0x518d90('0xd93')]}],[_0x518d90('0xc0a'),{'label':_0x518d90('0x843'),'type':'text','validation':'none'}],['work_email',{'label':_0x518d90('0xb3e'),'type':_0x518d90('0x6d0'),'validation':_0x518d90('0xa15')}],[_0x518d90('0x310'),{'label':_0x518d90('0x13c'),'type':_0x518d90('0x9d2'),'validation':''}]];}},{'key':_0x1f9690('0x6be'),'value':function(){return!0x1;}},{'key':'getCustomTableParams','value':function(){var _0x103047=this;return{'aoColumnDefs':[{'fnRender':function(_0x23ed58,_0x315ef9){var _0x33509d=_0x1c0e;try{return _0x103047[_0x33509d('0xc16')](_0x23ed58,_0x315ef9,0x1);}catch(_0x32076f){return _0x315ef9;}},'aTargets':[0x1]},{'fnRender':function(_0x495d89,_0x5bc532){var _0x2e6101=_0x1c0e;try{return _0x103047[_0x2e6101('0xc16')](_0x495d89,_0x5bc532,0x8);}catch(_0x448323){return _0x5bc532;}},'aTargets':[0x8]}]};}},{'key':_0x1f9690('0xc16'),'value':function(_0x4ccca2,_0x491e60,_0x39264f){var _0x2e0ef8=_0x1f9690;if(0x8===_0x39264f)return _0x2e0ef8('0x111')===_0x491e60||''===_0x491e60||null==_0x491e60?'':Date[_0x2e0ef8('0x22f')](_0x491e60)[_0x2e0ef8('0x6e9')](_0x2e0ef8('0x2f0'));if(0x1===_0x39264f)return _0x2e0ef8('0x49c')[_0x2e0ef8('0x8f9')](_0x2e0ef8('0x78f'),_0x491e60);}}]),_0x4a0324;}(_0x2a5c5a['default']),_0x11014c=function(_0x586650){var _0x1adb1c=_0x1c0e;_0x574d2(_0x21bdd5,_0x586650);var _0xa8c372=_0x503b92(_0x21bdd5);function _0x21bdd5(){var _0x1d86c5=_0x1c0e;return _0x5b8fea(this,_0x21bdd5),_0xa8c372[_0x1d86c5('0x365')](this,arguments);}return _0x11b1ff(_0x21bdd5,[{'key':'getDataMapping','value':function(){var _0x5b0319=_0x1c0e;return['id',_0x5b0319('0xcf0'),_0x5b0319('0x7e1'),'last_name',_0x5b0319('0x583'),_0x5b0319('0x350'),_0x5b0319('0xc0a'),_0x5b0319('0xa2c'),_0x5b0319('0x310')];}},{'key':_0x1adb1c('0x445'),'value':function(){var _0x18ee8d=_0x1adb1c;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':''},{'sTitle':_0x18ee8d('0xaec')},{'sTitle':_0x18ee8d('0x657')},{'sTitle':_0x18ee8d('0x5c5')},{'sTitle':_0x18ee8d('0xb9a')},{'sTitle':'Work\x20Phone'},{'sTitle':_0x18ee8d('0xb3e')},{'sTitle':'Joined\x20Date'}];}},{'key':_0x1adb1c('0x73d'),'value':function(){var _0x143205=_0x1adb1c;return[['id',{'label':'ID','type':_0x143205('0xa05'),'validation':''}],['first_name',{'label':'First\x20Name','type':'text','validation':''}],[_0x143205('0x92a'),{'label':_0x143205('0x657'),'type':_0x143205('0x941'),'validation':''}],[_0x143205('0x583'),{'label':_0x143205('0x5c5'),'type':'select2','remote-source':['JobTitle','id',_0x143205('0xce')]}],[_0x143205('0x350'),{'label':_0x143205('0xb9a'),'type':_0x143205('0xdc5'),'remote-source':[_0x143205('0x52c'),'id','title']}],[_0x143205('0xc0a'),{'label':_0x143205('0x843'),'type':_0x143205('0x941'),'validation':'none'}],[_0x143205('0xa2c'),{'label':_0x143205('0xb3e'),'type':_0x143205('0x6d0'),'validation':_0x143205('0xa15')}],['joined_date',{'label':_0x143205('0x13c'),'type':_0x143205('0x9d2'),'validation':''}]];}},{'key':'addDomEvents','value':function(_0x400fc5){}},{'key':_0x1adb1c('0xb15'),'value':function(){var _0x1315c2=_0x1adb1c;return _0x1315c2('0x66d');}},{'key':_0x1adb1c('0x4fa'),'value':function(_0x4a8959){var _0x3895f5=_0x1adb1c,_0x2a6973=_0x4a8959;return _0x2a6973['color']=this[_0x3895f5('0x1e9')](_0x2a6973[_0x3895f5('0x7e1')]),_0x2a6973;}},{'key':'getFilters','value':function(){var _0x1f944a=_0x1adb1c;return[[_0x1f944a('0x583'),{'label':_0x1f944a('0x5c5'),'type':'select2','allow-null':!0x0,'null-label':_0x1f944a('0x2dc'),'remote-source':[_0x1f944a('0x2e0'),'id','name']}],[_0x1f944a('0x350'),{'label':_0x1f944a('0xb9a'),'type':'select2','allow-null':!0x0,'null-label':_0x1f944a('0x417'),'remote-source':[_0x1f944a('0x52c'),'id',_0x1f944a('0xd93')]}]];}}]),_0x21bdd5;}(_0x10c809['default']);_0x1e7cbd['exports']={'StaffDirectoryAdapter':_0x26ea83,'StaffDirectoryObjectAdapter':_0x11014c};},{'../../../api/AdapterBase':0x27,'../../../api/ObjectAdapter':0x31}],0x5c:[function(_0x252208,_0xc93a9d,_0x5af5c9){var _0x4fdc6a=_0x38d28e;'use strict';var _0x5e66c4=_0x252208(_0x4fdc6a('0x822'));window[_0x4fdc6a('0x27')]=_0x5e66c4[_0x4fdc6a('0x27')],window['SubEmployeeTimeSheetAdapter']=_0x5e66c4[_0x4fdc6a('0x942')],window[_0x4fdc6a('0x311')]=_0x5e66c4['EmployeeTimeEntryAdapter'],window['QtsheetAdapter']=_0x5e66c4[_0x4fdc6a('0x543')];},{'./lib':0x5d}],0x5d:[function(_0x324b18,_0x24cde4,_0x287f45){var _0x4d7c7c=_0x38d28e;'use strict';var _0x5cabc6=_0x19ae0c(_0x324b18(_0x4d7c7c('0x9d6'))),_0x3b9f23=_0x19ae0c(_0x324b18(_0x4d7c7c('0x60a'))),_0x132b44=_0x19ae0c(_0x324b18('../../../api/TableEditAdapter'));function _0x19ae0c(_0x126aa8){var _0x5d323a=_0x4d7c7c;return _0x126aa8&&_0x126aa8[_0x5d323a('0x8bc')]?_0x126aa8:{'default':_0x126aa8};}function _0x128782(_0x498f73){var _0x28acf0=_0x4d7c7c;return(_0x128782=_0x28acf0('0xa25')==typeof Symbol&&'symbol'==typeof Symbol[_0x28acf0('0x4ae')]?function(_0x77bbab){return typeof _0x77bbab;}:function(_0x121b37){var _0x2d89a7=_0x28acf0;return _0x121b37&&_0x2d89a7('0xa25')==typeof Symbol&&_0x121b37['constructor']===Symbol&&_0x121b37!==Symbol[_0x2d89a7('0x539')]?_0x2d89a7('0xb5'):typeof _0x121b37;})(_0x498f73);}function _0x18b47c(_0x5815fe,_0x26caf8){if(!(_0x5815fe instanceof _0x26caf8))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x58892e(_0x54e203,_0x46a4c9){var _0x319227=_0x4d7c7c;for(var _0x31e79e=0x0;_0x31e79e<_0x46a4c9[_0x319227('0x796')];_0x31e79e++){var _0x1e8020=_0x46a4c9[_0x31e79e];_0x1e8020['enumerable']=_0x1e8020[_0x319227('0xdc2')]||!0x1,_0x1e8020[_0x319227('0x48d')]=!0x0,'value'in _0x1e8020&&(_0x1e8020[_0x319227('0x903')]=!0x0),Object['defineProperty'](_0x54e203,_0x1e8020[_0x319227('0x3ba')],_0x1e8020);}}function _0x45bad1(_0x40ada7,_0x3098c3,_0x529539){var _0x38a516=_0x4d7c7c;return _0x3098c3&&_0x58892e(_0x40ada7[_0x38a516('0x539')],_0x3098c3),_0x529539&&_0x58892e(_0x40ada7,_0x529539),_0x40ada7;}function _0x893722(_0x319daa){return function(){var _0x1d693c=_0x1c0e,_0x308654,_0x52115d=_0x19a91b(_0x319daa);if(_0x5232ba()){var _0x36d3cb=_0x19a91b(this)[_0x1d693c('0x63e')];_0x308654=Reflect['construct'](_0x52115d,arguments,_0x36d3cb);}else _0x308654=_0x52115d['apply'](this,arguments);return _0x1d9eea(this,_0x308654);};}function _0x1d9eea(_0x5134af,_0xfb82ed){return!_0xfb82ed||'object'!==_0x128782(_0xfb82ed)&&'function'!=typeof _0xfb82ed?function(_0x5d8696){var _0xf8062d=_0x1c0e;if(void 0x0===_0x5d8696)throw new ReferenceError(_0xf8062d('0xcf6'));return _0x5d8696;}(_0x5134af):_0xfb82ed;}function _0x5232ba(){var _0x2175e3=_0x4d7c7c;if(_0x2175e3('0xbfa')==typeof Reflect||!Reflect['construct'])return!0x1;if(Reflect['construct'][_0x2175e3('0x460')])return!0x1;if(_0x2175e3('0xa25')==typeof Proxy)return!0x0;try{return Date[_0x2175e3('0x539')][_0x2175e3('0x6e9')][_0x2175e3('0x964')](Reflect[_0x2175e3('0x195')](Date,[],function(){})),!0x0;}catch(_0x542e66){return!0x1;}}function _0x19a91b(_0x14cf8b){var _0x31cbd2=_0x4d7c7c;return(_0x19a91b=Object['setPrototypeOf']?Object[_0x31cbd2('0x85e')]:function(_0x85b86d){return _0x85b86d['__proto__']||Object['getPrototypeOf'](_0x85b86d);})(_0x14cf8b);}function _0x451d02(_0x187c34,_0x339091){var _0x1f705a=_0x4d7c7c;if(_0x1f705a('0xa25')!=typeof _0x339091&&null!==_0x339091)throw new TypeError(_0x1f705a('0xc4b'));_0x187c34['prototype']=Object[_0x1f705a('0x3e2')](_0x339091&&_0x339091['prototype'],{'constructor':{'value':_0x187c34,'writable':!0x0,'configurable':!0x0}}),_0x339091&&_0x2f1c71(_0x187c34,_0x339091);}function _0x2f1c71(_0x27fdd3,_0x53334d){var _0x1f562e=_0x4d7c7c;return(_0x2f1c71=Object[_0x1f562e('0x489')]||function(_0x51090b,_0x4c7042){var _0x151219=_0x1f562e;return _0x51090b[_0x151219('0xcb9')]=_0x4c7042,_0x51090b;})(_0x27fdd3,_0x53334d);}var _0xbf60a1=_0x3b9f23[_0x4d7c7c('0x8fd')][_0x4d7c7c('0x674')](),_0x3b0ca6=function(_0x53bb70){var _0x3d8ad4=_0x4d7c7c;_0x451d02(_0x1dfc6d,_0x53bb70);var _0x2c82fc=_0x893722(_0x1dfc6d);function _0x1dfc6d(_0x341e41,_0x51890a,_0x2d5345,_0x178632){var _0x532369=_0x1c0e,_0x502f50;return _0x18b47c(this,_0x1dfc6d),(_0x502f50=_0x2c82fc[_0x532369('0x964')](this,_0x341e41,_0x51890a,_0x2d5345,_0x178632))[_0x532369('0x3c8')]=null,_0x502f50[_0x532369('0xc1d')]=null,_0x502f50[_0x532369('0xd8')]=!0x1,_0x502f50;}return _0x45bad1(_0x1dfc6d,[{'key':_0x3d8ad4('0x433'),'value':function(){var _0x6c4f0e=_0x3d8ad4;return['id',_0x6c4f0e('0xb52'),_0x6c4f0e('0xb36'),_0x6c4f0e('0x283'),'status'];}},{'key':_0x3d8ad4('0x445'),'value':function(){var _0x54c18b=_0x3d8ad4;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x54c18b('0xb95')},{'sTitle':_0x54c18b('0x329')},{'sTitle':_0x54c18b('0x40b')},{'sTitle':_0x54c18b('0x2ff')}];}},{'key':_0x3d8ad4('0x73d'),'value':function(){var _0x46dd44=_0x3d8ad4;return[['id',{'label':'ID','type':_0x46dd44('0xa05')}],['date_start',{'label':_0x46dd44('0x531'),'type':'date','validation':''}],[_0x46dd44('0xb36'),{'label':_0x46dd44('0x281'),'type':_0x46dd44('0x9d2'),'validation':''}],[_0x46dd44('0x212'),{'label':_0x46dd44('0x19'),'type':_0x46dd44('0xbd5'),'validation':_0x46dd44('0x649')}]];}},{'key':'preProcessTableData','value':function(_0x588ed3){var _0x32df24=_0x3d8ad4,_0x377b00=_0x588ed3;return _0x377b00[0x1]=Date['parse'](_0x377b00[0x1])[_0x32df24('0x6e9')]('MMM\x20d,\x20yyyy\x20(dddd)'),_0x377b00[0x2]=Date[_0x32df24('0x22f')](_0x377b00[0x2])[_0x32df24('0x6e9')](_0x32df24('0xc97')),_0x377b00;}},{'key':_0x3d8ad4('0xcfa'),'value':function(_0x2f7002){var _0x331e34=_0x3d8ad4;this[_0x331e34('0xd8')]=_0x2f7002;}},{'key':_0x3d8ad4('0xf8'),'value':function(_0x4a45cb){var _0x5656b=_0x3d8ad4,_0x182c41=this['templates'][_0x5656b('0xcae')];$(_0x5656b('0x9e9'))['remove'](),$('#'['concat'](this[_0x5656b('0x316')](),_0x5656b('0x805')))[_0x5656b('0xd34')](_0x182c41),$('#'[_0x5656b('0x4c2')](this[_0x5656b('0x316')](),'Form'))[_0x5656b('0x462')](),$('#'[_0x5656b('0x4c2')](this[_0x5656b('0x316')]()))['hide'](),$(_0x5656b('0x185'))['html'](Date['parse'](_0x4a45cb[_0x5656b('0xb52')])['toString'](_0x5656b('0xc97'))),$(_0x5656b('0x118'))[_0x5656b('0xd34')](Date[_0x5656b('0x22f')](_0x4a45cb['date_end'])[_0x5656b('0x6e9')](_0x5656b('0xc97'))),this[_0x5656b('0xc1d')]=_0x4a45cb,this['getTimeEntries']();var _0x7fce00=Date[_0x5656b('0x22f')](_0x4a45cb[_0x5656b('0xb52')]);$('#EmployeeTimesheetBlock')[_0x5656b('0x6ff')]({'header':{'left':!0x1,'center':!0x1,'right':!0x1},'year':_0x7fce00['toString'](_0x5656b('0x950')),'month':_0x7fce00[_0x5656b('0x6e9')]('M'),'date':_0x7fce00[_0x5656b('0x6e9')]('d'),'defaultView':'basicWeek','height':0xc8,'editable':!0x1,'events':modJs[_0x5656b('0x7c1')](this[_0x5656b('0xc1d')]['employee']),'loading':function(_0x2eb5b9){var _0x1e8c38=_0x5656b;_0x2eb5b9?$(_0x1e8c38('0x59'))[_0x1e8c38('0x462')]():$(_0x1e8c38('0x59'))[_0x1e8c38('0xafe')]();},'dayClick':function(_0x1572cf,_0x4b4525,_0x450128,_0x46c5c8){var _0x23dd60=_0x5656b;modJs[_0x23dd60('0x280')](_0x1572cf['format']());},'eventClick':function(_0x314430,_0x6ace37,_0x24019b){var _0x2c5bf4=_0x5656b;modJs[_0x2c5bf4('0xb02')](_0x314430['id']);},'eventRender':function(_0x47470a,_0x358e2f){var _0x1923d8=_0x5656b;_0x358e2f[_0x1923d8('0x11c')](_0x1923d8('0x8c6'))[_0x1923d8('0x52')]();}}),$(_0x5656b('0x9e9'))[_0x5656b('0x6ff')](_0x5656b('0x524'),_0x7fce00),$('.fc-toolbar')['hide']();}},{'key':_0x3d8ad4('0x3df'),'value':function(_0x4e0acf,_0x65871f,_0x369c44,_0x21bcff){var _0x366619=_0x3d8ad4;$('#Qtsheet')['data'](_0x366619('0xa1c'),modJs[_0x366619('0x7dd')]),modJs=modJsList[_0x366619('0x89d')],modJs['setCurrentTimeSheetId'](_0x4e0acf),$(_0x366619('0x185'))[_0x366619('0xd34')](_0x369c44),$(_0x366619('0x118'))[_0x366619('0xd34')](_0x21bcff),$(_0x366619('0xbb'))['find'](_0x366619('0x718'))[_0x366619('0x11c')](_0x366619('0xaaf'))['hide'](),$(_0x366619('0xdbc'))[_0x366619('0x462')](),$('#Qtsheet')[_0x366619('0x462')](),$(_0x366619('0x8fa'))[_0x366619('0x462')](),'Submitted'===_0x65871f||_0x366619('0xa14')===_0x65871f?($('.completeBtnTable')[_0x366619('0xafe')](),$('.saveBtnTable')['hide']()):($(_0x366619('0x844'))[_0x366619('0x462')](),$('.saveBtnTable')['show']()),modJs[_0x366619('0xda6')]([]);}},{'key':_0x3d8ad4('0x7c1'),'value':function(_0x24e6b7){var _0x253568=_0x3d8ad4;return''['concat'](this[_0x253568('0x2ba')],_0x253568('0x36b'))[_0x253568('0x4c2')](this['table'],_0x253568('0x256'))[_0x253568('0x4c2')](_0x24e6b7);}},{'key':_0x3d8ad4('0x280'),'value':function(_0x5f2704){var _0x28a7c2=_0x3d8ad4,_0x28504d=_0x5f2704;if(_0x28504d['indexOf']('T')<0x0){var _0x5afcce=moment();_0x28504d=''['concat'](_0x28504d,'\x20')['concat'](_0x5afcce['format'](_0x28a7c2('0x6bb')));}var _0x57faf9=_0x28504d[_0x28a7c2('0x8f9')]('T','\x20'),_0x176872=moment(_0x57faf9);_0x176872[_0x28a7c2('0x970')](0x1,'h');var _0xb2c5e5=_0x176872[_0x28a7c2('0x5b6')](_0x28a7c2('0x4a0')),_0x3db021={};_0x3db021[_0x28a7c2('0x9d2')]=_0x5f2704,_0x3db021[_0x28a7c2('0xb52')]=_0x57faf9,_0x3db021['date_end']=_0xb2c5e5,this[_0x28a7c2('0xb02')](_0x3db021);}},{'key':_0x3d8ad4('0xb02'),'value':function(_0x9f64b1){var _0x1ea379=_0x3d8ad4;if('0'!==''[_0x1ea379('0x4c2')](this[_0x1ea379('0xd8')])){if(this[_0x1ea379('0x285')](_0x9f64b1),void 0x0!==_0x9f64b1['id']&&null!=_0x9f64b1['id']){var _0x485a64=_0x9f64b1['id'];$(_0x1ea379('0x17c'))['show'](),$(_0x1ea379('0x17c'))['off']()['on']('click',function(){var _0x3be538=_0x1ea379;return modJs[_0x3be538('0x222')](_0x485a64),!0x1;});}else $('.deleteBtnWorkSchedule')['remove']();}}},{'key':_0x3d8ad4('0x285'),'value':function(_0x360d95){var _0x29efc9=_0x3d8ad4;this[_0x29efc9('0x3c8')]=this[_0x29efc9('0x3a')];var _0xfe1e3f=modJsList[_0x29efc9('0x4c5')];$(_0x29efc9('0x677'))[_0x29efc9('0x7ae')]({'backdrop':'static','keyboard':!0x1}),_0xfe1e3f[_0x29efc9('0xc1d')]=this[_0x29efc9('0xc1d')],_0xfe1e3f[_0x29efc9('0xf8')](_0x360d95),_0xfe1e3f[_0x29efc9('0xc66')]=this[_0x29efc9('0x3a')];}},{'key':'closeTimeEntryDialog','value':function(){var _0x1d7db2=_0x3d8ad4;$('#TimeEntryModel')[_0x1d7db2('0x7ae')](_0x1d7db2('0xafe'));}},{'key':_0x3d8ad4('0x552'),'value':function(){var _0x4bda2d=_0x3d8ad4,_0x4a8b59={'id':this[_0x4bda2d('0x3a')],'sm':JSON[_0x4bda2d('0xaae')](modJsList[_0x4bda2d('0x4c5')][_0x4bda2d('0x766')]())},_0x540292=JSON[_0x4bda2d('0xaae')](_0x4a8b59),_0x5e8e86=[];_0x5e8e86[_0x4bda2d('0x61a')]=[],_0x5e8e86[_0x4bda2d('0x4a2')]=_0x4bda2d('0x58a'),_0x5e8e86['callBackFail']='getTimeEntriesFailCallBack',this[_0x4bda2d('0xca3')](_0x4bda2d('0x552'),_0x4bda2d('0xd88'),_0x540292,_0x5e8e86);}},{'key':_0x3d8ad4('0x58a'),'value':function(_0x1377fd){var _0xfa984e=_0x3d8ad4;for(var _0x13b5e7=_0x1377fd,_0x34e534='',_0x47c202=0x0;_0x47c202<_0x13b5e7['length'];_0x47c202++)try{var _0x34ca4e=_0xfa984e('0x400');_0x34ca4e=(_0x34ca4e=_0x34ca4e[_0xfa984e('0x8f9')](/_start_/g,Date[_0xfa984e('0x22f')](_0x13b5e7[_0x47c202][_0xfa984e('0xb52')])[_0xfa984e('0x6e9')](_0xfa984e('0xb13'))))[_0xfa984e('0x8f9')](/_end_/g,Date[_0xfa984e('0x22f')](_0x13b5e7[_0x47c202][_0xfa984e('0xb36')])['toString'](_0xfa984e('0xb13')));var _0x1ead05=Date[_0xfa984e('0x22f')](_0x13b5e7[_0x47c202][_0xfa984e('0xb36')])-Date['parse'](_0x13b5e7[_0x47c202][_0xfa984e('0xb52')]),_0x24d6c0=Math['round'](_0x1ead05/0xea60),_0x288f8d=_0x24d6c0%0x3c,_0x201877=(_0x24d6c0-_0x288f8d)/0x3c;_0x34ca4e=_0x34ca4e[_0xfa984e('0x8f9')](/_duration_/g,_0xfa984e('0xd60')[_0xfa984e('0x4c2')](_0x201877,_0xfa984e('0x2d5'))[_0xfa984e('0x4c2')](_0x288f8d,')')),_0x34e534+=_0x34ca4e=(_0x34ca4e=(_0x34ca4e=(_0x34ca4e=(_0x34ca4e=_0xfa984e('0x777')===_0x13b5e7[_0x47c202][_0xfa984e('0x1c4')]||null==_0x13b5e7[_0x47c202][_0xfa984e('0x1c4')]||void 0x0===_0x13b5e7[_0x47c202][_0xfa984e('0x1c4')]?_0x34ca4e[_0xfa984e('0x8f9')](/_project_/g,_0xfa984e('0x6a0')):_0x34ca4e[_0xfa984e('0x8f9')](/_project_/g,_0x13b5e7[_0x47c202][_0xfa984e('0x1c4')]))[_0xfa984e('0x8f9')](/_project_/g,_0x13b5e7[_0x47c202][_0xfa984e('0x1c4')]))[_0xfa984e('0x8f9')](/_details_/g,_0x13b5e7[_0x47c202][_0xfa984e('0x212')]))[_0xfa984e('0x8f9')](/_id_/g,_0x13b5e7[_0x47c202]['id']))['replace'](/_BASE_/g,this[_0xfa984e('0xc7e')]);}catch(_0x58eb14){}$(_0xfa984e('0x61f'))['html'](_0x34e534),_0xfa984e('0x459')===modJs[_0xfa984e('0x316')]()||'0'===''['concat'](this[_0xfa984e('0xd8')])||_0xfa984e('0xa14')===this['currentElement'][_0xfa984e('0x525')]?($(_0xfa984e('0x4eb'))[_0xfa984e('0xafe')](),$('.add_time_sheet_entry')[_0xfa984e('0xafe')]()):($(_0xfa984e('0x4eb'))['show'](),$(_0xfa984e('0x6e1'))[_0xfa984e('0x462')]()),$(_0xfa984e('0x9e9'))['fullCalendar']('refetchEvents');}},{'key':_0x3d8ad4('0xa1b'),'value':function(_0x1ac647){var _0x58e1a4=_0x3d8ad4;this[_0x58e1a4('0xaab')](_0x58e1a4('0x3fc'),'Error\x20occured\x20while\x20getting\x20timesheet\x20entries');}},{'key':_0x3d8ad4('0x148'),'value':function(_0xaab1db){var _0x5c2437=_0x3d8ad4,_0x221f5b={'id':_0xaab1db},_0x48ab3b=JSON[_0x5c2437('0xaae')](_0x221f5b),_0x456ed0=[];_0x456ed0[_0x5c2437('0x61a')]=[],_0x456ed0['callBackSuccess']=_0x5c2437('0x41f'),_0x456ed0['callBackFail']=_0x5c2437('0xa18'),this[_0x5c2437('0xca3')](_0x5c2437('0x148'),'modules=time_sheets',_0x48ab3b,_0x456ed0);}},{'key':_0x3d8ad4('0x41f'),'value':function(_0x354098){var _0x140bae=_0x3d8ad4;$(_0x140bae('0x8c5'))[_0x140bae('0x2a8')](_0x140bae('0x764'),_0x140bae('0x649')),$(_0x140bae('0x8c5'))[_0x140bae('0x52')](),this[_0x140bae('0xda6')]([]);}},{'key':_0x3d8ad4('0xa18'),'value':function(_0x3696e0){var _0x5e5fdf=_0x3d8ad4;this[_0x5e5fdf('0xaab')](_0x5e5fdf('0x3fc'),_0x3696e0);}},{'key':_0x3d8ad4('0x45e'),'value':function(_0x3cf4ca,_0x392795){var _0x1f84f9=_0x3d8ad4;if(''!==_0x392795&&null!=_0x392795&&void 0x0!==_0x392795){var _0x2effe6={'id':_0x3cf4ca,'status':_0x392795},_0x4ee2c0=JSON[_0x1f84f9('0xaae')](_0x2effe6),_0x4a9d69=[];_0x4a9d69[_0x1f84f9('0x61a')]=[],_0x4a9d69[_0x1f84f9('0x4a2')]=_0x1f84f9('0x102'),_0x4a9d69[_0x1f84f9('0xd61')]=_0x1f84f9('0x562'),this[_0x1f84f9('0xca3')](_0x1f84f9('0x6fc'),'modules=time_sheets',_0x4ee2c0,_0x4a9d69);}else this[_0x1f84f9('0xaab')](_0x1f84f9('0x8bf'),_0x1f84f9('0x791'));}},{'key':_0x3d8ad4('0x102'),'value':function(_0x200acf){var _0x461b95=_0x3d8ad4;this[_0x461b95('0xaab')]('Successful',_0x461b95('0xc8b')),this[_0x461b95('0xda6')]([]);}},{'key':'changeTimeSheetStatusFailCallBack','value':function(_0x5bbcb8){var _0x3e7b39=_0x3d8ad4;this[_0x3e7b39('0xaab')](_0x3e7b39('0x3fc'),_0x3e7b39('0x3d2'));}},{'key':'getActionButtonsHtml','value':function(_0x3e8b0f,_0x2ddf43){var _0xbe714d=_0x3d8ad4,_0x4f8a5f='';if(_0x4f8a5f='0'===''[_0xbe714d('0x4c2')](this['needStartEndTime'])?_0xbe714d('0xb93'):'_redoBtn_',_0xbe714d('0xcba')===this[_0xbe714d('0x316')]())_0x4f8a5f=_0x4f8a5f[_0xbe714d('0x8f9')](/_redoBtn_/g,'');else _0x4f8a5f=_0x4f8a5f[_0xbe714d('0x8f9')](/_redoBtn_/g,'');return _0x4f8a5f=(_0x4f8a5f=(_0x4f8a5f=(_0x4f8a5f=(_0x4f8a5f=_0x4f8a5f['replace'](/_id_/g,_0x3e8b0f))['replace'](/_sdate_/g,_0x2ddf43[0x1]))[_0xbe714d('0x8f9')](/_edate_/g,_0x2ddf43[0x2]))['replace'](/_status_/g,_0x2ddf43[0x4]))[_0xbe714d('0x8f9')](/_BASE_/g,this[_0xbe714d('0xc7e')]);}},{'key':_0x3d8ad4('0xcad'),'value':function(){var _0xf95385=_0x3d8ad4,_0x264f49=this;return{'aoColumnDefs':[{'fnRender':function(_0x270a9b,_0x3baf61){var _0x2d548b=_0x1c0e;return _0x264f49[_0x2d548b('0xc16')](_0x270a9b,_0x3baf61,0x1);},'aTargets':[0x1]},{'fnRender':function(_0x1bbddc,_0x55dd31){var _0x3a7797=_0x1c0e;return _0x264f49[_0x3a7797('0xc16')](_0x1bbddc,_0x55dd31,0x2);},'aTargets':[0x2]},{'fnRender':_0x264f49['getActionButtons'],'aTargets':[_0x264f49[_0xf95385('0x433')]()[_0xf95385('0x796')]]}]};}},{'key':_0x3d8ad4('0xc16'),'value':function(_0x15b0e1,_0x1de828,_0x792f63){var _0x3f1e80=_0x3d8ad4;return Date[_0x3f1e80('0x22f')](_0x1de828)[_0x3f1e80('0x6e9')](_0x3f1e80('0xc97'));}}]),_0x1dfc6d;}(_0x5cabc6['default']),_0x80b389=function(_0x4d9fb0){var _0x3a7ec4=_0x4d7c7c;_0x451d02(_0x50daa5,_0x4d9fb0);var _0x404174=_0x893722(_0x50daa5);function _0x50daa5(_0x2b83bf,_0x17b1ef,_0x5c79af,_0x5b0f13){var _0xf03c8e=_0x1c0e,_0x2d14e0;return _0x18b47c(this,_0x50daa5),(_0x2d14e0=_0x404174[_0xf03c8e('0x964')](this,_0x2b83bf,_0x17b1ef,_0x5c79af,_0x5b0f13))[_0xf03c8e('0x8fb')]=null,_0x2d14e0;}return _0x45bad1(_0x50daa5,[{'key':_0x3a7ec4('0x433'),'value':function(){var _0x51e46a=_0x3a7ec4;return['id',_0x51e46a('0x935'),_0x51e46a('0xb52'),'date_end',_0x51e46a('0x283'),_0x51e46a('0x525')];}},{'key':'getHeaders','value':function(){var _0x3d1f5b=_0x3a7ec4;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':'Employee','bSearchable':!0x0},{'sTitle':_0x3d1f5b('0xb95'),'bSearchable':!0x0},{'sTitle':_0x3d1f5b('0x329'),'bSearchable':!0x0},{'sTitle':_0x3d1f5b('0x40b'),'bSearchable':!0x1},{'sTitle':_0x3d1f5b('0x2ff')}];}},{'key':_0x3a7ec4('0x73d'),'value':function(){var _0x9979df=_0x3a7ec4;return[['id',{'label':'ID','type':_0x9979df('0xa05')}],[_0x9979df('0x935'),{'label':_0x9979df('0x66c'),'type':_0x9979df('0x510'),'allow-null':!0x1,'remote-source':['Employee','id','first_name+last_name']}],[_0x9979df('0xb52'),{'label':'TimeSheet\x20Start\x20Date','type':'date','validation':''}],[_0x9979df('0xb36'),{'label':_0x9979df('0x531'),'type':_0x9979df('0x9d2'),'validation':''}],[_0x9979df('0x212'),{'label':_0x9979df('0x19'),'type':_0x9979df('0xbd5'),'validation':'none'}]];}},{'key':_0x3a7ec4('0x932'),'value':function(){return!0x0;}},{'key':'getCustomSuccessCallBack','value':function(_0xe87989){var _0x3c246f=_0x3a7ec4;for(var _0x47d741=[],_0x4f1d5c=this[_0x3c246f('0x433')](),_0x5ca09c=0x0;_0x5ca09c<_0xe87989[_0x3c246f('0x796')];_0x5ca09c++){for(var _0x25db95=[],_0x4dc983=0x0;_0x4dc983<_0x4f1d5c['length'];_0x4dc983++)_0x25db95[_0x4dc983]=_0xe87989[_0x5ca09c][_0x4f1d5c[_0x4dc983]];_0x47d741[_0x3c246f('0xb2')](this[_0x3c246f('0x4fa')](_0x25db95));}this[_0x3c246f('0x5f1')]=_0x47d741,this['createTable'](this['getTableName']()),$('#'[_0x3c246f('0x4c2')](this[_0x3c246f('0x316')](),_0x3c246f('0x805')))['hide'](),$('#'[_0x3c246f('0x4c2')](this['getTableName']()))[_0x3c246f('0x462')]();}},{'key':_0x3a7ec4('0x4fa'),'value':function(_0x1df0df){var _0x4977ba=_0x3a7ec4,_0x411995=_0x1df0df;return _0x411995[0x2]=Date[_0x4977ba('0x22f')](_0x411995[0x2])[_0x4977ba('0x6e9')](_0x4977ba('0xc97')),_0x411995[0x3]=Date[_0x4977ba('0x22f')](_0x411995[0x3])[_0x4977ba('0x6e9')](_0x4977ba('0xc97')),_0x411995;}},{'key':_0x3a7ec4('0x2b8'),'value':function(_0x5a40bc,_0x2e0ffa){var _0x47448c=_0x3a7ec4;this[_0x47448c('0x3c8')]=_0x5a40bc,$(_0x47448c('0xd2'))['modal']('show'),$(_0x47448c('0x631'))['val'](_0x2e0ffa),this['timeSheetStatusChangeId']=_0x5a40bc;}},{'key':'closeTimeSheetStatus','value':function(){var _0x7acad3=_0x3a7ec4;$(_0x7acad3('0xd2'))[_0x7acad3('0x7ae')](_0x7acad3('0xafe'));}},{'key':_0x3a7ec4('0x6fc'),'value':function(){var _0x230bc4=_0x3a7ec4,_0x469c41=$(_0x230bc4('0x631'))['val']();this['changeTimeSheetStatusWithId'](this[_0x230bc4('0x8fb')],_0x469c41),this['closeTimeSheetStatus'](),this[_0x230bc4('0x8fb')]=null;}},{'key':_0x3a7ec4('0x388'),'value':function(_0x5a1adc,_0x1f7752){var _0x47f31f=_0x3a7ec4;return('0'===''[_0x47f31f('0x4c2')](this['needStartEndTime'])?'':_0x47f31f('0x6c2'))[_0x47f31f('0x8f9')](/_id_/g,_0x5a1adc)[_0x47f31f('0x8f9')](/_BASE_/g,this['baseUrl'])[_0x47f31f('0x8f9')](/_sdate_/g,_0x1f7752[0x1])[_0x47f31f('0x8f9')](/_edate_/g,_0x1f7752[0x2])['replace'](/_status_/g,_0x1f7752[0x4]);}},{'key':_0x3a7ec4('0xcad'),'value':function(){var _0x2202ee=_0x3a7ec4,_0x1db373=this;return{'aoColumnDefs':[{'fnRender':function(_0x3526ca,_0x25777f){var _0x3089b7=_0x1c0e;return _0x1db373[_0x3089b7('0xc16')](_0x3526ca,_0x25777f,0x2);},'aTargets':[0x2]},{'fnRender':function(_0xba1ad1,_0x2bbf62){var _0x24faf8=_0x1c0e;return _0x1db373[_0x24faf8('0xc16')](_0xba1ad1,_0x2bbf62,0x3);},'aTargets':[0x3]},{'fnRender':_0x1db373['getActionButtons'],'aTargets':[_0x1db373[_0x2202ee('0x433')]()[_0x2202ee('0x796')]]}]};}},{'key':'getFilters','value':function(){var _0x3a8e74=_0x3a7ec4;return[[_0x3a8e74('0x935'),{'label':_0x3a8e74('0x66c'),'type':_0x3a8e74('0xdc5'),'allow-null':!0x0,'null-label':'All\x20Employees','remote-source':[_0x3a8e74('0x66c'),'id',_0x3a8e74('0xa9e')]}],[_0x3a8e74('0x525'),{'label':_0x3a8e74('0x2ff'),'type':_0x3a8e74('0x510'),'allow-null':!0x0,'null-label':_0x3a8e74('0x9b2'),'source':[[_0x3a8e74('0x614'),_0x3a8e74('0x614')],[_0x3a8e74('0x197'),_0x3a8e74('0x197')],[_0x3a8e74('0xa14'),_0x3a8e74('0xa14')],[_0x3a8e74('0x36c'),_0x3a8e74('0x36c')]]}]];}}]),_0x50daa5;}(_0x3b0ca6),_0x409b4c=function(_0x5722f0){var _0x224419=_0x4d7c7c;_0x451d02(_0x272c5c,_0x5722f0);var _0x24e8d8=_0x893722(_0x272c5c);function _0x272c5c(_0x48520c,_0x27a6e7,_0x15cad6,_0x75c33d){var _0x22ac0a=_0x1c0e,_0x2a63a5;return _0x18b47c(this,_0x272c5c),(_0x2a63a5=_0x24e8d8[_0x22ac0a('0x964')](this,_0x48520c,_0x27a6e7,_0x15cad6,_0x75c33d))[_0x22ac0a('0xc66')]=null,_0x2a63a5[_0x22ac0a('0xc1d')]=null,_0x2a63a5[_0x22ac0a('0x584')]=0x1,_0x2a63a5[_0x22ac0a('0x7c2')]=[],_0x2a63a5;}return _0x45bad1(_0x272c5c,[{'key':_0x224419('0x433'),'value':function(){var _0x10a0b9=_0x224419;return['id','project',_0x10a0b9('0xb52'),_0x10a0b9('0x515'),'date_end',_0x10a0b9('0x6b4'),_0x10a0b9('0x212')];}},{'key':_0x224419('0x445'),'value':function(){var _0x5ceb4f=_0x224419;return[{'sTitle':'ID','bVisible':!0x1},{'sTitle':_0x5ceb4f('0x3b3')},{'sTitle':_0x5ceb4f('0xb95')},{'sTitle':_0x5ceb4f('0x3a0')},{'sTitle':_0x5ceb4f('0x329')},{'sTitle':'End\x20Time'},{'sTitle':_0x5ceb4f('0xd3a')}];}},{'key':_0x224419('0x73d'),'value':function(){var _0x2d474c=_0x224419;return[['id',{'label':'ID','type':_0x2d474c('0xa05')}],[_0x2d474c('0x1c4'),{'label':'Project','type':'select2','allow-null':!0x1,'remote-source':[_0x2d474c('0x3b3'),'id',_0x2d474c('0xce'),'getEmployeeProjects']}],[_0x2d474c('0x5be'),{'label':'Date','type':_0x2d474c('0x510'),'source':[]}],[_0x2d474c('0xb52'),{'label':_0x2d474c('0x3a0'),'type':_0x2d474c('0xd49'),'validation':''}],[_0x2d474c('0xb36'),{'label':_0x2d474c('0x557'),'type':_0x2d474c('0xd49'),'validation':''}],['details',{'label':'Details','type':_0x2d474c('0xbd5'),'validation':''}]];}},{'key':'getDates','value':function(_0x429adf,_0x21643a){var _0x2595c2=_0x224419;for(var _0x29f575=[],_0x5631db=_0x429adf;_0x5631db<=_0x21643a;)_0x29f575[_0x2595c2('0xb2')](new Date(_0x5631db)),_0x5631db=_0x5631db[_0x2595c2('0x970')]({'days':0x1});return _0x29f575;}},{'key':_0x224419('0xf8'),'value':function(_0x538aeb){var _0x2393e1=_0x224419,_0xea7bc1=this;this['initMasterDataReader'](),this['masterDataReader'][_0x2393e1('0x545')]()[_0x2393e1('0x13b')](function(){var _0x11d9b4=_0x2393e1;_0xea7bc1[_0x11d9b4('0x61')](_0x538aeb);});}},{'key':'_renderForm','value':function(_0x2488fa){var _0x3db463=_0x224419,_0x2a276d=this[_0x3db463('0x910')](_0x3db463('0x3a8'));_0x2a276d=_0x2a276d[_0x3db463('0x8f9')](/modJs/g,_0x3db463('0x32e'));for(var _0x3b7d95='',_0x1b46b8=this[_0x3db463('0x73d')](),_0xdbf640=0x0;_0xdbf640<_0x1b46b8[_0x3db463('0x796')];_0xdbf640++){var _0x246177=this[_0x3db463('0x87e')](_0x1b46b8[_0xdbf640][0x0]);if(''===_0x246177||void 0x0===_0x246177)_0x3b7d95+=this[_0x3db463('0x1c6')](_0x1b46b8[_0xdbf640]);else{var _0x1c3766=_0x2488fa[_0x246177];''!==_0x1c3766&&null!=_0x1c3766&&void 0x0!==_0x1c3766&&''!==_0x1c3766[_0x3db463('0x959')]()?_0x3b7d95+=this['renderFormField'](JSON[_0x3db463('0x22f')](_0x1c3766)):_0x3b7d95+=this[_0x3db463('0x1c6')](_0x1b46b8[_0xdbf640]);}}for(var _0x560c52='',_0x4998eb=0x0;_0x4998eb')[_0x3db463('0x4c2')](_0x95eb41[0x1],_0x3db463('0xd7f'));}_0x2a276d=(_0x2a276d=_0x2a276d[_0x3db463('0x8f9')](/_id_/g,''['concat'](this[_0x3db463('0x316')](),_0x3db463('0x708'))))[_0x3db463('0x8f9')](/_fields_/g,_0x3b7d95),$('#'[_0x3db463('0x4c2')](this[_0x3db463('0x316')](),'Form'))['html'](_0x2a276d),$('#'['concat'](this[_0x3db463('0x316')](),_0x3db463('0x805')))[_0x3db463('0x462')](),$('#'['concat'](this['getTableName']()))[_0x3db463('0xafe')](),$('#'[_0x3db463('0x4c2')](this[_0x3db463('0x316')](),_0x3db463('0xa67')))['datepicker']({'viewMode':0x2}),$('#'[_0x3db463('0x4c2')](this['getTableName'](),_0x3db463('0xf2')))['datetimepicker']({'language':'en'}),$('#'[_0x3db463('0x4c2')](this[_0x3db463('0x316')](),_0x3db463('0x1fa')))[_0x3db463('0x7cf')]({'language':'en','pickDate':!0x1}),$('#'['concat'](this[_0x3db463('0x316')](),_0x3db463('0x208')))[_0x3db463('0xdc5')](),$(_0x3db463('0xcc9'))[_0x3db463('0xd34')](_0x560c52),void 0x0!==_0x2488fa&&null!=_0x2488fa&&this[_0x3db463('0x27d')](_0x2488fa);}},{'key':_0x224419('0x27d'),'value':function(_0x223161,_0x1fbe27,_0x5862fa){var _0x7d0c2b=_0x224419,_0x83a825=_0x1fbe27;null!=_0x83a825&&void 0x0!==_0x83a825&&''!==_0x83a825||(_0x83a825='#'['concat'](this[_0x7d0c2b('0x316')](),_0x7d0c2b('0x805'))),null!=_0x223161['id']&&void 0x0!==_0x223161['id']&&$(''[_0x7d0c2b('0x4c2')](_0x83a825,_0x7d0c2b('0xb92')))['val'](_0x223161['id']),null!=_0x223161[_0x7d0c2b('0x1c4')]&&void 0x0!==_0x223161[_0x7d0c2b('0x1c4')]&&$(''['concat'](_0x83a825,_0x7d0c2b('0x4e9')))[_0x7d0c2b('0xdc5')](_0x7d0c2b('0x6ae'),_0x223161[_0x7d0c2b('0x1c4')]),null!=_0x223161[_0x7d0c2b('0x9d2')]&&void 0x0!==_0x223161[_0x7d0c2b('0x9d2')]&&$(''[_0x7d0c2b('0x4c2')](_0x83a825,_0x7d0c2b('0x55e')))[_0x7d0c2b('0x6ae')](_0x223161[_0x7d0c2b('0x9d2')]);}},{'key':_0x224419('0x536'),'value':function(){var _0x163a05=_0x224419;$('#TimeEntryModel')[_0x163a05('0x7ae')](_0x163a05('0xafe'));}},{'key':_0x224419('0xce8'),'value':function(_0x41c224){var _0x1b9a0c=_0x224419;this[_0x1b9a0c('0x584')]=_0x41c224;}},{'key':_0x224419('0x4f'),'value':function(_0x827cb2){var _0x30ca55=_0x224419;this[_0x30ca55('0x7c2')]=_0x827cb2;}},{'key':_0x224419('0x18d'),'value':function(){var _0x2a43e2=_0x224419,_0xd37be0=new _0x3b9f23[(_0x2a43e2('0x8fd'))](''[_0x2a43e2('0x4c2')](this['getTableName'](),'_submit'),!0x0,{'ShowPopup':!0x1,'LabelErrorClass':'error'});if(_0xd37be0[_0x2a43e2('0x472')]()){var _0x5243b9=_0xd37be0[_0x2a43e2('0x4d3')]();_0x5243b9[_0x2a43e2('0x6c7')]=this[_0x2a43e2('0xc66')],_0x5243b9[_0x2a43e2('0x515')]=_0x5243b9[_0x2a43e2('0xb52')],_0x5243b9['time_end']=_0x5243b9[_0x2a43e2('0xb36')],_0x5243b9['date_start']=''[_0x2a43e2('0x4c2')](_0x5243b9['date_select'],'\x20')[_0x2a43e2('0x4c2')](_0x5243b9[_0x2a43e2('0xb52')]),_0x5243b9[_0x2a43e2('0xb36')]=''[_0x2a43e2('0x4c2')](_0x5243b9['date_select'],'\x20')[_0x2a43e2('0x4c2')](_0x5243b9[_0x2a43e2('0xb36')]);var _0x48e7cb=this['doCustomValidation'](_0x5243b9);if(null==_0x48e7cb){var _0x593462=$('#'[_0x2a43e2('0x4c2')](this[_0x2a43e2('0x316')](),_0x2a43e2('0x180')))[_0x2a43e2('0x6ae')]();null!=_0x593462&&void 0x0!==_0x593462&&''!==_0x593462&&(_0x5243b9['id']=_0x593462),this[_0x2a43e2('0x970')](_0x5243b9,[]),this['cancel']();}else $('#'[_0x2a43e2('0x4c2')](this[_0x2a43e2('0x316')](),'Form\x20.label'))['html'](_0x48e7cb),$('#'['concat'](this[_0x2a43e2('0x316')](),_0x2a43e2('0x71b')))[_0x2a43e2('0x462')]();}}},{'key':'doCustomValidation','value':function(_0x5de27a){var _0x6e309e=_0x224419,_0x106d08=Date[_0x6e309e('0x22f')](_0x5de27a[_0x6e309e('0xb52')]),_0x5e3c63=Date[_0x6e309e('0x22f')](_0x5de27a['date_end']);return-0x1!==_0x106d08[_0x6e309e('0xa04')](_0x5e3c63)?_0x6e309e('0xb1'):null;}},{'key':'addSuccessCallBack','value':function(_0x2c266a,_0x29260c){var _0x9ac064=_0x224419;this[_0x9ac064('0xda6')](_0x2c266a),modJs[_0x9ac064('0x552')]();}},{'key':'deleteRow','value':function(_0x227192){var _0x2069e4=_0x224419;this[_0x2069e4('0xa66')](_0x227192,[]);}},{'key':_0x224419('0x35f'),'value':function(_0x2ed4db,_0x36b973){var _0xd9e503=_0x224419;modJs[_0xd9e503('0x552')]();}}]),_0x272c5c;}(_0x5cabc6[_0x4d7c7c('0x8fd')]),_0x1a1e6f=function(_0x1e9290){var _0x46bb2c=_0x4d7c7c;_0x451d02(_0x57c6d8,_0x1e9290);var _0x2c3257=_0x893722(_0x57c6d8);function _0x57c6d8(_0x502a42,_0x448eb0,_0x5489dd,_0x31ceb8){var _0x5965d8=_0x1c0e,_0x2a724a;return _0x18b47c(this,_0x57c6d8),(_0x2a724a=_0x2c3257[_0x5965d8('0x964')](this,_0x502a42,_0x448eb0,_0x5489dd,_0x31ceb8))[_0x5965d8('0x40c')]={},_0x2a724a[_0x5965d8('0x3a')]=null,_0x2a724a;}return _0x45bad1(_0x57c6d8,[{'key':_0x46bb2c('0x3eb'),'value':function(_0x187894,_0xc9ec20,_0x1b6a9e){var _0x2861c8=_0x46bb2c;if(!_0xbf60a1[_0x2861c8('0x650')](_0x1b6a9e))return!0x1;var _0x53c615=parseFloat(_0x1b6a9e);if(_0x53c615<0x0||_0x53c615>0x18)return!0x1;var _0x4ca352=this['columnIDMap'][_0x187894[_0x2861c8('0x38')](_0x2861c8('0x734'))]+0x2,_0x4ea26d=0x0,_0x210d29=0x0;return $('#'['concat'](this[_0x2861c8('0x316')](),_0x2861c8('0x356'))['concat'](_0x4ca352,')'))[_0x2861c8('0xc63')](function(){var _0x2480ad=_0x2861c8,_0x1497ff=$(this)['data'](_0x2480ad('0x502')),_0x2021ba='';_0x2021ba=_0x187894['data'](_0x2480ad('0x502'))===_0x1497ff?_0x1b6a9e:$(this)[_0x2480ad('0xd34')](),-0x1!==_0x1497ff?_0xbf60a1[_0x2480ad('0x650')](_0x2021ba)&&(_0x4ea26d+=parseFloat(_0x2021ba),_0x187894[_0x2480ad('0x38')](_0x2480ad('0x502'))!==_0x1497ff&&(_0x210d29+=parseFloat(_0x2021ba))):_0x4ea26d>0x18?$(this)[_0x2480ad('0xd34')](_0x210d29):$(this)[_0x2480ad('0xd34')](_0x4ea26d);}),!(_0x4ea26d>0x18)&&(modJs[_0x2861c8('0x31c')](_0x187894[_0x2861c8('0x38')](_0x2861c8('0x734')),_0x187894['data']('rowId'),_0x1b6a9e),!0x0);}},{'key':_0x46bb2c('0xa3b'),'value':function(_0x13717d){var _0x5dbf8c=_0x46bb2c;this[_0x5dbf8c('0x3a')]=_0x13717d,this[_0x5dbf8c('0x40c')]={};}},{'key':'addAdditionalRequestData','value':function(_0xf6435e,_0x34a5fa){var _0x1238fd=_0x46bb2c;return(_0x1238fd('0x7ef')===_0xf6435e||_0x1238fd('0x5d9')===_0xf6435e||_0x1238fd('0xc9f')===_0xf6435e)&&(_0x34a5fa[_0x1238fd('0x3a')]=this[_0x1238fd('0x3a')]),_0x34a5fa;}},{'key':_0x46bb2c('0x8c'),'value':function(_0x4e1744){var _0x137115=_0x46bb2c;return _0x4e1744[_0x137115('0x34')](''),_0x4e1744;}},{'key':'getCSVData','value':function(){var _0x3416d2=_0x46bb2c;for(var _0x4748bb='',_0x3dcb3a=0x0;_0x3dcb3a=0x0||Object['prototype'][_0x19d01a('0x1a8')][_0x19d01a('0x964')](_0x241ad7,_0x3e524b)&&(_0x450ef3[_0x3e524b]=_0x241ad7[_0x3e524b]);return _0x450ef3;}(_0xc39930,[_0x45d38c('0x9b9'),'width',_0x45d38c('0x3e'),_0x45d38c('0xc76')]);return _0x120e05['default'][_0x45d38c('0x6b7')](_0x45d38c('0x1a0'),_0x559fda({'viewBox':_0x45d38c('0x56'),'style':_0x559fda({'fill':_0x4bf1bc,'width':_0x4467cf,'height':_0x11c7ce},_0x3ead69)},_0x1cfdb5),_0x120e05[_0x45d38c('0x8fd')][_0x45d38c('0x6b7')](_0x45d38c('0x7e7'),{'d':_0x45d38c('0x25')}));};},{'react':'react'}],0x61:[function(_0x16f522,_0x4daa12,_0x4f828){var _0x13705c=_0x38d28e;'use strict';Object['defineProperty'](_0x4f828,_0x13705c('0x8bc'),{'value':!0x0});var _0x1abb03,_0x4abd5c=Object['assign']||function(_0x2acddb){var _0xa71793=_0x13705c;for(var _0x4efca8=0x1;_0x4efca8=0x0||Object[_0x376811('0x539')][_0x376811('0x1a8')][_0x376811('0x964')](_0x391c8b,_0x339aa5)&&(_0x29f769[_0x339aa5]=_0x391c8b[_0x339aa5]);return _0x29f769;}(_0x60d345,['fill',_0x4e66f7('0x5f9'),_0x4e66f7('0x3e'),_0x4e66f7('0xc76')]);return _0x379cf0['default']['createElement'](_0x4e66f7('0x1a0'),_0x4abd5c({'viewBox':'0\x200\x2024\x2024','style':_0x4abd5c({'fill':_0x1abc86,'width':_0x23b19c,'height':_0xb8f118},_0x2e1def)},_0x40ce10),_0x379cf0[_0x4e66f7('0x8fd')][_0x4e66f7('0x6b7')](_0x4e66f7('0x7e7'),{'d':_0x4e66f7('0x172')}));};},{'react':'react'}],0x62:[function(_0x474c1b,_0x5bce3a,_0x439a94){var _0x1ee3de=_0x38d28e;_0x5bce3a['exports']=_0x474c1b(_0x1ee3de('0xb75'));},{'./lib/axios':0x64}],0x63:[function(_0x1345ec,_0x220e10,_0x1a31b6){var _0x3023e4=_0x38d28e;'use strict';var _0x2ff4af=_0x1345ec(_0x3023e4('0xd66')),_0xf8a9fd=_0x1345ec(_0x3023e4('0x9c3')),_0x97fd58=_0x1345ec(_0x3023e4('0xdb3')),_0x48b997=_0x1345ec('./../helpers/buildURL'),_0x1b9060=_0x1345ec(_0x3023e4('0x1dd')),_0x4c04be=_0x1345ec(_0x3023e4('0x6af')),_0x2e8dd5=_0x1345ec(_0x3023e4('0xb35')),_0xf2d286=_0x1345ec(_0x3023e4('0xa84'));_0x220e10[_0x3023e4('0xd7')]=function(_0xc1ea0c){return new Promise(function(_0xeb6223,_0x58b151){var _0x3b1da6=_0x1c0e,_0x2ca3da=_0xc1ea0c[_0x3b1da6('0x38')],_0x3acd89=_0xc1ea0c[_0x3b1da6('0x4cd')];_0x2ff4af['isFormData'](_0x2ca3da)&&delete _0x3acd89[_0x3b1da6('0xb04')],(_0x2ff4af['isBlob'](_0x2ca3da)||_0x2ff4af[_0x3b1da6('0x9b')](_0x2ca3da))&&_0x2ca3da['type']&&delete _0x3acd89['Content-Type'];var _0x59c072=new XMLHttpRequest();if(_0xc1ea0c[_0x3b1da6('0x873')]){var _0x5a32a7=_0xc1ea0c[_0x3b1da6('0x873')][_0x3b1da6('0x7f5')]||'',_0x134863=unescape(encodeURIComponent(_0xc1ea0c[_0x3b1da6('0x873')][_0x3b1da6('0x369')]))||'';_0x3acd89[_0x3b1da6('0x474')]=_0x3b1da6('0x6ef')+btoa(_0x5a32a7+':'+_0x134863);}var _0x788469=_0x1b9060(_0xc1ea0c[_0x3b1da6('0x3d5')],_0xc1ea0c[_0x3b1da6('0x65b')]);if(_0x59c072[_0x3b1da6('0xcb4')](_0xc1ea0c[_0x3b1da6('0x127')]['toUpperCase'](),_0x48b997(_0x788469,_0xc1ea0c[_0x3b1da6('0x87f')],_0xc1ea0c[_0x3b1da6('0xc11')]),!0x0),_0x59c072['timeout']=_0xc1ea0c['timeout'],_0x59c072[_0x3b1da6('0x117')]=function(){var _0x1bfea2=_0x3b1da6;if(_0x59c072&&0x4===_0x59c072[_0x1bfea2('0xbad')]&&(0x0!==_0x59c072[_0x1bfea2('0x525')]||_0x59c072[_0x1bfea2('0x926')]&&0x0===_0x59c072[_0x1bfea2('0x926')][_0x1bfea2('0xcd8')](_0x1bfea2('0x3f0')))){var _0x2993a8=_0x1bfea2('0x961')in _0x59c072?_0x4c04be(_0x59c072['getAllResponseHeaders']()):null,_0xa5839e={'data':_0xc1ea0c['responseType']&&_0x1bfea2('0x941')!==_0xc1ea0c['responseType']?_0x59c072[_0x1bfea2('0x6a7')]:_0x59c072['responseText'],'status':_0x59c072[_0x1bfea2('0x525')],'statusText':_0x59c072['statusText'],'headers':_0x2993a8,'config':_0xc1ea0c,'request':_0x59c072};_0xf8a9fd(_0xeb6223,_0x58b151,_0xa5839e),_0x59c072=null;}},_0x59c072[_0x3b1da6('0x835')]=function(){var _0xa7b430=_0x3b1da6;_0x59c072&&(_0x58b151(_0xf2d286('Request\x20aborted',_0xc1ea0c,_0xa7b430('0x87d'),_0x59c072)),_0x59c072=null);},_0x59c072[_0x3b1da6('0x4df')]=function(){var _0x56741c=_0x3b1da6;_0x58b151(_0xf2d286(_0x56741c('0xb50'),_0xc1ea0c,null,_0x59c072)),_0x59c072=null;},_0x59c072[_0x3b1da6('0xcaf')]=function(){var _0x6cfaea=_0x3b1da6,_0x288fa1='timeout\x20of\x20'+_0xc1ea0c[_0x6cfaea('0xd6e')]+_0x6cfaea('0xafd');_0xc1ea0c[_0x6cfaea('0x177')]&&(_0x288fa1=_0xc1ea0c[_0x6cfaea('0x177')]),_0x58b151(_0xf2d286(_0x288fa1,_0xc1ea0c,'ECONNABORTED',_0x59c072)),_0x59c072=null;},_0x2ff4af['isStandardBrowserEnv']()){var _0x5096a2=(_0xc1ea0c[_0x3b1da6('0x9d8')]||_0x2e8dd5(_0x788469))&&_0xc1ea0c[_0x3b1da6('0x96a')]?_0x97fd58['read'](_0xc1ea0c[_0x3b1da6('0x96a')]):void 0x0;_0x5096a2&&(_0x3acd89[_0xc1ea0c[_0x3b1da6('0x55c')]]=_0x5096a2);}if('setRequestHeader'in _0x59c072&&_0x2ff4af[_0x3b1da6('0xc21')](_0x3acd89,function(_0x36ef42,_0x16dede){var _0x4459f1=_0x3b1da6;void 0x0===_0x2ca3da&&_0x4459f1('0x702')===_0x16dede[_0x4459f1('0x2f5')]()?delete _0x3acd89[_0x16dede]:_0x59c072[_0x4459f1('0x7a0')](_0x16dede,_0x36ef42);}),_0x2ff4af[_0x3b1da6('0x2f7')](_0xc1ea0c['withCredentials'])||(_0x59c072[_0x3b1da6('0x9d8')]=!!_0xc1ea0c[_0x3b1da6('0x9d8')]),_0xc1ea0c[_0x3b1da6('0xa6e')])try{_0x59c072[_0x3b1da6('0xa6e')]=_0xc1ea0c[_0x3b1da6('0xa6e')];}catch(_0xe653f7){if(_0x3b1da6('0xa0f')!==_0xc1ea0c[_0x3b1da6('0xa6e')])throw _0xe653f7;}_0x3b1da6('0xa25')==typeof _0xc1ea0c[_0x3b1da6('0x76d')]&&_0x59c072['addEventListener']('progress',_0xc1ea0c['onDownloadProgress']),_0x3b1da6('0xa25')==typeof _0xc1ea0c[_0x3b1da6('0xa6')]&&_0x59c072[_0x3b1da6('0x9a5')]&&_0x59c072[_0x3b1da6('0x9a5')][_0x3b1da6('0xa89')]('progress',_0xc1ea0c[_0x3b1da6('0xa6')]),_0xc1ea0c[_0x3b1da6('0x293')]&&_0xc1ea0c[_0x3b1da6('0x293')][_0x3b1da6('0x402')][_0x3b1da6('0x13b')](function(_0x20c7ea){var _0x5aa4d4=_0x3b1da6;_0x59c072&&(_0x59c072[_0x5aa4d4('0xd30')](),_0x58b151(_0x20c7ea),_0x59c072=null);}),_0x2ca3da||(_0x2ca3da=null),_0x59c072[_0x3b1da6('0xde1')](_0x2ca3da);});};},{'../core/buildFullPath':0x6a,'../core/createError':0x6b,'./../core/settle':0x6f,'./../helpers/buildURL':0x73,'./../helpers/cookies':0x75,'./../helpers/isURLSameOrigin':0x77,'./../helpers/parseHeaders':0x79,'./../utils':0x7b}],0x64:[function(_0xbbbf0f,_0x55bf4c,_0x957677){var _0x256a9c=_0x38d28e;'use strict';var _0x249a86=_0xbbbf0f(_0x256a9c('0x25c')),_0x112dbe=_0xbbbf0f(_0x256a9c('0x876')),_0x27a7ae=_0xbbbf0f(_0x256a9c('0x991')),_0x484ac3=_0xbbbf0f('./core/mergeConfig');function _0x60503a(_0x5d7da5){var _0x596a1d=_0x256a9c,_0x12c4ed=new _0x27a7ae(_0x5d7da5),_0x452640=_0x112dbe(_0x27a7ae[_0x596a1d('0x539')][_0x596a1d('0xb18')],_0x12c4ed);return _0x249a86[_0x596a1d('0x82')](_0x452640,_0x27a7ae['prototype'],_0x12c4ed),_0x249a86[_0x596a1d('0x82')](_0x452640,_0x12c4ed),_0x452640;}var _0x3b7c16=_0x60503a(_0xbbbf0f(_0x256a9c('0x178')));_0x3b7c16[_0x256a9c('0x64')]=_0x27a7ae,_0x3b7c16[_0x256a9c('0x3e2')]=function(_0x47067d){var _0x24eeb8=_0x256a9c;return _0x60503a(_0x484ac3(_0x3b7c16[_0x24eeb8('0x10a')],_0x47067d));},_0x3b7c16[_0x256a9c('0x16a')]=_0xbbbf0f(_0x256a9c('0x565')),_0x3b7c16[_0x256a9c('0x5ed')]=_0xbbbf0f(_0x256a9c('0x2ad')),_0x3b7c16['isCancel']=_0xbbbf0f('./cancel/isCancel'),_0x3b7c16[_0x256a9c('0xb27')]=function(_0x1b324f){var _0x131eeb=_0x256a9c;return Promise[_0x131eeb('0xb27')](_0x1b324f);},_0x3b7c16[_0x256a9c('0xd9f')]=_0xbbbf0f(_0x256a9c('0x1fd')),_0x55bf4c['exports']=_0x3b7c16,_0x55bf4c[_0x256a9c('0xd7')][_0x256a9c('0x8fd')]=_0x3b7c16;},{'./cancel/Cancel':0x65,'./cancel/CancelToken':0x66,'./cancel/isCancel':0x67,'./core/Axios':0x68,'./core/mergeConfig':0x6e,'./defaults':0x71,'./helpers/bind':0x72,'./helpers/spread':0x7a,'./utils':0x7b}],0x65:[function(_0xf16cda,_0x1796d3,_0xaba771){var _0x3e0c87=_0x38d28e;'use strict';function _0x23c84a(_0x26522c){var _0x434d5a=_0x1c0e;this[_0x434d5a('0xb0a')]=_0x26522c;}_0x23c84a[_0x3e0c87('0x539')]['toString']=function(){var _0x3267de=_0x3e0c87;return _0x3267de('0x16a')+(this[_0x3267de('0xb0a')]?':\x20'+this[_0x3267de('0xb0a')]:'');},_0x23c84a[_0x3e0c87('0x539')][_0x3e0c87('0xb40')]=!0x0,_0x1796d3[_0x3e0c87('0xd7')]=_0x23c84a;},{}],0x66:[function(_0x343fa2,_0x77668b,_0x581a31){var _0x3e2500=_0x38d28e;'use strict';var _0x3f2d6d=_0x343fa2(_0x3e2500('0x2f8'));function _0x2dd44a(_0x6652ce){var _0xd2f15f=_0x3e2500;if(_0xd2f15f('0xa25')!=typeof _0x6652ce)throw new TypeError(_0xd2f15f('0x3e6'));var _0x2a8d1a;this['promise']=new Promise(function(_0x423fd8){_0x2a8d1a=_0x423fd8;});var _0x1a7670=this;_0x6652ce(function(_0x488f41){var _0x3d3d10=_0xd2f15f;_0x1a7670[_0x3d3d10('0x997')]||(_0x1a7670['reason']=new _0x3f2d6d(_0x488f41),_0x2a8d1a(_0x1a7670['reason']));});}_0x2dd44a[_0x3e2500('0x539')][_0x3e2500('0x7e8')]=function(){if(this['reason'])throw this['reason'];},_0x2dd44a[_0x3e2500('0x22c')]=function(){var _0x3d9532;return{'token':new _0x2dd44a(function(_0x229793){_0x3d9532=_0x229793;}),'cancel':_0x3d9532};},_0x77668b[_0x3e2500('0xd7')]=_0x2dd44a;},{'./Cancel':0x65}],0x67:[function(_0x2c44bb,_0xbb57f8,_0x306985){var _0x2681da=_0x38d28e;'use strict';_0xbb57f8[_0x2681da('0xd7')]=function(_0x686253){var _0x2bc231=_0x2681da;return!(!_0x686253||!_0x686253[_0x2bc231('0xb40')]);};},{}],0x68:[function(_0x34dc27,_0x2577f9,_0x9f5db9){var _0x46862f=_0x38d28e;'use strict';var _0x4cd707=_0x34dc27(_0x46862f('0xd66')),_0x15dffe=_0x34dc27(_0x46862f('0x6b3')),_0x5ced2c=_0x34dc27(_0x46862f('0x594')),_0x2a79b6=_0x34dc27(_0x46862f('0x630')),_0x2c5ad6=_0x34dc27(_0x46862f('0x624'));function _0x400eb5(_0x42407c){var _0x13edda=_0x46862f;this[_0x13edda('0x10a')]=_0x42407c,this[_0x13edda('0x347')]={'request':new _0x5ced2c(),'response':new _0x5ced2c()};}_0x400eb5[_0x46862f('0x539')][_0x46862f('0xb18')]=function(_0x364123){var _0x12fa28=_0x46862f;'string'==typeof _0x364123?(_0x364123=arguments[0x1]||{})[_0x12fa28('0x65b')]=arguments[0x0]:_0x364123=_0x364123||{},(_0x364123=_0x2c5ad6(this[_0x12fa28('0x10a')],_0x364123))[_0x12fa28('0x127')]?_0x364123[_0x12fa28('0x127')]=_0x364123[_0x12fa28('0x127')][_0x12fa28('0x2f5')]():this[_0x12fa28('0x10a')][_0x12fa28('0x127')]?_0x364123[_0x12fa28('0x127')]=this[_0x12fa28('0x10a')]['method'][_0x12fa28('0x2f5')]():_0x364123['method']=_0x12fa28('0xda6');var _0x45b0ca=[_0x2a79b6,void 0x0],_0x3adc65=Promise['resolve'](_0x364123);for(this[_0x12fa28('0x347')]['request'][_0x12fa28('0xc21')](function(_0x110953){var _0x43a906=_0x12fa28;_0x45b0ca[_0x43a906('0x34')](_0x110953[_0x43a906('0x18f')],_0x110953[_0x43a906('0x3bc')]);}),this['interceptors'][_0x12fa28('0x6a7')][_0x12fa28('0xc21')](function(_0x66cf69){var _0x5501eb=_0x12fa28;_0x45b0ca[_0x5501eb('0xb2')](_0x66cf69['fulfilled'],_0x66cf69[_0x5501eb('0x3bc')]);});_0x45b0ca[_0x12fa28('0x796')];)_0x3adc65=_0x3adc65[_0x12fa28('0x13b')](_0x45b0ca[_0x12fa28('0x71d')](),_0x45b0ca[_0x12fa28('0x71d')]());return _0x3adc65;},_0x400eb5[_0x46862f('0x539')][_0x46862f('0x3ec')]=function(_0x4926ab){var _0x6f6eaf=_0x46862f;return _0x4926ab=_0x2c5ad6(this[_0x6f6eaf('0x10a')],_0x4926ab),_0x15dffe(_0x4926ab[_0x6f6eaf('0x65b')],_0x4926ab['params'],_0x4926ab[_0x6f6eaf('0xc11')])[_0x6f6eaf('0x8f9')](/^\?/,'');},_0x4cd707[_0x46862f('0xc21')]([_0x46862f('0xcf1'),_0x46862f('0xda6'),'head',_0x46862f('0xbd4')],function(_0x20f818){var _0x23cfe3=_0x46862f;_0x400eb5[_0x23cfe3('0x539')][_0x20f818]=function(_0xfd03d8,_0x304d18){return this['request'](_0x2c5ad6(_0x304d18||{},{'method':_0x20f818,'url':_0xfd03d8}));};}),_0x4cd707['forEach']([_0x46862f('0x63f'),_0x46862f('0x4ca'),_0x46862f('0x7a6')],function(_0x1d01c0){_0x400eb5['prototype'][_0x1d01c0]=function(_0x5b79f2,_0x181543,_0x3030db){return this['request'](_0x2c5ad6(_0x3030db||{},{'method':_0x1d01c0,'url':_0x5b79f2,'data':_0x181543}));};}),_0x2577f9[_0x46862f('0xd7')]=_0x400eb5;},{'../helpers/buildURL':0x73,'./../utils':0x7b,'./InterceptorManager':0x69,'./dispatchRequest':0x6c,'./mergeConfig':0x6e}],0x69:[function(_0x252906,_0x33e789,_0x881a10){var _0x74ad8b=_0x38d28e;'use strict';var _0x2d6d1f=_0x252906(_0x74ad8b('0xd66'));function _0x137ccd(){this['handlers']=[];}_0x137ccd[_0x74ad8b('0x539')][_0x74ad8b('0x1be')]=function(_0xf070fe,_0x50cfdc){var _0x9ce7b0=_0x74ad8b;return this[_0x9ce7b0('0xf1')][_0x9ce7b0('0xb2')]({'fulfilled':_0xf070fe,'rejected':_0x50cfdc}),this[_0x9ce7b0('0xf1')][_0x9ce7b0('0x796')]-0x1;},_0x137ccd[_0x74ad8b('0x539')][_0x74ad8b('0x7d9')]=function(_0x2d3f94){this['handlers'][_0x2d3f94]&&(this['handlers'][_0x2d3f94]=null);},_0x137ccd['prototype'][_0x74ad8b('0xc21')]=function(_0x38edfe){var _0x4aaa61=_0x74ad8b;_0x2d6d1f['forEach'](this[_0x4aaa61('0xf1')],function(_0x283240){null!==_0x283240&&_0x38edfe(_0x283240);});},_0x33e789['exports']=_0x137ccd;},{'./../utils':0x7b}],0x6a:[function(_0x500149,_0xb43253,_0x2de547){var _0x56fa6e=_0x38d28e;'use strict';var _0x1a83c4=_0x500149('../helpers/isAbsoluteURL'),_0x1b314e=_0x500149(_0x56fa6e('0x25a'));_0xb43253[_0x56fa6e('0xd7')]=function(_0x260749,_0xf2ab8){return _0x260749&&!_0x1a83c4(_0xf2ab8)?_0x1b314e(_0x260749,_0xf2ab8):_0xf2ab8;};},{'../helpers/combineURLs':0x74,'../helpers/isAbsoluteURL':0x76}],0x6b:[function(_0x40ae74,_0x414cfc,_0x429b76){var _0xff19a3=_0x38d28e;'use strict';var _0x15eaa4=_0x40ae74('./enhanceError');_0x414cfc[_0xff19a3('0xd7')]=function(_0xccf64,_0x45b51a,_0x3858ff,_0x2df06e,_0x3bb418){var _0x2e6277=new Error(_0xccf64);return _0x15eaa4(_0x2e6277,_0x45b51a,_0x3858ff,_0x2df06e,_0x3bb418);};},{'./enhanceError':0x6d}],0x6c:[function(_0x17247,_0x41cc6d,_0x245431){var _0x2aba62=_0x38d28e;'use strict';var _0x49c6e0=_0x17247('./../utils'),_0x209c8e=_0x17247('./transformData'),_0x423bce=_0x17247(_0x2aba62('0xa52')),_0x5cb4a2=_0x17247(_0x2aba62('0x955'));function _0x1607cd(_0x549939){var _0x40b3b4=_0x2aba62;_0x549939[_0x40b3b4('0x293')]&&_0x549939[_0x40b3b4('0x293')][_0x40b3b4('0x7e8')]();}_0x41cc6d[_0x2aba62('0xd7')]=function(_0x25872a){var _0x31c812=_0x2aba62;return _0x1607cd(_0x25872a),_0x25872a[_0x31c812('0x4cd')]=_0x25872a[_0x31c812('0x4cd')]||{},_0x25872a['data']=_0x209c8e(_0x25872a[_0x31c812('0x38')],_0x25872a['headers'],_0x25872a[_0x31c812('0xd29')]),_0x25872a['headers']=_0x49c6e0[_0x31c812('0x1d8')](_0x25872a[_0x31c812('0x4cd')][_0x31c812('0x3b4')]||{},_0x25872a['headers'][_0x25872a['method']]||{},_0x25872a['headers']),_0x49c6e0[_0x31c812('0xc21')]([_0x31c812('0xcf1'),_0x31c812('0xda6'),_0x31c812('0x6ee'),_0x31c812('0x63f'),_0x31c812('0x4ca'),_0x31c812('0x7a6'),'common'],function(_0x4465e5){delete _0x25872a['headers'][_0x4465e5];}),(_0x25872a[_0x31c812('0xdad')]||_0x5cb4a2[_0x31c812('0xdad')])(_0x25872a)[_0x31c812('0x13b')](function(_0x56de16){var _0x5860fb=_0x31c812;return _0x1607cd(_0x25872a),_0x56de16[_0x5860fb('0x38')]=_0x209c8e(_0x56de16[_0x5860fb('0x38')],_0x56de16['headers'],_0x25872a[_0x5860fb('0x975')]),_0x56de16;},function(_0x43ba66){var _0x35a734=_0x31c812;return _0x423bce(_0x43ba66)||(_0x1607cd(_0x25872a),_0x43ba66&&_0x43ba66[_0x35a734('0x6a7')]&&(_0x43ba66[_0x35a734('0x6a7')][_0x35a734('0x38')]=_0x209c8e(_0x43ba66[_0x35a734('0x6a7')][_0x35a734('0x38')],_0x43ba66['response'][_0x35a734('0x4cd')],_0x25872a[_0x35a734('0x975')]))),Promise[_0x35a734('0x300')](_0x43ba66);});};},{'../cancel/isCancel':0x67,'../defaults':0x71,'./../utils':0x7b,'./transformData':0x70}],0x6d:[function(_0x4597a5,_0x2cd53e,_0x390255){var _0xf5e653=_0x38d28e;'use strict';_0x2cd53e[_0xf5e653('0xd7')]=function(_0x1f430d,_0x3fc9b7,_0x3fe32c,_0x5e1cab,_0x3d3410){var _0x19f1e9=_0xf5e653;return _0x1f430d[_0x19f1e9('0x30e')]=_0x3fc9b7,_0x3fe32c&&(_0x1f430d[_0x19f1e9('0x227')]=_0x3fe32c),_0x1f430d[_0x19f1e9('0xb18')]=_0x5e1cab,_0x1f430d[_0x19f1e9('0x6a7')]=_0x3d3410,_0x1f430d[_0x19f1e9('0x6a3')]=!0x0,_0x1f430d['toJSON']=function(){var _0x398fd9=_0x19f1e9;return{'message':this['message'],'name':this[_0x398fd9('0xce')],'description':this[_0x398fd9('0x68')],'number':this[_0x398fd9('0x218')],'fileName':this[_0x398fd9('0xc27')],'lineNumber':this['lineNumber'],'columnNumber':this['columnNumber'],'stack':this[_0x398fd9('0x340')],'config':this[_0x398fd9('0x30e')],'code':this[_0x398fd9('0x227')]};},_0x1f430d;};},{}],0x6e:[function(_0x1b957f,_0x475976,_0x3da7ed){var _0xfd8a2f=_0x38d28e;'use strict';var _0x559b01=_0x1b957f('../utils');_0x475976[_0xfd8a2f('0xd7')]=function(_0x58d29b,_0x2101e6){var _0xb1e2cb=_0xfd8a2f;_0x2101e6=_0x2101e6||{};var _0x1f66b1={},_0x34d5a4=[_0xb1e2cb('0x65b'),_0xb1e2cb('0x127'),'data'],_0x2492dd=['headers',_0xb1e2cb('0x873'),'proxy',_0xb1e2cb('0x87f')],_0x4b841c=[_0xb1e2cb('0x3d5'),'transformRequest',_0xb1e2cb('0x975'),_0xb1e2cb('0xc11'),_0xb1e2cb('0xd6e'),_0xb1e2cb('0x4e2'),'withCredentials','adapter',_0xb1e2cb('0xa6e'),_0xb1e2cb('0x96a'),_0xb1e2cb('0x55c'),_0xb1e2cb('0xa6'),_0xb1e2cb('0x76d'),_0xb1e2cb('0x41e'),'maxContentLength','maxBodyLength','maxRedirects',_0xb1e2cb('0x2b1'),_0xb1e2cb('0x370'),_0xb1e2cb('0xb90'),'cancelToken',_0xb1e2cb('0xd50'),'responseEncoding'],_0x5131a7=[_0xb1e2cb('0xb59')];function _0x28cd1e(_0x2fb06a,_0x22d245){var _0x1293d3=_0xb1e2cb;return _0x559b01[_0x1293d3('0x67a')](_0x2fb06a)&&_0x559b01[_0x1293d3('0x67a')](_0x22d245)?_0x559b01['merge'](_0x2fb06a,_0x22d245):_0x559b01[_0x1293d3('0x67a')](_0x22d245)?_0x559b01[_0x1293d3('0x1d8')]({},_0x22d245):_0x559b01[_0x1293d3('0xff')](_0x22d245)?_0x22d245[_0x1293d3('0x5fe')]():_0x22d245;}function _0x401269(_0x1c58ae){var _0x52fac3=_0xb1e2cb;_0x559b01['isUndefined'](_0x2101e6[_0x1c58ae])?_0x559b01[_0x52fac3('0x2f7')](_0x58d29b[_0x1c58ae])||(_0x1f66b1[_0x1c58ae]=_0x28cd1e(void 0x0,_0x58d29b[_0x1c58ae])):_0x1f66b1[_0x1c58ae]=_0x28cd1e(_0x58d29b[_0x1c58ae],_0x2101e6[_0x1c58ae]);}_0x559b01[_0xb1e2cb('0xc21')](_0x34d5a4,function(_0x5dee71){var _0x31d164=_0xb1e2cb;_0x559b01[_0x31d164('0x2f7')](_0x2101e6[_0x5dee71])||(_0x1f66b1[_0x5dee71]=_0x28cd1e(void 0x0,_0x2101e6[_0x5dee71]));}),_0x559b01['forEach'](_0x2492dd,_0x401269),_0x559b01[_0xb1e2cb('0xc21')](_0x4b841c,function(_0x27ed54){var _0x32e772=_0xb1e2cb;_0x559b01[_0x32e772('0x2f7')](_0x2101e6[_0x27ed54])?_0x559b01[_0x32e772('0x2f7')](_0x58d29b[_0x27ed54])||(_0x1f66b1[_0x27ed54]=_0x28cd1e(void 0x0,_0x58d29b[_0x27ed54])):_0x1f66b1[_0x27ed54]=_0x28cd1e(void 0x0,_0x2101e6[_0x27ed54]);}),_0x559b01[_0xb1e2cb('0xc21')](_0x5131a7,function(_0x2e782d){_0x2e782d in _0x2101e6?_0x1f66b1[_0x2e782d]=_0x28cd1e(_0x58d29b[_0x2e782d],_0x2101e6[_0x2e782d]):_0x2e782d in _0x58d29b&&(_0x1f66b1[_0x2e782d]=_0x28cd1e(void 0x0,_0x58d29b[_0x2e782d]));});var _0x2ddbdc=_0x34d5a4[_0xb1e2cb('0x4c2')](_0x2492dd)['concat'](_0x4b841c)[_0xb1e2cb('0x4c2')](_0x5131a7),_0x2c78ab=Object[_0xb1e2cb('0xabc')](_0x58d29b)[_0xb1e2cb('0x4c2')](Object[_0xb1e2cb('0xabc')](_0x2101e6))[_0xb1e2cb('0x774')](function(_0x57c0c7){var _0x1002b4=_0xb1e2cb;return-0x1===_0x2ddbdc[_0x1002b4('0xcd8')](_0x57c0c7);});return _0x559b01[_0xb1e2cb('0xc21')](_0x2c78ab,_0x401269),_0x1f66b1;};},{'../utils':0x7b}],0x6f:[function(_0x41234d,_0x277117,_0x5a1118){var _0x2ee184=_0x38d28e;'use strict';var _0x2d38e5=_0x41234d(_0x2ee184('0x279'));_0x277117[_0x2ee184('0xd7')]=function(_0x1f6222,_0x5b5122,_0x379653){var _0x2bd61c=_0x2ee184,_0x10b2bf=_0x379653[_0x2bd61c('0x30e')][_0x2bd61c('0xb59')];_0x379653[_0x2bd61c('0x525')]&&_0x10b2bf&&!_0x10b2bf(_0x379653[_0x2bd61c('0x525')])?_0x5b5122(_0x2d38e5(_0x2bd61c('0x407')+_0x379653[_0x2bd61c('0x525')],_0x379653['config'],null,_0x379653[_0x2bd61c('0xb18')],_0x379653)):_0x1f6222(_0x379653);};},{'./createError':0x6b}],0x70:[function(_0x2bf841,_0x1b257f,_0x4bde19){var _0x3ca176=_0x38d28e;'use strict';var _0x14e0d3=_0x2bf841(_0x3ca176('0xd66'));_0x1b257f[_0x3ca176('0xd7')]=function(_0x258cf7,_0x4d21d3,_0x26426a){var _0xb617e1=_0x3ca176;return _0x14e0d3[_0xb617e1('0xc21')](_0x26426a,function(_0xdbec26){_0x258cf7=_0xdbec26(_0x258cf7,_0x4d21d3);}),_0x258cf7;};},{'./../utils':0x7b}],0x71:[function(_0x327292,_0x5d8670,_0x132c02){var _0x266415=_0x38d28e;(function(_0x4ef4ff){var _0x15ad03=_0x1c0e;'use strict';var _0x1f5511=_0x327292(_0x15ad03('0x25c')),_0xf258f1=_0x327292(_0x15ad03('0x2c1')),_0x360bd1={'Content-Type':'application/x-www-form-urlencoded'};function _0x3134e6(_0x545fb4,_0x30c186){var _0x722bf8=_0x15ad03;!_0x1f5511[_0x722bf8('0x2f7')](_0x545fb4)&&_0x1f5511['isUndefined'](_0x545fb4[_0x722bf8('0xb04')])&&(_0x545fb4[_0x722bf8('0xb04')]=_0x30c186);}var _0x122f74,_0x5052d9={'adapter':(_0x15ad03('0xbfa')!=typeof XMLHttpRequest?_0x122f74=_0x327292(_0x15ad03('0x203')):void 0x0!==_0x4ef4ff&&_0x15ad03('0xd4e')===Object[_0x15ad03('0x539')]['toString'][_0x15ad03('0x964')](_0x4ef4ff)&&(_0x122f74=_0x327292('./adapters/http')),_0x122f74),'transformRequest':[function(_0x4b3bf7,_0x37c996){var _0x29fa11=_0x15ad03;return _0xf258f1(_0x37c996,_0x29fa11('0xc30')),_0xf258f1(_0x37c996,_0x29fa11('0xb04')),_0x1f5511['isFormData'](_0x4b3bf7)||_0x1f5511[_0x29fa11('0x4b')](_0x4b3bf7)||_0x1f5511[_0x29fa11('0x20')](_0x4b3bf7)||_0x1f5511[_0x29fa11('0xd59')](_0x4b3bf7)||_0x1f5511['isFile'](_0x4b3bf7)||_0x1f5511[_0x29fa11('0xbfc')](_0x4b3bf7)?_0x4b3bf7:_0x1f5511[_0x29fa11('0x28a')](_0x4b3bf7)?_0x4b3bf7[_0x29fa11('0x7db')]:_0x1f5511[_0x29fa11('0xb5d')](_0x4b3bf7)?(_0x3134e6(_0x37c996,_0x29fa11('0xb4d')),_0x4b3bf7[_0x29fa11('0x6e9')]()):_0x1f5511[_0x29fa11('0xb23')](_0x4b3bf7)?(_0x3134e6(_0x37c996,_0x29fa11('0x2c5')),JSON['stringify'](_0x4b3bf7)):_0x4b3bf7;}],'transformResponse':[function(_0x3fa786){var _0x1fbd4b=_0x15ad03;if(_0x1fbd4b('0x3fd')==typeof _0x3fa786)try{_0x3fa786=JSON[_0x1fbd4b('0x22f')](_0x3fa786);}catch(_0x597c1f){}return _0x3fa786;}],'timeout':0x0,'xsrfCookieName':'XSRF-TOKEN','xsrfHeaderName':'X-XSRF-TOKEN','maxContentLength':-0x1,'maxBodyLength':-0x1,'validateStatus':function(_0x58a693){return _0x58a693>=0xc8&&_0x58a693<0x12c;}};_0x5052d9[_0x15ad03('0x4cd')]={'common':{'Accept':'application/json,\x20text/plain,\x20*/*'}},_0x1f5511[_0x15ad03('0xc21')]([_0x15ad03('0xcf1'),_0x15ad03('0xda6'),_0x15ad03('0x6ee')],function(_0x39c651){_0x5052d9['headers'][_0x39c651]={};}),_0x1f5511[_0x15ad03('0xc21')]([_0x15ad03('0x63f'),_0x15ad03('0x4ca'),_0x15ad03('0x7a6')],function(_0x3523e3){var _0x45a732=_0x15ad03;_0x5052d9[_0x45a732('0x4cd')][_0x3523e3]=_0x1f5511[_0x45a732('0x1d8')](_0x360bd1);}),_0x5d8670[_0x15ad03('0xd7')]=_0x5052d9;}[_0x266415('0x964')](this,_0x327292(_0x266415('0x130'))));},{'./adapters/http':0x63,'./adapters/xhr':0x63,'./helpers/normalizeHeaderName':0x78,'./utils':0x7b,'_process':0x6}],0x72:[function(_0x94ec5d,_0x3d9d83,_0x4c267e){var _0x1757be=_0x38d28e;'use strict';_0x3d9d83[_0x1757be('0xd7')]=function(_0x4d80ab,_0x4a521b){return function(){var _0x57a56f=_0x1c0e;for(var _0xc009d1=new Array(arguments[_0x57a56f('0x796')]),_0x44aa4b=0x0;_0x44aa4b<_0xc009d1[_0x57a56f('0x796')];_0x44aa4b++)_0xc009d1[_0x44aa4b]=arguments[_0x44aa4b];return _0x4d80ab[_0x57a56f('0x365')](_0x4a521b,_0xc009d1);};};},{}],0x73:[function(_0x19db20,_0x117527,_0x17f134){var _0x58a0f8=_0x38d28e;'use strict';var _0x398caf=_0x19db20(_0x58a0f8('0xd66'));function _0x3cfefe(_0x29bb67){var _0x33bb82=_0x58a0f8;return encodeURIComponent(_0x29bb67)['replace'](/%3A/gi,':')['replace'](/%24/g,'$')['replace'](/%2C/gi,',')['replace'](/%20/g,'+')[_0x33bb82('0x8f9')](/%5B/gi,'[')[_0x33bb82('0x8f9')](/%5D/gi,']');}_0x117527[_0x58a0f8('0xd7')]=function(_0x2c9611,_0x2edf85,_0x311039){var _0x47ec59=_0x58a0f8;if(!_0x2edf85)return _0x2c9611;var _0x1d62e1;if(_0x311039)_0x1d62e1=_0x311039(_0x2edf85);else{if(_0x398caf['isURLSearchParams'](_0x2edf85))_0x1d62e1=_0x2edf85[_0x47ec59('0x6e9')]();else{var _0x16abcd=[];_0x398caf['forEach'](_0x2edf85,function(_0x42b8f4,_0xa6b494){var _0x452735=_0x47ec59;null!=_0x42b8f4&&(_0x398caf[_0x452735('0xff')](_0x42b8f4)?_0xa6b494+='[]':_0x42b8f4=[_0x42b8f4],_0x398caf[_0x452735('0xc21')](_0x42b8f4,function(_0x2bcbd7){var _0x55ecac=_0x452735;_0x398caf[_0x55ecac('0x498')](_0x2bcbd7)?_0x2bcbd7=_0x2bcbd7[_0x55ecac('0x70d')]():_0x398caf['isObject'](_0x2bcbd7)&&(_0x2bcbd7=JSON['stringify'](_0x2bcbd7)),_0x16abcd[_0x55ecac('0xb2')](_0x3cfefe(_0xa6b494)+'='+_0x3cfefe(_0x2bcbd7));}));}),_0x1d62e1=_0x16abcd['join']('&');}}if(_0x1d62e1){var _0x15dda3=_0x2c9611[_0x47ec59('0xcd8')]('#');-0x1!==_0x15dda3&&(_0x2c9611=_0x2c9611[_0x47ec59('0x5fe')](0x0,_0x15dda3)),_0x2c9611+=(-0x1===_0x2c9611['indexOf']('?')?'?':'&')+_0x1d62e1;}return _0x2c9611;};},{'./../utils':0x7b}],0x74:[function(_0x38f81a,_0xcacf4,_0x2bf36a){var _0x399f41=_0x38d28e;'use strict';_0xcacf4[_0x399f41('0xd7')]=function(_0x16fe90,_0x2476e5){var _0x11b32b=_0x399f41;return _0x2476e5?_0x16fe90['replace'](/\/+$/,'')+'/'+_0x2476e5[_0x11b32b('0x8f9')](/^\/+/,''):_0x16fe90;};},{}],0x75:[function(_0x7118ad,_0x1cddda,_0x2d4c18){var _0x4f8988=_0x38d28e;'use strict';var _0x3f6742=_0x7118ad(_0x4f8988('0xd66'));_0x1cddda[_0x4f8988('0xd7')]=_0x3f6742[_0x4f8988('0x3e8')]()?{'write':function(_0x4f789b,_0xa5a3a5,_0x288bef,_0x556955,_0x516644,_0x57ab0b){var _0xfd15a5=_0x4f8988,_0x4bff87=[];_0x4bff87['push'](_0x4f789b+'='+encodeURIComponent(_0xa5a3a5)),_0x3f6742[_0xfd15a5('0xcea')](_0x288bef)&&_0x4bff87['push'](_0xfd15a5('0x429')+new Date(_0x288bef)[_0xfd15a5('0xa55')]()),_0x3f6742[_0xfd15a5('0x32f')](_0x556955)&&_0x4bff87['push'](_0xfd15a5('0x14')+_0x556955),_0x3f6742['isString'](_0x516644)&&_0x4bff87[_0xfd15a5('0xb2')](_0xfd15a5('0xdcb')+_0x516644),!0x0===_0x57ab0b&&_0x4bff87[_0xfd15a5('0xb2')]('secure'),document[_0xfd15a5('0xcb8')]=_0x4bff87[_0xfd15a5('0xc1')](';\x20');},'read':function(_0x56d139){var _0x312d05=_0x4f8988,_0x22d1ba=document[_0x312d05('0xcb8')][_0x312d05('0x523')](new RegExp(_0x312d05('0x1b5')+_0x56d139+_0x312d05('0xaad')));return _0x22d1ba?decodeURIComponent(_0x22d1ba[0x3]):null;},'remove':function(_0x5c9cf9){var _0x3e59dc=_0x4f8988;this[_0x3e59dc('0x99f')](_0x5c9cf9,'',Date[_0x3e59dc('0x3f4')]()-0x5265c00);}}:{'write':function(){},'read':function(){return null;},'remove':function(){}};},{'./../utils':0x7b}],0x76:[function(_0xc82813,_0xdcfe0c,_0x49d1c3){'use strict';_0xdcfe0c['exports']=function(_0x53dfb6){var _0x1a1b49=_0x1c0e;return/^([a-z][a-z\d\+\-\.]*:)?\/\//i[_0x1a1b49('0x96c')](_0x53dfb6);};},{}],0x77:[function(_0x434d38,_0x5df263,_0x4fe9e3){var _0x37c782=_0x38d28e;'use strict';var _0x385fec=_0x434d38(_0x37c782('0xd66'));_0x5df263[_0x37c782('0xd7')]=_0x385fec[_0x37c782('0x3e8')]()?function(){var _0x25c0e3=_0x37c782,_0x327d6a,_0x4517d8=/(msie|trident)/i[_0x25c0e3('0x96c')](navigator[_0x25c0e3('0x3ef')]),_0x85d948=document[_0x25c0e3('0x6b7')]('a');function _0x1c458c(_0x52032b){var _0x58e6b8=_0x25c0e3,_0x791373=_0x52032b;return _0x4517d8&&(_0x85d948['setAttribute'](_0x58e6b8('0x7ca'),_0x791373),_0x791373=_0x85d948['href']),_0x85d948[_0x58e6b8('0xb08')](_0x58e6b8('0x7ca'),_0x791373),{'href':_0x85d948[_0x58e6b8('0x7ca')],'protocol':_0x85d948['protocol']?_0x85d948['protocol'][_0x58e6b8('0x8f9')](/:$/,''):'','host':_0x85d948['host'],'search':_0x85d948[_0x58e6b8('0x7f')]?_0x85d948['search'][_0x58e6b8('0x8f9')](/^\?/,''):'','hash':_0x85d948[_0x58e6b8('0x24e')]?_0x85d948[_0x58e6b8('0x24e')][_0x58e6b8('0x8f9')](/^#/,''):'','hostname':_0x85d948[_0x58e6b8('0x8bb')],'port':_0x85d948[_0x58e6b8('0xaed')],'pathname':'/'===_0x85d948[_0x58e6b8('0x2e6')]['charAt'](0x0)?_0x85d948['pathname']:'/'+_0x85d948['pathname']};}return _0x327d6a=_0x1c458c(window[_0x25c0e3('0x1e8')][_0x25c0e3('0x7ca')]),function(_0x102b7b){var _0x17b8e1=_0x25c0e3,_0x5663de=_0x385fec[_0x17b8e1('0x32f')](_0x102b7b)?_0x1c458c(_0x102b7b):_0x102b7b;return _0x5663de[_0x17b8e1('0x485')]===_0x327d6a['protocol']&&_0x5663de[_0x17b8e1('0xc02')]===_0x327d6a[_0x17b8e1('0xc02')];};}():function(){return!0x0;};},{'./../utils':0x7b}],0x78:[function(_0xf98d9b,_0x30fb17,_0x82f1d0){'use strict';var _0x169a52=_0xf98d9b('../utils');_0x30fb17['exports']=function(_0x4ae27d,_0x2611a1){_0x169a52['forEach'](_0x4ae27d,function(_0xe00474,_0x52f80d){var _0x16794d=_0x1c0e;_0x52f80d!==_0x2611a1&&_0x52f80d[_0x16794d('0xca2')]()===_0x2611a1['toUpperCase']()&&(_0x4ae27d[_0x2611a1]=_0xe00474,delete _0x4ae27d[_0x52f80d]);});};},{'../utils':0x7b}],0x79:[function(_0x3e45f1,_0x2227b8,_0x227376){var _0x170952=_0x38d28e;'use strict';var _0x2f2f27=_0x3e45f1('./../utils'),_0x2be295=[_0x170952('0xb8'),_0x170952('0x190'),_0x170952('0x9ae'),'content-type',_0x170952('0xcd7'),_0x170952('0x7fd'),_0x170952('0x40e'),'host',_0x170952('0x7e2'),_0x170952('0x811'),'last-modified','location',_0x170952('0x237'),_0x170952('0x29'),_0x170952('0x73e'),'retry-after',_0x170952('0x274')];_0x2227b8['exports']=function(_0x4ae967){var _0x2ecf09=_0x170952,_0x3d3997,_0x57486c,_0x1ea07f,_0x8b1468={};return _0x4ae967?(_0x2f2f27[_0x2ecf09('0xc21')](_0x4ae967['split']('\x0a'),function(_0x1f4682){var _0x370954=_0x2ecf09;if(_0x1ea07f=_0x1f4682[_0x370954('0xcd8')](':'),_0x3d3997=_0x2f2f27[_0x370954('0x959')](_0x1f4682['substr'](0x0,_0x1ea07f))[_0x370954('0x2f5')](),_0x57486c=_0x2f2f27[_0x370954('0x959')](_0x1f4682[_0x370954('0x688')](_0x1ea07f+0x1)),_0x3d3997){if(_0x8b1468[_0x3d3997]&&_0x2be295[_0x370954('0xcd8')](_0x3d3997)>=0x0)return;_0x8b1468[_0x3d3997]=_0x370954('0x93e')===_0x3d3997?(_0x8b1468[_0x3d3997]?_0x8b1468[_0x3d3997]:[])[_0x370954('0x4c2')]([_0x57486c]):_0x8b1468[_0x3d3997]?_0x8b1468[_0x3d3997]+',\x20'+_0x57486c:_0x57486c;}}),_0x8b1468):_0x8b1468;};},{'./../utils':0x7b}],0x7a:[function(_0xa8a8dc,_0x11ff0b,_0x330b6b){var _0x2dcb49=_0x38d28e;'use strict';_0x11ff0b[_0x2dcb49('0xd7')]=function(_0x9d196e){return function(_0x53de8b){var _0x44a244=_0x1c0e;return _0x9d196e[_0x44a244('0x365')](null,_0x53de8b);};};},{}],0x7b:[function(_0x2fb539,_0x51727b,_0x1316fd){var _0x405728=_0x38d28e;'use strict';var _0x2f66a0=_0x2fb539(_0x405728('0x876')),_0x1f4d75=Object['prototype'][_0x405728('0x6e9')];function _0x15c716(_0xe300b2){var _0x57281d=_0x405728;return _0x57281d('0x1d2')===_0x1f4d75[_0x57281d('0x964')](_0xe300b2);}function _0x55c419(_0x3f3757){return void 0x0===_0x3f3757;}function _0x55730e(_0x11a60b){var _0x1ccd0c=_0x405728;return null!==_0x11a60b&&_0x1ccd0c('0xbfd')==typeof _0x11a60b;}function _0x5f16e4(_0x3809d9){var _0x15cb40=_0x405728;if(_0x15cb40('0x846')!==_0x1f4d75[_0x15cb40('0x964')](_0x3809d9))return!0x1;var _0x566e48=Object['getPrototypeOf'](_0x3809d9);return null===_0x566e48||_0x566e48===Object[_0x15cb40('0x539')];}function _0x2838b3(_0x46b870){var _0x2c9be3=_0x405728;return'[object\x20Function]'===_0x1f4d75[_0x2c9be3('0x964')](_0x46b870);}function _0x87a8ba(_0x192fe7,_0x1bf116){var _0x50ca16=_0x405728;if(null!=_0x192fe7){if(_0x50ca16('0xbfd')!=typeof _0x192fe7&&(_0x192fe7=[_0x192fe7]),_0x15c716(_0x192fe7))for(var _0x2ee4f4=0x0,_0x3da3d6=_0x192fe7[_0x50ca16('0x796')];_0x2ee4f4<_0x3da3d6;_0x2ee4f4++)_0x1bf116[_0x50ca16('0x964')](null,_0x192fe7[_0x2ee4f4],_0x2ee4f4,_0x192fe7);else for(var _0x8a9751 in _0x192fe7)Object[_0x50ca16('0x539')]['hasOwnProperty'][_0x50ca16('0x964')](_0x192fe7,_0x8a9751)&&_0x1bf116['call'](null,_0x192fe7[_0x8a9751],_0x8a9751,_0x192fe7);}}_0x51727b['exports']={'isArray':_0x15c716,'isArrayBuffer':function(_0xfa77cf){var _0xc7c6df=_0x405728;return'[object\x20ArrayBuffer]'===_0x1f4d75[_0xc7c6df('0x964')](_0xfa77cf);},'isBuffer':function(_0x58f61d){var _0x5ae3a5=_0x405728;return null!==_0x58f61d&&!_0x55c419(_0x58f61d)&&null!==_0x58f61d['constructor']&&!_0x55c419(_0x58f61d[_0x5ae3a5('0x63e')])&&'function'==typeof _0x58f61d[_0x5ae3a5('0x63e')][_0x5ae3a5('0x20')]&&_0x58f61d[_0x5ae3a5('0x63e')][_0x5ae3a5('0x20')](_0x58f61d);},'isFormData':function(_0x6e2438){return'undefined'!=typeof FormData&&_0x6e2438 instanceof FormData;},'isArrayBufferView':function(_0x75e9d7){var _0x5b6651=_0x405728;return _0x5b6651('0xbfa')!=typeof ArrayBuffer&&ArrayBuffer['isView']?ArrayBuffer[_0x5b6651('0x2c9')](_0x75e9d7):_0x75e9d7&&_0x75e9d7['buffer']&&_0x75e9d7[_0x5b6651('0x7db')]instanceof ArrayBuffer;},'isString':function(_0x33bc73){return'string'==typeof _0x33bc73;},'isNumber':function(_0x2a6794){return'number'==typeof _0x2a6794;},'isObject':_0x55730e,'isPlainObject':_0x5f16e4,'isUndefined':_0x55c419,'isDate':function(_0x83769b){var _0x1e8e3c=_0x405728;return _0x1e8e3c('0x574')===_0x1f4d75[_0x1e8e3c('0x964')](_0x83769b);},'isFile':function(_0x485b9d){var _0x1baa49=_0x405728;return _0x1baa49('0xd31')===_0x1f4d75[_0x1baa49('0x964')](_0x485b9d);},'isBlob':function(_0x1ada4c){var _0x3deccf=_0x405728;return _0x3deccf('0x68a')===_0x1f4d75[_0x3deccf('0x964')](_0x1ada4c);},'isFunction':_0x2838b3,'isStream':function(_0x182140){var _0x3cd1cd=_0x405728;return _0x55730e(_0x182140)&&_0x2838b3(_0x182140[_0x3cd1cd('0x17a')]);},'isURLSearchParams':function(_0x3ff4a2){var _0x1df105=_0x405728;return _0x1df105('0xbfa')!=typeof URLSearchParams&&_0x3ff4a2 instanceof URLSearchParams;},'isStandardBrowserEnv':function(){var _0x1e27e5=_0x405728;return(_0x1e27e5('0xbfa')==typeof navigator||_0x1e27e5('0x297')!==navigator[_0x1e27e5('0x4d7')]&&_0x1e27e5('0x141')!==navigator['product']&&'NS'!==navigator[_0x1e27e5('0x4d7')])&&(_0x1e27e5('0xbfa')!=typeof window&&_0x1e27e5('0xbfa')!=typeof document);},'forEach':_0x87a8ba,'merge':function _0x33a599(){var _0x115533=_0x405728,_0xbfd329={};function _0x4d72dd(_0x359a8b,_0x2f0af4){var _0x34d3f1=_0x1c0e;_0x5f16e4(_0xbfd329[_0x2f0af4])&&_0x5f16e4(_0x359a8b)?_0xbfd329[_0x2f0af4]=_0x33a599(_0xbfd329[_0x2f0af4],_0x359a8b):_0x5f16e4(_0x359a8b)?_0xbfd329[_0x2f0af4]=_0x33a599({},_0x359a8b):_0x15c716(_0x359a8b)?_0xbfd329[_0x2f0af4]=_0x359a8b[_0x34d3f1('0x5fe')]():_0xbfd329[_0x2f0af4]=_0x359a8b;}for(var _0x506ab0=0x0,_0x26723b=arguments[_0x115533('0x796')];_0x506ab0<_0x26723b;_0x506ab0++)_0x87a8ba(arguments[_0x506ab0],_0x4d72dd);return _0xbfd329;},'extend':function(_0x308788,_0x2386ef,_0x1389d9){return _0x87a8ba(_0x2386ef,function(_0x203769,_0x2b8cb3){var _0x20e1fb=_0x1c0e;_0x308788[_0x2b8cb3]=_0x1389d9&&_0x20e1fb('0xa25')==typeof _0x203769?_0x2f66a0(_0x203769,_0x1389d9):_0x203769;}),_0x308788;},'trim':function(_0x1a5c00){var _0x399ab5=_0x405728;return _0x1a5c00[_0x399ab5('0x8f9')](/^\s*/,'')['replace'](/\s*$/,'');},'stripBOM':function(_0x44e00c){return 0xfeff===_0x44e00c['charCodeAt'](0x0)&&(_0x44e00c=_0x44e00c['slice'](0x1)),_0x44e00c;}};},{'./helpers/bind':0x72}],0x7c:[function(_0x4d054c,_0x5b202e,_0x2db807){var _0x583bfb=_0x38d28e,_0x38256e=_0x4d054c('./_getNative')(_0x4d054c(_0x583bfb('0x947')),'DataView');_0x5b202e[_0x583bfb('0xd7')]=_0x38256e;},{'./_getNative':0xcf,'./_root':0xfa}],0x7d:[function(_0x449688,_0x48385e,_0x14095){var _0xae738e=_0x38d28e,_0x4e0d58=_0x449688(_0xae738e('0x5c9')),_0x1f2fc8=_0x449688(_0xae738e('0x2cf')),_0x2c8d9f=_0x449688(_0xae738e('0x359')),_0x30ce7e=_0x449688(_0xae738e('0xda9')),_0x4cf5f0=_0x449688(_0xae738e('0x1e5'));function _0x1f5c23(_0x16b1f9){var _0x2c0b5d=_0xae738e,_0x3e0001=-0x1,_0x1373f0=null==_0x16b1f9?0x0:_0x16b1f9[_0x2c0b5d('0x796')];for(this[_0x2c0b5d('0x45')]();++_0x3e0001<_0x1373f0;){var _0x46b8d8=_0x16b1f9[_0x3e0001];this[_0x2c0b5d('0x7f8')](_0x46b8d8[0x0],_0x46b8d8[0x1]);}}_0x1f5c23[_0xae738e('0x539')][_0xae738e('0x45')]=_0x4e0d58,_0x1f5c23[_0xae738e('0x539')][_0xae738e('0xcf1')]=_0x1f2fc8,_0x1f5c23['prototype']['get']=_0x2c8d9f,_0x1f5c23[_0xae738e('0x539')][_0xae738e('0xa77')]=_0x30ce7e,_0x1f5c23[_0xae738e('0x539')][_0xae738e('0x7f8')]=_0x4cf5f0,_0x48385e[_0xae738e('0xd7')]=_0x1f5c23;},{'./_hashClear':0xd7,'./_hashDelete':0xd8,'./_hashGet':0xd9,'./_hashHas':0xda,'./_hashSet':0xdb}],0x7e:[function(_0x51bbac,_0x356511,_0x3314fc){var _0x59a7d5=_0x38d28e,_0x2bfc78=_0x51bbac(_0x59a7d5('0x27b')),_0x3dea14=_0x51bbac(_0x59a7d5('0xa24')),_0x57d9d1=_0x51bbac(_0x59a7d5('0x2e7')),_0x5c461b=_0x51bbac(_0x59a7d5('0x44b')),_0x12b46a=_0x51bbac(_0x59a7d5('0x6dd'));function _0x288aaf(_0x34296e){var _0x2485c8=_0x59a7d5,_0x13117f=-0x1,_0x5963b9=null==_0x34296e?0x0:_0x34296e[_0x2485c8('0x796')];for(this[_0x2485c8('0x45')]();++_0x13117f<_0x5963b9;){var _0x100da2=_0x34296e[_0x13117f];this['set'](_0x100da2[0x0],_0x100da2[0x1]);}}_0x288aaf[_0x59a7d5('0x539')][_0x59a7d5('0x45')]=_0x2bfc78,_0x288aaf['prototype'][_0x59a7d5('0xcf1')]=_0x3dea14,_0x288aaf['prototype']['get']=_0x57d9d1,_0x288aaf[_0x59a7d5('0x539')]['has']=_0x5c461b,_0x288aaf[_0x59a7d5('0x539')][_0x59a7d5('0x7f8')]=_0x12b46a,_0x356511['exports']=_0x288aaf;},{'./_listCacheClear':0xe6,'./_listCacheDelete':0xe7,'./_listCacheGet':0xe8,'./_listCacheHas':0xe9,'./_listCacheSet':0xea}],0x7f:[function(_0x18afd3,_0x263898,_0x33cf42){var _0x2d4c11=_0x38d28e,_0x3d7daf=_0x18afd3(_0x2d4c11('0x727'))(_0x18afd3('./_root'),_0x2d4c11('0x486'));_0x263898[_0x2d4c11('0xd7')]=_0x3d7daf;},{'./_getNative':0xcf,'./_root':0xfa}],0x80:[function(_0x2c4338,_0x402ded,_0x2ff054){var _0x1fe2aa=_0x38d28e,_0x36f095=_0x2c4338(_0x1fe2aa('0x9a9')),_0x3d8ad6=_0x2c4338('./_mapCacheDelete'),_0x2f84ee=_0x2c4338(_0x1fe2aa('0xc0')),_0x277fb5=_0x2c4338(_0x1fe2aa('0x793')),_0x218426=_0x2c4338(_0x1fe2aa('0xc77'));function _0x4ed1f6(_0x2a46f0){var _0x5167df=_0x1fe2aa,_0x1ce165=-0x1,_0x26bf10=null==_0x2a46f0?0x0:_0x2a46f0['length'];for(this[_0x5167df('0x45')]();++_0x1ce165<_0x26bf10;){var _0x1d3827=_0x2a46f0[_0x1ce165];this['set'](_0x1d3827[0x0],_0x1d3827[0x1]);}}_0x4ed1f6[_0x1fe2aa('0x539')][_0x1fe2aa('0x45')]=_0x36f095,_0x4ed1f6[_0x1fe2aa('0x539')][_0x1fe2aa('0xcf1')]=_0x3d8ad6,_0x4ed1f6[_0x1fe2aa('0x539')][_0x1fe2aa('0xda6')]=_0x2f84ee,_0x4ed1f6['prototype'][_0x1fe2aa('0xa77')]=_0x277fb5,_0x4ed1f6['prototype']['set']=_0x218426,_0x402ded[_0x1fe2aa('0xd7')]=_0x4ed1f6;},{'./_mapCacheClear':0xeb,'./_mapCacheDelete':0xec,'./_mapCacheGet':0xed,'./_mapCacheHas':0xee,'./_mapCacheSet':0xef}],0x81:[function(_0x137fb9,_0x13bfe9,_0x18b810){var _0x383bc2=_0x38d28e,_0x40086f=_0x137fb9(_0x383bc2('0x727'))(_0x137fb9('./_root'),_0x383bc2('0xd4c'));_0x13bfe9[_0x383bc2('0xd7')]=_0x40086f;},{'./_getNative':0xcf,'./_root':0xfa}],0x82:[function(_0x5a5f5c,_0x6a08ac,_0x18934a){var _0x4bd33d=_0x38d28e,_0x303c20=_0x5a5f5c(_0x4bd33d('0x727'))(_0x5a5f5c('./_root'),_0x4bd33d('0xce3'));_0x6a08ac[_0x4bd33d('0xd7')]=_0x303c20;},{'./_getNative':0xcf,'./_root':0xfa}],0x83:[function(_0x14c6c8,_0x199009,_0x449c50){var _0x19efef=_0x38d28e,_0x555b9f=_0x14c6c8(_0x19efef('0x1e1')),_0x4e5aa4=_0x14c6c8(_0x19efef('0x8a0')),_0x39c3a9=_0x14c6c8(_0x19efef('0x98c'));function _0x121804(_0x3abfa5){var _0x5c387a=_0x19efef,_0xa64c6c=-0x1,_0x528cf6=null==_0x3abfa5?0x0:_0x3abfa5[_0x5c387a('0x796')];for(this[_0x5c387a('0x15d')]=new _0x555b9f();++_0xa64c6c<_0x528cf6;)this[_0x5c387a('0x970')](_0x3abfa5[_0xa64c6c]);}_0x121804['prototype'][_0x19efef('0x970')]=_0x121804[_0x19efef('0x539')][_0x19efef('0xb2')]=_0x4e5aa4,_0x121804[_0x19efef('0x539')][_0x19efef('0xa77')]=_0x39c3a9,_0x199009[_0x19efef('0xd7')]=_0x121804;},{'./_MapCache':0x80,'./_setCacheAdd':0xfc,'./_setCacheHas':0xfd}],0x84:[function(_0x275c0a,_0x1df616,_0x85c798){var _0x3ec734=_0x38d28e,_0x48cacf=_0x275c0a(_0x3ec734('0x9da')),_0x255ad8=_0x275c0a(_0x3ec734('0xb0b')),_0x582506=_0x275c0a(_0x3ec734('0x20a')),_0x318725=_0x275c0a(_0x3ec734('0x4ce')),_0x50b1e6=_0x275c0a('./_stackHas'),_0x20cc41=_0x275c0a(_0x3ec734('0x3b2'));function _0x45ffcf(_0x585916){var _0xdfb38d=_0x3ec734,_0x1ae6c1=this[_0xdfb38d('0x15d')]=new _0x48cacf(_0x585916);this[_0xdfb38d('0x2f9')]=_0x1ae6c1['size'];}_0x45ffcf[_0x3ec734('0x539')]['clear']=_0x255ad8,_0x45ffcf['prototype'][_0x3ec734('0xcf1')]=_0x582506,_0x45ffcf[_0x3ec734('0x539')][_0x3ec734('0xda6')]=_0x318725,_0x45ffcf[_0x3ec734('0x539')][_0x3ec734('0xa77')]=_0x50b1e6,_0x45ffcf[_0x3ec734('0x539')][_0x3ec734('0x7f8')]=_0x20cc41,_0x1df616[_0x3ec734('0xd7')]=_0x45ffcf;},{'./_ListCache':0x7e,'./_stackClear':0x101,'./_stackDelete':0x102,'./_stackGet':0x103,'./_stackHas':0x104,'./_stackSet':0x105}],0x85:[function(_0x75b3c5,_0x2fd0c2,_0x3586e7){var _0x4d57e1=_0x38d28e,_0x77dc10=_0x75b3c5('./_root')[_0x4d57e1('0x19a')];_0x2fd0c2[_0x4d57e1('0xd7')]=_0x77dc10;},{'./_root':0xfa}],0x86:[function(_0x2898b1,_0x3f2a80,_0x132377){var _0x3bf4f8=_0x38d28e,_0x14bb4e=_0x2898b1(_0x3bf4f8('0x947'))[_0x3bf4f8('0x958')];_0x3f2a80[_0x3bf4f8('0xd7')]=_0x14bb4e;},{'./_root':0xfa}],0x87:[function(_0x18e27d,_0x2a1cb0,_0x3a79fd){var _0x43b3ed=_0x38d28e,_0x23a0b6=_0x18e27d('./_getNative')(_0x18e27d('./_root'),'WeakMap');_0x2a1cb0[_0x43b3ed('0xd7')]=_0x23a0b6;},{'./_getNative':0xcf,'./_root':0xfa}],0x88:[function(_0x48f221,_0x132a30,_0x4b3701){var _0x36b4d2=_0x38d28e;_0x132a30[_0x36b4d2('0xd7')]=function(_0x262d38,_0x970aae,_0x580982){var _0xe09b23=_0x36b4d2;switch(_0x580982[_0xe09b23('0x796')]){case 0x0:return _0x262d38[_0xe09b23('0x964')](_0x970aae);case 0x1:return _0x262d38[_0xe09b23('0x964')](_0x970aae,_0x580982[0x0]);case 0x2:return _0x262d38['call'](_0x970aae,_0x580982[0x0],_0x580982[0x1]);case 0x3:return _0x262d38[_0xe09b23('0x964')](_0x970aae,_0x580982[0x0],_0x580982[0x1],_0x580982[0x2]);}return _0x262d38[_0xe09b23('0x365')](_0x970aae,_0x580982);};},{}],0x89:[function(_0x5bf1de,_0x92c022,_0x45437d){_0x92c022['exports']=function(_0x4295e1,_0x591aaa){var _0x32b291=_0x1c0e;for(var _0x5f5d6d=-0x1,_0xe32c61=null==_0x4295e1?0x0:_0x4295e1[_0x32b291('0x796')];++_0x5f5d6d<_0xe32c61&&!0x1!==_0x591aaa(_0x4295e1[_0x5f5d6d],_0x5f5d6d,_0x4295e1););return _0x4295e1;};},{}],0x8a:[function(_0x3cbe21,_0x474033,_0x2aa9bf){var _0x4c8dfd=_0x38d28e;_0x474033[_0x4c8dfd('0xd7')]=function(_0x32d9ba,_0x4f2043){var _0x433d31=_0x4c8dfd;for(var _0x2bda26=-0x1,_0x5ce785=null==_0x32d9ba?0x0:_0x32d9ba[_0x433d31('0x796')],_0x330946=0x0,_0x3d324d=[];++_0x2bda26<_0x5ce785;){var _0x1d90b8=_0x32d9ba[_0x2bda26];_0x4f2043(_0x1d90b8,_0x2bda26,_0x32d9ba)&&(_0x3d324d[_0x330946++]=_0x1d90b8);}return _0x3d324d;};},{}],0x8b:[function(_0x2c7ccc,_0x10dde0,_0xf82e56){var _0x5d6022=_0x38d28e,_0x5ee566=_0x2c7ccc(_0x5d6022('0x84f')),_0x55de06=_0x2c7ccc('./isArguments'),_0x127137=_0x2c7ccc('./isArray'),_0x56a17=_0x2c7ccc('./isBuffer'),_0x47fd98=_0x2c7ccc(_0x5d6022('0x6c')),_0x3320f8=_0x2c7ccc(_0x5d6022('0x9e')),_0x4558ae=Object[_0x5d6022('0x539')][_0x5d6022('0x1a8')];_0x10dde0['exports']=function(_0x3fee3c,_0x1a7c19){var _0x1e0c33=_0x5d6022,_0x51aa5f=_0x127137(_0x3fee3c),_0x5dc392=!_0x51aa5f&&_0x55de06(_0x3fee3c),_0x4ac6d1=!_0x51aa5f&&!_0x5dc392&&_0x56a17(_0x3fee3c),_0x1a1470=!_0x51aa5f&&!_0x5dc392&&!_0x4ac6d1&&_0x3320f8(_0x3fee3c),_0x44769c=_0x51aa5f||_0x5dc392||_0x4ac6d1||_0x1a1470,_0x55f696=_0x44769c?_0x5ee566(_0x3fee3c[_0x1e0c33('0x796')],String):[],_0x867a43=_0x55f696[_0x1e0c33('0x796')];for(var _0xa30064 in _0x3fee3c)!_0x1a7c19&&!_0x4558ae['call'](_0x3fee3c,_0xa30064)||_0x44769c&&(_0x1e0c33('0x796')==_0xa30064||_0x4ac6d1&&(_0x1e0c33('0x39b')==_0xa30064||'parent'==_0xa30064)||_0x1a1470&&('buffer'==_0xa30064||'byteLength'==_0xa30064||_0x1e0c33('0xc0c')==_0xa30064)||_0x47fd98(_0xa30064,_0x867a43))||_0x55f696[_0x1e0c33('0xb2')](_0xa30064);return _0x55f696;};},{'./_baseTimes':0xb2,'./_isIndex':0xdf,'./isArguments':0x113,'./isArray':0x114,'./isBuffer':0x117,'./isTypedArray':0x121}],0x8c:[function(_0x14f9de,_0x2f3595,_0x13379b){_0x2f3595['exports']=function(_0x3075cf,_0x31c17b){var _0x403eb4=_0x1c0e;for(var _0xe01440=-0x1,_0x2c51a4=null==_0x3075cf?0x0:_0x3075cf[_0x403eb4('0x796')],_0x28f79b=Array(_0x2c51a4);++_0xe01440<_0x2c51a4;)_0x28f79b[_0xe01440]=_0x31c17b(_0x3075cf[_0xe01440],_0xe01440,_0x3075cf);return _0x28f79b;};},{}],0x8d:[function(_0x4558ce,_0x265fd9,_0x27518e){var _0x1108a5=_0x38d28e;_0x265fd9[_0x1108a5('0xd7')]=function(_0x197662,_0x1857e8){var _0x419270=_0x1108a5;for(var _0xc2416c=-0x1,_0x5eb903=_0x1857e8[_0x419270('0x796')],_0x3d4fd6=_0x197662[_0x419270('0x796')];++_0xc2416c<_0x5eb903;)_0x197662[_0x3d4fd6+_0xc2416c]=_0x1857e8[_0xc2416c];return _0x197662;};},{}],0x8e:[function(_0x1c7ab2,_0x323635,_0x17707e){var _0x564647=_0x38d28e;_0x323635[_0x564647('0xd7')]=function(_0xc6ac71,_0x280821){var _0xcc0614=_0x564647;for(var _0x337880=-0x1,_0x50e581=null==_0xc6ac71?0x0:_0xc6ac71[_0xcc0614('0x796')];++_0x337880<_0x50e581;)if(_0x280821(_0xc6ac71[_0x337880],_0x337880,_0xc6ac71))return!0x0;return!0x1;};},{}],0x8f:[function(_0x32e492,_0xc3cd13,_0x2cd185){var _0x43928f=_0x38d28e,_0x2ec1dc=_0x32e492(_0x43928f('0xb09')),_0x133ea7=_0x32e492(_0x43928f('0xb66'));_0xc3cd13[_0x43928f('0xd7')]=function(_0x473025,_0x369239,_0x275f12){(void 0x0!==_0x275f12&&!_0x133ea7(_0x473025[_0x369239],_0x275f12)||void 0x0===_0x275f12&&!(_0x369239 in _0x473025))&&_0x2ec1dc(_0x473025,_0x369239,_0x275f12);};},{'./_baseAssignValue':0x94,'./eq':0x10d}],0x90:[function(_0x27a951,_0x174a44,_0x4e4ee3){var _0x3b788e=_0x38d28e,_0x56576c=_0x27a951(_0x3b788e('0xb09')),_0x5a1bad=_0x27a951(_0x3b788e('0xb66')),_0x46975f=Object[_0x3b788e('0x539')][_0x3b788e('0x1a8')];_0x174a44[_0x3b788e('0xd7')]=function(_0x4c01e4,_0x362f4c,_0x36e822){var _0x4292e8=_0x4c01e4[_0x362f4c];_0x46975f['call'](_0x4c01e4,_0x362f4c)&&_0x5a1bad(_0x4292e8,_0x36e822)&&(void 0x0!==_0x36e822||_0x362f4c in _0x4c01e4)||_0x56576c(_0x4c01e4,_0x362f4c,_0x36e822);};},{'./_baseAssignValue':0x94,'./eq':0x10d}],0x91:[function(_0x497336,_0xe8f50d,_0x26e934){var _0x44a73e=_0x38d28e,_0x556b47=_0x497336(_0x44a73e('0xb66'));_0xe8f50d[_0x44a73e('0xd7')]=function(_0x5128d0,_0x4ce6d9){for(var _0x4e2588=_0x5128d0['length'];_0x4e2588--;)if(_0x556b47(_0x5128d0[_0x4e2588][0x0],_0x4ce6d9))return _0x4e2588;return-0x1;};},{'./eq':0x10d}],0x92:[function(_0x36a042,_0x19cb57,_0x3bbbdd){var _0x538681=_0x38d28e,_0x5c7e0a=_0x36a042(_0x538681('0xba4')),_0x4b855f=_0x36a042(_0x538681('0x90d'));_0x19cb57['exports']=function(_0xc0e6ff,_0x1c4e5){return _0xc0e6ff&&_0x5c7e0a(_0x1c4e5,_0x4b855f(_0x1c4e5),_0xc0e6ff);};},{'./_copyObject':0xbf,'./keys':0x123}],0x93:[function(_0x3e1e6b,_0x2e86cb,_0x3945b9){var _0x30ecf1=_0x38d28e,_0x2555f8=_0x3e1e6b(_0x30ecf1('0xba4')),_0x21667b=_0x3e1e6b('./keysIn');_0x2e86cb[_0x30ecf1('0xd7')]=function(_0x7c8e02,_0x1528de){return _0x7c8e02&&_0x2555f8(_0x1528de,_0x21667b(_0x1528de),_0x7c8e02);};},{'./_copyObject':0xbf,'./keysIn':0x124}],0x94:[function(_0x52eaa3,_0x4aa165,_0x5a31ef){var _0x2f6b5d=_0x38d28e,_0x163945=_0x52eaa3(_0x2f6b5d('0x940'));_0x4aa165['exports']=function(_0x427122,_0x228931,_0x5b0e49){var _0x41a1a1=_0x2f6b5d;_0x41a1a1('0xcb9')==_0x228931&&_0x163945?_0x163945(_0x427122,_0x228931,{'configurable':!0x0,'enumerable':!0x0,'value':_0x5b0e49,'writable':!0x0}):_0x427122[_0x228931]=_0x5b0e49;};},{'./_defineProperty':0xc6}],0x95:[function(_0x17738d,_0x1f7b13,_0x5ed9a9){var _0x1e038a=_0x38d28e,_0x3789e7=_0x17738d('./_Stack'),_0x8d4f28=_0x17738d('./_arrayEach'),_0x1e3710=_0x17738d(_0x1e038a('0x1ce')),_0x3141f9=_0x17738d(_0x1e038a('0x2ed')),_0x405ff7=_0x17738d(_0x1e038a('0x8d6')),_0x1c0f83=_0x17738d(_0x1e038a('0xdc1')),_0x2bd9c2=_0x17738d('./_copyArray'),_0x3bac8a=_0x17738d(_0x1e038a('0x1bd')),_0xf69237=_0x17738d('./_copySymbolsIn'),_0x12c5f0=_0x17738d('./_getAllKeys'),_0x3a8a7a=_0x17738d(_0x1e038a('0xd22')),_0x58a365=_0x17738d(_0x1e038a('0x1b')),_0x97195=_0x17738d(_0x1e038a('0x2ab')),_0x507d73=_0x17738d(_0x1e038a('0x620')),_0x38741c=_0x17738d('./_initCloneObject'),_0x50802c=_0x17738d('./isArray'),_0x2408f9=_0x17738d(_0x1e038a('0x944')),_0x44cd04=_0x17738d(_0x1e038a('0x99e')),_0x3fa894=_0x17738d(_0x1e038a('0xc5e')),_0x289a43=_0x17738d(_0x1e038a('0x20f')),_0x5d2091=_0x17738d('./keys'),_0x392b19=_0x17738d(_0x1e038a('0x5e2')),_0x553031={};_0x553031[_0x1e038a('0xa8e')]=_0x553031['[object\x20Array]']=_0x553031['[object\x20ArrayBuffer]']=_0x553031[_0x1e038a('0x34e')]=_0x553031[_0x1e038a('0x11e')]=_0x553031['[object\x20Date]']=_0x553031[_0x1e038a('0x824')]=_0x553031['[object\x20Float64Array]']=_0x553031[_0x1e038a('0xd1a')]=_0x553031['[object\x20Int16Array]']=_0x553031[_0x1e038a('0x426')]=_0x553031[_0x1e038a('0x317')]=_0x553031[_0x1e038a('0x335')]=_0x553031[_0x1e038a('0x846')]=_0x553031['[object\x20RegExp]']=_0x553031[_0x1e038a('0xc6a')]=_0x553031[_0x1e038a('0xe')]=_0x553031[_0x1e038a('0x8ff')]=_0x553031['[object\x20Uint8Array]']=_0x553031['[object\x20Uint8ClampedArray]']=_0x553031[_0x1e038a('0xb0e')]=_0x553031['[object\x20Uint32Array]']=!0x0,_0x553031['[object\x20Error]']=_0x553031[_0x1e038a('0x57a')]=_0x553031[_0x1e038a('0xf5')]=!0x1,_0x1f7b13[_0x1e038a('0xd7')]=function _0x76b6ce(_0x25d260,_0x3d3437,_0x4e735c,_0x40efb2,_0x3614cd,_0x3f3ef5){var _0x22c7f9=_0x1e038a,_0x37861f,_0x4f3d44=0x1&_0x3d3437,_0x2141cd=0x2&_0x3d3437,_0x2804e1=0x4&_0x3d3437;if(_0x4e735c&&(_0x37861f=_0x3614cd?_0x4e735c(_0x25d260,_0x40efb2,_0x3614cd,_0x3f3ef5):_0x4e735c(_0x25d260)),void 0x0!==_0x37861f)return _0x37861f;if(!_0x3fa894(_0x25d260))return _0x25d260;var _0x144bc8=_0x50802c(_0x25d260);if(_0x144bc8){if(_0x37861f=_0x97195(_0x25d260),!_0x4f3d44)return _0x2bd9c2(_0x25d260,_0x37861f);}else{var _0x189dd0=_0x58a365(_0x25d260),_0x22140c=_0x22c7f9('0x57a')==_0x189dd0||'[object\x20GeneratorFunction]'==_0x189dd0;if(_0x2408f9(_0x25d260))return _0x1c0f83(_0x25d260,_0x4f3d44);if(_0x22c7f9('0x846')==_0x189dd0||'[object\x20Arguments]'==_0x189dd0||_0x22140c&&!_0x3614cd){if(_0x37861f=_0x2141cd||_0x22140c?{}:_0x38741c(_0x25d260),!_0x4f3d44)return _0x2141cd?_0xf69237(_0x25d260,_0x405ff7(_0x37861f,_0x25d260)):_0x3bac8a(_0x25d260,_0x3141f9(_0x37861f,_0x25d260));}else{if(!_0x553031[_0x189dd0])return _0x3614cd?_0x25d260:{};_0x37861f=_0x507d73(_0x25d260,_0x189dd0,_0x4f3d44);}}_0x3f3ef5||(_0x3f3ef5=new _0x3789e7());var _0x21e311=_0x3f3ef5['get'](_0x25d260);if(_0x21e311)return _0x21e311;_0x3f3ef5[_0x22c7f9('0x7f8')](_0x25d260,_0x37861f),_0x289a43(_0x25d260)?_0x25d260['forEach'](function(_0x3054db){_0x37861f['add'](_0x76b6ce(_0x3054db,_0x3d3437,_0x4e735c,_0x3054db,_0x25d260,_0x3f3ef5));}):_0x44cd04(_0x25d260)&&_0x25d260[_0x22c7f9('0xc21')](function(_0x45d309,_0x44c3fb){var _0x40b55c=_0x22c7f9;_0x37861f[_0x40b55c('0x7f8')](_0x44c3fb,_0x76b6ce(_0x45d309,_0x3d3437,_0x4e735c,_0x44c3fb,_0x25d260,_0x3f3ef5));});var _0x637e7f=_0x144bc8?void 0x0:(_0x2804e1?_0x2141cd?_0x3a8a7a:_0x12c5f0:_0x2141cd?_0x392b19:_0x5d2091)(_0x25d260);return _0x8d4f28(_0x637e7f||_0x25d260,function(_0x8545af,_0x31b368){_0x637e7f&&(_0x8545af=_0x25d260[_0x31b368=_0x8545af]),_0x1e3710(_0x37861f,_0x31b368,_0x76b6ce(_0x8545af,_0x3d3437,_0x4e735c,_0x31b368,_0x25d260,_0x3f3ef5));}),_0x37861f;};},{'./_Stack':0x84,'./_arrayEach':0x89,'./_assignValue':0x90,'./_baseAssign':0x92,'./_baseAssignIn':0x93,'./_cloneBuffer':0xb9,'./_copyArray':0xbe,'./_copySymbols':0xc0,'./_copySymbolsIn':0xc1,'./_getAllKeys':0xcb,'./_getAllKeysIn':0xcc,'./_getTag':0xd4,'./_initCloneArray':0xdc,'./_initCloneByTag':0xdd,'./_initCloneObject':0xde,'./isArray':0x114,'./isBuffer':0x117,'./isMap':0x11a,'./isObject':0x11b,'./isSet':0x11e,'./keys':0x123,'./keysIn':0x124}],0x96:[function(_0x3df54f,_0x326b0b,_0x328fd9){var _0x10ce0c=_0x38d28e,_0x5cbbbe=_0x3df54f(_0x10ce0c('0xc5e')),_0x542d14=Object[_0x10ce0c('0x3e2')],_0x37aa6f=function(){function _0x24ff0c(){}return function(_0x173b3e){var _0x4e69f9=_0x1c0e;if(!_0x5cbbbe(_0x173b3e))return{};if(_0x542d14)return _0x542d14(_0x173b3e);_0x24ff0c['prototype']=_0x173b3e;var _0x2e7864=new _0x24ff0c();return _0x24ff0c[_0x4e69f9('0x539')]=void 0x0,_0x2e7864;};}();_0x326b0b[_0x10ce0c('0xd7')]=_0x37aa6f;},{'./isObject':0x11b}],0x97:[function(_0x4d7c64,_0x137581,_0x314156){var _0x2bdfce=_0x38d28e,_0x55cc26=_0x4d7c64(_0x2bdfce('0x129')),_0x2c877b=_0x4d7c64('./_createBaseEach')(_0x55cc26);_0x137581[_0x2bdfce('0xd7')]=_0x2c877b;},{'./_baseForOwn':0x99,'./_createBaseEach':0xc4}],0x98:[function(_0xee62a3,_0x3faaf0,_0x43e2d3){var _0xa0a9f4=_0x38d28e,_0x3ce834=_0xee62a3(_0xa0a9f4('0x820'))();_0x3faaf0[_0xa0a9f4('0xd7')]=_0x3ce834;},{'./_createBaseFor':0xc5}],0x99:[function(_0x200d95,_0xc2b05d,_0x20f310){var _0x21ff72=_0x38d28e,_0x5138d2=_0x200d95(_0x21ff72('0x374')),_0x354887=_0x200d95(_0x21ff72('0x90d'));_0xc2b05d[_0x21ff72('0xd7')]=function(_0x5b6f4c,_0x1a2f44){return _0x5b6f4c&&_0x5138d2(_0x5b6f4c,_0x1a2f44,_0x354887);};},{'./_baseFor':0x98,'./keys':0x123}],0x9a:[function(_0x271059,_0x1c4606,_0x4697f3){var _0x5de494=_0x38d28e,_0x490373=_0x271059(_0x5de494('0xbe0')),_0x2b915f=_0x271059('./_toKey');_0x1c4606['exports']=function(_0x2a7faa,_0x490b18){var _0x4df8aa=_0x5de494;for(var _0x189e33=0x0,_0x15a9ea=(_0x490b18=_0x490373(_0x490b18,_0x2a7faa))[_0x4df8aa('0x796')];null!=_0x2a7faa&&_0x189e33<_0x15a9ea;)_0x2a7faa=_0x2a7faa[_0x2b915f(_0x490b18[_0x189e33++])];return _0x189e33&&_0x189e33==_0x15a9ea?_0x2a7faa:void 0x0;};},{'./_castPath':0xb7,'./_toKey':0x107}],0x9b:[function(_0x1d3633,_0x1a8733,_0x33c975){var _0x5a280d=_0x38d28e,_0x34bbe9=_0x1d3633(_0x5a280d('0xb60')),_0x379e52=_0x1d3633(_0x5a280d('0x53a'));_0x1a8733[_0x5a280d('0xd7')]=function(_0x1b1755,_0x50a52f,_0x329649){var _0x15502f=_0x50a52f(_0x1b1755);return _0x379e52(_0x1b1755)?_0x15502f:_0x34bbe9(_0x15502f,_0x329649(_0x1b1755));};},{'./_arrayPush':0x8d,'./isArray':0x114}],0x9c:[function(_0x459183,_0x1388a9,_0x5c70f7){var _0xba3ba1=_0x38d28e,_0x56cb7e=_0x459183('./_Symbol'),_0x275f52=_0x459183(_0xba3ba1('0xa78')),_0x2b87d5=_0x459183(_0xba3ba1('0x85a')),_0xf2cc06=_0x56cb7e?_0x56cb7e['toStringTag']:void 0x0;_0x1388a9[_0xba3ba1('0xd7')]=function(_0x326a53){var _0x2efd86=_0xba3ba1;return null==_0x326a53?void 0x0===_0x326a53?'[object\x20Undefined]':_0x2efd86('0x87b'):_0xf2cc06&&_0xf2cc06 in Object(_0x326a53)?_0x275f52(_0x326a53):_0x2b87d5(_0x326a53);};},{'./_Symbol':0x85,'./_getRawTag':0xd1,'./_objectToString':0xf7}],0x9d:[function(_0x176e79,_0x14a9c2,_0x22316b){var _0x4d629b=_0x38d28e;_0x14a9c2[_0x4d629b('0xd7')]=function(_0x21fa41,_0x5cf4b0){return null!=_0x21fa41&&_0x5cf4b0 in Object(_0x21fa41);};},{}],0x9e:[function(_0x5a729a,_0x23aeae,_0x26428){var _0x3c9892=_0x38d28e,_0x8f4bc9=_0x5a729a(_0x3c9892('0x36d')),_0x3b6cb4=_0x5a729a(_0x3c9892('0x810'));_0x23aeae[_0x3c9892('0xd7')]=function(_0x22c473){var _0x2c70ac=_0x3c9892;return _0x3b6cb4(_0x22c473)&&_0x2c70ac('0xa8e')==_0x8f4bc9(_0x22c473);};},{'./_baseGetTag':0x9c,'./isObjectLike':0x11c}],0x9f:[function(_0x475ef4,_0x9890,_0x4395b1){var _0x536b14=_0x38d28e,_0x13423f=_0x475ef4(_0x536b14('0x891')),_0x38db21=_0x475ef4(_0x536b14('0x810'));_0x9890[_0x536b14('0xd7')]=function _0x189330(_0x5ca4cd,_0x34a0c6,_0x1df677,_0x3f39b0,_0x4f589e){return _0x5ca4cd===_0x34a0c6||(null==_0x5ca4cd||null==_0x34a0c6||!_0x38db21(_0x5ca4cd)&&!_0x38db21(_0x34a0c6)?_0x5ca4cd!=_0x5ca4cd&&_0x34a0c6!=_0x34a0c6:_0x13423f(_0x5ca4cd,_0x34a0c6,_0x1df677,_0x3f39b0,_0x189330,_0x4f589e));};},{'./_baseIsEqualDeep':0xa0,'./isObjectLike':0x11c}],0xa0:[function(_0x2b095b,_0x293867,_0x332e86){var _0x545c61=_0x38d28e,_0x86e208=_0x2b095b(_0x545c61('0x423')),_0x3fe09a=_0x2b095b(_0x545c61('0xea')),_0x5a83a3=_0x2b095b(_0x545c61('0x668')),_0x54aff8=_0x2b095b('./_equalObjects'),_0x566d21=_0x2b095b(_0x545c61('0x1b')),_0x54ed09=_0x2b095b(_0x545c61('0x53a')),_0x149b30=_0x2b095b(_0x545c61('0x944')),_0x541bc6=_0x2b095b(_0x545c61('0x9e')),_0x53ed91='[object\x20Object]',_0x1e6177=Object['prototype'][_0x545c61('0x1a8')];_0x293867['exports']=function(_0x13c40e,_0x1c281a,_0x24d2c4,_0x2ad286,_0xa3d868,_0x195e91){var _0x4875db=_0x545c61,_0x148da4=_0x54ed09(_0x13c40e),_0x2469d8=_0x54ed09(_0x1c281a),_0x599f36=_0x148da4?_0x4875db('0x1d2'):_0x566d21(_0x13c40e),_0x40d105=_0x2469d8?_0x4875db('0x1d2'):_0x566d21(_0x1c281a),_0x5eac5f=(_0x599f36='[object\x20Arguments]'==_0x599f36?_0x53ed91:_0x599f36)==_0x53ed91,_0x511974=(_0x40d105=_0x4875db('0xa8e')==_0x40d105?_0x53ed91:_0x40d105)==_0x53ed91,_0x33f2d8=_0x599f36==_0x40d105;if(_0x33f2d8&&_0x149b30(_0x13c40e)){if(!_0x149b30(_0x1c281a))return!0x1;_0x148da4=!0x0,_0x5eac5f=!0x1;}if(_0x33f2d8&&!_0x5eac5f)return _0x195e91||(_0x195e91=new _0x86e208()),_0x148da4||_0x541bc6(_0x13c40e)?_0x3fe09a(_0x13c40e,_0x1c281a,_0x24d2c4,_0x2ad286,_0xa3d868,_0x195e91):_0x5a83a3(_0x13c40e,_0x1c281a,_0x599f36,_0x24d2c4,_0x2ad286,_0xa3d868,_0x195e91);if(!(0x1&_0x24d2c4)){var _0x543a4b=_0x5eac5f&&_0x1e6177[_0x4875db('0x964')](_0x13c40e,'__wrapped__'),_0x527c6a=_0x511974&&_0x1e6177[_0x4875db('0x964')](_0x1c281a,_0x4875db('0x1'));if(_0x543a4b||_0x527c6a){var _0x1b69a5=_0x543a4b?_0x13c40e['value']():_0x13c40e,_0x66e57=_0x527c6a?_0x1c281a[_0x4875db('0x920')]():_0x1c281a;return _0x195e91||(_0x195e91=new _0x86e208()),_0xa3d868(_0x1b69a5,_0x66e57,_0x24d2c4,_0x2ad286,_0x195e91);}}return!!_0x33f2d8&&(_0x195e91||(_0x195e91=new _0x86e208()),_0x54aff8(_0x13c40e,_0x1c281a,_0x24d2c4,_0x2ad286,_0xa3d868,_0x195e91));};},{'./_Stack':0x84,'./_equalArrays':0xc7,'./_equalByTag':0xc8,'./_equalObjects':0xc9,'./_getTag':0xd4,'./isArray':0x114,'./isBuffer':0x117,'./isTypedArray':0x121}],0xa1:[function(_0x1ff868,_0x4b5e59,_0x2aecac){var _0x1479b9=_0x38d28e,_0x34e07b=_0x1ff868(_0x1479b9('0x1b')),_0x5ddb4c=_0x1ff868(_0x1479b9('0x810'));_0x4b5e59[_0x1479b9('0xd7')]=function(_0x1461ba){var _0x26a1a2=_0x1479b9;return _0x5ddb4c(_0x1461ba)&&_0x26a1a2('0x317')==_0x34e07b(_0x1461ba);};},{'./_getTag':0xd4,'./isObjectLike':0x11c}],0xa2:[function(_0xd1d1c7,_0x89932d,_0x6b3db6){var _0x449fcc=_0x38d28e,_0xf1a6b9=_0xd1d1c7(_0x449fcc('0x423')),_0x4a1b7e=_0xd1d1c7(_0x449fcc('0x1e0'));_0x89932d['exports']=function(_0x4e5327,_0x52759b,_0x50b5fa,_0x13684e){var _0x333091=_0x449fcc,_0x4acd97=_0x50b5fa[_0x333091('0x796')],_0x3ff674=_0x4acd97,_0x549a5f=!_0x13684e;if(null==_0x4e5327)return!_0x3ff674;for(_0x4e5327=Object(_0x4e5327);_0x4acd97--;){var _0x537999=_0x50b5fa[_0x4acd97];if(_0x549a5f&&_0x537999[0x2]?_0x537999[0x1]!==_0x4e5327[_0x537999[0x0]]:!(_0x537999[0x0]in _0x4e5327))return!0x1;}for(;++_0x4acd97<_0x3ff674;){var _0xbdd119=(_0x537999=_0x50b5fa[_0x4acd97])[0x0],_0x108cd1=_0x4e5327[_0xbdd119],_0x3daef1=_0x537999[0x1];if(_0x549a5f&&_0x537999[0x2]){if(void 0x0===_0x108cd1&&!(_0xbdd119 in _0x4e5327))return!0x1;}else{var _0x24a9e4=new _0xf1a6b9();if(_0x13684e)var _0x4dc6d9=_0x13684e(_0x108cd1,_0x3daef1,_0xbdd119,_0x4e5327,_0x52759b,_0x24a9e4);if(!(void 0x0===_0x4dc6d9?_0x4a1b7e(_0x3daef1,_0x108cd1,0x3,_0x13684e,_0x24a9e4):_0x4dc6d9))return!0x1;}}return!0x0;};},{'./_Stack':0x84,'./_baseIsEqual':0x9f}],0xa3:[function(_0x1dd69e,_0x234c9b,_0x3ca2d8){var _0x1961f1=_0x38d28e,_0x42150e=_0x1dd69e(_0x1961f1('0x72b')),_0xbde41c=_0x1dd69e(_0x1961f1('0xdd4')),_0xab7cbf=_0x1dd69e(_0x1961f1('0xc5e')),_0x4ba133=_0x1dd69e(_0x1961f1('0xc8e')),_0xb48b5b=/^\[object .+?Constructor\]$/,_0x566b88=Function[_0x1961f1('0x539')],_0x5adef2=Object[_0x1961f1('0x539')],_0x2e518e=_0x566b88[_0x1961f1('0x6e9')],_0x282373=_0x5adef2[_0x1961f1('0x1a8')],_0x10304b=RegExp('^'+_0x2e518e['call'](_0x282373)[_0x1961f1('0x8f9')](/[\\^$.*+?()[\]{}|]/g,_0x1961f1('0x2bf'))[_0x1961f1('0x8f9')](/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,_0x1961f1('0x827'))+'$');_0x234c9b[_0x1961f1('0xd7')]=function(_0x2c429d){var _0x230e96=_0x1961f1;return!(!_0xab7cbf(_0x2c429d)||_0xbde41c(_0x2c429d))&&(_0x42150e(_0x2c429d)?_0x10304b:_0xb48b5b)[_0x230e96('0x96c')](_0x4ba133(_0x2c429d));};},{'./_isMasked':0xe3,'./_toSource':0x108,'./isFunction':0x118,'./isObject':0x11b}],0xa4:[function(_0x5a588d,_0x33bfab,_0x40727a){var _0x5ca141=_0x38d28e,_0x2669f0=_0x5a588d(_0x5ca141('0x1b')),_0x219923=_0x5a588d('./isObjectLike');_0x33bfab[_0x5ca141('0xd7')]=function(_0x4c7659){return _0x219923(_0x4c7659)&&'[object\x20Set]'==_0x2669f0(_0x4c7659);};},{'./_getTag':0xd4,'./isObjectLike':0x11c}],0xa5:[function(_0x5ef0b6,_0xf8b02,_0x1cd557){var _0x1c173a=_0x38d28e,_0x213290=_0x5ef0b6(_0x1c173a('0x36d')),_0x3c4181=_0x5ef0b6('./isLength'),_0x1152c4=_0x5ef0b6(_0x1c173a('0x810')),_0x1c61c7={};_0x1c61c7['[object\x20Float32Array]']=_0x1c61c7[_0x1c173a('0x83')]=_0x1c61c7['[object\x20Int8Array]']=_0x1c61c7['[object\x20Int16Array]']=_0x1c61c7[_0x1c173a('0x426')]=_0x1c61c7['[object\x20Uint8Array]']=_0x1c61c7[_0x1c173a('0xdb5')]=_0x1c61c7[_0x1c173a('0xb0e')]=_0x1c61c7[_0x1c173a('0xb33')]=!0x0,_0x1c61c7['[object\x20Arguments]']=_0x1c61c7[_0x1c173a('0x1d2')]=_0x1c61c7['[object\x20ArrayBuffer]']=_0x1c61c7[_0x1c173a('0x11e')]=_0x1c61c7[_0x1c173a('0x34e')]=_0x1c61c7[_0x1c173a('0x574')]=_0x1c61c7[_0x1c173a('0x5d0')]=_0x1c61c7['[object\x20Function]']=_0x1c61c7['[object\x20Map]']=_0x1c61c7[_0x1c173a('0x335')]=_0x1c61c7[_0x1c173a('0x846')]=_0x1c61c7['[object\x20RegExp]']=_0x1c61c7[_0x1c173a('0xc6a')]=_0x1c61c7['[object\x20String]']=_0x1c61c7[_0x1c173a('0xf5')]=!0x1,_0xf8b02['exports']=function(_0x53296a){var _0x2d6b01=_0x1c173a;return _0x1152c4(_0x53296a)&&_0x3c4181(_0x53296a[_0x2d6b01('0x796')])&&!!_0x1c61c7[_0x213290(_0x53296a)];};},{'./_baseGetTag':0x9c,'./isLength':0x119,'./isObjectLike':0x11c}],0xa6:[function(_0x44e4d8,_0x44fe49,_0x11f7fd){var _0x3e2d17=_0x38d28e,_0xf64279=_0x44e4d8(_0x3e2d17('0x57b')),_0x3f5484=_0x44e4d8(_0x3e2d17('0x50d')),_0x1f5a72=_0x44e4d8('./identity'),_0x2c44b1=_0x44e4d8('./isArray'),_0x5e6381=_0x44e4d8(_0x3e2d17('0xd28'));_0x44fe49[_0x3e2d17('0xd7')]=function(_0x138bd8){var _0x261f8c=_0x3e2d17;return _0x261f8c('0xa25')==typeof _0x138bd8?_0x138bd8:null==_0x138bd8?_0x1f5a72:'object'==typeof _0x138bd8?_0x2c44b1(_0x138bd8)?_0x3f5484(_0x138bd8[0x0],_0x138bd8[0x1]):_0xf64279(_0x138bd8):_0x5e6381(_0x138bd8);};},{'./_baseMatches':0xaa,'./_baseMatchesProperty':0xab,'./identity':0x112,'./isArray':0x114,'./property':0x129}],0xa7:[function(_0x409459,_0x5cd860,_0x2f1601){var _0x4c6a65=_0x38d28e,_0x229cee=_0x409459('./_isPrototype'),_0x1c86c5=_0x409459('./_nativeKeys'),_0x462233=Object[_0x4c6a65('0x539')][_0x4c6a65('0x1a8')];_0x5cd860[_0x4c6a65('0xd7')]=function(_0x2dc841){var _0x5b0f20=_0x4c6a65;if(!_0x229cee(_0x2dc841))return _0x1c86c5(_0x2dc841);var _0x3b8c73=[];for(var _0xdb87e7 in Object(_0x2dc841))_0x462233[_0x5b0f20('0x964')](_0x2dc841,_0xdb87e7)&&_0x5b0f20('0x63e')!=_0xdb87e7&&_0x3b8c73[_0x5b0f20('0xb2')](_0xdb87e7);return _0x3b8c73;};},{'./_isPrototype':0xe4,'./_nativeKeys':0xf4}],0xa8:[function(_0x354e6b,_0x5aff44,_0x51df54){var _0xed0b31=_0x38d28e,_0x49b910=_0x354e6b(_0xed0b31('0xc5e')),_0x4ba2ad=_0x354e6b(_0xed0b31('0xab')),_0x3e32d8=_0x354e6b(_0xed0b31('0x42')),_0x1028d0=Object[_0xed0b31('0x539')]['hasOwnProperty'];_0x5aff44[_0xed0b31('0xd7')]=function(_0x6bcdd5){var _0x3d5498=_0xed0b31;if(!_0x49b910(_0x6bcdd5))return _0x3e32d8(_0x6bcdd5);var _0x4a9968=_0x4ba2ad(_0x6bcdd5),_0x3dceb5=[];for(var _0x3159e8 in _0x6bcdd5)(_0x3d5498('0x63e')!=_0x3159e8||!_0x4a9968&&_0x1028d0[_0x3d5498('0x964')](_0x6bcdd5,_0x3159e8))&&_0x3dceb5[_0x3d5498('0xb2')](_0x3159e8);return _0x3dceb5;};},{'./_isPrototype':0xe4,'./_nativeKeysIn':0xf5,'./isObject':0x11b}],0xa9:[function(_0x5a2fe1,_0x3c785e,_0x3d1648){var _0x58662a=_0x38d28e,_0xb1a79=_0x5a2fe1(_0x58662a('0x466')),_0x8f0115=_0x5a2fe1(_0x58662a('0xba8'));_0x3c785e['exports']=function(_0x513e8b,_0x12f51e){var _0x13b1f7=_0x58662a,_0x710d03=-0x1,_0x28877c=_0x8f0115(_0x513e8b)?Array(_0x513e8b[_0x13b1f7('0x796')]):[];return _0xb1a79(_0x513e8b,function(_0x4fe291,_0x5bd06,_0x3accf4){_0x28877c[++_0x710d03]=_0x12f51e(_0x4fe291,_0x5bd06,_0x3accf4);}),_0x28877c;};},{'./_baseEach':0x97,'./isArrayLike':0x115}],0xaa:[function(_0xcd6b0a,_0x164d23,_0x4bdbf2){var _0x3f961f=_0x38d28e,_0x1edce6=_0xcd6b0a(_0x3f961f('0x188')),_0x19ddf8=_0xcd6b0a(_0x3f961f('0xb6')),_0x571791=_0xcd6b0a(_0x3f961f('0xad'));_0x164d23['exports']=function(_0x13f72a){var _0x270c3a=_0x3f961f,_0x2f4dac=_0x19ddf8(_0x13f72a);return 0x1==_0x2f4dac[_0x270c3a('0x796')]&&_0x2f4dac[0x0][0x2]?_0x571791(_0x2f4dac[0x0][0x0],_0x2f4dac[0x0][0x1]):function(_0x3a704e){return _0x3a704e===_0x13f72a||_0x1edce6(_0x3a704e,_0x13f72a,_0x2f4dac);};};},{'./_baseIsMatch':0xa2,'./_getMatchData':0xce,'./_matchesStrictComparable':0xf1}],0xab:[function(_0x1b0253,_0x1d2a47,_0x24203d){var _0x234615=_0x38d28e,_0x4a30cf=_0x1b0253('./_baseIsEqual'),_0xcb7315=_0x1b0253(_0x234615('0x27e')),_0x52a01f=_0x1b0253(_0x234615('0x330')),_0xd55d53=_0x1b0253(_0x234615('0x1dc')),_0x30a09f=_0x1b0253(_0x234615('0xc33')),_0x587f5a=_0x1b0253(_0x234615('0xad')),_0x2f2e1c=_0x1b0253('./_toKey');_0x1d2a47[_0x234615('0xd7')]=function(_0x4e3488,_0x42df17){return _0xd55d53(_0x4e3488)&&_0x30a09f(_0x42df17)?_0x587f5a(_0x2f2e1c(_0x4e3488),_0x42df17):function(_0x564aef){var _0xe6bc8f=_0xcb7315(_0x564aef,_0x4e3488);return void 0x0===_0xe6bc8f&&_0xe6bc8f===_0x42df17?_0x52a01f(_0x564aef,_0x4e3488):_0x4a30cf(_0x42df17,_0xe6bc8f,0x3);};};},{'./_baseIsEqual':0x9f,'./_isKey':0xe1,'./_isStrictComparable':0xe5,'./_matchesStrictComparable':0xf1,'./_toKey':0x107,'./get':0x110,'./hasIn':0x111}],0xac:[function(_0x72b155,_0x22a1da,_0x5db661){var _0x46b3cf=_0x38d28e,_0x4cab69=_0x72b155(_0x46b3cf('0x423')),_0x5250ec=_0x72b155(_0x46b3cf('0xdbf')),_0x216385=_0x72b155(_0x46b3cf('0x374')),_0x1aefa8=_0x72b155(_0x46b3cf('0xcfc')),_0x12643c=_0x72b155(_0x46b3cf('0xc5e')),_0x5d4b13=_0x72b155('./keysIn'),_0x595c43=_0x72b155(_0x46b3cf('0x8b8'));_0x22a1da[_0x46b3cf('0xd7')]=function _0x4cd988(_0x57e4ea,_0x16ef68,_0x35920b,_0x2318a8,_0x45af1c){_0x57e4ea!==_0x16ef68&&_0x216385(_0x16ef68,function(_0x2751f9,_0x1865e2){if(_0x45af1c||(_0x45af1c=new _0x4cab69()),_0x12643c(_0x2751f9))_0x1aefa8(_0x57e4ea,_0x16ef68,_0x1865e2,_0x35920b,_0x4cd988,_0x2318a8,_0x45af1c);else{var _0x26f41d=_0x2318a8?_0x2318a8(_0x595c43(_0x57e4ea,_0x1865e2),_0x2751f9,_0x1865e2+'',_0x57e4ea,_0x16ef68,_0x45af1c):void 0x0;void 0x0===_0x26f41d&&(_0x26f41d=_0x2751f9),_0x5250ec(_0x57e4ea,_0x1865e2,_0x26f41d);}},_0x5d4b13);};},{'./_Stack':0x84,'./_assignMergeValue':0x8f,'./_baseFor':0x98,'./_baseMergeDeep':0xad,'./_safeGet':0xfb,'./isObject':0x11b,'./keysIn':0x124}],0xad:[function(_0x53dffa,_0x236e91,_0x5e4ec9){var _0x13c300=_0x38d28e,_0x18ec5b=_0x53dffa('./_assignMergeValue'),_0x3f6439=_0x53dffa(_0x13c300('0xdc1')),_0xb829e6=_0x53dffa(_0x13c300('0x548')),_0x49912e=_0x53dffa(_0x13c300('0x1f5')),_0x58836b=_0x53dffa(_0x13c300('0xb8b')),_0xdf1fac=_0x53dffa(_0x13c300('0x4bb')),_0x4396aa=_0x53dffa(_0x13c300('0x53a')),_0x4e53c5=_0x53dffa('./isArrayLikeObject'),_0x57ab51=_0x53dffa(_0x13c300('0x944')),_0xa29840=_0x53dffa(_0x13c300('0x72b')),_0x177a8e=_0x53dffa('./isObject'),_0x469927=_0x53dffa(_0x13c300('0x46e')),_0x34aafa=_0x53dffa('./isTypedArray'),_0x5d20a1=_0x53dffa(_0x13c300('0x8b8')),_0x10b748=_0x53dffa(_0x13c300('0x5d6'));_0x236e91[_0x13c300('0xd7')]=function(_0xd44591,_0x245138,_0x534862,_0x1e2ffb,_0x234355,_0x96bc34,_0x40cc88){var _0x31c680=_0x13c300,_0x210688=_0x5d20a1(_0xd44591,_0x534862),_0x3f7904=_0x5d20a1(_0x245138,_0x534862),_0x56025f=_0x40cc88['get'](_0x3f7904);if(_0x56025f)_0x18ec5b(_0xd44591,_0x534862,_0x56025f);else{var _0x409a72=_0x96bc34?_0x96bc34(_0x210688,_0x3f7904,_0x534862+'',_0xd44591,_0x245138,_0x40cc88):void 0x0,_0x53efc8=void 0x0===_0x409a72;if(_0x53efc8){var _0x12e809=_0x4396aa(_0x3f7904),_0x21dfb5=!_0x12e809&&_0x57ab51(_0x3f7904),_0x1d60ce=!_0x12e809&&!_0x21dfb5&&_0x34aafa(_0x3f7904);_0x409a72=_0x3f7904,_0x12e809||_0x21dfb5||_0x1d60ce?_0x4396aa(_0x210688)?_0x409a72=_0x210688:_0x4e53c5(_0x210688)?_0x409a72=_0x49912e(_0x210688):_0x21dfb5?(_0x53efc8=!0x1,_0x409a72=_0x3f6439(_0x3f7904,!0x0)):_0x1d60ce?(_0x53efc8=!0x1,_0x409a72=_0xb829e6(_0x3f7904,!0x0)):_0x409a72=[]:_0x469927(_0x3f7904)||_0xdf1fac(_0x3f7904)?(_0x409a72=_0x210688,_0xdf1fac(_0x210688)?_0x409a72=_0x10b748(_0x210688):_0x177a8e(_0x210688)&&!_0xa29840(_0x210688)||(_0x409a72=_0x58836b(_0x3f7904))):_0x53efc8=!0x1;}_0x53efc8&&(_0x40cc88[_0x31c680('0x7f8')](_0x3f7904,_0x409a72),_0x234355(_0x409a72,_0x3f7904,_0x1e2ffb,_0x96bc34,_0x40cc88),_0x40cc88[_0x31c680('0xcf1')](_0x3f7904)),_0x18ec5b(_0xd44591,_0x534862,_0x409a72);}};},{'./_assignMergeValue':0x8f,'./_cloneBuffer':0xb9,'./_cloneTypedArray':0xbd,'./_copyArray':0xbe,'./_initCloneObject':0xde,'./_safeGet':0xfb,'./isArguments':0x113,'./isArray':0x114,'./isArrayLikeObject':0x116,'./isBuffer':0x117,'./isFunction':0x118,'./isObject':0x11b,'./isPlainObject':0x11d,'./isTypedArray':0x121,'./toPlainObject':0x12e}],0xae:[function(_0x4a5e71,_0x63776e,_0x4b307d){var _0x19db8f=_0x38d28e;_0x63776e[_0x19db8f('0xd7')]=function(_0x592ba8){return function(_0x23b879){return null==_0x23b879?void 0x0:_0x23b879[_0x592ba8];};};},{}],0xaf:[function(_0x21df2c,_0x607275,_0x5d999d){var _0x5b9089=_0x38d28e,_0x2f84c5=_0x21df2c(_0x5b9089('0x64a'));_0x607275[_0x5b9089('0xd7')]=function(_0x479771){return function(_0x3e9bf4){return _0x2f84c5(_0x3e9bf4,_0x479771);};};},{'./_baseGet':0x9a}],0xb0:[function(_0x2361ea,_0x54c3e1,_0x13a92b){var _0x1a8f20=_0x38d28e,_0x42d9ef=_0x2361ea(_0x1a8f20('0xb39')),_0x2253e0=_0x2361ea('./_overRest'),_0x5b40d1=_0x2361ea(_0x1a8f20('0x346'));_0x54c3e1[_0x1a8f20('0xd7')]=function(_0x1272cf,_0x254a68){return _0x5b40d1(_0x2253e0(_0x1272cf,_0x254a68,_0x42d9ef),_0x1272cf+'');};},{'./_overRest':0xf9,'./_setToString':0xff,'./identity':0x112}],0xb1:[function(_0x21e396,_0x5e0cb3,_0x31a97e){var _0x63e0e5=_0x38d28e,_0x101411=_0x21e396(_0x63e0e5('0x549')),_0x553d73=_0x21e396(_0x63e0e5('0x940')),_0x3ba8ec=_0x21e396(_0x63e0e5('0xb39')),_0x356751=_0x553d73?function(_0x39762a,_0x4f525c){return _0x553d73(_0x39762a,'toString',{'configurable':!0x0,'enumerable':!0x1,'value':_0x101411(_0x4f525c),'writable':!0x0});}:_0x3ba8ec;_0x5e0cb3[_0x63e0e5('0xd7')]=_0x356751;},{'./_defineProperty':0xc6,'./constant':0x10a,'./identity':0x112}],0xb2:[function(_0x3654b6,_0x5528c6,_0x10da3b){_0x5528c6['exports']=function(_0x3afa64,_0x19c731){for(var _0x3e14c0=-0x1,_0x10038c=Array(_0x3afa64);++_0x3e14c0<_0x3afa64;)_0x10038c[_0x3e14c0]=_0x19c731(_0x3e14c0);return _0x10038c;};},{}],0xb3:[function(_0x1ca7c7,_0x472815,_0x1a38ed){var _0x4cbbbb=_0x38d28e,_0x265568=_0x1ca7c7(_0x4cbbbb('0xa46')),_0x3071f8=_0x1ca7c7(_0x4cbbbb('0xf0')),_0x4d8688=_0x1ca7c7(_0x4cbbbb('0x53a')),_0x25c150=_0x1ca7c7('./isSymbol'),_0x1c61d5=_0x265568?_0x265568[_0x4cbbbb('0x539')]:void 0x0,_0x5b60d0=_0x1c61d5?_0x1c61d5[_0x4cbbbb('0x6e9')]:void 0x0;_0x472815['exports']=function _0x29ae4b(_0x39aaa2){var _0x2c70db=_0x4cbbbb;if(_0x2c70db('0x3fd')==typeof _0x39aaa2)return _0x39aaa2;if(_0x4d8688(_0x39aaa2))return _0x3071f8(_0x39aaa2,_0x29ae4b)+'';if(_0x25c150(_0x39aaa2))return _0x5b60d0?_0x5b60d0[_0x2c70db('0x964')](_0x39aaa2):'';var _0x1b9783=_0x39aaa2+'';return'0'==_0x1b9783&&0x1/_0x39aaa2==-0x1/0x0?'-0':_0x1b9783;};},{'./_Symbol':0x85,'./_arrayMap':0x8c,'./isArray':0x114,'./isSymbol':0x120}],0xb4:[function(_0x1ade36,_0x2ec442,_0x282e22){var _0x1557b3=_0x38d28e;_0x2ec442[_0x1557b3('0xd7')]=function(_0x24aa67){return function(_0x426168){return _0x24aa67(_0x426168);};};},{}],0xb5:[function(_0x459e04,_0x2e1071,_0x545454){var _0x1ff1c0=_0x38d28e;_0x2e1071[_0x1ff1c0('0xd7')]=function(_0x1a5f65,_0x3a9050){var _0xb6fae0=_0x1ff1c0;return _0x1a5f65[_0xb6fae0('0xa77')](_0x3a9050);};},{}],0xb6:[function(_0x227f1c,_0xfeed3a,_0x52ebe9){var _0x2b3fd1=_0x38d28e,_0x1752e2=_0x227f1c(_0x2b3fd1('0xb39'));_0xfeed3a[_0x2b3fd1('0xd7')]=function(_0x3933a6){var _0x26cc69=_0x2b3fd1;return _0x26cc69('0xa25')==typeof _0x3933a6?_0x3933a6:_0x1752e2;};},{'./identity':0x112}],0xb7:[function(_0x1755d4,_0x16dd7c,_0x5367be){var _0x46cc85=_0x38d28e,_0x4c318c=_0x1755d4('./isArray'),_0x458e04=_0x1755d4(_0x46cc85('0x1dc')),_0x5abd21=_0x1755d4('./_stringToPath'),_0x3ff1e4=_0x1755d4(_0x46cc85('0x772'));_0x16dd7c[_0x46cc85('0xd7')]=function(_0x505224,_0x4a28cd){return _0x4c318c(_0x505224)?_0x505224:_0x458e04(_0x505224,_0x4a28cd)?[_0x505224]:_0x5abd21(_0x3ff1e4(_0x505224));};},{'./_isKey':0xe1,'./_stringToPath':0x106,'./isArray':0x114,'./toString':0x12f}],0xb8:[function(_0x25afdc,_0x4a91cb,_0x1f66a8){var _0x13182e=_0x38d28e,_0x606aa5=_0x25afdc(_0x13182e('0xd27'));_0x4a91cb['exports']=function(_0x435e6e){var _0xf0240=_0x13182e,_0x1fa0f6=new _0x435e6e['constructor'](_0x435e6e[_0xf0240('0x4c4')]);return new _0x606aa5(_0x1fa0f6)[_0xf0240('0x7f8')](new _0x606aa5(_0x435e6e)),_0x1fa0f6;};},{'./_Uint8Array':0x86}],0xb9:[function(_0x24ccde,_0x151fe9,_0xc09b4f){var _0xa250eb=_0x38d28e,_0x563a8f=_0x24ccde(_0xa250eb('0x947')),_0x49824c=_0xa250eb('0xbfd')==typeof _0xc09b4f&&_0xc09b4f&&!_0xc09b4f[_0xa250eb('0x4f4')]&&_0xc09b4f,_0x4e7ea0=_0x49824c&&_0xa250eb('0xbfd')==typeof _0x151fe9&&_0x151fe9&&!_0x151fe9['nodeType']&&_0x151fe9,_0x325cbf=_0x4e7ea0&&_0x4e7ea0[_0xa250eb('0xd7')]===_0x49824c?_0x563a8f[_0xa250eb('0x576')]:void 0x0,_0x38ccf8=_0x325cbf?_0x325cbf[_0xa250eb('0x357')]:void 0x0;_0x151fe9['exports']=function(_0x37370c,_0x5e919b){var _0x245915=_0xa250eb;if(_0x5e919b)return _0x37370c['slice']();var _0xbe984c=_0x37370c[_0x245915('0x796')],_0x1d9de3=_0x38ccf8?_0x38ccf8(_0xbe984c):new _0x37370c[(_0x245915('0x63e'))](_0xbe984c);return _0x37370c['copy'](_0x1d9de3),_0x1d9de3;};},{'./_root':0xfa}],0xba:[function(_0x51f5f3,_0x43dd2c,_0x48f4a3){var _0x5b97ca=_0x38d28e,_0x233e92=_0x51f5f3(_0x5b97ca('0xd11'));_0x43dd2c['exports']=function(_0x32b249,_0x3fd47a){var _0x593f16=_0x5b97ca,_0x3e5662=_0x3fd47a?_0x233e92(_0x32b249[_0x593f16('0x7db')]):_0x32b249[_0x593f16('0x7db')];return new _0x32b249[(_0x593f16('0x63e'))](_0x3e5662,_0x32b249['byteOffset'],_0x32b249[_0x593f16('0x4c4')]);};},{'./_cloneArrayBuffer':0xb8}],0xbb:[function(_0x3dc990,_0x11933f,_0x5ddcfc){var _0x14c8d5=_0x38d28e,_0x556d24=/\w*$/;_0x11933f[_0x14c8d5('0xd7')]=function(_0x41c9fc){var _0x1605b8=_0x14c8d5,_0x5aeeb6=new _0x41c9fc[(_0x1605b8('0x63e'))](_0x41c9fc[_0x1605b8('0x22c')],_0x556d24['exec'](_0x41c9fc));return _0x5aeeb6[_0x1605b8('0x5ad')]=_0x41c9fc[_0x1605b8('0x5ad')],_0x5aeeb6;};},{}],0xbc:[function(_0x5e6fb4,_0x29f6e7,_0x277d93){var _0x3f6bb3=_0x38d28e,_0xf05d32=_0x5e6fb4(_0x3f6bb3('0xa46')),_0x10cd23=_0xf05d32?_0xf05d32[_0x3f6bb3('0x539')]:void 0x0,_0x22c1bc=_0x10cd23?_0x10cd23['valueOf']:void 0x0;_0x29f6e7[_0x3f6bb3('0xd7')]=function(_0x334ba5){var _0x427141=_0x3f6bb3;return _0x22c1bc?Object(_0x22c1bc[_0x427141('0x964')](_0x334ba5)):{};};},{'./_Symbol':0x85}],0xbd:[function(_0x4159cc,_0x25b557,_0x4b92d1){var _0x54536c=_0x38d28e,_0x9a4b12=_0x4159cc(_0x54536c('0xd11'));_0x25b557[_0x54536c('0xd7')]=function(_0x14ad3d,_0x43e37d){var _0x53565a=_0x54536c,_0x4ddd42=_0x43e37d?_0x9a4b12(_0x14ad3d['buffer']):_0x14ad3d['buffer'];return new _0x14ad3d[(_0x53565a('0x63e'))](_0x4ddd42,_0x14ad3d[_0x53565a('0xc0c')],_0x14ad3d[_0x53565a('0x796')]);};},{'./_cloneArrayBuffer':0xb8}],0xbe:[function(_0x2ea68c,_0x34315a,_0xb86aeb){_0x34315a['exports']=function(_0x36e5b6,_0x103544){var _0x5d3a29=_0x1c0e,_0x19934c=-0x1,_0xcc502a=_0x36e5b6[_0x5d3a29('0x796')];for(_0x103544||(_0x103544=Array(_0xcc502a));++_0x19934c<_0xcc502a;)_0x103544[_0x19934c]=_0x36e5b6[_0x19934c];return _0x103544;};},{}],0xbf:[function(_0x30b2cc,_0x5cd5bb,_0x330e0a){var _0x32d538=_0x38d28e,_0x3e6793=_0x30b2cc(_0x32d538('0x1ce')),_0x1a44e7=_0x30b2cc(_0x32d538('0xb09'));_0x5cd5bb[_0x32d538('0xd7')]=function(_0x16b98e,_0x16f354,_0x23ff74,_0x25a5f4){var _0x40197f=!_0x23ff74;_0x23ff74||(_0x23ff74={});for(var _0x2e5847=-0x1,_0x41f46f=_0x16f354['length'];++_0x2e5847<_0x41f46f;){var _0x3ecf14=_0x16f354[_0x2e5847],_0xf15d41=_0x25a5f4?_0x25a5f4(_0x23ff74[_0x3ecf14],_0x16b98e[_0x3ecf14],_0x3ecf14,_0x23ff74,_0x16b98e):void 0x0;void 0x0===_0xf15d41&&(_0xf15d41=_0x16b98e[_0x3ecf14]),_0x40197f?_0x1a44e7(_0x23ff74,_0x3ecf14,_0xf15d41):_0x3e6793(_0x23ff74,_0x3ecf14,_0xf15d41);}return _0x23ff74;};},{'./_assignValue':0x90,'./_baseAssignValue':0x94}],0xc0:[function(_0x321e01,_0x8c8c48,_0x19055a){var _0x3c0860=_0x38d28e,_0x301d58=_0x321e01(_0x3c0860('0xba4')),_0x400041=_0x321e01('./_getSymbols');_0x8c8c48[_0x3c0860('0xd7')]=function(_0x166ca7,_0x512b44){return _0x301d58(_0x166ca7,_0x400041(_0x166ca7),_0x512b44);};},{'./_copyObject':0xbf,'./_getSymbols':0xd2}],0xc1:[function(_0xea2b01,_0x565d72,_0x731f7d){var _0x4c2fa4=_0x38d28e,_0x141d6f=_0xea2b01(_0x4c2fa4('0xba4')),_0x11296b=_0xea2b01('./_getSymbolsIn');_0x565d72[_0x4c2fa4('0xd7')]=function(_0xede688,_0x218a6f){return _0x141d6f(_0xede688,_0x11296b(_0xede688),_0x218a6f);};},{'./_copyObject':0xbf,'./_getSymbolsIn':0xd3}],0xc2:[function(_0x222bfa,_0x1838a6,_0x33e4d7){var _0x569577=_0x38d28e,_0x46f45c=_0x222bfa('./_root')['__core-js_shared__'];_0x1838a6[_0x569577('0xd7')]=_0x46f45c;},{'./_root':0xfa}],0xc3:[function(_0xf4f2f7,_0xcf15c3,_0x2d53d6){var _0x22b618=_0x38d28e,_0x4428ec=_0xf4f2f7(_0x22b618('0x990')),_0x9da6ff=_0xf4f2f7(_0x22b618('0x7d1'));_0xcf15c3[_0x22b618('0xd7')]=function(_0x5a8697){return _0x4428ec(function(_0x13bf03,_0x1aefcf){var _0x5bf872=_0x1c0e,_0x21565d=-0x1,_0x1ba7c4=_0x1aefcf[_0x5bf872('0x796')],_0x441e4d=_0x1ba7c4>0x1?_0x1aefcf[_0x1ba7c4-0x1]:void 0x0,_0x4d4b89=_0x1ba7c4>0x2?_0x1aefcf[0x2]:void 0x0;for(_0x441e4d=_0x5a8697[_0x5bf872('0x796')]>0x3&&_0x5bf872('0xa25')==typeof _0x441e4d?(_0x1ba7c4--,_0x441e4d):void 0x0,_0x4d4b89&&_0x9da6ff(_0x1aefcf[0x0],_0x1aefcf[0x1],_0x4d4b89)&&(_0x441e4d=_0x1ba7c4<0x3?void 0x0:_0x441e4d,_0x1ba7c4=0x1),_0x13bf03=Object(_0x13bf03);++_0x21565d<_0x1ba7c4;){var _0x1abe26=_0x1aefcf[_0x21565d];_0x1abe26&&_0x5a8697(_0x13bf03,_0x1abe26,_0x21565d,_0x441e4d);}return _0x13bf03;});};},{'./_baseRest':0xb0,'./_isIterateeCall':0xe0}],0xc4:[function(_0x7aa06e,_0x1e7c77,_0x27dc70){var _0x49204a=_0x38d28e,_0x3f1452=_0x7aa06e(_0x49204a('0xba8'));_0x1e7c77['exports']=function(_0x11e655,_0x1f70c7){return function(_0xf20af8,_0x419def){var _0x71a91e=_0x1c0e;if(null==_0xf20af8)return _0xf20af8;if(!_0x3f1452(_0xf20af8))return _0x11e655(_0xf20af8,_0x419def);for(var _0x1a83ce=_0xf20af8[_0x71a91e('0x796')],_0xedb7de=_0x1f70c7?_0x1a83ce:-0x1,_0x1f83df=Object(_0xf20af8);(_0x1f70c7?_0xedb7de--:++_0xedb7de<_0x1a83ce)&&!0x1!==_0x419def(_0x1f83df[_0xedb7de],_0xedb7de,_0x1f83df););return _0xf20af8;};};},{'./isArrayLike':0x115}],0xc5:[function(_0xe33ca7,_0x450fc9,_0x29d4b){var _0x1d8278=_0x38d28e;_0x450fc9[_0x1d8278('0xd7')]=function(_0x4ea2cf){return function(_0x35d122,_0x6adf35,_0x372dd1){for(var _0xe31449=-0x1,_0x50c654=Object(_0x35d122),_0x145890=_0x372dd1(_0x35d122),_0x20f741=_0x145890['length'];_0x20f741--;){var _0x45eb04=_0x145890[_0x4ea2cf?_0x20f741:++_0xe31449];if(!0x1===_0x6adf35(_0x50c654[_0x45eb04],_0x45eb04,_0x50c654))break;}return _0x35d122;};};},{}],0xc6:[function(_0x53d9c1,_0x2f2f79,_0x548740){var _0x47fd2f=_0x38d28e,_0x18a21e=_0x53d9c1('./_getNative'),_0x25374a=function(){var _0x530bf6=_0x1c0e;try{var _0xa7577b=_0x18a21e(Object,_0x530bf6('0x751'));return _0xa7577b({},'',{}),_0xa7577b;}catch(_0x2a45b9){}}();_0x2f2f79[_0x47fd2f('0xd7')]=_0x25374a;},{'./_getNative':0xcf}],0xc7:[function(_0x170050,_0x4bd864,_0x5b283a){var _0x106b5c=_0x38d28e,_0x4f6d34=_0x170050(_0x106b5c('0x42c')),_0x165c17=_0x170050(_0x106b5c('0xa5e')),_0x139412=_0x170050(_0x106b5c('0x5d4'));_0x4bd864[_0x106b5c('0xd7')]=function(_0x5f1fcb,_0x30997a,_0x3cdd9c,_0x2ae6bd,_0x5b16ee,_0x10cc37){var _0x2879e0=_0x106b5c,_0x34352c=0x1&_0x3cdd9c,_0x89e008=_0x5f1fcb[_0x2879e0('0x796')],_0x461d2b=_0x30997a[_0x2879e0('0x796')];if(_0x89e008!=_0x461d2b&&!(_0x34352c&&_0x461d2b>_0x89e008))return!0x1;var _0x207550=_0x10cc37['get'](_0x5f1fcb),_0x2c5dcc=_0x10cc37[_0x2879e0('0xda6')](_0x30997a);if(_0x207550&&_0x2c5dcc)return _0x207550==_0x30997a&&_0x2c5dcc==_0x5f1fcb;var _0x40fa2b=-0x1,_0x1a87ea=!0x0,_0x34ef2c=0x2&_0x3cdd9c?new _0x4f6d34():void 0x0;for(_0x10cc37[_0x2879e0('0x7f8')](_0x5f1fcb,_0x30997a),_0x10cc37[_0x2879e0('0x7f8')](_0x30997a,_0x5f1fcb);++_0x40fa2b<_0x89e008;){var _0x53f2ef=_0x5f1fcb[_0x40fa2b],_0x54a8e5=_0x30997a[_0x40fa2b];if(_0x2ae6bd)var _0x253ed7=_0x34352c?_0x2ae6bd(_0x54a8e5,_0x53f2ef,_0x40fa2b,_0x30997a,_0x5f1fcb,_0x10cc37):_0x2ae6bd(_0x53f2ef,_0x54a8e5,_0x40fa2b,_0x5f1fcb,_0x30997a,_0x10cc37);if(void 0x0!==_0x253ed7){if(_0x253ed7)continue;_0x1a87ea=!0x1;break;}if(_0x34ef2c){if(!_0x165c17(_0x30997a,function(_0x48ec95,_0x1a8ef8){var _0x26c626=_0x2879e0;if(!_0x139412(_0x34ef2c,_0x1a8ef8)&&(_0x53f2ef===_0x48ec95||_0x5b16ee(_0x53f2ef,_0x48ec95,_0x3cdd9c,_0x2ae6bd,_0x10cc37)))return _0x34ef2c[_0x26c626('0xb2')](_0x1a8ef8);})){_0x1a87ea=!0x1;break;}}else{if(_0x53f2ef!==_0x54a8e5&&!_0x5b16ee(_0x53f2ef,_0x54a8e5,_0x3cdd9c,_0x2ae6bd,_0x10cc37)){_0x1a87ea=!0x1;break;}}}return _0x10cc37[_0x2879e0('0xcf1')](_0x5f1fcb),_0x10cc37[_0x2879e0('0xcf1')](_0x30997a),_0x1a87ea;};},{'./_SetCache':0x83,'./_arraySome':0x8e,'./_cacheHas':0xb5}],0xc8:[function(_0x1032f6,_0x29dcd2,_0x11bffb){var _0x26ae9c=_0x38d28e,_0x311cc2=_0x1032f6(_0x26ae9c('0xa46')),_0x432f0f=_0x1032f6(_0x26ae9c('0xd27')),_0xa95bf=_0x1032f6(_0x26ae9c('0xb66')),_0x146692=_0x1032f6(_0x26ae9c('0xea')),_0x108b7e=_0x1032f6(_0x26ae9c('0xd1f')),_0x262a1a=_0x1032f6(_0x26ae9c('0x937')),_0x7c91de=_0x311cc2?_0x311cc2[_0x26ae9c('0x539')]:void 0x0,_0x1a42f3=_0x7c91de?_0x7c91de[_0x26ae9c('0x713')]:void 0x0;_0x29dcd2[_0x26ae9c('0xd7')]=function(_0x2b2c0f,_0x45fd5b,_0x1cd65f,_0x2152cb,_0x4a8d8f,_0x2573bf,_0x2abf42){var _0x55528e=_0x26ae9c;switch(_0x1cd65f){case _0x55528e('0x34e'):if(_0x2b2c0f['byteLength']!=_0x45fd5b['byteLength']||_0x2b2c0f['byteOffset']!=_0x45fd5b['byteOffset'])return!0x1;_0x2b2c0f=_0x2b2c0f[_0x55528e('0x7db')],_0x45fd5b=_0x45fd5b['buffer'];case _0x55528e('0x5e4'):return!(_0x2b2c0f['byteLength']!=_0x45fd5b[_0x55528e('0x4c4')]||!_0x2573bf(new _0x432f0f(_0x2b2c0f),new _0x432f0f(_0x45fd5b)));case _0x55528e('0x11e'):case'[object\x20Date]':case _0x55528e('0x335'):return _0xa95bf(+_0x2b2c0f,+_0x45fd5b);case _0x55528e('0x5d0'):return _0x2b2c0f[_0x55528e('0xce')]==_0x45fd5b[_0x55528e('0xce')]&&_0x2b2c0f[_0x55528e('0xb0a')]==_0x45fd5b[_0x55528e('0xb0a')];case _0x55528e('0xd06'):case _0x55528e('0xe'):return _0x2b2c0f==_0x45fd5b+'';case _0x55528e('0x317'):var _0x164dd5=_0x108b7e;case _0x55528e('0xc6a'):var _0xc75f04=0x1&_0x2152cb;if(_0x164dd5||(_0x164dd5=_0x262a1a),_0x2b2c0f[_0x55528e('0x2f9')]!=_0x45fd5b[_0x55528e('0x2f9')]&&!_0xc75f04)return!0x1;var _0x3baf11=_0x2abf42[_0x55528e('0xda6')](_0x2b2c0f);if(_0x3baf11)return _0x3baf11==_0x45fd5b;_0x2152cb|=0x2,_0x2abf42[_0x55528e('0x7f8')](_0x2b2c0f,_0x45fd5b);var _0x44f39f=_0x146692(_0x164dd5(_0x2b2c0f),_0x164dd5(_0x45fd5b),_0x2152cb,_0x4a8d8f,_0x2573bf,_0x2abf42);return _0x2abf42[_0x55528e('0xcf1')](_0x2b2c0f),_0x44f39f;case _0x55528e('0x8ff'):if(_0x1a42f3)return _0x1a42f3['call'](_0x2b2c0f)==_0x1a42f3[_0x55528e('0x964')](_0x45fd5b);}return!0x1;};},{'./_Symbol':0x85,'./_Uint8Array':0x86,'./_equalArrays':0xc7,'./_mapToArray':0xf0,'./_setToArray':0xfe,'./eq':0x10d}],0xc9:[function(_0x3f9733,_0x29c09f,_0x2bb69d){var _0x347768=_0x38d28e,_0x414f39=_0x3f9733(_0x347768('0x20b')),_0x394575=Object['prototype'][_0x347768('0x1a8')];_0x29c09f['exports']=function(_0x284398,_0x5141a2,_0x56010c,_0x41f3ea,_0x5a1ab9,_0x37352f){var _0x2cb407=_0x347768,_0x16c07a=0x1&_0x56010c,_0x1b62d3=_0x414f39(_0x284398),_0x209d5d=_0x1b62d3[_0x2cb407('0x796')];if(_0x209d5d!=_0x414f39(_0x5141a2)[_0x2cb407('0x796')]&&!_0x16c07a)return!0x1;for(var _0x2c9cae=_0x209d5d;_0x2c9cae--;){var _0xc4b0b8=_0x1b62d3[_0x2c9cae];if(!(_0x16c07a?_0xc4b0b8 in _0x5141a2:_0x394575[_0x2cb407('0x964')](_0x5141a2,_0xc4b0b8)))return!0x1;}var _0x1e0cb2=_0x37352f['get'](_0x284398),_0x279c32=_0x37352f[_0x2cb407('0xda6')](_0x5141a2);if(_0x1e0cb2&&_0x279c32)return _0x1e0cb2==_0x5141a2&&_0x279c32==_0x284398;var _0x1bff0f=!0x0;_0x37352f[_0x2cb407('0x7f8')](_0x284398,_0x5141a2),_0x37352f[_0x2cb407('0x7f8')](_0x5141a2,_0x284398);for(var _0x500182=_0x16c07a;++_0x2c9cae<_0x209d5d;){var _0x474a6f=_0x284398[_0xc4b0b8=_0x1b62d3[_0x2c9cae]],_0x187156=_0x5141a2[_0xc4b0b8];if(_0x41f3ea)var _0x11c6b8=_0x16c07a?_0x41f3ea(_0x187156,_0x474a6f,_0xc4b0b8,_0x5141a2,_0x284398,_0x37352f):_0x41f3ea(_0x474a6f,_0x187156,_0xc4b0b8,_0x284398,_0x5141a2,_0x37352f);if(!(void 0x0===_0x11c6b8?_0x474a6f===_0x187156||_0x5a1ab9(_0x474a6f,_0x187156,_0x56010c,_0x41f3ea,_0x37352f):_0x11c6b8)){_0x1bff0f=!0x1;break;}_0x500182||(_0x500182=_0x2cb407('0x63e')==_0xc4b0b8);}if(_0x1bff0f&&!_0x500182){var _0x9f8b83=_0x284398['constructor'],_0x3c19ab=_0x5141a2[_0x2cb407('0x63e')];_0x9f8b83==_0x3c19ab||!(_0x2cb407('0x63e')in _0x284398)||!(_0x2cb407('0x63e')in _0x5141a2)||_0x2cb407('0xa25')==typeof _0x9f8b83&&_0x9f8b83 instanceof _0x9f8b83&&_0x2cb407('0xa25')==typeof _0x3c19ab&&_0x3c19ab instanceof _0x3c19ab||(_0x1bff0f=!0x1);}return _0x37352f['delete'](_0x284398),_0x37352f[_0x2cb407('0xcf1')](_0x5141a2),_0x1bff0f;};},{'./_getAllKeys':0xcb}],0xca:[function(_0x5aa894,_0x483028,_0x3bc02a){var _0x59008b=_0x38d28e;(function(_0x2a44ea){var _0x85c04f=_0x1c0e,_0x44c7d6='object'==typeof _0x2a44ea&&_0x2a44ea&&_0x2a44ea[_0x85c04f('0xc5')]===Object&&_0x2a44ea;_0x483028['exports']=_0x44c7d6;}[_0x59008b('0x964')](this,'undefined'!=typeof global?global:_0x59008b('0xbfa')!=typeof self?self:_0x59008b('0xbfa')!=typeof window?window:{}));},{}],0xcb:[function(_0x5cda76,_0x52240f,_0x2f29f4){var _0x25912e=_0x38d28e,_0x3556f0=_0x5cda76(_0x25912e('0x40d')),_0x3e2012=_0x5cda76('./_getSymbols'),_0x2605ca=_0x5cda76(_0x25912e('0x90d'));_0x52240f[_0x25912e('0xd7')]=function(_0xfef2fa){return _0x3556f0(_0xfef2fa,_0x2605ca,_0x3e2012);};},{'./_baseGetAllKeys':0x9b,'./_getSymbols':0xd2,'./keys':0x123}],0xcc:[function(_0x329d2b,_0xd206e7,_0x594416){var _0x312353=_0x38d28e,_0x4b124e=_0x329d2b(_0x312353('0x40d')),_0x10168c=_0x329d2b(_0x312353('0x3dc')),_0x1a9ede=_0x329d2b(_0x312353('0x5e2'));_0xd206e7['exports']=function(_0x4f967d){return _0x4b124e(_0x4f967d,_0x1a9ede,_0x10168c);};},{'./_baseGetAllKeys':0x9b,'./_getSymbolsIn':0xd3,'./keysIn':0x124}],0xcd:[function(_0x56f281,_0x336f72,_0x2c60a9){var _0x3cdcfd=_0x38d28e,_0x53fb7d=_0x56f281(_0x3cdcfd('0xbe3'));_0x336f72['exports']=function(_0x46b673,_0x370c9a){var _0x42a6e2=_0x3cdcfd,_0x35ca9d=_0x46b673['__data__'];return _0x53fb7d(_0x370c9a)?_0x35ca9d[_0x42a6e2('0x3fd')==typeof _0x370c9a?_0x42a6e2('0x3fd'):'hash']:_0x35ca9d[_0x42a6e2('0xc78')];};},{'./_isKeyable':0xe2}],0xce:[function(_0x1d668e,_0x2b59a4,_0x27705e){var _0x46c913=_0x38d28e,_0x149f20=_0x1d668e(_0x46c913('0xc33')),_0x34efcc=_0x1d668e(_0x46c913('0x90d'));_0x2b59a4[_0x46c913('0xd7')]=function(_0x32ee95){var _0x370d2f=_0x46c913;for(var _0x3c4102=_0x34efcc(_0x32ee95),_0x48855f=_0x3c4102[_0x370d2f('0x796')];_0x48855f--;){var _0xd47dbc=_0x3c4102[_0x48855f],_0x1e01c5=_0x32ee95[_0xd47dbc];_0x3c4102[_0x48855f]=[_0xd47dbc,_0x1e01c5,_0x149f20(_0x1e01c5)];}return _0x3c4102;};},{'./_isStrictComparable':0xe5,'./keys':0x123}],0xcf:[function(_0x3e165d,_0xbeaba5,_0x572761){var _0x7ec094=_0x38d28e,_0x3722f4=_0x3e165d(_0x7ec094('0x78b')),_0x1ee9ca=_0x3e165d(_0x7ec094('0x88d'));_0xbeaba5[_0x7ec094('0xd7')]=function(_0x1f5929,_0x4b5be8){var _0x1bc53d=_0x1ee9ca(_0x1f5929,_0x4b5be8);return _0x3722f4(_0x1bc53d)?_0x1bc53d:void 0x0;};},{'./_baseIsNative':0xa3,'./_getValue':0xd5}],0xd0:[function(_0x990a11,_0x45d7df,_0x3aa752){var _0xe8ee54=_0x38d28e,_0x417c9b=_0x990a11(_0xe8ee54('0x6d4'))(Object['getPrototypeOf'],Object);_0x45d7df[_0xe8ee54('0xd7')]=_0x417c9b;},{'./_overArg':0xf8}],0xd1:[function(_0x15d026,_0x2890f4,_0x508b70){var _0x5e129c=_0x38d28e,_0x594e26=_0x15d026(_0x5e129c('0xa46')),_0x2b5416=Object[_0x5e129c('0x539')],_0x583698=_0x2b5416[_0x5e129c('0x1a8')],_0x2091ec=_0x2b5416[_0x5e129c('0x6e9')],_0xe8c8a1=_0x594e26?_0x594e26[_0x5e129c('0x96b')]:void 0x0;_0x2890f4[_0x5e129c('0xd7')]=function(_0x5dc345){var _0xd8b242=_0x5e129c,_0x96a234=_0x583698[_0xd8b242('0x964')](_0x5dc345,_0xe8c8a1),_0x294076=_0x5dc345[_0xe8c8a1];try{_0x5dc345[_0xe8c8a1]=void 0x0;var _0x31f759=!0x0;}catch(_0x252248){}var _0x1456fd=_0x2091ec[_0xd8b242('0x964')](_0x5dc345);return _0x31f759&&(_0x96a234?_0x5dc345[_0xe8c8a1]=_0x294076:delete _0x5dc345[_0xe8c8a1]),_0x1456fd;};},{'./_Symbol':0x85}],0xd2:[function(_0x46d401,_0x4fe3f7,_0x289d54){var _0x55065a=_0x38d28e,_0x32ee12=_0x46d401(_0x55065a('0x166')),_0x1c689e=_0x46d401(_0x55065a('0x911')),_0x35acfd=Object['prototype'][_0x55065a('0x603')],_0x86ace2=Object[_0x55065a('0xc50')],_0x34a877=_0x86ace2?function(_0x21ea79){return null==_0x21ea79?[]:(_0x21ea79=Object(_0x21ea79),_0x32ee12(_0x86ace2(_0x21ea79),function(_0x44f944){var _0x1a75ad=_0x1c0e;return _0x35acfd[_0x1a75ad('0x964')](_0x21ea79,_0x44f944);}));}:_0x1c689e;_0x4fe3f7[_0x55065a('0xd7')]=_0x34a877;},{'./_arrayFilter':0x8a,'./stubArray':0x12a}],0xd3:[function(_0x2a7d70,_0x2ea10c,_0x3008a0){var _0x13cba8=_0x38d28e,_0x23c18b=_0x2a7d70(_0x13cba8('0xb60')),_0x490ceb=_0x2a7d70(_0x13cba8('0x9f0')),_0xb3cc8f=_0x2a7d70('./_getSymbols'),_0x308a24=_0x2a7d70(_0x13cba8('0x911')),_0x4db6db=Object[_0x13cba8('0xc50')]?function(_0x1ee23e){for(var _0x26669c=[];_0x1ee23e;)_0x23c18b(_0x26669c,_0xb3cc8f(_0x1ee23e)),_0x1ee23e=_0x490ceb(_0x1ee23e);return _0x26669c;}:_0x308a24;_0x2ea10c[_0x13cba8('0xd7')]=_0x4db6db;},{'./_arrayPush':0x8d,'./_getPrototype':0xd0,'./_getSymbols':0xd2,'./stubArray':0x12a}],0xd4:[function(_0x65e4,_0xa6fd16,_0x337b07){var _0x5b585d=_0x38d28e,_0x3c8b24=_0x65e4(_0x5b585d('0x40f')),_0x1e7ceb=_0x65e4(_0x5b585d('0x250')),_0xeaae86=_0x65e4('./_Promise'),_0x1caa93=_0x65e4(_0x5b585d('0x389')),_0x3c3120=_0x65e4(_0x5b585d('0x781')),_0x3773d3=_0x65e4(_0x5b585d('0x36d')),_0x5d5a4f=_0x65e4(_0x5b585d('0xc8e')),_0x3396b7=_0x5d5a4f(_0x3c8b24),_0x3ca7eb=_0x5d5a4f(_0x1e7ceb),_0x101878=_0x5d5a4f(_0xeaae86),_0x28b857=_0x5d5a4f(_0x1caa93),_0x5b3ccf=_0x5d5a4f(_0x3c3120),_0xc68963=_0x3773d3;(_0x3c8b24&&'[object\x20DataView]'!=_0xc68963(new _0x3c8b24(new ArrayBuffer(0x1)))||_0x1e7ceb&&_0x5b585d('0x317')!=_0xc68963(new _0x1e7ceb())||_0xeaae86&&'[object\x20Promise]'!=_0xc68963(_0xeaae86[_0x5b585d('0x1d6')]())||_0x1caa93&&'[object\x20Set]'!=_0xc68963(new _0x1caa93())||_0x3c3120&&_0x5b585d('0xf5')!=_0xc68963(new _0x3c3120()))&&(_0xc68963=function(_0xc8b67){var _0x5e06e7=_0x5b585d,_0x2c9cab=_0x3773d3(_0xc8b67),_0xdb53c9=_0x5e06e7('0x846')==_0x2c9cab?_0xc8b67[_0x5e06e7('0x63e')]:void 0x0,_0x5dde8a=_0xdb53c9?_0x5d5a4f(_0xdb53c9):'';if(_0x5dde8a)switch(_0x5dde8a){case _0x3396b7:return _0x5e06e7('0x34e');case _0x3ca7eb:return _0x5e06e7('0x317');case _0x101878:return _0x5e06e7('0x28f');case _0x28b857:return _0x5e06e7('0xc6a');case _0x5b3ccf:return _0x5e06e7('0xf5');}return _0x2c9cab;}),_0xa6fd16[_0x5b585d('0xd7')]=_0xc68963;},{'./_DataView':0x7c,'./_Map':0x7f,'./_Promise':0x81,'./_Set':0x82,'./_WeakMap':0x87,'./_baseGetTag':0x9c,'./_toSource':0x108}],0xd5:[function(_0x55e710,_0x4cea56,_0xfe3b9){_0x4cea56['exports']=function(_0x2da5f2,_0xfa8525){return null==_0x2da5f2?void 0x0:_0x2da5f2[_0xfa8525];};},{}],0xd6:[function(_0x3c119c,_0x240a55,_0x4ae085){var _0x517155=_0x38d28e,_0x30607d=_0x3c119c(_0x517155('0xbe0')),_0x579f1c=_0x3c119c(_0x517155('0x4bb')),_0x3bf7f8=_0x3c119c(_0x517155('0x53a')),_0x383598=_0x3c119c(_0x517155('0x6c')),_0x78aef8=_0x3c119c(_0x517155('0x301')),_0x5b63b5=_0x3c119c(_0x517155('0x7eb'));_0x240a55[_0x517155('0xd7')]=function(_0x4cbf6a,_0x26e729,_0x71db0){var _0x167c12=_0x517155;for(var _0x1faa19=-0x1,_0x546667=(_0x26e729=_0x30607d(_0x26e729,_0x4cbf6a))[_0x167c12('0x796')],_0x502f16=!0x1;++_0x1faa19<_0x546667;){var _0x4db660=_0x5b63b5(_0x26e729[_0x1faa19]);if(!(_0x502f16=null!=_0x4cbf6a&&_0x71db0(_0x4cbf6a,_0x4db660)))break;_0x4cbf6a=_0x4cbf6a[_0x4db660];}return _0x502f16||++_0x1faa19!=_0x546667?_0x502f16:!!(_0x546667=null==_0x4cbf6a?0x0:_0x4cbf6a[_0x167c12('0x796')])&&_0x78aef8(_0x546667)&&_0x383598(_0x4db660,_0x546667)&&(_0x3bf7f8(_0x4cbf6a)||_0x579f1c(_0x4cbf6a));};},{'./_castPath':0xb7,'./_isIndex':0xdf,'./_toKey':0x107,'./isArguments':0x113,'./isArray':0x114,'./isLength':0x119}],0xd7:[function(_0x16ed7d,_0x2d9663,_0x5b96db){var _0x6bf2f4=_0x38d28e,_0x5efa75=_0x16ed7d(_0x6bf2f4('0x591'));_0x2d9663[_0x6bf2f4('0xd7')]=function(){var _0x334882=_0x6bf2f4;this[_0x334882('0x15d')]=_0x5efa75?_0x5efa75(null):{},this[_0x334882('0x2f9')]=0x0;};},{'./_nativeCreate':0xf3}],0xd8:[function(_0x94b3a7,_0xdaa040,_0x125289){var _0x3c7223=_0x38d28e;_0xdaa040[_0x3c7223('0xd7')]=function(_0x8ed143){var _0x1c6382=_0x3c7223,_0x5ce9ce=this[_0x1c6382('0xa77')](_0x8ed143)&&delete this['__data__'][_0x8ed143];return this[_0x1c6382('0x2f9')]-=_0x5ce9ce?0x1:0x0,_0x5ce9ce;};},{}],0xd9:[function(_0x104e0a,_0x385450,_0x2fc439){var _0x51d85d=_0x38d28e,_0x326a57=_0x104e0a('./_nativeCreate'),_0xaadb11=Object[_0x51d85d('0x539')][_0x51d85d('0x1a8')];_0x385450[_0x51d85d('0xd7')]=function(_0x496bf0){var _0x5e85c6=_0x51d85d,_0x1d3d7b=this[_0x5e85c6('0x15d')];if(_0x326a57){var _0x48cfee=_0x1d3d7b[_0x496bf0];return _0x5e85c6('0x617')===_0x48cfee?void 0x0:_0x48cfee;}return _0xaadb11[_0x5e85c6('0x964')](_0x1d3d7b,_0x496bf0)?_0x1d3d7b[_0x496bf0]:void 0x0;};},{'./_nativeCreate':0xf3}],0xda:[function(_0x50fd09,_0x805810,_0x133541){var _0x123ca1=_0x38d28e,_0x4cc0ac=_0x50fd09(_0x123ca1('0x591')),_0x406a80=Object[_0x123ca1('0x539')]['hasOwnProperty'];_0x805810[_0x123ca1('0xd7')]=function(_0x8f86f3){var _0x4aa945=_0x123ca1,_0x3a0329=this['__data__'];return _0x4cc0ac?void 0x0!==_0x3a0329[_0x8f86f3]:_0x406a80[_0x4aa945('0x964')](_0x3a0329,_0x8f86f3);};},{'./_nativeCreate':0xf3}],0xdb:[function(_0x478992,_0x4d56e6,_0x3c8c12){var _0x2ef867=_0x38d28e,_0x37fdf2=_0x478992(_0x2ef867('0x591'));_0x4d56e6[_0x2ef867('0xd7')]=function(_0x5a9df0,_0xd2ed01){var _0xec1e42=_0x2ef867,_0x102c3b=this['__data__'];return this[_0xec1e42('0x2f9')]+=this['has'](_0x5a9df0)?0x0:0x1,_0x102c3b[_0x5a9df0]=_0x37fdf2&&void 0x0===_0xd2ed01?_0xec1e42('0x617'):_0xd2ed01,this;};},{'./_nativeCreate':0xf3}],0xdc:[function(_0x12538b,_0x5d984f,_0x241b93){var _0x3d7f5d=_0x38d28e,_0x48ed9a=Object['prototype'][_0x3d7f5d('0x1a8')];_0x5d984f[_0x3d7f5d('0xd7')]=function(_0x50e148){var _0x11ad53=_0x3d7f5d,_0x823600=_0x50e148[_0x11ad53('0x796')],_0x3f173e=new _0x50e148['constructor'](_0x823600);return _0x823600&&_0x11ad53('0x3fd')==typeof _0x50e148[0x0]&&_0x48ed9a[_0x11ad53('0x964')](_0x50e148,_0x11ad53('0x31d'))&&(_0x3f173e['index']=_0x50e148[_0x11ad53('0x31d')],_0x3f173e[_0x11ad53('0x555')]=_0x50e148[_0x11ad53('0x555')]),_0x3f173e;};},{}],0xdd:[function(_0x5394fa,_0x2c6349,_0x10ab29){var _0x3e1fb0=_0x38d28e,_0x36d2fe=_0x5394fa(_0x3e1fb0('0xd11')),_0x3edf1b=_0x5394fa('./_cloneDataView'),_0x30b75e=_0x5394fa('./_cloneRegExp'),_0x1083f8=_0x5394fa('./_cloneSymbol'),_0x48b1d3=_0x5394fa('./_cloneTypedArray');_0x2c6349[_0x3e1fb0('0xd7')]=function(_0x50a683,_0x1a6ba8,_0x4031b7){var _0x5364a1=_0x3e1fb0,_0x52a592=_0x50a683[_0x5364a1('0x63e')];switch(_0x1a6ba8){case _0x5364a1('0x5e4'):return _0x36d2fe(_0x50a683);case'[object\x20Boolean]':case _0x5364a1('0x574'):return new _0x52a592(+_0x50a683);case'[object\x20DataView]':return _0x3edf1b(_0x50a683,_0x4031b7);case _0x5364a1('0x824'):case _0x5364a1('0x83'):case _0x5364a1('0xd1a'):case _0x5364a1('0xc93'):case _0x5364a1('0x426'):case _0x5364a1('0x9f1'):case'[object\x20Uint8ClampedArray]':case'[object\x20Uint16Array]':case _0x5364a1('0xb33'):return _0x48b1d3(_0x50a683,_0x4031b7);case'[object\x20Map]':return new _0x52a592();case _0x5364a1('0x335'):case _0x5364a1('0xe'):return new _0x52a592(_0x50a683);case _0x5364a1('0xd06'):return _0x30b75e(_0x50a683);case _0x5364a1('0xc6a'):return new _0x52a592();case _0x5364a1('0x8ff'):return _0x1083f8(_0x50a683);}};},{'./_cloneArrayBuffer':0xb8,'./_cloneDataView':0xba,'./_cloneRegExp':0xbb,'./_cloneSymbol':0xbc,'./_cloneTypedArray':0xbd}],0xde:[function(_0x5c0f1c,_0x323c19,_0x40407b){var _0x1578d3=_0x38d28e,_0x18bf38=_0x5c0f1c(_0x1578d3('0xcd4')),_0x2ac9cd=_0x5c0f1c(_0x1578d3('0x9f0')),_0x3ce787=_0x5c0f1c(_0x1578d3('0xab'));_0x323c19[_0x1578d3('0xd7')]=function(_0x1da012){return'function'!=typeof _0x1da012['constructor']||_0x3ce787(_0x1da012)?{}:_0x18bf38(_0x2ac9cd(_0x1da012));};},{'./_baseCreate':0x96,'./_getPrototype':0xd0,'./_isPrototype':0xe4}],0xdf:[function(_0x2abb18,_0x2bbd79,_0x1fd255){var _0xf892cd=/^(?:0|[1-9]\d*)$/;_0x2bbd79['exports']=function(_0x284a84,_0x33a539){var _0x89d9eb=_0x1c0e,_0x1417f9=typeof _0x284a84;return!!(_0x33a539=null==_0x33a539?0x1fffffffffffff:_0x33a539)&&(_0x89d9eb('0x218')==_0x1417f9||_0x89d9eb('0xb5')!=_0x1417f9&&_0xf892cd[_0x89d9eb('0x96c')](_0x284a84))&&_0x284a84>-0x1&&_0x284a84%0x1==0x0&&_0x284a84<_0x33a539;};},{}],0xe0:[function(_0x4d8420,_0x5948ec,_0x340a08){var _0x3b0ceb=_0x38d28e,_0x27c53f=_0x4d8420('./eq'),_0x176533=_0x4d8420(_0x3b0ceb('0xba8')),_0x41714d=_0x4d8420(_0x3b0ceb('0x6c')),_0x30fa88=_0x4d8420('./isObject');_0x5948ec['exports']=function(_0x203e61,_0x21f43e,_0x13e493){var _0x5c98a9=_0x3b0ceb;if(!_0x30fa88(_0x13e493))return!0x1;var _0x570c19=typeof _0x21f43e;return!!(_0x5c98a9('0x218')==_0x570c19?_0x176533(_0x13e493)&&_0x41714d(_0x21f43e,_0x13e493[_0x5c98a9('0x796')]):_0x5c98a9('0x3fd')==_0x570c19&&_0x21f43e in _0x13e493)&&_0x27c53f(_0x13e493[_0x21f43e],_0x203e61);};},{'./_isIndex':0xdf,'./eq':0x10d,'./isArrayLike':0x115,'./isObject':0x11b}],0xe1:[function(_0x15b8b8,_0xdedbed,_0x47efd4){var _0x38df07=_0x38d28e,_0x8a0b36=_0x15b8b8('./isArray'),_0xf5429=_0x15b8b8(_0x38df07('0xadf')),_0x40aa4b=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,_0x261990=/^\w*$/;_0xdedbed[_0x38df07('0xd7')]=function(_0x3ad9ed,_0x528ae8){var _0x350cca=_0x38df07;if(_0x8a0b36(_0x3ad9ed))return!0x1;var _0x233af9=typeof _0x3ad9ed;return!(_0x350cca('0x218')!=_0x233af9&&_0x350cca('0xb5')!=_0x233af9&&_0x350cca('0xb5e')!=_0x233af9&&null!=_0x3ad9ed&&!_0xf5429(_0x3ad9ed))||(_0x261990['test'](_0x3ad9ed)||!_0x40aa4b[_0x350cca('0x96c')](_0x3ad9ed)||null!=_0x528ae8&&_0x3ad9ed in Object(_0x528ae8));};},{'./isArray':0x114,'./isSymbol':0x120}],0xe2:[function(_0x25008c,_0x35e4a0,_0x2efe76){var _0x307de9=_0x38d28e;_0x35e4a0[_0x307de9('0xd7')]=function(_0x531eb2){var _0xe58937=typeof _0x531eb2;return'string'==_0xe58937||'number'==_0xe58937||'symbol'==_0xe58937||'boolean'==_0xe58937?'__proto__'!==_0x531eb2:null===_0x531eb2;};},{}],0xe3:[function(_0x15ab46,_0x2863cc,_0x9012ba){var _0x37ec9a=_0x38d28e,_0x5df366,_0x268927=_0x15ab46(_0x37ec9a('0xcc5')),_0x59a344=(_0x5df366=/[^.]+$/[_0x37ec9a('0x850')](_0x268927&&_0x268927[_0x37ec9a('0xabc')]&&_0x268927[_0x37ec9a('0xabc')][_0x37ec9a('0xbc1')]||''))?'Symbol(src)_1.'+_0x5df366:'';_0x2863cc[_0x37ec9a('0xd7')]=function(_0x18ac23){return!!_0x59a344&&_0x59a344 in _0x18ac23;};},{'./_coreJsData':0xc2}],0xe4:[function(_0x2be8d1,_0x3d6f56,_0x24b477){var _0x5dfca6=_0x38d28e,_0x14f2f8=Object['prototype'];_0x3d6f56[_0x5dfca6('0xd7')]=function(_0xc2de5d){var _0x449436=_0x5dfca6,_0x39603a=_0xc2de5d&&_0xc2de5d[_0x449436('0x63e')];return _0xc2de5d===(_0x449436('0xa25')==typeof _0x39603a&&_0x39603a[_0x449436('0x539')]||_0x14f2f8);};},{}],0xe5:[function(_0x3428bb,_0x4a86ce,_0x25341a){var _0x13cbd9=_0x38d28e,_0x596537=_0x3428bb(_0x13cbd9('0xc5e'));_0x4a86ce['exports']=function(_0x1fff41){return _0x1fff41==_0x1fff41&&!_0x596537(_0x1fff41);};},{'./isObject':0x11b}],0xe6:[function(_0x3ca11e,_0x4e7333,_0x2011ff){var _0x354830=_0x38d28e;_0x4e7333[_0x354830('0xd7')]=function(){var _0x31b714=_0x354830;this[_0x31b714('0x15d')]=[],this[_0x31b714('0x2f9')]=0x0;};},{}],0xe7:[function(_0x54134b,_0x8722fa,_0x18dad5){var _0x157c7e=_0x38d28e,_0x284126=_0x54134b('./_assocIndexOf'),_0x5cf38f=Array['prototype']['splice'];_0x8722fa[_0x157c7e('0xd7')]=function(_0xece01e){var _0x3eeabb=_0x157c7e,_0x4dd148=this[_0x3eeabb('0x15d')],_0x300276=_0x284126(_0x4dd148,_0xece01e);return!(_0x300276<0x0)&&(_0x300276==_0x4dd148[_0x3eeabb('0x796')]-0x1?_0x4dd148[_0x3eeabb('0x6dc')]():_0x5cf38f[_0x3eeabb('0x964')](_0x4dd148,_0x300276,0x1),--this[_0x3eeabb('0x2f9')],!0x0);};},{'./_assocIndexOf':0x91}],0xe8:[function(_0x2bac4e,_0x1a42c2,_0x2bf171){var _0x3f1217=_0x38d28e,_0x4044bc=_0x2bac4e(_0x3f1217('0xb7a'));_0x1a42c2[_0x3f1217('0xd7')]=function(_0x3aa1fd){var _0x1528e5=_0x3f1217,_0x25b4cf=this[_0x1528e5('0x15d')],_0x148b10=_0x4044bc(_0x25b4cf,_0x3aa1fd);return _0x148b10<0x0?void 0x0:_0x25b4cf[_0x148b10][0x1];};},{'./_assocIndexOf':0x91}],0xe9:[function(_0x2bc954,_0x28dbd3,_0x5b4051){var _0x524a59=_0x38d28e,_0x2f439d=_0x2bc954(_0x524a59('0xb7a'));_0x28dbd3[_0x524a59('0xd7')]=function(_0x3e4f7f){var _0x5b3451=_0x524a59;return _0x2f439d(this[_0x5b3451('0x15d')],_0x3e4f7f)>-0x1;};},{'./_assocIndexOf':0x91}],0xea:[function(_0x472c01,_0x2ae4ec,_0x595827){var _0xae18b1=_0x38d28e,_0x533bba=_0x472c01(_0xae18b1('0xb7a'));_0x2ae4ec[_0xae18b1('0xd7')]=function(_0x346ed2,_0x8c3ea2){var _0x4e8943=_0xae18b1,_0x5bd3ff=this[_0x4e8943('0x15d')],_0x54bcfd=_0x533bba(_0x5bd3ff,_0x346ed2);return _0x54bcfd<0x0?(++this['size'],_0x5bd3ff[_0x4e8943('0xb2')]([_0x346ed2,_0x8c3ea2])):_0x5bd3ff[_0x54bcfd][0x1]=_0x8c3ea2,this;};},{'./_assocIndexOf':0x91}],0xeb:[function(_0x24441e,_0x377ec0,_0x58007f){var _0x4b31fb=_0x38d28e,_0x49c5ed=_0x24441e(_0x4b31fb('0xa9c')),_0x4117e0=_0x24441e(_0x4b31fb('0x9da')),_0x33e69=_0x24441e(_0x4b31fb('0x250'));_0x377ec0[_0x4b31fb('0xd7')]=function(){var _0x3b2f29=_0x4b31fb;this['size']=0x0,this[_0x3b2f29('0x15d')]={'hash':new _0x49c5ed(),'map':new(_0x33e69||_0x4117e0)(),'string':new _0x49c5ed()};};},{'./_Hash':0x7d,'./_ListCache':0x7e,'./_Map':0x7f}],0xec:[function(_0x460e3d,_0x198b71,_0x248201){var _0x2bd6c7=_0x38d28e,_0x3b0fe2=_0x460e3d(_0x2bd6c7('0x8b9'));_0x198b71['exports']=function(_0x3cbca1){var _0x5cfaa4=_0x2bd6c7,_0x243205=_0x3b0fe2(this,_0x3cbca1)['delete'](_0x3cbca1);return this[_0x5cfaa4('0x2f9')]-=_0x243205?0x1:0x0,_0x243205;};},{'./_getMapData':0xcd}],0xed:[function(_0xf00dfa,_0x7d697,_0x4b7189){var _0xa5d104=_0x38d28e,_0x347b74=_0xf00dfa(_0xa5d104('0x8b9'));_0x7d697['exports']=function(_0x3ceccb){var _0x25ed6e=_0xa5d104;return _0x347b74(this,_0x3ceccb)[_0x25ed6e('0xda6')](_0x3ceccb);};},{'./_getMapData':0xcd}],0xee:[function(_0x299d1b,_0x80984c,_0x83a401){var _0x1b5dcc=_0x38d28e,_0x4195d5=_0x299d1b(_0x1b5dcc('0x8b9'));_0x80984c['exports']=function(_0x4a42e0){return _0x4195d5(this,_0x4a42e0)['has'](_0x4a42e0);};},{'./_getMapData':0xcd}],0xef:[function(_0x5658c8,_0xbff3df,_0x20dc52){var _0x19e89b=_0x38d28e,_0x595817=_0x5658c8(_0x19e89b('0x8b9'));_0xbff3df[_0x19e89b('0xd7')]=function(_0x226a89,_0x4c0e92){var _0xb81d4f=_0x19e89b,_0x2de1b4=_0x595817(this,_0x226a89),_0xb5ad0e=_0x2de1b4['size'];return _0x2de1b4[_0xb81d4f('0x7f8')](_0x226a89,_0x4c0e92),this[_0xb81d4f('0x2f9')]+=_0x2de1b4['size']==_0xb5ad0e?0x0:0x1,this;};},{'./_getMapData':0xcd}],0xf0:[function(_0x3afc84,_0xa34bf5,_0x1d0e0e){_0xa34bf5['exports']=function(_0x1bd78f){var _0x27e96f=_0x1c0e,_0x3b5779=-0x1,_0x5af78b=Array(_0x1bd78f[_0x27e96f('0x2f9')]);return _0x1bd78f[_0x27e96f('0xc21')](function(_0x24a7c8,_0x511342){_0x5af78b[++_0x3b5779]=[_0x511342,_0x24a7c8];}),_0x5af78b;};},{}],0xf1:[function(_0x242a0e,_0x4cd668,_0x28bd4f){var _0x58917e=_0x38d28e;_0x4cd668[_0x58917e('0xd7')]=function(_0x5947c5,_0x1bf0c7){return function(_0x9f9ea3){return null!=_0x9f9ea3&&(_0x9f9ea3[_0x5947c5]===_0x1bf0c7&&(void 0x0!==_0x1bf0c7||_0x5947c5 in Object(_0x9f9ea3)));};};},{}],0xf2:[function(_0x4a5f2e,_0x154e2d,_0x29ff9c){var _0x5ddbcf=_0x38d28e,_0x1d00a5=_0x4a5f2e('./memoize');_0x154e2d[_0x5ddbcf('0xd7')]=function(_0x403f98){var _0x459aca=_0x5ddbcf,_0x5487bf=_0x1d00a5(_0x403f98,function(_0x450c4d){var _0xded28b=_0x1c0e;return 0x1f4===_0x490d6b[_0xded28b('0x2f9')]&&_0x490d6b[_0xded28b('0x45')](),_0x450c4d;}),_0x490d6b=_0x5487bf[_0x459aca('0x6ad')];return _0x5487bf;};},{'./memoize':0x126}],0xf3:[function(_0x408355,_0x1f007e,_0x181d02){var _0x1f1aaa=_0x38d28e,_0x5e8c6a=_0x408355('./_getNative')(Object,_0x1f1aaa('0x3e2'));_0x1f007e[_0x1f1aaa('0xd7')]=_0x5e8c6a;},{'./_getNative':0xcf}],0xf4:[function(_0x365592,_0x40f24a,_0x1dace9){var _0x5eef8b=_0x38d28e,_0x2491e7=_0x365592(_0x5eef8b('0x6d4'))(Object[_0x5eef8b('0xabc')],Object);_0x40f24a['exports']=_0x2491e7;},{'./_overArg':0xf8}],0xf5:[function(_0x2377b1,_0x2432a4,_0x4f78fe){var _0x15e4aa=_0x38d28e;_0x2432a4[_0x15e4aa('0xd7')]=function(_0x51ab2e){var _0x514c6e=[];if(null!=_0x51ab2e)for(var _0x515ae5 in Object(_0x51ab2e))_0x514c6e['push'](_0x515ae5);return _0x514c6e;};},{}],0xf6:[function(_0x1efa05,_0x34a3ee,_0x302749){var _0xc265b6=_0x38d28e,_0x4600bf=_0x1efa05(_0xc265b6('0xd8c')),_0x528781=_0xc265b6('0xbfd')==typeof _0x302749&&_0x302749&&!_0x302749[_0xc265b6('0x4f4')]&&_0x302749,_0xfddc14=_0x528781&&'object'==typeof _0x34a3ee&&_0x34a3ee&&!_0x34a3ee[_0xc265b6('0x4f4')]&&_0x34a3ee,_0x2329c8=_0xfddc14&&_0xfddc14[_0xc265b6('0xd7')]===_0x528781&&_0x4600bf[_0xc265b6('0x4c3')],_0x37f787=function(){var _0x13fbad=_0xc265b6;try{var _0x2009c1=_0xfddc14&&_0xfddc14[_0x13fbad('0x1c1')]&&_0xfddc14['require'](_0x13fbad('0x35d'))['types'];return _0x2009c1||_0x2329c8&&_0x2329c8[_0x13fbad('0x9be')]&&_0x2329c8[_0x13fbad('0x9be')](_0x13fbad('0x35d'));}catch(_0x1640f0){}}();_0x34a3ee['exports']=_0x37f787;},{'./_freeGlobal':0xca}],0xf7:[function(_0x42b34c,_0x19ad56,_0x199333){var _0x32c57c=_0x38d28e,_0x55232f=Object[_0x32c57c('0x539')][_0x32c57c('0x6e9')];_0x19ad56['exports']=function(_0x4ea801){var _0x1f138f=_0x32c57c;return _0x55232f[_0x1f138f('0x964')](_0x4ea801);};},{}],0xf8:[function(_0x4b6136,_0x56c08d,_0x5d3f4d){var _0x15cb83=_0x38d28e;_0x56c08d[_0x15cb83('0xd7')]=function(_0x515603,_0x36a903){return function(_0x4b6918){return _0x515603(_0x36a903(_0x4b6918));};};},{}],0xf9:[function(_0x141a19,_0x45d195,_0x17236a){var _0x23bf5c=_0x38d28e,_0x42b334=_0x141a19('./_apply'),_0x4196f7=Math[_0x23bf5c('0x6c1')];_0x45d195[_0x23bf5c('0xd7')]=function(_0x2fdf00,_0x5756bb,_0x1bb401){var _0x1d82a1=_0x23bf5c;return _0x5756bb=_0x4196f7(void 0x0===_0x5756bb?_0x2fdf00[_0x1d82a1('0x796')]-0x1:_0x5756bb,0x0),function(){var _0x54cdd1=_0x1d82a1;for(var _0x4dbbd8=arguments,_0x448bcd=-0x1,_0x597b8e=_0x4196f7(_0x4dbbd8[_0x54cdd1('0x796')]-_0x5756bb,0x0),_0x5e3dcb=Array(_0x597b8e);++_0x448bcd<_0x597b8e;)_0x5e3dcb[_0x448bcd]=_0x4dbbd8[_0x5756bb+_0x448bcd];_0x448bcd=-0x1;for(var _0x48d151=Array(_0x5756bb+0x1);++_0x448bcd<_0x5756bb;)_0x48d151[_0x448bcd]=_0x4dbbd8[_0x448bcd];return _0x48d151[_0x5756bb]=_0x1bb401(_0x5e3dcb),_0x42b334(_0x2fdf00,this,_0x48d151);};};},{'./_apply':0x88}],0xfa:[function(_0x59035e,_0x2d66a0,_0x2ca927){var _0xee9aeb=_0x38d28e,_0x1977b1=_0x59035e('./_freeGlobal'),_0x39dc76='object'==typeof self&&self&&self[_0xee9aeb('0xc5')]===Object&&self,_0x3f16b1=_0x1977b1||_0x39dc76||Function(_0xee9aeb('0x5f3'))();_0x2d66a0[_0xee9aeb('0xd7')]=_0x3f16b1;},{'./_freeGlobal':0xca}],0xfb:[function(_0x8b7d4d,_0x2733cb,_0x3a24b0){var _0x49f505=_0x38d28e;_0x2733cb[_0x49f505('0xd7')]=function(_0x4aab76,_0x16b021){var _0x3b2ddf=_0x49f505;if((_0x3b2ddf('0x63e')!==_0x16b021||_0x3b2ddf('0xa25')!=typeof _0x4aab76[_0x16b021])&&_0x3b2ddf('0xcb9')!=_0x16b021)return _0x4aab76[_0x16b021];};},{}],0xfc:[function(_0x2588d1,_0x459d19,_0x2a1374){var _0x2fa549=_0x38d28e;_0x459d19[_0x2fa549('0xd7')]=function(_0x309acc){var _0x418f00=_0x2fa549;return this[_0x418f00('0x15d')][_0x418f00('0x7f8')](_0x309acc,'__lodash_hash_undefined__'),this;};},{}],0xfd:[function(_0x18320c,_0x50abf9,_0x4a14fc){var _0x343076=_0x38d28e;_0x50abf9[_0x343076('0xd7')]=function(_0x46eca8){var _0x54c2ef=_0x343076;return this[_0x54c2ef('0x15d')][_0x54c2ef('0xa77')](_0x46eca8);};},{}],0xfe:[function(_0x3d23ee,_0x461fe5,_0x2b815c){var _0x128220=_0x38d28e;_0x461fe5[_0x128220('0xd7')]=function(_0x32b541){var _0x685bdd=_0x128220,_0x5b6c49=-0x1,_0x3a6375=Array(_0x32b541[_0x685bdd('0x2f9')]);return _0x32b541[_0x685bdd('0xc21')](function(_0x20a641){_0x3a6375[++_0x5b6c49]=_0x20a641;}),_0x3a6375;};},{}],0xff:[function(_0x213bbc,_0x5bb1a1,_0x128040){var _0x5cdbb8=_0x38d28e,_0x23adbb=_0x213bbc(_0x5cdbb8('0x969')),_0x1c1aa8=_0x213bbc(_0x5cdbb8('0xd42'))(_0x23adbb);_0x5bb1a1[_0x5cdbb8('0xd7')]=_0x1c1aa8;},{'./_baseSetToString':0xb1,'./_shortOut':0x100}],0x100:[function(_0x1a5f90,_0x2e5f64,_0x22650b){var _0x5623fb=_0x38d28e,_0x4eab4d=Date[_0x5623fb('0x3f4')];_0x2e5f64[_0x5623fb('0xd7')]=function(_0x4a53d1){var _0x5a7cfe=0x0,_0x1bba2e=0x0;return function(){var _0x4e7233=_0x1c0e,_0x393a50=_0x4eab4d(),_0x2ba2ac=0x10-(_0x393a50-_0x1bba2e);if(_0x1bba2e=_0x393a50,_0x2ba2ac>0x0){if(++_0x5a7cfe>=0x320)return arguments[0x0];}else _0x5a7cfe=0x0;return _0x4a53d1[_0x4e7233('0x365')](void 0x0,arguments);};};},{}],0x101:[function(_0x2d9a75,_0x3038b0,_0x237dac){var _0x128c51=_0x38d28e,_0xc24280=_0x2d9a75(_0x128c51('0x9da'));_0x3038b0['exports']=function(){var _0x29bbca=_0x128c51;this[_0x29bbca('0x15d')]=new _0xc24280(),this[_0x29bbca('0x2f9')]=0x0;};},{'./_ListCache':0x7e}],0x102:[function(_0x1a2049,_0x4ecb00,_0x414fc3){var _0x2ef247=_0x38d28e;_0x4ecb00[_0x2ef247('0xd7')]=function(_0x11c674){var _0x3528f0=_0x2ef247,_0x171342=this[_0x3528f0('0x15d')],_0x2b8979=_0x171342[_0x3528f0('0xcf1')](_0x11c674);return this[_0x3528f0('0x2f9')]=_0x171342[_0x3528f0('0x2f9')],_0x2b8979;};},{}],0x103:[function(_0x12387b,_0x2f4f6d,_0xd5b95b){var _0x16971b=_0x38d28e;_0x2f4f6d[_0x16971b('0xd7')]=function(_0x473be9){var _0x35bda5=_0x16971b;return this[_0x35bda5('0x15d')]['get'](_0x473be9);};},{}],0x104:[function(_0x5e39e3,_0x17f34b,_0x52011e){_0x17f34b['exports']=function(_0x5c7b5){var _0x3aef4b=_0x1c0e;return this[_0x3aef4b('0x15d')]['has'](_0x5c7b5);};},{}],0x105:[function(_0x199d9a,_0x4590e3,_0x24735b){var _0x19fb9e=_0x38d28e,_0x393229=_0x199d9a(_0x19fb9e('0x9da')),_0x3acec1=_0x199d9a(_0x19fb9e('0x250')),_0x4dc3f5=_0x199d9a(_0x19fb9e('0x1e1'));_0x4590e3['exports']=function(_0x2d322b,_0x40bde5){var _0x4ba49d=_0x19fb9e,_0x3acc73=this[_0x4ba49d('0x15d')];if(_0x3acc73 instanceof _0x393229){var _0x2590d8=_0x3acc73[_0x4ba49d('0x15d')];if(!_0x3acec1||_0x2590d8[_0x4ba49d('0x796')]<0xc7)return _0x2590d8[_0x4ba49d('0xb2')]([_0x2d322b,_0x40bde5]),this[_0x4ba49d('0x2f9')]=++_0x3acc73['size'],this;_0x3acc73=this[_0x4ba49d('0x15d')]=new _0x4dc3f5(_0x2590d8);}return _0x3acc73[_0x4ba49d('0x7f8')](_0x2d322b,_0x40bde5),this[_0x4ba49d('0x2f9')]=_0x3acc73[_0x4ba49d('0x2f9')],this;};},{'./_ListCache':0x7e,'./_Map':0x7f,'./_MapCache':0x80}],0x106:[function(_0x15eacc,_0x5d2ad4,_0x12d529){var _0x368910=_0x38d28e,_0x3bbd95=_0x15eacc('./_memoizeCapped'),_0x4ca094=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_0x388272=/\\(\\)?/g,_0x39307b=_0x3bbd95(function(_0xf4d08e){var _0x4e0cb5=_0x1c0e,_0x30cbe0=[];return 0x2e===_0xf4d08e['charCodeAt'](0x0)&&_0x30cbe0[_0x4e0cb5('0xb2')](''),_0xf4d08e['replace'](_0x4ca094,function(_0x30149d,_0x27ed89,_0x4ad2b7,_0x57775f){_0x30cbe0['push'](_0x4ad2b7?_0x57775f['replace'](_0x388272,'$1'):_0x27ed89||_0x30149d);}),_0x30cbe0;});_0x5d2ad4[_0x368910('0xd7')]=_0x39307b;},{'./_memoizeCapped':0xf2}],0x107:[function(_0x48727c,_0x4d8b48,_0x1dce81){var _0x523806=_0x38d28e,_0x47b06d=_0x48727c(_0x523806('0xadf'));_0x4d8b48[_0x523806('0xd7')]=function(_0x335865){var _0x1a70fb=_0x523806;if(_0x1a70fb('0x3fd')==typeof _0x335865||_0x47b06d(_0x335865))return _0x335865;var _0x53e30d=_0x335865+'';return'0'==_0x53e30d&&0x1/_0x335865==-0x1/0x0?'-0':_0x53e30d;};},{'./isSymbol':0x120}],0x108:[function(_0x412752,_0x481f8d,_0x276eef){var _0xc151a3=_0x38d28e,_0x401999=Function[_0xc151a3('0x539')]['toString'];_0x481f8d[_0xc151a3('0xd7')]=function(_0x5f24d1){if(null!=_0x5f24d1){try{return _0x401999['call'](_0x5f24d1);}catch(_0x52967b){}try{return _0x5f24d1+'';}catch(_0x230eb1){}}return'';};},{}],0x109:[function(_0x1d2b0b,_0x5b426a,_0x19593c){var _0x405b55=_0x38d28e,_0x45aa3b=_0x1d2b0b(_0x405b55('0x234'));_0x5b426a['exports']=function(_0x3578f6){return _0x45aa3b(_0x3578f6,0x5);};},{'./_baseClone':0x95}],0x10a:[function(_0x1a369e,_0x29ff16,_0x5e331f){var _0x1e8947=_0x38d28e;_0x29ff16[_0x1e8947('0xd7')]=function(_0x4b208e){return function(){return _0x4b208e;};};},{}],0x10b:[function(_0x331b10,_0x5c5910,_0x38be66){var _0x2bf71d=_0x38d28e,_0x140ae0=_0x331b10(_0x2bf71d('0xc5e')),_0x39e3d7=_0x331b10('./now'),_0x5d87d0=_0x331b10('./toNumber'),_0x3f9b54=Math[_0x2bf71d('0x6c1')],_0x121e0c=Math[_0x2bf71d('0x3a4')];_0x5c5910[_0x2bf71d('0xd7')]=function(_0x4a57ec,_0x5d176,_0xf3fb84){var _0x165036=_0x2bf71d,_0x4f4f7d,_0x136d84,_0x4f0496,_0x590aaf,_0xe11c5b,_0x43b614,_0x1dfe84=0x0,_0xd796f1=!0x1,_0x29b2a8=!0x1,_0x48306e=!0x0;if('function'!=typeof _0x4a57ec)throw new TypeError('Expected\x20a\x20function');function _0x102585(_0x17dfc9){var _0x5bbc1c=_0x1c0e,_0x492aac=_0x4f4f7d,_0x93ec81=_0x136d84;return _0x4f4f7d=_0x136d84=void 0x0,_0x1dfe84=_0x17dfc9,_0x590aaf=_0x4a57ec[_0x5bbc1c('0x365')](_0x93ec81,_0x492aac);}function _0x41b57f(_0x2393f7){return _0x1dfe84=_0x2393f7,_0xe11c5b=setTimeout(_0x3097ee,_0x5d176),_0xd796f1?_0x102585(_0x2393f7):_0x590aaf;}function _0x2a2b80(_0x27473){var _0x11c47b=_0x27473-_0x43b614;return void 0x0===_0x43b614||_0x11c47b>=_0x5d176||_0x11c47b<0x0||_0x29b2a8&&_0x27473-_0x1dfe84>=_0x4f0496;}function _0x3097ee(){var _0x34faee=_0x39e3d7();if(_0x2a2b80(_0x34faee))return _0x3963b8(_0x34faee);_0xe11c5b=setTimeout(_0x3097ee,function(_0x431ea0){var _0x3157bf=_0x5d176-(_0x431ea0-_0x43b614);return _0x29b2a8?_0x121e0c(_0x3157bf,_0x4f0496-(_0x431ea0-_0x1dfe84)):_0x3157bf;}(_0x34faee));}function _0x3963b8(_0x15af64){return _0xe11c5b=void 0x0,_0x48306e&&_0x4f4f7d?_0x102585(_0x15af64):(_0x4f4f7d=_0x136d84=void 0x0,_0x590aaf);}function _0x3a8a3a(){var _0x2d75e8=_0x39e3d7(),_0x12572e=_0x2a2b80(_0x2d75e8);if(_0x4f4f7d=arguments,_0x136d84=this,_0x43b614=_0x2d75e8,_0x12572e){if(void 0x0===_0xe11c5b)return _0x41b57f(_0x43b614);if(_0x29b2a8)return clearTimeout(_0xe11c5b),_0xe11c5b=setTimeout(_0x3097ee,_0x5d176),_0x102585(_0x43b614);}return void 0x0===_0xe11c5b&&(_0xe11c5b=setTimeout(_0x3097ee,_0x5d176)),_0x590aaf;}return _0x5d176=_0x5d87d0(_0x5d176)||0x0,_0x140ae0(_0xf3fb84)&&(_0xd796f1=!!_0xf3fb84[_0x165036('0xa44')],_0x4f0496=(_0x29b2a8=_0x165036('0x471')in _0xf3fb84)?_0x3f9b54(_0x5d87d0(_0xf3fb84[_0x165036('0x471')])||0x0,_0x5d176):_0x4f0496,_0x48306e=_0x165036('0x3cc')in _0xf3fb84?!!_0xf3fb84['trailing']:_0x48306e),_0x3a8a3a[_0x165036('0x536')]=function(){void 0x0!==_0xe11c5b&&clearTimeout(_0xe11c5b),_0x1dfe84=0x0,_0x4f4f7d=_0x43b614=_0x136d84=_0xe11c5b=void 0x0;},_0x3a8a3a[_0x165036('0x30b')]=function(){return void 0x0===_0xe11c5b?_0x590aaf:_0x3963b8(_0x39e3d7());},_0x3a8a3a;};},{'./isObject':0x11b,'./now':0x128,'./toNumber':0x12d}],0x10c:[function(_0x2cdcad,_0x578b5d,_0x45b4d3){var _0x499b7d=_0x38d28e;_0x578b5d[_0x499b7d('0xd7')]=_0x2cdcad(_0x499b7d('0x1c2'));},{'./forEach':0x10e}],0x10d:[function(_0x3248c9,_0x5e90a7,_0x3dabe0){var _0x4f63f1=_0x38d28e;_0x5e90a7[_0x4f63f1('0xd7')]=function(_0x6293cf,_0x1aa2ce){return _0x6293cf===_0x1aa2ce||_0x6293cf!=_0x6293cf&&_0x1aa2ce!=_0x1aa2ce;};},{}],0x10e:[function(_0x3f2a94,_0x32c927,_0x3e401f){var _0x43c037=_0x38d28e,_0x5c27b7=_0x3f2a94(_0x43c037('0xd18')),_0x159356=_0x3f2a94(_0x43c037('0x466')),_0x3917ca=_0x3f2a94(_0x43c037('0x79a')),_0x4fcf66=_0x3f2a94(_0x43c037('0x53a'));_0x32c927[_0x43c037('0xd7')]=function(_0x44b6ee,_0x23a4a2){return(_0x4fcf66(_0x44b6ee)?_0x5c27b7:_0x159356)(_0x44b6ee,_0x3917ca(_0x23a4a2));};},{'./_arrayEach':0x89,'./_baseEach':0x97,'./_castFunction':0xb6,'./isArray':0x114}],0x10f:[function(_0x25a5a5,_0x57b873,_0xc2766a){var _0x2682ab=_0x25a5a5('./_baseForOwn'),_0x2a51b0=_0x25a5a5('./_castFunction');_0x57b873['exports']=function(_0x4ac663,_0x30c27f){return _0x4ac663&&_0x2682ab(_0x4ac663,_0x2a51b0(_0x30c27f));};},{'./_baseForOwn':0x99,'./_castFunction':0xb6}],0x110:[function(_0xc12b67,_0x36abf7,_0xfd2572){var _0x177abd=_0x38d28e,_0x2cc67e=_0xc12b67(_0x177abd('0x64a'));_0x36abf7[_0x177abd('0xd7')]=function(_0x1a14e7,_0x16ff54,_0x31398b){var _0x33d467=null==_0x1a14e7?void 0x0:_0x2cc67e(_0x1a14e7,_0x16ff54);return void 0x0===_0x33d467?_0x31398b:_0x33d467;};},{'./_baseGet':0x9a}],0x111:[function(_0xae2d13,_0x5cf462,_0x35c515){var _0x1765e5=_0x38d28e,_0x427632=_0xae2d13(_0x1765e5('0x4d')),_0x2e74dd=_0xae2d13(_0x1765e5('0x13e'));_0x5cf462['exports']=function(_0xf02571,_0x36c543){return null!=_0xf02571&&_0x2e74dd(_0xf02571,_0x36c543,_0x427632);};},{'./_baseHasIn':0x9d,'./_hasPath':0xd6}],0x112:[function(_0x496033,_0x11bc6e,_0x3f0969){var _0x2f643e=_0x38d28e;_0x11bc6e[_0x2f643e('0xd7')]=function(_0x5500cc){return _0x5500cc;};},{}],0x113:[function(_0x3ce6b3,_0x4f185a,_0x239431){var _0xd95d14=_0x38d28e,_0x43e3ae=_0x3ce6b3(_0xd95d14('0xa95')),_0x2dfea6=_0x3ce6b3(_0xd95d14('0x810')),_0x15fd80=Object[_0xd95d14('0x539')],_0x1d681a=_0x15fd80[_0xd95d14('0x1a8')],_0x323280=_0x15fd80[_0xd95d14('0x603')],_0x670fd8=_0x43e3ae(function(){return arguments;}())?_0x43e3ae:function(_0x26edab){var _0x393bdd=_0xd95d14;return _0x2dfea6(_0x26edab)&&_0x1d681a[_0x393bdd('0x964')](_0x26edab,_0x393bdd('0xaf5'))&&!_0x323280[_0x393bdd('0x964')](_0x26edab,_0x393bdd('0xaf5'));};_0x4f185a[_0xd95d14('0xd7')]=_0x670fd8;},{'./_baseIsArguments':0x9e,'./isObjectLike':0x11c}],0x114:[function(_0x232e32,_0x3f0030,_0x2661a){var _0x37007d=Array['isArray'];_0x3f0030['exports']=_0x37007d;},{}],0x115:[function(_0x3faddc,_0x576203,_0x3b9fcb){var _0x34b36c=_0x38d28e,_0x213620=_0x3faddc(_0x34b36c('0x72b')),_0x4dd873=_0x3faddc(_0x34b36c('0x301'));_0x576203[_0x34b36c('0xd7')]=function(_0x217c41){return null!=_0x217c41&&_0x4dd873(_0x217c41['length'])&&!_0x213620(_0x217c41);};},{'./isFunction':0x118,'./isLength':0x119}],0x116:[function(_0x559420,_0x3cb080,_0x336153){var _0x7f9972=_0x38d28e,_0x3989c4=_0x559420('./isArrayLike'),_0x35902f=_0x559420('./isObjectLike');_0x3cb080[_0x7f9972('0xd7')]=function(_0x1b9dfe){return _0x35902f(_0x1b9dfe)&&_0x3989c4(_0x1b9dfe);};},{'./isArrayLike':0x115,'./isObjectLike':0x11c}],0x117:[function(_0x4fcb74,_0x114da9,_0x581ba7){var _0x1446de=_0x38d28e,_0x103ad1=_0x4fcb74(_0x1446de('0x947')),_0x5e0587=_0x4fcb74('./stubFalse'),_0x37acc9='object'==typeof _0x581ba7&&_0x581ba7&&!_0x581ba7[_0x1446de('0x4f4')]&&_0x581ba7,_0x29eaf0=_0x37acc9&&_0x1446de('0xbfd')==typeof _0x114da9&&_0x114da9&&!_0x114da9[_0x1446de('0x4f4')]&&_0x114da9,_0x41bfc6=_0x29eaf0&&_0x29eaf0[_0x1446de('0xd7')]===_0x37acc9?_0x103ad1[_0x1446de('0x576')]:void 0x0,_0xf3d5ed=(_0x41bfc6?_0x41bfc6['isBuffer']:void 0x0)||_0x5e0587;_0x114da9[_0x1446de('0xd7')]=_0xf3d5ed;},{'./_root':0xfa,'./stubFalse':0x12b}],0x118:[function(_0x377aaf,_0x1abb2c,_0x26d66b){var _0x37f55f=_0x38d28e,_0x573a7b=_0x377aaf(_0x37f55f('0x36d')),_0x171025=_0x377aaf(_0x37f55f('0xc5e'));_0x1abb2c[_0x37f55f('0xd7')]=function(_0x3c0421){var _0x237670=_0x37f55f;if(!_0x171025(_0x3c0421))return!0x1;var _0x59d4f8=_0x573a7b(_0x3c0421);return _0x237670('0x57a')==_0x59d4f8||_0x237670('0xa69')==_0x59d4f8||_0x237670('0x2b0')==_0x59d4f8||_0x237670('0x22a')==_0x59d4f8;};},{'./_baseGetTag':0x9c,'./isObject':0x11b}],0x119:[function(_0x5819b7,_0x33f6be,_0x158367){_0x33f6be['exports']=function(_0x4c0e5f){var _0x2a1a18=_0x1c0e;return _0x2a1a18('0x218')==typeof _0x4c0e5f&&_0x4c0e5f>-0x1&&_0x4c0e5f%0x1==0x0&&_0x4c0e5f<=0x1fffffffffffff;};},{}],0x11a:[function(_0x5dff27,_0x23de9d,_0x47b199){var _0x2b0136=_0x38d28e,_0x418dab=_0x5dff27('./_baseIsMap'),_0xd4b43e=_0x5dff27(_0x2b0136('0x7d6')),_0x1b8657=_0x5dff27(_0x2b0136('0xa72')),_0xa9e3f4=_0x1b8657&&_0x1b8657[_0x2b0136('0x28d')],_0x79a599=_0xa9e3f4?_0xd4b43e(_0xa9e3f4):_0x418dab;_0x23de9d[_0x2b0136('0xd7')]=_0x79a599;},{'./_baseIsMap':0xa1,'./_baseUnary':0xb4,'./_nodeUtil':0xf6}],0x11b:[function(_0x59de87,_0x538a28,_0x2e7d4a){var _0x38f22d=_0x38d28e;_0x538a28[_0x38f22d('0xd7')]=function(_0x17d1a0){var _0x3d23b0=_0x38f22d,_0x45f539=typeof _0x17d1a0;return null!=_0x17d1a0&&('object'==_0x45f539||_0x3d23b0('0xa25')==_0x45f539);};},{}],0x11c:[function(_0x17fe54,_0x4f4848,_0xfe5114){var _0x2f0ba8=_0x38d28e;_0x4f4848[_0x2f0ba8('0xd7')]=function(_0xfe65a){var _0x458bee=_0x2f0ba8;return null!=_0xfe65a&&_0x458bee('0xbfd')==typeof _0xfe65a;};},{}],0x11d:[function(_0x20194a,_0x38a8cb,_0x48d54f){var _0x20f432=_0x38d28e,_0x37d26b=_0x20194a('./_baseGetTag'),_0x4634a8=_0x20194a(_0x20f432('0x9f0')),_0x421377=_0x20194a(_0x20f432('0x810')),_0x4dc442=Function['prototype'],_0x3e7718=Object[_0x20f432('0x539')],_0xba524a=_0x4dc442['toString'],_0x1ae168=_0x3e7718[_0x20f432('0x1a8')],_0x30cae0=_0xba524a[_0x20f432('0x964')](Object);_0x38a8cb[_0x20f432('0xd7')]=function(_0x1d934a){var _0x474d3c=_0x20f432;if(!_0x421377(_0x1d934a)||_0x474d3c('0x846')!=_0x37d26b(_0x1d934a))return!0x1;var _0x598824=_0x4634a8(_0x1d934a);if(null===_0x598824)return!0x0;var _0x4e1b6c=_0x1ae168[_0x474d3c('0x964')](_0x598824,_0x474d3c('0x63e'))&&_0x598824[_0x474d3c('0x63e')];return'function'==typeof _0x4e1b6c&&_0x4e1b6c instanceof _0x4e1b6c&&_0xba524a[_0x474d3c('0x964')](_0x4e1b6c)==_0x30cae0;};},{'./_baseGetTag':0x9c,'./_getPrototype':0xd0,'./isObjectLike':0x11c}],0x11e:[function(_0x546e8b,_0x455f89,_0x22574e){var _0x38ad36=_0x38d28e,_0x177eb3=_0x546e8b(_0x38ad36('0x138')),_0x28b9ba=_0x546e8b('./_baseUnary'),_0x5c513a=_0x546e8b('./_nodeUtil'),_0x277168=_0x5c513a&&_0x5c513a[_0x38ad36('0x4d5')],_0x54105a=_0x277168?_0x28b9ba(_0x277168):_0x177eb3;_0x455f89[_0x38ad36('0xd7')]=_0x54105a;},{'./_baseIsSet':0xa4,'./_baseUnary':0xb4,'./_nodeUtil':0xf6}],0x11f:[function(_0x36c717,_0x12569a,_0x1c7e36){var _0x15e179=_0x38d28e,_0x5de6b3=_0x36c717(_0x15e179('0x36d')),_0xcfbf44=_0x36c717(_0x15e179('0x53a')),_0x481326=_0x36c717('./isObjectLike');_0x12569a[_0x15e179('0xd7')]=function(_0x2d2188){var _0x230afe=_0x15e179;return _0x230afe('0x3fd')==typeof _0x2d2188||!_0xcfbf44(_0x2d2188)&&_0x481326(_0x2d2188)&&'[object\x20String]'==_0x5de6b3(_0x2d2188);};},{'./_baseGetTag':0x9c,'./isArray':0x114,'./isObjectLike':0x11c}],0x120:[function(_0x22969d,_0x14ce8f,_0x4016ba){var _0x32e8af=_0x38d28e,_0x46d934=_0x22969d(_0x32e8af('0x36d')),_0x50d8a5=_0x22969d(_0x32e8af('0x810'));_0x14ce8f[_0x32e8af('0xd7')]=function(_0x3effd4){var _0x5a66ab=_0x32e8af;return _0x5a66ab('0xb5')==typeof _0x3effd4||_0x50d8a5(_0x3effd4)&&_0x5a66ab('0x8ff')==_0x46d934(_0x3effd4);};},{'./_baseGetTag':0x9c,'./isObjectLike':0x11c}],0x121:[function(_0x1293df,_0x54e8af,_0x1c1fad){var _0x4caf6c=_0x38d28e,_0x36788c=_0x1293df(_0x4caf6c('0xd15')),_0x40be15=_0x1293df('./_baseUnary'),_0x5ce9c9=_0x1293df('./_nodeUtil'),_0x17b661=_0x5ce9c9&&_0x5ce9c9[_0x4caf6c('0x2e9')],_0x4f4756=_0x17b661?_0x40be15(_0x17b661):_0x36788c;_0x54e8af[_0x4caf6c('0xd7')]=_0x4f4756;},{'./_baseIsTypedArray':0xa5,'./_baseUnary':0xb4,'./_nodeUtil':0xf6}],0x122:[function(_0x45ee0f,_0x4af2d6,_0x480dae){var _0x1db119=_0x38d28e;_0x4af2d6[_0x1db119('0xd7')]=function(_0x597bbc){return void 0x0===_0x597bbc;};},{}],0x123:[function(_0x3fdb92,_0x2cc966,_0x4a3921){var _0x1c8e61=_0x38d28e,_0x37a1a0=_0x3fdb92('./_arrayLikeKeys'),_0xe8ef65=_0x3fdb92(_0x1c8e61('0x974')),_0x472c9b=_0x3fdb92(_0x1c8e61('0xba8'));_0x2cc966[_0x1c8e61('0xd7')]=function(_0x144a80){return _0x472c9b(_0x144a80)?_0x37a1a0(_0x144a80):_0xe8ef65(_0x144a80);};},{'./_arrayLikeKeys':0x8b,'./_baseKeys':0xa7,'./isArrayLike':0x115}],0x124:[function(_0xbf537f,_0x3377a0,_0x20d02c){var _0x18c413=_0x38d28e,_0x57d1e3=_0xbf537f('./_arrayLikeKeys'),_0x4f37f2=_0xbf537f(_0x18c413('0x8e7')),_0x96dbcb=_0xbf537f('./isArrayLike');_0x3377a0['exports']=function(_0x4bcdd6){return _0x96dbcb(_0x4bcdd6)?_0x57d1e3(_0x4bcdd6,!0x0):_0x4f37f2(_0x4bcdd6);};},{'./_arrayLikeKeys':0x8b,'./_baseKeysIn':0xa8,'./isArrayLike':0x115}],0x125:[function(_0x131ee1,_0x5502e5,_0x2b27af){var _0x370214=_0x38d28e,_0x35d66f=_0x131ee1(_0x370214('0xf0')),_0x78338a=_0x131ee1(_0x370214('0x2af')),_0x3e876d=_0x131ee1(_0x370214('0xa42')),_0x9bec81=_0x131ee1(_0x370214('0x53a'));_0x5502e5['exports']=function(_0x485908,_0x1e9e80){return(_0x9bec81(_0x485908)?_0x35d66f:_0x3e876d)(_0x485908,_0x78338a(_0x1e9e80,0x3));};},{'./_arrayMap':0x8c,'./_baseIteratee':0xa6,'./_baseMap':0xa9,'./isArray':0x114}],0x126:[function(_0x2eb272,_0x2cfe27,_0x9d6dc9){var _0x1b1188=_0x38d28e,_0x2ad3ae=_0x2eb272(_0x1b1188('0x1e1'));function _0x15e04e(_0x4988e6,_0x83a960){var _0x54988c=_0x1b1188;if(_0x54988c('0xa25')!=typeof _0x4988e6||null!=_0x83a960&&'function'!=typeof _0x83a960)throw new TypeError(_0x54988c('0x5d8'));var _0x53f383=function(){var _0x50b12f=_0x54988c,_0x58efde=arguments,_0x2a59cd=_0x83a960?_0x83a960['apply'](this,_0x58efde):_0x58efde[0x0],_0x1a9f79=_0x53f383[_0x50b12f('0x6ad')];if(_0x1a9f79[_0x50b12f('0xa77')](_0x2a59cd))return _0x1a9f79[_0x50b12f('0xda6')](_0x2a59cd);var _0x2aa371=_0x4988e6[_0x50b12f('0x365')](this,_0x58efde);return _0x53f383[_0x50b12f('0x6ad')]=_0x1a9f79[_0x50b12f('0x7f8')](_0x2a59cd,_0x2aa371)||_0x1a9f79,_0x2aa371;};return _0x53f383[_0x54988c('0x6ad')]=new(_0x15e04e[(_0x54988c('0x58c'))]||_0x2ad3ae)(),_0x53f383;}_0x15e04e[_0x1b1188('0x58c')]=_0x2ad3ae,_0x2cfe27[_0x1b1188('0xd7')]=_0x15e04e;},{'./_MapCache':0x80}],0x127:[function(_0x59a32d,_0x20b81f,_0x2a5ae6){var _0x311959=_0x38d28e,_0xa07d32=_0x59a32d(_0x311959('0x344')),_0x457fc6=_0x59a32d(_0x311959('0x550'))(function(_0x567989,_0x6ef4bc,_0x559655){_0xa07d32(_0x567989,_0x6ef4bc,_0x559655);});_0x20b81f[_0x311959('0xd7')]=_0x457fc6;},{'./_baseMerge':0xac,'./_createAssigner':0xc3}],0x128:[function(_0x1b3552,_0x21338a,_0x54fa05){var _0x33bbba=_0x38d28e,_0x5ba720=_0x1b3552(_0x33bbba('0x947'));_0x21338a['exports']=function(){var _0x1e758a=_0x33bbba;return _0x5ba720[_0x1e758a('0x69d')]['now']();};},{'./_root':0xfa}],0x129:[function(_0x509870,_0x4ab12a,_0x35430f){var _0x2ae2e5=_0x38d28e,_0x55bb81=_0x509870(_0x2ae2e5('0xb25')),_0x514130=_0x509870(_0x2ae2e5('0xd7a')),_0x56579c=_0x509870(_0x2ae2e5('0x1dc')),_0x44d202=_0x509870('./_toKey');_0x4ab12a['exports']=function(_0x43cc4a){return _0x56579c(_0x43cc4a)?_0x55bb81(_0x44d202(_0x43cc4a)):_0x514130(_0x43cc4a);};},{'./_baseProperty':0xae,'./_basePropertyDeep':0xaf,'./_isKey':0xe1,'./_toKey':0x107}],0x12a:[function(_0x1d7ca9,_0x716d9d,_0x2621fa){var _0x13d9fd=_0x38d28e;_0x716d9d[_0x13d9fd('0xd7')]=function(){return[];};},{}],0x12b:[function(_0x3214d7,_0x5092dd,_0x36f10b){var _0x1427b0=_0x38d28e;_0x5092dd[_0x1427b0('0xd7')]=function(){return!0x1;};},{}],0x12c:[function(_0x118ff2,_0x4bebdb,_0x5b4a24){var _0x32f61a=_0x38d28e,_0x3ee97a=_0x118ff2(_0x32f61a('0x9a3')),_0x49975b=_0x118ff2('./isObject');_0x4bebdb[_0x32f61a('0xd7')]=function(_0x336285,_0x5e27aa,_0x3c82ac){var _0x28f3f3=_0x32f61a,_0xd24a46=!0x0,_0x468bdb=!0x0;if('function'!=typeof _0x336285)throw new TypeError(_0x28f3f3('0x5d8'));return _0x49975b(_0x3c82ac)&&(_0xd24a46=_0x28f3f3('0xa44')in _0x3c82ac?!!_0x3c82ac[_0x28f3f3('0xa44')]:_0xd24a46,_0x468bdb=_0x28f3f3('0x3cc')in _0x3c82ac?!!_0x3c82ac[_0x28f3f3('0x3cc')]:_0x468bdb),_0x3ee97a(_0x336285,_0x5e27aa,{'leading':_0xd24a46,'maxWait':_0x5e27aa,'trailing':_0x468bdb});};},{'./debounce':0x10b,'./isObject':0x11b}],0x12d:[function(_0x571441,_0x3259e8,_0x39581e){var _0x36d6c9=_0x38d28e,_0x3f1ae0=_0x571441(_0x36d6c9('0xc5e')),_0x7c38ee=_0x571441(_0x36d6c9('0xadf')),_0xbaa15a=/^\s+|\s+$/g,_0x2edfdf=/^[-+]0x[0-9a-f]+$/i,_0x5720c0=/^0b[01]+$/i,_0xda1e90=/^0o[0-7]+$/i,_0x54858c=parseInt;_0x3259e8['exports']=function(_0xead2e5){var _0x7982c0=_0x36d6c9;if(_0x7982c0('0x218')==typeof _0xead2e5)return _0xead2e5;if(_0x7c38ee(_0xead2e5))return NaN;if(_0x3f1ae0(_0xead2e5)){var _0xb5d0db='function'==typeof _0xead2e5[_0x7982c0('0x713')]?_0xead2e5[_0x7982c0('0x713')]():_0xead2e5;_0xead2e5=_0x3f1ae0(_0xb5d0db)?_0xb5d0db+'':_0xb5d0db;}if('string'!=typeof _0xead2e5)return 0x0===_0xead2e5?_0xead2e5:+_0xead2e5;_0xead2e5=_0xead2e5[_0x7982c0('0x8f9')](_0xbaa15a,'');var _0x2b8333=_0x5720c0['test'](_0xead2e5);return _0x2b8333||_0xda1e90[_0x7982c0('0x96c')](_0xead2e5)?_0x54858c(_0xead2e5['slice'](0x2),_0x2b8333?0x2:0x8):_0x2edfdf['test'](_0xead2e5)?NaN:+_0xead2e5;};},{'./isObject':0x11b,'./isSymbol':0x120}],0x12e:[function(_0x5ae221,_0x423660,_0x370fbe){var _0x57ea55=_0x38d28e,_0x11157a=_0x5ae221('./_copyObject'),_0x2e929f=_0x5ae221(_0x57ea55('0x5e2'));_0x423660[_0x57ea55('0xd7')]=function(_0x1c2455){return _0x11157a(_0x1c2455,_0x2e929f(_0x1c2455));};},{'./_copyObject':0xbf,'./keysIn':0x124}],0x12f:[function(_0x27f8d7,_0x16b69d,_0x830fb2){var _0x504152=_0x38d28e,_0x38aec0=_0x27f8d7(_0x504152('0x6f9'));_0x16b69d[_0x504152('0xd7')]=function(_0x38ffe0){return null==_0x38ffe0?'':_0x38aec0(_0x38ffe0);};},{'./_baseToString':0xb3}],0x130:[function(_0x32375f,_0x3e0ed0,_0x56887d){var _0x340a16=_0x38d28e,_0x481225,_0x32e6a6;_0x481225=this,_0x32e6a6=function(){var _0x148140=_0x1c0e;return{'red':{0x32:_0x148140('0xb68'),0x64:_0x148140('0xec'),0xc8:_0x148140('0x67e'),0x12c:_0x148140('0x6a'),0x190:_0x148140('0x776'),0x1f4:_0x148140('0x41d'),0x258:_0x148140('0x59a'),0x2bc:_0x148140('0x618'),0x320:_0x148140('0x57d'),0x384:'#b71c1c','a100':_0x148140('0x6cf'),'a200':_0x148140('0x57'),'a400':'#ff1744','a700':'#d50000'},'pink':{0x32:'#fce4ec',0x64:'#f8bbd0',0xc8:_0x148140('0xdce'),0x12c:_0x148140('0x1a5'),0x190:_0x148140('0x993'),0x1f4:'#e91e63',0x258:_0x148140('0x3f3'),0x2bc:'#c2185b',0x320:'#ad1457',0x384:'#880e4f','a100':_0x148140('0x622'),'a200':_0x148140('0x16d'),'a400':_0x148140('0x6e8'),'a700':_0x148140('0x694')},'purple':{0x32:_0x148140('0xc9a'),0x64:_0x148140('0x416'),0xc8:'#ce93d8',0x12c:'#ba68c8',0x190:_0x148140('0x639'),0x1f4:_0x148140('0x80c'),0x258:'#8e24aa',0x2bc:_0x148140('0xc38'),0x320:'#6a1b9a',0x384:_0x148140('0x271'),'a100':'#ea80fc','a200':'#e040fb','a400':'#d500f9','a700':'#aa00ff'},'deepPurple':{0x32:_0x148140('0x4b0'),0x64:_0x148140('0x1e'),0xc8:_0x148140('0x122'),0x12c:_0x148140('0x2eb'),0x190:_0x148140('0xc1c'),0x1f4:_0x148140('0xab0'),0x258:'#5e35b1',0x2bc:_0x148140('0xc98'),0x320:_0x148140('0xcab'),0x384:_0x148140('0x818'),'a100':_0x148140('0x8cd'),'a200':_0x148140('0xc67'),'a400':'#651fff','a700':_0x148140('0x94e')},'indigo':{0x32:_0x148140('0xa85'),0x64:_0x148140('0xb6d'),0xc8:_0x148140('0x1d1'),0x12c:'#7986cb',0x190:'#5c6bc0',0x1f4:'#3f51b5',0x258:_0x148140('0x773'),0x2bc:_0x148140('0xbc6'),0x320:_0x148140('0x1d3'),0x384:_0x148140('0xc5f'),'a100':_0x148140('0x612'),'a200':_0x148140('0xbaf'),'a400':_0x148140('0x52d'),'a700':_0x148140('0xc58')},'blue':{0x32:_0x148140('0x585'),0x64:'#bbdefb',0xc8:_0x148140('0x9e7'),0x12c:'#64b5f6',0x190:_0x148140('0xc2'),0x1f4:_0x148140('0xac8'),0x258:'#1e88e5',0x2bc:_0x148140('0x161'),0x320:'#1565c0',0x384:_0x148140('0x930'),'a100':_0x148140('0xcd1'),'a200':'#448aff','a400':_0x148140('0xcc7'),'a700':'#2962ff'},'lightBlue':{0x32:_0x148140('0x9ff'),0x64:_0x148140('0xa03'),0xc8:'#81d4fa',0x12c:'#4fc3f7',0x190:_0x148140('0x8bd'),0x1f4:'#03a9f4',0x258:_0x148140('0xbca'),0x2bc:_0x148140('0x634'),0x320:_0x148140('0xae0'),0x384:_0x148140('0x945'),'a100':'#80d8ff','a200':_0x148140('0xa4f'),'a400':_0x148140('0x232'),'a700':'#0091ea'},'cyan':{0x32:_0x148140('0x60'),0x64:_0x148140('0x2e8'),0xc8:_0x148140('0x537'),0x12c:_0x148140('0xc96'),0x190:_0x148140('0x7fe'),0x1f4:_0x148140('0x81'),0x258:'#00acc1',0x2bc:'#0097a7',0x320:_0x148140('0x960'),0x384:_0x148140('0x758'),'a100':'#84ffff','a200':_0x148140('0x6b9'),'a400':_0x148140('0x44f'),'a700':'#00b8d4'},'teal':{0x32:'#e0f2f1',0x64:_0x148140('0x349'),0xc8:'#80cbc4',0x12c:_0x148140('0x755'),0x190:'#26a69a',0x1f4:_0x148140('0xac6'),0x258:_0x148140('0x6d5'),0x2bc:_0x148140('0x2c8'),0x320:_0x148140('0x654'),0x384:_0x148140('0xd4d'),'a100':_0x148140('0xadd'),'a200':_0x148140('0x264'),'a400':_0x148140('0x68f'),'a700':_0x148140('0x3c1')},'green':{0x32:_0x148140('0x3c6'),0x64:_0x148140('0xd45'),0xc8:'#a5d6a7',0x12c:_0x148140('0x571'),0x190:_0x148140('0xade'),0x1f4:_0x148140('0xbcb'),0x258:_0x148140('0x69f'),0x2bc:'#388e3c',0x320:_0x148140('0x783'),0x384:_0x148140('0x2bb'),'a100':_0x148140('0x360'),'a200':_0x148140('0xc75'),'a400':'#00e676','a700':_0x148140('0x101')},'lightGreen':{0x32:_0x148140('0xd5c'),0x64:'#dcedc8',0xc8:_0x148140('0x39'),0x12c:'#aed581',0x190:_0x148140('0xca9'),0x1f4:_0x148140('0x94a'),0x258:'#7cb342',0x2bc:_0x148140('0x262'),0x320:_0x148140('0x984'),0x384:'#33691e','a100':_0x148140('0xc4'),'a200':_0x148140('0x158'),'a400':'#76ff03','a700':'#64dd17'},'lime':{0x32:_0x148140('0x892'),0x64:_0x148140('0x4ad'),0xc8:'#e6ee9c',0x12c:'#dce775',0x190:_0x148140('0x6f3'),0x1f4:_0x148140('0x84c'),0x258:_0x148140('0x69'),0x2bc:_0x148140('0x740'),0x320:_0x148140('0xc62'),0x384:'#827717','a100':_0x148140('0x24'),'a200':_0x148140('0xd51'),'a400':'#c6ff00','a700':_0x148140('0x4c8')},'yellow':{0x32:_0x148140('0x4d0'),0x64:_0x148140('0xb2f'),0xc8:_0x148140('0xb9d'),0x12c:_0x148140('0x3ed'),0x190:_0x148140('0x9d4'),0x1f4:'#ffeb3b',0x258:'#fdd835',0x2bc:_0x148140('0x53d'),0x320:_0x148140('0x215'),0x384:'#f57f17','a100':'#ffff8d','a200':_0x148140('0xba1'),'a400':_0x148140('0x5cc'),'a700':_0x148140('0x23')},'amber':{0x32:'#fff8e1',0x64:_0x148140('0xb4b'),0xc8:_0x148140('0x7e0'),0x12c:_0x148140('0xd69'),0x190:_0x148140('0x3bd'),0x1f4:_0x148140('0xc83'),0x258:_0x148140('0x25d'),0x2bc:_0x148140('0xb67'),0x320:'#ff8f00',0x384:'#ff6f00','a100':_0x148140('0xa97'),'a200':'#ffd740','a400':_0x148140('0xd96'),'a700':_0x148140('0x8dc')},'orange':{0x32:_0x148140('0x413'),0x64:'#ffe0b2',0xc8:'#ffcc80',0x12c:_0x148140('0x33a'),0x190:'#ffa726',0x1f4:_0x148140('0x802'),0x258:_0x148140('0x4'),0x2bc:_0x148140('0x906'),0x320:_0x148140('0xa0a'),0x384:'#e65100','a100':_0x148140('0xbce'),'a200':_0x148140('0x7b5'),'a400':_0x148140('0x418'),'a700':_0x148140('0xa8')},'deepOrange':{0x32:_0x148140('0xc84'),0x64:_0x148140('0xc7f'),0xc8:'#ffab91',0x12c:_0x148140('0x2d3'),0x190:'#ff7043',0x1f4:_0x148140('0x2be'),0x258:_0x148140('0x4ab'),0x2bc:_0x148140('0xb0d'),0x320:_0x148140('0xb2d'),0x384:_0x148140('0xcce'),'a100':_0x148140('0xddf'),'a200':'#ff6e40','a400':_0x148140('0x929'),'a700':_0x148140('0x671')},'brown':{0x32:_0x148140('0x5c8'),0x64:'#d7ccc8',0xc8:'#bcaaa4',0x12c:_0x148140('0x692'),0x190:_0x148140('0xd09'),0x1f4:'#795548',0x258:'#6d4c41',0x2bc:_0x148140('0x192'),0x320:'#4e342e',0x384:'#3e2723'},'grey':{0x32:_0x148140('0x131'),0x64:_0x148140('0x331'),0xc8:_0x148140('0x741'),0x12c:'#e0e0e0',0x190:'#bdbdbd',0x1f4:_0x148140('0x8a8'),0x258:_0x148140('0xd53'),0x2bc:_0x148140('0x34f'),0x320:'#424242',0x384:'#212121'},'blueGrey':{0x32:_0x148140('0x705'),0x64:'#cfd8dc',0xc8:_0x148140('0x4ef'),0x12c:'#90a4ae',0x190:_0x148140('0xcee'),0x1f4:_0x148140('0x5e5'),0x258:_0x148140('0x5ee'),0x2bc:_0x148140('0x91d'),0x320:_0x148140('0xd3e'),0x384:_0x148140('0x971')},'darkText':{'primary':_0x148140('0x5b7'),'secondary':_0x148140('0x34a'),'disabled':_0x148140('0x6e5'),'dividers':_0x148140('0x80d')},'lightText':{'primary':_0x148140('0x6e'),'secondary':'rgba(255,\x20255,\x20255,\x200.7)','disabled':_0x148140('0x39a'),'dividers':_0x148140('0x68e')},'darkIcons':{'active':_0x148140('0x34a'),'inactive':_0x148140('0x6e5')},'lightIcons':{'active':_0x148140('0x6e'),'inactive':_0x148140('0x39a')},'white':'#ffffff','black':_0x148140('0x9a8')};},_0x340a16('0xa25')==typeof define&&define['amd']?define([],_0x32e6a6):'object'==typeof _0x56887d?_0x3e0ed0[_0x340a16('0xd7')]={'red':{0x32:_0x340a16('0xb68'),0x64:'#ffcdd2',0xc8:_0x340a16('0x67e'),0x12c:_0x340a16('0x6a'),0x190:_0x340a16('0x776'),0x1f4:_0x340a16('0x41d'),0x258:_0x340a16('0x59a'),0x2bc:_0x340a16('0x618'),0x320:_0x340a16('0x57d'),0x384:_0x340a16('0x1d'),'a100':_0x340a16('0x6cf'),'a200':_0x340a16('0x57'),'a400':_0x340a16('0x528'),'a700':_0x340a16('0x2d7')},'pink':{0x32:_0x340a16('0xc3'),0x64:_0x340a16('0x849'),0xc8:_0x340a16('0xdce'),0x12c:'#f06292',0x190:_0x340a16('0x993'),0x1f4:_0x340a16('0xde3'),0x258:_0x340a16('0x3f3'),0x2bc:'#c2185b',0x320:_0x340a16('0x78'),0x384:_0x340a16('0x9b0'),'a100':_0x340a16('0x622'),'a200':_0x340a16('0x16d'),'a400':_0x340a16('0x6e8'),'a700':_0x340a16('0x694')},'purple':{0x32:_0x340a16('0xc9a'),0x64:_0x340a16('0x416'),0xc8:_0x340a16('0x76b'),0x12c:_0x340a16('0x61c'),0x190:_0x340a16('0x639'),0x1f4:_0x340a16('0x80c'),0x258:_0x340a16('0x9cd'),0x2bc:_0x340a16('0xc38'),0x320:_0x340a16('0x699'),0x384:_0x340a16('0x271'),'a100':_0x340a16('0xcf'),'a200':_0x340a16('0x13a'),'a400':_0x340a16('0xb84'),'a700':_0x340a16('0x58d')},'deepPurple':{0x32:_0x340a16('0x4b0'),0x64:'#d1c4e9',0xc8:_0x340a16('0x122'),0x12c:'#9575cd',0x190:_0x340a16('0xc1c'),0x1f4:'#673ab7',0x258:_0x340a16('0x4a8'),0x2bc:_0x340a16('0xc98'),0x320:_0x340a16('0xcab'),0x384:'#311b92','a100':_0x340a16('0x8cd'),'a200':_0x340a16('0xc67'),'a400':_0x340a16('0x770'),'a700':_0x340a16('0x94e')},'indigo':{0x32:_0x340a16('0xa85'),0x64:'#c5cae9',0xc8:'#9fa8da',0x12c:_0x340a16('0x9c5'),0x190:_0x340a16('0x8df'),0x1f4:_0x340a16('0x5e8'),0x258:_0x340a16('0x773'),0x2bc:_0x340a16('0xbc6'),0x320:_0x340a16('0x1d3'),0x384:_0x340a16('0xc5f'),'a100':_0x340a16('0x612'),'a200':_0x340a16('0xbaf'),'a400':'#3d5afe','a700':_0x340a16('0xc58')},'blue':{0x32:_0x340a16('0x585'),0x64:_0x340a16('0xe0'),0xc8:_0x340a16('0x9e7'),0x12c:_0x340a16('0x47e'),0x190:_0x340a16('0xc2'),0x1f4:_0x340a16('0xac8'),0x258:'#1e88e5',0x2bc:'#1976d2',0x320:'#1565c0',0x384:'#0d47a1','a100':_0x340a16('0xcd1'),'a200':_0x340a16('0x1aa'),'a400':_0x340a16('0xcc7'),'a700':_0x340a16('0x7bd')},'lightBlue':{0x32:_0x340a16('0x9ff'),0x64:'#b3e5fc',0xc8:_0x340a16('0x33c'),0x12c:_0x340a16('0x559'),0x190:_0x340a16('0x8bd'),0x1f4:_0x340a16('0x6d2'),0x258:_0x340a16('0xbca'),0x2bc:'#0288d1',0x320:_0x340a16('0xae0'),0x384:_0x340a16('0x945'),'a100':'#80d8ff','a200':_0x340a16('0xa4f'),'a400':_0x340a16('0x232'),'a700':'#0091ea'},'cyan':{0x32:_0x340a16('0x60'),0x64:_0x340a16('0x2e8'),0xc8:_0x340a16('0x537'),0x12c:_0x340a16('0xc96'),0x190:'#26c6da',0x1f4:_0x340a16('0x81'),0x258:_0x340a16('0xc37'),0x2bc:_0x340a16('0xd7b'),0x320:'#00838f',0x384:_0x340a16('0x758'),'a100':'#84ffff','a200':_0x340a16('0x6b9'),'a400':_0x340a16('0x44f'),'a700':'#00b8d4'},'teal':{0x32:_0x340a16('0x4e7'),0x64:'#b2dfdb',0xc8:_0x340a16('0x428'),0x12c:'#4db6ac',0x190:'#26a69a',0x1f4:_0x340a16('0xac6'),0x258:_0x340a16('0x6d5'),0x2bc:_0x340a16('0x2c8'),0x320:_0x340a16('0x654'),0x384:_0x340a16('0xd4d'),'a100':_0x340a16('0xadd'),'a200':_0x340a16('0x264'),'a400':_0x340a16('0x68f'),'a700':_0x340a16('0x3c1')},'green':{0x32:_0x340a16('0x3c6'),0x64:'#c8e6c9',0xc8:_0x340a16('0x4b9'),0x12c:_0x340a16('0x571'),0x190:_0x340a16('0xade'),0x1f4:_0x340a16('0xbcb'),0x258:_0x340a16('0x69f'),0x2bc:_0x340a16('0x4b5'),0x320:'#2e7d32',0x384:'#1b5e20','a100':_0x340a16('0x360'),'a200':_0x340a16('0xc75'),'a400':_0x340a16('0xac5'),'a700':'#00c853'},'lightGreen':{0x32:_0x340a16('0xd5c'),0x64:_0x340a16('0x780'),0xc8:_0x340a16('0x39'),0x12c:_0x340a16('0xd47'),0x190:_0x340a16('0xca9'),0x1f4:_0x340a16('0x94a'),0x258:_0x340a16('0xce6'),0x2bc:_0x340a16('0x262'),0x320:_0x340a16('0x984'),0x384:_0x340a16('0xc65'),'a100':_0x340a16('0xc4'),'a200':_0x340a16('0x158'),'a400':'#76ff03','a700':_0x340a16('0xba2')},'lime':{0x32:_0x340a16('0x892'),0x64:'#f0f4c3',0xc8:_0x340a16('0x509'),0x12c:'#dce775',0x190:'#d4e157',0x1f4:'#cddc39',0x258:_0x340a16('0x69'),0x2bc:'#afb42b',0x320:'#9e9d24',0x384:'#827717','a100':_0x340a16('0x24'),'a200':'#eeff41','a400':_0x340a16('0x94c'),'a700':_0x340a16('0x4c8')},'yellow':{0x32:_0x340a16('0x4d0'),0x64:'#fff9c4',0xc8:_0x340a16('0xb9d'),0x12c:_0x340a16('0x3ed'),0x190:_0x340a16('0x9d4'),0x1f4:_0x340a16('0x9f'),0x258:_0x340a16('0x7cc'),0x2bc:_0x340a16('0x53d'),0x320:_0x340a16('0x215'),0x384:_0x340a16('0xd25'),'a100':_0x340a16('0x338'),'a200':'#ffff00','a400':_0x340a16('0x5cc'),'a700':'#ffd600'},'amber':{0x32:_0x340a16('0x83a'),0x64:_0x340a16('0xb4b'),0xc8:_0x340a16('0x7e0'),0x12c:_0x340a16('0xd69'),0x190:_0x340a16('0x3bd'),0x1f4:_0x340a16('0xc83'),0x258:_0x340a16('0x25d'),0x2bc:_0x340a16('0xb67'),0x320:'#ff8f00',0x384:_0x340a16('0x1ba'),'a100':'#ffe57f','a200':_0x340a16('0xad8'),'a400':'#ffc400','a700':_0x340a16('0x8dc')},'orange':{0x32:_0x340a16('0x413'),0x64:_0x340a16('0x5a'),0xc8:_0x340a16('0x26a'),0x12c:_0x340a16('0x33a'),0x190:_0x340a16('0x3b9'),0x1f4:_0x340a16('0x802'),0x258:'#fb8c00',0x2bc:_0x340a16('0x906'),0x320:_0x340a16('0xa0a'),0x384:_0x340a16('0x142'),'a100':_0x340a16('0xbce'),'a200':'#ffab40','a400':_0x340a16('0x418'),'a700':_0x340a16('0xa8')},'deepOrange':{0x32:'#fbe9e7',0x64:_0x340a16('0xc7f'),0xc8:_0x340a16('0x3a3'),0x12c:_0x340a16('0x2d3'),0x190:_0x340a16('0xb99'),0x1f4:'#ff5722',0x258:_0x340a16('0x4ab'),0x2bc:_0x340a16('0xb0d'),0x320:'#d84315',0x384:_0x340a16('0xcce'),'a100':_0x340a16('0xddf'),'a200':'#ff6e40','a400':'#ff3d00','a700':_0x340a16('0x671')},'brown':{0x32:_0x340a16('0x5c8'),0x64:_0x340a16('0x21'),0xc8:_0x340a16('0x3a9'),0x12c:'#a1887f',0x190:'#8d6e63',0x1f4:_0x340a16('0x842'),0x258:_0x340a16('0xca1'),0x2bc:'#5d4037',0x320:_0x340a16('0xc5c'),0x384:_0x340a16('0xd94')},'grey':{0x32:_0x340a16('0x131'),0x64:_0x340a16('0x331'),0xc8:_0x340a16('0x741'),0x12c:_0x340a16('0x487'),0x190:_0x340a16('0x3d8'),0x1f4:_0x340a16('0x8a8'),0x258:'#757575',0x2bc:_0x340a16('0x34f'),0x320:_0x340a16('0x64f'),0x384:_0x340a16('0x3b1')},'blueGrey':{0x32:_0x340a16('0x705'),0x64:_0x340a16('0xcc0'),0xc8:_0x340a16('0x4ef'),0x12c:_0x340a16('0x3dd'),0x190:_0x340a16('0xcee'),0x1f4:_0x340a16('0x5e5'),0x258:_0x340a16('0x5ee'),0x2bc:_0x340a16('0x91d'),0x320:_0x340a16('0xd3e'),0x384:_0x340a16('0x971')},'darkText':{'primary':'rgba(0,\x200,\x200,\x200.87)','secondary':'rgba(0,\x200,\x200,\x200.54)','disabled':_0x340a16('0x6e5'),'dividers':'rgba(0,\x200,\x200,\x200.12)'},'lightText':{'primary':'rgba(255,\x20255,\x20255,\x201)','secondary':_0x340a16('0xacd'),'disabled':'rgba(255,\x20255,\x20255,\x200.5)','dividers':_0x340a16('0x68e')},'darkIcons':{'active':_0x340a16('0x34a'),'inactive':_0x340a16('0x6e5')},'lightIcons':{'active':'rgba(255,\x20255,\x20255,\x201)','inactive':_0x340a16('0x39a')},'white':_0x340a16('0xda7'),'black':_0x340a16('0x9a8')}:_0x481225[_0x340a16('0xbb6')]={'red':{0x32:_0x340a16('0xb68'),0x64:_0x340a16('0xec'),0xc8:'#ef9a9a',0x12c:_0x340a16('0x6a'),0x190:_0x340a16('0x776'),0x1f4:'#f44336',0x258:_0x340a16('0x59a'),0x2bc:_0x340a16('0x618'),0x320:_0x340a16('0x57d'),0x384:_0x340a16('0x1d'),'a100':'#ff8a80','a200':_0x340a16('0x57'),'a400':_0x340a16('0x528'),'a700':_0x340a16('0x2d7')},'pink':{0x32:'#fce4ec',0x64:'#f8bbd0',0xc8:_0x340a16('0xdce'),0x12c:_0x340a16('0x1a5'),0x190:_0x340a16('0x993'),0x1f4:_0x340a16('0xde3'),0x258:_0x340a16('0x3f3'),0x2bc:'#c2185b',0x320:'#ad1457',0x384:'#880e4f','a100':_0x340a16('0x622'),'a200':_0x340a16('0x16d'),'a400':'#f50057','a700':_0x340a16('0x694')},'purple':{0x32:_0x340a16('0xc9a'),0x64:_0x340a16('0x416'),0xc8:_0x340a16('0x76b'),0x12c:_0x340a16('0x61c'),0x190:_0x340a16('0x639'),0x1f4:'#9c27b0',0x258:_0x340a16('0x9cd'),0x2bc:'#7b1fa2',0x320:_0x340a16('0x699'),0x384:'#4a148c','a100':_0x340a16('0xcf'),'a200':_0x340a16('0x13a'),'a400':_0x340a16('0xb84'),'a700':'#aa00ff'},'deepPurple':{0x32:_0x340a16('0x4b0'),0x64:_0x340a16('0x1e'),0xc8:'#b39ddb',0x12c:_0x340a16('0x2eb'),0x190:_0x340a16('0xc1c'),0x1f4:_0x340a16('0xab0'),0x258:_0x340a16('0x4a8'),0x2bc:_0x340a16('0xc98'),0x320:_0x340a16('0xcab'),0x384:_0x340a16('0x818'),'a100':_0x340a16('0x8cd'),'a200':'#7c4dff','a400':_0x340a16('0x770'),'a700':_0x340a16('0x94e')},'indigo':{0x32:_0x340a16('0xa85'),0x64:_0x340a16('0xb6d'),0xc8:_0x340a16('0x1d1'),0x12c:_0x340a16('0x9c5'),0x190:_0x340a16('0x8df'),0x1f4:'#3f51b5',0x258:_0x340a16('0x773'),0x2bc:_0x340a16('0xbc6'),0x320:'#283593',0x384:_0x340a16('0xc5f'),'a100':'#8c9eff','a200':_0x340a16('0xbaf'),'a400':_0x340a16('0x52d'),'a700':_0x340a16('0xc58')},'blue':{0x32:_0x340a16('0x585'),0x64:_0x340a16('0xe0'),0xc8:_0x340a16('0x9e7'),0x12c:_0x340a16('0x47e'),0x190:_0x340a16('0xc2'),0x1f4:_0x340a16('0xac8'),0x258:_0x340a16('0x35'),0x2bc:_0x340a16('0x161'),0x320:_0x340a16('0x53e'),0x384:'#0d47a1','a100':_0x340a16('0xcd1'),'a200':_0x340a16('0x1aa'),'a400':_0x340a16('0xcc7'),'a700':_0x340a16('0x7bd')},'lightBlue':{0x32:'#e1f5fe',0x64:_0x340a16('0xa03'),0xc8:'#81d4fa',0x12c:_0x340a16('0x559'),0x190:_0x340a16('0x8bd'),0x1f4:_0x340a16('0x6d2'),0x258:_0x340a16('0xbca'),0x2bc:'#0288d1',0x320:_0x340a16('0xae0'),0x384:_0x340a16('0x945'),'a100':'#80d8ff','a200':_0x340a16('0xa4f'),'a400':_0x340a16('0x232'),'a700':_0x340a16('0x676')},'cyan':{0x32:_0x340a16('0x60'),0x64:_0x340a16('0x2e8'),0xc8:_0x340a16('0x537'),0x12c:_0x340a16('0xc96'),0x190:_0x340a16('0x7fe'),0x1f4:'#00bcd4',0x258:'#00acc1',0x2bc:_0x340a16('0xd7b'),0x320:_0x340a16('0x960'),0x384:_0x340a16('0x758'),'a100':_0x340a16('0x308'),'a200':_0x340a16('0x6b9'),'a400':'#00e5ff','a700':_0x340a16('0xd8b')},'teal':{0x32:_0x340a16('0x4e7'),0x64:_0x340a16('0x349'),0xc8:_0x340a16('0x428'),0x12c:_0x340a16('0x755'),0x190:'#26a69a',0x1f4:'#009688',0x258:_0x340a16('0x6d5'),0x2bc:_0x340a16('0x2c8'),0x320:'#00695c',0x384:'#004d40','a100':_0x340a16('0xadd'),'a200':_0x340a16('0x264'),'a400':_0x340a16('0x68f'),'a700':_0x340a16('0x3c1')},'green':{0x32:_0x340a16('0x3c6'),0x64:_0x340a16('0xd45'),0xc8:_0x340a16('0x4b9'),0x12c:'#81c784',0x190:'#66bb6a',0x1f4:_0x340a16('0xbcb'),0x258:_0x340a16('0x69f'),0x2bc:_0x340a16('0x4b5'),0x320:_0x340a16('0x783'),0x384:_0x340a16('0x2bb'),'a100':_0x340a16('0x360'),'a200':_0x340a16('0xc75'),'a400':_0x340a16('0xac5'),'a700':_0x340a16('0x101')},'lightGreen':{0x32:_0x340a16('0xd5c'),0x64:_0x340a16('0x780'),0xc8:_0x340a16('0x39'),0x12c:_0x340a16('0xd47'),0x190:_0x340a16('0xca9'),0x1f4:_0x340a16('0x94a'),0x258:'#7cb342',0x2bc:_0x340a16('0x262'),0x320:_0x340a16('0x984'),0x384:'#33691e','a100':'#ccff90','a200':_0x340a16('0x158'),'a400':_0x340a16('0x4be'),'a700':_0x340a16('0xba2')},'lime':{0x32:'#f9fbe7',0x64:_0x340a16('0x4ad'),0xc8:'#e6ee9c',0x12c:_0x340a16('0x75f'),0x190:'#d4e157',0x1f4:_0x340a16('0x84c'),0x258:_0x340a16('0x69'),0x2bc:'#afb42b',0x320:'#9e9d24',0x384:_0x340a16('0x45a'),'a100':_0x340a16('0x24'),'a200':_0x340a16('0xd51'),'a400':_0x340a16('0x94c'),'a700':_0x340a16('0x4c8')},'yellow':{0x32:_0x340a16('0x4d0'),0x64:'#fff9c4',0xc8:_0x340a16('0xb9d'),0x12c:_0x340a16('0x3ed'),0x190:_0x340a16('0x9d4'),0x1f4:_0x340a16('0x9f'),0x258:_0x340a16('0x7cc'),0x2bc:_0x340a16('0x53d'),0x320:_0x340a16('0x215'),0x384:_0x340a16('0xd25'),'a100':_0x340a16('0x338'),'a200':_0x340a16('0xba1'),'a400':_0x340a16('0x5cc'),'a700':_0x340a16('0x23')},'amber':{0x32:'#fff8e1',0x64:_0x340a16('0xb4b'),0xc8:_0x340a16('0x7e0'),0x12c:_0x340a16('0xd69'),0x190:_0x340a16('0x3bd'),0x1f4:_0x340a16('0xc83'),0x258:_0x340a16('0x25d'),0x2bc:'#ffa000',0x320:_0x340a16('0xcf2'),0x384:_0x340a16('0x1ba'),'a100':_0x340a16('0xa97'),'a200':_0x340a16('0xad8'),'a400':_0x340a16('0xd96'),'a700':_0x340a16('0x8dc')},'orange':{0x32:'#fff3e0',0x64:_0x340a16('0x5a'),0xc8:_0x340a16('0x26a'),0x12c:'#ffb74d',0x190:_0x340a16('0x3b9'),0x1f4:_0x340a16('0x802'),0x258:'#fb8c00',0x2bc:_0x340a16('0x906'),0x320:_0x340a16('0xa0a'),0x384:_0x340a16('0x142'),'a100':_0x340a16('0xbce'),'a200':_0x340a16('0x7b5'),'a400':'#ff9100','a700':_0x340a16('0xa8')},'deepOrange':{0x32:_0x340a16('0xc84'),0x64:_0x340a16('0xc7f'),0xc8:_0x340a16('0x3a3'),0x12c:_0x340a16('0x2d3'),0x190:_0x340a16('0xb99'),0x1f4:_0x340a16('0x2be'),0x258:'#f4511e',0x2bc:_0x340a16('0xb0d'),0x320:_0x340a16('0xb2d'),0x384:'#bf360c','a100':_0x340a16('0xddf'),'a200':_0x340a16('0xda1'),'a400':'#ff3d00','a700':_0x340a16('0x671')},'brown':{0x32:'#efebe9',0x64:_0x340a16('0x21'),0xc8:_0x340a16('0x3a9'),0x12c:'#a1887f',0x190:'#8d6e63',0x1f4:_0x340a16('0x842'),0x258:_0x340a16('0xca1'),0x2bc:_0x340a16('0x192'),0x320:_0x340a16('0xc5c'),0x384:_0x340a16('0xd94')},'grey':{0x32:_0x340a16('0x131'),0x64:_0x340a16('0x331'),0xc8:_0x340a16('0x741'),0x12c:_0x340a16('0x487'),0x190:_0x340a16('0x3d8'),0x1f4:_0x340a16('0x8a8'),0x258:_0x340a16('0xd53'),0x2bc:_0x340a16('0x34f'),0x320:_0x340a16('0x64f'),0x384:_0x340a16('0x3b1')},'blueGrey':{0x32:_0x340a16('0x705'),0x64:_0x340a16('0xcc0'),0xc8:_0x340a16('0x4ef'),0x12c:'#90a4ae',0x190:_0x340a16('0xcee'),0x1f4:_0x340a16('0x5e5'),0x258:_0x340a16('0x5ee'),0x2bc:_0x340a16('0x91d'),0x320:_0x340a16('0xd3e'),0x384:_0x340a16('0x971')},'darkText':{'primary':_0x340a16('0x5b7'),'secondary':_0x340a16('0x34a'),'disabled':_0x340a16('0x6e5'),'dividers':'rgba(0,\x200,\x200,\x200.12)'},'lightText':{'primary':_0x340a16('0x6e'),'secondary':_0x340a16('0xacd'),'disabled':_0x340a16('0x39a'),'dividers':'rgba(255,\x20255,\x20255,\x200.12)'},'darkIcons':{'active':_0x340a16('0x34a'),'inactive':_0x340a16('0x6e5')},'lightIcons':{'active':'rgba(255,\x20255,\x20255,\x201)','inactive':'rgba(255,\x20255,\x20255,\x200.5)'},'white':_0x340a16('0xda7'),'black':_0x340a16('0x9a8')};},{}],0x131:[function(_0x2367e5,_0x523ef7,_0x32c20e){var _0x4c48e6=_0x38d28e;/* +/* eslint-disable no-proto */ + +'use strict' + +var base64 = require('base64-js') +var ieee754 = require('ieee754') + +exports.Buffer = Buffer +exports.SlowBuffer = SlowBuffer +exports.INSPECT_MAX_BYTES = 50 + +var K_MAX_LENGTH = 0x7fffffff +exports.kMaxLength = K_MAX_LENGTH + +/** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Print warning and recommend using `buffer` v4.x which has an Object + * implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * We report that the browser does not support typed arrays if the are not subclassable + * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` + * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support + * for __proto__ and has a buggy typed array implementation. + */ +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() + +if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && + typeof console.error === 'function') { + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by ' + + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' + ) +} + +function typedArraySupport () { + // Can typed array instances can be augmented? + try { + var arr = new Uint8Array(1) + arr.__proto__ = { __proto__: Uint8Array.prototype, foo: function () { return 42 } } + return arr.foo() === 42 + } catch (e) { + return false + } +} + +Object.defineProperty(Buffer.prototype, 'parent', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.buffer + } +}) + +Object.defineProperty(Buffer.prototype, 'offset', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.byteOffset + } +}) + +function createBuffer (length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"') + } + // Return an augmented `Uint8Array` instance + var buf = new Uint8Array(length) + buf.__proto__ = Buffer.prototype + return buf +} + +/** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + +function Buffer (arg, encodingOrOffset, length) { + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ) + } + return allocUnsafe(arg) + } + return from(arg, encodingOrOffset, length) +} + +// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 +if (typeof Symbol !== 'undefined' && Symbol.species != null && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }) +} + +Buffer.poolSize = 8192 // not used by this implementation + +function from (value, encodingOrOffset, length) { + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) + } + + if (ArrayBuffer.isView(value)) { + return fromArrayLike(value) + } + + if (value == null) { + throw TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) + } + + if (isInstance(value, ArrayBuffer) || + (value && isInstance(value.buffer, ArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length) + } + + if (typeof value === 'number') { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ) + } + + var valueOf = value.valueOf && value.valueOf() + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length) + } + + var b = fromObject(value) + if (b) return b + + if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && + typeof value[Symbol.toPrimitive] === 'function') { + return Buffer.from( + value[Symbol.toPrimitive]('string'), encodingOrOffset, length + ) + } + + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) +} + +/** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ +Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length) +} + +// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: +// https://github.com/feross/buffer/pull/148 +Buffer.prototype.__proto__ = Uint8Array.prototype +Buffer.__proto__ = Uint8Array + +function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be of type number') + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } +} + +function alloc (size, fill, encoding) { + assertSize(size) + if (size <= 0) { + return createBuffer(size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(size).fill(fill, encoding) + : createBuffer(size).fill(fill) + } + return createBuffer(size) +} + +/** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ +Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding) +} + +function allocUnsafe (size) { + assertSize(size) + return createBuffer(size < 0 ? 0 : checked(size) | 0) +} + +/** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ +Buffer.allocUnsafe = function (size) { + return allocUnsafe(size) +} +/** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ +Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size) +} + +function fromString (string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8' + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + + var length = byteLength(string, encoding) | 0 + var buf = createBuffer(length) + + var actual = buf.write(string, encoding) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) + } + + return buf +} + +function fromArrayLike (array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + var buf = createBuffer(length) + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 + } + return buf +} + +function fromArrayBuffer (array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds') + } + + var buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } + + // Return an augmented `Uint8Array` instance + buf.__proto__ = Buffer.prototype + return buf +} + +function fromObject (obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + var buf = createBuffer(len) + + if (buf.length === 0) { + return buf + } + + obj.copy(buf, 0, 0, len) + return buf + } + + if (obj.length !== undefined) { + if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { + return createBuffer(0) + } + return fromArrayLike(obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(obj.data) + } +} + +function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 +} + +function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0 + } + return Buffer.alloc(+length) +} + +Buffer.isBuffer = function isBuffer (b) { + return b != null && b._isBuffer === true && + b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false +} + +Buffer.compare = function compare (a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength) + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength) + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ) + } + + if (a === b) return 0 + + var x = a.length + var y = b.length + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i] + y = b[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } +} + +Buffer.concat = function concat (list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = Buffer.allocUnsafe(length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (isInstance(buf, Uint8Array)) { + buf = Buffer.from(buf) + } + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + 'Received type ' + typeof string + ) + } + + var len = string.length + var mustMatch = (arguments.length > 2 && arguments[2] === true) + if (!mustMatch && len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 + } + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} +Buffer.byteLength = byteLength + +function slowToString (encoding, start, end) { + var loweredCase = false + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0 + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0 + start >>>= 0 + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8' + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase() + loweredCase = true + } + } +} + +// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) +// to detect a Buffer instance. It's not possible to use `instanceof Buffer` +// reliably in a browserify context because there could be multiple different +// copies of the 'buffer' package in use. This method works even for Buffer +// instances that were created from another copy of the `buffer` package. +// See: https://github.com/feross/buffer/issues/154 +Buffer.prototype._isBuffer = true + +function swap (b, n, m) { + var i = b[n] + b[n] = b[m] + b[m] = i +} + +Buffer.prototype.swap16 = function swap16 () { + var len = this.length + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1) + } + return this +} + +Buffer.prototype.swap32 = function swap32 () { + var len = this.length + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3) + swap(this, i + 1, i + 2) + } + return this +} + +Buffer.prototype.swap64 = function swap64 () { + var len = this.length + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7) + swap(this, i + 1, i + 6) + swap(this, i + 2, i + 5) + swap(this, i + 3, i + 4) + } + return this +} + +Buffer.prototype.toString = function toString () { + var length = this.length + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) +} + +Buffer.prototype.toLocaleString = Buffer.prototype.toString + +Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 +} + +Buffer.prototype.inspect = function inspect () { + var str = '' + var max = exports.INSPECT_MAX_BYTES + str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim() + if (this.length > max) str += ' ... ' + return '' +} + +Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength) + } + if (!Buffer.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. ' + + 'Received type ' + (typeof target) + ) + } + + if (start === undefined) { + start = 0 + } + if (end === undefined) { + end = target ? target.length : 0 + } + if (thisStart === undefined) { + thisStart = 0 + } + if (thisEnd === undefined) { + thisEnd = this.length + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0 + end >>>= 0 + thisStart >>>= 0 + thisEnd >>>= 0 + + if (this === target) return 0 + + var x = thisEnd - thisStart + var y = end - start + var len = Math.min(x, y) + + var thisCopy = this.slice(thisStart, thisEnd) + var targetCopy = target.slice(start, end) + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i] + y = targetCopy[i] + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 +} + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant is val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset + byteOffset = 0 + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000 + } + byteOffset = +byteOffset // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1) + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1 + } else if (byteOffset < 0) { + if (dir) byteOffset = 0 + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding) + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') +} + +function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1 + var arrLength = arr.length + var valLength = val.length + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase() + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2 + arrLength /= 2 + valLength /= 2 + byteOffset /= 2 + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i + if (dir) { + var foundIndex = -1 + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex + foundIndex = -1 + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength + for (i = byteOffset; i >= 0; i--) { + var found = true + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false + break + } + } + if (found) return i + } + } + + return -1 +} + +Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 +} + +Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) +} + +Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) +} + +function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0 + var remaining = buf.length - offset + if (!length) { + length = remaining + } else { + length = Number(length) + if (length > remaining) { + length = remaining + } + } + + var strLen = string.length + + if (length > strLen / 2) { + length = strLen / 2 + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16) + if (numberIsNaN(parsed)) return i + buf[offset + i] = parsed + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) +} + +function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) +} + +function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) +} + +function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) +} + +Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8' + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset + length = this.length + offset = 0 + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset >>> 0 + if (isFinite(length)) { + length = length >>> 0 + if (encoding === undefined) encoding = 'utf8' + } else { + encoding = length + length = undefined + } + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8' + + var loweredCase = false + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase() + loweredCase = true + } + } +} + +Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } +} + +function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } +} + +function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end) + var res = [] + + var i = start + while (i < end) { + var firstByte = buf[i] + var codePoint = null + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1 + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = buf[i + 1] + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F) + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F) + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = buf[i + 1] + thirdByte = buf[i + 2] + fourthByte = buf[i + 3] + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F) + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD + bytesPerSequence = 1 + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(codePoint >>> 10 & 0x3FF | 0xD800) + codePoint = 0xDC00 | codePoint & 0x3FF + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +var MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray (codePoints) { + var len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = '' + var i = 0 + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ) + } + return res +} + +function asciiSlice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F) + } + return ret +} + +function latin1Slice (buf, start, end) { + var ret = '' + end = Math.min(buf.length, end) + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]) + } + return ret +} + +function hexSlice (buf, start, end) { + var len = buf.length + + if (!start || start < 0) start = 0 + if (!end || end < 0 || end > len) end = len + + var out = '' + for (var i = start; i < end; ++i) { + out += toHex(buf[i]) + } + return out +} + +function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end) + var res = '' + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)) + } + return res +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf = this.subarray(start, end) + // Return an augmented `Uint8Array` instance + newBuf.__proto__ = Buffer.prototype + return newBuf +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') +} + +Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + + return val +} + +Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + checkOffset(offset, byteLength, this.length) + } + + var val = this[offset + --byteLength] + var mul = 1 + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul + } + + return val +} + +Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + return this[offset] +} + +Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return this[offset] | (this[offset + 1] << 8) +} + +Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + return (this[offset] << 8) | this[offset + 1] +} + +Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) +} + +Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) +} + +Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var val = this[offset] + var mul = 1 + var i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, this.length) + + var i = byteLength + var mul = 1 + var val = this[offset + --i] + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 1, this.length) + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) +} + +Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset] | (this[offset + 1] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 2, this.length) + var val = this[offset + 1] | (this[offset] << 8) + return (val & 0x8000) ? val | 0xFFFF0000 : val +} + +Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) +} + +Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) +} + +Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, true, 23, 4) +} + +Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, this.length) + return ieee754.read(this, offset, false, 23, 4) +} + +Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, true, 52, 8) +} + +Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 8, this.length) + return ieee754.read(this, offset, false, 52, 8) +} + +function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') +} + +Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var mul = 1 + var i = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1 + checkInt(this, value, offset, byteLength, maxBytes, 0) + } + + var i = byteLength - 1 + var mul = 1 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0) + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 +} + +Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 +} + +Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset + 3] = (value >>> 24) + this[offset + 2] = (value >>> 16) + this[offset + 1] = (value >>> 8) + this[offset] = (value & 0xff) + return offset + 4 +} + +Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0) + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 +} + +Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + var limit = Math.pow(2, (8 * byteLength) - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = 0 + var mul = 1 + var sub = 0 + this[offset] = value & 0xFF + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + var limit = Math.pow(2, (8 * byteLength) - 1) + + checkInt(this, value, offset, byteLength, limit - 1, -limit) + } + + var i = byteLength - 1 + var mul = 1 + var sub = 0 + this[offset + i] = value & 0xFF + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1 + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF + } + + return offset + byteLength +} + +Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80) + if (value < 0) value = 0xff + value + 1 + this[offset] = (value & 0xff) + return offset + 1 +} + +Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + return offset + 2 +} + +Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000) + this[offset] = (value >>> 8) + this[offset + 1] = (value & 0xff) + return offset + 2 +} + +Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + this[offset] = (value & 0xff) + this[offset + 1] = (value >>> 8) + this[offset + 2] = (value >>> 16) + this[offset + 3] = (value >>> 24) + return offset + 4 +} + +Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000) + if (value < 0) value = 0xffffffff + value + 1 + this[offset] = (value >>> 24) + this[offset + 1] = (value >>> 16) + this[offset + 2] = (value >>> 8) + this[offset + 3] = (value & 0xff) + return offset + 4 +} + +function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') +} + +function writeFloat (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38) + } + ieee754.write(buf, value, offset, littleEndian, 23, 4) + return offset + 4 +} + +Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) +} + +function writeDouble (buf, value, offset, littleEndian, noAssert) { + value = +value + offset = offset >>> 0 + if (!noAssert) { + checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308) + } + ieee754.write(buf, value, offset, littleEndian, 52, 8) + return offset + 8 +} + +Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) +} + +Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) +} + +// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('Index out of range') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + + if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { + // Use built-in when available, missing from IE11 + this.copyWithin(targetStart, start, end) + } else if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (var i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ) + } + + return len +} + +// Usage: +// buffer.fill(number[, offset[, end]]) +// buffer.fill(buffer[, offset[, end]]) +// buffer.fill(string[, offset[, end]][, encoding]) +Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start + start = 0 + end = this.length + } else if (typeof end === 'string') { + encoding = end + end = this.length + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if ((encoding === 'utf8' && code < 128) || + encoding === 'latin1') { + // Fast path: If `val` fits into a single byte, use that numeric value. + val = code + } + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : Buffer.from(val, encoding) + var len = bytes.length + if (len === 0) { + throw new TypeError('The value "' + val + + '" is invalid for argument "value"') + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +// HELPER FUNCTIONS +// ================ + +var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g + +function base64clean (str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split('=')[0] + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, '') + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '=' + } + return str +} + +function toHex (n) { + if (n < 16) return '0' + n.toString(16) + return n.toString(16) +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function asciiToBytes (str) { + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF) + } + return byteArray +} + +function utf16leToBytes (str, units) { + var c, hi, lo + var byteArray = [] + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i) + hi = c >> 8 + lo = c % 256 + byteArray.push(lo) + byteArray.push(hi) + } + + return byteArray +} + +function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass +// the `instanceof` check but they should be treated as of that type. +// See: https://github.com/feross/buffer/issues/166 +function isInstance (obj, type) { + return obj instanceof type || + (obj != null && obj.constructor != null && obj.constructor.name != null && + obj.constructor.name === type.name) +} +function numberIsNaN (obj) { + // For IE11 support + return obj !== obj // eslint-disable-line no-self-compare +} + +}).call(this,require("buffer").Buffer) + +},{"base64-js":1,"buffer":2,"ieee754":4}],3:[function(require,module,exports){ +'use strict'; + +/****************************************************************************** + * Created 2008-08-19. + * + * Dijkstra path-finding functions. Adapted from the Dijkstar Python project. + * + * Copyright (C) 2008 + * Wyatt Baldwin + * All rights reserved + * + * Licensed under the MIT license. + * + * http://www.opensource.org/licenses/mit-license.php + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *****************************************************************************/ +var dijkstra = { + single_source_shortest_paths: function(graph, s, d) { + // Predecessor map for each node that has been encountered. + // node ID => predecessor node ID + var predecessors = {}; + + // Costs of shortest paths from s to all nodes encountered. + // node ID => cost + var costs = {}; + costs[s] = 0; + + // Costs of shortest paths from s to all nodes encountered; differs from + // `costs` in that it provides easy access to the node that currently has + // the known shortest path from s. + // XXX: Do we actually need both `costs` and `open`? + var open = dijkstra.PriorityQueue.make(); + open.push(s, 0); + + var closest, + u, v, + cost_of_s_to_u, + adjacent_nodes, + cost_of_e, + cost_of_s_to_u_plus_cost_of_e, + cost_of_s_to_v, + first_visit; + while (!open.empty()) { + // In the nodes remaining in graph that have a known cost from s, + // find the node, u, that currently has the shortest path from s. + closest = open.pop(); + u = closest.value; + cost_of_s_to_u = closest.cost; + + // Get nodes adjacent to u... + adjacent_nodes = graph[u] || {}; + + // ...and explore the edges that connect u to those nodes, updating + // the cost of the shortest paths to any or all of those nodes as + // necessary. v is the node across the current edge from u. + for (v in adjacent_nodes) { + if (adjacent_nodes.hasOwnProperty(v)) { + // Get the cost of the edge running from u to v. + cost_of_e = adjacent_nodes[v]; + + // Cost of s to u plus the cost of u to v across e--this is *a* + // cost from s to v that may or may not be less than the current + // known cost to v. + cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; + + // If we haven't visited v yet OR if the current known cost from s to + // v is greater than the new cost we just found (cost of s to u plus + // cost of u to v across e), update v's cost in the cost list and + // update v's predecessor in the predecessor list (it's now u). + cost_of_s_to_v = costs[v]; + first_visit = (typeof costs[v] === 'undefined'); + if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) { + costs[v] = cost_of_s_to_u_plus_cost_of_e; + open.push(v, cost_of_s_to_u_plus_cost_of_e); + predecessors[v] = u; + } + } + } + } + + if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') { + var msg = ['Could not find a path from ', s, ' to ', d, '.'].join(''); + throw new Error(msg); + } + + return predecessors; + }, + + extract_shortest_path_from_predecessor_list: function(predecessors, d) { + var nodes = []; + var u = d; + var predecessor; + while (u) { + nodes.push(u); + predecessor = predecessors[u]; + u = predecessors[u]; + } + nodes.reverse(); + return nodes; + }, + + find_path: function(graph, s, d) { + var predecessors = dijkstra.single_source_shortest_paths(graph, s, d); + return dijkstra.extract_shortest_path_from_predecessor_list( + predecessors, d); + }, + + /** + * A very naive priority queue implementation. + */ + PriorityQueue: { + make: function (opts) { + var T = dijkstra.PriorityQueue, + t = {}, + key; + opts = opts || {}; + for (key in T) { + if (T.hasOwnProperty(key)) { + t[key] = T[key]; + } + } + t.queue = []; + t.sorter = opts.sorter || T.default_sorter; + return t; + }, + + default_sorter: function (a, b) { + return a.cost - b.cost; + }, + + /** + * Add a new item to the queue and ensure the highest priority element + * is at the front of the queue. + */ + push: function (value, cost) { + var item = {value: value, cost: cost}; + this.queue.push(item); + this.queue.sort(this.sorter); + }, + + /** + * Return the highest priority element in the queue. + */ + pop: function () { + return this.queue.shift(); + }, + + empty: function () { + return this.queue.length === 0; + } + } +}; + + +// node.js module exports +if (typeof module !== 'undefined') { + module.exports = dijkstra; +} + +},{}],4:[function(require,module,exports){ +exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var nBits = -7 + var i = isLE ? (nBytes - 1) : 0 + var d = isLE ? -1 : 1 + var s = buffer[offset + i] + + i += d + + e = s & ((1 << (-nBits)) - 1) + s >>= (-nBits) + nBits += eLen + for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1) + e >>= (-nBits) + nBits += mLen + for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen) + e = e - eBias + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) +} + +exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c + var eLen = (nBytes * 8) - mLen - 1 + var eMax = (1 << eLen) - 1 + var eBias = eMax >> 1 + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0) + var i = isLE ? 0 : (nBytes - 1) + var d = isLE ? 1 : -1 + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0 + + value = Math.abs(value) + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0 + e = eMax + } else { + e = Math.floor(Math.log(value) / Math.LN2) + if (value * (c = Math.pow(2, -e)) < 1) { + e-- + c *= 2 + } + if (e + eBias >= 1) { + value += rt / c + } else { + value += rt * Math.pow(2, 1 - eBias) + } + if (value * c >= 2) { + e++ + c /= 2 + } + + if (e + eBias >= eMax) { + m = 0 + e = eMax + } else if (e + eBias >= 1) { + m = ((value * c) - 1) * Math.pow(2, mLen) + e = e + eBias + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen) + e = 0 + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m + eLen += mLen + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128 +} + +},{}],5:[function(require,module,exports){ +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + +},{}],6:[function(require,module,exports){ +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; +process.prependListener = noop; +process.prependOnceListener = noop; + +process.listeners = function (name) { return [] } + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],7:[function(require,module,exports){ + +var canPromise = require('./can-promise') + +var QRCode = require('./core/qrcode') +var CanvasRenderer = require('./renderer/canvas') +var SvgRenderer = require('./renderer/svg-tag.js') + +function renderCanvas (renderFunc, canvas, text, opts, cb) { + var args = [].slice.call(arguments, 1) + var argsNum = args.length + var isLastArgCb = typeof args[argsNum - 1] === 'function' + + if (!isLastArgCb && !canPromise()) { + throw new Error('Callback required as last argument') + } + + if (isLastArgCb) { + if (argsNum < 2) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 2) { + cb = text + text = canvas + canvas = opts = undefined + } else if (argsNum === 3) { + if (canvas.getContext && typeof cb === 'undefined') { + cb = opts + opts = undefined + } else { + cb = opts + opts = text + text = canvas + canvas = undefined + } + } + } else { + if (argsNum < 1) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 1) { + text = canvas + canvas = opts = undefined + } else if (argsNum === 2 && !canvas.getContext) { + opts = text + text = canvas + canvas = undefined + } + + return new Promise(function (resolve, reject) { + try { + var data = QRCode.create(text, opts) + resolve(renderFunc(data, canvas, opts)) + } catch (e) { + reject(e) + } + }) + } + + try { + var data = QRCode.create(text, opts) + cb(null, renderFunc(data, canvas, opts)) + } catch (e) { + cb(e) + } +} + +exports.create = QRCode.create +exports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render) +exports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL) + +// only svg for now. +exports.toString = renderCanvas.bind(null, function (data, _, opts) { + return SvgRenderer.render(data, opts) +}) + +},{"./can-promise":8,"./core/qrcode":24,"./renderer/canvas":31,"./renderer/svg-tag.js":32}],8:[function(require,module,exports){ +// can-promise has a crash in some versions of react native that dont have +// standard global objects +// https://github.com/soldair/node-qrcode/issues/157 + +module.exports = function () { + return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then +} + +},{}],9:[function(require,module,exports){ +/** + * Alignment pattern are fixed reference pattern in defined positions + * in a matrix symbology, which enables the decode software to re-synchronise + * the coordinate mapping of the image modules in the event of moderate amounts + * of distortion of the image. + * + * Alignment patterns are present only in QR Code symbols of version 2 or larger + * and their number depends on the symbol version. + */ + +var getSymbolSize = require('./utils').getSymbolSize + +/** + * Calculate the row/column coordinates of the center module of each alignment pattern + * for the specified QR Code version. + * + * The alignment patterns are positioned symmetrically on either side of the diagonal + * running from the top left corner of the symbol to the bottom right corner. + * + * Since positions are simmetrical only half of the coordinates are returned. + * Each item of the array will represent in turn the x and y coordinate. + * @see {@link getPositions} + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinate + */ +exports.getRowColCoords = function getRowColCoords (version) { + if (version === 1) return [] + + var posCount = Math.floor(version / 7) + 2 + var size = getSymbolSize(version) + var intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2 + var positions = [size - 7] // Last coord is always (size - 7) + + for (var i = 1; i < posCount - 1; i++) { + positions[i] = positions[i - 1] - intervals + } + + positions.push(6) // First coord is always 6 + + return positions.reverse() +} + +/** + * Returns an array containing the positions of each alignment pattern. + * Each array's element represent the center point of the pattern as (x, y) coordinates + * + * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords} + * and filtering out the items that overlaps with finder pattern + * + * @example + * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38. + * The alignment patterns, therefore, are to be centered on (row, column) + * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38). + * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns + * and are not therefore used for alignment patterns. + * + * var pos = getPositions(7) + * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]] + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinates + */ +exports.getPositions = function getPositions (version) { + var coords = [] + var pos = exports.getRowColCoords(version) + var posLength = pos.length + + for (var i = 0; i < posLength; i++) { + for (var j = 0; j < posLength; j++) { + // Skip if position is occupied by finder patterns + if ((i === 0 && j === 0) || // top-left + (i === 0 && j === posLength - 1) || // bottom-left + (i === posLength - 1 && j === 0)) { // top-right + continue + } + + coords.push([pos[i], pos[j]]) + } + } + + return coords +} + +},{"./utils":28}],10:[function(require,module,exports){ +var Mode = require('./mode') + +/** + * Array of characters available in alphanumeric mode + * + * As per QR Code specification, to each character + * is assigned a value from 0 to 44 which in this case coincides + * with the array index + * + * @type {Array} + */ +var ALPHA_NUM_CHARS = [ + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', + 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', + ' ', '$', '%', '*', '+', '-', '.', '/', ':' +] + +function AlphanumericData (data) { + this.mode = Mode.ALPHANUMERIC + this.data = data +} + +AlphanumericData.getBitsLength = function getBitsLength (length) { + return 11 * Math.floor(length / 2) + 6 * (length % 2) +} + +AlphanumericData.prototype.getLength = function getLength () { + return this.data.length +} + +AlphanumericData.prototype.getBitsLength = function getBitsLength () { + return AlphanumericData.getBitsLength(this.data.length) +} + +AlphanumericData.prototype.write = function write (bitBuffer) { + var i + + // Input data characters are divided into groups of two characters + // and encoded as 11-bit binary codes. + for (i = 0; i + 2 <= this.data.length; i += 2) { + // The character value of the first character is multiplied by 45 + var value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45 + + // The character value of the second digit is added to the product + value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1]) + + // The sum is then stored as 11-bit binary number + bitBuffer.put(value, 11) + } + + // If the number of input data characters is not a multiple of two, + // the character value of the final character is encoded as a 6-bit binary number. + if (this.data.length % 2) { + bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6) + } +} + +module.exports = AlphanumericData + +},{"./mode":21}],11:[function(require,module,exports){ +function BitBuffer () { + this.buffer = [] + this.length = 0 +} + +BitBuffer.prototype = { + + get: function (index) { + var bufIndex = Math.floor(index / 8) + return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1 + }, + + put: function (num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1) === 1) + } + }, + + getLengthInBits: function () { + return this.length + }, + + putBit: function (bit) { + var bufIndex = Math.floor(this.length / 8) + if (this.buffer.length <= bufIndex) { + this.buffer.push(0) + } + + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)) + } + + this.length++ + } +} + +module.exports = BitBuffer + +},{}],12:[function(require,module,exports){ +var BufferUtil = require('../utils/buffer') + +/** + * Helper class to handle QR Code symbol modules + * + * @param {Number} size Symbol size + */ +function BitMatrix (size) { + if (!size || size < 1) { + throw new Error('BitMatrix size must be defined and greater than 0') + } + + this.size = size + this.data = BufferUtil.alloc(size * size) + this.reservedBit = BufferUtil.alloc(size * size) +} + +/** + * Set bit value at specified location + * If reserved flag is set, this bit will be ignored during masking process + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + * @param {Boolean} reserved + */ +BitMatrix.prototype.set = function (row, col, value, reserved) { + var index = row * this.size + col + this.data[index] = value + if (reserved) this.reservedBit[index] = true +} + +/** + * Returns bit value at specified location + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ +BitMatrix.prototype.get = function (row, col) { + return this.data[row * this.size + col] +} + +/** + * Applies xor operator at specified location + * (used during masking process) + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + */ +BitMatrix.prototype.xor = function (row, col, value) { + this.data[row * this.size + col] ^= value +} + +/** + * Check if bit at specified location is reserved + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ +BitMatrix.prototype.isReserved = function (row, col) { + return this.reservedBit[row * this.size + col] +} + +module.exports = BitMatrix + +},{"../utils/buffer":34}],13:[function(require,module,exports){ +var BufferUtil = require('../utils/buffer') +var Mode = require('./mode') + +function ByteData (data) { + this.mode = Mode.BYTE + this.data = BufferUtil.from(data) +} + +ByteData.getBitsLength = function getBitsLength (length) { + return length * 8 +} + +ByteData.prototype.getLength = function getLength () { + return this.data.length +} + +ByteData.prototype.getBitsLength = function getBitsLength () { + return ByteData.getBitsLength(this.data.length) +} + +ByteData.prototype.write = function (bitBuffer) { + for (var i = 0, l = this.data.length; i < l; i++) { + bitBuffer.put(this.data[i], 8) + } +} + +module.exports = ByteData + +},{"../utils/buffer":34,"./mode":21}],14:[function(require,module,exports){ +var ECLevel = require('./error-correction-level') + +var EC_BLOCKS_TABLE = [ +// L M Q H + 1, 1, 1, 1, + 1, 1, 1, 1, + 1, 1, 2, 2, + 1, 2, 2, 4, + 1, 2, 4, 4, + 2, 4, 4, 4, + 2, 4, 6, 5, + 2, 4, 6, 6, + 2, 5, 8, 8, + 4, 5, 8, 8, + 4, 5, 8, 11, + 4, 8, 10, 11, + 4, 9, 12, 16, + 4, 9, 16, 16, + 6, 10, 12, 18, + 6, 10, 17, 16, + 6, 11, 16, 19, + 6, 13, 18, 21, + 7, 14, 21, 25, + 8, 16, 20, 25, + 8, 17, 23, 25, + 9, 17, 23, 34, + 9, 18, 25, 30, + 10, 20, 27, 32, + 12, 21, 29, 35, + 12, 23, 34, 37, + 12, 25, 34, 40, + 13, 26, 35, 42, + 14, 28, 38, 45, + 15, 29, 40, 48, + 16, 31, 43, 51, + 17, 33, 45, 54, + 18, 35, 48, 57, + 19, 37, 51, 60, + 19, 38, 53, 63, + 20, 40, 56, 66, + 21, 43, 59, 70, + 22, 45, 62, 74, + 24, 47, 65, 77, + 25, 49, 68, 81 +] + +var EC_CODEWORDS_TABLE = [ +// L M Q H + 7, 10, 13, 17, + 10, 16, 22, 28, + 15, 26, 36, 44, + 20, 36, 52, 64, + 26, 48, 72, 88, + 36, 64, 96, 112, + 40, 72, 108, 130, + 48, 88, 132, 156, + 60, 110, 160, 192, + 72, 130, 192, 224, + 80, 150, 224, 264, + 96, 176, 260, 308, + 104, 198, 288, 352, + 120, 216, 320, 384, + 132, 240, 360, 432, + 144, 280, 408, 480, + 168, 308, 448, 532, + 180, 338, 504, 588, + 196, 364, 546, 650, + 224, 416, 600, 700, + 224, 442, 644, 750, + 252, 476, 690, 816, + 270, 504, 750, 900, + 300, 560, 810, 960, + 312, 588, 870, 1050, + 336, 644, 952, 1110, + 360, 700, 1020, 1200, + 390, 728, 1050, 1260, + 420, 784, 1140, 1350, + 450, 812, 1200, 1440, + 480, 868, 1290, 1530, + 510, 924, 1350, 1620, + 540, 980, 1440, 1710, + 570, 1036, 1530, 1800, + 570, 1064, 1590, 1890, + 600, 1120, 1680, 1980, + 630, 1204, 1770, 2100, + 660, 1260, 1860, 2220, + 720, 1316, 1950, 2310, + 750, 1372, 2040, 2430 +] + +/** + * Returns the number of error correction block that the QR Code should contain + * for the specified version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction blocks + */ +exports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } +} + +/** + * Returns the number of error correction codewords to use for the specified + * version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction codewords + */ +exports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } +} + +},{"./error-correction-level":15}],15:[function(require,module,exports){ +exports.L = { bit: 1 } +exports.M = { bit: 0 } +exports.Q = { bit: 3 } +exports.H = { bit: 2 } + +function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase() + + switch (lcStr) { + case 'l': + case 'low': + return exports.L + + case 'm': + case 'medium': + return exports.M + + case 'q': + case 'quartile': + return exports.Q + + case 'h': + case 'high': + return exports.H + + default: + throw new Error('Unknown EC Level: ' + string) + } +} + +exports.isValid = function isValid (level) { + return level && typeof level.bit !== 'undefined' && + level.bit >= 0 && level.bit < 4 +} + +exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } +} + +},{}],16:[function(require,module,exports){ +var getSymbolSize = require('./utils').getSymbolSize +var FINDER_PATTERN_SIZE = 7 + +/** + * Returns an array containing the positions of each finder pattern. + * Each array's element represent the top-left point of the pattern as (x, y) coordinates + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinates + */ +exports.getPositions = function getPositions (version) { + var size = getSymbolSize(version) + + return [ + // top-left + [0, 0], + // top-right + [size - FINDER_PATTERN_SIZE, 0], + // bottom-left + [0, size - FINDER_PATTERN_SIZE] + ] +} + +},{"./utils":28}],17:[function(require,module,exports){ +var Utils = require('./utils') + +var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0) +var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1) +var G15_BCH = Utils.getBCHDigit(G15) + +/** + * Returns format information with relative error correction bits + * + * The format information is a 15-bit sequence containing 5 data bits, + * with 10 error correction bits calculated using the (15, 5) BCH code. + * + * @param {Number} errorCorrectionLevel Error correction level + * @param {Number} mask Mask pattern + * @return {Number} Encoded format information bits + */ +exports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) { + var data = ((errorCorrectionLevel.bit << 3) | mask) + var d = data << 10 + + while (Utils.getBCHDigit(d) - G15_BCH >= 0) { + d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH)) + } + + // xor final data with mask pattern in order to ensure that + // no combination of Error Correction Level and data mask pattern + // will result in an all-zero data string + return ((data << 10) | d) ^ G15_MASK +} + +},{"./utils":28}],18:[function(require,module,exports){ +var BufferUtil = require('../utils/buffer') + +var EXP_TABLE = BufferUtil.alloc(512) +var LOG_TABLE = BufferUtil.alloc(256) +/** + * Precompute the log and anti-log tables for faster computation later + * + * For each possible value in the galois field 2^8, we will pre-compute + * the logarithm and anti-logarithm (exponential) of this value + * + * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields} + */ +;(function initTables () { + var x = 1 + for (var i = 0; i < 255; i++) { + EXP_TABLE[i] = x + LOG_TABLE[x] = i + + x <<= 1 // multiply by 2 + + // The QR code specification says to use byte-wise modulo 100011101 arithmetic. + // This means that when a number is 256 or larger, it should be XORed with 0x11D. + if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256) + x ^= 0x11D + } + } + + // Optimization: double the size of the anti-log table so that we don't need to mod 255 to + // stay inside the bounds (because we will mainly use this table for the multiplication of + // two GF numbers, no more). + // @see {@link mul} + for (i = 255; i < 512; i++) { + EXP_TABLE[i] = EXP_TABLE[i - 255] + } +}()) + +/** + * Returns log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ +exports.log = function log (n) { + if (n < 1) throw new Error('log(' + n + ')') + return LOG_TABLE[n] +} + +/** + * Returns anti-log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ +exports.exp = function exp (n) { + return EXP_TABLE[n] +} + +/** + * Multiplies two number inside Galois Field + * + * @param {Number} x + * @param {Number} y + * @return {Number} + */ +exports.mul = function mul (x, y) { + if (x === 0 || y === 0) return 0 + + // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized + // @see {@link initTables} + return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]] +} + +},{"../utils/buffer":34}],19:[function(require,module,exports){ +var Mode = require('./mode') +var Utils = require('./utils') + +function KanjiData (data) { + this.mode = Mode.KANJI + this.data = data +} + +KanjiData.getBitsLength = function getBitsLength (length) { + return length * 13 +} + +KanjiData.prototype.getLength = function getLength () { + return this.data.length +} + +KanjiData.prototype.getBitsLength = function getBitsLength () { + return KanjiData.getBitsLength(this.data.length) +} + +KanjiData.prototype.write = function (bitBuffer) { + var i + + // In the Shift JIS system, Kanji characters are represented by a two byte combination. + // These byte values are shifted from the JIS X 0208 values. + // JIS X 0208 gives details of the shift coded representation. + for (i = 0; i < this.data.length; i++) { + var value = Utils.toSJIS(this.data[i]) + + // For characters with Shift JIS values from 0x8140 to 0x9FFC: + if (value >= 0x8140 && value <= 0x9FFC) { + // Subtract 0x8140 from Shift JIS value + value -= 0x8140 + + // For characters with Shift JIS values from 0xE040 to 0xEBBF + } else if (value >= 0xE040 && value <= 0xEBBF) { + // Subtract 0xC140 from Shift JIS value + value -= 0xC140 + } else { + throw new Error( + 'Invalid SJIS character: ' + this.data[i] + '\n' + + 'Make sure your charset is UTF-8') + } + + // Multiply most significant byte of result by 0xC0 + // and add least significant byte to product + value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff) + + // Convert result to a 13-bit binary string + bitBuffer.put(value, 13) + } +} + +module.exports = KanjiData + +},{"./mode":21,"./utils":28}],20:[function(require,module,exports){ +/** + * Data mask pattern reference + * @type {Object} + */ +exports.Patterns = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 +} + +/** + * Weighted penalty scores for the undesirable features + * @type {Object} + */ +var PenaltyScores = { + N1: 3, + N2: 3, + N3: 40, + N4: 10 +} + +/** + * Check if mask pattern value is valid + * + * @param {Number} mask Mask pattern + * @return {Boolean} true if valid, false otherwise + */ +exports.isValid = function isValid (mask) { + return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7 +} + +/** + * Returns mask pattern from a value. + * If value is not valid, returns undefined + * + * @param {Number|String} value Mask pattern value + * @return {Number} Valid mask pattern or undefined + */ +exports.from = function from (value) { + return exports.isValid(value) ? parseInt(value, 10) : undefined +} + +/** +* Find adjacent modules in row/column with the same color +* and assign a penalty value. +* +* Points: N1 + i +* i is the amount by which the number of adjacent modules of the same color exceeds 5 +*/ +exports.getPenaltyN1 = function getPenaltyN1 (data) { + var size = data.size + var points = 0 + var sameCountCol = 0 + var sameCountRow = 0 + var lastCol = null + var lastRow = null + + for (var row = 0; row < size; row++) { + sameCountCol = sameCountRow = 0 + lastCol = lastRow = null + + for (var col = 0; col < size; col++) { + var module = data.get(row, col) + if (module === lastCol) { + sameCountCol++ + } else { + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5) + lastCol = module + sameCountCol = 1 + } + + module = data.get(col, row) + if (module === lastRow) { + sameCountRow++ + } else { + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5) + lastRow = module + sameCountRow = 1 + } + } + + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5) + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5) + } + + return points +} + +/** + * Find 2x2 blocks with the same color and assign a penalty value + * + * Points: N2 * (m - 1) * (n - 1) + */ +exports.getPenaltyN2 = function getPenaltyN2 (data) { + var size = data.size + var points = 0 + + for (var row = 0; row < size - 1; row++) { + for (var col = 0; col < size - 1; col++) { + var last = data.get(row, col) + + data.get(row, col + 1) + + data.get(row + 1, col) + + data.get(row + 1, col + 1) + + if (last === 4 || last === 0) points++ + } + } + + return points * PenaltyScores.N2 +} + +/** + * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column, + * preceded or followed by light area 4 modules wide + * + * Points: N3 * number of pattern found + */ +exports.getPenaltyN3 = function getPenaltyN3 (data) { + var size = data.size + var points = 0 + var bitsCol = 0 + var bitsRow = 0 + + for (var row = 0; row < size; row++) { + bitsCol = bitsRow = 0 + for (var col = 0; col < size; col++) { + bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col) + if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++ + + bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row) + if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++ + } + } + + return points * PenaltyScores.N3 +} + +/** + * Calculate proportion of dark modules in entire symbol + * + * Points: N4 * k + * + * k is the rating of the deviation of the proportion of dark modules + * in the symbol from 50% in steps of 5% + */ +exports.getPenaltyN4 = function getPenaltyN4 (data) { + var darkCount = 0 + var modulesCount = data.data.length + + for (var i = 0; i < modulesCount; i++) darkCount += data.data[i] + + var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10) + + return k * PenaltyScores.N4 +} + +/** + * Return mask value at given position + * + * @param {Number} maskPattern Pattern reference value + * @param {Number} i Row + * @param {Number} j Column + * @return {Boolean} Mask value + */ +function getMaskAt (maskPattern, i, j) { + switch (maskPattern) { + case exports.Patterns.PATTERN000: return (i + j) % 2 === 0 + case exports.Patterns.PATTERN001: return i % 2 === 0 + case exports.Patterns.PATTERN010: return j % 3 === 0 + case exports.Patterns.PATTERN011: return (i + j) % 3 === 0 + case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0 + case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0 + case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0 + case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0 + + default: throw new Error('bad maskPattern:' + maskPattern) + } +} + +/** + * Apply a mask pattern to a BitMatrix + * + * @param {Number} pattern Pattern reference number + * @param {BitMatrix} data BitMatrix data + */ +exports.applyMask = function applyMask (pattern, data) { + var size = data.size + + for (var col = 0; col < size; col++) { + for (var row = 0; row < size; row++) { + if (data.isReserved(row, col)) continue + data.xor(row, col, getMaskAt(pattern, row, col)) + } + } +} + +/** + * Returns the best mask pattern for data + * + * @param {BitMatrix} data + * @return {Number} Mask pattern reference number + */ +exports.getBestMask = function getBestMask (data, setupFormatFunc) { + var numPatterns = Object.keys(exports.Patterns).length + var bestPattern = 0 + var lowerPenalty = Infinity + + for (var p = 0; p < numPatterns; p++) { + setupFormatFunc(p) + exports.applyMask(p, data) + + // Calculate penalty + var penalty = + exports.getPenaltyN1(data) + + exports.getPenaltyN2(data) + + exports.getPenaltyN3(data) + + exports.getPenaltyN4(data) + + // Undo previously applied mask + exports.applyMask(p, data) + + if (penalty < lowerPenalty) { + lowerPenalty = penalty + bestPattern = p + } + } + + return bestPattern +} + +},{}],21:[function(require,module,exports){ +var VersionCheck = require('./version-check') +var Regex = require('./regex') + +/** + * Numeric mode encodes data from the decimal digit set (0 - 9) + * (byte values 30HEX to 39HEX). + * Normally, 3 data characters are represented by 10 bits. + * + * @type {Object} + */ +exports.NUMERIC = { + id: 'Numeric', + bit: 1 << 0, + ccBits: [10, 12, 14] +} + +/** + * Alphanumeric mode encodes data from a set of 45 characters, + * i.e. 10 numeric digits (0 - 9), + * 26 alphabetic characters (A - Z), + * and 9 symbols (SP, $, %, *, +, -, ., /, :). + * Normally, two input characters are represented by 11 bits. + * + * @type {Object} + */ +exports.ALPHANUMERIC = { + id: 'Alphanumeric', + bit: 1 << 1, + ccBits: [9, 11, 13] +} + +/** + * In byte mode, data is encoded at 8 bits per character. + * + * @type {Object} + */ +exports.BYTE = { + id: 'Byte', + bit: 1 << 2, + ccBits: [8, 16, 16] +} + +/** + * The Kanji mode efficiently encodes Kanji characters in accordance with + * the Shift JIS system based on JIS X 0208. + * The Shift JIS values are shifted from the JIS X 0208 values. + * JIS X 0208 gives details of the shift coded representation. + * Each two-byte character value is compacted to a 13-bit binary codeword. + * + * @type {Object} + */ +exports.KANJI = { + id: 'Kanji', + bit: 1 << 3, + ccBits: [8, 10, 12] +} + +/** + * Mixed mode will contain a sequences of data in a combination of any of + * the modes described above + * + * @type {Object} + */ +exports.MIXED = { + bit: -1 +} + +/** + * Returns the number of bits needed to store the data length + * according to QR Code specifications. + * + * @param {Mode} mode Data mode + * @param {Number} version QR Code version + * @return {Number} Number of bits + */ +exports.getCharCountIndicator = function getCharCountIndicator (mode, version) { + if (!mode.ccBits) throw new Error('Invalid mode: ' + mode) + + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid version: ' + version) + } + + if (version >= 1 && version < 10) return mode.ccBits[0] + else if (version < 27) return mode.ccBits[1] + return mode.ccBits[2] +} + +/** + * Returns the most efficient mode to store the specified data + * + * @param {String} dataStr Input data string + * @return {Mode} Best mode + */ +exports.getBestModeForData = function getBestModeForData (dataStr) { + if (Regex.testNumeric(dataStr)) return exports.NUMERIC + else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC + else if (Regex.testKanji(dataStr)) return exports.KANJI + else return exports.BYTE +} + +/** + * Return mode name as string + * + * @param {Mode} mode Mode object + * @returns {String} Mode name + */ +exports.toString = function toString (mode) { + if (mode && mode.id) return mode.id + throw new Error('Invalid mode') +} + +/** + * Check if input param is a valid mode object + * + * @param {Mode} mode Mode object + * @returns {Boolean} True if valid mode, false otherwise + */ +exports.isValid = function isValid (mode) { + return mode && mode.bit && mode.ccBits +} + +/** + * Get mode object from its name + * + * @param {String} string Mode name + * @returns {Mode} Mode object + */ +function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase() + + switch (lcStr) { + case 'numeric': + return exports.NUMERIC + case 'alphanumeric': + return exports.ALPHANUMERIC + case 'kanji': + return exports.KANJI + case 'byte': + return exports.BYTE + default: + throw new Error('Unknown mode: ' + string) + } +} + +/** + * Returns mode from a value. + * If value is not a valid mode, returns defaultValue + * + * @param {Mode|String} value Encoding mode + * @param {Mode} defaultValue Fallback value + * @return {Mode} Encoding mode + */ +exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } +} + +},{"./regex":26,"./version-check":29}],22:[function(require,module,exports){ +var Mode = require('./mode') + +function NumericData (data) { + this.mode = Mode.NUMERIC + this.data = data.toString() +} + +NumericData.getBitsLength = function getBitsLength (length) { + return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0) +} + +NumericData.prototype.getLength = function getLength () { + return this.data.length +} + +NumericData.prototype.getBitsLength = function getBitsLength () { + return NumericData.getBitsLength(this.data.length) +} + +NumericData.prototype.write = function write (bitBuffer) { + var i, group, value + + // The input data string is divided into groups of three digits, + // and each group is converted to its 10-bit binary equivalent. + for (i = 0; i + 3 <= this.data.length; i += 3) { + group = this.data.substr(i, 3) + value = parseInt(group, 10) + + bitBuffer.put(value, 10) + } + + // If the number of input digits is not an exact multiple of three, + // the final one or two digits are converted to 4 or 7 bits respectively. + var remainingNum = this.data.length - i + if (remainingNum > 0) { + group = this.data.substr(i) + value = parseInt(group, 10) + + bitBuffer.put(value, remainingNum * 3 + 1) + } +} + +module.exports = NumericData + +},{"./mode":21}],23:[function(require,module,exports){ +var BufferUtil = require('../utils/buffer') +var GF = require('./galois-field') + +/** + * Multiplies two polynomials inside Galois Field + * + * @param {Buffer} p1 Polynomial + * @param {Buffer} p2 Polynomial + * @return {Buffer} Product of p1 and p2 + */ +exports.mul = function mul (p1, p2) { + var coeff = BufferUtil.alloc(p1.length + p2.length - 1) + + for (var i = 0; i < p1.length; i++) { + for (var j = 0; j < p2.length; j++) { + coeff[i + j] ^= GF.mul(p1[i], p2[j]) + } + } + + return coeff +} + +/** + * Calculate the remainder of polynomials division + * + * @param {Buffer} divident Polynomial + * @param {Buffer} divisor Polynomial + * @return {Buffer} Remainder + */ +exports.mod = function mod (divident, divisor) { + var result = BufferUtil.from(divident) + + while ((result.length - divisor.length) >= 0) { + var coeff = result[0] + + for (var i = 0; i < divisor.length; i++) { + result[i] ^= GF.mul(divisor[i], coeff) + } + + // remove all zeros from buffer head + var offset = 0 + while (offset < result.length && result[offset] === 0) offset++ + result = result.slice(offset) + } + + return result +} + +/** + * Generate an irreducible generator polynomial of specified degree + * (used by Reed-Solomon encoder) + * + * @param {Number} degree Degree of the generator polynomial + * @return {Buffer} Buffer containing polynomial coefficients + */ +exports.generateECPolynomial = function generateECPolynomial (degree) { + var poly = BufferUtil.from([1]) + for (var i = 0; i < degree; i++) { + poly = exports.mul(poly, [1, GF.exp(i)]) + } + + return poly +} + +},{"../utils/buffer":34,"./galois-field":18}],24:[function(require,module,exports){ +var BufferUtil = require('../utils/buffer') +var Utils = require('./utils') +var ECLevel = require('./error-correction-level') +var BitBuffer = require('./bit-buffer') +var BitMatrix = require('./bit-matrix') +var AlignmentPattern = require('./alignment-pattern') +var FinderPattern = require('./finder-pattern') +var MaskPattern = require('./mask-pattern') +var ECCode = require('./error-correction-code') +var ReedSolomonEncoder = require('./reed-solomon-encoder') +var Version = require('./version') +var FormatInfo = require('./format-info') +var Mode = require('./mode') +var Segments = require('./segments') +var isArray = require('isarray') + +/** + * QRCode for JavaScript + * + * modified by Ryan Day for nodejs support + * Copyright (c) 2011 Ryan Day + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * +//--------------------------------------------------------------------- +// QRCode for JavaScript +// +// Copyright (c) 2009 Kazuhiko Arase +// +// URL: http://www.d-project.com/ +// +// Licensed under the MIT license: +// http://www.opensource.org/licenses/mit-license.php +// +// The word "QR Code" is registered trademark of +// DENSO WAVE INCORPORATED +// http://www.denso-wave.com/qrcode/faqpatent-e.html +// +//--------------------------------------------------------------------- +*/ + +/** + * Add finder patterns bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupFinderPattern (matrix, version) { + var size = matrix.size + var pos = FinderPattern.getPositions(version) + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0] + var col = pos[i][1] + + for (var r = -1; r <= 7; r++) { + if (row + r <= -1 || size <= row + r) continue + + for (var c = -1; c <= 7; c++) { + if (col + c <= -1 || size <= col + c) continue + + if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) || + (c >= 0 && c <= 6 && (r === 0 || r === 6)) || + (r >= 2 && r <= 4 && c >= 2 && c <= 4)) { + matrix.set(row + r, col + c, true, true) + } else { + matrix.set(row + r, col + c, false, true) + } + } + } + } +} + +/** + * Add timing pattern bits to matrix + * + * Note: this function must be called before {@link setupAlignmentPattern} + * + * @param {BitMatrix} matrix Modules matrix + */ +function setupTimingPattern (matrix) { + var size = matrix.size + + for (var r = 8; r < size - 8; r++) { + var value = r % 2 === 0 + matrix.set(r, 6, value, true) + matrix.set(6, r, value, true) + } +} + +/** + * Add alignment patterns bits to matrix + * + * Note: this function must be called after {@link setupTimingPattern} + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupAlignmentPattern (matrix, version) { + var pos = AlignmentPattern.getPositions(version) + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0] + var col = pos[i][1] + + for (var r = -2; r <= 2; r++) { + for (var c = -2; c <= 2; c++) { + if (r === -2 || r === 2 || c === -2 || c === 2 || + (r === 0 && c === 0)) { + matrix.set(row + r, col + c, true, true) + } else { + matrix.set(row + r, col + c, false, true) + } + } + } + } +} + +/** + * Add version info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ +function setupVersionInfo (matrix, version) { + var size = matrix.size + var bits = Version.getEncodedBits(version) + var row, col, mod + + for (var i = 0; i < 18; i++) { + row = Math.floor(i / 3) + col = i % 3 + size - 8 - 3 + mod = ((bits >> i) & 1) === 1 + + matrix.set(row, col, mod, true) + matrix.set(col, row, mod, true) + } +} + +/** + * Add format info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {Number} maskPattern Mask pattern reference value + */ +function setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) { + var size = matrix.size + var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern) + var i, mod + + for (i = 0; i < 15; i++) { + mod = ((bits >> i) & 1) === 1 + + // vertical + if (i < 6) { + matrix.set(i, 8, mod, true) + } else if (i < 8) { + matrix.set(i + 1, 8, mod, true) + } else { + matrix.set(size - 15 + i, 8, mod, true) + } + + // horizontal + if (i < 8) { + matrix.set(8, size - i - 1, mod, true) + } else if (i < 9) { + matrix.set(8, 15 - i - 1 + 1, mod, true) + } else { + matrix.set(8, 15 - i - 1, mod, true) + } + } + + // fixed module + matrix.set(size - 8, 8, 1, true) +} + +/** + * Add encoded data bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Buffer} data Data codewords + */ +function setupData (matrix, data) { + var size = matrix.size + var inc = -1 + var row = size - 1 + var bitIndex = 7 + var byteIndex = 0 + + for (var col = size - 1; col > 0; col -= 2) { + if (col === 6) col-- + + while (true) { + for (var c = 0; c < 2; c++) { + if (!matrix.isReserved(row, col - c)) { + var dark = false + + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) === 1) + } + + matrix.set(row, col - c, dark) + bitIndex-- + + if (bitIndex === -1) { + byteIndex++ + bitIndex = 7 + } + } + } + + row += inc + + if (row < 0 || size <= row) { + row -= inc + inc = -inc + break + } + } + } +} + +/** + * Create encoded codewords from data input + * + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {ByteData} data Data input + * @return {Buffer} Buffer containing encoded codewords + */ +function createData (version, errorCorrectionLevel, segments) { + // Prepare data buffer + var buffer = new BitBuffer() + + segments.forEach(function (data) { + // prefix data with mode indicator (4 bits) + buffer.put(data.mode.bit, 4) + + // Prefix data with character count indicator. + // The character count indicator is a string of bits that represents the + // number of characters that are being encoded. + // The character count indicator must be placed after the mode indicator + // and must be a certain number of bits long, depending on the QR version + // and data mode + // @see {@link Mode.getCharCountIndicator}. + buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version)) + + // add binary data sequence to buffer + data.write(buffer) + }) + + // Calculate required number of bits + var totalCodewords = Utils.getSymbolTotalCodewords(version) + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8 + + // Add a terminator. + // If the bit string is shorter than the total number of required bits, + // a terminator of up to four 0s must be added to the right side of the string. + // If the bit string is more than four bits shorter than the required number of bits, + // add four 0s to the end. + if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) { + buffer.put(0, 4) + } + + // If the bit string is fewer than four bits shorter, add only the number of 0s that + // are needed to reach the required number of bits. + + // After adding the terminator, if the number of bits in the string is not a multiple of 8, + // pad the string on the right with 0s to make the string's length a multiple of 8. + while (buffer.getLengthInBits() % 8 !== 0) { + buffer.putBit(0) + } + + // Add pad bytes if the string is still shorter than the total number of required bits. + // Extend the buffer to fill the data capacity of the symbol corresponding to + // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC) + // and 00010001 (0x11) alternately. + var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8 + for (var i = 0; i < remainingByte; i++) { + buffer.put(i % 2 ? 0x11 : 0xEC, 8) + } + + return createCodewords(buffer, version, errorCorrectionLevel) +} + +/** + * Encode input data with Reed-Solomon and return codewords with + * relative error correction bits + * + * @param {BitBuffer} bitBuffer Data to encode + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @return {Buffer} Buffer containing encoded codewords + */ +function createCodewords (bitBuffer, version, errorCorrectionLevel) { + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version) + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + + // Total number of data codewords + var dataTotalCodewords = totalCodewords - ecTotalCodewords + + // Total number of blocks + var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel) + + // Calculate how many blocks each group should contain + var blocksInGroup2 = totalCodewords % ecTotalBlocks + var blocksInGroup1 = ecTotalBlocks - blocksInGroup2 + + var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks) + + var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks) + var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1 + + // Number of EC codewords is the same for both groups + var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1 + + // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount + var rs = new ReedSolomonEncoder(ecCount) + + var offset = 0 + var dcData = new Array(ecTotalBlocks) + var ecData = new Array(ecTotalBlocks) + var maxDataSize = 0 + var buffer = BufferUtil.from(bitBuffer.buffer) + + // Divide the buffer into the required number of blocks + for (var b = 0; b < ecTotalBlocks; b++) { + var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2 + + // extract a block of data from buffer + dcData[b] = buffer.slice(offset, offset + dataSize) + + // Calculate EC codewords for this data block + ecData[b] = rs.encode(dcData[b]) + + offset += dataSize + maxDataSize = Math.max(maxDataSize, dataSize) + } + + // Create final data + // Interleave the data and error correction codewords from each block + var data = BufferUtil.alloc(totalCodewords) + var index = 0 + var i, r + + // Add data codewords + for (i = 0; i < maxDataSize; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + if (i < dcData[r].length) { + data[index++] = dcData[r][i] + } + } + } + + // Apped EC codewords + for (i = 0; i < ecCount; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + data[index++] = ecData[r][i] + } + } + + return data +} + +/** + * Build QR Code symbol + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @param {ErrorCorretionLevel} errorCorrectionLevel Error level + * @param {MaskPattern} maskPattern Mask pattern + * @return {Object} Object containing symbol data + */ +function createSymbol (data, version, errorCorrectionLevel, maskPattern) { + var segments + + if (isArray(data)) { + segments = Segments.fromArray(data) + } else if (typeof data === 'string') { + var estimatedVersion = version + + if (!estimatedVersion) { + var rawSegments = Segments.rawSplit(data) + + // Estimate best version that can contain raw splitted segments + estimatedVersion = Version.getBestVersionForData(rawSegments, + errorCorrectionLevel) + } + + // Build optimized segments + // If estimated version is undefined, try with the highest version + segments = Segments.fromString(data, estimatedVersion || 40) + } else { + throw new Error('Invalid data') + } + + // Get the min version that can contain data + var bestVersion = Version.getBestVersionForData(segments, + errorCorrectionLevel) + + // If no version is found, data cannot be stored + if (!bestVersion) { + throw new Error('The amount of data is too big to be stored in a QR Code') + } + + // If not specified, use min version as default + if (!version) { + version = bestVersion + + // Check if the specified version can contain the data + } else if (version < bestVersion) { + throw new Error('\n' + + 'The chosen QR Code version cannot contain this amount of data.\n' + + 'Minimum version required to store current data is: ' + bestVersion + '.\n' + ) + } + + var dataBits = createData(version, errorCorrectionLevel, segments) + + // Allocate matrix buffer + var moduleCount = Utils.getSymbolSize(version) + var modules = new BitMatrix(moduleCount) + + // Add function modules + setupFinderPattern(modules, version) + setupTimingPattern(modules) + setupAlignmentPattern(modules, version) + + // Add temporary dummy bits for format info just to set them as reserved. + // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask} + // since the masking operation must be performed only on the encoding region. + // These blocks will be replaced with correct values later in code. + setupFormatInfo(modules, errorCorrectionLevel, 0) + + if (version >= 7) { + setupVersionInfo(modules, version) + } + + // Add data codewords + setupData(modules, dataBits) + + if (isNaN(maskPattern)) { + // Find best mask pattern + maskPattern = MaskPattern.getBestMask(modules, + setupFormatInfo.bind(null, modules, errorCorrectionLevel)) + } + + // Apply mask pattern + MaskPattern.applyMask(maskPattern, modules) + + // Replace format info bits with correct values + setupFormatInfo(modules, errorCorrectionLevel, maskPattern) + + return { + modules: modules, + version: version, + errorCorrectionLevel: errorCorrectionLevel, + maskPattern: maskPattern, + segments: segments + } +} + +/** + * QR Code + * + * @param {String | Array} data Input data + * @param {Object} options Optional configurations + * @param {Number} options.version QR Code version + * @param {String} options.errorCorrectionLevel Error correction level + * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis + */ +exports.create = function create (data, options) { + if (typeof data === 'undefined' || data === '') { + throw new Error('No input text') + } + + var errorCorrectionLevel = ECLevel.M + var version + var mask + + if (typeof options !== 'undefined') { + // Use higher error correction level as default + errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M) + version = Version.from(options.version) + mask = MaskPattern.from(options.maskPattern) + + if (options.toSJISFunc) { + Utils.setToSJISFunction(options.toSJISFunc) + } + } + + return createSymbol(data, version, errorCorrectionLevel, mask) +} + +},{"../utils/buffer":34,"./alignment-pattern":9,"./bit-buffer":11,"./bit-matrix":12,"./error-correction-code":14,"./error-correction-level":15,"./finder-pattern":16,"./format-info":17,"./mask-pattern":20,"./mode":21,"./reed-solomon-encoder":25,"./segments":27,"./utils":28,"./version":30,"isarray":5}],25:[function(require,module,exports){ +var BufferUtil = require('../utils/buffer') +var Polynomial = require('./polynomial') +var Buffer = require('buffer').Buffer + +function ReedSolomonEncoder (degree) { + this.genPoly = undefined + this.degree = degree + + if (this.degree) this.initialize(this.degree) +} + +/** + * Initialize the encoder. + * The input param should correspond to the number of error correction codewords. + * + * @param {Number} degree + */ +ReedSolomonEncoder.prototype.initialize = function initialize (degree) { + // create an irreducible generator polynomial + this.degree = degree + this.genPoly = Polynomial.generateECPolynomial(this.degree) +} + +/** + * Encodes a chunk of data + * + * @param {Buffer} data Buffer containing input data + * @return {Buffer} Buffer containing encoded data + */ +ReedSolomonEncoder.prototype.encode = function encode (data) { + if (!this.genPoly) { + throw new Error('Encoder not initialized') + } + + // Calculate EC for this data block + // extends data size to data+genPoly size + var pad = BufferUtil.alloc(this.degree) + var paddedData = Buffer.concat([data, pad], data.length + this.degree) + + // The error correction codewords are the remainder after dividing the data codewords + // by a generator polynomial + var remainder = Polynomial.mod(paddedData, this.genPoly) + + // return EC data blocks (last n byte, where n is the degree of genPoly) + // If coefficients number in remainder are less than genPoly degree, + // pad with 0s to the left to reach the needed number of coefficients + var start = this.degree - remainder.length + if (start > 0) { + var buff = BufferUtil.alloc(this.degree) + remainder.copy(buff, start) + + return buff + } + + return remainder +} + +module.exports = ReedSolomonEncoder + +},{"../utils/buffer":34,"./polynomial":23,"buffer":2}],26:[function(require,module,exports){ +var numeric = '[0-9]+' +var alphanumeric = '[A-Z $%*+\\-./:]+' +var kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' + + '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' + + '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' + + '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+' +kanji = kanji.replace(/u/g, '\\u') + +var byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n]))+' + +exports.KANJI = new RegExp(kanji, 'g') +exports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g') +exports.BYTE = new RegExp(byte, 'g') +exports.NUMERIC = new RegExp(numeric, 'g') +exports.ALPHANUMERIC = new RegExp(alphanumeric, 'g') + +var TEST_KANJI = new RegExp('^' + kanji + '$') +var TEST_NUMERIC = new RegExp('^' + numeric + '$') +var TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\-./:]+$') + +exports.testKanji = function testKanji (str) { + return TEST_KANJI.test(str) +} + +exports.testNumeric = function testNumeric (str) { + return TEST_NUMERIC.test(str) +} + +exports.testAlphanumeric = function testAlphanumeric (str) { + return TEST_ALPHANUMERIC.test(str) +} + +},{}],27:[function(require,module,exports){ +var Mode = require('./mode') +var NumericData = require('./numeric-data') +var AlphanumericData = require('./alphanumeric-data') +var ByteData = require('./byte-data') +var KanjiData = require('./kanji-data') +var Regex = require('./regex') +var Utils = require('./utils') +var dijkstra = require('dijkstrajs') + +/** + * Returns UTF8 byte length + * + * @param {String} str Input string + * @return {Number} Number of byte + */ +function getStringByteLength (str) { + return unescape(encodeURIComponent(str)).length +} + +/** + * Get a list of segments of the specified mode + * from a string + * + * @param {Mode} mode Segment mode + * @param {String} str String to process + * @return {Array} Array of object with segments data + */ +function getSegments (regex, mode, str) { + var segments = [] + var result + + while ((result = regex.exec(str)) !== null) { + segments.push({ + data: result[0], + index: result.index, + mode: mode, + length: result[0].length + }) + } + + return segments +} + +/** + * Extracts a series of segments with the appropriate + * modes from a string + * + * @param {String} dataStr Input string + * @return {Array} Array of object with segments data + */ +function getSegmentsFromString (dataStr) { + var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr) + var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr) + var byteSegs + var kanjiSegs + + if (Utils.isKanjiModeEnabled()) { + byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr) + kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr) + } else { + byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr) + kanjiSegs = [] + } + + var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs) + + return segs + .sort(function (s1, s2) { + return s1.index - s2.index + }) + .map(function (obj) { + return { + data: obj.data, + mode: obj.mode, + length: obj.length + } + }) +} + +/** + * Returns how many bits are needed to encode a string of + * specified length with the specified mode + * + * @param {Number} length String length + * @param {Mode} mode Segment mode + * @return {Number} Bit length + */ +function getSegmentBitsLength (length, mode) { + switch (mode) { + case Mode.NUMERIC: + return NumericData.getBitsLength(length) + case Mode.ALPHANUMERIC: + return AlphanumericData.getBitsLength(length) + case Mode.KANJI: + return KanjiData.getBitsLength(length) + case Mode.BYTE: + return ByteData.getBitsLength(length) + } +} + +/** + * Merges adjacent segments which have the same mode + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ +function mergeSegments (segs) { + return segs.reduce(function (acc, curr) { + var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null + if (prevSeg && prevSeg.mode === curr.mode) { + acc[acc.length - 1].data += curr.data + return acc + } + + acc.push(curr) + return acc + }, []) +} + +/** + * Generates a list of all possible nodes combination which + * will be used to build a segments graph. + * + * Nodes are divided by groups. Each group will contain a list of all the modes + * in which is possible to encode the given text. + * + * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte. + * The group for '12345' will contain then 3 objects, one for each + * possible encoding mode. + * + * Each node represents a possible segment. + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ +function buildNodes (segs) { + var nodes = [] + for (var i = 0; i < segs.length; i++) { + var seg = segs[i] + + switch (seg.mode) { + case Mode.NUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length }, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]) + break + case Mode.ALPHANUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]) + break + case Mode.KANJI: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]) + break + case Mode.BYTE: + nodes.push([ + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]) + } + } + + return nodes +} + +/** + * Builds a graph from a list of nodes. + * All segments in each node group will be connected with all the segments of + * the next group and so on. + * + * At each connection will be assigned a weight depending on the + * segment's byte length. + * + * @param {Array} nodes Array of object with segments data + * @param {Number} version QR Code version + * @return {Object} Graph of all possible segments + */ +function buildGraph (nodes, version) { + var table = {} + var graph = {'start': {}} + var prevNodeIds = ['start'] + + for (var i = 0; i < nodes.length; i++) { + var nodeGroup = nodes[i] + var currentNodeIds = [] + + for (var j = 0; j < nodeGroup.length; j++) { + var node = nodeGroup[j] + var key = '' + i + j + + currentNodeIds.push(key) + table[key] = { node: node, lastCount: 0 } + graph[key] = {} + + for (var n = 0; n < prevNodeIds.length; n++) { + var prevNodeId = prevNodeIds[n] + + if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) { + graph[prevNodeId][key] = + getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) - + getSegmentBitsLength(table[prevNodeId].lastCount, node.mode) + + table[prevNodeId].lastCount += node.length + } else { + if (table[prevNodeId]) table[prevNodeId].lastCount = node.length + + graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) + + 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost + } + } + } + + prevNodeIds = currentNodeIds + } + + for (n = 0; n < prevNodeIds.length; n++) { + graph[prevNodeIds[n]]['end'] = 0 + } + + return { map: graph, table: table } +} + +/** + * Builds a segment from a specified data and mode. + * If a mode is not specified, the more suitable will be used. + * + * @param {String} data Input data + * @param {Mode | String} modesHint Data mode + * @return {Segment} Segment + */ +function buildSingleSegment (data, modesHint) { + var mode + var bestMode = Mode.getBestModeForData(data) + + mode = Mode.from(modesHint, bestMode) + + // Make sure data can be encoded + if (mode !== Mode.BYTE && mode.bit < bestMode.bit) { + throw new Error('"' + data + '"' + + ' cannot be encoded with mode ' + Mode.toString(mode) + + '.\n Suggested mode is: ' + Mode.toString(bestMode)) + } + + // Use Mode.BYTE if Kanji support is disabled + if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) { + mode = Mode.BYTE + } + + switch (mode) { + case Mode.NUMERIC: + return new NumericData(data) + + case Mode.ALPHANUMERIC: + return new AlphanumericData(data) + + case Mode.KANJI: + return new KanjiData(data) + + case Mode.BYTE: + return new ByteData(data) + } +} + +/** + * Builds a list of segments from an array. + * Array can contain Strings or Objects with segment's info. + * + * For each item which is a string, will be generated a segment with the given + * string and the more appropriate encoding mode. + * + * For each item which is an object, will be generated a segment with the given + * data and mode. + * Objects must contain at least the property "data". + * If property "mode" is not present, the more suitable mode will be used. + * + * @param {Array} array Array of objects with segments data + * @return {Array} Array of Segments + */ +exports.fromArray = function fromArray (array) { + return array.reduce(function (acc, seg) { + if (typeof seg === 'string') { + acc.push(buildSingleSegment(seg, null)) + } else if (seg.data) { + acc.push(buildSingleSegment(seg.data, seg.mode)) + } + + return acc + }, []) +} + +/** + * Builds an optimized sequence of segments from a string, + * which will produce the shortest possible bitstream. + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @return {Array} Array of segments + */ +exports.fromString = function fromString (data, version) { + var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled()) + + var nodes = buildNodes(segs) + var graph = buildGraph(nodes, version) + var path = dijkstra.find_path(graph.map, 'start', 'end') + + var optimizedSegs = [] + for (var i = 1; i < path.length - 1; i++) { + optimizedSegs.push(graph.table[path[i]].node) + } + + return exports.fromArray(mergeSegments(optimizedSegs)) +} + +/** + * Splits a string in various segments with the modes which + * best represent their content. + * The produced segments are far from being optimized. + * The output of this function is only used to estimate a QR Code version + * which may contain the data. + * + * @param {string} data Input string + * @return {Array} Array of segments + */ +exports.rawSplit = function rawSplit (data) { + return exports.fromArray( + getSegmentsFromString(data, Utils.isKanjiModeEnabled()) + ) +} + +},{"./alphanumeric-data":10,"./byte-data":13,"./kanji-data":19,"./mode":21,"./numeric-data":22,"./regex":26,"./utils":28,"dijkstrajs":3}],28:[function(require,module,exports){ +var toSJISFunction +var CODEWORDS_COUNT = [ + 0, // Not used + 26, 44, 70, 100, 134, 172, 196, 242, 292, 346, + 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085, + 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185, + 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706 +] + +/** + * Returns the QR Code size for the specified version + * + * @param {Number} version QR Code version + * @return {Number} size of QR code + */ +exports.getSymbolSize = function getSymbolSize (version) { + if (!version) throw new Error('"version" cannot be null or undefined') + if (version < 1 || version > 40) throw new Error('"version" should be in range from 1 to 40') + return version * 4 + 17 +} + +/** + * Returns the total number of codewords used to store data and EC information. + * + * @param {Number} version QR Code version + * @return {Number} Data length in bits + */ +exports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) { + return CODEWORDS_COUNT[version] +} + +/** + * Encode data with Bose-Chaudhuri-Hocquenghem + * + * @param {Number} data Value to encode + * @return {Number} Encoded value + */ +exports.getBCHDigit = function (data) { + var digit = 0 + + while (data !== 0) { + digit++ + data >>>= 1 + } + + return digit +} + +exports.setToSJISFunction = function setToSJISFunction (f) { + if (typeof f !== 'function') { + throw new Error('"toSJISFunc" is not a valid function.') + } + + toSJISFunction = f +} + +exports.isKanjiModeEnabled = function () { + return typeof toSJISFunction !== 'undefined' +} + +exports.toSJIS = function toSJIS (kanji) { + return toSJISFunction(kanji) +} + +},{}],29:[function(require,module,exports){ +/** + * Check if QR Code version is valid + * + * @param {Number} version QR Code version + * @return {Boolean} true if valid version, false otherwise + */ +exports.isValid = function isValid (version) { + return !isNaN(version) && version >= 1 && version <= 40 +} + +},{}],30:[function(require,module,exports){ +var Utils = require('./utils') +var ECCode = require('./error-correction-code') +var ECLevel = require('./error-correction-level') +var Mode = require('./mode') +var VersionCheck = require('./version-check') +var isArray = require('isarray') + +// Generator polynomial used to encode version information +var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0) +var G18_BCH = Utils.getBCHDigit(G18) + +function getBestVersionForDataLength (mode, length, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) { + return currentVersion + } + } + + return undefined +} + +function getReservedBitsCount (mode, version) { + // Character count indicator + mode indicator bits + return Mode.getCharCountIndicator(mode, version) + 4 +} + +function getTotalBitsFromDataArray (segments, version) { + var totalBits = 0 + + segments.forEach(function (data) { + var reservedBits = getReservedBitsCount(data.mode, version) + totalBits += reservedBits + data.getBitsLength() + }) + + return totalBits +} + +function getBestVersionForMixedData (segments, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + var length = getTotalBitsFromDataArray(segments, currentVersion) + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) { + return currentVersion + } + } + + return undefined +} + +/** + * Returns version number from a value. + * If value is not a valid version, returns defaultValue + * + * @param {Number|String} value QR Code version + * @param {Number} defaultValue Fallback value + * @return {Number} QR Code version number + */ +exports.from = function from (value, defaultValue) { + if (VersionCheck.isValid(value)) { + return parseInt(value, 10) + } + + return defaultValue +} + +/** + * Returns how much data can be stored with the specified QR code version + * and error correction level + * + * @param {Number} version QR Code version (1-40) + * @param {Number} errorCorrectionLevel Error correction level + * @param {Mode} mode Data mode + * @return {Number} Quantity of storable data + */ +exports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) { + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid QR Code version') + } + + // Use Byte mode as default + if (typeof mode === 'undefined') mode = Mode.BYTE + + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version) + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel) + + // Total number of data codewords + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8 + + if (mode === Mode.MIXED) return dataTotalCodewordsBits + + var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version) + + // Return max number of storable codewords + switch (mode) { + case Mode.NUMERIC: + return Math.floor((usableBits / 10) * 3) + + case Mode.ALPHANUMERIC: + return Math.floor((usableBits / 11) * 2) + + case Mode.KANJI: + return Math.floor(usableBits / 13) + + case Mode.BYTE: + default: + return Math.floor(usableBits / 8) + } +} + +/** + * Returns the minimum version needed to contain the amount of data + * + * @param {Segment} data Segment of data + * @param {Number} [errorCorrectionLevel=H] Error correction level + * @param {Mode} mode Data mode + * @return {Number} QR Code version + */ +exports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) { + var seg + + var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M) + + if (isArray(data)) { + if (data.length > 1) { + return getBestVersionForMixedData(data, ecl) + } + + if (data.length === 0) { + return 1 + } + + seg = data[0] + } else { + seg = data + } + + return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl) +} + +/** + * Returns version information with relative error correction bits + * + * The version information is included in QR Code symbols of version 7 or larger. + * It consists of an 18-bit sequence containing 6 data bits, + * with 12 error correction bits calculated using the (18, 6) Golay code. + * + * @param {Number} version QR Code version + * @return {Number} Encoded version info bits + */ +exports.getEncodedBits = function getEncodedBits (version) { + if (!VersionCheck.isValid(version) || version < 7) { + throw new Error('Invalid QR Code version') + } + + var d = version << 12 + + while (Utils.getBCHDigit(d) - G18_BCH >= 0) { + d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH)) + } + + return (version << 12) | d +} + +},{"./error-correction-code":14,"./error-correction-level":15,"./mode":21,"./utils":28,"./version-check":29,"isarray":5}],31:[function(require,module,exports){ +var Utils = require('./utils') + +function clearCanvas (ctx, canvas, size) { + ctx.clearRect(0, 0, canvas.width, canvas.height) + + if (!canvas.style) canvas.style = {} + canvas.height = size + canvas.width = size + canvas.style.height = size + 'px' + canvas.style.width = size + 'px' +} + +function getCanvasElement () { + try { + return document.createElement('canvas') + } catch (e) { + throw new Error('You need to specify a canvas element') + } +} + +exports.render = function render (qrData, canvas, options) { + var opts = options + var canvasEl = canvas + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas + canvas = undefined + } + + if (!canvas) { + canvasEl = getCanvasElement() + } + + opts = Utils.getOptions(opts) + var size = Utils.getImageWidth(qrData.modules.size, opts) + + var ctx = canvasEl.getContext('2d') + var image = ctx.createImageData(size, size) + Utils.qrToImageData(image.data, qrData, opts) + + clearCanvas(ctx, canvasEl, size) + ctx.putImageData(image, 0, 0) + + return canvasEl +} + +exports.renderToDataURL = function renderToDataURL (qrData, canvas, options) { + var opts = options + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas + canvas = undefined + } + + if (!opts) opts = {} + + var canvasEl = exports.render(qrData, canvas, opts) + + var type = opts.type || 'image/png' + var rendererOpts = opts.rendererOpts || {} + + return canvasEl.toDataURL(type, rendererOpts.quality) +} + +},{"./utils":33}],32:[function(require,module,exports){ +var Utils = require('./utils') + +function getColorAttrib (color, attrib) { + var alpha = color.a / 255 + var str = attrib + '="' + color.hex + '"' + + return alpha < 1 + ? str + ' ' + attrib + '-opacity="' + alpha.toFixed(2).slice(1) + '"' + : str +} + +function svgCmd (cmd, x, y) { + var str = cmd + x + if (typeof y !== 'undefined') str += ' ' + y + + return str +} + +function qrToPath (data, size, margin) { + var path = '' + var moveBy = 0 + var newRow = false + var lineLength = 0 + + for (var i = 0; i < data.length; i++) { + var col = Math.floor(i % size) + var row = Math.floor(i / size) + + if (!col && !newRow) newRow = true + + if (data[i]) { + lineLength++ + + if (!(i > 0 && col > 0 && data[i - 1])) { + path += newRow + ? svgCmd('M', col + margin, 0.5 + row + margin) + : svgCmd('m', moveBy, 0) + + moveBy = 0 + newRow = false + } + + if (!(col + 1 < size && data[i + 1])) { + path += svgCmd('h', lineLength) + lineLength = 0 + } + } else { + moveBy++ + } + } + + return path +} + +exports.render = function render (qrData, options, cb) { + var opts = Utils.getOptions(options) + var size = qrData.modules.size + var data = qrData.modules.data + var qrcodesize = size + opts.margin * 2 + + var bg = !opts.color.light.a + ? '' + : '' + + var path = + '' + + var viewBox = 'viewBox="' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '"' + + var width = !opts.width ? '' : 'width="' + opts.width + '" height="' + opts.width + '" ' + + var svgTag = '' + bg + path + '\n' + + if (typeof cb === 'function') { + cb(null, svgTag) + } + + return svgTag +} + +},{"./utils":33}],33:[function(require,module,exports){ +function hex2rgba (hex) { + if (typeof hex === 'number') { + hex = hex.toString() + } + + if (typeof hex !== 'string') { + throw new Error('Color should be defined as hex string') + } + + var hexCode = hex.slice().replace('#', '').split('') + if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) { + throw new Error('Invalid hex color: ' + hex) + } + + // Convert from short to long form (fff -> ffffff) + if (hexCode.length === 3 || hexCode.length === 4) { + hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) { + return [c, c] + })) + } + + // Add default alpha value + if (hexCode.length === 6) hexCode.push('F', 'F') + + var hexValue = parseInt(hexCode.join(''), 16) + + return { + r: (hexValue >> 24) & 255, + g: (hexValue >> 16) & 255, + b: (hexValue >> 8) & 255, + a: hexValue & 255, + hex: '#' + hexCode.slice(0, 6).join('') + } +} + +exports.getOptions = function getOptions (options) { + if (!options) options = {} + if (!options.color) options.color = {} + + var margin = typeof options.margin === 'undefined' || + options.margin === null || + options.margin < 0 ? 4 : options.margin + + var width = options.width && options.width >= 21 ? options.width : undefined + var scale = options.scale || 4 + + return { + width: width, + scale: width ? 4 : scale, + margin: margin, + color: { + dark: hex2rgba(options.color.dark || '#000000ff'), + light: hex2rgba(options.color.light || '#ffffffff') + }, + type: options.type, + rendererOpts: options.rendererOpts || {} + } +} + +exports.getScale = function getScale (qrSize, opts) { + return opts.width && opts.width >= qrSize + opts.margin * 2 + ? opts.width / (qrSize + opts.margin * 2) + : opts.scale +} + +exports.getImageWidth = function getImageWidth (qrSize, opts) { + var scale = exports.getScale(qrSize, opts) + return Math.floor((qrSize + opts.margin * 2) * scale) +} + +exports.qrToImageData = function qrToImageData (imgData, qr, opts) { + var size = qr.modules.size + var data = qr.modules.data + var scale = exports.getScale(size, opts) + var symbolSize = Math.floor((size + opts.margin * 2) * scale) + var scaledMargin = opts.margin * scale + var palette = [opts.color.light, opts.color.dark] + + for (var i = 0; i < symbolSize; i++) { + for (var j = 0; j < symbolSize; j++) { + var posDst = (i * symbolSize + j) * 4 + var pxColor = opts.color.light + + if (i >= scaledMargin && j >= scaledMargin && + i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) { + var iSrc = Math.floor((i - scaledMargin) / scale) + var jSrc = Math.floor((j - scaledMargin) / scale) + pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0] + } + + imgData[posDst++] = pxColor.r + imgData[posDst++] = pxColor.g + imgData[posDst++] = pxColor.b + imgData[posDst] = pxColor.a + } + } +} + +},{}],34:[function(require,module,exports){ +(function (Buffer){ +/** + * Implementation of a subset of node.js Buffer methods for the browser. + * Based on https://github.com/feross/buffer + */ + +/* eslint-disable no-proto */ + +'use strict' + +var isArray = require('isarray') + +function typedArraySupport () { + // Can typed array instances be augmented? + try { + var arr = new Uint8Array(1) + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }} + return arr.foo() === 42 + } catch (e) { + return false + } +} + +Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport() + +var K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff + +function Buffer (arg, offset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, offset, length) + } + + if (typeof arg === 'number') { + return allocUnsafe(this, arg) + } + + return from(this, arg, offset, length) +} + +if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype + Buffer.__proto__ = Uint8Array + + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }) + } +} + +function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 +} + +function isnan (val) { + return val !== val // eslint-disable-line no-self-compare +} + +function createBuffer (that, length) { + var buf + if (Buffer.TYPED_ARRAY_SUPPORT) { + buf = new Uint8Array(length) + buf.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + buf = that + if (buf === null) { + buf = new Buffer(length) + } + buf.length = length + } + + return buf +} + +function allocUnsafe (that, size) { + var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0) + + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + buf[i] = 0 + } + } + + return buf +} + +function fromString (that, string) { + var length = byteLength(string) | 0 + var buf = createBuffer(that, length) + + var actual = buf.write(string) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) + } + + return buf +} + +function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0 + var buf = createBuffer(that, length) + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255 + } + return buf +} + +function fromArrayBuffer (that, array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + var buf + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array) + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset) + } else { + buf = new Uint8Array(array, byteOffset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + buf.__proto__ = Buffer.prototype + } else { + // Fallback: Return an object instance of the Buffer class + buf = fromArrayLike(that, buf) + } + + return buf +} + +function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0 + var buf = createBuffer(that, len) + + if (buf.length === 0) { + return buf + } + + obj.copy(buf, 0, 0, len) + return buf + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') +} + +function utf8ToBytes (string, units) { + units = units || Infinity + var codePoint + var length = string.length + var leadSurrogate = null + var bytes = [] + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i) + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + continue + } + + // valid lead + leadSurrogate = codePoint + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + leadSurrogate = codePoint + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000 + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD) + } + + leadSurrogate = null + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint) + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ) + } else { + throw new Error('Invalid code point') + } + } + + return bytes +} + +function byteLength (string) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string + } + + var len = string.length + if (len === 0) return 0 + + return utf8ToBytes(string).length +} + +function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i] + } + return i +} + +function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) +} + +function from (that, value, offset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, offset, length) + } + + if (typeof value === 'string') { + return fromString(that, value, offset) + } + + return fromObject(that, value) +} + +Buffer.prototype.write = function write (string, offset, length) { + // Buffer#write(string) + if (offset === undefined) { + length = this.length + offset = 0 + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + length = this.length + offset = 0 + // Buffer#write(string, offset[, length]) + } else if (isFinite(offset)) { + offset = offset | 0 + if (isFinite(length)) { + length = length | 0 + } else { + length = undefined + } + } + + var remaining = this.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + return utf8Write(this, string, offset, length) +} + +Buffer.prototype.slice = function slice (start, end) { + var len = this.length + start = ~~start + end = end === undefined ? len : ~~end + + if (start < 0) { + start += len + if (start < 0) start = 0 + } else if (start > len) { + start = len + } + + if (end < 0) { + end += len + if (end < 0) end = 0 + } else if (end > len) { + end = len + } + + if (end < start) end = start + + var newBuf + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end) + // Return an augmented `Uint8Array` instance + newBuf.__proto__ = Buffer.prototype + } else { + var sliceLen = end - start + newBuf = new Buffer(sliceLen, undefined) + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start] + } + } + + return newBuf +} + +Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0 + if (!end && end !== 0) end = this.length + if (targetStart >= target.length) targetStart = target.length + if (!targetStart) targetStart = 0 + if (end > 0 && end < start) end = start + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start + } + + var len = end - start + var i + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start] + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start] + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ) + } + + return len +} + +Buffer.prototype.fill = function fill (val, start, end) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + start = 0 + end = this.length + } else if (typeof end === 'string') { + end = this.length + } + if (val.length === 1) { + var code = val.charCodeAt(0) + if (code < 256) { + val = code + } + } + } else if (typeof val === 'number') { + val = val & 255 + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0 + end = end === undefined ? this.length : end >>> 0 + + if (!val) val = 0 + + var i + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : new Buffer(val) + var len = bytes.length + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len] + } + } + + return this +} + +Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return createBuffer(null, 0) + } + + var i + if (length === undefined) { + length = 0 + for (i = 0; i < list.length; ++i) { + length += list[i].length + } + } + + var buffer = allocUnsafe(null, length) + var pos = 0 + for (i = 0; i < list.length; ++i) { + var buf = list[i] + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos) + pos += buf.length + } + return buffer +} + +Buffer.byteLength = byteLength + +Buffer.prototype._isBuffer = true +Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) +} + +module.exports.alloc = function (size) { + var buffer = new Buffer(size) + buffer.fill(0) + return buffer +} + +module.exports.from = function (data) { + return new Buffer(data) +} + +}).call(this,require("buffer").Buffer) + +},{"buffer":2,"isarray":5}],35:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ApproveAdminAdapter2 = _interopRequireDefault(require("../../../api/ApproveAdminAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * OvertimeCategoryAdapter + */ +var OvertimeCategoryAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(OvertimeCategoryAdapter, _AdapterBase); + + var _super = _createSuper(OvertimeCategoryAdapter); + + function OvertimeCategoryAdapter() { + _classCallCheck(this, OvertimeCategoryAdapter); + + return _super.apply(this, arguments); + } + + _createClass(OvertimeCategoryAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }]]; + } + }]); + + return OvertimeCategoryAdapter; +}(_AdapterBase2["default"]); +/** + * EmployeeOvertimeAdminAdapter + */ + + +var EmployeeOvertimeAdminAdapter = /*#__PURE__*/function (_ApproveAdminAdapter) { + _inherits(EmployeeOvertimeAdminAdapter, _ApproveAdminAdapter); + + var _super2 = _createSuper(EmployeeOvertimeAdminAdapter); + + function EmployeeOvertimeAdminAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeOvertimeAdminAdapter); + + _this = _super2.call(this, endPoint, tab, filter, orderBy); + _this.itemName = 'OvertimeRequest'; + _this.itemNameLower = 'overtimerequest'; + _this.modulePathName = 'overtime'; + return _this; + } + + _createClass(EmployeeOvertimeAdminAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'category', 'start_time', 'end_time', 'project', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Category' + }, { + sTitle: 'Start Time' + }, { + sTitle: 'End Time' + }, { + sTitle: 'Project' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['category', { + label: 'Category', + type: 'select2', + 'allow-null': false, + 'remote-source': ['OvertimeCategory', 'id', 'name'] + }], ['start_time', { + label: 'Start Time', + type: 'datetime', + validation: '' + }], ['end_time', { + label: 'End Time', + type: 'datetime', + validation: '' + }], ['project', { + label: 'Project', + type: 'select2', + 'allow-null': true, + 'null=label': 'none', + 'remote-source': ['Project', 'id', 'name'] + }], ['notes', { + label: 'Notes', + type: 'textarea', + validation: 'none' + }]]; + } + }]); + + return EmployeeOvertimeAdminAdapter; +}(_ApproveAdminAdapter2["default"]); + +module.exports = { + OvertimeCategoryAdapter: OvertimeCategoryAdapter, + EmployeeOvertimeAdminAdapter: EmployeeOvertimeAdminAdapter +}; + +},{"../../../api/AdapterBase":39,"../../../api/ApproveAdminAdapter":40}],36:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ReportAdapter + */ +var ReportAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(ReportAdapter, _AdapterBase); + + var _super = _createSuper(ReportAdapter); + + function ReportAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ReportAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + + _this._construct(); + + return _this; + } + + _createClass(ReportAdapter, [{ + key: "_construct", + value: function _construct() { + this._formFileds = [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'label', + validation: '' + }], ['parameters', { + label: 'Parameters', + type: 'fieldset', + validation: 'none' + }]]; + this.remoteFieldsExists = false; + } + }, { + key: "_initLocalFormFields", + value: function _initLocalFormFields() { + this._formFileds = [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'label', + validation: '' + }], ['parameters', { + label: 'Parameters', + type: 'fieldset', + validation: 'none' + }]]; + } + }, { + key: "setRemoteFieldExists", + value: function setRemoteFieldExists(val) { + this.remoteFieldsExists = val; + } + }, { + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'icon', 'name', 'details', 'parameters']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: '', + bSortable: false, + sWidth: '22px' + }, { + sTitle: 'Name', + sWidth: '30%' + }, { + sTitle: 'Details' + }, { + sTitle: 'Parameters', + bVisible: false + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return this._formFileds; + } + }, { + key: "processFormFieldsWithObject", + value: function processFormFieldsWithObject(object) { + var that = this; + + this._initLocalFormFields(); + + var len = this._formFileds.length; + var fieldIDsToDelete = []; + var fieldsToDelete = []; + this.remoteFieldsExists = false; + + for (var i = 0; i < len; i++) { + if (this._formFileds[i][1].type === 'fieldset') { + var newFields = JSON.parse(object[this._formFileds[i][0]]); + fieldsToDelete.push(this._formFileds[i][0]); + newFields.forEach(function (entry) { + that._formFileds.push(entry); + + if (entry[1]['remote-source'] !== undefined && entry[1]['remote-source'] != null) { + that.remoteFieldsExists = true; + } + }); + } + } + + var tempArray = []; + + that._formFileds.forEach(function (entry) { + if (jQuery.inArray(entry[0], fieldsToDelete) < 0) { + tempArray.push(entry); + } + }); + + that._formFileds = tempArray; + } + }, { + key: "renderForm", + value: function renderForm(object) { + var that = this; + this.processFormFieldsWithObject(object); + + if (this.remoteFieldsExists) { + var cb = function cb() { + that.renderFormNew(object); + }; + + this.initFieldMasterData(cb); + } else { + this.initFieldMasterData(); + that.renderFormNew(object); + } + + this.currentReport = object; + } + }, { + key: "renderFormNew", + value: function renderFormNew(object) { + var that = this; + var signatureIds = []; + + if (object == null || object === undefined) { + this.currentId = null; + } + + this.preRenderForm(object); + var formHtml = this.templates.formTemplate; + var html = ''; + var fields = this.getFormFields(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_submit")); + formHtml = formHtml.replace(/_fields_/g, html); + var $tempDomObj; + var randomFormId = this.generateRandom(14); + + if (!this.showFormOnPopup) { + $tempDomObj = $("#".concat(this.getTableName(), "Form")); + } else { + $tempDomObj = $('
    '); + $tempDomObj.attr('id', randomFormId); + } + + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); // $tempDomObj.find('.select2Field').select2(); + + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + $tempDomObj.find('.signatureField').each(function () { + // $(this).data('signaturePad',new SignaturePad($(this))); + signatureIds.push($(this).attr('id')); + }); + + for (var _i = 0; _i < fields.length; _i++) { + if (fields[_i][1].type === 'datagroup') { + $tempDomObj.find("#".concat(fields[_i][0])).data('field', fields[_i]); + } + } + + if (this.showSave === false) { + $tempDomObj.find('.saveBtn').remove(); + } else { + $tempDomObj.find('.saveBtn').off(); + $tempDomObj.find('.saveBtn').data('modJs', this); + $tempDomObj.find('.saveBtn').on('click', function () { + if ($(this).data('modJs').saveSuccessItemCallback != null && $(this).data('modJs').saveSuccessItemCallback !== undefined) { + $(this).data('modJs').save($(this).data('modJs').retriveItemsAfterSave(), $(this).data('modJs').saveSuccessItemCallback); + } else { + $(this).data('modJs').save(); + } + + return false; + }); + } + + if (this.showCancel === false) { + $tempDomObj.find('.cancelBtn').remove(); + } else { + $tempDomObj.find('.cancelBtn').off(); + $tempDomObj.find('.cancelBtn').data('modJs', this); + $tempDomObj.find('.cancelBtn').on('click', function () { + $(this).data('modJs').cancel(); + return false; + }); + } + + if (!this.showFormOnPopup) { + $("#".concat(this.getTableName(), "Form")).show(); + $("#".concat(this.getTableName())).hide(); + + for (var _i2 = 0; _i2 < signatureIds.length; _i2++) { + $("#".concat(signatureIds[_i2])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i2]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object); + } + } else { + // var tHtml = $tempDomObj.wrap('
    ').parent().html(); + // this.showMessage("Edit",tHtml,null,null,true); + this.showMessage('Edit', '', null, null, true); + $('#plainMessageModel .modal-body').html(''); + $('#plainMessageModel .modal-body').append($tempDomObj); + + for (var _i3 = 0; _i3 < signatureIds.length; _i3++) { + $("#".concat(signatureIds[_i3])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i3]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object, "#".concat(randomFormId)); + } + } + + this.postRenderForm(object, $tempDomObj); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
    '; + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "addSuccessCallBack", + value: function addSuccessCallBack(callBackData, serverData) { + var fileName = serverData[0]; + var link; + + if (fileName.indexOf('https:') === 0) { + link = "Download Report "); + } else { + link = "Download Report "); + } + + link = link.replace(/_BASE_/g, this.baseUrl); + + if (this.currentReport.output === 'PDF' || this.currentReport.output === 'JSON') { + this.showMessage('Download Report', link); + } else { + if (serverData[1].length === 0) { + this.showMessage('Empty Report', 'There were no data for selected filters'); + return; + } + + var tableHtml = "".concat(link, "

    "); // Delete existing temp report table + + $('#tempReportTable').remove(); // this.showMessage("Report",tableHtml); + + $("#".concat(this.table)).html(tableHtml); + $("#".concat(this.table)).show(); + $("#".concat(this.table, "Form")).hide(); // Prepare headers + + var headers = []; + + for (var index in serverData[1]) { + headers.push({ + sTitle: serverData[1][index] + }); + } + + var data = serverData[2]; + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + aaData: data, + aoColumns: headers, + bSort: false, + iDisplayLength: 15, + iDisplayStart: 0 + }; + $('#tempReportTable').dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); + $('.tableActionButton').tooltip(); + } + } + }, { + key: "fillForm", + value: function fillForm(object) { + var fields = this.getFormFields(); + + for (var i = 0; i < fields.length; i++) { + if (fields[i][1].type === 'label') { + $("#".concat(this.getTableName(), "Form #").concat(fields[i][0])).html(object[fields[i][0]]); + } else { + $("#".concat(this.getTableName(), "Form #").concat(fields[i][0])).val(object[fields[i][0]]); + } + } + } + }]); + + return ReportAdapter; +}(_AdapterBase3["default"]); + +var ReportGenAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(ReportGenAdapter, _AdapterBase2); + + var _super2 = _createSuper(ReportGenAdapter); + + function ReportGenAdapter() { + _classCallCheck(this, ReportGenAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(ReportGenAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = '
    '; + html = html.replace(/_id_/g, id); + html = html.replace(/_name_/g, data[1]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }]); + + return ReportGenAdapter; +}(_AdapterBase3["default"]); + +module.exports = { + ReportAdapter: ReportAdapter, + ReportGenAdapter: ReportGenAdapter +}; + +},{"../../../api/AdapterBase":39}],37:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _CustomFieldAdapter = _interopRequireDefault(require("../../../api/CustomFieldAdapter")); + +var _ApproveAdminAdapter2 = _interopRequireDefault(require("../../../api/ApproveAdminAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ImmigrationDocumentAdapter + */ +var ImmigrationDocumentAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(ImmigrationDocumentAdapter, _AdapterBase); + + var _super = _createSuper(ImmigrationDocumentAdapter); + + function ImmigrationDocumentAdapter() { + _classCallCheck(this, ImmigrationDocumentAdapter); + + return _super.apply(this, arguments); + } + + _createClass(ImmigrationDocumentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'details', 'required', 'alert_on_missing', 'alert_before_expiry']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }, { + sTitle: 'Compulsory' + }, { + sTitle: 'Alert If Not Found' + }, { + sTitle: 'Alert Before Expiry' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var fields = [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['required', { + label: 'Compulsory', + type: 'select', + source: [['No', 'No'], ['Yes', 'Yes']] + }], ['alert_on_missing', { + label: 'Alert If Not Found', + type: 'select', + source: [['No', 'No'], ['Yes', 'Yes']] + }], ['alert_before_expiry', { + label: 'Alert Before Expiry', + type: 'select', + source: [['No', 'No'], ['Yes', 'Yes']] + }], ['alert_before_day_number', { + label: 'Days for Expiry Alert', + type: 'text', + validation: '' + }]]; + + for (var i = 0; i < this.customFields.length; i++) { + fields.push(this.customFields[i]); + } + + return fields; + } + }]); + + return ImmigrationDocumentAdapter; +}(_AdapterBase3["default"]); +/** + * EmployeeImmigrationAdapter + */ + + +var EmployeeImmigrationAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(EmployeeImmigrationAdapter, _AdapterBase2); + + var _super2 = _createSuper(EmployeeImmigrationAdapter); + + function EmployeeImmigrationAdapter() { + _classCallCheck(this, EmployeeImmigrationAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(EmployeeImmigrationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'document', 'documentname', 'valid_until', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Document' + }, { + sTitle: 'Document Id' + }, { + sTitle: 'Valid Until' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['document', { + label: 'Document', + type: 'select2', + 'remote-source': ['ImmigrationDocument', 'id', 'name'] + }], ['documentname', { + label: 'Document Id', + type: 'text', + validation: '' + }], ['valid_until', { + label: 'Valid Until', + type: 'date', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['Inactive', 'Inactive'], ['Draft', 'Draft']] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['attachment1', { + label: 'Attachment 1', + type: 'fileupload', + validation: 'none' + }], ['attachment2', { + label: 'Attachment 2', + type: 'fileupload', + validation: 'none' + }], ['attachment3', { + label: 'Attachment 3', + type: 'fileupload', + validation: 'none' + }]]; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }]]; + } + }]); + + return EmployeeImmigrationAdapter; +}(_AdapterBase3["default"]); +/** + * EmployeeTravelRecordAdminAdapter + */ + + +var EmployeeTravelRecordAdminAdapter = /*#__PURE__*/function (_ApproveAdminAdapter) { + _inherits(EmployeeTravelRecordAdminAdapter, _ApproveAdminAdapter); + + var _super3 = _createSuper(EmployeeTravelRecordAdminAdapter); + + function EmployeeTravelRecordAdminAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeTravelRecordAdminAdapter); + + _this = _super3.call(this, endPoint, tab, filter, orderBy); + _this.itemName = 'TravelRequest'; + _this.itemNameLower = 'travelrequest'; + _this.modulePathName = 'travel'; + return _this; + } + + _createClass(EmployeeTravelRecordAdminAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'type', 'purpose', 'travel_from', 'travel_to', 'travel_date', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee' + }, { + sTitle: 'Travel Type' + }, { + sTitle: 'Purpose' + }, { + sTitle: 'From' + }, { + sTitle: 'To' + }, { + sTitle: 'Travel Date' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return this.addCustomFields([['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select2', + sort: 'none', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name', 'getActiveSubordinateEmployees'] + }], ['type', { + label: 'Means of Transportation', + type: 'select', + source: [['Plane', 'Plane'], ['Rail', 'Rail'], ['Taxi', 'Taxi'], ['Own Vehicle', 'Own Vehicle'], ['Rented Vehicle', 'Rented Vehicle'], ['Other', 'Other']] + }], ['purpose', { + label: 'Purpose of Travel', + type: 'textarea', + validation: '' + }], ['travel_from', { + label: 'Travel From', + type: 'text', + validation: '' + }], ['travel_to', { + label: 'Travel To', + type: 'text', + validation: '' + }], ['travel_date', { + label: 'Travel Date', + type: 'datetime', + validation: '' + }], ['return_date', { + label: 'Return Date', + type: 'datetime', + validation: '' + }], ['details', { + label: 'Notes', + type: 'textarea', + validation: 'none' + }], ['currency', { + label: 'Currency', + type: 'select2', + 'allow-null': false, + 'remote-source': ['CurrencyType', 'id', 'code'] + }], ['funding', { + label: 'Total Funding Proposed', + type: 'text', + validation: 'float', + "default": '0.00', + mask: '9{0,10}.99' + }], ['attachment1', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }], ['attachment2', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }], ['attachment3', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }]]); + } + }]); + + return EmployeeTravelRecordAdminAdapter; +}(_ApproveAdminAdapter2["default"]); + +module.exports = { + ImmigrationDocumentAdapter: ImmigrationDocumentAdapter, + EmployeeImmigrationAdapter: EmployeeImmigrationAdapter, + EmployeeTravelRecordAdminAdapter: EmployeeTravelRecordAdminAdapter, + CustomFieldAdapter: _CustomFieldAdapter["default"] +}; + +},{"../../../api/AdapterBase":39,"../../../api/ApproveAdminAdapter":40,"../../../api/CustomFieldAdapter":43}],38:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ + +/** + * RequestCache + */ +var MemoryStorage = /*#__PURE__*/function () { + function MemoryStorage() { + _classCallCheck(this, MemoryStorage); + + this.data = {}; + } + + _createClass(MemoryStorage, [{ + key: "getItem", + value: function getItem(key) { + return this.data[key]; + } + }, { + key: "setItem", + value: function setItem(key, data) { + this.data[key] = data; + } + }, { + key: "removeAllByPrefix", + value: function removeAllByPrefix(prefix) { + var keys = Object.keys(this.data); + + for (var i = 0; i < keys.length; i++) { + if (keys[i].indexOf(prefix) > 0) { + delete this.data[keys[i]]; + } + } + } + }]); + + return MemoryStorage; +}(); + +var RequestCache = /*#__PURE__*/function () { + function RequestCache(storage) { + _classCallCheck(this, RequestCache); + + if (!storage) { + this.storage = new MemoryStorage(); + } else { + this.storage = storage; + } + } + + _createClass(RequestCache, [{ + key: "getKey", + value: function getKey(url, params) { + var key = "".concat(url, "|"); + + for (var index in params) { + key += "".concat(index, "=").concat(params[index], "|"); + } + + return key; + } + /* + invalidateTable(table) { + let key; + for (let i = 0; i < this.storage.length; i++) { + key = this.storage.key(i); + if (key.indexOf(`t=${table}`) > 0) { + this.storage.removeItem(key); + } + } + } + */ + + }, { + key: "invalidateTable", + value: function invalidateTable(table) { + this.storage.removeAllByPrefix("t=".concat(table)); + } + }, { + key: "getData", + value: function getData(key) { + var data = this.storage.getItem(key); + + if (!data) { + return null; + } + + return data; + } + }, { + key: "setData", + value: function setData(key, data) { + if (data.status !== undefined && data.status != null && data.status !== 'SUCCESS') { + return null; + } + + this.storage.setItem(key, data); + return data; + } + }]); + + return RequestCache; +}(); + +var _default = RequestCache; +exports["default"] = _default; + +},{}],39:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _IceApiClient = _interopRequireDefault(require("./IceApiClient")); + +var _ModuleBase2 = _interopRequireDefault(require("./ModuleBase")); + +var _RequestCache = _interopRequireDefault(require("../api-common/RequestCache")); + +var _MasterDataReader = _interopRequireDefault(require("./MasterDataReader")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var AdapterBase = /*#__PURE__*/function (_ModuleBase) { + _inherits(AdapterBase, _ModuleBase); + + var _super = _createSuper(AdapterBase); + + function AdapterBase(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, AdapterBase); + + _this = _super.call(this); + _this.moduleRelativeURL = null; + _this.tableData = []; + _this.sourceData = []; + _this.filter = null; + _this.origFilter = null; + _this.orderBy = null; + _this.currentElement = null; + + _this.initAdapter(endPoint, tab, filter, orderBy); + + return _this; + } + + _createClass(AdapterBase, [{ + key: "initAdapter", + value: function initAdapter(endPoint, tab, filter, orderBy) { + this.moduleRelativeURL = baseUrl; + this.table = endPoint; + + if (tab === undefined || tab === null) { + this.tab = endPoint; + } else { + this.tab = tab; + } + + if (filter === undefined || filter === null) { + this.filter = null; + } else { + this.filter = filter; + } + + this.origFilter = this.filter; + + if (orderBy === undefined || orderBy === null) { + this.orderBy = null; + } else { + this.orderBy = orderBy; + } + + this.trackEvent('initAdapter', tab); + this.requestCache = new _RequestCache["default"](); + } + }, { + key: "initMasterDataReader", + value: function initMasterDataReader() { + this.masterDataReader = new _MasterDataReader["default"](this); + } + }, { + key: "setupApiClient", + value: function setupApiClient(token) { + this.apiClient = new _IceApiClient["default"](this.apiUrl, token, window.CLIENT_BASE_URL, true); + } + }, { + key: "setApiUrl", + value: function setApiUrl(apiUrl) { + this.apiUrl = apiUrl; + } + }, { + key: "setFilter", + value: function setFilter(filter) { + this.filter = filter; + } + }, { + key: "preSetFilterExternal", + value: function preSetFilterExternal(filter) { + this.initialFilter = filter; + } + }, { + key: "setFilterExternal", + value: function setFilterExternal(_filter) { + var filter = _filter; + + if (filter === undefined || filter === null) { + filter = this.initialFilter; + } + + if (filter === undefined || filter === null) { + return; + } + + this.setFilter(filter); + this.filtersAlreadySet = true; + $("#".concat(this.getTableName(), "_resetFilters")).show(); + this.currentFilterString = this.getFilterString(filter); + } + }, { + key: "getFilter", + value: function getFilter() { + return this.filter; + } + }, { + key: "setOrderBy", + value: function setOrderBy(orderBy) { + this.orderBy = orderBy; + } + }, { + key: "getOrderBy", + value: function getOrderBy() { + return this.orderBy; + } + }, { + key: "getFile", + value: function getFile(name) { + var _this2 = this; + + this.trackEvent('file', name); + return new Promise(function (resolve, reject) { + $.getJSON(_this2.moduleRelativeURL, { + a: 'file', + name: name + }, function (data) { + if (data.status === 'SUCCESS') { + resolve(data.data); + } else { + reject(); + } + }).fail(function () { + return reject(); + }); + }); + } + /** + * @method add + * @param object {Array} object data to be added to database + * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters + * @param _callGetFunction {Boolean} if false the get function of the module will not be called (default: true) + * @param successCallback {Function} this will get called after success response + */ + + }, { + key: "add", + value: function add(object, getFunctionCallBackData, callGetFunction, successCallback) { + var that = this; + + if (callGetFunction === undefined || callGetFunction === null) { + // eslint-disable-next-line no-param-reassign + callGetFunction = true; + } + + $(object).attr('a', 'add'); + $(object).attr('t', this.table); + that.showLoader(); + this.requestCache.invalidateTable(this.table); + $.post(this.moduleRelativeURL, object, function (data) { + if (data.status === 'SUCCESS') { + that.addSuccessCallBack(getFunctionCallBackData, data.object, callGetFunction, successCallback, that); + } else { + that.addFailCallBack(getFunctionCallBackData, data.object); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + this.trackEvent('add', this.tab, this.table); + } + }, { + key: "addSuccessCallBack", + value: function addSuccessCallBack(callBackData, serverData, callGetFunction, successCallback, thisObject) { + if (callGetFunction) { + this.get(callBackData); + } + + this.initFieldMasterData(); + + if (successCallback !== undefined && successCallback !== null) { + successCallback.apply(thisObject, [serverData]); + } + + this.trackEvent('addSuccess', this.tab, this.table); + } + }, { + key: "addFailCallBack", + value: function addFailCallBack(callBackData, serverData) { + try { + this.closePlainMessage(); + } catch (e) {// No need to report + } + + this.showMessage('Error saving', serverData); + this.trackEvent('addFailed', this.tab, this.table); + } + }, { + key: "deleteObj", + value: function deleteObj(id, callBackData) { + var that = this; + that.showLoader(); + this.requestCache.invalidateTable(this.table); + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'delete', + id: id + }, function (data) { + if (data.status === 'SUCCESS') { + that.deleteSuccessCallBack(callBackData, data.object); + } else { + that.deleteFailCallBack(callBackData, data.object); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + this.trackEvent('delete', this.tab, this.table); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "deleteSuccessCallBack", + value: function deleteSuccessCallBack(callBackData, serverData) { + this.get(callBackData); + this.clearDeleteParams(); + } + }, { + key: "deleteFailCallBack", + value: function deleteFailCallBack(callBackData, serverData) { + this.clearDeleteParams(); + this.showMessage('Error Occurred while Deleting Item', serverData); + } + }, { + key: "get", + value: function get(callBackData) { + var that = this; + + if (this.getRemoteTable()) { + this.createTableServer(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + return; + } + + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + var filterJson = ''; + + if (this.getFilter() !== null) { + filterJson = JSON.stringify(this.getFilter()); + } + + var orderBy = ''; + + if (this.getOrderBy() !== null) { + orderBy = this.getOrderBy(); + } + + sourceMappingJson = this.fixJSON(sourceMappingJson); + filterJson = this.fixJSON(filterJson); + that.showLoader(); + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'get', + sm: sourceMappingJson, + ft: filterJson, + ob: orderBy + }, function (data) { + if (data.status === 'SUCCESS') { + that.getSuccessCallBack(callBackData, data.object); + } else { + that.getFailCallBack(callBackData, data.object); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + that.initFieldMasterData(); + this.trackEvent('get', this.tab, this.table); // var url = this.getDataUrl(); + // console.log(url); + } + }, { + key: "getDataUrl", + value: function getDataUrl(_columns) { + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + var columns = JSON.stringify(_columns); + var filterJson = ''; + + if (this.getFilter() !== null) { + filterJson = JSON.stringify(this.getFilter()); + } + + var orderBy = ''; + + if (this.getOrderBy() !== null) { + orderBy = this.getOrderBy(); + } + + var url = this.moduleRelativeURL.replace('service.php', 'data.php'); + url = "".concat(url, "?t=").concat(this.table); + url = "".concat(url, "&sm=").concat(this.fixJSON(sourceMappingJson)); + url = "".concat(url, "&cl=").concat(this.fixJSON(columns)); + url = "".concat(url, "&ft=").concat(this.fixJSON(filterJson)); + url = "".concat(url, "&ob=").concat(orderBy); + + if (this.isSubProfileTable()) { + url = "".concat(url, "&type=sub"); + } + + if (this.remoteTableSkipProfileRestriction()) { + url = "".concat(url, "&skip=1"); + } + + return url; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return false; + } + }, { + key: "remoteTableSkipProfileRestriction", + value: function remoteTableSkipProfileRestriction() { + return false; + } + }, { + key: "preProcessTableData", + value: function preProcessTableData(row) { + return row; + } + }, { + key: "getSuccessCallBack", + value: function getSuccessCallBack(callBackData, serverData) { + var data = []; + var mapping = this.getDataMapping(); + + for (var i = 0; i < serverData.length; i++) { + var row = []; + + for (var j = 0; j < mapping.length; j++) { + row[j] = serverData[i][mapping[j]]; + } + + data.push(this.preProcessTableData(row)); + } + + this.sourceData = serverData; + + if (callBackData.callBack !== undefined && callBackData.callBack !== null) { + if (callBackData.callBackData === undefined || callBackData.callBackData === null) { + callBackData.callBackData = []; + } + + callBackData.callBackData.push(serverData); + callBackData.callBackData.push(data); + this.callFunction(callBackData.callBack, callBackData.callBackData); + } + + this.tableData = data; + + if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) { + this.createTable(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + } + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getFailCallBack", + value: function getFailCallBack(callBackData, serverData) {} + }, { + key: "getElement", + value: function getElement(id, callBackData, clone) { + var that = this; + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + sourceMappingJson = this.fixJSON(sourceMappingJson); + that.showLoader(); + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'getElement', + id: id, + sm: sourceMappingJson + }, function (data) { + if (data.status === 'SUCCESS') { + if (clone) { + delete data.object.id; + } + + this.currentElement = data.object; + that.getElementSuccessCallBack.apply(that, [callBackData, data.object]); + } else { + that.getElementFailCallBack.apply(that, [callBackData, data.object]); + } + }, 'json').fail(function (e) { + if (e.status === 403) { + that.showMessage('Access Forbidden', e.responseJSON.message); + } + }).always(function () { + that.hideLoader(); + }); + this.trackEvent('getElement', this.tab, this.table); + } + }, { + key: "getElementSuccessCallBack", + value: function getElementSuccessCallBack(callBackData, serverData) { + if (callBackData.callBack !== undefined && callBackData.callBack !== null) { + if (callBackData.callBackData === undefined || callBackData.callBackData === null) { + callBackData.callBackData = []; + } + + callBackData.callBackData.push(serverData); + this.callFunction(callBackData.callBack, callBackData.callBackData, this); + } + + this.currentElement = serverData; + + if (!(callBackData.noRender !== undefined && callBackData.noRender !== null && callBackData.noRender === true)) { + this.renderForm(serverData); + } + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getElementFailCallBack", + value: function getElementFailCallBack(callBackData, serverData) {} + }, { + key: "getTableData", + value: function getTableData() { + return this.tableData; + } + }, { + key: "getTableName", + value: function getTableName() { + return this.tab; + } + }, { + key: "getFieldValues", + value: function getFieldValues(fieldMaster, callBackData) { + var that = this; + var method = ''; + var methodParams = ''; + + if (fieldMaster[3] !== undefined && fieldMaster[3] !== null) { + // eslint-disable-next-line prefer-destructuring + method = fieldMaster[3]; + } + + if (fieldMaster[4] !== undefined && fieldMaster[4] !== null) { + methodParams = JSON.stringify(fieldMaster[4]); + } + + var key = this.requestCache.getKey(this.moduleRelativeURL, { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }); + var cacheData = this.requestCache.getData(key); + + if (cacheData !== null && cacheData !== undefined) { + if (cacheData.status === 'SUCCESS') { + callBackData.callBackData.push(cacheData.data); + + if (callBackData.callBackSuccess !== null && callBackData.callBackSuccess !== undefined) { + callBackData.callBackData.push(callBackData.callBackSuccess); + } + + that.callFunction(callBackData.callBack, callBackData.callBackData); + } + } else { + var callbackWraper = function callbackWraper(data) { + if (data.status === 'SUCCESS') { + that.requestCache.setData(this.success.key, data); + var localCallBackData = callBackData; + localCallBackData.callBackData = [callBackData.callBackData[0]]; + localCallBackData.callBackData.push(data.data); + + if (localCallBackData.callBackSuccess !== null && localCallBackData.callBackSuccess !== undefined) { + localCallBackData.callBackData.push(callBackData.callBackSuccess); + } + + that.callFunction(localCallBackData.callBack, localCallBackData.callBackData); + } else if (data.message === 'Access violation') { + alert("Error : ".concat(callbackWraper.table, " ").concat(data.message)); + } + }; + + callbackWraper.key = key; // eslint-disable-next-line prefer-destructuring + + callbackWraper.table = fieldMaster[0]; + $.post(this.moduleRelativeURL, { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }, callbackWraper, 'json'); + } + } + }, { + key: "setAdminProfile", + value: function setAdminProfile(empId) { + try { + localStorage.clear(); + } catch (e) {// No need to report + } + + $.post(this.moduleRelativeURL, { + a: 'setAdminEmp', + empid: empId + }, function () { + // eslint-disable-next-line no-restricted-globals + top.location.href = clientUrl; + }, 'json'); + } + }, { + key: "customAction", + value: function customAction(subAction, module, request, callBackData, isPost) { + var that = this; + request = this.fixJSON(request); + + if (!isPost) { + $.getJSON(this.moduleRelativeURL, { + t: this.table, + a: 'ca', + sa: subAction, + mod: module, + req: request + }, function (data) { + if (data.status === 'SUCCESS') { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackSuccess, callBackData.callBackData); + } else { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackFail, callBackData.callBackData); + } + }); + } else { + $.post(this.moduleRelativeURL, { + t: this.table, + a: 'ca', + sa: subAction, + mod: module, + req: request + }, function (data) { + if (data.status === 'SUCCESS') { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackSuccess, callBackData.callBackData); + } else { + callBackData.callBackData.push(data.data); + that.callFunction(callBackData.callBackFail, callBackData.callBackData); + } + }, 'json'); + } + } + }, { + key: "sendCustomRequest", + value: function sendCustomRequest(action, params, successCallback, failCallback) { + params.a = action; + $.post(this.moduleRelativeURL, params, function (data) { + if (data.status === 'SUCCESS') { + successCallback(data.data); + } else { + failCallback(data.data); + } + }, 'json'); + } + }, { + key: "getCustomActionUrl", + value: function getCustomActionUrl(action, params) { + params.a = action; + var str = ''; + + for (var key in params) { + if (params.hasOwnProperty(key)) { + if (str !== '') { + str += '&'; + } + + str += "".concat(key, "=").concat(params[key]); + } + } + + return "".concat(this.moduleRelativeURL, "?").concat(str); + } + }, { + key: "getClientDataUrl", + value: function getClientDataUrl() { + return "".concat(this.moduleRelativeURL.replace('service.php', ''), "data/"); + } + }, { + key: "getCustomUrl", + value: function getCustomUrl(str) { + return this.moduleRelativeURL.replace('service.php', str); + } + }]); + + return AdapterBase; +}(_ModuleBase2["default"]); + +var _default = AdapterBase; +exports["default"] = _default; + +},{"../api-common/RequestCache":38,"./IceApiClient":45,"./MasterDataReader":47,"./ModuleBase":48}],40:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _LogViewAdapter2 = _interopRequireDefault(require("./LogViewAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ApproveAdminAdapter = /*#__PURE__*/function (_LogViewAdapter) { + _inherits(ApproveAdminAdapter, _LogViewAdapter); + + var _super = _createSuper(ApproveAdminAdapter); + + function ApproveAdminAdapter(endPoint, tab, filter, orderBy) { + _classCallCheck(this, ApproveAdminAdapter); + + return _super.call(this, endPoint, tab, filter, orderBy); + } + + _createClass(ApproveAdminAdapter, [{ + key: "getStatusFieldPosition", + value: function getStatusFieldPosition() { + var dm = this.getDataMapping(); + return dm.length - 1; + } + }, { + key: "openStatus", + value: function openStatus(id, status) { + $("#".concat(this.itemNameLower, "StatusModel")).modal('show'); + $("#".concat(this.itemNameLower, "_status")).html(this.getStatusOptions(status)); + $("#".concat(this.itemNameLower, "_status")).val(status); + this.statusChangeId = id; + } + }, { + key: "closeDialog", + value: function closeDialog() { + $("#".concat(this.itemNameLower, "StatusModel")).modal('hide'); + } + }, { + key: "changeStatus", + value: function changeStatus() { + var status = $("#".concat(this.itemNameLower, "_status")).val(); + var reason = $("#".concat(this.itemNameLower, "_reason")).val(); + + if (status == undefined || status == null || status == '') { + this.showMessage('Error', "Please select ".concat(this.itemNameLower, " status")); + return; + } + + var object = { + id: this.statusChangeId, + status: status, + reason: reason + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'changeStatusSuccessCallBack'; + callBackData.callBackFail = 'changeStatusFailCallBack'; + this.customAction('changeStatus', "admin=".concat(this.modulePathName), reqJson, callBackData); + this.closeDialog(); + this.statusChangeId = null; + } + }, { + key: "changeStatusSuccessCallBack", + value: function changeStatusSuccessCallBack(callBackData) { + this.showMessage('Successful', "".concat(this.itemName, " Request status changed successfully")); + this.get([]); + } + }, { + key: "changeStatusFailCallBack", + value: function changeStatusFailCallBack(callBackData) { + this.showMessage('Error', "Error occurred while changing ".concat(this.itemName, " request status")); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var deleteButton = ''; + var statusChangeButton = ''; + var viewLogsButton = ''; + var html = '
    _edit__delete__status__logs_
    '; + var optiondata = this.getStatusOptionsData(data[this.getStatusFieldPosition()]); + + if (Object.keys(optiondata).length > 0) { + html = html.replace('_status_', statusChangeButton); + } else { + html = html.replace('_status_', ''); + } + + html = html.replace('_logs_', viewLogsButton); + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + html = html.replace(/_cstatus_/g, data[this.getStatusFieldPosition()]); + return html; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return this.user.user_level !== 'Admin' && this.user.user_level !== 'Restricted Admin'; + } + }, { + key: "getStatusOptionsData", + value: function getStatusOptionsData(currentStatus) { + var data = {}; + + if (currentStatus === 'Approved') {} else if (currentStatus === 'Pending') { + data.Approved = 'Approved'; + data.Rejected = 'Rejected'; + } else if (currentStatus === 'Rejected') {} else if (currentStatus === 'Cancelled') {} else if (currentStatus === 'Processing') {} else { + data['Cancellation Requested'] = 'Cancellation Requested'; + data.Cancelled = 'Cancelled'; + } + + return data; + } + }, { + key: "getStatusOptions", + value: function getStatusOptions(currentStatus) { + return this.generateOptions(this.getStatusOptionsData(currentStatus)); + } + }]); + + return ApproveAdminAdapter; +}(_LogViewAdapter2["default"]); + +var _default = ApproveAdminAdapter; +exports["default"] = _default; + +},{"./LogViewAdapter":46}],41:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _LogViewAdapter2 = _interopRequireDefault(require("./LogViewAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ApproveModuleAdapter = /*#__PURE__*/function (_LogViewAdapter) { + _inherits(ApproveModuleAdapter, _LogViewAdapter); + + var _super = _createSuper(ApproveModuleAdapter); + + function ApproveModuleAdapter() { + _classCallCheck(this, ApproveModuleAdapter); + + return _super.apply(this, arguments); + } + + _createClass(ApproveModuleAdapter, [{ + key: "cancelRequest", + value: function cancelRequest(id) { + var object = {}; + object.id = id; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'cancelSuccessCallBack'; + callBackData.callBackFail = 'cancelFailCallBack'; + this.customAction('cancel', "modules=".concat(this.modulePathName), reqJson, callBackData); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "cancelSuccessCallBack", + value: function cancelSuccessCallBack(callBackData) { + this.showMessage('Successful', "".concat(this.itemName, " cancellation request sent")); + this.get([]); + } + }, { + key: "cancelFailCallBack", + value: function cancelFailCallBack(callBackData) { + this.showMessage("Error Occurred while cancelling ".concat(this.itemName), callBackData); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var deleteButton = ''; + var requestCancellationButton = ""); + var viewLogsButton = ''; + var html = '
    _edit__logs__delete_
    '; + html = html.replace('_logs_', viewLogsButton); + + if (this.showDelete) { + if (data[7] === 'Approved') { + html = html.replace('_delete_', requestCancellationButton); + } else if (data[7] === 'Pending' || this.user.user_level === 'Admin') { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }]); + + return ApproveModuleAdapter; +}(_LogViewAdapter2["default"]); + +var _default = ApproveModuleAdapter; +exports["default"] = _default; + +},{"./LogViewAdapter":46}],42:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var axios = require('axios'); + +var CustomAction = /*#__PURE__*/function () { + function CustomAction(adapter) { + _classCallCheck(this, CustomAction); + + this.adapter = adapter; + } + + _createClass(CustomAction, [{ + key: "execute", + value: function execute(subAction, module, request, isPost) { + if (!isPost) { + return axios.get(this.adapter.moduleRelativeURL, { + params: { + t: this.adapter.table, + a: 'ca', + sa: subAction, + mod: module, + req: request + } + }); + } + + return axios.post(this.moduleRelativeURL, { + t: this.adapter.table, + a: 'ca', + sa: subAction, + mod: module, + req: request + }); + } + }]); + + return CustomAction; +}(); + +var _default = CustomAction; +exports["default"] = _default; + +},{"axios":98}],43:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/* + * CustomFieldAdapter + */ +var CustomFieldAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(CustomFieldAdapter, _AdapterBase); + + var _super = _createSuper(CustomFieldAdapter); + + function CustomFieldAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, CustomFieldAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.tableType = ''; + return _this; + } + + _createClass(CustomFieldAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'display', 'display_order']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Display Status' + }, { + sTitle: 'Priority' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['display', { + label: 'Display Status', + type: 'select', + source: [['Form', 'Show'], ['Hidden', 'Hidden']] + }], ['field_type', { + label: 'Field Type', + type: 'select', + source: [['text', 'Text Field'], ['textarea', 'Text Area'], ['select', 'Select'], ['select2', 'Select2'], ['select2multi', 'Multi Select'], ['fileupload', 'File Upload'], ['date', 'Date'], ['datetime', 'Date Time'], ['time', 'Time'], ['signature', 'Signature']] + }], ['field_label', { + label: 'Field Label', + type: 'text', + validation: '' + }], ['field_validation', { + label: 'Validation', + type: 'select2', + validation: 'none', + sort: 'none', + 'null-label': 'Required', + 'allow-null': true, + source: [['none', 'None'], ['number', 'Number'], ['numberOrEmpty', 'Number or Empty'], ['float', 'Decimal'], ['email', 'Email'], ['emailOrEmpty', 'Email or Empty']] + }], ['field_options', { + label: 'Field Options', + type: 'datagroup', + form: [['label', { + label: 'Label', + type: 'text', + validation: '' + }], ['value', { + label: 'Value', + type: 'text', + validation: 'none' + }]], + html: '
    #_delete_##_edit_##_label_#:#_value_#
    ', + validation: 'none' + }], ['display_order', { + label: 'Priority', + type: 'text', + validation: 'number' + }], ['display_section', { + label: 'Display Section', + type: 'text', + validation: 'none' + }]]; + } + }, { + key: "setTableType", + value: function setTableType(type) { + this.tableType = type; + } + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + var validateName = function validateName(str) { + var name = /^[a-z][a-z0-9._]+$/; + return str != null && name.test(str); + }; + + if (!validateName(params.name)) { + return 'Invalid name for custom field'; + } + + return null; + } + }, { + key: "forceInjectValuesBeforeSave", + value: function forceInjectValuesBeforeSave(params) { + var data = [params.name]; + var options = []; + var optionsData; + data.push({}); + data[1].label = params.field_label; + data[1].type = params.field_type; + data[1].validation = params.field_validation; + + if (['select', 'select2', 'select2multi'].indexOf(params.field_type) >= 0) { + optionsData = params.field_options === '' || params.field_options === undefined ? [] : JSON.parse(params.field_options); + + for (var index in optionsData) { + options.push([optionsData[index].value, optionsData[index].label]); + } + + data[1].source = options; + } + + if (params.field_validation == null || params.field_validation === undefined) { + params.field_validation = ''; + } + + params.data = JSON.stringify(data); + params.type = this.tableType; + return params; + } + }]); + + return CustomFieldAdapter; +}(_AdapterBase2["default"]); + +var _default = CustomFieldAdapter; +exports["default"] = _default; + +},{"./AdapterBase":39}],44:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/* + Copyright (c) 2018 [Glacies UG, Berlin, Germany] (http://glacies.de) + Developer: Thilina Hasantha (http://lk.linkedin.com/in/thilinah | https://github.com/thilinah) + */ + +/* global tinyMCE */ +var ValidationRules = { + "float": function float(str) { + var floatstr = /^[-+]?[0-9]+(\.[0-9]+)?$/; + + if (str != null && str.match(floatstr)) { + return true; + } + + return false; + }, + number: function number(str) { + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + numberOrEmpty: function numberOrEmpty(str) { + if (str === '') { + return true; + } + + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + email: function email(str) { + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + emailOrEmpty: function emailOrEmpty(str) { + if (str === '') { + return true; + } + + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + username: function username(str) { + var username = /^[a-zA-Z0-9.-]+$/; + return str != null && username.test(str); + }, + input: function input(str) { + if (str != null && str.length > 0) { + return true; + } + + return false; + } +}; + +var FormValidation = /*#__PURE__*/function () { + function FormValidation(formId, validateAll, options) { + _classCallCheck(this, FormValidation); + + this.tempOptions = {}; + this.formId = formId; + this.formError = false; + this.formObject = null; + this.errorMessages = ''; + this.popupDialog = null; + this.validateAll = validateAll; + this.errorMap = []; + this.settings = { + thirdPartyPopup: null, + LabelErrorClass: false, + ShowPopup: true + }; + this.settings = jQuery.extend(this.settings, options); + this.inputTypes = ['text', 'radio', 'checkbox', 'file', 'password', 'select-one', 'select-multi', 'textarea', 'fileupload', 'signature']; + this.validator = ValidationRules; + } // eslint-disable-next-line no-unused-vars + + + _createClass(FormValidation, [{ + key: "clearError", + value: function clearError(formInput, overrideMessage) { + var id = formInput.attr('id'); + $("#".concat(this.formId, " #field_").concat(id)).removeClass('error'); + $("#".concat(this.formId, " #help_").concat(id)).html(''); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "addError", + value: function addError(formInput, overrideMessage) { + this.formError = true; + + if (formInput.attr('message') != null) { + this.errorMessages += "".concat(formInput.attr('message'), "\n"); + this.errorMap[formInput.attr('name')] = formInput.attr('message'); + } else { + this.errorMap[formInput.attr('name')] = ''; + } + + var id = formInput.attr('id'); + var validation = formInput.attr('validation'); + var message = formInput.attr('validation'); + $("#".concat(this.formId, " #field_").concat(id)).addClass('error'); + + if (message === undefined || message == null || message === '') { + $("#".concat(this.formId, " #help_err_").concat(id)).html(message); + } else if (validation === undefined || validation == null || validation === '') { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Required'); + } else if (validation === 'float' || validation === 'number') { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Number required'); + } else if (validation === 'email') { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Email required'); + } else { + $("#".concat(this.formId, " #help_err_").concat(id)).html('Required'); + } + } + }, { + key: "showErrors", + value: function showErrors() { + if (this.formError) { + if (this.settings.thirdPartyPopup !== undefined && this.settings.thirdPartyPopup != null) { + this.settings.thirdPartyPopup.alert(); + } else if (this.settings.ShowPopup === true) { + if (this.tempOptions.popupTop !== undefined && this.tempOptions.popupTop != null) { + this.alert('Errors Found', this.errorMessages, this.tempOptions.popupTop); + } else { + this.alert('Errors Found', this.errorMessages, -1); + } + } + } + } + }, { + key: "checkValues", + value: function checkValues(options) { + this.tempOptions = options; + var that = this; + this.formError = false; + this.errorMessages = ''; + this.formObject = {}; // eslint-disable-next-line consistent-return + + var validate = function validate(inputObject) { + var inputValue = null; + var name = inputObject.attr('name'); + + if (that.settings.LabelErrorClass !== false) { + $("label[for='".concat(name, "']")).removeClass(that.settings.LabelErrorClass); + } + + var id = inputObject.attr('id'); + var type = inputObject.attr('type'); + + if (inputObject.hasClass('select2-focusser') || inputObject.hasClass('select2-input')) { + return true; + } + + if (jQuery.inArray(type, that.inputTypes) >= 0) { + if (inputObject.hasClass('uploadInput')) { + inputValue = inputObject.attr('val'); + } else if (type === 'radio' || type === 'checkbox') { + inputValue = $("input[name='".concat(name, "']:checked")).val(); + } else if (inputObject.hasClass('select2Field')) { + if ($("#".concat(that.formId, " #").concat(id)).select2('data') != null && $("#".concat(that.formId, " #").concat(id)).select2('data') !== undefined) { + inputValue = $("#".concat(that.formId, " #").concat(id)).select2('data').id; + } else { + inputValue = ''; + } + } else if (inputObject.hasClass('select2Multi')) { + if ($("#".concat(that.formId, " #").concat(id)).select2('data') != null && $("#".concat(that.formId, " #").concat(id)).select2('data') !== undefined) { + var inputValueObjects = $("#".concat(that.formId, " #").concat(id)).select2('data'); + inputValue = []; + + for (var i = 0; i < inputValueObjects.length; i++) { + inputValue.push(inputValueObjects[i].id); + } + + inputValue = JSON.stringify(inputValue); + } else { + inputValue = ''; + } + } else if (inputObject.hasClass('signatureField')) { + if ($("#".concat(that.formId, " #").concat(id)).data('signaturePad').isEmpty()) { + inputValue = ''; + } else { + inputValue = $("#".concat(id)).data('signaturePad').toDataURL(); + } + } else if (inputObject.hasClass('simplemde')) { + inputValue = $("#".concat(that.formId, " #").concat(id)).data('simplemde').value(); + } else if (inputObject.hasClass('code')) { + inputValue = $("#".concat(that.formId, " #").concat(id)).data('codemirror').getValue(); + } else if (inputObject.hasClass('tinymce')) { + inputValue = tinyMCE.get(id).getContent({ + format: 'raw' + }); + } else { + inputValue = inputObject.val(); + } + + var validation = inputObject.attr('validation'); + var valid = false; + + if (validation !== undefined && validation != null && that.validator[validation] !== undefined && that.validator[validation] != null) { + valid = that.validator[validation](inputValue); + } else { + if (that.validateAll) { + if (validation !== undefined && validation != null && validation === 'none') { + valid = true; + } else { + valid = that.validator.input(inputValue); + } + } else { + valid = true; + } + + that.formObject[id] = inputValue; + } + + if (!valid) { + that.addError(inputObject, null); + } else { + that.clearError(inputObject, null); + that.formObject[id] = inputValue; + } + } + }; + + var inputs = $("#".concat(this.formId, " :input")); + inputs.each(function () { + validate($(this)); + }); + inputs = $("#".concat(this.formId, " .uploadInput")); + inputs.each(function () { + validate($(this)); + }); + this.showErrors(); + this.tempOptions = {}; + return !this.formError; + } + }, { + key: "getFormParameters", + value: function getFormParameters() { + return this.formObject; + } + }, { + key: "alert", + value: function (_alert) { + function alert(_x, _x2) { + return _alert.apply(this, arguments); + } + + alert.toString = function () { + return _alert.toString(); + }; + + return alert; + }(function (title, text) { + alert(text); + }) + }], [{ + key: "getValidationRules", + value: function getValidationRules() { + return ValidationRules; + } + }]); + + return FormValidation; +}(); + +var _default = FormValidation; +exports["default"] = _default; + +},{}],45:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var axios = require('axios'); + +var IceApiClient = /*#__PURE__*/function () { + function IceApiClient(baseUrl, token, clientBaseUrl) { + var legacyApiWrapper = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true; + + _classCallCheck(this, IceApiClient); + + this.baseUrl = baseUrl; + this.token = token; + this.clientBaseUrl = clientBaseUrl; + this.legacyApiWrapper = legacyApiWrapper; + } + + _createClass(IceApiClient, [{ + key: "get", + value: function get(endpoint) { + if (this.legacyApiWrapper) { + var url = "".concat(this.clientBaseUrl, "api/index.php?token=").concat(this.token, "&method=get&url=/").concat(endpoint); + return axios.get(url); + } + + return axios.get(this.baseUrl + endpoint, { + headers: { + Authorization: "Bearer ".concat(this.token) + } + }); + } + }]); + + return IceApiClient; +}(); + +var _default = IceApiClient; +exports["default"] = _default; + +},{"axios":98}],46:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var LogViewAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(LogViewAdapter, _AdapterBase); + + var _super = _createSuper(LogViewAdapter); + + function LogViewAdapter() { + _classCallCheck(this, LogViewAdapter); + + return _super.apply(this, arguments); + } + + _createClass(LogViewAdapter, [{ + key: "getLogs", + value: function getLogs(id) { + var object = { + id: id + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getLogsSuccessCallBack'; + callBackData.callBackFail = 'getLogsFailCallBack'; + this.customAction('getLogs', "admin=".concat(this.modulePathName), reqJson, callBackData); + } + }, { + key: "getLogsSuccessCallBack", + value: function getLogsSuccessCallBack(callBackData) { + var tableLog = '_days_
    Notes
    '; + var rowLog = '_date_  _status_
    _note_'; + var logs = callBackData.data; + var html = ''; + var rowsLogs = ''; + + for (var i = 0; i < logs.length; i++) { + var trow = rowLog; + trow = trow.replace(/_date_/g, logs[i].time); + trow = trow.replace(/_status_/g, "".concat(logs[i].status_from, " -> ").concat(logs[i].status_to)); + trow = trow.replace(/_note_/g, logs[i].note); + rowsLogs += trow; + } + + if (rowsLogs !== '') { + tableLog = tableLog.replace('_days_', rowsLogs); + html += tableLog; + } + + this.showMessage('Logs', html); + timeUtils.convertToRelativeTime($('.logTime')); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getLogsFailCallBack", + value: function getLogsFailCallBack(callBackData) { + this.showMessage('Error', 'Error occured while getting data'); + } + }]); + + return LogViewAdapter; +}(_AdapterBase2["default"]); + +var _default = LogViewAdapter; +exports["default"] = _default; + +},{"./AdapterBase":39}],47:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var axios = require('axios'); + +var MasterDataReader = /*#__PURE__*/function () { + function MasterDataReader(adapter) { + _classCallCheck(this, MasterDataReader); + + this.adapter = adapter; + this.requestCache = this.adapter.requestCache; + } + + _createClass(MasterDataReader, [{ + key: "fetchMasterData", + value: function fetchMasterData(fieldMaster) { + var _this = this; + + var method = ''; + var methodParams = ''; + + if (fieldMaster[3] != null) { + method = fieldMaster[3]; + } + + if (fieldMaster[4] != null) { + methodParams = JSON.stringify(fieldMaster[4]); + } + + var key = this.requestCache.getKey(this.adapter.moduleRelativeURL, { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }); + var cacheData = this.requestCache.getData(key); + + if (cacheData != null && cacheData.status === 'SUCCESS') { + return new Promise(function (resolve, reject) { + return resolve(cacheData.data); + }); + } + + var urlData = { + t: fieldMaster[0], + key: fieldMaster[1], + value: fieldMaster[2], + method: method, + methodParams: methodParams, + a: 'getFieldValues' + }; + var url = "".concat(this.adapter.moduleRelativeURL, "?_url=1"); + + for (var index in urlData) { + url = "".concat(url, "&").concat(index, "=").concat(encodeURIComponent(urlData[index])); + } // TODO - Should be a get request + + + return axios.post(url, {}).then(function (response) { + if (response.data.status !== 'SUCCESS') { + throw Error("Response for ".concat(key, " failed")); + } + + _this.requestCache.setData(key, response.data); + + return response.data.data; + }); + } + }, { + key: "updateAllMasterData", + value: function updateAllMasterData() { + var _this2 = this; + + var remoteSourceFields = this.adapter.getRemoteSourceFields(); + var promiseList = []; + + for (var i = 0; i < remoteSourceFields.length; i++) { + var fieldRemote = remoteSourceFields[i]; + + if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) { + (function () { + var key = "".concat(fieldRemote[1]['remote-source'][0], "_").concat(fieldRemote[1]['remote-source'][1], "_").concat(fieldRemote[1]['remote-source'][2]); + + if (fieldRemote[1]['remote-source'].length === 4) { + key = "".concat(key, "_").concat(fieldRemote[1]['remote-source'][3]); + } + + var masterDataPromise = _this2.fetchMasterData(fieldRemote[1]['remote-source']).then(function (data) { + _this2.adapter.fieldMasterData[key] = data; + }); + + promiseList.push(masterDataPromise); + })(); + } + } + + return Promise.all(promiseList); + } + }]); + + return MasterDataReader; +}(); + +var _default = MasterDataReader; +exports["default"] = _default; + +},{"axios":98}],48:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _FormValidation = _interopRequireDefault(require("./FormValidation")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +/** + * The base class for providing core functions to all module classes. + * @class Base.js + */ +var ModuleBase = /*#__PURE__*/function () { + function ModuleBase() { + _classCallCheck(this, ModuleBase); + + this.deleteParams = {}; + this.createRemoteTable = false; + this.instanceId = 'None'; + this.ga = []; + this.showAddNew = true; + this.showEdit = true; + this.showDelete = true; + this.showSave = true; + this.showCancel = true; + this.showFormOnPopup = false; + this.filtersAlreadySet = false; + this.currentFilterString = ''; + this.sorting = 0; + this.settings = {}; + this.translations = {}; + this.customFields = []; + this.csrfRequired = false; + this.fieldTemplates = null; + this.templates = null; + this.customTemplates = null; + this.emailTemplates = null; + this.fieldMasterData = {}; + this.fieldMasterDataKeys = {}; + this.fieldMasterDataCallback = null; + this.sourceMapping = null; + this.currentId = null; + this.currentElement = null; + this.user = null; + this.currentProfile = null; + this.permissions = {}; + this.baseUrl = null; + this.that = this; + } // eslint-disable-next-line no-unused-vars + + + _createClass(ModuleBase, [{ + key: "init", + value: function init(appName, currentView, dataUrl, permissions) {} + }, { + key: "initForm", + value: function initForm() {} + }, { + key: "setObjectTypeName", + value: function setObjectTypeName(objectTypeName) { + this.objectTypeName = objectTypeName; + } + /** + * Some browsers do not support sending JSON in get parameters. Set this to true to avoid sending JSON + * @method setNoJSONRequests + * @param val {Boolean} + */ + + }, { + key: "setNoJSONRequests", + value: function setNoJSONRequests(val) { + this.noJSONRequests = val; + } + }, { + key: "setPermissions", + value: function setPermissions(permissions) { + this.permissions = permissions; + } + }, { + key: "sortingStarted", + value: function sortingStarted(val) { + this.sorting = val; + } + /** + * Check if the current user has a permission + * @method checkPermission + * @param permission {String} + * @example + * this.checkPermission("Upload/Delete Profile Image") + */ + + }, { + key: "checkPermission", + value: function checkPermission(permission) { + if (this.permissions[permission] === undefined || this.permissions[permission] == null || this.permissions[permission] === 'Yes') { + return 'Yes'; + } + + return this.permissions[permission]; + } + }, { + key: "setBaseUrl", + value: function setBaseUrl(url) { + this.baseUrl = url; + } + }, { + key: "setUser", + value: function setUser(user) { + this.user = user; + } + }, { + key: "getUser", + value: function getUser() { + return this.user; + } + }, { + key: "setInstanceId", + value: function setInstanceId(id) { + this.instanceId = id; + } + }, { + key: "setCSRFRequired", + value: function setCSRFRequired(val) { + this.csrfRequired = val; + } + }, { + key: "scrollToTop", + value: function scrollToTop() { + $('html, body').animate({ + scrollTop: 0 + }, 'fast'); + } + }, { + key: "scrollToBottom", + value: function scrollToBottom() { + $('html, body').animate({ + scrollTop: $(document).height() + }, 'slow'); + } + }, { + key: "scrollToElement", + value: function scrollToElement(element) { + if ($(window).height() <= element.offset().top) { + $('html, body').animate({ + scrollTop: element.offset().top + }, 'slow'); + } + } + }, { + key: "scrollToElementBottom", + value: function scrollToElementBottom(element) { + if ($(window).height() <= element.offset().top + element.height()) { + $('html, body').animate({ + scrollTop: element.offset().top + element.height() + }, 'slow'); + } + } + }, { + key: "setTranslations", + value: function setTranslations(txt) { + this.translations = txt.messages['']; + } + }, { + key: "setTranslationsSubModules", + value: function setTranslationsSubModules(translations) { + this.translations = translations; + } + }, { + key: "gt", + value: function gt(key) { + if (this.translations[key] === undefined || this.translations[key] === null) { + console.log("Tr:" + key); + return key; + } + + return this.translations[key][0]; + } + }, { + key: "addToLangTerms", + value: function addToLangTerms(key) { + var termsArr; + var terms = localStorage.getItem('terms'); + + if (terms === undefined) { + termsArr = {}; + } else { + try { + termsArr = JSON.parse(terms); + } catch (e) { + termsArr = {}; + } + } + + if (this.translations[key] === undefined) { + termsArr[key] = key; + localStorage.setItem('terms', JSON.stringify(termsArr)); + } + } + /** + * If this method returned false the action buttons in data table for modules will not be displayed. + * Override this method in module lib.js to hide action buttons + * @method showActionButtons + * @param permission {String} + * @example + * EmployeeLeaveEntitlementAdapter.method('showActionButtons() { + * return false; + * } + */ + + }, { + key: "showActionButtons", + value: function showActionButtons() { + return true; + } + }, { + key: "trackEvent", + value: function trackEvent(action, label, value) { + try { + if (label === undefined || label == null) { + this.ga.push(['_trackEvent', this.instanceId, action]); + } else if (value === undefined || value == null) { + this.ga.push(['_trackEvent', this.instanceId, action, label]); + } else { + this.ga.push(['_trackEvent', this.instanceId, action, label, value]); + } + } catch (e) {// Do nothing + } + } + }, { + key: "setCurrentProfile", + value: function setCurrentProfile(currentProfile) { + this.currentProfile = currentProfile; + } + /** + * Get the current profile + * @method getCurrentProfile + * @returns Profile of the current user if the profile is not switched if not switched profile + */ + + }, { + key: "getCurrentProfile", + value: function getCurrentProfile() { + return this.currentProfile; + } + /** + * Retrive data required to create select boxes for add new /edit forms for a given module. This is called when loading the module + * @method initFieldMasterData + * @param callback {Function} call this once loading completed + * @param callback {Function} call this once all field loading completed. This indicate that the form can be displayed saftly + * @example + * ReportAdapter.method('renderForm(object) { + * var that = this; + * this.processFormFieldsWithObject(object); + * var cb = function(){ + * that.super.renderForm(object); + * }; + * this.initFieldMasterData(cb); + * } + */ + + }, { + key: "initFieldMasterData", + value: function initFieldMasterData(callback, loadAllCallback, loadAllCallbackData) { + this.fieldMasterData = {}; + this.fieldMasterDataKeys = {}; + this.fieldMasterDataCallback = loadAllCallback; + this.fieldMasterDataCallbackData = loadAllCallbackData; + var remoteSourceFields = this.getRemoteSourceFields(); + + for (var i = 0; i < remoteSourceFields.length; i++) { + var fieldRemote = remoteSourceFields[i]; + + if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) { + // let key = `${fieldRemote[1]['remote-source'][0]}_${fieldRemote[1]['remote-source'][1]}_${fieldRemote[1]['remote-source'][2]}`; + // if (fieldRemote[1]['remote-source'].length === 4) { + // key = `${key}_${fieldRemote[1]['remote-source'][3]}`; + // } + var key = this.getRemoteSourceKey(fieldRemote); + this.fieldMasterDataKeys[key] = false; + var callBackData = {}; + callBackData.callBack = 'initFieldMasterDataResponse'; + callBackData.callBackData = [key]; + + if (callback !== null && callback !== undefined) { + callBackData.callBackSuccess = callback; + } + + this.getFieldValues(fieldRemote[1]['remote-source'], callBackData); + } + } + } + }, { + key: "initSourceMappings", + value: function initSourceMappings() { + this.sourceMapping = {}; + var remoteSourceFields = this.getRemoteSourceFields(); + + for (var i = 0; i < remoteSourceFields.length; i++) { + var fieldRemote = remoteSourceFields[i]; + + if (fieldRemote[1]['remote-source'] !== undefined && fieldRemote[1]['remote-source'] != null) { + this.sourceMapping[fieldRemote[0]] = fieldRemote[1]['remote-source']; + } + } + } + }, { + key: "getRemoteSourceKey", + value: function getRemoteSourceKey(field) { + var key = "".concat(field[1]['remote-source'][0], "_").concat(field[1]['remote-source'][1], "_").concat(field[1]['remote-source'][2]); + + if (field[1]['remote-source'].length > 3) { + key = "".concat(key, "_").concat(field[1]['remote-source'][3]); + } + + return key; + } + }, { + key: "getRemoteSourceFields", + value: function getRemoteSourceFields() { + var values; + var fields = this.getFormFields(); + var filterFields = this.getFilters(); + + if (filterFields != null) { + for (var j = 0; j < filterFields.length; j++) { + values = this.getMetaFieldValues(filterFields[j][0], fields); + + if (values == null || values.type !== 'select' && values.type !== 'select2' && values.type !== 'select2multi') { + fields.push(filterFields[j]); + } + } + } + + var remoteSourceFields = []; + var remoteSourceFieldKeys = []; + var field = null; + var fieldSub = null; + + for (var i = 0; i < fields.length; i++) { + field = fields[i]; + + if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] !== null) { + var key = this.getRemoteSourceKey(field); + + if (remoteSourceFieldKeys.indexOf(key) < 0) { + remoteSourceFields.push(field); + remoteSourceFieldKeys.push(key); + } + } else if (field[1].form !== undefined && field[1].form !== null) { + for (var _j = 0; _j < field[1].form.length; _j++) { + fieldSub = field[1].form[_j]; + + if (fieldSub[1]['remote-source'] !== undefined && fieldSub[1]['remote-source'] !== null) { + var _key = this.getRemoteSourceKey(fieldSub); + + if (remoteSourceFieldKeys.indexOf(_key) < 0) { + remoteSourceFields.push(fieldSub); + remoteSourceFieldKeys.push(_key); + } + } + } + } + } + + return remoteSourceFields; + } + /** + * Pass true to this method after creating module JS object to open new/edit entry form for the module on a popup. + * @method setShowFormOnPopup + * @param val {Boolean} + * @example + * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{"candidate":data.id} + * modJs.subModJsList['tabCandidateApplication'].setShowFormOnPopup(true); + */ + + }, { + key: "setShowFormOnPopup", + value: function setShowFormOnPopup(val) { + this.showFormOnPopup = val; + } + /** + * Set this to true to if you need the datatable to load data page by page instead of loading all data at once. + * @method setRemoteTable + * @param val {Boolean} + * @example + * modJs.subModJsList['tabCandidateApplication'] = new CandidateApplicationAdapter('Application','CandidateApplication',{"candidate":data.id} + * modJs.subModJsList['tabCandidateApplication'].setRemoteTable(true); + */ + + }, { + key: "setRemoteTable", + value: function setRemoteTable(val) { + this.createRemoteTable = val; + } + }, { + key: "setSettings", + value: function setSettings(val) { + this.settings = val; + } + }, { + key: "getRemoteTable", + value: function getRemoteTable() { + return this.createRemoteTable; + } + }, { + key: "isAllLoaded", + value: function isAllLoaded(fieldMasterDataKeys) { + for (var key in fieldMasterDataKeys) { + if (fieldMasterDataKeys[key] === false) { + return false; + } + } + + return true; + } // eslint-disable-next-line no-unused-vars + + }, { + key: "initFieldMasterDataResponse", + value: function initFieldMasterDataResponse(key, data, callback, loadAllCallbackData) { + this.fieldMasterData[key] = data; + this.fieldMasterDataKeys[key] = true; + + if (callback !== undefined && callback !== null) { + callback(); + } + + if (this.fieldMasterDataCallback !== null && this.fieldMasterDataCallback !== undefined && this.isAllLoaded(this.fieldMasterDataKeys) && this.fieldMasterDataCallbackData !== null && this.fieldMasterDataCallbackData !== undefined) { + this.fieldMasterDataCallback(this.fieldMasterDataCallbackData); + } else if (this.fieldMasterDataCallback !== null && this.fieldMasterDataCallback !== undefined && this.isAllLoaded(this.fieldMasterDataKeys)) { + this.fieldMasterDataCallback(); + } + } + }, { + key: "getMetaFieldValues", + value: function getMetaFieldValues(key, fields) { + for (var i = 0; i < fields.length; i++) { + if (key === fields[i][0]) { + return fields[i][1]; + } + } + + return null; + } + }, { + key: "getThemeColors", + value: function getThemeColors() { + var colors = ['red', 'yellow', 'aqua', 'blue', 'light-blue', 'green', 'navy', 'teal', 'olive', 'orange', 'fuchsia', 'purple']; + return colors; + } + }, { + key: "getColorByRandomString", + value: function getColorByRandomString(string) { + var colors = this.getThemeColors(); + var k = string.charCodeAt(0); + return colors[k % colors.length]; + } + }, { + key: "getColorByFileType", + value: function getColorByFileType(type) { + type = type.toLowerCase(); + var colorMap = {}; + colorMap.pdf = 'red'; + colorMap.csv = 'yellow'; + colorMap.xls = 'green'; + colorMap.xlsx = 'green'; + colorMap.doc = 'light-blue'; + colorMap.docx = 'light-blue'; + colorMap.docx = 'blue'; + colorMap.ppt = 'orange'; + colorMap.pptx = 'orange'; + colorMap.jpg = 'teal'; + colorMap.jpeg = 'teal'; + colorMap.gif = 'green'; + colorMap.png = 'yellow'; + colorMap.bmp = 'fuchsia'; + + if (colorMap[type] !== undefined || colorMap[type] != null) { + return colorMap[type]; + } + + return this.getColorByRandomString(type); + } + }, { + key: "getIconByFileType", + value: function getIconByFileType(type) { + type = type.toLowerCase(); + var iconMap = {}; + iconMap.pdf = 'fa fa-file-pdf-o'; + iconMap.csv = 'fa fa fa-file-code-o'; + iconMap.xls = 'fa fa-file-excel-o'; + iconMap.xlsx = 'fa fa-file-excel-o'; + iconMap.doc = 'fa fa-file-word-o'; + iconMap.docx = 'fa fa-file-word-o'; + iconMap.ppt = 'fa fa-file-powerpoint-o'; + iconMap.pptx = 'fa fa-file-powerpoint-o'; + iconMap.jpg = 'fa fa-file-image-o'; + iconMap.jpeg = 'fa fa-file-image-o'; + iconMap.gif = 'fa fa-file-image-o'; + iconMap.png = 'fa fa-file-image-o'; + iconMap.bmp = 'fa fa-file-image-o'; + iconMap.txt = 'fa fa-file-text-o'; + iconMap.rtf = 'fa fa-file-text-o'; + + if (iconMap[type] !== undefined || iconMap[type] != null) { + return iconMap[type]; + } + + return 'fa fa-file-o'; + } + }, { + key: "getSourceMapping", + value: function getSourceMapping() { + return this.sourceMapping; + } + }, { + key: "setTesting", + value: function setTesting(testing) { + this.testing = testing; + } + }, { + key: "consoleLog", + value: function consoleLog(message) { + if (this.testing) { + console.log(message); + } + } + }, { + key: "setClientMessages", + value: function setClientMessages(msgList) { + this.msgList = msgList; + } + }, { + key: "setTemplates", + value: function setTemplates(templates) { + this.templates = templates; + } + }, { + key: "getWSProperty", + value: function getWSProperty(array, key) { + if (array.hasOwnProperty(key)) { + return array[key]; + } + + return null; + } + }, { + key: "getClientMessage", + value: function getClientMessage(key) { + return this.getWSProperty(this.msgList, key); + } + }, { + key: "getTemplate", + value: function getTemplate(key) { + return this.getWSProperty(this.templates, key); + } + }, { + key: "setGoogleAnalytics", + value: function setGoogleAnalytics(gaq) { + this.gaq = gaq; + } + }, { + key: "showView", + value: function showView(view) { + if (this.currentView != null) { + this.previousView = this.currentView; + $("#".concat(this.currentView)).hide(); + } + + $("#".concat(view)).show(); + this.currentView = view; + this.moveToTop(); + } + }, { + key: "showPreviousView", + value: function showPreviousView() { + this.showView(this.previousView); + } + }, { + key: "moveToTop", + value: function moveToTop() {} + }, { + key: "callFunction", + value: function callFunction(callback, cbParams, thisParam) { + if ($.isFunction(callback)) { + try { + if (thisParam === undefined || thisParam === null) { + callback.apply(document, cbParams); + } else { + callback.apply(thisParam, cbParams); + } + } catch (e) { + console.log(e.message); + } + } else { + var f = this[callback]; + + if ($.isFunction(f)) { + try { + f.apply(this, cbParams); + } catch (e) { + console.log(e.message); + } + } + } + } + }, { + key: "getTableTopButtonHtml", + value: function getTableTopButtonHtml() { + var html = ''; + + if (this.getShowAddNew()) { + html = ""); + } + + if (this.getFilters() != null) { + if (html !== '') { + html += '  '; + } + + html += ""); + html += '  '; + + if (this.filtersAlreadySet) { + html += ''; + } else { + html += ''; + } + } + + html = html.replace(/__id__/g, this.getTableName()); + + if (this.currentFilterString !== '' && this.currentFilterString != null) { + html = html.replace(/__filterString__/g, this.currentFilterString); + } else { + html = html.replace(/__filterString__/g, 'Reset Filters'); + } + + if (html !== '') { + html = "
    ".concat(html, "
    "); + } + + return html; + } + }, { + key: "getActionButtonHeader", + value: function getActionButtonHeader() { + return { + sTitle: '', + sClass: 'center' + }; + } + }, { + key: "getTableHTMLTemplate", + value: function getTableHTMLTemplate() { + return '
    '; + } + }, { + key: "isSortable", + value: function isSortable() { + return true; + } + /** + * Create the data table on provided element id + * @method createTable + * @param val {Boolean} + */ + + }, { + key: "createTable", + value: function createTable(elementId) { + var that = this; + + if (this.getRemoteTable()) { + this.createTableServer(elementId); + return; + } + + var headers = this.getHeaders(); // add translations + + for (var index in headers) { + headers[index].sTitle = this.gt(headers[index].sTitle); + } + + var data = this.getTableData(); + + if (this.showActionButtons()) { + headers.push(this.getActionButtonHeader()); + } + + if (this.showActionButtons()) { + for (var i = 0; i < data.length; i++) { + data[i].push(this.getActionButtonsHtml(data[i][0], data[i])); + } + } + + var html = ''; + html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate(); + /* + if(this.getShowAddNew()){ + html = this.getTableTopButtonHtml()+'
    '; + }else{ + html = '
    '; + } + */ + // Find current page + + var activePage = $("#".concat(elementId, " .dataTables_paginate .active a")).html(); + var start = 0; + + if (activePage !== undefined && activePage != null) { + start = parseInt(activePage, 10) * 15 - 15; + } + + $("#".concat(elementId)).html(html); + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + aaData: data, + aoColumns: headers, + bSort: that.isSortable(), + iDisplayLength: 15, + iDisplayStart: start + }; + var customTableParams = this.getCustomTableParams(); + $.extend(dataTableParams, customTableParams); + $("#".concat(elementId, " #grid")).dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); + $('.tableActionButton').tooltip(); + } + /** + * Create a data table on provided element id which loads data page by page + * @method createTableServer + * @param val {Boolean} + */ + + }, { + key: "createTableServer", + value: function createTableServer(elementId) { + var that = this; + var headers = this.getHeaders(); + headers.push({ + sTitle: '', + sClass: 'center' + }); // add translations + + for (var index in headers) { + headers[index].sTitle = this.gt(headers[index].sTitle); + } + + var html = ''; + html = this.getTableTopButtonHtml() + this.getTableHTMLTemplate(); // Find current page + + var activePage = $("#".concat(elementId, " .dataTables_paginate .active a")).html(); + var start = 0; + + if (activePage !== undefined && activePage != null) { + start = parseInt(activePage, 10) * 15 - 15; + } + + $("#".concat(elementId)).html(html); + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + bProcessing: true, + bServerSide: true, + sAjaxSource: that.getDataUrl(that.getDataMapping()), + aoColumns: headers, + bSort: that.isSortable(), + parent: that, + iDisplayLength: 15, + iDisplayStart: start + }; + + if (this.showActionButtons()) { + dataTableParams.aoColumnDefs = [{ + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }]; + } + + var customTableParams = this.getCustomTableParams(); + $.extend(dataTableParams, customTableParams); + $("#".concat(elementId, " #grid")).dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); + $('.tableActionButton').tooltip(); + } + /** + * This should be overridden in module lib.js classes to return module headers which are used to create the data table. + * @method getHeaders + * @example + SettingAdapter.method('getHeaders() { + return [ + { "sTitle": "ID" ,"bVisible":false}, + { "sTitle": "Name" }, + { "sTitle": "Value"}, + { "sTitle": "Details"} + ]; + } + */ + + }, { + key: "getHeaders", + value: function getHeaders() {} + /** + * This should be overridden in module lib.js classes to return module field values which are used to create the data table. + * @method getDataMapping + * @example + SettingAdapter.method('getDataMapping() { + return [ + "id", + "name", + "value", + "description" + ]; + } + */ + + }, { + key: "getDataMapping", + value: function getDataMapping() {} + /** + * This should be overridden in module lib.js classes to return module from fields which are used to create the add/edit form and also used for initializing select box values in form. + * @method getFormFields + * @example + SettingAdapter.method('getFormFields() { + return [ + [ "id", {"label":"ID","type":"hidden"}], + [ "value", {"label":"Value","type":"text","validation":"none"}] + ]; + } + */ + + }, { + key: "getFormFields", + value: function getFormFields() {} + }, { + key: "getTableColumns", + value: function getTableColumns() { + return []; + } + }, { + key: "getTableData", + value: function getTableData() {} + /** + * This can be overridden in module lib.js classes inorder to show a filter form + * @method getFilters + * @example + EmployeeAdapter.method('getFilters() { + return [ + [ "job_title", {"label":"Job Title","type":"select2","allow-null":true,"null-label":"All Job Titles","remote-source":["JobTitle","id","name"]}], + [ "department", {"label":"Department","type":"select2","allow-null":true,"null-label":"All Departments","remote-source":["CompanyStructure","id","title"]}], + [ "supervisor", {"label":"Supervisor","type":"select2","allow-null":true,"null-label":"Anyone","remote-source":["Employee","id","first_name+last_name"]}] + ]; + } + */ + + }, { + key: "getFilters", + value: function getFilters() { + return null; + } + /** + * Show the edit form for an item + * @method edit + * @param id {int} id of the item to edit + */ + + }, { + key: "edit", + value: function edit(id) { + this.currentId = id; + this.getElement(id, []); + } + }, { + key: "copyRow", + value: function copyRow(id) { + this.getElement(id, [], true); + } + }, { + key: "renderModel", + value: function renderModel(id, header, body) { + $("#".concat(id, "ModelBody")).html(''); + + if (body === undefined || body == null) { + body = ''; + } + + $("#".concat(id, "ModelLabel")).html(header); + $("#".concat(id, "ModelBody")).html(body); + } + }, { + key: "renderYesNoModel", + value: function renderYesNoModel(header, body, yesBtnName, noBtnName, callback, callbackParams) { + var that = this; + var modelId = '#yesnoModel'; + + if (body === undefined || body == null) { + body = ''; + } + + $("".concat(modelId, "Label")).html(header); + $("".concat(modelId, "Body")).html(body); + + if (yesBtnName != null) { + $("".concat(modelId, "YesBtn")).html(yesBtnName); + } + + if (noBtnName != null) { + $("".concat(modelId, "NoBtn")).html(noBtnName); + } + + $("".concat(modelId, "YesBtn")).off().on('click', function () { + if (callback !== undefined && callback != null) { + callback.apply(that, callbackParams); + that.cancelYesno(); + } + }); + $(modelId).modal({ + backdrop: 'static' + }); + } + }, { + key: "renderModelFromDom", + value: function renderModelFromDom(id, header, element) { + $("#".concat(id, "ModelBody")).html(''); + + if (element === undefined || element == null) { + element = $('
    '); + } + + $("#".concat(id, "ModelLabel")).html(header); + $("#".concat(id, "ModelBody")).html(''); + $("#".concat(id, "ModelBody")).append(element); + } + /** + * Delete an item + * @method deleteRow + * @param id {int} id of the item to edit + */ + + }, { + key: "deleteRow", + value: function deleteRow(id) { + this.deleteParams.id = id; + this.renderModel('delete', 'Confirm Deletion', 'Are you sure you want to delete this item ?'); + $('#deleteModel').modal('show'); + } + /** + * Show a popup with message + * @method showMessage + * @param title {String} title of the message box + * @param message {String} message + * @param closeCallback {Function} this will be called once the dialog is closed (optional) + * @param closeCallback {Function} data to pass to close callback (optional) + * @param closeCallbackData + * @param isPlain {Boolean} if true buttons are not shown (optional / default = true) + * @example + * this.showMessage("Error Occured while Applying Leave", callBackData); + */ + + }, { + key: "showMessage", + value: function showMessage(title, message) { + var closeCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var closeCallbackData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var isPlain = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; + var that = this; + var modelId = ''; + + if (isPlain) { + modelId = '#plainMessageModel'; + } else { + modelId = '#messageModel'; + } + + $(modelId).off(); + + if (isPlain) { + this.renderModel('plainMessage', title, message); + } else { + this.renderModel('message', title, message); + } + + if (closeCallback !== null && closeCallback !== undefined) { + $(modelId).modal({ + show: true + }); + $(modelId).on('hidden.bs.modal', function () { + closeCallback.apply(that, closeCallbackData); + $('.modal-backdrop').remove(); + }); + } else { + $(modelId).modal({ + backdrop: 'static' + }); + } + } + }, { + key: "showDomElement", + value: function showDomElement(title, element, closeCallback, closeCallbackData, isPlain) { + var that = this; + var modelId = ''; + + if (isPlain) { + modelId = '#dataMessageModel'; + } else { + modelId = '#messageModel'; + } + + $(modelId).unbind('hide'); + + if (isPlain) { + this.renderModelFromDom('dataMessage', title, element); + } else { + this.renderModelFromDom('message', title, element); + } + + if (closeCallback !== null && closeCallback !== undefined) { + $(modelId).modal({ + show: true + }); + $(modelId).on('hidden.bs.modal', function () { + closeCallback.apply(that, closeCallbackData); + $('.modal-backdrop').remove(); + }); + } else { + $(modelId).modal({ + backdrop: 'static' + }); + } + } + }, { + key: "confirmDelete", + value: function confirmDelete() { + if (this.deleteParams.id !== undefined || this.deleteParams.id != null) { + this.deleteObj(this.deleteParams.id, []); + } + + $('#deleteModel').modal('hide'); + } + }, { + key: "cancelDelete", + value: function cancelDelete() { + $('#deleteModel').modal('hide'); + this.deleteParams.id = null; + } + }, { + key: "closeMessage", + value: function closeMessage() { + $('#messageModel').modal('hide'); + } + }, { + key: "cancelYesno", + value: function cancelYesno() { + $('#yesnoModel').modal('hide'); + } + }, { + key: "closePlainMessage", + value: function closePlainMessage() { + $('#plainMessageModel').modal('hide'); + $('#dataMessageModel').modal('hide'); + } + }, { + key: "closeDataMessage", + value: function closeDataMessage() { + $('#dataMessageModel').modal('hide'); + } + /** + * Create or edit an element + * @method save + * @param getFunctionCallBackData {Array} once a success is returned call get() function for this module with these parameters + * @param successCallback {Function} this will get called after success response + */ + + }, { + key: "save", + value: function save(callGetFunction, successCallback) { + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_submit"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + params = this.forceInjectValuesBeforeSave(params); + var msg = this.doCustomValidation(params); + + if (msg == null) { + if (this.csrfRequired) { + params.csrf = $("#".concat(this.getTableName(), "Form")).data('csrf'); + } + + var id = $("#".concat(this.getTableName(), "_submit #id")).val(); + + if (id != null && id !== undefined && id !== '') { + params.id = id; + } + + params = this.makeEmptyDateFieldsNull(params); + this.add(params, [], callGetFunction, successCallback); + } else { + $("#".concat(this.getTableName(), "Form .label")).html(msg); + $("#".concat(this.getTableName(), "Form .label")).show(); + this.scrollToTop(); + } + } + } + }, { + key: "makeEmptyDateFieldsNull", + value: function makeEmptyDateFieldsNull(params) { + var fields = this.getFormFields(); + fields.forEach(function (field) { + if ((field[1].type === 'date' || field[1].type === 'datetime') && (params[field[0]] === '' || params[field[0]] === '0000-00-00' || params[field[0]] === '0000-00-00 00:00:00')) { + if (field[1].validation === 'none') { + params[field[0]] = 'NULL'; + } else { + delete params[field[0]]; + } + } + }); + return params; + } + }, { + key: "validatePassword", + value: function validatePassword(password) { + if (password.length < 8) { + return this.gt('Password too short'); + } + + if (password.length > 30) { + return this.gt('Password too long'); + } + + var numberTester = /.*[0-9]+.*$/; + + if (!password.match(numberTester)) { + return this.gt('Password must include at least one number'); + } + + var lowerTester = /.*[a-z]+.*$/; + + if (!password.match(lowerTester)) { + return this.gt('Password must include at least one lowercase letter'); + } + + var upperTester = /.*[A-Z]+.*$/; + + if (!password.match(upperTester)) { + return this.gt('Password must include at least one uppercase letter'); + } + + var symbolTester = /.*[\W]+.*$/; + + if (!password.match(symbolTester)) { + return this.gt('Password must include at least one symbol'); + } + + return null; + } + /** + * Override this method to inject attitional parameters or modify existing parameters retrived from + * add/edit form before sending to the server + * @method forceInjectValuesBeforeSave + * @param params {Array} keys and values in form + * @returns {Array} modified parameters + */ + + }, { + key: "forceInjectValuesBeforeSave", + value: function forceInjectValuesBeforeSave(params) { + return params; + } + /** + * Override this method to do custom validations at client side + * @method doCustomValidation + * @param params {Array} keys and values in form + * @returns {Null or String} return null if validation success, returns error message if unsuccessful + * @example + EmployeeLeaveAdapter.method('doCustomValidation(params) { + try{ + if(params['date_start'] != params['date_end']){ + var ds = new Date(params['date_start']); + var de = new Date(params['date_end']); + if(de < ds){ + return "Start date should be earlier than end date of the leave period"; + } + } + }catch(e){ + } + return null; + } + */ + // eslint-disable-next-line no-unused-vars + + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + return null; + } + }, { + key: "filterQuery", + value: function filterQuery() { + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_filter"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + + if (this.doCustomFilterValidation(params)) { + // remove null params + for (var prop in params) { + if (params.hasOwnProperty(prop)) { + if (params[prop] === 'NULL') { + delete params[prop]; + } + } + } + + this.setFilter(params); + this.filtersAlreadySet = true; + $("#".concat(this.getTableName(), "_resetFilters")).show(); + this.currentFilterString = this.getFilterString(params); + this.get([]); + this.closePlainMessage(); + } + } + } + }, { + key: "getFilterString", + value: function getFilterString(filters) { + var str = ''; + var rmf; + var source; + var values; + var select2MVal; + var value; + var valueOrig; + var filterFields = this.getFilters(); + + if (values == null) { + values = []; + } + + for (var prop in filters) { + if (filters.hasOwnProperty(prop)) { + values = this.getMetaFieldValues(prop, filterFields); + + if (!values) { + continue; + } + + value = ''; + valueOrig = null; + + if (values.type === 'select' || values.type === 'select2') { + if (values['remote-source'] !== undefined && values['remote-source'] != null) { + rmf = values['remote-source']; + + if (filters[prop] === 'NULL') { + if (values['null-label'] !== undefined && values['null-label'] != null) { + value = values['null-label']; + } else { + value = 'Not Selected'; + } + } else { + var key = "".concat(rmf[0], "_").concat(rmf[1], "_").concat(rmf[2]); + + if (rmf.length > 3) { + key = "".concat(key, "_").concat(rmf[3]); + } //value = this.fieldMasterData[`${rmf[0]}_${rmf[1]}_${rmf[2]}`][filters[prop]]; + + + value = this.fieldMasterData[key][filters[prop]]; + valueOrig = value; + } + } else { + source = values.source[0]; + + if (filters[prop] === 'NULL') { + if (values['null-label'] !== undefined && values['null-label'] != null) { + value = values['null-label']; + } else { + value = 'Not Selected'; + } + } else { + for (var i = 0; i < source.length; i++) { + if (filters[prop] === values.source[i][0]) { + value = values.source[i][1]; + valueOrig = value; + break; + } + } + } + } + } else if (values.type === 'select2multi') { + select2MVal = []; + + try { + select2MVal = JSON.parse(filters[prop]); + } catch (e) {// Do nothing + } + + value = select2MVal.join(','); + + if (value !== '') { + valueOrig = value; + } + } else { + value = filters[prop]; + + if (value !== '') { + valueOrig = value; + } + } + + if (valueOrig != null) { + if (str !== '') { + str += ' | '; + } + + str += "".concat(values.label, " = ").concat(value); + } + } + } + + return str; + } + /** + * Override this method to do custom validations at client side for values selected in filters + * @method doCustomFilterValidation + * @param params {Array} keys and values in form + * @returns {Null or String} return null if validation success, returns error message if unsuccessful + */ + + }, { + key: "doCustomFilterValidation", + value: function doCustomFilterValidation(params) { + return true; + } + /** + * Reset selected filters + * @method resetFilters + */ + + }, { + key: "resetFilters", + value: function resetFilters() { + this.filter = this.origFilter; + this.filtersAlreadySet = false; + $("#".concat(this.getTableName(), "_resetFilters")).hide(); + this.currentFilterString = ''; + this.get([]); + } + }, { + key: "showFilters", + value: function showFilters(object) { + var formHtml = this.templates.filterTemplate; + var html = ''; + var fields = this.getFilters(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_filter")); + formHtml = formHtml.replace(/_fields_/g, html); + var randomFormId = this.generateRandom(14); + var $tempDomObj = $('
    '); + $tempDomObj.attr('id', randomFormId); + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); + tinymce.init({ + selector: "#".concat($tempDomObj.attr('id'), " .tinymce"), + height: '400' + }); + $tempDomObj.find('.simplemde').each(function () { + var simplemde = new SimpleMDE({ + element: $(this)[0] + }); + $(this).data('simplemde', simplemde); // simplemde.value($(this).val()); + }); // $tempDomObj.find('.select2Field').select2(); + + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + /* + $tempDomObj.find('.signatureField').each(function() { + $(this).data('signaturePad',new SignaturePad($(this))); + }); + */ + // var tHtml = $tempDomObj.wrap('
    ').parent().html(); + + this.showDomElement('Edit', $tempDomObj, null, null, true); + $('.filterBtn').off(); + $('.filterBtn').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + + try { + modJs.filterQuery(); + } catch (err) { + console.log(err); + console.log(err.message); + } + + return false; + }); + + if (this.filter !== undefined && this.filter != null && this.filter !== '') { + this.fillForm(this.filter, "#".concat(this.getTableName(), "_filter"), this.getFilters()); + } + } + /** + * Override this method in your module class to make changes to data fo the form before showing the form + * @method preRenderForm + * @param object {Array} keys value list for populating form + */ + + }, { + key: "preRenderForm", + value: function preRenderForm(object) {} + /** + * Create the form + * @method renderForm + * @param object {Array} keys value list for populating form + */ + + }, { + key: "renderForm", + value: function renderForm(object) { + var signatureIds = []; + + if (object == null || object === undefined) { + this.currentId = null; + } + + this.preRenderForm(object); + var formHtml = this.templates.formTemplate; + var html = ''; + var fields = this.getFormFields(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_submit")); + formHtml = formHtml.replace(/_fields_/g, html); + var $tempDomObj; + var randomFormId = this.generateRandom(14); + + if (!this.showFormOnPopup) { + $tempDomObj = $("#".concat(this.getTableName(), "Form")); + } else { + $tempDomObj = $('
    '); + $tempDomObj.attr('id', randomFormId); + } + + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); + tinymce.init({ + selector: "#".concat($tempDomObj.attr('id'), " .tinymce"), + height: '400' + }); + $tempDomObj.find('.simplemde').each(function () { + var simplemde = new SimpleMDE({ + element: $(this)[0] + }); + $(this).data('simplemde', simplemde); // simplemde.value($(this).val()); + }); + var codeMirror = this.codeMirror; + + if (codeMirror) { + $tempDomObj.find('.code').each(function () { + var editor = codeMirror.fromTextArea($(this)[0], { + lineNumbers: false, + matchBrackets: true, + continueComments: 'Enter', + extraKeys: { + 'Ctrl-Q': 'toggleComment' + } + }); + $(this).data('codemirror', editor); + }); + } // $tempDomObj.find('.select2Field').select2(); + + + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + $tempDomObj.find('.signatureField').each(function () { + // $(this).data('signaturePad',new SignaturePad($(this))); + signatureIds.push($(this).attr('id')); + }); + + for (var _i = 0; _i < fields.length; _i++) { + if (fields[_i][1].type === 'datagroup') { + $tempDomObj.find("#".concat(fields[_i][0])).data('field', fields[_i]); + } + } + + if (this.showSave === false) { + $tempDomObj.find('.saveBtn').remove(); + } else { + $tempDomObj.find('.saveBtn').off(); + $tempDomObj.find('.saveBtn').data('modJs', this); + $tempDomObj.find('.saveBtn').on('click', function () { + if ($(this).data('modJs').saveSuccessItemCallback != null && $(this).data('modJs').saveSuccessItemCallback !== undefined) { + $(this).data('modJs').save($(this).data('modJs').retriveItemsAfterSave(), $(this).data('modJs').saveSuccessItemCallback); + } else { + $(this).data('modJs').save(); + } + + return false; + }); + } + + if (this.showCancel === false) { + $tempDomObj.find('.cancelBtn').remove(); + } else { + $tempDomObj.find('.cancelBtn').off(); + $tempDomObj.find('.cancelBtn').data('modJs', this); + $tempDomObj.find('.cancelBtn').on('click', function () { + $(this).data('modJs').cancel(); + return false; + }); + } // Input mask + + + $tempDomObj.find('[mask]').each(function () { + $(this).inputmask($(this).attr('mask')); + }); + $tempDomObj.find('[datemask]').each(function () { + $(this).inputmask({ + mask: 'y-1-2', + placeholder: 'YYYY-MM-DD', + leapday: '-02-29', + separator: '-', + alias: 'yyyy/mm/dd' + }); + }); + $tempDomObj.find('[datetimemask]').each(function () { + $(this).inputmask('datetime', { + mask: 'y-2-1 h:s:00', + placeholder: 'YYYY-MM-DD hh:mm:ss', + leapday: '-02-29', + separator: '-', + alias: 'yyyy/mm/dd' + }); + }); + + if (!this.showFormOnPopup) { + $("#".concat(this.getTableName(), "Form")).show(); + $("#".concat(this.getTableName())).hide(); + + for (var _i2 = 0; _i2 < signatureIds.length; _i2++) { + $("#".concat(signatureIds[_i2])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i2]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object); + } else { + this.setDefaultValues(); + } + + this.scrollToTop(); + } else { + // var tHtml = $tempDomObj.wrap('
    ').parent().html(); + // this.showMessage("Edit",tHtml,null,null,true); + this.showMessage('Edit', '', null, null, true); + $('#plainMessageModel .modal-body').html(''); + $('#plainMessageModel .modal-body').append($tempDomObj); + + for (var _i3 = 0; _i3 < signatureIds.length; _i3++) { + $("#".concat(signatureIds[_i3])).data('signaturePad', new SignaturePad(document.getElementById(signatureIds[_i3]))); + } + + if (object !== undefined && object != null) { + this.fillForm(object, "#".concat(randomFormId)); + } else { + this.setDefaultValues("#".concat(randomFormId)); + } + } + + this.postRenderForm(object, $tempDomObj); + } + }, { + key: "setDefaultValues", + value: function setDefaultValues(formId, fields) { + if (fields == null || fields === undefined) { + fields = this.getFormFields(); + } + + if (formId == null || formId === undefined || formId === '') { + formId = "#".concat(this.getTableName(), "Form"); + } + + for (var i = 0; i < fields.length; i++) { + if (fields[i][1].type !== 'text' && fields[i][1].type !== 'textarea') { + continue; + } + + if (fields[i][1]["default"] !== undefined && fields[i][1]["default"] !== null) { + $("".concat(formId, " #").concat(fields[i][0])).val(fields[i][1]["default"]); + } + } + } + }, { + key: "retriveItemsAfterSave", + value: function retriveItemsAfterSave() { + return true; + } + /** + * Override this method in your module class to make changes to data fo the form after showing it + * @method postRenderForm + * @param object {Array} keys value list for populating form + * @param $tempDomObj {DOM} a DOM element for the form + * @example + * UserAdapter.method('postRenderForm(object, $tempDomObj) { + if(object == null || object == undefined){ + $tempDomObj.find("#changePasswordBtn").remove(); + } + } + */ + + }, { + key: "postRenderForm", + value: function postRenderForm(object, $tempDomObj) {} + /** + * Convert data group field to HTML + * @method dataGroupToHtml + * @param val {String} value in the field + * @param field {Array} field meta data + */ + + }, { + key: "dataGroupToHtml", + value: function dataGroupToHtml(val, field) { + var data = JSON.parse(val); + var t; + var sortFunction; + var item; + var itemHtml; + var itemVal; + var deleteButton = '
  • '; + var editButton = '
  • '; + var template = field[1].html; + + if (data != null && data !== undefined && field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) { + data.sort(field[1]['sort-function']); + } + + var html = $("
    ")); + + for (var i = 0; i < data.length; i++) { + item = data[i]; + + if (field[1]['pre-format-function'] !== undefined && field[1]['pre-format-function'] != null) { + item = field[1]['pre-format-function'].apply(this, [item]); + } + + t = template; + t = t.replace('#_delete_#', deleteButton); + t = t.replace('#_edit_#', editButton); + t = t.replace(/#_id_#/g, item.id); + + for (var key in item) { + itemVal = item[key]; + + if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') { + itemVal = itemVal.replace(/(?:\r\n|\r|\n)/g, '
    '); + } + + t = t.replace("#_".concat(key, "_#"), itemVal); + } + + if (field[1].render !== undefined && field[1].render != null) { + t = t.replace('#_renderFunction_#', field[1].render(item)); + } + + itemHtml = $(t); + itemHtml.attr('fieldId', "".concat(field[0], "_div")); + html.append(itemHtml); + } + + return html; + } + /** + * Reset the DataGroup for a given field + * @method resetDataGroup + * @param field {Array} field meta data + */ + + }, { + key: "resetDataGroup", + value: function resetDataGroup(field) { + $("#".concat(field[0])).val(''); + $("#".concat(field[0], "_div")).html(''); + } + }, { + key: "showDataGroup", + value: function showDataGroup(field, object, callback) { + var formHtml = this.templates.datagroupTemplate; + var html = ''; + var fields = field[1].form; + + if (object !== undefined && object != null && object.id !== undefined) { + this.currentDataGroupItemId = object.id; + } else { + this.currentDataGroupItemId = null; + } + + for (var i = 0; i < fields.length; i++) { + html += this.renderFormField(fields[i]); + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_field_").concat(field[0])); + formHtml = formHtml.replace(/_fields_/g, html); + var randomFormId = this.generateRandom(14); + var $tempDomObj = $('
    '); + $tempDomObj.attr('id', randomFormId); + $tempDomObj.html(formHtml); + $tempDomObj.find('.datefield').datepicker({ + viewMode: 2 + }); + $tempDomObj.find('.timefield').datetimepicker({ + language: 'en', + pickDate: false + }); + $tempDomObj.find('.datetimefield').datetimepicker({ + language: 'en' + }); + $tempDomObj.find('.colorpick').colorpicker(); + tinymce.init({ + selector: "#".concat($tempDomObj.attr('id'), " .tinymce"), + height: '400' + }); + $tempDomObj.find('.simplemde').each(function () { + var simplemde = new SimpleMDE({ + element: $(this)[0] + }); + $(this).data('simplemde', simplemde); // simplemde.value($(this).val()); + }); + $tempDomObj.find('.select2Field').each(function () { + $(this).select2().select2('val', $(this).find('option:eq(0)').val()); + }); + $tempDomObj.find('.select2Multi').each(function () { + $(this).select2().on('change', function (e) { + var parentRow = $(this).parents('.row'); + var height = parentRow.find('.select2-choices').height(); + parentRow.height(parseInt(height, 10)); + }); + }); + this.currentDataGroupField = field; + this.showDomElement("Add ".concat(field[1].label), $tempDomObj, null, null, true); + + if (object !== undefined && object != null) { + this.fillForm(object, "#".concat(this.getTableName(), "_field_").concat(field[0]), field[1].form); + } else { + this.setDefaultValues("#".concat(this.getTableName(), "_field_").concat(field[0]), field[1].form); + } + + $('.groupAddBtn').off(); + + if (object !== undefined && object != null && object.id !== undefined) { + $('.groupAddBtn').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + + try { + modJs.editDataGroup(callback); + } catch (err) { + console.log("Error editing data group: ".concat(err.message)); + } + + return false; + }); + } else { + $('.groupAddBtn').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + + try { + modJs.addDataGroup(callback); + } catch (err) { + console.log("Error adding data group: ".concat(err.message)); + } + + return false; + }); + } + } + }, { + key: "addDataGroup", + value: function addDataGroup(callback, existingData) { + var field = this.currentDataGroupField; + var tempParams; + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).html(''); + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).hide(); + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_field_").concat(field[0]), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + + if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) { + tempParams = field[1]['custom-validate-function'].apply(this, [params]); + + if (tempParams.valid) { + params = tempParams.params; + } else { + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).html(tempParams.message); + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).show(); + return false; + } + } + + var val = '[]'; + + if (existingData) { + val = existingData; + } else { + val = $("#".concat(field[0])).val(); + + if (val === '' || val == null) { + val = '[]'; + } + } + + var data = JSON.parse(val); + params.id = "".concat(field[0], "_").concat(this.dataGroupGetNextAutoIncrementId(data)); + data.push(params); + + if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) { + data.sort(field[1]['sort-function']); + } + + val = JSON.stringify(data); + var html = this.dataGroupToHtml(val, field); + + if (callback) { + callback(val); + } + + $("#".concat(field[0], "_div")).html(''); + $("#".concat(field[0], "_div")).append(html); + this.makeDataGroupSortable(field, $("#".concat(field[0], "_div_inner"))); + $("#".concat(field[0])).val(val); + this.orderDataGroup(field); + this.closeDataMessage(); + this.showMessage('Item Added', 'This change will be effective only when you save the form'); + } + + return true; + } + }, { + key: "nl2br", + value: function nl2br(str, len) { + var t = ''; + + try { + var arr = str.split(' '); + var count = 0; + + for (var i = 0; i < arr.length; i++) { + count += arr[i].length + 1; + + if (count > len) { + t += "".concat(arr[i], "
    "); + count = 0; + } else { + t += "".concat(arr[i], " "); + } + } + } catch (e) {// Do nothing + } + + return t; + } + }, { + key: "makeDataGroupSortable", + value: function makeDataGroupSortable(field, obj) { + obj.data('field', field); + obj.data('firstSort', true); + obj.sortable({ + create: function create() { + $(this).height($(this).height()); + }, + 'ui-floating': false, + start: function start(e, uiStart) { + $('#sortable-ul-selector-id').sortable({ + sort: function sort(event, ui) { + var $target = $(event.target); + + if (!/html|body/i.test($target.offsetParent()[0].tagName)) { + var top = event.pageY - $target.offsetParent().offset().top - ui.helper.outerHeight(true) / 2; + ui.helper.css({ + top: "".concat(top, "px") + }); + } + } + }); + }, + revert: true, + stop: function stop() { + modJs.orderDataGroup($(this).data('field')); + }, + axis: 'y', + scroll: false, + placeholder: 'sortable-placeholder', + cursor: 'move' + }); + } + }, { + key: "orderDataGroup", + value: function orderDataGroup(field, callback) { + var newArr = []; + var id; + var list = $("#".concat(field[0], "_div_inner [fieldid='").concat(field[0], "_div']")); + var val = $("#".concat(field[0])).val(); + + if (val === '' || val == null) { + val = '[]'; + } + + var data = JSON.parse(val); + list.each(function () { + id = $(this).attr('id'); + + for (var index in data) { + if (data[index].id === id) { + newArr.push(data[index]); + break; + } + } + }); + $("#".concat(field[0])).val(JSON.stringify(newArr)); + + if (callback != null) { + callback(newArr); + } + } + }, { + key: "editDataGroup", + value: function editDataGroup(callback, existingData) { + var field = this.currentDataGroupField; + var id = this.currentDataGroupItemId; + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_field_").concat(field[0]), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + + if (field[1]['custom-validate-function'] !== undefined && field[1]['custom-validate-function'] != null) { + var tempParams = field[1]['custom-validate-function'].apply(this, [params]); + + if (tempParams.valid) { + params = tempParams.params; + } else { + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).html(tempParams.message); + $("#".concat(this.getTableName(), "_field_").concat(field[0], "_error")).show(); + return false; + } + } + + if (this.doCustomFilterValidation(params)) { + var val = '[]'; + + if (existingData) { + val = existingData; + } else { + val = $("#".concat(field[0])).val(); + + if (val === '' || val == null) { + val = '[]'; + } + } + + var data = JSON.parse(val); + var editVal = {}; + var editValIndex = -1; + var newVals = []; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === id) { + editVal = item; + editValIndex = i; + } + + newVals.push(item); + } + + params.id = editVal.id; + newVals[editValIndex] = params; + + if (field[1]['sort-function'] !== undefined && field[1]['sort-function'] != null) { + newVals.sort(field[1]['sort-function']); + } + + val = JSON.stringify(newVals); + $("#".concat(field[0])).val(val); + var html = this.dataGroupToHtml(val, field); + + if (callback) { + callback(newVals); + } + + this.orderDataGroup(field); + $("#".concat(field[0], "_div")).html(''); + $("#".concat(field[0], "_div")).append(html); + this.makeDataGroupSortable(field, $("#".concat(field[0], "_div_inner"))); + this.closeDataMessage(); + this.showMessage('Item Edited', 'This change will be effective only when you save the form'); + } + } + + return true; + } + }, { + key: "editDataGroupItem", + value: function editDataGroupItem(id, existingData, field) { + var fieldId = id.substring(0, id.lastIndexOf('_')); + var val; + + if (existingData) { + val = decodeURI(existingData); + } else { + val = $("#".concat(fieldId)).val(); + } + + var data = JSON.parse(val); + var editVal = {}; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === id) { + editVal = item; + } + } + + if (field) { + field = JSON.parse(decodeURI(field)); + } else { + field = $("#".concat(fieldId)).data('field'); + } + + this.showDataGroup(field, editVal); + } + }, { + key: "dataGroupGetNextAutoIncrementId", + value: function dataGroupGetNextAutoIncrementId(data) { + var autoId = 1; + var id; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === undefined || item.id == null) { + item.id = 1; + } + + id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length); + + if (id >= autoId) { + autoId = parseInt(id, 10) + 1; + } + } + + return autoId; + } + }, { + key: "deleteDataGroupItem", + value: function deleteDataGroupItem(id, existingData) { + var fieldId = id.substring(0, id.lastIndexOf('_')); + var val; + + if (existingData) { + val = decodeURI(existingData); + } else { + val = $("#".concat(fieldId)).val(); + } + + var data = JSON.parse(val); + var newVal = []; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id !== id) { + newVal.push(item); + } + } + + $("#".concat(fieldId)).val(JSON.stringify(newVal)); + $("#".concat(id)).remove(); + this.showMessage('Item Removed', 'Item removed. This change will be effective only when you save the form'); + } + /** + * Fill a form with required values after showing it + * @method fillForm + * @param object {Array} form data + * @param formId {String} id of the form + * @param formId {Array} field meta data + */ + + }, { + key: "fillForm", + value: function fillForm(object, formId, fields) { + var placeHolderVal; + + if (fields == null || fields === undefined) { + fields = this.getFormFields(); + } + + if (formId == null || formId === undefined || formId === '') { + formId = "#".concat(this.getTableName(), "Form"); + } + + for (var i = 0; i < fields.length; i++) { + if (fields[i][1].type === 'date') { + if (object[fields[i][0]] !== '0000-00-00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) { + $("".concat(formId, " #").concat(fields[i][0], "_date")).datepicker('setValue', object[fields[i][0]]); + } + } else if (fields[i][1].type === 'colorpick') { + if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined) { + $("".concat(formId, " #").concat(fields[i][0], "_colorpick")).colorpicker('setValue', object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + } + } else if (fields[i][1].type === 'datetime' || fields[i][1].type === 'time') { + if (object[fields[i][0]] !== '0000-00-00 00:00:00' && object[fields[i][0]] !== '' && object[fields[i][0]] != null && object[fields[i][0]] !== undefined) { + var tempDate = object[fields[i][0]]; + var arr = tempDate.split(' '); + var dateArr = arr[0].split('-'); + var timeArr = arr[1].split(':'); + $("".concat(formId, " #").concat(fields[i][0], "_datetime")).data('datetimepicker').setLocalDate(new Date(dateArr[0], parseInt(dateArr[1], 10) - 1, dateArr[2], timeArr[0], timeArr[1], timeArr[2])); + } + } else if (fields[i][1].type === 'label') { + $("".concat(formId, " #").concat(fields[i][0])).html(object[fields[i][0]]); + } else if (fields[i][1].type === 'placeholder') { + if (fields[i][1]['remote-source'] !== undefined && fields[i][1]['remote-source'] != null) { + //const key = `${fields[i][1]['remote-source'][0]}_${fields[i][1]['remote-source'][1]}_${fields[i][1]['remote-source'][2]}`; + var key = this.getRemoteSourceKey(fields[i]); + placeHolderVal = this.fieldMasterData[key][object[fields[i][0]]]; + } else { + placeHolderVal = object[fields[i][0]]; + } + + if (placeHolderVal === undefined || placeHolderVal == null) { + placeHolderVal = ''; + } else { + try { + placeHolderVal = placeHolderVal.replace(/(?:\r\n|\r|\n)/g, '
    '); + } catch (e) {// Do nothing + } + } + + if (fields[i][1].formatter !== undefined && fields[i][1].formatter && $.isFunction(fields[i][1].formatter)) { + try { + placeHolderVal = fields[i][1].formatter(placeHolderVal); + } catch (e) {// Do nothing + } + } + + $("".concat(formId, " #").concat(fields[i][0])).html(placeHolderVal); + } else if (fields[i][1].type === 'fileupload') { + if (object[fields[i][0]] != null && object[fields[i][0]] !== undefined && object[fields[i][0]] !== '') { + $("".concat(formId, " #").concat(fields[i][0])).html(object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0])).attr('val', object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0])).show(); + $("".concat(formId, " #").concat(fields[i][0], "_download")).show(); + $("".concat(formId, " #").concat(fields[i][0], "_remove")).show(); + } + + if (fields[i][1].readonly === true) { + $("".concat(formId, " #").concat(fields[i][0], "_upload")).remove(); + } + } else if (fields[i][1].type === 'select') { + if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') { + object[fields[i][0]] = 'NULL'; + } + + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + } else if (fields[i][1].type === 'select2') { + if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') { + object[fields[i][0]] = 'NULL'; + } + + $("".concat(formId, " #").concat(fields[i][0])).select2('val', object[fields[i][0]]); + } else if (fields[i][1].type === 'select2multi') { + // TODO - SM + if (object[fields[i][0]] === undefined || object[fields[i][0]] == null || object[fields[i][0]] === '') { + object[fields[i][0]] = 'NULL'; + } + + var msVal = []; + + if (object[fields[i][0]] !== undefined && object[fields[i][0]] != null && object[fields[i][0]] !== '') { + try { + msVal = JSON.parse(object[fields[i][0]]); + } catch (e) {// Do nothing + } + } + + $("".concat(formId, " #").concat(fields[i][0])).select2('val', msVal); + var select2Height = $("".concat(formId, " #").concat(fields[i][0])).find('.select2-choices').height(); + $("".concat(formId, " #").concat(fields[i][0])).find('.controls').css('min-height', "".concat(select2Height, "px")); + $("".concat(formId, " #").concat(fields[i][0])).css('min-height', "".concat(select2Height, "px")); + } else if (fields[i][1].type === 'datagroup') { + try { + var html = this.dataGroupToHtml(object[fields[i][0]], fields[i]); + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + $("".concat(formId, " #").concat(fields[i][0], "_div")).html(''); + $("".concat(formId, " #").concat(fields[i][0], "_div")).append(html); + this.makeDataGroupSortable(fields[i], $("".concat(formId, " #").concat(fields[i][0], "_div_inner"))); + } catch (e) {// Do nothing + } + } else if (fields[i][1].type === 'signature') { + if (object[fields[i][0]] !== '' || object[fields[i][0]] !== undefined || object[fields[i][0]] != null) { + $("".concat(formId, " #").concat(fields[i][0])).data('signaturePad').fromDataURL(object[fields[i][0]]); + } + } else if (fields[i][1].type === 'simplemde') { + $("".concat(formId, " #").concat(fields[i][0])).data('simplemde').value(object[fields[i][0]]); + } else if (fields[i][1].type === 'code') { + var cm = $("".concat(formId, " #").concat(fields[i][0])).data('codemirror'); + + if (cm) { + cm.getDoc().setValue(object[fields[i][0]]); + } + } else { + $("".concat(formId, " #").concat(fields[i][0])).val(object[fields[i][0]]); + } + } + } + /** + * Cancel edit or add new on modules + * @method cancel + */ + + }, { + key: "cancel", + value: function cancel() { + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + } + }, { + key: "renderFormField", + value: function renderFormField(field) { + var userId = 0; + + if (this.fieldTemplates[field[1].type] === undefined || this.fieldTemplates[field[1].type] == null) { + return ''; + } + + var t = this.fieldTemplates[field[1].type]; + field[1].label = this.gt(field[1].label); + + if (field[1].validation !== 'none' && field[1].validation !== 'emailOrEmpty' && field[1].validation !== 'numberOrEmpty' && field[1].type !== 'placeholder' && field[1].label.indexOf('*') < 0) { + var tempSelectBoxes = ['select', 'select2']; + + if (!(tempSelectBoxes.indexOf(field[1].type) >= 0 && field[1]['allow-null'] === true)) { + field[1].label = "".concat(field[1].label, "*"); + } + } + + if (field[1].type === 'select' || field[1].type === 'select2' || field[1].type === 'select2multi') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + + if (field[1].source !== undefined && field[1].source != null) { + t = t.replace('_options_', this.renderFormSelectOptions(field[1].source, field)); + } else if (field[1]['remote-source'] !== undefined && field[1]['remote-source'] != null) { + // let key = `${field[1]['remote-source'][0]}_${field[1]['remote-source'][1]}_${field[1]['remote-source'][2]}`; + // if (field[1]['remote-source'].length === 4) { + // key = `${key}_${field[1]['remote-source'][3]}`; + // } + var key = this.getRemoteSourceKey(field); + t = t.replace('_options_', this.renderFormSelectOptionsRemote(this.fieldMasterData[key], field)); + } + } else if (field[1].type === 'colorpick') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'date') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'datetime') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'time') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'fileupload') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + var ce = this.getCurrentProfile(); + + if (ce != null && ce !== undefined) { + userId = ce.id; + } else { + userId = this.getUser().id * -1; + } + + t = t.replace(/_userId_/g, userId); + t = t.replace(/_group_/g, this.tab); + + if (field[1].filetypes !== undefined && field[1].filetypes != null) { + t = t.replace(/_filetypes_/g, field[1].filetypes); + } else { + t = t.replace(/_filetypes_/g, 'all'); + } + + t = t.replace(/_rand_/g, this.generateRandom(14)); + } else if (field[1].type === 'datagroup') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'signature') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else if (field[1].type === 'tinymce' || field[1].type === 'simplemde') { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } else { + t = t.replace(/_id_/g, field[0]); + t = t.replace(/_label_/g, field[1].label); + } + + if (field[1].validation !== undefined && field[1].validation != null && field[1].validation !== '') { + t = t.replace(/_validation_/g, "validation=\"".concat(field[1].validation, "\"")); + } else { + t = t.replace(/_validation_/g, ''); + } + + if (field[1].help !== undefined && field[1].help !== null) { + t = t.replace(/_helpline_/g, field[1].help); + t = t.replace(/_hidden_class_help_/g, ''); + } else { + t = t.replace(/_helpline_/g, ''); + t = t.replace(/_hidden_class_help_/g, 'hide'); + } + + if (field[1].placeholder !== undefined && field[1].placeholder !== null) { + t = t.replace(/_placeholder_/g, "placeholder=\"".concat(field[1].placeholder, "\"")); + } else { + t = t.replace(/_placeholder_/g, ''); + } + + if (field[1].mask !== undefined && field[1].mask !== null) { + t = t.replace(/_mask_/g, "mask=\"".concat(field[1].mask, "\"")); + } else { + t = t.replace(/_mask_/g, ''); + } + + return t; + } + }, { + key: "renderFormSelectOptions", + value: function renderFormSelectOptions(options, field) { + var html = ''; + + if (field != null && field !== undefined) { + if (field[1]['allow-null'] === true) { + if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) { + html += ""); + } else { + html += ''; + } + } + } // Sort options + + + var tuples = []; + + for (var key in options) { + tuples.push(options[key]); + } + + if (field[1].sort === true) { + tuples.sort(function (a, b) { + a = a[1]; + b = b[1]; // eslint-disable-next-line no-nested-ternary + + return a < b ? -1 : a > b ? 1 : 0; + }); + } + + for (var i = 0; i < tuples.length; i++) { + var prop = tuples[i][0]; + var value = tuples[i][1]; + var t = ''; + t = t.replace('_id_', prop); + t = t.replace('_val_', this.gt(value)); + html += t; + } + + return html; + } + }, { + key: "renderFormSelectOptionsRemote", + value: function renderFormSelectOptionsRemote(options, field) { + var html = ''; + + if (field[1]['allow-null'] === true) { + if (field[1]['null-label'] !== undefined && field[1]['null-label'] != null) { + html += ""); + } else { + html += ''; + } + } // Sort options + + + var tuples = []; + + for (var key in options) { + tuples.push([key, options[key]]); + } + + if (field[1].sort === 'true') { + tuples.sort(function (a, b) { + a = a[1]; + b = b[1]; // eslint-disable-next-line no-nested-ternary + + return a < b ? -1 : a > b ? 1 : 0; + }); + } + + for (var i = 0; i < tuples.length; i++) { + var prop = tuples[i][0]; + var value = tuples[i][1]; + var t = ''; + t = t.replace('_id_', prop); + t = t.replace('_val_', this.gt(value)); + html += t; + } + + return html; + } + }, { + key: "setCustomTemplates", + value: function setCustomTemplates(templates) { + this.customTemplates = templates; + } + }, { + key: "setEmailTemplates", + value: function setEmailTemplates(templates) { + this.emailTemplates = templates; + } + }, { + key: "getCustomTemplate", + value: function getCustomTemplate(file) { + return this.customTemplates[file]; + } + }, { + key: "setFieldTemplates", + value: function setFieldTemplates(templates) { + this.fieldTemplates = templates; + } + }, { + key: "getMetaFieldForRendering", + value: function getMetaFieldForRendering(fieldName) { + return ''; + } + }, { + key: "clearDeleteParams", + value: function clearDeleteParams() { + this.deleteParams = {}; + } + }, { + key: "getShowAddNew", + value: function getShowAddNew() { + return this.showAddNew; + } + /** + * Override this method to change add new button label + * @method getAddNewLabel + */ + + }, { + key: "getAddNewLabel", + value: function getAddNewLabel() { + return 'Add New'; + } + /** + * Used to set whether to show the add new button for a module + * @method setShowAddNew + * @param showAddNew {Boolean} value + */ + + }, { + key: "setShowAddNew", + value: function setShowAddNew(showAddNew) { + this.showAddNew = showAddNew; + } + /** + * Used to set whether to show delete button for each entry in module + * @method setShowDelete + * @param val {Boolean} value + */ + + }, { + key: "setShowDelete", + value: function setShowDelete(val) { + this.showDelete = val; + } + /** + * Used to set whether to show edit button for each entry in module + * @method setShowEdit + * @param val {Boolean} value + */ + + }, { + key: "setShowEdit", + value: function setShowEdit(val) { + this.showEdit = val; + } + /** + * Used to set whether to show save button in form + * @method setShowSave + * @param val {Boolean} value + */ + + }, { + key: "setShowSave", + value: function setShowSave(val) { + this.showSave = val; + } + /** + * Used to set whether to show cancel button in form + * @method setShowCancel + * @param val {Boolean} value + */ + + }, { + key: "setShowCancel", + value: function setShowCancel(val) { + this.showCancel = val; + } + /** + * Datatable option array will be extended with associative array provided here + * @method getCustomTableParams + * @param val {Boolean} value + */ + + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + return {}; + } + }, { + key: "getActionButtons", + value: function getActionButtons(obj) { + return modJs.getActionButtonsHtml(obj.aData[0], obj.aData); + } + /** + * This return html for action buttons in each row. Override this method if you need to make changes to action buttons. + * @method getActionButtonsHtml + * @param id {int} id of the row + * @param data {Array} data for the row + * @returns {String} html for action buttons + */ + + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = ''; + var deleteButton = ''; + var cloneButton = ''; + var html = '
    _edit__delete__clone_
    '; + + if (this.showAddNew) { + html = html.replace('_clone_', cloneButton); + } else { + html = html.replace('_clone_', ''); + } + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + /** + * Generates a random string + * @method generateRandom + * @param length {int} required length of the string + * @returns {String} random string + */ + + }, { + key: "generateRandom", + value: function generateRandom(length) { + var d = new Date(); + var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var result = ''; + + for (var i = length; i > 0; --i) { + result += chars[Math.round(Math.random() * (chars.length - 1))]; + } + + return result + d.getTime(); + } + }, { + key: "checkFileType", + value: function checkFileType(elementName, fileTypes) { + var fileElement = document.getElementById(elementName); + var fileExtension = ''; + + if (fileElement.value.lastIndexOf('.') > 0) { + fileExtension = fileElement.value.substring(fileElement.value.lastIndexOf('.') + 1, fileElement.value.length); + } + + fileExtension = fileExtension.toLowerCase(); + var allowed = fileTypes.split(','); + + if (allowed.indexOf(fileExtension) < 0) { + fileElement.value = ''; + this.showMessage('File Type Error', 'Selected file type is not supported'); + this.clearFileElement(elementName); + return false; + } + + return true; + } + }, { + key: "clearFileElement", + value: function clearFileElement(elementName) { + var control = $("#".concat(elementName)); + control.replaceWith(control = control.val('').clone(true)); + } + }, { + key: "fixJSON", + value: function fixJSON(json) { + if (this.noJSONRequests === '1') { + json = window.btoa(json); + } + + return json; + } + }, { + key: "getClientDate", + value: function getClientDate(date) { + var offset = this.getClientGMTOffset(); + var tzDate = date.addMinutes(offset * 60); + return tzDate; + } + }, { + key: "getClientGMTOffset", + value: function getClientGMTOffset() { + var rightNow = new Date(); + var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0); + var temp = jan1.toGMTString(); + var jan2 = new Date(temp.substring(0, temp.lastIndexOf(' ') - 1)); + return (jan1 - jan2) / (1000 * 60 * 60); + } + /** + * Override this method in a module to provide the help link for the module. Help link of the module on frontend will get updated with this. + * @method getHelpLink + * @returns {String} help link + */ + + }, { + key: "getHelpLink", + value: function getHelpLink() { + return null; + } + }, { + key: "showLoader", + value: function showLoader() { + $('#iceloader').show(); + } + }, { + key: "hideLoader", + value: function hideLoader() { + $('#iceloader').hide(); + } + }, { + key: "generateOptions", + value: function generateOptions(data) { + var template = ''; + var options = ''; + + for (var index in data) { + options += template.replace('__val__', index).replace('__text__', data[index]); + } + + return options; + } + }, { + key: "isModuleInstalled", + value: function isModuleInstalled(type, name) { + if (modulesInstalled === undefined || modulesInstalled === null) { + return false; + } + + return modulesInstalled["".concat(type, "_").concat(name)] === 1; + } + }, { + key: "setCustomFields", + value: function setCustomFields(fields) { + var field; + var parsed; + + for (var i = 0; i < fields.length; i++) { + field = fields[i]; + + if (field.display !== 'Hidden' && field.data !== '' && field.data !== undefined) { + try { + parsed = JSON.parse(field.data); + + if (parsed === undefined || parsed == null) { + continue; + } else if (parsed.length !== 2) { + continue; + } else if (parsed[1].type === undefined || parsed[1].type == null) { + continue; + } + + this.customFields.push(parsed); + } catch (e) {// Do nothing + } + } + } + } + }, { + key: "addCustomFields", + value: function addCustomFields(fields) { + for (var i = 0; i < this.customFields.length; i++) { + fields.push(this.customFields[i]); + } + + return fields; + } + }, { + key: "getImageUrlFromName", + value: function getImageUrlFromName(firstName, lastName) { + var seed = firstName.substring(0, 1); + + if (!lastName && lastName.length > 0) { + seed += firstName.substring(firstName.length - 1, 1); + } else { + seed += lastName.substring(0, 1); + } + + var arr = "".concat(firstName).concat(lastName).split(''); + seed += arr.reduce(function (acc, item) { + return parseInt(item.charCodeAt(0), 10) + acc; + }, 0); + return "https://avatars.dicebear.com/api/initials/:".concat(seed, ".svg"); + } + }]); + + return ModuleBase; +}(); + +var _default = ModuleBase; +exports["default"] = _default; + +},{"./FormValidation":44}],49:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * ObjectAdapter + */ +var ObjectAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(ObjectAdapter, _AdapterBase); + + var _super = _createSuper(ObjectAdapter); + + function ObjectAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ObjectAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.container = null; + _this.loadMoreButton = null; + _this.start = 0; + _this.pageSize = 6; + _this.currentPage = 1; + _this.hasMoreData = true; + _this.searchTerm = ''; + _this.searchInput = null; + return _this; + } + + _createClass(ObjectAdapter, [{ + key: "getObjectHTML", + value: function getObjectHTML(object) { + var template = this.getCustomTemplate(this.getTemplateName()); + var t = template; + + for (var index in object) { + t = t.replace(new RegExp("#_".concat(index, "_#"), 'g'), object[index]); + } + + return t; + } + }, { + key: "setPageSize", + value: function setPageSize(pageSize) { + this.pageSize = pageSize; + } + }, { + key: "addDomEvents", + value: function addDomEvents(object) {} + }, { + key: "getTemplateName", + value: function getTemplateName() { + return ''; + } + }, { + key: "renderObject", + value: function renderObject(object) { + var objDom = this.getObjectDom(object.id); + var html = this.getObjectHTML(object); + var domObj = $(html); + + if (objDom !== undefined && objDom != null) { + objDom.replace(domObj); + } else { + this.container.append(domObj); + } + + this.addDomEvents(domObj); + } + }, { + key: "setContainer", + value: function setContainer(container) { + this.container = container; + } + }, { + key: "setLoadMoreButton", + value: function setLoadMoreButton(loadMoreButton) { + var that = this; + this.loadMoreButton = loadMoreButton; + this.loadMoreButton.off().on('click', function () { + that.loadMoreButton.attr('disabled', 'disabled'); + that.loadMore([]); + }); + } + }, { + key: "showLoadError", + value: function showLoadError(msg) { + $("#".concat(this.getTableName(), "_error")).html(msg); + $("#".concat(this.getTableName(), "_error")).show(); + } + }, { + key: "hideLoadError", + value: function hideLoadError() { + $("#".concat(this.getTableName(), "_error")).hide(); + } + }, { + key: "setSearchBox", + value: function setSearchBox(searchInput) { + var that = this; + this.searchInput = searchInput; + this.searchInput.off(); + this.searchInput.keydown(function (event) { + var val = $(this).val(); + + if (event.which === 13) { + event.preventDefault(); + that.search([]); + } else if ((event.which === 8 || event.which === 46) && val.length === 1 && that.searchTerm !== '') { + that.search([]); + } + }); + } + }, { + key: "getObjectDom", + value: function getObjectDom(id) { + var obj = this.container.find("#obj_".concat(id)); + + if (obj.length) { + return obj; + } + + return null; + } + }, { + key: "loadMore", + value: function loadMore(callBackData) { + if (!this.hasMoreData) { + return; + } + + this.currentPage++; + this.get(callBackData, true); + } + }, { + key: "get", + value: function get(callBackData, loadMore) { + var that = this; + this.hideLoadError(); + + if (!loadMore) { + this.currentPage = 1; + + if (this.container != null) { + this.container.html(''); + } + + this.hasMoreData = true; + this.tableData = []; + } + + this.start = (this.currentPage - 1) * this.pageSize; + this.container = $("#".concat(this.getTableName())).find('.objectList'); + that.showLoader(); + var url = "".concat(this.getDataUrl(that.getDataMapping()), "&iDisplayStart=").concat(this.start, "&iDisplayLength=").concat(this.pageSize, "&objects=1"); + + if (this.searchTerm !== '' && this.searchTerm !== undefined && this.searchTerm != null) { + url += "&sSearch=".concat(this.searchTerm); + } + + $.post(url, function (data) { + that.getSuccessCallBack(callBackData, data); + }, 'json').always(function () { + that.hideLoader(); + }); + that.initFieldMasterData(); + this.trackEvent('get', this.tab, this.table); + } + }, { + key: "search", + value: function search(callBackData) { + var that = this; + this.searchTerm = $("#".concat(this.getTableName(), "_search")).val(); + this.get(callBackData); + } + }, { + key: "getSuccessCallBack", + value: function getSuccessCallBack(callBackData, serverData) { + var data = []; + + if (serverData.length === 0 && this.container.html() === '') { + this.showLoadError('No Results Found !!!'); + return; + } + + try { + if (this.getFilters() == null) { + $("#".concat(this.getTableName(), "_filterBtn")).hide(); + $("#".concat(this.getTableName(), "_resetFilters")).hide(); + } else { + $("#".concat(this.getTableName(), "_filterBtn")).show(); + $("#".concat(this.getTableName(), "_resetFilters")).show(); + + if (this.currentFilterString !== '' && this.currentFilterString != null) { + $("#".concat(this.getTableName(), "_resetFilters")).html("".concat(this.currentFilterString, "")); + } else { + $("#".concat(this.getTableName(), "_resetFilters")).html('Reset Filters'); + $("#".concat(this.getTableName(), "_resetFilters")).hide(); + } + } + } catch (error) {// Do nothing + } + + $("#".concat(this.getTableName())).find('.search-controls').show(); + + if (serverData.length > this.pageSize) { + this.hasMoreData = true; + serverData.pop(); + + if (this.loadMoreButton !== null) { + this.loadMoreButton.removeAttr('disabled'); + this.loadMoreButton.show(); + } + } else { + this.hasMoreData = false; + + if (this.loadMoreButton !== null) { + this.loadMoreButton.hide(); + } + } + + this.scrollToElementBottom(this.container); + + for (var i = 0; i < serverData.length; i++) { + data.push(this.preProcessTableData(serverData[i])); + } + + this.sourceData = serverData; + + if (callBackData.callBack !== undefined && callBackData.callBack != null) { + if (callBackData.callBackData === undefined || callBackData.callBackData == null) { + callBackData.callBackData = []; + } + + callBackData.callBackData.push(serverData); + callBackData.callBackData.push(data); + this.callFunction(callBackData.callBack, callBackData.callBackData); + } + + this.tableData = data; + + if (!(callBackData.noRender !== undefined && callBackData.noRender != null && callBackData.noRender === true)) { + for (var _i = 0; _i < data.length; _i++) { + this.renderObject(data[_i]); + } + } + } + }]); + + return ObjectAdapter; +}(_AdapterBase2["default"]); + +var _default = ObjectAdapter; +exports["default"] = _default; + +},{"./AdapterBase":39}],50:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _reactDom = _interopRequireDefault(require("react-dom")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +var _IceFormModal = _interopRequireDefault(require("../components/IceFormModal")); + +var _IceStepFromModal = _interopRequireDefault(require("../components/IceStepFromModal")); + +var _IceTable = _interopRequireDefault(require("../components/IceTable")); + +var _MasterDataReader = _interopRequireDefault(require("./MasterDataReader")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ReactModalAdapterBase = /*#__PURE__*/function (_AdapterBase) { + _inherits(ReactModalAdapterBase, _AdapterBase); + + var _super = _createSuper(ReactModalAdapterBase); + + _createClass(ReactModalAdapterBase, null, [{ + key: "MODAL_TYPE_NORMAL", + get: function get() { + return 'Normal'; + } + }, { + key: "MODAL_TYPE_STEPS", + get: function get() { + return 'Steps'; + } + }]); + + function ReactModalAdapterBase(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, ReactModalAdapterBase); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.modalType = _this.MODAL_TYPE_NORMAL; + _this.dataPipe = null; + _this.formInitialized = false; + _this.tableInitialized = false; + _this.access = []; + _this.localStorageEnabled = false; + _this.isV2 = true; + _this.masterDataReader = new _MasterDataReader["default"](_assertThisInitialized(_this)); + return _this; + } + + _createClass(ReactModalAdapterBase, [{ + key: "enableLocalStorage", + value: function enableLocalStorage() { + this.localStorageEnabled = true; + } + }, { + key: "setModalType", + value: function setModalType(type) { + this.modalType = type; + } + }, { + key: "setDataPipe", + value: function setDataPipe(dataPipe) { + this.dataPipe = dataPipe; + } + }, { + key: "setAccess", + value: function setAccess(access) { + this.access = access; + } + }, { + key: "hasAccess", + value: function hasAccess(type) { + return this.access.indexOf(type) > 0; + } + }, { + key: "hasCustomButtons", + value: function hasCustomButtons() { + return false; + } + }, { + key: "initTable", + value: function initTable() { + var _this2 = this; + + if (this.tableInitialized) { + return false; + } + + var tableDom = document.getElementById("".concat(this.tab, "Table")); + + if (tableDom) { + this.tableContainer = _react["default"].createRef(); + var columns = this.getTableColumns(); + + if (this.hasAccess('save') || this.hasAccess('delete') || this.hasAccess('element') || this.hasCustomButtons()) { + columns.push({ + title: 'Actions', + key: 'actions', + render: this.getTableActionButtonJsx(this) + }); + } + + columns = columns.map(function (item) { + item.title = _this2.gt(item.title); + return item; + }); + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceTable["default"], { + ref: this.tableContainer, + reader: this.dataPipe, + columns: columns, + adapter: this + }, this.getTableChildComponents()), tableDom); + } + + this.tableInitialized = true; + return true; + } + }, { + key: "initForm", + value: function initForm() { + var _this3 = this; + + if (this.formInitialized) { + return false; + } + + this.formContainer = _react["default"].createRef(); + + if (this.modalType === this.MODAL_TYPE_NORMAL) { + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceFormModal["default"], { + ref: this.formContainer, + fields: this.getFormFields(), + adapter: this, + formReference: this.formReference + }), document.getElementById("".concat(this.tab, "Form"))); + } else { + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceStepFromModal["default"], { + ref: this.formContainer, + fields: this.getMappedFields(), + adapter: this, + formReference: this.formReference + }), document.getElementById("".concat(this.tab, "Form"))); + } + + var filterDom = document.getElementById("".concat(this.tab, "FilterForm")); + + if (filterDom && this.getFilters()) { + this.filtersContainer = _react["default"].createRef(); + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceFormModal["default"], { + ref: this.filtersContainer, + fields: this.getFilters(), + adapter: this, + saveCallback: function saveCallback(values, showError, closeModal) { + _this3.setFilter(values); + + _this3.filtersAlreadySet = true; + + _this3.get([]); + + _this3.tableContainer.current.setFilterData(values); + + closeModal(); + } + }), filterDom); + } + + this.formInitialized = true; + return true; + } + }, { + key: "getTableChildComponents", + value: function getTableChildComponents() { + return false; + } + }, { + key: "reloadCurrentElement", + value: function reloadCurrentElement() { + this.viewElement(this.currentId); + } + }, { + key: "getTableActionButtonJsx", + value: function getTableActionButtonJsx(adapter) { + return function (text, record) { + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: "middle" + }, adapter.hasAccess('save') && adapter.showEdit && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "green", + onClick: function onClick() { + return modJs.edit(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), " ".concat(adapter.gt('Edit'))), adapter.hasAccess('element') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + onClick: function onClick() { + return modJs.viewElement(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.MonitorOutlined, null), " ".concat(adapter.gt('View'))), adapter.hasAccess('delete') && adapter.showDelete && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "volcano", + onClick: function onClick() { + return modJs.deleteRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " ".concat(adapter.gt('Delete'))), adapter.hasAccess('save') && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "cyan", + onClick: function onClick() { + return modJs.copyRow(record.id); + }, + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.CopyOutlined, null), " ".concat(adapter.gt('Copy')))); + }; + } + }, { + key: "setTableLoading", + value: function setTableLoading(value) { + this.tableContainer.current.setLoading(value); + } + /** + * Show the view form for an item + * @method viewElement + * @param id {int} id of the item to view + */ + + }, { + key: "viewElement", + value: function viewElement(id) { + var _this4 = this; + + this.setTableLoading(true); + this.currentId = id; + this.getElement(id, { + noRender: true, + callBack: function callBack(element) { + _this4.showElement(element); + + _this4.setTableLoading(false); + } + }); + } + }, { + key: "showElement", + value: function showElement(element) { + this.renderForm(element, true); + } + /** + * Show the edit form for an item + * @method edit + * @param id {int} id of the item to edit + */ + + }, { + key: "edit", + value: function edit(id) { + this.setTableLoading(true); + this.currentId = id; + this.getElement(id, []); + } + }, { + key: "renderForm", + value: function renderForm() { + var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + var viewOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + + if (object == null) { + this.currentId = null; + this.currentElement = null; + } + + this.setTableLoading(false); + this.initForm(); + this.formContainer.current.setViewOnly(viewOnly); + this.formContainer.current.show(object); + } + }, { + key: "showFilters", + value: function showFilters() { + this.initForm(); + this.filtersContainer.current.show(this.filter); + } + }, { + key: "resetFilters", + value: function resetFilters() { + this.filter = this.origFilter; + this.filtersAlreadySet = false; + this.currentFilterString = ''; + this.get([]); + this.tableContainer.current.setFilterData(this.filter); + } + }, { + key: "get", + value: function get() { + var _this5 = this; + + if (this.tableContainer && this.tableContainer.current) { + this.tableContainer.current.setCurrentElement(null); + } + + this.initTable(); + this.masterDataReader.updateAllMasterData().then(function () { + _this5.tableContainer.current.reload(); + }); + this.trackEvent('get', this.tab, this.table); + } + }, { + key: "showLoader", + value: function showLoader() {// $('#iceloader').show(); + } + }, { + key: "addActualFieldsForStepModal", + value: function addActualFieldsForStepModal(steps, fields) { + return steps.map(function (item) { + item.fields = item.fields.reduce(function (acc, fieldName) { + var field = fields.find(function (_ref) { + var _ref2 = _slicedToArray(_ref, 1), + name = _ref2[0]; + + return name === fieldName; + }); + + if (field) { + acc.push(field); + } + + return acc; + }, []); + return item; + }); + } + }, { + key: "getFormOptions", + value: function getFormOptions() { + return { + width: 1024, + twoColumnLayout: false + }; + } + }]); + + return ReactModalAdapterBase; +}(_AdapterBase2["default"]); + +var _default = ReactModalAdapterBase; +exports["default"] = _default; + +},{"../components/IceFormModal":55,"../components/IceStepFromModal":60,"../components/IceTable":61,"./AdapterBase":39,"./MasterDataReader":47,"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react","react-dom":"react-dom"}],51:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _AdapterBase2 = _interopRequireDefault(require("./AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * TableEditAdapter + */ +var TableEditAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(TableEditAdapter, _AdapterBase); + + var _super = _createSuper(TableEditAdapter); + + function TableEditAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, TableEditAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.cellDataUpdates = {}; + _this.modulePath = ''; + _this.rowFieldName = ''; + _this.columnFieldName = ''; + _this.rowTable = ''; + _this.columnTable = ''; + _this.valueTable = ''; + _this.csvData = []; + _this.columnIDMap = {}; + return _this; + } + + _createClass(TableEditAdapter, [{ + key: "setModulePath", + value: function setModulePath(path) { + this.modulePath = path; + } + }, { + key: "setRowFieldName", + value: function setRowFieldName(name) { + this.rowFieldName = name; + } + }, { + key: "setTables", + value: function setTables(rowTable, columnTable, valueTable) { + this.rowTable = rowTable; + this.columnTable = columnTable; + this.valueTable = valueTable; + } + }, { + key: "setColumnFieldName", + value: function setColumnFieldName(name) { + this.columnFieldName = name; + } + }, { + key: "getDataMapping", + value: function getDataMapping() { + return []; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "get", + value: function get() { + this.getAllData(); + } + }, { + key: "getAllData", + value: function getAllData(save) { + var req = {}; + req.rowTable = this.rowTable; + req.columnTable = this.columnTable; + req.valueTable = this.valueTable; + req = this.addAdditionalRequestData('getAllData', req); + req.save = save === undefined || save == null || save === false ? 0 : 1; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getAllDataSuccessCallBack'; + callBackData.callBackFail = 'getAllDataFailCallBack'; + this.customAction('getAllData', this.modulePath, reqJson, callBackData); + } + }, { + key: "getDataItem", + value: function getDataItem(row, column, allData) { + var columnData = allData[1]; + var rowData = allData[0]; + var serverData = allData[2]; + + if (column === -1) { + return rowData[row].name; + } + + return this.getDataItemByKeyValues(this.rowFieldName, rowData[row].id, this.columnFieldName, columnData[column].id, serverData); + } + }, { + key: "getDataItemByKeyValues", + value: function getDataItemByKeyValues(rowKeyName, rowKeyVal, colKeyName, colKeyVal, data) { + for (var i = 0; i < data.length; i++) { + if (data[i][rowKeyName] === rowKeyVal && data[i][colKeyName] === colKeyVal) { + return data[i].amount !== undefined && data[i].amount != null ? data[i].amount : ''; + } + } + + return ''; + } + }, { + key: "getAllDataSuccessCallBack", + value: function getAllDataSuccessCallBack(allData) { + var serverData = allData[2]; + var columnData = allData[1]; + var rowData = allData[0]; + var data = []; + + for (var i = 0; i < rowData.length; i++) { + var row = []; + + for (var j = -1; j < columnData.length; j++) { + row[j + 1] = this.getDataItem(i, j, allData); + } + + data.push(this.preProcessTableData(row)); + } + + this.sourceData = serverData; + this.tableData = data; + this.setHeaders(columnData, rowData); + this.createTable(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + this.csvData = []; + var tmpRow = []; + + for (var _i = 0; _i < columnData.length; _i++) { + tmpRow.push(columnData[_i].name); + } + + tmpRow = this.modifyCSVHeader(tmpRow); + this.csvData.push(tmpRow); + + for (var _i2 = 0; _i2 < data.length; _i2++) { + this.csvData.push(data[_i2]); + } + } + }, { + key: "modifyCSVHeader", + value: function modifyCSVHeader(header) { + return header; + } + }, { + key: "getAllDataFailCallBack", + value: function getAllDataFailCallBack(callBackData, serverData) {} + }, { + key: "setHeaders", + value: function setHeaders(columns, rows) { + var headers = []; + headers.push({ + sTitle: '', + sWidth: '180px;' + }); + var sclass = ''; + this.columnIDMap = {}; + + for (var i = 0; i < columns.length; i++) { + this.columnIDMap[columns[i].id] = i; + + if (columns[i].editable === undefined || columns[i].editable == null || columns[i].editable === 'Yes') { + sclass = 'editcell'; + } else { + sclass = ''; + } + + headers.push({ + sTitle: columns[i].name, + sClass: sclass, + fnCreatedCell: function fnCreatedCell(nTd, sData, oData, iRow, iCol) { + $(nTd).data('colId', columns[iCol - 1].id); + $(nTd).data('rowId', rows[iRow].id); + } + }); + } + + this.headers = headers; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return this.headers; + } + }, { + key: "createTable", + value: function createTable(elementId) { + var data = this.getTableData(); + var headers = this.getHeaders(); + + if (this.showActionButtons()) { + headers.push({ + sTitle: '', + sClass: 'center' + }); + } + + if (this.showActionButtons()) { + for (var i = 0; i < data.length; i++) { + data[i].push(this.getActionButtonsHtml(data[i][0], data[i])); + } + } + + var html = ''; + html = "".concat(this.getTableTopButtonHtml(), "
    "); // Find current page + + var activePage = $("#".concat(elementId, " .dataTables_paginate .active a")).html(); + var start = 0; + + if (activePage !== undefined && activePage != null) { + start = parseInt(activePage, 10) * 15 - 15; + } + + $("#".concat(elementId)).html(html); + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + aaData: data, + aoColumns: headers, + bSort: false, + iDisplayLength: 15, + iDisplayStart: start + }; + var customTableParams = this.getCustomTableParams(); + $.extend(dataTableParams, customTableParams); + $("#".concat(elementId, " #grid")).dataTable(dataTableParams); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); // $('.tableActionButton').tooltip(); + + $("#".concat(elementId, " #grid")).editableTableWidget(); + $("#".concat(elementId, " #grid .editcell")).on('validate', function (evt, newValue) { + return modJs.validateCellValue($(this), evt, newValue); + }); + this.afterCreateTable(elementId); + } + }, { + key: "afterCreateTable", + value: function afterCreateTable(elementId) {} + }, { + key: "addCellDataUpdate", + value: function addCellDataUpdate(colId, rowId, data) { + this.cellDataUpdates["".concat(colId, "=").concat(rowId)] = [colId, rowId, data]; + } + }, { + key: "addAdditionalRequestData", + value: function addAdditionalRequestData(type, req) { + return req; + } + }, { + key: "sendCellDataUpdates", + value: function sendCellDataUpdates() { + var req = this.cellDataUpdates; + req.rowTable = this.rowTable; + req.columnTable = this.columnTable; + req.valueTable = this.valueTable; + req = this.addAdditionalRequestData('updateData', req); + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'updateDataSuccessCallBack'; + callBackData.callBackFail = 'updateDataFailCallBack'; + this.showLoader(); + this.customAction('updateData', this.modulePath, reqJson, callBackData); + } + }, { + key: "updateDataSuccessCallBack", + value: function updateDataSuccessCallBack(callBackData, serverData) { + this.hideLoader(); + modJs.cellDataUpdates = {}; + modJs.get(); + } + }, { + key: "updateDataFailCallBack", + value: function updateDataFailCallBack(callBackData, serverData) { + this.hideLoader(); + } + }, { + key: "sendAllCellDataUpdates", + value: function sendAllCellDataUpdates() { + var req = this.cellDataUpdates; + req.rowTable = this.rowTable; + req.columnTable = this.columnTable; + req.valueTable = this.valueTable; + req = this.addAdditionalRequestData('updateAllData', req); + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'updateDataAllSuccessCallBack'; + callBackData.callBackFail = 'updateDataAllFailCallBack'; + this.showLoader(); + this.customAction('updateAllData', this.modulePath, reqJson, callBackData); + } + }, { + key: "updateDataAllSuccessCallBack", + value: function updateDataAllSuccessCallBack(callBackData, serverData) { + this.hideLoader(); + modJs.cellDataUpdates = {}; + modJs.getAllData(true); + } + }, { + key: "updateDataAllFailCallBack", + value: function updateDataAllFailCallBack(callBackData, serverData) { + this.hideLoader(); + } + }, { + key: "showActionButtons", + value: function showActionButtons() { + return false; + } + }]); + + return TableEditAdapter; +}(_AdapterBase2["default"]); + +var _default = TableEditAdapter; +exports["default"] = _default; + +},{"./AdapterBase":39}],52:[function(require,module,exports){ +"use strict"; + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireWildcard(require("react")); + +var _reactColor = require("react-color"); + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function useComponentVisible(initialIsVisible) { + var _useState = (0, _react.useState)(initialIsVisible), + _useState2 = _slicedToArray(_useState, 2), + isComponentVisible = _useState2[0], + setIsComponentVisible = _useState2[1]; + + var ref = (0, _react.useRef)(null); + + var handleClickOutside = function handleClickOutside(event) { + if (ref.current && !ref.current.contains(event.target)) { + setIsComponentVisible(false); + } + }; + + (0, _react.useEffect)(function () { + document.addEventListener('click', handleClickOutside, true); + return function () { + document.removeEventListener('click', handleClickOutside, true); + }; + }); + return { + ref: ref, + isComponentVisible: isComponentVisible, + setIsComponentVisible: setIsComponentVisible + }; +} + +function IceColorPick(props) { + var value = props.value, + onChange = props.onChange, + readOnly = props.readOnly; + + var _useComponentVisible = useComponentVisible(true), + ref = _useComponentVisible.ref, + isComponentVisible = _useComponentVisible.isComponentVisible, + setIsComponentVisible = _useComponentVisible.setIsComponentVisible; + + var _useState3 = (0, _react.useState)(value || '#FFF'), + _useState4 = _slicedToArray(_useState3, 2), + color = _useState4[0], + setColor = _useState4[1]; + + var _useState5 = (0, _react.useState)(false), + _useState6 = _slicedToArray(_useState5, 2), + showPicker = _useState6[0], + setShowPicker = _useState6[1]; + + (0, _react.useEffect)(function () { + if (!isComponentVisible) { + setShowPicker(false); + } + }, [isComponentVisible]); + (0, _react.useEffect)(function () { + if (value) { + setColor(value); + } + }, [value]); + return /*#__PURE__*/_react["default"].createElement("div", { + className: "colorpicker-container" + }, /*#__PURE__*/_react["default"].createElement("div", { + className: "colorpicker-preview", + onClick: function onClick() { + if (!showPicker) { + setIsComponentVisible(true); + } + + setShowPicker(!showPicker); + }, + style: { + backgroundColor: color + } + }), /*#__PURE__*/_react["default"].createElement("div", { + ref: ref, + className: "colorpicker-component ".concat(readOnly || !showPicker ? 'hidden' : '') + }, /*#__PURE__*/_react["default"].createElement(_reactColor.SketchPicker, { + color: color, + disableAlpha: true, + presetColors: [], + onChangeComplete: function onChangeComplete(_ref) { + var hex = _ref.hex; + onChange(hex); + setColor(hex); + } + }))); +} + +var _default = IceColorPick; +exports["default"] = _default; + +},{"react":"react","react-color":365}],53:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceFormModal = _interopRequireDefault(require("./IceFormModal")); + +var _reactDom = _interopRequireDefault(require("react-dom")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Option = _antd.Select.Option; + +var IceDataGroup = /*#__PURE__*/function (_React$Component) { + _inherits(IceDataGroup, _React$Component); + + var _super = _createSuper(IceDataGroup); + + function IceDataGroup(props) { + var _this; + + _classCallCheck(this, IceDataGroup); + + _this = _super.call(this, props); + _this.state = {}; + _this.onChange = props.onChange; + _this.formReference = _react["default"].createRef(); + return _this; + } + + _createClass(IceDataGroup, [{ + key: "render", + value: function render() { + var _this2 = this; + + var _this$props = this.props, + field = _this$props.field, + adapter = _this$props.adapter; + var value = this.props.value; + value = this.parseValue(value); + value = value.map(function (item) { + return _objectSpread({}, item, { + key: item.id + }); + }); + var columns = JSON.parse(JSON.stringify(field[1].columns)); + + if (!this.props.readOnly) { + columns.push({ + title: 'Action', + key: 'action', + render: function render(text, record) { + return _this2.getDefaultButtons(record.id); + } + }); + } + + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, !this.props.readOnly && /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: "horizontal" + }, /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + onClick: function onClick() { + _this2.createForm(field, adapter, {}); + } + }, "Add"), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + danger: true, + onClick: function onClick() { + _this2.resetDataGroup(); + } + }, "Reset")), /*#__PURE__*/_react["default"].createElement(_antd.Table, { + columns: columns, + dataSource: value + })); + } + }, { + key: "createForm", + value: function createForm(field, adapter, object) { + this.formContainer = _react["default"].createRef(); + var formFields = field[1].form; + formFields.unshift(['id', { + label: 'ID', + type: 'hidden' + }]); + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_IceFormModal["default"], { + ref: this.formContainer, + fields: formFields, + title: this.props.title, + adapter: adapter, + formReference: this.formReference, + saveCallback: this.save.bind(this), + cancelCallback: this.unmountForm.bind(this) + }), document.getElementById('dataGroup')); + + this.formContainer.current.show(object); + } + }, { + key: "unmountForm", + value: function unmountForm() { + _reactDom["default"].unmountComponentAtNode(document.getElementById('dataGroup')); + } + }, { + key: "show", + value: function show(data) { + var _this3 = this; + + if (!data) { + this.setState({ + visible: true + }); + this.updateFields(data); + } else { + this.setState({ + visible: true + }); + + if (this.formReference.current) { + this.updateFields(data); + } else { + this.waitForIt(function () { + return _this3.formReference.current != null; + }, function () { + _this3.updateFields(data); + }, 100); + } + } + } + }, { + key: "parseValue", + value: function parseValue(value) { + try { + value = JSON.parse(value); + } catch (e) { + value = []; + } + + if (value == null) { + value = []; + } + + return value; + } + }, { + key: "save", + value: function save(params, errorCallback, closeCallback) { + var _this$props2 = this.props, + field = _this$props2.field, + value = _this$props2.value; + + if (field[1]['custom-validate-function'] != null) { + var tempParams = field[1]['custom-validate-function'].apply(this, [params]); + + if (tempParams.valid) { + params = tempParams.params; + } else { + errorCallback(tempParams.message); + return false; + } + } + + var data = this.parseValue(value); + var newData = []; + + if (!params.id) { + params.id = "".concat(field[0], "_").concat(this.dataGroupGetNextAutoIncrementId(data)); + data.push(params); + newData = data; + } else { + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id !== params.id) { + newData.push(item); + } else { + newData.push(params); + } + } + } + + if (field[1]['sort-function'] != null) { + newData.sort(field[1]['sort-function']); + } + + var val = JSON.stringify(newData); + this.onChange(val); + this.unmountForm(); + } + }, { + key: "createCard", + value: function createCard(item) { + var field = this.props.field; + + if (field[1]['pre-format-function'] != null) { + item = field[1]['pre-format-function'].apply(this, [item]); + } + + var template = field[1].html; + var t = template.replace('#_delete_#', ''); + t = t.replace('#_edit_#', ''); + t = t.replace(/#_id_#/g, item.id); + + for (var key in item) { + var itemVal = item[key]; + + if (itemVal !== undefined && itemVal != null && typeof itemVal === 'string') { + itemVal = itemVal.replace(/(?:\r\n|\r|\n)/g, '
    '); + } + + t = t.replace("#_".concat(key, "_#"), itemVal); + } + + if (field[1].render !== undefined && field[1].render != null) { + t = t.replace('#_renderFunction_#', field[1].render(item)); + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Card, { + key: item.id, + title: "", + extra: this.getDefaultButtons(item.id) + }, /*#__PURE__*/_react["default"].createElement("div", { + dangerouslySetInnerHTML: { + __html: t + } + })); + } + }, { + key: "getDefaultButtons", + value: function getDefaultButtons(id) { + var _this4 = this; + + return /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement("a", { + href: "#", + onClick: function onClick() { + _this4.editDataGroupItem(id); + } + }, /*#__PURE__*/_react["default"].createElement("li", { + className: "fa fa-edit" + })), /*#__PURE__*/_react["default"].createElement("a", { + href: "#", + onClick: function onClick() { + _this4.deleteDataGroupItem(id); + } + }, /*#__PURE__*/_react["default"].createElement("li", { + className: "fa fa-times" + }))); + } + }, { + key: "deleteDataGroupItem", + value: function deleteDataGroupItem(id) { + var value = this.props.value; + var data = this.parseValue(value); + var newVal = []; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id !== id) { + newVal.push(item); + } + } + + var val = JSON.stringify(newVal); + this.onChange(val); + } + }, { + key: "editDataGroupItem", + value: function editDataGroupItem(id) { + var _this$props3 = this.props, + field = _this$props3.field, + adapter = _this$props3.adapter, + value = _this$props3.value; + var data = this.parseValue(value); + var editVal = {}; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === id) { + editVal = item; + } + } + + this.createForm(field, adapter, editVal); + } + }, { + key: "resetDataGroup", + value: function resetDataGroup() { + this.onChange('[]'); + } + }, { + key: "dataGroupGetNextAutoIncrementId", + value: function dataGroupGetNextAutoIncrementId(data) { + var autoId = 1; + var id; + + for (var i = 0; i < data.length; i++) { + var item = data[i]; + + if (item.id === undefined || item.id == null) { + item.id = 1; + } + + id = item.id.substring(item.id.lastIndexOf('_') + 1, item.id.length); + + if (id >= autoId) { + autoId = parseInt(id, 10) + 1; + } + } + + return autoId; + } + }]); + + return IceDataGroup; +}(_react["default"].Component); + +var _default = IceDataGroup; +exports["default"] = _default; + +},{"./IceFormModal":55,"antd":"antd","react":"react","react-dom":"react-dom"}],54:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _moment = _interopRequireDefault(require("moment")); + +var _IceUpload = _interopRequireDefault(require("./IceUpload")); + +var _IceDataGroup = _interopRequireDefault(require("./IceDataGroup")); + +var _IceSelect = _interopRequireDefault(require("./IceSelect")); + +var _IceLabel = _interopRequireDefault(require("./IceLabel")); + +var _IceColorPick = _interopRequireDefault(require("./IceColorPick")); + +var _IceSignature = _interopRequireDefault(require("./IceSignature")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ValidationRules = { + "float": function float(str) { + var floatstr = /^[-+]?[0-9]+(\.[0-9]+)?$/; + + if (str != null && str.match(floatstr)) { + return true; + } + + return false; + }, + number: function number(str) { + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + numberOrEmpty: function numberOrEmpty(str) { + if (str === '') { + return true; + } + + var numstr = /^[0-9]+$/; + + if (str != null && str.match(numstr)) { + return true; + } + + return false; + }, + email: function email(str) { + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + emailOrEmpty: function emailOrEmpty(str) { + if (str === '') { + return true; + } + + var emailPattern = /^\s*[\w\-+_]+(\.[\w\-+_]+)*@[\w\-+_]+\.[\w\-+_]+(\.[\w\-+_]+)*\s*$/; + return str != null && emailPattern.test(str); + }, + username: function username(str) { + var username = /^[a-zA-Z0-9.-]+$/; + return str != null && username.test(str); + } +}; + +var IceForm = /*#__PURE__*/function (_React$Component) { + _inherits(IceForm, _React$Component); + + var _super = _createSuper(IceForm); + + function IceForm(props) { + var _this; + + _classCallCheck(this, IceForm); + + _this = _super.call(this, props); + _this.validationRules = {}; + _this.state = { + validations: {}, + errorMsg: false + }; + _this.formReference = _react["default"].createRef(); + return _this; + } + + _createClass(IceForm, [{ + key: "showError", + value: function showError(errorMsg) { + this.setState({ + errorMsg: errorMsg + }); + } + }, { + key: "hideError", + value: function hideError() { + this.setState({ + errorMsg: false + }); + } + }, { + key: "isReady", + value: function isReady() { + return this.formReference.current != null; + } + }, { + key: "validateFields", + value: function validateFields() { + return this.formReference.current.validateFields(); + } + }, { + key: "render", + value: function render() { + var _this$props = this.props, + fields = _this$props.fields, + twoColumnLayout = _this$props.twoColumnLayout, + adapter = _this$props.adapter; + var formInputs = []; + var formInputs1 = []; + var formInputs2 = []; + var columns = !twoColumnLayout ? 1 : 2; + + for (var i = 0; i < fields.length; i++) { + formInputs.push(adapter.beforeRenderFieldHook(fields[i][0], this.createFromField(fields[i], this.props.viewOnly), fields[i][1])); + } + + formInputs = formInputs.filter(function (input) { + return !!input; + }); + + for (var _i = 0; _i < formInputs.length; _i++) { + if (formInputs[_i] != null) { + if (columns === 1) { + formInputs1.push(formInputs[_i]); + } else if (_i % 2 === 0) { + formInputs1.push(formInputs[_i]); + } else { + formInputs2.push(formInputs[_i]); + } + } + } + + var onFormLayoutChange = function onFormLayoutChange() {}; + + return /*#__PURE__*/_react["default"].createElement(_antd.Form, { + ref: this.formReference, + labelCol: { + span: 6 + }, + wrapperCol: { + span: 16 + }, + layout: this.props.layout || 'horizontal', + initialValues: { + size: 'middle' + }, + onValuesChange: onFormLayoutChange, + size: "middle" + }, this.state.errorMsg && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Alert, { + message: this.state.errorMsg, + type: "error", + showIcon: true + }), /*#__PURE__*/_react["default"].createElement("br", null)), columns === 1 && formInputs1, columns === 2 && /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 16 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12 + }, formInputs1), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12 + }, formInputs2))); + } + }, { + key: "isValid", + value: function isValid() { + var _this2 = this; + + return Object.keys(this.validationRules).reduce(function (acc, fieldName) { + return acc && (_this2.state[fieldName] === 'success' || _this2.state[fieldName] == null); + }, true); + } + }, { + key: "validateOnChange", + value: function validateOnChange(event) { + var validationRule = this.validationRules[event.target.id]; + var validations = this.state.validations; + + if (validationRule) { + if (validationRule.rule(event.target.value)) { + this.state[event.target.id] = 'success'; + this.state["".concat(event.target.id, "_message")] = null; + } else { + this.state[event.target.id] = 'error'; + this.state["".concat(event.target.id, "_message")] = validationRule.message; + } + } + + this.setState({ + validations: validations + }); + } + }, { + key: "createFromField", + value: function createFromField(field) { + var viewOnly = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var userId = 0; + var rules = []; + var requiredRule = { + required: true + }; + + var _field = _slicedToArray(field, 2), + name = _field[0], + data = _field[1]; + + var _this$props2 = this.props, + adapter = _this$props2.adapter, + layout = _this$props2.layout; + var validationRule = null; + data.label = adapter.gt(data.label); + var labelSpan = layout === 'vertical' ? { + span: 24 + } : { + span: 6 + }; + var tempSelectBoxes = ['select', 'select2', 'select2multi']; + + if (tempSelectBoxes.indexOf(data.type) >= 0 && data['allow-null'] === true) { + requiredRule.required = false; + } else if (data.validation === 'none' || data.validation === 'emailOrEmpty' || data.validation === 'numberOrEmpty') { + requiredRule.required = false; + } else { + requiredRule.required = true; + requiredRule.message = this.generateFieldMessage(data.label); + } + + rules.push(requiredRule); + + if (data.type === 'hidden') { + requiredRule.required = false; + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + style: { + display: 'none' + }, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.Input, null)); + } + + if (data.type === 'text') { + if (data.validation) { + data.validation = data.validation.replace('OrEmpty', ''); + validationRule = this.getValidationRule(data); + + if (validationRule) { + this.validationRules[name] = { + rule: validationRule, + message: "Invalid value for ".concat(data.label) + }; + } + } + + if (validationRule != null) { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules, + validateStatus: this.state[name], + help: this.state["".concat(name, "_message")] + }, viewOnly ? /*#__PURE__*/_react["default"].createElement(_IceLabel["default"], null) : /*#__PURE__*/_react["default"].createElement(_antd.Input, { + onChange: this.validateOnChange.bind(this) + })); + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, viewOnly ? /*#__PURE__*/_react["default"].createElement(_IceLabel["default"], null) : /*#__PURE__*/_react["default"].createElement(_antd.Input, null)); + } + + if (data.type === 'textarea') { + if (!data.rows) { + data.rows = 4; + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, viewOnly ? /*#__PURE__*/_react["default"].createElement(_IceLabel["default"], null) : /*#__PURE__*/_react["default"].createElement(_antd.Input.TextArea, { + rows: data.rows + })); + } + + if (data.type === 'date') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.DatePicker, { + disabled: viewOnly + })); + } + + if (data.type === 'datetime') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.DatePicker, { + format: "YYYY-MM-DD HH:mm:ss", + disabled: viewOnly + })); + } + + if (data.type === 'time') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_antd.TimePicker, { + format: "HH:mm", + disabled: viewOnly + })); + } + + if (data.type === 'fileupload') { + var currentEmployee = adapter.getCurrentProfile(); + + if (currentEmployee != null) { + userId = currentEmployee.id; + } else { + userId = adapter.getUser().id * -1; + } + + if (data.filetypes == null) { + data.filetypes = '.doc,.docx,.xml,' + 'application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,' + 'image/*,' + '.pdf'; + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + name: name, + key: name, + label: data.label + }, /*#__PURE__*/_react["default"].createElement(_IceUpload["default"], { + user: userId, + fileGroup: adapter.tab, + fileName: name, + adapter: adapter, + accept: data.filetypes, + readOnly: viewOnly + })); + } + + if (data.type === 'datagroup') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + name: name, + key: name, + label: data.label + }, /*#__PURE__*/_react["default"].createElement(_IceDataGroup["default"], { + adapter: adapter, + field: field, + title: data.label, + readOnly: viewOnly + })); + } + + if (data.type === 'select2' || data.type === 'select' || data.type === 'select2multi') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_IceSelect["default"], { + adapter: adapter, + field: field, + readOnly: viewOnly + })); + } + + if (data.type === 'colorpick') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + name: name, + key: name, + label: data.label + }, /*#__PURE__*/_react["default"].createElement(_IceColorPick["default"], { + adapter: adapter, + field: field, + title: data.label, + readOnly: viewOnly + })); + } + + if (data.type === 'signature') { + return /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + labelCol: labelSpan, + label: data.label, + key: name, + name: name, + rules: rules + }, /*#__PURE__*/_react["default"].createElement(_IceSignature["default"], { + readOnly: viewOnly + })); + } + + return null; + } + }, { + key: "generateFieldMessage", + value: function generateFieldMessage(label) { + return "".concat(label, ": ").concat(this.props.adapter.gt('is required')); + } + }, { + key: "getValidationRule", + value: function getValidationRule(data) { + if (ValidationRules[data.validation] == null) { + return null; + } + + return ValidationRules[data.validation]; + } + }, { + key: "dataToFormFields", + value: function dataToFormFields(data, fields) { + for (var i = 0; i < fields.length; i++) { + var _fields$i = _slicedToArray(fields[i], 2), + key = _fields$i[0], + formInputData = _fields$i[1]; + + if (formInputData.type === 'date') { + data[key] = data[key] ? (0, _moment["default"])(data[key], 'YYYY-MM-DD') : null; + } else if (formInputData.type === 'datetime') { + data[key] = data[key] ? (0, _moment["default"])(data[key], 'YYYY-MM-DD HH:mm:ss') : null; + } else if (formInputData.type === 'time') { + data[key] = data[key] ? (0, _moment["default"])(data[key], 'HH:mm') : null; + } + } + + return data; + } + }, { + key: "formFieldsToData", + value: function formFieldsToData(params, fields) { + for (var i = 0; i < fields.length; i++) { + var _fields$i2 = _slicedToArray(fields[i], 2), + key = _fields$i2[0], + formInputData = _fields$i2[1]; + + if (formInputData.type === 'date') { + params[key] = params[key] ? params[key].format('YYYY-MM-DD') : 'NULL'; + } else if (formInputData.type === 'datetime') { + params[key] = params[key] ? params[key].format('YYYY-MM-DD HH:mm:ss') : 'NULL'; + } else if (formInputData.type === 'time') { + params[key] = params[key] ? params[key].format('HH:mm') : 'NULL'; + } else if ((formInputData.type === 'select' || formInputData.type === 'select2') && params[key] == null) { + params[key] = 'NULL'; + } + } + + return params; + } + }, { + key: "updateFields", + value: function updateFields(data) { + var fields = this.props.fields; + data = this.dataToFormFields(data, fields); + this.formReference.current.resetFields(); + + if (data == null) { + return; + } + + try { + this.formReference.current.setFieldsValue(data); + } catch (e) { + console.log(e); + } + } + }, { + key: "resetFields", + value: function resetFields() { + this.formReference.current.resetFields(); + } + }, { + key: "setFieldsValue", + value: function setFieldsValue(data) { + this.formReference.current.setFieldsValue(data); + } + }, { + key: "save", + value: function save(params, success) { + var _this3 = this; + + var _this$props3 = this.props, + adapter = _this$props3.adapter, + fields = _this$props3.fields; + var values = params; + values = adapter.forceInjectValuesBeforeSave(values); + var msg = adapter.doCustomValidation(values); + + if (msg !== null) { + this.showError(msg); + return; + } + + if (adapter.csrfRequired) { + values.csrf = $("#".concat(adapter.getTableName(), "Form")).data('csrf'); + } + + var id = adapter.currentElement != null ? adapter.currentElement.id : null; + + if (id != null && id !== '') { + values.id = id; + } + + values = this.formFieldsToData(values, fields); + adapter.add(values, [], function () { + return adapter.get([]); + }, function () { + _this3.formReference.current.resetFields(); + + _this3.showError(false); + + success(); + }); + } + }]); + + return IceForm; +}(_react["default"].Component); + +var _default = IceForm; +exports["default"] = _default; + +},{"./IceColorPick":52,"./IceDataGroup":53,"./IceLabel":56,"./IceSelect":57,"./IceSignature":58,"./IceUpload":62,"antd":"antd","moment":"moment","react":"react"}],55:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceForm = _interopRequireDefault(require("./IceForm")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceFormModal = /*#__PURE__*/function (_React$Component) { + _inherits(IceFormModal, _React$Component); + + var _super = _createSuper(IceFormModal); + + function IceFormModal(props) { + var _this; + + _classCallCheck(this, IceFormModal); + + _this = _super.call(this, props); + _this.state = { + visible: false, + viewOnly: false, + loading: false + }; + _this.iceFormReference = _react["default"].createRef(); + _this.width = 800; + return _this; + } + + _createClass(IceFormModal, [{ + key: "setViewOnly", + value: function setViewOnly(value) { + this.setState({ + viewOnly: value + }); + } + }, { + key: "show", + value: function show(data) { + var _this2 = this; + + this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : function (fieldName, field) { + return field; + }; + + if (!data) { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current) { + this.iceFormReference.current.resetFields(); + } + } else { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current && this.iceFormReference.current.isReady()) { + this.iceFormReference.current.updateFields(data); + } else { + this.waitForIt(function () { + return _this2.iceFormReference.current && _this2.iceFormReference.current.isReady(); + }, function () { + _this2.iceFormReference.current.updateFields(data); + }, 1000); + } + } + } + }, { + key: "waitForIt", + value: function waitForIt(condition, callback, time) { + var _this3 = this; + + setTimeout(function () { + if (condition()) { + callback(); + } else { + _this3.waitForIt(condition, callback, time); + } + }, time); + } + }, { + key: "hide", + value: function hide() { + this.setState({ + visible: false + }); + } + }, { + key: "save", + value: function save(params) { + var _this4 = this; + + this.iceFormReference.current.save(params, function () { + _this4.closeModal(); + }); + } + }, { + key: "closeModal", + value: function closeModal() { + this.hide(); + this.iceFormReference.current.showError(false); + } + }, { + key: "render", + value: function render() { + var _this5 = this; + + var _this$props = this.props, + fields = _this$props.fields, + adapter = _this$props.adapter, + saveCallback = _this$props.saveCallback, + cancelCallback = _this$props.cancelCallback; + var additionalProps = {}; + additionalProps.footer = /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 16 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: {} + }), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: { + textAlign: 'right' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: function onClick() { + if (cancelCallback) { + cancelCallback(); + } else { + _this5.closeModal(); + } + } + }, this.props.adapter.gt('Cancel')), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + loading: this.state.loading, + type: "primary", + onClick: function onClick() { + _this5.setState({ + loading: true + }); + + var iceFrom = _this5.iceFormReference.current; + iceFrom.validateFields().then(function (values) { + if (!iceFrom.isValid()) { + _this5.setState({ + loading: false + }); + + return; + } + + if (saveCallback) { + saveCallback(values, iceFrom.showError.bind(_this5), _this5.closeModal.bind(_this5)); + } else { + _this5.save(values); + } + + _this5.setState({ + loading: false + }); + })["catch"](function (info) { + _this5.setState({ + loading: false + }); + }); + } + }, this.state.viewOnly ? this.props.adapter.gt('Done') : this.props.adapter.gt('Save'))))); + + if (this.state.viewOnly) { + additionalProps.footer = null; + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Modal, _extends({ + visible: this.state.visible, + title: this.props.adapter.gt(this.props.title || adapter.objectTypeName), + maskClosable: false, + width: this.width, + onCancel: function onCancel() { + if (cancelCallback) { + cancelCallback(); + } else { + _this5.closeModal(); + } + } + }, additionalProps), /*#__PURE__*/_react["default"].createElement(_IceForm["default"], { + ref: this.iceFormReference, + adapter: adapter, + fields: fields, + viewOnly: this.state.viewOnly + })); + } + }]); + + return IceFormModal; +}(_react["default"].Component); + +var _default = IceFormModal; +exports["default"] = _default; + +},{"./IceForm":54,"antd":"antd","react":"react"}],56:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceLabel = /*#__PURE__*/function (_React$Component) { + _inherits(IceLabel, _React$Component); + + var _super = _createSuper(IceLabel); + + function IceLabel(props) { + _classCallCheck(this, IceLabel); + + return _super.call(this, props); + } + + _createClass(IceLabel, [{ + key: "render", + value: function render() { + var value = this.props.value; + return /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement("div", { + contentEditable: "true", + dangerouslySetInnerHTML: { + __html: this.nl2br(value || '') + } + })); + } + }, { + key: "nl2br", + value: function nl2br(str) { + return "".concat(str).replace(/([^>\r\n]?)(\r\n|\n\r|\r|\n)/g, '
    '); + } + }]); + + return IceLabel; +}(_react["default"].Component); + +var _default = IceLabel; +exports["default"] = _default; + +},{"antd":"antd","react":"react"}],57:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Option = _antd.Select.Option; + +var IceSelect = /*#__PURE__*/function (_React$Component) { + _inherits(IceSelect, _React$Component); + + var _super = _createSuper(IceSelect); + + function IceSelect(props) { + var _this; + + _classCallCheck(this, IceSelect); + + _this = _super.call(this, props); + _this.onChange = props.onChange; + return _this; + } + + _createClass(IceSelect, [{ + key: "render", + value: function render() { + var options; + var _this$props = this.props, + field = _this$props.field, + adapter = _this$props.adapter; + var value = this.props.value; + var data = field[1]; + + if (data['remote-source'] != null) { + var key = "".concat(data['remote-source'][0], "_").concat(data['remote-source'][1], "_").concat(data['remote-source'][2]); + + if (data['remote-source'].length === 4) { + key = "".concat(key, "_").concat(data['remote-source'][3]); + } + + options = adapter.fieldMasterData[key]; + } else { + options = data.source; + } + + var optionData = this.getFormSelectOptionsRemote(options, field, adapter); // value should be an array if multi-select + + if (data.type === 'select2multi') { + try { + value = JSON.parse(value); + + if (value == null) { + value = []; + } + + value = value.map(function (item) { + return "".concat(item); + }); + } catch (e) { + value = []; + } + } + + return /*#__PURE__*/_react["default"].createElement(_antd.Select, { + mode: data.type === 'select2multi' ? 'multiple' : undefined, + showSearch: true, + placeholder: "Select ".concat(data.label), + optionFilterProp: "children", + filterOption: function filterOption(input, option) { + return input != null && option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0; + }, + value: value, + options: optionData, + allowClear: true, + onChange: this.handleChange.bind(this), + disabled: this.props.readOnly + }); + } + }, { + key: "handleChange", + value: function handleChange(value) { + var field = this.props.field; + var data = field[1]; + + if (data.type === 'select2multi') { + this.onChange(JSON.stringify(value)); + } else { + this.onChange(value); + } + } + }, { + key: "makeOption", + value: function makeOption(option) { + return /*#__PURE__*/_react["default"].createElement(Option, { + key: "".concat(option[0]), + value: "".concat(option[0]) + }, option[1]); + } + }, { + key: "getFormSelectOptionsRemote", + value: function getFormSelectOptionsRemote(options, field, adapter) { + var optionData = []; + + if (Array.isArray(options)) { + for (var i = 0; i < options.length; i++) { + optionData.push({ + label: options[i][1], + value: options[i][0] + }); + } + } else { + for (var key in options) { + optionData.push({ + label: options[key], + value: key + }); + } + } // if (field[1].sort === 'true') { + // tuples.sort((a, b) => { + // a = a[1]; + // b = b[1]; + // + // // eslint-disable-next-line no-nested-ternary + // return a < b ? -1 : (a > b ? 1 : 0); + // }); + // } + // for (let i = 0; i < tuples.length; i++) { + // const prop = tuples[i][0]; + // const value = tuples[i][1]; + // optionData.push([prop, adapter.gt(value)]); + // } + + + return optionData; + } + }]); + + return IceSelect; +}(_react["default"].Component); + +var _default = IceSelect; +exports["default"] = _default; + +},{"antd":"antd","react":"react"}],58:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _reactSignatureCanvas = _interopRequireDefault(require("react-signature-canvas")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceSignature = /*#__PURE__*/function (_React$Component) { + _inherits(IceSignature, _React$Component); + + var _super = _createSuper(IceSignature); + + function IceSignature(props) { + var _this; + + _classCallCheck(this, IceSignature); + + _this = _super.call(this, props); + _this.onChange = props.onChange; + _this.state = { + visible: false + }; + _this.signature = _react["default"].createRef(); + return _this; + } + + _createClass(IceSignature, [{ + key: "componentDidMount", + value: function componentDidMount() {} + }, { + key: "show", + value: function show() { + this.setState({ + visible: true + }); + } + }, { + key: "setSignature", + value: function setSignature(ref) { + if (ref == null) { + return; + } + + var value = this.props.value; + + if (value != null && value.length > 10) { + ref.fromDataURL(value); + } + } + }, { + key: "hide", + value: function hide() { + this.setState({ + visible: false + }); + } + }, { + key: "clear", + value: function clear() { + this.signature.clear(); + } + }, { + key: "save", + value: function save() { + var data = this.signature.toDataURL('image/png'); + this.onChange(data); + this.setState({ + visible: false + }); + } + }, { + key: "render", + value: function render() { + var _this2 = this; + + var readOnly = this.props.readOnly; + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Modal, { + visible: this.state.visible, + title: "Signature", + maskClosable: false, + centered: true, + width: 300, + onCancel: function onCancel() { + _this2.hide(); + }, + footer: [/*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "cancel", + onClick: function onClick() { + _this2.hide(); + } + }, "Cancel"), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "clear", + disabled: readOnly, + type: "dashed", + onClick: function onClick() { + if (!readOnly) { + _this2.clear(); + } + } + }, "Clear"), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "ok", + disabled: readOnly, + type: "primary", + onClick: function onClick() { + if (!readOnly) { + _this2.save(); + } + } + }, "Submit")] + }, /*#__PURE__*/_react["default"].createElement(_reactSignatureCanvas["default"], { + ref: function ref(_ref) { + _this2.signature = _ref; + + _this2.setSignature(_ref); + }, + canvasProps: _objectSpread({ + width: 250, + height: 200, + className: 'sigCanvas' + }, readOnly ? { + readOnly: readOnly + } : {}) + })), /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + style: { + cursor: 'pointer' + }, + onClick: function onClick() { + _this2.show(); + } + }, /*#__PURE__*/_react["default"].createElement(_icons.VerifiedOutlined, null), ' ', "Sign")); + } + }]); + + return IceSignature; +}(_react["default"].Component); + +var _default = IceSignature; +exports["default"] = _default; + +},{"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react","react-signature-canvas":369}],59:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceForm2 = _interopRequireDefault(require("./IceForm")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Step = _antd.Steps.Step; + +var IceStepForm = /*#__PURE__*/function (_IceForm) { + _inherits(IceStepForm, _IceForm); + + var _super = _createSuper(IceStepForm); + + function IceStepForm(props) { + var _this; + + _classCallCheck(this, IceStepForm); + + _this = _super.call(this, props); + _this.onChange = props.onChange; + + var steps = _this.props.fields.map(function (item) { + return _objectSpread({}, item, { + ref: _react["default"].createRef() + }); + }); + + steps = steps.map(function (item) { + var ref = item.ref, + fields = item.fields; + item.content = /*#__PURE__*/_react["default"].createElement(_IceForm2["default"], { + ref: ref, + adapter: props.adapter, + fields: fields, + twoColumnLayout: props.twoColumnLayout, + width: props.width, + layout: props.layout || 'horizontal' + }); + return item; + }); + _this.state = { + current: 0, + steps: steps, + loading: false + }; + return _this; + } + + _createClass(IceStepForm, [{ + key: "moveToStep", + value: function moveToStep(current) { + this.setState({ + current: current + }); + } + }, { + key: "next", + value: function next() { + if (this.validateFields(false) === false) { + return; + } + + this.showError(false); + var current = this.state.current + 1; + this.setState({ + current: current + }); + } + }, { + key: "prev", + value: function prev() { + var current = this.state.current - 1; + + if (current < 0) { + return; + } + + this.setState({ + current: current + }); + } + }, { + key: "render", + value: function render() { + var _this2 = this; + + var adapter = this.props.adapter; + var _this$state = this.state, + current = _this$state.current, + steps = _this$state.steps; + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Steps, { + current: current + }, steps.map(function (item, index) { + return /*#__PURE__*/_react["default"].createElement(Step, { + key: item.title, + title: item.title, + onClick: function onClick() { + return _this2.moveToStep(index); + } + }); + })), /*#__PURE__*/_react["default"].createElement(_antd.Divider, null), /*#__PURE__*/_react["default"].createElement("div", { + className: "steps-content" + }, steps.map(function (item, index) { + return /*#__PURE__*/_react["default"].createElement("div", { + style: { + display: index === current ? 'block' : 'none' + } + }, item.content); + })), /*#__PURE__*/_react["default"].createElement(_antd.Divider, null), /*#__PURE__*/_react["default"].createElement("div", { + className: "steps-action" + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 16 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: {} + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, current < steps.length - 1 && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "primary", + onClick: function onClick() { + return _this2.next(); + } + }, adapter.gt('Next')), current > 0 && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: function onClick() { + return _this2.prev(); + } + }, adapter.gt('Previous')))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + className: "gutter-row", + span: 12, + style: { + textAlign: 'right' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: function onClick() { + return _this2.props.closeModal(); + } + }, adapter.gt('Cancel')), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "primary", + loading: this.state.loading, + onClick: function onClick() { + return _this2.saveData(); + } + }, adapter.gt('Save'))))))); + } + }, { + key: "saveData", + value: function () { + var _saveData = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() { + var _this3 = this; + + var data; + return regeneratorRuntime.wrap(function _callee$(_context) { + while (1) { + switch (_context.prev = _context.next) { + case 0: + this.setState({ + loading: true + }); + _context.next = 3; + return this.validateFields(true); + + case 3: + data = _context.sent; + + if (data) { + this.save(data, function () { + return _this3.props.closeModal(); + }); + } + + this.setState({ + loading: false + }); + + case 6: + case "end": + return _context.stop(); + } + } + }, _callee, this); + })); + + function saveData() { + return _saveData.apply(this, arguments); + } + + return saveData; + }() + }, { + key: "save", + value: function save(params, success) { + var _this4 = this; + + var adapter = this.props.adapter; + adapter.add(params, [], function () { + return adapter.get([]); + }, function () { + _this4.resetFields(); + + _this4.showError(false); + + success(); + }); + } + }, { + key: "updateFields", + value: function updateFields(data) { + var _this5 = this; + + this.state.steps.forEach(function (item) { + var subData = {}; + item.fields.forEach(function (_ref) { + var _ref2 = _slicedToArray(_ref, 1), + key = _ref2[0]; + + subData[key] = data[key]; + }); + + _this5.updateFieldsSubForm(item.ref, item.fields, subData); + }); + } + }, { + key: "updateFieldsSubForm", + value: function updateFieldsSubForm(ref, fields, data) { + data = this.dataToFormFields(data, fields); + ref.current.resetFields(); + + if (data == null) { + return; + } + + try { + ref.current.setFieldsValue(data); + } catch (e) { + console.log(e); + } + } + }, { + key: "validateFields", + value: function () { + var _validateFields = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(all) { + var adapter, steps, promiseList, allData, failedIndex, values, msg, id, fields; + return regeneratorRuntime.wrap(function _callee2$(_context2) { + while (1) { + switch (_context2.prev = _context2.next) { + case 0: + adapter = this.props.adapter; + steps = all ? this.state.steps : this.state.steps.slice(0, this.state.current + 1); + promiseList = steps.map(function (item) { + return item.ref.current.validateFields().then(function (values) { + if (!item.ref.current.isValid()) { + return false; + } + + return values; + })["catch"](function () { + return false; + }); + }); + _context2.next = 5; + return Promise.all(promiseList); + + case 5: + allData = _context2.sent; + failedIndex = allData.findIndex(function (item) { + return item === false; + }); + + if (!(failedIndex >= 0)) { + _context2.next = 10; + break; + } + + this.setState({ + current: failedIndex + }); + return _context2.abrupt("return", false); + + case 10: + values = Object.assign.apply(Object, [{}].concat(_toConsumableArray(allData))); + values = adapter.forceInjectValuesBeforeSave(values); + msg = adapter.doCustomValidation(values); + + if (!(msg !== null)) { + _context2.next = 16; + break; + } + + this.showError(msg); + return _context2.abrupt("return", false); + + case 16: + if (adapter.csrfRequired) { + values.csrf = $("#".concat(adapter.getTableName(), "Form")).data('csrf'); + } + + id = adapter.currentElement != null ? adapter.currentElement.id : null; + + if (id != null && id !== '') { + values.id = id; + } + + fields = [].concat.apply([], this.state.steps.map(function (item) { + return item.fields; + })); + return _context2.abrupt("return", this.formFieldsToData(values, fields)); + + case 21: + case "end": + return _context2.stop(); + } + } + }, _callee2, this); + })); + + function validateFields(_x) { + return _validateFields.apply(this, arguments); + } + + return validateFields; + }() + }, { + key: "getSubFormData", + value: function getSubFormData(ref, fields, params) { + var adapter = this.props.adapter; + var values = params; + values = adapter.forceInjectValuesBeforeSave(values); + var msg = adapter.doCustomValidation(values); + + if (msg !== null) { + ref.current.showError(msg); + return; + } + + if (adapter.csrfRequired) { + values.csrf = $("#".concat(adapter.getTableName(), "Form")).data('csrf'); + } + + var id = adapter.currentElement != null ? adapter.currentElement.id : null; + + if (id != null && id !== '') { + values.id = id; + } + + return this.formFieldsToData(values, fields); + } + }, { + key: "showError", + value: function showError(errorMsg) { + this.state.steps.forEach(function (item) { + return item.ref.current.showError(errorMsg); + }); + } + }, { + key: "resetFields", + value: function resetFields() { + this.state.steps.forEach(function (item) { + return item.ref.current.resetFields(); + }); + } + }, { + key: "hideError", + value: function hideError() { + this.state.steps.forEach(function (item) { + return item.ref.current.hideError(); + }); + } + }, { + key: "isReady", + value: function isReady() { + return this.state.steps.reduce(function (acc, item) { + return acc && item.ref.current != null; + }, true); + } + }]); + + return IceStepForm; +}(_IceForm2["default"]); + +var _default = IceStepForm; +exports["default"] = _default; + +},{"./IceForm":54,"antd":"antd","react":"react"}],60:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _IceFormModal2 = _interopRequireDefault(require("./IceFormModal")); + +var _IceStepForm = _interopRequireDefault(require("./IceStepForm")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceStepFormModal = /*#__PURE__*/function (_IceFormModal) { + _inherits(IceStepFormModal, _IceFormModal); + + var _super = _createSuper(IceStepFormModal); + + function IceStepFormModal(props) { + var _this; + + _classCallCheck(this, IceStepFormModal); + + _this = _super.call(this, props); + _this.width = 850; + return _this; + } + + _createClass(IceStepFormModal, [{ + key: "show", + value: function show(data) { + var _this2 = this; + + this.props.adapter.beforeRenderFieldHook = this.props.adapter.beforeRenderField ? this.props.adapter.beforeRenderField(data) : function (fieldName, field) { + return field; + }; + + if (!data) { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current) { + this.iceFormReference.current.resetFields(); + } + } else { + this.setState({ + visible: true + }); + + if (this.iceFormReference.current && this.iceFormReference.current.isReady()) { + this.iceFormReference.current.moveToStep(0); + this.iceFormReference.current.updateFields(data); + } else { + this.waitForIt(function () { + return _this2.iceFormReference.current && _this2.iceFormReference.current.isReady(); + }, function () { + _this2.iceFormReference.current.updateFields(data); + + _this2.iceFormReference.current.moveToStep(0); + }, 1000); + } + } + } + }, { + key: "hide", + value: function hide() { + this.iceFormReference.current.moveToStep(0); + this.setState({ + visible: false + }); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + + var _this$props = this.props, + fields = _this$props.fields, + adapter = _this$props.adapter; + + var _this$props$adapter$g = this.props.adapter.getFormOptions(), + width = _this$props$adapter$g.width, + twoColumnLayout = _this$props$adapter$g.twoColumnLayout, + layout = _this$props$adapter$g.layout; + + return /*#__PURE__*/_react["default"].createElement(_antd.Modal, { + visible: this.state.visible, + title: this.props.adapter.gt(this.props.title || adapter.objectTypeName), + maskClosable: false, + width: width || this.width, + footer: [], + onCancel: function onCancel() { + _this3.closeModal(); + } + }, /*#__PURE__*/_react["default"].createElement(_IceStepForm["default"], { + ref: this.iceFormReference, + adapter: adapter, + fields: fields, + closeModal: function closeModal() { + _this3.closeModal(); + }, + twoColumnLayout: twoColumnLayout || false, + layout: layout + })); + } + }]); + + return IceStepFormModal; +}(_IceFormModal2["default"]); + +var _default = IceStepFormModal; +exports["default"] = _default; + +},{"./IceFormModal":55,"./IceStepForm":59,"antd":"antd","react":"react"}],61:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireWildcard(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } + +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Search = _antd.Input.Search; + +var IceTable = /*#__PURE__*/function (_React$Component) { + _inherits(IceTable, _React$Component); + + var _super = _createSuper(IceTable); + + function IceTable(props) { + var _this; + + _classCallCheck(this, IceTable); + + _this = _super.call(this, props); + _this.state = { + data: [], + pagination: {}, + loading: true, + fetchConfig: false, + //filter: null, + showLoading: true, + currentElement: null, + fetchCompleted: false + }; + + _this.handleTableChange = function (pagination, filters, sorter) { + var pager = _objectSpread({}, _this.state.pagination); + + var search = _this.state.search; + pager.current = pagination.current; + + _this.setState({ + pagination: pager + }); + + var fetchConfig = { + limit: pagination.pageSize, + page: pagination.current, + sortField: sorter.field, + sortOrder: sorter.order, + filters: JSON.stringify(filters), + search: search + }; + + _this.setState({ + fetchConfig: fetchConfig + }); + + _this.fetch(fetchConfig); + }; + + _this.reload = function () { + var fetchConfig = _this.state.fetchConfig; + + if (fetchConfig) { + _this.fetch(fetchConfig); + } + }; + + _this.search = function (value) { + _this.setState({ + search: value + }); + + var fetchConfig = _this.state.fetchConfig; + console.log(fetchConfig); + + if (fetchConfig) { + fetchConfig.search = value; + + _this.setState({ + fetchConfig: fetchConfig + }); + + _this.fetch(fetchConfig); + } + }; + + _this.addNew = function () { + _this.props.adapter.renderForm(); + }; + + _this.showFilters = function () { + _this.props.adapter.showFilters(); + }; + + _this.setFilterData = function (filter) { + _this.setState({ + filter: filter + }); + }; + + _this.setCurrentElement = function (currentElement) { + _this.setState({ + currentElement: currentElement + }); + }; + + _this.fetch = function () { + var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + + //this.setState({ loading: this.state.showLoading }); + _this.setState({ + loading: true + }); //const hideMessage = message.loading({ content: 'Loading Latest Data ...', key: 'loadingTable', duration: 1}); + + + var pagination = _objectSpread({}, _this.state.pagination); + + if (_this.props.adapter.localStorageEnabled) { + try { + var cachedResponse = _this.props.reader.getCachedResponse(params); + + if (cachedResponse.items) { + _this.setState({ + loading: false, + data: cachedResponse.items, + pagination: pagination, + showLoading: false + }); + } else { + _this.props.reader.clearCachedResponse(params); + } + } catch (e) { + _this.props.reader.clearCachedResponse(params); + } + } + + _this.props.reader.get(params).then(function (data) { + // Read total count from server + // pagination.total = data.totalCount; + pagination.total = data.total; //hideMessage(); + // setTimeout( + // () => message.success({ content: 'Loading Completed!', key: 'loadingSuccess', duration: 1 }), + // 600 + // ); + + _this.setState({ + loading: false, + data: data.items, + pagination: pagination, + showLoading: false, + fetchCompleted: true + }); + }); + }; + + return _this; + } + + _createClass(IceTable, [{ + key: "componentDidMount", + value: function componentDidMount() { + var fetchConfig = { + page: 1 + }; + + _antd.message.config({ + top: 40 + }); + + this.setState({ + fetchConfig: fetchConfig, + //filter: this.props.adapter.filter, + pagination: { + 'pageSize': this.props.reader.pageSize + } + }); //this.fetch(fetchConfig); + } + }, { + key: "setLoading", + value: function setLoading(value) { + this.setState({ + loading: value + }); + } + }, { + key: "getChildrenWithProps", + value: function getChildrenWithProps(element) { + var _this2 = this; + + var childrenWithProps = _react["default"].Children.map(this.props.children, function (child) { + // checking isValidElement is the safe way and avoids a typescript error too + var props = { + element: element, + adapter: _this2.props.adapter, + loading: _this2.state.loading + }; + + if (_react["default"].isValidElement(child)) { + return _react["default"].cloneElement(child, props); + } + + return child; + }); + + return childrenWithProps; + } + }, { + key: "render", + value: function render() { + var _this3 = this; + + return /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%' + } + }, !this.state.currentElement && /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 18 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, this.props.adapter.hasAccess('save') && this.props.adapter.getShowAddNew() && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "primary", + onClick: this.addNew + }, /*#__PURE__*/_react["default"].createElement(_icons.PlusCircleOutlined, null), " Add New"), this.props.adapter.getFilters() && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + onClick: this.showFilters + }, /*#__PURE__*/_react["default"].createElement(_icons.FilterOutlined, null), " Filters"), this.state.fetchCompleted && this.props.adapter.getFilters() && this.props.adapter.filter != null && this.props.adapter.filter !== [] && this.props.adapter.filter !== '' && this.props.adapter.getFilterString(this.props.adapter.filter) !== '' && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + closable: true, + style: { + 'lineHeight': '30px' + }, + color: "blue", + onClose: function onClose() { + return _this3.props.adapter.resetFilters(); + }, + visible: this.props.adapter.filter != null && this.props.adapter.filter !== [] && this.props.adapter.filter !== '' + }, this.props.adapter.getFilterString(this.props.adapter.filter)))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Form, { + ref: function ref(formRef) { + return _this3.form = formRef; + }, + name: "advanced_search", + className: "ant-advanced-search-form" + }, /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + name: "searchTerm", + label: "", + rules: [{ + required: false + }] + }, /*#__PURE__*/_react["default"].createElement(Search, { + placeholder: "input search text", + enterButton: "Search", + onSearch: function onSearch(value) { + return _this3.search(value); + } + }))))), /*#__PURE__*/_react["default"].createElement(_antd.Row, { + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Table // bordered + , { + rowClassName: function rowClassName(record, index) { + return index % 2 === 0 ? 'table-row-light' : 'table-row-dark'; + }, + columns: this.props.columns, + rowKey: function rowKey(record) { + return record.id; + }, + dataSource: this.state.data, + pagination: this.state.pagination, + loading: this.state.loading, + onChange: this.handleTableChange, + reader: this.props.dataPipe + })))), this.state.currentElement && this.getChildrenWithProps(this.state.currentElement)); + } + }]); + + return IceTable; +}(_react["default"].Component); + +var _default = IceTable; +exports["default"] = _default; + +},{"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],62:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } + +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } + +function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var IceUpload = /*#__PURE__*/function (_React$Component) { + _inherits(IceUpload, _React$Component); + + var _super = _createSuper(IceUpload); + + function IceUpload(props) { + var _this; + + _classCallCheck(this, IceUpload); + + _this = _super.call(this, props); + _this.state = { + fileList: [], + uploaded: false + }; + _this._isMounted = false; + + _this.handleDelete = function () { + _this.setState({ + fileList: [], + value: null, + uploaded: false + }); + + _this.onChange(null); + }; + + _this.handleView = function () { + var currentValue = _this.props.value; + + if (_this.state.value != null && _this.state.value !== '') { + currentValue = _this.state.value; + } + + if (currentValue == null || currentValue === '') { + _antd.message.error('File not found'); + + return; + } + + var adapter = _this.props.adapter; + adapter.getFile(currentValue).then(function (data) { + var file = { + key: data.uid, + uid: data.uid, + name: data.name, + status: data.status, + url: data.filename + }; + window.open(file.url); + })["catch"](function (e) {}); + }; + + _this.handleChange = function (info) { + var fileList = _toConsumableArray(info.fileList); + + if (fileList.length === 0) { + _this.setState({ + value: null + }); + + _this.onChange(null); + + _this.setState({ + fileList: [] + }); + + _this.setState({ + uploaded: false + }); + + return; + } + + fileList = fileList.slice(-1); + + if (fileList[0].response && fileList[0].response.status === 'error') { + _this.setState({ + value: null + }); + + _this.onChange(null); + + _this.setState({ + fileList: [] + }); + + _this.setState({ + uploaded: false + }); + + _antd.message.error("Error: ".concat(fileList[0].response.message)); + + return; + } + + fileList = fileList.map(function (file) { + if (file.response) { + // Component will show file.url as link + file.name = file.response.name; + file.url = file.response.url; + } + + return file; + }); + + _this.setState({ + fileList: fileList + }); + + _this.setState({ + value: _this.getFileName(fileList), + uploaded: true + }); + + _this.onChange(_this.getFileName(fileList)); + }; + + _this.onChange = props.onChange; + return _this; + } + + _createClass(IceUpload, [{ + key: "componentDidMount", + value: function componentDidMount() { + this._isMounted = true; + + _antd.message.config({ + top: 55, + duration: 2 + }); + } + }, { + key: "componentWillUnmount", + value: function componentWillUnmount() { + this._isMounted = false; + } + }, { + key: "getFileName", + value: function getFileName(fileList) { + var file = null; + + if (fileList) { + file = fileList[0]; + } + + return file ? file.name : ''; + } + }, { + key: "generateRandom", + value: function generateRandom(length) { + var d = new Date(); + var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; + var result = ''; + + for (var i = length; i > 0; --i) { + result += chars[Math.round(Math.random() * (chars.length - 1))]; + } + + return result + d.getTime(); + } + }, { + key: "render", + value: function render() { + var fileName = this.generateRandom(14); + var props = { + action: "".concat(window.CLIENT_BASE_URL, "fileupload-new.php?user=").concat(this.props.user, "&file_group=").concat(this.props.fileGroup, "&file_name=").concat(fileName), + onChange: this.handleChange, + onRemove: this.handleDelete, + multiple: false, + listType: 'picture' + }; + return /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: 'vertical' + }, !this.props.readOnly && /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_antd.Upload, _extends({}, props, { + fileList: this.state.fileList + }), /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: "blue", + style: { + cursor: 'pointer' + } + }, /*#__PURE__*/_react["default"].createElement(_icons.UploadOutlined, null), ' ', "Upload"))), /*#__PURE__*/_react["default"].createElement(_antd.Space, null, (this.props.value != null && this.props.value !== '' || this.state.value != null && this.state.value !== '') && !this.state.uploaded && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + onClick: this.handleView + }, /*#__PURE__*/_react["default"].createElement(_icons.DownloadOutlined, null), " View File"), (this.props.value != null && this.props.value !== '' || this.state.value != null && this.state.value !== '') && !this.state.uploaded && !this.props.readOnly && /*#__PURE__*/_react["default"].createElement(_antd.Button, { + type: "link", + htmlType: "button", + danger: true, + onClick: this.handleDelete + }, /*#__PURE__*/_react["default"].createElement(_icons.DeleteOutlined, null), " Delete"))); + } + }]); + + return IceUpload; +}(_react["default"].Component); + +var _default = IceUpload; +exports["default"] = _default; + +},{"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],63:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var TagList = /*#__PURE__*/function (_React$Component) { + _inherits(TagList, _React$Component); + + var _super = _createSuper(TagList); + + function TagList(props) { + var _this; + + _classCallCheck(this, TagList); + + _this = _super.call(this, props); + _this.state = { + tags: [], + loading: true + }; + return _this; + } + + _createClass(TagList, [{ + key: "componentDidMount", + value: function componentDidMount() { + this.fetch(); + } + }, { + key: "fetch", + value: function fetch() { + var _this2 = this; + + this.setState({ + loading: true + }); + this.props.apiClient.get(this.props.url).then(function (response) { + var tags = response.data.data.map(_this2.props.extractTag); + + _this2.setState({ + tags: tags, + loading: false + }); + }); + } + }, { + key: "render", + value: function render() { + var _this3 = this; + + return /*#__PURE__*/_react["default"].createElement("div", { + style: { + display: 'inline-block', + textOverflow: 'ellipsis', + whiteSpace: 'nowrap', + overflow: 'hidden', + width: '100%' + } + }, this.state.loading && /*#__PURE__*/_react["default"].createElement(_antd.Skeleton, { + active: true + }), !this.state.loading && this.state.tags.map(function (tag, index) { + return _this3.props.render ? _this3.props.render(tag) : /*#__PURE__*/_react["default"].createElement("div", { + key: "p".concat(index) + }, /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + color: _this3.props.color, + key: index, + style: { + margin: '10px' + } + }, tag), /*#__PURE__*/_react["default"].createElement("br", null)); + })); + } + }]); + + return TagList; +}(_react["default"].Component); + +var _default = TagList; +exports["default"] = _default; + +},{"antd":"antd","react":"react"}],64:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireWildcard(require("react")); + +var _antd = require("antd"); + +var _CustomAction = _interopRequireDefault(require("../api/CustomAction")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; } + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var UpdatePasswordModal = /*#__PURE__*/function (_React$Component) { + _inherits(UpdatePasswordModal, _React$Component); + + var _super = _createSuper(UpdatePasswordModal); + + function UpdatePasswordModal(props) { + var _this; + + _classCallCheck(this, UpdatePasswordModal); + + _this = _super.call(this, props); + _this.state = { + loading: false, + passwordHasError: false, + passwordState: { + hasFeedback: false, + validateStatus: '', + help: 'Password must include at least one number, one lowercase letter, one uppercase letter and a symbol' + }, + confirmationHasError: false, + confirmationState: { + hasFeedback: false, + validateStatus: '', + help: '' + } + }; + + _this.clearConfirmFeedback = function () { + _this.setState({ + confirmationHasError: false + }); + + _this.setState({ + confirmationState: { + hasFeedback: false, + validateStatus: '', + help: '' + } + }); + }; + + _this.handleOk = function () { + var from = _this.formRef.current; + from.validateFields().then(function (values) { + if (_this.updatePasswordState(values["new"]) && _this.updateConfirmPasswordState(values)) { + _this.updatePassword(values.current, values["new"]).then(function (response) { + var data = response.data; + console.log(data); + + if (data.status === 'SUCCESS') { + _this.handleCancel(); + + _antd.message.success(_this.props.adapter.gt('Password updated')); + } else { + _antd.message.error("".concat(_this.props.adapter.gt('Error updating password'), ": ").concat(_this.props.adapter.gt(data.data))); + } + })["catch"](function (error) { + _antd.message.error("".concat(_this.props.adapter.gt('Error updating password'))); + + console.log(error.message); + }); + } + })["catch"](function (info) { + _this.setState({ + loading: false + }); + }); + }; + + _this.handleCancel = function () { + if (_this.formRef.current) { + _this.formRef.current.resetFields(); + } + + _this.props.closeModal(); + }; + + _this.updatePassword = function (oldPassword, newPassword) { + var req = { + current: oldPassword ? oldPassword : '', + pwd: newPassword + }; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'changePasswordSuccessCallBack'; + callBackData.callBackFail = 'changePasswordFailCallBack'; + return _this.customAction.execute('changePassword', 'modules=employees', reqJson); + }; + + _this.validatePassword = function (password) { + if (password.length < 8) { + return _this.props.adapter.gt('Password too short'); + } + + if (password.length > 30) { + return _this.props.adapter.gt('Password too long'); + } + + var numberTester = /.*[0-9]+.*$/; + + if (!password.match(numberTester)) { + return _this.props.adapter.gt('Password must include at least one number'); + } + + var lowerTester = /.*[a-z]+.*$/; + + if (!password.match(lowerTester)) { + return _this.props.adapter.gt('Password must include at least one lowercase letter'); + } + + var upperTester = /.*[A-Z]+.*$/; + + if (!password.match(upperTester)) { + return _this.props.adapter.gt('Password must include at least one uppercase letter'); + } + + var symbolTester = /.*[\W]+.*$/; + + if (!password.match(symbolTester)) { + return _this.props.adapter.gt('Password must include at least one symbol'); + } + + return null; + }; + + _this.formRef = _react["default"].createRef(); + _this.customAction = new _CustomAction["default"](_this.props.adapter); + return _this; + } + + _createClass(UpdatePasswordModal, [{ + key: "componentDidMount", + value: function componentDidMount() { + _antd.message.config({ + top: 40 + }); + } + }, { + key: "updatePasswordState", + value: function updatePasswordState(value) { + var passwordValidationResult = this.validatePassword(value); + + if (passwordValidationResult !== null) { + this.setState({ + passwordHasError: true + }); + this.setState({ + passwordState: { + hasFeedback: true, + validateStatus: 'error', + help: passwordValidationResult + } + }); + return false; + } else { + this.setState({ + passwordHasError: false + }); + this.setState({ + passwordState: { + hasFeedback: true, + validateStatus: 'success', + help: '' + } + }); + } + + return true; + } + }, { + key: "updateConfirmPasswordState", + value: function updateConfirmPasswordState(values) { + if (values.confirm !== values["new"]) { + this.setState({ + confirmationHasError: true + }); + this.setState({ + confirmationState: { + hasFeedback: true, + validateStatus: 'error', + help: 'Passwords don\'t match' + } + }); + return false; + } else { + this.setState({ + confirmationHasError: false + }); + this.setState({ + confirmationState: { + hasFeedback: false, + validateStatus: '', + help: '' + } + }); + } + + return true; + } + }, { + key: "render", + value: function render() { + var _this2 = this; + + var layout = { + labelCol: { + span: 8 + }, + wrapperCol: { + span: 16 + } + }; + return /*#__PURE__*/_react["default"].createElement(_antd.Modal, { + visible: this.props.visible, + title: "Update Password", + onOk: this.handleOk, + onCancel: this.handleCancel, + footer: [/*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "back", + onClick: this.handleCancel + }, this.props.adapter.gt('Cancel')), /*#__PURE__*/_react["default"].createElement(_antd.Button, { + key: "submit", + type: "primary", + loading: this.state.loading, + onClick: this.handleOk + }, this.props.adapter.gt('Update'))] + }, /*#__PURE__*/_react["default"].createElement(_antd.Form, _extends({}, layout, { + ref: this.formRef + }), /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + label: "Current Password", + key: "current", + name: "current" + }, /*#__PURE__*/_react["default"].createElement(_antd.Input.Password, { + placeholder: "current password" + })), this.state.passwordHasError && /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, _extends({ + label: "New Password", + key: "new", + name: "new" + }, this.state.passwordState), /*#__PURE__*/_react["default"].createElement(_antd.Input.Password, { + placeholder: "new password", + onChange: function onChange(event) { + return _this2.updatePasswordState(event.target.value); + } + })), !this.state.passwordHasError && /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, _extends({ + label: "New Password", + key: "new", + name: "new" + }, this.state.passwordState), /*#__PURE__*/_react["default"].createElement(_antd.Input.Password, { + placeholder: "new password", + onChange: function onChange(event) { + return _this2.updatePasswordState(event.target.value); + } + })), this.state.confirmationHasError && /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, _extends({ + label: "Confirm Password", + key: "confirm", + name: "confirm" + }, this.state.confirmationState), /*#__PURE__*/_react["default"].createElement(_antd.Input.Password, { + placeholder: "confirm password", + onChange: function onChange(event) { + return _this2.clearConfirmFeedback(); + } + })), !this.state.confirmationHasError && /*#__PURE__*/_react["default"].createElement(_antd.Form.Item, { + label: "Confirm Password", + key: "confirm", + name: "confirm" + }, /*#__PURE__*/_react["default"].createElement(_antd.Input.Password, { + placeholder: "confirm password", + onChange: function onChange(event) { + return _this2.clearConfirmFeedback(); + } + })))); + } + }]); + + return UpdatePasswordModal; +}(_react["default"].Component); + +var _default = UpdatePasswordModal; +exports["default"] = _default; + +},{"../api/CustomAction":42,"antd":"antd","react":"react"}],65:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.AttendanceAdapter = _lib.AttendanceAdapter; +window.EmployeeAttendanceSheetAdapter = _lib.EmployeeAttendanceSheetAdapter; + +},{"./lib":66}],66:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _FormValidation = _interopRequireDefault(require("../../../api/FormValidation")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var AttendanceAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(AttendanceAdapter, _AdapterBase); + + var _super = _createSuper(AttendanceAdapter); + + function AttendanceAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, AttendanceAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.punch = null; + _this.useServerTime = 0; + _this.photoTaken = 0; + _this.photoAttendance = 0; + return _this; + } + + _createClass(AttendanceAdapter, [{ + key: "updatePunchButton", + value: function updatePunchButton() { + this.getPunch('changePunchButtonSuccessCallBack'); + } + }, { + key: "setUseServerTime", + value: function setUseServerTime(val) { + this.useServerTime = val; + } + }, { + key: "setPhotoAttendance", + value: function setPhotoAttendance(val) { + this.photoAttendance = parseInt(val, 10); + } + }, { + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'in_time', 'out_time', 'note']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Time-In' + }, { + sTitle: 'Time-Out' + }, { + sTitle: 'Note' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + if (this.useServerTime === 0) { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['time', { + label: 'Time', + type: 'datetime' + }], ['note', { + label: 'Note', + type: 'textarea', + validation: 'none' + }]]; + } + + return [['id', { + label: 'ID', + type: 'hidden' + }], ['note', { + label: 'Note', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + var that = this; + var dataTableParams = { + aoColumnDefs: [{ + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 1); + }, + aTargets: [1] + }, { + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 2); + }, + aTargets: [2] + }, { + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 3); + }, + aTargets: [3] + }, { + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }] + }; + return dataTableParams; + } + }, { + key: "preProcessRemoteTableData", + value: function preProcessRemoteTableData(data, cell, id) { + if (id === 1) { + if (cell === '0000-00-00 00:00:00' || cell === '' || cell === undefined || cell === null) { + return ''; + } + + return Date.parse(cell).toString('yyyy MMM d HH:mm'); + } + + if (id === 2) { + if (cell === '0000-00-00 00:00:00' || cell === '' || cell === undefined || cell === null) { + return ''; + } + + return Date.parse(cell).toString('MMM d HH:mm'); + } + + if (id === 3) { + if (cell !== undefined && cell !== null) { + if (cell.length > 20) { + return "".concat(cell.substring(0, 20), ".."); + } + } + + return cell; + } + + return cell; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + return ''; + } + }, { + key: "getTableTopButtonHtml", + value: function getTableTopButtonHtml() { + if (this.punch === null || this.punch === undefined) { + return ''; + } + + return ''; + } + }, { + key: "save", + value: function save() { + var that = this; + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_submit"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var msg = this.doCustomValidation(); + + if (msg == null) { + var params = validator.getFormParameters(); + params = this.forceInjectValuesBeforeSave(params); + params.cdate = this.getClientDate(new Date()).toISOString().slice(0, 19).replace('T', ' '); + var reqJson = JSON.stringify(params); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'saveSuccessCallback'; + callBackData.callBackFail = 'getPunchFailCallBack'; + this.customAction('savePunch', 'modules=attendance', reqJson, callBackData, true); + } else { + $("#".concat(this.getTableName(), "Form .label")).html(msg); + $("#".concat(this.getTableName(), "Form .label")).show(); + } + } + } + }, { + key: "saveSuccessCallback", + value: function saveSuccessCallback(callBackData) { + this.punch = callBackData; + this.getPunch('changePunchButtonSuccessCallBack'); + $('#PunchModel').modal('hide'); + this.get([]); + } + }, { + key: "cancel", + value: function cancel() { + $('#PunchModel').modal('hide'); + } + }, { + key: "showPunchDialog", + value: function showPunchDialog() { + this.getPunch('showPunchDialogShowPunchSuccessCallBack'); + } + }, { + key: "getPunch", + value: function getPunch(successCallBack) { + var that = this; + var object = {}; + object.date = this.getClientDate(new Date()).toISOString().slice(0, 19).replace('T', ' '); + object.offset = this.getClientGMTOffset(); + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = successCallBack; + callBackData.callBackFail = 'getPunchFailCallBack'; + this.customAction('getPunch', 'modules=attendance', reqJson, callBackData); + } + }, { + key: "showPunchDialogShowPunchSuccessCallBack", + value: function showPunchDialogShowPunchSuccessCallBack(callBackData) { + this.punch = callBackData; + $('#PunchModel').modal('show'); + + if (this.punch === null) { + $('#PunchModel').find('h3').html('Punch Time-in'); + modJs.renderForm(); + } else { + $('#PunchModel').find('h3').html('Punch Time-out'); + modJs.renderForm(this.punch); + } + + $('#Attendance').show(); + var picker = $('#time_datetime').data('datetimepicker'); + picker.setLocalDate(new Date()); + } + }, { + key: "changePunchButtonSuccessCallBack", + value: function changePunchButtonSuccessCallBack(callBackData) { + this.punch = callBackData; + + if (this.punch === null) { + $('#punchButton').html('Punch-in '); + } else { + $('#punchButton').html('Punch-out '); + } + } + }, { + key: "getPunchFailCallBack", + value: function getPunchFailCallBack(callBackData) { + this.showMessage('Error Occured while Time Punch', callBackData); + } + }, { + key: "getClientDate", + value: function getClientDate(date) { + var offset = this.getClientGMTOffset(); + var tzDate = date.addMinutes(offset * 60); + return tzDate; + } + }, { + key: "getClientGMTOffset", + value: function getClientGMTOffset() { + var rightNow = new Date(); + var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0); + var temp = jan1.toGMTString(); + var jan2 = new Date(temp.substring(0, temp.lastIndexOf(' ') - 1)); + return (jan1 - jan2) / (1000 * 60 * 60); + } + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + if (this.photoAttendance === 1 && !this.photoTaken) { + return 'Please attach a photo before submitting'; + } + + return null; + } + }, { + key: "forceInjectValuesBeforeSave", + value: function forceInjectValuesBeforeSave(params) { + if (this.photoAttendance === 1) { + var canvas = document.getElementById('attendnaceCanvas'); + params.image = canvas.toDataURL(); + } + + return params; + } + }, { + key: "postRenderForm", + value: function postRenderForm() { + if (this.photoAttendance === 1) { + $('.photoAttendance').show(); + var video = document.getElementById('attendnaceVideo'); // Get access to the camera! + + if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { + navigator.mediaDevices.getUserMedia({ + video: true + }).then(function (stream) { + //video.src = (window.URL ? window.URL : webkitURL).createObjectURL(stream); + video.srcObject = stream; + video.play(); + }); + } + + this.photoTaken = false; + this.configureEvents(); + } else { + $('.photoAttendance').remove(); + } + } + }, { + key: "configureEvents", + value: function configureEvents() { + var that = this; + var canvas = document.getElementById('attendnaceCanvas'); + var context = canvas.getContext('2d'); + var video = document.getElementById('attendnaceVideo'); + $('.attendnaceSnap').click(function () { + context.drawImage(video, 0, 0, 208, 156); + that.photoTaken = true; + return false; + }); + } + }]); + + return AttendanceAdapter; +}(_AdapterBase3["default"]); + +var EmployeeAttendanceSheetAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(EmployeeAttendanceSheetAdapter, _AdapterBase2); + + var _super2 = _createSuper(EmployeeAttendanceSheetAdapter); + + function EmployeeAttendanceSheetAdapter(endPoint, tab, filter, orderBy) { + var _this2; + + _classCallCheck(this, EmployeeAttendanceSheetAdapter); + + _this2 = _super2.call(this, endPoint, tab, filter, orderBy); + _this2.currentTimesheetId = null; + _this2.currentTimesheet = null; + return _this2; + } + + _createClass(EmployeeAttendanceSheetAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'date_start', 'date_end', 'total_time', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Start Date' + }, { + sTitle: 'End Date' + }, { + sTitle: 'Total Time' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['date_start', { + label: 'TimeSheet Start Date', + type: 'date', + validation: '' + }], ['date_end', { + label: 'TimeSheet End Date', + type: 'date', + validation: '' + }], ['details', { + label: 'Reason', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "preProcessTableData", + value: function preProcessTableData(row) { + row[1] = Date.parse(row[1]).toString('MMM d, yyyy (dddd)'); + row[2] = Date.parse(row[2]).toString('MMM d, yyyy (dddd)'); + return row; + } + }, { + key: "renderForm", + value: function renderForm(object) { + var formHtml = this.templates.formTemplate; + var html = ''; + $("#".concat(this.getTableName(), "Form")).html(formHtml); + $("#".concat(this.getTableName(), "Form")).show(); + $("#".concat(this.getTableName())).hide(); + $('#attendnacesheet_start').html(Date.parse(object.date_start).toString('MMM d, yyyy (dddd)')); + $('#attendnacesheet_end').html(Date.parse(object.date_end).toString('MMM d, yyyy (dddd)')); + this.currentTimesheet = object; + this.getTimeEntries(); + } + }, { + key: "getTimeEntries", + value: function getTimeEntries() { + var timesheetId = this.currentId; + var sourceMappingJson = JSON.stringify(modJsList.tabEmployeeTimeEntry.getSourceMapping()); + var reqJson = JSON.stringify({ + id: timesheetId, + sm: sourceMappingJson + }); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getTimeEntriesSuccessCallBack'; + callBackData.callBackFail = 'getTimeEntriesFailCallBack'; + this.customAction('getTimeEntries', 'modules=time_sheets', reqJson, callBackData); + } + }, { + key: "getTimeEntriesSuccessCallBack", + value: function getTimeEntriesSuccessCallBack(callBackData) { + var entries = callBackData; + var html = ''; + var temp = '_start__end__duration__project__details_'; + + for (var i = 0; i < entries.length; i++) { + try { + var t = temp; + t = t.replace(/_start_/g, Date.parse(entries[i].date_start).toString('MMM d, yyyy [hh:mm tt]')); + t = t.replace(/_end_/g, Date.parse(entries[i].date_end).toString('MMM d, yyyy [hh:mm tt]')); + var mili = Date.parse(entries[i].date_end) - Date.parse(entries[i].date_start); + var minutes = Math.round(mili / 60000); + var hourMinutes = minutes % 60; + var hours = (minutes - hourMinutes) / 60; + t = t.replace(/_duration_/g, "Hours (".concat(hours, ") - Min (").concat(hourMinutes, ")")); + + if (entries[i].project === 'null' || entries[i].project === null || entries[i].project === undefined) { + t = t.replace(/_project_/g, 'None'); + } else { + t = t.replace(/_project_/g, entries[i].project); + } + + t = t.replace(/_project_/g, entries[i].project); + t = t.replace(/_details_/g, entries[i].details); + t = t.replace(/_id_/g, entries[i].id); + t = t.replace(/_BASE_/g, this.baseUrl); + html += t; + } catch (e) {// DN + } + } + + $('.timesheet_entries_table_body').html(html); + + if (modJs.getTableName() === 'SubEmployeeTimeSheetAll') { + $('#submit_sheet').hide(); + $('#add_time_sheet_entry').hide(); + } else if (this.currentElement.status === 'Approved') { + $('#submit_sheet').hide(); + $('#add_time_sheet_entry').hide(); + } else { + $('#submit_sheet').show(); + $('#add_time_sheet_entry').show(); + } + } + }, { + key: "getTimeEntriesFailCallBack", + value: function getTimeEntriesFailCallBack(callBackData) { + this.showMessage('Error', 'Error occured while getting timesheet entries'); + } + }, { + key: "createPreviousAttendnacesheet", + value: function createPreviousAttendnacesheet(id) { + var reqJson = JSON.stringify({ + id: id + }); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'createPreviousAttendnacesheetSuccessCallBack'; + callBackData.callBackFail = 'createPreviousAttendnacesheetFailCallBack'; + this.customAction('createPreviousAttendnaceSheet', 'modules=attendnace', reqJson, callBackData); + } + }, { + key: "createPreviousAttendnacesheetSuccessCallBack", + value: function createPreviousAttendnacesheetSuccessCallBack(callBackData) { + $('.tooltip').css('display', 'none'); + $('.tooltip').remove(); // this.showMessage("Success", "Previous Timesheet created"); + + this.get([]); + } + }, { + key: "createPreviousAttendnacesheetFailCallBack", + value: function createPreviousAttendnacesheetFailCallBack(callBackData) { + this.showMessage('Error', callBackData); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = ''; + + if (this.getTableName() === 'EmployeeTimeSheetAll') { + html = '
    '; + } else { + html = '
    '; + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + var that = this; + var dataTableParams = { + aoColumnDefs: [{ + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 1); + }, + aTargets: [1] + }, { + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 2); + }, + aTargets: [2] + }, { + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }] + }; + return dataTableParams; + } + }, { + key: "preProcessRemoteTableData", + value: function preProcessRemoteTableData(data, cell, id) { + return Date.parse(cell).toString('MMM d, yyyy (dddd)'); + } + }]); + + return EmployeeAttendanceSheetAdapter; +}(_AdapterBase3["default"]); + +module.exports = { + AttendanceAdapter: AttendanceAdapter, + EmployeeAttendanceSheetAdapter: EmployeeAttendanceSheetAdapter +}; + +},{"../../../api/AdapterBase":39,"../../../api/FormValidation":44}],67:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.DashboardAdapter = _lib.DashboardAdapter; + +},{"./lib":68}],68:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var DashboardAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(DashboardAdapter, _AdapterBase); + + var _super = _createSuper(DashboardAdapter); + + function DashboardAdapter() { + _classCallCheck(this, DashboardAdapter); + + return _super.apply(this, arguments); + } + + _createClass(DashboardAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return []; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return []; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "get", + value: function get(callBackData) {} + }, { + key: "getPunch", + value: function getPunch() { + var that = this; + var object = {}; + object.date = this.getClientDate(new Date()).toISOString().slice(0, 19).replace('T', ' '); + object.offset = this.getClientGMTOffset(); + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getPunchSuccessCallBack'; + callBackData.callBackFail = 'getPunchFailCallBack'; + this.customAction('getPunch', 'modules=attendance', reqJson, callBackData); + } + }, { + key: "getPunchSuccessCallBack", + value: function getPunchSuccessCallBack(callBackData) { + var punch = callBackData; + + if (punch == null) { + $('#lastPunchTime').html('Not'); + $('#punchTimeText').html('Punched In'); + } else { + $('#lastPunchTime').html(Date.parse(punch.in_time).toString('h:mm tt')); + $('#punchTimeText').html('Punched In'); + } + } + }, { + key: "getPunchFailCallBack", + value: function getPunchFailCallBack(callBackData) {} + }, { + key: "getInitData", + value: function getInitData() { + var that = this; + var object = {}; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getInitDataSuccessCallBack'; + callBackData.callBackFail = 'getInitDataFailCallBack'; + this.customAction('getInitData', 'modules=dashboard', reqJson, callBackData); + } + }, { + key: "getInitDataSuccessCallBack", + value: function getInitDataSuccessCallBack(data) { + $('#timeSheetHoursWorked').html(data.lastTimeSheetHours); + $('#numberOfProjects').html(data.activeProjects); + $('#pendingLeaveCount').html(data.pendingLeaves); + $('#numberOfEmployees').html("".concat(data.numberOfEmployees, " Subordinates")); + $('#numberOfCandidates').html("".concat(data.numberOfCandidates, " Candidates")); + $('#numberOfJobs').html("".concat(data.numberOfJobs, " Active")); + $('#numberOfCourses').html("".concat(data.numberOfCourses, " Active")); + } + }, { + key: "getInitDataFailCallBack", + value: function getInitDataFailCallBack(callBackData) {} + }, { + key: "getClientDate", + value: function getClientDate(date) { + var offset = this.getClientGMTOffset(); + var tzDate = date.addMinutes(offset * 60); + return tzDate; + } + }, { + key: "getClientGMTOffset", + value: function getClientGMTOffset() { + var rightNow = new Date(); + var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0); + var temp = jan1.toGMTString(); + var jan2 = new Date(temp.substring(0, temp.lastIndexOf(' ') - 1)); + return (jan1 - jan2) / (1000 * 60 * 60); + } + }]); + + return DashboardAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + DashboardAdapter: DashboardAdapter +}; + +},{"../../../api/AdapterBase":39}],69:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeDependentAdapter = _lib.EmployeeDependentAdapter; + +},{"./lib":70}],70:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * EmployeeDependentAdapter + */ +var EmployeeDependentAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeDependentAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeDependentAdapter); + + function EmployeeDependentAdapter() { + _classCallCheck(this, EmployeeDependentAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmployeeDependentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'relationship', 'dob', 'id_number']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Relationship' + }, { + sTitle: 'Date of Birth' + }, { + sTitle: 'Id Number' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['relationship', { + label: 'Relationship', + type: 'select', + source: [['Child', 'Child'], ['Spouse', 'Spouse'], ['Parent', 'Parent'], ['Other', 'Other']] + }], ['dob', { + label: 'Date of Birth', + type: 'date', + validation: '' + }], ['id_number', { + label: 'Id Number', + type: 'text', + validation: 'none' + }]]; + } + }]); + + return EmployeeDependentAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + EmployeeDependentAdapter: EmployeeDependentAdapter +}; + +},{"../../../api/AdapterBase":39}],71:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeDocumentAdapter = _lib.EmployeeDocumentAdapter; +window.EmployeeCompanyDocumentAdapter = _lib.EmployeeCompanyDocumentAdapter; + +},{"./lib":72}],72:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ObjectAdapter2 = _interopRequireDefault(require("../../../api/ObjectAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeDocumentAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeDocumentAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeDocumentAdapter); + + function EmployeeDocumentAdapter() { + _classCallCheck(this, EmployeeDocumentAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmployeeDocumentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'document', 'details', 'date_added', 'status', 'attachment']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Document' + }, { + sTitle: 'Details' + }, { + sTitle: 'Date Added' + }, { + sTitle: 'Status' + }, { + sTitle: 'Attachment', + bVisible: false + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['document', { + label: 'Document', + type: 'select2', + 'remote-source': ['Document', 'id', 'name', 'getDocumentTypesForUser'] + }], // [ "date_added", {"label":"Date Added","type":"date","validation":""}], + ['valid_until', { + label: 'Valid Until', + type: 'date', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['Inactive', 'Inactive'], ['Draft', 'Draft']] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['attachment', { + label: 'Attachment', + type: 'fileupload', + validation: '' + }]]; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var downloadButton = ''; + var editButton = ''; + var deleteButton = ''; + var html = '
    _edit__download__delete_
    '; + html = html.replace('_download_', downloadButton); + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_attachment_/g, data[5]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }]); + + return EmployeeDocumentAdapter; +}(_AdapterBase2["default"]); +/** + * EmployeeCompanyDocumentAdapter + */ + + +var EmployeeCompanyDocumentAdapter = /*#__PURE__*/function (_ObjectAdapter) { + _inherits(EmployeeCompanyDocumentAdapter, _ObjectAdapter); + + var _super2 = _createSuper(EmployeeCompanyDocumentAdapter); + + function EmployeeCompanyDocumentAdapter() { + _classCallCheck(this, EmployeeCompanyDocumentAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(EmployeeCompanyDocumentAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'placeholder', + validation: '' + }], ['details', { + label: 'Details', + type: 'placeholder', + validation: 'none' + }], ['attachment', { + label: 'Attachment', + type: 'placeholder', + validation: 'none' + }]]; + } + }, { + key: "addDomEvents", + value: function addDomEvents(object) {} + }, { + key: "getTemplateName", + value: function getTemplateName() { + return 'file.html'; + } + }, { + key: "preProcessTableData", + value: function preProcessTableData(row) { + row.color = this.getColorByFileType(row.type); + row.icon = this.getIconByFileType(row.type); + row.details_long = this.nl2br(row.details); + + if (row.details.length > 30) { + row.details = row.details.substring(0, 30); + } + + if (row.size === undefined || row.size == null) { + row.size = ''; + } + + return row; + } + }]); + + return EmployeeCompanyDocumentAdapter; +}(_ObjectAdapter2["default"]); + +module.exports = { + EmployeeDocumentAdapter: EmployeeDocumentAdapter, + EmployeeCompanyDocumentAdapter: EmployeeCompanyDocumentAdapter +}; + +},{"../../../api/AdapterBase":39,"../../../api/ObjectAdapter":49}],73:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmergencyContactAdapter = _lib.EmergencyContactAdapter; + +},{"./lib":74}],74:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmergencyContactAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmergencyContactAdapter, _AdapterBase); + + var _super = _createSuper(EmergencyContactAdapter); + + function EmergencyContactAdapter() { + _classCallCheck(this, EmergencyContactAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmergencyContactAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'name', 'relationship', 'home_phone', 'work_phone', 'mobile_phone']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Relationship' + }, { + sTitle: 'Home Phone' + }, { + sTitle: 'Work Phone' + }, { + sTitle: 'Mobile Phone' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['name', { + label: 'Name', + type: 'text', + validation: '' + }], ['relationship', { + label: 'Relationship', + type: 'text', + validation: 'none' + }], ['home_phone', { + label: 'Home Phone', + type: 'text', + validation: 'none' + }], ['work_phone', { + label: 'Work Phone', + type: 'text', + validation: 'none' + }], ['mobile_phone', { + label: 'Mobile Phone', + type: 'text', + validation: 'none' + }]]; + } + }]); + + return EmergencyContactAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + EmergencyContactAdapter: EmergencyContactAdapter +}; + +},{"../../../api/AdapterBase":39}],75:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _react = _interopRequireDefault(require("react")); + +var _antd = require("antd"); + +var _icons = require("@ant-design/icons"); + +var _TagList = _interopRequireDefault(require("../../../../components/TagList")); + +var _UpdatePasswordModal = _interopRequireDefault(require("../../../../components/UpdatePasswordModal")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var Title = _antd.Typography.Title, + Text = _antd.Typography.Text; +var TabPane = _antd.Tabs.TabPane; + +var EmployeeProfile = /*#__PURE__*/function (_React$Component) { + _inherits(EmployeeProfile, _React$Component); + + var _super = _createSuper(EmployeeProfile); + + function EmployeeProfile(props) { + var _this; + + _classCallCheck(this, EmployeeProfile); + + _this = _super.call(this, props); + _this.state = { + loading: true, + showPasswordResetModal: false + }; + return _this; + } + + _createClass(EmployeeProfile, [{ + key: "setLoading", + value: function setLoading(value) { + this.setState({ + loading: value + }); + } + }, { + key: "setShowPasswordUpdate", + value: function setShowPasswordUpdate(value) { + this.setState({ + showPasswordResetModal: value + }); + } + }, { + key: "updateProfileImage", + value: function updateProfileImage() { + showUploadDialog("profile_image_".concat(this.props.element.id, "_").concat(new Date().getTime()), 'Upload Profile Image', 'profile_image', this.props.element.id, "profile_image_".concat(this.props.element.id), 'function', 'reloadCurrentElement', 'image'); + } + }, { + key: "getEditButtonJsx", + value: function getEditButtonJsx() { + var _this2 = this; + + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, this.state.loading && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.SyncOutlined, { + spin: true + }), + color: "processing" + }, this.props.adapter.gt('Edit')), !this.state.loading && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), + color: "processing", + onClick: function onClick() { + return modJs.edit(_this2.props.element.id); + } + }, this.props.adapter.gt('Edit'))); + } + }, { + key: "getEditButtonJsxWithPassword", + value: function getEditButtonJsxWithPassword() { + var _this3 = this; + + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, this.state.loading && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.SyncOutlined, { + spin: true + }), + color: "processing" + }, this.props.adapter.gt('Edit')), !this.state.loading && /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), + color: "processing", + onClick: function onClick() { + return modJs.edit(_this3.props.element.id); + } + }, this.props.adapter.gt('Edit')), /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.LockOutlined, null), + color: "volcano", + onClick: function onClick() { + return _this3.setShowPasswordUpdate(true); + } + }, this.props.adapter.gt('Update Password'))); + } + }, { + key: "getUpdatePasswordButtonJsx", + value: function getUpdatePasswordButtonJsx() { + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.SyncOutlined, { + spin: true + }), + color: "processing" + }, this.props.adapter.gt('Update Password'))); + } + }, { + key: "getTabViewEmployeeFilterButtonJsx", + value: function getTabViewEmployeeFilterButtonJsx(tab) { + var _this4 = this; + + return /*#__PURE__*/_react["default"].createElement(_antd.Tag, { + icon: /*#__PURE__*/_react["default"].createElement(_icons.EditOutlined, null), + color: "processing", + onClick: function onClick() { + switchTab(tab, { + employee: _this4.props.element.id + }); + } + }, this.props.adapter.gt('Edit')); + } + }, { + key: "render", + value: function render() { + var _this5 = this; + + if (this.state.loading || !this.props.element) { + return /*#__PURE__*/_react["default"].createElement("div", { + style: { + padding: '20px' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Skeleton, { + active: true + })); + } + + return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(_UpdatePasswordModal["default"], { + visible: this.state.showPasswordResetModal, + closeModal: function closeModal() { + _this5.setState({ + showPasswordResetModal: false + }); + }, + adapter: this.props.adapter + }), /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Employee Profile'), + extra: this.getEditButtonJsxWithPassword(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, { + size: 'large' + }, /*#__PURE__*/_react["default"].createElement(_antd.Avatar, { + size: 140, + src: this.props.element.image, + onClick: function onClick() { + return _this5.updateProfileImage(); + } + }), /*#__PURE__*/_react["default"].createElement(_antd.Space, { + direction: 'vertical' + }, /*#__PURE__*/_react["default"].createElement(Title, { + level: 4 + }, "".concat(this.props.element.first_name, " ").concat(this.props.element.last_name)), /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.PhoneTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.mobile_phone || ''))), /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.MailTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.work_email || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true, + style: { + width: '100%', + padding: '10px' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Employee Number'), + span: 3 + }, this.props.element.employee_id), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('ID Number'), + span: 3 + }, this.props.element.nic_num), this.props.element.ssn_num && this.props.element.ssn_num !== '' && /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Social Security Number'), + span: 3 + }, this.props.element.ssn_num)))))), /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Tabs, { + type: "card", + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(TabPane, { + tab: "Basic Information", + key: "1", + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + direction: "vertical", + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Personal Information'), + extra: this.getEditButtonJsx(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Date of Birth') + }, this.props.element.birthday || ''), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Gender') + }, this.props.element.gender), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Nationality') + }, this.props.element.nationality_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Marital Status') + }, this.props.element.marital_status), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Joined Date') + }, this.props.element.joined_date), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Driving License No') + }, this.props.element.driving_license || ''), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Other ID') + }, this.props.element.other_id || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Contact Information'), + extra: this.getEditButtonJsx(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Address'), + span: 3 + }, "".concat(this.props.element.address1, ", ").concat(this.props.element.address2 || '')), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('City') + }, this.props.element.city), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Country') + }, this.props.element.country_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Postal/Zip Code') + }, this.props.element.postal_code), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Home Phone'), + span: 2 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.PhoneTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.home_phone || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Work Phone'), + span: 2 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.PhoneTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.work_phone || '')))), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Private Email'), + span: 2 + }, /*#__PURE__*/_react["default"].createElement(_antd.Space, null, /*#__PURE__*/_react["default"].createElement(_icons.MailTwoTone, null), /*#__PURE__*/_react["default"].createElement(Text, { + copyable: true + }, " ".concat(this.props.element.private_email || ''))))))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Job Details'), + extra: this.getEditButtonJsx(), + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions, { + title: "", + bordered: true + }, /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Job Title'), + span: 2 + }, this.props.element.job_title_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Employment Status') + }, this.props.element.employment_status_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Department') + }, this.props.element.department_Name), /*#__PURE__*/_react["default"].createElement(_antd.Descriptions.Item, { + label: this.props.adapter.gt('Supervisor') + }, this.props.element.supervisor_Name)))))), /*#__PURE__*/_react["default"].createElement(TabPane, { + tab: this.props.adapter.gt('Qualifications'), + key: "2", + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_antd.Row, { + style: { + width: '100%', + padding: '10px' + }, + gutter: 24 + }, /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Skills') // extra={this.getTabViewEmployeeFilterButtonJsx('tabEmployeeSkill')} + , + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "geekblue", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/skills"), + extractTag: function extractTag(item) { + return item.skill_id.display; + } + }))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Education') // extra={this.getTabViewEmployeeFilterButtonJsx('tabEmployeeEducation')} + , + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "cyan", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/educations"), + extractTag: function extractTag(item) { + return item.education_id.display; + } + }))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Certifications') // extra={this.getTabViewEmployeeFilterButtonJsx('tabEmployeeCertification')} + , + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "volcano", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/certifications"), + extractTag: function extractTag(item) { + return item.certification_id.display; + } + }))), /*#__PURE__*/_react["default"].createElement(_antd.Col, { + span: 6 + }, /*#__PURE__*/_react["default"].createElement(_antd.Card, { + title: this.props.adapter.gt('Languages') // extra={this.getTabViewEmployeeFilterButtonJsx('tabEmployeeLanguage')} + , + style: { + width: '100%' + } + }, /*#__PURE__*/_react["default"].createElement(_TagList["default"], { + color: "orange", + apiClient: this.props.adapter.apiClient, + url: "employees/".concat(this.props.element.id, "/languages"), + extractTag: function extractTag(item) { + return item.language_id.display; + } + })))))))); + } + }]); + + return EmployeeProfile; +}(_react["default"].Component); + +var _default = EmployeeProfile; +exports["default"] = _default; + +},{"../../../../components/TagList":63,"../../../../components/UpdatePasswordModal":64,"@ant-design/icons":"@ant-design/icons","antd":"antd","react":"react"}],76:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeAdapter = _lib.EmployeeAdapter; +window.CompanyGraphAdapter = _lib.CompanyGraphAdapter; +window.ApiAccessAdapter = _lib.ApiAccessAdapter; + +},{"./lib":77}],77:[function(require,module,exports){ +"use strict"; + +var _react = _interopRequireDefault(require("react")); + +var _reactDom = _interopRequireDefault(require("react-dom")); + +var _qrcode = _interopRequireDefault(require("qrcode")); + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ReactModalAdapterBase = _interopRequireDefault(require("../../../api/ReactModalAdapterBase")); + +var _EmployeeProfile = _interopRequireDefault(require("./components/EmployeeProfile")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } + +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } + +function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(n); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + +function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } + +function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } + +function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeAdapter = /*#__PURE__*/function (_ReactModalAdapterBas) { + _inherits(EmployeeAdapter, _ReactModalAdapterBas); + + var _super = _createSuper(EmployeeAdapter); + + function EmployeeAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.fieldNameMap = {}; + _this.hiddenFields = {}; + _this.tableFields = {}; + _this.formOnlyFields = {}; + _this.currentUserId = null; + return _this; + } + + _createClass(EmployeeAdapter, [{ + key: "setFieldNameMap", + value: function setFieldNameMap(fields) { + var field; + + for (var i = 0; i < fields.length; i++) { + field = fields[i]; + this.fieldNameMap[field.name] = field; + + if (field.display === 'Hidden') { + this.hiddenFields[field.name] = field; + } else if (field.display === 'Table and Form') { + this.tableFields[field.name] = field; + } else { + this.formOnlyFields[field.name] = field; + } + } + } + }, { + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee_id', 'first_name', 'last_name', 'mobile_phone', 'department', 'gender', 'supervisor']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID' + }, { + sTitle: 'Employee Number' + }, { + sTitle: 'First Name' + }, { + sTitle: 'Last Name' + }, { + sTitle: 'Mobile' + }, { + sTitle: 'Department' + }, { + sTitle: 'Gender' + }, { + sTitle: 'Supervisor' + }]; + } + }, { + key: "initTable", + value: function initTable() { + this.initProfile(); + } + }, { + key: "initProfile", + value: function initProfile(employee) { + var tableDom = document.getElementById("".concat(this.tab)); + this.tableContainer = _react["default"].createRef(); + + _reactDom["default"].render( /*#__PURE__*/_react["default"].createElement(_EmployeeProfile["default"], { + ref: this.tableContainer, + adapter: this, + element: employee + }), tableDom); + + this.tableContainer.current.setLoading(!employee); + } + }, { + key: "get", + value: function get() { + var _this2 = this; + + this.initTable(); + this.masterDataReader.updateAllMasterData().then(function () { + _this2.viewElement(); + }); + this.trackEvent('get', this.tab, this.table); + } + }, { + key: "edit", + value: function edit(id) { + this.setTableLoading(true); + this.currentId = id; + this.getElement(id, []); + } + }, { + key: "getFormOptions", + value: function getFormOptions() { + return { + width: 1024, + twoColumnLayout: false + }; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var newFields = []; + var employee_id; + var ssn_num; + var employment_status; + var job_title; + var pay_grade; + var joined_date; + var department; + var work_email; + var country; + + if (this.checkPermission('Edit Employee Number') === 'Yes') { + employee_id = ['employee_id', { + label: 'Employee Number', + type: 'text', + validation: '' + }]; + } else { + employee_id = ['employee_id', { + label: 'Employee Number', + type: 'placeholder', + validation: '' + }]; + } + + if (this.checkPermission('Edit EPF/CPF Number') === 'Yes') { + ssn_num = ['ssn_num', { + label: 'EPF/CPF/SS No', + type: 'text', + validation: 'none' + }]; + } else { + ssn_num = ['ssn_num', { + label: 'EPF/CPF/SS No', + type: 'placeholder', + validation: 'none' + }]; + } + + if (this.checkPermission('Edit Employment Status') === 'Yes') { + employment_status = ['employment_status', { + label: 'Employment Status', + type: 'select2', + 'remote-source': ['EmploymentStatus', 'id', 'name'] + }]; + } else { + employment_status = ['employment_status', { + label: 'Employment Status', + type: 'placeholder', + 'remote-source': ['EmploymentStatus', 'id', 'name'] + }]; + } + + if (this.checkPermission('Edit Job Title') === 'Yes') { + job_title = ['job_title', { + label: 'Job Title', + type: 'select2', + 'remote-source': ['JobTitle', 'id', 'name'] + }]; + } else { + job_title = ['job_title', { + label: 'Job Title', + type: 'placeholder', + 'remote-source': ['JobTitle', 'id', 'name'] + }]; + } + + if (this.checkPermission('Edit Pay Grade') === 'Yes') { + pay_grade = ['pay_grade', { + label: 'Pay Grade', + type: 'select2', + 'allow-null': true, + 'remote-source': ['PayGrade', 'id', 'name'] + }]; + } else { + pay_grade = ['pay_grade', { + label: 'Pay Grade', + type: 'placeholder', + 'allow-null': true, + 'remote-source': ['PayGrade', 'id', 'name'] + }]; + } + + if (this.checkPermission('Edit Joined Date') === 'Yes') { + joined_date = ['joined_date', { + label: 'Joined Date', + type: 'date', + validation: '' + }]; + } else { + joined_date = ['joined_date', { + label: 'Joined Date', + type: 'placeholder', + validation: '' + }]; + } + + if (this.checkPermission('Edit Department') === 'Yes') { + department = ['department', { + label: 'Department', + type: 'select2', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }]; + } else { + department = ['department', { + label: 'Department', + type: 'placeholder', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }]; + } + + if (this.checkPermission('Edit Work Email') === 'Yes') { + work_email = ['work_email', { + label: 'Work Email', + type: 'text', + validation: 'email' + }]; + } else { + work_email = ['work_email', { + label: 'Work Email', + type: 'placeholder', + validation: 'emailOrEmpty' + }]; + } + + if (this.checkPermission('Edit Country') === 'Yes') { + country = ['country', { + label: 'Country', + type: 'select2', + 'remote-source': ['Country', 'code', 'name'] + }]; + } else { + country = ['country', { + label: 'Country', + type: 'placeholder', + 'remote-source': ['Country', 'code', 'name'] + }]; + } + + var fields = [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], employee_id, ['first_name', { + label: 'First Name', + type: 'text', + validation: '' + }], ['middle_name', { + label: 'Middle Name', + type: 'text', + validation: 'none' + }], ['last_name', { + label: 'Last Name', + type: 'text', + validation: '' + }], ['nationality', { + label: 'Nationality', + type: 'select2', + 'remote-source': ['Nationality', 'id', 'name'] + }], ['birthday', { + label: 'Date of Birth', + type: 'date', + validation: '' + }], ['gender', { + label: 'Gender', + type: 'select', + source: [['Male', 'Male'], ['Female', 'Female'], ['Other', 'Other']] + }], ['marital_status', { + label: 'Marital Status', + type: 'select', + source: [['Married', 'Married'], ['Single', 'Single'], ['Divorced', 'Divorced'], ['Widowed', 'Widowed'], ['Other', 'Other']] + }], ssn_num, ['nic_num', { + label: 'NIC', + type: 'text', + validation: 'none' + }], ['other_id', { + label: 'Other ID', + type: 'text', + validation: 'none' + }], ['driving_license', { + label: 'Driving License No', + type: 'text', + validation: 'none' + }], employment_status, job_title, pay_grade, ['work_station_id', { + label: 'Work Station Id', + type: 'text', + validation: 'none' + }], ['address1', { + label: 'Address Line 1', + type: 'text', + validation: 'none' + }], ['address2', { + label: 'Address Line 2', + type: 'text', + validation: 'none' + }], ['city', { + label: 'City', + type: 'text', + validation: 'none' + }], country, ['province', { + label: 'Province', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Province', 'id', 'name'] + }], ['postal_code', { + label: 'Postal/Zip Code', + type: 'text', + validation: 'none' + }], ['home_phone', { + label: 'Home Phone', + type: 'text', + validation: 'none' + }], ['mobile_phone', { + label: 'Mobile Phone', + type: 'text', + validation: 'none' + }], ['work_phone', { + label: 'Work Phone', + type: 'text', + validation: 'none' + }], work_email, ['private_email', { + label: 'Private Email', + type: 'text', + validation: 'emailOrEmpty' + }], joined_date, department]; + + for (var i = 0; i < this.customFields.length; i++) { + fields.push(this.customFields[i]); + } + + for (var _i = 0; _i < fields.length; _i++) { + var tempField = fields[_i]; + + if (this.hiddenFields[tempField[0]] === undefined || this.hiddenFields[tempField[0]] === null) { + if (this.fieldNameMap[tempField[0]] !== undefined && this.fieldNameMap[tempField[0]] !== null) { + var title = this.fieldNameMap[tempField[0]].textMapped; + tempField[1].label = title; + } + + newFields.push(tempField); + } + } + + return newFields; + } + }, { + key: "getMappedFields", + value: function getMappedFields() { + var fields = this.getFormFields(); + var steps = [{ + title: this.gt('Personal'), + description: this.gt('Personal Information'), + fields: ['id', 'employee_id', 'first_name', 'middle_name', 'last_name', 'nationality', 'birthday', 'gender', 'marital_status', 'ethnicity'] + }, { + title: this.gt('Identification'), + description: this.gt('Personal Information'), + fields: ['immigration_status', 'ssn_num', 'nic_num', 'other_id', 'driving_license'] + }, { + title: this.gt('Work'), + description: this.gt('Work related details'), + fields: ['employment_status', 'department', 'job_title', 'pay_grade', 'joined_date', 'confirmation_date', 'termination_date', 'work_station_id'] + }, { + title: this.gt('Contact'), + description: this.gt('Contact details'), + fields: ['address1', 'address2', 'city', 'country', 'province', 'postal_code', 'home_phone', 'mobile_phone', 'work_phone', 'work_email', 'private_email'] + }]; + + if (this.customFields.length > 0) { + steps.push({ + title: this.gt('Other'), + description: this.gt('Additional details'), + fields: this.customFields.map(function (item) { + return item[0]; + }) + }); + } + + return this.addActualFields(steps, fields); + } + }, { + key: "addActualFields", + value: function addActualFields(steps, fields) { + return steps.map(function (item) { + item.fields = item.fields.reduce(function (acc, fieldName) { + var field = fields.find(function (_ref) { + var _ref2 = _slicedToArray(_ref, 1), + name = _ref2[0]; + + return name === fieldName; + }); + + if (field) { + acc.push(field); + } + + return acc; + }, []); + return item; + }); + } + }, { + key: "getSourceMapping", + value: function getSourceMapping() { + var k = this.sourceMapping; + k.supervisor = ['Employee', 'id', 'first_name+last_name']; + return k; + } + }, { + key: "viewElement", + value: function viewElement(id) { + var sourceMappingJson = JSON.stringify(this.getSourceMapping()); + var req = { + map: sourceMappingJson + }; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'modEmployeeGetSuccessCallBack'; + callBackData.callBackFail = 'modEmployeeGetFailCallBack'; + this.customAction('get', 'modules=employees', reqJson, callBackData); + } + }, { + key: "deleteProfileImage", + value: function deleteProfileImage(empId) { + var req = { + id: empId + }; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'modEmployeeDeleteProfileImageCallBack'; + callBackData.callBackFail = 'modEmployeeDeleteProfileImageCallBack'; + this.customAction('deleteProfileImage', 'modules=employees', reqJson, callBackData); + } + }, { + key: "modEmployeeDeleteProfileImageCallBack", + value: function modEmployeeDeleteProfileImageCallBack(data) { + // eslint-disable-next-line no-restricted-globals + top.location.href = top.location.href; + } + }, { + key: "modEmployeeGetSuccessCallBack", + value: function modEmployeeGetSuccessCallBack(data) { + var currentEmpId = data[1]; + var userEmpId = data[2]; + + var _data = _slicedToArray(data, 1), + element = _data[0]; + + this.initProfile(element); + } + }, { + key: "modEmployeeGetSuccessCallBack1", + value: function modEmployeeGetSuccessCallBack1(data) { + var fields = this.getFormFields(); + var currentEmpId = data[1]; + var userEmpId = data[2]; + var _data2 = data; + + var _data3 = _slicedToArray(_data2, 1); + + data = _data3[0]; + var html = this.getCustomTemplate('myDetails.html'); + + for (var i = 0; i < fields.length; i++) { + if (this.fieldNameMap[fields[i][0]] !== undefined && this.fieldNameMap[fields[i][0]] !== null) { + var title = this.fieldNameMap[fields[i][0]].textMapped; + html = html.replace("#_label_".concat(fields[i][0], "_#"), this.gt(title)); + } + } + + html = html.replace(/#_.+_#/gi, ''); + html = html.replace(/_id_/g, data.id); + $("#".concat(this.getTableName())).html(html); + + for (var _i2 = 0; _i2 < fields.length; _i2++) { + $("#".concat(this.getTableName(), " #").concat(fields[_i2][0])).html(data[fields[_i2][0]]); + $("#".concat(this.getTableName(), " #").concat(fields[_i2][0], "_Name")).html(data["".concat(fields[_i2][0], "_Name")]); + } + + $("#".concat(this.getTableName(), " #supervisor_Name")).html(data.supervisor_Name); + var subordinates = ''; + + for (var _i3 = 0; _i3 < data.subordinates.length; _i3++) { + if (data.subordinates[_i3].first_name !== undefined && data.subordinates[_i3].first_name !== null) { + subordinates += "".concat(data.subordinates[_i3].first_name, " "); + } + + if (data.subordinates[_i3].middle_name !== undefined && data.subordinates[_i3].middle_name !== null && data.subordinates[_i3].middle_name !== '') { + subordinates += "".concat(data.subordinates[_i3].middle_name, " "); + } + + if (data.subordinates[_i3].last_name !== undefined && data.subordinates[_i3].last_name !== null && data.subordinates[_i3].last_name !== '') { + subordinates += data.subordinates[_i3].last_name; + } + + subordinates += '
    '; + } // Add custom fields + + + if (data.customFields !== undefined && data.customFields !== null && Object.keys(data.customFields).length > 0) { + var ct = '
    '; + var sectionTemplate = '

    #_section.name_#

    '; + var customFieldHtml; + + for (var index in data.customFields) { + if (!data.customFields[index][1]) { + data.customFields[index][1] = this.gt('Other Details'); + } + + var sectionId = data.customFields[index][1].toLocaleLowerCase(); + sectionId = sectionId.replace(' ', '_'); + + if ($("#cont_".concat(sectionId)).length <= 0) { + // Add section + var sectionHtml = sectionTemplate; + sectionHtml = sectionHtml.replace('#_section_#', sectionId); + sectionHtml = sectionHtml.replace('#_section.name_#', data.customFields[index][1]); + $('#customFieldsCont').append($(sectionHtml)); + } + + customFieldHtml = ct; + customFieldHtml = customFieldHtml.replace('#_label_#', index); + + if (data.customFields[index][2] === 'fileupload') { + customFieldHtml = customFieldHtml.replace('#_value_#', "")); + } else { + customFieldHtml = customFieldHtml.replace('#_value_#', data.customFields[index][0]); + } + + $("#cont_".concat(sectionId)).append($(customFieldHtml)); + } + } else { + $('#customFieldsCont').remove(); + } + + $("#".concat(this.getTableName(), " #subordinates")).html(subordinates); + $("#".concat(this.getTableName(), " #name")).html("".concat(data.first_name, " ").concat(data.last_name)); + this.currentUserId = data.id; + $("#".concat(this.getTableName(), " #profile_image_").concat(data.id)).attr('src', data.image); + + if (this.checkPermission('Upload/Delete Profile Image') === 'No') { + $('#employeeUploadProfileImage').remove(); + $('#employeeDeleteProfileImage').remove(); + } + + if (this.checkPermission('Edit Employee Details') === 'No') { + $('#employeeProfileEditInfo').remove(); + } + + if (currentEmpId !== userEmpId) { + $('#employeeUpdatePassword').remove(); + } + + this.cancel(); + } + }, { + key: "modEmployeeGetFailCallBack", + value: function modEmployeeGetFailCallBack(data) {} + }, { + key: "editEmployee", + value: function editEmployee() { + this.edit(this.currentUserId); + } + }, { + key: "changePassword", + value: function changePassword() { + $('#adminUsersModel').modal('show'); + $('#adminUsersChangePwd #newpwd').val(''); + $('#adminUsersChangePwd #conpwd').val(''); + $('#adminUsersChangePwd_error').hide(); + } + }, { + key: "changePasswordConfirm", + value: function changePasswordConfirm() { + $('#adminUsersChangePwd_error').hide(); + var password = $('#adminUsersChangePwd #newpwd').val(); + var conPassword = $('#adminUsersChangePwd #conpwd').val(); + + if (conPassword !== password) { + $('#adminUsersChangePwd_error').html("Passwords don't match"); + $('#adminUsersChangePwd_error').show(); + return; + } + + var validatePasswordResult = this.validatePassword(password); + + if (validatePasswordResult != null) { + $('#adminUsersChangePwd_error').html(validatePasswordResult); + $('#adminUsersChangePwd_error').show(); + return; + } + + var req = { + pwd: conPassword + }; + var reqJson = JSON.stringify(req); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'changePasswordSuccessCallBack'; + callBackData.callBackFail = 'changePasswordFailCallBack'; + this.customAction('changePassword', 'modules=employees', reqJson, callBackData); + } + }, { + key: "closeChangePassword", + value: function closeChangePassword() { + $('#adminUsersModel').modal('hide'); + } + }, { + key: "changePasswordSuccessCallBack", + value: function changePasswordSuccessCallBack(callBackData, serverData) { + this.closeChangePassword(); + this.showMessage('Password Change', 'Password changed successfully'); + } + }, { + key: "changePasswordFailCallBack", + value: function changePasswordFailCallBack(callBackData, serverData) { + this.closeChangePassword(); + this.showMessage('Error', callBackData); + } + }]); + + return EmployeeAdapter; +}(_ReactModalAdapterBase["default"]); +/* + * Company Graph + */ + + +var CompanyStructureAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(CompanyStructureAdapter, _AdapterBase); + + var _super2 = _createSuper(CompanyStructureAdapter); + + function CompanyStructureAdapter() { + _classCallCheck(this, CompanyStructureAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(CompanyStructureAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'title', 'address', 'type', 'country', 'parent']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Name' + }, { + sTitle: 'Address' + }, { + sTitle: 'Type' + }, { + sTitle: 'Country', + sClass: 'center' + }, { + sTitle: 'Parent Structure' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['title', { + label: 'Name', + type: 'text', + validation: '' + }], ['description', { + label: 'Details', + type: 'textarea', + validation: '' + }], ['address', { + label: 'Address', + type: 'textarea', + validation: 'none' + }], ['type', { + label: 'Type', + type: 'select', + source: [['Company', 'Company'], ['Head Office', 'Head Office'], ['Regional Office', 'Regional Office'], ['Department', 'Department'], ['Unit', 'Unit'], ['Sub Unit', 'Sub Unit'], ['Other', 'Other']] + }], ['country', { + label: 'Country', + type: 'select', + 'remote-source': ['Country', 'code', 'name'] + }], ['parent', { + label: 'Parent Structure', + type: 'select', + 'allow-null': true, + 'remote-source': ['CompanyStructure', 'id', 'title'] + }]]; + } + }]); + + return CompanyStructureAdapter; +}(_AdapterBase3["default"]); + +var CompanyGraphAdapter = /*#__PURE__*/function (_CompanyStructureAdap) { + _inherits(CompanyGraphAdapter, _CompanyStructureAdap); + + var _super3 = _createSuper(CompanyGraphAdapter); + + function CompanyGraphAdapter(endPoint, tab, filter, orderBy) { + var _this3; + + _classCallCheck(this, CompanyGraphAdapter); + + _this3 = _super3.call(this, endPoint, tab, filter, orderBy); + _this3.nodeIdCounter = 0; + return _this3; + } + + _createClass(CompanyGraphAdapter, [{ + key: "convertToTree", + value: function convertToTree(data) { + var ice = {}; + ice.id = -1; + ice.title = ''; + ice.name = ''; + ice.children = []; + var parent = null; + var added = {}; + + for (var i = 0; i < data.length; i++) { + data[i].name = data[i].title; + + if (data[i].parent !== null && data[i].parent !== undefined) { + parent = this.findParent(data, data[i].parent); + + if (parent !== null) { + if (parent.children === undefined || parent.children === null) { + parent.children = []; + } + + parent.children.push(data[i]); + } + } + } + + for (var _i4 = 0; _i4 < data.length; _i4++) { + if (data[_i4].parent === null || data[_i4].parent === undefined) { + ice.children.push(data[_i4]); + } + } + + return ice; + } + }, { + key: "findParent", + value: function findParent(data, parent) { + for (var i = 0; i < data.length; i++) { + if (data[i].title === parent || data[i].title === parent) { + return data[i]; + } + } + + return null; + } + }, { + key: "createTable", + value: function createTable(elementId) { + $('#tabPageCompanyGraph').html(''); + var that = this; // eslint-disable-next-line prefer-destructuring + + var sourceData = this.sourceData; // this.fixCyclicParent(sourceData); + + var treeData = this.convertToTree(sourceData); + var m = [20, 120, 20, 120]; + var w = 5000 - m[1] - m[3]; + var h = 1000 - m[0] - m[2]; + var tree = d3.layout.tree().size([h, w]); + this.diagonal = d3.svg.diagonal().projection(function (d) { + return [d.y, d.x]; + }); + this.vis = d3.select('#tabPageCompanyGraph').append('svg:svg').attr('width', w + m[1] + m[3]).attr('height', h + m[0] + m[2]).append('svg:g').attr('transform', "translate(".concat(m[3], ",").concat(m[0], ")")); + var root = treeData; + root.x0 = h / 2; + root.y0 = 0; + + function toggleAll(d) { + if (d.children) { + console.log(d.name); + d.children.forEach(toggleAll); + that.toggle(d); + } + } + + this.update(root, tree, root); + } + }, { + key: "update", + value: function update(source, tree, root) { + var that = this; + var duration = d3.event && d3.event.altKey ? 5000 : 500; // Compute the new tree layout. + + var nodes = tree.nodes(root).reverse(); // Normalize for fixed-depth. + + nodes.forEach(function (d) { + d.y = d.depth * 180; + }); // Update the nodes� + + var node = that.vis.selectAll('g.node') // eslint-disable-next-line no-return-assign + .data(nodes, function (d) { + return d.id || (d.id = ++that.nodeIdCounter); + }); // Enter any new nodes at the parent's previous position. + + var nodeEnter = node.enter().append('svg:g').attr('class', 'node').attr('transform', function (d) { + return "translate(".concat(source.y0, ",").concat(source.x0, ")"); + }).on('click', function (d) { + that.toggle(d); + that.update(d, tree, root); + }); + nodeEnter.append('svg:circle').attr('r', 1e-6) // eslint-disable-next-line no-underscore-dangle + .style('fill', function (d) { + return d._children ? 'lightsteelblue' : '#fff'; + }); + nodeEnter.append('svg:text').attr('x', function (d) { + return d.children || d._children ? -10 : 10; + }).attr('dy', '.35em').attr('text-anchor', function (d) { + return d.children || d._children ? 'end' : 'start'; + }).text(function (d) { + return d.name; + }).style('fill-opacity', 1e-6); // Transition nodes to their new position. + + var nodeUpdate = node.transition().duration(duration).attr('transform', function (d) { + return "translate(".concat(d.y, ",").concat(d.x, ")"); + }); + nodeUpdate.select('circle').attr('r', 4.5).style('fill', function (d) { + return d._children ? 'lightsteelblue' : '#fff'; + }); + nodeUpdate.select('text').style('fill-opacity', 1); // Transition exiting nodes to the parent's new position. + + var nodeExit = node.exit().transition().duration(duration).attr('transform', function (d) { + return "translate(".concat(source.y, ",").concat(source.x, ")"); + }).remove(); + nodeExit.select('circle').attr('r', 1e-6); + nodeExit.select('text').style('fill-opacity', 1e-6); // Update the links� + + var link = that.vis.selectAll('path.link').data(tree.links(nodes), function (d) { + return d.target.id; + }); // Enter any new links at the parent's previous position. + + link.enter().insert('svg:path', 'g').attr('class', 'link').attr('d', function (d) { + var o = { + x: source.x0, + y: source.y0 + }; + return that.diagonal({ + source: o, + target: o + }); + }).transition().duration(duration).attr('d', that.diagonal); // Transition links to their new position. + + link.transition().duration(duration).attr('d', that.diagonal); // Transition exiting nodes to the parent's new position. + + link.exit().transition().duration(duration).attr('d', function (d) { + var o = { + x: source.x, + y: source.y + }; + return that.diagonal({ + source: o, + target: o + }); + }).remove(); // Stash the old positions for transition. + + nodes.forEach(function (d) { + d.x0 = d.x; + d.y0 = d.y; + }); + } // Toggle children. + + }, { + key: "toggle", + value: function toggle(d) { + if (d.children) { + d._children = d.children; + d.children = null; + } else { + d.children = d._children; + d._children = null; + } + } + }, { + key: "getSourceDataById", + value: function getSourceDataById(id) { + for (var i = 0; i < this.sourceData.length; i++) { + if (this.sourceData[i].id === id) { + return this.sourceData[i]; + } + } + + return null; + } + }, { + key: "fixCyclicParent", + value: function fixCyclicParent(sourceData) { + var errorMsg = ''; + + for (var i = 0; i < sourceData.length; i++) { + var obj = sourceData[i]; + var curObj = obj; + var parentIdArr = {}; + parentIdArr[curObj.id] = 1; + + while (curObj.parent != null && curObj.parent !== undefined) { + var parent = this.getSourceDataById(curObj.parent); + + if (parent == null) { + break; + } else if (parentIdArr[parent.id] === 1) { + errorMsg = "".concat(obj.title, "'s parent structure set to ").concat(parent.title, "
    "); + obj.parent = null; + break; + } + + parentIdArr[parent.id] = 1; + curObj = parent; + } + } + + if (errorMsg !== '') { + this.showMessage('Company Structure is having a cyclic dependency', "We found a cyclic dependency due to following reasons:
    ".concat(errorMsg)); + return false; + } + + return true; + } + }]); + + return CompanyGraphAdapter; +}(CompanyStructureAdapter); +/* + * Api Access + */ + + +var ApiAccessAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(ApiAccessAdapter, _AdapterBase2); + + var _super4 = _createSuper(ApiAccessAdapter); + + function ApiAccessAdapter() { + _classCallCheck(this, ApiAccessAdapter); + + return _super4.apply(this, arguments); + } + + _createClass(ApiAccessAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return []; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return []; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return []; + } + }, { + key: "setToken", + value: function setToken(token) { + this.token = token; + } + }, { + key: "get", + value: function get() { + var canvas = document.getElementById('apiQRcode'); + + _qrcode["default"].toCanvas(canvas, JSON.stringify({ + key: 'IceHrm', + url: this.apiUrl, + token: this.token + }), function (error) { + if (error) { + console.log(error); + } + }); + } + }]); + + return ApiAccessAdapter; +}(_AdapterBase3["default"]); + +module.exports = { + EmployeeAdapter: EmployeeAdapter, + CompanyGraphAdapter: CompanyGraphAdapter, + ApiAccessAdapter: ApiAccessAdapter +}; + +},{"../../../api/AdapterBase":39,"../../../api/ReactModalAdapterBase":50,"./components/EmployeeProfile":75,"qrcode":7,"react":"react","react-dom":"react-dom"}],78:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeCompanyLoanAdapter = _lib.EmployeeCompanyLoanAdapter; + +},{"./lib":79}],79:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeCompanyLoanAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeCompanyLoanAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeCompanyLoanAdapter); + + function EmployeeCompanyLoanAdapter() { + _classCallCheck(this, EmployeeCompanyLoanAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmployeeCompanyLoanAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'loan', 'start_date', 'period_months', 'currency', 'amount', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Loan Type' + }, { + sTitle: 'Loan Start Date' + }, { + sTitle: 'Loan Period (Months)' + }, { + sTitle: 'Currency' + }, { + sTitle: 'Amount' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['loan', { + label: 'Loan Type', + type: 'placeholder', + 'remote-source': ['CompanyLoan', 'id', 'name'] + }], ['start_date', { + label: 'Loan Start Date', + type: 'placeholder', + validation: '' + }], ['last_installment_date', { + label: 'Last Installment Date', + type: 'placeholder', + validation: 'none' + }], ['period_months', { + label: 'Loan Period (Months)', + type: 'placeholder', + validation: 'number' + }], ['currency', { + label: 'Currency', + type: 'placeholder', + 'remote-source': ['CurrencyType', 'id', 'name'] + }], ['amount', { + label: 'Loan Amount', + type: 'placeholder', + validation: 'float' + }], ['monthly_installment', { + label: 'Monthly Installment', + type: 'placeholder', + validation: 'float' + }], ['status', { + label: 'Status', + type: 'placeholder', + source: [['Approved', 'Approved'], ['Paid', 'Paid'], ['Suspended', 'Suspended']] + }], ['details', { + label: 'Details', + type: 'placeholder', + validation: 'none' + }]]; + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var editButton = '' + ''; + var deleteButton = '' + ''; + var html = '
    _edit__delete_
    '; + + if (this.showDelete) { + html = html.replace('_delete_', deleteButton); + } else { + html = html.replace('_delete_', ''); + } + + if (this.showEdit) { + html = html.replace('_edit_', editButton); + } else { + html = html.replace('_edit_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }]); + + return EmployeeCompanyLoanAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + EmployeeCompanyLoanAdapter: EmployeeCompanyLoanAdapter +}; + +},{"../../../api/AdapterBase":39}],80:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeOvertimeAdapter = _lib.EmployeeOvertimeAdapter; +window.EmployeeOvertimeApproverAdapter = _lib.EmployeeOvertimeApproverAdapter; +window.SubordinateEmployeeOvertimeAdapter = _lib.SubordinateEmployeeOvertimeAdapter; + +},{"./lib":81}],81:[function(require,module,exports){ +"use strict"; + +var _ApproveModuleAdapter2 = _interopRequireDefault(require("../../../api/ApproveModuleAdapter")); + +var _lib = require("../../../admin/src/overtime/lib"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeOvertimeAdapter = /*#__PURE__*/function (_ApproveModuleAdapter) { + _inherits(EmployeeOvertimeAdapter, _ApproveModuleAdapter); + + var _super = _createSuper(EmployeeOvertimeAdapter); + + function EmployeeOvertimeAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeOvertimeAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.itemName = 'Overtime'; + _this.itemNameLower = 'employeeovertime'; + _this.modulePathName = 'overtime'; + return _this; + } + + _createClass(EmployeeOvertimeAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'category', 'start_time', 'end_time', 'project', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Category' + }, { + sTitle: 'Start Time' + }, { + sTitle: 'End Time' + }, { + sTitle: 'Project' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['category', { + label: 'Category', + type: 'select2', + 'allow-null': false, + 'remote-source': ['OvertimeCategory', 'id', 'name'] + }], ['start_time', { + label: 'Start Time', + type: 'datetime', + validation: '' + }], ['end_time', { + label: 'End Time', + type: 'datetime', + validation: '' + }], ['project', { + label: 'Project', + type: 'select2', + 'allow-null': true, + 'null=label': 'none', + 'remote-source': ['Project', 'id', 'name'] + }], ['notes', { + label: 'Notes', + type: 'textarea', + validation: 'none' + }]]; + } + }]); + + return EmployeeOvertimeAdapter; +}(_ApproveModuleAdapter2["default"]); +/* + EmployeeOvertimeApproverAdapter + */ + + +var EmployeeOvertimeApproverAdapter = /*#__PURE__*/function (_EmployeeOvertimeAdmi) { + _inherits(EmployeeOvertimeApproverAdapter, _EmployeeOvertimeAdmi); + + var _super2 = _createSuper(EmployeeOvertimeApproverAdapter); + + function EmployeeOvertimeApproverAdapter(endPoint, tab, filter, orderBy) { + var _this2; + + _classCallCheck(this, EmployeeOvertimeApproverAdapter); + + _this2 = _super2.call(this, endPoint, tab, filter, orderBy); + _this2.itemName = 'Overtime'; + _this2.itemNameLower = 'employeeovertime'; + _this2.modulePathName = 'overtime'; + return _this2; + } + + _createClass(EmployeeOvertimeApproverAdapter, [{ + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var statusChangeButton = '' + ''; + var viewLogsButton = ''; + var html = '
    _status__logs_
    '; + html = html.replace('_logs_', viewLogsButton); + + if (data[this.getStatusFieldPosition()] === 'Processing') { + html = html.replace('_status_', statusChangeButton); + } else { + html = html.replace('_status_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + html = html.replace(/_cstatus_/g, data[this.getStatusFieldPosition()]); + return html; + } + }, { + key: "getStatusOptionsData", + value: function getStatusOptionsData(currentStatus) { + var data = {}; + + if (currentStatus === 'Processing') { + data.Approved = 'Approved'; + data.Rejected = 'Rejected'; + } + + return data; + } + }, { + key: "getStatusOptions", + value: function getStatusOptions(currentStatus) { + return this.generateOptions(this.getStatusOptionsData(currentStatus)); + } + }]); + + return EmployeeOvertimeApproverAdapter; +}(_lib.EmployeeOvertimeAdminAdapter); +/* + EmployeeOvertimeAdapter + */ + + +var SubordinateEmployeeOvertimeAdapter = /*#__PURE__*/function (_EmployeeOvertimeAdmi2) { + _inherits(SubordinateEmployeeOvertimeAdapter, _EmployeeOvertimeAdmi2); + + var _super3 = _createSuper(SubordinateEmployeeOvertimeAdapter); + + function SubordinateEmployeeOvertimeAdapter(endPoint, tab, filter, orderBy) { + var _this3; + + _classCallCheck(this, SubordinateEmployeeOvertimeAdapter); + + _this3 = _super3.call(this, endPoint, tab, filter, orderBy); + _this3.itemName = 'Overtime'; + _this3.itemNameLower = 'employeeovertime'; + _this3.modulePathName = 'overtime'; + return _this3; + } + + return SubordinateEmployeeOvertimeAdapter; +}(_lib.EmployeeOvertimeAdminAdapter); + +module.exports = { + EmployeeOvertimeAdapter: EmployeeOvertimeAdapter, + EmployeeOvertimeApproverAdapter: EmployeeOvertimeApproverAdapter, + SubordinateEmployeeOvertimeAdapter: SubordinateEmployeeOvertimeAdapter +}; + +},{"../../../admin/src/overtime/lib":35,"../../../api/ApproveModuleAdapter":41}],82:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeProjectAdapter = _lib.EmployeeProjectAdapter; + +},{"./lib":83}],83:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeProjectAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeProjectAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeProjectAdapter); + + function EmployeeProjectAdapter() { + _classCallCheck(this, EmployeeProjectAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmployeeProjectAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'project']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Project' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['project', { + label: 'Project', + type: 'select2', + 'remote-source': ['Project', 'id', 'name'] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }]); + + return EmployeeProjectAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + EmployeeProjectAdapter: EmployeeProjectAdapter +}; + +},{"../../../api/AdapterBase":39}],84:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeSkillAdapter = _lib.EmployeeSkillAdapter; +window.EmployeeEducationAdapter = _lib.EmployeeEducationAdapter; +window.EmployeeCertificationAdapter = _lib.EmployeeCertificationAdapter; +window.EmployeeLanguageAdapter = _lib.EmployeeLanguageAdapter; + +},{"./lib":85}],85:[function(require,module,exports){ +"use strict"; + +var _AdapterBase5 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeSkillAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeSkillAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeSkillAdapter); + + function EmployeeSkillAdapter() { + _classCallCheck(this, EmployeeSkillAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmployeeSkillAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'skill_id', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Skill' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['skill_id', { + label: 'Skill', + type: 'select2', + 'allow-null': true, + 'remote-source': ['Skill', 'id', 'name'] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: '' + }]]; + } + }]); + + return EmployeeSkillAdapter; +}(_AdapterBase5["default"]); +/** + * EmployeeEducationAdapter + */ + + +var EmployeeEducationAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(EmployeeEducationAdapter, _AdapterBase2); + + var _super2 = _createSuper(EmployeeEducationAdapter); + + function EmployeeEducationAdapter() { + _classCallCheck(this, EmployeeEducationAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(EmployeeEducationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'education_id', 'institute', 'date_start', 'date_end']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Qualification' + }, { + sTitle: 'Institute' + }, { + sTitle: 'Start Date' + }, { + sTitle: 'Completed On' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['education_id', { + label: 'Qualification', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Education', 'id', 'name'] + }], ['institute', { + label: 'Institute', + type: 'text', + validation: '' + }], ['date_start', { + label: 'Start Date', + type: 'date', + validation: 'none' + }], ['date_end', { + label: 'Completed On', + type: 'date', + validation: 'none' + }]]; + } + }]); + + return EmployeeEducationAdapter; +}(_AdapterBase5["default"]); +/** + * EmployeeCertificationAdapter + */ + + +var EmployeeCertificationAdapter = /*#__PURE__*/function (_AdapterBase3) { + _inherits(EmployeeCertificationAdapter, _AdapterBase3); + + var _super3 = _createSuper(EmployeeCertificationAdapter); + + function EmployeeCertificationAdapter() { + _classCallCheck(this, EmployeeCertificationAdapter); + + return _super3.apply(this, arguments); + } + + _createClass(EmployeeCertificationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'certification_id', 'institute', 'date_start', 'date_start']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Certification' + }, { + sTitle: 'Institute' + }, { + sTitle: 'Granted On' + }, { + sTitle: 'Valid Thru' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['certification_id', { + label: 'Certification', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Certification', 'id', 'name'] + }], ['institute', { + label: 'Institute', + type: 'text', + validation: '' + }], ['date_start', { + label: 'Granted On', + type: 'date', + validation: 'none' + }], ['date_end', { + label: 'Valid Thru', + type: 'date', + validation: 'none' + }]]; + } + }]); + + return EmployeeCertificationAdapter; +}(_AdapterBase5["default"]); +/** + * EmployeeLanguageAdapter + */ + + +var EmployeeLanguageAdapter = /*#__PURE__*/function (_AdapterBase4) { + _inherits(EmployeeLanguageAdapter, _AdapterBase4); + + var _super4 = _createSuper(EmployeeLanguageAdapter); + + function EmployeeLanguageAdapter() { + _classCallCheck(this, EmployeeLanguageAdapter); + + return _super4.apply(this, arguments); + } + + _createClass(EmployeeLanguageAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'language_id', 'reading', 'speaking', 'writing', 'understanding']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Language' + }, { + sTitle: 'Reading' + }, { + sTitle: 'Speaking' + }, { + sTitle: 'Writing' + }, { + sTitle: 'Understanding' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + var compArray = [['Elementary Proficiency', 'Elementary Proficiency'], ['Limited Working Proficiency', 'Limited Working Proficiency'], ['Professional Working Proficiency', 'Professional Working Proficiency'], ['Full Professional Proficiency', 'Full Professional Proficiency'], ['Native or Bilingual Proficiency', 'Native or Bilingual Proficiency']]; + return [['id', { + label: 'ID', + type: 'hidden' + }], ['language_id', { + label: 'Language', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Language', 'id', 'description'] + }], ['reading', { + label: 'Reading', + type: 'select', + source: compArray + }], ['speaking', { + label: 'Speaking', + type: 'select', + source: compArray + }], ['writing', { + label: 'Writing', + type: 'select', + source: compArray + }], ['understanding', { + label: 'Understanding', + type: 'select', + source: compArray + }]]; + } + }]); + + return EmployeeLanguageAdapter; +}(_AdapterBase5["default"]); + +module.exports = { + EmployeeSkillAdapter: EmployeeSkillAdapter, + EmployeeEducationAdapter: EmployeeEducationAdapter, + EmployeeCertificationAdapter: EmployeeCertificationAdapter, + EmployeeLanguageAdapter: EmployeeLanguageAdapter +}; + +},{"../../../api/AdapterBase":39}],86:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.UserReportAdapter = _lib.UserReportAdapter; + +},{"./lib":87}],87:[function(require,module,exports){ +"use strict"; + +var _lib = require("../../../admin/src/reports/lib"); + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +/** + * UserReportAdapter + */ +var UserReportAdapter = /*#__PURE__*/function (_ReportAdapter) { + _inherits(UserReportAdapter, _ReportAdapter); + + var _super = _createSuper(UserReportAdapter); + + function UserReportAdapter() { + _classCallCheck(this, UserReportAdapter); + + return _super.apply(this, arguments); + } + + _createClass(UserReportAdapter, [{ + key: "renderForm", + value: function renderForm(object) { + var that = this; + this.processFormFieldsWithObject(object); + + if (this.remoteFieldsExists) { + var cb = function cb() { + that.renderFormNew(object); + }; + + this.initFieldMasterData(cb); + } else { + this.initFieldMasterData(); + that.renderFormNew(object); + } + + this.currentReport = object; + } + }]); + + return UserReportAdapter; +}(_lib.ReportAdapter); + +module.exports = { + UserReportAdapter: UserReportAdapter +}; + +},{"../../../admin/src/reports/lib":36}],88:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeSalaryAdapter = _lib.EmployeeSalaryAdapter; + +},{"./lib":89}],89:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeSalaryAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeSalaryAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeSalaryAdapter); + + function EmployeeSalaryAdapter() { + _classCallCheck(this, EmployeeSalaryAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmployeeSalaryAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'component', 'amount', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Salary Component' + }, { + sTitle: 'Amount' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['component', { + label: 'Salary Component', + type: 'select2', + 'remote-source': ['SalaryComponent', 'id', 'name'] + }], ['amount', { + label: 'Amount', + type: 'text', + validation: 'float' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }]]; + } + }]); + + return EmployeeSalaryAdapter; +}(_AdapterBase2["default"]); + +module.exports = { + EmployeeSalaryAdapter: EmployeeSalaryAdapter +}; + +},{"../../../api/AdapterBase":39}],90:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.StaffDirectoryAdapter = _lib.StaffDirectoryAdapter; +window.StaffDirectoryObjectAdapter = _lib.StaffDirectoryObjectAdapter; + +},{"./lib":91}],91:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ObjectAdapter2 = _interopRequireDefault(require("../../../api/ObjectAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var StaffDirectoryAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(StaffDirectoryAdapter, _AdapterBase); + + var _super = _createSuper(StaffDirectoryAdapter); + + function StaffDirectoryAdapter() { + _classCallCheck(this, StaffDirectoryAdapter); + + return _super.apply(this, arguments); + } + + _createClass(StaffDirectoryAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'image', 'first_name', 'last_name', 'job_title', 'department', 'work_phone', 'work_email', 'joined_date']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: '' + }, { + sTitle: 'First Name' + }, { + sTitle: 'Last Name' + }, { + sTitle: 'Job Title' + }, { + sTitle: 'Department' + }, { + sTitle: 'Work Phone' + }, { + sTitle: 'Work Email' + }, { + sTitle: 'Joined Date' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['first_name', { + label: 'First Name', + type: 'text', + validation: '' + }], ['last_name', { + label: 'Last Name', + type: 'text', + validation: '' + }], ['job_title', { + label: 'Job Title', + type: 'select2', + 'remote-source': ['JobTitle', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['work_phone', { + label: 'Work Phone', + type: 'text', + validation: 'none' + }], ['work_email', { + label: 'Work Email', + type: 'placeholder', + validation: 'emailOrEmpty' + }], ['joined_date', { + label: 'Joined Date', + type: 'date', + validation: '' + }]]; + } + }, { + key: "showActionButtons", + value: function showActionButtons() { + return false; + } + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + var that = this; + var dataTableParams = { + aoColumnDefs: [{ + fnRender: function fnRender(data, cell) { + try { + return that.preProcessRemoteTableData(data, cell, 1); + } catch (e) { + return cell; + } + }, + aTargets: [1] + }, { + fnRender: function fnRender(data, cell) { + try { + return that.preProcessRemoteTableData(data, cell, 8); + } catch (e) { + return cell; + } + }, + aTargets: [8] + }] + }; + return dataTableParams; + } // eslint-disable-next-line consistent-return + + }, { + key: "preProcessRemoteTableData", + value: function preProcessRemoteTableData(data, cell, id) { + if (id === 8) { + if (cell === '0000-00-00 00:00:00' || cell === '' || cell === undefined || cell === null) { + return ''; + } + + return Date.parse(cell).toString('yyyy MMM d'); + } + + if (id === 1) { + var tmp = 'User Image'; + return tmp.replace('_img_', cell); + } + } + }]); + + return StaffDirectoryAdapter; +}(_AdapterBase2["default"]); +/* + StaffDirectoryObjectAdapter + */ + + +var StaffDirectoryObjectAdapter = /*#__PURE__*/function (_ObjectAdapter) { + _inherits(StaffDirectoryObjectAdapter, _ObjectAdapter); + + var _super2 = _createSuper(StaffDirectoryObjectAdapter); + + function StaffDirectoryObjectAdapter() { + _classCallCheck(this, StaffDirectoryObjectAdapter); + + return _super2.apply(this, arguments); + } + + _createClass(StaffDirectoryObjectAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'image', 'first_name', 'last_name', 'job_title', 'department', 'work_phone', 'work_email', 'joined_date']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: '' + }, { + sTitle: 'First Name' + }, { + sTitle: 'Last Name' + }, { + sTitle: 'Job Title' + }, { + sTitle: 'Department' + }, { + sTitle: 'Work Phone' + }, { + sTitle: 'Work Email' + }, { + sTitle: 'Joined Date' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden', + validation: '' + }], ['first_name', { + label: 'First Name', + type: 'text', + validation: '' + }], ['last_name', { + label: 'Last Name', + type: 'text', + validation: '' + }], ['job_title', { + label: 'Job Title', + type: 'select2', + 'remote-source': ['JobTitle', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }], ['work_phone', { + label: 'Work Phone', + type: 'text', + validation: 'none' + }], ['work_email', { + label: 'Work Email', + type: 'placeholder', + validation: 'emailOrEmpty' + }], ['joined_date', { + label: 'Joined Date', + type: 'date', + validation: '' + }]]; + } // eslint-disable-next-line no-unused-vars + + }, { + key: "addDomEvents", + value: function addDomEvents(object) {} + }, { + key: "getTemplateName", + value: function getTemplateName() { + return 'element.html'; + } + }, { + key: "preProcessTableData", + value: function preProcessTableData(_row) { + var row = _row; + row.color = this.getColorByRandomString(row.first_name); + return row; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['job_title', { + label: 'Job Title', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Job Titles', + 'remote-source': ['JobTitle', 'id', 'name'] + }], ['department', { + label: 'Department', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Departments', + 'remote-source': ['CompanyStructure', 'id', 'title'] + }]]; + } + }]); + + return StaffDirectoryObjectAdapter; +}(_ObjectAdapter2["default"]); + +module.exports = { + StaffDirectoryAdapter: StaffDirectoryAdapter, + StaffDirectoryObjectAdapter: StaffDirectoryObjectAdapter +}; + +},{"../../../api/AdapterBase":39,"../../../api/ObjectAdapter":49}],92:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeTimeSheetAdapter = _lib.EmployeeTimeSheetAdapter; +window.SubEmployeeTimeSheetAdapter = _lib.SubEmployeeTimeSheetAdapter; +window.EmployeeTimeEntryAdapter = _lib.EmployeeTimeEntryAdapter; +window.QtsheetAdapter = _lib.QtsheetAdapter; + +},{"./lib":93}],93:[function(require,module,exports){ +"use strict"; + +var _AdapterBase3 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _FormValidation = _interopRequireDefault(require("../../../api/FormValidation")); + +var _TableEditAdapter2 = _interopRequireDefault(require("../../../api/TableEditAdapter")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var ValidationRules = _FormValidation["default"].getValidationRules(); + +var EmployeeTimeSheetAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeTimeSheetAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeTimeSheetAdapter); + + function EmployeeTimeSheetAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeTimeSheetAdapter); + + _this = _super.call(this, endPoint, tab, filter, orderBy); + _this.currentTimesheetId = null; + _this.currentTimesheet = null; + _this.needStartEndTime = false; + return _this; + } + + _createClass(EmployeeTimeSheetAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'date_start', 'date_end', 'total_time', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Start Date' + }, { + sTitle: 'End Date' + }, { + sTitle: 'Total Time' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['date_start', { + label: 'TimeSheet Start Date', + type: 'date', + validation: '' + }], ['date_end', { + label: 'TimeSheet End Date', + type: 'date', + validation: '' + }], ['details', { + label: 'Reason', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "preProcessTableData", + value: function preProcessTableData(_row) { + var row = _row; + row[1] = Date.parse(row[1]).toString('MMM d, yyyy (dddd)'); + row[2] = Date.parse(row[2]).toString('MMM d, yyyy (dddd)'); + return row; + } + }, { + key: "setNeedStartEndTime", + value: function setNeedStartEndTime(status) { + this.needStartEndTime = status; + } + }, { + key: "renderForm", + value: function renderForm(object) { + var formHtml = this.templates.formTemplate; + $('#EmployeeTimesheetBlock').remove(); + $("#".concat(this.getTableName(), "Form")).html(formHtml); + $("#".concat(this.getTableName(), "Form")).show(); + $("#".concat(this.getTableName())).hide(); + $('.timesheet_start').html(Date.parse(object.date_start).toString('MMM d, yyyy (dddd)')); + $('.timesheet_end').html(Date.parse(object.date_end).toString('MMM d, yyyy (dddd)')); + this.currentTimesheet = object; + this.getTimeEntries(); + var st = Date.parse(object.date_start); + $('#EmployeeTimesheetBlock').fullCalendar({ + header: { + // left: 'prev,next today', + left: false, + // center: 'title', + center: false, + // right: 'month,agendaWeek,agendaDay' + right: false + }, + year: st.toString('yyyy'), + month: st.toString('M'), + date: st.toString('d'), + defaultView: 'basicWeek', + height: 200, + editable: false, + events: modJs.getScheduleJsonUrl(this.currentTimesheet.employee), + loading: function loading(bool) { + if (bool) $('#loadingBlock').show();else $('#loadingBlock').hide(); + }, + // eslint-disable-next-line no-unused-vars + dayClick: function dayClick(date, jsEvent, view, resourceObj) { + modJs.renderFormByDate(date.format()); + }, + // eslint-disable-next-line no-unused-vars + eventClick: function eventClick(calEvent, jsEvent, view) { + modJs.renderFormTimeEntryCalender(calEvent.id); + }, + eventRender: function eventRender(event, element) { + element.find('.fc-time').remove(); + } + }); + $('#EmployeeTimesheetBlock').fullCalendar('gotoDate', st); + $('.fc-toolbar').hide(); + } + }, { + key: "quickEdit", + value: function quickEdit(id, status, sdate, edate) { + $('#Qtsheet').data('lastActiveTab', modJs.tab); // eslint-disable-next-line no-global-assign + + modJs = modJsList.tabQtsheet; + modJs.setCurrentTimeSheetId(id); + $('.timesheet_start').html(sdate); + $('.timesheet_end').html(edate); + $('#timesheetTabs').find('.active').find('.reviewBlock.reviewBlockTable').hide(); + $('#QtsheetHeader').show(); + $('#Qtsheet').show(); + $('#QtsheetDataButtons').show(); + + if (status === 'Submitted' || status === 'Approved') { + $('.completeBtnTable').hide(); + $('.saveBtnTable').hide(); + } else { + $('.completeBtnTable').show(); + $('.saveBtnTable').show(); + } + + modJs.get([]); + } + }, { + key: "getScheduleJsonUrl", + value: function getScheduleJsonUrl(employeeId) { + var url = "".concat(this.moduleRelativeURL, "?a=ca&sa=getEmployeeTimeEntries&t=").concat(this.table, "&mod=modules%3Dtime_sheets&e=").concat(employeeId); + return url; + } + }, { + key: "renderFormByDate", + value: function renderFormByDate(_date) { + var date = _date; + + if (date.indexOf('T') < 0) { + var s1 = moment(); + date = "".concat(date, " ").concat(s1.format('HH:mm:ss')); + } + + var start = date.replace('T', ' '); + var m1 = moment(start); + m1.add(1, 'h'); + var end = m1.format('YYYY-MM-DD HH:mm:ss'); + var obj = {}; + obj.date = _date; + obj.date_start = start; + obj.date_end = end; + this.renderFormTimeEntryCalender(obj); + } + }, { + key: "renderFormTimeEntryCalender", + value: function renderFormTimeEntryCalender(object) { + if ("".concat(this.needStartEndTime) === '0') { + return; + } + + this.openTimeEntryDialog(object); + + if (object.id !== undefined && object.id != null) { + var cid = object.id; + $('.deleteBtnWorkSchedule').show(); + $('.deleteBtnWorkSchedule').off().on('click', function () { + modJs.deleteRow(cid); + return false; + }); + } else { + $('.deleteBtnWorkSchedule').remove(); + } + } + }, { + key: "openTimeEntryDialog", + value: function openTimeEntryDialog(object) { + this.currentTimesheetId = this.currentId; + var obj = modJsList.tabEmployeeTimeEntry; + $('#TimeEntryModel').modal({ + backdrop: 'static', + keyboard: false + }); + obj.currentTimesheet = this.currentTimesheet; + obj.renderForm(object); + obj.timesheetId = this.currentId; + } + }, { + key: "closeTimeEntryDialog", + value: function closeTimeEntryDialog() { + $('#TimeEntryModel').modal('hide'); + } + }, { + key: "getTimeEntries", + value: function getTimeEntries() { + var timesheetId = this.currentId; + var sourceMappingJson = JSON.stringify(modJsList.tabEmployeeTimeEntry.getSourceMapping()); + var object = { + id: timesheetId, + sm: sourceMappingJson + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'getTimeEntriesSuccessCallBack'; + callBackData.callBackFail = 'getTimeEntriesFailCallBack'; + this.customAction('getTimeEntries', 'modules=time_sheets', reqJson, callBackData); + } + }, { + key: "getTimeEntriesSuccessCallBack", + value: function getTimeEntriesSuccessCallBack(callBackData) { + var entries = callBackData; + var html = ''; + var temp = '_start__end__duration__project__details_'; + + for (var i = 0; i < entries.length; i++) { + try { + var t = temp; + t = t.replace(/_start_/g, Date.parse(entries[i].date_start).toString('MMM d, yyyy [hh:mm tt]')); + t = t.replace(/_end_/g, Date.parse(entries[i].date_end).toString('MMM d, yyyy [hh:mm tt]')); + var mili = Date.parse(entries[i].date_end) - Date.parse(entries[i].date_start); + var minutes = Math.round(mili / 60000); + var hourMinutes = minutes % 60; + var hours = (minutes - hourMinutes) / 60; + t = t.replace(/_duration_/g, "Hours (".concat(hours, ") - Min (").concat(hourMinutes, ")")); + + if (entries[i].project === 'null' || entries[i].project == null || entries[i].project === undefined) { + t = t.replace(/_project_/g, 'None'); + } else { + t = t.replace(/_project_/g, entries[i].project); + } + + t = t.replace(/_project_/g, entries[i].project); + t = t.replace(/_details_/g, entries[i].details); + t = t.replace(/_id_/g, entries[i].id); + t = t.replace(/_BASE_/g, this.baseUrl); + html += t; + } catch (e) {// Do nothing + } + } + + $('.timesheet_entries_table_body').html(html); + + if (modJs.getTableName() === 'SubEmployeeTimeSheetAll' || "".concat(this.needStartEndTime) === '0') { + $('.submit_sheet').hide(); + $('.add_time_sheet_entry').hide(); + } else if (this.currentElement.status === 'Approved') { + $('.submit_sheet').hide(); + $('.add_time_sheet_entry').hide(); + } else { + $('.submit_sheet').show(); + $('.add_time_sheet_entry').show(); + } + + $('#EmployeeTimesheetBlock').fullCalendar('refetchEvents'); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "getTimeEntriesFailCallBack", + value: function getTimeEntriesFailCallBack(callBackData) { + this.showMessage('Error', 'Error occured while getting timesheet entries'); + } + }, { + key: "createPreviousTimesheet", + value: function createPreviousTimesheet(id) { + var object = { + id: id + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'createPreviousTimesheetSuccessCallBack'; + callBackData.callBackFail = 'createPreviousTimesheetFailCallBack'; + this.customAction('createPreviousTimesheet', 'modules=time_sheets', reqJson, callBackData); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "createPreviousTimesheetSuccessCallBack", + value: function createPreviousTimesheetSuccessCallBack(callBackData) { + $('.tooltip').css('display', 'none'); + $('.tooltip').remove(); // this.showMessage("Success", "Previous Timesheet created"); + + this.get([]); + } + }, { + key: "createPreviousTimesheetFailCallBack", + value: function createPreviousTimesheetFailCallBack(callBackData) { + this.showMessage('Error', callBackData); + } + }, { + key: "changeTimeSheetStatusWithId", + value: function changeTimeSheetStatusWithId(id, status) { + if (status === '' || status == null || status === undefined) { + this.showMessage('Status Error', 'Please select a status'); + return; + } + + var object = { + id: id, + status: status + }; + var reqJson = JSON.stringify(object); + var callBackData = []; + callBackData.callBackData = []; + callBackData.callBackSuccess = 'changeTimeSheetStatusSuccessCallBack'; + callBackData.callBackFail = 'changeTimeSheetStatusFailCallBack'; + this.customAction('changeTimeSheetStatus', 'modules=time_sheets', reqJson, callBackData); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "changeTimeSheetStatusSuccessCallBack", + value: function changeTimeSheetStatusSuccessCallBack(callBackData) { + this.showMessage('Successful', 'Timesheet status changed successfully'); + this.get([]); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "changeTimeSheetStatusFailCallBack", + value: function changeTimeSheetStatusFailCallBack(callBackData) { + this.showMessage('Error', 'Error occured while changing Timesheet status'); + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html = ''; + + if ("".concat(this.needStartEndTime) === '0') { + html = '
    ' + '' + '' + '_redoBtn_' + '
    '; + } else { + html = '
    ' + '' + '_redoBtn_' + '
    '; + } + + if (this.getTableName() === 'EmployeeTimeSheetAll') { + var redoBtn = ''; + html = html.replace(/_redoBtn_/g, redoBtn); + } else { + html = html.replace(/_redoBtn_/g, ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_sdate_/g, data[1]); + html = html.replace(/_edate_/g, data[2]); + html = html.replace(/_status_/g, data[4]); + html = html.replace(/_BASE_/g, this.baseUrl); + return html; + } + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + var that = this; + var dataTableParams = { + aoColumnDefs: [{ + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 1); + }, + aTargets: [1] + }, { + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 2); + }, + aTargets: [2] + }, { + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }] + }; + return dataTableParams; + } // eslint-disable-next-line no-unused-vars + + }, { + key: "preProcessRemoteTableData", + value: function preProcessRemoteTableData(data, cell, id) { + return Date.parse(cell).toString('MMM d, yyyy (dddd)'); + } + }]); + + return EmployeeTimeSheetAdapter; +}(_AdapterBase3["default"]); +/* + * Subordinate TimeSheets + */ + + +var SubEmployeeTimeSheetAdapter = /*#__PURE__*/function (_EmployeeTimeSheetAda) { + _inherits(SubEmployeeTimeSheetAdapter, _EmployeeTimeSheetAda); + + var _super2 = _createSuper(SubEmployeeTimeSheetAdapter); + + function SubEmployeeTimeSheetAdapter(endPoint, tab, filter, orderBy) { + var _this2; + + _classCallCheck(this, SubEmployeeTimeSheetAdapter); + + _this2 = _super2.call(this, endPoint, tab, filter, orderBy); + _this2.timeSheetStatusChangeId = null; + return _this2; + } + + _createClass(SubEmployeeTimeSheetAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'employee', 'date_start', 'date_end', 'total_time', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Employee', + bSearchable: true + }, { + sTitle: 'Start Date', + bSearchable: true + }, { + sTitle: 'End Date', + bSearchable: true + }, { + sTitle: 'Total Time', + bSearchable: false + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['employee', { + label: 'Employee', + type: 'select', + 'allow-null': false, + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['date_start', { + label: 'TimeSheet Start Date', + type: 'date', + validation: '' + }], ['date_end', { + label: 'TimeSheet Start Date', + type: 'date', + validation: '' + }], ['details', { + label: 'Reason', + type: 'textarea', + validation: 'none' + }]]; + } + }, { + key: "isSubProfileTable", + value: function isSubProfileTable() { + return true; + } + }, { + key: "getCustomSuccessCallBack", + value: function getCustomSuccessCallBack(serverData) { + var data = []; + var mapping = this.getDataMapping(); + + for (var i = 0; i < serverData.length; i++) { + var row = []; + + for (var j = 0; j < mapping.length; j++) { + row[j] = serverData[i][mapping[j]]; + } + + data.push(this.preProcessTableData(row)); + } + + this.tableData = data; + this.createTable(this.getTableName()); + $("#".concat(this.getTableName(), "Form")).hide(); + $("#".concat(this.getTableName())).show(); + } + }, { + key: "preProcessTableData", + value: function preProcessTableData(_row) { + var row = _row; + row[2] = Date.parse(row[2]).toString('MMM d, yyyy (dddd)'); + row[3] = Date.parse(row[3]).toString('MMM d, yyyy (dddd)'); + return row; + } + }, { + key: "openTimeSheetStatus", + value: function openTimeSheetStatus(timeSheetId, status) { + this.currentTimesheetId = timeSheetId; + $('#TimeSheetStatusModel').modal('show'); + $('#timesheet_status').val(status); + this.timeSheetStatusChangeId = timeSheetId; + } + }, { + key: "closeTimeSheetStatus", + value: function closeTimeSheetStatus() { + $('#TimeSheetStatusModel').modal('hide'); + } + }, { + key: "changeTimeSheetStatus", + value: function changeTimeSheetStatus() { + var timeSheetStatus = $('#timesheet_status').val(); + this.changeTimeSheetStatusWithId(this.timeSheetStatusChangeId, timeSheetStatus); + this.closeTimeSheetStatus(); + this.timeSheetStatusChangeId = null; + } + }, { + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var html; + + if ("".concat(this.needStartEndTime) === '0') { + html = '
    ' + '' + '' + '' + '
    '; + } else { + html = '
    ' + '' + '' + '
    '; + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + html = html.replace(/_sdate_/g, data[1]); + html = html.replace(/_edate_/g, data[2]); + html = html.replace(/_status_/g, data[4]); + return html; + } + }, { + key: "getCustomTableParams", + value: function getCustomTableParams() { + var that = this; + var dataTableParams = { + aoColumnDefs: [{ + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 2); + }, + aTargets: [2] + }, { + fnRender: function fnRender(data, cell) { + return that.preProcessRemoteTableData(data, cell, 3); + }, + aTargets: [3] + }, { + fnRender: that.getActionButtons, + aTargets: [that.getDataMapping().length] + }] + }; + return dataTableParams; + } + }, { + key: "getFilters", + value: function getFilters() { + return [['employee', { + label: 'Employee', + type: 'select2', + 'allow-null': true, + 'null-label': 'All Employees', + 'remote-source': ['Employee', 'id', 'first_name+last_name'] + }], ['status', { + label: 'Status', + type: 'select', + 'allow-null': true, + 'null-label': 'All', + source: [['Submitted', 'Submitted'], ['Pending', 'Pending'], ['Approved', 'Approved'], ['Rejected', 'Rejected']] + }]]; + } + }]); + + return SubEmployeeTimeSheetAdapter; +}(EmployeeTimeSheetAdapter); +/** + * EmployeeTimeEntryAdapter + */ + + +var EmployeeTimeEntryAdapter = /*#__PURE__*/function (_AdapterBase2) { + _inherits(EmployeeTimeEntryAdapter, _AdapterBase2); + + var _super3 = _createSuper(EmployeeTimeEntryAdapter); + + function EmployeeTimeEntryAdapter(endPoint, tab, filter, orderBy) { + var _this3; + + _classCallCheck(this, EmployeeTimeEntryAdapter); + + _this3 = _super3.call(this, endPoint, tab, filter, orderBy); + _this3.timesheetId = null; + _this3.currentTimesheet = null; + _this3.allProjectsAllowed = 1; + _this3.employeeProjects = []; + return _this3; + } + + _createClass(EmployeeTimeEntryAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'project', 'date_start', 'time_start', 'date_end', 'time_end', 'details']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Project' + }, { + sTitle: 'Start Date' + }, { + sTitle: 'Start Time' + }, { + sTitle: 'End Date' + }, { + sTitle: 'End Time' + }, { + sTitle: 'Details' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['project', { + label: 'Project', + type: 'select2', + 'allow-null': false, + 'remote-source': ['Project', 'id', 'name', 'getEmployeeProjects'] + }], ['date_select', { + label: 'Date', + type: 'select', + source: [] + }], ['date_start', { + label: 'Start Time', + type: 'time', + validation: '' + }], ['date_end', { + label: 'End Time', + type: 'time', + validation: '' + }], ['details', { + label: 'Details', + type: 'textarea', + validation: '' + }]]; + } + }, { + key: "getDates", + value: function getDates(startDate, stopDate) { + var dateArray = []; + var currentDate = startDate; + + while (currentDate <= stopDate) { + dateArray.push(new Date(currentDate)); + currentDate = currentDate.add({ + days: 1 + }); + } + + return dateArray; + } + }, { + key: "renderForm", + value: function renderForm(object) { + var _this4 = this; + + this.initMasterDataReader(); + this.masterDataReader.updateAllMasterData().then(function () { + _this4._renderForm(object); + }); + } + }, { + key: "_renderForm", + value: function _renderForm(object) { + var formHtml = this.getCustomTemplate('time_entry_form.html'); + formHtml = formHtml.replace(/modJs/g, "modJsList['tabEmployeeTimeEntry']"); + var html = ''; + var fields = this.getFormFields(); + + for (var i = 0; i < fields.length; i++) { + var metaField = this.getMetaFieldForRendering(fields[i][0]); + + if (metaField === '' || metaField === undefined) { + html += this.renderFormField(fields[i]); + } else { + var metaVal = object[metaField]; + + if (metaVal !== '' && metaVal != null && metaVal !== undefined && metaVal.trim() !== '') { + html += this.renderFormField(JSON.parse(metaVal)); + } else { + html += this.renderFormField(fields[i]); + } + } + } // append dates + // var dateStart = new Date(this.currentTimesheet.date_start); + // var dateStop = new Date(this.currentTimesheet.date_end); + // var datesArray = this.getDates(dateStart, dateStop); + + + var optionList = ''; + + for (var _i = 0; _i < this.currentTimesheet.days.length; _i++) { + var k = this.currentTimesheet.days[_i]; // optionList += ''; + + optionList += ""); + } + + formHtml = formHtml.replace(/_id_/g, "".concat(this.getTableName(), "_submit")); + formHtml = formHtml.replace(/_fields_/g, html); + $("#".concat(this.getTableName(), "Form")).html(formHtml); + $("#".concat(this.getTableName(), "Form")).show(); + $("#".concat(this.getTableName())).hide(); + $("#".concat(this.getTableName(), "Form .datefield")).datepicker({ + viewMode: 2 + }); + $("#".concat(this.getTableName(), "Form .datetimefield")).datetimepicker({ + language: 'en' + }); + $("#".concat(this.getTableName(), "Form .timefield")).datetimepicker({ + language: 'en', + pickDate: false + }); + $("#".concat(this.getTableName(), "Form .select2Field")).select2(); + $('#date_select').html(optionList); + + if (object !== undefined && object != null) { + this.fillForm(object); + } + } // eslint-disable-next-line no-unused-vars + + }, { + key: "fillForm", + value: function fillForm(object, _formId, fields) { + var formId = _formId; + + if (formId == null || formId === undefined || formId === '') { + formId = "#".concat(this.getTableName(), "Form"); + } + + if (object.id != null && object.id !== undefined) { + $("".concat(formId, " #id")).val(object.id); + } + + if (object.project != null && object.project !== undefined) { + $("".concat(formId, " #project")).select2('val', object.project); + } + + if (object.date != null && object.date !== undefined) { + $("".concat(formId, " #date_select")).val(object.date); + } + } + }, { + key: "cancel", + value: function cancel() { + $('#TimeEntryModel').modal('hide'); + } + }, { + key: "setAllProjectsAllowed", + value: function setAllProjectsAllowed(allProjectsAllowed) { + this.allProjectsAllowed = allProjectsAllowed; + } + }, { + key: "setEmployeeProjects", + value: function setEmployeeProjects(employeeProjects) { + this.employeeProjects = employeeProjects; + } + }, { + key: "save", + value: function save() { + var validator = new _FormValidation["default"]("".concat(this.getTableName(), "_submit"), true, { + ShowPopup: false, + LabelErrorClass: 'error' + }); + + if (validator.checkValues()) { + var params = validator.getFormParameters(); + params.timesheet = this.timesheetId; + params.time_start = params.date_start; + params.time_end = params.date_end; + params.date_start = "".concat(params.date_select, " ").concat(params.date_start); + params.date_end = "".concat(params.date_select, " ").concat(params.date_end); + var msg = this.doCustomValidation(params); + + if (msg == null) { + var id = $("#".concat(this.getTableName(), "_submit #id")).val(); + + if (id != null && id !== undefined && id !== '') { + params.id = id; + } + + this.add(params, []); + this.cancel(); + } else { + $("#".concat(this.getTableName(), "Form .label")).html(msg); + $("#".concat(this.getTableName(), "Form .label")).show(); + } + } + } + }, { + key: "doCustomValidation", + value: function doCustomValidation(params) { + var st = Date.parse(params.date_start); + var et = Date.parse(params.date_end); + + if (st.compareTo(et) !== -1) { + return 'Start time should be less than End time'; + } + /* + var sd = Date.parse(this.currentTimesheet.date_start); + var ed = Date.parse(this.currentTimesheet.date_end).addDays(1); + if(sd.compareTo(et) != -1 || sd.compareTo(st) > 0 || st.compareTo(ed) != -1 || et.compareTo(ed) != -1){ + return "Start time and end time shoud be with in " + sd.toString('MMM d, yyyy (dddd)') + " and " + ed.toString('MMM d, yyyy (dddd)'); + } + */ + + + return null; + } // eslint-disable-next-line no-unused-vars + + }, { + key: "addSuccessCallBack", + value: function addSuccessCallBack(callBackData, serverData) { + this.get(callBackData); + modJs.getTimeEntries(); + } + }, { + key: "deleteRow", + value: function deleteRow(id) { + this.deleteObj(id, []); + } // eslint-disable-next-line no-unused-vars + + }, { + key: "deleteSuccessCallBack", + value: function deleteSuccessCallBack(callBackData, serverData) { + modJs.getTimeEntries(); + } + }]); + + return EmployeeTimeEntryAdapter; +}(_AdapterBase3["default"]); +/** + * QtsheetAdapter + */ + + +var QtsheetAdapter = /*#__PURE__*/function (_TableEditAdapter) { + _inherits(QtsheetAdapter, _TableEditAdapter); + + var _super4 = _createSuper(QtsheetAdapter); + + function QtsheetAdapter(endPoint, tab, filter, orderBy) { + var _this5; + + _classCallCheck(this, QtsheetAdapter); + + _this5 = _super4.call(this, endPoint, tab, filter, orderBy); + _this5.cellDataUpdates = {}; + _this5.currentId = null; + return _this5; + } + + _createClass(QtsheetAdapter, [{ + key: "validateCellValue", + value: function validateCellValue(element, evt, newValue) { + if (!ValidationRules["float"](newValue)) { + return false; + } + + var val = parseFloat(newValue); + + if (val < 0 || val > 24) { + return false; + } // Update total + // Find current column number + // Adding 2 because nth child is based on 1 and we are adding a virtual column for row names + + + var coldNum = this.columnIDMap[element.data('colId')] + 2; + var columnTotal = 0; + var columnTotalWithoutCurrent = 0; + $("#".concat(this.getTableName(), " tr td:nth-child(").concat(coldNum, ")")).each(function () { + var rowId = $(this).data('rowId'); + var tval = ''; + + if (element.data('rowId') === rowId) { + tval = newValue; + } else { + tval = $(this).html(); + } + + if (rowId !== -1) { + if (ValidationRules["float"](tval)) { + columnTotal += parseFloat(tval); + + if (element.data('rowId') !== rowId) { + columnTotalWithoutCurrent += parseFloat(tval); + } + } + } else if (columnTotal > 24) { + $(this).html(columnTotalWithoutCurrent); + } else { + $(this).html(columnTotal); + } + }); + + if (columnTotal > 24) { + return false; + } + + modJs.addCellDataUpdate(element.data('colId'), element.data('rowId'), newValue); + return true; + } + }, { + key: "setCurrentTimeSheetId", + value: function setCurrentTimeSheetId(val) { + this.currentId = val; + this.cellDataUpdates = {}; + } + }, { + key: "addAdditionalRequestData", + value: function addAdditionalRequestData(type, req) { + if (type === 'updateData') { + req.currentId = this.currentId; + } else if (type === 'updateAllData') { + req.currentId = this.currentId; + } else if (type === 'getAllData') { + req.currentId = this.currentId; + } + + return req; + } + }, { + key: "modifyCSVHeader", + value: function modifyCSVHeader(header) { + header.unshift(''); + return header; + } + }, { + key: "getCSVData", + value: function getCSVData() { + var csv = ''; + + for (var i = 0; i < this.csvData.length; i++) { + csv += this.csvData[i].join(','); + + if (i < this.csvData.length - 1) { + csv += '\r\n'; + } + } + + return csv; + } + }, { + key: "downloadTimesheet", + value: function downloadTimesheet() { + var element = document.createElement('a'); + element.setAttribute('href', "data:text/plain;charset=utf-8,".concat(encodeURIComponent(this.getCSVData()))); + element.setAttribute('download', "timesheet_".concat(this.currentId, ".csv")); + element.style.display = 'none'; + document.body.appendChild(element); + element.click(); + document.body.removeChild(element); + } + }, { + key: "createTable", + value: function createTable(elementId) { + var data = this.getTableData(); + var headers = this.getHeaders(); + + if (this.showActionButtons()) { + headers.push({ + sTitle: '', + sClass: 'center' + }); + } + + if (this.showActionButtons()) { + for (var i = 0; i < data.length; i++) { + data[i].push(this.getActionButtonsHtml(data[i][0], data[i])); + } + } + + var html = ''; + html = "".concat(this.getTableTopButtonHtml(), "
    "); // Find current page + + var activePage = $("#".concat(elementId, " .dataTables_paginate .active a")).html(); + var start = 0; + + if (activePage !== undefined && activePage !== null) { + start = parseInt(activePage, 10) * 100 - 100; + } + + $("#".concat(elementId)).html(html); + var dataTableParams = { + oLanguage: { + sLengthMenu: '_MENU_ records per page' + }, + aaData: data, + aoColumns: headers, + bSort: false, + iDisplayLength: 100, + iDisplayStart: start + }; + var customTableParams = this.getCustomTableParams(); + $.extend(dataTableParams, customTableParams); + $("#".concat(elementId, " #grid")).dataTable(dataTableParams); + $("#".concat(elementId, " #grid tr:last")).find('td').removeClass('editcell'); + $('.dataTables_paginate ul').addClass('pagination'); + $('.dataTables_length').hide(); + $('.dataTables_filter input').addClass('form-control'); + $('.dataTables_filter input').attr('placeholder', 'Search'); + $('.dataTables_filter label').contents().filter(function () { + return this.nodeType === 3; + }).remove(); // $('.tableActionButton').tooltip(); + + $("#".concat(elementId, " #grid")).editableTableWidget(); + $("#".concat(elementId, " #grid .editcell")).on('validate', function (evt, newValue) { + return modJs.validateCellValue($(this), evt, newValue); + }); + } + }]); + + return QtsheetAdapter; +}(_TableEditAdapter2["default"]); + +module.exports = { + EmployeeTimeSheetAdapter: EmployeeTimeSheetAdapter, + SubEmployeeTimeSheetAdapter: SubEmployeeTimeSheetAdapter, + EmployeeTimeEntryAdapter: EmployeeTimeEntryAdapter, + QtsheetAdapter: QtsheetAdapter +}; + +},{"../../../api/AdapterBase":39,"../../../api/FormValidation":44,"../../../api/TableEditAdapter":51}],94:[function(require,module,exports){ +"use strict"; + +var _lib = require("./lib"); + +window.EmployeeImmigrationAdapter = _lib.EmployeeImmigrationAdapter; +window.EmployeeTravelRecordAdapter = _lib.EmployeeTravelRecordAdapter; +window.EmployeeTravelRecordApproverAdapter = _lib.EmployeeTravelRecordApproverAdapter; +window.SubordinateEmployeeTravelRecordAdapter = _lib.SubordinateEmployeeTravelRecordAdapter; + +},{"./lib":95}],95:[function(require,module,exports){ +"use strict"; + +var _AdapterBase2 = _interopRequireDefault(require("../../../api/AdapterBase")); + +var _ApproveModuleAdapter2 = _interopRequireDefault(require("../../../api/ApproveModuleAdapter")); + +var _lib = require("../../../admin/src/travel/lib"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } + +function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +function _createSuper(Derived) { return function () { var Super = _getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; } + +function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } + +function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } + +function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } } + +function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } + +function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } + +var EmployeeImmigrationAdapter = /*#__PURE__*/function (_AdapterBase) { + _inherits(EmployeeImmigrationAdapter, _AdapterBase); + + var _super = _createSuper(EmployeeImmigrationAdapter); + + function EmployeeImmigrationAdapter() { + _classCallCheck(this, EmployeeImmigrationAdapter); + + return _super.apply(this, arguments); + } + + _createClass(EmployeeImmigrationAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'document', 'documentname', 'valid_until', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Document' + }, { + sTitle: 'Document Id' + }, { + sTitle: 'Valid Until' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return [['id', { + label: 'ID', + type: 'hidden' + }], ['document', { + label: 'Document', + type: 'select2', + 'remote-source': ['ImmigrationDocument', 'id', 'name'] + }], ['documentname', { + label: 'Document Id', + type: 'text', + validation: '' + }], ['valid_until', { + label: 'Valid Until', + type: 'date', + validation: 'none' + }], ['status', { + label: 'Status', + type: 'select', + source: [['Active', 'Active'], ['Inactive', 'Inactive'], ['Draft', 'Draft']] + }], ['details', { + label: 'Details', + type: 'textarea', + validation: 'none' + }], ['attachment1', { + label: 'Attachment 1', + type: 'fileupload', + validation: 'none' + }], ['attachment2', { + label: 'Attachment 2', + type: 'fileupload', + validation: 'none' + }], ['attachment3', { + label: 'Attachment 3', + type: 'fileupload', + validation: 'none' + }]]; + } + }]); + + return EmployeeImmigrationAdapter; +}(_AdapterBase2["default"]); + +var EmployeeTravelRecordAdapter = /*#__PURE__*/function (_ApproveModuleAdapter) { + _inherits(EmployeeTravelRecordAdapter, _ApproveModuleAdapter); + + var _super2 = _createSuper(EmployeeTravelRecordAdapter); + + function EmployeeTravelRecordAdapter(endPoint, tab, filter, orderBy) { + var _this; + + _classCallCheck(this, EmployeeTravelRecordAdapter); + + _this = _super2.call(this, endPoint, tab, filter, orderBy); + _this.itemName = 'Travel'; + _this.itemNameLower = 'employeetravelrecord'; + _this.modulePathName = 'travel'; + return _this; + } + + _createClass(EmployeeTravelRecordAdapter, [{ + key: "getDataMapping", + value: function getDataMapping() { + return ['id', 'type', 'purpose', 'travel_from', 'travel_to', 'travel_date', 'return_date', 'status']; + } + }, { + key: "getHeaders", + value: function getHeaders() { + return [{ + sTitle: 'ID', + bVisible: false + }, { + sTitle: 'Travel Type' + }, { + sTitle: 'Purpose' + }, { + sTitle: 'From' + }, { + sTitle: 'To' + }, { + sTitle: 'Travel Date' + }, { + sTitle: 'Return Date' + }, { + sTitle: 'Status' + }]; + } + }, { + key: "getFormFields", + value: function getFormFields() { + return this.addCustomFields([['id', { + label: 'ID', + type: 'hidden' + }], ['type', { + label: 'Means of Transportation', + type: 'select', + source: [['Plane', 'Plane'], ['Rail', 'Rail'], ['Taxi', 'Taxi'], ['Own Vehicle', 'Own Vehicle'], ['Rented Vehicle', 'Rented Vehicle'], ['Other', 'Other']] + }], ['purpose', { + label: 'Purpose of Travel', + type: 'textarea', + validation: '' + }], ['travel_from', { + label: 'Travel From', + type: 'text', + validation: '' + }], ['travel_to', { + label: 'Travel To', + type: 'text', + validation: '' + }], ['travel_date', { + label: 'Travel Date', + type: 'datetime', + validation: '' + }], ['return_date', { + label: 'Return Date', + type: 'datetime', + validation: '' + }], ['details', { + label: 'Notes', + type: 'textarea', + validation: 'none' + }], ['currency', { + label: 'Currency', + type: 'select2', + 'allow-null': false, + 'remote-source': ['CurrencyType', 'id', 'code'] + }], ['funding', { + label: 'Total Funding Proposed', + type: 'text', + validation: 'float', + "default": '0.00', + mask: '9{0,10}.99' + }], ['attachment1', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }], ['attachment2', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }], ['attachment3', { + label: 'Attachment', + type: 'fileupload', + validation: 'none' + }]]); + } + }]); + + return EmployeeTravelRecordAdapter; +}(_ApproveModuleAdapter2["default"]); +/* + EmployeeTravelRecordApproverAdapter + */ + + +var EmployeeTravelRecordApproverAdapter = /*#__PURE__*/function (_EmployeeTravelRecord) { + _inherits(EmployeeTravelRecordApproverAdapter, _EmployeeTravelRecord); + + var _super3 = _createSuper(EmployeeTravelRecordApproverAdapter); + + function EmployeeTravelRecordApproverAdapter(endPoint, tab, filter, orderBy) { + var _this2; + + _classCallCheck(this, EmployeeTravelRecordApproverAdapter); + + _this2 = _super3.call(this, endPoint, tab, filter, orderBy); + _this2.itemName = 'Travel'; + _this2.itemNameLower = 'employeetravelrecord'; + _this2.modulePathName = 'travel'; + return _this2; + } + + _createClass(EmployeeTravelRecordApproverAdapter, [{ + key: "getActionButtonsHtml", + value: function getActionButtonsHtml(id, data) { + var statusChangeButton = ''; + var viewLogsButton = ''; + var html = '
    _status__logs_
    '; + html = html.replace('_logs_', viewLogsButton); + + if (data[this.getStatusFieldPosition()] === 'Processing') { + html = html.replace('_status_', statusChangeButton); + } else { + html = html.replace('_status_', ''); + } + + html = html.replace(/_id_/g, id); + html = html.replace(/_BASE_/g, this.baseUrl); + html = html.replace(/_cstatus_/g, data[this.getStatusFieldPosition()]); + return html; + } + }, { + key: "getStatusOptionsData", + value: function getStatusOptionsData(currentStatus) { + var data = {}; + + if (currentStatus === 'Processing') { + data.Approved = 'Approved'; + data.Rejected = 'Rejected'; + } + + return data; + } + }, { + key: "getStatusOptions", + value: function getStatusOptions(currentStatus) { + return this.generateOptions(this.getStatusOptionsData(currentStatus)); + } + }]); + + return EmployeeTravelRecordApproverAdapter; +}(_lib.EmployeeTravelRecordAdminAdapter); +/* + SubordinateExpenseModuleAdapter + */ + + +var SubordinateEmployeeTravelRecordAdapter = /*#__PURE__*/function (_EmployeeTravelRecord2) { + _inherits(SubordinateEmployeeTravelRecordAdapter, _EmployeeTravelRecord2); + + var _super4 = _createSuper(SubordinateEmployeeTravelRecordAdapter); + + function SubordinateEmployeeTravelRecordAdapter(endPoint, tab, filter, orderBy) { + var _this3; + + _classCallCheck(this, SubordinateEmployeeTravelRecordAdapter); + + _this3 = _super4.call(this, endPoint, tab, filter, orderBy); + _this3.itemName = 'Travel'; + _this3.itemNameLower = 'employeetravelrecord'; + _this3.modulePathName = 'travel'; + return _this3; + } + + return SubordinateEmployeeTravelRecordAdapter; +}(_lib.EmployeeTravelRecordAdminAdapter); + +module.exports = { + EmployeeImmigrationAdapter: EmployeeImmigrationAdapter, + EmployeeTravelRecordAdapter: EmployeeTravelRecordAdapter, + EmployeeTravelRecordApproverAdapter: EmployeeTravelRecordApproverAdapter, + SubordinateEmployeeTravelRecordAdapter: SubordinateEmployeeTravelRecordAdapter +}; + +},{"../../../admin/src/travel/lib":37,"../../../api/AdapterBase":39,"../../../api/ApproveModuleAdapter":41}],96:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var DEFAULT_SIZE = 24; + +exports.default = function (_ref) { + var _ref$fill = _ref.fill, + fill = _ref$fill === undefined ? 'currentColor' : _ref$fill, + _ref$width = _ref.width, + width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width, + _ref$height = _ref.height, + height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height, + _ref$style = _ref.style, + style = _ref$style === undefined ? {} : _ref$style, + props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']); + + return _react2.default.createElement( + 'svg', + _extends({ + viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE, + style: _extends({ fill: fill, width: width, height: height }, style) + }, props), + _react2.default.createElement('path', { d: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z' }) + ); +}; +},{"react":"react"}],97:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +var DEFAULT_SIZE = 24; + +exports.default = function (_ref) { + var _ref$fill = _ref.fill, + fill = _ref$fill === undefined ? 'currentColor' : _ref$fill, + _ref$width = _ref.width, + width = _ref$width === undefined ? DEFAULT_SIZE : _ref$width, + _ref$height = _ref.height, + height = _ref$height === undefined ? DEFAULT_SIZE : _ref$height, + _ref$style = _ref.style, + style = _ref$style === undefined ? {} : _ref$style, + props = _objectWithoutProperties(_ref, ['fill', 'width', 'height', 'style']); + + return _react2.default.createElement( + 'svg', + _extends({ + viewBox: '0 0 ' + DEFAULT_SIZE + ' ' + DEFAULT_SIZE, + style: _extends({ fill: fill, width: width, height: height }, style) + }, props), + _react2.default.createElement('path', { d: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z' }) + ); +}; +},{"react":"react"}],98:[function(require,module,exports){ +module.exports = require('./lib/axios'); +},{"./lib/axios":100}],99:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); +var settle = require('./../core/settle'); +var cookies = require('./../helpers/cookies'); +var buildURL = require('./../helpers/buildURL'); +var buildFullPath = require('../core/buildFullPath'); +var parseHeaders = require('./../helpers/parseHeaders'); +var isURLSameOrigin = require('./../helpers/isURLSameOrigin'); +var createError = require('../core/createError'); + +module.exports = function xhrAdapter(config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + var requestData = config.data; + var requestHeaders = config.headers; + + if (utils.isFormData(requestData)) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + if ( + (utils.isBlob(requestData) || utils.isFile(requestData)) && + requestData.type + ) { + delete requestHeaders['Content-Type']; // Let the browser set it + } + + var request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + var username = config.auth.username || ''; + var password = unescape(encodeURIComponent(config.auth.password)) || ''; + requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password); + } + + var fullPath = buildFullPath(config.baseURL, config.url); + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + // Listen for ready state + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + + // Prepare the response + var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null; + var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response; + var response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config: config, + request: request + }; + + settle(resolve, reject, response); + + // Clean up request + request = null; + }; + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(createError('Request aborted', config, 'ECONNABORTED', request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(createError('Network Error', config, null, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded'; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(createError(timeoutErrorMessage, config, 'ECONNABORTED', + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (utils.isStandardBrowserEnv()) { + // Add xsrf header + var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? + cookies.read(config.xsrfCookieName) : + undefined; + + if (xsrfValue) { + requestHeaders[config.xsrfHeaderName] = xsrfValue; + } + } + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders, function setRequestHeader(val, key) { + if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') { + // Remove Content-Type if data is undefined + delete requestHeaders[key]; + } else { + // Otherwise add header to the request + request.setRequestHeader(key, val); + } + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (config.responseType) { + try { + request.responseType = config.responseType; + } catch (e) { + // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2. + // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function. + if (config.responseType !== 'json') { + throw e; + } + } + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', config.onDownloadProgress); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', config.onUploadProgress); + } + + if (config.cancelToken) { + // Handle cancellation + config.cancelToken.promise.then(function onCanceled(cancel) { + if (!request) { + return; + } + + request.abort(); + reject(cancel); + // Clean up request + request = null; + }); + } + + if (!requestData) { + requestData = null; + } + + // Send the request + request.send(requestData); + }); +}; + +},{"../core/buildFullPath":106,"../core/createError":107,"./../core/settle":111,"./../helpers/buildURL":115,"./../helpers/cookies":117,"./../helpers/isURLSameOrigin":119,"./../helpers/parseHeaders":121,"./../utils":123}],100:[function(require,module,exports){ +'use strict'; + +var utils = require('./utils'); +var bind = require('./helpers/bind'); +var Axios = require('./core/Axios'); +var mergeConfig = require('./core/mergeConfig'); +var defaults = require('./defaults'); + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * @return {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + var context = new Axios(defaultConfig); + var instance = bind(Axios.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios.prototype, context); + + // Copy context to instance + utils.extend(instance, context); + + return instance; +} + +// Create the default instance to be exported +var axios = createInstance(defaults); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios; + +// Factory for creating new instances +axios.create = function create(instanceConfig) { + return createInstance(mergeConfig(axios.defaults, instanceConfig)); +}; + +// Expose Cancel & CancelToken +axios.Cancel = require('./cancel/Cancel'); +axios.CancelToken = require('./cancel/CancelToken'); +axios.isCancel = require('./cancel/isCancel'); + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; +axios.spread = require('./helpers/spread'); + +module.exports = axios; + +// Allow use of default import syntax in TypeScript +module.exports.default = axios; + +},{"./cancel/Cancel":101,"./cancel/CancelToken":102,"./cancel/isCancel":103,"./core/Axios":104,"./core/mergeConfig":110,"./defaults":113,"./helpers/bind":114,"./helpers/spread":122,"./utils":123}],101:[function(require,module,exports){ +'use strict'; + +/** + * A `Cancel` is an object that is thrown when an operation is canceled. + * + * @class + * @param {string=} message The message. + */ +function Cancel(message) { + this.message = message; +} + +Cancel.prototype.toString = function toString() { + return 'Cancel' + (this.message ? ': ' + this.message : ''); +}; + +Cancel.prototype.__CANCEL__ = true; + +module.exports = Cancel; + +},{}],102:[function(require,module,exports){ +'use strict'; + +var Cancel = require('./Cancel'); + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @class + * @param {Function} executor The executor function. + */ +function CancelToken(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + var resolvePromise; + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + var token = this; + executor(function cancel(message) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new Cancel(message); + resolvePromise(token.reason); + }); +} + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +CancelToken.prototype.throwIfRequested = function throwIfRequested() { + if (this.reason) { + throw this.reason; + } +}; + +/** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ +CancelToken.source = function source() { + var cancel; + var token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token: token, + cancel: cancel + }; +}; + +module.exports = CancelToken; + +},{"./Cancel":101}],103:[function(require,module,exports){ +'use strict'; + +module.exports = function isCancel(value) { + return !!(value && value.__CANCEL__); +}; + +},{}],104:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); +var buildURL = require('../helpers/buildURL'); +var InterceptorManager = require('./InterceptorManager'); +var dispatchRequest = require('./dispatchRequest'); +var mergeConfig = require('./mergeConfig'); + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + */ +function Axios(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager(), + response: new InterceptorManager() + }; +} + +/** + * Dispatch a request + * + * @param {Object} config The config specific for this request (merged with this.defaults) + */ +Axios.prototype.request = function request(config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof config === 'string') { + config = arguments[1] || {}; + config.url = arguments[0]; + } else { + config = config || {}; + } + + config = mergeConfig(this.defaults, config); + + // Set config.method + if (config.method) { + config.method = config.method.toLowerCase(); + } else if (this.defaults.method) { + config.method = this.defaults.method.toLowerCase(); + } else { + config.method = 'get'; + } + + // Hook up interceptors middleware + var chain = [dispatchRequest, undefined]; + var promise = Promise.resolve(config); + + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + chain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + chain.push(interceptor.fulfilled, interceptor.rejected); + }); + + while (chain.length) { + promise = promise.then(chain.shift(), chain.shift()); + } + + return promise; +}; + +Axios.prototype.getUri = function getUri(config) { + config = mergeConfig(this.defaults, config); + return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\?/, ''); +}; + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, data, config) { + return this.request(mergeConfig(config || {}, { + method: method, + url: url, + data: data + })); + }; +}); + +module.exports = Axios; + +},{"../helpers/buildURL":115,"./../utils":123,"./InterceptorManager":105,"./dispatchRequest":108,"./mergeConfig":110}],105:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +function InterceptorManager() { + this.handlers = []; +} + +/** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ +InterceptorManager.prototype.use = function use(fulfilled, rejected) { + this.handlers.push({ + fulfilled: fulfilled, + rejected: rejected + }); + return this.handlers.length - 1; +}; + +/** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + */ +InterceptorManager.prototype.eject = function eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } +}; + +/** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + */ +InterceptorManager.prototype.forEach = function forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); +}; + +module.exports = InterceptorManager; + +},{"./../utils":123}],106:[function(require,module,exports){ +'use strict'; + +var isAbsoluteURL = require('../helpers/isAbsoluteURL'); +var combineURLs = require('../helpers/combineURLs'); + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * @returns {string} The combined full path + */ +module.exports = function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +}; + +},{"../helpers/combineURLs":116,"../helpers/isAbsoluteURL":118}],107:[function(require,module,exports){ +'use strict'; + +var enhanceError = require('./enhanceError'); + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The created error. + */ +module.exports = function createError(message, config, code, request, response) { + var error = new Error(message); + return enhanceError(error, config, code, request, response); +}; + +},{"./enhanceError":109}],108:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); +var transformData = require('./transformData'); +var isCancel = require('../cancel/isCancel'); +var defaults = require('../defaults'); + +/** + * Throws a `Cancel` if cancellation has been requested. + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * @returns {Promise} The Promise to be fulfilled + */ +module.exports = function dispatchRequest(config) { + throwIfCancellationRequested(config); + + // Ensure headers exist + config.headers = config.headers || {}; + + // Transform request data + config.data = transformData( + config.data, + config.headers, + config.transformRequest + ); + + // Flatten headers + config.headers = utils.merge( + config.headers.common || {}, + config.headers[config.method] || {}, + config.headers + ); + + utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + function cleanHeaderConfig(method) { + delete config.headers[method]; + } + ); + + var adapter = config.adapter || defaults.adapter; + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData( + response.data, + response.headers, + config.transformResponse + ); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData( + reason.response.data, + reason.response.headers, + config.transformResponse + ); + } + } + + return Promise.reject(reason); + }); +}; + +},{"../cancel/isCancel":103,"../defaults":113,"./../utils":123,"./transformData":112}],109:[function(require,module,exports){ +'use strict'; + +/** + * Update an Error with the specified config, error code, and response. + * + * @param {Error} error The error to update. + * @param {Object} config The config. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * @returns {Error} The error. + */ +module.exports = function enhanceError(error, config, code, request, response) { + error.config = config; + if (code) { + error.code = code; + } + + error.request = request; + error.response = response; + error.isAxiosError = true; + + error.toJSON = function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: this.config, + code: this.code + }; + }; + return error; +}; + +},{}],110:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * @returns {Object} New object resulting from merging config2 to config1 + */ +module.exports = function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + var config = {}; + + var valueFromConfig2Keys = ['url', 'method', 'data']; + var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params']; + var defaultToConfig2Keys = [ + 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', + 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', + 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', + 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', + 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding' + ]; + var directMergeKeys = ['validateStatus']; + + function getMergedValue(target, source) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge(target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + function mergeDeepProperties(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + } + + utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } + }); + + utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties); + + utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) { + if (!utils.isUndefined(config2[prop])) { + config[prop] = getMergedValue(undefined, config2[prop]); + } else if (!utils.isUndefined(config1[prop])) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + utils.forEach(directMergeKeys, function merge(prop) { + if (prop in config2) { + config[prop] = getMergedValue(config1[prop], config2[prop]); + } else if (prop in config1) { + config[prop] = getMergedValue(undefined, config1[prop]); + } + }); + + var axiosKeys = valueFromConfig2Keys + .concat(mergeDeepPropertiesKeys) + .concat(defaultToConfig2Keys) + .concat(directMergeKeys); + + var otherKeys = Object + .keys(config1) + .concat(Object.keys(config2)) + .filter(function filterAxiosKeys(key) { + return axiosKeys.indexOf(key) === -1; + }); + + utils.forEach(otherKeys, mergeDeepProperties); + + return config; +}; + +},{"../utils":123}],111:[function(require,module,exports){ +'use strict'; + +var createError = require('./createError'); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + */ +module.exports = function settle(resolve, reject, response) { + var validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(createError( + 'Request failed with status code ' + response.status, + response.config, + null, + response.request, + response + )); + } +}; + +},{"./createError":107}],112:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +/** + * Transform the data for a request or a response + * + * @param {Object|String} data The data to be transformed + * @param {Array} headers The headers for the request or response + * @param {Array|Function} fns A single function or Array of functions + * @returns {*} The resulting transformed data + */ +module.exports = function transformData(data, headers, fns) { + /*eslint no-param-reassign:0*/ + utils.forEach(fns, function transform(fn) { + data = fn(data, headers); + }); + + return data; +}; + +},{"./../utils":123}],113:[function(require,module,exports){ +(function (process){ +'use strict'; + +var utils = require('./utils'); +var normalizeHeaderName = require('./helpers/normalizeHeaderName'); + +var DEFAULT_CONTENT_TYPE = { + 'Content-Type': 'application/x-www-form-urlencoded' +}; + +function setContentTypeIfUnset(headers, value) { + if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) { + headers['Content-Type'] = value; + } +} + +function getDefaultAdapter() { + var adapter; + if (typeof XMLHttpRequest !== 'undefined') { + // For browsers use XHR adapter + adapter = require('./adapters/xhr'); + } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') { + // For node use HTTP adapter + adapter = require('./adapters/http'); + } + return adapter; +} + +var defaults = { + adapter: getDefaultAdapter(), + + transformRequest: [function transformRequest(data, headers) { + normalizeHeaderName(headers, 'Accept'); + normalizeHeaderName(headers, 'Content-Type'); + if (utils.isFormData(data) || + utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8'); + return data.toString(); + } + if (utils.isObject(data)) { + setContentTypeIfUnset(headers, 'application/json;charset=utf-8'); + return JSON.stringify(data); + } + return data; + }], + + transformResponse: [function transformResponse(data) { + /*eslint no-param-reassign:0*/ + if (typeof data === 'string') { + try { + data = JSON.parse(data); + } catch (e) { /* Ignore */ } + } + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + } +}; + +defaults.headers = { + common: { + 'Accept': 'application/json, text/plain, */*' + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +module.exports = defaults; + +}).call(this,require('_process')) + +},{"./adapters/http":99,"./adapters/xhr":99,"./helpers/normalizeHeaderName":120,"./utils":123,"_process":6}],114:[function(require,module,exports){ +'use strict'; + +module.exports = function bind(fn, thisArg) { + return function wrap() { + var args = new Array(arguments.length); + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i]; + } + return fn.apply(thisArg, args); + }; +}; + +},{}],115:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @returns {string} The formatted url + */ +module.exports = function buildURL(url, params, paramsSerializer) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + var serializedParams; + if (paramsSerializer) { + serializedParams = paramsSerializer(params); + } else if (utils.isURLSearchParams(params)) { + serializedParams = params.toString(); + } else { + var parts = []; + + utils.forEach(params, function serialize(val, key) { + if (val === null || typeof val === 'undefined') { + return; + } + + if (utils.isArray(val)) { + key = key + '[]'; + } else { + val = [val]; + } + + utils.forEach(val, function parseValue(v) { + if (utils.isDate(v)) { + v = v.toISOString(); + } else if (utils.isObject(v)) { + v = JSON.stringify(v); + } + parts.push(encode(key) + '=' + encode(v)); + }); + }); + + serializedParams = parts.join('&'); + } + + if (serializedParams) { + var hashmarkIndex = url.indexOf('#'); + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +}; + +},{"./../utils":123}],116:[function(require,module,exports){ +'use strict'; + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * @returns {string} The combined URL + */ +module.exports = function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +}; + +},{}],117:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + var cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + var match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + + // Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })() +); + +},{"./../utils":123}],118:[function(require,module,exports){ +'use strict'; + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +module.exports = function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(url); +}; + +},{}],119:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +module.exports = ( + utils.isStandardBrowserEnv() ? + + // Standard browser envs have full support of the APIs needed to test + // whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + var msie = /(msie|trident)/i.test(navigator.userAgent); + var urlParsingNode = document.createElement('a'); + var originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + var href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })() +); + +},{"./../utils":123}],120:[function(require,module,exports){ +'use strict'; + +var utils = require('../utils'); + +module.exports = function normalizeHeaderName(headers, normalizedName) { + utils.forEach(headers, function processHeader(value, name) { + if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) { + headers[normalizedName] = value; + delete headers[name]; + } + }); +}; + +},{"../utils":123}],121:[function(require,module,exports){ +'use strict'; + +var utils = require('./../utils'); + +// Headers whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +var ignoreDuplicateOf = [ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]; + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} headers Headers needing to be parsed + * @returns {Object} Headers parsed into an object + */ +module.exports = function parseHeaders(headers) { + var parsed = {}; + var key; + var val; + var i; + + if (!headers) { return parsed; } + + utils.forEach(headers.split('\n'), function parser(line) { + i = line.indexOf(':'); + key = utils.trim(line.substr(0, i)).toLowerCase(); + val = utils.trim(line.substr(i + 1)); + + if (key) { + if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) { + return; + } + if (key === 'set-cookie') { + parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]); + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + } + }); + + return parsed; +}; + +},{"./../utils":123}],122:[function(require,module,exports){ +'use strict'; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * @returns {Function} + */ +module.exports = function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +}; + +},{}],123:[function(require,module,exports){ +'use strict'; + +var bind = require('./helpers/bind'); + +/*global toString:true*/ + +// utils is a library of generic helper functions non-specific to axios + +var toString = Object.prototype.toString; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Array, otherwise false + */ +function isArray(val) { + return toString.call(val) === '[object Array]'; +} + +/** + * Determine if a value is undefined + * + * @param {Object} val The value to test + * @returns {boolean} True if the value is undefined, otherwise false + */ +function isUndefined(val) { + return typeof val === 'undefined'; +} + +/** + * Determine if a value is a Buffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +function isArrayBuffer(val) { + return toString.call(val) === '[object ArrayBuffer]'; +} + +/** + * Determine if a value is a FormData + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an FormData, otherwise false + */ +function isFormData(val) { + return (typeof FormData !== 'undefined') && (val instanceof FormData); +} + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + var result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a String, otherwise false + */ +function isString(val) { + return typeof val === 'string'; +} + +/** + * Determine if a value is a Number + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Number, otherwise false + */ +function isNumber(val) { + return typeof val === 'number'; +} + +/** + * Determine if a value is an Object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is an Object, otherwise false + */ +function isObject(val) { + return val !== null && typeof val === 'object'; +} + +/** + * Determine if a value is a plain Object + * + * @param {Object} val The value to test + * @return {boolean} True if value is a plain Object, otherwise false + */ +function isPlainObject(val) { + if (toString.call(val) !== '[object Object]') { + return false; + } + + var prototype = Object.getPrototypeOf(val); + return prototype === null || prototype === Object.prototype; +} + +/** + * Determine if a value is a Date + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Date, otherwise false + */ +function isDate(val) { + return toString.call(val) === '[object Date]'; +} + +/** + * Determine if a value is a File + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a File, otherwise false + */ +function isFile(val) { + return toString.call(val) === '[object File]'; +} + +/** + * Determine if a value is a Blob + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Blob, otherwise false + */ +function isBlob(val) { + return toString.call(val) === '[object Blob]'; +} + +/** + * Determine if a value is a Function + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +function isFunction(val) { + return toString.call(val) === '[object Function]'; +} + +/** + * Determine if a value is a Stream + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a Stream, otherwise false + */ +function isStream(val) { + return isObject(val) && isFunction(val.pipe); +} + +/** + * Determine if a value is a URLSearchParams object + * + * @param {Object} val The value to test + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +function isURLSearchParams(val) { + return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams; +} + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * @returns {String} The String freed of excess whitespace + */ +function trim(str) { + return str.replace(/^\s*/, '').replace(/\s*$/, ''); +} + +/** + * Determine if we're running in a standard browser environment + * + * This allows axios to run in a web worker, and react-native. + * Both environments support XMLHttpRequest, but not fully standard globals. + * + * web workers: + * typeof window -> undefined + * typeof document -> undefined + * + * react-native: + * navigator.product -> 'ReactNative' + * nativescript + * navigator.product -> 'NativeScript' or 'NS' + */ +function isStandardBrowserEnv() { + if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || + navigator.product === 'NativeScript' || + navigator.product === 'NS')) { + return false; + } + return ( + typeof window !== 'undefined' && + typeof document !== 'undefined' + ); +} + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + */ +function forEach(obj, fn) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (var i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + fn.call(null, obj[key], key, obj); + } + } + } +} + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + var result = {}; + function assignValue(val, key) { + if (isPlainObject(result[key]) && isPlainObject(val)) { + result[key] = merge(result[key], val); + } else if (isPlainObject(val)) { + result[key] = merge({}, val); + } else if (isArray(val)) { + result[key] = val.slice(); + } else { + result[key] = val; + } + } + + for (var i = 0, l = arguments.length; i < l; i++) { + forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * @return {Object} The resulting value of object a + */ +function extend(a, b, thisArg) { + forEach(b, function assignValue(val, key) { + if (thisArg && typeof val === 'function') { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }); + return a; +} + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * @return {string} content value without BOM + */ +function stripBOM(content) { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +} + +module.exports = { + isArray: isArray, + isArrayBuffer: isArrayBuffer, + isBuffer: isBuffer, + isFormData: isFormData, + isArrayBufferView: isArrayBufferView, + isString: isString, + isNumber: isNumber, + isObject: isObject, + isPlainObject: isPlainObject, + isUndefined: isUndefined, + isDate: isDate, + isFile: isFile, + isBlob: isBlob, + isFunction: isFunction, + isStream: isStream, + isURLSearchParams: isURLSearchParams, + isStandardBrowserEnv: isStandardBrowserEnv, + forEach: forEach, + merge: merge, + extend: extend, + trim: trim, + stripBOM: stripBOM +}; + +},{"./helpers/bind":114}],124:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'); + +module.exports = DataView; + +},{"./_getNative":207,"./_root":250}],125:[function(require,module,exports){ +var hashClear = require('./_hashClear'), + hashDelete = require('./_hashDelete'), + hashGet = require('./_hashGet'), + hashHas = require('./_hashHas'), + hashSet = require('./_hashSet'); + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +module.exports = Hash; + +},{"./_hashClear":215,"./_hashDelete":216,"./_hashGet":217,"./_hashHas":218,"./_hashSet":219}],126:[function(require,module,exports){ +var listCacheClear = require('./_listCacheClear'), + listCacheDelete = require('./_listCacheDelete'), + listCacheGet = require('./_listCacheGet'), + listCacheHas = require('./_listCacheHas'), + listCacheSet = require('./_listCacheSet'); + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +module.exports = ListCache; + +},{"./_listCacheClear":230,"./_listCacheDelete":231,"./_listCacheGet":232,"./_listCacheHas":233,"./_listCacheSet":234}],127:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Map = getNative(root, 'Map'); + +module.exports = Map; + +},{"./_getNative":207,"./_root":250}],128:[function(require,module,exports){ +var mapCacheClear = require('./_mapCacheClear'), + mapCacheDelete = require('./_mapCacheDelete'), + mapCacheGet = require('./_mapCacheGet'), + mapCacheHas = require('./_mapCacheHas'), + mapCacheSet = require('./_mapCacheSet'); + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +module.exports = MapCache; + +},{"./_mapCacheClear":235,"./_mapCacheDelete":236,"./_mapCacheGet":237,"./_mapCacheHas":238,"./_mapCacheSet":239}],129:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Promise = getNative(root, 'Promise'); + +module.exports = Promise; + +},{"./_getNative":207,"./_root":250}],130:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var Set = getNative(root, 'Set'); + +module.exports = Set; + +},{"./_getNative":207,"./_root":250}],131:[function(require,module,exports){ +var MapCache = require('./_MapCache'), + setCacheAdd = require('./_setCacheAdd'), + setCacheHas = require('./_setCacheHas'); + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +module.exports = SetCache; + +},{"./_MapCache":128,"./_setCacheAdd":252,"./_setCacheHas":253}],132:[function(require,module,exports){ +var ListCache = require('./_ListCache'), + stackClear = require('./_stackClear'), + stackDelete = require('./_stackDelete'), + stackGet = require('./_stackGet'), + stackHas = require('./_stackHas'), + stackSet = require('./_stackSet'); + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +module.exports = Stack; + +},{"./_ListCache":126,"./_stackClear":257,"./_stackDelete":258,"./_stackGet":259,"./_stackHas":260,"./_stackSet":261}],133:[function(require,module,exports){ +var root = require('./_root'); + +/** Built-in value references. */ +var Symbol = root.Symbol; + +module.exports = Symbol; + +},{"./_root":250}],134:[function(require,module,exports){ +var root = require('./_root'); + +/** Built-in value references. */ +var Uint8Array = root.Uint8Array; + +module.exports = Uint8Array; + +},{"./_root":250}],135:[function(require,module,exports){ +var getNative = require('./_getNative'), + root = require('./_root'); + +/* Built-in method references that are verified to be native. */ +var WeakMap = getNative(root, 'WeakMap'); + +module.exports = WeakMap; + +},{"./_getNative":207,"./_root":250}],136:[function(require,module,exports){ +/** + * A faster alternative to `Function#apply`, this function invokes `func` + * with the `this` binding of `thisArg` and the arguments of `args`. + * + * @private + * @param {Function} func The function to invoke. + * @param {*} thisArg The `this` binding of `func`. + * @param {Array} args The arguments to invoke `func` with. + * @returns {*} Returns the result of `func`. + */ +function apply(func, thisArg, args) { + switch (args.length) { + case 0: return func.call(thisArg); + case 1: return func.call(thisArg, args[0]); + case 2: return func.call(thisArg, args[0], args[1]); + case 3: return func.call(thisArg, args[0], args[1], args[2]); + } + return func.apply(thisArg, args); +} + +module.exports = apply; + +},{}],137:[function(require,module,exports){ +/** + * A specialized version of `_.forEach` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns `array`. + */ +function arrayEach(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (iteratee(array[index], index, array) === false) { + break; + } + } + return array; +} + +module.exports = arrayEach; + +},{}],138:[function(require,module,exports){ +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +module.exports = arrayFilter; + +},{}],139:[function(require,module,exports){ +var baseTimes = require('./_baseTimes'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isIndex = require('./_isIndex'), + isTypedArray = require('./isTypedArray'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +module.exports = arrayLikeKeys; + +},{"./_baseTimes":178,"./_isIndex":223,"./isArguments":275,"./isArray":276,"./isBuffer":279,"./isTypedArray":289}],140:[function(require,module,exports){ +/** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function arrayMap(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; +} + +module.exports = arrayMap; + +},{}],141:[function(require,module,exports){ +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +module.exports = arrayPush; + +},{}],142:[function(require,module,exports){ +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +module.exports = arraySome; + +},{}],143:[function(require,module,exports){ +var baseAssignValue = require('./_baseAssignValue'), + eq = require('./eq'); + +/** + * This function is like `assignValue` except that it doesn't assign + * `undefined` values. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignMergeValue(object, key, value) { + if ((value !== undefined && !eq(object[key], value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignMergeValue; + +},{"./_baseAssignValue":148,"./eq":269}],144:[function(require,module,exports){ +var baseAssignValue = require('./_baseAssignValue'), + eq = require('./eq'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Assigns `value` to `key` of `object` if the existing value is not equivalent + * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * for equality comparisons. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function assignValue(object, key, value) { + var objValue = object[key]; + if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || + (value === undefined && !(key in object))) { + baseAssignValue(object, key, value); + } +} + +module.exports = assignValue; + +},{"./_baseAssignValue":148,"./eq":269}],145:[function(require,module,exports){ +var eq = require('./eq'); + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +module.exports = assocIndexOf; + +},{"./eq":269}],146:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + keys = require('./keys'); + +/** + * The base implementation of `_.assign` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssign(object, source) { + return object && copyObject(source, keys(source), object); +} + +module.exports = baseAssign; + +},{"./_copyObject":191,"./keys":291}],147:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + keysIn = require('./keysIn'); + +/** + * The base implementation of `_.assignIn` without support for multiple sources + * or `customizer` functions. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @returns {Object} Returns `object`. + */ +function baseAssignIn(object, source) { + return object && copyObject(source, keysIn(source), object); +} + +module.exports = baseAssignIn; + +},{"./_copyObject":191,"./keysIn":292}],148:[function(require,module,exports){ +var defineProperty = require('./_defineProperty'); + +/** + * The base implementation of `assignValue` and `assignMergeValue` without + * value checks. + * + * @private + * @param {Object} object The object to modify. + * @param {string} key The key of the property to assign. + * @param {*} value The value to assign. + */ +function baseAssignValue(object, key, value) { + if (key == '__proto__' && defineProperty) { + defineProperty(object, key, { + 'configurable': true, + 'enumerable': true, + 'value': value, + 'writable': true + }); + } else { + object[key] = value; + } +} + +module.exports = baseAssignValue; + +},{"./_defineProperty":198}],149:[function(require,module,exports){ +var Stack = require('./_Stack'), + arrayEach = require('./_arrayEach'), + assignValue = require('./_assignValue'), + baseAssign = require('./_baseAssign'), + baseAssignIn = require('./_baseAssignIn'), + cloneBuffer = require('./_cloneBuffer'), + copyArray = require('./_copyArray'), + copySymbols = require('./_copySymbols'), + copySymbolsIn = require('./_copySymbolsIn'), + getAllKeys = require('./_getAllKeys'), + getAllKeysIn = require('./_getAllKeysIn'), + getTag = require('./_getTag'), + initCloneArray = require('./_initCloneArray'), + initCloneByTag = require('./_initCloneByTag'), + initCloneObject = require('./_initCloneObject'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isMap = require('./isMap'), + isObject = require('./isObject'), + isSet = require('./isSet'), + keys = require('./keys'), + keysIn = require('./keysIn'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_FLAT_FLAG = 2, + CLONE_SYMBOLS_FLAG = 4; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values supported by `_.clone`. */ +var cloneableTags = {}; +cloneableTags[argsTag] = cloneableTags[arrayTag] = +cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] = +cloneableTags[boolTag] = cloneableTags[dateTag] = +cloneableTags[float32Tag] = cloneableTags[float64Tag] = +cloneableTags[int8Tag] = cloneableTags[int16Tag] = +cloneableTags[int32Tag] = cloneableTags[mapTag] = +cloneableTags[numberTag] = cloneableTags[objectTag] = +cloneableTags[regexpTag] = cloneableTags[setTag] = +cloneableTags[stringTag] = cloneableTags[symbolTag] = +cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] = +cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true; +cloneableTags[errorTag] = cloneableTags[funcTag] = +cloneableTags[weakMapTag] = false; + +/** + * The base implementation of `_.clone` and `_.cloneDeep` which tracks + * traversed objects. + * + * @private + * @param {*} value The value to clone. + * @param {boolean} bitmask The bitmask flags. + * 1 - Deep clone + * 2 - Flatten inherited properties + * 4 - Clone symbols + * @param {Function} [customizer] The function to customize cloning. + * @param {string} [key] The key of `value`. + * @param {Object} [object] The parent object of `value`. + * @param {Object} [stack] Tracks traversed objects and their clone counterparts. + * @returns {*} Returns the cloned value. + */ +function baseClone(value, bitmask, customizer, key, object, stack) { + var result, + isDeep = bitmask & CLONE_DEEP_FLAG, + isFlat = bitmask & CLONE_FLAT_FLAG, + isFull = bitmask & CLONE_SYMBOLS_FLAG; + + if (customizer) { + result = object ? customizer(value, key, object, stack) : customizer(value); + } + if (result !== undefined) { + return result; + } + if (!isObject(value)) { + return value; + } + var isArr = isArray(value); + if (isArr) { + result = initCloneArray(value); + if (!isDeep) { + return copyArray(value, result); + } + } else { + var tag = getTag(value), + isFunc = tag == funcTag || tag == genTag; + + if (isBuffer(value)) { + return cloneBuffer(value, isDeep); + } + if (tag == objectTag || tag == argsTag || (isFunc && !object)) { + result = (isFlat || isFunc) ? {} : initCloneObject(value); + if (!isDeep) { + return isFlat + ? copySymbolsIn(value, baseAssignIn(result, value)) + : copySymbols(value, baseAssign(result, value)); + } + } else { + if (!cloneableTags[tag]) { + return object ? value : {}; + } + result = initCloneByTag(value, tag, isDeep); + } + } + // Check for circular references and return its corresponding clone. + stack || (stack = new Stack); + var stacked = stack.get(value); + if (stacked) { + return stacked; + } + stack.set(value, result); + + if (isSet(value)) { + value.forEach(function(subValue) { + result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack)); + }); + } else if (isMap(value)) { + value.forEach(function(subValue, key) { + result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + } + + var keysFunc = isFull + ? (isFlat ? getAllKeysIn : getAllKeys) + : (isFlat ? keysIn : keys); + + var props = isArr ? undefined : keysFunc(value); + arrayEach(props || value, function(subValue, key) { + if (props) { + key = subValue; + subValue = value[key]; + } + // Recursively populate clone (susceptible to call stack limits). + assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack)); + }); + return result; +} + +module.exports = baseClone; + +},{"./_Stack":132,"./_arrayEach":137,"./_assignValue":144,"./_baseAssign":146,"./_baseAssignIn":147,"./_cloneBuffer":185,"./_copyArray":190,"./_copySymbols":192,"./_copySymbolsIn":193,"./_getAllKeys":203,"./_getAllKeysIn":204,"./_getTag":212,"./_initCloneArray":220,"./_initCloneByTag":221,"./_initCloneObject":222,"./isArray":276,"./isBuffer":279,"./isMap":282,"./isObject":283,"./isSet":286,"./keys":291,"./keysIn":292}],150:[function(require,module,exports){ +var isObject = require('./isObject'); + +/** Built-in value references. */ +var objectCreate = Object.create; + +/** + * The base implementation of `_.create` without support for assigning + * properties to the created object. + * + * @private + * @param {Object} proto The object to inherit from. + * @returns {Object} Returns the new object. + */ +var baseCreate = (function() { + function object() {} + return function(proto) { + if (!isObject(proto)) { + return {}; + } + if (objectCreate) { + return objectCreate(proto); + } + object.prototype = proto; + var result = new object; + object.prototype = undefined; + return result; + }; +}()); + +module.exports = baseCreate; + +},{"./isObject":283}],151:[function(require,module,exports){ +var baseForOwn = require('./_baseForOwn'), + createBaseEach = require('./_createBaseEach'); + +/** + * The base implementation of `_.forEach` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + */ +var baseEach = createBaseEach(baseForOwn); + +module.exports = baseEach; + +},{"./_baseForOwn":153,"./_createBaseEach":196}],152:[function(require,module,exports){ +var createBaseFor = require('./_createBaseFor'); + +/** + * The base implementation of `baseForOwn` which iterates over `object` + * properties returned by `keysFunc` and invokes `iteratee` for each property. + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @param {Function} keysFunc The function to get the keys of `object`. + * @returns {Object} Returns `object`. + */ +var baseFor = createBaseFor(); + +module.exports = baseFor; + +},{"./_createBaseFor":197}],153:[function(require,module,exports){ +var baseFor = require('./_baseFor'), + keys = require('./keys'); + +/** + * The base implementation of `_.forOwn` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Object} Returns `object`. + */ +function baseForOwn(object, iteratee) { + return object && baseFor(object, iteratee, keys); +} + +module.exports = baseForOwn; + +},{"./_baseFor":152,"./keys":291}],154:[function(require,module,exports){ +var castPath = require('./_castPath'), + toKey = require('./_toKey'); + +/** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ +function baseGet(object, path) { + path = castPath(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey(path[index++])]; + } + return (index && index == length) ? object : undefined; +} + +module.exports = baseGet; + +},{"./_castPath":183,"./_toKey":263}],155:[function(require,module,exports){ +var arrayPush = require('./_arrayPush'), + isArray = require('./isArray'); + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +module.exports = baseGetAllKeys; + +},{"./_arrayPush":141,"./isArray":276}],156:[function(require,module,exports){ +var Symbol = require('./_Symbol'), + getRawTag = require('./_getRawTag'), + objectToString = require('./_objectToString'); + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +module.exports = baseGetTag; + +},{"./_Symbol":133,"./_getRawTag":209,"./_objectToString":247}],157:[function(require,module,exports){ +/** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ +function baseHasIn(object, key) { + return object != null && key in Object(object); +} + +module.exports = baseHasIn; + +},{}],158:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]'; + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +module.exports = baseIsArguments; + +},{"./_baseGetTag":156,"./isObjectLike":284}],159:[function(require,module,exports){ +var baseIsEqualDeep = require('./_baseIsEqualDeep'), + isObjectLike = require('./isObjectLike'); + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +module.exports = baseIsEqual; + +},{"./_baseIsEqualDeep":160,"./isObjectLike":284}],160:[function(require,module,exports){ +var Stack = require('./_Stack'), + equalArrays = require('./_equalArrays'), + equalByTag = require('./_equalByTag'), + equalObjects = require('./_equalObjects'), + getTag = require('./_getTag'), + isArray = require('./isArray'), + isBuffer = require('./isBuffer'), + isTypedArray = require('./isTypedArray'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +module.exports = baseIsEqualDeep; + +},{"./_Stack":132,"./_equalArrays":199,"./_equalByTag":200,"./_equalObjects":201,"./_getTag":212,"./isArray":276,"./isBuffer":279,"./isTypedArray":289}],161:[function(require,module,exports){ +var getTag = require('./_getTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]'; + +/** + * The base implementation of `_.isMap` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + */ +function baseIsMap(value) { + return isObjectLike(value) && getTag(value) == mapTag; +} + +module.exports = baseIsMap; + +},{"./_getTag":212,"./isObjectLike":284}],162:[function(require,module,exports){ +var Stack = require('./_Stack'), + baseIsEqual = require('./_baseIsEqual'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ +function baseIsMatch(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) + : result + )) { + return false; + } + } + } + return true; +} + +module.exports = baseIsMatch; + +},{"./_Stack":132,"./_baseIsEqual":159}],163:[function(require,module,exports){ +var isFunction = require('./isFunction'), + isMasked = require('./_isMasked'), + isObject = require('./isObject'), + toSource = require('./_toSource'); + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +module.exports = baseIsNative; + +},{"./_isMasked":227,"./_toSource":264,"./isFunction":280,"./isObject":283}],164:[function(require,module,exports){ +var getTag = require('./_getTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var setTag = '[object Set]'; + +/** + * The base implementation of `_.isSet` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + */ +function baseIsSet(value) { + return isObjectLike(value) && getTag(value) == setTag; +} + +module.exports = baseIsSet; + +},{"./_getTag":212,"./isObjectLike":284}],165:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isLength = require('./isLength'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag = '[object Map]', + numberTag = '[object Number]', + objectTag = '[object Object]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +module.exports = baseIsTypedArray; + +},{"./_baseGetTag":156,"./isLength":281,"./isObjectLike":284}],166:[function(require,module,exports){ +var baseMatches = require('./_baseMatches'), + baseMatchesProperty = require('./_baseMatchesProperty'), + identity = require('./identity'), + isArray = require('./isArray'), + property = require('./property'); + +/** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ +function baseIteratee(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity; + } + if (typeof value == 'object') { + return isArray(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); +} + +module.exports = baseIteratee; + +},{"./_baseMatches":170,"./_baseMatchesProperty":171,"./identity":274,"./isArray":276,"./property":297}],167:[function(require,module,exports){ +var isPrototype = require('./_isPrototype'), + nativeKeys = require('./_nativeKeys'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +module.exports = baseKeys; + +},{"./_isPrototype":228,"./_nativeKeys":244}],168:[function(require,module,exports){ +var isObject = require('./isObject'), + isPrototype = require('./_isPrototype'), + nativeKeysIn = require('./_nativeKeysIn'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeysIn(object) { + if (!isObject(object)) { + return nativeKeysIn(object); + } + var isProto = isPrototype(object), + result = []; + + for (var key in object) { + if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { + result.push(key); + } + } + return result; +} + +module.exports = baseKeysIn; + +},{"./_isPrototype":228,"./_nativeKeysIn":245,"./isObject":283}],169:[function(require,module,exports){ +var baseEach = require('./_baseEach'), + isArrayLike = require('./isArrayLike'); + +/** + * The base implementation of `_.map` without support for iteratee shorthands. + * + * @private + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ +function baseMap(collection, iteratee) { + var index = -1, + result = isArrayLike(collection) ? Array(collection.length) : []; + + baseEach(collection, function(value, key, collection) { + result[++index] = iteratee(value, key, collection); + }); + return result; +} + +module.exports = baseMap; + +},{"./_baseEach":151,"./isArrayLike":277}],170:[function(require,module,exports){ +var baseIsMatch = require('./_baseIsMatch'), + getMatchData = require('./_getMatchData'), + matchesStrictComparable = require('./_matchesStrictComparable'); + +/** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatches(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; +} + +module.exports = baseMatches; + +},{"./_baseIsMatch":162,"./_getMatchData":206,"./_matchesStrictComparable":241}],171:[function(require,module,exports){ +var baseIsEqual = require('./_baseIsEqual'), + get = require('./get'), + hasIn = require('./hasIn'), + isKey = require('./_isKey'), + isStrictComparable = require('./_isStrictComparable'), + matchesStrictComparable = require('./_matchesStrictComparable'), + toKey = require('./_toKey'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function baseMatchesProperty(path, srcValue) { + if (isKey(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; +} + +module.exports = baseMatchesProperty; + +},{"./_baseIsEqual":159,"./_isKey":225,"./_isStrictComparable":229,"./_matchesStrictComparable":241,"./_toKey":263,"./get":272,"./hasIn":273}],172:[function(require,module,exports){ +var Stack = require('./_Stack'), + assignMergeValue = require('./_assignMergeValue'), + baseFor = require('./_baseFor'), + baseMergeDeep = require('./_baseMergeDeep'), + isObject = require('./isObject'), + keysIn = require('./keysIn'), + safeGet = require('./_safeGet'); + +/** + * The base implementation of `_.merge` without support for multiple sources. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {number} srcIndex The index of `source`. + * @param {Function} [customizer] The function to customize merged values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMerge(object, source, srcIndex, customizer, stack) { + if (object === source) { + return; + } + baseFor(source, function(srcValue, key) { + stack || (stack = new Stack); + if (isObject(srcValue)) { + baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack); + } + else { + var newValue = customizer + ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack) + : undefined; + + if (newValue === undefined) { + newValue = srcValue; + } + assignMergeValue(object, key, newValue); + } + }, keysIn); +} + +module.exports = baseMerge; + +},{"./_Stack":132,"./_assignMergeValue":143,"./_baseFor":152,"./_baseMergeDeep":173,"./_safeGet":251,"./isObject":283,"./keysIn":292}],173:[function(require,module,exports){ +var assignMergeValue = require('./_assignMergeValue'), + cloneBuffer = require('./_cloneBuffer'), + cloneTypedArray = require('./_cloneTypedArray'), + copyArray = require('./_copyArray'), + initCloneObject = require('./_initCloneObject'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isArrayLikeObject = require('./isArrayLikeObject'), + isBuffer = require('./isBuffer'), + isFunction = require('./isFunction'), + isObject = require('./isObject'), + isPlainObject = require('./isPlainObject'), + isTypedArray = require('./isTypedArray'), + safeGet = require('./_safeGet'), + toPlainObject = require('./toPlainObject'); + +/** + * A specialized version of `baseMerge` for arrays and objects which performs + * deep merges and tracks traversed objects enabling objects with circular + * references to be merged. + * + * @private + * @param {Object} object The destination object. + * @param {Object} source The source object. + * @param {string} key The key of the value to merge. + * @param {number} srcIndex The index of `source`. + * @param {Function} mergeFunc The function to merge values. + * @param {Function} [customizer] The function to customize assigned values. + * @param {Object} [stack] Tracks traversed source values and their merged + * counterparts. + */ +function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) { + var objValue = safeGet(object, key), + srcValue = safeGet(source, key), + stacked = stack.get(srcValue); + + if (stacked) { + assignMergeValue(object, key, stacked); + return; + } + var newValue = customizer + ? customizer(objValue, srcValue, (key + ''), object, source, stack) + : undefined; + + var isCommon = newValue === undefined; + + if (isCommon) { + var isArr = isArray(srcValue), + isBuff = !isArr && isBuffer(srcValue), + isTyped = !isArr && !isBuff && isTypedArray(srcValue); + + newValue = srcValue; + if (isArr || isBuff || isTyped) { + if (isArray(objValue)) { + newValue = objValue; + } + else if (isArrayLikeObject(objValue)) { + newValue = copyArray(objValue); + } + else if (isBuff) { + isCommon = false; + newValue = cloneBuffer(srcValue, true); + } + else if (isTyped) { + isCommon = false; + newValue = cloneTypedArray(srcValue, true); + } + else { + newValue = []; + } + } + else if (isPlainObject(srcValue) || isArguments(srcValue)) { + newValue = objValue; + if (isArguments(objValue)) { + newValue = toPlainObject(objValue); + } + else if (!isObject(objValue) || isFunction(objValue)) { + newValue = initCloneObject(srcValue); + } + } + else { + isCommon = false; + } + } + if (isCommon) { + // Recursively merge objects and arrays (susceptible to call stack limits). + stack.set(srcValue, newValue); + mergeFunc(newValue, srcValue, srcIndex, customizer, stack); + stack['delete'](srcValue); + } + assignMergeValue(object, key, newValue); +} + +module.exports = baseMergeDeep; + +},{"./_assignMergeValue":143,"./_cloneBuffer":185,"./_cloneTypedArray":189,"./_copyArray":190,"./_initCloneObject":222,"./_safeGet":251,"./isArguments":275,"./isArray":276,"./isArrayLikeObject":278,"./isBuffer":279,"./isFunction":280,"./isObject":283,"./isPlainObject":285,"./isTypedArray":289,"./toPlainObject":302}],174:[function(require,module,exports){ +/** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function baseProperty(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; +} + +module.exports = baseProperty; + +},{}],175:[function(require,module,exports){ +var baseGet = require('./_baseGet'); + +/** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ +function basePropertyDeep(path) { + return function(object) { + return baseGet(object, path); + }; +} + +module.exports = basePropertyDeep; + +},{"./_baseGet":154}],176:[function(require,module,exports){ +var identity = require('./identity'), + overRest = require('./_overRest'), + setToString = require('./_setToString'); + +/** + * The base implementation of `_.rest` which doesn't validate or coerce arguments. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @returns {Function} Returns the new function. + */ +function baseRest(func, start) { + return setToString(overRest(func, start, identity), func + ''); +} + +module.exports = baseRest; + +},{"./_overRest":249,"./_setToString":255,"./identity":274}],177:[function(require,module,exports){ +var constant = require('./constant'), + defineProperty = require('./_defineProperty'), + identity = require('./identity'); + +/** + * The base implementation of `setToString` without support for hot loop shorting. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var baseSetToString = !defineProperty ? identity : function(func, string) { + return defineProperty(func, 'toString', { + 'configurable': true, + 'enumerable': false, + 'value': constant(string), + 'writable': true + }); +}; + +module.exports = baseSetToString; + +},{"./_defineProperty":198,"./constant":266,"./identity":274}],178:[function(require,module,exports){ +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +module.exports = baseTimes; + +},{}],179:[function(require,module,exports){ +var Symbol = require('./_Symbol'), + arrayMap = require('./_arrayMap'), + isArray = require('./isArray'), + isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + +/** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ +function baseToString(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap(value, baseToString) + ''; + } + if (isSymbol(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = baseToString; + +},{"./_Symbol":133,"./_arrayMap":140,"./isArray":276,"./isSymbol":288}],180:[function(require,module,exports){ +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +module.exports = baseUnary; + +},{}],181:[function(require,module,exports){ +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +module.exports = cacheHas; + +},{}],182:[function(require,module,exports){ +var identity = require('./identity'); + +/** + * Casts `value` to `identity` if it's not a function. + * + * @private + * @param {*} value The value to inspect. + * @returns {Function} Returns cast function. + */ +function castFunction(value) { + return typeof value == 'function' ? value : identity; +} + +module.exports = castFunction; + +},{"./identity":274}],183:[function(require,module,exports){ +var isArray = require('./isArray'), + isKey = require('./_isKey'), + stringToPath = require('./_stringToPath'), + toString = require('./toString'); + +/** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ +function castPath(value, object) { + if (isArray(value)) { + return value; + } + return isKey(value, object) ? [value] : stringToPath(toString(value)); +} + +module.exports = castPath; + +},{"./_isKey":225,"./_stringToPath":262,"./isArray":276,"./toString":303}],184:[function(require,module,exports){ +var Uint8Array = require('./_Uint8Array'); + +/** + * Creates a clone of `arrayBuffer`. + * + * @private + * @param {ArrayBuffer} arrayBuffer The array buffer to clone. + * @returns {ArrayBuffer} Returns the cloned array buffer. + */ +function cloneArrayBuffer(arrayBuffer) { + var result = new arrayBuffer.constructor(arrayBuffer.byteLength); + new Uint8Array(result).set(new Uint8Array(arrayBuffer)); + return result; +} + +module.exports = cloneArrayBuffer; + +},{"./_Uint8Array":134}],185:[function(require,module,exports){ +var root = require('./_root'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined, + allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined; + +/** + * Creates a clone of `buffer`. + * + * @private + * @param {Buffer} buffer The buffer to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Buffer} Returns the cloned buffer. + */ +function cloneBuffer(buffer, isDeep) { + if (isDeep) { + return buffer.slice(); + } + var length = buffer.length, + result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length); + + buffer.copy(result); + return result; +} + +module.exports = cloneBuffer; + +},{"./_root":250}],186:[function(require,module,exports){ +var cloneArrayBuffer = require('./_cloneArrayBuffer'); + +/** + * Creates a clone of `dataView`. + * + * @private + * @param {Object} dataView The data view to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned data view. + */ +function cloneDataView(dataView, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer; + return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength); +} + +module.exports = cloneDataView; + +},{"./_cloneArrayBuffer":184}],187:[function(require,module,exports){ +/** Used to match `RegExp` flags from their coerced string values. */ +var reFlags = /\w*$/; + +/** + * Creates a clone of `regexp`. + * + * @private + * @param {Object} regexp The regexp to clone. + * @returns {Object} Returns the cloned regexp. + */ +function cloneRegExp(regexp) { + var result = new regexp.constructor(regexp.source, reFlags.exec(regexp)); + result.lastIndex = regexp.lastIndex; + return result; +} + +module.exports = cloneRegExp; + +},{}],188:[function(require,module,exports){ +var Symbol = require('./_Symbol'); + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * Creates a clone of the `symbol` object. + * + * @private + * @param {Object} symbol The symbol object to clone. + * @returns {Object} Returns the cloned symbol object. + */ +function cloneSymbol(symbol) { + return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {}; +} + +module.exports = cloneSymbol; + +},{"./_Symbol":133}],189:[function(require,module,exports){ +var cloneArrayBuffer = require('./_cloneArrayBuffer'); + +/** + * Creates a clone of `typedArray`. + * + * @private + * @param {Object} typedArray The typed array to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the cloned typed array. + */ +function cloneTypedArray(typedArray, isDeep) { + var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer; + return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length); +} + +module.exports = cloneTypedArray; + +},{"./_cloneArrayBuffer":184}],190:[function(require,module,exports){ +/** + * Copies the values of `source` to `array`. + * + * @private + * @param {Array} source The array to copy values from. + * @param {Array} [array=[]] The array to copy values to. + * @returns {Array} Returns `array`. + */ +function copyArray(source, array) { + var index = -1, + length = source.length; + + array || (array = Array(length)); + while (++index < length) { + array[index] = source[index]; + } + return array; +} + +module.exports = copyArray; + +},{}],191:[function(require,module,exports){ +var assignValue = require('./_assignValue'), + baseAssignValue = require('./_baseAssignValue'); + +/** + * Copies properties of `source` to `object`. + * + * @private + * @param {Object} source The object to copy properties from. + * @param {Array} props The property identifiers to copy. + * @param {Object} [object={}] The object to copy properties to. + * @param {Function} [customizer] The function to customize copied values. + * @returns {Object} Returns `object`. + */ +function copyObject(source, props, object, customizer) { + var isNew = !object; + object || (object = {}); + + var index = -1, + length = props.length; + + while (++index < length) { + var key = props[index]; + + var newValue = customizer + ? customizer(object[key], source[key], key, object, source) + : undefined; + + if (newValue === undefined) { + newValue = source[key]; + } + if (isNew) { + baseAssignValue(object, key, newValue); + } else { + assignValue(object, key, newValue); + } + } + return object; +} + +module.exports = copyObject; + +},{"./_assignValue":144,"./_baseAssignValue":148}],192:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + getSymbols = require('./_getSymbols'); + +/** + * Copies own symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbols(source, object) { + return copyObject(source, getSymbols(source), object); +} + +module.exports = copySymbols; + +},{"./_copyObject":191,"./_getSymbols":210}],193:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + getSymbolsIn = require('./_getSymbolsIn'); + +/** + * Copies own and inherited symbols of `source` to `object`. + * + * @private + * @param {Object} source The object to copy symbols from. + * @param {Object} [object={}] The object to copy symbols to. + * @returns {Object} Returns `object`. + */ +function copySymbolsIn(source, object) { + return copyObject(source, getSymbolsIn(source), object); +} + +module.exports = copySymbolsIn; + +},{"./_copyObject":191,"./_getSymbolsIn":211}],194:[function(require,module,exports){ +var root = require('./_root'); + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +module.exports = coreJsData; + +},{"./_root":250}],195:[function(require,module,exports){ +var baseRest = require('./_baseRest'), + isIterateeCall = require('./_isIterateeCall'); + +/** + * Creates a function like `_.assign`. + * + * @private + * @param {Function} assigner The function to assign values. + * @returns {Function} Returns the new assigner function. + */ +function createAssigner(assigner) { + return baseRest(function(object, sources) { + var index = -1, + length = sources.length, + customizer = length > 1 ? sources[length - 1] : undefined, + guard = length > 2 ? sources[2] : undefined; + + customizer = (assigner.length > 3 && typeof customizer == 'function') + ? (length--, customizer) + : undefined; + + if (guard && isIterateeCall(sources[0], sources[1], guard)) { + customizer = length < 3 ? undefined : customizer; + length = 1; + } + object = Object(object); + while (++index < length) { + var source = sources[index]; + if (source) { + assigner(object, source, index, customizer); + } + } + return object; + }); +} + +module.exports = createAssigner; + +},{"./_baseRest":176,"./_isIterateeCall":224}],196:[function(require,module,exports){ +var isArrayLike = require('./isArrayLike'); + +/** + * Creates a `baseEach` or `baseEachRight` function. + * + * @private + * @param {Function} eachFunc The function to iterate over a collection. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseEach(eachFunc, fromRight) { + return function(collection, iteratee) { + if (collection == null) { + return collection; + } + if (!isArrayLike(collection)) { + return eachFunc(collection, iteratee); + } + var length = collection.length, + index = fromRight ? length : -1, + iterable = Object(collection); + + while ((fromRight ? index-- : ++index < length)) { + if (iteratee(iterable[index], index, iterable) === false) { + break; + } + } + return collection; + }; +} + +module.exports = createBaseEach; + +},{"./isArrayLike":277}],197:[function(require,module,exports){ +/** + * Creates a base function for methods like `_.forIn` and `_.forOwn`. + * + * @private + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {Function} Returns the new base function. + */ +function createBaseFor(fromRight) { + return function(object, iteratee, keysFunc) { + var index = -1, + iterable = Object(object), + props = keysFunc(object), + length = props.length; + + while (length--) { + var key = props[fromRight ? length : ++index]; + if (iteratee(iterable[key], key, iterable) === false) { + break; + } + } + return object; + }; +} + +module.exports = createBaseFor; + +},{}],198:[function(require,module,exports){ +var getNative = require('./_getNative'); + +var defineProperty = (function() { + try { + var func = getNative(Object, 'defineProperty'); + func({}, '', {}); + return func; + } catch (e) {} +}()); + +module.exports = defineProperty; + +},{"./_getNative":207}],199:[function(require,module,exports){ +var SetCache = require('./_SetCache'), + arraySome = require('./_arraySome'), + cacheHas = require('./_cacheHas'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +module.exports = equalArrays; + +},{"./_SetCache":131,"./_arraySome":142,"./_cacheHas":181}],200:[function(require,module,exports){ +var Symbol = require('./_Symbol'), + Uint8Array = require('./_Uint8Array'), + eq = require('./eq'), + equalArrays = require('./_equalArrays'), + mapToArray = require('./_mapToArray'), + setToArray = require('./_setToArray'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]'; + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +module.exports = equalByTag; + +},{"./_Symbol":133,"./_Uint8Array":134,"./_equalArrays":199,"./_mapToArray":240,"./_setToArray":254,"./eq":269}],201:[function(require,module,exports){ +var getAllKeys = require('./_getAllKeys'); + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +module.exports = equalObjects; + +},{"./_getAllKeys":203}],202:[function(require,module,exports){ +(function (global){ +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +module.exports = freeGlobal; + +}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) + +},{}],203:[function(require,module,exports){ +var baseGetAllKeys = require('./_baseGetAllKeys'), + getSymbols = require('./_getSymbols'), + keys = require('./keys'); + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} + +module.exports = getAllKeys; + +},{"./_baseGetAllKeys":155,"./_getSymbols":210,"./keys":291}],204:[function(require,module,exports){ +var baseGetAllKeys = require('./_baseGetAllKeys'), + getSymbolsIn = require('./_getSymbolsIn'), + keysIn = require('./keysIn'); + +/** + * Creates an array of own and inherited enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeysIn(object) { + return baseGetAllKeys(object, keysIn, getSymbolsIn); +} + +module.exports = getAllKeysIn; + +},{"./_baseGetAllKeys":155,"./_getSymbolsIn":211,"./keysIn":292}],205:[function(require,module,exports){ +var isKeyable = require('./_isKeyable'); + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +module.exports = getMapData; + +},{"./_isKeyable":226}],206:[function(require,module,exports){ +var isStrictComparable = require('./_isStrictComparable'), + keys = require('./keys'); + +/** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ +function getMatchData(object) { + var result = keys(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable(value)]; + } + return result; +} + +module.exports = getMatchData; + +},{"./_isStrictComparable":229,"./keys":291}],207:[function(require,module,exports){ +var baseIsNative = require('./_baseIsNative'), + getValue = require('./_getValue'); + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +module.exports = getNative; + +},{"./_baseIsNative":163,"./_getValue":213}],208:[function(require,module,exports){ +var overArg = require('./_overArg'); + +/** Built-in value references. */ +var getPrototype = overArg(Object.getPrototypeOf, Object); + +module.exports = getPrototype; + +},{"./_overArg":248}],209:[function(require,module,exports){ +var Symbol = require('./_Symbol'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +module.exports = getRawTag; + +},{"./_Symbol":133}],210:[function(require,module,exports){ +var arrayFilter = require('./_arrayFilter'), + stubArray = require('./stubArray'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +module.exports = getSymbols; + +},{"./_arrayFilter":138,"./stubArray":298}],211:[function(require,module,exports){ +var arrayPush = require('./_arrayPush'), + getPrototype = require('./_getPrototype'), + getSymbols = require('./_getSymbols'), + stubArray = require('./stubArray'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols; + +/** + * Creates an array of the own and inherited enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { + var result = []; + while (object) { + arrayPush(result, getSymbols(object)); + object = getPrototype(object); + } + return result; +}; + +module.exports = getSymbolsIn; + +},{"./_arrayPush":141,"./_getPrototype":208,"./_getSymbols":210,"./stubArray":298}],212:[function(require,module,exports){ +var DataView = require('./_DataView'), + Map = require('./_Map'), + Promise = require('./_Promise'), + Set = require('./_Set'), + WeakMap = require('./_WeakMap'), + baseGetTag = require('./_baseGetTag'), + toSource = require('./_toSource'); + +/** `Object#toString` result references. */ +var mapTag = '[object Map]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + setTag = '[object Set]', + weakMapTag = '[object WeakMap]'; + +var dataViewTag = '[object DataView]'; + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +module.exports = getTag; + +},{"./_DataView":124,"./_Map":127,"./_Promise":129,"./_Set":130,"./_WeakMap":135,"./_baseGetTag":156,"./_toSource":264}],213:[function(require,module,exports){ +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +module.exports = getValue; + +},{}],214:[function(require,module,exports){ +var castPath = require('./_castPath'), + isArguments = require('./isArguments'), + isArray = require('./isArray'), + isIndex = require('./_isIndex'), + isLength = require('./isLength'), + toKey = require('./_toKey'); + +/** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ +function hasPath(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray(object) || isArguments(object)); +} + +module.exports = hasPath; + +},{"./_castPath":183,"./_isIndex":223,"./_toKey":263,"./isArguments":275,"./isArray":276,"./isLength":281}],215:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +module.exports = hashClear; + +},{"./_nativeCreate":243}],216:[function(require,module,exports){ +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +module.exports = hashDelete; + +},{}],217:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +module.exports = hashGet; + +},{"./_nativeCreate":243}],218:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +module.exports = hashHas; + +},{"./_nativeCreate":243}],219:[function(require,module,exports){ +var nativeCreate = require('./_nativeCreate'); + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +module.exports = hashSet; + +},{"./_nativeCreate":243}],220:[function(require,module,exports){ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Initializes an array clone. + * + * @private + * @param {Array} array The array to clone. + * @returns {Array} Returns the initialized clone. + */ +function initCloneArray(array) { + var length = array.length, + result = new array.constructor(length); + + // Add properties assigned by `RegExp#exec`. + if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) { + result.index = array.index; + result.input = array.input; + } + return result; +} + +module.exports = initCloneArray; + +},{}],221:[function(require,module,exports){ +var cloneArrayBuffer = require('./_cloneArrayBuffer'), + cloneDataView = require('./_cloneDataView'), + cloneRegExp = require('./_cloneRegExp'), + cloneSymbol = require('./_cloneSymbol'), + cloneTypedArray = require('./_cloneTypedArray'); + +/** `Object#toString` result references. */ +var boolTag = '[object Boolean]', + dateTag = '[object Date]', + mapTag = '[object Map]', + numberTag = '[object Number]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** + * Initializes an object clone based on its `toStringTag`. + * + * **Note:** This function only supports cloning values with tags of + * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`. + * + * @private + * @param {Object} object The object to clone. + * @param {string} tag The `toStringTag` of the object to clone. + * @param {boolean} [isDeep] Specify a deep clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneByTag(object, tag, isDeep) { + var Ctor = object.constructor; + switch (tag) { + case arrayBufferTag: + return cloneArrayBuffer(object); + + case boolTag: + case dateTag: + return new Ctor(+object); + + case dataViewTag: + return cloneDataView(object, isDeep); + + case float32Tag: case float64Tag: + case int8Tag: case int16Tag: case int32Tag: + case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag: + return cloneTypedArray(object, isDeep); + + case mapTag: + return new Ctor; + + case numberTag: + case stringTag: + return new Ctor(object); + + case regexpTag: + return cloneRegExp(object); + + case setTag: + return new Ctor; + + case symbolTag: + return cloneSymbol(object); + } +} + +module.exports = initCloneByTag; + +},{"./_cloneArrayBuffer":184,"./_cloneDataView":186,"./_cloneRegExp":187,"./_cloneSymbol":188,"./_cloneTypedArray":189}],222:[function(require,module,exports){ +var baseCreate = require('./_baseCreate'), + getPrototype = require('./_getPrototype'), + isPrototype = require('./_isPrototype'); + +/** + * Initializes an object clone. + * + * @private + * @param {Object} object The object to clone. + * @returns {Object} Returns the initialized clone. + */ +function initCloneObject(object) { + return (typeof object.constructor == 'function' && !isPrototype(object)) + ? baseCreate(getPrototype(object)) + : {}; +} + +module.exports = initCloneObject; + +},{"./_baseCreate":150,"./_getPrototype":208,"./_isPrototype":228}],223:[function(require,module,exports){ +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); +} + +module.exports = isIndex; + +},{}],224:[function(require,module,exports){ +var eq = require('./eq'), + isArrayLike = require('./isArrayLike'), + isIndex = require('./_isIndex'), + isObject = require('./isObject'); + +/** + * Checks if the given arguments are from an iteratee call. + * + * @private + * @param {*} value The potential iteratee value argument. + * @param {*} index The potential iteratee index or key argument. + * @param {*} object The potential iteratee object argument. + * @returns {boolean} Returns `true` if the arguments are from an iteratee call, + * else `false`. + */ +function isIterateeCall(value, index, object) { + if (!isObject(object)) { + return false; + } + var type = typeof index; + if (type == 'number' + ? (isArrayLike(object) && isIndex(index, object.length)) + : (type == 'string' && index in object) + ) { + return eq(object[index], value); + } + return false; +} + +module.exports = isIterateeCall; + +},{"./_isIndex":223,"./eq":269,"./isArrayLike":277,"./isObject":283}],225:[function(require,module,exports){ +var isArray = require('./isArray'), + isSymbol = require('./isSymbol'); + +/** Used to match property names within property paths. */ +var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + +/** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ +function isKey(value, object) { + if (isArray(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); +} + +module.exports = isKey; + +},{"./isArray":276,"./isSymbol":288}],226:[function(require,module,exports){ +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +module.exports = isKeyable; + +},{}],227:[function(require,module,exports){ +var coreJsData = require('./_coreJsData'); + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +module.exports = isMasked; + +},{"./_coreJsData":194}],228:[function(require,module,exports){ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +module.exports = isPrototype; + +},{}],229:[function(require,module,exports){ +var isObject = require('./isObject'); + +/** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ +function isStrictComparable(value) { + return value === value && !isObject(value); +} + +module.exports = isStrictComparable; + +},{"./isObject":283}],230:[function(require,module,exports){ +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +module.exports = listCacheClear; + +},{}],231:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** Used for built-in method references. */ +var arrayProto = Array.prototype; + +/** Built-in value references. */ +var splice = arrayProto.splice; + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +module.exports = listCacheDelete; + +},{"./_assocIndexOf":145}],232:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +module.exports = listCacheGet; + +},{"./_assocIndexOf":145}],233:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +module.exports = listCacheHas; + +},{"./_assocIndexOf":145}],234:[function(require,module,exports){ +var assocIndexOf = require('./_assocIndexOf'); + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +module.exports = listCacheSet; + +},{"./_assocIndexOf":145}],235:[function(require,module,exports){ +var Hash = require('./_Hash'), + ListCache = require('./_ListCache'), + Map = require('./_Map'); + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +module.exports = mapCacheClear; + +},{"./_Hash":125,"./_ListCache":126,"./_Map":127}],236:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +module.exports = mapCacheDelete; + +},{"./_getMapData":205}],237:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +module.exports = mapCacheGet; + +},{"./_getMapData":205}],238:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +module.exports = mapCacheHas; + +},{"./_getMapData":205}],239:[function(require,module,exports){ +var getMapData = require('./_getMapData'); + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +module.exports = mapCacheSet; + +},{"./_getMapData":205}],240:[function(require,module,exports){ +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +module.exports = mapToArray; + +},{}],241:[function(require,module,exports){ +/** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ +function matchesStrictComparable(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; +} + +module.exports = matchesStrictComparable; + +},{}],242:[function(require,module,exports){ +var memoize = require('./memoize'); + +/** Used as the maximum memoize cache size. */ +var MAX_MEMOIZE_SIZE = 500; + +/** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ +function memoizeCapped(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; +} + +module.exports = memoizeCapped; + +},{"./memoize":294}],243:[function(require,module,exports){ +var getNative = require('./_getNative'); + +/* Built-in method references that are verified to be native. */ +var nativeCreate = getNative(Object, 'create'); + +module.exports = nativeCreate; + +},{"./_getNative":207}],244:[function(require,module,exports){ +var overArg = require('./_overArg'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeKeys = overArg(Object.keys, Object); + +module.exports = nativeKeys; + +},{"./_overArg":248}],245:[function(require,module,exports){ +/** + * This function is like + * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * except that it includes inherited enumerable properties. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function nativeKeysIn(object) { + var result = []; + if (object != null) { + for (var key in Object(object)) { + result.push(key); + } + } + return result; +} + +module.exports = nativeKeysIn; + +},{}],246:[function(require,module,exports){ +var freeGlobal = require('./_freeGlobal'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +module.exports = nodeUtil; + +},{"./_freeGlobal":202}],247:[function(require,module,exports){ +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +module.exports = objectToString; + +},{}],248:[function(require,module,exports){ +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +module.exports = overArg; + +},{}],249:[function(require,module,exports){ +var apply = require('./_apply'); + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max; + +/** + * A specialized version of `baseRest` which transforms the rest array. + * + * @private + * @param {Function} func The function to apply a rest parameter to. + * @param {number} [start=func.length-1] The start position of the rest parameter. + * @param {Function} transform The rest array transform. + * @returns {Function} Returns the new function. + */ +function overRest(func, start, transform) { + start = nativeMax(start === undefined ? (func.length - 1) : start, 0); + return function() { + var args = arguments, + index = -1, + length = nativeMax(args.length - start, 0), + array = Array(length); + + while (++index < length) { + array[index] = args[start + index]; + } + index = -1; + var otherArgs = Array(start + 1); + while (++index < start) { + otherArgs[index] = args[index]; + } + otherArgs[start] = transform(array); + return apply(func, this, otherArgs); + }; +} + +module.exports = overRest; + +},{"./_apply":136}],250:[function(require,module,exports){ +var freeGlobal = require('./_freeGlobal'); + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +module.exports = root; + +},{"./_freeGlobal":202}],251:[function(require,module,exports){ +/** + * Gets the value at `key`, unless `key` is "__proto__" or "constructor". + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function safeGet(object, key) { + if (key === 'constructor' && typeof object[key] === 'function') { + return; + } + + if (key == '__proto__') { + return; + } + + return object[key]; +} + +module.exports = safeGet; + +},{}],252:[function(require,module,exports){ +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +module.exports = setCacheAdd; + +},{}],253:[function(require,module,exports){ +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +module.exports = setCacheHas; + +},{}],254:[function(require,module,exports){ +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +module.exports = setToArray; + +},{}],255:[function(require,module,exports){ +var baseSetToString = require('./_baseSetToString'), + shortOut = require('./_shortOut'); + +/** + * Sets the `toString` method of `func` to return `string`. + * + * @private + * @param {Function} func The function to modify. + * @param {Function} string The `toString` result. + * @returns {Function} Returns `func`. + */ +var setToString = shortOut(baseSetToString); + +module.exports = setToString; + +},{"./_baseSetToString":177,"./_shortOut":256}],256:[function(require,module,exports){ +/** Used to detect hot functions by number of calls within a span of milliseconds. */ +var HOT_COUNT = 800, + HOT_SPAN = 16; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeNow = Date.now; + +/** + * Creates a function that'll short out and invoke `identity` instead + * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` + * milliseconds. + * + * @private + * @param {Function} func The function to restrict. + * @returns {Function} Returns the new shortable function. + */ +function shortOut(func) { + var count = 0, + lastCalled = 0; + + return function() { + var stamp = nativeNow(), + remaining = HOT_SPAN - (stamp - lastCalled); + + lastCalled = stamp; + if (remaining > 0) { + if (++count >= HOT_COUNT) { + return arguments[0]; + } + } else { + count = 0; + } + return func.apply(undefined, arguments); + }; +} + +module.exports = shortOut; + +},{}],257:[function(require,module,exports){ +var ListCache = require('./_ListCache'); + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +module.exports = stackClear; + +},{"./_ListCache":126}],258:[function(require,module,exports){ +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +module.exports = stackDelete; + +},{}],259:[function(require,module,exports){ +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +module.exports = stackGet; + +},{}],260:[function(require,module,exports){ +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +module.exports = stackHas; + +},{}],261:[function(require,module,exports){ +var ListCache = require('./_ListCache'), + Map = require('./_Map'), + MapCache = require('./_MapCache'); + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +module.exports = stackSet; + +},{"./_ListCache":126,"./_Map":127,"./_MapCache":128}],262:[function(require,module,exports){ +var memoizeCapped = require('./_memoizeCapped'); + +/** Used to match property names within property paths. */ +var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + +/** Used to match backslashes in property paths. */ +var reEscapeChar = /\\(\\)?/g; + +/** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ +var stringToPath = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; +}); + +module.exports = stringToPath; + +},{"./_memoizeCapped":242}],263:[function(require,module,exports){ +var isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var INFINITY = 1 / 0; + +/** + * Converts `value` to a string key if it's not a string or symbol. + * + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ +function toKey(value) { + if (typeof value == 'string' || isSymbol(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; +} + +module.exports = toKey; + +},{"./isSymbol":288}],264:[function(require,module,exports){ +/** Used for built-in method references. */ +var funcProto = Function.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +module.exports = toSource; + +},{}],265:[function(require,module,exports){ +var baseClone = require('./_baseClone'); + +/** Used to compose bitmasks for cloning. */ +var CLONE_DEEP_FLAG = 1, + CLONE_SYMBOLS_FLAG = 4; + +/** + * This method is like `_.clone` except that it recursively clones `value`. + * + * @static + * @memberOf _ + * @since 1.0.0 + * @category Lang + * @param {*} value The value to recursively clone. + * @returns {*} Returns the deep cloned value. + * @see _.clone + * @example + * + * var objects = [{ 'a': 1 }, { 'b': 2 }]; + * + * var deep = _.cloneDeep(objects); + * console.log(deep[0] === objects[0]); + * // => false + */ +function cloneDeep(value) { + return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG); +} + +module.exports = cloneDeep; + +},{"./_baseClone":149}],266:[function(require,module,exports){ +/** + * Creates a function that returns `value`. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {*} value The value to return from the new function. + * @returns {Function} Returns the new constant function. + * @example + * + * var objects = _.times(2, _.constant({ 'a': 1 })); + * + * console.log(objects); + * // => [{ 'a': 1 }, { 'a': 1 }] + * + * console.log(objects[0] === objects[1]); + * // => true + */ +function constant(value) { + return function() { + return value; + }; +} + +module.exports = constant; + +},{}],267:[function(require,module,exports){ +var isObject = require('./isObject'), + now = require('./now'), + toNumber = require('./toNumber'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = toNumber(wait) || 0; + if (isObject(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge(now()); + } + + function debounced() { + var time = now(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} + +module.exports = debounce; + +},{"./isObject":283,"./now":296,"./toNumber":301}],268:[function(require,module,exports){ +module.exports = require('./forEach'); + +},{"./forEach":270}],269:[function(require,module,exports){ +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +module.exports = eq; + +},{}],270:[function(require,module,exports){ +var arrayEach = require('./_arrayEach'), + baseEach = require('./_baseEach'), + castFunction = require('./_castFunction'), + isArray = require('./isArray'); + +/** + * Iterates over elements of `collection` and invokes `iteratee` for each element. + * The iteratee is invoked with three arguments: (value, index|key, collection). + * Iteratee functions may exit iteration early by explicitly returning `false`. + * + * **Note:** As with other "Collections" methods, objects with a "length" + * property are iterated like arrays. To avoid this behavior use `_.forIn` + * or `_.forOwn` for object iteration. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @alias each + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array|Object} Returns `collection`. + * @see _.forEachRight + * @example + * + * _.forEach([1, 2], function(value) { + * console.log(value); + * }); + * // => Logs `1` then `2`. + * + * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forEach(collection, iteratee) { + var func = isArray(collection) ? arrayEach : baseEach; + return func(collection, castFunction(iteratee)); +} + +module.exports = forEach; + +},{"./_arrayEach":137,"./_baseEach":151,"./_castFunction":182,"./isArray":276}],271:[function(require,module,exports){ +var baseForOwn = require('./_baseForOwn'), + castFunction = require('./_castFunction'); + +/** + * Iterates over own enumerable string keyed properties of an object and + * invokes `iteratee` for each property. The iteratee is invoked with three + * arguments: (value, key, object). Iteratee functions may exit iteration + * early by explicitly returning `false`. + * + * @static + * @memberOf _ + * @since 0.3.0 + * @category Object + * @param {Object} object The object to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Object} Returns `object`. + * @see _.forOwnRight + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.forOwn(new Foo, function(value, key) { + * console.log(key); + * }); + * // => Logs 'a' then 'b' (iteration order is not guaranteed). + */ +function forOwn(object, iteratee) { + return object && baseForOwn(object, castFunction(iteratee)); +} + +module.exports = forOwn; + +},{"./_baseForOwn":153,"./_castFunction":182}],272:[function(require,module,exports){ +var baseGet = require('./_baseGet'); + +/** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ +function get(object, path, defaultValue) { + var result = object == null ? undefined : baseGet(object, path); + return result === undefined ? defaultValue : result; +} + +module.exports = get; + +},{"./_baseGet":154}],273:[function(require,module,exports){ +var baseHasIn = require('./_baseHasIn'), + hasPath = require('./_hasPath'); + +/** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ +function hasIn(object, path) { + return object != null && hasPath(object, path, baseHasIn); +} + +module.exports = hasIn; + +},{"./_baseHasIn":157,"./_hasPath":214}],274:[function(require,module,exports){ +/** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ +function identity(value) { + return value; +} + +module.exports = identity; + +},{}],275:[function(require,module,exports){ +var baseIsArguments = require('./_baseIsArguments'), + isObjectLike = require('./isObjectLike'); + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Built-in value references. */ +var propertyIsEnumerable = objectProto.propertyIsEnumerable; + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +module.exports = isArguments; + +},{"./_baseIsArguments":158,"./isObjectLike":284}],276:[function(require,module,exports){ +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +module.exports = isArray; + +},{}],277:[function(require,module,exports){ +var isFunction = require('./isFunction'), + isLength = require('./isLength'); + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +module.exports = isArrayLike; + +},{"./isFunction":280,"./isLength":281}],278:[function(require,module,exports){ +var isArrayLike = require('./isArrayLike'), + isObjectLike = require('./isObjectLike'); + +/** + * This method is like `_.isArrayLike` except that it also checks if `value` + * is an object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array-like object, + * else `false`. + * @example + * + * _.isArrayLikeObject([1, 2, 3]); + * // => true + * + * _.isArrayLikeObject(document.body.children); + * // => true + * + * _.isArrayLikeObject('abc'); + * // => false + * + * _.isArrayLikeObject(_.noop); + * // => false + */ +function isArrayLikeObject(value) { + return isObjectLike(value) && isArrayLike(value); +} + +module.exports = isArrayLikeObject; + +},{"./isArrayLike":277,"./isObjectLike":284}],279:[function(require,module,exports){ +var root = require('./_root'), + stubFalse = require('./stubFalse'); + +/** Detect free variable `exports`. */ +var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +module.exports = isBuffer; + +},{"./_root":250,"./stubFalse":299}],280:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isObject = require('./isObject'); + +/** `Object#toString` result references. */ +var asyncTag = '[object AsyncFunction]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +module.exports = isFunction; + +},{"./_baseGetTag":156,"./isObject":283}],281:[function(require,module,exports){ +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +module.exports = isLength; + +},{}],282:[function(require,module,exports){ +var baseIsMap = require('./_baseIsMap'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsMap = nodeUtil && nodeUtil.isMap; + +/** + * Checks if `value` is classified as a `Map` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a map, else `false`. + * @example + * + * _.isMap(new Map); + * // => true + * + * _.isMap(new WeakMap); + * // => false + */ +var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap; + +module.exports = isMap; + +},{"./_baseIsMap":161,"./_baseUnary":180,"./_nodeUtil":246}],283:[function(require,module,exports){ +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +module.exports = isObject; + +},{}],284:[function(require,module,exports){ +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +module.exports = isObjectLike; + +},{}],285:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + getPrototype = require('./_getPrototype'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var objectTag = '[object Object]'; + +/** Used for built-in method references. */ +var funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to infer the `Object` constructor. */ +var objectCtorString = funcToString.call(Object); + +/** + * Checks if `value` is a plain object, that is, an object created by the + * `Object` constructor or one with a `[[Prototype]]` of `null`. + * + * @static + * @memberOf _ + * @since 0.8.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. + * @example + * + * function Foo() { + * this.a = 1; + * } + * + * _.isPlainObject(new Foo); + * // => false + * + * _.isPlainObject([1, 2, 3]); + * // => false + * + * _.isPlainObject({ 'x': 0, 'y': 0 }); + * // => true + * + * _.isPlainObject(Object.create(null)); + * // => true + */ +function isPlainObject(value) { + if (!isObjectLike(value) || baseGetTag(value) != objectTag) { + return false; + } + var proto = getPrototype(value); + if (proto === null) { + return true; + } + var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; + return typeof Ctor == 'function' && Ctor instanceof Ctor && + funcToString.call(Ctor) == objectCtorString; +} + +module.exports = isPlainObject; + +},{"./_baseGetTag":156,"./_getPrototype":208,"./isObjectLike":284}],286:[function(require,module,exports){ +var baseIsSet = require('./_baseIsSet'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsSet = nodeUtil && nodeUtil.isSet; + +/** + * Checks if `value` is classified as a `Set` object. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a set, else `false`. + * @example + * + * _.isSet(new Set); + * // => true + * + * _.isSet(new WeakSet); + * // => false + */ +var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet; + +module.exports = isSet; + +},{"./_baseIsSet":164,"./_baseUnary":180,"./_nodeUtil":246}],287:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isArray = require('./isArray'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var stringTag = '[object String]'; + +/** + * Checks if `value` is classified as a `String` primitive or object. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a string, else `false`. + * @example + * + * _.isString('abc'); + * // => true + * + * _.isString(1); + * // => false + */ +function isString(value) { + return typeof value == 'string' || + (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); +} + +module.exports = isString; + +},{"./_baseGetTag":156,"./isArray":276,"./isObjectLike":284}],288:[function(require,module,exports){ +var baseGetTag = require('./_baseGetTag'), + isObjectLike = require('./isObjectLike'); + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + (isObjectLike(value) && baseGetTag(value) == symbolTag); +} + +module.exports = isSymbol; + +},{"./_baseGetTag":156,"./isObjectLike":284}],289:[function(require,module,exports){ +var baseIsTypedArray = require('./_baseIsTypedArray'), + baseUnary = require('./_baseUnary'), + nodeUtil = require('./_nodeUtil'); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +module.exports = isTypedArray; + +},{"./_baseIsTypedArray":165,"./_baseUnary":180,"./_nodeUtil":246}],290:[function(require,module,exports){ +/** + * Checks if `value` is `undefined`. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`. + * @example + * + * _.isUndefined(void 0); + * // => true + * + * _.isUndefined(null); + * // => false + */ +function isUndefined(value) { + return value === undefined; +} + +module.exports = isUndefined; + +},{}],291:[function(require,module,exports){ +var arrayLikeKeys = require('./_arrayLikeKeys'), + baseKeys = require('./_baseKeys'), + isArrayLike = require('./isArrayLike'); + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +module.exports = keys; + +},{"./_arrayLikeKeys":139,"./_baseKeys":167,"./isArrayLike":277}],292:[function(require,module,exports){ +var arrayLikeKeys = require('./_arrayLikeKeys'), + baseKeysIn = require('./_baseKeysIn'), + isArrayLike = require('./isArrayLike'); + +/** + * Creates an array of the own and inherited enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keysIn(new Foo); + * // => ['a', 'b', 'c'] (iteration order is not guaranteed) + */ +function keysIn(object) { + return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); +} + +module.exports = keysIn; + +},{"./_arrayLikeKeys":139,"./_baseKeysIn":168,"./isArrayLike":277}],293:[function(require,module,exports){ +var arrayMap = require('./_arrayMap'), + baseIteratee = require('./_baseIteratee'), + baseMap = require('./_baseMap'), + isArray = require('./isArray'); + +/** + * Creates an array of values by running each element in `collection` thru + * `iteratee`. The iteratee is invoked with three arguments: + * (value, index|key, collection). + * + * Many lodash methods are guarded to work as iteratees for methods like + * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`. + * + * The guarded methods are: + * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`, + * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`, + * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`, + * `template`, `trim`, `trimEnd`, `trimStart`, and `words` + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to iterate over. + * @param {Function} [iteratee=_.identity] The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + * @example + * + * function square(n) { + * return n * n; + * } + * + * _.map([4, 8], square); + * // => [16, 64] + * + * _.map({ 'a': 4, 'b': 8 }, square); + * // => [16, 64] (iteration order is not guaranteed) + * + * var users = [ + * { 'user': 'barney' }, + * { 'user': 'fred' } + * ]; + * + * // The `_.property` iteratee shorthand. + * _.map(users, 'user'); + * // => ['barney', 'fred'] + */ +function map(collection, iteratee) { + var func = isArray(collection) ? arrayMap : baseMap; + return func(collection, baseIteratee(iteratee, 3)); +} + +module.exports = map; + +},{"./_arrayMap":140,"./_baseIteratee":166,"./_baseMap":169,"./isArray":276}],294:[function(require,module,exports){ +var MapCache = require('./_MapCache'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ +function memoize(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize.Cache || MapCache); + return memoized; +} + +// Expose `MapCache`. +memoize.Cache = MapCache; + +module.exports = memoize; + +},{"./_MapCache":128}],295:[function(require,module,exports){ +var baseMerge = require('./_baseMerge'), + createAssigner = require('./_createAssigner'); + +/** + * This method is like `_.assign` except that it recursively merges own and + * inherited enumerable string keyed properties of source objects into the + * destination object. Source properties that resolve to `undefined` are + * skipped if a destination value exists. Array and plain object properties + * are merged recursively. Other objects and value types are overridden by + * assignment. Source objects are applied from left to right. Subsequent + * sources overwrite property assignments of previous sources. + * + * **Note:** This method mutates `object`. + * + * @static + * @memberOf _ + * @since 0.5.0 + * @category Object + * @param {Object} object The destination object. + * @param {...Object} [sources] The source objects. + * @returns {Object} Returns `object`. + * @example + * + * var object = { + * 'a': [{ 'b': 2 }, { 'd': 4 }] + * }; + * + * var other = { + * 'a': [{ 'c': 3 }, { 'e': 5 }] + * }; + * + * _.merge(object, other); + * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] } + */ +var merge = createAssigner(function(object, source, srcIndex) { + baseMerge(object, source, srcIndex); +}); + +module.exports = merge; + +},{"./_baseMerge":172,"./_createAssigner":195}],296:[function(require,module,exports){ +var root = require('./_root'); + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function() { + return root.Date.now(); +}; + +module.exports = now; + +},{"./_root":250}],297:[function(require,module,exports){ +var baseProperty = require('./_baseProperty'), + basePropertyDeep = require('./_basePropertyDeep'), + isKey = require('./_isKey'), + toKey = require('./_toKey'); + +/** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ +function property(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); +} + +module.exports = property; + +},{"./_baseProperty":174,"./_basePropertyDeep":175,"./_isKey":225,"./_toKey":263}],298:[function(require,module,exports){ +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} + +module.exports = stubArray; + +},{}],299:[function(require,module,exports){ +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = stubFalse; + +},{}],300:[function(require,module,exports){ +var debounce = require('./debounce'), + isObject = require('./isObject'); + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/** + * Creates a throttled function that only invokes `func` at most once per + * every `wait` milliseconds. The throttled function comes with a `cancel` + * method to cancel delayed `func` invocations and a `flush` method to + * immediately invoke them. Provide `options` to indicate whether `func` + * should be invoked on the leading and/or trailing edge of the `wait` + * timeout. The `func` is invoked with the last arguments provided to the + * throttled function. Subsequent calls to the throttled function return the + * result of the last `func` invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the throttled function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.throttle` and `_.debounce`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to throttle. + * @param {number} [wait=0] The number of milliseconds to throttle invocations to. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=true] + * Specify invoking on the leading edge of the timeout. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new throttled function. + * @example + * + * // Avoid excessively updating the position while scrolling. + * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); + * + * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. + * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); + * jQuery(element).on('click', throttled); + * + * // Cancel the trailing throttled invocation. + * jQuery(window).on('popstate', throttled.cancel); + */ +function throttle(func, wait, options) { + var leading = true, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + if (isObject(options)) { + leading = 'leading' in options ? !!options.leading : leading; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + return debounce(func, wait, { + 'leading': leading, + 'maxWait': wait, + 'trailing': trailing + }); +} + +module.exports = throttle; + +},{"./debounce":267,"./isObject":283}],301:[function(require,module,exports){ +var isObject = require('./isObject'), + isSymbol = require('./isSymbol'); + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** Used to match leading and trailing whitespace. */ +var reTrim = /^\s+|\s+$/g; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +module.exports = toNumber; + +},{"./isObject":283,"./isSymbol":288}],302:[function(require,module,exports){ +var copyObject = require('./_copyObject'), + keysIn = require('./keysIn'); + +/** + * Converts `value` to a plain object flattening inherited enumerable string + * keyed properties of `value` to own properties of the plain object. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {Object} Returns the converted plain object. + * @example + * + * function Foo() { + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.assign({ 'a': 1 }, new Foo); + * // => { 'a': 1, 'b': 2 } + * + * _.assign({ 'a': 1 }, _.toPlainObject(new Foo)); + * // => { 'a': 1, 'b': 2, 'c': 3 } + */ +function toPlainObject(value) { + return copyObject(value, keysIn(value)); +} + +module.exports = toPlainObject; + +},{"./_copyObject":191,"./keysIn":292}],303:[function(require,module,exports){ +var baseToString = require('./_baseToString'); + +/** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ +function toString(value) { + return value == null ? '' : baseToString(value); +} + +module.exports = toString; + +},{"./_baseToString":179}],304:[function(require,module,exports){ +(function(root, factory) { + if (typeof define === 'function' && define.amd) { + define([], factory); + } else if (typeof exports === 'object') { + module.exports = factory(); + } else { + root.materialColors = factory(); + } +})(this, function() { + return {"red":{"50":"#ffebee","100":"#ffcdd2","200":"#ef9a9a","300":"#e57373","400":"#ef5350","500":"#f44336","600":"#e53935","700":"#d32f2f","800":"#c62828","900":"#b71c1c","a100":"#ff8a80","a200":"#ff5252","a400":"#ff1744","a700":"#d50000"},"pink":{"50":"#fce4ec","100":"#f8bbd0","200":"#f48fb1","300":"#f06292","400":"#ec407a","500":"#e91e63","600":"#d81b60","700":"#c2185b","800":"#ad1457","900":"#880e4f","a100":"#ff80ab","a200":"#ff4081","a400":"#f50057","a700":"#c51162"},"purple":{"50":"#f3e5f5","100":"#e1bee7","200":"#ce93d8","300":"#ba68c8","400":"#ab47bc","500":"#9c27b0","600":"#8e24aa","700":"#7b1fa2","800":"#6a1b9a","900":"#4a148c","a100":"#ea80fc","a200":"#e040fb","a400":"#d500f9","a700":"#aa00ff"},"deepPurple":{"50":"#ede7f6","100":"#d1c4e9","200":"#b39ddb","300":"#9575cd","400":"#7e57c2","500":"#673ab7","600":"#5e35b1","700":"#512da8","800":"#4527a0","900":"#311b92","a100":"#b388ff","a200":"#7c4dff","a400":"#651fff","a700":"#6200ea"},"indigo":{"50":"#e8eaf6","100":"#c5cae9","200":"#9fa8da","300":"#7986cb","400":"#5c6bc0","500":"#3f51b5","600":"#3949ab","700":"#303f9f","800":"#283593","900":"#1a237e","a100":"#8c9eff","a200":"#536dfe","a400":"#3d5afe","a700":"#304ffe"},"blue":{"50":"#e3f2fd","100":"#bbdefb","200":"#90caf9","300":"#64b5f6","400":"#42a5f5","500":"#2196f3","600":"#1e88e5","700":"#1976d2","800":"#1565c0","900":"#0d47a1","a100":"#82b1ff","a200":"#448aff","a400":"#2979ff","a700":"#2962ff"},"lightBlue":{"50":"#e1f5fe","100":"#b3e5fc","200":"#81d4fa","300":"#4fc3f7","400":"#29b6f6","500":"#03a9f4","600":"#039be5","700":"#0288d1","800":"#0277bd","900":"#01579b","a100":"#80d8ff","a200":"#40c4ff","a400":"#00b0ff","a700":"#0091ea"},"cyan":{"50":"#e0f7fa","100":"#b2ebf2","200":"#80deea","300":"#4dd0e1","400":"#26c6da","500":"#00bcd4","600":"#00acc1","700":"#0097a7","800":"#00838f","900":"#006064","a100":"#84ffff","a200":"#18ffff","a400":"#00e5ff","a700":"#00b8d4"},"teal":{"50":"#e0f2f1","100":"#b2dfdb","200":"#80cbc4","300":"#4db6ac","400":"#26a69a","500":"#009688","600":"#00897b","700":"#00796b","800":"#00695c","900":"#004d40","a100":"#a7ffeb","a200":"#64ffda","a400":"#1de9b6","a700":"#00bfa5"},"green":{"50":"#e8f5e9","100":"#c8e6c9","200":"#a5d6a7","300":"#81c784","400":"#66bb6a","500":"#4caf50","600":"#43a047","700":"#388e3c","800":"#2e7d32","900":"#1b5e20","a100":"#b9f6ca","a200":"#69f0ae","a400":"#00e676","a700":"#00c853"},"lightGreen":{"50":"#f1f8e9","100":"#dcedc8","200":"#c5e1a5","300":"#aed581","400":"#9ccc65","500":"#8bc34a","600":"#7cb342","700":"#689f38","800":"#558b2f","900":"#33691e","a100":"#ccff90","a200":"#b2ff59","a400":"#76ff03","a700":"#64dd17"},"lime":{"50":"#f9fbe7","100":"#f0f4c3","200":"#e6ee9c","300":"#dce775","400":"#d4e157","500":"#cddc39","600":"#c0ca33","700":"#afb42b","800":"#9e9d24","900":"#827717","a100":"#f4ff81","a200":"#eeff41","a400":"#c6ff00","a700":"#aeea00"},"yellow":{"50":"#fffde7","100":"#fff9c4","200":"#fff59d","300":"#fff176","400":"#ffee58","500":"#ffeb3b","600":"#fdd835","700":"#fbc02d","800":"#f9a825","900":"#f57f17","a100":"#ffff8d","a200":"#ffff00","a400":"#ffea00","a700":"#ffd600"},"amber":{"50":"#fff8e1","100":"#ffecb3","200":"#ffe082","300":"#ffd54f","400":"#ffca28","500":"#ffc107","600":"#ffb300","700":"#ffa000","800":"#ff8f00","900":"#ff6f00","a100":"#ffe57f","a200":"#ffd740","a400":"#ffc400","a700":"#ffab00"},"orange":{"50":"#fff3e0","100":"#ffe0b2","200":"#ffcc80","300":"#ffb74d","400":"#ffa726","500":"#ff9800","600":"#fb8c00","700":"#f57c00","800":"#ef6c00","900":"#e65100","a100":"#ffd180","a200":"#ffab40","a400":"#ff9100","a700":"#ff6d00"},"deepOrange":{"50":"#fbe9e7","100":"#ffccbc","200":"#ffab91","300":"#ff8a65","400":"#ff7043","500":"#ff5722","600":"#f4511e","700":"#e64a19","800":"#d84315","900":"#bf360c","a100":"#ff9e80","a200":"#ff6e40","a400":"#ff3d00","a700":"#dd2c00"},"brown":{"50":"#efebe9","100":"#d7ccc8","200":"#bcaaa4","300":"#a1887f","400":"#8d6e63","500":"#795548","600":"#6d4c41","700":"#5d4037","800":"#4e342e","900":"#3e2723"},"grey":{"50":"#fafafa","100":"#f5f5f5","200":"#eeeeee","300":"#e0e0e0","400":"#bdbdbd","500":"#9e9e9e","600":"#757575","700":"#616161","800":"#424242","900":"#212121"},"blueGrey":{"50":"#eceff1","100":"#cfd8dc","200":"#b0bec5","300":"#90a4ae","400":"#78909c","500":"#607d8b","600":"#546e7a","700":"#455a64","800":"#37474f","900":"#263238"},"darkText":{"primary":"rgba(0, 0, 0, 0.87)","secondary":"rgba(0, 0, 0, 0.54)","disabled":"rgba(0, 0, 0, 0.38)","dividers":"rgba(0, 0, 0, 0.12)"},"lightText":{"primary":"rgba(255, 255, 255, 1)","secondary":"rgba(255, 255, 255, 0.7)","disabled":"rgba(255, 255, 255, 0.5)","dividers":"rgba(255, 255, 255, 0.12)"},"darkIcons":{"active":"rgba(0, 0, 0, 0.54)","inactive":"rgba(0, 0, 0, 0.38)"},"lightIcons":{"active":"rgba(255, 255, 255, 1)","inactive":"rgba(255, 255, 255, 0.5)"},"white":"#ffffff","black":"#000000"}; +}); + +},{}],305:[function(require,module,exports){ +/* object-assign (c) Sindre Sorhus @license MIT */ -'use strict';var _0x18ab57=Object[_0x4c48e6('0xc50')],_0x1ea840=Object[_0x4c48e6('0x539')][_0x4c48e6('0x1a8')],_0x2566ee=Object[_0x4c48e6('0x539')][_0x4c48e6('0x603')];function _0x5659e2(_0x427bda){var _0x451464=_0x4c48e6;if(null==_0x427bda)throw new TypeError(_0x451464('0x601'));return Object(_0x427bda);}_0x523ef7['exports']=function(){var _0x3ada26=_0x4c48e6;try{if(!Object[_0x3ada26('0xd71')])return!0x1;var _0x32da96=new String(_0x3ada26('0xc39'));if(_0x32da96[0x5]='de','5'===Object[_0x3ada26('0xa7d')](_0x32da96)[0x0])return!0x1;for(var _0x314259={},_0x3bb873=0x0;_0x3bb873<0xa;_0x3bb873++)_0x314259['_'+String[_0x3ada26('0x385')](_0x3bb873)]=_0x3bb873;if('0123456789'!==Object['getOwnPropertyNames'](_0x314259)['map'](function(_0x447e19){return _0x314259[_0x447e19];})[_0x3ada26('0xc1')](''))return!0x1;var _0x186b11={};return _0x3ada26('0x17b')[_0x3ada26('0x5c')]('')['forEach'](function(_0x589364){_0x186b11[_0x589364]=_0x589364;}),_0x3ada26('0x17b')===Object['keys'](Object['assign']({},_0x186b11))['join']('');}catch(_0x4875bc){return!0x1;}}()?Object[_0x4c48e6('0xd71')]:function(_0x447aa3,_0x324403){var _0x45cefc=_0x4c48e6;for(var _0x10c72d,_0x40c3b9,_0x399753=_0x5659e2(_0x447aa3),_0x2a3c70=0x1;_0x2a3c700x1&&(_0x268ec3['a']=0x1),_0x2cd4fe[_0x297db7('0x22d')][_0x297db7('0xbb3')]({'h':_0x2cd4fe['props']['hsl']['h'],'s':_0x2cd4fe[_0x297db7('0x22d')][_0x297db7('0x570')]['s'],'l':_0x2cd4fe[_0x297db7('0x22d')]['hsl']['l'],'a':Math[_0x297db7('0x763')](0x64*_0x268ec3['a'])/0x64,'source':_0x297db7('0x4dd')},_0x519342)):(_0x268ec3['h']||_0x268ec3['s']||_0x268ec3['l'])&&(_0x297db7('0x3fd')==typeof _0x268ec3['s']&&_0x268ec3['s'][_0x297db7('0xa31')]('%')&&(_0x268ec3['s']=_0x268ec3['s'][_0x297db7('0x8f9')]('%','')),_0x297db7('0x3fd')==typeof _0x268ec3['l']&&_0x268ec3['l'][_0x297db7('0xa31')]('%')&&(_0x268ec3['l']=_0x268ec3['l']['replace']('%','')),0x1==_0x268ec3['s']?_0x268ec3['s']=0.01:0x1==_0x268ec3['l']&&(_0x268ec3['l']=0.01),_0x2cd4fe[_0x297db7('0x22d')][_0x297db7('0xbb3')]({'h':_0x268ec3['h']||_0x2cd4fe[_0x297db7('0x22d')]['hsl']['h'],'s':Number((0x0,_0xf0f1c0[_0x297db7('0x8fd')])(_0x268ec3['s'])?_0x2cd4fe[_0x297db7('0x22d')]['hsl']['s']:_0x268ec3['s']),'l':Number((0x0,_0xf0f1c0[_0x297db7('0x8fd')])(_0x268ec3['l'])?_0x2cd4fe[_0x297db7('0x22d')][_0x297db7('0x570')]['l']:_0x268ec3['l']),'source':_0x297db7('0x570')},_0x519342));},_0x2cd4fe[_0x4791b2('0xca')]=function(_0x49b3f2){var _0x2ffb2e=_0x4791b2;_0x49b3f2[_0x2ffb2e('0x38e')][_0x2ffb2e('0xc76')][_0x2ffb2e('0x581')]=_0x2ffb2e('0xa07');},_0x2cd4fe[_0x4791b2('0x681')]=function(_0x464461){var _0x496e32=_0x4791b2;_0x464461[_0x496e32('0x38e')][_0x496e32('0xc76')]['background']=_0x496e32('0x6');},0x1!==_0x1d51c7[_0x4791b2('0x570')]['a']&&'hex'===_0x1d51c7[_0x4791b2('0xfd')]?_0x2cd4fe[_0x4791b2('0x7b0')]={'view':_0x4791b2('0x4dd')}:_0x2cd4fe[_0x4791b2('0x7b0')]={'view':_0x1d51c7[_0x4791b2('0xfd')]},_0x2cd4fe;}return function(_0x18e55a,_0x59a5fd){var _0x27ac0e=_0x1c0e;if(_0x27ac0e('0xa25')!=typeof _0x59a5fd&&null!==_0x59a5fd)throw new TypeError(_0x27ac0e('0x88f')+typeof _0x59a5fd);_0x18e55a['prototype']=Object['create'](_0x59a5fd&&_0x59a5fd[_0x27ac0e('0x539')],{'constructor':{'value':_0x18e55a,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x59a5fd&&(Object[_0x27ac0e('0x489')]?Object[_0x27ac0e('0x489')](_0x18e55a,_0x59a5fd):_0x18e55a[_0x27ac0e('0xcb9')]=_0x59a5fd);}(_0xc2b072,_0x5c1f80),_0x1a205d(_0xc2b072,[{'key':_0x38cf40('0x358'),'value':function(){var _0x2dbd0b=_0x38cf40,_0x477da1=this,_0x5ea37c=(0x0,_0x5e9500[_0x2dbd0b('0x8fd')])({'default':{'wrap':{'paddingTop':_0x2dbd0b('0x25e'),'display':_0x2dbd0b('0x5b8')},'fields':{'flex':'1','display':_0x2dbd0b('0x5b8'),'marginLeft':_0x2dbd0b('0x275')},'field':{'paddingLeft':_0x2dbd0b('0x2f'),'width':_0x2dbd0b('0xaa6')},'alpha':{'paddingLeft':_0x2dbd0b('0x2f'),'width':_0x2dbd0b('0xaa6')},'toggle':{'width':_0x2dbd0b('0x669'),'textAlign':_0x2dbd0b('0xbbc'),'position':_0x2dbd0b('0x597')},'icon':{'marginRight':_0x2dbd0b('0x829'),'marginTop':_0x2dbd0b('0x507'),'cursor':_0x2dbd0b('0xa4b'),'position':_0x2dbd0b('0x597')},'iconHighlight':{'position':'absolute','width':'24px','height':_0x2dbd0b('0x6a5'),'background':'#eee','borderRadius':_0x2dbd0b('0xd2f'),'top':'10px','left':_0x2dbd0b('0x507'),'display':'none'},'input':{'fontSize':_0x2dbd0b('0x963'),'color':_0x2dbd0b('0x643'),'width':'100%','borderRadius':_0x2dbd0b('0x6df'),'border':_0x2dbd0b('0x649'),'boxShadow':_0x2dbd0b('0x577'),'height':'21px','textAlign':_0x2dbd0b('0x238')},'label':{'textTransform':_0x2dbd0b('0xc60'),'fontSize':_0x2dbd0b('0x963'),'lineHeight':_0x2dbd0b('0x963'),'color':_0x2dbd0b('0x3f7'),'textAlign':_0x2dbd0b('0x238'),'display':_0x2dbd0b('0x3fa'),'marginTop':_0x2dbd0b('0x507')},'svg':{'fill':_0x2dbd0b('0x643'),'width':_0x2dbd0b('0xdb0'),'height':'24px','border':'1px\x20transparent\x20solid','borderRadius':_0x2dbd0b('0xeb')}},'disableAlpha':{'alpha':{'display':_0x2dbd0b('0x649')}}},this[_0x2dbd0b('0x22d')],this['state']),_0x19bc08=void 0x0;return _0x2dbd0b('0x7c6')===this[_0x2dbd0b('0x7b0')][_0x2dbd0b('0xfd')]?_0x19bc08=_0x2bf0fa['default'][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c['fields'],'className':_0x2dbd0b('0xd36')},_0x2bf0fa[_0x2dbd0b('0x8fd')]['createElement'](_0x2dbd0b('0xabf'),{'style':_0x5ea37c['field']},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5[_0x2dbd0b('0x6d9')],{'style':{'input':_0x5ea37c[_0x2dbd0b('0x555')],'label':_0x5ea37c[_0x2dbd0b('0x530')]},'label':'hex','value':this['props'][_0x2dbd0b('0x7c6')],'onChange':this[_0x2dbd0b('0xacc')]}))):'rgb'===this[_0x2dbd0b('0x7b0')]['view']?_0x19bc08=_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x361')],'className':_0x2dbd0b('0xd36')},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c['field']},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5[_0x2dbd0b('0x6d9')],{'style':{'input':_0x5ea37c['input'],'label':_0x5ea37c[_0x2dbd0b('0x530')]},'label':'r','value':this['props'][_0x2dbd0b('0x4dd')]['r'],'onChange':this[_0x2dbd0b('0xacc')]})),_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x85b')]},_0x2bf0fa['default'][_0x2dbd0b('0x6b7')](_0x37cad5['EditableInput'],{'style':{'input':_0x5ea37c[_0x2dbd0b('0x555')],'label':_0x5ea37c['label']},'label':'g','value':this[_0x2dbd0b('0x22d')]['rgb']['g'],'onChange':this[_0x2dbd0b('0xacc')]})),_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x85b')]},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5['EditableInput'],{'style':{'input':_0x5ea37c[_0x2dbd0b('0x555')],'label':_0x5ea37c[_0x2dbd0b('0x530')]},'label':'b','value':this['props'][_0x2dbd0b('0x4dd')]['b'],'onChange':this[_0x2dbd0b('0xacc')]})),_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x695')]},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5[_0x2dbd0b('0x6d9')],{'style':{'input':_0x5ea37c[_0x2dbd0b('0x555')],'label':_0x5ea37c[_0x2dbd0b('0x530')]},'label':'a','value':this[_0x2dbd0b('0x22d')][_0x2dbd0b('0x4dd')]['a'],'arrowOffset':0.01,'onChange':this['handleChange']}))):_0x2dbd0b('0x570')===this[_0x2dbd0b('0x7b0')][_0x2dbd0b('0xfd')]&&(_0x19bc08=_0x2bf0fa['default'][_0x2dbd0b('0x6b7')]('div',{'style':_0x5ea37c['fields'],'className':'flexbox-fix'},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x85b')]},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5[_0x2dbd0b('0x6d9')],{'style':{'input':_0x5ea37c[_0x2dbd0b('0x555')],'label':_0x5ea37c['label']},'label':'h','value':Math[_0x2dbd0b('0x763')](this[_0x2dbd0b('0x22d')][_0x2dbd0b('0x570')]['h']),'onChange':this[_0x2dbd0b('0xacc')]})),_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x85b')]},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5[_0x2dbd0b('0x6d9')],{'style':{'input':_0x5ea37c[_0x2dbd0b('0x555')],'label':_0x5ea37c[_0x2dbd0b('0x530')]},'label':'s','value':Math['round'](0x64*this[_0x2dbd0b('0x22d')][_0x2dbd0b('0x570')]['s'])+'%','onChange':this[_0x2dbd0b('0xacc')]})),_0x2bf0fa[_0x2dbd0b('0x8fd')]['createElement'](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x85b')]},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5['EditableInput'],{'style':{'input':_0x5ea37c[_0x2dbd0b('0x555')],'label':_0x5ea37c[_0x2dbd0b('0x530')]},'label':'l','value':Math['round'](0x64*this[_0x2dbd0b('0x22d')][_0x2dbd0b('0x570')]['l'])+'%','onChange':this[_0x2dbd0b('0xacc')]})),_0x2bf0fa['default'][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x695')]},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x37cad5[_0x2dbd0b('0x6d9')],{'style':{'input':_0x5ea37c['input'],'label':_0x5ea37c[_0x2dbd0b('0x530')]},'label':'a','value':this[_0x2dbd0b('0x22d')][_0x2dbd0b('0x570')]['a'],'arrowOffset':0.01,'onChange':this[_0x2dbd0b('0xacc')]})))),_0x2bf0fa['default'][_0x2dbd0b('0x6b7')]('div',{'style':_0x5ea37c[_0x2dbd0b('0x7c5')],'className':_0x2dbd0b('0xd36')},_0x19bc08,_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0x2a6')]},_0x2bf0fa['default']['createElement'](_0x2dbd0b('0xabf'),{'style':_0x5ea37c[_0x2dbd0b('0xbc2')],'onClick':this['toggleViews'],'ref':function(_0x481b34){var _0x26e09a=_0x2dbd0b;return _0x477da1[_0x26e09a('0xbc2')]=_0x481b34;}},_0x2bf0fa[_0x2dbd0b('0x8fd')][_0x2dbd0b('0x6b7')](_0x40e349[_0x2dbd0b('0x8fd')],{'style':_0x5ea37c[_0x2dbd0b('0x1a0')],'onMouseOver':this[_0x2dbd0b('0xca')],'onMouseEnter':this['showHighlight'],'onMouseOut':this[_0x2dbd0b('0x681')]}))));}}],[{'key':_0x38cf40('0xd1'),'value':function(_0x13e895,_0x520279){var _0x357b21=_0x38cf40;return 0x1!==_0x13e895[_0x357b21('0x570')]['a']&&_0x357b21('0x7c6')===_0x520279[_0x357b21('0xfd')]?{'view':_0x357b21('0x4dd')}:null;}}]),_0xc2b072;}(_0x2bf0fa[_0x17a26a('0x8fd')]['Component']);_0x467ded[_0x17a26a('0x982')]={'view':_0x17a26a('0x7c6')},_0xc83a20[_0x17a26a('0x8fd')]=_0x467ded;},{'../../helpers/color':0x169,'../common':0x149,'@icons/material/UnfoldMoreHorizontalIcon':0x61,'lodash/isUndefined':0x122,'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x13d:[function(_0x53576a,_0x147d78,_0xef02a9){var _0x4a1998=_0x38d28e;'use strict';Object[_0x4a1998('0x751')](_0xef02a9,'__esModule',{'value':!0x0}),_0xef02a9[_0x4a1998('0x276')]=void 0x0;var _0x32931e=_0x2efeee(_0x53576a(_0x4a1998('0x2cd'))),_0x57b78b=_0x2efeee(_0x53576a(_0x4a1998('0xde4')));function _0x2efeee(_0x55cca9){var _0x767606=_0x4a1998;return _0x55cca9&&_0x55cca9[_0x767606('0x8bc')]?_0x55cca9:{'default':_0x55cca9};}var _0x4fb988=_0xef02a9['ChromePointer']=function(){var _0x37f14b=_0x4a1998,_0x33a6ef=(0x0,_0x57b78b[_0x37f14b('0x8fd')])({'default':{'picker':{'width':_0x37f14b('0x507'),'height':_0x37f14b('0x507'),'borderRadius':_0x37f14b('0x2f'),'transform':_0x37f14b('0x3a6'),'backgroundColor':_0x37f14b('0x4a4'),'boxShadow':_0x37f14b('0x6ac')}}});return _0x32931e[_0x37f14b('0x8fd')][_0x37f14b('0x6b7')](_0x37f14b('0xabf'),{'style':_0x33a6ef[_0x37f14b('0x6ed')]});};_0xef02a9['default']=_0x4fb988;},{'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x13e:[function(_0x46ac27,_0x17d1dc,_0x40f5ff){var _0x136741=_0x38d28e;'use strict';Object['defineProperty'](_0x40f5ff,'__esModule',{'value':!0x0}),_0x40f5ff[_0x136741('0xc47')]=void 0x0;var _0x555ba6=_0x468275(_0x46ac27(_0x136741('0x2cd'))),_0x38a0ee=_0x468275(_0x46ac27(_0x136741('0xde4')));function _0x468275(_0x133311){return _0x133311&&_0x133311['__esModule']?_0x133311:{'default':_0x133311};}var _0x5d1984=_0x40f5ff[_0x136741('0xc47')]=function(){var _0x307c3b=_0x136741,_0x30675b=(0x0,_0x38a0ee['default'])({'default':{'picker':{'width':_0x307c3b('0x507'),'height':_0x307c3b('0x507'),'borderRadius':_0x307c3b('0x2f'),'boxShadow':_0x307c3b('0x75a'),'transform':'translate(-6px,\x20-6px)'}}});return _0x555ba6[_0x307c3b('0x8fd')][_0x307c3b('0x6b7')](_0x307c3b('0xabf'),{'style':_0x30675b[_0x307c3b('0x6ed')]});};_0x40f5ff[_0x136741('0x8fd')]=_0x5d1984;},{'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x13f:[function(_0x5b5a27,_0x52e054,_0x12d9ef){var _0x470863=_0x38d28e;'use strict';Object['defineProperty'](_0x12d9ef,_0x470863('0x8bc'),{'value':!0x0}),_0x12d9ef[_0x470863('0xb3a')]=void 0x0;var _0x1d54b0=_0x34c0c5(_0x5b5a27('react')),_0x44c1a5=_0x34c0c5(_0x5b5a27('prop-types')),_0x4db203=_0x34c0c5(_0x5b5a27('reactcss')),_0x24e2ed=_0x34c0c5(_0x5b5a27(_0x470863('0x7f0'))),_0x758cfd=_0x34c0c5(_0x5b5a27(_0x470863('0xd6b'))),_0x4bc277=function(_0x5a7a99){var _0x1943c5=_0x470863;if(_0x5a7a99&&_0x5a7a99[_0x1943c5('0x8bc')])return _0x5a7a99;var _0x35c672={};if(null!=_0x5a7a99)for(var _0x501c9b in _0x5a7a99)Object['prototype'][_0x1943c5('0x1a8')]['call'](_0x5a7a99,_0x501c9b)&&(_0x35c672[_0x501c9b]=_0x5a7a99[_0x501c9b]);return _0x35c672[_0x1943c5('0x8fd')]=_0x5a7a99,_0x35c672;}(_0x5b5a27('material-colors')),_0x4eaacb=_0x5b5a27(_0x470863('0x85c')),_0x2e7729=_0x34c0c5(_0x5b5a27(_0x470863('0x8f4')));function _0x34c0c5(_0x48bbf5){var _0x56986d=_0x470863;return _0x48bbf5&&_0x48bbf5[_0x56986d('0x8bc')]?_0x48bbf5:{'default':_0x48bbf5};}var _0x53c845=_0x12d9ef[_0x470863('0xb3a')]=function(_0x1ada7b){var _0x26609b=_0x470863,_0x4071f9=_0x1ada7b['width'],_0x418f25=_0x1ada7b[_0x26609b('0xbb3')],_0x19dff1=_0x1ada7b[_0x26609b('0xa5f')],_0x3485a9=_0x1ada7b[_0x26609b('0x23c')],_0x1eda06=_0x1ada7b[_0x26609b('0x7c6')],_0x554622=_0x1ada7b[_0x26609b('0x9de')],_0x3d826b=_0x1ada7b['styles'],_0x50112b=void 0x0===_0x3d826b?{}:_0x3d826b,_0x4114a5=_0x1ada7b[_0x26609b('0x99a')],_0x89760=_0x1ada7b['className'],_0x206825=void 0x0===_0x89760?'':_0x89760,_0x4148bf=(0x0,_0x4db203[_0x26609b('0x8fd')])((0x0,_0x758cfd[_0x26609b('0x8fd')])({'default':{'card':{'width':_0x4071f9,'display':_0x26609b('0x5b8'),'flexWrap':_0x26609b('0x7c5'),'marginRight':-_0x4114a5,'marginBottom':-_0x4114a5}}},_0x50112b)),_0x40a11d=function(_0x41f8a9,_0x592d3f){return _0x418f25({'hex':_0x41f8a9,'source':'hex'},_0x592d3f);};return _0x1d54b0['default']['createElement'](_0x26609b('0xabf'),{'style':_0x4148bf['card'],'className':_0x26609b('0x894')+_0x206825},(0x0,_0x24e2ed[_0x26609b('0x8fd')])(_0x3485a9,function(_0x2ed06b){var _0x53b333=_0x26609b;return _0x1d54b0[_0x53b333('0x8fd')][_0x53b333('0x6b7')](_0x2e7729[_0x53b333('0x8fd')],{'key':_0x2ed06b,'color':_0x2ed06b,'onClick':_0x40a11d,'onSwatchHover':_0x19dff1,'active':_0x1eda06===_0x2ed06b[_0x53b333('0x2f5')](),'circleSize':_0x554622,'circleSpacing':_0x4114a5});}));};_0x53c845['propTypes']={'width':_0x44c1a5[_0x470863('0x8fd')][_0x470863('0x978')]([_0x44c1a5['default'][_0x470863('0x3fd')],_0x44c1a5[_0x470863('0x8fd')][_0x470863('0x218')]]),'circleSize':_0x44c1a5['default'][_0x470863('0x218')],'circleSpacing':_0x44c1a5[_0x470863('0x8fd')][_0x470863('0x218')],'styles':_0x44c1a5[_0x470863('0x8fd')][_0x470863('0xbfd')]},_0x53c845[_0x470863('0x982')]={'width':0xfc,'circleSize':0x1c,'circleSpacing':0xe,'colors':[_0x4bc277[_0x470863('0x94b')][0x1f4],_0x4bc277[_0x470863('0x5e9')][0x1f4],_0x4bc277[_0x470863('0x4ac')][0x1f4],_0x4bc277[_0x470863('0x71e')][0x1f4],_0x4bc277[_0x470863('0xb7d')][0x1f4],_0x4bc277['blue'][0x1f4],_0x4bc277[_0x470863('0x821')][0x1f4],_0x4bc277[_0x470863('0x957')][0x1f4],_0x4bc277[_0x470863('0x9f2')][0x1f4],_0x4bc277['green'][0x1f4],_0x4bc277[_0x470863('0x4fb')][0x1f4],_0x4bc277[_0x470863('0xa62')][0x1f4],_0x4bc277[_0x470863('0x18a')][0x1f4],_0x4bc277[_0x470863('0x59f')][0x1f4],_0x4bc277[_0x470863('0x17e')][0x1f4],_0x4bc277[_0x470863('0xc06')][0x1f4],_0x4bc277['brown'][0x1f4],_0x4bc277[_0x470863('0x5ec')][0x1f4]],'styles':{}},_0x12d9ef['default']=(0x0,_0x4eaacb['ColorWrap'])(_0x53c845);},{'../common':0x149,'./CircleSwatch':0x140,'lodash/map':0x125,'lodash/merge':0x127,'material-colors':0x130,'prop-types':0x135,'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x140:[function(_0x1c6305,_0x188174,_0x240adc){var _0x3cc676=_0x38d28e;'use strict';Object[_0x3cc676('0x751')](_0x240adc,_0x3cc676('0x8bc'),{'value':!0x0}),_0x240adc[_0x3cc676('0xfe')]=void 0x0;var _0x4e1401=_0x4834cf(_0x1c6305(_0x3cc676('0x2cd'))),_0x2f443b=_0x1c6305(_0x3cc676('0xde4')),_0x57a21d=_0x4834cf(_0x2f443b),_0x239827=_0x1c6305(_0x3cc676('0x85c'));function _0x4834cf(_0x128c28){var _0x25eaed=_0x3cc676;return _0x128c28&&_0x128c28[_0x25eaed('0x8bc')]?_0x128c28:{'default':_0x128c28};}var _0x49b6ed=_0x240adc[_0x3cc676('0xfe')]=function(_0x31b9c0){var _0x4493f4=_0x3cc676,_0x2bc1fe=_0x31b9c0[_0x4493f4('0xd24')],_0x31adf2=_0x31b9c0['onClick'],_0xd38a47=_0x31b9c0[_0x4493f4('0xa5f')],_0x55a9cc=_0x31b9c0['hover'],_0x432d11=_0x31b9c0[_0x4493f4('0x23f')],_0x39eb24=_0x31b9c0['circleSize'],_0x353dee=_0x31b9c0[_0x4493f4('0x99a')],_0x8ab612=(0x0,_0x57a21d[_0x4493f4('0x8fd')])({'default':{'swatch':{'width':_0x39eb24,'height':_0x39eb24,'marginRight':_0x353dee,'marginBottom':_0x353dee,'transform':'scale(1)','transition':_0x4493f4('0xc55')},'Swatch':{'borderRadius':_0x4493f4('0x93c'),'background':_0x4493f4('0x6'),'boxShadow':_0x4493f4('0x553')+(_0x39eb24/0x2+0x1)+_0x4493f4('0x8c8')+_0x2bc1fe,'transition':_0x4493f4('0x79')}},'hover':{'swatch':{'transform':_0x4493f4('0x7f6')}},'active':{'Swatch':{'boxShadow':_0x4493f4('0x652')+_0x2bc1fe}}},{'hover':_0x55a9cc,'active':_0x432d11});return _0x4e1401['default'][_0x4493f4('0x6b7')](_0x4493f4('0xabf'),{'style':_0x8ab612[_0x4493f4('0x4b6')]},_0x4e1401[_0x4493f4('0x8fd')][_0x4493f4('0x6b7')](_0x239827['Swatch'],{'style':_0x8ab612['Swatch'],'color':_0x2bc1fe,'onClick':_0x31adf2,'onHover':_0xd38a47,'focusStyle':{'boxShadow':_0x8ab612[_0x4493f4('0x437')][_0x4493f4('0xad2')]+_0x4493f4('0xad4')+_0x2bc1fe}}));};_0x49b6ed[_0x3cc676('0x982')]={'circleSize':0x1c,'circleSpacing':0xe},_0x240adc[_0x3cc676('0x8fd')]=(0x0,_0x2f443b[_0x3cc676('0x17')])(_0x49b6ed);},{'../common':0x149,'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x141:[function(_0x3f2ba6,_0x229e90,_0x23dff8){var _0x580e7d=_0x38d28e;'use strict';Object[_0x580e7d('0x751')](_0x23dff8,'__esModule',{'value':!0x0}),_0x23dff8[_0x580e7d('0x5e1')]=void 0x0;var _0x1cf068=Object['assign']||function(_0x3559fa){var _0x449b37=_0x580e7d;for(var _0x2820dd=0x1;_0x2820dd-0x1)){var _0x40011e=_0xa27fe1[_0x36ce03('0x424')](),_0x59e677=0x26===_0x54a60a[_0x36ce03('0xe6')]?_0x47727d+_0x40011e:_0x47727d-_0x40011e;_0xa27fe1['setUpdatedValue'](_0x59e677,_0x54a60a);}},_0xa27fe1[_0xdca4a7('0x6cb')]=function(_0x3dcbe6){var _0x5c7c3c=_0xdca4a7;if(_0xa27fe1['props'][_0x5c7c3c('0x456')]){var _0x40c93c=Math[_0x5c7c3c('0x763')](_0xa27fe1[_0x5c7c3c('0x22d')][_0x5c7c3c('0x920')]+_0x3dcbe6['movementX']);_0x40c93c>=0x0&&_0x40c93c<=_0xa27fe1['props']['dragMax']&&_0xa27fe1['props'][_0x5c7c3c('0xbb3')]&&_0xa27fe1[_0x5c7c3c('0x22d')][_0x5c7c3c('0xbb3')](_0xa27fe1[_0x5c7c3c('0xdd5')](_0x40c93c),_0x3dcbe6);}},_0xa27fe1[_0xdca4a7('0x20d')]=function(_0x9a1631){var _0x59fe30=_0xdca4a7;_0xa27fe1['props']['dragLabel']&&(_0x9a1631[_0x59fe30('0x656')](),_0xa27fe1[_0x59fe30('0x6cb')](_0x9a1631),window[_0x59fe30('0xa89')]('mousemove',_0xa27fe1[_0x59fe30('0x6cb')]),window[_0x59fe30('0xa89')](_0x59fe30('0x397'),_0xa27fe1['handleMouseUp']));},_0xa27fe1[_0xdca4a7('0x1c9')]=function(){var _0x18bd43=_0xdca4a7;_0xa27fe1[_0x18bd43('0xda')]();},_0xa27fe1[_0xdca4a7('0xda')]=function(){var _0x436180=_0xdca4a7;window[_0x436180('0xd8d')](_0x436180('0xae6'),_0xa27fe1[_0x436180('0x6cb')]),window['removeEventListener'](_0x436180('0x397'),_0xa27fe1['handleMouseUp']);},_0xa27fe1[_0xdca4a7('0x7b0')]={'value':String(_0x3929c2[_0xdca4a7('0x920')])[_0xdca4a7('0xca2')](),'blurValue':String(_0x3929c2[_0xdca4a7('0x920')])[_0xdca4a7('0xca2')]()},_0xa27fe1[_0xdca4a7('0x679')]=_0xdca4a7('0x8d4')+_0x3dc594++,_0xa27fe1;}return function(_0x33bb74,_0x3670a1){var _0x311981=_0x1c0e;if(_0x311981('0xa25')!=typeof _0x3670a1&&null!==_0x3670a1)throw new TypeError(_0x311981('0x88f')+typeof _0x3670a1);_0x33bb74['prototype']=Object[_0x311981('0x3e2')](_0x3670a1&&_0x3670a1[_0x311981('0x539')],{'constructor':{'value':_0x33bb74,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x3670a1&&(Object[_0x311981('0x489')]?Object[_0x311981('0x489')](_0x33bb74,_0x3670a1):_0x33bb74[_0x311981('0xcb9')]=_0x3670a1);}(_0x2791eb,_0x3f329a),_0x246c08(_0x2791eb,[{'key':_0x5a22c9('0x6aa'),'value':function(_0x464479,_0x1d6431){var _0x2377a4=_0x5a22c9;this['props'][_0x2377a4('0x920')]===this[_0x2377a4('0x7b0')][_0x2377a4('0x920')]||_0x464479['value']===this['props']['value']&&_0x1d6431[_0x2377a4('0x920')]===this['state'][_0x2377a4('0x920')]||(this[_0x2377a4('0x555')]===document[_0x2377a4('0x89')]?this['setState']({'blurValue':String(this[_0x2377a4('0x22d')]['value'])['toUpperCase']()}):this[_0x2377a4('0x4e1')]({'value':String(this['props']['value'])['toUpperCase'](),'blurValue':!this[_0x2377a4('0x7b0')]['blurValue']&&String(this[_0x2377a4('0x22d')]['value'])[_0x2377a4('0xca2')]()}));}},{'key':_0x5a22c9('0xa2a'),'value':function(){var _0x220b80=_0x5a22c9;this[_0x220b80('0xda')]();}},{'key':'getValueObjectWithLabel','value':function(_0x25f089){var _0x2ab898=_0x5a22c9;return function(_0x23b249,_0x1e2972,_0x1e0a09){var _0x3d9481=_0x1c0e;return _0x1e2972 in _0x23b249?Object[_0x3d9481('0x751')](_0x23b249,_0x1e2972,{'value':_0x1e0a09,'enumerable':!0x0,'configurable':!0x0,'writable':!0x0}):_0x23b249[_0x1e2972]=_0x1e0a09,_0x23b249;}({},this[_0x2ab898('0x22d')][_0x2ab898('0x530')],_0x25f089);}},{'key':_0x5a22c9('0x424'),'value':function(){return this['props']['arrowOffset']||0x1;}},{'key':_0x5a22c9('0x315'),'value':function(_0x533180,_0x225c65){var _0xb554d9=_0x5a22c9,_0x32a51d=this[_0xb554d9('0x22d')][_0xb554d9('0x530')]?this['getValueObjectWithLabel'](_0x533180):_0x533180;this['props'][_0xb554d9('0xbb3')]&&this[_0xb554d9('0x22d')]['onChange'](_0x32a51d,_0x225c65),this[_0xb554d9('0x4e1')]({'value':_0x533180});}},{'key':_0x5a22c9('0x358'),'value':function(){var _0x162336=_0x5a22c9,_0x8989a2=this,_0x224ccc=(0x0,_0x28fd1b[_0x162336('0x8fd')])({'default':{'wrap':{'position':'relative'}},'user-override':{'wrap':this[_0x162336('0x22d')][_0x162336('0xc76')]&&this[_0x162336('0x22d')][_0x162336('0xc76')]['wrap']?this[_0x162336('0x22d')][_0x162336('0xc76')][_0x162336('0x7c5')]:{},'input':this[_0x162336('0x22d')][_0x162336('0xc76')]&&this[_0x162336('0x22d')][_0x162336('0xc76')]['input']?this[_0x162336('0x22d')]['style']['input']:{},'label':this[_0x162336('0x22d')][_0x162336('0xc76')]&&this[_0x162336('0x22d')]['style']['label']?this[_0x162336('0x22d')][_0x162336('0xc76')]['label']:{}},'dragLabel-true':{'label':{'cursor':_0x162336('0x298')}}},{'user-override':!0x0},this[_0x162336('0x22d')]);return _0x2a8402['default']['createElement'](_0x162336('0xabf'),{'style':_0x224ccc[_0x162336('0x7c5')]},_0x2a8402[_0x162336('0x8fd')][_0x162336('0x6b7')](_0x162336('0x555'),{'id':this['inputId'],'style':_0x224ccc[_0x162336('0x555')],'ref':function(_0x443ea8){return _0x8989a2['input']=_0x443ea8;},'value':this[_0x162336('0x7b0')]['value'],'onKeyDown':this['handleKeyDown'],'onChange':this[_0x162336('0xacc')],'onBlur':this['handleBlur'],'placeholder':this[_0x162336('0x22d')][_0x162336('0x6d0')],'spellCheck':_0x162336('0x2b3')}),this[_0x162336('0x22d')][_0x162336('0x530')]&&!this[_0x162336('0x22d')][_0x162336('0xda3')]?_0x2a8402[_0x162336('0x8fd')]['createElement'](_0x162336('0x530'),{'htmlFor':this[_0x162336('0x679')],'style':_0x224ccc[_0x162336('0x530')],'onMouseDown':this[_0x162336('0x20d')]},this[_0x162336('0x22d')]['label']):null);}}]),_0x2791eb;}(_0x17a883[_0x1c9557('0xbfb')]||_0x17a883['Component']);_0x17d8eb[_0x1c9557('0x8fd')]=_0x8b2d4c;},{'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x145:[function(_0x4a6b4c,_0x2610aa,_0x420384){var _0xd63aa0=_0x38d28e;'use strict';Object[_0xd63aa0('0x751')](_0x420384,'__esModule',{'value':!0x0}),_0x420384[_0xd63aa0('0xc7c')]=void 0x0;var _0x2b0518=function(){function _0x365c9d(_0x2421dc,_0x566293){var _0x3a81e3=_0x1c0e;for(var _0x37405d=0x0;_0x37405d<_0x566293['length'];_0x37405d++){var _0x5b7761=_0x566293[_0x37405d];_0x5b7761[_0x3a81e3('0xdc2')]=_0x5b7761[_0x3a81e3('0xdc2')]||!0x1,_0x5b7761[_0x3a81e3('0x48d')]=!0x0,_0x3a81e3('0x920')in _0x5b7761&&(_0x5b7761[_0x3a81e3('0x903')]=!0x0),Object[_0x3a81e3('0x751')](_0x2421dc,_0x5b7761[_0x3a81e3('0x3ba')],_0x5b7761);}}return function(_0x360210,_0x180f7f,_0x352a47){return _0x180f7f&&_0x365c9d(_0x360210['prototype'],_0x180f7f),_0x352a47&&_0x365c9d(_0x360210,_0x352a47),_0x360210;};}(),_0x200d2e=_0x4a6b4c(_0xd63aa0('0x2cd')),_0x15869b=_0x3a9bc7(_0x200d2e),_0x3ac60a=_0x3a9bc7(_0x4a6b4c(_0xd63aa0('0xde4'))),_0x10fcab=function(_0x47ce66){var _0x51960a=_0xd63aa0;if(_0x47ce66&&_0x47ce66['__esModule'])return _0x47ce66;var _0x257bf7={};if(null!=_0x47ce66)for(var _0x3b57e6 in _0x47ce66)Object[_0x51960a('0x539')][_0x51960a('0x1a8')][_0x51960a('0x964')](_0x47ce66,_0x3b57e6)&&(_0x257bf7[_0x3b57e6]=_0x47ce66[_0x3b57e6]);return _0x257bf7[_0x51960a('0x8fd')]=_0x47ce66,_0x257bf7;}(_0x4a6b4c('../../helpers/hue'));function _0x3a9bc7(_0x27dfda){return _0x27dfda&&_0x27dfda['__esModule']?_0x27dfda:{'default':_0x27dfda};}function _0x319023(_0x30761c,_0x37e8ac){if(!(_0x30761c instanceof _0x37e8ac))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}function _0x320c2(_0x2c67c6,_0x979280){var _0x263a68=_0xd63aa0;if(!_0x2c67c6)throw new ReferenceError(_0x263a68('0xcf6'));return!_0x979280||'object'!=typeof _0x979280&&_0x263a68('0xa25')!=typeof _0x979280?_0x2c67c6:_0x979280;}var _0x23455f=_0x420384[_0xd63aa0('0xc7c')]=function(_0x3975f5){var _0x881fc0=_0xd63aa0;function _0x2868d8(){var _0x4606f4=_0x1c0e,_0x1f74f8,_0x5826a4,_0x5d8e52;_0x319023(this,_0x2868d8);for(var _0x317470=arguments[_0x4606f4('0x796')],_0x345d51=Array(_0x317470),_0x4bd22e=0x0;_0x4bd22e<_0x317470;_0x4bd22e++)_0x345d51[_0x4bd22e]=arguments[_0x4bd22e];return _0x5826a4=_0x5d8e52=_0x320c2(this,(_0x1f74f8=_0x2868d8[_0x4606f4('0xcb9')]||Object[_0x4606f4('0x85e')](_0x2868d8))[_0x4606f4('0x964')]['apply'](_0x1f74f8,[this][_0x4606f4('0x4c2')](_0x345d51))),_0x5d8e52['handleChange']=function(_0x839148){var _0x3899f8=_0x4606f4,_0x805d5a=_0x10fcab[_0x3899f8('0x249')](_0x839148,_0x5d8e52['props'][_0x3899f8('0x839')],_0x5d8e52[_0x3899f8('0x22d')][_0x3899f8('0x570')],_0x5d8e52[_0x3899f8('0x9e5')]);_0x805d5a&&_0x3899f8('0xa25')==typeof _0x5d8e52[_0x3899f8('0x22d')][_0x3899f8('0xbb3')]&&_0x5d8e52[_0x3899f8('0x22d')][_0x3899f8('0xbb3')](_0x805d5a,_0x839148);},_0x5d8e52[_0x4606f4('0x20d')]=function(_0x1f52a5){var _0x412dd3=_0x4606f4;_0x5d8e52[_0x412dd3('0xacc')](_0x1f52a5),window[_0x412dd3('0xa89')]('mousemove',_0x5d8e52[_0x412dd3('0xacc')]),window['addEventListener'](_0x412dd3('0x397'),_0x5d8e52[_0x412dd3('0x1c9')]);},_0x5d8e52[_0x4606f4('0x1c9')]=function(){var _0x50fdfc=_0x4606f4;_0x5d8e52[_0x50fdfc('0xda')]();},_0x320c2(_0x5d8e52,_0x5826a4);}return function(_0x14dd9f,_0x295fd0){var _0x1aa7ec=_0x1c0e;if('function'!=typeof _0x295fd0&&null!==_0x295fd0)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function,\x20not\x20'+typeof _0x295fd0);_0x14dd9f[_0x1aa7ec('0x539')]=Object[_0x1aa7ec('0x3e2')](_0x295fd0&&_0x295fd0[_0x1aa7ec('0x539')],{'constructor':{'value':_0x14dd9f,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x295fd0&&(Object[_0x1aa7ec('0x489')]?Object['setPrototypeOf'](_0x14dd9f,_0x295fd0):_0x14dd9f[_0x1aa7ec('0xcb9')]=_0x295fd0);}(_0x2868d8,_0x3975f5),_0x2b0518(_0x2868d8,[{'key':'componentWillUnmount','value':function(){var _0x490b85=_0x1c0e;this[_0x490b85('0xda')]();}},{'key':_0x881fc0('0xda'),'value':function(){var _0x3fb67b=_0x881fc0;window[_0x3fb67b('0xd8d')](_0x3fb67b('0xae6'),this[_0x3fb67b('0xacc')]),window['removeEventListener'](_0x3fb67b('0x397'),this['handleMouseUp']);}},{'key':_0x881fc0('0x358'),'value':function(){var _0x1e333b=_0x881fc0,_0x3ccea5=this,_0x5f5643=this['props']['direction'],_0x184074=void 0x0===_0x5f5643?_0x1e333b('0xc9e'):_0x5f5643,_0x137b09=(0x0,_0x3ac60a['default'])({'default':{'hue':{'absolute':_0x1e333b('0x1ae'),'borderRadius':this[_0x1e333b('0x22d')][_0x1e333b('0x62d')],'boxShadow':this[_0x1e333b('0x22d')][_0x1e333b('0x10c')]},'container':{'padding':_0x1e333b('0x91'),'position':_0x1e333b('0x597'),'height':_0x1e333b('0xaa6'),'borderRadius':this[_0x1e333b('0x22d')][_0x1e333b('0x62d')]},'pointer':{'position':_0x1e333b('0x9cf'),'left':0x64*this[_0x1e333b('0x22d')][_0x1e333b('0x570')]['h']/0x168+'%'},'slider':{'marginTop':_0x1e333b('0x94d'),'width':_0x1e333b('0xd2f'),'borderRadius':_0x1e333b('0x94d'),'height':_0x1e333b('0x225'),'boxShadow':_0x1e333b('0xcfb'),'background':_0x1e333b('0x789'),'transform':_0x1e333b('0x46')}},'vertical':{'pointer':{'left':'0px','top':-0x64*this[_0x1e333b('0x22d')]['hsl']['h']/0x168+0x64+'%'}}},{'vertical':_0x1e333b('0xc0b')===_0x184074});return _0x15869b[_0x1e333b('0x8fd')][_0x1e333b('0x6b7')]('div',{'style':_0x137b09[_0x1e333b('0x99')]},_0x15869b['default'][_0x1e333b('0x6b7')](_0x1e333b('0xabf'),{'className':'hue-'+_0x184074,'style':_0x137b09[_0x1e333b('0x9e5')],'ref':function(_0x497967){return _0x3ccea5['container']=_0x497967;},'onMouseDown':this['handleMouseDown'],'onTouchMove':this[_0x1e333b('0xacc')],'onTouchStart':this[_0x1e333b('0xacc')]},_0x15869b[_0x1e333b('0x8fd')]['createElement'](_0x1e333b('0xc76'),null,_0x1e333b('0x254')),_0x15869b[_0x1e333b('0x8fd')][_0x1e333b('0x6b7')]('div',{'style':_0x137b09[_0x1e333b('0xa4b')]},this[_0x1e333b('0x22d')][_0x1e333b('0xa4b')]?_0x15869b[_0x1e333b('0x8fd')][_0x1e333b('0x6b7')](this[_0x1e333b('0x22d')][_0x1e333b('0xa4b')],this[_0x1e333b('0x22d')]):_0x15869b[_0x1e333b('0x8fd')]['createElement'](_0x1e333b('0xabf'),{'style':_0x137b09[_0x1e333b('0xd9b')]}))));}}]),_0x2868d8;}(_0x200d2e[_0xd63aa0('0xbfb')]||_0x200d2e[_0xd63aa0('0x2c')]);_0x420384[_0xd63aa0('0x8fd')]=_0x23455f;},{'../../helpers/hue':0x16a,'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x146:[function(_0x4e4093,_0x3ae1ab,_0x152853){var _0x79a5af=_0x38d28e;'use strict';Object[_0x79a5af('0x751')](_0x152853,'__esModule',{'value':!0x0}),_0x152853[_0x79a5af('0x3e0')]=void 0x0;var _0xf333c5=_0x300717(_0x4e4093('react')),_0x29b7e3=_0x300717(_0x4e4093(_0x79a5af('0x2dd'))),_0x435f6e=_0x300717(_0x4e4093('reactcss')),_0x1dff84=_0x300717(_0x4e4093(_0x79a5af('0xd6b')));function _0x300717(_0x4a7d62){var _0x401bf5=_0x79a5af;return _0x4a7d62&&_0x4a7d62[_0x401bf5('0x8bc')]?_0x4a7d62:{'default':_0x4a7d62};}var _0x534b0e=_0x152853[_0x79a5af('0x3e0')]=function(_0x20b3cd){var _0x30b7f7=_0x79a5af,_0x10fc5d=_0x20b3cd['zDepth'],_0x540c4f=_0x20b3cd[_0x30b7f7('0x62d')],_0xc2245f=_0x20b3cd[_0x30b7f7('0x581')],_0x3e46ac=_0x20b3cd[_0x30b7f7('0x665')],_0x2df517=_0x20b3cd[_0x30b7f7('0x6db')],_0x31ce5f=void 0x0===_0x2df517?{}:_0x2df517,_0xc50041=(0x0,_0x435f6e[_0x30b7f7('0x8fd')])((0x0,_0x1dff84[_0x30b7f7('0x8fd')])({'default':{'wrap':{'position':_0x30b7f7('0x597'),'display':_0x30b7f7('0xc7')},'content':{'position':_0x30b7f7('0x597')},'bg':{'absolute':_0x30b7f7('0x1ae'),'boxShadow':'0\x20'+_0x10fc5d+'px\x20'+0x4*_0x10fc5d+_0x30b7f7('0xae3'),'borderRadius':_0x540c4f,'background':_0xc2245f}},'zDepth-0':{'bg':{'boxShadow':_0x30b7f7('0x649')}},'zDepth-1':{'bg':{'boxShadow':'0\x202px\x2010px\x20rgba(0,0,0,.12),\x200\x202px\x205px\x20rgba(0,0,0,.16)'}},'zDepth-2':{'bg':{'boxShadow':_0x30b7f7('0x288')}},'zDepth-3':{'bg':{'boxShadow':_0x30b7f7('0x47')}},'zDepth-4':{'bg':{'boxShadow':_0x30b7f7('0x70c')}},'zDepth-5':{'bg':{'boxShadow':_0x30b7f7('0xc0e')}},'square':{'bg':{'borderRadius':'0'}},'circle':{'bg':{'borderRadius':_0x30b7f7('0x93c')}}},_0x31ce5f),{'zDepth-1':0x1===_0x10fc5d});return _0xf333c5['default'][_0x30b7f7('0x6b7')](_0x30b7f7('0xabf'),{'style':_0xc50041[_0x30b7f7('0x7c5')]},_0xf333c5['default'][_0x30b7f7('0x6b7')](_0x30b7f7('0xabf'),{'style':_0xc50041['bg']}),_0xf333c5[_0x30b7f7('0x8fd')][_0x30b7f7('0x6b7')]('div',{'style':_0xc50041['content']},_0x3e46ac));};_0x534b0e[_0x79a5af('0xb32')]={'background':_0x29b7e3[_0x79a5af('0x8fd')][_0x79a5af('0x3fd')],'zDepth':_0x29b7e3[_0x79a5af('0x8fd')][_0x79a5af('0xc73')]([0x0,0x1,0x2,0x3,0x4,0x5]),'radius':_0x29b7e3['default']['number'],'styles':_0x29b7e3[_0x79a5af('0x8fd')][_0x79a5af('0xbfd')]},_0x534b0e[_0x79a5af('0x982')]={'background':_0x79a5af('0x789'),'zDepth':0x1,'radius':0x2,'styles':{}},_0x152853[_0x79a5af('0x8fd')]=_0x534b0e;},{'lodash/merge':0x127,'prop-types':0x135,'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x147:[function(_0x48dd66,_0x246c6e,_0x1cce74){var _0x98b6f9=_0x38d28e;'use strict';Object['defineProperty'](_0x1cce74,'__esModule',{'value':!0x0}),_0x1cce74[_0x98b6f9('0x4ba')]=void 0x0;var _0x1fbb40=function(){function _0x6d09d3(_0x5bfedc,_0x36e519){var _0x5ecfc2=_0x1c0e;for(var _0x3eeda9=0x0;_0x3eeda9<_0x36e519['length'];_0x3eeda9++){var _0x5c362b=_0x36e519[_0x3eeda9];_0x5c362b['enumerable']=_0x5c362b[_0x5ecfc2('0xdc2')]||!0x1,_0x5c362b[_0x5ecfc2('0x48d')]=!0x0,_0x5ecfc2('0x920')in _0x5c362b&&(_0x5c362b[_0x5ecfc2('0x903')]=!0x0),Object[_0x5ecfc2('0x751')](_0x5bfedc,_0x5c362b[_0x5ecfc2('0x3ba')],_0x5c362b);}}return function(_0x1fb4e6,_0x223566,_0x588446){var _0x27dad7=_0x1c0e;return _0x223566&&_0x6d09d3(_0x1fb4e6[_0x27dad7('0x539')],_0x223566),_0x588446&&_0x6d09d3(_0x1fb4e6,_0x588446),_0x1fb4e6;};}(),_0x2f53f8=_0x48dd66('react'),_0x1be956=_0x3fcfcc(_0x2f53f8),_0xf53efa=_0x3fcfcc(_0x48dd66('reactcss')),_0x399e2b=_0x3fcfcc(_0x48dd66(_0x98b6f9('0x56b'))),_0x21b819=function(_0x4ddef7){var _0x487fd8=_0x98b6f9;if(_0x4ddef7&&_0x4ddef7[_0x487fd8('0x8bc')])return _0x4ddef7;var _0x3b08f9={};if(null!=_0x4ddef7)for(var _0x135c16 in _0x4ddef7)Object[_0x487fd8('0x539')]['hasOwnProperty'][_0x487fd8('0x964')](_0x4ddef7,_0x135c16)&&(_0x3b08f9[_0x135c16]=_0x4ddef7[_0x135c16]);return _0x3b08f9[_0x487fd8('0x8fd')]=_0x4ddef7,_0x3b08f9;}(_0x48dd66(_0x98b6f9('0xabe')));function _0x3fcfcc(_0x1896ba){var _0x55372a=_0x98b6f9;return _0x1896ba&&_0x1896ba[_0x55372a('0x8bc')]?_0x1896ba:{'default':_0x1896ba};}var _0x554913=_0x1cce74['Saturation']=function(_0xfde80b){var _0x49de57=_0x98b6f9;function _0x1d1bb4(_0x2946b4){var _0x22f617=_0x1c0e;!function(_0xc6c0f4,_0x2a3d1f){if(!(_0xc6c0f4 instanceof _0x2a3d1f))throw new TypeError('Cannot\x20call\x20a\x20class\x20as\x20a\x20function');}(this,_0x1d1bb4);var _0x13f4b2=function(_0x583e43,_0x55d84c){var _0x3e3f61=_0x1c0e;if(!_0x583e43)throw new ReferenceError(_0x3e3f61('0xcf6'));return!_0x55d84c||_0x3e3f61('0xbfd')!=typeof _0x55d84c&&_0x3e3f61('0xa25')!=typeof _0x55d84c?_0x583e43:_0x55d84c;}(this,(_0x1d1bb4[_0x22f617('0xcb9')]||Object['getPrototypeOf'](_0x1d1bb4))[_0x22f617('0x964')](this,_0x2946b4));return _0x13f4b2[_0x22f617('0xacc')]=function(_0x3e6fa8){var _0x26497d=_0x22f617;_0x26497d('0xa25')==typeof _0x13f4b2[_0x26497d('0x22d')][_0x26497d('0xbb3')]&&_0x13f4b2['throttle'](_0x13f4b2[_0x26497d('0x22d')][_0x26497d('0xbb3')],_0x21b819['calculateChange'](_0x3e6fa8,_0x13f4b2[_0x26497d('0x22d')][_0x26497d('0x570')],_0x13f4b2[_0x26497d('0x9e5')]),_0x3e6fa8);},_0x13f4b2[_0x22f617('0x20d')]=function(_0x3c2d4f){var _0x4b559b=_0x22f617;_0x13f4b2['handleChange'](_0x3c2d4f);var _0x4edd6f=_0x13f4b2[_0x4b559b('0xbd2')]();_0x4edd6f['addEventListener'](_0x4b559b('0xae6'),_0x13f4b2[_0x4b559b('0xacc')]),_0x4edd6f['addEventListener']('mouseup',_0x13f4b2[_0x4b559b('0x1c9')]);},_0x13f4b2[_0x22f617('0x1c9')]=function(){var _0x13ad96=_0x22f617;_0x13f4b2[_0x13ad96('0xda')]();},_0x13f4b2[_0x22f617('0x48f')]=(0x0,_0x399e2b[_0x22f617('0x8fd')])(function(_0x637e9e,_0x9178a7,_0x3620ac){_0x637e9e(_0x9178a7,_0x3620ac);},0x32),_0x13f4b2;}return function(_0x15c09a,_0x17ac6a){var _0x1fefcf=_0x1c0e;if(_0x1fefcf('0xa25')!=typeof _0x17ac6a&&null!==_0x17ac6a)throw new TypeError('Super\x20expression\x20must\x20either\x20be\x20null\x20or\x20a\x20function,\x20not\x20'+typeof _0x17ac6a);_0x15c09a[_0x1fefcf('0x539')]=Object['create'](_0x17ac6a&&_0x17ac6a['prototype'],{'constructor':{'value':_0x15c09a,'enumerable':!0x1,'writable':!0x0,'configurable':!0x0}}),_0x17ac6a&&(Object['setPrototypeOf']?Object[_0x1fefcf('0x489')](_0x15c09a,_0x17ac6a):_0x15c09a[_0x1fefcf('0xcb9')]=_0x17ac6a);}(_0x1d1bb4,_0xfde80b),_0x1fbb40(_0x1d1bb4,[{'key':_0x49de57('0xa2a'),'value':function(){var _0x42e56e=_0x49de57;this['throttle'][_0x42e56e('0x536')](),this[_0x42e56e('0xda')]();}},{'key':_0x49de57('0xbd2'),'value':function(){var _0x492df4=_0x49de57;for(var _0xb7904d=this['container'],_0x3bc671=window;!_0x3bc671[_0x492df4('0x21f')][_0x492df4('0x5fc')](_0xb7904d)&&_0x3bc671[_0x492df4('0x7be')]!==_0x3bc671;)_0x3bc671=_0x3bc671[_0x492df4('0x7be')];return _0x3bc671;}},{'key':_0x49de57('0xda'),'value':function(){var _0xe19037=_0x49de57,_0x375095=this['getContainerRenderWindow']();_0x375095[_0xe19037('0xd8d')]('mousemove',this[_0xe19037('0xacc')]),_0x375095[_0xe19037('0xd8d')](_0xe19037('0x397'),this[_0xe19037('0x1c9')]);}},{'key':_0x49de57('0x358'),'value':function(){var _0x3d6dc0=_0x49de57,_0x1a56f1=this,_0x19fac7=this[_0x3d6dc0('0x22d')][_0x3d6dc0('0xc76')]||{},_0x1e5d66=_0x19fac7[_0x3d6dc0('0xd24')],_0x2d61be=_0x19fac7[_0x3d6dc0('0xb6e')],_0x4ca616=_0x19fac7[_0x3d6dc0('0x972')],_0x110f01=_0x19fac7[_0x3d6dc0('0xa4b')],_0xc0ffff=_0x19fac7[_0x3d6dc0('0x50b')],_0x1aca8d=(0x0,_0xf53efa[_0x3d6dc0('0x8fd')])({'default':{'color':{'absolute':'0px\x200px\x200px\x200px','background':'hsl('+this[_0x3d6dc0('0x22d')]['hsl']['h']+_0x3d6dc0('0x81b'),'borderRadius':this['props']['radius']},'white':{'absolute':'0px\x200px\x200px\x200px','borderRadius':this[_0x3d6dc0('0x22d')][_0x3d6dc0('0x62d')]},'black':{'absolute':_0x3d6dc0('0x1ae'),'boxShadow':this['props'][_0x3d6dc0('0x10c')],'borderRadius':this[_0x3d6dc0('0x22d')][_0x3d6dc0('0x62d')]},'pointer':{'position':'absolute','top':-0x64*this['props']['hsv']['v']+0x64+'%','left':0x64*this[_0x3d6dc0('0x22d')]['hsv']['s']+'%','cursor':_0x3d6dc0('0x8fd')},'circle':{'width':_0x3d6dc0('0xd2f'),'height':_0x3d6dc0('0xd2f'),'boxShadow':_0x3d6dc0('0x3b0'),'borderRadius':_0x3d6dc0('0x93c'),'cursor':'hand','transform':_0x3d6dc0('0x638')}},'custom':{'color':_0x1e5d66,'white':_0x2d61be,'black':_0x4ca616,'pointer':_0x110f01,'circle':_0xc0ffff}},{'custom':!!this[_0x3d6dc0('0x22d')][_0x3d6dc0('0xc76')]});return _0x1be956[_0x3d6dc0('0x8fd')][_0x3d6dc0('0x6b7')](_0x3d6dc0('0xabf'),{'style':_0x1aca8d[_0x3d6dc0('0xd24')],'ref':function(_0x368766){var _0x1f466e=_0x3d6dc0;return _0x1a56f1[_0x1f466e('0x9e5')]=_0x368766;},'onMouseDown':this['handleMouseDown'],'onTouchMove':this[_0x3d6dc0('0xacc')],'onTouchStart':this[_0x3d6dc0('0xacc')]},_0x1be956[_0x3d6dc0('0x8fd')]['createElement'](_0x3d6dc0('0xc76'),null,_0x3d6dc0('0x495')),_0x1be956['default'][_0x3d6dc0('0x6b7')](_0x3d6dc0('0xabf'),{'style':_0x1aca8d['white'],'className':_0x3d6dc0('0x2d9')},_0x1be956[_0x3d6dc0('0x8fd')][_0x3d6dc0('0x6b7')](_0x3d6dc0('0xabf'),{'style':_0x1aca8d[_0x3d6dc0('0x972')],'className':'saturation-black'}),_0x1be956[_0x3d6dc0('0x8fd')][_0x3d6dc0('0x6b7')](_0x3d6dc0('0xabf'),{'style':_0x1aca8d[_0x3d6dc0('0xa4b')]},this['props'][_0x3d6dc0('0xa4b')]?_0x1be956[_0x3d6dc0('0x8fd')][_0x3d6dc0('0x6b7')](this[_0x3d6dc0('0x22d')][_0x3d6dc0('0xa4b')],this['props']):_0x1be956[_0x3d6dc0('0x8fd')][_0x3d6dc0('0x6b7')](_0x3d6dc0('0xabf'),{'style':_0x1aca8d[_0x3d6dc0('0x50b')]}))));}}]),_0x1d1bb4;}(_0x2f53f8[_0x98b6f9('0xbfb')]||_0x2f53f8[_0x98b6f9('0x2c')]);_0x1cce74['default']=_0x554913;},{'../../helpers/saturation':0x16c,'lodash/throttle':0x12c,'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x148:[function(_0x509ba2,_0x34cf49,_0x2697c7){var _0x302718=_0x38d28e;'use strict';Object[_0x302718('0x751')](_0x2697c7,_0x302718('0x8bc'),{'value':!0x0}),_0x2697c7['Swatch']=void 0x0;var _0x4466c2=Object[_0x302718('0xd71')]||function(_0x155d1c){var _0x5369ff=_0x302718;for(var _0x53d67c=0x1;_0x53d67c0.5});return _0x28f487[_0x5f09dd('0x8fd')][_0x5f09dd('0x6b7')]('div',{'style':_0x150637[_0x5f09dd('0x6ed')]});};_0x20d8be['default']=_0x127ef4;},{'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x15b:[function(_0x471f56,_0x418f6e,_0x47a506){var _0x4b8501=_0x38d28e;'use strict';Object['defineProperty'](_0x47a506,_0x4b8501('0x8bc'),{'value':!0x0}),_0x47a506[_0x4b8501('0xd5a')]=void 0x0;var _0x464971=_0x2eced4(_0x471f56(_0x4b8501('0x2cd'))),_0x1bad6f=_0x2eced4(_0x471f56('reactcss'));function _0x2eced4(_0x34c73d){var _0x294320=_0x4b8501;return _0x34c73d&&_0x34c73d[_0x294320('0x8bc')]?_0x34c73d:{'default':_0x34c73d};}var _0x56b130=_0x47a506[_0x4b8501('0xd5a')]=function(_0x2a594b){var _0x4d223e=_0x4b8501,_0x424065=_0x2a594b['rgb'],_0x2995ff=_0x2a594b[_0x4d223e('0x379')],_0x27472f=(0x0,_0x1bad6f[_0x4d223e('0x8fd')])({'default':{'swatches':{'border':_0x4d223e('0x724'),'borderBottom':'1px\x20solid\x20#F0F0F0','marginBottom':_0x4d223e('0x6df'),'marginTop':_0x4d223e('0x94d')},'new':{'height':_0x4d223e('0xa2d'),'background':_0x4d223e('0x86f')+_0x424065['r']+','+_0x424065['g']+',\x20'+_0x424065['b']+')','boxShadow':_0x4d223e('0x46b')},'current':{'height':_0x4d223e('0xa2d'),'background':_0x2995ff,'boxShadow':_0x4d223e('0xcdc')},'label':{'fontSize':_0x4d223e('0xb65'),'color':_0x4d223e('0x46c'),'textAlign':'center'}}});return _0x464971[_0x4d223e('0x8fd')][_0x4d223e('0x6b7')]('div',null,_0x464971[_0x4d223e('0x8fd')][_0x4d223e('0x6b7')](_0x4d223e('0xabf'),{'style':_0x27472f['label']},'new'),_0x464971['default'][_0x4d223e('0x6b7')](_0x4d223e('0xabf'),{'style':_0x27472f[_0x4d223e('0x4a6')]},_0x464971[_0x4d223e('0x8fd')][_0x4d223e('0x6b7')](_0x4d223e('0xabf'),{'style':_0x27472f[_0x4d223e('0x729')]}),_0x464971[_0x4d223e('0x8fd')]['createElement'](_0x4d223e('0xabf'),{'style':_0x27472f['current']})),_0x464971['default']['createElement'](_0x4d223e('0xabf'),{'style':_0x27472f['label']},_0x4d223e('0xaf8')));};_0x47a506[_0x4b8501('0x8fd')]=_0x56b130;},{'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x15c:[function(_0x46dcea,_0x4e4066,_0x24ae8d){var _0x1b39e3=_0x38d28e;'use strict';Object['defineProperty'](_0x24ae8d,_0x1b39e3('0x8bc'),{'value':!0x0}),_0x24ae8d[_0x1b39e3('0x901')]=void 0x0;var _0x291292=Object[_0x1b39e3('0xd71')]||function(_0x16dae7){var _0xe910e8=_0x1b39e3;for(var _0x4cab55=0x1;_0x4cab550x64&&(_0x2e75d0['a']=0x64),_0x2e75d0['a']/=0x64,_0x17dd13({'h':_0xc9d3b['h'],'s':_0xc9d3b['s'],'l':_0xc9d3b['l'],'a':_0x2e75d0['a'],'source':_0x109807('0x4dd')},_0x21fe13));};return _0x236914['default'][_0x182133('0x6b7')]('div',{'style':_0x44895f['fields'],'className':_0x182133('0xd36')},_0x236914['default'][_0x182133('0x6b7')](_0x182133('0xabf'),{'style':_0x44895f[_0x182133('0x52b')]},_0x236914[_0x182133('0x8fd')][_0x182133('0x6b7')](_0x536e64[_0x182133('0x6d9')],{'style':{'input':_0x44895f[_0x182133('0x555')],'label':_0x44895f[_0x182133('0x530')]},'label':_0x182133('0x7c6'),'value':_0x1cb5d7[_0x182133('0x8f9')]('#',''),'onChange':_0x4f6e89})),_0x236914[_0x182133('0x8fd')][_0x182133('0x6b7')](_0x182133('0xabf'),{'style':_0x44895f[_0x182133('0x50f')]},_0x236914['default'][_0x182133('0x6b7')](_0x536e64['EditableInput'],{'style':{'input':_0x44895f['input'],'label':_0x44895f[_0x182133('0x530')]},'label':'r','value':_0x2bed51['r'],'onChange':_0x4f6e89,'dragLabel':_0x182133('0x868'),'dragMax':_0x182133('0xbe5')})),_0x236914['default'][_0x182133('0x6b7')](_0x182133('0xabf'),{'style':_0x44895f['single']},_0x236914[_0x182133('0x8fd')][_0x182133('0x6b7')](_0x536e64[_0x182133('0x6d9')],{'style':{'input':_0x44895f[_0x182133('0x555')],'label':_0x44895f[_0x182133('0x530')]},'label':'g','value':_0x2bed51['g'],'onChange':_0x4f6e89,'dragLabel':_0x182133('0x868'),'dragMax':_0x182133('0xbe5')})),_0x236914[_0x182133('0x8fd')][_0x182133('0x6b7')](_0x182133('0xabf'),{'style':_0x44895f['single']},_0x236914[_0x182133('0x8fd')][_0x182133('0x6b7')](_0x536e64[_0x182133('0x6d9')],{'style':{'input':_0x44895f['input'],'label':_0x44895f[_0x182133('0x530')]},'label':'b','value':_0x2bed51['b'],'onChange':_0x4f6e89,'dragLabel':_0x182133('0x868'),'dragMax':_0x182133('0xbe5')})),_0x236914[_0x182133('0x8fd')][_0x182133('0x6b7')](_0x182133('0xabf'),{'style':_0x44895f[_0x182133('0x695')]},_0x236914[_0x182133('0x8fd')][_0x182133('0x6b7')](_0x536e64[_0x182133('0x6d9')],{'style':{'input':_0x44895f['input'],'label':_0x44895f[_0x182133('0x530')]},'label':'a','value':Math[_0x182133('0x763')](0x64*_0x2bed51['a']),'onChange':_0x4f6e89,'dragLabel':_0x182133('0x868'),'dragMax':_0x182133('0x5e7')})));};_0x350d2b[_0x2d563f('0x8fd')]=_0x520dea;},{'../../helpers/color':0x169,'../common':0x149,'react':_0x38d28e('0x2cd'),'reactcss':0x176}],0x15e:[function(_0x492527,_0x3397bb,_0x4ea8ba){var _0x3cfe83=_0x38d28e;'use strict';Object[_0x3cfe83('0x751')](_0x4ea8ba,_0x3cfe83('0x8bc'),{'value':!0x0}),_0x4ea8ba[_0x3cfe83('0xc64')]=void 0x0;var _0x424145=Object[_0x3cfe83('0xd71')]||function(_0x4eeaeb){var _0x3669bb=_0x3cfe83;for(var _0x584a74=0x1;_0x584a74_0x45401c?0x1:Math[_0x19ebd0('0x763')](0x64*_0x4149ee/_0x45401c)/0x64,_0x2a0620['a']!==_0x403783)return{'h':_0x2a0620['h'],'s':_0x2a0620['s'],'l':_0x2a0620['l'],'a':_0x403783,'source':_0x19ebd0('0x4dd')};}else{var _0x258ce0=void 0x0;if(_0x462b8d!==(_0x258ce0=_0x4f156e<0x0?0x0:_0x4f156e>_0x41c1de?0x1:Math[_0x19ebd0('0x763')](0x64*_0x4f156e/_0x41c1de)/0x64))return{'h':_0x2a0620['h'],'s':_0x2a0620['s'],'l':_0x2a0620['l'],'a':_0x258ce0,'source':_0x19ebd0('0x4dd')};}return null;};},{}],0x168:[function(_0x1b331e,_0x4caaae,_0x2caea8){var _0x39fd70=_0x38d28e;'use strict';Object[_0x39fd70('0x751')](_0x2caea8,_0x39fd70('0x8bc'),{'value':!0x0});var _0x30d134={},_0x4cd4ee=_0x2caea8[_0x39fd70('0x358')]=function(_0x2b6d79,_0x4bac3b,_0x43b506,_0x4e824c){var _0x54ca1c=_0x39fd70;if('undefined'==typeof document&&!_0x4e824c)return null;var _0x3446b7=_0x4e824c?new _0x4e824c():document[_0x54ca1c('0x6b7')](_0x54ca1c('0x7fa'));_0x3446b7[_0x54ca1c('0x5f9')]=0x2*_0x43b506,_0x3446b7[_0x54ca1c('0x3e')]=0x2*_0x43b506;var _0x36b9b2=_0x3446b7['getContext']('2d');return _0x36b9b2?(_0x36b9b2[_0x54ca1c('0xc86')]=_0x2b6d79,_0x36b9b2[_0x54ca1c('0xd32')](0x0,0x0,_0x3446b7[_0x54ca1c('0x5f9')],_0x3446b7['height']),_0x36b9b2[_0x54ca1c('0xc86')]=_0x4bac3b,_0x36b9b2[_0x54ca1c('0xd32')](0x0,0x0,_0x43b506,_0x43b506),_0x36b9b2[_0x54ca1c('0x3e4')](_0x43b506,_0x43b506),_0x36b9b2[_0x54ca1c('0xd32')](0x0,0x0,_0x43b506,_0x43b506),_0x3446b7[_0x54ca1c('0x27f')]()):null;};_0x2caea8['get']=function(_0x2b205f,_0x4cc875,_0x3d949c,_0x9ff5d9){var _0xbe9263=_0x39fd70,_0x3e4115=_0x2b205f+'-'+_0x4cc875+'-'+_0x3d949c+(_0x9ff5d9?_0xbe9263('0x29a'):'');if(_0x30d134[_0x3e4115])return _0x30d134[_0x3e4115];var _0x5911d4=_0x4cd4ee(_0x2b205f,_0x4cc875,_0x3d949c,_0x9ff5d9);return _0x30d134[_0x3e4115]=_0x5911d4,_0x5911d4;};},{}],0x169:[function(_0x5f07b7,_0x92b1d4,_0xd88c79){var _0x45662f=_0x38d28e;'use strict';Object[_0x45662f('0x751')](_0xd88c79,'__esModule',{'value':!0x0}),_0xd88c79[_0x45662f('0x352')]=_0xd88c79['red']=_0xd88c79[_0x45662f('0x934')]=_0xd88c79[_0x45662f('0x8e1')]=_0xd88c79[_0x45662f('0x49f')]=_0xd88c79[_0x45662f('0x924')]=void 0x0;var _0x265b75=_0x1409b1(_0x5f07b7('lodash/each')),_0x4aed04=_0x1409b1(_0x5f07b7('tinycolor2'));function _0x1409b1(_0x4eed5c){var _0x68bfc5=_0x45662f;return _0x4eed5c&&_0x4eed5c[_0x68bfc5('0x8bc')]?_0x4eed5c:{'default':_0x4eed5c};}_0xd88c79[_0x45662f('0x924')]=function(_0x251f8e){var _0x289b08=_0x45662f,_0x422f82=0x0,_0x2a7315=0x0;return(0x0,_0x265b75[_0x289b08('0x8fd')])(['r','g','b','a','h','s','l','v'],function(_0x1c2150){_0x251f8e[_0x1c2150]&&(_0x422f82+=0x1,isNaN(_0x251f8e[_0x1c2150])||(_0x2a7315+=0x1),'s'===_0x1c2150||'l'===_0x1c2150)&&(/^\d+%$/['test'](_0x251f8e[_0x1c2150])&&(_0x2a7315+=0x1));}),_0x422f82===_0x2a7315&&_0x251f8e;};var _0xa53339=_0xd88c79['toState']=function(_0x5c537d,_0x18cd0a){var _0x11ec7c=_0x45662f,_0x5a68ca=_0x5c537d['hex']?(0x0,_0x4aed04[_0x11ec7c('0x8fd')])(_0x5c537d[_0x11ec7c('0x7c6')]):(0x0,_0x4aed04[_0x11ec7c('0x8fd')])(_0x5c537d),_0x5ee299=_0x5a68ca[_0x11ec7c('0x6e0')](),_0x4065bc=_0x5a68ca[_0x11ec7c('0xd68')](),_0x1cfe0f=_0x5a68ca['toRgb'](),_0x5f5042=_0x5a68ca[_0x11ec7c('0xae4')]();return 0x0===_0x5ee299['s']&&(_0x5ee299['h']=_0x18cd0a||0x0,_0x4065bc['h']=_0x18cd0a||0x0),{'hsl':_0x5ee299,'hex':_0x11ec7c('0x2cc')===_0x5f5042&&0x0===_0x1cfe0f['a']?_0x11ec7c('0x6'):'#'+_0x5f5042,'rgb':_0x1cfe0f,'hsv':_0x4065bc,'oldHue':_0x5c537d['h']||_0x18cd0a||_0x5ee299['h'],'source':_0x5c537d[_0x11ec7c('0x22c')]};};_0xd88c79['isValidHex']=function(_0x428ce9){var _0x283ce7=_0x45662f;if('transparent'===_0x428ce9)return!0x0;var _0x1c8ddc='#'===String(_0x428ce9)[_0x283ce7('0x74a')](0x0)?0x1:0x0;return _0x428ce9['length']!==0x4+_0x1c8ddc&&_0x428ce9[_0x283ce7('0x796')]<0x7+_0x1c8ddc&&(0x0,_0x4aed04[_0x283ce7('0x8fd')])(_0x428ce9)[_0x283ce7('0x42b')]();},_0xd88c79['getContrastingColor']=function(_0x26c0f5){var _0x5596c4=_0x45662f;if(!_0x26c0f5)return _0x5596c4('0x789');var _0x5dccb7=_0xa53339(_0x26c0f5);return _0x5596c4('0x6')===_0x5dccb7[_0x5596c4('0x7c6')]?_0x5596c4('0x53'):(0x12b*_0x5dccb7['rgb']['r']+0x24b*_0x5dccb7[_0x5596c4('0x4dd')]['g']+0x72*_0x5dccb7['rgb']['b'])/0x3e8>=0x80?_0x5596c4('0x46c'):_0x5596c4('0x789');},_0xd88c79[_0x45662f('0x94b')]={'hsl':{'a':0x1,'h':0x0,'l':0.5,'s':0x1},'hex':'#ff0000','rgb':{'r':0xff,'g':0x0,'b':0x0,'a':0x1},'hsv':{'h':0x0,'s':0x1,'v':0x1,'a':0x1}},_0xd88c79[_0x45662f('0x352')]=function(_0x488a2e,_0xdeee9e){var _0x143983=_0x45662f,_0x381e00=_0x488a2e[_0x143983('0x8f9')]('°','');return(0x0,_0x4aed04[_0x143983('0x8fd')])(_0xdeee9e+'\x20('+_0x381e00+')')[_0x143983('0x9fc')];};},{'lodash/each':0x10c,'tinycolor2':0x17a}],0x16a:[function(_0x583f2a,_0x4bcbaa,_0x15a33e){var _0xb8a7cb=_0x38d28e;'use strict';Object['defineProperty'](_0x15a33e,_0xb8a7cb('0x8bc'),{'value':!0x0}),_0x15a33e[_0xb8a7cb('0x249')]=function(_0x5bb5b5,_0x20f716,_0x141bcc,_0x206b68){var _0x1f3d8f=_0xb8a7cb,_0xfdc5c9=_0x206b68[_0x1f3d8f('0x927')],_0x1803d4=_0x206b68[_0x1f3d8f('0x86d')],_0x593801=_0x1f3d8f('0x218')==typeof _0x5bb5b5[_0x1f3d8f('0x54f')]?_0x5bb5b5[_0x1f3d8f('0x54f')]:_0x5bb5b5['touches'][0x0][_0x1f3d8f('0x54f')],_0x32c386=_0x1f3d8f('0x218')==typeof _0x5bb5b5['pageY']?_0x5bb5b5[_0x1f3d8f('0xd35')]:_0x5bb5b5['touches'][0x0]['pageY'],_0x1bf7e2=_0x593801-(_0x206b68['getBoundingClientRect']()[_0x1f3d8f('0x8c7')]+window[_0x1f3d8f('0xa2e')]),_0x2e0699=_0x32c386-(_0x206b68[_0x1f3d8f('0x28c')]()['top']+window[_0x1f3d8f('0xbcc')]);if(_0x1f3d8f('0xc0b')===_0x20f716){var _0x45a8ff=void 0x0;if(_0x2e0699<0x0)_0x45a8ff=0x167;else{if(_0x2e0699>_0x1803d4)_0x45a8ff=0x0;else _0x45a8ff=0x168*(-0x64*_0x2e0699/_0x1803d4+0x64)/0x64;}if(_0x141bcc['h']!==_0x45a8ff)return{'h':_0x45a8ff,'s':_0x141bcc['s'],'l':_0x141bcc['l'],'a':_0x141bcc['a'],'source':_0x1f3d8f('0x570')};}else{var _0x3bfbbf=void 0x0;if(_0x1bf7e2<0x0)_0x3bfbbf=0x0;else{if(_0x1bf7e2>_0xfdc5c9)_0x3bfbbf=0x167;else _0x3bfbbf=0x168*(0x64*_0x1bf7e2/_0xfdc5c9)/0x64;}if(_0x141bcc['h']!==_0x3bfbbf)return{'h':_0x3bfbbf,'s':_0x141bcc['s'],'l':_0x141bcc['l'],'a':_0x141bcc['a'],'source':_0x1f3d8f('0x570')};}return null;};},{}],0x16b:[function(_0x2ffac4,_0x402323,_0x10d744){var _0x256ab4=_0x38d28e;'use strict';Object[_0x256ab4('0x751')](_0x10d744,_0x256ab4('0x8bc'),{'value':!0x0}),_0x10d744[_0x256ab4('0x40a')]=void 0x0;var _0xf91cea,_0x5103ac=Object[_0x256ab4('0xd71')]||function(_0x198a82){var _0x393938=_0x256ab4;for(var _0x593fd5=0x1;_0x593fd50x1&&void 0x0!==arguments[0x1]?arguments[0x1]:_0x1c692f('0x943');return function(_0x57a66e){var _0x4f45fe=_0x1c692f;function _0x1ffa95(){var _0x3f7d2f=_0x1c0e,_0x5cd388,_0x1f4597,_0x337597;_0xbb14ef(this,_0x1ffa95);for(var _0x2426dd=arguments[_0x3f7d2f('0x796')],_0x1f0ad9=Array(_0x2426dd),_0xbaf7dd=0x0;_0xbaf7dd<_0x2426dd;_0xbaf7dd++)_0x1f0ad9[_0xbaf7dd]=arguments[_0xbaf7dd];return _0x1f4597=_0x337597=_0x4a0108(this,(_0x5cd388=_0x1ffa95['__proto__']||Object['getPrototypeOf'](_0x1ffa95))['call'][_0x3f7d2f('0x365')](_0x5cd388,[this][_0x3f7d2f('0x4c2')](_0x1f0ad9))),_0x337597[_0x3f7d2f('0x7b0')]={'focus':!0x1},_0x337597[_0x3f7d2f('0x40a')]=function(){var _0x1b7f7e=_0x3f7d2f;return _0x337597[_0x1b7f7e('0x4e1')]({'focus':!0x0});},_0x337597[_0x3f7d2f('0x5cf')]=function(){var _0xa9f11b=_0x3f7d2f;return _0x337597[_0xa9f11b('0x4e1')]({'focus':!0x1});},_0x4a0108(_0x337597,_0x1f4597);}return _0x41f69e(_0x1ffa95,_0x57a66e),_0x7e992e(_0x1ffa95,[{'key':_0x4f45fe('0x358'),'value':function(){var _0x12c24e=_0x4f45fe;return _0x31810f[_0x12c24e('0x8fd')][_0x12c24e('0x6b7')](_0x13270e,{'onFocus':this[_0x12c24e('0x40a')],'onBlur':this['handleBlur']},_0x31810f[_0x12c24e('0x8fd')]['createElement'](_0x24caf8,_0x5103ac({},this[_0x12c24e('0x22d')],this[_0x12c24e('0x7b0')])));}}]),_0x1ffa95;}(_0x31810f[_0x1c692f('0x8fd')][_0x1c692f('0x2c')]);};},{'react':'react'}],0x16c:[function(_0x3ba8ab,_0x878dc7,_0x96741e){var _0x572ba0=_0x38d28e;'use strict';Object[_0x572ba0('0x751')](_0x96741e,_0x572ba0('0x8bc'),{'value':!0x0}),_0x96741e[_0x572ba0('0x249')]=function(_0x5b41a0,_0x1b4847,_0x3fdf87){var _0x269c89=_0x572ba0,_0x4e437f=_0x3fdf87['getBoundingClientRect'](),_0x209b14=_0x4e437f[_0x269c89('0x5f9')],_0x414b06=_0x4e437f[_0x269c89('0x3e')],_0x5c0c0c=_0x269c89('0x218')==typeof _0x5b41a0[_0x269c89('0x54f')]?_0x5b41a0[_0x269c89('0x54f')]:_0x5b41a0['touches'][0x0][_0x269c89('0x54f')],_0x213291=_0x269c89('0x218')==typeof _0x5b41a0['pageY']?_0x5b41a0['pageY']:_0x5b41a0[_0x269c89('0x840')][0x0][_0x269c89('0xd35')],_0x467f03=_0x5c0c0c-(_0x3fdf87[_0x269c89('0x28c')]()[_0x269c89('0x8c7')]+window['pageXOffset']),_0x2daa6f=_0x213291-(_0x3fdf87['getBoundingClientRect']()[_0x269c89('0xbe7')]+window['pageYOffset']);_0x467f03<0x0?_0x467f03=0x0:_0x467f03>_0x209b14&&(_0x467f03=_0x209b14),_0x2daa6f<0x0?_0x2daa6f=0x0:_0x2daa6f>_0x414b06&&(_0x2daa6f=_0x414b06);var _0x538b2d=_0x467f03/_0x209b14,_0x3cbd52=0x1-_0x2daa6f/_0x414b06;return{'h':_0x1b4847['h'],'s':_0x538b2d,'v':_0x3cbd52,'a':_0x1b4847['a'],'source':'hsv'};};},{}],0x16d:[function(_0x30cdbc,_0x5eccdc,_0x1080ce){var _0x5dddbd=_0x38d28e;'use strict';Object['defineProperty'](_0x1080ce,_0x5dddbd('0x8bc'),{'value':!0x0}),_0x1080ce[_0x5dddbd('0x47a')]=_0x1080ce[_0x5dddbd('0x8ac')]=_0x1080ce[_0x5dddbd('0x84a')]=_0x1080ce[_0x5dddbd('0x3de')]=_0x1080ce[_0x5dddbd('0xabb')]=_0x1080ce['SketchPicker']=_0x1080ce[_0x5dddbd('0x43')]=_0x1080ce[_0x5dddbd('0xb69')]=_0x1080ce['HuePicker']=_0x1080ce['GithubPicker']=_0x1080ce[_0x5dddbd('0x3f2')]=_0x1080ce[_0x5dddbd('0x8e5')]=_0x1080ce[_0x5dddbd('0x8fd')]=_0x1080ce[_0x5dddbd('0x20c')]=_0x1080ce[_0x5dddbd('0xdb2')]=_0x1080ce[_0x5dddbd('0xb73')]=void 0x0;var _0x51c327=_0x30cdbc(_0x5dddbd('0x2cb'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0xb73'),{'enumerable':!0x0,'get':function(){return _0x542be3(_0x51c327)['default'];}});var _0x4ab9c1=_0x30cdbc(_0x5dddbd('0x7b8'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0xdb2'),{'enumerable':!0x0,'get':function(){return _0x542be3(_0x4ab9c1)['default'];}});var _0x5f53eb=_0x30cdbc(_0x5dddbd('0x31'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0x20c'),{'enumerable':!0x0,'get':function(){var _0x1361ab=_0x5dddbd;return _0x542be3(_0x5f53eb)[_0x1361ab('0x8fd')];}});var _0x11c959=_0x30cdbc(_0x5dddbd('0x784'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0x8e5'),{'enumerable':!0x0,'get':function(){var _0x342326=_0x5dddbd;return _0x542be3(_0x11c959)[_0x342326('0x8fd')];}});var _0x40fc22=_0x30cdbc(_0x5dddbd('0xdd3'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0x3f2'),{'enumerable':!0x0,'get':function(){var _0x214e3f=_0x5dddbd;return _0x542be3(_0x40fc22)[_0x214e3f('0x8fd')];}});var _0x15845e=_0x30cdbc(_0x5dddbd('0xaf2'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0x986'),{'enumerable':!0x0,'get':function(){var _0x37111a=_0x5dddbd;return _0x542be3(_0x15845e)[_0x37111a('0x8fd')];}});var _0x42ee8a=_0x30cdbc(_0x5dddbd('0xc4c'));Object['defineProperty'](_0x1080ce,_0x5dddbd('0x110'),{'enumerable':!0x0,'get':function(){return _0x542be3(_0x42ee8a)['default'];}});var _0x4f12e8=_0x30cdbc(_0x5dddbd('0x3b8'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0xb69'),{'enumerable':!0x0,'get':function(){var _0x141f87=_0x5dddbd;return _0x542be3(_0x4f12e8)[_0x141f87('0x8fd')];}});var _0x18af2e=_0x30cdbc(_0x5dddbd('0x147'));Object['defineProperty'](_0x1080ce,_0x5dddbd('0x43'),{'enumerable':!0x0,'get':function(){return _0x542be3(_0x18af2e)['default'];}});var _0x5d6a7c=_0x30cdbc(_0x5dddbd('0x759'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0x80'),{'enumerable':!0x0,'get':function(){var _0x4e522a=_0x5dddbd;return _0x542be3(_0x5d6a7c)[_0x4e522a('0x8fd')];}});var _0x1e01f2=_0x30cdbc('./components/slider/Slider');Object[_0x5dddbd('0x751')](_0x1080ce,'SliderPicker',{'enumerable':!0x0,'get':function(){var _0x3dd2a8=_0x5dddbd;return _0x542be3(_0x1e01f2)[_0x3dd2a8('0x8fd')];}});var _0x1d1839=_0x30cdbc(_0x5dddbd('0x9d3'));Object[_0x5dddbd('0x751')](_0x1080ce,'SwatchesPicker',{'enumerable':!0x0,'get':function(){var _0x11315c=_0x5dddbd;return _0x542be3(_0x1d1839)[_0x11315c('0x8fd')];}});var _0xede0cd=_0x30cdbc(_0x5dddbd('0xd64'));Object[_0x5dddbd('0x751')](_0x1080ce,_0x5dddbd('0x84a'),{'enumerable':!0x0,'get':function(){var _0x33f420=_0x5dddbd;return _0x542be3(_0xede0cd)[_0x33f420('0x8fd')];}});var _0x2ae0e2=_0x30cdbc('./components/google/Google');Object['defineProperty'](_0x1080ce,'GooglePicker',{'enumerable':!0x0,'get':function(){var _0xad98bb=_0x5dddbd;return _0x542be3(_0x2ae0e2)[_0xad98bb('0x8fd')];}});var _0x3efbb7=_0x30cdbc(_0x5dddbd('0xa7c'));Object[_0x5dddbd('0x751')](_0x1080ce,'CustomPicker',{'enumerable':!0x0,'get':function(){var _0x465e81=_0x5dddbd;return _0x542be3(_0x3efbb7)[_0x465e81('0x8fd')];}});var _0x5511b8=_0x542be3(_0x11c959);function _0x542be3(_0xa1ae29){var _0x10c6dd=_0x5dddbd;return _0xa1ae29&&_0xa1ae29[_0x10c6dd('0x8bc')]?_0xa1ae29:{'default':_0xa1ae29};}_0x1080ce['default']=_0x5511b8[_0x5dddbd('0x8fd')];},{'./components/alpha/Alpha':0x137,'./components/block/Block':0x139,'./components/chrome/Chrome':0x13b,'./components/circle/Circle':0x13f,'./components/common/ColorWrap':0x143,'./components/compact/Compact':0x14a,'./components/github/Github':0x14d,'./components/google/Google':0x14f,'./components/hue/Hue':0x153,'./components/material/Material':0x155,'./components/photoshop/Photoshop':0x156,'./components/sketch/Sketch':0x15c,'./components/slider/Slider':0x15f,'./components/swatches/Swatches':0x163,'./components/twitter/Twitter':0x166}],0x16e:[function(_0x1dfcee,_0x559a27,_0x31de6a){var _0x4ab5de=_0x38d28e;(function(_0x3ed62b){var _0x7ae7b7=_0x1c0e;/** @license React v16.13.1 + +'use strict'; +/* eslint-disable no-unused-vars */ +var getOwnPropertySymbols = Object.getOwnPropertySymbols; +var hasOwnProperty = Object.prototype.hasOwnProperty; +var propIsEnumerable = Object.prototype.propertyIsEnumerable; + +function toObject(val) { + if (val === null || val === undefined) { + throw new TypeError('Object.assign cannot be called with null or undefined'); + } + + return Object(val); +} + +function shouldUseNative() { + try { + if (!Object.assign) { + return false; + } + + // Detect buggy property enumeration order in older V8 versions. + + // https://bugs.chromium.org/p/v8/issues/detail?id=4118 + var test1 = new String('abc'); // eslint-disable-line no-new-wrappers + test1[5] = 'de'; + if (Object.getOwnPropertyNames(test1)[0] === '5') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test2 = {}; + for (var i = 0; i < 10; i++) { + test2['_' + String.fromCharCode(i)] = i; + } + var order2 = Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n]; + }); + if (order2.join('') !== '0123456789') { + return false; + } + + // https://bugs.chromium.org/p/v8/issues/detail?id=3056 + var test3 = {}; + 'abcdefghijklmnopqrst'.split('').forEach(function (letter) { + test3[letter] = letter; + }); + if (Object.keys(Object.assign({}, test3)).join('') !== + 'abcdefghijklmnopqrst') { + return false; + } + + return true; + } catch (err) { + // We don't expect any of the above to throw, but better to be safe. + return false; + } +} + +module.exports = shouldUseNative() ? Object.assign : function (target, source) { + var from; + var to = toObject(target); + var symbols; + + for (var s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + + for (var key in from) { + if (hasOwnProperty.call(from, key)) { + to[key] = from[key]; + } + } + + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + if (propIsEnumerable.call(from, symbols[i])) { + to[symbols[i]] = from[symbols[i]]; + } + } + } + } + + return to; +}; + +},{}],306:[function(require,module,exports){ +(function (process){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + var loggedTypeFailures = {}; + var has = Function.call.bind(Object.prototype.hasOwnProperty); + + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +/** + * Assert that the values match with the type specs. + * Error messages are memorized and will only be shown once. + * + * @param {object} typeSpecs Map of name to a ReactPropType + * @param {object} values Runtime values that need to be type-checked + * @param {string} location e.g. "prop", "context", "child context" + * @param {string} componentName Name of the component for error messages. + * @param {?Function} getStack Returns the component stack. + * @private + */ +function checkPropTypes(typeSpecs, values, location, componentName, getStack) { + if (process.env.NODE_ENV !== 'production') { + for (var typeSpecName in typeSpecs) { + if (has(typeSpecs, typeSpecName)) { + var error; + // Prop type validation may throw. In case they do, we don't want to + // fail the render phase where it didn't fail before. So we log it. + // After these have been cleaned up, we'll let them throw. + try { + // This is intentionally an invariant that gets caught. It's the same + // behavior as without this statement except with a better message. + if (typeof typeSpecs[typeSpecName] !== 'function') { + var err = Error( + (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + ); + err.name = 'Invariant Violation'; + throw err; + } + error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret); + } catch (ex) { + error = ex; + } + if (error && !(error instanceof Error)) { + printWarning( + (componentName || 'React class') + ': type specification of ' + + location + ' `' + typeSpecName + '` is invalid; the type checker ' + + 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' + + 'You may have forgotten to pass an argument to the type checker ' + + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + + 'shape all require an argument).' + ); + } + if (error instanceof Error && !(error.message in loggedTypeFailures)) { + // Only monitor this failure once because there tends to be a lot of the + // same error. + loggedTypeFailures[error.message] = true; + + var stack = getStack ? getStack() : ''; + + printWarning( + 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '') + ); + } + } + } + } +} + +/** + * Resets warning cache when testing. + * + * @private + */ +checkPropTypes.resetWarningCache = function() { + if (process.env.NODE_ENV !== 'production') { + loggedTypeFailures = {}; + } +} + +module.exports = checkPropTypes; + +}).call(this,require('_process')) + +},{"./lib/ReactPropTypesSecret":310,"_process":6}],307:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); + +function emptyFunction() {} +function emptyFunctionWithReset() {} +emptyFunctionWithReset.resetWarningCache = emptyFunction; + +module.exports = function() { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use PropTypes.checkPropTypes() to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + }; + shim.isRequired = shim; + function getShim() { + return shim; + }; + // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, + + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; + + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +},{"./lib/ReactPropTypesSecret":310}],308:[function(require,module,exports){ +(function (process){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactIs = require('react-is'); +var assign = require('object-assign'); + +var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret'); +var checkPropTypes = require('./checkPropTypes'); + +var has = Function.call.bind(Object.prototype.hasOwnProperty); +var printWarning = function() {}; + +if (process.env.NODE_ENV !== 'production') { + printWarning = function(text) { + var message = 'Warning: ' + text; + if (typeof console !== 'undefined') { + console.error(message); + } + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; +} + +function emptyFunctionThatReturnsNull() { + return null; +} + +module.exports = function(isValidElement, throwOnDirectAccess) { + /* global Symbol */ + var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator; + var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec. + + /** + * Returns the iterator method function contained on the iterable object. + * + * Be sure to invoke the function with the iterable as context: + * + * var iteratorFn = getIteratorFn(myIterable); + * if (iteratorFn) { + * var iterator = iteratorFn.call(myIterable); + * ... + * } + * + * @param {?object} maybeIterable + * @return {?function} + */ + function getIteratorFn(maybeIterable) { + var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]); + if (typeof iteratorFn === 'function') { + return iteratorFn; + } + } + + /** + * Collection of methods that allow declaration and validation of props that are + * supplied to React components. Example usage: + * + * var Props = require('ReactPropTypes'); + * var MyArticle = React.createClass({ + * propTypes: { + * // An optional string prop named "description". + * description: Props.string, + * + * // A required enum prop named "category". + * category: Props.oneOf(['News','Photos']).isRequired, + * + * // A prop named "dialog" that requires an instance of Dialog. + * dialog: Props.instanceOf(Dialog).isRequired + * }, + * render: function() { ... } + * }); + * + * A more formal specification of how these methods are used: + * + * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...) + * decl := ReactPropTypes.{type}(.isRequired)? + * + * Each and every declaration produces a function with the same signature. This + * allows the creation of custom validation functions. For example: + * + * var MyLink = React.createClass({ + * propTypes: { + * // An optional string or URI prop named "href". + * href: function(props, propName, componentName) { + * var propValue = props[propName]; + * if (propValue != null && typeof propValue !== 'string' && + * !(propValue instanceof URI)) { + * return new Error( + * 'Expected a string or an URI for ' + propName + ' in ' + + * componentName + * ); + * } + * } + * }, + * render: function() {...} + * }); + * + * @internal + */ + + var ANONYMOUS = '<>'; + + // Important! + // Keep this list in sync with production version in `./factoryWithThrowingShims.js`. + var ReactPropTypes = { + array: createPrimitiveTypeChecker('array'), + bool: createPrimitiveTypeChecker('boolean'), + func: createPrimitiveTypeChecker('function'), + number: createPrimitiveTypeChecker('number'), + object: createPrimitiveTypeChecker('object'), + string: createPrimitiveTypeChecker('string'), + symbol: createPrimitiveTypeChecker('symbol'), + + any: createAnyTypeChecker(), + arrayOf: createArrayOfTypeChecker, + element: createElementTypeChecker(), + elementType: createElementTypeTypeChecker(), + instanceOf: createInstanceTypeChecker, + node: createNodeChecker(), + objectOf: createObjectOfTypeChecker, + oneOf: createEnumTypeChecker, + oneOfType: createUnionTypeChecker, + shape: createShapeTypeChecker, + exact: createStrictShapeTypeChecker, + }; + + /** + * inlined Object.is polyfill to avoid requiring consumers ship their own + * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + */ + /*eslint-disable no-self-compare*/ + function is(x, y) { + // SameValue algorithm + if (x === y) { + // Steps 1-5, 7-10 + // Steps 6.b-6.e: +0 != -0 + return x !== 0 || 1 / x === 1 / y; + } else { + // Step 6.a: NaN == NaN + return x !== x && y !== y; + } + } + /*eslint-enable no-self-compare*/ + + /** + * We use an Error-like object for backward compatibility as people may call + * PropTypes directly and inspect their output. However, we don't use real + * Errors anymore. We don't inspect their stack anyway, and creating them + * is prohibitively expensive if they are created too often, such as what + * happens in oneOfType() for any type before the one that matched. + */ + function PropTypeError(message) { + this.message = message; + this.stack = ''; + } + // Make `instanceof Error` still work for returned errors. + PropTypeError.prototype = Error.prototype; + + function createChainableTypeChecker(validate) { + if (process.env.NODE_ENV !== 'production') { + var manualPropTypeCallCache = {}; + var manualPropTypeWarningCount = 0; + } + function checkType(isRequired, props, propName, componentName, location, propFullName, secret) { + componentName = componentName || ANONYMOUS; + propFullName = propFullName || propName; + + if (secret !== ReactPropTypesSecret) { + if (throwOnDirectAccess) { + // New behavior only for users of `prop-types` package + var err = new Error( + 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' + + 'Use `PropTypes.checkPropTypes()` to call them. ' + + 'Read more at http://fb.me/use-check-prop-types' + ); + err.name = 'Invariant Violation'; + throw err; + } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') { + // Old behavior for people using React.PropTypes + var cacheKey = componentName + ':' + propName; + if ( + !manualPropTypeCallCache[cacheKey] && + // Avoid spamming the console because they are often not actionable except for lib authors + manualPropTypeWarningCount < 3 + ) { + printWarning( + 'You are manually calling a React.PropTypes validation ' + + 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' + + 'and will throw in the standalone `prop-types` package. ' + + 'You may be seeing this warning due to a third-party PropTypes ' + + 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.' + ); + manualPropTypeCallCache[cacheKey] = true; + manualPropTypeWarningCount++; + } + } + } + if (props[propName] == null) { + if (isRequired) { + if (props[propName] === null) { + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.')); + } + return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.')); + } + return null; + } else { + return validate(props, propName, componentName, location, propFullName); + } + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + + return chainedCheckType; + } + + function createPrimitiveTypeChecker(expectedType) { + function validate(props, propName, componentName, location, propFullName, secret) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== expectedType) { + // `propValue` being instance of, say, date/regexp, pass the 'object' + // check, but we can offer a more precise error message here rather than + // 'of type `object`'. + var preciseType = getPreciseType(propValue); + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createAnyTypeChecker() { + return createChainableTypeChecker(emptyFunctionThatReturnsNull); + } + + function createArrayOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.'); + } + var propValue = props[propName]; + if (!Array.isArray(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.')); + } + for (var i = 0; i < propValue.length; i++) { + var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!isValidElement(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createElementTypeTypeChecker() { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + if (!ReactIs.isValidElementType(propValue)) { + var propType = getPropType(propValue); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createInstanceTypeChecker(expectedClass) { + function validate(props, propName, componentName, location, propFullName) { + if (!(props[propName] instanceof expectedClass)) { + var expectedClassName = expectedClass.name || ANONYMOUS; + var actualClassName = getClassName(props[propName]); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createEnumTypeChecker(expectedValues) { + if (!Array.isArray(expectedValues)) { + if (process.env.NODE_ENV !== 'production') { + if (arguments.length > 1) { + printWarning( + 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' + + 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).' + ); + } else { + printWarning('Invalid argument supplied to oneOf, expected an array.'); + } + } + return emptyFunctionThatReturnsNull; + } + + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + for (var i = 0; i < expectedValues.length; i++) { + if (is(propValue, expectedValues[i])) { + return null; + } + } + + var valuesString = JSON.stringify(expectedValues, function replacer(key, value) { + var type = getPreciseType(value); + if (type === 'symbol') { + return String(value); + } + return value; + }); + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.')); + } + return createChainableTypeChecker(validate); + } + + function createObjectOfTypeChecker(typeChecker) { + function validate(props, propName, componentName, location, propFullName) { + if (typeof typeChecker !== 'function') { + return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.'); + } + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.')); + } + for (var key in propValue) { + if (has(propValue, key)) { + var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error instanceof Error) { + return error; + } + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createUnionTypeChecker(arrayOfTypeCheckers) { + if (!Array.isArray(arrayOfTypeCheckers)) { + process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0; + return emptyFunctionThatReturnsNull; + } + + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (typeof checker !== 'function') { + printWarning( + 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' + + 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.' + ); + return emptyFunctionThatReturnsNull; + } + } + + function validate(props, propName, componentName, location, propFullName) { + for (var i = 0; i < arrayOfTypeCheckers.length; i++) { + var checker = arrayOfTypeCheckers[i]; + if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) { + return null; + } + } + + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.')); + } + return createChainableTypeChecker(validate); + } + + function createNodeChecker() { + function validate(props, propName, componentName, location, propFullName) { + if (!isNode(props[propName])) { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.')); + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + for (var key in shapeTypes) { + var checker = shapeTypes[key]; + if (!checker) { + continue; + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + return createChainableTypeChecker(validate); + } + + function createStrictShapeTypeChecker(shapeTypes) { + function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = getPropType(propValue); + if (propType !== 'object') { + return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.')); + } + // We need to check all keys in case some are required but missing from + // props. + var allKeys = assign({}, props[propName], shapeTypes); + for (var key in allKeys) { + var checker = shapeTypes[key]; + if (!checker) { + return new PropTypeError( + 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' + + '\nBad object: ' + JSON.stringify(props[propName], null, ' ') + + '\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ') + ); + } + var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret); + if (error) { + return error; + } + } + return null; + } + + return createChainableTypeChecker(validate); + } + + function isNode(propValue) { + switch (typeof propValue) { + case 'number': + case 'string': + case 'undefined': + return true; + case 'boolean': + return !propValue; + case 'object': + if (Array.isArray(propValue)) { + return propValue.every(isNode); + } + if (propValue === null || isValidElement(propValue)) { + return true; + } + + var iteratorFn = getIteratorFn(propValue); + if (iteratorFn) { + var iterator = iteratorFn.call(propValue); + var step; + if (iteratorFn !== propValue.entries) { + while (!(step = iterator.next()).done) { + if (!isNode(step.value)) { + return false; + } + } + } else { + // Iterator will provide entry [k,v] tuples rather than values. + while (!(step = iterator.next()).done) { + var entry = step.value; + if (entry) { + if (!isNode(entry[1])) { + return false; + } + } + } + } + } else { + return false; + } + + return true; + default: + return false; + } + } + + function isSymbol(propType, propValue) { + // Native Symbol. + if (propType === 'symbol') { + return true; + } + + // falsy value can't be a Symbol + if (!propValue) { + return false; + } + + // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol' + if (propValue['@@toStringTag'] === 'Symbol') { + return true; + } + + // Fallback for non-spec compliant Symbols which are polyfilled. + if (typeof Symbol === 'function' && propValue instanceof Symbol) { + return true; + } + + return false; + } + + // Equivalent of `typeof` but with special handling for array and regexp. + function getPropType(propValue) { + var propType = typeof propValue; + if (Array.isArray(propValue)) { + return 'array'; + } + if (propValue instanceof RegExp) { + // Old webkits (at least until Android 4.0) return 'function' rather than + // 'object' for typeof a RegExp. We'll normalize this here so that /bla/ + // passes PropTypes.object. + return 'object'; + } + if (isSymbol(propType, propValue)) { + return 'symbol'; + } + return propType; + } + + // This handles more types than `getPropType`. Only used for error messages. + // See `createPrimitiveTypeChecker`. + function getPreciseType(propValue) { + if (typeof propValue === 'undefined' || propValue === null) { + return '' + propValue; + } + var propType = getPropType(propValue); + if (propType === 'object') { + if (propValue instanceof Date) { + return 'date'; + } else if (propValue instanceof RegExp) { + return 'regexp'; + } + } + return propType; + } + + // Returns a string that is postfixed to a warning about an invalid type. + // For example, "undefined" or "of type array" + function getPostfixForTypeWarning(value) { + var type = getPreciseType(value); + switch (type) { + case 'array': + case 'object': + return 'an ' + type; + case 'boolean': + case 'date': + case 'regexp': + return 'a ' + type; + default: + return type; + } + } + + // Returns class name of the object, if any. + function getClassName(propValue) { + if (!propValue.constructor || !propValue.constructor.name) { + return ANONYMOUS; + } + return propValue.constructor.name; + } + + ReactPropTypes.checkPropTypes = checkPropTypes; + ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache; + ReactPropTypes.PropTypes = ReactPropTypes; + + return ReactPropTypes; +}; + +}).call(this,require('_process')) + +},{"./checkPropTypes":306,"./lib/ReactPropTypesSecret":310,"_process":6,"object-assign":305,"react-is":368}],309:[function(require,module,exports){ +(function (process){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +if (process.env.NODE_ENV !== 'production') { + var ReactIs = require('react-is'); + + // By explicitly using `prop-types` you are opting into new development behavior. + // http://fb.me/prop-types-in-prod + var throwOnDirectAccess = true; + module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess); +} else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = require('./factoryWithThrowingShims')(); +} + +}).call(this,require('_process')) + +},{"./factoryWithThrowingShims":307,"./factoryWithTypeCheckers":308,"_process":6,"react-is":368}],310:[function(require,module,exports){ +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; + +module.exports = ReactPropTypesSecret; + +},{}],311:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AlphaPicker = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +var _AlphaPointer = require('./AlphaPointer'); + +var _AlphaPointer2 = _interopRequireDefault(_AlphaPointer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AlphaPicker = exports.AlphaPicker = function AlphaPicker(_ref) { + var rgb = _ref.rgb, + hsl = _ref.hsl, + width = _ref.width, + height = _ref.height, + onChange = _ref.onChange, + direction = _ref.direction, + style = _ref.style, + renderers = _ref.renderers, + pointer = _ref.pointer, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + position: 'relative', + width: width, + height: height + }, + alpha: { + radius: '2px', + style: style + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'alpha-picker ' + className }, + _react2.default.createElement(_common.Alpha, _extends({}, styles.alpha, { + rgb: rgb, + hsl: hsl, + pointer: pointer, + renderers: renderers, + onChange: onChange, + direction: direction + })) + ); +}; + +AlphaPicker.defaultProps = { + width: '316px', + height: '16px', + direction: 'horizontal', + pointer: _AlphaPointer2.default +}; + +exports.default = (0, _common.ColorWrap)(AlphaPicker); +},{"../common":329,"./AlphaPointer":312,"react":"react","reactcss":374}],312:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.AlphaPointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var AlphaPointer = exports.AlphaPointer = function AlphaPointer(_ref) { + var direction = _ref.direction; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '18px', + height: '18px', + borderRadius: '50%', + transform: 'translate(-9px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + }, + 'vertical': { + picker: { + transform: 'translate(-3px, -9px)' + } + } + }, { vertical: direction === 'vertical' }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = AlphaPointer; +},{"react":"react","reactcss":374}],313:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Block = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +var _BlockSwatches = require('./BlockSwatches'); + +var _BlockSwatches2 = _interopRequireDefault(_BlockSwatches); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Block = exports.Block = function Block(_ref) { + var onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + hex = _ref.hex, + colors = _ref.colors, + width = _ref.width, + triangle = _ref.triangle, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var transparent = hex === 'transparent'; + var handleChange = function handleChange(hexCode, e) { + color.isValidHex(hexCode) && onChange({ + hex: hexCode, + source: 'hex' + }, e); + }; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + background: '#fff', + boxShadow: '0 1px rgba(0,0,0,.1)', + borderRadius: '6px', + position: 'relative' + }, + head: { + height: '110px', + background: hex, + borderRadius: '6px 6px 0 0', + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + position: 'relative' + }, + body: { + padding: '10px' + }, + label: { + fontSize: '18px', + color: color.getContrastingColor(hex), + position: 'relative' + }, + triangle: { + width: '0px', + height: '0px', + borderStyle: 'solid', + borderWidth: '0 10px 10px 10px', + borderColor: 'transparent transparent ' + hex + ' transparent', + position: 'absolute', + top: '-10px', + left: '50%', + marginLeft: '-10px' + }, + input: { + width: '100%', + fontSize: '12px', + color: '#666', + border: '0px', + outline: 'none', + height: '22px', + boxShadow: 'inset 0 0 0 1px #ddd', + borderRadius: '4px', + padding: '0 7px', + boxSizing: 'border-box' + } + }, + 'hide-triangle': { + triangle: { + display: 'none' + } + } + }, passedStyles), { 'hide-triangle': triangle === 'hide' }); + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'block-picker ' + className }, + _react2.default.createElement('div', { style: styles.triangle }), + _react2.default.createElement( + 'div', + { style: styles.head }, + transparent && _react2.default.createElement(_common.Checkboard, { borderRadius: '6px 6px 0 0' }), + _react2.default.createElement( + 'div', + { style: styles.label }, + hex + ) + ), + _react2.default.createElement( + 'div', + { style: styles.body }, + _react2.default.createElement(_BlockSwatches2.default, { colors: colors, onClick: handleChange, onSwatchHover: onSwatchHover }), + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input }, + value: hex, + onChange: handleChange + }) + ) + ); +}; + +Block.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + triangle: _propTypes2.default.oneOf(['top', 'hide']), + styles: _propTypes2.default.object +}; + +Block.defaultProps = { + width: 170, + colors: ['#D9E3F0', '#F47373', '#697689', '#37D67A', '#2CCCE4', '#555555', '#dce775', '#ff8a65', '#ba68c8'], + triangle: 'top', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Block); +},{"../../helpers/color":361,"../common":329,"./BlockSwatches":314,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],314:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.BlockSwatches = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var BlockSwatches = exports.BlockSwatches = function BlockSwatches(_ref) { + var colors = _ref.colors, + onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatches: { + marginRight: '-10px' + }, + swatch: { + width: '22px', + height: '22px', + float: 'left', + marginRight: '10px', + marginBottom: '10px', + borderRadius: '4px' + }, + clear: { + clear: 'both' + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.swatches }, + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_common.Swatch, { + key: c, + color: c, + style: styles.swatch, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { + boxShadow: '0 0 4px ' + c + } + }); + }), + _react2.default.createElement('div', { style: styles.clear }) + ); +}; + +exports.default = BlockSwatches; +},{"../common":329,"lodash/map":293,"react":"react","reactcss":374}],315:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Chrome = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _ChromeFields = require('./ChromeFields'); + +var _ChromeFields2 = _interopRequireDefault(_ChromeFields); + +var _ChromePointer = require('./ChromePointer'); + +var _ChromePointer2 = _interopRequireDefault(_ChromePointer); + +var _ChromePointerCircle = require('./ChromePointerCircle'); + +var _ChromePointerCircle2 = _interopRequireDefault(_ChromePointerCircle); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Chrome = exports.Chrome = function Chrome(_ref) { + var width = _ref.width, + onChange = _ref.onChange, + disableAlpha = _ref.disableAlpha, + rgb = _ref.rgb, + hsl = _ref.hsl, + hsv = _ref.hsv, + hex = _ref.hex, + renderers = _ref.renderers, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className, + defaultView = _ref.defaultView; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + width: width, + background: '#fff', + borderRadius: '2px', + boxShadow: '0 0 2px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.3)', + boxSizing: 'initial', + fontFamily: 'Menlo' + }, + saturation: { + width: '100%', + paddingBottom: '55%', + position: 'relative', + borderRadius: '2px 2px 0 0', + overflow: 'hidden' + }, + Saturation: { + radius: '2px 2px 0 0' + }, + body: { + padding: '16px 16px 12px' + }, + controls: { + display: 'flex' + }, + color: { + width: '32px' + }, + swatch: { + marginTop: '6px', + width: '16px', + height: '16px', + borderRadius: '8px', + position: 'relative', + overflow: 'hidden' + }, + active: { + absolute: '0px 0px 0px 0px', + borderRadius: '8px', + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.1)', + background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', ' + rgb.a + ')', + zIndex: '2' + }, + toggles: { + flex: '1' + }, + hue: { + height: '10px', + position: 'relative', + marginBottom: '8px' + }, + Hue: { + radius: '2px' + }, + alpha: { + height: '10px', + position: 'relative' + }, + Alpha: { + radius: '2px' + } + }, + 'disableAlpha': { + color: { + width: '22px' + }, + alpha: { + display: 'none' + }, + hue: { + marginBottom: '0px' + }, + swatch: { + width: '10px', + height: '10px', + marginTop: '0px' + } + } + }, passedStyles), { disableAlpha: disableAlpha }); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'chrome-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + style: styles.Saturation, + hsl: hsl, + hsv: hsv, + pointer: _ChromePointerCircle2.default, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.body }, + _react2.default.createElement( + 'div', + { style: styles.controls, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.color }, + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement('div', { style: styles.active }), + _react2.default.createElement(_common.Checkboard, { renderers: renderers }) + ) + ), + _react2.default.createElement( + 'div', + { style: styles.toggles }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + pointer: _ChromePointer2.default, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.Alpha, { + style: styles.Alpha, + rgb: rgb, + hsl: hsl, + pointer: _ChromePointer2.default, + renderers: renderers, + onChange: onChange + }) + ) + ) + ), + _react2.default.createElement(_ChromeFields2.default, { + rgb: rgb, + hsl: hsl, + hex: hex, + view: defaultView, + onChange: onChange, + disableAlpha: disableAlpha + }) + ) + ); +}; + +Chrome.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + disableAlpha: _propTypes2.default.bool, + styles: _propTypes2.default.object, + defaultView: _propTypes2.default.oneOf(["hex", "rgb", "hsl"]) +}; + +Chrome.defaultProps = { + width: 225, + disableAlpha: false, + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Chrome); +},{"../common":329,"./ChromeFields":316,"./ChromePointer":317,"./ChromePointerCircle":318,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],316:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ChromeFields = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _isUndefined = require('lodash/isUndefined'); + +var _isUndefined2 = _interopRequireDefault(_isUndefined); + +var _common = require('../common'); + +var _UnfoldMoreHorizontalIcon = require('@icons/material/UnfoldMoreHorizontalIcon'); + +var _UnfoldMoreHorizontalIcon2 = _interopRequireDefault(_UnfoldMoreHorizontalIcon); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable react/no-did-mount-set-state, no-param-reassign */ + +var ChromeFields = exports.ChromeFields = function (_React$Component) { + _inherits(ChromeFields, _React$Component); + + function ChromeFields(props) { + _classCallCheck(this, ChromeFields); + + var _this = _possibleConstructorReturn(this, (ChromeFields.__proto__ || Object.getPrototypeOf(ChromeFields)).call(this)); + + _this.toggleViews = function () { + if (_this.state.view === 'hex') { + _this.setState({ view: 'rgb' }); + } else if (_this.state.view === 'rgb') { + _this.setState({ view: 'hsl' }); + } else if (_this.state.view === 'hsl') { + if (_this.props.hsl.a === 1) { + _this.setState({ view: 'hex' }); + } else { + _this.setState({ view: 'rgb' }); + } + } + }; + + _this.handleChange = function (data, e) { + if (data.hex) { + color.isValidHex(data.hex) && _this.props.onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + _this.props.onChange({ + r: data.r || _this.props.rgb.r, + g: data.g || _this.props.rgb.g, + b: data.b || _this.props.rgb.b, + source: 'rgb' + }, e); + } else if (data.a) { + if (data.a < 0) { + data.a = 0; + } else if (data.a > 1) { + data.a = 1; + } + + _this.props.onChange({ + h: _this.props.hsl.h, + s: _this.props.hsl.s, + l: _this.props.hsl.l, + a: Math.round(data.a * 100) / 100, + source: 'rgb' + }, e); + } else if (data.h || data.s || data.l) { + // Remove any occurances of '%'. + if (typeof data.s === 'string' && data.s.includes('%')) { + data.s = data.s.replace('%', ''); + } + if (typeof data.l === 'string' && data.l.includes('%')) { + data.l = data.l.replace('%', ''); + } + + // We store HSL as a unit interval so we need to override the 1 input to 0.01 + if (data.s == 1) { + data.s = 0.01; + } else if (data.l == 1) { + data.l = 0.01; + } + + _this.props.onChange({ + h: data.h || _this.props.hsl.h, + s: Number(!(0, _isUndefined2.default)(data.s) ? data.s : _this.props.hsl.s), + l: Number(!(0, _isUndefined2.default)(data.l) ? data.l : _this.props.hsl.l), + source: 'hsl' + }, e); + } + }; + + _this.showHighlight = function (e) { + e.currentTarget.style.background = '#eee'; + }; + + _this.hideHighlight = function (e) { + e.currentTarget.style.background = 'transparent'; + }; + + if (props.hsl.a !== 1 && props.view === "hex") { + _this.state = { + view: "rgb" + }; + } else { + _this.state = { + view: props.view + }; + } + return _this; + } + + _createClass(ChromeFields, [{ + key: 'render', + value: function render() { + var _this2 = this; + + var styles = (0, _reactcss2.default)({ + 'default': { + wrap: { + paddingTop: '16px', + display: 'flex' + }, + fields: { + flex: '1', + display: 'flex', + marginLeft: '-6px' + }, + field: { + paddingLeft: '6px', + width: '100%' + }, + alpha: { + paddingLeft: '6px', + width: '100%' + }, + toggle: { + width: '32px', + textAlign: 'right', + position: 'relative' + }, + icon: { + marginRight: '-4px', + marginTop: '12px', + cursor: 'pointer', + position: 'relative' + }, + iconHighlight: { + position: 'absolute', + width: '24px', + height: '28px', + background: '#eee', + borderRadius: '4px', + top: '10px', + left: '12px', + display: 'none' + }, + input: { + fontSize: '11px', + color: '#333', + width: '100%', + borderRadius: '2px', + border: 'none', + boxShadow: 'inset 0 0 0 1px #dadada', + height: '21px', + textAlign: 'center' + }, + label: { + textTransform: 'uppercase', + fontSize: '11px', + lineHeight: '11px', + color: '#969696', + textAlign: 'center', + display: 'block', + marginTop: '12px' + }, + svg: { + fill: '#333', + width: '24px', + height: '24px', + border: '1px transparent solid', + borderRadius: '5px' + } + }, + 'disableAlpha': { + alpha: { + display: 'none' + } + } + }, this.props, this.state); + + var fields = void 0; + if (this.state.view === 'hex') { + fields = _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'hex', value: this.props.hex, + onChange: this.handleChange + }) + ) + ); + } else if (this.state.view === 'rgb') { + fields = _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'r', + value: this.props.rgb.r, + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'g', + value: this.props.rgb.g, + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'b', + value: this.props.rgb.b, + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'a', + value: this.props.rgb.a, + arrowOffset: 0.01, + onChange: this.handleChange + }) + ) + ); + } else if (this.state.view === 'hsl') { + fields = _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'h', + value: Math.round(this.props.hsl.h), + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 's', + value: Math.round(this.props.hsl.s * 100) + '%', + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.field }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'l', + value: Math.round(this.props.hsl.l * 100) + '%', + onChange: this.handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'a', + value: this.props.hsl.a, + arrowOffset: 0.01, + onChange: this.handleChange + }) + ) + ); + } + + return _react2.default.createElement( + 'div', + { style: styles.wrap, className: 'flexbox-fix' }, + fields, + _react2.default.createElement( + 'div', + { style: styles.toggle }, + _react2.default.createElement( + 'div', + { style: styles.icon, onClick: this.toggleViews, ref: function ref(icon) { + return _this2.icon = icon; + } }, + _react2.default.createElement(_UnfoldMoreHorizontalIcon2.default, { + style: styles.svg, + onMouseOver: this.showHighlight, + onMouseEnter: this.showHighlight, + onMouseOut: this.hideHighlight + }) + ) + ) + ); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, state) { + if (nextProps.hsl.a !== 1 && state.view === 'hex') { + return { view: 'rgb' }; + } + return null; + } + }]); + + return ChromeFields; +}(_react2.default.Component); + +ChromeFields.defaultProps = { + view: "hex" +}; + +exports.default = ChromeFields; +},{"../../helpers/color":361,"../common":329,"@icons/material/UnfoldMoreHorizontalIcon":97,"lodash/isUndefined":290,"react":"react","reactcss":374}],317:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ChromePointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ChromePointer = exports.ChromePointer = function ChromePointer() { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '12px', + height: '12px', + borderRadius: '6px', + transform: 'translate(-6px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = ChromePointer; +},{"react":"react","reactcss":374}],318:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ChromePointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ChromePointerCircle = exports.ChromePointerCircle = function ChromePointerCircle() { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '12px', + height: '12px', + borderRadius: '6px', + boxShadow: 'inset 0 0 0 1px #fff', + transform: 'translate(-6px, -6px)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = ChromePointerCircle; +},{"react":"react","reactcss":374}],319:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Circle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _materialColors = require('material-colors'); + +var material = _interopRequireWildcard(_materialColors); + +var _common = require('../common'); + +var _CircleSwatch = require('./CircleSwatch'); + +var _CircleSwatch2 = _interopRequireDefault(_CircleSwatch); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Circle = exports.Circle = function Circle(_ref) { + var width = _ref.width, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + colors = _ref.colors, + hex = _ref.hex, + circleSize = _ref.circleSize, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + circleSpacing = _ref.circleSpacing, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + display: 'flex', + flexWrap: 'wrap', + marginRight: -circleSpacing, + marginBottom: -circleSpacing + } + } + }, passedStyles)); + + var handleChange = function handleChange(hexCode, e) { + return onChange({ hex: hexCode, source: 'hex' }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'circle-picker ' + className }, + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_CircleSwatch2.default, { + key: c, + color: c, + onClick: handleChange, + onSwatchHover: onSwatchHover, + active: hex === c.toLowerCase(), + circleSize: circleSize, + circleSpacing: circleSpacing + }); + }) + ); +}; + +Circle.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + circleSize: _propTypes2.default.number, + circleSpacing: _propTypes2.default.number, + styles: _propTypes2.default.object +}; + +Circle.defaultProps = { + width: 252, + circleSize: 28, + circleSpacing: 14, + colors: [material.red['500'], material.pink['500'], material.purple['500'], material.deepPurple['500'], material.indigo['500'], material.blue['500'], material.lightBlue['500'], material.cyan['500'], material.teal['500'], material.green['500'], material.lightGreen['500'], material.lime['500'], material.yellow['500'], material.amber['500'], material.orange['500'], material.deepOrange['500'], material.brown['500'], material.blueGrey['500']], + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Circle); +},{"../common":329,"./CircleSwatch":320,"lodash/map":293,"lodash/merge":295,"material-colors":304,"prop-types":309,"react":"react","reactcss":374}],320:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CircleSwatch = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var CircleSwatch = exports.CircleSwatch = function CircleSwatch(_ref) { + var color = _ref.color, + onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover, + hover = _ref.hover, + active = _ref.active, + circleSize = _ref.circleSize, + circleSpacing = _ref.circleSpacing; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatch: { + width: circleSize, + height: circleSize, + marginRight: circleSpacing, + marginBottom: circleSpacing, + transform: 'scale(1)', + transition: '100ms transform ease' + }, + Swatch: { + borderRadius: '50%', + background: 'transparent', + boxShadow: 'inset 0 0 0 ' + (circleSize / 2 + 1) + 'px ' + color, + transition: '100ms box-shadow ease' + } + }, + 'hover': { + swatch: { + transform: 'scale(1.2)' + } + }, + 'active': { + Swatch: { + boxShadow: 'inset 0 0 0 3px ' + color + } + } + }, { hover: hover, active: active }); + + return _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_common.Swatch, { + style: styles.Swatch, + color: color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { boxShadow: styles.Swatch.boxShadow + ', 0 0 5px ' + color } + }) + ); +}; + +CircleSwatch.defaultProps = { + circleSize: 28, + circleSpacing: 14 +}; + +exports.default = (0, _reactcss.handleHover)(CircleSwatch); +},{"../common":329,"react":"react","reactcss":374}],321:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Alpha = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _alpha = require('../../helpers/alpha'); + +var alpha = _interopRequireWildcard(_alpha); + +var _Checkboard = require('./Checkboard'); + +var _Checkboard2 = _interopRequireDefault(_Checkboard); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Alpha = exports.Alpha = function (_ref) { + _inherits(Alpha, _ref); + + function Alpha() { + var _ref2; + + var _temp, _this, _ret; + + _classCallCheck(this, Alpha); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Alpha.__proto__ || Object.getPrototypeOf(Alpha)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) { + var change = alpha.calculateChange(e, _this.props.hsl, _this.props.direction, _this.props.a, _this.container); + change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e); + }, _this.handleMouseDown = function (e) { + _this.handleChange(e); + window.addEventListener('mousemove', _this.handleChange); + window.addEventListener('mouseup', _this.handleMouseUp); + }, _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }, _this.unbindEventListeners = function () { + window.removeEventListener('mousemove', _this.handleChange); + window.removeEventListener('mouseup', _this.handleMouseUp); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Alpha, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.unbindEventListeners(); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var rgb = this.props.rgb; + var styles = (0, _reactcss2.default)({ + 'default': { + alpha: { + absolute: '0px 0px 0px 0px', + borderRadius: this.props.radius + }, + checkboard: { + absolute: '0px 0px 0px 0px', + overflow: 'hidden', + borderRadius: this.props.radius + }, + gradient: { + absolute: '0px 0px 0px 0px', + background: 'linear-gradient(to right, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)', + boxShadow: this.props.shadow, + borderRadius: this.props.radius + }, + container: { + position: 'relative', + height: '100%', + margin: '0 3px' + }, + pointer: { + position: 'absolute', + left: rgb.a * 100 + '%' + }, + slider: { + width: '4px', + borderRadius: '1px', + height: '8px', + boxShadow: '0 0 2px rgba(0, 0, 0, .6)', + background: '#fff', + marginTop: '1px', + transform: 'translateX(-2px)' + } + }, + 'vertical': { + gradient: { + background: 'linear-gradient(to bottom, rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 0) 0%,\n rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ', 1) 100%)' + }, + pointer: { + left: 0, + top: rgb.a * 100 + '%' + } + }, + 'overwrite': _extends({}, this.props.style) + }, { + vertical: this.props.direction === 'vertical', + overwrite: true + }); + + return _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement( + 'div', + { style: styles.checkboard }, + _react2.default.createElement(_Checkboard2.default, { renderers: this.props.renderers }) + ), + _react2.default.createElement('div', { style: styles.gradient }), + _react2.default.createElement( + 'div', + { + style: styles.container, + ref: function ref(container) { + return _this2.container = container; + }, + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange + }, + _react2.default.createElement( + 'div', + { style: styles.pointer }, + this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider }) + ) + ) + ); + } + }]); + + return Alpha; +}(_react.PureComponent || _react.Component); + +exports.default = Alpha; +},{"../../helpers/alpha":359,"./Checkboard":322,"react":"react","reactcss":374}],322:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Checkboard = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _checkboard = require('../../helpers/checkboard'); + +var checkboard = _interopRequireWildcard(_checkboard); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Checkboard = exports.Checkboard = function Checkboard(_ref) { + var white = _ref.white, + grey = _ref.grey, + size = _ref.size, + renderers = _ref.renderers, + borderRadius = _ref.borderRadius, + boxShadow = _ref.boxShadow, + children = _ref.children; + + var styles = (0, _reactcss2.default)({ + 'default': { + grid: { + borderRadius: borderRadius, + boxShadow: boxShadow, + absolute: '0px 0px 0px 0px', + background: 'url(' + checkboard.get(white, grey, size, renderers.canvas) + ') center left' + } + } + }); + return (0, _react.isValidElement)(children) ? _react2.default.cloneElement(children, _extends({}, children.props, { style: _extends({}, children.props.style, styles.grid) })) : _react2.default.createElement('div', { style: styles.grid }); +}; + +Checkboard.defaultProps = { + size: 8, + white: 'transparent', + grey: 'rgba(0,0,0,.08)', + renderers: {} +}; + +exports.default = Checkboard; +},{"../../helpers/checkboard":360,"react":"react","reactcss":374}],323:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ColorWrap = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _debounce = require('lodash/debounce'); + +var _debounce2 = _interopRequireDefault(_debounce); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var ColorWrap = exports.ColorWrap = function ColorWrap(Picker) { + var ColorPicker = function (_ref) { + _inherits(ColorPicker, _ref); + + function ColorPicker(props) { + _classCallCheck(this, ColorPicker); + + var _this = _possibleConstructorReturn(this, (ColorPicker.__proto__ || Object.getPrototypeOf(ColorPicker)).call(this)); + + _this.handleChange = function (data, event) { + var isValidColor = color.simpleCheckForValidColor(data); + if (isValidColor) { + var colors = color.toState(data, data.h || _this.state.oldHue); + _this.setState(colors); + _this.props.onChangeComplete && _this.debounce(_this.props.onChangeComplete, colors, event); + _this.props.onChange && _this.props.onChange(colors, event); + } + }; + + _this.handleSwatchHover = function (data, event) { + var isValidColor = color.simpleCheckForValidColor(data); + if (isValidColor) { + var colors = color.toState(data, data.h || _this.state.oldHue); + _this.props.onSwatchHover && _this.props.onSwatchHover(colors, event); + } + }; + + _this.state = _extends({}, color.toState(props.color, 0)); + + _this.debounce = (0, _debounce2.default)(function (fn, data, event) { + fn(data, event); + }, 100); + return _this; + } + + _createClass(ColorPicker, [{ + key: 'render', + value: function render() { + var optionalEvents = {}; + if (this.props.onSwatchHover) { + optionalEvents.onSwatchHover = this.handleSwatchHover; + } + + return _react2.default.createElement(Picker, _extends({}, this.props, this.state, { + onChange: this.handleChange + }, optionalEvents)); + } + }], [{ + key: 'getDerivedStateFromProps', + value: function getDerivedStateFromProps(nextProps, state) { + return _extends({}, color.toState(nextProps.color, state.oldHue)); + } + }]); + + return ColorPicker; + }(_react.PureComponent || _react.Component); + + ColorPicker.propTypes = _extends({}, Picker.propTypes); + + ColorPicker.defaultProps = _extends({}, Picker.defaultProps, { + color: { + h: 250, + s: 0.50, + l: 0.20, + a: 1 + } + }); + + return ColorPicker; +}; + +exports.default = ColorWrap; +},{"../../helpers/color":361,"lodash/debounce":267,"react":"react"}],324:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.EditableInput = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var DEFAULT_ARROW_OFFSET = 1; + +var UP_KEY_CODE = 38; +var DOWN_KEY_CODE = 40; +var VALID_KEY_CODES = [UP_KEY_CODE, DOWN_KEY_CODE]; +var isValidKeyCode = function isValidKeyCode(keyCode) { + return VALID_KEY_CODES.indexOf(keyCode) > -1; +}; +var getNumberValue = function getNumberValue(value) { + return Number(String(value).replace(/%/g, '')); +}; + +var idCounter = 1; + +var EditableInput = exports.EditableInput = function (_ref) { + _inherits(EditableInput, _ref); + + function EditableInput(props) { + _classCallCheck(this, EditableInput); + + var _this = _possibleConstructorReturn(this, (EditableInput.__proto__ || Object.getPrototypeOf(EditableInput)).call(this)); + + _this.handleBlur = function () { + if (_this.state.blurValue) { + _this.setState({ value: _this.state.blurValue, blurValue: null }); + } + }; + + _this.handleChange = function (e) { + _this.setUpdatedValue(e.target.value, e); + }; + + _this.handleKeyDown = function (e) { + // In case `e.target.value` is a percentage remove the `%` character + // and update accordingly with a percentage + // https://github.com/casesandberg/react-color/issues/383 + var value = getNumberValue(e.target.value); + if (!isNaN(value) && isValidKeyCode(e.keyCode)) { + var offset = _this.getArrowOffset(); + var updatedValue = e.keyCode === UP_KEY_CODE ? value + offset : value - offset; + + _this.setUpdatedValue(updatedValue, e); + } + }; + + _this.handleDrag = function (e) { + if (_this.props.dragLabel) { + var newValue = Math.round(_this.props.value + e.movementX); + if (newValue >= 0 && newValue <= _this.props.dragMax) { + _this.props.onChange && _this.props.onChange(_this.getValueObjectWithLabel(newValue), e); + } + } + }; + + _this.handleMouseDown = function (e) { + if (_this.props.dragLabel) { + e.preventDefault(); + _this.handleDrag(e); + window.addEventListener('mousemove', _this.handleDrag); + window.addEventListener('mouseup', _this.handleMouseUp); + } + }; + + _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }; + + _this.unbindEventListeners = function () { + window.removeEventListener('mousemove', _this.handleDrag); + window.removeEventListener('mouseup', _this.handleMouseUp); + }; + + _this.state = { + value: String(props.value).toUpperCase(), + blurValue: String(props.value).toUpperCase() + }; + + _this.inputId = 'rc-editable-input-' + idCounter++; + return _this; + } + + _createClass(EditableInput, [{ + key: 'componentDidUpdate', + value: function componentDidUpdate(prevProps, prevState) { + if (this.props.value !== this.state.value && (prevProps.value !== this.props.value || prevState.value !== this.state.value)) { + if (this.input === document.activeElement) { + this.setState({ blurValue: String(this.props.value).toUpperCase() }); + } else { + this.setState({ value: String(this.props.value).toUpperCase(), blurValue: !this.state.blurValue && String(this.props.value).toUpperCase() }); + } + } + } + }, { + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.unbindEventListeners(); + } + }, { + key: 'getValueObjectWithLabel', + value: function getValueObjectWithLabel(value) { + return _defineProperty({}, this.props.label, value); + } + }, { + key: 'getArrowOffset', + value: function getArrowOffset() { + return this.props.arrowOffset || DEFAULT_ARROW_OFFSET; + } + }, { + key: 'setUpdatedValue', + value: function setUpdatedValue(value, e) { + var onChangeValue = this.props.label ? this.getValueObjectWithLabel(value) : value; + this.props.onChange && this.props.onChange(onChangeValue, e); + + this.setState({ value: value }); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var styles = (0, _reactcss2.default)({ + 'default': { + wrap: { + position: 'relative' + } + }, + 'user-override': { + wrap: this.props.style && this.props.style.wrap ? this.props.style.wrap : {}, + input: this.props.style && this.props.style.input ? this.props.style.input : {}, + label: this.props.style && this.props.style.label ? this.props.style.label : {} + }, + 'dragLabel-true': { + label: { + cursor: 'ew-resize' + } + } + }, { + 'user-override': true + }, this.props); + + return _react2.default.createElement( + 'div', + { style: styles.wrap }, + _react2.default.createElement('input', { + id: this.inputId, + style: styles.input, + ref: function ref(input) { + return _this2.input = input; + }, + value: this.state.value, + onKeyDown: this.handleKeyDown, + onChange: this.handleChange, + onBlur: this.handleBlur, + placeholder: this.props.placeholder, + spellCheck: 'false' + }), + this.props.label && !this.props.hideLabel ? _react2.default.createElement( + 'label', + { + htmlFor: this.inputId, + style: styles.label, + onMouseDown: this.handleMouseDown + }, + this.props.label + ) : null + ); + } + }]); + + return EditableInput; +}(_react.PureComponent || _react.Component); + +exports.default = EditableInput; +},{"react":"react","reactcss":374}],325:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Hue = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _hue = require('../../helpers/hue'); + +var hue = _interopRequireWildcard(_hue); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Hue = exports.Hue = function (_ref) { + _inherits(Hue, _ref); + + function Hue() { + var _ref2; + + var _temp, _this, _ret; + + _classCallCheck(this, Hue); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref2 = Hue.__proto__ || Object.getPrototypeOf(Hue)).call.apply(_ref2, [this].concat(args))), _this), _this.handleChange = function (e) { + var change = hue.calculateChange(e, _this.props.direction, _this.props.hsl, _this.container); + change && typeof _this.props.onChange === 'function' && _this.props.onChange(change, e); + }, _this.handleMouseDown = function (e) { + _this.handleChange(e); + window.addEventListener('mousemove', _this.handleChange); + window.addEventListener('mouseup', _this.handleMouseUp); + }, _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Hue, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.unbindEventListeners(); + } + }, { + key: 'unbindEventListeners', + value: function unbindEventListeners() { + window.removeEventListener('mousemove', this.handleChange); + window.removeEventListener('mouseup', this.handleMouseUp); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _props$direction = this.props.direction, + direction = _props$direction === undefined ? 'horizontal' : _props$direction; + + + var styles = (0, _reactcss2.default)({ + 'default': { + hue: { + absolute: '0px 0px 0px 0px', + borderRadius: this.props.radius, + boxShadow: this.props.shadow + }, + container: { + padding: '0 2px', + position: 'relative', + height: '100%', + borderRadius: this.props.radius + }, + pointer: { + position: 'absolute', + left: this.props.hsl.h * 100 / 360 + '%' + }, + slider: { + marginTop: '1px', + width: '4px', + borderRadius: '1px', + height: '8px', + boxShadow: '0 0 2px rgba(0, 0, 0, .6)', + background: '#fff', + transform: 'translateX(-2px)' + } + }, + 'vertical': { + pointer: { + left: '0px', + top: -(this.props.hsl.h * 100 / 360) + 100 + '%' + } + } + }, { vertical: direction === 'vertical' }); + + return _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement( + 'div', + { + className: 'hue-' + direction, + style: styles.container, + ref: function ref(container) { + return _this2.container = container; + }, + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange + }, + _react2.default.createElement( + 'style', + null, + '\n .hue-horizontal {\n background: linear-gradient(to right, #f00 0%, #ff0 17%, #0f0\n 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to right, #f00 0%, #ff0\n 17%, #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n\n .hue-vertical {\n background: linear-gradient(to top, #f00 0%, #ff0 17%, #0f0 33%,\n #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n background: -webkit-linear-gradient(to top, #f00 0%, #ff0 17%,\n #0f0 33%, #0ff 50%, #00f 67%, #f0f 83%, #f00 100%);\n }\n ' + ), + _react2.default.createElement( + 'div', + { style: styles.pointer }, + this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.slider }) + ) + ) + ); + } + }]); + + return Hue; +}(_react.PureComponent || _react.Component); + +exports.default = Hue; +},{"../../helpers/hue":362,"react":"react","reactcss":374}],326:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Raised = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Raised = exports.Raised = function Raised(_ref) { + var zDepth = _ref.zDepth, + radius = _ref.radius, + background = _ref.background, + children = _ref.children, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + wrap: { + position: 'relative', + display: 'inline-block' + }, + content: { + position: 'relative' + }, + bg: { + absolute: '0px 0px 0px 0px', + boxShadow: '0 ' + zDepth + 'px ' + zDepth * 4 + 'px rgba(0,0,0,.24)', + borderRadius: radius, + background: background + } + }, + 'zDepth-0': { + bg: { + boxShadow: 'none' + } + }, + + 'zDepth-1': { + bg: { + boxShadow: '0 2px 10px rgba(0,0,0,.12), 0 2px 5px rgba(0,0,0,.16)' + } + }, + 'zDepth-2': { + bg: { + boxShadow: '0 6px 20px rgba(0,0,0,.19), 0 8px 17px rgba(0,0,0,.2)' + } + }, + 'zDepth-3': { + bg: { + boxShadow: '0 17px 50px rgba(0,0,0,.19), 0 12px 15px rgba(0,0,0,.24)' + } + }, + 'zDepth-4': { + bg: { + boxShadow: '0 25px 55px rgba(0,0,0,.21), 0 16px 28px rgba(0,0,0,.22)' + } + }, + 'zDepth-5': { + bg: { + boxShadow: '0 40px 77px rgba(0,0,0,.22), 0 27px 24px rgba(0,0,0,.2)' + } + }, + 'square': { + bg: { + borderRadius: '0' + } + }, + 'circle': { + bg: { + borderRadius: '50%' + } + } + }, passedStyles), { 'zDepth-1': zDepth === 1 }); + + return _react2.default.createElement( + 'div', + { style: styles.wrap }, + _react2.default.createElement('div', { style: styles.bg }), + _react2.default.createElement( + 'div', + { style: styles.content }, + children + ) + ); +}; + +Raised.propTypes = { + background: _propTypes2.default.string, + zDepth: _propTypes2.default.oneOf([0, 1, 2, 3, 4, 5]), + radius: _propTypes2.default.number, + styles: _propTypes2.default.object +}; + +Raised.defaultProps = { + background: '#fff', + zDepth: 1, + radius: 2, + styles: {} +}; + +exports.default = Raised; +},{"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],327:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Saturation = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _throttle = require('lodash/throttle'); + +var _throttle2 = _interopRequireDefault(_throttle); + +var _saturation = require('../../helpers/saturation'); + +var saturation = _interopRequireWildcard(_saturation); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Saturation = exports.Saturation = function (_ref) { + _inherits(Saturation, _ref); + + function Saturation(props) { + _classCallCheck(this, Saturation); + + var _this = _possibleConstructorReturn(this, (Saturation.__proto__ || Object.getPrototypeOf(Saturation)).call(this, props)); + + _this.handleChange = function (e) { + typeof _this.props.onChange === 'function' && _this.throttle(_this.props.onChange, saturation.calculateChange(e, _this.props.hsl, _this.container), e); + }; + + _this.handleMouseDown = function (e) { + _this.handleChange(e); + var renderWindow = _this.getContainerRenderWindow(); + renderWindow.addEventListener('mousemove', _this.handleChange); + renderWindow.addEventListener('mouseup', _this.handleMouseUp); + }; + + _this.handleMouseUp = function () { + _this.unbindEventListeners(); + }; + + _this.throttle = (0, _throttle2.default)(function (fn, data, e) { + fn(data, e); + }, 50); + return _this; + } + + _createClass(Saturation, [{ + key: 'componentWillUnmount', + value: function componentWillUnmount() { + this.throttle.cancel(); + this.unbindEventListeners(); + } + }, { + key: 'getContainerRenderWindow', + value: function getContainerRenderWindow() { + var container = this.container; + + var renderWindow = window; + while (!renderWindow.document.contains(container) && renderWindow.parent !== renderWindow) { + renderWindow = renderWindow.parent; + } + return renderWindow; + } + }, { + key: 'unbindEventListeners', + value: function unbindEventListeners() { + var renderWindow = this.getContainerRenderWindow(); + renderWindow.removeEventListener('mousemove', this.handleChange); + renderWindow.removeEventListener('mouseup', this.handleMouseUp); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var _ref2 = this.props.style || {}, + color = _ref2.color, + white = _ref2.white, + black = _ref2.black, + pointer = _ref2.pointer, + circle = _ref2.circle; + + var styles = (0, _reactcss2.default)({ + 'default': { + color: { + absolute: '0px 0px 0px 0px', + background: 'hsl(' + this.props.hsl.h + ',100%, 50%)', + borderRadius: this.props.radius + }, + white: { + absolute: '0px 0px 0px 0px', + borderRadius: this.props.radius + }, + black: { + absolute: '0px 0px 0px 0px', + boxShadow: this.props.shadow, + borderRadius: this.props.radius + }, + pointer: { + position: 'absolute', + top: -(this.props.hsv.v * 100) + 100 + '%', + left: this.props.hsv.s * 100 + '%', + cursor: 'default' + }, + circle: { + width: '4px', + height: '4px', + boxShadow: '0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0,0,0,.3),\n 0 0 1px 2px rgba(0,0,0,.4)', + borderRadius: '50%', + cursor: 'hand', + transform: 'translate(-2px, -2px)' + } + }, + 'custom': { + color: color, + white: white, + black: black, + pointer: pointer, + circle: circle + } + }, { 'custom': !!this.props.style }); + + return _react2.default.createElement( + 'div', + { + style: styles.color, + ref: function ref(container) { + return _this2.container = container; + }, + onMouseDown: this.handleMouseDown, + onTouchMove: this.handleChange, + onTouchStart: this.handleChange + }, + _react2.default.createElement( + 'style', + null, + '\n .saturation-white {\n background: -webkit-linear-gradient(to right, #fff, rgba(255,255,255,0));\n background: linear-gradient(to right, #fff, rgba(255,255,255,0));\n }\n .saturation-black {\n background: -webkit-linear-gradient(to top, #000, rgba(0,0,0,0));\n background: linear-gradient(to top, #000, rgba(0,0,0,0));\n }\n ' + ), + _react2.default.createElement( + 'div', + { style: styles.white, className: 'saturation-white' }, + _react2.default.createElement('div', { style: styles.black, className: 'saturation-black' }), + _react2.default.createElement( + 'div', + { style: styles.pointer }, + this.props.pointer ? _react2.default.createElement(this.props.pointer, this.props) : _react2.default.createElement('div', { style: styles.circle }) + ) + ) + ); + } + }]); + + return Saturation; +}(_react.PureComponent || _react.Component); + +exports.default = Saturation; +},{"../../helpers/saturation":364,"lodash/throttle":300,"react":"react","reactcss":374}],328:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Swatch = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _interaction = require('../../helpers/interaction'); + +var _Checkboard = require('./Checkboard'); + +var _Checkboard2 = _interopRequireDefault(_Checkboard); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var ENTER = 13; + +var Swatch = exports.Swatch = function Swatch(_ref) { + var color = _ref.color, + style = _ref.style, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onHover = _ref.onHover, + _ref$title = _ref.title, + title = _ref$title === undefined ? color : _ref$title, + children = _ref.children, + focus = _ref.focus, + _ref$focusStyle = _ref.focusStyle, + focusStyle = _ref$focusStyle === undefined ? {} : _ref$focusStyle; + + var transparent = color === 'transparent'; + var styles = (0, _reactcss2.default)({ + default: { + swatch: _extends({ + background: color, + height: '100%', + width: '100%', + cursor: 'pointer', + position: 'relative', + outline: 'none' + }, style, focus ? focusStyle : {}) + } + }); + + var handleClick = function handleClick(e) { + return onClick(color, e); + }; + var handleKeyDown = function handleKeyDown(e) { + return e.keyCode === ENTER && onClick(color, e); + }; + var handleHover = function handleHover(e) { + return onHover(color, e); + }; + + var optionalEvents = {}; + if (onHover) { + optionalEvents.onMouseOver = handleHover; + } + + return _react2.default.createElement( + 'div', + _extends({ + style: styles.swatch, + onClick: handleClick, + title: title, + tabIndex: 0, + onKeyDown: handleKeyDown + }, optionalEvents), + children, + transparent && _react2.default.createElement(_Checkboard2.default, { + borderRadius: styles.swatch.borderRadius, + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,0.1)' + }) + ); +}; + +exports.default = (0, _interaction.handleFocus)(Swatch); +},{"../../helpers/interaction":363,"./Checkboard":322,"react":"react","reactcss":374}],329:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Alpha = require('./Alpha'); + +Object.defineProperty(exports, 'Alpha', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Alpha).default; + } +}); + +var _Checkboard = require('./Checkboard'); + +Object.defineProperty(exports, 'Checkboard', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Checkboard).default; + } +}); + +var _EditableInput = require('./EditableInput'); + +Object.defineProperty(exports, 'EditableInput', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_EditableInput).default; + } +}); + +var _Hue = require('./Hue'); + +Object.defineProperty(exports, 'Hue', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Hue).default; + } +}); + +var _Raised = require('./Raised'); + +Object.defineProperty(exports, 'Raised', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Raised).default; + } +}); + +var _Saturation = require('./Saturation'); + +Object.defineProperty(exports, 'Saturation', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Saturation).default; + } +}); + +var _ColorWrap = require('./ColorWrap'); + +Object.defineProperty(exports, 'ColorWrap', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ColorWrap).default; + } +}); + +var _Swatch = require('./Swatch'); + +Object.defineProperty(exports, 'Swatch', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Swatch).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +},{"./Alpha":321,"./Checkboard":322,"./ColorWrap":323,"./EditableInput":324,"./Hue":325,"./Raised":326,"./Saturation":327,"./Swatch":328}],330:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Compact = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +var _CompactColor = require('./CompactColor'); + +var _CompactColor2 = _interopRequireDefault(_CompactColor); + +var _CompactFields = require('./CompactFields'); + +var _CompactFields2 = _interopRequireDefault(_CompactFields); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Compact = exports.Compact = function Compact(_ref) { + var onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + colors = _ref.colors, + hex = _ref.hex, + rgb = _ref.rgb, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + Compact: { + background: '#f6f6f6', + radius: '4px' + }, + compact: { + paddingTop: '5px', + paddingLeft: '5px', + boxSizing: 'initial', + width: '240px' + }, + clear: { + clear: 'both' + } + } + }, passedStyles)); + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else { + onChange(data, e); + } + }; + + return _react2.default.createElement( + _common.Raised, + { style: styles.Compact, styles: passedStyles }, + _react2.default.createElement( + 'div', + { style: styles.compact, className: 'compact-picker ' + className }, + _react2.default.createElement( + 'div', + null, + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_CompactColor2.default, { + key: c, + color: c, + active: c.toLowerCase() === hex, + onClick: handleChange, + onSwatchHover: onSwatchHover + }); + }), + _react2.default.createElement('div', { style: styles.clear }) + ), + _react2.default.createElement(_CompactFields2.default, { hex: hex, rgb: rgb, onChange: handleChange }) + ) + ); +}; + +Compact.propTypes = { + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + styles: _propTypes2.default.object +}; + +Compact.defaultProps = { + colors: ['#4D4D4D', '#999999', '#FFFFFF', '#F44E3B', '#FE9200', '#FCDC00', '#DBDF00', '#A4DD00', '#68CCCA', '#73D8FF', '#AEA1FF', '#FDA1FF', '#333333', '#808080', '#cccccc', '#D33115', '#E27300', '#FCC400', '#B0BC00', '#68BC00', '#16A5A5', '#009CE0', '#7B64FF', '#FA28FF', '#000000', '#666666', '#B3B3B3', '#9F0500', '#C45100', '#FB9E00', '#808900', '#194D33', '#0C797D', '#0062B1', '#653294', '#AB149E'], + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Compact); +},{"../../helpers/color":361,"../common":329,"./CompactColor":331,"./CompactFields":332,"lodash/map":293,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],331:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CompactColor = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var colorUtils = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var CompactColor = exports.CompactColor = function CompactColor(_ref) { + var color = _ref.color, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onSwatchHover = _ref.onSwatchHover, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + color: { + background: color, + width: '15px', + height: '15px', + float: 'left', + marginRight: '5px', + marginBottom: '5px', + position: 'relative', + cursor: 'pointer' + }, + dot: { + absolute: '5px 5px 5px 5px', + background: colorUtils.getContrastingColor(color), + borderRadius: '50%', + opacity: '0' + } + }, + 'active': { + dot: { + opacity: '1' + } + }, + 'color-#FFFFFF': { + color: { + boxShadow: 'inset 0 0 0 1px #ddd' + }, + dot: { + background: '#000' + } + }, + 'transparent': { + dot: { + background: '#000' + } + } + }, { active: active, 'color-#FFFFFF': color === '#FFFFFF', 'transparent': color === 'transparent' }); + + return _react2.default.createElement( + _common.Swatch, + { + style: styles.color, + color: color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { boxShadow: '0 0 4px ' + color } + }, + _react2.default.createElement('div', { style: styles.dot }) + ); +}; + +exports.default = CompactColor; +},{"../../helpers/color":361,"../common":329,"react":"react","reactcss":374}],332:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CompactFields = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var CompactFields = exports.CompactFields = function CompactFields(_ref) { + var hex = _ref.hex, + rgb = _ref.rgb, + onChange = _ref.onChange; + + var styles = (0, _reactcss2.default)({ + 'default': { + fields: { + display: 'flex', + paddingBottom: '6px', + paddingRight: '5px', + position: 'relative' + }, + active: { + position: 'absolute', + top: '6px', + left: '5px', + height: '9px', + width: '9px', + background: hex + }, + HEXwrap: { + flex: '6', + position: 'relative' + }, + HEXinput: { + width: '80%', + padding: '0px', + paddingLeft: '20%', + border: 'none', + outline: 'none', + background: 'none', + fontSize: '12px', + color: '#333', + height: '16px' + }, + HEXlabel: { + display: 'none' + }, + RGBwrap: { + flex: '3', + position: 'relative' + }, + RGBinput: { + width: '70%', + padding: '0px', + paddingLeft: '30%', + border: 'none', + outline: 'none', + background: 'none', + fontSize: '12px', + color: '#333', + height: '16px' + }, + RGBlabel: { + position: 'absolute', + top: '3px', + left: '0px', + lineHeight: '16px', + textTransform: 'uppercase', + fontSize: '12px', + color: '#999' + } + } + }); + + var handleChange = function handleChange(data, e) { + if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + source: 'rgb' + }, e); + } else { + onChange({ + hex: data.hex, + source: 'hex' + }, e); + } + }; + + return _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement('div', { style: styles.active }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel }, + label: 'hex', + value: hex, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'r', + value: rgb.r, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'g', + value: rgb.g, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'b', + value: rgb.b, + onChange: handleChange + }) + ); +}; + +exports.default = CompactFields; +},{"../common":329,"react":"react","reactcss":374}],333:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Github = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _GithubSwatch = require('./GithubSwatch'); + +var _GithubSwatch2 = _interopRequireDefault(_GithubSwatch); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Github = exports.Github = function Github(_ref) { + var width = _ref.width, + colors = _ref.colors, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + triangle = _ref.triangle, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + background: '#fff', + border: '1px solid rgba(0,0,0,0.2)', + boxShadow: '0 3px 12px rgba(0,0,0,0.15)', + borderRadius: '4px', + position: 'relative', + padding: '5px', + display: 'flex', + flexWrap: 'wrap' + }, + triangle: { + position: 'absolute', + border: '7px solid transparent', + borderBottomColor: '#fff' + }, + triangleShadow: { + position: 'absolute', + border: '8px solid transparent', + borderBottomColor: 'rgba(0,0,0,0.15)' + } + }, + 'hide-triangle': { + triangle: { + display: 'none' + }, + triangleShadow: { + display: 'none' + } + }, + 'top-left-triangle': { + triangle: { + top: '-14px', + left: '10px' + }, + triangleShadow: { + top: '-16px', + left: '9px' + } + }, + 'top-right-triangle': { + triangle: { + top: '-14px', + right: '10px' + }, + triangleShadow: { + top: '-16px', + right: '9px' + } + }, + 'bottom-left-triangle': { + triangle: { + top: '35px', + left: '10px', + transform: 'rotate(180deg)' + }, + triangleShadow: { + top: '37px', + left: '9px', + transform: 'rotate(180deg)' + } + }, + 'bottom-right-triangle': { + triangle: { + top: '35px', + right: '10px', + transform: 'rotate(180deg)' + }, + triangleShadow: { + top: '37px', + right: '9px', + transform: 'rotate(180deg)' + } + } + }, passedStyles), { + 'hide-triangle': triangle === 'hide', + 'top-left-triangle': triangle === 'top-left', + 'top-right-triangle': triangle === 'top-right', + 'bottom-left-triangle': triangle === 'bottom-left', + 'bottom-right-triangle': triangle === 'bottom-right' + }); + + var handleChange = function handleChange(hex, e) { + return onChange({ hex: hex, source: 'hex' }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'github-picker ' + className }, + _react2.default.createElement('div', { style: styles.triangleShadow }), + _react2.default.createElement('div', { style: styles.triangle }), + (0, _map2.default)(colors, function (c) { + return _react2.default.createElement(_GithubSwatch2.default, { + color: c, + key: c, + onClick: handleChange, + onSwatchHover: onSwatchHover + }); + }) + ); +}; + +Github.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right', 'bottom-left', 'bottom-right']), + styles: _propTypes2.default.object +}; + +Github.defaultProps = { + width: 200, + colors: ['#B80000', '#DB3E00', '#FCCB00', '#008B02', '#006B76', '#1273DE', '#004DCF', '#5300EB', '#EB9694', '#FAD0C3', '#FEF3BD', '#C1E1C5', '#BEDADC', '#C4DEF6', '#BED3F3', '#D4C4FB'], + triangle: 'top-left', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Github); +},{"../common":329,"./GithubSwatch":334,"lodash/map":293,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],334:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GithubSwatch = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GithubSwatch = exports.GithubSwatch = function GithubSwatch(_ref) { + var hover = _ref.hover, + color = _ref.color, + onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover; + + var hoverSwatch = { + position: 'relative', + zIndex: '2', + outline: '2px solid #fff', + boxShadow: '0 0 5px 2px rgba(0,0,0,0.25)' + }; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatch: { + width: '25px', + height: '25px', + fontSize: '0' + } + }, + 'hover': { + swatch: hoverSwatch + } + }, { hover: hover }); + + return _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_common.Swatch, { + color: color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: hoverSwatch + }) + ); +}; + +exports.default = (0, _reactcss.handleHover)(GithubSwatch); +},{"../common":329,"react":"react","reactcss":374}],335:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Google = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _GooglePointerCircle = require('./GooglePointerCircle'); + +var _GooglePointerCircle2 = _interopRequireDefault(_GooglePointerCircle); + +var _GooglePointer = require('./GooglePointer'); + +var _GooglePointer2 = _interopRequireDefault(_GooglePointer); + +var _GoogleFields = require('./GoogleFields'); + +var _GoogleFields2 = _interopRequireDefault(_GoogleFields); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Google = exports.Google = function Google(_ref) { + var width = _ref.width, + onChange = _ref.onChange, + rgb = _ref.rgb, + hsl = _ref.hsl, + hsv = _ref.hsv, + hex = _ref.hex, + header = _ref.header, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + width: width, + background: '#fff', + border: '1px solid #dfe1e5', + boxSizing: 'initial', + display: 'flex', + flexWrap: 'wrap', + borderRadius: '8px 8px 0px 0px' + }, + head: { + height: '57px', + width: '100%', + paddingTop: '16px', + paddingBottom: '16px', + paddingLeft: '16px', + fontSize: '20px', + boxSizing: 'border-box', + fontFamily: 'Roboto-Regular,HelveticaNeue,Arial,sans-serif' + }, + saturation: { + width: '70%', + padding: '0px', + position: 'relative', + overflow: 'hidden' + }, + swatch: { + width: '30%', + height: '228px', + padding: '0px', + background: 'rgba(' + rgb.r + ', ' + rgb.g + ', ' + rgb.b + ', 1)', + position: 'relative', + overflow: 'hidden' + }, + body: { + margin: 'auto', + width: '95%' + }, + controls: { + display: 'flex', + boxSizing: 'border-box', + height: '52px', + paddingTop: '22px' + }, + color: { + width: '32px' + }, + hue: { + height: '8px', + position: 'relative', + margin: '0px 16px 0px 16px', + width: '100%' + }, + Hue: { + radius: '2px' + } + } + }, passedStyles)); + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'google-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.head }, + header + ), + _react2.default.createElement('div', { style: styles.swatch }), + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + hsl: hsl, + hsv: hsv, + pointer: _GooglePointerCircle2.default, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.body }, + _react2.default.createElement( + 'div', + { style: styles.controls, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + radius: '4px', + pointer: _GooglePointer2.default, + onChange: onChange + }) + ) + ), + _react2.default.createElement(_GoogleFields2.default, { + rgb: rgb, + hsl: hsl, + hex: hex, + hsv: hsv, + onChange: onChange + }) + ) + ); +}; + +Google.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + styles: _propTypes2.default.object, + header: _propTypes2.default.string + +}; + +Google.defaultProps = { + width: 652, + styles: {}, + header: 'Color picker' +}; + +exports.default = (0, _common.ColorWrap)(Google); +},{"../common":329,"./GoogleFields":336,"./GooglePointer":337,"./GooglePointerCircle":338,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],336:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GoogleFields = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GoogleFields = exports.GoogleFields = function GoogleFields(_ref) { + var onChange = _ref.onChange, + rgb = _ref.rgb, + hsl = _ref.hsl, + hex = _ref.hex, + hsv = _ref.hsv; + + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.rgb) { + var values = data.rgb.split(','); + color.isvalidColorString(data.rgb, 'rgb') && onChange({ + r: values[0], + g: values[1], + b: values[2], + a: 1, + source: 'rgb' + }, e); + } else if (data.hsv) { + var _values = data.hsv.split(','); + if (color.isvalidColorString(data.hsv, 'hsv')) { + _values[2] = _values[2].replace('%', ''); + _values[1] = _values[1].replace('%', ''); + _values[0] = _values[0].replace('°', ''); + if (_values[1] == 1) { + _values[1] = 0.01; + } else if (_values[2] == 1) { + _values[2] = 0.01; + } + onChange({ + h: Number(_values[0]), + s: Number(_values[1]), + v: Number(_values[2]), + source: 'hsv' + }, e); + } + } else if (data.hsl) { + var _values2 = data.hsl.split(','); + if (color.isvalidColorString(data.hsl, 'hsl')) { + _values2[2] = _values2[2].replace('%', ''); + _values2[1] = _values2[1].replace('%', ''); + _values2[0] = _values2[0].replace('°', ''); + if (hsvValue[1] == 1) { + hsvValue[1] = 0.01; + } else if (hsvValue[2] == 1) { + hsvValue[2] = 0.01; + } + onChange({ + h: Number(_values2[0]), + s: Number(_values2[1]), + v: Number(_values2[2]), + source: 'hsl' + }, e); + } + } + }; + + var styles = (0, _reactcss2.default)({ + 'default': { + wrap: { + display: 'flex', + height: '100px', + marginTop: '4px' + }, + fields: { + width: '100%' + }, + column: { + paddingTop: '10px', + display: 'flex', + justifyContent: 'space-between' + }, + double: { + padding: '0px 4.4px', + boxSizing: 'border-box' + }, + input: { + width: '100%', + height: '38px', + boxSizing: 'border-box', + padding: '4px 10% 3px', + textAlign: 'center', + border: '1px solid #dadce0', + fontSize: '11px', + textTransform: 'lowercase', + borderRadius: '5px', + outline: 'none', + fontFamily: 'Roboto,Arial,sans-serif' + }, + input2: { + height: '38px', + width: '100%', + border: '1px solid #dadce0', + boxSizing: 'border-box', + fontSize: '11px', + textTransform: 'lowercase', + borderRadius: '5px', + outline: 'none', + paddingLeft: '10px', + fontFamily: 'Roboto,Arial,sans-serif' + }, + label: { + textAlign: 'center', + fontSize: '12px', + background: '#fff', + position: 'absolute', + textTransform: 'uppercase', + color: '#3c4043', + width: '35px', + top: '-6px', + left: '0', + right: '0', + marginLeft: 'auto', + marginRight: 'auto', + fontFamily: 'Roboto,Arial,sans-serif' + }, + label2: { + left: '10px', + textAlign: 'center', + fontSize: '12px', + background: '#fff', + position: 'absolute', + textTransform: 'uppercase', + color: '#3c4043', + width: '32px', + top: '-6px', + fontFamily: 'Roboto,Arial,sans-serif' + }, + single: { + flexGrow: '1', + margin: '0px 4.4px' + } + } + }); + + var rgbValue = rgb.r + ', ' + rgb.g + ', ' + rgb.b; + var hslValue = Math.round(hsl.h) + '\xB0, ' + Math.round(hsl.s * 100) + '%, ' + Math.round(hsl.l * 100) + '%'; + var hsvValue = Math.round(hsv.h) + '\xB0, ' + Math.round(hsv.s * 100) + '%, ' + Math.round(hsv.v * 100) + '%'; + + return _react2.default.createElement( + 'div', + { style: styles.wrap, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.fields }, + _react2.default.createElement( + 'div', + { style: styles.double }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'hex', + value: hex, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.column }, + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input2, label: styles.label2 }, + label: 'rgb', + value: rgbValue, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input2, label: styles.label2 }, + label: 'hsv', + value: hsvValue, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input2, label: styles.label2 }, + label: 'hsl', + value: hslValue, + onChange: handleChange + }) + ) + ) + ) + ); +}; + +exports.default = GoogleFields; +},{"../../helpers/color":361,"../common":329,"react":"react","reactcss":374}],337:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GooglePointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GooglePointer = exports.GooglePointer = function GooglePointer(props) { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '20px', + height: '20px', + borderRadius: '22px', + transform: 'translate(-10px, -7px)', + background: 'hsl(' + Math.round(props.hsl.h) + ', 100%, 50%)', + border: '2px white solid' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +GooglePointer.propTypes = { + hsl: _propTypes2.default.shape({ + h: _propTypes2.default.number, + s: _propTypes2.default.number, + l: _propTypes2.default.number, + a: _propTypes2.default.number + }) +}; + +GooglePointer.defaultProps = { + hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 } +}; + +exports.default = GooglePointer; +},{"prop-types":309,"react":"react","reactcss":374}],338:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.GooglePointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var GooglePointerCircle = exports.GooglePointerCircle = function GooglePointerCircle(props) { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '20px', + height: '20px', + borderRadius: '22px', + border: '2px #fff solid', + transform: 'translate(-12px, -13px)', + background: 'hsl(' + Math.round(props.hsl.h) + ', ' + Math.round(props.hsl.s * 100) + '%, ' + Math.round(props.hsl.l * 100) + '%)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +GooglePointerCircle.propTypes = { + hsl: _propTypes2.default.shape({ + h: _propTypes2.default.number, + s: _propTypes2.default.number, + l: _propTypes2.default.number, + a: _propTypes2.default.number + }) +}; + +GooglePointerCircle.defaultProps = { + hsl: { a: 1, h: 249.94, l: 0.2, s: 0.50 } +}; + +exports.default = GooglePointerCircle; +},{"prop-types":309,"react":"react","reactcss":374}],339:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.HuePicker = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _HuePointer = require('./HuePointer'); + +var _HuePointer2 = _interopRequireDefault(_HuePointer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var HuePicker = exports.HuePicker = function HuePicker(_ref) { + var width = _ref.width, + height = _ref.height, + onChange = _ref.onChange, + hsl = _ref.hsl, + direction = _ref.direction, + pointer = _ref.pointer, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + position: 'relative', + width: width, + height: height + }, + hue: { + radius: '2px' + } + } + }, passedStyles)); + + // Overwrite to provide pure hue color + var handleChange = function handleChange(data) { + return onChange({ a: 1, h: data.h, l: 0.5, s: 1 }); + }; + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'hue-picker ' + className }, + _react2.default.createElement(_common.Hue, _extends({}, styles.hue, { + hsl: hsl, + pointer: pointer, + onChange: handleChange, + direction: direction + })) + ); +}; + +HuePicker.propTypes = { + styles: _propTypes2.default.object +}; +HuePicker.defaultProps = { + width: '316px', + height: '16px', + direction: 'horizontal', + pointer: _HuePointer2.default, + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(HuePicker); +},{"../common":329,"./HuePointer":340,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],340:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderPointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderPointer = exports.SliderPointer = function SliderPointer(_ref) { + var direction = _ref.direction; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '18px', + height: '18px', + borderRadius: '50%', + transform: 'translate(-9px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + }, + 'vertical': { + picker: { + transform: 'translate(-3px, -9px)' + } + } + }, { vertical: direction === 'vertical' }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = SliderPointer; +},{"react":"react","reactcss":374}],341:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Material = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Material = exports.Material = function Material(_ref) { + var onChange = _ref.onChange, + hex = _ref.hex, + rgb = _ref.rgb, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + material: { + width: '98px', + height: '98px', + padding: '16px', + fontFamily: 'Roboto' + }, + HEXwrap: { + position: 'relative' + }, + HEXinput: { + width: '100%', + marginTop: '12px', + fontSize: '15px', + color: '#333', + padding: '0px', + border: '0px', + borderBottom: '2px solid ' + hex, + outline: 'none', + height: '30px' + }, + HEXlabel: { + position: 'absolute', + top: '0px', + left: '0px', + fontSize: '11px', + color: '#999999', + textTransform: 'capitalize' + }, + Hex: { + style: {} + }, + RGBwrap: { + position: 'relative' + }, + RGBinput: { + width: '100%', + marginTop: '12px', + fontSize: '15px', + color: '#333', + padding: '0px', + border: '0px', + borderBottom: '1px solid #eee', + outline: 'none', + height: '30px' + }, + RGBlabel: { + position: 'absolute', + top: '0px', + left: '0px', + fontSize: '11px', + color: '#999999', + textTransform: 'capitalize' + }, + split: { + display: 'flex', + marginRight: '-10px', + paddingTop: '11px' + }, + third: { + flex: '1', + paddingRight: '10px' + } + } + }, passedStyles)); + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + source: 'rgb' + }, e); + } + }; + + return _react2.default.createElement( + _common.Raised, + { styles: passedStyles }, + _react2.default.createElement( + 'div', + { style: styles.material, className: 'material-picker ' + className }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel }, + label: 'hex', + value: hex, + onChange: handleChange + }), + _react2.default.createElement( + 'div', + { style: styles.split, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.third }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'r', value: rgb.r, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.third }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'g', + value: rgb.g, + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.third }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'b', + value: rgb.b, + onChange: handleChange + }) + ) + ) + ) + ); +}; + +exports.default = (0, _common.ColorWrap)(Material); +},{"../../helpers/color":361,"../common":329,"lodash/merge":295,"react":"react","reactcss":374}],342:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Photoshop = undefined; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _PhotoshopFields = require('./PhotoshopFields'); + +var _PhotoshopFields2 = _interopRequireDefault(_PhotoshopFields); + +var _PhotoshopPointerCircle = require('./PhotoshopPointerCircle'); + +var _PhotoshopPointerCircle2 = _interopRequireDefault(_PhotoshopPointerCircle); + +var _PhotoshopPointer = require('./PhotoshopPointer'); + +var _PhotoshopPointer2 = _interopRequireDefault(_PhotoshopPointer); + +var _PhotoshopButton = require('./PhotoshopButton'); + +var _PhotoshopButton2 = _interopRequireDefault(_PhotoshopButton); + +var _PhotoshopPreviews = require('./PhotoshopPreviews'); + +var _PhotoshopPreviews2 = _interopRequireDefault(_PhotoshopPreviews); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var Photoshop = exports.Photoshop = function (_React$Component) { + _inherits(Photoshop, _React$Component); + + function Photoshop(props) { + _classCallCheck(this, Photoshop); + + var _this = _possibleConstructorReturn(this, (Photoshop.__proto__ || Object.getPrototypeOf(Photoshop)).call(this)); + + _this.state = { + currentColor: props.hex + }; + return _this; + } + + _createClass(Photoshop, [{ + key: 'render', + value: function render() { + var _props = this.props, + _props$styles = _props.styles, + passedStyles = _props$styles === undefined ? {} : _props$styles, + _props$className = _props.className, + className = _props$className === undefined ? '' : _props$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + background: '#DCDCDC', + borderRadius: '4px', + boxShadow: '0 0 0 1px rgba(0,0,0,.25), 0 8px 16px rgba(0,0,0,.15)', + boxSizing: 'initial', + width: '513px' + }, + head: { + backgroundImage: 'linear-gradient(-180deg, #F0F0F0 0%, #D4D4D4 100%)', + borderBottom: '1px solid #B1B1B1', + boxShadow: 'inset 0 1px 0 0 rgba(255,255,255,.2), inset 0 -1px 0 0 rgba(0,0,0,.02)', + height: '23px', + lineHeight: '24px', + borderRadius: '4px 4px 0 0', + fontSize: '13px', + color: '#4D4D4D', + textAlign: 'center' + }, + body: { + padding: '15px 15px 0', + display: 'flex' + }, + saturation: { + width: '256px', + height: '256px', + position: 'relative', + border: '2px solid #B3B3B3', + borderBottom: '2px solid #F0F0F0', + overflow: 'hidden' + }, + hue: { + position: 'relative', + height: '256px', + width: '19px', + marginLeft: '10px', + border: '2px solid #B3B3B3', + borderBottom: '2px solid #F0F0F0' + }, + controls: { + width: '180px', + marginLeft: '10px' + }, + top: { + display: 'flex' + }, + previews: { + width: '60px' + }, + actions: { + flex: '1', + marginLeft: '20px' + } + } + }, passedStyles)); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'photoshop-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.head }, + this.props.header + ), + _react2.default.createElement( + 'div', + { style: styles.body, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + hsl: this.props.hsl, + hsv: this.props.hsv, + pointer: _PhotoshopPointerCircle2.default, + onChange: this.props.onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + direction: 'vertical', + hsl: this.props.hsl, + pointer: _PhotoshopPointer2.default, + onChange: this.props.onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.controls }, + _react2.default.createElement( + 'div', + { style: styles.top, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.previews }, + _react2.default.createElement(_PhotoshopPreviews2.default, { + rgb: this.props.rgb, + currentColor: this.state.currentColor + }) + ), + _react2.default.createElement( + 'div', + { style: styles.actions }, + _react2.default.createElement(_PhotoshopButton2.default, { label: 'OK', onClick: this.props.onAccept, active: true }), + _react2.default.createElement(_PhotoshopButton2.default, { label: 'Cancel', onClick: this.props.onCancel }), + _react2.default.createElement(_PhotoshopFields2.default, { + onChange: this.props.onChange, + rgb: this.props.rgb, + hsv: this.props.hsv, + hex: this.props.hex + }) + ) + ) + ) + ) + ); + } + }]); + + return Photoshop; +}(_react2.default.Component); + +Photoshop.propTypes = { + header: _propTypes2.default.string, + styles: _propTypes2.default.object +}; + +Photoshop.defaultProps = { + header: 'Color Picker', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Photoshop); +},{"../common":329,"./PhotoshopButton":343,"./PhotoshopFields":344,"./PhotoshopPointer":345,"./PhotoshopPointerCircle":346,"./PhotoshopPreviews":347,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],343:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopButton = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopButton = exports.PhotoshopButton = function PhotoshopButton(_ref) { + var onClick = _ref.onClick, + label = _ref.label, + children = _ref.children, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + button: { + backgroundImage: 'linear-gradient(-180deg, #FFFFFF 0%, #E6E6E6 100%)', + border: '1px solid #878787', + borderRadius: '2px', + height: '20px', + boxShadow: '0 1px 0 0 #EAEAEA', + fontSize: '14px', + color: '#000', + lineHeight: '20px', + textAlign: 'center', + marginBottom: '10px', + cursor: 'pointer' + } + }, + 'active': { + button: { + boxShadow: '0 0 0 1px #878787' + } + } + }, { active: active }); + + return _react2.default.createElement( + 'div', + { style: styles.button, onClick: onClick }, + label || children + ); +}; + +exports.default = PhotoshopButton; +},{"react":"react","reactcss":374}],344:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPicker = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPicker = exports.PhotoshopPicker = function PhotoshopPicker(_ref) { + var onChange = _ref.onChange, + rgb = _ref.rgb, + hsv = _ref.hsv, + hex = _ref.hex; + + var styles = (0, _reactcss2.default)({ + 'default': { + fields: { + paddingTop: '5px', + paddingBottom: '9px', + width: '80px', + position: 'relative' + }, + divider: { + height: '5px' + }, + RGBwrap: { + position: 'relative' + }, + RGBinput: { + marginLeft: '40%', + width: '40%', + height: '18px', + border: '1px solid #888888', + boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC', + marginBottom: '5px', + fontSize: '13px', + paddingLeft: '3px', + marginRight: '10px' + }, + RGBlabel: { + left: '0px', + top: '0px', + width: '34px', + textTransform: 'uppercase', + fontSize: '13px', + height: '18px', + lineHeight: '22px', + position: 'absolute' + }, + HEXwrap: { + position: 'relative' + }, + HEXinput: { + marginLeft: '20%', + width: '80%', + height: '18px', + border: '1px solid #888888', + boxShadow: 'inset 0 1px 1px rgba(0,0,0,.1), 0 1px 0 0 #ECECEC', + marginBottom: '6px', + fontSize: '13px', + paddingLeft: '3px' + }, + HEXlabel: { + position: 'absolute', + top: '0px', + left: '0px', + width: '14px', + textTransform: 'uppercase', + fontSize: '13px', + height: '18px', + lineHeight: '22px' + }, + fieldSymbols: { + position: 'absolute', + top: '5px', + right: '-7px', + fontSize: '13px' + }, + symbol: { + height: '20px', + lineHeight: '22px', + paddingBottom: '7px' + } + } + }); + + var handleChange = function handleChange(data, e) { + if (data['#']) { + color.isValidHex(data['#']) && onChange({ + hex: data['#'], + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + source: 'rgb' + }, e); + } else if (data.h || data.s || data.v) { + onChange({ + h: data.h || hsv.h, + s: data.s || hsv.s, + v: data.v || hsv.v, + source: 'hsv' + }, e); + } + }; + + return _react2.default.createElement( + 'div', + { style: styles.fields }, + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'h', + value: Math.round(hsv.h), + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 's', + value: Math.round(hsv.s * 100), + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'v', + value: Math.round(hsv.v * 100), + onChange: handleChange + }), + _react2.default.createElement('div', { style: styles.divider }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'r', + value: rgb.r, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'g', + value: rgb.g, + onChange: handleChange + }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.RGBwrap, input: styles.RGBinput, label: styles.RGBlabel }, + label: 'b', + value: rgb.b, + onChange: handleChange + }), + _react2.default.createElement('div', { style: styles.divider }), + _react2.default.createElement(_common.EditableInput, { + style: { wrap: styles.HEXwrap, input: styles.HEXinput, label: styles.HEXlabel }, + label: '#', + value: hex.replace('#', ''), + onChange: handleChange + }), + _react2.default.createElement( + 'div', + { style: styles.fieldSymbols }, + _react2.default.createElement( + 'div', + { style: styles.symbol }, + '\xB0' + ), + _react2.default.createElement( + 'div', + { style: styles.symbol }, + '%' + ), + _react2.default.createElement( + 'div', + { style: styles.symbol }, + '%' + ) + ) + ); +}; + +exports.default = PhotoshopPicker; +},{"../../helpers/color":361,"../common":329,"react":"react","reactcss":374}],345:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle() { + var styles = (0, _reactcss2.default)({ + 'default': { + triangle: { + width: 0, + height: 0, + borderStyle: 'solid', + borderWidth: '4px 0 4px 6px', + borderColor: 'transparent transparent transparent #fff', + position: 'absolute', + top: '1px', + left: '1px' + }, + triangleBorder: { + width: 0, + height: 0, + borderStyle: 'solid', + borderWidth: '5px 0 5px 8px', + borderColor: 'transparent transparent transparent #555' + }, + + left: { + Extend: 'triangleBorder', + transform: 'translate(-13px, -4px)' + }, + leftInside: { + Extend: 'triangle', + transform: 'translate(-8px, -5px)' + }, + + right: { + Extend: 'triangleBorder', + transform: 'translate(20px, -14px) rotate(180deg)' + }, + rightInside: { + Extend: 'triangle', + transform: 'translate(-8px, -5px)' + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.pointer }, + _react2.default.createElement( + 'div', + { style: styles.left }, + _react2.default.createElement('div', { style: styles.leftInside }) + ), + _react2.default.createElement( + 'div', + { style: styles.right }, + _react2.default.createElement('div', { style: styles.rightInside }) + ) + ); +}; + +exports.default = PhotoshopPointerCircle; +},{"react":"react","reactcss":374}],346:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPointerCircle = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPointerCircle = exports.PhotoshopPointerCircle = function PhotoshopPointerCircle(_ref) { + var hsl = _ref.hsl; + + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '12px', + height: '12px', + borderRadius: '6px', + boxShadow: 'inset 0 0 0 1px #fff', + transform: 'translate(-6px, -6px)' + } + }, + 'black-outline': { + picker: { + boxShadow: 'inset 0 0 0 1px #000' + } + } + }, { 'black-outline': hsl.l > 0.5 }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = PhotoshopPointerCircle; +},{"react":"react","reactcss":374}],347:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.PhotoshopPreviews = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var PhotoshopPreviews = exports.PhotoshopPreviews = function PhotoshopPreviews(_ref) { + var rgb = _ref.rgb, + currentColor = _ref.currentColor; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatches: { + border: '1px solid #B3B3B3', + borderBottom: '1px solid #F0F0F0', + marginBottom: '2px', + marginTop: '1px' + }, + new: { + height: '34px', + background: 'rgb(' + rgb.r + ',' + rgb.g + ', ' + rgb.b + ')', + boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 1px 0 #000' + }, + current: { + height: '34px', + background: currentColor, + boxShadow: 'inset 1px 0 0 #000, inset -1px 0 0 #000, inset 0 -1px 0 #000' + }, + label: { + fontSize: '14px', + color: '#000', + textAlign: 'center' + } + } + }); + + return _react2.default.createElement( + 'div', + null, + _react2.default.createElement( + 'div', + { style: styles.label }, + 'new' + ), + _react2.default.createElement( + 'div', + { style: styles.swatches }, + _react2.default.createElement('div', { style: styles.new }), + _react2.default.createElement('div', { style: styles.current }) + ), + _react2.default.createElement( + 'div', + { style: styles.label }, + 'current' + ) + ); +}; + +exports.default = PhotoshopPreviews; +},{"react":"react","reactcss":374}],348:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Sketch = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _SketchFields = require('./SketchFields'); + +var _SketchFields2 = _interopRequireDefault(_SketchFields); + +var _SketchPresetColors = require('./SketchPresetColors'); + +var _SketchPresetColors2 = _interopRequireDefault(_SketchPresetColors); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Sketch = exports.Sketch = function Sketch(_ref) { + var width = _ref.width, + rgb = _ref.rgb, + hex = _ref.hex, + hsv = _ref.hsv, + hsl = _ref.hsl, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + disableAlpha = _ref.disableAlpha, + presetColors = _ref.presetColors, + renderers = _ref.renderers, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': _extends({ + picker: { + width: width, + padding: '10px 10px 0', + boxSizing: 'initial', + background: '#fff', + borderRadius: '4px', + boxShadow: '0 0 0 1px rgba(0,0,0,.15), 0 8px 16px rgba(0,0,0,.15)' + }, + saturation: { + width: '100%', + paddingBottom: '75%', + position: 'relative', + overflow: 'hidden' + }, + Saturation: { + radius: '3px', + shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + }, + controls: { + display: 'flex' + }, + sliders: { + padding: '4px 0', + flex: '1' + }, + color: { + width: '24px', + height: '24px', + position: 'relative', + marginTop: '4px', + marginLeft: '4px', + borderRadius: '3px' + }, + activeColor: { + absolute: '0px 0px 0px 0px', + borderRadius: '2px', + background: 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + rgb.a + ')', + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + }, + hue: { + position: 'relative', + height: '10px', + overflow: 'hidden' + }, + Hue: { + radius: '2px', + shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + }, + + alpha: { + position: 'relative', + height: '10px', + marginTop: '4px', + overflow: 'hidden' + }, + Alpha: { + radius: '2px', + shadow: 'inset 0 0 0 1px rgba(0,0,0,.15), inset 0 0 4px rgba(0,0,0,.25)' + } + }, passedStyles), + 'disableAlpha': { + color: { + height: '10px' + }, + hue: { + height: '10px' + }, + alpha: { + display: 'none' + } + } + }, passedStyles), { disableAlpha: disableAlpha }); + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'sketch-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.saturation }, + _react2.default.createElement(_common.Saturation, { + style: styles.Saturation, + hsl: hsl, + hsv: hsv, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.controls, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.sliders }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.Alpha, { + style: styles.Alpha, + rgb: rgb, + hsl: hsl, + renderers: renderers, + onChange: onChange + }) + ) + ), + _react2.default.createElement( + 'div', + { style: styles.color }, + _react2.default.createElement(_common.Checkboard, null), + _react2.default.createElement('div', { style: styles.activeColor }) + ) + ), + _react2.default.createElement(_SketchFields2.default, { + rgb: rgb, + hsl: hsl, + hex: hex, + onChange: onChange, + disableAlpha: disableAlpha + }), + _react2.default.createElement(_SketchPresetColors2.default, { + colors: presetColors, + onClick: onChange, + onSwatchHover: onSwatchHover + }) + ); +}; + +Sketch.propTypes = { + disableAlpha: _propTypes2.default.bool, + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + styles: _propTypes2.default.object +}; + +Sketch.defaultProps = { + disableAlpha: false, + width: 200, + styles: {}, + presetColors: ['#D0021B', '#F5A623', '#F8E71C', '#8B572A', '#7ED321', '#417505', '#BD10E0', '#9013FE', '#4A90E2', '#50E3C2', '#B8E986', '#000000', '#4A4A4A', '#9B9B9B', '#FFFFFF'] +}; + +exports.default = (0, _common.ColorWrap)(Sketch); +},{"../common":329,"./SketchFields":349,"./SketchPresetColors":350,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],349:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SketchFields = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* eslint-disable no-param-reassign */ + +var SketchFields = exports.SketchFields = function SketchFields(_ref) { + var onChange = _ref.onChange, + rgb = _ref.rgb, + hsl = _ref.hsl, + hex = _ref.hex, + disableAlpha = _ref.disableAlpha; + + var styles = (0, _reactcss2.default)({ + 'default': { + fields: { + display: 'flex', + paddingTop: '4px' + }, + single: { + flex: '1', + paddingLeft: '6px' + }, + alpha: { + flex: '1', + paddingLeft: '6px' + }, + double: { + flex: '2' + }, + input: { + width: '80%', + padding: '4px 10% 3px', + border: 'none', + boxShadow: 'inset 0 0 0 1px #ccc', + fontSize: '11px' + }, + label: { + display: 'block', + textAlign: 'center', + fontSize: '11px', + color: '#222', + paddingTop: '3px', + paddingBottom: '4px', + textTransform: 'capitalize' + } + }, + 'disableAlpha': { + alpha: { + display: 'none' + } + } + }, { disableAlpha: disableAlpha }); + + var handleChange = function handleChange(data, e) { + if (data.hex) { + color.isValidHex(data.hex) && onChange({ + hex: data.hex, + source: 'hex' + }, e); + } else if (data.r || data.g || data.b) { + onChange({ + r: data.r || rgb.r, + g: data.g || rgb.g, + b: data.b || rgb.b, + a: rgb.a, + source: 'rgb' + }, e); + } else if (data.a) { + if (data.a < 0) { + data.a = 0; + } else if (data.a > 100) { + data.a = 100; + } + + data.a /= 100; + onChange({ + h: hsl.h, + s: hsl.s, + l: hsl.l, + a: data.a, + source: 'rgb' + }, e); + } + }; + + return _react2.default.createElement( + 'div', + { style: styles.fields, className: 'flexbox-fix' }, + _react2.default.createElement( + 'div', + { style: styles.double }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'hex', + value: hex.replace('#', ''), + onChange: handleChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'r', + value: rgb.r, + onChange: handleChange, + dragLabel: 'true', + dragMax: '255' + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'g', + value: rgb.g, + onChange: handleChange, + dragLabel: 'true', + dragMax: '255' + }) + ), + _react2.default.createElement( + 'div', + { style: styles.single }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'b', + value: rgb.b, + onChange: handleChange, + dragLabel: 'true', + dragMax: '255' + }) + ), + _react2.default.createElement( + 'div', + { style: styles.alpha }, + _react2.default.createElement(_common.EditableInput, { + style: { input: styles.input, label: styles.label }, + label: 'a', + value: Math.round(rgb.a * 100), + onChange: handleChange, + dragLabel: 'true', + dragMax: '100' + }) + ) + ); +}; + +exports.default = SketchFields; +},{"../../helpers/color":361,"../common":329,"react":"react","reactcss":374}],350:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SketchPresetColors = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _common = require('../common'); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SketchPresetColors = exports.SketchPresetColors = function SketchPresetColors(_ref) { + var colors = _ref.colors, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onSwatchHover = _ref.onSwatchHover; + + var styles = (0, _reactcss2.default)({ + 'default': { + colors: { + margin: '0 -10px', + padding: '10px 0 0 10px', + borderTop: '1px solid #eee', + display: 'flex', + flexWrap: 'wrap', + position: 'relative' + }, + swatchWrap: { + width: '16px', + height: '16px', + margin: '0 10px 10px 0' + }, + swatch: { + borderRadius: '3px', + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15)' + } + }, + 'no-presets': { + colors: { + display: 'none' + } + } + }, { + 'no-presets': !colors || !colors.length + }); + + var handleClick = function handleClick(hex, e) { + onClick({ + hex: hex, + source: 'hex' + }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.colors, className: 'flexbox-fix' }, + colors.map(function (colorObjOrString) { + var c = typeof colorObjOrString === 'string' ? { color: colorObjOrString } : colorObjOrString; + var key = '' + c.color + (c.title || ''); + return _react2.default.createElement( + 'div', + { key: key, style: styles.swatchWrap }, + _react2.default.createElement(_common.Swatch, _extends({}, c, { + style: styles.swatch, + onClick: handleClick, + onHover: onSwatchHover, + focusStyle: { + boxShadow: 'inset 0 0 0 1px rgba(0,0,0,.15), 0 0 4px ' + c.color + } + })) + ); + }) + ); +}; + +SketchPresetColors.propTypes = { + colors: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.shape({ + color: _propTypes2.default.string, + title: _propTypes2.default.string + })])).isRequired +}; + +exports.default = SketchPresetColors; +},{"../common":329,"prop-types":309,"react":"react","reactcss":374}],351:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Slider = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _common = require('../common'); + +var _SliderSwatches = require('./SliderSwatches'); + +var _SliderSwatches2 = _interopRequireDefault(_SliderSwatches); + +var _SliderPointer = require('./SliderPointer'); + +var _SliderPointer2 = _interopRequireDefault(_SliderPointer); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Slider = exports.Slider = function Slider(_ref) { + var hsl = _ref.hsl, + onChange = _ref.onChange, + pointer = _ref.pointer, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + hue: { + height: '12px', + position: 'relative' + }, + Hue: { + radius: '2px' + } + } + }, passedStyles)); + + return _react2.default.createElement( + 'div', + { style: styles.wrap || {}, className: 'slider-picker ' + className }, + _react2.default.createElement( + 'div', + { style: styles.hue }, + _react2.default.createElement(_common.Hue, { + style: styles.Hue, + hsl: hsl, + pointer: pointer, + onChange: onChange + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatches }, + _react2.default.createElement(_SliderSwatches2.default, { hsl: hsl, onClick: onChange }) + ) + ); +}; + +Slider.propTypes = { + styles: _propTypes2.default.object +}; +Slider.defaultProps = { + pointer: _SliderPointer2.default, + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Slider); +},{"../common":329,"./SliderPointer":352,"./SliderSwatches":354,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],352:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderPointer = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderPointer = exports.SliderPointer = function SliderPointer() { + var styles = (0, _reactcss2.default)({ + 'default': { + picker: { + width: '14px', + height: '14px', + borderRadius: '6px', + transform: 'translate(-7px, -1px)', + backgroundColor: 'rgb(248, 248, 248)', + boxShadow: '0 1px 4px 0 rgba(0, 0, 0, 0.37)' + } + } + }); + + return _react2.default.createElement('div', { style: styles.picker }); +}; + +exports.default = SliderPointer; +},{"react":"react","reactcss":374}],353:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderSwatch = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderSwatch = exports.SliderSwatch = function SliderSwatch(_ref) { + var hsl = _ref.hsl, + offset = _ref.offset, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + active = _ref.active, + first = _ref.first, + last = _ref.last; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatch: { + height: '12px', + background: 'hsl(' + hsl.h + ', 50%, ' + offset * 100 + '%)', + cursor: 'pointer' + } + }, + 'first': { + swatch: { + borderRadius: '2px 0 0 2px' + } + }, + 'last': { + swatch: { + borderRadius: '0 2px 2px 0' + } + }, + 'active': { + swatch: { + transform: 'scaleY(1.8)', + borderRadius: '3.6px/2px' + } + } + }, { active: active, first: first, last: last }); + + var handleClick = function handleClick(e) { + return onClick({ + h: hsl.h, + s: 0.5, + l: offset, + source: 'hsl' + }, e); + }; + + return _react2.default.createElement('div', { style: styles.swatch, onClick: handleClick }); +}; + +exports.default = SliderSwatch; +},{"react":"react","reactcss":374}],354:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SliderSwatches = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _SliderSwatch = require('./SliderSwatch'); + +var _SliderSwatch2 = _interopRequireDefault(_SliderSwatch); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SliderSwatches = exports.SliderSwatches = function SliderSwatches(_ref) { + var onClick = _ref.onClick, + hsl = _ref.hsl; + + var styles = (0, _reactcss2.default)({ + 'default': { + swatches: { + marginTop: '20px' + }, + swatch: { + boxSizing: 'border-box', + width: '20%', + paddingRight: '1px', + float: 'left' + }, + clear: { + clear: 'both' + } + } + }); + + // Acceptible difference in floating point equality + var epsilon = 0.1; + + return _react2.default.createElement( + 'div', + { style: styles.swatches }, + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.80', + active: Math.abs(hsl.l - 0.80) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick, + first: true + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.65', + active: Math.abs(hsl.l - 0.65) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.50', + active: Math.abs(hsl.l - 0.50) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.35', + active: Math.abs(hsl.l - 0.35) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick + }) + ), + _react2.default.createElement( + 'div', + { style: styles.swatch }, + _react2.default.createElement(_SliderSwatch2.default, { + hsl: hsl, + offset: '.20', + active: Math.abs(hsl.l - 0.20) < epsilon && Math.abs(hsl.s - 0.50) < epsilon, + onClick: onClick, + last: true + }) + ), + _react2.default.createElement('div', { style: styles.clear }) + ); +}; + +exports.default = SliderSwatches; +},{"./SliderSwatch":353,"react":"react","reactcss":374}],355:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Swatches = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _materialColors = require('material-colors'); + +var material = _interopRequireWildcard(_materialColors); + +var _common = require('../common'); + +var _SwatchesGroup = require('./SwatchesGroup'); + +var _SwatchesGroup2 = _interopRequireDefault(_SwatchesGroup); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Swatches = exports.Swatches = function Swatches(_ref) { + var width = _ref.width, + height = _ref.height, + onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + colors = _ref.colors, + hex = _ref.hex, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + picker: { + width: width, + height: height + }, + overflow: { + height: height, + overflowY: 'scroll' + }, + body: { + padding: '16px 0 6px 16px' + }, + clear: { + clear: 'both' + } + } + }, passedStyles)); + + var handleChange = function handleChange(data, e) { + return onChange({ hex: data, source: 'hex' }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.picker, className: 'swatches-picker ' + className }, + _react2.default.createElement( + _common.Raised, + null, + _react2.default.createElement( + 'div', + { style: styles.overflow }, + _react2.default.createElement( + 'div', + { style: styles.body }, + (0, _map2.default)(colors, function (group) { + return _react2.default.createElement(_SwatchesGroup2.default, { + key: group.toString(), + group: group, + active: hex, + onClick: handleChange, + onSwatchHover: onSwatchHover + }); + }), + _react2.default.createElement('div', { style: styles.clear }) + ) + ) + ) + ); +}; + +Swatches.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + colors: _propTypes2.default.arrayOf(_propTypes2.default.arrayOf(_propTypes2.default.string)), + styles: _propTypes2.default.object + + /* eslint-disable max-len */ +};Swatches.defaultProps = { + width: 320, + height: 240, + colors: [[material.red['900'], material.red['700'], material.red['500'], material.red['300'], material.red['100']], [material.pink['900'], material.pink['700'], material.pink['500'], material.pink['300'], material.pink['100']], [material.purple['900'], material.purple['700'], material.purple['500'], material.purple['300'], material.purple['100']], [material.deepPurple['900'], material.deepPurple['700'], material.deepPurple['500'], material.deepPurple['300'], material.deepPurple['100']], [material.indigo['900'], material.indigo['700'], material.indigo['500'], material.indigo['300'], material.indigo['100']], [material.blue['900'], material.blue['700'], material.blue['500'], material.blue['300'], material.blue['100']], [material.lightBlue['900'], material.lightBlue['700'], material.lightBlue['500'], material.lightBlue['300'], material.lightBlue['100']], [material.cyan['900'], material.cyan['700'], material.cyan['500'], material.cyan['300'], material.cyan['100']], [material.teal['900'], material.teal['700'], material.teal['500'], material.teal['300'], material.teal['100']], ['#194D33', material.green['700'], material.green['500'], material.green['300'], material.green['100']], [material.lightGreen['900'], material.lightGreen['700'], material.lightGreen['500'], material.lightGreen['300'], material.lightGreen['100']], [material.lime['900'], material.lime['700'], material.lime['500'], material.lime['300'], material.lime['100']], [material.yellow['900'], material.yellow['700'], material.yellow['500'], material.yellow['300'], material.yellow['100']], [material.amber['900'], material.amber['700'], material.amber['500'], material.amber['300'], material.amber['100']], [material.orange['900'], material.orange['700'], material.orange['500'], material.orange['300'], material.orange['100']], [material.deepOrange['900'], material.deepOrange['700'], material.deepOrange['500'], material.deepOrange['300'], material.deepOrange['100']], [material.brown['900'], material.brown['700'], material.brown['500'], material.brown['300'], material.brown['100']], [material.blueGrey['900'], material.blueGrey['700'], material.blueGrey['500'], material.blueGrey['300'], material.blueGrey['100']], ['#000000', '#525252', '#969696', '#D9D9D9', '#FFFFFF']], + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Swatches); +},{"../common":329,"./SwatchesGroup":357,"lodash/map":293,"lodash/merge":295,"material-colors":304,"prop-types":309,"react":"react","reactcss":374}],356:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SwatchesColor = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _color = require('../../helpers/color'); + +var colorUtils = _interopRequireWildcard(_color); + +var _common = require('../common'); + +var _CheckIcon = require('@icons/material/CheckIcon'); + +var _CheckIcon2 = _interopRequireDefault(_CheckIcon); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SwatchesColor = exports.SwatchesColor = function SwatchesColor(_ref) { + var color = _ref.color, + _ref$onClick = _ref.onClick, + onClick = _ref$onClick === undefined ? function () {} : _ref$onClick, + onSwatchHover = _ref.onSwatchHover, + first = _ref.first, + last = _ref.last, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + color: { + width: '40px', + height: '24px', + cursor: 'pointer', + background: color, + marginBottom: '1px' + }, + check: { + color: colorUtils.getContrastingColor(color), + marginLeft: '8px', + display: 'none' + } + }, + 'first': { + color: { + overflow: 'hidden', + borderRadius: '2px 2px 0 0' + } + }, + 'last': { + color: { + overflow: 'hidden', + borderRadius: '0 0 2px 2px' + } + }, + 'active': { + check: { + display: 'block' + } + }, + 'color-#FFFFFF': { + color: { + boxShadow: 'inset 0 0 0 1px #ddd' + }, + check: { + color: '#333' + } + }, + 'transparent': { + check: { + color: '#333' + } + } + }, { + first: first, + last: last, + active: active, + 'color-#FFFFFF': color === '#FFFFFF', + 'transparent': color === 'transparent' + }); + + return _react2.default.createElement( + _common.Swatch, + { + color: color, + style: styles.color, + onClick: onClick, + onHover: onSwatchHover, + focusStyle: { boxShadow: '0 0 4px ' + color } + }, + _react2.default.createElement( + 'div', + { style: styles.check }, + _react2.default.createElement(_CheckIcon2.default, null) + ) + ); +}; + +exports.default = SwatchesColor; +},{"../../helpers/color":361,"../common":329,"@icons/material/CheckIcon":96,"react":"react","reactcss":374}],357:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SwatchesGroup = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _SwatchesColor = require('./SwatchesColor'); + +var _SwatchesColor2 = _interopRequireDefault(_SwatchesColor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var SwatchesGroup = exports.SwatchesGroup = function SwatchesGroup(_ref) { + var onClick = _ref.onClick, + onSwatchHover = _ref.onSwatchHover, + group = _ref.group, + active = _ref.active; + + var styles = (0, _reactcss2.default)({ + 'default': { + group: { + paddingBottom: '10px', + width: '40px', + float: 'left', + marginRight: '10px' + } + } + }); + + return _react2.default.createElement( + 'div', + { style: styles.group }, + (0, _map2.default)(group, function (color, i) { + return _react2.default.createElement(_SwatchesColor2.default, { + key: color, + color: color, + active: color.toLowerCase() === active, + first: i === 0, + last: i === group.length - 1, + onClick: onClick, + onSwatchHover: onSwatchHover + }); + }) + ); +}; + +exports.default = SwatchesGroup; +},{"./SwatchesColor":356,"lodash/map":293,"react":"react","reactcss":374}],358:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Twitter = undefined; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = require('prop-types'); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _reactcss = require('reactcss'); + +var _reactcss2 = _interopRequireDefault(_reactcss); + +var _map = require('lodash/map'); + +var _map2 = _interopRequireDefault(_map); + +var _merge = require('lodash/merge'); + +var _merge2 = _interopRequireDefault(_merge); + +var _color = require('../../helpers/color'); + +var color = _interopRequireWildcard(_color); + +var _common = require('../common'); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var Twitter = exports.Twitter = function Twitter(_ref) { + var onChange = _ref.onChange, + onSwatchHover = _ref.onSwatchHover, + hex = _ref.hex, + colors = _ref.colors, + width = _ref.width, + triangle = _ref.triangle, + _ref$styles = _ref.styles, + passedStyles = _ref$styles === undefined ? {} : _ref$styles, + _ref$className = _ref.className, + className = _ref$className === undefined ? '' : _ref$className; + + var styles = (0, _reactcss2.default)((0, _merge2.default)({ + 'default': { + card: { + width: width, + background: '#fff', + border: '0 solid rgba(0,0,0,0.25)', + boxShadow: '0 1px 4px rgba(0,0,0,0.25)', + borderRadius: '4px', + position: 'relative' + }, + body: { + padding: '15px 9px 9px 15px' + }, + label: { + fontSize: '18px', + color: '#fff' + }, + triangle: { + width: '0px', + height: '0px', + borderStyle: 'solid', + borderWidth: '0 9px 10px 9px', + borderColor: 'transparent transparent #fff transparent', + position: 'absolute' + }, + triangleShadow: { + width: '0px', + height: '0px', + borderStyle: 'solid', + borderWidth: '0 9px 10px 9px', + borderColor: 'transparent transparent rgba(0,0,0,.1) transparent', + position: 'absolute' + }, + hash: { + background: '#F0F0F0', + height: '30px', + width: '30px', + borderRadius: '4px 0 0 4px', + float: 'left', + color: '#98A1A4', + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }, + input: { + width: '100px', + fontSize: '14px', + color: '#666', + border: '0px', + outline: 'none', + height: '28px', + boxShadow: 'inset 0 0 0 1px #F0F0F0', + boxSizing: 'content-box', + borderRadius: '0 4px 4px 0', + float: 'left', + paddingLeft: '8px' + }, + swatch: { + width: '30px', + height: '30px', + float: 'left', + borderRadius: '4px', + margin: '0 6px 6px 0' + }, + clear: { + clear: 'both' + } + }, + 'hide-triangle': { + triangle: { + display: 'none' + }, + triangleShadow: { + display: 'none' + } + }, + 'top-left-triangle': { + triangle: { + top: '-10px', + left: '12px' + }, + triangleShadow: { + top: '-11px', + left: '12px' + } + }, + 'top-right-triangle': { + triangle: { + top: '-10px', + right: '12px' + }, + triangleShadow: { + top: '-11px', + right: '12px' + } + } + }, passedStyles), { + 'hide-triangle': triangle === 'hide', + 'top-left-triangle': triangle === 'top-left', + 'top-right-triangle': triangle === 'top-right' + }); + + var handleChange = function handleChange(hexcode, e) { + color.isValidHex(hexcode) && onChange({ + hex: hexcode, + source: 'hex' + }, e); + }; + + return _react2.default.createElement( + 'div', + { style: styles.card, className: 'twitter-picker ' + className }, + _react2.default.createElement('div', { style: styles.triangleShadow }), + _react2.default.createElement('div', { style: styles.triangle }), + _react2.default.createElement( + 'div', + { style: styles.body }, + (0, _map2.default)(colors, function (c, i) { + return _react2.default.createElement(_common.Swatch, { + key: i, + color: c, + hex: c, + style: styles.swatch, + onClick: handleChange, + onHover: onSwatchHover, + focusStyle: { + boxShadow: '0 0 4px ' + c + } + }); + }), + _react2.default.createElement( + 'div', + { style: styles.hash }, + '#' + ), + _react2.default.createElement(_common.EditableInput, { + label: null, + style: { input: styles.input }, + value: hex.replace('#', ''), + onChange: handleChange + }), + _react2.default.createElement('div', { style: styles.clear }) + ) + ); +}; + +Twitter.propTypes = { + width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]), + triangle: _propTypes2.default.oneOf(['hide', 'top-left', 'top-right']), + colors: _propTypes2.default.arrayOf(_propTypes2.default.string), + styles: _propTypes2.default.object +}; + +Twitter.defaultProps = { + width: 276, + colors: ['#FF6900', '#FCB900', '#7BDCB5', '#00D084', '#8ED1FC', '#0693E3', '#ABB8C3', '#EB144C', '#F78DA7', '#9900EF'], + triangle: 'top-left', + styles: {} +}; + +exports.default = (0, _common.ColorWrap)(Twitter); +},{"../../helpers/color":361,"../common":329,"lodash/map":293,"lodash/merge":295,"prop-types":309,"react":"react","reactcss":374}],359:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var calculateChange = exports.calculateChange = function calculateChange(e, hsl, direction, initialA, container) { + var containerWidth = container.clientWidth; + var containerHeight = container.clientHeight; + var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX; + var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY; + var left = x - (container.getBoundingClientRect().left + window.pageXOffset); + var top = y - (container.getBoundingClientRect().top + window.pageYOffset); + + if (direction === 'vertical') { + var a = void 0; + if (top < 0) { + a = 0; + } else if (top > containerHeight) { + a = 1; + } else { + a = Math.round(top * 100 / containerHeight) / 100; + } + + if (hsl.a !== a) { + return { + h: hsl.h, + s: hsl.s, + l: hsl.l, + a: a, + source: 'rgb' + }; + } + } else { + var _a = void 0; + if (left < 0) { + _a = 0; + } else if (left > containerWidth) { + _a = 1; + } else { + _a = Math.round(left * 100 / containerWidth) / 100; + } + + if (initialA !== _a) { + return { + h: hsl.h, + s: hsl.s, + l: hsl.l, + a: _a, + source: 'rgb' + }; + } + } + return null; +}; +},{}],360:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var checkboardCache = {}; + +var render = exports.render = function render(c1, c2, size, serverCanvas) { + if (typeof document === 'undefined' && !serverCanvas) { + return null; + } + var canvas = serverCanvas ? new serverCanvas() : document.createElement('canvas'); + canvas.width = size * 2; + canvas.height = size * 2; + var ctx = canvas.getContext('2d'); + if (!ctx) { + return null; + } // If no context can be found, return early. + ctx.fillStyle = c1; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.fillStyle = c2; + ctx.fillRect(0, 0, size, size); + ctx.translate(size, size); + ctx.fillRect(0, 0, size, size); + return canvas.toDataURL(); +}; + +var get = exports.get = function get(c1, c2, size, serverCanvas) { + var key = c1 + '-' + c2 + '-' + size + (serverCanvas ? '-server' : ''); + + if (checkboardCache[key]) { + return checkboardCache[key]; + } + + var checkboard = render(c1, c2, size, serverCanvas); + checkboardCache[key] = checkboard; + return checkboard; +}; +},{}],361:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isvalidColorString = exports.red = exports.getContrastingColor = exports.isValidHex = exports.toState = exports.simpleCheckForValidColor = undefined; + +var _each = require('lodash/each'); + +var _each2 = _interopRequireDefault(_each); + +var _tinycolor = require('tinycolor2'); + +var _tinycolor2 = _interopRequireDefault(_tinycolor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var simpleCheckForValidColor = exports.simpleCheckForValidColor = function simpleCheckForValidColor(data) { + var keysToCheck = ['r', 'g', 'b', 'a', 'h', 's', 'l', 'v']; + var checked = 0; + var passed = 0; + (0, _each2.default)(keysToCheck, function (letter) { + if (data[letter]) { + checked += 1; + if (!isNaN(data[letter])) { + passed += 1; + } + if (letter === 's' || letter === 'l') { + var percentPatt = /^\d+%$/; + if (percentPatt.test(data[letter])) { + passed += 1; + } + } + } + }); + return checked === passed ? data : false; +}; + +var toState = exports.toState = function toState(data, oldHue) { + var color = data.hex ? (0, _tinycolor2.default)(data.hex) : (0, _tinycolor2.default)(data); + var hsl = color.toHsl(); + var hsv = color.toHsv(); + var rgb = color.toRgb(); + var hex = color.toHex(); + if (hsl.s === 0) { + hsl.h = oldHue || 0; + hsv.h = oldHue || 0; + } + var transparent = hex === '000000' && rgb.a === 0; + + return { + hsl: hsl, + hex: transparent ? 'transparent' : '#' + hex, + rgb: rgb, + hsv: hsv, + oldHue: data.h || oldHue || hsl.h, + source: data.source + }; +}; + +var isValidHex = exports.isValidHex = function isValidHex(hex) { + if (hex === 'transparent') { + return true; + } + // disable hex4 and hex8 + var lh = String(hex).charAt(0) === '#' ? 1 : 0; + return hex.length !== 4 + lh && hex.length < 7 + lh && (0, _tinycolor2.default)(hex).isValid(); +}; + +var getContrastingColor = exports.getContrastingColor = function getContrastingColor(data) { + if (!data) { + return '#fff'; + } + var col = toState(data); + if (col.hex === 'transparent') { + return 'rgba(0,0,0,0.4)'; + } + var yiq = (col.rgb.r * 299 + col.rgb.g * 587 + col.rgb.b * 114) / 1000; + return yiq >= 128 ? '#000' : '#fff'; +}; + +var red = exports.red = { + hsl: { a: 1, h: 0, l: 0.5, s: 1 }, + hex: '#ff0000', + rgb: { r: 255, g: 0, b: 0, a: 1 }, + hsv: { h: 0, s: 1, v: 1, a: 1 } +}; + +var isvalidColorString = exports.isvalidColorString = function isvalidColorString(string, type) { + var stringWithoutDegree = string.replace('°', ''); + return (0, _tinycolor2.default)(type + ' (' + stringWithoutDegree + ')')._ok; +}; +},{"lodash/each":268,"tinycolor2":378}],362:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var calculateChange = exports.calculateChange = function calculateChange(e, direction, hsl, container) { + var containerWidth = container.clientWidth; + var containerHeight = container.clientHeight; + var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX; + var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY; + var left = x - (container.getBoundingClientRect().left + window.pageXOffset); + var top = y - (container.getBoundingClientRect().top + window.pageYOffset); + + if (direction === 'vertical') { + var h = void 0; + if (top < 0) { + h = 359; + } else if (top > containerHeight) { + h = 0; + } else { + var percent = -(top * 100 / containerHeight) + 100; + h = 360 * percent / 100; + } + + if (hsl.h !== h) { + return { + h: h, + s: hsl.s, + l: hsl.l, + a: hsl.a, + source: 'hsl' + }; + } + } else { + var _h = void 0; + if (left < 0) { + _h = 0; + } else if (left > containerWidth) { + _h = 359; + } else { + var _percent = left * 100 / containerWidth; + _h = 360 * _percent / 100; + } + + if (hsl.h !== _h) { + return { + h: _h, + s: hsl.s, + l: hsl.l, + a: hsl.a, + source: 'hsl' + }; + } + } + return null; +}; +},{}],363:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.handleFocus = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /* eslint-disable no-invalid-this */ + + +var handleFocus = exports.handleFocus = function handleFocus(Component) { + var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span'; + return function (_React$Component) { + _inherits(Focus, _React$Component); + + function Focus() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Focus); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Focus.__proto__ || Object.getPrototypeOf(Focus)).call.apply(_ref, [this].concat(args))), _this), _this.state = { focus: false }, _this.handleFocus = function () { + return _this.setState({ focus: true }); + }, _this.handleBlur = function () { + return _this.setState({ focus: false }); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Focus, [{ + key: 'render', + value: function render() { + return _react2.default.createElement( + Span, + { onFocus: this.handleFocus, onBlur: this.handleBlur }, + _react2.default.createElement(Component, _extends({}, this.props, this.state)) + ); + } + }]); + + return Focus; + }(_react2.default.Component); +}; +},{"react":"react"}],364:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var calculateChange = exports.calculateChange = function calculateChange(e, hsl, container) { + var _container$getBoundin = container.getBoundingClientRect(), + containerWidth = _container$getBoundin.width, + containerHeight = _container$getBoundin.height; + + var x = typeof e.pageX === 'number' ? e.pageX : e.touches[0].pageX; + var y = typeof e.pageY === 'number' ? e.pageY : e.touches[0].pageY; + var left = x - (container.getBoundingClientRect().left + window.pageXOffset); + var top = y - (container.getBoundingClientRect().top + window.pageYOffset); + + if (left < 0) { + left = 0; + } else if (left > containerWidth) { + left = containerWidth; + } + + if (top < 0) { + top = 0; + } else if (top > containerHeight) { + top = containerHeight; + } + + var saturation = left / containerWidth; + var bright = 1 - top / containerHeight; + + return { + h: hsl.h, + s: saturation, + v: bright, + a: hsl.a, + source: 'hsv' + }; +}; +},{}],365:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CustomPicker = exports.GooglePicker = exports.TwitterPicker = exports.SwatchesPicker = exports.SliderPicker = exports.SketchPicker = exports.PhotoshopPicker = exports.MaterialPicker = exports.HuePicker = exports.GithubPicker = exports.CompactPicker = exports.ChromePicker = exports.default = exports.CirclePicker = exports.BlockPicker = exports.AlphaPicker = undefined; + +var _Alpha = require('./components/alpha/Alpha'); + +Object.defineProperty(exports, 'AlphaPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Alpha).default; + } +}); + +var _Block = require('./components/block/Block'); + +Object.defineProperty(exports, 'BlockPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Block).default; + } +}); + +var _Circle = require('./components/circle/Circle'); + +Object.defineProperty(exports, 'CirclePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Circle).default; + } +}); + +var _Chrome = require('./components/chrome/Chrome'); + +Object.defineProperty(exports, 'ChromePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Chrome).default; + } +}); + +var _Compact = require('./components/compact/Compact'); + +Object.defineProperty(exports, 'CompactPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Compact).default; + } +}); + +var _Github = require('./components/github/Github'); + +Object.defineProperty(exports, 'GithubPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Github).default; + } +}); + +var _Hue = require('./components/hue/Hue'); + +Object.defineProperty(exports, 'HuePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Hue).default; + } +}); + +var _Material = require('./components/material/Material'); + +Object.defineProperty(exports, 'MaterialPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Material).default; + } +}); + +var _Photoshop = require('./components/photoshop/Photoshop'); + +Object.defineProperty(exports, 'PhotoshopPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Photoshop).default; + } +}); + +var _Sketch = require('./components/sketch/Sketch'); + +Object.defineProperty(exports, 'SketchPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Sketch).default; + } +}); + +var _Slider = require('./components/slider/Slider'); + +Object.defineProperty(exports, 'SliderPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Slider).default; + } +}); + +var _Swatches = require('./components/swatches/Swatches'); + +Object.defineProperty(exports, 'SwatchesPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Swatches).default; + } +}); + +var _Twitter = require('./components/twitter/Twitter'); + +Object.defineProperty(exports, 'TwitterPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Twitter).default; + } +}); + +var _Google = require('./components/google/Google'); + +Object.defineProperty(exports, 'GooglePicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_Google).default; + } +}); + +var _ColorWrap = require('./components/common/ColorWrap'); + +Object.defineProperty(exports, 'CustomPicker', { + enumerable: true, + get: function get() { + return _interopRequireDefault(_ColorWrap).default; + } +}); + +var _Chrome2 = _interopRequireDefault(_Chrome); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Chrome2.default; +},{"./components/alpha/Alpha":311,"./components/block/Block":313,"./components/chrome/Chrome":315,"./components/circle/Circle":319,"./components/common/ColorWrap":323,"./components/compact/Compact":330,"./components/github/Github":333,"./components/google/Google":335,"./components/hue/Hue":339,"./components/material/Material":341,"./components/photoshop/Photoshop":342,"./components/sketch/Sketch":348,"./components/slider/Slider":351,"./components/swatches/Swatches":355,"./components/twitter/Twitter":358}],366:[function(require,module,exports){ +(function (process){ +/** @license React v16.13.1 * react-is.development.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -17,7 +35060,184 @@ object-assign * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -'use strict';'production'!==_0x3ed62b[_0x7ae7b7('0x68b')]['NODE_ENV']&&function(){var _0x273326=_0x7ae7b7,_0x36e536=_0x273326('0xa25')==typeof Symbol&&Symbol['for'],_0x3b0941=_0x36e536?Symbol['for'](_0x273326('0xbf5')):0xeac7,_0x336bbc=_0x36e536?Symbol[_0x273326('0xce2')]('react.portal'):0xeaca,_0x58db15=_0x36e536?Symbol[_0x273326('0xce2')](_0x273326('0x801')):0xeacb,_0x2a66c8=_0x36e536?Symbol['for'](_0x273326('0x2ef')):0xeacc,_0x48666f=_0x36e536?Symbol[_0x273326('0xce2')](_0x273326('0x414')):0xead2,_0x1a4380=_0x36e536?Symbol['for'](_0x273326('0x854')):0xeacd,_0x413bac=_0x36e536?Symbol[_0x273326('0xce2')]('react.context'):0xeace,_0x4c2e8a=_0x36e536?Symbol[_0x273326('0xce2')](_0x273326('0xdc7')):0xeacf,_0x4ee21f=_0x36e536?Symbol['for'](_0x273326('0x4fc')):0xeacf,_0x404707=_0x36e536?Symbol['for']('react.forward_ref'):0xead0,_0x3c268f=_0x36e536?Symbol[_0x273326('0xce2')](_0x273326('0x241')):0xead1,_0x271916=_0x36e536?Symbol[_0x273326('0xce2')](_0x273326('0xbd8')):0xead8,_0x10d621=_0x36e536?Symbol[_0x273326('0xce2')](_0x273326('0x9c7')):0xead3,_0x538c82=_0x36e536?Symbol['for'](_0x273326('0xa87')):0xead4,_0x144087=_0x36e536?Symbol['for'](_0x273326('0x7a8')):0xead9,_0x5dfcd7=_0x36e536?Symbol['for']('react.fundamental'):0xead5,_0x1d6359=_0x36e536?Symbol['for'](_0x273326('0x762')):0xead6,_0x35d210=_0x36e536?Symbol[_0x273326('0xce2')]('react.scope'):0xead7;function _0x32ab76(_0x4444c3){var _0x3cf6f4=_0x273326;if(_0x3cf6f4('0xbfd')==typeof _0x4444c3&&null!==_0x4444c3){var _0xefe4d1=_0x4444c3[_0x3cf6f4('0x5c0')];switch(_0xefe4d1){case _0x3b0941:var _0x3c1042=_0x4444c3['type'];switch(_0x3c1042){case _0x4c2e8a:case _0x4ee21f:case _0x58db15:case _0x48666f:case _0x2a66c8:case _0x3c268f:return _0x3c1042;default:var _0x4cf005=_0x3c1042&&_0x3c1042['$$typeof'];switch(_0x4cf005){case _0x413bac:case _0x404707:case _0x538c82:case _0x10d621:case _0x1a4380:return _0x4cf005;default:return _0xefe4d1;}}case _0x336bbc:return _0xefe4d1;}}}var _0x3ff0bb=_0x4c2e8a,_0x10ca4f=_0x4ee21f,_0x2b1fed=_0x413bac,_0x2f3480=_0x1a4380,_0x365e72=_0x3b0941,_0x58977e=_0x404707,_0x1312c3=_0x58db15,_0x30e58d=_0x538c82,_0x10ee1c=_0x10d621,_0x41f71b=_0x336bbc,_0x36e242=_0x48666f,_0x173f73=_0x2a66c8,_0x208d04=_0x3c268f,_0x42532e=!0x1;function _0x129a26(_0x539f37){return _0x32ab76(_0x539f37)===_0x4ee21f;}_0x31de6a[_0x273326('0xc5b')]=_0x3ff0bb,_0x31de6a[_0x273326('0x8b0')]=_0x10ca4f,_0x31de6a[_0x273326('0x96e')]=_0x2b1fed,_0x31de6a['ContextProvider']=_0x2f3480,_0x31de6a[_0x273326('0x50a')]=_0x365e72,_0x31de6a[_0x273326('0x5c2')]=_0x58977e,_0x31de6a['Fragment']=_0x1312c3,_0x31de6a['Lazy']=_0x30e58d,_0x31de6a[_0x273326('0x5fa')]=_0x10ee1c,_0x31de6a[_0x273326('0x2da')]=_0x41f71b,_0x31de6a[_0x273326('0xd6c')]=_0x36e242,_0x31de6a[_0x273326('0xd4a')]=_0x173f73,_0x31de6a['Suspense']=_0x208d04,_0x31de6a[_0x273326('0x6a9')]=function(_0x5a0acf){var _0x3168e5=_0x273326;return _0x42532e||(_0x42532e=!0x0,console[_0x3168e5('0xb26')]('The\x20ReactIs.isAsyncMode()\x20alias\x20has\x20been\x20deprecated,\x20and\x20will\x20be\x20removed\x20in\x20React\x2017+.\x20Update\x20your\x20code\x20to\x20use\x20ReactIs.isConcurrentMode()\x20instead.\x20It\x20has\x20the\x20exact\x20same\x20API.')),_0x129a26(_0x5a0acf)||_0x32ab76(_0x5a0acf)===_0x4c2e8a;},_0x31de6a[_0x273326('0x113')]=_0x129a26,_0x31de6a['isContextConsumer']=function(_0x454c6e){return _0x32ab76(_0x454c6e)===_0x413bac;},_0x31de6a[_0x273326('0x57f')]=function(_0x3ff21c){return _0x32ab76(_0x3ff21c)===_0x1a4380;},_0x31de6a[_0x273326('0x282')]=function(_0x322dcc){var _0xbb9084=_0x273326;return'object'==typeof _0x322dcc&&null!==_0x322dcc&&_0x322dcc[_0xbb9084('0x5c0')]===_0x3b0941;},_0x31de6a[_0x273326('0x90e')]=function(_0x8e9e57){return _0x32ab76(_0x8e9e57)===_0x404707;},_0x31de6a[_0x273326('0xc7a')]=function(_0x14de2a){return _0x32ab76(_0x14de2a)===_0x58db15;},_0x31de6a[_0x273326('0x1f3')]=function(_0x1b8a33){return _0x32ab76(_0x1b8a33)===_0x538c82;},_0x31de6a[_0x273326('0x39d')]=function(_0x152ee8){return _0x32ab76(_0x152ee8)===_0x10d621;},_0x31de6a[_0x273326('0xdf')]=function(_0x2b3c51){return _0x32ab76(_0x2b3c51)===_0x336bbc;},_0x31de6a[_0x273326('0x678')]=function(_0x154c8e){return _0x32ab76(_0x154c8e)===_0x48666f;},_0x31de6a[_0x273326('0x441')]=function(_0xfa406a){return _0x32ab76(_0xfa406a)===_0x2a66c8;},_0x31de6a['isSuspense']=function(_0x578cf9){return _0x32ab76(_0x578cf9)===_0x3c268f;},_0x31de6a[_0x273326('0x37e')]=function(_0x9246ac){var _0x4d0a82=_0x273326;return'string'==typeof _0x9246ac||_0x4d0a82('0xa25')==typeof _0x9246ac||_0x9246ac===_0x58db15||_0x9246ac===_0x4ee21f||_0x9246ac===_0x48666f||_0x9246ac===_0x2a66c8||_0x9246ac===_0x3c268f||_0x9246ac===_0x271916||_0x4d0a82('0xbfd')==typeof _0x9246ac&&null!==_0x9246ac&&(_0x9246ac['$$typeof']===_0x538c82||_0x9246ac[_0x4d0a82('0x5c0')]===_0x10d621||_0x9246ac['$$typeof']===_0x1a4380||_0x9246ac['$$typeof']===_0x413bac||_0x9246ac['$$typeof']===_0x404707||_0x9246ac['$$typeof']===_0x5dfcd7||_0x9246ac[_0x4d0a82('0x5c0')]===_0x1d6359||_0x9246ac['$$typeof']===_0x35d210||_0x9246ac[_0x4d0a82('0x5c0')]===_0x144087);},_0x31de6a[_0x273326('0xb48')]=_0x32ab76;}();}[_0x4ab5de('0x964')](this,_0x1dfcee('_process')));},{'_process':0x6}],0x16f:[function(_0x3c09ae,_0x5a9672,_0x3e79af){var _0x2fac0e=_0x38d28e;/** @license React v16.13.1 + +'use strict'; + + + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +// The Symbol used to tag the ReactElement-like types. If there is no native Symbol +// nor polyfill, then a plain number is used for performance. +var hasSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7; +var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca; +var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb; +var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc; +var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2; +var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd; +var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary +// (unstable) APIs that have been removed. Can we remove the symbols? + +var REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf; +var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf; +var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0; +var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1; +var REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8; +var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3; +var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4; +var REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9; +var REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5; +var REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6; +var REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7; + +function isValidElementType(type) { + return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill. + type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE); +} + +function typeOf(object) { + if (typeof object === 'object' && object !== null) { + var $$typeof = object.$$typeof; + + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + var type = object.type; + + switch (type) { + case REACT_ASYNC_MODE_TYPE: + case REACT_CONCURRENT_MODE_TYPE: + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + return type; + + default: + var $$typeofType = type && type.$$typeof; + + switch ($$typeofType) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + case REACT_PROVIDER_TYPE: + return $$typeofType; + + default: + return $$typeof; + } + + } + + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + + return undefined; +} // AsyncMode is deprecated along with isAsyncMode + +var AsyncMode = REACT_ASYNC_MODE_TYPE; +var ConcurrentMode = REACT_CONCURRENT_MODE_TYPE; +var ContextConsumer = REACT_CONTEXT_TYPE; +var ContextProvider = REACT_PROVIDER_TYPE; +var Element = REACT_ELEMENT_TYPE; +var ForwardRef = REACT_FORWARD_REF_TYPE; +var Fragment = REACT_FRAGMENT_TYPE; +var Lazy = REACT_LAZY_TYPE; +var Memo = REACT_MEMO_TYPE; +var Portal = REACT_PORTAL_TYPE; +var Profiler = REACT_PROFILER_TYPE; +var StrictMode = REACT_STRICT_MODE_TYPE; +var Suspense = REACT_SUSPENSE_TYPE; +var hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated + +function isAsyncMode(object) { + { + if (!hasWarnedAboutDeprecatedIsAsyncMode) { + hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint + + console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.'); + } + } + + return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE; +} +function isConcurrentMode(object) { + return typeOf(object) === REACT_CONCURRENT_MODE_TYPE; +} +function isContextConsumer(object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +} +function isContextProvider(object) { + return typeOf(object) === REACT_PROVIDER_TYPE; +} +function isElement(object) { + return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE; +} +function isForwardRef(object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +} +function isFragment(object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +} +function isLazy(object) { + return typeOf(object) === REACT_LAZY_TYPE; +} +function isMemo(object) { + return typeOf(object) === REACT_MEMO_TYPE; +} +function isPortal(object) { + return typeOf(object) === REACT_PORTAL_TYPE; +} +function isProfiler(object) { + return typeOf(object) === REACT_PROFILER_TYPE; +} +function isStrictMode(object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +} +function isSuspense(object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +} + +exports.AsyncMode = AsyncMode; +exports.ConcurrentMode = ConcurrentMode; +exports.ContextConsumer = ContextConsumer; +exports.ContextProvider = ContextProvider; +exports.Element = Element; +exports.ForwardRef = ForwardRef; +exports.Fragment = Fragment; +exports.Lazy = Lazy; +exports.Memo = Memo; +exports.Portal = Portal; +exports.Profiler = Profiler; +exports.StrictMode = StrictMode; +exports.Suspense = Suspense; +exports.isAsyncMode = isAsyncMode; +exports.isConcurrentMode = isConcurrentMode; +exports.isContextConsumer = isContextConsumer; +exports.isContextProvider = isContextProvider; +exports.isElement = isElement; +exports.isForwardRef = isForwardRef; +exports.isFragment = isFragment; +exports.isLazy = isLazy; +exports.isMemo = isMemo; +exports.isPortal = isPortal; +exports.isProfiler = isProfiler; +exports.isStrictMode = isStrictMode; +exports.isSuspense = isSuspense; +exports.isValidElementType = isValidElementType; +exports.typeOf = typeOf; + })(); +} + +}).call(this,require('_process')) + +},{"_process":6}],367:[function(require,module,exports){ +/** @license React v16.13.1 * react-is.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. @@ -25,4 +35245,2244 @@ object-assign * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -'use strict';var _0x562d9a=_0x2fac0e('0xa25')==typeof Symbol&&Symbol[_0x2fac0e('0xce2')],_0x462133=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0xbf5')):0xeac7,_0x292d4e=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x845')):0xeaca,_0x330e65=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x801')):0xeacb,_0x14b0ef=_0x562d9a?Symbol['for'](_0x2fac0e('0x2ef')):0xeacc,_0x1c50d6=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x414')):0xead2,_0x56649b=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x854')):0xeacd,_0x15d272=_0x562d9a?Symbol['for'](_0x2fac0e('0x558')):0xeace,_0x3a9d53=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0xdc7')):0xeacf,_0x445862=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x4fc')):0xeacf,_0x3e4ec8=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x243')):0xead0,_0x49b6d7=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x241')):0xead1,_0x5d16b6=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0xbd8')):0xead8,_0x3159ad=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x9c7')):0xead3,_0x2e6fa0=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0xa87')):0xead4,_0x2dbe8a=_0x562d9a?Symbol[_0x2fac0e('0xce2')]('react.block'):0xead9,_0x270951=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x8c0')):0xead5,_0x5a562c=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x762')):0xead6,_0x120eb5=_0x562d9a?Symbol[_0x2fac0e('0xce2')](_0x2fac0e('0x326')):0xead7;function _0x4f08c5(_0x4be75f){var _0x47e168=_0x2fac0e;if(_0x47e168('0xbfd')==typeof _0x4be75f&&null!==_0x4be75f){var _0x188c68=_0x4be75f[_0x47e168('0x5c0')];switch(_0x188c68){case _0x462133:switch(_0x4be75f=_0x4be75f[_0x47e168('0x18b')]){case _0x3a9d53:case _0x445862:case _0x330e65:case _0x1c50d6:case _0x14b0ef:case _0x49b6d7:return _0x4be75f;default:switch(_0x4be75f=_0x4be75f&&_0x4be75f['$$typeof']){case _0x15d272:case _0x3e4ec8:case _0x2e6fa0:case _0x3159ad:case _0x56649b:return _0x4be75f;default:return _0x188c68;}}case _0x292d4e:return _0x188c68;}}}function _0x491a6b(_0x1bbcae){return _0x4f08c5(_0x1bbcae)===_0x445862;}_0x3e79af[_0x2fac0e('0xc5b')]=_0x3a9d53,_0x3e79af[_0x2fac0e('0x8b0')]=_0x445862,_0x3e79af[_0x2fac0e('0x96e')]=_0x15d272,_0x3e79af['ContextProvider']=_0x56649b,_0x3e79af[_0x2fac0e('0x50a')]=_0x462133,_0x3e79af[_0x2fac0e('0x5c2')]=_0x3e4ec8,_0x3e79af['Fragment']=_0x330e65,_0x3e79af[_0x2fac0e('0xbfe')]=_0x2e6fa0,_0x3e79af[_0x2fac0e('0x5fa')]=_0x3159ad,_0x3e79af['Portal']=_0x292d4e,_0x3e79af['Profiler']=_0x1c50d6,_0x3e79af[_0x2fac0e('0xd4a')]=_0x14b0ef,_0x3e79af[_0x2fac0e('0xaee')]=_0x49b6d7,_0x3e79af[_0x2fac0e('0x6a9')]=function(_0x58972a){return _0x491a6b(_0x58972a)||_0x4f08c5(_0x58972a)===_0x3a9d53;},_0x3e79af[_0x2fac0e('0x113')]=_0x491a6b,_0x3e79af['isContextConsumer']=function(_0x13875c){return _0x4f08c5(_0x13875c)===_0x15d272;},_0x3e79af[_0x2fac0e('0x57f')]=function(_0x20c756){return _0x4f08c5(_0x20c756)===_0x56649b;},_0x3e79af[_0x2fac0e('0x282')]=function(_0xaf2607){var _0x365719=_0x2fac0e;return'object'==typeof _0xaf2607&&null!==_0xaf2607&&_0xaf2607[_0x365719('0x5c0')]===_0x462133;},_0x3e79af['isForwardRef']=function(_0x49db5a){return _0x4f08c5(_0x49db5a)===_0x3e4ec8;},_0x3e79af['isFragment']=function(_0x2e20b8){return _0x4f08c5(_0x2e20b8)===_0x330e65;},_0x3e79af[_0x2fac0e('0x1f3')]=function(_0x17ba75){return _0x4f08c5(_0x17ba75)===_0x2e6fa0;},_0x3e79af[_0x2fac0e('0x39d')]=function(_0x3dccbc){return _0x4f08c5(_0x3dccbc)===_0x3159ad;},_0x3e79af[_0x2fac0e('0xdf')]=function(_0x4f6268){return _0x4f08c5(_0x4f6268)===_0x292d4e;},_0x3e79af[_0x2fac0e('0x678')]=function(_0x5b3490){return _0x4f08c5(_0x5b3490)===_0x1c50d6;},_0x3e79af[_0x2fac0e('0x441')]=function(_0x280099){return _0x4f08c5(_0x280099)===_0x14b0ef;},_0x3e79af[_0x2fac0e('0x503')]=function(_0x22244d){return _0x4f08c5(_0x22244d)===_0x49b6d7;},_0x3e79af['isValidElementType']=function(_0x356064){var _0x4511c2=_0x2fac0e;return _0x4511c2('0x3fd')==typeof _0x356064||_0x4511c2('0xa25')==typeof _0x356064||_0x356064===_0x330e65||_0x356064===_0x445862||_0x356064===_0x1c50d6||_0x356064===_0x14b0ef||_0x356064===_0x49b6d7||_0x356064===_0x5d16b6||_0x4511c2('0xbfd')==typeof _0x356064&&null!==_0x356064&&(_0x356064[_0x4511c2('0x5c0')]===_0x2e6fa0||_0x356064[_0x4511c2('0x5c0')]===_0x3159ad||_0x356064['$$typeof']===_0x56649b||_0x356064[_0x4511c2('0x5c0')]===_0x15d272||_0x356064['$$typeof']===_0x3e4ec8||_0x356064[_0x4511c2('0x5c0')]===_0x270951||_0x356064[_0x4511c2('0x5c0')]===_0x5a562c||_0x356064[_0x4511c2('0x5c0')]===_0x120eb5||_0x356064['$$typeof']===_0x2dbe8a);},_0x3e79af[_0x2fac0e('0xb48')]=_0x4f08c5;},{}],0x170:[function(_0x4dd546,_0x5cf7e9,_0x20dfa4){var _0x1a45d4=_0x38d28e;(function(_0x4ca3ae){var _0x5951fe=_0x1c0e;'use strict';_0x5951fe('0x5af')===_0x4ca3ae[_0x5951fe('0x68b')][_0x5951fe('0x9a4')]?_0x5cf7e9['exports']=_0x4dd546(_0x5951fe('0x8ce')):_0x5cf7e9[_0x5951fe('0xd7')]=_0x4dd546(_0x5951fe('0x65'));}[_0x1a45d4('0x964')](this,_0x4dd546('_process')));},{'./cjs/react-is.development.js':0x16e,'./cjs/react-is.production.min.js':0x16f,'_process':0x6}],0x171:[function(_0x69e4ec,_0x342f6f,_0x166d4c){!function(_0x18ea47,_0x5e536d){var _0x232b38=_0x1c0e;_0x232b38('0xbfd')==typeof _0x166d4c&&_0x232b38('0xbfd')==typeof _0x342f6f?_0x342f6f[_0x232b38('0xd7')]=_0x5e536d(_0x69e4ec(_0x232b38('0x2dd')),_0x69e4ec(_0x232b38('0x2cd')),_0x69e4ec('signature_pad'),_0x69e4ec('trim-canvas')):'function'==typeof define&&define['amd']?define([_0x232b38('0x2dd'),_0x232b38('0x2cd'),'signature_pad','trim-canvas'],_0x5e536d):_0x232b38('0xbfd')==typeof _0x166d4c?_0x166d4c[_0x232b38('0x936')]=_0x5e536d(_0x69e4ec(_0x232b38('0x2dd')),_0x69e4ec(_0x232b38('0x2cd')),_0x69e4ec(_0x232b38('0x9bf')),_0x69e4ec(_0x232b38('0x7d3'))):_0x18ea47[_0x232b38('0x936')]=_0x5e536d(_0x18ea47['prop-types'],_0x18ea47[_0x232b38('0x2cd')],_0x18ea47[_0x232b38('0x9bf')],_0x18ea47['trim-canvas']);}(this,function(_0x5c49de,_0x47c0ba,_0x33e48d,_0x5bfdef){return function(_0x556cd9){function _0x4b2e75(_0x6ef0ef){var _0x17adae=_0x1c0e;if(_0x308db9[_0x6ef0ef])return _0x308db9[_0x6ef0ef]['exports'];var _0x208add=_0x308db9[_0x6ef0ef]={'exports':{},'id':_0x6ef0ef,'loaded':!0x1};return _0x556cd9[_0x6ef0ef]['call'](_0x208add[_0x17adae('0xd7')],_0x208add,_0x208add[_0x17adae('0xd7')],_0x4b2e75),_0x208add[_0x17adae('0x9b7')]=!0x0,_0x208add['exports'];}var _0x308db9={};return _0x4b2e75['m']=_0x556cd9,_0x4b2e75['c']=_0x308db9,_0x4b2e75['p']='',_0x4b2e75(0x0);}([function(_0x322c24,_0x45fa48,_0x3cab82){var _0x51e1c5=_0x1c0e;'use strict';function _0x346892(_0x268589){var _0x110f0b=_0x1c0e;return _0x268589&&_0x268589[_0x110f0b('0x8bc')]?_0x268589:{'default':_0x268589};}function _0x37fd3f(_0x29ce7e,_0x3c40e4){var _0x3634fb=_0x1c0e,_0x125018={};for(var _0x53f62a in _0x29ce7e)_0x3c40e4['indexOf'](_0x53f62a)>=0x0||Object[_0x3634fb('0x539')][_0x3634fb('0x1a8')][_0x3634fb('0x964')](_0x29ce7e,_0x53f62a)&&(_0x125018[_0x53f62a]=_0x29ce7e[_0x53f62a]);return _0x125018;}function _0x1c1646(_0x4033d2,_0x28f117){var _0x48ddc3=_0x1c0e;if(!(_0x4033d2 instanceof _0x28f117))throw new TypeError(_0x48ddc3('0x9a0'));}function _0x35561f(_0x1e9179,_0x211ac9){var _0xeeb41a=_0x1c0e;if(!_0x1e9179)throw new ReferenceError(_0xeeb41a('0xcf6'));return!_0x211ac9||_0xeeb41a('0xbfd')!=typeof _0x211ac9&&_0xeeb41a('0xa25')!=typeof _0x211ac9?_0x1e9179:_0x211ac9;}Object[_0x51e1c5('0x751')](_0x45fa48,_0x51e1c5('0x8bc'),{'value':!0x0});var _0x408998=Object[_0x51e1c5('0xd71')]||function(_0x3a5cc3){var _0x441916=_0x51e1c5;for(var _0x39f674=0x1;_0x39f6740x1&&void 0x0!==arguments[0x1]?arguments[0x1]:_0x328bf9('0x943');return function(_0x1d7e0b){function _0x1d15b3(){var _0xd0d439=_0x1c0e,_0x3694ac,_0x1f13ae,_0x4a7304;_0x1466d8(this,_0x1d15b3);for(var _0x3a93d2=arguments[_0xd0d439('0x796')],_0xd99f48=Array(_0x3a93d2),_0x1ac686=0x0;_0x1ac686<_0x3a93d2;_0x1ac686++)_0xd99f48[_0x1ac686]=arguments[_0x1ac686];return _0x1f13ae=_0x4a7304=_0x485234(this,(_0x3694ac=_0x1d15b3[_0xd0d439('0xcb9')]||Object[_0xd0d439('0x85e')](_0x1d15b3))[_0xd0d439('0x964')][_0xd0d439('0x365')](_0x3694ac,[this][_0xd0d439('0x4c2')](_0xd99f48))),_0x4a7304['state']={'active':!0x1},_0x4a7304[_0xd0d439('0x20d')]=function(){return _0x4a7304['setState']({'active':!0x0});},_0x4a7304[_0xd0d439('0x1c9')]=function(){return _0x4a7304['setState']({'active':!0x1});},_0x4a7304[_0xd0d439('0x358')]=function(){var _0x462cf3=_0xd0d439;return _0x59be81[_0x462cf3('0x8fd')]['createElement'](_0x4acf97,{'onMouseDown':_0x4a7304[_0x462cf3('0x20d')],'onMouseUp':_0x4a7304[_0x462cf3('0x1c9')]},_0x59be81[_0x462cf3('0x8fd')][_0x462cf3('0x6b7')](_0x2f70a3,_0x32e7ea({},_0x4a7304['props'],_0x4a7304[_0x462cf3('0x7b0')])));},_0x485234(_0x4a7304,_0x1f13ae);}return _0x6695c9(_0x1d15b3,_0x1d7e0b),_0x1d15b3;}(_0x59be81[_0x328bf9('0x8fd')][_0x328bf9('0x2c')]);};_0x2eda59['default']=_0x4a59fc;},{'react':_0x38d28e('0x2cd')}],0x174:[function(_0x1a25c0,_0x53f536,_0x5094a1){var _0x2515ea=_0x38d28e;'use strict';Object[_0x2515ea('0x751')](_0x5094a1,_0x2515ea('0x8bc'),{'value':!0x0}),_0x5094a1[_0x2515ea('0x98d')]=void 0x0;var _0x159be6,_0x1ed196=Object[_0x2515ea('0xd71')]||function(_0x451fd9){var _0x26db1a=_0x2515ea;for(var _0x206e49=0x1;_0x206e490x1&&void 0x0!==arguments[0x1]?arguments[0x1]:'span';return function(_0xdf01d0){function _0x218581(){var _0x2663f0=_0x1c0e,_0x33e01a,_0x4bb19f,_0x2ff825;_0x2f5da6(this,_0x218581);for(var _0x3a3e5e=arguments['length'],_0x48ee52=Array(_0x3a3e5e),_0x1b6aa6=0x0;_0x1b6aa6<_0x3a3e5e;_0x1b6aa6++)_0x48ee52[_0x1b6aa6]=arguments[_0x1b6aa6];return _0x4bb19f=_0x2ff825=_0x369634(this,(_0x33e01a=_0x218581[_0x2663f0('0xcb9')]||Object[_0x2663f0('0x85e')](_0x218581))[_0x2663f0('0x964')][_0x2663f0('0x365')](_0x33e01a,[this]['concat'](_0x48ee52))),_0x2ff825[_0x2663f0('0x7b0')]={'hover':!0x1},_0x2ff825['handleMouseOver']=function(){var _0x451bef=_0x2663f0;return _0x2ff825[_0x451bef('0x4e1')]({'hover':!0x0});},_0x2ff825[_0x2663f0('0x38c')]=function(){var _0x5eece2=_0x2663f0;return _0x2ff825[_0x5eece2('0x4e1')]({'hover':!0x1});},_0x2ff825[_0x2663f0('0x358')]=function(){var _0x426a94=_0x2663f0;return _0x34fa5b['default'][_0x426a94('0x6b7')](_0x2d1748,{'onMouseOver':_0x2ff825[_0x426a94('0xdc')],'onMouseOut':_0x2ff825[_0x426a94('0x38c')]},_0x34fa5b[_0x426a94('0x8fd')]['createElement'](_0xc94c39,_0x1ed196({},_0x2ff825['props'],_0x2ff825[_0x426a94('0x7b0')])));},_0x369634(_0x2ff825,_0x4bb19f);}return _0x28cc84(_0x218581,_0xdf01d0),_0x218581;}(_0x34fa5b[_0x47b6e6('0x8fd')][_0x47b6e6('0x2c')]);};_0x5094a1[_0x2515ea('0x8fd')]=_0x37a2da;},{'react':_0x38d28e('0x2cd')}],0x175:[function(_0x3723ed,_0x37bfab,_0x9c79ba){var _0x313df2=_0x38d28e;'use strict';Object[_0x313df2('0x751')](_0x9c79ba,_0x313df2('0x8bc'),{'value':!0x0}),_0x9c79ba['flattenNames']=void 0x0;var _0x14e790=_0x1342b8(_0x3723ed('lodash/isString')),_0x58954f=_0x1342b8(_0x3723ed('lodash/forOwn')),_0x4a73b0=_0x1342b8(_0x3723ed('lodash/isPlainObject')),_0x38843a=_0x1342b8(_0x3723ed(_0x313df2('0x7f0')));function _0x1342b8(_0xd0dfbe){return _0xd0dfbe&&_0xd0dfbe['__esModule']?_0xd0dfbe:{'default':_0xd0dfbe};}var _0x29ca44=_0x9c79ba['flattenNames']=function _0x5a2da4(){var _0x4ee72a=_0x313df2,_0x2a8f7b=arguments[_0x4ee72a('0x796')]>0x0&&void 0x0!==arguments[0x0]?arguments[0x0]:[],_0x4c4317=[];return(0x0,_0x38843a[_0x4ee72a('0x8fd')])(_0x2a8f7b,function(_0xc1a056){var _0x4bfa01=_0x4ee72a;Array[_0x4bfa01('0xff')](_0xc1a056)?_0x5a2da4(_0xc1a056)[_0x4bfa01('0xc78')](function(_0xc3d16e){var _0x24fc2d=_0x4bfa01;return _0x4c4317[_0x24fc2d('0xb2')](_0xc3d16e);}):(0x0,_0x4a73b0[_0x4bfa01('0x8fd')])(_0xc1a056)?(0x0,_0x58954f[_0x4bfa01('0x8fd')])(_0xc1a056,function(_0x7f4155,_0x5bc28e){var _0x5d731d=_0x4bfa01;!0x0===_0x7f4155&&_0x4c4317[_0x5d731d('0xb2')](_0x5bc28e),_0x4c4317['push'](_0x5bc28e+'-'+_0x7f4155);}):(0x0,_0x14e790['default'])(_0xc1a056)&&_0x4c4317[_0x4bfa01('0xb2')](_0xc1a056);}),_0x4c4317;};_0x9c79ba[_0x313df2('0x8fd')]=_0x29ca44;},{'lodash/forOwn':0x10f,'lodash/isPlainObject':0x11d,'lodash/isString':0x11f,'lodash/map':0x125}],0x176:[function(_0x5fa4ef,_0x42f81d,_0x5b0e21){var _0x29b57b=_0x38d28e;'use strict';Object['defineProperty'](_0x5b0e21,_0x29b57b('0x8bc'),{'value':!0x0}),_0x5b0e21['ReactCSS']=_0x5b0e21[_0x29b57b('0xcf5')]=_0x5b0e21[_0x29b57b('0x4ec')]=_0x5b0e21[_0x29b57b('0x17')]=_0x5b0e21[_0x29b57b('0x98d')]=void 0x0;var _0x566dac=_0x5d6073(_0x5fa4ef(_0x29b57b('0x651'))),_0x5da9d7=_0x5d6073(_0x5fa4ef('./mergeClasses')),_0x4a840e=_0x5d6073(_0x5fa4ef(_0x29b57b('0x8ad'))),_0x180ebe=_0x5d6073(_0x5fa4ef(_0x29b57b('0x19e'))),_0x437814=_0x5d6073(_0x5fa4ef('./components/active')),_0x256c6a=_0x5d6073(_0x5fa4ef('./loop'));function _0x5d6073(_0x362c14){var _0x9ae18f=_0x29b57b;return _0x362c14&&_0x362c14[_0x9ae18f('0x8bc')]?_0x362c14:{'default':_0x362c14};}_0x5b0e21[_0x29b57b('0x98d')]=_0x180ebe[_0x29b57b('0x8fd')],_0x5b0e21['handleHover']=_0x180ebe[_0x29b57b('0x8fd')],_0x5b0e21[_0x29b57b('0x4ec')]=_0x437814['default'],_0x5b0e21['loop']=_0x256c6a['default'];var _0x215d62=_0x5b0e21[_0x29b57b('0xd2b')]=function(_0x3cb8ed){var _0x3f0b8e=_0x29b57b;for(var _0x21097c=arguments[_0x3f0b8e('0x796')],_0x3c29ba=Array(_0x21097c>0x1?_0x21097c-0x1:0x0),_0x123235=0x1;_0x123235<_0x21097c;_0x123235++)_0x3c29ba[_0x123235-0x1]=arguments[_0x123235];var _0x3c383a=(0x0,_0x566dac['default'])(_0x3c29ba),_0xd4c782=(0x0,_0x5da9d7['default'])(_0x3cb8ed,_0x3c383a);return(0x0,_0x4a840e[_0x3f0b8e('0x8fd')])(_0xd4c782);};_0x5b0e21['default']=_0x215d62;},{'./autoprefix':0x172,'./components/active':0x173,'./components/hover':0x174,'./flattenNames':0x175,'./loop':0x177,'./mergeClasses':0x178}],0x177:[function(_0x3c7f06,_0x33922f,_0x4f6039){var _0x5cd47d=_0x38d28e;'use strict';Object[_0x5cd47d('0x751')](_0x4f6039,'__esModule',{'value':!0x0}),_0x4f6039['default']=function(_0x1af11f,_0x202805){var _0x2bba80=_0x5cd47d,_0x2f274c={},_0x584330=function(_0x2db712){var _0x4f2290=_0x1c0e,_0x4bdabe=!(arguments[_0x4f2290('0x796')]>0x1&&void 0x0!==arguments[0x1])||arguments[0x1];_0x2f274c[_0x2db712]=_0x4bdabe;};return 0x0===_0x1af11f&&_0x584330(_0x2bba80('0x632')),_0x1af11f===_0x202805-0x1&&_0x584330(_0x2bba80('0xb07')),(0x0===_0x1af11f||_0x1af11f%0x2==0x0)&&_0x584330('even'),0x1===Math[_0x2bba80('0x72d')](_0x1af11f%0x2)&&_0x584330(_0x2bba80('0xb91')),_0x584330(_0x2bba80('0x24c'),_0x1af11f),_0x2f274c;};},{}],0x178:[function(_0x12e555,_0x5baa14,_0x33fc96){var _0x1b9d90=_0x38d28e;'use strict';Object[_0x1b9d90('0x751')](_0x33fc96,_0x1b9d90('0x8bc'),{'value':!0x0}),_0x33fc96[_0x1b9d90('0xcd0')]=void 0x0;var _0x21fac2=_0x543500(_0x12e555(_0x1b9d90('0x847'))),_0x188b7a=_0x543500(_0x12e555('lodash/cloneDeep')),_0x2e3106=Object['assign']||function(_0x4b42a8){var _0x392490=_0x1b9d90;for(var _0x17c7d3=0x1;_0x17c7d30x1&&void 0x0!==arguments[0x1]?arguments[0x1]:[],_0x3db751=_0x2915af[_0x32614b('0x8fd')]&&(0x0,_0x188b7a[_0x32614b('0x8fd')])(_0x2915af[_0x32614b('0x8fd')])||{};return _0x35681c[_0x32614b('0xc78')](function(_0x147373){var _0x4b9555=_0x32614b,_0x28be3e=_0x2915af[_0x147373];return _0x28be3e&&(0x0,_0x21fac2[_0x4b9555('0x8fd')])(_0x28be3e,function(_0x4349ed,_0x46fb1a){_0x3db751[_0x46fb1a]||(_0x3db751[_0x46fb1a]={}),_0x3db751[_0x46fb1a]=_0x2e3106({},_0x3db751[_0x46fb1a],_0x28be3e[_0x46fb1a]);}),_0x147373;}),_0x3db751;};_0x33fc96[_0x1b9d90('0x8fd')]=_0x3fe2ef;},{'lodash/cloneDeep':0x109,'lodash/forOwn':0x10f}],0x179:[function(_0x11f32f,_0x287ba8,_0x87d05f){!function(_0x379281,_0x12bbd0){var _0x31b96d=_0x1c0e;_0x31b96d('0xbfd')==typeof _0x87d05f&&void 0x0!==_0x287ba8?_0x287ba8[_0x31b96d('0xd7')]=_0x12bbd0():_0x31b96d('0xa25')==typeof define&&define[_0x31b96d('0x9fd')]?define(_0x12bbd0):_0x379281[_0x31b96d('0x8f1')]=_0x12bbd0();}(this,function(){var _0x1327a1=_0x1c0e;'use strict';function _0xb5e29d(_0x47f3e3,_0xb917c4,_0xbc7b09){var _0x2c3e70=_0x1c0e;this['x']=_0x47f3e3,this['y']=_0xb917c4,this[_0x2c3e70('0xd49')]=_0xbc7b09||new Date()[_0x2c3e70('0x2f4')]();}function _0x11b0df(_0x4b607d,_0x12ca27,_0x5bd98b,_0x33d3c3){var _0x9ae85a=_0x1c0e;this['startPoint']=_0x4b607d,this[_0x9ae85a('0x9')]=_0x12ca27,this[_0x9ae85a('0x832')]=_0x5bd98b,this[_0x9ae85a('0x9ee')]=_0x33d3c3;}function _0xb0d3e(_0x26c99f,_0x240adf){var _0x26e821=_0x1c0e,_0x2c1f56=this,_0x111c47=_0x240adf||{};this['velocityFilterWeight']=_0x111c47['velocityFilterWeight']||0.7,this[_0x26e821('0xb72')]=_0x111c47[_0x26e821('0xb72')]||0.5,this[_0x26e821('0x733')]=_0x111c47['maxWidth']||2.5,this[_0x26e821('0x48f')]=_0x26e821('0x48f')in _0x111c47?_0x111c47[_0x26e821('0x48f')]:0x10,this[_0x26e821('0xa80')]='minDistance'in _0x111c47?_0x111c47[_0x26e821('0xa80')]:0x5,this['throttle']?this[_0x26e821('0x209')]=function(_0x32681f,_0x8251f9,_0x5978d3){var _0x4120f0,_0x49f50f,_0x12bb04,_0x36a290=null,_0x17cfdb=0x0;_0x5978d3||(_0x5978d3={});var _0x320542=function(){var _0x443dc1=_0x1c0e;_0x17cfdb=!0x1===_0x5978d3[_0x443dc1('0xa44')]?0x0:Date[_0x443dc1('0x3f4')](),_0x36a290=null,_0x12bb04=_0x32681f['apply'](_0x4120f0,_0x49f50f),_0x36a290||(_0x4120f0=_0x49f50f=null);};return function(){var _0x468d5e=_0x1c0e,_0xfdd51e=Date[_0x468d5e('0x3f4')]();_0x17cfdb||!0x1!==_0x5978d3[_0x468d5e('0xa44')]||(_0x17cfdb=_0xfdd51e);var _0x253b06=_0x8251f9-(_0xfdd51e-_0x17cfdb);return _0x4120f0=this,_0x49f50f=arguments,_0x253b06<=0x0||_0x253b06>_0x8251f9?(_0x36a290&&(clearTimeout(_0x36a290),_0x36a290=null),_0x17cfdb=_0xfdd51e,_0x12bb04=_0x32681f['apply'](_0x4120f0,_0x49f50f),_0x36a290||(_0x4120f0=_0x49f50f=null)):_0x36a290||!0x1===_0x5978d3[_0x468d5e('0x3cc')]||(_0x36a290=setTimeout(_0x320542,_0x253b06)),_0x12bb04;};}(_0xb0d3e[_0x26e821('0x539')][_0x26e821('0x732')],this[_0x26e821('0x48f')]):this[_0x26e821('0x209')]=_0xb0d3e['prototype'][_0x26e821('0x732')],this[_0x26e821('0xaa9')]=_0x111c47[_0x26e821('0xaa9')]||function(){var _0x168bf9=_0x26e821;return(this['minWidth']+this[_0x168bf9('0x733')])/0x2;},this[_0x26e821('0xa8b')]=_0x111c47['penColor']||_0x26e821('0x972'),this[_0x26e821('0x579')]=_0x111c47[_0x26e821('0x579')]||_0x26e821('0xca0'),this[_0x26e821('0xd9')]=_0x111c47['onBegin'],this[_0x26e821('0x430')]=_0x111c47[_0x26e821('0x430')],this[_0x26e821('0xa01')]=_0x26c99f,this[_0x26e821('0x155')]=_0x26c99f[_0x26e821('0x114')]('2d'),this['clear'](),this[_0x26e821('0xc01')]=function(_0x156b6f){var _0x7fe781=_0x26e821;0x1===_0x156b6f[_0x7fe781('0x1a1')]&&(_0x2c1f56['_mouseButtonDown']=!0x0,_0x2c1f56['_strokeBegin'](_0x156b6f));},this[_0x26e821('0x1f9')]=function(_0x599e89){var _0x49cdd9=_0x26e821;_0x2c1f56[_0x49cdd9('0x67c')]&&_0x2c1f56[_0x49cdd9('0x209')](_0x599e89);},this['_handleMouseUp']=function(_0x389754){var _0x327962=_0x26e821;0x1===_0x389754[_0x327962('0x1a1')]&&_0x2c1f56[_0x327962('0x67c')]&&(_0x2c1f56[_0x327962('0x67c')]=!0x1,_0x2c1f56[_0x327962('0xa16')](_0x389754));},this[_0x26e821('0xb')]=function(_0x5104c0){var _0x117609=_0x26e821;if(0x1===_0x5104c0[_0x117609('0xbc4')][_0x117609('0x796')]){var _0x5e4ace=_0x5104c0[_0x117609('0xd86')][0x0];_0x2c1f56[_0x117609('0xa54')](_0x5e4ace);}},this[_0x26e821('0x4bd')]=function(_0x190b3a){_0x190b3a['preventDefault']();var _0x57b08c=_0x190b3a['targetTouches'][0x0];_0x2c1f56['_strokeMoveUpdate'](_0x57b08c);},this['_handleTouchEnd']=function(_0x47553e){var _0x31288b=_0x26e821;_0x47553e[_0x31288b('0xbf8')]===_0x2c1f56[_0x31288b('0xa01')]&&(_0x47553e['preventDefault'](),_0x2c1f56[_0x31288b('0xa16')](_0x47553e));},this['on']();}return _0xb5e29d[_0x1327a1('0x539')]['velocityFrom']=function(_0x4e1ecb){var _0x1e8d2a=_0x1327a1;return this[_0x1e8d2a('0xd49')]!==_0x4e1ecb[_0x1e8d2a('0xd49')]?this['distanceTo'](_0x4e1ecb)/(this['time']-_0x4e1ecb[_0x1e8d2a('0xd49')]):0x1;},_0xb5e29d[_0x1327a1('0x539')]['distanceTo']=function(_0x12aed5){var _0x1c26b6=_0x1327a1;return Math[_0x1c26b6('0xabd')](Math[_0x1c26b6('0x43e')](this['x']-_0x12aed5['x'],0x2)+Math[_0x1c26b6('0x43e')](this['y']-_0x12aed5['y'],0x2));},_0xb5e29d['prototype'][_0x1327a1('0xb51')]=function(_0x16af3b){var _0x3e84a0=_0x1327a1;return this['x']===_0x16af3b['x']&&this['y']===_0x16af3b['y']&&this[_0x3e84a0('0xd49')]===_0x16af3b['time'];},_0x11b0df[_0x1327a1('0x539')][_0x1327a1('0x796')]=function(){var _0x1aaf39=_0x1327a1;for(var _0x145078=0x0,_0x127c5e=void 0x0,_0x3f0fbc=void 0x0,_0x19f5e3=0x0;_0x19f5e3<=0xa;_0x19f5e3+=0x1){var _0x281165=_0x19f5e3/0xa,_0x5cf49c=this[_0x1aaf39('0xb70')](_0x281165,this[_0x1aaf39('0x647')]['x'],this[_0x1aaf39('0x9')]['x'],this['control2']['x'],this['endPoint']['x']),_0x46af23=this[_0x1aaf39('0xb70')](_0x281165,this['startPoint']['y'],this[_0x1aaf39('0x9')]['y'],this[_0x1aaf39('0x832')]['y'],this[_0x1aaf39('0x9ee')]['y']);if(_0x19f5e3>0x0){var _0x5c5779=_0x5cf49c-_0x127c5e,_0x1116b1=_0x46af23-_0x3f0fbc;_0x145078+=Math['sqrt'](_0x5c5779*_0x5c5779+_0x1116b1*_0x1116b1);}_0x127c5e=_0x5cf49c,_0x3f0fbc=_0x46af23;}return _0x145078;},_0x11b0df[_0x1327a1('0x539')][_0x1327a1('0xb70')]=function(_0x2c8e35,_0x480e41,_0x273028,_0xecea73,_0x5b8eed){return _0x480e41*(0x1-_0x2c8e35)*(0x1-_0x2c8e35)*(0x1-_0x2c8e35)+0x3*_0x273028*(0x1-_0x2c8e35)*(0x1-_0x2c8e35)*_0x2c8e35+0x3*_0xecea73*(0x1-_0x2c8e35)*_0x2c8e35*_0x2c8e35+_0x5b8eed*_0x2c8e35*_0x2c8e35*_0x2c8e35;},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0x45')]=function(){var _0x192cd6=_0x1327a1,_0x397d6a=this['_ctx'],_0x2f432b=this[_0x192cd6('0xa01')];_0x397d6a[_0x192cd6('0xc86')]=this[_0x192cd6('0x579')],_0x397d6a['clearRect'](0x0,0x0,_0x2f432b[_0x192cd6('0x5f9')],_0x2f432b['height']),_0x397d6a[_0x192cd6('0xd32')](0x0,0x0,_0x2f432b['width'],_0x2f432b['height']),this['_data']=[],this[_0x192cd6('0xd6')](),this[_0x192cd6('0x405')]=!0x0;},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0x488')]=function(_0xcd56c3){var _0x436a21=_0x1327a1,_0x1ad2a6=this,_0x441341=arguments[_0x436a21('0x796')]>0x1&&void 0x0!==arguments[0x1]?arguments[0x1]:{},_0x1fa279=new Image(),_0x4b8482=_0x441341[_0x436a21('0xb78')]||window[_0x436a21('0x564')]||0x1,_0x3aeda6=_0x441341['width']||this[_0x436a21('0xa01')][_0x436a21('0x5f9')]/_0x4b8482,_0x1cd6c6=_0x441341[_0x436a21('0x3e')]||this[_0x436a21('0xa01')]['height']/_0x4b8482;this[_0x436a21('0xd6')](),_0x1fa279[_0x436a21('0xa71')]=_0xcd56c3,_0x1fa279[_0x436a21('0xb0f')]=function(){var _0x22260e=_0x436a21;_0x1ad2a6[_0x22260e('0x155')][_0x22260e('0xe7')](_0x1fa279,0x0,0x0,_0x3aeda6,_0x1cd6c6);},this[_0x436a21('0x405')]=!0x1;},_0xb0d3e[_0x1327a1('0x539')]['toDataURL']=function(_0x3032e6){var _0x2be64e=_0x1327a1,_0x30c80e;switch(_0x3032e6){case _0x2be64e('0x42f'):return this[_0x2be64e('0x1b2')]();default:for(var _0x5d237f=arguments[_0x2be64e('0x796')],_0x275bc3=Array(_0x5d237f>0x1?_0x5d237f-0x1:0x0),_0x2fbefc=0x1;_0x2fbefc<_0x5d237f;_0x2fbefc++)_0x275bc3[_0x2fbefc-0x1]=arguments[_0x2fbefc];return(_0x30c80e=this['_canvas'])[_0x2be64e('0x27f')][_0x2be64e('0x365')](_0x30c80e,[_0x3032e6][_0x2be64e('0x4c2')](_0x275bc3));}},_0xb0d3e[_0x1327a1('0x539')]['on']=function(){this['_handleMouseEvents'](),this['_handleTouchEvents']();},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0x123')]=function(){var _0x1409c5=_0x1327a1;this[_0x1409c5('0xa01')][_0x1409c5('0xd8d')](_0x1409c5('0x442'),this['_handleMouseDown']),this[_0x1409c5('0xa01')]['removeEventListener'](_0x1409c5('0xae6'),this[_0x1409c5('0x1f9')]),document[_0x1409c5('0xd8d')]('mouseup',this['_handleMouseUp']),this[_0x1409c5('0xa01')]['removeEventListener'](_0x1409c5('0x71'),this[_0x1409c5('0xb')]),this[_0x1409c5('0xa01')]['removeEventListener'](_0x1409c5('0x94f'),this[_0x1409c5('0x4bd')]),this['_canvas'][_0x1409c5('0xd8d')](_0x1409c5('0x607'),this[_0x1409c5('0x983')]);},_0xb0d3e['prototype'][_0x1327a1('0xbc9')]=function(){return this['_isEmpty'];},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0xa54')]=function(_0x381bb0){var _0x544f05=_0x1327a1;this[_0x544f05('0x7a3')][_0x544f05('0xb2')]([]),this[_0x544f05('0xd6')](),this['_strokeUpdate'](_0x381bb0),_0x544f05('0xa25')==typeof this[_0x544f05('0xd9')]&&this['onBegin'](_0x381bb0);},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0x732')]=function(_0x4c35ab){var _0x117ac4=_0x1327a1,_0x473a68=_0x4c35ab[_0x117ac4('0x235')],_0x266281=_0x4c35ab[_0x117ac4('0xd33')],_0x36f935=this[_0x117ac4('0xde2')](_0x473a68,_0x266281),_0x11c7bb=this[_0x117ac4('0x7a3')][this['_data'][_0x117ac4('0x796')]-0x1],_0x4f1d67=_0x11c7bb&&_0x11c7bb[_0x11c7bb[_0x117ac4('0x796')]-0x1],_0x1fce61=_0x4f1d67&&_0x36f935[_0x117ac4('0x896')](_0x4f1d67)0x2,_0x3b0389=this[_0x530a3e('0xd4b')][0x0];if(!_0x5817cb&&_0x3b0389&&this[_0x530a3e('0xc6e')](_0x3b0389),_0x3b0389){var _0x262f86=this[_0x530a3e('0x7a3')][this[_0x530a3e('0x7a3')][_0x530a3e('0x796')]-0x1],_0x358721=_0x262f86[_0x262f86[_0x530a3e('0x796')]-0x1];_0x3b0389[_0x530a3e('0xb51')](_0x358721)||_0x262f86[_0x530a3e('0xb2')]({'x':_0x3b0389['x'],'y':_0x3b0389['y'],'time':_0x3b0389[_0x530a3e('0xd49')],'color':this[_0x530a3e('0xa8b')]});}'function'==typeof this['onEnd']&&this[_0x530a3e('0x430')](_0x14cc1d);},_0xb0d3e[_0x1327a1('0x539')]['_handleMouseEvents']=function(){var _0x5cdbae=_0x1327a1;this[_0x5cdbae('0x67c')]=!0x1,this[_0x5cdbae('0xa01')][_0x5cdbae('0xa89')](_0x5cdbae('0x442'),this[_0x5cdbae('0xc01')]),this[_0x5cdbae('0xa01')]['addEventListener'](_0x5cdbae('0xae6'),this[_0x5cdbae('0x1f9')]),document[_0x5cdbae('0xa89')](_0x5cdbae('0x397'),this[_0x5cdbae('0x120')]);},_0xb0d3e['prototype']['_handleTouchEvents']=function(){var _0x284b4f=_0x1327a1;this['_canvas'][_0x284b4f('0xc76')][_0x284b4f('0xa29')]=_0x284b4f('0x649'),this['_canvas'][_0x284b4f('0xc76')][_0x284b4f('0xc3f')]=_0x284b4f('0x649'),this['_canvas'][_0x284b4f('0xa89')](_0x284b4f('0x71'),this['_handleTouchStart']),this[_0x284b4f('0xa01')]['addEventListener'](_0x284b4f('0x94f'),this[_0x284b4f('0x4bd')]),this[_0x284b4f('0xa01')][_0x284b4f('0xa89')]('touchend',this['_handleTouchEnd']);},_0xb0d3e[_0x1327a1('0x539')]['_reset']=function(){var _0x4b74e7=_0x1327a1;this[_0x4b74e7('0xd4b')]=[],this[_0x4b74e7('0xbb4')]=0x0,this[_0x4b74e7('0x65a')]=(this[_0x4b74e7('0xb72')]+this[_0x4b74e7('0x733')])/0x2,this['_ctx']['fillStyle']=this[_0x4b74e7('0xa8b')];},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0xde2')]=function(_0x22c1fb,_0x1e12b4,_0x56943b){var _0xcdc7ff=_0x1327a1,_0x300dda=this[_0xcdc7ff('0xa01')]['getBoundingClientRect']();return new _0xb5e29d(_0x22c1fb-_0x300dda[_0xcdc7ff('0x8c7')],_0x1e12b4-_0x300dda[_0xcdc7ff('0xbe7')],_0x56943b||new Date()['getTime']());},_0xb0d3e['prototype'][_0x1327a1('0x79e')]=function(_0x43d9d2){var _0x548529=_0x1327a1,_0x16bd85=this[_0x548529('0xd4b')];if(_0x16bd85[_0x548529('0xb2')](_0x43d9d2),_0x16bd85[_0x548529('0x796')]>0x2){0x3===_0x16bd85['length']&&_0x16bd85[_0x548529('0x34')](_0x16bd85[0x0]);var _0x29ed5d=this['_calculateCurveControlPoints'](_0x16bd85[0x0],_0x16bd85[0x1],_0x16bd85[0x2])['c2'],_0x231e00=this['_calculateCurveControlPoints'](_0x16bd85[0x1],_0x16bd85[0x2],_0x16bd85[0x3])['c1'],_0x4868e8=new _0x11b0df(_0x16bd85[0x1],_0x29ed5d,_0x231e00,_0x16bd85[0x2]),_0x351530=this[_0x548529('0xcc2')](_0x4868e8);return _0x16bd85[_0x548529('0x71d')](),{'curve':_0x4868e8,'widths':_0x351530};}return{};},_0xb0d3e[_0x1327a1('0x539')]['_calculateCurveControlPoints']=function(_0x4cca91,_0x4bdaab,_0x39d9e7){var _0x5cd8c8=_0x1327a1,_0x48cb82=_0x4cca91['x']-_0x4bdaab['x'],_0x17cbfb=_0x4cca91['y']-_0x4bdaab['y'],_0x3d8f2e=_0x4bdaab['x']-_0x39d9e7['x'],_0x22a1d8=_0x4bdaab['y']-_0x39d9e7['y'],_0x1b0adc=(_0x4cca91['x']+_0x4bdaab['x'])/0x2,_0x13ca6c=(_0x4cca91['y']+_0x4bdaab['y'])/0x2,_0x3b9371=(_0x4bdaab['x']+_0x39d9e7['x'])/0x2,_0x5a7898=(_0x4bdaab['y']+_0x39d9e7['y'])/0x2,_0x10c645=Math[_0x5cd8c8('0xabd')](_0x48cb82*_0x48cb82+_0x17cbfb*_0x17cbfb),_0x4945bd=Math[_0x5cd8c8('0xabd')](_0x3d8f2e*_0x3d8f2e+_0x22a1d8*_0x22a1d8),_0x40eeb4=_0x4945bd/(_0x10c645+_0x4945bd),_0x4689a6=_0x3b9371+(_0x1b0adc-_0x3b9371)*_0x40eeb4,_0x553436=_0x5a7898+(_0x13ca6c-_0x5a7898)*_0x40eeb4,_0x105fc4=_0x4bdaab['x']-_0x4689a6,_0x4922b2=_0x4bdaab['y']-_0x553436;return{'c1':new _0xb5e29d(_0x1b0adc+_0x105fc4,_0x13ca6c+_0x4922b2),'c2':new _0xb5e29d(_0x3b9371+_0x105fc4,_0x5a7898+_0x4922b2)};},_0xb0d3e['prototype']['_calculateCurveWidths']=function(_0xb2006d){var _0x34d0ba=_0x1327a1,_0x341b6b=_0xb2006d[_0x34d0ba('0x647')],_0x4dfb30=_0xb2006d[_0x34d0ba('0x9ee')],_0x4561aa={'start':null,'end':null},_0x1b6fcd=this[_0x34d0ba('0x305')]*_0x4dfb30[_0x34d0ba('0xc61')](_0x341b6b)+(0x1-this[_0x34d0ba('0x305')])*this[_0x34d0ba('0xbb4')],_0x1f75f8=this[_0x34d0ba('0x3ff')](_0x1b6fcd);return _0x4561aa['start']=this[_0x34d0ba('0x65a')],_0x4561aa[_0x34d0ba('0x9ef')]=_0x1f75f8,this[_0x34d0ba('0xbb4')]=_0x1b6fcd,this[_0x34d0ba('0x65a')]=_0x1f75f8,_0x4561aa;},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0x3ff')]=function(_0x2692ce){var _0xb707c6=_0x1327a1;return Math[_0xb707c6('0x6c1')](this[_0xb707c6('0x733')]/(_0x2692ce+0x1),this[_0xb707c6('0xb72')]);},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0xbc8')]=function(_0x3e22de,_0x1b4b4a,_0x4fe8f3){var _0xdee80d=_0x1327a1,_0x1eac8e=this['_ctx'];_0x1eac8e[_0xdee80d('0xce7')](_0x3e22de,_0x1b4b4a),_0x1eac8e[_0xdee80d('0xbda')](_0x3e22de,_0x1b4b4a,_0x4fe8f3,0x0,0x2*Math['PI'],!0x1),this[_0xdee80d('0x405')]=!0x1;},_0xb0d3e['prototype'][_0x1327a1('0x319')]=function(_0x1cb0b8,_0x58d45c,_0x2c7633){var _0x1d2109=_0x1327a1,_0x472a00=this[_0x1d2109('0x155')],_0x270414=_0x2c7633-_0x58d45c,_0x5a137c=Math[_0x1d2109('0x67')](_0x1cb0b8['length']());_0x472a00[_0x1d2109('0x742')]();for(var _0x116798=0x0;_0x116798<_0x5a137c;_0x116798+=0x1){var _0x336ae6=_0x116798/_0x5a137c,_0x56054c=_0x336ae6*_0x336ae6,_0x3b0612=_0x56054c*_0x336ae6,_0x349898=0x1-_0x336ae6,_0x44cc89=_0x349898*_0x349898,_0x5a7b1e=_0x44cc89*_0x349898,_0x33c6f7=_0x5a7b1e*_0x1cb0b8[_0x1d2109('0x647')]['x'];_0x33c6f7+=0x3*_0x44cc89*_0x336ae6*_0x1cb0b8[_0x1d2109('0x9')]['x'],_0x33c6f7+=0x3*_0x349898*_0x56054c*_0x1cb0b8[_0x1d2109('0x832')]['x'],_0x33c6f7+=_0x3b0612*_0x1cb0b8['endPoint']['x'];var _0x35122c=_0x5a7b1e*_0x1cb0b8[_0x1d2109('0x647')]['y'];_0x35122c+=0x3*_0x44cc89*_0x336ae6*_0x1cb0b8[_0x1d2109('0x9')]['y'],_0x35122c+=0x3*_0x349898*_0x56054c*_0x1cb0b8['control2']['y'],_0x35122c+=_0x3b0612*_0x1cb0b8[_0x1d2109('0x9ee')]['y'];var _0x5a8029=_0x58d45c+_0x3b0612*_0x270414;this[_0x1d2109('0xbc8')](_0x33c6f7,_0x35122c,_0x5a8029);}_0x472a00[_0x1d2109('0xc4e')](),_0x472a00[_0x1d2109('0x9b9')]();},_0xb0d3e[_0x1327a1('0x539')]['_drawDot']=function(_0x5eaf79){var _0x1a9651=_0x1327a1,_0x1fca54=this[_0x1a9651('0x155')],_0x515008=_0x1a9651('0xa25')==typeof this[_0x1a9651('0xaa9')]?this['dotSize']():this[_0x1a9651('0xaa9')];_0x1fca54[_0x1a9651('0x742')](),this[_0x1a9651('0xbc8')](_0x5eaf79['x'],_0x5eaf79['y'],_0x515008),_0x1fca54[_0x1a9651('0xc4e')](),_0x1fca54['fill']();},_0xb0d3e[_0x1327a1('0x539')]['_fromData']=function(_0x32d2f2,_0x3c2ab4,_0x2eb0b2){var _0x39680f=_0x1327a1;for(var _0x39ad46=0x0;_0x39ad46<_0x32d2f2[_0x39680f('0x796')];_0x39ad46+=0x1){var _0x389c8a=_0x32d2f2[_0x39ad46];if(_0x389c8a['length']>0x1)for(var _0x2fe0b5=0x0;_0x2fe0b5<_0x389c8a[_0x39680f('0x796')];_0x2fe0b5+=0x1){var _0x1ca378=_0x389c8a[_0x2fe0b5],_0x3967fc=new _0xb5e29d(_0x1ca378['x'],_0x1ca378['y'],_0x1ca378[_0x39680f('0xd49')]),_0x21f4b3=_0x1ca378[_0x39680f('0xd24')];if(0x0===_0x2fe0b5)this[_0x39680f('0xa8b')]=_0x21f4b3,this[_0x39680f('0xd6')](),this['_addPoint'](_0x3967fc);else{if(_0x2fe0b5!==_0x389c8a[_0x39680f('0x796')]-0x1){var _0x346f4d=this[_0x39680f('0x79e')](_0x3967fc),_0x6c5f8e=_0x346f4d[_0x39680f('0x396')],_0x2e2ea7=_0x346f4d['widths'];_0x6c5f8e&&_0x2e2ea7&&_0x3c2ab4(_0x6c5f8e,_0x2e2ea7,_0x21f4b3);}}}else this['_reset'](),_0x2eb0b2(_0x389c8a[0x0]);}},_0xb0d3e[_0x1327a1('0x539')][_0x1327a1('0x1b2')]=function(){var _0x5ca924=_0x1327a1,_0x5c9f75=this,_0x2afd6f=this[_0x5ca924('0x7a3')],_0x3de32e=this['_canvas'],_0x561c95=Math[_0x5ca924('0x6c1')](window[_0x5ca924('0x564')]||0x1,0x1),_0x2f2f35=_0x3de32e['width']/_0x561c95,_0x3e5e5b=_0x3de32e[_0x5ca924('0x3e')]/_0x561c95,_0x5dcdf9=document[_0x5ca924('0x72f')]('http://www.w3.org/2000/svg',_0x5ca924('0x1a0'));_0x5dcdf9[_0x5ca924('0x56c')](null,_0x5ca924('0x5f9'),_0x3de32e[_0x5ca924('0x5f9')]),_0x5dcdf9[_0x5ca924('0x56c')](null,_0x5ca924('0x3e'),_0x3de32e[_0x5ca924('0x3e')]),this[_0x5ca924('0x744')](_0x2afd6f,function(_0x285baf,_0x5be779,_0x5a8677){var _0x4e8ef6=_0x5ca924,_0x11c334=document[_0x4e8ef6('0x6b7')](_0x4e8ef6('0x7e7'));if(!(isNaN(_0x285baf[_0x4e8ef6('0x9')]['x'])||isNaN(_0x285baf[_0x4e8ef6('0x9')]['y'])||isNaN(_0x285baf[_0x4e8ef6('0x832')]['x'])||isNaN(_0x285baf['control2']['y']))){var _0x205f38='M\x20'+_0x285baf[_0x4e8ef6('0x647')]['x'][_0x4e8ef6('0x83b')](0x3)+','+_0x285baf[_0x4e8ef6('0x647')]['y'][_0x4e8ef6('0x83b')](0x3)+_0x4e8ef6('0x143')+_0x285baf['control1']['x'][_0x4e8ef6('0x83b')](0x3)+','+_0x285baf[_0x4e8ef6('0x9')]['y']['toFixed'](0x3)+'\x20'+_0x285baf[_0x4e8ef6('0x832')]['x'][_0x4e8ef6('0x83b')](0x3)+','+_0x285baf[_0x4e8ef6('0x832')]['y']['toFixed'](0x3)+'\x20'+_0x285baf[_0x4e8ef6('0x9ee')]['x'][_0x4e8ef6('0x83b')](0x3)+','+_0x285baf[_0x4e8ef6('0x9ee')]['y'][_0x4e8ef6('0x83b')](0x3);_0x11c334[_0x4e8ef6('0xb08')]('d',_0x205f38),_0x11c334[_0x4e8ef6('0xb08')](_0x4e8ef6('0xdc9'),(2.25*_0x5be779[_0x4e8ef6('0x9ef')])[_0x4e8ef6('0x83b')](0x3)),_0x11c334[_0x4e8ef6('0xb08')](_0x4e8ef6('0x863'),_0x5a8677),_0x11c334[_0x4e8ef6('0xb08')](_0x4e8ef6('0x9b9'),_0x4e8ef6('0x649')),_0x11c334[_0x4e8ef6('0xb08')](_0x4e8ef6('0x23b'),_0x4e8ef6('0x763')),_0x5dcdf9[_0x4e8ef6('0x3d0')](_0x11c334);}},function(_0x1d5eab){var _0x1414ba=_0x5ca924,_0x328443=document[_0x1414ba('0x6b7')](_0x1414ba('0x50b')),_0x377985=_0x1414ba('0xa25')==typeof _0x5c9f75[_0x1414ba('0xaa9')]?_0x5c9f75[_0x1414ba('0xaa9')]():_0x5c9f75['dotSize'];_0x328443[_0x1414ba('0xb08')]('r',_0x377985),_0x328443[_0x1414ba('0xb08')]('cx',_0x1d5eab['x']),_0x328443[_0x1414ba('0xb08')]('cy',_0x1d5eab['y']),_0x328443[_0x1414ba('0xb08')](_0x1414ba('0x9b9'),_0x1d5eab[_0x1414ba('0xd24')]),_0x5dcdf9[_0x1414ba('0x3d0')](_0x328443);});var _0x1c1b1e=_0x5ca924('0x23a')+_0x2f2f35+'\x20'+_0x3e5e5b+_0x5ca924('0x9aa')+_0x2f2f35+_0x5ca924('0x33b')+_0x3e5e5b+'\x22>',_0x39b6c9=_0x5dcdf9[_0x5ca924('0xa56')];if(void 0x0===_0x39b6c9){var _0x55d53d=document[_0x5ca924('0x6b7')](_0x5ca924('0xdc6')),_0x4f09a8=_0x5dcdf9[_0x5ca924('0xc36')];_0x55d53d[_0x5ca924('0xa56')]='';for(var _0x383678=0x0;_0x383678<_0x4f09a8['length'];_0x383678+=0x1)_0x55d53d[_0x5ca924('0x3d0')](_0x4f09a8[_0x383678][_0x5ca924('0xc85')](!0x0));_0x39b6c9=_0x55d53d[_0x5ca924('0xa56')];}return _0x5ca924('0x14b')+btoa(_0x1c1b1e+_0x39b6c9+_0x5ca924('0xda2'));},_0xb0d3e[_0x1327a1('0x539')]['fromData']=function(_0x3c5a92){var _0x4bf68f=_0x1327a1,_0x1e9ee1=this;this[_0x4bf68f('0x45')](),this[_0x4bf68f('0x744')](_0x3c5a92,function(_0x446f2b,_0x4afb23){var _0x1a64a7=_0x4bf68f;return _0x1e9ee1[_0x1a64a7('0x319')](_0x446f2b,_0x4afb23[_0x1a64a7('0x49a')],_0x4afb23[_0x1a64a7('0x9ef')]);},function(_0x412e11){return _0x1e9ee1['_drawDot'](_0x412e11);}),this['_data']=_0x3c5a92;},_0xb0d3e[_0x1327a1('0x539')]['toData']=function(){return this['_data'];},_0xb0d3e;});},{}],0x17a:[function(_0x1fc512,_0x11d271,_0x3a4508){!function(_0x5ac284){var _0x23a10b=_0x1c0e,_0xaca08d=/^\s+/,_0x56ef7c=/\s+$/,_0x258aa2=0x0,_0x2e2626=_0x5ac284[_0x23a10b('0x763')],_0x3b72b9=_0x5ac284[_0x23a10b('0x3a4')],_0x5c3d17=_0x5ac284[_0x23a10b('0x6c1')],_0x3a5bdf=_0x5ac284['random'];function _0x33d994(_0x5b733e,_0x20cb8d){var _0x53b6e1=_0x23a10b;if(_0x20cb8d=_0x20cb8d||{},(_0x5b733e=_0x5b733e||'')instanceof _0x33d994)return _0x5b733e;if(!(this instanceof _0x33d994))return new _0x33d994(_0x5b733e,_0x20cb8d);var _0x159383=function(_0x3cdd72){var _0x1f1f13=_0x1c0e,_0x5c6413={'r':0x0,'g':0x0,'b':0x0},_0x2123ec=0x1,_0x14b5bb=null,_0x3c1e6c=null,_0x2b0fe6=null,_0x18a499=!0x1,_0x421867=!0x1;_0x1f1f13('0x3fd')==typeof _0x3cdd72&&(_0x3cdd72=function(_0x1d0e17){var _0x358243=_0x1f1f13;_0x1d0e17=_0x1d0e17[_0x358243('0x8f9')](_0xaca08d,'')[_0x358243('0x8f9')](_0x56ef7c,'')[_0x358243('0x2f5')]();var _0x5eaf39,_0x4c40f7=!0x1;if(_0x53dd58[_0x1d0e17])_0x1d0e17=_0x53dd58[_0x1d0e17],_0x4c40f7=!0x0;else{if(_0x358243('0x6')==_0x1d0e17)return{'r':0x0,'g':0x0,'b':0x0,'a':0x0,'format':_0x358243('0xce')};}if(_0x5eaf39=_0x150a72[_0x358243('0x4dd')][_0x358243('0x850')](_0x1d0e17))return{'r':_0x5eaf39[0x1],'g':_0x5eaf39[0x2],'b':_0x5eaf39[0x3]};if(_0x5eaf39=_0x150a72[_0x358243('0x73c')]['exec'](_0x1d0e17))return{'r':_0x5eaf39[0x1],'g':_0x5eaf39[0x2],'b':_0x5eaf39[0x3],'a':_0x5eaf39[0x4]};if(_0x5eaf39=_0x150a72[_0x358243('0x570')][_0x358243('0x850')](_0x1d0e17))return{'h':_0x5eaf39[0x1],'s':_0x5eaf39[0x2],'l':_0x5eaf39[0x3]};if(_0x5eaf39=_0x150a72[_0x358243('0xaaa')]['exec'](_0x1d0e17))return{'h':_0x5eaf39[0x1],'s':_0x5eaf39[0x2],'l':_0x5eaf39[0x3],'a':_0x5eaf39[0x4]};if(_0x5eaf39=_0x150a72['hsv'][_0x358243('0x850')](_0x1d0e17))return{'h':_0x5eaf39[0x1],'s':_0x5eaf39[0x2],'v':_0x5eaf39[0x3]};if(_0x5eaf39=_0x150a72[_0x358243('0x872')][_0x358243('0x850')](_0x1d0e17))return{'h':_0x5eaf39[0x1],'s':_0x5eaf39[0x2],'v':_0x5eaf39[0x3],'a':_0x5eaf39[0x4]};if(_0x5eaf39=_0x150a72[_0x358243('0xc34')][_0x358243('0x850')](_0x1d0e17))return{'r':_0x177d8d(_0x5eaf39[0x1]),'g':_0x177d8d(_0x5eaf39[0x2]),'b':_0x177d8d(_0x5eaf39[0x3]),'a':_0x2298a3(_0x5eaf39[0x4]),'format':_0x4c40f7?_0x358243('0xce'):_0x358243('0xc34')};if(_0x5eaf39=_0x150a72[_0x358243('0x27a')][_0x358243('0x850')](_0x1d0e17))return{'r':_0x177d8d(_0x5eaf39[0x1]),'g':_0x177d8d(_0x5eaf39[0x2]),'b':_0x177d8d(_0x5eaf39[0x3]),'format':_0x4c40f7?'name':'hex'};if(_0x5eaf39=_0x150a72[_0x358243('0x7')][_0x358243('0x850')](_0x1d0e17))return{'r':_0x177d8d(_0x5eaf39[0x1]+''+_0x5eaf39[0x1]),'g':_0x177d8d(_0x5eaf39[0x2]+''+_0x5eaf39[0x2]),'b':_0x177d8d(_0x5eaf39[0x3]+''+_0x5eaf39[0x3]),'a':_0x2298a3(_0x5eaf39[0x4]+''+_0x5eaf39[0x4]),'format':_0x4c40f7?'name':'hex8'};if(_0x5eaf39=_0x150a72[_0x358243('0x541')][_0x358243('0x850')](_0x1d0e17))return{'r':_0x177d8d(_0x5eaf39[0x1]+''+_0x5eaf39[0x1]),'g':_0x177d8d(_0x5eaf39[0x2]+''+_0x5eaf39[0x2]),'b':_0x177d8d(_0x5eaf39[0x3]+''+_0x5eaf39[0x3]),'format':_0x4c40f7?'name':'hex'};return!0x1;}(_0x3cdd72)),_0x1f1f13('0xbfd')==typeof _0x3cdd72&&(_0x1bdcd4(_0x3cdd72['r'])&&_0x1bdcd4(_0x3cdd72['g'])&&_0x1bdcd4(_0x3cdd72['b'])?(_0x458f78=_0x3cdd72['r'],_0x461afb=_0x3cdd72['g'],_0x1a0608=_0x3cdd72['b'],_0x5c6413={'r':0xff*_0x16d76b(_0x458f78,0xff),'g':0xff*_0x16d76b(_0x461afb,0xff),'b':0xff*_0x16d76b(_0x1a0608,0xff)},_0x18a499=!0x0,_0x421867='%'===String(_0x3cdd72['r'])['substr'](-0x1)?_0x1f1f13('0x580'):_0x1f1f13('0x4dd')):_0x1bdcd4(_0x3cdd72['h'])&&_0x1bdcd4(_0x3cdd72['s'])&&_0x1bdcd4(_0x3cdd72['v'])?(_0x14b5bb=_0x110c66(_0x3cdd72['s']),_0x3c1e6c=_0x110c66(_0x3cdd72['v']),_0x5c6413=function(_0x25312c,_0x1ad818,_0x59b282){var _0x34c5a3=_0x1f1f13;_0x25312c=0x6*_0x16d76b(_0x25312c,0x168),_0x1ad818=_0x16d76b(_0x1ad818,0x64),_0x59b282=_0x16d76b(_0x59b282,0x64);var _0x57f2bd=_0x5ac284[_0x34c5a3('0x67')](_0x25312c),_0x51957d=_0x25312c-_0x57f2bd,_0xaead89=_0x59b282*(0x1-_0x1ad818),_0x1bb784=_0x59b282*(0x1-_0x51957d*_0x1ad818),_0x1a9f92=_0x59b282*(0x1-(0x1-_0x51957d)*_0x1ad818),_0x2eaaae=_0x57f2bd%0x6;return{'r':0xff*[_0x59b282,_0x1bb784,_0xaead89,_0xaead89,_0x1a9f92,_0x59b282][_0x2eaaae],'g':0xff*[_0x1a9f92,_0x59b282,_0x59b282,_0x1bb784,_0xaead89,_0xaead89][_0x2eaaae],'b':0xff*[_0xaead89,_0xaead89,_0x1a9f92,_0x59b282,_0x59b282,_0x1bb784][_0x2eaaae]};}(_0x3cdd72['h'],_0x14b5bb,_0x3c1e6c),_0x18a499=!0x0,_0x421867='hsv'):_0x1bdcd4(_0x3cdd72['h'])&&_0x1bdcd4(_0x3cdd72['s'])&&_0x1bdcd4(_0x3cdd72['l'])&&(_0x14b5bb=_0x110c66(_0x3cdd72['s']),_0x2b0fe6=_0x110c66(_0x3cdd72['l']),_0x5c6413=function(_0xb6e752,_0x141b0f,_0x304b4d){var _0x44ba54,_0x21e976,_0x50b8d5;function _0x547f99(_0x14db77,_0x169864,_0x424dcc){return _0x424dcc<0x0&&(_0x424dcc+=0x1),_0x424dcc>0x1&&(_0x424dcc-=0x1),_0x424dcc<0x1/0x6?_0x14db77+0x6*(_0x169864-_0x14db77)*_0x424dcc:_0x424dcc<0.5?_0x169864:_0x424dcc<0x2/0x3?_0x14db77+(_0x169864-_0x14db77)*(0x2/0x3-_0x424dcc)*0x6:_0x14db77;}if(_0xb6e752=_0x16d76b(_0xb6e752,0x168),_0x141b0f=_0x16d76b(_0x141b0f,0x64),_0x304b4d=_0x16d76b(_0x304b4d,0x64),0x0===_0x141b0f)_0x44ba54=_0x21e976=_0x50b8d5=_0x304b4d;else{var _0x717877=_0x304b4d<0.5?_0x304b4d*(0x1+_0x141b0f):_0x304b4d+_0x141b0f-_0x304b4d*_0x141b0f,_0x5910b0=0x2*_0x304b4d-_0x717877;_0x44ba54=_0x547f99(_0x5910b0,_0x717877,_0xb6e752+0x1/0x3),_0x21e976=_0x547f99(_0x5910b0,_0x717877,_0xb6e752),_0x50b8d5=_0x547f99(_0x5910b0,_0x717877,_0xb6e752-0x1/0x3);}return{'r':0xff*_0x44ba54,'g':0xff*_0x21e976,'b':0xff*_0x50b8d5};}(_0x3cdd72['h'],_0x14b5bb,_0x2b0fe6),_0x18a499=!0x0,_0x421867=_0x1f1f13('0x570')),_0x3cdd72['hasOwnProperty']('a')&&(_0x2123ec=_0x3cdd72['a']));var _0x458f78,_0x461afb,_0x1a0608;return _0x2123ec=_0x433eea(_0x2123ec),{'ok':_0x18a499,'format':_0x3cdd72[_0x1f1f13('0x5b6')]||_0x421867,'r':_0x3b72b9(0xff,_0x5c3d17(_0x5c6413['r'],0x0)),'g':_0x3b72b9(0xff,_0x5c3d17(_0x5c6413['g'],0x0)),'b':_0x3b72b9(0xff,_0x5c3d17(_0x5c6413['b'],0x0)),'a':_0x2123ec};}(_0x5b733e);this['_originalInput']=_0x5b733e,this['_r']=_0x159383['r'],this['_g']=_0x159383['g'],this['_b']=_0x159383['b'],this['_a']=_0x159383['a'],this[_0x53b6e1('0xd40')]=_0x2e2626(0x64*this['_a'])/0x64,this[_0x53b6e1('0x457')]=_0x20cb8d['format']||_0x159383['format'],this['_gradientType']=_0x20cb8d[_0x53b6e1('0x7f3')],this['_r']<0x1&&(this['_r']=_0x2e2626(this['_r'])),this['_g']<0x1&&(this['_g']=_0x2e2626(this['_g'])),this['_b']<0x1&&(this['_b']=_0x2e2626(this['_b'])),this[_0x53b6e1('0x9fc')]=_0x159383['ok'],this[_0x53b6e1('0x81d')]=_0x258aa2++;}function _0x3563ee(_0x3f9395,_0x3a8508,_0x2d0ab3){_0x3f9395=_0x16d76b(_0x3f9395,0xff),_0x3a8508=_0x16d76b(_0x3a8508,0xff),_0x2d0ab3=_0x16d76b(_0x2d0ab3,0xff);var _0x17e900,_0x2abe2c,_0x45f229=_0x5c3d17(_0x3f9395,_0x3a8508,_0x2d0ab3),_0x21abda=_0x3b72b9(_0x3f9395,_0x3a8508,_0x2d0ab3),_0x416446=(_0x45f229+_0x21abda)/0x2;if(_0x45f229==_0x21abda)_0x17e900=_0x2abe2c=0x0;else{var _0x52a747=_0x45f229-_0x21abda;switch(_0x2abe2c=_0x416446>0.5?_0x52a747/(0x2-_0x45f229-_0x21abda):_0x52a747/(_0x45f229+_0x21abda),_0x45f229){case _0x3f9395:_0x17e900=(_0x3a8508-_0x2d0ab3)/_0x52a747+(_0x3a8508<_0x2d0ab3?0x6:0x0);break;case _0x3a8508:_0x17e900=(_0x2d0ab3-_0x3f9395)/_0x52a747+0x2;break;case _0x2d0ab3:_0x17e900=(_0x3f9395-_0x3a8508)/_0x52a747+0x4;}_0x17e900/=0x6;}return{'h':_0x17e900,'s':_0x2abe2c,'l':_0x416446};}function _0x6f65a2(_0x226440,_0x3bc61a,_0x3a2fcb){_0x226440=_0x16d76b(_0x226440,0xff),_0x3bc61a=_0x16d76b(_0x3bc61a,0xff),_0x3a2fcb=_0x16d76b(_0x3a2fcb,0xff);var _0x306ba9,_0x301635,_0x5555a0=_0x5c3d17(_0x226440,_0x3bc61a,_0x3a2fcb),_0x1f0ff9=_0x3b72b9(_0x226440,_0x3bc61a,_0x3a2fcb),_0x482821=_0x5555a0,_0x52ae23=_0x5555a0-_0x1f0ff9;if(_0x301635=0x0===_0x5555a0?0x0:_0x52ae23/_0x5555a0,_0x5555a0==_0x1f0ff9)_0x306ba9=0x0;else{switch(_0x5555a0){case _0x226440:_0x306ba9=(_0x3bc61a-_0x3a2fcb)/_0x52ae23+(_0x3bc61a<_0x3a2fcb?0x6:0x0);break;case _0x3bc61a:_0x306ba9=(_0x3a2fcb-_0x226440)/_0x52ae23+0x2;break;case _0x3a2fcb:_0x306ba9=(_0x226440-_0x3bc61a)/_0x52ae23+0x4;}_0x306ba9/=0x6;}return{'h':_0x306ba9,'s':_0x301635,'v':_0x482821};}function _0x2397ff(_0x2fc311,_0x1d8077,_0x4a61c3,_0x292970){var _0x38106e=_0x23a10b,_0x332a2c=[_0x5aa8aa(_0x2e2626(_0x2fc311)[_0x38106e('0x6e9')](0x10)),_0x5aa8aa(_0x2e2626(_0x1d8077)[_0x38106e('0x6e9')](0x10)),_0x5aa8aa(_0x2e2626(_0x4a61c3)['toString'](0x10))];return _0x292970&&_0x332a2c[0x0]['charAt'](0x0)==_0x332a2c[0x0][_0x38106e('0x74a')](0x1)&&_0x332a2c[0x1][_0x38106e('0x74a')](0x0)==_0x332a2c[0x1][_0x38106e('0x74a')](0x1)&&_0x332a2c[0x2][_0x38106e('0x74a')](0x0)==_0x332a2c[0x2]['charAt'](0x1)?_0x332a2c[0x0][_0x38106e('0x74a')](0x0)+_0x332a2c[0x1][_0x38106e('0x74a')](0x0)+_0x332a2c[0x2][_0x38106e('0x74a')](0x0):_0x332a2c[_0x38106e('0xc1')]('');}function _0x2976cb(_0x49809c,_0x4b3677,_0x4783c0,_0x4882d6){var _0x29b28d=_0x23a10b;return[_0x5aa8aa(_0x265b77(_0x4882d6)),_0x5aa8aa(_0x2e2626(_0x49809c)[_0x29b28d('0x6e9')](0x10)),_0x5aa8aa(_0x2e2626(_0x4b3677)[_0x29b28d('0x6e9')](0x10)),_0x5aa8aa(_0x2e2626(_0x4783c0)[_0x29b28d('0x6e9')](0x10))][_0x29b28d('0xc1')]('');}function _0x2a5ce7(_0x5c8ce2,_0x28c0ae){var _0x3764b4=_0x23a10b;_0x28c0ae=0x0===_0x28c0ae?0x0:_0x28c0ae||0xa;var _0x4a8b23=_0x33d994(_0x5c8ce2)[_0x3764b4('0x6e0')]();return _0x4a8b23['s']-=_0x28c0ae/0x64,_0x4a8b23['s']=_0xbcffa7(_0x4a8b23['s']),_0x33d994(_0x4a8b23);}function _0xe64737(_0x2a858c,_0x537a8c){var _0x2892b0=_0x23a10b;_0x537a8c=0x0===_0x537a8c?0x0:_0x537a8c||0xa;var _0x4e0599=_0x33d994(_0x2a858c)[_0x2892b0('0x6e0')]();return _0x4e0599['s']+=_0x537a8c/0x64,_0x4e0599['s']=_0xbcffa7(_0x4e0599['s']),_0x33d994(_0x4e0599);}function _0xe9a88f(_0x599423){var _0x4668fe=_0x23a10b;return _0x33d994(_0x599423)[_0x4668fe('0x48')](0x64);}function _0x28927d(_0x5012ec,_0x5bcd5e){var _0x25d597=_0x23a10b;_0x5bcd5e=0x0===_0x5bcd5e?0x0:_0x5bcd5e||0xa;var _0x525332=_0x33d994(_0x5012ec)[_0x25d597('0x6e0')]();return _0x525332['l']+=_0x5bcd5e/0x64,_0x525332['l']=_0xbcffa7(_0x525332['l']),_0x33d994(_0x525332);}function _0x13d67e(_0x1c3fc8,_0x186544){_0x186544=0x0===_0x186544?0x0:_0x186544||0xa;var _0x1ded16=_0x33d994(_0x1c3fc8)['toRgb']();return _0x1ded16['r']=_0x5c3d17(0x0,_0x3b72b9(0xff,_0x1ded16['r']-_0x2e2626(-_0x186544/0x64*0xff))),_0x1ded16['g']=_0x5c3d17(0x0,_0x3b72b9(0xff,_0x1ded16['g']-_0x2e2626(-_0x186544/0x64*0xff))),_0x1ded16['b']=_0x5c3d17(0x0,_0x3b72b9(0xff,_0x1ded16['b']-_0x2e2626(-_0x186544/0x64*0xff))),_0x33d994(_0x1ded16);}function _0x3f0bce(_0x323cc9,_0x2599ed){var _0xe9ad96=_0x23a10b;_0x2599ed=0x0===_0x2599ed?0x0:_0x2599ed||0xa;var _0x289fb5=_0x33d994(_0x323cc9)[_0xe9ad96('0x6e0')]();return _0x289fb5['l']-=_0x2599ed/0x64,_0x289fb5['l']=_0xbcffa7(_0x289fb5['l']),_0x33d994(_0x289fb5);}function _0x30337c(_0x1e2e92,_0x1746a9){var _0x5d747e=_0x23a10b,_0x7c8d88=_0x33d994(_0x1e2e92)[_0x5d747e('0x6e0')](),_0x646a1c=(_0x7c8d88['h']+_0x1746a9)%0x168;return _0x7c8d88['h']=_0x646a1c<0x0?0x168+_0x646a1c:_0x646a1c,_0x33d994(_0x7c8d88);}function _0x3ba723(_0x262060){var _0x510987=_0x23a10b,_0x2a4f02=_0x33d994(_0x262060)[_0x510987('0x6e0')]();return _0x2a4f02['h']=(_0x2a4f02['h']+0xb4)%0x168,_0x33d994(_0x2a4f02);}function _0x1185fa(_0x5c7224){var _0x427f4b=_0x33d994(_0x5c7224)['toHsl'](),_0xe35b56=_0x427f4b['h'];return[_0x33d994(_0x5c7224),_0x33d994({'h':(_0xe35b56+0x78)%0x168,'s':_0x427f4b['s'],'l':_0x427f4b['l']}),_0x33d994({'h':(_0xe35b56+0xf0)%0x168,'s':_0x427f4b['s'],'l':_0x427f4b['l']})];}function _0x5fefce(_0x57fde3){var _0x412aad=_0x23a10b,_0xae51a3=_0x33d994(_0x57fde3)[_0x412aad('0x6e0')](),_0x325cda=_0xae51a3['h'];return[_0x33d994(_0x57fde3),_0x33d994({'h':(_0x325cda+0x5a)%0x168,'s':_0xae51a3['s'],'l':_0xae51a3['l']}),_0x33d994({'h':(_0x325cda+0xb4)%0x168,'s':_0xae51a3['s'],'l':_0xae51a3['l']}),_0x33d994({'h':(_0x325cda+0x10e)%0x168,'s':_0xae51a3['s'],'l':_0xae51a3['l']})];}function _0x5c6bf3(_0x48e836){var _0x2cbbbe=_0x23a10b,_0x5c0735=_0x33d994(_0x48e836)[_0x2cbbbe('0x6e0')](),_0x1f77b0=_0x5c0735['h'];return[_0x33d994(_0x48e836),_0x33d994({'h':(_0x1f77b0+0x48)%0x168,'s':_0x5c0735['s'],'l':_0x5c0735['l']}),_0x33d994({'h':(_0x1f77b0+0xd8)%0x168,'s':_0x5c0735['s'],'l':_0x5c0735['l']})];}function _0x897908(_0x3f77bd,_0x45adf8,_0x3563b){var _0x45f059=_0x23a10b;_0x45adf8=_0x45adf8||0x6,_0x3563b=_0x3563b||0x1e;var _0x2000ff=_0x33d994(_0x3f77bd)[_0x45f059('0x6e0')](),_0x2af272=0x168/_0x3563b,_0x8f6b60=[_0x33d994(_0x3f77bd)];for(_0x2000ff['h']=(_0x2000ff['h']-(_0x2af272*_0x45adf8>>0x1)+0x2d0)%0x168;--_0x45adf8;)_0x2000ff['h']=(_0x2000ff['h']+_0x2af272)%0x168,_0x8f6b60['push'](_0x33d994(_0x2000ff));return _0x8f6b60;}function _0x443c74(_0x19d7e1,_0x3c3f36){var _0x41cc1f=_0x23a10b;_0x3c3f36=_0x3c3f36||0x6;for(var _0x4fe01a=_0x33d994(_0x19d7e1)[_0x41cc1f('0xd68')](),_0x277125=_0x4fe01a['h'],_0xe598f4=_0x4fe01a['s'],_0x406f72=_0x4fe01a['v'],_0x26e222=[],_0x5acfd0=0x1/_0x3c3f36;_0x3c3f36--;)_0x26e222[_0x41cc1f('0xb2')](_0x33d994({'h':_0x277125,'s':_0xe598f4,'v':_0x406f72})),_0x406f72=(_0x406f72+_0x5acfd0)%0x1;return _0x26e222;}_0x33d994[_0x23a10b('0x539')]={'isDark':function(){var _0x3cc1e5=_0x23a10b;return this[_0x3cc1e5('0x659')]()<0x80;},'isLight':function(){var _0x555c5e=_0x23a10b;return!this[_0x555c5e('0xb86')]();},'isValid':function(){return this['_ok'];},'getOriginalInput':function(){var _0x22b0a3=_0x23a10b;return this[_0x22b0a3('0xb82')];},'getFormat':function(){var _0x3c4bda=_0x23a10b;return this[_0x3c4bda('0x457')];},'getAlpha':function(){return this['_a'];},'getBrightness':function(){var _0x42aaa4=_0x23a10b,_0x2cb5a5=this[_0x42aaa4('0x7a7')]();return(0x12b*_0x2cb5a5['r']+0x24b*_0x2cb5a5['g']+0x72*_0x2cb5a5['b'])/0x3e8;},'getLuminance':function(){var _0x418ab2=_0x23a10b,_0x4481c6,_0x596b48,_0x9b69ce,_0x4b280e=this[_0x418ab2('0x7a7')]();return _0x4481c6=_0x4b280e['r']/0xff,_0x596b48=_0x4b280e['g']/0xff,_0x9b69ce=_0x4b280e['b']/0xff,0.2126*(_0x4481c6<=0.03928?_0x4481c6/12.92:_0x5ac284[_0x418ab2('0x43e')]((_0x4481c6+0.055)/1.055,2.4))+0.7152*(_0x596b48<=0.03928?_0x596b48/12.92:_0x5ac284[_0x418ab2('0x43e')]((_0x596b48+0.055)/1.055,2.4))+0.0722*(_0x9b69ce<=0.03928?_0x9b69ce/12.92:_0x5ac284[_0x418ab2('0x43e')]((_0x9b69ce+0.055)/1.055,2.4));},'setAlpha':function(_0x4ff913){var _0xe4a74a=_0x23a10b;return this['_a']=_0x433eea(_0x4ff913),this[_0xe4a74a('0xd40')]=_0x2e2626(0x64*this['_a'])/0x64,this;},'toHsv':function(){var _0x4b3dec=_0x6f65a2(this['_r'],this['_g'],this['_b']);return{'h':0x168*_0x4b3dec['h'],'s':_0x4b3dec['s'],'v':_0x4b3dec['v'],'a':this['_a']};},'toHsvString':function(){var _0x551d8c=_0x23a10b,_0x23cb81=_0x6f65a2(this['_r'],this['_g'],this['_b']),_0x2ae787=_0x2e2626(0x168*_0x23cb81['h']),_0x5419ed=_0x2e2626(0x64*_0x23cb81['s']),_0x13f2e7=_0x2e2626(0x64*_0x23cb81['v']);return 0x1==this['_a']?'hsv('+_0x2ae787+',\x20'+_0x5419ed+'%,\x20'+_0x13f2e7+'%)':_0x551d8c('0x447')+_0x2ae787+',\x20'+_0x5419ed+_0x551d8c('0xbb0')+_0x13f2e7+_0x551d8c('0xbb0')+this[_0x551d8c('0xd40')]+')';},'toHsl':function(){var _0x434681=_0x3563ee(this['_r'],this['_g'],this['_b']);return{'h':0x168*_0x434681['h'],'s':_0x434681['s'],'l':_0x434681['l'],'a':this['_a']};},'toHslString':function(){var _0x140b85=_0x23a10b,_0x2bb388=_0x3563ee(this['_r'],this['_g'],this['_b']),_0x4c083b=_0x2e2626(0x168*_0x2bb388['h']),_0x272203=_0x2e2626(0x64*_0x2bb388['s']),_0x5d833f=_0x2e2626(0x64*_0x2bb388['l']);return 0x1==this['_a']?_0x140b85('0xba7')+_0x4c083b+',\x20'+_0x272203+_0x140b85('0xbb0')+_0x5d833f+'%)':_0x140b85('0x246')+_0x4c083b+',\x20'+_0x272203+_0x140b85('0xbb0')+_0x5d833f+_0x140b85('0xbb0')+this[_0x140b85('0xd40')]+')';},'toHex':function(_0xe91e04){return _0x2397ff(this['_r'],this['_g'],this['_b'],_0xe91e04);},'toHexString':function(_0x4981b3){var _0x3486a3=_0x23a10b;return'#'+this[_0x3486a3('0xae4')](_0x4981b3);},'toHex8':function(_0x3d1133){return function(_0x59e2e2,_0x40e8ae,_0x1beaf2,_0x419d27,_0x58f8bc){var _0x3e6bf9=_0x1c0e,_0x443cf9=[_0x5aa8aa(_0x2e2626(_0x59e2e2)[_0x3e6bf9('0x6e9')](0x10)),_0x5aa8aa(_0x2e2626(_0x40e8ae)['toString'](0x10)),_0x5aa8aa(_0x2e2626(_0x1beaf2)[_0x3e6bf9('0x6e9')](0x10)),_0x5aa8aa(_0x265b77(_0x419d27))];if(_0x58f8bc&&_0x443cf9[0x0]['charAt'](0x0)==_0x443cf9[0x0]['charAt'](0x1)&&_0x443cf9[0x1][_0x3e6bf9('0x74a')](0x0)==_0x443cf9[0x1]['charAt'](0x1)&&_0x443cf9[0x2][_0x3e6bf9('0x74a')](0x0)==_0x443cf9[0x2][_0x3e6bf9('0x74a')](0x1)&&_0x443cf9[0x3][_0x3e6bf9('0x74a')](0x0)==_0x443cf9[0x3][_0x3e6bf9('0x74a')](0x1))return _0x443cf9[0x0][_0x3e6bf9('0x74a')](0x0)+_0x443cf9[0x1][_0x3e6bf9('0x74a')](0x0)+_0x443cf9[0x2][_0x3e6bf9('0x74a')](0x0)+_0x443cf9[0x3][_0x3e6bf9('0x74a')](0x0);return _0x443cf9[_0x3e6bf9('0xc1')]('');}(this['_r'],this['_g'],this['_b'],this['_a'],_0x3d1133);},'toHex8String':function(_0x120cb5){return'#'+this['toHex8'](_0x120cb5);},'toRgb':function(){return{'r':_0x2e2626(this['_r']),'g':_0x2e2626(this['_g']),'b':_0x2e2626(this['_b']),'a':this['_a']};},'toRgbString':function(){var _0x1b6d49=_0x23a10b;return 0x1==this['_a']?_0x1b6d49('0x86f')+_0x2e2626(this['_r'])+',\x20'+_0x2e2626(this['_g'])+',\x20'+_0x2e2626(this['_b'])+')':_0x1b6d49('0x853')+_0x2e2626(this['_r'])+',\x20'+_0x2e2626(this['_g'])+',\x20'+_0x2e2626(this['_b'])+',\x20'+this[_0x1b6d49('0xd40')]+')';},'toPercentageRgb':function(){return{'r':_0x2e2626(0x64*_0x16d76b(this['_r'],0xff))+'%','g':_0x2e2626(0x64*_0x16d76b(this['_g'],0xff))+'%','b':_0x2e2626(0x64*_0x16d76b(this['_b'],0xff))+'%','a':this['_a']};},'toPercentageRgbString':function(){var _0x9867ff=_0x23a10b;return 0x1==this['_a']?'rgb('+_0x2e2626(0x64*_0x16d76b(this['_r'],0xff))+'%,\x20'+_0x2e2626(0x64*_0x16d76b(this['_g'],0xff))+_0x9867ff('0xbb0')+_0x2e2626(0x64*_0x16d76b(this['_b'],0xff))+'%)':_0x9867ff('0x853')+_0x2e2626(0x64*_0x16d76b(this['_r'],0xff))+'%,\x20'+_0x2e2626(0x64*_0x16d76b(this['_g'],0xff))+_0x9867ff('0xbb0')+_0x2e2626(0x64*_0x16d76b(this['_b'],0xff))+_0x9867ff('0xbb0')+this[_0x9867ff('0xd40')]+')';},'toName':function(){var _0x51d14e=_0x23a10b;return 0x0===this['_a']?_0x51d14e('0x6'):!(this['_a']<0x1)&&(_0x16c2fb[_0x2397ff(this['_r'],this['_g'],this['_b'],!0x0)]||!0x1);},'toFilter':function(_0x5beb07){var _0x3439cc=_0x23a10b,_0x442f95='#'+_0x2976cb(this['_r'],this['_g'],this['_b'],this['_a']),_0x738dc1=_0x442f95,_0xbad79b=this['_gradientType']?_0x3439cc('0xa9d'):'';if(_0x5beb07){var _0x3de0c8=_0x33d994(_0x5beb07);_0x738dc1='#'+_0x2976cb(_0x3de0c8['_r'],_0x3de0c8['_g'],_0x3de0c8['_b'],_0x3de0c8['_a']);}return _0x3439cc('0x219')+_0xbad79b+_0x3439cc('0x55')+_0x442f95+',endColorstr='+_0x738dc1+')';},'toString':function(_0x385800){var _0x1d2c2f=_0x23a10b,_0x2ff02e=!!_0x385800;_0x385800=_0x385800||this['_format'];var _0x58933e=!0x1,_0x202ea6=this['_a']<0x1&&this['_a']>=0x0;return _0x2ff02e||!_0x202ea6||_0x1d2c2f('0x7c6')!==_0x385800&&_0x1d2c2f('0x27a')!==_0x385800&&_0x1d2c2f('0x541')!==_0x385800&&_0x1d2c2f('0x7')!==_0x385800&&_0x1d2c2f('0xc34')!==_0x385800&&_0x1d2c2f('0xce')!==_0x385800?(_0x1d2c2f('0x4dd')===_0x385800&&(_0x58933e=this[_0x1d2c2f('0x9c8')]()),_0x1d2c2f('0x580')===_0x385800&&(_0x58933e=this['toPercentageRgbString']()),_0x1d2c2f('0x7c6')!==_0x385800&&_0x1d2c2f('0x27a')!==_0x385800||(_0x58933e=this[_0x1d2c2f('0x116')]()),_0x1d2c2f('0x541')===_0x385800&&(_0x58933e=this[_0x1d2c2f('0x116')](!0x0)),'hex4'===_0x385800&&(_0x58933e=this['toHex8String'](!0x0)),_0x1d2c2f('0xc34')===_0x385800&&(_0x58933e=this[_0x1d2c2f('0xab9')]()),_0x1d2c2f('0xce')===_0x385800&&(_0x58933e=this[_0x1d2c2f('0x6c6')]()),'hsl'===_0x385800&&(_0x58933e=this[_0x1d2c2f('0xee')]()),_0x1d2c2f('0x683')===_0x385800&&(_0x58933e=this[_0x1d2c2f('0xd57')]()),_0x58933e||this[_0x1d2c2f('0x116')]()):'name'===_0x385800&&0x0===this['_a']?this[_0x1d2c2f('0x6c6')]():this[_0x1d2c2f('0x9c8')]();},'clone':function(){return _0x33d994(this['toString']());},'_applyModification':function(_0x3b552a,_0x134fff){var _0x5527b8=_0x23a10b,_0x55cb13=_0x3b552a['apply'](null,[this]['concat']([][_0x5527b8('0x5fe')]['call'](_0x134fff)));return this['_r']=_0x55cb13['_r'],this['_g']=_0x55cb13['_g'],this['_b']=_0x55cb13['_b'],this[_0x5527b8('0xb05')](_0x55cb13['_a']),this;},'lighten':function(){var _0x5c464d=_0x23a10b;return this[_0x5c464d('0x8ea')](_0x28927d,arguments);},'brighten':function(){var _0x5b1bff=_0x23a10b;return this[_0x5b1bff('0x8ea')](_0x13d67e,arguments);},'darken':function(){var _0xe56dd8=_0x23a10b;return this[_0xe56dd8('0x8ea')](_0x3f0bce,arguments);},'desaturate':function(){var _0x50ebce=_0x23a10b;return this[_0x50ebce('0x8ea')](_0x2a5ce7,arguments);},'saturate':function(){var _0x42bc4a=_0x23a10b;return this[_0x42bc4a('0x8ea')](_0xe64737,arguments);},'greyscale':function(){var _0x95098b=_0x23a10b;return this[_0x95098b('0x8ea')](_0xe9a88f,arguments);},'spin':function(){var _0x128d32=_0x23a10b;return this[_0x128d32('0x8ea')](_0x30337c,arguments);},'_applyCombination':function(_0x474cf9,_0x54ca57){var _0x21c05a=_0x23a10b;return _0x474cf9[_0x21c05a('0x365')](null,[this][_0x21c05a('0x4c2')]([][_0x21c05a('0x5fe')]['call'](_0x54ca57)));},'analogous':function(){var _0x52c275=_0x23a10b;return this[_0x52c275('0x287')](_0x897908,arguments);},'complement':function(){return this['_applyCombination'](_0x3ba723,arguments);},'monochromatic':function(){return this['_applyCombination'](_0x443c74,arguments);},'splitcomplement':function(){var _0xee8de6=_0x23a10b;return this[_0xee8de6('0x287')](_0x5c6bf3,arguments);},'triad':function(){var _0x157ac1=_0x23a10b;return this[_0x157ac1('0x287')](_0x1185fa,arguments);},'tetrad':function(){var _0x82a24e=_0x23a10b;return this[_0x82a24e('0x287')](_0x5fefce,arguments);}},_0x33d994[_0x23a10b('0x409')]=function(_0x5c356d,_0x2f9f4a){var _0xb87fad=_0x23a10b;if('object'==typeof _0x5c356d){var _0x1b92ac={};for(var _0x5df291 in _0x5c356d)_0x5c356d[_0xb87fad('0x1a8')](_0x5df291)&&(_0x1b92ac[_0x5df291]='a'===_0x5df291?_0x5c356d[_0x5df291]:_0x110c66(_0x5c356d[_0x5df291]));_0x5c356d=_0x1b92ac;}return _0x33d994(_0x5c356d,_0x2f9f4a);},_0x33d994[_0x23a10b('0xb51')]=function(_0x1994c8,_0x416d03){var _0x15a45b=_0x23a10b;return!(!_0x1994c8||!_0x416d03)&&_0x33d994(_0x1994c8)['toRgbString']()==_0x33d994(_0x416d03)[_0x15a45b('0x9c8')]();},_0x33d994[_0x23a10b('0xd1d')]=function(){var _0xf49b42=_0x23a10b;return _0x33d994[_0xf49b42('0x409')]({'r':_0x3a5bdf(),'g':_0x3a5bdf(),'b':_0x3a5bdf()});},_0x33d994[_0x23a10b('0x4bc')]=function(_0x3e9f7a,_0x459127,_0x31e996){var _0x564a85=_0x23a10b;_0x31e996=0x0===_0x31e996?0x0:_0x31e996||0x32;var _0x3b2423=_0x33d994(_0x3e9f7a)['toRgb'](),_0x529f35=_0x33d994(_0x459127)[_0x564a85('0x7a7')](),_0xfc4a1c=_0x31e996/0x64;return _0x33d994({'r':(_0x529f35['r']-_0x3b2423['r'])*_0xfc4a1c+_0x3b2423['r'],'g':(_0x529f35['g']-_0x3b2423['g'])*_0xfc4a1c+_0x3b2423['g'],'b':(_0x529f35['b']-_0x3b2423['b'])*_0xfc4a1c+_0x3b2423['b'],'a':(_0x529f35['a']-_0x3b2423['a'])*_0xfc4a1c+_0x3b2423['a']});},_0x33d994[_0x23a10b('0x186')]=function(_0x7e97b8,_0x57166f){var _0xc12a70=_0x23a10b,_0x4975f0=_0x33d994(_0x7e97b8),_0x5ddb39=_0x33d994(_0x57166f);return(_0x5ac284[_0xc12a70('0x6c1')](_0x4975f0['getLuminance'](),_0x5ddb39['getLuminance']())+0.05)/(_0x5ac284['min'](_0x4975f0[_0xc12a70('0x8b4')](),_0x5ddb39[_0xc12a70('0x8b4')]())+0.05);},_0x33d994[_0x23a10b('0xbdf')]=function(_0x2437d0,_0x4f6469,_0x460da8){var _0x33aab0=_0x23a10b,_0x59c1f5,_0x57547a,_0x810e01=_0x33d994[_0x33aab0('0x186')](_0x2437d0,_0x4f6469);switch(_0x57547a=!0x1,(_0x59c1f5=function(_0x2e2a35){var _0x37e957=_0x33aab0,_0x50919c,_0x5a8a2a;return _0x50919c=((_0x2e2a35=_0x2e2a35||{'level':'AA','size':_0x37e957('0x9c')})[_0x37e957('0x1b8')]||'AA')[_0x37e957('0xca2')](),_0x5a8a2a=(_0x2e2a35[_0x37e957('0x2f9')]||'small')[_0x37e957('0x2f5')](),'AA'!==_0x50919c&&_0x37e957('0x51c')!==_0x50919c&&(_0x50919c='AA'),_0x37e957('0x9c')!==_0x5a8a2a&&_0x37e957('0x70b')!==_0x5a8a2a&&(_0x5a8a2a='small'),{'level':_0x50919c,'size':_0x5a8a2a};}(_0x460da8))[_0x33aab0('0x1b8')]+_0x59c1f5[_0x33aab0('0x2f9')]){case _0x33aab0('0x8b'):case _0x33aab0('0x404'):_0x57547a=_0x810e01>=4.5;break;case _0x33aab0('0x608'):_0x57547a=_0x810e01>=0x3;break;case'AAAsmall':_0x57547a=_0x810e01>=0x7;}return _0x57547a;},_0x33d994[_0x23a10b('0x157')]=function(_0x32ba64,_0x416d89,_0x2ab876){var _0x1fb0b2=_0x23a10b,_0x4f1744,_0x5557db,_0x411d8a,_0x24cad8,_0x1115e9=null,_0x253d65=0x0;_0x5557db=(_0x2ab876=_0x2ab876||{})['includeFallbackColors'],_0x411d8a=_0x2ab876['level'],_0x24cad8=_0x2ab876[_0x1fb0b2('0x2f9')];for(var _0x4aa081=0x0;_0x4aa081<_0x416d89['length'];_0x4aa081++)(_0x4f1744=_0x33d994[_0x1fb0b2('0x186')](_0x32ba64,_0x416d89[_0x4aa081]))>_0x253d65&&(_0x253d65=_0x4f1744,_0x1115e9=_0x33d994(_0x416d89[_0x4aa081]));return _0x33d994['isReadable'](_0x32ba64,_0x1115e9,{'level':_0x411d8a,'size':_0x24cad8})||!_0x5557db?_0x1115e9:(_0x2ab876[_0x1fb0b2('0x2c6')]=!0x1,_0x33d994[_0x1fb0b2('0x157')](_0x32ba64,[_0x1fb0b2('0x789'),'#000'],_0x2ab876));};var _0x53dd58=_0x33d994['names']={'aliceblue':_0x23a10b('0x914'),'antiquewhite':'faebd7','aqua':_0x23a10b('0x988'),'aquamarine':_0x23a10b('0xb88'),'azure':_0x23a10b('0x9e3'),'beige':_0x23a10b('0x78d'),'bisque':_0x23a10b('0xd1c'),'black':'000','blanchedalmond':_0x23a10b('0xbf0'),'blue':_0x23a10b('0x7e4'),'blueviolet':_0x23a10b('0x9ca'),'brown':_0x23a10b('0xb3c'),'burlywood':_0x23a10b('0xc48'),'burntsienna':_0x23a10b('0xc99'),'cadetblue':_0x23a10b('0x438'),'chartreuse':_0x23a10b('0x917'),'chocolate':'d2691e','coral':_0x23a10b('0x680'),'cornflowerblue':'6495ed','cornsilk':_0x23a10b('0x8f5'),'crimson':_0x23a10b('0x206'),'cyan':_0x23a10b('0x988'),'darkblue':_0x23a10b('0xbbf'),'darkcyan':'008b8b','darkgoldenrod':_0x23a10b('0x17f'),'darkgray':_0x23a10b('0x313'),'darkgreen':'006400','darkgrey':_0x23a10b('0x313'),'darkkhaki':'bdb76b','darkmagenta':_0x23a10b('0x10e'),'darkolivegreen':_0x23a10b('0xc05'),'darkorange':_0x23a10b('0xa41'),'darkorchid':_0x23a10b('0x88a'),'darkred':_0x23a10b('0x505'),'darksalmon':_0x23a10b('0xbb2'),'darkseagreen':'8fbc8f','darkslateblue':_0x23a10b('0xd73'),'darkslategray':'2f4f4f','darkslategrey':_0x23a10b('0x41'),'darkturquoise':_0x23a10b('0x3ea'),'darkviolet':_0x23a10b('0xd19'),'deeppink':_0x23a10b('0xae2'),'deepskyblue':'00bfff','dimgray':'696969','dimgrey':_0x23a10b('0x168'),'dodgerblue':_0x23a10b('0x1fe'),'firebrick':_0x23a10b('0xb3b'),'floralwhite':_0x23a10b('0x40'),'forestgreen':_0x23a10b('0xa3c'),'fuchsia':_0x23a10b('0x268'),'gainsboro':'dcdcdc','ghostwhite':_0x23a10b('0xce5'),'gold':_0x23a10b('0x8c3'),'goldenrod':'daa520','gray':'808080','green':_0x23a10b('0x12c'),'greenyellow':_0x23a10b('0x5f0'),'grey':_0x23a10b('0xad6'),'honeydew':'f0fff0','hotpink':_0x23a10b('0x3db'),'indianred':_0x23a10b('0x925'),'indigo':_0x23a10b('0x2d0'),'ivory':_0x23a10b('0x1e6'),'khaki':_0x23a10b('0x82f'),'lavender':_0x23a10b('0x73'),'lavenderblush':_0x23a10b('0xbc5'),'lawngreen':'7cfc00','lemonchiffon':'fffacd','lightblue':_0x23a10b('0xb47'),'lightcoral':_0x23a10b('0x36'),'lightcyan':_0x23a10b('0x42e'),'lightgoldenrodyellow':'fafad2','lightgray':_0x23a10b('0x6b5'),'lightgreen':'90ee90','lightgrey':_0x23a10b('0x6b5'),'lightpink':_0x23a10b('0x2f3'),'lightsalmon':'ffa07a','lightseagreen':_0x23a10b('0x132'),'lightskyblue':_0x23a10b('0x952'),'lightslategray':_0x23a10b('0xaf4'),'lightslategrey':_0x23a10b('0xaf4'),'lightsteelblue':_0x23a10b('0x5a2'),'lightyellow':_0x23a10b('0xd8f'),'lime':_0x23a10b('0x451'),'limegreen':_0x23a10b('0x737'),'linen':_0x23a10b('0xb4a'),'magenta':_0x23a10b('0x268'),'maroon':_0x23a10b('0xd95'),'mediumaquamarine':_0x23a10b('0xbae'),'mediumblue':'0000cd','mediumorchid':_0x23a10b('0xcbe'),'mediumpurple':_0x23a10b('0xb8f'),'mediumseagreen':_0x23a10b('0xd72'),'mediumslateblue':_0x23a10b('0xcb0'),'mediumspringgreen':_0x23a10b('0x615'),'mediumturquoise':'48d1cc','mediumvioletred':_0x23a10b('0x693'),'midnightblue':'191970','mintcream':_0x23a10b('0xca5'),'mistyrose':_0x23a10b('0xbc0'),'moccasin':_0x23a10b('0x77e'),'navajowhite':'ffdead','navy':_0x23a10b('0xb29'),'oldlace':_0x23a10b('0xaeb'),'olive':_0x23a10b('0x4b7'),'olivedrab':_0x23a10b('0x1cb'),'orange':_0x23a10b('0xa81'),'orangered':'ff4500','orchid':_0x23a10b('0xb56'),'palegoldenrod':_0x23a10b('0x8e4'),'palegreen':_0x23a10b('0xbe9'),'paleturquoise':'afeeee','palevioletred':_0x23a10b('0xb2e'),'papayawhip':_0x23a10b('0x4c7'),'peachpuff':_0x23a10b('0x7e5'),'peru':_0x23a10b('0x35b'),'pink':_0x23a10b('0x7c4'),'plum':'dda0dd','powderblue':_0x23a10b('0x5ae'),'purple':_0x23a10b('0x160'),'rebeccapurple':_0x23a10b('0x90f'),'red':_0x23a10b('0x78a'),'rosybrown':_0x23a10b('0x987'),'royalblue':_0x23a10b('0xd5d'),'saddlebrown':_0x23a10b('0xddd'),'salmon':_0x23a10b('0x3ab'),'sandybrown':_0x23a10b('0x248'),'seagreen':_0x23a10b('0x15b'),'seashell':_0x23a10b('0x2ca'),'sienna':_0x23a10b('0x267'),'silver':_0x23a10b('0xa0e'),'skyblue':_0x23a10b('0x769'),'slateblue':_0x23a10b('0xa4a'),'slategray':_0x23a10b('0xb8a'),'slategrey':'708090','snow':_0x23a10b('0x62f'),'springgreen':_0x23a10b('0x6a8'),'steelblue':'4682b4','tan':_0x23a10b('0x788'),'teal':_0x23a10b('0x817'),'thistle':_0x23a10b('0xcb6'),'tomato':'ff6347','turquoise':'40e0d0','violet':_0x23a10b('0x44'),'wheat':_0x23a10b('0xc9d'),'white':'fff','whitesmoke':'f5f5f5','yellow':_0x23a10b('0x1b4'),'yellowgreen':_0x23a10b('0x544')},_0x16c2fb=_0x33d994['hexNames']=function(_0x145d69){var _0x36e9dc=_0x23a10b,_0x230df1={};for(var _0x55de19 in _0x145d69)_0x145d69[_0x36e9dc('0x1a8')](_0x55de19)&&(_0x230df1[_0x145d69[_0x55de19]]=_0x55de19);return _0x230df1;}(_0x53dd58);function _0x433eea(_0x4ebbb4){return _0x4ebbb4=parseFloat(_0x4ebbb4),(isNaN(_0x4ebbb4)||_0x4ebbb4<0x0||_0x4ebbb4>0x1)&&(_0x4ebbb4=0x1),_0x4ebbb4;}function _0x16d76b(_0x214294,_0x518810){var _0x121c47=_0x23a10b;(function(_0x431d45){var _0x445f41=_0x1c0e;return _0x445f41('0x3fd')==typeof _0x431d45&&-0x1!=_0x431d45['indexOf']('.')&&0x1===parseFloat(_0x431d45);}(_0x214294)&&(_0x214294=_0x121c47('0xaa6')));var _0x3d8d52=function(_0x1a8555){var _0x46b8bd=_0x121c47;return _0x46b8bd('0x3fd')==typeof _0x1a8555&&-0x1!=_0x1a8555['indexOf']('%');}(_0x214294);return _0x214294=_0x3b72b9(_0x518810,_0x5c3d17(0x0,parseFloat(_0x214294))),_0x3d8d52&&(_0x214294=parseInt(_0x214294*_0x518810,0xa)/0x64),_0x5ac284[_0x121c47('0x72d')](_0x214294-_0x518810)<0.000001?0x1:_0x214294%_0x518810/parseFloat(_0x518810);}function _0xbcffa7(_0x4f6a30){return _0x3b72b9(0x1,_0x5c3d17(0x0,_0x4f6a30));}function _0x177d8d(_0x5ae226){return parseInt(_0x5ae226,0x10);}function _0x5aa8aa(_0x95b8ac){return 0x1==_0x95b8ac['length']?'0'+_0x95b8ac:''+_0x95b8ac;}function _0x110c66(_0x121bc4){return _0x121bc4<=0x1&&(_0x121bc4=0x64*_0x121bc4+'%'),_0x121bc4;}function _0x265b77(_0x5445be){var _0x10cb75=_0x23a10b;return _0x5ac284[_0x10cb75('0x763')](0xff*parseFloat(_0x5445be))[_0x10cb75('0x6e9')](0x10);}function _0x2298a3(_0x1304b1){return _0x177d8d(_0x1304b1)/0xff;}var _0x2f713e,_0x316288,_0x333c97,_0x150a72=(_0x316288=_0x23a10b('0xbf6')+(_0x2f713e='(?:[-\x5c+]?\x5cd*\x5c.\x5cd+%?)|(?:[-\x5c+]?\x5cd+%?)')+_0x23a10b('0x2a3')+_0x2f713e+_0x23a10b('0x2a3')+_0x2f713e+_0x23a10b('0xd5f'),_0x333c97=_0x23a10b('0xbf6')+_0x2f713e+_0x23a10b('0x2a3')+_0x2f713e+_0x23a10b('0x2a3')+_0x2f713e+_0x23a10b('0x2a3')+_0x2f713e+_0x23a10b('0xd5f'),{'CSS_UNIT':new RegExp(_0x2f713e),'rgb':new RegExp('rgb'+_0x316288),'rgba':new RegExp('rgba'+_0x333c97),'hsl':new RegExp('hsl'+_0x316288),'hsla':new RegExp(_0x23a10b('0xaaa')+_0x333c97),'hsv':new RegExp(_0x23a10b('0x683')+_0x316288),'hsva':new RegExp(_0x23a10b('0x872')+_0x333c97),'hex3':/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,'hex6':/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,'hex4':/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,'hex8':/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/});function _0x1bdcd4(_0x166a93){var _0x223206=_0x23a10b;return!!_0x150a72[_0x223206('0xd38')][_0x223206('0x850')](_0x166a93);}void 0x0!==_0x11d271&&_0x11d271[_0x23a10b('0xd7')]?_0x11d271['exports']=_0x33d994:_0x23a10b('0xa25')==typeof define&&define[_0x23a10b('0x9fd')]?define(function(){return _0x33d994;}):window[_0x23a10b('0x341')]=_0x33d994;}(Math);},{}],0x17b:[function(_0x10a7b7,_0x44def4,_0x1db46d){var _0x2d43e4=_0x38d28e,_0x18d248,_0x1f14c3;_0x18d248=this,_0x1f14c3=function(){return function(_0xad40ed){function _0xcc83f9(_0x46d8c7){var _0xf370ea=_0x1c0e;if(_0x2c9b85[_0x46d8c7])return _0x2c9b85[_0x46d8c7][_0xf370ea('0xd7')];var _0x4573a0=_0x2c9b85[_0x46d8c7]={'exports':{},'id':_0x46d8c7,'loaded':!0x1};return _0xad40ed[_0x46d8c7][_0xf370ea('0x964')](_0x4573a0[_0xf370ea('0xd7')],_0x4573a0,_0x4573a0['exports'],_0xcc83f9),_0x4573a0['loaded']=!0x0,_0x4573a0[_0xf370ea('0xd7')];}var _0x2c9b85={};return _0xcc83f9['m']=_0xad40ed,_0xcc83f9['c']=_0x2c9b85,_0xcc83f9['p']='',_0xcc83f9(0x0);}([function(_0x585c73,_0x26c408){var _0x370927=_0x1c0e;'use strict';function _0x46ab29(_0x3920e7,_0x19aaa0,_0xa89deb,_0x4a3adf){var _0x86aa09=_0x1c0e;return function(_0x10730a,_0x34ecf3,_0x1aa18a,_0x7ee3d7){return{'red':_0x7ee3d7[0x4*(_0x1aa18a*_0x34ecf3+_0x10730a)],'green':_0x7ee3d7[0x4*(_0x1aa18a*_0x34ecf3+_0x10730a)+0x1],'blue':_0x7ee3d7[0x4*(_0x1aa18a*_0x34ecf3+_0x10730a)+0x2],'alpha':_0x7ee3d7[0x4*(_0x1aa18a*_0x34ecf3+_0x10730a)+0x3]};}(_0x3920e7,_0x19aaa0,_0xa89deb,_0x4a3adf)[_0x86aa09('0x695')];}function _0x5adf9b(_0x280616,_0x5bcbbc,_0x161a69,_0x123371){for(var _0x57e607=_0x280616?0x1:-0x1,_0x325a78=_0x280616?0x0:_0x161a69-0x1;_0x280616?_0x325a78<_0x161a69:_0x325a78>-0x1;_0x325a78+=_0x57e607)for(var _0x3f9603=0x0;_0x3f9603<_0x5bcbbc;_0x3f9603++)if(_0x46ab29(_0x3f9603,_0x325a78,_0x5bcbbc,_0x123371))return _0x325a78;return null;}function _0x526cd9(_0x1a4430,_0x82c0cb,_0x13e126,_0x44d9a1){for(var _0x100d1b=_0x1a4430?0x1:-0x1,_0x43051a=_0x1a4430?0x0:_0x82c0cb-0x1;_0x1a4430?_0x43051a<_0x82c0cb:_0x43051a>-0x1;_0x43051a+=_0x100d1b)for(var _0x3a6c03=0x0;_0x3a6c03<_0x13e126;_0x3a6c03++)if(_0x46ab29(_0x43051a,_0x3a6c03,_0x82c0cb,_0x44d9a1))return _0x43051a;return null;}Object[_0x370927('0x751')](_0x26c408,'__esModule',{'value':!0x0}),_0x26c408[_0x370927('0x8fd')]=function(_0x3d3bd4){var _0xef8751=_0x370927,_0x4356e6=_0x3d3bd4['getContext']('2d'),_0x547372=_0x3d3bd4[_0xef8751('0x5f9')],_0x1d0059=_0x3d3bd4[_0xef8751('0x3e')],_0x2b9f40=_0x4356e6[_0xef8751('0xcec')](0x0,0x0,_0x547372,_0x1d0059)[_0xef8751('0x38')],_0x448da0=_0x5adf9b(!0x0,_0x547372,_0x1d0059,_0x2b9f40),_0x57a7f5=_0x5adf9b(!0x1,_0x547372,_0x1d0059,_0x2b9f40),_0x37d08e=_0x526cd9(!0x0,_0x547372,_0x1d0059,_0x2b9f40),_0x499bfd=_0x526cd9(!0x1,_0x547372,_0x1d0059,_0x2b9f40)-_0x37d08e+0x1,_0x1e3327=_0x57a7f5-_0x448da0+0x1,_0x3f27a3=_0x4356e6[_0xef8751('0xcec')](_0x37d08e,_0x448da0,_0x499bfd,_0x1e3327);return _0x3d3bd4[_0xef8751('0x5f9')]=_0x499bfd,_0x3d3bd4[_0xef8751('0x3e')]=_0x1e3327,_0x4356e6[_0xef8751('0x99b')](0x0,0x0,_0x499bfd,_0x1e3327),_0x4356e6[_0xef8751('0x97')](_0x3f27a3,0x0,0x0),_0x3d3bd4;};}]);},'object'==typeof _0x1db46d&&'object'==typeof _0x44def4?_0x44def4[_0x2d43e4('0xd7')]=_0x1f14c3():_0x2d43e4('0xa25')==typeof define&&define[_0x2d43e4('0x9fd')]?define([],_0x1f14c3):_0x2d43e4('0xbfd')==typeof _0x1db46d?_0x1db46d[_0x2d43e4('0xc04')]=_0x1f14c3():_0x18d248['trimCanvas']=_0x1f14c3();},{}]},{},[0x41,0x43,0x45,0x47,0x49,0x4c,0x4e,0x50,0x52,0x54,0x56,0x58,0x5a,0x5c,0x5e]); \ No newline at end of file + +'use strict';var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b? +Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119; +function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d; +exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t}; +exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p}; +exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z; + +},{}],368:[function(require,module,exports){ +(function (process){ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-is.production.min.js'); +} else { + module.exports = require('./cjs/react-is.development.js'); +} + +}).call(this,require('_process')) + +},{"./cjs/react-is.development.js":366,"./cjs/react-is.production.min.js":367,"_process":6}],369:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("prop-types"),require("react"),require("signature_pad"),require("trim-canvas")):"function"==typeof define&&define.amd?define(["prop-types","react","signature_pad","trim-canvas"],t):"object"==typeof exports?exports.SignatureCanvas=t(require("prop-types"),require("react"),require("signature_pad"),require("trim-canvas")):e.SignatureCanvas=t(e["prop-types"],e.react,e.signature_pad,e["trim-canvas"])}(this,function(e,t,n,r){return function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={exports:{},id:r,loaded:!1};return e[r].call(a.exports,a,a.exports,t),a.loaded=!0,a.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t 1 && arguments[1] !== undefined ? arguments[1] : 'span'; + + return function (_React$Component) { + _inherits(Active, _React$Component); + + function Active() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Active); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Active.__proto__ || Object.getPrototypeOf(Active)).call.apply(_ref, [this].concat(args))), _this), _this.state = { active: false }, _this.handleMouseDown = function () { + return _this.setState({ active: true }); + }, _this.handleMouseUp = function () { + return _this.setState({ active: false }); + }, _this.render = function () { + return _react2.default.createElement( + Span, + { onMouseDown: _this.handleMouseDown, onMouseUp: _this.handleMouseUp }, + _react2.default.createElement(Component, _extends({}, _this.props, _this.state)) + ); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + return Active; + }(_react2.default.Component); +}; + +exports.default = active; +},{"react":"react"}],372:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.hover = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _react = require('react'); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var hover = exports.hover = function hover(Component) { + var Span = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'span'; + + return function (_React$Component) { + _inherits(Hover, _React$Component); + + function Hover() { + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Hover); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Hover.__proto__ || Object.getPrototypeOf(Hover)).call.apply(_ref, [this].concat(args))), _this), _this.state = { hover: false }, _this.handleMouseOver = function () { + return _this.setState({ hover: true }); + }, _this.handleMouseOut = function () { + return _this.setState({ hover: false }); + }, _this.render = function () { + return _react2.default.createElement( + Span, + { onMouseOver: _this.handleMouseOver, onMouseOut: _this.handleMouseOut }, + _react2.default.createElement(Component, _extends({}, _this.props, _this.state)) + ); + }, _temp), _possibleConstructorReturn(_this, _ret); + } + + return Hover; + }(_react2.default.Component); +}; + +exports.default = hover; +},{"react":"react"}],373:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.flattenNames = undefined; + +var _isString2 = require('lodash/isString'); + +var _isString3 = _interopRequireDefault(_isString2); + +var _forOwn2 = require('lodash/forOwn'); + +var _forOwn3 = _interopRequireDefault(_forOwn2); + +var _isPlainObject2 = require('lodash/isPlainObject'); + +var _isPlainObject3 = _interopRequireDefault(_isPlainObject2); + +var _map2 = require('lodash/map'); + +var _map3 = _interopRequireDefault(_map2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var flattenNames = exports.flattenNames = function flattenNames() { + var things = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; + + var names = []; + + (0, _map3.default)(things, function (thing) { + if (Array.isArray(thing)) { + flattenNames(thing).map(function (name) { + return names.push(name); + }); + } else if ((0, _isPlainObject3.default)(thing)) { + (0, _forOwn3.default)(thing, function (value, key) { + value === true && names.push(key); + names.push(key + '-' + value); + }); + } else if ((0, _isString3.default)(thing)) { + names.push(thing); + } + }); + + return names; +}; + +exports.default = flattenNames; +},{"lodash/forOwn":271,"lodash/isPlainObject":285,"lodash/isString":287,"lodash/map":293}],374:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.ReactCSS = exports.loop = exports.handleActive = exports.handleHover = exports.hover = undefined; + +var _flattenNames = require('./flattenNames'); + +var _flattenNames2 = _interopRequireDefault(_flattenNames); + +var _mergeClasses = require('./mergeClasses'); + +var _mergeClasses2 = _interopRequireDefault(_mergeClasses); + +var _autoprefix = require('./autoprefix'); + +var _autoprefix2 = _interopRequireDefault(_autoprefix); + +var _hover2 = require('./components/hover'); + +var _hover3 = _interopRequireDefault(_hover2); + +var _active = require('./components/active'); + +var _active2 = _interopRequireDefault(_active); + +var _loop2 = require('./loop'); + +var _loop3 = _interopRequireDefault(_loop2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.hover = _hover3.default; +exports.handleHover = _hover3.default; +exports.handleActive = _active2.default; +exports.loop = _loop3.default; +var ReactCSS = exports.ReactCSS = function ReactCSS(classes) { + for (var _len = arguments.length, activations = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + activations[_key - 1] = arguments[_key]; + } + + var activeNames = (0, _flattenNames2.default)(activations); + var merged = (0, _mergeClasses2.default)(classes, activeNames); + return (0, _autoprefix2.default)(merged); +}; + +exports.default = ReactCSS; +},{"./autoprefix":370,"./components/active":371,"./components/hover":372,"./flattenNames":373,"./loop":375,"./mergeClasses":376}],375:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var loopable = function loopable(i, length) { + var props = {}; + var setProp = function setProp(name) { + var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; + + props[name] = value; + }; + + i === 0 && setProp('first-child'); + i === length - 1 && setProp('last-child'); + (i === 0 || i % 2 === 0) && setProp('even'); + Math.abs(i % 2) === 1 && setProp('odd'); + setProp('nth-child', i); + + return props; +}; + +exports.default = loopable; +},{}],376:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.mergeClasses = undefined; + +var _forOwn2 = require('lodash/forOwn'); + +var _forOwn3 = _interopRequireDefault(_forOwn2); + +var _cloneDeep2 = require('lodash/cloneDeep'); + +var _cloneDeep3 = _interopRequireDefault(_cloneDeep2); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var mergeClasses = exports.mergeClasses = function mergeClasses(classes) { + var activeNames = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + + var styles = classes.default && (0, _cloneDeep3.default)(classes.default) || {}; + activeNames.map(function (name) { + var toMerge = classes[name]; + if (toMerge) { + (0, _forOwn3.default)(toMerge, function (value, key) { + if (!styles[key]) { + styles[key] = {}; + } + + styles[key] = _extends({}, styles[key], toMerge[key]); + }); + } + + return name; + }); + return styles; +}; + +exports.default = mergeClasses; +},{"lodash/cloneDeep":265,"lodash/forOwn":271}],377:[function(require,module,exports){ +/*! + * Signature Pad v2.3.2 + * https://github.com/szimek/signature_pad + * + * Copyright 2017 Szymon Nowak + * Released under the MIT license + * + * The main idea and some parts of the code (e.g. drawing variable width Bézier curve) are taken from: + * http://corner.squareup.com/2012/07/smoother-signatures.html + * + * Implementation of interpolation using cubic Bézier curves is taken from: + * http://benknowscode.wordpress.com/2012/09/14/path-interpolation-using-cubic-bezier-and-control-point-estimation-in-javascript + * + * Algorithm for approximated length of a Bézier curve is taken from: + * http://www.lemoda.net/maths/bezier-length/index.html + * + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.SignaturePad = factory()); +}(this, (function () { 'use strict'; + +function Point(x, y, time) { + this.x = x; + this.y = y; + this.time = time || new Date().getTime(); +} + +Point.prototype.velocityFrom = function (start) { + return this.time !== start.time ? this.distanceTo(start) / (this.time - start.time) : 1; +}; + +Point.prototype.distanceTo = function (start) { + return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2)); +}; + +Point.prototype.equals = function (other) { + return this.x === other.x && this.y === other.y && this.time === other.time; +}; + +function Bezier(startPoint, control1, control2, endPoint) { + this.startPoint = startPoint; + this.control1 = control1; + this.control2 = control2; + this.endPoint = endPoint; +} + +// Returns approximated length. +Bezier.prototype.length = function () { + var steps = 10; + var length = 0; + var px = void 0; + var py = void 0; + + for (var i = 0; i <= steps; i += 1) { + var t = i / steps; + var cx = this._point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x); + var cy = this._point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y); + if (i > 0) { + var xdiff = cx - px; + var ydiff = cy - py; + length += Math.sqrt(xdiff * xdiff + ydiff * ydiff); + } + px = cx; + py = cy; + } + + return length; +}; + +/* eslint-disable no-multi-spaces, space-in-parens */ +Bezier.prototype._point = function (t, start, c1, c2, end) { + return start * (1.0 - t) * (1.0 - t) * (1.0 - t) + 3.0 * c1 * (1.0 - t) * (1.0 - t) * t + 3.0 * c2 * (1.0 - t) * t * t + end * t * t * t; +}; + +/* eslint-disable */ + +// http://stackoverflow.com/a/27078401/815507 +function throttle(func, wait, options) { + var context, args, result; + var timeout = null; + var previous = 0; + if (!options) options = {}; + var later = function later() { + previous = options.leading === false ? 0 : Date.now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + return function () { + var now = Date.now(); + if (!previous && options.leading === false) previous = now; + var remaining = wait - (now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; +} + +function SignaturePad(canvas, options) { + var self = this; + var opts = options || {}; + + this.velocityFilterWeight = opts.velocityFilterWeight || 0.7; + this.minWidth = opts.minWidth || 0.5; + this.maxWidth = opts.maxWidth || 2.5; + this.throttle = 'throttle' in opts ? opts.throttle : 16; // in miliseconds + this.minDistance = 'minDistance' in opts ? opts.minDistance : 5; + + if (this.throttle) { + this._strokeMoveUpdate = throttle(SignaturePad.prototype._strokeUpdate, this.throttle); + } else { + this._strokeMoveUpdate = SignaturePad.prototype._strokeUpdate; + } + + this.dotSize = opts.dotSize || function () { + return (this.minWidth + this.maxWidth) / 2; + }; + this.penColor = opts.penColor || 'black'; + this.backgroundColor = opts.backgroundColor || 'rgba(0,0,0,0)'; + this.onBegin = opts.onBegin; + this.onEnd = opts.onEnd; + + this._canvas = canvas; + this._ctx = canvas.getContext('2d'); + this.clear(); + + // We need add these inline so they are available to unbind while still having + // access to 'self' we could use _.bind but it's not worth adding a dependency. + this._handleMouseDown = function (event) { + if (event.which === 1) { + self._mouseButtonDown = true; + self._strokeBegin(event); + } + }; + + this._handleMouseMove = function (event) { + if (self._mouseButtonDown) { + self._strokeMoveUpdate(event); + } + }; + + this._handleMouseUp = function (event) { + if (event.which === 1 && self._mouseButtonDown) { + self._mouseButtonDown = false; + self._strokeEnd(event); + } + }; + + this._handleTouchStart = function (event) { + if (event.targetTouches.length === 1) { + var touch = event.changedTouches[0]; + self._strokeBegin(touch); + } + }; + + this._handleTouchMove = function (event) { + // Prevent scrolling. + event.preventDefault(); + + var touch = event.targetTouches[0]; + self._strokeMoveUpdate(touch); + }; + + this._handleTouchEnd = function (event) { + var wasCanvasTouched = event.target === self._canvas; + if (wasCanvasTouched) { + event.preventDefault(); + self._strokeEnd(event); + } + }; + + // Enable mouse and touch event handlers + this.on(); +} + +// Public methods +SignaturePad.prototype.clear = function () { + var ctx = this._ctx; + var canvas = this._canvas; + + ctx.fillStyle = this.backgroundColor; + ctx.clearRect(0, 0, canvas.width, canvas.height); + ctx.fillRect(0, 0, canvas.width, canvas.height); + + this._data = []; + this._reset(); + this._isEmpty = true; +}; + +SignaturePad.prototype.fromDataURL = function (dataUrl) { + var _this = this; + + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var image = new Image(); + var ratio = options.ratio || window.devicePixelRatio || 1; + var width = options.width || this._canvas.width / ratio; + var height = options.height || this._canvas.height / ratio; + + this._reset(); + image.src = dataUrl; + image.onload = function () { + _this._ctx.drawImage(image, 0, 0, width, height); + }; + this._isEmpty = false; +}; + +SignaturePad.prototype.toDataURL = function (type) { + var _canvas; + + switch (type) { + case 'image/svg+xml': + return this._toSVG(); + default: + for (var _len = arguments.length, options = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + options[_key - 1] = arguments[_key]; + } + + return (_canvas = this._canvas).toDataURL.apply(_canvas, [type].concat(options)); + } +}; + +SignaturePad.prototype.on = function () { + this._handleMouseEvents(); + this._handleTouchEvents(); +}; + +SignaturePad.prototype.off = function () { + this._canvas.removeEventListener('mousedown', this._handleMouseDown); + this._canvas.removeEventListener('mousemove', this._handleMouseMove); + document.removeEventListener('mouseup', this._handleMouseUp); + + this._canvas.removeEventListener('touchstart', this._handleTouchStart); + this._canvas.removeEventListener('touchmove', this._handleTouchMove); + this._canvas.removeEventListener('touchend', this._handleTouchEnd); +}; + +SignaturePad.prototype.isEmpty = function () { + return this._isEmpty; +}; + +// Private methods +SignaturePad.prototype._strokeBegin = function (event) { + this._data.push([]); + this._reset(); + this._strokeUpdate(event); + + if (typeof this.onBegin === 'function') { + this.onBegin(event); + } +}; + +SignaturePad.prototype._strokeUpdate = function (event) { + var x = event.clientX; + var y = event.clientY; + + var point = this._createPoint(x, y); + var lastPointGroup = this._data[this._data.length - 1]; + var lastPoint = lastPointGroup && lastPointGroup[lastPointGroup.length - 1]; + var isLastPointTooClose = lastPoint && point.distanceTo(lastPoint) < this.minDistance; + + // Skip this point if it's too close to the previous one + if (!(lastPoint && isLastPointTooClose)) { + var _addPoint = this._addPoint(point), + curve = _addPoint.curve, + widths = _addPoint.widths; + + if (curve && widths) { + this._drawCurve(curve, widths.start, widths.end); + } + + this._data[this._data.length - 1].push({ + x: point.x, + y: point.y, + time: point.time, + color: this.penColor + }); + } +}; + +SignaturePad.prototype._strokeEnd = function (event) { + var canDrawCurve = this.points.length > 2; + var point = this.points[0]; // Point instance + + if (!canDrawCurve && point) { + this._drawDot(point); + } + + if (point) { + var lastPointGroup = this._data[this._data.length - 1]; + var lastPoint = lastPointGroup[lastPointGroup.length - 1]; // plain object + + // When drawing a dot, there's only one point in a group, so without this check + // such group would end up with exactly the same 2 points. + if (!point.equals(lastPoint)) { + lastPointGroup.push({ + x: point.x, + y: point.y, + time: point.time, + color: this.penColor + }); + } + } + + if (typeof this.onEnd === 'function') { + this.onEnd(event); + } +}; + +SignaturePad.prototype._handleMouseEvents = function () { + this._mouseButtonDown = false; + + this._canvas.addEventListener('mousedown', this._handleMouseDown); + this._canvas.addEventListener('mousemove', this._handleMouseMove); + document.addEventListener('mouseup', this._handleMouseUp); +}; + +SignaturePad.prototype._handleTouchEvents = function () { + // Pass touch events to canvas element on mobile IE11 and Edge. + this._canvas.style.msTouchAction = 'none'; + this._canvas.style.touchAction = 'none'; + + this._canvas.addEventListener('touchstart', this._handleTouchStart); + this._canvas.addEventListener('touchmove', this._handleTouchMove); + this._canvas.addEventListener('touchend', this._handleTouchEnd); +}; + +SignaturePad.prototype._reset = function () { + this.points = []; + this._lastVelocity = 0; + this._lastWidth = (this.minWidth + this.maxWidth) / 2; + this._ctx.fillStyle = this.penColor; +}; + +SignaturePad.prototype._createPoint = function (x, y, time) { + var rect = this._canvas.getBoundingClientRect(); + + return new Point(x - rect.left, y - rect.top, time || new Date().getTime()); +}; + +SignaturePad.prototype._addPoint = function (point) { + var points = this.points; + var tmp = void 0; + + points.push(point); + + if (points.length > 2) { + // To reduce the initial lag make it work with 3 points + // by copying the first point to the beginning. + if (points.length === 3) points.unshift(points[0]); + + tmp = this._calculateCurveControlPoints(points[0], points[1], points[2]); + var c2 = tmp.c2; + tmp = this._calculateCurveControlPoints(points[1], points[2], points[3]); + var c3 = tmp.c1; + var curve = new Bezier(points[1], c2, c3, points[2]); + var widths = this._calculateCurveWidths(curve); + + // Remove the first element from the list, + // so that we always have no more than 4 points in points array. + points.shift(); + + return { curve: curve, widths: widths }; + } + + return {}; +}; + +SignaturePad.prototype._calculateCurveControlPoints = function (s1, s2, s3) { + var dx1 = s1.x - s2.x; + var dy1 = s1.y - s2.y; + var dx2 = s2.x - s3.x; + var dy2 = s2.y - s3.y; + + var m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 }; + var m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 }; + + var l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1); + var l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2); + + var dxm = m1.x - m2.x; + var dym = m1.y - m2.y; + + var k = l2 / (l1 + l2); + var cm = { x: m2.x + dxm * k, y: m2.y + dym * k }; + + var tx = s2.x - cm.x; + var ty = s2.y - cm.y; + + return { + c1: new Point(m1.x + tx, m1.y + ty), + c2: new Point(m2.x + tx, m2.y + ty) + }; +}; + +SignaturePad.prototype._calculateCurveWidths = function (curve) { + var startPoint = curve.startPoint; + var endPoint = curve.endPoint; + var widths = { start: null, end: null }; + + var velocity = this.velocityFilterWeight * endPoint.velocityFrom(startPoint) + (1 - this.velocityFilterWeight) * this._lastVelocity; + + var newWidth = this._strokeWidth(velocity); + + widths.start = this._lastWidth; + widths.end = newWidth; + + this._lastVelocity = velocity; + this._lastWidth = newWidth; + + return widths; +}; + +SignaturePad.prototype._strokeWidth = function (velocity) { + return Math.max(this.maxWidth / (velocity + 1), this.minWidth); +}; + +SignaturePad.prototype._drawPoint = function (x, y, size) { + var ctx = this._ctx; + + ctx.moveTo(x, y); + ctx.arc(x, y, size, 0, 2 * Math.PI, false); + this._isEmpty = false; +}; + +SignaturePad.prototype._drawCurve = function (curve, startWidth, endWidth) { + var ctx = this._ctx; + var widthDelta = endWidth - startWidth; + var drawSteps = Math.floor(curve.length()); + + ctx.beginPath(); + + for (var i = 0; i < drawSteps; i += 1) { + // Calculate the Bezier (x, y) coordinate for this step. + var t = i / drawSteps; + var tt = t * t; + var ttt = tt * t; + var u = 1 - t; + var uu = u * u; + var uuu = uu * u; + + var x = uuu * curve.startPoint.x; + x += 3 * uu * t * curve.control1.x; + x += 3 * u * tt * curve.control2.x; + x += ttt * curve.endPoint.x; + + var y = uuu * curve.startPoint.y; + y += 3 * uu * t * curve.control1.y; + y += 3 * u * tt * curve.control2.y; + y += ttt * curve.endPoint.y; + + var width = startWidth + ttt * widthDelta; + this._drawPoint(x, y, width); + } + + ctx.closePath(); + ctx.fill(); +}; + +SignaturePad.prototype._drawDot = function (point) { + var ctx = this._ctx; + var width = typeof this.dotSize === 'function' ? this.dotSize() : this.dotSize; + + ctx.beginPath(); + this._drawPoint(point.x, point.y, width); + ctx.closePath(); + ctx.fill(); +}; + +SignaturePad.prototype._fromData = function (pointGroups, drawCurve, drawDot) { + for (var i = 0; i < pointGroups.length; i += 1) { + var group = pointGroups[i]; + + if (group.length > 1) { + for (var j = 0; j < group.length; j += 1) { + var rawPoint = group[j]; + var point = new Point(rawPoint.x, rawPoint.y, rawPoint.time); + var color = rawPoint.color; + + if (j === 0) { + // First point in a group. Nothing to draw yet. + + // All points in the group have the same color, so it's enough to set + // penColor just at the beginning. + this.penColor = color; + this._reset(); + + this._addPoint(point); + } else if (j !== group.length - 1) { + // Middle point in a group. + var _addPoint2 = this._addPoint(point), + curve = _addPoint2.curve, + widths = _addPoint2.widths; + + if (curve && widths) { + drawCurve(curve, widths, color); + } + } else { + // Last point in a group. Do nothing. + } + } + } else { + this._reset(); + var _rawPoint = group[0]; + drawDot(_rawPoint); + } + } +}; + +SignaturePad.prototype._toSVG = function () { + var _this2 = this; + + var pointGroups = this._data; + var canvas = this._canvas; + var ratio = Math.max(window.devicePixelRatio || 1, 1); + var minX = 0; + var minY = 0; + var maxX = canvas.width / ratio; + var maxY = canvas.height / ratio; + var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + + svg.setAttributeNS(null, 'width', canvas.width); + svg.setAttributeNS(null, 'height', canvas.height); + + this._fromData(pointGroups, function (curve, widths, color) { + var path = document.createElement('path'); + + // Need to check curve for NaN values, these pop up when drawing + // lines on the canvas that are not continuous. E.g. Sharp corners + // or stopping mid-stroke and than continuing without lifting mouse. + if (!isNaN(curve.control1.x) && !isNaN(curve.control1.y) && !isNaN(curve.control2.x) && !isNaN(curve.control2.y)) { + var attr = 'M ' + curve.startPoint.x.toFixed(3) + ',' + curve.startPoint.y.toFixed(3) + ' ' + ('C ' + curve.control1.x.toFixed(3) + ',' + curve.control1.y.toFixed(3) + ' ') + (curve.control2.x.toFixed(3) + ',' + curve.control2.y.toFixed(3) + ' ') + (curve.endPoint.x.toFixed(3) + ',' + curve.endPoint.y.toFixed(3)); + + path.setAttribute('d', attr); + path.setAttribute('stroke-width', (widths.end * 2.25).toFixed(3)); + path.setAttribute('stroke', color); + path.setAttribute('fill', 'none'); + path.setAttribute('stroke-linecap', 'round'); + + svg.appendChild(path); + } + }, function (rawPoint) { + var circle = document.createElement('circle'); + var dotSize = typeof _this2.dotSize === 'function' ? _this2.dotSize() : _this2.dotSize; + circle.setAttribute('r', dotSize); + circle.setAttribute('cx', rawPoint.x); + circle.setAttribute('cy', rawPoint.y); + circle.setAttribute('fill', rawPoint.color); + + svg.appendChild(circle); + }); + + var prefix = 'data:image/svg+xml;base64,'; + var header = ''; + var body = svg.innerHTML; + + // IE hack for missing innerHTML property on SVGElement + if (body === undefined) { + var dummy = document.createElement('dummy'); + var nodes = svg.childNodes; + dummy.innerHTML = ''; + + for (var i = 0; i < nodes.length; i += 1) { + dummy.appendChild(nodes[i].cloneNode(true)); + } + + body = dummy.innerHTML; + } + + var footer = ''; + var data = header + body + footer; + + return prefix + btoa(data); +}; + +SignaturePad.prototype.fromData = function (pointGroups) { + var _this3 = this; + + this.clear(); + + this._fromData(pointGroups, function (curve, widths) { + return _this3._drawCurve(curve, widths.start, widths.end); + }, function (rawPoint) { + return _this3._drawDot(rawPoint); + }); + + this._data = pointGroups; +}; + +SignaturePad.prototype.toData = function () { + return this._data; +}; + +return SignaturePad; + +}))); + +},{}],378:[function(require,module,exports){ +// TinyColor v1.4.2 +// https://github.com/bgrins/TinyColor +// Brian Grinstead, MIT License + +(function(Math) { + +var trimLeft = /^\s+/, + trimRight = /\s+$/, + tinyCounter = 0, + mathRound = Math.round, + mathMin = Math.min, + mathMax = Math.max, + mathRandom = Math.random; + +function tinycolor (color, opts) { + + color = (color) ? color : ''; + opts = opts || { }; + + // If input is already a tinycolor, return itself + if (color instanceof tinycolor) { + return color; + } + // If we are called as a function, call using new instead + if (!(this instanceof tinycolor)) { + return new tinycolor(color, opts); + } + + var rgb = inputToRGB(color); + this._originalInput = color, + this._r = rgb.r, + this._g = rgb.g, + this._b = rgb.b, + this._a = rgb.a, + this._roundA = mathRound(100*this._a) / 100, + this._format = opts.format || rgb.format; + this._gradientType = opts.gradientType; + + // Don't let the range of [0,255] come back in [0,1]. + // Potentially lose a little bit of precision here, but will fix issues where + // .5 gets interpreted as half of the total, instead of half of 1 + // If it was supposed to be 128, this was already taken care of by `inputToRgb` + if (this._r < 1) { this._r = mathRound(this._r); } + if (this._g < 1) { this._g = mathRound(this._g); } + if (this._b < 1) { this._b = mathRound(this._b); } + + this._ok = rgb.ok; + this._tc_id = tinyCounter++; +} + +tinycolor.prototype = { + isDark: function() { + return this.getBrightness() < 128; + }, + isLight: function() { + return !this.isDark(); + }, + isValid: function() { + return this._ok; + }, + getOriginalInput: function() { + return this._originalInput; + }, + getFormat: function() { + return this._format; + }, + getAlpha: function() { + return this._a; + }, + getBrightness: function() { + //http://www.w3.org/TR/AERT#color-contrast + var rgb = this.toRgb(); + return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000; + }, + getLuminance: function() { + //http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef + var rgb = this.toRgb(); + var RsRGB, GsRGB, BsRGB, R, G, B; + RsRGB = rgb.r/255; + GsRGB = rgb.g/255; + BsRGB = rgb.b/255; + + if (RsRGB <= 0.03928) {R = RsRGB / 12.92;} else {R = Math.pow(((RsRGB + 0.055) / 1.055), 2.4);} + if (GsRGB <= 0.03928) {G = GsRGB / 12.92;} else {G = Math.pow(((GsRGB + 0.055) / 1.055), 2.4);} + if (BsRGB <= 0.03928) {B = BsRGB / 12.92;} else {B = Math.pow(((BsRGB + 0.055) / 1.055), 2.4);} + return (0.2126 * R) + (0.7152 * G) + (0.0722 * B); + }, + setAlpha: function(value) { + this._a = boundAlpha(value); + this._roundA = mathRound(100*this._a) / 100; + return this; + }, + toHsv: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this._a }; + }, + toHsvString: function() { + var hsv = rgbToHsv(this._r, this._g, this._b); + var h = mathRound(hsv.h * 360), s = mathRound(hsv.s * 100), v = mathRound(hsv.v * 100); + return (this._a == 1) ? + "hsv(" + h + ", " + s + "%, " + v + "%)" : + "hsva(" + h + ", " + s + "%, " + v + "%, "+ this._roundA + ")"; + }, + toHsl: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this._a }; + }, + toHslString: function() { + var hsl = rgbToHsl(this._r, this._g, this._b); + var h = mathRound(hsl.h * 360), s = mathRound(hsl.s * 100), l = mathRound(hsl.l * 100); + return (this._a == 1) ? + "hsl(" + h + ", " + s + "%, " + l + "%)" : + "hsla(" + h + ", " + s + "%, " + l + "%, "+ this._roundA + ")"; + }, + toHex: function(allow3Char) { + return rgbToHex(this._r, this._g, this._b, allow3Char); + }, + toHexString: function(allow3Char) { + return '#' + this.toHex(allow3Char); + }, + toHex8: function(allow4Char) { + return rgbaToHex(this._r, this._g, this._b, this._a, allow4Char); + }, + toHex8String: function(allow4Char) { + return '#' + this.toHex8(allow4Char); + }, + toRgb: function() { + return { r: mathRound(this._r), g: mathRound(this._g), b: mathRound(this._b), a: this._a }; + }, + toRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ")" : + "rgba(" + mathRound(this._r) + ", " + mathRound(this._g) + ", " + mathRound(this._b) + ", " + this._roundA + ")"; + }, + toPercentageRgb: function() { + return { r: mathRound(bound01(this._r, 255) * 100) + "%", g: mathRound(bound01(this._g, 255) * 100) + "%", b: mathRound(bound01(this._b, 255) * 100) + "%", a: this._a }; + }, + toPercentageRgbString: function() { + return (this._a == 1) ? + "rgb(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%)" : + "rgba(" + mathRound(bound01(this._r, 255) * 100) + "%, " + mathRound(bound01(this._g, 255) * 100) + "%, " + mathRound(bound01(this._b, 255) * 100) + "%, " + this._roundA + ")"; + }, + toName: function() { + if (this._a === 0) { + return "transparent"; + } + + if (this._a < 1) { + return false; + } + + return hexNames[rgbToHex(this._r, this._g, this._b, true)] || false; + }, + toFilter: function(secondColor) { + var hex8String = '#' + rgbaToArgbHex(this._r, this._g, this._b, this._a); + var secondHex8String = hex8String; + var gradientType = this._gradientType ? "GradientType = 1, " : ""; + + if (secondColor) { + var s = tinycolor(secondColor); + secondHex8String = '#' + rgbaToArgbHex(s._r, s._g, s._b, s._a); + } + + return "progid:DXImageTransform.Microsoft.gradient("+gradientType+"startColorstr="+hex8String+",endColorstr="+secondHex8String+")"; + }, + toString: function(format) { + var formatSet = !!format; + format = format || this._format; + + var formattedString = false; + var hasAlpha = this._a < 1 && this._a >= 0; + var needsAlphaFormat = !formatSet && hasAlpha && (format === "hex" || format === "hex6" || format === "hex3" || format === "hex4" || format === "hex8" || format === "name"); + + if (needsAlphaFormat) { + // Special case for "transparent", all other non-alpha formats + // will return rgba when there is transparency. + if (format === "name" && this._a === 0) { + return this.toName(); + } + return this.toRgbString(); + } + if (format === "rgb") { + formattedString = this.toRgbString(); + } + if (format === "prgb") { + formattedString = this.toPercentageRgbString(); + } + if (format === "hex" || format === "hex6") { + formattedString = this.toHexString(); + } + if (format === "hex3") { + formattedString = this.toHexString(true); + } + if (format === "hex4") { + formattedString = this.toHex8String(true); + } + if (format === "hex8") { + formattedString = this.toHex8String(); + } + if (format === "name") { + formattedString = this.toName(); + } + if (format === "hsl") { + formattedString = this.toHslString(); + } + if (format === "hsv") { + formattedString = this.toHsvString(); + } + + return formattedString || this.toHexString(); + }, + clone: function() { + return tinycolor(this.toString()); + }, + + _applyModification: function(fn, args) { + var color = fn.apply(null, [this].concat([].slice.call(args))); + this._r = color._r; + this._g = color._g; + this._b = color._b; + this.setAlpha(color._a); + return this; + }, + lighten: function() { + return this._applyModification(lighten, arguments); + }, + brighten: function() { + return this._applyModification(brighten, arguments); + }, + darken: function() { + return this._applyModification(darken, arguments); + }, + desaturate: function() { + return this._applyModification(desaturate, arguments); + }, + saturate: function() { + return this._applyModification(saturate, arguments); + }, + greyscale: function() { + return this._applyModification(greyscale, arguments); + }, + spin: function() { + return this._applyModification(spin, arguments); + }, + + _applyCombination: function(fn, args) { + return fn.apply(null, [this].concat([].slice.call(args))); + }, + analogous: function() { + return this._applyCombination(analogous, arguments); + }, + complement: function() { + return this._applyCombination(complement, arguments); + }, + monochromatic: function() { + return this._applyCombination(monochromatic, arguments); + }, + splitcomplement: function() { + return this._applyCombination(splitcomplement, arguments); + }, + triad: function() { + return this._applyCombination(triad, arguments); + }, + tetrad: function() { + return this._applyCombination(tetrad, arguments); + } +}; + +// If input is an object, force 1 into "1.0" to handle ratios properly +// String input requires "1.0" as input, so 1 will be treated as 1 +tinycolor.fromRatio = function(color, opts) { + if (typeof color == "object") { + var newColor = {}; + for (var i in color) { + if (color.hasOwnProperty(i)) { + if (i === "a") { + newColor[i] = color[i]; + } + else { + newColor[i] = convertToPercentage(color[i]); + } + } + } + color = newColor; + } + + return tinycolor(color, opts); +}; + +// Given a string or object, convert that input to RGB +// Possible string inputs: +// +// "red" +// "#f00" or "f00" +// "#ff0000" or "ff0000" +// "#ff000000" or "ff000000" +// "rgb 255 0 0" or "rgb (255, 0, 0)" +// "rgb 1.0 0 0" or "rgb (1, 0, 0)" +// "rgba (255, 0, 0, 1)" or "rgba 255, 0, 0, 1" +// "rgba (1.0, 0, 0, 1)" or "rgba 1.0, 0, 0, 1" +// "hsl(0, 100%, 50%)" or "hsl 0 100% 50%" +// "hsla(0, 100%, 50%, 1)" or "hsla 0 100% 50%, 1" +// "hsv(0, 100%, 100%)" or "hsv 0 100% 100%" +// +function inputToRGB(color) { + + var rgb = { r: 0, g: 0, b: 0 }; + var a = 1; + var s = null; + var v = null; + var l = null; + var ok = false; + var format = false; + + if (typeof color == "string") { + color = stringInputToObject(color); + } + + if (typeof color == "object") { + if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) { + rgb = rgbToRgb(color.r, color.g, color.b); + ok = true; + format = String(color.r).substr(-1) === "%" ? "prgb" : "rgb"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) { + s = convertToPercentage(color.s); + v = convertToPercentage(color.v); + rgb = hsvToRgb(color.h, s, v); + ok = true; + format = "hsv"; + } + else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) { + s = convertToPercentage(color.s); + l = convertToPercentage(color.l); + rgb = hslToRgb(color.h, s, l); + ok = true; + format = "hsl"; + } + + if (color.hasOwnProperty("a")) { + a = color.a; + } + } + + a = boundAlpha(a); + + return { + ok: ok, + format: color.format || format, + r: mathMin(255, mathMax(rgb.r, 0)), + g: mathMin(255, mathMax(rgb.g, 0)), + b: mathMin(255, mathMax(rgb.b, 0)), + a: a + }; +} + + +// Conversion Functions +// -------------------- + +// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from: +// + +// `rgbToRgb` +// Handle bounds / percentage checking to conform to CSS color spec +// +// *Assumes:* r, g, b in [0, 255] or [0, 1] +// *Returns:* { r, g, b } in [0, 255] +function rgbToRgb(r, g, b){ + return { + r: bound01(r, 255) * 255, + g: bound01(g, 255) * 255, + b: bound01(b, 255) * 255 + }; +} + +// `rgbToHsl` +// Converts an RGB color value to HSL. +// *Assumes:* r, g, and b are contained in [0, 255] or [0, 1] +// *Returns:* { h, s, l } in [0,1] +function rgbToHsl(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, l = (max + min) / 2; + + if(max == min) { + h = s = 0; // achromatic + } + else { + var d = max - min; + s = l > 0.5 ? d / (2 - max - min) : d / (max + min); + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + + h /= 6; + } + + return { h: h, s: s, l: l }; +} + +// `hslToRgb` +// Converts an HSL color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] +function hslToRgb(h, s, l) { + var r, g, b; + + h = bound01(h, 360); + s = bound01(s, 100); + l = bound01(l, 100); + + function hue2rgb(p, q, t) { + if(t < 0) t += 1; + if(t > 1) t -= 1; + if(t < 1/6) return p + (q - p) * 6 * t; + if(t < 1/2) return q; + if(t < 2/3) return p + (q - p) * (2/3 - t) * 6; + return p; + } + + if(s === 0) { + r = g = b = l; // achromatic + } + else { + var q = l < 0.5 ? l * (1 + s) : l + s - l * s; + var p = 2 * l - q; + r = hue2rgb(p, q, h + 1/3); + g = hue2rgb(p, q, h); + b = hue2rgb(p, q, h - 1/3); + } + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// `rgbToHsv` +// Converts an RGB color value to HSV +// *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1] +// *Returns:* { h, s, v } in [0,1] +function rgbToHsv(r, g, b) { + + r = bound01(r, 255); + g = bound01(g, 255); + b = bound01(b, 255); + + var max = mathMax(r, g, b), min = mathMin(r, g, b); + var h, s, v = max; + + var d = max - min; + s = max === 0 ? 0 : d / max; + + if(max == min) { + h = 0; // achromatic + } + else { + switch(max) { + case r: h = (g - b) / d + (g < b ? 6 : 0); break; + case g: h = (b - r) / d + 2; break; + case b: h = (r - g) / d + 4; break; + } + h /= 6; + } + return { h: h, s: s, v: v }; +} + +// `hsvToRgb` +// Converts an HSV color value to RGB. +// *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100] +// *Returns:* { r, g, b } in the set [0, 255] + function hsvToRgb(h, s, v) { + + h = bound01(h, 360) * 6; + s = bound01(s, 100); + v = bound01(v, 100); + + var i = Math.floor(h), + f = h - i, + p = v * (1 - s), + q = v * (1 - f * s), + t = v * (1 - (1 - f) * s), + mod = i % 6, + r = [v, q, p, p, t, v][mod], + g = [t, v, v, q, p, p][mod], + b = [p, p, t, v, v, q][mod]; + + return { r: r * 255, g: g * 255, b: b * 255 }; +} + +// `rgbToHex` +// Converts an RGB color to hex +// Assumes r, g, and b are contained in the set [0, 255] +// Returns a 3 or 6 character hex +function rgbToHex(r, g, b, allow3Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + // Return a 3 character hex if possible + if (allow3Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0); + } + + return hex.join(""); +} + +// `rgbaToHex` +// Converts an RGBA color plus alpha transparency to hex +// Assumes r, g, b are contained in the set [0, 255] and +// a in [0, 1]. Returns a 4 or 8 character rgba hex +function rgbaToHex(r, g, b, a, allow4Char) { + + var hex = [ + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)), + pad2(convertDecimalToHex(a)) + ]; + + // Return a 4 character hex if possible + if (allow4Char && hex[0].charAt(0) == hex[0].charAt(1) && hex[1].charAt(0) == hex[1].charAt(1) && hex[2].charAt(0) == hex[2].charAt(1) && hex[3].charAt(0) == hex[3].charAt(1)) { + return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0); + } + + return hex.join(""); +} + +// `rgbaToArgbHex` +// Converts an RGBA color to an ARGB Hex8 string +// Rarely used, but required for "toFilter()" +function rgbaToArgbHex(r, g, b, a) { + + var hex = [ + pad2(convertDecimalToHex(a)), + pad2(mathRound(r).toString(16)), + pad2(mathRound(g).toString(16)), + pad2(mathRound(b).toString(16)) + ]; + + return hex.join(""); +} + +// `equals` +// Can be called with any tinycolor input +tinycolor.equals = function (color1, color2) { + if (!color1 || !color2) { return false; } + return tinycolor(color1).toRgbString() == tinycolor(color2).toRgbString(); +}; + +tinycolor.random = function() { + return tinycolor.fromRatio({ + r: mathRandom(), + g: mathRandom(), + b: mathRandom() + }); +}; + + +// Modification Functions +// ---------------------- +// Thanks to less.js for some of the basics here +// + +function desaturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s -= amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function saturate(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.s += amount / 100; + hsl.s = clamp01(hsl.s); + return tinycolor(hsl); +} + +function greyscale(color) { + return tinycolor(color).desaturate(100); +} + +function lighten (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l += amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +function brighten(color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var rgb = tinycolor(color).toRgb(); + rgb.r = mathMax(0, mathMin(255, rgb.r - mathRound(255 * - (amount / 100)))); + rgb.g = mathMax(0, mathMin(255, rgb.g - mathRound(255 * - (amount / 100)))); + rgb.b = mathMax(0, mathMin(255, rgb.b - mathRound(255 * - (amount / 100)))); + return tinycolor(rgb); +} + +function darken (color, amount) { + amount = (amount === 0) ? 0 : (amount || 10); + var hsl = tinycolor(color).toHsl(); + hsl.l -= amount / 100; + hsl.l = clamp01(hsl.l); + return tinycolor(hsl); +} + +// Spin takes a positive or negative amount within [-360, 360] indicating the change of hue. +// Values outside of this range will be wrapped into this range. +function spin(color, amount) { + var hsl = tinycolor(color).toHsl(); + var hue = (hsl.h + amount) % 360; + hsl.h = hue < 0 ? 360 + hue : hue; + return tinycolor(hsl); +} + +// Combination Functions +// --------------------- +// Thanks to jQuery xColor for some of the ideas behind these +// + +function complement(color) { + var hsl = tinycolor(color).toHsl(); + hsl.h = (hsl.h + 180) % 360; + return tinycolor(hsl); +} + +function triad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 120) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 240) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function tetrad(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 90) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 180) % 360, s: hsl.s, l: hsl.l }), + tinycolor({ h: (h + 270) % 360, s: hsl.s, l: hsl.l }) + ]; +} + +function splitcomplement(color) { + var hsl = tinycolor(color).toHsl(); + var h = hsl.h; + return [ + tinycolor(color), + tinycolor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l}), + tinycolor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l}) + ]; +} + +function analogous(color, results, slices) { + results = results || 6; + slices = slices || 30; + + var hsl = tinycolor(color).toHsl(); + var part = 360 / slices; + var ret = [tinycolor(color)]; + + for (hsl.h = ((hsl.h - (part * results >> 1)) + 720) % 360; --results; ) { + hsl.h = (hsl.h + part) % 360; + ret.push(tinycolor(hsl)); + } + return ret; +} + +function monochromatic(color, results) { + results = results || 6; + var hsv = tinycolor(color).toHsv(); + var h = hsv.h, s = hsv.s, v = hsv.v; + var ret = []; + var modification = 1 / results; + + while (results--) { + ret.push(tinycolor({ h: h, s: s, v: v})); + v = (v + modification) % 1; + } + + return ret; +} + +// Utility Functions +// --------------------- + +tinycolor.mix = function(color1, color2, amount) { + amount = (amount === 0) ? 0 : (amount || 50); + + var rgb1 = tinycolor(color1).toRgb(); + var rgb2 = tinycolor(color2).toRgb(); + + var p = amount / 100; + + var rgba = { + r: ((rgb2.r - rgb1.r) * p) + rgb1.r, + g: ((rgb2.g - rgb1.g) * p) + rgb1.g, + b: ((rgb2.b - rgb1.b) * p) + rgb1.b, + a: ((rgb2.a - rgb1.a) * p) + rgb1.a + }; + + return tinycolor(rgba); +}; + + +// Readability Functions +// --------------------- +// false +// tinycolor.isReadable("#000", "#111",{level:"AA",size:"large"}) => false +tinycolor.isReadable = function(color1, color2, wcag2) { + var readability = tinycolor.readability(color1, color2); + var wcag2Parms, out; + + out = false; + + wcag2Parms = validateWCAG2Parms(wcag2); + switch (wcag2Parms.level + wcag2Parms.size) { + case "AAsmall": + case "AAAlarge": + out = readability >= 4.5; + break; + case "AAlarge": + out = readability >= 3; + break; + case "AAAsmall": + out = readability >= 7; + break; + } + return out; + +}; + +// `mostReadable` +// Given a base color and a list of possible foreground or background +// colors for that base, returns the most readable color. +// Optionally returns Black or White if the most readable color is unreadable. +// *Example* +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:false}).toHexString(); // "#112255" +// tinycolor.mostReadable(tinycolor.mostReadable("#123", ["#124", "#125"],{includeFallbackColors:true}).toHexString(); // "#ffffff" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"large"}).toHexString(); // "#faf3f3" +// tinycolor.mostReadable("#a8015a", ["#faf3f3"],{includeFallbackColors:true,level:"AAA",size:"small"}).toHexString(); // "#ffffff" +tinycolor.mostReadable = function(baseColor, colorList, args) { + var bestColor = null; + var bestScore = 0; + var readability; + var includeFallbackColors, level, size ; + args = args || {}; + includeFallbackColors = args.includeFallbackColors ; + level = args.level; + size = args.size; + + for (var i= 0; i < colorList.length ; i++) { + readability = tinycolor.readability(baseColor, colorList[i]); + if (readability > bestScore) { + bestScore = readability; + bestColor = tinycolor(colorList[i]); + } + } + + if (tinycolor.isReadable(baseColor, bestColor, {"level":level,"size":size}) || !includeFallbackColors) { + return bestColor; + } + else { + args.includeFallbackColors=false; + return tinycolor.mostReadable(baseColor,["#fff", "#000"],args); + } +}; + + +// Big List of Colors +// ------------------ +// +var names = tinycolor.names = { + aliceblue: "f0f8ff", + antiquewhite: "faebd7", + aqua: "0ff", + aquamarine: "7fffd4", + azure: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "000", + blanchedalmond: "ffebcd", + blue: "00f", + blueviolet: "8a2be2", + brown: "a52a2a", + burlywood: "deb887", + burntsienna: "ea7e5d", + cadetblue: "5f9ea0", + chartreuse: "7fff00", + chocolate: "d2691e", + coral: "ff7f50", + cornflowerblue: "6495ed", + cornsilk: "fff8dc", + crimson: "dc143c", + cyan: "0ff", + darkblue: "00008b", + darkcyan: "008b8b", + darkgoldenrod: "b8860b", + darkgray: "a9a9a9", + darkgreen: "006400", + darkgrey: "a9a9a9", + darkkhaki: "bdb76b", + darkmagenta: "8b008b", + darkolivegreen: "556b2f", + darkorange: "ff8c00", + darkorchid: "9932cc", + darkred: "8b0000", + darksalmon: "e9967a", + darkseagreen: "8fbc8f", + darkslateblue: "483d8b", + darkslategray: "2f4f4f", + darkslategrey: "2f4f4f", + darkturquoise: "00ced1", + darkviolet: "9400d3", + deeppink: "ff1493", + deepskyblue: "00bfff", + dimgray: "696969", + dimgrey: "696969", + dodgerblue: "1e90ff", + firebrick: "b22222", + floralwhite: "fffaf0", + forestgreen: "228b22", + fuchsia: "f0f", + gainsboro: "dcdcdc", + ghostwhite: "f8f8ff", + gold: "ffd700", + goldenrod: "daa520", + gray: "808080", + green: "008000", + greenyellow: "adff2f", + grey: "808080", + honeydew: "f0fff0", + hotpink: "ff69b4", + indianred: "cd5c5c", + indigo: "4b0082", + ivory: "fffff0", + khaki: "f0e68c", + lavender: "e6e6fa", + lavenderblush: "fff0f5", + lawngreen: "7cfc00", + lemonchiffon: "fffacd", + lightblue: "add8e6", + lightcoral: "f08080", + lightcyan: "e0ffff", + lightgoldenrodyellow: "fafad2", + lightgray: "d3d3d3", + lightgreen: "90ee90", + lightgrey: "d3d3d3", + lightpink: "ffb6c1", + lightsalmon: "ffa07a", + lightseagreen: "20b2aa", + lightskyblue: "87cefa", + lightslategray: "789", + lightslategrey: "789", + lightsteelblue: "b0c4de", + lightyellow: "ffffe0", + lime: "0f0", + limegreen: "32cd32", + linen: "faf0e6", + magenta: "f0f", + maroon: "800000", + mediumaquamarine: "66cdaa", + mediumblue: "0000cd", + mediumorchid: "ba55d3", + mediumpurple: "9370db", + mediumseagreen: "3cb371", + mediumslateblue: "7b68ee", + mediumspringgreen: "00fa9a", + mediumturquoise: "48d1cc", + mediumvioletred: "c71585", + midnightblue: "191970", + mintcream: "f5fffa", + mistyrose: "ffe4e1", + moccasin: "ffe4b5", + navajowhite: "ffdead", + navy: "000080", + oldlace: "fdf5e6", + olive: "808000", + olivedrab: "6b8e23", + orange: "ffa500", + orangered: "ff4500", + orchid: "da70d6", + palegoldenrod: "eee8aa", + palegreen: "98fb98", + paleturquoise: "afeeee", + palevioletred: "db7093", + papayawhip: "ffefd5", + peachpuff: "ffdab9", + peru: "cd853f", + pink: "ffc0cb", + plum: "dda0dd", + powderblue: "b0e0e6", + purple: "800080", + rebeccapurple: "663399", + red: "f00", + rosybrown: "bc8f8f", + royalblue: "4169e1", + saddlebrown: "8b4513", + salmon: "fa8072", + sandybrown: "f4a460", + seagreen: "2e8b57", + seashell: "fff5ee", + sienna: "a0522d", + silver: "c0c0c0", + skyblue: "87ceeb", + slateblue: "6a5acd", + slategray: "708090", + slategrey: "708090", + snow: "fffafa", + springgreen: "00ff7f", + steelblue: "4682b4", + tan: "d2b48c", + teal: "008080", + thistle: "d8bfd8", + tomato: "ff6347", + turquoise: "40e0d0", + violet: "ee82ee", + wheat: "f5deb3", + white: "fff", + whitesmoke: "f5f5f5", + yellow: "ff0", + yellowgreen: "9acd32" +}; + +// Make it easy to access colors via `hexNames[hex]` +var hexNames = tinycolor.hexNames = flip(names); + + +// Utilities +// --------- + +// `{ 'name1': 'val1' }` becomes `{ 'val1': 'name1' }` +function flip(o) { + var flipped = { }; + for (var i in o) { + if (o.hasOwnProperty(i)) { + flipped[o[i]] = i; + } + } + return flipped; +} + +// Return a valid alpha value [0,1] with all invalid values being set to 1 +function boundAlpha(a) { + a = parseFloat(a); + + if (isNaN(a) || a < 0 || a > 1) { + a = 1; + } + + return a; +} + +// Take input from [0, n] and return it as [0, 1] +function bound01(n, max) { + if (isOnePointZero(n)) { n = "100%"; } + + var processPercent = isPercentage(n); + n = mathMin(max, mathMax(0, parseFloat(n))); + + // Automatically convert percentage into number + if (processPercent) { + n = parseInt(n * max, 10) / 100; + } + + // Handle floating point rounding errors + if ((Math.abs(n - max) < 0.000001)) { + return 1; + } + + // Convert into [0, 1] range if it isn't already + return (n % max) / parseFloat(max); +} + +// Force a number between 0 and 1 +function clamp01(val) { + return mathMin(1, mathMax(0, val)); +} + +// Parse a base-16 hex value into a base-10 integer +function parseIntFromHex(val) { + return parseInt(val, 16); +} + +// Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1 +// +function isOnePointZero(n) { + return typeof n == "string" && n.indexOf('.') != -1 && parseFloat(n) === 1; +} + +// Check to see if string passed in is a percentage +function isPercentage(n) { + return typeof n === "string" && n.indexOf('%') != -1; +} + +// Force a hex value to have 2 characters +function pad2(c) { + return c.length == 1 ? '0' + c : '' + c; +} + +// Replace a decimal with it's percentage value +function convertToPercentage(n) { + if (n <= 1) { + n = (n * 100) + "%"; + } + + return n; +} + +// Converts a decimal to a hex value +function convertDecimalToHex(d) { + return Math.round(parseFloat(d) * 255).toString(16); +} +// Converts a hex value to a decimal +function convertHexToDecimal(h) { + return (parseIntFromHex(h) / 255); +} + +var matchers = (function() { + + // + var CSS_INTEGER = "[-\\+]?\\d+%?"; + + // + var CSS_NUMBER = "[-\\+]?\\d*\\.\\d+%?"; + + // Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome. + var CSS_UNIT = "(?:" + CSS_NUMBER + ")|(?:" + CSS_INTEGER + ")"; + + // Actual matching. + // Parentheses and commas are optional, but not required. + // Whitespace can take the place of commas or opening paren + var PERMISSIVE_MATCH3 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + var PERMISSIVE_MATCH4 = "[\\s|\\(]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")[,|\\s]+(" + CSS_UNIT + ")\\s*\\)?"; + + return { + CSS_UNIT: new RegExp(CSS_UNIT), + rgb: new RegExp("rgb" + PERMISSIVE_MATCH3), + rgba: new RegExp("rgba" + PERMISSIVE_MATCH4), + hsl: new RegExp("hsl" + PERMISSIVE_MATCH3), + hsla: new RegExp("hsla" + PERMISSIVE_MATCH4), + hsv: new RegExp("hsv" + PERMISSIVE_MATCH3), + hsva: new RegExp("hsva" + PERMISSIVE_MATCH4), + hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/, + hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/, + hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/ + }; +})(); + +// `isValidCSSUnit` +// Take in a single string / number and check to see if it looks like a CSS unit +// (see `matchers` above for definition). +function isValidCSSUnit(color) { + return !!matchers.CSS_UNIT.exec(color); +} + +// `stringInputToObject` +// Permissive string parsing. Take in a number of formats, and output an object +// based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}` +function stringInputToObject(color) { + + color = color.replace(trimLeft,'').replace(trimRight, '').toLowerCase(); + var named = false; + if (names[color]) { + color = names[color]; + named = true; + } + else if (color == 'transparent') { + return { r: 0, g: 0, b: 0, a: 0, format: "name" }; + } + + // Try to match string input using regular expressions. + // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360] + // Just return an object and let the conversion functions handle that. + // This way the result will be the same whether the tinycolor is initialized with string or object. + var match; + if ((match = matchers.rgb.exec(color))) { + return { r: match[1], g: match[2], b: match[3] }; + } + if ((match = matchers.rgba.exec(color))) { + return { r: match[1], g: match[2], b: match[3], a: match[4] }; + } + if ((match = matchers.hsl.exec(color))) { + return { h: match[1], s: match[2], l: match[3] }; + } + if ((match = matchers.hsla.exec(color))) { + return { h: match[1], s: match[2], l: match[3], a: match[4] }; + } + if ((match = matchers.hsv.exec(color))) { + return { h: match[1], s: match[2], v: match[3] }; + } + if ((match = matchers.hsva.exec(color))) { + return { h: match[1], s: match[2], v: match[3], a: match[4] }; + } + if ((match = matchers.hex8.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + a: convertHexToDecimal(match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex6.exec(color))) { + return { + r: parseIntFromHex(match[1]), + g: parseIntFromHex(match[2]), + b: parseIntFromHex(match[3]), + format: named ? "name" : "hex" + }; + } + if ((match = matchers.hex4.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + a: convertHexToDecimal(match[4] + '' + match[4]), + format: named ? "name" : "hex8" + }; + } + if ((match = matchers.hex3.exec(color))) { + return { + r: parseIntFromHex(match[1] + '' + match[1]), + g: parseIntFromHex(match[2] + '' + match[2]), + b: parseIntFromHex(match[3] + '' + match[3]), + format: named ? "name" : "hex" + }; + } + + return false; +} + +function validateWCAG2Parms(parms) { + // return valid WCAG2 parms for isReadable. + // If input parms are invalid, return {"level":"AA", "size":"small"} + var level, size; + parms = parms || {"level":"AA", "size":"small"}; + level = (parms.level || "AA").toUpperCase(); + size = (parms.size || "small").toLowerCase(); + if (level !== "AA" && level !== "AAA") { + level = "AA"; + } + if (size !== "small" && size !== "large") { + size = "small"; + } + return {"level":level, "size":size}; +} + +// Node: Export function +if (typeof module !== "undefined" && module.exports) { + module.exports = tinycolor; +} +// AMD/requirejs: Define the module +else if (typeof define === 'function' && define.amd) { + define(function () {return tinycolor;}); +} +// Browser: Expose to window +else { + window.tinycolor = tinycolor; +} + +})(Math); + +},{}],379:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.trimCanvas=t():e.trimCanvas=t()}(this,function(){return function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t){"use strict";function r(e){var t=e.getContext("2d"),r=e.width,n=e.height,o=t.getImageData(0,0,r,n).data,f=a(!0,r,n,o),i=a(!1,r,n,o),c=u(!0,r,n,o),d=u(!1,r,n,o),p=d-c+1,l=i-f+1,s=t.getImageData(c,f,p,l);return e.width=p,e.height=l,t.clearRect(0,0,p,l),t.putImageData(s,0,0),e}function n(e,t,r,n){return{red:n[4*(r*t+e)],green:n[4*(r*t+e)+1],blue:n[4*(r*t+e)+2],alpha:n[4*(r*t+e)+3]}}function o(e,t,r,o){return n(e,t,r,o).alpha}function a(e,t,r,n){for(var a=e?1:-1,u=e?0:r-1,f=u;e?f-1;f+=a)for(var i=0;i-1;f+=a)for(var i=0;i)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=at(),k=at(),N=at(),E=!1,S=function(){return 0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],H=L.pop,q=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){q.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=vt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+xt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return St(e.replace(z,"$1"),t,r,i)}function st(e){return Q.test(e+"")}function at(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function ut(e){return e[v]=!0,e}function lt(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t,n){e=e.split("|");var r,o=e.length,s=n?null:t;while(o--)(r=i.attrHandle[e[o]])&&r!==t||(i.attrHandle[e[o]]=s)}function pt(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:e[t]===!0?t.toLowerCase():null}function ft(e,t){return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function ht(e){return"input"===e.nodeName.toLowerCase()?e.defaultValue:undefined}function dt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function gt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function mt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function yt(e){return ut(function(t){return t=+t,ut(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.parentWindow;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.frameElement&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=lt(function(e){return e.innerHTML="",ct("type|href|height|width",ft,"#"===e.firstChild.getAttribute("href")),ct(R,pt,null==e.getAttribute("disabled")),e.className="i",!e.getAttribute("className")}),n.input=lt(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}),ct("value",ht,n.attributes&&n.input),n.getElementsByTagName=lt(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=lt(function(e){return e.innerHTML="
    ",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=lt(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=st(t.querySelectorAll))&&(lt(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),lt(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=st(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&<(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=st(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},n.sortDetached=lt(function(e){return 1&e.compareDocumentPosition(t.createElement("div"))}),S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return dt(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?dt(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:ut,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=vt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ut(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ut(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?ut(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ut(function(e){return function(t){return ot(e,t).length>0}}),contains:ut(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ut(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:yt(function(){return[0]}),last:yt(function(e,t){return[t-1]}),eq:yt(function(e,t,n){return[0>n?n+t:n]}),even:yt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:yt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:yt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:yt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=gt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=mt(t);function vt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function xt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function bt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function wt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Tt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function Ct(e,t,n,r,i,o){return r&&!r[v]&&(r=Ct(r)),i&&!i[v]&&(i=Ct(i,o)),ut(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Et(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:Tt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=Tt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=Tt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function kt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=bt(function(e){return e===t},a,!0),p=bt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[bt(wt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return Ct(l>1&&wt(f),l>1&&xt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&kt(e.slice(l,r)),o>r&&kt(e=e.slice(r)),o>r&&xt(e))}f.push(n)}return wt(f)}function Nt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=H.call(f));y=Tt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?ut(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=vt(e)),n=t.length;while(n--)o=kt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Nt(i,r))}return o};function Et(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function St(e,t,r,o){var s,u,l,c,p,f=vt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&xt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}i.pseudos.nth=i.pseudos.eq;function jt(){}jt.prototype=i.filters=i.pseudos,i.setFilters=new jt,n.sortStable=v.split("").sort(S).join("")===v,c(),[0,0].sort(S),n.detectDuplicates=E,x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!a||n&&!u||(r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,H,q=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){return t===undefined||t&&"string"==typeof t&&n===undefined?this.get(e,t):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,H=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||H.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return H.access(e,t,n)},_removeData:function(e,t){H.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!H.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));H.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:q.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=H.get(e,t),n&&(!r||x.isArray(n)?r=H.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire() -},_queueHooks:function(e,t){var n=t+"queueHooks";return H.get(e,n)||H.access(e,n,{empty:x.Callbacks("once memory").add(function(){H.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=H.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,i="boolean"==typeof t;return x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,s=0,a=x(this),u=t,l=e.match(w)||[];while(o=l[s++])u=i?u:!a.hasClass(o),a[u?"addClass":"removeClass"](o)}else(n===r||"boolean"===n)&&(this.className&&H.set(this,"__className__",this.className),this.className=this.className||e===!1?"":H.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=H.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=H.hasData(e)&&H.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,H.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(H.get(a,"events")||{})[t.type]&&H.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(H.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!H.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.firstChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[H.expando],o&&(t=H.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);H.cache[o]&&delete H.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)H.set(e[r],"globalEval",!t||H.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(H.hasData(e)&&(o=H.access(e),s=H.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function Ht(t){return e.getComputedStyle(t,null)}function qt(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=H.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=H.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&H.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=Ht(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return qt(this,!0)},hide:function(){return qt(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:Lt(this))?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||Ht(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Ht(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("")!==-1},r=function(e){return{type:"fragmented",fragments:e,content:"",bookmark:null,beforeBookmark:null}},i=function(e){return{type:"complete",fragments:null,content:e,bookmark:null,beforeBookmark:null}},o=function(o){var a,s,l;return a=t.read(o.getBody()),l=e.map(a,function(e){return o.serializer.trimContent(e)}),s=l.join(""),n(s)?r(l):i(s)},a=function(e,n,r){"fragmented"===n.type?t.write(n.fragments,e.getBody()):e.setContent(n.content,{format:"raw"}),e.selection.moveToBookmark(r?n.beforeBookmark:n.bookmark)},s=function(e){return"fragmented"===e.type?e.fragments.join(""):e.content},l=function(e,t){return s(e)===s(t)};return{createFragmentedLevel:r,createCompleteLevel:i,createFromEditor:o,applyToEditor:a,isEq:l}}),r(te,[I,m,ee],function(e,t,n){return function(e){function r(t){e.setDirty(t)}function i(e){a.typing=!1,a.add({},e)}function o(){a.typing&&(a.typing=!1,a.add())}var a=this,s=0,l=[],u,c,d=0;return e.on("init",function(){a.add()}),e.on("BeforeExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&(o(),a.beforeChange())}),e.on("ExecCommand",function(e){var t=e.command;"Undo"!==t&&"Redo"!==t&&"mceRepaint"!==t&&i(e)}),e.on("ObjectResizeStart Cut",function(){a.beforeChange()}),e.on("SaveContent ObjectResized blur",i),e.on("DragEnd",i),e.on("KeyUp",function(t){var o=t.keyCode;t.isDefaultPrevented()||((o>=33&&o<=36||o>=37&&o<=40||45===o||t.ctrlKey)&&(i(),e.nodeChanged()),46!==o&&8!==o||e.nodeChanged(),c&&a.typing&&(e.isDirty()||(r(l[0]&&!n.isEq(n.createFromEditor(e),l[0])),e.isDirty()&&e.fire("change",{level:l[0],lastLevel:null})),e.fire("TypingUndo"),c=!1,e.nodeChanged()))}),e.on("KeyDown",function(e){var t=e.keyCode;if(!e.isDefaultPrevented()){if(t>=33&&t<=36||t>=37&&t<=40||45===t)return void(a.typing&&i(e));var n=e.ctrlKey&&!e.altKey||e.metaKey;!(t<16||t>20)||224===t||91===t||a.typing||n||(a.beforeChange(),a.typing=!0,a.add({},e),c=!0)}}),e.on("MouseDown",function(e){a.typing&&i(e)}),e.addShortcut("meta+z","","Undo"),e.addShortcut("meta+y,meta+shift+z","","Redo"),e.on("AddUndo Undo Redo ClearUndos",function(t){t.isDefaultPrevented()||e.nodeChanged()}),a={data:l,typing:!1,beforeChange:function(){d||(u=e.selection.getBookmark(2,!0))},add:function(i,o){var a,c=e.settings,f,p;if(p=n.createFromEditor(e),i=i||{},i=t.extend(i,p),d||e.removed)return null;if(f=l[s],e.fire("BeforeAddUndo",{level:i,lastLevel:f,originalEvent:o}).isDefaultPrevented())return null;if(f&&n.isEq(f,i))return null;if(l[s]&&(l[s].beforeBookmark=u),c.custom_undo_redo_levels&&l.length>c.custom_undo_redo_levels){for(a=0;a0&&(r(!0),e.fire("change",h)),i},undo:function(){var t;return a.typing&&(a.add(),a.typing=!1),s>0&&(t=l[--s],n.applyToEditor(e,t,!0),r(!0),e.fire("undo",{level:t})),t},redo:function(){var t;return s0||a.typing&&l[0]&&!n.isEq(n.createFromEditor(e),l[0])},hasRedo:function(){return s'}function x(e){var t=L,n,r,o,a=d.getTextInlineElements();if(e||"TABLE"==U?(n=s.create(e||V),b(n)):n=P.cloneNode(!1),o=n,u.keep_styles!==!1)do if(a[t.nodeName]){if("_mce_caret"==t.id)continue;r=t.cloneNode(!1),s.setAttrib(r,"id",""),n.hasChildNodes()?(r.appendChild(n.firstChild),n.appendChild(r)):(o=r,n.appendChild(r))}while((t=t.parentNode)&&t!=D);return i||(o.innerHTML='
    '),n}function w(t){var n,r,i;if(3==L.nodeType&&(t?M>0:ML.childNodes.length-1,L=L.childNodes[Math.min(M,L.childNodes.length-1)]||L,M=$&&3==L.nodeType?L.nodeValue.length:0),D=k(L)){if(c.beforeChange(),!s.isBlock(D)&&D!=s.getRoot())return void(V&&!H||_());if((V&&!H||!V&&H)&&(L=E(L,M)),P=s.getParent(L,s.isBlock),z=P?s.getParent(P.parentNode,s.isBlock):null,U=P?P.nodeName.toUpperCase():"",W=z?z.nodeName.toUpperCase():"","LI"!=W||a.ctrlKey||(P=z,U=W),o.undoManager.typing&&(o.undoManager.typing=!1,o.undoManager.add()),/^(LI|DT|DD)$/.test(U)){if(!V&&H)return void _();if(s.isEmpty(P))return void N()}if("PRE"==U&&u.br_in_pre!==!1){if(!H)return void _()}else if(!V&&!H&&"LI"!=U||V&&H)return void _();V&&P===o.getBody()||(V=V||"P",n.isCaretContainerBlock(P)?(I=n.showCaretContainerBlock(P),s.isEmpty(P)&&C(P),y(I)):w()?R():w(!0)?(I=P.parentNode.insertBefore(x(),P),g(I),y(P)):(B=A.cloneRange(),B.setEndAfter(P),F=B.extractContents(),S(F),I=F.firstChild,s.insertAfter(F,P),v(I),T(P),s.isEmpty(P)&&C(P),I.normalize(),s.isEmpty(I)?(s.remove(I),R()):y(I)),s.setAttrib(I,"id",""),o.fire("NewBlock",{newBlock:I}),c.typing=!1,c.add())}}}var s=o.dom,l=o.selection,u=o.settings,c=o.undoManager,d=o.schema,f=d.getNonEmptyElements(),p=d.getMoveCaretBeforeOnEnterElements();o.on("keydown",function(e){13==e.keyCode&&a(e)!==!1&&e.preventDefault()})}}),r(re,[],function(){return function(e){function t(){var t=i.getStart(),s=e.getBody(),l,u,c,d,f,p,h,m=-16777215,g,v,y,b,C;if(C=n.forced_root_block,t&&1===t.nodeType&&C){for(;t&&t!=s;){if(a[t.nodeName])return;t=t.parentNode}if(l=i.getRng(),l.setStart){u=l.startContainer,c=l.startOffset,d=l.endContainer,f=l.endOffset;try{v=e.getDoc().activeElement===s}catch(x){}}else l.item&&(t=l.item(0),l=e.getDoc().body.createTextRange(),l.moveToElementText(t)),v=l.parentElement().ownerDocument===e.getDoc(),y=l.duplicate(),y.collapse(!0),c=y.move("character",m)*-1,y.collapsed||(y=l.duplicate(),y.collapse(!1),f=y.move("character",m)*-1-c);for(t=s.firstChild,b=s.nodeName.toLowerCase();t;)if((3===t.nodeType||1==t.nodeType&&!a[t.nodeName])&&o.isValidChild(b,C.toLowerCase())){if(3===t.nodeType&&0===t.nodeValue.length){h=t,t=t.nextSibling,r.remove(h);continue}p||(p=r.create(C,e.settings.forced_root_block_attrs),t.parentNode.insertBefore(p,t), -g=!0),h=t,t=t.nextSibling,p.appendChild(h)}else p=null,t=t.nextSibling;if(g&&v){if(l.setStart)l.setStart(u,c),l.setEnd(d,f),i.setRng(l);else try{l=e.getDoc().body.createTextRange(),l.moveToElementText(s),l.collapse(!0),l.moveStart("character",c),f>0&&l.moveEnd("character",f),l.select()}catch(x){}e.nodeChanged()}}}var n=e.settings,r=e.dom,i=e.selection,o=e.schema,a=o.getBlockElements();n.forced_root_block&&e.on("NodeChange",t)}}),r(ie,[z,y,_,$,k,U],function(e,t,n,r,i,o){function a(e){return e>0}function s(e){return e<0}function l(e,t){for(var n;n=e(t);)if(!N(n))return n;return null}function u(e,n,r,i,o){var u=new t(e,i);if(s(n)){if((x(e)||N(e))&&(e=l(u.prev,!0),r(e)))return e;for(;e=l(u.prev,o);)if(r(e))return e}if(a(n)){if((x(e)||N(e))&&(e=l(u.next,!0),r(e)))return e;for(;e=l(u.next,o);)if(r(e))return e}return null}function c(e,t){for(e=e.parentNode;e&&e!=t;e=e.parentNode)if(C(e))return e;return t}function d(e,t){for(;e&&e!=t;){if(w(e))return e;e=e.parentNode}return null}function f(e,t,n){return d(e.container(),n)==d(t.container(),n)}function p(e,t,n){return c(e.container(),n)==c(t.container(),n)}function h(e,t){var n,r;return t?(n=t.container(),r=t.offset(),S(n)?n.childNodes[r+e]:null):null}function m(e,t){var n=t.ownerDocument.createRange();return e?(n.setStartBefore(t),n.setEndBefore(t)):(n.setStartAfter(t),n.setEndAfter(t)),n}function g(e,t,n){return d(t,e)==d(n,e)}function v(e,t,n){var r,i;for(i=e?"previousSibling":"nextSibling";n&&n!=t;){if(r=n[i],E(r)&&(r=r[i]),x(r)){if(g(t,r,n))return r;break}if(k(r))break;n=n.parentNode}return null}function y(e,t,r){var o,a,s,l,u=_(v,!0,t),c=_(v,!1,t);if(a=r.startContainer,s=r.startOffset,i.isCaretContainerBlock(a)){if(S(a)||(a=a.parentNode),l=a.getAttribute("data-mce-caret"),"before"==l&&(o=a.nextSibling,x(o)))return T(o);if("after"==l&&(o=a.previousSibling,x(o)))return R(o)}if(!r.collapsed)return r;if(n.isText(a)){if(E(a)){if(1===e){if(o=c(a))return T(o);if(o=u(a))return R(o)}if(e===-1){if(o=u(a))return R(o);if(o=c(a))return T(o)}return r}if(i.endsWithCaretContainer(a)&&s>=a.data.length-1)return 1===e&&(o=c(a))?T(o):r;if(i.startsWithCaretContainer(a)&&s<=1)return e===-1&&(o=u(a))?R(o):r;if(s===a.data.length)return o=c(a),o?T(o):r;if(0===s)return o=u(a),o?R(o):r}return r}function b(e,t){return x(h(e,t))}var C=n.isContentEditableTrue,x=n.isContentEditableFalse,w=n.matchStyleValues("display","block table table-cell table-caption"),E=i.isCaretContainer,N=i.isCaretContainerBlock,_=e.curry,S=n.isElement,k=o.isCaretCandidate,T=_(m,!0),R=_(m,!1);return{isForwards:a,isBackwards:s,findNode:u,getEditingHost:c,getParentBlock:d,isInSameBlock:f,isInSameEditingHost:p,isBeforeContentEditableFalse:_(b,0),isAfterContentEditableFalse:_(b,-1),normalizeRange:y}}),r(oe,[_,U,$,ie,h,z],function(e,t,n,r,i,o){function a(e,t){for(var n=[];e&&e!=t;)n.push(e),e=e.parentNode;return n}function s(e,t){return e.hasChildNodes()&&t0)return n(C,--x);if(m(e)&&x0&&(E=s(C,x-1),v(E)))return!y(E)&&(N=r.findNode(E,e,b,E))?f(N)?n(N,N.data.length):n.after(N):f(E)?n(E,E.data.length):n.before(E);if(m(e)&&x0&&s(e[e.length-1])?e.slice(0,-1):e},u=function(e,t){var n=e.getParent(t,e.isBlock);return n&&"LI"===n.nodeName?n:null},c=function(e,t){return!!u(e,t)},d=function(e,t){var n=t.cloneRange(),r=t.cloneRange();return n.setStartBefore(e),r.setEndAfter(e),[n.cloneContents(),r.cloneContents()]},f=function(e,r){var i=n.before(e),o=new t(r),a=o.next(i);return a?a.toRange():null},p=function(e,r){var i=n.after(e),o=new t(r),a=o.prev(i);return a?a.toRange():null},h=function(t,n,r,i){var o=d(t,i),a=t.parentNode;return a.insertBefore(o[0],t),e.each(n,function(e){a.insertBefore(e,t)}),a.insertBefore(o[1],t),a.removeChild(t),p(n[n.length-1],r)},m=function(t,n,r){var i=t.parentNode;return e.each(n,function(e){i.insertBefore(e,t)}),f(t,r)},g=function(e,t,n,r){return r.insertAfter(t.reverse(),e),p(t[0],n)},v=function(e,r,i,s){var c=o(r,e,s),d=u(r,i.startContainer),f=l(a(c.firstChild)),p=1,v=2,y=r.getRoot(),b=function(e){var o=n.fromRangeStart(i),a=new t(r.getRoot()),s=e===p?a.prev(o):a.next(o);return!s||u(r,s.getNode())!==d};return b(p)?m(d,f,y):b(v)?g(d,f,y,r):h(d,f,y,i)};return{isListFragment:r,insertAtCaret:v,isParentBlockLi:c,trimListItems:l,listItems:a}}),r(se,[d,m,P,oe,$,X,_,ae],function(e,t,n,r,i,o,a,s){var l=a.matchNodeNames("td th"),u=function(e,t,n){if("all"===n.getAttribute("data-mce-bogus"))n.parentNode.insertBefore(e.dom.createFragment(t),n);else{var r=n.firstChild,i=n.lastChild;!r||r===i&&"BR"===r.nodeName?e.dom.setHTML(n,t):e.selection.setContent(t)}},c=function(a,c,d){function f(e){function t(e){return r[e]&&3==r[e].nodeType}var n,r,i;return n=L.getRng(!0),r=n.startContainer,i=n.startOffset,3==r.nodeType&&(i>0?e=e.replace(/^ /," "):t("previousSibling")||(e=e.replace(/^ /," ")),i|)$/," "):t("nextSibling")||(e=e.replace(/( | )(
    |)$/," "))),e}function p(){var e,t,n;e=L.getRng(!0),t=e.startContainer,n=e.startOffset,3==t.nodeType&&e.collapsed&&("\xa0"===t.data[n]?(t.deleteData(n,1),/[\u00a0| ]$/.test(c)||(c+=" ")):"\xa0"===t.data[n-1]&&(t.deleteData(n-1,1),/[\u00a0| ]$/.test(c)||(c=" "+c)))}function h(){if(B){var e=a.getBody(),n=new o(M);t.each(M.select("*[data-mce-fragment]"),function(t){for(var r=t.parentNode;r&&r!=e;r=r.parentNode)D[t.nodeName.toLowerCase()]&&n.compare(r,t)&&M.remove(t,!0)})}}function m(e){for(var t=e;t=t.walk();)1===t.type&&t.attr("data-mce-fragment","1")}function g(e){t.each(e.getElementsByTagName("*"),function(e){e.removeAttribute("data-mce-fragment")})}function v(e){return!!e.getAttribute("data-mce-fragment")}function y(e){return e&&!a.schema.getShortEndedElements()[e.nodeName]}function b(t){function n(e){for(var t=a.getBody();e&&e!==t;e=e.parentNode)if("false"===a.dom.getContentEditable(e))return e;return null}function o(e){var t=i.fromRangeStart(e),n=new r(a.getBody());if(t=n.next(t))return t.toRange()}var s,u,c;if(t){if(L.scrollIntoView(t),s=n(t))return M.remove(t),void L.select(s);k=M.createRng(),T=t.previousSibling,T&&3==T.nodeType?(k.setStart(T,T.nodeValue.length),e.ie||(R=t.nextSibling,R&&3==R.nodeType&&(T.appendData(R.data),R.parentNode.removeChild(R)))):(k.setStartBefore(t),k.setEndBefore(t)),u=M.getParent(t,M.isBlock),M.remove(t),u&&M.isEmpty(u)&&(a.$(u).empty(),k.setStart(u,0),k.setEnd(u,0),l(u)||v(u)||!(c=o(k))?M.add(u,M.create("br",{"data-mce-bogus":"1"})):(k=c,M.remove(u))),L.setRng(k)}}var C,x,w,E,N,_,S,k,T,R,A,B,D=a.schema.getTextInlineElements(),L=a.selection,M=a.dom;/^ | $/.test(c)&&(c=f(c)),C=a.parser,B=d.merge,x=new n({validate:a.settings.validate},a.schema),A='​',_={content:c,format:"html",selection:!0},a.fire("BeforeSetContent",_),c=_.content,c.indexOf("{$caret}")==-1&&(c+="{$caret}"),c=c.replace(/\{\$caret\}/,A),k=L.getRng();var P=k.startContainer||(k.parentElement?k.parentElement():null),O=a.getBody();P===O&&L.isCollapsed()&&M.isBlock(O.firstChild)&&y(O.firstChild)&&M.isEmpty(O.firstChild)&&(k=M.createRng(),k.setStart(O.firstChild,0),k.setEnd(O.firstChild,0),L.setRng(k)),L.isCollapsed()||(a.selection.setRng(a.selection.getRng()),a.getDoc().execCommand("Delete",!1,null),p()),w=L.getNode();var H={context:w.nodeName.toLowerCase(),data:d.data};if(N=C.parse(c,H),d.paste===!0&&s.isListFragment(N)&&s.isParentBlockLi(M,w))return k=s.insertAtCaret(x,M,a.selection.getRng(!0),N),a.selection.setRng(k),void a.fire("SetContent",_);if(m(N),T=N.lastChild,"mce_marker"==T.attr("id"))for(S=T,T=T.prev;T;T=T.walk(!0))if(3==T.type||!M.isBlock(T.name)){a.schema.isValidChild(T.parent.name,"span")&&T.parent.insert(S,T,"br"===T.name);break}if(a._selectionOverrides.showBlockCaretContainer(w),H.invalid){for(L.setContent(A),w=L.getNode(),E=a.getBody(),9==w.nodeType?w=T=E:T=w;T!==E;)w=T,T=T.parentNode;c=w==E?E.innerHTML:M.getOuterHTML(w),c=x.serialize(C.parse(c.replace(//i,function(){return x.serialize(N)}))),w==E?M.setHTML(E,c):M.setOuterHTML(w,c)}else c=x.serialize(N),u(a,c,w);h(),b(M.get("mce_marker")),g(a.getBody()),a.fire("SetContent",_),a.addVisual()},d=function(e){var n;return"string"!=typeof e?(n=t.extend({paste:e.paste,data:{paste:e.paste}},e),{content:e.content,details:n}):{content:e,details:{}}},f=function(e,t){var n=d(t);c(e,n.content,n.details)};return{insertAtCaret:f}}),r(le,[d,m,T,y,se,_],function(e,n,r,i,o,a){var s=n.each,l=n.extend,u=n.map,c=n.inArray,d=n.explode,f=e.ie&&e.ie<11,p=!0,h=!1;return function(n){function m(e,t,r,i){var o,a,l=0;if(/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/.test(e)||i&&i.skip_focus||n.focus(),i=n.fire("BeforeExecCommand",{command:e,ui:t,value:r}),i.isDefaultPrevented())return!1;if(a=e.toLowerCase(),o=D.exec[a])return o(a,t,r),n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;if(s(n.plugins,function(i){if(i.execCommand&&i.execCommand(e,t,r))return n.fire("ExecCommand",{command:e,ui:t,value:r}),l=!0,!1}),l)return l;if(n.theme&&n.theme.execCommand&&n.theme.execCommand(e,t,r))return n.fire("ExecCommand",{command:e,ui:t,value:r}),!0;try{l=n.getDoc().execCommand(e,t,r)}catch(u){}return!!l&&(n.fire("ExecCommand",{command:e,ui:t,value:r}),!0)}function g(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=D.state[e])return t(e);try{return n.getDoc().queryCommandState(e)}catch(r){}return!1}}function v(e){var t;if(!n.quirks.isHidden()){if(e=e.toLowerCase(),t=D.value[e])return t(e);try{return n.getDoc().queryCommandValue(e)}catch(r){}}}function y(e,t){t=t||"exec",s(e,function(e,n){s(n.toLowerCase().split(","),function(n){D[t][n]=e})})}function b(e,t,r){e=e.toLowerCase(),D.exec[e]=function(e,i,o,a){return t.call(r||n,i,o,a)}}function C(e){if(e=e.toLowerCase(),D.exec[e])return!0;try{return n.getDoc().queryCommandSupported(e)}catch(t){}return!1}function x(e,t,r){e=e.toLowerCase(),D.state[e]=function(){return t.call(r||n)}}function w(e,t,r){e=e.toLowerCase(),D.value[e]=function(){return t.call(r||n)}}function E(e){return e=e.toLowerCase(),!!D.exec[e]}function N(e,r,i){return r===t&&(r=h),i===t&&(i=null),n.getDoc().execCommand(e,r,i)}function _(e){return B.match(e)}function S(e,r){B.toggle(e,r?{value:r}:t),n.nodeChanged()}function k(e){M=A.getBookmark(e)}function T(){A.moveToBookmark(M)}var R,A,B,D={state:{},exec:{},value:{}},L=n.settings,M;n.on("PreInit",function(){R=n.dom,A=n.selection,L=n.settings,B=n.formatter}),l(this,{execCommand:m,queryCommandState:g,queryCommandValue:v,queryCommandSupported:C,addCommands:y,addCommand:b,addQueryStateHandler:x,addQueryValueHandler:w,hasCustomCommand:E}),y({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(t){var r=n.getDoc(),i;try{N(t)}catch(o){i=p}if("paste"!==t||r.queryCommandEnabled(t)||(i=!0),i||!r.queryCommandSupported(t)){var a=n.translate("Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead.");e.mac&&(a=a.replace(/Ctrl\+/g,"\u2318+")),n.notificationManager.open({text:a,type:"error"})}},unlink:function(){if(A.isCollapsed()){var e=n.dom.getParent(n.selection.getStart(),"a");return void(e&&n.dom.remove(e,!0))}B.remove("link")},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone":function(e){var t=e.substring(7);"full"==t&&(t="justify"),s("left,center,right,justify".split(","),function(e){t!=e&&B.remove("align"+e)}),"none"!=t&&S("align"+t)},"InsertUnorderedList,InsertOrderedList":function(e){var t,n;N(e),t=R.getParent(A.getNode(),"ol,ul"),t&&(n=t.parentNode,/^(H[1-6]|P|ADDRESS|PRE)$/.test(n.nodeName)&&(k(),R.split(n,t),T()))},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){S(e)},"ForeColor,HiliteColor,FontName":function(e,t,n){S(e,n)},FontSize:function(e,t,n){var r,i;n>=1&&n<=7&&(i=d(L.font_size_style_values),r=d(L.font_size_classes),n=r?r[n-1]||n:i[n-1]||n),S(e,n)},RemoveFormat:function(e){B.remove(e)},mceBlockQuote:function(){S("blockquote")},FormatBlock:function(e,t,n){return S(n||"p")},mceCleanup:function(){var e=A.getBookmark();n.setContent(n.getContent({cleanup:p}),{cleanup:p}),A.moveToBookmark(e)},mceRemoveNode:function(e,t,r){var i=r||A.getNode();i!=n.getBody()&&(k(),n.dom.remove(i,p),T())},mceSelectNodeDepth:function(e,t,r){var i=0;R.getParent(A.getNode(),function(e){if(1==e.nodeType&&i++==r)return A.select(e),h},n.getBody())},mceSelectNode:function(e,t,n){A.select(n)},mceInsertContent:function(e,t,r){o.insertAtCaret(n,r)},mceInsertRawHTML:function(e,t,r){A.setContent("tiny_mce_marker"),n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return r}))},mceToggleFormat:function(e,t,n){S(n)},mceSetContent:function(e,t,r){n.setContent(r)},"Indent,Outdent":function(e){var t,r,i;t=L.indentation,r=/[a-z%]+$/i.exec(t),t=parseInt(t,10),g("InsertUnorderedList")||g("InsertOrderedList")?N(e):(L.forced_root_block||R.getParent(A.getNode(),R.isBlock)||B.apply("div"),s(A.getSelectedBlocks(),function(o){if("false"!==R.getContentEditable(o)&&"LI"!==o.nodeName){var a=n.getParam("indent_use_margin",!1)?"margin":"padding";a="TABLE"===o.nodeName?"margin":a,a+="rtl"==R.getStyle(o,"direction",!0)?"Right":"Left","outdent"==e?(i=Math.max(0,parseInt(o.style[a]||0,10)-t),R.setStyle(o,a,i?i+r:"")):(i=parseInt(o.style[a]||0,10)+t+r,R.setStyle(o,a,i))}}))},mceRepaint:function(){},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",!1,"
    ")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual,n.addVisual()},mceReplaceContent:function(e,t,r){n.execCommand("mceInsertContent",!1,r.replace(/\{\$selection\}/g,A.getContent({format:"text"})))},mceInsertLink:function(e,t,n){var r;"string"==typeof n&&(n={href:n}),r=R.getParent(A.getNode(),"a"),n.href=n.href.replace(" ","%20"),r&&n.href||B.remove("link"),n.href&&B.apply("link",n,r)},selectAll:function(){var e=R.getRoot(),t;if(A.getRng().setStart){var n=R.getParent(A.getStart(),a.isContentEditableTrue);n&&(t=R.createRng(),t.selectNodeContents(n),A.setRng(t))}else t=A.getRng(),t.item||(t.moveToElementText(e),t.select())},"delete":function(){N("Delete");var e=n.getBody();R.isEmpty(e)&&(n.setContent(""),e.firstChild&&R.isBlock(e.firstChild)?n.selection.setCursorLocation(e.firstChild,0):n.selection.setCursorLocation(e,0))},mceNewDocument:function(){n.setContent("")},InsertLineBreak:function(e,t,o){function a(){for(var e=new i(m,v),t,r=n.schema.getNonEmptyElements();t=e.next();)if(r[t.nodeName.toLowerCase()]||t.length>0)return!0}var s=o,l,u,c,d=A.getRng(!0);new r(R).normalize(d);var h=d.startOffset,m=d.startContainer;if(1==m.nodeType&&m.hasChildNodes()){var g=h>m.childNodes.length-1;m=m.childNodes[Math.min(h,m.childNodes.length-1)]||m,h=g&&3==m.nodeType?m.nodeValue.length:0}var v=R.getParent(m,R.isBlock),y=v?v.nodeName.toUpperCase():"",b=v?R.getParent(v.parentNode,R.isBlock):null,C=b?b.nodeName.toUpperCase():"",x=s&&s.ctrlKey;"LI"!=C||x||(v=b,y=C),m&&3==m.nodeType&&h>=m.nodeValue.length&&(f||a()||(l=R.create("br"),d.insertNode(l),d.setStartAfter(l),d.setEndAfter(l),u=!0)),l=R.create("br"),d.insertNode(l);var w=R.doc.documentMode;return f&&"PRE"==y&&(!w||w<8)&&l.parentNode.insertBefore(R.doc.createTextNode("\r"),l),c=R.create("span",{}," "),l.parentNode.insertBefore(c,l),A.scrollIntoView(c),R.remove(c),u?(d.setStartBefore(l),d.setEndBefore(l)):(d.setStartAfter(l),d.setEndAfter(l)),A.setRng(d),n.undoManager.add(),p}}),y({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(e){var t="align"+e.substring(7),n=A.isCollapsed()?[R.getParent(A.getNode(),R.isBlock)]:A.getSelectedBlocks(),r=u(n,function(e){return!!B.matchNode(e,t)});return c(r,p)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(e){return _(e)},mceBlockQuote:function(){return _("blockquote")},Outdent:function(){var e;if(L.inline_styles){if((e=R.getParent(A.getStart(),R.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return p;if((e=R.getParent(A.getEnd(),R.isBlock))&&parseInt(e.style.paddingLeft,10)>0)return p}return g("InsertUnorderedList")||g("InsertOrderedList")||!L.inline_styles&&!!R.getParent(A.getNode(),"BLOCKQUOTE")},"InsertUnorderedList,InsertOrderedList":function(e){var t=R.getParent(A.getNode(),"ul,ol");return t&&("insertunorderedlist"===e&&"UL"===t.tagName||"insertorderedlist"===e&&"OL"===t.tagName)}},"state"),y({"FontSize,FontName":function(e){var t=0,n;return(n=R.getParent(A.getNode(),"span"))&&(t="fontsize"==e?n.style.fontSize:n.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()),t}},"value"),y({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}),r(ue,[m],function(e){function t(e,o){var a=this,s,l;if(e=r(e),o=a.settings=o||{},s=o.base_uri,/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e))return void(a.source=e);var u=0===e.indexOf("//");0!==e.indexOf("/")||u||(e=(s?s.protocol||"http":"http")+"://mce_host"+e),/^[\w\-]*:?\/\//.test(e)||(l=o.base_uri?o.base_uri.path:new t(location.href).directory,""===o.base_uri.protocol?e="//mce_host"+a.toAbsPath(l,e):(e=/([^#?]*)([#?]?.*)/.exec(e),e=(s&&s.protocol||"http")+"://mce_host"+a.toAbsPath(l,e[1])+e[2])),e=e.replace(/@@/g,"(mce_at)"),e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e),n(i,function(t,n){var r=e[n];r&&(r=r.replace(/\(mce_at\)/g,"@@")),a[t]=r}),s&&(a.protocol||(a.protocol=s.protocol),a.userInfo||(a.userInfo=s.userInfo),a.port||"mce_host"!==a.host||(a.port=s.port),a.host&&"mce_host"!==a.host||(a.host=s.host),a.source=""),u&&(a.protocol="")}var n=e.each,r=e.trim,i="source protocol authority userInfo user password host port relative path directory file query anchor".split(" "),o={ftp:21,http:80,https:443,mailto:25};return t.prototype={setPath:function(e){var t=this;e=/^(.*?)\/?(\w+)?$/.exec(e),t.path=e[0],t.directory=e[1],t.file=e[2],t.source="",t.getURI()},toRelative:function(e){var n=this,r;if("./"===e)return e;if(e=new t(e,{base_uri:n}),"mce_host"!=e.host&&n.host!=e.host&&e.host||n.port!=e.port||n.protocol!=e.protocol&&""!==e.protocol)return e.getURI();var i=n.getURI(),o=e.getURI();return i==o||"/"==i.charAt(i.length-1)&&i.substr(0,i.length-1)==o?i:(r=n.toRelPath(n.path,e.path),e.query&&(r+="?"+e.query),e.anchor&&(r+="#"+e.anchor),r)},toAbsolute:function(e,n){return e=new t(e,{base_uri:this}),e.getURI(n&&this.isSameOrigin(e))},isSameOrigin:function(e){if(this.host==e.host&&this.protocol==e.protocol){if(this.port==e.port)return!0;var t=o[this.protocol];if(t&&(this.port||t)==(e.port||t))return!0}return!1},toRelPath:function(e,t){var n,r=0,i="",o,a;if(e=e.substring(0,e.lastIndexOf("/")),e=e.split("/"),n=t.split("/"),e.length>=n.length)for(o=0,a=e.length;o=n.length||e[o]!=n[o]){r=o+1;break}if(e.length=e.length||e[o]!=n[o]){r=o+1;break}if(1===r)return t;for(o=0,a=e.length-(r-1);o=0;r--)0!==t[r].length&&"."!==t[r]&&(".."!==t[r]?i>0?i--:o.push(t[r]):i++);return r=e.length-i,s=r<=0?o.reverse().join("/"):e.slice(0,r).join("/")+"/"+o.reverse().join("/"),0!==s.indexOf("/")&&(s="/"+s),a&&s.lastIndexOf("/")!==s.length-1&&(s+=a),s},getURI:function(e){var t,n=this;return n.source&&!e||(t="",e||(t+=n.protocol?n.protocol+"://":"//",n.userInfo&&(t+=n.userInfo+"@"),n.host&&(t+=n.host),n.port&&(t+=":"+n.port)),n.path&&(t+=n.path),n.query&&(t+="?"+n.query),n.anchor&&(t+="#"+n.anchor),n.source=t),n.source}},t.parseDataUri=function(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}},t.getDocumentBaseUrl=function(e){var t;return t=0!==e.protocol.indexOf("http")&&"file:"!==e.protocol?e.href:e.protocol+"//"+e.host+e.pathname,/^[^:]+:\/\/\/?[^\/]+\//.test(t)&&(t=t.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,""),/[\/\\]$/.test(t)||(t+="/")),t},t}),r(ce,[m],function(e){function t(){}var n=e.each,r=e.extend,i,o;return t.extend=i=function(e){function t(){var e,t,n,r=this;if(!o&&(r.init&&r.init.apply(r,arguments),t=r.Mixins))for(e=t.length;e--;)n=t[e],n.init&&n.init.apply(r,arguments)}function a(){return this}function s(e,t){return function(){var n=this,r=n._super,i;return n._super=u[e],i=t.apply(n,arguments),n._super=r,i}}var l=this,u=l.prototype,c,d,f;o=!0,c=new l,o=!1,e.Mixins&&(n(e.Mixins,function(t){for(var n in t)"init"!==n&&(e[n]=t[n])}),u.Mixins&&(e.Mixins=u.Mixins.concat(e.Mixins))),e.Methods&&n(e.Methods.split(","),function(t){e[t]=a}),e.Properties&&n(e.Properties.split(","),function(t){var n="_"+t;e[t]=function(e){var t=this,r;return e!==r?(t[n]=e,t):t[n]}}),e.Statics&&n(e.Statics,function(e,n){t[n]=e}),e.Defaults&&u.Defaults&&(e.Defaults=r({},u.Defaults,e.Defaults));for(d in e)f=e[d],"function"==typeof f&&u[d]?c[d]=s(d,f):c[d]=f;return t.prototype=c,t.constructor=t,t.extend=i,t},t}),r(de,[m],function(e){function t(t){function n(){return!1}function r(){return!0}function i(e,i){var o,s,l,u;if(e=e.toLowerCase(),i=i||{},i.type=e,i.target||(i.target=c),i.preventDefault||(i.preventDefault=function(){i.isDefaultPrevented=r},i.stopPropagation=function(){i.isPropagationStopped=r},i.stopImmediatePropagation=function(){i.isImmediatePropagationStopped=r},i.isDefaultPrevented=n,i.isPropagationStopped=n,i.isImmediatePropagationStopped=n),t.beforeFire&&t.beforeFire(i),o=d[e])for(s=0,l=o.length;s0}function o(e,t){var n,a;if(e===t)return!0;if(null===e||null===t)return e===t;if("object"!=typeof e||"object"!=typeof t)return e===t;if(r.isArray(t)){if(e.length!==t.length)return!1;for(n=e.length;n--;)if(!o(e[n],t[n]))return!1}if(i(e)||i(t))return e===t;a={};for(n in t){if(!o(e[n],t[n]))return!1;a[n]=!0}for(n in e)if(!a[n]&&!o(e[n],t[n]))return!1;return!0}return n.extend({Mixins:[t],init:function(t){var n,r;t=t||{};for(n in t)r=t[n],r instanceof e&&(t[n]=r.create(this,n));this.data=t},set:function(t,n){var r,i,a=this.data[t];if(n instanceof e&&(n=n.create(this,t)),"object"==typeof t){for(r in t)this.set(r,t[r]);return this}return o(a,n)||(this.data[t]=n,i={target:this,name:t,value:n,oldValue:a},this.fire("change:"+t,i),this.fire("change",i)),this},get:function(e){return this.data[e]},has:function(e){return e in this.data},bind:function(t){return e.create(this,t)},destroy:function(){this.fire("destroy")}})}),r(me,[ce],function(e){function t(e){for(var t=[],n=e.length,r;n--;)r=e[n],r.__checked||(t.push(r),r.__checked=1);for(n=t.length;n--;)delete t[n].__checked;return t}var n=/^([\w\\*]+)?(?:#([\w\-\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i,r=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i=/^\s*|\s*$/g,o,a=e.extend({init:function(e){function t(e){if(e)return e=e.toLowerCase(),function(t){return"*"===e||t.type===e}}function o(e){if(e)return function(t){return t._name===e}}function a(e){if(e)return e=e.split("."),function(t){for(var n=e.length;n--;)if(!t.classes.contains(e[n]))return!1;return!0}}function s(e,t,n){if(e)return function(r){var i=r[e]?r[e]():"";return t?"="===t?i===n:"*="===t?i.indexOf(n)>=0:"~="===t?(" "+i+" ").indexOf(" "+n+" ")>=0:"!="===t?i!=n:"^="===t?0===i.indexOf(n):"$="===t&&i.substr(i.length-n.length)===n:!!n}}function l(e){var t;if(e)return e=/(?:not\((.+)\))|(.+)/i.exec(e),e[1]?(t=c(e[1],[]),function(e){return!d(e,t)}):(e=e[2],function(t,n,r){return"first"===e?0===n:"last"===e?n===r-1:"even"===e?n%2===0:"odd"===e?n%2===1:!!t[e]&&t[e]()})}function u(e,r,u){function c(e){e&&r.push(e)}var d;return d=n.exec(e.replace(i,"")),c(t(d[1])),c(o(d[2])),c(a(d[3])),c(s(d[4],d[5],d[6])),c(l(d[7])),r.pseudo=!!d[7],r.direct=u,r}function c(e,t){var n=[],i,o,a;do if(r.exec(""),o=r.exec(e),o&&(e=o[3],n.push(o[1]),o[2])){i=o[3];break}while(o);for(i&&c(i,t),e=[],a=0;a"!=n[a]&&e.push(u(n[a],[],">"===n[a-1]));return t.push(e),t}var d=this.match;this._selectors=c(e,[])},match:function(e,t){var n,r,i,o,a,s,l,u,c,d,f,p,h;for(t=t||this._selectors,n=0,r=t.length;n=0;i--)for(u=a[i];h;){if(u.pseudo)for(f=h.parent().items(),c=d=f.length;c--&&f[c]!==h;);for(s=0,l=u.length;s1&&(r=t(r))}return o||(o=a.Collection),new o(r)}});return a}),r(ge,[m,me,ce],function(e,t,n){var r,i,o=Array.prototype.push,a=Array.prototype.slice;return i={length:0,init:function(e){e&&this.add(e)},add:function(t){var n=this;return e.isArray(t)?o.apply(n,t):t instanceof r?n.add(t.toArray()):o.call(n,t),n},set:function(e){var t=this,n=t.length,r;for(t.length=0,t.add(e),r=t.length;r0&&(e+=" "),e+=this.prefix+this.cls[t];return e},n}),r(Ce,[c],function(e){var t={},n;return{add:function(r){var i=r.parent();if(i){if(!i._layout||i._layout.isNative())return;t[i._id]||(t[i._id]=i),n||(n=!0,e.requestAnimationFrame(function(){var e,r;n=!1;for(e in t)r=t[e],r.state.get("rendered")&&r.reflow();t={}},document.body))}},remove:function(e){t[e._id]&&delete t[e._id]}}}),r(xe,[ce,m,de,he,ge,ve,g,ye,be,Ce],function(e,t,n,r,i,o,a,s,l,u){function c(e){return e._eventDispatcher||(e._eventDispatcher=new n({scope:e,toggleEvent:function(t,r){r&&n.isNative(t)&&(e._nativeEvents||(e._nativeEvents={}),e._nativeEvents[t]=!0,e.state.get("rendered")&&d(e))}})),e._eventDispatcher}function d(e){function t(t){var n=e.getParentCtrl(t.target);n&&n.fire(t.type,t)}function n(){var e=u._lastHoverCtrl;e&&(e.fire("mouseleave",{target:e.getEl()}),e.parents().each(function(e){e.fire("mouseleave",{target:e.getEl()})}),u._lastHoverCtrl=null)}function r(t){var n=e.getParentCtrl(t.target),r=u._lastHoverCtrl,i=0,o,a,s;if(n!==r){if(u._lastHoverCtrl=n,a=n.parents().toArray().reverse(),a.push(n),r){for(s=r.parents().toArray().reverse(),s.push(r),i=0;i=i;o--)r=s[o],r.fire("mouseleave",{target:r.getEl()})}for(o=i;on.maxW?n.maxW:i,n.w=i,n.innerW=i-o),i=e.h,i!==s&&(i=in.maxH?n.maxH:i,n.h=i,n.innerH=i-a),i=e.innerW,i!==s&&(i=in.maxW-o?n.maxW-o:i,n.innerW=i,n.w=i+o),i=e.innerH,i!==s&&(i=in.maxH-a?n.maxH-a:i,n.innerH=i,n.h=i+a),e.contentW!==s&&(n.contentW=e.contentW),e.contentH!==s&&(n.contentH=e.contentH),r=t._lastLayoutRect,r.x===n.x&&r.y===n.y&&r.w===n.w&&r.h===n.h||(l=m.repaintControls,l&&l.map&&!l.map[t._id]&&(l.push(t),l.map[t._id]=!0),r.x=n.x,r.y=n.y,r.w=n.w,r.h=n.h),t):n},repaint:function(){var e=this,t,n,r,i,o,a,s,l,u,c;u=document.createRange?function(e){return e}:Math.round,t=e.getEl().style,i=e._layoutRect,l=e._lastRepaintRect||{},o=e.borderBox,a=o.left+o.right,s=o.top+o.bottom,i.x!==l.x&&(t.left=u(i.x)+"px",l.x=i.x),i.y!==l.y&&(t.top=u(i.y)+"px",l.y=i.y),i.w!==l.w&&(c=u(i.w-a),t.width=(c>=0?c:0)+"px",l.w=i.w),i.h!==l.h&&(c=u(i.h-s),t.height=(c>=0?c:0)+"px",l.h=i.h),e._hasBody&&i.innerW!==l.innerW&&(c=u(i.innerW),r=e.getEl("body"),r&&(n=r.style,n.width=(c>=0?c:0)+"px"),l.innerW=i.innerW),e._hasBody&&i.innerH!==l.innerH&&(c=u(i.innerH),r=r||e.getEl("body"),r&&(n=n||r.style,n.height=(c>=0?c:0)+"px"),l.innerH=i.innerH),e._lastRepaintRect=l,e.fire("repaint",{},!1)},updateLayoutRect:function(){var e=this;e.parent()._lastRect=null,o.css(e.getEl(),{width:"",height:""}),e._layoutRect=e._lastRepaintRect=e._lastLayoutRect=null,e.initLayoutRect()},on:function(e,t){function n(e){var t,n;return"string"!=typeof e?e:function(i){return t||r.parentsAndSelf().each(function(r){var i=r.settings.callbacks;if(i&&(t=i[e]))return n=r,!1}),t?t.call(n,i):(i.action=e,void this.fire("execute",i))}}var r=this;return c(r).on(e,n(t)),r},off:function(e,t){return c(this).off(e,t),this},fire:function(e,t,n){var r=this;if(t=t||{},t.control||(t.control=r),t=c(r).fire(e,t),n!==!1&&r.parent)for(var i=r.parent();i&&!t.isPropagationStopped();)i.fire(e,t,!1),i=i.parent();return t},hasEventListeners:function(e){return c(this).has(e)},parents:function(e){var t=this,n,r=new i;for(n=t.parent();n;n=n.parent())r.add(n);return e&&(r=r.filter(e)),r},parentsAndSelf:function(e){return new i(this).add(this.parents(e))},next:function(){var e=this.parent().items();return e[e.indexOf(this)+1]},prev:function(){var e=this.parent().items();return e[e.indexOf(this)-1]},innerHtml:function(e){return this.$el.html(e),this},getEl:function(e){var t=e?this._id+"-"+e:this._id;return this._elmCache[t]||(this._elmCache[t]=a("#"+t)[0]),this._elmCache[t]},show:function(){return this.visible(!0)},hide:function(){return this.visible(!1)},focus:function(){try{this.getEl().focus()}catch(e){}return this},blur:function(){return this.getEl().blur(),this},aria:function(e,t){var n=this,r=n.getEl(n.ariaTarget);return"undefined"==typeof t?n._aria[e]:(n._aria[e]=t,n.state.get("rendered")&&r.setAttribute("role"==e?e:"aria-"+e,t),n)},encode:function(e,t){return t!==!1&&(e=this.translate(e)),(e||"").replace(/[&<>"]/g,function(e){return"&#"+e.charCodeAt(0)+";"})},translate:function(e){return m.translate?m.translate(e):e},before:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t),!0),t},after:function(e){var t=this,n=t.parent();return n&&n.insert(e,n.items().indexOf(t)),t},remove:function(){var e=this,t=e.getEl(),n=e.parent(),r,i;if(e.items){var o=e.items().toArray();for(i=o.length;i--;)o[i].remove()}n&&n.items&&(r=[],n.items().each(function(t){t!==e&&r.push(t)}),n.items().set(r),n._lastRect=null),e._eventsRoot&&e._eventsRoot==e&&a(t).off();var s=e.getRoot().controlIdLookup;return s&&delete s[e._id],t&&t.parentNode&&t.parentNode.removeChild(t),e.state.set("rendered",!1),e.state.destroy(),e.fire("remove"),e},renderBefore:function(e){return a(e).before(this.renderHtml()),this.postRender(),this},renderTo:function(e){return a(e||this.getContainerElm()).append(this.renderHtml()),this.postRender(),this},preRender:function(){},render:function(){},renderHtml:function(){return'
    '},postRender:function(){var e=this,t=e.settings,n,r,i,o,s;e.$el=a(e.getEl()),e.state.set("rendered",!0);for(o in t)0===o.indexOf("on")&&e.on(o.substr(2),t[o]);if(e._eventsRoot){for(i=e.parent();!s&&i;i=i.parent())s=i._eventsRoot;if(s)for(o in s._nativeEvents)e._nativeEvents[o]=!0}d(e),t.style&&(n=e.getEl(),n&&(n.setAttribute("style",t.style),n.style.cssText=t.style)),e.settings.border&&(r=e.borderBox,e.$el.css({"border-top-width":r.top,"border-right-width":r.right,"border-bottom-width":r.bottom,"border-left-width":r.left}));var l=e.getRoot();l.controlIdLookup||(l.controlIdLookup={}),l.controlIdLookup[e._id]=e;for(var c in e._aria)e.aria(c,e._aria[c]);e.state.get("visible")===!1&&(e.getEl().style.display="none"),e.bindStates(),e.state.on("change:visible",function(t){var n=t.value,r;e.state.get("rendered")&&(e.getEl().style.display=n===!1?"none":"",e.getEl().getBoundingClientRect()),r=e.parent(),r&&(r._lastRect=null),e.fire(n?"show":"hide"),u.add(e)}),e.fire("postrender",{},!1)},bindStates:function(){},scrollIntoView:function(e){function t(e,t){var n,r,i=e;for(n=r=0;i&&i!=t&&i.nodeType;)n+=i.offsetLeft||0,r+=i.offsetTop||0,i=i.offsetParent;return{x:n,y:r}}var n=this.getEl(),r=n.parentNode,i,o,a,s,l,u,c=t(n,r);return i=c.x,o=c.y,a=n.offsetWidth,s=n.offsetHeight,l=r.clientWidth,u=r.clientHeight,"end"==e?(i-=l-a,o-=u-s):"center"==e&&(i-=l/2-a/2,o-=u/2-s/2),r.scrollLeft=i,r.scrollTop=o,this},getRoot:function(){for(var e=this,t,n=[];e;){if(e.rootControl){t=e.rootControl;break}n.push(e),t=e,e=e.parent()}t||(t=this);for(var r=n.length;r--;)n[r].rootControl=t;return t},reflow:function(){u.remove(this);var e=this.parent();return e._layout&&!e._layout.isNative()&&e.reflow(),this}};return t.each("text title visible disabled active value".split(" "),function(e){v[e]=function(t){return 0===arguments.length?this.state.get(e):("undefined"!=typeof t&&this.state.set(e,t),this)}}),m=e.extend(v)}),r(we,[],function(){var e={},t;return{add:function(t,n){e[t.toLowerCase()]=n},has:function(t){return!!e[t.toLowerCase()]},create:function(n,r){var i,o,a;if(!t){a=tinymce.ui;for(o in a)e[o.toLowerCase()]=a[o];t=!0}if("string"==typeof n?(r=r||{},r.type=n):(r=n,n=r.type),n=n.toLowerCase(),i=e[n],!i)throw new Error("Could not find control by type: "+n);return i=new i(r),i.type=n,i}}}),r(Ee,[],function(){return function(e){function t(e){return e&&1===e.nodeType}function n(e){return e=e||C,t(e)?e.getAttribute("role"):null}function r(e){for(var t,r=e||C;r=r.parentNode;)if(t=n(r))return t}function i(e){var n=C;if(t(n))return n.getAttribute("aria-"+e)}function o(e){var t=e.tagName.toUpperCase();return"INPUT"==t||"TEXTAREA"==t||"SELECT"==t}function a(e){return!(!o(e)||e.hidden)||!!/^(button|menuitem|checkbox|tab|menuitemcheckbox|option|gridcell|slider)$/.test(n(e))}function s(e){function t(e){if(1==e.nodeType&&"none"!=e.style.display&&!e.disabled){a(e)&&n.push(e);for(var r=0;r=t.length&&(e=0),t[e]&&t[e].focus(),e}function d(e,t){var n=-1,r=l();t=t||s(r.getEl());for(var i=0;i=0&&(n=t.getEl(),n&&n.parentNode.removeChild(n),n=e.getEl(),n&&n.parentNode.removeChild(n)),t.parent(this)},create:function(t){var n=this,i,a=[];return o.isArray(t)||(t=[t]),o.each(t,function(t){t&&(t instanceof e||("string"==typeof t&&(t={type:t}),i=o.extend({},n.settings.defaults,t),t.type=i.type=i.type||t.type||n.settings.defaultType||(i.defaults?i.defaults.type:null),t=r.create(i)),a.push(t))}),a},renderNew:function(){var e=this;return e.items().each(function(t,n){var r;t.parent(e),t.state.get("rendered")||(r=e.getEl("body"),r.hasChildNodes()&&n<=r.childNodes.length-1?a(r.childNodes[n]).before(t.renderHtml()):a(r).append(t.renderHtml()),t.postRender(),l.add(t))}),e._layout.applyClasses(e.items().filter(":visible")),e._lastRect=null,e},append:function(e){return this.add(e).renderNew()},prepend:function(e){var t=this;return t.items().set(t.create(e).concat(t.items().toArray())),t.renderNew()},insert:function(e,t,n){var r=this,i,o,a;return e=r.create(e),i=r.items(),!n&&t=0&&t
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "},postRender:function(){var e=this,t;return e.items().exec("postRender"),e._super(),e._layout.postRender(e),e.state.set("rendered",!0),e.settings.style&&e.$el.css(e.settings.style),e.settings.border&&(t=e.borderBox,e.$el.css({"border-top-width":t.top,"border-right-width":t.right,"border-bottom-width":t.bottom,"border-left-width":t.left})),e.parent()||(e.keyboardNav=new i({root:e})),e},initLayoutRect:function(){var e=this,t=e._super();return e._layout.recalc(e),t},recalc:function(){var e=this,t=e._layoutRect,n=e._lastRect;if(!n||n.w!=t.w||n.h!=t.h)return e._layout.recalc(e),t=e.layoutRect(),e._lastRect={x:t.x,y:t.y,w:t.w,h:t.h},!0},reflow:function(){var t;if(l.remove(this),this.visible()){for(e.repaintControls=[],e.repaintControls.map={},this.recalc(),t=e.repaintControls.length;t--;)e.repaintControls[t].repaint();"flow"!==this.settings.layout&&"stack"!==this.settings.layout&&this.repaint(),e.repaintControls=[]}return this}})}),r(_e,[g],function(e){function t(e){var t,n,r,i,o,a,s,l,u=Math.max;return t=e.documentElement,n=e.body,r=u(t.scrollWidth,n.scrollWidth),i=u(t.clientWidth,n.clientWidth),o=u(t.offsetWidth,n.offsetWidth),a=u(t.scrollHeight,n.scrollHeight),s=u(t.clientHeight,n.clientHeight),l=u(t.offsetHeight,n.offsetHeight),{width:r
    ").css({position:"absolute",top:0,left:0,width:u.width,height:u.height,zIndex:2147483647,opacity:1e-4,cursor:m}).appendTo(s.body),e(s).on("mousemove touchmove",d).on("mouseup touchend",c),i.start(r)},d=function(e){return n(e),e.button!==l?c(e):(e.deltaX=e.screenX-f,e.deltaY=e.screenY-p,e.preventDefault(),void i.drag(e))},c=function(t){n(t),e(s).off("mousemove touchmove",d).off("mouseup touchend",c),a.remove(),i.stop&&i.stop(t)},this.destroy=function(){e(o()).off()},e(o()).on("mousedown touchstart",u)}}),r(Se,[g,_e],function(e,t){return{init:function(){var e=this;e.on("repaint",e.renderScroll)},renderScroll:function(){function n(){function t(t,a,s,l,u,c){var d,f,p,h,m,g,v,y,b;if(f=i.getEl("scroll"+t)){if(y=a.toLowerCase(),b=s.toLowerCase(),e(i.getEl("absend")).css(y,i.layoutRect()[l]-1),!u)return void e(f).css("display","none");e(f).css("display","block"),d=i.getEl("body"),p=i.getEl("scroll"+t+"t"),h=d["client"+s]-2*o,h-=n&&r?f["client"+c]:0,m=d["scroll"+s],g=h/m,v={},v[y]=d["offset"+a]+o,v[b]=h,e(f).css(v),v={},v[y]=d["scroll"+a]*g,v[b]=h*g,e(p).css(v)}}var n,r,a;a=i.getEl("body"),n=a.scrollWidth>a.clientWidth,r=a.scrollHeight>a.clientHeight,t("h","Left","Width","contentW",n,"Height"),t("v","Top","Height","contentH",r,"Width")}function r(){function n(n,r,a,s,l){var u,c=i._id+"-scroll"+n,d=i.classPrefix;e(i.getEl()).append('
    '),i.draghelper=new t(c+"t",{start:function(){u=i.getEl("body")["scroll"+r],e("#"+c).addClass(d+"active")},drag:function(e){var t,c,d,f,p=i.layoutRect();c=p.contentW>p.innerW,d=p.contentH>p.innerH,f=i.getEl("body")["client"+a]-2*o,f-=c&&d?i.getEl("scroll"+n)["client"+l]:0,t=f/i.getEl("body")["scroll"+a],i.getEl("body")["scroll"+r]=u+e["delta"+s]/t},stop:function(){e("#"+c).removeClass(d+"active")}})}i.classes.add("scroll"),n("v","Top","Height","Y","Width"),n("h","Left","Width","X","Height")}var i=this,o=2;i.settings.autoScroll&&(i._hasScroll||(i._hasScroll=!0,r(),i.on("wheel",function(e){var t=i.getEl("body");t.scrollLeft+=10*(e.deltaX||0),t.scrollTop+=10*e.deltaY,n()}),e(i.getEl("body")).on("scroll",n)),n())}}}),r(ke,[Ne,Se],function(e,t){return e.extend({Defaults:{layout:"fit",containerCls:"panel"},Mixins:[t],renderHtml:function(){var e=this,t=e._layout,n=e.settings.html;return e.preRender(),t.preRender(e),"undefined"==typeof n?n='
    '+t.renderHtml(e)+"
    ":("function"==typeof n&&(n=n.call(e)),e._hasBody=!1),'
    '+(e._preBodyHtml||"")+n+"
    "}})}),r(Te,[ve],function(e){function t(t,n,r){var i,o,a,s,l,u,c,d,f,p;return f=e.getViewPort(),o=e.getPos(n),a=o.x,s=o.y,t.state.get("fixed")&&"static"==e.getRuntimeStyle(document.body,"position")&&(a-=f.x,s-=f.y),i=t.getEl(),p=e.getSize(i),l=p.width,u=p.height,p=e.getSize(n),c=p.width,d=p.height,r=(r||"").split(""),"b"===r[0]&&(s+=d),"r"===r[1]&&(a+=c),"c"===r[0]&&(s+=Math.round(d/2)),"c"===r[1]&&(a+=Math.round(c/2)),"b"===r[3]&&(s-=u),"r"===r[4]&&(a-=l),"c"===r[3]&&(s-=Math.round(u/2)),"c"===r[4]&&(a-=Math.round(l/2)),{x:a,y:s,w:l,h:u}}return{testMoveRel:function(n,r){for(var i=e.getViewPort(),o=0;o0&&a.x+a.w0&&a.y+a.hi.x&&a.x+a.wi.y&&a.y+a.ht?(e=t-n,e<0?0:e):e}var i=this;if(i.settings.constrainToViewport){var o=e.getViewPort(window),a=i.layoutRect();t=r(t,o.w+o.x,a.w),n=r(n,o.h+o.y,a.h)}return i.state.get("rendered")?i.layoutRect({x:t,y:n}).repaint():(i.settings.x=t,i.settings.y=n),i.fire("move",{x:t,y:n}),i}}}),r(Re,[ve],function(e){return{resizeToContent:function(){this._layoutRect.autoResize=!0,this._lastRect=null,this.reflow()},resizeTo:function(t,n){if(t<=1||n<=1){var r=e.getWindowSize();t=t<=1?t*r.w:t,n=n<=1?n*r.h:n}return this._layoutRect.autoResize=!1,this.layoutRect({minW:t,minH:n,w:t,h:n}).reflow()},resizeBy:function(e,t){var n=this,r=n.layoutRect();return n.resizeTo(r.w+e,r.h+t)}}}),r(Ae,[ke,Te,Re,ve,g,c],function(e,t,n,r,i,o){function a(e,t){for(;e;){if(e==t)return!0;e=e.parent()}}function s(e){for(var t=v.length;t--;){var n=v[t],r=n.getParentCtrl(e.target);if(n.settings.autohide){if(r&&(a(r,n)||n.parent()===r))continue;e=n.fire("autohide",{target:e.target}),e.isDefaultPrevented()||n.hide()}}}function l(){h||(h=function(e){2!=e.button&&s(e)},i(document).on("click touchstart",h))}function u(){m||(m=function(){var e;for(e=v.length;e--;)d(v[e])},i(window).on("scroll",m))}function c(){if(!g){var e=document.documentElement,t=e.clientWidth,n=e.clientHeight;g=function(){document.all&&t==e.clientWidth&&n==e.clientHeight||(t=e.clientWidth,n=e.clientHeight,C.hideAll())},i(window).on("resize",g)}}function d(e){function t(t,n){for(var r,i=0;in&&(e.fixed(!1).layoutRect({y:e._autoFixY}).repaint(),t(!1,e._autoFixY-n)):(e._autoFixY=e.layoutRect().y,e._autoFixY
    ').appendTo(t.getContainerElm())),o.setTimeout(function(){n.addClass(r+"in"),i(t.getEl()).addClass(r+"in")}),b=!0),f(!0,t)}}),t.on("show",function(){t.parents().each(function(e){if(e.state.get("fixed"))return t.fixed(!0),!1})}),e.popover&&(t._preBodyHtml='
    ',t.classes.add("popover").add("bottom").add(t.isRtl()?"end":"start")),t.aria("label",e.ariaLabel),t.aria("labelledby",t._id),t.aria("describedby",t.describedBy||t._id+"-none")},fixed:function(e){var t=this;if(t.state.get("fixed")!=e){if(t.state.get("rendered")){var n=r.getViewPort();e?t.layoutRect().y-=n.y:t.layoutRect().y+=n.y}t.classes.toggle("fixed",e),t.state.set("fixed",e)}return t},show:function(){var e=this,t,n=e._super();for(t=v.length;t--&&v[t]!==e;);return t===-1&&v.push(e),n},hide:function(){return p(this),f(!1,this),this._super()},hideAll:function(){C.hideAll()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||(e.remove(),f(!1,e)),e},remove:function(){p(this),this._super()},postRender:function(){var e=this;return e.settings.bodyRole&&this.getEl("body").setAttribute("role",e.settings.bodyRole),e._super()}});return C.hideAll=function(){for(var e=v.length;e--;){var t=v[e];t&&t.settings.autohide&&(t.hide(),v.splice(e,1))}},C}),r(Be,[Ae,ke,ve,g,_e,ye,d,c],function(e,t,n,r,i,o,a,s){function l(e){var t="width=device-width,initial-scale=1.0,user-scalable=0,minimum-scale=1.0,maximum-scale=1.0",n=r("meta[name=viewport]")[0],i;a.overrideViewPort!==!1&&(n||(n=document.createElement("meta"),n.setAttribute("name","viewport"),document.getElementsByTagName("head")[0].appendChild(n)),i=n.getAttribute("content"),i&&"undefined"!=typeof p&&(p=i),n.setAttribute("content",e?t:p))}function u(e,t){c()&&t===!1&&r([document.documentElement,document.body]).removeClass(e+"fullscreen")}function c(){for(var e=0;er.w&&(o=r.x-Math.max(0,i/2),e.layoutRect({w:i,x:o}),a=!0)),t&&(t.layoutRect({w:e.layoutRect().innerW}).recalc(),i=t.layoutRect().minW+r.deltaW,i>r.w&&(o=r.x-Math.max(0,i-r.w),e.layoutRect({w:i,x:o}),a=!0)),a&&e.recalc()},initLayoutRect:function(){var e=this,t=e._super(),r=0,i;if(e.settings.title&&!e._fullscreen){i=e.getEl("head");var o=n.getSize(i);t.headerW=o.width,t.headerH=o.height,r+=t.headerH}e.statusbar&&(r+=e.statusbar.layoutRect().h),t.deltaH+=r,t.minH+=r,t.h+=r;var a=n.getWindowSize();return t.x=e.settings.x||Math.max(0,a.w/2-t.w/2),t.y=e.settings.y||Math.max(0,a.h/2-t.h/2),t},renderHtml:function(){var e=this,t=e._layout,n=e._id,r=e.classPrefix,i=e.settings,o="",a="",s=i.html;return e.preRender(),t.preRender(e),i.title&&(o='
    '+e.encode(i.title)+'
    '),i.url&&(s=''),"undefined"==typeof s&&(s=t.renderHtml(e)),e.statusbar&&(a=e.statusbar.renderHtml()),'
    '+o+'
    '+s+"
    "+a+"
    "},fullscreen:function(e){var t=this,i=document.documentElement,a,l=t.classPrefix,u;if(e!=t._fullscreen)if(r(window).on("resize",function(){var e;if(t._fullscreen)if(a)t._timer||(t._timer=s.setTimeout(function(){var e=n.getWindowSize();t.moveTo(0,0).resizeTo(e.w,e.h),t._timer=0},50));else{e=(new Date).getTime();var r=n.getWindowSize();t.moveTo(0,0).resizeTo(r.w,r.h),(new Date).getTime()-e>50&&(a=!0)}}),u=t.layoutRect(),t._fullscreen=e,e){t._initial={x:u.x,y:u.y,w:u.w,h:u.h},t.borderBox=o.parseBox("0"),t.getEl("head").style.display="none",u.deltaH-=u.headerH+2,r([i,document.body]).addClass(l+"fullscreen"),t.classes.add("fullscreen");var c=n.getWindowSize();t.moveTo(0,0).resizeTo(c.w,c.h)}else t.borderBox=o.parseBox(t.settings.border),t.getEl("head").style.display="",u.deltaH+=u.headerH,r([i,document.body]).removeClass(l+"fullscreen"),t.classes.remove("fullscreen"),t.moveTo(t._initial.x,t._initial.y).resizeTo(t._initial.w,t._initial.h);return t.reflow()},postRender:function(){var e=this,t;setTimeout(function(){e.classes.add("in"),e.fire("open")},0),e._super(),e.statusbar&&e.statusbar.postRender(),e.focus(),this.dragHelper=new i(e._id+"-dragh",{start:function(){t={x:e.layoutRect().x,y:e.layoutRect().y}},drag:function(n){e.moveTo(t.x+n.deltaX,t.y+n.deltaY)}}),e.on("submit",function(t){t.isDefaultPrevented()||e.close()}),f.push(e),l(!0)},submit:function(){return this.fire("submit",{data:this.toJSON()})},remove:function(){var e=this,t;for(e.dragHelper.destroy(),e._super(),e.statusbar&&this.statusbar.remove(),u(e.classPrefix,!1),t=f.length;t--;)f[t]===e&&f.splice(t,1);l(f.length>0)},getContentWindow:function(){var e=this.getEl().getElementsByTagName("iframe")[0];return e?e.contentWindow:null}});return d(),h}),r(De,[Be],function(e){var t=e.extend({init:function(e){e={border:1,padding:20,layout:"flex",pack:"center",align:"center",containerCls:"panel",autoScroll:!0,buttons:{type:"button",text:"Ok",action:"ok"},items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200}},this._super(e)},Statics:{OK:1,OK_CANCEL:2,YES_NO:3,YES_NO_CANCEL:4,msgBox:function(n){function r(e,t,n){return{type:"button",text:e,subtype:n?"primary":"",onClick:function(e){e.control.parents()[1].close(),o(t)}}}var i,o=n.callback||function(){};switch(n.buttons){ -case t.OK_CANCEL:i=[r("Ok",!0,!0),r("Cancel",!1)];break;case t.YES_NO:case t.YES_NO_CANCEL:i=[r("Yes",1,!0),r("No",0)],n.buttons==t.YES_NO_CANCEL&&i.push(r("Cancel",-1));break;default:i=[r("Ok",!0,!0)]}return new e({padding:20,x:n.x,y:n.y,minWidth:300,minHeight:100,layout:"flex",pack:"center",align:"center",buttons:i,title:n.title,role:"alertdialog",items:{type:"label",multiline:!0,maxWidth:500,maxHeight:200,text:n.text},onPostRender:function(){this.aria("describedby",this.items()[0]._id)},onClose:n.onClose,onCancel:function(){o(!1)}}).renderTo(document.body).reflow()},alert:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,t.msgBox(e)},confirm:function(e,n){return"string"==typeof e&&(e={text:e}),e.callback=n,e.buttons=t.OK_CANCEL,t.msgBox(e)}}});return t}),r(Le,[Be,De],function(e,t){return function(n){function r(){if(s.length)return s[s.length-1]}function i(e){n.fire("OpenWindow",{win:e})}function o(e){n.fire("CloseWindow",{win:e})}var a=this,s=[];a.windows=s,n.on("remove",function(){for(var e=s.length;e--;)s[e].close()}),a.open=function(t,r){var a;return n.editorManager.setActive(n),t.title=t.title||" ",t.url=t.url||t.file,t.url&&(t.width=parseInt(t.width||320,10),t.height=parseInt(t.height||240,10)),t.body&&(t.items={defaults:t.defaults,type:t.bodyType||"form",items:t.body,data:t.data,callbacks:t.commands}),t.url||t.buttons||(t.buttons=[{text:"Ok",subtype:"primary",onclick:function(){a.find("form")[0].submit()}},{text:"Cancel",onclick:function(){a.close()}}]),a=new e(t),s.push(a),a.on("close",function(){for(var e=s.length;e--;)s[e]===a&&s.splice(e,1);s.length||n.focus(),o(a)}),t.data&&a.on("postRender",function(){this.find("*").each(function(e){var n=e.name();n in t.data&&e.value(t.data[n])})}),a.features=t||{},a.params=r||{},1===s.length&&n.nodeChanged(),a=a.renderTo().reflow(),i(a),a},a.alert=function(e,r,a){var s;s=t.alert(e,function(){r?r.call(a||this):n.focus()}),s.on("close",function(){o(s)}),i(s)},a.confirm=function(e,n,r){var a;a=t.confirm(e,function(e){n.call(r||this,e)}),a.on("close",function(){o(a)}),i(a)},a.close=function(){r()&&r().close()},a.getParams=function(){return r()?r().params:null},a.setParams=function(e){r()&&(r().params=e)},a.getWindows=function(){return s}}}),r(Me,[xe,Te],function(e,t){return e.extend({Mixins:[t],Defaults:{classes:"widget tooltip tooltip-n"},renderHtml:function(){var e=this,t=e.classPrefix;return'"},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().lastChild.innerHTML=e.encode(t.value)}),e._super()},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=131070}})}),r(Pe,[xe,Me],function(e,t){var n,r=e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.canFocus=!0,e.tooltip&&r.tooltips!==!1&&(t.on("mouseenter",function(n){var r=t.tooltip().moveTo(-65535);if(n.control==t){var i=r.text(e.tooltip).show().testMoveRel(t.getEl(),["bc-tc","bc-tl","bc-tr"]);r.classes.toggle("tooltip-n","bc-tc"==i),r.classes.toggle("tooltip-nw","bc-tl"==i),r.classes.toggle("tooltip-ne","bc-tr"==i),r.moveRel(t.getEl(),i)}else r.hide()}),t.on("mouseleave mousedown click",function(){t.tooltip().hide()})),t.aria("label",e.ariaLabel||e.tooltip)},tooltip:function(){return n||(n=new t({type:"tooltip"}),n.renderTo()),n},postRender:function(){var e=this,t=e.settings;e._super(),e.parent()||!t.width&&!t.height||(e.initLayoutRect(),e.repaint()),t.autofocus&&e.focus()},bindStates:function(){function e(e){n.aria("disabled",e),n.classes.toggle("disabled",e)}function t(e){n.aria("pressed",e),n.classes.toggle("active",e)}var n=this;return n.state.on("change:disabled",function(t){e(t.value)}),n.state.on("change:active",function(e){t(e.value)}),n.state.get("disabled")&&e(!0),n.state.get("active")&&t(!0),n._super()},remove:function(){this._super(),n&&(n.remove(),n=null)}});return r}),r(Oe,[Pe],function(e){return e.extend({Defaults:{value:0},init:function(e){var t=this;t._super(e),t.classes.add("progress"),t.settings.filter||(t.settings.filter=function(e){return Math.round(e)})},renderHtml:function(){var e=this,t=e._id,n=this.classPrefix;return'
    0%
    '},postRender:function(){var e=this;return e._super(),e.value(e.settings.value),e},bindStates:function(){function e(e){e=t.settings.filter(e),t.getEl().lastChild.innerHTML=e+"%",t.getEl().firstChild.firstChild.style.width=e+"%"}var t=this;return t.state.on("change:value",function(t){e(t.value)}),e(t.state.get("value")),t._super()}})}),r(He,[xe,Te,Oe,c],function(e,t,n,r){return e.extend({Mixins:[t],Defaults:{classes:"widget notification"},init:function(e){var t=this;t._super(e),e.text&&t.text(e.text),e.icon&&(t.icon=e.icon),e.color&&(t.color=e.color),e.type&&t.classes.add("notification-"+e.type),e.timeout&&(e.timeout<0||e.timeout>0)&&!e.closeButton?t.closeButton=!1:(t.classes.add("has-close"),t.closeButton=!0),e.progressBar&&(t.progressBar=new n),t.on("click",function(e){e.target.className.indexOf(t.classPrefix+"close")!=-1&&t.close()})},renderHtml:function(){var e=this,t=e.classPrefix,n="",r="",i="",o="";return e.icon&&(n=''),e.color&&(o=' style="background-color: '+e.color+'"'),e.closeButton&&(r=''),e.progressBar&&(i=e.progressBar.renderHtml()),'"},postRender:function(){var e=this;return r.setTimeout(function(){e.$el.addClass(e.classPrefix+"in")}),e._super()},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl().childNodes[1].innerHTML=t.value}),e.progressBar&&e.progressBar.bindStates(),e._super()},close:function(){var e=this;return e.fire("close").isDefaultPrevented()||e.remove(),e},repaint:function(){var e=this,t,n;t=e.getEl().style,n=e._layoutRect,t.left=n.x+"px",t.top=n.y+"px",t.zIndex=65534}})}),r(Ie,[He,c,m],function(e,t,n){return function(r){function i(){if(f.length)return f[f.length-1]}function o(){t.requestAnimationFrame(function(){a(),s()})}function a(){for(var e=0;e0){var e=f.slice(0,1)[0],t=r.inline?r.getElement():r.getContentAreaContainer();if(e.moveRel(t,"tc-tc"),f.length>1)for(var n=1;n0&&(n.timer=setTimeout(function(){n.close()},t.timeout)),n.on("close",function(){var e=f.length;for(n.timer&&r.getWin().clearTimeout(n.timer);e--;)f[e]===n&&f.splice(e,1);s()}),n.renderTo(),s()):n=i,n}},d.close=function(){i()&&i().close()},d.getNotifications=function(){return f},r.on("SkinLoaded",function(){var e=r.settings.service_message;e&&r.notificationManager.open({text:e,type:"warning",timeout:0,icon:""})})}}),r(Fe,[w],function(e){function t(t,n,r){for(var i=[];n&&n!=t;n=n.parentNode)i.push(e.nodeIndex(n,r));return i}function n(e,t){var n,r,i;for(r=e,n=t.length-1;n>=0;n--){if(i=r.childNodes,t[n]>i.length-1)return null;r=i[t[n]]}return r}return{create:t,resolve:n}}),r(ze,[I,T,y,Fe,A,C,d,m,c,k,$,oe],function(e,t,n,r,i,o,a,s,l,u,c,d){return function(f){function p(e,t){try{f.getDoc().execCommand(e,!1,t)}catch(n){}}function h(){var e=f.getDoc().documentMode;return e?e:6}function m(e){return e.isDefaultPrevented()}function g(e){var t,n;e.dataTransfer&&(f.selection.isCollapsed()&&"IMG"==e.target.tagName&&re.select(e.target),t=f.selection.getContent(),t.length>0&&(n=ce+escape(f.id)+","+escape(t),e.dataTransfer.setData(de,n)))}function v(e){var t;return e.dataTransfer&&(t=e.dataTransfer.getData(de),t&&t.indexOf(ce)>=0)?(t=t.substr(ce.length).split(","),{id:unescape(t[0]),html:unescape(t[1])}):null}function y(e){f.queryCommandSupported("mceInsertClipboardContent")?f.execCommand("mceInsertClipboardContent",!1,{content:e}):f.execCommand("mceInsertContent",!1,e)}function b(){function i(e){var t=x.schema.getBlockElements(),n=f.getBody();if("BR"!=e.nodeName)return!1;for(;e!=n&&!t[e.nodeName];e=e.parentNode)if(e.nextSibling)return!1;return!0}function o(e,t){var n;for(n=e.nextSibling;n&&n!=t;n=n.nextSibling)if((3!=n.nodeType||0!==Z.trim(n.data).length)&&n!==t)return!1;return n===t}function a(e,t,r){var o,a,s;if(x.isChildOf(e,f.getBody()))for(s=x.schema.getNonEmptyElements(),o=new n(r||e,e);a=o[t?"next":"prev"]();){if(s[a.nodeName]&&!i(a))return a;if(3==a.nodeType&&a.data.length>0)return a}}function u(e){var n,r,i,o,s;if(!e.collapsed&&(n=x.getParent(t.getNode(e.startContainer,e.startOffset),x.isBlock),r=x.getParent(t.getNode(e.endContainer,e.endOffset),x.isBlock),s=f.schema.getTextBlockElements(),n!=r&&s[n.nodeName]&&s[r.nodeName]&&"false"!==x.getContentEditable(n)&&"false"!==x.getContentEditable(r)))return e.deleteContents(),i=a(n,!1),o=a(r,!0),x.isEmpty(r)||Z(n).append(r.childNodes),Z(r).remove(),i?1==i.nodeType?"BR"==i.nodeName?(e.setStartBefore(i),e.setEndBefore(i)):(e.setStartAfter(i),e.setEndAfter(i)):(e.setStart(i,i.data.length),e.setEnd(i,i.data.length)):o&&(1==o.nodeType?(e.setStartBefore(o),e.setEndBefore(o)):(e.setStart(o,0),e.setEnd(o,0))),w.setRng(e),!0}function c(e,n){var r,i,s,l,u,c;if(!e.collapsed)return e;if(u=e.startContainer,c=e.startOffset,3==u.nodeType)if(n){if(c0)return e;r=t.getNode(u,c),s=x.getParent(r,x.isBlock),i=a(f.getBody(),n,r),l=x.getParent(i,x.isBlock);var d=1===u.nodeType&&c>u.childNodes.length-1;if(!r||!i)return e;if(l&&s!=l)if(n){if(!o(s,l))return e;1==r.nodeType?"BR"==r.nodeName?e.setStartBefore(r):e.setStartAfter(r):e.setStart(r,r.data.length),1==i.nodeType?e.setEnd(i,0):e.setEndBefore(i)}else{if(!o(l,s))return e;1==i.nodeType?"BR"==i.nodeName?e.setStartBefore(i):e.setStartAfter(i):e.setStart(i,i.data.length),1==r.nodeType&&d?e.setEndAfter(r):e.setEndBefore(r)}return e}function d(e){var t=w.getRng();if(t=c(t,e),u(t))return!0}function p(e,t){function n(e,n){return m=Z(n).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),l=e.cloneNode(!1),m=s.map(m,function(e){return e=e.cloneNode(!1),l.hasChildNodes()?(e.appendChild(l.firstChild),l.appendChild(e)):l.appendChild(e),l.appendChild(e),e}),m.length?(h=x.create("br"),m[0].appendChild(h),x.replace(l,e),t.setStartBefore(h),t.setEndBefore(h),f.selection.setRng(t),h):null}function i(e){return e&&f.schema.getTextBlockElements()[e.tagName]}var o,a,l,u,c,d,p,h,m;if(t.collapsed&&(d=t.startContainer,p=t.startOffset,a=x.getParent(d,x.isBlock),i(a)))if(1==d.nodeType){if(d=d.childNodes[p],d&&"BR"!=d.tagName)return;if(c=e?a.nextSibling:a.previousSibling,x.isEmpty(a)&&i(c)&&x.isEmpty(c)&&n(a,d))return x.remove(c),!0}else if(3==d.nodeType){if(o=r.create(a,d),u=a.cloneNode(!0),d=r.resolve(u,o),e){if(p>=d.data.length)return;d.deleteData(p,1)}else{if(p<=0)return;d.deleteData(p-1,1)}if(x.isEmpty(u))return n(a,d)}}function h(e){var t,n,r;d(e)||(s.each(f.getBody().getElementsByTagName("*"),function(e){"SPAN"==e.tagName&&e.setAttribute("mce-data-marked",1),!e.hasAttribute("data-mce-style")&&e.hasAttribute("style")&&f.dom.setAttrib(e,"style",f.dom.getAttrib(e,"style"))}),t=new E(function(){}),t.observe(f.getDoc(),{childList:!0,attributes:!0,subtree:!0,attributeFilter:["style"]}),f.getDoc().execCommand(e?"ForwardDelete":"Delete",!1,null),n=f.selection.getRng(),r=n.startContainer.parentNode,s.each(t.takeRecords(),function(e){if(x.isChildOf(e.target,f.getBody())){if("style"==e.attributeName){var t=e.target.getAttribute("data-mce-style");t?e.target.setAttribute("style",t):e.target.removeAttribute("style")}s.each(e.addedNodes,function(e){if("SPAN"==e.nodeName&&!e.getAttribute("mce-data-marked")){var t,i;e==r&&(t=n.startOffset,i=e.firstChild),x.remove(e,!0),i&&(n.setStart(i,t),n.setEnd(i,t),f.selection.setRng(n))}})}}),t.disconnect(),s.each(f.dom.select("span[mce-data-marked]"),function(e){e.removeAttribute("mce-data-marked")}))}function b(e){f.undoManager.transact(function(){h(e)})}var C=f.getDoc(),x=f.dom,w=f.selection,E=window.MutationObserver,N,_;E||(N=!0,E=function(){function e(e){var t=e.relatedNode||e.target;n.push({target:t,addedNodes:[t]})}function t(e){var t=e.relatedNode||e.target;n.push({target:t,attributeName:e.attrName})}var n=[],r;this.observe=function(n){r=n,r.addEventListener("DOMSubtreeModified",e,!1),r.addEventListener("DOMNodeInsertedIntoDocument",e,!1),r.addEventListener("DOMNodeInserted",e,!1),r.addEventListener("DOMAttrModified",t,!1)},this.disconnect=function(){r.removeEventListener("DOMSubtreeModified",e,!1),r.removeEventListener("DOMNodeInsertedIntoDocument",e,!1),r.removeEventListener("DOMNodeInserted",e,!1),r.removeEventListener("DOMAttrModified",t,!1)},this.takeRecords=function(){return n}}),f.on("keydown",function(e){var t=e.keyCode==te,n=e.ctrlKey||e.metaKey;if(!m(e)&&(t||e.keyCode==ee)){var r=f.selection.getRng(),i=r.startContainer,o=r.startOffset;if(t&&e.shiftKey)return;if(p(t,r))return void e.preventDefault();if(!n&&r.collapsed&&3==i.nodeType&&(t?o0))return;e.preventDefault(),n&&f.selection.getSel().modify("extend",t?"forward":"backward",e.metaKey?"lineboundary":"word"),h(t)}}),f.on("keypress",function(t){if(!m(t)&&!w.isCollapsed()&&t.charCode>31&&!e.metaKeyPressed(t)){var n,r,i,o,a,s;n=f.selection.getRng(),s=String.fromCharCode(t.charCode),t.preventDefault(),r=Z(n.startContainer).parents().filter(function(e,t){return!!f.schema.getTextInlineElements()[t.nodeName]}),h(!0),r=r.filter(function(e,t){return!Z.contains(f.getBody(),t)}),r.length?(i=x.createFragment(),r.each(function(e,t){t=t.cloneNode(!1),i.hasChildNodes()?(t.appendChild(i.firstChild),i.appendChild(t)):(a=t,i.appendChild(t)),i.appendChild(t)}),a.appendChild(f.getDoc().createTextNode(s)),o=x.getParent(n.startContainer,x.isBlock),x.isEmpty(o)?Z(o).empty().append(i):n.insertNode(i),n.setStart(a.firstChild,1),n.setEnd(a.firstChild,1),f.selection.setRng(n)):f.selection.setContent(s)}}),f.addCommand("Delete",function(){h()}),f.addCommand("ForwardDelete",function(){h(!0)}),N||(f.on("dragstart",function(e){_=w.getRng(),g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);n&&(e.preventDefault(),l.setEditorTimeout(f,function(){var r=t.getCaretRangeFromPoint(e.x,e.y,C);_&&(w.setRng(_),_=null,b()),w.setRng(r),y(n.html)}))}}),f.on("cut",function(e){m(e)||!e.clipboardData||f.selection.isCollapsed()||(e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/html",f.selection.getContent()),e.clipboardData.setData("text/plain",f.selection.getContent({format:"text"})),l.setEditorTimeout(f,function(){b(!0)}))}))}function C(){function e(e){var t=ne.create("body"),n=e.cloneContents();return t.appendChild(n),re.serializer.serialize(t,{format:"html"})}function n(n){if(!n.setStart){if(n.item)return!1;var r=n.duplicate();return r.moveToElementText(f.getBody()),t.compareRanges(n,r)}var i=e(n),o=ne.createRng();o.selectNode(f.getBody());var a=e(o);return i===a}f.on("keydown",function(e){var t=e.keyCode,r,i;if(!m(e)&&(t==te||t==ee)){if(r=f.selection.isCollapsed(),i=f.getBody(),r&&!ne.isEmpty(i))return;if(!r&&!n(f.selection.getRng()))return;e.preventDefault(),f.setContent(""),i.firstChild&&ne.isBlock(i.firstChild)?f.selection.setCursorLocation(i.firstChild,0):f.selection.setCursorLocation(i,0),f.nodeChanged()}})}function x(){f.shortcuts.add("meta+a",null,"SelectAll")}function w(){f.settings.content_editable||ne.bind(f.getDoc(),"mousedown mouseup",function(e){var t;if(e.target==f.getDoc().documentElement)if(t=re.getRng(),f.getBody().focus(),"mousedown"==e.type){if(u.isCaretContainer(t.startContainer))return;re.placeCaretAt(e.clientX,e.clientY)}else re.setRng(t)})}function E(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee){if(!f.getBody().getElementsByTagName("hr").length)return;if(re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode(),n=t.previousSibling;if("HR"==t.nodeName)return ne.remove(t),void e.preventDefault();n&&n.nodeName&&"hr"===n.nodeName.toLowerCase()&&(ne.remove(n),e.preventDefault())}}})}function N(){window.Range.prototype.getClientRects||f.on("mousedown",function(e){if(!m(e)&&"HTML"===e.target.nodeName){var t=f.getBody();t.blur(),l.setEditorTimeout(f,function(){t.focus()})}})}function _(){f.on("click",function(e){var t=e.target;/^(IMG|HR)$/.test(t.nodeName)&&"false"!==ne.getContentEditableParent(t)&&(e.preventDefault(),re.select(t),f.nodeChanged()),"A"==t.nodeName&&ne.hasClass(t,"mce-item-anchor")&&(e.preventDefault(),re.select(t))})}function S(){function e(){var e=ne.getAttribs(re.getStart().cloneNode(!1));return function(){var t=re.getStart();t!==f.getBody()&&(ne.setAttrib(t,"style",null),Q(e,function(e){t.setAttributeNode(e.cloneNode(!0))}))}}function t(){return!re.isCollapsed()&&ne.getParent(re.getStart(),ne.isBlock)!=ne.getParent(re.getEnd(),ne.isBlock)}f.on("keypress",function(n){var r;if(!m(n)&&(8==n.keyCode||46==n.keyCode)&&t())return r=e(),f.getDoc().execCommand("delete",!1,null),r(),n.preventDefault(),!1}),ne.bind(f.getDoc(),"cut",function(n){var r;!m(n)&&t()&&(r=e(),l.setEditorTimeout(f,function(){r()}))})}function k(){document.body.setAttribute("role","application")}function T(){f.on("keydown",function(e){if(!m(e)&&e.keyCode===ee&&re.isCollapsed()&&0===re.getRng(!0).startOffset){var t=re.getNode().previousSibling;if(t&&t.nodeName&&"table"===t.nodeName.toLowerCase())return e.preventDefault(),!1}})}function R(){h()>7||(p("RespectVisibilityInDesign",!0),f.contentStyles.push(".mceHideBrInPre pre br {display: none}"),ne.addClass(f.getBody(),"mceHideBrInPre"),oe.addNodeFilter("pre",function(e){for(var t=e.length,n,r,o,a;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)o=n[r],a=o.prev,a&&3===a.type&&"\n"!=a.value.charAt(a.value-1)?a.value+="\n":o.parent.insert(new i("#text",3),o,!0).value="\n"}),ae.addNodeFilter("pre",function(e){for(var t=e.length,n,r,i,o;t--;)for(n=e[t].getAll("br"),r=n.length;r--;)i=n[r],o=i.prev,o&&3==o.type&&(o.value=o.value.replace(/\r?\n$/,""))}))}function A(){ne.bind(f.getBody(),"mouseup",function(){var e,t=re.getNode();"IMG"==t.nodeName&&((e=ne.getStyle(t,"width"))&&(ne.setAttrib(t,"width",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"width","")),(e=ne.getStyle(t,"height"))&&(ne.setAttrib(t,"height",e.replace(/[^0-9%]+/g,"")),ne.setStyle(t,"height","")))})}function B(){f.on("keydown",function(t){var n,r,i,o,a;if(!m(t)&&t.keyCode==e.BACKSPACE&&(n=re.getRng(),r=n.startContainer,i=n.startOffset,o=ne.getRoot(),a=r,n.collapsed&&0===i)){for(;a&&a.parentNode&&a.parentNode.firstChild==a&&a.parentNode!=o;)a=a.parentNode;"BLOCKQUOTE"===a.tagName&&(f.formatter.toggle("blockquote",null,a),n=ne.createRng(),n.setStart(r,0),n.setEnd(r,0),re.setRng(n))}})}function D(){function e(){K(),p("StyleWithCSS",!1),p("enableInlineTableEditing",!1),ie.object_resizing||p("enableObjectResizing",!1)}ie.readonly||f.on("BeforeExecCommand MouseDown",e)}function L(){function e(){Q(ne.select("a"),function(e){var t=e.parentNode,n=ne.getRoot();if(t.lastChild===e){for(;t&&!ne.isBlock(t);){if(t.parentNode.lastChild!==t||t===n)return;t=t.parentNode}ne.add(t,"br",{"data-mce-bogus":1})}})}f.on("SetContent ExecCommand",function(t){"setcontent"!=t.type&&"mceInsertLink"!==t.command||e()})}function M(){ie.forced_root_block&&f.on("init",function(){p("DefaultParagraphSeparator",ie.forced_root_block)})}function P(){f.on("keydown",function(e){var t;m(e)||e.keyCode!=ee||(t=f.getDoc().selection.createRange(),t&&t.item&&(e.preventDefault(),f.undoManager.beforeChange(),ne.remove(t.item(0)),f.undoManager.add()))})}function O(){var e;h()>=10&&(e="",Q("p div h1 h2 h3 h4 h5 h6".split(" "),function(t,n){e+=(n>0?",":"")+t+":empty"}),f.contentStyles.push(e+"{padding-right: 1px !important}"))}function H(){h()<9&&(oe.addNodeFilter("noscript",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.firstChild,r&&n.attr("data-mce-innertext",r.value)}),ae.addNodeFilter("noscript",function(e){for(var t=e.length,n,r,a;t--;)n=e[t],r=e[t].firstChild,r?r.value=o.decode(r.value):(a=n.attributes.map["data-mce-innertext"],a&&(n.attr("data-mce-innertext",null),r=new i("#text",3),r.value=a,r.raw=!0,n.append(r)))}))}function I(){function e(e,t){var n=i.createTextRange();try{n.moveToPoint(e,t)}catch(r){n=null}return n}function t(t){var r;t.button?(r=e(t.x,t.y),r&&(r.compareEndPoints("StartToStart",a)>0?r.setEndPoint("StartToStart",a):r.setEndPoint("EndToEnd",a),r.select())):n()}function n(){var e=r.selection.createRange();a&&!e.item&&0===e.compareEndPoints("StartToEnd",e)&&a.select(),ne.unbind(r,"mouseup",n),ne.unbind(r,"mousemove",t),a=o=0}var r=ne.doc,i=r.body,o,a,s;r.documentElement.unselectable=!0,ne.bind(r,"mousedown contextmenu",function(i){if("HTML"===i.target.nodeName){if(o&&n(),s=r.documentElement,s.scrollHeight>s.clientHeight)return;o=1,a=e(i.x,i.y),a&&(ne.bind(r,"mouseup",n),ne.bind(r,"mousemove",t),ne.getRoot().focus(),a.select())}})}function F(){f.on("keyup focusin mouseup",function(t){65==t.keyCode&&e.metaKeyPressed(t)||re.normalize()},!0)}function z(){f.contentStyles.push("img:-moz-broken {-moz-force-broken-image-icon:1;min-width:24px;min-height:24px}")}function U(){f.inline||f.on("keydown",function(){document.activeElement==document.body&&f.getWin().focus()})}function W(){f.inline||(f.contentStyles.push("body {min-height: 150px}"),f.on("click",function(e){var t;if("HTML"==e.target.nodeName){if(a.ie>11)return void f.getBody().focus();t=f.selection.getRng(),f.getBody().focus(),f.selection.setRng(t),f.selection.normalize(),f.nodeChanged()}}))}function V(){a.mac&&f.on("keydown",function(t){!e.metaKeyPressed(t)||t.shiftKey||37!=t.keyCode&&39!=t.keyCode||(t.preventDefault(),f.selection.getSel().modify("move",37==t.keyCode?"backward":"forward","lineboundary"))})}function $(){p("AutoUrlDetect",!1)}function q(){f.on("click",function(e){var t=e.target;do if("A"===t.tagName)return void e.preventDefault();while(t=t.parentNode)}),f.contentStyles.push(".mce-content-body {-webkit-touch-callout: none}")}function j(){f.on("init",function(){f.dom.bind(f.getBody(),"submit",function(e){e.preventDefault()})})}function Y(){oe.addNodeFilter("br",function(e){for(var t=e.length;t--;)"Apple-interchange-newline"==e[t].attr("class")&&e[t].remove()})}function X(){f.on("dragstart",function(e){g(e)}),f.on("drop",function(e){if(!m(e)){var n=v(e);if(n&&n.id!=f.id){e.preventDefault();var r=t.getCaretRangeFromPoint(e.x,e.y,f.getDoc());re.setRng(r),y(n.html)}}})}function K(){}function G(){var e;return se?(e=f.selection.getSel(),!e||!e.rangeCount||0===e.rangeCount):0}function J(){function t(e){var t=new d(e.getBody()),n=e.selection.getRng(),r=c.fromRangeStart(n),i=c.fromRangeEnd(n),o=t.prev(r),a=t.next(i);return!e.selection.isCollapsed()&&(!o||o.isAtStart()&&r.isEqual(o))&&(!a||a.isAtEnd()&&r.isEqual(a))}f.on("keypress",function(n){!m(n)&&!re.isCollapsed()&&n.charCode>31&&!e.metaKeyPressed(n)&&t(f)&&(n.preventDefault(),f.setContent(String.fromCharCode(n.charCode)),f.selection.select(f.getBody(),!0),f.selection.collapse(!1),f.nodeChanged())}),f.on("keydown",function(e){var n=e.keyCode;m(e)||n!=te&&n!=ee||t(f)&&(e.preventDefault(),f.setContent(""),f.nodeChanged())})}var Q=s.each,Z=f.$,ee=e.BACKSPACE,te=e.DELETE,ne=f.dom,re=f.selection,ie=f.settings,oe=f.parser,ae=f.serializer,se=a.gecko,le=a.ie,ue=a.webkit,ce="data:text/mce-internal,",de=le?"Text":"URL";return B(),C(),a.windowsPhone||F(),ue&&(J(),b(),w(),_(),M(),j(),T(),Y(),a.iOS?(U(),W(),q()):x()),le&&a.ie<11&&(E(),k(),R(),A(),P(),O(),H(),I()),a.ie>=11&&(W(),T()),a.ie&&(x(),$(),X()),se&&(J(),E(),N(),S(),D(),L(),z(),V(),T()),{refreshContentEditable:K,isHidden:G}}}),r(Ue,[pe,w,m],function(e,t,n){function r(e,t){return"selectionchange"==t?e.getDoc():!e.inline&&/^mouse|touch|click|contextmenu|drop|dragover|dragend/.test(t)?e.getDoc().documentElement:e.settings.event_root?(e.eventRoot||(e.eventRoot=o.select(e.settings.event_root)[0]),e.eventRoot):e.getBody()}function i(e,t){function n(e){return!e.hidden&&!e.readonly}var i=r(e,t),s;if(e.delegates||(e.delegates={}),!e.delegates[t])if(e.settings.event_root){if(a||(a={},e.editorManager.on("removeEditor",function(){var t;if(!e.editorManager.activeEditor&&a){for(t in a)e.dom.unbind(r(e,t));a=null}})),a[t])return;s=function(r){for(var i=r.target,a=e.editorManager.editors,s=a.length;s--;){var l=a[s].getBody();(l===i||o.isChildOf(i,l))&&n(a[s])&&a[s].fire(t,r)}},a[t]=s,o.bind(i,t,s)}else s=function(r){n(e)&&e.fire(t,r)},o.bind(i,t,s),e.delegates[t]=s}var o=t.DOM,a,s={bindPendingEventDelegates:function(){var e=this;n.each(e._pendingNativeEvents,function(t){i(e,t)})},toggleNativeEvent:function(e,t){var n=this;"focus"!=e&&"blur"!=e&&(t?n.initialized?i(n,e):n._pendingNativeEvents?n._pendingNativeEvents.push(e):n._pendingNativeEvents=[e]:n.initialized&&(n.dom.unbind(r(n,e),e,n.delegates[e]),delete n.delegates[e]))},unbindAllNativeEvents:function(){var e=this,t;if(e.delegates){for(t in e.delegates)e.dom.unbind(r(e,t),t,e.delegates[t]);delete e.delegates}e.inline||(e.getBody().onload=null,e.dom.unbind(e.getWin()),e.dom.unbind(e.getDoc())),e.dom.unbind(e.getBody()),e.dom.unbind(e.getContainer())}};return s=n.extend({},e,s)}),r(We,[],function(){function e(e,t,n){try{e.getDoc().execCommand(t,!1,n)}catch(r){}}function t(e){var t,n;return t=e.getBody(),n=function(t){e.dom.getParents(t.target,"a").length>0&&t.preventDefault()},e.dom.bind(t,"click",n),{unbind:function(){e.dom.unbind(t,"click",n)}}}function n(n,r){n._clickBlocker&&(n._clickBlocker.unbind(),n._clickBlocker=null),r?(n._clickBlocker=t(n),n.selection.controlSelection.hideResizeRect(),n.readonly=!0,n.getBody().contentEditable=!1):(n.readonly=!1,n.getBody().contentEditable=!0,e(n,"StyleWithCSS",!1),e(n,"enableInlineTableEditing",!1),e(n,"enableObjectResizing",!1),n.focus(),n.nodeChanged())}function r(e,t){var r=e.readonly?"readonly":"design";t!=r&&(e.initialized?n(e,"readonly"==t):e.on("init",function(){n(e,"readonly"==t)}),e.fire("SwitchMode",{mode:t}))}return{setMode:r}}),r(Ve,[m,d],function(e,t){var n=e.each,r=e.explode,i={f9:120,f10:121,f11:122},o=e.makeMap("alt,ctrl,shift,meta,access");return function(a){function s(e){var a,s,l={};n(r(e,"+"),function(e){e in o?l[e]=!0:/^[0-9]{2,}$/.test(e)?l.keyCode=parseInt(e,10):(l.charCode=e.charCodeAt(0),l.keyCode=i[e]||e.toUpperCase().charCodeAt(0))}),a=[l.keyCode];for(s in o)l[s]?a.push(s):l[s]=!1;return l.id=a.join(","),l.access&&(l.alt=!0,t.mac?l.ctrl=!0:l.shift=!0),l.meta&&(t.mac?l.meta=!0:(l.ctrl=!0,l.meta=!1)),l}function l(t,n,i,o){var l;return l=e.map(r(t,">"),s),l[l.length-1]=e.extend(l[l.length-1],{func:i,scope:o||a}),e.extend(l[0],{desc:a.translate(n),subpatterns:l.slice(1)})}function u(e){return e.altKey||e.ctrlKey||e.metaKey}function c(e){return"keydown"===e.type&&e.keyCode>=112&&e.keyCode<=123}function d(e,t){return!!t&&(t.ctrl==e.ctrlKey&&t.meta==e.metaKey&&(t.alt==e.altKey&&t.shift==e.shiftKey&&(!!(e.keyCode==t.keyCode||e.charCode&&e.charCode==t.charCode)&&(e.preventDefault(),!0))))}function f(e){return e.func?e.func.call(e.scope):null}var p=this,h={},m=[];a.on("keyup keypress keydown",function(e){!u(e)&&!c(e)||e.isDefaultPrevented()||(n(h,function(t){if(d(e,t))return m=t.subpatterns.slice(0),"keydown"==e.type&&f(t),!0}),d(e,m[0])&&(1===m.length&&"keydown"==e.type&&f(m[0]),m.shift()))}),p.add=function(t,i,o,s){var u;return u=o,"string"==typeof o?o=function(){a.execCommand(u,!1,null)}:e.isArray(u)&&(o=function(){a.execCommand(u[0],u[1],u[2])}),n(r(e.trim(t.toLowerCase())),function(e){var t=l(e,i,o,s);h[t.id]=t}),!0},p.remove=function(e){var t=l(e);return!!h[t.id]&&(delete h[t.id],!0)}}}),r($e,[u,m,z],function(e,t,n){return function(r,i){function o(e){var t,n;return n={"image/jpeg":"jpg","image/jpg":"jpg","image/gif":"gif","image/png":"png"},t=n[e.blob().type.toLowerCase()]||"dat",e.filename()+"."+t}function a(e,t){return e?e.replace(/\/$/,"")+"/"+t.replace(/^\//,""):t}function s(e){return{id:e.id,blob:e.blob,base64:e.base64,filename:n.constant(o(e))}}function l(e,t,n,r){var o,s;o=new XMLHttpRequest,o.open("POST",i.url),o.withCredentials=i.credentials,o.upload.onprogress=function(e){r(e.loaded/e.total*100)},o.onerror=function(){n("Image upload failed due to a XHR Transport error. Code: "+o.status)},o.onload=function(){var e;return 200!=o.status?void n("HTTP Error: "+o.status):(e=JSON.parse(o.responseText),e&&"string"==typeof e.location?void t(a(i.basePath,e.location)):void n("Invalid JSON: "+o.responseText))},s=new FormData,s.append("file",e.blob(),e.filename()),o.send(s)}function u(){return new e(function(e){e([])})}function c(e,t){return{url:t,blobInfo:e,status:!0}}function d(e,t){return{url:"",blobInfo:e,status:!1,error:t}}function f(e,n){t.each(y[e],function(e){e(n)}),delete y[e]}function p(t,n,i){return r.markPending(t.blobUri()),new e(function(e){var o,a,l=function(){};try{var u=function(){o&&(o.close(),a=l)},p=function(n){u(),r.markUploaded(t.blobUri(),n),f(t.blobUri(),c(t,n)),e(c(t,n))},h=function(n){u(),r.removeFailed(t.blobUri()),f(t.blobUri(),d(t,n)),e(d(t,n))};a=function(e){e<0||e>100||(o||(o=i()),o.progressBar.value(e))},n(s(t),p,h,a)}catch(m){e(d(t,m.message))}})}function h(e){return e===l}function m(t){var n=t.blobUri();return new e(function(e){y[n]=y[n]||[],y[n].push(e)})}function g(n,o){return n=t.grep(n,function(e){return!r.isUploaded(e.blobUri())}),e.all(t.map(n,function(e){return r.isPending(e.blobUri())?m(e):p(e,i.handler,o)}))}function v(e,t){return!i.url&&h(i.handler)?u():g(e,t)}var y={};return i=t.extend({credentials:!1,handler:l},i),{upload:v}}}),r(qe,[u],function(e){function t(t){return new e(function(e){var n=new XMLHttpRequest;n.open("GET",t,!0),n.responseType="blob",n.onload=function(){200==this.status&&e(this.response)},n.send()})}function n(e){var t,n;return e=decodeURIComponent(e).split(","),n=/data:([^;]+)/.exec(e[0]),n&&(t=n[1]),{type:t,data:e[1]}}function r(t){return new e(function(e){var r,i,o;t=n(t);try{r=atob(t.data)}catch(a){return void e(new Blob([]))}for(i=new Uint8Array(r.length),o=0;o0&&(n&&(l*=-1),r.left+=l,r.right+=l),r}function l(){var n,r,o,a,s;for(n=i("*[contentEditable=false]",t),a=0;a').css(l).appendTo(t),o&&m.addClass("mce-visual-caret-before"),d(),u=a.ownerDocument.createRange(),u.setStart(g,0),u.setEnd(g,0),u):(g=e.insertInline(a,o),u=a.ownerDocument.createRange(),s(g.nextSibling)?(u.setStart(g,0),u.setEnd(g,0)):(u.setStart(g,1),u.setEnd(g,1)),u)}function c(){l(),g&&(e.remove(g),g=null),m&&(m.remove(),m=null),clearInterval(h)}function d(){h=a.setInterval(function(){i("div.mce-visual-caret",t).toggleClass("mce-visual-caret-hidden")},500)}function f(){a.clearInterval(h)}function p(){return".mce-visual-caret {position: absolute;background-color: black;background-color: currentcolor;}.mce-visual-caret-hidden {display: none;}*[data-mce-caret] {position: absolute;left: -1000px;right: auto;top: 0;margin: 0;padding: 0;}"}var h,m,g;return{show:u,hide:c,getCss:p,destroy:f}}}),r(Qe,[h,_,W],function(e,t,n){function r(i){function o(t){return e.map(t,function(e){return e=n.clone(e),e.node=i,e})}if(e.isArray(i))return e.reduce(i,function(e,t){return e.concat(r(t))},[]);if(t.isElement(i))return o(i.getClientRects());if(t.isText(i)){var a=i.ownerDocument.createRange();return a.setStart(i,0),a.setEnd(i,i.data.length),o(a.getClientRects())}}return{getClientRects:r}}),r(Ze,[z,h,Qe,U,ie,oe,$,W],function(e,t,n,r,i,o,a,s){function l(e,t,n,o){for(;o=i.findNode(o,e,r.isEditableCaretCandidate,t);)if(n(o))return}function u(e,r,i,o,a,s){function u(o){var s,l,u;for(u=n.getClientRects(o),e==-1&&(u=u.reverse()),s=0;s0&&r(l,t.last(f))&&c++,l.line=c,a(l))return!0;f.push(l)}}var c=0,d,f=[],p;return(p=t.last(s.getClientRects()))?(d=s.getNode(),u(d),l(e,o,u,d),f):f}function c(e,t){return t.line>e}function d(e,t){return t.line===e}function f(e,n,r,i){function l(n){return 1==e?t.last(n.getClientRects()):t.last(n.getClientRects())}var u=new o(n),c,d,f,p,h=[],m=0,g,v;1==e?(c=u.next,d=s.isBelow,f=s.isAbove,p=a.after(i)):(c=u.prev,d=s.isAbove,f=s.isBelow,p=a.before(i)),v=l(p);do if(p.isVisible()&&(g=l(p),!f(g,v))){if(h.length>0&&d(g,t.last(h))&&m++,g=s.clone(g),g.position=p,g.line=m,r(g))return h;h.push(g)}while(p=c(p));return h}var p=e.curry,h=p(u,-1,s.isAbove,s.isBelow),m=p(u,1,s.isBelow,s.isAbove);return{upUntil:h,downUntil:m,positionsUntil:f,isAboveLine:p(c),isLine:p(d)}}),r(et,[z,h,_,Qe,W,ie,U],function(e,t,n,r,i,o,a){function s(e,t){return Math.abs(e.left-t)}function l(e,t){return Math.abs(e.right-t)}function u(e,n){function r(e,t){return e>=t.left&&e<=t.right}return t.reduce(e,function(e,t){var i,o;return i=Math.min(s(e,n),l(e,n)),o=Math.min(s(t,n),l(t,n)),r(n,t)?t:r(n,e)?e:o==i&&m(t.node)?t:o=e.top&&i<=e.bottom}),a=u(o,n),a&&(a=u(d(e,a),n),a&&m(a.node))?p(a,n):null}var m=n.isContentEditableFalse,g=o.findNode,v=e.curry;return{findClosestClientRect:u,findLineNodeRects:d,closestCaret:h}}),r(tt,[],function(){var e=function(e){var t,n,r,i;return i=e.getBoundingClientRect(),t=e.ownerDocument,n=t.documentElement,r=t.defaultView,{top:i.top+r.pageYOffset-n.clientTop,left:i.left+r.pageXOffset-n.clientLeft}},t=function(t){return t.inline?e(t.getBody()):{left:0,top:0}},n=function(e){var t=e.getBody();return e.inline?{left:t.scrollLeft,top:t.scrollTop}:{left:0,top:0}},r=function(e){var t=e.getBody(),n=e.getDoc().documentElement,r={left:t.scrollLeft,top:t.scrollTop},i={left:t.scrollLeft||n.scrollLeft,top:t.scrollTop||n.scrollTop};return e.inline?r:i},i=function(t,n){if(n.target.ownerDocument!==t.getDoc()){var i=e(t.getContentAreaContainer()),o=r(t);return{left:n.pageX-i.left+o.left,top:n.pageY-i.top+o.top}}return{left:n.pageX,top:n.pageY}},o=function(e,t,n){return{pageX:n.left-e.left+t.left,pageY:n.top-e.top+t.top}},a=function(e,r){return o(t(e),n(e),i(e,r))};return{calc:a}}),r(nt,[_,h,z,c,w,tt],function(e,t,n,r,i,o){var a=e.isContentEditableFalse,s=e.isContentEditableTrue,l=function(e,t){return a(t)&&t!==e},u=function(e,t,n){return t!==n&&!e.dom.isChildOf(t,n)&&!a(t)},c=function(e){var t=e.cloneNode(!0);return t.removeAttribute("data-mce-selected"),t},d=function(e,t,n,r){var i=t.cloneNode(!0);e.dom.setStyles(i,{width:n,height:r}),e.dom.setAttrib(i,"data-mce-selected",null);var o=e.dom.create("div",{"class":"mce-drag-container","data-mce-bogus":"all",unselectable:"on",contenteditable:"false"});return e.dom.setStyles(o,{position:"absolute",opacity:.5,overflow:"hidden",border:0,padding:0,margin:0,width:n,height:r}),e.dom.setStyles(i,{margin:0,boxSizing:"border-box"}),o.appendChild(i),o},f=function(e,t){e.parentNode!==t&&t.appendChild(e)},p=function(e,t,n,r,i,o){var a=0,s=0;e.style.left=t.pageX+"px",e.style.top=t.pageY+"px",t.pageX+n>i&&(a=t.pageX+n-i),t.pageY+r>o&&(s=t.pageY+r-o),e.style.width=n-a+"px",e.style.height=r-s+"px"},h=function(e){e&&e.parentNode&&e.parentNode.removeChild(e)},m=function(e){return 0===e.button},g=function(e){return e.element},v=function(e,t){return{pageX:t.pageX-e.relX,pageY:t.pageY+5}},y=function(e,r){return function(i){if(m(i)){var o=t.find(r.dom.getParents(i.target),n.or(a,s));if(l(r.getBody(),o)){var u=r.dom.getPos(o),c=r.getBody(),f=r.getDoc().documentElement;e.element=o,e.screenX=i.screenX,e.screenY=i.screenY,e.maxX=(r.inline?c.scrollWidth:f.offsetWidth)-2,e.maxY=(r.inline?c.scrollHeight:f.offsetHeight)-2,e.relX=i.pageX-u.x,e.relY=i.pageY-u.y,e.width=o.offsetWidth,e.height=o.offsetHeight,e.ghost=d(r,o,e.width,e.height)}}}},b=function(e,t){var n=r.throttle(function(e,n){t._selectionOverrides.hideFakeCaret(),t.selection.placeCaretAt(e,n)},0);return function(r){var i=Math.max(Math.abs(r.screenX-e.screenX),Math.abs(r.screenY-e.screenY));if(g(e)&&!e.dragging&&i>10){var a=t.fire("dragstart",{target:e.element});if(a.isDefaultPrevented())return;e.dragging=!0,t.focus()}if(e.dragging){var s=v(e,o.calc(t,r));f(e.ghost,t.getBody()),p(e.ghost,s,e.width,e.height,e.maxX,e.maxY),n(r.clientX,r.clientY)}}},C=function(e){var t=e.getSel().getRangeAt(0),n=t.startContainer;return 3===n.nodeType?n.parentNode:n},x=function(e,t){return function(n){if(e.dragging&&u(t,C(t.selection),e.element)){var r=c(e.element),i=t.fire("drop",{targetClone:r,clientX:n.clientX,clientY:n.clientY});i.isDefaultPrevented()||(r=i.targetClone,t.undoManager.transact(function(){h(e.element),t.insertContent(t.dom.getOuterHTML(r)),t._selectionOverrides.hideFakeCaret()}))}E(e)}},w=function(e,t){return function(){E(e),e.dragging&&t.fire("dragend")}},E=function(e){e.dragging=!1,e.element=null,h(e.ghost)},N=function(e){var t={},n,r,o,a,s,l;n=i.DOM,l=document,r=y(t,e),o=b(t,e),a=x(t,e),s=w(t,e),e.on("mousedown",r),e.on("mousemove",o),e.on("mouseup",a),n.bind(l,"mousemove",o),n.bind(l,"mouseup",s),e.on("remove",function(){n.unbind(l,"mousemove",o),n.unbind(l,"mouseup",s)})},_=function(e){e.on("drop",function(t){var n="undefined"!=typeof t.clientX?e.getDoc().elementFromPoint(t.clientX,t.clientY):null;(a(n)||a(e.dom.getContentEditableParent(n)))&&t.preventDefault()})},S=function(e){N(e),_(e)};return{init:S}}),r(rt,[d,oe,$,k,ie,Je,Ze,et,_,T,W,I,z,h,c,nt],function(e,t,n,r,i,o,a,s,l,u,c,d,f,p,h,m){function g(e,t){for(;t=e(t);)if(t.isVisible())return t;return t}function v(u){function v(e){return u.dom.hasClass(e,"mce-offscreen-selection")}function _(){var e=u.dom.get(le);return e?e.getElementsByTagName("*")[0]:e}function S(e){return u.dom.isBlock(e)}function k(e){e&&u.selection.setRng(e)}function T(){return u.selection.getRng()}function R(e,t){u.selection.scrollIntoView(e,t)}function A(e,t,n){var r;return r=u.fire("ShowCaret",{target:t,direction:e,before:n}),r.isDefaultPrevented()?null:(R(t,e===-1),se.show(n,t))}function B(e){var t;return t=u.fire("BeforeObjectSelected",{target:e}),t.isDefaultPrevented()?null:D(e)}function D(e){var t=e.ownerDocument.createRange();return t.selectNode(e),t}function L(e,t){var n=i.isInSameBlock(e,t);return!(n||!l.isBr(e.getNode()))||n}function M(e,t){return t=i.normalizeRange(e,re,t),e==-1?n.fromRangeStart(t):n.fromRangeEnd(t)}function P(e){return r.isCaretContainerBlock(e.startContainer)}function O(e,t,n,r){var i,o,a,s;return!r.collapsed&&(i=N(r),C(i))?A(e,i,e==-1):(s=P(r),o=M(e,r),n(o)?B(o.getNode(e==-1)):(o=t(o))?n(o)?A(e,o.getNode(e==-1),1==e):(a=t(o),n(a)&&L(o,a)?A(e,a.getNode(e==-1),1==e):s?$(o.toRange()):null):s?r:null)}function H(e,t,n){var r,i,o,l,u,c,d,f,h;if(h=N(n),r=M(e,n),i=t(re,a.isAboveLine(1),r),o=p.filter(i,a.isLine(1)),u=p.last(r.getClientRects()),E(r)&&(h=r.getNode()),w(r)&&(h=r.getNode(!0)),!u)return null;if(c=u.left,l=s.findClosestClientRect(o,c),l&&C(l.node))return d=Math.abs(c-l.left),f=Math.abs(c-l.right),A(e,l.node,d=11)&&(t.innerHTML='
    '),t}var o,a,s;if(r.collapsed&&u.settings.forced_root_block){if(o=u.dom.getParent(r.startContainer,"PRE"),!o)return;a=1==t?oe(n.fromRangeStart(r)):ae(n.fromRangeStart(r)),a||(s=i(),1==t?u.$(o).after(s):u.$(o).before(s),u.selection.select(s,!0),u.selection.collapse())}}function F(e,t,n,r){var i;return(i=O(e,t,n,r))?i:(i=I(e,r),i?i:null)}function z(e,t,n){var r;return(r=H(e,t,n))?r:(r=I(e,n),r?r:null)}function U(){return ce("*[data-mce-caret]")[0]}function W(e){e.hasAttribute("data-mce-caret")&&(r.showCaretContainerBlock(e),k(T()),R(e[0]))}function V(e){var t,r;return e=i.normalizeRange(1,re,e),t=n.fromRangeStart(e),C(t.getNode())?A(1,t.getNode(),!t.isAtEnd()):C(t.getNode(!0))?A(1,t.getNode(!0),!1):(r=u.dom.getParent(t.getNode(),f.or(C,b)),C(r)?A(1,r,!1):null)}function $(e){var t;return e&&e.collapsed?(t=V(e),t?t:e):e}function q(e){var t,i,o,a;return C(e)?(C(e.previousSibling)&&(o=e.previousSibling),i=ae(n.before(e)),i||(t=oe(n.after(e))),t&&x(t.getNode())&&(a=t.getNode()),r.remove(e.previousSibling),r.remove(e.nextSibling),u.dom.remove(e),u.dom.isEmpty(u.getBody())?(u.setContent(""),void u.focus()):o?n.after(o).toRange():a?n.before(a).toRange():i?i.toRange():t?t.toRange():null):null}function j(e){var t=u.schema.getTextBlockElements();return e.nodeName in t}function Y(e){return u.dom.isEmpty(e)}function X(e,t,r){var i=u.dom,o,a,s,l;if(o=i.getParent(t.getNode(),i.isBlock),a=i.getParent(r.getNode(),i.isBlock),e===-1){if(l=r.getNode(!0),w(r)&&S(l))return j(o)?(Y(o)&&i.remove(o),n.after(l).toRange()):q(r.getNode(!0))}else if(l=t.getNode(),E(t)&&S(l))return j(a)?(Y(a)&&i.remove(a),n.before(l).toRange()):q(t.getNode());if(o===a||!j(o)||!j(a))return null;for(;s=o.firstChild;)a.appendChild(s);return u.dom.remove(o),r.toRange()}function K(e,t,n,i){var o,a,s,l;return!i.collapsed&&(o=N(i),C(o))?$(q(o)):(a=M(e,i),n(a)&&r.isCaretContainerBlock(i.startContainer)?(l=e==-1?ie.prev(a):ie.next(a),l?$(l.toRange()):i):t(a)?$(q(a.getNode(e==-1))):(s=e==-1?ie.prev(a):ie.next(a),t(s)?e===-1?X(e,a,s):X(e,s,a):void 0))}function G(){function i(e,t){var n=t(T());n&&!e.isDefaultPrevented()&&(e.preventDefault(),k(n))}function o(e){for(var t=u.getBody();e&&e!=t;){if(b(e)||C(e))return e;e=e.parentNode}return null}function l(e,t,n){return!n.collapsed&&p.reduce(n.getClientRects(),function(n,r){return n||c.containsXY(r,e,t)},!1)}function f(e){var t=!1;e.on("touchstart",function(){t=!1}),e.on("touchmove",function(){t=!0}),e.on("touchend",function(e){var n=o(e.target);C(n)&&(t||(e.preventDefault(),Z(B(n))))})}function g(){var e,t=o(u.selection.getNode());b(t)&&S(t)&&u.dom.isEmpty(t)&&(e=u.dom.create("br",{"data-mce-bogus":"1"}),u.$(t).empty().append(e),u.selection.setRng(n.before(e).toRange()))}function x(e){var t=U();if(t)return"compositionstart"==e.type?(e.preventDefault(),e.stopPropagation(),void W(t)):void(r.hasContent(t)&&W(t))}function N(e){var t;switch(e.keyCode){case d.DELETE:t=g();break;case d.BACKSPACE:t=g()}t&&e.preventDefault()}var R=y(F,1,oe,E),D=y(F,-1,ae,w),L=y(K,1,E,w),M=y(K,-1,w,E),P=y(z,-1,a.upUntil),O=y(z,1,a.downUntil);u.on("mouseup",function(){var e=T();e.collapsed&&k(V(e))}),u.on("click",function(e){var t;t=o(e.target),t&&(C(t)&&(e.preventDefault(),u.focus()),b(t)&&u.dom.isChildOf(t,u.selection.getNode())&&ee())}),u.on("blur NewBlock",function(){ee(),ne()});var H=function(e){var r=new t(e);if(!e.firstChild)return!1;var i=n.before(e.firstChild),o=r.next(i);return o&&!E(o)&&!w(o)},I=function(e,t){var n=u.dom.getParent(e,u.dom.isBlock),r=u.dom.getParent(t,u.dom.isBlock);return n===r},j=function(e){return!(e.keyCode>=112&&e.keyCode<=123)},Y=function(e,t){var n=u.dom.getParent(e,u.dom.isBlock),r=u.dom.getParent(t,u.dom.isBlock);return n&&!I(n,r)&&H(n)};f(u),u.on("mousedown",function(e){var t;if(t=o(e.target))C(t)?(e.preventDefault(),Z(B(t))):l(e.clientX,e.clientY,u.selection.getRng())||u.selection.placeCaretAt(e.clientX,e.clientY);else{ee(),ne();var n=s.closestCaret(re,e.clientX,e.clientY);n&&(Y(e.target,n.node)||(e.preventDefault(),u.getBody().focus(),k(A(1,n.node,n.before))))}}),u.on("keydown",function(e){if(!d.modifierPressed(e))switch(e.keyCode){case d.RIGHT:i(e,R);break;case d.DOWN:i(e,O);break;case d.LEFT:i(e,D);break;case d.UP:i(e,P);break;case d.DELETE:i(e,L);break;case d.BACKSPACE:i(e,M);break;default:C(u.selection.getNode())&&j(e)&&e.preventDefault()}}),u.on("keyup compositionstart",function(e){x(e),N(e)},!0),u.on("cut",function(){var e=u.selection.getNode();C(e)&&h.setEditorTimeout(u,function(){k($(q(e)))})}),u.on("getSelectionRange",function(e){var t=e.range;if(ue){if(!ue.parentNode)return void(ue=null);t=t.cloneRange(),t.selectNode(ue),e.range=t}}),u.on("setSelectionRange",function(e){var t;t=Z(e.range),t&&(e.range=t)}),u.on("AfterSetSelectionRange",function(e){var t=e.range;Q(t)||ne(),v(t.startContainer.parentNode)||ee()}),u.on("focus",function(){h.setEditorTimeout(u,function(){u.selection.setRng($(u.selection.getRng()))},0)}),u.on("copy",function(t){var n=t.clipboardData;if(!t.isDefaultPrevented()&&t.clipboardData&&!e.ie){var r=_();r&&(t.preventDefault(),n.clearData(),n.setData("text/html",r.outerHTML),n.setData("text/plain",r.outerText))}}),m.init(u)}function J(){var e=u.contentStyles,t=".mce-content-body";e.push(se.getCss()),e.push(t+" .mce-offscreen-selection {position: absolute;left: -9999999999px;max-width: 1000000px;}"+t+" *[contentEditable=false] {cursor: default;}"+t+" *[contentEditable=true] {cursor: text;}")}function Q(e){return r.isCaretContainer(e.startContainer)||r.isCaretContainer(e.endContainer)}function Z(t){var n,r=u.$,i=u.dom,o,a,s,l,c,d,f,p,h;if(!t)return null;if(t.collapsed){if(!Q(t)){if(f=M(1,t),C(f.getNode()))return A(1,f.getNode(),!f.isAtEnd());if(C(f.getNode(!0)))return A(1,f.getNode(!0),!1)}return null}return s=t.startContainer,l=t.startOffset,c=t.endOffset,3==s.nodeType&&0==l&&C(s.parentNode)&&(s=s.parentNode,l=i.nodeIndex(s),s=s.parentNode),1!=s.nodeType?null:(c==l+1&&(n=s.childNodes[l]),C(n)?(p=h=n.cloneNode(!0),d=u.fire("ObjectSelected",{target:n,targetClone:p}),d.isDefaultPrevented()?null:(p=d.targetClone,o=r("#"+le),0===o.length&&(o=r('
    ').attr("id",le),o.appendTo(u.getBody())),t=u.dom.createRng(),p===h&&e.ie?(o.empty().append('

    \xa0

    ').append(p),t.setStartAfter(o[0].firstChild.firstChild),t.setEndAfter(p)):(o.empty().append("\xa0").append(p).append("\xa0"),t.setStart(o[0].firstChild,1),t.setEnd(o[0].lastChild,0)),o.css({top:i.getPos(n,u.getBody()).y}),o[0].focus(),a=u.selection.getSel(),a.removeAllRanges(),a.addRange(t),u.$("*[data-mce-selected]").removeAttr("data-mce-selected"),n.setAttribute("data-mce-selected",1),ue=n,ne(),t)):null)}function ee(){ue&&(ue.removeAttribute("data-mce-selected"),u.$("#"+le).remove(),ue=null)}function te(){se.destroy(),ue=null}function ne(){se.hide()}var re=u.getBody(),ie=new t(re),oe=y(g,ie.next),ae=y(g,ie.prev),se=new o(u.getBody(),S),le="sel-"+u.dom.uniqueId(),ue,ce=u.$;return e.ceFalse&&(G(),J()),{showBlockCaretContainer:W,hideFakeCaret:ne,destroy:te}}var y=f.curry,b=l.isContentEditableTrue,C=l.isContentEditableFalse,x=l.isElement,w=i.isAfterContentEditableFalse,E=i.isBeforeContentEditableFalse,N=u.getSelectedNode;return v}),r(it,[],function(){var e=0,t=function(){var e=function(){return Math.round(4294967295*Math.random()).toString(36)},t=(new Date).getTime();return"s"+t.toString(36)+e()+e()+e()},n=function(n){return n+e++ +t()};return{uuid:n}}),r(ot,[],function(){var e=function(e,t,n){var r=e.sidebars?e.sidebars:[];r.push({name:t,settings:n}),e.sidebars=r};return{add:e}}),r(at,[w,g,N,R,A,O,P,Y,J,te,ne,re,le,ue,E,f,Le,Ie,B,L,ze,d,m,c,Ue,We,Ve,Ge,rt,it,ot,Ke],function(e,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v,y,b,C,x,w,E,N,_,S,k,T,R,A,B,D){function L(e,t,i){var o=this,a,s,l;a=o.documentBaseUrl=i.documentBaseURL,s=i.baseURI,l=i.defaultSettings,t=H({id:e,theme:"modern",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:a,add_form_submit_trigger:!0,submit_patch:!0,add_unload_trigger:!0,convert_urls:!0,relative_urls:!0,remove_script_host:!0,object_resizing:!0,doctype:"",visual:!0,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",forced_root_block:"p",hidden_input:!0,padd_empty_editor:!0,render_ui:!0,indentation:"30px",inline_styles:!0,convert_fonts_to_spans:!0,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,th,ul,ol,li,dl,dt,dd,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,figcaption,option,optgroup,datalist",validate:!0,entity_encoding:"named",url_converter:o.convertURL,url_converter_scope:o,ie7_compat:!0},l,t),l&&l.external_plugins&&t.external_plugins&&(t.external_plugins=H({},l.external_plugins,t.external_plugins)),o.settings=t,r.language=t.language||"en",r.languageLoad=t.language_load,r.baseURL=i.baseURL,o.id=t.id=e,o.setDirty(!1),o.plugins={},o.documentBaseURI=new h(t.document_base_url||a,{base_uri:s}),o.baseURI=s,o.contentCSS=[],o.contentStyles=[],o.shortcuts=new k(o),o.loadedCSS={},o.editorCommands=new p(o),o.suffix=i.suffix,o.editorManager=i,o.inline=t.inline,o.settings.content_editable=o.inline,t.cache_suffix&&(w.cacheSuffix=t.cache_suffix.replace(/^[\?\&]+/,"")),t.override_viewport===!1&&(w.overrideViewPort=!1),i.fire("SetupEditor",o),o.execCallback("setup",o),o.$=n.overrideDefaults(function(){return{context:o.inline?o.getBody():o.getDoc(),element:o.getBody()}})}var M=e.DOM,P=r.ThemeManager,O=r.PluginManager,H=E.extend,I=E.each,F=E.explode,z=E.inArray,U=E.trim,W=E.resolve,V=g.Event,$=w.gecko,q=w.ie;return L.prototype={render:function(){function e(){M.unbind(window,"ready",e),n.render()}function t(){var e=m.ScriptLoader;if(r.language&&"en"!=r.language&&!r.language_url&&(r.language_url=n.editorManager.baseURL+"/langs/"+r.language+".js"),r.language_url&&e.add(r.language_url),r.theme&&"function"!=typeof r.theme&&"-"!=r.theme.charAt(0)&&!P.urls[r.theme]){var t=r.theme_url;t=t?n.documentBaseURI.toAbsolute(t):"themes/"+r.theme+"/theme"+o+".js",P.load(r.theme,t)}E.isArray(r.plugins)&&(r.plugins=r.plugins.join(" ")),I(r.external_plugins,function(e,t){O.load(t,e),r.plugins+=" "+t}),I(r.plugins.split(/[ ,]/),function(e){if(e=U(e),e&&!O.urls[e])if("-"==e.charAt(0)){e=e.substr(1,e.length);var t=O.dependencies(e);I(t,function(e){var t={prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"};e=O.createUrl(t,e),O.load(e.resource,e)})}else O.load(e,{prefix:"plugins/",resource:e,suffix:"/plugin"+o+".js"})}),e.loadQueue(function(){n.removed||n.init()},n,function(e){D.pluginLoadError(n,e[0]),n.removed||n.init()})}var n=this,r=n.settings,i=n.id,o=n.suffix;if(!V.domLoaded)return void M.bind(window,"ready",e);if(n.getElement()&&w.contentEditable){r.inline?n.inline=!0:(n.orgVisibility=n.getElement().style.visibility,n.getElement().style.visibility="hidden");var a=n.getElement().form||M.getParent(i,"form");a&&(n.formElement=a,r.hidden_input&&!/TEXTAREA|INPUT/i.test(n.getElement().nodeName)&&(M.insertAfter(M.create("input",{type:"hidden",name:i}),i),n.hasHiddenInput=!0),n.formEventDelegate=function(e){n.fire(e.type,e)},M.bind(a,"submit reset",n.formEventDelegate),n.on("reset",function(){n.setContent(n.startContent,{format:"raw"})}),!r.submit_patch||a.submit.nodeType||a.submit.length||a._mceOldSubmit||(a._mceOldSubmit=a.submit,a.submit=function(){return n.editorManager.triggerSave(),n.setDirty(!1),a._mceOldSubmit(a)})),n.windowManager=new v(n),n.notificationManager=new y(n),"xml"==r.encoding&&n.on("GetContent",function(e){e.save&&(e.content=M.encode(e.content))}),r.add_form_submit_trigger&&n.on("submit",function(){n.initialized&&n.save()}),r.add_unload_trigger&&(n._beforeUnload=function(){!n.initialized||n.destroyed||n.isHidden()||n.save({format:"raw",no_events:!0,set_dirty:!1})},n.editorManager.on("BeforeUnload",n._beforeUnload)),n.editorManager.add(n),t()}},init:function(){function e(n){var r=O.get(n),i,o;if(i=O.urls[n]||t.documentBaseUrl.replace(/\/$/,""),n=U(n),r&&z(m,n)===-1){if(I(O.dependencies(n),function(t){e(t)}),t.plugins[n])return;o=new r(t,i,t.$),t.plugins[n]=o,o.init&&(o.init(t,i),m.push(n))}}var t=this,n=t.settings,r=t.getElement(),i,o,a,s,l,u,c,d,f,p,h,m=[];if(t.rtl=n.rtl_ui||t.editorManager.i18n.rtl,t.editorManager.i18n.setCode(n.language),n.aria_label=n.aria_label||M.getAttrib(r,"aria-label",t.getLang("aria.rich_text_area")),t.fire("ScriptsLoaded"),n.theme&&("function"!=typeof n.theme?(n.theme=n.theme.replace(/-/,""),u=P.get(n.theme),t.theme=new u(t,P.urls[n.theme]),t.theme.init&&t.theme.init(t,P.urls[n.theme]||t.documentBaseUrl.replace(/\/$/,""),t.$)):t.theme=n.theme),I(n.plugins.replace(/\-/g,"").split(/[ ,]/),e),n.render_ui&&t.theme&&(t.orgDisplay=r.style.display,"function"!=typeof n.theme?(i=n.width||r.style.width||r.offsetWidth,o=n.height||r.style.height||r.offsetHeight,a=n.min_height||100,p=/^[0-9\.]+(|px)$/i,p.test(""+i)&&(i=Math.max(parseInt(i,10),100)),p.test(""+o)&&(o=Math.max(parseInt(o,10),a)),l=t.theme.renderUI({targetNode:r,width:i,height:o,deltaWidth:n.delta_width,deltaHeight:n.delta_height}),n.content_editable||(o=(l.iframeHeight||o)+("number"==typeof o?l.deltaHeight||0:""),o",n.document_base_url!=t.documentBaseUrl&&(t.iframeHTML+=''),!w.caretAfter&&n.ie7_compat&&(t.iframeHTML+=''),t.iframeHTML+='',!/#$/.test(document.location.href))for(h=0;h',t.loadedCSS[g]=!0}d=n.body_id||"tinymce",d.indexOf("=")!=-1&&(d=t.getParam("body_id","","hash"),d=d[t.id]||d),f=n.body_class||"",f.indexOf("=")!=-1&&(f=t.getParam("body_class","","hash"),f=f[t.id]||""),n.content_security_policy&&(t.iframeHTML+=''),t.iframeHTML+='
    ';var v='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinymce.get("'+t.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody(true);})()';document.domain!=location.hostname&&w.ie&&w.ie<12&&(c=v);var y=M.create("iframe",{id:t.id+"_ifr",frameBorder:"0",allowTransparency:"true",title:t.editorManager.translate("Rich Text Area. Press ALT-F9 for menu. Press ALT-F10 for toolbar. Press ALT-0 for help"),style:{width:"100%",height:o,display:"block"}});if(y.onload=function(){y.onload=null,t.fire("load")},M.setAttrib(y,"src",c||'javascript:""'),t.contentAreaContainer=l.iframeContainer,t.iframeElement=y,s=M.add(l.iframeContainer,y),q)try{t.getDoc()}catch(b){s.src=c=v}l.editorContainer&&(M.get(l.editorContainer).style.display=t.orgDisplay,t.hidden=M.isHidden(l.editorContainer)),t.getElement().style.display="none",M.setAttrib(t.id,"aria-hidden",!0),c||t.initContentBody(),r=s=l=null},initContentBody:function(t){var n=this,r=n.settings,s=n.getElement(),p=n.getDoc(),h,m;r.inline||(n.getElement().style.visibility=n.orgVisibility),t||r.content_editable||(p.open(),p.write(n.iframeHTML),p.close()),r.content_editable&&(n.on("remove",function(){var e=this.getBody();M.removeClass(e,"mce-content-body"),M.removeClass(e,"mce-edit-focus"),M.setAttrib(e,"contentEditable",null)}),M.addClass(s,"mce-content-body"),n.contentDocument=p=r.content_document||document,n.contentWindow=r.content_window||window,n.bodyElement=s,r.content_document=r.content_window=null,r.root_name=s.nodeName.toLowerCase()),h=n.getBody(),h.disabled=!0,n.readonly=r.readonly,n.readonly||(n.inline&&"static"==M.getStyle(h,"position",!0)&&(h.style.position="relative"),h.contentEditable=n.getParam("content_editable_state",!0)),h.disabled=!1,n.editorUpload=new T(n),n.schema=new b(r),n.dom=new e(p,{keep_values:!0,url_converter:n.convertURL,url_converter_scope:n,hex_colors:r.force_hex_style_colors,class_filter:r.class_filter,update_styles:!0,root_element:n.inline?n.getBody():null,collect:r.content_editable,schema:n.schema,onSetAttrib:function(e){n.fire("SetAttrib",e)}}),n.parser=new C(r,n.schema),n.parser.addAttributeFilter("src,href,style,tabindex",function(e,t){for(var r=e.length,i,o=n.dom,a,s;r--;)if(i=e[r],a=i.attr(t),s="data-mce-"+t,!i.attributes.map[s]){if(0===a.indexOf("data:")||0===a.indexOf("blob:"))continue;"style"===t?(a=o.serializeStyle(o.parseStyle(a),i.name),a.length||(a=null),i.attr(s,a),i.attr(t,a)):"tabindex"===t?(i.attr(s,a),i.attr(t,null)):i.attr(s,n.convertURL(a,t,i.name))}}),n.parser.addNodeFilter("script",function(e){for(var t=e.length,n,r;t--;)n=e[t],r=n.attr("type")||"no/type", -0!==r.indexOf("mce-")&&n.attr("type","mce-"+r)}),n.parser.addNodeFilter("#cdata",function(e){for(var t=e.length,n;t--;)n=e[t],n.type=8,n.name="#comment",n.value="[CDATA["+n.value+"]]"}),n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(e){for(var t=e.length,r,i=n.schema.getNonEmptyElements();t--;)r=e[t],r.isEmpty(i)&&0===r.getAll("br").length&&(r.append(new o("br",1)).shortEnded=!0)}),n.serializer=new a(r,n),n.selection=new l(n.dom,n.getWin(),n.serializer,n),n.formatter=new u(n),n.undoManager=new c(n),n.forceBlocks=new f(n),n.enterKey=new d(n),n._nodeChangeDispatcher=new i(n),n._selectionOverrides=new R(n),n.fire("PreInit"),r.browser_spellcheck||r.gecko_spellcheck||(p.body.spellcheck=!1,M.setAttrib(h,"spellcheck","false")),n.quirks=new x(n),n.fire("PostRender"),r.directionality&&(h.dir=r.directionality),r.nowrap&&(h.style.whiteSpace="nowrap"),r.protect&&n.on("BeforeSetContent",function(e){I(r.protect,function(t){e.content=e.content.replace(t,function(e){return""})})}),n.on("SetContent",function(){n.addVisual(n.getBody())}),r.padd_empty_editor&&n.on("PostProcess",function(e){e.content=e.content.replace(/^(]*>( | |\s|\u00a0|
    |)<\/p>[\r\n]*|
    [\r\n]*)$/,"")}),n.load({initial:!0,format:"html"}),n.startContent=n.getContent({format:"raw"}),n.initialized=!0,n.bindPendingEventDelegates(),n.fire("init"),n.focus(!0),n.nodeChanged({initial:!0}),n.execCallback("init_instance_callback",n),n.on("compositionstart compositionend",function(e){n.composing="compositionstart"===e.type}),n.contentStyles.length>0&&(m="",I(n.contentStyles,function(e){m+=e+"\r\n"}),n.dom.addStyle(m)),I(n.contentCSS,function(e){n.loadedCSS[e]||(n.dom.loadCSS(e),n.loadedCSS[e]=!0)}),r.auto_focus&&N.setEditorTimeout(n,function(){var e;e=r.auto_focus===!0?n:n.editorManager.get(r.auto_focus),e.destroyed||e.focus()},100),s=p=h=null},focus:function(e){function t(e){return n.dom.getParent(e,function(e){return"true"===n.dom.getContentEditable(e)})}var n=this,r=n.selection,i=n.settings.content_editable,o,a,s=n.getDoc(),l=n.getBody(),u;if(!e){if(o=r.getRng(),o.item&&(a=o.item(0)),n.quirks.refreshContentEditable(),u=t(r.getNode()),n.$.contains(l,u))return u.focus(),r.normalize(),void n.editorManager.setActive(n);if(i||(w.opera||n.getBody().focus(),n.getWin().focus()),$||i){if(l.setActive)try{l.setActive()}catch(c){l.focus()}else l.focus();i&&r.normalize()}a&&a.ownerDocument==s&&(o=s.body.createControlRange(),o.addElement(a),o.select())}n.editorManager.setActive(n)},execCallback:function(e){var t=this,n=t.settings[e],r;if(n)return t.callbackLookup&&(r=t.callbackLookup[e])&&(n=r.func,r=r.scope),"string"==typeof n&&(r=n.replace(/\.\w+$/,""),r=r?W(r):0,n=W(n),t.callbackLookup=t.callbackLookup||{},t.callbackLookup[e]={func:n,scope:r}),n.apply(r||t,Array.prototype.slice.call(arguments,1))},translate:function(e){var t=this.settings.language||"en",n=this.editorManager.i18n;return e?(e=n.data[t+"."+e]||e.replace(/\{\#([^\}]+)\}/g,function(e,r){return n.data[t+"."+r]||"{#"+r+"}"}),this.editorManager.translate(e)):""},getLang:function(e,n){return this.editorManager.i18n.data[(this.settings.language||"en")+"."+e]||(n!==t?n:"{#"+e+"}")},getParam:function(e,t,n){var r=e in this.settings?this.settings[e]:t,i;return"hash"===n?(i={},"string"==typeof r?I(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(e){e=e.split("="),e.length>1?i[U(e[0])]=U(e[1]):i[U(e[0])]=U(e)}):i=r,i):r},nodeChanged:function(e){this._nodeChangeDispatcher.nodeChanged(e)},addButton:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),t.text||t.icon||(t.icon=e),n.buttons=n.buttons||{},t.tooltip=t.tooltip||t.title,n.buttons[e]=t},addSidebar:function(e,t){return B.add(this,e,t)},addMenuItem:function(e,t){var n=this;t.cmd&&(t.onclick=function(){n.execCommand(t.cmd)}),n.menuItems=n.menuItems||{},n.menuItems[e]=t},addContextToolbar:function(e,t){var n=this,r;n.contextToolbars=n.contextToolbars||[],"string"==typeof e&&(r=e,e=function(e){return n.dom.is(e,r)}),n.contextToolbars.push({id:A.uuid("mcet"),predicate:e,items:t})},addCommand:function(e,t,n){this.editorCommands.addCommand(e,t,n)},addQueryStateHandler:function(e,t,n){this.editorCommands.addQueryStateHandler(e,t,n)},addQueryValueHandler:function(e,t,n){this.editorCommands.addQueryValueHandler(e,t,n)},addShortcut:function(e,t,n,r){this.shortcuts.add(e,t,n,r)},execCommand:function(e,t,n,r){return this.editorCommands.execCommand(e,t,n,r)},queryCommandState:function(e){return this.editorCommands.queryCommandState(e)},queryCommandValue:function(e){return this.editorCommands.queryCommandValue(e)},queryCommandSupported:function(e){return this.editorCommands.queryCommandSupported(e)},show:function(){var e=this;e.hidden&&(e.hidden=!1,e.inline?e.getBody().contentEditable=!0:(M.show(e.getContainer()),M.hide(e.id)),e.load(),e.fire("show"))},hide:function(){var e=this,t=e.getDoc();e.hidden||(q&&t&&!e.inline&&t.execCommand("SelectAll"),e.save(),e.inline?(e.getBody().contentEditable=!1,e==e.editorManager.focusedEditor&&(e.editorManager.focusedEditor=null)):(M.hide(e.getContainer()),M.setStyle(e.id,"display",e.orgDisplay)),e.hidden=!0,e.fire("hide"))},isHidden:function(){return!!this.hidden},setProgressState:function(e,t){this.fire("ProgressState",{state:e,time:t})},load:function(e){var n=this,r=n.getElement(),i;if(r)return e=e||{},e.load=!0,i=n.setContent(r.value!==t?r.value:r.innerHTML,e),e.element=r,e.no_events||n.fire("LoadContent",e),e.element=r=null,i},save:function(e){var t=this,n=t.getElement(),r,i;if(n&&t.initialized)return e=e||{},e.save=!0,e.element=n,r=e.content=t.getContent(e),e.no_events||t.fire("SaveContent",e),"raw"==e.format&&t.fire("RawSaveContent",e),r=e.content,/TEXTAREA|INPUT/i.test(n.nodeName)?n.value=r:(t.inline||(n.innerHTML=r),(i=M.getParent(t.id,"form"))&&I(i.elements,function(e){if(e.name==t.id)return e.value=r,!1})),e.element=n=null,e.set_dirty!==!1&&t.setDirty(!1),r},setContent:function(e,t){var n=this,r=n.getBody(),i,o;return t=t||{},t.format=t.format||"html",t.set=!0,t.content=e,t.no_events||n.fire("BeforeSetContent",t),e=t.content,0===e.length||/^\s+$/.test(e)?(o=q&&q<11?"":'
    ',"TABLE"==r.nodeName?e=""+o+"":/^(UL|OL)$/.test(r.nodeName)&&(e="
  • "+o+"
  • "),i=n.settings.forced_root_block,i&&n.schema.isValidChild(r.nodeName.toLowerCase(),i.toLowerCase())?(e=o,e=n.dom.createHTML(i,n.settings.forced_root_block_attrs,e)):q||e||(e='
    '),n.dom.setHTML(r,e),n.fire("SetContent",t)):("raw"!==t.format&&(e=new s({validate:n.validate},n.schema).serialize(n.parser.parse(e,{isRootContent:!0}))),t.content=U(e),n.dom.setHTML(r,t.content),t.no_events||n.fire("SetContent",t)),t.content},getContent:function(e){var t=this,n,r=t.getBody();return e=e||{},e.format=e.format||"html",e.get=!0,e.getInner=!0,e.no_events||t.fire("BeforeGetContent",e),n="raw"==e.format?E.trim(t.serializer.getTrimmedContent()):"text"==e.format?r.innerText||r.textContent:t.serializer.serialize(r,e),"text"!=e.format?e.content=U(n):e.content=n,e.no_events||t.fire("GetContent",e),e.content},insertContent:function(e,t){t&&(e=H({content:e},t)),this.execCommand("mceInsertContent",!1,e)},isDirty:function(){return!this.isNotDirty},setDirty:function(e){var t=!this.isNotDirty;this.isNotDirty=!e,e&&e!=t&&this.fire("dirty")},setMode:function(e){S.setMode(this,e)},getContainer:function(){var e=this;return e.container||(e.container=M.get(e.editorContainer||e.id+"_parent")),e.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return this.targetElm||(this.targetElm=M.get(this.id)),this.targetElm},getWin:function(){var e=this,t;return e.contentWindow||(t=e.iframeElement,t&&(e.contentWindow=t.contentWindow)),e.contentWindow},getDoc:function(){var e=this,t;return e.contentDocument||(t=e.getWin(),t&&(e.contentDocument=t.document)),e.contentDocument},getBody:function(){var e=this.getDoc();return this.bodyElement||(e?e.body:null)},convertURL:function(e,t,n){var r=this,i=r.settings;return i.urlconverter_callback?r.execCallback("urlconverter_callback",e,n,!0,t):!i.convert_urls||n&&"LINK"==n.nodeName||0===e.indexOf("file:")||0===e.length?e:i.relative_urls?r.documentBaseURI.toRelative(e):e=r.documentBaseURI.toAbsolute(e,i.remove_script_host)},addVisual:function(e){var n=this,r=n.settings,i=n.dom,o;e=e||n.getBody(),n.hasVisual===t&&(n.hasVisual=r.visual),I(i.select("table,a",e),function(e){var t;switch(e.nodeName){case"TABLE":return o=r.visual_table_class||"mce-item-table",t=i.getAttrib(e,"border"),void(t&&"0"!=t||!n.hasVisual?i.removeClass(e,o):i.addClass(e,o));case"A":return void(i.getAttrib(e,"href",!1)||(t=i.getAttrib(e,"name")||e.id,o=r.visual_anchor_class||"mce-item-anchor",t&&n.hasVisual?i.addClass(e,o):i.removeClass(e,o)))}}),n.fire("VisualAid",{element:e,hasVisual:n.hasVisual})},remove:function(){var e=this;e.removed||(e.save(),e.removed=1,e.unbindAllNativeEvents(),e.hasHiddenInput&&M.remove(e.getElement().nextSibling),e.inline||(q&&q<10&&e.getDoc().execCommand("SelectAll",!1,null),M.setStyle(e.id,"display",e.orgDisplay),e.getBody().onload=null),e.fire("remove"),e.editorManager.remove(e),M.remove(e.getContainer()),e._selectionOverrides.destroy(),e.editorUpload.destroy(),e.destroy())},destroy:function(e){var t=this,n;if(!t.destroyed){if(!e&&!t.removed)return void t.remove();e||(t.editorManager.off("beforeunload",t._beforeUnload),t.theme&&t.theme.destroy&&t.theme.destroy(),t.selection.destroy(),t.dom.destroy()),n=t.formElement,n&&(n._mceOldSubmit&&(n.submit=n._mceOldSubmit,n._mceOldSubmit=null),M.unbind(n,"submit reset",t.formEventDelegate)),t.contentAreaContainer=t.formElement=t.container=t.editorContainer=null,t.bodyElement=t.contentDocument=t.contentWindow=null,t.iframeElement=t.targetElm=null,t.selection&&(t.selection=t.selection.win=t.selection.dom=t.selection.dom.doc=null),t.destroyed=1}},uploadImages:function(e){return this.editorUpload.uploadImages(e)},_scanForImages:function(){return this.editorUpload.scanForImages()}},H(L.prototype,_),L}),r(st,[m],function(e){var t={},n="en";return{setCode:function(e){e&&(n=e,this.rtl=!!this.data[e]&&"rtl"===this.data[e]._dir)},getCode:function(){return n},rtl:!1,add:function(e,n){var r=t[e];r||(t[e]=r={});for(var i in n)r[i]=n[i];this.setCode(e)},translate:function(r){function i(t){return e.is(t,"function")?Object.prototype.toString.call(t):o(t)?"":""+t}function o(t){return""===t||null===t||e.is(t,"undefined")}function a(t){return t=i(t),e.hasOwn(s,t)?i(s[t]):t}var s=t[n]||{};if(o(r))return"";if(e.is(r,"object")&&e.hasOwn(r,"raw"))return i(r.raw);if(e.is(r,"array")){var l=r.slice(1);r=a(r[0]).replace(/\{([0-9]+)\}/g,function(t,n){return e.hasOwn(l,n)?i(l[n]):t})}return a(r).replace(/{context:\w+}$/,"")},data:t}}),r(lt,[w,c,d],function(e,t,n){function r(e){function r(){try{return document.activeElement}catch(e){return document.body}}function u(e,t){if(t&&t.startContainer){if(!e.isChildOf(t.startContainer,e.getRoot())||!e.isChildOf(t.endContainer,e.getRoot()))return;return{startContainer:t.startContainer,startOffset:t.startOffset,endContainer:t.endContainer,endOffset:t.endOffset}}return t}function c(e,t){var n;return t.startContainer?(n=e.getDoc().createRange(),n.setStart(t.startContainer,t.startOffset),n.setEnd(t.endContainer,t.endOffset)):n=t,n}function d(d){var f=d.editor;f.on("init",function(){(f.inline||n.ie)&&("onbeforedeactivate"in document&&n.ie<9?f.dom.bind(f.getBody(),"beforedeactivate",function(e){if(e.target==f.getBody())try{f.lastRng=f.selection.getRng()}catch(t){}}):f.on("nodechange mouseup keyup",function(e){var t=r();"nodechange"==e.type&&e.selectionChange||(t&&t.id==f.id+"_ifr"&&(t=f.getBody()),f.dom.isChildOf(t,f.getBody())&&(f.lastRng=f.selection.getRng()))}),n.webkit&&!i&&(i=function(){var t=e.activeEditor;if(t&&t.selection){var n=t.selection.getRng();n&&!n.collapsed&&(f.lastRng=n)}},s.bind(document,"selectionchange",i)))}),f.on("setcontent",function(){f.lastRng=null}),f.on("mousedown",function(){f.selection.lastFocusBookmark=null}),f.on("focusin",function(){var t=e.focusedEditor,n;f.selection.lastFocusBookmark&&(n=c(f,f.selection.lastFocusBookmark),f.selection.lastFocusBookmark=null,f.selection.setRng(n)),t!=f&&(t&&t.fire("blur",{focusedEditor:f}),e.setActive(f),e.focusedEditor=f,f.fire("focus",{blurredEditor:t}),f.focus(!0)),f.lastRng=null}),f.on("focusout",function(){t.setEditorTimeout(f,function(){var t=e.focusedEditor;l(f,r())||t!=f||(f.fire("blur",{focusedEditor:null}),e.focusedEditor=null,f.selection&&(f.selection.lastFocusBookmark=null))})}),o||(o=function(t){var n=e.activeEditor,r;r=t.target,n&&r.ownerDocument==document&&(n.selection&&r!=n.getBody()&&(n.selection.lastFocusBookmark=u(n.dom,n.lastRng)),r==document.body||l(n,r)||e.focusedEditor!=n||(n.fire("blur",{focusedEditor:null}),e.focusedEditor=null))},s.bind(document,"focusin",o)),f.inline&&!a&&(a=function(t){var n=e.activeEditor,r=n.dom;if(n.inline&&r&&!r.isChildOf(t.target,n.getBody())){var i=n.selection.getRng();i.collapsed||(n.lastRng=i)}},s.bind(document,"mouseup",a))}function f(t){e.focusedEditor==t.editor&&(e.focusedEditor=null),e.activeEditor||(s.unbind(document,"selectionchange",i),s.unbind(document,"focusin",o),s.unbind(document,"mouseup",a),i=o=a=null)}e.on("AddEditor",d),e.on("RemoveEditor",f)}var i,o,a,s=e.DOM,l=function(e,t){var n=e?e.settings.custom_ui_selector:"",i=s.getParent(t,function(t){return r.isEditorUIElement(t)||!!n&&e.dom.is(t,n)});return null!==i};return r.isEditorUIElement=function(e){return e.className.toString().indexOf("mce-")!==-1},r._isUIElement=l,r}),r(ut,[at,g,w,ue,d,m,u,pe,st,lt,N],function(e,t,n,r,i,o,a,s,l,u,c){function d(e){v(x.editors,function(t){"scroll"===e.type?t.fire("ScrollWindow",e):t.fire("ResizeWindow",e)})}function f(e,n){n!==w&&(n?t(window).on("resize scroll",d):t(window).off("resize scroll",d),w=n)}function p(e){var t=x.editors,n;delete t[e.id];for(var r=0;r0&&v(g(t),function(e){var t;(t=m.get(e))?n.push(t):v(document.forms,function(t){v(t.elements,function(t){t.name===e&&(e="mce_editor_"+b++,m.setAttrib(t,"id",e),n.push(t))})})});break;case"textareas":case"specific_textareas":v(m.select("textarea"),function(t){e.editor_deselector&&u(t,e.editor_deselector)||e.editor_selector&&!u(t,e.editor_selector)||n.push(t)})}return n}function d(){function a(t,n,r){var i=new e(t,n,f);p.push(i),i.on("init",function(){++u===g.length&&x(p)}),i.targetElm=i.targetElm||r,i.render()}var u=0,p=[],g;return m.unbind(window,"ready",d),l("onpageload"),g=t.unique(c(n)),n.types?void v(n.types,function(e){o.each(g,function(t){return!m.is(t,e.selector)||(a(s(t),y({},n,e),t),!1)})}):(o.each(g,function(e){h(f.get(e.id))}),g=o.grep(g,function(e){return!f.get(e.id)}),void v(g,function(e){r(n,e)?i("Could not initialize inline editor on invalid inline target element",e):a(s(e),n,e)}))}var f=this,p,C;C=o.makeMap("area base basefont br col frame hr img input isindex link meta param embed source wbr track colgroup option tbody tfoot thead tr script noscript style textarea video audio iframe object menu"," ");var x=function(e){p=e};return f.settings=n,m.bind(window,"ready",d),new a(function(e){p?e(p):x=function(t){e(t)}})},get:function(e){return arguments.length?e in this.editors?this.editors[e]:null:this.editors},add:function(e){var t=this,n=t.editors;return n[e.id]=e,n.push(e),f(n,!0),t.activeEditor=e,t.fire("AddEditor",{editor:e}),C||(C=function(){t.fire("BeforeUnload")},m.bind(window,"beforeunload",C)),e},createEditor:function(t,n){return this.add(new e(t,n,this))},remove:function(e){var t=this,n,r=t.editors,i;{if(e)return"string"==typeof e?(e=e.selector||e,void v(m.select(e),function(e){i=r[e.id],i&&t.remove(i)})):(i=e,r[i.id]?(p(i)&&t.fire("RemoveEditor",{editor:i}),r.length||m.unbind(window,"beforeunload",C),i.remove(),f(r,r.length>0),i):null);for(n=r.length-1;n>=0;n--)t.remove(r[n])}},execCommand:function(t,n,r){var i=this,o=i.get(r);switch(t){case"mceAddEditor":return i.get(r)||new e(r,i.settings,i).render(),!0;case"mceRemoveEditor":return o&&o.remove(),!0;case"mceToggleEditor":return o?(o.isHidden()?o.show():o.hide(),!0):(i.execCommand("mceAddEditor",0,r),!0)}return!!i.activeEditor&&i.activeEditor.execCommand(t,n,r)},triggerSave:function(){v(this.editors,function(e){e.save()})},addI18n:function(e,t){l.add(e,t)},translate:function(e){return l.translate(e)},setActive:function(e){var t=this.activeEditor;this.activeEditor!=e&&(t&&t.fire("deactivate",{relatedTarget:e}),e.fire("activate",{relatedTarget:t})),this.activeEditor=e}},y(x,s),x.setup(),window.tinymce=window.tinyMCE=x,x}),r(ct,[ut,m],function(e,t){var n=t.each,r=t.explode;e.on("AddEditor",function(e){var t=e.editor;t.on("preInit",function(){function e(e,t){n(t,function(t,n){t&&s.setStyle(e,n,t)}),s.rename(e,"span")}function i(e){s=t.dom,l.convert_fonts_to_spans&&n(s.select("font,u,strike",e.node),function(e){o[e.nodeName.toLowerCase()](s,e)})}var o,a,s,l=t.settings;l.inline_styles&&(a=r(l.font_size_legacy_values),o={font:function(t,n){e(n,{backgroundColor:n.style.backgroundColor,color:n.color,fontFamily:n.face,fontSize:a[parseInt(n.size,10)-1]})},u:function(n,r){"html4"===t.settings.schema&&e(r,{textDecoration:"underline"})},strike:function(t,n){e(n,{textDecoration:"line-through"})}},t.on("PreProcess SetContent",i))})})}),r(dt,[pe,m],function(e,t){var n={send:function(e){function r(){!e.async||4==i.readyState||o++>1e4?(e.success&&o<1e4&&200==i.status?e.success.call(e.success_scope,""+i.responseText,i,e):e.error&&e.error.call(e.error_scope,o>1e4?"TIMED_OUT":"GENERAL",i,e),i=null):setTimeout(r,10)}var i,o=0;if(e.scope=e.scope||this,e.success_scope=e.success_scope||e.scope,e.error_scope=e.error_scope||e.scope,e.async=e.async!==!1,e.data=e.data||"",n.fire("beforeInitialize",{settings:e}),i=new XMLHttpRequest){if(i.overrideMimeType&&i.overrideMimeType(e.content_type),i.open(e.type||(e.data?"POST":"GET"),e.url,e.async),e.crossDomain&&(i.withCredentials=!0),e.content_type&&i.setRequestHeader("Content-Type",e.content_type),e.requestheaders&&t.each(e.requestheaders,function(e){i.setRequestHeader(e.key,e.value)}),i.setRequestHeader("X-Requested-With","XMLHttpRequest"),i=n.fire("beforeSend",{xhr:i,settings:e}).xhr,i.send(e.data),!e.async)return r();setTimeout(r,10)}}};return t.extend(n,e),n}),r(ft,[],function(){function e(t,n){var r,i,o,a;if(n=n||'"',null===t)return"null";if(o=typeof t,"string"==o)return i="\bb\tt\nn\ff\rr\"\"''\\\\",n+t.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(e,t){return'"'===n&&"'"===e?e:(r=i.indexOf(t),r+1?"\\"+i.charAt(r+1):(e=t.charCodeAt().toString(16),"\\u"+"0000".substring(e.length)+e))})+n;if("object"==o){if(t.hasOwnProperty&&"[object Array]"===Object.prototype.toString.call(t)){for(r=0,i="[";r0?",":"")+e(t[r],n);return i+"]"}i="{";for(a in t)t.hasOwnProperty(a)&&(i+="function"!=typeof t[a]?(i.length>1?","+n:n)+a+n+":"+e(t[a],n):"");return i+"}"}return""+t}return{serialize:e,parse:function(e){try{return window[String.fromCharCode(101)+"val"]("("+e+")")}catch(t){}}}}),r(pt,[ft,dt,m],function(e,t,n){function r(e){this.settings=i({},e),this.count=0}var i=n.extend;return r.sendRPC=function(e){return(new r).send(e)},r.prototype={send:function(n){var r=n.error,o=n.success;n=i(this.settings,n),n.success=function(t,i){t=e.parse(t),"undefined"==typeof t&&(t={error:"JSON Parse error."}),t.error?r.call(n.error_scope||n.scope,t.error,i):o.call(n.success_scope||n.scope,t.result)},n.error=function(e,t){r&&r.call(n.error_scope||n.scope,e,t)},n.data=e.serialize({id:n.id||"c"+this.count++,method:n.method,params:n.params}),n.content_type="application/json",t.send(n)}},r}),r(ht,[w],function(e){return{callbacks:{},count:0,send:function(n){var r=this,i=e.DOM,o=n.count!==t?n.count:r.count,a="tinymce_jsonp_"+o;r.callbacks[o]=function(e){i.remove(a),delete r.callbacks[o],n.callback(e)},i.add(i.doc.body,"script",{id:a,src:n.url,type:"text/javascript"}),r.count++}}}),r(mt,[],function(){function e(){s=[];for(var e in a)s.push(e);i.length=s.length}function n(){function n(e){var n,r;return r=e!==t?c+e:i.indexOf(",",c),r===-1||r>i.length?null:(n=i.substring(c,r),c=r+1,n)}var r,i,s,c=0;if(a={},u){o.load(l),i=o.getAttribute(l)||"";do{var d=n();if(null===d)break;if(r=n(parseInt(d,32)||0),null!==r){if(d=n(),null===d)break;s=n(parseInt(d,32)||0),r&&(a[r]=s)}}while(null!==r);e()}}function r(){var t,n="";if(u){for(var r in a)t=a[r],n+=(n?",":"")+r.length.toString(32)+","+r+","+t.length.toString(32)+","+t;o.setAttribute(l,n);try{o.save(l)}catch(i){}e()}}var i,o,a,s,l,u;try{if(window.localStorage)return localStorage}catch(c){}return l="tinymce",o=document.documentElement,u=!!o.addBehavior,u&&o.addBehavior("#default#userData"),i={key:function(e){return s[e]},getItem:function(e){return e in a?a[e]:null},setItem:function(e,t){a[e]=""+t,r()},removeItem:function(e){delete a[e],r()},clear:function(){a={},r()}},n(),i}),r(gt,[w,f,E,N,m,d],function(e,t,n,r,i,o){var a=window.tinymce;return a.DOM=e.DOM,a.ScriptLoader=n.ScriptLoader,a.PluginManager=r.PluginManager,a.ThemeManager=r.ThemeManager,a.dom=a.dom||{},a.dom.Event=t.Event,i.each("trim isArray is toArray makeMap each map grep inArray extend create walk createNS resolve explode _addCacheSuffix".split(" "),function(e){a[e]=i[e]}),i.each("isOpera isWebKit isIE isGecko isMac".split(" "),function(e){a[e]=o[e.substr(2).toLowerCase()]}),{}}),r(vt,[ce,m],function(e,t){return e.extend({Defaults:{firstControlClass:"first",lastControlClass:"last"},init:function(e){this.settings=t.extend({},this.Defaults,e)},preRender:function(e){e.bodyClasses.add(this.settings.containerClass)},applyClasses:function(e){var t=this,n=t.settings,r,i,o,a;r=n.firstControlClass,i=n.lastControlClass,e.each(function(e){e.classes.remove(r).remove(i).add(n.controlClass),e.visible()&&(o||(o=e),a=e)}),o&&o.classes.add(r),a&&a.classes.add(i)},renderHtml:function(e){var t=this,n="";return t.applyClasses(e.items()),e.items().each(function(e){n+=e.renderHtml()}),n},recalc:function(){},postRender:function(){},isNative:function(){return!1}})}),r(yt,[vt],function(e){return e.extend({Defaults:{containerClass:"abs-layout",controlClass:"abs-layout-item"},recalc:function(e){e.items().filter(":visible").each(function(e){var t=e.settings;e.layoutRect({x:t.x,y:t.y,w:t.w,h:t.h}),e.recalc&&e.recalc()})},renderHtml:function(e){return'
    '+this._super(e)}})}),r(bt,[Pe],function(e){return e.extend({Defaults:{classes:"widget btn",role:"button"},init:function(e){var t=this,n;t._super(e),e=t.settings,n=t.settings.size,t.on("click mousedown",function(e){e.preventDefault()}),t.on("touchstart",function(e){t.fire("click",e),e.preventDefault()}),e.subtype&&t.classes.add(e.subtype),n&&t.classes.add("btn-"+n),e.icon&&t.icon(e.icon)},icon:function(e){return arguments.length?(this.state.set("icon",e),this):this.state.get("icon")},repaint:function(){var e=this.getEl().firstChild,t;e&&(t=e.style,t.width=t.height="100%"),this._super()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("icon"),i,o=e.state.get("text"),a="";return i=e.settings.image,i?(r="none","string"!=typeof i&&(i=window.getSelection?i[0]:i[1]),i=" style=\"background-image: url('"+i+"')\""):i="",o&&(e.classes.add("btn-has-text"),a=''+e.encode(o)+""),r=r?n+"ico "+n+"i-"+r:"",'
    "},bindStates:function(){function e(e){var i=n("span."+r,t.getEl());e?(i[0]||(n("button:first",t.getEl()).append(''),i=n("span."+r,t.getEl())),i.html(t.encode(e))):i.remove(),t.classes.toggle("btn-has-text",!!e)}var t=this,n=t.$,r=t.classPrefix+"txt";return t.state.on("change:text",function(t){e(t.value)}),t.state.on("change:icon",function(n){var r=n.value,i=t.classPrefix;t.settings.icon=r,r=r?i+"ico "+i+"i-"+t.settings.icon:"";var o=t.getEl().firstChild,a=o.getElementsByTagName("i")[0];r?(a&&a==o.firstChild||(a=document.createElement("i"),o.insertBefore(a,o.firstChild)),a.className=r):a&&o.removeChild(a),e(t.state.get("text"))}),t._super()}})}),r(Ct,[Ne],function(e){return e.extend({Defaults:{defaultType:"button",role:"group"},renderHtml:function(){var e=this,t=e._layout;return e.classes.add("btn-group"),e.preRender(),t.preRender(e),'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}})}),r(xt,[Pe],function(e){return e.extend({Defaults:{classes:"checkbox",role:"checkbox",checked:!1},init:function(e){var t=this;t._super(e),t.on("click mousedown",function(e){e.preventDefault()}),t.on("click",function(e){e.preventDefault(),t.disabled()||t.checked(!t.checked())}),t.checked(t.settings.checked)},checked:function(e){return arguments.length?(this.state.set("checked",e),this):this.state.get("checked")},value:function(e){return arguments.length?this.checked(e):this.checked()},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix;return'
    '+e.encode(e.state.get("text"))+"
    "},bindStates:function(){function e(e){t.classes.toggle("checked",e),t.aria("checked",e)}var t=this;return t.state.on("change:text",function(e){t.getEl("al").firstChild.data=t.translate(e.value)}),t.state.on("change:checked change:value",function(n){t.fire("change"),e(n.value)}),t.state.on("change:icon",function(e){var n=e.value,r=t.classPrefix;if("undefined"==typeof n)return t.settings.icon;t.settings.icon=n,n=n?r+"ico "+r+"i-"+t.settings.icon:"";var i=t.getEl().firstChild,o=i.getElementsByTagName("i")[0];n?(o&&o==i.firstChild||(o=document.createElement("i"),i.insertBefore(o,i.firstChild)),o.className=n):o&&i.removeChild(o)}),t.state.get("checked")&&e(!0),t._super()}})}),r(wt,[Pe,we,ve,g,I,m],function(e,t,n,r,i,o){return e.extend({init:function(e){var t=this;t._super(e),e=t.settings,t.classes.add("combobox"),t.subinput=!0,t.ariaTarget="inp",e.menu=e.menu||e.values,e.menu&&(e.icon="caret"),t.on("click",function(n){var i=n.target,o=t.getEl();if(r.contains(o,i)||i==o)for(;i&&i!=o;)i.id&&i.id.indexOf("-open")!=-1&&(t.fire("action"),e.menu&&(t.showMenu(),n.aria&&t.menu.items()[0].focus())),i=i.parentNode}),t.on("keydown",function(e){var n;13==e.keyCode&&"INPUT"===e.target.nodeName&&(e.preventDefault(),t.parents().reverse().each(function(e){if(e.toJSON)return n=e,!1}),t.fire("submit",{data:n.toJSON()}))}),t.on("keyup",function(e){if("INPUT"==e.target.nodeName){var n=t.state.get("value"),r=e.target.value;r!==n&&(t.state.set("value",r),t.fire("autocomplete",e))}}),t.on("mouseover",function(e){var n=t.tooltip().moveTo(-65535);if(t.statusLevel()&&e.target.className.indexOf(t.classPrefix+"status")!==-1){var r=t.statusMessage()||"Ok",i=n.text(r).show().testMoveRel(e.target,["bc-tc","bc-tl","bc-tr"]);n.classes.toggle("tooltip-n","bc-tc"==i),n.classes.toggle("tooltip-nw","bc-tl"==i),n.classes.toggle("tooltip-ne","bc-tr"==i),n.moveRel(e.target,i)}})},statusLevel:function(e){return arguments.length>0&&this.state.set("statusLevel",e),this.state.get("statusLevel")},statusMessage:function(e){return arguments.length>0&&this.state.set("statusMessage",e),this.state.get("statusMessage")},showMenu:function(){var e=this,n=e.settings,r;e.menu||(r=n.menu||[],r.length?r={type:"menu",items:r}:r.type=r.type||"menu",e.menu=t.create(r).parent(e).renderTo(e.getContainerElm()),e.fire("createmenu"),e.menu.reflow(),e.menu.on("cancel",function(t){t.control===e.menu&&e.focus()}),e.menu.on("show hide",function(t){t.control.items().each(function(t){t.active(t.value()==e.value())})}).fire("show"),e.menu.on("select",function(t){e.value(t.control.value())}),e.on("focusin",function(t){"INPUT"==t.target.tagName.toUpperCase()&&e.menu.hide()}),e.aria("expanded",!0)),e.menu.show(),e.menu.layoutRect({w:e.layoutRect().w}),e.menu.moveRel(e.getEl(),e.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},focus:function(){this.getEl("inp").focus()},repaint:function(){var e=this,t=e.getEl(),i=e.getEl("open"),o=e.layoutRect(),a,s,l=0,u=t.firstChild;e.statusLevel()&&"none"!==e.statusLevel()&&(l=parseInt(n.getRuntimeStyle(u,"padding-right"),10)-parseInt(n.getRuntimeStyle(u,"padding-left"),10)),a=i?o.w-n.getSize(i).width-10:o.w-10;var c=document;return c.all&&(!c.documentMode||c.documentMode<=8)&&(s=e.layoutRect().h-2+"px"),r(u).css({width:a-l,lineHeight:s}),e._super(),e},postRender:function(){var e=this;return r(this.getEl("inp")).on("change",function(t){e.state.set("value",t.target.value),e.fire("change",t)}),e._super()},renderHtml:function(){var e=this,t=e._id,n=e.settings,r=e.classPrefix,i=e.state.get("value")||"",o,a,s="",l="",u="";return"spellcheck"in n&&(l+=' spellcheck="'+n.spellcheck+'"'),n.maxLength&&(l+=' maxlength="'+n.maxLength+'"'),n.size&&(l+=' size="'+n.size+'"'),n.subtype&&(l+=' type="'+n.subtype+'"'),u='',e.disabled()&&(l+=' disabled="disabled"'),o=n.icon,o&&"caret"!=o&&(o=r+"ico "+r+"i-"+n.icon),a=e.state.get("text"),(o||a)&&(s='
    ",e.classes.add("has-open")),'
    '+u+s+"
    "},value:function(e){return arguments.length?(this.state.set("value",e),this):(this.state.get("rendered")&&this.state.set("value",this.getEl("inp").value), -this.state.get("value"))},showAutoComplete:function(e,n){var r=this;if(0===e.length)return void r.hideMenu();var i=function(e,t){return function(){r.fire("selectitem",{title:t,value:e})}};r.menu?r.menu.items().remove():r.menu=t.create({type:"menu",classes:"combobox-menu",layout:"flow"}).parent(r).renderTo(),o.each(e,function(e){r.menu.add({text:e.title,url:e.previewUrl,match:n,classes:"menu-item-ellipsis",onclick:i(e.value,e.title)})}),r.menu.renderNew(),r.hideMenu(),r.menu.on("cancel",function(e){e.control.parent()===r.menu&&(e.stopPropagation(),r.focus(),r.hideMenu())}),r.menu.on("select",function(){r.focus()});var a=r.layoutRect().w;r.menu.layoutRect({w:a,minW:0,maxW:a}),r.menu.reflow(),r.menu.show(),r.menu.moveRel(r.getEl(),r.isRtl()?["br-tr","tr-br"]:["bl-tl","tl-bl"])},hideMenu:function(){this.menu&&this.menu.hide()},bindStates:function(){var e=this;e.state.on("change:value",function(t){e.getEl("inp").value!=t.value&&(e.getEl("inp").value=t.value)}),e.state.on("change:disabled",function(t){e.getEl("inp").disabled=t.value}),e.state.on("change:statusLevel",function(t){var r=e.getEl("status"),i=e.classPrefix,o=t.value;n.css(r,"display","none"===o?"none":""),n.toggleClass(r,i+"i-checkmark","ok"===o),n.toggleClass(r,i+"i-warning","warn"===o),n.toggleClass(r,i+"i-error","error"===o),e.classes.toggle("has-status","none"!==o),e.repaint()}),n.on(e.getEl("status"),"mouseleave",function(){e.tooltip().hide()}),e.on("cancel",function(t){e.menu&&e.menu.visible()&&(t.stopPropagation(),e.hideMenu())});var t=function(e,t){t&&t.items().length>0&&t.items().eq(e)[0].focus()};return e.on("keydown",function(n){var r=n.keyCode;"INPUT"===n.target.nodeName&&(r===i.DOWN?(n.preventDefault(),e.fire("autocomplete"),t(0,e.menu)):r===i.UP&&(n.preventDefault(),t(-1,e.menu)))}),e._super()},remove:function(){r(this.getEl("inp")).off(),this.menu&&this.menu.remove(),this._super()}})}),r(Et,[wt],function(e){return e.extend({init:function(e){var t=this;e.spellcheck=!1,e.onaction&&(e.icon="none"),t._super(e),t.classes.add("colorbox"),t.on("change keyup postrender",function(){t.repaintColor(t.value())})},repaintColor:function(e){var t=this.getEl("open"),n=t?t.getElementsByTagName("i")[0]:null;if(n)try{n.style.background=e}catch(r){}},bindStates:function(){var e=this;return e.state.on("change:value",function(t){e.state.get("rendered")&&e.repaintColor(t.value)}),e._super()}})}),r(Nt,[bt,Ae],function(e,t){return e.extend({showPanel:function(){var e=this,n=e.settings;if(e.active(!0),e.panel)e.panel.show();else{var r=n.panel;r.type&&(r={layout:"grid",items:r}),r.role=r.role||"dialog",r.popover=!0,r.autohide=!0,r.ariaRoot=!0,e.panel=new t(r).on("hide",function(){e.active(!1)}).on("cancel",function(t){t.stopPropagation(),e.focus(),e.hidePanel()}).parent(e).renderTo(e.getContainerElm()),e.panel.fire("show"),e.panel.reflow()}e.panel.moveRel(e.getEl(),n.popoverAlign||(e.isRtl()?["bc-tr","bc-tc"]:["bc-tl","bc-tc"]))},hidePanel:function(){var e=this;e.panel&&e.panel.hide()},postRender:function(){var e=this;return e.aria("haspopup",!0),e.on("click",function(t){t.control===e&&(e.panel&&e.panel.visible()?e.hidePanel():(e.showPanel(),e.panel.focus(!!t.aria)))}),e._super()},remove:function(){return this.panel&&(this.panel.remove(),this.panel=null),this._super()}})}),r(_t,[Nt,w],function(e,t){var n=t.DOM;return e.extend({init:function(e){this._super(e),this.classes.add("colorbutton")},color:function(e){return e?(this._color=e,this.getEl("preview").style.backgroundColor=e,this):this._color},resetColor:function(){return this._color=null,this.getEl("preview").style.backgroundColor=null,this},renderHtml:function(){var e=this,t=e._id,n=e.classPrefix,r=e.state.get("text"),i=e.settings.icon?n+"ico "+n+"i-"+e.settings.icon:"",o=e.settings.image?" style=\"background-image: url('"+e.settings.image+"')\"":"",a="";return r&&(e.classes.add("btn-has-text"),a=''+e.encode(r)+""),'
    '},postRender:function(){var e=this,t=e.settings.onclick;return e.on("click",function(r){r.aria&&"down"==r.aria.key||r.control!=e||n.getParent(r.target,"."+e.classPrefix+"open")||(r.stopImmediatePropagation(),t.call(e,r))}),delete e.settings.onclick,e._super()}})}),r(St,[],function(){function e(e){function i(e,i,o){var a,s,l,u,c,d;return a=0,s=0,l=0,e/=255,i/=255,o/=255,c=t(e,t(i,o)),d=n(e,n(i,o)),c==d?(l=c,{h:0,s:0,v:100*l}):(u=e==c?i-o:o==c?e-i:o-e,a=e==c?3:o==c?1:5,a=60*(a-u/(d-c)),s=(d-c)/d,l=d,{h:r(a),s:r(100*s),v:r(100*l)})}function o(e,i,o){var a,s,l,u;if(e=(parseInt(e,10)||0)%360,i=parseInt(i,10)/100,o=parseInt(o,10)/100,i=n(0,t(i,1)),o=n(0,t(o,1)),0===i)return void(d=f=p=r(255*o));switch(a=e/60,s=o*i,l=s*(1-Math.abs(a%2-1)),u=o-s,Math.floor(a)){case 0:d=s,f=l,p=0;break;case 1:d=l,f=s,p=0;break;case 2:d=0,f=s,p=l;break;case 3:d=0,f=l,p=s;break;case 4:d=l,f=0,p=s;break;case 5:d=s,f=0,p=l;break;default:d=f=p=0}d=r(255*(d+u)),f=r(255*(f+u)),p=r(255*(p+u))}function a(){function e(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+e(d)+e(f)+e(p)}function s(){return{r:d,g:f,b:p}}function l(){return i(d,f,p)}function u(e){var t;return"object"==typeof e?"r"in e?(d=e.r,f=e.g,p=e.b):"v"in e&&o(e.h,e.s,e.v):(t=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)[^\)]*\)/gi.exec(e))?(d=parseInt(t[1],10),f=parseInt(t[2],10),p=parseInt(t[3],10)):(t=/#([0-F]{2})([0-F]{2})([0-F]{2})/gi.exec(e))?(d=parseInt(t[1],16),f=parseInt(t[2],16),p=parseInt(t[3],16)):(t=/#([0-F])([0-F])([0-F])/gi.exec(e))&&(d=parseInt(t[1]+t[1],16),f=parseInt(t[2]+t[2],16),p=parseInt(t[3]+t[3],16)),d=d<0?0:d>255?255:d,f=f<0?0:f>255?255:f,p=p<0?0:p>255?255:p,c}var c=this,d=0,f=0,p=0;e&&u(e),c.toRgb=s,c.toHsv=l,c.toHex=a,c.parse=u}var t=Math.min,n=Math.max,r=Math.round;return e}),r(kt,[Pe,_e,ve,St],function(e,t,n,r){return e.extend({Defaults:{classes:"widget colorpicker"},init:function(e){this._super(e)},postRender:function(){function e(e,t){var r=n.getPos(e),i,o;return i=t.pageX-r.x,o=t.pageY-r.y,i=Math.max(0,Math.min(i/e.clientWidth,1)),o=Math.max(0,Math.min(o/e.clientHeight,1)),{x:i,y:o}}function i(e,t){var i=(360-e.h)/360;n.css(d,{top:100*i+"%"}),t||n.css(p,{left:e.s+"%",top:100-e.v+"%"}),f.style.background=new r({s:100,v:100,h:e.h}).toHex(),s.color().parse({s:e.s,v:e.v,h:e.h})}function o(t){var n;n=e(f,t),u.s=100*n.x,u.v=100*(1-n.y),i(u),s.fire("change")}function a(t){var n;n=e(c,t),u=l.toHsv(),u.h=360*(1-n.y),i(u,!0),s.fire("change")}var s=this,l=s.color(),u,c,d,f,p;c=s.getEl("h"),d=s.getEl("hp"),f=s.getEl("sv"),p=s.getEl("svp"),s._repaint=function(){u=l.toHsv(),i(u)},s._super(),s._svdraghelper=new t(s._id+"-sv",{start:o,drag:o}),s._hdraghelper=new t(s._id+"-h",{start:a,drag:a}),s._repaint()},rgb:function(){return this.color().toRgb()},value:function(e){var t=this;return arguments.length?(t.color().parse(e),void(t._rendered&&t._repaint())):t.color().toHex()},color:function(){return this._color||(this._color=new r),this._color},renderHtml:function(){function e(){var e,t,n="",i,a;for(i="filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=",a=o.split(","),e=0,t=a.length-1;e';return n}var t=this,n=t._id,r=t.classPrefix,i,o="#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000",a="background: -ms-linear-gradient(top,"+o+");background: linear-gradient(to bottom,"+o+");";return i='
    '+e()+'
    ','
    '+i+"
    "}})}),r(Tt,[Pe],function(e){return e.extend({init:function(e){var t=this;e.delimiter||(e.delimiter="\xbb"),t._super(e),t.classes.add("path"),t.canFocus=!0,t.on("click",function(e){var n,r=e.target;(n=r.getAttribute("data-index"))&&t.fire("select",{value:t.row()[n],index:n})}),t.row(t.settings.row)},focus:function(){var e=this;return e.getEl().firstChild.focus(),e},row:function(e){return arguments.length?(this.state.set("row",e),this):this.state.get("row")},renderHtml:function(){var e=this;return'
    '+e._getDataPathHtml(e.state.get("row"))+"
    "},bindStates:function(){var e=this;return e.state.on("change:row",function(t){e.innerHtml(e._getDataPathHtml(t.value))}),e._super()},_getDataPathHtml:function(e){var t=this,n=e||[],r,i,o="",a=t.classPrefix;for(r=0,i=n.length;r0?'":"")+'
    '+n[r].name+"
    ";return o||(o='
    \xa0
    '),o}})}),r(Rt,[Tt],function(e){return e.extend({postRender:function(){function e(e){if(1===e.nodeType){if("BR"==e.nodeName||e.getAttribute("data-mce-bogus"))return!0;if("bookmark"===e.getAttribute("data-mce-type"))return!0}return!1}var t=this,n=t.settings.editor;return n.settings.elementpath!==!1&&(t.on("select",function(e){n.focus(),n.selection.select(this.row()[e.index].element),n.nodeChanged()}),n.on("nodeChange",function(r){for(var i=[],o=r.parents,a=o.length;a--;)if(1==o[a].nodeType&&!e(o[a])){var s=n.fire("ResolveName",{name:o[a].nodeName.toLowerCase(),target:o[a]});if(s.isDefaultPrevented()||i.push({name:s.name,element:o[a]}),s.isPropagationStopped())break}t.row(i)})),t._super()}})}),r(At,[Ne],function(e){return e.extend({Defaults:{layout:"flex",align:"center",defaults:{flex:1}},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.classes.add("formitem"),t.preRender(e),'
    '+(e.settings.title?'
    '+e.settings.title+"
    ":"")+'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}})}),r(Bt,[Ne,At,m],function(e,t,n){return e.extend({Defaults:{containerCls:"form",layout:"flex",direction:"column",align:"stretch",flex:1,padding:20,labelGap:30,spacing:10,callbacks:{submit:function(){this.submit()}}},preRender:function(){var e=this,r=e.items();e.settings.formItemDefaults||(e.settings.formItemDefaults={layout:"flex",autoResize:"overflow",defaults:{flex:1}}),r.each(function(r){var i,o=r.settings.label;o&&(i=new t(n.extend({items:{type:"label",id:r._id+"-l",text:o,flex:0,forId:r._id,disabled:r.disabled()}},e.settings.formItemDefaults)),i.type="formitem",r.aria("labelledby",r._id+"-l"),"undefined"==typeof r.settings.flex&&(r.settings.flex=1),e.replace(r,i),i.add(r))})},submit:function(){return this.fire("submit",{data:this.toJSON()})},postRender:function(){var e=this;e._super(),e.fromJSON(e.settings.data)},bindStates:function(){function e(){var e=0,n=[],r,i,o;if(t.settings.labelGapCalc!==!1)for(o="children"==t.settings.labelGapCalc?t.find("formitem"):t.items(),o.filter("formitem").each(function(t){var r=t.items()[0],i=r.getEl().clientWidth;e=i>e?i:e,n.push(r)}),i=t.settings.labelGap||0,r=n.length;r--;)n[r].settings.minWidth=e+i}var t=this;t._super(),t.on("show",e),e()}})}),r(Dt,[Bt],function(e){return e.extend({Defaults:{containerCls:"fieldset",layout:"flex",direction:"column",align:"stretch",flex:1,padding:"25 15 5 15",labelGap:30,spacing:10,border:1},renderHtml:function(){var e=this,t=e._layout,n=e.classPrefix;return e.preRender(),t.preRender(e),'
    '+(e.settings.title?''+e.settings.title+"":"")+'
    '+(e.settings.html||"")+t.renderHtml(e)+"
    "}})}),r(Lt,[w,z,h,it,m,_],function(e,t,n,r,i,o){var a=i.trim,s=function(e,t,n,r,i){return{type:e,title:t,url:n,level:r,attach:i}},l=function(e){for(;e=e.parentNode;){var t=e.contentEditable;if(t&&"inherit"!==t)return o.isContentEditableTrue(e)}return!1},u=function(t,n){return e.DOM.select(t,n)},c=function(e){return e.innerText||e.textContent},d=function(e){return e.id?e.id:r.uuid("h")},f=function(e){return e&&"A"===e.nodeName&&(e.id||e.name)},p=function(e){return f(e)&&m(e)},h=function(e){return e&&/^(H[1-6])$/.test(e.nodeName)},m=function(e){return l(e)&&!o.isContentEditableFalse(e)},g=function(e){return h(e)&&m(e)},v=function(e){return h(e)?parseInt(e.nodeName.substr(1),10):0},y=function(e){var t=d(e),n=function(){e.id=t};return s("header",c(e),"#"+t,v(e),n)},b=function(e){var n=e.id||e.name,r=c(e);return s("anchor",r?r:"#"+n,"#"+n,0,t.noop)},C=function(e){return n.map(n.filter(e,g),y)},x=function(e){return n.map(n.filter(e,p),b)},w=function(e){var t=u("h1,h2,h3,h4,h5,h6,a:not([href])",e);return t},E=function(e){return a(e.title).length>0},N=function(e){var t=w(e);return n.filter(C(t).concat(x(t)),E)};return{find:N}}),r(Mt,[wt,m,h,z,I,Lt],function(e,t,n,r,i,o){var a={},s=5,l=function(e){return{title:e.title,value:{title:{raw:e.title},url:e.url,attach:e.attach}}},u=function(e){return t.map(e,l)},c=function(e,t){return{title:e,value:{title:e,url:t,attach:r.noop}}},d=function(e,t){var r=n.find(t,function(t){return t.url===e});return!r},f=function(e,t,n){var r=t in e?e[t]:n;return r===!1?null:r},p=function(e,i,o,s){var l={title:"-"},p=function(e){var a=n.filter(e[o],function(e){return d(e,i)});return t.map(a,function(e){return{title:e,value:{title:e,url:e,attach:r.noop}}})},h=function(e){var t=n.filter(i,function(t){return t.type==e});return u(t)},g=function(){var e=h("anchor"),t=f(s,"anchor_top","#top"),n=f(s,"anchor_bottom","#bottom");return null!==t&&e.unshift(c("",t)),null!==n&&e.push(c("",n)),e},v=function(e){return n.reduce(e,function(e,t){var n=0===e.length||0===t.length;return n?e.concat(t):e.concat(l,t)},[])};return s.typeahead_urls===!1?[]:"file"===o?v([m(e,p(a)),m(e,h("header")),m(e,g())]):m(e,p(a))},h=function(e,t){var r=a[t];/^https?/.test(e)&&(r?n.indexOf(r,e)===-1&&(a[t]=r.slice(0,s).concat(e)):a[t]=[e])},m=function(e,n){var r=e.toLowerCase(),i=t.grep(n,function(e){return e.title.toLowerCase().indexOf(r)!==-1});return 1===i.length&&i[0].title===e?[]:i},g=function(e){var t=e.title;return t.raw?t.raw:t},v=function(e,t,n,r){var i=function(i){var a=o.find(n),s=p(i,a,r,t);e.showAutoComplete(s,i)};e.on("autocomplete",function(){i(e.value())}),e.on("selectitem",function(t){var n=t.value;e.value(n.url);var i=g(n);"image"===r?e.fire("change",{meta:{alt:i,attach:n.attach}}):e.fire("change",{meta:{text:i,attach:n.attach}}),e.focus()}),e.on("click",function(t){0===e.value().length&&"INPUT"===t.target.nodeName&&i("")}),e.on("PostRender",function(){e.getRoot().on("submit",function(t){t.isDefaultPrevented()||h(e.value(),r)})})},y=function(e){var t=e.status,n=e.message;return"valid"===t?{status:"ok",message:n}:"unknown"===t?{status:"warn",message:n}:"invalid"===t?{status:"warn",message:n}:{status:"none",message:""}},b=function(e,t,n){var r=t.filepicker_validator_handler;if(r){var i=function(t){return 0===t.length?void e.statusLevel("none"):void r({url:t,type:n},function(t){var n=y(t);e.statusMessage(n.message),e.statusLevel(n.status)})};e.state.on("change:value",function(e){i(e.value)})}};return e.extend({init:function(e){var n=this,r=tinymce.activeEditor,i=r.settings,o,a,s,l=e.filetype;e.spellcheck=!1,s=i.file_picker_types||i.file_browser_callback_types,s&&(s=t.makeMap(s,/[, ]/)),s&&!s[l]||(a=i.file_picker_callback,!a||s&&!s[l]?(a=i.file_browser_callback,!a||s&&!s[l]||(o=function(){a(n.getEl("inp").id,n.value(),l,window)})):o=function(){var e=n.fire("beforecall").meta;e=t.extend({filetype:l},e),a.call(r,function(e,t){n.value(e).fire("change",{meta:t})},n.value(),e)}),o&&(e.icon="browse",e.onaction=o),n._super(e),v(n,i,r.getBody(),l),b(n,i,l)}})}),r(Pt,[yt],function(e){return e.extend({recalc:function(e){var t=e.layoutRect(),n=e.paddingBox;e.items().filter(":visible").each(function(e){e.layoutRect({x:n.left,y:n.top,w:t.innerW-n.right-n.left,h:t.innerH-n.top-n.bottom}),e.recalc&&e.recalc()})}})}),r(Ot,[yt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v=[],y,b,C,x,w,E,N,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F,z=Math.max,U=Math.min;for(r=e.items().filter(":visible"),i=e.layoutRect(),o=e.paddingBox,a=e.settings,f=e.isRtl()?a.direction||"row-reversed":a.direction,s=a.align,l=e.isRtl()?a.pack||"end":a.pack,u=a.spacing||0,"row-reversed"!=f&&"column-reverse"!=f||(r=r.set(r.toArray().reverse()),f=f.split("-")[0]),"column"==f?(S="y",N="h",_="minH",k="maxH",R="innerH",T="top",A="deltaH",B="contentH",O="left",M="w",D="x",L="innerW",P="minW",H="right",I="deltaW",F="contentW"):(S="x",N="w",_="minW",k="maxW",R="innerW",T="left",A="deltaW",B="contentW",O="top",M="h",D="y",L="innerH",P="minH",H="bottom",I="deltaH",F="contentH"),d=i[R]-o[T]-o[T],E=c=0,t=0,n=r.length;t0&&(c+=g,h[k]&&v.push(p),h.flex=g),d-=h[_],y=o[O]+h[P]+o[H],y>E&&(E=y);if(x={},d<0?x[_]=i[_]-d+i[A]:x[_]=i[R]-d+i[A],x[P]=E+i[I],x[B]=i[R]-d,x[F]=E,x.minW=U(x.minW,i.maxW),x.minH=U(x.minH,i.maxH),x.minW=z(x.minW,i.startMinWidth),x.minH=z(x.minH,i.startMinHeight),!i.autoResize||x.minW==i.minW&&x.minH==i.minH){for(C=d/c,t=0,n=v.length;tb?(d-=h[k]-h[_],c-=h.flex,h.flex=0,h.maxFlexSize=b):h.maxFlexSize=0;for(C=d/c,w=o[T],x={},0===c&&("end"==l?w=d+o[T]:"center"==l?(w=Math.round(i[R]/2-(i[R]-d)/2)+o[T],w<0&&(w=o[T])):"justify"==l&&(w=o[T],u=Math.floor(d/(r.length-1)))),x[D]=o[O],t=0,n=r.length;t0&&(y+=h.flex*C),x[N]=y,x[S]=w,p.layoutRect(x),p.recalc&&p.recalc(),w+=y+u}else if(x.w=x.minW,x.h=x.minH,e.layoutRect(x),this.recalc(e),null===e._lastRect){var W=e.parent();W&&(W._lastRect=null,W.recalc())}}})}),r(Ht,[vt],function(e){return e.extend({Defaults:{containerClass:"flow-layout",controlClass:"flow-layout-item",endClass:"break"},recalc:function(e){e.items().filter(":visible").each(function(e){e.recalc&&e.recalc()})},isNative:function(){return!0}})}),r(It,[w],function(e){var n=function(e,t,n){for(;n!==t;){if(n.style[e])return n.style[e];n=n.parentNode}return""},r=function(e){return/[0-9.]+px$/.test(e)?Math.round(72*parseInt(e,10)/96)+"pt":e},i=function(e){return e.replace(/[\'\"]/g,"").replace(/,\s+/g,",")},o=function(t,n){return e.DOM.getStyle(n,t,!0)},a=function(e,t){var r=n("fontSize",e,t);return""!==r?r:o("fontSize",t)},s=function(e,r){var a=n("fontFamily",e,r),s=""!==a?a:o("fontFamily",r);return s!==t?i(s):""};return{getFontSize:a,getFontFamily:s,toPt:r}}),r(Ft,[xe,Pe,Ae,m,h,w,ut,d,It],function(e,t,n,r,i,o,a,s,l){function u(e){e.settings.ui_container&&(s.container=o.DOM.select(e.settings.ui_container)[0])}function c(t){t.on("ScriptsLoaded",function(){t.rtl&&(e.rtl=!0)})}function d(e){function t(t,n){return function(){var r=this;e.on("nodeChange",function(i){var o=e.formatter,a=null;f(i.parents,function(e){if(f(t,function(t){if(n?o.matchNode(e,n,{value:t.value})&&(a=t.value):o.matchNode(e,t.value)&&(a=t.value),a)return!1}),a)return!1}),r.value(a)})}}function i(t){return function(){var n=this,r=function(e){return e?e.split(",")[0]:""};e.on("nodeChange",function(i){var o,a=null;o=l.getFontFamily(e.getBody(),i.element),f(t,function(e){e.value.toLowerCase()===o.toLowerCase()&&(a=e.value)}),f(t,function(e){a||r(e.value).toLowerCase()!==r(o).toLowerCase()||(a=e.value)}),n.value(a),!a&&o&&n.text(r(o))})}}function o(t){return function(){var n=this;e.on("nodeChange",function(r){var i,o,a=null;i=l.getFontSize(e.getBody(),r.element),o=l.toPt(i),f(t,function(e){e.value===i?a=i:e.value===o&&(a=o)}),n.value(a),a||n.text(o)})}}function a(e){e=e.replace(/;$/,"").split(";");for(var t=e.length;t--;)e[t]=e[t].split("=");return e}function s(){function t(e){var n=[];if(e)return f(e,function(e){var o={text:e.title,icon:e.icon};if(e.items)o.menu=t(e.items);else{var a=e.format||"custom"+r++;e.format||(e.name=a,i.push(e)),o.format=a,o.cmd=e.cmd}n.push(o)}),n}function n(){var n;return n=t(e.settings.style_formats_merge?e.settings.style_formats?o.concat(e.settings.style_formats):o:e.settings.style_formats||o)}var r=0,i=[],o=[{title:"Headings",items:[{title:"Heading 1",format:"h1"},{title:"Heading 2",format:"h2"},{title:"Heading 3",format:"h3"},{title:"Heading 4",format:"h4"},{title:"Heading 5",format:"h5"},{title:"Heading 6",format:"h6"}]},{title:"Inline",items:[{title:"Bold",icon:"bold",format:"bold"},{title:"Italic",icon:"italic",format:"italic"},{title:"Underline",icon:"underline",format:"underline"},{title:"Strikethrough",icon:"strikethrough",format:"strikethrough"},{title:"Superscript",icon:"superscript",format:"superscript"},{title:"Subscript",icon:"subscript",format:"subscript"},{title:"Code",icon:"code",format:"code"}]},{title:"Blocks",items:[{title:"Paragraph",format:"p"},{title:"Blockquote",format:"blockquote"},{title:"Div",format:"div"},{title:"Pre",format:"pre"}]},{title:"Alignment",items:[{title:"Left",icon:"alignleft",format:"alignleft"},{title:"Center",icon:"aligncenter",format:"aligncenter"},{title:"Right",icon:"alignright",format:"alignright"},{title:"Justify",icon:"alignjustify",format:"alignjustify"}]}];return e.on("init",function(){f(i,function(t){e.formatter.register(t.name,t)})}),{type:"menu",items:n(),onPostRender:function(t){e.fire("renderFormatsMenu",{control:t.control})},itemDefaults:{preview:!0,textStyle:function(){if(this.settings.format)return e.formatter.getCssText(this.settings.format)},onPostRender:function(){var t=this;t.parent().on("show",function(){var n,r;n=t.settings.format,n&&(t.disabled(!e.formatter.canApply(n)),t.active(e.formatter.match(n))),r=t.settings.cmd,r&&t.active(e.queryCommandState(r))})},onclick:function(){this.settings.format&&h(this.settings.format),this.settings.cmd&&e.execCommand(this.settings.cmd)}}}}function u(t){return function(){var n=this;e.formatter?e.formatter.formatChanged(t,function(e){n.active(e)}):e.on("init",function(){e.formatter.formatChanged(t,function(e){n.active(e)})})}}function c(t){return function(){function n(){var n="redo"==t?"hasRedo":"hasUndo";return!!e.undoManager&&e.undoManager[n]()}var r=this;r.disabled(!n()),e.on("Undo Redo AddUndo TypingUndo ClearUndos SwitchMode",function(){r.disabled(e.readonly||!n())})}}function d(){var t=this;e.on("VisualAid",function(e){t.active(e.hasVisual)}),t.active(e.hasVisual)}function h(t){t.control&&(t=t.control.value()),t&&e.execCommand("mceToggleFormat",!1,t)}function m(t){var n=t.length;return r.each(t,function(t){t.menu&&(t.hidden=0===m(t.menu));var r=t.format;r&&(t.hidden=!e.formatter.canApply(r)),t.hidden&&n--}),n}function g(t){var n=t.items().length;return t.items().each(function(t){t.menu&&t.visible(g(t.menu)>0),!t.menu&&t.settings.menu&&t.visible(m(t.settings.menu)>0);var r=t.settings.format;r&&t.visible(e.formatter.canApply(r)),t.visible()||n--}),n}var v;v=s(),f({bold:"Bold",italic:"Italic",underline:"Underline",strikethrough:"Strikethrough",subscript:"Subscript",superscript:"Superscript"},function(t,n){e.addButton(n,{tooltip:t,onPostRender:u(n),onclick:function(){h(n)}})}),f({outdent:["Decrease indent","Outdent"],indent:["Increase indent","Indent"],cut:["Cut","Cut"],copy:["Copy","Copy"],paste:["Paste","Paste"],help:["Help","mceHelp"],selectall:["Select all","SelectAll"],removeformat:["Clear formatting","RemoveFormat"],visualaid:["Visual aids","mceToggleVisualAid"],newdocument:["New document","mceNewDocument"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1]})}),f({blockquote:["Blockquote","mceBlockQuote"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],alignleft:["Align left","JustifyLeft"],aligncenter:["Align center","JustifyCenter"],alignright:["Align right","JustifyRight"],alignjustify:["Justify","JustifyFull"],alignnone:["No alignment","JustifyNone"]},function(t,n){e.addButton(n,{tooltip:t[0],cmd:t[1],onPostRender:u(n)})});var y=function(e){var t=e;return t.length>0&&"-"===t[0].text&&(t=t.slice(1)),t.length>0&&"-"===t[t.length-1].text&&(t=t.slice(0,t.length-1)),t},b=function(t){var n,i;if("string"==typeof t)i=t.split(" ");else if(r.isArray(t))return p(r.map(t,b));return n=r.grep(i,function(t){return"|"===t||t in e.menuItems}),r.map(n,function(t){return"|"===t?{text:"-"}:e.menuItems[t]})},C=function(t){var n=[{text:"-"}],i=r.grep(e.menuItems,function(e){return e.context===t});return r.each(i,function(e){"before"==e.separator&&n.push({text:"|"}),e.prependToContext?n.unshift(e):n.push(e),"after"==e.separator&&n.push({text:"|"})}),n},x=function(e){return y(e.insert_button_items?b(e.insert_button_items):C("insert"))};e.addButton("undo",{tooltip:"Undo",onPostRender:c("undo"),cmd:"undo"}),e.addButton("redo",{tooltip:"Redo",onPostRender:c("redo"),cmd:"redo"}),e.addMenuItem("newdocument",{text:"New document",icon:"newdocument",cmd:"mceNewDocument"}),e.addMenuItem("undo",{text:"Undo",icon:"undo",shortcut:"Meta+Z",onPostRender:c("undo"),cmd:"undo"}),e.addMenuItem("redo",{text:"Redo",icon:"redo",shortcut:"Meta+Y",onPostRender:c("redo"),cmd:"redo"}),e.addMenuItem("visualaid",{text:"Visual aids",selectable:!0,onPostRender:d,cmd:"mceToggleVisualAid"}),e.addButton("remove",{tooltip:"Remove",icon:"remove",cmd:"Delete"}),e.addButton("insert",{type:"menubutton",icon:"insert",menu:[],oncreatemenu:function(){this.menu.add(x(e.settings)),this.menu.renderNew()}}),f({cut:["Cut","Cut","Meta+X"],copy:["Copy","Copy","Meta+C"],paste:["Paste","Paste","Meta+V"],selectall:["Select all","SelectAll","Meta+A"],bold:["Bold","Bold","Meta+B"],italic:["Italic","Italic","Meta+I"],underline:["Underline","Underline","Meta+U"],strikethrough:["Strikethrough","Strikethrough"],subscript:["Subscript","Subscript"],superscript:["Superscript","Superscript"],removeformat:["Clear formatting","RemoveFormat"]},function(t,n){e.addMenuItem(n,{text:t[0],icon:n,shortcut:t[2],cmd:t[1]})}),e.on("mousedown",function(){n.hideAll()}),e.addButton("styleselect",{type:"menubutton",text:"Formats",menu:v,onShowMenu:function(){e.settings.style_formats_autohide&&g(this.menu)}}),e.addButton("formatselect",function(){var n=[],r=a(e.settings.block_formats||"Paragraph=p;Heading 1=h1;Heading 2=h2;Heading 3=h3;Heading 4=h4;Heading 5=h5;Heading 6=h6;Preformatted=pre");return f(r,function(t){n.push({text:t[0],value:t[1],textStyle:function(){return e.formatter.getCssText(t[1])}})}),{type:"listbox",text:r[0][0],values:n,fixedWidth:!0,onselect:h,onPostRender:t(n)}}),e.addButton("fontselect",function(){var t="Andale Mono=andale mono,monospace;Arial=arial,helvetica,sans-serif;Arial Black=arial black,sans-serif;Book Antiqua=book antiqua,palatino,serif;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,palatino,serif;Helvetica=helvetica,arial,sans-serif;Impact=impact,sans-serif;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco,monospace;Times New Roman=times new roman,times,serif;Trebuchet MS=trebuchet ms,geneva,sans-serif;Verdana=verdana,geneva,sans-serif;Webdings=webdings;Wingdings=wingdings,zapf dingbats",n=[],r=a(e.settings.font_formats||t);return f(r,function(e){n.push({text:{raw:e[0]},value:e[1],textStyle:e[1].indexOf("dings")==-1?"font-family:"+e[1]:""})}),{type:"listbox",text:"Font Family",tooltip:"Font Family",values:n,fixedWidth:!0,onPostRender:i(n),onselect:function(t){t.control.settings.value&&e.execCommand("FontName",!1,t.control.settings.value)}}}),e.addButton("fontsizeselect",function(){var t=[],n="8pt 10pt 12pt 14pt 18pt 24pt 36pt",r=e.settings.fontsize_formats||n;return f(r.split(" "),function(e){var n=e,r=e,i=e.split("=");i.length>1&&(n=i[0],r=i[1]),t.push({text:n,value:r})}),{type:"listbox",text:"Font Sizes",tooltip:"Font Sizes",values:t,fixedWidth:!0,onPostRender:o(t),onclick:function(t){t.control.settings.value&&e.execCommand("FontSize",!1,t.control.settings.value)}}}),e.addMenuItem("formats",{text:"Formats",menu:v})}var f=r.each,p=function(e){return i.reduce(e,function(e,t){return e.concat(t)},[])};a.on("AddEditor",function(e){var t=e.editor;c(t),d(t),u(t)}),e.translate=function(e){return a.translate(e)},t.tooltips=!s.iOS}),r(zt,[yt],function(e){return e.extend({recalc:function(e){var t,n,r,i,o,a,s,l,u,c,d,f,p,h,m,g,v,y,b,C,x,w,E,N=[],_=[],S,k,T,R,A,B;t=e.settings,i=e.items().filter(":visible"),o=e.layoutRect(),r=t.columns||Math.ceil(Math.sqrt(i.length)),n=Math.ceil(i.length/r),y=t.spacingH||t.spacing||0,b=t.spacingV||t.spacing||0,C=t.alignH||t.align,x=t.alignV||t.align,g=e.paddingBox,A="reverseRows"in t?t.reverseRows:e.isRtl(),C&&"string"==typeof C&&(C=[C]),x&&"string"==typeof x&&(x=[x]);for(d=0;dN[d]?S:N[d],_[f]=k>_[f]?k:_[f];for(T=o.innerW-g.left-g.right,w=0,d=0;d0?y:0),T-=(d>0?y:0)+N[d];for(R=o.innerH-g.top-g.bottom,E=0,f=0;f0?b:0),R-=(f>0?b:0)+_[f];if(w+=g.left+g.right,E+=g.top+g.bottom,l={},l.minW=w+(o.w-o.innerW),l.minH=E+(o.h-o.innerH),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH,l.minW=Math.min(l.minW,o.maxW),l.minH=Math.min(l.minH,o.maxH),l.minW=Math.max(l.minW,o.startMinWidth),l.minH=Math.max(l.minH,o.startMinHeight),!o.autoResize||l.minW==o.minW&&l.minH==o.minH){o.autoResize&&(l=e.layoutRect(l),l.contentW=l.minW-o.deltaW,l.contentH=l.minH-o.deltaH);var D;D="start"==t.packV?0:R>0?Math.floor(R/n):0;var L=0,M=t.flexWidths;if(M)for(d=0;d'},src:function(e){this.getEl().src=e},html:function(e,n){var r=this,i=this.getEl().contentWindow.document.body;return i?(i.innerHTML=e,n&&n()):t.setTimeout(function(){r.html(e)}),this}})}),r(Wt,[Pe],function(e){return e.extend({init:function(e){var t=this;t._super(e),t.classes.add("widget").add("infobox"),t.canFocus=!1},severity:function(e){this.classes.remove("error"),this.classes.remove("warning"),this.classes.remove("success"),this.classes.add(e)},help:function(e){this.state.set("help",e)},renderHtml:function(){var e=this,t=e.classPrefix;return'
    '+e.encode(e.state.get("text"))+'
    '},bindStates:function(){var e=this;return e.state.on("change:text",function(t){e.getEl("body").firstChild.data=e.encode(t.value),e.state.get("rendered")&&e.updateLayoutRect()}),e.state.on("change:help",function(t){ +// 4.5.5 (2017-03-07) +!function(e,t){"use strict";function n(e,t){for(var n,r=[],i=0;i=r.x&&o.x+o.w<=r.w+r.x&&o.y>=r.y&&o.y+o.h<=r.h+r.y)return i[a];return null}function n(e,t,n){return o(e.x-t,e.y-n,e.w+2*t,e.h+2*n)}function r(e,t){var n,r,i,a;return n=l(e.x,t.x),r=l(e.y,t.y),i=s(e.x+e.w,t.x+t.w),a=s(e.y+e.h,t.y+t.h),i-n<0||a-r<0?null:o(n,r,i-n,a-r)}function i(e,t,n){var r,i,a,s,u,c,d,f,p,h;return u=e.x,c=e.y,d=e.x+e.w,f=e.y+e.h,p=t.x+t.w,h=t.y+t.h,r=l(0,t.x-u),i=l(0,t.y-c),a=l(0,d-p),s=l(0,f-h),u+=r,c+=i,n&&(d+=r,f+=i,u-=a,c-=s),d-=a,f-=s,o(u,c,d-u,f-c)}function o(e,t,n,r){return{x:e,y:t,w:n,h:r}}function a(e){return o(e.left,e.top,e.width,e.height)}var s=Math.min,l=Math.max,u=Math.round;return{inflate:n,relativePosition:e,findBestRelativePosition:t,intersect:r,clamp:i,create:o,fromClientRect:a}}),r(u,[],function(){function e(e,t){return function(){e.apply(t,arguments)}}function t(t){if("object"!=typeof this)throw new TypeError("Promises must be constructed via new");if("function"!=typeof t)throw new TypeError("not a function");this._state=null,this._value=null,this._deferreds=[],s(t,e(r,this),e(i,this))}function n(e){var t=this;return null===this._state?void this._deferreds.push(e):void l(function(){var n=t._state?e.onFulfilled:e.onRejected;if(null===n)return void(t._state?e.resolve:e.reject)(t._value);var r;try{r=n(t._value)}catch(i){return void e.reject(i)}e.resolve(r)})}function r(t){try{if(t===this)throw new TypeError("A promise cannot be resolved with itself.");if(t&&("object"==typeof t||"function"==typeof t)){var n=t.then;if("function"==typeof n)return void s(e(n,t),e(r,this),e(i,this))}this._state=!0,this._value=t,o.call(this)}catch(a){i.call(this,a)}}function i(e){this._state=!1,this._value=e,o.call(this)}function o(){for(var e=0,t=this._deferreds.length;e=534;return{opera:r,webkit:i,ie:o,gecko:l,mac:u,iOS:c,android:d,contentEditable:g,transparentSrc:"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",caretAfter:8!=o,range:window.getSelection&&"Range"in window,documentMode:o&&!s?document.documentMode||7:10,fileApi:f,ceFalse:o===!1||o>8,canHaveCSP:o===!1||o>11,desktop:!p&&!h,windowsPhone:m}}),r(f,[c,d],function(e,t){function n(e,t,n,r){e.addEventListener?e.addEventListener(t,n,r||!1):e.attachEvent&&e.attachEvent("on"+t,n)}function r(e,t,n,r){e.removeEventListener?e.removeEventListener(t,n,r||!1):e.detachEvent&&e.detachEvent("on"+t,n)}function i(e,t){var n,r=t;return n=e.path,n&&n.length>0&&(r=n[0]),e.deepPath&&(n=e.deepPath(),n&&n.length>0&&(r=n[0])),r}function o(e,n){function r(){return!1}function o(){return!0}var a,s=n||{},l;for(a in e)c[a]||(s[a]=e[a]);if(s.target||(s.target=s.srcElement||document),t.experimentalShadowDom&&(s.target=i(e,s.target)),e&&u.test(e.type)&&e.pageX===l&&e.clientX!==l){var d=s.target.ownerDocument||document,f=d.documentElement,p=d.body;s.pageX=e.clientX+(f&&f.scrollLeft||p&&p.scrollLeft||0)-(f&&f.clientLeft||p&&p.clientLeft||0),s.pageY=e.clientY+(f&&f.scrollTop||p&&p.scrollTop||0)-(f&&f.clientTop||p&&p.clientTop||0)}return s.preventDefault=function(){s.isDefaultPrevented=o,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},s.stopPropagation=function(){s.isPropagationStopped=o,e&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)},s.stopImmediatePropagation=function(){s.isImmediatePropagationStopped=o,s.stopPropagation()},s.isDefaultPrevented||(s.isDefaultPrevented=r,s.isPropagationStopped=r,s.isImmediatePropagationStopped=r),"undefined"==typeof s.metaKey&&(s.metaKey=!1),s}function a(t,i,o){function a(){o.domLoaded||(o.domLoaded=!0,i(c))}function s(){("complete"===u.readyState||"interactive"===u.readyState&&u.body)&&(r(u,"readystatechange",s),a())}function l(){try{u.documentElement.doScroll("left")}catch(t){return void e.setTimeout(l)}a()}var u=t.document,c={type:"ready"};return o.domLoaded?void i(c):(u.addEventListener?"complete"===u.readyState?a():n(t,"DOMContentLoaded",a):(n(u,"readystatechange",s),u.documentElement.doScroll&&t.self===t.top&&l()),void n(t,"load",a))}function s(){function e(e,t){var n,r,o,a,s=i[t];if(n=s&&s[e.type])for(r=0,o=n.length;rw.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[F]=!0,e}function i(e){var t=D.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)w.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||X)-(~e.sourceIndex||X);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function l(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function u(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&typeof e.getElementsByTagName!==Y&&e}function d(){}function f(e){for(var t=0,n=e.length,r="";t1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function m(t,n,r){for(var i=0,o=n.length;i-1&&(r[u]=!(a[u]=d))}}else b=g(b===a?b.splice(h,b.length):b),o?o(null,a,b,l):Z.apply(a,b)})}function y(e){for(var t,n,r,i=e.length,o=w.relative[e[0].type],a=o||w.relative[" "],s=o?1:0,l=p(function(e){return e===t},a,!0),u=p(function(e){return te.call(t,e)>-1},a,!0),c=[function(e,n,r){return!o&&(r||n!==T)||((t=n).nodeType?l(e,n,r):u(e,n,r))}];s1&&h(c),s>1&&f(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s0,o=t.length>0,a=function(r,a,s,l,u){var c,d,f,p=0,h="0",m=r&&[],v=[],y=T,b=r||o&&w.find.TAG("*",u),C=U+=null==y?1:Math.random()||.1,x=b.length;for(u&&(T=a!==D&&a);h!==x&&null!=(c=b[h]);h++){if(o&&c){for(d=0;f=t[d++];)if(f(c,a,s)){l.push(c);break}u&&(U=C)}i&&((c=!f&&c)&&p--,r&&m.push(c))}if(p+=h,i&&h!==p){for(d=0;f=n[d++];)f(m,v,a,s);if(r){if(p>0)for(;h--;)m[h]||v[h]||(v[h]=J.call(l));v=g(v)}Z.apply(l,v),u&&!r&&v.length>0&&p+n.length>1&&e.uniqueSort(l)}return u&&(U=C,T=y),m};return i?r(a):a}var C,x,w,E,N,_,S,k,T,R,A,B,D,L,M,P,O,H,I,F="sizzle"+-new Date,z=window.document,U=0,W=0,V=n(),$=n(),q=n(),j=function(e,t){return e===t&&(A=!0),0},Y=typeof t,X=1<<31,K={}.hasOwnProperty,G=[],J=G.pop,Q=G.push,Z=G.push,ee=G.slice,te=G.indexOf||function(e){for(var t=0,n=this.length;t+~]|"+re+")"+re+"*"),ce=new RegExp("="+re+"*([^\\]'\"]*?)"+re+"*\\]","g"),de=new RegExp(ae),fe=new RegExp("^"+ie+"$"),pe={ID:new RegExp("^#("+ie+")"),CLASS:new RegExp("^\\.("+ie+")"),TAG:new RegExp("^("+ie+"|[*])"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+ae),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+re+"*(even|odd|(([+-]|)(\\d*)n|)"+re+"*(?:([+-]|)"+re+"*(\\d+)|))"+re+"*\\)|)","i"),bool:new RegExp("^(?:"+ne+")$","i"),needsContext:new RegExp("^"+re+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+re+"*((?:-\\d)?\\d*)"+re+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ge=/^[^{]+\{\s*\[native \w/,ve=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ye=/[+~]/,be=/'|\\/g,Ce=new RegExp("\\\\([\\da-f]{1,6}"+re+"?|("+re+")|.)","ig"),xe=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)};try{Z.apply(G=ee.call(z.childNodes),z.childNodes),G[z.childNodes.length].nodeType}catch(we){Z={apply:G.length?function(e,t){Q.apply(e,ee.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}x=e.support={},N=e.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},B=e.setDocument=function(e){function t(e){try{return e.top}catch(t){}return null}var n,r=e?e.ownerDocument||e:z,o=r.defaultView;return r!==D&&9===r.nodeType&&r.documentElement?(D=r,L=r.documentElement,M=!N(r),o&&o!==t(o)&&(o.addEventListener?o.addEventListener("unload",function(){B()},!1):o.attachEvent&&o.attachEvent("onunload",function(){B()})),x.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),x.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),x.getElementsByClassName=ge.test(r.getElementsByClassName),x.getById=i(function(e){return L.appendChild(e).id=F,!r.getElementsByName||!r.getElementsByName(F).length}),x.getById?(w.find.ID=function(e,t){if(typeof t.getElementById!==Y&&M){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){return e.getAttribute("id")===t}}):(delete w.find.ID,w.filter.ID=function(e){var t=e.replace(Ce,xe);return function(e){var n=typeof e.getAttributeNode!==Y&&e.getAttributeNode("id");return n&&n.value===t}}),w.find.TAG=x.getElementsByTagName?function(e,t){if(typeof t.getElementsByTagName!==Y)return t.getElementsByTagName(e)}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},w.find.CLASS=x.getElementsByClassName&&function(e,t){if(M)return t.getElementsByClassName(e)},O=[],P=[],(x.qsa=ge.test(r.querySelectorAll))&&(i(function(e){e.innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&P.push("[*^$]="+re+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||P.push("\\["+re+"*(?:value|"+ne+")"),e.querySelectorAll(":checked").length||P.push(":checked")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&P.push("name"+re+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||P.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),P.push(",.*:")})),(x.matchesSelector=ge.test(H=L.matches||L.webkitMatchesSelector||L.mozMatchesSelector||L.oMatchesSelector||L.msMatchesSelector))&&i(function(e){x.disconnectedMatch=H.call(e,"div"),H.call(e,"[s!='']:x"),O.push("!=",ae)}),P=P.length&&new RegExp(P.join("|")),O=O.length&&new RegExp(O.join("|")),n=ge.test(L.compareDocumentPosition),I=n||ge.test(L.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},j=n?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!x.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===z&&I(z,e)?-1:t===r||t.ownerDocument===z&&I(z,t)?1:R?te.call(R,e)-te.call(R,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,i=0,o=e.parentNode,s=t.parentNode,l=[e],u=[t];if(!o||!s)return e===r?-1:t===r?1:o?-1:s?1:R?te.call(R,e)-te.call(R,t):0;if(o===s)return a(e,t);for(n=e;n=n.parentNode;)l.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;l[i]===u[i];)i++;return i?a(l[i],u[i]):l[i]===z?-1:u[i]===z?1:0},r):D},e.matches=function(t,n){return e(t,null,null,n)},e.matchesSelector=function(t,n){if((t.ownerDocument||t)!==D&&B(t),n=n.replace(ce,"='$1']"),x.matchesSelector&&M&&(!O||!O.test(n))&&(!P||!P.test(n)))try{var r=H.call(t,n);if(r||x.disconnectedMatch||t.document&&11!==t.document.nodeType)return r}catch(i){}return e(n,D,null,[t]).length>0},e.contains=function(e,t){return(e.ownerDocument||e)!==D&&B(e),I(e,t)},e.attr=function(e,n){(e.ownerDocument||e)!==D&&B(e);var r=w.attrHandle[n.toLowerCase()],i=r&&K.call(w.attrHandle,n.toLowerCase())?r(e,n,!M):t;return i!==t?i:x.attributes||!M?e.getAttribute(n):(i=e.getAttributeNode(n))&&i.specified?i.value:null},e.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},e.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!x.detectDuplicates,R=!x.sortStable&&e.slice(0),e.sort(j),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return R=null,e},E=e.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=E(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=E(t);return n},w=e.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Ce,xe),e[3]=(e[3]||e[4]||e[5]||"").replace(Ce,xe),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(t){return t[1]=t[1].toLowerCase(),"nth"===t[1].slice(0,3)?(t[3]||e.error(t[0]),t[4]=+(t[4]?t[5]+(t[6]||1):2*("even"===t[3]||"odd"===t[3])),t[5]=+(t[7]+t[8]||"odd"===t[3])):t[3]&&e.error(t[0]),t},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&de.test(n)&&(t=_(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Ce,xe).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=V[e+" "];return t||(t=new RegExp("(^|"+re+")"+e+"("+re+"|$)"))&&V(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==Y&&e.getAttribute("class")||"")})},ATTR:function(t,n,r){return function(i){var o=e.attr(i,t);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,l){var u,c,d,f,p,h,m=o!==a?"nextSibling":"previousSibling",g=t.parentNode,v=s&&t.nodeName.toLowerCase(),y=!l&&!s;if(g){if(o){for(;m;){for(d=t;d=d[m];)if(s?d.nodeName.toLowerCase()===v:1===d.nodeType)return!1;h=m="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?g.firstChild:g.lastChild],a&&y){for(c=g[F]||(g[F]={}),u=c[e]||[],p=u[0]===U&&u[1],f=u[0]===U&&u[2],d=p&&g.childNodes[p];d=++p&&d&&d[m]||(f=p=0)||h.pop();)if(1===d.nodeType&&++f&&d===t){c[e]=[U,p,f];break}}else if(y&&(u=(t[F]||(t[F]={}))[e])&&u[0]===U)f=u[1];else for(;(d=++p&&d&&d[m]||(f=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==v:1!==d.nodeType)||!++f||(y&&((d[F]||(d[F]={}))[e]=[U,f]),d!==t)););return f-=i,f===r||f%r===0&&f/r>=0}}},PSEUDO:function(t,n){var i,o=w.pseudos[t]||w.setFilters[t.toLowerCase()]||e.error("unsupported pseudo: "+t);return o[F]?o(n):o.length>1?(i=[t,t,"",n],w.setFilters.hasOwnProperty(t.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=te.call(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=S(e.replace(se,"$1"));return i[F]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),!n.pop()}}),has:r(function(t){return function(n){return e(t,n).length>0}}),contains:r(function(e){return e=e.replace(Ce,xe),function(t){return(t.textContent||t.innerText||E(t)).indexOf(e)>-1}}),lang:r(function(t){return fe.test(t||"")||e.error("unsupported lang: "+t),t=t.replace(Ce,xe).toLowerCase(),function(e){var n;do if(n=M?e.lang:e.getAttribute("xml:lang")||e.getAttribute("lang"))return n=n.toLowerCase(),n===t||0===n.indexOf(t+"-");while((e=e.parentNode)&&1===e.nodeType);return!1}}),target:function(e){var t=window.location&&window.location.hash;return t&&t.slice(1)===e.id},root:function(e){return e===L},focus:function(e){return e===D.activeElement&&(!D.hasFocus||D.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!w.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:u(function(){return[0]}),last:u(function(e,t){return[t-1]}),eq:u(function(e,t,n){return[n<0?n+t:n]}),even:u(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:u(function(e,t,n){for(var r=n<0?n+t:n;++r2&&"ID"===(a=o[0]).type&&x.getById&&9===t.nodeType&&M&&w.relative[o[1].type]){if(t=(w.find.ID(a.matches[0].replace(Ce,xe),t)||[])[0],!t)return n;u&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!w.relative[s=a.type]);)if((l=w.find[s])&&(r=l(a.matches[0].replace(Ce,xe),ye.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&f(o),!e)return Z.apply(n,r),n;break}}return(u||S(e,d))(r,t,!M,n,ye.test(e)&&c(t.parentNode)||t),n},x.sortStable=F.split("").sort(j).join("")===F,x.detectDuplicates=!!A,B(),x.sortDetached=i(function(e){return 1&e.compareDocumentPosition(D.createElement("div"))}),i(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),x.attributes&&i(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(ne,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),e}),r(h,[],function(){function e(e){var t=e,n,r;if(!c(e))for(t=[],n=0,r=e.length;n=0;i--)u(e,t[i],n,r);else for(i=0;i)[^>]*$|#([\w\-]*)$)/,S=e.Event,k,T=r.makeMap("children,contents,next,prev"),R=r.makeMap("fillOpacity fontWeight lineHeight opacity orphans widows zIndex zoom"," "),A=r.makeMap("checked compact declare defer disabled ismap multiple nohref noshade nowrap readonly selected"," "),B={"for":"htmlFor","class":"className",readonly:"readOnly"},D={"float":"cssFloat"},L={},M={},P=/^\s*|\s*$/g;return f.fn=f.prototype={constructor:f,selector:"",context:null,length:0,init:function(e,t){var n=this,r,i;if(!e)return n;if(e.nodeType)return n.context=n[0]=e,n.length=1,n;if(t&&t.nodeType)n.context=t;else{if(t)return f(e).attr(t);n.context=t=document}if(a(e)){if(n.selector=e,r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:_.exec(e),!r)return f(t).find(e);if(r[1])for(i=l(e,v(t)).firstChild;i;)E.call(n,i),i=i.nextSibling;else{if(i=v(t).getElementById(r[2]),!i)return n;if(i.id!==r[2])return n.find(e);n.length=1,n[0]=i}}else this.add(e,!1);return n},toArray:function(){return r.toArray(this)},add:function(e,t){var n=this,r,i;if(a(e))return n.add(f(e));if(t!==!1)for(r=f.unique(n.toArray().concat(f.makeArray(e))),n.length=r.length,i=0;i1&&(T[e]||(i=f.unique(i)),0===e.indexOf("parents")&&(i=i.reverse())),i=f(i),n?i.filter(n):i}}),m({parentsUntil:function(e,t){return y(e,"parentNode",t)},nextUntil:function(e,t){return b(e,"nextSibling",1,t).slice(1)},prevUntil:function(e,t){return b(e,"previousSibling",1,t).slice(1)}},function(e,t){f.fn[e]=function(n,r){var i=this,o=[];return i.each(function(){var e=t.call(o,this,n,o);e&&(f.isArray(e)?o.push.apply(o,e):o.push(e))}),this.length>1&&(o=f.unique(o),0!==e.indexOf("parents")&&"prevUntil"!==e||(o=o.reverse())),o=f(o),r?o.filter(r):o}}),f.fn.is=function(e){return!!e&&this.filter(e).length>0},f.fn.init.prototype=f.fn,f.overrideDefaults=function(e){function t(r,i){return n=n||e(),0===arguments.length&&(r=n.element),i||(i=n.context),new t.fn.init(r,i)}var n;return f.extend(t,this),t},i.ie&&i.ie<8&&(x(L,"get",{maxlength:function(e){var t=e.maxLength;return 2147483647===t?k:t},size:function(e){var t=e.size;return 20===t?k:t},"class":function(e){return e.className},style:function(e){var t=e.style.cssText;return 0===t.length?k:t}}),x(L,"set",{"class":function(e,t){e.className=t},style:function(e,t){e.style.cssText=t}})),i.ie&&i.ie<9&&(D["float"]="styleFloat",x(M,"set",{opacity:function(e,t){var n=e.style;null===t||""===t?n.removeAttribute("filter"):(n.zoom=1,n.filter="alpha(opacity="+100*t+")")}})),f.attrHooks=L,f.cssHooks=M,f}),r(v,[],function(){return function(e,t){function n(e,t,n,r){function i(e){return e=parseInt(e,10).toString(16),e.length>1?e:"0"+e}return"#"+i(t)+i(n)+i(r)}var r=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,i=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,o=/\s*([^:]+):\s*([^;]+);?/g,a=/\s+$/,s,l={},u,c,d,f="\ufeff";for(e=e||{},t&&(c=t.getValidStyles(),d=t.getInvalidStyles()),u=("\\\" \\' \\; \\: ; : "+f).split(" "),s=0;s-1&&n||(y[e+t]=s==-1?l[0]:l.join(" "),delete y[e+"-top"+t],delete y[e+"-right"+t],delete y[e+"-bottom"+t],delete y[e+"-left"+t])}}function c(e){var t=y[e],n;if(t){for(t=t.split(" "),n=t.length;n--;)if(t[n]!==t[0])return!1;return y[e]=t[0],!0}}function d(e,t,n,r){c(t)&&c(n)&&c(r)&&(y[e]=y[t]+" "+y[n]+" "+y[r],delete y[t],delete y[n],delete y[r])}function p(e){return w=!0,l[e]}function h(e,t){return w&&(e=e.replace(/\uFEFF[0-9]/g,function(e){return l[e]})),t||(e=e.replace(/\\([\'\";:])/g,"$1")),e}function m(e){return String.fromCharCode(parseInt(e.slice(1),16))}function g(e){return e.replace(/\\[0-9a-f]+/gi,m)}function v(t,n,r,i,o,a){if(o=o||a)return o=h(o),"'"+o.replace(/\'/g,"\\'")+"'";if(n=h(n||r||i),!e.allow_script_urls){var s=n.replace(/[\s\r\n]+/g,"");if(/(java|vb)script:/i.test(s))return"";if(!e.allow_svg_data_urls&&/^data:image\/svg/i.test(s))return""}return E&&(n=E.call(N,n,"style")),"url('"+n.replace(/\'/g,"\\'")+"')"}var y={},b,C,x,w,E=e.url_converter,N=e.url_converter_scope||this;if(t){for(t=t.replace(/[\u0000-\u001F]/g,""),t=t.replace(/\\[\"\';:\uFEFF]/g,p).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(e){return e.replace(/[;:]/g,p)});b=o.exec(t);)if(o.lastIndex=b.index+b[0].length,C=b[1].replace(a,"").toLowerCase(),x=b[2].replace(a,""),C&&x){if(C=g(C),x=g(x),C.indexOf(f)!==-1||C.indexOf('"')!==-1)continue;if(!e.allow_script_urls&&("behavior"==C||/expression\s*\(|\/\*|\*\//.test(x)))continue;"font-weight"===C&&"700"===x?x="bold":"color"!==C&&"background-color"!==C||(x=x.toLowerCase()),x=x.replace(r,n),x=x.replace(i,v),y[C]=w?h(x,!0):x}u("border","",!0),u("border","-width"),u("border","-color"),u("border","-style"),u("padding",""),u("margin",""),d("border","border-width","border-style","border-color"),"medium none"===y.border&&delete y.border,"none"===y["border-image"]&&delete y["border-image"]}return y},serialize:function(e,t){function n(t){var n,r,o,a;if(n=c[t])for(r=0,o=n.length;r0?" ":"")+t+": "+a+";")}function r(e,t){var n;return n=d["*"],(!n||!n[e])&&(n=d[t],!n||!n[e])}var i="",o,a;if(t&&c)n("*"),n(t);else for(o in e)a=e[o],!a||d&&!r(o,t)||(i+=(i.length>0?" ":"")+o+": "+a+";");return i}}}}),r(y,[],function(){return function(e,t){function n(e,n,r,i){var o,a;if(e){if(!i&&e[n])return e[n];if(e!=t){if(o=e[r])return o;for(a=e.parentNode;a&&a!=t;a=a.parentNode)if(o=a[r])return o}}}function r(e,n,r,i){var o,a,s;if(e){if(o=e[r],t&&o===t)return;if(o){if(!i)for(s=o[n];s;s=s[n])if(!s[n])return s;return o}if(a=e.parentNode,a&&a!==t)return a}}var i=e;this.current=function(){return i},this.next=function(e){return i=n(i,"firstChild","nextSibling",e)},this.prev=function(e){return i=n(i,"lastChild","previousSibling",e)},this.prev2=function(e){return i=r(i,"lastChild","previousSibling",e)}}}),r(b,[m],function(e){function t(n){function r(){return P.createDocumentFragment()}function i(e,t){E(F,e,t)}function o(e,t){E(z,e,t)}function a(e){i(e.parentNode,j(e))}function s(e){i(e.parentNode,j(e)+1)}function l(e){o(e.parentNode,j(e))}function u(e){o(e.parentNode,j(e)+1)}function c(e){e?(M[V]=M[W],M[$]=M[U]):(M[W]=M[V],M[U]=M[$]),M.collapsed=F}function d(e){a(e),u(e)}function f(e){i(e,0),o(e,1===e.nodeType?e.childNodes.length:e.nodeValue.length)}function p(e,t){var n=M[W],r=M[U],i=M[V],o=M[$],a=t.startContainer,s=t.startOffset,l=t.endContainer,u=t.endOffset;return 0===e?w(n,r,a,s):1===e?w(i,o,a,s):2===e?w(i,o,l,u):3===e?w(n,r,l,u):void 0}function h(){N(I)}function m(){return N(O)}function g(){return N(H)}function v(e){var t=this[W],r=this[U],i,o;3!==t.nodeType&&4!==t.nodeType||!t.nodeValue?(t.childNodes.length>0&&(o=t.childNodes[r]),o?t.insertBefore(e,o):3==t.nodeType?n.insertAfter(e,t):t.appendChild(e)):r?r>=t.nodeValue.length?n.insertAfter(e,t):(i=t.splitText(r),t.parentNode.insertBefore(e,i)):t.parentNode.insertBefore(e,t)}function y(e){var t=M.extractContents();M.insertNode(e),e.appendChild(t),M.selectNode(e)}function b(){return q(new t(n),{startContainer:M[W],startOffset:M[U],endContainer:M[V],endOffset:M[$],collapsed:M.collapsed,commonAncestorContainer:M.commonAncestorContainer})}function C(e,t){var n;if(3==e.nodeType)return e;if(t<0)return e;for(n=e.firstChild;n&&t>0;)--t,n=n.nextSibling;return n?n:e}function x(){return M[W]==M[V]&&M[U]==M[$]}function w(e,t,r,i){var o,a,s,l,u,c;if(e==r)return t==i?0:t0&&M.collapse(e):M.collapse(e),M.collapsed=x(),M.commonAncestorContainer=n.findCommonAncestor(M[W],M[V])}function N(e){var t,n=0,r=0,i,o,a,s,l,u;if(M[W]==M[V])return _(e);for(t=M[V],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[W])return S(t,e);++n}for(t=M[W],i=t.parentNode;i;t=i,i=i.parentNode){if(i==M[V])return k(t,e);++r}for(o=r-n,a=M[W];o>0;)a=a.parentNode,o--;for(s=M[V];o<0;)s=s.parentNode,o++;for(l=a.parentNode,u=s.parentNode;l!=u;l=l.parentNode,u=u.parentNode)a=l,s=u;return T(a,s,e)}function _(e){var t,n,i,o,a,s,l,u,c;if(e!=I&&(t=r()),M[U]==M[$])return t;if(3==M[W].nodeType){if(n=M[W].nodeValue,i=n.substring(M[U],M[$]),e!=H&&(o=M[W],u=M[U],c=M[$]-M[U],0===u&&c>=o.nodeValue.length-1?o.parentNode.removeChild(o):o.deleteData(u,c),M.collapse(F)),e==I)return;return i.length>0&&t.appendChild(P.createTextNode(i)),t}for(o=C(M[W],M[U]),a=M[$]-M[U];o&&a>0;)s=o.nextSibling,l=D(o,e),t&&t.appendChild(l),--a,o=s;return e!=H&&M.collapse(F),t}function S(e,t){var n,i,o,a,s,l;if(t!=I&&(n=r()),i=R(e,t),n&&n.appendChild(i),o=j(e),a=o-M[U],a<=0)return t!=H&&(M.setEndBefore(e),M.collapse(z)),n;for(i=e.previousSibling;a>0;)s=i.previousSibling,l=D(i,t),n&&n.insertBefore(l,n.firstChild),--a,i=s;return t!=H&&(M.setEndBefore(e),M.collapse(z)),n}function k(e,t){var n,i,o,a,s,l;for(t!=I&&(n=r()),o=A(e,t),n&&n.appendChild(o),i=j(e),++i,a=M[$]-i,o=e.nextSibling;o&&a>0;)s=o.nextSibling,l=D(o,t),n&&n.appendChild(l),--a,o=s;return t!=H&&(M.setStartAfter(e),M.collapse(F)),n}function T(e,t,n){var i,o,a,s,l,u,c;for(n!=I&&(o=r()),i=A(e,n),o&&o.appendChild(i),a=j(e),s=j(t),++a,l=s-a,u=e.nextSibling;l>0;)c=u.nextSibling,i=D(u,n),o&&o.appendChild(i),u=c,--l;return i=R(t,n),o&&o.appendChild(i),n!=H&&(M.setStartAfter(e),M.collapse(F)),o}function R(e,t){var n=C(M[V],M[$]-1),r,i,o,a,s,l=n!=M[V];if(n==e)return B(n,l,z,t);for(r=n.parentNode,i=B(r,z,z,t);r;){for(;n;)o=n.previousSibling,a=B(n,l,z,t),t!=I&&i.insertBefore(a,i.firstChild),l=F,n=o;if(r==e)return i;n=r.previousSibling,r=r.parentNode,s=B(r,z,z,t),t!=I&&s.appendChild(i),i=s}}function A(e,t){var n=C(M[W],M[U]),r=n!=M[W],i,o,a,s,l;if(n==e)return B(n,r,F,t);for(i=n.parentNode,o=B(i,z,F,t);i;){for(;n;)a=n.nextSibling,s=B(n,r,F,t),t!=I&&o.appendChild(s),r=F,n=a;if(i==e)return o;n=i.nextSibling,i=i.parentNode,l=B(i,z,F,t),t!=I&&l.appendChild(o),o=l}}function B(e,t,r,i){var o,a,s,l,u;if(t)return D(e,i);if(3==e.nodeType){if(o=e.nodeValue,r?(l=M[U],a=o.substring(l),s=o.substring(0,l)):(l=M[$],a=o.substring(0,l),s=o.substring(l)),i!=H&&(e.nodeValue=s),i==I)return;return u=n.clone(e,z),u.nodeValue=a,u}if(i!=I)return n.clone(e,z)}function D(e,t){return t!=I?t==H?n.clone(e,F):e:void e.parentNode.removeChild(e)}function L(){return n.create("body",null,g()).outerText}var M=this,P=n.doc,O=0,H=1,I=2,F=!0,z=!1,U="startOffset",W="startContainer",V="endContainer",$="endOffset",q=e.extend,j=n.nodeIndex;return q(M,{startContainer:P,startOffset:0,endContainer:P,endOffset:0,collapsed:F,commonAncestorContainer:P,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:i,setEnd:o,setStartBefore:a,setStartAfter:s,setEndBefore:l,setEndAfter:u,collapse:c,selectNode:d,selectNodeContents:f,compareBoundaryPoints:p,deleteContents:h,extractContents:m,cloneContents:g,insertNode:v,surroundContents:y,cloneRange:b,toStringIE:L}),M}return t.prototype.toString=function(){return this.toStringIE()},t}),r(C,[m],function(e){function t(e){var t;return t=document.createElement("div"),t.innerHTML=e,t.textContent||t.innerText||e}function n(e,t){var n,r,i,a={};if(e){for(e=e.split(","),t=t||10,n=0;n\"\u0060\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,u=/[<>&\"\']/g,c=/&#([a-z0-9]+);?|&([a-z0-9]+);/gi,d={128:"\u20ac",130:"\u201a",131:"\u0192",132:"\u201e",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02c6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017d",145:"\u2018",146:"\u2019",147:"\u201c",148:"\u201d",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02dc",153:"\u2122",154:"\u0161",155:"\u203a",156:"\u0153",158:"\u017e",159:"\u0178"};o={'"':""","'":"'","<":"<",">":">","&":"&","`":"`"},a={"<":"<",">":">","&":"&",""":'"',"'":"'"},i=n("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);var f={encodeRaw:function(e,t){return e.replace(t?s:l,function(e){return o[e]||e})},encodeAllRaw:function(e){return(""+e).replace(u,function(e){return o[e]||e})},encodeNumeric:function(e,t){return e.replace(t?s:l,function(e){return e.length>1?"&#"+(1024*(e.charCodeAt(0)-55296)+(e.charCodeAt(1)-56320)+65536)+";":o[e]||"&#"+e.charCodeAt(0)+";"})},encodeNamed:function(e,t,n){return n=n||i,e.replace(t?s:l,function(e){return o[e]||n[e]||e})},getEncodeFunc:function(e,t){function a(e,n){return e.replace(n?s:l,function(e){return o[e]||t[e]||"&#"+e.charCodeAt(0)+";"||e})}function u(e,n){return f.encodeNamed(e,n,t)}return t=n(t)||i,e=r(e.replace(/\+/g,",")),e.named&&e.numeric?a:e.named?t?u:f.encodeNamed:e.numeric?f.encodeNumeric:f.encodeRaw},decode:function(e){return e.replace(c,function(e,n){return n?(n="x"===n.charAt(0).toLowerCase()?parseInt(n.substr(1),16):parseInt(n,10),n>65535?(n-=65536,String.fromCharCode(55296+(n>>10),56320+(1023&n))):d[n]||String.fromCharCode(n)):a[e]||i[e]||t(e)})}};return f}),r(x,[m,c],function(e,t){return function(n,r){function i(e){n.getElementsByTagName("head")[0].appendChild(e)}function o(r,o,u){function c(){for(var e=b.passed,t=e.length;t--;)e[t]();b.status=2,b.passed=[],b.failed=[]}function d(){for(var e=b.failed,t=e.length;t--;)e[t]();b.status=3,b.passed=[],b.failed=[]}function f(){var e=navigator.userAgent.match(/WebKit\/(\d*)/);return!!(e&&e[1]<536)}function p(e,n){e()||((new Date).getTime()-y0)return v=n.createElement("style"),v.textContent='@import "'+r+'"',m(),void i(v);h()}i(g),g.href=r}}var a=0,s={},l;r=r||{},l=r.maxLoadTime||5e3,this.load=o}}),r(w,[p,g,v,f,y,b,C,d,m,x],function(e,n,r,i,o,a,s,l,u,c){function d(e,t){var n={},r=t.keep_values,i;return i={set:function(n,r,i){t.url_converter&&(r=t.url_converter.call(t.url_converter_scope||e,r,i,n[0])),n.attr("data-mce-"+i,r).attr(i,r)},get:function(e,t){return e.attr("data-mce-"+t)||e.attr(t)}},n={style:{set:function(e,t){return null!==t&&"object"==typeof t?void e.css(t):(r&&e.attr("data-mce-style",t),void e.attr("style",t))},get:function(t){var n=t.attr("data-mce-style")||t.attr("style");return n=e.serializeStyle(e.parseStyle(n),t[0].nodeName)}}},r&&(n.href=n.src=i),n}function f(e,t){var n=t.attr("style");n=e.serializeStyle(e.parseStyle(n),t[0].nodeName),n||(n=null),t.attr("data-mce-style",n)}function p(e,t){var n=0,r,i;if(e)for(r=e.nodeType,e=e.previousSibling;e;e=e.previousSibling)i=e.nodeType,(!t||3!=i||i!=r&&e.nodeValue.length)&&(n++,r=i);return n}function h(e,t){var o=this,a;o.doc=e,o.win=window,o.files={},o.counter=0,o.stdMode=!b||e.documentMode>=8,o.boxModel=!b||"CSS1Compat"==e.compatMode||o.stdMode,o.styleSheetLoader=new c(e),o.boundEvents=[],o.settings=t=t||{},o.schema=t.schema,o.styles=new r({url_converter:t.url_converter,url_converter_scope:t.url_converter_scope},t.schema),o.fixDoc(e),o.events=t.ownEvents?new i(t.proxy):i.Event,o.attrHooks=d(o,t),a=t.schema?t.schema.getBlockElements():{},o.$=n.overrideDefaults(function(){return{context:e,element:o.getRoot()}}),o.isBlock=function(e){if(!e)return!1;var t=e.nodeType;return t?!(1!==t||!a[e.nodeName]):!!a[e]}}var m=u.each,g=u.is,v=u.grep,y=u.trim,b=l.ie,C=/^([a-z0-9],?)+$/i,x=/^[ \t\r\n]*$/;return h.prototype={$$:function(e){return"string"==typeof e&&(e=this.get(e)),this.$(e)},root:null,fixDoc:function(e){var t=this.settings,n;if(b&&t.schema){"abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video".replace(/\w+/g,function(t){e.createElement(t)});for(n in t.schema.getCustomElements())e.createElement(n)}},clone:function(e,t){var n=this,r,i;return!b||1!==e.nodeType||t?e.cloneNode(t):(i=n.doc,t?r.firstChild:(r=i.createElement(e.nodeName),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),r))},getRoot:function(){var e=this;return e.settings.root_element||e.doc.body},getViewPort:function(e){var t,n;return e=e?e:this.win,t=e.document,n=this.boxModel?t.documentElement:t.body,{x:e.pageXOffset||n.scrollLeft,y:e.pageYOffset||n.scrollTop,w:e.innerWidth||n.clientWidth,h:e.innerHeight||n.clientHeight}},getRect:function(e){var t=this,n,r;return e=t.get(e),n=t.getPos(e),r=t.getSize(e),{x:n.x,y:n.y,w:r.w,h:r.h}},getSize:function(e){var t=this,n,r;return e=t.get(e),n=t.getStyle(e,"width"),r=t.getStyle(e,"height"),n.indexOf("px")===-1&&(n=0),r.indexOf("px")===-1&&(r=0), +{w:parseInt(n,10)||e.offsetWidth||e.clientWidth,h:parseInt(r,10)||e.offsetHeight||e.clientHeight}},getParent:function(e,t,n){return this.getParents(e,t,n,!1)},getParents:function(e,n,r,i){var o=this,a,s=[];for(e=o.get(e),i=i===t,r=r||("BODY"!=o.getRoot().nodeName?o.getRoot().parentNode:null),g(n,"string")&&(a=n,n="*"===n?function(e){return 1==e.nodeType}:function(e){return o.is(e,a)});e&&e!=r&&e.nodeType&&9!==e.nodeType;){if(!n||n(e)){if(!i)return e;s.push(e)}e=e.parentNode}return i?s:null},get:function(e){var t;return e&&this.doc&&"string"==typeof e&&(t=e,e=this.doc.getElementById(e),e&&e.id!==t)?this.doc.getElementsByName(t)[1]:e},getNext:function(e,t){return this._findSib(e,t,"nextSibling")},getPrev:function(e,t){return this._findSib(e,t,"previousSibling")},select:function(t,n){var r=this;return e(t,r.get(n)||r.settings.root_element||r.doc,[])},is:function(n,r){var i;if(n.length===t){if("*"===r)return 1==n.nodeType;if(C.test(r)){for(r=r.toLowerCase().split(/,/),n=n.nodeName.toLowerCase(),i=r.length-1;i>=0;i--)if(r[i]==n)return!0;return!1}}if(n.nodeType&&1!=n.nodeType)return!1;var o=n.nodeType?[n]:n;return e(r,o[0].ownerDocument||o[0],null,o).length>0},add:function(e,t,n,r,i){var o=this;return this.run(e,function(e){var a;return a=g(t,"string")?o.doc.createElement(t):t,o.setAttribs(a,n),r&&(r.nodeType?a.appendChild(r):o.setHTML(a,r)),i?a:e.appendChild(a)})},create:function(e,t,n){return this.add(this.doc.createElement(e),e,t,n,1)},createHTML:function(e,t,n){var r="",i;r+="<"+e;for(i in t)t.hasOwnProperty(i)&&null!==t[i]&&"undefined"!=typeof t[i]&&(r+=" "+i+'="'+this.encode(t[i])+'"');return"undefined"!=typeof n?r+">"+n+"":r+" />"},createFragment:function(e){var t,n,r=this.doc,i;for(i=r.createElement("div"),t=r.createDocumentFragment(),e&&(i.innerHTML=e);n=i.firstChild;)t.appendChild(n);return t},remove:function(e,t){return e=this.$$(e),t?e.each(function(){for(var e;e=this.firstChild;)3==e.nodeType&&0===e.data.length?this.removeChild(e):this.parentNode.insertBefore(e,this)}).remove():e.remove(),e.length>1?e.toArray():e[0]},setStyle:function(e,t,n){e=this.$$(e).css(t,n),this.settings.update_styles&&f(this,e)},getStyle:function(e,n,r){return e=this.$$(e),r?e.css(n):(n=n.replace(/-(\D)/g,function(e,t){return t.toUpperCase()}),"float"==n&&(n=l.ie&&l.ie<12?"styleFloat":"cssFloat"),e[0]&&e[0].style?e[0].style[n]:t)},setStyles:function(e,t){e=this.$$(e).css(t),this.settings.update_styles&&f(this,e)},removeAllAttribs:function(e){return this.run(e,function(e){var t,n=e.attributes;for(t=n.length-1;t>=0;t--)e.removeAttributeNode(n.item(t))})},setAttrib:function(e,t,n){var r=this,i,o,a=r.settings;""===n&&(n=null),e=r.$$(e),i=e.attr(t),e.length&&(o=r.attrHooks[t],o&&o.set?o.set(e,n,t):e.attr(t,n),i!=n&&a.onSetAttrib&&a.onSetAttrib({attrElm:e,attrName:t,attrValue:n}))},setAttribs:function(e,t){var n=this;n.$$(e).each(function(e,r){m(t,function(e,t){n.setAttrib(r,t,e)})})},getAttrib:function(e,t,n){var r=this,i,o;return e=r.$$(e),e.length&&(i=r.attrHooks[t],o=i&&i.get?i.get(e,t):e.attr(t)),"undefined"==typeof o&&(o=n||""),o},getPos:function(e,t){var r=this,i=0,o=0,a,s=r.doc,l=s.body,u;if(e=r.get(e),t=t||l,e){if(t===l&&e.getBoundingClientRect&&"static"===n(l).css("position"))return u=e.getBoundingClientRect(),t=r.boxModel?s.documentElement:l,i=u.left+(s.documentElement.scrollLeft||l.scrollLeft)-t.clientLeft,o=u.top+(s.documentElement.scrollTop||l.scrollTop)-t.clientTop,{x:i,y:o};for(a=e;a&&a!=t&&a.nodeType;)i+=a.offsetLeft||0,o+=a.offsetTop||0,a=a.offsetParent;for(a=e.parentNode;a&&a!=t&&a.nodeType;)i-=a.scrollLeft||0,o-=a.scrollTop||0,a=a.parentNode}return{x:i,y:o}},parseStyle:function(e){return this.styles.parse(e)},serializeStyle:function(e,t){return this.styles.serialize(e,t)},addStyle:function(e){var t=this,n=t.doc,r,i;if(t!==h.DOM&&n===document){var o=h.DOM.addedStyles;if(o=o||[],o[e])return;o[e]=!0,h.DOM.addedStyles=o}i=n.getElementById("mceDefaultStyles"),i||(i=n.createElement("style"),i.id="mceDefaultStyles",i.type="text/css",r=n.getElementsByTagName("head")[0],r.firstChild?r.insertBefore(i,r.firstChild):r.appendChild(i)),i.styleSheet?i.styleSheet.cssText+=e:i.appendChild(n.createTextNode(e))},loadCSS:function(e){var t=this,n=t.doc,r;return t!==h.DOM&&n===document?void h.DOM.loadCSS(e):(e||(e=""),r=n.getElementsByTagName("head")[0],void m(e.split(","),function(e){var i;e=u._addCacheSuffix(e),t.files[e]||(t.files[e]=!0,i=t.create("link",{rel:"stylesheet",href:e}),b&&n.documentMode&&n.recalc&&(i.onload=function(){n.recalc&&n.recalc(),i.onload=null}),r.appendChild(i))}))},addClass:function(e,t){this.$$(e).addClass(t)},removeClass:function(e,t){this.toggleClass(e,t,!1)},hasClass:function(e,t){return this.$$(e).hasClass(t)},toggleClass:function(e,t,r){this.$$(e).toggleClass(t,r).each(function(){""===this.className&&n(this).attr("class",null)})},show:function(e){this.$$(e).show()},hide:function(e){this.$$(e).hide()},isHidden:function(e){return"none"==this.$$(e).css("display")},uniqueId:function(e){return(e?e:"mce_")+this.counter++},setHTML:function(e,t){e=this.$$(e),b?e.each(function(e,r){if(r.canHaveHTML!==!1){for(;r.firstChild;)r.removeChild(r.firstChild);try{r.innerHTML="
    "+t,r.removeChild(r.firstChild)}catch(i){n("
    ").html("
    "+t).contents().slice(1).appendTo(r)}return t}}):e.html(t)},getOuterHTML:function(e){return e=this.get(e),1==e.nodeType&&"outerHTML"in e?e.outerHTML:n("
    ").append(n(e).clone()).html()},setOuterHTML:function(e,t){var r=this;r.$$(e).each(function(){try{if("outerHTML"in this)return void(this.outerHTML=t)}catch(e){}r.remove(n(this).html(t),!0)})},decode:s.decode,encode:s.encodeAllRaw,insertAfter:function(e,t){return t=this.get(t),this.run(e,function(e){var n,r;return n=t.parentNode,r=t.nextSibling,r?n.insertBefore(e,r):n.appendChild(e),e})},replace:function(e,t,n){var r=this;return r.run(t,function(t){return g(t,"array")&&(e=e.cloneNode(!0)),n&&m(v(t.childNodes),function(t){e.appendChild(t)}),t.parentNode.replaceChild(e,t)})},rename:function(e,t){var n=this,r;return e.nodeName!=t.toUpperCase()&&(r=n.create(t),m(n.getAttribs(e),function(t){n.setAttrib(r,t.nodeName,n.getAttrib(e,t.nodeName))}),n.replace(r,e,1)),r||e},findCommonAncestor:function(e,t){for(var n=e,r;n;){for(r=t;r&&n!=r;)r=r.parentNode;if(n==r)break;n=n.parentNode}return!n&&e.ownerDocument?e.ownerDocument.documentElement:n},toHex:function(e){return this.styles.toHex(u.trim(e))},run:function(e,t,n){var r=this,i;return"string"==typeof e&&(e=r.get(e)),!!e&&(n=n||this,e.nodeType||!e.length&&0!==e.length?t.call(n,e):(i=[],m(e,function(e,o){e&&("string"==typeof e&&(e=r.get(e)),i.push(t.call(n,e,o)))}),i))},getAttribs:function(e){var t;if(e=this.get(e),!e)return[];if(b){if(t=[],"OBJECT"==e.nodeName)return e.attributes;"OPTION"===e.nodeName&&this.getAttrib(e,"selected")&&t.push({specified:1,nodeName:"selected"});var n=/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi;return e.cloneNode(!1).outerHTML.replace(n,"").replace(/[\w:\-]+/gi,function(e){t.push({specified:1,nodeName:e})}),t}return e.attributes},isEmpty:function(e,t){var n=this,r,i,a,s,l,u,c=0;if(e=e.firstChild){l=new o(e,e.parentNode),t=t||(n.schema?n.schema.getNonEmptyElements():null),s=n.schema?n.schema.getWhiteSpaceElements():{};do{if(a=e.nodeType,1===a){var d=e.getAttribute("data-mce-bogus");if(d){e=l.next("all"===d);continue}if(u=e.nodeName.toLowerCase(),t&&t[u]){if("br"===u){c++,e=l.next();continue}return!1}for(i=n.getAttribs(e),r=i.length;r--;)if(u=i[r].nodeName,"name"===u||"data-mce-bookmark"===u)return!1}if(8==a)return!1;if(3===a&&!x.test(e.nodeValue))return!1;if(3===a&&e.parentNode&&s[e.parentNode.nodeName]&&x.test(e.nodeValue))return!1;e=l.next()}while(e)}return c<=1},createRng:function(){var e=this.doc;return e.createRange?e.createRange():new a(this)},nodeIndex:p,split:function(e,t,n){function r(e){function t(e){var t=e.previousSibling&&"SPAN"==e.previousSibling.nodeName,n=e.nextSibling&&"SPAN"==e.nextSibling.nodeName;return t&&n}var n,o=e.childNodes,a=e.nodeType;if(1!=a||"bookmark"!=e.getAttribute("data-mce-type")){for(n=o.length-1;n>=0;n--)r(o[n]);if(9!=a){if(3==a&&e.nodeValue.length>0){var s=y(e.nodeValue).length;if(!i.isBlock(e.parentNode)||s>0||0===s&&t(e))return}else if(1==a&&(o=e.childNodes,1==o.length&&o[0]&&1==o[0].nodeType&&"bookmark"==o[0].getAttribute("data-mce-type")&&e.parentNode.insertBefore(o[0],e),o.length||/^(br|hr|input|img)$/i.test(e.nodeName)))return;i.remove(e)}return e}}var i=this,o=i.createRng(),a,s,l;if(e&&t)return o.setStart(e.parentNode,i.nodeIndex(e)),o.setEnd(t.parentNode,i.nodeIndex(t)),a=o.extractContents(),o=i.createRng(),o.setStart(t.parentNode,i.nodeIndex(t)+1),o.setEnd(e.parentNode,i.nodeIndex(e)+1),s=o.extractContents(),l=e.parentNode,l.insertBefore(r(a),e),n?l.insertBefore(n,e):l.insertBefore(t,e),l.insertBefore(r(s),e),i.remove(e),n||t},bind:function(e,t,n,r){var i=this;if(u.isArray(e)){for(var o=e.length;o--;)e[o]=i.bind(e[o],t,n,r);return e}return!i.settings.collect||e!==i.doc&&e!==i.win||i.boundEvents.push([e,t,n,r]),i.events.bind(e,t,n,r||i)},unbind:function(e,t,n){var r=this,i;if(u.isArray(e)){for(i=e.length;i--;)e[i]=r.unbind(e[i],t,n);return e}if(r.boundEvents&&(e===r.doc||e===r.win))for(i=r.boundEvents.length;i--;){var o=r.boundEvents[i];e!=o[0]||t&&t!=o[1]||n&&n!=o[2]||this.events.unbind(o[0],o[1],o[2])}return this.events.unbind(e,t,n)},fire:function(e,t,n){return this.events.fire(e,t,n)},getContentEditable:function(e){var t;return e&&1==e.nodeType?(t=e.getAttribute("data-mce-contenteditable"),t&&"inherit"!==t?t:"inherit"!==e.contentEditable?e.contentEditable:null):null},getContentEditableParent:function(e){for(var t=this.getRoot(),n=null;e&&e!==t&&(n=this.getContentEditable(e),null===n);e=e.parentNode);return n},destroy:function(){var t=this;if(t.boundEvents){for(var n=t.boundEvents.length;n--;){var r=t.boundEvents[n];this.events.unbind(r[0],r[1],r[2])}t.boundEvents=null}e.setDocument&&e.setDocument(),t.win=t.doc=t.root=t.events=t.frag=null},isChildOf:function(e,t){for(;e;){if(t===e)return!0;e=e.parentNode}return!1},dumpRng:function(e){return"startContainer: "+e.startContainer.nodeName+", startOffset: "+e.startOffset+", endContainer: "+e.endContainer.nodeName+", endOffset: "+e.endOffset},_findSib:function(e,t,n){var r=this,i=t;if(e)for("string"==typeof i&&(i=function(e){return r.is(e,t)}),e=e[n];e;e=e[n])if(i(e))return e;return null}},h.DOM=new h(document),h.nodeIndex=p,h}),r(E,[w,m],function(e,t){function n(){function e(e,n,i){function o(){l.remove(c),u&&(u.onreadystatechange=u.onload=u=null),n()}function s(){a(i)?i():"undefined"!=typeof console&&console.log&&console.log("Failed to load script: "+e)}var l=r,u,c;c=l.uniqueId(),u=document.createElement("script"),u.id=c,u.type="text/javascript",u.src=t._addCacheSuffix(e),"onreadystatechange"in u?u.onreadystatechange=function(){/loaded|complete/.test(u.readyState)&&o()}:u.onload=o,u.onerror=s,(document.getElementsByTagName("head")[0]||document.body).appendChild(u)}var n=0,s=1,l=2,u=3,c={},d=[],f={},p=[],h=0,m;this.isDone=function(e){return c[e]==l},this.markDone=function(e){c[e]=l},this.add=this.load=function(e,t,r,i){var o=c[e];o==m&&(d.push(e),c[e]=n),t&&(f[e]||(f[e]=[]),f[e].push({success:t,failure:i,scope:r||this}))},this.remove=function(e){delete c[e],delete f[e]},this.loadQueue=function(e,t,n){this.loadScripts(d,e,t,n)},this.loadScripts=function(t,n,r,d){function g(e,t){i(f[t],function(t){a(t[e])&&t[e].call(t.scope)}),f[t]=m}var v,y=[];p.push({success:n,failure:d,scope:r||this}),(v=function(){var n=o(t);t.length=0,i(n,function(t){return c[t]===l?void g("success",t):c[t]===u?void g("failure",t):void(c[t]!==s&&(c[t]=s,h++,e(t,function(){c[t]=l,h--,g("success",t),v()},function(){c[t]=u,h--,y.push(t),g("failure",t),v()})))}),h||(i(p,function(e){0===y.length?a(e.success)&&e.success.call(e.scope):a(e.failure)&&e.failure.call(e.scope,y)}),p.length=0)})()}}var r=e.DOM,i=t.each,o=t.grep,a=function(e){return"function"==typeof e};return n.ScriptLoader=new n,n}),r(N,[E,m],function(e,n){function r(){var e=this;e.items=[],e.urls={},e.lookup={}}var i=n.each;return r.prototype={get:function(e){return this.lookup[e]?this.lookup[e].instance:t},dependencies:function(e){var t;return this.lookup[e]&&(t=this.lookup[e].dependencies),t||[]},requireLangPack:function(t,n){var i=r.language;if(i&&r.languageLoad!==!1){if(n)if(n=","+n+",",n.indexOf(","+i.substr(0,2)+",")!=-1)i=i.substr(0,2);else if(n.indexOf(","+i+",")==-1)return;e.ScriptLoader.add(this.urls[t]+"/langs/"+i+".js")}},add:function(e,t,n){return this.items.push(t),this.lookup[e]={instance:t,dependencies:n},t},remove:function(e){delete this.urls[e],delete this.lookup[e]},createUrl:function(e,t){return"object"==typeof t?t:{prefix:e.prefix,resource:t,suffix:e.suffix}},addComponents:function(t,n){var r=this.urls[t];i(n,function(t){e.ScriptLoader.add(r+"/"+t)})},load:function(n,o,a,s,l){function u(){var r=c.dependencies(n);i(r,function(e){var n=c.createUrl(o,e);c.load(n.resource,n,t,t)}),a&&(s?a.call(s):a.call(e))}var c=this,d=o;c.urls[n]||("object"==typeof o&&(d=o.prefix+o.resource+o.suffix),0!==d.indexOf("/")&&d.indexOf("://")==-1&&(d=r.baseURL+"/"+d),c.urls[n]=d.substring(0,d.lastIndexOf("/")),c.lookup[n]?u():e.ScriptLoader.add(d,u,s,l))}},r.PluginManager=new r,r.ThemeManager=new r,r}),r(_,[],function(){function e(e){return function(t){return!!t&&t.nodeType==e}}function t(e){return e=e.toLowerCase().split(" "),function(t){var n,r;if(t&&t.nodeType)for(r=t.nodeName.toLowerCase(),n=0;nn.length-1?t=n.length-1:t<0&&(t=0),n[t]||e}function s(e,t,n){for(;e&&e!==t;){if(n(e))return e;e=e.parentNode}return null}function l(e,t,n){return null!==s(e,t,n)}function u(e){return"_mce_caret"===e.id}function c(e,t){return v(e)&&l(e,t,u)===!1}function d(e){this.walk=function(t,n){function r(e){var t;return t=e[0],3===t.nodeType&&t===l&&u>=t.nodeValue.length&&e.splice(0,1),t=e[e.length-1],0===d&&e.length>0&&t===c&&3===t.nodeType&&e.splice(e.length-1,1),e}function i(e,t,n){for(var r=[];e&&e!=n;e=e[t])r.push(e);return r}function o(e,t){do{if(e.parentNode==t)return e;e=e.parentNode}while(e)}function s(e,t,o){var a=o?"nextSibling":"previousSibling";for(g=e,v=g.parentNode;g&&g!=t;g=v)v=g.parentNode,y=i(g==e?g:g[a],a),y.length&&(o||y.reverse(),n(r(y)))}var l=t.startContainer,u=t.startOffset,c=t.endContainer,d=t.endOffset,f,p,m,g,v,y,b;if(b=e.select("td[data-mce-selected],th[data-mce-selected]"),b.length>0)return void h(b,function(e){n([e])});if(1==l.nodeType&&l.hasChildNodes()&&(l=l.childNodes[u]),1==c.nodeType&&c.hasChildNodes()&&(c=a(c,d)),l==c)return n(r([l]));for(f=e.findCommonAncestor(l,c),g=l;g;g=g.parentNode){if(g===c)return s(l,f,!0);if(g===f)break}for(g=c;g;g=g.parentNode){if(g===l)return s(c,f);if(g===f)break}p=o(l,f)||l,m=o(c,f)||c,s(l,p,!0),y=i(p==l?p:p.nextSibling,"nextSibling",m==c?m.nextSibling:m),y.length&&n(r(y)),s(c,m)},this.split=function(e){function t(e,t){return e.splitText(t)}var n=e.startContainer,r=e.startOffset,i=e.endContainer,o=e.endOffset;return n==i&&3==n.nodeType?r>0&&rr?(o-=r,n=i=t(i,o).previousSibling,o=i.nodeValue.length,r=0):o=0):(3==n.nodeType&&r>0&&r0&&o0)return f=y,p=n?y.nodeValue.length:0,void(i=!0);if(e.isBlock(y)||b[y.nodeName.toLowerCase()])return;s=y}o&&s&&(f=s,i=!0,p=0)}var f,p,h,m=e.getRoot(),y,b,C,x;if(f=n[(r?"start":"end")+"Container"],p=n[(r?"start":"end")+"Offset"],x=1==f.nodeType&&p===f.childNodes.length,b=e.schema.getNonEmptyElements(),C=r,!v(f)){if(1==f.nodeType&&p>f.childNodes.length-1&&(C=!1),9===f.nodeType&&(f=e.getRoot(),p=0),f===m){if(C&&(y=f.childNodes[p>0?p-1:0])){if(v(y))return;if(b[y.nodeName]||"TABLE"==y.nodeName)return}if(f.hasChildNodes()){if(p=Math.min(!C&&p>0?p-1:p,f.childNodes.length-1),f=f.childNodes[p],p=0,!o&&f===m.lastChild&&"TABLE"===f.nodeName)return;if(l(f)||v(f))return;if(f.hasChildNodes()&&!/TABLE/.test(f.nodeName)){y=f,h=new t(f,m);do{if(g(y)||v(y)){i=!1;break}if(3===y.nodeType&&y.nodeValue.length>0){p=C?0:y.nodeValue.length,f=y,i=!0;break}if(b[y.nodeName.toLowerCase()]&&!a(y)){p=e.nodeIndex(y),f=y.parentNode,"IMG"!=y.nodeName||C||p++,i=!0;break}}while(y=C?h.next():h.prev())}}}o&&(3===f.nodeType&&0===p&&d(!0),1===f.nodeType&&(y=f.childNodes[p],y||(y=f.childNodes[p-1]),!y||"BR"!==y.nodeName||u(y,"A")||s(y)||s(y,!0)||d(!0,y))),C&&!o&&3===f.nodeType&&p===f.nodeValue.length&&d(!1),i&&n["set"+(r?"Start":"End")](f,p)}}var i,o;return o=n.collapsed,r(!0),o||r(),i&&o&&n.collapse(!0),i}}function f(t,n,r){var i,o,a;if(i=r.elementFromPoint(t,n),o=r.body.createTextRange(),i&&"HTML"!=i.tagName||(i=r.body),o.moveToElementText(i),a=e.toArray(o.getClientRects()),a=a.sort(function(e,t){return e=Math.abs(Math.max(e.top-n,e.bottom-n)),t=Math.abs(Math.max(t.top-n,t.bottom-n)),e-t}),a.length>0){n=(a[0].bottom+a[0].top)/2;try{return o.moveToPoint(t,n),o.collapse(!0),o}catch(s){}}return null}function p(e,t){var n=e&&e.parentElement?e.parentElement():null;return g(s(n,t,o))?null:e}var h=e.each,m=n.isContentEditableTrue,g=n.isContentEditableFalse,v=i.isCaretContainer;return d.compareRanges=function(e,t){if(e&&t){if(!e.item&&!e.duplicate)return e.startContainer==t.startContainer&&e.startOffset==t.startOffset;if(e.item&&t.item&&e.item(0)===t.item(0))return!0;if(e.isEqual&&t.isEqual&&t.isEqual(e))return!0}return!1},d.getCaretRangeFromPoint=function(e,t,n){var r,i;if(n.caretPositionFromPoint)i=n.caretPositionFromPoint(e,t),r=n.createRange(),r.setStart(i.offsetNode,i.offset),r.collapse(!0);else if(n.caretRangeFromPoint)r=n.caretRangeFromPoint(e,t);else if(n.body.createTextRange){r=n.body.createTextRange();try{r.moveToPoint(e,t),r.collapse(!0)}catch(o){r=f(e,t,n)}return p(r,n.body)}return r},d.getSelectedNode=function(e){var t=e.startContainer,n=e.startOffset;return t.hasChildNodes()&&e.endOffset==n+1?t.childNodes[n]:null},d.getNode=function(e,t){return 1==e.nodeType&&e.hasChildNodes()&&(t>=e.childNodes.length&&(t=e.childNodes.length-1),e=e.childNodes[t]),e},d}),r(R,[T,d,c],function(e,t,n){return function(r){function i(e){var t,n;if(n=r.$(e).parentsUntil(r.getBody()).add(e),n.length===a.length){for(t=n.length;t>=0&&n[t]===a[t];t--);if(t===-1)return a=n,!0}return a=n,!1}var o,a=[];"onselectionchange"in r.getDoc()||r.on("NodeChange Click MouseUp KeyUp Focus",function(t){var n,i;n=r.selection.getRng(),i={startContainer:n.startContainer,startOffset:n.startOffset,endContainer:n.endContainer,endOffset:n.endOffset},"nodechange"!=t.type&&e.compareRanges(i,o)||r.fire("SelectionChange"),o=i}),r.on("contextmenu",function(){r.fire("SelectionChange")}),r.on("SelectionChange",function(){var e=r.selection.getStart(!0);!t.range&&r.selection.isCollapsed()||!i(e)&&r.dom.isChildOf(e,r.getBody())&&r.nodeChanged({selectionChange:!0})}),r.on("MouseUp",function(e){e.isDefaultPrevented()||("IMG"==r.selection.getNode().nodeName?n.setEditorTimeout(r,function(){r.nodeChanged()}):r.nodeChanged())}),this.nodeChanged=function(e){var t=r.selection,n,i,o;r.initialized&&t&&!r.settings.disable_nodechange&&!r.readonly&&(o=r.getBody(),n=t.getStart()||o,n.ownerDocument==r.getDoc()&&r.dom.isChildOf(n,o)||(n=o),"IMG"==n.nodeName&&t.isCollapsed()&&(n=n.parentNode),i=[],r.dom.getParent(n,function(e){return e===o||void i.push(e)}),e=e||{},e.element=n,e.parents=i,r.fire("NodeChange",e))}}}),r(A,[],function(){function e(e,t,n){var r,i,o=n?"lastChild":"firstChild",a=n?"prev":"next";if(e[o])return e[o];if(e!==t){if(r=e[a])return r;for(i=e.parent;i&&i!==t;i=i.parent)if(r=i[a])return r}}function t(e,t){this.name=e,this.type=t,1===t&&(this.attributes=[],this.attributes.map={})}var n=/^[ \t\r\n]*$/,r={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};return t.prototype={replace:function(e){var t=this;return e.parent&&e.remove(),t.insert(e,t),t.remove(),t},attr:function(e,t){var n=this,r,i,o;if("string"!=typeof e){for(i in e)n.attr(i,e[i]);return n}if(r=n.attributes){if(t!==o){if(null===t){if(e in r.map)for(delete r.map[e],i=r.length;i--;)if(r[i].name===e)return r=r.splice(i,1),n;return n}if(e in r.map){for(i=r.length;i--;)if(r[i].name===e){r[i].value=t;break}}else r.push({name:e,value:t});return r.map[e]=t,n}return r.map[e]}},clone:function(){var e=this,n=new t(e.name,e.type),r,i,o,a,s;if(o=e.attributes){for(s=[],s.map={},r=0,i=o.length;r