@simpleangularcontrols/sac-common 13.0.0-rc.20 → 13.0.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/controls/grid/gridcolumnbase.d.ts +5 -1
- package/controls/grid/gridcolumnbase.d.ts.map +1 -1
- package/controls/treeview/treeview.d.ts +2 -2
- package/controls/treeview/treeview.d.ts.map +1 -1
- package/esm2020/common/basedatetimecontrol.mjs +1 -1
- package/esm2020/common/baseinputcontrol.mjs +1 -1
- package/esm2020/common/baselistcontrol.mjs +1 -1
- package/esm2020/common/basemodelcontrol.mjs +1 -1
- package/esm2020/common/baseselectcontrol.mjs +1 -1
- package/esm2020/common/baseuploadcontrol.mjs +1 -1
- package/esm2020/components/browser/browser.mjs +1 -1
- package/esm2020/components/browser/models/browserfiledeleterequest.mjs +1 -1
- package/esm2020/components/browser/models/browserfilerenamerequest.mjs +1 -1
- package/esm2020/components/browser/models/browserfilesaverequest.mjs +1 -1
- package/esm2020/components/browser/models/browsernodedeleterequest.mjs +1 -1
- package/esm2020/components/browser/models/browsernodenewrequest.mjs +1 -1
- package/esm2020/components/browser/models/browsernoderenamerequest.mjs +1 -1
- package/esm2020/components/browser/models/browsernoderequest.mjs +1 -1
- package/esm2020/controls/buttons/button.mjs +1 -1
- package/esm2020/controls/checkbox/checkbox.mjs +1 -1
- package/esm2020/controls/checkbox/radiobutton.mjs +1 -1
- package/esm2020/controls/checkbox/radiobuttons.mjs +1 -1
- package/esm2020/controls/confirm/confirm.button.mjs +1 -1
- package/esm2020/controls/confirm/confirm.mjs +1 -1
- package/esm2020/controls/confirm/confirm.service.mjs +1 -1
- package/esm2020/controls/contextmenu/contextmenu.mjs +1 -1
- package/esm2020/controls/contextmenu/contextmenuanchor.mjs +1 -1
- package/esm2020/controls/contextmenu/contextmenucontainer.mjs +1 -1
- package/esm2020/controls/contextmenu/contextmenuitem.mjs +1 -1
- package/esm2020/controls/contextmenu/contextmenuitembutton.mjs +1 -1
- package/esm2020/controls/datetime/date.mjs +1 -1
- package/esm2020/controls/datetime/dateselector.mjs +1 -1
- package/esm2020/controls/datetime/datetime.mjs +1 -1
- package/esm2020/controls/datetime/time.mjs +1 -1
- package/esm2020/controls/dialog/dialog.mjs +1 -1
- package/esm2020/controls/form/form.mjs +1 -1
- package/esm2020/controls/grid/grid.mjs +1 -1
- package/esm2020/controls/grid/gridbutton.mjs +1 -1
- package/esm2020/controls/grid/gridcolumn.mjs +1 -1
- package/esm2020/controls/grid/gridcolumnaction.mjs +1 -1
- package/esm2020/controls/grid/gridcolumnbase.mjs +16 -14
- package/esm2020/controls/grid/model.mjs +1 -1
- package/esm2020/controls/grid/paging.mjs +1 -1
- package/esm2020/controls/input/input.mjs +1 -1
- package/esm2020/controls/input/inputarea.mjs +1 -1
- package/esm2020/controls/input/inputcurrency.mjs +1 -1
- package/esm2020/controls/input/inputdecimal.mjs +1 -1
- package/esm2020/controls/input/inputemail.mjs +1 -1
- package/esm2020/controls/input/inputinteger.mjs +1 -1
- package/esm2020/controls/input/inputpassword.mjs +1 -1
- package/esm2020/controls/input/inputsearch.mjs +1 -1
- package/esm2020/controls/layout/formlayout.mjs +1 -1
- package/esm2020/controls/list/buildvaluestring.mjs +1 -1
- package/esm2020/controls/list/dropdown.mjs +1 -1
- package/esm2020/controls/list/dropdownoptions.mjs +1 -1
- package/esm2020/controls/list/list.module.ngfactory.mjs +1 -1
- package/esm2020/controls/list/listbox.mjs +1 -1
- package/esm2020/controls/multilanguage/multilanguageinput.mjs +1 -1
- package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +1 -1
- package/esm2020/controls/static/formcontainer.mjs +1 -1
- package/esm2020/controls/static/staticlabel.mjs +1 -1
- package/esm2020/controls/tabs/tab.mjs +1 -1
- package/esm2020/controls/tabs/tabitem.mjs +1 -1
- package/esm2020/controls/tinymce/tinymce.mjs +1 -1
- package/esm2020/controls/tinymce/tinymcedialogsettings.mjs +1 -1
- package/esm2020/controls/tooltip/tooltip.mjs +1 -1
- package/esm2020/controls/treeview/treeview.mjs +6 -6
- package/esm2020/controls/upload/dropzonemultiple.mjs +1 -1
- package/esm2020/controls/upload/dropzonesingle.mjs +1 -1
- package/esm2020/controls/upload/uploadmultiple.mjs +1 -1
- package/esm2020/controls/upload/uploadsingle.mjs +1 -1
- package/esm2020/controls/validation/validationsummary.mjs +1 -1
- package/esm2020/controls/wizard/wizard.mjs +1 -1
- package/esm2020/controls/wizard/wizarditem.mjs +1 -1
- package/esm2020/enums/ControlHeight.mjs +1 -1
- package/esm2020/enums/IconType.mjs +1 -1
- package/esm2020/models/languagemodel.mjs +1 -1
- package/esm2020/services/sac-configuration.service.mjs +1 -1
- package/esm2020/services/sac-filebrowser.service.mjs +1 -1
- package/esm2020/services/sac-icon.service.mjs +1 -1
- package/esm2020/services/sac-language.service.mjs +1 -1
- package/esm2020/services/sac-localisation.service.mjs +1 -1
- package/esm2020/services/sac-validationkey.service.mjs +1 -1
- package/esm2020/utilities/convertion.mjs +1 -1
- package/esm2020/utilities/datatypes.mjs +1 -1
- package/esm2020/utilities/enums.mjs +1 -1
- package/esm2020/utilities/guid.mjs +1 -1
- package/esm2020/utilities/interpolation.mjs +1 -1
- package/esm2020/utilities/popuphelper.mjs +1 -1
- package/esm2020/utilities/positioning.mjs +1 -1
- package/esm2020/utilities/testingattribute.pipe.mjs +1 -1
- package/esm2020/utilities/utilities.module.ngfactory.mjs +1 -1
- package/esm2020/validation/email.validator.mjs +1 -1
- package/esm2020/validation/equals.validator.mjs +1 -1
- package/esm2020/validation/invaliddate.validator.mjs +1 -1
- package/esm2020/validation/isDateValid.mjs +1 -1
- package/esm2020/validation/maxdate.validator.mjs +1 -1
- package/esm2020/validation/maxtime.validator.mjs +1 -1
- package/esm2020/validation/maxvalue.validator.mjs +1 -1
- package/esm2020/validation/mindate.validator.mjs +1 -1
- package/esm2020/validation/minfiles.validator.mjs +1 -1
- package/esm2020/validation/mintextlength.validator.mjs +1 -1
- package/esm2020/validation/mintime.validator.mjs +1 -1
- package/esm2020/validation/minvalue.validator.mjs +1 -1
- package/esm2020/validation/multilanguagerequired.validator.mjs +1 -1
- package/esm2020/validation/multilanguagerequiredany.validator.mjs +1 -1
- package/esm2020/validation/notequals.validator.mjs +1 -1
- package/esm2020/validation/pattern.validator.mjs +1 -1
- package/esm2020/validation/required.validator.mjs +1 -1
- package/esm2020/validation/validation.mjs +1 -1
- package/esm2020/validation/validationerrorcreator.mjs +1 -1
- package/esm2020/validation/validationerroritem.mjs +1 -1
- package/fesm2015/simpleangularcontrols-sac-common.mjs +670 -668
- package/fesm2015/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/fesm2020/simpleangularcontrols-sac-common.mjs +670 -668
- package/fesm2020/simpleangularcontrols-sac-common.mjs.map +1 -1
- package/package.json +1 -1
- package/simpleangularcontrols-sac-common-13.0.0-rc.21.tgz +0 -0
- package/simpleangularcontrols-sac-common-13.0.0-rc.20.tgz +0 -0
|
@@ -83,4 +83,4 @@ window.addEventListener('scroll',this.onContentChange,true);cov_968u3h0sn().s[51
|
|
|
83
83
|
*/getLeftPosition(){cov_968u3h0sn().f[18]++;const value=(cov_968u3h0sn().s[54]++,this.popupHelper.getPositionLeft(this.content,this.tooltipcontainer,this.ref,this.getTooltipOffset(),this.getTooltipOffset(),this.position,true));cov_968u3h0sn().s[55]++;this.LeftPos=value;const requiredPosition=(cov_968u3h0sn().s[56]++,this.GetTooltipPosition());cov_968u3h0sn().s[57]++;if((cov_968u3h0sn().b[7][0]++,requiredPosition===TooltipPosition.left)||(cov_968u3h0sn().b[7][1]++,requiredPosition===TooltipPosition.right)){cov_968u3h0sn().b[6][0]++;cov_968u3h0sn().s[58]++;this.posArrowTop=this.getToolTipHeight()/2-6.5;}else{cov_968u3h0sn().b[6][1]++;cov_968u3h0sn().s[59]++;this.posArrowTop=null;}cov_968u3h0sn().s[60]++;return value;}/**
|
|
84
84
|
* Calculates the position of the tooltip from the top
|
|
85
85
|
*/getTopPosition(){cov_968u3h0sn().f[19]++;const value=(cov_968u3h0sn().s[61]++,this.popupHelper.getPositionTop(this.content,this.tooltipcontainer,this.ref,this.getTooltipOffset(),this.getTooltipOffset(),this.position,true));cov_968u3h0sn().s[62]++;this.TopPos=value;const requiredPosition=(cov_968u3h0sn().s[63]++,this.GetTooltipPosition());cov_968u3h0sn().s[64]++;if((cov_968u3h0sn().b[9][0]++,requiredPosition===TooltipPosition.bottom)||(cov_968u3h0sn().b[9][1]++,requiredPosition===TooltipPosition.top)){cov_968u3h0sn().b[8][0]++;cov_968u3h0sn().s[65]++;this.posArrowLeft=this.getToolTipWidth()/2-6.5;}else{cov_968u3h0sn().b[8][1]++;cov_968u3h0sn().s[66]++;this.posArrowLeft=null;}cov_968u3h0sn().s[67]++;return value;}}cov_968u3h0sn().s[68]++;SacTooltipCommon.ɵfac=i0.ɵɵngDeclareFactory({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTooltipCommon,deps:[{token:i0.ChangeDetectorRef},{token:i0.ElementRef}],target:i0.ɵɵFactoryTarget.Directive});cov_968u3h0sn().s[69]++;SacTooltipCommon.ɵdir=i0.ɵɵngDeclareDirective({minVersion:"12.0.0",version:"13.2.7",type:SacTooltipCommon,inputs:{e2eidentifier:"e2eidentifier",name:"name",position:"position",tooltiptext:"tooltiptext",inlinemode:"inlinemode"},viewQueries:[{propertyName:"content",first:true,predicate:["container"],descendants:true,static:true},{propertyName:"tooltip",first:true,predicate:["tooltip"],descendants:true}],ngImport:i0});cov_968u3h0sn().s[70]++;i0.ɵɵngDeclareClassMetadata({minVersion:"12.0.0",version:"13.2.7",ngImport:i0,type:SacTooltipCommon,decorators:[{type:Directive}],ctorParameters:function(){cov_968u3h0sn().f[20]++;cov_968u3h0sn().s[71]++;return[{type:i0.ChangeDetectorRef},{type:i0.ElementRef}];},propDecorators:{content:[{type:ViewChild,args:['container',{static:true}]}],e2eidentifier:[{type:Input}],name:[{type:Input}],position:[{type:Input}],tooltiptext:[{type:Input}],inlinemode:[{type:Input}],tooltip:[{type:ViewChild,args:['tooltip',{static:false}]}]}});//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBR0gsU0FBUyxFQUdULEtBQUssRUFHTCxTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7O0FBRXZCOzs7Ozs7Ozs7O0dBVUc7QUFFSCxNQUFNLE9BQWdCLGdCQUFnQjtJQXFGbEMsd0JBQXdCO0lBRXhCLHVCQUF1QjtJQUV2Qjs7O09BR0c7SUFDSCxZQUE2QixLQUF3QixFQUFtQixHQUFlO1FBQTFELFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQW1CLFFBQUcsR0FBSCxHQUFHLENBQVk7UUE1RnZGLHFCQUFxQjtRQUVyQjs7V0FFRztRQUNjLGdCQUFXLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFPOUQ7O1dBRUc7UUFDSyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFPM0M7O1dBRUc7UUFDSSw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFFaEQ7O1dBRUc7UUFDSSxZQUFPLEdBQVcsQ0FBQyxDQUFDO1FBRTNCOztXQUVHO1FBQ0ksb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFFekM7O1dBRUc7UUFDSSxXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBUTFCOztXQUVHO1FBRUksa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTNDOztXQUVHO1FBRUksU0FBSSxHQUFXLFVBQVUsRUFBRSxDQUFDO1FBRW5DOztXQUVHO1FB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WUFDekYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQztTQUN4RDthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDNUI7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzs2R0FqVGlCLGdCQUFnQjtpR0FBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRHJDLFNBQVM7aUlBZ0RDLE9BQU87c0JBRGIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU9qQyxhQUFhO3NCQURuQixLQUFLO2dCQU9DLElBQUk7c0JBRFYsS0FBSztnQkFtQkMsUUFBUTtzQkFEZCxLQUFLO2dCQU9DLFdBQVc7c0JBRGpCLEtBQUs7Z0JBNEJLLFVBQVU7c0JBRHBCLEtBQUs7Z0JBU0ssT0FBTztzQkFEakIsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29udmVydFRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9jb252ZXJ0aW9uJztcbmltcG9ydCB7IFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9lbnVtcyc7XG5pbXBvcnQgeyBjcmVhdGVHdWlkIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2d1aWQnO1xuaW1wb3J0IHsgUG9wVXBIZWxwZXIgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvcG9wdXBoZWxwZXInO1xuaW1wb3J0IHtcbiAgICBBZnRlclZpZXdDaGVja2VkLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFRvb2x0aXAgQ29tcG9uZW50XG4gKlxuICogUmVxdWlyZXMgdGhlIGZvbGxvd2luZyBpZGVudGlmaWVycyBpbiB0aGUgSFRNTCBtYXJrdXBcbiAqIC0gY29udGFpbmVyOiBDb250YWluZXIgZm9yIG5nLWNvbnRlbnQgaW4gd2hpY2ggdGhlIGVsZW1lbnQgaXMgZGlzcGxheWVkIHdoZXJlIHRoZSB0b29sdGlwIGlzIGF0dGFjaGVkLlxuICogLSB0b29sdGlwOiBDb250YWluZXIgZm9yIHRvb2x0aXBcbiAqXG4gKiBUb29sdGlwIG11c3QgYmUgZGlzcGxheWVkIGluIDIgc3RlcHMuIEluIGEgZmlyc3Qgc3RlcCB0aGUgdG9vbHRpcCBtYXJrdXAgaXMgY3JlYXRlZCB3aXRoIChuZ0lmKS4gSW4gYSAybmQgc3RlcFxuICogdGhlIHRvb2x0aXAgY2FuIHRoZW4gYmUgZGlzcGxheWVkIHZpYSB0aGUgQ1NTIHZpc2liaWxpdHkuIElmIHRoaXMgaXMgbm90IGRvbmUsIGl0IGNhbiBsZWFkIHRvIGEgZmxpY2tlcmluZyBlZmZlY3QgaW4gY2VydGFpbiBicm93c2Vycy5cbiAqXG4gKi9cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFNhY1Rvb2x0aXBDb21tb24gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCwgRG9DaGVjayB7XG4gICAgLy8gI3JlZ2lvbiBQcm9wZXJ0aWVzXG5cbiAgICAvKipcbiAgICAgKiBIZWxwZXIgY2xhc3MgdG8gZGlzcGxheSB0b29sdGlwIG9uIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBvcHVwSGVscGVyOiBQb3BVcEhlbHBlciA9IG5ldyBQb3BVcEhlbHBlcigpO1xuXG4gICAgLyoqXG4gICAgICogSW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwcml2YXRlIF9pbmxpbmVtb2RlOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIHRoZSB0b29sdGlwIGlzIHZpc2libGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9pc1Rvb2x0aXBWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDb250YWluZXJzIGZvciB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgdG9vbHRpcGNvbnRhaW5lcjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBvbiB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBJc1Rvb2x0aXBDb250ZW50VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gZGVzIFRvb2x0aXBzIGxpbmtzXG4gICAgICovXG4gICAgcHVibGljIExlZnRQb3M6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3IgZW51bSBpbiBBbmd1bGFyIEhUTUwgdGVtcGxhdGVcbiAgICAgKi9cbiAgICBwdWJsaWMgVG9vbHRpcFBvc2l0aW9uID0gVG9vbHRpcFBvc2l0aW9uO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgYXQgdGhlIHRvcFxuICAgICAqL1xuICAgIHB1YmxpYyBUb3BQb3M6IG51bWJlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBjb250YWluZXIgZm9yIGNvbnRlbnQgKGUuZy4gaWNvbikgb24gd2hpY2ggdGhlIHRvb2x0aXAgaXMgZGlzcGxheWVkLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIGNvbnRlbnQ6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogSWRlbnRpZmllciB1c2VkIGZvciB0aGUgRTJFIGRhdGEgYXR0cmlidXRlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGUyZWlkZW50aWZpZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogbmFtZSBvZiBjb250cm9sXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmFtZTogc3RyaW5nID0gY3JlYXRlR3VpZCgpO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgbGVmdFxuICAgICAqL1xuICAgIHB1YmxpYyBwb3NBcnJvd0xlZnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHBpY2tlciBhcnJvdyBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93VG9wOiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwLiBWYWx1ZXM6IGxlZnR8dG9wfHJpZ2h0fGJvdHRvbXxhdXRvXG4gICAgICpcbiAgICAgKiBWYWx1ZSAnYXV0bycgY2FuIGJlIGNvbWJpbmVkIHdpdGggYW5vdGhlciB2YWx1ZS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwb3NpdGlvbjogc3RyaW5nID0gJ3JpZ2h0fGF1dG8nO1xuXG4gICAgLyoqXG4gICAgICogVGV4dCBmb3IgVG9vbFRpcFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHRvb2x0aXB0ZXh0OiBzdHJpbmc7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvKipcbiAgICAgKiBLb25zdHJ1a3RvclxuICAgICAqIEBwYXJhbSByZWYgRWxlbWVudCBSZWZlcmVuelxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIHJlYWRvbmx5IHJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvKipcbiAgICAgKiBQcm9wZXJ0eSBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXAuIFNldHMgdGhlIGRpc3BsYXkgbW9kZSBvbiB0aGUgd3JhcHBlciBlbGVtZW50IHRvIGBpbmxpbmVgXG4gICAgICovXG4gICAgcHVibGljIGdldCBpbmxpbmVtb2RlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5saW5lbW9kZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXR0ZXIgZm9yIGlubGluZSBtb2RlIGZvciB0b29sdGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IGlubGluZW1vZGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faW5saW5lbW9kZSA9IGNvbnZlcnRUb0Jvb2xlYW4odmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgdGhlIG5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgdGhlIHRvb2x0aXAuIElzIHJlcXVpcmVkIGFzIHRoZSB0b29sdGlwIGNhbiBiZSBoaWRkZW4gdmlhIG5nSWYuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgndG9vbHRpcCcsIHsgc3RhdGljOiBmYWxzZSB9KVxuICAgIHB1YmxpYyBzZXQgdG9vbHRpcChjb250ZW50OiBFbGVtZW50UmVmKSB7XG4gICAgICAgIGlmIChjb250ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29udGVudC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lciA9IGNvbnRlbnQ7XG4gICAgICAgIHRoaXMub25Db250ZW50Q2hhbmdlKCk7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdG9vbHRvcCgpOiBFbGVtZW50UmVmIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9vbHRpcGNvbnRhaW5lcjtcbiAgICB9XG5cbiAgICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBHZXR0ZXJzIEFuZCBTZXR0ZXJzXG5cbiAgICAvLyAjcmVnaW9uIFB1YmxpYyBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBHZXRUb29sdGlwUG9zaXRpb24oKTogVG9vbHRpcFBvc2l0aW9uIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0RGlzcGxheVBvc2l0aW9uKFxuICAgICAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEhpZGVUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuSXNUb29sdGlwQ29udGVudFZpc2libGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgcHJlc2VudCBpbiB0aGUgbWFya3VwXG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBTaG93VG9vbHRpcCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5faXNUb29sdGlwVmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuSXNUb29sdGlwQ29udGVudFZpc2libGUgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBoZWlnaHQgb2YgdGhlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0VG9vbFRpcEhlaWdodCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cEhlaWdodCh0aGlzLnRvb2x0aXBjb250YWluZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSB0b29sdGlwc1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwV2lkdGgoKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9wdXBXaWR0aCh0aGlzLnRvb2x0aXBjb250YWluZXIpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBDaGFuZ2VzIGFmdGVyIHZpZXcgY2hlY2tlZC4gUHJldmVudCBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yIGVycm9yXG4gICAgICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJpbGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlY3QgVUkgQ2hhbmdlcyB0byBDYWxjdWxhdGUgVG9vbHRpcCBjb3JyZWN0XG4gICAgICovXG4gICAgcHVibGljIG5nRG9DaGVjaygpOiB2b2lkIHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJpbGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmdldFRvcFBvc2l0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBkZXN0cm95ZWQuXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCkge1xuICAgICAgICAvLyBVbnJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRoaXMudG9vbHRpcGNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEV2ZW50IHdoZW4gdGhlIGNvbnRyb2wgaXMgaW5pdGlhbGl6ZWRcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIFJlZ2lzdGVyIEV2ZW50IExpc3RlbmVyXG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCB0aGlzLm9uQ29udGVudENoYW5nZSwgdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMudG9vbHRpcGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMudG9vbHRpcGNvbnRhaW5lci5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIE9mZnNldCBmb3IgVG9vbHRpcC4gUmVxdWlyZWQgZm9yIEJTNC9CUzUgdG8gY3JlYXRlIHBhZGRpbmdcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0VG9vbHRpcE9mZnNldCgpOiBudW1iZXI7XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByb3RlY3RlZCBNZXRob2RzXG5cbiAgICAvLyAjcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSBsaW5rc1xuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0TGVmdFBvc2l0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3NpdGlvbkxlZnQoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLkxlZnRQb3MgPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCByZXF1aXJlZFBvc2l0aW9uID0gdGhpcy5HZXRUb29sdGlwUG9zaXRpb24oKTtcbiAgICAgICAgaWYgKHJlcXVpcmVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5sZWZ0IHx8IHJlcXVpcmVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5yaWdodCkge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IHRoaXMuZ2V0VG9vbFRpcEhlaWdodCgpIC8gMiAtIDYuNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zQXJyb3dUb3AgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIGZyb20gdGhlIHRvcFxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0VG9wUG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uVG9wKFxuICAgICAgICAgICAgdGhpcy5jb250ZW50LFxuICAgICAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5yZWYsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5Ub3BQb3MgPSB2YWx1ZTtcblxuICAgICAgICBjb25zdCByZXF1aXJlZFBvc2l0aW9uID0gdGhpcy5HZXRUb29sdGlwUG9zaXRpb24oKTtcbiAgICAgICAgaWYgKHJlcXVpcmVkUG9zaXRpb24gPT09IFRvb2x0aXBQb3NpdGlvbi5ib3R0b20gfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnRvcCkge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSB0aGlzLmdldFRvb2xUaXBXaWR0aCgpIC8gMiAtIDYuNTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucG9zQXJyb3dMZWZ0ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBtZXRob2QgaWYgY29udGVudCBoYXMgY2hhbmdlZCBhbmQgcHJvcG9ydGlvbnMgbmVlZCB0byBiZSByZXNldCBpbiB0aGUgVUkuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBvbkNvbnRlbnRDaGFuZ2UgPSAoKTogdm9pZCA9PiB7XG4gICAgICAgIC8vIERvIG5vdGhpbmcgaWYgaXMgbm90IHZpc2libGVcbiAgICAgICAgaWYgKCF0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmdldFRvcFBvc2l0aW9uKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICAvLyAjZW5kcmVnaW9uIFByaXZhdGUgTWV0aG9kc1xufVxuIl19
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb252ZXJ0VG9Cb29sZWFuIiwiVG9vbHRpcFBvc2l0aW9uIiwiY3JlYXRlR3VpZCIsIlBvcFVwSGVscGVyIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJTYWNUb29sdGlwQ29tbW9uIiwiY29uc3RydWN0b3IiLCJjZFJlZiIsInJlZiIsImNvdl85Njh1M2gwc24iLCJmIiwicyIsInBvcHVwSGVscGVyIiwiX2lzVG9vbHRpcFZpc2libGUiLCJJc1Rvb2x0aXBDb250ZW50VmlzaWJsZSIsIkxlZnRQb3MiLCJUb3BQb3MiLCJlMmVpZGVudGlmaWVyIiwibmFtZSIsInBvc0Fycm93TGVmdCIsInBvc0Fycm93VG9wIiwicG9zaXRpb24iLCJvbkNvbnRlbnRDaGFuZ2UiLCJiIiwic2V0VGltZW91dCIsImdldExlZnRQb3NpdGlvbiIsImdldFRvcFBvc2l0aW9uIiwiaW5saW5lbW9kZSIsIl9pbmxpbmVtb2RlIiwidmFsdWUiLCJ0b29sdGlwIiwiY29udGVudCIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiYm9keSIsImFwcGVuZENoaWxkIiwibmF0aXZlRWxlbWVudCIsInRvb2x0aXBjb250YWluZXIiLCJkZXRlY3RDaGFuZ2VzIiwidG9vbHRvcCIsIkdldFRvb2x0aXBQb3NpdGlvbiIsImdldERpc3BsYXlQb3NpdGlvbiIsImdldFRvb2x0aXBPZmZzZXQiLCJIaWRlVG9vbHRpcCIsIklzVG9vbHRpcFZpc2libGUiLCJTaG93VG9vbHRpcCIsImdldFRvb2xUaXBIZWlnaHQiLCJnZXRQb3B1cEhlaWdodCIsImdldFRvb2xUaXBXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ0FmdGVyVmlld0NoZWNrZWQiLCJuZ0RvQ2hlY2siLCJuZ09uRGVzdHJveSIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW1vdmVDaGlsZCIsIm5nT25Jbml0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImdldFBvc2l0aW9uTGVmdCIsInJlcXVpcmVkUG9zaXRpb24iLCJsZWZ0IiwicmlnaHQiLCJnZXRQb3NpdGlvblRvcCIsImJvdHRvbSIsInRvcCIsImRlcHMiLCJ0b2tlbiIsImkwIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJFbGVtZW50UmVmIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ0b29sdGlwdGV4dCIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2VudW1zJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9vbHRpcCBDb21wb25lbnRcbiAqXG4gKiBSZXF1aXJlcyB0aGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIGluIHRoZSBIVE1MIG1hcmt1cFxuICogLSBjb250YWluZXI6IENvbnRhaW5lciBmb3IgbmctY29udGVudCBpbiB3aGljaCB0aGUgZWxlbWVudCBpcyBkaXNwbGF5ZWQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQuXG4gKiAtIHRvb2x0aXA6IENvbnRhaW5lciBmb3IgdG9vbHRpcFxuICpcbiAqIFRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaW4gMiBzdGVwcy4gSW4gYSBmaXJzdCBzdGVwIHRoZSB0b29sdGlwIG1hcmt1cCBpcyBjcmVhdGVkIHdpdGggKG5nSWYpLiBJbiBhIDJuZCBzdGVwXG4gKiB0aGUgdG9vbHRpcCBjYW4gdGhlbiBiZSBkaXNwbGF5ZWQgdmlhIHRoZSBDU1MgdmlzaWJpbGl0eS4gSWYgdGhpcyBpcyBub3QgZG9uZSwgaXQgY2FuIGxlYWQgdG8gYSBmbGlja2VyaW5nIGVmZmVjdCBpbiBjZXJ0YWluIGJyb3dzZXJzLlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjVG9vbHRpcENvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBEb0NoZWNrIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgbW9kZSBmb3IgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZW1vZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgdmlzaWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2lzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sdGlwY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIG9uIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcENvbnRlbnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBkZXMgVG9vbHRpcHMgbGlua3NcbiAgICAgKi9cbiAgICBwdWJsaWMgTGVmdFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIFRvcFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBFMkUgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZTJlaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBuYW1lIG9mIGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHR8YXV0byc7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGZvciBUb29sVGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcHRleHQ6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIHJlZiBFbGVtZW50IFJlZmVyZW56XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBpbmxpbmUgbW9kZSBmb3IgdG9vbHRpcC4gU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9uIHRoZSB3cmFwcGVyIGVsZW1lbnQgdG8gYGlubGluZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVtb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lbW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbmxpbmVtb2RlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyID0gY29udGVudDtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFRvb2x0aXBQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBwcmVzZW50IGluIHRoZSBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSXNUb29sdGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVG9vbHRpcFZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIFNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHRvb2x0aXBzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvb2xUaXBXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IENoYW5nZXMgYWZ0ZXIgdmlldyBjaGVja2VkLiBQcmV2ZW50IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IgZXJyb3JcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBVSSBDaGFuZ2VzIHRvIENhbGN1bGF0ZSBUb29sdGlwIGNvcnJlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHRoZSBjb250cm9sIGlzIGRlc3Ryb3llZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IGZvciBUb29sdGlwLiBSZXF1aXJlZCBmb3IgQlM0L0JTNSB0byBjcmVhdGUgcGFkZGluZ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRUb29sdGlwT2Zmc2V0KCk6IG51bWJlcjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRMZWZ0UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMucmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuTGVmdFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmxlZnQgfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUb3BQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlRvcFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSB8fCByZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24udG9wKSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0VG9vbFRpcFdpZHRoKCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiI7eUZBQUEsT0FBU0EsZ0JBQWdCLEtBQVEsNEJBQTRCLENBQzdELE9BQVNDLGVBQWUsS0FBUSx1QkFBdUIsQ0FDdkQsT0FBU0MsVUFBVSxLQUFRLHNCQUFzQixDQUNqRCxPQUFTQyxXQUFXLEtBQVEsNkJBQTZCLENBQ3pELE9BR0lDLFNBQVMsQ0FHVEMsS0FBSyxDQUdMQyxTQUFTLEtBQ04sZUFBZSxDLGlDQUV0Qjs7Ozs7Ozs7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
|
|
86
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb252ZXJ0VG9Cb29sZWFuIiwiVG9vbHRpcFBvc2l0aW9uIiwiY3JlYXRlR3VpZCIsIlBvcFVwSGVscGVyIiwiRGlyZWN0aXZlIiwiSW5wdXQiLCJWaWV3Q2hpbGQiLCJTYWNUb29sdGlwQ29tbW9uIiwiY29uc3RydWN0b3IiLCJjZFJlZiIsInJlZiIsImNvdl85Njh1M2gwc24iLCJmIiwicyIsInBvcHVwSGVscGVyIiwiX2lzVG9vbHRpcFZpc2libGUiLCJJc1Rvb2x0aXBDb250ZW50VmlzaWJsZSIsIkxlZnRQb3MiLCJUb3BQb3MiLCJlMmVpZGVudGlmaWVyIiwibmFtZSIsInBvc0Fycm93TGVmdCIsInBvc0Fycm93VG9wIiwicG9zaXRpb24iLCJvbkNvbnRlbnRDaGFuZ2UiLCJiIiwic2V0VGltZW91dCIsImdldExlZnRQb3NpdGlvbiIsImdldFRvcFBvc2l0aW9uIiwiaW5saW5lbW9kZSIsIl9pbmxpbmVtb2RlIiwidmFsdWUiLCJ0b29sdGlwIiwiY29udGVudCIsInVuZGVmaW5lZCIsImRvY3VtZW50IiwiYm9keSIsImFwcGVuZENoaWxkIiwibmF0aXZlRWxlbWVudCIsInRvb2x0aXBjb250YWluZXIiLCJkZXRlY3RDaGFuZ2VzIiwidG9vbHRvcCIsIkdldFRvb2x0aXBQb3NpdGlvbiIsImdldERpc3BsYXlQb3NpdGlvbiIsImdldFRvb2x0aXBPZmZzZXQiLCJIaWRlVG9vbHRpcCIsIklzVG9vbHRpcFZpc2libGUiLCJTaG93VG9vbHRpcCIsImdldFRvb2xUaXBIZWlnaHQiLCJnZXRQb3B1cEhlaWdodCIsImdldFRvb2xUaXBXaWR0aCIsImdldFBvcHVwV2lkdGgiLCJuZ0FmdGVyVmlld0NoZWNrZWQiLCJuZ0RvQ2hlY2siLCJuZ09uRGVzdHJveSIsIndpbmRvdyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW1vdmVDaGlsZCIsIm5nT25Jbml0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImdldFBvc2l0aW9uTGVmdCIsInJlcXVpcmVkUG9zaXRpb24iLCJsZWZ0IiwicmlnaHQiLCJnZXRQb3NpdGlvblRvcCIsImJvdHRvbSIsInRvcCIsImRlcHMiLCJ0b2tlbiIsImkwIiwiQ2hhbmdlRGV0ZWN0b3JSZWYiLCJFbGVtZW50UmVmIiwidGFyZ2V0IiwiybXJtUZhY3RvcnlUYXJnZXQiLCJpbnB1dHMiLCJ0b29sdGlwdGV4dCIsInZpZXdRdWVyaWVzIiwicHJvcGVydHlOYW1lIiwiZmlyc3QiLCJwcmVkaWNhdGUiLCJkZXNjZW5kYW50cyIsInN0YXRpYyIsIm5nSW1wb3J0IiwiZGVjb3JhdG9ycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1jb21tb24vc3JjL2NvbnRyb2xzL3Rvb2x0aXAvdG9vbHRpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb252ZXJ0VG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2NvbnZlcnRpb24nO1xuaW1wb3J0IHsgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2VudW1zJztcbmltcG9ydCB7IGNyZWF0ZUd1aWQgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZ3VpZCc7XG5pbXBvcnQgeyBQb3BVcEhlbHBlciB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9wb3B1cGhlbHBlcic7XG5pbXBvcnQge1xuICAgIEFmdGVyVmlld0NoZWNrZWQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogVG9vbHRpcCBDb21wb25lbnRcbiAqXG4gKiBSZXF1aXJlcyB0aGUgZm9sbG93aW5nIGlkZW50aWZpZXJzIGluIHRoZSBIVE1MIG1hcmt1cFxuICogLSBjb250YWluZXI6IENvbnRhaW5lciBmb3IgbmctY29udGVudCBpbiB3aGljaCB0aGUgZWxlbWVudCBpcyBkaXNwbGF5ZWQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQuXG4gKiAtIHRvb2x0aXA6IENvbnRhaW5lciBmb3IgdG9vbHRpcFxuICpcbiAqIFRvb2x0aXAgbXVzdCBiZSBkaXNwbGF5ZWQgaW4gMiBzdGVwcy4gSW4gYSBmaXJzdCBzdGVwIHRoZSB0b29sdGlwIG1hcmt1cCBpcyBjcmVhdGVkIHdpdGggKG5nSWYpLiBJbiBhIDJuZCBzdGVwXG4gKiB0aGUgdG9vbHRpcCBjYW4gdGhlbiBiZSBkaXNwbGF5ZWQgdmlhIHRoZSBDU1MgdmlzaWJpbGl0eS4gSWYgdGhpcyBpcyBub3QgZG9uZSwgaXQgY2FuIGxlYWQgdG8gYSBmbGlja2VyaW5nIGVmZmVjdCBpbiBjZXJ0YWluIGJyb3dzZXJzLlxuICpcbiAqL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2FjVG9vbHRpcENvbW1vbiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdDaGVja2VkLCBEb0NoZWNrIHtcbiAgICAvLyAjcmVnaW9uIFByb3BlcnRpZXNcblxuICAgIC8qKlxuICAgICAqIEhlbHBlciBjbGFzcyB0byBkaXNwbGF5IHRvb2x0aXAgb24gY29ycmVjdCBwb3NpdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9wdXBIZWxwZXI6IFBvcFVwSGVscGVyID0gbmV3IFBvcFVwSGVscGVyKCk7XG5cbiAgICAvKipcbiAgICAgKiBJbmxpbmUgbW9kZSBmb3IgdG9vbHRpcFxuICAgICAqL1xuICAgIHByaXZhdGUgX2lubGluZW1vZGU6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIHdoZXRoZXIgdGhlIHRvb2x0aXAgaXMgdmlzaWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX2lzVG9vbHRpcFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIENvbnRhaW5lcnMgZm9yIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHJpdmF0ZSB0b29sdGlwY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFBvc2l0aW9uIG9mIHRoZSB0b29sdGlwIG9uIHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIElzVG9vbHRpcENvbnRlbnRWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBkZXMgVG9vbHRpcHMgbGlua3NcbiAgICAgKi9cbiAgICBwdWJsaWMgTGVmdFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBlbnVtIGluIEFuZ3VsYXIgSFRNTCB0ZW1wbGF0ZVxuICAgICAqL1xuICAgIHB1YmxpYyBUb29sdGlwUG9zaXRpb24gPSBUb29sdGlwUG9zaXRpb247XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBhdCB0aGUgdG9wXG4gICAgICovXG4gICAgcHVibGljIFRvcFBvczogbnVtYmVyID0gMDtcblxuICAgIC8qKlxuICAgICAqIE5hbWUgb2YgdGhlIGNvbnRhaW5lciBmb3IgY29udGVudCAoZS5nLiBpY29uKSBvbiB3aGljaCB0aGUgdG9vbHRpcCBpcyBkaXNwbGF5ZWQuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnY29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgY29udGVudDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIHVzZWQgZm9yIHRoZSBFMkUgZGF0YSBhdHRyaWJ1dGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZTJlaWRlbnRpZmllcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBuYW1lIG9mIGNvbnRyb2xcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBuYW1lOiBzdHJpbmcgPSBjcmVhdGVHdWlkKCk7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSBsZWZ0XG4gICAgICovXG4gICAgcHVibGljIHBvc0Fycm93TGVmdDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBQb3NpdGlvbiBvZiB0aGUgcGlja2VyIGFycm93IGF0IHRoZSB0b3BcbiAgICAgKi9cbiAgICBwdWJsaWMgcG9zQXJyb3dUb3A6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIHRvb2x0aXAuIFZhbHVlczogbGVmdHx0b3B8cmlnaHR8Ym90dG9tfGF1dG9cbiAgICAgKlxuICAgICAqIFZhbHVlICdhdXRvJyBjYW4gYmUgY29tYmluZWQgd2l0aCBhbm90aGVyIHZhbHVlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBvc2l0aW9uOiBzdHJpbmcgPSAncmlnaHR8YXV0byc7XG5cbiAgICAvKipcbiAgICAgKiBUZXh0IGZvciBUb29sVGlwXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdG9vbHRpcHRleHQ6IHN0cmluZztcblxuICAgIC8vICNlbmRyZWdpb24gUHJvcGVydGllc1xuXG4gICAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8qKlxuICAgICAqIEtvbnN0cnVrdG9yXG4gICAgICogQHBhcmFtIHJlZiBFbGVtZW50IFJlZmVyZW56XG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBDb25zdHJ1Y3RvcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGZvciBpbmxpbmUgbW9kZSBmb3IgdG9vbHRpcC4gU2V0cyB0aGUgZGlzcGxheSBtb2RlIG9uIHRoZSB3cmFwcGVyIGVsZW1lbnQgdG8gYGlubGluZWBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGlubGluZW1vZGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbmxpbmVtb2RlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHRlciBmb3IgaW5saW5lIG1vZGUgZm9yIHRvb2x0aXBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgaW5saW5lbW9kZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9pbmxpbmVtb2RlID0gY29udmVydFRvQm9vbGVhbih2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0dGVyIGZvciB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGZvciB0aGUgdG9vbHRpcC4gSXMgcmVxdWlyZWQgYXMgdGhlIHRvb2x0aXAgY2FuIGJlIGhpZGRlbiB2aWEgbmdJZi5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCd0b29sdGlwJywgeyBzdGF0aWM6IGZhbHNlIH0pXG4gICAgcHVibGljIHNldCB0b29sdGlwKGNvbnRlbnQ6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgaWYgKGNvbnRlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy50b29sdGlwY29udGFpbmVyID0gY29udGVudDtcbiAgICAgICAgdGhpcy5vbkNvbnRlbnRDaGFuZ2UoKTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b29sdG9wKCk6IEVsZW1lbnRSZWYge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sdGlwY29udGFpbmVyO1xuICAgIH1cblxuICAgIC8vICNlbmRyZWdpb24gUHVibGljIEdldHRlcnMgQW5kIFNldHRlcnNcblxuICAgIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIEdldFRvb2x0aXBQb3NpdGlvbigpOiBUb29sdGlwUG9zaXRpb24ge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXREaXNwbGF5UG9zaXRpb24oXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIaWRlIHRvb2x0aXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSGlkZVRvb2x0aXAoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2lzVG9vbHRpcFZpc2libGUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciB0aGUgdG9vbHRpcCBpcyBwcmVzZW50IGluIHRoZSBtYXJrdXBcbiAgICAgKi9cbiAgICBwdWJsaWMgSXNUb29sdGlwVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVG9vbHRpcFZpc2libGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0b29sdGlwXG4gICAgICovXG4gICAgcHVibGljIFNob3dUb29sdGlwKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc1Rvb2x0aXBWaXNpYmxlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmdldExlZnRQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5nZXRUb3BQb3NpdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5Jc1Rvb2x0aXBDb250ZW50VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENhbGN1bGF0ZXMgdGhlIGhlaWdodCBvZiB0aGUgdG9vbHRpcFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUb29sVGlwSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLnBvcHVwSGVscGVyLmdldFBvcHVwSGVpZ2h0KHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgd2lkdGggb2YgdGhlIHRvb2x0aXBzXG4gICAgICovXG4gICAgcHVibGljIGdldFRvb2xUaXBXaWR0aCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5wb3B1cEhlbHBlci5nZXRQb3B1cFdpZHRoKHRoaXMudG9vbHRpcGNvbnRhaW5lcik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGV0ZWN0IENoYW5nZXMgYWZ0ZXIgdmlldyBjaGVja2VkLiBQcmV2ZW50IEV4cHJlc3Npb25DaGFuZ2VkQWZ0ZXJJdEhhc0JlZW5DaGVja2VkRXJyb3IgZXJyb3JcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVjdCBVSSBDaGFuZ2VzIHRvIENhbGN1bGF0ZSBUb29sdGlwIGNvcnJlY3RcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICAvLyBEbyBub3RoaW5nIGlmIGlzIG5vdCB2aXNpYmlsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZ2V0TGVmdFBvc2l0aW9uKCk7XG4gICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aGVuIHRoZSBjb250cm9sIGlzIGRlc3Ryb3llZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIFVucmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRXZlbnQgd2hlbiB0aGUgY29udHJvbCBpcyBpbml0aWFsaXplZFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gUmVnaXN0ZXIgRXZlbnQgTGlzdGVuZXJcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25Db250ZW50Q2hhbmdlLCB0cnVlKTtcblxuICAgICAgICBpZiAodGhpcy50b29sdGlwY29udGFpbmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodGhpcy50b29sdGlwY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gI2VuZHJlZ2lvbiBQdWJsaWMgTWV0aG9kc1xuXG4gICAgLy8gI3JlZ2lvbiBQcm90ZWN0ZWQgTWV0aG9kc1xuXG4gICAgLyoqXG4gICAgICogT2Zmc2V0IGZvciBUb29sdGlwLiBSZXF1aXJlZCBmb3IgQlM0L0JTNSB0byBjcmVhdGUgcGFkZGluZ1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRUb29sdGlwT2Zmc2V0KCk6IG51bWJlcjtcblxuICAgIC8vICNlbmRyZWdpb24gUHJvdGVjdGVkIE1ldGhvZHNcblxuICAgIC8vICNyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVzIHRoZSBwb3NpdGlvbiBvZiB0aGUgdG9vbHRpcCBmcm9tIGxpbmtzXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRMZWZ0UG9zaXRpb24oKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLnBvcHVwSGVscGVyLmdldFBvc2l0aW9uTGVmdChcbiAgICAgICAgICAgIHRoaXMuY29udGVudCxcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcGNvbnRhaW5lcixcbiAgICAgICAgICAgIHRoaXMucmVmLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLmdldFRvb2x0aXBPZmZzZXQoKSxcbiAgICAgICAgICAgIHRoaXMucG9zaXRpb24sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuTGVmdFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmxlZnQgfHwgcmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLnJpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93VG9wID0gdGhpcy5nZXRUb29sVGlwSGVpZ2h0KCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd1RvcCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIHRvb2x0aXAgZnJvbSB0aGUgdG9wXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRUb3BQb3NpdGlvbigpOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMucG9wdXBIZWxwZXIuZ2V0UG9zaXRpb25Ub3AoXG4gICAgICAgICAgICB0aGlzLmNvbnRlbnQsXG4gICAgICAgICAgICB0aGlzLnRvb2x0aXBjb250YWluZXIsXG4gICAgICAgICAgICB0aGlzLnJlZixcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9vbHRpcE9mZnNldCgpLFxuICAgICAgICAgICAgdGhpcy5nZXRUb29sdGlwT2Zmc2V0KCksXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uLFxuICAgICAgICAgICAgdHJ1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlRvcFBvcyA9IHZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHJlcXVpcmVkUG9zaXRpb24gPSB0aGlzLkdldFRvb2x0aXBQb3NpdGlvbigpO1xuICAgICAgICBpZiAocmVxdWlyZWRQb3NpdGlvbiA9PT0gVG9vbHRpcFBvc2l0aW9uLmJvdHRvbSB8fCByZXF1aXJlZFBvc2l0aW9uID09PSBUb29sdGlwUG9zaXRpb24udG9wKSB7XG4gICAgICAgICAgICB0aGlzLnBvc0Fycm93TGVmdCA9IHRoaXMuZ2V0VG9vbFRpcFdpZHRoKCkgLyAyIC0gNi41O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5wb3NBcnJvd0xlZnQgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIG1ldGhvZCBpZiBjb250ZW50IGhhcyBjaGFuZ2VkIGFuZCBwcm9wb3J0aW9ucyBuZWVkIHRvIGJlIHJlc2V0IGluIHRoZSBVSS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IG9uQ29udGVudENoYW5nZSA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgLy8gRG8gbm90aGluZyBpZiBpcyBub3QgdmlzaWJsZVxuICAgICAgICBpZiAoIXRoaXMuX2lzVG9vbHRpcFZpc2libGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5nZXRMZWZ0UG9zaXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMuZ2V0VG9wUG9zaXRpb24oKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8vICNlbmRyZWdpb24gUHJpdmF0ZSBNZXRob2RzXG59XG4iXSwibWFwcGluZ3MiOiI7eUZBQUEsT0FBU0EsZ0JBQWdCLEtBQVEsNEJBQTRCLENBQzdELE9BQVNDLGVBQWUsS0FBUSx1QkFBdUIsQ0FDdkQsT0FBU0MsVUFBVSxLQUFRLHNCQUFzQixDQUNqRCxPQUFTQyxXQUFXLEtBQVEsNkJBQTZCLENBQ3pELE9BR0lDLFNBQVMsQ0FHVEMsS0FBSyxDQUdMQyxTQUFTLEtBQ04sZUFBZSxDLGlDQUV0Qjs7Ozs7Ozs7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
|