@opcua/for-node-red 2.0.4 → 2.0.6

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.
@@ -0,0 +1,50 @@
1
+ <style>
2
+ .sterfve-combo-box{position:relative;width:100%}.sterfve-combo-box .sterfve-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfve-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-left:15px}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfve-combo-box .sterfve-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
3
+ /*# sourceMappingURL=OpcUa-Client2-Read.css.map */
4
+ </style>
5
+
6
+ <script type="text/javascript">
7
+ function _0x13cb(){const _0x2d4cae=['fa-cog',':visible','Invalid','sterfive-info','<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>','done','POST','referenceTypeId','ns=0;i=85','data','<ul></ul></li>','i=35','<div\x20class=\x22info-text\x22></div>','3773508wggNJm','options','HasChild','appendTo','closest','remove','loading',';\x22></i>\x20','1194956zpmNqh','fetched','DataType','$toggleTreeBtn','references','already\x20loading','expandable\x20expanded','baseUrl','/browse','!!failure!!','Object','ReferenceType','Inverse','SuppressedError','toggleClass','Value','</li>','suppressed','Forward','typeDefinition','hasClass','$inputGroup','fa-sliders','filter','failure','nodeBrowser','removeClass','$input','endpointNode','statusCode','OPCUA\x20Client\x20Read','3451570INJJHN','expandable','length','next','HasComponent','reference','1667944hpvhWR','click','already\x20fetched','resolveParentNode','browseName','View','11249586oxpuwf','throw','enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20','left','ns=0;i=46','159172LuaKEg','OpcUa-Endpoint2','VariableType','OpcUa-Client2-Read','registerType','fa-list-alt','<li><i\x20class=\x22fa\x20','append','fechting\x20failed\x20with\x20error','then','.spinner','<div\x20class=\x22spinner\x22></div>','/opcua-endpoint2','<div/>','attr','Unspecified','trigger','children','element','$tree','pageX','fa-object-group','endpoint','SandyBrown','val','14yCKnJh','i=61','ObjectType','application/json','json','DarkOrange','expanded','rgba(61,\x2060,\x204,\x200.525)','toString','toggle','status','stopPropagation','addClass','pageY','grey','show','match','$combo','node_label_italic','value','$info','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','change','ns=0;i=61','isSelectable','fa-folder','nodeClass','parentNode','/checkNodeId','Method','Organizes','error','text','Variable','right','browseResult','nodeId','230500YXfFHj','apply','input-group','hide','top','currentParent','log','ns=0;i=35','function','opc.tcp://opcuademo.sterfive.com:26543','SteelBlue','placeholder','<li>error\x20','$verifyBtn','target','stringify','displayName','sterfve-combo-box','assign','reset','fetched\x20:\x20','inputs','CadetBlue','3TPXDTK','find','$dropdown','name','statusText','empty','Objects','sterfve-dropdown','#C0DEED','message'];_0x13cb=function(){return _0x2d4cae;};return _0x13cb();}function _0xed05(_0x5666aa,_0x3d3b42){const _0x13cba2=_0x13cb();return _0xed05=function(_0xed05db,_0x240a5f){_0xed05db=_0xed05db-0xa7;let _0x16af2f=_0x13cba2[_0xed05db];return _0x16af2f;},_0xed05(_0x5666aa,_0x3d3b42);}(function(_0x23483e,_0x486278){const _0x1acd39=_0xed05,_0x2e3c7a=_0x23483e();while(!![]){try{const _0x3597a1=parseInt(_0x1acd39(0xd2))/0x1+-parseInt(_0x1acd39(0x108))/0x2+-parseInt(_0x1acd39(0xe9))/0x3*(parseInt(_0x1acd39(0x138))/0x4)+parseInt(_0x1acd39(0x127))/0x5+-parseInt(_0x1acd39(0x100))/0x6+-parseInt(_0x1acd39(0xad))/0x7*(parseInt(_0x1acd39(0x12d))/0x8)+parseInt(_0x1acd39(0x133))/0x9;if(_0x3597a1===_0x486278)break;else _0x2e3c7a['push'](_0x2e3c7a['shift']());}catch(_0x2796bf){_0x2e3c7a['push'](_0x2e3c7a['shift']());}}}(_0x13cb,0x770a9),(function(){'use strict';const _0x158733=_0xed05;function _0x439465(_0xa751ef,_0x434e7c,_0x22f001,_0x224c84){function _0x38a3dd(_0x2e56f7){return _0x2e56f7 instanceof _0x22f001?_0x2e56f7:new _0x22f001(function(_0x597fa1){_0x597fa1(_0x2e56f7);});}return new(_0x22f001||(_0x22f001=Promise))(function(_0x295f78,_0x2b32c8){const _0x2986f2=_0xed05;function _0x1173e9(_0x17b5d7){try{_0x4167f7(_0x224c84['next'](_0x17b5d7));}catch(_0x1da6ad){_0x2b32c8(_0x1da6ad);}}function _0x2f8205(_0x21fee2){const _0xfb81f3=_0xed05;try{_0x4167f7(_0x224c84[_0xfb81f3(0x134)](_0x21fee2));}catch(_0x4f4c9e){_0x2b32c8(_0x4f4c9e);}}function _0x4167f7(_0xe08659){const _0x452d1f=_0xed05;_0xe08659[_0x452d1f(0xf8)]?_0x295f78(_0xe08659[_0x452d1f(0xc0)]):_0x38a3dd(_0xe08659[_0x452d1f(0xc0)])[_0x452d1f(0x141)](_0x1173e9,_0x2f8205);}_0x4167f7((_0x224c84=_0x224c84[_0x2986f2(0xd3)](_0xa751ef,_0x434e7c||[]))[_0x2986f2(0x12a)]());});}typeof SuppressedError===_0x158733(0xda)?SuppressedError:function(_0x388b99,_0x43b5b1,_0x25ae80){const _0x2f021c=_0x158733;var _0x430f3c=new Error(_0x25ae80);return _0x430f3c[_0x2f021c(0xec)]=_0x2f021c(0x115),_0x430f3c[_0x2f021c(0xcc)]=_0x388b99,_0x430f3c[_0x2f021c(0x119)]=_0x43b5b1,_0x430f3c;};var _0x10dfde;(function(_0x468361){const _0x4d772a=_0x158733;_0x468361[_0x468361[_0x4d772a(0x11a)]=0x0]='Forward',_0x468361[_0x468361[_0x4d772a(0x114)]=0x1]=_0x4d772a(0x114),_0x468361[_0x468361['Both']=0x2]='Both',_0x468361[_0x468361[_0x4d772a(0xf5)]=0x3]=_0x4d772a(0xf5);}(_0x10dfde||(_0x10dfde={})));var _0x367d1e;(function(_0x454bcc){const _0x294a01=_0x158733;_0x454bcc[_0x454bcc[_0x294a01(0x147)]=0x0]=_0x294a01(0x147),_0x454bcc[_0x454bcc[_0x294a01(0x112)]=0x1]='Object',_0x454bcc[_0x454bcc['Variable']=0x2]=_0x294a01(0xce),_0x454bcc[_0x454bcc[_0x294a01(0xca)]=0x4]=_0x294a01(0xca),_0x454bcc[_0x454bcc['ObjectType']=0x8]='ObjectType',_0x454bcc[_0x454bcc[_0x294a01(0x13a)]=0x10]=_0x294a01(0x13a),_0x454bcc[_0x454bcc[_0x294a01(0x113)]=0x20]=_0x294a01(0x113),_0x454bcc[_0x454bcc[_0x294a01(0x10a)]=0x40]=_0x294a01(0x10a),_0x454bcc[_0x454bcc[_0x294a01(0x132)]=0x80]=_0x294a01(0x132);}(_0x367d1e||(_0x367d1e={})));function _0x50ce65(_0xc7da7f){const _0x34e43e=_0x158733;switch(_0xc7da7f){case _0x34e43e(0xcb):return _0x34e43e(0xfe);case _0x34e43e(0x12b):return'i=47';case _0x34e43e(0x102):return'i=34';}}const _0x5b676b=_0x158733(0xd9),_0x19a076=_0x158733(0xc4),_0x3cb008='ns=0;i=47',_0x1f0683=_0x158733(0x137),_0x16a7d2=_0x9306db=>{const _0x5fa3b6=_0x158733;switch(_0x9306db[_0x5fa3b6(0xc7)]){case _0x5fa3b6(0x112):if(_0x9306db['referenceTypeId']===_0x5b676b);if(_0x9306db[_0x5fa3b6(0x11b)]===_0x19a076||_0x9306db[_0x5fa3b6(0xfa)]===_0x5fa3b6(0xae))return{'icon':_0x5fa3b6(0xc6),'color':_0x5fa3b6(0xb4)};return{'icon':_0x5fa3b6(0xa9),'color':'SeaGreen'};case _0x5fa3b6(0xce):if(_0x9306db['referenceTypeId']===_0x3cb008)return{'icon':_0x5fa3b6(0x13d),'color':_0x5fa3b6(0xdc)};else return _0x9306db[_0x5fa3b6(0xfa)]===_0x1f0683?{'icon':_0x5fa3b6(0x13d),'color':'DodgerBlue'}:{'icon':_0x5fa3b6(0x13d),'color':_0x5fa3b6(0xe8)};case'Method':return{'icon':_0x5fa3b6(0xf3),'color':_0x5fa3b6(0xab)};case _0x5fa3b6(0xaf):return{'icon':_0x5fa3b6(0xa9),'color':'DarkOrange'};case _0x5fa3b6(0x13a):return{'icon':_0x5fa3b6(0x11e),'color':_0x5fa3b6(0xb2)};}return{'icon':'fa-question','color':_0x5fa3b6(0xbb)};},_0x5f1d6f=({endpointNode:_0x27f2fa,endpoint:_0x43fd38,baseUrl:_0x65d781},_0x142313,_0x52d139)=>_0x439465(void 0x0,void 0x0,void 0x0,function*(){const _0x25b5cc=_0x158733,_0x427de4=_0x65d781+'/opcua-endpoint2',_0x523e16=_0x427de4+_0x25b5cc(0x110),_0x2d890e=Object[_0x25b5cc(0xe4)](Object['assign']({},_0x52d139),{'nodeId':_0x142313,'resultMask':0x3f}),_0x728bc4=yield fetch(_0x523e16,{'method':_0x25b5cc(0xf9),'body':JSON['stringify']({'endpointNode':_0x27f2fa,'endpoint':_0x43fd38,'browseDescription':_0x2d890e}),'headers':{'Content-Type':'application/json'}});if(_0x728bc4[_0x25b5cc(0xb7)]!==0xc8)return console['log'](_0x25b5cc(0x140),_0x728bc4[_0x25b5cc(0xb7)],_0x728bc4['statusText']),{'references':[]};console[_0x25b5cc(0xd8)](_0x25b5cc(0xe6),_0x728bc4['status'],_0x728bc4['statusText']);const _0x3a47dd=yield _0x728bc4[_0x25b5cc(0xb1)](),_0x413ad9=_0x3a47dd[_0x25b5cc(0xd0)][_0x25b5cc(0x10c)]||[];return{'references':_0x413ad9};}),_0x486791={'referenceTypeId':_0x50ce65(_0x158733(0x102)),'includeSubtypes':!![],'browseDirection':_0x10dfde[_0x158733(0x11a)],'nodeClassMask':_0x367d1e[_0x158733(0xce)]|_0x367d1e[_0x158733(0x112)]|_0x367d1e[_0x158733(0xca)],'resultMask':0x3f},_0x1c75d3={'referenceTypeId':_0x50ce65(_0x158733(0xcb)),'includeSubtypes':!![],'browseDirection':_0x10dfde[_0x158733(0x11a)],'nodeClassMask':_0x367d1e[_0x158733(0xce)]|_0x367d1e['Object']|_0x367d1e[_0x158733(0xca)],'resultMask':0x3f},_0x4de674=({endpointNode:_0x577b8d,endpoint:_0x164de6,baseUrl:_0x442b1d},_0x56e79e,_0xb5a98f)=>_0x439465(void 0x0,void 0x0,void 0x0,function*(){const _0xc6a54=_0x158733,_0x5a7703=_0x442b1d+_0xc6a54(0x144),_0x551704=_0x56e79e['val'](),_0x52bbe3=yield fetch(_0x5a7703+_0xc6a54(0xc9),{'method':'POST','body':JSON[_0xc6a54(0xe1)]({'endpointNode':_0x577b8d,'endpoint':_0x164de6,'nodeId':_0x551704}),'headers':{'Content-Type':_0xc6a54(0xb0)}}),_0x52e3a9=(_0x2ec1dd,_0x221375)=>{const _0x2f4373=_0xc6a54;_0xb5a98f[_0x2f4373(0xcd)](_0x2ec1dd)[_0x2f4373(0xb9)](_0x2f4373(0xf6))[_0x2f4373(0xb9)](_0x221375),_0xb5a98f[_0x2f4373(0xbc)](),setTimeout(()=>{const _0x270a16=_0x2f4373;_0xb5a98f[_0x270a16(0x122)](_0x221375),_0xb5a98f[_0x270a16(0xd5)]();},0xbb8);},_0x402d34=yield _0x52bbe3[_0xc6a54(0xb1)]();_0x52bbe3[_0xc6a54(0xb7)]!==0xc8?_0x52e3a9(_0xc6a54(0x111)+_0x551704,_0xc6a54(0x120)):_0x402d34['statusCode'][_0xc6a54(0xbd)](/Good/)?(_0x56e79e[_0xc6a54(0xac)](_0x402d34['nodeAddressString']),_0x56e79e[_0xc6a54(0x148)](_0xc6a54(0xc3)),_0x52e3a9('Good','ok')):(_0x56e79e[_0xc6a54(0xac)](''+_0x551704),_0x52e3a9(_0x402d34[_0xc6a54(0x125)]+'\x20'+_0x52bbe3[_0xc6a54(0xed)],_0xc6a54(0x120)));});function _0x1eeb11(_0x691941,_0x32771b){return _0x439465(this,void 0x0,void 0x0,function*(){const _0x2f66f8=_0xed05,_0x3a543b=_0x691941[_0x2f66f8(0xfc)](_0x2f66f8(0xc0)),_0x1c4ca9=yield _0x5f1d6f(_0x32771b,_0x3a543b,_0x486791),_0x2cda69=yield _0x5f1d6f(_0x32771b,_0x3a543b,_0x1c75d3);return{'references':[..._0x1c4ca9[_0x2f66f8(0x10c)],..._0x2cda69['references']]};});}const _0x33de54=_0x1a3f52=>{const _0x1f806a=_0x158733;var _0x3405e3,_0x5f0582;if(!_0x1a3f52){const _0x386dc8=$('<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>');return _0x386dc8;}const _0x440cb4=_0x1a3f52[_0x1f806a(0xd1)][_0x1f806a(0xb5)](),_0x1dcc94=((_0x3405e3=_0x1a3f52[_0x1f806a(0xe2)])===null||_0x3405e3===void 0x0?void 0x0:_0x3405e3[_0x1f806a(0xcd)])||((_0x5f0582=_0x1a3f52[_0x1f806a(0x131)])===null||_0x5f0582===void 0x0?void 0x0:_0x5f0582['name'])||_0x1a3f52[_0x1f806a(0xd1)]['toString'](),{icon:_0x5b07d5,color:_0x5a209d}=_0x16a7d2(_0x1a3f52),_0x19eb11=$(_0x1f806a(0x13e)+_0x5b07d5+'\x22\x20style=\x22color:'+_0x5a209d+_0x1f806a(0x107)+_0x1dcc94+_0x1f806a(0xfd));return _0x19eb11[_0x1f806a(0xb9)]('expandable'),_0x19eb11[_0x1f806a(0xfc)]('value',_0x440cb4),_0x19eb11[_0x1f806a(0xfc)](_0x1f806a(0x12c),_0x1a3f52),_0x19eb11;},_0x3295f5=()=>{const _0x483fbf=_0x158733;$['widget']('sterfive.nodeBrowser',{'options':{'endpointNode':()=>({'endpoint':_0x483fbf(0xdb)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x483fbf(0xef)},'nodeClass':_0x483fbf(0x112),'nodeId':_0x483fbf(0xfb),'displayName':{'text':_0x483fbf(0xef)},'typeDefinition':_0x19a076}),'filter':()=>!![],'baseUrl':''},'resolveParentNode'(){return _0x439465(this,void 0x0,void 0x0,function*(){const _0x722729=_0xed05,_0x55718d=this,_0xd765c3=typeof _0x55718d[_0x722729(0x101)][_0x722729(0xc8)]===_0x722729(0xda)?_0x55718d['options'][_0x722729(0xc8)]():_0x55718d[_0x722729(0x101)][_0x722729(0xc8)];if(_0xd765c3 instanceof Promise)return yield _0xd765c3;return _0xd765c3;});},'reset'(){const _0x51309a=_0x483fbf,_0xf1ee24=this;_0xf1ee24[_0x51309a(0xa7)][_0x51309a(0xee)](),this[_0x51309a(0x130)]()[_0x51309a(0x141)](_0x5136c2=>{const _0x3cac69=_0x51309a,_0x3cfad5=_0x33de54(_0x5136c2);_0xf1ee24[_0x3cac69(0xa7)][_0x3cac69(0x13f)](_0x3cfad5),_0xf1ee24[_0x3cac69(0xd7)]=_0x5136c2;});},'verify'(){const _0x428bad=_0x483fbf,_0x2d9930=this,_0x11fc48={'baseUrl':_0x2d9930['options'][_0x428bad(0x10f)],'endpointNode':typeof _0x2d9930[_0x428bad(0x101)][_0x428bad(0x124)]===_0x428bad(0xda)?_0x2d9930[_0x428bad(0x101)]['endpointNode']():_0x2d9930[_0x428bad(0x101)]['endpointNode'],'endpoint':typeof _0x2d9930[_0x428bad(0x101)][_0x428bad(0xaa)]===_0x428bad(0xda)?_0x2d9930[_0x428bad(0x101)]['endpoint']():_0x2d9930['options'][_0x428bad(0xaa)]};_0x4de674(_0x11fc48,_0x2d9930[_0x428bad(0x123)],_0x2d9930[_0x428bad(0xc1)]);},'_create'(){const _0x175064=_0x483fbf,_0x2201d4=this;function _0x549969(_0x1301d3,_0x42f781,_0x408f26){return _0x439465(this,void 0x0,void 0x0,function*(){const _0x32573c=_0xed05;if(_0x1301d3['hasClass']('fetched')){console[_0x32573c(0xd8)](_0x32573c(0x12f));return;}if(_0x1301d3[_0x32573c(0x11c)](_0x32573c(0x106))){console['log'](_0x32573c(0x10d));return;}_0x1301d3[_0x32573c(0xb9)](_0x32573c(0x106)),_0x1301d3[_0x32573c(0x13f)](_0x32573c(0x143));try{_0x1301d3[_0x32573c(0x149)]('ul')[_0x32573c(0xee)]();const {references:_0x4e2bfe}=yield _0x42f781(_0x1301d3,_0x408f26);for(const _0x503b09 of _0x4e2bfe){if(_0x2201d4[_0x32573c(0x101)][_0x32573c(0x11f)]&&!_0x2201d4[_0x32573c(0x101)]['filter'](_0x503b09))continue;const _0x21f31b=_0x33de54(_0x503b09);_0x1301d3['children']('ul')[_0x32573c(0x13f)](_0x21f31b);}_0x1301d3[_0x32573c(0xb9)]('fetched');}catch(_0x5379b4){_0x1301d3[_0x32573c(0x149)]('ul')[_0x32573c(0x13f)](_0x32573c(0xde)+_0x5379b4[_0x32573c(0xf2)]+_0x32573c(0x118)),console['log']('err',_0x5379b4);}_0x1301d3[_0x32573c(0xea)](_0x32573c(0x142))[_0x32573c(0x105)](),_0x1301d3[_0x32573c(0x122)](_0x32573c(0x106));});}_0x2201d4[_0x175064(0x123)]=this[_0x175064(0x14a)],_0x2201d4['$combo']=$(_0x175064(0x145)),_0x2201d4[_0x175064(0xbe)]['addClass'](_0x175064(0xe3)),this[_0x175064(0x14a)]['replaceWith'](_0x2201d4[_0x175064(0xbe)]),_0x2201d4[_0x175064(0x11d)]=$(_0x175064(0x145))['addClass'](_0x175064(0xd4)),_0x2201d4['$combo'][_0x175064(0x13f)](_0x2201d4['$inputGroup']),_0x2201d4[_0x175064(0x11d)][_0x175064(0x13f)](_0x2201d4[_0x175064(0x123)]),_0x2201d4['$toggleTreeBtn']=$(_0x175064(0xc2)),_0x2201d4['$inputGroup'][_0x175064(0x13f)](_0x2201d4[_0x175064(0x10b)]),_0x2201d4[_0x175064(0x10b)]['on'](_0x175064(0x12e),function(){const _0x5e9885=_0x175064;!_0x2201d4[_0x5e9885(0xeb)]['is'](_0x5e9885(0xf4))&&(_0x2201d4[_0x5e9885(0x130)]()[_0x5e9885(0x141)](_0x229851=>{const _0x89d320=_0x5e9885;var _0xd5517;(_0x229851!==_0x2201d4[_0x89d320(0xd7)]||((_0xd5517=_0x2201d4['currentParent'])===null||_0xd5517===void 0x0?void 0x0:_0xd5517[_0x89d320(0xd1)])!==_0x229851[_0x89d320(0xd1)])&&_0x2201d4[_0x89d320(0xe5)]();}),_0x2201d4[_0x5e9885(0xc1)][_0x5e9885(0xd5)]()),_0x2201d4[_0x5e9885(0xeb)][_0x5e9885(0xb6)]();}),_0x2201d4[_0x175064(0xdf)]=$(_0x175064(0xf7)),_0x2201d4[_0x175064(0x11d)][_0x175064(0x13f)](_0x2201d4['$verifyBtn']),_0x2201d4['$verifyBtn']['on']('click',()=>{this['verify']();}),!_0x2201d4['$input'][_0x175064(0x146)](_0x175064(0xdd))&&_0x2201d4[_0x175064(0x123)][_0x175064(0x146)](_0x175064(0xdd),_0x175064(0x135)),_0x2201d4[_0x175064(0xc1)]=$(_0x175064(0xff)),_0x2201d4[_0x175064(0xc1)][_0x175064(0xd5)](),{'baseUrl':_0x2201d4[_0x175064(0x101)]['baseUrl'],'endpointNode':typeof _0x2201d4['options'][_0x175064(0x124)]===_0x175064(0xda)?_0x2201d4['options'][_0x175064(0x124)]():_0x2201d4['options']['endpointNode'],'endpoint':typeof _0x2201d4[_0x175064(0x101)][_0x175064(0xaa)]===_0x175064(0xda)?_0x2201d4[_0x175064(0x101)][_0x175064(0xaa)]():_0x2201d4[_0x175064(0x101)][_0x175064(0xaa)]},_0x2201d4['$dropdown']=$('<div/>')[_0x175064(0xb9)](_0x175064(0xf0))[_0x175064(0xd5)](),_0x2201d4['$combo'][_0x175064(0x13f)](_0x2201d4['$info']),_0x2201d4[_0x175064(0xbe)][_0x175064(0x13f)](_0x2201d4['$dropdown']),_0x2201d4[_0x175064(0xa7)]=$('<ul\x20class=\x22sterfive-tree\x22></ul>')[_0x175064(0x103)](_0x2201d4[_0x175064(0xeb)]),this['reset'](),_0x2201d4[_0x175064(0xa7)]['on'](_0x175064(0x12e),'li',function(_0x9636c9){const _0x28aa8a=_0x175064;var _0xbb0a72,_0x399028;_0x9636c9[_0x28aa8a(0xb8)]();let _0x1e18f6=$(this);const _0x1e4e9b=0x14,_0x30cfc1=0x14,_0x276a20=$(this)['offset'](),_0x178386=_0x9636c9;if(_0x178386[_0x28aa8a(0xa8)]>=_0x276a20[_0x28aa8a(0x136)]&&_0x178386[_0x28aa8a(0xa8)]<=_0x276a20['left']+_0x1e4e9b&&_0x178386[_0x28aa8a(0xba)]>=_0x276a20['top']&&_0x178386[_0x28aa8a(0xba)]<=_0x276a20[_0x28aa8a(0xd6)]+_0x30cfc1){if(_0x1e18f6[_0x28aa8a(0x11c)](_0x28aa8a(0x128))){if(_0x1e18f6[_0x28aa8a(0x11c)]('fetched')){_0x1e18f6[_0x28aa8a(0x122)](_0x28aa8a(0x128))['addClass'](_0x28aa8a(0xb3)),_0x1e18f6['children']('ul')[_0x28aa8a(0xb6)]();return;}const _0x767cd8={'baseUrl':_0x2201d4[_0x28aa8a(0x101)][_0x28aa8a(0x10f)],'endpointNode':typeof _0x2201d4[_0x28aa8a(0x101)][_0x28aa8a(0x124)]==='function'?_0x2201d4[_0x28aa8a(0x101)]['endpointNode']():_0x2201d4['options'][_0x28aa8a(0x124)],'endpoint':typeof _0x2201d4[_0x28aa8a(0x101)][_0x28aa8a(0xaa)]===_0x28aa8a(0xda)?_0x2201d4[_0x28aa8a(0x101)][_0x28aa8a(0xaa)]():_0x2201d4[_0x28aa8a(0x101)][_0x28aa8a(0xaa)]};_0x549969(_0x1e18f6,_0x1eeb11,_0x767cd8)[_0x28aa8a(0x141)](()=>{const _0x19c44f=_0x28aa8a;console['log']('\x20Fetching\x20done'),console[_0x19c44f(0xd8)](_0x19c44f(0x109)),_0x1e18f6[_0x19c44f(0x122)](_0x19c44f(0x128))[_0x19c44f(0xb9)]('expanded');})['catch'](_0x50802c=>{const _0x5291b3=_0x28aa8a;_0x1e18f6['removeClass'](_0x5291b3(0x128))['addClass'](_0x5291b3(0xb3)),console['log'](_0x5291b3(0xcc),_0x50802c);});}else{if(_0x1e18f6[_0x28aa8a(0x11c)](_0x28aa8a(0xb3)))_0x1e18f6['children']('ul')[_0x28aa8a(0xb6)](),_0x1e18f6[_0x28aa8a(0x116)](_0x28aa8a(0x10e));else{if(_0x1e18f6['children']('ul')['children']()[_0x28aa8a(0x129)]>0x0)_0x1e18f6[_0x28aa8a(0x149)]('ul')[_0x28aa8a(0xb6)](),_0x1e18f6[_0x28aa8a(0x116)]('expandable\x20expanded');else;}}}else{const _0x1274b3=_0x1e18f6[_0x28aa8a(0xfc)](_0x28aa8a(0xc0)),_0x3daa31=_0x1e18f6[_0x28aa8a(0xfc)](_0x28aa8a(0x12c));if(_0x2201d4['options'][_0x28aa8a(0xc5)]&&!_0x2201d4['options']['isSelectable'](_0x3daa31))return;_0x2201d4[_0x28aa8a(0x123)][_0x28aa8a(0xfc)](_0x28aa8a(0x12c),_0x3daa31);const _0x111282=((_0xbb0a72=_0x3daa31[_0x28aa8a(0xe2)])===null||_0xbb0a72===void 0x0?void 0x0:_0xbb0a72['text'])||((_0x399028=_0x3daa31['browseName'])===null||_0x399028===void 0x0?void 0x0:_0x399028[_0x28aa8a(0xec)])||_0x3daa31['nodeId'][_0x28aa8a(0xb5)](),_0x3acf0b='['+_0x111282+']('+_0x1274b3+')';_0x2201d4['$input'][_0x28aa8a(0xac)](_0x3acf0b),_0x2201d4[_0x28aa8a(0x123)][_0x28aa8a(0x148)]('change'),_0x2201d4['$dropdown'][_0x28aa8a(0xd5)]();}}),$(document)['on'](_0x175064(0x12e),function(_0x357d23){const _0xdab98d=_0x175064;!$(_0x357d23[_0xdab98d(0xe0)])[_0xdab98d(0x104)](_0x2201d4[_0xdab98d(0xbe)])[_0xdab98d(0x129)]&&_0x2201d4['$dropdown']['hide']();});}});};RED['nodes'][_0x158733(0x13c)](_0x158733(0x13b),{'category':'opcua','color':_0x158733(0xf1),'align':_0x158733(0xcf),'icon':'../../icons/opcuanodeLogo.png','defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x158733(0x139)},'attributeId':{'value':_0x158733(0x117),'required':!![]},'nodeId':{'value':'','required':![]}},'outputs':0x2,'label'(){const _0x217012=_0x158733;return this['name']||_0x217012(0x126);},'labelStyle'(){const _0x47a6c0=_0x158733;return this[_0x47a6c0(0xec)]?_0x47a6c0(0xbf):'';},'oneditprepare'(){const _0x3e7abb=_0x158733,_0x51ad44=this;_0x3295f5(),_0x51ad44[_0x3e7abb(0xe7)]=0x1;const _0x3965b1=$('#node-input-nodeId');_0x3965b1[_0x3e7abb(0x121)]({'isSelectable'(_0x539b59){const _0x1d41d7=_0x3e7abb;return _0x539b59['nodeClass']===_0x1d41d7(0xce);}});},'oneditsave'(){}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg0Mzk0NjUiLCJfMHhhNzUxZWYiLCJfMHg0MzRlN2MiLCJfMHgyMmYwMDEiLCJfMHgyMjRjODQiLCJfMHgzOGEzZGQiLCJfMHgyZTU2ZjciLCJfMHg1OTdmYTEiLCJQcm9taXNlIiwiXzB4Mjk1Zjc4IiwiXzB4MmIzMmM4IiwiXzB4MTE3M2U5IiwiXzB4MTdiNWQ3IiwiXzB4NDE2N2Y3IiwiXzB4MWRhNmFkIiwiXzB4MmY4MjA1IiwiXzB4MjFmZWUyIiwiXzB4NGY0YzllIiwiXzB4ZTA4NjU5IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4Mzg4Yjk5IiwiXzB4NDNiNWIxIiwiXzB4MjVhZTgwIiwiXzB4NDMwZjNjIiwiRXJyb3IiLCJfMHgxMGRmZGUiLCJfMHg0NjgzNjEiLCJfMHgzNjdkMWUiLCJfMHg0NTRiY2MiLCJfMHg1MGNlNjUiLCJfMHhjN2RhN2YiLCJfMHg1YjY3NmIiLCJfMHgxOWEwNzYiLCJfMHgzY2IwMDgiLCJfMHgxZjA2ODMiLCJfMHgxNmE3ZDIiLCJfMHg5MzA2ZGIiLCJfMHg1ZjFkNmYiLCJlbmRwb2ludE5vZGUiLCJfMHgyN2YyZmEiLCJlbmRwb2ludCIsIl8weDQzZmQzOCIsImJhc2VVcmwiLCJfMHg2NWQ3ODEiLCJfMHgxNDIzMTMiLCJfMHg1MmQxMzkiLCJfMHg0MjdkZTQiLCJfMHg1MjNlMTYiLCJfMHgyZDg5MGUiLCJPYmplY3QiLCJfMHg3MjhiYzQiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4M2E0N2RkIiwiXzB4NDEzYWQ5IiwiXzB4NDg2NzkxIiwiXzB4MWM3NWQzIiwiXzB4NGRlNjc0IiwiXzB4NTc3YjhkIiwiXzB4MTY0ZGU2IiwiXzB4NDQyYjFkIiwiXzB4NTZlNzllIiwiXzB4YjVhOThmIiwiXzB4NWE3NzAzIiwiXzB4NTUxNzA0IiwiXzB4NTJiYmUzIiwiXzB4NTJlM2E5IiwiXzB4MmVjMWRkIiwiXzB4MjIxMzc1Iiwic2V0VGltZW91dCIsIl8weDQwMmQzNCIsIl8weDFlZWIxMSIsIl8weDY5MTk0MSIsIl8weDMyNzcxYiIsIl8weDNhNTQzYiIsIl8weDFjNGNhOSIsIl8weDJjZGE2OSIsIl8weDMzZGU1NCIsIl8weDFhM2Y1MiIsIl8weDM0MDVlMyIsIl8weDVmMDU4MiIsIl8weDM4NmRjOCIsIiQiLCJfMHg0NDBjYjQiLCJfMHgxZGNjOTQiLCJpY29uIiwiXzB4NWIwN2Q1IiwiY29sb3IiLCJfMHg1YTIwOWQiLCJfMHgxOWViMTEiLCJfMHgzMjk1ZjUiLCJ1bmRlZmluZWQiLCJfMHg1NTcxOGQiLCJfMHhkNzY1YzMiLCJfMHhmMWVlMjQiLCJfMHg1MTM2YzIiLCJfMHgzY2ZhZDUiLCJfMHgyZDk5MzAiLCJfMHgxMWZjNDgiLCJfMHgyMjAxZDQiLCJfMHg1NDk5NjkiLCJfMHgxMzAxZDMiLCJfMHg0MmY3ODEiLCJfMHg0MDhmMjYiLCJyZWZlcmVuY2VzIiwiXzB4NGUyYmZlIiwiXzB4NTAzYjA5IiwiXzB4MjFmMzFiIiwiXzB4NTM3OWI0IiwiXzB4MjI5ODUxIiwiXzB4ZDU1MTciLCJfMHg5NjM2YzkiLCJfMHhiYjBhNzIiLCJfMHgzOTkwMjgiLCJfMHgxZTE4ZjYiLCJfMHgxZTRlOWIiLCJfMHgzMGNmYzEiLCJfMHgyNzZhMjAiLCJfMHgxNzgzODYiLCJfMHg3NjdjZDgiLCJfMHg1MDgwMmMiLCJfMHgxMjc0YjMiLCJfMHgzZGFhMzEiLCJfMHgxMTEyODIiLCJfMHgzYWNmMGIiLCJkb2N1bWVudCIsIl8weDM1N2QyMyIsIlJFRCIsIl8weDUxYWQ0NCIsIl8weDM5NjViMSIsIl8weDUzOWI1OSJdLCJtYXBwaW5ncyI6ImlpR0FBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FBVUksU0FBVixD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IihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaT0zNVwiO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImk9NDdcIjtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImk9MzRcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZlY2h0aW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWYgPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZ2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmZXRjaENoaWxkcmVuLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItUmVhZFwiLCB7XG4gICAgICAgIGNhdGVnb3J5OiBcIm9wY3VhXCIsXG4gICAgICAgIGNvbG9yOiBcIiNDMERFRURcIixcbiAgICAgICAgYWxpZ246IFwicmlnaHRcIixcbiAgICAgICAgaWNvbjogXCIuLi8uLi9pY29ucy9vcGN1YW5vZGVMb2dvLnBuZ1wiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgaW5wdXRzOiB7IHZhbHVlOiAxIH0sXG4gICAgICAgICAgICBvdXRwdXQ6IHsgdmFsdWU6IDQgfSxcbiAgICAgICAgICAgIC8vIENvbW1vblxuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiB0cnVlLCB0eXBlOiBcIk9wY1VhLUVuZHBvaW50MlwiIH0sXG4gICAgICAgICAgICAvLyBmb3IgYWN0aW9uIHJlYWRcbiAgICAgICAgICAgIGF0dHJpYnV0ZUlkOiB7IHZhbHVlOiBcIlZhbHVlXCIsIHJlcXVpcmVkOiB0cnVlIH0sXG4gICAgICAgICAgICBub2RlSWQ6IHsgdmFsdWU6IFwiXCIsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICB9LFxuICAgICAgICAvLyBpbnB1dHM6LFxuICAgICAgICBvdXRwdXRzOiAyLFxuICAgICAgICBsYWJlbCgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgXCJPUENVQSBDbGllbnQgUmVhZFwiO1xuICAgICAgICB9LFxuICAgICAgICBsYWJlbFN0eWxlKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSA/IFwibm9kZV9sYWJlbF9pdGFsaWNcIiA6IFwiXCI7XG4gICAgICAgIH0sXG4gICAgICAgIG9uZWRpdHByZXBhcmUoKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gdGhpcztcbiAgICAgICAgICAgIGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCgpO1xuICAgICAgICAgICAgbm9kZS5pbnB1dHMgPSAxO1xuICAgICAgICAgICAgY29uc3QgJG5vZGVJZCA9ICQoXCIjbm9kZS1pbnB1dC1ub2RlSWRcIik7XG4gICAgICAgICAgICAkbm9kZUlkLm5vZGVCcm93c2VyKHtcbiAgICAgICAgICAgICAgICBpc1NlbGVjdGFibGUobm9kZURlc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5vZGVEZXNjLm5vZGVDbGFzcyA9PT0gXCJWYXJpYWJsZVwiO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHsgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
9
+ </script>
10
+ <script type="text/x-red" data-template-name="OpcUa-Client2-Read">
11
+ <h3>Opc-UA Read</h3>
12
+ <div class="form-row">
13
+ <label for="node-input-name"><i class="icon-tasks"></i>Name</label>
14
+ <input type="text" id="node-input-name" placeholder="enter the friendly name of the node" />
15
+ </div>
16
+ <div class="form-row">
17
+ <label for="node-input-endpoint"><i class="icon-tasks"></i> Endpoint</label>
18
+ <input type="text" id="node-input-endpoint" placeholder="opc.tcp://localhost:4334" />
19
+ </div>
20
+ <div class="form-row">
21
+ <label for="node-input-attributeId">AttributeId</label>
22
+ <select type="text" id="node-input-attributeId" style="width: 72%">
23
+ <option selected value="Value">Value</option>
24
+ <option value="DataType">DataType</option>
25
+ <option value="BrowseName">BrowseName</option>
26
+ <option value="DisplayName">DisplayName</option>
27
+ <option value="All">All</option>
28
+ </select>
29
+ </div>
30
+ <div class="form-row">
31
+ <label for="node-input-nodeId"><i class="fa fa-tag"></i>NodeId</label>
32
+ <input type="text" id="node-input-nodeId" placeholder="ns=2;s=Variable1 or empty" />
33
+ <button for="node-input-nodeId" id="nodeId-checkBtn" class="red-ui-button red-ui-button-small" style="margin-left: 10px">
34
+ <i class="fa fa-flask"></i>Check
35
+ </button>
36
+ </div>
37
+
38
+ </script>
39
+
40
+ <script type="text/markdown" data-help-name="OpcUa-Client2-Read">
41
+ perform a READ action on a OpcUA Server
42
+
43
+ #### Read action
44
+
45
+ you can eithe
46
+
47
+ - Inject your OPC UA address (NodeId) by the `topic` attribute of an Inject node or with a OpcUa-Item.
48
+ - Or use the specify nodeId
49
+
50
+ </script>
@@ -0,0 +1,2 @@
1
+ const { init_OpcUa_Client2_Read} = require("../../all.js");
2
+ module.exports = init_OpcUa_Client2_Read;
@@ -0,0 +1,2 @@
1
+ .sterfve-combo-box{position:relative;width:100%}.sterfve-combo-box .sterfve-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfve-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-left:15px}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfve-combo-box .sterfve-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
2
+ /*# sourceMappingURL=OpcUa-Client2-Write.css.map */
@@ -0,0 +1,49 @@
1
+ <style>
2
+ .sterfve-combo-box{position:relative;width:100%}.sterfve-combo-box .sterfve-dropdown{background-color:#fff;border:1px solid #ccc;display:none;left:0;max-height:150px;overflow-y:auto;position:absolute;top:100%;width:100%;z-index:1000}.sterfve-combo-box li:before{content:none}.sterfive-tree li.expandable:before,.sterfive-tree li.no-expandable:before{content:"\f0da";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree li.no-expandable:before{opacity:0}.sterfive-tree li.expanded:before{content:"\f0d7";cursor:pointer;font-family:FontAwesome;font-size:8pt;font-weight:900;margin-right:5px}.sterfive-tree .fa{color:#333;margin-right:10px}.sterfive-tree ul{list-style:none;padding-left:15px}.sterfive-tree li{cursor:pointer;padding:5px}.sterfive-tree{list-style-type:none}.sterfive-tree,.sterfive-tree ol,.sterfive-tree ul{list-style-type:none;margin:0;padding:0}.sterfive-tree li:hover{background-color:#eee}.sterfive-tree li.loading:before{animation:fa-spin 1s linear infinite;content:"\f110";cursor:pointer;font-family:FontAwesome;font-weight:900;margin-right:5px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sterfive-tree .spinner{animation:spin .7s linear infinite;border:2px solid transparent;border-radius:50%;border-top-color:#666;display:inline-block;height:16px;width:16px}.sterfive-info{background-color:#fafad2;border-radius:10px;border-style:groove;display:block;font-size:10pt;margin:5px 0;padding:5px}.sterfive-info .ok{color:green}.sterfive-info .warning{color:darkred}.input-wrapper{border:0 solid #ccc;border-radius:5px;padding:0}.input-group{align-items:center;border:1px solid #ccc;border-radius:5px;display:flex;overflow:hidden}.input-group input{border:none;flex:1;outline:none;padding:8px}.input-group button{background-color:#f1f1f1;border:none;border-left:1px solid #ccc;cursor:pointer;padding:8px 16px}.input-group button:hover{background-color:#ddd}.info-text{color:#777;font-size:12px;margin-left:10px;margin-top:5px}.custom-checkbox{cursor:pointer;display:inline-block;font-family:FontAwesome;font-size:16px;font-weight:900;margin-right:10px;text-align:center;width:1em}.custom-checkbox.unchecked:before{content:"\f096"}.custom-checkbox.checked:before{content:"\f046"}.validate-cancel-buttons{background-color:#fff;position:sticky;right:0;top:0;z-index:1001}.cancel-button,.validate-button{cursor:pointer;font-size:16px;margin:5px}.sterfve-combo-box .sterfve-dropdown{position:relative}.floating-buttons{position:fixed;z-index:1003}
3
+ /*# sourceMappingURL=OpcUa-Client2-Write.css.map */
4
+ </style>
5
+
6
+ <script type="text/javascript">
7
+ (function(_0x20a94b,_0x3be9d7){const _0x45efcf=_0x3f0e,_0x57e383=_0x20a94b();while(!![]){try{const _0x30a78b=parseInt(_0x45efcf(0x215))/0x1+-parseInt(_0x45efcf(0x205))/0x2*(-parseInt(_0x45efcf(0x1d7))/0x3)+-parseInt(_0x45efcf(0x203))/0x4*(-parseInt(_0x45efcf(0x1c4))/0x5)+-parseInt(_0x45efcf(0x23d))/0x6*(-parseInt(_0x45efcf(0x235))/0x7)+-parseInt(_0x45efcf(0x21d))/0x8+-parseInt(_0x45efcf(0x263))/0x9*(parseInt(_0x45efcf(0x21b))/0xa)+parseInt(_0x45efcf(0x25d))/0xb*(parseInt(_0x45efcf(0x232))/0xc);if(_0x30a78b===_0x3be9d7)break;else _0x57e383['push'](_0x57e383['shift']());}catch(_0x36232a){_0x57e383['push'](_0x57e383['shift']());}}}(_0x23e7,0x67ce2),(function(){'use strict';const _0x3c19f2=_0x3f0e;function _0x37bebe(_0x1a9559,_0x195e8c,_0x1032e8,_0x2439df){function _0x3a2e2c(_0x277818){return _0x277818 instanceof _0x1032e8?_0x277818:new _0x1032e8(function(_0x20c035){_0x20c035(_0x277818);});}return new(_0x1032e8||(_0x1032e8=Promise))(function(_0x2d9ca5,_0x31b9ca){const _0x175e96=_0x3f0e;function _0x508991(_0x28ec47){const _0x2a7ea4=_0x3f0e;try{_0xb8ade0(_0x2439df[_0x2a7ea4(0x243)](_0x28ec47));}catch(_0x3f78e4){_0x31b9ca(_0x3f78e4);}}function _0x2de2d8(_0x37a2c5){try{_0xb8ade0(_0x2439df['throw'](_0x37a2c5));}catch(_0x515c28){_0x31b9ca(_0x515c28);}}function _0xb8ade0(_0x5ebc40){const _0x1a12c5=_0x3f0e;_0x5ebc40[_0x1a12c5(0x1ff)]?_0x2d9ca5(_0x5ebc40[_0x1a12c5(0x1c0)]):_0x3a2e2c(_0x5ebc40[_0x1a12c5(0x1c0)])[_0x1a12c5(0x26b)](_0x508991,_0x2de2d8);}_0xb8ade0((_0x2439df=_0x2439df[_0x175e96(0x246)](_0x1a9559,_0x195e8c||[]))[_0x175e96(0x243)]());});}typeof SuppressedError==='function'?SuppressedError:function(_0x5d1e41,_0x24cb9e,_0x9e5898){const _0x327ca6=_0x3f0e;var _0x59de90=new Error(_0x9e5898);return _0x59de90[_0x327ca6(0x26a)]=_0x327ca6(0x24c),_0x59de90[_0x327ca6(0x200)]=_0x5d1e41,_0x59de90[_0x327ca6(0x1d2)]=_0x24cb9e,_0x59de90;};var _0x19b202;(function(_0x125709){const _0x3667fd=_0x3f0e;_0x125709[_0x125709['Forward']=0x0]='Forward',_0x125709[_0x125709[_0x3667fd(0x1ca)]=0x1]=_0x3667fd(0x1ca),_0x125709[_0x125709['Both']=0x2]='Both',_0x125709[_0x125709[_0x3667fd(0x212)]=0x3]=_0x3667fd(0x212);}(_0x19b202||(_0x19b202={})));var _0x342d5b;(function(_0x1a0a2c){const _0x3e704f=_0x3f0e;_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x1c1)]=0x0]=_0x3e704f(0x1c1),_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x257)]=0x1]='Object',_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x1d5)]=0x2]=_0x3e704f(0x1d5),_0x1a0a2c[_0x1a0a2c['Method']=0x4]=_0x3e704f(0x238),_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x268)]=0x8]='ObjectType',_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x1d0)]=0x10]=_0x3e704f(0x1d0),_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x267)]=0x20]='ReferenceType',_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x250)]=0x40]=_0x3e704f(0x250),_0x1a0a2c[_0x1a0a2c[_0x3e704f(0x265)]=0x80]=_0x3e704f(0x265);}(_0x342d5b||(_0x342d5b={})));function _0x145ded(_0x195c24){const _0x1e53bf=_0x3f0e;switch(_0x195c24){case _0x1e53bf(0x269):return _0x1e53bf(0x216);case _0x1e53bf(0x1f8):return _0x1e53bf(0x202);case _0x1e53bf(0x222):return _0x1e53bf(0x1c2);}}const _0x2a9ea3=_0x3c19f2(0x233),_0x31d3a1='ns=0;i=61',_0x32f326=_0x3c19f2(0x218),_0x5adda9=_0x3c19f2(0x251),_0x335e46=_0x3cbac4=>{const _0x5cce08=_0x3c19f2;switch(_0x3cbac4[_0x5cce08(0x1f0)]){case _0x5cce08(0x257):if(_0x3cbac4['referenceTypeId']===_0x2a9ea3);if(_0x3cbac4[_0x5cce08(0x1ef)]===_0x31d3a1||_0x3cbac4[_0x5cce08(0x1db)]===_0x5cce08(0x21f))return{'icon':_0x5cce08(0x1bd),'color':_0x5cce08(0x209)};return{'icon':_0x5cce08(0x213),'color':_0x5cce08(0x1cf)};case'Variable':if(_0x3cbac4['referenceTypeId']===_0x32f326)return{'icon':_0x5cce08(0x264),'color':_0x5cce08(0x25c)};else return _0x3cbac4[_0x5cce08(0x1db)]===_0x5adda9?{'icon':_0x5cce08(0x264),'color':_0x5cce08(0x1fc)}:{'icon':_0x5cce08(0x264),'color':'CadetBlue'};case _0x5cce08(0x238):return{'icon':_0x5cce08(0x1df),'color':_0x5cce08(0x224)};case'ObjectType':return{'icon':_0x5cce08(0x213),'color':_0x5cce08(0x255)};case _0x5cce08(0x1d0):return{'icon':'fa-sliders','color':_0x5cce08(0x255)};}return{'icon':_0x5cce08(0x22c),'color':'grey'};},_0x50bee7=({endpointNode:_0x58939d,endpoint:_0x21825d,baseUrl:_0x571af5},_0x2396da,_0x52fae9)=>_0x37bebe(void 0x0,void 0x0,void 0x0,function*(){const _0x3bec04=_0x3c19f2,_0x5b4ce4=_0x571af5+_0x3bec04(0x20b),_0x2e678a=_0x5b4ce4+_0x3bec04(0x1e8),_0xb9b352=Object[_0x3bec04(0x25f)](Object[_0x3bec04(0x25f)]({},_0x52fae9),{'nodeId':_0x2396da,'resultMask':0x3f}),_0x463462=yield fetch(_0x2e678a,{'method':_0x3bec04(0x231),'body':JSON[_0x3bec04(0x259)]({'endpointNode':_0x58939d,'endpoint':_0x21825d,'browseDescription':_0xb9b352}),'headers':{'Content-Type':'application/json'}});if(_0x463462[_0x3bec04(0x1fd)]!==0xc8)return console['log'](_0x3bec04(0x1cb),_0x463462[_0x3bec04(0x1fd)],_0x463462[_0x3bec04(0x244)]),{'references':[]};console[_0x3bec04(0x1c5)](_0x3bec04(0x225),_0x463462['status'],_0x463462['statusText']);const _0x119c0f=yield _0x463462[_0x3bec04(0x1f6)](),_0x5bfb98=_0x119c0f[_0x3bec04(0x24b)]['references']||[];return{'references':_0x5bfb98};}),_0x48e15f={'referenceTypeId':_0x145ded(_0x3c19f2(0x222)),'includeSubtypes':!![],'browseDirection':_0x19b202[_0x3c19f2(0x1d1)],'nodeClassMask':_0x342d5b['Variable']|_0x342d5b[_0x3c19f2(0x257)]|_0x342d5b[_0x3c19f2(0x238)],'resultMask':0x3f},_0x1af292={'referenceTypeId':_0x145ded(_0x3c19f2(0x269)),'includeSubtypes':!![],'browseDirection':_0x19b202[_0x3c19f2(0x1d1)],'nodeClassMask':_0x342d5b[_0x3c19f2(0x1d5)]|_0x342d5b[_0x3c19f2(0x257)]|_0x342d5b[_0x3c19f2(0x238)],'resultMask':0x3f},_0x5f32ae=({endpointNode:_0x329f81,endpoint:_0xddf17d,baseUrl:_0x20bdc0},_0x540bb7,_0x164173)=>_0x37bebe(void 0x0,void 0x0,void 0x0,function*(){const _0xc5503f=_0x3c19f2,_0x444b53=_0x20bdc0+_0xc5503f(0x20b),_0x59d741=_0x540bb7[_0xc5503f(0x1e0)](),_0x246bab=yield fetch(_0x444b53+_0xc5503f(0x1eb),{'method':'POST','body':JSON[_0xc5503f(0x259)]({'endpointNode':_0x329f81,'endpoint':_0xddf17d,'nodeId':_0x59d741}),'headers':{'Content-Type':_0xc5503f(0x20d)}}),_0x3a7650=(_0x3a9090,_0x2221c1)=>{const _0x3a16c5=_0xc5503f;_0x164173['text'](_0x3a9090)[_0x3a16c5(0x220)](_0x3a16c5(0x1f2))[_0x3a16c5(0x220)](_0x2221c1),_0x164173[_0x3a16c5(0x227)](),setTimeout(()=>{_0x164173['removeClass'](_0x2221c1),_0x164173['hide']();},0xbb8);},_0x8b864d=yield _0x246bab[_0xc5503f(0x1f6)]();_0x246bab[_0xc5503f(0x1fd)]!==0xc8?_0x3a7650('!!failure!!'+_0x59d741,_0xc5503f(0x221)):_0x8b864d[_0xc5503f(0x20c)][_0xc5503f(0x242)](/Good/)?(_0x540bb7[_0xc5503f(0x1e0)](_0x8b864d[_0xc5503f(0x210)]),_0x540bb7[_0xc5503f(0x230)](_0xc5503f(0x1d4)),_0x3a7650('Good','ok')):(_0x540bb7[_0xc5503f(0x1e0)](''+_0x59d741),_0x3a7650(_0x8b864d[_0xc5503f(0x20c)]+'\x20'+_0x246bab[_0xc5503f(0x244)],_0xc5503f(0x221)));});function _0x5d64d2(_0x3f810e,_0x53f297){return _0x37bebe(this,void 0x0,void 0x0,function*(){const _0x5ce84f=_0x3f0e,_0x50e958=_0x3f810e['data'](_0x5ce84f(0x1c0)),_0x17d7eb=yield _0x50bee7(_0x53f297,_0x50e958,_0x48e15f),_0x4f9831=yield _0x50bee7(_0x53f297,_0x50e958,_0x1af292);return{'references':[..._0x17d7eb[_0x5ce84f(0x1f7)],..._0x4f9831['references']]};});}const _0x8c326b=_0x3fcec5=>{const _0x17e740=_0x3c19f2;var _0x521957,_0x3b3a9d;if(!_0x3fcec5){const _0x18551e=$(_0x17e740(0x1c6));return _0x18551e;}const _0x252bc4=_0x3fcec5[_0x17e740(0x211)][_0x17e740(0x21e)](),_0x2c9e32=((_0x521957=_0x3fcec5[_0x17e740(0x1be)])===null||_0x521957===void 0x0?void 0x0:_0x521957[_0x17e740(0x21a)])||((_0x3b3a9d=_0x3fcec5[_0x17e740(0x1f3)])===null||_0x3b3a9d===void 0x0?void 0x0:_0x3b3a9d[_0x17e740(0x26a)])||_0x3fcec5[_0x17e740(0x211)]['toString'](),{icon:_0xfc5505,color:_0x2ab1e5}=_0x335e46(_0x3fcec5),_0x48913a=$(_0x17e740(0x1e2)+_0xfc5505+_0x17e740(0x22e)+_0x2ab1e5+_0x17e740(0x1ce)+_0x2c9e32+_0x17e740(0x241));return _0x48913a[_0x17e740(0x220)](_0x17e740(0x24d)),_0x48913a[_0x17e740(0x24f)](_0x17e740(0x1c0),_0x252bc4),_0x48913a[_0x17e740(0x24f)]('reference',_0x3fcec5),_0x48913a;},_0x2a6874=()=>{const _0x422b97=_0x3c19f2;$[_0x422b97(0x1d9)](_0x422b97(0x22a),{'options':{'endpointNode':()=>({'endpoint':_0x422b97(0x234)}),'endpoint':()=>undefined,'parentNode':()=>({'browseName':{'namespaceIndex':0x0,'name':_0x422b97(0x20f)},'nodeClass':_0x422b97(0x257),'nodeId':_0x422b97(0x1fb),'displayName':{'text':_0x422b97(0x20f)},'typeDefinition':_0x31d3a1}),'filter':()=>!![],'baseUrl':''},'resolveParentNode'(){return _0x37bebe(this,void 0x0,void 0x0,function*(){const _0x59e783=_0x3f0e,_0x40301a=this,_0x3a5a39=typeof _0x40301a[_0x59e783(0x214)]['parentNode']==='function'?_0x40301a[_0x59e783(0x214)]['parentNode']():_0x40301a[_0x59e783(0x214)][_0x59e783(0x247)];if(_0x3a5a39 instanceof Promise)return yield _0x3a5a39;return _0x3a5a39;});},'reset'(){const _0x2a23f5=_0x422b97,_0x495458=this;_0x495458[_0x2a23f5(0x25b)][_0x2a23f5(0x254)](),this['resolveParentNode']()[_0x2a23f5(0x26b)](_0x20f3f9=>{const _0x3ad9ef=_0x2a23f5,_0x51a2b8=_0x8c326b(_0x20f3f9);_0x495458[_0x3ad9ef(0x25b)][_0x3ad9ef(0x207)](_0x51a2b8),_0x495458['currentParent']=_0x20f3f9;});},'verify'(){const _0x5bb713=_0x422b97,_0x5e291c=this,_0x558325={'baseUrl':_0x5e291c['options']['baseUrl'],'endpointNode':typeof _0x5e291c[_0x5bb713(0x214)]['endpointNode']===_0x5bb713(0x24a)?_0x5e291c[_0x5bb713(0x214)][_0x5bb713(0x258)]():_0x5e291c[_0x5bb713(0x214)][_0x5bb713(0x258)],'endpoint':typeof _0x5e291c[_0x5bb713(0x214)][_0x5bb713(0x1d8)]===_0x5bb713(0x24a)?_0x5e291c[_0x5bb713(0x214)]['endpoint']():_0x5e291c['options'][_0x5bb713(0x1d8)]};_0x5f32ae(_0x558325,_0x5e291c[_0x5bb713(0x25a)],_0x5e291c[_0x5bb713(0x248)]);},'_create'(){const _0x5555f6=_0x422b97,_0x18044e=this;function _0x3b5047(_0x82147b,_0x2a9955,_0x1087c3){return _0x37bebe(this,void 0x0,void 0x0,function*(){const _0x740b12=_0x3f0e;if(_0x82147b['hasClass'](_0x740b12(0x1e6))){console[_0x740b12(0x1c5)](_0x740b12(0x1da));return;}if(_0x82147b['hasClass'](_0x740b12(0x20a))){console[_0x740b12(0x1c5)](_0x740b12(0x252));return;}_0x82147b[_0x740b12(0x220)](_0x740b12(0x20a)),_0x82147b['append'](_0x740b12(0x1e7));try{_0x82147b['children']('ul')[_0x740b12(0x254)]();const {references:_0x264ecc}=yield _0x2a9955(_0x82147b,_0x1087c3);for(const _0x1a82c1 of _0x264ecc){if(_0x18044e[_0x740b12(0x214)][_0x740b12(0x20e)]&&!_0x18044e[_0x740b12(0x214)][_0x740b12(0x20e)](_0x1a82c1))continue;const _0x2f8b11=_0x8c326b(_0x1a82c1);_0x82147b[_0x740b12(0x1c7)]('ul')[_0x740b12(0x207)](_0x2f8b11);}_0x82147b[_0x740b12(0x220)](_0x740b12(0x1e6));}catch(_0x1eb81d){_0x82147b[_0x740b12(0x1c7)]('ul')[_0x740b12(0x207)](_0x740b12(0x1e1)+_0x1eb81d[_0x740b12(0x1c9)]+_0x740b12(0x1ee)),console['log'](_0x740b12(0x1f5),_0x1eb81d);}_0x82147b[_0x740b12(0x1e4)](_0x740b12(0x226))[_0x740b12(0x22d)](),_0x82147b[_0x740b12(0x1dc)]('loading');});}_0x18044e[_0x5555f6(0x25a)]=this['element'],_0x18044e[_0x5555f6(0x21c)]=$(_0x5555f6(0x201)),_0x18044e['$combo'][_0x5555f6(0x220)]('sterfve-combo-box'),this[_0x5555f6(0x22b)][_0x5555f6(0x208)](_0x18044e[_0x5555f6(0x21c)]),_0x18044e[_0x5555f6(0x253)]=$(_0x5555f6(0x201))['addClass'](_0x5555f6(0x249)),_0x18044e[_0x5555f6(0x21c)][_0x5555f6(0x207)](_0x18044e[_0x5555f6(0x253)]),_0x18044e[_0x5555f6(0x253)][_0x5555f6(0x207)](_0x18044e[_0x5555f6(0x25a)]),_0x18044e[_0x5555f6(0x1c3)]=$(_0x5555f6(0x24e)),_0x18044e['$inputGroup']['append'](_0x18044e[_0x5555f6(0x1c3)]),_0x18044e[_0x5555f6(0x1c3)]['on']('click',function(){const _0x48427c=_0x5555f6;!_0x18044e[_0x48427c(0x262)]['is'](_0x48427c(0x204))&&(_0x18044e[_0x48427c(0x1e5)]()[_0x48427c(0x26b)](_0x109449=>{const _0x41a673=_0x48427c;var _0x4558bb;(_0x109449!==_0x18044e[_0x41a673(0x223)]||((_0x4558bb=_0x18044e[_0x41a673(0x223)])===null||_0x4558bb===void 0x0?void 0x0:_0x4558bb[_0x41a673(0x211)])!==_0x109449[_0x41a673(0x211)])&&_0x18044e[_0x41a673(0x237)]();}),_0x18044e['$info'][_0x48427c(0x25e)]()),_0x18044e[_0x48427c(0x262)][_0x48427c(0x22f)]();}),_0x18044e[_0x5555f6(0x1de)]=$('<button><i\x20class=\x22fa\x20fa-flask\x22></i></button>'),_0x18044e[_0x5555f6(0x253)][_0x5555f6(0x207)](_0x18044e[_0x5555f6(0x1de)]),_0x18044e[_0x5555f6(0x1de)]['on'](_0x5555f6(0x1e3),()=>{this['verify']();}),!_0x18044e[_0x5555f6(0x25a)][_0x5555f6(0x23c)](_0x5555f6(0x261))&&_0x18044e[_0x5555f6(0x25a)][_0x5555f6(0x23c)](_0x5555f6(0x261),'enter\x20a\x20nodeId\x20or\x20a\x20browsePath\x20'),_0x18044e['$info']=$(_0x5555f6(0x1f4)),_0x18044e[_0x5555f6(0x248)][_0x5555f6(0x25e)](),{'baseUrl':_0x18044e[_0x5555f6(0x214)][_0x5555f6(0x1d3)],'endpointNode':typeof _0x18044e['options'][_0x5555f6(0x258)]===_0x5555f6(0x24a)?_0x18044e[_0x5555f6(0x214)]['endpointNode']():_0x18044e[_0x5555f6(0x214)][_0x5555f6(0x258)],'endpoint':typeof _0x18044e[_0x5555f6(0x214)][_0x5555f6(0x1d8)]===_0x5555f6(0x24a)?_0x18044e[_0x5555f6(0x214)][_0x5555f6(0x1d8)]():_0x18044e[_0x5555f6(0x214)][_0x5555f6(0x1d8)]},_0x18044e[_0x5555f6(0x262)]=$(_0x5555f6(0x201))[_0x5555f6(0x220)](_0x5555f6(0x23b))[_0x5555f6(0x25e)](),_0x18044e[_0x5555f6(0x21c)][_0x5555f6(0x207)](_0x18044e[_0x5555f6(0x248)]),_0x18044e['$combo'][_0x5555f6(0x207)](_0x18044e[_0x5555f6(0x262)]),_0x18044e[_0x5555f6(0x25b)]=$(_0x5555f6(0x1e9))[_0x5555f6(0x1ec)](_0x18044e[_0x5555f6(0x262)]),this[_0x5555f6(0x237)](),_0x18044e[_0x5555f6(0x25b)]['on'](_0x5555f6(0x1e3),'li',function(_0x1079cf){const _0x23cf9f=_0x5555f6;var _0x54bb30,_0x42cb45;_0x1079cf[_0x23cf9f(0x229)]();let _0x5ac320=$(this);const _0x212495=0x14,_0x45f0d1=0x14,_0x21a79e=$(this)[_0x23cf9f(0x228)](),_0x183fd1=_0x1079cf;if(_0x183fd1[_0x23cf9f(0x1dd)]>=_0x21a79e[_0x23cf9f(0x206)]&&_0x183fd1['pageX']<=_0x21a79e[_0x23cf9f(0x206)]+_0x212495&&_0x183fd1[_0x23cf9f(0x23a)]>=_0x21a79e[_0x23cf9f(0x1c8)]&&_0x183fd1[_0x23cf9f(0x23a)]<=_0x21a79e['top']+_0x45f0d1){if(_0x5ac320[_0x23cf9f(0x266)](_0x23cf9f(0x24d))){if(_0x5ac320['hasClass'](_0x23cf9f(0x1e6))){_0x5ac320[_0x23cf9f(0x1dc)](_0x23cf9f(0x24d))[_0x23cf9f(0x220)](_0x23cf9f(0x1cc)),_0x5ac320[_0x23cf9f(0x1c7)]('ul')[_0x23cf9f(0x22f)]();return;}const _0x3eb753={'baseUrl':_0x18044e['options'][_0x23cf9f(0x1d3)],'endpointNode':typeof _0x18044e[_0x23cf9f(0x214)][_0x23cf9f(0x258)]===_0x23cf9f(0x24a)?_0x18044e[_0x23cf9f(0x214)][_0x23cf9f(0x258)]():_0x18044e[_0x23cf9f(0x214)][_0x23cf9f(0x258)],'endpoint':typeof _0x18044e[_0x23cf9f(0x214)]['endpoint']===_0x23cf9f(0x24a)?_0x18044e[_0x23cf9f(0x214)]['endpoint']():_0x18044e[_0x23cf9f(0x214)]['endpoint']};_0x3b5047(_0x5ac320,_0x5d64d2,_0x3eb753)['then'](()=>{const _0x3030e3=_0x23cf9f;console[_0x3030e3(0x1c5)]('\x20Fetching\x20done'),console[_0x3030e3(0x1c5)]('fetched'),_0x5ac320['removeClass'](_0x3030e3(0x24d))['addClass'](_0x3030e3(0x1cc));})['catch'](_0x36e2ea=>{const _0x574657=_0x23cf9f;_0x5ac320[_0x574657(0x1dc)](_0x574657(0x24d))[_0x574657(0x220)](_0x574657(0x1cc)),console[_0x574657(0x1c5)](_0x574657(0x200),_0x36e2ea);});}else{if(_0x5ac320[_0x23cf9f(0x266)](_0x23cf9f(0x1cc)))_0x5ac320[_0x23cf9f(0x1c7)]('ul')['toggle'](),_0x5ac320[_0x23cf9f(0x23e)](_0x23cf9f(0x245));else{if(_0x5ac320[_0x23cf9f(0x1c7)]('ul')[_0x23cf9f(0x1c7)]()[_0x23cf9f(0x1fa)]>0x0)_0x5ac320[_0x23cf9f(0x1c7)]('ul')[_0x23cf9f(0x22f)](),_0x5ac320[_0x23cf9f(0x23e)]('expandable\x20expanded');else;}}}else{const _0x378b49=_0x5ac320[_0x23cf9f(0x24f)](_0x23cf9f(0x1c0)),_0x5361cf=_0x5ac320['data'](_0x23cf9f(0x239));if(_0x18044e[_0x23cf9f(0x214)][_0x23cf9f(0x217)]&&!_0x18044e[_0x23cf9f(0x214)][_0x23cf9f(0x217)](_0x5361cf))return;_0x18044e['$input'][_0x23cf9f(0x24f)](_0x23cf9f(0x239),_0x5361cf);const _0x1aab47=((_0x54bb30=_0x5361cf[_0x23cf9f(0x1be)])===null||_0x54bb30===void 0x0?void 0x0:_0x54bb30[_0x23cf9f(0x21a)])||((_0x42cb45=_0x5361cf['browseName'])===null||_0x42cb45===void 0x0?void 0x0:_0x42cb45[_0x23cf9f(0x26a)])||_0x5361cf[_0x23cf9f(0x211)][_0x23cf9f(0x21e)](),_0x31e409='['+_0x1aab47+']('+_0x378b49+')';_0x18044e[_0x23cf9f(0x25a)]['val'](_0x31e409),_0x18044e[_0x23cf9f(0x25a)][_0x23cf9f(0x230)](_0x23cf9f(0x1d4)),_0x18044e[_0x23cf9f(0x262)][_0x23cf9f(0x25e)]();}}),$(document)['on']('click',function(_0x4790af){const _0x46b862=_0x5555f6;!$(_0x4790af[_0x46b862(0x219)])[_0x46b862(0x1fe)](_0x18044e[_0x46b862(0x21c)])['length']&&_0x18044e['$dropdown'][_0x46b862(0x25e)]();});}});};RED[_0x3c19f2(0x1f1)][_0x3c19f2(0x1bf)](_0x3c19f2(0x1ea),{'category':_0x3c19f2(0x1d6),'color':'#C0DEED','align':_0x3c19f2(0x23f),'icon':_0x3c19f2(0x1f9),'defaults':{'inputs':{'value':0x1},'output':{'value':0x4},'name':{'value':''},'endpoint':{'value':'','required':!![],'type':_0x3c19f2(0x1cd)},'attributeId':{'value':_0x3c19f2(0x1ed),'required':!![]},'nodeId':{'value':'','required':![]}},'inputs':0x1,'outputs':0x1,'label'(){const _0xfc7f4f=_0x3c19f2;return this[_0xfc7f4f(0x26a)]||_0xfc7f4f(0x256);},'labelStyle'(){const _0x2e8173=_0x3c19f2;return this[_0x2e8173(0x26a)]?_0x2e8173(0x240):'';},'oneditprepare'(){const _0x6ad671=_0x3c19f2,_0x7424a7=this;_0x2a6874(),_0x7424a7[_0x6ad671(0x260)]=0x1;const _0x8c882d=$(_0x6ad671(0x236));_0x8c882d['nodeBrowser']({'isSelectable'(_0x55db4c){const _0x1071b1=_0x6ad671;return _0x55db4c['nodeClass']===_0x1071b1(0x1d5);}});},'oneditsave'(){}});}()));function _0x3f0e(_0x1197fe,_0x250daf){const _0x23e7ba=_0x23e7();return _0x3f0e=function(_0x3f0e5c,_0x27dc32){_0x3f0e5c=_0x3f0e5c-0x1bd;let _0xa38516=_0x23e7ba[_0x3f0e5c];return _0xa38516;},_0x3f0e(_0x1197fe,_0x250daf);}function _0x23e7(){const _0xb1eb07=['match','next','statusText','expandable\x20expanded','apply','parentNode','$info','input-group','function','browseResult','SuppressedError','expandable','<button><i\x20class=\x22fa\x20fa-sitemap\x22></i></button>','data','DataType','ns=0;i=46','already\x20loading','$inputGroup','empty','DarkOrange','OPCUA\x20Client\x20Write','Object','endpointNode','stringify','$input','$tree','SteelBlue','1870LAqSxs','hide','assign','inputs','placeholder','$dropdown','2543175QonFvC','fa-list-alt','View','hasClass','ReferenceType','ObjectType','Organizes','name','then','fa-folder','displayName','registerType','value','Unspecified','i=34','$toggleTreeBtn','5STJmSW','log','<li><i\x20class=\x22fa\x20fa-error\x22\x20style=\x22color:red;\x22></i>no\x20reference\x20!<ul></ul></li>','children','top','message','Inverse','fechting\x20failed\x20with\x20error','expanded','OpcUa-Endpoint2',';\x22></i>\x20','SeaGreen','VariableType','Forward','suppressed','baseUrl','change','Variable','opcua','8256CPdsFa','endpoint','widget','already\x20fetched','referenceTypeId','removeClass','pageX','$verifyBtn','fa-cog','val','<li>error\x20','<li><i\x20class=\x22fa\x20','click','find','resolveParentNode','fetched','<div\x20class=\x22spinner\x22></div>','/browse','<ul\x20class=\x22sterfive-tree\x22></ul>','OpcUa-Client2-Write','/checkNodeId','appendTo','Value','</li>','typeDefinition','nodeClass','nodes','sterfive-info','browseName','<div\x20class=\x22info-text\x22></div>','err','json','references','HasComponent','../../icons/opcuanodeLogo.png','length','ns=0;i=85','DodgerBlue','status','closest','done','error','<div/>','i=47','2745968hNJREk',':visible','300rvzitP','left','append','replaceWith','rgba(61,\x2060,\x204,\x200.525)','loading','/opcua-endpoint2','statusCode','application/json','filter','Objects','nodeAddressString','nodeId','Invalid','fa-object-group','options','188943UiGTmf','i=35','isSelectable','ns=0;i=47','target','text','20gpnRor','$combo','4514656neEXza','toString','i=61','addClass','failure','HasChild','currentParent','SandyBrown','fetched\x20:\x20','.spinner','show','offset','stopPropagation','sterfive.nodeBrowser','element','fa-question','remove','\x22\x20style=\x22color:','toggle','trigger','POST','13788ZUKbEN','ns=0;i=35','opc.tcp://opcuademo.sterfive.com:26543','7GJHzrb','#node-input-nodeId','reset','Method','reference','pageY','sterfve-dropdown','attr','426618UkMLMA','toggleClass','right','node_label_italic','<ul></ul></li>'];_0x23e7=function(){return _0xb1eb07;};return _0x23e7();}
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzN2JlYmUiLCJfMHgxYTk1NTkiLCJfMHgxOTVlOGMiLCJfMHgxMDMyZTgiLCJfMHgyNDM5ZGYiLCJfMHgzYTJlMmMiLCJfMHgyNzc4MTgiLCJfMHgyMGMwMzUiLCJQcm9taXNlIiwiXzB4MmQ5Y2E1IiwiXzB4MzFiOWNhIiwiXzB4NTA4OTkxIiwiXzB4MjhlYzQ3IiwiXzB4YjhhZGUwIiwiXzB4M2Y3OGU0IiwiXzB4MmRlMmQ4IiwiXzB4MzdhMmM1IiwiXzB4NTE1YzI4IiwiXzB4NWViYzQwIiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4NWQxZTQxIiwiXzB4MjRjYjllIiwiXzB4OWU1ODk4IiwiXzB4NTlkZTkwIiwiRXJyb3IiLCJfMHgxOWIyMDIiLCJfMHgxMjU3MDkiLCJfMHgzNDJkNWIiLCJfMHgxYTBhMmMiLCJfMHgxNDVkZWQiLCJfMHgxOTVjMjQiLCJfMHgyYTllYTMiLCJfMHgzMWQzYTEiLCJfMHgzMmYzMjYiLCJfMHg1YWRkYTkiLCJfMHgzMzVlNDYiLCJfMHgzY2JhYzQiLCJfMHg1MGJlZTciLCJlbmRwb2ludE5vZGUiLCJfMHg1ODkzOWQiLCJlbmRwb2ludCIsIl8weDIxODI1ZCIsImJhc2VVcmwiLCJfMHg1NzFhZjUiLCJfMHgyMzk2ZGEiLCJfMHg1MmZhZTkiLCJfMHg1YjRjZTQiLCJfMHgyZTY3OGEiLCJfMHhiOWIzNTIiLCJPYmplY3QiLCJfMHg0NjM0NjIiLCJmZXRjaCIsIkpTT04iLCJjb25zb2xlIiwiXzB4MTE5YzBmIiwiXzB4NWJmYjk4IiwiXzB4NDhlMTVmIiwiXzB4MWFmMjkyIiwiXzB4NWYzMmFlIiwiXzB4MzI5ZjgxIiwiXzB4ZGRmMTdkIiwiXzB4MjBiZGMwIiwiXzB4NTQwYmI3IiwiXzB4MTY0MTczIiwiXzB4NDQ0YjUzIiwiXzB4NTlkNzQxIiwiXzB4MjQ2YmFiIiwiXzB4M2E3NjUwIiwiXzB4M2E5MDkwIiwiXzB4MjIyMWMxIiwic2V0VGltZW91dCIsIl8weDhiODY0ZCIsIl8weDVkNjRkMiIsIl8weDNmODEwZSIsIl8weDUzZjI5NyIsIl8weDUwZTk1OCIsIl8weDE3ZDdlYiIsIl8weDRmOTgzMSIsIl8weDhjMzI2YiIsIl8weDNmY2VjNSIsIl8weDUyMTk1NyIsIl8weDNiM2E5ZCIsIl8weDE4NTUxZSIsIiQiLCJfMHgyNTJiYzQiLCJfMHgyYzllMzIiLCJpY29uIiwiXzB4ZmM1NTA1IiwiY29sb3IiLCJfMHgyYWIxZTUiLCJfMHg0ODkxM2EiLCJfMHgyYTY4NzQiLCJ1bmRlZmluZWQiLCJfMHg0MDMwMWEiLCJfMHgzYTVhMzkiLCJfMHg0OTU0NTgiLCJfMHgyMGYzZjkiLCJfMHg1MWEyYjgiLCJfMHg1ZTI5MWMiLCJfMHg1NTgzMjUiLCJfMHgxODA0NGUiLCJfMHgzYjUwNDciLCJfMHg4MjE0N2IiLCJfMHgyYTk5NTUiLCJfMHgxMDg3YzMiLCJyZWZlcmVuY2VzIiwiXzB4MjY0ZWNjIiwiXzB4MWE4MmMxIiwiXzB4MmY4YjExIiwiXzB4MWViODFkIiwiXzB4MTA5NDQ5IiwiXzB4NDU1OGJiIiwiXzB4MTA3OWNmIiwiXzB4NTRiYjMwIiwiXzB4NDJjYjQ1IiwiXzB4NWFjMzIwIiwiXzB4MjEyNDk1IiwiXzB4NDVmMGQxIiwiXzB4MjFhNzllIiwiXzB4MTgzZmQxIiwiXzB4M2ViNzUzIiwiXzB4MzZlMmVhIiwiXzB4Mzc4YjQ5IiwiXzB4NTM2MWNmIiwiXzB4MWFhYjQ3IiwiXzB4MzFlNDA5IiwiZG9jdW1lbnQiLCJfMHg0NzkwYWYiLCJSRUQiLCJfMHg3NDI0YTciLCJfMHg4Yzg4MmQiLCJfMHg1NWRiNGMiXSwibWFwcGluZ3MiOiI4b0JBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNBQVVJLFNBQVYs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LFNBQUEsQyxnQkFBQSxFLEdBREEsQ0FFQSxNQUFNQyxTQUFBLENBQVUvQyxDQUFBLEMsZ0JBQUEsQ0FBaEIsQ0FDQStDLFNBQUEsQyxhQUFBLEVBQW9CLEMsY0FDaEIsQ0FBYUMsU0FBYixDLGtDQUNXQSxTQUFBLEMsV0FBQSxJLGtCQUZLLENBQXBCLEMsRUEzQnNDLEMsWUFpQzFDLEUsRUFqQzBDLENBQTlDLEMsRUE3WkosRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIHZhciBCcm93c2VEaXJlY3Rpb247XG4gICAgKGZ1bmN0aW9uIChCcm93c2VEaXJlY3Rpb24pIHtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkZvcndhcmRcIl0gPSAwXSA9IFwiRm9yd2FyZFwiO1xuICAgICAgICBCcm93c2VEaXJlY3Rpb25bQnJvd3NlRGlyZWN0aW9uW1wiSW52ZXJzZVwiXSA9IDFdID0gXCJJbnZlcnNlXCI7XG4gICAgICAgIEJyb3dzZURpcmVjdGlvbltCcm93c2VEaXJlY3Rpb25bXCJCb3RoXCJdID0gMl0gPSBcIkJvdGhcIjtcbiAgICAgICAgQnJvd3NlRGlyZWN0aW9uW0Jyb3dzZURpcmVjdGlvbltcIkludmFsaWRcIl0gPSAzXSA9IFwiSW52YWxpZFwiO1xuICAgIH0pKEJyb3dzZURpcmVjdGlvbiB8fCAoQnJvd3NlRGlyZWN0aW9uID0ge30pKTtcbiAgICB2YXIgTm9kZUNsYXNzO1xuICAgIChmdW5jdGlvbiAoTm9kZUNsYXNzKSB7XG4gICAgICAgIE5vZGVDbGFzc1tOb2RlQ2xhc3NbXCJVbnNwZWNpZmllZFwiXSA9IDBdID0gXCJVbnNwZWNpZmllZFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiT2JqZWN0XCJdID0gMV0gPSBcIk9iamVjdFwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVcIl0gPSAyXSA9IFwiVmFyaWFibGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk1ldGhvZFwiXSA9IDRdID0gXCJNZXRob2RcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIk9iamVjdFR5cGVcIl0gPSA4XSA9IFwiT2JqZWN0VHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmFyaWFibGVUeXBlXCJdID0gMTZdID0gXCJWYXJpYWJsZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIlJlZmVyZW5jZVR5cGVcIl0gPSAzMl0gPSBcIlJlZmVyZW5jZVR5cGVcIjtcbiAgICAgICAgTm9kZUNsYXNzW05vZGVDbGFzc1tcIkRhdGFUeXBlXCJdID0gNjRdID0gXCJEYXRhVHlwZVwiO1xuICAgICAgICBOb2RlQ2xhc3NbTm9kZUNsYXNzW1wiVmlld1wiXSA9IDEyOF0gPSBcIlZpZXdcIjtcbiAgICB9KShOb2RlQ2xhc3MgfHwgKE5vZGVDbGFzcyA9IHt9KSk7XG4gICAgLy8gIGNvbnN0IHEgPSBSZWZlcmVuY2VUeXBlSWRzLk9yZ2FuaXplcztcbiAgICBmdW5jdGlvbiByZXNvbHZlTm9kZUlkKG5vZGVJZExpa2UpIHtcbiAgICAgICAgc3dpdGNoIChub2RlSWRMaWtlKSB7XG4gICAgICAgICAgICBjYXNlIFwiT3JnYW5pemVzXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaT0zNVwiO1xuICAgICAgICAgICAgY2FzZSBcIkhhc0NvbXBvbmVudFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImk9NDdcIjtcbiAgICAgICAgICAgIGNhc2UgXCJIYXNDaGlsZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiBcImk9MzRcIjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IE9yZ2FuaXplc1JlZk5vZGVJZCA9IFwibnM9MDtpPTM1XCI7XG4gICAgY29uc3QgRm9sZGVyVHlwZSA9IFwibnM9MDtpPTYxXCI7XG4gICAgY29uc3QgSGFzQ29tcG9uZW50UmVmTm9kZUlkID0gXCJucz0wO2k9NDdcIjtcbiAgICBjb25zdCBIYXNQcm9wZXJ0eVJlZk5vZGVJZCA9IFwibnM9MDtpPTQ2XCI7XG5cbiAgICBjb25zdCBnZXRJY29uID0gKHJlZmVyZW5jZSkgPT4ge1xuICAgICAgICBzd2l0Y2ggKHJlZmVyZW5jZS5ub2RlQ2xhc3MpIHtcbiAgICAgICAgICAgIGNhc2UgXCJPYmplY3RcIjpcbiAgICAgICAgICAgICAgICBpZiAocmVmZXJlbmNlLnJlZmVyZW5jZVR5cGVJZCA9PT0gT3JnYW5pemVzUmVmTm9kZUlkKSA7XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS50eXBlRGVmaW5pdGlvbiA9PT0gRm9sZGVyVHlwZSB8fCByZWZlcmVuY2UucmVmZXJlbmNlVHlwZUlkID09PSBcImk9NjFcIikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWZvbGRlclwiLCBjb2xvcjogXCJyZ2JhKDYxLCA2MCwgNCwgMC41MjUpXCIgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1vYmplY3QtZ3JvdXBcIiwgY29sb3I6IFwiU2VhR3JlZW5cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIlZhcmlhYmxlXCI6XG4gICAgICAgICAgICAgICAgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc0NvbXBvbmVudFJlZk5vZGVJZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIlN0ZWVsQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlZmVyZW5jZS5yZWZlcmVuY2VUeXBlSWQgPT09IEhhc1Byb3BlcnR5UmVmTm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtbGlzdC1hbHRcIiwgY29sb3I6IFwiRG9kZ2VyQmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLWxpc3QtYWx0XCIsIGNvbG9yOiBcIkNhZGV0Qmx1ZVwiIH07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FzZSBcIk1ldGhvZFwiOlxuICAgICAgICAgICAgICAgIHJldHVybiB7IGljb246IFwiZmEtY29nXCIsIGNvbG9yOiBcIlNhbmR5QnJvd25cIiB9O1xuICAgICAgICAgICAgY2FzZSBcIk9iamVjdFR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLW9iamVjdC1ncm91cFwiLCBjb2xvcjogXCJEYXJrT3JhbmdlXCIgfTtcbiAgICAgICAgICAgIGNhc2UgXCJWYXJpYWJsZVR5cGVcIjpcbiAgICAgICAgICAgICAgICByZXR1cm4geyBpY29uOiBcImZhLXNsaWRlcnNcIiwgY29sb3I6IFwiRGFya09yYW5nZVwiIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgaWNvbjogXCJmYS1xdWVzdGlvblwiLCBjb2xvcjogXCJncmV5XCIgfTtcbiAgICB9O1xuXG4gICAgY29uc3QgYnJvd3NlID0gKHsgZW5kcG9pbnROb2RlLCBlbmRwb2ludCwgYmFzZVVybCB9LCBub2RlSWQsIHRlbXBsYXRlKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IHVybCA9IGAke3Jvb3R9L2Jyb3dzZWA7XG4gICAgICAgIGNvbnN0IGJyb3dzZURlc2NyaXB0aW9uID0gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0ZW1wbGF0ZSksIHsgbm9kZUlkLCByZXN1bHRNYXNrOiA2MyB9KTtcbiAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQsXG4gICAgICAgICAgICAgICAgYnJvd3NlRGVzY3JpcHRpb24sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGhlYWRlcnM6IHsgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIgfSxcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImZlY2h0aW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlczogW10gfTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoZWQgOiBcIiwgZGF0YS5zdGF0dXMsIGRhdGEuc3RhdHVzVGV4dCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgIGNvbnN0IHJlZmVyZW5jZXMgPSByZXNwb25zZS5icm93c2VSZXN1bHQucmVmZXJlbmNlcyB8fCBbXTtcbiAgICAgICAgcmV0dXJuIHsgcmVmZXJlbmNlcyB9O1xuICAgIH0pO1xuXG4gICAgY29uc3QgdGVtcGxhdGUxID0ge1xuICAgICAgICByZWZlcmVuY2VUeXBlSWQ6IHJlc29sdmVOb2RlSWQoXCJIYXNDaGlsZFwiKSxcbiAgICAgICAgaW5jbHVkZVN1YnR5cGVzOiB0cnVlLFxuICAgICAgICBicm93c2VEaXJlY3Rpb246IEJyb3dzZURpcmVjdGlvbi5Gb3J3YXJkLFxuICAgICAgICBub2RlQ2xhc3NNYXNrOiBOb2RlQ2xhc3MuVmFyaWFibGUgfCBOb2RlQ2xhc3MuT2JqZWN0IHwgTm9kZUNsYXNzLk1ldGhvZCxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5PYmplY3RUeXBlIHxcbiAgICAgICAgLy8gIE5vZGVDbGFzcy5WYXJpYWJsZVR5cGUgfFxuICAgICAgICAvLyBOb2RlQ2xhc3MuUmVmZXJlbmNlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5EYXRhVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5WaWV3LFxuICAgICAgICByZXN1bHRNYXNrOiA2MyxcbiAgICB9O1xuICAgIGNvbnN0IHRlbXBsYXRlMiA9IHtcbiAgICAgICAgcmVmZXJlbmNlVHlwZUlkOiByZXNvbHZlTm9kZUlkKFwiT3JnYW5pemVzXCIpLFxuICAgICAgICBpbmNsdWRlU3VidHlwZXM6IHRydWUsXG4gICAgICAgIGJyb3dzZURpcmVjdGlvbjogQnJvd3NlRGlyZWN0aW9uLkZvcndhcmQsXG4gICAgICAgIG5vZGVDbGFzc01hc2s6IE5vZGVDbGFzcy5WYXJpYWJsZSB8IE5vZGVDbGFzcy5PYmplY3QgfCBOb2RlQ2xhc3MuTWV0aG9kLFxuICAgICAgICAvLyAgTm9kZUNsYXNzLk9iamVjdFR5cGUgfFxuICAgICAgICAvLyAgTm9kZUNsYXNzLlZhcmlhYmxlVHlwZSB8XG4gICAgICAgIC8vIE5vZGVDbGFzcy5SZWZlcmVuY2VUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLkRhdGFUeXBlIHxcbiAgICAgICAgLy8gTm9kZUNsYXNzLlZpZXcsXG4gICAgICAgIHJlc3VsdE1hc2s6IDYzLFxuICAgIH07XG4gICAgY29uc3QgaW50ZXJuYWxWZXJpZnkgPSAoeyBlbmRwb2ludE5vZGUsIGVuZHBvaW50LCBiYXNlVXJsIH0sICRpbnB1dEVsZW1lbnQsICRpbmZvKSA9PiBfX2F3YWl0ZXIodm9pZCAwLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWVuZHBvaW50MmA7XG4gICAgICAgIGNvbnN0IG5vZGVJZCA9ICRpbnB1dEVsZW1lbnQudmFsKCk7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB5aWVsZCBmZXRjaChgJHtyb290fS9jaGVja05vZGVJZGAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlLFxuICAgICAgICAgICAgICAgIGVuZHBvaW50LFxuICAgICAgICAgICAgICAgIG5vZGVJZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3Qgc2V0Tm90aWYgPSAodGV4dCwgY2xhc3NOYW1lKSA9PiB7XG4gICAgICAgICAgICAkaW5mby50ZXh0KHRleHQpLmFkZENsYXNzKFwic3RlcmZpdmUtaW5mb1wiKS5hZGRDbGFzcyhjbGFzc05hbWUpO1xuICAgICAgICAgICAgJGluZm8uc2hvdygpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgJGluZm8ucmVtb3ZlQ2xhc3MoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgICAgICAkaW5mby5oaWRlKCk7XG4gICAgICAgICAgICB9LCAzMDAwKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QganNvbiA9ICh5aWVsZCBkYXRhLmpzb24oKSk7XG4gICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAvLyBkbyBzb21ldGhpbmc7XG4gICAgICAgICAgICBzZXROb3RpZihcIiEhZmFpbHVyZSEhXCIgKyBub2RlSWQsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGlmIChqc29uLnN0YXR1c0NvZGUubWF0Y2goL0dvb2QvKSkge1xuICAgICAgICAgICAgICAgIC8vIGRvIHNvbWV0aGluZ1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGpzb24ubm9kZUFkZHJlc3NTdHJpbmcpO1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudHJpZ2dlcihcImNoYW5nZVwiKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZihcIkdvb2RcIiwgXCJva1wiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICRpbnB1dEVsZW1lbnQudmFsKGAke25vZGVJZH1gKTtcbiAgICAgICAgICAgICAgICBzZXROb3RpZihgJHtqc29uLnN0YXR1c0NvZGV9ICR7ZGF0YS5zdGF0dXNUZXh0fWAsIFwiZmFpbHVyZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGZ1bmN0aW9uIGZldGNoQ2hpbGRyZW4oJG5vZGUsIGRhdGEpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGVJZCA9ICRub2RlLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgIGNvbnN0IGJyb3dzZVJlc3VsdDEgPSB5aWVsZCBicm93c2UoZGF0YSwgbm9kZUlkLCB0ZW1wbGF0ZTEpO1xuICAgICAgICAgICAgY29uc3QgYnJvd3NlUmVzdWx0MiA9IHlpZWxkIGJyb3dzZShkYXRhLCBub2RlSWQsIHRlbXBsYXRlMik7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFsuLi5icm93c2VSZXN1bHQxLnJlZmVyZW5jZXMsIC4uLmJyb3dzZVJlc3VsdDIucmVmZXJlbmNlc10sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWFrZUVsZW1lbnQgPSAocmVmZXJlbmNlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmICghcmVmZXJlbmNlKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhIGZhLWVycm9yXCIgc3R5bGU9XCJjb2xvcjpyZWQ7XCI+PC9pPm5vIHJlZmVyZW5jZSAhPHVsPjwvdWw+PC9saT5gKTtcbiAgICAgICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuID0gcmVmZXJlbmNlLm5vZGVJZC50b1N0cmluZygpO1xuICAgICAgICBjb25zdCB0ID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgY29uc3QgeyBpY29uLCBjb2xvciB9ID0gZ2V0SWNvbihyZWZlcmVuY2UpO1xuICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQoYDxsaT48aSBjbGFzcz1cImZhICR7aWNvbn1cIiBzdHlsZT1cImNvbG9yOiR7Y29sb3J9O1wiPjwvaT4gJHt0fTx1bD48L3VsPjwvbGk+YCk7XG4gICAgICAgICRlbGVtZW50LmFkZENsYXNzKFwiZXhwYW5kYWJsZVwiKTtcbiAgICAgICAgJGVsZW1lbnQuZGF0YShcInZhbHVlXCIsIG4pO1xuICAgICAgICAkZWxlbWVudC5kYXRhKFwicmVmZXJlbmNlXCIsIHJlZmVyZW5jZSk7XG4gICAgICAgIHJldHVybiAkZWxlbWVudDtcbiAgICB9O1xuICAgIGNvbnN0IGRlY2xhcmVOb2RlQnJvd3NlcldpZGdldCA9ICgpID0+IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFsgVGVtcGVyYXR1cmUgIF1cbiAgICAgICAgICogICAoIHRvb2x0aXAgOiAoL09iamVjdHMvTXlTZW5zb3IpIChucz0xO3M9VGVtcGVyYXR1cmUpKVxuICAgICAgICAgKiBbICsgW0ZvbGRlcl0gT2JqZWN0c11cbiAgICAgICAgICogWyAgICAgW09iamVjdF0gTXlTZW5zb3JdXG4gICAgICAgICAqIFsgICAgICggKSBbVmFyaWFibGVdIFRlbXBlcmF0dXJlXVxuICAgICAgICAgKi9cbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5ub2RlQnJvd3NlclwiLCB7XG4gICAgICAgICAgICAvKiBkZWZhdWx0IG9wdGlvbnMgKi9cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6ICgpID0+ICh7IGVuZHBvaW50OiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzXCIgfSksXG4gICAgICAgICAgICAgICAgZW5kcG9pbnQ6ICgpID0+IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBwYXJlbnROb2RlOiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICBicm93c2VOYW1lOiB7IG5hbWVzcGFjZUluZGV4OiAwLCBuYW1lOiBcIk9iamVjdHNcIiB9LFxuICAgICAgICAgICAgICAgICAgICBub2RlQ2xhc3M6IFwiT2JqZWN0XCIsXG4gICAgICAgICAgICAgICAgICAgIG5vZGVJZDogXCJucz0wO2k9ODVcIixcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheU5hbWU6IHsgdGV4dDogXCJPYmplY3RzXCIgfSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZURlZmluaXRpb246IEZvbGRlclR5cGUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgZmlsdGVyOiAoKSA9PiB0cnVlLFxuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZVBhcmVudE5vZGUoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB0eXBlb2YgdGhhdC5vcHRpb25zLnBhcmVudE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5wYXJlbnROb2RlKCkgOiB0aGF0Lm9wdGlvbnMucGFyZW50Tm9kZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGEgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geWllbGQgYTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNldCgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICB0aGF0LiR0cmVlLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNvbHZlUGFyZW50Tm9kZSgpLnRoZW4oKHBhcmVudE5vZGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChwYXJlbnROb2RlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhhdC4kdHJlZS5hcHBlbmQoJGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGF0LmN1cnJlbnRQYXJlbnQgPSBwYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZlcmlmeSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUsXG4gICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50ID09PSBcImZ1bmN0aW9uXCIgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQoKSA6IHRoYXQub3B0aW9ucy5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIGludGVybmFsVmVyaWZ5KGRhdGEsIHRoYXQuJGlucHV0LCB0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBfY3JlYXRlKCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRoYXQgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIF9mZXRjaERhdGFGb3JOb2RlKCRub2RlLCBmZXRjaEZ1bmMsIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbm9kZS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImFscmVhZHkgZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoJG5vZGUuaGFzQ2xhc3MoXCJsb2FkaW5nXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJhbHJlYWR5IGxvYWRpbmdcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYWRkQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuYXBwZW5kKCc8ZGl2IGNsYXNzPVwic3Bpbm5lclwiPjwvZGl2PicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmVtcHR5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSB5aWVsZCBmZXRjaEZ1bmMoJG5vZGUsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcmVmZXJlbmNlIG9mIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5maWx0ZXIgJiYgIXRoYXQub3B0aW9ucy5maWx0ZXIocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSBtYWtlRWxlbWVudChyZWZlcmVuY2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZCgkZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRub2RlLmFkZENsYXNzKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbm9kZS5jaGlsZHJlbihcInVsXCIpLmFwcGVuZChgPGxpPmVycm9yICR7ZXJyLm1lc3NhZ2V9PC9saT5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUuZmluZChcIi5zcGlubmVyXCIpLnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJG5vZGUucmVtb3ZlQ2xhc3MoXCJsb2FkaW5nXCIpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhhdC4kaW5wdXQgPSB0aGlzLmVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhhdC4kY29tYm8gPSAkKFwiPGRpdi8+XCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFkZENsYXNzKFwic3RlcmZ2ZS1jb21iby1ib3hcIik7XG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LnJlcGxhY2VXaXRoKHRoYXQuJGNvbWJvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcImlucHV0LWdyb3VwXCIpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbnB1dEdyb3VwKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiRpbnB1dCk7XG4gICAgICAgICAgICAgICAgdGhhdC4kdG9nZ2xlVHJlZUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1zaXRlbWFwXCI+PC9pPjwvYnV0dG9uPmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0R3JvdXAuYXBwZW5kKHRoYXQuJHRvZ2dsZVRyZWVCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRvZ2dsZVRyZWVCdG4ub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhhdC4kZHJvcGRvd24uaXMoXCI6dmlzaWJsZVwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHJlZSB3aWRnZXQgaXMgZ29pbmcgdG8gYmVjb21lIHZpc2libGVcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzb2x2ZVBhcmVudE5vZGUoKS50aGVuKChwYXJlbnROb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwYXJlbnROb2RlICE9PSB0aGF0LmN1cnJlbnRQYXJlbnQgfHwgKChfYSA9IHRoYXQuY3VycmVudFBhcmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm5vZGVJZCkgIT09IHBhcmVudE5vZGUubm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0biA9ICQoYDxidXR0b24+PGkgY2xhc3M9XCJmYSBmYS1mbGFza1wiPjwvaT48L2J1dHRvbj5gKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dEdyb3VwLmFwcGVuZCh0aGF0LiR2ZXJpZnlCdG4pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHZlcmlmeUJ0bi5vbihcImNsaWNrXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy52ZXJpZnkoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoYXQuJGlucHV0LmF0dHIoXCJwbGFjZWhvbGRlclwiKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC5hdHRyKFwicGxhY2Vob2xkZXJcIiwgXCJlbnRlciBhIG5vZGVJZCBvciBhIGJyb3dzZVBhdGggXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGF0LiRpbmZvID0gJChgPGRpdiBjbGFzcz1cImluZm8tdGV4dFwiPjwvZGl2PmApO1xuICAgICAgICAgICAgICAgIHRoYXQuJGluZm8uaGlkZSgpO1xuICAgICAgICAgICAgICAgIC8vIEZldGNoIG5ldyBkYXRhIGZvciB0aGlzIG5vZGVcbiAgICAgICAgICAgICAgICAoe1xuICAgICAgICAgICAgICAgICAgICBiYXNlVXJsOiB0aGF0Lm9wdGlvbnMuYmFzZVVybCxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB0eXBlb2YgdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSA9PT0gXCJmdW5jdGlvblwiID8gdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHRoYXQuJGRyb3Bkb3duID0gJChcIjxkaXYvPlwiKS5hZGRDbGFzcyhcInN0ZXJmdmUtZHJvcGRvd25cIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJGNvbWJvLmFwcGVuZCh0aGF0LiRpbmZvKTtcbiAgICAgICAgICAgICAgICB0aGF0LiRjb21iby5hcHBlbmQodGhhdC4kZHJvcGRvd24pO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUgPSAkKGA8dWwgY2xhc3M9XCJzdGVyZml2ZS10cmVlXCI+PC91bD5gKS5hcHBlbmRUbyh0aGF0LiRkcm9wZG93bik7XG4gICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIHRoYXQuJHRyZWUub24oXCJjbGlja1wiLCBcImxpXCIsIGZ1bmN0aW9uIChldmVudCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0ICRsaSA9ICQodGhpcyk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVdpZHRoID0gMjA7IC8vIFNldCB3aWR0aCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBiZWZvcmVIZWlnaHQgPSAyMDsgLy8gU2V0IGhlaWdodCBvZiB0aGUgOjpiZWZvcmUgY29udGVudFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50UG9zID0gJCh0aGlzKS5vZmZzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZSA9IGV2ZW50O1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS5wYWdlWCA+PSBlbGVtZW50UG9zLmxlZnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVggPD0gZWxlbWVudFBvcy5sZWZ0ICsgYmVmb3JlV2lkdGggJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPj0gZWxlbWVudFBvcy50b3AgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucGFnZVkgPD0gZWxlbWVudFBvcy50b3AgKyBiZWZvcmVIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRhYmxlXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsaS5oYXNDbGFzcyhcImZldGNoZWRcIikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkuY2hpbGRyZW4oXCJ1bFwiKS50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCBuZXcgZGF0YSBmb3IgdGhpcyBub2RlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZVVybDogdGhhdC5vcHRpb25zLmJhc2VVcmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50Tm9kZTogdHlwZW9mIHRoYXQub3B0aW9ucy5lbmRwb2ludE5vZGUgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGF0Lm9wdGlvbnMuZW5kcG9pbnROb2RlKClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhhdC5vcHRpb25zLmVuZHBvaW50Tm9kZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnQ6IHR5cGVvZiB0aGF0Lm9wdGlvbnMuZW5kcG9pbnQgPT09IFwiZnVuY3Rpb25cIiA/IHRoYXQub3B0aW9ucy5lbmRwb2ludCgpIDogdGhhdC5vcHRpb25zLmVuZHBvaW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgX2ZldGNoRGF0YUZvck5vZGUoJGxpLCBmZXRjaENoaWxkcmVuLCBkYXRhKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiIEZldGNoaW5nIGRvbmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiZmV0Y2hlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFyayBhcyBleHBhbmRlZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGkucmVtb3ZlQ2xhc3MoXCJleHBhbmRhYmxlXCIpLmFkZENsYXNzKFwiZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmNhdGNoKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnJlbW92ZUNsYXNzKFwiZXhwYW5kYWJsZVwiKS5hZGRDbGFzcyhcImV4cGFuZGVkXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICgkbGkuaGFzQ2xhc3MoXCJleHBhbmRlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvZ2dsZSBpdHMgZXhwYW5kZWQvY29sbGFwc2VkIHN0YXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLmNoaWxkcmVuKFwidWxcIikudG9nZ2xlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gU3dhcCBleHBhbmRhYmxlIGFuZCBleHBhbmRlZCBjbGFzc2VzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKFwiZXhwYW5kYWJsZSBleHBhbmRlZFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKCRsaS5jaGlsZHJlbihcInVsXCIpLmNoaWxkcmVuKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS5jaGlsZHJlbihcInVsXCIpLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFN3YXAgZXhwYW5kYWJsZSBhbmQgZXhwYW5kZWQgY2xhc3Nlc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcyhcImV4cGFuZGFibGUgZXhwYW5kZWRcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gJGxpLmRhdGEoXCJ2YWx1ZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9ICRsaS5kYXRhKFwicmVmZXJlbmNlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUgJiYgIXRoYXQub3B0aW9ucy5pc1NlbGVjdGFibGUocmVmZXJlbmNlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LmRhdGEoXCJyZWZlcmVuY2VcIiwgcmVmZXJlbmNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlOYW1lID0gKChfYSA9IHJlZmVyZW5jZS5kaXNwbGF5TmFtZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnRleHQpIHx8ICgoX2IgPSByZWZlcmVuY2UuYnJvd3NlTmFtZSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLm5hbWUpIHx8IHJlZmVyZW5jZS5ub2RlSWQudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0gYFske2Rpc3BsYXlOYW1lfV0oJHt2YWx1ZX0pYDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQuJGlucHV0LnZhbChpbnB1dCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGF0LiRpbnB1dC50cmlnZ2VyKFwiY2hhbmdlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgJChkb2N1bWVudCkub24oXCJjbGlja1wiLCBmdW5jdGlvbiAoZXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY2xpY2tpbmcgb3V0c2lkZSB0aGUgcGFnZSB3aWxsIGhpZGUgdGhlIGRyb3Bkb3duXG4gICAgICAgICAgICAgICAgICAgIGlmICghJChldmVudC50YXJnZXQpLmNsb3Nlc3QodGhhdC4kY29tYm8pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhhdC4kZHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUkVELm5vZGVzLnJlZ2lzdGVyVHlwZShcIk9wY1VhLUNsaWVudDItV3JpdGVcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJvcGN1YVwiLFxuICAgICAgICBjb2xvcjogXCIjQzBERUVEXCIsXG4gICAgICAgIGFsaWduOiBcInJpZ2h0XCIsXG4gICAgICAgIGljb246IFwiLi4vLi4vaWNvbnMvb3BjdWFub2RlTG9nby5wbmdcIixcbiAgICAgICAgZGVmYXVsdHM6IHtcbiAgICAgICAgICAgIGlucHV0czogeyB2YWx1ZTogMSB9LFxuICAgICAgICAgICAgb3V0cHV0OiB7IHZhbHVlOiA0IH0sXG4gICAgICAgICAgICAvLyBDb21tb25cbiAgICAgICAgICAgIG5hbWU6IHsgdmFsdWU6IFwiXCIgfSxcbiAgICAgICAgICAgIGVuZHBvaW50OiB7IHZhbHVlOiBcIlwiLCByZXF1aXJlZDogdHJ1ZSwgdHlwZTogXCJPcGNVYS1FbmRwb2ludDJcIiB9LFxuICAgICAgICAgICAgYXR0cmlidXRlSWQ6IHsgdmFsdWU6IFwiVmFsdWVcIiwgcmVxdWlyZWQ6IHRydWUgfSxcbiAgICAgICAgICAgIG5vZGVJZDogeyB2YWx1ZTogXCJcIiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGlucHV0czogMSxcbiAgICAgICAgb3V0cHV0czogMSxcbiAgICAgICAgbGFiZWwoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lIHx8IFwiT1BDVUEgQ2xpZW50IFdyaXRlXCI7XG4gICAgICAgIH0sXG4gICAgICAgIGxhYmVsU3R5bGUoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5uYW1lID8gXCJub2RlX2xhYmVsX2l0YWxpY1wiIDogXCJcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgZGVjbGFyZU5vZGVCcm93c2VyV2lkZ2V0KCk7XG4gICAgICAgICAgICBub2RlLmlucHV0cyA9IDE7XG4gICAgICAgICAgICBjb25zdCAkbm9kZUlkID0gJChcIiNub2RlLWlucHV0LW5vZGVJZFwiKTtcbiAgICAgICAgICAgICRub2RlSWQubm9kZUJyb3dzZXIoe1xuICAgICAgICAgICAgICAgIGlzU2VsZWN0YWJsZShub2RlRGVzYykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZURlc2Mubm9kZUNsYXNzID09PSBcIlZhcmlhYmxlXCI7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkgeyB9LFxuICAgIH0pO1xuXG59KSgpOyJdfQ==
9
+ </script>
10
+ <script type="text/x-red" data-template-name="OpcUa-Client2-Write">
11
+ <h3>OpcUa Write</h3>
12
+ <div class="form-row">
13
+ <label for="node-input-name"><i class="icon-tasks"></i>Name</label>
14
+ <input type="text" id="node-input-name" placeholder="enter the friendly name of the node" />
15
+ </div>
16
+ <div class="form-row">
17
+ <label for="node-input-endpoint"><i class="icon-tasks"></i> Endpoint</label>
18
+ <input type="text" id="node-input-endpoint" placeholder="opc.tcp://localhost:4334" />
19
+ </div>
20
+
21
+ <div class="form-row">
22
+ <label for="node-input-attributeId">AttributeId</label>
23
+ <select type="text" id="node-input-attributeId" style="width: 72%">
24
+ <option selected value="Value">Value</option>
25
+ </select>
26
+ </div>
27
+ <div class="form-row">
28
+ <label for="node-input-nodeId"><i class="fa fa-tag"></i>NodeId</label>
29
+ <input type="text" id="node-input-nodeId" placeholder="ns=2;s=Variable1 or empty" />
30
+ <button for="node-input-nodeId" id="nodeId-checkBtn" class="red-ui-button red-ui-button-small" style="margin-left: 10px">
31
+ <i class="fa fa-flask"></i>Check
32
+ </button>
33
+ </div>
34
+
35
+ </script>
36
+
37
+ <script type="text/markdown" data-help-name="OpcUa-Client2-Write">
38
+ perform a Write action on a OpcUA Server
39
+
40
+ #### Write action
41
+
42
+ you can either
43
+
44
+ - Inject your OPC UA address (NodeId) by the `topic` attribute of an Inject node or with a OpcUa-Item.
45
+ - Or use the specify nodeId
46
+
47
+ the value has to be passed as a `payload`
48
+
49
+ </script>
@@ -0,0 +1,2 @@
1
+ const { init_OpcUa_Client2_Write} = require("../../all.js");
2
+ module.exports = init_OpcUa_Client2_Write;
@@ -0,0 +1,2 @@
1
+ .licence-widget-icon{font-size:1.5em;margin-right:10px}.licence-widget{background-color:#fdfdfd;border:1px solid #eaeaea;border-radius:6px;box-sizing:border-box;font-family:Courier New,Courier,monospace;font-size:.8em;font-style:italic;margin-bottom:10px;margin-top:10px;max-height:200px;overflow-x:auto;overflow-y:auto;padding:10px;white-space:nowrap;width:100%}.licence-widget::-webkit-scrollbar{display:none}.licence-widget{scrollbar-color:transparent transparent;scrollbar-width:none}.licence-widget-AUTHORIZED{background-color:#d5f5e3}.licence-widget-FAILED{background-color:#fadbd8}.licence-widget-details{text-wrap:pretty;font-size:.8em;font-style:italic;padding:2px}
2
+ /*# sourceMappingURL=OpcUa-Endpoint2.css.map */