@opcua/for-node-red 2.20.0 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,8 +4,8 @@
4
4
  </style>
5
5
 
6
6
  <script type="text/javascript">
7
- function _0x4a5b(_0xc5407f,_0x4e4fee){const _0x208aed=_0x208a();return _0x4a5b=function(_0x4a5b44,_0x14c9ae){_0x4a5b44=_0x4a5b44-0x122;let _0x1289ca=_0x208aed[_0x4a5b44];return _0x1289ca;},_0x4a5b(_0xc5407f,_0x4e4fee);}function _0x208a(){const _0x5f2e01=['appendTo','#subscriptions-container','-failure','empty','height:\x20100%;max-height:\x20100%;','securityMode','Subscriptions','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW',':checked','log','replace','join','64ATRzLA','css','suppressed','open','#node-config-input-userPrivatekey','application/json','Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.','value','<p>','addClass','#node-config-input-userName','\x20It\x20will\x20expire\x20in\x20','#test-connection','daysLeft','4106349IYVszU','prop','POST','1326292DISYIx','children','.input-name','removeAttr','3CkwiQB','#node-config-input-name','error','isArray','attr','config','Licence\x20has\x20expired','Your\x20license\x20is\x20currently\x20invalid.','type','toISOString','invalid\x20userIdentityType\x20','.input-publishingEnabled','#toggleAdvancedSection','Sign','addItem','OpcUa-Endpoint2','priority','show','#node-input-receiveBufferSize','requestedMaxKeepAliveCount','then','val','#node-input-maxChunkCount','userIdentityType','password','10xVQRlo','#section-TransportSettings','_blank','element','createElement','assign','PROFESSIONAL','parameters','done','#node-input-maxMessageSize','opcua\x20endpoint','/opcua-for-node-red','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','.input-requestedMaxKeepAliveCount','<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>','head','src','endpoint-tab-subscriptions','#node-config-input-securityPolicy','margin-top:\x2020px;','.input-isDefault','statusText','find','apply','150px','create','licence-widget-icon','#goto-config','onPremiseServerHost','.input-requestedLifetimeCount','The\x20Trial\x20will\x20expire\x20in\x20','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','json','width','stringify','#node-input-useTransport','/opcua-for-node-red/test-connection','Please\x20contact\x20','#node-config-input-pkiName','match','licence-widget','html','65WnOalK','removeClass','Connection','FAILED','None','Fast\x20Subscription','each','976600nMHJwG','<span>','baseUrl','next','\x20days.','Default\x20Subscription','registerType','requestedPublishingInterval','FREEWARE','status','checked','#section-Advanced','AUTHORIZED','hide','readonly','change','invalid\x20securityMode\x20','connection','label','push','Testing\x20Connection\x20...','licenceWidget','Basic256Sha256','<i>','#node-config-input-securityMode','#checkCertificate','#node-config-input-useTransport','map','50326JwcLvj','<stripe-pricing-table/>','#node-config-input-userIdentityType','184554nmQTQY','EXPIRED','#node-config-input-password','maxNotificationsPerPublish','invalid\x20endpoint','TRIAL','append','483057FuHQjC','subscribe-button','SignAndEncrypt','.section-userIdentityType-UserName','<br>','function','name','.input-maxNotificationsPerPublish','text','licenceInfo','click','-messages','-pending','subscriptions','120561qlesHH','clone','.input-requestedPublishingInterval','addTab','Certificate','Trial\x20licence','throw','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','length','fa\x20fa-calendar-time','https://js.stripe.com/v3/pricing-table.js','publishingEnabled','split','editableList','resize','node-config-endpoint-tabs','isDefault','Anonymous','style','template','err','/opcua-for-node-red/client_certificate.json','#node-input-sendBufferSize','result','.section-securityPolicy','Your\x20licence\x20is\x20valid.','btn\x20btn-primary','\x20-\x20','widget','.input-priority','endpoint','Freeware\x20licence','\x20to\x20acquire\x20a\x20license.','message','.red-ui-editableList-item-remove','\x20for\x20more\x20information.','/opcua-for-node-red/config','licence-widget-','catch','</p>','class','licenceType'];_0x208a=function(){return _0x5f2e01;};return _0x208a();}(function(_0x56832f,_0x24d538){const _0x25fa89=_0x4a5b,_0x1c6f35=_0x56832f();while(!![]){try{const _0x4998ae=parseInt(_0x25fa89(0x14a))/0x1*(parseInt(_0x25fa89(0x1b1))/0x2)+parseInt(_0x25fa89(0x1bb))/0x3+parseInt(_0x25fa89(0x195))/0x4+parseInt(_0x25fa89(0x18e))/0x5*(-parseInt(_0x25fa89(0x1b4))/0x6)+-parseInt(_0x25fa89(0x1c9))/0x7*(parseInt(_0x25fa89(0x135))/0x8)+-parseInt(_0x25fa89(0x143))/0x9*(-parseInt(_0x25fa89(0x163))/0xa)+-parseInt(_0x25fa89(0x146))/0xb;if(_0x4998ae===_0x24d538)break;else _0x1c6f35['push'](_0x1c6f35['shift']());}catch(_0x4807eb){_0x1c6f35['push'](_0x1c6f35['shift']());}}}(_0x208a,0x440a8),(function(){'use strict';const _0xe77def=_0x4a5b;function _0x59a7e8(_0x19e575,_0x5dc00f,_0x19eb90,_0x438340){function _0x23d2a3(_0x2e9143){return _0x2e9143 instanceof _0x19eb90?_0x2e9143:new _0x19eb90(function(_0x68ec7){_0x68ec7(_0x2e9143);});}return new(_0x19eb90||(_0x19eb90=Promise))(function(_0x3427a8,_0x59cece){const _0x48e07f=_0x4a5b;function _0x3176b3(_0x3a3f06){const _0xad5349=_0x4a5b;try{_0x55dcc(_0x438340[_0xad5349(0x198)](_0x3a3f06));}catch(_0x26eab0){_0x59cece(_0x26eab0);}}function _0x40cb0e(_0xc40e6d){const _0x58009f=_0x4a5b;try{_0x55dcc(_0x438340[_0x58009f(0x1cf)](_0xc40e6d));}catch(_0x1c7a64){_0x59cece(_0x1c7a64);}}function _0x55dcc(_0x5b5ecd){const _0x32073e=_0x4a5b;_0x5b5ecd[_0x32073e(0x16b)]?_0x3427a8(_0x5b5ecd[_0x32073e(0x13c)]):_0x23d2a3(_0x5b5ecd[_0x32073e(0x13c)])[_0x32073e(0x15e)](_0x3176b3,_0x40cb0e);}_0x55dcc((_0x438340=_0x438340[_0x48e07f(0x17b)](_0x19e575,_0x5dc00f||[]))[_0x48e07f(0x198)]());});}typeof SuppressedError===_0xe77def(0x1c0)?SuppressedError:function(_0x3f40ce,_0x321835,_0x50d6da){const _0x28dedd=_0xe77def;var _0x308e06=new Error(_0x50d6da);return _0x308e06['name']='SuppressedError',_0x308e06[_0x28dedd(0x14c)]=_0x3f40ce,_0x308e06[_0x28dedd(0x137)]=_0x321835,_0x308e06;};function _0x1a4b29(_0x26a373,_0x184c33,_0x2a5e49,_0xddbe76){const _0x44d364=_0xe77def,_0x25bfbc=$('#'+_0x26a373+'-success'),_0x32dced=$('#'+_0x26a373+_0x44d364(0x12b)),_0x1eb7f9=$('#'+_0x26a373+_0x44d364(0x1c7)),_0x25b65c=$('#'+_0x26a373+_0x44d364(0x1c6));let _0x5075ca=![];_0x25bfbc['hide'](),_0x32dced[_0x44d364(0x1a2)](),_0x1eb7f9[_0x44d364(0x1a2)](),_0x184c33['on'](_0x44d364(0x1c5),()=>{const _0x50d7c7=_0x44d364;if(_0x5075ca)return;_0x5075ca=!![],_0x1eb7f9[_0x50d7c7(0x18f)](_0x50d7c7(0x1a2)),_0x1eb7f9[_0x50d7c7(0x18d)](_0x50d7c7(0x1a9)),_0x25bfbc['addClass'](_0x50d7c7(0x1a2)),_0x32dced[_0x50d7c7(0x13e)](_0x50d7c7(0x1a2)),_0x25b65c[_0x50d7c7(0x18d)]('');const {body:_0x18c610,url:_0x5e43dc}=_0x2a5e49();fetch(_0x5e43dc,{'method':'POST','headers':{'Content-Type':_0x50d7c7(0x13a)},'body':JSON['stringify'](_0x18c610)})[_0x50d7c7(0x15e)](_0x32b96a=>_0x32b96a['json']())[_0x50d7c7(0x15e)](_0x304b9e=>{const _0x38e062=_0x50d7c7;_0x5075ca=![],_0x1eb7f9[_0x38e062(0x1a2)](),console['log'](JSON[_0x38e062(0x186)](_0x304b9e,null,'\x20'));if(_0x304b9e[_0x38e062(0x1e0)]==='ok')_0x25bfbc[_0x38e062(0x18f)](_0x38e062(0x1a2)),_0x32dced[_0x38e062(0x13e)](_0x38e062(0x1a2)),_0x25b65c['html'](_0x304b9e[_0x38e062(0x1ea)][_0x38e062(0x133)]('\x0a',_0x38e062(0x1bf)));else{const _0xcc2ce1=_0x44921a=>!_0x44921a?'':_0x44921a[_0x38e062(0x1d5)]('\x0a')[_0x38e062(0x1b0)](_0x531503=>_0x38e062(0x13d)+_0x531503+_0x38e062(0x126))['join']('\x0a'),_0x467132=_0x2b5e95=>Array[_0x38e062(0x14d)](_0x2b5e95)?_0x2b5e95['map'](_0xcc2ce1)[_0x38e062(0x134)]('\x0a'):_0xcc2ce1(_0x2b5e95);_0x25bfbc[_0x38e062(0x13e)](_0x38e062(0x1a2)),_0x32dced[_0x38e062(0x18f)](_0x38e062(0x1a2)),_0x25b65c[_0x38e062(0x18d)](_0x467132(_0x304b9e[_0x38e062(0x1ea)])+_0x467132(_0x304b9e['extra'])),_0xddbe76(new Error(_0x304b9e[_0x38e062(0x1e0)]),_0x304b9e);}})[_0x50d7c7(0x125)](_0x565a4a=>{const _0x591b36=_0x50d7c7;_0x5075ca=![],_0x1eb7f9[_0x591b36(0x13e)](_0x591b36(0x1a2)),_0x25bfbc[_0x591b36(0x13e)]('hide'),_0x32dced[_0x591b36(0x18f)]('hide'),_0x25b65c[_0x591b36(0x18d)]('internal\x20error\x20'+_0x565a4a[_0x591b36(0x1ea)]),console[_0x591b36(0x132)](_0x591b36(0x1dd),_0x565a4a);});});}const _0x2d8180='prctbl_1OJt49BCNccbzsVzkaANOgFL',_0x123e9d=_0xe77def(0x130);function _0x46303c(){return _0x59a7e8(this,arguments,void 0x0,function*(_0x5123bf=''){const _0x3772c8=_0x4a5b,_0x292764=_0x5123bf+_0x3772c8(0x16e),_0xbc89ec=_0x292764+'/licenceInfo',_0x371079=yield fetch(_0xbc89ec,{'method':_0x3772c8(0x145),'headers':{'Content-Type':_0x3772c8(0x13a)}}),_0x3c5480=new Date()[_0x3772c8(0x153)]();if(_0x371079['status']!==0xc8)return console[_0x3772c8(0x132)]('fetching\x20failed\x20with\x20error',_0x371079[_0x3772c8(0x19e)],_0x371079[_0x3772c8(0x179)]),{'status':_0x3772c8(0x191),'type':'FREEWARE','licenceInfo':{'expiryDate':_0x3c5480}};const _0x5c94e5=yield _0x371079[_0x3772c8(0x184)]();return _0x5c94e5;});}const _0x11d8de=()=>{const _0x43dd76=_0xe77def;$[_0x43dd76(0x1e5)]('sterfive.licenceWidget',{'options':{'baseUrl':''},'_create'(){const _0x161fb5=_0x43dd76,_0x2ac341=this,_0x32d970=_0x161fb5(0x172),_0x1af9a6=_0x161fb5(0x1d0);_0x46303c(_0x2ac341[_0x161fb5(0x197)])[_0x161fb5(0x15e)](_0x1cf7e7=>{const _0x496b6a=_0x161fb5;let _0xacd332='',_0x2daa59='',_0x141e74='';const _0x3c7137=_0x1cf7e7[_0x496b6a(0x19e)],_0x596142=_0x1cf7e7[_0x496b6a(0x142)];switch(_0x3c7137){case _0x496b6a(0x1a1):_0xacd332='fa\x20fa-check-circle';switch(_0x1cf7e7[_0x496b6a(0x152)]){case _0x496b6a(0x1b9):{_0x2daa59=_0x496b6a(0x1ce),_0x141e74=_0x496b6a(0x182)+_0x596142+_0x496b6a(0x16f)+_0x1af9a6+_0x496b6a(0x1e9);break;}case _0x496b6a(0x169):_0x2daa59=_0x496b6a(0x1e2);_0x596142<0x5a&&_0x596142>=0x0&&(_0x2daa59+=_0x496b6a(0x140)+_0x596142+_0x496b6a(0x199));_0x141e74=_0x1cf7e7[_0x496b6a(0x1c4)][_0x496b6a(0x128)]+_0x496b6a(0x1e4)+(_0x1cf7e7['licenceInfo'][_0x496b6a(0x180)]||'');break;case _0x496b6a(0x19d):_0x2daa59=_0x496b6a(0x1e8),_0x141e74=_0x496b6a(0x183)+_0x1af9a6+_0x496b6a(0x122);break;}break;case _0x496b6a(0x1b5):_0xacd332=_0x496b6a(0x1d2),_0x2daa59=_0x496b6a(0x150),_0x141e74=_0x496b6a(0x13b);break;case _0x496b6a(0x191):default:_0xacd332='fa\x20fa-exclamation-circle',_0x2daa59=_0x496b6a(0x151),_0x141e74=_0x496b6a(0x189)+_0x32d970+_0x496b6a(0x170);break;}this[_0x496b6a(0x166)]['addClass'](_0x496b6a(0x18c)),this[_0x496b6a(0x166)][_0x496b6a(0x13e)](_0x496b6a(0x124)+_0x3c7137),this['element']['append']($(_0x496b6a(0x196))['addClass'](_0x496b6a(0x17e))[_0x496b6a(0x1ba)]($(_0x496b6a(0x1ac))[_0x496b6a(0x13e)](_0xacd332))),this[_0x496b6a(0x166)]['append']($(_0x496b6a(0x196))['addClass']('licence-widget-msg')['text'](_0x2daa59)),this[_0x496b6a(0x166)]['append']($(_0x496b6a(0x1bf))),this[_0x496b6a(0x166)][_0x496b6a(0x1ba)]($(_0x496b6a(0x196))['addClass']('licence-widget-details')[_0x496b6a(0x1ba)](_0x141e74));if(_0x3c7137===_0x496b6a(0x1b5)||_0x3c7137==='FAILED'||_0x1cf7e7['type']===_0x496b6a(0x19d)||_0x1cf7e7['type']===_0x496b6a(0x1b9)){const _0x40b9fd=$('<button/>');_0x40b9fd[_0x496b6a(0x14e)]('id',_0x496b6a(0x1bc)),_0x40b9fd[_0x496b6a(0x14e)](_0x496b6a(0x127),_0x496b6a(0x1e3)),_0x40b9fd[_0x496b6a(0x14e)](_0x496b6a(0x1db),_0x496b6a(0x177)),_0x40b9fd['text']('Subscribe'),this[_0x496b6a(0x166)][_0x496b6a(0x1ba)](_0x40b9fd);const _0x451c58=document[_0x496b6a(0x167)]('script');_0x451c58[_0x496b6a(0x174)]=_0x496b6a(0x1d3),_0x451c58['async']=!![],$(_0x496b6a(0x173))[_0x496b6a(0x1ba)](_0x451c58);const _0x39ec04=$(_0x496b6a(0x1b2));_0x39ec04[_0x496b6a(0x14e)]('pricing-table-id',_0x2d8180),_0x39ec04[_0x496b6a(0x14e)]('publishable-key',_0x123e9d),_0x39ec04[_0x496b6a(0x14e)](_0x496b6a(0x1db),_0x496b6a(0x12d)),_0x39ec04[_0x496b6a(0x1a2)](),this[_0x496b6a(0x166)][_0x496b6a(0x1ba)](_0x39ec04),_0x40b9fd['on'](_0x496b6a(0x1c5),()=>{const _0x24ec23=_0x496b6a;_0x39ec04[_0x24ec23(0x15b)](),_0x40b9fd['hide'](),this['element'][_0x24ec23(0x14e)]('style','height:\x20100%\x20!important;');});}})[_0x161fb5(0x125)](_0x297f3a=>{console['log'](_0x297f3a);});}});};_0x11d8de();function _0x30eb81(_0x50b2d8){let _0x580c09;try{_0x580c09=new URL(_0x50b2d8);}catch(_0x50d307){return![];}return _0x580c09['protocol']==='opc.tcp:';}const _0x12202d={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED['nodes'][_0xe77def(0x19b)](_0xe77def(0x159),{'category':_0xe77def(0x14f),'paletteLabel':_0xe77def(0x16d),'defaults':{'name':{'value':''},'endpoint':{'value':'opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','required':!![],'validate':_0x30eb81},'securityMode':{'value':_0xe77def(0x192)},'securityPolicy':{'value':'None','validate':_0x57f7e1=>{if(!_0x57f7e1)return![];return!![];}},'userIdentityType':{'value':_0xe77def(0x1da)},'pkiName':{'value':'','validate':_0x25d758=>!_0x25d758||_0x25d758[_0xe77def(0x18b)](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':_0xe77def(0x19a),'isDefault':!![],'parameters':Object[_0xe77def(0x168)]({},_0x12202d)},{'id':'s2','name':'Slow\x20Subscription','isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':_0xe77def(0x193),'isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]}},'credentials':{'userName':{'type':_0xe77def(0x1c3)},'password':{'type':_0xe77def(0x162)},'userCertificate':{'type':_0xe77def(0x1c3)},'userPrivatekey':{'type':'password'}},'label':function(){const _0x588b5f=_0xe77def;return this[_0x588b5f(0x1c1)]||this[_0x588b5f(0x1e7)]||_0x588b5f(0x1b8);},'oneditsave'(){const _0x595427=_0xe77def,_0x3b0635=$(_0x595427(0x176)),_0x2cd431=$(_0x595427(0x1ad));_0x3b0635['val']()===_0x595427(0x192)&&_0x2cd431[_0x595427(0x1c3)](_0x595427(0x192));const _0x3e71e8=$(_0x595427(0x12a))['editableList']('items'),_0x4228a6=[],_0x56637d=_0x2e9dfb=>_0x2e9dfb;_0x3e71e8[_0x595427(0x194)](function(_0x46bab4,_0x5ef120){const _0x30b345=_0x595427,_0x1b1847=$(this),_0x5c15cf={'id':'s'+_0x46bab4,'name':_0x1b1847[_0x30b345(0x17a)]('.input-name')['val'](),'isDefault':!!_0x1b1847[_0x30b345(0x17a)](_0x30b345(0x178))[_0x30b345(0x15f)](),'parameters':{'publishingEnabled':!!_0x1b1847['find'](_0x30b345(0x155))['is'](_0x30b345(0x131)),'requestedLifetimeCount':_0x56637d(_0x1b1847[_0x30b345(0x17a)](_0x30b345(0x181))[_0x30b345(0x15f)]()),'requestedMaxKeepAliveCount':_0x56637d(_0x1b1847[_0x30b345(0x17a)]('.input-requestedMaxKeepAliveCount')[_0x30b345(0x15f)]()),'requestedPublishingInterval':_0x56637d(_0x1b1847[_0x30b345(0x17a)](_0x30b345(0x1cb))[_0x30b345(0x15f)]()),'maxNotificationsPerPublish':_0x56637d(_0x1b1847[_0x30b345(0x17a)](_0x30b345(0x1c2))['val']()),'priority':_0x56637d(_0x1b1847[_0x30b345(0x17a)](_0x30b345(0x1e6))[_0x30b345(0x15f)]())}};_0x5c15cf[_0x30b345(0x16a)][_0x30b345(0x1d4)]=!![],_0x5c15cf[_0x30b345(0x1d9)]&&_0x5c15cf['id']==='s0'&&(_0x5c15cf[_0x30b345(0x1c1)]=_0x30b345(0x19a)),_0x4228a6[_0x30b345(0x1a8)](_0x5c15cf);}),this[_0x595427(0x1c8)]=_0x4228a6;},'oneditprepare'(){const _0x1d12f6=_0xe77def,_0x58c0eb=this,_0x441b57=RED['tabs'][_0x1d12f6(0x17d)]({'id':_0x1d12f6(0x1d8),'onchange':function(_0x792656){const _0x59f0b4=_0x1d12f6;$('#node-config-endpoint-tabs-content')[_0x59f0b4(0x147)]()[_0x59f0b4(0x1a2)](),$('#'+_0x792656['id'])[_0x59f0b4(0x15b)]();}});_0x441b57[_0x1d12f6(0x1cc)]({'id':'endpoint-tab-connection','label':_0x1d12f6(0x190)},0x0),_0x441b57[_0x1d12f6(0x1cc)]({'id':_0x1d12f6(0x175),'label':_0x1d12f6(0x12f)},0x1),setTimeout(function(){const _0x26e377=_0x1d12f6;_0x441b57[_0x26e377(0x1d7)]();},0x0);{const _0x59316f=_0x4fc749=>{const _0x41ed19=_0x1d12f6;switch(_0x4fc749){case null:case undefined:case'':case'None':$(_0x41ed19(0x1e1))[_0x41ed19(0x1a2)]();break;case _0x41ed19(0x157):case _0x41ed19(0x1bd):{const _0x12593e=$(_0x41ed19(0x1e1));(_0x12593e[_0x41ed19(0x15f)]()==='None'||_0x12593e['val']()==='')&&_0x12593e[_0x41ed19(0x15f)](_0x41ed19(0x1ab)),$(_0x41ed19(0x1e1))[_0x41ed19(0x15b)]();}break;default:console[_0x41ed19(0x132)](_0x41ed19(0x1a5)+_0x4fc749);}};_0x59316f(_0x58c0eb[_0x1d12f6(0x12e)]);const _0x47201e=$(_0x1d12f6(0x1ad));_0x47201e['on'](_0x1d12f6(0x1a4),()=>{const _0x3c6375=_0x1d12f6,_0x26a498=_0x47201e[_0x3c6375(0x15f)]();_0x59316f(_0x26a498);});}const _0x555ea0=$('#licenceWidget');_0x555ea0[_0x1d12f6(0x1aa)]({'baseUrl':''});{const _0x368d9f=$(_0x1d12f6(0x1be)),_0x33d8d9=$('.section-userIdentityType-Certificate'),_0x5507a1=_0x196361=>{const _0x4d0b38=_0x1d12f6;_0x196361=_0x196361||_0x4d0b38(0x1da);switch(_0x196361){case _0x4d0b38(0x1da):$('#node-config-input-userName')[_0x4d0b38(0x15f)](''),$('#node-config-input-password')[_0x4d0b38(0x15f)](''),_0x368d9f['hide'](),_0x33d8d9[_0x4d0b38(0x1a2)]();break;case'UserName':_0x368d9f[_0x4d0b38(0x15b)](),_0x33d8d9[_0x4d0b38(0x1a2)]();break;case _0x4d0b38(0x1cd):$(_0x4d0b38(0x13f))[_0x4d0b38(0x15f)](''),$('#node-config-input-password')['val'](''),_0x33d8d9[_0x4d0b38(0x15b)](),_0x368d9f[_0x4d0b38(0x1a2)]();break;default:console[_0x4d0b38(0x132)](_0x4d0b38(0x154)+_0x196361);}};_0x5507a1(_0x58c0eb[_0x1d12f6(0x161)]);const _0x126c00=$('#node-config-input-userIdentityType');_0x126c00['on'](_0x1d12f6(0x1a4),()=>{const _0x1719f0=_0x1d12f6,_0x4b3a60=_0x126c00[_0x1719f0(0x15f)]();_0x5507a1(_0x4b3a60);});}{$('#section-Advanced')[_0x1d12f6(0x1a2)](),$(_0x1d12f6(0x156))[_0x1d12f6(0x144)]('checked',![]),$(_0x1d12f6(0x156))['on'](_0x1d12f6(0x1a4),function(){const _0x1dd4c8=_0x1d12f6;$(this)['prop'](_0x1dd4c8(0x19f))?$(_0x1dd4c8(0x1a0))['show']():$(_0x1dd4c8(0x1a0))[_0x1dd4c8(0x1a2)]();});}const _0x58290b=$(_0x1d12f6(0x1af))[_0x1d12f6(0x144)](_0x1d12f6(0x19f));_0x58290b?$(_0x1d12f6(0x164))[_0x1d12f6(0x15b)]():$('#section-TransportSettings')[_0x1d12f6(0x1a2)]();$(_0x1d12f6(0x1af))['on'](_0x1d12f6(0x1a4),function(){const _0x2474fc=_0x1d12f6;$(this)[_0x2474fc(0x144)](_0x2474fc(0x19f))?$(_0x2474fc(0x164))[_0x2474fc(0x15b)]():$(_0x2474fc(0x164))[_0x2474fc(0x1a2)]();});{$(_0x1d12f6(0x1ae))['on'](_0x1d12f6(0x1c5),()=>_0x59a7e8(this,void 0x0,void 0x0,function*(){const _0xf37999=_0x1d12f6,_0x597146=yield fetch(_0xf37999(0x1de)),_0x2493b1=yield _0x597146[_0xf37999(0x184)](),_0x2b9d2b=JSON[_0xf37999(0x186)](_0x2493b1,null,'\x20');alert(_0x2b9d2b);}));}$(_0x1d12f6(0x17f))['on'](_0x1d12f6(0x1c5),()=>_0x59a7e8(this,void 0x0,void 0x0,function*(){const _0x513f36=_0x1d12f6;window[_0x513f36(0x138)](_0x513f36(0x123),_0x513f36(0x165));}));{_0x1a4b29(_0x1d12f6(0x1a6),$(_0x1d12f6(0x141)),()=>{const _0x19eb2f=_0x1d12f6;var _0x3b2da0;return{'url':_0x19eb2f(0x188),'body':{'endpointNode':{'id':_0x58c0eb['id'],'endpoint':$('#node-config-input-endpoint')['val'](),'name':$(_0x19eb2f(0x14b))['val'](),'pkiName':(_0x3b2da0=$(_0x19eb2f(0x18a)))===null||_0x3b2da0===void 0x0?void 0x0:_0x3b2da0[_0x19eb2f(0x15f)](),'securityMode':$(_0x19eb2f(0x1ad))[_0x19eb2f(0x15f)](),'securityPolicy':$(_0x19eb2f(0x176))['val'](),'userIdentityType':$(_0x19eb2f(0x1b3))[_0x19eb2f(0x15f)](),'userName':$(_0x19eb2f(0x13f))[_0x19eb2f(0x15f)](),'password':$(_0x19eb2f(0x1b6))[_0x19eb2f(0x15f)](),'userCertificate':$('#node-config-input-userCertificate')[_0x19eb2f(0x15f)](),'userPrivatekey':$(_0x19eb2f(0x139))[_0x19eb2f(0x15f)](),'certificate':$('#node-input-certificate')[_0x19eb2f(0x15f)](),'useTransport':$(_0x19eb2f(0x187))[_0x19eb2f(0x144)](_0x19eb2f(0x19f)),'maxChunkCount':$(_0x19eb2f(0x160))[_0x19eb2f(0x15f)](),'maxMessageSize':$(_0x19eb2f(0x16c))[_0x19eb2f(0x15f)](),'receiveBufferSize':$(_0x19eb2f(0x15c))[_0x19eb2f(0x15f)](),'sendBufferSize':$(_0x19eb2f(0x1df))['val']()}}};},()=>{});}{const _0x1eb355=(_0x440d69,_0x146a95)=>{const _0x11fcbd=_0x1d12f6;var _0x3bff0a=_0x440d69[_0x11fcbd(0x185)]()||0x64;_0x440d69[_0x11fcbd(0x17a)](_0x11fcbd(0x1a7))['typedInput'](_0x11fcbd(0x185),_0x3bff0a-0xf);},_0x3c34d4=$(_0x1d12f6(0x12a))[_0x1d12f6(0x136)]({'min-height':_0x1d12f6(0x17c),'min-width':'260px'})[_0x1d12f6(0x1d6)]({'addItem':(_0x42ac89,_0x571c57,_0x519426)=>{const _0x57cbf7=_0x1d12f6,_0x534580=_0x519426,_0x28fcff=$('.template')[_0x57cbf7(0x1ca)]()[_0x57cbf7(0x129)](_0x42ac89);_0x28fcff[_0x57cbf7(0x149)]('id')[_0x57cbf7(0x18f)](_0x57cbf7(0x1a2))['removeClass'](_0x57cbf7(0x1dc))[_0x57cbf7(0x14e)]('data-i',_0x571c57),_0x28fcff[_0x57cbf7(0x17a)](_0x57cbf7(0x148))[_0x57cbf7(0x15f)](_0x534580[_0x57cbf7(0x1c1)]),_0x28fcff[_0x57cbf7(0x17a)](_0x57cbf7(0x1cb))[_0x57cbf7(0x15f)](_0x534580[_0x57cbf7(0x16a)][_0x57cbf7(0x19c)]),_0x28fcff['find'](_0x57cbf7(0x171))[_0x57cbf7(0x15f)](_0x534580[_0x57cbf7(0x16a)][_0x57cbf7(0x15d)]),_0x28fcff[_0x57cbf7(0x17a)](_0x57cbf7(0x181))[_0x57cbf7(0x15f)](_0x534580['parameters']['requestedLifetimeCount']),_0x28fcff['find'](_0x57cbf7(0x1c2))[_0x57cbf7(0x15f)](_0x534580[_0x57cbf7(0x16a)][_0x57cbf7(0x1b7)]||0x0),_0x28fcff[_0x57cbf7(0x17a)](_0x57cbf7(0x1e6))['val'](_0x534580[_0x57cbf7(0x16a)][_0x57cbf7(0x15a)]||0x0),_0x28fcff[_0x57cbf7(0x17a)]('.subscription-id')[_0x57cbf7(0x1c3)](''+_0x571c57),_0x534580[_0x57cbf7(0x1d9)]&&_0x28fcff['find'](_0x57cbf7(0x148))[_0x57cbf7(0x144)](_0x57cbf7(0x1a3),!![]),_0x28fcff[_0x57cbf7(0x17a)](_0x57cbf7(0x178))[_0x57cbf7(0x144)](_0x57cbf7(0x19f),_0x534580[_0x57cbf7(0x1d9)]),_0x534580['isDefault']&&(_0x42ac89[_0x57cbf7(0x17a)](_0x57cbf7(0x1eb))[_0x57cbf7(0x13e)](_0x57cbf7(0x1a2)),setTimeout(()=>_0x28fcff[_0x57cbf7(0x17a)](_0x57cbf7(0x178))[_0x57cbf7(0x144)]('disabled',!![]),0xa));},'removable':!![],'resizeItem':_0x1eb355}),_0x3d2d63=()=>{const _0x178307=_0x1d12f6,_0x5b6a29=_0x58c0eb['subscriptions']||[];_0x5b6a29[_0x178307(0x1d1)]===0x0&&_0x5b6a29[_0x178307(0x1a8)]({'id':'s1','name':_0x178307(0x19a),'isDefault':!![],'parameters':Object[_0x178307(0x168)]({},_0x12202d)});_0x3c34d4['editableList'](_0x178307(0x12c));for(const _0x2f9d6f of _0x5b6a29){_0x3c34d4[_0x178307(0x1d6)](_0x178307(0x158),_0x2f9d6f);}};_0x3d2d63();}}});}()));
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHg1OWE3ZTgiLCJfMHgxOWU1NzUiLCJfMHg1ZGMwMGYiLCJfMHgxOWViOTAiLCJfMHg0MzgzNDAiLCJfMHgyM2QyYTMiLCJfMHgyZTkxNDMiLCJfMHg2OGVjNyIsIlByb21pc2UiLCJfMHgzNDI3YTgiLCJfMHg1OWNlY2UiLCJfMHgzMTc2YjMiLCJfMHgzYTNmMDYiLCJfMHg1NWRjYyIsIl8weDI2ZWFiMCIsIl8weDQwY2IwZSIsIl8weGM0MGU2ZCIsIl8weDFjN2E2NCIsIl8weDViNWVjZCIsIlN1cHByZXNzZWRFcnJvciIsIl8weDNmNDBjZSIsIl8weDMyMTgzNSIsIl8weDUwZDZkYSIsIl8weDMwOGUwNiIsIkVycm9yIiwiXzB4MWE0YjI5IiwiXzB4MjZhMzczIiwiXzB4MTg0YzMzIiwiXzB4MmE1ZTQ5IiwiXzB4ZGRiZTc2IiwiXzB4MjViZmJjIiwiJCIsIl8weDMyZGNlZCIsIl8weDFlYjdmOSIsIl8weDI1YjY1YyIsIl8weDUwNzVjYSIsImJvZHkiLCJfMHgxOGM2MTAiLCJ1cmwiLCJfMHg1ZTQzZGMiLCJmZXRjaCIsIkpTT04iLCJfMHgzMmI5NmEiLCJfMHgzMDRiOWUiLCJjb25zb2xlIiwiXzB4Y2MyY2UxIiwiXzB4NDQ5MjFhIiwiXzB4NTMxNTAzIiwiXzB4NDY3MTMyIiwiXzB4MmI1ZTk1IiwiQXJyYXkiLCJfMHg1NjVhNGEiLCJfMHgyZDgxODAiLCJfMHgxMjNlOWQiLCJfMHg0NjMwM2MiLCJhcmd1bWVudHMiLCJfMHg1MTIzYmYiLCJfMHgyOTI3NjQiLCJfMHhiYzg5ZWMiLCJfMHgzNzEwNzkiLCJfMHgzYzU0ODAiLCJEYXRlIiwiXzB4NWM5NGU1IiwiXzB4MTFkOGRlIiwiXzB4MmFjMzQxIiwiXzB4MzJkOTcwIiwiXzB4MWFmOWE2IiwiXzB4MWNmN2U3IiwiXzB4YWNkMzMyIiwiXzB4MmRhYTU5IiwiXzB4MTQxZTc0IiwiXzB4M2M3MTM3IiwiXzB4NTk2MTQyIiwiXzB4NDBiOWZkIiwiXzB4NDUxYzU4IiwiZG9jdW1lbnQiLCJfMHgzOWVjMDQiLCJfMHgyOTdmM2EiLCJfMHgzMGViODEiLCJfMHg1MGIyZDgiLCJfMHg1ODBjMDkiLCJVUkwiLCJfMHg1MGQzMDciLCJfMHgxMjIwMmQiLCJSRUQiLCJfMHg1N2Y3ZTEiLCJfMHgyNWQ3NTgiLCJPYmplY3QiLCJfMHgzYjA2MzUiLCJfMHgyY2Q0MzEiLCJfMHgzZTcxZTgiLCJfMHg0MjI4YTYiLCJfMHg1NjYzN2QiLCJfMHgyZTlkZmIiLCJfMHg0NmJhYjQiLCJfMHg1ZWYxMjAiLCJfMHgxYjE4NDciLCJfMHg1YzE1Y2YiLCJfMHg1OGMwZWIiLCJfMHg0NDFiNTciLCJfMHg3OTI2NTYiLCJzZXRUaW1lb3V0IiwiXzB4NTkzMTZmIiwiXzB4NGZjNzQ5IiwidW5kZWZpbmVkIiwiXzB4MTI1OTNlIiwiXzB4NDcyMDFlIiwiXzB4MjZhNDk4IiwiXzB4NTU1ZWEwIiwiXzB4MzY4ZDlmIiwiXzB4MzNkOGQ5IiwiXzB4NTUwN2ExIiwiXzB4MTk2MzYxIiwiXzB4MTI2YzAwIiwiXzB4NGIzYTYwIiwiXzB4NTgyOTBiIiwiXzB4NTk3MTQ2IiwiXzB4MjQ5M2IxIiwiXzB4MmI5ZDJiIiwiYWxlcnQiLCJ3aW5kb3ciLCJfMHgzYjJkYTAiLCJfMHgxZWIzNTUiLCJfMHg0NDBkNjkiLCJfMHgxNDZhOTUiLCJfMHgzYmZmMGEiLCJfMHgzYzM0ZDQiLCJfMHg0MmFjODkiLCJfMHg1NzFjNTciLCJfMHg1MTk0MjYiLCJfMHg1MzQ1ODAiLCJfMHgyOGZjZmYiLCJfMHgzZDJkNjMiLCJfMHg1YjZhMjkiLCJfMHgyZjlkNmYiXSwibWFwcGluZ3MiOiI2N0pBQUEsQ0FBQyxVLENBQ0csYSx3QkFtQkEsU0FBU0EsU0FBVCxDQUFtQkMsU0FBbkIsQ0FBNEJDLFNBQTVCLENBQXdDQyxTQUF4QyxDQUEyQ0MsU0FBM0MsQyxDQUNJLFNBQVNDLFNBQVQsQ0FBZUMsU0FBZixDLFFBQStCQSxTQUFBLFlBQWlCSCxTQUFqQixDQUFxQkcsU0FBckIsQ0FBNkIsSUFBSUgsU0FBSixDQUFNLFNB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R0E1VjhCLENBQTFDLEMsRUFyT0osRyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbiAoKSB7XG4gICAgJ3VzZSBzdHJpY3QnO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxyXG4gICAgQ29weXJpZ2h0IChjKSBNaWNyb3NvZnQgQ29ycG9yYXRpb24uXHJcblxyXG4gICAgUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbiAgICBwdXJwb3NlIHdpdGggb3Igd2l0aG91dCBmZWUgaXMgaGVyZWJ5IGdyYW50ZWQuXHJcblxyXG4gICAgVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiBBTkQgVEhFIEFVVEhPUiBESVNDTEFJTVMgQUxMIFdBUlJBTlRJRVMgV0lUSFxyXG4gICAgUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbiAgICBBTkQgRklUTkVTUy4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBTUEVDSUFMLCBESVJFQ1QsXHJcbiAgICBJTkRJUkVDVCwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIE9SIEFOWSBEQU1BR0VTIFdIQVRTT0VWRVIgUkVTVUxUSU5HIEZST01cclxuICAgIExPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbiAgICBPVEhFUiBUT1JUSU9VUyBBQ1RJT04sIEFSSVNJTkcgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgVVNFIE9SXHJcbiAgICBQRVJGT1JNQU5DRSBPRiBUSElTIFNPRlRXQVJFLlxyXG4gICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuICAgIC8qIGdsb2JhbCBSZWZsZWN0LCBQcm9taXNlLCBTdXBwcmVzc2VkRXJyb3IsIFN5bWJvbCwgSXRlcmF0b3IgKi9cclxuXHJcblxyXG4gICAgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgICAgIGZ1bmN0aW9uIGFkb3B0KHZhbHVlKSB7IHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFAgPyB2YWx1ZSA6IG5ldyBQKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJlc29sdmUodmFsdWUpOyB9KTsgfVxyXG4gICAgICAgIHJldHVybiBuZXcgKFAgfHwgKFAgPSBQcm9taXNlKSkoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xyXG4gICAgICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlamVjdGVkKHZhbHVlKSB7IHRyeSB7IHN0ZXAoZ2VuZXJhdG9yW1widGhyb3dcIl0odmFsdWUpKTsgfSBjYXRjaCAoZSkgeyByZWplY3QoZSk7IH0gfVxyXG4gICAgICAgICAgICBmdW5jdGlvbiBzdGVwKHJlc3VsdCkgeyByZXN1bHQuZG9uZSA/IHJlc29sdmUocmVzdWx0LnZhbHVlKSA6IGFkb3B0KHJlc3VsdC52YWx1ZSkudGhlbihmdWxmaWxsZWQsIHJlamVjdGVkKTsgfVxyXG4gICAgICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgdHlwZW9mIFN1cHByZXNzZWRFcnJvciA9PT0gXCJmdW5jdGlvblwiID8gU3VwcHJlc3NlZEVycm9yIDogZnVuY3Rpb24gKGVycm9yLCBzdXBwcmVzc2VkLCBtZXNzYWdlKSB7XHJcbiAgICAgICAgdmFyIGUgPSBuZXcgRXJyb3IobWVzc2FnZSk7XHJcbiAgICAgICAgcmV0dXJuIGUubmFtZSA9IFwiU3VwcHJlc3NlZEVycm9yXCIsIGUuZXJyb3IgPSBlcnJvciwgZS5zdXBwcmVzc2VkID0gc3VwcHJlc3NlZCwgZTtcclxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtYW5hZ2VBUElDYWxsKHByZWZpeCwgYnRuLCBmdW5jLCBvblJlc3VsdCkge1xuICAgICAgICBjb25zdCBzdWNjZXNzSWNvbiA9ICQoYCMke3ByZWZpeH0tc3VjY2Vzc2ApO1xuICAgICAgICBjb25zdCBmYWlsdXJlSWNvbiA9ICQoYCMke3ByZWZpeH0tZmFpbHVyZWApO1xuICAgICAgICBjb25zdCBwZW5kaW5nSWNvbiA9ICQoYCMke3ByZWZpeH0tcGVuZGluZ2ApO1xuICAgICAgICBjb25zdCBtZXNzYWdlcyA9ICQoYCMke3ByZWZpeH0tbWVzc2FnZXNgKTtcbiAgICAgICAgbGV0IGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgc3VjY2Vzc0ljb24uaGlkZSgpO1xuICAgICAgICBmYWlsdXJlSWNvbi5oaWRlKCk7XG4gICAgICAgIHBlbmRpbmdJY29uLmhpZGUoKTtcbiAgICAgICAgYnRuLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGFjdGlvblBlbmRpbmcpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IHRydWU7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICBwZW5kaW5nSWNvbi5odG1sKFwiVGVzdGluZyBDb25uZWN0aW9uIC4uLlwiKTtcbiAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJcIik7XG4gICAgICAgICAgICBjb25zdCB7IGJvZHksIHVybCB9ID0gZnVuYygpO1xuICAgICAgICAgICAgLy8geHggY29uc29sZS5sb2coXCJ4eHh4eFwiLCBib2R5KTtcbiAgICAgICAgICAgIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KGJvZHkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAudGhlbigoZGF0YSkgPT4gZGF0YS5qc29uKCkpXG4gICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGpzb24sIG51bGwsIFwiIFwiKSk7XG4gICAgICAgICAgICAgICAgaWYgKGpzb24ucmVzdWx0ID09PSBcIm9rXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoanNvbi5tZXNzYWdlLnJlcGxhY2UoXCJcXG5cIiwgXCI8YnI+XCIpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0ID0gKHN0cikgPT4gIXN0clxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHN0clxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAoKGEpID0+IGA8cD4ke2F9PC9wPmApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oXCJcXG5cIik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFkYXB0MiA9IChzdHIpID0+IChBcnJheS5pc0FycmF5KHN0cikgPyBzdHIubWFwKGFkYXB0KS5qb2luKFwiXFxuXCIpIDogYWRhcHQoc3RyKSk7XG4gICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKGFkYXB0Mihqc29uLm1lc3NhZ2UpICsgYWRhcHQyKGpzb24uZXh0cmEpKTtcbiAgICAgICAgICAgICAgICAgICAgb25SZXN1bHQobmV3IEVycm9yKGpzb24ucmVzdWx0KSwganNvbik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBtZXNzYWdlcy5odG1sKFwiaW50ZXJuYWwgZXJyb3IgXCIgKyBlcnIubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJcIiwgZXJyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBwcmljaW5nVGFibGVJZCA9IFwicHJjdGJsXzFPSnQ0OUJDTmNjYnpzVnprYUFOT2dGTFwiO1xuICAgIGNvbnN0IHB1Ymxpc2hhYmxlS2V5ID0gXCJwa19saXZlXzUxSHNFMXNCQ05jY2J6c1Z6dDd6YXEydXYyMHBrcnlXbGxBenZaZ1pkNUFod0ZJOUEzcUJJZU9Kdkp3UUYwOGxEb0xwRnFMandteUE3OXduUG5ZTHN2S2p0MDA5ZjAwVnBDV1wiO1xuICAgIGZ1bmN0aW9uIGZldGNoTGljZW5jZUluZm8oKSB7XG4gICAgICAgIHJldHVybiBfX2F3YWl0ZXIodGhpcywgYXJndW1lbnRzLCB2b2lkIDAsIGZ1bmN0aW9uKiAoYmFzZVVybCA9IFwiXCIpIHtcbiAgICAgICAgICAgIGNvbnN0IHJvb3QgPSBgJHtiYXNlVXJsfS9vcGN1YS1mb3Itbm9kZS1yZWRgO1xuICAgICAgICAgICAgY29uc3QgdXJsID0gYCR7cm9vdH0vbGljZW5jZUluZm9gO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogXCJQT1NUXCIsXG4gICAgICAgICAgICAgICAgaGVhZGVyczogeyBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIiB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICAgICAgICAgIGlmIChkYXRhLnN0YXR1cyAhPT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJmZXRjaGluZyBmYWlsZWQgd2l0aCBlcnJvclwiLCBkYXRhLnN0YXR1cywgZGF0YS5zdGF0dXNUZXh0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4geyBzdGF0dXM6IFwiRkFJTEVEXCIsIHR5cGU6IFwiRlJFRVdBUkVcIiwgbGljZW5jZUluZm86IHsgZXhwaXJ5RGF0ZTogdG9kYXkgfSB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QganNvbiA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgcmV0dXJuIGpzb247XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBkZWNsYXJlTGljZW5jZVdpZGdldCA9ICgpID0+IHtcbiAgICAgICAgJC53aWRnZXQoXCJzdGVyZml2ZS5saWNlbmNlV2lkZ2V0XCIsIHtcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF9jcmVhdGUoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdGhhdCA9IHRoaXM7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGFjdExpbmsgPSBgPGEgaHJlZj1cIm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbVwiIHN1YmplY3Q9XCJAb3BjdWEvZm9yLW5vZGUtcmVkIHN1cHBvcnQgcmVxdWVzdFwiPm1haWx0bzpzdXBwb3J0QHN0ZXJmaXZlLmNvbTwvYT5gO1xuICAgICAgICAgICAgICAgIGNvbnN0IHdlYnNpdGVMaW5rID0gYDxhIGhyZWY9XCJodHRwczovL3d3dy5zdGVyZml2ZS5jb20vb3BjdWEvZm9yLW5vZGUtcmVkXCIgdGFyZ2V0PeKAnV9ibGFua+KAnT5TdGVyZml2ZSdzIHdlYnNpdGUgPC9hPmA7XG4gICAgICAgICAgICAgICAgZmV0Y2hMaWNlbmNlSW5mbyh0aGF0LmJhc2VVcmwpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChqc29uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpY29uID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1zZyA9IFwiXCI7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkZXRhaWxzID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0ganNvbi5zdGF0dXM7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRheUxlZnQgPSBqc29uLmRheXNMZWZ0O1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFVVEhPUklaRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jaGVjay1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGpzb24udHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVFJJQUxcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJUcmlhbCBsaWNlbmNlXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFRoZSBUcmlhbCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuXFxuQnV5IG9ubGluZSBhbmQgdmlzaXQgJHt3ZWJzaXRlTGlua30gdG8gYWNxdWlyZSBhIGxpY2Vuc2UuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJQUk9GRVNTSU9OQUxcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IGBZb3VyIGxpY2VuY2UgaXMgdmFsaWQuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXlMZWZ0IDwgOTAgJiYgZGF5TGVmdCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnICs9IGAgSXQgd2lsbCBleHBpcmUgaW4gJHtkYXlMZWZ0fSBkYXlzLmA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXRhaWxzID0gYCR7d2Vic2l0ZUxpbmt9PGJyPiR7Y29udGFjdExpbmt9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBqc29uLmxpY2VuY2VJbmZvLmxpY2VuY2VUeXBlICsgXCIgLSBcIiArIChqc29uLmxpY2VuY2VJbmZvLm9uUHJlbWlzZVNlcnZlckhvc3QgfHwgXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZSRUVXQVJFXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIkZyZWV3YXJlIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhpcyBpcyBhIGZyZWV3YXJlIGxpY2VuY2UsIGFuZCBoYXZlIHNvbWUgbGltaXRhdGlvbnMuXFxuJHt3ZWJzaXRlTGlua30gZm9yIG1vcmUgaW5mb3JtYXRpb24uYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJFWFBJUkVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbiA9IFwiZmEgZmEtY2FsZW5kYXItdGltZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiTGljZW5jZSBoYXMgZXhwaXJlZFwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIllvdXIgbGljZW5zZSBoYXMgZXhwaXJlZC4gUGxlYXNlIGNvbnRhY3Qgb3VyIHN1cHBvcnQgdGVhbSBvciB2aXNpdCBvdXIgd2Vic2l0ZSB0byByZW5ldyB5b3VyIGxpY2Vuc2UgYW5kIHJlZ2FpbiBhY2Nlc3MgdG8gb3VyIHNlcnZpY2VzLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkZBSUxFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIllvdXIgbGljZW5zZSBpcyBjdXJyZW50bHkgaW52YWxpZC5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWxzID0gYFBsZWFzZSBjb250YWN0ICR7Y29udGFjdExpbmt9IG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuzIBgO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8qKiAqL1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmVsZW1lbnQudGV4dChcIkxpY2VuY2UgXCIgKyBKU09OLnN0cmluZ2lmeShqc29uKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0XCIpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1cIiArIHN0YXR1cyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWljb25cIikuYXBwZW5kKCQoXCI8aT5cIikuYWRkQ2xhc3MoaWNvbikpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtbXNnXCIpLnRleHQobXNnKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1kZXRhaWxzXCIpLmFwcGVuZChkZXRhaWxzKSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09IFwiRVhQSVJFRFwiIHx8IHN0YXR1cyA9PT0gXCJGQUlMRURcIiB8fCBqc29uLnR5cGUgPT09IFwiRlJFRVdBUkVcIiB8fCBqc29uLnR5cGUgPT09IFwiVFJJQUxcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaWJlQnV0dG9uID0gJChcIjxidXR0b24vPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwiaWRcIiwgXCJzdWJzY3JpYmUtYnV0dG9uXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJjbGFzc1wiLCBcImJ0biBidG4tcHJpbWFyeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi5hdHRyKFwic3R5bGVcIiwgXCJtYXJnaW4tdG9wOiAyMHB4O1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmliZUJ1dHRvbi50ZXh0KFwiU3Vic2NyaWJlXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdWJzY3JpYmVCdXR0b24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInNjcmlwdFwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgc2NyaXB0IGVsZW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBcImh0dHBzOi8vanMuc3RyaXBlLmNvbS92My9wcmljaW5nLXRhYmxlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQXBwZW5kIHRoZSBzY3JpcHQgZWxlbWVudCB0byB0aGUgaGVhZCAob3IgYm9keSkgb2YgdGhlIGRvY3VtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiaGVhZFwiKS5hcHBlbmQoc2NyaXB0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cmlwZVByaWNpbmdUYWJsZSA9ICQoXCI8c3RyaXBlLXByaWNpbmctdGFibGUvPlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNldCBhdHRyaWJ1dGVzIGZvciB0aGUgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwcmljaW5nLXRhYmxlLWlkXCIsIHByaWNpbmdUYWJsZUlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwicHVibGlzaGFibGUta2V5XCIsIHB1Ymxpc2hhYmxlS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCU7bWF4LWhlaWdodDogMTAwJTtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZChzdHJpcGVQcmljaW5nVGFibGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLm9uKFwiY2xpY2tcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXR0cihcInN0eWxlXCIsIFwiaGVpZ2h0OiAxMDAlICFpbXBvcnRhbnQ7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGRlY2xhcmVMaWNlbmNlV2lkZ2V0KCk7XG4gICAgZnVuY3Rpb24gaXNWYWxpZE9QQ19VQV9VUkkoc3RyKSB7XG4gICAgICAgIGxldCB1cmw7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB1cmwgPSBuZXcgVVJMKHN0cik7XG4gICAgICAgIH1cbiAgICAgICAgY2F0Y2ggKF8pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdXJsLnByb3RvY29sID09PSBcIm9wYy50Y3A6XCI7XG4gICAgfVxuICAgIGNvbnN0IGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzID0ge1xuICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwMCxcbiAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDEwLCAvLyBldmVyeSAxMCBzZWNvbmRzXG4gICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMTAwMCxcbiAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDAsXG4gICAgICAgIHByaW9yaXR5OiAxMDAsXG4gICAgfTtcbiAgICBSRUQubm9kZXMucmVnaXN0ZXJUeXBlKFwiT3BjVWEtRW5kcG9pbnQyXCIsIHtcbiAgICAgICAgY2F0ZWdvcnk6IFwiY29uZmlnXCIsXG4gICAgICAgIHBhbGV0dGVMYWJlbDogXCJvcGN1YSBlbmRwb2ludFwiLFxuICAgICAgICBkZWZhdWx0czoge1xuICAgICAgICAgICAgbmFtZTogeyB2YWx1ZTogXCJcIiB9LFxuICAgICAgICAgICAgZW5kcG9pbnQ6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJvcGMudGNwOi8vb3BjdWFkZW1vLnN0ZXJmaXZlLmNvbToyNjU0My9VQS9TYW1wbGVTZXJ2ZXJcIixcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogaXNWYWxpZE9QQ19VQV9VUkksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLy8gU2VjdXJpdHkgTW9kZVxuICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiB7IHZhbHVlOiBcIk5vbmVcIiB9LFxuICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJOb25lXCIsXG4gICAgICAgICAgICAgICAgdmFsaWRhdGU6ICh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6IHsgdmFsdWU6IFwiQW5vbnltb3VzXCIgfSxcbiAgICAgICAgICAgIHBraU5hbWU6IHsgdmFsdWU6IFwiXCIsIHZhbGlkYXRlOiAodmFsdWUpID0+ICghdmFsdWUgfHwgdmFsdWUubWF0Y2goL1swLTlhLXpBLVpdKi8pID8gdHJ1ZSA6IGZhbHNlKSB9LFxuICAgICAgICAgICAgLy8gdG8gdXNlIHdoZW4gdXNlcklkZW50aXR5VHlwZSBpcyBVc2VyTmFtZVxuICAgICAgICAgICAgLy8gY3JlZGVudGlhbHM6IHtcbiAgICAgICAgICAgIC8vICAgICB1c2VyTmFtZTogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICBwYXNzd29yZDogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgICAgICAvLyAgICAgLy8gdG8gdXNlIHdoZW4gdXNlcklkZW50aXR5VHlwZSBpcyBDZXJ0aWZpY2F0ZVxuICAgICAgICAgICAgLy8gICAgIHVzZXJDZXJ0aWZpY2F0ZTogeyB2YWx1ZTogXCJcIiwgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIC8vICAgICB1c2VyUHJpdmF0ZWtleTogeyB2YWx1ZTogXCJcIiAsIHR5cGU6IFwicGFzc3dvcmRcIn0sXG4gICAgICAgICAgICAvLyB9IGFzIGFueSAvKiBjaXJjdW12ZW50IGEgYnVnIGluIG5vZGUtcmVkICovLFxuICAgICAgICAgICAgLy8gdXNlcm5hbWVcbiAgICAgICAgICAgIHVzZVRyYW5zcG9ydDogeyB2YWx1ZTogZmFsc2UsIHJlcXVpcmVkOiBmYWxzZSB9LFxuICAgICAgICAgICAgbWF4Q2h1bmtDb3VudDogeyB2YWx1ZTogMSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sIC8vIHNob3VsZCBiZSBhdCBsZWFzdCA4MTkyXG4gICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogeyB2YWx1ZTogODE5MiwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2xvdyBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogMTAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiAzLCAvLyBldmVyeSAxNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiA1MDAwLCAvL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRmFzdCBTdWJzY3JpcHRpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVibGlzaGluZ0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogNDAwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogNTAsIC8vIGV2ZXJ5IDEyLjUgc2Vjb25kc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogMjUwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHk6IDIwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgdXNlck5hbWU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHBhc3N3b3JkOiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICAgICAgdXNlckNlcnRpZmljYXRlOiB7IHR5cGU6IFwidGV4dFwiIH0sXG4gICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogeyB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgfSxcbiAgICAgICAgbGFiZWw6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm5hbWUgfHwgdGhpcy5lbmRwb2ludCB8fCBcImludmFsaWQgZW5kcG9pbnRcIjtcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0c2F2ZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eVBvbGljeSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIik7XG4gICAgICAgICAgICBjb25zdCBfc2VjdXJpdHlNb2RlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eU1vZGVcIik7XG4gICAgICAgICAgICBpZiAoX3NlY3VyaXR5UG9saWN5LnZhbCgpID09PSBcIk5vbmVcIikge1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUudGV4dChcIk5vbmVcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAoKCgoKCgoKCgoIHJldHJpZXZlIHN1YnNjcmlwdGlvbiBkYXRhICkpKSkpKSkpKSlcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnNJdGVtcyA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIikuZWRpdGFibGVMaXN0KFwiaXRlbXNcIik7XG4gICAgICAgICAgICBjb25zdCBzID0gW107XG4gICAgICAgICAgICBjb25zdCBuID0gKHgpID0+IHg7XG4gICAgICAgICAgICBzdWJzY3JpcHRpb25zSXRlbXMuZWFjaChmdW5jdGlvbiAoaW5kZXgsIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBlID0gJCh0aGlzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhID0ge1xuICAgICAgICAgICAgICAgICAgICBpZDogXCJzXCIgKyBpbmRleCxcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogZS5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogISFlLmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogISFlLmZpbmQoXCIuaW5wdXQtcHVibGlzaGluZ0VuYWJsZWRcIikuaXMoXCI6Y2hlY2tlZFwiKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZExpZmV0aW1lQ291bnQ6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IG4oZS5maW5kKFwiLmlucHV0LXJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50XCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoOiBuKGUuZmluZChcIi5pbnB1dC1tYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogbihlLmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgLy8gZm9yY2UgdG8gYmUgdHJ1ZVxuICAgICAgICAgICAgICAgIGEucGFyYW1ldGVycy5wdWJsaXNoaW5nRW5hYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKGEuaXNEZWZhdWx0ICYmIGEuaWQgPT09IFwiczBcIikge1xuICAgICAgICAgICAgICAgICAgICAvLyBub3JtYWxpemUgZGVmYXVsdCBzdWJzY3JpcHRpb24gbmFtZVxuICAgICAgICAgICAgICAgICAgICBhLm5hbWUgPSBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHMucHVzaChhKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gcztcbiAgICAgICAgfSxcbiAgICAgICAgb25lZGl0cHJlcGFyZSgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSB0aGlzO1xuICAgICAgICAgICAgY29uc3QgdGFicyA9IFJFRC50YWJzLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgaWQ6IFwibm9kZS1jb25maWctZW5kcG9pbnQtdGFic1wiLFxuICAgICAgICAgICAgICAgIG9uY2hhbmdlOiBmdW5jdGlvbiAodGFiKSB7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctZW5kcG9pbnQtdGFicy1jb250ZW50XCIpLmNoaWxkcmVuKCkuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAkKFwiI1wiICsgdGFiLmlkKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGFicy5hZGRUYWIoe1xuICAgICAgICAgICAgICAgIGlkOiBcImVuZHBvaW50LXRhYi1jb25uZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgbGFiZWw6IFwiQ29ubmVjdGlvblwiLFxuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLXN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJTdWJzY3JpcHRpb25zXCIsXG4gICAgICAgICAgICB9LCAxKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHRhYnMucmVzaXplKCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgU2VjdXJpdHkgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlU2VjdXJpdHlDb250cm9sID0gKHNlY3VyaXR5TW9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHNlY3VyaXR5TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBudWxsOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiTm9uZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnblwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlNpZ25BbmRFbmNyeXB0XCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzcCA9ICQoXCIuc2VjdGlvbi1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwLnZhbCgpID09PSBcIk5vbmVcIiB8fCBzcC52YWwoKSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3AudmFsKFwiQmFzaWMyNTZTaGEyNTZcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaW52YWxpZCBzZWN1cml0eU1vZGUgXCIgKyBzZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobm9kZS5zZWN1cml0eU1vZGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgICAgICBfc2VjdXJpdHlNb2RlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3U2VjdXJpdHlNb2RlID0gX3NlY3VyaXR5TW9kZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlU2VjdXJpdHlDb250cm9sKG5ld1NlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaWNlbmNlV2lkZ2V0ID0gJChcIiNsaWNlbmNlV2lkZ2V0XCIpO1xuICAgICAgICAgICAgbGljZW5jZVdpZGdldC5saWNlbmNlV2lkZ2V0KHtcbiAgICAgICAgICAgICAgICBiYXNlVXJsOiBcIlwiLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBVc2VyIElkZW50aXR5IENvbnRyb2xzXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF1dGhSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1Vc2VyTmFtZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjZXJ0Um93ID0gJChcIi5zZWN0aW9uLXVzZXJJZGVudGl0eVR5cGUtQ2VydGlmaWNhdGVcIik7XG4gICAgICAgICAgICAgICAgY29uc3QgdXBkYXRlSWRlbnRpdHlDb250cm9scyA9ICh1c2VySWRlbnRpdHlUeXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGUgPSB1c2VySWRlbnRpdHlUeXBlIHx8IFwiQW5vbnltb3VzXCI7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodXNlcklkZW50aXR5VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkFub255bW91c1wiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlVzZXJOYW1lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQ2VydGlmaWNhdGVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJOYW1lXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbChcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHVzZXJJZGVudGl0eVR5cGUgXCIgKyB1c2VySWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhub2RlLnVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IF91c2VySWRlbnRpdHlUeXBlID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpO1xuICAgICAgICAgICAgICAgIF91c2VySWRlbnRpdHlUeXBlLm9uKFwiY2hhbmdlXCIsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SWRlbnRpdHlUeXBlID0gX3VzZXJJZGVudGl0eVR5cGUudmFsKCk7XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUlkZW50aXR5Q29udHJvbHMobmV3SWRlbnRpdHlUeXBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgYWR2YW5jZWQgY29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5wcm9wKFwiY2hlY2tlZFwiLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgJChcIiN0b2dnbGVBZHZhbmNlZFNlY3Rpb25cIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGNoZWNrYm94IGlzIGNoZWNrZWQsIHNob3cgdGhlIGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLUFkdmFuY2VkXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgdXNlVHJhbnNwb3J0U2V0dGluZyA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpO1xuICAgICAgICAgICAgaWYgKHVzZVRyYW5zcG9ydFNldHRpbmcpIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuc2hvdygpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlVHJhbnNwb3J0XCIpLm9uKFwiY2hhbmdlXCIsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5wcm9wKFwiY2hlY2tlZFwiKSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGhpZGUgaXRcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBjaGVja0NlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICQoXCIjY2hlY2tDZXJ0aWZpY2F0ZVwiKS5vbihcImNsaWNrXCIsICgpID0+IF9fYXdhaXRlcih0aGlzLCB2b2lkIDAsIHZvaWQgMCwgZnVuY3Rpb24qICgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IHlpZWxkIGZldGNoKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jbGllbnRfY2VydGlmaWNhdGUuanNvblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5mbyA9IHlpZWxkIGRhdGEuanNvbigpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gSlNPTi5zdHJpbmdpZnkoaW5mbywgbnVsbCwgXCIgXCIpO1xuICAgICAgICAgICAgICAgICAgICBhbGVydCh0KTtcbiAgICAgICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIGNvbmZpZyBidXR0b25cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAkKFwiI2dvdG8tY29uZmlnXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKFwiL29wY3VhLWZvci1ub2RlLXJlZC9jb25maWdcIiwgXCJfYmxhbmtcIik7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAgLy8gaGFuZGxlIHRoZSBUZXN0IGJ1dHRvblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBtYW5hZ2VBUElDYWxsKFwiY29ubmVjdGlvblwiLCAkKFwiI3Rlc3QtY29ubmVjdGlvblwiKSwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBcIi9vcGN1YS1mb3Itbm9kZS1yZWQvdGVzdC1jb25uZWN0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBib2R5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kcG9pbnROb2RlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBub2RlLmlkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1lbmRwb2ludFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1uYW1lXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwa2lOYW1lOiAoX2EgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBraU5hbWVcIikpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlNb2RlOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VjdXJpdHlQb2xpY3k6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlQb2xpY3lcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJJZGVudGl0eVR5cGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlcklkZW50aXR5VHlwZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlck5hbWU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXBhc3N3b3JkXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlckNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyUHJpdmF0ZWtleTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyUHJpdmF0ZWtleVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8vIG5vdCB0ZXN0ZWQgeWV0IC4uLjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydGlmaWNhdGU6ICQoXCIjbm9kZS1pbnB1dC1jZXJ0aWZpY2F0ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlVHJhbnNwb3J0OiAkKFwiI25vZGUtaW5wdXQtdXNlVHJhbnNwb3J0XCIpLnByb3AoXCJjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhDaHVua0NvdW50OiAkKFwiI25vZGUtaW5wdXQtbWF4Q2h1bmtDb3VudFwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4TWVzc2FnZVNpemU6ICQoXCIjbm9kZS1pbnB1dC1tYXhNZXNzYWdlU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZUJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1yZWNlaXZlQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZEJ1ZmZlclNpemU6ICQoXCIjbm9kZS1pbnB1dC1zZW5kQnVmZmVyU2l6ZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSwgKCkgPT4geyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyAgSW5zdGFsbCBzdWJzY3JpcHRpb25zIExpc3QgbWFuYWdlbWVudFxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXNpemVUb3BpY3MgPSAodG9waWMsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdXaWR0aCA9IHRvcGljLndpZHRoKCkgfHwgMTAwO1xuICAgICAgICAgICAgICAgICAgICB0b3BpYy5maW5kKFwibGFiZWxcIikudHlwZWRJbnB1dChcIndpZHRoXCIsIG5ld1dpZHRoIC0gMTUpO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uTGlzdCA9ICQoXCIjc3Vic2NyaXB0aW9ucy1jb250YWluZXJcIilcbiAgICAgICAgICAgICAgICAgICAgLmNzcyh7IFwibWluLWhlaWdodFwiOiBcIjE1MHB4XCIsIFwibWluLXdpZHRoXCI6IFwiMjYwcHhcIiB9KVxuICAgICAgICAgICAgICAgICAgICAuZWRpdGFibGVMaXN0KHtcbiAgICAgICAgICAgICAgICAgICAgYWRkSXRlbTogKGNvbnRhaW5lciwgaW5kZXgsIGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IF9kYXRhID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSAkKFwiLnRlbXBsYXRlXCIpLmNsb25lKCkuYXBwZW5kVG8oY29udGFpbmVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlQXR0cihcImlkXCIpLnJlbW92ZUNsYXNzKFwiaGlkZVwiKS5yZW1vdmVDbGFzcyhcInRlbXBsYXRlXCIpLmF0dHIoXCJkYXRhLWlcIiwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW5hbWVcIikudmFsKF9kYXRhLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbFwiKS52YWwoX2RhdGEucGFyYW1ldGVycy5yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRMaWZldGltZUNvdW50XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZExpZmV0aW1lQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLm1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoIHx8IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXByaW9yaXR5XCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnByaW9yaXR5IHx8IDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLnN1YnNjcmlwdGlvbi1pZFwiKS50ZXh0KFwiXCIgKyBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RhdGEuaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LW5hbWVcIikucHJvcChcInJlYWRvbmx5XCIsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LWlzRGVmYXVsdFwiKS5wcm9wKFwiY2hlY2tlZFwiLCBfZGF0YS5pc0RlZmF1bHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHRoYXQgZGVmYXVsdCBzdWJzY3JpcHRpb24gY2Fubm90IGJlIGFjY2lkZW50YWxseSByZW1vdmVkXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoX2RhdGEuaXNEZWZhdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyLmZpbmQoXCIucmVkLXVpLWVkaXRhYmxlTGlzdC1pdGVtLXJlbW92ZVwiKS5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJkaXNhYmxlZFwiLCB0cnVlKSwgMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAvLyBzb3J0YWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZXNpemVJdGVtOiByZXNpemVUb3BpY3MsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3QgQWRkU3Vic2NyaXB0aW9uID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25zID0gbm9kZS5zdWJzY3JpcHRpb25zIHx8IFtdO1xuICAgICAgICAgICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFkZCBtaXNzaW5nIGRlZmF1bHQgc3Vic2NyaXB0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInMxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzRGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0U3Vic2NyaXB0aW9uUGFyYW1ldGVycyksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImVtcHR5XCIpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiBzdWJzY3JpcHRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzdWJzY3JpcHRpb24uaXNEZWZhdWx0ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25MaXN0LmVkaXRhYmxlTGlzdChcImFkZEl0ZW1cIiwgc3Vic2NyaXB0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgQWRkU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSk7XG5cbn0pKCk7Il19
7
+ function _0x8b9f(){const _0x10009b=['done','licence-widget','Basic256Sha256','#node-input-certificate','This\x20is\x20a\x20freeware\x20licence,\x20and\x20have\x20some\x20limitations.\x0a','.section-userIdentityType-UserName','map','json','append','create','#licenceWidget','endpoint','opc.tcp:','checked','tabs','src','style','3844722yxDfYB','<i>','password','#section-TransportSettings','userIdentityType','empty','<a\x20href=\x22https://www.sterfive.com/opcua/for-node-red\x22\x20target=”_blank”>Sterfive\x27s\x20website\x20</a>','removeClass','children','.template','height:\x20100%\x20!important;','fetching\x20failed\x20with\x20error','.input-maxNotificationsPerPublish','prctbl_1OJt49BCNccbzsVzkaANOgFL','template','replace','Certificate','9957224tBDFBp','\x20days.\x0aBuy\x20online\x20and\x20visit\x20','margin-top:\x2020px;','#toggleAdvancedSection','2439756ypBlCm','</p>','#node-input-maxChunkCount','isDefault','suppressed','#section-Advanced','Trial\x20licence','\x20for\x20more\x20information.','endpoint-tab-subscriptions','subscriptions','securityMode','SignAndEncrypt','isArray','catch','publishable-key','.input-requestedMaxKeepAliveCount','licence-widget-icon','<br>','subscribe-button','requestedMaxKeepAliveCount','-failure','prop','FAILED','registerType','name','<button/>','stringify','disabled','Sign','#node-config-input-userPrivatekey','height:\x20100%;max-height:\x20100%;','<span>','UserName','EXPIRED','head','addTab','#node-config-input-pkiName','/opcua-for-node-red/test-connection','#node-config-input-userCertificate','.input-requestedLifetimeCount','resize','#node-config-input-useTransport','editableList','click','#node-config-input-securityPolicy','async','licenceInfo','.section-securityPolicy','endpoint-tab-connection','-messages','log','err','next',':checked','removeAttr','fa\x20fa-check-circle','-pending','width','change','Your\x20license\x20is\x20currently\x20invalid.','.input-publishingEnabled','text','nodes','then','application/json','Testing\x20Connection\x20...','#node-config-input-userIdentityType','/opcua-for-node-red','#node-config-endpoint-tabs-content','join','status','150px','element','parameters','statusText','Please\x20contact\x20','daysLeft','invalid\x20userIdentityType\x20','addClass','find','Freeware\x20licence','827892NdTGnF','readonly','3868626obytnc','push','1521761cyqdPD','#node-config-input-name','#subscriptions-container','requestedPublishingInterval','None','split','hide','html','maxNotificationsPerPublish','opcua\x20endpoint','clone','\x20It\x20will\x20expire\x20in\x20','items','#node-config-input-password','css','protocol','.input-name','Licence\x20has\x20expired','show','type','Default\x20Subscription','assign','PROFESSIONAL','value','#test-connection','865995thcZbY','POST','/opcua-for-node-red/config','.input-priority','function','.input-isDefault','FREEWARE','4eHEDaY','.subscription-id','invalid\x20securityMode\x20','internal\x20error\x20','result','fa\x20fa-exclamation-circle','attr','length','fa\x20fa-calendar-time','pk_live_51HsE1sBCNccbzsVzt7zaq2uv20pkryWllAzvZgZd5AhwFI9A3qBIeOJvJwQF08lDoLpFqLjwmyA79wnPnYLsvKjt009f00VpCW','label','2jrmmCk','TRIAL','SuppressedError','btn\x20btn-primary','\x20to\x20acquire\x20a\x20license.','message','Your\x20licence\x20is\x20valid.','Anonymous','#goto-config','Connection','#node-input-sendBufferSize','apply','#node-config-input-userName','throw','https://js.stripe.com/v3/pricing-table.js','node-config-endpoint-tabs','each','.section-userIdentityType-Certificate','.red-ui-editableList-item-remove','match','val','\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.̀','\x20days.','260px','baseUrl','#checkCertificate','/opcua-for-node-red/client_certificate.json'];_0x8b9f=function(){return _0x10009b;};return _0x8b9f();}function _0x37b9(_0x3f6050,_0x17f91c){const _0x8b9fc1=_0x8b9f();return _0x37b9=function(_0x37b972,_0x3399c3){_0x37b972=_0x37b972-0x1f0;let _0x1257b2=_0x8b9fc1[_0x37b972];return _0x1257b2;},_0x37b9(_0x3f6050,_0x17f91c);}(function(_0x1da1b4,_0x3c4723){const _0x1a4bfd=_0x37b9,_0x3bef94=_0x1da1b4();while(!![]){try{const _0x5db93f=-parseInt(_0x1a4bfd(0x238))/0x1+parseInt(_0x1a4bfd(0x263))/0x2*(parseInt(_0x1a4bfd(0x236))/0x3)+-parseInt(_0x1a4bfd(0x258))/0x4*(parseInt(_0x1a4bfd(0x251))/0x5)+parseInt(_0x1a4bfd(0x2a4))/0x6+-parseInt(_0x1a4bfd(0x28f))/0x7+parseInt(_0x1a4bfd(0x2a0))/0x8+parseInt(_0x1a4bfd(0x234))/0x9;if(_0x5db93f===_0x3c4723)break;else _0x3bef94['push'](_0x3bef94['shift']());}catch(_0x136f84){_0x3bef94['push'](_0x3bef94['shift']());}}}(_0x8b9f,0xc087b),(function(){'use strict';const _0x4c8fb7=_0x37b9;function _0x3fa379(_0x403778,_0x52922f,_0x27fb20,_0x15041c){function _0x2381ee(_0x13b83e){return _0x13b83e instanceof _0x27fb20?_0x13b83e:new _0x27fb20(function(_0x26f53c){_0x26f53c(_0x13b83e);});}return new(_0x27fb20||(_0x27fb20=Promise))(function(_0x1d424f,_0x28165c){const _0x27a578=_0x37b9;function _0x5d2843(_0x487b66){try{_0xcb5d49(_0x15041c['next'](_0x487b66));}catch(_0x4fd086){_0x28165c(_0x4fd086);}}function _0x599688(_0x480881){const _0x333c0e=_0x37b9;try{_0xcb5d49(_0x15041c[_0x333c0e(0x270)](_0x480881));}catch(_0x3ea022){_0x28165c(_0x3ea022);}}function _0xcb5d49(_0x3f1795){const _0x2f6969=_0x37b9;_0x3f1795[_0x2f6969(0x27e)]?_0x1d424f(_0x3f1795[_0x2f6969(0x24f)]):_0x2381ee(_0x3f1795['value'])[_0x2f6969(0x222)](_0x5d2843,_0x599688);}_0xcb5d49((_0x15041c=_0x15041c[_0x27a578(0x26e)](_0x403778,_0x52922f||[]))[_0x27a578(0x217)]());});}typeof SuppressedError===_0x4c8fb7(0x255)?SuppressedError:function(_0x173e57,_0x339547,_0x549cce){const _0x584baa=_0x4c8fb7;var _0x4a174e=new Error(_0x549cce);return _0x4a174e['name']=_0x584baa(0x265),_0x4a174e['error']=_0x173e57,_0x4a174e[_0x584baa(0x2a8)]=_0x339547,_0x4a174e;};function _0x93c980(_0x2c95de,_0x1fb7aa,_0xf72621,_0x5c327f){const _0x20ee1b=_0x4c8fb7,_0x27aba3=$('#'+_0x2c95de+'-success'),_0x1ae5d4=$('#'+_0x2c95de+_0x20ee1b(0x1f7)),_0x64e798=$('#'+_0x2c95de+_0x20ee1b(0x21b)),_0x2081b6=$('#'+_0x2c95de+_0x20ee1b(0x214));let _0xe35cd6=![];_0x27aba3[_0x20ee1b(0x23e)](),_0x1ae5d4[_0x20ee1b(0x23e)](),_0x64e798[_0x20ee1b(0x23e)](),_0x1fb7aa['on']('click',()=>{const _0x14cbfc=_0x20ee1b;if(_0xe35cd6)return;_0xe35cd6=!![],_0x64e798[_0x14cbfc(0x296)](_0x14cbfc(0x23e)),_0x64e798[_0x14cbfc(0x23f)](_0x14cbfc(0x224)),_0x27aba3[_0x14cbfc(0x231)]('hide'),_0x1ae5d4[_0x14cbfc(0x231)](_0x14cbfc(0x23e)),_0x2081b6[_0x14cbfc(0x23f)]('');const {body:_0x3b8a0d,url:_0x17e673}=_0xf72621();fetch(_0x17e673,{'method':_0x14cbfc(0x252),'headers':{'Content-Type':'application/json'},'body':JSON[_0x14cbfc(0x1fd)](_0x3b8a0d)})['then'](_0x411af0=>_0x411af0[_0x14cbfc(0x285)]())[_0x14cbfc(0x222)](_0x112dbd=>{const _0x4106d3=_0x14cbfc;_0xe35cd6=![],_0x64e798[_0x4106d3(0x23e)](),console[_0x4106d3(0x215)](JSON['stringify'](_0x112dbd,null,'\x20'));if(_0x112dbd[_0x4106d3(0x25c)]==='ok')_0x27aba3[_0x4106d3(0x296)]('hide'),_0x1ae5d4[_0x4106d3(0x231)]('hide'),_0x2081b6[_0x4106d3(0x23f)](_0x112dbd['message'][_0x4106d3(0x29e)]('\x0a',_0x4106d3(0x1f4)));else{const _0x11e177=_0x389f19=>!_0x389f19?'':_0x389f19[_0x4106d3(0x23d)]('\x0a')['map'](_0x2bff6a=>'<p>'+_0x2bff6a+_0x4106d3(0x2a5))[_0x4106d3(0x228)]('\x0a'),_0x4b46b4=_0x24b051=>Array[_0x4106d3(0x2b0)](_0x24b051)?_0x24b051[_0x4106d3(0x284)](_0x11e177)[_0x4106d3(0x228)]('\x0a'):_0x11e177(_0x24b051);_0x27aba3[_0x4106d3(0x231)](_0x4106d3(0x23e)),_0x1ae5d4['removeClass']('hide'),_0x2081b6[_0x4106d3(0x23f)](_0x4b46b4(_0x112dbd[_0x4106d3(0x268)])+_0x4b46b4(_0x112dbd['extra'])),_0x5c327f(new Error(_0x112dbd[_0x4106d3(0x25c)]),_0x112dbd);}})[_0x14cbfc(0x1f0)](_0x8d20a3=>{const _0x307aeb=_0x14cbfc;_0xe35cd6=![],_0x64e798[_0x307aeb(0x231)](_0x307aeb(0x23e)),_0x27aba3['addClass'](_0x307aeb(0x23e)),_0x1ae5d4[_0x307aeb(0x296)](_0x307aeb(0x23e)),_0x2081b6['html'](_0x307aeb(0x25b)+_0x8d20a3[_0x307aeb(0x268)]),console['log'](_0x307aeb(0x216),_0x8d20a3);});});}const _0x44fc0c=_0x4c8fb7(0x29c),_0x2b1395=_0x4c8fb7(0x261);function _0x28299(){return _0x3fa379(this,arguments,void 0x0,function*(_0x96a27e=''){const _0x5a1efa=_0x37b9,_0x2204f9=_0x96a27e+_0x5a1efa(0x226),_0x4d6a19=_0x2204f9+'/licenceInfo',_0x58a292=yield fetch(_0x4d6a19,{'method':'POST','headers':{'Content-Type':_0x5a1efa(0x223)}}),_0x19d60a=new Date()['toISOString']();if(_0x58a292[_0x5a1efa(0x229)]!==0xc8)return console[_0x5a1efa(0x215)](_0x5a1efa(0x29a),_0x58a292[_0x5a1efa(0x229)],_0x58a292[_0x5a1efa(0x22d)]),{'status':'FAILED','type':'FREEWARE','licenceInfo':{'expiryDate':_0x19d60a}};const _0x5df02f=yield _0x58a292['json']();return _0x5df02f;});}const _0x3f6c11=()=>{$['widget']('sterfive.licenceWidget',{'options':{'baseUrl':''},'_create'(){const _0x326d84=_0x37b9,_0x19b41d=this,_0x7dfb12='<a\x20href=\x22mailto:support@sterfive.com\x22\x20subject=\x22@opcua/for-node-red\x20support\x20request\x22>mailto:support@sterfive.com</a>',_0x4e5eb7=_0x326d84(0x295);_0x28299(_0x19b41d[_0x326d84(0x27b)])[_0x326d84(0x222)](_0x10e79a=>{const _0x98c490=_0x326d84;let _0x2b60ba='',_0x29e539='',_0x2acd77='';const _0x36daa9=_0x10e79a['status'],_0x221e56=_0x10e79a[_0x98c490(0x22f)];switch(_0x36daa9){case'AUTHORIZED':_0x2b60ba=_0x98c490(0x21a);switch(_0x10e79a[_0x98c490(0x24b)]){case _0x98c490(0x264):{_0x29e539=_0x98c490(0x2aa),_0x2acd77='The\x20Trial\x20will\x20expire\x20in\x20'+_0x221e56+_0x98c490(0x2a1)+_0x4e5eb7+_0x98c490(0x267);break;}case _0x98c490(0x24e):_0x29e539=_0x98c490(0x269);_0x221e56<0x5a&&_0x221e56>=0x0&&(_0x29e539+=_0x98c490(0x243)+_0x221e56+_0x98c490(0x279));_0x2acd77=_0x10e79a[_0x98c490(0x211)]['licenceType']+'\x20-\x20'+(_0x10e79a[_0x98c490(0x211)]['onPremiseServerHost']||'');break;case'FREEWARE':_0x29e539=_0x98c490(0x233),_0x2acd77=_0x98c490(0x282)+_0x4e5eb7+_0x98c490(0x2ab);break;}break;case'EXPIRED':_0x2b60ba=_0x98c490(0x260),_0x29e539=_0x98c490(0x249),_0x2acd77='Your\x20license\x20has\x20expired.\x20Please\x20contact\x20our\x20support\x20team\x20or\x20visit\x20our\x20website\x20to\x20renew\x20your\x20license\x20and\x20regain\x20access\x20to\x20our\x20services.';break;case _0x98c490(0x1f9):default:_0x2b60ba=_0x98c490(0x25d),_0x29e539=_0x98c490(0x21e),_0x2acd77=_0x98c490(0x22e)+_0x7dfb12+_0x98c490(0x278);break;}this[_0x98c490(0x22b)]['addClass'](_0x98c490(0x27f)),this[_0x98c490(0x22b)][_0x98c490(0x231)]('licence-widget-'+_0x36daa9),this['element'][_0x98c490(0x286)]($(_0x98c490(0x202))[_0x98c490(0x231)](_0x98c490(0x1f3))[_0x98c490(0x286)]($(_0x98c490(0x290))[_0x98c490(0x231)](_0x2b60ba))),this['element']['append']($('<span>')[_0x98c490(0x231)]('licence-widget-msg')['text'](_0x29e539)),this[_0x98c490(0x22b)]['append']($('<br>')),this['element'][_0x98c490(0x286)]($('<span>')[_0x98c490(0x231)]('licence-widget-details')[_0x98c490(0x286)](_0x2acd77));if(_0x36daa9===_0x98c490(0x204)||_0x36daa9===_0x98c490(0x1f9)||_0x10e79a[_0x98c490(0x24b)]===_0x98c490(0x257)||_0x10e79a[_0x98c490(0x24b)]===_0x98c490(0x264)){const _0x1b4d11=$(_0x98c490(0x1fc));_0x1b4d11[_0x98c490(0x25e)]('id',_0x98c490(0x1f5)),_0x1b4d11[_0x98c490(0x25e)]('class',_0x98c490(0x266)),_0x1b4d11[_0x98c490(0x25e)](_0x98c490(0x28e),_0x98c490(0x2a2)),_0x1b4d11['text']('Subscribe'),this[_0x98c490(0x22b)][_0x98c490(0x286)](_0x1b4d11);const _0x4860c2=document['createElement']('script');_0x4860c2[_0x98c490(0x28d)]=_0x98c490(0x271),_0x4860c2[_0x98c490(0x210)]=!![],$(_0x98c490(0x205))[_0x98c490(0x286)](_0x4860c2);const _0x3274b3=$('<stripe-pricing-table/>');_0x3274b3[_0x98c490(0x25e)]('pricing-table-id',_0x44fc0c),_0x3274b3[_0x98c490(0x25e)](_0x98c490(0x1f1),_0x2b1395),_0x3274b3[_0x98c490(0x25e)](_0x98c490(0x28e),_0x98c490(0x201)),_0x3274b3[_0x98c490(0x23e)](),this[_0x98c490(0x22b)][_0x98c490(0x286)](_0x3274b3),_0x1b4d11['on'](_0x98c490(0x20e),()=>{const _0x2ce764=_0x98c490;_0x3274b3[_0x2ce764(0x24a)](),_0x1b4d11[_0x2ce764(0x23e)](),this[_0x2ce764(0x22b)][_0x2ce764(0x25e)]('style',_0x2ce764(0x299));});}})['catch'](_0x1bb697=>{console['log'](_0x1bb697);});}});};_0x3f6c11();function _0x100128(_0x68b61d){const _0x3bfd8f=_0x4c8fb7;let _0x293c9e;try{_0x293c9e=new URL(_0x68b61d);}catch(_0x44457d){return![];}return _0x293c9e[_0x3bfd8f(0x247)]===_0x3bfd8f(0x28a);}const _0xd70d0b={'publishingEnabled':!![],'requestedLifetimeCount':0x3e8,'requestedMaxKeepAliveCount':0xa,'requestedPublishingInterval':0x3e8,'maxNotificationsPerPublish':0x0,'priority':0x64};RED[_0x4c8fb7(0x221)][_0x4c8fb7(0x1fa)]('OpcUa-Endpoint2',{'category':'config','paletteLabel':_0x4c8fb7(0x241),'defaults':{'name':{'value':''},'endpoint':{'value':'opc.tcp://opcuademo.sterfive.com:26543/UA/SampleServer','required':!![],'validate':_0x100128},'securityMode':{'value':_0x4c8fb7(0x23c)},'securityPolicy':{'value':_0x4c8fb7(0x23c),'validate':_0x276dd6=>{if(!_0x276dd6)return![];return!![];}},'userIdentityType':{'value':'Anonymous'},'pkiName':{'value':'','validate':_0x42b91c=>!_0x42b91c||_0x42b91c[_0x4c8fb7(0x276)](/[0-9a-zA-Z]*/)?!![]:![]},'useTransport':{'value':![],'required':![]},'maxChunkCount':{'value':0x1,'required':![]},'maxMessageSize':{'value':0x2000,'required':![]},'receiveBufferSize':{'value':0x2000,'required':![]},'sendBufferSize':{'value':0x2000,'required':![]},'subscriptions':{'value':[{'id':'s1','name':'Default\x20Subscription','isDefault':!![],'parameters':Object['assign']({},_0xd70d0b)},{'id':'s2','name':'Slow\x20Subscription','isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0x64,'requestedMaxKeepAliveCount':0x3,'requestedPublishingInterval':0x1388,'maxNotificationsPerPublish':0x64,'priority':0xa}},{'id':'s3','name':'Fast\x20Subscription','isDefault':![],'parameters':{'publishingEnabled':!![],'requestedLifetimeCount':0xfa0,'requestedMaxKeepAliveCount':0x32,'requestedPublishingInterval':0xfa,'maxNotificationsPerPublish':0x64,'priority':0xc8}}],'required':![]}},'credentials':{'userName':{'type':'text'},'password':{'type':_0x4c8fb7(0x291)},'userCertificate':{'type':_0x4c8fb7(0x220)},'userPrivatekey':{'type':'password'}},'label':function(){const _0x512ee8=_0x4c8fb7;return this[_0x512ee8(0x1fb)]||this[_0x512ee8(0x289)]||'invalid\x20endpoint';},'oneditsave'(){const _0xa8501a=_0x4c8fb7,_0x4f8f74=$(_0xa8501a(0x20f)),_0x863955=$('#node-config-input-securityMode');_0x4f8f74[_0xa8501a(0x277)]()==='None'&&_0x863955['text']('None');const _0x44cf4c=$(_0xa8501a(0x23a))[_0xa8501a(0x20d)](_0xa8501a(0x244)),_0x2f9e95=[],_0x389a=_0x388de2=>_0x388de2;_0x44cf4c[_0xa8501a(0x273)](function(_0x3ffe42,_0x2d5791){const _0x2f7a70=_0xa8501a,_0x29f589=$(this),_0x16f1b3={'id':'s'+_0x3ffe42,'name':_0x29f589[_0x2f7a70(0x232)](_0x2f7a70(0x248))['val'](),'isDefault':!!_0x29f589['find']('.input-isDefault')['val'](),'parameters':{'publishingEnabled':!!_0x29f589[_0x2f7a70(0x232)](_0x2f7a70(0x21f))['is'](_0x2f7a70(0x218)),'requestedLifetimeCount':_0x389a(_0x29f589['find']('.input-requestedLifetimeCount')[_0x2f7a70(0x277)]()),'requestedMaxKeepAliveCount':_0x389a(_0x29f589[_0x2f7a70(0x232)](_0x2f7a70(0x1f2))[_0x2f7a70(0x277)]()),'requestedPublishingInterval':_0x389a(_0x29f589[_0x2f7a70(0x232)]('.input-requestedPublishingInterval')[_0x2f7a70(0x277)]()),'maxNotificationsPerPublish':_0x389a(_0x29f589[_0x2f7a70(0x232)](_0x2f7a70(0x29b))['val']()),'priority':_0x389a(_0x29f589[_0x2f7a70(0x232)](_0x2f7a70(0x254))[_0x2f7a70(0x277)]())}};_0x16f1b3['parameters']['publishingEnabled']=!![],_0x16f1b3[_0x2f7a70(0x2a7)]&&_0x16f1b3['id']==='s0'&&(_0x16f1b3['name']='Default\x20Subscription'),_0x2f9e95[_0x2f7a70(0x237)](_0x16f1b3);}),this[_0xa8501a(0x2ad)]=_0x2f9e95;},'oneditprepare'(){const _0x32c26c=_0x4c8fb7,_0x147557=this,_0xf5335d=RED[_0x32c26c(0x28c)][_0x32c26c(0x287)]({'id':_0x32c26c(0x272),'onchange':function(_0x4b08c8){const _0x455cef=_0x32c26c;$(_0x455cef(0x227))[_0x455cef(0x297)]()[_0x455cef(0x23e)](),$('#'+_0x4b08c8['id'])[_0x455cef(0x24a)]();}});_0xf5335d[_0x32c26c(0x206)]({'id':_0x32c26c(0x213),'label':_0x32c26c(0x26c)},0x0),_0xf5335d[_0x32c26c(0x206)]({'id':_0x32c26c(0x2ac),'label':'Subscriptions'},0x1),setTimeout(function(){const _0x4eb987=_0x32c26c;_0xf5335d[_0x4eb987(0x20b)]();},0x0);{const _0x7d2193=_0x4e1af7=>{const _0x2e0446=_0x32c26c;switch(_0x4e1af7){case null:case undefined:case'':case _0x2e0446(0x23c):$(_0x2e0446(0x212))[_0x2e0446(0x23e)]();break;case _0x2e0446(0x1ff):case _0x2e0446(0x2af):{const _0x48d4e1=$('.section-securityPolicy');(_0x48d4e1['val']()==='None'||_0x48d4e1[_0x2e0446(0x277)]()==='')&&_0x48d4e1[_0x2e0446(0x277)](_0x2e0446(0x280)),$(_0x2e0446(0x212))[_0x2e0446(0x24a)]();}break;default:console['log'](_0x2e0446(0x25a)+_0x4e1af7);}};_0x7d2193(_0x147557[_0x32c26c(0x2ae)]);const _0x13d6eb=$('#node-config-input-securityMode');_0x13d6eb['on'](_0x32c26c(0x21d),()=>{const _0x3bef53=_0x32c26c,_0x53d708=_0x13d6eb[_0x3bef53(0x277)]();_0x7d2193(_0x53d708);});}const _0x28335d=$(_0x32c26c(0x288));_0x28335d['licenceWidget']({'baseUrl':''});{const _0x4f2f0c=$(_0x32c26c(0x283)),_0x51b13b=$(_0x32c26c(0x274)),_0x2c719a=_0x544596=>{const _0x46e312=_0x32c26c;_0x544596=_0x544596||'Anonymous';switch(_0x544596){case _0x46e312(0x26a):$(_0x46e312(0x26f))[_0x46e312(0x277)](''),$('#node-config-input-password')[_0x46e312(0x277)](''),_0x4f2f0c[_0x46e312(0x23e)](),_0x51b13b[_0x46e312(0x23e)]();break;case _0x46e312(0x203):_0x4f2f0c[_0x46e312(0x24a)](),_0x51b13b[_0x46e312(0x23e)]();break;case _0x46e312(0x29f):$(_0x46e312(0x26f))['val'](''),$(_0x46e312(0x245))[_0x46e312(0x277)](''),_0x51b13b[_0x46e312(0x24a)](),_0x4f2f0c[_0x46e312(0x23e)]();break;default:console[_0x46e312(0x215)](_0x46e312(0x230)+_0x544596);}};_0x2c719a(_0x147557[_0x32c26c(0x293)]);const _0x39c10d=$(_0x32c26c(0x225));_0x39c10d['on']('change',()=>{const _0x2d5fd2=_0x32c26c,_0x57c750=_0x39c10d[_0x2d5fd2(0x277)]();_0x2c719a(_0x57c750);});}{$(_0x32c26c(0x2a9))['hide'](),$(_0x32c26c(0x2a3))['prop'](_0x32c26c(0x28b),![]),$(_0x32c26c(0x2a3))['on'](_0x32c26c(0x21d),function(){const _0x54ed83=_0x32c26c;$(this)[_0x54ed83(0x1f8)](_0x54ed83(0x28b))?$('#section-Advanced')[_0x54ed83(0x24a)]():$(_0x54ed83(0x2a9))[_0x54ed83(0x23e)]();});}const _0x4ce263=$(_0x32c26c(0x20c))[_0x32c26c(0x1f8)](_0x32c26c(0x28b));_0x4ce263?$(_0x32c26c(0x292))[_0x32c26c(0x24a)]():$(_0x32c26c(0x292))[_0x32c26c(0x23e)]();$(_0x32c26c(0x20c))['on']('change',function(){const _0x20ef79=_0x32c26c;$(this)[_0x20ef79(0x1f8)](_0x20ef79(0x28b))?$('#section-TransportSettings')[_0x20ef79(0x24a)]():$('#section-TransportSettings')[_0x20ef79(0x23e)]();});{$(_0x32c26c(0x27c))['on'](_0x32c26c(0x20e),()=>_0x3fa379(this,void 0x0,void 0x0,function*(){const _0x404b22=_0x32c26c,_0x4860f7=yield fetch(_0x404b22(0x27d)),_0x5bc582=yield _0x4860f7[_0x404b22(0x285)](),_0x4050be=JSON[_0x404b22(0x1fd)](_0x5bc582,null,'\x20');alert(_0x4050be);}));}$(_0x32c26c(0x26b))['on'](_0x32c26c(0x20e),()=>_0x3fa379(this,void 0x0,void 0x0,function*(){const _0x1336ce=_0x32c26c;window['open'](_0x1336ce(0x253),'_blank');}));{_0x93c980('connection',$(_0x32c26c(0x250)),()=>{const _0x22d8bc=_0x32c26c;var _0x4532f7;return{'url':_0x22d8bc(0x208),'body':{'endpointNode':{'id':_0x147557['id'],'endpoint':$('#node-config-input-endpoint')['val'](),'name':$(_0x22d8bc(0x239))[_0x22d8bc(0x277)](),'pkiName':(_0x4532f7=$(_0x22d8bc(0x207)))===null||_0x4532f7===void 0x0?void 0x0:_0x4532f7[_0x22d8bc(0x277)](),'securityMode':$('#node-config-input-securityMode')[_0x22d8bc(0x277)](),'securityPolicy':$(_0x22d8bc(0x20f))[_0x22d8bc(0x277)](),'userIdentityType':$(_0x22d8bc(0x225))[_0x22d8bc(0x277)](),'userName':$(_0x22d8bc(0x26f))['val'](),'password':$(_0x22d8bc(0x245))[_0x22d8bc(0x277)](),'userCertificate':$(_0x22d8bc(0x209))[_0x22d8bc(0x277)](),'userPrivatekey':$(_0x22d8bc(0x200))[_0x22d8bc(0x277)](),'certificate':$(_0x22d8bc(0x281))[_0x22d8bc(0x277)](),'useTransport':$('#node-input-useTransport')['prop']('checked'),'maxChunkCount':$(_0x22d8bc(0x2a6))[_0x22d8bc(0x277)](),'maxMessageSize':$('#node-input-maxMessageSize')['val'](),'receiveBufferSize':$('#node-input-receiveBufferSize')[_0x22d8bc(0x277)](),'sendBufferSize':$(_0x22d8bc(0x26d))[_0x22d8bc(0x277)]()}}};},()=>{});}{const _0x9f3d83=(_0x175c70,_0x247486)=>{const _0xcf29ad=_0x32c26c;var _0x588c4f=_0x175c70[_0xcf29ad(0x21c)]()||0x64;_0x175c70[_0xcf29ad(0x232)](_0xcf29ad(0x262))['typedInput'](_0xcf29ad(0x21c),_0x588c4f-0xf);},_0x308d99=$(_0x32c26c(0x23a))[_0x32c26c(0x246)]({'min-height':_0x32c26c(0x22a),'min-width':_0x32c26c(0x27a)})['editableList']({'addItem':(_0x758017,_0x2a7b9c,_0x57f347)=>{const _0x19db10=_0x32c26c,_0x4be483=_0x57f347,_0x4e3202=$(_0x19db10(0x298))[_0x19db10(0x242)]()['appendTo'](_0x758017);_0x4e3202[_0x19db10(0x219)]('id')['removeClass'](_0x19db10(0x23e))[_0x19db10(0x296)](_0x19db10(0x29d))[_0x19db10(0x25e)]('data-i',_0x2a7b9c),_0x4e3202['find'](_0x19db10(0x248))[_0x19db10(0x277)](_0x4be483[_0x19db10(0x1fb)]),_0x4e3202[_0x19db10(0x232)]('.input-requestedPublishingInterval')['val'](_0x4be483['parameters'][_0x19db10(0x23b)]),_0x4e3202[_0x19db10(0x232)](_0x19db10(0x1f2))['val'](_0x4be483[_0x19db10(0x22c)][_0x19db10(0x1f6)]),_0x4e3202['find'](_0x19db10(0x20a))[_0x19db10(0x277)](_0x4be483[_0x19db10(0x22c)]['requestedLifetimeCount']),_0x4e3202['find'](_0x19db10(0x29b))[_0x19db10(0x277)](_0x4be483[_0x19db10(0x22c)][_0x19db10(0x240)]||0x0),_0x4e3202[_0x19db10(0x232)](_0x19db10(0x254))[_0x19db10(0x277)](_0x4be483[_0x19db10(0x22c)]['priority']||0x0),_0x4e3202[_0x19db10(0x232)](_0x19db10(0x259))['text'](''+_0x2a7b9c),_0x4be483[_0x19db10(0x2a7)]&&_0x4e3202[_0x19db10(0x232)](_0x19db10(0x248))['prop'](_0x19db10(0x235),!![]),_0x4e3202['find'](_0x19db10(0x256))[_0x19db10(0x1f8)](_0x19db10(0x28b),_0x4be483['isDefault']),_0x4be483['isDefault']&&(_0x758017[_0x19db10(0x232)](_0x19db10(0x275))['addClass'](_0x19db10(0x23e)),setTimeout(()=>_0x4e3202[_0x19db10(0x232)](_0x19db10(0x256))[_0x19db10(0x1f8)](_0x19db10(0x1fe),!![]),0xa));},'removable':!![],'resizeItem':_0x9f3d83}),_0x4af519=()=>{const _0x28f95f=_0x32c26c,_0x53d85c=_0x147557[_0x28f95f(0x2ad)]||[];_0x53d85c[_0x28f95f(0x25f)]===0x0&&_0x53d85c['push']({'id':'s1','name':_0x28f95f(0x24c),'isDefault':!![],'parameters':Object[_0x28f95f(0x24d)]({},_0xd70d0b)});_0x308d99[_0x28f95f(0x20d)](_0x28f95f(0x294));for(const _0x326a13 of _0x53d85c){_0x308d99[_0x28f95f(0x20d)]('addItem',_0x326a13);}};_0x4af519();}}});}()));
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNvdXJjZU1hcCJdLCJuYW1lcyI6WyJfMHgzZmEzNzkiLCJfMHg0MDM3NzgiLCJfMHg1MjkyMmYiLCJfMHgyN2ZiMjAiLCJfMHgxNTA0MWMiLCJfMHgyMzgxZWUiLCJfMHgxM2I4M2UiLCJfMHgyNmY1M2MiLCJQcm9taXNlIiwiXzB4MWQ0MjRmIiwiXzB4MjgxNjVjIiwiXzB4NWQyODQzIiwiXzB4NDg3YjY2IiwiXzB4Y2I1ZDQ5IiwiXzB4NGZkMDg2IiwiXzB4NTk5Njg4IiwiXzB4NDgwODgxIiwiXzB4M2VhMDIyIiwiXzB4M2YxNzk1IiwiU3VwcHJlc3NlZEVycm9yIiwiXzB4MTczZTU3IiwiXzB4MzM5NTQ3IiwiXzB4NTQ5Y2NlIiwiXzB4NGExNzRlIiwiRXJyb3IiLCJfMHg5M2M5ODAiLCJfMHgyYzk1ZGUiLCJfMHgxZmI3YWEiLCJfMHhmNzI2MjEiLCJfMHg1YzMyN2YiLCJfMHgyN2FiYTMiLCIkIiwiXzB4MWFlNWQ0IiwiXzB4NjRlNzk4IiwiXzB4MjA4MWI2IiwiXzB4ZTM1Y2Q2IiwiYm9keSIsIl8weDNiOGEwZCIsInVybCIsIl8weDE3ZTY3MyIsImZldGNoIiwiSlNPTiIsIl8weDQxMWFmMCIsIl8weDExMmRiZCIsImNvbnNvbGUiLCJfMHgxMWUxNzciLCJfMHgzODlmMTkiLCJfMHgyYmZmNmEiLCJfMHg0YjQ2YjQiLCJfMHgyNGIwNTEiLCJBcnJheSIsIl8weDhkMjBhMyIsIl8weDQ0ZmMwYyIsIl8weDJiMTM5NSIsIl8weDI4Mjk5IiwiYXJndW1lbnRzIiwiXzB4OTZhMjdlIiwiXzB4MjIwNGY5IiwiXzB4NGQ2YTE5IiwiXzB4NThhMjkyIiwiXzB4MTlkNjBhIiwiRGF0ZSIsIl8weDVkZjAyZiIsIl8weDNmNmMxMSIsIl8weDE5YjQxZCIsIl8weDdkZmIxMiIsIl8weDRlNWViNyIsIl8weDEwZTc5YSIsIl8weDJiNjBiYSIsIl8weDI5ZTUzOSIsIl8weDJhY2Q3NyIsIl8weDM2ZGFhOSIsIl8weDIyMWU1NiIsIl8weDFiNGQxMSIsIl8weDQ4NjBjMiIsImRvY3VtZW50IiwiXzB4MzI3NGIzIiwiXzB4MWJiNjk3IiwiXzB4MTAwMTI4IiwiXzB4NjhiNjFkIiwiXzB4MjkzYzllIiwiVVJMIiwiXzB4NDQ0NTdkIiwiXzB4ZDcwZDBiIiwiUkVEIiwiXzB4Mjc2ZGQ2IiwiXzB4NDJiOTFjIiwiT2JqZWN0IiwiXzB4NGY4Zjc0IiwiXzB4ODYzOTU1IiwiXzB4NDRjZjRjIiwiXzB4MmY5ZTk1IiwiXzB4Mzg5YSIsIl8weDM4OGRlMiIsIl8weDNmZmU0MiIsIl8weDJkNTc5MSIsIl8weDI5ZjU4OSIsIl8weDE2ZjFiMyIsIl8weDE0NzU1NyIsIl8weGY1MzM1ZCIsIl8weDRiMDhjOCIsInNldFRpbWVvdXQiLCJfMHg3ZDIxOTMiLCJfMHg0ZTFhZjciLCJ1bmRlZmluZWQiLCJfMHg0OGQ0ZTEiLCJfMHgxM2Q2ZWIiLCJfMHg1M2Q3MDgiLCJfMHgyODMzNWQiLCJfMHg0ZjJmMGMiLCJfMHg1MWIxM2IiLCJfMHgyYzcxOWEiLCJfMHg1NDQ1OTYiLCJfMHgzOWMxMGQiLCJfMHg1N2M3NTAiLCJfMHg0Y2UyNjMiLCJfMHg0ODYwZjciLCJfMHg1YmM1ODIiLCJfMHg0MDUwYmUiLCJhbGVydCIsIndpbmRvdyIsIl8weDQ1MzJmNyIsIl8weDlmM2Q4MyIsIl8weDE3NWM3MCIsIl8weDI0NzQ4NiIsIl8weDU4OGM0ZiIsIl8weDMwOGQ5OSIsIl8weDc1ODAxNyIsIl8weDJhN2I5YyIsIl8weDU3ZjM0NyIsIl8weDRiZTQ4MyIsIl8weDRlMzIwMiIsIl8weDRhZjUxOSIsIl8weDUzZDg1YyIsIl8weDMyNmExMyJdLCJtYXBwaW5ncyI6Im0vSUFBQSxDQUFDLFUsQ0FDRyxhLHdCQW1CQSxTQUFTQSxTQUFULENBQW1CQyxTQUFuQixDQUE0QkMsU0FBNUIsQ0FBd0NDLFNBQXhDLENBQTJDQyxTQUEzQyxDLENBQ0ksU0FBU0MsU0FBVCxDQUFlQyxTQUFmLEMsUUFBK0JBLFNBQUEsWUFBaUJILFNBQWpCLENBQXFCRyxTQUFyQixDQUE2QixJQUFJSCxTQUFKLENBQU0sU0FB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cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgICAndXNlIHN0cmljdCc7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbiAgICBDb3B5cmlnaHQgKGMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbi5cclxuXHJcbiAgICBQZXJtaXNzaW9uIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBhbmQvb3IgZGlzdHJpYnV0ZSB0aGlzIHNvZnR3YXJlIGZvciBhbnlcclxuICAgIHB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcbiAgICBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiIEFORCBUSEUgQVVUSE9SIERJU0NMQUlNUyBBTEwgV0FSUkFOVElFUyBXSVRIXHJcbiAgICBSRUdBUkQgVE8gVEhJUyBTT0ZUV0FSRSBJTkNMVURJTkcgQUxMIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFlcclxuICAgIEFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuICAgIElORElSRUNULCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgT1IgQU5ZIERBTUFHRVMgV0hBVFNPRVZFUiBSRVNVTFRJTkcgRlJPTVxyXG4gICAgTE9TUyBPRiBVU0UsIERBVEEgT1IgUFJPRklUUywgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIE5FR0xJR0VOQ0UgT1JcclxuICAgIE9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuICAgIFBFUkZPUk1BTkNFIE9GIFRISVMgU09GVFdBUkUuXHJcbiAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xyXG4gICAgLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UsIFN1cHByZXNzZWRFcnJvciwgU3ltYm9sLCBJdGVyYXRvciAqL1xyXG5cclxuXHJcbiAgICBmdW5jdGlvbiBfX2F3YWl0ZXIodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XHJcbiAgICAgICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICAgICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cclxuICAgICAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XHJcbiAgICAgICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0eXBlb2YgU3VwcHJlc3NlZEVycm9yID09PSBcImZ1bmN0aW9uXCIgPyBTdXBwcmVzc2VkRXJyb3IgOiBmdW5jdGlvbiAoZXJyb3IsIHN1cHByZXNzZWQsIG1lc3NhZ2UpIHtcclxuICAgICAgICB2YXIgZSA9IG5ldyBFcnJvcihtZXNzYWdlKTtcclxuICAgICAgICByZXR1cm4gZS5uYW1lID0gXCJTdXBwcmVzc2VkRXJyb3JcIiwgZS5lcnJvciA9IGVycm9yLCBlLnN1cHByZXNzZWQgPSBzdXBwcmVzc2VkLCBlO1xyXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG1hbmFnZUFQSUNhbGwocHJlZml4LCBidG4sIGZ1bmMsIG9uUmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IHN1Y2Nlc3NJY29uID0gJChgIyR7cHJlZml4fS1zdWNjZXNzYCk7XG4gICAgICAgIGNvbnN0IGZhaWx1cmVJY29uID0gJChgIyR7cHJlZml4fS1mYWlsdXJlYCk7XG4gICAgICAgIGNvbnN0IHBlbmRpbmdJY29uID0gJChgIyR7cHJlZml4fS1wZW5kaW5nYCk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2VzID0gJChgIyR7cHJlZml4fS1tZXNzYWdlc2ApO1xuICAgICAgICBsZXQgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICBzdWNjZXNzSWNvbi5oaWRlKCk7XG4gICAgICAgIGZhaWx1cmVJY29uLmhpZGUoKTtcbiAgICAgICAgcGVuZGluZ0ljb24uaGlkZSgpO1xuICAgICAgICBidG4ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWN0aW9uUGVuZGluZylcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBhY3Rpb25QZW5kaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLnJlbW92ZUNsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgIHBlbmRpbmdJY29uLmh0bWwoXCJUZXN0aW5nIENvbm5lY3Rpb24gLi4uXCIpO1xuICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgZmFpbHVyZUljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IHsgYm9keSwgdXJsIH0gPSBmdW5jKCk7XG4gICAgICAgICAgICAvLyB4eCBjb25zb2xlLmxvZyhcInh4eHh4XCIsIGJvZHkpO1xuICAgICAgICAgICAgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoYm9keSksXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiBkYXRhLmpzb24oKSlcbiAgICAgICAgICAgICAgICAudGhlbigoanNvbikgPT4ge1xuICAgICAgICAgICAgICAgIGFjdGlvblBlbmRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBwZW5kaW5nSWNvbi5oaWRlKCk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoanNvbiwgbnVsbCwgXCIgXCIpKTtcbiAgICAgICAgICAgICAgICBpZiAoanNvbi5yZXN1bHQgPT09IFwib2tcIikge1xuICAgICAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIGZhaWx1cmVJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXMuaHRtbChqc29uLm1lc3NhZ2UucmVwbGFjZShcIlxcblwiLCBcIjxicj5cIikpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQgPSAoc3RyKSA9PiAhc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogc3RyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KFwiXFxuXCIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCgoYSkgPT4gYDxwPiR7YX08L3A+YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuam9pbihcIlxcblwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWRhcHQyID0gKHN0cikgPT4gKEFycmF5LmlzQXJyYXkoc3RyKSA/IHN0ci5tYXAoYWRhcHQpLmpvaW4oXCJcXG5cIikgOiBhZGFwdChzdHIpKTtcbiAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc0ljb24uYWRkQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgICAgICBmYWlsdXJlSWNvbi5yZW1vdmVDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoYWRhcHQyKGpzb24ubWVzc2FnZSkgKyBhZGFwdDIoanNvbi5leHRyYSkpO1xuICAgICAgICAgICAgICAgICAgICBvblJlc3VsdChuZXcgRXJyb3IoanNvbi5yZXN1bHQpLCBqc29uKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHBlbmRpbmdJY29uLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICBzdWNjZXNzSWNvbi5hZGRDbGFzcyhcImhpZGVcIik7XG4gICAgICAgICAgICAgICAgZmFpbHVyZUljb24ucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpO1xuICAgICAgICAgICAgICAgIG1lc3NhZ2VzLmh0bWwoXCJpbnRlcm5hbCBlcnJvciBcIiArIGVyci5tZXNzYWdlKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImVyclwiLCBlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByaWNpbmdUYWJsZUlkID0gXCJwcmN0YmxfMU9KdDQ5QkNOY2NienNWemthQU5PZ0ZMXCI7XG4gICAgY29uc3QgcHVibGlzaGFibGVLZXkgPSBcInBrX2xpdmVfNTFIc0Uxc0JDTmNjYnpzVnp0N3phcTJ1djIwcGtyeVdsbEF6dlpnWmQ1QWh3Rkk5QTNxQkllT0p2SndRRjA4bERvTHBGcUxqd215QTc5d25QbllMc3ZLanQwMDlmMDBWcENXXCI7XG4gICAgZnVuY3Rpb24gZmV0Y2hMaWNlbmNlSW5mbygpIHtcbiAgICAgICAgcmV0dXJuIF9fYXdhaXRlcih0aGlzLCBhcmd1bWVudHMsIHZvaWQgMCwgZnVuY3Rpb24qIChiYXNlVXJsID0gXCJcIikge1xuICAgICAgICAgICAgY29uc3Qgcm9vdCA9IGAke2Jhc2VVcmx9L29wY3VhLWZvci1ub2RlLXJlZGA7XG4gICAgICAgICAgICBjb25zdCB1cmwgPSBgJHtyb290fS9saWNlbmNlSW5mb2A7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2godXJsLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7IFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICAgICAgaWYgKGRhdGEuc3RhdHVzICE9PSAyMDApIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImZldGNoaW5nIGZhaWxlZCB3aXRoIGVycm9yXCIsIGRhdGEuc3RhdHVzLCBkYXRhLnN0YXR1c1RleHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHN0YXR1czogXCJGQUlMRURcIiwgdHlwZTogXCJGUkVFV0FSRVwiLCBsaWNlbmNlSW5mbzogeyBleHBpcnlEYXRlOiB0b2RheSB9IH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBqc29uID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICByZXR1cm4ganNvbjtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGRlY2xhcmVMaWNlbmNlV2lkZ2V0ID0gKCkgPT4ge1xuICAgICAgICAkLndpZGdldChcInN0ZXJmaXZlLmxpY2VuY2VXaWRnZXRcIiwge1xuICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgX2NyZWF0ZSgpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0aGF0ID0gdGhpcztcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWN0TGluayA9IGA8YSBocmVmPVwibWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tXCIgc3ViamVjdD1cIkBvcGN1YS9mb3Itbm9kZS1yZWQgc3VwcG9ydCByZXF1ZXN0XCI+bWFpbHRvOnN1cHBvcnRAc3RlcmZpdmUuY29tPC9hPmA7XG4gICAgICAgICAgICAgICAgY29uc3Qgd2Vic2l0ZUxpbmsgPSBgPGEgaHJlZj1cImh0dHBzOi8vd3d3LnN0ZXJmaXZlLmNvbS9vcGN1YS9mb3Itbm9kZS1yZWRcIiB0YXJnZXQ94oCdX2JsYW5r4oCdPlN0ZXJmaXZlJ3Mgd2Vic2l0ZSA8L2E+YDtcbiAgICAgICAgICAgICAgICBmZXRjaExpY2VuY2VJbmZvKHRoYXQuYmFzZVVybClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGpzb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGljb24gPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbXNnID0gXCJcIjtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGRldGFpbHMgPSBcIlwiO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGF0dXMgPSBqc29uLnN0YXR1cztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF5TGVmdCA9IGpzb24uZGF5c0xlZnQ7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQVVUSE9SSVpFRFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWNoZWNrLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoanNvbi50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJUUklBTFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBcIlRyaWFsIGxpY2VuY2VcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgVGhlIFRyaWFsIHdpbGwgZXhwaXJlIGluICR7ZGF5TGVmdH0gZGF5cy5cXG5CdXkgb25saW5lIGFuZCB2aXNpdCAke3dlYnNpdGVMaW5rfSB0byBhY3F1aXJlIGEgbGljZW5zZS5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIlBST0ZFU1NJT05BTFwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gYFlvdXIgbGljZW5jZSBpcyB2YWxpZC5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRheUxlZnQgPCA5MCAmJiBkYXlMZWZ0ID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2cgKz0gYCBJdCB3aWxsIGV4cGlyZSBpbiAke2RheUxlZnR9IGRheXMuYDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRldGFpbHMgPSBgJHt3ZWJzaXRlTGlua308YnI+JHtjb250YWN0TGlua31gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGpzb24ubGljZW5jZUluZm8ubGljZW5jZVR5cGUgKyBcIiAtIFwiICsgKGpzb24ubGljZW5jZUluZm8ub25QcmVtaXNlU2VydmVySG9zdCB8fCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRlJFRVdBUkVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiRnJlZXdhcmUgbGljZW5jZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9IGBUaGlzIGlzIGEgZnJlZXdhcmUgbGljZW5jZSwgYW5kIGhhdmUgc29tZSBsaW1pdGF0aW9ucy5cXG4ke3dlYnNpdGVMaW5rfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBcIkVYUElSRURcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uID0gXCJmYSBmYS1jYWxlbmRhci10aW1lXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0gXCJMaWNlbmNlIGhhcyBleHBpcmVkXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlscyA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiWW91ciBsaWNlbnNlIGhhcyBleHBpcmVkLiBQbGVhc2UgY29udGFjdCBvdXIgc3VwcG9ydCB0ZWFtIG9yIHZpc2l0IG91ciB3ZWJzaXRlIHRvIHJlbmV3IHlvdXIgbGljZW5zZSBhbmQgcmVnYWluIGFjY2VzcyB0byBvdXIgc2VydmljZXMuXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiRkFJTEVEXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb24gPSBcImZhIGZhLWV4Y2xhbWF0aW9uLWNpcmNsZVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFwiWW91ciBsaWNlbnNlIGlzIGN1cnJlbnRseSBpbnZhbGlkLlwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGFpbHMgPSBgUGxlYXNlIGNvbnRhY3QgJHtjb250YWN0TGlua30gb3IgdmlzaXQgb3VyIHdlYnNpdGUgdG8gcmVuZXcgeW91ciBsaWNlbnNlIGFuZCByZWdhaW4gYWNjZXNzIHRvIG91ciBzZXJ2aWNlcy7MgGA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLyoqICovXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuZWxlbWVudC50ZXh0KFwiTGljZW5jZSBcIiArIEpTT04uc3RyaW5naWZ5KGpzb24pKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKFwibGljZW5jZS13aWRnZXRcIik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LVwiICsgc3RhdHVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPHNwYW4+XCIpLmFkZENsYXNzKFwibGljZW5jZS13aWRnZXQtaWNvblwiKS5hcHBlbmQoJChcIjxpPlwiKS5hZGRDbGFzcyhpY29uKSkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKCQoXCI8c3Bhbj5cIikuYWRkQ2xhc3MoXCJsaWNlbmNlLXdpZGdldC1tc2dcIikudGV4dChtc2cpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50LmFwcGVuZCgkKFwiPGJyPlwiKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hcHBlbmQoJChcIjxzcGFuPlwiKS5hZGRDbGFzcyhcImxpY2VuY2Utd2lkZ2V0LWRldGFpbHNcIikuYXBwZW5kKGRldGFpbHMpKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gXCJFWFBJUkVEXCIgfHwgc3RhdHVzID09PSBcIkZBSUxFRFwiIHx8IGpzb24udHlwZSA9PT0gXCJGUkVFV0FSRVwiIHx8IGpzb24udHlwZSA9PT0gXCJUUklBTFwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpYmVCdXR0b24gPSAkKFwiPGJ1dHRvbi8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJpZFwiLCBcInN1YnNjcmliZS1idXR0b25cIik7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uYXR0cihcImNsYXNzXCIsIFwiYnRuIGJ0bi1wcmltYXJ5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLmF0dHIoXCJzdHlsZVwiLCBcIm1hcmdpbi10b3A6IDIwcHg7XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaWJlQnV0dG9uLnRleHQoXCJTdWJzY3JpYmVcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN1YnNjcmliZUJ1dHRvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBzY3JpcHQgZWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgc2NyaXB0LnNyYyA9IFwiaHR0cHM6Ly9qcy5zdHJpcGUuY29tL3YzL3ByaWNpbmctdGFibGUuanNcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBBcHBlbmQgdGhlIHNjcmlwdCBlbGVtZW50IHRvIHRoZSBoZWFkIChvciBib2R5KSBvZiB0aGUgZG9jdW1lbnRcbiAgICAgICAgICAgICAgICAgICAgICAgICQoXCJoZWFkXCIpLmFwcGVuZChzY3JpcHQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaXBlUHJpY2luZ1RhYmxlID0gJChcIjxzdHJpcGUtcHJpY2luZy10YWJsZS8+XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBlbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJpcGVQcmljaW5nVGFibGUuYXR0cihcInByaWNpbmctdGFibGUtaWRcIiwgcHJpY2luZ1RhYmxlSWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJwdWJsaXNoYWJsZS1rZXlcIiwgcHVibGlzaGFibGVLZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLmF0dHIoXCJzdHlsZVwiLCBcImhlaWdodDogMTAwJTttYXgtaGVpZ2h0OiAxMDAlO1wiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmlwZVByaWNpbmdUYWJsZS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kKHN0cmlwZVByaWNpbmdUYWJsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24ub24oXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaXBlUHJpY2luZ1RhYmxlLnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpYmVCdXR0b24uaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5hdHRyKFwic3R5bGVcIiwgXCJoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGVycik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgZGVjbGFyZUxpY2VuY2VXaWRnZXQoKTtcbiAgICBmdW5jdGlvbiBpc1ZhbGlkT1BDX1VBX1VSSShzdHIpIHtcbiAgICAgICAgbGV0IHVybDtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHVybCA9IG5ldyBVUkwoc3RyKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoXykge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB1cmwucHJvdG9jb2wgPT09IFwib3BjLnRjcDpcIjtcbiAgICB9XG4gICAgY29uc3QgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMgPSB7XG4gICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiB0cnVlLFxuICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAwLFxuICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogMTAsIC8vIGV2ZXJ5IDEwIHNlY29uZHNcbiAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAxMDAwLFxuICAgICAgICBtYXhOb3RpZmljYXRpb25zUGVyUHVibGlzaDogMCxcbiAgICAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICB9O1xuICAgIFJFRC5ub2Rlcy5yZWdpc3RlclR5cGUoXCJPcGNVYS1FbmRwb2ludDJcIiwge1xuICAgICAgICBjYXRlZ29yeTogXCJjb25maWdcIixcbiAgICAgICAgcGFsZXR0ZUxhYmVsOiBcIm9wY3VhIGVuZHBvaW50XCIsXG4gICAgICAgIGRlZmF1bHRzOiB7XG4gICAgICAgICAgICBuYW1lOiB7IHZhbHVlOiBcIlwiIH0sXG4gICAgICAgICAgICBlbmRwb2ludDoge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIm9wYy50Y3A6Ly9vcGN1YWRlbW8uc3RlcmZpdmUuY29tOjI2NTQzL1VBL1NhbXBsZVNlcnZlclwiLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRlOiBpc1ZhbGlkT1BDX1VBX1VSSSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyBTZWN1cml0eSBNb2RlXG4gICAgICAgICAgICBzZWN1cml0eU1vZGU6IHsgdmFsdWU6IFwiTm9uZVwiIH0sXG4gICAgICAgICAgICBzZWN1cml0eVBvbGljeToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiBcIk5vbmVcIixcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZTogKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogeyB2YWx1ZTogXCJBbm9ueW1vdXNcIiB9LFxuICAgICAgICAgICAgcGtpTmFtZTogeyB2YWx1ZTogXCJcIiwgdmFsaWRhdGU6ICh2YWx1ZSkgPT4gKCF2YWx1ZSB8fCB2YWx1ZS5tYXRjaCgvWzAtOWEtekEtWl0qLykgPyB0cnVlIDogZmFsc2UpIH0sXG4gICAgICAgICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIFVzZXJOYW1lXG4gICAgICAgICAgICAvLyBjcmVkZW50aWFsczoge1xuICAgICAgICAgICAgLy8gICAgIHVzZXJOYW1lOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHBhc3N3b3JkOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInBhc3N3b3JkXCIgfSxcbiAgICAgICAgICAgIC8vICAgICAvLyB0byB1c2Ugd2hlbiB1c2VySWRlbnRpdHlUeXBlIGlzIENlcnRpZmljYXRlXG4gICAgICAgICAgICAvLyAgICAgdXNlckNlcnRpZmljYXRlOiB7IHZhbHVlOiBcIlwiLCB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgLy8gICAgIHVzZXJQcml2YXRla2V5OiB7IHZhbHVlOiBcIlwiICwgdHlwZTogXCJwYXNzd29yZFwifSxcbiAgICAgICAgICAgIC8vIH0gYXMgYW55IC8qIGNpcmN1bXZlbnQgYSBidWcgaW4gbm9kZS1yZWQgKi8sXG4gICAgICAgICAgICAvLyB1c2VybmFtZVxuICAgICAgICAgICAgdXNlVHJhbnNwb3J0OiB7IHZhbHVlOiBmYWxzZSwgcmVxdWlyZWQ6IGZhbHNlIH0sXG4gICAgICAgICAgICBtYXhDaHVua0NvdW50OiB7IHZhbHVlOiAxLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIG1heE1lc3NhZ2VTaXplOiB7IHZhbHVlOiA4MTkyLCByZXF1aXJlZDogZmFsc2UgfSwgLy8gc2hvdWxkIGJlIGF0IGxlYXN0IDgxOTJcbiAgICAgICAgICAgIHJlY2VpdmVCdWZmZXJTaXplOiB7IHZhbHVlOiA4MTkyLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHNlbmRCdWZmZXJTaXplOiB7IHZhbHVlOiA4MTkyLCByZXF1aXJlZDogZmFsc2UgfSxcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnM6IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZWZhdWx0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyczogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFN1YnNjcmlwdGlvblBhcmFtZXRlcnMpLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzMlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTbG93IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiAxMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQ6IDMsIC8vIGV2ZXJ5IDE1IHNlY29uZHNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWw6IDUwMDAsIC8vXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogXCJzM1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGYXN0IFN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdWJsaXNoaW5nRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRMaWZldGltZUNvdW50OiA0MDAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RlZE1heEtlZXBBbGl2ZUNvdW50OiA1MCwgLy8gZXZlcnkgMTIuNSBzZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiAyNTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IDEwMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmlvcml0eTogMjAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNyZWRlbnRpYWxzOiB7XG4gICAgICAgICAgICB1c2VyTmFtZTogeyB0eXBlOiBcInRleHRcIiB9LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogXCJwYXNzd29yZFwiIH0sXG4gICAgICAgICAgICB1c2VyQ2VydGlmaWNhdGU6IHsgdHlwZTogXCJ0ZXh0XCIgfSxcbiAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiB7IHR5cGU6IFwicGFzc3dvcmRcIiB9LFxuICAgICAgICB9LFxuICAgICAgICBsYWJlbDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubmFtZSB8fCB0aGlzLmVuZHBvaW50IHx8IFwiaW52YWxpZCBlbmRwb2ludFwiO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRzYXZlKCkge1xuICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5UG9saWN5ID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eVBvbGljeVwiKTtcbiAgICAgICAgICAgIGNvbnN0IF9zZWN1cml0eU1vZGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXNlY3VyaXR5TW9kZVwiKTtcbiAgICAgICAgICAgIGlmIChfc2VjdXJpdHlQb2xpY3kudmFsKCkgPT09IFwiTm9uZVwiKSB7XG4gICAgICAgICAgICAgICAgX3NlY3VyaXR5TW9kZS50ZXh0KFwiTm9uZVwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vICgoKCgoKCgoKCggcmV0cmlldmUgc3Vic2NyaXB0aW9uIGRhdGEgKSkpKSkpKSkpKVxuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uc0l0ZW1zID0gJChcIiNzdWJzY3JpcHRpb25zLWNvbnRhaW5lclwiKS5lZGl0YWJsZUxpc3QoXCJpdGVtc1wiKTtcbiAgICAgICAgICAgIGNvbnN0IHMgPSBbXTtcbiAgICAgICAgICAgIGNvbnN0IG4gPSAoeCkgPT4geDtcbiAgICAgICAgICAgIHN1YnNjcmlwdGlvbnNJdGVtcy5lYWNoKGZ1bmN0aW9uIChpbmRleCwgaXRlbSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGUgPSAkKHRoaXMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGEgPSB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcInNcIiArIGluZGV4LFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBlLmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiAhIWUuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1Ymxpc2hpbmdFbmFibGVkOiAhIWUuZmluZChcIi5pbnB1dC1wdWJsaXNoaW5nRW5hYmxlZFwiKS5pcyhcIjpjaGVja2VkXCIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkTGlmZXRpbWVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTGlmZXRpbWVDb3VudFwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ZWRNYXhLZWVwQWxpdmVDb3VudDogbihlLmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsOiBuKGUuZmluZChcIi5pbnB1dC1yZXF1ZXN0ZWRQdWJsaXNoaW5nSW50ZXJ2YWxcIikudmFsKCkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2g6IG4oZS5maW5kKFwiLmlucHV0LW1heE5vdGlmaWNhdGlvbnNQZXJQdWJsaXNoXCIpLnZhbCgpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBuKGUuZmluZChcIi5pbnB1dC1wcmlvcml0eVwiKS52YWwoKSksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAvLyBmb3JjZSB0byBiZSB0cnVlXG4gICAgICAgICAgICAgICAgYS5wYXJhbWV0ZXJzLnB1Ymxpc2hpbmdFbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBpZiAoYS5pc0RlZmF1bHQgJiYgYS5pZCA9PT0gXCJzMFwiKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbGl6ZSBkZWZhdWx0IHN1YnNjcmlwdGlvbiBuYW1lXG4gICAgICAgICAgICAgICAgICAgIGEubmFtZSA9IFwiRGVmYXVsdCBTdWJzY3JpcHRpb25cIjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcy5wdXNoKGEpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMgPSBzO1xuICAgICAgICB9LFxuICAgICAgICBvbmVkaXRwcmVwYXJlKCkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IHRoaXM7XG4gICAgICAgICAgICBjb25zdCB0YWJzID0gUkVELnRhYnMuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBpZDogXCJub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzXCIsXG4gICAgICAgICAgICAgICAgb25jaGFuZ2U6IGZ1bmN0aW9uICh0YWIpIHtcbiAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1lbmRwb2ludC10YWJzLWNvbnRlbnRcIikuY2hpbGRyZW4oKS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICQoXCIjXCIgKyB0YWIuaWQpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0YWJzLmFkZFRhYih7XG4gICAgICAgICAgICAgICAgaWQ6IFwiZW5kcG9pbnQtdGFiLWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICBsYWJlbDogXCJDb25uZWN0aW9uXCIsXG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIHRhYnMuYWRkVGFiKHtcbiAgICAgICAgICAgICAgICBpZDogXCJlbmRwb2ludC10YWItc3Vic2NyaXB0aW9uc1wiLFxuICAgICAgICAgICAgICAgIGxhYmVsOiBcIlN1YnNjcmlwdGlvbnNcIixcbiAgICAgICAgICAgIH0sIDEpO1xuICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgdGFicy5yZXNpemUoKTtcbiAgICAgICAgICAgIH0sIDApO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBTZWN1cml0eSBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVTZWN1cml0eUNvbnRyb2wgPSAoc2VjdXJpdHlNb2RlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc2VjdXJpdHlNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGw6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIHVuZGVmaW5lZDpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJOb25lXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJTaWduXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiU2lnbkFuZEVuY3J5cHRcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNwID0gJChcIi5zZWN0aW9uLXNlY3VyaXR5UG9saWN5XCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3AudmFsKCkgPT09IFwiTm9uZVwiIHx8IHNwLnZhbCgpID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcC52YWwoXCJCYXNpYzI1NlNoYTI1NlwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkKFwiLnNlY3Rpb24tc2VjdXJpdHlQb2xpY3lcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpbnZhbGlkIHNlY3VyaXR5TW9kZSBcIiArIHNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHVwZGF0ZVNlY3VyaXR5Q29udHJvbChub2RlLnNlY3VyaXR5TW9kZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3NlY3VyaXR5TW9kZSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpO1xuICAgICAgICAgICAgICAgIF9zZWN1cml0eU1vZGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdTZWN1cml0eU1vZGUgPSBfc2VjdXJpdHlNb2RlLnZhbCgpO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVTZWN1cml0eUNvbnRyb2wobmV3U2VjdXJpdHlNb2RlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGxpY2VuY2VXaWRnZXQgPSAkKFwiI2xpY2VuY2VXaWRnZXRcIik7XG4gICAgICAgICAgICBsaWNlbmNlV2lkZ2V0LmxpY2VuY2VXaWRnZXQoe1xuICAgICAgICAgICAgICAgIGJhc2VVcmw6IFwiXCIsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFVzZXIgSWRlbnRpdHkgQ29udHJvbHNcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXV0aFJvdyA9ICQoXCIuc2VjdGlvbi11c2VySWRlbnRpdHlUeXBlLVVzZXJOYW1lXCIpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlcnRSb3cgPSAkKFwiLnNlY3Rpb24tdXNlcklkZW50aXR5VHlwZS1DZXJ0aWZpY2F0ZVwiKTtcbiAgICAgICAgICAgICAgICBjb25zdCB1cGRhdGVJZGVudGl0eUNvbnRyb2xzID0gKHVzZXJJZGVudGl0eVR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZSA9IHVzZXJJZGVudGl0eVR5cGUgfHwgXCJBbm9ueW1vdXNcIjtcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICh1c2VySWRlbnRpdHlUeXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiQW5vbnltb3VzXCI6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC1wYXNzd29yZFwiKS52YWwoXCJcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydFJvdy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFwiVXNlck5hbWVcIjpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXRoUm93LnNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0Um93LmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgXCJDZXJ0aWZpY2F0ZVwiOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtdXNlck5hbWVcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKFwiXCIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRSb3cuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhSb3cuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImludmFsaWQgdXNlcklkZW50aXR5VHlwZSBcIiArIHVzZXJJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB1cGRhdGVJZGVudGl0eUNvbnRyb2xzKG5vZGUudXNlcklkZW50aXR5VHlwZSk7XG4gICAgICAgICAgICAgICAgY29uc3QgX3VzZXJJZGVudGl0eVR5cGUgPSAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJJZGVudGl0eVR5cGVcIik7XG4gICAgICAgICAgICAgICAgX3VzZXJJZGVudGl0eVR5cGUub24oXCJjaGFuZ2VcIiwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdJZGVudGl0eVR5cGUgPSBfdXNlcklkZW50aXR5VHlwZS52YWwoKTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSWRlbnRpdHlDb250cm9scyhuZXdJZGVudGl0eVR5cGUpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGhhbmRsZSBhZHZhbmNlZCBjb250cm9sc1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICQoXCIjdG9nZ2xlQWR2YW5jZWRTZWN0aW9uXCIpLnByb3AoXCJjaGVja2VkXCIsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAkKFwiI3RvZ2dsZUFkdmFuY2VkU2VjdGlvblwiKS5vbihcImNoYW5nZVwiLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2hlY2tib3ggaXMgY2hlY2tlZCwgc2hvdyB0aGUgZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuc2hvdygpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBoaWRlIGl0XG4gICAgICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tQWR2YW5jZWRcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB1c2VUcmFuc3BvcnRTZXR0aW5nID0gJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIik7XG4gICAgICAgICAgICBpZiAodXNlVHJhbnNwb3J0U2V0dGluZykge1xuICAgICAgICAgICAgICAgICQoXCIjc2VjdGlvbi1UcmFuc3BvcnRTZXR0aW5nc1wiKS5zaG93KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VUcmFuc3BvcnRcIikub24oXCJjaGFuZ2VcIiwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLnByb3AoXCJjaGVja2VkXCIpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjaGVja2JveCBpcyBjaGVja2VkLCBzaG93IHRoZSBkaXZcbiAgICAgICAgICAgICAgICAgICAgJChcIiNzZWN0aW9uLVRyYW5zcG9ydFNldHRpbmdzXCIpLnNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwgaGlkZSBpdFxuICAgICAgICAgICAgICAgICAgICAkKFwiI3NlY3Rpb24tVHJhbnNwb3J0U2V0dGluZ3NcIikuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vIGNoZWNrQ2VydGlmaWNhdGVcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgJChcIiNjaGVja0NlcnRpZmljYXRlXCIpLm9uKFwiY2xpY2tcIiwgKCkgPT4gX19hd2FpdGVyKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbiogKCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0geWllbGQgZmV0Y2goXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NsaWVudF9jZXJ0aWZpY2F0ZS5qc29uXCIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbmZvID0geWllbGQgZGF0YS5qc29uKCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQgPSBKU09OLnN0cmluZ2lmeShpbmZvLCBudWxsLCBcIiBcIik7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KHQpO1xuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgY29uZmlnIGJ1dHRvblxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgICQoXCIjZ290by1jb25maWdcIikub24oXCJjbGlja1wiLCAoKSA9PiBfX2F3YWl0ZXIodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKiAoKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4oXCIvb3BjdWEtZm9yLW5vZGUtcmVkL2NvbmZpZ1wiLCBcIl9ibGFua1wiKTtcbiAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgICAvLyBoYW5kbGUgdGhlIFRlc3QgYnV0dG9uXG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG1hbmFnZUFQSUNhbGwoXCJjb25uZWN0aW9uXCIsICQoXCIjdGVzdC1jb25uZWN0aW9uXCIpLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICh7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFwiL29wY3VhLWZvci1ub2RlLXJlZC90ZXN0LWNvbm5lY3Rpb25cIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludE5vZGU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IG5vZGUuaWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZHBvaW50OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LWVuZHBvaW50XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAkKFwiI25vZGUtY29uZmlnLWlucHV0LW5hbWVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBraU5hbWU6IChfYSA9ICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGtpTmFtZVwiKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN1cml0eU1vZGU6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtc2VjdXJpdHlNb2RlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN1cml0eVBvbGljeTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC1zZWN1cml0eVBvbGljeVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcklkZW50aXR5VHlwZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VySWRlbnRpdHlUeXBlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyTmFtZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyTmFtZVwiKS52YWwoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzc3dvcmQ6ICQoXCIjbm9kZS1jb25maWctaW5wdXQtcGFzc3dvcmRcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJDZXJ0aWZpY2F0ZTogJChcIiNub2RlLWNvbmZpZy1pbnB1dC11c2VyQ2VydGlmaWNhdGVcIikudmFsKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZXJQcml2YXRla2V5OiAkKFwiI25vZGUtY29uZmlnLWlucHV0LXVzZXJQcml2YXRla2V5XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy8gbm90IHRlc3RlZCB5ZXQgLi4uOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0aWZpY2F0ZTogJChcIiNub2RlLWlucHV0LWNlcnRpZmljYXRlXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VUcmFuc3BvcnQ6ICQoXCIjbm9kZS1pbnB1dC11c2VUcmFuc3BvcnRcIikucHJvcChcImNoZWNrZWRcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heENodW5rQ291bnQ6ICQoXCIjbm9kZS1pbnB1dC1tYXhDaHVua0NvdW50XCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhNZXNzYWdlU2l6ZTogJChcIiNub2RlLWlucHV0LW1heE1lc3NhZ2VTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNlaXZlQnVmZmVyU2l6ZTogJChcIiNub2RlLWlucHV0LXJlY2VpdmVCdWZmZXJTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZW5kQnVmZmVyU2l6ZTogJChcIiNub2RlLWlucHV0LXNlbmRCdWZmZXJTaXplXCIpLnZhbCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9LCAoKSA9PiB7IH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAgICAgICAgIC8vICBJbnN0YWxsIHN1YnNjcmlwdGlvbnMgTGlzdCBtYW5hZ2VtZW50XG4gICAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc2l6ZVRvcGljcyA9ICh0b3BpYywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5ld1dpZHRoID0gdG9waWMud2lkdGgoKSB8fCAxMDA7XG4gICAgICAgICAgICAgICAgICAgIHRvcGljLmZpbmQoXCJsYWJlbFwiKS50eXBlZElucHV0KFwid2lkdGhcIiwgbmV3V2lkdGggLSAxNSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb25MaXN0ID0gJChcIiNzdWJzY3JpcHRpb25zLWNvbnRhaW5lclwiKVxuICAgICAgICAgICAgICAgICAgICAuY3NzKHsgXCJtaW4taGVpZ2h0XCI6IFwiMTUwcHhcIiwgXCJtaW4td2lkdGhcIjogXCIyNjBweFwiIH0pXG4gICAgICAgICAgICAgICAgICAgIC5lZGl0YWJsZUxpc3Qoe1xuICAgICAgICAgICAgICAgICAgICBhZGRJdGVtOiAoY29udGFpbmVyLCBpbmRleCwgZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgX2RhdGEgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9ICQoXCIudGVtcGxhdGVcIikuY2xvbmUoKS5hcHBlbmRUbyhjb250YWluZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5yZW1vdmVBdHRyKFwiaWRcIikucmVtb3ZlQ2xhc3MoXCJoaWRlXCIpLnJlbW92ZUNsYXNzKFwidGVtcGxhdGVcIikuYXR0cihcImRhdGEtaVwiLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS52YWwoX2RhdGEubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkUHVibGlzaGluZ0ludGVydmFsXCIpLnZhbChfZGF0YS5wYXJhbWV0ZXJzLnJlcXVlc3RlZFB1Ymxpc2hpbmdJbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTWF4S2VlcEFsaXZlQ291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC5maW5kKFwiLmlucHV0LXJlcXVlc3RlZExpZmV0aW1lQ291bnRcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucmVxdWVzdGVkTGlmZXRpbWVDb3VudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2hcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMubWF4Tm90aWZpY2F0aW9uc1BlclB1Ymxpc2ggfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtcHJpb3JpdHlcIikudmFsKF9kYXRhLnBhcmFtZXRlcnMucHJpb3JpdHkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuc3Vic2NyaXB0aW9uLWlkXCIpLnRleHQoXCJcIiArIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtbmFtZVwiKS5wcm9wKFwicmVhZG9ubHlcIiwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50LmZpbmQoXCIuaW5wdXQtaXNEZWZhdWx0XCIpLnByb3AoXCJjaGVja2VkXCIsIF9kYXRhLmlzRGVmYXVsdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBkZWZhdWx0IHN1YnNjcmlwdGlvbiBjYW5ub3QgYmUgYWNjaWRlbnRhbGx5IHJlbW92ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChfZGF0YS5pc0RlZmF1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250YWluZXIuZmluZChcIi5yZWQtdWktZWRpdGFibGVMaXN0LWl0ZW0tcmVtb3ZlXCIpLmFkZENsYXNzKFwiaGlkZVwiKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGVsZW1lbnQuZmluZChcIi5pbnB1dC1pc0RlZmF1bHRcIikucHJvcChcImRpc2FibGVkXCIsIHRydWUpLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC8vIHNvcnRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICByZW1vdmFibGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgIHJlc2l6ZUl0ZW06IHJlc2l6ZVRvcGljcyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCBBZGRTdWJzY3JpcHRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbnMgPSBub2RlLnN1YnNjcmlwdGlvbnMgfHwgW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWJzY3JpcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWRkIG1pc3NpbmcgZGVmYXVsdCBzdWJzY3JpcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFwiczFcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRlZmF1bHQgU3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWZhdWx0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRTdWJzY3JpcHRpb25QYXJhbWV0ZXJzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiZW1wdHlcIik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHN1YnNjcmlwdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHN1YnNjcmlwdGlvbi5pc0RlZmF1bHQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbkxpc3QuZWRpdGFibGVMaXN0KFwiYWRkSXRlbVwiLCBzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBBZGRTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICB9KTtcblxufSkoKTsiXX0=
9
9
  </script>
10
10
  <script type="text/x-red" data-template-name="OpcUa-Endpoint2">
11
11
  <div id="licenceWidget"></div>
@@ -384,15 +384,15 @@ function _0x4a5b(_0xc5407f,_0x4e4fee){const _0x208aed=_0x208a();return _0x4a5b=f
384
384
 
385
385
  ## Where is the PKI ?
386
386
 
387
- - `@opcua/for-node-red` stores its PKI in the following folder
387
+ - `@opcua/for-node-red` stores its PKI in the following folder
388
388
 
389
389
  | Platform | Location |
390
390
  | -------- | ------------------------------------------------- |
391
391
  | Linux | "~/.config/opcua-for-node-red-nodejs/PKI" |
392
392
  | Windows | %APP_DATA%\Roaming\opcua-for-node-red-nodejs\PKI" |
393
393
 
394
- - This PKI is shared by all endpoint connection nodes in order to avoid having to generate multiple certificates for each endpoint and facilitate the management of the certificates.
395
- - all OPCUA Client connection that are created by the OPCUA Endpoint node will use this PKI.
394
+ - This PKI is shared by all endpoint connection nodes in order to avoid having to generate multiple certificates for each endpoint and facilitate the management of the certificates.
395
+ - all OPCUA Client connection that are created by the OPCUA Endpoint node will use this PKI.
396
396
 
397
397
  #### PKI folder structure
398
398
 
@@ -425,33 +425,33 @@ If the `@opcua/for-node-red` client certificate is not trusted by the server, th
425
425
 
426
426
  ### ensuring that the `@opcua/for-node-red` client certificate is trusted by the server
427
427
 
428
- - If you are using a "Sign" or "SignAndEncrypt" connection to the OPCUA Server, you'll have to make sure that your client certificate is trusted by the server.
429
- - This can be done by copying the client certificate of your `@opcua/for-node-red` instance to the server and adding it to the trusted certificates folder in the PKI of the server.
430
- - (you can download the client certificate in PEM or DER format from the OPCUA Endpoint node, using the provided buttons)
431
- - The client certificate can be found in the "pki" folder of the OPCUA Endpoint node.
432
- - The certificate is named `client_certificate.pem` and is located in the PKI folder (see above) at this location
428
+ - If you are using a "Sign" or "SignAndEncrypt" connection to the OPCUA Server, you'll have to make sure that your client certificate is trusted by the server.
429
+ - This can be done by copying the client certificate of your `@opcua/for-node-red` instance to the server and adding it to the trusted certificates folder in the PKI of the server.
430
+ - (you can download the client certificate in PEM or DER format from the OPCUA Endpoint node, using the provided buttons)
431
+ - The client certificate can be found in the "pki" folder of the OPCUA Endpoint node.
432
+ - The certificate is named `client_certificate.pem` and is located in the PKI folder (see above) at this location
433
433
 
434
434
  `PKI/own/certs/`
435
435
 
436
- - Refers to your server documentation to know where to copy the client certificate.
436
+ - Refers to your server documentation to know where to copy the client certificate.
437
437
 
438
438
  ### ensuring that `@opcua/for-node-red` trusts the server certificate
439
439
 
440
- - Similarly, if you are using a "Sign" or "SignAndEncrypt" connection to the OPCUA Server, you'll have to make sure that the server certificate is trusted by the client.
441
- - By default, `@opcua/for-node-red` is setup to automatically accept any server certificate. This can be changed by setting the "rejectUnauthorized" option to true the global settings of the OPCUA Endpoint node. ( available to Pro version only)
440
+ - Similarly, if you are using a "Sign" or "SignAndEncrypt" connection to the OPCUA Server, you'll have to make sure that the server certificate is trusted by the client.
441
+ - By default, `@opcua/for-node-red` is setup to automatically accept any server certificate. This can be changed by setting the "rejectUnauthorized" option to true the global settings of the OPCUA Endpoint node. ( available to Pro version only)
442
442
 
443
443
  ## default certificate generation
444
444
 
445
- - A default self-signed certificate generation is done by the `@opcua/for-node-red` node when it is first deployed.
446
- - The certificate is generated in the "pki" folder of the OPCUA Endpoint node.
447
- - The certificate is named "client_certificate.pem" and is located in the folder
445
+ - A default self-signed certificate generation is done by the `@opcua/for-node-red` node when it is first deployed.
446
+ - The certificate is generated in the "pki" folder of the OPCUA Endpoint node.
447
+ - The certificate is named "client_certificate.pem" and is located in the folder
448
448
 
449
449
  ## How to provided my own key pair (client certificate and private key) ?
450
450
 
451
- - You can provide your own key pair by copying the client certificate and private key in the "pki" folder of the OPCUA Endpoint node.
452
- - The certificate must be named "client_certificate.pem" and stored in the "pki/own/certs" folder.
453
- - The private key must be named "private_key.pem" and stored in the "pki/own/private" folder.
454
- - If your certificate is not a self-signed certificate, you'll have to also copy the certificate of the Certificate Authority that signed your certificate in the "pki/issuers/certs" folder and its CRL (Certificate revocation list) in the "pki/issuers/crl" folder.
451
+ - You can provide your own key pair by copying the client certificate and private key in the "pki" folder of the OPCUA Endpoint node.
452
+ - The certificate must be named "client_certificate.pem" and stored in the "pki/own/certs" folder.
453
+ - The private key must be named "private_key.pem" and stored in the "pki/own/private" folder.
454
+ - If your certificate is not a self-signed certificate, you'll have to also copy the certificate of the Certificate Authority that signed your certificate in the "pki/issuers/certs" folder and its CRL (Certificate revocation list) in the "pki/issuers/crl" folder.
455
455
 
456
456
  </script>
457
457
  //# sourceMappingURL=OpcUa-Endpoint2.html.map
File without changes