@opcua/for-node-red 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/all.js +1 -1
- package/package.json +9 -10
- package/source/OpcUa-Client2-Browse/OpcUa-Client2-Browse.html +2 -2
- package/source/OpcUa-Client2-Call/OpcUa-Client2-Call.html +2 -2
- package/source/OpcUa-Client2-Explore/OpcUa-Client2-Explore.html +2 -2
- package/source/OpcUa-Client2-ExtensionObject/OpcUa-Client2-ExtensionObject.html +2 -2
- package/source/OpcUa-Client2-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 _0x135c(_0x5d2c40,_0x270cb6){const _0x241f4f=_0x241f();return _0x135c=function(_0x135c74,_0x201862){_0x135c74=_0x135c74-0xac;let _0x541fe7=_0x241f4f[_0x135c74];return _0x541fe7;},_0x135c(_0x5d2c40,_0x270cb6);}function _0x241f(){const _0xcc7479=['nodeId','sterfive-dropdown','replaceWith','name','message','opc.tcp://opcuademo.sterfive.com:26543','fa-sliders','span.custom-checkbox.checked','#node-input-subscription','HasComponent','subTypes','toString','HasSubtype','Unspecified',';\x22></i>','referenceTypeId','value','$dropdown','calc(100%\x20-\x20','subscriptions','ns=0;i=34','<span\x20class=\x22cancel-button\x22>✖</span>','<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>','relativePath','join','find','ReferenceType','DisplayName','function','HasTypeDefinition','removeClass','expanded','pageY','$tree','#node-input-nodeId','NodeClass','hasClass','VariableType','references','2060785hMivVz','isTypeRef','<div\x20class=\x22spinner\x22></div>','done','parentNode','next','status','toggle','already\x20fetched','<li>error\x20','top','Object','assign','show','fa-object-group','fetching\x20failed\x20with\x20error','Invalid','widget','addClass','selected','225942cXYqfW','fa-cog','baseUrl','</span><ul></ul></li>','events','css','replaceChild','_populate','val','registerType','split','\x22\x20style=\x22color:','$toggleTreeBtn','log','position','Organizes','call','statusText','_installChildren','ns=0;i=46','#node-input-whereClause','trigger','currentParent','loading','namespaceIndex','nodeBrowser','fetched\x20:\x20','OpcUa-Endpoint2','subscription','ns=0;i=40','.sterfive-tree\x20li','checked','monitor\x20events','application/json','element','CadetBlue','<option/>','SuppressedError','json','<ul\x20class=\x22sterfive-tree\x22></ul>','Variable','push','#node-input-selectClauses','View','click','node','TypeDefinition','SeaGreen','sterfive.nodeBrowser','<li\x20key=\x22','px)','sterfive-info','<div/>','each','stopPropagation','<i\x20class=\x22fa\x20','76tJKUUL','#C0DEED','typeDefinition','nodeClass','unchecked','fetched','/opcua-endpoint2',':first','length','878424lkPLqF','$verifyBtn','pageX','.tree-text:first','opcua','<span\x20class=\x22validate-button\x22>✔</span>','focus\x20click','#node-input-endpoint','fa-question','DodgerBlue','resolveParentNode','animate','ns=0;i=35','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','stringify','$inputGroup','ns=0;i=45','statusCode','sort','DarkOrange','clicked\x20on\x20icon','.spinner','<div\x20class=\x22info-text\x22></div>','SandyBrown','HasProperty','\x22}><span\x20class=\x22tree-text\x22\x20title=','right','span.custom-checkbox','$combo','9587914nkYFzt','</li>','prop','match','no-expandable','<li>','append','POST','DataType','fa-folder','text','browsePath','li\x20>\x20.tree-text','nodeAddressString','expandable','78428WtPQsl','options','apply','endpoint','IsForward','target','displayName','input-group','remove','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','data','closest','browseResult','ns=0;i=85','reset','Objects','offset','#node-input-inputs','/extractEventTypes','height','scrollTop','filter','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','/checkNodeId','data-value','HasChild','parentElement','><i\x20class=\x22fa\x20','endpointNode','__parentNode','8481498SGRtHq','Inverse','43291672hRyTTE','#node-input-startImmediately','Forward','browseName','class','grey','failure','attr','sterfive.eventFieldSelector','<ul></ul>',':visible','node-input-startImmediately','error','OPCUA\x20Monitor','$info','reference','placeholder','nodes','dblclick','SteelBlue','empty','change','isSelectable','toggleClass','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','Both','ObjectType','$input','sterfive-combo-box','_installTree','Method','expandable\x20expanded','children','inputs','left','_setInputValue','err',';\x22></i>\x20','throw','hide','fa-list-alt'];_0x241f=function(){return _0xcc7479;};return _0x241f();}(function(_0x4b14dc,_0x24b24d){const _0x25521a=_0x135c,_0x627e4c=_0x4b14dc();while(!![]){try{const _0x2a7090=-parseInt(_0x25521a(0x143))/0x1+parseInt(_0x25521a(0x16f))/0x2+parseInt(_0x25521a(0x102))/0x3*(-parseInt(_0x25521a(0x13a))/0x4)+parseInt(_0x25521a(0xee))/0x5+-parseInt(_0x25521a(0x18d))/0x6+-parseInt(_0x25521a(0x160))/0x7+parseInt(_0x25521a(0x18f))/0x8;if(_0x2a7090===_0x24b24d)break;else _0x627e4c['push'](_0x627e4c['shift']());}catch(_0x45aee7){_0x627e4c['push'](_0x627e4c['shift']());}}}(_0x241f,0xbc06b),(function(){'use strict';const _0xc1095c=_0x135c;function _0x9f8167(_0x11fec1,_0x440135){const _0x163a4f=_0x135c,_0xfbcae8=$(_0x163a4f(0x14a)),_0x2dc477=$(_0x163a4f(0xcf)),_0x5bbb04=()=>{const _0x37f693=_0x163a4f,_0x367c95=_0x11fec1[_0x37f693(0xaf)][_0x37f693(0x12f)](_0xfbcae8[_0x37f693(0x10a)]());_0x2dc477['empty']();if(!_0x367c95||!_0x367c95[_0x37f693(0xda)])return;if(_0x367c95[_0x37f693(0xda)])for(const _0x4e9905 of _0x367c95[_0x37f693(0xda)]){const _0x41285c=_0x4e9905[_0x37f693(0xca)]||_0x4e9905['id'];$(_0x37f693(0x126),{'value':_0x4e9905['id'],'label':_0x41285c,'selected':_0x4e9905['id']===_0x440135[_0x37f693(0x11e)]})[_0x37f693(0x16a)](_0x41285c)['appendTo'](_0x2dc477);}};_0x5bbb04(),_0x2dc477['on'](_0x163a4f(0x149),()=>{_0x5bbb04();}),_0xfbcae8['on'](_0x163a4f(0xb3),()=>{_0x5bbb04();});}function _0x5643a5(_0x4b100b,_0x3c7855,_0x18ede9,_0x5003b2){function _0x5695bf(_0x1112b0){return _0x1112b0 instanceof _0x18ede9?_0x1112b0:new _0x18ede9(function(_0x484c2b){_0x484c2b(_0x1112b0);});}return new(_0x18ede9||(_0x18ede9=Promise))(function(_0x3c0736,_0x418222){const _0x2830df=_0x135c;function _0x1c3a9b(_0x385b16){const _0x3a7603=_0x135c;try{_0x463c64(_0x5003b2[_0x3a7603(0xf3)](_0x385b16));}catch(_0x5d77da){_0x418222(_0x5d77da);}}function _0x404991(_0x5f498f){const _0x3bd8fd=_0x135c;try{_0x463c64(_0x5003b2[_0x3bd8fd(0xc4)](_0x5f498f));}catch(_0x44d655){_0x418222(_0x44d655);}}function _0x463c64(_0x23757f){const _0x485b2e=_0x135c;_0x23757f[_0x485b2e(0xf1)]?_0x3c0736(_0x23757f[_0x485b2e(0xd7)]):_0x5695bf(_0x23757f[_0x485b2e(0xd7)])['then'](_0x1c3a9b,_0x404991);}_0x463c64((_0x5003b2=_0x5003b2[_0x2830df(0x171)](_0x4b100b,_0x3c7855||[]))[_0x2830df(0xf3)]());});}typeof SuppressedError===_0xc1095c(0xe3)?SuppressedError:function(_0x3f02cc,_0x170148,_0x4de977){const _0x4fd805=_0xc1095c;var _0x132f2=new Error(_0x4de977);return _0x132f2[_0x4fd805(0xca)]=_0x4fd805(0x127),_0x132f2[_0x4fd805(0x19b)]=_0x3f02cc,_0x132f2['suppressed']=_0x170148,_0x132f2;};const _0x347ff8=_0xc1095c(0x14f),_0x1df86f='ns=0;i=61',_0x48af00='ns=0;i=47',_0x4e3afe=_0xc1095c(0x115),_0xf5236b=_0xc1095c(0xdb),_0x3b20bc=_0xc1095c(0x153),_0x4a7e06=_0xc1095c(0x11f);var _0x10362d;(function(_0xff242f){const _0x345bcc=_0xc1095c;_0xff242f[_0xff242f[_0x345bcc(0x191)]=0x0]=_0x345bcc(0x191),_0xff242f[_0xff242f[_0x345bcc(0x18e)]=0x1]=_0x345bcc(0x18e),_0xff242f[_0xff242f[_0x345bcc(0xb7)]=0x2]=_0x345bcc(0xb7),_0xff242f[_0xff242f[_0x345bcc(0xfe)]=0x3]=_0x345bcc(0xfe);}(_0x10362d||(_0x10362d={})));var _0x4e35f9;(function(_0x51fa33){const _0x553643=_0xc1095c;_0x51fa33[_0x51fa33[_0x553643(0xd4)]=0x0]=_0x553643(0xd4),_0x51fa33[_0x51fa33[_0x553643(0xf9)]=0x1]='Object',_0x51fa33[_0x51fa33[_0x553643(0x12a)]=0x2]=_0x553643(0x12a),_0x51fa33[_0x51fa33[_0x553643(0xbc)]=0x4]='Method',_0x51fa33[_0x51fa33[_0x553643(0xb8)]=0x8]=_0x553643(0xb8),_0x51fa33[_0x51fa33[_0x553643(0xec)]=0x10]='VariableType',_0x51fa33[_0x51fa33[_0x553643(0xe1)]=0x20]='ReferenceType',_0x51fa33[_0x51fa33[_0x553643(0x168)]=0x40]=_0x553643(0x168),_0x51fa33[_0x51fa33[_0x553643(0x12d)]=0x80]=_0x553643(0x12d);}(_0x4e35f9||(_0x4e35f9={})));var _0x59ec68;(function(_0x4388ec){const _0x5bdfa3=_0xc1095c;_0x4388ec[_0x4388ec[_0x5bdfa3(0xf9)]=0x1]=_0x5bdfa3(0xf9),_0x4388ec[_0x4388ec[_0x5bdfa3(0x12a)]=0x2]=_0x5bdfa3(0x12a),_0x4388ec[_0x4388ec[_0x5bdfa3(0xbc)]=0x4]=_0x5bdfa3(0xbc),_0x4388ec[_0x4388ec[_0x5bdfa3(0xb8)]=0x8]=_0x5bdfa3(0xb8),_0x4388ec[_0x4388ec[_0x5bdfa3(0xec)]=0x10]=_0x5bdfa3(0xec),_0x4388ec[_0x4388ec[_0x5bdfa3(0xe1)]=0x20]='ReferenceType',_0x4388ec[_0x4388ec['DataType']=0x40]=_0x5bdfa3(0x168),_0x4388ec[_0x4388ec[_0x5bdfa3(0x12d)]=0x80]='View';}(_0x59ec68||(_0x59ec68={})));var _0x460450;(function(_0x2dae36){const _0x59d360=_0xc1095c;_0x2dae36[_0x2dae36['ReferenceType']=0x1]='ReferenceType',_0x2dae36[_0x2dae36[_0x59d360(0x173)]=0x2]=_0x59d360(0x173),_0x2dae36[_0x2dae36[_0x59d360(0xea)]=0x4]=_0x59d360(0xea),_0x2dae36[_0x2dae36['BrowseName']=0x8]='BrowseName',_0x2dae36[_0x2dae36[_0x59d360(0xe2)]=0x10]=_0x59d360(0xe2),_0x2dae36[_0x2dae36[_0x59d360(0x130)]=0x20]=_0x59d360(0x130);}(_0x460450||(_0x460450={})));function _0x29d1d2(_0x542e3b){const _0x3a9648=_0xc1095c;switch(_0x542e3b){case'Organizes':return _0x347ff8;case _0x3a9648(0x15b):return _0x4e3afe;case _0x3a9648(0xd0):return _0x48af00;case'HasChild':return _0xf5236b;case'HasSubtype':return _0x3b20bc;case _0x3a9648(0xe4):return _0x4a7e06;}}const _0x23c0dc=_0xae76f0=>{const _0x3a1487=_0xc1095c;switch(_0xae76f0['nodeClass']){case _0x3a1487(0xf9):if(_0xae76f0[_0x3a1487(0xd6)]===_0x347ff8);if(_0xae76f0[_0x3a1487(0x13c)]===_0x1df86f||_0xae76f0[_0x3a1487(0xd6)]==='i=61')return{'icon':_0x3a1487(0x169),'color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x3a1487(0xfc),'color':_0x3a1487(0x131)};case'Variable':if(_0xae76f0[_0x3a1487(0xd6)]===_0x48af00)return{'icon':_0x3a1487(0xc6),'color':_0x3a1487(0xb1)};else return _0xae76f0[_0x3a1487(0xd6)]===_0x4e3afe?{'icon':_0x3a1487(0xc6),'color':_0x3a1487(0x14c)}:{'icon':_0x3a1487(0xc6),'color':_0x3a1487(0x125)};case _0x3a1487(0xbc):return{'icon':_0x3a1487(0x103),'color':_0x3a1487(0x15a)};case _0x3a1487(0xb8):return{'icon':_0x3a1487(0xfc),'color':_0x3a1487(0x156)};case _0x3a1487(0xec):return{'icon':_0x3a1487(0xcd),'color':_0x3a1487(0x156)};case _0x3a1487(0x168):return{'icon':'fa-text-width','color':_0x3a1487(0x125)};}return{'icon':_0x3a1487(0x14b),'color':_0x3a1487(0x194)};},_0x319292=(_0x1ab927,_0xb13773,_0x2b4b6d)=>_0x5643a5(void 0x0,[_0x1ab927,_0xb13773,_0x2b4b6d],void 0x0,function*({endpointNode:_0x255281,endpoint:_0x5c3cda,baseUrl:_0x4502ba},_0x79ddb,_0x48a12b){const _0xf8e687=_0xc1095c,_0x453499=_0x4502ba+_0xf8e687(0x140),_0x2e291b=_0x453499+'/browse',_0x165901=Object[_0xf8e687(0xfa)](Object['assign']({},_0x48a12b),{'nodeId':_0x79ddb,'resultMask':0x3f}),_0x559151=yield fetch(_0x2e291b,{'method':_0xf8e687(0x167),'body':JSON[_0xf8e687(0x151)]({'endpointNode':_0x255281,'endpoint':_0x5c3cda,'browseDescription':_0x165901}),'headers':{'Content-Type':'application/json'}});if(_0x559151['status']!==0xc8)return console[_0xf8e687(0x10f)]('fetching\x20failed\x20with\x20error',_0x559151['status'],_0x559151[_0xf8e687(0x113)]),{'references':[]};const _0x53a133=yield _0x559151[_0xf8e687(0x128)](),_0x3ed970=_0x53a133[_0xf8e687(0x17b)]['references']||[];return{'references':_0x3ed970};}),_0xe50092={'referenceTypeId':_0x29d1d2(_0xc1095c(0x188)),'includeSubtypes':!![],'browseDirection':_0x10362d[_0xc1095c(0x191)],'nodeClassMask':_0x4e35f9[_0xc1095c(0x12a)]|_0x4e35f9[_0xc1095c(0xf9)]|_0x4e35f9['Method'],'resultMask':0x3f},_0x4a0ee0={'referenceTypeId':_0x29d1d2(_0xc1095c(0x111)),'includeSubtypes':!![],'browseDirection':_0x10362d[_0xc1095c(0x191)],'nodeClassMask':_0x4e35f9[_0xc1095c(0x12a)]|_0x4e35f9[_0xc1095c(0xf9)]|_0x4e35f9[_0xc1095c(0xbc)],'resultMask':0x3f},_0x28c3b7=(_0x49603b,_0x1b49fe)=>_0x5643a5(void 0x0,[_0x49603b,_0x1b49fe],void 0x0,function*({endpointNode:_0xc0f0e4,endpoint:_0x902358,baseUrl:_0x1722c2},{nodeId:_0x3ec1da,rootNodeId:_0x52dcd8,isType:_0x31adb0}){const _0x2465c9=_0xc1095c,_0x3bd1d6=_0x1722c2+_0x2465c9(0x140),_0x4ad583=_0x3bd1d6+'/walk-backward',_0x1f8b77=yield fetch(_0x4ad583,{'method':_0x2465c9(0x167),'body':JSON['stringify']({'endpointNode':_0xc0f0e4,'endpoint':_0x902358,'nodeId':_0x3ec1da,'rootNodeId':_0x52dcd8,'isType':_0x31adb0}),'headers':{'Content-Type':_0x2465c9(0x123)}});if(_0x1f8b77[_0x2465c9(0xf4)]!==0xc8)return null;const _0x100759=yield _0x1f8b77[_0x2465c9(0x128)]();return _0x100759[_0x2465c9(0x16b)];}),_0x4ecf92=(_0x171c87,_0x28b2fa,_0x680cbd)=>_0x5643a5(void 0x0,[_0x171c87,_0x28b2fa,_0x680cbd],void 0x0,function*({endpointNode:_0x4645c4,endpoint:_0x2bb54e,baseUrl:_0x67b027},_0x154120,_0x51c4c5){const _0x465f48=_0xc1095c,_0x5e563b=_0x67b027+_0x465f48(0x140),_0x47cb6f=_0x5e563b+_0x465f48(0x186),_0x2aa046=_0x154120[_0x465f48(0x10a)](),_0x3dff3c=yield fetch(_0x47cb6f,{'method':_0x465f48(0x167),'body':JSON['stringify']({'endpointNode':_0x4645c4,'endpoint':_0x2bb54e,'nodeId':_0x2aa046}),'headers':{'Content-Type':_0x465f48(0x123)}}),_0x38f4f7=(_0x30d4c4,_0x5a3be2)=>{const _0x587649=_0x465f48;_0x51c4c5[_0x587649(0x16a)](_0x30d4c4)[_0x587649(0x100)](_0x587649(0x135))[_0x587649(0x100)](_0x5a3be2),_0x51c4c5[_0x587649(0xfb)](),setTimeout(()=>{const _0x50a5a4=_0x587649;_0x51c4c5[_0x50a5a4(0xe5)](_0x5a3be2),_0x51c4c5[_0x50a5a4(0xc5)]();},0xbb8);},_0xbb2633=yield _0x3dff3c['json']();_0x3dff3c[_0x465f48(0xf4)]!==0xc8?_0x38f4f7('!!failure!!'+_0x2aa046,_0x465f48(0x195)):_0xbb2633['statusCode']['match'](/Good/)?(_0x154120[_0x465f48(0x10a)](_0xbb2633[_0x465f48(0x16d)]),_0x154120[_0x465f48(0x117)]('change'),_0x38f4f7('Good','ok')):(_0x154120[_0x465f48(0x10a)](''+_0x2aa046),_0x38f4f7(_0xbb2633[_0x465f48(0x154)]+'\x20'+_0x3dff3c['statusText'],_0x465f48(0x195)));});function _0x472c51(_0x53ac84,_0x4139f1){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x89bd75=_0x135c,_0x4a6a7a=_0x53ac84[_0x89bd75(0x179)]('value'),_0x2583bc=yield _0x319292(_0x4139f1,_0x4a6a7a,_0xe50092),_0x86650c=yield _0x319292(_0x4139f1,_0x4a6a7a,_0x4a0ee0);return{'references':[..._0x2583bc['references'],..._0x86650c[_0x89bd75(0xed)]]};});}const _0x19d423={'referenceTypeId':_0x29d1d2(_0xc1095c(0xd3)),'includeSubtypes':!![],'browseDirection':_0x10362d[_0xc1095c(0x191)],'nodeClassMask':_0x4e35f9[_0xc1095c(0xe1)]|_0x4e35f9[_0xc1095c(0xb8)]|_0x4e35f9[_0xc1095c(0x168)]|_0x4e35f9[_0xc1095c(0xec)],'resultMask':0x3f};function _0x149adc(_0xc6e03e,_0x5cf2a1){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x10a9ce=_0x135c,_0x27e842=_0xc6e03e[_0x10a9ce(0x179)]('value'),_0x4a735c=yield _0x319292(_0x5cf2a1,_0x27e842,_0x19d423);return _0x4a735c;});}const _0x6349b1=_0x4f5986=>{const _0x5aa8b4=_0xc1095c;var _0xc68a72,_0x41cece,_0x2c2d19,_0x51f686;if(!_0x4f5986||!_0x4f5986[_0x5aa8b4(0xc7)]){const _0x194d55=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x194d55;}const _0x565d93=_0x4f5986[_0x5aa8b4(0xc7)][_0x5aa8b4(0xd2)](),_0x36ab0f=((_0xc68a72=_0x4f5986[_0x5aa8b4(0x175)])===null||_0xc68a72===void 0x0?void 0x0:_0xc68a72[_0x5aa8b4(0x16a)])||((_0x41cece=_0x4f5986['browseName'])===null||_0x41cece===void 0x0?void 0x0:_0x41cece[_0x5aa8b4(0xca)])||_0x4f5986['nodeId'][_0x5aa8b4(0xd2)](),{icon:_0x4844f7,color:_0x5d5776}=_0x23c0dc(_0x4f5986),_0x526925='('+_0x4f5986[_0x5aa8b4(0xc7)]['toString']()+')\x20'+(((_0x2c2d19=_0x4f5986[_0x5aa8b4(0x192)])===null||_0x2c2d19===void 0x0?void 0x0:_0x2c2d19[_0x5aa8b4(0xca)])||((_0x51f686=_0x4f5986['displayName'])===null||_0x51f686===void 0x0?void 0x0:_0x51f686[_0x5aa8b4(0x16a)])||''),_0x18754d=$(_0x5aa8b4(0x133)+_0x4f5986[_0x5aa8b4(0xc7)][_0x5aa8b4(0xd2)]()+_0x5aa8b4(0x15c)+_0x526925+_0x5aa8b4(0x18a)+_0x4844f7+_0x5aa8b4(0x10d)+_0x5d5776+_0x5aa8b4(0xc3)+_0x36ab0f+_0x5aa8b4(0x105));return _0x18754d[_0x5aa8b4(0x100)]('expandable'),_0x18754d[_0x5aa8b4(0x179)]('value',_0x565d93),_0x18754d[_0x5aa8b4(0x179)](_0x5aa8b4(0xad),_0x4f5986),_0x18754d;},_0x5312c4=(_0x2868c8,_0x1dade0)=>{const _0x360c42=_0xc1095c;return _0x1dade0[_0x360c42(0xe0)]('li[key=\x22'+_0x2868c8+'\x22]');},_0xf909ad=(_0x1dd5dd,_0x5b9316)=>{const _0x147f7d=_0xc1095c;_0x1dd5dd[_0x147f7d(0xe8)]['find'](_0x147f7d(0x16c))[_0x147f7d(0xe5)](_0x147f7d(0x101)),_0x5b9316[_0x147f7d(0xe0)](_0x147f7d(0x146))['addClass'](_0x147f7d(0x101));},_0x38d484=(_0xf12c22,_0x5ee572,_0x405c02)=>_0x5643a5(void 0x0,void 0x0,void 0x0,function*(){const _0x48bd97=_0xc1095c;let _0xcb3414=_0x405c02[_0x48bd97(0xbe)](_0x48bd97(0x141));_0x5ee572[_0x48bd97(0xde)]['elements']||[];const _0x13f101=_0x5ee572['nodeIds']||[];if(_0x13f101[_0x48bd97(0x142)]===0x0)return;for(const _0x36bc97 of _0x13f101){_0xcb3414[_0x48bd97(0xeb)](_0x48bd97(0x16e))&&(yield _0x333e73(_0xf12c22,_0xcb3414));const _0x36cd1c=_0x5312c4(_0x36bc97,_0xcb3414);if(_0x36cd1c[_0x48bd97(0x142)]===0x0)return;_0xcb3414=_0x36cd1c;}_0xf909ad(_0xf12c22,_0xcb3414),_0x21a433(_0xf12c22[_0x48bd97(0xd8)],_0xcb3414);});function _0x21a433(_0x590e02,_0x244127){const _0x33c20e=_0xc1095c,_0x550ab2=_0x244127[_0x33c20e(0x110)]()['top'],_0x43b4ba=_0x590e02[_0x33c20e(0x183)]();if(_0x43b4ba==undefined)return;const _0x387d91=_0x43b4ba+_0x550ab2-_0x590e02[_0x33c20e(0x182)]()/0x2+_0x244127['height']()/0x2;_0x590e02[_0x33c20e(0x14e)]({'scrollTop':_0x387d91},0x1f4);}const _0x4acf3f=(_0x512b03,_0x79d58a)=>_0x5643a5(void 0x0,void 0x0,void 0x0,function*(){const _0x2d62cd=_0xc1095c,_0x5bf13c=_0x512b03[_0x2d62cd(0xb9)][_0x2d62cd(0x10a)](),_0x5d3ab6={'nodeId':_0x5bf13c,'rootNodeId':_0x79d58a[_0x2d62cd(0xc7)],'isType':_0x512b03[_0x2d62cd(0x170)][_0x2d62cd(0xef)]||![]},_0x2eaccc=_0x46390d(_0x512b03),_0x10f47a=yield _0x28c3b7(_0x2eaccc,_0x5d3ab6);if(!_0x10f47a)return;yield _0x38d484(_0x512b03,_0x10f47a,_0x512b03['$tree']);});function _0x3d95bd(_0x5445ec,_0x1bf6fd,_0x5f2c38,_0x5e4da){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x23a277=_0x135c;if(_0x1bf6fd[_0x23a277(0xeb)](_0x23a277(0x13f))){console['log'](_0x23a277(0xf6));return;}if(_0x1bf6fd[_0x23a277(0xeb)]('loading')){console[_0x23a277(0x10f)]('already\x20loading');return;}_0x1bf6fd[_0x23a277(0x100)]('loading'),_0x1bf6fd['append'](_0x23a277(0xf0));try{_0x1bf6fd['children']('ul')[_0x23a277(0xb2)]();const {references:_0x4f56ff}=yield _0x5f2c38(_0x1bf6fd,_0x5e4da);for(const _0x2c5f00 of _0x4f56ff){if(_0x5445ec[_0x23a277(0x170)][_0x23a277(0x184)]&&!_0x5445ec[_0x23a277(0x170)]['filter'](_0x2c5f00))continue;const _0x135527=_0x6349b1(_0x2c5f00);_0x1bf6fd[_0x23a277(0xbe)]('ul')['append'](_0x135527);}_0x1bf6fd[_0x23a277(0x100)](_0x23a277(0x13f));}catch(_0x17c19f){_0x1bf6fd[_0x23a277(0xbe)]('ul')[_0x23a277(0x166)](_0x23a277(0xf7)+_0x17c19f[_0x23a277(0xcb)]+_0x23a277(0x161)),console[_0x23a277(0x10f)](_0x23a277(0xc2),_0x17c19f);}_0x1bf6fd[_0x23a277(0xe0)](_0x23a277(0x158))[_0x23a277(0x177)](),_0x1bf6fd[_0x23a277(0xe5)](_0x23a277(0x119));});}function _0x46390d(_0x21a5bc){const _0x84d8aa=_0xc1095c,_0x5a1046={'baseUrl':_0x21a5bc[_0x84d8aa(0x170)][_0x84d8aa(0x104)],'endpointNode':typeof _0x21a5bc[_0x84d8aa(0x170)]['endpointNode']===_0x84d8aa(0xe3)?_0x21a5bc[_0x84d8aa(0x170)][_0x84d8aa(0x18b)]():_0x21a5bc[_0x84d8aa(0x170)][_0x84d8aa(0x18b)],'endpoint':typeof _0x21a5bc[_0x84d8aa(0x170)][_0x84d8aa(0x172)]===_0x84d8aa(0xe3)?_0x21a5bc[_0x84d8aa(0x170)][_0x84d8aa(0x172)]():_0x21a5bc[_0x84d8aa(0x170)]['endpoint']};return _0x5a1046;}function _0x333e73(_0x2861f7,_0x263a01){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x29bde2=_0x135c;if(_0x263a01[_0x29bde2(0xeb)](_0x29bde2(0x13f))){_0x263a01['removeClass'](_0x29bde2(0x16e))[_0x29bde2(0x100)](_0x29bde2(0xe6)),_0x263a01[_0x29bde2(0xbe)]('ul')[_0x29bde2(0xf5)]();return;}const _0x24df4a=_0x46390d(_0x2861f7),_0x5198a8=!_0x2861f7[_0x29bde2(0x170)]['isTypeRef']?_0x472c51:_0x149adc;try{yield _0x3d95bd(_0x2861f7,_0x263a01,_0x5198a8,_0x24df4a),_0x263a01[_0x29bde2(0xe5)](_0x29bde2(0x16e))['addClass'](_0x29bde2(0xe6));}catch(_0x143f82){_0x263a01[_0x29bde2(0xe5)](_0x29bde2(0x16e))[_0x29bde2(0x100)](_0x29bde2(0xe6)),console['log'](_0x29bde2(0x19b),_0x143f82);}});}const _0x590d7f=()=>{const _0x219697=_0xc1095c;$[_0x219697(0xff)](_0x219697(0x132),{'options':{'endpointNode':()=>({'endpoint':_0x219697(0xcc)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x219697(0x17e)},'nodeClass':'Object','nodeId':_0x219697(0x17c),'displayName':{'text':'Objects'},'typeDefinition':_0x1df86f}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x1b6261=_0x135c,_0x2120ac=this;if(!_0x2120ac[_0x1b6261(0x18c)]){const _0x27b7b2=typeof _0x2120ac[_0x1b6261(0x170)]['parentNode']==='function'?_0x2120ac[_0x1b6261(0x170)][_0x1b6261(0xf2)][_0x1b6261(0x112)](_0x2120ac):_0x2120ac['options'][_0x1b6261(0xf2)];if(_0x27b7b2 instanceof Promise){const _0xeaf295=yield _0x27b7b2;_0x2120ac['__parentNode']=_0xeaf295;}else _0x2120ac['__parentNode']=_0x27b7b2;}return _0x2120ac['__parentNode'];});},'reset'(){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x465e20=_0x135c,_0x4e1c94=this,_0x34ac3e=_0x4e1c94;_0x34ac3e[_0x465e20(0x18c)]=undefined,_0x4e1c94['$tree'][_0x465e20(0xb2)]();const _0x46934f=yield this[_0x465e20(0x14d)](),_0x3c1c3a=_0x6349b1(_0x46934f);_0x4e1c94[_0x465e20(0xe8)][_0x465e20(0x166)](_0x3c1c3a),_0x4e1c94[_0x465e20(0x118)]=_0x46934f;});},'verify'(){const _0x14f2ec=this,_0x5a9bc9=_0x46390d(_0x14f2ec);_0x4ecf92(_0x5a9bc9,_0x14f2ec['$input'],_0x14f2ec['$info']);},'_create'(){const _0x58d3bb=_0x219697,_0x4f6b22=this;_0x4f6b22[_0x58d3bb(0xb9)]=this[_0x58d3bb(0x124)],_0x4f6b22[_0x58d3bb(0x15f)]=$('<div/>'),_0x4f6b22[_0x58d3bb(0x15f)][_0x58d3bb(0x100)]('sterfive-combo-box'),this['element'][_0x58d3bb(0xc9)](_0x4f6b22[_0x58d3bb(0x15f)]),_0x4f6b22[_0x58d3bb(0x152)]=$(_0x58d3bb(0x136))[_0x58d3bb(0x100)](_0x58d3bb(0x176)),_0x4f6b22[_0x58d3bb(0x15f)][_0x58d3bb(0x166)](_0x4f6b22[_0x58d3bb(0x152)]),_0x4f6b22[_0x58d3bb(0x152)][_0x58d3bb(0x166)](_0x4f6b22[_0x58d3bb(0xb9)]),_0x4f6b22[_0x58d3bb(0x10e)]=$(_0x58d3bb(0x150)),_0x4f6b22['$inputGroup'][_0x58d3bb(0x166)](_0x4f6b22[_0x58d3bb(0x10e)]),_0x4f6b22[_0x58d3bb(0x10e)]['on']('click',function(){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x5bde4e=_0x135c;var _0x586a76;let _0x1422bc=![],_0x3927cb;!_0x4f6b22[_0x5bde4e(0xd8)]['is'](_0x5bde4e(0x199))&&(_0x4f6b22[_0x5bde4e(0xac)][_0x5bde4e(0xc5)](),_0x3927cb=yield _0x4f6b22[_0x5bde4e(0x14d)](),(_0x3927cb!==_0x4f6b22[_0x5bde4e(0x118)]||((_0x586a76=_0x4f6b22[_0x5bde4e(0x118)])===null||_0x586a76===void 0x0?void 0x0:_0x586a76[_0x5bde4e(0xc7)])!==_0x3927cb['nodeId'])&&(yield _0x4f6b22[_0x5bde4e(0x17d)]()),_0x1422bc=!![]),_0x4f6b22[_0x5bde4e(0xd8)]['toggle'](),_0x1422bc&&(yield _0x4acf3f(_0x4f6b22,_0x3927cb));});}),_0x4f6b22[_0x58d3bb(0x144)]=$(_0x58d3bb(0x178)),_0x4f6b22[_0x58d3bb(0x152)][_0x58d3bb(0x166)](_0x4f6b22['$verifyBtn']),_0x4f6b22[_0x58d3bb(0x144)]['on'](_0x58d3bb(0x12e),()=>{this['verify']();});!_0x4f6b22[_0x58d3bb(0xb9)][_0x58d3bb(0x196)](_0x58d3bb(0xae))&&_0x4f6b22[_0x58d3bb(0xb9)]['attr'](_0x58d3bb(0xae),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20');_0x4f6b22[_0x58d3bb(0xac)]=$(_0x58d3bb(0x159)),_0x4f6b22['$info'][_0x58d3bb(0xc5)](),_0x4f6b22['$dropdown']=$(_0x58d3bb(0x136))[_0x58d3bb(0x100)](_0x58d3bb(0xc8))[_0x58d3bb(0xc5)](),_0x4f6b22['$combo']['append'](_0x4f6b22[_0x58d3bb(0xac)]),_0x4f6b22[_0x58d3bb(0x15f)]['append'](_0x4f6b22['$dropdown']),_0x4f6b22['$tree']=$(_0x58d3bb(0x129))['appendTo'](_0x4f6b22['$dropdown']),this['reset']();const _0xa3c99a=(_0x5cfc5a,_0x5aac90)=>{const _0x13da1d=_0x58d3bb,_0x408e19=0x14,_0x4528d7=0x14,_0x2ba994=_0x5cfc5a[_0x13da1d(0x17f)](),_0x1edcb9=_0x5aac90;if(_0x1edcb9[_0x13da1d(0x145)]>=_0x2ba994['left']&&_0x1edcb9[_0x13da1d(0x145)]<=_0x2ba994[_0x13da1d(0xc0)]+_0x408e19&&_0x1edcb9[_0x13da1d(0xe7)]>=_0x2ba994[_0x13da1d(0xf8)]&&_0x1edcb9[_0x13da1d(0xe7)]<=_0x2ba994['top']+_0x4528d7)return!![];return![];},_0x2f4ad6=_0x2ea2a5=>_0x5643a5(this,void 0x0,void 0x0,function*(){const _0x38e4aa=_0x58d3bb;if(_0x2ea2a5[_0x38e4aa(0xeb)]('expandable'))_0x333e73(_0x4f6b22,_0x2ea2a5);else{if(_0x2ea2a5[_0x38e4aa(0xeb)](_0x38e4aa(0xe6)))_0x2ea2a5[_0x38e4aa(0xbe)]('ul')[_0x38e4aa(0xf5)](),_0x2ea2a5[_0x38e4aa(0xb5)](_0x38e4aa(0xbd));else{if(_0x2ea2a5[_0x38e4aa(0xbe)]('ul')[_0x38e4aa(0xbe)]()[_0x38e4aa(0x142)]>0x0)_0x2ea2a5[_0x38e4aa(0xbe)]('ul')[_0x38e4aa(0xf5)](),_0x2ea2a5['toggleClass'](_0x38e4aa(0xbd));else;}}});_0x4f6b22[_0x58d3bb(0xe8)]['on'](_0x58d3bb(0xb0),'li',function(_0x5583f9){const _0xd16dd1=_0x58d3bb;var _0x37b49b,_0x1d2318;_0x5583f9['stopPropagation']();let _0x1f4ca7=$(this);if(_0xa3c99a(_0x1f4ca7,_0x5583f9))_0x2f4ad6(_0x1f4ca7);else{const _0xd4313a=_0x1f4ca7['data'](_0xd16dd1(0xd7)),_0xc9a5bb=_0x1f4ca7[_0xd16dd1(0x179)](_0xd16dd1(0xad));if(_0x4f6b22[_0xd16dd1(0x170)][_0xd16dd1(0xb4)]&&!_0x4f6b22[_0xd16dd1(0x170)][_0xd16dd1(0xb4)](_0xc9a5bb))return;_0x4f6b22[_0xd16dd1(0xb9)]['data'](_0xd16dd1(0xad),_0xc9a5bb);const _0x2026ec=((_0x37b49b=_0xc9a5bb['displayName'])===null||_0x37b49b===void 0x0?void 0x0:_0x37b49b[_0xd16dd1(0x16a)])||((_0x1d2318=_0xc9a5bb[_0xd16dd1(0x192)])===null||_0x1d2318===void 0x0?void 0x0:_0x1d2318['name'])||_0xc9a5bb[_0xd16dd1(0xc7)][_0xd16dd1(0xd2)](),_0x45df41='['+_0x2026ec+']('+_0xd4313a+')';_0x4f6b22[_0xd16dd1(0xb9)][_0xd16dd1(0x10a)](_0x45df41),_0x4f6b22[_0xd16dd1(0xb9)][_0xd16dd1(0x117)](_0xd16dd1(0xb3)),_0x4f6b22[_0xd16dd1(0xd8)][_0xd16dd1(0xc5)]();}}),_0x4f6b22[_0x58d3bb(0xe8)]['on'](_0x58d3bb(0x12e),'li',function(_0x29dd7d){const _0x520190=_0x58d3bb;_0x29dd7d[_0x520190(0x138)]();let _0x304842=$(this);_0xa3c99a(_0x304842,_0x29dd7d)&&_0x2f4ad6(_0x304842),_0xf909ad(_0x4f6b22,_0x304842);}),$(document)['on']('click',function(_0x40c48c){const _0x4edd08=_0x58d3bb;!$(_0x40c48c[_0x4edd08(0x174)])[_0x4edd08(0x17a)](_0x4f6b22['$combo'])[_0x4edd08(0x142)]&&_0x4f6b22['$dropdown'][_0x4edd08(0xc5)]();});}});},_0x1c9876=_0x4fc6f8=>{const _0x16202d=_0xc1095c;var _0x1c8a23,_0x3839ae,_0x5717f1;if(!_0x4fc6f8){const _0x2c4ee2=$(_0x16202d(0x185));return _0x2c4ee2;}const _0x599186=_0x4fc6f8['nodeId'][_0x16202d(0xd2)]();let _0x5dcb94=((_0x1c8a23=_0x4fc6f8[_0x16202d(0x175)])===null||_0x1c8a23===void 0x0?void 0x0:_0x1c8a23[_0x16202d(0x16a)])||((_0x3839ae=_0x4fc6f8['browseName'])===null||_0x3839ae===void 0x0?void 0x0:_0x3839ae['name'])||_0x4fc6f8[_0x16202d(0xc7)]['toString'](),_0x4e0efd=(_0x5717f1=_0x4fc6f8[_0x16202d(0x192)])===null||_0x5717f1===void 0x0?void 0x0:_0x5717f1[_0x16202d(0x11a)];_0x5dcb94+=_0x4e0efd!==undefined&&_0x4fc6f8[_0x16202d(0x13d)][_0x16202d(0x163)](/Type/)?'\x20(ns='+_0x4e0efd+')':'';const {icon:_0x17ac9a,color:_0x556d9a}=_0x23c0dc(_0x4fc6f8),_0x95bf4c=$(_0x16202d(0x165));if(_0x4fc6f8[_0x16202d(0x13d)]===_0x16202d(0x12a)){const _0x1af60f=$(_0x16202d(0xdd));_0x95bf4c['append'](_0x1af60f),_0x1af60f['on'](_0x16202d(0x12e),function(){const _0x3288e3=_0x16202d;_0x1af60f[_0x3288e3(0xeb)]('unchecked')?_0x1af60f[_0x3288e3(0xe5)](_0x3288e3(0x13e))[_0x3288e3(0x100)](_0x3288e3(0x121)):_0x1af60f[_0x3288e3(0xe5)]('checked')[_0x3288e3(0x100)](_0x3288e3(0x13e));});}return _0x95bf4c[_0x16202d(0x166)]($(_0x16202d(0x139)+_0x17ac9a+_0x16202d(0x10d)+_0x556d9a+_0x16202d(0xd5)+_0x5dcb94+_0x16202d(0x198))),_0x95bf4c['addClass'](_0x16202d(0x16e)),_0x95bf4c[_0x16202d(0x179)]('value',_0x599186),_0x95bf4c[_0x16202d(0x179)](_0x16202d(0xad),_0x4fc6f8),_0x95bf4c;},_0x335301=()=>{const _0xe164f2=_0xc1095c;$[_0xe164f2(0xff)](_0xe164f2(0x197),{'options':{'endpointNode':()=>({'endpoint':_0xe164f2(0xcc)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){return _0x5643a5(this,void 0x0,void 0x0,function*(){const _0x53f926=_0x135c;var _0x32fc30;const _0x2a535a=this,_0x2f98fb=new Set((_0x32fc30=_0x2a535a['$input']['val']())===null||_0x32fc30===void 0x0?void 0x0:_0x32fc30[_0x53f926(0xd2)]()['split'](';')),_0x342497={'baseUrl':_0x2a535a[_0x53f926(0x170)][_0x53f926(0x104)],'endpointNode':typeof _0x2a535a[_0x53f926(0x170)]['endpointNode']==='function'?_0x2a535a[_0x53f926(0x170)][_0x53f926(0x18b)]():_0x2a535a[_0x53f926(0x170)]['endpointNode'],'endpoint':typeof _0x2a535a[_0x53f926(0x170)][_0x53f926(0x172)]==='function'?_0x2a535a['options'][_0x53f926(0x172)]():_0x2a535a[_0x53f926(0x170)]['endpoint']},_0x3e1d2f=yield _0x3088c2(_0x342497);this[_0x53f926(0xbb)](_0x3e1d2f,_0x2f98fb);});},'_installTree'(_0x35f94e,_0x2d3c32){const _0x4433dc=_0xe164f2,_0x2086af=this;_0x2086af[_0x4433dc(0xe8)][_0x4433dc(0xb2)]();if(!_0x35f94e['events'])return;const _0xe9d0cf=_0x35f94e['events'],_0x24d0ef=_0x1c9876(_0xe9d0cf);_0x2086af['$tree'][_0x4433dc(0x166)](_0x24d0ef);const _0x1693e3='';this['_installChildren'](_0x24d0ef[_0x4433dc(0xbe)]('ul'),_0xe9d0cf,_0x1693e3,_0x2d3c32),_0x24d0ef['removeClass'](_0x4433dc(0x16e))[_0x4433dc(0x100)]('expanded'),this['_updateValues'](_0x2d3c32);},'_installChildren'(_0x470c74,_0x4bcb12,_0x13f0fd,_0x220e77){const _0x25fbc1=_0xe164f2,_0x516712=({name:_0x4a13ef,namespaceIndex:_0x2ce34f})=>{if(_0x2ce34f===0x0)return _0x4a13ef;return _0x2ce34f+':'+_0x4a13ef;},_0x3d49dc=_0x4bcb12[_0x25fbc1(0xbe)]||[],_0x58c208=_0x4bcb12['subTypes']||[],_0x346562=[..._0x3d49dc,..._0x58c208];for(const _0x15e3c6 of _0x346562){const _0x2fb69e=_0x1c9876(_0x15e3c6);_0x470c74['append'](_0x2fb69e);let _0x8d2c7b='';_0x15e3c6[_0x25fbc1(0x13d)]===_0x25fbc1(0x12a)&&(_0x13f0fd?_0x8d2c7b=_0x13f0fd+'.'+_0x516712(_0x15e3c6[_0x25fbc1(0x192)]):_0x8d2c7b=_0x516712(_0x15e3c6['browseName']),_0x2fb69e['attr']('data-value',_0x8d2c7b));const _0x4ad2eb=_0x15e3c6[_0x25fbc1(0xbe)]&&_0x15e3c6[_0x25fbc1(0xbe)][_0x25fbc1(0x142)],_0x56b16c=_0x15e3c6['subTypes']&&_0x15e3c6[_0x25fbc1(0xd1)][_0x25fbc1(0x142)];!_0x4ad2eb&&!_0x56b16c?_0x2fb69e[_0x25fbc1(0xe5)](_0x25fbc1(0x16e))[_0x25fbc1(0x100)](_0x25fbc1(0x164)):(this[_0x25fbc1(0x114)](_0x2fb69e[_0x25fbc1(0xbe)]('ul'),_0x15e3c6,_0x8d2c7b,_0x220e77),_0x2fb69e[_0x25fbc1(0xe5)](_0x25fbc1(0x16e))['addClass'](_0x25fbc1(0xe6)));}},'_updateSelectedFields'(){const _0x1b1b9c=_0xe164f2;var _0x3ab632;const _0x771933=this,_0x9a2994=new Set((_0x3ab632=_0x771933[_0x1b1b9c(0xb9)][_0x1b1b9c(0x10a)]())===null||_0x3ab632===void 0x0?void 0x0:_0x3ab632[_0x1b1b9c(0xd2)]()[_0x1b1b9c(0x10c)](';'));this['_updateValues'](_0x9a2994);},'_updateValues'(_0x47a015){const _0x3a6450=_0xe164f2;$(_0x3a6450(0x120))[_0x3a6450(0x137)](function(){const _0x46d2bd=_0x3a6450,_0x3676eb=$(this),_0x478152=_0x3676eb['attr'](_0x46d2bd(0x187));_0x478152&&_0x47a015['has'](_0x478152)&&_0x3676eb[_0x46d2bd(0xbe)](_0x46d2bd(0x15e))[_0x46d2bd(0xe5)]('unchecked')[_0x46d2bd(0x100)]('checked');});},'_setInputValue'(){const _0x5235b5=_0xe164f2,_0x54e479=this,_0x56f8b4=[];$('.sterfive-tree\x20li')['each'](function(){const _0x888203=_0x135c,_0x352eb5=$(this);if(_0x352eb5[_0x888203(0xbe)](_0x888203(0xce))['length']>0x0){const _0x28a2e1=_0x352eb5[_0x888203(0x196)]('data-value');if(_0x28a2e1)_0x56f8b4[_0x888203(0x12b)](_0x28a2e1);}});const _0x31804c=[...new Set(_0x56f8b4)][_0x5235b5(0x155)]()[_0x5235b5(0xdf)](';');_0x54e479[_0x5235b5(0xb9)][_0x5235b5(0x10a)](_0x31804c),_0x54e479[_0x5235b5(0xb9)][_0x5235b5(0x117)](_0x5235b5(0xb3));},'_create'(){const _0x34ef08=_0xe164f2,_0xe20381=this;_0xe20381[_0x34ef08(0xb9)]=this[_0x34ef08(0x124)],_0xe20381[_0x34ef08(0x15f)]=$(_0x34ef08(0x136)),_0xe20381[_0x34ef08(0x15f)][_0x34ef08(0x100)](_0x34ef08(0xba)),this[_0x34ef08(0x124)][0x0][_0x34ef08(0x189)][_0x34ef08(0x108)](_0xe20381[_0x34ef08(0x15f)][0x0],this[_0x34ef08(0x124)][0x0]),_0xe20381[_0x34ef08(0x152)]=$(_0x34ef08(0x136))[_0x34ef08(0x100)]('input-group'),_0xe20381[_0x34ef08(0x15f)][_0x34ef08(0x166)](_0xe20381['$inputGroup']),_0xe20381['$inputGroup']['append'](_0xe20381['$input']),_0xe20381[_0x34ef08(0x10e)]=$(_0x34ef08(0x150)),_0xe20381['$inputGroup']['append'](_0xe20381[_0x34ef08(0x10e)]),_0xe20381['$toggleTreeBtn']['on'](_0x34ef08(0x12e),function(){const _0x503913=_0x34ef08;_0xe20381[_0x503913(0xd8)]['toggle'](),_0xe20381[_0x503913(0xac)][_0x503913(0xf5)]();if(_0xe20381[_0x503913(0xd8)]['is'](_0x503913(0x199))){_0x54580b[_0x503913(0xfb)]();const _0xb91f51=_0xe20381[_0x503913(0xd8)][_0x503913(0x17f)]();_0x54580b[_0x503913(0x107)]({'top':_0xb91f51[_0x503913(0xf8)]+'px','right':_0x503913(0xd9)+(_0xb91f51[_0x503913(0xc0)]+_0xe20381[_0x503913(0xd8)]['width']())+_0x503913(0x134)}),_0xe20381[_0x503913(0x109)](),_0xe20381['_updateSelectedFields']();}else _0x54580b[_0x503913(0xc5)]();});!_0xe20381[_0x34ef08(0xb9)][_0x34ef08(0x196)](_0x34ef08(0xae))&&_0xe20381['$input'][_0x34ef08(0x196)]('placeholder',_0x34ef08(0xb6));_0xe20381[_0x34ef08(0xac)]=$(_0x34ef08(0x159)),_0xe20381[_0x34ef08(0xac)][_0x34ef08(0xc5)](),_0xe20381['$dropdown']=$(_0x34ef08(0x136))[_0x34ef08(0x100)](_0x34ef08(0xc8))[_0x34ef08(0xc5)]();const _0x3f38d8=$(_0x34ef08(0x148)),_0x221a2d=$(_0x34ef08(0xdc)),_0x54580b=$('<div\x20class=\x22floating-buttons\x22></div>')[_0x34ef08(0x166)](_0x3f38d8,_0x221a2d);_0x54580b[_0x34ef08(0xc5)](),_0x3f38d8['on'](_0x34ef08(0x12e),()=>{const _0x54442d=_0x34ef08;_0xe20381[_0x54442d(0xc1)](),_0xe20381[_0x54442d(0xd8)][_0x54442d(0xc5)]();}),_0x221a2d['on'](_0x34ef08(0x12e),()=>{const _0x539a2f=_0x34ef08;_0xe20381[_0x539a2f(0xd8)][_0x539a2f(0xc5)]();}),_0xe20381[_0x34ef08(0x15f)]['append'](_0xe20381[_0x34ef08(0xac)]),_0xe20381[_0x34ef08(0x15f)][_0x34ef08(0x166)](_0xe20381[_0x34ef08(0xd8)]),_0xe20381[_0x34ef08(0xe8)]=$(_0x34ef08(0x129)),_0xe20381[_0x34ef08(0xd8)][_0x34ef08(0xb2)]()[_0x34ef08(0x166)](_0xe20381[_0x34ef08(0xe8)],_0x54580b),_0xe20381[_0x34ef08(0xe8)]['on'](_0x34ef08(0x12e),'li',function(_0x474918){const _0x29771b=_0x34ef08;_0x474918[_0x29771b(0x138)]();let _0x5d2a13=$(this);const _0x20b470=0x14,_0x40df0e=0x14,_0x583346=$(this)[_0x29771b(0x17f)](),_0x1a6819=_0x474918;if(_0x1a6819[_0x29771b(0x145)]>=_0x583346[_0x29771b(0xc0)]&&_0x1a6819[_0x29771b(0x145)]<=_0x583346[_0x29771b(0xc0)]+_0x20b470&&_0x1a6819[_0x29771b(0xe7)]>=_0x583346[_0x29771b(0xf8)]&&_0x1a6819[_0x29771b(0xe7)]<=_0x583346[_0x29771b(0xf8)]+_0x40df0e){console['log'](_0x29771b(0x157)),console[_0x29771b(0x10f)]('clicked\x20on\x20',_0x5d2a13[_0x29771b(0x179)](_0x29771b(0xd7)),_0x5d2a13[_0x29771b(0x196)](_0x29771b(0x193)));if(_0x5d2a13[_0x29771b(0xeb)](_0x29771b(0x16e)))_0x5d2a13[_0x29771b(0xe5)](_0x29771b(0x16e))[_0x29771b(0x100)](_0x29771b(0xe6)),_0x5d2a13[_0x29771b(0xbe)]('ul')[_0x29771b(0xf5)]();else{if(_0x5d2a13[_0x29771b(0xeb)]('expanded'))_0x5d2a13[_0x29771b(0xbe)]('ul')['toggle'](),_0x5d2a13[_0x29771b(0xb5)](_0x29771b(0xbd));else{if(_0x5d2a13[_0x29771b(0xbe)]('ul')[_0x29771b(0xbe)]()[_0x29771b(0x142)]>0x0)_0x5d2a13[_0x29771b(0xbe)]('ul')['toggle'](),_0x5d2a13['toggleClass'](_0x29771b(0xbd));else;}}}}),$(document)['on'](_0x34ef08(0x12e),function(_0xfeeb68){const _0x56d1c7=_0x34ef08;!$(_0xfeeb68['target'])[_0x56d1c7(0x17a)](_0xe20381['$combo'])['length']&&_0xe20381[_0x56d1c7(0xd8)][_0x56d1c7(0xc5)]();}),this[_0x34ef08(0x109)]();}});},_0x3088c2=_0x4b7d02=>_0x5643a5(void 0x0,[_0x4b7d02],void 0x0,function*({endpointNode:_0x13bafd,endpoint:_0x169497,baseUrl:_0x4e6ca5}){const _0x5d2ac0=_0xc1095c,_0x499934=_0x4e6ca5+_0x5d2ac0(0x140),_0x338c77=_0x499934+_0x5d2ac0(0x181),_0x2ba467=yield fetch(_0x338c77,{'method':_0x5d2ac0(0x167),'body':JSON['stringify']({'endpointNode':_0x13bafd,'endpoint':_0x169497}),'headers':{'Content-Type':_0x5d2ac0(0x123)}});if(_0x2ba467['status']!==0xc8)return console['log'](_0x5d2ac0(0xfd),_0x2ba467[_0x5d2ac0(0xf4)],_0x2ba467[_0x5d2ac0(0x113)]),{'events':null};console[_0x5d2ac0(0x10f)](_0x5d2ac0(0x11c),_0x2ba467['status'],_0x2ba467[_0x5d2ac0(0x113)]);const _0x439741=yield _0x2ba467['json'](),_0xceac82=_0x439741[_0x5d2ac0(0x106)];return{'events':_0xceac82};}),_0x2b365b=()=>{const _0x139e70=_0xc1095c,_0x42593a=$(_0x139e70(0x14a)),_0x1521bc=_0x42593a[_0x139e70(0x10a)](),_0x1e86ae=RED['nodes']['node'](_0x1521bc);if(!_0x1e86ae)return undefined;const {endpoint:_0x474808,securityMode:_0x43cf76,securityPolicy:_0x2d827b,userIdentityType:_0x255560,credentials:_0x2bc182}=_0x1e86ae,_0x2f1aec={'endpoint':_0x474808,'securityMode':_0x43cf76,'securityPolicy':_0x2d827b,'userIdentityType':_0x255560,'credentials':_0x2bc182};return _0x2f1aec;},_0x43cbc7=()=>{return{'endpointNode':_0x5681bb};},_0x5681bb=()=>{const _0x42203b=_0xc1095c,_0x40f703=$(_0x42203b(0x14a)),_0x493e34=_0x40f703[_0x42203b(0x10a)](),_0x2b5b37=_0x2b365b();if(!_0x2b5b37)return undefined;return{'id':_0x493e34};};RED['nodes'][_0xc1095c(0x10b)]('OpcUa-Client2-MonitorEvent',{'category':_0xc1095c(0x147),'color':_0xc1095c(0x13b),'align':_0xc1095c(0x15d),'icon':'opcualogobig.png','paletteLabel':_0xc1095c(0x122),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0xc1095c(0x11d)},'subscription':{'value':'','required':!![],'validate':_0x34a100=>{if(_0x34a100==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x71f9ae=_0xc1095c;return this['name']||_0x71f9ae(0x19c);},'labelStyle'(){return this['name']?'node_label_italic':'';},'oneditprepare'(){const _0x58350a=_0xc1095c;_0x590d7f(),_0x335301(),_0x9f8167(RED,this),$(_0x58350a(0x19a))['on'](_0x58350a(0xb3),()=>{const _0x5ca460=_0x58350a,_0xcd3c2b=$(_0x5ca460(0x190))[_0x5ca460(0x162)](_0x5ca460(0x121));_0xcd3c2b?$(_0x5ca460(0x180))[_0x5ca460(0x10a)](0x0):$('#node-input-inputs')[_0x5ca460(0x10a)](0x1);});const _0xad1c06=$(_0x58350a(0xe9));_0xad1c06[_0x58350a(0x11b)](Object['assign'](Object[_0x58350a(0xfa)]({},_0x43cbc7()),{'filter'(_0x2e6772){const _0x1c1a2a=_0x58350a;return _0x2e6772[_0x1c1a2a(0x13d)]==='Object';},'isSelectable'(_0x2f6fc5){const _0x5b05c3=_0x58350a;return _0x2f6fc5['nodeClass']===_0x5b05c3(0xf9);}})),$(_0x58350a(0x116));const _0xcd5685=$(_0x58350a(0x12c));_0xcd5685['eventFieldSelector'](Object[_0x58350a(0xfa)]({},_0x43cbc7()));},'oneditsave'(){const _0x34dcd3=_0xc1095c,_0x4b2ca8=$('#node-input-startImmediately')[_0x34dcd3(0x162)](_0x34dcd3(0x121));_0x4b2ca8?($(_0x34dcd3(0x190))['val'](_0x4b2ca8?0x0:0x1),this[_0x34dcd3(0xbf)]=_0x4b2ca8?0x0:0x1):($('#node-input-startImmediately')[_0x34dcd3(0x10a)](0x1),this[_0x34dcd3(0xbf)]=0x1);}});}()));
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg5ZjgxNjciLCJfMHgxMWZlYzEiLCJfMHg0NDAxMzUiLCJfMHhmYmNhZTgiLCIkIiwiXzB4MmRjNDc3IiwiXzB4NWJiYjA0IiwiXzB4MzY3Yzk1IiwiXzB4NGU5OTA1IiwiXzB4NDEyODVjIiwiXzB4NTY0M2E1IiwiXzB4NGIxMDBiIiwiXzB4M2M3ODU1IiwiXzB4MThlZGU5IiwiXzB4NTAwM2IyIiwiXzB4NTY5NWJmIiwiXzB4MTExMmIwIiwiXzB4NDg0YzJiIiwiUHJvbWlzZSIsIl8weDNjMDczNiIsIl8weDQxODIyMiIsIl8weDFjM2E5YiIsIl8weDM4NWIxNiIsIl8weDQ2M2M2NCIsIl8weDVkNzdkYSIsIl8weDQwNDk5MSIsIl8weDVmNDk4ZiIsIl8weDQ0ZDY1NSIsIl8weDIzNzU3ZiIsIlN1cHByZXNzZWRFcnJvciIsIl8weDNmMDJjYyIsIl8weDE3MDE0OCIsIl8weDRkZTk3NyIsIl8weDEzMmYyIiwiRXJyb3IiLCJfMHgzNDdmZjgiLCJfMHgxZGY4NmYiLCJfMHg0OGFmMDAiLCJfMHg0ZTNhZmUiLCJfMHhmNTIzNmIiLCJfMHgzYjIwYmMiLCJfMHg0YTdlMDYiLCJfMHgxMDM2MmQiLCJfMHhmZjI0MmYiLCJfMHg0ZTM1ZjkiLCJfMHg1MWZhMzMiLCJfMHg1OWVjNjgiLCJfMHg0Mzg4ZWMiLCJfMHg0NjA0NTAiLCJfMHgyZGFlMzYiLCJfMHgyOWQxZDIiLCJfMHg1NDJlM2IiLCJfMHgyM2MwZGMiLCJfMHhhZTc2ZjAiLCJfMHgzMTkyOTIiLCJfMHgxYWI5MjciLCJfMHhiMTM3NzMiLCJfMHgyYjRiNmQiLCJlbmRwb2ludE5vZGUiLCJfMHgyNTUyODEiLCJlbmRwb2ludCIsIl8weDVjM2NkYSIsImJhc2VVcmwiLCJfMHg0NTAyYmEiLCJfMHg3OWRkYiIsIl8weDQ4YTEyYiIsIl8weDQ1MzQ5OSIsIl8weDJlMjkxYiIsIl8weDE2NTkwMSIsIk9iamVjdCIsIl8weDU1OTE1MSIsImZldGNoIiwiSlNPTiIsImNvbnNvbGUiLCJfMHg1M2ExMzMiLCJfMHgzZWQ5NzAiLCJfMHhlNTAwOTIiLCJfMHg0YTBlZTAiLCJfMHgyOGMzYjciLCJfMHg0OTYwM2IiLCJfMHgxYjQ5ZmUiLCJfMHhjMGYwZTQiLCJfMHg5MDIzNTgiLCJfMHgxNzIyYzIiLCJub2RlSWQiLCJfMHgzZWMxZGEiLCJyb290Tm9kZUlkIiwiXzB4NTJkY2Q4IiwiaXNUeXBlIiwiXzB4MzFhZGIwIiwiXzB4M2JkMWQ2IiwiXzB4NGFkNTgzIiwiXzB4MWY4Yjc3IiwiXzB4MTAwNzU5IiwiXzB4NGVjZjkyIiwiXzB4MTcxYzg3IiwiXzB4MjhiMmZhIiwiXzB4NjgwY2JkIiwiXzB4NDY0NWM0IiwiXzB4MmJiNTRlIiwiXzB4NjdiMDI3IiwiXzB4MTU0MTIwIiwiXzB4NTFjNGM1IiwiXzB4NWU1NjNiIiwiXzB4NDdjYjZmIiwiXzB4MmFhMDQ2IiwiXzB4M2RmZjNjIiwiXzB4MzhmNGY3IiwiXzB4MzBkNGM0IiwiXzB4NWEzYmUyIiwic2V0VGltZW91dCIsIl8weGJiMjYzMyIsIl8weDQ3MmM1MSIsIl8weDUzYWM4NCIsIl8weDQxMzlmMSIsIl8weDRhNmE3YSIsIl8weDI1ODNiYyIsIl8weDg2NjUwYyIsIl8weDE5ZDQyMyIsIl8weDE0OWFkYyIsIl8weGM2ZTAzZSIsIl8weDVjZjJhMSIsIl8weDI3ZTg0MiIsIl8weDRhNzM1YyIsIl8weDYzNDliMSIsIl8weDRmNTk4NiIsIl8weGM2OGE3MiIsIl8weDQxY2VjZSIsIl8weDJjMmQxOSIsIl8weDUxZjY4NiIsIl8weDE5NGQ1NSIsIl8weDU2NWQ5MyIsIl8weDM2YWIwZiIsImljb24iLCJfMHg0ODQ0ZjciLCJjb2xvciIsIl8weDVkNTc3NiIsIl8weDUyNjkyNSIsIl8weDE4NzU0ZCIsIl8weDUzMTJjNCIsIl8weDI4NjhjOCIsIl8weDFkYWRlMCIsIl8weGY5MDlhZCIsIl8weDFkZDVkZCIsIl8weDViOTMxNiIsIl8weDM4ZDQ4NCIsIl8weGYxMmMyMiIsIl8weDVlZTU3MiIsIl8weDQwNWMwMiIsIl8weGNiMzQxNCIsIl8weDEzZjEwMSIsIl8weDM2YmM5NyIsIl8weDMzM2U3MyIsIl8weDM2Y2QxYyIsIl8weDIxYTQzMyIsIl8weDU5MGUwMiIsIl8weDI0NDEyNyIsIl8weDU1MGFiMiIsIl8weDQzYjRiYSIsInVuZGVmaW5lZCIsIl8weDM4N2Q5MSIsIl8weDRhY2YzZiIsIl8weDUxMmIwMyIsIl8weDc5ZDU4YSIsIl8weDViZjEzYyIsIl8weDVkM2FiNiIsIl8weDJlYWNjYyIsIl8weDQ2MzkwZCIsIl8weDEwZjQ3YSIsIl8weDNkOTViZCIsIl8weDU0NDVlYyIsIl8weDFiZjZmZCIsIl8weDVmMmMzOCIsIl8weDVlNGRhIiwicmVmZXJlbmNlcyIsIl8weDRmNTZmZiIsIl8weDJjNWYwMCIsIl8weDEzNTUyNyIsIl8weDE3YzE5ZiIsIl8weDIxYTViYyIsIl8weDVhMTA0NiIsIl8weDI4NjFmNyIsIl8weDI2M2EwMSIsIl8weDI0ZGY0YSIsIl8weDUxOThhOCIsIl8weDE0M2Y4MiIsIl8weDU5MGQ3ZiIsIl8weDIxMjBhYyIsIl8weDI3YjdiMiIsIl8weGVhZjI5NSIsIl8weDRlMWM5NCIsIl8weDM0YWMzZSIsIl8weDQ2OTM0ZiIsIl8weDNjMWMzYSIsIl8weDE0ZjJlYyIsIl8weDVhOWJjOSIsIl8weDRmNmIyMiIsIl8weDU4NmE3NiIsIl8weDE0MjJiYyIsIl8weDM5MjdjYiIsIl8weGEzYzk5YSIsIl8weDVjZmM1YSIsIl8weDVhYWM5MCIsIl8weDQwOGUxOSIsIl8weDQ1MjhkNyIsIl8weDJiYTk5NCIsIl8weDFlZGNiOSIsIl8weDJmNGFkNiIsIl8weDJlYTJhNSIsIl8weDU1ODNmOSIsIl8weDM3YjQ5YiIsIl8weDFkMjMxOCIsIl8weDFmNGNhNyIsIl8weGQ0MzEzYSIsIl8weGM5YTViYiIsIl8weDIwMjZlYyIsIl8weDQ1ZGY0MSIsIl8weDI5ZGQ3ZCIsIl8weDMwNDg0MiIsImRvY3VtZW50IiwiXzB4NDBjNDhjIiwiXzB4MWM5ODc2IiwiXzB4NGZjNmY4IiwiXzB4MWM4YTIzIiwiXzB4MzgzOWFlIiwiXzB4NTcxN2YxIiwiXzB4MmM0ZWUyIiwiXzB4NTk5MTg2IiwiXzB4NWRjYjk0IiwiXzB4NGUwZWZkIiwiXzB4MTdhYzlhIiwiXzB4NTU2ZDlhIiwiXzB4OTViZjRjIiwiXzB4MWFmNjBmIiwiXzB4MzM1MzAxIiwiXzB4MzJmYzMwIiwiXzB4MmE1MzVhIiwiXzB4MmY5OGZiIiwiU2V0IiwiXzB4MzQyNDk3IiwiXzB4M2UxZDJmIiwiXzB4MzA4OGMyIiwiXzB4MzVmOTRlIiwiXzB4MmQzYzMyIiwiXzB4MjA4NmFmIiwiXzB4ZTlkMGNmIiwiXzB4MjRkMGVmIiwiXzB4MTY5M2UzIiwiXzB4NDcwYzc0IiwiXzB4NGJjYjEyIiwiXzB4MTNmMGZkIiwiXzB4MjIwZTc3IiwiXzB4NTE2NzEyIiwibmFtZSIsIl8weDRhMTNlZiIsIm5hbWVzcGFjZUluZGV4IiwiXzB4MmNlMzRmIiwiXzB4M2Q0OWRjIiwiXzB4NThjMjA4IiwiXzB4MzQ2NTYyIiwiXzB4MTVlM2M2IiwiXzB4MmZiNjllIiwiXzB4OGQyYzdiIiwiXzB4NGFkMmViIiwiXzB4NTZiMTZjIiwiXzB4M2FiNjMyIiwiXzB4NzcxOTMzIiwiXzB4OWEyOTk0IiwiXzB4NDdhMDE1IiwiXzB4MzY3NmViIiwiXzB4NDc4MTUyIiwiXzB4NTRlNDc5IiwiXzB4NTZmOGI0IiwiXzB4MzUyZWI1IiwiXzB4MjhhMmUxIiwiXzB4MzE4MDRjIiwiXzB4ZTIwMzgxIiwiXzB4NTQ1ODBiIiwiXzB4YjkxZjUxIiwiXzB4M2YzOGQ4IiwiXzB4MjIxYTJkIiwiXzB4NDc0OTE4IiwiXzB4NWQyYTEzIiwiXzB4MjBiNDcwIiwiXzB4NDBkZjBlIiwiXzB4NTgzMzQ2IiwiXzB4MWE2ODE5IiwiXzB4ZmVlYjY4IiwiXzB4NGI3ZDAyIiwiXzB4MTNiYWZkIiwiXzB4MTY5NDk3IiwiXzB4NGU2Y2E1IiwiXzB4NDk5OTM0IiwiXzB4MzM4Yzc3IiwiXzB4MmJhNDY3IiwiXzB4NDM5NzQxIiwiXzB4Y2VhYzgyIiwiXzB4MmIzNjViIiwiXzB4NDI1OTNhIiwiXzB4MTUyMWJjIiwiXzB4MWU4NmFlIiwiUkVEIiwiXzB4NDc0ODA4Iiwic2VjdXJpdHlNb2RlIiwiXzB4NDNjZjc2Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHgyZDgyN2IiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MjU1NTYwIiwiY3JlZGVudGlhbHMiLCJfMHgyYmMxODIiLCJfMHgyZjFhZWMiLCJfMHg0M2NiYzciLCJfMHg1NjgxYmIiLCJfMHg0MGY3MDMiLCJfMHg0OTNlMzQiLCJfMHgyYjViMzciLCJfMHgzNGExMDAiLCJfMHhjZDNjMmIiLCJfMHhhZDFjMDYiLCJfMHgyZTY3NzIiLCJfMHgyZjZmYzUiLCJfMHhjZDU2ODUiLCJfMHg0YjJjYTgiXSwibWFwcGluZ3MiOiI4NUlBQUEsQ0FBQyxVLENBQ0csYSx3QkFFQSxTQUFTQSxTQUFULENBQXFDQyxTQUFyQyxDQUEwQ0MsU0FBMUMsQyx5QkFDVUMsU0FBQSxDQUFZQyxDQUFBLEMsZ0JBQUEsQyxDQUNaQyxTQUFBLENBQWdCRCxDQUFBLEMsZUFBQSxDLENBQ2hCRSxTQUFBLENBQTZCLEksMkJBQ3pCQyxTQUFBLENBQVdOLFNBQUEsQyxlQUFBLEUsZ0JBQUEsRUFBZUUsU0FBQSxDLGdCQUFBLEdBQWYsQyxDQUNqQkUsU0FBQSxDLE9BQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZUFBQSxDLENBQ2QsTyxHQUVBQSxTQUFBLEMsZUFBQSxDLENBQ0EsVUFBV0MsU0FBWCxJQUFnQkQsU0FBQSxDLGVBQUEsQ0FBaEIsQyxDQUNJLE1BQU1FLFNBQUEsQ0FBUUQsU0FBQSxDLGVBQUEsR0FBVUEsU0FBQSxDLElBQUEsQ0FBeEIsQ0FDQUosQ0FBQSxDLGdCQUFBLENBQWUsQyxPQUNYLENBQU9JLFNBQUEsQyxJQUFBLENBREksQyxPQUVYLENBQU9DLFNBRkksQyxVQUdYLENBQVVELFNBQUEsQyxJQUFBLElBQVNOLFNBQUEsQyxnQkFBQSxDQUhSLENBQWYsRSxnQkFBQSxFQUtVTyxTQUxWLEUsVUFBQSxFQU1jSixTQU5kLEMsSUFVWkMsU0FBQSxFLENB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QVYsRSxnQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZUFBQSxFLElBQVYsRSxlQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxlQUFBLEUsSUFBVixFLGdCQUNBQSxTQUFBLENBQVVBLFNBQUEsQyxnQkFBQSxFLElBQVYsRSxpQkFDQUEsU0FBQSxDQUFVQSxTQUFBLEMsZ0JBQUEsRSxJQUFWLEUsa0JBVEosQ0FVR0QsU0FBQSxFQUFjLENBQUFBLFNBQUEsQ0FBWSxFQUFaLENBVmpCLEdBV0EsSUFBSUUsU0FBSixDQUNBLENBQUMsU0FBVUMsU0FBVixDLDJCQUNHQSxTQUFBLENBQWNBLFNBQUEsQyxlQUFBLEUsR0FBZCxFLGdCQUNBQSxTQUFBLENBQWNBLFNBQUEsQyxnQkFBQSxFLEdBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLEdBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLElBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZUFBQSxFLElBQWQsRSxnQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsVUFBQSxFLElBQWQsRSxpQkFDQUEsU0FBQSxDQUFjQSxTQUFBLEMsZ0JBQUEsRSxJQUFkLEUsUUFSSixDQVNHRCxTQUFBLEVBQWtCLENBQUFBLFNBQUEsQ0FBZ0IsRUFBaEIsQ0FUckIsR0FVQSxJQUFJRSxTQUFKLENBQ0EsQ0FBQyxTQUFVQyxTQUFWLEMsMkJBQ0dBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxHQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsR0FBWCxFLGlCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxlQUFBLEUsR0FBWCxFLGdCQUNBQSxTQUFBLENBQVdBLFNBQUEsQyxZQUFBLEUsR0FBWCxFLGFBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGVBQUEsRSxJQUFYLEUsZ0JBQ0FBLFNBQUEsQ0FBV0EsU0FBQSxDLGdCQUFBLEUsSUFBWCxFLGtCQU5KLENBT0dE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QUFrQzdQLE1BQUEsQyxlQUFBLEVBQWMsRUFBZCxDQUFrQm1QLFNBQUEsRUFBbEIsQ0FBbEMsQyxFQXBFNkMsQyxZQXNFakQsRSwyQkFDVVcsU0FBQSxDQUFtQi9ULENBQUEsQyw4QkFBQSxFLGdCQUFBLEUsZ0JBQUEsQyxDQUNyQitULFMsRUFDQS9ULENBQUEsQyxnQkFBQSxFLEtBQUEsRUFBc0MrVCxTQUFBLEMsR0FBQSxDLEdBQXRDLEMsQ0FDQSxLLGVBQUEsRUFBY0EsU0FBQSxDLEdBQUEsQyxNQUdkL1QsQ0FBQSxDLDhCQUFBLEUsZ0JBQUEsRSxHQUFBLEMsQ0FDQSxLLGVBQUEsRSxNQTlFeUMsQ0FBckQsQyxFQTc0QkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgbm9kZSkge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0ICRzdWJzY3JpcHRpb24gPSAkKFwiI25vZGUtaW5wdXQtc3Vic2NyaXB0aW9uXCIpO1xuICAgICAgICBjb25zdCBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50ID0gUkVELm5vZGVzLm5vZGUoJGVuZHBvaW50LnZhbCgpKTtcbiAgICAgICAgICAgICRzdWJzY3JpcHRpb24uZW1wdHkoKTtcbiAgICAgICAgICAgIGlmICghZW5kcG9pbnQgfHwgIWVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiBlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcy5uYW1lIHx8IHMuaWQ7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8b3B0aW9uLz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHMuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogcy5pZCA9PT0gbm9kZS5zdWJzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChsYWJlbClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbygkc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vIGhhY2tcbiAgICAgICAgLy8gJGlucHV0QWN0aW9uLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgJHN1YnNjcmlwdGlvbi5vbihcImZvY3VzIGNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYywgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2MsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG5zID0gKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lc3BhY2VJbmRleDtcbiAgICAgICAgdCArPSBucyAhPT0gdW5kZWZpbmVkICYmIHJlZmVyZW5jZS5ub2RlQ2xhc3MubWF0Y2goL1R5cGUvKSA/IGAgKG5zPSR7bnN9KWAgOiBcIlwiO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPmApO1xuICAgICAgICBpZiAocmVmZXJlbmNlLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja0JveCA9ICQoJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94IHVuY2hlY2tlZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgICRlbGVtZW50LmFwcGVuZChjaGVja0JveCk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgY2hlY2tib3ggc3RhdGUgd2hlbiBjbGlja2VkXG4gICAgICAgICAgICBjaGVja0JveC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tCb3guaGFzQ2xhc3MoXCJ1bmNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJjaGVja2VkXCIpLmFkZENsYXNzKFwidW5jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRlbGVtZW50LmFwcGVuZCgkKGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4ke3R9PHVsPjwvdWw+YCkpO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmV2ZW50RmllbGRTZWxlY3RvclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9wb3B1bGF0ZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9IChfYSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCwgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
7
|
+
function _0xdc91(){const _0x86115b=['assign','selected','nodeId','name','error','sterfive-dropdown','class','call','grey','find','$tree','/checkNodeId','2678184yPaEND','1rPiSaz','toggle','View','empty','DataType','node_label_italic','ns=0;i=61','log','height','text','elements','><i\x20class=\x22fa\x20','$combo','SeaGreen','sterfive-combo-box','addClass','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','stringify','/browse','appendTo','Objects','parentNode','</li>','references','children','70jVsxJa','$verifyBtn',';\x22></i>','ns=0;i=35','opcualogobig.png','expandable','TypeDefinition','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','split','OPCUA\x20Monitor','10wRSdng','/walk-backward','statusCode','toggleClass','$input','displayName','json','/extractEventTypes','HasTypeDefinition','options','VariableType','.sterfive-tree\x20li','attr','subscription','apply','CadetBlue','scrollTop','_setInputValue','ns=0;i=46','SuppressedError','replaceChild','inputs','sort','offset',';\x22></i>\x20','data','expandable\x20expanded','replaceWith','relativePath','fa-object-group','HasComponent','<div\x20class=\x22spinner\x22></div>','expanded','append','suppressed','length','subTypes','placeholder','\x22\x20style=\x22color:','__parentNode','unchecked','subscriptions','input-group','nodeIds','span.custom-checkbox.checked','focus\x20click',':visible','fa-text-width','css','BrowseName','fetched\x20:\x20','<div\x20class=\x22info-text\x22></div>','value','Invalid','calc(100%\x20-\x20','fa-sliders','browseName','err','<li\x20key=\x22','baseUrl','endpoint','position','removeClass','.spinner','failure','IsForward','$dropdown','Unspecified','fa-question','isSelectable','verify','left','<li>','ns=0;i=85','dblclick','#node-input-whereClause','target','Object','#C0DEED','done','#node-input-startImmediately','referenceTypeId','<ul\x20class=\x22sterfive-tree\x22></ul>','<span\x20class=\x22cancel-button\x22>✖</span>','Forward','function','click','4253625tCoTry','checked','<ul></ul>','application/json','fetching\x20failed\x20with\x20error','eventFieldSelector','then','span.custom-checkbox','reference','top','ReferenceType','Good','currentParent','match','pageY','fa-cog','sterfive.eventFieldSelector','<li>error\x20','join','animate','.tree-text:first','Inverse','Organizes','#node-input-selectClauses','_updateSelectedFields','change',':first','_populate','fetched','throw','resolveParentNode','node-input-startImmediately','POST','opc.tcp://opcuademo.sterfive.com:26543','li\x20>\x20.tree-text','data-value','nodeAddressString','9640362oLtwJI','node','filter','OpcUa-Endpoint2','ns=0;i=34','/opcua-endpoint2','namespaceIndex','3348624mfuVEG','no-expandable','HasProperty','isTypeRef','loading','#node-input-endpoint','events','_installChildren','HasChild','#node-input-subscription','stopPropagation','clicked\x20on\x20','<div/>','i=61','element','Variable','typeDefinition','DisplayName','message','sterfive-info','width','3197034edjZed','Method','hasClass','widget','DarkOrange','\x22}><span\x20class=\x22tree-text\x22\x20title=','sterfive.nodeBrowser','_installTree','val','NodeClass','ns=0;i=47','statusText','closest','right','parentElement','browseResult','nodeClass','opcua','nodes','ObjectType','status','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','#node-input-inputs','$toggleTreeBtn','2066449edtPxJ','!!failure!!','$inputGroup','reset','trigger','HasSubtype','</span><ul></ul></li>','9937512jWivfX','DodgerBlue','#node-input-nodeId','toString','pageX','next','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','$info','fa-list-alt','<div\x20class=\x22floating-buttons\x22></div>','endpointNode','_updateValues','hide'];_0xdc91=function(){return _0x86115b;};return _0xdc91();}function _0x2985(_0x4c5029,_0x2bba5f){const _0xdc911d=_0xdc91();return _0x2985=function(_0x298502,_0x50bf2d){_0x298502=_0x298502-0xf8;let _0xd5c1e8=_0xdc911d[_0x298502];return _0xd5c1e8;},_0x2985(_0x4c5029,_0x2bba5f);}(function(_0x80cb11,_0x202d13){const _0x3a4fcb=_0x2985,_0x54723d=_0x80cb11();while(!![]){try{const _0x29e540=parseInt(_0x3a4fcb(0x163))/0x1*(parseInt(_0x3a4fcb(0x162))/0x2)+parseInt(_0x3a4fcb(0x12a))/0x3+-parseInt(_0x3a4fcb(0x115))/0x4*(parseInt(_0x3a4fcb(0x186))/0x5)+-parseInt(_0x3a4fcb(0x10e))/0x6+-parseInt(_0x3a4fcb(0x142))/0x7+-parseInt(_0x3a4fcb(0x149))/0x8+-parseInt(_0x3a4fcb(0x1dd))/0x9*(-parseInt(_0x3a4fcb(0x17c))/0xa);if(_0x29e540===_0x202d13)break;else _0x54723d['push'](_0x54723d['shift']());}catch(_0x12ee4d){_0x54723d['push'](_0x54723d['shift']());}}}(_0xdc91,0xda6f6),(function(){'use strict';const _0x18e426=_0x2985;function _0x5ed626(_0x241746,_0x392ca5){const _0x3e1d75=_0x2985,_0x5578c7=$(_0x3e1d75(0x11a)),_0x342d32=$(_0x3e1d75(0x11e)),_0xae371d=()=>{const _0x3635a2=_0x3e1d75,_0x142cf4=_0x241746[_0x3635a2(0x13c)][_0x3635a2(0x10f)](_0x5578c7[_0x3635a2(0x132)]());_0x342d32[_0x3635a2(0x166)]();if(!_0x142cf4||!_0x142cf4[_0x3635a2(0x1af)])return;if(_0x142cf4[_0x3635a2(0x1af)])for(const _0x2b7cab of _0x142cf4['subscriptions']){const _0x14b290=_0x2b7cab[_0x3635a2(0x159)]||_0x2b7cab['id'];$('<option/>',{'value':_0x2b7cab['id'],'label':_0x14b290,'selected':_0x2b7cab['id']===_0x392ca5[_0x3635a2(0x193)]})[_0x3635a2(0x16c)](_0x14b290)[_0x3635a2(0x176)](_0x342d32);}};_0xae371d(),_0x342d32['on'](_0x3e1d75(0x1b3),()=>{_0xae371d();}),_0x5578c7['on'](_0x3e1d75(0x102),()=>{_0xae371d();});}function _0x30af8f(_0x44d2a8,_0x6d0944,_0x22e762,_0x1995e9){function _0x36e5a3(_0x348c81){return _0x348c81 instanceof _0x22e762?_0x348c81:new _0x22e762(function(_0x2d02f0){_0x2d02f0(_0x348c81);});}return new(_0x22e762||(_0x22e762=Promise))(function(_0x2d432e,_0x30a00a){const _0x466a7a=_0x2985;function _0xc37573(_0x1abe11){const _0x3f7681=_0x2985;try{_0x29f0e2(_0x1995e9[_0x3f7681(0x14e)](_0x1abe11));}catch(_0x544918){_0x30a00a(_0x544918);}}function _0x23bca1(_0x55abea){const _0x1a49dc=_0x2985;try{_0x29f0e2(_0x1995e9[_0x1a49dc(0x106)](_0x55abea));}catch(_0x4f60be){_0x30a00a(_0x4f60be);}}function _0x29f0e2(_0x5a13de){const _0x3d52d3=_0x2985;_0x5a13de[_0x3d52d3(0x1d5)]?_0x2d432e(_0x5a13de[_0x3d52d3(0x1ba)]):_0x36e5a3(_0x5a13de[_0x3d52d3(0x1ba)])[_0x3d52d3(0x1e3)](_0xc37573,_0x23bca1);}_0x29f0e2((_0x1995e9=_0x1995e9[_0x466a7a(0x194)](_0x44d2a8,_0x6d0944||[]))['next']());});}typeof SuppressedError===_0x18e426(0x1db)?SuppressedError:function(_0x586409,_0x5f1ff8,_0x43edbd){const _0x44f1e3=_0x18e426;var _0x54be8b=new Error(_0x43edbd);return _0x54be8b[_0x44f1e3(0x159)]=_0x44f1e3(0x199),_0x54be8b[_0x44f1e3(0x15a)]=_0x586409,_0x54be8b[_0x44f1e3(0x1a8)]=_0x5f1ff8,_0x54be8b;};const _0x30f6c4=_0x18e426(0x17f),_0x295ee6=_0x18e426(0x169),_0x4f9ebb=_0x18e426(0x134),_0x426adb=_0x18e426(0x198),_0x5e955f=_0x18e426(0x112),_0x26a21d='ns=0;i=45',_0x4f3afe='ns=0;i=40';var _0x1eaffd;(function(_0x2ce145){const _0x233c75=_0x18e426;_0x2ce145[_0x2ce145['Forward']=0x0]=_0x233c75(0x1da),_0x2ce145[_0x2ce145[_0x233c75(0xfe)]=0x1]='Inverse',_0x2ce145[_0x2ce145['Both']=0x2]='Both',_0x2ce145[_0x2ce145[_0x233c75(0x1bb)]=0x3]='Invalid';}(_0x1eaffd||(_0x1eaffd={})));var _0x26c65b;(function(_0x58e343){const _0x5de4cf=_0x18e426;_0x58e343[_0x58e343[_0x5de4cf(0x1c9)]=0x0]=_0x5de4cf(0x1c9),_0x58e343[_0x58e343[_0x5de4cf(0x1d3)]=0x1]=_0x5de4cf(0x1d3),_0x58e343[_0x58e343[_0x5de4cf(0x124)]=0x2]=_0x5de4cf(0x124),_0x58e343[_0x58e343[_0x5de4cf(0x12b)]=0x4]='Method',_0x58e343[_0x58e343[_0x5de4cf(0x13d)]=0x8]=_0x5de4cf(0x13d),_0x58e343[_0x58e343[_0x5de4cf(0x190)]=0x10]='VariableType',_0x58e343[_0x58e343[_0x5de4cf(0x1e7)]=0x20]='ReferenceType',_0x58e343[_0x58e343[_0x5de4cf(0x167)]=0x40]=_0x5de4cf(0x167),_0x58e343[_0x58e343[_0x5de4cf(0x165)]=0x80]='View';}(_0x26c65b||(_0x26c65b={})));var _0x3ca0a3;(function(_0x3e08a8){const _0x5c45a0=_0x18e426;_0x3e08a8[_0x3e08a8['Object']=0x1]=_0x5c45a0(0x1d3),_0x3e08a8[_0x3e08a8[_0x5c45a0(0x124)]=0x2]=_0x5c45a0(0x124),_0x3e08a8[_0x3e08a8[_0x5c45a0(0x12b)]=0x4]=_0x5c45a0(0x12b),_0x3e08a8[_0x3e08a8['ObjectType']=0x8]=_0x5c45a0(0x13d),_0x3e08a8[_0x3e08a8[_0x5c45a0(0x190)]=0x10]=_0x5c45a0(0x190),_0x3e08a8[_0x3e08a8[_0x5c45a0(0x1e7)]=0x20]=_0x5c45a0(0x1e7),_0x3e08a8[_0x3e08a8['DataType']=0x40]=_0x5c45a0(0x167),_0x3e08a8[_0x3e08a8[_0x5c45a0(0x165)]=0x80]='View';}(_0x3ca0a3||(_0x3ca0a3={})));var _0x3ac1a2;(function(_0x6ef90f){const _0x25e0da=_0x18e426;_0x6ef90f[_0x6ef90f[_0x25e0da(0x1e7)]=0x1]=_0x25e0da(0x1e7),_0x6ef90f[_0x6ef90f[_0x25e0da(0x1c7)]=0x2]=_0x25e0da(0x1c7),_0x6ef90f[_0x6ef90f[_0x25e0da(0x133)]=0x4]=_0x25e0da(0x133),_0x6ef90f[_0x6ef90f[_0x25e0da(0x1b7)]=0x8]=_0x25e0da(0x1b7),_0x6ef90f[_0x6ef90f[_0x25e0da(0x126)]=0x10]=_0x25e0da(0x126),_0x6ef90f[_0x6ef90f['TypeDefinition']=0x20]=_0x25e0da(0x182);}(_0x3ac1a2||(_0x3ac1a2={})));function _0x363a15(_0x22448b){const _0x5aaab7=_0x18e426;switch(_0x22448b){case'Organizes':return _0x30f6c4;case _0x5aaab7(0x117):return _0x426adb;case _0x5aaab7(0x1a4):return _0x4f9ebb;case _0x5aaab7(0x11d):return _0x5e955f;case _0x5aaab7(0x147):return _0x26a21d;case _0x5aaab7(0x18e):return _0x4f3afe;}}const _0x44ca59=_0x427623=>{const _0x4a7958=_0x18e426;switch(_0x427623['nodeClass']){case _0x4a7958(0x1d3):if(_0x427623[_0x4a7958(0x1d7)]===_0x30f6c4);if(_0x427623[_0x4a7958(0x125)]===_0x295ee6||_0x427623[_0x4a7958(0x1d7)]===_0x4a7958(0x122))return{'icon':'fa-folder','color':'rgba(61,\x2060,\x204,\x200.525)'};return{'icon':_0x4a7958(0x1a3),'color':_0x4a7958(0x170)};case _0x4a7958(0x124):if(_0x427623['referenceTypeId']===_0x4f9ebb)return{'icon':_0x4a7958(0x151),'color':'SteelBlue'};else return _0x427623['referenceTypeId']===_0x426adb?{'icon':'fa-list-alt','color':_0x4a7958(0x14a)}:{'icon':_0x4a7958(0x151),'color':_0x4a7958(0x195)};case _0x4a7958(0x12b):return{'icon':_0x4a7958(0xf8),'color':'SandyBrown'};case _0x4a7958(0x13d):return{'icon':_0x4a7958(0x1a3),'color':_0x4a7958(0x12e)};case _0x4a7958(0x190):return{'icon':_0x4a7958(0x1bd),'color':_0x4a7958(0x12e)};case _0x4a7958(0x167):return{'icon':_0x4a7958(0x1b5),'color':_0x4a7958(0x195)};}return{'icon':_0x4a7958(0x1ca),'color':_0x4a7958(0x15e)};},_0x107df4=(_0x55c761,_0x2f413c,_0xfe24e6)=>_0x30af8f(void 0x0,[_0x55c761,_0x2f413c,_0xfe24e6],void 0x0,function*({endpointNode:_0x3dd2fb,endpoint:_0x366078,baseUrl:_0x301ea5},_0x1df096,_0x37011c){const _0x1383d0=_0x18e426,_0x493fdf=_0x301ea5+_0x1383d0(0x113),_0xf001a4=_0x493fdf+_0x1383d0(0x175),_0x5fab1b=Object['assign'](Object[_0x1383d0(0x156)]({},_0x37011c),{'nodeId':_0x1df096,'resultMask':0x3f}),_0xc6e9cf=yield fetch(_0xf001a4,{'method':_0x1383d0(0x109),'body':JSON[_0x1383d0(0x174)]({'endpointNode':_0x3dd2fb,'endpoint':_0x366078,'browseDescription':_0x5fab1b}),'headers':{'Content-Type':_0x1383d0(0x1e0)}});if(_0xc6e9cf[_0x1383d0(0x13e)]!==0xc8)return console[_0x1383d0(0x16a)]('fetching\x20failed\x20with\x20error',_0xc6e9cf['status'],_0xc6e9cf['statusText']),{'references':[]};const _0xedf3d=yield _0xc6e9cf[_0x1383d0(0x18c)](),_0x3b6aca=_0xedf3d[_0x1383d0(0x139)]['references']||[];return{'references':_0x3b6aca};}),_0x34e76e={'referenceTypeId':_0x363a15(_0x18e426(0x11d)),'includeSubtypes':!![],'browseDirection':_0x1eaffd['Forward'],'nodeClassMask':_0x26c65b['Variable']|_0x26c65b['Object']|_0x26c65b[_0x18e426(0x12b)],'resultMask':0x3f},_0x54c85b={'referenceTypeId':_0x363a15(_0x18e426(0xff)),'includeSubtypes':!![],'browseDirection':_0x1eaffd['Forward'],'nodeClassMask':_0x26c65b[_0x18e426(0x124)]|_0x26c65b[_0x18e426(0x1d3)]|_0x26c65b[_0x18e426(0x12b)],'resultMask':0x3f},_0x4c51d6=(_0x5b0779,_0x3aaf32)=>_0x30af8f(void 0x0,[_0x5b0779,_0x3aaf32],void 0x0,function*({endpointNode:_0x16bef9,endpoint:_0x22c0e9,baseUrl:_0x4363b6},{nodeId:_0x1286d1,rootNodeId:_0x6627dd,isType:_0x43c06a}){const _0x609582=_0x18e426,_0x36cdf1=_0x4363b6+_0x609582(0x113),_0x1e0110=_0x36cdf1+_0x609582(0x187),_0x1bd303=yield fetch(_0x1e0110,{'method':_0x609582(0x109),'body':JSON['stringify']({'endpointNode':_0x16bef9,'endpoint':_0x22c0e9,'nodeId':_0x1286d1,'rootNodeId':_0x6627dd,'isType':_0x43c06a}),'headers':{'Content-Type':_0x609582(0x1e0)}});if(_0x1bd303['status']!==0xc8)return null;const _0x58c7e7=yield _0x1bd303[_0x609582(0x18c)]();return _0x58c7e7['browsePath'];}),_0x119297=(_0x2a4947,_0x3c954a,_0x55a706)=>_0x30af8f(void 0x0,[_0x2a4947,_0x3c954a,_0x55a706],void 0x0,function*({endpointNode:_0xac9c82,endpoint:_0x51ec63,baseUrl:_0x5a1241},_0x1e778d,_0x3f967b){const _0x3368e1=_0x18e426,_0x35a1bf=_0x5a1241+'/opcua-endpoint2',_0xf8be9c=_0x35a1bf+_0x3368e1(0x161),_0x168d21=_0x1e778d[_0x3368e1(0x132)](),_0x192523=yield fetch(_0xf8be9c,{'method':_0x3368e1(0x109),'body':JSON[_0x3368e1(0x174)]({'endpointNode':_0xac9c82,'endpoint':_0x51ec63,'nodeId':_0x168d21}),'headers':{'Content-Type':_0x3368e1(0x1e0)}}),_0x14879e=(_0x596134,_0x254ae1)=>{const _0x39aa8d=_0x3368e1;_0x3f967b[_0x39aa8d(0x16c)](_0x596134)[_0x39aa8d(0x172)](_0x39aa8d(0x128))[_0x39aa8d(0x172)](_0x254ae1),_0x3f967b['show'](),setTimeout(()=>{const _0x1dac00=_0x39aa8d;_0x3f967b[_0x1dac00(0x1c4)](_0x254ae1),_0x3f967b[_0x1dac00(0x155)]();},0xbb8);},_0x183aac=yield _0x192523[_0x3368e1(0x18c)]();_0x192523[_0x3368e1(0x13e)]!==0xc8?_0x14879e(_0x3368e1(0x143)+_0x168d21,_0x3368e1(0x1c6)):_0x183aac[_0x3368e1(0x188)][_0x3368e1(0x1ea)](/Good/)?(_0x1e778d[_0x3368e1(0x132)](_0x183aac[_0x3368e1(0x10d)]),_0x1e778d[_0x3368e1(0x146)](_0x3368e1(0x102)),_0x14879e(_0x3368e1(0x1e8),'ok')):(_0x1e778d['val'](''+_0x168d21),_0x14879e(_0x183aac[_0x3368e1(0x188)]+'\x20'+_0x192523[_0x3368e1(0x135)],_0x3368e1(0x1c6)));});function _0x4863f7(_0x460038,_0x1f3822){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0x49f50d=_0x2985,_0x2f097d=_0x460038[_0x49f50d(0x19f)](_0x49f50d(0x1ba)),_0x31a632=yield _0x107df4(_0x1f3822,_0x2f097d,_0x34e76e),_0x3c0c4a=yield _0x107df4(_0x1f3822,_0x2f097d,_0x54c85b);return{'references':[..._0x31a632['references'],..._0x3c0c4a[_0x49f50d(0x17a)]]};});}const _0x4e7c87={'referenceTypeId':_0x363a15(_0x18e426(0x147)),'includeSubtypes':!![],'browseDirection':_0x1eaffd['Forward'],'nodeClassMask':_0x26c65b['ReferenceType']|_0x26c65b['ObjectType']|_0x26c65b[_0x18e426(0x167)]|_0x26c65b[_0x18e426(0x190)],'resultMask':0x3f};function _0x4c17df(_0x53c668,_0x303db5){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0x28737d=_0x53c668['data']('value'),_0x163b9d=yield _0x107df4(_0x303db5,_0x28737d,_0x4e7c87);return _0x163b9d;});}const _0x515fc6=_0x48097d=>{const _0x1890ac=_0x18e426;var _0xf0789c,_0x31f674,_0x53e9c4,_0x538040;if(!_0x48097d||!_0x48097d['nodeId']){const _0x48ac2d=$(_0x1890ac(0x183));return _0x48ac2d;}const _0x4da879=_0x48097d[_0x1890ac(0x158)][_0x1890ac(0x14c)](),_0xb18f09=((_0xf0789c=_0x48097d['displayName'])===null||_0xf0789c===void 0x0?void 0x0:_0xf0789c['text'])||((_0x31f674=_0x48097d[_0x1890ac(0x1be)])===null||_0x31f674===void 0x0?void 0x0:_0x31f674['name'])||_0x48097d[_0x1890ac(0x158)][_0x1890ac(0x14c)](),{icon:_0x517b20,color:_0x3bfcc8}=_0x44ca59(_0x48097d),_0x29edd6='('+_0x48097d[_0x1890ac(0x158)][_0x1890ac(0x14c)]()+')\x20'+(((_0x53e9c4=_0x48097d[_0x1890ac(0x1be)])===null||_0x53e9c4===void 0x0?void 0x0:_0x53e9c4[_0x1890ac(0x159)])||((_0x538040=_0x48097d['displayName'])===null||_0x538040===void 0x0?void 0x0:_0x538040[_0x1890ac(0x16c)])||''),_0x42ae90=$(_0x1890ac(0x1c0)+_0x48097d[_0x1890ac(0x158)][_0x1890ac(0x14c)]()+_0x1890ac(0x12f)+_0x29edd6+_0x1890ac(0x16e)+_0x517b20+_0x1890ac(0x1ac)+_0x3bfcc8+_0x1890ac(0x19e)+_0xb18f09+_0x1890ac(0x148));return _0x42ae90['addClass']('expandable'),_0x42ae90[_0x1890ac(0x19f)]('value',_0x4da879),_0x42ae90[_0x1890ac(0x19f)](_0x1890ac(0x1e5),_0x48097d),_0x42ae90;},_0x3f7d67=(_0x4c4728,_0xcdf156)=>{return _0xcdf156['find']('li[key=\x22'+_0x4c4728+'\x22]');},_0x3b1586=(_0x2b49c0,_0x2de9f1)=>{const _0x1436d9=_0x18e426;_0x2b49c0[_0x1436d9(0x160)]['find'](_0x1436d9(0x10b))[_0x1436d9(0x1c4)](_0x1436d9(0x157)),_0x2de9f1[_0x1436d9(0x15f)](_0x1436d9(0xfd))['addClass'](_0x1436d9(0x157));},_0x2e481d=(_0x40f796,_0x4c7c7f,_0x37b52a)=>_0x30af8f(void 0x0,void 0x0,void 0x0,function*(){const _0x22dc15=_0x18e426;let _0x372baa=_0x37b52a[_0x22dc15(0x17b)](_0x22dc15(0x103));_0x4c7c7f[_0x22dc15(0x1a2)][_0x22dc15(0x16d)]||[];const _0x41bab7=_0x4c7c7f[_0x22dc15(0x1b1)]||[];if(_0x41bab7[_0x22dc15(0x1a9)]===0x0)return;for(const _0x11c790 of _0x41bab7){_0x372baa[_0x22dc15(0x12c)](_0x22dc15(0x181))&&(yield _0x4c5cd7(_0x40f796,_0x372baa));const _0x4c6a22=_0x3f7d67(_0x11c790,_0x372baa);if(_0x4c6a22[_0x22dc15(0x1a9)]===0x0)return;_0x372baa=_0x4c6a22;}_0x3b1586(_0x40f796,_0x372baa),_0x31315e(_0x40f796[_0x22dc15(0x1c8)],_0x372baa);});function _0x31315e(_0x67ca40,_0x124fd0){const _0x51feb0=_0x18e426,_0x921e7c=_0x124fd0[_0x51feb0(0x1c3)]()[_0x51feb0(0x1e6)],_0x17e6cb=_0x67ca40[_0x51feb0(0x196)]();if(_0x17e6cb==undefined)return;const _0x31bfec=_0x17e6cb+_0x921e7c-_0x67ca40[_0x51feb0(0x16b)]()/0x2+_0x124fd0[_0x51feb0(0x16b)]()/0x2;_0x67ca40[_0x51feb0(0xfc)]({'scrollTop':_0x31bfec},0x1f4);}const _0x7b9cf9=(_0x3c179e,_0x2861cf)=>_0x30af8f(void 0x0,void 0x0,void 0x0,function*(){const _0x5f379f=_0x18e426,_0x463381=_0x3c179e['$input']['val'](),_0x3f51e5={'nodeId':_0x463381,'rootNodeId':_0x2861cf[_0x5f379f(0x158)],'isType':_0x3c179e['options'][_0x5f379f(0x118)]||![]},_0x297893=_0x291d2e(_0x3c179e),_0x23cc57=yield _0x4c51d6(_0x297893,_0x3f51e5);if(!_0x23cc57)return;yield _0x2e481d(_0x3c179e,_0x23cc57,_0x3c179e[_0x5f379f(0x160)]);});function _0x163d87(_0x3ea3d0,_0x36ebeb,_0x31dcbd,_0x3114be){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0x528983=_0x2985;if(_0x36ebeb[_0x528983(0x12c)](_0x528983(0x105))){console[_0x528983(0x16a)]('already\x20fetched');return;}if(_0x36ebeb[_0x528983(0x12c)](_0x528983(0x119))){console['log']('already\x20loading');return;}_0x36ebeb[_0x528983(0x172)]('loading'),_0x36ebeb['append'](_0x528983(0x1a5));try{_0x36ebeb[_0x528983(0x17b)]('ul')[_0x528983(0x166)]();const {references:_0x5dfe1c}=yield _0x31dcbd(_0x36ebeb,_0x3114be);for(const _0x4d049c of _0x5dfe1c){if(_0x3ea3d0[_0x528983(0x18f)][_0x528983(0x110)]&&!_0x3ea3d0[_0x528983(0x18f)][_0x528983(0x110)](_0x4d049c))continue;const _0x1abab4=_0x515fc6(_0x4d049c);_0x36ebeb['children']('ul')[_0x528983(0x1a7)](_0x1abab4);}_0x36ebeb[_0x528983(0x172)](_0x528983(0x105));}catch(_0x3edb2e){_0x36ebeb['children']('ul')[_0x528983(0x1a7)](_0x528983(0xfa)+_0x3edb2e[_0x528983(0x127)]+_0x528983(0x179)),console[_0x528983(0x16a)](_0x528983(0x1bf),_0x3edb2e);}_0x36ebeb[_0x528983(0x15f)](_0x528983(0x1c5))['remove'](),_0x36ebeb[_0x528983(0x1c4)]('loading');});}function _0x291d2e(_0x494b17){const _0x320d58=_0x18e426,_0x10feb3={'baseUrl':_0x494b17[_0x320d58(0x18f)][_0x320d58(0x1c1)],'endpointNode':typeof _0x494b17['options'][_0x320d58(0x153)]===_0x320d58(0x1db)?_0x494b17['options'][_0x320d58(0x153)]():_0x494b17[_0x320d58(0x18f)][_0x320d58(0x153)],'endpoint':typeof _0x494b17[_0x320d58(0x18f)][_0x320d58(0x1c2)]===_0x320d58(0x1db)?_0x494b17['options']['endpoint']():_0x494b17[_0x320d58(0x18f)][_0x320d58(0x1c2)]};return _0x10feb3;}function _0x4c5cd7(_0x1ce03b,_0x2e865f){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0x104e7a=_0x2985;if(_0x2e865f[_0x104e7a(0x12c)](_0x104e7a(0x105))){_0x2e865f['removeClass']('expandable')[_0x104e7a(0x172)](_0x104e7a(0x1a6)),_0x2e865f[_0x104e7a(0x17b)]('ul')[_0x104e7a(0x164)]();return;}const _0x50ba07=_0x291d2e(_0x1ce03b),_0x52cbf5=!_0x1ce03b[_0x104e7a(0x18f)]['isTypeRef']?_0x4863f7:_0x4c17df;try{yield _0x163d87(_0x1ce03b,_0x2e865f,_0x52cbf5,_0x50ba07),_0x2e865f[_0x104e7a(0x1c4)](_0x104e7a(0x181))[_0x104e7a(0x172)](_0x104e7a(0x1a6));}catch(_0x799b6){_0x2e865f[_0x104e7a(0x1c4)](_0x104e7a(0x181))['addClass'](_0x104e7a(0x1a6)),console['log'](_0x104e7a(0x15a),_0x799b6);}});}const _0x298c40=()=>{const _0x7f960a=_0x18e426;$[_0x7f960a(0x12d)](_0x7f960a(0x130),{'options':{'endpointNode':()=>({'endpoint':_0x7f960a(0x10a)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x7f960a(0x177)},'nodeClass':_0x7f960a(0x1d3),'nodeId':_0x7f960a(0x1cf),'displayName':{'text':_0x7f960a(0x177)},'typeDefinition':_0x295ee6}),'filter':()=>!![],'baseUrl':'','isTypeRef':![]},'resolveParentNode'(){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0xe90889=_0x2985,_0x266275=this;if(!_0x266275[_0xe90889(0x1ad)]){const _0x181a50=typeof _0x266275[_0xe90889(0x18f)][_0xe90889(0x178)]===_0xe90889(0x1db)?_0x266275[_0xe90889(0x18f)][_0xe90889(0x178)][_0xe90889(0x15d)](_0x266275):_0x266275[_0xe90889(0x18f)][_0xe90889(0x178)];if(_0x181a50 instanceof Promise){const _0x66698d=yield _0x181a50;_0x266275['__parentNode']=_0x66698d;}else _0x266275['__parentNode']=_0x181a50;}return _0x266275[_0xe90889(0x1ad)];});},'reset'(){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0x391da6=_0x2985,_0x2247c1=this,_0x11a424=_0x2247c1;_0x11a424[_0x391da6(0x1ad)]=undefined,_0x2247c1[_0x391da6(0x160)][_0x391da6(0x166)]();const _0x1ba408=yield this[_0x391da6(0x107)](),_0x1ce4ab=_0x515fc6(_0x1ba408);_0x2247c1[_0x391da6(0x160)]['append'](_0x1ce4ab),_0x2247c1['currentParent']=_0x1ba408;});},'verify'(){const _0x29ec3e=_0x7f960a,_0x2689fd=this,_0x5978c9=_0x291d2e(_0x2689fd);_0x119297(_0x5978c9,_0x2689fd['$input'],_0x2689fd[_0x29ec3e(0x150)]);},'_create'(){const _0x571ead=_0x7f960a,_0x3ce4d0=this;_0x3ce4d0['$input']=this[_0x571ead(0x123)],_0x3ce4d0[_0x571ead(0x16f)]=$(_0x571ead(0x121)),_0x3ce4d0[_0x571ead(0x16f)][_0x571ead(0x172)](_0x571ead(0x171)),this['element'][_0x571ead(0x1a1)](_0x3ce4d0[_0x571ead(0x16f)]),_0x3ce4d0[_0x571ead(0x144)]=$('<div/>')[_0x571ead(0x172)](_0x571ead(0x1b0)),_0x3ce4d0['$combo'][_0x571ead(0x1a7)](_0x3ce4d0[_0x571ead(0x144)]),_0x3ce4d0[_0x571ead(0x144)][_0x571ead(0x1a7)](_0x3ce4d0['$input']),_0x3ce4d0[_0x571ead(0x141)]=$(_0x571ead(0x173)),_0x3ce4d0[_0x571ead(0x144)][_0x571ead(0x1a7)](_0x3ce4d0['$toggleTreeBtn']),_0x3ce4d0[_0x571ead(0x141)]['on'](_0x571ead(0x1dc),function(){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0x590ab1=_0x2985;var _0x5d1d99;let _0x1ec6e0=![],_0x337d06;!_0x3ce4d0[_0x590ab1(0x1c8)]['is'](_0x590ab1(0x1b4))&&(_0x3ce4d0[_0x590ab1(0x150)][_0x590ab1(0x155)](),_0x337d06=yield _0x3ce4d0[_0x590ab1(0x107)](),(_0x337d06!==_0x3ce4d0[_0x590ab1(0x1e9)]||((_0x5d1d99=_0x3ce4d0[_0x590ab1(0x1e9)])===null||_0x5d1d99===void 0x0?void 0x0:_0x5d1d99[_0x590ab1(0x158)])!==_0x337d06['nodeId'])&&(yield _0x3ce4d0[_0x590ab1(0x145)]()),_0x1ec6e0=!![]),_0x3ce4d0[_0x590ab1(0x1c8)][_0x590ab1(0x164)](),_0x1ec6e0&&(yield _0x7b9cf9(_0x3ce4d0,_0x337d06));});}),_0x3ce4d0[_0x571ead(0x17d)]=$(_0x571ead(0x13f)),_0x3ce4d0[_0x571ead(0x144)][_0x571ead(0x1a7)](_0x3ce4d0[_0x571ead(0x17d)]),_0x3ce4d0[_0x571ead(0x17d)]['on'](_0x571ead(0x1dc),()=>{const _0x105208=_0x571ead;this[_0x105208(0x1cc)]();});!_0x3ce4d0[_0x571ead(0x18a)][_0x571ead(0x192)](_0x571ead(0x1ab))&&_0x3ce4d0[_0x571ead(0x18a)][_0x571ead(0x192)](_0x571ead(0x1ab),_0x571ead(0x14f));_0x3ce4d0[_0x571ead(0x150)]=$(_0x571ead(0x1b9)),_0x3ce4d0[_0x571ead(0x150)]['hide'](),_0x3ce4d0[_0x571ead(0x1c8)]=$(_0x571ead(0x121))['addClass'](_0x571ead(0x15b))[_0x571ead(0x155)](),_0x3ce4d0['$combo']['append'](_0x3ce4d0[_0x571ead(0x150)]),_0x3ce4d0['$combo'][_0x571ead(0x1a7)](_0x3ce4d0['$dropdown']),_0x3ce4d0[_0x571ead(0x160)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x571ead(0x176)](_0x3ce4d0[_0x571ead(0x1c8)]),this[_0x571ead(0x145)]();const _0x587262=(_0x54e97b,_0x7bb0c0)=>{const _0x4ca01a=_0x571ead,_0x2dd31b=0x14,_0x4ac1d5=0x14,_0xac4d8=_0x54e97b[_0x4ca01a(0x19d)](),_0x39f772=_0x7bb0c0;if(_0x39f772[_0x4ca01a(0x14d)]>=_0xac4d8['left']&&_0x39f772[_0x4ca01a(0x14d)]<=_0xac4d8[_0x4ca01a(0x1cd)]+_0x2dd31b&&_0x39f772['pageY']>=_0xac4d8[_0x4ca01a(0x1e6)]&&_0x39f772[_0x4ca01a(0x1eb)]<=_0xac4d8['top']+_0x4ac1d5)return!![];return![];},_0x166eee=_0xe225f7=>_0x30af8f(this,void 0x0,void 0x0,function*(){const _0x48fd32=_0x571ead;if(_0xe225f7[_0x48fd32(0x12c)](_0x48fd32(0x181)))_0x4c5cd7(_0x3ce4d0,_0xe225f7);else{if(_0xe225f7[_0x48fd32(0x12c)](_0x48fd32(0x1a6)))_0xe225f7[_0x48fd32(0x17b)]('ul')[_0x48fd32(0x164)](),_0xe225f7[_0x48fd32(0x189)](_0x48fd32(0x1a0));else{if(_0xe225f7[_0x48fd32(0x17b)]('ul')[_0x48fd32(0x17b)]()[_0x48fd32(0x1a9)]>0x0)_0xe225f7[_0x48fd32(0x17b)]('ul')[_0x48fd32(0x164)](),_0xe225f7['toggleClass'](_0x48fd32(0x1a0));else;}}});_0x3ce4d0[_0x571ead(0x160)]['on'](_0x571ead(0x1d0),'li',function(_0x3e720c){const _0x59613f=_0x571ead;var _0xe9e91a,_0x1473a4;_0x3e720c[_0x59613f(0x11f)]();let _0x5df816=$(this);if(_0x587262(_0x5df816,_0x3e720c))_0x166eee(_0x5df816);else{const _0x35cb18=_0x5df816[_0x59613f(0x19f)](_0x59613f(0x1ba)),_0x11a5dc=_0x5df816['data'](_0x59613f(0x1e5));if(_0x3ce4d0[_0x59613f(0x18f)][_0x59613f(0x1cb)]&&!_0x3ce4d0[_0x59613f(0x18f)][_0x59613f(0x1cb)](_0x11a5dc))return;_0x3ce4d0['$input'][_0x59613f(0x19f)](_0x59613f(0x1e5),_0x11a5dc);const _0x927e2a=((_0xe9e91a=_0x11a5dc[_0x59613f(0x18b)])===null||_0xe9e91a===void 0x0?void 0x0:_0xe9e91a[_0x59613f(0x16c)])||((_0x1473a4=_0x11a5dc[_0x59613f(0x1be)])===null||_0x1473a4===void 0x0?void 0x0:_0x1473a4[_0x59613f(0x159)])||_0x11a5dc['nodeId']['toString'](),_0xe30c4c='['+_0x927e2a+']('+_0x35cb18+')';_0x3ce4d0[_0x59613f(0x18a)][_0x59613f(0x132)](_0xe30c4c),_0x3ce4d0['$input'][_0x59613f(0x146)]('change'),_0x3ce4d0[_0x59613f(0x1c8)][_0x59613f(0x155)]();}}),_0x3ce4d0['$tree']['on'](_0x571ead(0x1dc),'li',function(_0x309f4e){const _0x8bf6bb=_0x571ead;_0x309f4e[_0x8bf6bb(0x11f)]();let _0xc43514=$(this);_0x587262(_0xc43514,_0x309f4e)&&_0x166eee(_0xc43514),_0x3b1586(_0x3ce4d0,_0xc43514);}),$(document)['on']('click',function(_0x2adf56){const _0x2b8731=_0x571ead;!$(_0x2adf56['target'])['closest'](_0x3ce4d0[_0x2b8731(0x16f)])['length']&&_0x3ce4d0['$dropdown']['hide']();});}});},_0x197b17=_0x317080=>{const _0x117afc=_0x18e426;var _0x598b11,_0x2c5f60,_0x5bf912;if(!_0x317080){const _0xc74ebb=$(_0x117afc(0x183));return _0xc74ebb;}const _0x4acb92=_0x317080[_0x117afc(0x158)][_0x117afc(0x14c)]();let _0x54c915=((_0x598b11=_0x317080[_0x117afc(0x18b)])===null||_0x598b11===void 0x0?void 0x0:_0x598b11[_0x117afc(0x16c)])||((_0x2c5f60=_0x317080[_0x117afc(0x1be)])===null||_0x2c5f60===void 0x0?void 0x0:_0x2c5f60[_0x117afc(0x159)])||_0x317080[_0x117afc(0x158)][_0x117afc(0x14c)](),_0x673877=(_0x5bf912=_0x317080[_0x117afc(0x1be)])===null||_0x5bf912===void 0x0?void 0x0:_0x5bf912[_0x117afc(0x114)];_0x54c915+=_0x673877!==undefined&&_0x317080['nodeClass']['match'](/Type/)?'\x20(ns='+_0x673877+')':'';const {icon:_0x53fc8e,color:_0xbe44fc}=_0x44ca59(_0x317080),_0x110e49=$(_0x117afc(0x1ce));if(_0x317080[_0x117afc(0x13a)]===_0x117afc(0x124)){const _0x5d1103=$('<span\x20class=\x22custom-checkbox\x20unchecked\x22></span>');_0x110e49[_0x117afc(0x1a7)](_0x5d1103),_0x5d1103['on'](_0x117afc(0x1dc),function(){const _0x1fd7ac=_0x117afc;_0x5d1103[_0x1fd7ac(0x12c)](_0x1fd7ac(0x1ae))?_0x5d1103[_0x1fd7ac(0x1c4)](_0x1fd7ac(0x1ae))[_0x1fd7ac(0x172)](_0x1fd7ac(0x1de)):_0x5d1103[_0x1fd7ac(0x1c4)](_0x1fd7ac(0x1de))[_0x1fd7ac(0x172)]('unchecked');});}return _0x110e49[_0x117afc(0x1a7)]($('<i\x20class=\x22fa\x20'+_0x53fc8e+_0x117afc(0x1ac)+_0xbe44fc+_0x117afc(0x17e)+_0x54c915+_0x117afc(0x1df))),_0x110e49['addClass'](_0x117afc(0x181)),_0x110e49[_0x117afc(0x19f)]('value',_0x4acb92),_0x110e49['data'](_0x117afc(0x1e5),_0x317080),_0x110e49;},_0x1e1aea=()=>{const _0x33a736=_0x18e426;$[_0x33a736(0x12d)](_0x33a736(0xf9),{'options':{'endpointNode':()=>({'endpoint':_0x33a736(0x10a)}),'endpoint':()=>undefined,'baseUrl':''},'_populate'(){return _0x30af8f(this,void 0x0,void 0x0,function*(){const _0x43303c=_0x2985;var _0x17988a;const _0x459dfb=this,_0x1185fb=new Set((_0x17988a=_0x459dfb['$input'][_0x43303c(0x132)]())===null||_0x17988a===void 0x0?void 0x0:_0x17988a['toString']()[_0x43303c(0x184)](';')),_0x34d0ac={'baseUrl':_0x459dfb['options'][_0x43303c(0x1c1)],'endpointNode':typeof _0x459dfb[_0x43303c(0x18f)][_0x43303c(0x153)]===_0x43303c(0x1db)?_0x459dfb[_0x43303c(0x18f)]['endpointNode']():_0x459dfb[_0x43303c(0x18f)][_0x43303c(0x153)],'endpoint':typeof _0x459dfb[_0x43303c(0x18f)]['endpoint']==='function'?_0x459dfb[_0x43303c(0x18f)][_0x43303c(0x1c2)]():_0x459dfb[_0x43303c(0x18f)]['endpoint']},_0x32ba24=yield _0x3bf6a4(_0x34d0ac);this[_0x43303c(0x131)](_0x32ba24,_0x1185fb);});},'_installTree'(_0x3cb5de,_0x40edd3){const _0x5a303d=_0x33a736,_0x2fca6e=this;_0x2fca6e[_0x5a303d(0x160)][_0x5a303d(0x166)]();if(!_0x3cb5de[_0x5a303d(0x11b)])return;const _0x5d6655=_0x3cb5de[_0x5a303d(0x11b)],_0x27251a=_0x197b17(_0x5d6655);_0x2fca6e[_0x5a303d(0x160)][_0x5a303d(0x1a7)](_0x27251a);const _0x52eea0='';this['_installChildren'](_0x27251a[_0x5a303d(0x17b)]('ul'),_0x5d6655,_0x52eea0,_0x40edd3),_0x27251a[_0x5a303d(0x1c4)](_0x5a303d(0x181))['addClass'](_0x5a303d(0x1a6)),this[_0x5a303d(0x154)](_0x40edd3);},'_installChildren'(_0x35e51e,_0x8b2b8e,_0x5ddb7f,_0x57d58a){const _0x4f9634=_0x33a736,_0xd0ef27=({name:_0x2b4b6f,namespaceIndex:_0x533c87})=>{if(_0x533c87===0x0)return _0x2b4b6f;return _0x533c87+':'+_0x2b4b6f;},_0x2ccc03=_0x8b2b8e[_0x4f9634(0x17b)]||[],_0x1bc58c=_0x8b2b8e[_0x4f9634(0x1aa)]||[],_0x48ee24=[..._0x2ccc03,..._0x1bc58c];for(const _0x52a4fc of _0x48ee24){const _0x3ff868=_0x197b17(_0x52a4fc);_0x35e51e['append'](_0x3ff868);let _0x32e2ba='';_0x52a4fc['nodeClass']===_0x4f9634(0x124)&&(_0x5ddb7f?_0x32e2ba=_0x5ddb7f+'.'+_0xd0ef27(_0x52a4fc[_0x4f9634(0x1be)]):_0x32e2ba=_0xd0ef27(_0x52a4fc[_0x4f9634(0x1be)]),_0x3ff868[_0x4f9634(0x192)]('data-value',_0x32e2ba));const _0x5b9a15=_0x52a4fc[_0x4f9634(0x17b)]&&_0x52a4fc['children']['length'],_0x4aa847=_0x52a4fc[_0x4f9634(0x1aa)]&&_0x52a4fc[_0x4f9634(0x1aa)]['length'];!_0x5b9a15&&!_0x4aa847?_0x3ff868['removeClass'](_0x4f9634(0x181))[_0x4f9634(0x172)](_0x4f9634(0x116)):(this[_0x4f9634(0x11c)](_0x3ff868[_0x4f9634(0x17b)]('ul'),_0x52a4fc,_0x32e2ba,_0x57d58a),_0x3ff868['removeClass'](_0x4f9634(0x181))['addClass'](_0x4f9634(0x1a6)));}},'_updateSelectedFields'(){const _0x2c8020=_0x33a736;var _0xa316e7;const _0x20cfdc=this,_0x151243=new Set((_0xa316e7=_0x20cfdc[_0x2c8020(0x18a)][_0x2c8020(0x132)]())===null||_0xa316e7===void 0x0?void 0x0:_0xa316e7['toString']()[_0x2c8020(0x184)](';'));this[_0x2c8020(0x154)](_0x151243);},'_updateValues'(_0x46cb41){const _0x1ace67=_0x33a736;$(_0x1ace67(0x191))['each'](function(){const _0x5314cd=_0x1ace67,_0x2b9d44=$(this),_0x4c211c=_0x2b9d44['attr'](_0x5314cd(0x10c));_0x4c211c&&_0x46cb41['has'](_0x4c211c)&&_0x2b9d44[_0x5314cd(0x17b)](_0x5314cd(0x1e4))[_0x5314cd(0x1c4)](_0x5314cd(0x1ae))['addClass'](_0x5314cd(0x1de));});},'_setInputValue'(){const _0x2bf9e4=_0x33a736,_0x483322=this,_0x3b6f77=[];$(_0x2bf9e4(0x191))['each'](function(){const _0x44d0cc=_0x2bf9e4,_0xf61f15=$(this);if(_0xf61f15['children'](_0x44d0cc(0x1b2))['length']>0x0){const _0x26f249=_0xf61f15[_0x44d0cc(0x192)](_0x44d0cc(0x10c));if(_0x26f249)_0x3b6f77['push'](_0x26f249);}});const _0x127a45=[...new Set(_0x3b6f77)][_0x2bf9e4(0x19c)]()[_0x2bf9e4(0xfb)](';');_0x483322[_0x2bf9e4(0x18a)][_0x2bf9e4(0x132)](_0x127a45),_0x483322['$input'][_0x2bf9e4(0x146)]('change');},'_create'(){const _0x457aef=_0x33a736,_0x5f5644=this;_0x5f5644[_0x457aef(0x18a)]=this[_0x457aef(0x123)],_0x5f5644['$combo']=$('<div/>'),_0x5f5644[_0x457aef(0x16f)][_0x457aef(0x172)](_0x457aef(0x171)),this[_0x457aef(0x123)][0x0][_0x457aef(0x138)][_0x457aef(0x19a)](_0x5f5644[_0x457aef(0x16f)][0x0],this[_0x457aef(0x123)][0x0]),_0x5f5644[_0x457aef(0x144)]=$(_0x457aef(0x121))[_0x457aef(0x172)]('input-group'),_0x5f5644[_0x457aef(0x16f)][_0x457aef(0x1a7)](_0x5f5644[_0x457aef(0x144)]),_0x5f5644['$inputGroup'][_0x457aef(0x1a7)](_0x5f5644[_0x457aef(0x18a)]),_0x5f5644['$toggleTreeBtn']=$('<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>'),_0x5f5644[_0x457aef(0x144)][_0x457aef(0x1a7)](_0x5f5644[_0x457aef(0x141)]),_0x5f5644[_0x457aef(0x141)]['on'](_0x457aef(0x1dc),function(){const _0x465ce4=_0x457aef;_0x5f5644[_0x465ce4(0x1c8)][_0x465ce4(0x164)](),_0x5f5644['$info'][_0x465ce4(0x164)]();if(_0x5f5644[_0x465ce4(0x1c8)]['is'](_0x465ce4(0x1b4))){_0x24a60c['show']();const _0x2342b3=_0x5f5644[_0x465ce4(0x1c8)]['offset']();_0x24a60c[_0x465ce4(0x1b6)]({'top':_0x2342b3['top']+'px','right':_0x465ce4(0x1bc)+(_0x2342b3[_0x465ce4(0x1cd)]+_0x5f5644[_0x465ce4(0x1c8)][_0x465ce4(0x129)]())+'px)'}),_0x5f5644[_0x465ce4(0x104)](),_0x5f5644[_0x465ce4(0x101)]();}else _0x24a60c[_0x465ce4(0x155)]();});!_0x5f5644[_0x457aef(0x18a)]['attr']('placeholder')&&_0x5f5644[_0x457aef(0x18a)][_0x457aef(0x192)]('placeholder',_0x457aef(0x14f));_0x5f5644[_0x457aef(0x150)]=$('<div\x20class=\x22info-text\x22></div>'),_0x5f5644[_0x457aef(0x150)]['hide'](),_0x5f5644[_0x457aef(0x1c8)]=$(_0x457aef(0x121))[_0x457aef(0x172)](_0x457aef(0x15b))[_0x457aef(0x155)]();const _0xab06c7=$('<span\x20class=\x22validate-button\x22>✔</span>'),_0x4aa87d=$(_0x457aef(0x1d9)),_0x24a60c=$(_0x457aef(0x152))[_0x457aef(0x1a7)](_0xab06c7,_0x4aa87d);_0x24a60c[_0x457aef(0x155)](),_0xab06c7['on']('click',()=>{const _0x5eb65e=_0x457aef;_0x5f5644[_0x5eb65e(0x197)](),_0x5f5644[_0x5eb65e(0x1c8)][_0x5eb65e(0x155)]();}),_0x4aa87d['on'](_0x457aef(0x1dc),()=>{const _0x4702a4=_0x457aef;_0x5f5644[_0x4702a4(0x1c8)][_0x4702a4(0x155)]();}),_0x5f5644['$combo'][_0x457aef(0x1a7)](_0x5f5644[_0x457aef(0x150)]),_0x5f5644[_0x457aef(0x16f)][_0x457aef(0x1a7)](_0x5f5644[_0x457aef(0x1c8)]),_0x5f5644['$tree']=$(_0x457aef(0x1d8)),_0x5f5644[_0x457aef(0x1c8)][_0x457aef(0x166)]()['append'](_0x5f5644[_0x457aef(0x160)],_0x24a60c),_0x5f5644[_0x457aef(0x160)]['on'](_0x457aef(0x1dc),'li',function(_0x414bec){const _0x276ff6=_0x457aef;_0x414bec[_0x276ff6(0x11f)]();let _0x9fbc78=$(this);const _0x385769=0x14,_0x28d839=0x14,_0x5a1f66=$(this)[_0x276ff6(0x19d)](),_0x1d42c7=_0x414bec;if(_0x1d42c7[_0x276ff6(0x14d)]>=_0x5a1f66['left']&&_0x1d42c7[_0x276ff6(0x14d)]<=_0x5a1f66[_0x276ff6(0x1cd)]+_0x385769&&_0x1d42c7[_0x276ff6(0x1eb)]>=_0x5a1f66[_0x276ff6(0x1e6)]&&_0x1d42c7['pageY']<=_0x5a1f66[_0x276ff6(0x1e6)]+_0x28d839){console['log']('clicked\x20on\x20icon'),console[_0x276ff6(0x16a)](_0x276ff6(0x120),_0x9fbc78['data'](_0x276ff6(0x1ba)),_0x9fbc78[_0x276ff6(0x192)](_0x276ff6(0x15c)));if(_0x9fbc78[_0x276ff6(0x12c)](_0x276ff6(0x181)))_0x9fbc78[_0x276ff6(0x1c4)](_0x276ff6(0x181))['addClass'](_0x276ff6(0x1a6)),_0x9fbc78[_0x276ff6(0x17b)]('ul')['toggle']();else{if(_0x9fbc78[_0x276ff6(0x12c)](_0x276ff6(0x1a6)))_0x9fbc78[_0x276ff6(0x17b)]('ul')[_0x276ff6(0x164)](),_0x9fbc78[_0x276ff6(0x189)]('expandable\x20expanded');else{if(_0x9fbc78[_0x276ff6(0x17b)]('ul')[_0x276ff6(0x17b)]()['length']>0x0)_0x9fbc78['children']('ul')[_0x276ff6(0x164)](),_0x9fbc78[_0x276ff6(0x189)](_0x276ff6(0x1a0));else;}}}}),$(document)['on']('click',function(_0x5a015d){const _0x305eb3=_0x457aef;!$(_0x5a015d[_0x305eb3(0x1d2)])[_0x305eb3(0x136)](_0x5f5644[_0x305eb3(0x16f)])[_0x305eb3(0x1a9)]&&_0x5f5644[_0x305eb3(0x1c8)][_0x305eb3(0x155)]();}),this[_0x457aef(0x104)]();}});},_0x3bf6a4=_0x5dda1d=>_0x30af8f(void 0x0,[_0x5dda1d],void 0x0,function*({endpointNode:_0x51bfb7,endpoint:_0xfd7b17,baseUrl:_0x13f155}){const _0x3c364a=_0x18e426,_0x3a77a1=_0x13f155+_0x3c364a(0x113),_0x5daa71=_0x3a77a1+_0x3c364a(0x18d),_0x1a9b19=yield fetch(_0x5daa71,{'method':_0x3c364a(0x109),'body':JSON[_0x3c364a(0x174)]({'endpointNode':_0x51bfb7,'endpoint':_0xfd7b17}),'headers':{'Content-Type':_0x3c364a(0x1e0)}});if(_0x1a9b19[_0x3c364a(0x13e)]!==0xc8)return console[_0x3c364a(0x16a)](_0x3c364a(0x1e1),_0x1a9b19[_0x3c364a(0x13e)],_0x1a9b19['statusText']),{'events':null};console['log'](_0x3c364a(0x1b8),_0x1a9b19[_0x3c364a(0x13e)],_0x1a9b19[_0x3c364a(0x135)]);const _0x56e56e=yield _0x1a9b19[_0x3c364a(0x18c)](),_0x4c1893=_0x56e56e['events'];return{'events':_0x4c1893};}),_0x461eea=()=>{const _0x55e85f=_0x18e426,_0x23a40d=$('#node-input-endpoint'),_0x5db582=_0x23a40d[_0x55e85f(0x132)](),_0x3cedcf=RED[_0x55e85f(0x13c)][_0x55e85f(0x10f)](_0x5db582);if(!_0x3cedcf)return undefined;const {endpoint:_0x952fcf,securityMode:_0x879337,securityPolicy:_0x2a4843,userIdentityType:_0x30e7b0,credentials:_0xa0a943}=_0x3cedcf,_0x265ab4={'endpoint':_0x952fcf,'securityMode':_0x879337,'securityPolicy':_0x2a4843,'userIdentityType':_0x30e7b0,'credentials':_0xa0a943};return _0x265ab4;},_0x514517=()=>{return{'endpointNode':_0x1fa6d5};},_0x1fa6d5=()=>{const _0x20eb1c=_0x18e426,_0x381bfd=$(_0x20eb1c(0x11a)),_0x185fd6=_0x381bfd['val'](),_0x11b00d=_0x461eea();if(!_0x11b00d)return undefined;return{'id':_0x185fd6};};RED['nodes']['registerType']('OpcUa-Client2-MonitorEvent',{'category':_0x18e426(0x13b),'color':_0x18e426(0x1d4),'align':_0x18e426(0x137),'icon':_0x18e426(0x180),'paletteLabel':'monitor\x20events','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x18e426(0x111)},'subscription':{'value':'','required':!![],'validate':_0x13576e=>{if(_0x13576e==='')return![];return!![];}},'startImmediately':{'value':!![],'required':!![]},'nodeId':{'value':'','required':![],'validate':()=>!![]},'samplingInterval':{'value':0x3e8,'required':!![]},'discardOldest':{'value':!![],'required':!![]},'queueSize':{'value':0xa,'required':!![]},'selectClauses':{'value':'','required':!![]},'whereClause':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x43706c=_0x18e426;return this['name']||_0x43706c(0x185);},'labelStyle'(){const _0x3d7660=_0x18e426;return this['name']?_0x3d7660(0x168):'';},'oneditprepare'(){const _0x28d1b9=_0x18e426;_0x298c40(),_0x1e1aea(),_0x5ed626(RED,this),$(_0x28d1b9(0x108))['on'](_0x28d1b9(0x102),()=>{const _0x29bd33=_0x28d1b9,_0x58880f=$('#node-input-startImmediately')['prop'](_0x29bd33(0x1de));_0x58880f?$(_0x29bd33(0x140))['val'](0x0):$(_0x29bd33(0x140))[_0x29bd33(0x132)](0x1);});const _0x51d904=$(_0x28d1b9(0x14b));_0x51d904['nodeBrowser'](Object[_0x28d1b9(0x156)](Object[_0x28d1b9(0x156)]({},_0x514517()),{'filter'(_0x1b2ea1){const _0x1c4bfa=_0x28d1b9;return _0x1b2ea1['nodeClass']===_0x1c4bfa(0x1d3);},'isSelectable'(_0x1e8cec){const _0x82f67=_0x28d1b9;return _0x1e8cec[_0x82f67(0x13a)]==='Object';}})),$(_0x28d1b9(0x1d1));const _0x57e4f9=$(_0x28d1b9(0x100));_0x57e4f9[_0x28d1b9(0x1e2)](Object['assign']({},_0x514517()));},'oneditsave'(){const _0x461f7e=_0x18e426,_0x59b83c=$(_0x461f7e(0x1d6))['prop'](_0x461f7e(0x1de));_0x59b83c?($('#node-input-startImmediately')['val'](_0x59b83c?0x0:0x1),this[_0x461f7e(0x19b)]=_0x59b83c?0x0:0x1):($('#node-input-startImmediately')[_0x461f7e(0x132)](0x1),this[_0x461f7e(0x19b)]=0x1);}});}()));
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1ZWQ2MjYiLCJfMHgyNDE3NDYiLCJfMHgzOTJjYTUiLCJfMHg1NTc4YzciLCIkIiwiXzB4MzQyZDMyIiwiXzB4YWUzNzFkIiwiXzB4MTQyY2Y0IiwiXzB4MmI3Y2FiIiwiXzB4MTRiMjkwIiwiXzB4MzBhZjhmIiwiXzB4NDRkMmE4IiwiXzB4NmQwOTQ0IiwiXzB4MjJlNzYyIiwiXzB4MTk5NWU5IiwiXzB4MzZlNWEzIiwiXzB4MzQ4YzgxIiwiXzB4MmQwMmYwIiwiUHJvbWlzZSIsIl8weDJkNDMyZSIsIl8weDMwYTAwYSIsIl8weGMzNzU3MyIsIl8weDFhYmUxMSIsIl8weDI5ZjBlMiIsIl8weDU0NDkxOCIsIl8weDIzYmNhMSIsIl8weDU1YWJlYSIsIl8weDRmNjBiZSIsIl8weDVhMTNkZSIsIlN1cHByZXNzZWRFcnJvciIsIl8weDU4NjQwOSIsIl8weDVmMWZmOCIsIl8weDQzZWRiZCIsIl8weDU0YmU4YiIsIkVycm9yIiwiXzB4MzBmNmM0IiwiXzB4Mjk1ZWU2IiwiXzB4NGY5ZWJiIiwiXzB4NDI2YWRiIiwiXzB4NWU5NTVmIiwiXzB4MjZhMjFkIiwiXzB4NGYzYWZlIiwiXzB4MWVhZmZkIiwiXzB4MmNlMTQ1IiwiXzB4MjZjNjViIiwiXzB4NThlMzQzIiwiXzB4M2NhMGEzIiwiXzB4M2UwOGE4IiwiXzB4M2FjMWEyIiwiXzB4NmVmOTBmIiwiXzB4MzYzYTE1IiwiXzB4MjI0NDhiIiwiXzB4NDRjYTU5IiwiXzB4NDI3NjIzIiwiXzB4MTA3ZGY0IiwiXzB4NTVjNzYxIiwiXzB4MmY0MTNjIiwiXzB4ZmUyNGU2IiwiZW5kcG9pbnROb2RlIiwiXzB4M2RkMmZiIiwiZW5kcG9pbnQiLCJfMHgzNjYwNzgiLCJiYXNlVXJsIiwiXzB4MzAxZWE1IiwiXzB4MWRmMDk2IiwiXzB4MzcwMTFjIiwiXzB4NDkzZmRmIiwiXzB4ZjAwMWE0IiwiXzB4NWZhYjFiIiwiT2JqZWN0IiwiXzB4YzZlOWNmIiwiZmV0Y2giLCJKU09OIiwiY29uc29sZSIsIl8weGVkZjNkIiwiXzB4M2I2YWNhIiwiXzB4MzRlNzZlIiwiXzB4NTRjODViIiwiXzB4NGM1MWQ2IiwiXzB4NWIwNzc5IiwiXzB4M2FhZjMyIiwiXzB4MTZiZWY5IiwiXzB4MjJjMGU5IiwiXzB4NDM2M2I2Iiwibm9kZUlkIiwiXzB4MTI4NmQxIiwicm9vdE5vZGVJZCIsIl8weDY2MjdkZCIsImlzVHlwZSIsIl8weDQzYzA2YSIsIl8weDM2Y2RmMSIsIl8weDFlMDExMCIsIl8weDFiZDMwMyIsIl8weDU4YzdlNyIsIl8weDExOTI5NyIsIl8weDJhNDk0NyIsIl8weDNjOTU0YSIsIl8weDU1YTcwNiIsIl8weGFjOWM4MiIsIl8weDUxZWM2MyIsIl8weDVhMTI0MSIsIl8weDFlNzc4ZCIsIl8weDNmOTY3YiIsIl8weDM1YTFiZiIsIl8weGY4YmU5YyIsIl8weDE2OGQyMSIsIl8weDE5MjUyMyIsIl8weDE0ODc5ZSIsIl8weDU5NjEzNCIsIl8weDI1NGFlMSIsInNldFRpbWVvdXQiLCJfMHgxODNhYWMiLCJfMHg0ODYzZjciLCJfMHg0NjAwMzgiLCJfMHgxZjM4MjIiLCJfMHgyZjA5N2QiLCJfMHgzMWE2MzIiLCJfMHgzYzBjNGEiLCJfMHg0ZTdjODciLCJfMHg0YzE3ZGYiLCJfMHg1M2M2NjgiLCJfMHgzMDNkYjUiLCJfMHgyODczN2QiLCJfMHgxNjNiOWQiLCJfMHg1MTVmYzYiLCJfMHg0ODA5N2QiLCJfMHhmMDc4OWMiLCJfMHgzMWY2NzQiLCJfMHg1M2U5YzQiLCJfMHg1MzgwNDAiLCJfMHg0OGFjMmQiLCJfMHg0ZGE4NzkiLCJfMHhiMThmMDkiLCJpY29uIiwiXzB4NTE3YjIwIiwiY29sb3IiLCJfMHgzYmZjYzgiLCJfMHgyOWVkZDYiLCJfMHg0MmFlOTAiLCJfMHgzZjdkNjciLCJfMHg0YzQ3MjgiLCJfMHhjZGYxNTYiLCJfMHgzYjE1ODYiLCJfMHgyYjQ5YzAiLCJfMHgyZGU5ZjEiLCJfMHgyZTQ4MWQiLCJfMHg0MGY3OTYiLCJfMHg0YzdjN2YiLCJfMHgzN2I1MmEiLCJfMHgzNzJiYWEiLCJfMHg0MWJhYjciLCJfMHgxMWM3OTAiLCJfMHg0YzVjZDciLCJfMHg0YzZhMjIiLCJfMHgzMTMxNWUiLCJfMHg2N2NhNDAiLCJfMHgxMjRmZDAiLCJfMHg5MjFlN2MiLCJfMHgxN2U2Y2IiLCJ1bmRlZmluZWQiLCJfMHgzMWJmZWMiLCJfMHg3YjljZjkiLCJfMHgzYzE3OWUiLCJfMHgyODYxY2YiLCJfMHg0NjMzODEiLCJfMHgzZjUxZTUiLCJfMHgyOTc4OTMiLCJfMHgyOTFkMmUiLCJfMHgyM2NjNTciLCJfMHgxNjNkODciLCJfMHgzZWEzZDAiLCJfMHgzNmViZWIiLCJfMHgzMWRjYmQiLCJfMHgzMTE0YmUiLCJyZWZlcmVuY2VzIiwiXzB4NWRmZTFjIiwiXzB4NGQwNDljIiwiXzB4MWFiYWI0IiwiXzB4M2VkYjJlIiwiXzB4NDk0YjE3IiwiXzB4MTBmZWIzIiwiXzB4MWNlMDNiIiwiXzB4MmU4NjVmIiwiXzB4NTBiYTA3IiwiXzB4NTJjYmY1IiwiXzB4Nzk5YjYiLCJfMHgyOThjNDAiLCJfMHgyNjYyNzUiLCJfMHgxODFhNTAiLCJfMHg2NjY5OGQiLCJfMHgyMjQ3YzEiLCJfMHgxMWE0MjQiLCJfMHgxYmE0MDgiLCJfMHgxY2U0YWIiLCJfMHgyNjg5ZmQiLCJfMHg1OTc4YzkiLCJfMHgzY2U0ZDAiLCJfMHg1ZDFkOTkiLCJfMHgxZWM2ZTAiLCJfMHgzMzdkMDYiLCJfMHg1ODcyNjIiLCJfMHg1NGU5N2IiLCJfMHg3YmIwYzAiLCJfMHgyZGQzMWIiLCJfMHg0YWMxZDUiLCJfMHhhYzRkOCIsIl8weDM5Zjc3MiIsIl8weDE2NmVlZSIsIl8weGUyMjVmNyIsIl8weDNlNzIwYyIsIl8weGU5ZTkxYSIsIl8weDE0NzNhNCIsIl8weDVkZjgxNiIsIl8weDM1Y2IxOCIsIl8weDExYTVkYyIsIl8weDkyN2UyYSIsIl8weGUzMGM0YyIsIl8weDMwOWY0ZSIsIl8weGM0MzUxNCIsImRvY3VtZW50IiwiXzB4MmFkZjU2IiwiXzB4MTk3YjE3IiwiXzB4MzE3MDgwIiwiXzB4NTk4YjExIiwiXzB4MmM1ZjYwIiwiXzB4NWJmOTEyIiwiXzB4Yzc0ZWJiIiwiXzB4NGFjYjkyIiwiXzB4NTRjOTE1IiwiXzB4NjczODc3IiwiXzB4NTNmYzhlIiwiXzB4YmU0NGZjIiwiXzB4MTEwZTQ5IiwiXzB4NWQxMTAzIiwiXzB4MWUxYWVhIiwiXzB4MTc5ODhhIiwiXzB4NDU5ZGZiIiwiXzB4MTE4NWZiIiwiU2V0IiwiXzB4MzRkMGFjIiwiXzB4MzJiYTI0IiwiXzB4M2JmNmE0IiwiXzB4M2NiNWRlIiwiXzB4NDBlZGQzIiwiXzB4MmZjYTZlIiwiXzB4NWQ2NjU1IiwiXzB4MjcyNTFhIiwiXzB4NTJlZWEwIiwiXzB4MzVlNTFlIiwiXzB4OGIyYjhlIiwiXzB4NWRkYjdmIiwiXzB4NTdkNThhIiwiXzB4ZDBlZjI3IiwibmFtZSIsIl8weDJiNGI2ZiIsIm5hbWVzcGFjZUluZGV4IiwiXzB4NTMzYzg3IiwiXzB4MmNjYzAzIiwiXzB4MWJjNThjIiwiXzB4NDhlZTI0IiwiXzB4NTJhNGZjIiwiXzB4M2ZmODY4IiwiXzB4MzJlMmJhIiwiXzB4NWI5YTE1IiwiXzB4NGFhODQ3IiwiXzB4YTMxNmU3IiwiXzB4MjBjZmRjIiwiXzB4MTUxMjQzIiwiXzB4NDZjYjQxIiwiXzB4MmI5ZDQ0IiwiXzB4NGMyMTFjIiwiXzB4NDgzMzIyIiwiXzB4M2I2Zjc3IiwiXzB4ZjYxZjE1IiwiXzB4MjZmMjQ5IiwiXzB4MTI3YTQ1IiwiXzB4NWY1NjQ0IiwiXzB4MjRhNjBjIiwiXzB4MjM0MmIzIiwiXzB4YWIwNmM3IiwiXzB4NGFhODdkIiwiXzB4NDE0YmVjIiwiXzB4OWZiYzc4IiwiXzB4Mzg1NzY5IiwiXzB4MjhkODM5IiwiXzB4NWExZjY2IiwiXzB4MWQ0MmM3IiwiXzB4NWEwMTVkIiwiXzB4NWRkYTFkIiwiXzB4NTFiZmI3IiwiXzB4ZmQ3YjE3IiwiXzB4MTNmMTU1IiwiXzB4M2E3N2ExIiwiXzB4NWRhYTcxIiwiXzB4MWE5YjE5IiwiXzB4NTZlNTZlIiwiXzB4NGMxODkzIiwiXzB4NDYxZWVhIiwiXzB4MjNhNDBkIiwiXzB4NWRiNTgyIiwiXzB4M2NlZGNmIiwiUkVEIiwiXzB4OTUyZmNmIiwic2VjdXJpdHlNb2RlIiwiXzB4ODc5MzM3Iiwic2VjdXJpdHlQb2xpY3kiLCJfMHgyYTQ4NDMiLCJ1c2VySWRlbnRpdHlUeXBlIiwiXzB4MzBlN2IwIiwiY3JlZGVudGlhbHMiLCJfMHhhMGE5NDMiLCJfMHgyNjVhYjQiLCJfMHg1MTQ1MTciLCJfMHgxZmE2ZDUiLCJfMHgzODFiZmQiLCJfMHgxODVmZDYiLCJfMHgxMWIwMGQiLCJfMHgxMzU3NmUiLCJfMHg1ODg4MGYiLCJfMHg1MWQ5MDQiLCJfMHgxYjJlYTEiLCJfMHgxZThjZWMiLCJfMHg1N2U0ZjkiLCJfMHg1OWI4M2MiXSwibWFwcGluZ3MiOiJxK0lBQUEsQ0FBQyxVLENBQ0csYSx3QkFFQSxTQUFTQSxTQUFULENBQXFDQyxTQUFyQyxDQUEwQ0MsU0FBMUMsQyx5QkFDVUMsU0FBQSxDQUFZQyxDQUFBLEMsZ0JBQUEsQyxDQUNaQyxTQUFBLENBQWdCRCxDQUFBLEMsZ0JBQUEsQyxDQUNoQkUsU0FBQSxDQUE2QixJLDJCQUN6QkMsU0FBQSxDQUFXTixTQUFBLEMsZ0JBQUEsRSxnQkFBQSxFQUFlRSxTQUFBLEMsZ0JBQUEsR0FBZixDLENBQ2pCRSxTQUFBLEMsZ0JBQUEsSSxHQUNJLENBQUNFLFNBQUQsRUFBYSxDQUFDQSxTQUFBLEMsZ0JBQUEsQyxDQUNkLE8sR0FFQUEsU0FBQSxDLGdCQUFBLEMsQ0FDQSxVQUFXQyxTQUFYLElBQWdCRCxTQUFBLEMsZUFBQSxDQUFoQixDLENBQ0ksTUFBTUUsU0FBQSxDQUFRRCxTQUFBLEMsZ0JBQUEsR0FBVUEsU0FBQSxDLElBQUEsQ0FBeEIsQ0FDQUosQ0FBQSxDLFdBQUEsQ0FBZSxDLE9BQ1gsQ0FBT0ksU0FBQSxDLElBQUEsQ0FESSxDLE9BRVgsQ0FBT0MsU0FGSSxDLFVBR1gsQ0FBVUQsU0FBQSxDLElBQUEsSUFBU04sU0FBQSxDLGdCQUFBLENBSFIsQ0FBZixFLGdCQUFBLEVBS1VPLFNBTFYsRSxnQkFBQSxFQU1jSixTQU5kLEMsSUFVWkMsU0FB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LGdCQUFBLEVBQWMsRUFBZCxDQUFrQm1QLFNBQUEsRUFBbEIsQ0FBZCxDQUFpRSxDLFFBQUUsQ0FBT1EsU0FBUCxDLGtDQUN4RUEsU0FBQSxDLFdBQUEsSSxrQkFEc0UsQyxjQUdqRixDQUFhQyxTQUFiLEMsaUNBQ1dBLFNBQUEsQyxlQUFBLEksVUFKc0UsQ0FBakUsQ0FBcEIsQyxDQU9BN1QsQ0FBQSxDLGdCQUFBLENBUEEsQ0FRQSxNQUFNOFQsU0FBQSxDQUFpQjlULENBQUEsQyxnQkFBQSxDQUF2QixDQUNBOFQsU0FBQSxDLGdCQUFBLEVBQWtDN1AsTUFBQSxDLFFBQUEsRUFBYyxFQUFkLENBQWtCbVAsU0FBQSxFQUFsQixDQUFsQyxDLEVBcEU2QyxDLFlBc0VqRCxFLDJCQUNVVyxTQUFBLENBQW1CL1QsQ0FBQSxDLGdCQUFBLEUsTUFBQSxFLGdCQUFBLEMsQ0FDckIrVCxTLEVBQ0EvVCxDQUFBLEMsOEJBQUEsRSxLQUFBLEVBQXNDK1QsU0FBQSxDLEdBQUEsQyxHQUF0QyxDLENBQ0EsSyxnQkFBQSxFQUFjQSxTQUFBLEMsR0FBQSxDLE1BR2QvVCxDQUFBLEMsOEJBQUEsRSxnQkFBQSxFLEdBQUEsQyxDQUNBLEssZ0JBQUEsRSxNQTlFeUMsQ0FBckQsQyxFQTc0QkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbFN1YnNjcmlwdGlvblNlbGVjdG9yKFJFRCwgbm9kZSkge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0ICRzdWJzY3JpcHRpb24gPSAkKFwiI25vZGUtaW5wdXQtc3Vic2NyaXB0aW9uXCIpO1xuICAgICAgICBjb25zdCBpbnN0YWxsU3Vic2NyaXB0aW9uT3B0aW9ucyA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGVuZHBvaW50ID0gUkVELm5vZGVzLm5vZGUoJGVuZHBvaW50LnZhbCgpKTtcbiAgICAgICAgICAgICRzdWJzY3JpcHRpb24uZW1wdHkoKTtcbiAgICAgICAgICAgIGlmICghZW5kcG9pbnQgfHwgIWVuZHBvaW50LnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZW5kcG9pbnQuc3Vic2NyaXB0aW9ucykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcyBvZiBlbmRwb2ludC5zdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGxhYmVsID0gcy5uYW1lIHx8IHMuaWQ7XG4gICAgICAgICAgICAgICAgICAgICQoXCI8b3B0aW9uLz5cIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHMuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogbGFiZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogcy5pZCA9PT0gbm9kZS5zdWJzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAudGV4dChsYWJlbClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5hcHBlbmRUbygkc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIC8vIGhhY2tcbiAgICAgICAgLy8gJGlucHV0QWN0aW9uLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgLy8gICAgICRlbmRwb2ludC5vbihcImNoYW5nZVwiLCAoKSA9PiB7XG4gICAgICAgIC8vICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgLy8gICAgIH0pO1xuICAgICAgICAvLyB9KTtcbiAgICAgICAgJHN1YnNjcmlwdGlvbi5vbihcImZvY3VzIGNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgIGluc3RhbGxTdWJzY3JpcHRpb25PcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgICAgICAkZW5kcG9pbnQub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaW5zdGFsbFN1YnNjcmlwdGlvbk9wdGlvbnMoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG4gICAgY29uc3QgSGFzQ2hpbGRSZWZOb2RlSWQgPSBcIm5zPTA7aT0zNFwiO1xuICAgIGNvbnN0IEhhc1N1YnR5cGVSZWZOb2RlSWQgPSBcIm5zPTA7aT00NVwiO1xuICAgIGNvbnN0IEhhc1R5cGVEZWZpbml0aW9uUmVmTm9kZUlkID0gXCJucz0wO2k9NDBcIjtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgdmFyIE5vZGVDbGFzc01hc2s7XG4gICAgKGZ1bmN0aW9uIChOb2RlQ2xhc3NNYXNrKSB7XG4gICAgICAgIE5vZGVDbGFzc01hc2tbTm9kZUNsYXNzTWFza1tcIk9iamVjdFwiXSA9IDFdID0gXCJPYmplY3RcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiTWV0aG9kXCJdID0gNF0gPSBcIk1ldGhvZFwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJPYmplY3RUeXBlXCJdID0gOF0gPSBcIk9iamVjdFR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDMyXSA9IFwiUmVmZXJlbmNlVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NNYXNrW05vZGVDbGFzc01hc2tbXCJEYXRhVHlwZVwiXSA9IDY0XSA9IFwiRGF0YVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzTWFza1tOb2RlQ2xhc3NNYXNrW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3NNYXNrIHx8IChOb2RlQ2xhc3NNYXNrID0ge30pKTtcbiAgICB2YXIgUmVzdWx0TWFzaztcbiAgICAoZnVuY3Rpb24gKFJlc3VsdE1hc2spIHtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiUmVmZXJlbmNlVHlwZVwiXSA9IDFdID0gXCJSZWZlcmVuY2VUeXBlXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIklzRm9yd2FyZFwiXSA9IDJdID0gXCJJc0ZvcndhcmRcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiTm9kZUNsYXNzXCJdID0gNF0gPSBcIk5vZGVDbGFzc1wiO1xuICAgICAgICBSZXN1bHRNYXNrW1Jlc3VsdE1hc2tbXCJCcm93c2VOYW1lXCJdID0gOF0gPSBcIkJyb3dzZU5hbWVcIjtcbiAgICAgICAgUmVzdWx0TWFza1tSZXN1bHRNYXNrW1wiRGlzcGxheU5hbWVcIl0gPSAxNl0gPSBcIkRpc3BsYXlOYW1lXCI7XG4gICAgICAgIFJlc3VsdE1hc2tbUmVzdWx0TWFza1tcIlR5cGVEZWZpbml0aW9uXCJdID0gMzJdID0gXCJUeXBlRGVmaW5pdGlvblwiO1xuICAgIH0pKFJlc3VsdE1hc2sgfHwgKFJlc3VsdE1hc2sgPSB7fSkpO1xuICAgIC8vICBjb25zdCBxID0gUmVmZXJlbmNlVHlwZUlkcy5Pcmdhbml6ZXM7XG4gICAgZnVuY3Rpb24gcmVzb2x2ZU5vZGVJZChub2RlSWRMaWtlKSB7XG4gICAgICAgIHN3aXRjaCAobm9kZUlkTGlrZSkge1xuICAgICAgICAgICAgY2FzZSBcIk9yZ2FuaXplc1wiOlxuICAgICAgICAgICAgICAgIHJldHVybiBPcmdhbml6ZXNSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzUHJvcGVydHlcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzUHJvcGVydHlSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzQ29tcG9uZW50XCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc0NvbXBvbmVudFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBIYXNDaGlsZFJlZk5vZGVJZDtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNTdWJ0eXBlXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIEhhc1N1YnR5cGVSZWZOb2RlSWQ7XG4gICAgICAgICAgICBjYXNlIFwiSGFzVHlwZURlZmluaXRpb25cIjpcbiAgICAgICAgICAgICAgICByZXR1cm4gSGFzVHlwZURlZmluaXRpb25SZWZOb2RlSWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgICAgICBjYXNlIFwiRGF0YVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXRleHQtd2lkdGhcIiwgY29sb3I6IFwiQ2FkZXRCbHVlXCIgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXF1ZXN0aW9uXCIsIGNvbG9yOiBcImdyZXlcIiB9O1xuICAgIH07XG5cbiAgICBjb25zdCBicm93c2UgPSAoX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIG5vZGVJZF8xLCB0ZW1wbGF0ZV8xXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSB7XG4gICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1lbmRwb2ludDJgO1xuICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9icm93c2VgO1xuICAgICAgICBjb25zdCBicm93c2VEZXNjcmlwdGlvbiA9IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgdGVtcGxhdGUpLCB7IG5vZGVJZCwgcmVzdWx0TWFzazogNjMgfSk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaCh1cmwsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIGJyb3dzZURlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoZGF0YS5zdGF0dXMgIT09IDIwMCkge1xuICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgIHJldHVybiB7IHJlZmVyZW5jZXM6IFtdIH07XG4gICAgICAgIH1cbiAgICAgICAgLy8gY29uc29sZS5sb2coXCJicm93c2UgZmV0Y2hlZCA6IFwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSB5aWVsZCBkYXRhLmpzb24oKTtcbiAgICAgICAgY29uc3QgcmVmZXJlbmNlcyA9IHJlc3BvbnNlLmJyb3dzZVJlc3VsdC5yZWZlcmVuY2VzIHx8IFtdO1xuICAgICAgICByZXR1cm4geyByZWZlcmVuY2VzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCB0ZW1wbGF0ZTEgPSB7XG4gICAgICAgIHJlZmVyZW5jZVR5cGVJZDogcmVzb2x2ZU5vZGVJZChcIkhhc0NoaWxkXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgdGVtcGxhdGUyID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJPcmdhbml6ZXNcIiksXG4gICAgICAgIGluY2x1ZGVTdWJ0eXBlczogdHJ1ZSxcbiAgICAgICAgYnJvd3NlRGlyZWN0aW9uOiBCcm93c2VEaXJlY3Rpb24uRm9yd2FyZCxcbiAgICAgICAgbm9kZUNsYXNzTWFzazogTm9kZUNsYXNzLlZhcmlhYmxlIHwgTm9kZUNsYXNzLk9iamVjdCB8IE5vZGVDbGFzcy5NZXRob2QsXG4gICAgICAgIC8vICBOb2RlQ2xhc3MuT2JqZWN0VHlwZSB8XG4gICAgICAgIC8vICBOb2RlQ2xhc3MuVmFyaWFibGVUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlJlZmVyZW5jZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuRGF0YVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuVmlldyxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBjb25zdCB3YWxrQmFja3dhcmQgPSAoX2EsIF9iKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2EsIF9iXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCB7IG5vZGVJZCwgcm9vdE5vZGVJZCwgaXNUeXBlIH0pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L3dhbGstYmFja3dhcmRgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgICAgICBub2RlSWQsXG4gICAgICAgICAgICAgICAgcm9vdE5vZGVJZCxcbiAgICAgICAgICAgICAgICBpc1R5cGUsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBqc29uID0gKHlpZWxkIGRhdGEuanNvbigpKTtcbiAgICAgICAgcmV0dXJuIGpzb24uYnJvd3NlUGF0aDtcbiAgICB9KTtcbiAgICBjb25zdCBpbnRlcm5hbFZlcmlmeSA9IChfYywgJGlucHV0RWxlbWVudF8xLCAkaW5mb18xKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCBbX2MsICRpbnB1dEVsZW1lbnRfMSwgJGluZm9fMV0sIHZvaWQgMCwgZnVuY3Rpb24qICh7IGVuZHBvaW50Tm9kZSwgZW5kcG9pbnQsIGJhc2VVcmwgfSwgJGlucHV0RWxlbWVudCwgJGluZm8pIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2NoZWNrTm9kZUlkYDtcbiAgICAgICAgY29uc3Qgbm9kZUlkID0gJGlucHV0RWxlbWVudC52YWwoKTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBzZXROb3RpZmljYXRpb24gPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZmljYXRpb24oXCIhIWZhaWx1cmUhIVwiICsgbm9kZUlkLCBcImZhaWx1cmVcIik7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBpZiAoanNvbi5zdGF0dXNDb2RlLm1hdGNoKC9Hb29kLykpIHtcbiAgICAgICAgICAgICAgICAvLyBkbyBzb21ldGhpbmdcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnZhbChqc29uLm5vZGVBZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICAkaW5wdXRFbGVtZW50LnRyaWdnZXIoXCJjaGFuZ2VcIik7XG4gICAgICAgICAgICAgICAgc2V0Tm90aWZpY2F0aW9uKFwiR29vZFwiLCBcIm9rXCIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJGlucHV0RWxlbWVudC52YWwoYCR7bm9kZUlkfWApO1xuICAgICAgICAgICAgICAgIHNldE5vdGlmaWNhdGlvbihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgdGVtcGxhdGVTVCA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiSGFzU3VidHlwZVwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8IE5vZGVDbGFzcy5PYmplY3RUeXBlIHwgTm9kZUNsYXNzLkRhdGFUeXBlIHwgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSxcbiAgICAgICAgcmVzdWx0TWFzazogNjMsXG4gICAgfTtcbiAgICBmdW5jdGlvbiBmZXRjaFN1YnR5cGVzKCRub2RlLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSAkbm9kZS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICBjb25zdCBicm93c2VSZXN1bHQxID0geWllbGQgYnJvd3NlKGRhdGEsIG5vZGVJZCwgdGVtcGxhdGVTVCk7XG4gICAgICAgICAgICByZXR1cm4gYnJvd3NlUmVzdWx0MTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ha2VFbGVtZW50JDEgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZDtcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UgfHwgIXJlZmVyZW5jZS5ub2RlSWQpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGNvbnN0IHQgPSAoKF9hID0gcmVmZXJlbmNlLmRpc3BsYXlOYW1lKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudGV4dCkgfHwgKChfYiA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubmFtZSkgfHwgcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gYCgke3JlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKX0pICR7KChfYyA9IHJlZmVyZW5jZS5icm93c2VOYW1lKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubmFtZSkgfHwgKChfZCA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kLnRleHQpIHx8IFwiXCJ9YDtcbiAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKGA8bGkga2V5PVwiJHtyZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCl9XCJ9PjxzcGFuIGNsYXNzPVwidHJlZS10ZXh0XCIgdGl0bGU9JHt0aXRsZX0+PGkgY2xhc3M9XCJmYSAke2ljb259XCIgc3R5bGU9XCJjb2xvcjoke2NvbG9yfTtcIj48L2k+ICR7dH08L3NwYW4+PHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoXCJleHBhbmRhYmxlXCIpO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwidmFsdWVcIiwgbik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgIH07XG4gICAgY29uc3QgZmluZEVsZW1lbnQgPSAobm9kZUlkLCAkdHJlZSkgPT4ge1xuICAgICAgICByZXR1cm4gJHRyZWUuZmluZChgbGlba2V5PVwiJHtub2RlSWR9XCJdYCk7XG4gICAgfTtcbiAgICBjb25zdCBzZWxlY3RTaW5nbGUgPSAodGhhdCwgJGxpKSA9PiB7XG4gICAgICAgIHRoYXQuJHRyZWUuZmluZChcImxpID4gLnRyZWUtdGV4dFwiKS5yZW1vdmVDbGFzcyhcInNlbGVjdGVkXCIpO1xuICAgICAgICAvLyBjbGVhciBhbGwgc2VsZWN0ZWQgaXRlbXNcbiAgICAgICAgJGxpLmZpbmQoXCIudHJlZS10ZXh0OmZpcnN0XCIpLmFkZENsYXNzKFwic2VsZWN0ZWRcIik7XG4gICAgfTtcbiAgICBjb25zdCBhdXRvRXhwYW5kID0gKHRoYXQsIGJyb3dzZVBhdGgsICR0cmVlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgLy8gZXhwYW5kIHRoZSB0cmVlIHRvIHNob3cgdGhlIG5vZGVJZFxuICAgICAgICBsZXQgJGN1cnJlbnQgPSAkdHJlZS5jaGlsZHJlbihcIjpmaXJzdFwiKTtcbiAgICAgICAgYnJvd3NlUGF0aC5yZWxhdGl2ZVBhdGguZWxlbWVudHMgfHwgW107XG4gICAgICAgIGNvbnN0IG5vZGVJZHMgPSBicm93c2VQYXRoLm5vZGVJZHMgfHwgW107XG4gICAgICAgIGlmIChub2RlSWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbiBvZiBub2RlSWRzKSB7XG4gICAgICAgICAgICBpZiAoJGN1cnJlbnQuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgLy8gbmVlZCB0byBleHBhbmQgYW5kIHNlbGVjdCB0aGUgcmlnaHQgZWxlbWVudFxuICAgICAgICAgICAgICAgIHlpZWxkIF9leHBhbmRMaSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IGZpbmRFbGVtZW50KG4sICRjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICgkZWxlbWVudC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkY3VycmVudCA9ICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkY3VycmVudCk7XG4gICAgICAgIHNjcm9sbFRvTGkodGhhdC4kZHJvcGRvd24sICRjdXJyZW50KTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBzY3JvbGxUb0xpKCRjb250YWluZXIsICR0YXJnZXRMaSkge1xuICAgICAgICAvLyBHZXQgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YXJnZXQgaXRlbSByZWxhdGl2ZSB0byBpdHMgY29udGFpbmVyXG4gICAgICAgIGNvbnN0IGxpUG9zID0gJHRhcmdldExpLnBvc2l0aW9uKCkudG9wO1xuICAgICAgICAvLyBHZXQgdGhlIGN1cnJlbnQgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBjb250YWluZXJcbiAgICAgICAgY29uc3QgY29udGFpbmVyU2Nyb2xsVG9wID0gJGNvbnRhaW5lci5zY3JvbGxUb3AoKTtcbiAgICAgICAgaWYgKGNvbnRhaW5lclNjcm9sbFRvcCA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHRvIHNjcm9sbCB0byAoY3VycmVudCBzY3JvbGwgKyBpdGVtJ3MgcG9zaXRpb24pXG4gICAgICAgIC8vIEFkanVzdCB0aGlzIGNhbGN1bGF0aW9uIGJhc2VkIG9uIHlvdXIgbmVlZHNcbiAgICAgICAgY29uc3Qgc2Nyb2xsVG8gPSBjb250YWluZXJTY3JvbGxUb3AgKyBsaVBvcyAtICRjb250YWluZXIuaGVpZ2h0KCkgLyAyICsgJHRhcmdldExpLmhlaWdodCgpIC8gMjtcbiAgICAgICAgLy8gU2Nyb2xsIHRoZSBjb250YWluZXIgdG8gZW5zdXJlIHRoZSBpdGVtIGlzIHZpc2libGVcbiAgICAgICAgJGNvbnRhaW5lci5hbmltYXRlKHtcbiAgICAgICAgICAgIHNjcm9sbFRvcDogc2Nyb2xsVG8sXG4gICAgICAgIH0sIDUwMCk7IC8vIEFkanVzdCB0aGUgZHVyYXRpb24gKDUwMG1zKSBhcyBuZWVkZWRcbiAgICB9XG4gICAgY29uc3QgcmVhY2hTZWxlY3Rpb24gPSAodGhhdCwgcGFyZW50Tm9kZSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9IHRoYXQuJGlucHV0LnZhbCgpO1xuICAgICAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgICAgICAgbm9kZUlkLFxuICAgICAgICAgICAgcm9vdE5vZGVJZDogcGFyZW50Tm9kZS5ub2RlSWQsXG4gICAgICAgICAgICBpc1R5cGU6IHRoYXQub3B0aW9ucy5pc1R5cGVSZWYgfHwgZmFsc2UsXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgY29uc3QgYnJvd3NlUGF0aCA9IHlpZWxkIHdhbGtCYWNrd2FyZChkYXRhLCBvcHRpb25zKTtcbiAgICAgICAgaWYgKCFicm93c2VQYXRoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgeWllbGQgYXV0b0V4cGFuZCh0aGF0LCBicm93c2VQYXRoLCB0aGF0LiR0cmVlKTtcbiAgICB9KTtcbiAgICBmdW5jdGlvbiBfZmV0Y2hEYXRhRm9yTm9kZSh0aGF0LCAkbm9kZSwgZmV0Y2hGdW5jLCBkYXRhKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJmZXRjaGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGZldGNoZWRcIik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCRub2RlLmhhc0NsYXNzKFwibG9hZGluZ1wiKSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYWxyZWFkeSBsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwibG9hZGluZ1wiKTtcbiAgICAgICAgICAgICRub2RlLmFwcGVuZCgnPGRpdiBjbGFzcz1cInNwaW5uZXJcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgJG5vZGUuY2hpbGRyZW4oXCJ1bFwiKS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgcmVmZXJlbmNlcyB9ID0geWllbGQgZmV0Y2hGdW5jKCRub2RlLCBkYXRhKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHJlZmVyZW5jZSBvZiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuZmlsdGVyICYmICF0aGF0Lm9wdGlvbnMuZmlsdGVyKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQkMShyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgZnVuY3Rpb24gbWFrZUNvbm5lY3Rpb24odGhhdCkge1xuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICBlbmRwb2ludE5vZGU6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG4gICAgZnVuY3Rpb24gX2V4cGFuZExpKHRoYXQsICRsaSkge1xuICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1ha2VDb25uZWN0aW9uKHRoYXQpO1xuICAgICAgICAgICAgY29uc3QgZiA9ICF0aGF0Lm9wdGlvbnMuaXNUeXBlUmVmID8gZmV0Y2hDaGlsZHJlbiA6IGZldGNoU3VidHlwZXM7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHlpZWxkIF9mZXRjaERhdGFGb3JOb2RlKHRoYXQsICRsaSwgZiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICRsaS5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnIpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLm5vZGVCcm93c2VyXCIsIHtcbiAgICAgICAgICAgIC8qIGRlZmF1bHQgb3B0aW9ucyAqL1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogKCkgPT4gKHsgZW5kcG9pbnQ6IFwib3BjLnRjcDovL29wY3VhZGVtby5zdGVyZml2ZS5jb206MjY1NDNcIiB9KSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludDogKCkgPT4gdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHBhcmVudE5vZGU6ICgpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIGJyb3dzZU5hbWU6IHsgbmFtZXNwYWNlSW5kZXg6IDAsIG5hbWU6IFwiT2JqZWN0c1wiIH0sXG4gICAgICAgICAgICAgICAgICAgIG5vZGVDbGFzczogXCJPYmplY3RcIixcbiAgICAgICAgICAgICAgICAgICAgbm9kZUlkOiBcIm5zPTA7aT04NVwiLFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZTogeyB0ZXh0OiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICB0eXBlRGVmaW5pdGlvbjogRm9sZGVyVHlwZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBmaWx0ZXI6ICgpID0+IHRydWUsXG4gICAgICAgICAgICAgICAgYmFzZVVybDogXCJcIixcbiAgICAgICAgICAgICAgICBpc1R5cGVSZWY6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc29sdmVQYXJlbnROb2RlKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoYXQuX19wYXJlbnROb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBhID0gdHlwZW9mIHRoYXQub3B0aW9ucy5wYXJlbnROb2RlID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZS5jYWxsKHRoYXQpIDogdGhhdC5vcHRpb25zLnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkZXNjID0geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGRlc2M7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGF0Ll9fcGFyZW50Tm9kZSA9IGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoYXQuX19wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHJlc2V0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICAvLyBhbHNvIHJlc2V0IHBhcmVudCBub2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0aGF0O1xuICAgICAgICAgICAgICAgICAgICBhLl9fcGFyZW50Tm9kZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnROb2RlID0geWllbGQgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9IG1ha2VFbGVtZW50JDEocGFyZW50Tm9kZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC5jdXJyZW50UGFyZW50ID0gcGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB2ZXJpZnkoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgLy8gRmV0Y2ggbmV3IGRhdGEgZm9yIHRoaXMgbm9kZVxuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBtYWtlQ29ubmVjdGlvbih0aGF0KTtcbiAgICAgICAgICAgICAgICBpbnRlcm5hbFZlcmlmeShkYXRhLCB0aGF0LiRpbnB1dCwgdGhhdC4kaW5mbyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dCA9IHRoaXMuZWxlbWVudDtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21ibyA9ICQoXCI8ZGl2Lz5cIik7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYWRkQ2xhc3MoXCJzdGVyZml2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRkcm9wZG93bi5pcyhcIjp2aXNpYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnROb2RlID0geWllbGQgdGhhdC5yZXNvbHZlUGFyZW50Tm9kZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZFRvUmVhY2hTZWxlY3Rpb24gPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24udG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZWVkVG9SZWFjaFNlbGVjdGlvbiAmJiAoeWllbGQgcmVhY2hTZWxlY3Rpb24odGhhdCwgcGFyZW50Tm9kZSkpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4gPSAkKGA8YnV0dG9uPjxpIGNsYXNzPVwiZmEgZmEtZmxhc2tcIj48L2k+PC9idXR0b24+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXRHcm91cC5hcHBlbmQodGhhdC4kdmVyaWZ5QnRuKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR2ZXJpZnlCdG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudmVyaWZ5KCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIsIFwiZW50ZXIgYSBub2RlSWQgb3IgYSBicm93c2VQYXRoIFwiKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mbyA9ICQoYDxkaXYgY2xhc3M9XCJpbmZvLXRleHRcIj48L2Rpdj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRkcm9wZG93biA9ICQoXCI8ZGl2Lz5cIikuYWRkQ2xhc3MoXCJzdGVyZml2ZS1kcm9wZG93blwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGluZm8pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZSA9ICQoYDx1bCBjbGFzcz1cInN0ZXJmaXZlLXRyZWVcIj48L3VsPmApLmFwcGVuZFRvKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbkxlZnRTaXplID0gKCRsaSwgZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkbGkub2Zmc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGUgPSBldmVudDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUucGFnZVggPj0gZWxlbWVudFBvcy5sZWZ0ICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VYIDw9IGVsZW1lbnRQb3MubGVmdCArIGJlZm9yZVdpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZID49IGVsZW1lbnRQb3MudG9wICYmXG4gICAgICAgICAgICAgICAgICAgICAgICBlLnBhZ2VZIDw9IGVsZW1lbnRQb3MudG9wICsgYmVmb3JlSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCB0b2dnbGVFeHBhbnNpb24gPSAoJGxpKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBfZXhwYW5kTGkodGhhdCwgJGxpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG9nZ2xlIGl0cyBleHBhbmRlZC9jb2xsYXBzZWQgc3RhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAkbGkudG9nZ2xlQ2xhc3MoXCJleHBhbmRhYmxlIGV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTd2FwIGV4cGFuZGFibGUgYW5kIGV4cGFuZGVkIGNsYXNzZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSA7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImRibGNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzT25MZWZ0U2l6ZSgkbGksIGV2ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdG9nZ2xlRXhwYW5zaW9uKCRsaSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9ICRsaS5kYXRhKFwidmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZlcmVuY2UgPSAkbGkuZGF0YShcInJlZmVyZW5jZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlICYmICF0aGF0Lm9wdGlvbnMuaXNTZWxlY3RhYmxlKHJlZmVyZW5jZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBkaXNwbGF5TmFtZSA9ICgoX2EgPSByZWZlcmVuY2UuZGlzcGxheU5hbWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50ZXh0KSB8fCAoKF9iID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5uYW1lKSB8fCByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IGBbJHtkaXNwbGF5TmFtZX1dKCR7dmFsdWV9KWA7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC52YWwoaW5wdXQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09uTGVmdFNpemUoJGxpLCBldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUV4cGFuc2lvbigkbGkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdFNpbmdsZSh0aGF0LCAkbGkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IG1ha2VFbGVtZW50ID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKCFyZWZlcmVuY2UpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPjxpIGNsYXNzPVwiZmEgZmEtZXJyb3JcIiBzdHlsZT1cImNvbG9yOnJlZDtcIj48L2k+bm8gcmVmZXJlbmNlICE8dWw+PC91bD48L2xpPmApO1xuICAgICAgICAgICAgcmV0dXJuICRlbGVtZW50O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG4gPSByZWZlcmVuY2Uubm9kZUlkLnRvU3RyaW5nKCk7XG4gICAgICAgIGxldCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgbGV0IG5zID0gKF9jID0gcmVmZXJlbmNlLmJyb3dzZU5hbWUpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5uYW1lc3BhY2VJbmRleDtcbiAgICAgICAgdCArPSBucyAhPT0gdW5kZWZpbmVkICYmIHJlZmVyZW5jZS5ub2RlQ2xhc3MubWF0Y2goL1R5cGUvKSA/IGAgKG5zPSR7bnN9KWAgOiBcIlwiO1xuICAgICAgICBjb25zdCB7IGljb24sIGNvbG9yIH0gPSBnZXRJY29uKHJlZmVyZW5jZSk7XG4gICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJChgPGxpPmApO1xuICAgICAgICBpZiAocmVmZXJlbmNlLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICBjb25zdCBjaGVja0JveCA9ICQoJzxzcGFuIGNsYXNzPVwiY3VzdG9tLWNoZWNrYm94IHVuY2hlY2tlZFwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgICRlbGVtZW50LmFwcGVuZChjaGVja0JveCk7XG4gICAgICAgICAgICAvLyBUb2dnbGUgY2hlY2tib3ggc3RhdGUgd2hlbiBjbGlja2VkXG4gICAgICAgICAgICBjaGVja0JveC5vbihcImNsaWNrXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2hlY2tCb3guaGFzQ2xhc3MoXCJ1bmNoZWNrZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJ1bmNoZWNrZWRcIikuYWRkQ2xhc3MoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tCb3gucmVtb3ZlQ2xhc3MoXCJjaGVja2VkXCIpLmFkZENsYXNzKFwidW5jaGVja2VkXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRlbGVtZW50LmFwcGVuZCgkKGA8aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4ke3R9PHVsPjwvdWw+YCkpO1xuICAgICAgICAkZWxlbWVudC5hZGRDbGFzcyhcImV4cGFuZGFibGVcIik7XG4gICAgICAgICRlbGVtZW50LmRhdGEoXCJ2YWx1ZVwiLCBuKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInJlZmVyZW5jZVwiLCByZWZlcmVuY2UpO1xuICAgICAgICByZXR1cm4gJGVsZW1lbnQ7XG4gICAgfTtcbiAgICBjb25zdCBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAvKipcbiAgICAgICAgICogWyBUZW1wZXJhdHVyZSAgXVxuICAgICAgICAgKiAgICggdG9vbHRpcCA6ICgvT2JqZWN0cy9NeVNlbnNvcikgKG5zPTE7cz1UZW1wZXJhdHVyZSkpXG4gICAgICAgICAqIFsgKyBbRm9sZGVyXSBPYmplY3RzXVxuICAgICAgICAgKiBbICAgICBbT2JqZWN0XSBNeVNlbnNvcl1cbiAgICAgICAgICogWyAgICAgKCApIFtWYXJpYWJsZV0gVGVtcGVyYXR1cmVdXG4gICAgICAgICAqL1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmV2ZW50RmllbGRTZWxlY3RvclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9wb3B1bGF0ZSgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEZpZWxkID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgLnZhbCgpKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EudG9TdHJpbmcoKS5zcGxpdChcIjtcIiApKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2VVcmw6IHRoYXQub3B0aW9ucy5iYXNlVXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0geWllbGQgZXh0cmFjdEV2ZW50RmllbGRJbmZvKGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdGVkRmllbGQpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsVHJlZShyZXN1bHQsIHNlbGVjdEZpZWxkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5lbXB0eSgpO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0LmV2ZW50cykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvb3QgPSByZXN1bHQuZXZlbnRzO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRyb290RWxlbWVudCA9IG1ha2VFbGVtZW50KHJvb3QpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUuYXBwZW5kKCRyb290RWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcHJlZml4ID0gXCJcIjtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbnN0YWxsQ2hpbGRyZW4oJHJvb3RFbGVtZW50LmNoaWxkcmVuKFwidWxcIiksIHJvb3QsIHByZWZpeCwgc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgICAgICRyb290RWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZXMoc2VsZWN0RmllbGQpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9pbnN0YWxsQ2hpbGRyZW4oJHBhcmVudCwgcGFyZW50LCBwcmVmaXgsIHNlbGVjdGVkRmllbGQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBiID0gKHsgbmFtZSwgbmFtZXNwYWNlSW5kZXggfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAobmFtZXNwYWNlSW5kZXggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBgJHtuYW1lc3BhY2VJbmRleH06JHtuYW1lfWA7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbiA9IHBhcmVudC5jaGlsZHJlbiB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJUeXBlcyA9IHBhcmVudC5zdWJUeXBlcyB8fCBbXTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZHJlbkFuZFN1YlR5cGVzID0gWy4uLmNoaWxkcmVuLCAuLi5zdWJUeXBlc107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjaGlsZHJlbkFuZFN1YlR5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gbWFrZUVsZW1lbnQoY2hpbGQpO1xuICAgICAgICAgICAgICAgICAgICAkcGFyZW50LmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcmVmaXgyID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocHJlZml4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4MiA9IHByZWZpeCArIFwiLlwiICsgYihjaGlsZC5icm93c2VOYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeDIgPSBiKGNoaWxkLmJyb3dzZU5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQuYXR0cihcImRhdGEtdmFsdWVcIiwgcHJlZml4Mik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaGFzQ2hpbGRyZW4gPSBjaGlsZC5jaGlsZHJlbiAmJiBjaGlsZC5jaGlsZHJlbi5sZW5ndGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGhhc1N1YlR5cGVzID0gY2hpbGQuc3ViVHlwZXMgJiYgY2hpbGQuc3ViVHlwZXMubGVuZ3RoO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc0NoaWxkcmVuICYmICFoYXNTdWJUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGVsZW1lbnQucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwibm8tZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2luc3RhbGxDaGlsZHJlbigkZWxlbWVudC5jaGlsZHJlbihcInVsXCIpLCBjaGlsZCwgcHJlZml4Miwgc2VsZWN0ZWRGaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWxlbWVudC5yZW1vdmVDbGFzcyhcImV4cGFuZGFibGVcIikuYWRkQ2xhc3MoXCJleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfdXBkYXRlU2VsZWN0ZWRGaWVsZHMoKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGRzID0gbmV3IFNldCgoX2EgPSB0aGF0LiRpbnB1dFxuICAgICAgICAgICAgICAgICAgICAudmFsKCkpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS50b1N0cmluZygpLnNwbGl0KFwiO1wiICkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX3VwZGF0ZVZhbHVlcyhzZWxlY3RlZEZpZWxkcykge1xuICAgICAgICAgICAgICAgICQoXCIuc3RlcmZpdmUtdHJlZSBsaVwiKS5lYWNoKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJHRoaXMgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gJHRoaXMuYXR0cihcImRhdGEtdmFsdWVcIik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHNlbGVjdGVkRmllbGRzLmhhcyh2KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMuY2hpbGRyZW4oXCJzcGFuLmN1c3RvbS1jaGVja2JveFwiKS5yZW1vdmVDbGFzcyhcInVuY2hlY2tlZFwiKS5hZGRDbGFzcyhcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfc2V0SW5wdXRWYWx1ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBsaXN0ID0gW107XG4gICAgICAgICAgICAgICAgLy8gY3Jhd2wgdGhlIHRyZWUgdG8gZmluZCBzZWxlY3RlZCBlbGVtZW50cyBhbmQgY3JlYXRlIGEgbGlzdCBvZiBCcm93c2VQYXRoXG4gICAgICAgICAgICAgICAgJChcIi5zdGVyZml2ZS10cmVlIGxpXCIpLmVhY2goZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkdGhpcyA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBlbGVtZW50IGlzIHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy5jaGlsZHJlbihcInNwYW4uY3VzdG9tLWNoZWNrYm94LmNoZWNrZWRcIikubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdiA9ICR0aGlzLmF0dHIoXCJkYXRhLXZhbHVlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdC5wdXNoKHYpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBbLi4ubmV3IFNldChsaXN0KV0uc29ydCgpLmpvaW4oXCI7XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbCh2YWx1ZSk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0ID0gdGhpcy5lbGVtZW50O1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvID0gJChcIjxkaXYvPlwiKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hZGRDbGFzcyhcInN0ZXJmaXZlLWNvbWJvLWJveFwiKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRbMF0ucGFyZW50RWxlbWVudC5yZXBsYWNlQ2hpbGQodGhhdC4kY29tYm9bMF0sIHRoaXMuZWxlbWVudFswXSk7XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbmZvLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgJGZsb2F0aW5nQnV0dG9ucy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvZmZzZXQgPSB0aGF0LiRkcm9wZG93bi5vZmZzZXQoKTsgLy8gR2V0IHRoZSB0b3AtbGVmdCBjb3JuZXIgcG9zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICRmbG9hdGluZ0J1dHRvbnMuY3NzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IGAke29mZnNldC50b3B9cHhgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBgY2FsYygxMDAlIC0gJHtvZmZzZXQubGVmdCArIHRoYXQuJGRyb3Bkb3duLndpZHRoKCl9cHgpYCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC5fcG9wdWxhdGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuX3VwZGF0ZVNlbGVjdGVkRmllbGRzKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmICghdGhhdC4kaW5wdXQuYXR0cihcInBsYWNlaG9sZGVyXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiLCBcImVudGVyIGEgbm9kZUlkIG9yIGEgYnJvd3NlUGF0aCBcIik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8gPSAkKGA8ZGl2IGNsYXNzPVwiaW5mby10ZXh0XCI+PC9kaXY+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5mby5oaWRlKCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24gPSAkKFwiPGRpdi8+XCIpLmFkZENsYXNzKFwic3RlcmZpdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0ICRzY3JvbGxhYmxlQ29udGVudCA9ICQoJzxkaXYgY2xhc3M9XCJzdGVyZml2ZS1kcm9wZG93bi1zY3JvbGxhYmxlLWNvbnRlbnRcIj48L2Rpdj4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCAkdmFsaWRhdGVCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cInZhbGlkYXRlLWJ1dHRvblwiPuKclDwvc3Bhbj4nKTsgLy8gVXNlIGFueSBpY29uIG9yIHRleHQgaGVyZVxuICAgICAgICAgICAgICAgIGNvbnN0ICRjYW5jZWxCdXR0b24gPSAkKCc8c3BhbiBjbGFzcz1cImNhbmNlbC1idXR0b25cIj7inJY8L3NwYW4+Jyk7IC8vIFVzZSBhbnkgaWNvbiBvciB0ZXh0IGhlcmVcbiAgICAgICAgICAgICAgICBjb25zdCAkZmxvYXRpbmdCdXR0b25zID0gJCgnPGRpdiBjbGFzcz1cImZsb2F0aW5nLWJ1dHRvbnNcIj48L2Rpdj4nKS5hcHBlbmQoJHZhbGlkYXRlQnV0dG9uLCAkY2FuY2VsQnV0dG9uKTtcbiAgICAgICAgICAgICAgICAkZmxvYXRpbmdCdXR0b25zLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAvLyBEZWZpbmUgeW91ciB2YWxpZGF0aW9uIGFuZCBjYW5jZWxsYXRpb24gbG9naWNcbiAgICAgICAgICAgICAgICAkdmFsaWRhdGVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuX3NldElucHV0VmFsdWUoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICRjYW5jZWxCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kaW5mbyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8uYXBwZW5kKHRoYXQuJGRyb3Bkb3duKTtcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlID0gJChgPHVsIGNsYXNzPVwic3RlcmZpdmUtdHJlZVwiPjwvdWw+YCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uZW1wdHkoKS5hcHBlbmQodGhhdC4kdHJlZSwgJGZsb2F0aW5nQnV0dG9ucyk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5vbihcImNsaWNrXCIsIFwibGlcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgJGxpID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlV2lkdGggPSAyMDsgLy8gU2V0IHdpZHRoIG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZUhlaWdodCA9IDIwOyAvLyBTZXQgaGVpZ2h0IG9mIHRoZSA6OmJlZm9yZSBjb250ZW50XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3MgPSAkKHRoaXMpLm9mZnNldCgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnBhZ2VYID49IGVsZW1lbnRQb3MubGVmdCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWCA8PSBlbGVtZW50UG9zLmxlZnQgKyBiZWZvcmVXaWR0aCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA+PSBlbGVtZW50UG9zLnRvcCAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgZS5wYWdlWSA8PSBlbGVtZW50UG9zLnRvcCArIGJlZm9yZUhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJjbGlja2VkIG9uIGljb25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNsaWNrZWQgb24gXCIsICRsaS5kYXRhKFwidmFsdWVcIiksICRsaS5hdHRyKFwiY2xhc3NcIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImV4cGFuZGFibGVcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLm9uKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNsaWNraW5nIG91dHNpZGUgdGhlIHBhZ2Ugd2lsbCBoaWRlIHRoZSBkcm9wZG93blxuICAgICAgICAgICAgICAgICAgICBpZiAoISQoZXZlbnQudGFyZ2V0KS5jbG9zZXN0KHRoYXQuJGNvbWJvKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVsYXRlKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuICAgIGNvbnN0IGV4dHJhY3RFdmVudEZpZWxkSW5mbyA9IChfYSkgPT4gX19hd2FpdGVyKHZvaWQgMCwgW19hXSwgdm9pZCAwLCBmdW5jdGlvbiogKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCwgfSkge1xuICAgICAgICBjb25zdCByb290ID0gYCR7YmFzZVVybH0vb3BjdWEtZW5kcG9pbnQyYDtcbiAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vZXh0cmFjdEV2ZW50VHlwZXNgO1xuICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICBlbmRwb2ludCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hpbmcgZmFpbGVkIHdpdGggZXJyb3JcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgICAgICByZXR1cm4geyBldmVudHM6IG51bGwgfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cztcbiAgICAgICAgcmV0dXJuIHsgZXZlbnRzIH07XG4gICAgfSk7XG5cbiAgICBjb25zdCBnZXRFbmRQb2ludEF0dHJpYnV0ZXMgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0ICRlbmRwb2ludCA9ICQoXCIjbm9kZS1pbnB1dC1lbmRwb2ludFwiKTtcbiAgICAgICAgY29uc3QgZW5kcG9pbnRJZCA9ICRlbmRwb2ludC52YWwoKTtcbiAgICAgICAgY29uc3QgcmVkTm9kZSA9IFJFRC5ub2Rlcy5ub2RlKGVuZHBvaW50SWQpO1xuICAgICAgICBpZiAoIXJlZE5vZGUpXG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICAvLyBjb25zdCBjcmVkZW50aWFscyA9IFJFRC4oZW5kcG9pbnRJZCk7XG4gICAgICAgIC8vIHdlIG5lZWQgdG8gc2FuaXRpemUgYW5kIGV4dHJhY3QgdGhlIGVuZHBvaW50IGF0dHJpYnV0ZXMgb25seSAoIG5vdCB0aGUgbm9kZS1yZWQgc3R1ZmYpXG4gICAgICAgIGNvbnN0IHsgZW5kcG9pbnQsIHNlY3VyaXR5TW9kZSwgc2VjdXJpdHlQb2xpY3ksIHVzZXJJZGVudGl0eVR5cGUsIGNyZWRlbnRpYWxzIH0gPSByZWROb2RlO1xuICAgICAgICBjb25zdCByZXRWYWx1ZSA9IHtcbiAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlLFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3ksXG4gICAgICAgICAgICB1c2VySWRlbnRpdHlUeXBlLFxuICAgICAgICAgICAgY3JlZGVudGlhbHMsXG4gICAgICAgIH07XG4gICAgICAgIC8vIHh4IGNvbnNvbGUubG9nKFwieHh4XCIsIHJldFZhbHVlKTtcbiAgICAgICAgcmV0dXJuIHJldFZhbHVlO1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzSGFuZGxlciA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzLFxuICAgICAgICB9O1xuICAgIH07XG4gICAgY29uc3QgZ2V0RW5kcG9pbnRQYXJhbWV0ZXJzID0gKCkgPT4ge1xuICAgICAgICBjb25zdCAkZW5kcG9pbnQgPSAkKFwiI25vZGUtaW5wdXQtZW5kcG9pbnRcIik7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50SWQgPSAkZW5kcG9pbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGVuZHBvaW50TnIgPSBnZXRFbmRQb2ludEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgaWYgKCFlbmRwb2ludE5yKSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDogZW5kcG9pbnRJZCxcbiAgICAgICAgICAgIC8vIGVuZHBvaW50OiBlbmRwb2ludE5yLmVuZHBvaW50LFxuICAgICAgICAgICAgLy8gc2VjdXJpdHlNb2RlOiBlbmRwb2ludE5yLnNlY3VyaXR5TW9kZSxcbiAgICAgICAgICAgIC8vIHNlY3VyaXR5UG9saWN5OiBlbmRwb2ludE5yLnNlY3VyaXR5UG9saWN5LFxuICAgICAgICAgICAgLy9cbiAgICAgICAgICAgIC8vIHVzZXJJZGVudGl0eVR5cGU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSxcbiAgICAgICAgICAgIC8vIGNyZWRlbnRpYWw6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMsXG4gICAgICAgICAgICAvL1xuICAgICAgICAgICAgLy8gdXNlck5hbWU6IGVuZHBvaW50TnIudXNlcklkZW50aXR5VHlwZSA9PT0gXCJVc2VyTmFtZVwiID8gZW5kcG9pbnROci5jcmVkZW50aWFscy51c2VyTmFtZSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIC8vIHBhc3N3b3JkOiBlbmRwb2ludE5yLnVzZXJJZGVudGl0eVR5cGUgPT09IFwiVXNlck5hbWVcIiA/IGVuZHBvaW50TnIuY3JlZGVudGlhbHMucGFzc3dvcmQgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAvLyB1c2VyQ2VydGlmaWNhdGU6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlckNlcnRpZmljYXRlLFxuICAgICAgICAgICAgLy8gdXNlclByaXZhdGVrZXk6IGVuZHBvaW50TnIuY3JlZGVudGlhbHMudXNlclByaXZhdGVrZXksXG4gICAgICAgIH07XG4gICAgfTtcblxuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1DbGllbnQyLU1vbml0b3JFdmVudFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCJvcGN1YWxvZ29iaWcucG5nXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJtb25pdG9yIGV2ZW50c1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgc3Vic2NyaXB0aW9uOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWwpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbCA9PT0gXCJcIilcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdGFydEltbWVkaWF0ZWx5OiB7IHZhbHVlOiB0cnVlLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgLy8gd2UgdXNlIGEgZGlmZmVyZW50IHdpZGdldCBmb3IgZWRpdGluZyB0aGUgbm9kZUlkLCBiZWNhdXNlIHRoZSBiZWhhdmlvclxuICAgICAgICAgICAgLy8gaXMgc3BlY2lmaWMgdG8gbW9uaXRvciwgaG93ZXZlciBwcm9wZXJ0eSB3aWxsIGJlIHN0b3JlZCBpbiBub2RlSWRcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlLCB2YWxpZGF0ZTogKCkgPT4gdHJ1ZSB9LFxuICAgICAgICAgICAgc2FtcGxpbmdJbnRlcnZhbDogeyB2YWx1ZTogMTAwMCwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIGRpc2NhcmRPbGRlc3Q6IHsgdmFsdWU6IHRydWUsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBxdWV1ZVNpemU6IHsgdmFsdWU6IDEwLCByZXF1aXJlZDogdHJ1ZSB9LFxuICAgICAgICAgICAgc2VsZWN0Q2xhdXNlczogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIHdoZXJlQ2xhdXNlOiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gaW5wdXRzOixcbiAgICAgICAgb3V0cHV0czogMiwgLy8gMiBvdXRwdXQsIHNlY29uZCBmb3IgcmF3IG5vZGUtb3BjdWEgZGlhZ25vc3RpY3Mgb3IgbW9yZSBjb21wbGV0ZSBtZXNzYWdlXG4gICAgICAgIGxhYmVsKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCBcIk9QQ1VBIE1vbml0b3JcIjtcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWxTdHlsZSgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgPyBcIm5vZGVfbGFiZWxfaXRhbGljXCIgOiBcIlwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBkZWNsYXJlRXZlbnRGaWVsZFNlbGVjdG9yV2lkZ2V0KCk7XG4gICAgICAgICAgICBpbnN0YWxsU3Vic2NyaXB0aW9uU2VsZWN0b3IoUkVELCB0aGlzKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3IgQ29tbW9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gLS0gaW5zdGFsbCBzdWJzY3JpcHRpb24gc2VsZWN0aW9uXG4gICAgICAgICAgICAkKFwibm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGVja2VkID0gJChcIiNub2RlLWlucHV0LXN0YXJ0SW1tZWRpYXRlbHlcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWlucHV0LWlucHV0c1wiKS52YWwoMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtaW5wdXRzXCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgQWN0aW9uIE1vbml0b3JcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBnZXRFbmRwb2ludFBhcmFtZXRlcnNIYW5kbGVyKCkpLCB7IGZpbHRlcihub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIk9iamVjdFwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaXNTZWxlY3RhYmxlKG5vZGVEZXNjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBub2RlRGVzYy5ub2RlQ2xhc3MgPT09IFwiT2JqZWN0XCIgLyogdG8gZG8gfHwgbm9kZURlc2MuZXZlbnROb3RpZmllciA9PT0gMSAqLztcbiAgICAgICAgICAgICAgICB9IH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLSBpbnN0YWxsIGV2ZW50IGZpZWxkIHNlbGVjdG9yXG4gICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtd2hlcmVDbGF1c2VcIik7XG4gICAgICAgICAgICBjb25zdCAkc2VsZWN0Q2xhdXNlcyA9ICQoXCIjbm9kZS1pbnB1dC1zZWxlY3RDbGF1c2VzXCIpO1xuICAgICAgICAgICAgJHNlbGVjdENsYXVzZXMuZXZlbnRGaWVsZFNlbGVjdG9yKE9iamVjdC5hc3NpZ24oe30sIGdldEVuZHBvaW50UGFyYW1ldGVyc0hhbmRsZXIoKSkpO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3Qgc3RhcnRJbW1lZGlhdGVseSA9ICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0SW1tZWRpYXRlbHkpIHtcbiAgICAgICAgICAgICAgICAkKFwiI25vZGUtaW5wdXQtc3RhcnRJbW1lZGlhdGVseVwiKS52YWwoc3RhcnRJbW1lZGlhdGVseSA/IDAgOiAxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IHN0YXJ0SW1tZWRpYXRlbHkgPyAwIDogMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICQoXCIjbm9kZS1pbnB1dC1zdGFydEltbWVkaWF0ZWx5XCIpLnZhbCgxKTtcbiAgICAgICAgICAgICAgICB0aGlzLmlucHV0cyA9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
|
9
9
|
</script>
|
10
10
|
<script type="text/x-red" data-template-name="OpcUa-Client2-MonitorEvent">
|
11
11
|
<style>
|