@opcua/for-node-red 3.2.0 → 3.4.0
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/all.js +1 -1
- package/package.json +1 -1
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-HistoryRead/OpcUa-Client2-HistoryRead.html +2 -2
- package/source/OpcUa-Client2-Monitor/OpcUa-Client2-Monitor.html +2 -2
- package/source/OpcUa-Client2-MonitorEvent/OpcUa-Client2-MonitorEvent.html +2 -2
- package/source/OpcUa-Client2-Read/OpcUa-Client2-Read.html +2 -2
- package/source/OpcUa-Client2-Write/OpcUa-Client2-Write.html +2 -2
- package/source/OpcUa-Endpoint2/OpcUa-Endpoint2.html +2 -2
@@ -4,8 +4,8 @@
|
|
4
4
|
</style>
|
5
5
|
|
6
6
|
<script type="text/javascript">
|
7
|
-
function _0x2e1b(_0x91d6d9,_0x590105){const _0x949b90=_0x949b();return _0x2e1b=function(_0x2e1b35,_0x15610b){_0x2e1b35=_0x2e1b35-0x17c;let _0x4eb5da=_0x949b90[_0x2e1b35];return _0x4eb5da;},_0x2e1b(_0x91d6d9,_0x590105);}function _0x949b(){const _0x2d549f=['DarkOrange','title','_showMenu','apply','JSON','ns=0;i=0','Object','red-ui-typedInput-focus','nsu','stringify','\x22\x20style=\x22color:','opc.tcp://opcuademo.sterfive.com:26543','target','</span>','editableList','<div/>','aliased\x20browsePath:\x20','$dropdown','forEach','disarmClick','validate','$selectTrigger','SteelBlue','$selectLabel','localeCompare','currentParent','log','multiple','<input\x20type=\x22text\x22>','body','$input','#validate-call-arguments-button','<li\x20key=\x22','extra','preventDefault','<span\x20title=','sort','clipboard','setMode','each','/checkNodeId','</span><ul></ul></li>','valueRank','loading','OpcUa-Client2-Call','TypeDefinition','nodeId:\x20','$uiSelect',':first','ReferenceType','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','browsePath','arguments','_showTypeMenu','read','scrollTop','View','already\x20loading','nsuNodeID','$info','Method','keydown','__parentNode','offset','2865352WWVXpZ','append','DisplayName','element','keyCode','map','ns=0;i=85','HasProperty','installArgumentList','relativePath','DataType','7132531NbQkQt','assign','mousedown.red-ui-typedInput-close-property-select','2595912FLZoUh','elements','Unspecified','</p>','options','placeholder','nodes','ns=0;i=34','NodeId','displayName','wrap','suppressed','aliasedBrowsePath','$menu','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','value','<i\x20class=\x22fa\x20fa-id-card\x22/> \x20','json','writeText','after','browse\x20path:\x20','addItem','Good','parentNode','5cYSivB','\x22}><span\x20class=\x22tree-text\x22\x20title=','length','Inverse','<div>','#method-input-argument-definition','#node-input-endpoint','browseName','height','../../icons/opcuanodeLogo.png','prependTo','data','browseResult','internal\x20error\x20','dblclick','VariableType','blur','<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>','dataTypes','toggleClass','-success','reset','SeaGreen','fa-question','val','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','OPCUA-Call','li[key=\x22','ns=0;i=35','red-ui-typedInput-icon\x20','NodeClass','-pending','_hideMenu','#copy-input','isTypeRef','50%','show','closest','pageX',':focus','icon','throw','SuppressedError','inputArguments','bp_aliased','<i\x20class=\x22fa\x20fa-font\x22/i>\x20','resolveParentNode','auto','Forward','li\x20>\x20.tree-text','-messages','main-wrapper','callback','parent','expanded','filter','err','split','fetched\x20:\x20','result','> \x20','$combo','css','widget','statusCode:\x20','/opcua-for-node-red/argumentDefinition','mask-image:\x20url(',');\x20-webkit-mask-image:\x20url(','children','push','$tree','msg','Aliased\x20NodeId','description','nodeClass','$verifyBtn','fa-cog','off','ns=0;i=45','checked','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','focus','remove','$inputGroup','selected','statusText','127521aISKsx','nodeId_aliased','277664RpZPjj','stopPropagation','node_label_italic','join','CadetBlue','fa-list-alt','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','/opcua-for-node-red','fetched','BrowseName','_delay','.tree-text:first','[value=\x27','label','164193vSYqGX','removeClass','call','<input\x20type=\x22checkbox\x22>','ns=0;i=47','HasChild','isArray','outputArguments','rgba(61,\x2060,\x204,\x200.525)','mousedown','HasSubtype','Variable','</li>','pageY','prop','dataType','already\x20fetched','then','expandable','Objects','name','_initMenu','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','message','IsForward','top','bp_indexed','sterfive-dropdown','references','/walk-backward','grey','appendTo','HasComponent','click','SandyBrown','423LzWyqB','status','Both','red-ui-typedInput-icon','attr','toString','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20','empty','typeDefinition','_createMenu','nodeBrowser','inputs','match','-failure','hasClass','nodeIds','baseUrl','slideDown','prev','endpointNode',':visible','NodeId\x20with\x20namespace\x20Urn','nodeId_nsu','namespaceAliases','POST','nodeId','$toggleTreeBtn','node','left','fa-object-group','none','position','aliasedNodeId','nsu\x20nodeId:\x20','$elementDiv','requestedNodeId','Value\x20is\x20not\x20verified','opts','find','trigger','ObjectType','BadNoMatch','function','next','i=61','#C0DEED','<i>','expandable\x20expanded','fa-folder','.spinner','<ul\x20class=\x22sterfive-tree\x22></ul>','text','referenceTypeId','selectedMenuItem','reference','msg.','toggle','error','addClass',';\x22></i>\x20','3640398NARFtx','hide','<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','ns=0;i=61','change','Organizes','argumentDefinition','endpoint','failure','statusCode','18px','done','mode','#method-output-argument-definition','Invalid','application/json','<p>','html','<div\x20class=\x22spinner\x22></div>','BrowsePath'];_0x949b=function(){return _0x2d549f;};return _0x949b();}(function(_0xa87e6d,_0x34100e){const _0x287498=_0x2e1b,_0x4f948f=_0xa87e6d();while(!![]){try{const _0xbeb3ac=parseInt(_0x287498(0x1b0))/0x1+parseInt(_0x287498(0x273))/0x2+-parseInt(_0x287498(0x1c0))/0x3+-parseInt(_0x287498(0x281))/0x4+-parseInt(_0x287498(0x299))/0x5*(parseInt(_0x287498(0x21f))/0x6)+-parseInt(_0x287498(0x27e))/0x7+parseInt(_0x287498(0x1b2))/0x8*(parseInt(_0x287498(0x1e3))/0x9);if(_0xbeb3ac===_0x34100e)break;else _0x4f948f['push'](_0x4f948f['shift']());}catch(_0x6e4f7e){_0x4f948f['push'](_0x4f948f['shift']());}}}(_0x949b,0xd2792),(function(){'use strict';const _0x1730eb=_0x2e1b;function _0x5df02f(_0x40a0ad,_0x3e9ca7,_0x4cc509,_0x478d1e){function _0x44ee7f(_0x5d8538){return _0x5d8538 instanceof _0x4cc509?_0x5d8538:new _0x4cc509(function(_0x1d2c45){_0x1d2c45(_0x5d8538);});}return new(_0x4cc509||(_0x4cc509=Promise))(function(_0x67505d,_0x550503){const _0x45fb35=_0x2e1b;function _0x959926(_0x1f85d8){const _0x4fa7d9=_0x2e1b;try{_0x53744b(_0x478d1e[_0x4fa7d9(0x20e)](_0x1f85d8));}catch(_0x277f0d){_0x550503(_0x277f0d);}}function _0x3e84a6(_0x28ec5c){const _0x1abc91=_0x2e1b;try{_0x53744b(_0x478d1e[_0x1abc91(0x183)](_0x28ec5c));}catch(_0x33291a){_0x550503(_0x33291a);}}function _0x53744b(_0x550c7a){const _0x58c30a=_0x2e1b;_0x550c7a[_0x58c30a(0x22a)]?_0x67505d(_0x550c7a[_0x58c30a(0x290)]):_0x44ee7f(_0x550c7a[_0x58c30a(0x290)])[_0x58c30a(0x1d1)](_0x959926,_0x3e84a6);}_0x53744b((_0x478d1e=_0x478d1e[_0x45fb35(0x236)](_0x40a0ad,_0x3e9ca7||[]))['next']());});}typeof SuppressedError==='function'?SuppressedError:function(_0x550c74,_0x2d39b7,_0x2200bc){const _0x31652f=_0x2e1b;var _0x5ec660=new Error(_0x2200bc);return _0x5ec660['name']=_0x31652f(0x184),_0x5ec660[_0x31652f(0x21c)]=_0x550c74,_0x5ec660[_0x31652f(0x28c)]=_0x2d39b7,_0x5ec660;};const _0x2b85b4=_0x1730eb(0x2b5),_0x297902=_0x1730eb(0x222),_0x5a5fe9=_0x1730eb(0x1c4),_0x5c19c1='ns=0;i=46',_0x590405=_0x1730eb(0x288),_0x4bbef9=_0x1730eb(0x1a8),_0x575d8a='ns=0;i=40';var _0x417203;(function(_0x5ad681){const _0x55dc22=_0x1730eb;_0x5ad681[_0x5ad681[_0x55dc22(0x18a)]=0x0]=_0x55dc22(0x18a),_0x5ad681[_0x5ad681['Inverse']=0x1]=_0x55dc22(0x29c),_0x5ad681[_0x5ad681[_0x55dc22(0x1e5)]=0x2]='Both',_0x5ad681[_0x5ad681[_0x55dc22(0x22d)]=0x3]=_0x55dc22(0x22d);}(_0x417203||(_0x417203={})));var _0x33c6af;(function(_0x3c0be6){const _0x1d64c6=_0x1730eb;_0x3c0be6[_0x3c0be6[_0x1d64c6(0x283)]=0x0]='Unspecified',_0x3c0be6[_0x3c0be6[_0x1d64c6(0x239)]=0x1]='Object',_0x3c0be6[_0x3c0be6['Variable']=0x2]='Variable',_0x3c0be6[_0x3c0be6[_0x1d64c6(0x26f)]=0x4]=_0x1d64c6(0x26f),_0x3c0be6[_0x3c0be6['ObjectType']=0x8]='ObjectType',_0x3c0be6[_0x3c0be6[_0x1d64c6(0x2a8)]=0x10]=_0x1d64c6(0x2a8),_0x3c0be6[_0x3c0be6[_0x1d64c6(0x264)]=0x20]=_0x1d64c6(0x264),_0x3c0be6[_0x3c0be6[_0x1d64c6(0x27d)]=0x40]=_0x1d64c6(0x27d),_0x3c0be6[_0x3c0be6[_0x1d64c6(0x26b)]=0x80]=_0x1d64c6(0x26b);}(_0x33c6af||(_0x33c6af={})));var _0x1c782a;(function(_0x3e45e1){const _0x2cd2b6=_0x1730eb;_0x3e45e1[_0x3e45e1[_0x2cd2b6(0x239)]=0x1]=_0x2cd2b6(0x239),_0x3e45e1[_0x3e45e1[_0x2cd2b6(0x1cb)]=0x2]=_0x2cd2b6(0x1cb),_0x3e45e1[_0x3e45e1[_0x2cd2b6(0x26f)]=0x4]='Method',_0x3e45e1[_0x3e45e1['ObjectType']=0x8]=_0x2cd2b6(0x20b),_0x3e45e1[_0x3e45e1['VariableType']=0x10]='VariableType',_0x3e45e1[_0x3e45e1[_0x2cd2b6(0x264)]=0x20]=_0x2cd2b6(0x264),_0x3e45e1[_0x3e45e1[_0x2cd2b6(0x27d)]=0x40]='DataType',_0x3e45e1[_0x3e45e1[_0x2cd2b6(0x26b)]=0x80]=_0x2cd2b6(0x26b);}(_0x1c782a||(_0x1c782a={})));var _0x2992cd;(function(_0x34cb0e){const _0x2ecabf=_0x1730eb;_0x34cb0e[_0x34cb0e['ReferenceType']=0x1]=_0x2ecabf(0x264),_0x34cb0e[_0x34cb0e['IsForward']=0x2]=_0x2ecabf(0x1d8),_0x34cb0e[_0x34cb0e[_0x2ecabf(0x2b7)]=0x4]=_0x2ecabf(0x2b7),_0x34cb0e[_0x34cb0e[_0x2ecabf(0x1bb)]=0x8]='BrowseName',_0x34cb0e[_0x34cb0e['DisplayName']=0x10]=_0x2ecabf(0x275),_0x34cb0e[_0x34cb0e[_0x2ecabf(0x260)]=0x20]=_0x2ecabf(0x260);}(_0x2992cd||(_0x2992cd={})));function _0x3430ba(_0x32ffc7){const _0x1a9aa5=_0x1730eb;switch(_0x32ffc7){case _0x1a9aa5(0x224):return _0x2b85b4;case _0x1a9aa5(0x27a):return _0x5c19c1;case _0x1a9aa5(0x1e0):return _0x5a5fe9;case _0x1a9aa5(0x1c5):return _0x590405;case _0x1a9aa5(0x1ca):return _0x4bbef9;case'HasTypeDefinition':return _0x575d8a;}}const _0x400eac=_0x22658b=>{const _0xedb320=_0x1730eb;switch(_0x22658b[_0xedb320(0x1a4)]){case _0xedb320(0x239):if(_0x22658b[_0xedb320(0x217)]===_0x2b85b4);if(_0x22658b[_0xedb320(0x1eb)]===_0x297902||_0x22658b[_0xedb320(0x217)]===_0xedb320(0x20f))return{'icon':_0xedb320(0x213),'color':_0xedb320(0x1c8)};return{'icon':_0xedb320(0x200),'color':_0xedb320(0x2af)};case _0xedb320(0x1cb):if(_0x22658b['referenceTypeId']===_0x5a5fe9)return{'icon':'fa-list-alt','color':_0xedb320(0x249)};else return _0x22658b[_0xedb320(0x217)]===_0x5c19c1?{'icon':'fa-list-alt','color':'DodgerBlue'}:{'icon':_0xedb320(0x1b7),'color':'CadetBlue'};case _0xedb320(0x26f):return{'icon':_0xedb320(0x1a6),'color':_0xedb320(0x1e2)};case _0xedb320(0x20b):return{'icon':_0xedb320(0x200),'color':'DarkOrange'};case'VariableType':return{'icon':'fa-sliders','color':_0xedb320(0x233)};case'DataType':return{'icon':'fa-text-width','color':_0xedb320(0x1b6)};}return{'icon':_0xedb320(0x2b0),'color':_0xedb320(0x1de)};},_0x5cb2e4=(_0x51127b,_0x57c385,_0x26432c)=>_0x5df02f(void 0x0,[_0x51127b,_0x57c385,_0x26432c],void 0x0,function*({endpointNode:_0x3c6f4a,endpoint:_0x51c876,baseUrl:_0x300c12},_0x1a1f1b,_0xb001f){const _0x4f5f4d=_0x1730eb,_0x3207ba=_0x300c12+'/opcua-for-node-red',_0x451ef9=_0x3207ba+'/browse',_0x1db7a8=Object[_0x4f5f4d(0x27f)](Object['assign']({},_0xb001f),{'nodeId':_0x1a1f1b,'resultMask':0x3f}),_0x177fda=yield fetch(_0x451ef9,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x3c6f4a,'endpoint':_0x51c876,'browseDescription':_0x1db7a8}),'headers':{'Content-Type':_0x4f5f4d(0x22e)}});if(_0x177fda[_0x4f5f4d(0x1e4)]!==0xc8)return console[_0x4f5f4d(0x24d)]('fetching\x20failed\x20with\x20error',_0x177fda[_0x4f5f4d(0x1e4)],_0x177fda[_0x4f5f4d(0x1af)]),{'references':[]};const _0x3be8fe=yield _0x177fda[_0x4f5f4d(0x292)](),_0xc39b56=_0x3be8fe[_0x4f5f4d(0x2a5)][_0x4f5f4d(0x1dc)]||[];return{'references':_0xc39b56};}),_0x17b786={'referenceTypeId':_0x3430ba(_0x1730eb(0x1c5)),'includeSubtypes':!![],'browseDirection':_0x417203['Forward'],'nodeClassMask':_0x33c6af['Variable']|_0x33c6af[_0x1730eb(0x239)]|_0x33c6af[_0x1730eb(0x26f)],'resultMask':0x3f},_0x590b6d={'referenceTypeId':_0x3430ba(_0x1730eb(0x224)),'includeSubtypes':!![],'browseDirection':_0x417203[_0x1730eb(0x18a)],'nodeClassMask':_0x33c6af[_0x1730eb(0x1cb)]|_0x33c6af[_0x1730eb(0x239)]|_0x33c6af['Method'],'resultMask':0x3f},_0x5d5f5e=(_0x4dda30,_0x12f950)=>_0x5df02f(void 0x0,[_0x4dda30,_0x12f950],void 0x0,function*({endpointNode:_0x41e2ce,endpoint:_0x2de4ae,baseUrl:_0x5e8afa},{nodeId:_0x425c25,rootNodeId:_0x5194d3,isType:_0x5c3327}){const _0x4a5075=_0x1730eb,_0x3f05e4=_0x5e8afa+_0x4a5075(0x1b9),_0xcfc6e2=_0x3f05e4+_0x4a5075(0x1dd),_0x4ca404=yield fetch(_0xcfc6e2,{'method':_0x4a5075(0x1fb),'body':JSON[_0x4a5075(0x23c)]({'endpointNode':_0x41e2ce,'endpoint':_0x2de4ae,'nodeId':_0x425c25,'rootNodeId':_0x5194d3,'isType':_0x5c3327}),'headers':{'Content-Type':_0x4a5075(0x22e)}});if(_0x4ca404['status']!==0xc8)return null;const _0x3739f4=yield _0x4ca404['json']();return _0x3739f4[_0x4a5075(0x266)];}),_0x4c65a2=(_0x2612ae,_0x3edb96)=>{const _0x3107b8=_0x1730eb;if(_0x2612ae['statusCode']!==_0x3107b8(0x297))return _0x2612ae[_0x3107b8(0x206)];switch(_0x3edb96){case'browsePath':return _0x2612ae['bp_indexed'];case _0x3107b8(0x28d):return _0x2612ae[_0x3107b8(0x186)]||_0x2612ae[_0x3107b8(0x1da)];case _0x3107b8(0x203):return _0x2612ae[_0x3107b8(0x1b1)]||_0x2612ae[_0x3107b8(0x1f9)];case _0x3107b8(0x26d):return _0x2612ae['nodeId_nsu'];default:case _0x3107b8(0x1fc):return _0x2612ae['nodeId'];}},_0x55e3eb=_0x3e4426=>{const _0x2be20b=_0x1730eb;if(_0x3e4426[_0x2be20b(0x228)]!=='Good')return _0x2be20b(0x19a)+_0x3e4426['statusCode'];else{let _0x4dd4ed=[];return _0x4dd4ed['push'](_0x2be20b(0x261)+_0x3e4426[_0x2be20b(0x1fc)]),_0x4dd4ed['push'](_0x2be20b(0x295)+_0x3e4426['bp_indexed']),_0x4dd4ed[_0x2be20b(0x19f)]('node\x20class:\x20'+_0x33c6af[_0x3e4426[_0x2be20b(0x1a4)]]),_0x3e4426[_0x2be20b(0x1f9)]&&_0x4dd4ed['push'](_0x2be20b(0x204)+_0x3e4426[_0x2be20b(0x1f9)]),_0x3e4426[_0x2be20b(0x1b1)]&&_0x4dd4ed[_0x2be20b(0x19f)]('aliased\x20NodeId:\x20'+_0x3e4426[_0x2be20b(0x1b1)]),_0x3e4426[_0x2be20b(0x1da)]&&_0x4dd4ed['push'](_0x2be20b(0x243)+_0x3e4426[_0x2be20b(0x186)]),_0x4dd4ed['join']('\x0a');}};function _0x242317(_0x13afc0){const _0x445d86=_0x1730eb;if(_0x13afc0['match'](/^nsu=/))return _0x445d86(0x26d);if(_0x13afc0[_0x445d86(0x1ef)](/^(ns=.*;)?(i|b|s|g)=/))return'nodeId';if(_0x13afc0['match'](/^nsa=/))return _0x445d86(0x203);if(_0x13afc0[_0x445d86(0x1ef)](/^(\/|\.)[0-9]+:/))return'browsePath';if(_0x13afc0[_0x445d86(0x1ef)](/^(\/|\.).*:/))return'browsePath';}function _0x2f2bc3(_0x13685c){const _0x4ac44c=_0x1730eb,_0x127d2e=_0x242317(_0x13685c);switch(_0x127d2e){case'nodeId':return'n';case'aliasedNodeId':return'na';case'nsuNodeID':return'nsu';case _0x4ac44c(0x266):return'b';case _0x4ac44c(0x28d):return'ab';default:return't';}}function _0x255cbe(_0x4100b3){const _0x44761a=_0x1730eb;let _0x5151cb;switch(_0x4100b3){case'n':_0x5151cb=_0x44761a(0x1fc);break;case'na':_0x5151cb=_0x44761a(0x203);break;case _0x44761a(0x23b):_0x5151cb=_0x44761a(0x26d);break;case'b':_0x5151cb='browsePath';break;case'ab':_0x5151cb=_0x44761a(0x28d);break;}return _0x5151cb;}function _0xa4d1c9(_0x2aeef1){const _0x30e4a3=_0x1730eb;switch(_0x2aeef1){case _0x30e4a3(0x1fc):return'n';case _0x30e4a3(0x203):return'na';case _0x30e4a3(0x26d):return'nsu';case'browsePath':return'b';case'aliasedBrowsePath':return'ab';default:return't';}}const _0x3fec46=(_0x2522f2,_0x2ef388)=>_0x5df02f(void 0x0,[_0x2522f2,_0x2ef388],void 0x0,function*({endpointNode:_0x17e2ce,endpoint:_0x2cd47a,baseUrl:_0x417353},_0x167889){const _0x3cf283=_0x1730eb,_0x2712ef=_0x417353+_0x3cf283(0x1b9),_0x23bb65=_0x2712ef+'/checkNodeId',_0x1d41e7=_0x17e2ce['id'],_0x2fd4fa=RED[_0x3cf283(0x287)][_0x3cf283(0x1fe)](_0x1d41e7);console[_0x3cf283(0x24d)](_0x2fd4fa[_0x3cf283(0x1fa)]),_0x2fd4fa[_0x3cf283(0x1fa)];const _0x2feb1e=_0x17e2ce[_0x3cf283(0x1fa)],_0x26d305=yield fetch(_0x23bb65,{'method':_0x3cf283(0x1fb),'body':JSON[_0x3cf283(0x23c)]({'endpointNode':_0x17e2ce,'endpoint':_0x2cd47a,'nodeId':_0x167889,'namespaceAliases':_0x2feb1e}),'headers':{'Content-Type':_0x3cf283(0x22e)}}),_0x4723e4=yield _0x26d305['json']();return{'json':_0x4723e4,'data':_0x26d305};}),_0x27e1eb=(_0x12beb5,_0x1cee31,_0x5b8b18,_0x1fca28)=>_0x5df02f(void 0x0,[_0x12beb5,_0x1cee31,_0x5b8b18,_0x1fca28],void 0x0,function*({endpointNode:_0x2292a7,endpoint:_0x530448,baseUrl:_0x5cb936},_0x120224,_0x526c35,_0x480d4e){const _0x2a6711=_0x1730eb,_0x5a21c4=_0x526c35[_0x2a6711(0x2b1)](),{json:_0x2c3727,data:_0x14e904}=yield _0x3fec46({'endpointNode':_0x2292a7,'endpoint':_0x530448,'baseUrl':_0x5cb936},_0x5a21c4),_0x9db11e=(_0x51c102,_0x51fd6f)=>{const _0x2a8678=_0x2a6711;_0x480d4e[_0x2a8678(0x216)](_0x51c102)[_0x2a8678(0x21d)]('sterfive-info')[_0x2a8678(0x21d)](_0x51fd6f),_0x480d4e['show'](),setTimeout(()=>{const _0x49c5a9=_0x2a8678;_0x480d4e[_0x49c5a9(0x1c1)](_0x51fd6f),_0x480d4e['hide']();},0xbb8);};if(_0x14e904[_0x2a6711(0x1e4)]!==0xc8)return _0x9db11e('!!failure!!'+_0x5a21c4,_0x2a6711(0x227)),![];else{if(_0x2c3727['statusCode']['match'](/Good/)){const _0x3e0939=_0x55e3eb(_0x2c3727);_0x526c35[_0x2a6711(0x1e7)](_0x2a6711(0x234),_0x3e0939);const _0x19d747=_0x4c65a2(_0x2c3727,_0x120224);return _0x526c35[_0x2a6711(0x2b1)](_0x19d747),_0x526c35[_0x2a6711(0x20a)](_0x2a6711(0x223)),_0x9db11e('Good','ok'),!![];}else return _0x526c35[_0x2a6711(0x2b1)](''+_0x5a21c4),_0x9db11e(_0x2c3727[_0x2a6711(0x228)]+'\x20'+_0x14e904[_0x2a6711(0x1af)],_0x2a6711(0x227)),![];}});function _0xf563e1(_0x33f8ed,_0x50bd7d){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x579286=_0x2e1b,_0x25e534=_0x33f8ed[_0x579286(0x2a4)]('value'),_0x24d0eb=yield _0x5cb2e4(_0x50bd7d,_0x25e534,_0x17b786),_0xa9bb1=yield _0x5cb2e4(_0x50bd7d,_0x25e534,_0x590b6d);return{'references':[..._0x24d0eb['references'],..._0xa9bb1[_0x579286(0x1dc)]]};});}const _0x977718={'referenceTypeId':_0x3430ba(_0x1730eb(0x1ca)),'includeSubtypes':!![],'browseDirection':_0x417203[_0x1730eb(0x18a)],'nodeClassMask':_0x33c6af[_0x1730eb(0x264)]|_0x33c6af[_0x1730eb(0x20b)]|_0x33c6af['DataType']|_0x33c6af[_0x1730eb(0x2a8)],'resultMask':0x3f};function _0x12f96c(_0x3d5c6b,_0x4227bc){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x3119b2=_0x2e1b,_0x1d18e1=_0x3d5c6b[_0x3119b2(0x2a4)](_0x3119b2(0x290)),_0x5c074c=yield _0x5cb2e4(_0x4227bc,_0x1d18e1,_0x977718);return _0x5c074c;});}const _0x30b690=_0x29b7e2=>{const _0x3a2dee=_0x1730eb;var _0x30b550,_0xbdb76f,_0x409fef,_0x48deed;if(!_0x29b7e2||!_0x29b7e2[_0x3a2dee(0x1fc)]){const _0x1fa195=$(_0x3a2dee(0x1b8));return _0x1fa195;}const _0x20cff3=_0x29b7e2[_0x3a2dee(0x1fc)]['toString'](),_0xb9c0fa=((_0x30b550=_0x29b7e2[_0x3a2dee(0x28a)])===null||_0x30b550===void 0x0?void 0x0:_0x30b550[_0x3a2dee(0x216)])||((_0xbdb76f=_0x29b7e2[_0x3a2dee(0x2a0)])===null||_0xbdb76f===void 0x0?void 0x0:_0xbdb76f[_0x3a2dee(0x1d4)])||_0x29b7e2[_0x3a2dee(0x1fc)][_0x3a2dee(0x1e8)](),{icon:_0x456404,color:_0x17e097}=_0x400eac(_0x29b7e2),_0x276641='('+_0x29b7e2['nodeId'][_0x3a2dee(0x1e8)]()+')\x20'+(((_0x409fef=_0x29b7e2['browseName'])===null||_0x409fef===void 0x0?void 0x0:_0x409fef[_0x3a2dee(0x1d4)])||((_0x48deed=_0x29b7e2['displayName'])===null||_0x48deed===void 0x0?void 0x0:_0x48deed[_0x3a2dee(0x216)])||''),_0x14b22d=$(_0x3a2dee(0x253)+_0x29b7e2[_0x3a2dee(0x1fc)]['toString']()+_0x3a2dee(0x29a)+_0x276641+'><i\x20class=\x22fa\x20'+_0x456404+_0x3a2dee(0x23d)+_0x17e097+_0x3a2dee(0x21e)+_0xb9c0fa+_0x3a2dee(0x25c));return _0x14b22d['addClass'](_0x3a2dee(0x1d2)),_0x14b22d[_0x3a2dee(0x2a4)](_0x3a2dee(0x290),_0x20cff3),_0x14b22d['data']('reference',_0x29b7e2),_0x14b22d;},_0x2c83a9=(_0x1ee73d,_0xfe5085)=>{const _0x4c997f=_0x1730eb;return _0xfe5085[_0x4c997f(0x209)](_0x4c997f(0x2b4)+_0x1ee73d+'\x22]');},_0x441cfe=(_0x161158,_0x4d6eaa)=>{const _0x295bf2=_0x1730eb;_0x161158['$tree'][_0x295bf2(0x209)](_0x295bf2(0x18b))['removeClass'](_0x295bf2(0x1ae)),_0x4d6eaa[_0x295bf2(0x209)](_0x295bf2(0x1bd))[_0x295bf2(0x21d)](_0x295bf2(0x1ae));},_0xc7d354=(_0x59bc78,_0x58cffe,_0x3ce430)=>_0x5df02f(void 0x0,void 0x0,void 0x0,function*(){const _0x288611=_0x1730eb;let _0x2ca900=_0x3ce430[_0x288611(0x19e)](_0x288611(0x263));_0x58cffe[_0x288611(0x27c)][_0x288611(0x282)]||[];const _0x2e2731=_0x58cffe[_0x288611(0x1f2)]||[];if(_0x2e2731[_0x288611(0x29b)]===0x0)return;for(const _0x5929c2 of _0x2e2731){_0x2ca900['hasClass'](_0x288611(0x1d2))&&(yield _0x55f96c(_0x59bc78,_0x2ca900));const _0x16feba=_0x2c83a9(_0x5929c2,_0x2ca900);if(_0x16feba[_0x288611(0x29b)]===0x0)return;_0x2ca900=_0x16feba;}_0x441cfe(_0x59bc78,_0x2ca900),_0x5cb19a(_0x59bc78[_0x288611(0x244)],_0x2ca900);});function _0x5cb19a(_0x272d73,_0x3d9b17){const _0x1106fa=_0x1730eb,_0x41e94b=_0x3d9b17[_0x1106fa(0x202)]()['top'],_0x69a88c=_0x272d73[_0x1106fa(0x26a)]();if(_0x69a88c==undefined)return;const _0x33d30b=_0x69a88c+_0x41e94b-_0x272d73[_0x1106fa(0x2a1)]()/0x2+_0x3d9b17[_0x1106fa(0x2a1)]()/0x2;_0x272d73['animate']({'scrollTop':_0x33d30b},0x1f4);}const _0x1d3701=(_0x2d0eb6,_0x19e869)=>_0x5df02f(void 0x0,void 0x0,void 0x0,function*(){const _0x3eac01=_0x1730eb,_0x4c1fe7=_0x2d0eb6['$input']['val'](),_0x3f2e61={'nodeId':_0x4c1fe7,'rootNodeId':_0x19e869[_0x3eac01(0x1fc)],'isType':_0x2d0eb6[_0x3eac01(0x285)][_0x3eac01(0x17c)]||![]},_0x3792c7=_0xecec06(_0x2d0eb6),_0x4c83bf=yield _0x5d5f5e(_0x3792c7,_0x3f2e61);if(!_0x4c83bf)return;yield _0xc7d354(_0x2d0eb6,_0x4c83bf,_0x2d0eb6[_0x3eac01(0x1a0)]);});function _0x848de1(_0x578b84,_0x21ec83,_0x450211,_0x56889e){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x45c590=_0x2e1b;if(_0x21ec83['hasClass'](_0x45c590(0x1ba))){console[_0x45c590(0x24d)](_0x45c590(0x1d0));return;}if(_0x21ec83['hasClass'](_0x45c590(0x25e))){console[_0x45c590(0x24d)](_0x45c590(0x26c));return;}_0x21ec83[_0x45c590(0x21d)]('loading'),_0x21ec83['append'](_0x45c590(0x231));try{_0x21ec83['children']('ul')[_0x45c590(0x1ea)]();const {references:_0x41dcc3}=yield _0x450211(_0x21ec83,_0x56889e);_0x41dcc3[_0x45c590(0x257)]((_0x332c82,_0x56eb7e)=>{const _0x7cc79e=_0x45c590;var _0x3343b8,_0x273e6b;return(((_0x3343b8=_0x332c82[_0x7cc79e(0x2a0)])===null||_0x3343b8===void 0x0?void 0x0:_0x3343b8[_0x7cc79e(0x1d4)])||'')[_0x7cc79e(0x24b)](((_0x273e6b=_0x56eb7e[_0x7cc79e(0x2a0)])===null||_0x273e6b===void 0x0?void 0x0:_0x273e6b['name'])||'');});for(const _0x5267ea of _0x41dcc3){if(_0x578b84[_0x45c590(0x285)]['filter']&&!_0x578b84[_0x45c590(0x285)][_0x45c590(0x191)](_0x5267ea))continue;const _0x3cccb8=_0x30b690(_0x5267ea);_0x21ec83[_0x45c590(0x19e)]('ul')[_0x45c590(0x274)](_0x3cccb8);}_0x21ec83[_0x45c590(0x21d)](_0x45c590(0x1ba));}catch(_0x1f2aeb){_0x21ec83[_0x45c590(0x19e)]('ul')[_0x45c590(0x274)]('<li>error\x20'+_0x1f2aeb[_0x45c590(0x1d7)]+_0x45c590(0x1cc)),console['log'](_0x45c590(0x192),_0x1f2aeb);}_0x21ec83[_0x45c590(0x209)](_0x45c590(0x214))[_0x45c590(0x1ac)](),_0x21ec83[_0x45c590(0x1c1)](_0x45c590(0x25e));});}function _0xecec06(_0x4e4f7d){const _0x1e033d=_0x1730eb,_0x2d88b5={'baseUrl':_0x4e4f7d[_0x1e033d(0x285)][_0x1e033d(0x1f3)],'endpointNode':typeof _0x4e4f7d[_0x1e033d(0x285)][_0x1e033d(0x1f6)]===_0x1e033d(0x20d)?_0x4e4f7d[_0x1e033d(0x285)][_0x1e033d(0x1f6)]():_0x4e4f7d['options']['endpointNode'],'endpoint':typeof _0x4e4f7d[_0x1e033d(0x285)][_0x1e033d(0x226)]===_0x1e033d(0x20d)?_0x4e4f7d[_0x1e033d(0x285)]['endpoint']():_0x4e4f7d['options'][_0x1e033d(0x226)]};return _0x2d88b5;}function _0x55f96c(_0x504e68,_0x378718){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x2897f2=_0x2e1b;if(_0x378718[_0x2897f2(0x1f1)](_0x2897f2(0x1ba))){_0x378718[_0x2897f2(0x1c1)](_0x2897f2(0x1d2))['addClass'](_0x2897f2(0x190)),_0x378718[_0x2897f2(0x19e)]('ul')[_0x2897f2(0x21b)]();return;}const _0x445de2=_0xecec06(_0x504e68),_0x1d9fc7=!_0x504e68[_0x2897f2(0x285)][_0x2897f2(0x17c)]?_0xf563e1:_0x12f96c;try{yield _0x848de1(_0x504e68,_0x378718,_0x1d9fc7,_0x445de2),_0x378718['removeClass'](_0x2897f2(0x1d2))[_0x2897f2(0x21d)](_0x2897f2(0x190));}catch(_0x42b739){_0x378718[_0x2897f2(0x1c1)](_0x2897f2(0x1d2))[_0x2897f2(0x21d)](_0x2897f2(0x190)),console['log']('error',_0x42b739);}});}const _0x4b8cea={'browseName':{'namespaceIndex':0x0,'name':_0x1730eb(0x1d3)},'nodeClass':_0x1730eb(0x239),'nodeId':_0x1730eb(0x279),'displayName':{'text':'Objects'},'typeDefinition':_0x297902},_0x936084=()=>{const _0x2ae955=_0x1730eb;$[_0x2ae955(0x199)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x2ae955(0x23e)}),'endpoint':()=>undefined,'parentNode':()=>_0x4b8cea,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x392ecd=_0x2e1b,_0x18692b=this;if(_0x18692b['__parentNode']==undefined){const _0x2e7ae0=typeof _0x18692b['options'][_0x392ecd(0x298)]===_0x392ecd(0x20d)?_0x18692b[_0x392ecd(0x285)][_0x392ecd(0x298)][_0x392ecd(0x1c2)](_0x18692b):_0x18692b[_0x392ecd(0x285)][_0x392ecd(0x298)];if(_0x2e7ae0 instanceof Promise){const _0x15ed51=yield _0x2e7ae0;_0x18692b[_0x392ecd(0x271)]=_0x15ed51;}else _0x18692b[_0x392ecd(0x271)]=_0x2e7ae0;}return _0x18692b[_0x392ecd(0x271)]||_0x4b8cea;});},'reset'(){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x37990b=_0x2e1b,_0x42f460=this,_0x358a05=_0x42f460;_0x358a05[_0x37990b(0x271)]=undefined,_0x42f460[_0x37990b(0x1a0)][_0x37990b(0x1ea)]();const _0x4fc148=yield this[_0x37990b(0x188)](),_0x45ca14=_0x30b690(_0x4fc148);_0x42f460[_0x37990b(0x1a0)]['append'](_0x45ca14),_0x42f460[_0x37990b(0x24c)]=_0x4fc148;});},'verify'(_0x573673){const _0x5510f1=_0x2ae955,_0x1a5da6=this,_0x45f44c=_0xecec06(_0x1a5da6);_0x27e1eb(_0x45f44c,_0x573673,_0x1a5da6[_0x5510f1(0x251)],_0x1a5da6['$info'])[_0x5510f1(0x1d1)](_0x662bb6=>{const _0x515fe4=_0x5510f1;!_0x662bb6?_0x1a5da6[_0x515fe4(0x197)][_0x515fe4(0x21d)]('input-error'):_0x1a5da6[_0x515fe4(0x197)][_0x515fe4(0x1c1)]('input-error');});},'_hideMenu'(_0x1a4fda){const _0x5e52ae=_0x2ae955,_0xa78a44=this;$(document)[_0x5e52ae(0x1a7)]('mousedown.red-ui-typedInput-close-property-select'),_0x1a4fda['hide'](),_0x1a4fda['css']({'height':_0x5e52ae(0x189)});if(_0x1a4fda[_0x5e52ae(0x208)][_0x5e52ae(0x24e)]){var _0x2cba60=[];_0x1a4fda[_0x5e52ae(0x209)]('input[type=\x22checkbox\x22]')[_0x5e52ae(0x25a)](function(){const _0x16afee=_0x5e52ae;$(this)['prop'](_0x16afee(0x1a9))&&_0x2cba60[_0x16afee(0x19f)]($(this)[_0x16afee(0x2a4)](_0x16afee(0x290)));}),_0x1a4fda[_0x5e52ae(0x18e)](_0x2cba60);}_0xa78a44[_0x5e52ae(0x205)]['is'](_0x5e52ae(0x1f7))?_0xa78a44['$input'][_0x5e52ae(0x20a)]('focus'):_0xa78a44[_0x5e52ae(0x248)][_0x5e52ae(0x20a)]('focus');},'_createMenu'(_0x42c28e,_0xa8676a,_0x20bd1d){const _0x340679=_0x2ae955;var _0x481b9c=this;const _0x31064d=$(_0x340679(0x29d))[_0x340679(0x21d)]('sterfive-typedInput-options\x20sterfive-online-menu');return _0x31064d[_0x340679(0x208)]=_0xa8676a,_0x31064d[_0x340679(0x18e)]=_0x20bd1d,_0x42c28e[_0x340679(0x245)](_0x54e6c2=>{const _0x24922f=_0x340679;typeof _0x54e6c2==='string'&&(_0x54e6c2={'value':_0x54e6c2,'label':_0x54e6c2});var _0x4e523b=$('<a\x20href=\x22#\x22></a>')[_0x24922f(0x1e7)](_0x24922f(0x290),_0x54e6c2[_0x24922f(0x290)])['appendTo'](_0x31064d);_0x54e6c2[_0x24922f(0x1bf)]&&_0x4e523b['text'](_0x54e6c2[_0x24922f(0x1bf)]);_0x54e6c2[_0x24922f(0x234)]&&_0x4e523b['prop'](_0x24922f(0x234),_0x54e6c2['title']);if(_0x54e6c2['icon']){if(_0x54e6c2['icon']['indexOf']('<')===0x0)$(_0x54e6c2['icon'])['prependTo'](_0x4e523b);else _0x54e6c2[_0x24922f(0x182)]['indexOf']('/')!==-0x1?$(_0x24922f(0x211),{'class':_0x24922f(0x1e6),'style':_0x24922f(0x19c)+_0x54e6c2[_0x24922f(0x182)]+_0x24922f(0x19d)+_0x54e6c2[_0x24922f(0x182)]+');'})[_0x24922f(0x2a3)](_0x4e523b):$(_0x24922f(0x211),{'class':_0x24922f(0x2b6)+_0x54e6c2[_0x24922f(0x182)]})[_0x24922f(0x2a3)](_0x4e523b);}else _0x4e523b['css']({'paddingLeft':_0x24922f(0x229)});!_0x54e6c2[_0x24922f(0x182)]&&!_0x54e6c2[_0x24922f(0x1bf)]&&_0x4e523b['text'](_0x54e6c2[_0x24922f(0x290)]);var _0x30d86c;_0xa8676a[_0x24922f(0x24e)]&&(_0x30d86c=$(_0x24922f(0x1c3))['css']('pointer-events','none')[_0x24922f(0x2a4)](_0x24922f(0x290),_0x54e6c2[_0x24922f(0x290)])[_0x24922f(0x2a3)](_0x4e523b)['on'](_0x24922f(0x1c9),function(_0xcbad63){const _0xa8fc1=_0x24922f;_0xcbad63[_0xa8fc1(0x255)]();})),_0x4e523b['on'](_0x24922f(0x1e1),function(_0x220266){const _0x36e918=_0x24922f;_0x220266[_0x36e918(0x255)](),_0x220266[_0x36e918(0x1b3)](),!_0xa8676a[_0x36e918(0x24e)]?(_0x20bd1d(_0x54e6c2[_0x36e918(0x290)]),_0x481b9c[_0x36e918(0x2b9)](_0x31064d)):_0x30d86c['prop'](_0x36e918(0x1a9),!_0x30d86c[_0x36e918(0x1ce)](_0x36e918(0x1a9)));});}),_0x31064d[_0x340679(0x198)]({'display':_0x340679(0x201)}),_0x31064d['on'](_0x340679(0x270),function(_0x2fd3ac){const _0x1ccada=_0x340679;if(_0x2fd3ac['keyCode']===0x28)_0x2fd3ac[_0x1ccada(0x255)](),$(this)[_0x1ccada(0x19e)](_0x1ccada(0x181))['next']()[_0x1ccada(0x20a)](_0x1ccada(0x1ab));else{if(_0x2fd3ac[_0x1ccada(0x277)]===0x26)_0x2fd3ac[_0x1ccada(0x255)](),$(this)[_0x1ccada(0x19e)](':focus')[_0x1ccada(0x1f5)]()['trigger'](_0x1ccada(0x1ab));else _0x2fd3ac[_0x1ccada(0x277)]===0x1b&&(_0x2fd3ac[_0x1ccada(0x255)](),_0x481b9c[_0x1ccada(0x2b9)](_0x31064d));}_0x2fd3ac['stopPropagation']();}),_0x31064d;},'disarmClick':![],'_showMenu'(_0x2764e3,_0x4a3a27){const _0x38c765=_0x2ae955;if(this['disarmClick']){this['disarmClick']=![];return;}var _0xddf4c=this,_0x53f4fc=_0x4a3a27[_0x38c765(0x272)](),_0xc8f786=_0x4a3a27[_0x38c765(0x2a1)](),_0x3aa95d=_0x2764e3[_0x38c765(0x2a1)](),_0x75432d=_0xc8f786+_0x53f4fc[_0x38c765(0x1d9)];_0x75432d+_0x3aa95d-$(document)[_0x38c765(0x26a)]()>$(window)[_0x38c765(0x2a1)]()&&(_0x75432d-=_0x75432d+_0x3aa95d-$(window)[_0x38c765(0x2a1)]()+0x5),_0x75432d<0x0&&(_0x2764e3[_0x38c765(0x2a1)](_0x3aa95d+_0x75432d),_0x75432d=0x0),_0x2764e3[_0x38c765(0x198)]({'top':_0x75432d+'px','left':_0x53f4fc[_0x38c765(0x1ff)]+'px'}),_0x2764e3[_0x38c765(0x1f4)](0x64),this[_0x38c765(0x1bc)](function(){const _0x4d1e22=_0x38c765;_0xddf4c[_0x4d1e22(0x262)][_0x4d1e22(0x21d)](_0x4d1e22(0x23a)),$(document)['on'](_0x4d1e22(0x280),function(_0xfc355f){const _0x5500b3=_0x4d1e22;!$(_0xfc355f['target'])[_0x5500b3(0x17f)](_0x2764e3)['length']&&_0xddf4c[_0x5500b3(0x2b9)](_0x2764e3),$(_0xfc355f[_0x5500b3(0x23f)])[_0x5500b3(0x17f)](_0x4a3a27)[_0x5500b3(0x29b)]&&(_0xddf4c[_0x5500b3(0x246)]=!![],_0xfc355f[_0x5500b3(0x255)]());});});},'_showTypeMenu'(){const _0x10ea8e=_0x2ae955,_0x4847dc=this;this[_0x10ea8e(0x235)](_0x4847dc[_0x10ea8e(0x28e)],_0x4847dc[_0x10ea8e(0x197)]),_0x4847dc['$dropdown'][_0x10ea8e(0x220)]();const _0x1f4b7e=_0x4847dc[_0x10ea8e(0x218)];var _0x8ba594=_0x4847dc[_0x10ea8e(0x28e)][_0x10ea8e(0x209)](_0x10ea8e(0x1be)+_0x1f4b7e+'\x27');setTimeout(function(){const _0x1fba1e=_0x10ea8e;_0x8ba594['trigger'](_0x1fba1e(0x1ab));},0x78);},'_initMenu'(){const _0x47d597=_0x2ae955,_0x41d90a=this;_0x41d90a[_0x47d597(0x248)]['attr']('tabindex',-0x1),_0x41d90a[_0x47d597(0x248)]['on']('mousedown.red-ui-typedInput-focus-block',function(_0x420008){const _0x37c49a=_0x47d597;_0x420008[_0x37c49a(0x255)]();});_0x41d90a[_0x47d597(0x28e)]&&_0x41d90a['$menu'][_0x47d597(0x1ac)]();const _0x49588b=[{'label':'text','value':'t','title':_0x47d597(0x207),'icon':_0x47d597(0x187)},{'label':_0x47d597(0x21a),'value':_0x47d597(0x1a1),'title':_0x47d597(0x1aa),'icon':'<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>'},{'label':_0x47d597(0x289),'value':'n','icon':_0x47d597(0x1e9)},{'label':_0x47d597(0x1a2),'value':'na','icon':'<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20'},{'label':_0x47d597(0x1f8),'value':_0x47d597(0x23b),'icon':_0x47d597(0x291)},{'label':_0x47d597(0x232),'value':'b','icon':_0x47d597(0x265)},{'label':'Aliased\x20Browse\x20Path','value':'ab','icon':_0x47d597(0x2b2)}],_0x2c66fe=_0x2f2bc3(_0x41d90a['$input'][_0x47d597(0x2b1)]()),_0x5d38cf=_0x49588b[_0x47d597(0x209)](_0x589c10=>_0x589c10[_0x47d597(0x290)]===_0x2c66fe);_0x41d90a[_0x47d597(0x24a)][_0x47d597(0x1ea)]()['append'](_0x47d597(0x256)+((_0x5d38cf===null||_0x5d38cf===void 0x0?void 0x0:_0x5d38cf[_0x47d597(0x234)])||'')+_0x47d597(0x196)+((_0x5d38cf===null||_0x5d38cf===void 0x0?void 0x0:_0x5d38cf[_0x47d597(0x182)])||'')+_0x47d597(0x240)),_0x41d90a[_0x47d597(0x218)]=_0x2c66fe;const _0x3edcee=this;_0x41d90a[_0x47d597(0x28e)]=this[_0x47d597(0x1ec)](_0x49588b,{},_0x258bfc=>{const _0x5f05fa=_0x47d597,_0x589f7c=_0x255cbe(_0x258bfc);_0x589f7c&&_0x3edcee['verify'](_0x589f7c);const _0x1acd76=_0x49588b[_0x5f05fa(0x209)](_0x1b4217=>_0x1b4217[_0x5f05fa(0x290)]===_0x258bfc);_0x41d90a[_0x5f05fa(0x218)]=_0x258bfc,_0x41d90a[_0x5f05fa(0x24a)][_0x5f05fa(0x1ea)]()[_0x5f05fa(0x274)](_0x5f05fa(0x256)+((_0x1acd76===null||_0x1acd76===void 0x0?void 0x0:_0x1acd76[_0x5f05fa(0x234)])||'')+_0x5f05fa(0x196)+((_0x1acd76===null||_0x1acd76===void 0x0?void 0x0:_0x1acd76[_0x5f05fa(0x182)])||'')+_0x5f05fa(0x240));}),_0x41d90a[_0x47d597(0x28e)][_0x47d597(0x1df)](document[_0x47d597(0x250)]),_0x41d90a['$menu'][_0x47d597(0x220)](),_0x41d90a['$selectTrigger'][_0x47d597(0x17e)]();},'mode'(){const _0x4a93f6=_0x2ae955,_0xccf95e=this;return _0x255cbe(_0xccf95e[_0x4a93f6(0x218)]);},'setMode'(_0x17f6de){const _0x3a57ef=this,_0x5f03fd=_0xa4d1c9(_0x17f6de);_0x3a57ef['selectedMenuItem']=_0x5f03fd;},'_create'(){const _0x3a3158=_0x2ae955,_0x3d25a5=this;_0x3d25a5['$input']=this[_0x3a3158(0x276)],_0x3d25a5[_0x3a3158(0x251)][_0x3a3158(0x198)]('border',_0x3a3158(0x201)),_0x3d25a5[_0x3a3158(0x205)]=_0x3d25a5['$input'][_0x3a3158(0x28b)]('<div>')[_0x3a3158(0x18f)]()[_0x3a3158(0x21d)](_0x3a3158(0x18d)),_0x3d25a5[_0x3a3158(0x197)]=$(_0x3a3158(0x242)),_0x3d25a5[_0x3a3158(0x197)]['addClass']('sterfive-combo-box'),_0x3d25a5[_0x3a3158(0x251)]['replaceWith'](_0x3d25a5[_0x3a3158(0x197)]),_0x3d25a5['$inputGroup']=$(_0x3a3158(0x242))[_0x3a3158(0x21d)]('input-group'),_0x3d25a5[_0x3a3158(0x197)][_0x3a3158(0x274)](_0x3d25a5[_0x3a3158(0x1ad)]),_0x3d25a5[_0x3a3158(0x1ad)][_0x3a3158(0x274)](_0x3d25a5['$input']),_0x3d25a5[_0x3a3158(0x1fd)]=$(_0x3a3158(0x221)),_0x3d25a5[_0x3a3158(0x251)][_0x3a3158(0x294)](_0x3d25a5[_0x3a3158(0x1fd)]),_0x3d25a5[_0x3a3158(0x1fd)]['on'](_0x3a3158(0x1e1),function(){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x34e1c8=_0x2e1b;var _0x3bde65;let _0x2101f5=![],_0x802b99;!_0x3d25a5['$dropdown']['is'](_0x34e1c8(0x1f7))&&(_0x3d25a5[_0x34e1c8(0x26e)][_0x34e1c8(0x220)](),_0x802b99=yield _0x3d25a5[_0x34e1c8(0x188)](),(_0x802b99!==_0x3d25a5[_0x34e1c8(0x24c)]||((_0x3bde65=_0x3d25a5[_0x34e1c8(0x24c)])===null||_0x3bde65===void 0x0?void 0x0:_0x3bde65['nodeId'])!==_0x802b99[_0x34e1c8(0x1fc)])&&(yield _0x3d25a5[_0x34e1c8(0x2ae)]()),_0x2101f5=!![]),_0x3d25a5[_0x34e1c8(0x244)][_0x34e1c8(0x21b)](),_0x2101f5&&(yield _0x1d3701(_0x3d25a5,_0x802b99));});}),_0x3d25a5[_0x3a3158(0x1a5)]=$('<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>'),_0x3d25a5[_0x3a3158(0x251)][_0x3a3158(0x294)](_0x3d25a5[_0x3a3158(0x1a5)]),_0x3d25a5[_0x3a3158(0x1a5)]['on'](_0x3a3158(0x1e1),()=>{const _0x35405b=_0x3a3158,_0x88dbc1=_0x3d25a5[_0x35405b(0x22b)]();if(!_0x88dbc1)return;this['verify'](_0x88dbc1);});const _0x3e8304=_0x508075=>_0x5df02f(this,void 0x0,void 0x0,function*(){const _0x1bef9f=_0x3a3158,_0x5ff9be=this;let _0x14feca=_0x5ff9be[_0x1bef9f(0x22b)]();if(!_0x14feca)return;const _0x102a63=_0xecec06(_0x5ff9be),{data:_0x874a4a,json:_0x2edfe9}=yield _0x3fec46(_0x102a63,_0x508075);if(_0x874a4a[_0x1bef9f(0x1e4)]!==0xc8)return;if(_0x2edfe9['statusCode'][_0x1bef9f(0x1ef)](/Good/)){const _0x52e700=_0x4c65a2(_0x2edfe9,_0x14feca);_0x5ff9be[_0x1bef9f(0x251)]['val'](_0x52e700),_0x5ff9be['$input'][_0x1bef9f(0x20a)](_0x1bef9f(0x223));}});{_0x3d25a5[_0x3a3158(0x262)]=$(_0x3a3158(0x29d)),_0x3d25a5[_0x3a3158(0x251)]['before'](_0x3d25a5[_0x3a3158(0x262)]),_0x3d25a5[_0x3a3158(0x248)]=$(_0x3a3158(0x28f))['prependTo'](_0x3d25a5[_0x3a3158(0x262)]),$(_0x3a3158(0x2aa))[_0x3a3158(0x21b)](!![])[_0x3a3158(0x1df)](_0x3d25a5[_0x3a3158(0x248)]),_0x3d25a5[_0x3a3158(0x248)]['on']('click',function(_0x22e3b9){const _0xf3aef4=_0x3a3158;_0x22e3b9[_0xf3aef4(0x255)](),_0x22e3b9['stopPropagation'](),_0x3d25a5[_0xf3aef4(0x268)]();}),_0x3d25a5[_0x3a3158(0x248)]['on'](_0x3a3158(0x270),function(_0x2fd187){const _0x1cfb8a=_0x3a3158;_0x2fd187[_0x1cfb8a(0x277)]===0x28&&_0x3d25a5[_0x1cfb8a(0x268)](),_0x2fd187[_0x1cfb8a(0x1b3)]();})['on'](_0x3a3158(0x1ab),function(){const _0x25c840=_0x3a3158;_0x3d25a5['$uiSelect'][_0x25c840(0x21d)](_0x25c840(0x23a));})['on'](_0x3a3158(0x2a9),function(){const _0x195e56=_0x3a3158;_0x3d25a5[_0x195e56(0x262)]['removeClass'](_0x195e56(0x23a));}),_0x3d25a5[_0x3a3158(0x24a)]=$('<span\x20class=\x22red-ui-typedInput-type-label\x22></span>')[_0x3a3158(0x1df)](_0x3d25a5['$selectTrigger']);}this[_0x3a3158(0x1d5)]();!_0x3d25a5[_0x3a3158(0x251)][_0x3a3158(0x1e7)](_0x3a3158(0x286))&&_0x3d25a5['$input'][_0x3a3158(0x1e7)](_0x3a3158(0x286),_0x3a3158(0x1d6));_0x3d25a5[_0x3a3158(0x26e)]=$('<div\x20class=\x22info-text\x22></div>'),_0x3d25a5[_0x3a3158(0x26e)][_0x3a3158(0x220)](),_0x3d25a5[_0x3a3158(0x197)]['append'](_0x3d25a5[_0x3a3158(0x26e)]),_0x3d25a5['$dropdown']=$(_0x3a3158(0x242))[_0x3a3158(0x21d)](_0x3a3158(0x1db))['hide']()[_0x3a3158(0x1df)](_0x3d25a5[_0x3a3158(0x197)]),_0x3d25a5['$tree']=$(_0x3a3158(0x215))[_0x3a3158(0x1df)](_0x3d25a5[_0x3a3158(0x244)]),this['reset']();const _0xc396aa=(_0x30567c,_0x2998c2)=>{const _0x341acb=_0x3a3158,_0x4917fe=0x14,_0x4428dc=0x14,_0x1cdb1c=_0x30567c[_0x341acb(0x272)](),_0x350022=_0x2998c2;if(_0x350022[_0x341acb(0x180)]>=_0x1cdb1c[_0x341acb(0x1ff)]&&_0x350022[_0x341acb(0x180)]<=_0x1cdb1c['left']+_0x4917fe&&_0x350022[_0x341acb(0x1cd)]>=_0x1cdb1c[_0x341acb(0x1d9)]&&_0x350022[_0x341acb(0x1cd)]<=_0x1cdb1c[_0x341acb(0x1d9)]+_0x4428dc)return!![];return![];},_0x3aaf95=_0x3cd608=>_0x5df02f(this,void 0x0,void 0x0,function*(){const _0x344e97=_0x3a3158;if(_0x3cd608[_0x344e97(0x1f1)](_0x344e97(0x1d2)))_0x55f96c(_0x3d25a5,_0x3cd608);else{if(_0x3cd608[_0x344e97(0x1f1)]('expanded'))_0x3cd608[_0x344e97(0x19e)]('ul')['toggle'](),_0x3cd608[_0x344e97(0x2ac)](_0x344e97(0x212));else{if(_0x3cd608['children']('ul')[_0x344e97(0x19e)]()[_0x344e97(0x29b)]>0x0)_0x3cd608[_0x344e97(0x19e)]('ul')[_0x344e97(0x21b)](),_0x3cd608['toggleClass'](_0x344e97(0x212));else;}}});_0x3d25a5[_0x3a3158(0x1a0)]['on'](_0x3a3158(0x2a7),'li',function(_0x4b74e8){const _0x32b46f=_0x3a3158;var _0x1a86b6,_0xf56227;_0x4b74e8[_0x32b46f(0x1b3)]();let _0x2a798f=$(this);if(_0xc396aa(_0x2a798f,_0x4b74e8))_0x3aaf95(_0x2a798f);else{const _0x53b175=_0x2a798f[_0x32b46f(0x2a4)](_0x32b46f(0x290)),_0x6891f4=_0x2a798f[_0x32b46f(0x2a4)](_0x32b46f(0x219));if(_0x3d25a5['options']['isSelectable']&&!_0x3d25a5['options']['isSelectable'](_0x6891f4))return;_0x3d25a5[_0x32b46f(0x251)][_0x32b46f(0x2a4)](_0x32b46f(0x219),_0x6891f4),((_0x1a86b6=_0x6891f4[_0x32b46f(0x28a)])===null||_0x1a86b6===void 0x0?void 0x0:_0x1a86b6[_0x32b46f(0x216)])||((_0xf56227=_0x6891f4[_0x32b46f(0x2a0)])===null||_0xf56227===void 0x0?void 0x0:_0xf56227[_0x32b46f(0x1d4)])||_0x6891f4['nodeId']['toString']();let _0x4bb557=_0x3d25a5[_0x32b46f(0x22b)]();!_0x4bb557&&(_0x4bb557=_0x32b46f(0x1fc),_0x3d25a5[_0x32b46f(0x259)](_0x4bb557)),_0x3e8304(_0x53b175)[_0x32b46f(0x1d1)](()=>{const _0x400efe=_0x32b46f;_0x3d25a5[_0x400efe(0x244)][_0x400efe(0x220)]();})['catch'](_0x86318f=>{const _0x21bf34=_0x32b46f;_0x3d25a5[_0x21bf34(0x244)][_0x21bf34(0x220)]();});}}),_0x3d25a5[_0x3a3158(0x1a0)]['on'](_0x3a3158(0x1e1),'li',function(_0x2cf394){const _0xdae29d=_0x3a3158;_0x2cf394[_0xdae29d(0x1b3)]();let _0x59f569=$(this);_0xc396aa(_0x59f569,_0x2cf394)&&_0x3aaf95(_0x59f569),_0x441cfe(_0x3d25a5,_0x59f569);}),$(document)['on'](_0x3a3158(0x1e1),function(_0x5d1cce){const _0x350604=_0x3a3158;!$(_0x5d1cce[_0x350604(0x23f)])[_0x350604(0x17f)](_0x3d25a5[_0x350604(0x197)])[_0x350604(0x29b)]&&_0x3d25a5[_0x350604(0x244)]['hide']();});}});},_0x8f3d2=(_0xbd2d2a,_0x3645a6,_0x41b2b8)=>_0x5df02f(void 0x0,[_0xbd2d2a,_0x3645a6,_0x41b2b8],void 0x0,function*({endpointNode:_0xc1b30e,endpoint:_0x406468,baseUrl:_0x3c0176},_0x5bca01,_0xb90399){const _0x41f6ad=_0x1730eb,_0xbc108f=_0x3c0176+_0x41f6ad(0x1b9),_0x2bee21=_0xbc108f+_0x41f6ad(0x25b),_0x52e03f=yield fetch(_0x2bee21,{'method':_0x41f6ad(0x1fb),'body':JSON[_0x41f6ad(0x23c)]({'endpointNode':_0xc1b30e,'endpoint':_0x406468,'nodeId':_0x5bca01,'namespaceAliases':_0xb90399}),'headers':{'Content-Type':_0x41f6ad(0x22e)}});if(_0x52e03f[_0x41f6ad(0x1e4)]!==0xc8){console[_0x41f6ad(0x24d)]('fetching\x20failed\x20with\x20error',_0x52e03f[_0x41f6ad(0x1e4)],_0x52e03f['statusText']);const _0x58350e={'statusCode':_0x41f6ad(0x20c),'requestedNodeId':_0x5bca01};return _0x58350e;}console[_0x41f6ad(0x24d)](_0x41f6ad(0x194),_0x52e03f[_0x41f6ad(0x1e4)],_0x52e03f[_0x41f6ad(0x1af)]);const _0x230d88=yield _0x52e03f[_0x41f6ad(0x292)]();return _0x230d88;});function _0x3aaae3(_0x14fe35,_0x3b9ece,_0xef78c3,_0x3422e9){const _0x38c7fa=_0x1730eb,_0x249668=$('#'+_0x14fe35+_0x38c7fa(0x2ad)),_0x516b37=$('#'+_0x14fe35+_0x38c7fa(0x1f0)),_0x586436=$('#'+_0x14fe35+_0x38c7fa(0x2b8)),_0x543197=$('#'+_0x14fe35+_0x38c7fa(0x18c));let _0x49ba29=![];_0x249668[_0x38c7fa(0x220)](),_0x516b37[_0x38c7fa(0x220)](),_0x586436['hide'](),_0x3b9ece['on'](_0x38c7fa(0x1e1),()=>{const _0x5b812a=_0x38c7fa;if(_0x49ba29)return;_0x49ba29=!![],_0x586436[_0x5b812a(0x1c1)](_0x5b812a(0x220)),_0x586436[_0x5b812a(0x230)]('Testing\x20Connection\x20...'),_0x249668[_0x5b812a(0x21d)](_0x5b812a(0x220)),_0x516b37[_0x5b812a(0x21d)](_0x5b812a(0x220)),_0x543197[_0x5b812a(0x230)]('');const {body:_0x49df69,url:_0x5b9c06}=_0xef78c3();fetch(_0x5b9c06,{'method':'POST','headers':{'Content-Type':_0x5b812a(0x22e)},'body':JSON[_0x5b812a(0x23c)](_0x49df69)})[_0x5b812a(0x1d1)](_0x5e51da=>_0x5e51da[_0x5b812a(0x292)]())[_0x5b812a(0x1d1)](_0x12e1dc=>{const _0x21f60a=_0x5b812a;_0x49ba29=![],_0x586436['hide'](),console[_0x21f60a(0x24d)](JSON['stringify'](_0x12e1dc,null,'\x20'));if(_0x12e1dc[_0x21f60a(0x195)]==='ok')_0x249668[_0x21f60a(0x1c1)](_0x21f60a(0x220)),_0x516b37[_0x21f60a(0x21d)](_0x21f60a(0x220)),_0x543197[_0x21f60a(0x230)](_0x12e1dc[_0x21f60a(0x1d7)]['replace']('\x0a','<br>')),_0x3422e9(null,_0x12e1dc);else{const _0x40177e=_0x12ed8d=>!_0x12ed8d?'':_0x12ed8d[_0x21f60a(0x193)]('\x0a')['map'](_0x1ddbc0=>_0x21f60a(0x22f)+_0x1ddbc0+_0x21f60a(0x284))[_0x21f60a(0x1b5)]('\x0a'),_0x27c336=_0x46ef1a=>Array[_0x21f60a(0x1c6)](_0x46ef1a)?_0x46ef1a[_0x21f60a(0x278)](_0x40177e)[_0x21f60a(0x1b5)]('\x0a'):_0x40177e(_0x46ef1a);_0x249668['addClass'](_0x21f60a(0x220)),_0x516b37[_0x21f60a(0x1c1)]('hide'),_0x543197[_0x21f60a(0x230)](_0x27c336(_0x12e1dc[_0x21f60a(0x1d7)])+_0x27c336(_0x12e1dc[_0x21f60a(0x254)])),_0x3422e9(new Error(_0x12e1dc[_0x21f60a(0x195)]),_0x12e1dc);}})['catch'](_0x2d9f39=>{const _0x27be08=_0x5b812a;_0x49ba29=![],_0x586436['addClass']('hide'),_0x249668['addClass'](_0x27be08(0x220)),_0x516b37[_0x27be08(0x1c1)]('hide'),_0x543197['html'](_0x27be08(0x2a6)+_0x2d9f39[_0x27be08(0x1d7)]),console['log']('err',_0x2d9f39),_0x3422e9(_0x2d9f39,null);});});}const _0x5a3bd9=()=>{const _0x3a979f=_0x1730eb,_0x153346=$(_0x3a979f(0x29f)),_0x323c62=_0x153346[_0x3a979f(0x2b1)](),_0x4d722a=RED[_0x3a979f(0x287)]['node'](_0x323c62);if(!_0x4d722a)return undefined;const {endpoint:_0x25795e,securityMode:_0x24a9c3,securityPolicy:_0x7ecc76,userIdentityType:_0x4d2def,credentials:_0x11c313,namespaceAliases:_0x6b99fa}=_0x4d722a,_0x15366b={'endpoint':_0x25795e,'securityMode':_0x24a9c3,'securityPolicy':_0x7ecc76,'userIdentityType':_0x4d2def,'credentials':_0x11c313,'namespaceAliases':_0x6b99fa};return _0x15366b;},_0x58d2ce=()=>{const _0x295372=_0x1730eb,_0x3cc5bf=$(_0x295372(0x29f)),_0x1974ff=_0x3cc5bf[_0x295372(0x2b1)](),_0x60e53b=_0x5a3bd9();if(!_0x60e53b)return undefined;const _0x252e45=_0x60e53b[_0x295372(0x1fa)];return Object['assign']({'namespaceAliases':_0x252e45,'id':_0x1974ff},_0x60e53b);},_0x2df3d6=()=>{return{'endpointNode':_0x58d2ce};};RED[_0x1730eb(0x287)]['registerType'](_0x1730eb(0x25f),{'category':'opcua','color':_0x1730eb(0x210),'align':'right','icon':_0x1730eb(0x2a2),'paletteLabel':_0x1730eb(0x1c2),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':'OpcUa-Endpoint2'},'action':{'value':_0x1730eb(0x269),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x5cbbed=_0x1730eb;return this[_0x5cbbed(0x1d4)]||_0x5cbbed(0x2b3);},'labelStyle'(){const _0x4dc2b7=_0x1730eb;return this[_0x4dc2b7(0x1d4)]?_0x4dc2b7(0x1b4):'';},'oneditprepare'(){const _0x1a5c9b=_0x1730eb,_0x8d20f3=this;_0x936084(),_0x8d20f3[_0x1a5c9b(0x1ee)]=0x1;let _0x24590d={};const _0x4573bb=$('#node-input-objectId'),_0x2cd008=$('#node-input-methodId'),_0x33f385=$(_0x1a5c9b(0x29e)),_0x4f57c5=$(_0x1a5c9b(0x22c)),_0x13239a=$(_0x1a5c9b(0x252));_0x4573bb[_0x1a5c9b(0x1ed)](Object[_0x1a5c9b(0x27f)](Object[_0x1a5c9b(0x27f)]({},_0x2df3d6()),{'filter'(_0x512414){const _0x1711f0=_0x1a5c9b;return _0x512414[_0x1711f0(0x1a4)]===_0x1711f0(0x239);}})),_0x2cd008[_0x1a5c9b(0x1ed)](Object['assign'](Object[_0x1a5c9b(0x27f)]({},_0x2df3d6()),{'parentNode':function(){return _0x5df02f(this,void 0x0,void 0x0,function*(){const _0x5c0501=_0x2e1b,_0x17f3a0=_0xecec06(this);let _0x2b0f5d=_0x4573bb[_0x5c0501(0x2a4)]('reference');if(!_0x2b0f5d){const _0x3cf1f5=_0x4573bb[_0x5c0501(0x2b1)]();try{const _0x349bde=yield _0x8f3d2(_0x17f3a0,_0x3cf1f5);if(_0x349bde[_0x5c0501(0x228)]!==_0x5c0501(0x297))return null;_0x2b0f5d={'nodeId':_0x349bde[_0x5c0501(0x1fc)],'browseName':_0x349bde[_0x5c0501(0x2a0)],'nodeClass':_0x5c0501(0x239),'typeDefinition':_0x5c0501(0x238),'displayName':{'text':''}};}catch(_0x525a79){console[_0x5c0501(0x24d)](_0x525a79);}}return _0x2b0f5d;});},'filter'(_0x466241){const _0x48d1fb=_0x1a5c9b;return _0x466241[_0x48d1fb(0x1a4)]==='Method'||_0x466241[_0x48d1fb(0x1a4)]===_0x48d1fb(0x239);},'isSelectable'(_0x269af4){const _0x1a189a=_0x1a5c9b;return _0x269af4[_0x1a189a(0x1a4)]===_0x1a189a(0x26f);}})),_0x4573bb['on'](_0x1a5c9b(0x223),()=>{const _0x575e53=_0x1a5c9b;_0x2cd008[_0x575e53(0x1ed)](_0x575e53(0x2ae));});function _0x317986(_0x13f394,_0x40490f,_0x3d9efc){const _0x299aa3=_0x1a5c9b,_0x55d0c3=$('<div\x20class=\x22argument-entry\x22>')[_0x299aa3(0x1df)](_0x13f394);$(_0x299aa3(0x24f))[_0x299aa3(0x2b1)](_0x3d9efc[_0x299aa3(0x1d4)]||'')[_0x299aa3(0x198)]({'width':'100%'})['appendTo'](_0x55d0c3);const _0x32577b=_0x24590d[_0x3d9efc[_0x299aa3(0x1cf)][_0x299aa3(0x1e8)]()],_0x232846=(_0x32577b?_0x32577b['browseName'][_0x299aa3(0x1d4)]||'':_0x3d9efc[_0x299aa3(0x1cf)][_0x299aa3(0x1e8)]())+(_0x3d9efc[_0x299aa3(0x25d)]===0x1?'[]':'');$('<input\x20type=\x22text\x22>')[_0x299aa3(0x2b1)](_0x3d9efc[_0x299aa3(0x1a3)]['text']||'')['css']({'width':_0x299aa3(0x17d)})[_0x299aa3(0x1df)](_0x55d0c3),$('<input\x20type=\x22text\x22>')[_0x299aa3(0x2b1)](_0x232846||'')['css']({'width':'50%'})[_0x299aa3(0x1df)](_0x55d0c3);}_0x33f385[_0x1a5c9b(0x241)]({'addButton':![],'height':_0x1a5c9b(0x189),'scrollOnAdd':![],'addItem'(_0x194ecb,_0x3125dd,_0x2f1458){_0x317986(_0x194ecb,_0x3125dd,_0x2f1458);}}),_0x4f57c5['editableList']({'addButton':![],'height':_0x1a5c9b(0x189),'scrollOnAdd':![],'addItem'(_0x393de3,_0x15af59,_0x44512d){_0x317986(_0x393de3,_0x15af59,_0x44512d);}});function _0x505258(_0x32aa20,_0x41445d){const _0x41f9c9=_0x1a5c9b;console['log'](_0x41f9c9(0x27b),_0x41445d[_0x41f9c9(0x29b)],_0x41f9c9(0x267),_0x41445d),_0x32aa20[_0x41f9c9(0x241)](_0x41f9c9(0x1ea));for(let _0x6489fd=0x0;_0x6489fd<_0x41445d[_0x41f9c9(0x29b)];_0x6489fd++){_0x32aa20[_0x41f9c9(0x241)](_0x41f9c9(0x296),_0x41445d[_0x6489fd]);}}_0x33f385[_0x1a5c9b(0x220)](),_0x4f57c5['hide']();let _0xbe7ffa={};const _0x1e1acc=$(_0x1a5c9b(0x2ba));_0x1e1acc[_0x1a5c9b(0x220)](),_0x1e1acc['on'](_0x1a5c9b(0x1e1),()=>{const _0x436951=_0x1a5c9b;navigator[_0x436951(0x258)][_0x436951(0x293)](JSON['stringify'](_0xbe7ffa));}),_0x3aaae3(_0x1a5c9b(0x247),_0x13239a,()=>({'url':_0x1a5c9b(0x19b),'body':{'endpointNode':_0x58d2ce(),'objectId':_0x4573bb[_0x1a5c9b(0x2b1)](),'methodId':_0x2cd008[_0x1a5c9b(0x2b1)]()}}),(_0x582356,_0x3ef263)=>{const _0x50b1f4=_0x1a5c9b;if(_0x582356)return;const _0x29dba9=_0x3ef263[_0x50b1f4(0x225)];_0x24590d=_0x3ef263[_0x50b1f4(0x2ab)],_0x33f385[_0x50b1f4(0x17e)](),_0x4f57c5['show'](),_0x505258(_0x33f385,_0x29dba9[_0x50b1f4(0x185)]),_0x505258(_0x4f57c5,_0x29dba9[_0x50b1f4(0x1c7)]),_0xbe7ffa=_0x3ef263['inputArgumentsExampleAsJson']||{},_0x1e1acc[_0x50b1f4(0x17e)](),navigator[_0x50b1f4(0x258)][_0x50b1f4(0x293)](JSON[_0x50b1f4(0x23c)](_0xbe7ffa)),console[_0x50b1f4(0x24d)](_0x50b1f4(0x237),JSON[_0x50b1f4(0x23c)](_0xbe7ffa)),console['log']('data',_0x3ef263);});},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1ZGYwMmYiLCJfMHg0MGEwYWQiLCJfMHgzZTljYTciLCJfMHg0Y2M1MDkiLCJfMHg0NzhkMWUiLCJfMHg0NGVlN2YiLCJfMHg1ZDg1MzgiLCJfMHgxZDJjNDUiLCJQcm9taXNlIiwiXzB4Njc1MDVkIiwiXzB4NTUwNTAzIiwiXzB4OTU5OTI2IiwiXzB4MWY4NWQ4IiwiXzB4NTM3NDRiIiwiXzB4Mjc3ZjBkIiwiXzB4M2U4NGE2IiwiXzB4MjhlYzVjIiwiXzB4MzMyOTFhIiwiXzB4NTUwYzdhIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NTUwYzc0IiwiXzB4MmQzOWI3IiwiXzB4MjIwMGJjIiwiXzB4NWVjNjYwIiwiRXJyb3IiLCJfMHgyYjg1YjQiLCJfMHgyOTc5MDIiLCJfMHg1YTVmZTkiLCJfMHg1YzE5YzEiLCJfMHg1OTA0MDUiLCJfMHg0YmJlZjkiLCJfMHg1NzVkOGEiLCJfMHg0MTcyMDMiLCJfMHg1YWQ2ODEiLCJfMHgzM2M2YWYiLCJfMHgzYzBiZTYiLCJfMHgxYzc4MmEiLCJfMHgzZTQ1ZTEiLCJfMHgyOTkyY2QiLCJfMHgzNGNiMGUiLCJfMHgzNDMwYmEiLCJfMHgzMmZmYzciLCJfMHg0MDBlYWMiLCJfMHgyMjY1OGIiLCJfMHg1Y2IyZTQiLCJfMHg1MTEyN2IiLCJfMHg1N2MzODUiLCJfMHgyNjQzMmMiLCJlbmRwb2ludE5vZGUiLCJfMHgzYzZmNGEiLCJlbmRwb2ludCIsIl8weDUxYzg3NiIsImJhc2VVcmwiLCJfMHgzMDBjMTIiLCJfMHgxYTFmMWIiLCJfMHhiMDAxZiIsIl8weDMyMDdiYSIsIl8weDQ1MWVmOSIsIl8weDFkYjdhOCIsIk9iamVjdCIsIl8weDE3N2ZkYSIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgzYmU4ZmUiLCJfMHhjMzliNTYiLCJfMHgxN2I3ODYiLCJfMHg1OTBiNmQiLCJfMHg1ZDVmNWUiLCJfMHg0ZGRhMzAiLCJfMHgxMmY5NTAiLCJfMHg0MWUyY2UiLCJfMHgyZGU0YWUiLCJfMHg1ZThhZmEiLCJub2RlSWQiLCJfMHg0MjVjMjUiLCJyb290Tm9kZUlkIiwiXzB4NTE5NGQzIiwiaXNUeXBlIiwiXzB4NWMzMzI3IiwiXzB4M2YwNWU0IiwiXzB4Y2ZjNmUyIiwiXzB4NGNhNDA0IiwiXzB4MzczOWY0IiwiXzB4NGM2NWEyIiwiXzB4MjYxMmFlIiwiXzB4M2VkYjk2IiwiXzB4NTVlM2ViIiwiXzB4M2U0NDI2IiwiXzB4NGRkNGVkIiwiXzB4MjQyMzE3IiwiXzB4MTNhZmMwIiwiXzB4MmYyYmMzIiwiXzB4MTM2ODVjIiwiXzB4MTI3ZDJlIiwiXzB4MjU1Y2JlIiwiXzB4NDEwMGIzIiwiXzB4NTE1MWNiIiwiXzB4YTRkMWM5IiwiXzB4MmFlZWYxIiwiXzB4M2ZlYzQ2IiwiXzB4MjUyMmYyIiwiXzB4MmVmMzg4IiwiXzB4MTdlMmNlIiwiXzB4MmNkNDdhIiwiXzB4NDE3MzUzIiwiXzB4MTY3ODg5IiwiXzB4MjcxMmVmIiwiXzB4MjNiYjY1IiwiXzB4MWQ0MWU3IiwiXzB4MmZkNGZhIiwiUkVEIiwiXzB4MmZlYjFlIiwiXzB4MjZkMzA1IiwiXzB4NDcyM2U0IiwiXzB4MjdlMWViIiwiXzB4MTJiZWI1IiwiXzB4MWNlZTMxIiwiXzB4NWI4YjE4IiwiXzB4MWZjYTI4IiwiXzB4MjI5MmE3IiwiXzB4NTMwNDQ4IiwiXzB4NWNiOTM2IiwiXzB4MTIwMjI0IiwiXzB4NTI2YzM1IiwiXzB4NDgwZDRlIiwiXzB4NWEyMWM0IiwianNvbiIsIl8weDJjMzcyNyIsImRhdGEiLCJfMHgxNGU5MDQiLCJfMHg5ZGIxMWUiLCJfMHg1MWMxMDIiLCJfMHg1MWZkNmYiLCJzZXRUaW1lb3V0IiwiXzB4M2UwOTM5IiwiXzB4MTlkNzQ3IiwiXzB4ZjU2M2UxIiwiXzB4MzNmOGVkIiwiXzB4NTBiZDdkIiwiXzB4MjVlNTM0IiwiXzB4MjRkMGViIiwiXzB4YTliYjEiLCJfMHg5Nzc3MTgiLCJfMHgxMmY5NmMiLCJfMHgzZDVjNmIiLCJfMHg0MjI3YmMiLCJfMHgxZDE4ZTEiLCJfMHg1YzA3NGMiLCJfMHgzMGI2OTAiLCJfMHgyOWI3ZTIiLCJfMHgzMGI1NTAiLCJfMHhiZGI3NmYiLCJfMHg0MDlmZWYiLCJfMHg0OGRlZWQiLCJfMHgxZmExOTUiLCIkIiwiXzB4MjBjZmYzIiwiXzB4YjljMGZhIiwiaWNvbiIsIl8weDQ1NjQwNCIsImNvbG9yIiwiXzB4MTdlMDk3IiwiXzB4Mjc2NjQxIiwiXzB4MTRiMjJkIiwiXzB4MmM4M2E5IiwiXzB4MWVlNzNkIiwiXzB4ZmU1MDg1IiwiXzB4NDQxY2ZlIiwiXzB4MTYxMTU4IiwiXzB4NGQ2ZWFhIiwiXzB4YzdkMzU0IiwiXzB4NTliYzc4IiwiXzB4NThjZmZlIiwiXzB4M2NlNDMwIiwiXzB4MmNhOTAwIiwiXzB4MmUyNzMxIiwiXzB4NTkyOWMyIiwiXzB4NTVmOTZjIiwiXzB4MTZmZWJhIiwiXzB4NWNiMTlhIiwiXzB4MjcyZDczIiwiXzB4M2Q5YjE3IiwiXzB4NDFlOTRiIiwiXzB4NjlhODhjIiwidW5kZWZpbmVkIiwiXzB4MzNkMzBiIiwiXzB4MWQzNzAxIiwiXzB4MmQwZWI2IiwiXzB4MTllODY5IiwiXzB4NGMxZmU3IiwiXzB4M2YyZTYxIiwiXzB4Mzc5MmM3IiwiXzB4ZWNlYzA2IiwiXzB4NGM4M2JmIiwiXzB4ODQ4ZGUxIiwiXzB4NTc4Yjg0IiwiXzB4MjFlYzgzIiwiXzB4NDUwMjExIiwiXzB4NTY4ODllIiwicmVmZXJlbmNlcyIsIl8weDQxZGNjMyIsIl8weDMzMmM4MiIsIl8weDU2ZWI3ZSIsIl8weDMzNDNiOCIsIl8weDI3M2U2YiIsIl8weDUyNjdlYSIsIl8weDNjY2NiOCIsIl8weDFmMmFlYiIsIl8weDRlNGY3ZCIsIl8weDJkODhiNSIsIl8weDUwNGU2OCIsIl8weDM3ODcxOCIsIl8weDQ0NWRlMiIsIl8weDFkOWZjNyIsIl8weDQyYjczOSIsIl8weDRiOGNlYSIsIl8weDkzNjA4NCIsIl8weDE4NjkyYiIsIl8weDJlN2FlMCIsIl8weDE1ZWQ1MSIsIl8weDQyZjQ2MCIsIl8weDM1OGEwNSIsIl8weDRmYzE0OCIsIl8weDQ1Y2ExNCIsIl8weDU3MzY3MyIsIl8weDFhNWRhNiIsIl8weDQ1ZjQ0YyIsIl8weDY2MmJiNiIsIl8weDFhNGZkYSIsIl8weGE3OGE0NCIsImRvY3VtZW50IiwiXzB4MmNiYTYwIiwiXzB4NDJjMjhlIiwiXzB4YTg2NzZhIiwiXzB4MjBiZDFkIiwiXzB4NDgxYjljIiwiXzB4MzEwNjRkIiwiXzB4NTRlNmMyIiwiXzB4NGU1MjNiIiwiXzB4MzBkODZjIiwiXzB4Y2JhZDYzIiwiXzB4MjIwMjY2IiwiXzB4MmZkM2FjIiwiXzB4Mjc2NGUzIiwiXzB4NGEzYTI3IiwiXzB4ZGRmNGMiLCJfMHg1M2Y0ZmMiLCJfMHhjOGY3ODYiLCJfMHgzYWE5NWQiLCJfMHg3NTQzMmQiLCJ3aW5kb3ciLCJfMHhmYzM1NWYiLCJfMHg0ODQ3ZGMiLCJfMHgxZjRiN2UiLCJfMHg4YmE1OTQiLCJfMHg0MWQ5MGEiLCJfMHg0MjAwMDgiLCJfMHg0OTU4OGIiLCJfMHgyYzY2ZmUiLCJfMHg1ZDM4Y2YiLCJfMHg1ODljMTAiLCJfMHgzZWRjZWUiLCJfMHgyNThiZmMiLCJfMHg1ODlmN2MiLCJfMHgxYWNkNzYiLCJfMHgxYjQyMTciLCJfMHhjY2Y5NWUiLCJfMHgxN2Y2ZGUiLCJfMHgzYTU3ZWYiLCJfMHg1ZjAzZmQiLCJfMHgzZDI1YTUiLCJfMHgzYmRlNjUiLCJfMHgyMTAxZjUiLCJfMHg4MDJiOTkiLCJfMHg4OGRiYzEiLCJfMHgzZTgzMDQiLCJfMHg1MDgwNzUiLCJfMHg1ZmY5YmUiLCJfMHgxNGZlY2EiLCJfMHgxMDJhNjMiLCJfMHg4NzRhNGEiLCJfMHgyZWRmZTkiLCJfMHg1MmU3MDAiLCJfMHgyMmUzYjkiLCJfMHgyZmQxODciLCJfMHhjMzk2YWEiLCJfMHgzMDU2N2MiLCJfMHgyOTk4YzIiLCJfMHg0OTE3ZmUiLCJfMHg0NDI4ZGMiLCJfMHgxY2RiMWMiLCJfMHgzNTAwMjIiLCJfMHgzYWFmOTUiLCJfMHgzY2Q2MDgiLCJfMHg0Yjc0ZTgiLCJfMHgxYTg2YjYiLCJfMHhmNTYyMjciLCJfMHgyYTc5OGYiLCJfMHg1M2IxNzUiLCJfMHg2ODkxZjQiLCJfMHg0YmI1NTciLCJfMHg4NjMxOGYiLCJfMHgyY2YzOTQiLCJfMHg1OWY1NjkiLCJfMHg1ZDFjY2UiLCJfMHg4ZjNkMiIsIl8weGJkMmQyYSIsIl8weDM2NDVhNiIsIl8weDQxYjJiOCIsIl8weGMxYjMwZSIsIl8weDQwNjQ2OCIsIl8weDNjMDE3NiIsIl8weDViY2EwMSIsIl8weGI5MDM5OSIsIl8weGJjMTA4ZiIsIl8weDJiZWUyMSIsIl8weDUyZTAzZiIsIl8weDU4MzUwZSIsIl8weDIzMGQ4OCIsIl8weDNhYWFlMyIsIl8weDE0ZmUzNSIsIl8weDNiOWVjZSIsIl8weGVmNzhjMyIsIl8weDM0MjJlOSIsIl8weDI0OTY2OCIsIl8weDUxNmIzNyIsIl8weDU4NjQzNiIsIl8weDU0MzE5NyIsIl8weDQ5YmEyOSIsImJvZHkiLCJfMHg0OWRmNjkiLCJ1cmwiLCJfMHg1YjljMDYiLCJfMHg1ZTUxZGEiLCJfMHgxMmUxZGMiLCJfMHg0MDE3N2UiLCJfMHgxMmVkOGQiLCJfMHgxZGRiYzAiLCJfMHgyN2MzMzYiLCJfMHg0NmVmMWEiLCJBcnJheSIsIl8weDJkOWYzOSIsIl8weDVhM2JkOSIsIl8weDE1MzM0NiIsIl8weDMyM2M2MiIsIl8weDRkNzIyYSIsIl8weDI1Nzk1ZSIsInNlY3VyaXR5TW9kZSIsIl8weDI0YTljMyIsInNlY3VyaXR5UG9saWN5IiwiXzB4N2VjYzc2IiwidXNlcklkZW50aXR5VHlwZSIsIl8weDRkMmRlZiIsImNyZWRlbnRpYWxzIiwiXzB4MTFjMzEzIiwibmFtZXNwYWNlQWxpYXNlcyIsIl8weDZiOTlmYSIsIl8weDE1MzY2YiIsIl8weDU4ZDJjZSIsIl8weDNjYzViZiIsIl8weDE5NzRmZiIsIl8weDYwZTUzYiIsIl8weDI1MmU0NSIsIl8weDJkZjNkNiIsIl8weDhkMjBmMyIsIl8weDI0NTkwZCIsIl8weDQ1NzNiYiIsIl8weDJjZDAwOCIsIl8weDMzZjM4NSIsIl8weDRmNTdjNSIsIl8weDEzMjM5YSIsIl8weDUxMjQxNCIsIl8weDE3ZjNhMCIsIl8weDJiMGY1ZCIsIl8weDNjZjFmNSIsIl8weDM0OWJkZSIsIl8weDUyNWE3OSIsIl8weDQ2NjI0MSIsIl8weDI2OWFmNCIsIl8weDMxNzk4NiIsIl8weDEzZjM5NCIsIl8weDQwNDkwZiIsIl8weDNkOWVmYyIsIl8weDU1ZDBjMyIsIl8weDMyNTc3YiIsIl8weDIzMjg0NiIsIl8weDE5NGVjYiIsIl8weDMxMjVkZCIsIl8weDJmMTQ1OCIsIl8weDM5M2RlMyIsIl8weDE1YWY1OSIsIl8weDQ0NTEyZCIsIl8weDUwNTI1OCIsIl8weDMyYWEyMCIsIl8weDQxNDQ1ZCIsIl8weDY0ODlmZCIsIl8weGJlN2ZmYSIsIl8weDFlMWFjYyIsIm5hdmlnYXRvciIsIl8weDU4MjM1NiIsIl8weDNlZjI2MyIsIl8weDI5ZGJhOSJdLCJtYXBwaW5ncyI6ImlzTEFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixDLENBQXFCQSxTQUFBLENBQVFELFNBQVIsQyxFQUEzQixDLFNBQ3JELEdBQUssQ0FBQUgsU0FBQSxFQUFNLENBQUFBLFNBQUEsQ0FBSUssT0FBSixDQUFOLENBQUwsQ0FBeUIsU0FBVUMsU0FBVixDQUFtQkMsU0FBbkIsQyx5QkFDNUIsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsQyx5QkFBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxnQkFBQSxFQUFjVCxTQUFBLENBQVFTLFNBQUEsQyxnQkFBQSxDQUFSLENBQWQsQ0FBc0NiLFNBQUEsQ0FBTWEsU0FBQSxDLGdCQUFBLENBQU4sRSxnQkFBQSxFQUF5QlAsU0FBekIsQ0FBb0NJLFNBQXBDLEMsRUFDOURGLFNBQUEsQ0FBTSxDQUFBVCxTQUFBLENBQVlBLFNBQUEsQyxnQkFBQSxFQUFnQkgsU0FBaEIsQ0FBeUJDLFNBQUEsRUFBYyxFQUF2QyxDQUFaLENBQUQsQyxNQUFBLEdBQUwsQyxFQUpHLEMsRUFRWCxPQUFPaUIsZUFBUCxHLFVBQUEsQ0FBd0NBLGVBQXhDLENBQTBELFNBQVVDLFNBQVYsQ0FBaUJDLFNBQWpCLENBQTZCQyxTQUE3QixDLHlCQUN0RCxJQUFJQyxTQUFBLENBQUksSUFBSUMsS0FBSixDQUFVRixTQUFWLENBQVIsQyxPQUNPQyxTQUFBLEMsTUFBQSxFLGdCQUFBLENBQTRCQSxTQUFBLEMsZ0JBQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFNBQUEsQyxnQkFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxnQkFBTixDQUNNQyxTQUFBLEMsZ0JBRE4sQ0FFTUMsU0FBQSxDLGdCQUZOLENBR01DLFNBQUEsQyxXQUhOLENBSU1DLFNBQUEsQyxnQkFKTixDQUtNQyxTQUFBLEMsZ0JBTE4sQ0FNTUMsU0FBQSxDLFdBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsaUJBQ0FBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxTQUFBLEUsR0FBaEIsRSxpQkFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLGdCQUFBLEUsR0FBaEIsRSxPQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGtCQUpKLENBS0dELFNBQUEsRUFBb0IsQ0FBQUEsU0FBQSxDQUFrQixFQUFsQixDQUx2QixHQU1BLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsY0FDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsU0FDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLEdBQVYsRSxXQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLEdBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsWUFBQSxFLEdBQVYsRSxhQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxrQkFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsU0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsWUFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsY0FBQSxFLElBQWQsRSxlQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsV0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxXQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsYUFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsYUFBQSxFLElBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxJQUFYLEUsa0JBTkosQ0FPR0QsU0FBQSxFQUFlLENBQUFBLFNBQUEsQ0FBYSxFQUFiLENBUGxCLEdBU0EsU0FBU0UsU0FBVCxDQUF1QkMsU0FBdkIsQywyQkFDSSxPQUFRQSxTQUFSLEVBQ0ksSyxnQkFBQSxDQUNJLE9BQU9oQixTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9HLFNBQVAsQ0FDSixLLGdCQUFBLENBQ0ksT0FBT0QsU0FBUCxDQUNKLEssZ0JBQUEsQ0FDSSxPQUFPRSxTQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9DLFNBQVAsQ0FDSixJLG1CQUFBLENBQ0ksT0FBT0MsU0FBUCxDQVpSLEMsQ0FnQkosTUFBTVcsU0FBQSxDQUFXQyxTQUFELEUsMkJBQ1osT0FBUUEsU0FBQSxDLGdCQUFBLENBQVIsRUFDSSxLLGdCQUFBLEMsR0FDUUEsU0FBQSxDLGdCQUFBLElBQThCbEIsUyxLQUM5QmtCLFNBQUEsQyxnQkFBQSxJQUE2QmpCLFNBQTdCLEVBQTJDaUIsU0FBQSxDLGdCQUFBLEksdUJBQ3BDLEMsTUFBRSxDLGdCQUFGLEMsT0FBcUIsQyxnQkFBckIsQyxDQUVYLE1BQU8sQyxNQUFFLEMsZ0JBQUYsQyxPQUEyQixDLGdCQUEzQixDQUFQLENBQ0osSyxnQkFBQSxDLEdBQ1FBLFNBQUEsQyxpQkFBQSxJQUE4QmhCLFMsT0FDdkIsQyxNQUFFLEMsYUFBRixDLE9BQXVCLEMsZ0JBQXZCLEMsYUFFRmdCLFNBQUEsQyxnQkFBQSxJQUE4QmYsUyxDQUM1QixDLE1BQUUsQyxhQUFGLEMsT0FBdUIsQyxZQUF2QixDLENBR0EsQyxNQUFFLEMsZ0JBQUYsQyxPQUF1QixDLFdBQXZCLEMsQ0FFZixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQWtCLEMsZ0JBQWxCLENBQVAsQ0FDSixLLGdCQUFBLENBQ0ksTUFBTyxDLE1BQUUsQyxnQkFBRixDLE9BQTJCLEMsWUFBM0IsQ0FBUCxDQUNKLEksY0FBQSxDQUNJLE1BQU8sQyxNQUFFLEMsWUFBRixDLE9BQXNCLEMsZ0JBQXRCLENBQVAsQ0FDSixJLFVBQUEsQ0FDSSxNQUFPLEMsTUFBRSxDLGVBQUYsQyxPQUF5QixDLGdCQUF6QixDQUFQLENBeEJSLEMsTUEwQk8sQyxNQUFFLEMsZ0JBQUYsQyxPQUF1QixDLGdCQUF2QixDLEVBM0JYLENBOEJNZ0IsU0FBQSxDQUFTLENBQUNDLFNBQUQsQ0FBS0MsU0FBTCxDQUFlQyxTQUFmLEdBQThCL0MsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDNkMsU0FBRCxDQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBbEIsQ0FBOEMsSyxHQUE5QyxDQUFzRCxVQUFXLENBQUVDLFlBQUEsQ0FBQUMsU0FBRixDQUFnQkMsUUFBQSxDQUFBQyxTQUFoQixDQUEwQkMsT0FBQSxDQUFBQyxTQUExQixDQUFYLENBQWdEQyxTQUFoRCxDQUF3REMsUUFBeEQsQywyQkFDekZDLFNBQUEsQ0FBVUgsUyx1QkFDVkksU0FBQSxDQUFTRCxTLFdBQ1RFLFNBQUEsQ0FBb0JDLE1BQUEsQyxnQkFBQSxFQUFjQSxNQUFBLEMsUUFBQSxFQUFjLEVBQWQsQ0FBa0JKLFFBQWxCLENBQWQsQ0FBMkMsQyxRQUFFLENBQUFELFNBQUYsQyxZQUFVLEMsSUFBVixDQUEzQyxDLENBQ3BCTSxTQUFBLENBQU8sTUFBTUMsS0FBQSxDQUFNSixTQUFOLENBQVcsQyxRQUMxQixDLE1BRDBCLEMsTUFFMUIsQ0FBTUssSUFBQSxDLFdBQUEsRUFBZSxDLGNBQ2pCLENBQUFiLFNBRGlCLEMsVUFFakIsQ0FBQUUsU0FGaUIsQyxtQkFHakIsQ0FBQU8sU0FIaUIsQ0FBZixDQUZvQixDLFNBTzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FQaUIsQ0FBWCxDLElBU2ZFLFNBQUEsQyxnQkFBQSxJLFlBQ0FHLE9BQUEsQyxnQkFBQSxFLHFDQUFBLENBQTBDSCxTQUFBLEMsZ0JBQUEsQ0FBMUMsQ0FBdURBLFNBQUEsQyxnQkFBQSxDQUF2RCxDLENBQ08sQyxZQUFFLENBQVksRUFBZCxDLENBR1gsTUFBTUksU0FBQSxDQUFXLE1BQU1KLFNBQUEsQyxnQkFBQSxHQUF2QixDQUNNSyxTQUFBLENBQWFELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQW9DLEVBRHZELEMsTUFFTyxDLFlBQUUsQ0FBQUMsU0FBRixDLEVBcEJrQyxDQTlCN0MsQ0FxRE1DLFNBQUEsQ0FBWSxDLGlCQUNkLENBQWlCMUIsU0FBQSxDLGdCQUFBLENBREgsQyxpQkFFZCxDLElBRmMsQyxpQkFHZCxDQUFpQlIsU0FBQSxDLFNBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLFVBQUEsRUFBcUJBLFNBQUEsQyxnQkFBQSxDQUFyQixDQUF3Q0EsU0FBQSxDLGdCQUFBLENBSnpDLEMsWUFVZCxDLElBVmMsQ0FyRGxCLENBaUVNaUMsU0FBQSxDQUFZLEMsaUJBQ2QsQ0FBaUIzQixTQUFBLEMsZ0JBQUEsQ0FESCxDLGlCQUVkLEMsSUFGYyxDLGlCQUdkLENBQWlCUixTQUFBLEMsZ0JBQUEsQ0FISCxDLGVBSWQsQ0FBZUUsU0FBQSxDLGdCQUFBLEVBQXFCQSxTQUFBLEMsZ0JBQUEsQ0FBckIsQ0FBd0NBLFNBQUEsQyxRQUFBLENBSnpDLEMsWUFVZCxDLElBVmMsQ0FqRWxCLENBNkVNa0MsU0FBQSxDQUFlLENBQUNDLFNBQUQsQ0FBS0MsU0FBTCxHQUFZdEUsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDcUUsU0FBRCxDQUFLQyxTQUFMLENBQWxCLENBQTRCLEssR0FBNUIsQ0FBb0MsVUFBVyxDQUFFdEIsWUFBQSxDQUFBdUIsU0FBRixDQUFnQnJCLFFBQUEsQ0FBQXNCLFNBQWhCLENBQTBCcEIsT0FBQSxDQUFBcUIsU0FBMUIsQ0FBWCxDQUFnRCxDQUFFQyxNQUFBLENBQUFDLFNBQUYsQ0FBVUMsVUFBQSxDQUFBQyxTQUFWLENBQXNCQyxNQUFBLENBQUFDLFNBQXRCLENBQWhELEMsMkJBQzNEQyxTQUFBLENBQVVQLFMsa0JBQ1ZRLFNBQUEsQ0FBU0QsUyxrQkFDVEUsU0FBQSxDQUFPLE1BQU1yQixLQUFBLENBQU1vQixTQUFOLENBQVcsQyxRQUMxQixDLGdCQUQwQixDLE1BRTFCLENBQU1uQixJQUFBLEMsZ0JBQUEsRUFBZSxDLGNBQ2pCLENBQUFTLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRyxTQUhpQixDLFlBSWpCLENBQUFFLFNBSmlCLEMsUUFLakIsQ0FBQUUsU0FMaUIsQ0FBZixDQUZvQixDLFNBUzFCLENBQVMsQyxjQUFFLEMsZ0JBQUYsQ0FUaUIsQ0FBWCxDLElBV2ZHLFNBQUEsQyxRQUFBLEksWUFDTyxJLENBRVgsTUFBTUMsU0FBQSxDQUFRLE1BQU1ELFNBQUEsQyxNQUFBLEdBQXBCLEMsT0FDT0MsU0FBQSxDLGdCQUFBLEMsRUFsQnNCLENBN0VqQyxDQWlHTUMsU0FBQSxDQUFlLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHLDhCQUNiRCxTQUFBLEMsWUFBQSxJLHdCQUNPQSxTQUFBLEMsZ0JBQUEsQyxDQUVYLE9BQVFDLFNBQVIsRUFDSSxJLFlBQUEsQ0FDSSxPQUFPRCxTQUFBLEMsWUFBQSxDQUFQLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9BLFNBQUEsQyxnQkFBQSxHQUFtQkEsU0FBQSxDLGdCQUFBLENBQTFCLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9BLFNBQUEsQyxnQkFBQSxHQUF1QkEsU0FBQSxDLGdCQUFBLENBQTlCLENBQ0osSyxnQkFBQSxDQUNJLE9BQU9BLFNBQUEsQyxZQUFBLENBQVAsQ0FDSixRQUNBLEssZ0JBQUEsQ0FDSSxPQUFPQSxTQUFBLEMsUUFBQSxDQUFQLENBWFIsQyxDQXJHSixDQW1ITUUsU0FBQSxDQUFlQyxTQUFELEUsOEJBQ1pBLFNBQUEsQyxnQkFBQSxJLCtCQUNzQkEsU0FBQSxDLFlBQUEsQyxNQUd0QixJQUFJQyxTQUFBLENBQU0sRUFBVixDLE9BQ0FBLFNBQUEsQyxNQUFBLEUsaUJBQW9CRCxTQUFBLEMsZ0JBQUEsQ0FBcEIsQyxDQUNBQyxTQUFBLEMsTUFBQSxFLGlCQUF5QkQsU0FBQSxDLFlBQUEsQ0FBekIsQyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxxQkFBd0J2RCxTQUFBLENBQVVzRCxTQUFBLEMsZ0JBQUEsQ0FBVixDQUF4QixDLENBQ0lBLFNBQUEsQyxnQkFBQSxDLEVBQ0FDLFNBQUEsQyxNQUFBLEUsaUJBQXdCRCxTQUFBLEMsZ0JBQUEsQ0FBeEIsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsQyxFQUNBQyxTQUFBLEMsZ0JBQUEsRSx5QkFBNEJELFNBQUEsQyxnQkFBQSxDQUE1QixDLENBRUFBLFNBQUEsQyxnQkFBQSxDLEVBQ0FDLFNBQUEsQyxNQUFBLEUsaUJBQWdDRCxTQUFBLEMsZ0JBQUEsQ0FBaEMsQyxDQUVHQyxTQUFBLEMsTUFBQSxFLE1BQUEsQyxHQXJJZixDQXdJQSxTQUFTQyxTQUFULENBQXVCQyxTQUF2QixDLDhCQUNRQSxTQUFBLEMsT0FBQSxFQUFxQixPQUFyQixDLDRCQUdBQSxTQUFBLEMsZ0JBQUEsRUFBcUIsc0JBQXJCLEMsbUJBR0FBLFNBQUEsQyxPQUFBLEVBQXFCLE9BQXJCLEMsNEJBR0FBLFNBQUEsQyxnQkFBQSxFQUFxQixpQkFBckIsQyx1QkFHQUEsU0FBQSxDLGdCQUFBLEVBQXFCLGFBQXJCLEMscUJBSVIsU0FBU0MsU0FBVCxDQUFnQ0MsU0FBaEMsQywyQkFDVUMsU0FBQSxDQUFPSixTQUFBLENBQWNHLFNBQWQsQyxDQUNiLE9BQVFDLFNBQVIsRUFDSSxJLFFBQUEsQ0FDSSxNLEdBQUEsQ0FDSixJLGVBQUEsQ0FDSSxNLElBQUEsQ0FDSixJLFdBQUEsQ0FDSSxNLEtBQUEsQ0FDSixLLGdCQUFBLENBQ0ksTSxHQUFBLENBQ0osSyxnQkFBQSxDQUNJLE0sSUFBQSxDQUNKLFFBQ0ksTSxHQUFBLENBWlIsQyxDQWVKLFNBQVNDLFNBQVQsQ0FBZ0JDLFNBQWhCLEMsMkJBQ0ksSUFBSUMsU0FBSixDQUNBLE9BQVFELFNBQVIsRUFDSSxJLEdBQUEsQ0FDSUMsU0FBQSxDLGdCQUFBLENBQ0EsTUFDSixJLElBQUEsQ0FDSUEsU0FBQSxDLGdCQUFBLENBQ0EsTUFDSixLLGdCQUFBLENBQ0lBLFNBQUEsQyxnQkFBQSxDQUNBLE1BQ0osSSxHQUFBLENBQ0lBLFNBQUEsQyxZQUFBLENBQ0EsTUFDSixJLElBQUEsQ0FDSUEsU0FBQSxDLGdCQUFBLENBQ0EsTUFmUixDLE9BaUJPQSxTLEVBRVgsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQywyQkFDSSxPQUFRQSxTQUFSLEVBQ0ksSyxnQkFBQSxDQUNJLE0sR0FBQSxDQUNKLEssZ0JBQUEsQ0FDSSxNLElBQUEsQ0FDSixLLGdCQUFBLENBQ0ksTSxLQUFBLENBQ0osSSxZQUFBLENBQ0ksTSxHQUFBLENBQ0osSSxtQkFBQSxDQUNJLE0sSUFBQSxDQUNKLFFBQ0ksTSxHQUFBLENBWlIsQyxDQWVKLE1BQU1DLFNBQUEsQ0FBbUIsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLEdBQWtCdEcsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDcUcsU0FBRCxDQUFLQyxTQUFMLENBQWxCLENBQWtDLEssR0FBbEMsQ0FBMEMsVUFBVyxDQUFFdEQsWUFBQSxDQUFBdUQsU0FBRixDQUFnQnJELFFBQUEsQ0FBQXNELFNBQWhCLENBQTBCcEQsT0FBQSxDQUFBcUQsU0FBMUIsQ0FBWCxDQUFnREMsU0FBaEQsQywyQkFDM0VDLFNBQUEsQ0FBVUYsUyxrQkFDVkcsU0FBQSxDQUFTRCxTLGdCQUNURSxTQUFBLENBQU1OLFNBQUEsQyxJQUFBLEMsQ0FDTk8sU0FBQSxDQUFJQyxHQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFlRixTQUFmLEMsQ0FDVjlDLE9BQUEsQyxnQkFBQSxFQUFZK0MsU0FBQSxDLGdCQUFBLENBQVosQyxDQUNBQSxTQUFBLEMsZ0JBQUEsQ0FEQSxDQUVBLE1BQU1FLFNBQUEsQ0FBbUJULFNBQUEsQyxnQkFBQSxDQUF6QixDQUNNVSxTQUFBLENBQU8sTUFBTXBELEtBQUEsQ0FBTStDLFNBQU4sQ0FBVyxDLFFBQzFCLEMsZ0JBRDBCLEMsTUFFMUIsQ0FBTTlDLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQXlDLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRSxTQUhpQixDLGtCQUlqQixDQUFBTSxTQUppQixDQUFmLENBRm9CLEMsU0FRMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVJpQixDQUFYLENBRG5CLENBV01FLFNBQUEsQ0FBUSxNQUFNRCxTQUFBLEMsTUFBQSxHQVhwQixDLE1BWU8sQyxNQUFFLENBQUFDLFNBQUYsQyxNQUFRLENBQUFELFNBQVIsQyxFQW5CZ0MsQ0FBM0MsQ0FxQk1FLFNBQUEsQ0FBaUIsQ0FBQ0MsU0FBRCxDQUFLQyxTQUFMLENBQWFDLFNBQWIsQ0FBOEJDLFNBQTlCLEdBQTBDdkgsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDb0gsU0FBRCxDQUFLQyxTQUFMLENBQWFDLFNBQWIsQ0FBOEJDLFNBQTlCLENBQWxCLENBQTBELEssR0FBMUQsQ0FBa0UsVUFBVyxDQUFFdkUsWUFBQSxDQUFBd0UsU0FBRixDQUFnQnRFLFFBQUEsQ0FBQXVFLFNBQWhCLENBQTBCckUsT0FBQSxDQUFBc0UsU0FBMUIsQ0FBWCxDQUFnREMsU0FBaEQsQ0FBc0RDLFNBQXRELENBQXFFQyxTQUFyRSxDLDJCQUN6SEMsU0FBQSxDQUFpQkYsU0FBQSxDLGdCQUFBLEcsQ0FDakIsQ0FBRUcsSUFBQSxDQUFBQyxTQUFGLENBQVFDLElBQUEsQ0FBQUMsU0FBUixFQUFpQixNQUFNOUIsU0FBQSxDQUFpQixDLGNBQUUsQ0FBQW9CLFNBQUYsQyxVQUFnQixDQUFBQyxTQUFoQixDLFNBQTBCLENBQUFDLFNBQTFCLENBQWpCLENBQXNESSxTQUF0RCxDLENBQ3ZCSyxTQUFBLENBQWtCLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxHLDJCQUNwQlIsU0FBQSxDLGdCQUFBLEVBQVdPLFNBQVgsRSxnQkFBQSxFLGVBQUEsRSxnQkFBQSxFQUFvREMsU0FBcEQsQyxDQUNBUixTQUFBLEMsTUFBQSxHLENBQ0FTLFVBQUEsQ0FBVyxJLDJCQUNQVCxTQUFBLEMsZ0JBQUEsRUFBa0JRLFNBQWxCLEMsQ0FDQVIsU0FBQSxDLE1BQUEsRyxFQUZKLEMsS0FBQSxDLE1BS0FLLFNBQUEsQyxnQkFBQSxJLFlBRUFDLFNBQUEsQyxhQUFnQixDQUFnQkwsU0FBaEMsQyxnQkFBQSxDLGFBSUlFLFNBQUEsQyxZQUFBLEUsT0FBQSxFQUFzQixNQUF0QixDLEVBQ0EsTUFBTU8sU0FBQSxDQUFVaEQsU0FBQSxDQUFZeUMsU0FBWixDQUFoQixDQUNBSixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUE0QlcsU0FBNUIsRUFFQSxNQUFNQyxTQUFBLENBQWlCcEQsU0FBQSxDQUFhNEMsU0FBYixDQUFtQkwsU0FBbkIsQ0FBdkIsQyxPQUNBQyxTQUFBLEMsZ0JBQUEsRUFBa0JZLFNBQWxCLEMsQ0FDQVosU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBTyxTQUFBLEMsTUFBQSxDLElBQUEsQyxtQkFJQVAsU0FBQSxDLGdCQUFBLEUsR0FBcUJFLFNBQXJCLEMsQ0FDQUssU0FBQSxDQUFtQkgsU0FBQSxDLGdCQUFBLEMsUUFBbUJFLFNBQUEsQyxnQkFBQSxDQUF0QyxDLGdCQUFBLEMsT0E3QnFELENBckJqRSxDQXVEQSxTQUFTTyxTQUFULENBQXVCQyxTQUF2QixDQUE4QkMsU0FBOUIsQyxRQUNXM0ksU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCNEksU0FBQSxDQUFTRixTQUFBLEMsZ0JBQUEsRSxPQUFBLEMsQ0FDVEcsU0FBQSxDQUFnQixNQUFNakcsU0FBQSxDQUFPK0YsU0FBUCxDQUFhQyxTQUFiLENBQXFCMUUsU0FBckIsQyxDQUN0QjRFLFFBQUEsQ0FBZ0IsTUFBTWxHLFNBQUEsQ0FBTytGLFNBQVAsQ0FBYUMsU0FBYixDQUFxQnpFLFNBQXJCLEMsT0FDckIsQyxZQUNILENBQVksQ0FBQyxHQUFHMEUsU0FBQSxDLFlBQUEsQ0FBSixDQUE4QixHQUFHQyxRQUFBLEMsZ0JBQUEsQ0FBakMsQ0FEVCxDLEVBSkosQyxFQVNYLE1BQU1DLFNBQUEsQ0FBYSxDLGlCQUNmLENBQWlCdkcsU0FBQSxDLGdCQUFBLENBREYsQyxpQkFFZixDLElBRmUsQyxpQkFHZixDQUFpQlIsU0FBQSxDLGdCQUFBLENBSEYsQyxlQUlmLENBQWVFLFNBQUEsQyxnQkFBQSxFQUEwQkEsU0FBQSxDLGdCQUFBLENBQTFCLENBQWlEQSxTQUFBLEMsVUFBQSxDQUFqRCxDQUFzRUEsU0FBQSxDLGdCQUFBLENBSnRFLEMsWUFLZixDLElBTGUsQ0FBbkIsQ0FPQSxTQUFTOEcsU0FBVCxDQUF1QkMsU0FBdkIsQ0FBOEJDLFNBQTlCLEMsUUFDV2xKLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLHlCQUM3Qm1KLFNBQUEsQ0FBU0YsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNURyxTQUFBLENBQWdCLE1BQU14RyxTQUFBLENBQU9zRyxTQUFQLENBQWFDLFNBQWIsQ0FBcUJKLFNBQXJCLEMsUUFDckJLLFMsRUFISixDLEVBTVgsTUFBTUMsU0FBQSxDQUFlQyxTQUFELEUsMkJBQ2hCLElBQUlDLFNBQUosQ0FBUUMsU0FBUixDQUFZQyxTQUFaLENBQWdCQyxTQUFoQixDLEdBQ0ksQ0FBQ0osU0FBRCxFQUFjLENBQUNBLFNBQUEsQyxnQkFBQSxDLEVBQ2YsTUFBTUssU0FBQSxDQUFXQyxDQUFBLEMsZ0JBQUEsQ0FBakIsQyxPQUNPRCxTLEVBRVgsTUFBTUUsU0FBQSxDQUFJUCxTQUFBLEMsZ0JBQUEsRSxVQUFBLEdBQVYsQ0FDTVEsU0FBQSxDQUFLLENBQUMsQ0FBQVAsU0FBQSxDQUFLRCxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDQyxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZ0JBQUEsQ0FBbEUsQ0FBRCxFQUFnRixDQUFDLENBQUFDLFNBQUEsQ0FBS0YsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUFnQyxJQUFoQyxFQUF3Q0UsU0FBQSxHQUFPLEssR0FBL0MsQ0FBd0QsSyxHQUF4RCxDQUFpRUEsU0FBQSxDLGdCQUFBLENBQWpFLENBQWhGLEVBQTZKRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUR2SyxDQUVNLENBQUVTLElBQUEsQ0FBQUMsU0FBRixDQUFRQyxLQUFBLENBQUFDLFNBQVIsRUFBa0J4SCxTQUFBLENBQVE0RyxTQUFSLENBRnhCLENBR01hLFNBQUEsQyxJQUFZYixTQUFBLEMsUUFBQSxFLGdCQUFBLEcsU0FBZ0MsQ0FBQyxDQUFDLENBQUFHLFNBQUEsQ0FBS0gsU0FBQSxDLFlBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDRyxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBRCxFQUErRSxDQUFDLENBQUFDLFNBQUEsQ0FBS0osU0FBQSxDLGFBQUEsQ0FBTCxDQUFELEdBQWlDLElBQWpDLEVBQXlDSSxTQUFBLEdBQU8sSyxHQUFoRCxDQUF5RCxLLEdBQXpELENBQWtFQSxTQUFBLEMsZ0JBQUEsQ0FBbEUsQ0FBL0UsRSxFQUFBLENBSGxELENBSU1VLFNBQUEsQ0FBV1IsQ0FBQSxDLGlCQUFjTixTQUFBLEMsZ0JBQUEsRSxVQUFBLEcsa0JBQStEYSxTLDJCQUFzQkgsUyxrQkFBc0JFLFMsa0JBQWdCSixTLGlCQUF6SSxDQUpqQixDLE9BS0FNLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUF1QlAsU0FBdkIsQyxDQUNBTyxTQUFBLEMsTUFBQSxFLFdBQUEsQ0FBMkJkLFNBQTNCLEMsQ0FDT2MsUyxFQWRYLENBZ0JNQyxTQUFBLENBQWMsQ0FBQ0MsU0FBRCxDQUFTQyxTQUFULEcsa0NBQ1RBLFNBQUEsQyxnQkFBQSxFLGlCQUFzQkQsUyxRQUF0QixDLEVBakJYLENBbUJNRSxTQUFBLENBQWUsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEcsMkJBQ2pCRCxTQUFBLEMsT0FBQSxFLGdCQUFBLEUsZ0JBQUEsRSxhQUFBLEUsZ0JBQUEsQyxDQUVBQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxFQXRCSixDQXdCTUMsU0FBQSxDQUFhLENBQUNDLFNBQUQsQ0FBT0MsU0FBUCxDQUFtQkMsU0FBbkIsR0FBNkI5SyxTQUFBLENBQVUsSyxHQUFWLENBQWtCLEssR0FBbEIsQ0FBMEIsSyxHQUExQixDQUFrQyxXLDJCQUU5RSxJQUFJK0ssU0FBQSxDQUFXRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFmLENBQ0FELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQW9DLEVBQXBDLENBQ0EsTUFBTUcsU0FBQSxDQUFVSCxTQUFBLEMsZ0JBQUEsR0FBc0IsRUFBdEMsQyxHQUNJRyxTQUFBLEMsZ0JBQUEsSSxJQUNBLE9BRUosVUFBV0MsU0FBWCxJQUFnQkQsU0FBaEIsQyxDQUNRRCxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsRUFFQSxPQUFNRyxTQUFBLENBQVVOLFNBQVYsQ0FBZ0JHLFNBQWhCLENBQU4sQyxDQUVKLE1BQU1JLFNBQUEsQ0FBV2QsU0FBQSxDQUFZWSxTQUFaLENBQWVGLFNBQWYsQ0FBakIsQyxHQUNJSSxTQUFBLEMsZ0JBQUEsSSxJQUNBLE9BRUpKLFNBQUEsQ0FBV0ksUyxFQUVmWCxTQUFBLENBQWFJLFNBQWIsQ0FBbUJHLFNBQW5CLEMsQ0FDQUssU0FBQSxDQUFXUixTQUFBLEMsZ0JBQUEsQ0FBWCxDQUEyQkcsU0FBM0IsQyxFQXBCNEMsQ0F4QmhELENBOENBLFNBQVNLLFNBQVQsQ0FBb0JDLFNBQXBCLENBQWdDQyxTQUFoQyxDLDJCQUVVQyxTQUFBLENBQVFELFNBQUEsQyxnQkFBQSxJLEtBQUEsQyxDQUVSRSxTQUFBLENBQXFCSCxTQUFBLEMsZ0JBQUEsRyxJQUN2QkcsU0FBQSxFQUFzQkMsUyxDQUN0QixPQUlKLE1BQU1DLFNBQUEsQ0FBV0YsU0FBQSxDQUFxQkQsU0FBckIsQ0FBNkJGLFNBQUEsQyxnQkFBQSxJLEdBQTdCLENBQXVEQyxTQUFBLEMsZ0JBQUEsSSxHQUF4RSxDQUVBRCxTQUFBLEMsU0FBQSxFQUFtQixDLFdBQ2YsQ0FBV0ssU0FESSxDQUFuQixDLEtBQUEsQyxFQUlKLE1BQU1DLFNBQUEsQ0FBaUIsQ0FBQ0MsU0FBRCxDQUFPQyxTQUFQLEdBQXNCN0wsU0FBQSxDQUFVLEssR0FBVixDQUFrQixLLEdBQWxCLENBQTBCLEssR0FBMUIsQ0FBa0MsVywyQkFDckU4TCxTQUFBLENBQVNGLFNBQUEsQyxRQUFBLEUsS0FBQSxHLENBQ1RHLFNBQUEsQ0FBVSxDLFFBQ1osQ0FBQUQsU0FEWSxDLFlBRVosQ0FBWUQsU0FBQSxDLGdCQUFBLENBRkEsQyxRQUdaLENBQVFELFNBQUEsQyxnQkFBQSxFLGdCQUFBLEcsR0FISSxDLENBS1ZJLFNBQUEsQ0FBT0MsU0FBQSxDQUFlTCxTQUFmLEMsQ0FDUE0sU0FBQSxDQUFhLE1BQU05SCxTQUFBLENBQWE0SCxTQUFiLENBQW1CRCxTQUFuQixDLElBQ3JCLENBQUNHLFMsQ0FDRCxPQUVKLE1BQU12QixTQUFBLENBQVdpQixTQUFYLENBQWlCTSxTQUFqQixDQUE2Qk4sU0FBQSxDLGdCQUFBLENBQTdCLEMsRUFabUMsQ0FBN0MsQ0FjQSxTQUFTTyxTQUFULENBQTJCQyxTQUEzQixDQUFpQ0MsU0FBakMsQ0FBd0NDLFNBQXhDLENBQW1EQyxTQUFuRCxDLFFBQ1d2TSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw0QkFDL0JxTSxTQUFBLEMsVUFBQSxFLGdCQUFBLEMsRUFDQXRJLE9BQUEsQyxnQkFBQSxFLGdCQUFBLEVBQ0EsTyxJQUVBc0ksU0FBQSxDLFVBQUEsRSxnQkFBQSxDLEVBQ0F0SSxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUNBLE8sQ0FFSnNJLFNBQUEsQyxnQkFBQSxFLFNBQUEsQyxDQUNBQSxTQUFBLEMsUUFBQSxFLGdCQUFBLENBREEsQ0FFQSxHLENBQ0lBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGdCQUFBLElBQ0EsTUFBTSxDQUFFRyxVQUFBLENBQUFDLFNBQUYsRUFBaUIsTUFBTUgsU0FBQSxDQUFVRCxTQUFWLENBQWlCRSxTQUFqQixDQUE3QixDQUVBRSxTQUFBLEMsZ0JBQUEsRUFBZ0IsQ0FBQ0MsU0FBRCxDQUFJQyxTQUFKLEcsMkJBQVksSUFBSUMsU0FBSixDQUFRQyxTQUFSLEMsTUFBb0IsQ0FBQyxDQUFDLENBQUFELFNBQUEsQ0FBS0YsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUF3QixJQUF4QixFQUFnQ0UsU0FBQSxHQUFPLEssR0FBdkMsQ0FBZ0QsSyxHQUFoRCxDQUF5REEsU0FBQSxDLGdCQUFBLENBQXpELENBQUQsRSxFQUFBLENBQUQsQyxnQkFBQSxFQUEwRixDQUFDLENBQUFDLFNBQUEsQ0FBS0YsU0FBQSxDLGdCQUFBLENBQUwsQ0FBRCxHQUF3QixJQUF4QixFQUFnQ0UsU0FBQSxHQUFPLEssR0FBdkMsQ0FBZ0QsSyxHQUFoRCxDQUF5REEsU0FBQSxDLE1BQUEsQ0FBekQsQ0FBRCxFLEVBQXpGLEMsRUFBL0MsRUFDQSxVQUFXQyxTQUFYLElBQXdCTCxTQUF4QixDLElBQ1FMLFNBQUEsQyxnQkFBQSxFLFFBQUEsR0FBdUIsQ0FBQ0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBb0JVLFNBQXBCLEMsQ0FDeEIsU0FFSixNQUFNQyxTQUFBLENBQVcxRCxTQUFBLENBQVl5RCxTQUFaLENBQWpCLENBQ0FULFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxFQUE0QlUsU0FBNUIsQyxFQUVKVixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEVBRUosTUFBT1csU0FBUCxDLENBQ0lYLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxFLGdCQUF5Q1csU0FBQSxDLGdCQUFBLEMsaUJBQXpDLEMsQ0FDQWpKLE9BQUEsQyxLQUFBLEUsZ0JBQUEsQ0FBbUJpSixTQUFuQixDLEVBRUpYLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEVBOUJHLEMsRUFpQ1gsU0FBU0osU0FBVCxDQUF3QmdCLFNBQXhCLEMsMkJBQ1VDLFNBQUEsQ0FBTyxDLFNBQ1QsQ0FBU0QsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FEQSxDLGNBRVQsQ0FBYyxPQUFPQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFQLEcsZ0JBQUEsQ0FBa0RBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQWxELENBQWdGQSxTQUFBLEMsU0FBQSxFLGNBQUEsQ0FGckYsQyxVQUdULENBQVUsT0FBT0EsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FBUCxHLGdCQUFBLENBQThDQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLEdBQTlDLENBQXdFQSxTQUFBLEMsU0FBQSxFLGdCQUFBLENBSHpFLEMsUUFLTkMsUyxFQUVYLFNBQVNoQyxTQUFULENBQW1CaUMsU0FBbkIsQ0FBeUJDLFNBQXpCLEMsUUFDV3BOLFNBQUEsQ0FBVSxJQUFWLENBQWdCLEssR0FBaEIsQ0FBd0IsSyxHQUF4QixDQUFnQyxXLDRCQUMvQm9OLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxVQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsR0FEQSxDQUVBLE8sQ0FHSixNQUFNQyxTQUFBLENBQU9wQixTQUFBLENBQWVrQixTQUFmLENBQWIsQ0FDTUcsU0FBQSxDQUFJLENBQUNILFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQUQsQ0FBMEIxRSxTQUExQixDQUEwQ08sU0FEcEQsQ0FFQSxHLENBQ0ksTUFBTW1ELFNBQUEsQ0FBa0JnQixTQUFsQixDQUF3QkMsU0FBeEIsQ0FBNkJFLFNBQTdCLENBQWdDRCxTQUFoQyxDLENBRU5ELFNBQUEsQyxhQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsRUFFSixNQUFPRyxTQUFQLEMsQ0FDSUgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsQ0FDQXJKLE9BQUEsQyxLQUFBLEUsT0FBQSxDQUFxQndKLFNBQXJCLEMsR0FoQkQsQyxFQW9CWCxNQUFNQyxTQUFBLENBQW9CLEMsWUFDdEIsQ0FBWSxDLGdCQUFFLEMsR0FBRixDLE1BQXFCLEMsZ0JBQXJCLENBRFUsQyxXQUV0QixDLGdCQUZzQixDLFFBR3RCLEMsZ0JBSHNCLEMsYUFJdEIsQ0FBYSxDLE1BQUUsQyxTQUFGLENBSlMsQyxnQkFLdEIsQ0FBZ0I5TCxTQUxNLENBQTFCLENBT00rTCxTQUFBLENBQTJCLEksMkJBUTdCN0QsQ0FBQSxDLGdCQUFBLEUsc0JBQUEsQ0FBaUMsQyxTQUU3QixDQUFTLEMsY0FDTCxDQUFjLEtBQU8sQyxVQUFFLEMsZ0JBQUYsQ0FBUCxDQURULEMsVUFFTCxDQUFVLElBQU02QixTQUZYLEMsWUFHTCxDQUFZLElBQU0rQixTQUhiLEMsUUFJTCxDQUFRLEksSUFKSCxDLFNBS0wsQyxFQUxLLEMsV0FNTCxDLEdBTkssQ0FGb0IsQyxtQkFVN0IsRSxRQUNXeE4sU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCME4sU0FBQSxDQUFPLEksSUFDVEEsU0FBQSxDLGNBQUEsR0FBcUJqQyxTLEVBQ3JCLE1BQU1rQyxTQUFBLENBQUksT0FBT0QsU0FBQSxDLFNBQUEsRSxnQkFBQSxDQUFQLEcsZ0JBQUEsQ0FBZ0RBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsRUFBNkJBLFNBQTdCLENBQWhELENBQXFGQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUEvRixDLEdBQ0lDLFNBQUEsWUFBYW5OLE8sRUFDYixNQUFNb04sU0FBQSxDQUFPLE1BQU1ELFNBQW5CLENBQ0FELFNBQUEsQyxnQkFBQSxFQUFvQkUsUyxPQUdwQkYsU0FBQSxDLGdCQUFBLEVBQW9CQyxTLFNBR3JCRCxTQUFBLEMsZ0JBQUEsR0FBcUJGLFMsRUFaekIsQyxFQVhrQixDLE9BMEI3QixFLFFBQ1d4TixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDN0I2TixTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQUlELFMsQ0FDVkMsU0FBQSxDLGdCQUFBLEVBQWlCckMsUyxDQUNqQm9DLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBREEsQ0FFQSxNQUFNRSxTQUFBLENBQWEsTUFBTSxLLGdCQUFBLEdBQXpCLENBQ01DLFNBQUEsQ0FBVzNFLFNBQUEsQ0FBWTBFLFNBQVosQ0FEakIsQ0FFQUYsU0FBQSxDLGdCQUFBLEUsUUFBQSxFQUFrQkcsU0FBbEIsQyxDQUNBSCxTQUFBLEMsZ0JBQUEsRUFBcUJFLFMsRUFUbEIsQyxFQTNCa0IsQyxRQXVDN0IsQ0FBT0UsU0FBUCxDLDJCQUNVQyxTQUFBLENBQU8sSSxDQUVQQyxTQUFBLENBQU9sQyxTQUFBLENBQWVpQyxTQUFmLEMsQ0FDYi9HLFNBQUEsQ0FBZWdILFNBQWYsQ0FBcUJGLFNBQXJCLENBQTJCQyxTQUFBLEMsZ0JBQUEsQ0FBM0IsQ0FBd0NBLFNBQUEsQyxPQUFBLENBQXhDLEUsZ0JBQUEsRUFBMERFLFNBQUQsRSwyQkFDakQsQ0FBQ0EsUyxDQUNERixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGFBQUEsQyxDQUdBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGFBQUEsQyxFQUxSLEMsRUEzQ3lCLEMsV0FvRDdCLENBQVVHLFNBQVYsQywyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYjFFLENBQUEsQ0FBRTJFLFFBQUYsRSxnQkFBQSxFLG1EQUFBLEMsQ0FDQUYsU0FBQSxDLE1BQUEsRyxDQUNBQSxTQUFBLEMsS0FBQSxFQUFTLEMsUUFDTCxDLGdCQURLLENBQVQsQ0FGQSxDLEdBS0lBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEMsRUFDQSxJQUFJRyxTQUFBLENBQVcsRUFBZixDQUNBSCxTQUFBLEMsZ0JBQUEsRSw4QkFBQSxFLGdCQUFBLEVBQXlDLFUsMkJBQ2pDekUsQ0FBQSxDQUFFLElBQUYsRSxNQUFBLEUsZ0JBQUEsQyxFQUNBNEUsU0FBQSxDLGdCQUFBLEVBQWM1RSxDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsZ0JBQUEsQ0FBZCxDLEVBRlIsQyxDQUtBeUUsU0FBQSxDLGdCQUFBLEVBQWNHLFNBQWQsQyxFQUVBRixTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxDQUNBQSxTQUFBLEMsUUFBQSxFLGdCQUFBLEUsT0FBQSxDLENBS0FBLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsT0FBQSxDLEVBMUVxQixDLGFBNkU3QixDQUFZRyxTQUFaLENBQXlCQyxTQUF6QixDQUErQkMsU0FBL0IsQywyQkFDSSxJQUFJQyxTQUFBLENBQU8sSUFBWCxDQUNBLE1BQU1DLFNBQUEsQ0FBT2pGLENBQUEsQyxnQkFBQSxFLGdCQUFBLEUscURBQUEsQ0FBYixDLE9BQ0FpRixTQUFBLEMsZ0JBQUEsRUFBWUgsUyxDQUNaRyxTQUFBLEMsZ0JBQUEsRUFBZ0JGLFMsQ0FDaEJGLFNBQUEsQyxnQkFBQSxFQUFxQkssU0FBRCxFLDJCQUNaLE9BQU9BLFNBQVAsRyxVQUNBLENBQUFBLFNBQUEsQ0FBTSxDLE9BQUUsQ0FBT0EsU0FBVCxDLE9BQWMsQ0FBT0EsU0FBckIsQ0FBTixDLENBRUosSUFBSUMsU0FBQSxDQUFLbkYsQ0FBQSxDLDJCQUFBLEUsZ0JBQUEsRSxnQkFBQSxDQUFvQ2tGLFNBQUEsQyxnQkFBQSxDQUFwQyxFLFVBQUEsRUFBd0RELFNBQXhELENBQVQsQ0FDSUMsU0FBQSxDLGdCQUFBLEMsRUFDQUMsU0FBQSxDLE1BQUEsRUFBUUQsU0FBQSxDLGdCQUFBLENBQVIsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsQyxFQUNBQyxTQUFBLEMsTUFBQSxFLGdCQUFBLENBQWlCRCxTQUFBLEMsT0FBQSxDQUFqQixDLElBRUFBLFNBQUEsQyxNQUFBLEMsS0FDSUEsU0FBQSxDLE1BQUEsRSxTQUFBLEUsR0FBQSxJLElBQ0FsRixDQUFBLENBQUVrRixTQUFBLEMsTUFBQSxDQUFGLEUsV0FBQSxFQUFzQkMsU0FBdEIsQyxNQUVLRCxTQUFBLEMsZ0JBQUEsRSxTQUFBLEUsR0FBQSxJQUEwQixDLElBQy9CbEYsQ0FBQSxDLGdCQUFBLENBQVMsQyxPQUNMLEMsZ0JBREssQyxPQUVMLEMsZ0JBQU8sQ0FBcUJrRixTQUFBLEMsZ0JBQUEsQ0FBckIsQyxnQkFBQSxDQUFnRUEsU0FBQSxDLGdCQUFBLENBQWhFLEMsSUFGRixDQUFULEUsZ0JBQUEsRUFHYUMsU0FIYixDLENBTUFuRixDQUFBLEMsZ0JBQUEsQ0FBUyxDLE9BQUUsQyxnQkFBTyxDQUE0QmtGLFNBQUEsQyxnQkFBQSxDQUFyQyxDQUFULEUsZ0JBQUEsRUFBb0VDLFNBQXBFLEMsT0FJSkEsU0FBQSxDLEtBQUEsRUFBTyxDLGFBQUUsQyxnQkFBRixDQUFQLEMsQ0FFQSxDQUFDRCxTQUFBLEMsZ0JBQUEsQ0FBRCxFQUFhLENBQUNBLFNBQUEsQyxnQkFBQSxDLEVBQ2RDLFNBQUEsQyxNQUFBLEVBQVFELFNBQUEsQyxnQkFBQSxDQUFSLEMsQ0FFSixJQUFJRSxTQUFKLENBQ0lOLFNBQUEsQyxnQkFBQSxDLEVBQ0EsQ0FBQU0sU0FBQSxDQUFLcEYsQ0FBQSxDLGdCQUFBLEUsS0FBQSxFLGdCQUFBLEMsTUFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FFY2tGLFNBQUEsQyxnQkFBQSxDQUZkLEUsZ0JBQUEsRUFHVUMsU0FIVixFLElBQUEsRSxnQkFBQSxDQUlnQixTQUFVRSxTQUFWLEMsMEJBQ2pCQSxTQUFBLEMsZUFBQSxHLEVBTEMsQ0FBTCxDLENBUUpGLFNBQUEsQyxJQUFBLEUsZ0JBQUEsQ0FBZSxTQUFVRyxTQUFWLEMsMkJBQ1hBLFNBQUEsQyxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxHLENBQ0ksQ0FBQ1IsU0FBQSxDLGdCQUFBLEMsRUFDREMsU0FBQSxDQUFTRyxTQUFBLEMsZ0JBQUEsQ0FBVCxDLENBQ0FGLFNBQUEsQyxnQkFBQSxFQUFlQyxTQUFmLEMsRUFHQUcsU0FBQSxDLE1BQUEsRSxnQkFBQSxDQUFtQixDQUFDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFwQixDLEVBUlIsQyxFQXpDSixDLENBcURBSCxTQUFBLEMsZ0JBQUEsRUFBUyxDLFNBQ0wsQyxnQkFESyxDQUFULEMsQ0FHQUEsU0FBQSxDLElBQUEsRSxnQkFBQSxDQUFtQixTQUFVTSxTQUFWLEMsOEJBQ1hBLFNBQUEsQyxTQUFBLEksS0FDQUEsU0FBQSxDLGdCQUFBLEcsQ0FFQXZGLENBQUEsQ0FBRSxJQUFGLEUsZ0JBQUEsRSxnQkFBQSxFLE1BQUEsSSxnQkFBQSxFLGdCQUFBLEMsU0FFS3VGLFNBQUEsQyxnQkFBQSxJLEtBQ0xBLFNBQUEsQyxnQkFBQSxHLENBRUF2RixDQUFBLENBQUUsSUFBRixFLGdCQUFBLEUsUUFBQSxFLGdCQUFBLEksU0FBQSxFLGdCQUFBLEMsTUFFS3VGLFNBQUEsQyxnQkFBQSxJLE9BRUxBLFNBQUEsQyxnQkFBQSxHLENBQ0FQLFNBQUEsQyxnQkFBQSxFQUFlQyxTQUFmLEMsR0FFSk0sU0FBQSxDLGlCQUFBLEcsRUFoQkosQyxDQWtCT04sUyxFQTVKa0IsQyxhQThKN0IsQyxHQTlKNkIsQyxXQStKN0IsQ0FBVU8sU0FBVixDQUFnQkMsU0FBaEIsQyw4QkFDUSxLLGFBQUEsQyxFQUNBLEssYUFBQSxFLEdBQUEsQ0FDQSxPLENBRUosSUFBSUMsUUFBQSxDQUFPLElBQVgsQ0FDSUMsU0FBQSxDQUFNRixTQUFBLEMsZ0JBQUEsR0FEVixDQUVJRyxTQUFBLENBQVNILFNBQUEsQyxnQkFBQSxHQUZiLENBR0lJLFNBQUEsQ0FBYUwsU0FBQSxDLGdCQUFBLEdBSGpCLENBSUlNLFNBQUEsQ0FBTUYsU0FBQSxDQUFTRCxTQUFBLEMsZ0JBQUEsQ0FKbkIsQ0FLSUcsU0FBQSxDQUFNRCxTQUFOLENBQW1CN0YsQ0FBQSxDQUFFMkUsUUFBRixFLGdCQUFBLEdBQW5CLENBQTZDM0UsQ0FBQSxDQUFFK0YsTUFBRixFLGdCQUFBLEcsRUFDN0MsQ0FBQUQsU0FBQSxFQUFPQSxTQUFBLENBQU1ELFNBQU4sQ0FBbUI3RixDQUFBLENBQUUrRixNQUFGLEUsZ0JBQUEsR0FBbkIsQyxHQUFQLEMsQ0FFQUQsU0FBQSxDLE1BQ0FOLFNBQUEsQyxnQkFBQSxFQUFZSyxTQUFBLENBQWFDLFNBQXpCLEMsQ0FDQUEsU0FBQSxDLEtBRUpOLFNBQUEsQyxnQkFBQSxFQUFTLEMsS0FDTCxDQUFLTSxTQUFBLEMsSUFEQSxDLE1BRUwsQ0FBTUgsU0FBQSxDLGdCQUFBLEUsSUFGRCxDQUFULEMsQ0FJQUgsU0FBQSxDLGdCQUFBLEUsSUFBQSxDLENBQ0EsSyxnQkFBQSxFQUFZLFUsMkJBQ1JFLFFBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNBMUYsQ0FBQSxDQUFFMkUsUUFBRixFLElBQUEsRSxnQkFBQSxDQUFvRSxTQUFVcUIsU0FBVixDLDJCQUM1RCxDQUFDaEcsQ0FBQSxDQUFFZ0csU0FBQSxDLFFBQUEsQ0FBRixFLGdCQUFBLEVBQXdCUixTQUF4QixFLFFBQUEsQyxFQUNERSxRQUFBLEMsZ0JBQUEsRUFBZUYsU0FBZixDLENBRUF4RixDQUFBLENBQUVnRyxTQUFBLEMsZ0JBQUEsQ0FBRixFLGdCQUFBLEVBQXdCUCxTQUF4QixFLGdCQUFBLEMsR0FDQUMsUUFBQSxDLGdCQUFBLEUsS0FDQU0sU0FBQSxDLGdCQUFBLEcsR0FOUixDLEVBRkosQyxFQXJMeUIsQyxlQWtNN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYixLLGdCQUFBLEVBQWVBLFNBQUEsQyxnQkFBQSxDQUFmLENBQTJCQSxTQUFBLEMsZ0JBQUEsQ0FBM0IsQyxDQUNBQSxTQUFBLEMsV0FBQSxFLGdCQUFBLEdBREEsQ0FFQSxNQUFNQyxTQUFBLENBQU9ELFNBQUEsQyxnQkFBQSxDQUFiLENBQ0EsSUFBSUUsU0FBQSxDQUFXRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFnQixDQUFhQyxTQUFiLEMsTUFBaEIsQ0FBZixDQUNBeEgsVUFBQSxDQUFXLFUsMkJBQ1B5SCxTQUFBLEMsU0FBQSxFLGdCQUFBLEMsRUFESixDLElBQUEsQyxFQXhNeUIsQyxXQTRNN0IsRSwyQkFDVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLGdCQUFBLEUsTUFBQSxFLFVBQUEsQ0FBcUMsQyxHQUFyQyxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSx5Q0FBQSxDQUFrRSxTQUFVQyxTQUFWLEMsMkJBQzlEQSxTQUFBLEMsZ0JBQUEsRyxFQURKLENBREEsQ0FJSUQsU0FBQSxDLGdCQUFBLEMsRUFDQUEsU0FBQSxDLE9BQUEsRSxnQkFBQSxHLENBR0osTUFBTUUsU0FBQSxDQUFXLENBQ2IsQyxPQUFFLEMsTUFBRixDLE9BQWlCLEMsR0FBakIsQyxPQUE2QixDLGdCQUE3QixDLE1BQTZELEMsZ0JBQTdELENBRGEsQ0FFYixDLE9BQ0ksQyxnQkFESixDLE9BRUksQyxnQkFGSixDLE9BR0ksQyxnQkFISixDLE1BSUksQyxnREFKSixDQUZhLENBUWIsQyxPQUFFLEMsZ0JBQUYsQyxPQUFtQixDLEdBQW5CLEMsTUFBK0IsQyxnQkFBL0IsQ0FSYSxDQVNiLEMsT0FBRSxDLGdCQUFGLEMsT0FBMkIsQyxJQUEzQixDLE1BQXdDLEMsbURBQXhDLENBVGEsQ0FVYixDLE9BQUUsQyxnQkFBRixDLE9BQXNDLEMsZ0JBQXRDLEMsTUFBb0QsQyxnQkFBcEQsQ0FWYSxDQVdiLEMsT0FBRSxDLGdCQUFGLEMsT0FBdUIsQyxHQUF2QixDLE1BQW1DLEMsZ0JBQW5DLENBWGEsQ0FZYixDLE9BQ0ksQywyQkFESixDLE9BRUksQyxJQUZKLEMsTUFHSSxDLGdCQUhKLENBWmEsQ0FBakIsQ0FrQk1DLFNBQUEsQ0FBSXZLLFNBQUEsQ0FBdUJvSyxTQUFBLEMsUUFBQSxFLGdCQUFBLEdBQXZCLENBbEJWLENBbUJNSSxTQUFBLENBQUlGLFNBQUEsQyxnQkFBQSxFQUFlRyxTQUFELEVBQU9BLFNBQUEsQyxnQkFBQSxJQUFZRixTQUFqQyxDQW5CVixDQW9CQUgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsSSxRQUFBLEUsaUJBQWdELENBQUMsQ0FBQUksU0FBQSxHQUFNLElBQU4sRUFBY0EsU0FBQSxHQUFNLEssR0FBcEIsQ0FBNkIsSyxHQUE3QixDQUFzQ0EsU0FBQSxDLGdCQUFBLENBQXRDLENBQUQsRSxFQUFBLEMsa0JBQWdFLENBQUMsQ0FBQUEsU0FBQSxHQUFNLElBQU4sRUFBY0EsU0FBQSxHQUFNLEssR0FBcEIsQ0FBNkIsSyxHQUE3QixDQUFzQ0EsU0FBQSxDLGdCQUFBLENBQXRDLENBQUQsRSxFQUFBLEMsaUJBQWhILEMsQ0FDQUosU0FBQSxDLGdCQUFBLEVBQXdCRyxTQUR4QixDQUVBLE1BQU1HLFNBQUEsQ0FBSyxJQUFYLENBQ0FOLFNBQUEsQyxnQkFBQSxFQUFhLEssZ0JBQUEsRUFBaUJFLFNBQWpCLENBQTJCLEVBQTNCLENBQWdDSyxTQUFELEUsMkJBQ2xDQyxTQUFBLENBQU96SyxTQUFBLENBQU93SyxTQUFQLEMsQ0FDVEMsUyxFQUVBRixTQUFBLEMsUUFBQSxFQUFVRSxTQUFWLEMsQ0FFSixNQUFNQyxTQUFBLENBQUlQLFNBQUEsQyxnQkFBQSxFQUFlUSxTQUFELEVBQU9BLFNBQUEsQyxnQkFBQSxJQUFZSCxTQUFqQyxDQUFWLENBQ0FQLFNBQUEsQyxnQkFBQSxFQUF3Qk8sUyxDQUN4QlAsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsSSxnQkFBQSxFLGlCQUFnRCxDQUFDLENBQUFTLFNBQUEsR0FBTSxJQUFOLEVBQWNBLFNBQUEsR0FBTSxLLEdBQXBCLENBQTZCLEssR0FBN0IsQ0FBc0NBLFNBQUEsQyxnQkFBQSxDQUF0QyxDQUFELEUsRUFBQSxDLGtCQUFnRSxDQUFDLENBQUFBLFNBQUEsR0FBTSxJQUFOLEVBQWNBLFNBQUEsR0FBTSxLLEdBQXBCLENBQTZCLEssR0FBN0IsQ0FBc0NBLFNBQUEsQyxnQkFBQSxDQUF0QyxDQUFELEUsRUFBQSxDLGlCQUFoSCxDLEVBUlMsQyxDQVViVCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFvQnpCLFFBQUEsQyxnQkFBQSxDQUFwQixDLENBQ0F5QixTQUFBLEMsT0FBQSxFLGdCQUFBLEcsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxFQXpQeUIsQyxNQTJQN0IsRSwyQkFDVVcsU0FBQSxDQUFPLEksUUFDTjVLLFNBQUEsQ0FBTzRLLFNBQUEsQyxnQkFBQSxDQUFQLEMsRUE3UGtCLEMsU0ErUDdCLENBQVFDLFNBQVIsQyxDQUNJLE1BQU1DLFNBQUEsQ0FBTyxJQUFiLENBQ01DLFNBQUEsQ0FBSTVLLFNBQUEsQ0FBUzBLLFNBQVQsQ0FEVixDQUVBQyxTQUFBLEMsa0JBQUEsRUFBd0JDLFMsRUFsUUMsQyxTQW9RN0IsRSwyQkFFVUMsU0FBQSxDQUFPLEksQ0FDYkEsU0FBQSxDLFFBQUEsRUFBYyxLLGdCQUFBLEMsQ0FDZEEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxRQUFBLEMsZ0JBQUEsQyxDQUVBQSxTQUFBLEMsZ0JBQUEsRUFBbUJBLFNBQUEsQyxRQUFBLEUsZ0JBQUEsRSxPQUFBLEUsZ0JBQUEsSSxnQkFBQSxFLGdCQUFBLEMsQ0FFbkJBLFNBQUEsQyxnQkFBQSxFQUFjbkgsQ0FBQSxDLGdCQUFBLEMsQ0FDZG1ILFNBQUEsQyxnQkFBQSxFLFVBQUEsRSxvQkFBQSxDLENBRUFBLFNBQUEsQyxnQkFBQSxFLGFBQUEsRUFBd0JBLFNBQUEsQyxnQkFBQSxDQUF4QixDLENBQ0FBLFNBQUEsQyxhQUFBLEVBQW1CbkgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxhQUFBLEMsQ0FDbkJtSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFtQkEsU0FBQSxDLGdCQUFBLENBQW5CLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBd0JBLFNBQUEsQyxRQUFBLENBQXhCLEMsQ0FJQUEsU0FBQSxDLGdCQUFBLEVBQXNCbkgsQ0FBQSxDLGdCQUFBLEMsQ0FDdEJtSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFrQkEsU0FBQSxDLGdCQUFBLENBQWxCLEMsQ0FDQUEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLGdCQUFBLENBQWdDLFUsUUFDckIvUSxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyx5QkFDbkMsSUFBSWdSLFNBQUosQ0FDQSxJQUFJQyxTQUFBLEMsR0FBSixDQUNJQyxTQURKLENBRUksQ0FBQ0gsU0FBQSxDLFdBQUEsRSxJQUFBLEUsZ0JBQUEsQyxHQUNEQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBRUFHLFNBQUEsQ0FBYSxNQUFNSCxTQUFBLEMsZ0JBQUEsRyxDQUNmLENBQUFHLFNBQUEsR0FBZUgsU0FBQSxDLGdCQUFBLENBQWYsRUFBc0MsQ0FBQyxDQUFBQyxTQUFBLENBQUtELFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBOEIsSUFBOUIsRUFBc0NDLFNBQUEsR0FBTyxLLEdBQTdDLENBQXNELEssR0FBdEQsQ0FBK0RBLFNBQUEsQyxRQUFBLENBQS9ELENBQUQsR0FBK0VFLFNBQUEsQyxnQkFBQSxDQUFwSCxDLEVBQ0EsT0FBTUgsU0FBQSxDLGdCQUFBLEdBQU4sQyxDQUVKRSxTQUFBLEMsTUFFSkYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRyxDQUNBRSxTQUFBLEVBQXlCLE9BQU10RixTQUFBLENBQWVvRixTQUFmLENBQXFCRyxTQUFyQixDQUFOLEMsRUFkdEIsQyxFQURYLEMsQ0FvQkFILFNBQUEsQyxnQkFBQSxFQUFrQm5ILENBQUEsQyxrSEFBQSxDLENBQ2xCbUgsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBa0JBLFNBQUEsQyxnQkFBQSxDQUFsQixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxnQkFBQSxDQUE0QixJLDJCQUNsQkksU0FBQSxDQUFPSixTQUFBLEMsZ0JBQUEsRyxJQUNULENBQUNJLFMsQ0FDRCxPQUVKLEssUUFBQSxFQUFZQSxTQUFaLEMsRUFMSixDQXZDQSxDQWdEQSxNQUFNQyxTQUFBLENBQWtCQyxTQUFELEVBQVdyUixTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVywyQkFDeERzUixTQUFBLENBQU8sSSxDQUNiLElBQUlDLFNBQUEsQ0FBT0QsU0FBQSxDLGdCQUFBLEdBQVgsQyxHQUNJLENBQUNDLFMsQ0FDRCxPQUdKLE1BQU1DLFNBQUEsQ0FBaUJ2RixTQUFBLENBQWVxRixTQUFmLENBQXZCLENBQ00sQ0FBRXJKLElBQUEsQ0FBQXdKLFNBQUYsQ0FBUTFKLElBQUEsQ0FBQTJKLFNBQVIsRUFBaUIsTUFBTXRMLFNBQUEsQ0FBaUJvTCxTQUFqQixDQUFpQ0gsU0FBakMsQ0FEN0IsQyxHQUVJSSxTQUFBLEMsZ0JBQUEsSSxLQUNBLE8sR0FFQUMsU0FBQSxDLFlBQUEsRSxnQkFBQSxFQUFzQixNQUF0QixDLEVBQ0EsTUFBTUMsU0FBQSxDQUFpQnZNLFNBQUEsQ0FBYXNNLFNBQWIsQ0FBbUJILFNBQW5CLENBQXZCLENBQ0FELFNBQUEsQyxnQkFBQSxFLEtBQUEsRUFBZ0JLLFNBQWhCLEMsQ0FDQUwsU0FBQSxDLFFBQUEsRSxnQkFBQSxFLGdCQUFBLEMsR0FmMEIsQ0FBbEMsQyxDQXNCSVAsU0FBQSxDLGdCQUFBLEVBQWlCbkgsQ0FBQSxDLGdCQUFBLEMsQ0FDakJtSCxTQUFBLEMsZ0JBQUEsRSxRQUFBLEVBQW1CQSxTQUFBLEMsZ0JBQUEsQ0FBbkIsQyxDQUNBQSxTQUFBLEMsZ0JBQUEsRUFBc0JuSCxDQUFBLEMsZ0JBQUEsRSxXQUFBLEVBQTREbUgsU0FBQSxDLGdCQUFBLENBQTVELEMsQ0FDdEJuSCxDQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLElBQUEsRSxnQkFBQSxFQUFtRm1ILFNBQUEsQyxnQkFBQSxDQUFuRixDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLElBQUEsRSxPQUFBLENBQWdDLFNBQVVhLFNBQVYsQywyQkFDNUJBLFNBQUEsQyxnQkFBQSxHLENBQ0FBLFNBQUEsQyxpQkFBQSxHLENBQ0FiLFNBQUEsQyxnQkFBQSxHLEVBSEosQyxDQUtBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQ0FDbUIsU0FBVWMsU0FBVixDLDJCQUNYQSxTQUFBLEMsZ0JBQUEsSSxNQUVBZCxTQUFBLEMsZ0JBQUEsRyxDQUVKYyxTQUFBLEMsZ0JBQUEsRyxFQU5KLEUsSUFBQSxFLGdCQUFBLENBUWlCLFUsMkJBQ2JkLFNBQUEsQyxXQUFBLEUsZ0JBQUEsRSxnQkFBQSxDLEVBVEosRSxJQUFBLEUsZ0JBQUEsQ0FXZ0IsVSwyQkFHWkEsU0FBQSxDLGdCQUFBLEUsYUFBQSxFLGdCQUFBLEMsRUFkSixDLENBaUJBQSxTQUFBLEMsZ0JBQUEsRUFBb0JuSCxDQUFBLEMsNkRBQUEsRSxnQkFBQSxFQUFpRW1ILFNBQUEsQyxnQkFBQSxDQUFqRSxDLEVBRXhCLEssZ0JBQUEsSUFDSSxDQUFDQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFLGdCQUFBLEMsRUFDREEsU0FBQSxDLFFBQUEsRSxnQkFBQSxFLGdCQUFBLEMsZ0JBQUEsQyxDQUdKQSxTQUFBLEMsZ0JBQUEsRUFBYW5ILENBQUEsQyx3Q0FBQSxDLENBQ2JtSCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLENBQ0FBLFNBQUEsQyxnQkFBQSxFLFFBQUEsRUFBbUJBLFNBQUEsQyxnQkFBQSxDQUFuQixDLENBR0FBLFNBQUEsQyxXQUFBLEVBQWlCbkgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRSxnQkFBQSxFLE1BQUEsSSxnQkFBQSxFQUEwRG1ILFNBQUEsQyxnQkFBQSxDQUExRCxDLENBQ2pCQSxTQUFBLEMsT0FBQSxFQUFhbkgsQ0FBQSxDLGdCQUFBLEUsZ0JBQUEsRUFBOENtSCxTQUFBLEMsZ0JBQUEsQ0FBOUMsQyxDQUViLEssT0FBQSxHQVJBLENBVUEsTUFBTWUsU0FBQSxDQUFlLENBQUNDLFNBQUQsQ0FBTUMsU0FBTixHLDJCQUNYQyxTQUFBLEMsS0FDQUMsU0FBQSxDLEtBQ0FDLFNBQUEsQ0FBYUosU0FBQSxDLGdCQUFBLEcsQ0FDYkssU0FBQSxDQUFJSixTLElBQ05JLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsQ0FBWCxFQUNBQyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLE1BQUEsRUFBa0JGLFNBRDdCLEVBRUFHLFNBQUEsQyxnQkFBQSxHQUFXRCxTQUFBLEMsZ0JBQUEsQ0FGWCxFQUdBQyxTQUFBLEMsZ0JBQUEsR0FBV0QsU0FBQSxDLGdCQUFBLEVBQWlCRCxTLHVCQVJwQyxDQWFNRyxTQUFBLENBQW1CQyxTQUFELEVBQVN0UyxTQUFBLENBQVUsSUFBVixDQUFnQixLLEdBQWhCLENBQXdCLEssR0FBeEIsQ0FBZ0MsVyw4QkFDekRzUyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FwSCxTQUFBLENBQVU2RixTQUFWLENBQWdCdUIsU0FBaEIsQyxTQUVLQSxTQUFBLEMsZ0JBQUEsRSxVQUFBLEMsQ0FFTEEsU0FBQSxDLGdCQUFBLEUsSUFBQSxFLFFBQUEsRyxDQUVBQSxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLFNBRUtBLFNBQUEsQyxVQUFBLEUsSUFBQSxFLGdCQUFBLEksZ0JBQUEsRSxJQUNMQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsRyxDQUVBQSxTQUFBLEMsYUFBQSxFLGdCQUFBLEMsU0FieUIsQ0FiakMsQ0E4QkF2QixTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxJQUFBLENBQWdDLFNBQVV3QixTQUFWLEMsMkJBQzVCLElBQUlDLFNBQUosQ0FBUUMsU0FBUixDQUNBRixTQUFBLEMsZ0JBQUEsSUFDQSxJQUFJRyxTQUFBLENBQU05SSxDQUFBLENBQUUsSUFBRixDQUFWLEMsR0FDSWtJLFNBQUEsQ0FBYVksU0FBYixDQUFrQkgsU0FBbEIsQyxDQUNBRixTQUFBLENBQWdCSyxTQUFoQixDLE1BR0EsTUFBTUMsU0FBQSxDQUFRRCxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUFkLENBQ01FLFNBQUEsQ0FBWUYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FEbEIsQyxHQUVJM0IsU0FBQSxDLFNBQUEsRSxjQUFBLEdBQTZCLENBQUNBLFNBQUEsQyxTQUFBLEUsY0FBQSxFQUEwQjZCLFNBQTFCLEMsQ0FDOUIsT0FFSjdCLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEUsZ0JBQUEsQ0FBOEI2QixTQUE5QixDLENBQ0MsQ0FBQyxDQUFBSixTQUFBLENBQUtJLFNBQUEsQyxnQkFBQSxDQUFMLENBQUQsR0FBaUMsSUFBakMsRUFBeUNKLFNBQUEsR0FBTyxLLEdBQWhELENBQXlELEssR0FBekQsQ0FBa0VBLFNBQUEsQyxnQkFBQSxDQUFsRSxDQUFELEVBQWdGLENBQUMsQ0FBQUMsU0FBQSxDQUFLRyxTQUFBLEMsZ0JBQUEsQ0FBTCxDQUFELEdBQWdDLElBQWhDLEVBQXdDSCxTQUFBLEdBQU8sSyxHQUEvQyxDQUF3RCxLLEdBQXhELENBQWlFQSxTQUFBLEMsZ0JBQUEsQ0FBakUsQ0FBaEYsRUFBNkpHLFNBQUEsQyxRQUFBLEUsVUFBQSxHQUQ3SixDQUdBLElBQUlDLFNBQUEsQ0FBTzlCLFNBQUEsQyxnQkFBQSxHQUFYLENBQ0ksQ0FBQzhCLFMsR0FDREEsU0FBQSxDLGlCQUNBOUIsU0FBQSxDLGdCQUFBLEVBQWE4QixTQUFiLEMsRUFFSnpCLFNBQUEsQ0FBZXVCLFNBQWYsRSxnQkFBQSxFQUNVLEksMkJBR041QixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEVBSkosRSxPQUFBLEVBTVkrQixTQUFELEUsMkJBR1AvQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHLEVBVEosQyxHQXJCUixDLENBa0NBQSxTQUFBLEMsZ0JBQUEsRSxJQUFBLEUsZ0JBQUEsQyxJQUFBLENBQTZCLFNBQVVnQyxTQUFWLEMsMkJBQ3pCQSxTQUFBLEMsZ0JBQUEsSUFDQSxJQUFJQyxTQUFBLENBQU1wSixDQUFBLENBQUUsSUFBRixDQUFWLENBQ0lrSSxTQUFBLENBQWFrQixTQUFiLENBQWtCRCxTQUFsQixDLEVBQ0FWLFNBQUEsQ0FBZ0JXLFNBQWhCLEMsQ0FFSnhJLFNBQUEsQ0FBYXVHLFNBQWIsQ0FBbUJpQyxTQUFuQixDLEVBTkosQyxDQVFBcEosQ0FBQSxDQUFFMkUsUUFBRixFLElBQUEsRSxnQkFBQSxDQUF3QixTQUFVMEUsU0FBVixDLDJCQUVoQixDQUFDckosQ0FBQSxDQUFFcUosU0FBQSxDLGdCQUFBLENBQUYsRSxnQkFBQSxFQUF3QmxDLFNBQUEsQyxnQkFBQSxDQUF4QixFLGdCQUFBLEMsRUFDREEsU0FBQSxDLGdCQUFBLEUsTUFBQSxHLEVBSFIsQyxFQWhjeUIsQ0FBakMsQyxFQWZKLENBeWRNbUMsUUFBQSxDQUFjLENBQUNDLFNBQUQsQ0FBS0MsU0FBTCxDQUFlQyxTQUFmLEdBQXNDclQsU0FBQSxDQUFVLEssR0FBVixDQUFrQixDQUFDbVQsU0FBRCxDQUFLQyxTQUFMLENBQWVDLFNBQWYsQ0FBbEIsQ0FBc0QsSyxHQUF0RCxDQUE4RCxVQUFXLENBQUVyUSxZQUFBLENBQUFzUSxTQUFGLENBQWdCcFEsUUFBQSxDQUFBcVEsU0FBaEIsQ0FBMEJuUSxPQUFBLENBQUFvUSxTQUExQixDQUFYLENBQWdEQyxTQUFoRCxDQUF3REMsU0FBeEQsQywyQkFDOUdDLFNBQUEsQ0FBVUgsUyxrQkFDVkksU0FBQSxDQUFTRCxTLGtCQUNURSxTQUFBLENBQU8sTUFBTWhRLEtBQUEsQ0FBTStQLFNBQU4sQ0FBVyxDLFFBQzFCLEMsZ0JBRDBCLEMsTUFFMUIsQ0FBTTlQLElBQUEsQyxnQkFBQSxFQUFlLEMsY0FDakIsQ0FBQXdQLFNBRGlCLEMsVUFFakIsQ0FBQUMsU0FGaUIsQyxRQUdqQixDQUFBRSxTQUhpQixDLGtCQUlqQixDQUFBQyxTQUppQixDQUFmLENBRm9CLEMsU0FRMUIsQ0FBUyxDLGNBQUUsQyxnQkFBRixDQVJpQixDQUFYLEMsSUFVZkcsU0FBQSxDLGdCQUFBLEksTUFDQTlQLE9BQUEsQyxnQkFBQSxFLHFDQUFBLENBQTBDOFAsU0FBQSxDLGdCQUFBLENBQTFDLENBQXVEQSxTQUFBLEMsWUFBQSxDQUF2RCxFQUNBLE1BQU1DLFNBQUEsQ0FBTSxDLFlBQ1IsQyxnQkFEUSxDLGlCQUVSLENBQWlCTCxTQUZULENBQVosQyxPQUlPSyxTLEVBRVgvUCxPQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUEwQjhQLFNBQUEsQyxnQkFBQSxDQUExQixDQUF1Q0EsU0FBQSxDLGdCQUFBLENBQXZDLEVBQ0EsTUFBTUUsU0FBQSxDQUFXLE1BQU1GLFNBQUEsQyxnQkFBQSxHQUF2QixDLE9BQ09FLFMsRUF2QitDLENBemQxRCxDQW1mQSxTQUFTQyxTQUFULENBQXVCQyxTQUF2QixDQUErQkMsU0FBL0IsQ0FBb0NDLFNBQXBDLENBQTBDQyxTQUExQyxDLDJCQUNVQyxTQUFBLENBQWN6SyxDQUFBLEMsSUFBTXFLLFMsaUJBQU4sQyxDQUNkSyxTQUFBLENBQWMxSyxDQUFBLEMsSUFBTXFLLFMsaUJBQU4sQyxDQUNkTSxTQUFBLENBQWMzSyxDQUFBLEMsSUFBTXFLLFMsaUJBQU4sQyxDQUNkTyxTQUFBLENBQVc1SyxDQUFBLEMsSUFBTXFLLFMsaUJBQU4sQyxDQUNqQixJQUFJUSxTQUFBLEMsR0FBSixDQUNBSixTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsZ0JBQUEsRyxDQUNBQyxTQUFBLEMsTUFBQSxHLENBQ0FMLFNBQUEsQyxJQUFBLEUsZ0JBQUEsQ0FBZ0IsSSw4QkFDUk8sUyxDQUNBLE9BQ0pBLFNBQUEsQyxLQUNBRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FBLFNBQUEsQyxnQkFBQSxFLDhCQUFBLEMsQ0FDQUYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FFLFNBQUEsQyxnQkFBQSxFLEVBQUEsQ0FMQSxDQU1BLE1BQU0sQ0FBRUUsSUFBQSxDQUFBQyxTQUFGLENBQVFDLEdBQUEsQ0FBQUMsU0FBUixFQUFnQlYsU0FBQSxFQUF0QixDQUVBdFEsS0FBQSxDQUFNZ1IsU0FBTixDQUFXLEMsUUFDUCxDLE1BRE8sQyxTQUVQLENBQVMsQyxjQUNMLEMsZ0JBREssQ0FGRixDLE1BS1AsQ0FBTS9RLElBQUEsQyxnQkFBQSxFQUFlNlEsU0FBZixDQUxDLENBQVgsRSxnQkFBQSxFQU9XRyxTQUFELEVBQVVBLFNBQUEsQyxnQkFBQSxHQVBwQixFLGdCQUFBLEVBUVdDLFNBQUQsRSwyQkFDTk4sU0FBQSxDLElBQ0FGLFNBQUEsQyxNQUFBLEcsQ0FDQXhRLE9BQUEsQyxnQkFBQSxFQUFZRCxJQUFBLEMsV0FBQSxFQUFlaVIsU0FBZixDQUFxQixJQUFyQixDLE1BQUEsQ0FBWixDQUZBLEMsR0FHSUEsU0FBQSxDLGdCQUFBLEksS0FDQVYsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLENBQ0FFLFNBQUEsQyxnQkFBQSxFQUFjTyxTQUFBLEMsZ0JBQUEsRSxTQUFBLEUsTUFBQSxDLE1BQUEsQ0FBZCxDLENBQ0FYLFNBQUEsQ0FBUyxJQUFULENBQWVXLFNBQWYsQyxNQUdBLE1BQU1DLFNBQUEsQ0FBU0MsU0FBRCxFQUFTLENBQUNBLFNBQUQsQyxFQUFBLENBRWpCQSxTQUFBLEMsZ0JBQUEsRSxNQUFBLEUsS0FBQSxFQUVRQyxTQUFELEUsaUJBQWFBLFMsaUJBRnBCLEUsZ0JBQUEsRSxNQUFBLENBRk4sQ0FNTUMsU0FBQSxDQUFVQyxTQUFELEVBQVVDLEtBQUEsQyxnQkFBQSxFQUFjRCxTQUFkLEVBQXFCQSxTQUFBLEMsZ0JBQUEsRUFBUUosU0FBUixFLGdCQUFBLEUsTUFBQSxDQUFyQixDQUFpREEsU0FBQSxDQUFNSSxTQUFOLENBTjFFLENBT0FmLFNBQUEsQyxVQUFBLEUsZ0JBQUEsQyxDQUNBQyxTQUFBLEMsZ0JBQUEsRSxNQUFBLEMsQ0FDQUUsU0FBQSxDLGdCQUFBLEVBQWNXLFNBQUEsQ0FBT0osU0FBQSxDLGdCQUFBLENBQVAsRUFBdUJJLFNBQUEsQ0FBT0osU0FBQSxDLGdCQUFBLENBQVAsQ0FBckMsQyxDQUNBWCxTQUFBLENBQVMsSUFBSTVTLEtBQUosQ0FBVXVULFNBQUEsQyxnQkFBQSxDQUFWLENBQVQsQ0FBaUNBLFNBQWpDLEMsR0E3QlIsRSxPQUFBLEVBZ0NZTyxTQUFELEUsMkJBQ1BiLFNBQUEsQyxJQUNBRixTQUFBLEMsVUFBQSxFLE1BQUEsQyxDQUNBRixTQUFBLEMsVUFBQSxFLGdCQUFBLEMsQ0FDQUMsU0FBQSxDLGdCQUFBLEUsTUFBQSxDLENBQ0FFLFNBQUEsQyxNQUFBLEUsZ0JBQWMsQ0FBb0JjLFNBQUEsQyxnQkFBQSxDQUFsQyxDLENBQ0F2UixPQUFBLEMsS0FBQSxFLEtBQUEsQ0FBbUJ1UixTQUFuQixDLENBQ0FsQixTQUFBLENBQVNrQixTQUFULENBQWMsSUFBZCxDLEVBdkNKLEMsRUFYSixDLEVBaUVKLE1BQU1DLFNBQUEsQ0FBd0IsSSwyQkFDcEJDLFNBQUEsQ0FBWTVMLENBQUEsQyxnQkFBQSxDLENBQ1o2TCxTQUFBLENBQWFELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBVTNPLEdBQUEsQyxnQkFBQSxFLE1BQUEsRUFBZTBPLFNBQWYsQyxJQUNaLENBQUNDLFMsQ0FDRCxPQUFPakssU0FBUCxDQUdKLE1BQU0sQ0FBRXZJLFFBQUEsQ0FBQXlTLFNBQUYsQ0FBWUMsWUFBQSxDQUFBQyxTQUFaLENBQTBCQyxjQUFBLENBQUFDLFNBQTFCLENBQTBDQyxnQkFBQSxDQUFBQyxTQUExQyxDQUE0REMsV0FBQSxDQUFBQyxTQUE1RCxDQUF5RUMsZ0JBQUEsQ0FBQUMsU0FBekUsRUFBOEZYLFNBQXBHLENBQ01ZLFNBQUEsQ0FBVyxDLFVBQ2IsQ0FBQVgsU0FEYSxDLGNBRWIsQ0FBQUUsU0FGYSxDLGdCQUdiLENBQUFFLFNBSGEsQyxrQkFJYixDQUFBRSxTQUphLEMsYUFLYixDQUFBRSxTQUxhLEMsa0JBTWIsQ0FBQUUsU0FOYSxDQURqQixDLE9BU09DLFMsRUFqQlgsQ0FtQk1DLFNBQUEsQ0FBd0IsSSwyQkFDcEJDLFNBQUEsQ0FBWTVNLENBQUEsQyxnQkFBQSxDLENBQ1o2TSxTQUFBLENBQWFELFNBQUEsQyxnQkFBQSxHLENBQ2JFLFNBQUEsQ0FBYW5CLFNBQUEsRSxJQUNmLENBQUNtQixTLFFBQ01qTCxTLENBRVgsTUFBTWtMLFNBQUEsQ0FBbUJELFNBQUEsQyxnQkFBQSxDQUF6QixDLE9BQ08vUyxNQUFBLEMsUUFBQSxFQUFjLEMsa0JBQUUsQ0FBQWdULFNBQUYsQyxJQUFvQixDQUFJRixTQUF4QixDQUFkLENBQW9EQyxTQUFwRCxDLEVBM0JYLENBNkJNRSxTQUFBLENBQStCLEksT0FDMUIsQyxjQUNILENBQWNMLFNBRFgsQyxFQTlCWCxDQW1DQXhQLEdBQUEsQyxnQkFBQSxFLGNBQUEsRSxnQkFBQSxDQUE2QyxDLFVBQ3pDLEMsT0FEeUMsQyxPQUV6QyxDLGdCQUZ5QyxDLE9BR3pDLEMsT0FIeUMsQyxNQUl6QyxDLGdCQUp5QyxDLGNBS3pDLEMsZ0JBTHlDLEMsVUFNekMsQ0FBVSxDLFFBQ04sQ0FBUSxDLE9BQUUsQyxHQUFGLENBREYsQyxRQUVOLENBQVEsQyxPQUFFLEMsR0FBRixDQUZGLEMsTUFJTixDQUFNLEMsT0FBRSxDLEVBQUYsQ0FKQSxDLFVBS04sQ0FBVSxDLE9BQUUsQyxFQUFGLEMsVUFBYSxDLElBQWIsQyxNQUE2QixDLGlCQUE3QixDQUxKLEMsUUFNTixDQUFRLEMsT0FBRSxDLGdCQUFGLEMsVUFBaUIsQyxJQUFqQixDQU5GLEMsVUFRTixDQUFVLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDQVJKLEMsVUFTTixDQUFVLEMsT0FBRSxDLEVBQUYsQyxVQUFhLEMsSUFBYixDQVRKLENBTitCLEMsU0FrQnpDLEMsR0FsQnlDLEMsT0FtQnpDLEUsa0NBQ1csSyxnQkFBQSxHLGtCQXBCOEIsQyxZQXNCekMsRSxrQ0FDVyxLLGdCQUFBLEUsZ0JBQUEsQyxJQXZCOEIsQyxlQXlCekMsRSwyQkFDVThQLFNBQUEsQ0FBTyxJLENBQ2JwSixTQUFBLEUsQ0FDQW9KLFNBQUEsQyxnQkFBQSxFLEdBREEsQ0FLQSxJQUFJQyxTQUFBLENBQVksRUFBaEIsQ0FFQSxNQUFNQyxTQUFBLENBQVluTixDQUFBLEMsc0JBQUEsQ0FBbEIsQ0FDTW9OLFNBQUEsQ0FBWXBOLENBQUEsQyxzQkFBQSxDQURsQixDQUVNcU4sU0FBQSxDQUEyQnJOLENBQUEsQyxnQkFBQSxDQUZqQyxDQUdNc04sU0FBQSxDQUE0QnROLENBQUEsQyxnQkFBQSxDQUhsQyxDQUlNdU4sU0FBQSxDQUFldk4sQ0FBQSxDLGdCQUFBLENBSnJCLENBS0FtTixTQUFBLEMsZ0JBQUEsRUFBc0JwVCxNQUFBLEMsZ0JBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQmlULFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFFBQUUsQ0FBT1EsU0FBUCxDLGtDQUMxRUEsU0FBQSxDLGdCQUFBLEksa0JBRHdFLENBQWpFLENBQXRCLEMsQ0FHQUosU0FBQSxDLGdCQUFBLEVBQXNCclQsTUFBQSxDLFFBQUEsRUFBY0EsTUFBQSxDLGdCQUFBLEVBQWMsRUFBZCxDQUFrQmlULFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFlBQUUsQ0FBWSxVLFFBQ3RGNVcsU0FBQSxDQUFVLElBQVYsQ0FBZ0IsSyxHQUFoQixDQUF3QixLLEdBQXhCLENBQWdDLFcseUJBQzdCcVgsU0FBQSxDQUFPcEwsU0FBQSxDQUFlLElBQWYsQyxDQUViLElBQUlxTCxTQUFBLENBQXFCUCxTQUFBLEMsZ0JBQUEsRSxXQUFBLENBQXpCLEMsR0FDSSxDQUFDTyxTLEVBQ0QsTUFBTUMsU0FBQSxDQUFXUixTQUFBLEMsZ0JBQUEsR0FBakIsQ0FLQSxHLENBQ0ksTUFBTVMsU0FBQSxDQUFJLE1BQU10RSxRQUFBLENBQVltRSxTQUFaLENBQWtCRSxTQUFsQixDQUFoQixDLEdBQ0lDLFNBQUEsQyxnQkFBQSxJLHdCQUNPLEksQ0FFWEYsU0FBQSxDQUFxQixDLFFBQ2pCLENBQVFFLFNBQUEsQyxnQkFBQSxDQURTLEMsWUFFakIsQ0FBWUEsU0FBQSxDLGdCQUFBLENBRkssQyxXQUlqQixDLGdCQUppQixDLGdCQUtqQixDLGdCQUxpQixDLGFBTWpCLENBQWEsQyxNQUFFLEMsRUFBRixDQU5JLEMsRUFTekIsTUFBT0MsU0FBUCxDLENBQ0kxVCxPQUFBLEMsZ0JBQUEsRUFBWTBULFNBQVosQyxVQUdESCxTLEVBNUJKLEMsRUFEd0UsQyxRQStCaEYsQ0FBT0ksU0FBUCxDLGtDQUNRQSxTQUFBLEMsZ0JBQUEsSSxRQUFBLEVBQW1DQSxTQUFBLEMsZ0JBQUEsSSxrQkFoQ3FDLEMsY0FrQ25GLENBQWFDLFNBQWIsQyxrQ0FDV0EsU0FBQSxDLGdCQUFBLEksa0JBbkN3RSxDQUFqRSxDQUF0QixDLENBcUNBWixTQUFBLEMsSUFBQSxFLGdCQUFBLENBQXVCLEksMkJBQ25CQyxTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDLEVBREosQ0F4Q0EsQ0EyQ0EsU0FBU1ksU0FBVCxDQUF5QkMsU0FBekIsQ0FBb0NDLFNBQXBDLENBQTJDQyxTQUEzQyxDLDJCQUNVQyxTQUFBLENBQU9wTyxDQUFBLEMsdUNBQUEsRSxnQkFBQSxFQUEyQ2lPLFNBQTNDLEMsQ0FFYmpPLENBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQ1NtTyxTQUFBLEMsZ0JBQUEsRyxFQURULEUsZ0JBQUEsRUFFUyxDLE9BQUUsQyxNQUFGLENBRlQsRSxVQUFBLEVBR2NDLFNBSGQsRUFJQSxNQUFNQyxTQUFBLENBQUluQixTQUFBLENBQVVpQixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxHQUFWLENBQVYsQ0FDTUcsU0FBQSxDQUFhLENBQUFELFNBQUEsQ0FBSUEsU0FBQSxDLFlBQUEsRSxnQkFBQSxHLEVBQUosQ0FBOEJGLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEdBQTlCLENBQUQsQ0FBMkQsQ0FBQUEsU0FBQSxDLGdCQUFBLEksR0FBQSxDLElBQUEsQyxFQUFBLENBRDdFLENBRUFuTyxDQUFBLEMsOEJBQUEsRSxnQkFBQSxFQUNTbU8sU0FBQSxDLGdCQUFBLEUsTUFBQSxHLEVBRFQsRSxLQUFBLEVBRVMsQyxPQUFFLEMsZ0JBQUYsQ0FGVCxFLGdCQUFBLEVBR2NDLFNBSGQsQyxDQUlBcE8sQ0FBQSxDLDhCQUFBLEUsZ0JBQUEsRUFDU3NPLFNBQUEsRSxFQURULEUsS0FBQSxFQUVTLEMsT0FBRSxDLEtBQUYsQ0FGVCxFLGdCQUFBLEVBR2NGLFNBSGQsQyxFQUtKZixTQUFBLEMsZ0JBQUEsRUFBc0MsQyxXQUNsQyxDLEdBRGtDLEMsUUFFbEMsQyxnQkFGa0MsQyxhQUdsQyxDLEdBSGtDLEMsU0FJbEMsQ0FBUWtCLFNBQVIsQ0FBbUJDLFNBQW5CLENBQXNCQyxTQUF0QixDLENBQ0lULFNBQUEsQ0FBZ0JPLFNBQWhCLENBQTJCQyxTQUEzQixDQUE4QkMsU0FBOUIsQyxFQUw4QixDQUF0QyxDLENBUUFuQixTQUFBLEMsY0FBQSxFQUF1QyxDLFdBQ25DLEMsR0FEbUMsQyxRQUVuQyxDLGdCQUZtQyxDLGFBR25DLEMsR0FIbUMsQyxTQUluQyxDQUFRb0IsU0FBUixDQUFtQkMsU0FBbkIsQ0FBc0JDLFNBQXRCLEMsQ0FDSVosU0FBQSxDQUFnQlUsU0FBaEIsQ0FBMkJDLFNBQTNCLENBQThCQyxTQUE5QixDLEVBTCtCLENBQXZDLENBUkEsQ0FnQkEsU0FBU0MsU0FBVCxDQUE2QkMsU0FBN0IsQ0FBbUNDLFNBQW5DLEMsMkJBQ0k1VSxPQUFBLEMsS0FBQSxFLGdCQUFBLENBQW1DNFUsU0FBQSxDLGdCQUFBLENBQW5DLEMsZ0JBQUEsQ0FBd0VBLFNBQXhFLEMsQ0FDQUQsU0FBQSxDLGdCQUFBLEUsZ0JBQUEsQ0FEQSxDQUVBLElBQUssSUFBSUUsU0FBQSxDLEdBQUosQ0FBV0EsU0FBQSxDQUFJRCxTQUFBLEMsZ0JBQUEsQ0FBcEIsQ0FBNENDLFNBQUEsRUFBNUMsQyxDQUNJRixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxDQUE2QkMsU0FBQSxDQUFnQkMsU0FBaEIsQ0FBN0IsQyxHQUdSM0IsU0FBQSxDLGdCQUFBLEcsQ0FDQUMsU0FBQSxDLE1BQUEsR0FEQSxDQUVBLElBQUkyQixTQUFBLENBQWMsRUFBbEIsQ0FDQSxNQUFNQyxTQUFBLENBQWFsUCxDQUFBLEMsZ0JBQUEsQ0FBbkIsQ0FDQWtQLFNBQUEsQyxnQkFBQSxHLENBQ0FBLFNBQUEsQyxJQUFBLEUsZ0JBQUEsQ0FBdUIsSSwyQkFFbkJDLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThCalYsSUFBQSxDLFdBQUEsRUFBZStVLFNBQWYsQ0FBOUIsQyxFQUZKLEMsQ0FLQTdFLFNBQUEsQyxnQkFBQSxDQUEwQm1ELFNBQTFCLENBQXdDLEtBQU8sQyxLQUMzQyxDLGdCQUQyQyxDLE1BRTNDLENBQU0sQyxjQUNGLENBQWNaLFNBQUEsRUFEWixDLFVBRUYsQ0FBVVEsU0FBQSxDLGdCQUFBLEdBRlIsQyxVQUdGLENBQVVDLFNBQUEsQyxnQkFBQSxHQUhSLENBRnFDLENBQVAsQ0FBeEMsQ0FPSSxDQUFDZ0MsU0FBRCxDQUFNQyxTQUFOLEcsOEJBQ0lELFMsQ0FDQSxPQUdKLE1BQU1FLFNBQUEsQ0FBcUJELFNBQUEsQyxnQkFBQSxDQUEzQixDQUNBbkMsU0FBQSxDQUFZbUMsU0FBQSxDLGdCQUFBLEMsQ0FDWmhDLFNBQUEsQyxnQkFBQSxHLENBQ0FDLFNBQUEsQyxNQUFBLEcsQ0FDQXVCLFNBQUEsQ0FBb0J4QixTQUFwQixDQUE4Q2lDLFNBQUEsQyxnQkFBQSxDQUE5QyxDLENBQ0FULFNBQUEsQ0FBb0J2QixTQUFwQixDQUErQ2dDLFNBQUEsQyxnQkFBQSxDQUEvQyxDLENBQ0FMLFNBQUEsQ0FBY0ksU0FBQSxDLDZCQUFBLEdBQW9DLEUsQ0FDbERILFNBQUEsQyxnQkFBQSxHLENBQ0FDLFNBQUEsQyxnQkFBQSxFLGdCQUFBLEVBQThCalYsSUFBQSxDLGdCQUFBLEVBQWUrVSxTQUFmLENBQTlCLEMsQ0FDQTlVLE9BQUEsQyxnQkFBQSxFLGdCQUFBLENBQW9CRCxJQUFBLEMsZ0JBQUEsRUFBZStVLFNBQWYsQ0FBcEIsQyxDQUNBOVUsT0FBQSxDLEtBQUEsRSxNQUFBLENBQW9Ca1YsU0FBcEIsQyxFQXRCSixDLEVBcklxQyxDLFlBOEp6QyxFLEVBOUp5QyxDQUE3QyxDLEVBN21DSixHIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBjaG9vc2VOb2RlSWQgPSAoZGF0YSwgbW9kZSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGEucmVxdWVzdGVkTm9kZUlkO1xuICAgICAgICB9XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfYWxpYXNlZCB8fCBkYXRhLmJwX2luZGV4ZWQ7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLm5vZGVJZF9hbGlhc2VkIHx8IGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfbnN1O1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWQ7XG4gICAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG1ha2VUb29sdGlwID0gKGRhdGEpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBgc3RhdHVzQ29kZTogJHtkYXRhLnN0YXR1c0NvZGV9YDtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGxldCBzdHIgPSBbXTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlSWQ6ICR7ZGF0YS5ub2RlSWR9YCk7XG4gICAgICAgICAgICBzdHIucHVzaChgYnJvd3NlIHBhdGg6ICR7ZGF0YS5icF9pbmRleGVkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYG5vZGUgY2xhc3M6ICR7Tm9kZUNsYXNzW2RhdGEubm9kZUNsYXNzXX1gKTtcbiAgICAgICAgICAgIGlmIChkYXRhLm5vZGVJZF9uc3UpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgbnN1IG5vZGVJZDogJHtkYXRhLm5vZGVJZF9uc3V9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfYWxpYXNlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIE5vZGVJZDogJHtkYXRhLm5vZGVJZF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEuYnBfaW5kZXhlZCkge1xuICAgICAgICAgICAgICAgIHN0ci5wdXNoKGBhbGlhc2VkIGJyb3dzZVBhdGg6ICR7ZGF0YS5icF9hbGlhc2VkfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHN0ci5qb2luKFwiXFxuXCIpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNb2RlKGVuaGFuY2VkTm9kZUlkKSB7XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXm5zdT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibnN1Tm9kZUlEXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKG5zPS4qOyk/KGl8YnxzfGcpPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJub2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc2E9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImFsaWFzZWROb2RlSWRcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLilbMC05XSs6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL14oXFwvfFxcLikuKjovKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwiYnJvd3NlUGF0aFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZpZ3VyZU91dE1lblVJdGVtVmFsdWUoc3RyKSB7XG4gICAgICAgIGNvbnN0IG1vZGUgPSBmaWd1cmVPdXRNb2RlKHN0cik7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHRvTW9kZSh2KSB7XG4gICAgICAgIGxldCBtb2RlO1xuICAgICAgICBzd2l0Y2ggKHYpIHtcbiAgICAgICAgICAgIGNhc2UgXCJuXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibmFcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwibnN1XCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwibnN1Tm9kZUlEXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgXCJhYlwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcImFsaWFzZWRCcm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG1vZGU7XG4gICAgfVxuICAgIGZ1bmN0aW9uIGZyb21Nb2RlKG1vZGUpIHtcbiAgICAgICAgc3dpdGNoIChtb2RlKSB7XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiblwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuYVwiO1xuICAgICAgICAgICAgY2FzZSBcIm5zdU5vZGVJRFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5zdVwiO1xuICAgICAgICAgICAgY2FzZSBcImJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJiXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZEJyb3dzZVBhdGhcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJhYlwiO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ0XCI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgX2NhbGxDaGVja05vZGVJZCA9IChfYSwgbm9kZUlkXzEpID0+IF9fYXdhaXRlcih2b2lkIDAsIFtfYSwgbm9kZUlkXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBlSWQgPSBlbmRwb2ludE5vZGUuaWQ7XG4gICAgICAgIGNvbnN0IG4gPSBSRUQubm9kZXMubm9kZShlSWQpO1xuICAgICAgICBjb25zb2xlLmxvZyhuLm5hbWVzcGFjZUFsaWFzZXMpO1xuICAgICAgICBuLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBlbmRwb2ludE5vZGUubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGpzb24gPSAoeWllbGQgZGF0YS5qc29uKCkpO1xuICAgICAgICByZXR1cm4geyBqc29uLCBkYXRhIH07XG4gICAgfSk7XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoX2EsIG1vZGVfMSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG1vZGVfMSwgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBtb2RlLCAkaW5wdXRFbGVtZW50LCAkaW5mbykge1xuICAgICAgICBjb25zdCBlbmhhbmNlZE5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHsganNvbiwgZGF0YSB9ID0geWllbGQgX2NhbGxDaGVja05vZGVJZCh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgZW5oYW5jZWROb2RlSWQpO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBlbmhhbmNlZE5vZGVJZCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbHRpcCA9IG1ha2VUb29sdGlwKGpzb24pO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQuYXR0cihcInRpdGxlXCIsIHRvb2x0aXApO1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7ZW5oYW5jZWROb2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2Q7XG4gICAgICAgIGlmICghcmVmZXJlbmNlIHx8ICFyZWZlcmVuY2Uubm9kZUlkKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IGAoJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9KSAkeygoX2MgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm5hbWUpIHx8ICgoX2QgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZC50ZXh0KSB8fCBcIlwifWA7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpIGtleT1cIiR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfVwifT48c3BhbiBjbGFzcz1cInRyZWUtdGV4dFwiIHRpdGxlPSR7dGl0bGV9PjxpIGNsYXNzPVwiZmEgJHtpY29ufVwiIHN0eWxlPVwiY29sb3I6JHtjb2xvcn07XCI+PC9pPiAke3R9PC9zcGFuPjx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGZpbmRFbGVtZW50ID0gKG5vZGVJZCwgJHRyZWUpID0+IHtcbiAgICAgICAgcmV0dXJuICR0cmVlLmZpbmQoYGxpW2tleT1cIiR7bm9kZUlkfVwiXWApO1xuICAgIH07XG4gICAgY29uc3Qgc2VsZWN0U2luZ2xlID0gKHRoYXQsICRsaSkgPT4ge1xuICAgICAgICB0aGF0LiR0cmVlLmZpbmQoXCJsaSA+IC50cmVlLXRleHRcIikucmVtb3ZlQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICAgICAgLy8gY2xlYXIgYWxsIHNlbGVjdGVkIGl0ZW1zXG4gICAgICAgICRsaS5maW5kKFwiLnRyZWUtdGV4dDpmaXJzdFwiKS5hZGRDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgIH07XG4gICAgY29uc3QgYXV0b0V4cGFuZCA9ICh0aGF0LCBicm93c2VQYXRoLCAkdHJlZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIC8vIGV4cGFuZCB0aGUgdHJlZSB0byBzaG93IHRoZSBub2RlSWRcbiAgICAgICAgbGV0ICRjdXJyZW50ID0gJHRyZWUuY2hpbGRyZW4oXCI6Zmlyc3RcIik7XG4gICAgICAgIGJyb3dzZVBhdGgucmVsYXRpdmVQYXRoLmVsZW1lbnRzIHx8IFtdO1xuICAgICAgICBjb25zdCBub2RlSWRzID0gYnJvd3NlUGF0aC5ub2RlSWRzIHx8IFtdO1xuICAgICAgICBpZiAobm9kZUlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG4gb2Ygbm9kZUlkcykge1xuICAgICAgICAgICAgaWYgKCRjdXJyZW50Lmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gZXhwYW5kIGFuZCBzZWxlY3QgdGhlIHJpZ2h0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICB5aWVsZCBfZXhwYW5kTGkodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBmaW5kRWxlbWVudChuLCAkY3VycmVudCk7XG4gICAgICAgICAgICBpZiAoJGVsZW1lbnQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGN1cnJlbnQgPSAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGN1cnJlbnQpO1xuICAgICAgICBzY3JvbGxUb0xpKHRoYXQuJGRyb3Bkb3duLCAkY3VycmVudCk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gc2Nyb2xsVG9MaSgkY29udGFpbmVyLCAkdGFyZ2V0TGkpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBwb3NpdGlvbiBvZiB0aGUgdGFyZ2V0IGl0ZW0gcmVsYXRpdmUgdG8gaXRzIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBsaVBvcyA9ICR0YXJnZXRMaS5wb3NpdGlvbigpLnRvcDtcbiAgICAgICAgLy8gR2V0IHRoZSBjdXJyZW50IHNjcm9sbCBwb3NpdGlvbiBvZiB0aGUgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclNjcm9sbFRvcCA9ICRjb250YWluZXIuc2Nyb2xsVG9wKCk7XG4gICAgICAgIGlmIChjb250YWluZXJTY3JvbGxUb3AgPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiB0byBzY3JvbGwgdG8gKGN1cnJlbnQgc2Nyb2xsICsgaXRlbSdzIHBvc2l0aW9uKVxuICAgICAgICAvLyBBZGp1c3QgdGhpcyBjYWxjdWxhdGlvbiBiYXNlZCBvbiB5b3VyIG5lZWRzXG4gICAgICAgIGNvbnN0IHNjcm9sbFRvID0gY29udGFpbmVyU2Nyb2xsVG9wICsgbGlQb3MgLSAkY29udGFpbmVyLmhlaWdodCgpIC8gMiArICR0YXJnZXRMaS5oZWlnaHQoKSAvIDI7XG4gICAgICAgIC8vIFNjcm9sbCB0aGUgY29udGFpbmVyIHRvIGVuc3VyZSB0aGUgaXRlbSBpcyB2aXNpYmxlXG4gICAgICAgICRjb250YWluZXIuYW5pbWF0ZSh7XG4gICAgICAgICAgICBzY3JvbGxUb3A6IHNjcm9sbFRvLFxuICAgICAgICB9LCA1MDApOyAvLyBBZGp1c3QgdGhlIGR1cmF0aW9uICg1MDBtcykgYXMgbmVlZGVkXG4gICAgfVxuICAgIGNvbnN0IHJlYWNoU2VsZWN0aW9uID0gKHRoYXQsIHBhcmVudE5vZGUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCBub2RlSWQgPSB0aGF0LiRpbnB1dC52YWwoKTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIHJvb3ROb2RlSWQ6IHBhcmVudE5vZGUubm9kZUlkLFxuICAgICAgICAgICAgaXNUeXBlOiB0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmIHx8IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgIGNvbnN0IGJyb3dzZVBhdGggPSB5aWVsZCB3YWxrQmFja3dhcmQoZGF0YSwgb3B0aW9ucyk7XG4gICAgICAgIGlmICghYnJvd3NlUGF0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHlpZWxkIGF1dG9FeHBhbmQodGhhdCwgYnJvd3NlUGF0aCwgdGhhdC4kdHJlZSk7XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gc29ydCByZWZlcmVuY2UgICBieSBicm93c2VOYW1lXG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlcy5zb3J0KChhLCBiKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoKChfYSA9IGEuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5hbWUpIHx8IFwiXCIpLmxvY2FsZUNvbXBhcmUoKChfYiA9IGIuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IFwiXCIpOyB9KTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5hcHBlbmQoYDxsaT5lcnJvciAke2Vyci5tZXNzYWdlfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmZpbmQoXCIuc3Bpbm5lclwiKS5yZW1vdmUoKTtcbiAgICAgICAgICAgICRub2RlLnJlbW92ZUNsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGZ1bmN0aW9uIG1ha2VDb25uZWN0aW9uKHRoYXQpIHtcbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxuICAgIGZ1bmN0aW9uIF9leHBhbmRMaSh0aGF0LCAkbGkpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB5aWVsZCBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbGksIGYsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyb3JcIiwgZXJyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRQYXJlbnROb2RlID0ge1xuICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQgPSAoKSA9PiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBbIFRlbXBlcmF0dXJlICBdXG4gICAgICAgICAqICAgKCB0b29sdGlwIDogKC9PYmplY3RzL015U2Vuc29yKSAobnM9MTtzPVRlbXBlcmF0dXJlKSlcbiAgICAgICAgICogWyArIFtGb2xkZXJdIE9iamVjdHNdXG4gICAgICAgICAqIFsgICAgIFtPYmplY3RdIE15U2Vuc29yXVxuICAgICAgICAgKiBbICAgICAoICkgW1ZhcmlhYmxlXSBUZW1wZXJhdHVyZV1cbiAgICAgICAgICovXG4gICAgICAgICQud2lkZ2V0KFwic3RlcmZpdmUubm9kZUJyb3dzZXJcIiwge1xuICAgICAgICAgICAgLyogZGVmYXVsdCBvcHRpb25zICovXG4gICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiAoKSA9PiAoeyBlbmRwb2ludDogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0M1wiIH0pLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50OiAoKSA9PiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgcGFyZW50Tm9kZTogKCkgPT4gZGVmYXVsdFBhcmVudE5vZGUsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQuX19wYXJlbnROb2RlID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUuY2FsbCh0aGF0KSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGVzYyA9IHlpZWxkIGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBkZXNjO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fX3BhcmVudE5vZGUgPSBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGF0Ll9fcGFyZW50Tm9kZSB8fCBkZWZhdWx0UGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgLy8gYWxzbyByZXNldCBwYXJlbnQgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdGhhdDtcbiAgICAgICAgICAgICAgICAgICAgYS5fX3BhcmVudE5vZGUgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IHlpZWxkIHRoaXMucmVzb2x2ZVBhcmVudE5vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeShtb2RlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCBtb2RlLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbykudGhlbigoc3VjY2VzcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwiaW5wdXQtZXJyb3JcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5yZW1vdmVDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2hpZGVNZW51KG1lbnUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vZmYoXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIpO1xuICAgICAgICAgICAgICAgIG1lbnUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAobWVudS5vcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmZpbmQoJ2lucHV0W3R5cGU9XCJjaGVja2JveFwiXScpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQodGhpcykucHJvcChcImNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC5wdXNoKCQodGhpcykuZGF0YShcInZhbHVlXCIpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuY2FsbGJhY2soc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhhdC4kZWxlbWVudERpdi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgLy94eCB9IGVsc2UgaWYgKHRoaXMuJG9wdGlvblNlbGVjdFRyaWdnZXIuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvL3h4ICAgICB0aGF0LiRvcHRpb25TZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlTWVudShtZW51T3B0aW9ucywgb3B0cywgY2FsbGJhY2spIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVudSA9ICQoXCI8ZGl2PlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLXR5cGVkSW5wdXQtb3B0aW9ucyBzdGVyZml2ZS1vbmxpbmUtbWVudVwiKTtcbiAgICAgICAgICAgICAgICBtZW51Lm9wdHMgPSBvcHRzO1xuICAgICAgICAgICAgICAgIG1lbnUuY2FsbGJhY2sgPSBjYWxsYmFjaztcbiAgICAgICAgICAgICAgICBtZW51T3B0aW9ucy5mb3JFYWNoKChvcHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBvcHQgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wdCA9IHsgdmFsdWU6IG9wdCwgbGFiZWw6IG9wdCB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHZhciBvcCA9ICQoJzxhIGhyZWY9XCIjXCI+PC9hPicpLmF0dHIoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpLmFwcGVuZFRvKG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC5sYWJlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC50aXRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AucHJvcChcInRpdGxlXCIsIG9wdC50aXRsZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAob3B0Lmljb24uaW5kZXhPZihcIjxcIikgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKG9wdC5pY29uKS5wcmVwZW5kVG8ob3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAob3B0Lmljb24uaW5kZXhPZihcIi9cIikgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIjxpPlwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzOiBcInJlZC11aS10eXBlZElucHV0LWljb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IFwibWFzay1pbWFnZTogdXJsKFwiICsgb3B0Lmljb24gKyBcIik7IC13ZWJraXQtbWFzay1pbWFnZTogdXJsKFwiICsgb3B0Lmljb24gKyBcIik7XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwgeyBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIFwiICsgb3B0Lmljb24gfSkucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLmNzcyh7IHBhZGRpbmdMZWZ0OiBcIjE4cHhcIiB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoIW9wdC5pY29uICYmICFvcHQubGFiZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnRleHQob3B0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgY2I7XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYiA9ICQoJzxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj4nKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jc3MoXCJwb2ludGVyLWV2ZW50c1wiLCBcIm5vbmVcIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZGF0YShcInZhbHVlXCIsIG9wdC52YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAucHJlcGVuZFRvKG9wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcIm1vdXNlZG93blwiLCBmdW5jdGlvbiAoZXZ0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBvcC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHRzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2sob3B0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNiLnByb3AoXCJjaGVja2VkXCIsICFjYi5wcm9wKFwiY2hlY2tlZFwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogXCJub25lXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgbWVudS5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZ0LmtleUNvZGUgPT09IDQwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIERPV05cbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2hpbGRyZW4oXCI6Zm9jdXNcIikubmV4dCgpLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChldnQua2V5Q29kZSA9PT0gMzgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVVBcbiAgICAgICAgICAgICAgICAgICAgICAgICQodGhpcykuY2hpbGRyZW4oXCI6Zm9jdXNcIikucHJldigpLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChldnQua2V5Q29kZSA9PT0gMjcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVTQ0FQRVxuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1lbnU7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGlzYXJtQ2xpY2s6IGZhbHNlLFxuICAgICAgICAgICAgX3Nob3dNZW51KG1lbnUsIHJlbGF0aXZlVG8pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kaXNhcm1DbGljaykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc2FybUNsaWNrID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHZhciBwb3MgPSByZWxhdGl2ZVRvLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgIHZhciBoZWlnaHQgPSByZWxhdGl2ZVRvLmhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHZhciBtZW51SGVpZ2h0ID0gbWVudS5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgdG9wID0gaGVpZ2h0ICsgcG9zLnRvcDtcbiAgICAgICAgICAgICAgICBpZiAodG9wICsgbWVudUhlaWdodCAtICQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpID4gJCh3aW5kb3cpLmhlaWdodCgpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcCAtPSB0b3AgKyBtZW51SGVpZ2h0IC0gJCh3aW5kb3cpLmhlaWdodCgpICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRvcCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5oZWlnaHQobWVudUhlaWdodCArIHRvcCk7XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG1lbnUuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiB0b3AgKyBcInB4XCIsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IHBvcy5sZWZ0ICsgXCJweFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUuc2xpZGVEb3duKDEwMCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGVsYXkoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcIm1vdXNlZG93bi5yZWQtdWktdHlwZWRJbnB1dC1jbG9zZS1wcm9wZXJ0eS1zZWxlY3RcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KG1lbnUpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX2hpZGVNZW51KG1lbnUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHJlbGF0aXZlVG8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuZGlzYXJtQ2xpY2sgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9zaG93VHlwZU1lbnUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvd01lbnUodGhhdC4kbWVudSwgdGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0eXBlID0gdGhhdC5zZWxlY3RlZE1lbnVJdGVtO1xuICAgICAgICAgICAgICAgIHZhciBzZWxlY3RlZCA9IHRoYXQuJG1lbnUuZmluZChcIlt2YWx1ZT0nXCIgKyB0eXBlICsgXCInXCIpO1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfSwgMTIwKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfaW5pdE1lbnUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5hdHRyKFwidGFiaW5kZXhcIiwgLTEpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtZm9jdXMtYmxvY2tcIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAodGhhdC4kbWVudSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRtZW51LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBmYS1pZC1jYXJkXG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZUxpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwidGV4dFwiLCB2YWx1ZTogXCJ0XCIsIHRpdGxlOiBcIlZhbHVlIGlzIG5vdCB2ZXJpZmllZFwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1mb250XCIvaT4gJyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJtc2cuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJtc2dcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIm5vZGUgaWQgb3IgIGJyb3dzZSBwYXRoIGNvbWVzIGZyb20gaW5qZWN0ZWQgbXNnIHBhcmFtZXRlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZW52ZWxvcGUtb3Blbi1vXCIvPicsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiTm9kZUlkXCIsIHZhbHVlOiBcIm5cIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtdGFnXCIvPjEgJm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJBbGlhc2VkIE5vZGVJZFwiLCB2YWx1ZTogXCJuYVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1ib29rbWFya1wiLz4mbmJzcDsgJyB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZCB3aXRoIG5hbWVzcGFjZSBVcm5cIiwgdmFsdWU6IFwibnN1XCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWlkLWNhcmRcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJCcm93c2VQYXRoXCIsIHZhbHVlOiBcImJcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtdGFnXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogXCJBbGlhc2VkIEJyb3dzZSBQYXRoXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJhYlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+PGkgY2xhc3M9XCJmYSBmYS1maWdodGVyLWpldFwiLz4mbmJzcDsnLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICAgICAgY29uc3QgYSA9IGZpZ3VyZU91dE1lblVJdGVtVmFsdWUodGhhdC4kaW5wdXQudmFsKCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB0eXBlTGlzdC5maW5kKCh4KSA9PiB4LnZhbHVlID09PSBhKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbC5lbXB0eSgpLmFwcGVuZChgPHNwYW4gdGl0bGU9JHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLnRpdGxlKSB8fCBcIlwifT4mbmJzcDsgJHsoZSA9PT0gbnVsbCB8fCBlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBlLmljb24pIHx8IFwiXCJ9PC9zcGFuPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IGE7XG4gICAgICAgICAgICAgICAgY29uc3QgdHQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUgPSB0aGlzLl9jcmVhdGVNZW51KHR5cGVMaXN0LCB7fSwgKHYpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kZSA9IHRvTW9kZSh2KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG9uIE1lbnUgc2VsZWN0ZWQgIVxuICAgICAgICAgICAgICAgICAgICAgICAgdHQudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSB0eXBlTGlzdC5maW5kKCh4KSA9PiB4LnZhbHVlID09PSB2KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gdjtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpO1xuICAgICAgICAgICAgICAgIHRoYXQuJG1lbnUuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuc2hvdygpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG1vZGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRvTW9kZSh0aGF0LnNlbGVjdGVkTWVudUl0ZW0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNldE1vZGUobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHMgPSBmcm9tTW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBzO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgLy8gZGVidWdnZXI7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuY3NzKFwiYm9yZGVyXCIsIFwibm9uZVwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGVsZW1lbnREaXYgPSB0aGF0LiRpbnB1dC53cmFwKFwiPGRpdj5cIikucGFyZW50KCkuYWRkQ2xhc3MoXCJtYWluLXdyYXBwZXJcIik7XG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBDb21ibyBicm93c2VyXG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZpdmUtY29tYm8tYm94XCIpO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtaW5wdXQtd3JhcFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5yZXBsYWNlV2l0aCh0aGF0LiRjb21ibyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cCA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJpbnB1dC1ncm91cFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5wdXRHcm91cCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kaW5wdXQpO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIGFkZCBidXR0b24gb24gdGhlIHJpZ2h0IHNpZGVcbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRvZ2dsZVRyZWVCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR0b2dnbGVUcmVlQnRuID0gJChgPGJ1dHRvbiB0aXRsZT1cIm9wZW4gT1BDVUEgQWRkcmVzc1NwYWNlIEJyb3dzZXJcIj48aSBjbGFzcz1cImZhIGZhLXNpdGVtYXBcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYWZ0ZXIodGhhdC4kdG9nZ2xlVHJlZUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0bi5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGRyb3Bkb3duLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0cmVlIHdpZGdldCBpcyBnb2luZyB0byBiZWNvbWUgdmlzaWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE5vZGUgPSB5aWVsZCB0aGF0LnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudE5vZGUgIT09IHRoYXQuY3VycmVudFBhcmVudCB8fCAoKF9hID0gdGhhdC5jdXJyZW50UGFyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eubm9kZUlkKSAhPT0gcGFyZW50Tm9kZS5ub2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgdGhhdC5yZXNldCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRUb1JlYWNoU2VsZWN0aW9uICYmICh5aWVsZCByZWFjaFNlbGVjdGlvbih0aGF0LCBwYXJlbnROb2RlKSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHZlcmlmeUJ0blxuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJ2ZXJpZnkgbm9kZUlkIG9yIGJyb3dzZVBhdGhcIj48aSBjbGFzcz1cImZhIGZhLXJlZnJlc2hcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYWZ0ZXIodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkobW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICBjb25zdCBub3JtYWxpemVJbnB1dCA9IChpbnB1dCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGRhdGEsIGpzb24gfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTm9kZUlkID0gY2hvb3NlTm9kZUlkKGpzb24sIG1vZGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudmFsKHNlbGVjdGVkTm9kZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICAvLyBjcmVhdGUgdGhlIHByZXBlbmRlZCBidXR0b25cbiAgICAgICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0ID0gJChcIjxkaXY+XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5iZWZvcmUodGhhdC4kdWlTZWxlY3QpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyID0gJCgnPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgdGFiaW5kZXg9XCIwXCI+PC9idXR0b24+JykucHJlcGVuZFRvKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgJCgnPGkgY2xhc3M9XCJyZWQtdWktdHlwZWRJbnB1dC1pY29uIGZhIGZhLWNhcmV0LWRvd25cIj48L2k+JykudG9nZ2xlKHRydWUpLmFwcGVuZFRvKHRoYXQuJHNlbGVjdFRyaWdnZXIpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImtleWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIERvd25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9zaG93VHlwZU1lbnUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIC5vbihcImZvY3VzXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LmFkZENsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJibHVyXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHZhciBvcHQgPSB0aGF0LnR5cGVNYXBbdGhhdC5wcm9wZXJ0eVR5cGVdO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKG9wdC5oYXNWYWx1ZSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJHVpU2VsZWN0LnJlbW92ZUNsYXNzKFwicmVkLXVpLXR5cGVkSW5wdXQtZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RMYWJlbCA9ICQoJzxzcGFuIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtdHlwZS1sYWJlbFwiPjwvc3Bhbj4nKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5faW5pdE1lbnUoKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIHRlbXBvcmF0eSBpbmZvIHBhbmVsXG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gZHJvcCBkb3duIHRyZWVcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCkuYXBwZW5kVG8odGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kZHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgaW5wdXQgPSBgWyR7ZGlzcGxheU5hbWV9XSgke3ZhbHVlfSlgO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGUgPSB0aGF0Lm1vZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5vZGVJZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuc2V0TW9kZShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZUlucHV0KHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoZWNrTm9kZUlkID0gKF9hLCBub2RlSWRfMSwgbmFtZXNwYWNlQWxpYXNlc18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCBuYW1lc3BhY2VBbGlhc2VzXzFdLCB2b2lkIDAsIGZ1bmN0aW9uKiAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIG5vZGVJZCwgbmFtZXNwYWNlQWxpYXNlcykge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICBjb25zdCByZXMgPSB7XG4gICAgICAgICAgICAgICAgc3RhdHVzQ29kZTogXCJCYWROb01hdGNoXCIsXG4gICAgICAgICAgICAgICAgcmVxdWVzdGVkTm9kZUlkOiBub2RlSWQsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJlcztcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChudWxsLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgICAgICBvblJlc3VsdChlcnIsIG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgY29udGFpbmluZzpcbiAgICAgKiAgLSB0aGUgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksXG4gICAgICogIC0gdXNlcklkZW50aXR5VHlwZSxcbiAgICAgKiAgLSBjcmVkZW50aWFsc1xuICAgICAqICAtIG5hbWVzcGFjZUFsaWFzZXNcbiAgICAgKlxuICAgICAqIGV4dHJhY3RlZCBmcm9tIHRoZSB1aSB3aWRnZXQgI25vZGUtaW5wdXQtZW5kcG9pbnRcbiAgICAgKi9cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzLCBuYW1lc3BhY2VBbGlhc2VzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gcmV0VmFsdWU7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnROciA9IGdldEVuZFBvaW50QXR0cmlidXRlcygpO1xuICAgICAgICBpZiAoIWVuZHBvaW50TnIpIHtcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmFtZXNwYWNlQWxpYXNlcyA9IGVuZHBvaW50TnIubmFtZXNwYWNlQWxpYXNlcztcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oeyBuYW1lc3BhY2VBbGlhc2VzLCBpZDogZW5kcG9pbnRJZCB9LCBlbmRwb2ludE5yKTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItQ2FsbFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBwYWxldHRlTGFiZWw6IFwiY2FsbFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICBhY3Rpb246IHsgdmFsdWU6IFwicmVhZFwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gZm9yIGFjdGlvbiBjYWxsXG4gICAgICAgICAgICBtZXRob2RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG9iamVjdElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLCAvLyAyIG91dHB1dCwgc2Vjb25kIGZvciByYXcgbm9kZS1vcGN1YSBkaWFnbm9zdGljcyBvciBtb3JlIGNvbXBsZXRlIG1lc3NhZ2VcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEtQ2FsbFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN0aW9uIENhbGxcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBsZXQgZGF0YVR5cGVzID0ge307XG4gICAgICAgICAgICAvLyB0byBkbyBhZGQgYSB0eXBlc2NyaXB0IGRlZmluaXRpb24gZm9yIHRoaXNcbiAgICAgICAgICAgIGNvbnN0ICRvYmplY3RJZCA9ICQoXCIjbm9kZS1pbnB1dC1vYmplY3RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRtZXRob2RJZCA9ICQoXCIjbm9kZS1pbnB1dC1tZXRob2RJZFwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLWlucHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2Qtb3V0cHV0LWFyZ3VtZW50LWRlZmluaXRpb25cIik7XG4gICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdG4gPSAkKFwiI3ZhbGlkYXRlLWNhbGwtYXJndW1lbnRzLWJ1dHRvblwiKTtcbiAgICAgICAgICAgICRvYmplY3RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IHBhcmVudE5vZGU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG5lZWQgdG8gcmVzeW5jIHdpdGggd2hhdCdzIGluICAjbm9kZS1pbnB1dC1vYmplY3RJZFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHBhcmVudE9ialJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwYXJlbnRPYmpSZWZlcmVuY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBub2RlSWRFeCA9ICRvYmplY3RJZC52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAoIWVuZHBvaW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoZGF0YSwgbm9kZUlkRXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoci5zdGF0dXNDb2RlICE9PSBcIkdvb2RcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50T2JqUmVmZXJlbmNlID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiByLm5vZGVJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHIuYnJvd3NlTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpc3BsYXlOYW1lOiByLmJyb3dzZU5hbWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIiwgLy8gci5ub2RlQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogXCJucz0wO2k9MFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJcIiB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBhcmVudE9ialJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSwgZmlsdGVyKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCIgfHwgbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiTWV0aG9kXCI7XG4gICAgICAgICAgICAgICAgfSB9KSk7XG4gICAgICAgICAgICAkb2JqZWN0SWQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihcInJlc2V0XCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBsZXQgaW5wdXRBc0pzb24gPSB7fTtcbiAgICAgICAgICAgIGNvbnN0ICRjb3B5SW5wdXQgPSAkKFwiI2NvcHktaW5wdXRcIik7XG4gICAgICAgICAgICAkY29weUlucHV0LmhpZGUoKTtcbiAgICAgICAgICAgICRjb3B5SW5wdXQub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gQ29weSB0aGUgdGV4dCBpbnNpZGUgdGhlIHRleHQgZmllbGRcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIC8vIGFsZXJ0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSArIFwiIGNvcGllZCB0byBjbGlwYm9hcmRcIik7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJ2YWxpZGF0ZVwiLCAkdmFsaWRhdGVCdG4sICgpID0+ICh7XG4gICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvYXJndW1lbnREZWZpbml0aW9uXCIsXG4gICAgICAgICAgICAgICAgYm9keToge1xuICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycygpLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3RJZDogJG9iamVjdElkLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBtZXRob2RJZDogJG1ldGhvZElkLnZhbCgpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSwgKGVyciwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBwb3B1bGF0ZSB0aGUgbGlzdFxuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3VtZW50RGVmaW5pdGlvbiA9IGRhdGEuYXJndW1lbnREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGRhdGFUeXBlcyA9IGRhdGEuZGF0YVR5cGVzO1xuICAgICAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5zaG93KCk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkaW5wdXRBcmd1bWVudERlZmluaXRpb24sIGFyZ3VtZW50RGVmaW5pdGlvbi5pbnB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5zdGFsbEFyZ3VtZW50TGlzdCgkb3V0cHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24ub3V0cHV0QXJndW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpbnB1dEFzSnNvbiA9IGRhdGEuaW5wdXRBcmd1bWVudHNFeGFtcGxlQXNKc29uIHx8IHt9O1xuICAgICAgICAgICAgICAgICRjb3B5SW5wdXQuc2hvdygpO1xuICAgICAgICAgICAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJKU09OXCIsIEpTT04uc3RyaW5naWZ5KGlucHV0QXNKc29uKSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
(function(_0x901daf,_0x5c23f2){const _0x3c5171=_0x4c28,_0x5951b1=_0x901daf();while(!![]){try{const _0x1e95c7=parseInt(_0x3c5171(0x110))/0x1*(-parseInt(_0x3c5171(0x1ae))/0x2)+-parseInt(_0x3c5171(0xc7))/0x3+parseInt(_0x3c5171(0x1c8))/0x4*(parseInt(_0x3c5171(0x126))/0x5)+parseInt(_0x3c5171(0xd3))/0x6*(parseInt(_0x3c5171(0x13e))/0x7)+-parseInt(_0x3c5171(0xec))/0x8*(parseInt(_0x3c5171(0x193))/0x9)+parseInt(_0x3c5171(0x84))/0xa*(-parseInt(_0x3c5171(0x1a5))/0xb)+parseInt(_0x3c5171(0x14d))/0xc;if(_0x1e95c7===_0x5c23f2)break;else _0x5951b1['push'](_0x5951b1['shift']());}catch(_0x351704){_0x5951b1['push'](_0x5951b1['shift']());}}}(_0x3b88,0xda909),(function(){'use strict';const _0x15618f=_0x4c28;function _0x433e03(_0x1d41af,_0x267ecd,_0x63d0cd,_0x8ff9e5){function _0x54888e(_0x42302e){return _0x42302e instanceof _0x63d0cd?_0x42302e:new _0x63d0cd(function(_0x361e06){_0x361e06(_0x42302e);});}return new(_0x63d0cd||(_0x63d0cd=Promise))(function(_0x53967d,_0x2a4502){const _0x4b3f55=_0x4c28;function _0x5d0d76(_0x2c30fd){const _0x462efa=_0x4c28;try{_0x498a69(_0x8ff9e5[_0x462efa(0x142)](_0x2c30fd));}catch(_0x49f600){_0x2a4502(_0x49f600);}}function _0xdda03f(_0x161abf){const _0x295a54=_0x4c28;try{_0x498a69(_0x8ff9e5[_0x295a54(0x192)](_0x161abf));}catch(_0x2016fa){_0x2a4502(_0x2016fa);}}function _0x498a69(_0x3ade7b){const _0x42606b=_0x4c28;_0x3ade7b[_0x42606b(0x161)]?_0x53967d(_0x3ade7b[_0x42606b(0xcb)]):_0x54888e(_0x3ade7b[_0x42606b(0xcb)])[_0x42606b(0xe4)](_0x5d0d76,_0xdda03f);}_0x498a69((_0x8ff9e5=_0x8ff9e5['apply'](_0x1d41af,_0x267ecd||[]))[_0x4b3f55(0x142)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x2ce0ed,_0x450d25,_0x36c52e){const _0x12332b=_0x4c28;var _0x7705ce=new Error(_0x36c52e);return _0x7705ce[_0x12332b(0x151)]=_0x12332b(0x176),_0x7705ce[_0x12332b(0xc0)]=_0x2ce0ed,_0x7705ce[_0x12332b(0xcc)]=_0x450d25,_0x7705ce;};const _0x35fee3=_0x15618f(0xf1),_0x811dad=_0x15618f(0x105),_0x4bdcbe=_0x15618f(0xe8),_0x411e58='ns=0;i=46',_0x35a4af='ns=0;i=34',_0x2ddcd4=_0x15618f(0x190),_0x41c290=_0x15618f(0x8a);var _0xd38339;(function(_0x20e742){const _0x149824=_0x15618f;_0x20e742[_0x20e742['Forward']=0x0]='Forward',_0x20e742[_0x20e742[_0x149824(0x160)]=0x1]=_0x149824(0x160),_0x20e742[_0x20e742[_0x149824(0x1b7)]=0x2]=_0x149824(0x1b7),_0x20e742[_0x20e742['Invalid']=0x3]='Invalid';}(_0xd38339||(_0xd38339={})));var _0x32da3d;(function(_0x212e0d){const _0xdf55c9=_0x15618f;_0x212e0d[_0x212e0d[_0xdf55c9(0xbe)]=0x0]=_0xdf55c9(0xbe),_0x212e0d[_0x212e0d[_0xdf55c9(0x19d)]=0x1]=_0xdf55c9(0x19d),_0x212e0d[_0x212e0d[_0xdf55c9(0x1c5)]=0x2]=_0xdf55c9(0x1c5),_0x212e0d[_0x212e0d[_0xdf55c9(0x9b)]=0x4]=_0xdf55c9(0x9b),_0x212e0d[_0x212e0d['ObjectType']=0x8]=_0xdf55c9(0x177),_0x212e0d[_0x212e0d[_0xdf55c9(0x108)]=0x10]='VariableType',_0x212e0d[_0x212e0d[_0xdf55c9(0x1bf)]=0x20]=_0xdf55c9(0x1bf),_0x212e0d[_0x212e0d[_0xdf55c9(0x90)]=0x40]=_0xdf55c9(0x90),_0x212e0d[_0x212e0d[_0xdf55c9(0x194)]=0x80]=_0xdf55c9(0x194);}(_0x32da3d||(_0x32da3d={})));var _0x39c260;(function(_0x87b5a){const _0x114a7b=_0x15618f;_0x87b5a[_0x87b5a[_0x114a7b(0x19d)]=0x1]='Object',_0x87b5a[_0x87b5a['Variable']=0x2]='Variable',_0x87b5a[_0x87b5a[_0x114a7b(0x9b)]=0x4]='Method',_0x87b5a[_0x87b5a['ObjectType']=0x8]=_0x114a7b(0x177),_0x87b5a[_0x87b5a[_0x114a7b(0x108)]=0x10]=_0x114a7b(0x108),_0x87b5a[_0x87b5a['ReferenceType']=0x20]='ReferenceType',_0x87b5a[_0x87b5a[_0x114a7b(0x90)]=0x40]=_0x114a7b(0x90),_0x87b5a[_0x87b5a[_0x114a7b(0x194)]=0x80]=_0x114a7b(0x194);}(_0x39c260||(_0x39c260={})));var _0x4326ce;(function(_0x14b8e5){const _0x3fc969=_0x15618f;_0x14b8e5[_0x14b8e5[_0x3fc969(0x1bf)]=0x1]='ReferenceType',_0x14b8e5[_0x14b8e5['IsForward']=0x2]=_0x3fc969(0x86),_0x14b8e5[_0x14b8e5[_0x3fc969(0x154)]=0x4]='NodeClass',_0x14b8e5[_0x14b8e5['BrowseName']=0x8]=_0x3fc969(0x1b1),_0x14b8e5[_0x14b8e5['DisplayName']=0x10]=_0x3fc969(0x191),_0x14b8e5[_0x14b8e5[_0x3fc969(0x198)]=0x20]=_0x3fc969(0x198);}(_0x4326ce||(_0x4326ce={})));function _0x424c75(_0x319f15){const _0x3a66f6=_0x15618f;switch(_0x319f15){case _0x3a66f6(0x173):return _0x35fee3;case _0x3a66f6(0x107):return _0x411e58;case _0x3a66f6(0x121):return _0x4bdcbe;case'HasChild':return _0x35a4af;case _0x3a66f6(0x120):return _0x2ddcd4;case _0x3a66f6(0xf3):return _0x41c290;}}const _0x5a46e7=_0x39c41b=>{const _0x310ff8=_0x15618f;switch(_0x39c41b[_0x310ff8(0x195)]){case'Object':if(_0x39c41b['referenceTypeId']===_0x35fee3);if(_0x39c41b[_0x310ff8(0x1a4)]===_0x811dad||_0x39c41b[_0x310ff8(0x16d)]===_0x310ff8(0x94))return{'icon':_0x310ff8(0x117),'color':_0x310ff8(0xb9)};return{'icon':_0x310ff8(0x12d),'color':_0x310ff8(0x188)};case _0x310ff8(0x1c5):if(_0x39c41b[_0x310ff8(0x16d)]===_0x4bdcbe)return{'icon':_0x310ff8(0x1bd),'color':_0x310ff8(0xa9)};else return _0x39c41b[_0x310ff8(0x16d)]===_0x411e58?{'icon':_0x310ff8(0x1bd),'color':_0x310ff8(0xd7)}:{'icon':'fa-list-alt','color':_0x310ff8(0x8c)};case _0x310ff8(0x9b):return{'icon':_0x310ff8(0xa0),'color':_0x310ff8(0xea)};case _0x310ff8(0x177):return{'icon':_0x310ff8(0x12d),'color':_0x310ff8(0xaf)};case _0x310ff8(0x108):return{'icon':'fa-sliders','color':_0x310ff8(0xaf)};case _0x310ff8(0x90):return{'icon':_0x310ff8(0x15f),'color':_0x310ff8(0x8c)};}return{'icon':_0x310ff8(0x19e),'color':_0x310ff8(0x124)};},_0x16d04a=(_0x14c872,_0xf6a96b,_0x147e54)=>_0x433e03(void 0x0,[_0x14c872,_0xf6a96b,_0x147e54],void 0x0,function*({endpointNode:_0x138a29,endpoint:_0x3cb964,baseUrl:_0xf2a908},_0x319ce1,_0x546646){const _0x52e28f=_0x15618f,_0x256943=_0xf2a908+_0x52e28f(0x150),_0xebc31a=_0x256943+_0x52e28f(0x82),_0x3c8fde=Object[_0x52e28f(0x13a)](Object['assign']({},_0x546646),{'nodeId':_0x319ce1,'resultMask':0x3f}),_0x3f4bd2=yield fetch(_0xebc31a,{'method':_0x52e28f(0x99),'body':JSON[_0x52e28f(0x168)]({'endpointNode':_0x138a29,'endpoint':_0x3cb964,'browseDescription':_0x3c8fde}),'headers':{'Content-Type':_0x52e28f(0x132)}});if(_0x3f4bd2[_0x52e28f(0x1c4)]!==0xc8)return console[_0x52e28f(0x1af)](_0x52e28f(0xce),_0x3f4bd2['status'],_0x3f4bd2['statusText']),{'references':[]};const _0x26dae4=yield _0x3f4bd2[_0x52e28f(0x12b)](),_0x5d165f=_0x26dae4[_0x52e28f(0xb5)]['references']||[];return{'references':_0x5d165f};}),_0x418a58={'referenceTypeId':_0x424c75(_0x15618f(0xad)),'includeSubtypes':!![],'browseDirection':_0xd38339[_0x15618f(0x135)],'nodeClassMask':_0x32da3d[_0x15618f(0x1c5)]|_0x32da3d[_0x15618f(0x19d)]|_0x32da3d[_0x15618f(0x9b)],'resultMask':0x3f},_0x56fd82={'referenceTypeId':_0x424c75(_0x15618f(0x173)),'includeSubtypes':!![],'browseDirection':_0xd38339[_0x15618f(0x135)],'nodeClassMask':_0x32da3d['Variable']|_0x32da3d[_0x15618f(0x19d)]|_0x32da3d[_0x15618f(0x9b)],'resultMask':0x3f},_0xd468b2=(_0x13955b,_0x5f40d8)=>_0x433e03(void 0x0,[_0x13955b,_0x5f40d8],void 0x0,function*({endpointNode:_0xfe73b2,endpoint:_0x4701fa,baseUrl:_0x49d81f},{nodeId:_0x4cca11,rootNodeId:_0x1381d0,isType:_0x38f446}){const _0x11e19d=_0x15618f,_0x28f949=_0x49d81f+'/opcua-for-node-red',_0x475f7c=_0x28f949+_0x11e19d(0x15e),_0x6a291=yield fetch(_0x475f7c,{'method':_0x11e19d(0x99),'body':JSON[_0x11e19d(0x168)]({'endpointNode':_0xfe73b2,'endpoint':_0x4701fa,'nodeId':_0x4cca11,'rootNodeId':_0x1381d0,'isType':_0x38f446}),'headers':{'Content-Type':_0x11e19d(0x132)}});if(_0x6a291[_0x11e19d(0x1c4)]!==0xc8)return null;const _0x29a330=yield _0x6a291[_0x11e19d(0x12b)]();return _0x29a330['browsePath'];}),_0xb7a04e=(_0x47d10d,_0x282faa)=>{const _0x53faa0=_0x15618f;if(_0x47d10d['statusCode']!==_0x53faa0(0x1c0))return _0x47d10d[_0x53faa0(0xf6)];switch(_0x282faa){case _0x53faa0(0x95):return _0x47d10d[_0x53faa0(0xf2)];case _0x53faa0(0x199):return _0x47d10d[_0x53faa0(0x169)]||_0x47d10d[_0x53faa0(0xf2)];case _0x53faa0(0x1b3):return _0x47d10d[_0x53faa0(0x1b2)]||_0x47d10d[_0x53faa0(0xae)];case'nsuNodeID':return _0x47d10d[_0x53faa0(0xae)];default:case'nodeId':return _0x47d10d[_0x53faa0(0x16a)];}},_0x163145=_0x17bf86=>{const _0x3ca53b=_0x15618f;if(_0x17bf86['statusCode']!==_0x3ca53b(0x1c0))return _0x3ca53b(0xc3)+_0x17bf86[_0x3ca53b(0x116)];else{let _0x112242=[];return _0x112242[_0x3ca53b(0x167)](_0x3ca53b(0xf4)+_0x17bf86[_0x3ca53b(0x16a)]),_0x112242['push'](_0x3ca53b(0x144)+_0x17bf86['bp_indexed']),_0x112242[_0x3ca53b(0x167)](_0x3ca53b(0x1ac)+_0x32da3d[_0x17bf86[_0x3ca53b(0x195)]]),_0x17bf86[_0x3ca53b(0xae)]&&_0x112242[_0x3ca53b(0x167)](_0x3ca53b(0xbf)+_0x17bf86[_0x3ca53b(0xae)]),_0x17bf86[_0x3ca53b(0x1b2)]&&_0x112242['push'](_0x3ca53b(0x114)+_0x17bf86[_0x3ca53b(0x1b2)]),_0x17bf86[_0x3ca53b(0xf2)]&&_0x112242[_0x3ca53b(0x167)](_0x3ca53b(0xd9)+_0x17bf86['bp_aliased']),_0x112242[_0x3ca53b(0x11c)]('\x0a');}};function _0x1887a9(_0x5b076d){const _0x3d6614=_0x15618f;if(_0x5b076d['match'](/^nsu=/))return'nsuNodeID';if(_0x5b076d['match'](/^(ns=.*;)?(i|b|s|g)=/))return _0x3d6614(0x16a);if(_0x5b076d[_0x3d6614(0x10c)](/^nsa=/))return _0x3d6614(0x1b3);if(_0x5b076d[_0x3d6614(0x10c)](/^(\/|\.)[0-9]+:/))return _0x3d6614(0x95);if(_0x5b076d['match'](/^(\/|\.).*:/))return _0x3d6614(0x95);}function _0x2b74be(_0x41d3d0){const _0x5303fd=_0x15618f,_0x1cc722=_0x1887a9(_0x41d3d0);switch(_0x1cc722){case _0x5303fd(0x16a):return'n';case _0x5303fd(0x1b3):return'na';case _0x5303fd(0x9f):return _0x5303fd(0xf5);case _0x5303fd(0x95):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}function _0x4e1c25(_0xa6cf4){const _0x5a99d7=_0x15618f;let _0x3a920f;switch(_0xa6cf4){case'n':_0x3a920f=_0x5a99d7(0x16a);break;case'na':_0x3a920f='aliasedNodeId';break;case'nsu':_0x3a920f=_0x5a99d7(0x9f);break;case'b':_0x3a920f=_0x5a99d7(0x95);break;case'ab':_0x3a920f=_0x5a99d7(0x199);break;}return _0x3a920f;}function _0x5f0b4f(_0x4aee96){const _0x4531bf=_0x15618f;switch(_0x4aee96){case'nodeId':return'n';case _0x4531bf(0x1b3):return'na';case'nsuNodeID':return _0x4531bf(0xf5);case _0x4531bf(0x95):return'b';case'aliasedBrowsePath':return'ab';default:return't';}}const _0x10d536=(_0x65aa60,_0x4424df)=>_0x433e03(void 0x0,[_0x65aa60,_0x4424df],void 0x0,function*({endpointNode:_0x370e14,endpoint:_0x399c72,baseUrl:_0x3eefce},_0x28a888){const _0x24b9fe=_0x15618f,_0x22c90e=_0x3eefce+'/opcua-for-node-red',_0x4cc985=_0x22c90e+_0x24b9fe(0x8f),_0x21f54c=_0x370e14['id'],_0x383687=RED['nodes']['node'](_0x21f54c);console[_0x24b9fe(0x1af)](_0x383687[_0x24b9fe(0xcf)]),_0x383687[_0x24b9fe(0xcf)];const _0x56ac77=_0x370e14[_0x24b9fe(0xcf)],_0x38ea61=yield fetch(_0x4cc985,{'method':_0x24b9fe(0x99),'body':JSON[_0x24b9fe(0x168)]({'endpointNode':_0x370e14,'endpoint':_0x399c72,'nodeId':_0x28a888,'namespaceAliases':_0x56ac77}),'headers':{'Content-Type':_0x24b9fe(0x132)}}),_0x337907=yield _0x38ea61[_0x24b9fe(0x12b)]();return{'json':_0x337907,'data':_0x38ea61};}),_0x3bf458=(_0x33a22f,_0x1c5412,_0x5888b3,_0x4d680c)=>_0x433e03(void 0x0,[_0x33a22f,_0x1c5412,_0x5888b3,_0x4d680c],void 0x0,function*({endpointNode:_0x32e020,endpoint:_0x479e51,baseUrl:_0x4b8cfc},_0x9be9e0,_0x591de4,_0x413771){const _0x1d0d82=_0x15618f,_0x467170=_0x591de4[_0x1d0d82(0x153)](),{json:_0x3914cf,data:_0x522742}=yield _0x10d536({'endpointNode':_0x32e020,'endpoint':_0x479e51,'baseUrl':_0x4b8cfc},_0x467170),_0x5bbee4=(_0x3336d4,_0x2c0b11)=>{const _0x4b3244=_0x1d0d82;_0x413771[_0x4b3244(0x11f)](_0x3336d4)[_0x4b3244(0xf9)]('sterfive-info')[_0x4b3244(0xf9)](_0x2c0b11),_0x413771[_0x4b3244(0x8b)](),setTimeout(()=>{const _0x27adf8=_0x4b3244;_0x413771[_0x27adf8(0x13d)](_0x2c0b11),_0x413771[_0x27adf8(0x196)]();},0xbb8);};if(_0x522742[_0x1d0d82(0x1c4)]!==0xc8)return _0x5bbee4('!!failure!!'+_0x467170,_0x1d0d82(0x10d)),![];else{if(_0x3914cf[_0x1d0d82(0x116)][_0x1d0d82(0x10c)](/Good/)){const _0xd0ba82=_0x163145(_0x3914cf);_0x591de4[_0x1d0d82(0xfe)](_0x1d0d82(0x10f),_0xd0ba82);const _0x370134=_0xb7a04e(_0x3914cf,_0x9be9e0);return _0x591de4[_0x1d0d82(0x153)](_0x370134),_0x591de4[_0x1d0d82(0x164)](_0x1d0d82(0x85)),_0x5bbee4('Good','ok'),!![];}else return _0x591de4[_0x1d0d82(0x153)](''+_0x467170),_0x5bbee4(_0x3914cf[_0x1d0d82(0x116)]+'\x20'+_0x522742[_0x1d0d82(0xda)],_0x1d0d82(0x10d)),![];}});function _0x4849e0(_0x1e85df,_0x247ecd){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x2c7f80=_0x4c28,_0x52170a=_0x1e85df[_0x2c7f80(0xab)]('value'),_0x31782d=yield _0x16d04a(_0x247ecd,_0x52170a,_0x418a58),_0x2795a8=yield _0x16d04a(_0x247ecd,_0x52170a,_0x56fd82);return{'references':[..._0x31782d['references'],..._0x2795a8[_0x2c7f80(0x1b0)]]};});}const _0x3c80c7={'referenceTypeId':_0x424c75(_0x15618f(0x120)),'includeSubtypes':!![],'browseDirection':_0xd38339[_0x15618f(0x135)],'nodeClassMask':_0x32da3d[_0x15618f(0x1bf)]|_0x32da3d[_0x15618f(0x177)]|_0x32da3d[_0x15618f(0x90)]|_0x32da3d[_0x15618f(0x108)],'resultMask':0x3f};function _0x3f7c03(_0x1241e9,_0x97905){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x1b7d91=_0x4c28,_0x1b65d0=_0x1241e9[_0x1b7d91(0xab)](_0x1b7d91(0xcb)),_0x58dd85=yield _0x16d04a(_0x97905,_0x1b65d0,_0x3c80c7);return _0x58dd85;});}const _0x54d692=_0x47db2d=>{const _0x5cd6d9=_0x15618f;var _0x33b7d4,_0x49e66e,_0x1af67e,_0x19b1d1;if(!_0x47db2d||!_0x47db2d[_0x5cd6d9(0x16a)]){const _0x1ecbd0=$(_0x5cd6d9(0xfc));return _0x1ecbd0;}const _0x56443d=_0x47db2d[_0x5cd6d9(0x16a)][_0x5cd6d9(0xb7)](),_0x13ffc0=((_0x33b7d4=_0x47db2d['displayName'])===null||_0x33b7d4===void 0x0?void 0x0:_0x33b7d4[_0x5cd6d9(0x11f)])||((_0x49e66e=_0x47db2d[_0x5cd6d9(0xb1)])===null||_0x49e66e===void 0x0?void 0x0:_0x49e66e['name'])||_0x47db2d[_0x5cd6d9(0x16a)][_0x5cd6d9(0xb7)](),{icon:_0x256cf3,color:_0x5d2a38}=_0x5a46e7(_0x47db2d),_0x3fd0cd='('+_0x47db2d['nodeId']['toString']()+')\x20'+(((_0x1af67e=_0x47db2d[_0x5cd6d9(0xb1)])===null||_0x1af67e===void 0x0?void 0x0:_0x1af67e[_0x5cd6d9(0x151)])||((_0x19b1d1=_0x47db2d[_0x5cd6d9(0x1a6)])===null||_0x19b1d1===void 0x0?void 0x0:_0x19b1d1['text'])||''),_0x5bc497=$(_0x5cd6d9(0xed)+_0x47db2d[_0x5cd6d9(0x16a)][_0x5cd6d9(0xb7)]()+_0x5cd6d9(0x1a7)+_0x3fd0cd+_0x5cd6d9(0x113)+_0x256cf3+'\x22\x20style=\x22color:'+_0x5d2a38+';\x22></i>\x20'+_0x13ffc0+_0x5cd6d9(0x10b));return _0x5bc497[_0x5cd6d9(0xf9)](_0x5cd6d9(0x125)),_0x5bc497[_0x5cd6d9(0xab)](_0x5cd6d9(0xcb),_0x56443d),_0x5bc497[_0x5cd6d9(0xab)](_0x5cd6d9(0x1bc),_0x47db2d),_0x5bc497;},_0x2eaf02=(_0x4708e8,_0x18aa74)=>{const _0x2fcee4=_0x15618f;return _0x18aa74['find'](_0x2fcee4(0x189)+_0x4708e8+'\x22]');},_0x1dc7ad=(_0x33232a,_0x3566bb)=>{const _0x5680db=_0x15618f;_0x33232a['$tree'][_0x5680db(0xb2)]('li\x20>\x20.tree-text')[_0x5680db(0x13d)](_0x5680db(0x163)),_0x3566bb[_0x5680db(0xb2)](_0x5680db(0x187))['addClass'](_0x5680db(0x163));},_0x3f89ea=(_0xc48e7e,_0x1ec1c5,_0x224fb3)=>_0x433e03(void 0x0,void 0x0,void 0x0,function*(){const _0x25bdc0=_0x15618f;let _0x5bde8e=_0x224fb3[_0x25bdc0(0x159)](':first');_0x1ec1c5[_0x25bdc0(0x115)]['elements']||[];const _0x589f35=_0x1ec1c5[_0x25bdc0(0x18c)]||[];if(_0x589f35[_0x25bdc0(0x11d)]===0x0)return;for(const _0x3648ca of _0x589f35){_0x5bde8e[_0x25bdc0(0x89)](_0x25bdc0(0x125))&&(yield _0x5ee092(_0xc48e7e,_0x5bde8e));const _0x4cafbb=_0x2eaf02(_0x3648ca,_0x5bde8e);if(_0x4cafbb[_0x25bdc0(0x11d)]===0x0)return;_0x5bde8e=_0x4cafbb;}_0x1dc7ad(_0xc48e7e,_0x5bde8e),_0x183172(_0xc48e7e['$dropdown'],_0x5bde8e);});function _0x183172(_0x1d64ee,_0x27135){const _0x32d8e3=_0x15618f,_0xc65925=_0x27135[_0x32d8e3(0x131)]()[_0x32d8e3(0x171)],_0x4af302=_0x1d64ee[_0x32d8e3(0x12e)]();if(_0x4af302==undefined)return;const _0x2951d2=_0x4af302+_0xc65925-_0x1d64ee['height']()/0x2+_0x27135[_0x32d8e3(0x123)]()/0x2;_0x1d64ee[_0x32d8e3(0xca)]({'scrollTop':_0x2951d2},0x1f4);}const _0x4416d2=(_0x28bde3,_0x5592f1)=>_0x433e03(void 0x0,void 0x0,void 0x0,function*(){const _0x124f9c=_0x15618f,_0x486890=_0x28bde3['$input']['val'](),_0x5e8548={'nodeId':_0x486890,'rootNodeId':_0x5592f1['nodeId'],'isType':_0x28bde3[_0x124f9c(0x134)][_0x124f9c(0x11a)]||![]},_0x5b719b=_0x51ffe7(_0x28bde3),_0x4350b6=yield _0xd468b2(_0x5b719b,_0x5e8548);if(!_0x4350b6)return;yield _0x3f89ea(_0x28bde3,_0x4350b6,_0x28bde3[_0x124f9c(0x128)]);});function _0x586c55(_0x472ba0,_0x113800,_0xa0136c,_0x112180){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x149601=_0x4c28;if(_0x113800[_0x149601(0x89)](_0x149601(0x1b5))){console['log']('already\x20fetched');return;}if(_0x113800['hasClass'](_0x149601(0x102))){console[_0x149601(0x1af)](_0x149601(0xd1));return;}_0x113800[_0x149601(0xf9)](_0x149601(0x102)),_0x113800[_0x149601(0x147)](_0x149601(0x1a0));try{_0x113800['children']('ul')[_0x149601(0x1a1)]();const {references:_0x4ab821}=yield _0xa0136c(_0x113800,_0x112180);_0x4ab821[_0x149601(0x181)]((_0x242c45,_0x4d68f2)=>{const _0x1f6c5e=_0x149601;var _0x2dc766,_0x473c32;return(((_0x2dc766=_0x242c45[_0x1f6c5e(0xb1)])===null||_0x2dc766===void 0x0?void 0x0:_0x2dc766['name'])||'')['localeCompare'](((_0x473c32=_0x4d68f2[_0x1f6c5e(0xb1)])===null||_0x473c32===void 0x0?void 0x0:_0x473c32[_0x1f6c5e(0x151)])||'');});for(const _0x41c805 of _0x4ab821){if(_0x472ba0[_0x149601(0x134)][_0x149601(0x1aa)]&&!_0x472ba0[_0x149601(0x134)][_0x149601(0x1aa)](_0x41c805))continue;const _0x3bee8d=_0x54d692(_0x41c805);_0x113800[_0x149601(0x159)]('ul')['append'](_0x3bee8d);}_0x113800[_0x149601(0xf9)](_0x149601(0x1b5));}catch(_0x2fe4cb){_0x113800['children']('ul')[_0x149601(0x147)](_0x149601(0x17f)+_0x2fe4cb[_0x149601(0x1a3)]+_0x149601(0x16f)),console['log'](_0x149601(0x14e),_0x2fe4cb);}_0x113800['find']('.spinner')[_0x149601(0xee)](),_0x113800[_0x149601(0x13d)](_0x149601(0x102));});}function _0x51ffe7(_0x3e640a){const _0x2a5fb7=_0x15618f,_0xbf00af={'baseUrl':_0x3e640a[_0x2a5fb7(0x134)][_0x2a5fb7(0x1b8)],'endpointNode':typeof _0x3e640a['options'][_0x2a5fb7(0x16e)]===_0x2a5fb7(0x129)?_0x3e640a['options'][_0x2a5fb7(0x16e)]():_0x3e640a['options'][_0x2a5fb7(0x16e)],'endpoint':typeof _0x3e640a[_0x2a5fb7(0x134)][_0x2a5fb7(0xa5)]===_0x2a5fb7(0x129)?_0x3e640a[_0x2a5fb7(0x134)][_0x2a5fb7(0xa5)]():_0x3e640a[_0x2a5fb7(0x134)][_0x2a5fb7(0xa5)]};return _0xbf00af;}function _0x5ee092(_0x1d4cd6,_0x387e28){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x54d929=_0x4c28;if(_0x387e28[_0x54d929(0x89)]('fetched')){_0x387e28[_0x54d929(0x13d)]('expandable')[_0x54d929(0xf9)](_0x54d929(0x18a)),_0x387e28[_0x54d929(0x159)]('ul')['toggle']();return;}const _0x4d40b9=_0x51ffe7(_0x1d4cd6),_0x38caaa=!_0x1d4cd6[_0x54d929(0x134)]['isTypeRef']?_0x4849e0:_0x3f7c03;try{yield _0x586c55(_0x1d4cd6,_0x387e28,_0x38caaa,_0x4d40b9),_0x387e28[_0x54d929(0x13d)](_0x54d929(0x125))[_0x54d929(0xf9)](_0x54d929(0x18a));}catch(_0x5b2208){_0x387e28[_0x54d929(0x13d)]('expandable')['addClass'](_0x54d929(0x18a)),console['log']('error',_0x5b2208);}});}const _0xc15552={'browseName':{'namespaceIndex':0x0,'name':_0x15618f(0x17d)},'nodeClass':_0x15618f(0x19d),'nodeId':_0x15618f(0xe9),'displayName':{'text':_0x15618f(0x17d)},'typeDefinition':_0x811dad},_0x1202c3=()=>{$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':'opc.tcp://opcuademo.sterfive.com:26543'}),'endpoint':()=>undefined,'parentNode':()=>_0xc15552,'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x1e3306=_0x4c28,_0x452c01=this;if(_0x452c01[_0x1e3306(0x1bb)]==undefined){const _0x2af190=typeof _0x452c01[_0x1e3306(0x134)][_0x1e3306(0x8d)]===_0x1e3306(0x129)?_0x452c01[_0x1e3306(0x134)][_0x1e3306(0x8d)][_0x1e3306(0xc2)](_0x452c01):_0x452c01[_0x1e3306(0x134)][_0x1e3306(0x8d)];if(_0x2af190 instanceof Promise){const _0xeec98=yield _0x2af190;_0x452c01[_0x1e3306(0x1bb)]=_0xeec98;}else _0x452c01[_0x1e3306(0x1bb)]=_0x2af190;}return _0x452c01[_0x1e3306(0x1bb)]||_0xc15552;});},'reset'(){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x405535=_0x4c28,_0x5ac1ac=this,_0xe631fd=_0x5ac1ac;_0xe631fd[_0x405535(0x1bb)]=undefined,_0x5ac1ac['$tree'][_0x405535(0x1a1)]();const _0x31be27=yield this['resolveParentNode'](),_0x292501=_0x54d692(_0x31be27);_0x5ac1ac[_0x405535(0x128)]['append'](_0x292501),_0x5ac1ac[_0x405535(0x14a)]=_0x31be27;});},'verify'(_0xf95694){const _0x1dc32f=_0x4c28,_0x3e5334=this,_0xc1a5f3=_0x51ffe7(_0x3e5334);_0x3bf458(_0xc1a5f3,_0xf95694,_0x3e5334[_0x1dc32f(0x156)],_0x3e5334[_0x1dc32f(0x1ba)])['then'](_0x1955cf=>{const _0x449884=_0x1dc32f;!_0x1955cf?_0x3e5334[_0x449884(0xa2)]['addClass'](_0x449884(0x1c2)):_0x3e5334['$combo'][_0x449884(0x13d)]('input-error');});},'_hideMenu'(_0x410810){const _0xcdacb4=_0x4c28,_0x11048b=this;$(document)[_0xcdacb4(0x17e)](_0xcdacb4(0x148)),_0x410810[_0xcdacb4(0x196)](),_0x410810['css']({'height':'auto'});if(_0x410810['opts'][_0xcdacb4(0xaa)]){var _0xc2b3bd=[];_0x410810['find'](_0xcdacb4(0x165))['each'](function(){const _0x230aff=_0xcdacb4;$(this)['prop'](_0x230aff(0xc6))&&_0xc2b3bd[_0x230aff(0x167)]($(this)[_0x230aff(0xab)]('value'));}),_0x410810[_0xcdacb4(0xa7)](_0xc2b3bd);}_0x11048b[_0xcdacb4(0xfa)]['is'](_0xcdacb4(0xef))?_0x11048b['$input'][_0xcdacb4(0x164)](_0xcdacb4(0xb0)):_0x11048b['$selectTrigger'][_0xcdacb4(0x164)](_0xcdacb4(0xb0));},'_createMenu'(_0x5a4038,_0x84e268,_0x264ae0){const _0x3e7889=_0x4c28;var _0x1d1ccc=this;const _0x1e66ba=$(_0x3e7889(0x146))[_0x3e7889(0xf9)](_0x3e7889(0x136));return _0x1e66ba[_0x3e7889(0x14b)]=_0x84e268,_0x1e66ba[_0x3e7889(0xa7)]=_0x264ae0,_0x5a4038[_0x3e7889(0x8e)](_0x36ad1f=>{const _0x234e1e=_0x3e7889;typeof _0x36ad1f===_0x234e1e(0xd5)&&(_0x36ad1f={'value':_0x36ad1f,'label':_0x36ad1f});var _0x30ce0b=$(_0x234e1e(0x92))[_0x234e1e(0xfe)](_0x234e1e(0xcb),_0x36ad1f[_0x234e1e(0xcb)])[_0x234e1e(0x104)](_0x1e66ba);_0x36ad1f['label']&&_0x30ce0b[_0x234e1e(0x11f)](_0x36ad1f['label']);_0x36ad1f[_0x234e1e(0x10f)]&&_0x30ce0b[_0x234e1e(0xde)](_0x234e1e(0x10f),_0x36ad1f[_0x234e1e(0x10f)]);if(_0x36ad1f[_0x234e1e(0x119)]){if(_0x36ad1f['icon'][_0x234e1e(0x12f)]('<')===0x0)$(_0x36ad1f[_0x234e1e(0x119)])[_0x234e1e(0x112)](_0x30ce0b);else _0x36ad1f['icon']['indexOf']('/')!==-0x1?$(_0x234e1e(0xe7),{'class':_0x234e1e(0x1ab),'style':'mask-image:\x20url('+_0x36ad1f[_0x234e1e(0x119)]+_0x234e1e(0x1b4)+_0x36ad1f[_0x234e1e(0x119)]+');'})['prependTo'](_0x30ce0b):$(_0x234e1e(0xe7),{'class':_0x234e1e(0xbc)+_0x36ad1f['icon']})[_0x234e1e(0x112)](_0x30ce0b);}else _0x30ce0b[_0x234e1e(0x152)]({'paddingLeft':_0x234e1e(0xe2)});!_0x36ad1f['icon']&&!_0x36ad1f[_0x234e1e(0x12a)]&&_0x30ce0b['text'](_0x36ad1f[_0x234e1e(0xcb)]);var _0x482566;_0x84e268[_0x234e1e(0xaa)]&&(_0x482566=$(_0x234e1e(0x1c1))['css'](_0x234e1e(0x13c),_0x234e1e(0x13f))[_0x234e1e(0xab)](_0x234e1e(0xcb),_0x36ad1f[_0x234e1e(0xcb)])[_0x234e1e(0x112)](_0x30ce0b)['on'](_0x234e1e(0x158),function(_0x4f1ad5){const _0x5c6467=_0x234e1e;_0x4f1ad5[_0x5c6467(0x18f)]();})),_0x30ce0b['on']('click',function(_0x4f3f8c){const _0x3916b9=_0x234e1e;_0x4f3f8c[_0x3916b9(0x18f)](),_0x4f3f8c[_0x3916b9(0x97)](),!_0x84e268['multiple']?(_0x264ae0(_0x36ad1f[_0x3916b9(0xcb)]),_0x1d1ccc[_0x3916b9(0x149)](_0x1e66ba)):_0x482566[_0x3916b9(0xde)]('checked',!_0x482566[_0x3916b9(0xde)](_0x3916b9(0xc6)));});}),_0x1e66ba[_0x3e7889(0x152)]({'display':_0x3e7889(0x13f)}),_0x1e66ba['on'](_0x3e7889(0xac),function(_0x5180f8){const _0x1b7245=_0x3e7889;if(_0x5180f8['keyCode']===0x28)_0x5180f8[_0x1b7245(0x18f)](),$(this)[_0x1b7245(0x159)](_0x1b7245(0x122))[_0x1b7245(0x142)]()[_0x1b7245(0x164)](_0x1b7245(0xb0));else{if(_0x5180f8[_0x1b7245(0x19a)]===0x26)_0x5180f8['preventDefault'](),$(this)[_0x1b7245(0x159)](_0x1b7245(0x122))['prev']()[_0x1b7245(0x164)](_0x1b7245(0xb0));else _0x5180f8[_0x1b7245(0x19a)]===0x1b&&(_0x5180f8['preventDefault'](),_0x1d1ccc[_0x1b7245(0x149)](_0x1e66ba));}_0x5180f8['stopPropagation']();}),_0x1e66ba;},'disarmClick':![],'_showMenu'(_0x47a106,_0x10ab46){const _0x48464a=_0x4c28;if(this[_0x48464a(0xf7)]){this[_0x48464a(0xf7)]=![];return;}var _0x2e8a5d=this,_0x562c53=_0x10ab46[_0x48464a(0x186)](),_0x196127=_0x10ab46[_0x48464a(0x123)](),_0x4f7d1e=_0x47a106[_0x48464a(0x123)](),_0xfcc520=_0x196127+_0x562c53[_0x48464a(0x171)];_0xfcc520+_0x4f7d1e-$(document)['scrollTop']()>$(window)[_0x48464a(0x123)]()&&(_0xfcc520-=_0xfcc520+_0x4f7d1e-$(window)[_0x48464a(0x123)]()+0x5),_0xfcc520<0x0&&(_0x47a106[_0x48464a(0x123)](_0x4f7d1e+_0xfcc520),_0xfcc520=0x0),_0x47a106[_0x48464a(0x152)]({'top':_0xfcc520+'px','left':_0x562c53[_0x48464a(0x180)]+'px'}),_0x47a106[_0x48464a(0x182)](0x64),this[_0x48464a(0x17b)](function(){const _0x498cf9=_0x48464a;_0x2e8a5d[_0x498cf9(0x12c)]['addClass'](_0x498cf9(0x172)),$(document)['on']('mousedown.red-ui-typedInput-close-property-select',function(_0x30bb34){const _0x1d778a=_0x498cf9;!$(_0x30bb34[_0x1d778a(0x1ad)])[_0x1d778a(0x141)](_0x47a106)[_0x1d778a(0x11d)]&&_0x2e8a5d[_0x1d778a(0x149)](_0x47a106),$(_0x30bb34[_0x1d778a(0x1ad)])[_0x1d778a(0x141)](_0x10ab46)['length']&&(_0x2e8a5d[_0x1d778a(0xf7)]=!![],_0x30bb34['preventDefault']());});});},'_showTypeMenu'(){const _0x43250f=_0x4c28,_0x1d2300=this;this[_0x43250f(0xfb)](_0x1d2300[_0x43250f(0x18e)],_0x1d2300[_0x43250f(0xa2)]),_0x1d2300['$dropdown']['hide']();const _0x3921b4=_0x1d2300['selectedMenuItem'];var _0x50e496=_0x1d2300['$menu']['find']('[value=\x27'+_0x3921b4+'\x27');setTimeout(function(){const _0x21dc17=_0x43250f;_0x50e496['trigger'](_0x21dc17(0xb0));},0x78);},'_initMenu'(){const _0x4c7c80=_0x4c28,_0x3318b6=this;_0x3318b6[_0x4c7c80(0x184)]['attr'](_0x4c7c80(0x175),-0x1),_0x3318b6[_0x4c7c80(0x184)]['on'](_0x4c7c80(0x10e),function(_0x1e6b67){_0x1e6b67['preventDefault']();});_0x3318b6[_0x4c7c80(0x18e)]&&_0x3318b6[_0x4c7c80(0x18e)][_0x4c7c80(0xee)]();const _0x3100d1=[{'label':_0x4c7c80(0x11f),'value':'t','title':_0x4c7c80(0xff),'icon':'<i\x20class=\x22fa\x20fa-font\x22/i>\x20'},{'label':_0x4c7c80(0x1a2),'value':_0x4c7c80(0xdf),'title':_0x4c7c80(0x10a),'icon':_0x4c7c80(0xa8)},{'label':'NodeId','value':'n','icon':_0x4c7c80(0xc4)},{'label':_0x4c7c80(0x1c7),'value':'na','icon':_0x4c7c80(0xe3)},{'label':_0x4c7c80(0x14f),'value':_0x4c7c80(0xf5),'icon':_0x4c7c80(0xb6)},{'label':_0x4c7c80(0x174),'value':'b','icon':_0x4c7c80(0xfd)},{'label':'Aliased\x20Browse\x20Path','value':'ab','icon':_0x4c7c80(0x100)}],_0x66e262=_0x2b74be(_0x3318b6[_0x4c7c80(0x156)][_0x4c7c80(0x153)]()),_0x1430f1=_0x3100d1[_0x4c7c80(0xb2)](_0x3b49dc=>_0x3b49dc['value']===_0x66e262);_0x3318b6[_0x4c7c80(0x88)]['empty']()[_0x4c7c80(0x147)](_0x4c7c80(0xe1)+((_0x1430f1===null||_0x1430f1===void 0x0?void 0x0:_0x1430f1[_0x4c7c80(0x10f)])||'')+'> \x20'+((_0x1430f1===null||_0x1430f1===void 0x0?void 0x0:_0x1430f1[_0x4c7c80(0x119)])||'')+_0x4c7c80(0x18b)),_0x3318b6['selectedMenuItem']=_0x66e262;const _0x166e55=this;_0x3318b6[_0x4c7c80(0x18e)]=this[_0x4c7c80(0x16b)](_0x3100d1,{},_0x32fc13=>{const _0x1bf895=_0x4c7c80,_0x490720=_0x4e1c25(_0x32fc13);_0x490720&&_0x166e55[_0x1bf895(0x15d)](_0x490720);const _0x148043=_0x3100d1['find'](_0x564bff=>_0x564bff['value']===_0x32fc13);_0x3318b6[_0x1bf895(0x19c)]=_0x32fc13,_0x3318b6[_0x1bf895(0x88)][_0x1bf895(0x1a1)]()[_0x1bf895(0x147)](_0x1bf895(0xe1)+((_0x148043===null||_0x148043===void 0x0?void 0x0:_0x148043[_0x1bf895(0x10f)])||'')+_0x1bf895(0x127)+((_0x148043===null||_0x148043===void 0x0?void 0x0:_0x148043[_0x1bf895(0x119)])||'')+_0x1bf895(0x18b));}),_0x3318b6[_0x4c7c80(0x18e)][_0x4c7c80(0x104)](document[_0x4c7c80(0x179)]),_0x3318b6[_0x4c7c80(0x18e)][_0x4c7c80(0x196)](),_0x3318b6[_0x4c7c80(0x184)][_0x4c7c80(0x8b)]();},'mode'(){const _0x86d35c=this;return _0x4e1c25(_0x86d35c['selectedMenuItem']);},'setMode'(_0x5b43e5){const _0x48a748=_0x4c28,_0x37c46e=this,_0x3e71fb=_0x5f0b4f(_0x5b43e5);_0x37c46e[_0x48a748(0x19c)]=_0x3e71fb;},'_create'(){const _0x13efd1=_0x4c28,_0x42f875=this;_0x42f875[_0x13efd1(0x156)]=this[_0x13efd1(0xa6)],_0x42f875['$input'][_0x13efd1(0x152)](_0x13efd1(0x13b),_0x13efd1(0x13f)),_0x42f875[_0x13efd1(0xfa)]=_0x42f875['$input'][_0x13efd1(0xdd)]('<div>')[_0x13efd1(0xbd)]()[_0x13efd1(0xf9)](_0x13efd1(0x1a8)),_0x42f875[_0x13efd1(0xa2)]=$(_0x13efd1(0xd4)),_0x42f875[_0x13efd1(0xa2)][_0x13efd1(0xf9)](_0x13efd1(0x101)),_0x42f875[_0x13efd1(0x156)][_0x13efd1(0x11b)](_0x42f875[_0x13efd1(0xa2)]),_0x42f875[_0x13efd1(0x93)]=$(_0x13efd1(0xd4))['addClass']('input-group'),_0x42f875[_0x13efd1(0xa2)][_0x13efd1(0x147)](_0x42f875['$inputGroup']),_0x42f875['$inputGroup'][_0x13efd1(0x147)](_0x42f875['$input']),_0x42f875[_0x13efd1(0x111)]=$('<button\x20title=\x22open\x20OPCUA\x20AddressSpace\x20Browser\x22><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x42f875[_0x13efd1(0x156)]['after'](_0x42f875[_0x13efd1(0x111)]),_0x42f875['$toggleTreeBtn']['on']('click',function(){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x1b6287=_0x4c28;var _0x452bb5;let _0x4535b6=![],_0x499ccc;!_0x42f875[_0x1b6287(0x139)]['is'](_0x1b6287(0xef))&&(_0x42f875['$info']['hide'](),_0x499ccc=yield _0x42f875[_0x1b6287(0x91)](),(_0x499ccc!==_0x42f875[_0x1b6287(0x14a)]||((_0x452bb5=_0x42f875['currentParent'])===null||_0x452bb5===void 0x0?void 0x0:_0x452bb5[_0x1b6287(0x16a)])!==_0x499ccc[_0x1b6287(0x16a)])&&(yield _0x42f875[_0x1b6287(0xdc)]()),_0x4535b6=!![]),_0x42f875[_0x1b6287(0x139)]['toggle'](),_0x4535b6&&(yield _0x4416d2(_0x42f875,_0x499ccc));});}),_0x42f875[_0x13efd1(0xa3)]=$('<button\x20title=\x22verify\x20nodeId\x20or\x20browsePath\x22><i\x20class=\x22fa\x20fa-refresh\x22></i></button>'),_0x42f875['$input'][_0x13efd1(0x16c)](_0x42f875['$verifyBtn']),_0x42f875[_0x13efd1(0xa3)]['on'](_0x13efd1(0x1b6),()=>{const _0x425e61=_0x13efd1,_0x282d6a=_0x42f875[_0x425e61(0x83)]();if(!_0x282d6a)return;this[_0x425e61(0x15d)](_0x282d6a);});const _0x5a4697=_0x310f09=>_0x433e03(this,void 0x0,void 0x0,function*(){const _0x4fca83=_0x13efd1,_0x5b0ff7=this;let _0x3884fa=_0x5b0ff7['mode']();if(!_0x3884fa)return;const _0x33d105=_0x51ffe7(_0x5b0ff7),{data:_0x4db423,json:_0x364cbc}=yield _0x10d536(_0x33d105,_0x310f09);if(_0x4db423['status']!==0xc8)return;if(_0x364cbc['statusCode']['match'](/Good/)){const _0x38ab67=_0xb7a04e(_0x364cbc,_0x3884fa);_0x5b0ff7[_0x4fca83(0x156)][_0x4fca83(0x153)](_0x38ab67),_0x5b0ff7[_0x4fca83(0x156)][_0x4fca83(0x164)]('change');}});{_0x42f875[_0x13efd1(0x12c)]=$(_0x13efd1(0x146)),_0x42f875[_0x13efd1(0x156)][_0x13efd1(0xeb)](_0x42f875[_0x13efd1(0x12c)]),_0x42f875[_0x13efd1(0x184)]=$(_0x13efd1(0x178))['prependTo'](_0x42f875[_0x13efd1(0x12c)]),$('<i\x20class=\x22red-ui-typedInput-icon\x20fa\x20fa-caret-down\x22></i>')['toggle'](!![])[_0x13efd1(0x104)](_0x42f875[_0x13efd1(0x184)]),_0x42f875[_0x13efd1(0x184)]['on'](_0x13efd1(0x1b6),function(_0x451325){const _0x108db8=_0x13efd1;_0x451325[_0x108db8(0x18f)](),_0x451325[_0x108db8(0x97)](),_0x42f875[_0x108db8(0x166)]();}),_0x42f875[_0x13efd1(0x184)]['on']('keydown',function(_0x1f62f9){const _0x1874a8=_0x13efd1;_0x1f62f9[_0x1874a8(0x19a)]===0x28&&_0x42f875['_showTypeMenu'](),_0x1f62f9[_0x1874a8(0x97)]();})['on'](_0x13efd1(0xb0),function(){const _0x5d88d2=_0x13efd1;_0x42f875[_0x5d88d2(0x12c)][_0x5d88d2(0xf9)](_0x5d88d2(0x172));})['on'](_0x13efd1(0x106),function(){const _0x52b594=_0x13efd1;_0x42f875[_0x52b594(0x12c)][_0x52b594(0x13d)]('red-ui-typedInput-focus');}),_0x42f875[_0x13efd1(0x88)]=$('<span\x20class=\x22red-ui-typedInput-type-label\x22></span>')[_0x13efd1(0x104)](_0x42f875[_0x13efd1(0x184)]);}this[_0x13efd1(0x1a9)]();!_0x42f875[_0x13efd1(0x156)]['attr'](_0x13efd1(0x17a))&&_0x42f875[_0x13efd1(0x156)][_0x13efd1(0xfe)]('placeholder',_0x13efd1(0xa4));_0x42f875[_0x13efd1(0x1ba)]=$(_0x13efd1(0x9a)),_0x42f875[_0x13efd1(0x1ba)][_0x13efd1(0x196)](),_0x42f875[_0x13efd1(0xa2)][_0x13efd1(0x147)](_0x42f875[_0x13efd1(0x1ba)]),_0x42f875[_0x13efd1(0x139)]=$(_0x13efd1(0xd4))[_0x13efd1(0xf9)](_0x13efd1(0xd0))[_0x13efd1(0x196)]()[_0x13efd1(0x104)](_0x42f875['$combo']),_0x42f875['$tree']=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x13efd1(0x104)](_0x42f875[_0x13efd1(0x139)]),this[_0x13efd1(0xdc)]();const _0x5ebe24=(_0x4bccf2,_0x4ecc5b)=>{const _0x5c21d1=_0x13efd1,_0x1176cb=0x14,_0x4107b8=0x14,_0x352981=_0x4bccf2['offset'](),_0x547a41=_0x4ecc5b;if(_0x547a41[_0x5c21d1(0x185)]>=_0x352981[_0x5c21d1(0x180)]&&_0x547a41[_0x5c21d1(0x185)]<=_0x352981['left']+_0x1176cb&&_0x547a41[_0x5c21d1(0x155)]>=_0x352981[_0x5c21d1(0x171)]&&_0x547a41[_0x5c21d1(0x155)]<=_0x352981[_0x5c21d1(0x171)]+_0x4107b8)return!![];return![];},_0x550603=_0x39a8dd=>_0x433e03(this,void 0x0,void 0x0,function*(){const _0x741424=_0x13efd1;if(_0x39a8dd[_0x741424(0x89)](_0x741424(0x125)))_0x5ee092(_0x42f875,_0x39a8dd);else{if(_0x39a8dd[_0x741424(0x89)](_0x741424(0x18a)))_0x39a8dd['children']('ul')[_0x741424(0x170)](),_0x39a8dd[_0x741424(0x17c)](_0x741424(0xc1));else{if(_0x39a8dd['children']('ul')[_0x741424(0x159)]()[_0x741424(0x11d)]>0x0)_0x39a8dd[_0x741424(0x159)]('ul')[_0x741424(0x170)](),_0x39a8dd[_0x741424(0x17c)](_0x741424(0xc1));else;}}});_0x42f875['$tree']['on']('dblclick','li',function(_0x27d80f){const _0x4e76f=_0x13efd1;var _0x184a23,_0x43d65b;_0x27d80f[_0x4e76f(0x97)]();let _0x569f55=$(this);if(_0x5ebe24(_0x569f55,_0x27d80f))_0x550603(_0x569f55);else{const _0x530889=_0x569f55['data']('value'),_0x23431a=_0x569f55[_0x4e76f(0xab)](_0x4e76f(0x1bc));if(_0x42f875[_0x4e76f(0x134)]['isSelectable']&&!_0x42f875['options'][_0x4e76f(0xe0)](_0x23431a))return;_0x42f875[_0x4e76f(0x156)][_0x4e76f(0xab)](_0x4e76f(0x1bc),_0x23431a),((_0x184a23=_0x23431a[_0x4e76f(0x1a6)])===null||_0x184a23===void 0x0?void 0x0:_0x184a23[_0x4e76f(0x11f)])||((_0x43d65b=_0x23431a[_0x4e76f(0xb1)])===null||_0x43d65b===void 0x0?void 0x0:_0x43d65b[_0x4e76f(0x151)])||_0x23431a['nodeId'][_0x4e76f(0xb7)]();let _0x2d7bb2=_0x42f875[_0x4e76f(0x83)]();!_0x2d7bb2&&(_0x2d7bb2='nodeId',_0x42f875[_0x4e76f(0xc9)](_0x2d7bb2)),_0x5a4697(_0x530889)[_0x4e76f(0xe4)](()=>{const _0x176101=_0x4e76f;_0x42f875[_0x176101(0x139)][_0x176101(0x196)]();})[_0x4e76f(0xc5)](_0x4aa24c=>{const _0x495d8e=_0x4e76f;_0x42f875[_0x495d8e(0x139)][_0x495d8e(0x196)]();});}}),_0x42f875[_0x13efd1(0x128)]['on']('click','li',function(_0x294703){const _0x2de9b9=_0x13efd1;_0x294703[_0x2de9b9(0x97)]();let _0x65413f=$(this);_0x5ebe24(_0x65413f,_0x294703)&&_0x550603(_0x65413f),_0x1dc7ad(_0x42f875,_0x65413f);}),$(document)['on'](_0x13efd1(0x1b6),function(_0x312e61){const _0x34a4e8=_0x13efd1;!$(_0x312e61[_0x34a4e8(0x1ad)])[_0x34a4e8(0x141)](_0x42f875[_0x34a4e8(0xa2)])[_0x34a4e8(0x11d)]&&_0x42f875[_0x34a4e8(0x139)][_0x34a4e8(0x196)]();});}});},_0xb89551=(_0x2e35cf,_0x3dcbd2,_0x11ca1d)=>_0x433e03(void 0x0,[_0x2e35cf,_0x3dcbd2,_0x11ca1d],void 0x0,function*({endpointNode:_0x137fe9,endpoint:_0x1a4f68,baseUrl:_0x11787b},_0x390704,_0x16a363){const _0xc7629a=_0x15618f,_0x396e1e=_0x11787b+'/opcua-for-node-red',_0x46b00e=_0x396e1e+_0xc7629a(0x8f),_0xcf6bcb=yield fetch(_0x46b00e,{'method':'POST','body':JSON[_0xc7629a(0x168)]({'endpointNode':_0x137fe9,'endpoint':_0x1a4f68,'nodeId':_0x390704,'namespaceAliases':_0x16a363}),'headers':{'Content-Type':'application/json'}});if(_0xcf6bcb[_0xc7629a(0x1c4)]!==0xc8){console['log'](_0xc7629a(0xce),_0xcf6bcb['status'],_0xcf6bcb[_0xc7629a(0xda)]);const _0x734867={'statusCode':_0xc7629a(0x98),'requestedNodeId':_0x390704};return _0x734867;}console['log']('fetched\x20:\x20',_0xcf6bcb['status'],_0xcf6bcb[_0xc7629a(0xda)]);const _0x501fe8=yield _0xcf6bcb[_0xc7629a(0x12b)]();return _0x501fe8;});function _0x1aaaf0(_0x2c757b,_0x555389,_0x3a74d3,_0x4abddb){const _0x22e836=_0x15618f,_0x1c1e0c=$('#'+_0x2c757b+_0x22e836(0x9d)),_0x68ac89=$('#'+_0x2c757b+_0x22e836(0x9c)),_0x1fda01=$('#'+_0x2c757b+_0x22e836(0xd8)),_0x5dfefa=$('#'+_0x2c757b+_0x22e836(0x15a));let _0x5da5f6=![];_0x1c1e0c[_0x22e836(0x196)](),_0x68ac89[_0x22e836(0x196)](),_0x1fda01[_0x22e836(0x196)](),_0x555389['on'](_0x22e836(0x1b6),()=>{const _0x391841=_0x22e836;if(_0x5da5f6)return;_0x5da5f6=!![],_0x1fda01[_0x391841(0x13d)](_0x391841(0x196)),_0x1fda01['html'](_0x391841(0x87)),_0x1c1e0c[_0x391841(0xf9)]('hide'),_0x68ac89[_0x391841(0xf9)](_0x391841(0x196)),_0x5dfefa[_0x391841(0x138)]('');const {body:_0x4034d2,url:_0xd9ecee}=_0x3a74d3();fetch(_0xd9ecee,{'method':_0x391841(0x99),'headers':{'Content-Type':_0x391841(0x132)},'body':JSON[_0x391841(0x168)](_0x4034d2)})['then'](_0x4bf29a=>_0x4bf29a[_0x391841(0x12b)]())[_0x391841(0xe4)](_0x16e0db=>{const _0x5de368=_0x391841;_0x5da5f6=![],_0x1fda01[_0x5de368(0x196)](),console[_0x5de368(0x1af)](JSON[_0x5de368(0x168)](_0x16e0db,null,'\x20'));if(_0x16e0db[_0x5de368(0x145)]==='ok')_0x1c1e0c[_0x5de368(0x13d)](_0x5de368(0x196)),_0x68ac89[_0x5de368(0xf9)]('hide'),_0x5dfefa[_0x5de368(0x138)](_0x16e0db['message'][_0x5de368(0x1be)]('\x0a','<br>')),_0x4abddb(null,_0x16e0db);else{const _0x444e4c=_0x46fce6=>!_0x46fce6?'':_0x46fce6[_0x5de368(0x183)]('\x0a')[_0x5de368(0xb8)](_0x2ddf7b=>_0x5de368(0x133)+_0x2ddf7b+_0x5de368(0xf8))[_0x5de368(0x11c)]('\x0a'),_0x30b257=_0x21dbed=>Array[_0x5de368(0x157)](_0x21dbed)?_0x21dbed[_0x5de368(0xb8)](_0x444e4c)[_0x5de368(0x11c)]('\x0a'):_0x444e4c(_0x21dbed);_0x1c1e0c['addClass'](_0x5de368(0x196)),_0x68ac89[_0x5de368(0x13d)](_0x5de368(0x196)),_0x5dfefa[_0x5de368(0x138)](_0x30b257(_0x16e0db[_0x5de368(0x1a3)])+_0x30b257(_0x16e0db[_0x5de368(0x1b9)])),_0x4abddb(new Error(_0x16e0db[_0x5de368(0x145)]),_0x16e0db);}})[_0x391841(0xc5)](_0x216e69=>{const _0x310cc7=_0x391841;_0x5da5f6=![],_0x1fda01[_0x310cc7(0xf9)]('hide'),_0x1c1e0c[_0x310cc7(0xf9)](_0x310cc7(0x196)),_0x68ac89['removeClass'](_0x310cc7(0x196)),_0x5dfefa[_0x310cc7(0x138)]('internal\x20error\x20'+_0x216e69[_0x310cc7(0x1a3)]),console[_0x310cc7(0x1af)](_0x310cc7(0x14e),_0x216e69),_0x4abddb(_0x216e69,null);});});}const _0x26bb15=()=>{const _0x3418df=_0x15618f,_0x4ffac8=$('#node-input-endpoint'),_0x2bf340=_0x4ffac8['val'](),_0x3331f0=RED[_0x3418df(0x197)][_0x3418df(0x140)](_0x2bf340);if(!_0x3331f0)return undefined;const {endpoint:_0x4ea0ba,securityMode:_0x4212a1,securityPolicy:_0x334bf9,userIdentityType:_0x12fcdd,credentials:_0x236564,namespaceAliases:_0x35f4b1}=_0x3331f0,_0x2b4a9e={'endpoint':_0x4ea0ba,'securityMode':_0x4212a1,'securityPolicy':_0x334bf9,'userIdentityType':_0x12fcdd,'credentials':_0x236564,'namespaceAliases':_0x35f4b1};return _0x2b4a9e;},_0x86b339=()=>{const _0x144726=_0x15618f,_0x26c947=$('#node-input-endpoint'),_0x370c82=_0x26c947[_0x144726(0x153)](),_0x512804=_0x26bb15();if(!_0x512804)return undefined;const _0x282f56=_0x512804[_0x144726(0xcf)];return Object[_0x144726(0x13a)]({'namespaceAliases':_0x282f56,'id':_0x370c82},_0x512804);},_0x176528=()=>{return{'endpointNode':_0x86b339};};RED['nodes'][_0x15618f(0xcd)](_0x15618f(0xc8),{'category':_0x15618f(0x15b),'color':_0x15618f(0xa1),'align':_0x15618f(0x162),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':_0x15618f(0xc2),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x15618f(0x96)},'action':{'value':'read','required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x6a88b2=_0x15618f;return this[_0x6a88b2(0x151)]||_0x6a88b2(0x9e);},'labelStyle'(){const _0x1f688d=_0x15618f;return this[_0x1f688d(0x151)]?_0x1f688d(0x81):'';},'oneditprepare'(){const _0x1c4274=_0x15618f,_0x5545b3=this;_0x1202c3(),_0x5545b3[_0x1c4274(0xf0)]=0x1;let _0x212200={};const _0x25250a=$(_0x1c4274(0x15c)),_0x576bfd=$('#node-input-methodId'),_0x379f03=$(_0x1c4274(0x137)),_0xa8b37a=$(_0x1c4274(0x11e)),_0x50b658=$(_0x1c4274(0xe6));_0x25250a['nodeBrowser'](Object[_0x1c4274(0x13a)](Object['assign']({},_0x176528()),{'filter'(_0x1765ea){const _0x3d910d=_0x1c4274;return _0x1765ea[_0x3d910d(0x195)]===_0x3d910d(0x19d);}})),_0x576bfd[_0x1c4274(0x130)](Object['assign'](Object[_0x1c4274(0x13a)]({},_0x176528()),{'parentNode':function(){return _0x433e03(this,void 0x0,void 0x0,function*(){const _0x31c4f1=_0x4c28,_0x28bf69=_0x51ffe7(this);let _0x4fda97=_0x25250a['data'](_0x31c4f1(0x1bc));if(!_0x4fda97){const _0x4bf0f5=_0x25250a['val']();try{const _0x398448=yield _0xb89551(_0x28bf69,_0x4bf0f5);if(_0x398448['statusCode']!==_0x31c4f1(0x1c0))return null;_0x4fda97={'nodeId':_0x398448[_0x31c4f1(0x16a)],'browseName':_0x398448['browseName'],'nodeClass':_0x31c4f1(0x19d),'typeDefinition':_0x31c4f1(0x103),'displayName':{'text':''}};}catch(_0x4fa377){console['log'](_0x4fa377);}}return _0x4fda97;});},'filter'(_0x471d19){const _0x27797c=_0x1c4274;return _0x471d19[_0x27797c(0x195)]==='Method'||_0x471d19[_0x27797c(0x195)]===_0x27797c(0x19d);},'isSelectable'(_0x2e150c){const _0x53dfb2=_0x1c4274;return _0x2e150c[_0x53dfb2(0x195)]==='Method';}})),_0x25250a['on']('change',()=>{const _0x1de1f5=_0x1c4274;_0x576bfd[_0x1de1f5(0x130)](_0x1de1f5(0xdc));});function _0x58955d(_0x293a17,_0x2641da,_0x16d330){const _0x44bd20=_0x1c4274,_0x1b5229=$('<div\x20class=\x22argument-entry\x22>')[_0x44bd20(0x104)](_0x293a17);$(_0x44bd20(0xbb))[_0x44bd20(0x153)](_0x16d330[_0x44bd20(0x151)]||'')[_0x44bd20(0x152)]({'width':_0x44bd20(0xd6)})[_0x44bd20(0x104)](_0x1b5229);const _0x8d28bc=_0x212200[_0x16d330[_0x44bd20(0xb3)]['toString']()],_0x4737c3=(_0x8d28bc?_0x8d28bc[_0x44bd20(0xb1)][_0x44bd20(0x151)]||'':_0x16d330[_0x44bd20(0xb3)][_0x44bd20(0xb7)]())+(_0x16d330[_0x44bd20(0x109)]===0x1?'[]':'');$(_0x44bd20(0xbb))[_0x44bd20(0x153)](_0x16d330[_0x44bd20(0x19b)]['text']||'')[_0x44bd20(0x152)]({'width':_0x44bd20(0x19f)})[_0x44bd20(0x104)](_0x1b5229),$(_0x44bd20(0xbb))[_0x44bd20(0x153)](_0x4737c3||'')[_0x44bd20(0x152)]({'width':_0x44bd20(0x19f)})[_0x44bd20(0x104)](_0x1b5229);}_0x379f03[_0x1c4274(0xdb)]({'addButton':![],'height':'auto','scrollOnAdd':![],'addItem'(_0x374c7b,_0x334982,_0x4b09f7){_0x58955d(_0x374c7b,_0x334982,_0x4b09f7);}}),_0xa8b37a[_0x1c4274(0xdb)]({'addButton':![],'height':_0x1c4274(0x1c3),'scrollOnAdd':![],'addItem'(_0x509553,_0xb3e822,_0x3c4e6f){_0x58955d(_0x509553,_0xb3e822,_0x3c4e6f);}});function _0x5ed895(_0x478c40,_0x4445fe){const _0x4762a2=_0x1c4274;console[_0x4762a2(0x1af)](_0x4762a2(0x118),_0x4445fe['length'],_0x4762a2(0xe5),_0x4445fe),_0x478c40[_0x4762a2(0xdb)](_0x4762a2(0x1a1));for(let _0x255bd6=0x0;_0x255bd6<_0x4445fe[_0x4762a2(0x11d)];_0x255bd6++){_0x478c40[_0x4762a2(0xdb)]('addItem',_0x4445fe[_0x255bd6]);}}_0x379f03[_0x1c4274(0x196)](),_0xa8b37a['hide']();let _0x3fc1c3={};const _0x3644df=$('#copy-input');_0x3644df[_0x1c4274(0x196)](),_0x3644df['on'](_0x1c4274(0x1b6),()=>{const _0x5f21dc=_0x1c4274;navigator[_0x5f21dc(0x1c6)][_0x5f21dc(0xb4)](JSON[_0x5f21dc(0x168)](_0x3fc1c3));}),_0x1aaaf0(_0x1c4274(0xd2),_0x50b658,()=>({'url':'/opcua-for-node-red/argumentDefinition','body':{'endpointNode':_0x86b339(),'objectId':_0x25250a[_0x1c4274(0x153)](),'methodId':_0x576bfd[_0x1c4274(0x153)]()}}),(_0x3bddde,_0x458ae8)=>{const _0x505267=_0x1c4274;if(_0x3bddde)return;const _0x38d85d=_0x458ae8[_0x505267(0xba)];_0x212200=_0x458ae8[_0x505267(0x14c)],_0x379f03[_0x505267(0x8b)](),_0xa8b37a['show'](),_0x5ed895(_0x379f03,_0x38d85d[_0x505267(0x143)]),_0x5ed895(_0xa8b37a,_0x38d85d['outputArguments']),_0x3fc1c3=_0x458ae8['inputArgumentsExampleAsJson']||{},_0x3644df[_0x505267(0x8b)](),navigator[_0x505267(0x1c6)]['writeText'](JSON[_0x505267(0x168)](_0x3fc1c3)),console['log'](_0x505267(0x18d),JSON[_0x505267(0x168)](_0x3fc1c3)),console[_0x505267(0x1af)](_0x505267(0xab),_0x458ae8);});},'oneditsave'(){}});}()));function _0x4c28(_0x3a716c,_0x1d0baf){const _0x3b885b=_0x3b88();return _0x4c28=function(_0x4c28ce,_0x3875bf){_0x4c28ce=_0x4c28ce-0x81;let _0x12f477=_0x3b885b[_0x4c28ce];return _0x12f477;},_0x4c28(_0x3a716c,_0x1d0baf);}function _0x3b88(){const _0x1d235e=['fa-list-alt','replace','ReferenceType','Good','<input\x20type=\x22checkbox\x22>','input-error','auto','status','Variable','clipboard','Aliased\x20NodeId','158300CIiyyt','node_label_italic','/browse','mode','10bOQcow','change','IsForward','Testing\x20Connection\x20...','$selectLabel','hasClass','ns=0;i=40','show','CadetBlue','parentNode','forEach','/checkNodeId','DataType','resolveParentNode','<a\x20href=\x22#\x22></a>','$inputGroup','i=61','browsePath','OpcUa-Endpoint2','stopPropagation','BadNoMatch','POST','<div\x20class=\x22info-text\x22></div>','Method','-failure','-success','OPCUA-Call','nsuNodeID','fa-cog','#C0DEED','$combo','$verifyBtn','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','endpoint','element','callback','<i\x20class=\x22fa\x20fa-envelope-open-o\x22/>','SteelBlue','multiple','data','keydown','HasChild','nodeId_nsu','DarkOrange','focus','browseName','find','dataType','writeText','browseResult','<i\x20class=\x22fa\x20fa-id-card\x22/> \x20','toString','map','rgba(61,\x2060,\x204,\x200.525)','argumentDefinition','<input\x20type=\x22text\x22>','red-ui-typedInput-icon\x20','parent','Unspecified','nsu\x20nodeId:\x20','error','expandable\x20expanded','call','statusCode:\x20','<i\x20class=\x22fa\x20fa-tag\x22/>1\x20 \x20','catch','checked','4596681dSwjVX','OpcUa-Client2-Call','setMode','animate','value','suppressed','registerType','fetching\x20failed\x20with\x20error','namespaceAliases','sterfive-dropdown','already\x20loading','validate','252666MhqlMT','<div/>','string','100%','DodgerBlue','-pending','aliased\x20browsePath:\x20','statusText','editableList','reset','wrap','prop','msg','isSelectable','<span\x20title=','18px','<i\x20class=\x22fa\x20fa-bookmark\x22/> \x20','then','arguments','#validate-call-arguments-button','<i>','ns=0;i=47','ns=0;i=85','SandyBrown','before','30344zGkXnr','<li\x20key=\x22','remove',':visible','inputs','ns=0;i=35','bp_indexed','HasTypeDefinition','nodeId:\x20','nsu','requestedNodeId','disarmClick','</p>','addClass','$elementDiv','_showMenu','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','<i\x20class=\x22fa\x20fa-tag\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','attr','Value\x20is\x20not\x20verified','<i\x20class=\x22fa\x20fa-bookmark\x22/><i\x20class=\x22fa\x20fa-fighter-jet\x22/> ','sterfive-combo-box','loading','ns=0;i=0','appendTo','ns=0;i=61','blur','HasProperty','VariableType','valueRank','node\x20id\x20or\x20\x20browse\x20path\x20comes\x20from\x20injected\x20msg\x20parameter','</span><ul></ul></li>','match','failure','mousedown.red-ui-typedInput-focus-block','title','68jbeBZK','$toggleTreeBtn','prependTo','><i\x20class=\x22fa\x20','aliased\x20NodeId:\x20','relativePath','statusCode','fa-folder','installArgumentList','icon','isTypeRef','replaceWith','join','length','#method-output-argument-definition','text','HasSubtype','HasComponent',':focus','height','grey','expandable','145HwltCk','> \x20','$tree','function','label','json','$uiSelect','fa-object-group','scrollTop','indexOf','nodeBrowser','position','application/json','<p>','options','Forward','sterfive-typedInput-options\x20sterfive-online-menu','#method-input-argument-definition','html','$dropdown','assign','border','pointer-events','removeClass','224lIhhZt','none','node','closest','next','inputArguments','browse\x20path:\x20','result','<div>','append','mousedown.red-ui-typedInput-close-property-select','_hideMenu','currentParent','opts','dataTypes','25995060jfizIg','err','NodeId\x20with\x20namespace\x20Urn','/opcua-for-node-red','name','css','val','NodeClass','pageY','$input','isArray','mousedown','children','-messages','opcua','#node-input-objectId','verify','/walk-backward','fa-text-width','Inverse','done','right','selected','trigger','input[type=\x22checkbox\x22]','_showTypeMenu','push','stringify','bp_aliased','nodeId','_createMenu','after','referenceTypeId','endpointNode','</li>','toggle','top','red-ui-typedInput-focus','Organizes','BrowsePath','tabindex','SuppressedError','ObjectType','<button\x20type=\x22button\x22\x20tabindex=\x220\x22></button>','body','placeholder','_delay','toggleClass','Objects','off','<li>error\x20','left','sort','slideDown','split','$selectTrigger','pageX','offset','.tree-text:first','SeaGreen','li[key=\x22','expanded','</span>','nodeIds','JSON','$menu','preventDefault','ns=0;i=45','DisplayName','throw','153QFcBrv','View','nodeClass','hide','nodes','TypeDefinition','aliasedBrowsePath','keyCode','description','selectedMenuItem','Object','fa-question','50%','<div\x20class=\x22spinner\x22></div>','empty','msg.','message','typeDefinition','8505431mJALVV','displayName','\x22}><span\x20class=\x22tree-text\x22\x20title=','main-wrapper','_initMenu','filter','red-ui-typedInput-icon','node\x20class:\x20','target','41068RLUBrC','log','references','BrowseName','nodeId_aliased','aliasedNodeId',');\x20-webkit-mask-image:\x20url(','fetched','click','Both','baseUrl','extra','$info','__parentNode','reference'];_0x3b88=function(){return _0x1d235e;};return _0x3b88();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0MzNlMDMiLCJfMHgxZDQxYWYiLCJfMHgyNjdlY2QiLCJfMHg2M2QwY2QiLCJfMHg4ZmY5ZTUiLCJfMHg1NDg4OGUiLCJfMHg0MjMwMmUiLCJfMHgzNjFlMDYiLCJQcm9taXNlIiwiXzB4NTM5NjdkIiwiXzB4MmE0NTAyIiwiXzB4NWQwZDc2IiwiXzB4MmMzMGZkIiwiXzB4NDk4YTY5IiwiXzB4NDlmNjAwIiwiXzB4ZGRhMDNmIiwiXzB4MTYxYWJmIiwiXzB4MjAxNmZhIiwiXzB4M2FkZTdiIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MmNlMGVkIiwiXzB4NDUwZDI1IiwiXzB4MzZjNTJlIiwiXzB4NzcwNWNlIiwiRXJyb3IiLCJfMHgzNWZlZTMiLCJfMHg4MTFkYWQiLCJfMHg0YmRjYmUiLCJfMHg0MTFlNTgiLCJfMHgzNWE0YWYiLCJfMHgyZGRjZDQiLCJfMHg0MWMyOTAiLCJfMHhkMzgzMzkiLCJfMHgyMGU3NDIiLCJfMHgzMmRhM2QiLCJfMHgyMTJlMGQiLCJfMHgzOWMyNjAiLCJfMHg4N2I1YSIsIl8weDQzMjZjZSIsIl8weDE0YjhlNSIsIl8weDQyNGM3NSIsIl8weDMxOWYxNSIsIl8weDVhNDZlNyIsIl8weDM5YzQxYiIsIl8weDE2ZDA0YSIsIl8weDE0Yzg3MiIsIl8weGY2YTk2YiIsIl8weDE0N2U1NCIsImVuZHBvaW50Tm9kZSIsIl8weDEzOGEyOSIsImVuZHBvaW50IiwiXzB4M2NiOTY0IiwiYmFzZVVybCIsIl8weGYyYTkwOCIsIl8weDMxOWNlMSIsIl8weDU0NjY0NiIsIl8weDI1Njk0MyIsIl8weGViYzMxYSIsIl8weDNjOGZkZSIsIk9iamVjdCIsIl8weDNmNGJkMiIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgyNmRhZTQiLCJfMHg1ZDE2NWYiLCJfMHg0MThhNTgiLCJfMHg1NmZkODIiLCJfMHhkNDY4YjIiLCJfMHgxMzk1NWIiLCJfMHg1ZjQwZDgiLCJfMHhmZTczYjIiLCJfMHg0NzAxZmEiLCJfMHg0OWQ4MWYiLCJub2RlSWQiLCJfMHg0Y2NhMTEiLCJyb290Tm9kZUlkIiwiXzB4MTM4MWQwIiwiaXNUeXBlIiwiXzB4MzhmNDQ2IiwiXzB4MjhmOTQ5IiwiXzB4NDc1ZjdjIiwiXzB4NmEyOTEiLCJfMHgyOWEzMzAiLCJfMHhiN2EwNGUiLCJfMHg0N2QxMGQiLCJfMHgyODJmYWEiLCJfMHgxNjMxNDUiLCJfMHgxN2JmODYiLCJfMHgxMTIyNDIiLCJfMHgxODg3YTkiLCJfMHg1YjA3NmQiLCJfMHgyYjc0YmUiLCJfMHg0MWQzZDAiLCJfMHgxY2M3MjIiLCJfMHg0ZTFjMjUiLCJfMHhhNmNmNCIsIl8weDNhOTIwZiIsIl8weDVmMGI0ZiIsIl8weDRhZWU5NiIsIl8weDEwZDUzNiIsIl8weDY1YWE2MCIsIl8weDQ0MjRkZiIsIl8weDM3MGUxNCIsIl8weDM5OWM3MiIsIl8weDNlZWZjZSIsIl8weDI4YTg4OCIsIl8weDIyYzkwZSIsIl8weDRjYzk4NSIsIl8weDIxZjU0YyIsIl8weDM4MzY4NyIsIlJFRCIsIl8weDU2YWM3NyIsIl8weDM4ZWE2MSIsIl8weDMzNzkwNyIsIl8weDNiZjQ1OCIsIl8weDMzYTIyZiIsIl8weDFjNTQxMiIsIl8weDU4ODhiMyIsIl8weDRkNjgwYyIsIl8weDMyZTAyMCIsIl8weDQ3OWU1MSIsIl8weDRiOGNmYyIsIl8weDliZTllMCIsIl8weDU5MWRlNCIsIl8weDQxMzc3MSIsIl8weDQ2NzE3MCIsImpzb24iLCJfMHgzOTE0Y2YiLCJkYXRhIiwiXzB4NTIyNzQyIiwiXzB4NWJiZWU0IiwiXzB4MzMzNmQ0IiwiXzB4MmMwYjExIiwic2V0VGltZW91dCIsIl8weGQwYmE4MiIsIl8weDM3MDEzNCIsIl8weDQ4NDllMCIsIl8weDFlODVkZiIsIl8weDI0N2VjZCIsIl8weDUyMTcwYSIsIl8weDMxNzgyZCIsIl8weDI3OTVhOCIsIl8weDNjODBjNyIsIl8weDNmN2MwMyIsIl8weDEyNDFlOSIsIl8weDk3OTA1IiwiXzB4MWI2NWQwIiwiXzB4NThkZDg1IiwiXzB4NTRkNjkyIiwiXzB4NDdkYjJkIiwiXzB4MzNiN2Q0IiwiXzB4NDllNjZlIiwiXzB4MWFmNjdlIiwiXzB4MTliMWQxIiwiXzB4MWVjYmQwIiwiJCIsIl8weDU2NDQzZCIsIl8weDEzZmZjMCIsImljb24iLCJfMHgyNTZjZjMiLCJjb2xvciIsIl8weDVkMmEzOCIsIl8weDNmZDBjZCIsIl8weDViYzQ5NyIsIl8weDJlYWYwMiIsIl8weDQ3MDhlOCIsIl8weDE4YWE3NCIsIl8weDFkYzdhZCIsIl8weDMzMjMyYSIsIl8weDM1NjZiYiIsIl8weDNmODllYSIsIl8weGM0OGU3ZSIsIl8weDFlYzFjNSIsIl8weDIyNGZiMyIsIl8weDViZGU4ZSIsIl8weDU4OWYzNSIsIl8weDM2NDhjYSIsIl8weDVlZTA5MiIsIl8weDRjYWZiYiIsIl8weDE4MzE3MiIsIl8weDFkNjRlZSIsIl8weDI3MTM1IiwiXzB4YzY1OTI1IiwiXzB4NGFmMzAyIiwidW5kZWZpbmVkIiwiXzB4Mjk1MWQyIiwiXzB4NDQxNmQyIiwiXzB4MjhiZGUzIiwiXzB4NTU5MmYxIiwiXzB4NDg2ODkwIiwiXzB4NWU4NTQ4IiwiXzB4NWI3MTliIiwiXzB4NTFmZmU3IiwiXzB4NDM1MGI2IiwiXzB4NTg2YzU1IiwiXzB4NDcyYmEwIiwiXzB4MTEzODAwIiwiXzB4YTAxMzZjIiwiXzB4MTEyMTgwIiwicmVmZXJlbmNlcyIsIl8weDRhYjgyMSIsIl8weDI0MmM0NSIsIl8weDRkNjhmMiIsIl8weDJkYzc2NiIsIl8weDQ3M2MzMiIsIl8weDQxYzgwNSIsIl8weDNiZWU4ZCIsIl8weDJmZTRjYiIsIl8weDNlNjQwYSIsIl8weGJmMDBhZiIsIl8weDFkNGNkNiIsIl8weDM4N2UyOCIsIl8weDRkNDBiOSIsIl8weDM4Y2FhYSIsIl8weDViMjIwOCIsIl8weGMxNTU1MiIsIl8weDEyMDJjMyIsIl8weDQ1MmMwMSIsIl8weDJhZjE5MCIsIl8weGVlYzk4IiwiXzB4NWFjMWFjIiwiXzB4ZTYzMWZkIiwiXzB4MzFiZTI3IiwiXzB4MjkyNTAxIiwiXzB4Zjk1Njk0IiwiXzB4M2U1MzM0IiwiXzB4YzFhNWYzIiwiXzB4MTk1NWNmIiwiXzB4NDEwODEwIiwiXzB4MTEwNDhiIiwiZG9jdW1lbnQiLCJfMHhjMmIzYmQiLCJfMHg1YTQwMzgiLCJfMHg4NGUyNjgiLCJfMHgyNjRhZTAiLCJfMHgxZDFjY2MiLCJfMHgxZTY2YmEiLCJfMHgzNmFkMWYiLCJfMHgzMGNlMGIiLCJfMHg0ODI1NjYiLCJfMHg0ZjFhZDUiLCJfMHg0ZjNmOGMiLCJfMHg1MTgwZjgiLCJfMHg0N2ExMDYiLCJfMHgxMGFiNDYiLCJfMHgyZThhNWQiLCJfMHg1NjJjNTMiLCJfMHgxOTYxMjciLCJfMHg0ZjdkMWUiLCJfMHhmY2M1MjAiLCJ3aW5kb3ciLCJfMHgzMGJiMzQiLCJfMHgxZDIzMDAiLCJfMHgzOTIxYjQiLCJfMHg1MGU0OTYiLCJfMHgzMzE4YjYiLCJfMHgxZTZiNjciLCJfMHgzMTAwZDEiLCJfMHg2NmUyNjIiLCJfMHgxNDMwZjEiLCJfMHgzYjQ5ZGMiLCJfMHgxNjZlNTUiLCJfMHgzMmZjMTMiLCJfMHg0OTA3MjAiLCJfMHgxNDgwNDMiLCJfMHg1NjRiZmYiLCJfMHg4NmQzNWMiLCJfMHg1YjQzZTUiLCJfMHgzN2M0NmUiLCJfMHgzZTcxZmIiLCJfMHg0MmY4NzUiLCJfMHg0NTJiYjUiLCJfMHg0NTM1YjYiLCJfMHg0OTljY2MiLCJfMHgyODJkNmEiLCJfMHg1YTQ2OTciLCJfMHgzMTBmMDkiLCJfMHg1YjBmZjciLCJfMHgzODg0ZmEiLCJfMHgzM2QxMDUiLCJfMHg0ZGI0MjMiLCJfMHgzNjRjYmMiLCJfMHgzOGFiNjciLCJfMHg0NTEzMjUiLCJfMHgxZjYyZjkiLCJfMHg1ZWJlMjQiLCJfMHg0YmNjZjIiLCJfMHg0ZWNjNWIiLCJfMHgxMTc2Y2IiLCJfMHg0MTA3YjgiLCJfMHgzNTI5ODEiLCJfMHg1NDdhNDEiLCJfMHg1NTA2MDMiLCJfMHgzOWE4ZGQiLCJfMHgyN2Q4MGYiLCJfMHgxODRhMjMiLCJfMHg0M2Q2NWIiLCJfMHg1NjlmNTUiLCJfMHg1MzA4ODkiLCJfMHgyMzQzMWEiLCJfMHgyZDdiYjIiLCJfMHg0YWEyNGMiLCJfMHgyOTQ3MDMiLCJfMHg2NTQxM2YiLCJfMHgzMTJlNjEiLCJfMHhiODk1NTEiLCJfMHgyZTM1Y2YiLCJfMHgzZGNiZDIiLCJfMHgxMWNhMWQiLCJfMHgxMzdmZTkiLCJfMHgxYTRmNjgiLCJfMHgxMTc4N2IiLCJfMHgzOTA3MDQiLCJfMHgxNmEzNjMiLCJfMHgzOTZlMWUiLCJfMHg0NmIwMGUiLCJfMHhjZjZiY2IiLCJfMHg3MzQ4NjciLCJfMHg1MDFmZTgiLCJfMHgxYWFhZjAiLCJfMHgyYzc1N2IiLCJfMHg1NTUzODkiLCJfMHgzYTc0ZDMiLCJfMHg0YWJkZGIiLCJfMHgxYzFlMGMiLCJfMHg2OGFjODkiLCJfMHgxZmRhMDEiLCJfMHg1ZGZlZmEiLCJfMHg1ZGE1ZjYiLCJib2R5IiwiXzB4NDAzNGQyIiwidXJsIiwiXzB4ZDllY2VlIiwiXzB4NGJmMjlhIiwiXzB4MTZlMGRiIiwiXzB4NDQ0ZTRjIiwiXzB4NDZmY2U2IiwiXzB4MmRkZjdiIiwiXzB4MzBiMjU3IiwiXzB4MjFkYmVkIiwiQXJyYXkiLCJfMHgyMTZlNjkiLCJfMHgyNmJiMTUiLCJfMHg0ZmZhYzgiLCJfMHgyYmYzNDAiLCJfMHgzMzMxZjAiLCJfMHg0ZWEwYmEiLCJzZWN1cml0eU1vZGUiLCJfMHg0MjEyYTEiLCJzZWN1cml0eVBvbGljeSIsIl8weDMzNGJmOSIsInVzZXJJZGVudGl0eVR5cGUiLCJfMHgxMmZjZGQiLCJjcmVkZW50aWFscyIsIl8weDIzNjU2NCIsIm5hbWVzcGFjZUFsaWFzZXMiLCJfMHgzNWY0YjEiLCJfMHgyYjRhOWUiLCJfMHg4NmIzMzkiLCJfMHgyNmM5NDciLCJfMHgzNzBjODIiLCJfMHg1MTI4MDQiLCJfMHgyODJmNTYiLCJfMHgxNzY1MjgiLCJfMHg1NTQ1YjMiLCJfMHgyMTIyMDAiLCJfMHgyNTI1MGEiLCJfMHg1NzZiZmQiLCJfMHgzNzlmMDMiLCJfMHhhOGIzN2EiLCJfMHg1MGI2NTgiLCJfMHgxNzY1ZWEiLCJfMHgyOGJmNjkiLCJfMHg0ZmRhOTciLCJfMHg0YmYwZjUiLCJfMHgzOTg0NDgiLCJfMHg0ZmEzNzciLCJfMHg0NzFkMTkiLCJfMHgyZTE1MGMiLCJfMHg1ODk1NWQiLCJfMHgyOTNhMTciLCJfMHgyNjQxZGEiLCJfMHgxNmQzMzAiLCJfMHgxYjUyMjkiLCJfMHg4ZDI4YmMiLCJfMHg0NzM3YzMiLCJfMHgzNzRjN2IiLCJfMHgzMzQ5ODIiLCJfMHg0YjA5ZjciLCJfMHg1MDk1NTMiLCJfMHhiM2U4MjIiLCJfMHgzYzRlNmYiLCJfMHg1ZWQ4OTUiLCJfMHg0NzhjNDAiLCJfMHg0NDQ1ZmUiLCJfMHgyNTViZDYiLCJfMHgzZmMxYzMiLCJfMHgzNjQ0ZGYiLCJuYXZpZ2F0b3IiLCJfMHgzYmRkZGUiLCJfMHg0NThhZTgiLCJfMHgzOGQ4NWQiXSwibWFwcGluZ3MiOiJzb0JBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBZVEsU0FBZixDQUFMLEMsRUFBK0IsTUFBT0UsU0FBUCxDLENBQVlKLFNBQUEsQ0FBT0ksU0FBUCxDLEdBQzdFLFNBQVNDLFNBQVQsQ0FBa0JDLFNBQWxCLEMseUJBQTJCLEcsQ0FBTUgsU0FBQSxDQUFLVCxTQUFBLEMsZ0JBQUEsRUFBbUJZLFNBQW5CLENBQUwsQyxFQUFtQyxNQUFPQyxT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ZixDQUE5QixDLENBQ0E5VSxPQUFBLEMsS0FBQSxFLGdCQUFBLENBQW9CRCxJQUFBLEMsZ0JBQUEsRUFBZStVLFNBQWYsQ0FBcEIsQyxDQUNBOVUsT0FBQSxDLGdCQUFBLEUsZUFBQSxDQUFvQmtWLFNBQXBCLEMsRUF0QkosQyxFQXJJcUMsQyxZQThKekMsRSxFQTlKeUMsQ0FBN0MsQyxFQTdtQ0osRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICAgICAgY2FzZSBcIkRhdGFUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS10ZXh0LXdpZHRoXCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKF9hLCBub2RlSWRfMSwgdGVtcGxhdGVfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgdGVtcGxhdGVfMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZm9yLW5vZGUtcmVkYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vYnJvd3NlYDtcbiAgICAgICAgY29uc3QgYnJvd3NlRGVzY3JpcHRpb24gPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRlbXBsYXRlKSwgeyBub2RlSWQsIHJlc3VsdE1hc2s6IDYzIH0pO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBicm93c2VEZXNjcmlwdGlvbixcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzOiBbXSB9O1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKFwiYnJvd3NlIGZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3Qgd2Fsa0JhY2t3YXJkID0gKF9hLCBfYikgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBfYl0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgeyBub2RlSWQsIHJvb3ROb2RlSWQsIGlzVHlwZSB9KSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS93YWxrLWJhY2t3YXJkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIHJvb3ROb2RlSWQsXG4gICAgICAgICAgICAgICAgaXNUeXBlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIHJldHVybiBqc29uLmJyb3dzZVBhdGg7XG4gICAgfSk7XG4gICAgY29uc3QgY2hvb3NlTm9kZUlkID0gKGRhdGEsIG1vZGUpID0+IHtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgIHJldHVybiBkYXRhLnJlcXVlc3RlZE5vZGVJZDtcbiAgICAgICAgfVxuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEuYnBfaW5kZXhlZDtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhLmJwX2FsaWFzZWQgfHwgZGF0YS5icF9pbmRleGVkO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWROb2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YS5ub2RlSWRfYWxpYXNlZCB8fCBkYXRhLm5vZGVJZF9uc3U7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkX25zdTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBjYXNlIFwibm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRhdGEubm9kZUlkO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBtYWtlVG9vbHRpcCA9IChkYXRhKSA9PiB7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1c0NvZGUgIT09IFwiR29vZFwiKSB7XG4gICAgICAgICAgICByZXR1cm4gYHN0YXR1c0NvZGU6ICR7ZGF0YS5zdGF0dXNDb2RlfWA7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBsZXQgc3RyID0gW107XG4gICAgICAgICAgICBzdHIucHVzaChgbm9kZUlkOiAke2RhdGEubm9kZUlkfWApO1xuICAgICAgICAgICAgc3RyLnB1c2goYGJyb3dzZSBwYXRoOiAke2RhdGEuYnBfaW5kZXhlZH1gKTtcbiAgICAgICAgICAgIHN0ci5wdXNoKGBub2RlIGNsYXNzOiAke05vZGVDbGFzc1tkYXRhLm5vZGVDbGFzc119YCk7XG4gICAgICAgICAgICBpZiAoZGF0YS5ub2RlSWRfbnN1KSB7XG4gICAgICAgICAgICAgICAgc3RyLnB1c2goYG5zdSBub2RlSWQ6ICR7ZGF0YS5ub2RlSWRfbnN1fWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGRhdGEubm9kZUlkX2FsaWFzZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBOb2RlSWQ6ICR7ZGF0YS5ub2RlSWRfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChkYXRhLmJwX2luZGV4ZWQpIHtcbiAgICAgICAgICAgICAgICBzdHIucHVzaChgYWxpYXNlZCBicm93c2VQYXRoOiAke2RhdGEuYnBfYWxpYXNlZH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzdHIuam9pbihcIlxcblwiKTtcbiAgICAgICAgfVxuICAgIH07XG4gICAgZnVuY3Rpb24gZmlndXJlT3V0TW9kZShlbmhhbmNlZE5vZGVJZCkge1xuICAgICAgICBpZiAoZW5oYW5jZWROb2RlSWQubWF0Y2goL15uc3U9LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcIm5zdU5vZGVJRFwiO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbmhhbmNlZE5vZGVJZC5tYXRjaCgvXihucz0uKjspPyhpfGJ8c3xnKT0vKSkge1xuICAgICAgICAgICAgcmV0dXJuIFwibm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9ebnNhPS8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJhbGlhc2VkTm9kZUlkXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pWzAtOV0rOi8pKSB7XG4gICAgICAgICAgICByZXR1cm4gXCJicm93c2VQYXRoXCI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGVuaGFuY2VkTm9kZUlkLm1hdGNoKC9eKFxcL3xcXC4pLio6LykpIHtcbiAgICAgICAgICAgIHJldHVybiBcImJyb3dzZVBhdGhcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHN0cikge1xuICAgICAgICBjb25zdCBtb2RlID0gZmlndXJlT3V0TW9kZShzdHIpO1xuICAgICAgICBzd2l0Y2ggKG1vZGUpIHtcbiAgICAgICAgICAgIGNhc2UgXCJub2RlSWRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuXCI7XG4gICAgICAgICAgICBjYXNlIFwiYWxpYXNlZE5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5hXCI7XG4gICAgICAgICAgICBjYXNlIFwibnN1Tm9kZUlEXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibnN1XCI7XG4gICAgICAgICAgICBjYXNlIFwiYnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImJcIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkQnJvd3NlUGF0aFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImFiXCI7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBcInRcIjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiB0b01vZGUodikge1xuICAgICAgICBsZXQgbW9kZTtcbiAgICAgICAgc3dpdGNoICh2KSB7XG4gICAgICAgICAgICBjYXNlIFwiblwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5hXCI6XG4gICAgICAgICAgICAgICAgbW9kZSA9IFwiYWxpYXNlZE5vZGVJZFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcIm5zdVwiOlxuICAgICAgICAgICAgICAgIG1vZGUgPSBcIm5zdU5vZGVJRFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBcImJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJicm93c2VQYXRoXCI7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFwiYWJcIjpcbiAgICAgICAgICAgICAgICBtb2RlID0gXCJhbGlhc2VkQnJvd3NlUGF0aFwiO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBtb2RlO1xuICAgIH1cbiAgICBmdW5jdGlvbiBmcm9tTW9kZShtb2RlKSB7XG4gICAgICAgIHN3aXRjaCAobW9kZSkge1xuICAgICAgICAgICAgY2FzZSBcIm5vZGVJZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcIm5cIjtcbiAgICAgICAgICAgIGNhc2UgXCJhbGlhc2VkTm9kZUlkXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwibmFcIjtcbiAgICAgICAgICAgIGNhc2UgXCJuc3VOb2RlSURcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJuc3VcIjtcbiAgICAgICAgICAgIGNhc2UgXCJicm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYlwiO1xuICAgICAgICAgICAgY2FzZSBcImFsaWFzZWRCcm93c2VQYXRoXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiYWJcIjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwidFwiO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IF9jYWxsQ2hlY2tOb2RlSWQgPSAoX2EsIG5vZGVJZF8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZUlkID0gZW5kcG9pbnROb2RlLmlkO1xuICAgICAgICBjb25zdCBuID0gUkVELm5vZGVzLm5vZGUoZUlkKTtcbiAgICAgICAgY29uc29sZS5sb2cobi5uYW1lc3BhY2VBbGlhc2VzKTtcbiAgICAgICAgbi5uYW1lc3BhY2VBbGlhc2VzO1xuICAgICAgICBjb25zdCBuYW1lc3BhY2VBbGlhc2VzID0gZW5kcG9pbnROb2RlLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgICAgICBuYW1lc3BhY2VBbGlhc2VzLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIHsganNvbiwgZGF0YSB9O1xuICAgIH0pO1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKF9hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBtb2RlXzEsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbW9kZSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3QgZW5oYW5jZWROb2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCB7IGpzb24sIGRhdGEgfSA9IHlpZWxkIF9jYWxsQ2hlY2tOb2RlSWQoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sIGVuaGFuY2VkTm9kZUlkKTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWZpY2F0aW9uID0gKHRleHQsIGNsYXNzTmFtZSkgPT4ge1xuICAgICAgICAgICAgJGluZm8udGV4dCh0ZXh0KS5hZGRDbGFzcyhcInN0ZXJmaXZlLWluZm9cIikuYWRkQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICRpbmZvLnNob3coKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICRpbmZvLnJlbW92ZUNsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAgICAgJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgfSwgMzAwMCk7XG4gICAgICAgIH07XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgZW5oYW5jZWROb2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRvb2x0aXAgPSBtYWtlVG9vbHRpcChqc29uKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LmF0dHIoXCJ0aXRsZVwiLCB0b29sdGlwKTtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke2VuaGFuY2VkTm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBmdW5jdGlvbiBmZXRjaENoaWxkcmVuKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUxKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDIgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTIpO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICByZWZlcmVuY2VzOiBbLi4uYnJvd3NlUmVzdWx0MS5yZWZlcmVuY2VzLCAuLi5icm93c2VSZXN1bHQyLnJlZmVyZW5jZXNdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHRlbXBsYXRlU1QgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc1N1YnR5cGVcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfCBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8IE5vZGVDbGFzcy5EYXRhVHlwZSB8IE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgZnVuY3Rpb24gZmV0Y2hTdWJ0eXBlcygkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlU1QpO1xuICAgICAgICAgICAgcmV0dXJuIGJyb3dzZVJlc3VsdDE7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBtYWtlRWxlbWVudCA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoIXJlZmVyZW5jZSB8fCAhcmVmZXJlbmNlLm5vZGVJZCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGk+PGkgY2xhc3M9XCJmYSBmYS1lcnJvclwiIHN0eWxlPVwiY29sb3I6cmVkO1wiPjwvaT5ubyByZWZlcmVuY2UgITx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbiA9IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgdCA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHsgaWNvbiwgY29sb3IgfSA9IGdldEljb24ocmVmZXJlbmNlKTtcbiAgICAgICAgY29uc3QgdGl0bGUgPSBgKCR7cmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpfSkgJHsoKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lKSB8fCAoKF9kID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QudGV4dCkgfHwgXCJcIn1gO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaSBrZXk9XCIke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX1cIn0+PHNwYW4gY2xhc3M9XCJ0cmVlLXRleHRcIiB0aXRsZT0ke3RpdGxlfT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTwvc3Bhbj48dWw+PC91bD48L2xpPmApO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBmaW5kRWxlbWVudCA9IChub2RlSWQsICR0cmVlKSA9PiB7XG4gICAgICAgIHJldHVybiAkdHJlZS5maW5kKGBsaVtrZXk9XCIke25vZGVJZH1cIl1gKTtcbiAgICB9O1xuICAgIGNvbnN0IHNlbGVjdFNpbmdsZSA9ICh0aGF0LCAkbGkpID0+IHtcbiAgICAgICAgdGhhdC4kdHJlZS5maW5kKFwibGkgPiAudHJlZS10ZXh0XCIpLnJlbW92ZUNsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgICAgIC8vIGNsZWFyIGFsbCBzZWxlY3RlZCBpdGVtc1xuICAgICAgICAkbGkuZmluZChcIi50cmVlLXRleHQ6Zmlyc3RcIikuYWRkQ2xhc3MoXCJzZWxlY3RlZFwiKTtcbiAgICB9O1xuICAgIGNvbnN0IGF1dG9FeHBhbmQgPSAodGhhdCwgYnJvd3NlUGF0aCwgJHRyZWUpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAvLyBleHBhbmQgdGhlIHRyZWUgdG8gc2hvdyB0aGUgbm9kZUlkXG4gICAgICAgIGxldCAkY3VycmVudCA9ICR0cmVlLmNoaWxkcmVuKFwiOmZpcnN0XCIpO1xuICAgICAgICBicm93c2VQYXRoLnJlbGF0aXZlUGF0aC5lbGVtZW50cyB8fCBbXTtcbiAgICAgICAgY29uc3Qgbm9kZUlkcyA9IGJyb3dzZVBhdGgubm9kZUlkcyB8fCBbXTtcbiAgICAgICAgaWYgKG5vZGVJZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChjb25zdCBuIG9mIG5vZGVJZHMpIHtcbiAgICAgICAgICAgIGlmICgkY3VycmVudC5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIGV4cGFuZCBhbmQgc2VsZWN0IHRoZSByaWdodCBlbGVtZW50XG4gICAgICAgICAgICAgICAgeWllbGQgX2V4cGFuZExpKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gZmluZEVsZW1lbnQobiwgJGN1cnJlbnQpO1xuICAgICAgICAgICAgaWYgKCRlbGVtZW50Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRjdXJyZW50ID0gJGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICAgICAgc2VsZWN0U2luZ2xlKHRoYXQsICRjdXJyZW50KTtcbiAgICAgICAgc2Nyb2xsVG9MaSh0aGF0LiRkcm9wZG93biwgJGN1cnJlbnQpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIHNjcm9sbFRvTGkoJGNvbnRhaW5lciwgJHRhcmdldExpKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcG9zaXRpb24gb2YgdGhlIHRhcmdldCBpdGVtIHJlbGF0aXZlIHRvIGl0cyBjb250YWluZXJcbiAgICAgICAgY29uc3QgbGlQb3MgPSAkdGFyZ2V0TGkucG9zaXRpb24oKS50b3A7XG4gICAgICAgIC8vIEdldCB0aGUgY3VycmVudCBzY3JvbGwgcG9zaXRpb24gb2YgdGhlIGNvbnRhaW5lclxuICAgICAgICBjb25zdCBjb250YWluZXJTY3JvbGxUb3AgPSAkY29udGFpbmVyLnNjcm9sbFRvcCgpO1xuICAgICAgICBpZiAoY29udGFpbmVyU2Nyb2xsVG9wID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgcG9zaXRpb24gdG8gc2Nyb2xsIHRvIChjdXJyZW50IHNjcm9sbCArIGl0ZW0ncyBwb3NpdGlvbilcbiAgICAgICAgLy8gQWRqdXN0IHRoaXMgY2FsY3VsYXRpb24gYmFzZWQgb24geW91ciBuZWVkc1xuICAgICAgICBjb25zdCBzY3JvbGxUbyA9IGNvbnRhaW5lclNjcm9sbFRvcCArIGxpUG9zIC0gJGNvbnRhaW5lci5oZWlnaHQoKSAvIDIgKyAkdGFyZ2V0TGkuaGVpZ2h0KCkgLyAyO1xuICAgICAgICAvLyBTY3JvbGwgdGhlIGNvbnRhaW5lciB0byBlbnN1cmUgdGhlIGl0ZW0gaXMgdmlzaWJsZVxuICAgICAgICAkY29udGFpbmVyLmFuaW1hdGUoe1xuICAgICAgICAgICAgc2Nyb2xsVG9wOiBzY3JvbGxUbyxcbiAgICAgICAgfSwgNTAwKTsgLy8gQWRqdXN0IHRoZSBkdXJhdGlvbiAoNTAwbXMpIGFzIG5lZWRlZFxuICAgIH1cbiAgICBjb25zdCByZWFjaFNlbGVjdGlvbiA9ICh0aGF0LCBwYXJlbnROb2RlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gdGhhdC4kaW5wdXQudmFsKCk7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICByb290Tm9kZUlkOiBwYXJlbnROb2RlLm5vZGVJZCxcbiAgICAgICAgICAgIGlzVHlwZTogdGhhdC5vcHRpb25zLmlzVHlwZVJlZiB8fCBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICBjb25zdCBicm93c2VQYXRoID0geWllbGQgd2Fsa0JhY2t3YXJkKGRhdGEsIG9wdGlvbnMpO1xuICAgICAgICBpZiAoIWJyb3dzZVBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB5aWVsZCBhdXRvRXhwYW5kKHRoYXQsIGJyb3dzZVBhdGgsIHRoYXQuJHRyZWUpO1xuICAgIH0pO1xuICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgIC8vIHNvcnQgcmVmZXJlbmNlICAgYnkgYnJvd3NlTmFtZVxuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXMuc29ydCgoYSwgYikgPT4geyB2YXIgX2EsIF9iOyByZXR1cm4gKCgoX2EgPSBhLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5uYW1lKSB8fCBcIlwiKS5sb2NhbGVDb21wYXJlKCgoX2IgPSBiLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCBcIlwiKTsgfSk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBmdW5jdGlvbiBtYWtlQ29ubmVjdGlvbih0aGF0KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICBlbmRwb2ludDogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludCA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50KCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQsXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cbiAgICBmdW5jdGlvbiBfZXhwYW5kTGkodGhhdCwgJGxpKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICBjb25zdCBmID0gIXRoYXQub3B0aW9ucy5pc1R5cGVSZWYgPyBmZXRjaENoaWxkcmVuIDogZmV0Y2hTdWJ0eXBlcztcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgeWllbGQgX2ZldGNoRGF0YUZvck5vZGUodGhhdCwgJGxpLCBmLCBkYXRhKTtcbiAgICAgICAgICAgICAgICAvLyBtYXJrIGFzIGV4cGFuZGVkXG4gICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0UGFyZW50Tm9kZSA9IHtcbiAgICAgICAgYnJvd3NlTmFtZTogeyBuYW1lc3BhY2VJbmRleDogMCwgbmFtZTogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgbm9kZUNsYXNzOiBcIk9iamVjdFwiLFxuICAgICAgICBub2RlSWQ6IFwibnM9MDtpPTg1XCIsXG4gICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgIHR5cGVEZWZpbml0aW9uOiBGb2xkZXJUeXBlLFxuICAgIH07XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+IGRlZmF1bHRQYXJlbnROb2RlLFxuICAgICAgICAgICAgICAgIGZpbHRlcjogKCkgPT4gdHJ1ZSxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgICAgIGlzVHlwZVJlZjogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Ll9fcGFyZW50Tm9kZSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlLmNhbGwodGhhdCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhIGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRlc2MgPSB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gZGVzYztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX19wYXJlbnROb2RlID0gYTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhhdC5fX3BhcmVudE5vZGUgfHwgZGVmYXVsdFBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzZXQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsc28gcmVzZXQgcGFyZW50IG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHRoYXQ7XG4gICAgICAgICAgICAgICAgICAgIGEuX19wYXJlbnROb2RlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSB5aWVsZCB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkobW9kZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhhdCk7XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgbW9kZSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pLnRoZW4oKHN1Y2Nlc3MpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcImlucHV0LWVycm9yXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kY29tYm8ucmVtb3ZlQ2xhc3MoXCJpbnB1dC1lcnJvclwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9oaWRlTWVudShtZW51KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub2ZmKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWNsb3NlLXByb3BlcnR5LXNlbGVjdFwiKTtcbiAgICAgICAgICAgICAgICBtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKG1lbnUub3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgbWVudS5maW5kKCdpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0nKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQucHVzaCgkKHRoaXMpLmRhdGEoXCJ2YWx1ZVwiKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrKHNlbGVjdGVkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJGVsZW1lbnREaXYuaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIC8veHggfSBlbHNlIGlmICh0aGlzLiRvcHRpb25TZWxlY3RUcmlnZ2VyLmlzKFwiOnZpc2libGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy94eCAgICAgdGhhdC4kb3B0aW9uU2VsZWN0VHJpZ2dlci50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnRyaWdnZXIoXCJmb2N1c1wiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZU1lbnUobWVudU9wdGlvbnMsIG9wdHMsIGNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IG1lbnUgPSAkKFwiPGRpdj5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS10eXBlZElucHV0LW9wdGlvbnMgc3RlcmZpdmUtb25saW5lLW1lbnVcIik7XG4gICAgICAgICAgICAgICAgbWVudS5vcHRzID0gb3B0cztcbiAgICAgICAgICAgICAgICBtZW51LmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgICAgICAgICAgICAgbWVudU9wdGlvbnMuZm9yRWFjaCgob3B0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0ID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcHQgPSB7IHZhbHVlOiBvcHQsIGxhYmVsOiBvcHQgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB2YXIgb3AgPSAkKCc8YSBocmVmPVwiI1wiPjwvYT4nKS5hdHRyKFwidmFsdWVcIiwgb3B0LnZhbHVlKS5hcHBlbmRUbyhtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5sYWJlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgb3AudGV4dChvcHQubGFiZWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQudGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wLnByb3AoXCJ0aXRsZVwiLCBvcHQudGl0bGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcHQuaWNvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdC5pY29uLmluZGV4T2YoXCI8XCIpID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChvcHQuaWNvbikucHJlcGVuZFRvKG9wKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wdC5pY29uLmluZGV4T2YoXCIvXCIpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCI8aT5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzczogXCJyZWQtdWktdHlwZWRJbnB1dC1pY29uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBcIm1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpOyAtd2Via2l0LW1hc2staW1hZ2U6IHVybChcIiArIG9wdC5pY29uICsgXCIpO1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiPGk+XCIsIHsgY2xhc3M6IFwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBcIiArIG9wdC5pY29uIH0pLnByZXBlbmRUbyhvcCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC5jc3MoeyBwYWRkaW5nTGVmdDogXCIxOHB4XCIgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFvcHQuaWNvbiAmJiAhb3B0LmxhYmVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcC50ZXh0KG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdmFyIGNiO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2IgPSAkKCc8aW5wdXQgdHlwZT1cImNoZWNrYm94XCI+JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuY3NzKFwicG9pbnRlci1ldmVudHNcIiwgXCJub25lXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmRhdGEoXCJ2YWx1ZVwiLCBvcHQudmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnByZXBlbmRUbyhvcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAub24oXCJtb3VzZWRvd25cIiwgZnVuY3Rpb24gKGV2dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgb3Aub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghb3B0cy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKG9wdC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYi5wcm9wKFwiY2hlY2tlZFwiLCAhY2IucHJvcChcImNoZWNrZWRcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwibm9uZVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIG1lbnUub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2dC5rZXlDb2RlID09PSA0MCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBET1dOXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLm5leHQoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDM4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFVQXG4gICAgICAgICAgICAgICAgICAgICAgICAkKHRoaXMpLmNoaWxkcmVuKFwiOmZvY3VzXCIpLnByZXYoKS50cmlnZ2VyKFwiZm9jdXNcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZXZ0LmtleUNvZGUgPT09IDI3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBFU0NBUEVcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5faGlkZU1lbnUobWVudSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBtZW51O1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpc2FybUNsaWNrOiBmYWxzZSxcbiAgICAgICAgICAgIF9zaG93TWVudShtZW51LCByZWxhdGl2ZVRvKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGlzYXJtQ2xpY2spIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXNhcm1DbGljayA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhciB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgcG9zID0gcmVsYXRpdmVUby5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0ID0gcmVsYXRpdmVUby5oZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB2YXIgbWVudUhlaWdodCA9IG1lbnUuaGVpZ2h0KCk7XG4gICAgICAgICAgICAgICAgdmFyIHRvcCA9IGhlaWdodCArIHBvcy50b3A7XG4gICAgICAgICAgICAgICAgaWYgKHRvcCArIG1lbnVIZWlnaHQgLSAkKGRvY3VtZW50KS5zY3JvbGxUb3AoKSA+ICQod2luZG93KS5oZWlnaHQoKSkge1xuICAgICAgICAgICAgICAgICAgICB0b3AgLT0gdG9wICsgbWVudUhlaWdodCAtICQod2luZG93KS5oZWlnaHQoKSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmICh0b3AgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG1lbnUuaGVpZ2h0KG1lbnVIZWlnaHQgKyB0b3ApO1xuICAgICAgICAgICAgICAgICAgICB0b3AgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBtZW51LmNzcyh7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogdG9wICsgXCJweFwiLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBwb3MubGVmdCArIFwicHhcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBtZW51LnNsaWRlRG93bigxMDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2RlbGF5KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdWlTZWxlY3QuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dC1mb2N1c1wiKTtcbiAgICAgICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJtb3VzZWRvd24ucmVkLXVpLXR5cGVkSW5wdXQtY2xvc2UtcHJvcGVydHktc2VsZWN0XCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChtZW51KS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9oaWRlTWVudShtZW51KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkKGV2ZW50LnRhcmdldCkuY2xvc2VzdChyZWxhdGl2ZVRvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LmRpc2FybUNsaWNrID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2hvd1R5cGVNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3dNZW51KHRoYXQuJG1lbnUsIHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IHRoYXQuc2VsZWN0ZWRNZW51SXRlbTtcbiAgICAgICAgICAgICAgICB2YXIgc2VsZWN0ZWQgPSB0aGF0LiRtZW51LmZpbmQoXCJbdmFsdWU9J1wiICsgdHlwZSArIFwiJ1wiKTtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQudHJpZ2dlcihcImZvY3VzXCIpO1xuICAgICAgICAgICAgICAgIH0sIDEyMCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2luaXRNZW51KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdFRyaWdnZXIuYXR0cihcInRhYmluZGV4XCIsIC0xKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLm9uKFwibW91c2Vkb3duLnJlZC11aS10eXBlZElucHV0LWZvY3VzLWJsb2NrXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHRoYXQuJG1lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kbWVudS5yZW1vdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gZmEtaWQtY2FyZFxuICAgICAgICAgICAgICAgIGNvbnN0IHR5cGVMaXN0ID0gW1xuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcInRleHRcIiwgdmFsdWU6IFwidFwiLCB0aXRsZTogXCJWYWx1ZSBpcyBub3QgdmVyaWZpZWRcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtZm9udFwiL2k+ICcgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwibXNnLlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwibXNnXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCJub2RlIGlkIG9yICBicm93c2UgcGF0aCBjb21lcyBmcm9tIGluamVjdGVkIG1zZyBwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWVudmVsb3BlLW9wZW4tb1wiLz4nLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7IGxhYmVsOiBcIk5vZGVJZFwiLCB2YWx1ZTogXCJuXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz4xICZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQWxpYXNlZCBOb2RlSWRcIiwgdmFsdWU6IFwibmFcIiwgaWNvbjogJzxpIGNsYXNzPVwiZmEgZmEtYm9va21hcmtcIi8+Jm5ic3A7ICcgfSxcbiAgICAgICAgICAgICAgICAgICAgeyBsYWJlbDogXCJOb2RlSWQgd2l0aCBuYW1lc3BhY2UgVXJuXCIsIHZhbHVlOiBcIm5zdVwiLCBpY29uOiAnPGkgY2xhc3M9XCJmYSBmYS1pZC1jYXJkXCIvPiZuYnNwOyAnIH0sXG4gICAgICAgICAgICAgICAgICAgIHsgbGFiZWw6IFwiQnJvd3NlUGF0aFwiLCB2YWx1ZTogXCJiXCIsIGljb246ICc8aSBjbGFzcz1cImZhIGZhLXRhZ1wiLz48aSBjbGFzcz1cImZhIGZhLWZpZ2h0ZXItamV0XCIvPiZuYnNwOycgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IFwiQWxpYXNlZCBCcm93c2UgUGF0aFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiYWJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb246ICc8aSBjbGFzcz1cImZhIGZhLWJvb2ttYXJrXCIvPjxpIGNsYXNzPVwiZmEgZmEtZmlnaHRlci1qZXRcIi8+Jm5ic3A7JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSBmaWd1cmVPdXRNZW5VSXRlbVZhbHVlKHRoYXQuJGlucHV0LnZhbCgpKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gYSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwuZW1wdHkoKS5hcHBlbmQoYDxzcGFuIHRpdGxlPSR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS50aXRsZSkgfHwgXCJcIn0+Jm5ic3A7ICR7KGUgPT09IG51bGwgfHwgZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZS5pY29uKSB8fCBcIlwifTwvc3Bhbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LnNlbGVjdGVkTWVudUl0ZW0gPSBhO1xuICAgICAgICAgICAgICAgIGNvbnN0IHR0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51ID0gdGhpcy5fY3JlYXRlTWVudSh0eXBlTGlzdCwge30sICh2KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSB0b01vZGUodik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBvbiBNZW51IHNlbGVjdGVkICFcbiAgICAgICAgICAgICAgICAgICAgICAgIHR0LnZlcmlmeShtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gdHlwZUxpc3QuZmluZCgoeCkgPT4geC52YWx1ZSA9PT0gdik7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuc2VsZWN0ZWRNZW51SXRlbSA9IHY7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHNlbGVjdExhYmVsLmVtcHR5KCkuYXBwZW5kKGA8c3BhbiB0aXRsZT0keyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUudGl0bGUpIHx8IFwiXCJ9PiZuYnNwOyAkeyhlID09PSBudWxsIHx8IGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGUuaWNvbikgfHwgXCJcIn08L3NwYW4+YCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kbWVudS5hcHBlbmRUbyhkb2N1bWVudC5ib2R5KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRtZW51LmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyLnNob3coKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtb2RlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHJldHVybiB0b01vZGUodGhhdC5zZWxlY3RlZE1lbnVJdGVtKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZXRNb2RlKG1vZGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBzID0gZnJvbU1vZGUobW9kZSk7XG4gICAgICAgICAgICAgICAgdGhhdC5zZWxlY3RlZE1lbnVJdGVtID0gcztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmNzcyhcImJvcmRlclwiLCBcIm5vbmVcIik7XG4gICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQuYWRkQ2xhc3MoXCJyZWQtdWktdHlwZWRJbnB1dFwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRlbGVtZW50RGl2ID0gdGhhdC4kaW5wdXQud3JhcChcIjxkaXY+XCIpLnBhcmVudCgpLmFkZENsYXNzKFwibWFpbi13cmFwcGVyXCIpO1xuICAgICAgICAgICAgICAgIC8vICNyZWdpb24gQ29tYm8gYnJvd3NlclxuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICAvLyB0aGF0LiRjb21iby5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWlucHV0LXdyYXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQucmVwbGFjZVdpdGgodGhhdC4kY29tYm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAgPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwiaW5wdXQtZ3JvdXBcIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGlucHV0R3JvdXApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJGlucHV0KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiBhZGQgYnV0dG9uIG9uIHRoZSByaWdodCBzaWRlXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0b2dnbGVUcmVlQnRuXG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24gdGl0bGU9XCJvcGVuIE9QQ1VBIEFkZHJlc3NTcGFjZSBCcm93c2VyXCI+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB2ZXJpZnlCdG5cbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uIHRpdGxlPVwidmVyaWZ5IG5vZGVJZCBvciBicm93c2VQYXRoXCI+PGkgY2xhc3M9XCJmYSBmYS1yZWZyZXNoXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmFmdGVyKHRoYXQuJHZlcmlmeUJ0bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdmVyaWZ5QnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KG1vZGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjZW5kcmVnaW9uXG4gICAgICAgICAgICAgICAgY29uc3Qgbm9ybWFsaXplSW5wdXQgPSAoaW5wdXQpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghbW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbkRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBkYXRhLCBqc29uIH0gPSB5aWVsZCBfY2FsbENoZWNrTm9kZUlkKGNvbm5lY3Rpb25EYXRhLCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKGpzb24uc3RhdHVzQ29kZS5tYXRjaCgvR29vZC8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZE5vZGVJZCA9IGNob29zZU5vZGVJZChqc29uLCBtb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChzZWxlY3RlZE5vZGVJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAgLy8gY3JlYXRlIHRoZSBwcmVwZW5kZWQgYnV0dG9uXG4gICAgICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdCA9ICQoXCI8ZGl2PlwiKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYmVmb3JlKHRoYXQuJHVpU2VsZWN0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlciA9ICQoJzxidXR0b24gdHlwZT1cImJ1dHRvblwiIHRhYmluZGV4PVwiMFwiPjwvYnV0dG9uPicpLnByZXBlbmRUbyh0aGF0LiR1aVNlbGVjdCk7XG4gICAgICAgICAgICAgICAgICAgICQoJzxpIGNsYXNzPVwicmVkLXVpLXR5cGVkSW5wdXQtaWNvbiBmYSBmYS1jYXJldC1kb3duXCI+PC9pPicpLnRvZ2dsZSh0cnVlKS5hcHBlbmRUbyh0aGF0LiRzZWxlY3RUcmlnZ2VyKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0VHJpZ2dlci5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRzZWxlY3RUcmlnZ2VyXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJrZXlkb3duXCIsIGZ1bmN0aW9uIChldnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5Q29kZSA9PT0gNDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBEb3duXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fc2hvd1R5cGVNZW51KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAub24oXCJmb2N1c1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5hZGRDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgLm9uKFwiYmx1clwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB2YXIgb3B0ID0gdGhhdC50eXBlTWFwW3RoYXQucHJvcGVydHlUeXBlXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGlmIChvcHQuaGFzVmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiR1aVNlbGVjdC5yZW1vdmVDbGFzcyhcInJlZC11aS10eXBlZElucHV0LWZvY3VzXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kc2VsZWN0TGFiZWwgPSAkKCc8c3BhbiBjbGFzcz1cInJlZC11aS10eXBlZElucHV0LXR5cGUtbGFiZWxcIj48L3NwYW4+JykuYXBwZW5kVG8odGhhdC4kc2VsZWN0VHJpZ2dlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuX2luaXRNZW51KCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gI3JlZ2lvbiB0ZW1wb3JhdHkgaW5mbyBwYW5lbFxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIC8vICNlbmRyZWdpb25cbiAgICAgICAgICAgICAgICAvLyAjcmVnaW9uIGRyb3AgZG93biB0cmVlXG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpLmFwcGVuZFRvKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIC8vIHRoYXQuJGRyb3Bkb3duLnNob3coKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgLy8gI2VuZHJlZ2lvblxuICAgICAgICAgICAgICAgIGNvbnN0IGlzT25MZWZ0U2l6ZSA9ICgkbGksIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJGxpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3QgdG9nZ2xlRXhwYW5zaW9uID0gKCRsaSkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgX2V4cGFuZExpKHRoYXQsICRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJkYmxjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSAkbGkuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gJGxpLmRhdGEoXCJyZWZlcmVuY2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZSAmJiAhdGhhdC5vcHRpb25zLmlzU2VsZWN0YWJsZShyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtb2RlID0gdGhhdC5tb2RlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIW1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlID0gXCJub2RlSWRcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0LnNldE1vZGUobW9kZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVJbnB1dCh2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdGhhdC4kaW5wdXQudmFsKGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRoYXQuJGlucHV0LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPbkxlZnRTaXplKCRsaSwgZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVFeHBhbnNpb24oJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RTaW5nbGUodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS5vbihcImNsaWNrXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBjbGlja2luZyBvdXRzaWRlIHRoZSBwYWdlIHdpbGwgaGlkZSB0aGUgZHJvcGRvd25cbiAgICAgICAgICAgICAgICAgICAgaWYgKCEkKGV2ZW50LnRhcmdldCkuY2xvc2VzdCh0aGF0LiRjb21ibykubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93bi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBjaGVja05vZGVJZCA9IChfYSwgbm9kZUlkXzEsIG5hbWVzcGFjZUFsaWFzZXNfMSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hLCBub2RlSWRfMSwgbmFtZXNwYWNlQWxpYXNlc18xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIG5hbWVzcGFjZUFsaWFzZXMpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgICAgIG5hbWVzcGFjZUFsaWFzZXMsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgY29uc3QgcmVzID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiQmFkTm9NYXRjaFwiLFxuICAgICAgICAgICAgICAgIHJlcXVlc3RlZE5vZGVJZDogbm9kZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHJldHVybiByZXM7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobnVsbCwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdCA9IChzdHIpID0+ICFzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzdHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoXCJcXG5cIilcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAubWFwKChhKSA9PiBgPHA+JHthfTwvcD5gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5qb2luKFwiXFxuXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhZGFwdDIgPSAoc3RyKSA9PiAoQXJyYXkuaXNBcnJheShzdHIpID8gc3RyLm1hcChhZGFwdCkuam9pbihcIlxcblwiKSA6IGFkYXB0KHN0cikpO1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChhZGFwdDIoanNvbi5tZXNzYWdlKSArIGFkYXB0Mihqc29uLmV4dHJhKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG5ldyBFcnJvcihqc29uLnJlc3VsdCksIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcImludGVybmFsIGVycm9yIFwiICsgZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgb25SZXN1bHQoZXJyLCBudWxsKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIGNvbnRhaW5pbmc6XG4gICAgICogIC0gdGhlIGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LFxuICAgICAqICAtIHVzZXJJZGVudGl0eVR5cGUsXG4gICAgICogIC0gY3JlZGVudGlhbHNcbiAgICAgKiAgLSBuYW1lc3BhY2VBbGlhc2VzXG4gICAgICpcbiAgICAgKiBleHRyYWN0ZWQgZnJvbSB0aGUgdWkgd2lkZ2V0ICNub2RlLWlucHV0LWVuZHBvaW50XG4gICAgICovXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscywgbmFtZXNwYWNlQWxpYXNlcyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgbmFtZXNwYWNlQWxpYXNlcyxcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG5hbWVzcGFjZUFsaWFzZXMgPSBlbmRwb2ludE5yLm5hbWVzcGFjZUFsaWFzZXM7XG4gICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKHsgbmFtZXNwYWNlQWxpYXNlcywgaWQ6IGVuZHBvaW50SWQgfSwgZW5kcG9pbnROcik7XG4gICAgfTtcbiAgICBjb25zdCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMsXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLUNhbGxcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcImNhbGxcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgYWN0aW9uOiB7IHZhbHVlOiBcInJlYWRcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIC8vIGZvciBhY3Rpb24gY2FsbFxuICAgICAgICAgICAgbWV0aG9kSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBvYmplY3RJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBLUNhbGxcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBkZWNsYXJlTm9kZUJyb3dzZXJXaWRnZXQoKTtcbiAgICAgICAgICAgIG5vZGUuaW5wdXRzID0gMTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdGlvbiBDYWxsXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgbGV0IGRhdGFUeXBlcyA9IHt9O1xuICAgICAgICAgICAgLy8gdG8gZG8gYWRkIGEgdHlwZXNjcmlwdCBkZWZpbml0aW9uIGZvciB0aGlzXG4gICAgICAgICAgICBjb25zdCAkb2JqZWN0SWQgPSAkKFwiI25vZGUtaW5wdXQtb2JqZWN0SWRcIik7XG4gICAgICAgICAgICBjb25zdCAkbWV0aG9kSWQgPSAkKFwiI25vZGUtaW5wdXQtbWV0aG9kSWRcIik7XG4gICAgICAgICAgICBjb25zdCAkaW5wdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1pbnB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiA9ICQoXCIjbWV0aG9kLW91dHB1dC1hcmd1bWVudC1kZWZpbml0aW9uXCIpO1xuICAgICAgICAgICAgY29uc3QgJHZhbGlkYXRlQnRuID0gJChcIiN2YWxpZGF0ZS1jYWxsLWFyZ3VtZW50cy1idXR0b25cIik7XG4gICAgICAgICAgICAkb2JqZWN0SWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG1ldGhvZElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBwYXJlbnROb2RlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbWFrZUNvbm5lY3Rpb24odGhpcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnRPYmpSZWZlcmVuY2UgPSAkb2JqZWN0SWQuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghcGFyZW50T2JqUmVmZXJlbmNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgZW5kcG9pbnROb2RlID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaWYgKCFlbmRwb2ludE5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgciA9IHlpZWxkIGNoZWNrTm9kZUlkKGRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHIuc3RhdHVzQ29kZSAhPT0gXCJHb29kXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudE9ialJlZmVyZW5jZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVJZDogci5ub2RlSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiByLmJyb3dzZU5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXNwbGF5TmFtZTogci5icm93c2VOYW1lLnRvU3RyaW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsIC8vIHIubm9kZUNsYXNzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IFwibnM9MDtpPTBcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiB7IHRleHQ6IFwiXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJlbnRPYmpSZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZnVuY3Rpb24gYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaW5kZXgsIGFyZykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSAkKCc8ZGl2IGNsYXNzPVwiYXJndW1lbnQtZW50cnlcIj4nKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnRhaW5lci5kYXRhKFwiZGF0YVwiLCBhcmcpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLm5hbWUgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjEwMCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgY29uc3QgZCA9IGRhdGFUeXBlc1thcmcuZGF0YVR5cGUudG9TdHJpbmcoKV07XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YVR5cGVOID0gKGQgPyBkLmJyb3dzZU5hbWUubmFtZSB8fCBcIlwiIDogYXJnLmRhdGFUeXBlLnRvU3RyaW5nKCkpICsgKGFyZy52YWx1ZVJhbmsgPT09IDEgPyBcIltdXCIgOiBcIlwiKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGFyZy5kZXNjcmlwdGlvbi50ZXh0IHx8IFwiXCIpXG4gICAgICAgICAgICAgICAgICAgIC5jc3MoeyB3aWR0aDogXCI1MCVcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuYXBwZW5kVG8oaXRlbSk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChkYXRhVHlwZU4gfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRpbnB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICBhZGRCdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgICAgIGhlaWdodDogXCJhdXRvXCIsXG4gICAgICAgICAgICAgICAgc2Nyb2xsT25BZGQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGFkZEl0ZW0oY29udGFpbmVyLCBpLCBvYmplY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQXJndW1lbnRDdHJsKGNvbnRhaW5lciwgaSwgb2JqZWN0KTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmdW5jdGlvbiBpbnN0YWxsQXJndW1lbnRMaXN0KGxpc3QsIG1ldGhvZEFyZ3VtZW50cykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsbEFyZ3VtZW50TGlzdFwiLCBtZXRob2RBcmd1bWVudHMubGVuZ3RoLCBcImFyZ3VtZW50c1wiLCBtZXRob2RBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRob2RBcmd1bWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJhZGRJdGVtXCIsIG1ldGhvZEFyZ3VtZW50c1tpXSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmhpZGUoKTtcbiAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgbGV0IGlucHV0QXNKc29uID0ge307XG4gICAgICAgICAgICBjb25zdCAkY29weUlucHV0ID0gJChcIiNjb3B5LWlucHV0XCIpO1xuICAgICAgICAgICAgJGNvcHlJbnB1dC5oaWRlKCk7XG4gICAgICAgICAgICAkY29weUlucHV0Lm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIENvcHkgdGhlIHRleHQgaW5zaWRlIHRoZSB0ZXh0IGZpZWxkXG4gICAgICAgICAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoSlNPTi5zdHJpbmdpZnkoaW5wdXRBc0pzb24pKTtcbiAgICAgICAgICAgICAgICAvLyBhbGVydChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikgKyBcIiBjb3BpZWQgdG8gY2xpcGJvYXJkXCIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgaW5wdXRBc0pzb24gPSBkYXRhLmlucHV0QXJndW1lbnRzRXhhbXBsZUFzSnNvbiB8fCB7fTtcbiAgICAgICAgICAgICAgICAkY29weUlucHV0LnNob3coKTtcbiAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiSlNPTlwiLCBKU09OLnN0cmluZ2lmeShpbnB1dEFzSnNvbikpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZGF0YVwiLCBkYXRhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Call">
|
11
11
|
<div class="form-row">
|