@opcua/for-node-red 2.5.1 → 2.5.3
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-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 _0x3fb6(_0xf2f6eb,_0x3f9d7c){const _0x464a10=_0x464a();return _0x3fb6=function(_0x3fb6d8,_0x4f4efb){_0x3fb6d8=_0x3fb6d8-0x1de;let _0x3c8412=_0x464a10[_0x3fb6d8];return _0x3c8412;},_0x3fb6(_0xf2f6eb,_0x3f9d7c);}function _0x464a(){const _0xef6d72=['currentParent','$input','message','stringify','SuppressedError','<input\x20type=\x22text\x22>','fetching\x20failed\x20with\x20error','filter','suppressed','#node-input-objectId','already\x20fetched','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','pageX','#method-input-argument-definition','dataTypes','find','references','$info','<div\x20class=\x22spinner\x22></div>','removeClass','stopPropagation','replace','fa-sliders','Both','ns=0;i=47','nodeClass','SteelBlue','name','dataType','-pending','widget','</p>','7235272lsXQZH','/checkNodeId','fetched\x20:\x20','View','#method-output-argument-definition','NodeClass','closest','call','Calling\x20nodeBrowser\x20Done','nodeBrowser','Method','err','css','show','2094525sEqIpz','status','i=61','length','$inputGroup','<div/>','DodgerBlue','50%','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','HasComponent','hide','grey','1143131GuQEpg','already\x20loading','fa-question','20KUotBA','auto','validate','$dropdown','HasSubtype','join','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','top','expandable','right','toggleClass','node_label_italic','ns=0;i=45','baseUrl','data','DataType','9eshcjV','text','addItem','endpointNode','-success','editableList','then','match','done','value','appendTo','fa-cog','inputs','134TFotVv','8341332KumWHH','endpoint','OPCUA-Call','hasClass','isSelectable','catch','click','log','append','opcua','browseResult','Organizes','resolveParentNode','ObjectType','arguments','node','-messages','SeaGreen','HasChild','1368sZjPbe','$combo','<li><i\x20class=\x22fa\x20','<br>','#validate-call-arguments-button','expanded','DisplayName','input-group','Calling\x20nodeBrowser','browseName','parentNode','sterfive-combo-box','json','registerType','ns=0;i=46','typeDefinition','Bad','extra','next','DarkOrange','val','/browse','#node-input-endpoint','assign','HasTypeDefinition','map','ns=0;i=35','BrowseName','Inverse','attr','pageY','Good','nodeAddressString','<p>','nodes','toString','application/json','throw','ReferenceType','VariableType','$tree','$verifyBtn','Invalid','HasProperty','OpcUa-Endpoint2','statusText','isArray','Forward','trigger','isTypeRef','/opcua-endpoint2/argumentDefinition','10XPFXVu','nodeId','ns=0;i=40','78TrdCkE','fa-list-alt','fa-object-group','statusCode','rgba(61,\x2060,\x204,\x200.525)','743IzogKi','split','14462xwLjFZ','element','children','offset','displayName',';\x22></i>\x20','xxx','referenceTypeId','../../icons/opcuanodeLogo.png','html','change','empty','</li>','addClass','<div\x20class=\x22info-text\x22></div>','OpcUa-Client2-Call','!!failure!!','Object','expandable\x20expanded','Testing\x20Connection\x20...','Unspecified','options','inputArguments','result','description','$toggleTreeBtn','Variable','remove','<ul\x20class=\x22sterfive-tree\x22></ul>','target','POST','toggle','100%','placeholder','error','reference','left','.spinner','installArgumentList','opc.tcp://opcuademo.sterfive.com:26543','fetched','1264910lSjQum','ns=0;i=85','loading','reset','verify','function','/opcua-endpoint2'];_0x464a=function(){return _0xef6d72;};return _0x464a();}(function(_0x448699,_0x24a3f0){const _0xd51b96=_0x3fb6,_0x4f5867=_0x448699();while(!![]){try{const _0x5a3f2e=parseInt(_0xd51b96(0x258))/0x1*(parseInt(_0xd51b96(0x209))/0x2)+-parseInt(_0xd51b96(0x2b8))/0x3+parseInt(_0xd51b96(0x1ec))/0x4*(-parseInt(_0xd51b96(0x283))/0x5)+parseInt(_0xd51b96(0x21d))/0x6*(-parseInt(_0xd51b96(0x25a))/0x7)+parseInt(_0xd51b96(0x2aa))/0x8*(-parseInt(_0xd51b96(0x1fc))/0x9)+parseInt(_0xd51b96(0x250))/0xa*(-parseInt(_0xd51b96(0x1e9))/0xb)+parseInt(_0xd51b96(0x20a))/0xc*(parseInt(_0xd51b96(0x253))/0xd);if(_0x5a3f2e===_0x24a3f0)break;else _0x4f5867['push'](_0x4f5867['shift']());}catch(_0xcf2087){_0x4f5867['push'](_0x4f5867['shift']());}}}(_0x464a,0xbdf00),(function(){'use strict';const _0x562fcf=_0x3fb6;function _0x4b154e(_0x367ca8,_0x31a10b,_0x3da469,_0x3e9596){function _0x1e154b(_0x2cf290){return _0x2cf290 instanceof _0x3da469?_0x2cf290:new _0x3da469(function(_0x34558e){_0x34558e(_0x2cf290);});}return new(_0x3da469||(_0x3da469=Promise))(function(_0x1f2a2f,_0xc70570){const _0x213e28=_0x3fb6;function _0x2193c9(_0x5eb100){try{_0x5d3f92(_0x3e9596['next'](_0x5eb100));}catch(_0x3f7236){_0xc70570(_0x3f7236);}}function _0x4c6f6e(_0x471f6c){const _0x2ebbf8=_0x3fb6;try{_0x5d3f92(_0x3e9596[_0x2ebbf8(0x242)](_0x471f6c));}catch(_0xeb8812){_0xc70570(_0xeb8812);}}function _0x5d3f92(_0x17f907){const _0x547552=_0x3fb6;_0x17f907[_0x547552(0x204)]?_0x1f2a2f(_0x17f907[_0x547552(0x205)]):_0x1e154b(_0x17f907[_0x547552(0x205)])['then'](_0x2193c9,_0x4c6f6e);}_0x5d3f92((_0x3e9596=_0x3e9596['apply'](_0x367ca8,_0x31a10b||[]))[_0x213e28(0x22f)]());});}typeof SuppressedError===_0x562fcf(0x288)?SuppressedError:function(_0x30cee1,_0x535eeb,_0xad1580){const _0x4f9638=_0x562fcf;var _0x3477e1=new Error(_0xad1580);return _0x3477e1[_0x4f9638(0x2a5)]=_0x4f9638(0x28e),_0x3477e1[_0x4f9638(0x27c)]=_0x30cee1,_0x3477e1[_0x4f9638(0x292)]=_0x535eeb,_0x3477e1;};const _0x1aaa4c=_0x562fcf(0x237),_0x2cb9ac='ns=0;i=61',_0x5bde11=_0x562fcf(0x2a2),_0x55d57c=_0x562fcf(0x22b),_0x219141='ns=0;i=34',_0x6ca4b9=_0x562fcf(0x1f8),_0x8c1862=_0x562fcf(0x252);var _0x2a703c;(function(_0x39e461){const _0x5b5a99=_0x562fcf;_0x39e461[_0x39e461[_0x5b5a99(0x24c)]=0x0]='Forward',_0x39e461[_0x39e461['Inverse']=0x1]=_0x5b5a99(0x239),_0x39e461[_0x39e461[_0x5b5a99(0x2a1)]=0x2]=_0x5b5a99(0x2a1),_0x39e461[_0x39e461[_0x5b5a99(0x247)]=0x3]=_0x5b5a99(0x247);}(_0x2a703c||(_0x2a703c={})));var _0x507b2b;(function(_0x3950b5){const _0x452c2b=_0x562fcf;_0x3950b5[_0x3950b5[_0x452c2b(0x26e)]=0x0]=_0x452c2b(0x26e),_0x3950b5[_0x3950b5['Object']=0x1]=_0x452c2b(0x26b),_0x3950b5[_0x3950b5['Variable']=0x2]=_0x452c2b(0x274),_0x3950b5[_0x3950b5['Method']=0x4]=_0x452c2b(0x2b4),_0x3950b5[_0x3950b5[_0x452c2b(0x217)]=0x8]='ObjectType',_0x3950b5[_0x3950b5[_0x452c2b(0x244)]=0x10]=_0x452c2b(0x244),_0x3950b5[_0x3950b5[_0x452c2b(0x243)]=0x20]=_0x452c2b(0x243),_0x3950b5[_0x3950b5['DataType']=0x40]=_0x452c2b(0x1fb),_0x3950b5[_0x3950b5[_0x452c2b(0x2ad)]=0x80]=_0x452c2b(0x2ad);}(_0x507b2b||(_0x507b2b={})));var _0x471cb5;(function(_0x532b52){const _0xef8b23=_0x562fcf;_0x532b52[_0x532b52['Object']=0x1]=_0xef8b23(0x26b),_0x532b52[_0x532b52[_0xef8b23(0x274)]=0x2]=_0xef8b23(0x274),_0x532b52[_0x532b52[_0xef8b23(0x2b4)]=0x4]='Method',_0x532b52[_0x532b52[_0xef8b23(0x217)]=0x8]=_0xef8b23(0x217),_0x532b52[_0x532b52['VariableType']=0x10]=_0xef8b23(0x244),_0x532b52[_0x532b52[_0xef8b23(0x243)]=0x20]='ReferenceType',_0x532b52[_0x532b52[_0xef8b23(0x1fb)]=0x40]=_0xef8b23(0x1fb),_0x532b52[_0x532b52[_0xef8b23(0x2ad)]=0x80]=_0xef8b23(0x2ad);}(_0x471cb5||(_0x471cb5={})));var _0x2903c1;(function(_0x1110c1){const _0xd3f7d=_0x562fcf;_0x1110c1[_0x1110c1['ReferenceType']=0x1]=_0xd3f7d(0x243),_0x1110c1[_0x1110c1['IsForward']=0x2]='IsForward',_0x1110c1[_0x1110c1[_0xd3f7d(0x2af)]=0x4]=_0xd3f7d(0x2af),_0x1110c1[_0x1110c1[_0xd3f7d(0x238)]=0x8]=_0xd3f7d(0x238),_0x1110c1[_0x1110c1[_0xd3f7d(0x223)]=0x10]=_0xd3f7d(0x223),_0x1110c1[_0x1110c1['TypeDefinition']=0x20]='TypeDefinition';}(_0x2903c1||(_0x2903c1={})));function _0x31bf5b(_0x32064d){const _0x373968=_0x562fcf;switch(_0x32064d){case _0x373968(0x215):return _0x1aaa4c;case _0x373968(0x248):return _0x55d57c;case _0x373968(0x1e6):return _0x5bde11;case _0x373968(0x21c):return _0x219141;case _0x373968(0x1f0):return _0x6ca4b9;case _0x373968(0x235):return _0x8c1862;}}const _0x54e56c=_0x113355=>{const _0x5037ba=_0x562fcf;switch(_0x113355[_0x5037ba(0x2a3)]){case _0x5037ba(0x26b):if(_0x113355[_0x5037ba(0x261)]===_0x1aaa4c);if(_0x113355[_0x5037ba(0x22c)]===_0x2cb9ac||_0x113355[_0x5037ba(0x261)]===_0x5037ba(0x1df))return{'icon':'fa-folder','color':_0x5037ba(0x257)};return{'icon':_0x5037ba(0x255),'color':_0x5037ba(0x21b)};case _0x5037ba(0x274):if(_0x113355['referenceTypeId']===_0x5bde11)return{'icon':_0x5037ba(0x254),'color':_0x5037ba(0x2a4)};else return _0x113355[_0x5037ba(0x261)]===_0x55d57c?{'icon':_0x5037ba(0x254),'color':_0x5037ba(0x1e3)}:{'icon':_0x5037ba(0x254),'color':'CadetBlue'};case'Method':return{'icon':_0x5037ba(0x207),'color':'SandyBrown'};case _0x5037ba(0x217):return{'icon':_0x5037ba(0x255),'color':_0x5037ba(0x230)};case _0x5037ba(0x244):return{'icon':_0x5037ba(0x2a0),'color':_0x5037ba(0x230)};}return{'icon':_0x5037ba(0x1eb),'color':_0x5037ba(0x1e8)};},_0x178d35=({endpointNode:_0x4b9422,endpoint:_0x1ba840,baseUrl:_0x291425},_0x4dfc01,_0x3eed52)=>_0x4b154e(void 0x0,void 0x0,void 0x0,function*(){const _0x231712=_0x562fcf,_0x1926fd=_0x291425+_0x231712(0x289),_0x186713=_0x1926fd+_0x231712(0x232),_0x3eede9=Object[_0x231712(0x234)](Object[_0x231712(0x234)]({},_0x3eed52),{'nodeId':_0x4dfc01,'resultMask':0x3f}),_0x58b90a=yield fetch(_0x186713,{'method':'POST','body':JSON[_0x231712(0x28d)]({'endpointNode':_0x4b9422,'endpoint':_0x1ba840,'browseDescription':_0x3eede9}),'headers':{'Content-Type':'application/json'}});if(_0x58b90a[_0x231712(0x1de)]!==0xc8)return console[_0x231712(0x211)](_0x231712(0x290),_0x58b90a['status'],_0x58b90a[_0x231712(0x24a)]),{'references':[]};console[_0x231712(0x211)](_0x231712(0x2ac),_0x58b90a[_0x231712(0x1de)],_0x58b90a[_0x231712(0x24a)]);const _0x121de8=yield _0x58b90a[_0x231712(0x229)](),_0x57ba34=_0x121de8[_0x231712(0x214)][_0x231712(0x29a)]||[];return{'references':_0x57ba34};}),_0xad5a21={'referenceTypeId':_0x31bf5b(_0x562fcf(0x21c)),'includeSubtypes':!![],'browseDirection':_0x2a703c[_0x562fcf(0x24c)],'nodeClassMask':_0x507b2b['Variable']|_0x507b2b[_0x562fcf(0x26b)]|_0x507b2b[_0x562fcf(0x2b4)],'resultMask':0x3f},_0x5055d2={'referenceTypeId':_0x31bf5b(_0x562fcf(0x215)),'includeSubtypes':!![],'browseDirection':_0x2a703c[_0x562fcf(0x24c)],'nodeClassMask':_0x507b2b['Variable']|_0x507b2b[_0x562fcf(0x26b)]|_0x507b2b[_0x562fcf(0x2b4)],'resultMask':0x3f},_0x2f6181=({endpointNode:_0x2bb935,endpoint:_0x5dd262,baseUrl:_0x481ca5},_0x5d97a3,_0x470f62)=>_0x4b154e(void 0x0,void 0x0,void 0x0,function*(){const _0x2afb49=_0x562fcf,_0xe3c4fc=_0x481ca5+'/opcua-endpoint2',_0x1b52c4=_0x5d97a3[_0x2afb49(0x231)](),_0x511754=yield fetch(_0xe3c4fc+_0x2afb49(0x2ab),{'method':_0x2afb49(0x278),'body':JSON[_0x2afb49(0x28d)]({'endpointNode':_0x2bb935,'endpoint':_0x5dd262,'nodeId':_0x1b52c4}),'headers':{'Content-Type':_0x2afb49(0x241)}}),_0x1cea6f=(_0x179e89,_0x4666a5)=>{const _0x1da966=_0x2afb49;_0x470f62[_0x1da966(0x1fd)](_0x179e89)[_0x1da966(0x267)]('sterfive-info')[_0x1da966(0x267)](_0x4666a5),_0x470f62[_0x1da966(0x2b7)](),setTimeout(()=>{const _0x1fd782=_0x1da966;_0x470f62[_0x1fd782(0x29d)](_0x4666a5),_0x470f62[_0x1fd782(0x1e7)]();},0xbb8);},_0x335114=yield _0x511754[_0x2afb49(0x229)]();_0x511754['status']!==0xc8?_0x1cea6f(_0x2afb49(0x26a)+_0x1b52c4,'failure'):_0x335114['statusCode'][_0x2afb49(0x203)](/Good/)?(_0x5d97a3['val'](_0x335114[_0x2afb49(0x23d)]),_0x5d97a3[_0x2afb49(0x24d)]('change'),_0x1cea6f(_0x2afb49(0x23c),'ok')):(_0x5d97a3[_0x2afb49(0x231)](''+_0x1b52c4),_0x1cea6f(_0x335114[_0x2afb49(0x256)]+'\x20'+_0x511754[_0x2afb49(0x24a)],'failure'));});function _0x44a8e3(_0x2ff623,_0x2c3314){return _0x4b154e(this,void 0x0,void 0x0,function*(){const _0x4e0960=_0x3fb6,_0x486c4e=_0x2ff623[_0x4e0960(0x1fa)](_0x4e0960(0x205)),_0x157ef8=yield _0x178d35(_0x2c3314,_0x486c4e,_0xad5a21),_0x183859=yield _0x178d35(_0x2c3314,_0x486c4e,_0x5055d2);return{'references':[..._0x157ef8[_0x4e0960(0x29a)],..._0x183859['references']]};});}const _0x4a3521={'referenceTypeId':_0x31bf5b(_0x562fcf(0x1f0)),'includeSubtypes':!![],'browseDirection':_0x2a703c[_0x562fcf(0x24c)],'nodeClassMask':_0x507b2b[_0x562fcf(0x243)]|_0x507b2b[_0x562fcf(0x217)]|_0x507b2b[_0x562fcf(0x1fb)]|_0x507b2b['VariableType'],'resultMask':0x3f};function _0x33af24(_0x31de9b,_0x4d07e8){return _0x4b154e(this,void 0x0,void 0x0,function*(){const _0x4e56ca=_0x3fb6,_0x3b9e60=_0x31de9b[_0x4e56ca(0x1fa)](_0x4e56ca(0x205)),_0x300e29=yield _0x178d35(_0x4d07e8,_0x3b9e60,_0x4a3521);return _0x300e29;});}const _0x5d9ea6=_0x5b7ff9=>{const _0x499e93=_0x562fcf;var _0x4f60b9,_0x265aac;if(!_0x5b7ff9){const _0x75be8a=$(_0x499e93(0x1e5));return _0x75be8a;}const _0x1a9ad6=_0x5b7ff9[_0x499e93(0x251)][_0x499e93(0x240)](),_0x4df3c5=((_0x4f60b9=_0x5b7ff9[_0x499e93(0x25e)])===null||_0x4f60b9===void 0x0?void 0x0:_0x4f60b9[_0x499e93(0x1fd)])||((_0x265aac=_0x5b7ff9[_0x499e93(0x226)])===null||_0x265aac===void 0x0?void 0x0:_0x265aac[_0x499e93(0x2a5)])||_0x5b7ff9[_0x499e93(0x251)]['toString'](),{icon:_0x1e1324,color:_0x553cb7}=_0x54e56c(_0x5b7ff9),_0x14cc77=$(_0x499e93(0x21f)+_0x1e1324+'\x22\x20style=\x22color:'+_0x553cb7+_0x499e93(0x25f)+_0x4df3c5+'<ul></ul></li>');return _0x14cc77['addClass'](_0x499e93(0x1f4)),_0x14cc77[_0x499e93(0x1fa)](_0x499e93(0x205),_0x1a9ad6),_0x14cc77[_0x499e93(0x1fa)](_0x499e93(0x27d),_0x5b7ff9),_0x14cc77;},_0x5d9fbc=()=>{const _0x3ad35b=_0x562fcf;$[_0x3ad35b(0x2a8)]('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x3ad35b(0x281)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':'Objects'},'nodeClass':_0x3ad35b(0x26b),'nodeId':_0x3ad35b(0x284),'displayName':{'text':'Objects'},'typeDefinition':_0x2cb9ac}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x4b154e(this,void 0x0,void 0x0,function*(){const _0xa36de7=_0x3fb6,_0x8bc1e=this,_0x1ecc7e=typeof _0x8bc1e[_0xa36de7(0x26f)][_0xa36de7(0x227)]==='function'?_0x8bc1e[_0xa36de7(0x26f)]['parentNode']():_0x8bc1e[_0xa36de7(0x26f)][_0xa36de7(0x227)];if(_0x1ecc7e instanceof Promise)return yield _0x1ecc7e;return _0x1ecc7e;});},'reset'(){const _0x3261b7=_0x3ad35b,_0x181571=this;_0x181571['$tree']['empty'](),this[_0x3261b7(0x216)]()['then'](_0x58001b=>{const _0x412fa7=_0x3261b7,_0x2fee70=_0x5d9ea6(_0x58001b);_0x181571[_0x412fa7(0x245)][_0x412fa7(0x212)](_0x2fee70),_0x181571['currentParent']=_0x58001b;});},'verify'(){const _0x48d299=_0x3ad35b,_0x514ee1=this,_0x15f0c4={'baseUrl':_0x514ee1[_0x48d299(0x26f)][_0x48d299(0x1f9)],'endpointNode':typeof _0x514ee1[_0x48d299(0x26f)][_0x48d299(0x1ff)]===_0x48d299(0x288)?_0x514ee1[_0x48d299(0x26f)][_0x48d299(0x1ff)]():_0x514ee1[_0x48d299(0x26f)][_0x48d299(0x1ff)],'endpoint':typeof _0x514ee1['options']['endpoint']==='function'?_0x514ee1[_0x48d299(0x26f)][_0x48d299(0x20b)]():_0x514ee1['options'][_0x48d299(0x20b)]};_0x2f6181(_0x15f0c4,_0x514ee1['$input'],_0x514ee1[_0x48d299(0x29b)]);},'_create'(){const _0x3a7034=_0x3ad35b,_0x1ceeca=this;function _0x58af23(_0x575669,_0x46be7a,_0x4d7372){return _0x4b154e(this,void 0x0,void 0x0,function*(){const _0x1c991a=_0x3fb6;if(_0x575669[_0x1c991a(0x20d)](_0x1c991a(0x282))){console['log'](_0x1c991a(0x294));return;}if(_0x575669[_0x1c991a(0x20d)](_0x1c991a(0x285))){console['log'](_0x1c991a(0x1ea));return;}_0x575669['addClass'](_0x1c991a(0x285)),_0x575669[_0x1c991a(0x212)](_0x1c991a(0x29c));try{_0x575669[_0x1c991a(0x25c)]('ul')[_0x1c991a(0x265)]();const {references:_0x1a10bc}=yield _0x46be7a(_0x575669,_0x4d7372);for(const _0x92deb9 of _0x1a10bc){if(_0x1ceeca[_0x1c991a(0x26f)][_0x1c991a(0x291)]&&!_0x1ceeca[_0x1c991a(0x26f)]['filter'](_0x92deb9))continue;const _0x1f6c54=_0x5d9ea6(_0x92deb9);_0x575669['children']('ul')[_0x1c991a(0x212)](_0x1f6c54);}_0x575669[_0x1c991a(0x267)](_0x1c991a(0x282));}catch(_0x4e4c1c){_0x575669[_0x1c991a(0x25c)]('ul')[_0x1c991a(0x212)]('<li>error\x20'+_0x4e4c1c[_0x1c991a(0x28c)]+_0x1c991a(0x266)),console[_0x1c991a(0x211)]('err',_0x4e4c1c);}_0x575669[_0x1c991a(0x299)](_0x1c991a(0x27f))[_0x1c991a(0x275)](),_0x575669[_0x1c991a(0x29d)](_0x1c991a(0x285));});}_0x1ceeca['$input']=this[_0x3a7034(0x25b)],_0x1ceeca['$combo']=$('<div/>'),_0x1ceeca['$combo']['addClass'](_0x3a7034(0x228)),this[_0x3a7034(0x25b)]['replaceWith'](_0x1ceeca[_0x3a7034(0x21e)]),_0x1ceeca['$inputGroup']=$(_0x3a7034(0x1e2))['addClass'](_0x3a7034(0x224)),_0x1ceeca[_0x3a7034(0x21e)][_0x3a7034(0x212)](_0x1ceeca['$inputGroup']),_0x1ceeca[_0x3a7034(0x1e1)]['append'](_0x1ceeca[_0x3a7034(0x28b)]),_0x1ceeca['$toggleTreeBtn']=$(_0x3a7034(0x295)),_0x1ceeca[_0x3a7034(0x1e1)][_0x3a7034(0x212)](_0x1ceeca['$toggleTreeBtn']),_0x1ceeca[_0x3a7034(0x273)]['on'](_0x3a7034(0x210),function(){const _0x5a3df7=_0x3a7034;!_0x1ceeca[_0x5a3df7(0x1ef)]['is'](':visible')&&(_0x1ceeca[_0x5a3df7(0x216)]()[_0x5a3df7(0x202)](_0x4a5bff=>{const _0x5c6436=_0x5a3df7;var _0x2d5ae7;(_0x4a5bff!==_0x1ceeca['currentParent']||((_0x2d5ae7=_0x1ceeca[_0x5c6436(0x28a)])===null||_0x2d5ae7===void 0x0?void 0x0:_0x2d5ae7['nodeId'])!==_0x4a5bff[_0x5c6436(0x251)])&&_0x1ceeca[_0x5c6436(0x286)]();}),_0x1ceeca[_0x5a3df7(0x29b)][_0x5a3df7(0x1e7)]()),_0x1ceeca[_0x5a3df7(0x1ef)]['toggle']();}),_0x1ceeca[_0x3a7034(0x246)]=$(_0x3a7034(0x1f2)),_0x1ceeca[_0x3a7034(0x1e1)][_0x3a7034(0x212)](_0x1ceeca['$verifyBtn']),_0x1ceeca[_0x3a7034(0x246)]['on'](_0x3a7034(0x210),()=>{const _0x27e3b4=_0x3a7034;this[_0x27e3b4(0x287)]();}),!_0x1ceeca['$input']['attr'](_0x3a7034(0x27b))&&_0x1ceeca[_0x3a7034(0x28b)][_0x3a7034(0x23a)]('placeholder','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x1ceeca[_0x3a7034(0x29b)]=$(_0x3a7034(0x268)),_0x1ceeca[_0x3a7034(0x29b)]['hide'](),{'baseUrl':_0x1ceeca[_0x3a7034(0x26f)][_0x3a7034(0x1f9)],'endpointNode':typeof _0x1ceeca[_0x3a7034(0x26f)]['endpointNode']==='function'?_0x1ceeca[_0x3a7034(0x26f)]['endpointNode']():_0x1ceeca['options'][_0x3a7034(0x1ff)],'endpoint':typeof _0x1ceeca[_0x3a7034(0x26f)]['endpoint']===_0x3a7034(0x288)?_0x1ceeca[_0x3a7034(0x26f)][_0x3a7034(0x20b)]():_0x1ceeca[_0x3a7034(0x26f)][_0x3a7034(0x20b)]},_0x1ceeca[_0x3a7034(0x1ef)]=$(_0x3a7034(0x1e2))['addClass']('sterfive-dropdown')[_0x3a7034(0x1e7)](),_0x1ceeca[_0x3a7034(0x21e)][_0x3a7034(0x212)](_0x1ceeca[_0x3a7034(0x29b)]),_0x1ceeca['$combo'][_0x3a7034(0x212)](_0x1ceeca[_0x3a7034(0x1ef)]),_0x1ceeca[_0x3a7034(0x245)]=$(_0x3a7034(0x276))[_0x3a7034(0x206)](_0x1ceeca['$dropdown']),this[_0x3a7034(0x286)](),_0x1ceeca['$tree']['on'](_0x3a7034(0x210),'li',function(_0xf3aea1){const _0x180865=_0x3a7034;var _0x366c95,_0x41ba94;_0xf3aea1[_0x180865(0x29e)]();let _0x34df8a=$(this);const _0x50ca87=0x14,_0x127b70=0x14,_0x4c2b75=$(this)[_0x180865(0x25d)](),_0x14cbd1=_0xf3aea1;if(_0x14cbd1['pageX']>=_0x4c2b75[_0x180865(0x27e)]&&_0x14cbd1[_0x180865(0x296)]<=_0x4c2b75[_0x180865(0x27e)]+_0x50ca87&&_0x14cbd1[_0x180865(0x23b)]>=_0x4c2b75[_0x180865(0x1f3)]&&_0x14cbd1[_0x180865(0x23b)]<=_0x4c2b75['top']+_0x127b70){if(_0x34df8a[_0x180865(0x20d)](_0x180865(0x1f4))){if(_0x34df8a[_0x180865(0x20d)]('fetched')){_0x34df8a[_0x180865(0x29d)](_0x180865(0x1f4))[_0x180865(0x267)](_0x180865(0x222)),_0x34df8a[_0x180865(0x25c)]('ul')[_0x180865(0x279)]();return;}const _0x3b2be3={'baseUrl':_0x1ceeca[_0x180865(0x26f)][_0x180865(0x1f9)],'endpointNode':typeof _0x1ceeca[_0x180865(0x26f)][_0x180865(0x1ff)]===_0x180865(0x288)?_0x1ceeca[_0x180865(0x26f)][_0x180865(0x1ff)]():_0x1ceeca[_0x180865(0x26f)][_0x180865(0x1ff)],'endpoint':typeof _0x1ceeca[_0x180865(0x26f)][_0x180865(0x20b)]===_0x180865(0x288)?_0x1ceeca[_0x180865(0x26f)][_0x180865(0x20b)]():_0x1ceeca[_0x180865(0x26f)][_0x180865(0x20b)]},_0x3d92cb=!_0x1ceeca[_0x180865(0x26f)][_0x180865(0x24e)]?_0x44a8e3:_0x33af24;_0x58af23(_0x34df8a,_0x3d92cb,_0x3b2be3)[_0x180865(0x202)](()=>{const _0x78eabc=_0x180865;console[_0x78eabc(0x211)]('\x20Fetching\x20done'),console[_0x78eabc(0x211)]('fetched'),_0x34df8a[_0x78eabc(0x29d)](_0x78eabc(0x1f4))[_0x78eabc(0x267)](_0x78eabc(0x222));})['catch'](_0x4b9529=>{const _0xfac5b3=_0x180865;_0x34df8a[_0xfac5b3(0x29d)]('expandable')[_0xfac5b3(0x267)](_0xfac5b3(0x222)),console[_0xfac5b3(0x211)]('error',_0x4b9529);});}else{if(_0x34df8a[_0x180865(0x20d)]('expanded'))_0x34df8a[_0x180865(0x25c)]('ul')[_0x180865(0x279)](),_0x34df8a['toggleClass'](_0x180865(0x26c));else{if(_0x34df8a[_0x180865(0x25c)]('ul')[_0x180865(0x25c)]()[_0x180865(0x1e0)]>0x0)_0x34df8a[_0x180865(0x25c)]('ul')['toggle'](),_0x34df8a[_0x180865(0x1f6)](_0x180865(0x26c));else;}}}else{const _0x500ca1=_0x34df8a[_0x180865(0x1fa)](_0x180865(0x205)),_0x1c129d=_0x34df8a[_0x180865(0x1fa)]('reference');if(_0x1ceeca[_0x180865(0x26f)]['isSelectable']&&!_0x1ceeca[_0x180865(0x26f)][_0x180865(0x20e)](_0x1c129d))return;_0x1ceeca[_0x180865(0x28b)]['data'](_0x180865(0x27d),_0x1c129d);const _0x109ef5=((_0x366c95=_0x1c129d[_0x180865(0x25e)])===null||_0x366c95===void 0x0?void 0x0:_0x366c95['text'])||((_0x41ba94=_0x1c129d['browseName'])===null||_0x41ba94===void 0x0?void 0x0:_0x41ba94[_0x180865(0x2a5)])||_0x1c129d['nodeId'][_0x180865(0x240)](),_0x2278c0='['+_0x109ef5+']('+_0x500ca1+')';_0x1ceeca[_0x180865(0x28b)][_0x180865(0x231)](_0x2278c0),_0x1ceeca[_0x180865(0x28b)][_0x180865(0x24d)](_0x180865(0x264)),_0x1ceeca[_0x180865(0x1ef)]['hide']();}}),$(document)['on'](_0x3a7034(0x210),function(_0x4efa5e){const _0x133bdc=_0x3a7034;!$(_0x4efa5e[_0x133bdc(0x277)])[_0x133bdc(0x2b0)](_0x1ceeca[_0x133bdc(0x21e)])[_0x133bdc(0x1e0)]&&_0x1ceeca[_0x133bdc(0x1ef)][_0x133bdc(0x1e7)]();});}});},_0x3114d0=({endpointNode:_0x420e02,endpoint:_0x46e39b,baseUrl:_0x18fa96},_0x42fc6b)=>_0x4b154e(void 0x0,void 0x0,void 0x0,function*(){const _0x655e6f=_0x562fcf,_0x586630=_0x18fa96+'/opcua-endpoint2',_0x485566=_0x586630+'/checkNodeId',_0x502ef0=yield fetch(_0x485566,{'method':_0x655e6f(0x278),'body':JSON[_0x655e6f(0x28d)]({'endpointNode':_0x420e02,'endpoint':_0x46e39b,'nodeId':_0x42fc6b}),'headers':{'Content-Type':_0x655e6f(0x241)}});if(_0x502ef0[_0x655e6f(0x1de)]!==0xc8){console[_0x655e6f(0x211)](_0x655e6f(0x290),_0x502ef0[_0x655e6f(0x1de)],_0x502ef0[_0x655e6f(0x24a)]);const _0x294ee5={'statusCode':_0x655e6f(0x22d),'nodeAddressString':_0x42fc6b};return _0x294ee5;}console['log'](_0x655e6f(0x2ac),_0x502ef0[_0x655e6f(0x1de)],_0x502ef0[_0x655e6f(0x24a)]);const _0x5be425=yield _0x502ef0['json']();return _0x5be425;});function _0x1e3c9e(_0x3e73de,_0x393712,_0x3a6514,_0x8499b8){const _0xc7cb41=_0x562fcf,_0x2ba422=$('#'+_0x3e73de+_0xc7cb41(0x200)),_0x5cc12d=$('#'+_0x3e73de+'-failure'),_0x29103e=$('#'+_0x3e73de+_0xc7cb41(0x2a7)),_0x13c0d=$('#'+_0x3e73de+_0xc7cb41(0x21a));let _0x3846d5=![];_0x2ba422[_0xc7cb41(0x1e7)](),_0x5cc12d[_0xc7cb41(0x1e7)](),_0x29103e[_0xc7cb41(0x1e7)](),_0x393712['on'](_0xc7cb41(0x210),()=>{const _0x4468e7=_0xc7cb41;if(_0x3846d5)return;_0x3846d5=!![],_0x29103e['removeClass'](_0x4468e7(0x1e7)),_0x29103e[_0x4468e7(0x263)](_0x4468e7(0x26d)),_0x2ba422[_0x4468e7(0x267)](_0x4468e7(0x1e7)),_0x5cc12d[_0x4468e7(0x267)](_0x4468e7(0x1e7)),_0x13c0d[_0x4468e7(0x263)]('');const {body:_0x223b3e,url:_0xbbd8c8}=_0x3a6514();fetch(_0xbbd8c8,{'method':_0x4468e7(0x278),'headers':{'Content-Type':'application/json'},'body':JSON[_0x4468e7(0x28d)](_0x223b3e)})[_0x4468e7(0x202)](_0x166e57=>_0x166e57['json']())['then'](_0x46888a=>{const _0x2ff2b9=_0x4468e7;_0x3846d5=![],_0x29103e[_0x2ff2b9(0x1e7)](),console[_0x2ff2b9(0x211)](JSON[_0x2ff2b9(0x28d)](_0x46888a,null,'\x20'));if(_0x46888a[_0x2ff2b9(0x271)]==='ok')_0x2ba422[_0x2ff2b9(0x29d)]('hide'),_0x5cc12d[_0x2ff2b9(0x267)](_0x2ff2b9(0x1e7)),_0x13c0d['html'](_0x46888a[_0x2ff2b9(0x28c)][_0x2ff2b9(0x29f)]('\x0a',_0x2ff2b9(0x220))),_0x8499b8(null,_0x46888a);else{const _0x78595c=_0x556650=>!_0x556650?'':_0x556650[_0x2ff2b9(0x259)]('\x0a')[_0x2ff2b9(0x236)](_0x2ce733=>_0x2ff2b9(0x23e)+_0x2ce733+_0x2ff2b9(0x2a9))['join']('\x0a'),_0x23adee=_0x17b293=>Array[_0x2ff2b9(0x24b)](_0x17b293)?_0x17b293[_0x2ff2b9(0x236)](_0x78595c)[_0x2ff2b9(0x1f1)]('\x0a'):_0x78595c(_0x17b293);_0x2ba422[_0x2ff2b9(0x267)]('hide'),_0x5cc12d[_0x2ff2b9(0x29d)](_0x2ff2b9(0x1e7)),_0x13c0d[_0x2ff2b9(0x263)](_0x23adee(_0x46888a['message'])+_0x23adee(_0x46888a[_0x2ff2b9(0x22e)])),_0x8499b8(new Error(_0x46888a[_0x2ff2b9(0x271)]),_0x46888a);}})[_0x4468e7(0x20f)](_0x4d2a37=>{const _0x1fcbac=_0x4468e7;_0x3846d5=![],_0x29103e[_0x1fcbac(0x267)](_0x1fcbac(0x1e7)),_0x2ba422['addClass']('hide'),_0x5cc12d[_0x1fcbac(0x29d)](_0x1fcbac(0x1e7)),_0x13c0d[_0x1fcbac(0x263)]('internal\x20error\x20'+_0x4d2a37[_0x1fcbac(0x28c)]),console[_0x1fcbac(0x211)](_0x1fcbac(0x2b5),_0x4d2a37),_0x8499b8(_0x4d2a37,null);});});}const _0x2cdd8c=()=>{const _0x16d198=_0x562fcf,_0x4f564a=$('#node-input-endpoint'),_0x3ef26d=_0x4f564a[_0x16d198(0x231)](),_0x2d3288=RED[_0x16d198(0x23f)][_0x16d198(0x219)](_0x3ef26d);if(!_0x2d3288)return undefined;const {endpoint:_0x379dc6,securityMode:_0x4ebec5,securityPolicy:_0x388452,userIdentityType:_0x1dbeca,credentials:_0x9f3e21}=_0x2d3288,_0x57ae01={'endpoint':_0x379dc6,'securityMode':_0x4ebec5,'securityPolicy':_0x388452,'userIdentityType':_0x1dbeca,'credentials':_0x9f3e21};return console[_0x16d198(0x211)](_0x16d198(0x260),_0x57ae01),_0x57ae01;},_0x3ec69b=()=>{return{'endpointNode':_0x5c25de};},_0x5c25de=()=>{const _0xfb2877=_0x562fcf,_0xfbf4ec=$(_0xfb2877(0x233)),_0x3b7ab5=_0xfbf4ec[_0xfb2877(0x231)](),_0x20ec6c=_0x2cdd8c();if(!_0x20ec6c)return undefined;return{'id':_0x3b7ab5};};RED['nodes'][_0x562fcf(0x22a)](_0x562fcf(0x269),{'category':_0x562fcf(0x213),'color':'#C0DEED','align':_0x562fcf(0x1f5),'icon':_0x562fcf(0x262),'paletteLabel':_0x562fcf(0x2b1),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x562fcf(0x249)},'action':{'value':'read','required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x2ee695=_0x562fcf;return this['name']||_0x2ee695(0x20c);},'labelStyle'(){const _0x50548e=_0x562fcf;return this[_0x50548e(0x2a5)]?_0x50548e(0x1f7):'';},'oneditprepare'(){const _0x474af3=_0x562fcf,_0xaa130=this;_0x5d9fbc(),_0xaa130[_0x474af3(0x208)]=0x1;let _0x464894={};console['log'](_0x474af3(0x225));const _0x5a41b8=$(_0x474af3(0x293)),_0xb37419=$('#node-input-methodId'),_0x9bd771=$(_0x474af3(0x297)),_0x3802e4=$(_0x474af3(0x2ae)),_0x597d8f=$(_0x474af3(0x221));_0x5a41b8[_0x474af3(0x2b3)](Object[_0x474af3(0x234)](Object['assign']({},_0x3ec69b()),{'filter'(_0x5bb154){const _0x4149ab=_0x474af3;return _0x5bb154[_0x4149ab(0x2a3)]===_0x4149ab(0x26b);}})),_0xb37419[_0x474af3(0x2b3)](Object[_0x474af3(0x234)](Object[_0x474af3(0x234)]({},_0x3ec69b()),{'parentNode':()=>_0x4b154e(this,void 0x0,void 0x0,function*(){const _0x5681cd=_0x474af3;let _0x5eba95=_0x5a41b8['data'](_0x5681cd(0x27d));if(!_0x5eba95){const _0x572be7=_0x5a41b8['val'](),_0x2192d3=_0x2cdd8c();if(!_0x2192d3)return null;const _0x294c5d={'baseUrl':'','endpoint':'','endpointNode':_0x2192d3};try{const _0x3492ee=yield _0x3114d0(_0x294c5d,_0x572be7);_0x5eba95=_0x3492ee[_0x5681cd(0x27d)];}catch(_0xc171ce){console[_0x5681cd(0x211)](_0xc171ce);}}return _0x5eba95;}),'filter'(_0x23e104){const _0x5bc11d=_0x474af3;return _0x23e104['nodeClass']==='Method'||_0x23e104[_0x5bc11d(0x2a3)]==='Object';},'isSelectable'(_0x4744aa){return _0x4744aa['nodeClass']==='Method';}})),_0x5a41b8['on'](_0x474af3(0x264),()=>{const _0x4120fc=_0x474af3;_0xb37419[_0x4120fc(0x2b3)]('reset');}),console[_0x474af3(0x211)](_0x474af3(0x2b2));function _0x3ae607(_0x34e7d0,_0x7f0fed,_0x401635){const _0x12acbc=_0x474af3,_0xbb0c7c=$('<div\x20class=\x22argument-entry\x22>')['appendTo'](_0x34e7d0);$(_0x12acbc(0x28f))[_0x12acbc(0x231)](_0x401635[_0x12acbc(0x2a5)]||'')[_0x12acbc(0x2b6)]({'width':_0x12acbc(0x27a)})[_0x12acbc(0x206)](_0xbb0c7c);const _0x882c45=_0x464894[_0x401635['dataType'][_0x12acbc(0x240)]()],_0x5906f7=(_0x882c45?_0x882c45[_0x12acbc(0x226)][_0x12acbc(0x2a5)]||'':_0x401635[_0x12acbc(0x2a6)]['toString']())+(_0x401635['valueRank']===0x1?'[]':'');$(_0x12acbc(0x28f))[_0x12acbc(0x231)](_0x401635[_0x12acbc(0x272)][_0x12acbc(0x1fd)]||'')['css']({'width':'50%'})[_0x12acbc(0x206)](_0xbb0c7c),$(_0x12acbc(0x28f))[_0x12acbc(0x231)](_0x5906f7||'')[_0x12acbc(0x2b6)]({'width':_0x12acbc(0x1e4)})['appendTo'](_0xbb0c7c);}_0x9bd771[_0x474af3(0x201)]({'addButton':![],'height':_0x474af3(0x1ed),'scrollOnAdd':![],'addItem'(_0x450b97,_0x234ca5,_0x2f3626){_0x3ae607(_0x450b97,_0x234ca5,_0x2f3626);}}),_0x3802e4['editableList']({'addButton':![],'height':_0x474af3(0x1ed),'scrollOnAdd':![],'addItem'(_0x5d1e60,_0x336406,_0x2da636){_0x3ae607(_0x5d1e60,_0x336406,_0x2da636);}});function _0x55ae36(_0x431622,_0xaf56){const _0x344c11=_0x474af3;console['log'](_0x344c11(0x280),_0xaf56[_0x344c11(0x1e0)],_0x344c11(0x218),_0xaf56),_0x431622[_0x344c11(0x201)](_0x344c11(0x265));for(let _0x200c98=0x0;_0x200c98<_0xaf56['length'];_0x200c98++){_0x431622[_0x344c11(0x201)](_0x344c11(0x1fe),_0xaf56[_0x200c98]);}}_0x9bd771[_0x474af3(0x1e7)](),_0x3802e4[_0x474af3(0x1e7)](),_0x1e3c9e(_0x474af3(0x1ee),_0x597d8f,()=>({'url':_0x474af3(0x24f),'body':{'endpointNode':_0x5c25de(),'objectId':_0x5a41b8['val'](),'methodId':_0xb37419[_0x474af3(0x231)]()}}),(_0x2124f6,_0x48304f)=>{const _0x448ef1=_0x474af3;if(_0x2124f6)return;const _0x3df665=_0x48304f['argumentDefinition'];_0x464894=_0x48304f[_0x448ef1(0x298)],_0x9bd771[_0x448ef1(0x2b7)](),_0x3802e4[_0x448ef1(0x2b7)](),_0x55ae36(_0x9bd771,_0x3df665[_0x448ef1(0x270)]),_0x55ae36(_0x3802e4,_0x3df665['outputArguments']),console[_0x448ef1(0x211)]('data',_0x48304f);});},'oneditsave'(){}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0YjE1NGUiLCJfMHgzNjdjYTgiLCJfMHgzMWExMGIiLCJfMHgzZGE0NjkiLCJfMHgzZTk1OTYiLCJfMHgxZTE1NGIiLCJfMHgyY2YyOTAiLCJfMHgzNDU1OGUiLCJQcm9taXNlIiwiXzB4MWYyYTJmIiwiXzB4YzcwNTcwIiwiXzB4MjE5M2M5IiwiXzB4NWViMTAwIiwiXzB4NWQzZjkyIiwiXzB4M2Y3MjM2IiwiXzB4NGM2ZjZlIiwiXzB4NDcxZjZjIiwiXzB4ZWI4ODEyIiwiXzB4MTdmOTA3IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MzBjZWUxIiwiXzB4NTM1ZWViIiwiXzB4YWQxNTgwIiwiXzB4MzQ3N2UxIiwiRXJyb3IiLCJfMHgxYWFhNGMiLCJfMHgyY2I5YWMiLCJfMHg1YmRlMTEiLCJfMHg1NWQ1N2MiLCJfMHgyMTkxNDEiLCJfMHg2Y2E0YjkiLCJfMHg4YzE4NjIiLCJfMHgyYTcwM2MiLCJfMHgzOWU0NjEiLCJfMHg1MDdiMmIiLCJfMHgzOTUwYjUiLCJfMHg0NzFjYjUiLCJfMHg1MzJiNTIiLCJfMHgyOTAzYzEiLCJfMHgxMTEwYzEiLCJfMHgzMWJmNWIiLCJfMHgzMjA2NGQiLCJfMHg1NGU1NmMiLCJfMHgxMTMzNTUiLCJfMHgxNzhkMzUiLCJlbmRwb2ludE5vZGUiLCJfMHg0Yjk0MjIiLCJlbmRwb2ludCIsIl8weDFiYTg0MCIsImJhc2VVcmwiLCJfMHgyOTE0MjUiLCJfMHg0ZGZjMDEiLCJfMHgzZWVkNTIiLCJfMHgxOTI2ZmQiLCJfMHgxODY3MTMiLCJfMHgzZWVkZTkiLCJPYmplY3QiLCJfMHg1OGI5MGEiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MTIxZGU4IiwiXzB4NTdiYTM0IiwiXzB4YWQ1YTIxIiwiXzB4NTA1NWQyIiwiXzB4MmY2MTgxIiwiXzB4MmJiOTM1IiwiXzB4NWRkMjYyIiwiXzB4NDgxY2E1IiwiXzB4NWQ5N2EzIiwiXzB4NDcwZjYyIiwiXzB4ZTNjNGZjIiwiXzB4MWI1MmM0IiwiXzB4NTExNzU0IiwiXzB4MWNlYTZmIiwiXzB4MTc5ZTg5IiwiXzB4NDY2NmE1Iiwic2V0VGltZW91dCIsIl8weDMzNTExNCIsIl8weDQ0YThlMyIsIl8weDJmZjYyMyIsIl8weDJjMzMxNCIsIl8weDQ4NmM0ZSIsIl8weDE1N2VmOCIsIl8weDE4Mzg1OSIsIl8weDRhMzUyMSIsIl8weDMzYWYyNCIsIl8weDMxZGU5YiIsIl8weDRkMDdlOCIsIl8weDNiOWU2MCIsIl8weDMwMGUyOSIsIl8weDVkOWVhNiIsIl8weDViN2ZmOSIsIl8weDRmNjBiOSIsIl8weDI2NWFhYyIsIl8weDc1YmU4YSIsIiQiLCJfMHgxYTlhZDYiLCJfMHg0ZGYzYzUiLCJpY29uIiwiXzB4MWUxMzI0IiwiY29sb3IiLCJfMHg1NTNjYjciLCJfMHgxNGNjNzciLCJfMHg1ZDlmYmMiLCJ1bmRlZmluZWQiLCJfMHg4YmMxZSIsIl8weDFlY2M3ZSIsIl8weDE4MTU3MSIsIl8weDU4MDAxYiIsIl8weDJmZWU3MCIsIl8weDUxNGVlMSIsIl8weDE1ZjBjNCIsIl8weDFjZWVjYSIsIl8weDU4YWYyMyIsIl8weDU3NTY2OSIsIl8weDQ2YmU3YSIsIl8weDRkNzM3MiIsInJlZmVyZW5jZXMiLCJfMHgxYTEwYmMiLCJfMHg5MmRlYjkiLCJfMHgxZjZjNTQiLCJfMHg0ZTRjMWMiLCJfMHg0YTViZmYiLCJfMHgyZDVhZTciLCJfMHhmM2FlYTEiLCJfMHgzNjZjOTUiLCJfMHg0MWJhOTQiLCJfMHgzNGRmOGEiLCJfMHg1MGNhODciLCJfMHgxMjdiNzAiLCJfMHg0YzJiNzUiLCJfMHgxNGNiZDEiLCJfMHgzYjJiZTMiLCJfMHgzZDkyY2IiLCJfMHg0Yjk1MjkiLCJfMHg1MDBjYTEiLCJfMHgxYzEyOWQiLCJfMHgxMDllZjUiLCJfMHgyMjc4YzAiLCJkb2N1bWVudCIsIl8weDRlZmE1ZSIsIl8weDMxMTRkMCIsIl8weDQyMGUwMiIsIl8weDQ2ZTM5YiIsIl8weDE4ZmE5NiIsIl8weDQyZmM2YiIsIl8weDU4NjYzMCIsIl8weDQ4NTU2NiIsIl8weDUwMmVmMCIsIl8weDI5NGVlNSIsIl8weDViZTQyNSIsIl8weDFlM2M5ZSIsIl8weDNlNzNkZSIsIl8weDM5MzcxMiIsIl8weDNhNjUxNCIsIl8weDg0OTliOCIsIl8weDJiYTQyMiIsIl8weDVjYzEyZCIsIl8weDI5MTAzZSIsIl8weDEzYzBkIiwiXzB4Mzg0NmQ1IiwiYm9keSIsIl8weDIyM2IzZSIsInVybCIsIl8weGJiZDhjOCIsIl8weDE2NmU1NyIsIl8weDQ2ODg4YSIsIl8weDc4NTk1YyIsIl8weDU1NjY1MCIsIl8weDJjZTczMyIsIl8weDIzYWRlZSIsIl8weDE3YjI5MyIsIkFycmF5IiwiXzB4NGQyYTM3IiwiXzB4MmNkZDhjIiwiXzB4NGY1NjRhIiwiXzB4M2VmMjZkIiwiXzB4MmQzMjg4IiwiUkVEIiwiXzB4Mzc5ZGM2Iiwic2VjdXJpdHlNb2RlIiwiXzB4NGViZWM1Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHgzODg0NTIiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MWRiZWNhIiwiY3JlZGVudGlhbHMiLCJfMHg5ZjNlMjEiLCJfMHg1N2FlMDEiLCJfMHgzZWM2OWIiLCJfMHg1YzI1ZGUiLCJfMHhmYmY0ZWMiLCJfMHgzYjdhYjUiLCJfMHgyMGVjNmMiLCJfMHhhYTEzMCIsIl8weDQ2NDg5NCIsIl8weDVhNDFiOCIsIl8weGIzNzQxOSIsIl8weDliZDc3MSIsIl8weDM4MDJlNCIsIl8weDU5N2Q4ZiIsIl8weDViYjE1NCIsIl8weDVlYmE5NSIsIl8weDU3MmJlNyIsIl8weDIxOTJkMyIsIl8weDI5NGM1ZCIsIl8weDM0OTJlZSIsIl8weGMxNzFjZSIsIl8weDIzZTEwNCIsIl8weDQ3NDRhYSIsIl8weDNhZTYwNyIsIl8weDM0ZTdkMCIsIl8weDdmMGZlZCIsIl8weDQwMTYzNSIsIl8weGJiMGM3YyIsIl8weDg4MmM0NSIsIl8weDU5MDZmNyIsIl8weDQ1MGI5NyIsIl8weDIzNGNhNSIsIl8weDJmMzYyNiIsIl8weDVkMWU2MCIsIl8weDMzNjQwNiIsIl8weDJkYTYzNiIsIl8weDU1YWUzNiIsIl8weDQzMTYyMiIsIl8weGFmNTYiLCJfMHgyMDBjOTgiLCJfMHgyMTI0ZjYiLCJfMHg0ODMwNGYiLCJfMHgzZGY2NjUiXSwibWFwcGluZ3MiOiIyL0hBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMsQ0FBNEIsRyxDQUFNQyxTQUFBLENBQUtULFNBQUEsQyxNQUFBLEVBQWVRLFNBQWYsQ0FBTCxDLEVBQStCLE1BQU9FLFNBQVAsQyxDQUFZSixTQUFBLENBQU9JLFNBQVAsQyxHQUM3RSxTQUFTQyxTQUFULENBQWtCQyxTQUFsQixDLHlCQUEyQixHLENBQU1ILFNBQUEsQ0FBS1QsU0FBQSxDLGdCQUFBLEVBQW1CWSxTQUFuQixDQUFMLEMsRUFBbUMsTUFBT0MsU0FBUCxDLENBQVlQLFNBQUEsQ0FBT08sU0FBUCxDLEdBQ2hGLFNBQVNKLFNBQVQsQ0FBY0ssU0FBZCxDLHlCQUF3QkEsU0FBQSxDLGdCQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLGdCQUFBLENBQVIsQ0FBZCxDQUFzQ2IsU0FBQSxDQUFNYSxTQUFBLEMsZ0JBQUEsQ0FBTixFLE1BQUEsRUFBeUJQLFNBQXpCLENBQW9DSSxTQUFwQyxDLEVBQzlERixTQUFBLENBQU0sQ0FBQVQsU0FBQSxDQUFZQSxTQUFBLEMsT0FBQSxFQUFnQkgsU0FBaEIsQ0FBeUJDLFNBQUEsRUFBYyxFQUF2QyxDQUFaLENBQUQsQyxnQkFBQSxHQUFMLEMsRUFKRyxDLEVBUVgsT0FBT2lCLGVBQVAsRyxnQkFBQSxDQUF3Q0EsZUFBeEMsQ0FBMEQsU0FBVUMsU0FBVixDQUFpQkMsU0FBakIsQ0FBNkJDLFNBQTdCLEMsMkJBQ3RELElBQUlDLFNBQUEsQ0FBSSxJQUFJQyxLQUFKLENBQVVGLFNBQVYsQ0FBUixDLE9BQ09DLFNBQUEsQyxnQkFBQSxFLGdCQUFBLENBQTRCQSxTQUFBLEMsZ0JBQUEsRUFBVUgsU0FBdEMsQ0FBNkNHLFNBQUEsQyxnQkFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxnQkFBTixDQUNNQyxTQUFBLEMsV0FETixDQUVNQyxTQUFBLEMsZ0JBRk4sQ0FHTUMsU0FBQSxDLGdCQUhOLENBSU1DLFNBQUEsQyxXQUpOLENBS01DLFNBQUEsQyxnQkFMTixDQU1NQyxTQUFBLEMsZ0JBTk4sQ0FRQSxJQUFJQyxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBZ0JBLFNBQUEsQyxnQkFBQSxFLEdBQWhCLEUsVUFDQUEsU0FBQSxDQUFnQkEsU0FBQSxDLFNBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGtCQUpKLENBS0dELFNBQUEsRUFBb0IsQ0FBQUEsU0FBQSxDQUFrQixFQUFsQixDQUx2QixHQU1BLElBQUlFLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFVBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLFFBQUEsRSxHQUFWLEUsaUJBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGFBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsSUFBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsa0JBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxRQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsU0FDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxHQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGNBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsSUFBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsa0JBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDBCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxXQUFBLEUsR0FBWCxFLFlBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxHQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxHQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxJQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFB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LENBQTlDLEMsQ0FDQU4sU0FBQSxDQUFvQnhCLFNBQXBCLENBQStDOEIsU0FBQSxDLGlCQUFBLENBQS9DLEMsQ0FDQTFLLE9BQUEsQyxnQkFBQSxFLE1BQUEsQ0FBb0J5SyxTQUFwQixDLEVBbEJKLEMsRUFuSHFDLEMsWUF3SXpDLEUsRUF4SXlDLENBQTdDLEMsRUFsbEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUoJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mZXRjaERhdGFGb3JOb2RlKCRsaSwgZiwgZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiBGZXRjaGluZyBkb25lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoZWNrTm9kZUlkID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgY29uc3QgcmVzID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiQmFkXCIsXG4gICAgICAgICAgICAgICAgbm9kZUFkZHJlc3NTdHJpbmc6IG5vZGVJZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbWFuYWdlQVBJQ2FsbChwcmVmaXgsIGJ0biwgZnVuYywgb25SZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc0ljb24gPSAkKGAjJHtwcmVmaXh9LXN1Y2Nlc3NgKTtcbiAgICAgICAgY29uc3QgZmFpbHVyZUljb24gPSAkKGAjJHtwcmVmaXh9LWZhaWx1cmVgKTtcbiAgICAgICAgY29uc3QgcGVuZGluZ0ljb24gPSAkKGAjJHtwcmVmaXh9LXBlbmRpbmdgKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSAkKGAjJHtwcmVmaXh9LW1lc3NhZ2VzYCk7XG4gICAgICAgIGxldCBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHN1Y2Nlc3NJY29uLmhpZGUoKTtcbiAgICAgICAgZmFpbHVyZUljb24uaGlkZSgpO1xuICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgIGJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb25QZW5kaW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24uaHRtbChcIlRlc3RpbmcgQ29ubmVjdGlvbiAuLi5cIik7XG4gICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBib2R5LCB1cmwgfSA9IGZ1bmMoKTtcbiAgICAgICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4eHhcIiwgYm9keSk7XG4gICAgICAgICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuanNvbigpKVxuICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiBcIikpO1xuICAgICAgICAgICAgICAgIGlmIChqc29uLnJlc3VsdCA9PT0gXCJva1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGpzb24ubWVzc2FnZS5yZXBsYWNlKFwiXFxuXCIsIFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG51bGwsIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIG9uUmVzdWx0KGVyciwgbnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1DYWxsXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJjYWxsXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGFjdGlvbjogeyB2YWx1ZTogXCJyZWFkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGNhbGxcbiAgICAgICAgICAgIG1ldGhvZElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgb2JqZWN0SWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQS1DYWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3Rpb24gQ2FsbFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGxldCBkYXRhVHlwZXMgPSB7fTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlclwiKTtcbiAgICAgICAgICAgIC8vIHRvIGRvIGFkZCBhIHR5cGVzY3JpcHQgZGVmaW5pdGlvbiBmb3IgdGhpc1xuICAgICAgICAgICAgY29uc3QgJG9iamVjdElkID0gJChcIiNub2RlLWlucHV0LW9iamVjdElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJG1ldGhvZElkID0gJChcIiNub2RlLWlucHV0LW1ldGhvZElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJGlucHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2QtaW5wdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1vdXRwdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ0biA9ICQoXCIjdmFsaWRhdGUtY2FsbC1hcmd1bWVudHMtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJG9iamVjdElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5kcG9pbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IHsgYmFzZVVybDogXCJcIiwgZW5kcG9pbnQ6IFwiXCIsIGVuZHBvaW50Tm9kZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSByLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgfSksIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIG5vZGVCcm93c2VyIERvbmVcIik7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
(function(_0x43fd0b,_0x449285){const _0x458c59=_0x1824,_0x8911d0=_0x43fd0b();while(!![]){try{const _0x29efce=-parseInt(_0x458c59(0x142))/0x1+-parseInt(_0x458c59(0xed))/0x2+-parseInt(_0x458c59(0x111))/0x3+-parseInt(_0x458c59(0xc2))/0x4*(parseInt(_0x458c59(0xd3))/0x5)+-parseInt(_0x458c59(0xe0))/0x6+-parseInt(_0x458c59(0x9f))/0x7+parseInt(_0x458c59(0xd9))/0x8;if(_0x29efce===_0x449285)break;else _0x8911d0['push'](_0x8911d0['shift']());}catch(_0x315806){_0x8911d0['push'](_0x8911d0['shift']());}}}(_0x2f0e,0x6a204),(function(){'use strict';const _0x3ecf62=_0x1824;function _0xdb1cf3(_0x4170a5,_0x3ec307,_0x52f6e2,_0x42a5b8){function _0x3663df(_0x4837a6){return _0x4837a6 instanceof _0x52f6e2?_0x4837a6:new _0x52f6e2(function(_0x17dae2){_0x17dae2(_0x4837a6);});}return new(_0x52f6e2||(_0x52f6e2=Promise))(function(_0x389dac,_0xad03f3){const _0x3c096a=_0x1824;function _0x24263b(_0x4989de){const _0x3d6bc2=_0x1824;try{_0x2c54e5(_0x42a5b8[_0x3d6bc2(0xea)](_0x4989de));}catch(_0x4f8248){_0xad03f3(_0x4f8248);}}function _0x351071(_0x3bfcfd){const _0x446450=_0x1824;try{_0x2c54e5(_0x42a5b8[_0x446450(0x133)](_0x3bfcfd));}catch(_0x38108e){_0xad03f3(_0x38108e);}}function _0x2c54e5(_0x6fb2f0){const _0x5a8224=_0x1824;_0x6fb2f0['done']?_0x389dac(_0x6fb2f0['value']):_0x3663df(_0x6fb2f0[_0x5a8224(0x8e)])['then'](_0x24263b,_0x351071);}_0x2c54e5((_0x42a5b8=_0x42a5b8[_0x3c096a(0xdb)](_0x4170a5,_0x3ec307||[]))[_0x3c096a(0xea)]());});}typeof SuppressedError===_0x3ecf62(0x147)?SuppressedError:function(_0x4ab33c,_0x26f003,_0x2779e4){const _0xc65ccc=_0x3ecf62;var _0x199fd0=new Error(_0x2779e4);return _0x199fd0['name']='SuppressedError',_0x199fd0[_0xc65ccc(0xcb)]=_0x4ab33c,_0x199fd0[_0xc65ccc(0xfe)]=_0x26f003,_0x199fd0;};const _0x3c2531='ns=0;i=35',_0x14505e='ns=0;i=61',_0x3cd7a8=_0x3ecf62(0x110),_0x13d94b='ns=0;i=46',_0x112093=_0x3ecf62(0xcd),_0x4a2f8='ns=0;i=45',_0xb8041c=_0x3ecf62(0xe7);var _0x50f41a;(function(_0x3f2e1a){const _0x54f613=_0x3ecf62;_0x3f2e1a[_0x3f2e1a[_0x54f613(0xd5)]=0x0]=_0x54f613(0xd5),_0x3f2e1a[_0x3f2e1a[_0x54f613(0x144)]=0x1]=_0x54f613(0x144),_0x3f2e1a[_0x3f2e1a[_0x54f613(0x117)]=0x2]=_0x54f613(0x117),_0x3f2e1a[_0x3f2e1a['Invalid']=0x3]=_0x54f613(0x145);}(_0x50f41a||(_0x50f41a={})));var _0xa41a14;(function(_0x44ddde){const _0x1ba006=_0x3ecf62;_0x44ddde[_0x44ddde[_0x1ba006(0xe1)]=0x0]=_0x1ba006(0xe1),_0x44ddde[_0x44ddde[_0x1ba006(0xb2)]=0x1]=_0x1ba006(0xb2),_0x44ddde[_0x44ddde['Variable']=0x2]='Variable',_0x44ddde[_0x44ddde[_0x1ba006(0x11c)]=0x4]='Method',_0x44ddde[_0x44ddde[_0x1ba006(0x156)]=0x8]=_0x1ba006(0x156),_0x44ddde[_0x44ddde[_0x1ba006(0x11f)]=0x10]=_0x1ba006(0x11f),_0x44ddde[_0x44ddde['ReferenceType']=0x20]=_0x1ba006(0x12b),_0x44ddde[_0x44ddde['DataType']=0x40]=_0x1ba006(0x9e),_0x44ddde[_0x44ddde[_0x1ba006(0xe2)]=0x80]=_0x1ba006(0xe2);}(_0xa41a14||(_0xa41a14={})));var _0x3a1efb;(function(_0xe15376){const _0x59d81f=_0x3ecf62;_0xe15376[_0xe15376[_0x59d81f(0xb2)]=0x1]=_0x59d81f(0xb2),_0xe15376[_0xe15376[_0x59d81f(0x126)]=0x2]='Variable',_0xe15376[_0xe15376[_0x59d81f(0x11c)]=0x4]=_0x59d81f(0x11c),_0xe15376[_0xe15376[_0x59d81f(0x156)]=0x8]=_0x59d81f(0x156),_0xe15376[_0xe15376['VariableType']=0x10]=_0x59d81f(0x11f),_0xe15376[_0xe15376[_0x59d81f(0x12b)]=0x20]=_0x59d81f(0x12b),_0xe15376[_0xe15376[_0x59d81f(0x9e)]=0x40]=_0x59d81f(0x9e),_0xe15376[_0xe15376[_0x59d81f(0xe2)]=0x80]=_0x59d81f(0xe2);}(_0x3a1efb||(_0x3a1efb={})));var _0x4abb6a;(function(_0x411cf5){const _0x74ca69=_0x3ecf62;_0x411cf5[_0x411cf5[_0x74ca69(0x12b)]=0x1]=_0x74ca69(0x12b),_0x411cf5[_0x411cf5[_0x74ca69(0x11e)]=0x2]=_0x74ca69(0x11e),_0x411cf5[_0x411cf5[_0x74ca69(0xc1)]=0x4]=_0x74ca69(0xc1),_0x411cf5[_0x411cf5[_0x74ca69(0x101)]=0x8]='BrowseName',_0x411cf5[_0x411cf5[_0x74ca69(0xf8)]=0x10]=_0x74ca69(0xf8),_0x411cf5[_0x411cf5[_0x74ca69(0x14b)]=0x20]=_0x74ca69(0x14b);}(_0x4abb6a||(_0x4abb6a={})));function _0x3185fa(_0x491c00){const _0x252906=_0x3ecf62;switch(_0x491c00){case _0x252906(0xdf):return _0x3c2531;case _0x252906(0x137):return _0x13d94b;case _0x252906(0x9a):return _0x3cd7a8;case _0x252906(0x87):return _0x112093;case _0x252906(0x106):return _0x4a2f8;case _0x252906(0x94):return _0xb8041c;}}const _0x4d730b=_0x4140aa=>{const _0x29ebf9=_0x3ecf62;switch(_0x4140aa[_0x29ebf9(0xb4)]){case _0x29ebf9(0xb2):if(_0x4140aa['referenceTypeId']===_0x3c2531);if(_0x4140aa['typeDefinition']===_0x14505e||_0x4140aa['referenceTypeId']===_0x29ebf9(0xff))return{'icon':_0x29ebf9(0x116),'color':_0x29ebf9(0x12d)};return{'icon':_0x29ebf9(0xdd),'color':_0x29ebf9(0x10d)};case _0x29ebf9(0x126):if(_0x4140aa[_0x29ebf9(0x120)]===_0x3cd7a8)return{'icon':_0x29ebf9(0x135),'color':'SteelBlue'};else return _0x4140aa[_0x29ebf9(0x120)]===_0x13d94b?{'icon':_0x29ebf9(0x135),'color':_0x29ebf9(0x11a)}:{'icon':_0x29ebf9(0x135),'color':_0x29ebf9(0x12c)};case _0x29ebf9(0x11c):return{'icon':_0x29ebf9(0x105),'color':_0x29ebf9(0x12e)};case _0x29ebf9(0x156):return{'icon':_0x29ebf9(0xdd),'color':_0x29ebf9(0x9c)};case _0x29ebf9(0x11f):return{'icon':_0x29ebf9(0x8d),'color':_0x29ebf9(0x9c)};}return{'icon':_0x29ebf9(0x115),'color':'grey'};},_0x417704=({endpointNode:_0x26ed9a,endpoint:_0x3fa60c,baseUrl:_0x245a8f},_0x3d5999,_0x46f244)=>_0xdb1cf3(void 0x0,void 0x0,void 0x0,function*(){const _0xbe0a95=_0x3ecf62,_0x25c073=_0x245a8f+_0xbe0a95(0x14a),_0x334f5f=_0x25c073+_0xbe0a95(0xb7),_0x14c12f=Object[_0xbe0a95(0xaf)](Object[_0xbe0a95(0xaf)]({},_0x46f244),{'nodeId':_0x3d5999,'resultMask':0x3f}),_0x7a92a0=yield fetch(_0x334f5f,{'method':_0xbe0a95(0xd8),'body':JSON[_0xbe0a95(0xb9)]({'endpointNode':_0x26ed9a,'endpoint':_0x3fa60c,'browseDescription':_0x14c12f}),'headers':{'Content-Type':_0xbe0a95(0x108)}});if(_0x7a92a0[_0xbe0a95(0xb8)]!==0xc8)return console['log'](_0xbe0a95(0xab),_0x7a92a0[_0xbe0a95(0xb8)],_0x7a92a0['statusText']),{'references':[]};console[_0xbe0a95(0x132)](_0xbe0a95(0xc8),_0x7a92a0[_0xbe0a95(0xb8)],_0x7a92a0[_0xbe0a95(0xfc)]);const _0x2e77a6=yield _0x7a92a0[_0xbe0a95(0x141)](),_0x424d8a=_0x2e77a6[_0xbe0a95(0x109)][_0xbe0a95(0xb0)]||[];return{'references':_0x424d8a};}),_0x1c6f65={'referenceTypeId':_0x3185fa('HasChild'),'includeSubtypes':!![],'browseDirection':_0x50f41a[_0x3ecf62(0xd5)],'nodeClassMask':_0xa41a14[_0x3ecf62(0x126)]|_0xa41a14[_0x3ecf62(0xb2)]|_0xa41a14[_0x3ecf62(0x11c)],'resultMask':0x3f},_0x4a939f={'referenceTypeId':_0x3185fa(_0x3ecf62(0xdf)),'includeSubtypes':!![],'browseDirection':_0x50f41a[_0x3ecf62(0xd5)],'nodeClassMask':_0xa41a14[_0x3ecf62(0x126)]|_0xa41a14['Object']|_0xa41a14[_0x3ecf62(0x11c)],'resultMask':0x3f},_0x5ac9b7=({endpointNode:_0x3a6a58,endpoint:_0x3262c0,baseUrl:_0x14c5e7},_0x533ebe,_0x14dd65)=>_0xdb1cf3(void 0x0,void 0x0,void 0x0,function*(){const _0x35666c=_0x3ecf62,_0x4f1143=_0x14c5e7+'/opcua-endpoint2',_0x5b2b5f=_0x533ebe['val'](),_0x27bee6=yield fetch(_0x4f1143+_0x35666c(0xee),{'method':'POST','body':JSON[_0x35666c(0xb9)]({'endpointNode':_0x3a6a58,'endpoint':_0x3262c0,'nodeId':_0x5b2b5f}),'headers':{'Content-Type':'application/json'}}),_0x38b868=(_0x5dcaeb,_0x18c956)=>{const _0x19005c=_0x35666c;_0x14dd65[_0x19005c(0x154)](_0x5dcaeb)[_0x19005c(0x149)](_0x19005c(0xfb))[_0x19005c(0x149)](_0x18c956),_0x14dd65[_0x19005c(0xba)](),setTimeout(()=>{_0x14dd65['removeClass'](_0x18c956),_0x14dd65['hide']();},0xbb8);},_0x4d3932=yield _0x27bee6['json']();_0x27bee6['status']!==0xc8?_0x38b868(_0x35666c(0x146)+_0x5b2b5f,_0x35666c(0xe6)):_0x4d3932[_0x35666c(0xf7)]['match'](/Good/)?(_0x533ebe[_0x35666c(0x121)](_0x4d3932['nodeAddressString']),_0x533ebe[_0x35666c(0x107)]('change'),_0x38b868(_0x35666c(0x113),'ok')):(_0x533ebe[_0x35666c(0x121)](''+_0x5b2b5f),_0x38b868(_0x4d3932[_0x35666c(0xf7)]+'\x20'+_0x27bee6[_0x35666c(0xfc)],'failure'));});function _0x4bd546(_0x383e45,_0x4609fe){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x6f1d72=_0x1824,_0x31b267=_0x383e45[_0x6f1d72(0x91)]('value'),_0x174f58=yield _0x417704(_0x4609fe,_0x31b267,_0x1c6f65),_0x422423=yield _0x417704(_0x4609fe,_0x31b267,_0x4a939f);return{'references':[..._0x174f58[_0x6f1d72(0xb0)],..._0x422423[_0x6f1d72(0xb0)]]};});}const _0x2284b9={'referenceTypeId':_0x3185fa('HasSubtype'),'includeSubtypes':!![],'browseDirection':_0x50f41a[_0x3ecf62(0xd5)],'nodeClassMask':_0xa41a14['ReferenceType']|_0xa41a14[_0x3ecf62(0x156)]|_0xa41a14[_0x3ecf62(0x9e)]|_0xa41a14[_0x3ecf62(0x11f)],'resultMask':0x3f};function _0x56f64f(_0x180557,_0x5c5515){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x451643=_0x180557['data']('value'),_0x562c95=yield _0x417704(_0x5c5515,_0x451643,_0x2284b9);return _0x562c95;});}const _0x56e2ff=_0x2f3497=>{const _0x432aa3=_0x3ecf62;var _0x1801a9,_0x49f608;if(!_0x2f3497){const _0x262e32=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x262e32;}const _0x41b8d5=_0x2f3497[_0x432aa3(0xe9)][_0x432aa3(0x104)](),_0x1d2ab1=((_0x1801a9=_0x2f3497[_0x432aa3(0xd1)])===null||_0x1801a9===void 0x0?void 0x0:_0x1801a9[_0x432aa3(0x154)])||((_0x49f608=_0x2f3497[_0x432aa3(0xa8)])===null||_0x49f608===void 0x0?void 0x0:_0x49f608[_0x432aa3(0x86)])||_0x2f3497['nodeId'][_0x432aa3(0x104)](),{icon:_0x3a332f,color:_0x1b2ba4}=_0x4d730b(_0x2f3497),_0x41f1c6=$('<li><i\x20class=\x22fa\x20'+_0x3a332f+_0x432aa3(0xa9)+_0x1b2ba4+_0x432aa3(0xbd)+_0x1d2ab1+_0x432aa3(0x12a));return _0x41f1c6[_0x432aa3(0x149)](_0x432aa3(0x9d)),_0x41f1c6[_0x432aa3(0x91)](_0x432aa3(0x8e),_0x41b8d5),_0x41f1c6[_0x432aa3(0x91)](_0x432aa3(0x127),_0x2f3497),_0x41f1c6;},_0x56a8f0=()=>{const _0x1cff1e=_0x3ecf62;$[_0x1cff1e(0x139)](_0x1cff1e(0xfd),{'options':{'endpointNode':()=>({'endpoint':_0x1cff1e(0x143)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x1cff1e(0xb1)},'nodeClass':_0x1cff1e(0xb2),'nodeId':_0x1cff1e(0x13e),'displayName':{'text':_0x1cff1e(0xb1)},'typeDefinition':_0x14505e}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x4238fa=_0x1824,_0x4c0b2e=this,_0x403781=typeof _0x4c0b2e[_0x4238fa(0x153)][_0x4238fa(0xd6)]===_0x4238fa(0x147)?_0x4c0b2e[_0x4238fa(0x153)][_0x4238fa(0xd6)]():_0x4c0b2e[_0x4238fa(0x153)][_0x4238fa(0xd6)];if(_0x403781 instanceof Promise)return yield _0x403781;return _0x403781;});},'reset'(){const _0x2e6cde=_0x1cff1e,_0xe40203=this;_0xe40203['$tree']['empty'](),this[_0x2e6cde(0xf4)]()[_0x2e6cde(0xb5)](_0x38cd6b=>{const _0x1af48c=_0x2e6cde,_0x1b83d4=_0x56e2ff(_0x38cd6b);_0xe40203[_0x1af48c(0x100)]['append'](_0x1b83d4),_0xe40203[_0x1af48c(0x114)]=_0x38cd6b;});},'verify'(){const _0x23c6bb=_0x1cff1e,_0x39bbcc=this,_0x40db37={'baseUrl':_0x39bbcc['options'][_0x23c6bb(0x8c)],'endpointNode':typeof _0x39bbcc[_0x23c6bb(0x153)]['endpointNode']===_0x23c6bb(0x147)?_0x39bbcc['options']['endpointNode']():_0x39bbcc[_0x23c6bb(0x153)][_0x23c6bb(0x123)],'endpoint':typeof _0x39bbcc['options']['endpoint']===_0x23c6bb(0x147)?_0x39bbcc['options'][_0x23c6bb(0xf0)]():_0x39bbcc[_0x23c6bb(0x153)][_0x23c6bb(0xf0)]};_0x5ac9b7(_0x40db37,_0x39bbcc[_0x23c6bb(0xe8)],_0x39bbcc[_0x23c6bb(0x122)]);},'_create'(){const _0x3bd83b=_0x1cff1e,_0x58cb5e=this;function _0x525687(_0x390bc2,_0x5d6375,_0x242987){return _0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0x180c5a=_0x1824;if(_0x390bc2['hasClass'](_0x180c5a(0x14e))){console[_0x180c5a(0x132)]('already\x20fetched');return;}if(_0x390bc2[_0x180c5a(0x88)](_0x180c5a(0x89))){console['log']('already\x20loading');return;}_0x390bc2[_0x180c5a(0x149)]('loading'),_0x390bc2[_0x180c5a(0xb3)](_0x180c5a(0x152));try{_0x390bc2['children']('ul')[_0x180c5a(0xf2)]();const {references:_0x3a3be1}=yield _0x5d6375(_0x390bc2,_0x242987);for(const _0x50f4c0 of _0x3a3be1){if(_0x58cb5e[_0x180c5a(0x153)][_0x180c5a(0x159)]&&!_0x58cb5e[_0x180c5a(0x153)]['filter'](_0x50f4c0))continue;const _0x4e9d2c=_0x56e2ff(_0x50f4c0);_0x390bc2[_0x180c5a(0x14d)]('ul')[_0x180c5a(0xb3)](_0x4e9d2c);}_0x390bc2[_0x180c5a(0x149)](_0x180c5a(0x14e));}catch(_0x3021ac){_0x390bc2[_0x180c5a(0x14d)]('ul')[_0x180c5a(0xb3)](_0x180c5a(0xbc)+_0x3021ac[_0x180c5a(0xca)]+_0x180c5a(0xd0)),console['log']('err',_0x3021ac);}_0x390bc2[_0x180c5a(0x140)](_0x180c5a(0xc3))[_0x180c5a(0x102)](),_0x390bc2[_0x180c5a(0xbb)](_0x180c5a(0x89));});}_0x58cb5e[_0x3bd83b(0xe8)]=this['element'],_0x58cb5e[_0x3bd83b(0xc5)]=$('<div/>'),_0x58cb5e[_0x3bd83b(0xc5)][_0x3bd83b(0x149)]('sterfive-combo-box'),this['element'][_0x3bd83b(0xbf)](_0x58cb5e[_0x3bd83b(0xc5)]),_0x58cb5e[_0x3bd83b(0x14f)]=$(_0x3bd83b(0x12f))[_0x3bd83b(0x149)](_0x3bd83b(0xef)),_0x58cb5e[_0x3bd83b(0xc5)][_0x3bd83b(0xb3)](_0x58cb5e['$inputGroup']),_0x58cb5e[_0x3bd83b(0x14f)][_0x3bd83b(0xb3)](_0x58cb5e['$input']),_0x58cb5e[_0x3bd83b(0xa7)]=$(_0x3bd83b(0xec)),_0x58cb5e[_0x3bd83b(0x14f)]['append'](_0x58cb5e[_0x3bd83b(0xa7)]),_0x58cb5e[_0x3bd83b(0xa7)]['on'](_0x3bd83b(0xa6),function(){const _0x2fa035=_0x3bd83b;!_0x58cb5e['$dropdown']['is'](_0x2fa035(0x13d))&&(_0x58cb5e[_0x2fa035(0xf4)]()[_0x2fa035(0xb5)](_0x50d0aa=>{const _0x11b673=_0x2fa035;var _0x191715;(_0x50d0aa!==_0x58cb5e['currentParent']||((_0x191715=_0x58cb5e[_0x11b673(0x114)])===null||_0x191715===void 0x0?void 0x0:_0x191715[_0x11b673(0xe9)])!==_0x50d0aa['nodeId'])&&_0x58cb5e['reset']();}),_0x58cb5e[_0x2fa035(0x122)][_0x2fa035(0xb6)]()),_0x58cb5e[_0x2fa035(0xac)][_0x2fa035(0xde)]();}),_0x58cb5e[_0x3bd83b(0xeb)]=$(_0x3bd83b(0xcc)),_0x58cb5e[_0x3bd83b(0x14f)][_0x3bd83b(0xb3)](_0x58cb5e['$verifyBtn']),_0x58cb5e['$verifyBtn']['on']('click',()=>{const _0x2dc9e1=_0x3bd83b;this[_0x2dc9e1(0x136)]();}),!_0x58cb5e[_0x3bd83b(0xe8)][_0x3bd83b(0xf9)]('placeholder')&&_0x58cb5e[_0x3bd83b(0xe8)][_0x3bd83b(0xf9)]('placeholder',_0x3bd83b(0xa1)),_0x58cb5e[_0x3bd83b(0x122)]=$('<div\x20class=\x22info-text\x22></div>'),_0x58cb5e[_0x3bd83b(0x122)]['hide'](),{'baseUrl':_0x58cb5e[_0x3bd83b(0x153)][_0x3bd83b(0x8c)],'endpointNode':typeof _0x58cb5e[_0x3bd83b(0x153)]['endpointNode']===_0x3bd83b(0x147)?_0x58cb5e['options'][_0x3bd83b(0x123)]():_0x58cb5e['options'][_0x3bd83b(0x123)],'endpoint':typeof _0x58cb5e['options'][_0x3bd83b(0xf0)]===_0x3bd83b(0x147)?_0x58cb5e[_0x3bd83b(0x153)][_0x3bd83b(0xf0)]():_0x58cb5e[_0x3bd83b(0x153)][_0x3bd83b(0xf0)]},_0x58cb5e[_0x3bd83b(0xac)]=$(_0x3bd83b(0x12f))['addClass'](_0x3bd83b(0x8f))[_0x3bd83b(0xb6)](),_0x58cb5e['$combo'][_0x3bd83b(0xb3)](_0x58cb5e[_0x3bd83b(0x122)]),_0x58cb5e[_0x3bd83b(0xc5)][_0x3bd83b(0xb3)](_0x58cb5e[_0x3bd83b(0xac)]),_0x58cb5e[_0x3bd83b(0x100)]=$(_0x3bd83b(0xd4))[_0x3bd83b(0xf1)](_0x58cb5e[_0x3bd83b(0xac)]),this[_0x3bd83b(0x151)](),_0x58cb5e[_0x3bd83b(0x100)]['on'](_0x3bd83b(0xa6),'li',function(_0xf8ad96){const _0x3b9212=_0x3bd83b;var _0x286f67,_0x4d1596;_0xf8ad96['stopPropagation']();let _0x595d97=$(this);const _0x211854=0x14,_0x2d56e4=0x14,_0x2f567a=$(this)['offset'](),_0x44b159=_0xf8ad96;if(_0x44b159['pageX']>=_0x2f567a[_0x3b9212(0x8b)]&&_0x44b159[_0x3b9212(0x124)]<=_0x2f567a['left']+_0x211854&&_0x44b159[_0x3b9212(0xc6)]>=_0x2f567a['top']&&_0x44b159['pageY']<=_0x2f567a[_0x3b9212(0x98)]+_0x2d56e4){if(_0x595d97['hasClass'](_0x3b9212(0x9d))){if(_0x595d97[_0x3b9212(0x88)](_0x3b9212(0x14e))){_0x595d97[_0x3b9212(0xbb)](_0x3b9212(0x9d))[_0x3b9212(0x149)]('expanded'),_0x595d97['children']('ul')[_0x3b9212(0xde)]();return;}const _0x54e20e={'baseUrl':_0x58cb5e['options'][_0x3b9212(0x8c)],'endpointNode':typeof _0x58cb5e[_0x3b9212(0x153)]['endpointNode']==='function'?_0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0x123)]():_0x58cb5e['options'][_0x3b9212(0x123)],'endpoint':typeof _0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0xf0)]===_0x3b9212(0x147)?_0x58cb5e[_0x3b9212(0x153)]['endpoint']():_0x58cb5e[_0x3b9212(0x153)]['endpoint']},_0x2edf19=!_0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0xa5)]?_0x4bd546:_0x56f64f;_0x525687(_0x595d97,_0x2edf19,_0x54e20e)['then'](()=>{const _0x36795e=_0x3b9212;console['log'](_0x36795e(0xe5)),console[_0x36795e(0x132)](_0x36795e(0x14e)),_0x595d97[_0x36795e(0xbb)](_0x36795e(0x9d))[_0x36795e(0x149)](_0x36795e(0xf5));})[_0x3b9212(0x11d)](_0x508c6b=>{const _0x20acd9=_0x3b9212;_0x595d97[_0x20acd9(0xbb)](_0x20acd9(0x9d))[_0x20acd9(0x149)](_0x20acd9(0xf5)),console[_0x20acd9(0x132)](_0x20acd9(0xcb),_0x508c6b);});}else{if(_0x595d97[_0x3b9212(0x88)]('expanded'))_0x595d97['children']('ul')[_0x3b9212(0xde)](),_0x595d97[_0x3b9212(0xbe)]('expandable\x20expanded');else{if(_0x595d97[_0x3b9212(0x14d)]('ul')[_0x3b9212(0x14d)]()[_0x3b9212(0x13a)]>0x0)_0x595d97[_0x3b9212(0x14d)]('ul')[_0x3b9212(0xde)](),_0x595d97['toggleClass'](_0x3b9212(0x150));else;}}}else{const _0x57e7bb=_0x595d97['data'](_0x3b9212(0x8e)),_0x2cb3cc=_0x595d97['data'](_0x3b9212(0x127));if(_0x58cb5e[_0x3b9212(0x153)][_0x3b9212(0x8a)]&&!_0x58cb5e['options'][_0x3b9212(0x8a)](_0x2cb3cc))return;_0x58cb5e['$input'][_0x3b9212(0x91)]('reference',_0x2cb3cc);const _0x50896c=((_0x286f67=_0x2cb3cc[_0x3b9212(0xd1)])===null||_0x286f67===void 0x0?void 0x0:_0x286f67['text'])||((_0x4d1596=_0x2cb3cc[_0x3b9212(0xa8)])===null||_0x4d1596===void 0x0?void 0x0:_0x4d1596[_0x3b9212(0x86)])||_0x2cb3cc['nodeId'][_0x3b9212(0x104)](),_0x343be6='['+_0x50896c+']('+_0x57e7bb+')';_0x58cb5e[_0x3b9212(0xe8)][_0x3b9212(0x121)](_0x343be6),_0x58cb5e[_0x3b9212(0xe8)][_0x3b9212(0x107)]('change'),_0x58cb5e[_0x3b9212(0xac)]['hide']();}}),$(document)['on']('click',function(_0x143624){const _0x108cad=_0x3bd83b;!$(_0x143624[_0x108cad(0xa4)])[_0x108cad(0x99)](_0x58cb5e[_0x108cad(0xc5)])['length']&&_0x58cb5e['$dropdown'][_0x108cad(0xb6)]();});}});},_0x5e14c9=({endpointNode:_0x2d5315,endpoint:_0x407279,baseUrl:_0x2b6a29},_0x12b99d)=>_0xdb1cf3(void 0x0,void 0x0,void 0x0,function*(){const _0x1a69bb=_0x3ecf62,_0x148d5f=_0x2b6a29+'/opcua-endpoint2',_0x59f167=_0x148d5f+_0x1a69bb(0xee),_0x3682e7=yield fetch(_0x59f167,{'method':'POST','body':JSON['stringify']({'endpointNode':_0x2d5315,'endpoint':_0x407279,'nodeId':_0x12b99d}),'headers':{'Content-Type':_0x1a69bb(0x108)}});if(_0x3682e7['status']!==0xc8){console['log'](_0x1a69bb(0xab),_0x3682e7[_0x1a69bb(0xb8)],_0x3682e7[_0x1a69bb(0xfc)]);const _0x48656a={'statusCode':_0x1a69bb(0x158),'nodeAddressString':_0x12b99d};return _0x48656a;}console['log']('fetched\x20:\x20',_0x3682e7[_0x1a69bb(0xb8)],_0x3682e7[_0x1a69bb(0xfc)]);const _0x4d1ce0=yield _0x3682e7[_0x1a69bb(0x141)]();return _0x4d1ce0;});function _0x2e3f15(_0x1a04f8,_0x5dc2e0,_0x497444,_0x5498f8){const _0x284ed4=_0x3ecf62,_0x2ac91b=$('#'+_0x1a04f8+_0x284ed4(0x9b)),_0x540ae9=$('#'+_0x1a04f8+_0x284ed4(0xf6)),_0x42afa4=$('#'+_0x1a04f8+_0x284ed4(0x130)),_0x54c5a3=$('#'+_0x1a04f8+_0x284ed4(0x14c));let _0x200b35=![];_0x2ac91b[_0x284ed4(0xb6)](),_0x540ae9[_0x284ed4(0xb6)](),_0x42afa4[_0x284ed4(0xb6)](),_0x5dc2e0['on'](_0x284ed4(0xa6),()=>{const _0x3fb82a=_0x284ed4;if(_0x200b35)return;_0x200b35=!![],_0x42afa4[_0x3fb82a(0xbb)](_0x3fb82a(0xb6)),_0x42afa4[_0x3fb82a(0x134)](_0x3fb82a(0x129)),_0x2ac91b[_0x3fb82a(0x149)](_0x3fb82a(0xb6)),_0x540ae9[_0x3fb82a(0x149)](_0x3fb82a(0xb6)),_0x54c5a3[_0x3fb82a(0x134)]('');const {body:_0x4d3d2d,url:_0x2b6839}=_0x497444();fetch(_0x2b6839,{'method':_0x3fb82a(0xd8),'headers':{'Content-Type':'application/json'},'body':JSON[_0x3fb82a(0xb9)](_0x4d3d2d)})['then'](_0x11feb5=>_0x11feb5[_0x3fb82a(0x141)]())[_0x3fb82a(0xb5)](_0x66731e=>{const _0x3c5da6=_0x3fb82a;_0x200b35=![],_0x42afa4[_0x3c5da6(0xb6)](),console['log'](JSON[_0x3c5da6(0xb9)](_0x66731e,null,'\x20'));if(_0x66731e[_0x3c5da6(0xda)]==='ok')_0x2ac91b['removeClass'](_0x3c5da6(0xb6)),_0x540ae9['addClass'](_0x3c5da6(0xb6)),_0x54c5a3[_0x3c5da6(0x134)](_0x66731e[_0x3c5da6(0xca)]['replace']('\x0a',_0x3c5da6(0x11b))),_0x5498f8(null,_0x66731e);else{const _0x10bc0d=_0x18f04b=>!_0x18f04b?'':_0x18f04b[_0x3c5da6(0x93)]('\x0a')['map'](_0x3c047b=>_0x3c5da6(0x103)+_0x3c047b+_0x3c5da6(0x118))['join']('\x0a'),_0xebcddc=_0x3ca5cc=>Array[_0x3c5da6(0x119)](_0x3ca5cc)?_0x3ca5cc[_0x3c5da6(0xd7)](_0x10bc0d)[_0x3c5da6(0xcf)]('\x0a'):_0x10bc0d(_0x3ca5cc);_0x2ac91b[_0x3c5da6(0x149)](_0x3c5da6(0xb6)),_0x540ae9['removeClass'](_0x3c5da6(0xb6)),_0x54c5a3[_0x3c5da6(0x134)](_0xebcddc(_0x66731e[_0x3c5da6(0xca)])+_0xebcddc(_0x66731e['extra'])),_0x5498f8(new Error(_0x66731e[_0x3c5da6(0xda)]),_0x66731e);}})[_0x3fb82a(0x11d)](_0x87c0a2=>{const _0x5a6c6a=_0x3fb82a;_0x200b35=![],_0x42afa4[_0x5a6c6a(0x149)](_0x5a6c6a(0xb6)),_0x2ac91b['addClass'](_0x5a6c6a(0xb6)),_0x540ae9[_0x5a6c6a(0xbb)](_0x5a6c6a(0xb6)),_0x54c5a3[_0x5a6c6a(0x134)]('internal\x20error\x20'+_0x87c0a2[_0x5a6c6a(0xca)]),console[_0x5a6c6a(0x132)](_0x5a6c6a(0x128),_0x87c0a2),_0x5498f8(_0x87c0a2,null);});});}const _0x532bb0=()=>{const _0x9e4a7d=_0x3ecf62,_0xb9a2ef=$(_0x9e4a7d(0xc0)),_0x2196a3=_0xb9a2ef['val'](),_0x730613=RED[_0x9e4a7d(0xe4)][_0x9e4a7d(0xe3)](_0x2196a3);if(!_0x730613)return undefined;const {endpoint:_0x122185,securityMode:_0x2fe951,securityPolicy:_0x4923ad,userIdentityType:_0xaa5011,credentials:_0x2de7f1}=_0x730613,_0x24947b={'endpoint':_0x122185,'securityMode':_0x2fe951,'securityPolicy':_0x4923ad,'userIdentityType':_0xaa5011,'credentials':_0x2de7f1};return console[_0x9e4a7d(0x132)](_0x9e4a7d(0x10e),_0x24947b),_0x24947b;},_0x492157=()=>{return{'endpointNode':_0x53bb11};},_0x53bb11=()=>{const _0x33cf5b=_0x3ecf62,_0x1aeb32=$(_0x33cf5b(0xc0)),_0x2dfac6=_0x1aeb32['val'](),_0xdb711e=_0x532bb0();if(!_0xdb711e)return undefined;return{'id':_0x2dfac6};};RED['nodes'][_0x3ecf62(0x112)](_0x3ecf62(0x97),{'category':_0x3ecf62(0x157),'color':_0x3ecf62(0x10f),'align':_0x3ecf62(0xf3),'icon':'../../icons/opcuanodeLogo.png','paletteLabel':'call','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3ecf62(0x92)},'action':{'value':_0x3ecf62(0x10b),'required':!![]},'methodId':{'value':'','required':!![]},'objectId':{'value':'','required':!![]}},'outputs':0x2,'label'(){const _0x400444=_0x3ecf62;return this[_0x400444(0x86)]||'OPCUA-Call';},'labelStyle'(){const _0x48eb0b=_0x3ecf62;return this[_0x48eb0b(0x86)]?_0x48eb0b(0x131):'';},'oneditprepare'(){const _0x5155b6=_0x3ecf62,_0x258905=this;_0x56a8f0(),_0x258905[_0x5155b6(0x10a)]=0x1;let _0x2ea026={};console[_0x5155b6(0x132)](_0x5155b6(0xc7));const _0x21a1b8=$(_0x5155b6(0xd2)),_0x525884=$(_0x5155b6(0xdc)),_0x2ef95d=$('#method-input-argument-definition'),_0x51dd9f=$(_0x5155b6(0xa2)),_0xa4297=$(_0x5155b6(0xaa));_0x21a1b8['nodeBrowser'](Object[_0x5155b6(0xaf)](Object['assign']({},_0x492157()),{'filter'(_0x1cec11){const _0xa2d5c8=_0x5155b6;return _0x1cec11[_0xa2d5c8(0xb4)]===_0xa2d5c8(0xb2);}})),_0x525884[_0x5155b6(0xa3)](Object[_0x5155b6(0xaf)](Object['assign']({},_0x492157()),{'parentNode':()=>_0xdb1cf3(this,void 0x0,void 0x0,function*(){const _0xea101=_0x5155b6;let _0x27faaa=_0x21a1b8['data']('reference');if(!_0x27faaa){const _0x2f14d5=_0x21a1b8['val'](),_0xafc92f=_0x532bb0();if(!_0xafc92f)return null;const _0x3401d9={'baseUrl':'','endpoint':'','endpointNode':_0xafc92f};try{const _0x1dfbd9=yield _0x5e14c9(_0x3401d9,_0x2f14d5);_0x27faaa=_0x1dfbd9['reference'];}catch(_0x3278ae){console[_0xea101(0x132)](_0x3278ae);}}return _0x27faaa;}),'filter'(_0xf9b640){const _0x231cc3=_0x5155b6;return _0xf9b640[_0x231cc3(0xb4)]===_0x231cc3(0x11c)||_0xf9b640[_0x231cc3(0xb4)]===_0x231cc3(0xb2);},'isSelectable'(_0x2c6f3f){const _0x4e8ce1=_0x5155b6;return _0x2c6f3f[_0x4e8ce1(0xb4)]==='Method';}})),_0x21a1b8['on'](_0x5155b6(0x13f),()=>{_0x525884['nodeBrowser']('reset');}),console[_0x5155b6(0x132)](_0x5155b6(0x95));function _0x499b49(_0x30b579,_0x5c1e45,_0x223d9e){const _0x420887=_0x5155b6,_0x18e142=$(_0x420887(0x148))['appendTo'](_0x30b579);$('<input\x20type=\x22text\x22>')[_0x420887(0x121)](_0x223d9e[_0x420887(0x86)]||'')['css']({'width':_0x420887(0xfa)})[_0x420887(0xf1)](_0x18e142);const _0x2eb8b8=_0x2ea026[_0x223d9e[_0x420887(0x96)]['toString']()],_0x1bcdde=(_0x2eb8b8?_0x2eb8b8[_0x420887(0xa8)][_0x420887(0x86)]||'':_0x223d9e['dataType'][_0x420887(0x104)]())+(_0x223d9e[_0x420887(0xad)]===0x1?'[]':'');$(_0x420887(0xae))[_0x420887(0x121)](_0x223d9e[_0x420887(0x13b)][_0x420887(0x154)]||'')[_0x420887(0xc9)]({'width':_0x420887(0x125)})['appendTo'](_0x18e142),$(_0x420887(0xae))[_0x420887(0x121)](_0x1bcdde||'')['css']({'width':_0x420887(0x125)})[_0x420887(0xf1)](_0x18e142);}_0x2ef95d['editableList']({'addButton':![],'height':_0x5155b6(0xc4),'scrollOnAdd':![],'addItem'(_0x541259,_0x4be09a,_0x2b2654){_0x499b49(_0x541259,_0x4be09a,_0x2b2654);}}),_0x51dd9f[_0x5155b6(0x90)]({'addButton':![],'height':_0x5155b6(0xc4),'scrollOnAdd':![],'addItem'(_0x4e7e40,_0xd0417b,_0x5c0c84){_0x499b49(_0x4e7e40,_0xd0417b,_0x5c0c84);}});function _0x2bf0bc(_0x559611,_0x335259){const _0x434aa3=_0x5155b6;console[_0x434aa3(0x132)]('installArgumentList',_0x335259['length'],_0x434aa3(0xa0),_0x335259),_0x559611[_0x434aa3(0x90)](_0x434aa3(0xf2));for(let _0x1a2994=0x0;_0x1a2994<_0x335259[_0x434aa3(0x13a)];_0x1a2994++){_0x559611[_0x434aa3(0x90)](_0x434aa3(0x13c),_0x335259[_0x1a2994]);}}_0x2ef95d[_0x5155b6(0xb6)](),_0x51dd9f[_0x5155b6(0xb6)](),_0x2e3f15('validate',_0xa4297,()=>({'url':_0x5155b6(0xce),'body':{'endpointNode':_0x53bb11(),'objectId':_0x21a1b8[_0x5155b6(0x121)](),'methodId':_0x525884['val']()}}),(_0x120a21,_0x4d6c7c)=>{const _0x10b8ce=_0x5155b6;if(_0x120a21)return;const _0x2f7b82=_0x4d6c7c[_0x10b8ce(0x138)];_0x2ea026=_0x4d6c7c[_0x10b8ce(0x155)],_0x2ef95d['show'](),_0x51dd9f[_0x10b8ce(0xba)](),_0x2bf0bc(_0x2ef95d,_0x2f7b82['inputArguments']),_0x2bf0bc(_0x51dd9f,_0x2f7b82[_0x10b8ce(0x10c)]),console[_0x10b8ce(0x132)](_0x10b8ce(0x91),_0x4d6c7c);});},'oneditsave'(){}});}()));function _0x1824(_0x22c1f3,_0x532c82){const _0x2f0ead=_0x2f0e();return _0x1824=function(_0x1824c9,_0x5be700){_0x1824c9=_0x1824c9-0x86;let _0x1e47e6=_0x2f0ead[_0x1824c9];return _0x1e47e6;},_0x1824(_0x22c1f3,_0x532c82);}function _0x2f0e(){const _0x5a1909=['endpointNode','pageX','50%','Variable','reference','err','Testing\x20Connection\x20...','<ul></ul></li>','ReferenceType','CadetBlue','rgba(61,\x2060,\x204,\x200.525)','SandyBrown','<div/>','-pending','node_label_italic','log','throw','html','fa-list-alt','verify','HasProperty','argumentDefinition','widget','length','description','addItem',':visible','ns=0;i=85','change','find','json','415236kurkzZ','opc.tcp://opcuademo.sterfive.com:26543','Inverse','Invalid','!!failure!!','function','<div\x20class=\x22argument-entry\x22>','addClass','/opcua-endpoint2','TypeDefinition','-messages','children','fetched','$inputGroup','expandable\x20expanded','reset','<div\x20class=\x22spinner\x22></div>','options','text','dataTypes','ObjectType','opcua','Bad','filter','name','HasChild','hasClass','loading','isSelectable','left','baseUrl','fa-sliders','value','sterfive-dropdown','editableList','data','OpcUa-Endpoint2','split','HasTypeDefinition','Calling\x20nodeBrowser\x20Done','dataType','OpcUa-Client2-Call','top','closest','HasComponent','-success','DarkOrange','expandable','DataType','3892595sPunxD','arguments','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','#method-output-argument-definition','nodeBrowser','target','isTypeRef','click','$toggleTreeBtn','browseName','\x22\x20style=\x22color:','#validate-call-arguments-button','fetching\x20failed\x20with\x20error','$dropdown','valueRank','<input\x20type=\x22text\x22>','assign','references','Objects','Object','append','nodeClass','then','hide','/browse','status','stringify','show','removeClass','<li>error\x20',';\x22></i>\x20','toggleClass','replaceWith','#node-input-endpoint','NodeClass','1401024NmGHcs','.spinner','auto','$combo','pageY','Calling\x20nodeBrowser','fetched\x20:\x20','css','message','error','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','ns=0;i=34','/opcua-endpoint2/argumentDefinition','join','</li>','displayName','#node-input-objectId','5PivZmD','<ul\x20class=\x22sterfive-tree\x22></ul>','Forward','parentNode','map','POST','23601664cXyPAV','result','apply','#node-input-methodId','fa-object-group','toggle','Organizes','4263510iAuhZK','Unspecified','View','node','nodes','\x20Fetching\x20done','failure','ns=0;i=40','$input','nodeId','next','$verifyBtn','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','444318xLCxsa','/checkNodeId','input-group','endpoint','appendTo','empty','right','resolveParentNode','expanded','-failure','statusCode','DisplayName','attr','100%','sterfive-info','statusText','sterfive.nodeBrowser','suppressed','i=61','$tree','BrowseName','remove','<p>','toString','fa-cog','HasSubtype','trigger','application/json','browseResult','inputs','read','outputArguments','SeaGreen','xxx','#C0DEED','ns=0;i=47','783585hDnsaZ','registerType','Good','currentParent','fa-question','fa-folder','Both','</p>','isArray','DodgerBlue','<br>','Method','catch','IsForward','VariableType','referenceTypeId','val','$info'];_0x2f0e=function(){return _0x5a1909;};return _0x2f0e();}
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHhkYjFjZjMiLCJfMHg0MTcwYTUiLCJfMHgzZWMzMDciLCJfMHg1MmY2ZTIiLCJfMHg0MmE1YjgiLCJfMHgzNjYzZGYiLCJfMHg0ODM3YTYiLCJfMHgxN2RhZTIiLCJQcm9taXNlIiwiXzB4Mzg5ZGFjIiwiXzB4YWQwM2YzIiwiXzB4MjQyNjNiIiwiXzB4NDk4OWRlIiwiXzB4MmM1NGU1IiwiXzB4NGY4MjQ4IiwiXzB4MzUxMDcxIiwiXzB4M2JmY2ZkIiwiXzB4MzgxMDhlIiwiXzB4NmZiMmYwIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NGFiMzNjIiwiXzB4MjZmMDAzIiwiXzB4Mjc3OWU0IiwiXzB4MTk5ZmQwIiwiRXJyb3IiLCJfMHgzYzI1MzEiLCJfMHgxNDUwNWUiLCJfMHgzY2Q3YTgiLCJfMHgxM2Q5NGIiLCJfMHgxMTIwOTMiLCJfMHg0YTJmOCIsIl8weGI4MDQxYyIsIl8weDUwZjQxYSIsIl8weDNmMmUxYSIsIl8weGE0MWExNCIsIl8weDQ0ZGRkZSIsIl8weDNhMWVmYiIsIl8weGUxNTM3NiIsIl8weDRhYmI2YSIsIl8weDQxMWNmNSIsIl8weDMxODVmYSIsIl8weDQ5MWMwMCIsIl8weDRkNzMwYiIsIl8weDQxNDBhYSIsIl8weDQxNzcwNCIsImVuZHBvaW50Tm9kZSIsIl8weDI2ZWQ5YSIsImVuZHBvaW50IiwiXzB4M2ZhNjBjIiwiYmFzZVVybCIsIl8weDI0NWE4ZiIsIl8weDNkNTk5OSIsIl8weDQ2ZjI0NCIsIl8weDI1YzA3MyIsIl8weDMzNGY1ZiIsIl8weDE0YzEyZiIsIk9iamVjdCIsIl8weDdhOTJhMCIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHgyZTc3YTYiLCJfMHg0MjRkOGEiLCJfMHgxYzZmNjUiLCJfMHg0YTkzOWYiLCJfMHg1YWM5YjciLCJfMHgzYTZhNTgiLCJfMHgzMjYyYzAiLCJfMHgxNGM1ZTciLCJfMHg1MzNlYmUiLCJfMHgxNGRkNjUiLCJfMHg0ZjExNDMiLCJfMHg1YjJiNWYiLCJfMHgyN2JlZTYiLCJfMHgzOGI4NjgiLCJfMHg1ZGNhZWIiLCJfMHgxOGM5NTYiLCJzZXRUaW1lb3V0IiwiXzB4NGQzOTMyIiwiXzB4NGJkNTQ2IiwiXzB4MzgzZTQ1IiwiXzB4NDYwOWZlIiwiXzB4MzFiMjY3IiwiXzB4MTc0ZjU4IiwiXzB4NDIyNDIzIiwiXzB4MjI4NGI5IiwiXzB4NTZmNjRmIiwiXzB4MTgwNTU3IiwiXzB4NWM1NTE1IiwiXzB4NDUxNjQzIiwiXzB4NTYyYzk1IiwiXzB4NTZlMmZmIiwiXzB4MmYzNDk3IiwiXzB4MTgwMWE5IiwiXzB4NDlmNjA4IiwiXzB4MjYyZTMyIiwiJCIsIl8weDQxYjhkNSIsIl8weDFkMmFiMSIsImljb24iLCJfMHgzYTMzMmYiLCJjb2xvciIsIl8weDFiMmJhNCIsIl8weDQxZjFjNiIsIl8weDU2YThmMCIsInVuZGVmaW5lZCIsIl8weDRjMGIyZSIsIl8weDQwMzc4MSIsIl8weGU0MDIwMyIsIl8weDM4Y2Q2YiIsIl8weDFiODNkNCIsIl8weDM5YmJjYyIsIl8weDQwZGIzNyIsIl8weDU4Y2I1ZSIsIl8weDUyNTY4NyIsIl8weDM5MGJjMiIsIl8weDVkNjM3NSIsIl8weDI0Mjk4NyIsInJlZmVyZW5jZXMiLCJfMHgzYTNiZTEiLCJfMHg1MGY0YzAiLCJfMHg0ZTlkMmMiLCJfMHgzMDIxYWMiLCJfMHg1MGQwYWEiLCJfMHgxOTE3MTUiLCJfMHhmOGFkOTYiLCJfMHgyODZmNjciLCJfMHg0ZDE1OTYiLCJfMHg1OTVkOTciLCJfMHgyMTE4NTQiLCJfMHgyZDU2ZTQiLCJfMHgyZjU2N2EiLCJfMHg0NGIxNTkiLCJfMHg1NGUyMGUiLCJfMHgyZWRmMTkiLCJfMHg1MDhjNmIiLCJfMHg1N2U3YmIiLCJfMHgyY2IzY2MiLCJfMHg1MDg5NmMiLCJfMHgzNDNiZTYiLCJkb2N1bWVudCIsIl8weDE0MzYyNCIsIl8weDVlMTRjOSIsIl8weDJkNTMxNSIsIl8weDQwNzI3OSIsIl8weDJiNmEyOSIsIl8weDEyYjk5ZCIsIl8weDE0OGQ1ZiIsIl8weDU5ZjE2NyIsIl8weDM2ODJlNyIsIl8weDQ4NjU2YSIsIl8weDRkMWNlMCIsIl8weDJlM2YxNSIsIl8weDFhMDRmOCIsIl8weDVkYzJlMCIsIl8weDQ5NzQ0NCIsIl8weDU0OThmOCIsIl8weDJhYzkxYiIsIl8weDU0MGFlOSIsIl8weDQyYWZhNCIsIl8weDU0YzVhMyIsIl8weDIwMGIzNSIsImJvZHkiLCJfMHg0ZDNkMmQiLCJ1cmwiLCJfMHgyYjY4MzkiLCJfMHgxMWZlYjUiLCJfMHg2NjczMWUiLCJfMHgxMGJjMGQiLCJfMHgxOGYwNGIiLCJfMHgzYzA0N2IiLCJfMHhlYmNkZGMiLCJfMHgzY2E1Y2MiLCJBcnJheSIsIl8weDg3YzBhMiIsIl8weDUzMmJiMCIsIl8weGI5YTJlZiIsIl8weDIxOTZhMyIsIl8weDczMDYxMyIsIlJFRCIsIl8weDEyMjE4NSIsInNlY3VyaXR5TW9kZSIsIl8weDJmZTk1MSIsInNlY3VyaXR5UG9saWN5IiwiXzB4NDkyM2FkIiwidXNlcklkZW50aXR5VHlwZSIsIl8weGFhNTAxMSIsImNyZWRlbnRpYWxzIiwiXzB4MmRlN2YxIiwiXzB4MjQ5NDdiIiwiXzB4NDkyMTU3IiwiXzB4NTNiYjExIiwiXzB4MWFlYjMyIiwiXzB4MmRmYWM2IiwiXzB4ZGI3MTFlIiwiXzB4MjU4OTA1IiwiXzB4MmVhMDI2IiwiXzB4MjFhMWI4IiwiXzB4NTI1ODg0IiwiXzB4MmVmOTVkIiwiXzB4NTFkZDlmIiwiXzB4YTQyOTciLCJfMHgxY2VjMTEiLCJfMHgyN2ZhYWEiLCJfMHgyZjE0ZDUiLCJfMHhhZmM5MmYiLCJfMHgzNDAxZDkiLCJfMHgxZGZiZDkiLCJfMHgzMjc4YWUiLCJfMHhmOWI2NDAiLCJfMHgyYzZmM2YiLCJfMHg0OTliNDkiLCJfMHgzMGI1NzkiLCJfMHg1YzFlNDUiLCJfMHgyMjNkOWUiLCJfMHgxOGUxNDIiLCJfMHgyZWI4YjgiLCJfMHgxYmNkZGUiLCJfMHg1NDEyNTkiLCJfMHg0YmUwOWEiLCJfMHgyYjI2NTQiLCJfMHg0ZTdlNDAiLCJfMHhkMDQxN2IiLCJfMHg1YzBjODQiLCJfMHgyYmYwYmMiLCJfMHg1NTk2MTEiLCJfMHgzMzUyNTkiLCJfMHgxYTI5OTQiLCJfMHgxMjBhMjEiLCJfMHg0ZDZjN2MiLCJfMHgyZjdiODIiXSwibWFwcGluZ3MiOiJrZ0JBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYsQyxDQUFxQkEsU0FBQSxDQUFRRCxTQUFSLEMsRUFBM0IsQyxTQUNyRCxHQUFLLENBQUFILFNBQUEsRUFBTSxDQUFBQSxTQUFBLENBQUlLLE9BQUosQ0FBTixDQUFMLENBQXlCLFNBQVVDLFNBQVYsQ0FBbUJDLFNBQW5CLEMseUJBQzVCLFNBQVNDLFNBQVQsQ0FBbUJDLFNBQW5CLEMseUJBQTRCLEcsQ0FBTUMsU0FBQSxDQUFLVCxTQUFBLEMsZUFBQSxFQUFlUSxTQUFmLENBQUwsQyxFQUErQixNQUFPRSxTQUFQLEMsQ0FBWUosU0FBQSxDQUFPSSxTQUFQLEMsR0FDN0UsU0FBU0MsU0FBVCxDQUFrQkMsU0FBbEIsQyx5QkFBMkIsRyxDQUFNSCxTQUFBLENBQUtULFNBQUEsQyxnQkFBQSxFQUFtQlksU0FBbkIsQ0FBTCxDLEVBQW1DLE1BQU9DLFNBQVAsQyxDQUFZUCxTQUFBLENBQU9PLFNBQVAsQyxHQUNoRixTQUFTSixTQUFULENBQWNLLFNBQWQsQyx5QkFBd0JBLFNBQUEsQyxNQUFBLEVBQWNULFNBQUEsQ0FBUVMsU0FBQSxDLE9BQUEsQ0FBUixDQUFkLENBQXNDYixTQUFBLENBQU1hLFNBQUEsQyxlQUFBLENBQU4sRSxNQUFBLEVBQXlCUCxTQUF6QixDQUFvQ0ksU0FBcEMsQyxFQUM5REYsU0FBQSxDQUFNLENBQUFULFNBQUEsQ0FBWUEsU0FBQSxDLGVBQUEsRUFBZ0JILFNBQWhCLENBQXlCQyxTQUFBLEVBQWMsRUFBdkMsQ0FBWixDQUFELEMsZUFBQSxHQUFMLEMsRUFKRyxDLEVBUVgsT0FBT2lCLGVBQVAsRyxnQkFBQSxDQUF3Q0EsZUFBeEMsQ0FBMEQsU0FBVUMsU0FBVixDQUFpQkMsU0FBakIsQ0FBNkJDLFNBQTdCLEMsMkJBQ3RELElBQUlDLFNBQUEsQ0FBSSxJQUFJQyxLQUFKLENBQVVGLFNBQVYsQ0FBUixDLE9BQ09DLFNBQUEsQyxNQUFBLEUsaUJBQUEsQ0FBNEJBLFNBQUEsQyxlQUFBLEVBQVVILFNBQXRDLENBQTZDRyxTQUFBLEMsZUFBQSxFQUFlRixTQUE1RCxDQUF3RUUsUyxFQUZuRixDQUtBLE1BQU1FLFNBQUEsQyxXQUFOLENBQ01DLFNBQUEsQyxXQUROLENBRU1DLFNBQUEsQyxnQkFGTixDQUdNQyxTQUFBLEMsV0FITixDQUlNQyxTQUFBLEMsZUFKTixDQUtNQyxRQUFBLEMsV0FMTixDQU1NQyxTQUFBLEMsZUFOTixDQVFBLElBQUlDLFNBQUosQ0FDQSxDQUFDLFNBQVVDLFNBQVYsQywyQkFDR0EsU0FBQSxDQUFnQkEsU0FBQSxDLGVBQUEsRSxHQUFoQixFLGdCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsZ0JBQUEsRSxHQUFoQixFLGlCQUNBQSxTQUFBLENBQWdCQSxTQUFBLEMsU0FBQSxFLEdBQWhCLEUsa0JBSkosQ0FLR0QsU0FBQSxFQUFvQixDQUFBQSxTQUFBLENBQWtCLEVBQWxCLENBTHZCLEdBTUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsR0FBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxVQUFBLEUsR0FBVixFLFdBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLFNBQ0FBLFNBQUEsQ0FBVUEsU0FBQSxDLGdCQUFBLEUsR0FBVixFLGlCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsVUFBQSxFLElBQVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxpQkFUSixDQVVHRCxTQUFBLEVBQWMsQ0FBQUEsU0FBQSxDQUFZLEVBQVosQ0FWakIsR0FXQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxHQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLFdBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGdCQUFBLEUsR0FBZCxFLGlCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsY0FBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsaUJBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxJQUFkLEUsZ0JBQ0FBLFNBQUEsQ0FBY0EsU0FBQSxDLGVBQUEsRSxJQUFkLEUsaUJBUkosQ0FTR0QsU0FBQSxFQUFrQixDQUFBQSxTQUFBLENBQWdCLEVBQWhCLENBVHJCLEdBVUEsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQVdBLFNBQUEsQyxnQkFBQSxFLEdBQVgsRSxpQkFDQUEsU0FBQSxDQUFXQSxTQUFBLEMsZ0JBQUEsRSxHQUFYLEUsaUJBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxHQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGFBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxJQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxF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QUFBLEMsZ0JBQUEsRSxxQkFBQSxDQUFtQ3NLLFNBQUEsQyxRQUFBLENBQW5DLEMsZUFBQSxDQUF3RUEsU0FBeEUsQyxDQUNBRCxTQUFBLEMsZUFBQSxFLGVBQUEsQ0FEQSxDQUVBLElBQUssSUFBSUUsU0FBQSxDLEdBQUosQ0FBV0EsU0FBQSxDQUFJRCxTQUFBLEMsZ0JBQUEsQ0FBcEIsQ0FBNENDLFNBQUEsRUFBNUMsQyxDQUNJRixTQUFBLEMsZUFBQSxFLGdCQUFBLENBQTZCQyxTQUFBLENBQWdCQyxTQUFoQixDQUE3QixDLEdBR1I1QixTQUFBLEMsZUFBQSxHLENBQ0FDLFNBQUEsQyxlQUFBLEcsQ0FDQWhELFNBQUEsQyxVQUFBLENBQTBCaUQsUUFBMUIsQ0FBd0MsS0FBTyxDLEtBQzNDLEMsZUFEMkMsQyxNQUUzQyxDQUFNLEMsY0FDRixDQUFjVixTQUFBLEVBRFosQyxVQUVGLENBQVVNLFNBQUEsQyxnQkFBQSxHQUZSLEMsVUFHRixDQUFVQyxTQUFBLEMsS0FBQSxHQUhSLENBRnFDLENBQVAsQ0FBeEMsQ0FPSSxDQUFDOEIsU0FBRCxDQUFNQyxTQUFOLEcsOEJBQ0lELFMsQ0FDQSxPQUdKLE1BQU1FLFNBQUEsQ0FBcUJELFNBQUEsQyxnQkFBQSxDQUEzQixDQUNBakMsU0FBQSxDQUFZaUMsU0FBQSxDLGdCQUFBLEMsQ0FDWjlCLFNBQUEsQyxNQUFBLEcsQ0FDQUMsU0FBQSxDLGVBQUEsRyxDQUNBd0IsU0FBQSxDQUFvQnpCLFNBQXBCLENBQThDK0IsU0FBQSxDLGdCQUFBLENBQTlDLEMsQ0FDQU4sU0FBQSxDQUFvQnhCLFNBQXBCLENBQStDOEIsU0FBQSxDLGdCQUFBLENBQS9DLEMsQ0FDQTFLLE9BQUEsQyxnQkFBQSxFLGVBQUEsQ0FBb0J5SyxTQUFwQixDLEVBbEJKLEMsRUFuSHFDLEMsWUF3SXpDLEUsRUF4SXlDLENBQTdDLEMsRUFsbEJKLEciLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gKCkge1xuICAgICd1c2Ugc3RyaWN0JztcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcclxuICAgIENvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuICAgIFBlcm1pc3Npb24gdG8gdXNlLCBjb3B5LCBtb2RpZnksIGFuZC9vciBkaXN0cmlidXRlIHRoaXMgc29mdHdhcmUgZm9yIGFueVxyXG4gICAgcHVycG9zZSB3aXRoIG9yIHdpdGhvdXQgZmVlIGlzIGhlcmVieSBncmFudGVkLlxyXG5cclxuICAgIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuICAgIFJFR0FSRCBUTyBUSElTIFNPRlRXQVJFIElOQ0xVRElORyBBTEwgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWVxyXG4gICAgQU5EIEZJVE5FU1MuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1IgQkUgTElBQkxFIEZPUiBBTlkgU1BFQ0lBTCwgRElSRUNULFxyXG4gICAgSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbiAgICBMT1NTIE9GIFVTRSwgREFUQSBPUiBQUk9GSVRTLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgTkVHTElHRU5DRSBPUlxyXG4gICAgT1RIRVIgVE9SVElPVVMgQUNUSU9OLCBBUklTSU5HIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFVTRSBPUlxyXG4gICAgUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXHJcbiAgICAvKiBnbG9iYWwgUmVmbGVjdCwgUHJvbWlzZSwgU3VwcHJlc3NlZEVycm9yLCBTeW1ib2wgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBjb25zdCBPcmdhbml6ZXNSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNVwiO1xuICAgIGNvbnN0IEZvbGRlclR5cGUgPSBcIm5zPTA7aT02MVwiO1xuICAgIGNvbnN0IEhhc0NvbXBvbmVudFJlZk5vZGVJZCA9IFwibnM9MDtpPTQ3XCI7XG4gICAgY29uc3QgSGFzUHJvcGVydHlSZWZOb2RlSWQgPSBcIm5zPTA7aT00NlwiO1xuICAgIGNvbnN0IEhhc0NoaWxkUmVmTm9kZUlkID0gXCJucz0wO2k9MzRcIjtcbiAgICBjb25zdCBIYXNTdWJ0eXBlUmVmTm9kZUlkID0gXCJucz0wO2k9NDVcIjtcbiAgICBjb25zdCBIYXNUeXBlRGVmaW5pdGlvblJlZk5vZGVJZCA9IFwibnM9MDtpPTQwXCI7XG5cbiAgICB2YXIgQnJvd3NlRGlyZWN0aW9uO1xuICAgIChmdW5jdGlvbiAoQnJvd3NlRGlyZWN0aW9uKSB7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJGb3J3YXJkXCJdID0gMF0gPSBcIkZvcndhcmRcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmVyc2VcIl0gPSAxXSA9IFwiSW52ZXJzZVwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiQm90aFwiXSA9IDJdID0gXCJCb3RoXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJJbnZhbGlkXCJdID0gM10gPSBcIkludmFsaWRcIjtcbiAgICB9KShCcm93c2VEaXJlY3Rpb24gfHwgKEJyb3dzZURpcmVjdGlvbiA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzcztcbiAgICAoZnVuY3Rpb24gKE5vZGVDbGFzcykge1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVW5zcGVjaWZpZWRcIl0gPSAwXSA9IFwiVW5zcGVjaWZpZWRcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJNZXRob2RcIl0gPSA0XSA9IFwiTWV0aG9kXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJSZWZlcmVuY2VUeXBlXCJdID0gMzJdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzIHx8IChOb2RlQ2xhc3MgPSB7fSkpO1xuICAgIHZhciBOb2RlQ2xhc3NNYXNrO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzTWFzaykge1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RcIl0gPSAxXSA9IFwiT2JqZWN0XCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlXCJdID0gMl0gPSBcIlZhcmlhYmxlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiT2JqZWN0VHlwZVwiXSA9IDhdID0gXCJPYmplY3RUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZhcmlhYmxlVHlwZVwiXSA9IDE2XSA9IFwiVmFyaWFibGVUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiRGF0YVR5cGVcIl0gPSA2NF0gPSBcIkRhdGFUeXBlXCI7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIlZpZXdcIl0gPSAxMjhdID0gXCJWaWV3XCI7XG4gICAgfSkoTm9kZUNsYXNzTWFzayB8fCAoTm9kZUNsYXNzTWFzayA9IHt9KSk7XG4gICAgdmFyIFJlc3VsdE1hc2s7XG4gICAgKGZ1bmN0aW9uIChSZXN1bHRNYXNrKSB7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAxXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJJc0ZvcndhcmRcIl0gPSAyXSA9IFwiSXNGb3J3YXJkXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIk5vZGVDbGFzc1wiXSA9IDRdID0gXCJOb2RlQ2xhc3NcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiQnJvd3NlTmFtZVwiXSA9IDhdID0gXCJCcm93c2VOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIkRpc3BsYXlOYW1lXCJdID0gMTZdID0gXCJEaXNwbGF5TmFtZVwiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJUeXBlRGVmaW5pdGlvblwiXSA9IDMyXSA9IFwiVHlwZURlZmluaXRpb25cIjtcbiAgICB9KShSZXN1bHRNYXNrIHx8IChSZXN1bHRNYXNrID0ge30pKTtcbiAgICAvLyAgY29uc3QgcSA9IFJlZmVyZW5jZVR5cGVJZHMuT3JnYW5pemVzO1xuICAgIGZ1bmN0aW9uIHJlc29sdmVOb2RlSWQobm9kZUlkTGlrZSkge1xuICAgICAgICBzd2l0Y2ggKG5vZGVJZExpa2UpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPcmdhbml6ZXNcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gT3JnYW5pemVzUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1Byb3BlcnR5XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1Byb3BlcnR5UmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDb21wb25lbnRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ2hpbGRcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzQ2hpbGRSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzU3VidHlwZVwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNTdWJ0eXBlUmVmTm9kZUlkO1xuICAgICAgICAgICAgY2FzZSBcIkhhc1R5cGVEZWZpbml0aW9uXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0SWNvbiA9IChyZWZlcmVuY2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChyZWZlcmVuY2Uubm9kZUNsYXNzKSB7XG4gICAgICAgICAgICBjYXNlIFwiT2JqZWN0XCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IE9yZ2FuaXplc1JlZk5vZGVJZCkgO1xuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UudHlwZURlZmluaXRpb24gPT09IEZvbGRlclR5cGUgfHwgcmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gXCJpPTYxXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1mb2xkZXJcIiwgY29sb3I6IFwicmdiYSg2MSwgNjAsIDQsIDAuNTI1KVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtb2JqZWN0LWdyb3VwXCIsIGNvbG9yOiBcIlNlYUdyZWVuXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVwiOlxuICAgICAgICAgICAgICAgIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNDb21wb25lbnRSZWZOb2RlSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJTdGVlbEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIGlmIChyZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBIYXNQcm9wZXJ0eVJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkRvZGdlckJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1saXN0LWFsdFwiLCBjb2xvcjogXCJDYWRldEJsdWVcIiB9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhc2UgXCJNZXRob2RcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWNvZ1wiLCBjb2xvcjogXCJTYW5keUJyb3duXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiVmFyaWFibGVUeXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1zbGlkZXJzXCIsIGNvbG9yOiBcIkRhcmtPcmFuZ2VcIiB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGljb246IFwiZmEtcXVlc3Rpb25cIiwgY29sb3I6IFwiZ3JleVwiIH07XG4gICAgfTtcblxuICAgIGNvbnN0IGJyb3dzZSA9ICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgbm9kZUlkLCB0ZW1wbGF0ZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGVkIDogXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICBjb25zdCByZWZlcmVuY2VzID0gcmVzcG9uc2UuYnJvd3NlUmVzdWx0LnJlZmVyZW5jZXMgfHwgW107XG4gICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXMgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IHRlbXBsYXRlMSA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzQ2hpbGRcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB0ZW1wbGF0ZTIgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIk9yZ2FuaXplc1wiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IGludGVybmFsVmVyaWZ5ID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCAkaW5wdXRFbGVtZW50LCAkaW5mbykgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCBub2RlSWQgPSAkaW5wdXRFbGVtZW50LnZhbCgpO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goYCR7cm9vdH0vY2hlY2tOb2RlSWRgLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHNldE5vdGlmaWNhdGlvbiA9ICh0ZXh0LCBjbGFzc05hbWUpID0+IHtcbiAgICAgICAgICAgICRpbmZvLnRleHQodGV4dCkuYWRkQ2xhc3MoXCJzdGVyZml2ZS1pbmZvXCIpLmFkZENsYXNzKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICAkaW5mby5zaG93KCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAkaW5mby5yZW1vdmVDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgICAgICRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgIH0sIDMwMDApO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZztcbiAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCJHb29kXCIsIFwib2tcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChgJHtub2RlSWR9YCk7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKGAke2pzb24uc3RhdHVzQ29kZX0gJHtkYXRhLnN0YXR1c1RleHR9YCwgXCJmYWlsdXJlXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgZnVuY3Rpb24gZmV0Y2hDaGlsZHJlbigkbm9kZSwgZGF0YSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZUlkID0gJG5vZGUuZGF0YShcInZhbHVlXCIpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MSA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMSk7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQyID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGUyKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcmVmZXJlbmNlczogWy4uLmJyb3dzZVJlc3VsdDEucmVmZXJlbmNlcywgLi4uYnJvd3NlUmVzdWx0Mi5yZWZlcmVuY2VzXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCB0ZW1wbGF0ZVNUID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNTdWJ0eXBlXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHwgTm9kZUNsYXNzLk9iamVjdFR5cGUgfCBOb2RlQ2xhc3MuRGF0YVR5cGUgfCBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlLFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGZ1bmN0aW9uIGZldGNoU3VidHlwZXMoJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZVNUKTtcbiAgICAgICAgICAgIHJldHVybiBicm93c2VSZXN1bHQxO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICAgICAgaXNUeXBlUmVmOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlUGFyZW50Tm9kZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHR5cGVvZiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLnBhcmVudE5vZGUoKSA6IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB5aWVsZCBhO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc29sdmVQYXJlbnROb2RlKCkudGhlbigocGFyZW50Tm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHBhcmVudE5vZGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuY3VycmVudFBhcmVudCA9IHBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdmVyaWZ5KCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaW50ZXJuYWxWZXJpZnkoZGF0YSwgdGhhdC4kaW5wdXQsIHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gX2ZldGNoRGF0YUZvck5vZGUoJG5vZGUsIGZldGNoRnVuYywgZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwiZmV0Y2hlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImxvYWRpbmdcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgbG9hZGluZ1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5hcHBlbmQoJzxkaXYgY2xhc3M9XCJzcGlubmVyXCI+PC9kaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuZW1wdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IHJlZmVyZW5jZXMgfSA9IHlpZWxkIGZldGNoRnVuYygkbm9kZSwgZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC5vcHRpb25zLmZpbHRlciAmJiAhdGhhdC5vcHRpb25zLmZpbHRlcihyZWZlcmVuY2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50KHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJmZXRjaGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmNoaWxkcmVuKFwidWxcIikuYXBwZW5kKGA8bGk+ZXJyb3IgJHtlcnIubWVzc2FnZX08L2xpPmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZXJyXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5maW5kKFwiLnNwaW5uZXJcIikucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5yZW1vdmVDbGFzcyhcImxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmaXZlLWRyb3Bkb3duXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCkuYXBwZW5kVG8odGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLm9uKFwiY2xpY2tcIiwgXCJsaVwiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCAkbGkgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVXaWR0aCA9IDIwOyAvLyBTZXQgd2lkdGggb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlSGVpZ2h0ID0gMjA7IC8vIFNldCBoZWlnaHQgb2YgdGhlIDo6YmVmb3JlIGNvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudFBvcyA9ICQodGhpcykub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kYWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGYgPSAhdGhhdC5vcHRpb25zLmlzVHlwZVJlZiA/IGZldGNoQ2hpbGRyZW4gOiBmZXRjaFN1YnR5cGVzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9mZXRjaERhdGFGb3JOb2RlKCRsaSwgZiwgZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIiBGZXRjaGluZyBkb25lXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hcmsgYXMgZXhwYW5kZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoJGxpLmhhc0NsYXNzKFwiZXhwYW5kZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUb2dnbGUgaXRzIGV4cGFuZGVkL2NvbGxhcHNlZCBzdGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuY2hpbGRyZW4oXCJ1bFwiKS5jaGlsZHJlbigpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNoZWNrTm9kZUlkID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQpID0+IF9fYXdhaXRlcih2b2lkIDAsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vY2hlY2tOb2RlSWRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgY29uc3QgcmVzID0ge1xuICAgICAgICAgICAgICAgIHN0YXR1c0NvZGU6IFwiQmFkXCIsXG4gICAgICAgICAgICAgICAgbm9kZUFkZHJlc3NTdHJpbmc6IG5vZGVJZCxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gbWFuYWdlQVBJQ2FsbChwcmVmaXgsIGJ0biwgZnVuYywgb25SZXN1bHQpIHtcbiAgICAgICAgY29uc3Qgc3VjY2Vzc0ljb24gPSAkKGAjJHtwcmVmaXh9LXN1Y2Nlc3NgKTtcbiAgICAgICAgY29uc3QgZmFpbHVyZUljb24gPSAkKGAjJHtwcmVmaXh9LWZhaWx1cmVgKTtcbiAgICAgICAgY29uc3QgcGVuZGluZ0ljb24gPSAkKGAjJHtwcmVmaXh9LXBlbmRpbmdgKTtcbiAgICAgICAgY29uc3QgbWVzc2FnZXMgPSAkKGAjJHtwcmVmaXh9LW1lc3NhZ2VzYCk7XG4gICAgICAgIGxldCBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgIHN1Y2Nlc3NJY29uLmhpZGUoKTtcbiAgICAgICAgZmFpbHVyZUljb24uaGlkZSgpO1xuICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgIGJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhY3Rpb25QZW5kaW5nKVxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgcGVuZGluZ0ljb24uaHRtbChcIlRlc3RpbmcgQ29ubmVjdGlvbiAuLi5cIik7XG4gICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiXCIpO1xuICAgICAgICAgICAgY29uc3QgeyBib2R5LCB1cmwgfSA9IGZ1bmMoKTtcbiAgICAgICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4eHhcIiwgYm9keSk7XG4gICAgICAgICAgICBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShib2R5KSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IGRhdGEuanNvbigpKVxuICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShqc29uLCBudWxsLCBcIiBcIikpO1xuICAgICAgICAgICAgICAgIGlmIChqc29uLnJlc3VsdCA9PT0gXCJva1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGpzb24ubWVzc2FnZS5yZXBsYWNlKFwiXFxuXCIsIFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIG9uUmVzdWx0KG51bGwsIGpzb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgIG9uUmVzdWx0KGVyciwgbnVsbCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IHJlZE5vZGUgPSBSRUQubm9kZXMubm9kZShlbmRwb2ludElkKTtcbiAgICAgICAgaWYgKCFyZWROb2RlKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgLy8gY29uc3QgY3JlZGVudGlhbHMgPSBSRUQuKGVuZHBvaW50SWQpO1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHNhbml0aXplIGFuZCBleHRyYWN0IHRoZSBlbmRwb2ludCBhdHRyaWJ1dGVzIG9ubHkgKCBub3QgdGhlIG5vZGUtcmVkIHN0dWZmKVxuICAgICAgICBjb25zdCB7IGVuZHBvaW50LCBzZWN1cml0eU1vZGUsIHNlY3VyaXR5UG9saWN5LCB1c2VySWRlbnRpdHlUeXBlLCBjcmVkZW50aWFscyB9ID0gcmVkTm9kZTtcbiAgICAgICAgY29uc3QgcmV0VmFsdWUgPSB7XG4gICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIHNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIHNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIGNyZWRlbnRpYWxzLFxuICAgICAgICB9O1xuICAgICAgICBjb25zb2xlLmxvZyhcInh4eFwiLCByZXRWYWx1ZSk7XG4gICAgICAgIHJldHVybiByZXRWYWx1ZTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IGdldEVuZHBvaW50UGFyYW1ldGVycyxcbiAgICAgICAgfTtcbiAgICB9O1xuICAgIGNvbnN0IGdldEVuZHBvaW50UGFyYW1ldGVycyA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgJGVuZHBvaW50ID0gJChcIiNub2RlLWlucHV0LWVuZHBvaW50XCIpO1xuICAgICAgICBjb25zdCBlbmRwb2ludElkID0gJGVuZHBvaW50LnZhbCgpO1xuICAgICAgICBjb25zdCBlbmRwb2ludE5yID0gZ2V0RW5kUG9pbnRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGlmICghZW5kcG9pbnROcikge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGVuZHBvaW50SWQsXG4gICAgICAgICAgICAvLyBlbmRwb2ludDogZW5kcG9pbnROci5lbmRwb2ludCxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5TW9kZTogZW5kcG9pbnROci5zZWN1cml0eU1vZGUsXG4gICAgICAgICAgICAvLyBzZWN1cml0eVBvbGljeTogZW5kcG9pbnROci5zZWN1cml0eVBvbGljeSxcbiAgICAgICAgICAgIC8vXG4gICAgICAgICAgICAvLyB1c2VySWRlbnRpdHlUeXBlOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUsXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJOYW1lOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlck5hbWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyBwYXNzd29yZDogZW5kcG9pbnROci51c2VySWRlbnRpdHlUeXBlID09PSBcIlVzZXJOYW1lXCIgPyBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnBhc3N3b3JkIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgLy8gdXNlckNlcnRpZmljYXRlOiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJDZXJ0aWZpY2F0ZSxcbiAgICAgICAgICAgIC8vIHVzZXJQcml2YXRla2V5OiBlbmRwb2ludE5yLmNyZWRlbnRpYWxzLnVzZXJQcml2YXRla2V5LFxuICAgICAgICB9O1xuICAgIH07XG5cbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtQ2xpZW50Mi1DYWxsXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwib3BjdWFcIixcbiAgICAgICAgY29sb3I6IFwiI0MwREVFRFwiLFxuICAgICAgICBhbGlnbjogXCJyaWdodFwiLFxuICAgICAgICBpY29uOiBcIi4uLy4uL2ljb25zL29wY3Vhbm9kZUxvZ28ucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJjYWxsXCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBpbnB1dHM6IHsgdmFsdWU6IDEgfSxcbiAgICAgICAgICAgIG91dHB1dDogeyB2YWx1ZTogNCB9LFxuICAgICAgICAgICAgLy8gQ29tbW9uXG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IFwiT3BjVWEtRW5kcG9pbnQyXCIgfSxcbiAgICAgICAgICAgIGFjdGlvbjogeyB2YWx1ZTogXCJyZWFkXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIGNhbGxcbiAgICAgICAgICAgIG1ldGhvZElkOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgb2JqZWN0SWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGlucHV0czosXG4gICAgICAgIG91dHB1dHM6IDIsIC8vIDIgb3V0cHV0LCBzZWNvbmQgZm9yIHJhdyBub2RlLW9wY3VhIGRpYWdub3N0aWNzIG9yIG1vcmUgY29tcGxldGUgbWVzc2FnZVxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQS1DYWxsXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIFNlY3Rpb24gQ2FsbFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIGxldCBkYXRhVHlwZXMgPSB7fTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiQ2FsbGluZyBub2RlQnJvd3NlclwiKTtcbiAgICAgICAgICAgIC8vIHRvIGRvIGFkZCBhIHR5cGVzY3JpcHQgZGVmaW5pdGlvbiBmb3IgdGhpc1xuICAgICAgICAgICAgY29uc3QgJG9iamVjdElkID0gJChcIiNub2RlLWlucHV0LW9iamVjdElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJG1ldGhvZElkID0gJChcIiNub2RlLWlucHV0LW1ldGhvZElkXCIpO1xuICAgICAgICAgICAgY29uc3QgJGlucHV0QXJndW1lbnREZWZpbml0aW9uID0gJChcIiNtZXRob2QtaW5wdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24gPSAkKFwiI21ldGhvZC1vdXRwdXQtYXJndW1lbnQtZGVmaW5pdGlvblwiKTtcbiAgICAgICAgICAgIGNvbnN0ICR2YWxpZGF0ZUJ0biA9ICQoXCIjdmFsaWRhdGUtY2FsbC1hcmd1bWVudHMtYnV0dG9uXCIpO1xuICAgICAgICAgICAgJG9iamVjdElkLm5vZGVCcm93c2VyKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlcigpKSwgeyBmaWx0ZXIobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgICRtZXRob2RJZC5ub2RlQnJvd3NlcihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSksIHsgcGFyZW50Tm9kZTogKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBuZWVkIHRvIHJlc3luYyB3aXRoIHdoYXQncyBpbiAgI25vZGUtaW5wdXQtb2JqZWN0SWRcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJlZmVyZW5jZSA9ICRvYmplY3RJZC5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZmVyZW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgbm9kZUlkRXggPSAkb2JqZWN0SWQudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRwb2ludE5vZGUgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZW5kcG9pbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb25uZWN0aW9uRGF0YSA9IHsgYmFzZVVybDogXCJcIiwgZW5kcG9pbnQ6IFwiXCIsIGVuZHBvaW50Tm9kZSB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByID0geWllbGQgY2hlY2tOb2RlSWQoY29ubmVjdGlvbkRhdGEsIG5vZGVJZEV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSByLnJlZmVyZW5jZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZWZlcmVuY2U7XG4gICAgICAgICAgICAgICAgfSksIGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiIHx8IG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJPYmplY3RcIjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk1ldGhvZFwiO1xuICAgICAgICAgICAgICAgIH0gfSkpO1xuICAgICAgICAgICAgJG9iamVjdElkLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAkbWV0aG9kSWQubm9kZUJyb3dzZXIoXCJyZXNldFwiKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIG5vZGVCcm93c2VyIERvbmVcIik7XG4gICAgICAgICAgICBmdW5jdGlvbiBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpbmRleCwgYXJnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9ICQoJzxkaXYgY2xhc3M9XCJhcmd1bWVudC1lbnRyeVwiPicpLmFwcGVuZFRvKGNvbnRhaW5lcik7XG4gICAgICAgICAgICAgICAgLy8gY29udGFpbmVyLmRhdGEoXCJkYXRhXCIsIGFyZyk7XG4gICAgICAgICAgICAgICAgJCgnPGlucHV0IHR5cGU9XCJ0ZXh0XCI+JylcbiAgICAgICAgICAgICAgICAgICAgLnZhbChhcmcubmFtZSB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiMTAwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkID0gZGF0YVR5cGVzW2FyZy5kYXRhVHlwZS50b1N0cmluZygpXTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRhVHlwZU4gPSAoZCA/IGQuYnJvd3NlTmFtZS5uYW1lIHx8IFwiXCIgOiBhcmcuZGF0YVR5cGUudG9TdHJpbmcoKSkgKyAoYXJnLnZhbHVlUmFuayA9PT0gMSA/IFwiW11cIiA6IFwiXCIpO1xuICAgICAgICAgICAgICAgICQoJzxpbnB1dCB0eXBlPVwidGV4dFwiPicpXG4gICAgICAgICAgICAgICAgICAgIC52YWwoYXJnLmRlc2NyaXB0aW9uLnRleHQgfHwgXCJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IHdpZHRoOiBcIjUwJVwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbyhpdGVtKTtcbiAgICAgICAgICAgICAgICAkKCc8aW5wdXQgdHlwZT1cInRleHRcIj4nKVxuICAgICAgICAgICAgICAgICAgICAudmFsKGRhdGFUeXBlTiB8fCBcIlwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgd2lkdGg6IFwiNTAlXCIgfSlcbiAgICAgICAgICAgICAgICAgICAgLmFwcGVuZFRvKGl0ZW0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJGlucHV0QXJndW1lbnREZWZpbml0aW9uLmVkaXRhYmxlTGlzdCh7XG4gICAgICAgICAgICAgICAgYWRkQnV0dG9uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiYXV0b1wiLFxuICAgICAgICAgICAgICAgIHNjcm9sbE9uQWRkOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBhZGRJdGVtKGNvbnRhaW5lciwgaSwgb2JqZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZEFyZ3VtZW50Q3RybChjb250YWluZXIsIGksIG9iamVjdCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgIGFkZEJ1dHRvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBcImF1dG9cIixcbiAgICAgICAgICAgICAgICBzY3JvbGxPbkFkZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgYWRkSXRlbShjb250YWluZXIsIGksIG9iamVjdCkge1xuICAgICAgICAgICAgICAgICAgICBhZGRBcmd1bWVudEN0cmwoY29udGFpbmVyLCBpLCBvYmplY3QpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZ1bmN0aW9uIGluc3RhbGxBcmd1bWVudExpc3QobGlzdCwgbWV0aG9kQXJndW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnN0YWxsQXJndW1lbnRMaXN0XCIsIG1ldGhvZEFyZ3VtZW50cy5sZW5ndGgsIFwiYXJndW1lbnRzXCIsIG1ldGhvZEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgbGlzdC5lZGl0YWJsZUxpc3QoXCJlbXB0eVwiKTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1ldGhvZEFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgbWV0aG9kQXJndW1lbnRzW2ldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uaGlkZSgpO1xuICAgICAgICAgICAgJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbi5oaWRlKCk7XG4gICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwidmFsaWRhdGVcIiwgJHZhbGlkYXRlQnRuLCAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIHVybDogXCIvb3BjdWEtZW5kcG9pbnQyL2FyZ3VtZW50RGVmaW5pdGlvblwiLFxuICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiBnZXRFbmRwb2ludFBhcmFtZXRlcnMoKSxcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0SWQ6ICRvYmplY3RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kSWQ6ICRtZXRob2RJZC52YWwoKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksIChlcnIsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gcG9wdWxhdGUgdGhlIGxpc3RcbiAgICAgICAgICAgICAgICBjb25zdCBhcmd1bWVudERlZmluaXRpb24gPSBkYXRhLmFyZ3VtZW50RGVmaW5pdGlvbjtcbiAgICAgICAgICAgICAgICBkYXRhVHlwZXMgPSBkYXRhLmRhdGFUeXBlcztcbiAgICAgICAgICAgICAgICAkaW5wdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgICRvdXRwdXRBcmd1bWVudERlZmluaXRpb24uc2hvdygpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJGlucHV0QXJndW1lbnREZWZpbml0aW9uLCBhcmd1bWVudERlZmluaXRpb24uaW5wdXRBcmd1bWVudHMpO1xuICAgICAgICAgICAgICAgIGluc3RhbGxBcmd1bWVudExpc3QoJG91dHB1dEFyZ3VtZW50RGVmaW5pdGlvbiwgYXJndW1lbnREZWZpbml0aW9uLm91dHB1dEFyZ3VtZW50cyk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJkYXRhXCIsIGRhdGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHNhdmUoKSB7IH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-Call">
|
11
11
|
<div class="form-row">
|